盛大同
(中國電子科學研究院,北京 100041)
?
工程與應用
關于預警機任務系統(tǒng)的軟件架構研究
盛大同
(中國電子科學研究院,北京100041)
從預警機面臨的挑戰(zhàn)出發(fā),提出了一種預警機任務系統(tǒng)的軟件架構——“網(wǎng)絡為中心、面向服務”的大系統(tǒng)軟件架構,“中間件為軟總線”的平臺軟件架構,“數(shù)據(jù)為中心”的應用軟件架構。該架構可以簡化預警機任務系統(tǒng)的數(shù)據(jù)和信息的管理,使得系統(tǒng)功能分離開來,便于進行原型或增量開發(fā),同時使得任務系統(tǒng)性能得到提升,減少系統(tǒng)軟件維護和升級的難度。
預警機; 任務系統(tǒng); 軟件架構
E926.37
A
1673-5692(2016)02-182-05
預警機在預警探測、發(fā)現(xiàn)遠距離和低空目標有著重要的作用,是現(xiàn)代戰(zhàn)爭中重要的空中武器節(jié)點。但是,面對當前以及未來越來越高的使用要求,預警機也存在如下挑戰(zhàn):難以處理越來越多的數(shù)據(jù)和信息;數(shù)據(jù)信息處理的實時性需要提高;軟件擴展性不好,維護和升級改進難度大;軟件重用度不高,開發(fā)成本高。因此,借鑒先進的軟件發(fā)展成果,研究預警機任務系統(tǒng)高效的軟件架構,對預警機的發(fā)展有著重要的意義。
預警機任務系統(tǒng)是指預警機執(zhí)行預警探測、通信和指揮控制等功能的系統(tǒng),包括預警雷達、敵我識別/二次雷達、通信、電子偵察、指揮控制等。預警機任務系統(tǒng)包括數(shù)量眾多的計算機,這些計算機由高速網(wǎng)絡連接,形成分布式的計算機系統(tǒng)。
預警機任務系統(tǒng)軟件具有配置項多、軟件規(guī)模大(幾百萬行)、功能復雜等特點。預警機任務系統(tǒng)軟件通常由人機界面軟件、系統(tǒng)軟件、傳感器主控軟件、傳感器軟件組成,如圖1所示。
圖1 預警機任務電子系統(tǒng)軟件
人機界面軟件負責人機交互,包括信息顯示、命令操作等;系統(tǒng)軟件負責任務控制、情報融合和輔助決策等;傳感器主控軟件負責傳感器與系統(tǒng)進行信息交互,接收控制命令,報告?zhèn)鞲衅鳡顟B(tài)和傳感器探測信息等;傳感器軟件負責對傳感器實時控制,實施探測,并處理探測數(shù)據(jù)等。
傳感器軟件一般采用實時系統(tǒng),人機界面軟件和系統(tǒng)軟件一般采用近實時系統(tǒng),傳感器主控軟件有的采用實時系統(tǒng),有的使用近實時系統(tǒng)。本文研究的是預警機任務系統(tǒng)中的近實時系統(tǒng)(圖1虛線以上部分)的軟件架構。
2003年,Bass,Clements和Kazman對軟件架構進行的定義:軟件架構是組成某個軟件或計算機系統(tǒng)的一個或多個結構,它們構成軟件的各個組件(Elements),形成這些組件的外部可見屬性及相互間關系[1]。
軟件架構是在軟件需求與軟件設計之間架起的一座橋梁,著重解決軟件系統(tǒng)的結構和需求向?qū)崿F(xiàn)平坦過渡的問題。此外軟件架構技術的研究,使軟件復用從代碼復用發(fā)展到設計復用和過程復用。
軟件架構對于軟件和軟件系統(tǒng)是至關重要的。D.E.Perry將軟件架構視為軟件開發(fā)中第一類重要的設計對象。Barry Boehm也明確指出“在沒有設計出架構及其規(guī)則時,那么整個項目不能繼續(xù)下去,而且架構軟件應該看作是開發(fā)中可交付的中間產(chǎn)品”[2]。
3.1“網(wǎng)絡為中心、面向服務”的大系統(tǒng)軟件架構
大系統(tǒng)是指預警機作為節(jié)點的作戰(zhàn)系統(tǒng),包括地面指揮所、海上作戰(zhàn)艦艇、空中作戰(zhàn)飛機等。預警機作為大系統(tǒng)的一個節(jié)點,應滿足大系統(tǒng)的軟件架構,實現(xiàn)與其他裝備的互聯(lián)互通互操作。
(1)網(wǎng)絡為中心
預警機所在的作戰(zhàn)網(wǎng)絡是由網(wǎng)絡基礎平臺層、網(wǎng)絡管理層和網(wǎng)絡應用層構成,如圖2所示。網(wǎng)絡基礎平臺層由網(wǎng)絡設備組成,是網(wǎng)絡的基礎。網(wǎng)絡管理層執(zhí)行對網(wǎng)絡的管理,維護網(wǎng)絡的正常運行,同時接收網(wǎng)絡應用層請求,提供應用所需的網(wǎng)絡鏈路。網(wǎng)絡應用層是指在建立在網(wǎng)絡環(huán)境上的應用。
圖2 作戰(zhàn)網(wǎng)絡構成圖
短波、超短波、衛(wèi)通等通信鏈路設備構成預警機的作戰(zhàn)網(wǎng)絡基礎。在任務執(zhí)行前,根據(jù)執(zhí)行任務類型制定通信規(guī)劃,確定預警機的通信鏈路和容量。在任務執(zhí)行中,根據(jù)需要預警機可向網(wǎng)絡管理節(jié)點申請調(diào)整通信規(guī)劃,變更通信鏈路或增加鏈路容量。
與“平臺為中心”大系統(tǒng)軟件架構的區(qū)別?!捌脚_為中心”強調(diào)的是各個平臺,平臺應用受到平臺之間所能提供的鏈路限制,有什么樣的“路”才能跑什么樣的“車”?!熬W(wǎng)絡為中心”提供了鏈路的多種選擇,根據(jù)應用的請求,網(wǎng)絡提供相應的鏈路,也就是“車”決定起點、終點和要求,網(wǎng)絡提供合適的“路”。
(2)面向服務
從體系架構的角度,面向服務的架構是一種軟件體系結構和軟件構造方法。在軟件的基礎架構上,面向服務架構能夠?qū)崿F(xiàn)服務部署環(huán)境和服務實現(xiàn)之間的松散耦合,以及不同功能的服務實現(xiàn)之間松散耦合性,有利于提高分布式系統(tǒng)的可伸縮性,有利于實現(xiàn)對資源的動態(tài)優(yōu)化配置,最大程度地資源共享[3]。
在面向服務模型中,所有的功能都定義成了獨立的服務,服務之間通過交互和協(xié)調(diào)完成業(yè)務的整體邏輯。所有的服務通過服務總線或流程管理器來連接。這種松耦合的體系結構使得各服務在交互過程中無須考慮對方的內(nèi)部實現(xiàn)細節(jié),以及部署在什么平臺上[4]。預警機的服務包括兩類,一類是預警機提供的服務,另一類是預警機接收的服務。預警機提供和接受的服務包括目標信息服務、作戰(zhàn)指揮服務等。
預警機提供服務的過程:預警機通過服務注冊中心發(fā)布服務;服務請求者向服務注冊中心查找服務;服務請求者按照明確定義的標準接口與預警機交互,接受服務。預警機接受服務的過程與預警機提供服務的過程類似,不同的是預警機作為服務請求者參與其中。
目標信息服務包括信息訂閱接口和信息分發(fā)接口等。服務請求者通過信息訂閱接口向服務提供者訂閱目標信息。服務提供者通過信息分發(fā)接口向服務請求者發(fā)送目標信息。
作戰(zhàn)指揮服務包括身份注冊接口、任務分配接口、指令分發(fā)接口、指令執(zhí)行情況接口和文電接口等。服務請求者通過身份注冊接口向服務提供者進行身份注冊;服務提供者通過任務分配接口、指令分發(fā)接口向服務請求者分發(fā)任務和指令;服務請求者通過指令執(zhí)行情況接口向服務提供者匯報指令執(zhí)行情況;服務提供者和服務請求者通過文電接口進行文電信息交互。
3.2“中間件為軟總線”的平臺軟件架構
預警機任務系統(tǒng)的平臺軟件架構是“中間件為軟總線”的開放式體系架構,許多先進的武器平臺也是采用這種開放式體系架構[5]。圖3給出了預警機任務系統(tǒng)的平臺軟件架構。
圖3 預警機任務系統(tǒng)的平臺軟件架構
平臺軟件架構的下兩層是計算機及網(wǎng)絡硬件和系統(tǒng)軟件,系統(tǒng)軟件包括操作系統(tǒng)、網(wǎng)絡協(xié)議、數(shù)據(jù)庫等?;痉哲浖ㄌ峁r間對準服務、坐標系轉換服務、顯示服務的軟件等?;痉哲浖樯蠈拥膽密浖?情報融合、外部通信、指揮控制等)提供基礎服務。中間件是處于應用軟件、基本服務軟件和系統(tǒng)軟件之間的一個軟件層,它屏蔽了環(huán)境底層的復雜性,提供給應用開發(fā)者統(tǒng)一的、功能強大的APIs,使應用開發(fā)者只專注于業(yè)務邏輯的開發(fā),快速地開發(fā)出可靠、高效的企業(yè)級分布式應用[6]。
中間件是預警機任務系統(tǒng)的軟總線。駐留在系統(tǒng)各計算機上的軟件或同一計算機上的不同軟件通過中間件進行信息交互。預警機任務系統(tǒng)中間件具有如下功能:
(1)消息通訊。消息中間件提供了靈活的應用通訊機制,包括消息隊列、發(fā)布/訂閱等方式,支持多種通訊協(xié)議、語言、硬件和軟件平臺。
(2)分布式對象交互。在預警機任務系統(tǒng)中,通常需要對多個分布的對象進行集成,使對象之間進行交互,形成一個具有一定功能的軟件組件。分布式對象交互支持位置無關性、語言無關性、平臺無關性,對象之間的調(diào)用和數(shù)據(jù)共享不再關心對象的位置、實現(xiàn)語言、網(wǎng)絡協(xié)議、數(shù)據(jù)庫及所駐留的操作系統(tǒng)。
(3)數(shù)據(jù)庫訪問。數(shù)據(jù)庫訪問實現(xiàn)了應用程序和異構數(shù)據(jù)庫之間的統(tǒng)一接口,有效解決了應用系統(tǒng)與不同后臺數(shù)據(jù)庫的數(shù)據(jù)訪問問題。在不同的預警機任務系統(tǒng)中,可能會采用不同的數(shù)據(jù)庫。中間件的使用保證了預警機軟件架構的穩(wěn)定,不會因數(shù)據(jù)庫不同而影響預警機應用軟件。
(4)軟件的運行監(jiān)控。記錄軟件的運行情況、CPU和內(nèi)存占用情況等日志信息。當軟件出現(xiàn)故障時,進行重啟等操作。
3.3“數(shù)據(jù)為中心”的平臺應用軟件框架
(1)數(shù)據(jù)為中心
數(shù)據(jù)作為應用軟件的中心,是對客觀世界的真實反映。對于每個軟件來說,輸入的是數(shù)據(jù),處理的是數(shù)據(jù),輸出的還是數(shù)據(jù)。軟件功能是圍繞數(shù)據(jù)開展活動。數(shù)據(jù)類對數(shù)據(jù)進行封裝,并提供方法對數(shù)據(jù)進行讀、寫等操作。數(shù)據(jù)處理類對數(shù)據(jù)進行處理,實現(xiàn)對數(shù)據(jù)處理的算法。
對數(shù)據(jù)的依賴,而不是對數(shù)據(jù)處理的依賴,保證了軟件功能的分離,使得軟件具有良好的可擴展性。圖4表示的是應用軟件數(shù)據(jù)處理的過程,由于輸入數(shù)據(jù)、輸出數(shù)據(jù)格式基本是固定的,不會隨項目發(fā)生變化,因此相應的數(shù)據(jù)輸入和數(shù)據(jù)輸出也相對固定,變化的部分只是數(shù)據(jù)處理部分。
對于一個應用軟件,以“數(shù)據(jù)為中心”可以保證軟件良好的擴展性,是一種模塊化的應用軟件架構。
圖4 數(shù)據(jù)處理過程
(2)軟件插件
應用軟件根據(jù)功能對軟件進行插件劃分和管理,一組(或一個)插件完成一項軟件功能。插件形式上是一組源代碼文件、執(zhí)行程序和配置文件,這組源代碼文件、執(zhí)行程序和配置文件只包含這一軟件功能相關的內(nèi)容,不包含其他軟件功能的內(nèi)容。
(3)應用軟件框架
應用軟件框架具有的功能:
插件管理:插件以動態(tài)庫的形式集成到應用軟件框架中,應用軟件框架對插件進行管理。插件管理包括插件啟動、插件初始化、插件停止、插件關閉;
定時器:利用軟定時器對定時器進行統(tǒng)一管理,包括增加和刪除定時器、開始定時器、在任何時刻停止和重啟定時器、在任何時刻設置定時器速度。
對象管理器:利用對象管理器進行對象的身份識別和對象句柄獲取,對象包括兩個基本屬性,對象組標識、對象標識。對象管理器功能包括對象ID的創(chuàng)建、對象句柄獲取。
時間管理:獲取系統(tǒng)時間。
多線程與線程池:在界面處理計算密集型任務時,采用多線程技術保障人機界面高實時響應。功能包括線程的創(chuàng)建、線程池調(diào)度。
應用軟件框架的工作過程如圖5所示。
圖5 應用軟件框架的工作過程
框架主進程啟動后,首先進行系統(tǒng)初始化,初始化的主要工作包括:插件管理器的初始化、定時器管理器的初始化、線程池管理器的初始化等;然后進行業(yè)務功能插件導入,插件的啟動和初始化工作,進入處理事件循環(huán)工作。當事件循環(huán)捕獲到系統(tǒng)退出時,執(zhí)行插件的關閉工作。
3.4預警機任務系統(tǒng)的完整軟件架構
“網(wǎng)絡為中心、面向服務”的大系統(tǒng)軟件架構、“中間件為軟總線”的平臺軟件架構、“數(shù)據(jù)為中心”的平臺應用軟件架構形成了預警機任務系統(tǒng)的完整軟件框架。三者是預警機任務系統(tǒng)軟件框架的三個方面,“網(wǎng)絡為中心、面向服務”的大系統(tǒng)軟件架構是針對預警機為節(jié)點的作戰(zhàn)系統(tǒng),“中間件為軟總線”的平臺軟件架構是針對預警機任務平臺,“數(shù)據(jù)為中心”的平臺應用軟件架構是針對預警機任務系統(tǒng)中的應用軟件。三個軟件框架在軟件開發(fā)中融合在一起,形成完整的系統(tǒng)。
4.1對系統(tǒng)性能的影響
(1)作戰(zhàn)系統(tǒng)的靈活接入
由于采用“網(wǎng)絡為中心,面向服務”的大系統(tǒng)架構,預警機、作戰(zhàn)飛機等可以靈活接入作戰(zhàn)系統(tǒng)?;诰W(wǎng)絡的互聯(lián)互通,以及面向服務的松耦合和標準化接口,使得作戰(zhàn)系統(tǒng)具有很強的靈活接入能力,預警機、作戰(zhàn)飛機等可以根據(jù)需要隨時接入系統(tǒng)或從系統(tǒng)中撤出。
作戰(zhàn)系統(tǒng)的靈活接入增加了作戰(zhàn)系統(tǒng)在戰(zhàn)場上的組織整合能力,不必過分依賴戰(zhàn)前規(guī)劃,使得作戰(zhàn)系統(tǒng)可以應對不同規(guī)模或強度的戰(zhàn)斗和沖突,具有很強的彈性和時效性。
對于預警機而言,“網(wǎng)絡為中心,面向服務”的大系統(tǒng)架構簡化了預警機與大系統(tǒng)之間的關系,可以使得預警機隨時隨地提供和接受服務。
(2)系統(tǒng)具有良好的性能擴展性
“中間件為軟總線”的平臺軟件架構具有分布式的特點,具有軟件遷移、復制、負載均衡的能力。當系統(tǒng)處理能力不能滿足數(shù)據(jù)處理時,自動進行軟件復制,產(chǎn)生多個相同的軟件同時進行數(shù)據(jù)處理,并且可以對這多個軟件進行負載均衡。
(3)數(shù)據(jù)信息處理實時性的提高
“數(shù)據(jù)為中心”的平臺應用軟件架構可以將單個長時間鏈條的數(shù)據(jù)處理分為多個短時間鏈條,縮短不同時間序列數(shù)據(jù)的處理等待時間。這種串行的數(shù)據(jù)處理與上面提到的負載均衡并行處理相結合,在系統(tǒng)性能得到提高的同時,也可以提高數(shù)據(jù)信息處理的實時性。
4.2對系統(tǒng)運行和維護的影響
(1)強化了系統(tǒng)的運行管理和監(jiān)控
“中間件為軟總線”的平臺軟件架構對各軟件的運行進行監(jiān)控,可以使得操作人員掌握各軟件的運行情況(正常或失效),CPU和內(nèi)存占用情況,以及查看軟件的運行信息。軟件架構對于軟件的運行管理和監(jiān)控,提高了系統(tǒng)的可靠性和操作人員對于系統(tǒng)運行情況的掌握,對于分析和解決系統(tǒng)故障具有重要作用。
(2)減少了系統(tǒng)升級對其他系統(tǒng)的影響
由于預警機以及大系統(tǒng)中的其他裝備采用“網(wǎng)絡為中心,面向服務”的系統(tǒng)架構,使得在系統(tǒng)升級時預警機可以同時具備多種技術狀態(tài),不同的技術狀態(tài)具有不同的服務,不管其他系統(tǒng)是否同步升級,都不會影響使用,從而減少了系統(tǒng)升級對其他系統(tǒng)的影響。
(3)提高了系統(tǒng)的可維護性
“數(shù)據(jù)為中心”的平臺應用架構提高了系統(tǒng)的可維護性,表現(xiàn)在兩個方面:一是插件的使用隔離了不同數(shù)據(jù)處理的影響,減少了改進對其他功能的影響,接入新增功能更加容易;二是數(shù)據(jù)處理方式的改變不影響外部數(shù)據(jù)接口,功能升級增效更加方便。
4.3對開發(fā)的影響
(1)提高了軟件開發(fā)效率和重用度
功能分離的軟件插件開發(fā)方法,使得軟件的開發(fā)有序而高效。開發(fā)的軟件插件被保存在企業(yè)的資源庫中,需要時被取出使用,不用重復開發(fā)和測試。同時,系統(tǒng)功能分離開來,使得預警機任務系統(tǒng)可以更加方便地進行原型或增量開發(fā)模式進行開發(fā),可以及時與用戶溝通,得到用戶的使用反饋,避免了開發(fā)出現(xiàn)大的問題。
(2)減少了系統(tǒng)的復雜度
“中間件為軟件總線”分布式的平臺軟件架構以及“數(shù)據(jù)為中心”的應用軟件架構使得數(shù)據(jù)可以集中管理。分散的計算節(jié)點(如顯控臺)上的軟件不用對本地數(shù)據(jù)進行維護,數(shù)據(jù)的同步由系統(tǒng)架構來維護(系統(tǒng)架構發(fā)現(xiàn)中心數(shù)據(jù)發(fā)生變化,會自動同步本地軟件的數(shù)據(jù))。現(xiàn)在的情況是:服務器、顯控臺等分別保存一份數(shù)據(jù),分別對數(shù)據(jù)進行管理,增加了系統(tǒng)的復雜度。
“網(wǎng)絡為中心、面向服務”的大系統(tǒng)軟件架構、“中間件為軟總線”的平臺軟件架構、“數(shù)據(jù)為中心”的平臺應用軟件架構形成了預警機任務系統(tǒng)的完整軟件架構。該架構可以簡化預警機系統(tǒng)數(shù)據(jù)和信息的管理,使得系統(tǒng)功能分離開來,便于進行原型或增量開發(fā),同時使得系統(tǒng)性能得到提升,減少系統(tǒng)軟件維護和升級的難度。
[1]How Do You Define Software Architecture,http://www.sei.cmu.edu,2004.
[2]孫晶愛,金茂忠,劉超,軟件體系結構研究綜述[J]. 軟件學報,2002,13(7):1228-1237.
[3]唐秀良,SOA發(fā)展探索與研究[J]. 中國電子科學研究院學報,2009,25(5):473-479.
[4]張友生,軟件體系結構原理、方法與實踐(第2版)[M]:198.
[5]董曉明,石朝明,黃坤,等. 美海軍DDG-1000全艦計算環(huán)境體系結構探析[J]. 中國艦船研究,2012,7(6):7-15.
[6]蔣雄偉,馬范援. 中間件與分布式計算 [J].計算機應用,2002,22(4):6-8.
盛大同(1970—),男,河南省商丘人,高級工程師,主要研究方向為電子信息系統(tǒng)軟件設計與集成。
E-mail:whsdt@163.com
Research on Software Architecture of AWACS Mission System
SHENG Da-tong
(China Academy of Electronics and Information Technology, Beijing 100041, China)
From the challenge of AWACS, the author provides a software architecture for AWACS mission system. It is network-center and service-oriented with the software architecture of system, middle-ware software bus of the platform software architecture, data-center of the platform application software. This software architecture makes the control of data and information more simply, and separates the system functions, it is advantageous to prototype development and Incremental Development. It can also improve capability of the AWACS mission system,and reduce the difficulty of software maintaining and upgrading.
Airborne Warning and Control System(AWACS); Mission System; software architecture
10.3969/j.issn.1673-5692.2016.02.012
2016-01-22
2016-02-23