必威电竞|足球世界杯竞猜平台

中間件
來源:互聯網

中間件(Middleware)是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信,本質上來說,中間件是一個分布軟件層或平臺,典型的中間件有事務性中間件、過程式中間件、面向消息的中間件、面向對象的中間件、Web應用服務器、Web服務中間件等。

1984年AT&T貝爾實驗室開發完成的Tuxedo被視為第一個嚴格意義上的中間件產品。東方通在1992年就開始中間件的研究與開發,1993年推出第一個產品Ton-gLINK/Q。成立于1995年的bea收購Tuxedo后,成為第一中間件廠商。2001年,微軟發布.Net,中間件演變為.Net和Java兩大技術陣營。2010年,全球中間件市場總量為176億美元,2015年,市場空間達250億美元,截至2023年,全球中間件市場空間434億美元。

中間件的特點體現在具有易集成性、高可靠性和易使用性以及高透明性。未來的發展方向是聚焦于消除信息孤島,推動無邊界信息流來支撐開放、動態、多變的互聯網環境中的復雜應用系統,借此實現對互聯網上的計算資源、數據資源、服務資源、軟件資源等信息資源的綜合利用。

概念

中間件有兩層含義,從狹義的角度來說,中間件是網絡環境下處于操作系統軟件和應用軟件之間的一種起連接作用的分布式軟件;從廣義的角度來說,中間件可以被視為中間層軟件,主要指處于系統軟件和應用軟件之間的中間層次的軟件,目的是對應用軟件的開發提供更直接和更有效地支撐。

相對被普遍接受的定義是來自IDC(Intennet Date Center,IDC)的表述:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。

發展歷程

誕生背景

20世紀80年代,高速網絡的出現和微機工作站的普及,使網絡分布計算成為新一代計算和應用的主流。網絡分布計算要求利用Internet/Inteanet上各種資源,協同完成計算任務,因而出現了Client/Server的計算服務模式,使多個客戶端可以共享數據器。20世紀90年代初,“胖”Client/Server計算模式成為主流模式,將數據統一存儲在數據服務器上,而在客戶端實現其相關業務邏輯,但兩層結構的模式制約著系統發展。隨著用戶業務需求的增長及Internet/Inteanet的普及,出現了三層Client/Server和Brower/Server結構,在客戶界面和數據庫之間加入了具有獨立功能的中間層。

相關發展

IBM的CICS(Certified Internal Control Specialist)是最早具有中間件技術思想和功能的軟件,但由于中間件需要屏蔽分布環境中異構的OS和網絡協議,因而中間件必須能夠提供分布式環境下的通信服務,而CICS不是分布式環境的產物,因而將1984年(有爭議,一說為1990年)誕生于AT&T貝爾實驗室開發完成的Tuxedo(現歸于甲骨文公司旗下)視為第一個嚴格意義上的中間件產品,Tuxedo解決了分布式交易事務控制問題,中間件開始成為網絡應用的基礎設施,中間件正式成型。后來被Novell收購。

東方通在1992年就開始中間件的研究與開發,1993年推出第一個產品Ton-gLINK/Q。

1994年,IBM發布消息隊列服務MQ系列產品,解決分布式系統異步、可靠、傳輸的通信服務問題,消息中間件誕生。

成立于1995年的bea從Novell手里購買了Tuxedo后,BEA利用其資金、技術優勢,開始在全球市場推廣中間件產品,同年,詹姆斯·高斯林James Gosling發明了Java語言,Java提供了跨平臺的通用網絡應用服務,成為中間件的核心技術。

2001年,微軟發布.Net,中間件演變為.Net和Java兩大技術陣營。

2010年,全球中間件市場總量為176億美元,其中AS(18.4%)、ESB(12.3%)、BPMS(12.3%)等需求量最大。

2015年,市場空間達250億美元,其中排名前五的為:IBM、Oracle數據庫微軟software ag、Tibeo等,其市場主要分布在北美、西歐、日本和亞太。

截至2023年,全球中間件市場空間434億美元,5年復合增長率10.3%;中國中間件市場空間13.6億美元,5年復合增長率15.7%。

基本特征

平臺化:中間件是一個平臺,因此它必須獨立存在,同時,作為運行時刻的系統軟件,中間件為上層的網絡應用系統提供一個運行環境,并通過標準的接口來隔離其支撐的系統,實現其獨立性,也就是平臺性。

