1 市場
在全球范圍內(nèi), Internet的蓬勃發(fā)展和網(wǎng)絡(luò)計(jì)算的需求劇增,使中間件(middleware)正在成為軟件行業(yè)新的技術(shù)與經(jīng)濟(jì)增長點(diǎn)。IBM、BEA、Oracle、Inprise(原Borland)、Microsoft及Sun等國外廠商早已涉足其中,而國內(nèi)研究與推廣中間件產(chǎn)品的公司也日漸增多。業(yè)內(nèi)人士提出,應(yīng)該將中間件作為發(fā)展自主版權(quán)基礎(chǔ)軟件的突破口。根據(jù)Forrester Research估計(jì),僅僅是B to B電子商務(wù),到2003年的年收入就將達(dá)到1.3萬億美元,而基于Internet的電子商務(wù)業(yè)務(wù)將有79%建筑在中間件的基礎(chǔ)之上。無疑這將帶來一個潛力巨大的市場。
1.1 國際市場
根據(jù)國際數(shù)據(jù)公司(IDC)預(yù)測,1997-2002年,增長率最高的中間件將集中在消息中間件、交易中間件、對象中間件、應(yīng)用服務(wù)器中間件、數(shù)據(jù)訪問中間件5種(統(tǒng)計(jì)數(shù)據(jù)見下表)。
IDC的市場調(diào)查分析
中間件類型
1997年銷售額
(億美元)
2002年銷售額(億美元)
年平均增長率
亞太市場銷售額(億美元)
消息中間件
3.6
24.5
46%
3.6
交易中間件
3.5
16.5
36%
2.6
對象中間件
1.4
7
34%
0.56
數(shù)據(jù)訪問中間件
6.1
16.5
23%
-
應(yīng)用服務(wù)器*
-
40
-
-
安全中間件
1.227
3
-
-
由此可見,消息中間件是近幾年中間件產(chǎn)品銷售的熱點(diǎn)。Standish 組織[IEEE-1]2001 年的CIO 調(diào)查顯示,在新建或是改造戰(zhàn)略性應(yīng)用程序中有47%的計(jì)劃使用交易中間件,27%使用消息中間件。消息中間件適用于任何需要進(jìn)行網(wǎng)絡(luò)通信的系統(tǒng),可以跨平臺操作,為不同操作系統(tǒng)上的應(yīng)用軟件集成提供方便,滿足企業(yè)內(nèi)部對系統(tǒng)伸縮性和可擴(kuò)展性的要求。 根據(jù)X/OPEN組織定義的分布式交易處理參考模型建立的交易中間件,適用于聯(lián)機(jī)交易處理系統(tǒng),管理分布于不同計(jì)算機(jī)上的數(shù)據(jù)的一致性,保障系統(tǒng)處理能力的均衡負(fù)載。如果也把交易中間件看成是一類特殊的消息中間件的話,那么,消息中間件在目前的市場上占據(jù)主導(dǎo)地位。作為此類中間件主要有IBM的MQSeries、BEA的Tuxedo。
隨著面向?qū)ο蟮膽?yīng)用系統(tǒng)的逐漸增長,對象中間件的需求也在逐年加大。對象技術(shù)的優(yōu)勢和對象中間件的標(biāo)準(zhǔn)化,促使對象中間件的功能將最終涵蓋其它幾類中間件的功能而成為中間件產(chǎn)品的主流。各大硬軟件廠商都在積極參與有關(guān)標(biāo)準(zhǔn)的制定和產(chǎn)品開發(fā)工作,如IBM、HP、DEC、AT&&T、ICL、Microsoft、Borland等。許多對象中間件的專門廠商也相繼誕生,目前Iona在全球面向?qū)ο笾虚g件市場份額為22.3 %,居第一位。此外,還有BEA的產(chǎn)品M3和Borland的VisiBroker。
1.2 國內(nèi)市場
1999年軟件市場構(gòu)成為[IEEE-2]:應(yīng)用軟件62.6%,支撐軟件25.4%,系統(tǒng)軟件11.9%。2000年軟件市場的分類方法上略有改變,分為平臺軟件、中間軟件和應(yīng)用軟件,其市場情況為:平臺軟件市場為73.8億元,中間軟件市場為9.2億元,應(yīng)用軟件市場為147億元。
雖然國內(nèi)中間件市場剛剛啟步,但隨著分布式應(yīng)用系統(tǒng)逐步完成由兩層結(jié)構(gòu)模式向三層結(jié)構(gòu)模式的轉(zhuǎn)變以及互聯(lián)網(wǎng)和電子商務(wù)的迅猛發(fā)展,我國中間件軟件行業(yè)將很快進(jìn)入迅速成長階段。近兩年國內(nèi)部分公司在中間件技術(shù)上取得突破,東方通科技、東軟、北大青鳥、金蝶、托普等軟件公司紛紛向中間件領(lǐng)域進(jìn)軍。比較成功的有東方通科技的消息中間件TongLINK/Q 、交易中間件TongEASY、分布對象中間件TongBroker,中科院軟件所的網(wǎng)絡(luò)通信中間件ISMQ、分布對象中間件ISBroker等。
2 應(yīng)用需求
2.1 應(yīng)用集成和Internet計(jì)算
應(yīng)用集成是推動中間件技術(shù)的原動力,企業(yè)級應(yīng)用集成是中間件的主要市場所在。現(xiàn)有的中間件技術(shù)和集成解決方案(包括CORBA、J2EE、DCOM/COM+及時下十分火熱的WebService等)已成功地運(yùn)用在不同領(lǐng)域、不同規(guī)模的應(yīng)用中。但是,現(xiàn)在分布應(yīng)用呈現(xiàn)的發(fā)展趨勢是:企業(yè)應(yīng)用不再具有明顯的邊界,規(guī)模迅速擴(kuò)大;集成的依托平臺從較規(guī)則的Intranet拓展到無結(jié)構(gòu)的Internet;集成粒度從單機(jī)細(xì)粒度成發(fā)展成為分布應(yīng)用的再集成;集成范圍從單個企業(yè)內(nèi)部的資源整合發(fā)展成為多個企業(yè)之間的協(xié)同合作。企業(yè)級應(yīng)用面臨的新的挑戰(zhàn)是:
n 各企業(yè)采用的服務(wù)器技術(shù)不同、服務(wù)器提供商不同
n 各企業(yè)數(shù)據(jù)存儲模式、信息交互模式不同
n 各企業(yè)管理策略不同,彼此存在著相互信任問題
n WEB環(huán)境下訪問量的不可預(yù)計(jì)需要高可伸縮性、高可用性的服務(wù)器系統(tǒng)
n Internet環(huán)境需要靈活有效的安全控制和QoS保障
n 企業(yè)間的業(yè)務(wù)合作需要完善的工作流控制
n 分布應(yīng)用的復(fù)雜性需要對分布資源和環(huán)境實(shí)施有效地管理
n 傳統(tǒng)的C/S結(jié)構(gòu)并不適合所有應(yīng)用模式
n 充分保護(hù)已有投資
社會信息化需要打破企業(yè)間的信息界限,實(shí)現(xiàn)多種服務(wù)器技術(shù)的互操作、企業(yè)間數(shù)據(jù)充分共享和安全交換、工作流程控制、非集中的管理模式。未來的中間件技術(shù)應(yīng)以松散的結(jié)構(gòu)支持多種模式交互,以標(biāo)準(zhǔn)通用的格式支持?jǐn)?shù)據(jù)無邊界流動,面向特定領(lǐng)域?yàn)槎擞脩籼峁┏浞值馁Y源控制;面向復(fù)雜的internet環(huán)境提供靈活的負(fù)載平衡、容錯恢復(fù)機(jī)制。
2.2 服務(wù)質(zhì)量
QoS是一個十分廣泛的概念,在很多領(lǐng)域都有對QoS的研究,例如端用戶對服務(wù)質(zhì)量的要求、中間件對服務(wù)質(zhì)量的支持,操作系統(tǒng)對服務(wù)質(zhì)量的支持,通信網(wǎng)絡(luò)對服務(wù)質(zhì)量的支持等。
隨著中間件向一些應(yīng)用領(lǐng)域的擴(kuò)展(如實(shí)時領(lǐng)域),一些新型的QoS敏感的應(yīng)用(如遠(yuǎn)程醫(yī)療、電視會議、大規(guī)模交互式仿真)不斷涌現(xiàn)。它們對QoS有方面的需求,如帶寬、延遲、抖動,但傳統(tǒng)的中間件提供的best-effort能力已經(jīng)不能這些滿足應(yīng)用的需求,需要在中間件中提供對應(yīng)的QoS機(jī)制以滿足應(yīng)用的需求。此外,對于使用付費(fèi)服務(wù)的客戶來說,QoS分級控制與他們的切身利益直接相關(guān),也是他們所關(guān)心的。
應(yīng)用需要QoS中間件一般要具有如下功能[IEEE-3]:
l 向應(yīng)用程序提供一種高級編程范形,使應(yīng)用程序能夠指定QoS要求
l 向應(yīng)用程序提供QoS協(xié)商和QoS控制機(jī)制
l 能夠操作于開放動態(tài)的環(huán)境之中,能夠適應(yīng)環(huán)境的動態(tài)變化(也即具有自適應(yīng)性)
l 具有一般性和靈活性,能夠支持許多(將來的)系統(tǒng)相關(guān)的QoS機(jī)制,從而支持多維QoS
l 具有QoS監(jiān)控功能
l 具有QoS管理功能,提供服務(wù)質(zhì)量的中間件應(yīng)當(dāng)能夠?qū)ψ约禾峁┑腝oS進(jìn)行管理,能夠向高層提供中間件層目前的QoS能力。
2.3 移動設(shè)備接入[4]
隨著無線互聯(lián)技術(shù)趨于實(shí)用,移動設(shè)備和其它手持式數(shù)字設(shè)備成為分布應(yīng)用的一個不可忽視的平臺。無線通信協(xié)議(如WAP標(biāo)準(zhǔn))使得便攜式電腦、PDA、手機(jī)、車載信息設(shè)備有條件擺脫線纜的束縛而提供anywhere &anytime的信息訪問能力。但無線設(shè)備面對的是一個不均衡、不穩(wěn)定的網(wǎng)絡(luò),不同位置網(wǎng)絡(luò)帶寬相差很大,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)處于不斷變化之中,無線設(shè)備使用電池也常常使設(shè)備從網(wǎng)絡(luò)連接上斷開而成為不可達(dá)的結(jié)點(diǎn)。因此,適用于無線設(shè)備的中間件需要提供機(jī)制偵測網(wǎng)絡(luò)狀況的變化,并跟據(jù)新的通信條件和服務(wù)質(zhì)量要求重新配置組件。此外,對于某些位置敏感的移動應(yīng)用,需要中間件提供環(huán)境信息來指導(dǎo)應(yīng)用行為,這與傳統(tǒng)中間件的“位置透明”原則是相背的。
3 研發(fā)熱點(diǎn)
3.1 松散藕合的服務(wù)器技術(shù)
企業(yè)應(yīng)用集成和Internet應(yīng)用的發(fā)展需要不同服務(wù)器技術(shù)的互操作。目前的研發(fā)熱點(diǎn)是微軟提出、并得到IBM、SUN等數(shù)家大公司支持合作的WebService,及基于SOAP的服務(wù)器互聯(lián)技術(shù)。
3.1.1 技術(shù)概述
WebService是一種Internet上松散藕合的軟組件技術(shù),它利用十分成熟的WEB技術(shù)和XML格式的消息編碼,使得服務(wù)的遠(yuǎn)程訪問可以突破防火墻和應(yīng)用服務(wù)器的限制,實(shí)現(xiàn)廣域網(wǎng)范圍內(nèi)的分布計(jì)算。它的主要技術(shù)特征包括:
l 使用XML描述消息交互
l 使用SOAP協(xié)議將靜態(tài)Web改造成為一個分布計(jì)算平臺;
l 用WSDL進(jìn)行服務(wù)描述
l 基于UDDI進(jìn)行服務(wù)的發(fā)布和發(fā)現(xiàn)
在某個網(wǎng)絡(luò)中分布應(yīng)用程序邏輯并不是新概念,在Web中分布并集成應(yīng)用程序才是一個新概念。WebService的價值在于提供了簡單的服務(wù)器技術(shù)集成方案,而它可能帶來的軟件開發(fā)和軟件銷售的變革可能比技術(shù)本身更有意義。但是WebService并不是(至少目前尚不是)一套完整的服務(wù)器技術(shù)體系,實(shí)際上它僅規(guī)定了服務(wù)描述、發(fā)布和通信交互的規(guī)范,而對服務(wù)的具體實(shí)現(xiàn)手段沒有限制,它自身也沒有提供諸如安全、事務(wù)等企業(yè)應(yīng)用特性。因此,WebService不可能脫離具體的服務(wù)器技術(shù),Service的具體仍實(shí)現(xiàn)需要依賴CORBA、JavaBean、COM等手段。
3.1.2 產(chǎn)品開發(fā)
目前,各主要中間件公司(如IBM、Microsoft、SoftwareAG、INOA、CapeClear、Rogue Wave Software)紛紛將對WebService的支持列入發(fā)展計(jì)劃,并推出支持WebService的應(yīng)用開發(fā)系統(tǒng)或推出原有應(yīng)用服務(wù)器的SOAP擴(kuò)展,典型的如Microsoft .NET、iona的XMLBus、RogueWave的Xorba、CapeClear的CapeConnect。它們的基本特點(diǎn)有:
1. 依賴于特定的WEB服務(wù)器或應(yīng)用服務(wù)器提供服務(wù)器端的SOAP綁定
2. 支持兩種模式的WebService開發(fā):
n 自頂向下:首先給出WSDL描述,然后將其映射為服務(wù)端skeleton
n 自底向上:將已有的CORBA對象、EJB、JavaClass包裝為WebService,實(shí)現(xiàn)SOAP到IIOP(RMI)的橋接及IDL(或 java interface)到WSDL的自動轉(zhuǎn)換
3. 服務(wù)的具體實(shí)現(xiàn)依賴于原有的服務(wù)器技術(shù)
4. 支持靜態(tài)和動態(tài)方式構(gòu)造SOAP請求
5. 私有的編程API
6. 集成各種輔助工具,如WSDL生成工具、XML消息查看器、通用測試客戶端等
3.1.3 研究內(nèi)容
對于WebService的研究工作主要包括WebService協(xié)議棧本身的研究、WebService與現(xiàn)有服務(wù)器技術(shù)結(jié)合標(biāo)準(zhǔn)化兩方面,如:
n 基于XML的安全機(jī)制,如Security Assertions Markup Language (SAML)[IEEE-8]、XML Key Management System (XKMS)[5]、XML Access Control Markup Language(XACML)[IEEE-6]、SOAP-DIG[IEEE-7](W3C)等
n 基于UDDI的服務(wù)發(fā)布規(guī)范和服務(wù)檢索
n 基于WebService的服務(wù)銷售和計(jì)費(fèi)模式
n CORBA與SOAP協(xié)議的集成,如OMG的簡單CORBA對象訪問協(xié)議草案(SCOAP Submission)[IEEE-9]
3.2 基于XML的數(shù)據(jù)交換
3.3 支持QoS的中間件
隨著網(wǎng)絡(luò)通信QoS 在理論上、標(biāo)準(zhǔn)上的逐漸完善和實(shí)踐中的逐步推廣實(shí)施,推動了操作系統(tǒng)層QoS 和中間件層QoS 的研究。在最新的CORBA 2.5規(guī)范[IEEE-14]中對QoS進(jìn)行了詳細(xì)的定義,涉及了如下的一些內(nèi)容:實(shí)時CORBA、容錯CORBA、CORBA Messaging 、minumCORBA等。
3.3.1 研究內(nèi)容
QoS研究的趨勢是提供一個QoS集成框架,在這個框架中能夠集成多維QoS,包括實(shí)時性、可靠性、性能、安全和容錯等。與中間件中的QoS相關(guān)的問題大體上包括:QoS定義機(jī)制、QoS映射機(jī)制、QoS控制機(jī)制、QoS管理機(jī)制、QoS監(jiān)控機(jī)制、QoS協(xié)商機(jī)制。提供QoS的途徑之一是利用OCI接口,通過私有的協(xié)議在中間件中集成QoS(例如通過IP Multicast實(shí)現(xiàn)容錯服務(wù))。中間件向應(yīng)用提供的定義QoS的方法有:通過IDL定義語言、通過擴(kuò)展后的IDL定義語言、通過專門的QoS定義語言、通過策略設(shè)置等
提高應(yīng)用系統(tǒng)的自適應(yīng)性是目前中間件中QoS研究的另一個目標(biāo)。應(yīng)用系統(tǒng)需要根據(jù)運(yùn)行環(huán)境的動態(tài)變化而適應(yīng)性的作出變化,所以需要中間件提供相應(yīng)的機(jī)制使應(yīng)用能夠感知環(huán)境的變化同時采取不同的對策。反射式中間件是一個解決方案。
3.3.2 研究實(shí)例:
QoS-A
英國Lancaster 大學(xué)計(jì)算機(jī)系的QoS-A是一個QoS體系結(jié)構(gòu),它提供了一個框架來指定和實(shí)現(xiàn)施運(yùn)行于基于ATM的高性能網(wǎng)絡(luò)之上的多媒體應(yīng)用的性能屬性。QoS-A提供“系統(tǒng)范圍的QoS”,包括端系統(tǒng)、通信系統(tǒng)和網(wǎng)絡(luò)。QoS-A體系結(jié)構(gòu)由協(xié)議平面、QoS維持平面和流管理平面三個平面(plane)組成,它能夠翻譯QoS要求,預(yù)留由網(wǎng)絡(luò)和操作系統(tǒng)提供的資源,并能透明的進(jìn)行QoS適應(yīng)(不需要應(yīng)用干預(yù)),當(dāng)QoS發(fā)生變化時可以通知應(yīng)用程序。但是,QoS-A并不適合于開放的環(huán)境,由于與底層的系統(tǒng)緊密集成在一起,QoS-A無法與不同的資源預(yù)留協(xié)議交互。此外,它的應(yīng)用領(lǐng)域被限制到多媒體系統(tǒng),它的QoS機(jī)制不能被應(yīng)用編程人員擴(kuò)展。
Q-RAM
Carnegie Mellon 大學(xué)的Q-RAM研究系統(tǒng)中具有多個應(yīng)用,每個應(yīng)用都有其多方面的QoS 需求并相互競爭多種資源的情況下,如何同時滿足這些應(yīng)用的QoS 需求,如何分配多種資源,使得整體效果最優(yōu)。Q-RAM 的研究重點(diǎn)在資源的最優(yōu)化分配,它第一次提出了多維QoS 和多維資源的概念,但是比較偏重于理論和數(shù)學(xué)模型。
QUO
目前在CORBA 平臺上進(jìn)行QoS 研究的主要代表是BBN 的QUO、Washington 大學(xué)的ACE+TAO,以及OMG 的一些支持QoS 的規(guī)范。
QUO的設(shè)計(jì)思想如下:客戶對QoS有一定期望,針對不同的QoS期望客戶可能有不同的行為,系統(tǒng)在某一時刻的狀態(tài)決定了系統(tǒng)在當(dāng)前時刻可以提供的QoS,客戶可以根據(jù)當(dāng)前的系統(tǒng)QoS狀態(tài),適應(yīng)性地采取不同的行為。
QUO 設(shè)計(jì)了一個質(zhì)量描述語言QDL,由合同描述語言CDL 、結(jié)構(gòu)描述語言SDL 和資源描述語言RDL 組成。為了描述客戶和某個對象間的QoS 合同,包括客戶期望的QoS 和對象能提供的QoS ,監(jiān)測和控制QoS 的系統(tǒng)對象,以及監(jiān)測到QoS 改變時采取的行動,QUO提供了CDL。為了描述QUO 應(yīng)用程序的結(jié)構(gòu)和指定適應(yīng)性行為,QUO提供了SDL。為了描述可以獲得的系統(tǒng)資源及其狀態(tài),QUO提供了RDL。為了監(jiān)控系統(tǒng)目前的狀態(tài),QUO在內(nèi)核中增加了系統(tǒng)條件對象。
ACE+TAO
Washington 大學(xué)在QoS 方面的研究體現(xiàn)在TAO 中的調(diào)度服務(wù)和ACE 中的AQoSA。TAO調(diào)度服務(wù)為應(yīng)用開發(fā)者提供了接口來指定對象操作的執(zhí)行周期、最壞情況執(zhí)行時間、重要程度、緊急程度等QoS 參數(shù),根據(jù)系統(tǒng)中所有操作的QoS 進(jìn)行調(diào)度分析,并映射到ORB 中的分發(fā)優(yōu)先級。AQoSA 是在ACE 中提供了統(tǒng)一的QoS API 來為上層屏蔽底層的不同的QoS 協(xié)議和接口。這些QoS API可以通過TAO向應(yīng)用提供,也可與高層的中間件服務(wù)集成。
Trinity學(xué)院的Quartz
愛爾蘭都柏林Trinity 學(xué)院的Quartz是為了實(shí)現(xiàn)CORBA A/V Streaming 服務(wù)而設(shè)計(jì)和實(shí)現(xiàn)的一個QoS 框架結(jié)構(gòu),使得CORBA 應(yīng)用可以傳輸實(shí)時媒體。QoS定義是通過CORBA A/V Streaming 服務(wù)的接口來指定的。Quartz是一個在開放系統(tǒng)中定義和實(shí)施QoS的QoS體系結(jié)構(gòu),它基于可替換的組件,具有靈活性和可擴(kuò)展性、支持QoS適應(yīng)
Twente大學(xué)的QoS集成方法
Twente大學(xué)的QoS集成方法的思想是利用特殊的協(xié)議來支持QoS,同時維護(hù)互操作性。它們成功地利用OCI接口使用特殊的協(xié)議擴(kuò)展了ORB,實(shí)現(xiàn)了IP 組播,從而實(shí)現(xiàn)了容錯QoS。為了實(shí)現(xiàn)IP 組播,它們修改了對象引用(IOR),在IOR中包含了組的IP地址。這樣就通過組抽象實(shí)現(xiàn)了副本透明性(Replication Transparancy)。
3.4 反射式中間件
現(xiàn)在中間件技術(shù)已運(yùn)用于各個領(lǐng)域,如安全、事務(wù)處理、嵌入、實(shí)時等,但傳統(tǒng)的中間件內(nèi)部結(jié)構(gòu)的不可見的、提供的服務(wù)是固定的、所使用的協(xié)議和采取的管理策略也是預(yù)先設(shè)定的。這使得中間件本身成為一個“死”的、不可進(jìn)化的實(shí)體,它不能跟據(jù)平臺、環(huán)境的變化或技術(shù)的發(fā)展動態(tài)的調(diào)整自已的功能和性能。例如,QoS框架需要中間件具有環(huán)境感知能力,即能夠跟據(jù)網(wǎng)絡(luò)連接狀況的變化動態(tài)進(jìn)行QoS的重配置,實(shí)現(xiàn)QoS的自適應(yīng)管理。下一代的中間件應(yīng)是:針對特定應(yīng)用域是可配置的、可動態(tài)重配置和可進(jìn)化的[IEEE-4]。反射式體系結(jié)構(gòu)即是在這種背景下提出的。
3.4.1 技術(shù)概述
“反射”的思想最初來源于程序語言及操作系統(tǒng)。一個反射系統(tǒng)是指該系統(tǒng)提供描述自身行為、修改自身狀態(tài)的能力。Pattie Maes在1987年首次提出這一概念時,用causally connected self representation (CCSR)[10]描述“反射”的含義。這一方法的關(guān)鍵是提供元接口來支持對底層虛擬機(jī)的狀態(tài)檢查和修改[IEEE-14]。元接口提供獲取中間件平臺內(nèi)部操作和結(jié)構(gòu)的操作,并能在運(yùn)行時刻修改它們。如何設(shè)計(jì)元接口是反射式中間件研究的中心內(nèi)容,接口應(yīng)足夠通用,從而允許未來對平臺的不可預(yù)見的修改,另一方面,又必須保證接口的暴露不致于破壞系統(tǒng)的完整性。
將反射機(jī)制運(yùn)用于中間件,將使得中間件對環(huán)境具有更好的適應(yīng)性,尤其是當(dāng)中間件位于動態(tài)變化的環(huán)境(如群組通信、實(shí)時系統(tǒng)、嵌入式環(huán)境、移動計(jì)算環(huán)境)中時。以移動環(huán)境下的多媒體應(yīng)用為例,當(dāng)移動主機(jī)位通過高帶寬的線纜接入時,網(wǎng)絡(luò)的延遲很?。欢?dāng)移動主機(jī)處于移動過程中,使用GSM或其它無線接入方式時,網(wǎng)絡(luò)延遲和誤碼率則較大。反射式中間件能檢測網(wǎng)絡(luò)連接質(zhì)量,并能根據(jù)條件變化自動的更替底層的發(fā)送機(jī)制。例如,當(dāng)主機(jī)使用無線接入時,中間件可采用壓縮比更高的模塊來發(fā)送視頻流。中間件可以檢查模塊間的依賴關(guān)系,實(shí)現(xiàn)模塊的動態(tài)、自動替換,從而實(shí)現(xiàn)中間件系統(tǒng)的自動適應(yīng)和演化。
3.4.2 研究現(xiàn)狀
目前,反射式中間件的思想已在許多中間件及分布應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)中有所體現(xiàn),例如:
1. Open ORB[IEEE-13] OpenORB體系結(jié)構(gòu)基于組件和反射兩種技術(shù)來提高系統(tǒng)的可配置和可重配置能力。一個OpenORB的實(shí)例就是一個可在運(yùn)行時配置和重配置的組件。提供反射機(jī)制的核心概述是元空間(metaspace),它由組件的運(yùn)行環(huán)境支持。元空間是遞歸的(如下圖所示),每一個應(yīng)用組件提供提供元接口來訪問底層運(yùn)行環(huán)境的元空間,這個元空間又由組件構(gòu)成,它些元級組件同樣具有元接口來訪問它們的運(yùn)行環(huán)境。OpenORB的支持兩層反射:結(jié)構(gòu)反射和行為反射。結(jié)構(gòu)反射處理特定組件的內(nèi)容和結(jié)構(gòu);行為反射處理系統(tǒng)底層行為。
2. the University of Illinois[IEEE-12][IEEE-15] 正在嘗試使用反射思想為TAO引用動態(tài)重配置能力(dynamicTao),他們使用配置器來維護(hù)組件之間的依賴關(guān)系,可以動態(tài)地增加或解除一個組件。
3. Trinity Colleage Dublin[IEEE-11][IEEE-15] 利用反射語言lguana來開發(fā)更開放和擴(kuò)展性更好的中間件平臺,可以使用反射語言提供的設(shè)施來訪問或修改平臺。他們還嘗試在minimal CORBA中引入反射機(jī)制。
4. Ecole des Mine de Nantes[IEEE-12]的OpenCORBA 依賴于反射語言NeoClasstalk的動態(tài)ORB
5. APM的中間件FlexiNet[IEEE-12] 允許程序員剪裁底層的通信機(jī)制
6. 此外 TAO和QuO[IEEE-15]等中間件中也采納了反射機(jī)制
3.5 消息中間件
RPC、ROI機(jī)制對于C/S應(yīng)用是適合的,它提供的是一種同步的請求/應(yīng)答的交互模式。僅管CORBA中也提供了oneway消息、異步消息調(diào)用、消息路由等機(jī)制,但CORBA中的異步實(shí)現(xiàn)的并不是真正的異步,只是將等待應(yīng)答的任務(wù)交給了另一個線程中的對象而已。這種程度的異步和消息管理不能滿足某些應(yīng)用的需求,尤其是那些分布于大量異構(gòu)平臺、要求異步和時間無關(guān)性的應(yīng)用。這種情況下,消息中間件(MOM)和基于事件的中間件是更好的選擇。
3.5.1 技術(shù)概述
MOM利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,通過提供消息傳遞和消息排隊(duì)模型,在分布環(huán)境下擴(kuò)展進(jìn)程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺?;谙⒌臋C(jī)制更多地適用于事件驅(qū)動的應(yīng)用,當(dāng)一個事件(如請求,或警示)發(fā)生時,消息中間件發(fā)送消息通知服務(wù)方應(yīng)該進(jìn)行何種操作。消息中間件可分為兩類:廣播方式和發(fā)布/訂閱方式。目前流行的MOM中間件產(chǎn)品有IBM的MQSeries、BEA的MessageQ等。
消息中間件技術(shù)適用于松散的、異步交互的大規(guī)模分布系統(tǒng),它的優(yōu)點(diǎn)是:
n 通迅的雙方具有時間無關(guān)性。通訊程序通過消息隊(duì)列進(jìn)行間接通迅,因?yàn)樗鼈儾槐赝瑫r運(yùn)行。
n 對應(yīng)用程序的結(jié)構(gòu)沒有約束,通訊程序之間不僅可以是一對一的關(guān)系,還可以進(jìn)行一對多和多對一方式,多種通訊方式的構(gòu)造不公增加應(yīng)用程序的復(fù)雜性。
n 程序與網(wǎng)絡(luò)復(fù)雜性相隔離,應(yīng)用程序只需操作消息隊(duì)列而維護(hù)消息隊(duì)列、維護(hù)程序和隊(duì)列之間的關(guān)系、處理網(wǎng)絡(luò)的重新啟動和在網(wǎng)絡(luò)中移動消息等由MOM透明地完成。
3.6 移動中間件
移動計(jì)算的發(fā)展,使移動中間件成為中間件領(lǐng)域一個新興的研究方向。今年IDC中間件市場分析報(bào)告集中關(guān)注移動中間件的發(fā)展,在一程度上說明了移動中間件的商業(yè)價值和研究價值。
移動中間件支持自動定位、跟蹤移動用戶,支持移動實(shí)體間的通信和協(xié)調(diào),并提供異構(gòu)系統(tǒng)間適當(dāng)?shù)陌踩珯C(jī)制。構(gòu)建移動中間件的一個方案[IEEE-17]是基于現(xiàn)有的mobile agent平臺,如IBM的alget,為移動用戶提供一個統(tǒng)一的虛擬環(huán)境及公共服務(wù)。
現(xiàn)在所知的研究項(xiàng)目及商業(yè)產(chǎn)品有:
n 歐洲的OnTheMove[IEEE-16]計(jì)劃:至力于設(shè)計(jì)實(shí)現(xiàn)一個移動應(yīng)用支撐環(huán)境 (MASE),它提供了一組移動API來訪問MASE,從而隱藏底層網(wǎng)絡(luò)的多樣性、 Dartmouth Agent TCL
n IBM的BlueDrekar:一個基于藍(lán)牙無線裝置連接規(guī)則的Linux中間件
n NetTech System的ExpressQ[IEEE-18]?。褐С制髽I(yè)數(shù)據(jù)的無線交換
4 發(fā)展趨勢
中間件作為與應(yīng)用聯(lián)系最的緊密的基礎(chǔ)軟件,應(yīng)用需求的發(fā)展在中間件上有最迅速、直接的映射。如何更好地解決分布應(yīng)用面臨的實(shí)際問題應(yīng)成為中間件發(fā)展的最終目標(biāo)。由于應(yīng)用需求是多樣的,所以中間件的發(fā)展方向也必然是多樣的,沒有一個通用的模式能囊括未來中間件的所有特征。但下述幾個方向是可以考慮的:
1. 向企業(yè)應(yīng)用和Internet應(yīng)用,發(fā)展基于構(gòu)件的信息集成的中間件
路線是“走XML集成之路”,研究的內(nèi)容包括:
n 不同平臺互操作
n 基于XML的信息資源整合
n 基于XML的數(shù)據(jù)管理
n 服務(wù)器的管理調(diào)度講述
n 工作流程的模型定義、控制管理
2. 面向特定QoS要求,發(fā)展支持服務(wù)質(zhì)量管理的中間件
研究內(nèi)容包括:
n 面向特定領(lǐng)域的中間件,如實(shí)時中間件、容錯中間件
n 基于CORBA的通用QoS框架
n 基于Java的QoS技術(shù)
3. 面向環(huán)境變化和技術(shù)進(jìn)步,發(fā)展具有動態(tài)特性中間件
研究內(nèi)容包括:
n 動態(tài)的鏈接管理技術(shù)
n 具有反射結(jié)構(gòu)的自適應(yīng)的中間件
n 不同設(shè)備、不同平臺之間的自動發(fā)現(xiàn)
4. 面向移動設(shè)備,發(fā)展嵌入式中間件和移動中間件
此外,對于我國來說,是否能開發(fā)出易用的中間件產(chǎn)品也關(guān)系到本土中間件是否能與國外產(chǎn)品競爭。做中間難,但用好中間件更難,關(guān)鍵是將恰當(dāng)?shù)募夹g(shù)用在恰當(dāng)?shù)奈恢谩?div style="height:15px;">
3. The QOS Provisioning Service (QPS), G. Fábián, A.T. van Halteren ,ECOOP 2001
10. J. McAffer, "Metalevel Architecture Support for Distributed Objects," Proc. Reflection 96, Dept of Information Science, Tokyo University, 1996, pp 39–62.
11. J. Dowling and V. Cahill, "Building a Dynamically Reconfigurable minimumCORBA Platform with Components, Connectors, and Language-Level Support," Proc. Workshop on Reflective Middleware (RM 2000), ACM Press, New York, Apr. 2000.
12. The Design and Implementation of Open ORB 2 IEEE distributed system online vol.2 No.6 2001 Gordon S. Blair, Geoff Coulson, Anders Andersen, Lynne Blair, Michael Clarke, Fabio Costa, Hector Duran-Limon, Tom Fitzpatrick, Lee Johnston, Rui Moreira, Nikos Parlavantzas, and Katia Saikoski
13. Adaptive and Reflective Middleware for QoS-Enabled CCM Applications Nanbor Wang, Douglas C. Schmidt, Michael Kircher, Kirthika Parameswaran,
14. Next Generation Middleware: Requirements, Architecture, and Prototypes Frank Eliassen, Anders Andersen
16. Middleware for a New Generation of Mobile Networks: The ACTS nTheMove Project Hans-Georg Baumgarten Lothar Borrmann Torsten Köhler Stephen Pink Gerard Lacoste , OnTheMove home page:
17. Mobile Agent Middleware for Mobilecomputing Paolo Bellavista, Cesare Stefanelli IEEE Computer March,2001