常振林,王 暉,羅雪山
(1.國防科學技術大學 信息系統工程重點實驗室,湖南 長沙410073;2.第二炮兵裝備研究院,北京100085)
作戰計劃是指軍隊為達成作戰任務而制定的指導作戰準備、作戰行動的指揮文書[1]。作戰計劃作為軍事指揮控制領域的重要概念,具有不同的分類形式:根據作戰的規模和范圍,它可以分為戰略計劃、戰役計劃和戰斗計劃;按照內容不同,又可分為作戰準備行動計劃、兵力部署計劃、機動計劃、火力計劃、陣地交接計劃等。隨著科學技術特別是軍事裝備水平的發展,軍隊的編制體制不斷優化,武器效能不斷提高,而在軍事指揮控制層次,為了適應新的軍事需要,新的作戰理論不斷被提出,形成了千變萬化的作戰樣式。對于不同的作戰樣式,它們所包含的作戰流程也各不相同。因此,這就對作戰計劃軟件提出了兩方面的要求,一方面,在功能層面上,作戰計劃軟件不能只是面向某種固定的作戰樣式而設計,而應該具有更強的靈活性,能夠適應不同的作戰樣式和作戰流程。另一方面,在架構層面上,作戰計劃軟件要保證架構的松耦合性,當外部環境發生變化時,軟件要能動態響應,即在動態的環境下應用動態的系統。構件技術[2-4]能夠最大化軟件的可重用性,從而提高軟件開發效率。同時能夠增強軟件魯棒性,以及降低軟件維護成本。本文致力于解決作戰計劃軟件在設計與使用過程中出現的以上兩個方面的問題,并將面向構件的軟件開發思想引入到軍事領域,對作戰計劃軟件進行分析、設計以及實現。
構件的完整概念早在1996年的面向對象程序設計歐洲會議上由SzyPerski和Pfiste最先提出,即 “軟件構件是一種組裝單元,它具有規范的接口規約和顯示的語境依賴。軟件構件可以被獨立地部署,并可以由第三方進行合成”[5]。
在隨后的十幾年間,構件技術作為實現軟件復用的關鍵技術,被學術界和業界廣泛的研究和采用。構件包含多種分類,如文獻[6]所述,可以從開發過程、功能、重用顆粒度以及重用狀態等不同的側面對構件進行分類。在本文中,著重從功能的角度,在系統構件和支撐構件的基礎上,對具有軍事特色的領域構件進行研究。
軍事業務構件由表示、實現和配置軍事領域內的指定業務概念所需的全部的軟件產品構成。這一概念具有以下幾方面的含義:
(1)針對軍事領域:軍事業務構件是特定于軍事領域的,它遵循軍事信息系統的規范標準,實現領域的業務規則,并封裝為軍事領域特定的格式;
(2)實現業務概念:軍事業務構件是軍事業務概念在問題空間中的表示和實現。軍事業務構件在整個開發生命周期、體系結構視圖和各個層次中,充分實現粗粒度的業務概念的所有方面;
(3)包括所有軟件產品:軍事業務構件通過封裝軍事業務概念中所有軟件產品來表示和實現此概念,它包含各個層次和開發生命周期各階段的所有工作產品,而不僅僅是最終實現業務邏輯的軟件;
(4)表達自治的業務概念:軍事業務構件的定義強調“自治的”業務概念。軍事業務構件方法的一個重要目標就是將自治的業務概念實現成為信息系統中的自治軟件產品,盡量不因為技術或其它原因引入與其他非軍事業務構件的不必要的依賴和關系。
這類分布式的軍事業務構件是一種自包含的軟件結構,具有良好定義的運行時刻接口,可以自治地部署,并且運行于特定的插座之上。這里面有幾個關鍵說法需要說明:
(1)自包含的軟件結構:軍事業務構件的內容涵蓋整個生命周期中表示、實現、測試和部署軍事業務構件所需的所有可交付產品,包括軟件、數據和文檔等;
(2)運行時刻接口:軍事業務構件的運行時刻接口為其組成軟件單元運行時刻接口的集合。軍事業務構件不僅具有運行時刻接口,而且還具有可分布于不同計算機和地址控件的接口,以滿足分布式系統的要求;
(3)自治地部署:只要采用合適的交付機制,就可以將軍事業務構件作為單一功能單元,整體地部署成為一組可交付的軟件產品集合;
(4)特定的插座:插座作為基礎設施的隔離層,可以使事務、并發等技術細節對軍事業務構件開發者透明,同時為軍事業務構件提供良好的可移植性,這一插座被定義為軍事業務構件虛擬機 (military business component virtual machine,MBCVM)。
基于構件的軟件開發 (component based software development,CBD)以構件為核心,將構件的開發過程延伸到軟件工程的各個階段,包括獲取用戶需求的需求分析階段、面向領域的軟件設計及開發階段以及后期基于統一構件庫的軟件管理階段等,形成規范的軟件開發生命周期,使軟件的需求分析、設計、開發、管理等過程變的有序可控。
基于構件的作戰計劃軟件的開發方法[7]主要包括3個關鍵步驟,下文結合作戰計劃軟件分別對每個步驟展開論述。
1.3.1 業務流程分析
針對當前實際軍事行動的過程,歸納提出制定作戰計劃的業務流程。通過對制定作戰計劃的流程進行分析,明確流程中各步驟的工作內容,并結合現有的軟件系統,發現完成作戰計劃流程所需要的構件。
1.3.2 體系結構設計
首先,從作戰計劃軟件在指揮系統中的集成方式出發,以設計軟件的外部接口為核心,實現軟件與指揮系統的信息交換。其次,基于以上業務流程分析的結果,對發現的軟件需求和構件進行進一步的梳理、分類和整理,結合適應作戰樣式多樣性和軟件結構靈活性的需求,對體系結構進行概要設計;最后,對軟件體系結構的結構、層次、接口進行詳細設計,為實現構件和軟件的部署測試奠定堅實的基礎。
1.3.3 構件實現與軟件部署
在此階段中需要對作戰計劃軟件進行功能實現,并按照軍事業務構件封裝規范封裝為軍事業務構件。在得到軍事業務構件后,需要進一步把他們組裝成一個完整的應用系統。通過使用作戰計劃軟件集成運行框架,將軟件的全部構件集成在一起。最終將各個軟件分布式地部署在合適的基礎設施和平臺上。
通過對制定作戰計劃的業務流程進行分析,明確制定作戰計劃的階段劃分及各階段的任務,從而明確作戰計劃軟件的需求,建立領域模型,發現滿足業務需要的構件。對制定作戰計劃業務流程的分析如圖1所示。

