專利名稱:虛擬試驗支撐平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種虛擬試驗支撐平臺,此平臺實(shí)現(xiàn)跨地域的分布式試驗資源的數(shù)據(jù)共享和模型集成管理,為虛擬試驗提供支撐環(huán)境,在此基礎(chǔ)上可以開展復(fù)雜航天產(chǎn)品系統(tǒng)級虛擬試驗,屬虛擬試驗領(lǐng)域。
背景技術(shù):
復(fù)雜航天產(chǎn)品的復(fù)雜程度高、設(shè)計難度大、研發(fā)周期短、試驗次數(shù)(尤其是飛行試驗)少,試驗驗證技術(shù)作為其研制過程中的重要手段發(fā)揮著關(guān)鍵作用。傳統(tǒng)的研制模式依賴大量地面試驗的驗證,使得研制周期和經(jīng)費(fèi)要求高,且經(jīng)常存在設(shè)計反復(fù),在當(dāng)前研制周期和技術(shù)發(fā)展的迫切需求下,存在一定局限?,F(xiàn)有試驗驗證手段的缺乏和試驗驗證水平的滯后,無法為復(fù)雜航天產(chǎn)品研制過程的順利開展提供支持。近年來提出的虛擬試驗驗證技術(shù)可以彌補(bǔ)傳統(tǒng)研制模式的不足,虛擬試驗驗證是一種基于數(shù)字樣機(jī)模型的復(fù)雜產(chǎn)品關(guān)鍵·系統(tǒng)試驗數(shù)據(jù)產(chǎn)生、獲取和分析的系統(tǒng)工程過程,以建模仿真、虛擬現(xiàn)實(shí)和知識工程方法為基礎(chǔ),在一個由性能模型、耦合環(huán)境、流程引擎和可視化交互機(jī)制構(gòu)成的數(shù)字化試驗平臺中模擬真實(shí)產(chǎn)品的物理試驗過程。在虛擬試驗支撐平臺方面,美國國防部開發(fā)了試驗與訓(xùn)練使能體系結(jié)構(gòu) TENA (Test and Training Enabling Architecture,簡稱TENA),以提高虛擬試驗驗證中的互操作、可重用性和組合性,它可以根據(jù)具體的任務(wù)將分布在各實(shí)驗室和靶場設(shè)施中的試驗、訓(xùn)練、仿真和高性能計算資源集成起來,構(gòu)成多個聯(lián)合試驗驗證的“邏輯靶場”,該體系結(jié)構(gòu)應(yīng)用側(cè)重于軍方需求。如何結(jié)合我國航天產(chǎn)品的研制過程對虛擬試驗驗證技術(shù)的需求,實(shí)現(xiàn)一套虛擬試驗支撐平臺,實(shí)現(xiàn)航天產(chǎn)品設(shè)計與虛擬試驗驗證同步開展,目前尚未形成完整的解決方案。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種虛擬試驗支撐平臺,解決復(fù)雜航天產(chǎn)品研制試驗過程中的異構(gòu)性、實(shí)時性、可交互性等問題,對試驗驗證過程進(jìn)行規(guī)范化,并具有靈活性、通用性、實(shí)時性及可擴(kuò)展性的特點(diǎn),能滿足工程應(yīng)用或跨行業(yè)應(yīng)用中的擴(kuò)展需求。本發(fā)明的技術(shù)解決方案是虛擬試驗支撐平臺,包括虛擬試驗數(shù)據(jù)支撐子系統(tǒng)、虛擬試驗中間件子系統(tǒng)、虛擬試驗資源集成子系統(tǒng)和虛擬試驗工具集子系統(tǒng),其中虛擬試驗數(shù)據(jù)支撐子系統(tǒng),根據(jù)試驗驗證的需求,存儲虛擬試驗分布式對象模型、試驗資源和試驗數(shù)據(jù),為試驗驗證活動提供數(shù)據(jù)管理支撐;虛擬試驗中間件子系統(tǒng),虛擬試驗系統(tǒng)執(zhí)行期間,為試驗對象和試驗資源間的實(shí)時通信和調(diào)度提供通信支撐平臺;虛擬試驗資源集成子系統(tǒng),建立符合虛擬試驗中間件子系統(tǒng)接口要求的虛擬試驗分布式對象模型,將建立的對象模型儲存在虛擬試驗數(shù)據(jù)支撐子系統(tǒng);虛擬試驗工具集子系統(tǒng),從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取試驗?zāi)P?,根?jù)具體的虛擬試驗需求和試驗?zāi)康模瑢υ囼炓?guī)模、參與的試驗設(shè)備進(jìn)行規(guī)劃形成試驗方案,調(diào)用虛擬試驗中間件子系統(tǒng),對試驗過程進(jìn)行調(diào)度管理。還包括虛擬試驗集成開發(fā)門戶子系統(tǒng),該系統(tǒng)實(shí)現(xiàn)各子系統(tǒng)軟硬件資源的統(tǒng)一管理和展示。所述的虛擬試驗分布式對象模型通過編譯器編譯框架代碼和自定義代碼得到,其中框架代碼自動生成的步驟如下(I)定義一種虛擬試驗分布式對象模型的描述語言;(2)對使用步驟(I)中所述語言描述的虛擬試驗分布式對象模型而生成的文本文件進(jìn)行詞法分析;(3)根據(jù)所述描述語言的元模型,利用語法分析器生成工具生成語法分析器; (4)根據(jù)詞法分析的結(jié)果,使用所述語法分析器對所述文本文件進(jìn)行語法分析,并將得到的語法分析結(jié)果存放到中間表示數(shù)據(jù)結(jié)構(gòu)中;(5)建立所述描述語言與IDL語言的映射關(guān)系,將步驟(4)中間表示數(shù)據(jù)結(jié)構(gòu)中存放的語法分析結(jié)果中的數(shù)據(jù)類型轉(zhuǎn)化為IDL語言中的數(shù)據(jù)類型,并調(diào)用IDL編譯器生成數(shù)據(jù)類型所對應(yīng)的虛擬試驗分布式對象模型框架代碼,所述IDL語言為CORBA接口定義語言;(6)構(gòu)建分布式對象模型模板,之后利用所述文本文件中對虛擬試驗分布式對象模型進(jìn)行的描述替換所述分布式對象模型模板中相應(yīng)的標(biāo)簽,從而直接轉(zhuǎn)化為虛擬試驗分布式對象模型框架代碼。所述步驟(2)中所述進(jìn)行詞法分析具體為以字符為單位掃描所述文本文件,跳過空白符號,若掃描到的單詞為所述描述語言的保留字,則返回該保留字所對應(yīng)的屬性編碼,否則返回該單詞的字符串,直到該文本文件掃描完畢,即完成了對該文本文件的詞法分析。所述的虛擬試驗中間件子系統(tǒng)包括時間推進(jìn)模塊、運(yùn)行管理模塊、交互管理模塊、回調(diào)管理模塊及應(yīng)用程序接口 API ;時間推進(jìn)模塊、運(yùn)行管理模塊、交互管理模塊、回調(diào)管理模塊均通過事件通道傳送數(shù)據(jù),所述事件通道是指TAO的ORB中的事件通道對象;所述 TAO(The ACE ORB)是基于 ACE 按照實(shí)時 CORBA(Common Object RequestBrokerArchitecture)標(biāo)準(zhǔn)實(shí)現(xiàn)的 ORB (Ob ject Request Broker) ;ACE 指自適應(yīng)通信環(huán)境,即 Adaptive Communication Environment ;時間推進(jìn)模塊,負(fù)責(zé)整個虛擬試驗應(yīng)用系統(tǒng)的時間推進(jìn),時間推進(jìn)模塊分為時間客戶端和時間服務(wù)端兩部分;時間客戶端調(diào)用運(yùn)行管理模塊的命名服務(wù)獲取事件通道,利用事件通道將虛擬試驗應(yīng)用程序需要發(fā)送的時間請求發(fā)送給時間服務(wù)端;時間客戶端還利用事件通道從時間服務(wù)端接收推進(jìn)時間,并通知虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序;時間服務(wù)端提供邏輯時間推進(jìn)和實(shí)時時間推進(jìn)兩種服務(wù),邏輯時間推進(jìn)為全數(shù)學(xué)模型搭建的虛擬試驗應(yīng)用系統(tǒng)接入提供推進(jìn)服務(wù),實(shí)時時間推進(jìn)為有半實(shí)物或?qū)嵨镌O(shè)備搭建的虛擬試驗應(yīng)用系統(tǒng)接入提供服務(wù),時間服務(wù)端通過讀取配置文件確定時間推進(jìn)方式;邏輯時間推進(jìn)時,時間服務(wù)端通過事件通道接收來自應(yīng)用程序發(fā)送的時間推進(jìn)請求,存儲在以優(yōu)先級隊列實(shí)現(xiàn)的時間隊列中,定時從隊列中取最小的時間通過事件通道發(fā)送給應(yīng)用程序;實(shí)時時間推進(jìn)時,定時將從實(shí)時操作系統(tǒng)或?qū)崟r設(shè)備包括實(shí)物設(shè)備或半實(shí)物設(shè)備獲取的精確的真實(shí)時間通過事件通道發(fā)送給應(yīng)用程序;運(yùn)行管理模塊,為時間推進(jìn)模塊、交互管理模塊提供命名服務(wù);創(chuàng)建與銷毀事件通道;創(chuàng)建與銷毀試驗域,并對試驗域內(nèi)的應(yīng)用程序的加入和退出進(jìn)行管理;所述試驗域為虛擬試驗應(yīng)用程序的集合;交互管理模塊,調(diào)用運(yùn)行管理模塊的命名服務(wù)獲取事件通道,維護(hù)虛擬試驗應(yīng)用系統(tǒng)中的對象交互和消息傳遞,保證對象和消息的正確交互,并提供遠(yuǎn)程方法調(diào)用功能;對象交互包括對象發(fā)布、對象訂閱和對象更新,消息傳遞包括消息發(fā)布、消息訂閱和消息發(fā)送;回調(diào)管理模塊,接收事件通道推送的數(shù)據(jù),根據(jù)數(shù)據(jù)類型構(gòu)建不同的回調(diào)對象,在不同時刻喚醒回調(diào)對象,執(zhí)行回調(diào)對象相應(yīng)的方法觸發(fā)回調(diào),調(diào)用虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序的應(yīng)用邏輯代碼;應(yīng)用程序接口 API,對上述四個模塊中時間推進(jìn)模塊的時間客戶端功能,運(yùn)行管理·模塊中的試驗域管理功能,交互管理模塊的對象交互和消息傳遞功能,回調(diào)管理模塊中的回調(diào)喚醒功能進(jìn)行封裝,為虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序提供使用接口。所述運(yùn)行管理模塊包括命名服務(wù)模塊、事件通道管理模塊和試驗域管理模塊,分別提供命名服務(wù)、事件通道和試驗域管理;命名服務(wù)模塊通過TAO的命名服務(wù)實(shí)現(xiàn),為時間推進(jìn)模塊、交互管理模塊提供命名服務(wù),提供名字到對象的查找和定位服務(wù)。事件通道管理模塊,管理事件通道的創(chuàng)建與銷毀,事件通道的創(chuàng)建流程為首先讀取配置文件中連接命名服務(wù)的通信方式,初始化0RB,并獲取命名服務(wù);設(shè)置事件通道屬性參數(shù),調(diào)用構(gòu)造函數(shù)創(chuàng)建事件通道對象;調(diào)用命名服務(wù)的綁定操作,將事件通道對象綁定到命名服務(wù),供時間推進(jìn)模塊、交互管理模塊、回調(diào)管理模塊引用;事件通道的銷毀通過調(diào)用析構(gòu)函數(shù)實(shí)現(xiàn);試驗域管理模塊包含試驗域的創(chuàng)建、銷毀,試驗域內(nèi)應(yīng)用程序的加入和退出功能,通過命名服務(wù)創(chuàng)建不同的名字空間實(shí)現(xiàn)試驗域的創(chuàng)建,當(dāng)該試驗域不再使用或要強(qiáng)制銷毀該試驗域時,通過調(diào)用試驗域的析構(gòu)函數(shù)來實(shí)現(xiàn)試驗域的銷毀;試驗域管理模塊為每個域維護(hù)一個應(yīng)用程序集合,應(yīng)用程序加入域時在對應(yīng)域的應(yīng)用程序集合中添加應(yīng)用程序名稱,應(yīng)用程序退出域時,刪除對應(yīng)域的應(yīng)用程序集合中的應(yīng)用程序名稱。所述交互管理模塊包括關(guān)系表模塊、對象交互模塊、消息傳遞模塊、遠(yuǎn)程方法調(diào)用模塊關(guān)系表模塊為對象交互模塊和消息傳遞模塊提供查詢服務(wù),存儲了虛擬試驗應(yīng)用系統(tǒng)中的對象和消息的名稱到對應(yīng)ID的映射關(guān)系;對象交互管理模塊通過應(yīng)用程序接口API得到需發(fā)布或訂閱的對象名稱,查找關(guān)系表模塊中對應(yīng)的ID,通過運(yùn)行管理模塊中的命名服務(wù)找到事件通道,調(diào)用事件通道對象的接口設(shè)置過濾條件,并重新連接事件通道完成對象的發(fā)布或訂閱;對象交互管理模塊通過應(yīng)用程序接口 API得到需更新的對象數(shù)據(jù),并對數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換,調(diào)用事件通道的推送接口更新數(shù)據(jù);消息傳遞管理模塊通過應(yīng)用程序接口 API得到需發(fā)布或訂閱的消息名稱,查找關(guān)系表模塊中對應(yīng)的ID,通過運(yùn)行管理模塊中的命名服務(wù)找到事件通道,調(diào)用事件通道對象的接口設(shè)置過濾條件,并重新連接事件通道完成消息的發(fā)布或訂閱;消息傳遞模塊通過應(yīng)用程序接口 API得到需發(fā)送的消息數(shù)據(jù),并對數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換,調(diào)用事件通道的推送接口發(fā)送消息;對象數(shù)據(jù)緩存一直到試驗對象被銷毀,消息為瞬間數(shù)據(jù),發(fā)送完成后被銷毀,不緩存;遠(yuǎn)程方法調(diào)用模塊通過CORBA實(shí)現(xiàn)。所述回調(diào)管理模塊中構(gòu)建的回調(diào)對象分為四種類型發(fā)現(xiàn)回調(diào)、銷毀回調(diào)、狀態(tài)改變回調(diào)和消息回調(diào);當(dāng)虛擬試驗應(yīng)用系統(tǒng)中應(yīng)用程序調(diào)用交互管理模塊提供的發(fā)布對象應(yīng)用程序接口 API時,立即觸發(fā)發(fā)現(xiàn)回調(diào);當(dāng)虛擬試驗應(yīng)用系統(tǒng)應(yīng)用程序調(diào)用交互管理模塊提供的取消對象發(fā)布應(yīng)用程序接口 API時,立即觸發(fā)銷毀回調(diào);當(dāng)虛擬試驗應(yīng)用程序調(diào)用交互管理模塊提供的對象更新應(yīng)用程序接口 API時,且應(yīng)用程序調(diào)用喚醒回調(diào)應(yīng)用程序接口 API時,觸發(fā)狀態(tài)改變回調(diào);當(dāng)事件通道接收到消息時,立即觸發(fā)消息回調(diào)。本發(fā)明與現(xiàn)有技術(shù)相比有益效果為(I)在虛擬試驗過程中,虛擬試驗分布式對象模型、試驗資源和試驗數(shù)據(jù)等數(shù)據(jù)存儲管理服務(wù)都從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取,充分實(shí)現(xiàn)了試驗資源的共享和可重用。 (2)本發(fā)明采用的虛擬試驗中間件,利用安全可靠的應(yīng)用程序接口構(gòu)建虛擬試驗應(yīng)用的方式,提供分布式對象通信能力,實(shí)現(xiàn)虛擬試驗應(yīng)用邏輯和通信解耦,實(shí)現(xiàn)了互操作,提高虛擬試驗的開發(fā)效率,縮短開發(fā)周期,降低試驗系統(tǒng)開發(fā)成本。(3)本發(fā)明在建立虛擬試驗對象模型的過程中,其框架代碼采用自動生成的方式,完成對象模型從描述語言文本到標(biāo)準(zhǔn)C++語法格式的對象模型框架的轉(zhuǎn)變,減少了應(yīng)用開發(fā)人員的工作量,提高了應(yīng)用開發(fā)效率。(4)本發(fā)明的虛擬試驗工具集,提供了在現(xiàn)有模型資源和中間件基礎(chǔ)上快速對虛擬試驗進(jìn)行方案設(shè)計和運(yùn)行的工具,便于對試驗過程進(jìn)行管理,增強(qiáng)了本平臺在使用過程中的友好性。(5)本發(fā)明采用層次化的平臺結(jié)構(gòu),通過分層次設(shè)計的支撐平臺,可以充分實(shí)現(xiàn)平臺的靈活性、通用性,平臺中目前已包含了開展虛擬試驗所需的基本模塊,接口開放,可從各個層次進(jìn)行工具擴(kuò)展。(6)在本發(fā)明所實(shí)現(xiàn)的支撐平臺基礎(chǔ)上可以進(jìn)行航天復(fù)雜產(chǎn)品的單機(jī)虛擬試驗和全系統(tǒng)集成虛擬試驗,從產(chǎn)品整體性能的角度考核各系統(tǒng)協(xié)同工作的能力,為分系統(tǒng)及總體的設(shè)計方案驗證提供了支撐。(7)本發(fā)明中間件子系統(tǒng)同時具備邏輯時間和實(shí)時時間推進(jìn)的能力,既能滿足全數(shù)學(xué)模型的虛擬試驗應(yīng)用推進(jìn)需求,又能滿足半實(shí)物、實(shí)物設(shè)備接入的虛擬試驗應(yīng)用推進(jìn)需求。(8)本發(fā)明中間件子系統(tǒng)基于ACE/TA0實(shí)現(xiàn),使虛擬試驗應(yīng)用具備跨平臺、可移植、實(shí)時等特性,能滿足復(fù)雜大規(guī)模虛擬試驗的需求。(9)本發(fā)明中間件子系統(tǒng)利用安全可靠的應(yīng)用程序接口構(gòu)建虛擬試驗應(yīng)用的方式,提供分布式對象通信能力,實(shí)現(xiàn)虛擬試驗應(yīng)用邏輯和通信解耦,實(shí)現(xiàn)了互操作,提高虛擬試驗的開發(fā)效率,縮短開發(fā)周期,降低試驗系統(tǒng)開發(fā)成本。(10)本發(fā)明給出的虛擬試驗分布式對象描述語言元模型,描述了虛擬試驗分布式對象的類和數(shù)據(jù)結(jié)構(gòu),以及它們之間的關(guān)系,實(shí)現(xiàn)了虛擬試驗分布式對象的標(biāo)準(zhǔn)化描述,有助于虛擬試驗分布式對象的重用和組合,實(shí)現(xiàn)試驗資源的充分利用。(11)本發(fā)明給出的虛擬試驗分布式對象模型框架代碼自動生成方法,支持對虛擬試驗分布式對象描述語言語法進(jìn)行正確性、一致性的檢查,提高應(yīng)用開發(fā)的可靠性。
圖I為本發(fā)明的虛擬試驗支撐平臺組成結(jié)構(gòu)圖;圖2為本發(fā)明中間件子系統(tǒng)組成結(jié)構(gòu)框圖;圖3為本發(fā)明中間件子系統(tǒng)的時間推進(jìn)服務(wù)模塊實(shí)現(xiàn)圖;圖4為本發(fā)明中間件子系統(tǒng)的時間客戶端和服務(wù)端的啟動流程圖;
圖5為本發(fā)明中間件子系統(tǒng)的事件通道創(chuàng)建流程圖;圖6為本發(fā)明交互管理服務(wù)模塊實(shí)現(xiàn)圖;圖7為本發(fā)明的對象發(fā)布更新流程圖;圖8為本發(fā)明回調(diào)服務(wù)相關(guān)類設(shè)計圖;圖9為本發(fā)明回調(diào)服務(wù)回調(diào)對象執(zhí)行流程圖;圖10為本發(fā)明應(yīng)用程序接口調(diào)用流程圖;圖11為本發(fā)明虛擬試驗分布式對象模型的生成流程;圖12為本發(fā)明框架代碼自動生成流程圖;圖13為本發(fā)明虛擬試驗分布式對象描述語言的元模型描述圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對本發(fā)明做詳細(xì)的說明,具體如下如圖I所示,本發(fā)明的虛擬試驗支撐平臺包括5個子系統(tǒng),分別是虛擬試驗數(shù)據(jù)支撐子系統(tǒng)、虛擬試驗中間件子系統(tǒng)、虛擬試驗資源集成子系統(tǒng)和虛擬試驗工具集子系統(tǒng)。下面詳細(xì)介紹每個子系統(tǒng)的具體實(shí)現(xiàn)方法。一、虛擬試驗數(shù)據(jù)支撐子系統(tǒng)虛擬試驗數(shù)據(jù)支撐子系統(tǒng),存儲虛擬試驗分布式對象模型;以及動態(tài)存儲虛擬試驗執(zhí)行期間產(chǎn)生的試驗資源和試驗數(shù)據(jù),為試驗驗證活動提供數(shù)據(jù)管理支撐;具體可以采用中國專利ZL201010240156. 9發(fā)明名稱“一種虛擬試驗數(shù)據(jù)對象化管理系統(tǒng)”來實(shí)現(xiàn)。I)離線存儲服務(wù)離線存儲服務(wù)負(fù)責(zé)存儲虛擬試驗分布式對象模型,實(shí)現(xiàn)步驟如下將虛擬試驗分布式對象模型所需存儲的文件及文件類型信息進(jìn)行整理后,使用上述專利中的試驗數(shù)據(jù)類設(shè)計工具建立自定義數(shù)據(jù)類,通過上述專利中的數(shù)據(jù)庫生成工具,建立離線儲存數(shù)據(jù)庫。2)在線存儲服務(wù)在線存儲服務(wù)負(fù)責(zé)動態(tài)存儲虛擬試驗執(zhí)行期間使用的試驗資源(如,轉(zhuǎn)臺等半實(shí)物試驗設(shè)備)和產(chǎn)生的試驗數(shù)據(jù),實(shí)現(xiàn)步驟如下將虛擬試驗執(zhí)行期間產(chǎn)生的試驗數(shù)據(jù)進(jìn)行收集,并存儲為標(biāo)準(zhǔn)格式,將存儲后的數(shù)據(jù)給“ZL201010240156. 9 一種虛擬試驗數(shù)據(jù)對象化管理系統(tǒng)”中的數(shù)據(jù)管理引擎,由數(shù)據(jù)訪問接口模塊或web訪問模塊進(jìn)行數(shù)據(jù)的存儲。將試驗資源和試驗數(shù)據(jù)所需存儲的文件及文件類型信息進(jìn)行整理后,按照使用上述專利中的試驗數(shù)據(jù)類設(shè)計工具建立自定義數(shù)據(jù)類,通過上述專利中的數(shù)據(jù)庫生成工具,建立在線儲存數(shù)據(jù)庫。二、虛擬試驗中間件子系統(tǒng)虛擬試驗中間件子系統(tǒng),虛擬試驗系統(tǒng)執(zhí)行期間,為試驗對象和試驗資源間的實(shí)時通信和調(diào)度提供通信支撐平臺;相關(guān)技術(shù)術(shù)語說明ACE(AdaptiveCommunication Environment,自適應(yīng)通信環(huán)境)將操作系統(tǒng)的通信、調(diào)度、并發(fā)服務(wù)以優(yōu)秀的設(shè)計模式進(jìn)行封裝,支持多種操作系統(tǒng),包括Windows、UNIX、Linux、Vxfforks0 TAO是基于ACE遵循實(shí)時CORBA標(biāo)準(zhǔn)實(shí)現(xiàn)的0RB。TAO (The ACE ORB)是基于 ACE 按照實(shí)時 CORBA (Common Object RequestBrokerArchitecture)標(biāo)準(zhǔn)實(shí)現(xiàn)的 ORB(0bject Request Broker)。如圖2所示,本發(fā)明所述的中間件子系統(tǒng)是基于開源項目AGE/TA0實(shí)現(xiàn)。本發(fā)明在ACE/TA0基礎(chǔ)上構(gòu)建四個模塊,包括時間推進(jìn)模塊、運(yùn)行管理模塊、交互管理模塊、回調(diào)管理模塊,并將四個模塊的功能封裝成易用的應(yīng)用程序接口 API供試驗人員使用。 時間推進(jìn)模塊主要用于向虛擬試驗應(yīng)用提供同步推進(jìn)策略,保證整個試驗正確有序的進(jìn)行。時間推進(jìn)模塊提供邏輯時間推進(jìn)和實(shí)時時間推進(jìn)兩種服務(wù)。如圖3所示,時間推進(jìn)模塊分為時間客戶端和時間服務(wù)端兩部分。時間客戶端由初始化模塊、發(fā)送端、接收端和時間服務(wù)接口四個模塊組成。時間服務(wù)端由初始化模塊、發(fā)送端、接收端、實(shí)時時鐘獲取、時間隊列、和時間推進(jìn)策略六個子模塊。時間對象由IDL文件定義。其中,時間客戶端和服務(wù)端的啟動流程類似,在初始化模塊中實(shí)現(xiàn),讀取配置文件中連接命名服務(wù)的通信方式完成ORB初始化,連接命名服務(wù),連接事件通道并運(yùn)行0RB。具體流程如圖4所示。首先初始化ORB ;獲得命名服務(wù)對象,并通過命名服務(wù)找到不同域?qū)?yīng)的事件通道對象;發(fā)送端獲取Consumer代理,接收端獲取Supplier代理;設(shè)置Qos表達(dá)發(fā)布訂閱信息,客戶端和服務(wù)端設(shè)置的Qos信息必須一致;連接事件通道;接收端啟動線程并運(yùn)行0RB,等待接收數(shù)據(jù)。時間客戶端的功能以DLL(動態(tài)鏈接庫)的形式封裝,供應(yīng)用程序調(diào)用。發(fā)送端模塊將應(yīng)用程序需要發(fā)送的時間對象轉(zhuǎn)換成CORBA Any類型,調(diào)用Consumer代理的push函數(shù)發(fā)送時間;當(dāng)有時間對象到達(dá)時,事件通道調(diào)用接收端的push回調(diào)函數(shù)。push函數(shù)在接收端實(shí)現(xiàn),主要完成從事件集中提取事件并將CORBA =Any類型數(shù)據(jù)轉(zhuǎn)換成時間對象類型,并存儲,同時通知應(yīng)用程序可以讀取時間。時間客戶端主要提供三個時間服務(wù)接口 SendTime O ,向時間服務(wù)端發(fā)送請求時間;WaitTimeForwardO ,等待時間服務(wù)器允許推進(jìn);GetTime O,時間服務(wù)器允許推進(jìn)后,調(diào)用此接口獲取當(dāng)前時間。時間服務(wù)端的發(fā)送端和接收端的實(shí)現(xiàn)方式與時間客戶端一致。時間服務(wù)端提供邏輯時間推進(jìn)和實(shí)時時間推進(jìn)兩種策略。初始化時,時間服務(wù)端讀取配置文件,確定時間推進(jìn)方式。邏輯時間推進(jìn)時,時間服務(wù)端通過接收端接收來自應(yīng)用程序發(fā)送的時間,并存儲在時間隊列中。時間隊列采用優(yōu)先級隊列實(shí)現(xiàn),時間服務(wù)器根據(jù)設(shè)置好的時間步長定時從隊列中取最小的時間通過發(fā)送端發(fā)送給應(yīng)用程序。實(shí)時時間推進(jìn)時,維護(hù)一個精確定時器,定時通過實(shí)時時鐘獲取模塊從操作系統(tǒng)或?qū)崟r設(shè)備(半實(shí)物/實(shí)物設(shè)備)獲得精確的真實(shí)時間,并將時間通過發(fā)送端發(fā)送給應(yīng)用程序。運(yùn)行管理模塊為時間推進(jìn)模塊、交互管理模塊中的分布式對象提供名字到對象引用的映射的命名服務(wù);創(chuàng)建與銷毀事件通道;創(chuàng)建與銷毀試驗域,并對虛擬試驗應(yīng)用系統(tǒng)中的試驗域內(nèi)應(yīng)用的加入和退出進(jìn)行管理;由命名服務(wù)和事件通道管理、試驗域管理三個模塊組成。
上述的命名服務(wù)由命名服務(wù)模塊實(shí)現(xiàn)。在命名服務(wù)中,通過將對象賦予唯一標(biāo)識來確定服務(wù)對象。通過指定對象的名字,解析命名服務(wù),實(shí)現(xiàn)對服務(wù)對象的查找和定位。命名服務(wù)通過封裝TAO的命名服務(wù)實(shí)現(xiàn),提供初始化、運(yùn)行、綁定、取消綁定,關(guān)閉等操作。上述的創(chuàng)建與銷毀事件通道由實(shí)現(xiàn)事件通道管理模塊實(shí)現(xiàn)。事件通道的創(chuàng)建流程如圖5所示。首先讀取配置文件中連接命名服務(wù)的通信方式初始化0RB,并獲取命名服務(wù);設(shè)置時間通道屬性參數(shù),將consumer_reconnect和supplier_reconnect置為I,支持事件通道重連,調(diào)用TAO_EC_Event_Channel構(gòu)造函數(shù)創(chuàng)建事件通道對象;調(diào)用命名服務(wù)的綁定操作,將事件通道對象綁定到命名服務(wù),供其它服務(wù)引用。事件通道的銷毀通過調(diào)用ΤΑ0_EC_Event_ChanneI析構(gòu)函數(shù)實(shí)現(xiàn)。試驗域管理模塊包含試驗域的創(chuàng)建、銷毀,試驗域內(nèi)應(yīng)用的加入和退出等功能。試驗域擁有不同的試驗域名稱,通過在命名服務(wù)下創(chuàng)建不同的名字空間實(shí)現(xiàn)。每個試驗域調(diào)用事件通道管理創(chuàng)建本試驗域的事件通道。當(dāng)該試驗域不再使用或要強(qiáng)制銷毀該試驗域時,通過調(diào)用試驗域的析構(gòu)函數(shù)來實(shí)現(xiàn)試驗域的銷毀,并調(diào)用事件通道的銷毀操作。試驗域管理模塊為每個域維護(hù)一個應(yīng)用程序集合。應(yīng)用程序以試驗域名稱為參數(shù)調(diào)用加入試驗域 函數(shù),若該試驗域已經(jīng)存在,則返回試驗域名稱對應(yīng)的試驗域,并在對應(yīng)域的應(yīng)用程序集合中添加應(yīng)用程序名稱;若該試驗域不存在,則創(chuàng)建新的試驗域,同時并在對應(yīng)域的應(yīng)用程序集合中添加應(yīng)用程序名稱。試驗域的加入主要通過查找試驗域集合來完成,試驗域集合是一個Map < string, Domain >,查找試驗域時,匹配Map的第一個關(guān)鍵字,若匹配成功,貝Ij返回TRUE ;若匹配不成功,則倉Il建新的試驗域,并將試驗域名稱與新的試驗域的pair對加入到試驗域集合中。應(yīng)用程序退出域時,刪除對應(yīng)域的應(yīng)用程序集合中的應(yīng)用程序名稱。交互管理模塊主要負(fù)責(zé)維護(hù)整個分布式系統(tǒng)中的對象與消息傳遞,保證對象的正確交互和興趣管理,并提供遠(yuǎn)程方法調(diào)用功能。如圖6所示,交互管理服務(wù)分為關(guān)系表模塊、對象交互模塊、消息傳遞模塊、遠(yuǎn)程方法調(diào)用四大子模塊。關(guān)系表模塊包括類型倉庫、對象倉庫;對象交互模塊包括對象發(fā)布、狀態(tài)更新、對象訂閱;消息傳遞模塊包括消息發(fā)布、消息發(fā)送、消息訂閱。關(guān)系表模塊維護(hù)發(fā)布者和訂閱者之間的類層次關(guān)系,為試驗系統(tǒng)中的訂閱提供支持。為了實(shí)現(xiàn)發(fā)布者和訂閱者類型和對象的一致性,通過維護(hù)類型倉庫和對象倉庫來實(shí)現(xiàn)發(fā)布者和訂閱者的類型和對象的關(guān)聯(lián),保證類型和對象在試驗域內(nèi)的全局唯一性。在一個試驗域內(nèi),類型倉庫和對象倉庫供試驗域全局使用。類型倉庫使用兩張表分別記錄對象類型和消息類型的名字到ID的映射,其中類型名字為字符串主要用于接口參數(shù)的傳遞,而類型ID則在設(shè)置Qos信息表達(dá)發(fā)布訂閱關(guān)系時使用。為保證實(shí)現(xiàn)類型標(biāo)識符到類型ID的一一映射,每一種類型分配一個庫中唯一的ID。同時,類型倉庫維護(hù)一個繼承關(guān)系表表示類的層次結(jié)構(gòu),使用鄰接鏈表實(shí)現(xiàn)存儲。表中每個元素代表一種類型,元素的內(nèi)容是一張記錄該類型所有子類類型的表。對象倉庫與類型倉庫類似,使用兩張表分別記錄類型實(shí)例對象和消息對象的名字到ID的映射。對象交互模塊負(fù)責(zé)對象的發(fā)布/訂閱和更新如圖7所示。對象更新首先需要發(fā)布對象。對象的發(fā)布是通過在連接事件通道前,修改事件通道Qos信息來實(shí)現(xiàn)。將對象的類型名和實(shí)例名通過類型倉庫和對象倉庫轉(zhuǎn)化為ID,再將類型ID和實(shí)例ID傳遞給ORB中ACE_ConsumerQOS_Factory類的insert方法,修改Qos信息實(shí)現(xiàn)對象的發(fā)布。對象發(fā)布后,先將對象數(shù)據(jù)轉(zhuǎn)化為CORBA :Any,調(diào)用Consumer代理的push函數(shù)完成對象更新。對象的訂閱通過修改Qos信息向事件通道表達(dá)訂閱興趣實(shí)現(xiàn),訂閱完成后,等待時間通道回調(diào)PushConsumer接口的push回調(diào)函數(shù)。消息傳遞模塊的實(shí)現(xiàn)方式與對象交互模塊一致。對象和消息的區(qū)別在于對象數(shù)據(jù)會在系統(tǒng)中緩存一直到試驗對象被銷毀,消息為瞬間數(shù)據(jù),發(fā)送完成后就被銷毀,不會在系統(tǒng)中緩存。遠(yuǎn)程方法調(diào)用的實(shí)現(xiàn)通過CORBA的RMI實(shí)現(xiàn),由Stub和Skeleton兩部分完成的,在遠(yuǎn)程方法調(diào)用的過程中,訂閱者端通過Stub與CORBA的ORB進(jìn)行交互,發(fā)布者通過CORBA的Skeleton與ORB進(jìn)行交互,這樣訂閱者就可以通過Stub和Skeleton實(shí)現(xiàn)對發(fā)布者的方法調(diào)用?;卣{(diào)管理模塊接收事件通道推送的數(shù)據(jù),根據(jù)數(shù)據(jù)類型構(gòu)建不同的回調(diào)對象,在不同時刻執(zhí)行回調(diào)對象相應(yīng)的方法觸發(fā)回調(diào),調(diào)用應(yīng)用程序的應(yīng)用邏輯代碼?;卣{(diào)模塊 提供四種類型的回調(diào)發(fā)現(xiàn)回調(diào)、銷毀回調(diào)、狀態(tài)改變回調(diào)和消息回調(diào)。當(dāng)?shù)谝淮伟l(fā)布對象時,回調(diào)管理模塊會立即觸發(fā)發(fā)現(xiàn)回調(diào);當(dāng)取消發(fā)布對象時,回調(diào)管理模塊會立即觸發(fā)銷毀回調(diào);當(dāng)更新對象時,且應(yīng)用程序調(diào)用evokeCallback應(yīng)用程序接口時,回調(diào)管理模塊會觸發(fā)狀態(tài)改變回調(diào);當(dāng)接收到消息時,回調(diào)管理模塊會立即觸發(fā)消息回調(diào)。回調(diào)的相關(guān)類圖設(shè)計如圖8所示。Callback為回調(diào)對象的基類,其定義了抽象接口 execute。DiscoveryCallbacklmpK DestructionCallbacklmpK StateChangeCalIbacklmpl 和MessageCalIbacklmpl都繼承接口 Callback,它們的execute方法由應(yīng)用程序人員填寫回調(diào)處理邏輯。Proxy為遠(yuǎn)程服務(wù)對象的代理,其維護(hù)一個Callback回調(diào)隊列,并提供evokeCalIback函數(shù)喚醒回調(diào)并執(zhí)行回調(diào)函數(shù)。如圖9所示,當(dāng)事件通道的Push回調(diào)函數(shù)接收到所訂閱的數(shù)據(jù)后,將該數(shù)據(jù)類型與訂閱的數(shù)據(jù)類型進(jìn)行匹配,然后利用匹配成功的數(shù)據(jù)更新本地代理對象的值。同時判斷收到數(shù)據(jù)的事件頭標(biāo)志位,如果對象第一次發(fā)布,則調(diào)用發(fā)現(xiàn)回調(diào)對象的回調(diào)函數(shù)execute,如果是取消發(fā)布,則調(diào)用銷毀回調(diào)對象的回調(diào)函數(shù)execute,如果不是發(fā)現(xiàn)或銷毀回調(diào),則利用本地代理對象構(gòu)建狀態(tài)改變或消息回調(diào)對象,并存入回調(diào)隊列。當(dāng)應(yīng)用程序調(diào)用evokeCallback服務(wù)時,回調(diào)管理模塊判斷回調(diào)隊列是否為空,如果不為空則取出回調(diào)隊列隊頭回調(diào)對象并調(diào)用其回調(diào)方法execute。為方便虛擬試驗人員使用,將四個模塊的功能封裝成應(yīng)用程序接口 API,主要分為四類I)運(yùn)行管理(I) JoinDomain,加入試驗域;(2) ExitDomain,退出試驗域。2)交互管理(I)PublishVIO,發(fā)布對象;(2)UnPublishVI0,取消發(fā)布對象;(3) SubscribeToVIO,訂閱對象;(4) UnSubscribeVIO,取消訂閱對象;(5) UpdateVIO,更新對象
(6) PublishMessage,發(fā)布消息;(7)UnPublishMessage,取消發(fā)布消息;(8) SubscribeToMessage,訂閱消息;(9)UnSubscribeMessage,取消訂閱消息;(10) SendMessage,發(fā)送消息。3)時間模塊(I) SendTime,向時間服務(wù)器發(fā)送請求推進(jìn)時間;(2) WaitTimeForward,等待時間服務(wù)器允許推進(jìn); (3) GetTime,獲得當(dāng)前推進(jìn)時間。4)回調(diào)管理模塊(I) evokeCallback,喚醒狀態(tài)改變或消息回調(diào)。應(yīng)用程序調(diào)用API的流程如圖10所示I)應(yīng)用程序調(diào)用運(yùn)行管理模塊的接口加入試驗域;2)應(yīng)用程序調(diào)用交互管理模塊接口發(fā)布對象或消息,訂閱對象或消息;3)應(yīng)用程序調(diào)用時間推進(jìn)模塊接口請求時間推進(jìn);4)應(yīng)用程序調(diào)用時間推進(jìn)模塊接口等待時間推進(jìn),時間推進(jìn)模塊允許應(yīng)用程序推進(jìn);5)應(yīng)用程序調(diào)用時間管理模塊接口得到當(dāng)前系統(tǒng)時間;6)應(yīng)用程序調(diào)用回調(diào)管理模塊接口喚醒回調(diào),回調(diào)管理模塊觸發(fā)回調(diào),調(diào)用應(yīng)用程序的應(yīng)用邏輯代碼;7)應(yīng)用程序調(diào)用交互管理模塊接口更新對象;8)應(yīng)用程序調(diào)用交互管理模塊接口發(fā)送消息;9)重復(fù)執(zhí)行3 8;10)應(yīng)用程序退出時,調(diào)用交互管理模塊接口取消發(fā)布對象或消息,取消訂閱對象或消息;11)應(yīng)用程序調(diào)用運(yùn)行管理模塊接口退出域。三、虛擬試驗資源集成子系統(tǒng)虛擬試驗資源集成子系統(tǒng),建立符合虛擬試驗中間件子系統(tǒng)接口要求的虛擬試驗分布式對象模型,將建立的對象模型儲存在虛擬試驗數(shù)據(jù)支撐子系統(tǒng);虛擬試驗分布式對象模型的生成流程如圖11所示,其代碼包括框架代碼和用戶自定義代碼兩部分。其中,框架代碼通過代碼生成工具自動生成如圖12所示,具體生成步驟如下(I)定義一種虛擬試驗分布式對象模型的描述語言(VDL);本發(fā)明采用如下定義方式如圖13所示為虛擬試驗分布式對象描述語言的元模型描述圖,描述了虛擬試驗分布式對象的狀態(tài)分布對象(Class)、消息對象(Message)、本地對象(Local Class)、向量(Vector)、接口 (Interface)、枚舉(Enumeration)、狀態(tài)分布對象指針(Class Pointer)、基本類型(Fundamental Type),以及它們之間的繼承、組合、聚合關(guān)系。狀態(tài)分布對象是復(fù)雜數(shù)據(jù)類型,描述虛擬試驗的對象模型,具有狀態(tài)發(fā)布和遠(yuǎn)程方法調(diào)用功能。狀態(tài)分布對象包含成員及方法。其中,狀態(tài)分布對象的成員具有狀態(tài)發(fā)布的功能,可以是其他狀態(tài)分布對象、基本類型、指向自身或者指向其他狀態(tài)分布對象的指針、向量、枚舉、本地對象;狀態(tài)分布對象的方法是遠(yuǎn)程方法,可被虛擬試驗中的其他分布式對象遠(yuǎn)程調(diào)用。狀態(tài)分布對象可以實(shí)現(xiàn)接口。狀態(tài)分布對象可以繼承狀態(tài)分布對象,支持多重繼承,不支持多繼承。消息對象是復(fù)雜數(shù)據(jù)類型,描述虛擬試驗的突發(fā)事件,具有消息發(fā)布的功能。消息對象包含成員及方法。其中,消息對象的成員具有狀態(tài)發(fā)布的功能,可以是其他消息對象、基本類型、狀態(tài)分布對象指針、向量、枚舉、本地對象;消息對象的方法是本地方法,只能在本地調(diào)用。消息對象可以繼承消息對象,支持多重繼承,不支持多繼承。本地對象是復(fù)雜數(shù)據(jù)類型,描述虛擬試驗對象模型中的結(jié)構(gòu)體。本地對象包含成員及方法。其中,本地對象的成員不具有狀態(tài)發(fā)布的功能,可以是其他本地對象、基本類型、狀態(tài)分布對象指針、向量、枚舉;本地對象的方法是本地方法。本地對象可以繼承本地對象,支持多重繼承,不支持多繼承。本地對象可以作為方法的參數(shù)和/或返回值的類型?!は蛄渴且粋€可以在運(yùn)行時動態(tài)調(diào)整大小的線性表,其所有成員是同一種類型。向量只包含成員,成員可以是基本類型、狀態(tài)分布對象指針、枚舉、本地對象。向量可以作為方法的參數(shù)和/或返回值的類型。接口主要作用是封裝方法,并可以由狀態(tài)分布對象實(shí)現(xiàn)。接口只包含方法,且至少包含一個方法。接口可以繼承接口,支持多繼承和多重繼承。枚舉類型用于定義有名符號的集合,提高模型的可讀性,本質(zhì)上是一種取值范圍受限的整數(shù)類型。枚舉可以作為方法的參數(shù)和/或返回值的類型。狀態(tài)分布對象指針指向狀態(tài)分布對象,便于描述狀態(tài)分布對象的聚合關(guān)系。狀態(tài)分布對象指針可以作為方法的參數(shù)和/或返回值的類型。基礎(chǔ)類型用于定義虛擬試驗分布式對象的基本屬性。基礎(chǔ)類型包含short、unsignedshort、long、unsigned long、long long、unsigned long long、float、double、char、boolean、octet、string、void,其含義等同于C語言中的數(shù)據(jù)基礎(chǔ)類型。基礎(chǔ)類型可以作為方法的參數(shù)和/或返回值的類型。本發(fā)明中的保留字包括PACKAGE、ENUM、identifier、EXCEPTION、LOCAL、CLASS、EXTENDS、IMPLEMENTS, PRIVATE、READONLY、ONEWAY、VECTOR、VOID、RAISES、IN、OUT、INOUT,MESSAGE、INTERFACE、SHORT、UNSIGNED、LONG、FLOAT、DOUBLE、CHAR、BOOLEAN、OCTET、STRING、NAME_DEUMITER。(2)對使用步驟(I)中所述語言描述的虛擬試驗分布式對象模型而生成的文本文件進(jìn)行詞法分析,即以字符為單位掃描所述文本文件,跳過空白符號,若掃描到的單詞為所述描述語言的保留字,則返回該保留字所對應(yīng)的屬性編碼,否則返回該單詞的字符串,直到該文本文件掃描完畢,即完成了對該文本文件的詞法分析。(3)根據(jù)所述描述語言的元模型,利用語法分析器生成工具生成語法分析器;本發(fā)明中語法分析器生成工具采用YACC(Yet Another Compiler Compiler)。(4)根據(jù)詞法分析的結(jié)果,使用所述語法分析器對所述文本文件進(jìn)行語法分析,并將得到的語法分析結(jié)果存放到中間表示數(shù)據(jù)結(jié)構(gòu)中。本發(fā)明采用的中間表示數(shù)據(jù)結(jié)構(gòu)與所述元模型相對應(yīng)。中間表示數(shù)據(jù)結(jié)構(gòu)有一個主表(頂層列表),它記錄了所述元模型中的狀態(tài)分布對象、消息對象、本地對象。主表的每一項所要表示的數(shù)據(jù)結(jié)構(gòu)是不同的,它們的共性部分有名字和類型。而相異部分用一個聯(lián)合數(shù)據(jù)結(jié)構(gòu)來表示。該聯(lián)合數(shù)據(jù)結(jié)構(gòu)可以表示的是記錄狀態(tài)分布對象的數(shù)據(jù)結(jié)構(gòu)、記錄消息對象的數(shù)據(jù)結(jié)構(gòu)、記錄本地對象定義的結(jié)構(gòu)。以記錄狀態(tài)分布對象的數(shù)據(jù)結(jié)構(gòu)為例,它包含4個方面的主要信息該狀態(tài)分布對象所實(shí)現(xiàn)的接口、該狀態(tài)分布對象所繼承的VIO (可以是O個或I個)、該狀態(tài)分布對象所包含的所有方法成員的結(jié)構(gòu)、該狀態(tài)分布對象所包含的所有數(shù)據(jù)成員的結(jié)構(gòu)。(5)建立所述描述語言與IDL語言(接口定義語言,Interface DescriptionLanguage)的映射關(guān)系,所述IDL語言為CORBA (公共對象請求代理體系結(jié)構(gòu),CommonObjectRequest Broker Architecture)接口定義語言,提供了一套通用的數(shù)據(jù)類型,用來描述產(chǎn)生對象調(diào)用請求的客戶對象和服務(wù)對象之間的接口的語言。將步驟(4)中間表示數(shù)據(jù)結(jié)構(gòu)中存放的語法分析結(jié)果中的數(shù)據(jù)類型轉(zhuǎn)化為IDL語言的數(shù)據(jù)類型,如本地方法的映射規(guī)則為規(guī)則I :虛擬試驗分布式對象描述語言中l(wèi)ocalclass數(shù)據(jù)類型映射為IDL的 valuetype 類型。規(guī)則2 :localclass類型的屬性成員映射到valuetype的屬性成員。規(guī)則3 :localclass 類型中的保留字 private、readonly,映射為 valuetype 中的public保留字。規(guī)則4 docalclass類型中定義的方法不進(jìn)行映射,在步驟6中通過模板生成。將所述描述語言數(shù)據(jù)類型轉(zhuǎn)化為IDL語言的數(shù)據(jù)類型后,利用已有的成熟技術(shù)CORBA實(shí)現(xiàn)虛擬試驗分布式對象模型間的底層數(shù)據(jù)通訊,即調(diào)用IDL編譯器生成數(shù)據(jù)類型所對應(yīng)的虛擬試驗分布式對象模型框架代碼。(6)構(gòu)建虛擬試驗分布式對象模型的分布式架構(gòu)功能模板,所述模板描述了虛擬試驗分布式對象模型之間的交互功能,為應(yīng)用層提供發(fā)布/訂閱、遠(yuǎn)程方法調(diào)用等基礎(chǔ)服務(wù),是一系列C++頭文件及源文件的集合。本發(fā)明中,設(shè)計了如狀態(tài)更新回調(diào)功能、對象銷毀回調(diào)功能、遠(yuǎn)程方法調(diào)用功能等模板。之后利用所述文本文件中對虛擬試驗分布式對象模型進(jìn)行的描述替換所述分布式對象模型模板中相應(yīng)的標(biāo)簽,從而直接轉(zhuǎn)化為虛擬試驗分布式對象模型框架代碼。應(yīng)用開發(fā)人員在開發(fā)虛擬試驗分布式對象模型時,不需要關(guān)心虛擬試驗分布式對象模型之間交互功能的具體實(shí)現(xiàn)機(jī)制,只需要在相關(guān)功能模板中填寫虛擬試驗分布式對象模型的邏輯代碼即可。用戶自定義代碼,應(yīng)用開發(fā)人員根據(jù)試驗對象的功能,在生成好的虛擬試驗分布式對象模型框架代碼中找到所需實(shí)現(xiàn)的方法(屬于狀態(tài)分布對象、消息對象成員或本地對象),添加試驗對象具體功能的實(shí)現(xiàn)函數(shù),對成員進(jìn)行狀態(tài)更新,并發(fā)送相應(yīng)的消息對象??蚣艽a和用戶自定義代碼,可通過VC編譯器生成可重用、可組合的虛擬試驗分布式對象模型。舉例,如坦克的虛擬試驗分布式對象模型,包含自身位置屬性、模型初始化方法和坦克位置移動的具體計算方法,模型初始化時設(shè)定初始位置、開始運(yùn)動時間、運(yùn)動速度,坦克位置按照勻速直線方式移動。坦克在其位置變化時發(fā)出運(yùn)動消息,與其他模型之間進(jìn)行信息交互,發(fā)送其自身位置及與目標(biāo)的距離。按VDL對其進(jìn)行定義如下,在TANK_V0M包中包括一個狀態(tài)分布對象TANK和一個消息對象TankMove,文件名為TANK-vl. vdl。
package TANK—VOM {
class TANK//坦克對象模型
{
SP_V0M:Position ps; //自身位置屬性
void init(in string initName);//模型初始化方法 boolean tankMove(); //坦克位置移動的具體計算方法
};
message TankMove//坦克運(yùn)動消息
{
double t;Il消息發(fā)出時間
SP_VOM::Position ps; //坦克自身位置double dis;//與目標(biāo)的距離
}; };編譯生成框架代碼后,試驗對象開發(fā)人員在init (in string initName)函數(shù)中填寫設(shè)定初始位置、開始運(yùn)動時間、運(yùn)動速度的代碼;在tankMoveO函數(shù)中實(shí)現(xiàn)勻速直線運(yùn)動方程,按初始化設(shè)定發(fā)出坦克運(yùn)動消息、更新對象成員狀態(tài)。對框架代碼和用戶自定義代碼進(jìn)行編譯,形成坦克的虛擬試驗分布式對象模型。四、虛擬試驗工具集子系統(tǒng)虛擬試驗工具集子系統(tǒng),從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取對象模型,根據(jù)具體的虛擬試驗需求和試驗?zāi)康?,對試驗?guī)模、參與的試驗設(shè)備進(jìn)行規(guī)劃形成試驗方案,調(diào)用虛擬試驗中間件子系統(tǒng),對試驗過程進(jìn)行調(diào)度管理;I)試驗規(guī)劃從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取試驗?zāi)P停鶕?jù)具體的虛擬試驗需求和目的,形成試驗方案;試驗方案是虛擬試驗的靜態(tài)描述文件,記錄參與試驗的模型、設(shè)備和環(huán)境邊界條件,并負(fù)責(zé)對試驗?zāi)P瓦M(jìn)行初始配置。具體步驟如下I. I)試驗規(guī)模規(guī)劃,設(shè)定試驗方案名稱,參與試驗的試驗對象模型類型及數(shù)目、試驗設(shè)備類型及名稱;I. 2)試驗信息流,確定所有試驗對象模型或設(shè)備之間的接口關(guān)系,包括對象模型的成員變量狀態(tài)更新和消息交互,形成對象模型類、實(shí)例之間的發(fā)布訂購關(guān)系;I. 3)試驗參數(shù)設(shè)置,包括對象模型初始參數(shù)配置、對象模型與應(yīng)用程序之間的關(guān)聯(lián)、時間控制方式等內(nèi)容。2)試驗調(diào)度根據(jù)試驗方案,調(diào)用虛擬試驗中間件子系統(tǒng),對試驗過程進(jìn)行管理。具體實(shí)現(xiàn)如下
2. I)試驗方案解析。導(dǎo)入試驗方案,將參加試驗的對象模型初始化為多個對象實(shí)例,并將初始參數(shù)配置給相應(yīng)的對象實(shí)例。2. 2)對象實(shí)例管理。試驗運(yùn)行過程中,一個對象模型可同時存在多個實(shí)例,建立試驗對象實(shí)例列表對實(shí)例進(jìn)行管理。試驗對象實(shí)例列表負(fù)責(zé)在內(nèi)存中存儲試驗對象實(shí)例信息,根據(jù)試驗時間的推進(jìn)更新實(shí)例數(shù)目、所在機(jī)器等信息,支持實(shí)例的遍歷和查詢等管理功倉泛。2. 3)運(yùn)行狀態(tài)和事件管理。對象實(shí)例會根據(jù)對象模型的用戶自定義代碼中實(shí)現(xiàn)的方法進(jìn)行狀態(tài)更新,并發(fā)送相應(yīng)的消息對象,建立試驗對象實(shí)例狀態(tài)列表對實(shí)例狀態(tài)進(jìn)行管理,建立事件緩沖池對消息進(jìn)行管理。試驗對象實(shí)例狀態(tài)列表,建立在共享內(nèi)存或者本地內(nèi)存中,提高狀態(tài)更新的效率。事件緩沖池中根據(jù)時間推進(jìn)信息將對象實(shí)例產(chǎn)生的消息按FIFO、FILO和優(yōu)先級的方法排序,根據(jù)需要調(diào)用相應(yīng)對象模型的遠(yuǎn)程方法或者激活狀態(tài)更新。以一個簡單的虛擬試驗應(yīng)用為例,試驗中包含兩個試驗對象,坦克和導(dǎo)彈。坦克對象的定義如前所述,導(dǎo)彈對象與其類似,當(dāng)兩者距離進(jìn)入一定范圍時對坦克進(jìn)行攔截,擊中 后發(fā)出導(dǎo)彈擊中坦克(MissileHitTank)消息。導(dǎo)彈需訂購坦克的狀態(tài)更新及TankMove消息。分別在TANK-vl. vdl中定義了 TANK對象和TankMove消息,MISSILE-vl. vdl中定義了MISSILE對象和MissileHitTank消息。首先從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取對象模型定
義及其實(shí)現(xiàn),進(jìn)行試驗規(guī)劃后所生成的試驗方案如下<Scenario name="land">
//參與試驗的試驗對象模型及信息流 <VOMs vom_number = "2">
<VOM vom_name="VOM 1" instance_name="tank1 ">
<VIOIns vio_number = "0">
</VIOIns>
<VI00uts vio_number = "1">
<VIO name="VITA::TANK_VOM::TANK" instance_name="tank"vdl_name="TANK-v1"/>·
</VIOOuts>
<Messagelns Inmess一number = "1">
〈Messagemessage_name="VITA::MISSILE_VOM::MissileHitTank"
vdl_name="MISSILE-v1"/>
</Messagelns>
<MessageOuts Outmess—number = "1">
<Messagemessage_name="VITA::TANK_VOM::TankMove"
instance_name = "tankMove" vdl_name="TANK-v1 "/>
</MessageOuts>
</VOM>
<V〇M vom_name="VOM2" >
<VIOIns vio_number = "1">
<VIO name="VITA::TANK_VOM::TANK" instance_name="tank"vdl_name="TANK-v1"/>
</VIOIns>
<VIOOuts vio_number = "1">
<VIO name="VITA::MISSILE_VOM::MISSILE" instance_name="missile"vdl_name="MISSILE-v1'7>
</VI00uts>
<Messagelns Inmess—number = "1">
<Messagemessage_name="VITA::TANK_VOM::TankMove"
instance_name = "tankMove" vdl_name="TANK-v1 "/>
</Messagelns>
<MessageOuts Outmess一number = "1">
<Message message_name="VITA::MISSILE_VOM::MissileHitTank"vdl_name="MISSILE-v1 "/>
</MessageOuts>
</VOM>
</VOMs>
//試驗參數(shù)設(shè)置 <APPs app_number="2">
<App name="tank" vom_number = "1">
<VOM vom_name="VOM17> <Monitor isopened="TRUE" />
<TimeRegulation flag = "3"/>
</App>
<App name="missile" vom一number = "1">
<VOM vom_name="VOM27>
<Monitor isopened-'TRUE" />
<TimeRegulation flag = "3"/>
</App>
</APPs>
</Scenario>試驗運(yùn)行時,根據(jù)試驗方案實(shí)例化坦克對象實(shí)例tank和導(dǎo)彈對象實(shí)例missile,調(diào)用試驗對象方法對tank、missile進(jìn)行狀態(tài)更新,missile在接收到TankMove消息后,對接收到的tank狀態(tài)進(jìn)行攔截判斷,在滿足攔截條件時發(fā)送MissileHitTank消息。五、虛擬試驗集成開發(fā)門戶子系統(tǒng)虛擬試驗集成開發(fā)門戶子系統(tǒng),實(shí)現(xiàn)各子系統(tǒng)軟硬件資源的統(tǒng)一管理和展示。 虛擬試驗集成開發(fā)門戶子系統(tǒng)包括訪問環(huán)境、開發(fā)環(huán)境、編譯環(huán)境、測試環(huán)境和部署環(huán)境。其中,訪問環(huán)境通過與虛擬試驗數(shù)據(jù)支撐子系統(tǒng)的集成實(shí)現(xiàn)對象模型、中間件、資源集成及工具集等資源的訪問、下載和發(fā)布;開發(fā)環(huán)境基于Eclipse實(shí)現(xiàn)代碼編輯工具、C++語法規(guī)范和可重用資源庫;編譯環(huán)境將調(diào)用資源集成系統(tǒng)及編譯器生成試驗系統(tǒng)的執(zhí)行程序;測試環(huán)境將編譯好的虛擬試驗系統(tǒng)在虛擬試驗中間件中運(yùn)行,實(shí)現(xiàn)試驗系統(tǒng)的在線調(diào)試,提示執(zhí)行過程中的異常和錯誤;部署環(huán)境是將經(jīng)測試的虛擬試驗系統(tǒng)發(fā)布到虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中,實(shí)現(xiàn)應(yīng)用共享,并通過在試驗機(jī)器上啟動虛擬試驗中間件服務(wù),實(shí)現(xiàn)虛擬試驗系統(tǒng)的自動部署。本系統(tǒng)的使用用戶可分為對象模型開發(fā)者和應(yīng)用開發(fā)者兩類。其中,對象模型開發(fā)者,主要實(shí)現(xiàn)對象模型的下載、開發(fā)過程的記錄和對象模型的發(fā)布。試驗應(yīng)用開發(fā)者,主要實(shí)現(xiàn)對象模型的下載、運(yùn)行中間件的安裝、應(yīng)用基礎(chǔ)開發(fā)環(huán)境的搭建和虛擬試驗應(yīng)用系統(tǒng)開發(fā)。虛擬試驗支撐平臺可以為復(fù)雜航天產(chǎn)品研制過程中的虛擬試驗應(yīng)用提供從試驗設(shè)計階段到試驗運(yùn)行階段再到試驗分析階段的全生命周期的支持,具體使用流程如下(I)在試驗方案制定階段通過虛擬試驗集成開發(fā)門戶子系統(tǒng)訪問已有各類資源,使用虛擬試驗資源集成子系統(tǒng)完成對象模型的定義與開發(fā),并將開發(fā)過程中的各類數(shù)據(jù)保存到虛擬試驗數(shù)據(jù)支撐子系統(tǒng),使用虛擬試驗工具集進(jìn)行試驗規(guī)劃,形成試驗方案。(2)在試驗運(yùn)行階段根據(jù)試驗方案,使用虛擬試驗工具集在虛擬試驗中間件上進(jìn)行試驗調(diào)度,由虛擬試驗數(shù)據(jù)支撐子系統(tǒng)提供動態(tài)的試驗數(shù)據(jù)收集和存儲功能,在試驗結(jié)束后提交到虛擬試驗數(shù)據(jù)支撐子系統(tǒng)。(3)在試驗分析階段 由虛擬試驗數(shù)據(jù)支撐子系統(tǒng)提供試驗結(jié)果的查詢、下載,供試驗數(shù)據(jù)分析。本發(fā)明未詳細(xì)說明部分屬于本領(lǐng)域技術(shù)人員公知常識。
權(quán)利要求
1.虛擬試驗支撐平臺,其特征在于包括虛擬試驗數(shù)據(jù)支撐子系統(tǒng)、虛擬試驗中間件子系統(tǒng)、虛擬試驗資源集成子系統(tǒng)和虛擬試驗工具集子系統(tǒng),其中 虛擬試驗數(shù)據(jù)支撐子系統(tǒng),根據(jù)試驗驗證的需求,存儲虛擬試驗分布式對象模型、試驗資源和試驗數(shù)據(jù),為試驗驗證活動提供數(shù)據(jù)管理支撐; 虛擬試驗中間件子系統(tǒng),虛擬試驗系統(tǒng)執(zhí)行期間,為試驗對象和試驗資源間的實(shí)時通信和調(diào)度提供通信支撐平臺; 虛擬試驗資源集成子系統(tǒng),建立符合虛擬試驗中間件子系統(tǒng)接口要求的虛擬試驗分布式對象模型,將建立的對象模型儲存在虛擬試驗數(shù)據(jù)支撐子系統(tǒng); 虛擬試驗工具集子系統(tǒng),從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取試驗?zāi)P停鶕?jù)具體的虛擬試驗需求和試驗?zāi)康?,對試驗?guī)模、參與的試驗設(shè)備進(jìn)行規(guī)劃形成試驗方案,調(diào)用虛擬試驗中間件子系統(tǒng),對試驗過程進(jìn)行調(diào)度管理。
2.根據(jù)權(quán)利要求I所述的虛擬試驗支撐平臺,其特征在于還包括虛擬試驗集成開發(fā)門戶子系統(tǒng),該系統(tǒng)實(shí)現(xiàn)各子系統(tǒng)軟硬件資源的統(tǒng)一管理和展示。
3.根據(jù)權(quán)利要求I或2所述的虛擬試驗支撐平臺,其特征在于所述的虛擬試驗分布式對象模型通過編譯器編譯框架代碼和自定義代碼得到,其中框架代碼自動生成的步驟如下 (1)定義一種虛擬試驗分布式對象模型的描述語言; (2)對使用步驟(I)中所述語言描述的虛擬試驗分布式對象模型而生成的文本文件進(jìn)行詞法分析; (3)根據(jù)所述描述語言的元模型,利用語法分析器生成工具生成語法分析器; (4)根據(jù)詞法分析的結(jié)果,使用所述語法分析器對所述文本文件進(jìn)行語法分析,并將得到的語法分析結(jié)果存放到中間表示數(shù)據(jù)結(jié)構(gòu)中; (5)建立所述描述語言與IDL語言的映射關(guān)系,將步驟(4)中間表示數(shù)據(jù)結(jié)構(gòu)中存放的語法分析結(jié)果中的數(shù)據(jù)類型轉(zhuǎn)化為IDL語言中的數(shù)據(jù)類型,并調(diào)用IDL編譯器生成數(shù)據(jù)類型所對應(yīng)的虛擬試驗分布式對象模型框架代碼,所述IDL語言為CORBA接口定義語言; (6)構(gòu)建分布式對象模型模板,之后利用所述文本文件中對虛擬試驗分布式對象模型進(jìn)行的描述替換所述分布式對象模型模板中相應(yīng)的標(biāo)簽,從而直接轉(zhuǎn)化為虛擬試驗分布式對象模型框架代碼。
4.根據(jù)權(quán)利要求3所述的虛擬試驗支撐平臺,其特征在于所述步驟(2)中所述進(jìn)行詞法分析具體為 以字符為單位掃描所述文本文件,跳過空白符號,若掃描到的單詞為所述描述語言的保留字,則返回該保留字所對應(yīng)的屬性編碼,否則返回該單詞的字符串,直到該文本文件掃描完畢,即完成了對該文本文件的詞法分析。
5.根據(jù)權(quán)利要求I或2所述的虛擬試驗支撐平臺,其特征在于所述的虛擬試驗中間件子系統(tǒng)包括時間推進(jìn)模塊、運(yùn)行管理模塊、交互管理模塊、回調(diào)管理模塊及應(yīng)用程序接口API ;時間推進(jìn)模塊、運(yùn)行管理模塊、交互管理模塊、回調(diào)管理模塊均通過事件通道傳送數(shù)據(jù),所述事件通道是指TAO的ORB中的事件通道對象;所述TAO (The ACE ORB)是基于ACE按照實(shí)時 CORBA (Common Object Request Broker Architecture)標(biāo)準(zhǔn)實(shí)現(xiàn)的 ORB (0bjectRequest Broker) ;ACE 指自適應(yīng)通信環(huán)境,即 Adaptive CommunicationEnvironment ;時間推進(jìn)模塊,負(fù)責(zé)整個虛擬試驗應(yīng)用系統(tǒng)的時間推進(jìn),時間推進(jìn)模塊分為時間客戶端和時間服務(wù)端兩部分;時間客戶端調(diào)用運(yùn)行管理模塊的命名服務(wù)獲取事件通道,利用事件通道將虛擬試驗應(yīng)用程序需要發(fā)送的時間請求發(fā)送給時間服務(wù)端;時間容戶端還利用事件通道從時間服務(wù)端接收推進(jìn)時間,并通知虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序;時間服務(wù)端提供邏輯時間推進(jìn)和實(shí)時時間推進(jìn)兩種服務(wù),邏輯時間推進(jìn)為全數(shù)學(xué)模型搭建的虛擬試驗應(yīng)用系統(tǒng)接入提供推進(jìn)服務(wù),實(shí)時時間推進(jìn)為有半實(shí)物或?qū)嵨镌O(shè)備搭建的虛擬試驗應(yīng)用系統(tǒng)接入提供服務(wù),時間服務(wù)端通過讀取配置文件確定時間推進(jìn)方式;邏輯時間推進(jìn)時,時間服務(wù)端通過事件通道接收來自應(yīng)用程序發(fā)送的時間推進(jìn)請求,存儲在以優(yōu)先級隊列實(shí)現(xiàn)的時間隊列中,定時從隊列中取最小的時間通過事件通道發(fā)送給應(yīng)用程序;實(shí)時時間推進(jìn)時,定時將從實(shí)時操作系統(tǒng)或?qū)崟r設(shè)備包括實(shí)物設(shè)備或半實(shí)物設(shè)備獲取的精確的真實(shí)時間通過事件通道發(fā)送給應(yīng)用程序; 運(yùn)行管理模塊,為時間推進(jìn)模塊、交互管理模塊提供命名服務(wù);創(chuàng)建與銷毀事件通道;創(chuàng)建與銷毀試驗域,并對試驗域內(nèi)的應(yīng)用程序的加入和退出進(jìn)行管理;所述試驗域為虛擬試驗應(yīng)用程序的集合; 交互管理模塊,調(diào)用運(yùn)行管理模塊的命名服務(wù)獲取事件通道,維護(hù)虛擬試驗應(yīng)用系統(tǒng)中的對象交互和消息傳遞,保證對象和消息的正確交互,并提供遠(yuǎn)程方法調(diào)用功能;對象交互包括對象發(fā)布、對象訂閱和對象更新,消息傳遞包括消息發(fā)布、消息訂閱和消息發(fā)送; 回調(diào)管理模塊,接收事件通道推送的數(shù)據(jù),根據(jù)數(shù)據(jù)類型構(gòu)建不同的回調(diào)對象,在不同時刻喚醒回調(diào)對象,執(zhí)行回調(diào)對象相應(yīng)的方法觸發(fā)回調(diào),調(diào)用虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序的應(yīng)用邏輯代碼; 應(yīng)用程序接口 API,對上述四個模塊中時間推進(jìn)模塊的時間客戶端功能,運(yùn)行管理模塊中的試驗域管理功能,交互管理模塊的對象交互和消息傳遞功能,回調(diào)管理模塊中的回調(diào)喚醒功能進(jìn)行封裝,為虛擬試驗應(yīng)用系統(tǒng)中的應(yīng)用程序提供使用接口。
6.根據(jù)權(quán)利要求5所述的虛擬試驗支撐平臺,其特征在于所述運(yùn)行管理模塊包括命名服務(wù)模塊、事件通道管理模塊和試驗域管理模塊,分別提供命名服務(wù)、事件通道和試驗域管理; 命名服務(wù)模塊通過TAO的命名服務(wù)實(shí)現(xiàn),為時間推進(jìn)模塊、交互管理模塊提供命名服務(wù),提供名字到對象的查找和定位服務(wù)。
事件通道管理模塊,管理事件通道的創(chuàng)建與銷毀,事件通道的創(chuàng)建流程為首先讀取配置文件中連接命名服務(wù)的通信方式,初始化0RB,并獲取命名服務(wù);設(shè)置事件通道屬性參數(shù),調(diào)用構(gòu)造函數(shù)創(chuàng)建事件通道對象;調(diào)用命名服務(wù)的綁定操作,將事件通道對象綁定到命名服務(wù),供時間推進(jìn)模塊、交互管理模塊、回調(diào)管理模塊引用;事件通道的銷毀通過調(diào)用析構(gòu)函數(shù)實(shí)現(xiàn); 試驗域管理模塊包含試驗域的創(chuàng)建、銷毀,試驗域內(nèi)應(yīng)用程序的加入和退出功能,通過命名服務(wù)創(chuàng)建不同的名字空間實(shí)現(xiàn)試驗域的創(chuàng)建,當(dāng)該試驗域不再使用或要強(qiáng)制銷毀該試驗域時,通過調(diào)用試驗域的析構(gòu)函數(shù)來實(shí)現(xiàn)試驗域的銷毀;試驗域管理模塊為每個域維護(hù)一個應(yīng)用程序集合,應(yīng)用程序加入域時在對應(yīng)域的應(yīng)用程序集合中添加應(yīng)用程序名稱,應(yīng)用程序退出域時,刪除對應(yīng)域的應(yīng)用程序集合中的應(yīng)用程序名稱。
7.根據(jù)權(quán)利要求5所述的虛擬試驗支撐平臺,其特征在于所述交互管理模塊包括關(guān)系表模塊、對象交互模塊、消息傳遞模塊、遠(yuǎn)程方法調(diào)用模塊關(guān)系表模塊為對象交互模塊和消息傳遞模塊提供查詢服務(wù),存儲了虛擬試驗應(yīng)用系統(tǒng)中的對象和消息的名稱到對應(yīng)ID的映射關(guān)系;對象交互管理模塊通過應(yīng)用程序接口 API得到需發(fā)布或訂閱的對象名稱,查找關(guān)系表模塊中對應(yīng)的ID,通過運(yùn)行管理模塊中的命名服務(wù)找到事件通道,調(diào)用事件通道對象的接口設(shè)置過濾條件,并重新連接事件通道完成對象的發(fā)布或訂閱;對象交互管理模塊通過應(yīng)用程序接口 API得到需更新的對象數(shù)據(jù),并對數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換,調(diào)用事件通道的推送接口更新數(shù)據(jù);消息傳遞管理模塊通過應(yīng)用程序接口 API得到需發(fā)布或訂閱的消息名稱,查找關(guān)系表模塊中對應(yīng)的ID,通過運(yùn)行管理模塊中的命名服務(wù)找到事件通道,調(diào)用事件通道對象的接口設(shè)置過濾條件,并重新連接事件通道完成消息的發(fā)布或訂閱;消息傳遞模塊通過應(yīng)用程序接口 API得到需發(fā)送的消息數(shù)據(jù),并對數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換,調(diào)用事件通道的推送接口發(fā)送消息;對象數(shù)據(jù)緩存一直到試驗對象被銷毀,消息為瞬間數(shù)據(jù),發(fā)送完成后被銷毀,不緩存;遠(yuǎn)程方法調(diào)用模塊通過CORBA實(shí)現(xiàn)。
8.根據(jù)權(quán)利要求5所述的虛擬試驗支撐平臺,其特征在于所述回調(diào)管理模塊中構(gòu)建的回調(diào)對象分為四種類型發(fā)現(xiàn)回調(diào)、銷毀回調(diào)、狀態(tài)改變回調(diào)和消息回調(diào);當(dāng)虛擬試驗應(yīng)用系統(tǒng)中應(yīng)用程序調(diào)用交互管理模塊提供的發(fā)布對象應(yīng)用程序接口 API時,立即觸發(fā)發(fā)現(xiàn)回調(diào);當(dāng)虛擬試驗應(yīng)用系統(tǒng)應(yīng)用程序調(diào)用交互管理模塊提供的取消對象發(fā)布應(yīng)用程序接口API時,立即觸發(fā)銷毀回調(diào);當(dāng)虛擬試驗應(yīng)用程序調(diào)用交互管理模塊提供的對象更新應(yīng)用程序接口 API時,且應(yīng)用程序調(diào)用喚醒回調(diào)應(yīng)用程序接口 API時,觸發(fā)狀態(tài)改變回調(diào);當(dāng)事件通道接收到消息時,立即觸發(fā)消息回調(diào)。
全文摘要
虛擬試驗支撐平臺,包括虛擬試驗數(shù)據(jù)支撐子系統(tǒng)、虛擬試驗中間件子系統(tǒng)、虛擬試驗資源集成子系統(tǒng)和虛擬試驗工具集子系統(tǒng),其中虛擬試驗數(shù)據(jù)支撐子系統(tǒng),根據(jù)試驗驗證的需求,存儲虛擬試驗分布式對象模型、試驗資源和試驗數(shù)據(jù),為試驗驗證活動提供數(shù)據(jù)管理支撐;虛擬試驗中間件子系統(tǒng),虛擬試驗系統(tǒng)執(zhí)行期間,為試驗對象和試驗資源間的實(shí)時通信和調(diào)度提供通信支撐平臺;虛擬試驗資源集成子系統(tǒng),建立符合虛擬試驗中間件子系統(tǒng)接口要求的虛擬試驗分布式對象模型,將建立的對象模型儲存在虛擬試驗數(shù)據(jù)支撐子系統(tǒng);虛擬試驗工具集子系統(tǒng),從虛擬試驗數(shù)據(jù)支撐子系統(tǒng)中獲取試驗?zāi)P停鶕?jù)具體的虛擬試驗需求和試驗?zāi)康?,對試驗?guī)模、參與的試驗設(shè)備進(jìn)行規(guī)劃形成試驗方案,調(diào)用虛擬試驗中間件子系統(tǒng),對試驗過程進(jìn)行調(diào)度管理。
文檔編號G06F9/44GK102945165SQ20121043384
公開日2013年2月27日 申請日期2012年10月31日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者趙雯, 彭健, 廖建, 郭愛民, 蔡斐華, 李鑫, 王曉路, 侯雄 申請人:中國運(yùn)載火箭技術(shù)研究院