摘 要: 基于ICE中間件的衛(wèi)星地面測試系統(tǒng)充分利用ICE中間件分布式、跨平臺和跨語言的特點,采用客戶端/服務(wù)器構(gòu)架,實現(xiàn)了衛(wèi)星測試業(yè)務(wù)軟件部分的各項功能,提供對系統(tǒng)運行狀態(tài)的全面監(jiān)控。提出了一種Android平臺客戶端解決方案,運行于測試設(shè)備中獨立的嵌入式監(jiān)控板卡之上,通過與設(shè)備ARM-Linux平臺服務(wù)器端業(yè)務(wù)板卡的通信,實現(xiàn)對測試設(shè)備業(yè)務(wù)運行情況的監(jiān)視和控制。
關(guān)鍵詞: 衛(wèi)星地面測試; 嵌入式系統(tǒng); ICE中間件; Android 應(yīng)用程序
衛(wèi)星地面測試是衛(wèi)星研制過程中的重要環(huán)節(jié),對其系統(tǒng)功能驗證及性能評估具有重要作用。傳統(tǒng)的衛(wèi)星地面測試設(shè)備大多采用工控機平臺,其軟件部分運行于Windows操作系統(tǒng),通過PCI總線與硬件板卡進行通信,完成各種測試功能并對系統(tǒng)運行狀況進行監(jiān)控[1]。隨著嵌入式技術(shù)的不斷成熟與發(fā)展,采用ARM-Linux平臺的嵌入式系統(tǒng)取代原有工控機平臺,可實現(xiàn)測試設(shè)備的小型化和低功耗[2]。借助于ICE中間件的跨平臺、跨語言、屏蔽底層通信等特性,開發(fā)出一套適用于衛(wèi)星測試業(yè)務(wù)的軟件框架,采用客戶端/服務(wù)器構(gòu)架,可組成一個分布式測試系統(tǒng)[3]。本文提出了一種Android平臺客戶端解決方案,運行于設(shè)備內(nèi)部獨立的嵌入式監(jiān)控板卡之上,通過與設(shè)備ARM-Linux平臺服務(wù)器端業(yè)務(wù)板卡的通信,實現(xiàn)了對測試設(shè)備的監(jiān)控功能。
1 基于ICE中間件的衛(wèi)星地面測試系統(tǒng)
基于ICE中間件的衛(wèi)星地面測試系統(tǒng)典型結(jié)構(gòu)如圖1所示。服務(wù)器端按照面向服務(wù)(SOA)的思想設(shè)計,每個服務(wù)內(nèi)部實現(xiàn)相對獨立的業(yè)務(wù)邏輯,并對外提供形式統(tǒng)一的功能調(diào)用接口,包括通信的機制和內(nèi)容??蛻舳丝赏ㄟ^定義的標準方法獲取某個功能服務(wù)器所能提供的所有服務(wù)的列表,以及特定服務(wù)的使用方法。
上述系統(tǒng)中,前端測試單元通過多樣的測試接口對衛(wèi)星遙測、遙控及姿勢等各種信號及數(shù)據(jù)進行測試和采集,并對測試數(shù)據(jù)分析整理形成各種主題的數(shù)據(jù)報告,供客戶端監(jiān)視。客戶端可對系統(tǒng)各工作參數(shù)進行設(shè)置,并發(fā)送遙控指令引導(dǎo)星上機構(gòu)執(zhí)行相應(yīng)動作。該系統(tǒng)依托ICE中間件技術(shù),解耦合測試系統(tǒng)中各服務(wù)單元間的關(guān)聯(lián),從而實現(xiàn)數(shù)據(jù)的高效發(fā)布;同時利用ICEGrid實現(xiàn)目標服務(wù)器的動態(tài)定位、冗余及負載均衡。
系統(tǒng)服務(wù)器端采用標準C++語言開發(fā),利用語言本身及ICE中間件的跨平臺特性,可運行于X86、ARM等不同平臺,通過底層驅(qū)動程序?qū)崿F(xiàn)與硬件模塊的通信,完成特定業(yè)務(wù)功能??蛻舳瞬糠滞ㄟ^對服務(wù)器端各服務(wù)對象的訪問,實現(xiàn)對服務(wù)器端的監(jiān)控功能。借助于ICE跨語言的特性,可采用不同編程語言開發(fā)客戶端接口,并進一步封裝實現(xiàn)與服務(wù)器端通信,進而采用不同的界面開發(fā)技術(shù)實現(xiàn)不同的用戶體驗。例如,若采用PC機作為監(jiān)控終端,則可選擇C++、python等語言開發(fā)客戶端接口,采用VC++、wxpython等工具實現(xiàn)人機交互界面,組成分布式監(jiān)控終端。
對于嵌入式測試設(shè)備,也希望提供類似于工控機設(shè)備的液晶屏顯示面板,對系統(tǒng)的運行狀況進行實時監(jiān)控。液晶屏程序最直觀的實現(xiàn)方式仍然是作為系統(tǒng)的客戶端部分運行,相對于上述的分布式監(jiān)控終端,液晶屏程序由于與服務(wù)器端運行在同一臺測試設(shè)備,因此可看做本地客戶端。
具體實現(xiàn)過程中,采用Android應(yīng)用程序進行客戶端界面開發(fā),調(diào)用Java版客戶端接口完成與服務(wù)器端的通信[4]。由于Android平臺對處理器要求較高,故采用獨立的嵌入式板作為客戶端運行平臺,選用三星S5PV210處理器,液晶屏采用7寸多點觸控電容屏。服務(wù)器端運行于ARM-Linux平臺,處理器為三星S3C6410,兩塊嵌入式板在機箱內(nèi)部用網(wǎng)線連接。相比于傳統(tǒng)的工控機平臺,此設(shè)計不僅從邏輯上將監(jiān)控部分與業(yè)務(wù)處理邏輯分離,更從硬件角度將二者分開,進一步降低了不同功能模塊間的耦合。設(shè)備對外提供標準測試接口、網(wǎng)口以及觸摸屏,實現(xiàn)了更加優(yōu)質(zhì)的人機交互和用戶體驗。
2 關(guān)鍵技術(shù)應(yīng)用
2.1 Java語言客戶端接口
Slice(Specification Language for ICE) 是一種使對象接口與其實現(xiàn)相分離的基礎(chǔ)性抽象機制[5]。它定義了ICE對象接口、操作,以及客戶端與服務(wù)器間交換的數(shù)據(jù)類型。編譯生成的Java版客戶端接口還需要進一步完成其功能的實現(xiàn),主要包括客戶端對服務(wù)器端對象代理的訪問、對服務(wù)功能的調(diào)用以及注冊到中心的數(shù)據(jù)報告等。對客戶端而言,代理即ICE對象的本地代表。代理所封裝的信息包括:(1)尋址信息:用于讓客戶端運行時聯(lián)系正確的服務(wù)器。(2)對象標識:用于確定服務(wù)器中的哪一個對象是請求的目標可選標識符[6]。
服務(wù)器端與客戶端的連接關(guān)系如圖2所示,客戶端接口通過服務(wù)對象管理器實現(xiàn)對遠程服務(wù)對象的訪問。經(jīng)過封裝的接口部分,對外提供客戶端連接管理、服務(wù)對象列表、各服務(wù)的功能調(diào)用以及各服務(wù)數(shù)據(jù)報告的處理函數(shù)等功能,供各種基于Java語言的界面開發(fā)技術(shù)(如Android、JSP+HTML+JavaScript)調(diào)用。
2.2 可定制Android界面
客戶端為界面開發(fā)人員提供各種類型的常用控件,開發(fā)人員可根據(jù)需要定制不同的監(jiān)控頁面。頁面信息采用XML格式存儲,每一個標簽頁節(jié)點內(nèi)可定義各種不同的控件,每個控件節(jié)點內(nèi)包含該控件的類型、位置、尺寸、顏色、數(shù)制等信息。每一個控件需要分配一個唯一的ID??蛻舳丝蚣茉趩右粋€項目時將根據(jù)從上述配置文件中解析出的信息繪制界面內(nèi)容,并通過控件ID完成與邏輯部分所調(diào)用控件資源的映射。
2.3 客戶端框架設(shè)計
客戶端軟件作為一個相對獨立的框架,其本身并不提供某種特定的業(yè)務(wù)邏輯功能。開發(fā)人員可根據(jù)各自業(yè)務(wù)的不同需求,編寫相應(yīng)的邏輯功能代碼。代碼中需定義一套本地資源列表,以完成對遠程服務(wù)的功能調(diào)用,并接收來自不同服務(wù)的各種數(shù)據(jù)報告;代碼中還應(yīng)定義一套顯示界面列表,用于指定與業(yè)務(wù)邏輯相關(guān)的界面控件資源。上述代碼以JAR包的形式生成,供客戶端框架調(diào)用??蛻舳说墓δ転椋?1)將上述本地資源列表與服務(wù)器端提供的資源列表進行映射; (2)將上述界面資源列表與本地控件ID進行映射; (3)通過項目名稱加載并運行相應(yīng)的JAR包,實現(xiàn)特定的邏輯功能。
上述映射列表以及服務(wù)器端連接信息存儲于不同的項目文件當(dāng)中,用戶可根據(jù)需要,運行不同的項目。這種方法將顯示界面與業(yè)務(wù)邏輯分離,通過項目配置將二者整合在一起,實現(xiàn)了客戶端的框架化設(shè)計。
本文介紹了一種基于ICE中間件的Android平臺客戶端解決方案。該方案通過與服務(wù)器端程序的通信,實現(xiàn)了對衛(wèi)星地面測試設(shè)備的監(jiān)視與控制。該客戶端采用框架化設(shè)計,可定制顯示界面,適用于不同業(yè)務(wù)需求,為實現(xiàn)嵌入式測試設(shè)備的監(jiān)控功能提供了一種可選方案。
參考文獻
[1] 楊柳青.衛(wèi)星數(shù)管分系統(tǒng)地面設(shè)備總控軟件的設(shè)計與實現(xiàn)[D].北京:北京航空航天大學(xué),2010.
[2] 李善平,劉文峰,王煥龍,等. Linux與嵌入式系統(tǒng)[M].北京:清華大學(xué)出版社,2006.
[3] 蔡佳成.基于ICE中間件的分布式網(wǎng)絡(luò)安全系統(tǒng)的研究與設(shè)計[D]. 北京:北京郵電大學(xué),2009.
[4] 王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2010.
[5] MICHI H. A new approach to object-oriented middleware[J]. IEEE Computer Society, January~February 2004:66-75.
[6] ZeroC. Distributed programming with Ice 3.4.2[M/OL].http:
//zeroc.com/doc/index.html.