江卓逞+曾加剛+黃瑋
摘 要:介紹了ICE中間件技術(shù),提出分布式環(huán)境中的自動化快速測試驗證平臺架構(gòu)模型,闡述如何對基于ICE的分布式系統(tǒng)進行系統(tǒng)架構(gòu)設(shè)計。架構(gòu)可以降低軟件模塊之間的耦合度,解決了測試驗證平臺的可擴展、可靠性的問題。
關(guān)鍵詞:ICE;分布式系統(tǒng);測試
中圖分類號:V249 文獻標志碼:A 文章編號:2095-2945(2017)22-0020-03
Abstract: ICE middleware technology is introduced, put forward in a distributed environment automation rapid test verification platform architecture model, expounds how to carry on the system architecture of distributed system based on ICE. Architecture reduces the coupling between software modules and addresses the scalability and reliability issues of test verification platforms.
Keywords: ICE;distributed system;test
1 概述
隨著航空航天測控軟件規(guī)模的不斷擴大,復(fù)雜性的不斷增加,異構(gòu)也越來越多,對分布式和跨平臺的要求也越來越高。大型應(yīng)用軟件通常要求在軟硬件各不相同的分布式網(wǎng)絡(luò)上運行,傳統(tǒng)的測試驗證平臺軟件的架構(gòu)方法已經(jīng)不能滿足需要。如何將先進成熟的軟件共用技術(shù)引入航天的地面測控領(lǐng)域,改進原有的軟件體系結(jié)構(gòu)和軟件研發(fā)模式,提升軟件體系結(jié)構(gòu)的適應(yīng)能力,提高軟件開發(fā)效率,更好地適應(yīng)新形勢下的任務(wù)要求,成為目前急需研究解決的問題,也是需要長期、持續(xù)研究的課題[1]。
為開展航空航天測控軟件共用技術(shù)研究,本文以衛(wèi)星地面測試為例,提出了基于ICE的分布式自動化快速測試驗證平臺架構(gòu),依托ICE中間件技術(shù)實現(xiàn)數(shù)據(jù)傳輸、被測設(shè)備供電、模擬量采集、電阻量采集、DS采集、通用測試儀器的設(shè)置與控制、被測設(shè)備工作狀態(tài)采集與顯示等功能。
2 ICE技術(shù)簡介
網(wǎng)絡(luò)通信引擎(Internet Communications Engine, ICE)是ZeroC公司開發(fā)的一款簡單高效、面向?qū)ο?、開源的中間件,通過它可以快速地開發(fā)出高效、強壯、優(yōu)雅的分布式軟件。它提供了用來建立面向?qū)ο蟮目蛻?服務(wù)端應(yīng)用程序所需要的工具、API以及類庫,使得分布式客戶/服務(wù)端應(yīng)用程序的建立變得簡便。除此之外,ICE應(yīng)用程序可以部署在多種環(huán)境下,客戶端和服務(wù)端可以使用不同的編程語言來實現(xiàn);同時它可以運行在不同的操作系統(tǒng)平臺以及不同的硬件架構(gòu)上,有效解決C/S模式兼容性差、開發(fā)成本高等問題[2]。
ICE適合所有的異構(gòu)網(wǎng)絡(luò)環(huán)境,為分布式系統(tǒng)開發(fā)提供了完善的解決方案;客戶端和服務(wù)器端的實現(xiàn)可以用不同的編程語言,如c++、Java、c#、Visual Basic、VC++、Python、PHP和Ruby等;可以運行在如Windows、Linux、Solaris、UNIX、AIX等異構(gòu)的操作系統(tǒng)和體系結(jié)構(gòu)不同的機器上,使用多種的網(wǎng)絡(luò)信息交互技術(shù)(TCP/UDP,SSL或通過插件功能擴展協(xié)議);利用內(nèi)建的安全機制(內(nèi)置防火墻)可以很好地保證基于ICE的分布式系統(tǒng)的安全性;ICE中間件處于應(yīng)用軟件與操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之間,為處于應(yīng)用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的分布式應(yīng)用軟件。
ICE體系架構(gòu)
ICE屬于客戶端/服務(wù)器體系架構(gòu),具體體系結(jié)構(gòu)[2]如圖1所示,客戶端和服務(wù)器包括客戶ICE核心、服務(wù)器ICE核心、代理、骨架及對象適配器等。
ICE核心為遠程通信提供了客戶端和服務(wù)器端的網(wǎng)絡(luò)通信、線程、字節(jié)序等與網(wǎng)絡(luò)有關(guān)的運行時支持,開發(fā)人員不再需要關(guān)注繁瑣的網(wǎng)絡(luò)編程,只要關(guān)注業(yè)務(wù)邏輯;代理(proxy)和骨架(skeleton)都是由slice的定義生成的,proxy為客戶提供了向下調(diào)用的接口和數(shù)據(jù)編碼與解碼, skeleton提供了服務(wù)器端向上調(diào)用的接口和數(shù)據(jù)編碼與解碼;ICE API負責(zé)與ICE核心通用部分的通訊,實現(xiàn)管理ICE的初始化與注銷等功能;對象適配器主要把來自客戶端的請求對應(yīng)到編程語言對象的特定方法。
3 系統(tǒng)架構(gòu)設(shè)計
3.1 自動化快速測試驗證平臺架構(gòu)設(shè)計
自動化快速測試驗證平臺用于對衛(wèi)星系統(tǒng)的功能測試、驗證及性能評估,是航天衛(wèi)星研制過程中的重要環(huán)節(jié)。然而,自動化快速測試驗證平臺本身作為一個復(fù)雜系統(tǒng),包括以太網(wǎng)、主控計算機、1553B監(jiān)控計算機、直流可調(diào)電源、示波器、多功能開關(guān)、由脈沖指令測試卡、可編程直流源卡、可編程電阻卡、DS采集卡、多路AD卡等組成,其組成結(jié)構(gòu)如圖2所示。
該測試平臺的設(shè)計與實現(xiàn)過程受測試結(jié)果的類型、測試報告類型、數(shù)據(jù)傳輸效率、數(shù)據(jù)安全性、數(shù)據(jù)可靠性、測試環(huán)境等多種因素影響,再加上傳統(tǒng)測試系統(tǒng)中各測試模塊與服務(wù)模塊之間存在緊耦合關(guān)系,導(dǎo)致系統(tǒng)的可擴展性非常差、不靈活,不同服務(wù)模塊的差異化需求也不能滿足,現(xiàn)有系統(tǒng)的交互體驗差,在實際應(yīng)用中大規(guī)模部署將帶來很大的挑戰(zhàn)。
基于上述分析,采用ICE的客戶/服務(wù)端模型架構(gòu),將數(shù)據(jù)傳輸、被測設(shè)備供電、模擬量采集、電阻量采集、DS采集、通用測試儀器的設(shè)置與控制、被測設(shè)備工作狀態(tài)采集功能的實現(xiàn)以服務(wù)的形式分配到各個分布式的應(yīng)用組件上,各個組件的實現(xiàn)采用ICE提供的接口標準,使得分布式自動化快速測試驗證平臺能夠方便地實現(xiàn)。
基于ICE中間件的分布式自動化快速測試驗證平臺框架如圖3所示,該平臺軟件架構(gòu)主要由以下幾個部分構(gòu)成。
3.1.1 客戶端和服務(wù)端
由圖1可見,客戶端、服務(wù)端和應(yīng)用服務(wù)由應(yīng)用代碼、ICE庫代碼和Slice定義組成。Slice對類對象進行描述,并利用ICE提供的工具將其轉(zhuǎn)換為類對象,該對象繼承了具有ICE核心通信功能的ICEObject類,以此保證服務(wù)端與客戶端的交互。由于它們繼承了ICE網(wǎng)絡(luò)通信的特性,因此,客戶端可通過測試中間件對服務(wù)端的管理與服務(wù)端創(chuàng)建連接,一旦連接成功,即可與應(yīng)用服務(wù)端直接通信而不需要任何中間橋梁[3]。
3.1.2 測試中間件
在Slice.ice中定義包括遙測數(shù)據(jù)解析測試、遙測數(shù)據(jù)中VCDU分發(fā)服務(wù)、串行數(shù)據(jù)輸出觸發(fā)集成服務(wù)、LVDS高速數(shù)據(jù)接口、串行同步接口驗證、接收指令接口服務(wù)、接收同步遙測幀接口、數(shù)據(jù)注入接口(上行方向)、網(wǎng)絡(luò)通訊轉(zhuǎn)發(fā)、解析遙測數(shù)據(jù)中的星上時間服務(wù)、遙測模擬數(shù)據(jù)源、校時服務(wù)、1553B-RT塊消息服務(wù)、模擬信號仿真接口、離散指令接收集成服務(wù)、LPDC解碼服務(wù)、文件存儲服務(wù)、1553B總線接口、GPS接口、注入數(shù)據(jù)接收接口、192路模擬量輸出接口、觸點信號輸出接口等接口服務(wù),定義了與接口相關(guān)的參數(shù)、功能函數(shù)、數(shù)據(jù)報告等,使用與應(yīng)用代碼相同語言的Slice編譯器,產(chǎn)生客戶端的代理及服務(wù)端的骨架的可執(zhí)行程序,客戶端應(yīng)用程序只要調(diào)用服務(wù)端的服務(wù),就可以實現(xiàn)某個功能或獲取某個需要的數(shù)據(jù)報告。
3.1.3 ICEGrid服務(wù)組件
為了方便客戶端應(yīng)用程序獲取提供服務(wù)的服務(wù)器的地址信息,在本架構(gòu)中利用ICEGrid管理服務(wù)器IP地址和對象適配器的映射關(guān)系,通過客戶端的代理和ICE通訊,響應(yīng)客戶端查詢服務(wù)請求,只要服務(wù)器的IP地址不改變,客戶端的運行就不會受到影響。
IceGrid提供了對象查找的服務(wù),客戶端只需要關(guān)心感興趣的對象代理。除此以外,如果提供服務(wù)的服務(wù)器沒有運行,在客戶端調(diào)用某個服務(wù)時,IceGrid會先按照請求啟動相應(yīng)的服務(wù)器,完成客戶端的調(diào)用。通過ICEGrid服務(wù)功能,開發(fā)人員或系統(tǒng)管理人員就可以靈活地配置和管理涉及多個服務(wù)器的大型復(fù)雜應(yīng)用。
3.1.4 ICEStorm服務(wù)組件
為了解除傳統(tǒng)的消息發(fā)布者和訂閱者之間的耦合關(guān)系,在本架構(gòu)中引入ICEStorm服務(wù)組件充當(dāng)圖3中接口服務(wù)(發(fā)布者)和客戶端應(yīng)用(訂閱者)的中介,負責(zé)接收發(fā)布者發(fā)布的數(shù)據(jù)報告,同時負責(zé)把數(shù)據(jù)報告遞送給訂閱者,以發(fā)布/訂閱的數(shù)據(jù)交換機制實現(xiàn)遠端的數(shù)據(jù)和近端客戶端應(yīng)用程序的交互。此外,IceStorm服務(wù)組件還可以作為聯(lián)盟服務(wù)運行,在不同的機器上運行服務(wù)的多個實例,達到多CPU的負載均衡。IceStorm服務(wù)還允許指定服務(wù)標準質(zhì)量,可以滿足對精度要求較高的分布式應(yīng)用。
3.2 該架構(gòu)的優(yōu)勢
3.2.1 語言選擇多樣化
ICE為應(yīng)用開發(fā)提供了C++,C #,java,JavaScript,Python,C等多種語言支持,只需要客戶和服務(wù)器所用的Slice定義建立兩者之間的接口合約,在該架構(gòu)中,開發(fā)人員可以使用Java、c#或者PHP的任何一種作為客戶端的編程語言,同時以c++作為服務(wù)器的編程語言,實現(xiàn)客戶端與服務(wù)器端的通訊。
3.2.2 與操作系統(tǒng)無關(guān)
在分布式應(yīng)用中,為規(guī)避操作系統(tǒng)差異帶來的各種問題,如底層網(wǎng)絡(luò)通訊,ICE提供了異構(gòu)操作系統(tǒng)環(huán)境下的統(tǒng)一接口,不僅簡化了開發(fā)工作量,使得開發(fā)人員只要關(guān)心應(yīng)用系統(tǒng)處理邏輯的實現(xiàn),而且也利于在不同操作系統(tǒng)環(huán)境下遷移ICE通信接口模塊。
3.2.3 支持同步和異步的消息傳遞
在本應(yīng)用中,利用操作調(diào)用(AMI)和分派(AMD)實現(xiàn)了數(shù)據(jù)報告的同步和異步的傳遞,結(jié)合IceStorm 服務(wù)組件提供的發(fā)布-訂閱消息傳遞機制,開發(fā)人員可以根據(jù)應(yīng)用的需要來選擇相應(yīng)的通信模型,滿足分布式應(yīng)用對時間等性能的要求。
應(yīng)用表明,利用此架構(gòu)來開發(fā)分布式復(fù)雜應(yīng)用系統(tǒng),利用ICE作為底層通訊架構(gòu),使得開發(fā)人員專注于實現(xiàn)業(yè)務(wù)應(yīng)用邏輯,無需考慮復(fù)雜性的通信過程,這樣大大縮短開發(fā)周期、提高開發(fā)效率。
4 結(jié)束語
通過分析ICE的組成及其體系架構(gòu)的特點,提出一種基于ICE分布式中間件的自動化快速測試驗證平臺架構(gòu)。該系統(tǒng)依托ICE 中間件技術(shù),克服了分布式應(yīng)用開發(fā)所面臨的平臺異構(gòu)、負載均衡、時效等問題,系統(tǒng)穩(wěn)定性、可擴展性和高效性等方面均達到預(yù)期要求,實現(xiàn)系統(tǒng)的靈活配置和數(shù)據(jù)的高效發(fā)布?;谠摷軜?gòu)的自動化快速測試驗證平臺目前已部署到企業(yè),實現(xiàn)了對衛(wèi)星綜合電子產(chǎn)品的全性能指標的自動化測試。
參考文獻:
[1]郭力兵.基于COM組件的航天測控軟件設(shè)計[J].飛行器測控學(xué)報,2009,10(28):60-62.
[2]Henning M,&M.Spruiell.Distributed Programming with lce[EB/OL].http://www.zeroc.com/download/Ice/3.6/Ice-3.6.3.pdf,2016:18-28.
[3]郭力兵,饒愛水,奚宏明,等.基于ICE的分布式火箭遙測數(shù)據(jù)處理架構(gòu)設(shè)計[J].遙測遙控,2011,32(4):15-18.