版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-中間件

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶(hù)提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶(hù)機(jī)/ 服務(wù)器的操作系統(tǒng)之上,管理計(jì)算機(jī)資源和網(wǎng)絡(luò)通訊。是連接兩個(gè)獨(dú)立應(yīng)用程序或獨(dú)立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過(guò)中間件相互之間仍能交換信息。執(zhí)行中間件的一個(gè)關(guān)鍵途徑是信息傳遞。通過(guò)中間件,應(yīng)用程序可以工作于多平臺(tái)或OS環(huán)境。

基本概念中間件是一類(lèi)連接軟件組件和應(yīng)用的計(jì)算機(jī)軟件,它包括一組服務(wù)。以便于運(yùn)行在一臺(tái)或多臺(tái)機(jī)器上的多個(gè)軟件通過(guò)網(wǎng)絡(luò)進(jìn)行交互。該技術(shù)所提供的互操作性,推動(dòng)了一致分布式體系架構(gòu)的演進(jìn),該架構(gòu)通常用于支持并簡(jiǎn)化那些復(fù)雜的分布式應(yīng)用程序,它包括web服務(wù)器、事務(wù)監(jiān)控器和消息隊(duì)列軟件。

中間件(middleware)是基礎(chǔ)軟件的一大類(lèi),屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶(hù)的應(yīng)用軟件的中間。

中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開(kāi)發(fā)的環(huán)境,幫助用戶(hù)靈活、高效地開(kāi)發(fā)和集成復(fù)雜的應(yīng)用軟件。在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶(hù)機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。

近年來(lái),人類(lèi)生活中越來(lái)越多的領(lǐng)域已經(jīng)變得離不開(kāi)計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)以及通信技術(shù)。并且隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,更多的應(yīng)用軟件被要求在許多不同的網(wǎng)絡(luò)協(xié)議、不同的硬件生產(chǎn)廠商以及不一樣的網(wǎng)絡(luò)平臺(tái)和環(huán)境上運(yùn)營(yíng)。這導(dǎo)致了軟件開(kāi)發(fā)者需要面臨數(shù)據(jù)離散、操作困難、系統(tǒng)匹配程度低,以及需要開(kāi)發(fā)多種應(yīng)用程序來(lái)達(dá)到運(yùn)營(yíng)的目的。所以,中間件技術(shù)的產(chǎn)生,在極大程度上減輕了開(kāi)發(fā)者的負(fù)擔(dān),使得網(wǎng)絡(luò)的運(yùn)行更有效率。1

基本功能中間件是獨(dú)立的系統(tǒng)級(jí)軟件,連接操作系統(tǒng)層和應(yīng)用程序?qū)樱瑢⒉煌僮飨到y(tǒng)提供應(yīng)用的接口標(biāo)準(zhǔn)化,協(xié)議統(tǒng)一化,屏蔽具體操作的細(xì)節(jié),中間件一般提供如下功能:

(1)通信支持

中間件為其所支持的應(yīng)用軟件提供平臺(tái)化的運(yùn)行環(huán)境,該環(huán)境屏蔽底層通信之間的接口差異,實(shí)現(xiàn)互操作,所以通信支持是中間件一個(gè)最基本的功能。早期應(yīng)用與分布式的中間件交互主要的通信方式為遠(yuǎn)程調(diào)用和消息兩種方式。通信模塊中,遠(yuǎn)程調(diào)用通過(guò)網(wǎng)絡(luò)進(jìn)行通信,通過(guò)支持?jǐn)?shù)據(jù)的轉(zhuǎn)換和通信服務(wù),從而屏蔽不同的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議。遠(yuǎn)程調(diào)用是提供給予過(guò)程的服務(wù)訪問(wèn),為上層系統(tǒng)只提供非常簡(jiǎn)單的編程接口或過(guò)程調(diào)用模型。消息提供異步交互的機(jī)制。

(2)應(yīng)用支持