圖1 作戰計劃的業務流程分析
對制定作戰計劃的業務流程[8,9]進行分析,主要包括受領作戰任務,領會上級意圖、搜集相關資料,分析預測戰場形勢、擬制作戰計劃,形成作戰方案、評估優選方案,選定作戰計劃、計劃呈報審批以及下達作戰命令幾個流程。其中搜集相關資料,分析預測戰場形勢環節又可細分為資料檢索工具、計算分析工具、地理信息系統以及態勢顯示等,而與計劃呈報和下達作戰命令相關的基礎支撐包括文書服務與文電處理系統。通過明確作戰計劃制定的需求,發現作戰計劃軟件需要的構件[10,11]包括:時統服務構件、態勢交互構件、方案/計劃管理構件、計劃擬制構件、計劃推演評估構件、文書流轉交互構件、文電交互構件等。
在根據作戰計劃需求發現的以上構件中,時統服務構件負責完成作戰計劃軟件客戶端與整個指揮系統的時間校準,確保時間上的統一;態勢交互構件用來調用態勢軟件顯示當前戰場形勢,并將收集到的情報進行展示;方案/計劃管理構件用來管理與作戰計劃相關的方案和計劃;計劃擬制構件按照計劃類型可分為若干子構件,分別負責完成不同類型的計劃的擬制;計劃推演評估構件用來對擬制完成的計劃進行仿真推演,通過評估計劃方案選擇最優作戰實施方案;文書流轉交互構件和文電交互構件分別采用內部文書和外部文電的方式完成計劃呈報審批和作戰命令的下達。
以上對制定作戰計劃的流程進行了分析,發現了滿足作戰計劃業務流程所需的構件,但是要支持多樣的作戰樣式,還需要支持構件動態變化的體系結構。本文對于作戰計劃軟件的體系結構設計是滿足分層次的、支持功能重組的、方便系統集成的軟件結構。主要由用戶界面層、應用服務層、構件層、基礎服務層4部分組成,如圖2所示。

圖2 作戰計劃軟件體系結構
(1)用戶界面層主要通過界面構架完成與用戶的交互,如用戶登錄、登出等行為,而且在用戶登錄的過程中,需要與基礎數據層進行交互,以完成用戶認證等功能。同時軟件運行框架通過接口將各個軍事業務構件集成起來,配合界面構件實現作戰計劃的業務流程。
(2)應用服務層是系統實現構件動態變化的核心部分,主要包括功能重組管理、業務流程管理、構件更新管理。其中功能重組管理部分是根據不同作戰樣式的需要來調用構件層細分的功能進行動態的功能重新組合;業務流程管理部分通過控制功能構件的順序實現對制定作戰計劃的業務流程的控制;構件更新管理部分負責對構件倉庫進行維護,完成對構件的管理和更新,使軟件便于升級和維護。
(3)構件層是系統構件動態變化的基礎,主要由界面構件、業務構件及通用構件組成。其中,界面構件包括登錄界面、功能管理界面、流程管理界面、方案/計劃管理界面、計劃擬制界面、仿真推演界面等所有與用戶交互的界面。業務構件包括以上分析的所有與軍事業務相關的構件。通用構件主要有ADO數據庫訪問構件等。
(4)基礎數據層主要由數據庫和作戰樣式庫組成。作戰樣式庫主要描述不同作戰樣式對應的功能、業務流程,按照該描述組織構件,即可實現對該種作戰樣式的支持。
基于構件的作戰計劃軟件已經在軍事指揮控制領域得到了初步的驗證以及廣泛的應用,其中最為典型的應用模式如圖3所示。