易集成性:中間件具有易集成性,可以無縫接入應用開發環境中,應用程序可定位和共享中間件提供的各種應用服務,它將用戶從復雜的平臺、網絡、數據庫選擇中解放出來。

高可靠性和易使用性:中間件具有高可靠性和易使用性,能和同構或異構環境下的多種數據源通信,同時,它能管理數據間的公共邏輯約束。中間件實現對象的跨平臺應用時,向外部提供統一的方法調用接口,降低了應用系統的復雜性。跨平臺統一接口的調用,使應用程序開發變得標準化且具有很高的可移植性,由于中間件的語言無關性,開發人員可以利用對方的編程技能和成果。

透明性:中間件可以滿足大量應用的需要,運行于多種硬件和操作系統平臺,支持分布計算,提供跨網絡、硬件和操作系統平臺的透明性的應用或服務的交互功能。由于中間件實現的功能對應用程序來說是透明的,所以可以對局部進行改進而不會影響到系統的其他部分。

分類

中間件主要完成對底層系統能力的封裝,使應用層可以通過系統中間件和系統通信,提供能力接入、能力暴露、安全控制功能,避免應用組件直接和OS(操作系統)層交互,并將復雜協議處理、網絡故障、并行操作等問題與應用程序隔離,為上層應用軟件提供運行和開發環境。基于目的和實現機制的不同,中間件有以下分類:事務性中間件、過程式中間件、面向消息的中間件、面向對象的中間件、Web應用服務器、Web服務中間件等,還包括數據訪問中間件。

過程式中間件

過程式中間件又稱遠程過程調用(Remote Procedure Call,RPC)中間件,一般從邏輯上分為客戶和服務器兩部分。客戶和服務器之間的通信可以使用同步通信,也可以使用線程式異步調用,過程式中間件有較好的異構支撐能力,采取C/S體系結構,將分布式系統中的自主行為實體固定分解為Client和Server兩類角色,Client是服務請求者,Server是服務受理者,提供一個或多個遠程過程,是一種基于過程的服務訪問,在RPC模型中,Client和Server要具備了相應的RPC接口,并且具有RPC運行支持,就可以完成相應的互操作,而不必限制于特定的Server。簡單易用,但因為客戶和服務器之間采用訪問連接,因而在易剪裁性和故障容許度方面有一定局限性。典型成果包括以OSF(Open 軟件 Foundation)的DCE(Distributed Computing Environment)為代表的通用產品。

面向消息的中間件

面向消息的中間件(Message Oriented Middleware,MOM)簡稱消息中間件,是一類以消息為載體進行通信的中間件,利用高效可靠的消息機制來實現不同應用間大量的數據交換,依照通信模型的不同可分為消息隊列和消息傳遞,可以在復雜的網絡環境中高可靠、高效率地實現安全的異步通信。它可在分布環境下擴展進程間的通信,并支持多種通信協議、語言、應用程序、硬件和軟件平臺。其主要特點有通信程序可在不同的時間運行、對應用程序的結構沒有約束、程序與網絡的復雜性相隔離等。流行的MOM中間件產品有IIBM的MQSeries、bea的MessageQ等。

面向對象的中間件

面向對象的中間件又稱為分布對象中間件,簡稱對象中間件,支持分布對象模型,使軟件開發者可以在分布異構環境下采用面向對象的方法和技術來開發應用,是一種標準化較好、功能較強的中間件,具有良好的異構支持能力和廣泛的適用性。它提供了一種透明地在分布式計算環境中傳遞對象請求的通信框架,是當今軟件技術的主流方向。其中功能最強大的是CORBA和DCOM這兩種標準。OMG(Object Management Group,對象管理組織)是分布對象技術標準化方面的國際組織,它制定出了CORBA等標準。

數據訪問中間件

數據庫訪問中間件是在系統中建立數據資源互操作的模式,為網絡中虛擬CPU緩存、格式轉換提供便利,是應用廣泛、技術成熟的一種中間件,典型代表為ODBC。ODBC是一種基于數據庫的中間件標準,它允許應用程序和本地或者異地的數據庫進行通信,并提供了一系列的應用程序接口API,在多數情況下這些API都是隱藏在開發工具中,不被程序員直接使用。不過在數據訪問中間件處理模型中,數據庫是信息存貯的核心單元,中間件完成通信的功能,方式靈活,但并不適合于一些要求高性能處理的場合。

事務性中間件