中間件的目的就是服務(wù)上層應(yīng)用,提供應(yīng)用層不同服務(wù)之間的互操作機(jī)制。它為上層應(yīng)用開(kāi)發(fā)提供統(tǒng)一的平臺(tái)和運(yùn)行環(huán)境,并封裝不同操作系統(tǒng)提供API接口,向應(yīng)用提供統(tǒng)一的標(biāo)準(zhǔn)接口,使應(yīng)用的開(kāi)發(fā)和運(yùn)行與操作系統(tǒng)無(wú)關(guān),實(shí)現(xiàn)其獨(dú)立性。中間件松耦合的結(jié)構(gòu),標(biāo)準(zhǔn)的封裝服務(wù)和接口,有效的互操作機(jī)制,從而給應(yīng)用結(jié)構(gòu)化和開(kāi)發(fā)方法提供有力的支持。

(3)公共服務(wù)

公共服務(wù)是對(duì)應(yīng)用軟件中共性功能或約束的提取。將這些共性的功能或者約束分類(lèi)實(shí)現(xiàn),并支持復(fù)用,作為公共服務(wù),提供給應(yīng)用程序使用。通過(guò)提供標(biāo)準(zhǔn)、統(tǒng)一的公共服務(wù),可減少上層應(yīng)用的開(kāi)發(fā)工作量,縮短應(yīng)用的開(kāi)發(fā)時(shí)間,并有助于提供應(yīng)用軟件的質(zhì)量。2

分類(lèi)(1)事務(wù)式中間件

事務(wù)式中間件又稱(chēng)事務(wù)處理管理程序,是當(dāng)前用的最廣泛的中間件之一,其主要功能是提供聯(lián)機(jī)事務(wù)處理所需要的通信、并發(fā)訪問(wèn)控制、事務(wù)控制、資源管理、安全管理、負(fù)載平衡、故障恢復(fù)和其他必要的服務(wù)。事務(wù)式中間件支持大量客戶(hù)進(jìn)程的并發(fā)訪問(wèn),具有極強(qiáng)的擴(kuò)展性。由于事務(wù)式中間件具有可靠性高、極強(qiáng)的擴(kuò)展性等特點(diǎn),主要應(yīng)用于電信、金融、飛機(jī)訂票系統(tǒng)、證券等擁有大量客戶(hù)的領(lǐng)域。

(2)過(guò)程式中間件

過(guò)程式中間件又稱(chēng)遠(yuǎn)程過(guò)程調(diào)用中間件。過(guò)程中間件一般從邏輯上分為兩部分:客戶(hù)和服務(wù)器??蛻?hù)和服務(wù)器是一個(gè)邏輯概念,既可以運(yùn)行在同一計(jì)算機(jī)上,也可以運(yùn)行在不同的計(jì)算機(jī)上,甚至客戶(hù)和服務(wù)器底層的操作系統(tǒng)也可以不同??蛻?hù)機(jī)和服務(wù)器之間的通信可以使用同步通信,也可以采用線程式異步調(diào)用。所以過(guò)程式中間件有較好的異構(gòu)支持能力,簡(jiǎn)單易用,但由于客戶(hù)和服務(wù)器之間采用訪問(wèn)連接,所以在易剪裁性和容錯(cuò)方面有一定的局限性。

(3)面向消息的中間件

面向消息的中間件,簡(jiǎn)稱(chēng)為消息中間件,是一類(lèi)以消息為載體進(jìn)行通信的中間件,利用高效可靠的消息機(jī)制來(lái)實(shí)現(xiàn)不同應(yīng)用間大量的數(shù)據(jù)交換。按其通信模型的不同,消息中間件的通信模型有兩類(lèi):消息隊(duì)列和消息傳遞。通過(guò)這兩種消息模型,不同應(yīng)用之間的通信和網(wǎng)絡(luò)的復(fù)雜性脫離,擺脫對(duì)不同通信協(xié)議的依賴(lài),可以在復(fù)雜的網(wǎng)絡(luò)環(huán)境中高可靠、高效率的實(shí)現(xiàn)安全的異步通信。消息中間件的非直接連接,支持多種通信規(guī)程,達(dá)到多個(gè)系統(tǒng)之間的數(shù)據(jù)的共享和同步。面向消息中間件是一類(lèi)常用的中間件。

(4)面向?qū)ο笾虚g件