圖3 典型應用模式
(1)軟件開發階段
1)計劃框架開發人員發布以下內容:計劃信息描述規范、計劃插件集成規范、接口使用說明文檔以及計劃模板制作工具等;
2)對于計劃插件集成開發模式。計劃插件開發人員基于集成框架,使用計劃框架集成接口并參考計劃框架集成規范進行計劃插件的開發;
3)對于計劃軟件集成開發模式。計劃軟件開發人員使用計劃代理接口和計劃接口使用說明文檔開發專用計劃軟件。
(2)構件封裝階段
軟件封裝工具,作為一種支撐構件,基于統一的軟件封裝描述為各軟件開發人員提供將軟件封裝為構件的能力,因此,在構件封裝階段,各個計劃軟件封裝為獨立的構件[12],計劃插件人員根據計劃框架封裝規范將計劃模板等計劃框架所需的文件和計劃插件共同封裝為一個構件。
(3)系統組裝階段
系統封裝工具,作為另一種支撐構件,對封裝階段形成的構件進行按需的組裝。具體實施過程中,系統設計人員根據需求提交計劃框架集成構件,由計劃框架集成構件依賴計劃擬制需要用到的所有計劃插件構件以及計劃管理構件,將所有這些涉及到的構件組裝成一個能夠完成作戰計劃擬制功能的軟件系統。
(4)運行部署階段
基于構件的系統支持以分布式的方式進行部署、運行,各個構件是相互獨立的軟件單元,它們之間通過集成計劃框架以及其他支撐構件建立聯系。在作戰計劃軟件的運行部署階段主要包括以下3個方面:
1)集成計劃框架集成構件作為計劃擬制菜單項加入部署包,主要在用戶終端進行部署;
2)計劃軟件構件作為功能計劃菜單項加入部署包,同樣主要安裝在用戶終端;
3)對于其他的支撐類構件,或者以服務的形式部署在服務端,為計劃軟件提供后臺服務支持,或者以插件的形式部署在用戶終端,為計劃軟件提供輔助能力支持。
(5)維護管理階段
在基于構件的軟件系統中,存在著構件倉庫的概念,負責對構件進行統一的入庫、出庫等操作,形成標準的構件管理機制,在構件庫中,既包括與作戰計劃業務相關的計劃集成構件、計劃軟件構件、計劃管理構件以及計劃插件構件等,也包括了其他的系統構件和支撐構件。
本文整體上采用面向構件的思想對作戰計劃軟件進行架構與設計,分析并制定作戰計劃業務流程,在此基礎上利用構件技術對作戰計劃軟件的體系結構進行設計。對于作戰計劃軟件的分層結構,在應用服務層加入了功能重組管理和業務流程管理,用于解決作戰計劃軟件無法靈活適應多種作戰樣式的問題,同時引入構件更新管理,使系統更易維護、擴展和升級。本文對基于構件的作戰計劃軟件進行深入的研究,對開發面向多種作戰樣式的各類軍事業務軟件具有一定的理論價值及實踐意義。
[1]LIU Zhong,ZHANG Weiming,YANG Dongsheng,et al.Operational plan system technology[M].Beijing:National Defense Industry Press,2007(in Chinese).[劉忠,張維明,陽東升,等.作戰計劃系統技術[M].北京:國防工業出版社,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).[傅音翔,王直杰,張玨.一種基于構件的軟件開發方法[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).[高長元,祁凱.基于構件的可重構生產計劃管理系 統[J]. 哈 爾 濱 理 工 大 學 學 報,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).[常聚川,張敏,陳菲.基于構件的煤礦安全監察管理信息系統設計與實現[J].軟件導刊,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.構件化軟件-超越面向對象編程[M].王千祥,譯.北京:電子工業出版社,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).軟件構件技術在 MIS開發中的應用[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).[郜越,汪敏,閆晶晶.面向服務的作戰計劃生成[J].指揮信息系統與技術,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).[管井標,劉麗群,江敬灼.一種基于知識的作戰計劃系統設計[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).[劉祖煌,程啟月.基于關鍵行動點的作戰計劃動態評估[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).[楊芙清,梅宏,黃罡,等.構件化軟件設計與實現[M].北京:清華大學出版社,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).[王忠杰,戰德臣,徐曉飛.業務構件識別方法研究綜述[J].計算機集成制造系統,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).[熊波,許力,陳榕,等.構件的自描述封裝機運行方法[J].江西理工大學學報,2007,28(1):32-35.]