鄧雅文,朱可卿,韓中生,樊子德,王磊,耿瑩,李肖赫*
(1.中國科學院空天信息創新研究院,北京 100094; 2.北京跟蹤與通信技術研究所,北京 100048)
真實-虛擬-構造(live-virtual-constructive,LVC)仿真技術是在虛實結合的訓練條件下,開展復雜環境體系試驗的有效探索[1]。LVC仿真技術的提出為實現各種訓練要素耦合、構建數字化的模擬訓練仿真體系帶來新的思路。
因LVC在訓練領域的獨特優勢,國內外開展了一系列的研究。美國率先啟動并發展了一系列的仿真協議和標準,包括仿真網絡(simulation networking,SIMNET)、數字系統(digital information system,DIS)、高層體系結構(high level architecture,HLA)、試驗與訓練使能體系結構(test and training enabling architecture,TENA)等[2]。前兩種仿真協議都只包含構造仿真或者虛擬仿真兩種類型,真正能涵蓋LVC技術,具有平臺級和聚合級建模的是HLA[3]和TENA[4]架構。LVC體系試驗存在大量交互復雜的仿真資源對象,難點是需要對模擬器、仿真模型等異構資源進行統一架構下的封裝,解決異構資源的互連、互通、互操作問題[5-8]。中間件作為能提供實時服務、適用不同的底層通信機制的關鍵技術,得到廣泛重視[9-13]。目前,中國訓練領域也在積極探索基于LVC的中間件架構[14]。西北工業大學提出了針對虛擬試驗系統運行方式的分布式中間件;國防科技大學提出了針對聯合仿真試驗的“中間件+代理”的一體化方案。
受限于分布式的訓練環境,仿真中間件面臨著資源協調難、管理調度難、跨網跨域難等諸多問題,難以滿足虛實聯動的訓練體系快速響應的試驗任務需求。
現通過分析基于LVC的模擬訓練分布式仿真中間件架構實現與運用中需要解決的可靠性問題,以高層體系結構HLA為基礎開發分布式聯合訓練仿真中間件,通過內部的仿真引擎適配器打破信息屏障,解決異構系統互聯、互通、互操作難的問題,實現仿真資源和實裝資源彈性調用及動態集成,驅動所需資源進行規劃調度和統一管理。
在此基礎上,開展該分布式仿真架構的可靠性問題研究,設計分布式仿真系統一致性共識算法,最終實現LVC仿真異構資源互聯、互通、互操作等功能,通過真實的仿真算例驗證該仿真中間件架構的可靠性、有效性與一致性。
分布式聯合仿真中間件架構是分布式仿真體系中間件層的實現方式[15-17],通過內部的仿真引擎適配器打破信息屏障,解決異構系統互聯、互通、互操作難的問題,從而實現資源要素層仿真資源和實裝資源彈性調用及動態集成。
中間件總體架構如圖1所示,它是仿真應用系統之間互操作的基礎,通過統一服務調用,屏蔽 LVC仿真資源通信協議的差異,提供了基礎運行環境,使得上層應用能夠透明地使用各類LVC仿真資源,系統主要包括以下模塊。