事務性中間件又稱事務處理管理程序,是使用最廣泛的中間件之一,主要功能是提供聯機事務處理所需要的通信、并發訪問控制、事務控制、資源管理、安全管理、負載平衡、故障恢復和其他必要的服務,具有可靠性高、擴展性強的特點,主要應用于電信、金融、飛機訂票系統、證券等領域。

Web應用服務器

Web應用服務器是Web服務器和應用服務器相結合的產物。應用服務器中間件是軟件的基礎設施,利用構件化技術將應用軟件整合到一個確定的協同工作環境中,并提供多種通信機制、事務處理能力以及應用的開發管理功能,應用服務器是中間件市場上競爭的熱點。

功能

中間件是獨立的系統級軟件,連接操作系統層和應用程序層,屏蔽具體操作的細節,為不同操作系統提供應用的接口標準化、協議統一化。中間件的主旨是簡化分布式系統的構造,基本思想是抽取分布式系統構造中的通信、同步、激活、并發、可靠性、安全性、伸縮性、異構性等共性問題,封裝共性問題的解決機制并提供簡單統一的接口,功能包括通信支持、并發支持、公共服務等。

通信支持

中間件為其所支持的應用軟件提供平臺化的運行環境,該環境屏蔽底層通信之間的接口差異,實現互操作。多數基于中間件的系統都需要與其他分布式服務或系統進行交互,操作系統提供一組網絡操作接口,中間件則提供通信支持以屏蔽這組復雜的底層接口,通信支持主要有遠程過程調用和信息兩種方式。遠程過程調用是運行客戶端像調用本地服務一樣調用遠程服務器的服務,消息機制是利用高效可靠的消息傳遞機制進行平臺之間的數據交互。

應用支持

中間件的目的是服務上層應用,提供應用層不同服務之間的互操作機制,為上層應用開發提供統一的平臺和運行環境,封裝不同操作系統,向應用提供統一的標準接口,實現應用開發和運行的獨立性,為應用結構化和開發方法提供有力支持。

并發支持

中間件為上層提供一種“單線程”或“單進程”的開發模型,屏蔽采用并發技術(多線程、多進程)時造成的復雜性,簡化上層程序開發和維護的復雜度,提高上層程序穩定性。

公共服務

公共服務是對應用中共性功能或約束的抽取,中間件提供一個或一組公共服務,這類服務針對某一種或某一類系統,應用系統在實現和運行時可以直接使用公共服務,通過提供標準、統一的公共服務,減少了系統開發的工程量,也有助于使應用開發者更關注業務功能的需求、設計和實現,有助于提高應用軟件的質量。

架構

中間件是具有一系列特定屬性的程序模塊或者服務,大致分為上層、中間層、下層三個模塊,上層為應用程序接口層,中間層為事件處理層,下層為數據采集設備接口層,通過上下層兩個接口與外界交互,中間層進行數據處理。

應用程序接口層

應用程序接口可分為內容層、信息層和傳輸層,是中間件與外部應用程序鏈接的通道,主要與應用系統程序、網絡訪問程序以及其他的中間件或服務系統進行連接,應用程序通常是企業資源管理、供應鏈管理、智能交易、分析報告等現有的企業運行的應用系統程序,網絡訪問程序通過應用程序接口實現系統與遠程服務或相關信息資源服務器的連接,或為其他的中間件或服務系統提供數據服務,如對象解析服務(ONS)、信息服務(IS)等。

事件處理層

事件處理層由設備管理模塊、事件管理模塊、任務管理模塊、實時內存事件數據庫等多個事件程序模塊組成。對來自底端的數據進行過濾、聚合、排序和分發等操作。

數據采集設備接口層

物聯網的底層數據來自射頻終端、傳感器、條碼等不同數據采集設備,因而中間件必須為各種形式的數據采集設備提供集成匹配功能。數據采集設備接口層就是位于中間件架構的最底層,直接與數據采集器交互,提供如RS-232、以太網無線網絡、USB等不同設備的鏈接方式,并采用TCP/IP JEEE 802.11系列、ZigBee等多種連接通信協議,將采集到的數據生成事件,傳送給事件處理層。

設計原則

中間件被定義成了典型的上、中、下三層結構,其中包含有特定屬性的程序模塊或者服務。模塊的設計初衷是能夠支持不同群體對模塊的擴展,中間件設計時要注意模塊功能的通用性、兼容性和擴展性。做到連接應用和數據采集端的紐帶。中間件的核心設計要點主要在于數據處理機制、模塊之間的通信機制和應用程序接口設計。

