李春榮,劉筱
(中國(guó)電子科技集團(tuán)公司中國(guó)電子科學(xué)研究院,北京262500)
基于框架-插件架構(gòu)的軍事仿真系統(tǒng)設(shè)計(jì)方法研究
李春榮,劉筱
(中國(guó)電子科技集團(tuán)公司中國(guó)電子科學(xué)研究院,北京262500)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,軟件體系結(jié)構(gòu)和開(kāi)發(fā)方法也在發(fā)生著重大變化,近年來(lái),以“框架+插件”為代表的軟件構(gòu)造方法正得到越來(lái)越多的應(yīng)用?!翱蚣?插件”式體系結(jié)構(gòu)是一種非常靈活的組件式結(jié)構(gòu),它把程序功能分散在插件中來(lái)完成,插件是可獨(dú)立于系統(tǒng)開(kāi)發(fā)的程序模塊,它能夠動(dòng)態(tài)地插入到基于框架的系統(tǒng)中。因此,它有著相當(dāng)突出的優(yōu)點(diǎn):能夠提高軟件開(kāi)發(fā)的并行性和開(kāi)發(fā)效率,降低設(shè)計(jì)開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期,增強(qiáng)應(yīng)用程序的可運(yùn)行性、可測(cè)試性和可維護(hù)性[1],在業(yè)界廣受推崇。
雖然系統(tǒng)仿真技術(shù)經(jīng)歷多年發(fā)展已經(jīng)日趨成熟,但面對(duì)不同的應(yīng)用需求,軍事仿真系統(tǒng)構(gòu)建還存在模型重用率低,開(kāi)發(fā)周期長(zhǎng),可靠性差等問(wèn)題。為了更好解決這些問(wèn)題,軍事系統(tǒng)仿真可嘗試插件式設(shè)計(jì)思想,利用“即插即用”的仿真模型插件來(lái)進(jìn)行系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)。本文提出了一種基于“仿真應(yīng)用集成框架+仿真插件”模式的軍事仿真系統(tǒng)設(shè)計(jì)方法,該方法從仿真應(yīng)用集成框架的構(gòu)建,到基于框架的仿真插件設(shè)計(jì)給出了一整套解決方案,并在實(shí)際項(xiàng)目中進(jìn)行了應(yīng)用,證明了該方法是切實(shí)可行的。
框架-插件架構(gòu)的基本思想是把軟件的擴(kuò)展功能做成插件的形式,通過(guò)一個(gè)公共平臺(tái)(即框架)統(tǒng)一管理起來(lái)[2]。插件針對(duì)標(biāo)準(zhǔn)接口編程,框架通過(guò)調(diào)用標(biāo)準(zhǔn)接口把不同的插件有機(jī)集成起來(lái),使它們協(xié)同工作。插件的本質(zhì)是在不修改主體程序(框架)的情況下,實(shí)現(xiàn)系統(tǒng)功能的擴(kuò)展,同時(shí)也可以由一組插件共同協(xié)作完成系統(tǒng)的全部功能。
仿真應(yīng)用集成框架是針對(duì)軍事仿真領(lǐng)域插件式軟件開(kāi)發(fā)和集成設(shè)計(jì)的基礎(chǔ)平臺(tái),它能夠動(dòng)態(tài)集成按照插件開(kāi)發(fā)規(guī)范開(kāi)發(fā)的插件,支持以插件為單元的系統(tǒng)動(dòng)態(tài)組裝,基于框架開(kāi)發(fā)的仿真應(yīng)用系統(tǒng)由若干功能插件組成,進(jìn)行仿真應(yīng)用系統(tǒng)集成時(shí)只需在該框架下將插件按信息關(guān)系進(jìn)行逐步組裝即可完成,同時(shí),該框架還支持復(fù)合應(yīng)用的集成,即在一個(gè)EXE集成框架內(nèi)實(shí)現(xiàn)多個(gè)仿真應(yīng)用的集成,協(xié)調(diào)多個(gè)仿真應(yīng)用組合的展現(xiàn)操作內(nèi)容[3]。
仿真應(yīng)用集成框架由仿真框架主體、插件容器和插件開(kāi)發(fā)規(guī)范三部分組成,見(jiàn)圖1,仿真框架主體和插件容器是構(gòu)成仿真應(yīng)用系統(tǒng)的主體,而插件開(kāi)發(fā)規(guī)范是用來(lái)指導(dǎo)基于該框架的插件開(kāi)發(fā)。
圖1 仿真應(yīng)用集成框架組成
(1)框架主體:系統(tǒng)主程序負(fù)責(zé)仿真軟件的整體運(yùn)行,它清楚插件的調(diào)用流程,但并不知道每個(gè)插件具體做什么,它通過(guò)插件配置文件在插件容器中查找應(yīng)用需要使用的插件,通過(guò)插件管理器加載和調(diào)用插件,來(lái)實(shí)現(xiàn)軟件的真正功能,其中,插件管理器由以下幾個(gè)模塊組成:
①插件接口插槽:負(fù)責(zé)插件的動(dòng)態(tài)加載及初始化,實(shí)現(xiàn)與插件的動(dòng)態(tài)掛接;
②窗體消息管理:負(fù)責(zé)仿真應(yīng)用系統(tǒng)窗體消息的訂購(gòu)及發(fā)布,根據(jù)插件的配置要求將仿真主體框架的窗體消息傳遞給插件;
③插件注冊(cè)管理:負(fù)責(zé)插件的注冊(cè)和查詢(xún),加載完成的插件在系統(tǒng)中通過(guò)唯一標(biāo)識(shí)進(jìn)行注冊(cè),其他插件可以通過(guò)標(biāo)識(shí)來(lái)查詢(xún)已注冊(cè)的插件;
④接口注冊(cè)管理:負(fù)責(zé)插件實(shí)現(xiàn)的公共服務(wù)接口的注冊(cè)和查詢(xún),插件通過(guò)接口公布自身提供的服務(wù)集合,其他插件通過(guò)接口注冊(cè)管理來(lái)獲取接口,使用服務(wù);
⑤界面管理:根據(jù)插件要求完成框架界面的定制,并將界面菜單消息反饋給插件;
⑥插件消息管理:負(fù)責(zé)插件間消息的發(fā)布、訂購(gòu)和傳遞,各類(lèi)消息具有唯一標(biāo)識(shí),插件根據(jù)需要訂購(gòu)消息,當(dāng)其他插件發(fā)送該消息時(shí),插件會(huì)收到消息回調(diào)。
(2)插件容器:統(tǒng)一存放插件的地方,仿真系統(tǒng)運(yùn)行時(shí),根據(jù)插件配置在該容器中查找相應(yīng)插件完成插件動(dòng)態(tài)加載。插件在實(shí)現(xiàn)自身功能的同時(shí)也可以注冊(cè)接口,為其他插件提供服務(wù),本框架將插件分為兩類(lèi),基礎(chǔ)服務(wù)插件和仿真業(yè)務(wù)插件。
①基礎(chǔ)服務(wù)插件:應(yīng)用集成框架提供了態(tài)勢(shì)標(biāo)繪、線程管理、空間位置計(jì)算和地圖工具操作插件4個(gè)基礎(chǔ)服務(wù)插件,對(duì)外提供服務(wù)接口,供其他插件調(diào)用;
②仿真業(yè)務(wù)插件:與仿真應(yīng)用軟件功能、業(yè)務(wù)邏輯緊密相關(guān)的插件,如流程控制插件、仿真模型插件等。
(3)插件開(kāi)發(fā)規(guī)范:規(guī)定了基于仿真應(yīng)用集成框架開(kāi)發(fā)插件的一系列開(kāi)發(fā)規(guī)范。
①插件集成開(kāi)發(fā)標(biāo)準(zhǔn):定義了插件的初始化、釋放、插件消息訂購(gòu)和發(fā)送、插件消息處理以及插件接口注冊(cè)及使用等一些列接口標(biāo)準(zhǔn),插件的開(kāi)發(fā)必需遵循該標(biāo)準(zhǔn),遵循標(biāo)準(zhǔn)的插件才能夠被自動(dòng)加載和集成;
②服務(wù)接口集:供插件開(kāi)發(fā)使用,由遵循插件接口規(guī)范的接口描述文件構(gòu)成。
仿真應(yīng)用集成框架插件集成原理如圖2所示,①框架搜索插件配置目錄獲取所有需要加載的插件;
圖2 插件集成原理圖
該框架中存在兩類(lèi)插件通信問(wèn)題:①仿真框架主體(主要是指界面窗體)與插件間的通信;②插件之間的消息通信。
對(duì)于(1),通過(guò)插件的標(biāo)準(zhǔn)繼承函數(shù)即可實(shí)現(xiàn),即每個(gè)功能插件都繼承于插件基類(lèi),插件基類(lèi)中定義了一系列主體框架與插件通信的虛函數(shù),在功能插件中實(shí)例化了這些虛函數(shù),當(dāng)有相應(yīng)的消息事件發(fā)生時(shí),仿真框架主體就會(huì)回調(diào)相應(yīng)插件的處理函數(shù)執(zhí)行處理,這些處理主要包括菜單命令處理、命令菜單的控制、窗體消息的處理(如按下鼠標(biāo)左鍵)、命令菜單的控制等。
對(duì)于(2),插件通過(guò)主體框架的插件消息管理器中轉(zhuǎn)消息。插件間的通信方式有兩種,主動(dòng)獲?。ú寮涌谡{(diào)用)與被動(dòng)接收(消息的發(fā)布-訂購(gòu)機(jī)制)。無(wú)論哪種方式,都需要一塊內(nèi)存區(qū)域來(lái)存儲(chǔ)通信的“信息”。圖3示意了插件間如何通信,插件間通信主要應(yīng)用于兩種場(chǎng)景:①某一插件狀態(tài)發(fā)生改變通知其他插件,即消息的發(fā)布-訂購(gòu);②某插件要將導(dǎo)出對(duì)象信息傳給依賴(lài)于它的插件,指插件接口調(diào)用[4]。
采用基于框架的插件式開(kāi)發(fā)方法最大的特點(diǎn)是實(shí)現(xiàn)軟件的“即插即用”和“組裝”,提高插件的復(fù)用性,然而增強(qiáng)插件的復(fù)用性不僅需要插件內(nèi)部良好的設(shè)計(jì),更需要對(duì)仿真業(yè)務(wù)功能進(jìn)行合理的劃分,對(duì)插件粒度進(jìn)行合理的掌握,本文給出以下3條仿真業(yè)務(wù)插件的設(shè)計(jì)劃分原則。
圖3 插件間通信
(1)分層原則
本文將仿真業(yè)務(wù)插件分為三個(gè)層次,如圖4所示,基礎(chǔ)服務(wù)插件層、仿真模型插件層和仿真應(yīng)用插件層?;A(chǔ)服務(wù)插件為與領(lǐng)域無(wú)關(guān)的通用服務(wù),可由框架提供,也可由用戶(hù)根據(jù)業(yè)務(wù)需要自行開(kāi)發(fā);仿真模型插件層是最重要的一層,它是對(duì)客觀軍事仿真對(duì)象的概念、原理、行為的抽象模擬[5]形成的仿真實(shí)體模型;仿真應(yīng)用層建立在仿真模型插件層基礎(chǔ)上,負(fù)責(zé)業(yè)務(wù)界面的顯示及協(xié)調(diào)調(diào)度仿真模型插件完成軟件功能。
圖4 仿真業(yè)務(wù)插件層次劃分
(2)分離原則
為實(shí)現(xiàn)軟件“高聚合,低耦合”的目標(biāo),軟件軍事仿真系統(tǒng)在設(shè)計(jì)上應(yīng)遵循軟件三層架構(gòu)的設(shè)計(jì)原則,即在整個(gè)軟件層次上分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。表現(xiàn)層主要用于顯示數(shù)據(jù)和接收用戶(hù)輸入;業(yè)務(wù)邏輯層是整個(gè)系統(tǒng)架構(gòu)中最核心的部分,它包括仿真實(shí)體模型及對(duì)于整個(gè)實(shí)體模型算法的控制調(diào)度;數(shù)據(jù)訪問(wèn)層主要負(fù)責(zé)對(duì)于仿真系統(tǒng)共用數(shù)據(jù)的管理和維護(hù)。
(3)特殊應(yīng)用考慮原則
有些仿真系統(tǒng)在運(yùn)行時(shí)有特殊應(yīng)用需求,對(duì)于這一點(diǎn)在進(jìn)行插件劃分時(shí)要給予充分考慮,如要求能夠調(diào)速1~50倍運(yùn)行,此時(shí),需要考慮仿真流程調(diào)度頻率問(wèn)題,眾所周知,計(jì)算模型消耗計(jì)算機(jī)資源相對(duì)較少,而在地圖上繪圖顯示刷新則耗費(fèi)大量的計(jì)算機(jī)資源,在此情況下,一定要將仿真模型計(jì)算與繪圖顯示分離,并且仿真模型計(jì)算可調(diào)速運(yùn)行,而繪圖顯示一般按照固定的頻率進(jìn)行刷新,以保證足夠的系統(tǒng)資源支持模型加速運(yùn)行。
基于仿真插件設(shè)計(jì)劃分原則,本文將仿真業(yè)務(wù)插件劃分為如圖5所示的分類(lèi)及層次結(jié)構(gòu),每類(lèi)插件可由多個(gè)插件組成。
圖5 仿真插件分類(lèi)及層次劃分
(1)信息收發(fā):隔離底層通信平臺(tái),負(fù)責(zé)仿真應(yīng)用軟件與外部軟件的交互信息的接收和發(fā)送;
(2)時(shí)間管理:負(fù)責(zé)系統(tǒng)作戰(zhàn)時(shí)間和天文時(shí)間的維護(hù),并對(duì)外提供時(shí)間服務(wù)接口;
(3)參數(shù)獲?。贺?fù)責(zé)仿真應(yīng)用軟件配置信息、相應(yīng)信息等數(shù)據(jù)的獲?。?/p>
(4)模型算法:是對(duì)仿對(duì)象行為、決策等的抽象,如雷達(dá)監(jiān)測(cè)、跟蹤算法,威脅評(píng)估算法等;
(5)仿真實(shí)體模擬:基于仿真模型算法,對(duì)仿真實(shí)體的行動(dòng)及響應(yīng)行為的流程組織[6];
(6)數(shù)據(jù)管理:管理仿真模型算法、仿真實(shí)體的描述數(shù)據(jù)、輸入及輸出數(shù)據(jù),并負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和獲??;
(7)界面顯示:負(fù)責(zé)仿真軟件界面操作元素的創(chuàng)建和顯示,如操作對(duì)話框、工具條等;
(8)信息顯示:負(fù)責(zé)仿真過(guò)程中重要信息的顯示,如信息輸出框,重要信息提示框等;
(9)仿真流程調(diào)度:依據(jù)仿真進(jìn)程控制(仿真初始化、開(kāi)始、停止等),控制仿真軟件的狀態(tài),組織調(diào)度各插件協(xié)同完成軟件功能。
在某大型仿真系統(tǒng)項(xiàng)目中,利用“仿真應(yīng)用集成框架+仿真插件”的系統(tǒng)開(kāi)發(fā)方式實(shí)現(xiàn)了某機(jī)載雷達(dá)和天波超視距雷達(dá)模擬軟件,主要模擬該兩型雷達(dá)對(duì)空、海目標(biāo)的探測(cè)和跟蹤能力,兩個(gè)軟件的輸入、輸出接口一致,仿真控制過(guò)程一致,不同的是兩型雷達(dá)的工作機(jī)理不同。
經(jīng)過(guò)對(duì)該兩型雷達(dá)的工作機(jī)制和仿真流程進(jìn)行分析,開(kāi)發(fā)圖6所示14個(gè)功能插件,基于這些插件組裝,分別組裝成某機(jī)載雷達(dá)模擬軟件和天波超視距雷達(dá)模擬軟件,如圖7、圖8所示。
(1)軟件顯示單元?jiǎng)討B(tài)組裝效果
在機(jī)載雷達(dá)模擬軟件插件加載配置文件中配置圖7插件容器中的所有插件,運(yùn)行效果如圖9所示。而在天波超視距雷達(dá)模擬軟件的插件配置文件中刪除兩個(gè)信息顯示相關(guān)插件,運(yùn)行效果如圖10所示,該效果表明軟件功能插件單元是可以動(dòng)態(tài)添加、刪除的。
圖6 雷達(dá)探測(cè)系統(tǒng)軟件仿真業(yè)務(wù)插件
圖7 某機(jī)載雷達(dá)模擬軟件插件組裝圖
圖8 天波超視距雷達(dá)模擬軟件插件組裝圖
圖9 某機(jī)載雷達(dá)模擬軟件插件組裝圖
圖10 天波超視距雷達(dá)模擬軟件插件組裝圖
(2)復(fù)合應(yīng)用組裝效果
在機(jī)載雷達(dá)仿真應(yīng)用中集成天波超視距雷達(dá)應(yīng)用的功能,只需將機(jī)載雷達(dá)模擬軟件插件配置文件中添加四個(gè)天波雷達(dá)專(zhuān)用業(yè)務(wù)插件的配置,并將這四個(gè)插件放入機(jī)載雷達(dá)模擬軟件的插件容器中,其運(yùn)行效果如圖11所示。
圖11 復(fù)合應(yīng)用插件組裝圖
本文提出了一種基于框架-插件的軍事仿真系統(tǒng)設(shè)計(jì)方法,該方法的關(guān)鍵點(diǎn)在于設(shè)計(jì)一種適合本業(yè)務(wù)領(lǐng)域的通用應(yīng)用集成框架和基于框架的仿真業(yè)務(wù)插件設(shè)計(jì)原則。前者解決了基于插件的單仿真應(yīng)用系統(tǒng)和多種仿真應(yīng)用快速集成的問(wèn)題,后者解決了仿真應(yīng)用系統(tǒng)業(yè)務(wù)插件粒度劃分及設(shè)計(jì)問(wèn)題?;凇翱蚣?插件”的設(shè)計(jì)開(kāi)發(fā)方法,使技術(shù)人員更專(zhuān)注于仿真功能模型的開(kāi)發(fā),而不必關(guān)心系統(tǒng)集成的事情,縮減了軟件開(kāi)發(fā)周期,提高了軟件可靠性,由于單元插件、模型功能插件不同粒度的插件都可以復(fù)用,使得仿真插件的復(fù)用率大大提高。同時(shí),由于該架構(gòu)體系具有較高可擴(kuò)展性和易用性,相信其在軍事仿真應(yīng)用領(lǐng)域頗具應(yīng)用前景。
[1]孫昌愛(ài),金茂忠,劉超.軟件體系結(jié)構(gòu)研究綜述[J].軟件學(xué)報(bào),2002,13(7):1228-1229.
[2]吳亮,楊凌云,尹艷斌.基于插件技術(shù)的GIS應(yīng)用框架的研究與實(shí)現(xiàn)[J].中國(guó)地質(zhì)大學(xué)學(xué)報(bào),2006,31(5):610-614.
[3]戴仔強(qiáng),金曉雪,余俊.基于插件的表現(xiàn)集成技術(shù)[J].指揮信息系統(tǒng)與技術(shù),2013,4(1):39.
[4]李祥,吳瑞祥,薛雯.基于插件的可擴(kuò)展戰(zhàn)場(chǎng)態(tài)勢(shì)展現(xiàn)框架的設(shè)計(jì)與實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013.7:80.
[5]王俊,邵堃,劉磊,劉宗田.一種可復(fù)用的插件粒度劃分方法[J].計(jì)算機(jī)工程,2009,35(22):79-80.
[6]史華明,毛文華.指揮對(duì)抗訓(xùn)練信息系統(tǒng)結(jié)構(gòu)及功能設(shè)計(jì)研究[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2014,9(2):149-154.
Ntegration Framework;Plug-in;Simulation System;Plug-in Design
Research on the Design Method of Military Simulation System Based on Framework and Plug-in
LI Chun-rong LIU Xiao
(China Academy of Electronics and Information Technology,Beijing 262500)
1007-1423(2015)22-0071-07
10.3969/j.issn.1007-1423.2015.22.018
李春榮(1981-),女,山東人,碩士研究生,工程師,研究方向?yàn)檐娛码娮有畔⑾到y(tǒng)建模與仿真
2015-06-26
2015-07-31
針對(duì)軍事仿真系統(tǒng)模型重用率低、開(kāi)發(fā)周期長(zhǎng)等問(wèn)題,提出一種基于“框架+插件”的軍事仿真系統(tǒng)設(shè)計(jì)方法,給出仿真應(yīng)用集成框架的實(shí)現(xiàn)途徑和仿真插件的設(shè)計(jì)原則,基于框架和插件設(shè)計(jì)原則,展示兩型雷達(dá)模擬軟件的插件設(shè)計(jì)和運(yùn)行效果,證明該方法的切實(shí)可行。
集成框架;插件;仿真系統(tǒng);插件設(shè)計(jì)
劉筱(1979-),男,湖南人,本科,高級(jí)工程師,研究方向?yàn)檐娛码娮有畔⑾到y(tǒng)軟件集成技術(shù)
Modeling&Simulation(M&S)has been widely used in nearly all aspects of Military related fields.However,the low reusability and long development cycle of the models in military simulation system have become emerging problems.Discusses an approach of designing military simulation system based on Framework+Plug-in methodology to address the above problems.In addition,by using this approach to design the Plug-in for two types of Radar detection software,the improved operation effect has clearly demonstrated the applicability and practicability of the proposed Framework+Plug-in method.