現(xiàn)成的中間件技術(shù)正在適應(yīng)諸如在線金融交易,分布式過程控制,甚至海底信息系統(tǒng),航空電子任務(wù)計(jì)算,雷達(dá)處理和軟件無線電等關(guān)鍵任務(wù)動態(tài)領(lǐng)域。
分布式實(shí)時和嵌入式(DRE)系統(tǒng)在現(xiàn)代應(yīng)用程序領(lǐng)域中發(fā)揮著越來越重要的作用。DRE系統(tǒng)的許多類型都有一個共同點(diǎn):
遲交付的正確答案將成為錯誤的答案。例如,對于生命攸關(guān)的軍用DRE系統(tǒng)(例如,防御船只免受導(dǎo)彈襲擊或通過無線鏈路控制無人駕駛飛行器的系統(tǒng))而言,在正確的時間提供正確的答案至關(guān)重要。正確的答案對于諸如此類安全關(guān)鍵的民用DRE系統(tǒng)也至關(guān)重要調(diào)節(jié)核反應(yīng)堆中冷卻液的溫度,并維持煉鋼機(jī)械的安全運(yùn)行。
某些類型的分布式系統(tǒng)(例如兩層和三層業(yè)務(wù)系統(tǒng))的可承受性通常可以通過現(xiàn)成的商業(yè)(commercial-off-the-shelf,COTS)技術(shù)來提高。但是,當(dāng)今旨在將COTS集成到關(guān)鍵任務(wù)DRE系統(tǒng)中的工作主要集中在最初的非經(jīng)常性購置成本,并且不會減少經(jīng)常性的軟件生命周期成本。同樣,許多COTS產(chǎn)品都缺乏對控制關(guān)鍵服務(wù)質(zhì)量(QoS)屬性的支持,包括可預(yù)測的延遲,抖動和吞吐量以及可伸縮性,可靠性和安全性。
無法以足夠的信心控制它們會損害DRE系統(tǒng)的適應(yīng)性和可保證性;常規(guī)COTS產(chǎn)品中的微小干擾會導(dǎo)致故障,從而導(dǎo)致人員傷亡和財產(chǎn)損失。
從歷史上看,常規(guī)的COTS軟件由于具有以下兩種措施中的任何一種,因此不適合用于關(guān)鍵任務(wù)DRE系統(tǒng):靈活和標(biāo)準(zhǔn),但不能保證嚴(yán)格的QoS要求,從而限制了系統(tǒng)的可保證性;或部分啟用QoS,但不靈活且不標(biāo)準(zhǔn),從而限制了系統(tǒng)的適應(yīng)性和可負(fù)擔(dān)性。結(jié)果是,為主流業(yè)務(wù)系統(tǒng)開發(fā)COTS軟件的快速進(jìn)展并未廣泛應(yīng)用于關(guān)鍵任務(wù)DRE系統(tǒng)。在解決此限制之前,DRE系統(tǒng)集成商和最終用戶將無法以可靠,及時且經(jīng)濟(jì)高效的方式利用COTS軟件的優(yōu)勢。
在這里,我描述了關(guān)鍵的研發(fā)工作,這些工作有助于創(chuàng)建可保證,適應(yīng)性強(qiáng),價格適中的新一代COTS技術(shù),以滿足關(guān)鍵任務(wù)DRE系統(tǒng)的嚴(yán)格要求。
盡管DRE系統(tǒng)中的COTS軟件在范圍和領(lǐng)域上受到限制,但由于這項(xiàng)工作,未來的前景更加光明。
技術(shù)挑戰(zhàn)與解決方案
對于新的和計(jì)劃中的DRE系統(tǒng),一些最具挑戰(zhàn)性的需求可以描述如下:
必須實(shí)時滿足多個QoS屬性;
在不同的配置,環(huán)境條件和成本下,不同級別的服務(wù)是適當(dāng)?shù)模?/strong>
一個維度的服務(wù)水平必須與其他維度的服務(wù)水平進(jìn)行協(xié)調(diào)和/或折衷,以滿足特派團(tuán)的需求;?
?對于自主且對時間要求嚴(yán)格的應(yīng)用程序行為的需求,需要一個靈活的分布式系統(tǒng)基礎(chǔ),以適應(yīng)任務(wù)要求和環(huán)境條件的動態(tài)變化。
盡管常規(guī)的COTS軟件不能滿足所有這些要求,但是當(dāng)今的經(jīng)濟(jì)和組織限制-以及越來越多的
復(fù)雜的需求和競爭壓力—阻止開發(fā)人員完全從頭開始構(gòu)建復(fù)雜的DRE系統(tǒng)軟件。因此,程序員迫切需要開發(fā),驗(yàn)證并最終標(biāo)準(zhǔn)化支持嚴(yán)格的DRE系統(tǒng)功能和QoS要求的新一代自適應(yīng)和反射中間件技術(shù)[1]。
中間件是可重用的系統(tǒng)軟件,可以在功能上彌合應(yīng)用程序的端到端功能要求和任務(wù)原則與底層底層操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧之間的差距[7]。因此,中間件提供的功能的質(zhì)量和QoS對DRE系統(tǒng)至關(guān)重要。
自適應(yīng)中間件軟件[5]的功能和與QoS相關(guān)的屬性可以通過兩種方式進(jìn)行修改:
靜態(tài)地:利用特定平臺的功能來實(shí)現(xiàn)功能子集并最小化硬件和軟件基礎(chǔ)結(jié)構(gòu)的依賴性,從而減少內(nèi)存占用;
動態(tài)地:系統(tǒng)響應(yīng)針對不斷變化的環(huán)境或要求進(jìn)行了優(yōu)化,包括組件互連,功率級別,CPU /網(wǎng)絡(luò)帶寬,延遲/抖動和可靠性需求。
在關(guān)鍵任務(wù)DRE系統(tǒng)中,自適應(yīng)中間件必須可靠地進(jìn)行這些修改,同時滿足嚴(yán)格的端到端QoS要求。
反射式中間件更進(jìn)一步,可以自動檢查中間件的功能并進(jìn)行自動調(diào)整以優(yōu)化它們[1]。因此,反射中間件支持可以根據(jù)DRE系統(tǒng)內(nèi)部,系統(tǒng)環(huán)境或系統(tǒng)策略(由操作員和管理員定義)中的條件自主執(zhí)行的更高級的適應(yīng)。
中間件層和研發(fā)工作? ? ?
就像網(wǎng)絡(luò)協(xié)議棧可以分解為多層一樣,中間件也可以分解為多層(見圖1)。以下各節(jié)將對每個這樣的層進(jìn)行描述,并進(jìn)行相關(guān)的研發(fā)工作,以幫助中間件滿足DRE系統(tǒng)的嚴(yán)格QoS要求。
主機(jī)基礎(chǔ)結(jié)構(gòu)中間件。主機(jī)基礎(chǔ)設(shè)施中間件封裝并增強(qiáng)了本機(jī)操作系統(tǒng)的通信和并發(fā)機(jī)制,以創(chuàng)建可移植且可重用的網(wǎng)絡(luò)編程組件,包括反應(yīng)堆,接收器連接器,監(jiān)視對象,活動對象和組件配置器[10]。這些組件消除了單個操作系統(tǒng)的意外兼容性,從而幫助消除了網(wǎng)絡(luò)應(yīng)用程序的許多繁瑣,易錯和不可移植的方面。它們是通過低級操作系統(tǒng)編程API(例如Socket和POSIX Pthreads)來實(shí)現(xiàn)的。
與DRE系統(tǒng)相關(guān)的主機(jī)基礎(chǔ)設(shè)施中間件R&D的一個示例是開放虛擬機(jī)(OVM)項(xiàng)目,該項(xiàng)目是美國國防高級研究計(jì)劃局的一部分,在普渡大學(xué),馬里蘭大學(xué)和紐約州立大學(xué)奧斯威戈分校進(jìn)行信息技術(shù)辦公室的嵌入式系統(tǒng)程序組合(PCES)程序(請參見www.ovmj.org)。OVM是實(shí)現(xiàn)Java實(shí)時規(guī)范(RTSJ)[2]的開源實(shí)時Java虛擬機(jī)。RTSJ是對Java的一組擴(kuò)展,它通過封裝實(shí)時操作系統(tǒng)和CPU體系結(jié)構(gòu)之間的差異,提供了很大程度上與平臺無關(guān)的方式來執(zhí)行代碼。RTSJ的主要功能包括范圍內(nèi)存和不朽內(nèi)存,具有增強(qiáng)調(diào)度支持的實(shí)時線程,異步事件處理程序以及線程內(nèi)控制的異步傳輸。
OVM虛擬機(jī)完全用Java編寫,其體系結(jié)構(gòu)強(qiáng)調(diào)可定制性和可插入組件。它的實(shí)現(xiàn)力求平衡性能和靈活性,允許用戶自定義消息發(fā)送,同步,現(xiàn)場訪問和速度等操作的實(shí)現(xiàn)。OVM允許動態(tài)更新正在運(yùn)行的虛擬機(jī)的指令的實(shí)現(xiàn)。盡管RTSJ虛擬機(jī)(如OVM和TimeSys Jtime)相對較新,但由于它們具有降低軟件開發(fā)和演進(jìn)成本的潛力,因此引起了R&D和DRE系統(tǒng)集成商社區(qū)的極大興趣。
發(fā)行中間件。分發(fā)中間件定義了更高級別的分布式編程模型,其可重用的API和機(jī)制可自動執(zhí)行和擴(kuò)展由主機(jī)基礎(chǔ)結(jié)構(gòu)中間件封裝的本機(jī)操作系統(tǒng)網(wǎng)絡(luò)編程功能。分布式中間件使開發(fā)人員能夠像獨(dú)立應(yīng)用程序一樣對分布式應(yīng)用程序進(jìn)行編程,也就是說,通過對目標(biāo)對象進(jìn)行操作,而無需對其位置,編程語言,操作系統(tǒng)平臺,通信協(xié)議和互連或硬件特性進(jìn)行硬編碼依賴性。分發(fā)中間件的核心是啟用QoS的對象請求代理(ORB),例如CORBA、COM +和Java Remote Method Invocation。這些ORB允許對象在網(wǎng)絡(luò)之間進(jìn)行互操作,而與對象所使用的語言或部署對象的操作系統(tǒng)平臺無關(guān)。
用于DRE系統(tǒng)的分布式中間件R&D的一個示例是TAO項(xiàng)目(請參見www.cs.wustl.edu/~schmidt/TAO.html),該項(xiàng)目由華盛頓大學(xué),圣路易斯大學(xué)和加利福尼亞大學(xué)的研究人員進(jìn)行, Irvine,作為DARPA ITO Quorum計(jì)劃的一部分[9]。?
TAO是開源的實(shí)時CORBA ORB [6],它允許DRE應(yīng)用程序保留和管理以下資源:
通過線程池,優(yōu)先級機(jī)制,進(jìn)程內(nèi)互斥(互斥量)和具有固定優(yōu)先級的實(shí)時系統(tǒng)的全局調(diào)度服務(wù)來獲得處理器資源;
圖1.中間件層及其上下文
通過協(xié)議屬性和使用優(yōu)先級帶和專用連接到服務(wù)器對象的顯式綁定的通信資源;
通過在隊(duì)列中緩沖請求并限制線程池的大小來獲得內(nèi)存資源。
使用自適應(yīng)通信環(huán)境(ACE)主機(jī)基礎(chǔ)結(jié)構(gòu)中間件工具包(請參見www.cs.wustl.edu/~schmidt/ACE.html)[8]中的可重用框架來實(shí)現(xiàn)TAO。ACE和TAO是從研究原型到DRE應(yīng)用的中間件過渡的成熟示例,已在數(shù)百個DRE系統(tǒng)中使用,包括電信網(wǎng)絡(luò)管理和呼叫處理,在線交易服務(wù),航空電子功能計(jì)算,軟件定義的系統(tǒng)。無線電,雷達(dá)系統(tǒng),表面安裝“拾放”系統(tǒng)以及熱軋鋼廠。
通用中間件服務(wù)。通用中間件服務(wù)通過定義高級的領(lǐng)域無關(guān)組件來增強(qiáng)分發(fā)中間件,這些組件允許應(yīng)用程序開發(fā)人員專注于對應(yīng)用程序邏輯進(jìn)行編程,而不必編寫開發(fā)分布式應(yīng)用程序所需的“管道”代碼,而使用較低級別的組件中間件功能直接。
分布式中間件主要側(cè)重于管理端系統(tǒng)資源以支持面向?qū)ο蟮姆植际骄幊棠P停ㄓ弥虚g件服務(wù)側(cè)重于通過分布式系統(tǒng)在整個分布式系統(tǒng)中分配,調(diào)度和協(xié)調(diào)各種端到端資源。組件編程和腳本編制模型。開發(fā)人員可以重用這些服務(wù)來管理全局資源并執(zhí)行重復(fù)的分發(fā)任務(wù),包括事件通知,日志記錄,持久性,實(shí)時調(diào)度,容錯和事務(wù),否則每個應(yīng)用程序或應(yīng)用程序?qū)⒁耘R時方式實(shí)現(xiàn)這些事務(wù)。
集成開發(fā)人員與DRE系統(tǒng)相關(guān)的常見中間件服務(wù)示例是QuO項(xiàng)目(請參見www.dist-systems。bbn.com/tech/QuO),研究人員位于BBN Technologies是DARPA ITO Quorum和PCES計(jì)劃的一部分[5]。 QuO是基于圖2概述的分層中間件體系結(jié)構(gòu)的一組開源中間件服務(wù)。QuO體系結(jié)構(gòu)在兩個方面將DRE中間件和應(yīng)用程序解耦:功能路徑。
功能路徑是客戶端和遠(yuǎn)程服務(wù)器應(yīng)用程序之間的信息流。在分布式系統(tǒng)中,中間件可確保在遠(yuǎn)程對等方之間有效,可預(yù)測,可擴(kuò)展,可靠且安全地交換此信息。信息本身在很大程度上是特定于應(yīng)用程序的,這取決于所提供的功能(因此稱為功能路徑)。
QoS路徑負(fù)責(zé)確定功能交互相對于關(guān)鍵DRE系統(tǒng)QoS屬性的端到端行為。此類屬性的示例包括:如何以及何時將資源用于系統(tǒng)的多個級別上的客戶端/服務(wù)器交互;如果可用資源不滿足預(yù)期資源,則適當(dāng)?shù)膽?yīng)用程序和系統(tǒng)行為;以及滿足端到端可靠性要求所需的故障檢測和恢復(fù)策略。
QuO中間件負(fù)責(zé)收集,組織和分發(fā)與QoS相關(guān)的元信息,以監(jiān)視和管理DRE系統(tǒng)的多個級別上功能交互的發(fā)生情況。面對快速變化的應(yīng)用程序需求和環(huán)境條件,包括局部故障,瞬態(tài)過載以及動態(tài)功能和QoS重新配置,它還可以提供自適應(yīng)和反射性的決策,以強(qiáng)有力地支持非功能性QoS屬性。?
圖2.QUO體系結(jié)構(gòu)
特定于域的中間件服務(wù)。特定領(lǐng)域的中間件服務(wù)是針對特定DRE系統(tǒng)領(lǐng)域的需求量身定制的,例如航空電子任務(wù)計(jì)算,雷達(dá)處理,在線金融交易和分布式過程控制。與前面的三個中間件層(它們提供可廣泛使用的“水平”機(jī)制和服務(wù))不同,特定于領(lǐng)域的中間件服務(wù)針對垂直市場。
從COTS和R&D的角度來看,特定于域的服務(wù)是中間件層中最不成熟的部分原因,部分是由于歷史上缺乏穩(wěn)定的基礎(chǔ)來創(chuàng)建特定于域的中間件服務(wù)所需的發(fā)行中間件和中間件服務(wù)標(biāo)準(zhǔn)。但是,由于特定領(lǐng)域的中間件服務(wù)體現(xiàn)了領(lǐng)域知識,因此最有可能提高質(zhì)量并縮短周期時間,并且集成商需要開發(fā)特定類別的DRE系統(tǒng)。
與DRE系統(tǒng)相關(guān)的特定領(lǐng)域中間件服務(wù)的一個例子是Boeing Bold Stroke體系結(jié)構(gòu)[11],該體系結(jié)構(gòu)已在許多DARPA ITO程序中用作開放實(shí)驗(yàn)平臺。BoldStroke是用于任務(wù)計(jì)算航空電子功能的開放式體系結(jié)構(gòu),例如導(dǎo)航,平視顯示管理,武器目標(biāo)和釋放以及機(jī)身傳感器處理。Bold Stroke中特定于域的中間件服務(wù)位于COTS處理器(PowerPC),網(wǎng)絡(luò)互連(VME),操作系統(tǒng)(VxWorks),基礎(chǔ)結(jié)構(gòu)中間件(ACE),分發(fā)中間件(TAO)和通用中間件服務(wù)(QuO)上和CORBA事件服務(wù))。
近期進(jìn)展與未來需求
在過去五年中,DRE中間件的研發(fā)和部署取得了重大進(jìn)展,這主要?dú)w功于以下方面:
多年的研究,迭代,完善,使用
中間件和相關(guān)的分布式對象計(jì)算(DOC)中間件并不是新的[7]。中間件概念是從對早期Internet(甚至是其前身ARPAnet)的試驗(yàn)中演變而來的; DOC中間件系統(tǒng)自BBN的Cronus和Corbus系統(tǒng)問世以來,它自1980年代中期開始運(yùn)營。從那時起,對這些想法的構(gòu)想,設(shè)計(jì),以及最重要的軟件,都經(jīng)過了嘗試和完善(針對那些行之有效的軟件),并被丟棄或重定向(針對那些無效的軟件)。
這個迭代的開發(fā)過程需要大量的資金和時間才能獲得正確的使用權(quán)并被用戶社區(qū)所接受,并且需要大量的耐心才能堅(jiān)持到底。當(dāng)過程成功時,通常會產(chǎn)生標(biāo)準(zhǔn)(整理邊界),模式和框架(確認(rèn)如何應(yīng)用技術(shù)的知識)。
標(biāo)準(zhǔn)的成熟
在過去的十年中,關(guān)于DRE要求,中間件標(biāo)準(zhǔn)已經(jīng)相當(dāng)成熟。例如,OMG已采用以下規(guī)范。
最低CORBA
從完整的OMG CORBA規(guī)范中刪除了不必要的功能,以減少內(nèi)存占用,使CORBA可在內(nèi)存受限的嵌入式系統(tǒng)中使用。
實(shí)時CORBA
包括允許應(yīng)用程序以可預(yù)測的端到端方式保留和管理網(wǎng)絡(luò),CPU和內(nèi)存資源的功能;和CORBA消息傳遞。導(dǎo)出到應(yīng)用程序的其他QoS策略,例如超時,請求優(yōu)先級和排隊(duì)規(guī)則。
容錯CORBA
使用對象的實(shí)體冗余來支持復(fù)制,故障檢測和故障恢復(fù)。這些CORBA功能和服務(wù)的多種可互操作且健壯的實(shí)現(xiàn)方案現(xiàn)已上市。此外,諸如動態(tài)調(diào)度實(shí)時CORBA,Java的實(shí)時規(guī)范和Java的分布式實(shí)時規(guī)范之類的新興標(biāo)準(zhǔn)正在將開放標(biāo)準(zhǔn)的范圍擴(kuò)展到更廣泛的DRE應(yīng)用程序。
模式和框架
大量的研發(fā)工作集中在以下手段上,以促進(jìn)高質(zhì)量的開發(fā)和再利用。
中間件技術(shù):
模式
模式匯集了設(shè)計(jì)專業(yè)知識,從而為某些情況下常見的軟件問題提供了經(jīng)過時間驗(yàn)證的解決方案[3,10]。模式簡化了設(shè)計(jì),構(gòu)造和性能調(diào)整。通過編纂DRE應(yīng)用程序模仿過曾經(jīng)成功解決過類似問題的開發(fā)人員的專業(yè)知識。模式還提高了在描述軟件開發(fā)活動時的討論水平,從而將重點(diǎn)放在戰(zhàn)略架構(gòu)和設(shè)計(jì)問題上,而不僅僅是戰(zhàn)術(shù)上的編程和表達(dá)。
消息詳細(xì)信息
構(gòu)架
框架是相關(guān)模式組的具體實(shí)現(xiàn)[4]。精心設(shè)計(jì)的框架可以根據(jù)中間件本身提供的功能以及應(yīng)用程序提供的功能來驗(yàn)證模式。在沒有先驗(yàn)上下文無關(guān)的最佳解決方案的情況下,框架還集成了各種解決問題的方法。諸如ACE,OVM,QuO和TAO之類的中間件框架可以包括策略化的選擇和優(yōu)化模式;然后可以自動集成和配置多個獨(dú)立開發(fā)的功能,以滿足各個DRE應(yīng)用程序的功能和QoS要求。
持續(xù)的政府研發(fā)投入
在前面提到的兩個DARPA程序(Quorum和PCES)中,已經(jīng)進(jìn)行了許多有關(guān)中間件模式和框架的開創(chuàng)性研發(fā)工作。每種方法都集中在CORBA和Java開放系統(tǒng)中間件上,產(chǎn)生了許多結(jié)果,這些結(jié)果已經(jīng)從研究原型轉(zhuǎn)變?yōu)橛糜趯?shí)時和容錯CORBA規(guī)范和商業(yè)化工作的標(biāo)準(zhǔn)化服務(wù)定義和實(shí)現(xiàn)。Quorum和PCES是政府專注的研發(fā)工作如何通過將其輸出到其他正在進(jìn)行的公共和私人活動中并將其與也使用相同的開放式中間件基質(zhì)進(jìn)行合并的結(jié)果來利用其結(jié)果的示例。在基于標(biāo)準(zhǔn)的開放中間件平臺可行之前,此類R&D成果將被埋入定制或?qū)S邢到y(tǒng)中,僅作為一種生存證明,而不是從根本上重塑R&D和集成商社區(qū)的基礎(chǔ)。
現(xiàn)在,基于標(biāo)準(zhǔn)的中間件也得到了證明,并已在許多關(guān)鍵任務(wù)DRE系統(tǒng)中進(jìn)行了部署,包括航空電子任務(wù)計(jì)算,軟件定義的無線電和水下信息系統(tǒng)。但是,由于COTS中間件技術(shù)還不夠成熟,無法涵蓋大規(guī)模,動態(tài)變化的系統(tǒng),因此這些中間件應(yīng)用程序僅限于相對小型靜態(tài)配置的DRE系統(tǒng)。
為了滿足以網(wǎng)絡(luò)為中心的DRE“系統(tǒng)系統(tǒng)”環(huán)境中對應(yīng)用和任務(wù)特定的QoS要求,仍需要大量額外的研發(fā)來增強(qiáng)中間件,尤其是當(dāng)它涉及通用和特定于域的服務(wù)時。如果這些努力成功了,未來的中間件技術(shù)將能夠控制多個系統(tǒng)級別上多個系統(tǒng)組件使用的單個資源和聚合資源,以可靠地管理通信帶寬,安全性以及DRE系統(tǒng)工件的調(diào)度和分配。
中間件是開發(fā)DRE系統(tǒng)的戰(zhàn)略元素,它彌補(bǔ)了應(yīng)用程序與底層操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧之間的空白,從而提供了對這些系統(tǒng)至關(guān)重要的可重用服務(wù)。中間件研發(fā)工作的經(jīng)濟(jì)回報源于將DRE軟件技術(shù)工件(例如中間件框架,協(xié)議,服務(wù)組件和模式)的標(biāo)準(zhǔn)化水平提高了幾個層次,因此可用于COTS的獲取和定制。有了適當(dāng)?shù)母呒壯邪l(fā)環(huán)境和將研發(fā)成果商業(yè)化的有效流程,COTS中間件市場將不可避免地適應(yīng),采用和實(shí)施關(guān)鍵任務(wù)DRE系統(tǒng)所需的強(qiáng)大硬件和軟件功能。
作為此處討論的研發(fā)工作以及其他類似工作的結(jié)果,下一代中間件將能夠適應(yīng)動態(tài)變化的條件,以便最大程度地使用可用的計(jì)算機(jī)和網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)來支持應(yīng)用程序需要。
編輯:黃飛
?
評論
查看更多