石釗銘 劉傳波
(武漢市江夏區藏龍大道709號 武漢 430205)
現代戰爭作戰籌劃,是聯合作戰指揮機構依據戰略戰役意圖和敵情、我情、戰場環境等,對聯合作戰進行的運籌謀劃和計劃安排[1],能否科學高效組織聯合作戰籌劃,從而贏得指揮決策優勢,把指揮員意圖變成決心、決心變成計劃、計劃變成行動,直接決定著戰爭進程和結局。在當今以網絡中心化環境為作戰背景的條件下,交戰方作戰力量更加多元、作戰行動更加快捷、對抗更加激烈,對作戰籌劃的精度、深度、速度提出了更高要求[2]。在信息化技術的支撐下,對聯合作戰進行籌劃、優化和推演,不再僅僅憑構想和思維簡單推理,而是采用意圖統領,通過需求、問題驅動牽引,采用規范的工具和算法進行決斷推動等方式方法,實現作戰籌劃方向正確、能做到突出重點、統籌規劃全局,快速實施方案籌劃,提高籌劃的實施效益[3]。
信息時代,海量信息處理和運用矛盾日益突出,極大增加了指揮機構掌握與運用信息的難度,傳統作戰應用架構作戰籌劃系統采用固定架構,系統中軟件形態固化,無法解耦,敏捷性和靈活性受限。微服務架構以敏捷、精益、持續交付的便捷和靈活深入人心[4],為敏捷開發和部署提供了巨大的幫助,將微服務架構應用于作戰籌劃應用系統,能增強作戰籌劃系統自身的“韌性”,提高廣域資源快速自主協同調度能力,能夠規范和幫助指揮機構更好的展開工作。
微服務技術是傳統SOA(面向服務的架構)演化的結果[5],微服務相比傳統SOA服務,粒度更細、責任單一、功能更自治,大多采用輕量級網絡協議進行交互。結合輕量級虛擬化技術(Docker)可實現系統持續集成和快速部署,為迭代增量式的軍用系統快速演化、快速交付奠定技術基礎。采用微服務架構將單體應用模式的系統分解為一系列的服務,并為每一個服務定義良好的業務邊界和上下文環境,解決傳統軍用系統代碼龐雜、業務組件之間耦合程度高、業務模塊之間存在循環依賴、系統維護難度大、升級成本高等問題[6]。由于以上特性,在軍用系統中具有極好的應用前景。
微服務架構正向著“用容器技術解決部署問題”向“用平臺解決部署和治理問題”的解決方案方向發展。向微服務架構演進通常包括以下幾個階段:1)傳統的SOA服務化改造;2)開始引入某些微服務原則,進行針對性重構,如“一個任務一個服務”;3)引入整套完整的微服務原則;4)實現微服務的規模化、添加服務發現、服務縮放能力等增強特性。依據以上方法,在作戰籌劃任務微服務實現的過程中,我們采用Docker容器技術包裝微服務,對作戰籌劃任務劃分實現“一個基本任務一個服務”,采用Kubernetes作為服務部署管理的工具,同時以作戰籌劃系統管理平臺監控和維護各個微服務,實現微服務的規模化,發現監控等能力。
作戰籌劃系統采用微服務架構,總體架構包含三個部分,分別是資源微服務封裝、服務統一注冊與封裝、任務終端統一管控。使用流行的容器技術Docker,實現服務的一體化封裝;針對作戰籌劃任務服務接入問題,利用統一注冊中心處理,實現了不同節點服務的接入,對不同作戰籌劃任務的管理采用統一終端平臺統一管控,屏蔽不同終端的異構性。
資源微服務封裝,利用Docker技術對作戰籌劃任務進行微服務化,并將所有的微服務保存在服務資源庫中,使之成為一個可以按需提供資源的服務資源池,在服務資源池之上進行統一調度和管理,提供包括資源調度、存儲管理、鏡像管理等服務,同時還提供對外的API接口,供上層應用程序調用。
服務統一注冊與封裝,核心是Docker引擎,Docker引擎負責整個容器系統的控制和管理[7],向上支持基于容器的服務注冊、服務封裝、服務部署等功能,向下提供鏡像的管理、以及容器的創建、啟動和銷毀等服務。另外,為滿足多容器集群的管理需求,使用Kubernetes容器管理工具,實現容器的有效編排和部署[8]。
作戰籌劃統一終端平臺,面向各類的作戰籌劃任務,采用統一視圖、統一流程、統一監控,建立包括作戰籌劃流程管理、事務監控器和消息隊列等組件,提供指揮員對作戰籌劃任務中微服務的直接操作界面,簡化服務管理。
由于作戰籌劃任務涉及對海、對空、對潛等多個方面,其復雜性和多樣性使得微服務粒度剖分困難[9]。以作戰籌劃任務的流程為基礎分析,指揮員領受上級命令后,綜合分析戰場情況,下達作戰命令,各級軍官根據作戰命令擬定作戰技術,生成作戰方案后上報指揮員審批,繼續上報。按照流程的各個階段,采用資源離散劃分和模塊聚類技術對作戰籌劃任務中任務執行的具體目標、執行地點、控制資源的狀態等方面要素進行細分,確定作戰籌劃任務微服務實現類,即對作戰目標的分解得到籌劃任務實體。將作戰籌劃任務劃分為多類微服務,包括對空作戰籌劃任務微服務、對海作戰籌劃任務微服務、對潛作戰籌劃任務微服務、基礎任務微服務等。依靠Docker技術,實現各類作戰籌劃任務中具體任務和基本任務中的微服務。并將微服務實體存入服務庫中,在作戰籌劃任務執行流程過程中,選擇服務庫中的微服務搭建出作戰籌劃流程,在作戰籌劃流程執行的過程中,通過感知任務的執行情況,將作戰籌劃任務按設定的計劃執行,最終實現微服務的作戰籌劃應用系統。
微服務作戰籌劃應用系統中,微服務按類劃分有利于微服務的資源快速建立與復用。服務間的邊界清晰,交互信息明確,主要包括以下幾類微服務:
1)作戰任務計劃:實現作戰籌劃任務流程的基礎,無論是哪類作戰籌劃任務,都是以作戰任務計劃作為啟始服務;
2)籌劃資源判定:通過計劃開啟的籌劃任務,運用資源進行作戰籌劃,首先取得可用資源;
3)各類任務管理:是具體任務管理的入口;