圖1 通用仿真中間件設計圖Fig.1 Diagram of general simulation middleware
(1)資源虛擬模塊。通過在容器云組件內部署仿真引擎軟件服務,使其能夠使用虛擬化環境、大數據環境及虛擬資源中心管理能力,能夠在服務定義包格式、認證授權、服務實例化方面實現完全兼容,在功能、接口等方面保持一致。
(2)應用管控模塊。在其中設計了管控接口,使得上層業務系統可以通過仿真中間件,對所需資源進行管控。由于各個仿真引擎軟件運行時對外界暴露的接口不統一,可以根據配置文件定制容器在通用中間件中進行消息傳輸時的接口格式,需要各接入軟件滿足基本接口標準要求(例如想定編輯相關接口、導調控制相關接口等)。
(3)服務調度模塊。支持將仿真軟件整體封裝到同一容器中,也支持根據需求將仿真軟件各模塊拆解,按照組件模板定制微服務。同時,為用戶提供多租戶、資源隔離、高可用的運行環境,為仿真引擎軟件的安裝部署、運行和彈性伸縮提供合理的資源調配策略,確保服務高可用。
(4)通信鏈路模塊。實現多通信介質、多協議資源接入擴展能力,支持有線網絡和無線鏈路,可運行于多種硬件平臺;總線以及平臺支持基于廣域網的分布式仿真,由專用信息通信網絡提供所需的通信資源,其中包括了3種通信總線,分別是時間總線、指令總線、數據總線。實現系統調用、協作、支撐等功能接口的連通,通信形式上支持一對一、一對多、多對多。分布式聯合訓練仿真中間件架構以通用仿真中間件為通信基礎,通過仿真引擎適配器將異構仿真系統或引擎軟件接入,具有模塊化、標準化以及一體化的特點??蓪崿F資源分配、任務協同,完成集中與分布相結合的監視、控制和管理功能,將各個分布式仿真系統的能力進行整合升級,實現其管理調度與互聯互通。該支撐系統對上能夠為訓練提供分布式仿真能力支持,對下能夠驅動所需資源進行規劃調度和統一管理。
通用仿真中間件為分布式仿真提供運行過程中所需的通信資源,在HLA RTI基礎上實現了3種通信總線(基于消息隊列實現),分別是時間總線、指令總線、數據總線。時間總線主要為仿真引擎軟件傳輸統一的時間同步信號;指令總線向各仿真引擎軟件提供運行時的控制命令傳輸,包括導調控制指令(開始、暫停、狀態變更等)、資源分配指令(分配容器等)、信息同步指令(狀態上報等)等,采用異步傳輸;數據總線主要是用于傳輸仿真模型文件、態勢數據以及運行狀態等。
仿真引擎適配器將分布式仿真引擎接入系統,依托原生云技術為分布式系統提供按需配置、彈性擴展、即取即用的容器云運行環境。彈性運行環境構建在IaaS環境適配之上,采用資源調度引擎,借助融合及超融合架構,提供用于支撐容器運行的彈性計算框架,實現分布式架構、自動化部署運維、高可用保障。各個封閉的仿真引擎軟件能無縫對接聯合仿真系統,受系統統一管控,形成分布式仿真能力。系統基于適配器模式,支持用戶根據需求在預定義的接口標準上對仿真引擎軟件進行定制修改、二次開發,盡可能保證靈活性。當某次分布式仿真任務被發起后,系統分析用戶給出的完整要求,從中抽取模型實體,籌劃需要的仿真資源,制定本次服務執行策略。通過內部最優化算法解算,按需分配資源,實現應用系統負載和基礎資源供給額度的關聯。
分布式仿真可靠性保證研究主要為中間件架構提供容災抗毀與可靠運行能力,包括主從備份、同步機制、回放機制等,保障系統的實時運行、消息處理、模型運行和分布式處理,保證分布式協同仿真的可靠性與一致性,仿真節點狀態轉換如圖2所示。包含仿真主節點、備份節點、跟隨節點、過程控制節點4種角色。