面向?qū)ο笾虚g件又稱(chēng)分布對(duì)象中間件,是分布式計(jì)算技術(shù)和面向?qū)ο蠹夹g(shù)發(fā)展的結(jié)合,簡(jiǎn)稱(chēng)對(duì)象中間件。分布對(duì)象模型是面向?qū)ο竽P驮诜植籍悩?gòu)環(huán)境下的自然拓廣。面向?qū)ο笾虚g件給應(yīng)用層提供過(guò)重不同形式的通信服務(wù),通過(guò)這些服務(wù),上層應(yīng)用對(duì)事務(wù)處理、分布式數(shù)據(jù)訪問(wèn),對(duì)象管理等處理更簡(jiǎn)單易行。OMG組織是分布對(duì)象技術(shù)標(biāo)準(zhǔn)化方面的國(guó)際組織,它制定出了CORBA等標(biāo)準(zhǔn)[6]。

(5)Web應(yīng)用服務(wù)器

Web應(yīng)用服務(wù)器是Web服務(wù)器和應(yīng)用服務(wù)器相結(jié)合的產(chǎn)物。應(yīng)用服務(wù)器中間件可以說(shuō)是軟件的基礎(chǔ)設(shè)施,利用構(gòu)件化技術(shù)將應(yīng)用軟件整合到一個(gè)確定的協(xié)同工作環(huán)境中,并提供多種通信機(jī)制,事務(wù)處理能力,及應(yīng)用的開(kāi)發(fā)管理功能。由于直接支持三層或多層應(yīng)用系統(tǒng)的開(kāi)發(fā),應(yīng)用服務(wù)器受到了廣大用戶(hù)的歡迎,是目前中間件市場(chǎng)上競(jìng)爭(zhēng)的熱點(diǎn),J2EE架構(gòu)是目前應(yīng)用服務(wù)器方面的主流標(biāo)準(zhǔn)。

(6)其他

新的應(yīng)用需求、新的技術(shù)創(chuàng)新、新的應(yīng)用領(lǐng)域促成了新的中間件產(chǎn)品的出現(xiàn)。如,ASAAC在研究標(biāo)準(zhǔn)航空電子體系結(jié)構(gòu)時(shí)提出的通用系統(tǒng)管理GSM,屬于典型的嵌入式航電系統(tǒng)的中間件,互聯(lián)網(wǎng)云技術(shù)的發(fā)展云計(jì)算中間件、物流網(wǎng)的中間件等隨著應(yīng)用市場(chǎng)的需求應(yīng)運(yùn)而生。2

基本特點(diǎn)特長(zhǎng)1、滿(mǎn)足大量應(yīng)用的需要 ;

2、運(yùn)行于多種硬件和OS平臺(tái) ;

3、支持分布式計(jì)算,提供跨網(wǎng)絡(luò)、硬件和OS平臺(tái)的透明性的應(yīng)用或服務(wù)的交互功能 ;

4、支持標(biāo)準(zhǔn)的協(xié)議 ;

5、支持標(biāo)準(zhǔn)的接口。

局限中間件能夠屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,為應(yīng)用程序提供多種通訊機(jī)制;并提供相應(yīng)的平臺(tái)以滿(mǎn)足不同領(lǐng)域的需要。因此,中間件為應(yīng)用程序提供了一個(gè)相對(duì)穩(wěn)定的高層應(yīng)用環(huán)境。然而,中間件服務(wù)也并非“萬(wàn)能藥”。中間件所應(yīng)遵循的一些原則離實(shí)際還有很大距離。多數(shù)流行的中間件服務(wù)使用專(zhuān)有的API和專(zhuān)有的協(xié)議,使得應(yīng)用建立于單一廠家的產(chǎn)品,來(lái)自不同廠家的實(shí)現(xiàn)很難互操作。有些中間件服務(wù)只提供一些平臺(tái)的實(shí)現(xiàn),從而限制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。應(yīng)用開(kāi)發(fā)者在這些中間件服務(wù)之上建立自己的應(yīng)用還要承擔(dān)相當(dāng)大的風(fēng)險(xiǎn),隨著技術(shù)的發(fā)展他們往往還需重寫(xiě)他們的系統(tǒng)。盡管中間件服務(wù)提高了分布計(jì)算的抽象化程度,但應(yīng)用開(kāi)發(fā)者還需面臨許多艱難的設(shè)計(jì)選擇,例如,開(kāi)發(fā)者還需決定分布應(yīng)用在client方和server方的功能分配。通常將表示服務(wù)放在client以方便使用顯示設(shè)備,將數(shù)據(jù)服務(wù)放在server以靠近數(shù)據(jù)庫(kù),但也并非總是如此,何況其它應(yīng)用功能如何分配也是不容易確定的。3