圖1 作戰籌劃系統微服務劃分
4)各類武器作戰服務:負責管理當前任務我方參與的武器列表管理,對于不同類型的作戰籌劃,劃分不同的武器管理微服務;
5)各類傳感器作戰服務:負責管理當前任務我方參與的傳感器列表管理,對于不同類型的作戰籌劃,劃分不同的傳感器管理微服務;
6)作戰力量規劃服務:管理我方作戰力量列表和敵方作戰力量列表,針對可用資源建立合理的作戰規劃;
7)作戰資源調度方案生成:對于作戰計劃進行作戰籌劃的一系列規劃活動生成資源調度方案,提交服務;
8)作戰籌劃任務結果分析:采用科學的方法對作戰任務結果進行評估。
將作戰籌劃任務的微服務封裝在docker容器中,容器的啟動和關閉便捷迅速[9],各個微服務相對獨立,并可以分布運行于不同的節點[10]滿足籌劃任務需求。作戰籌劃任務管理流程業務微服務化之后的特點,體現在任務協同以及分布式事物處理兩個方面。微服務可以部署在同一節點但在實際運行時需要考慮籌劃任務的執行站位,通過建立典型作戰籌劃流程模型的過程來確定各項微服務在實際運行過程中部署的節點。采用微服務架構,在執行作戰籌劃應用之前,要在確定的節點上部署對應的微服務鏡像并運行。我們采用kubernetes作為docker微服務容器的管理工具。作戰籌劃相關微服務以鏡像的方式保存在數據庫中,運維人員只需要確定好部署節點的位置、部署節點上需要運行的Docker容器信息。在系統運行之前只需要部署鏡像并運行該微服務的容器即可。

