杜 兵,楊仁寶,李林峰,邵武長,周 淦
(中國電子信息產業集團有限公司第六研究所,北京102209)
指揮信息系統是以計算機技術為核心,實現對戰自動化、保障各級指揮機構及其所屬人員、裝備實施科學高效的指揮控制與管理[1]。
一體化測發指揮決策系統將測發電測、測發地勤、測控系統、氣象系統、通信系統等子系統不同格式的數據轉化為統一的數據格式,并以曲線、表格、圖像、二三維態勢等形象化方式進行顯示,同時能夠提供數據判讀分析和查詢歷史數據的功能,讓用戶能夠準確、直觀、快速全面地了解任務過程,為用戶的指揮決策提供可靠依據[2]。
目前一體化測發指揮決策系統不適應一體化指揮顯示系統體系架構的要求。隨著國產化技術的成熟,逐步實現了國產芯片、國產操作系統、國產數據庫等產品在航天發射領域成體系地集成應用。
為實現在航天發射領域完全國產化,新一代測發指揮決策系統由以國產芯片為基礎構建硬件設備層、以國產固件和操作系統為支撐的系統軟件層、以國產數據庫和中間件等構成的業務支撐層及國產應用系統層搭建而成。
插件是遵循一定規范的應用程序接口編寫的程序,用于實現“即插即用”的軟件開發[4]。 與傳統軟件體系結構的單個程序集成所有功能不同,插件體系結構將所有的業務功能置于插件中;一體化框架主要用于組織協調和調用插件[5]。這極大地降低了軟件功能模塊間的耦合性,形成了一套高內聚、低耦合的體系架構。
圖1顯示基于插件技術的軟件體系結構,所有的業務功能通過插件接口接入一體化框架平臺中,各顯示插件互相獨立,在插件測試后集成到框架中,通過一體化框架平臺進行管理[6]。

圖1 基于插件的一體化體系結構
一體化指揮決策軟件將多個系統的數據匯聚顯示,具備數據處理量大、數據協議多樣、頁面數量多等特點,采用插件技術能夠降低業務間耦合性,加快開發速度。將數據的接收、解析和主題數據分發進行抽象,基于不同傳輸方式的開發為不同的數據處理插件;將各個顯示頁面提取為多類顯示插件,顯示插件主要負責主題數據的顯示效果及性能;數據基礎信息從數據庫獲取,將數據庫訪問的功能變為數據庫訪問插件。各插件功能相對獨立,不僅加快了開發速度,同樣方便后期維護工作。
(1)國產化需求。面對頻繁發生的網絡安全事件,建立完備的安全防護體系,可有效抵御網絡攻擊破壞,但對預置的邏輯炸彈、隱蔽通道等難以有效預防,使用國外產品存在安全風險。為從根本上解決安全威脅,必須走國產化道路[7]。建設全國產化的測發指揮顯示系統意義重大,在我國航天領域極具開創性。
(2)解決“信息孤島”問題。測發指揮顯示系統包括測發電測、測發地勤、測控系統、氣象系統、通信系統等多個子系統。建設一體化指揮顯示系統軟件,將各子系統信息集成顯示并對數據進行整合,打破不同分系統間的信息壁壘,實現跨平臺、跨地域、跨部門的信息融合共享,為任務的指揮發射提供決策支撐,解決航天發射指揮中遇到的決策難的問題。
(3)跨平臺軟件復用。一體化測發指揮決策系基于國產體系,能夠在國產化終端進行使用,同時可根據系統配置環境與應用需求做出適應性擴展,實現一體化指揮決策軟件的快速開發和跨平臺復用[8]。
一體化測發指揮決策系統主要包括數據接口程序、數據存儲程序、一體化指揮決策軟件、遠程控制軟件等配置項。其中數據接口程序主要用于數據的接收及轉發、協議轉換、數據統計等,通過 UDP指定源方式進行接收測發電測分系統、測發地勤分系統、氣象分系統和通信分系統等網絡數據,并將測發電測及測發地勤數據轉發至數據存儲程序;數據存儲程序主要用于測發電測及測發地勤數據解析,并將解析數據存儲至國產數據庫;一體化指揮顯示軟件通過加載各類插件,具備數據接收、數據顯示、數據分析以及輔助決策等功能,是整個系統的核心部分;遠程控制軟件主要用于管理安裝于各顯示終端的一體化指揮顯示軟件,包括客戶端及服務端,通過服務端可遠程啟動、關閉以及升級一體化指揮顯示軟件。圖2描述了一體化測發指揮決策軟件的結構框架圖。
一體化指揮決策軟件由主體顯控框架程序以及各類插件組成;插件包括數據接收插件、數據庫訪問插件以及各類顯示插件(主要包括曲線插件、表格插件、源碼插件、設備狀態跟蹤插件等)。另外,一體化指揮顯示軟件還包括輔助功能插件,包括即時通信、畫面定制、快速導航等。
一體化指揮決策軟件開發語言采用支持跨平臺語言 Qt5.9,開發環境基于 QtCreator;數據庫采用國產達夢數據庫。開發實現了一體化指揮決策軟件主框架及各類插件。
一體化框架為管理插件主要通過接口函數實現的,主要包括loadConfig和createObject兩個接口。其中loadConfig主要功能是初始化插件配置信息,createObject實例化插件對象。當組件需要提供新的功能,現有接口不滿足時,可以通過定義新的接口進行實現。