應(yīng)用1、中間件與電子商務(wù)的整合。

Intemet是電子商務(wù)發(fā)展的基礎(chǔ),讓商戶(hù)可以通過(guò)它,把商業(yè)擴(kuò)展到能到達(dá)的任意地點(diǎn)。這其中離不開(kāi)大量的信息傳輸,而電子商務(wù)則使用了瀏覽器/服務(wù)器B/S(BrowserJServer)的技術(shù)來(lái)達(dá)到大量數(shù)據(jù)處理的目的。

2、中間件在B/S模式中的架構(gòu)。

中間件在B/S模式下起到了功能層的作用。當(dāng)用戶(hù)從WEB界面向服務(wù)器提交了數(shù)據(jù)請(qǐng)求或者應(yīng)用請(qǐng)求時(shí),功能層負(fù)責(zé)將這些請(qǐng)求分類(lèi)為數(shù)據(jù)或應(yīng)用請(qǐng)求,再向數(shù)據(jù)庫(kù)發(fā)出數(shù)據(jù)交換申請(qǐng)。數(shù)據(jù)庫(kù)對(duì)請(qǐng)求進(jìn)行篩選處理之后,再將所需的數(shù)據(jù)通過(guò)功能層傳遞回到用戶(hù)端。通過(guò)如此處理,單一用戶(hù)可以進(jìn)行點(diǎn)對(duì)面的操作,無(wú)需通過(guò)其他軟件進(jìn)行數(shù)據(jù)轉(zhuǎn)換。1

趨勢(shì)展望中間件技術(shù)的發(fā)展方向,將聚焦于消除信息孤島,推動(dòng)無(wú)邊界信息流,支撐開(kāi)放、動(dòng)態(tài)、多變的互聯(lián)網(wǎng)環(huán)境中的復(fù)雜應(yīng)用系統(tǒng),實(shí)現(xiàn)對(duì)分布于互聯(lián)網(wǎng)之上的各種自治信息資源(計(jì)算資源、數(shù)據(jù)資源、服務(wù)資源、軟件資源)的簡(jiǎn)單、標(biāo)準(zhǔn)、快速、靈活、可信、高效能及低成本的集成、協(xié)同和綜合利用,提高組織的IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性,降低總體運(yùn)維成本,促進(jìn)IT與業(yè)務(wù)之間的匹配。中間件技術(shù)正在呈現(xiàn)出業(yè)務(wù)化、服務(wù)化、一體化、虛擬化等諸多新的重要發(fā)展趨勢(shì)。

近年來(lái),中間件技術(shù)取得了很大的成功,成為研究熱點(diǎn)之一。隨著應(yīng)用的普及和研究的深入,以及互聯(lián)網(wǎng)的發(fā)展,目前的中間件技術(shù)主要呈現(xiàn)出三方面的趨勢(shì):首先,中間件越來(lái)越多地向傳統(tǒng)操作系統(tǒng)層滲透,向平臺(tái)化發(fā)展;其次,隨著網(wǎng)絡(luò)化的發(fā)展趨勢(shì),應(yīng)用軟件需要的支持機(jī)制越來(lái)越多,中間件會(huì)變廣變厚;其三,中間件也向構(gòu)件化發(fā)展,為上層應(yīng)用的結(jié)構(gòu)設(shè)計(jì)和部署提供有效的支持,并為解決軟件復(fù)用問(wèn)題提供支持。隨著我國(guó)信息化建設(shè)的推進(jìn),中間件市場(chǎng)越來(lái)越受到重視。中間件軟件市場(chǎng)對(duì)我們來(lái)說(shuō),既是挑戰(zhàn)也是機(jī)遇。目前國(guó)內(nèi)一批中間件企業(yè)迅速崛起,2004年國(guó)內(nèi)13家軟件企業(yè)成立中國(guó)首個(gè)中間件產(chǎn)業(yè)聯(lián)盟,在我國(guó)中間件技術(shù)將會(huì)長(zhǎng)遠(yuǎn)規(guī)?;l(fā)展,為跨平臺(tái)的應(yīng)用開(kāi)發(fā)、異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用,軟件復(fù)用等提供了有效的解決之道。2

本詞條內(nèi)容貢獻(xiàn)者為:

徐恒山 - 講師 - 西北農(nóng)林科技大學(xué)