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