常振林,王 暉,羅雪山
(1.國防科學(xué)技術(shù)大學(xué) 信息系統(tǒng)工程重點實驗室,湖南 長沙410073;2.第二炮兵裝備研究院,北京100085)
作戰(zhàn)計劃是指軍隊為達成作戰(zhàn)任務(wù)而制定的指導(dǎo)作戰(zhàn)準備、作戰(zhàn)行動的指揮文書[1]。作戰(zhàn)計劃作為軍事指揮控制領(lǐng)域的重要概念,具有不同的分類形式:根據(jù)作戰(zhàn)的規(guī)模和范圍,它可以分為戰(zhàn)略計劃、戰(zhàn)役計劃和戰(zhàn)斗計劃;按照內(nèi)容不同,又可分為作戰(zhàn)準備行動計劃、兵力部署計劃、機動計劃、火力計劃、陣地交接計劃等。隨著科學(xué)技術(shù)特別是軍事裝備水平的發(fā)展,軍隊的編制體制不斷優(yōu)化,武器效能不斷提高,而在軍事指揮控制層次,為了適應(yīng)新的軍事需要,新的作戰(zhàn)理論不斷被提出,形成了千變?nèi)f化的作戰(zhàn)樣式。對于不同的作戰(zhàn)樣式,它們所包含的作戰(zhàn)流程也各不相同。因此,這就對作戰(zhàn)計劃軟件提出了兩方面的要求,一方面,在功能層面上,作戰(zhàn)計劃軟件不能只是面向某種固定的作戰(zhàn)樣式而設(shè)計,而應(yīng)該具有更強的靈活性,能夠適應(yīng)不同的作戰(zhàn)樣式和作戰(zhàn)流程。另一方面,在架構(gòu)層面上,作戰(zhàn)計劃軟件要保證架構(gòu)的松耦合性,當(dāng)外部環(huán)境發(fā)生變化時,軟件要能動態(tài)響應(yīng),即在動態(tài)的環(huán)境下應(yīng)用動態(tài)的系統(tǒng)。構(gòu)件技術(shù)[2-4]能夠最大化軟件的可重用性,從而提高軟件開發(fā)效率。同時能夠增強軟件魯棒性,以及降低軟件維護成本。本文致力于解決作戰(zhàn)計劃軟件在設(shè)計與使用過程中出現(xiàn)的以上兩個方面的問題,并將面向構(gòu)件的軟件開發(fā)思想引入到軍事領(lǐng)域,對作戰(zhàn)計劃軟件進行分析、設(shè)計以及實現(xiàn)。
構(gòu)件的完整概念早在1996年的面向?qū)ο蟪绦蛟O(shè)計歐洲會議上由SzyPerski和Pfiste最先提出,即 “軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口規(guī)約和顯示的語境依賴。軟件構(gòu)件可以被獨立地部署,并可以由第三方進行合成”[5]。
在隨后的十幾年間,構(gòu)件技術(shù)作為實現(xiàn)軟件復(fù)用的關(guān)鍵技術(shù),被學(xué)術(shù)界和業(yè)界廣泛的研究和采用。構(gòu)件包含多種分類,如文獻[6]所述,可以從開發(fā)過程、功能、重用顆粒度以及重用狀態(tài)等不同的側(cè)面對構(gòu)件進行分類。在本文中,著重從功能的角度,在系統(tǒng)構(gòu)件和支撐構(gòu)件的基礎(chǔ)上,對具有軍事特色的領(lǐng)域構(gòu)件進行研究。
軍事業(yè)務(wù)構(gòu)件由表示、實現(xiàn)和配置軍事領(lǐng)域內(nèi)的指定業(yè)務(wù)概念所需的全部的軟件產(chǎn)品構(gòu)成。這一概念具有以下幾方面的含義:
(1)針對軍事領(lǐng)域:軍事業(yè)務(wù)構(gòu)件是特定于軍事領(lǐng)域的,它遵循軍事信息系統(tǒng)的規(guī)范標準,實現(xiàn)領(lǐng)域的業(yè)務(wù)規(guī)則,并封裝為軍事領(lǐng)域特定的格式;
(2)實現(xiàn)業(yè)務(wù)概念:軍事業(yè)務(wù)構(gòu)件是軍事業(yè)務(wù)概念在問題空間中的表示和實現(xiàn)。軍事業(yè)務(wù)構(gòu)件在整個開發(fā)生命周期、體系結(jié)構(gòu)視圖和各個層次中,充分實現(xiàn)粗粒度的業(yè)務(wù)概念的所有方面;
(3)包括所有軟件產(chǎn)品:軍事業(yè)務(wù)構(gòu)件通過封裝軍事業(yè)務(wù)概念中所有軟件產(chǎn)品來表示和實現(xiàn)此概念,它包含各個層次和開發(fā)生命周期各階段的所有工作產(chǎn)品,而不僅僅是最終實現(xiàn)業(yè)務(wù)邏輯的軟件;
(4)表達自治的業(yè)務(wù)概念:軍事業(yè)務(wù)構(gòu)件的定義強調(diào)“自治的”業(yè)務(wù)概念。軍事業(yè)務(wù)構(gòu)件方法的一個重要目標就是將自治的業(yè)務(wù)概念實現(xiàn)成為信息系統(tǒng)中的自治軟件產(chǎn)品,盡量不因為技術(shù)或其它原因引入與其他非軍事業(yè)務(wù)構(gòu)件的不必要的依賴和關(guān)系。
這類分布式的軍事業(yè)務(wù)構(gòu)件是一種自包含的軟件結(jié)構(gòu),具有良好定義的運行時刻接口,可以自治地部署,并且運行于特定的插座之上。這里面有幾個關(guān)鍵說法需要說明:
(1)自包含的軟件結(jié)構(gòu):軍事業(yè)務(wù)構(gòu)件的內(nèi)容涵蓋整個生命周期中表示、實現(xiàn)、測試和部署軍事業(yè)務(wù)構(gòu)件所需的所有可交付產(chǎn)品,包括軟件、數(shù)據(jù)和文檔等;
(2)運行時刻接口:軍事業(yè)務(wù)構(gòu)件的運行時刻接口為其組成軟件單元運行時刻接口的集合。軍事業(yè)務(wù)構(gòu)件不僅具有運行時刻接口,而且還具有可分布于不同計算機和地址控件的接口,以滿足分布式系統(tǒng)的要求;
(3)自治地部署:只要采用合適的交付機制,就可以將軍事業(yè)務(wù)構(gòu)件作為單一功能單元,整體地部署成為一組可交付的軟件產(chǎn)品集合;
(4)特定的插座:插座作為基礎(chǔ)設(shè)施的隔離層,可以使事務(wù)、并發(fā)等技術(shù)細節(jié)對軍事業(yè)務(wù)構(gòu)件開發(fā)者透明,同時為軍事業(yè)務(wù)構(gòu)件提供良好的可移植性,這一插座被定義為軍事業(yè)務(wù)構(gòu)件虛擬機 (military business component virtual machine,MBCVM)。
基于構(gòu)件的軟件開發(fā) (component based software development,CBD)以構(gòu)件為核心,將構(gòu)件的開發(fā)過程延伸到軟件工程的各個階段,包括獲取用戶需求的需求分析階段、面向領(lǐng)域的軟件設(shè)計及開發(fā)階段以及后期基于統(tǒng)一構(gòu)件庫的軟件管理階段等,形成規(guī)范的軟件開發(fā)生命周期,使軟件的需求分析、設(shè)計、開發(fā)、管理等過程變的有序可控。
基于構(gòu)件的作戰(zhàn)計劃軟件的開發(fā)方法[7]主要包括3個關(guān)鍵步驟,下文結(jié)合作戰(zhàn)計劃軟件分別對每個步驟展開論述。
1.3.1 業(yè)務(wù)流程分析
針對當(dāng)前實際軍事行動的過程,歸納提出制定作戰(zhàn)計劃的業(yè)務(wù)流程。通過對制定作戰(zhàn)計劃的流程進行分析,明確流程中各步驟的工作內(nèi)容,并結(jié)合現(xiàn)有的軟件系統(tǒng),發(fā)現(xiàn)完成作戰(zhàn)計劃流程所需要的構(gòu)件。
1.3.2 體系結(jié)構(gòu)設(shè)計
首先,從作戰(zhàn)計劃軟件在指揮系統(tǒng)中的集成方式出發(fā),以設(shè)計軟件的外部接口為核心,實現(xiàn)軟件與指揮系統(tǒng)的信息交換。其次,基于以上業(yè)務(wù)流程分析的結(jié)果,對發(fā)現(xiàn)的軟件需求和構(gòu)件進行進一步的梳理、分類和整理,結(jié)合適應(yīng)作戰(zhàn)樣式多樣性和軟件結(jié)構(gòu)靈活性的需求,對體系結(jié)構(gòu)進行概要設(shè)計;最后,對軟件體系結(jié)構(gòu)的結(jié)構(gòu)、層次、接口進行詳細設(shè)計,為實現(xiàn)構(gòu)件和軟件的部署測試奠定堅實的基礎(chǔ)。
1.3.3 構(gòu)件實現(xiàn)與軟件部署
在此階段中需要對作戰(zhàn)計劃軟件進行功能實現(xiàn),并按照軍事業(yè)務(wù)構(gòu)件封裝規(guī)范封裝為軍事業(yè)務(wù)構(gòu)件。在得到軍事業(yè)務(wù)構(gòu)件后,需要進一步把他們組裝成一個完整的應(yīng)用系統(tǒng)。通過使用作戰(zhàn)計劃軟件集成運行框架,將軟件的全部構(gòu)件集成在一起。最終將各個軟件分布式地部署在合適的基礎(chǔ)設(shè)施和平臺上。
通過對制定作戰(zhàn)計劃的業(yè)務(wù)流程進行分析,明確制定作戰(zhàn)計劃的階段劃分及各階段的任務(wù),從而明確作戰(zhàn)計劃軟件的需求,建立領(lǐng)域模型,發(fā)現(xiàn)滿足業(yè)務(wù)需要的構(gòu)件。對制定作戰(zhàn)計劃業(yè)務(wù)流程的分析如圖1所示。
圖1 作戰(zhàn)計劃的業(yè)務(wù)流程分析
對制定作戰(zhàn)計劃的業(yè)務(wù)流程[8,9]進行分析,主要包括受領(lǐng)作戰(zhàn)任務(wù),領(lǐng)會上級意圖、搜集相關(guān)資料,分析預(yù)測戰(zhàn)場形勢、擬制作戰(zhàn)計劃,形成作戰(zhàn)方案、評估優(yōu)選方案,選定作戰(zhàn)計劃、計劃呈報審批以及下達作戰(zhàn)命令幾個流程。其中搜集相關(guān)資料,分析預(yù)測戰(zhàn)場形勢環(huán)節(jié)又可細分為資料檢索工具、計算分析工具、地理信息系統(tǒng)以及態(tài)勢顯示等,而與計劃呈報和下達作戰(zhàn)命令相關(guān)的基礎(chǔ)支撐包括文書服務(wù)與文電處理系統(tǒng)。通過明確作戰(zhàn)計劃制定的需求,發(fā)現(xiàn)作戰(zhàn)計劃軟件需要的構(gòu)件[10,11]包括:時統(tǒng)服務(wù)構(gòu)件、態(tài)勢交互構(gòu)件、方案/計劃管理構(gòu)件、計劃擬制構(gòu)件、計劃推演評估構(gòu)件、文書流轉(zhuǎn)交互構(gòu)件、文電交互構(gòu)件等。
在根據(jù)作戰(zhàn)計劃需求發(fā)現(xiàn)的以上構(gòu)件中,時統(tǒng)服務(wù)構(gòu)件負責(zé)完成作戰(zhàn)計劃軟件客戶端與整個指揮系統(tǒng)的時間校準,確保時間上的統(tǒng)一;態(tài)勢交互構(gòu)件用來調(diào)用態(tài)勢軟件顯示當(dāng)前戰(zhàn)場形勢,并將收集到的情報進行展示;方案/計劃管理構(gòu)件用來管理與作戰(zhàn)計劃相關(guān)的方案和計劃;計劃擬制構(gòu)件按照計劃類型可分為若干子構(gòu)件,分別負責(zé)完成不同類型的計劃的擬制;計劃推演評估構(gòu)件用來對擬制完成的計劃進行仿真推演,通過評估計劃方案選擇最優(yōu)作戰(zhàn)實施方案;文書流轉(zhuǎn)交互構(gòu)件和文電交互構(gòu)件分別采用內(nèi)部文書和外部文電的方式完成計劃呈報審批和作戰(zhàn)命令的下達。
以上對制定作戰(zhàn)計劃的流程進行了分析,發(fā)現(xiàn)了滿足作戰(zhàn)計劃業(yè)務(wù)流程所需的構(gòu)件,但是要支持多樣的作戰(zhàn)樣式,還需要支持構(gòu)件動態(tài)變化的體系結(jié)構(gòu)。本文對于作戰(zhàn)計劃軟件的體系結(jié)構(gòu)設(shè)計是滿足分層次的、支持功能重組的、方便系統(tǒng)集成的軟件結(jié)構(gòu)。主要由用戶界面層、應(yīng)用服務(wù)層、構(gòu)件層、基礎(chǔ)服務(wù)層4部分組成,如圖2所示。
圖2 作戰(zhàn)計劃軟件體系結(jié)構(gòu)
(1)用戶界面層主要通過界面構(gòu)架完成與用戶的交互,如用戶登錄、登出等行為,而且在用戶登錄的過程中,需要與基礎(chǔ)數(shù)據(jù)層進行交互,以完成用戶認證等功能。同時軟件運行框架通過接口將各個軍事業(yè)務(wù)構(gòu)件集成起來,配合界面構(gòu)件實現(xiàn)作戰(zhàn)計劃的業(yè)務(wù)流程。
(2)應(yīng)用服務(wù)層是系統(tǒng)實現(xiàn)構(gòu)件動態(tài)變化的核心部分,主要包括功能重組管理、業(yè)務(wù)流程管理、構(gòu)件更新管理。其中功能重組管理部分是根據(jù)不同作戰(zhàn)樣式的需要來調(diào)用構(gòu)件層細分的功能進行動態(tài)的功能重新組合;業(yè)務(wù)流程管理部分通過控制功能構(gòu)件的順序?qū)崿F(xiàn)對制定作戰(zhàn)計劃的業(yè)務(wù)流程的控制;構(gòu)件更新管理部分負責(zé)對構(gòu)件倉庫進行維護,完成對構(gòu)件的管理和更新,使軟件便于升級和維護。
(3)構(gòu)件層是系統(tǒng)構(gòu)件動態(tài)變化的基礎(chǔ),主要由界面構(gòu)件、業(yè)務(wù)構(gòu)件及通用構(gòu)件組成。其中,界面構(gòu)件包括登錄界面、功能管理界面、流程管理界面、方案/計劃管理界面、計劃擬制界面、仿真推演界面等所有與用戶交互的界面。業(yè)務(wù)構(gòu)件包括以上分析的所有與軍事業(yè)務(wù)相關(guān)的構(gòu)件。通用構(gòu)件主要有ADO數(shù)據(jù)庫訪問構(gòu)件等。
(4)基礎(chǔ)數(shù)據(jù)層主要由數(shù)據(jù)庫和作戰(zhàn)樣式庫組成。作戰(zhàn)樣式庫主要描述不同作戰(zhàn)樣式對應(yīng)的功能、業(yè)務(wù)流程,按照該描述組織構(gòu)件,即可實現(xiàn)對該種作戰(zhàn)樣式的支持。
基于構(gòu)件的作戰(zhàn)計劃軟件已經(jīng)在軍事指揮控制領(lǐng)域得到了初步的驗證以及廣泛的應(yīng)用,其中最為典型的應(yīng)用模式如圖3所示。
圖3 典型應(yīng)用模式
(1)軟件開發(fā)階段
1)計劃框架開發(fā)人員發(fā)布以下內(nèi)容:計劃信息描述規(guī)范、計劃插件集成規(guī)范、接口使用說明文檔以及計劃模板制作工具等;
2)對于計劃插件集成開發(fā)模式。計劃插件開發(fā)人員基于集成框架,使用計劃框架集成接口并參考計劃框架集成規(guī)范進行計劃插件的開發(fā);
3)對于計劃軟件集成開發(fā)模式。計劃軟件開發(fā)人員使用計劃代理接口和計劃接口使用說明文檔開發(fā)專用計劃軟件。
(2)構(gòu)件封裝階段
軟件封裝工具,作為一種支撐構(gòu)件,基于統(tǒng)一的軟件封裝描述為各軟件開發(fā)人員提供將軟件封裝為構(gòu)件的能力,因此,在構(gòu)件封裝階段,各個計劃軟件封裝為獨立的構(gòu)件[12],計劃插件人員根據(jù)計劃框架封裝規(guī)范將計劃模板等計劃框架所需的文件和計劃插件共同封裝為一個構(gòu)件。
(3)系統(tǒng)組裝階段
系統(tǒng)封裝工具,作為另一種支撐構(gòu)件,對封裝階段形成的構(gòu)件進行按需的組裝。具體實施過程中,系統(tǒng)設(shè)計人員根據(jù)需求提交計劃框架集成構(gòu)件,由計劃框架集成構(gòu)件依賴計劃擬制需要用到的所有計劃插件構(gòu)件以及計劃管理構(gòu)件,將所有這些涉及到的構(gòu)件組裝成一個能夠完成作戰(zhàn)計劃擬制功能的軟件系統(tǒng)。
(4)運行部署階段
基于構(gòu)件的系統(tǒng)支持以分布式的方式進行部署、運行,各個構(gòu)件是相互獨立的軟件單元,它們之間通過集成計劃框架以及其他支撐構(gòu)件建立聯(lián)系。在作戰(zhàn)計劃軟件的運行部署階段主要包括以下3個方面:
1)集成計劃框架集成構(gòu)件作為計劃擬制菜單項加入部署包,主要在用戶終端進行部署;
2)計劃軟件構(gòu)件作為功能計劃菜單項加入部署包,同樣主要安裝在用戶終端;
3)對于其他的支撐類構(gòu)件,或者以服務(wù)的形式部署在服務(wù)端,為計劃軟件提供后臺服務(wù)支持,或者以插件的形式部署在用戶終端,為計劃軟件提供輔助能力支持。
(5)維護管理階段
在基于構(gòu)件的軟件系統(tǒng)中,存在著構(gòu)件倉庫的概念,負責(zé)對構(gòu)件進行統(tǒng)一的入庫、出庫等操作,形成標準的構(gòu)件管理機制,在構(gòu)件庫中,既包括與作戰(zhàn)計劃業(yè)務(wù)相關(guān)的計劃集成構(gòu)件、計劃軟件構(gòu)件、計劃管理構(gòu)件以及計劃插件構(gòu)件等,也包括了其他的系統(tǒng)構(gòu)件和支撐構(gòu)件。
本文整體上采用面向構(gòu)件的思想對作戰(zhàn)計劃軟件進行架構(gòu)與設(shè)計,分析并制定作戰(zhàn)計劃業(yè)務(wù)流程,在此基礎(chǔ)上利用構(gòu)件技術(shù)對作戰(zhàn)計劃軟件的體系結(jié)構(gòu)進行設(shè)計。對于作戰(zhàn)計劃軟件的分層結(jié)構(gòu),在應(yīng)用服務(wù)層加入了功能重組管理和業(yè)務(wù)流程管理,用于解決作戰(zhàn)計劃軟件無法靈活適應(yīng)多種作戰(zhàn)樣式的問題,同時引入構(gòu)件更新管理,使系統(tǒng)更易維護、擴展和升級。本文對基于構(gòu)件的作戰(zhàn)計劃軟件進行深入的研究,對開發(fā)面向多種作戰(zhàn)樣式的各類軍事業(yè)務(wù)軟件具有一定的理論價值及實踐意義。
[1]LIU Zhong,ZHANG Weiming,YANG Dongsheng,et al.Operational plan system technology[M].Beijing:National Defense Industry Press,2007(in Chinese).[劉忠,張維明,陽東升,等.作戰(zhàn)計劃系統(tǒng)技術(shù)[M].北京:國防工業(yè)出版社,2007.]
[2]FU Yinxiang,WANG Zhijie,ZHANG Jue.A method of software development based on component[J].Microcomputer Information,2006,22 (1-3):228-230 (in Chinese).[傅音翔,王直杰,張玨.一種基于構(gòu)件的軟件開發(fā)方法[J].微計算機信息 (管控一體化),2006,22 (1-3):228-230.]
[3]GAO Changyuan,QI Kai.Reconfigurable production planning management system based on component technique[J].Journal Harbin Univ SCI & TECH,2007,12 (5):77-80 (in Chinese).[高長元,祁凱.基于構(gòu)件的可重構(gòu)生產(chǎn)計劃管理系 統(tǒng)[J]. 哈 爾 濱 理 工 大 學(xué) 學(xué) 報,2007,12 (5):77-80.]
[4]CHANG Juchuan,ZHANG Min,CHEN Fei.Design and implementation of information system of coal mine safety supervision management based on component[J].Software Guide,2012,11 (12):87-89 (in Chinese).[常聚川,張敏,陳菲.基于構(gòu)件的煤礦安全監(jiān)察管理信息系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2012,11 (12):87-89.]
[5]Clemens SzyPerski.Component software:Beyond object-oriented programming[M].WANG Qianxiang,transl.Beijing:Addison-Wesley Professional,2004 (in Chinese).[Clemens SzyPerski.構(gòu)件化軟件-超越面向?qū)ο缶幊蘙M].王千祥,譯.北京:電子工業(yè)出版社,2004.]
[6]Application of software component technology in MIS development[EB/OL].[2003-03-05].http://se.csai.cn/New-Tech/No029.htm (in Chinese).軟件構(gòu)件技術(shù)在 MIS開發(fā)中的應(yīng)用[EB/OL].[2003-03-05].http://se.csai.cn/NewTech/No029.htm.]
[7]GAO Yue,WANG Min,YAN Jingjing.Design and implementation of service-oriented operational planning[J].Command Information System and Technology,2011,2 (6):10-14 (in Chinese).[郜越,汪敏,閆晶晶.面向服務(wù)的作戰(zhàn)計劃生成[J].指揮信息系統(tǒng)與技術(shù),2011,2 (6):10-14.]
[8]GUAN Jingbiao,LIU Liqun,JIANG Jingzhuo.A desian of knowledge-based military planning system[J].Command Control and Simulation,2008,30 (1):81-85 (in Chinese).[管井標,劉麗群,江敬灼.一種基于知識的作戰(zhàn)計劃系統(tǒng)設(shè)計[J].指揮控制與仿真,2008,30 (1):81-85.]
[9]LIU Zuhuang,CHENG Qiyue.Dynamic evaluation of operation planning based on key operational point[J].Fire Control &Command Control,2011,36 (12):5-7 (in Chinese).[劉祖煌,程啟月.基于關(guān)鍵行動點的作戰(zhàn)計劃動態(tài)評估[J].火力與指揮控制,2011,36 (12):5-7.]
[10]YANG Fuqing,MEI Hong,HUANG Gang,et al.Design and implementation of component-based software[M].Beijing:Tsinghua University Press,2008 (in Chinese).[楊芙清,梅宏,黃罡,等.構(gòu)件化軟件設(shè)計與實現(xiàn)[M].北京:清華大學(xué)出版社,2008.]
[11]WANG Zhongjie,ZHAN Dechen,XU Xiaofei.Overview on business component identification approach[J].Computer Integrated Manufacturing Systems,2007,13 (4):797-805 (in Chinese).[王忠杰,戰(zhàn)德臣,徐曉飛.業(yè)務(wù)構(gòu)件識別方法研究綜述[J].計算機集成制造系統(tǒng),2007,13 (4):797-805.]
[12]XIONG Bo,XU Li,CHEN Rong,et al.Components’self-description package method and operation method[J].Journal of Jiangxi University of Science and Technology,2007,28(1):32-35 (in Chinese).[熊波,許力,陳榕,等.構(gòu)件的自描述封裝機運行方法[J].江西理工大學(xué)學(xué)報,2007,28(1):32-35.]