圖2 一體化測發指揮決策軟件結構圖
如何將不同系統上報的數據解析完成后分發到顯示組件是一體化指揮決策軟件實現的關鍵問題之一,本文采用數據訂閱分發[9]機制進行實現。
數據接收解析插件將接收到的數據幀按照協議解析完成后,將制作主題數據所需要的字段值從數據幀中提前出來;然后按照主題配置信息,將收到的數據生成主題數據;一體化框架根據組件訂閱信息再將主題數據進行分發,分發手段采用Qt框架提供的信號槽機制實現,處理流程如圖3所示。

圖3 一體化軟件數據訂閱分發流程
各主題數據均是依照預先配置好的制作策略進行生產的,以滿足頁面組件的使用需求,各組件只需要訂閱其所需要的數據即可。一種主題數據可以被不同組件進行重復訂閱,而只需要生產一次即可,大大提高了使用效率。
一體化測發指揮決策軟件為用戶提供了“可見即所得”的可視化頁面快速定制軟件,通過從組件庫中拖曳頁面所需要的組件,將其放置到頁面顯示位置;然后通過可視化定制工具提供的屬性配置器配置組件的屬性信息,完成組件信息配置,進而快速完成顯示頁面的配置。可視化頁面快速定制軟件的主要功能設計如圖4所示。
另外,為進一步提高頁面配置效率,軟件系統提供了頁面模板功能,相近型號任務可通過模塊功能快速生成顯示頁面配置文件。
基礎軟硬件平臺終端在性能上還存在不足,為保證軟件流暢運行,在軟件開發過程中需要重點考慮性能問題。主要從以下幾點進行了優化:

圖4 頁面快速定制軟件功能設計
(1)對曲線組件開發庫進行了測試,選擇了性能更高的Qwt開發庫。曲線組件是平臺中使用最多的插件,其性能直接影響軟件的運行效果。Qt下曲線開發常見有 QChart、Qwt、QCustomPlot三個開源圖 表庫,從性能、最大點數支持、輔助功能支持等方面展開測試,測試結果如圖5所示(頁面每 10分鐘 180萬點數)。

圖5 不同圖表庫性能比對
其他組件包括狀態跟蹤組件也同樣采用了性能更高的Qwt庫進行開發實現。
(2)設置數據緩存機制,避免大數據量造成軟件運行壓力。數據接口程序能夠根據要求在本地硬盤中緩存各種數據電文,當顯示客戶端需要某個電文的緩存數據的時候,它向數據接口程序發出申請,而數據接口程序通知一體化指揮決策軟件所要緩存文件的全路徑,進而讀取該緩存文件。
(3)采用多線程機制。Qt編程中同樣提供了多線程機制,在結合使用信號槽機制時,需要注意選取合適的信號槽連接方式。信號槽機制中的槽函數調用線程是由調用emit發送信號的線程、接受者對象所在的線程以及connect函數的第五個參數來決定的。采用直接連接時,槽函數在發送信號的線程中執行;采用隊列連接時,槽函數在接受者所在線程執行。
經過以上措施優化后,經測試,在發射過程中數據量大的情況下,國產操作系統下顯示終端CPU占用率滿足了任務需求。
本文從國產化基礎軟硬件出發,通過研究基于插件的技術,提出了基于插件的一體化軟件架構技術,顯著增強了一體化指揮決策軟件的復用性,同時方便了軟件功能擴展以及開發效率的提高,為指顯平臺在國產化平臺下的應用有一定借鑒意義。在今后的工作中,隨著研究的逐步深入,將把重點集中在可視化界面與業務邏輯的徹底分離、跨平臺復用、組件屬性人性化配置以及軟件功能定制。