本發(fā)明涉及分布式計算機仿真技術(shù)領(lǐng)域,尤其涉及一種雙層動態(tài)分布式仿真平臺。
背景技術(shù):
隨著分布式計算機仿真技術(shù)的發(fā)展,擁有眾多節(jié)點的分布式仿真應(yīng)用得以實現(xiàn)。為了能工程化地開發(fā)個性化的分布式仿真系統(tǒng),業(yè)界已研發(fā)出了多種支持分布式仿真應(yīng)用開發(fā)的平臺(簡稱仿真開發(fā)平臺),國內(nèi)采用的有代表性的這類平臺包括基于HLA體系結(jié)構(gòu)的仿真開發(fā)平臺,以及DWK體系結(jié)構(gòu)的仿真開發(fā)平臺:
1、仿真高層體系結(jié)構(gòu)(HLA)。
HLA是分布交互仿真的高層體系結(jié)構(gòu),它不考慮如何由對象構(gòu)建成員,而是在假設(shè)已有成員的情況下考慮如何構(gòu)建聯(lián)邦。HLA主要考慮在聯(lián)邦成員的基礎(chǔ)上如何進行聯(lián)邦集成,即如何設(shè)計聯(lián)邦成員間的交互以達到仿真的目的。
HLA的定義包括三個部分:(1)HLA規(guī)則,它定義了在聯(lián)邦設(shè)計階段必須遵循的基本準(zhǔn)則,確保聯(lián)邦中仿真的正確交互,并描述了仿真和聯(lián)邦成員的責(zé)任以及它們同RTI之間的關(guān)系;(2)HLA接口規(guī)范,它定義了在仿真系統(tǒng)運行過程中,支持聯(lián)邦成員之間互操作的標(biāo)準(zhǔn)服務(wù),確定了每個成員必須提供的“回調(diào)”功能;(3)HLA對象模型模板,它是一種標(biāo)準(zhǔn)的結(jié)構(gòu)框架(或模板),是描述HLA對象模型的關(guān)鍵部件,為FOM/SOM建立了數(shù)據(jù)格式。HLA的關(guān)鍵組成部分是接口規(guī)范,它定義的標(biāo)準(zhǔn)服務(wù)可分為六大類,即聯(lián)邦管理服務(wù)、聲明管理服務(wù)、對象管理服務(wù)、時間管理服務(wù)、所有權(quán)管理服務(wù)和數(shù)據(jù)分發(fā)管理服務(wù)。這六大類服務(wù)實際上反映了為有效解決聯(lián)邦成員間的互操作所必須實現(xiàn)的功能。DMSO HLA 1.3接口規(guī)范一共定義了129個服務(wù),這些服務(wù)可分為兩種類型:一類是由聯(lián)邦成員調(diào)用,RTI提供服務(wù);另一類是由RTI調(diào)用,聯(lián)邦成員響應(yīng)。
2、DWK是北京神州普惠科技股份有限公司自主研發(fā)的基于組件化建模、實時數(shù)據(jù)分發(fā)服務(wù)(DDS)與HLA仿真技術(shù)的建模仿真平臺,提供一系列分布式仿真系統(tǒng)開發(fā)工具,包括仿真組件模型開發(fā)、模型可視化裝配、仿真實體開發(fā)、想定編輯與快速預(yù)演、實驗設(shè)計、實驗環(huán)境配置、仿真管理控制、仿真執(zhí)行引擎、數(shù)據(jù)采集與分析等系統(tǒng)仿真必需的多種開放與可視化基礎(chǔ)工具,通過接口適配器、SDK開發(fā)包可實現(xiàn)多粒度、多層次、虛實一體及異地聯(lián)合仿真。DWK可滿足復(fù)雜仿真系統(tǒng)開發(fā)與運行環(huán)境支撐需求,實現(xiàn)了對系統(tǒng)仿真應(yīng)用全生命周期的支持。分布式仿真平臺可應(yīng)用于分析論證、模擬訓(xùn)練、試驗評估等仿真應(yīng)用系統(tǒng)的開發(fā)、集成、運行和管理,為各領(lǐng)域各層級的仿真系統(tǒng)定制提供總體解決方案。
上述兩種仿真開發(fā)平臺缺點主要在三個方面,一是由于定義仿真應(yīng)用系統(tǒng)的技術(shù)復(fù)雜,需要仿真應(yīng)用軟件的開發(fā)人員學(xué)習(xí)和熟悉整套開發(fā)平臺的架構(gòu)和應(yīng)用細節(jié),實施的難度和成本較高;二是維護仿真成員和仿真組織的效率較低,特別是當(dāng)存在大量仿真節(jié)點的情況下,仿真系統(tǒng)的運行效率將很快下降;三是部署仿真節(jié)點受到的限制比較嚴(yán)格,通常一臺高性能計算上所部署的仿真節(jié)點只能是幾十個到幾百個。
以上三個方面的缺陷是由于采用了當(dāng)前的分布式仿真技術(shù)架構(gòu)面產(chǎn)生的;鑒于此,有必要進行深入研究,以獲得新的分布式仿真技術(shù)架構(gòu)技術(shù),從而解決上述三個方面的缺陷。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種雙層動態(tài)分布式仿真平臺,可以簡化分布式仿真應(yīng)用軟件的開發(fā)難度,提升分布式仿真應(yīng)用系統(tǒng)的運行效率,增加分布式仿真節(jié)點的部署密度,從而提高分布式仿真應(yīng)用系統(tǒng)開發(fā)效率并節(jié)省開發(fā)和應(yīng)用成本。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
一種雙層動態(tài)分布式仿真平臺,包括:由分布式仿真數(shù)據(jù)交互層次與分布式仿真功能實現(xiàn)層次構(gòu)成的雙層分布式仿真體系結(jié)構(gòu);其中:
所述分布式仿真數(shù)據(jù)交互層次,定義了采用不同數(shù)據(jù)結(jié)構(gòu)代表不同仿真節(jié)點的種類以及仿真節(jié)點之間的數(shù)據(jù)交換方式,實現(xiàn)網(wǎng)絡(luò)透明的仿真節(jié)點之間的相互通信機制,使得網(wǎng)絡(luò)任何位置的仿真節(jié)點之間能夠相互連接、相互溝通和相互交流;
分布式仿真功能實現(xiàn)層次,定義了每一種類的仿真節(jié)點所具備的仿真功能;當(dāng)接收外部信號觸發(fā)后,依據(jù)每一個仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)所包含的特征數(shù)據(jù)來識別仿真節(jié)點的類型,并實現(xiàn)相應(yīng)的仿真功能。
仿真功能由兩類外部信號觸發(fā),第一類是外部傳入的仿真時鐘信號,即表示當(dāng)前的仿真時間值的時鐘;第二類是外部傳入的仿真事件信號,每一種類的仿真節(jié)點只能接收有限類別的仿真事件信號,每一類別的仿真事件信號都帶有相應(yīng)的事件信息數(shù)據(jù),再按照仿真節(jié)點的種類和事件信息數(shù)據(jù)來實現(xiàn)相應(yīng)的仿真功能。
仿真事件分為兩類,第一類是系統(tǒng)仿真事件,其包括時鐘事件;第二類是仿真功能事件,包括:主動仿真事件,即由某一仿真節(jié)點主動向其關(guān)聯(lián)的其他仿真節(jié)點發(fā)送的仿真事件;被動仿真事件,即由某一仿真節(jié)點在接收到其他仿真節(jié)點的事件后,向發(fā)送的仿真節(jié)點返回的仿真事件。
所述分布式仿真數(shù)據(jù)交互層次中包含了采用分層結(jié)構(gòu)設(shè)置的多個仿真節(jié)點;通過仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)來描述與其他仿真節(jié)點的關(guān)聯(lián)關(guān)系;
仿真事件的發(fā)送能夠跨網(wǎng)絡(luò)在不同仿真節(jié)點之間傳遞,通過分布式仿真數(shù)據(jù)交互層次實現(xiàn)了仿真節(jié)點之間收發(fā)仿真事件的透明性,即一個仿真節(jié)點只要具有另一仿真節(jié)點的編號,即可向相應(yīng)仿真節(jié)點發(fā)送仿真事件。
仿真平臺的仿真過程初始化采用了基于XML初始化文件的集成初始化技術(shù),通過三個步驟來實現(xiàn)仿真過程的初始化;其中,第一步驟是基礎(chǔ)環(huán)境初始化,即準(zhǔn)備好參與仿真的各個計算機上的仿真系統(tǒng),每一個計算機上的仿真系統(tǒng)稱為一個仿真成員;第二步驟是仿真節(jié)點初始化,即按照初始化文件的內(nèi)容,在各個仿真成員上初始化屬于該仿真成員的各個仿真節(jié)點,初始化后的仿真節(jié)點都具有一個唯一的編號,并且,在仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)中,同時包含了相關(guān)聯(lián)的其他仿真節(jié)點的編號;第三步驟是仿真過程初始化,即按照初始化文件的內(nèi)容,設(shè)定仿真過程的全局起始狀態(tài),包括全局仿真時鐘、仿真過程時間推進比值以及全局預(yù)定義仿真事件列表。
針對具有每一種特征的數(shù)據(jù)結(jié)構(gòu),開發(fā)與其相應(yīng)的仿真功能;仿真功能通過對仿真事件的響應(yīng)來現(xiàn)實;所有的仿真節(jié)點都要定時接收并處理系統(tǒng)仿真事件,此外,不同的仿真節(jié)點還可能接收并處理若干種仿真功能事件。
系統(tǒng)仿真事件的處理流程如下:
接收并更新本地時鐘;按當(dāng)前時鐘,在發(fā)送事件列表中選出可發(fā)送事件;依次發(fā)送選出的可發(fā)送事件;將發(fā)送后的事件移入已發(fā)送事件列表。
仿真功能事件的處理流程如下:
接收仿真功能事件;
按照事件的定義,改變本仿真節(jié)點數(shù)據(jù)結(jié)構(gòu)中存儲的內(nèi)容,從而更新本仿真節(jié)點的狀態(tài);
在更新本仿真節(jié)點狀態(tài)的過程中,如果需要向相關(guān)聯(lián)的節(jié)點發(fā)送事件,則生成事件并加入發(fā)送事件列表;
在更新本節(jié)點狀態(tài)的過程后,如果需要向發(fā)送事件的節(jié)點返回事件,則生成返回事件并加入發(fā)送事件列表。
由上述本發(fā)明提供的技術(shù)方案可以看出,1)可大規(guī)模地增加仿真節(jié)點的部署密度,一臺普通的計算機設(shè)備上可部署5000個仿真節(jié)點,一臺高性能的計算機設(shè)備上可部署10000個以上仿真節(jié)點,從而支持更大規(guī)模的仿真過程。2)顯著地簡化了仿真過程的初始化過程,通過基于XML初始化文件的集成初始化技術(shù),顯著提高了仿真過程初始化的自動化程度,從而提高了仿真應(yīng)用系統(tǒng)的啟動執(zhí)行效率。3)顯著地簡化了仿真功能開發(fā)的復(fù)雜性,將仿真功能的開發(fā)統(tǒng)一為針對兩類仿真事件的開發(fā),即仿真時鐘事件和仿真功能事件,并統(tǒng)一了兩類事件各自的總體開發(fā)流程?;谝陨先齻€優(yōu)點,可以快速地初始化具有大規(guī)模節(jié)點的仿真過程,可以用較少的計算機設(shè)備在網(wǎng)絡(luò)上實現(xiàn)較大規(guī)模的仿真實驗,可以節(jié)省開發(fā)應(yīng)用的成本和時間。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
圖1為本發(fā)明實施例提供的一種雙層動態(tài)分布式仿真平臺的示意圖;
圖2為本發(fā)明實施例提供的分層結(jié)構(gòu)的仿真節(jié)點示意圖;
圖3為本發(fā)明實施例提供的仿真過程的初始化流程圖;
圖4為本發(fā)明實施例提供的時鐘事件的處理流程圖;
圖5為本發(fā)明實施例提供的仿真功能事件的處理流程圖。
具體實施方式
下面結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。
本發(fā)明實施例提供一種雙層動態(tài)分布式仿真平臺,該仿真平臺采用雙層動態(tài)分布式仿真體系結(jié)構(gòu),以支撐大規(guī)模分布式仿真應(yīng)用系統(tǒng)的開發(fā)和運行;同時,基于這種分布式仿真系統(tǒng)結(jié)構(gòu),實現(xiàn)與其相配套的仿真過程初始化技術(shù)及支撐工具,并基于這種分布式仿真系統(tǒng)結(jié)構(gòu),實現(xiàn)與其相配套的仿真組件開發(fā)技術(shù)及其支撐工具。
本發(fā)明實施例中,所述雙層動態(tài)分布式仿真平臺包括:如圖1所示的,由分布式仿真數(shù)據(jù)交互層次與分布式仿真功能實現(xiàn)層次構(gòu)成的雙層分布式仿真體系結(jié)構(gòu);其中:
所述分布式仿真數(shù)據(jù)交互層次,定義了采用不同數(shù)據(jù)結(jié)構(gòu)代表不同仿真節(jié)點的種類以及仿真節(jié)點之間的數(shù)據(jù)交換方式,實現(xiàn)網(wǎng)絡(luò)透明的仿真節(jié)點之間的相互通信機制,使得網(wǎng)絡(luò)任何位置的仿真節(jié)點之間能夠相互連接、相互溝通和相互交流;
分布式仿真功能實現(xiàn)層次,定義了每一種類的仿真節(jié)點所具備的仿真功能;當(dāng)接收外部信號觸發(fā)后,依據(jù)每一個仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)所包含的特征數(shù)據(jù)來識別仿真節(jié)點的類型,并實現(xiàn)相應(yīng)的仿真功能。
本發(fā)明實施例中,仿真功能由兩類外部信號觸發(fā),第一類是外部傳入的仿真時鐘信號,即表示當(dāng)前的仿真時間值的時鐘;第二類是外部傳入的仿真事件信號,每一種類的仿真節(jié)點只能接收有限類別的仿真事件信號,每一類別的仿真事件信號都帶有相應(yīng)的事件信息數(shù)據(jù),再按照仿真節(jié)點的種類和事件信息數(shù)據(jù)來實現(xiàn)相應(yīng)的仿真功能。
本發(fā)明實施例中,仿真事件分為兩類,第一類是系統(tǒng)仿真事件,其包括時鐘事件;第二類是仿真功能事件,包括:主動仿真事件,即由某一仿真節(jié)點主動向其關(guān)聯(lián)的其他仿真節(jié)點發(fā)送的仿真事件;被動仿真事件,即由某一仿真節(jié)點在接收到其他仿真節(jié)點的事件后,向發(fā)送的仿真節(jié)點返回的仿真事件。
針對不同領(lǐng)域的分布式仿真應(yīng)用,經(jīng)常會有將仿真節(jié)點設(shè)置成多個層次結(jié)構(gòu)的需要,針對這一問題,本發(fā)明實施例中,在分布式仿真數(shù)據(jù)交互層次中采用分層結(jié)構(gòu)設(shè)置多個仿真節(jié)點,通過仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)來描述與其他仿真節(jié)點的關(guān)聯(lián)關(guān)系。如圖2所示,編號為01的仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)中包含了指向02和03節(jié)點的關(guān)聯(lián)關(guān)系,同樣,編號為02的仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)中包含了指向04和05節(jié)點的關(guān)聯(lián)關(guān)系,編號為03的仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)中包含了指向06和07節(jié)點的關(guān)聯(lián)關(guān)系。這樣,通過在結(jié)點的數(shù)據(jù)結(jié)構(gòu)中包含相關(guān)聯(lián)的其他節(jié)點的指向數(shù)據(jù),這可以實現(xiàn)動態(tài)地定義仿真節(jié)點之間層次關(guān)系的功能。
此外,仿真事件的發(fā)送能夠跨網(wǎng)絡(luò)在不同仿真節(jié)點之間傳遞,通過分布式仿真數(shù)據(jù)交互層次實現(xiàn)了仿真節(jié)點之間收發(fā)仿真事件的透明性,即一個仿真節(jié)點只要具有另一仿真節(jié)點的編號,即可向相應(yīng)仿真節(jié)點發(fā)送仿真事件。
本發(fā)明實施例中,還提供一種仿真過程集成初始化技術(shù)。具體來說,仿真平臺的仿真過程初始化可以采用基于XML初始化文件的集成初始化技術(shù),主要通過如圖3所示的三個步驟來實現(xiàn)仿真過程的初始化;其中,第一步驟是基礎(chǔ)環(huán)境初始化,即準(zhǔn)備好參與仿真的各個計算機上的仿真系統(tǒng),每一個計算機上的仿真系統(tǒng)稱為一個仿真成員;第二步驟是仿真節(jié)點初始化,即按照初始化文件的內(nèi)容,在各個仿真成員上初始化屬于該仿真成員的各個仿真節(jié)點,初始化后的仿真節(jié)點都具有一個唯一的編號,并且,在仿真節(jié)點的數(shù)據(jù)結(jié)構(gòu)中,同時包含了相關(guān)聯(lián)的其他仿真節(jié)點的編號;第三步驟是仿真過程初始化,主要包括:仿真狀態(tài)、參數(shù)的設(shè)置,即按照初始化文件的內(nèi)容,設(shè)定仿真過程的全局起始狀態(tài),包括全局仿真時鐘、仿真過程時間推進比值以及全局預(yù)定義仿真事件列表。
另外,本發(fā)明實施例還提供一種仿真組件結(jié)構(gòu)驅(qū)動開發(fā)技術(shù),仿真組件開發(fā)采用了基于仿真節(jié)點數(shù)據(jù)結(jié)構(gòu)的分類開發(fā)方法,即針對具有每一種特征的數(shù)據(jù)結(jié)構(gòu),開發(fā)與其相應(yīng)的仿真功能;仿真功能通過對仿真事件的響應(yīng)來現(xiàn)實;所有的仿真節(jié)點都要定時接收并處理系統(tǒng)仿真事件,此外,不同的仿真節(jié)點還可能接收并處理若干種仿真功能事件。
其中,系統(tǒng)仿真事件的處理流程如圖4所示,主要包括:
接收并更新本地時鐘;
按當(dāng)前時鐘,在發(fā)送事件列表中選出可發(fā)送事件;
依次發(fā)送選出的可發(fā)送事件;
將發(fā)送后的事件移入已發(fā)送事件列表。
仿真功能事件的處理流程如圖5所示,主要包括:
接收仿真功能事件;
按照事件的定義,改變本仿真節(jié)點數(shù)據(jù)結(jié)構(gòu)中存儲的內(nèi)容,從而更新本仿真節(jié)點的狀態(tài);
在更新本仿真節(jié)點狀態(tài)的過程中,如果需要向相關(guān)聯(lián)的節(jié)點發(fā)送事件,則生成事件并加入發(fā)送事件列表;
在更新本節(jié)點狀態(tài)的過程后,如果需要向發(fā)送事件的節(jié)點返回事件,則生成返回事件并加入發(fā)送事件列表。
本發(fā)明實施例上述方案,主要獲得具有如下優(yōu)點:
1)可大規(guī)模地增加仿真節(jié)點的部署密度,一臺普通的計算機設(shè)備上可部署5000個仿真節(jié)點,一臺高性能的計算機設(shè)備上可部署10000個以上仿真節(jié)點,從而支持更大規(guī)模的仿真過程。
2)顯著地簡化了仿真過程的初始化過程,通過基于XML初始化文件的集成初始化技術(shù),顯著提高了仿真過程初始化的自動化程度,從而提高了仿真應(yīng)用系統(tǒng)的啟動執(zhí)行效率。
3)顯著地簡化了仿真功能開發(fā)的復(fù)雜性,將仿真功能的開發(fā)統(tǒng)一為針對兩類仿真事件的開發(fā),即仿真時鐘事件和仿真功能事件,并統(tǒng)一了兩類事件各自的總體開發(fā)流程。
基于以上三個優(yōu)點,可以快速地初始化具有大規(guī)模節(jié)點的仿真過程,可以用較少的計算機設(shè)備在網(wǎng)絡(luò)上實現(xiàn)較大規(guī)模的仿真實驗,可以節(jié)省開發(fā)應(yīng)用的成本和時間。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準(zhǔn)。