圖2 作戰籌劃系統微服務流程分析
在指揮節點中部署作戰任務計劃的相關微服務,包括接受上級任務、編制初步決心、下達預研號令等;在綜合控制節點上部署各類任務管理的微服務,將收到的上級決心等信息發送給各個協同節點;各個協同節點收到上級指令后,啟動本節點上報信息微服務,將各個協同節點上的資源信息發送給綜合控制節點匯總;綜合控制節點上的作戰力量規劃服務將作出判斷;指揮節點作出作戰籌劃任務決定;由綜合控制節點和協同節點共同進行各類武器傳感器的作戰計劃;由綜合控制節點進行作戰資源調度方案生成服務,并上報。
在微服務的集成應用時,具體步驟如下:
步驟1:以Kubernetes控制的Pods作為基本操作單元,把相關的一個或多個容器構成一個Pod,Pod包含的容器運行在同一個主機節點上,看作一個統一管理單元。如:在綜合控制節點上的Pod管理容器中,提供指令下發服務、情報匯總服務、作戰力量規劃服務、作戰資源調度方案生成等。
步驟2:真實應用服務的抽象Services是由容器來支持并提供的,通過Proxy的port和服務selector決定服務請求傳遞給后端提供服務的容器,對外表現為一個單一訪問接口。
步驟3:確保任何時候集群中作戰籌劃任務各個微服務至少有Pod在運行,Replication Controller使用預先定義的Pod模板創建Pods,Kubernetes管理時可以查看節點中的Pod,以及Pod中所處理的微服務信息。
相對傳統部署方式,運維人員不再需要對各個不同節點不同環境中軟件的運行狀態、配置信息進行管理,各類軟件變更在測試完成后即可通過灰度部署等方式部署到生產環境,能提高戰場資源使用效率,能增強作戰籌劃系統自身的“韌性”[11],使得作戰籌劃應用系統運行效率大大提高。
微服務架構下,大部分功能模塊都是單獨部署、獨立行動的,彼此通過接口交互,都是無狀態的服務,但作戰籌劃業務會涉及多個服務,復雜度高。在實現作戰籌劃應用系統時,建立作戰籌劃管理平臺對微服務的運行進行監控和運維,作戰籌劃的容器集群管理平臺支持容器集群調度、編排,服務級的負載均衡[12],服務資源自動彈性伸縮,服務異常自恢復等功能,并根據任務感知分散在各個節點上微服務執行情況,協同各個微服務的執行。作戰籌劃管理平臺對微服務運行的監控和管理,包括以下幾個部分:
1)服務注冊中心:對實現的在容器中運行的微服務進行注冊,在作戰籌劃過程中能提供微服務注冊信息。
2)節點探針:采集各個節點容器中運行的微服務具體狀態匯報給作戰籌劃管控中心,及時掌握各個節點上微服務的運行狀態,確保服務的正常運行。
3)微服務可靠性管理:在作戰籌劃過程中,保證微服務在指定的時間和節點上,實現任務的正常調度。
4)作戰籌劃管控面板:以可視化的監控界面提供指揮員查看操控視圖,指揮員可以在管控面板中操控籌劃元素,進行籌劃任務的動態調整。

圖3 作戰籌劃系統微服務管理平臺組成
作戰籌劃具體實現如圖4所示,作戰籌劃控制面板提供作戰籌劃設計面板,面板中的籌劃元素即對應分類中的各個微服務,通過面板中對籌劃元素的操作,在展示界面中形成作戰籌劃任務的計劃。當作戰籌劃任務真正執行時,即調用在服務中心中注冊的各個籌劃元素對應的微服務,微服務執行過程由微服務可靠性管理保證微服務執行正確,各個容器中的探針程序能夠將微服務的執行情況匯報給作戰籌劃管控面板,通過籌劃任務監控界面對微服務的執行過程、狀態以及需要輸入的參數進行控制,由此完成微服務架構中的作戰籌劃應用系統。籌劃元素即對應的微服務是基于微服務作戰籌劃應用系統的操作基礎,由于微服務的獨立和敏捷,由此架構產生的作戰籌劃應用系統就能夠動態的獲取籌劃元素,籌劃任務可以根據微服務資源來動態生成,提供給用戶一種新的作戰籌劃可能。

圖4 作戰籌劃系統微服務管理平臺實現
作戰籌劃中,用科學的工具方法指導規范指揮機構展開工作,便于指揮機構在作戰籌劃時準確把握和預測戰場態勢,綜合謀劃力量運用、戰法設計及保障行動,明確作戰籌劃的工作重點、流程、路徑與時間節點。面向作戰籌劃任務的微服務架構技術研究,通過對應用進行細粒度的劃分,每一個微服務只專注于單一功能,同時,微服務之間邊界表述清晰,去除中心化,服務更替更靈活,對系統整體影響較小,降低了系統運維難度,大大提高了系統的靈活性、可靠性及抗壓能力。