中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件位于客戶機/ 服務器的操作系統(tǒng)之上,管理計算機資源和網(wǎng)絡通訊。是連接兩個獨立應用程序或獨立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執(zhí)行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程序可以工作于多平臺或OS環(huán)境。
基本概念中間件是一類連接軟件組件和應用的計算機軟件,它包括一組服務。以便于運行在一臺或多臺機器上的多個軟件通過網(wǎng)絡進行交互。該技術所提供的互操作性,推動了一致分布式體系架構的演進,該架構通常用于支持并簡化那些復雜的分布式應用程序,它包括web服務器、事務監(jiān)控器和消息隊列軟件。
中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應用軟件的中間。
中間件在操作系統(tǒng)、網(wǎng)絡和數(shù)據(jù)庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。在眾多關于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。
近年來,人類生活中越來越多的領域已經(jīng)變得離不開計算機、網(wǎng)絡技術以及通信技術。并且隨著計算機技術的快速發(fā)展,更多的應用軟件被要求在許多不同的網(wǎng)絡協(xié)議、不同的硬件生產(chǎn)廠商以及不一樣的網(wǎng)絡平臺和環(huán)境上運營。這導致了軟件開發(fā)者需要面臨數(shù)據(jù)離散、操作困難、系統(tǒng)匹配程度低,以及需要開發(fā)多種應用程序來達到運營的目的。所以,中間件技術的產(chǎn)生,在極大程度上減輕了開發(fā)者的負擔,使得網(wǎng)絡的運行更有效率。1
基本功能中間件是獨立的系統(tǒng)級軟件,連接操作系統(tǒng)層和應用程序層,將不同操作系統(tǒng)提供應用的接口標準化,協(xié)議統(tǒng)一化,屏蔽具體操作的細節(jié),中間件一般提供如下功能:
(1)通信支持
中間件為其所支持的應用軟件提供平臺化的運行環(huán)境,該環(huán)境屏蔽底層通信之間的接口差異,實現(xiàn)互操作,所以通信支持是中間件一個最基本的功能。早期應用與分布式的中間件交互主要的通信方式為遠程調用和消息兩種方式。通信模塊中,遠程調用通過網(wǎng)絡進行通信,通過支持數(shù)據(jù)的轉換和通信服務,從而屏蔽不同的操作系統(tǒng)和網(wǎng)絡協(xié)議。遠程調用是提供給予過程的服務訪問,為上層系統(tǒng)只提供非常簡單的編程接口或過程調用模型。消息提供異步交互的機制。
(2)應用支持
中間件的目的就是服務上層應用,提供應用層不同服務之間的互操作機制。它為上層應用開發(fā)提供統(tǒng)一的平臺和運行環(huán)境,并封裝不同操作系統(tǒng)提供API接口,向應用提供統(tǒng)一的標準接口,使應用的開發(fā)和運行與操作系統(tǒng)無關,實現(xiàn)其獨立性。中間件松耦合的結構,標準的封裝服務和接口,有效的互操作機制,從而給應用結構化和開發(fā)方法提供有力的支持。
(3)公共服務
公共服務是對應用軟件中共性功能或約束的提取。將這些共性的功能或者約束分類實現(xiàn),并支持復用,作為公共服務,提供給應用程序使用。通過提供標準、統(tǒng)一的公共服務,可減少上層應用的開發(fā)工作量,縮短應用的開發(fā)時間,并有助于提供應用軟件的質量。2
分類(1)事務式中間件
事務式中間件又稱事務處理管理程序,是當前用的最廣泛的中間件之一,其主要功能是提供聯(lián)機事務處理所需要的通信、并發(fā)訪問控制、事務控制、資源管理、安全管理、負載平衡、故障恢復和其他必要的服務。事務式中間件支持大量客戶進程的并發(fā)訪問,具有極強的擴展性。由于事務式中間件具有可靠性高、極強的擴展性等特點,主要應用于電信、金融、飛機訂票系統(tǒng)、證券等擁有大量客戶的領域。
(2)過程式中間件
過程式中間件又稱遠程過程調用中間件。過程中間件一般從邏輯上分為兩部分:客戶和服務器。客戶和服務器是一個邏輯概念,既可以運行在同一計算機上,也可以運行在不同的計算機上,甚至客戶和服務器底層的操作系統(tǒng)也可以不同??蛻魴C和服務器之間的通信可以使用同步通信,也可以采用線程式異步調用。所以過程式中間件有較好的異構支持能力,簡單易用,但由于客戶和服務器之間采用訪問連接,所以在易剪裁性和容錯方面有一定的局限性。
(3)面向消息的中間件
面向消息的中間件,簡稱為消息中間件,是一類以消息為載體進行通信的中間件,利用高效可靠的消息機制來實現(xiàn)不同應用間大量的數(shù)據(jù)交換。按其通信模型的不同,消息中間件的通信模型有兩類:消息隊列和消息傳遞。通過這兩種消息模型,不同應用之間的通信和網(wǎng)絡的復雜性脫離,擺脫對不同通信協(xié)議的依賴,可以在復雜的網(wǎng)絡環(huán)境中高可靠、高效率的實現(xiàn)安全的異步通信。消息中間件的非直接連接,支持多種通信規(guī)程,達到多個系統(tǒng)之間的數(shù)據(jù)的共享和同步。面向消息中間件是一類常用的中間件。
(4)面向對象中間件
面向對象中間件又稱分布對象中間件,是分布式計算技術和面向對象技術發(fā)展的結合,簡稱對象中間件。分布對象模型是面向對象模型在分布異構環(huán)境下的自然拓廣。面向對象中間件給應用層提供過重不同形式的通信服務,通過這些服務,上層應用對事務處理、分布式數(shù)據(jù)訪問,對象管理等處理更簡單易行。OMG組織是分布對象技術標準化方面的國際組織,它制定出了CORBA等標準[6]。
(5)Web應用服務器
Web應用服務器是Web服務器和應用服務器相結合的產(chǎn)物。應用服務器中間件可以說是軟件的基礎設施,利用構件化技術將應用軟件整合到一個確定的協(xié)同工作環(huán)境中,并提供多種通信機制,事務處理能力,及應用的開發(fā)管理功能。由于直接支持三層或多層應用系統(tǒng)的開發(fā),應用服務器受到了廣大用戶的歡迎,是目前中間件市場上競爭的熱點,J2EE架構是目前應用服務器方面的主流標準。
(6)其他
新的應用需求、新的技術創(chuàng)新、新的應用領域促成了新的中間件產(chǎn)品的出現(xiàn)。如,ASAAC在研究標準航空電子體系結構時提出的通用系統(tǒng)管理GSM,屬于典型的嵌入式航電系統(tǒng)的中間件,互聯(lián)網(wǎng)云技術的發(fā)展云計算中間件、物流網(wǎng)的中間件等隨著應用市場的需求應運而生。2
基本特點特長1、滿足大量應用的需要 ;
2、運行于多種硬件和OS平臺 ;
3、支持分布式計算,提供跨網(wǎng)絡、硬件和OS平臺的透明性的應用或服務的交互功能 ;
4、支持標準的協(xié)議 ;
5、支持標準的接口。
局限中間件能夠屏蔽操作系統(tǒng)和網(wǎng)絡協(xié)議的差異,為應用程序提供多種通訊機制;并提供相應的平臺以滿足不同領域的需要。因此,中間件為應用程序提供了一個相對穩(wěn)定的高層應用環(huán)境。然而,中間件服務也并非“萬能藥”。中間件所應遵循的一些原則離實際還有很大距離。多數(shù)流行的中間件服務使用專有的API和專有的協(xié)議,使得應用建立于單一廠家的產(chǎn)品,來自不同廠家的實現(xiàn)很難互操作。有些中間件服務只提供一些平臺的實現(xiàn),從而限制了應用在異構系統(tǒng)之間的移植。應用開發(fā)者在這些中間件服務之上建立自己的應用還要承擔相當大的風險,隨著技術的發(fā)展他們往往還需重寫他們的系統(tǒng)。盡管中間件服務提高了分布計算的抽象化程度,但應用開發(fā)者還需面臨許多艱難的設計選擇,例如,開發(fā)者還需決定分布應用在client方和server方的功能分配。通常將表示服務放在client以方便使用顯示設備,將數(shù)據(jù)服務放在server以靠近數(shù)據(jù)庫,但也并非總是如此,何況其它應用功能如何分配也是不容易確定的。3
應用1、中間件與電子商務的整合。
Intemet是電子商務發(fā)展的基礎,讓商戶可以通過它,把商業(yè)擴展到能到達的任意地點。這其中離不開大量的信息傳輸,而電子商務則使用了瀏覽器/服務器B/S(BrowserJServer)的技術來達到大量數(shù)據(jù)處理的目的。
2、中間件在B/S模式中的架構。
中間件在B/S模式下起到了功能層的作用。當用戶從WEB界面向服務器提交了數(shù)據(jù)請求或者應用請求時,功能層負責將這些請求分類為數(shù)據(jù)或應用請求,再向數(shù)據(jù)庫發(fā)出數(shù)據(jù)交換申請。數(shù)據(jù)庫對請求進行篩選處理之后,再將所需的數(shù)據(jù)通過功能層傳遞回到用戶端。通過如此處理,單一用戶可以進行點對面的操作,無需通過其他軟件進行數(shù)據(jù)轉換。1
趨勢展望中間件技術的發(fā)展方向,將聚焦于消除信息孤島,推動無邊界信息流,支撐開放、動態(tài)、多變的互聯(lián)網(wǎng)環(huán)境中的復雜應用系統(tǒng),實現(xiàn)對分布于互聯(lián)網(wǎng)之上的各種自治信息資源(計算資源、數(shù)據(jù)資源、服務資源、軟件資源)的簡單、標準、快速、靈活、可信、高效能及低成本的集成、協(xié)同和綜合利用,提高組織的IT基礎設施的業(yè)務敏捷性,降低總體運維成本,促進IT與業(yè)務之間的匹配。中間件技術正在呈現(xiàn)出業(yè)務化、服務化、一體化、虛擬化等諸多新的重要發(fā)展趨勢。
近年來,中間件技術取得了很大的成功,成為研究熱點之一。隨著應用的普及和研究的深入,以及互聯(lián)網(wǎng)的發(fā)展,目前的中間件技術主要呈現(xiàn)出三方面的趨勢:首先,中間件越來越多地向傳統(tǒng)操作系統(tǒng)層滲透,向平臺化發(fā)展;其次,隨著網(wǎng)絡化的發(fā)展趨勢,應用軟件需要的支持機制越來越多,中間件會變廣變厚;其三,中間件也向構件化發(fā)展,為上層應用的結構設計和部署提供有效的支持,并為解決軟件復用問題提供支持。隨著我國信息化建設的推進,中間件市場越來越受到重視。中間件軟件市場對我們來說,既是挑戰(zhàn)也是機遇。目前國內一批中間件企業(yè)迅速崛起,2004年國內13家軟件企業(yè)成立中國首個中間件產(chǎn)業(yè)聯(lián)盟,在我國中間件技術將會長遠規(guī)?;l(fā)展,為跨平臺的應用開發(fā)、異構網(wǎng)絡環(huán)境的應用,軟件復用等提供了有效的解決之道。2
本詞條內容貢獻者為:
徐恒山 - 講師 - 西北農林科技大學