杜 兵,楊仁寶,李林峰,邵武長,周 淦
(中國電子信息產(chǎn)業(yè)集團有限公司第六研究所,北京102209)
指揮信息系統(tǒng)是以計算機技術(shù)為核心,實現(xiàn)對戰(zhàn)自動化、保障各級指揮機構(gòu)及其所屬人員、裝備實施科學(xué)高效的指揮控制與管理[1]。
一體化測發(fā)指揮決策系統(tǒng)將測發(fā)電測、測發(fā)地勤、測控系統(tǒng)、氣象系統(tǒng)、通信系統(tǒng)等子系統(tǒng)不同格式的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的數(shù)據(jù)格式,并以曲線、表格、圖像、二三維態(tài)勢等形象化方式進(jìn)行顯示,同時能夠提供數(shù)據(jù)判讀分析和查詢歷史數(shù)據(jù)的功能,讓用戶能夠準(zhǔn)確、直觀、快速全面地了解任務(wù)過程,為用戶的指揮決策提供可靠依據(jù)[2]。
目前一體化測發(fā)指揮決策系統(tǒng)不適應(yīng)一體化指揮顯示系統(tǒng)體系架構(gòu)的要求。隨著國產(chǎn)化技術(shù)的成熟,逐步實現(xiàn)了國產(chǎn)芯片、國產(chǎn)操作系統(tǒng)、國產(chǎn)數(shù)據(jù)庫等產(chǎn)品在航天發(fā)射領(lǐng)域成體系地集成應(yīng)用。
為實現(xiàn)在航天發(fā)射領(lǐng)域完全國產(chǎn)化,新一代測發(fā)指揮決策系統(tǒng)由以國產(chǎn)芯片為基礎(chǔ)構(gòu)建硬件設(shè)備層、以國產(chǎn)固件和操作系統(tǒng)為支撐的系統(tǒng)軟件層、以國產(chǎn)數(shù)據(jù)庫和中間件等構(gòu)成的業(yè)務(wù)支撐層及國產(chǎn)應(yīng)用系統(tǒng)層搭建而成。
插件是遵循一定規(guī)范的應(yīng)用程序接口編寫的程序,用于實現(xiàn)“即插即用”的軟件開發(fā)[4]。 與傳統(tǒng)軟件體系結(jié)構(gòu)的單個程序集成所有功能不同,插件體系結(jié)構(gòu)將所有的業(yè)務(wù)功能置于插件中;一體化框架主要用于組織協(xié)調(diào)和調(diào)用插件[5]。這極大地降低了軟件功能模塊間的耦合性,形成了一套高內(nèi)聚、低耦合的體系架構(gòu)。
圖1顯示基于插件技術(shù)的軟件體系結(jié)構(gòu),所有的業(yè)務(wù)功能通過插件接口接入一體化框架平臺中,各顯示插件互相獨立,在插件測試后集成到框架中,通過一體化框架平臺進(jìn)行管理[6]。
圖1 基于插件的一體化體系結(jié)構(gòu)
一體化指揮決策軟件將多個系統(tǒng)的數(shù)據(jù)匯聚顯示,具備數(shù)據(jù)處理量大、數(shù)據(jù)協(xié)議多樣、頁面數(shù)量多等特點,采用插件技術(shù)能夠降低業(yè)務(wù)間耦合性,加快開發(fā)速度。將數(shù)據(jù)的接收、解析和主題數(shù)據(jù)分發(fā)進(jìn)行抽象,基于不同傳輸方式的開發(fā)為不同的數(shù)據(jù)處理插件;將各個顯示頁面提取為多類顯示插件,顯示插件主要負(fù)責(zé)主題數(shù)據(jù)的顯示效果及性能;數(shù)據(jù)基礎(chǔ)信息從數(shù)據(jù)庫獲取,將數(shù)據(jù)庫訪問的功能變?yōu)閿?shù)據(jù)庫訪問插件。各插件功能相對獨立,不僅加快了開發(fā)速度,同樣方便后期維護工作。
(1)國產(chǎn)化需求。面對頻繁發(fā)生的網(wǎng)絡(luò)安全事件,建立完備的安全防護體系,可有效抵御網(wǎng)絡(luò)攻擊破壞,但對預(yù)置的邏輯炸彈、隱蔽通道等難以有效預(yù)防,使用國外產(chǎn)品存在安全風(fēng)險。為從根本上解決安全威脅,必須走國產(chǎn)化道路[7]。建設(shè)全國產(chǎn)化的測發(fā)指揮顯示系統(tǒng)意義重大,在我國航天領(lǐng)域極具開創(chuàng)性。
(2)解決“信息孤島”問題。測發(fā)指揮顯示系統(tǒng)包括測發(fā)電測、測發(fā)地勤、測控系統(tǒng)、氣象系統(tǒng)、通信系統(tǒng)等多個子系統(tǒng)。建設(shè)一體化指揮顯示系統(tǒng)軟件,將各子系統(tǒng)信息集成顯示并對數(shù)據(jù)進(jìn)行整合,打破不同分系統(tǒng)間的信息壁壘,實現(xiàn)跨平臺、跨地域、跨部門的信息融合共享,為任務(wù)的指揮發(fā)射提供決策支撐,解決航天發(fā)射指揮中遇到的決策難的問題。
(3)跨平臺軟件復(fù)用。一體化測發(fā)指揮決策系基于國產(chǎn)體系,能夠在國產(chǎn)化終端進(jìn)行使用,同時可根據(jù)系統(tǒng)配置環(huán)境與應(yīng)用需求做出適應(yīng)性擴展,實現(xiàn)一體化指揮決策軟件的快速開發(fā)和跨平臺復(fù)用[8]。
一體化測發(fā)指揮決策系統(tǒng)主要包括數(shù)據(jù)接口程序、數(shù)據(jù)存儲程序、一體化指揮決策軟件、遠(yuǎn)程控制軟件等配置項。其中數(shù)據(jù)接口程序主要用于數(shù)據(jù)的接收及轉(zhuǎn)發(fā)、協(xié)議轉(zhuǎn)換、數(shù)據(jù)統(tǒng)計等,通過 UDP指定源方式進(jìn)行接收測發(fā)電測分系統(tǒng)、測發(fā)地勤分系統(tǒng)、氣象分系統(tǒng)和通信分系統(tǒng)等網(wǎng)絡(luò)數(shù)據(jù),并將測發(fā)電測及測發(fā)地勤數(shù)據(jù)轉(zhuǎn)發(fā)至數(shù)據(jù)存儲程序;數(shù)據(jù)存儲程序主要用于測發(fā)電測及測發(fā)地勤數(shù)據(jù)解析,并將解析數(shù)據(jù)存儲至國產(chǎn)數(shù)據(jù)庫;一體化指揮顯示軟件通過加載各類插件,具備數(shù)據(jù)接收、數(shù)據(jù)顯示、數(shù)據(jù)分析以及輔助決策等功能,是整個系統(tǒng)的核心部分;遠(yuǎn)程控制軟件主要用于管理安裝于各顯示終端的一體化指揮顯示軟件,包括客戶端及服務(wù)端,通過服務(wù)端可遠(yuǎn)程啟動、關(guān)閉以及升級一體化指揮顯示軟件。圖2描述了一體化測發(fā)指揮決策軟件的結(jié)構(gòu)框架圖。
一體化指揮決策軟件由主體顯控框架程序以及各類插件組成;插件包括數(shù)據(jù)接收插件、數(shù)據(jù)庫訪問插件以及各類顯示插件(主要包括曲線插件、表格插件、源碼插件、設(shè)備狀態(tài)跟蹤插件等)。另外,一體化指揮顯示軟件還包括輔助功能插件,包括即時通信、畫面定制、快速導(dǎo)航等。
一體化指揮決策軟件開發(fā)語言采用支持跨平臺語言 Qt5.9,開發(fā)環(huán)境基于 QtCreator;數(shù)據(jù)庫采用國產(chǎn)達(dá)夢數(shù)據(jù)庫。開發(fā)實現(xiàn)了一體化指揮決策軟件主框架及各類插件。
一體化框架為管理插件主要通過接口函數(shù)實現(xiàn)的,主要包括loadConfig和createObject兩個接口。其中l(wèi)oadConfig主要功能是初始化插件配置信息,createObject實例化插件對象。當(dāng)組件需要提供新的功能,現(xiàn)有接口不滿足時,可以通過定義新的接口進(jìn)行實現(xiàn)。
圖2 一體化測發(fā)指揮決策軟件結(jié)構(gòu)圖
如何將不同系統(tǒng)上報的數(shù)據(jù)解析完成后分發(fā)到顯示組件是一體化指揮決策軟件實現(xiàn)的關(guān)鍵問題之一,本文采用數(shù)據(jù)訂閱分發(fā)[9]機制進(jìn)行實現(xiàn)。
數(shù)據(jù)接收解析插件將接收到的數(shù)據(jù)幀按照協(xié)議解析完成后,將制作主題數(shù)據(jù)所需要的字段值從數(shù)據(jù)幀中提前出來;然后按照主題配置信息,將收到的數(shù)據(jù)生成主題數(shù)據(jù);一體化框架根據(jù)組件訂閱信息再將主題數(shù)據(jù)進(jìn)行分發(fā),分發(fā)手段采用Qt框架提供的信號槽機制實現(xiàn),處理流程如圖3所示。
圖3 一體化軟件數(shù)據(jù)訂閱分發(fā)流程
各主題數(shù)據(jù)均是依照預(yù)先配置好的制作策略進(jìn)行生產(chǎn)的,以滿足頁面組件的使用需求,各組件只需要訂閱其所需要的數(shù)據(jù)即可。一種主題數(shù)據(jù)可以被不同組件進(jìn)行重復(fù)訂閱,而只需要生產(chǎn)一次即可,大大提高了使用效率。
一體化測發(fā)指揮決策軟件為用戶提供了“可見即所得”的可視化頁面快速定制軟件,通過從組件庫中拖曳頁面所需要的組件,將其放置到頁面顯示位置;然后通過可視化定制工具提供的屬性配置器配置組件的屬性信息,完成組件信息配置,進(jìn)而快速完成顯示頁面的配置??梢暬撁婵焖俣ㄖ栖浖闹饕δ茉O(shè)計如圖4所示。
另外,為進(jìn)一步提高頁面配置效率,軟件系統(tǒng)提供了頁面模板功能,相近型號任務(wù)可通過模塊功能快速生成顯示頁面配置文件。
基礎(chǔ)軟硬件平臺終端在性能上還存在不足,為保證軟件流暢運行,在軟件開發(fā)過程中需要重點考慮性能問題。主要從以下幾點進(jìn)行了優(yōu)化:
圖4 頁面快速定制軟件功能設(shè)計
(1)對曲線組件開發(fā)庫進(jìn)行了測試,選擇了性能更高的Qwt開發(fā)庫。曲線組件是平臺中使用最多的插件,其性能直接影響軟件的運行效果。Qt下曲線開發(fā)常見有 QChart、Qwt、QCustomPlot三個開源圖 表庫,從性能、最大點數(shù)支持、輔助功能支持等方面展開測試,測試結(jié)果如圖5所示(頁面每 10分鐘 180萬點數(shù))。
圖5 不同圖表庫性能比對
其他組件包括狀態(tài)跟蹤組件也同樣采用了性能更高的Qwt庫進(jìn)行開發(fā)實現(xiàn)。
(2)設(shè)置數(shù)據(jù)緩存機制,避免大數(shù)據(jù)量造成軟件運行壓力。數(shù)據(jù)接口程序能夠根據(jù)要求在本地硬盤中緩存各種數(shù)據(jù)電文,當(dāng)顯示客戶端需要某個電文的緩存數(shù)據(jù)的時候,它向數(shù)據(jù)接口程序發(fā)出申請,而數(shù)據(jù)接口程序通知一體化指揮決策軟件所要緩存文件的全路徑,進(jìn)而讀取該緩存文件。
(3)采用多線程機制。Qt編程中同樣提供了多線程機制,在結(jié)合使用信號槽機制時,需要注意選取合適的信號槽連接方式。信號槽機制中的槽函數(shù)調(diào)用線程是由調(diào)用emit發(fā)送信號的線程、接受者對象所在的線程以及connect函數(shù)的第五個參數(shù)來決定的。采用直接連接時,槽函數(shù)在發(fā)送信號的線程中執(zhí)行;采用隊列連接時,槽函數(shù)在接受者所在線程執(zhí)行。
經(jīng)過以上措施優(yōu)化后,經(jīng)測試,在發(fā)射過程中數(shù)據(jù)量大的情況下,國產(chǎn)操作系統(tǒng)下顯示終端CPU占用率滿足了任務(wù)需求。
本文從國產(chǎn)化基礎(chǔ)軟硬件出發(fā),通過研究基于插件的技術(shù),提出了基于插件的一體化軟件架構(gòu)技術(shù),顯著增強了一體化指揮決策軟件的復(fù)用性,同時方便了軟件功能擴展以及開發(fā)效率的提高,為指顯平臺在國產(chǎn)化平臺下的應(yīng)用有一定借鑒意義。在今后的工作中,隨著研究的逐步深入,將把重點集中在可視化界面與業(yè)務(wù)邏輯的徹底分離、跨平臺復(fù)用、組件屬性人性化配置以及軟件功能定制。