圖2 仿真節點狀態轉換Fig.2 Simulation node state transitions
仿真主節點:接受任務請求執行仿真流程,向跟隨節點同步日志。
備份節點:用于在超時或者仿真主節點失效時接替仿真任務,并成為下一任仿真主節點。
跟隨節點:接收并持久化仿真主節點同步的日志信息。
過程控制節點:將過程狀態信息封裝到日志序列中,并將它們復制到所有跟隨節點。
設定固定時間間隔,當跟隨節點超時即啟動備份節點,當仿真主節點超時失效,則會啟動備份節點來接替成為下一個仿真主節點,執行仿真任務,保證仿真流程的連貫性和可靠性。
為了保證仿真引擎協同工作的可靠性,在最終一致性原則指導下設計了幾類機制,一是主從備份,由于涉及的機器節點較多,用于執行仿真流程的仿真主節點在運行過程中有較高的概率出現失敗的情況,通過自適應心跳檢測、近鄰響應等技術,對節點失效情況進行快速感知,并啟動對應備份節點接替仿真流程;二是同步機制,過程一致性是開展分布式仿真任務的基礎和前提,但是在不一致的模型效率與差異化的時鐘分辨率等原因的影響下,很難保證各子系統的邏輯時鐘同步及仿真數據傳遞的時序一致性。因此,在系統中設計仿真共識算法,實現對仿真狀態的一致認可。即使是在部分節點故障、網絡延時、網絡分割的情況下,基于狀態機原理,由過程控制節點將過程狀態信息封裝到日志序列中,并將它們復制到所有跟隨節點,大家按相同順序復原狀態序列,實現過程一致性;三是回放機制,利用持久化機制把用戶操作日志附在文件序列中,如果出現數據丟失,按照操作順序再進行操作即可恢復數據,為了防止存儲冗余,利用持久化重寫技術,對于重復序列的命令只保存最后有意義的記錄。此外各系統會對當前應用上報的狀態信息進行統一快照存儲。一方面是滿足回放需求,另一方面是便于某些節點在宕機后,整個系統可以從過去的某個節點重新恢復。
根據LVC分布式仿真系統虛實結合的特點,創新性提出虛擬引擎實用拜占庭(virtual engine practical Byzantine,VEPB)算法,結合實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)算法[18]的優點,加上消息簽名驗證,驗證分布式可靠性的同步機制,能夠同時解決仿真狀態一致性、真實性和完整性問題。
在各個分系統節點上標記一個N維的向量,通過標記和對比時間戳的方式,表示節點依賴關系和操作順序,為分布式仿真系統中各數據節點產生偏序值。
(1)向量時鐘定義。一個擁有N個節點的分布式仿真系統,設x[k]為節點x獲取的節點k的時間值,則節點x的向量時鐘為
x=(x[1],x[2],…,x[n]),
k∈(0,1,2,…,n-1)
(1)
(2)向量時鐘更新。當兩個仿真節點進行消息通信傳輸時,會核對兩方的向量時鐘,進行向量比較和更新,則有
y[k]=max{x[k],y[k]},
k∈(0,1,2,…,n-1)
(2)
(3)節點依賴關系。設仿真節點x、y的向量時鐘分別為x和y,如果對?k∈(0,1,2,…,n-1),都有x[k]≤y[k],代表節點y的狀態比節點x的狀態新,稱x和y滿足因果關系x→y。
VEPB算法實現對系統仿真狀態的一致性認可。設置多副本狀態機,狀態機副本數量為
C=2L+1
(3)
式(3)中:L為拜占庭容錯的最大數量。
把時間分為連續視圖,在每個視圖中,包括唯一可用的主副本和其他副本。每個視圖主副本公式為
P=(VCmod |R|)
(4)
式(4)中:V為視圖編號;P為副本編號;|R|為總的副本數量。VEPB算法由如下部分組成。
(1)時鐘同步。副本并發地提交操作命令,將操作命令同步復制到所有節點,使用向量時鐘的方式跟蹤記錄副本之間的依賴關系x→y。
(2)排序執行。根據操作命令之間的依賴關系排列執行順序,保證順序一致性。
(3)容錯更新。當接收客戶端請求的主副本P出現錯誤,系統會執行視圖變更(view-change),以選出新的主副本。P會廣播經過簽名后的視圖變更消息給所有副本,消息格式為
為了驗證提出的基于LVC的分布式仿真中間件架構,使用某多地聯合仿真訓練系統進行實驗,該系統將地理分散的模擬訓練系統合成為邏輯上的整體,構成完整的虛實結合訓練體系,在逼真的視景和操作模擬環境中,進行較高人機交互度的仿真實驗和訓練。各訓練子系統在統一的時空基準與任務背景下參與訓練過程,完成不同科目。系統由基于離散事件推演框架[19]和通信中間件[20]開發的分布式仿真引擎實現。
設計了3組性能實驗來驗證所提出的框架與技術:第一組驗證了分布式仿真的一致性保證能力,第二組驗證了分布式仿真系統在不同推演倍速下運行時的資源調度成本,第三組驗證了仿真中間件在接入不同規模系統運行時的信息傳輸性能,所有實驗重復了五次并取平均值。
驗證了提出的分布式仿真一致性方法,在所述分布式仿真訓練系統中整合不同規模的實裝系統、構造仿真系統、數字仿真系統,借由仿真代理適配器,實現在同一訓練時空下的互聯互通操作,通過比較過程日志信息,計算各仿真系統推演時鐘之差的平均值,驗證能否有效解決不同種類系統間存在的物理時間不同步、信息傳輸延遲等問題。在圖3中可以看到在不同數量規模的系統中,時鐘差異保持在較小的范圍,分析整體趨勢發現,系統規模越大,系統的一致性效果越差。同時,實裝系統由于硬件系統誤差較大、通信鏈路不穩定等問題,會產生更高的時間偏差。