數據處理機制:中間件在整個系統中扮演著數據過濾、聚合和分發等的重要角色。為了有效處理數據,中間件需設計靈活的適配器,通過定義統一的接口程序來屏蔽不同設備間的差異,確保系統間的兼容性。此外,中間件通過制定數據過濾優化規則來處理不準確、丟失或邏輯錯誤的數據,以及通過建立數據聚合規則來整合和統計數據,最終通過數據分發規則將數據有效傳遞。

模塊之間的通信機制:中間件數據的處理是一些步驟的集合,在采集數據時注意與適配器的通信,此外,在處理數據時要注意與事件管理模塊的通信,通過與任務管理模塊的通信完成外部事件與系統任務的交互,最后注意與實時內存事件數據庫的通信完成事件信息的存儲。

應用程序接口設計:針對中間件的應用程序接口設計可以采用包含XML/SOAP等溝通方式,連接應用企業內部的數據庫或與系統相關的數據庫,使得外部應用系統可以通過此中間件取得需要的數據。

標準

中間件技術標準包括COM(計算機 Object Model),CORBA(Common Object Request Broker 建筑),J2EE(Java 2Platform Enterprise Edition)等。

COM標準

COM標準最初作為微軟桌面系統的構件技術,主要為本地的OLE應用服務。隨著Microsoft服務器操作系統NT和DOCK的發布,COM標準通過底層的遠程支持,使得構件技術延伸到了應用領域。作為一種技術標準,COM以COM庫(OLE32.dll和OLEAut.dll)的形式提供了訪問COM對象核心功能的標準接口及一組API函數,這些API函數用于實現創建和管理COM對象的功能。

CORBA標準

CORBA分布計算技術是公共對象請求代理體系規范,該規范是OMG(Object Management Group)以眾多開發系統平臺廠商提交的分布對象互操作內容為基礎構建的。CORBA標準是編寫分布式對象的統一標準,有一個被稱為IIOP(InternetInter-ORBProtoc01)的部分,是CORBA的標準Intemet協議,是面向對象的基于IIOP的二進制通信機制。CORBA中的IDL(Interface Definition Language)是定義客戶端和它們調用對象之間的接口,作為一個與語言無關的接口,定義之后可以用任何面向對象的語言實現映射

J2EE標準

在分布式互操作協議上,J2EE同時支持RMI(遠程方法調用)和HOP(數據從一個網段傳遞到下一個網段),而在服務器端分布式應用的構造形式上,則包括了Java Serlet,JSP(Java Server Page),EJB等多種形式,以支持不同的業務需求,而且Java應用程序具有“Write once,run anywhere”(編寫一次,在任何地方運行)的特性,使得J2EE技術在分布式計算領域得到了快速發展。

應用

與電子商務的整合

互聯網是電子商務發展的基礎,電子商務在發展過程中離不開大量的信息傳輸,電子商務則使用了B/S技術來處理大量數據,中間件在B/S模式下起到功能層的作用,用戶從Web界面向服務器提交數據請求,功能層負責將這些請求分類為數據,再向數據庫發出數據交換申請,數據庫對請求進行篩選處理后,再將所需的數據通過功能層傳遞回到用戶端,此時單一用戶可以進行點對面的操作,無需通過其他軟件進行數據轉換。

在自然地理學上的應用

為實現專網和位置服務平臺的集成應用,可以通過一種中間件(位置路由工具)實現不同網絡間和不同編碼協議下位置信息的轉發。如HLJCORS(黑龍江省衛星定位連續運行綜合服務系統)和黑龍江省位置服務平臺是兩個相互獨立的、具有不同功能和用途的平臺,若將兩個平臺集成應用,則會實現更高精度的位置服務。但兩個平臺具有各自的網絡環境,不能直接進行數據交換,但通過中間件即可完成網絡環境和數據格式的轉換,位置路由工具接收到用戶設備的數據流后,首先完成數據解析,獲得用戶的經緯度、大地高等位置信息,然后按自定義數據格式編碼,將位置信息轉發給位置服務平臺。

與汽車工業的交集

