背景
分布互動仿真環境是仿真技術和網路技術相結合的產物,由分散在各地的仿真設備通過區域網路或廣域網互聯而成。由於分布互動仿真技術自身的優越性和實用性,目前已由軍事領域的套用研發推廣套用到教育、醫療、商業等非軍事領域。隨著仿真規模的擴大和仿真精度的提高,仿真網路的數據流量日益膨脹。早期的分布互動仿真系統(
分布互動式仿真(Distributed Interactive Simulation, DIS)、協定仿真),使用廣播協定數據單元(Protocol Data Unit, PDU)的方式在不同的仿真實體之間進行數據交換,這一數據互動方式是加重網路負擔的主要原因。
高層體系結構(High Level Architecture,
HLA)是在繼承以往仿真體系結構和仿真協定優勢的基礎上形成的新一代仿真體系結構,它以提高仿真系統的重用性和互動性為主要目標,採用組播PDU為主、廣播PDU為輔的混合式通訊方式。由於HLA的數據互動引用過濾機制(聲明管理和數據分發管理(Data Distribution Management,DDM),提高了建立在HLA標準之上的仿真系統的可擴展性。
聲明管理是基於數據類型過濾,而DDM是基於數據值過濾,因此,DDM的目標數據具有更細的粒度,比聲明管理具有更好的精簡數據流量的能力,從而DDM可以更好地提高HLA的過濾效果。目前,DDM的方法主要有基於區域的DDM、基於
grid的DDM以及基於全域的DDM等。
簡介
通常,DDM分為興趣和可用性表達、匹配、傳送數據等3個階段。以HLA為例,在HLA框架中,由於使用DDM機制,系統資源隨系統規模急劇增加的趨勢得到很大的緩解。DDM的基本原理是開發仿真任務的局部性,利用數據過濾機制限制冗餘數據的產生和數據的接收範圍。
仿真任務的局部性是指受仿真模型等約束條件的限制,在任意時刻某一仿真實體只與系統中所有實體的一個子集相關,此子集被稱為實體的‘感興趣集合”(interest group),感興趣集內部的實體之間才需要交換數據。在現實世界中,這種現象很常見。Macedonia等人的研究表明,在大規模
分布互動式仿真中,一個實體的感興趣集一般只占系統實體集的一小部分,而且隨著規模的增大,感興趣集的大小趨於穩定。在DDM機制中,按照一定的原則(如仿真實體相關性)建立相關的實體映射關係,並根據這種映射關係,控制了數據傳送以及接收的範圍,從根本上解決了冗餘數據耗費
系統資源極大的問題。
例如:
基本DDM的結構由多維坐標系統構成的路徑空間組成。在此空間中,聯邦成員在接收數據(訂購)或傳送數據過程中表達對某一區域的興趣。這種興趣表示如下:
(1)訂購區域(SU)定義路徑空間坐標區間來表達訂購聯邦成員的興趣範圍。
(2)更新區域(RU)定義路徑空間坐標區間來授予對象在該路徑空間中的位置。
在仿真過程中,訂購區域和更新區域的尺寸和位置隨著聯邦成員的興趣改變或在該路徑空間中位置的改變而變化。
DDM允許聯邦成員通過對象類和屬性名來定義它所要接收和傳送的數據類型。每個聯邦成員通過被選路徑空間維的延伸來決定哪些聯邦路徑空間對他們有用,以及定義這些路徑空間的分配,或者聯邦成員本身特別感興趣的邏輯區域。
在訂購區域中,聯邦成員通知運行時間框架( Run Time Infrastructure, RTI)在所描述的延伸區域中它所感興趣的數據。而在更新區域和從聯邦成員到RTI的更新區域與具體對象實例關聯區域中,該聯邦成員能控制所有加入的該聯邦成員屬性的參數。當對象更改時,該聯邦成員要么調整關聯區域的延伸,要么將該關聯區域改變為另一區域。
圖1描述了一個二維路徑空間中包含的一個更新區域(U1}和兩個訂購區域(S1, S2)。在本例中,S1為盟員a的訂購區域,S2為盟員c的訂購區域,U1為盟員b的更新區域,U1和S1發生重疊,與U1關聯的對象更新數據被RTI傳送給盟員a,而與S2關聯的盟員c將收不到b的更新數據。
數據分發管理機制
在較小規模的聯邦仿真中,可直接根據RTI聲明管理
DM (Declaration Management)確定的公布/訂購關係,進行基於類的數據過濾,而在大規模、包含不同類型成員的聯邦仿真中,為了進一步減少數據冗餘量及其處理時間,要求
HLA的數據分發服務必須提供有效和靈活的機制,應採用更小粒度的數據選擇機制,由此引進了數據分發管理服務DDM,它包括發現對象和為了控制在成員和RTI之間傳輸的屬性值和互動信息數據流所採用的機制。DDM是實現HLA/RTI的關鍵技術之一,它採用基於值的數據過濾方法,是在基於類的基礎上進一步增強聯邦成員精簡數據需求的能力,實現有效的、具有可伸縮性和簡單易用接口的數據分發管理服務。
數據分發管理內部機制
按照HLA標準所開發的仿真套用之間可以實現互操作,仿真部件可以得到最大程度的重用。而為了使仿真系統有良好的可擴縮性,在分布互動仿真領域開展了許多富有成效的研究工作。如外推技術、數據壓縮技術、數據打包技術及靜態實體管理等。這些技術在以前的仿真互動標準中,如DIS中得到了套用,在一定程度上提高了系統的可擴縮性,但沒有從根本上解決仿真數據廣播傳送造成資源需求量急劇上升的趨勢。
為此HLA專門提供了基於組播通信的數據過濾機制,即數據分發管理DDM,它作為HLA六大管理服務之一,在構建複雜大系統仿真中起著關鍵作用。
數據分發管理的目的是減少仿真運行過程中無用數據的傳輸和接收,從而減少網路中的數據量,增強構建大型虛擬世界的能力,提高仿真程式的實時性。
數據分發管理完成數據過濾總共需要四步工作:區域((region)定義、區域匹配、組播組分配和數據傳輸,如圖2-1所示。
其中:
a)區域定義:每個成員向RTI聲明自己的興趣,包括希望接收的數據和可以傳送的數據的限制條件,這通過定義區域來實現;
b)區域匹配:數據分發管理機制將訂購區域與公布區域進行比較,確定區域的相交情況。匹配的結果為傳送方和接收方的一個映射;
c)組播組分配:根據區域匹配結果,建立數據通道,即分配組播組;
d)數據傳輸:通過上一步建立的連線,仿真數據從傳送方傳輸到接收方。
值得注意的是,HLA雖然定義了數據分發管理的機制,但它並沒有規定數據分發管理的具體實現方法,在實際的仿真開發過程中,隨著套用領域和仿真目的的不同,各種聯邦對數據分發管理的要求可能千差萬別,因此RTI開發人員通常為DDM提供一個靈活的機制,作為聯邦開發人員可以根據工程的實際要求設計專門的代碼進一步縮小公布和訂購需求,從而有效地擴展RTI的數據分發能力。
數據分發管理中區域大小
在複雜大系統中,存在著數以千萬計的仿真實體,各個實體不斷地公布自己的信息和訂購其它成員的信息,以決定自己下一步的狀態或決策自己下一步的行為。其中每個實體具有多個屬性,一個屬性又可以關聯多個區域,從而產生大量的區域信息,在實現RTI時,一般將大量的區域信息存放在伺服器上,伺服器需要同時負責時間推進和數據管理,這樣伺服器需要進行大量的區域匹配計算,導致消耗大量的CPU時間,使得伺服器成為整個仿真運行的瓶頸,不適合複雜大系統實時仿真的需求}ZS}0
同時隨著對仿真實時性要求的提高,在仿真推進過程中,由於大多數實體是運動的,必須頻繁地更新公布或訂購區域,為了滿足實時的要求,加入新的區域和退出原來的區域就應有足夠快的反應時間和處理時間,而現實中總因為區域過大而無法做到這一點。為改變這種情況,通常採用減少伺服器的區域匹配計算量來提高仿真運行的整體性能。因此對於不同實體,選取多大的區域才是合適的是需要研究的問題。
區域的類型
在RTI中,存在著兩種區域,預設區域和普通區域。
預設區域由RTI在系統初始化時創建,它是一種特殊的區域,包含FED檔案中的所有維,預設區域能夠與任何普通區域相交。在客戶/服務模式體系結構中,當預設區域位於客戶方時,它屬於RTI代理,不屬於任何聯邦成員,不能夠由成員來進行刪除,當成員調用聲明管理服務中的訂購服務時,RTI利用預設區域來標識該服務與數據分發管理中的訂購服務的區別,同時為以後對象實例的更新和互動的傳送做好準備。當預設區域位於伺服器方時,RTI伺服器也利用該區域標識聲明管理服務和數據分發管理服務中訂購服務的區別。預設區域在客戶和伺服器之間利用特殊的標識符來進行傳遞。
普通區域是由聯邦成員通過調用創建區域(Create Region)服務創建,它屬於該聯邦成員,僅能由該聯邦成員更改和刪除,成員可以利用該區域有效地向聯邦中的其它成員表達自己的公布和訂購興趣。它只是在數據分發管理中才會被套用。這裡所要研究的就是根據工程實際需要而創建的普通區域。
區域尺寸的選取
在分布互動仿真套用中,若區域選擇較小,則區域變化就會過於頻繁,仿真節點機之間將忙於交換訂購信息,若區域選擇較大,剛將消弱數據分發管理的過濾效率。因此,在仿真套用時,針對不同實例,需要選擇合適的區域大小。
最小區域
在大規模分散式仿真環境中,對象實例有顯著的多樣性和動態性,例如,在虛擬戰場環境中,包含的對象可能有:飛機、坦克、飛彈、艦艇和火炮等,由於它們的運動速度相差很大,它們選取的區域也應該有所不同;對於同一實例,如靜止的坦克,在山區運動的坦克以及平原上高速運動的坦克,它們選取的區域也應該不同。由此可知,對於高速運動的實例,區域的選取應該較大,以免頻繁地區域更新,反之則可適當減少。
問題討論
某些類型的實例可能有特殊的要求。例如,一個實例可能產生很大的聲音,或者發出明亮的光芒,導致在較遠的距離處就可以看見或聽到該實例,從而必須將實例放置在一個較大尺寸的區域內。為了表示該種情況,實體通過調整R值來考慮增強的可視性。在某些軍事演習中,坦克頂部可能裝有聚光燈,從而使得該坦克能夠在正常坦克的兩培距離處看到它。考慮到這種特點,R從5m調整到l0m,則相應的靜態情況下最小區域尺寸由24m調整到48m,動態情況下最小區域尺寸由4593m調整到4617m。
數據分發管理通用模組
由於數據分發管理的程式流程基本固定,為了提高程式的開發效率,有必要進行數據分發管理通用模組DDMCMT(Data distribute management Current Module Tools)的研究,該模組能夠接收來自真實設備的普通報文,並轉換成HLA方式公布出去,並將仿真設備中產生的HLA對象屬性和互動參數轉換成真實設備所需要的普通報文結構傳送給真實設備,界面上應能顯示任意一條傳送和接收的報文,以判斷收發的正確與否,根據仿真演練的實際需要隨時能增加或刪除一條需要傳送或接收的報文。
DDMCMT的功能要求
DDMCMT要完成實際需求,應包括五個方面功能:打開FED檔案和數據結構檔案、對象類屬性(或互動類參數)與普通報文的匹配、HLA方式和普通報文方式的添加或刪除、仿真代碼生成和文檔生成功能[fs}l0
1.打開FED檔案和數據結構檔案
聯邦或聯邦成員運行生成所需的FED檔案和真實設備中普通報文的數據結構檔案在系統的設計之初就進行過詳細地設計,它是總體設計人員必須提供的兩個檔案,如果根據實際演練的需要,要對演練的內容進行改變,那么首先要修改的就是這兩個檔案,為了實現FED與普通報文的信息的正確互動,就應先分別打開這兩個檔案,為下一步的匹配作準備。
2.對象類屬性(或互動類參數)與普通報文的匹配
聯邦或聯邦成員運行生成所需的FED中無非是一些對象類和互動類,普通報文的數據結構中也大至是這些實例的屬性或互動的信息,它們之間通常有一定的對應關係,實際中可能通過像連線一樣將它們一一對應起來,這樣就可以在FED檔案與普通報文之間建立起一個對應關係。
3. HLA方式和普通報文方式的添加或刪除
添加和刪除一條信息是系統仿真中常遇到的問題,如果沒有DDMCMT要添加一條信息,程式就要完全從頭設計和編寫,浪費了大量重複勞動的時間,設計該工具的目的就是為了使添加和刪除變得更加方便,通過極少的修改就完成所要求的任務。
4.仿真代碼生成功能
仿真代碼生成的功能是根據用戶匹配的報文信息自動生成可執行的DDMCMT代碼。根據用戶匹配的報文信息,自動添加與RTI接口的部分、程式的控制代碼及運行界面控制部分,最終生成完整的DDMCMT執行代碼。
5.文檔生成功能
DDMCMT文檔應該包含該仿真的對象類屬性與普通報文中數據結構的對應表格、互動類參數與普通報文中數據結構的對應表格,另外還包括聯邦及該DDMCMT的名稱、對象類和互動類的公布定購關係、公布定購數據和運行標誌、與時間有關的數據和信息等。
DDMCMT的設計與實現
為了完成上面的功能,必須對DDMCMT進行系統的設計,下面將根據設計的流程和各接口之間的數據流向進行詳細的設計和實現。
DDMCMT的設計流程
DDMCMT開發流程就是先打開FED檔案和數據結構檔案,然後將對象類屬性(或互動類參數)與普通報文的匹配,接著用戶根據需要進行HLA方式和普通報文方式的添加或刪除,經過VC+十編譯、連線並運行就可以得到DDMCMT仿真代碼,如圖所示。
DDMCMT總體設計
DDMCMT總體設計方框圖如圖5-2所示。整個系統分為三大部分:DDMCMT、報文轉換模組、自動生成模組。DDMCMT部分主要是系統界面的設定部分;報文轉換模組將完成普通報文到HLA(或HLA到普通報文的轉換),並將其按照一定的格式存儲到HLA設定檔案中,同時它還可以將參數傳遞給DDMCMT框架代碼生成模組,供生成代碼時使用:自動生成部分在聯邦運行支撐環境下完成框架代碼和文檔資料的生成。