江卓逞+曾加剛+黃瑋



摘 要:介紹了ICE中間件技術,提出分布式環境中的自動化快速測試驗證平臺架構模型,闡述如何對基于ICE的分布式系統進行系統架構設計。架構可以降低軟件模塊之間的耦合度,解決了測試驗證平臺的可擴展、可靠性的問題。
關鍵詞:ICE;分布式系統;測試
中圖分類號: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 概述
隨著航空航天測控軟件規模的不斷擴大,復雜性的不斷增加,異構也越來越多,對分布式和跨平臺的要求也越來越高。大型應用軟件通常要求在軟硬件各不相同的分布式網絡上運行,傳統的測試驗證平臺軟件的架構方法已經不能滿足需要。如何將先進成熟的軟件共用技術引入航天的地面測控領域,改進原有的軟件體系結構和軟件研發模式,提升軟件體系結構的適應能力,提高軟件開發效率,更好地適應新形勢下的任務要求,成為目前急需研究解決的問題,也是需要長期、持續研究的課題[1]。
為開展航空航天測控軟件共用技術研究,本文以衛星地面測試為例,提出了基于ICE的分布式自動化快速測試驗證平臺架構,依托ICE中間件技術實現數據傳輸、被測設備供電、模擬量采集、電阻量采集、DS采集、通用測試儀器的設置與控制、被測設備工作狀態采集與顯示等功能。
2 ICE技術簡介
網絡通信引擎(Internet Communications Engine, ICE)是ZeroC公司開發的一款簡單高效、面向對象、開源的中間件,通過它可以快速地開發出高效、強壯、優雅的分布式軟件。它提供了用來建立面向對象的客戶/服務端應用程序所需要的工具、API以及類庫,使得分布式客戶/服務端應用程序的建立變得簡便。除此之外,ICE應用程序可以部署在多種環境下,客戶端和服務端可以使用不同的編程語言來實現;同時它可以運行在不同的操作系統平臺以及不同的硬件架構上,有效解決C/S模式兼容性差、開發成本高等問題[2]。
ICE適合所有的異構網絡環境,為分布式系統開發提供了完善的解決方案;客戶端和服務器端的實現可以用不同的編程語言,如c++、Java、c#、Visual Basic、VC++、Python、PHP和Ruby等;可以運行在如Windows、Linux、Solaris、UNIX、AIX等異構的操作系統和體系結構不同的機器上,使用多種的網絡信息交互技術(TCP/UDP,SSL或通過插件功能擴展協議);利用內建的安全機制(內置防火墻)可以很好地保證基于ICE的分布式系統的安全性;ICE中間件處于應用軟件與操作系統、網絡和數據庫之間,為處于應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的分布式應用軟件。
ICE體系架構
ICE屬于客戶端/服務器體系架構,具體體系結構[2]如圖1所示,客戶端和服務器包括客戶ICE核心、服務器ICE核心、代理、骨架及對象適配器等。
ICE核心為遠程通信提供了客戶端和服務器端的網絡通信、線程、字節序等與網絡有關的運行時支持,開發人員不再需要關注繁瑣的網絡編程,只要關注業務邏輯;代理(proxy)和骨架(skeleton)都是由slice的定義生成的,proxy為客戶提供了向下調用的接口和數據編碼與解碼, skeleton提供了服務器端向上調用的接口和數據編碼與解碼;ICE API負責與ICE核心通用部分的通訊,實現管理ICE的初始化與注銷等功能;對象適配器主要把來自客戶端的請求對應到編程語言對象的特定方法。
3 系統架構設計
3.1 自動化快速測試驗證平臺架構設計
自動化快速測試驗證平臺用于對衛星系統的功能測試、驗證及性能評估,是航天衛星研制過程中的重要環節。然而,自動化快速測試驗證平臺本身作為一個復雜系統,包括以太網、主控計算機、1553B監控計算機、直流可調電源、示波器、多功能開關、由脈沖指令測試卡、可編程直流源卡、可編程電阻卡、DS采集卡、多路AD卡等組成,其組成結構如圖2所示。
該測試平臺的設計與實現過程受測試結果的類型、測試報告類型、數據傳輸效率、數據安全性、數據可靠性、測試環境等多種因素影響,再加上傳統測試系統中各測試模塊與服務模塊之間存在緊耦合關系,導致系統的可擴展性非常差、不靈活,不同服務模塊的差異化需求也不能滿足,現有系統的交互體驗差,在實際應用中大規模部署將帶來很大的挑戰。
基于上述分析,采用ICE的客戶/服務端模型架構,將數據傳輸、被測設備供電、模擬量采集、電阻量采集、DS采集、通用測試儀器的設置與控制、被測設備工作狀態采集功能的實現以服務的形式分配到各個分布式的應用組件上,各個組件的實現采用ICE提供的接口標準,使得分布式自動化快速測試驗證平臺能夠方便地實現。
基于ICE中間件的分布式自動化快速測試驗證平臺框架如圖3所示,該平臺軟件架構主要由以下幾個部分構成。
3.1.1 客戶端和服務端
由圖1可見,客戶端、服務端和應用服務由應用代碼、ICE庫代碼和Slice定義組成。Slice對類對象進行描述,并利用ICE提供的工具將其轉換為類對象,該對象繼承了具有ICE核心通信功能的ICEObject類,以此保證服務端與客戶端的交互。由于它們繼承了ICE網絡通信的特性,因此,客戶端可通過測試中間件對服務端的管理與服務端創建連接,一旦連接成功,即可與應用服務端直接通信而不需要任何中間橋梁[3]。
3.1.2 測試中間件
在Slice.ice中定義包括遙測數據解析測試、遙測數據中VCDU分發服務、串行數據輸出觸發集成服務、LVDS高速數據接口、串行同步接口驗證、接收指令接口服務、接收同步遙測幀接口、數據注入接口(上行方向)、網絡通訊轉發、解析遙測數據中的星上時間服務、遙測模擬數據源、校時服務、1553B-RT塊消息服務、模擬信號仿真接口、離散指令接收集成服務、LPDC解碼服務、文件存儲服務、1553B總線接口、GPS接口、注入數據接收接口、192路模擬量輸出接口、觸點信號輸出接口等接口服務,定義了與接口相關的參數、功能函數、數據報告等,使用與應用代碼相同語言的Slice編譯器,產生客戶端的代理及服務端的骨架的可執行程序,客戶端應用程序只要調用服務端的服務,就可以實現某個功能或獲取某個需要的數據報告。
3.1.3 ICEGrid服務組件
為了方便客戶端應用程序獲取提供服務的服務器的地址信息,在本架構中利用ICEGrid管理服務器IP地址和對象適配器的映射關系,通過客戶端的代理和ICE通訊,響應客戶端查詢服務請求,只要服務器的IP地址不改變,客戶端的運行就不會受到影響。
IceGrid提供了對象查找的服務,客戶端只需要關心感興趣的對象代理。除此以外,如果提供服務的服務器沒有運行,在客戶端調用某個服務時,IceGrid會先按照請求啟動相應的服務器,完成客戶端的調用。通過ICEGrid服務功能,開發人員或系統管理人員就可以靈活地配置和管理涉及多個服務器的大型復雜應用。
3.1.4 ICEStorm服務組件
為了解除傳統的消息發布者和訂閱者之間的耦合關系,在本架構中引入ICEStorm服務組件充當圖3中接口服務(發布者)和客戶端應用(訂閱者)的中介,負責接收發布者發布的數據報告,同時負責把數據報告遞送給訂閱者,以發布/訂閱的數據交換機制實現遠端的數據和近端客戶端應用程序的交互。此外,IceStorm服務組件還可以作為聯盟服務運行,在不同的機器上運行服務的多個實例,達到多CPU的負載均衡。IceStorm服務還允許指定服務標準質量,可以滿足對精度要求較高的分布式應用。
3.2 該架構的優勢
3.2.1 語言選擇多樣化
ICE為應用開發提供了C++,C #,java,JavaScript,Python,C等多種語言支持,只需要客戶和服務器所用的Slice定義建立兩者之間的接口合約,在該架構中,開發人員可以使用Java、c#或者PHP的任何一種作為客戶端的編程語言,同時以c++作為服務器的編程語言,實現客戶端與服務器端的通訊。
3.2.2 與操作系統無關
在分布式應用中,為規避操作系統差異帶來的各種問題,如底層網絡通訊,ICE提供了異構操作系統環境下的統一接口,不僅簡化了開發工作量,使得開發人員只要關心應用系統處理邏輯的實現,而且也利于在不同操作系統環境下遷移ICE通信接口模塊。
3.2.3 支持同步和異步的消息傳遞
在本應用中,利用操作調用(AMI)和分派(AMD)實現了數據報告的同步和異步的傳遞,結合IceStorm 服務組件提供的發布-訂閱消息傳遞機制,開發人員可以根據應用的需要來選擇相應的通信模型,滿足分布式應用對時間等性能的要求。
應用表明,利用此架構來開發分布式復雜應用系統,利用ICE作為底層通訊架構,使得開發人員專注于實現業務應用邏輯,無需考慮復雜性的通信過程,這樣大大縮短開發周期、提高開發效率。
4 結束語
通過分析ICE的組成及其體系架構的特點,提出一種基于ICE分布式中間件的自動化快速測試驗證平臺架構。該系統依托ICE 中間件技術,克服了分布式應用開發所面臨的平臺異構、負載均衡、時效等問題,系統穩定性、可擴展性和高效性等方面均達到預期要求,實現系統的靈活配置和數據的高效發布。基于該架構的自動化快速測試驗證平臺目前已部署到企業,實現了對衛星綜合電子產品的全性能指標的自動化測試。
參考文獻:
[1]郭力兵.基于COM組件的航天測控軟件設計[J].飛行器測控學報,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的分布式火箭遙測數據處理架構設計[J].遙測遙控,2011,32(4):15-18.