林萬洪,鄧 華,熊 穎,晁建剛,楊 進(jìn)
(1.中國航天員科研訓(xùn)練中心,北京100094;2.中國航天員科研訓(xùn)練中心人因工程重點實驗室,北京100094)
飛行訓(xùn)練仿真系統(tǒng)中實時數(shù)據(jù)同步模型設(shè)計與實現(xiàn)
林萬洪1,2,鄧 華1,熊 穎1,晁建剛1,2,楊 進(jìn)1
(1.中國航天員科研訓(xùn)練中心,北京100094;2.中國航天員科研訓(xùn)練中心人因工程重點實驗室,北京100094)
針對下一代航天飛行訓(xùn)練模擬器分布式仿真系統(tǒng)對仿真數(shù)據(jù)管理與實時同步的高要求,分析了國內(nèi)外仿真系統(tǒng)數(shù)據(jù)同步技術(shù)發(fā)展現(xiàn)狀,在前期任務(wù)數(shù)據(jù)分發(fā)模型的基礎(chǔ)上,提出了基于組播、共享內(nèi)存和訂閱發(fā)布技術(shù)的局域網(wǎng)仿真數(shù)據(jù)高速同步方法,設(shè)計了一種基于數(shù)據(jù)語義標(biāo)識的通信模型。仿真試驗表明:此模型合理高效,與上一代同步技術(shù)比較,同步時鐘提高到10 ms內(nèi),相同節(jié)點數(shù)目時,40 ms仿真周期內(nèi)數(shù)據(jù)量提高了近一倍,開發(fā)效率提高了一倍以上。
飛行訓(xùn)練仿真系統(tǒng);分布式仿真;數(shù)據(jù)同步
空間站任務(wù)中要求飛行訓(xùn)練模擬器能夠提供給航天員空間站全任務(wù)流程的訓(xùn)練支持,并同時能夠滿足多個航天員乘組在模擬器進(jìn)行訓(xùn)練。上述需求變化對模擬器設(shè)備的研制及使用帶來了新的挑戰(zhàn),基本的體系結(jié)構(gòu)需要從原來以具體訓(xùn)練任務(wù)計算為中心、數(shù)據(jù)專項使用轉(zhuǎn)向多任務(wù)、綜合場景、協(xié)同訓(xùn)練的模式。這種轉(zhuǎn)變?yōu)槟M器數(shù)據(jù)通信帶來了新的挑戰(zhàn),包括:
1)數(shù)據(jù)規(guī)模的增大,需要仿真的設(shè)備增多,仿真模塊成數(shù)量級增長;2)艙段及艙載設(shè)備增加很多;3)數(shù)據(jù)的使用方式改變,從單一用戶到多用戶;4)多設(shè)備協(xié)同對仿真數(shù)據(jù)的一致性要求提高;5)適應(yīng)新設(shè)備不斷加入的需求,要求適應(yīng)仿真參數(shù)可動態(tài)變化;6)新一代訓(xùn)練模擬器開發(fā)模式的轉(zhuǎn)變要求數(shù)據(jù)通信作為最基礎(chǔ)的模塊能夠支持上層應(yīng)用對系統(tǒng)進(jìn)行快速升級。
飛行訓(xùn)練仿真系統(tǒng)的數(shù)據(jù)通信技術(shù)總體上可以分為集中式、分布式兩類。近年來,由于計算的復(fù)雜化,分布式成為主流。先后經(jīng)歷了DIS、HLA、DDS等為代表的不同的通信模型結(jié)構(gòu)階段[1]。 DIS[2]、HLA[3]、DDS[4]等體系架構(gòu)本身是為通用的通信過程設(shè)計的,考慮全面,但與飛行訓(xùn)練模擬器結(jié)構(gòu)相對單一、數(shù)據(jù)可控、可預(yù)先分配仿真資源等特點不匹配,容易導(dǎo)致系統(tǒng)復(fù)雜度增加,開發(fā)維護(hù)成本攀升,不利于系統(tǒng)的運行和維護(hù)。
我國航天飛行訓(xùn)練仿真數(shù)據(jù)同步技術(shù)根據(jù)自身任務(wù)特點采取了不同技術(shù)路線,先后建立了基于套接字環(huán)狀結(jié)構(gòu)模型、基于 ACE(Adaptive Communication Environment)中間件的通信模型[5]以及基于數(shù)據(jù)分發(fā)的數(shù)據(jù)服務(wù)模型[6]。其中最為完善的基于數(shù)據(jù)分發(fā)的數(shù)據(jù)服務(wù)模型在仿真參數(shù)更新、仿真節(jié)點管理等方面依然有效,但是當(dāng)仿真節(jié)點增多,各節(jié)點對數(shù)據(jù)訪問需求不一致時,通信效率呈明顯下降趨勢。原因一是節(jié)點數(shù)目及數(shù)據(jù)量增加較多,且仿真參數(shù)需要動態(tài)調(diào)整;二是目前基于數(shù)據(jù)分發(fā)的數(shù)據(jù)服務(wù)模型會在內(nèi)存中形成多份數(shù)據(jù),對多份數(shù)據(jù)拷貝進(jìn)行管理,消耗系統(tǒng)資源;三是將所有的數(shù)據(jù)更新信息發(fā)送給所有的節(jié)點進(jìn)行同步,但實際上節(jié)點僅需要個別參數(shù)或者某類參數(shù)。因此,數(shù)據(jù)通信面臨著仿真節(jié)點間的通信方式和數(shù)據(jù)分發(fā)服務(wù)指向性管理等問題。
本文在基于數(shù)據(jù)分發(fā)的數(shù)據(jù)服務(wù)模型的基礎(chǔ)上提出新的虛擬數(shù)據(jù)倉庫管理方法解決上述問題,采用基于共享內(nèi)存體系結(jié)構(gòu)模型,在發(fā)布基礎(chǔ)上增加了訂閱方法以進(jìn)一步增強(qiáng)通信的有效性和指向性,作為面向下一代飛行訓(xùn)練仿真系統(tǒng)的通信模型,簡稱為飛行訓(xùn)練模擬器仿真架構(gòu)通信模型(Communication Model of Simulator Simulation Architecture,CMoSSA)。
CMoSSA利用了JGroups[7]、HLA及DDS的部分概念,參考部分異構(gòu)網(wǎng)絡(luò)的設(shè)計方法[8]。它由節(jié)點、虛擬數(shù)據(jù)倉庫、接入點等組成,包含了節(jié)點管理、數(shù)據(jù)管理、數(shù)據(jù)同步以及權(quán)限管理等?;驹砣鐖D1所示。
CMoSSA總體上仍屬于客戶機(jī)?服務(wù)器模型,在服務(wù)器端包含系統(tǒng)層,網(wǎng)絡(luò)中間件,虛擬數(shù)據(jù)倉庫,接入點以及SSA系統(tǒng)服務(wù)等五個不同的層級。在客戶端包含系統(tǒng)層,網(wǎng)絡(luò)中間件,虛擬數(shù)據(jù)倉庫,接入點以及仿真節(jié)點,其中仿真節(jié)點是由用戶自定義實現(xiàn)。系統(tǒng)層,網(wǎng)絡(luò)中間件,虛擬數(shù)據(jù)倉庫,接入點構(gòu)成了CMoSSA的基本運行架構(gòu),SSA系統(tǒng)服務(wù)提供了管理 CMoSSA的各類服務(wù)。CMoSSA提供數(shù)據(jù)訪問接口(接入點)對系統(tǒng)內(nèi)數(shù)據(jù)等進(jìn)行訪問,實現(xiàn)了仿真節(jié)點與數(shù)據(jù)分離,在同一仿真設(shè)備上多個仿真節(jié)點可同時訪問虛擬倉庫。數(shù)據(jù)的訪問采取發(fā)布訂閱模式,根據(jù)訪問情況對發(fā)布訂閱數(shù)據(jù)進(jìn)行動態(tài)調(diào)整,使數(shù)據(jù)的同步與更新處于高效的過程。
CMoSSA的系統(tǒng)層主要負(fù)責(zé)與計算機(jī)操作系統(tǒng)或者是底層硬件通信。網(wǎng)絡(luò)中間件利用成熟的中間件技術(shù)如ACE、ZeroMQ等負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的傳輸[9?10]。虛擬數(shù)據(jù)倉庫是通信模型的核心,承載著數(shù)據(jù)管理、更新、邏輯處理等功能。接入點是仿真節(jié)點與虛擬數(shù)據(jù)倉庫的接口,提供給上層程序開發(fā)使用,負(fù)責(zé)與應(yīng)用之間的數(shù)據(jù)傳遞。SSA系統(tǒng)服務(wù)提供了仿真服務(wù)器發(fā)現(xiàn),計算域管理,系統(tǒng)邏輯處理,數(shù)據(jù)管理等服務(wù)。
在上述結(jié)構(gòu)中,各仿真節(jié)點間(特別是本地節(jié)點之間)數(shù)據(jù)的同步在共享內(nèi)存等方法基礎(chǔ)上采用了以數(shù)據(jù)為中心的發(fā)布/訂閱機(jī)制以及周期同步技術(shù)。數(shù)據(jù)發(fā)布、傳遞和接收行為按照標(biāo)準(zhǔn)化過程進(jìn)行,數(shù)據(jù)分發(fā)服務(wù)的應(yīng)用范圍通過權(quán)限管理完成,而系統(tǒng)中數(shù)據(jù)的描述、相互關(guān)系及初始化定義建立于實時內(nèi)存數(shù)據(jù)庫之上,數(shù)據(jù)的描述可直接映射于仿真節(jié)點的語義交互接口。
3.1虛擬數(shù)據(jù)倉庫模型設(shè)計
CMoSSA虛擬數(shù)據(jù)倉庫的設(shè)計是在數(shù)據(jù)分發(fā)機(jī)制基礎(chǔ)上進(jìn)行的。新的設(shè)計具有兩個顯著的特征:一是采用共享內(nèi)存提高通信效率;二是建立了主備份狀態(tài)模式,提高系統(tǒng)的可靠性。
虛擬數(shù)據(jù)倉庫包含了本地虛擬倉庫和網(wǎng)絡(luò)虛擬倉庫,本地數(shù)據(jù)倉庫解決幾個進(jìn)程之間的節(jié)點數(shù)據(jù)同步問題,網(wǎng)絡(luò)虛擬倉庫解決網(wǎng)絡(luò)上各節(jié)點之間的數(shù)據(jù)同步問題。根據(jù)實時性及數(shù)據(jù)更新的可靠性等要求,兩種倉庫采取了不同的策略,本地數(shù)據(jù)倉庫主要利用共享內(nèi)存方式,將公用的節(jié)點數(shù)據(jù)信息等建立一份鏡像,所有進(jìn)程按照讀寫策略進(jìn)行操作。網(wǎng)絡(luò)虛擬倉庫采用了以UDP多播為主的周期同步模式,在每臺終端設(shè)備具有一個虛擬數(shù)據(jù)倉庫的同步鏡像,如圖2所示。
虛擬數(shù)據(jù)倉庫之間的鏈接通過一個BUS模式的總線結(jié)構(gòu)完成,每個本地虛擬數(shù)據(jù)倉庫的數(shù)據(jù)更新需要發(fā)布時,通過總線發(fā)布給其他在域內(nèi)的虛擬數(shù)據(jù)倉庫,局域網(wǎng)環(huán)境中通過UDP多播的方式實現(xiàn),本地環(huán)境中通過共享內(nèi)存的方式實現(xiàn)。
為保證數(shù)據(jù)在虛擬倉庫中的可靠性,設(shè)計了備份數(shù)據(jù)中心,對虛擬數(shù)據(jù)倉庫的所有關(guān)鍵信息進(jìn)行實時備份。本文采用一種成對互為備份的雙子星模式,同時將關(guān)鍵信息發(fā)送給主備兩臺機(jī)器,在SSA系統(tǒng)服務(wù)主機(jī)崩潰時信息仍能夠保留。在正常工作時備機(jī)僅作為一臺普通客戶端運行,像其他客戶端一樣從主機(jī)獲取更新信息,但同時它也能從其他客戶端獲取更新事件。其體系結(jié)構(gòu)設(shè)計如圖3(a)所示。
此模型在服務(wù)器發(fā)送給客戶端的更新事件中加入心跳,這樣作為備機(jī)的客戶端可以知道主機(jī)是否異常。為了判斷主機(jī)節(jié)點是否異常,客戶端專門為心跳設(shè)置一個“投票”套接字,來協(xié)助判定主機(jī)節(jié)點是否異常,然后使用數(shù)據(jù)快照請求來“投票”接收新的主機(jī)數(shù)據(jù)。其狀態(tài)轉(zhuǎn)換過程表示如圖3(b)所示。主備機(jī)切換的步驟為:客戶端檢測到主機(jī)不再發(fā)送心跳,因此轉(zhuǎn)而連接備機(jī),并請求一份新的數(shù)據(jù)快照;備機(jī)開始接收快照請求,并檢測到主機(jī)異常,于是開始作為主機(jī)運行;備機(jī)將待處理列表中的更新事件寫入自身狀態(tài)中,然后開始處理其他客戶端的數(shù)據(jù)快照請求。
3.2數(shù)據(jù)注冊與銷毀
為了解決仿真數(shù)據(jù)動態(tài)變化的需求,采用了數(shù)據(jù)使用時進(jìn)行注冊和銷毀的方法,使得上層仿真節(jié)點可以對數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行動態(tài)管理。
數(shù)據(jù)在使用前需要向虛擬數(shù)據(jù)倉庫進(jìn)行注冊,注冊過程包括請求注冊、空間分配以及鏡像更新等三個過程。請求注冊時將數(shù)據(jù)的屬性按照規(guī)范向虛擬倉庫發(fā)起請求,虛擬倉庫檢索倉庫中是否已存在此數(shù)據(jù),如果不存在,將允許數(shù)據(jù)進(jìn)行注冊;如果已經(jīng)存在,通知注冊客戶端數(shù)據(jù)已經(jīng)存在,不能重復(fù)注冊。允許注冊后,系統(tǒng)對數(shù)據(jù)所需要的內(nèi)存空間等進(jìn)行分配,并將分配后的內(nèi)存表信息進(jìn)行存儲,然后通知系統(tǒng)完成了空間分配。在完成空間分配后,系統(tǒng)將分配后的虛擬倉庫狀態(tài)同步到各個終端,保證終端鏡像的一致性。
上述過程中如果多個客戶端同時注冊數(shù)據(jù),會存在注冊數(shù)據(jù)競爭一致性的問題。如圖4所示,A和B將數(shù)據(jù)P進(jìn)行注冊,按照設(shè)計的邏輯時序可完成正常注冊。但在注冊查詢狀態(tài)的過程中,由于是通過不同節(jié)點對網(wǎng)絡(luò)虛擬數(shù)據(jù)倉庫進(jìn)行訪問,可能存在并行訪問狀態(tài)時序關(guān)系管理不一致,獲取到相同的狀態(tài)屬性結(jié)果,使得兩個節(jié)點注冊的數(shù)據(jù)P均成功,在系統(tǒng)運行下一步計算過程時,數(shù)據(jù)訪問會出現(xiàn)意外的結(jié)果。
本文采用集中注冊以及并行訪問串行化兩種方式解決上述問題。集中注冊是指所有數(shù)據(jù)通過一個客戶端進(jìn)行注冊。并行訪問串行化是指將所有的申請訪問進(jìn)入串行隊列,防止了并發(fā)帶來的問題。數(shù)據(jù)的銷毀過程是與注冊相反的過程,但是銷毀的數(shù)據(jù)并不會在系統(tǒng)中立即消失,只是打上銷毀的標(biāo)志,表示此數(shù)據(jù)處于銷毀狀態(tài),系統(tǒng)會周期檢測所有數(shù)據(jù)狀態(tài),在檢測周期到來時將所有需要銷毀的數(shù)據(jù)統(tǒng)一銷毀,并同步更新、鏡像到所有的虛擬數(shù)據(jù)倉庫客戶端。
3.3權(quán)限控制
數(shù)據(jù)的動態(tài)管理必然會涉及權(quán)限的問題,在本模型的數(shù)據(jù)權(quán)限管理中,引入了作用域的概念,通信模型中的虛擬數(shù)據(jù)倉庫及其中的數(shù)據(jù)屬于一個或多個域,域主要由數(shù)據(jù)寫入者、數(shù)據(jù)讀入者、發(fā)布者、訂閱者及全局空間的信息倉庫幾個對象組成。一個域代表一個通信范圍,只有同一個領(lǐng)域的發(fā)布者和訂閱者才能交互。
為了系統(tǒng)的訪問安全,設(shè)計的每個節(jié)點以及數(shù)據(jù)都具有自己訪問權(quán)限,節(jié)點具有超級、普通以及匿名等權(quán)限,數(shù)據(jù)具有可讀、可寫等權(quán)限。
數(shù)據(jù)可寫、可讀、可擁有是指此數(shù)據(jù)在仿真系統(tǒng)中是否能夠被其他節(jié)點進(jìn)行所定義的操作,數(shù)據(jù)可寫是指可以被其他的節(jié)點所寫,可讀指其他節(jié)點只能進(jìn)行讀操作。為了保證數(shù)據(jù)同步時的一致性,每個數(shù)據(jù)需要附屬在一個節(jié)點上作為其父節(jié)點,父節(jié)點對自己的數(shù)據(jù)擁有所有權(quán)限。
超級節(jié)點可以修改仿真系統(tǒng)的參數(shù),如數(shù)據(jù)同步時間、數(shù)據(jù)的訪問權(quán)限、將某些數(shù)據(jù)銷毀、修改數(shù)據(jù)的參數(shù)值、發(fā)送全局的信息通知等。普通節(jié)點可以修改節(jié)點所屬的數(shù)據(jù)屬性,包括數(shù)據(jù)的訪問權(quán)限、數(shù)據(jù)的參數(shù)值等。匿名節(jié)點只能觀察系統(tǒng),不能做任何操作。
4.1同步模型設(shè)計
為了減少重復(fù)數(shù)據(jù)在內(nèi)存中的鏡像以及在網(wǎng)絡(luò)的傳輸,特別是針對本地節(jié)點之間以及數(shù)據(jù)倉庫之間的數(shù)據(jù)通信,在發(fā)布機(jī)制的基礎(chǔ)上設(shè)計了對應(yīng)的訂閱機(jī)制。發(fā)布訂閱系統(tǒng)主要有使用2g?precedence模型來處理分布式事件的順序和復(fù)合事件的檢測,基于擴(kuò)充了時序模型的有限狀態(tài)機(jī)進(jìn)行描述,基于事件代數(shù)的事件復(fù)合監(jiān)測機(jī)制和基于ECA規(guī)則的事件處理機(jī)制。但是目前整體而言對發(fā)布訂閱系統(tǒng)中的復(fù)合事件時序邏輯模型研究較少[11]。本文描述的發(fā)布訂閱分為仿真節(jié)點與虛擬倉庫之間以及兩個虛擬倉庫之間兩個過程。仿真節(jié)點與虛擬倉庫之間采用實時自動訂閱模型,虛擬倉庫之間采用定期更新模型。發(fā)布訂閱系統(tǒng)不僅支持對單個事件的訂閱,而且支持對“事件模式”或“復(fù)合事件”的訂閱。即:當(dāng)各個發(fā)布者所發(fā)布的一系列事件所組成的事件序列滿足某一條件時,才通知節(jié)點,改善了仿真計算節(jié)點的可擴(kuò)展性和性能,實現(xiàn)了自動訂閱模型。
由于訂閱者在單線程工作時,為了滿足實時性要求,對計算要求很高,在本文所進(jìn)行試驗的計算機(jī)上,數(shù)據(jù)量達(dá)到10 M以上的時候,會占用大量的單一CPU資源,而且無法使用其他的CPU。因此,設(shè)計了并發(fā)模式對工作量進(jìn)行分配,將工作量拆分成獨立并行的片進(jìn)行處理,按照不同的分類方法對數(shù)據(jù)進(jìn)行分片訂閱,其發(fā)布訂閱模型結(jié)構(gòu)如圖5所示,圖中以3個分片示意,多個分片結(jié)構(gòu)增加訂閱、發(fā)布的描述即可。
CMoSSA中與發(fā)布訂閱管理緊密相關(guān)的就是數(shù)據(jù)緩存,所有的數(shù)據(jù)緩存是基于發(fā)布訂閱的需求進(jìn)行設(shè)計。CMoSSA在實現(xiàn)過程中根據(jù)終端節(jié)點對虛擬數(shù)據(jù)倉庫的訪問過程,采用了兩個隊列控制[12]最近時間訪問過程算法,對節(jié)點訪問的數(shù)據(jù)進(jìn)行緩存,加快訪問速度和減少虛擬倉庫與節(jié)點之間的數(shù)據(jù)傳輸,原理如圖6所示。
算法類似于 LRU?2,不同點在于本算法將LRU?2算法中的訪問歷史隊列改為一個FIFO緩存隊列,最近時間訪問過程算法有兩個緩存隊列,一個是FIFO隊列,一個是LRU隊列。當(dāng)數(shù)據(jù)第一次訪問時,將數(shù)據(jù)緩存在FIFO隊列里面,當(dāng)數(shù)據(jù)第二次被訪問時,則將數(shù)據(jù)從FIFO隊列移到LRU隊列里面,兩個隊列各自按照自己的方法淘汰數(shù)據(jù)。具體算法過程為:1)新訪問的數(shù)據(jù)插入到FIFO隊列;2)如果數(shù)據(jù)在FIFO隊列中一直沒有被再次訪問,則最終按照FIFO規(guī)則淘汰;3)如果數(shù)據(jù)在FIFO隊列中被再次訪問,則將數(shù)據(jù)移到LRU隊列頭部;4)如果數(shù)據(jù)在LRU隊列再次被訪問,則將數(shù)據(jù)移到LRU隊列頭部;5)LRU隊列淘汰末尾的數(shù)據(jù)。通過兩個隊列實現(xiàn)了較高的命中率,內(nèi)存消耗比較接近于LRU?2算法,但對于最后訪問的數(shù)據(jù)來說,本算法會減少一次從原始存儲讀取數(shù)據(jù)或者計算數(shù)據(jù)的操作。
4.2時序控制
時序控制在仿真系統(tǒng)的數(shù)據(jù)同步中尤為重要,各個仿真節(jié)點之間在邏輯上存在著對時間順序的要求。為了實現(xiàn)有效的時序控制和通信效率之間的平衡,設(shè)計了時鐘激勵模式和事件激勵模式兩種通信時序關(guān)系。時鐘激勵模式是通過一個標(biāo)準(zhǔn)的時鐘源按照仿真步長的要求,按序推進(jìn),在本方法中,按照10 ms的時鐘步長。事件激勵模式是對仿真系統(tǒng)中的重要事件進(jìn)行響應(yīng),以消息、回調(diào)等方式通知節(jié)點。
仿真節(jié)點的實現(xiàn)過程中與時間相關(guān)性小的仿真參數(shù),統(tǒng)一使用時鐘激勵模式進(jìn)行推進(jìn),每個本地虛擬數(shù)據(jù)倉庫根據(jù)時鐘激勵對所定義的數(shù)據(jù)在一個時間周期內(nèi)完成同步,同步過程包括了數(shù)據(jù)的接收、分發(fā)以及對外發(fā)送等過程。重要的仿真時間節(jié)點以及事件節(jié)點,使用事件激勵模式進(jìn)行設(shè)計,包括飛行訓(xùn)練仿真系統(tǒng)的教員控制、飛行指令、操作指令等信息。
從系統(tǒng)角度分析,由于時間相關(guān)性小的仿真參數(shù)占了90%以上,通過時間激勵方式有效提高了系統(tǒng)的通信效率,同時沒有損失關(guān)鍵信息,實現(xiàn)了對整個仿真系統(tǒng)的有效時序控制。
完成上述模型設(shè)計,在局域網(wǎng)內(nèi)對其進(jìn)行仿真驗證。試驗系統(tǒng)服務(wù)器與客戶機(jī)的CPU為In?tel Core i7 3.07 G,4 G內(nèi)存,Window XP Profes?sional SP3;采用H3C S5120千兆網(wǎng)絡(luò)交換機(jī)。試驗共使用10臺計算機(jī)在局域網(wǎng)組網(wǎng)測試。
試驗包括單機(jī)測試、基于局域網(wǎng)環(huán)境的測試和主服務(wù)器故障測試,測試內(nèi)容為仿真節(jié)點容量、數(shù)據(jù)同步能力、同步延時以及數(shù)據(jù)的可靠性。
仿真結(jié)果及上一代通信模型結(jié)果如見1。
對比前后兩個模型的結(jié)果可以看出,與上一代同步技術(shù)比較,相同節(jié)點數(shù)目時,仿真周期內(nèi)數(shù)據(jù)量提高了近一倍。上述提高來源于網(wǎng)絡(luò)模型的改變和數(shù)據(jù)發(fā)布過程的改變。原網(wǎng)絡(luò)模型為鏈?zhǔn)浇Y(jié)構(gòu),數(shù)據(jù)必須嚴(yán)格按照所定義仿真節(jié)點優(yōu)先級進(jìn)行依次發(fā)布,而CMoSSA將仿真節(jié)點的關(guān)系提高到系統(tǒng)服務(wù)層級來處理,網(wǎng)絡(luò)傳輸?shù)倪^程不關(guān)心優(yōu)先級。同時,CMoSSA對節(jié)點需要和發(fā)布的數(shù)據(jù)按照用戶需求在數(shù)據(jù)注冊時進(jìn)行了分類處理,減少了冗余數(shù)據(jù)的傳輸,加快了系統(tǒng)的數(shù)據(jù)處理過程。除此以外,由于對網(wǎng)絡(luò)傳輸邏輯的封裝良好,開發(fā)者不需要再關(guān)注系統(tǒng)的傳輸邏輯,開發(fā)效率得以大大提高。
表1 CMoSSA與上一代模型的對比表Table 1 The comparison of CMoSSA and the former model
下一代航天飛行訓(xùn)練仿真系統(tǒng)實時數(shù)據(jù)同步是保證仿真數(shù)據(jù)一致性的基本條件,本文設(shè)計的通信模型實現(xiàn)了局域網(wǎng)環(huán)境下多臺仿真終端以及多個仿真節(jié)點之間數(shù)據(jù)的實時同步,實現(xiàn)了異構(gòu)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)實時傳輸、同步、訂閱與發(fā)布、仿真數(shù)據(jù)按名稱存取等,同步效率高,滿足了航天訓(xùn)練實時仿真計算需求。同時,仿真節(jié)點與底層的數(shù)據(jù)結(jié)構(gòu)、通信方式等不屬于仿真系統(tǒng)本身邏輯的信息隔離,使得研制飛行訓(xùn)練模擬器時可專注于仿真系統(tǒng)的邏輯實現(xiàn)。本通信模型可根據(jù)所依賴的仿真環(huán)境配置在單機(jī)、局域網(wǎng)、實時網(wǎng)絡(luò)中使用,為單機(jī)訓(xùn)練設(shè)備、小型化訓(xùn)練設(shè)備以及大型地面設(shè)備之間的數(shù)據(jù)同步與數(shù)據(jù)共享提供了解決途徑,也可推廣至廣域網(wǎng)、實裝網(wǎng)絡(luò)等。
(References)
[1] R An,G Liu,C Xing.K Hu.An overview of development of simulation integration technology[C]//World Scientific.Me?chanics and Mechatronics(ICMM2015):pp.086?1091.
[2] 張學(xué)平,單洪,邵軍力.軍用分布式交互仿真(DIS)原型系統(tǒng)的實現(xiàn)研究[J].系統(tǒng)仿真學(xué)報.1998(2):13?18. ZHANG Xueping,SHAN Hong,SHAO Junli.Research on distributed interactive simulation for military training[J]. System Simulation.1998(2):13?18.(in Chinese)
[3] 戴忠健,侯朝楨.基于HLA的分布式交互仿真系統(tǒng)的開發(fā)實例[J].系統(tǒng)工程理論與實踐,2005,25(1):105?109. DAI Zhongjian,HOU Chaozhen.The development example of distributed interactive simulation system based on HLA[J]. Systems Engineering?Theory&Practice,2005,25(1):105?109.(in Chinese)
[4] 謝蓓,劉毅,曹萬華,等.實時系統(tǒng)數(shù)據(jù)分布服務(wù)DDS技術(shù)綜述[J].艦船電子工程,2006(2):16?19. Xie Bei,Liu Yi,Cao Wanhua,Li Junlin.Research on data distrubution service for real?time systems specification[J]. Ship Elcctronic Engineering,2006(2):16?19.(in Chinese)
[5] 晁建剛,沈鈞毅,王羽,等.航天飛行訓(xùn)練模擬器技術(shù)研究[J].系統(tǒng)仿真學(xué)報,2009:21(21),6851?6855. CHAO Jiangang,SHEN Junyi,WANG Yu,et al.Study on technology of space flight simulator[J].System Simulation,2009,21(21):6851?6855.(in Chinese)
[6] 鄧華,林萬洪.飛行訓(xùn)練模擬器仿真體系架構(gòu)[C]//載人航天工程二十年學(xué)術(shù)會議,2012. DENG Hua,LIN Wanhong.The simulation architecture of flight training simulator[C]//The manned space engineering conference for twenty years.2012.(in Chinese)
[7] Ban B,Blagojevic V.Reliable group communication with JGroups 3.x[EB/OL].(2015).http://www.jgroups.org/manual/pdf/master.pdf.
[8] 楊鑫輝,張慧翔.基于DDS的異構(gòu)網(wǎng)絡(luò)數(shù)據(jù)分發(fā)方法研究[J].計算機(jī)技術(shù)與發(fā)展,2014,24(11):57?60. Yang X H,Zhang H X.Research on heterogeneous network data distribution method based on DDS[J].Computer Technology and Development,2014,24(11):57?60.(in Chinese)
[9] 蒲鳳平,陳建政.基于ZeroMQ的分布式系統(tǒng)[J].電子測試.2012,253(7):24?29. Pu F P,Chen J Z.Distributed system based on ZeroMQ[J]. Electronic Test,2012,253(7):24?29.(in Chinese)
[10] Lee S,Park H,Lee W J.Design of ZeroMQ?based coopera?tive simulation framework for distributed code and model com?ponents[J].International Journal of Future Computer and Communication,2015,4(4):258?261.
[11] 馬建剛,黃濤,汪錦嶺,等.面向大規(guī)模分布式計算發(fā)布訂閱系統(tǒng)核心技術(shù)[J].軟件學(xué)報,2006,17(1):134?147. MA JianGang,HUANG Tao,WANG JinLing,et al.Underly?ing techniques for large?scale distributed computing oriented publish/subscribe system[J].Journal of Software,2006,17(1):134?147.(in Chinese)
[12] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2009:156?190. YAN weiming,WU Weimin.Data Structure(C)[M].Tsin?ghua University Press.2009:156?190.(in Chinese)
(責(zé)任編輯:龍晉偉)
Design and Implementation of Real Time Data Synchronization Model in Flight Training Simulation System
LIN Wanhong1,2,DENG Hua1,XIONG Ying1,CHAO Jiangang1,2,YANG Jin1
(1.China Astronaut Research and Training Center,Beijing 100094,China;2.National Key Laboratory of Human Factors Engineering,China Astronaut Research and Training Center,Beijing 100094,China)
According to the higher requirements on the simulation data management and real?time synchronization of the next generation distributed simulation system of space flight training simulator,the development status of data synchronization technology in simulation systems was analyzed.On the basis of the data distribution model adopted by previous simulation systems,a new method of high speed synchronization of local area network simulation data based on multicast,shared memory and SUB?PUB was proposed in this paper.In addition,a communication model based on data se?mantic identification was designed.The simulation results showed that this model was reasonable and efficient.As compared with the previous generation of synchronous clock synchronization technolo?gy,the synchronize clock was raised up to 10ms,the ability of synchronization was nearly doubled under the same number of nodes within 40 ms simulation period,and the development efficiency was more than doubled.
flight training simulation system;distributed simulation;data synchronization
TP391.9
:A
:1674?5825(2017)02?0191?06
2016?02?22;
2017?02?27
總裝備部預(yù)研基金(9140c770204150c77318);總裝重點試驗技術(shù)課題(2013SY54B1301)
林萬洪,男,碩士,助理研究員,研究方向為航天飛行訓(xùn)練仿真。E?mail:acclwh@hotmail.com