葉 玲 嵇亮亮 孫海軍
(中國電子科技集團(tuán)公司第二十八研究所 南京 210000)
預(yù)警探測系統(tǒng)作為近年來新晉領(lǐng)域,主要應(yīng)用傳感等技術(shù)手段,對相應(yīng)的目標(biāo)進(jìn)行定位和識別[1],肩負(fù)著綜合多源情報、提供綜合保障能力的職責(zé)。多源預(yù)警探測系統(tǒng)組成結(jié)構(gòu)復(fù)雜,接入傳感器眾多、交互復(fù)雜頻繁[2],為靈活的適應(yīng)系統(tǒng)復(fù)雜多變的顯示交互需求,需要利用單個集中顯示終端實現(xiàn)對多部情報源信息的綜合接入顯示,并提供各傳感器的集中遠(yuǎn)程操控和值班能力。多源情報集中顯控軟件是值班員與系統(tǒng)直接交互的平臺,在整個戰(zhàn)場態(tài)勢監(jiān)測中起著至關(guān)重要的作用[3]。鑒于傳統(tǒng)專用開發(fā)模式所帶來的開發(fā)周期長、效率低下、維護(hù)困難等問題日益突出,無法滿足情報保障系統(tǒng)發(fā)展的需要。為了有效地解決傳統(tǒng)專用開發(fā)模式的缺陷,考慮借鑒組件化設(shè)計思想[4],設(shè)計一種具有通用性、靈活性、穩(wěn)定性的集中顯控軟件框架[5],并從系統(tǒng)業(yè)務(wù)出發(fā)進(jìn)行共性提取、統(tǒng)一設(shè)計,將業(yè)務(wù)細(xì)化為具有標(biāo)準(zhǔn)接口統(tǒng)一載體的組件集,進(jìn)行組件化的多源情報集中顯控軟件的設(shè)計實現(xiàn),從而提高開發(fā)效率,并最終提高整個系統(tǒng)的互聯(lián)、互通、互操作能力。
多源情報集中顯控軟件不同于以往一個顯示軟件對應(yīng)一個傳感器的顯示控制方式,一個或多個集中顯控臺位構(gòu)成了多源預(yù)警探測系統(tǒng)的顯示控制部分。每個集中顯控臺位部署一個集中顯控軟件,集中顯控可以結(jié)合臺位分配,與前端多個傳感器任意搭配,建立一對多、多對多的動態(tài)部署能力。部署關(guān)系的建立過程采用動態(tài)可配的方式實現(xiàn),通過配置文件決定各集中顯控的接入控制能力。如圖1所示,為動態(tài)部署能力示意圖,按照傳感器分類,將多個傳感器按類接入不同集中顯控軟件進(jìn)行管理,實現(xiàn)集中顯控對傳感器的一對多及多對多的關(guān)系。
集中顯控軟件內(nèi)部設(shè)計時,應(yīng)當(dāng)確保在快速有效地接入情報基礎(chǔ)上,進(jìn)行友好的人機(jī)交互設(shè)計,將獲取的目標(biāo)信息以有效、直觀的方式呈現(xiàn)給觀察者,并提供便捷精準(zhǔn)的命令操作方式。因此以快速全面的提供信息和便捷操控為原則,設(shè)計為左右雙屏模式,左屏以顯示控制多源情報為主,右屏以綜合信息及傳感器操控為主的人機(jī)交互形式。這種設(shè)計有助于用戶觀測系統(tǒng)所有信息的同時,兼顧各傳感器的切換。并提供將右屏設(shè)計為第二個左屏的能力,實現(xiàn)同時對兩部傳感器進(jìn)行顯示控制,其切換示意如圖2所示。
組件化技術(shù)就是利用某種編程手段,將一些人們所關(guān)心的,但又不便于讓最終用戶去直接操作的細(xì)節(jié)進(jìn)行了封裝,同時對各種業(yè)務(wù)邏輯規(guī)則進(jìn)行了實現(xiàn),而這個封裝體常被稱為組件[6]。組件的主要特點是:語言無關(guān)性、高內(nèi)聚低耦合、即插即用、能夠進(jìn)行二次封裝開發(fā)、位置透明等等[7]。
組件是一種封裝手段[8]。是利用某種編程手段,將人們所關(guān)注的卻又不便于讓最終用戶直接操作的細(xì)節(jié)進(jìn)行了封裝,同時對各種業(yè)務(wù)邏輯規(guī)則進(jìn)行了實現(xiàn),用于處理用戶的內(nèi)部操作細(xì)節(jié)。
在組件設(shè)計中,接口是最為重要的概念,接口描述了組件對外提供的服務(wù),外界和組件所有的交互都通過接口實現(xiàn)。組件一旦發(fā)布,它只能通過預(yù)先定義的接口來提供合理的、一致的服務(wù)。每個組件都是自主獨立的,當(dāng)一個組件需要提供新的服務(wù)時,可以通過增加新的接口來實現(xiàn),不會影響原接口已存在的客戶,而新的客戶可以選擇新的接口來獲得服務(wù)[7]。因此優(yōu)秀的接口設(shè)計可以方便的實現(xiàn)組件的包容以及聚合。
組件化設(shè)計模式是當(dāng)前軟件設(shè)計中普遍采用的一種設(shè)計模式,其繼承并發(fā)展了面向?qū)ο蟮某绦蛟O(shè)計方法,把對象技術(shù)應(yīng)用于系統(tǒng)設(shè)計,對面向?qū)ο蟮某绦蛟O(shè)計的實現(xiàn)過程作了進(jìn)一步的抽象。組件化設(shè)計模式通過應(yīng)用組件化技術(shù),用類似搭積木的方式實現(xiàn)程序的組裝或者重構(gòu),可以縮短開發(fā)周期、提高開發(fā)效率、增強(qiáng)程序穩(wěn)定性[9]。
組件化設(shè)計模式不同于傳統(tǒng)軟件設(shè)計模式,在設(shè)計流程中對功能進(jìn)行劃分,形成獨立組件,在單個組件通過測試后進(jìn)行組件集成,有效提高了軟件的可靠性。
在組件實現(xiàn)過程中,應(yīng)該注重組件的收集,盡量利用或者修改以前編制的在功能上比較類似的組件,節(jié)省了開發(fā)資源,同時也可以大大提升開發(fā)效率,縮短開發(fā)時間。
多源情報集中顯控軟件作為操作員與系統(tǒng)進(jìn)行交互的直接平臺,在整個戰(zhàn)場態(tài)勢監(jiān)測中起著至關(guān)重要的作用[3]。軟件需實現(xiàn)多源目標(biāo)干預(yù)、態(tài)勢顯示、人機(jī)交互、雷達(dá)操控、對外通訊等多項任務(wù),且應(yīng)當(dāng)滿足可動態(tài)部署的需求,實現(xiàn)臺位與前端情報源間多對多的動態(tài)組合,結(jié)合預(yù)警探測系統(tǒng)軍事需求及今后的業(yè)務(wù)多樣化發(fā)展,多源集中顯控軟件的組件化設(shè)計在現(xiàn)有業(yè)務(wù)基礎(chǔ)上進(jìn)行共性提取、統(tǒng)一設(shè)計,從而具有良好的拓展性和包容性。
多源集中顯控軟件的組件化設(shè)計遵循組件化設(shè)計基本原則,對軟件業(yè)務(wù)進(jìn)行分層歸納、共性提取,形成領(lǐng)域特有的組件類型和組件庫。通過對軟件的功能需求分析,將軟件劃分為幾個獨立的層次,各軟件層次之間界限明確、接口完整一致、并且向下依賴。軟件層次的劃分有利于將大而復(fù)雜的問題分解為小而易解的問題,軟件的層次劃分如圖3所示。
支撐層:主要立足于構(gòu)建基礎(chǔ)能力,提供網(wǎng)絡(luò)通信、串口通信、坐標(biāo)計算、繪圖顯示、渲染等方面的支撐。該層將各類支撐細(xì)節(jié)屏蔽,為業(yè)務(wù)組件層提供數(shù)據(jù)訪問服務(wù)和顯示渲染服務(wù),使業(yè)務(wù)組件層專注于組件本身業(yè)務(wù)邏輯的實現(xiàn);
數(shù)據(jù)管理服務(wù)層:用于管理各種輸入輸出數(shù)據(jù),含網(wǎng)絡(luò)、共享內(nèi)存、文件、內(nèi)存指針等,同時建立數(shù)據(jù)分發(fā)管理機(jī)制,作為支撐層和上層之間的紐帶,是集中顯控運維的核心;
組件集成框架:用于管理所有組件的加載、卸載以及激活、停用,在此基礎(chǔ)上形成軟件基本框架。該層可根據(jù)顯控軟件業(yè)務(wù)需求的變化進(jìn)行組件的動態(tài)重組;
業(yè)務(wù)層:構(gòu)成集中顯控的應(yīng)用組合,將業(yè)務(wù)進(jìn)行共性提取后,劃分為一系列組件,也可以根據(jù)用戶需要進(jìn)行組件定制。所有組件由組件集成框架集成,即插即用;
應(yīng)用層:與多源集中顯控實際應(yīng)用緊密結(jié)合,通過業(yè)務(wù)應(yīng)用動態(tài)組合,形成各傳感器單獨的值班應(yīng)用,以及多源綜合的顯示控制,最終滿足多源集中顯控需求。
組件化多源集中顯控軟件設(shè)計的一個關(guān)鍵技術(shù)是組件設(shè)計,在對構(gòu)成顯控軟件的組件進(jìn)行設(shè)計的過程中,需要抽象組件的屬性及方法,形成共性的組件接口,并定義統(tǒng)一的數(shù)據(jù)交互格式,通過制定專有的統(tǒng)一化組件接口,對組成顯控軟件的各組件進(jìn)行約束,最終形成顯控軟件的統(tǒng)一加載和調(diào)度。組件設(shè)計主要包括以下幾個步驟。
確定組件定義:將構(gòu)成顯控軟件的組件的屬性及方法解析綜合起來,形成基礎(chǔ)組件,并依據(jù)組件在軟件中所處的層次及功能類別,由基礎(chǔ)組件派生形成態(tài)勢顯示及應(yīng)用組件,另外,可以根據(jù)系統(tǒng)的不同進(jìn)行個別組件的調(diào)整,組件定義如圖4所示。
顯控軟件組件的功能需求、數(shù)據(jù)交互格式確定后,就可以為組件選擇合適的實現(xiàn)載體,軟件選擇動態(tài)鏈接庫,有較好的獨立性,方便顯控框架快速調(diào)用。同時,為了方便開發(fā),利用常用的開發(fā)工具定制了組件生成向?qū)?,為顯控軟件組件制定了統(tǒng)一模板[10]。
按照顯控軟件分層思想,顯控軟件各層組件實現(xiàn)原則如下:
支撐層和數(shù)據(jù)管理服務(wù)層組件:作為基礎(chǔ)組件,具有超高的復(fù)用性,統(tǒng)稱為共性支撐類組件,支撐層的組件一旦按照支撐功能劃分實現(xiàn)后,應(yīng)盡量復(fù)用,不應(yīng)重復(fù)開發(fā)。此類組件特點是專注實現(xiàn)某個特定顯示、計算或通信功能,主要包括基礎(chǔ)繪圖組件、坐標(biāo)轉(zhuǎn)換組件、網(wǎng)絡(luò)通信組件、串口通信組件等。
業(yè)務(wù)層組件:業(yè)務(wù)層組件包括窗口顯示組件和態(tài)勢顯示組件,該層組件與集中顯控軟件業(yè)務(wù)聯(lián)系緊密,包括目標(biāo)干預(yù)、雷達(dá)操控、記錄重演以及各類態(tài)勢顯示[11]等,這些顯示組件中的顯示功能的實現(xiàn)應(yīng)采用支撐層中的基礎(chǔ)繪圖組件類實現(xiàn),數(shù)據(jù)管理方式則應(yīng)采用數(shù)據(jù)管理服務(wù)層組件。業(yè)務(wù)層組件又可以分為功能獨立組件和可重用組件。在這些基礎(chǔ)組件基礎(chǔ)上結(jié)合自身的業(yè)務(wù)進(jìn)行組件實現(xiàn)。
應(yīng)用層在對業(yè)務(wù)層組件進(jìn)行組合時,根據(jù)當(dāng)前集中顯控軟件涉及的傳感器進(jìn)行組裝,涉及可重用組件時,不同傳感器實現(xiàn)同一業(yè)務(wù)時使用同一可重用組件,通過其不同對象,實現(xiàn)不同傳感器的業(yè)務(wù)能力。
多源情報集中顯控軟件組件組成示意圖如圖5所示。如果當(dāng)前多源包括傳感器1及傳感器2,在實現(xiàn)對兩個傳感器進(jìn)行顯示控制的過程中,公用功能獨立組件及共性支撐組件,但是對于涉及到的可重用組件,不需要進(jìn)行單純的組件數(shù)量累加,而是形成基本組件后,聲明不同對象構(gòu)成兩個傳感器的顯示功能能力。
多源情報集中顯控軟件的組件集成框架用于管理所有組件的加載、卸載以及激活、停用等,在此基礎(chǔ)上形成軟件基本框架。
組件集成框架依據(jù)組件管理XML(可擴(kuò)展標(biāo)記語言,ExtensibleMarkup Language)文件[12]對所有組件進(jìn)行管理,主要對組件的基本信息進(jìn)行配置,包括:名稱、各唯一ID值(身份標(biāo)識碼,Identify)、運行狀態(tài)、交互數(shù)據(jù)類型等。軟件集成框架通過組件唯一標(biāo)識ID、數(shù)據(jù)通道唯一標(biāo)識ID及命令唯一標(biāo)識ID三種標(biāo)識的管理,可自動對組件所需數(shù)據(jù)進(jìn)行分發(fā)管理,從而實現(xiàn)了組件的自動化集成。
采用組件化設(shè)計思想對多源情報集中顯控軟件進(jìn)行設(shè)計后,組件之間數(shù)據(jù)如何實時、低耦合傳遞是整個軟件運維的關(guān)鍵,為此,引入了數(shù)據(jù)管理服務(wù)機(jī)制,如圖6所示。圖中示例組件為參數(shù)設(shè)置組件和一個航跡態(tài)勢顯示組件,窗口設(shè)置組件與外界的輸入輸出主要為參數(shù)設(shè)置命令及反饋信息,航跡態(tài)勢顯示組件的輸入輸出主要為航跡信息。
圖7給出了單部傳感器的顯示畫面組件化示意圖,圖中態(tài)勢顯示用于顯示當(dāng)前傳感器的一次視頻、二次點航跡信息,因此態(tài)勢顯示由視頻顯示組件、點跡顯示組件、航跡顯示組件構(gòu)成,這種方式有助于態(tài)勢顯示靈活增刪態(tài)勢種類,易于分層顯示控制;同時,如果單個組件內(nèi)部發(fā)生更改,以航跡顯示方式為例,只需修改航跡顯示組件內(nèi)部,而不需要修改整個態(tài)勢。
圖8 給出了多源情報集中顯控軟件組件化的示意圖,圖中以傳感器1和傳感器2的情報綜合顯示為例,描述整個軟件的組件構(gòu)成。軟件可視窗口或視圖都是由單個組件或組件集成構(gòu)成,包括了傳感器1和傳感器2的態(tài)勢顯示組件集合、表頁顯示組件、干預(yù)組件、人機(jī)交互組件以及綜合顯示組件等;同時繪圖支撐組件、計算類組件、數(shù)據(jù)管理組件等支撐組件作為軟件支撐,為其他組件的形成提供基礎(chǔ)功能實現(xiàn)。
本文主要圍繞如何利用組件化設(shè)計思想來實現(xiàn)預(yù)警探測系統(tǒng)多源情報集中顯控軟件,從而解決傳統(tǒng)開發(fā)模式存在的缺陷,以滿足不斷增長的功能需求,并根據(jù)各臺位部署特性,實現(xiàn)按需動態(tài)重組。采用組件化軟件設(shè)計方法能夠顯著增強(qiáng)軟件的復(fù)用,方便軟件功能擴(kuò)展,提供開發(fā)效率。在今后,隨著研究的逐漸深入,重點應(yīng)該集中在人機(jī)界面與邏輯實現(xiàn)的徹底分離、跨平臺數(shù)據(jù)分發(fā)機(jī)制及組件載體的實現(xiàn)等方面。另外,還應(yīng)該考慮軟件工具化,從而實現(xiàn)更精細(xì)、更人性化的軟件界面或者軟件功能定制等。
[1]康安康.預(yù)警探測系統(tǒng)中雷達(dá)組網(wǎng)優(yōu)化部署研究[J].電子技術(shù)與軟件工程,2016(6):32-32.
[2]張波,郝延剛,葉玲等[J].艦船電子工程,2016,36(10):1-4,131.
[3]周蕓.基于Zinc的雷達(dá)顯控軟件系統(tǒng)設(shè)計[J].艦船電子對抗,2011,34(6):106-109.
[4]楊芙清,王千詳.基于復(fù)用的軟件生產(chǎn)技術(shù)[J].中國科學(xué),2001,31(4):365-370.
[5]程莉莉,羅威,肖俊東等.一種基于可重組軟件架構(gòu)的觸摸顯控臺的設(shè)計與實現(xiàn)[J].艦船電子工程,2016,36(11):159-162.
[6]童心.基于軍事仿真應(yīng)用的三維引擎組件化構(gòu)建方法研究[D].北京:北京理工大學(xué),2010.
[7]柏龍.組件化雷達(dá)系統(tǒng)建模與仿真軟件設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[8]Will J.Development of an automated matching algorithm to assess the quality of the Open Street Map road net?work-A case study in Goteborg,Sweden[D].Lund(Swe?den),Lund University,2014.
[9]趙莉,孫喁喁,徐飛.Java組件技術(shù)[M].第1版.西安:西安交通大學(xué)出版社,2012.
[10]Jeffrey Richter.Windows Via C/C++[M]. 北京:清華大學(xué)出版社,2008.
[11]李路遙,杜國紅,徐新偉.綜合戰(zhàn)場態(tài)勢組件化表達(dá)模型研究[J]. 指揮控制與仿真,2016,38(04):13-17.
[12]楊大生.一種基于XML的分層式艦船網(wǎng)絡(luò)管理模式的設(shè)計方法[J]. 艦船電子工程,2015,35(3):88-91.