基于HLA/CORBA的分布式仿真系統(tǒng)
航天測控 董秀軍 北京 100041
近年來,隨著計算機技術(shù)、信息技術(shù)和系統(tǒng)技術(shù)的飛速發(fā)展,計算機仿真已廣泛應(yīng)用于航空、航天、通信、船舶、交通運輸、軍事、化工、生物、醫(yī)學(xué)、社會經(jīng)濟系統(tǒng)等自然科學(xué)和社會科學(xué)的各個領(lǐng)域,其重要性已廣為人知。隨著計算機仿真的應(yīng)用領(lǐng)域不斷拓寬,仿真技術(shù)有待解決的問題也越來越復(fù)雜,許多系統(tǒng)僅僅依靠傳統(tǒng)的單個仿真系統(tǒng)很難達到預(yù)期仿真目的,必須依靠多個仿真系統(tǒng)進行協(xié)同仿真才能有效解決實際問題。因此,分布式仿真技術(shù)已成為系統(tǒng)仿真領(lǐng)域的前沿和熱點之一。
考慮到分布式仿真系統(tǒng)在測控領(lǐng)域的廣闊應(yīng)用前景,航天測控公司也致力于分布式仿真開發(fā)工具及運行平臺的研究和應(yīng)用,如具有自主知識產(chǎn)權(quán)的仿真建模工具amcOMT1516及仿真運行支撐環(huán)境amcRTI1516等。
與傳統(tǒng)單個仿真系統(tǒng)相比,分布式仿真必須解決兩個問題:多仿真系統(tǒng)間的互操作和現(xiàn)有仿真系統(tǒng)的重用。為此,美國國防部(DOD)組織有關(guān)部門進行深入研究和探索,并于1995年在其建模與仿真大綱中首次提出用于產(chǎn)生計算機仿真系統(tǒng)的高層體系結(jié)構(gòu)HLA(High Level Architecture)。HLA是仿真系統(tǒng)的通用技術(shù)框架,只要按照這個框架設(shè)計、組建仿真系統(tǒng),各仿真系統(tǒng)間均能實現(xiàn)很好的互操作和重復(fù)利用。HLA技術(shù)使多個小仿真系統(tǒng)聯(lián)合起來構(gòu)成一個大型復(fù)雜分布式仿真系統(tǒng)成為可能。
HLA按照面向?qū)ο蟮乃枷牒头椒▉順?gòu)建仿真系統(tǒng),它是在面向?qū)ο蠓治雠c設(shè)計的基礎(chǔ)上劃分仿真成員和構(gòu)建仿真聯(lián)邦的技術(shù)。在基于HLA的仿真系統(tǒng)中,聯(lián)邦是指用于達到某一特定仿真目的的分布式仿真系統(tǒng),它由若干個相互作用的聯(lián)邦成員構(gòu)成。所有參與聯(lián)邦運行的應(yīng)用程序都可以稱為聯(lián)邦成員。HLA主要考慮在聯(lián)邦成員的基礎(chǔ)上如何進行聯(lián)邦集成,即如何設(shè)計聯(lián)邦成員間的交互以達到仿真的目的。在HLA框架下,一個典型的仿真聯(lián)邦的邏輯結(jié)構(gòu)如圖1所示。
在這個框架中,各聯(lián)邦成員和運行支撐環(huán)境RTI(Run-Time Infrastructure)一起構(gòu)成一個開放的、面向?qū)ο蟮姆植际椒抡嫦到y(tǒng)。RTI是通用的、相對獨立的支撐服務(wù)程序,各個聯(lián)邦成員是具體的仿真實現(xiàn)。這種體系結(jié)構(gòu)實現(xiàn)了仿真功能實現(xiàn)、仿真運行管理和底層通信三者分離,從而可使各部分相對獨立的進行開發(fā),最大程度地利用各自領(lǐng)域的最新技術(shù)來實現(xiàn)標(biāo)準(zhǔn)的功能和服務(wù)。
在利用HLA技術(shù)構(gòu)建分布式仿真系統(tǒng)時,必須要解決底層的通信傳輸問題。只有實現(xiàn)了底層通信傳輸服務(wù),各仿真成員之間才能傳送數(shù)據(jù)和命令,實現(xiàn)彼此之間的互操作。為了解決分布式計算環(huán)境中不同硬件設(shè)備和軟件系統(tǒng)的互聯(lián),增強網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計算模式中的不足等問題,對象管理組織(OMG)提出了公共對象請求代理體系結(jié)構(gòu)(CORBA),以增強軟件系統(tǒng)間的互操作能力,使構(gòu)造靈活的分布式應(yīng)用系統(tǒng)成為可能。因此,CORBA技術(shù)是解決HLA仿真系統(tǒng)中底層通信問題的有效手段。
CORBA應(yīng)用是典型的客戶服務(wù)器程序結(jié)構(gòu),其主要組件有:客戶端的服務(wù)器代理Stub、服務(wù)器的客戶端代理Skeleton、對象請求代理ORB、動態(tài)目錄服務(wù)Smart Agent和基本對象適配器BOA等。當(dāng)客戶程序試圖訪問服務(wù)程序中的某一接口時,對接口的調(diào)用就會傳遞給Stub,而Stub又把有關(guān)調(diào)用信息打包,并通過ORB、Agent和BOA傳給Skeleton,Skeleton解包取出其中參數(shù),然后調(diào)用實際的服務(wù)接口。服務(wù)程序試圖訪問客戶程序中的某一接口時過程類似。CORBA采用UDP點對點數(shù)據(jù)傳輸,具有自動定位和負(fù)載平衡功能。客戶程序無需知道服務(wù)器在什么地方、運行在什么平臺以及用什么語言實現(xiàn)的,只要雙方均符合CORBA技術(shù)規(guī)范,調(diào)用方與被調(diào)用方定能實現(xiàn)很好的交互。其實現(xiàn)原理如圖2所示。
綜上所述,HLA定義和規(guī)范了仿真規(guī)則、接口規(guī)范、對象模型模板以及聯(lián)邦開發(fā)和執(zhí)行過程模型等,CORBA提供了分布對象計算的代理架構(gòu),因此,基于HLA和CORBA技術(shù)構(gòu)建分布式仿真系統(tǒng)即能實現(xiàn)仿真應(yīng)用的互操作和重用,又能很好保證仿真系統(tǒng)具有良好的開放性和靈活性,航天測控公司基于HLA和CORBA技術(shù)構(gòu)建自己的仿真平臺,具體實現(xiàn)技術(shù)和步驟如圖3所示。在利用HLA技術(shù)構(gòu)建分布式仿真系統(tǒng)時,必須要解決底層的通信傳輸問題。只有實現(xiàn)了底層通信傳輸服務(wù),各仿真成員之間才能傳送數(shù)據(jù)和命令,實現(xiàn)彼此之間的互操作。為了解決分布式計算環(huán)境中不同硬件設(shè)備和軟件系統(tǒng)的互聯(lián),增強網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計算模式中的不足等問題,對象管理組織(OMG)提出了公共對象請求代理體系結(jié)構(gòu)(CORBA),以增強軟件系統(tǒng)間的互操作能力,使構(gòu)造靈活的分布式應(yīng)用系統(tǒng)成為可能。因此,CORBA技術(shù)是解決HLA仿真系統(tǒng)中底層通信問題的有效手段。
CORBA應(yīng)用是典型的客戶服務(wù)器程序結(jié)構(gòu),其主要組件有:客戶端的服務(wù)器代理Stub、服務(wù)器的客戶端代理Skeleton、對象請求代理ORB、動態(tài)目錄服務(wù)Smart Agent和基本對象適配器BOA等。當(dāng)客戶程序試圖訪問服務(wù)程序中的某一接口時,對接口的調(diào)用就會傳遞給Stub,而Stub又把有關(guān)調(diào)用信息打包,并通過ORB、Agent和BOA傳給Skeleton,Skeleton解包取出其中參數(shù),然后調(diào)用實際的服務(wù)接口。服務(wù)程序試圖訪問客戶程序中的某一接口時過程類似。CORBA采用UDP點對點數(shù)據(jù)傳輸,具有自動定位和負(fù)載平衡功能。客戶程序無需知道服務(wù)器在什么地方、運行在什么平臺以及用什么語言實現(xiàn)的,只要雙方均符合CORBA技術(shù)規(guī)范,調(diào)用方與被調(diào)用方定能實現(xiàn)很好的交互。其實現(xiàn)原理如圖2所示。
圖3、基于HLA和CORBA的分布式仿真系統(tǒng)實現(xiàn)步驟
假設(shè)希望將幾個計算機仿真系統(tǒng)聯(lián)合起來構(gòu)成一個大仿真系統(tǒng),例如,在已有不同生產(chǎn)機械仿真系統(tǒng)和運輸裝置仿真系統(tǒng)的基礎(chǔ)上,組建一個完整工廠的仿真系統(tǒng),或者,在某地域一個空中交通管制仿真系統(tǒng)和一個民用航空仿真系統(tǒng)基礎(chǔ)上,組建一個該地域空中交通的完整仿真系統(tǒng),并希望將來可以把軍用空中交通仿真系統(tǒng)擴展進來,都可以利用基于HLA和CORBA技術(shù)構(gòu)建的分布式仿真系統(tǒng)平臺來解決,而且這樣的需求必將是未來仿真應(yīng)用的主要需求。因此,在國防研究領(lǐng)域及其他科技領(lǐng)域中,基于HLA和CORBA的分布式仿真系統(tǒng)必將會有更加廣泛的應(yīng)用前景。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。