專利名稱:基于HLA的Fortran仿真模型中間件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于HLA的Fortran仿真模型平。
背景技術(shù):
分布式仿真是傳統(tǒng)仿真技術(shù)新的發(fā)展階段,它主要研究若干互聯(lián)節(jié)點(diǎn)上的仿真應(yīng)用正確、協(xié)同、高效運(yùn)行的問題。分布式仿真先后經(jīng)歷了不同的技術(shù)協(xié)議階段聚合級(jí)仿真協(xié)議 ALSP (Aggregate Level Simulation Protocol),分布交互仿真 DIS (DistributedInteractive Simulation),高層體系結(jié)構(gòu) HLA(High Level Architecture)等。
HLA是由美國(guó)國(guó)防部(DoD, Department of Defense)最早于1995年提出,它是一個(gè)針對(duì)分布式仿真提出的通用體系結(jié)構(gòu),具有廣泛應(yīng)用范圍。隨著2000年,HLA成為IEEE1516標(biāo)準(zhǔn),確立了 HLA作為分布式仿真領(lǐng)域通用標(biāo)準(zhǔn)的地位(以下如無特殊說明,分布式仿真指基于HLA的分布式仿真)。作為HLA的具體實(shí)現(xiàn),RTI提供了該框架的所有服務(wù)。在基于HLA的分布式仿真系統(tǒng)中,聯(lián)邦(Federation)指能夠完成特定仿真任務(wù)的分布式系統(tǒng),聯(lián)邦成員即為各個(gè)分布節(jié)點(diǎn)上的仿真應(yīng)用。這樣,在HLA中就實(shí)現(xiàn)了仿真功能實(shí)現(xiàn)、仿真運(yùn)行支撐管理和底層通訊的分離,支持各自相對(duì)獨(dú)立的開發(fā)工作。HLA技術(shù)極大地促進(jìn)了分布式仿真的發(fā)展。然而,大量原有的仿真模型是采取各種不同手段開發(fā)的,如Matlab、Adams、Abaqus等商用軟件或是Fortran等不同于RTI的開發(fā)語言。在分布式仿真中,如果要重新開發(fā)現(xiàn)有的大量模型,將是一個(gè)耗時(shí)耗力的工作。HLA標(biāo)準(zhǔn)為提高模型的可重用性提供了一種技術(shù)路線,然而,這些異構(gòu)的仿真模型與RTI的集成問題,HLA標(biāo)準(zhǔn)無法解決,需要在對(duì)HLA標(biāo)準(zhǔn)和仿真模型都有充分了解的基礎(chǔ)上,開發(fā)相應(yīng)的適配器,實(shí)現(xiàn)模型重用和異構(gòu)模型之間的互操作。
發(fā)明內(nèi)容
為了克服上述的缺陷,本發(fā)明提供一種令Fortran仿真模型可加入HLA分布式系統(tǒng)的基于HLA的Fortran仿真模型中間件。為達(dá)到上述目的,本發(fā)明提供一種基于HLA的Fortran仿真模型中間件,包括RTI系統(tǒng)和RTI標(biāo)準(zhǔn)聯(lián)邦成員單元,所述RTI系統(tǒng)包括HLA標(biāo)準(zhǔn)服務(wù)接口 IibRTI和RTI底層軟件模塊,為仿真模型提供的服務(wù)包括仿真聯(lián)邦管理服務(wù)、仿真成員聲明管理服務(wù)、仿真對(duì)象管理服務(wù)、仿真時(shí)間管理服務(wù)、所有權(quán)管理服務(wù)、數(shù)據(jù)分發(fā)管理服務(wù)、以及運(yùn)行支撐服務(wù);所述仿真模型平臺(tái)還包括適配器單元、Fortran仿真模型單元及RTI標(biāo)準(zhǔn)聯(lián)邦成員單元;適配器單元,接收RTI系統(tǒng)發(fā)出的指令并將其轉(zhuǎn)發(fā)給Fortran仿真模型單元,接收Fortran仿真模型單元發(fā)出的指令并將其轉(zhuǎn)發(fā)RTI系統(tǒng);Fortran仿真模型單元,作為RTI系統(tǒng)的聯(lián)邦成員,用于通過適配器單元向RTI系統(tǒng)發(fā)出指令,以及接收適配器單元轉(zhuǎn)發(fā)的RTI系統(tǒng)指令。特別是,所述適配器單元包括封裝文件模塊、回調(diào)函數(shù)模塊和RTI服務(wù)模塊;
封裝文件模塊,一側(cè)接口連接所述RTI系統(tǒng),另一側(cè)接口分別連接回調(diào)函數(shù)模塊和RTI服務(wù)模塊;接收RTI系統(tǒng)發(fā)出的回調(diào)函數(shù)指令后將所述回調(diào)函數(shù)發(fā)送給回調(diào)函數(shù)模塊,接收RTI服務(wù)模塊轉(zhuǎn)發(fā)的Fortran仿真模型服務(wù)請(qǐng)求后將所述服務(wù)請(qǐng)求發(fā)送給RTI系統(tǒng),實(shí)現(xiàn)RTI系統(tǒng)與Fortran仿真模型單元間的雙向通信,屏蔽兩者之間的語言差異障礙;回調(diào)函數(shù)模塊,一側(cè)接口連接所述封裝文件模塊,另一側(cè)接口連接所述Fortran仿真模型單元;接收封裝文件模塊轉(zhuǎn)發(fā)的RTI系統(tǒng)回調(diào)函數(shù),傳遞給Fortran仿真模型單元;RTI服務(wù)模塊,一側(cè)接口連接所述封裝文件模塊,另一側(cè)接口連接所述Fortran仿真模型單元;接收Fortran仿真模型單元的服務(wù)請(qǐng)求,并將其傳遞給封裝文件模塊。特別是,封裝文件模塊采用C++語言編寫,用于RTI系統(tǒng)與Fortran仿真模型單元間的雙向通信,屏蔽語言障礙;回調(diào)函數(shù)模塊和RTI服務(wù)模塊采用Fortran語言編寫。特別是,通過對(duì)象文件層面實(shí)現(xiàn)Fortran語言模塊與C++語言模塊的互通。特別是,F(xiàn)ortran語言形成的模塊與C++語言形成的模塊通過c語言程序?qū)崿F(xiàn)在堆棧管理方面、目標(biāo)例程命名方面和參數(shù)傳遞方面的匹配。特別是,F(xiàn)ortran語言形成的模塊與C++語言形成的模塊之間通過試湊方法實(shí)現(xiàn)數(shù)據(jù)類型匹配。本發(fā)明基于HLA的Fortran仿真模型中間件設(shè)有適配器單元,該適配器單元設(shè)有與RTI系統(tǒng)和Fortran仿真模型單元連接的接口,滿足協(xié)同仿真中Fortran仿真模型單元的集成需求,提高了協(xié)同仿真的通用性和已有Fortran仿真模型單元的可重用性??s短Fortran語言形成的聯(lián)邦成員的開發(fā)周期,開發(fā)門檻顯著降低,并取得很好的經(jīng)濟(jì)效益。本發(fā)明基于HLA的Fortran仿真模型中間件為應(yīng)用混合編程技術(shù)將Fortran語言和C++語言之間的障礙屏蔽在適配器單元內(nèi)部,實(shí)現(xiàn)了在RTI上用Fortran語言開發(fā)聯(lián)邦成員的目標(biāo)。
圖I為本發(fā)明基于HLA的Fortran仿真適配器單元優(yōu)選實(shí)施例接口示意圖。圖2為圖I所示優(yōu)選實(shí)施例原理示意圖。圖3為圖I所示優(yōu)選實(shí)施例應(yīng)用示意圖。
具體實(shí)施例方式下面結(jié)合說明書附圖和實(shí)施例對(duì)本發(fā)明做詳細(xì)描述。優(yōu)選實(shí)施例一如圖I所示,F(xiàn)ortran仿真模型單元為Fortran聯(lián)邦成員,在Fortran聯(lián)邦成員和RTI系統(tǒng)之間設(shè)置適配器單元,通過適配器單元來屏蔽不同語言之間的鴻溝,讓開發(fā)者用Fortran語言開發(fā)聯(lián)邦成員的過程簡(jiǎn)單、可行。與Fortran聯(lián)邦成員同時(shí)存在的還有C++聯(lián)邦成員,方便仿真系統(tǒng)的使用。RTI系統(tǒng)單元為所述Fortran仿真模型單元提供下述服務(wù)仿真聯(lián)邦管理服務(wù),完成創(chuàng)建、動(dòng)態(tài)控制、修改和刪除聯(lián)邦執(zhí)行;
仿真成員聲明管理服務(wù),虛擬實(shí)驗(yàn)要求每個(gè)參加聯(lián)邦執(zhí)行的成員向協(xié)同仿真運(yùn)行互操作支撐系統(tǒng)聲明其要求產(chǎn)生的數(shù)據(jù)內(nèi)容,和/或接收的數(shù)據(jù)內(nèi)容;
仿真對(duì)象管理服務(wù),一組服務(wù)處理對(duì)象的登記、修改、刪除和屬性/交互的發(fā)送與接收,對(duì)象通過發(fā)送屬性更新或交互來傳送對(duì)象狀態(tài)信息或事件;仿真時(shí)間管理服務(wù),提供控制各成員在仿真時(shí)間軸上的推進(jìn),令協(xié)同仿真運(yùn)行互操作支撐系統(tǒng)能以設(shè)定的時(shí)間、方式和順序?qū)碜猿蓡T的事件轉(zhuǎn)發(fā)給相應(yīng)的成員;所有權(quán)管理服務(wù),負(fù)責(zé)聯(lián)邦內(nèi)成員間對(duì)象實(shí)例屬性所有權(quán)的轉(zhuǎn)移,所述轉(zhuǎn)移用來支持聯(lián)邦內(nèi)對(duì)象實(shí)例的協(xié)作建模;數(shù)據(jù)分發(fā)管理服務(wù),實(shí)現(xiàn)聯(lián)邦成員提供傳輸和接受無關(guān)數(shù)據(jù)的無謂消耗的減少;
以及運(yùn)行支撐服務(wù),描述參與聯(lián)邦的成員能使用的包括名稱與句柄的轉(zhuǎn)換、多種開關(guān)的設(shè)置、操作域相關(guān)服務(wù)和RTI啟動(dòng)終止。如圖2所示,適配器單元包括封裝文件模塊、回調(diào)函數(shù)模塊和RTI服務(wù)模塊。其中,封裝文件模塊接收RTI系統(tǒng)發(fā)出的回調(diào)函數(shù)指令后將其發(fā)送給回調(diào)函數(shù)模塊,回調(diào)函數(shù)模塊接收該回調(diào)函數(shù)后傳遞給Fortran仿真模型;Fortran仿真模型將服務(wù)請(qǐng)求經(jīng)過RTI服務(wù)模塊發(fā)送至封裝文件模塊,封裝文件模塊將該服務(wù)請(qǐng)求發(fā)送給RTI系統(tǒng)。通過上述過程實(shí)現(xiàn)RTI系統(tǒng)與Fortran仿真模型單元的雙向通信,屏蔽兩者之間的語言差異障礙。本優(yōu)選實(shí)施例基于HLA的Fortran仿真模型中間件設(shè)有適配器單元,該適配器單元設(shè)有與RTI系統(tǒng)和Fortran仿真模型單元連接的接口,滿足協(xié)同仿真中Fortran仿真模型單元的集成需求,提高了協(xié)同仿真的通用性和已有Fortran仿真模型單元的可重用性??s短Fortran語言形成的聯(lián)邦成員的開發(fā)周期,開發(fā)門檻顯著降低,并取得很好的經(jīng)濟(jì)效
Mo優(yōu)選實(shí)施例二 從軟件(計(jì)算機(jī)語言)的層面理解本發(fā)明,使用C++語言編寫的聯(lián)邦成員可以直接通過dll與TH_RTI進(jìn)行交互(調(diào)用服務(wù)和響應(yīng)回調(diào)函數(shù)),而使用Fortran編寫的聯(lián)邦成員與TH_RTI交互的問題,在本質(zhì)上即為如何實(shí)現(xiàn)Fortran語言和C++語言的互通問題。需要在Fortran聯(lián)邦成員和TH_RTI (具體說即是RTIa)之間提供一個(gè)橋梁作用的適配器,由該適配器來完成Fortran語言和C++語言的互通任務(wù)。本發(fā)明基于HLA的Fortran仿真模型是通過對(duì)象文件層面實(shí)現(xiàn)Fortran語言模塊與C++語言模塊的互通。Fortran語言模塊與C++語言模塊通過c語言程序?qū)崿F(xiàn)在堆棧管理方面、目標(biāo)例程命名方面和參數(shù)傳遞方面的匹配。Fortran語言模塊與C++語言模塊之間通過試湊的方法實(shí)現(xiàn)數(shù)據(jù)類型匹配。通過定義與標(biāo)準(zhǔn)接口對(duì)應(yīng)函數(shù)以外的函數(shù),如rti0n(),rtiOffO等,實(shí)現(xiàn)面向過程的Fortran語言模塊與面向?qū)ο蟮腃++語言模塊的整合。從軟件開發(fā)的角度來看,從代碼到可執(zhí)行的軟件分為三個(gè)階段,即代碼、對(duì)象文件和可執(zhí)行文件(或庫(kù)文件),與此對(duì)應(yīng),實(shí)現(xiàn)不同軟件模塊的互通也可分為三個(gè)層面源碼層面、對(duì)象文件層面、和可執(zhí)行文件(或庫(kù)文件)層面。源碼層面的互通適用于使用同一種編譯器的語言,通常是在一種語言族內(nèi)適用,比如C和C++。可執(zhí)行文件(或庫(kù)文件)層面的互通是一種比較通用的方法,但是對(duì)于目前面臨的問題,存在一些困難Fortran與C++相比是一種早期語言,存在Fortran語言寫的動(dòng)態(tài)庫(kù)由c或C++進(jìn)行調(diào)用的需求,但是反之則不符合技術(shù)的發(fā)展規(guī)律。所以最終選取從對(duì)象文件層面實(shí)現(xiàn)軟件模塊互通的技術(shù)路線。該技術(shù)路線要求調(diào)用約定的匹配、數(shù)據(jù)類型的匹配、以及面向過程技術(shù)和面向?qū)ο蠹夹g(shù)的整合。不同的調(diào)用約定主要會(huì)影響堆棧管理、目標(biāo)例程命名和參數(shù)傳遞。其中,不同的調(diào)用約定對(duì)應(yīng)的調(diào)用堆棧管理者不同(調(diào)用程序、被調(diào)用例程),會(huì)影響參數(shù)可變例程的調(diào)用;不同的調(diào)用約定會(huì)導(dǎo)致不同的命名規(guī)則,如大小寫、特殊字符(下劃線、O等)的加A ;表格IFortran與C/C++的命名約定
權(quán)利要求
1.一種基于HLA的Fortran仿真模型中間件,包括RTI系統(tǒng)和RTI標(biāo)準(zhǔn)聯(lián)邦成員單元, 所述RTI系統(tǒng)包括HLA標(biāo)準(zhǔn)服務(wù)接口 libRTI和RTI底層軟件模塊,為仿真模型提供的服務(wù) 包括仿真聯(lián)邦管理服務(wù)、仿真成員聲明管理服務(wù)、仿真對(duì)象管理服務(wù)、仿真時(shí)間管理服務(wù)、 所有權(quán)管理服務(wù)、數(shù)據(jù)分發(fā)管理服務(wù)、以及運(yùn)行支撐服務(wù);其特征在于所述仿真模型平臺(tái) 還包括適配器單元、Fortran仿真模型單元及RTI標(biāo)準(zhǔn)聯(lián)邦成員單元;適配器單元,接收RTI系統(tǒng)發(fā)出的指令并將其轉(zhuǎn)發(fā)給Fortran仿真模型單元,接收 Fortran仿真模型單元發(fā)出的指令并將其轉(zhuǎn)發(fā)RTI系統(tǒng);Fortran仿真模型單元,作為RTI系統(tǒng)的聯(lián)邦成員,用于通過適配器單元向RTI系統(tǒng)發(fā) 出指令,以及接收適配器單元轉(zhuǎn)發(fā)的RTI系統(tǒng)指令。
2.根據(jù)權(quán)利要求1所述的基于HLA的Fortran仿真模型中間件,其特征在于所述適 配器單元包括封裝文件模塊、回調(diào)函數(shù)模塊和RTI服務(wù)模塊;封裝文件模塊,一側(cè)接口連接所述RTI系統(tǒng),另一側(cè)接口分別連接回調(diào)函數(shù)模塊和RTI 服務(wù)模塊;接收RTI系統(tǒng)發(fā)出的回調(diào)函數(shù)指令后將所述回調(diào)函數(shù)發(fā)送給回調(diào)函數(shù)模塊,接 收RTI服務(wù)模塊轉(zhuǎn)發(fā)的Fortran仿真模型服務(wù)請(qǐng)求后將所述服務(wù)請(qǐng)求發(fā)送給RTI系統(tǒng),實(shí) 現(xiàn)RTI系統(tǒng)與Fortran仿真模型單元間的雙向通信,屏蔽兩者之間的語言差異障礙;回調(diào)函數(shù)模塊,一側(cè)接口連接所述封裝文件模塊,另一側(cè)接口連接所述Fortran仿真 模型單元;接收封裝文件模塊轉(zhuǎn)發(fā)的RTI系統(tǒng)回調(diào)函數(shù),傳遞給Fortran仿真模型單元;RTI服務(wù)模塊,一側(cè)接口連接所述封裝文件模塊,另一側(cè)接口連接所述Fortran仿真模 型單元;接收Fortran仿真模型單元的服務(wù)請(qǐng)求,并將其傳遞給封裝文件模塊。
3.根據(jù)權(quán)利要求1所述的基于HLA的Fortran仿真模型中間件,其特征在于封裝文 件模塊采用C++語言編寫,用于RTI系統(tǒng)與Fortran仿真模型單元間的雙向通信,屏蔽語言 障礙;回調(diào)函數(shù)模塊和RTI服務(wù)模塊采用Fortran語言編寫。
4.根據(jù)權(quán)利要求1所述的基于HLA的Fortran仿真模型中間件,其特征在于通過對(duì) 象文件層面實(shí)現(xiàn)Fortran語言模塊與C++語言模塊的互通。
5.根據(jù)權(quán)利要求1所述的基于HLA的Fortran仿真模型中間件,其特征在于Fortran 語言形成的模塊與C++語言形成的模塊通過c語言程序?qū)崿F(xiàn)在堆棧管理方面、目標(biāo)例程命 名方面和參數(shù)傳遞方面的匹配。
6.根據(jù)權(quán)利要求1所述的基于HLA的Fortran仿真模型中間件,其特征在于Fortran 語言形成的模塊與C++語言形成的模塊之間通過試湊方法實(shí)現(xiàn)數(shù)據(jù)類型匹配。
全文摘要
本發(fā)明公開一種基于HLA的Fortran仿真模型中間件,為解決現(xiàn)有Fortran仿真模型不能加入HLA分布式系統(tǒng)的問題而設(shè)計(jì)。本發(fā)明基于HLA的Fortran仿真模型中間件包括RTI系統(tǒng)單元、適配器單元和Fortran仿真模型單元。其中適配器單元包括封裝文件模塊、回調(diào)函數(shù)模塊和RTI服務(wù)模塊。本發(fā)明基于HLA的Fortran仿真模型中間件是在對(duì)象文件層面通過c語言程序?qū)崿F(xiàn)Fortran語言模塊與C++語言模塊互通。本發(fā)明基于HLA的Fortran仿真模型中間件滿足協(xié)同仿真中Fortran模型的集成需求,提高了協(xié)同仿真的通用性和已有Fortran模型的可重用性。
文檔編號(hào)G06F17/50GK102663203SQ20121012547
公開日2012年9月12日 申請(qǐng)日期2012年4月25日 優(yōu)先權(quán)日2012年4月25日
發(fā)明者岳英超, 肖田元, 范文慧 申請(qǐng)人:清華大學(xué)