汽車行業在向電動化、智能化、網聯化、共享化轉型,智能電控、智能駕駛、智能互聯、智能出行深刻影響著人們的生活與思考方式,面向服務的軟件架構也越來越受到各大汽車廠商的青睞。面向服務的中間件如數據分發服務(Data Distribution Service, DDS)能夠實現低延時、高可靠、高實時性的 數據融合服務,能夠從根本上降低軟件的耦合性、復雜性,提高軟件的模塊化特性,融合了 DDS 的 汽車軟件能夠更好地運行在下一代汽車的體系架 構中,更能降低開發的成本、縮短研發時間。

在電信業務系統中的應用

以Tuxedo中間件為例,該結構包括客戶機邏輯層、Tuxedo中間層、數據庫層,在三層結構體系中,電信查詢業務系統是基于C/S和B/S兩種架構方案來實現用戶信息查詢,如C/S架構部分提供個人及企業的總賬查詢、繳費歷史記錄查詢、余額查詢等,采用客戶端-應用服務器-數據庫服務器的架構來實現;B/S架構采用WEB瀏覽器-WEB服務器-應用服務器-數據庫服務器的架構,電信查詢業務系統以Tuxedo中間件為核心,綜合C/S和B/S兩種架構實現客戶端和服務器數據的交互和同步通訊。

在航天航空領域的應用

針對現代航空電子數據加載功能需求,可以設計并實現一種支持復用的數據加載中間件軟件,其介于應用軟件和系統軟件之間,使用系統軟件提供的例如文件系統、總線或網絡通信接口等基礎服務,連接數據加載系統中的加載管理端和代理端,屏蔽了數據加載相關操作的具體實現細節,向數據加載應用軟件提供與平臺無關的統一標準接口。可減少加載應用軟件的開發工作量, 并有助于提高數據加載系統的可靠性。

相關產品

優勢和局限性

優勢

支持標準的協議和標準的接口:中間件支持標準的協議和標準的接口,而標準接口對于可移植性和標準協議的互操作性的重要性使中間件已成為許多標準化工作的主要部分。同時能夠屏蔽操作系統和網絡協議的差異,為應用程序提供多種通信機制,并提供相應的平臺以滿足不同領域的需要。

定義了一個相對穩定的高層應用環境:中間件提供的程序接口定義了一個相對穩定的高層應用環境,不管底層的計算機硬件和系統軟件怎樣更新換代,只要將中間件升級更新,并保持中間件對外的接口定義不變,應用軟件就幾乎不需要進行任何修改,從而減少了企業在應用軟件開發和維護中的巨額投資成本。

縮短開發周期,減少維護費用:利用中間件有助于減輕應用軟件開發者的負擔,為利用現有的硬件設備、操作系統、數據庫管理系統以及對象模型創建分布式應用軟件提供便利。此外,縮短開發周期的同時,也減少了系統維護的費用。

局限性

應用產品單一,難以移植:多數流行的中間件服務使用專有的API和專有的協議,這使得應用建立于單一廠家的產品,不同廠家的產品間很難互相操作,同時有些中間件服務只提供某些特定平臺的實現,限制了應用在異構系統之間的移植。

存在安全風險:中間件層在從網絡中接收信息的過程中,會接收到因某種原因造成的無效或錯誤指令,或是攻擊者惡意傳輸進來的指令,有時無法甄別出真正的信息和指令。此外,攻擊者可能會在中間件數據的采集、傳輸、分配、存儲和應用等環節中躲過智能處理過程中的識別和過濾,從而達到攻擊系統的目的,給系統帶來風險。

存在成本差異:不同類型的中間件成本不同,如消息中間件可以用于實現數據訪問,但只在局域網上進行數據訪問顯然成本太大,或把交易中間件用在非交易類系統中傳遞消息也會增加成本,同時,技術培訓也會帶來開發成本的提高。

未來發展

中間件發展呈現出業務化、服務化、一體化、虛擬化趨勢,為了推動無邊界信息流,從而支撐開放、動態、多變的互聯網環境中的復雜應用系統,中間件未來將聚焦于消除“信息孤島”,集成、協同各種互聯網信息資源,實現對互聯網上的計算資源、數據資源、服務資源、軟件資源等的綜合利用,做到快速、靈活、可信,在提高效能的同時降低成本,如在提高組織IT基礎設施的業務敏捷性的同時降低總體成本。

參考資料 >

東方通董事長、總經理李利軍:新興中間件市場增長趨勢明顯,緊跟技術趨勢推陳出新.今日頭條.2024-02-28

生活家百科家居網