圖3 分布式LVC仿真系統推演時鐘差值Fig.3 Clock deduction difference in distributed LVC simulation system
第二組實驗計算了分布式仿真中間件的資源編排與調度所需時間與實際系統執行時間的比例,從而驗證使用相關云環境帶來的額外時間成本。實驗進行了5次,每次實驗在不同規模的分布式仿真系統中運行相同訓練仿真科目。圖4顯示了仿真系統執行過程中額外調度時間占比??偟膩碚f,系統調度所需時間占比不高,當參與的訓練子系統數量增長時,資源調度占比明顯更大且波動更明顯,而訓練子系統數量較少時占比變化相對穩定,這是因為系統需要更多時間來進行過程同步與資源調度。值得一提的是,雖然所使用的虛擬資源不是專用的,但所有實驗組的標準偏差都很小,這表明一旦創建了容器云實例,仿真系統將在云上穩定運行。

圖4 分布式仿真中間件中系統額外調度時間占比Fig.4 Proportion of system additional scheduling time in distributed simulation middleware
第三組實驗驗證了分布式仿真中間件的信息傳輸性能。在某訓練任務執行過程中,計算不同規模系統的同步控制消息體從控制節點傳輸到仿真系統的平均時延,比較單機與分布式運行模式的信息傳輸能力。從圖5中可以看到,單機運行模式由于可以直接通過共享內存機制等進行信息傳輸,在系統規模較小時可以得到較好的結果,但是隨著系統數量上升,傳輸時延呈指數上升。而分布式運行模式雖然存在一定跨機器的傳輸時延,但是對于大規模的運行方式有較好的適用性,傳輸時延呈較小斜率線性增長。

圖5 分布式仿真中間件信息傳輸時延Fig.5 Information transmission delay in distributed simulation middleware
基于LVC的分布式仿真中間件架構,面向異構資源整合,設計包括資源虛擬、應用管控、服務調度、通信鏈路等工作模塊。在此基礎上,進一步研究了該分布式仿真架構的可靠性及一致性共識算法,通過算例在實際仿真環境實驗驗證,得到以下結論。
(1)實驗證明了該分布式仿真中間件架構能夠滿足不同規模的訓練系統對資源和環境的需求,證明了該架構的可靠性以及VEPB共識算法的一致性。
(2)所提供的研究方法能夠有效提高跨域聯合訓練、虛實聯動、資源共享、資源靈活重組等能力,實現訓練資源和訓練系統的互聯、互通、互操作,對未來訓練仿真系統建設與發展具有積極影響。