<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于HLA的分布式網(wǎng)絡(luò)仿真組件的研究實(shí)現(xiàn)

          基于HLA的分布式網(wǎng)絡(luò)仿真組件的研究實(shí)現(xiàn)

          作者:朱永文,朱永軍 時(shí)間:2008-12-15 來源:現(xiàn)代電子技術(shù) 收藏

          1 引 言

          本文引用地址:http://www.ex-cimer.com/article/90215.htm

            仿真技術(shù)作為人類第三種認(rèn)識(shí)、改造客觀世界的重要手段已經(jīng)深入應(yīng)用到各個(gè)領(lǐng)域并取得了很多成果,如軍事、電力、以及能源等。在各類應(yīng)用需求的作用下仿真技術(shù)已經(jīng)發(fā)展形成綜合性的專業(yè)技術(shù)體系,特別是,等技術(shù)的發(fā)展給仿真的應(yīng)用帶來了新的機(jī)遇。

            分布式協(xié)同工作網(wǎng)絡(luò)系統(tǒng)(Distributed CollaborativeWorking Network System)是指分布在不同平臺(tái)上的多個(gè)處理系統(tǒng),通過TCP/IP網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,完成同一個(gè)任務(wù),達(dá)到快速解決問題及實(shí)現(xiàn)協(xié)同工作。作為仿真系統(tǒng)中底層必備的網(wǎng)絡(luò)通信模塊,在實(shí)際開發(fā)中各Agent封裝自己底層通信模塊,分布式各節(jié)點(diǎn)只暴露他對(duì)外通信接口,因此使各個(gè)節(jié)點(diǎn)的通信細(xì)節(jié)不明確、耦合度很差;造成開發(fā)資源的極大浪費(fèi),以及開發(fā)成本的增加。同時(shí)也讓仿真系統(tǒng)開發(fā)人員需要花大部分精力對(duì)底層通信進(jìn)行調(diào)試,這種工作非常繁瑣,同時(shí)也不易進(jìn)行。本文將重點(diǎn)介紹應(yīng)用在仿真系統(tǒng)中新型底層通信組件設(shè)計(jì)方案及實(shí)現(xiàn)方法。

          2 HLA簡介及組件開發(fā)模型

          2.1 HLA高層體系結(jié)構(gòu)

            分布交互仿真()技術(shù)從產(chǎn)生(SIMENT計(jì)劃)到DIS2.X,IEEE1278.X系列協(xié)議和ALSP協(xié)議制定,進(jìn)而發(fā)展到今天的HLA,都是力圖解決系統(tǒng)建模與系統(tǒng)仿真(Modeling and Simulation,M&S)領(lǐng)域存在的問題:絕大多數(shù)仿真器的應(yīng)用實(shí)現(xiàn)較為獨(dú)立,仿真器之間的互操作性和重用性差;開發(fā)、維護(hù)和使用費(fèi)時(shí)且成本高;可驗(yàn)證性、有效性和置信度較差。HLA就是從體系結(jié)構(gòu)上建立這樣的一個(gè)框架,他能盡量涵蓋M&S領(lǐng)域中所涉及的各種不同類型仿真系統(tǒng),并利于他們之間的互操作性和重用性。同時(shí)能利用不斷發(fā)展的新技術(shù),來滿足復(fù)雜大系統(tǒng)的仿真要求。HLA按照面向?qū)ο蟮乃枷牒头椒▉順?gòu)建仿真系統(tǒng),他的基本思想是不考慮如果有對(duì)象構(gòu)造成員,而是在假設(shè)已有成員的情況下考慮如何構(gòu)建聯(lián)邦。采用面向?qū)ο蟮姆椒▉碓O(shè)計(jì)、開發(fā)和實(shí)現(xiàn)方針系統(tǒng)的對(duì)象模型(OM)以獲取聯(lián)邦的高層次的互操作和重用。雖然HLA本身不能完全實(shí)現(xiàn)互操作,但他定義了實(shí)現(xiàn)聯(lián)邦成員互操作的體系結(jié)構(gòu)和集中,提供靈活的仿真框架。由各聯(lián)邦成員和運(yùn)行支持環(huán)境RTI(Run-Time Infrastrueture,運(yùn)行時(shí)間基礎(chǔ)結(jié)構(gòu)或運(yùn)行支撐環(huán)境)一起構(gòu)成一個(gè)分布式仿真系統(tǒng),用于集成分布的各種聯(lián)邦成員,在聯(lián)邦運(yùn)行時(shí)提供各種標(biāo)準(zhǔn)的服務(wù),并具有良好的可擴(kuò)充性。主要包含聯(lián)邦管理、聲明管理、對(duì)象管理、所有權(quán)管理、時(shí)間管理和數(shù)據(jù)分發(fā)管理。一個(gè)典型的機(jī)遇HLA的仿真邏輯結(jié)構(gòu)圖如圖1所示:

           

          2.2 底層網(wǎng)絡(luò)通信組件模型

            基于組件開發(fā)(Component-Based Development,CBD)是當(dāng)前的最新發(fā)展階段,是解決軟件復(fù)用和重用的突破點(diǎn),能更好地滿足目前軟件開發(fā)的需求。他是經(jīng)過封裝的、定義完備接口可發(fā)布的軟件包,提供特定的服務(wù),并期望得到外部特定的接口輸入。從某種程度上說他也是一種程序接口,實(shí)現(xiàn)系統(tǒng)模塊之問的互操作和重用。每個(gè)組件包含一組屬性、事件和方法,組合若干組件就可以生成設(shè)計(jì)者所需要的特定程序,并能集成到其他軟件產(chǎn)品中。應(yīng)用程序開發(fā)者可以購買現(xiàn)成的組件,他們只要利用現(xiàn)有的組件,再加上自己的業(yè)務(wù)規(guī)則,就可以開發(fā)一個(gè)應(yīng)用軟件??傊?,組件開發(fā)技術(shù)使軟件設(shè)計(jì)變得更加簡單和快捷,并極大地增強(qiáng)軟件的重用能力。他相對(duì)系統(tǒng)軟件體系獨(dú)立的不關(guān)心軟件系統(tǒng)業(yè)務(wù)實(shí)現(xiàn),因此可以獨(dú)立于系統(tǒng)軟件的開發(fā),從而降低軟件調(diào)試?yán)щy。

            本網(wǎng)絡(luò)底層通信組件主要為解決基于HLA分布式仿真應(yīng)用系統(tǒng)中底層網(wǎng)絡(luò)通信接口通信,分布各仿真模擬器節(jié)點(diǎn)的網(wǎng)絡(luò)數(shù)據(jù)交換,以及網(wǎng)絡(luò)通信服務(wù)質(zhì)量(QOS)的保證。提高系統(tǒng)運(yùn)行的時(shí)效、完整的數(shù)據(jù)報(bào)文交換、及數(shù)據(jù)報(bào)文的丟失解決、冗余數(shù)據(jù)檢測等。下面是為HLA分布式仿真系統(tǒng)設(shè)計(jì)的網(wǎng)絡(luò)通信組件的設(shè)計(jì)的模型結(jié)構(gòu)圖,各仿真模擬器節(jié)點(diǎn)通過他實(shí)現(xiàn)對(duì)整個(gè)模擬交換和互操作,實(shí)現(xiàn)協(xié)同完成系統(tǒng)模擬仿真工作。仿真模型結(jié)構(gòu)如圖2所示。

          3 仿真網(wǎng)絡(luò)組件設(shè)計(jì)與實(shí)現(xiàn)

          3.1 仿真網(wǎng)絡(luò)通信組件的設(shè)計(jì)

            本網(wǎng)絡(luò)通信組件采用CORBA設(shè)計(jì)思想對(duì)網(wǎng)絡(luò)底層通信協(xié)議異步套接字(Socket)進(jìn)行的封裝,統(tǒng)一實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的通信的支持。CORBA(公共對(duì)象請(qǐng)求代理架構(gòu)) 由OMT提出,用于在不同進(jìn)程(程序)之間,甚至是不同物理機(jī)器上的進(jìn)程(程序)之間通訊。底層技術(shù)依靠RPC(遠(yuǎn)程過程調(diào)用)實(shí)現(xiàn)。面向?qū)ο蟮能浖?,以?shù)據(jù)為中心設(shè)計(jì),對(duì)象類既具有模塊的封裝性和類屬等特性,還具有繼承特性,極大地提高了類的可擴(kuò)充性和可再用能力。對(duì)象類較之于傳統(tǒng)軟件的功能模塊而另具有的優(yōu)點(diǎn)是:易于理解,具有完整的語義特征;易于擴(kuò)充和修改,具有較高的通用性和適應(yīng)性;易于構(gòu)造組裝,具有規(guī)范的外部接口。

           

            基于CORBA的對(duì)象請(qǐng)求代理ORB為客戶機(jī)/服務(wù)器開發(fā)提供了中間件的新格式。把IDL說明編譯為面向?qū)ο蟪绦蛟O(shè)計(jì)語言的實(shí)代碼后,客戶可以調(diào)用已知對(duì)象的操作。在某些應(yīng)用中,用戶并不了解應(yīng)用接口編譯信息,但也要求調(diào)用對(duì)象的操作,這時(shí)就要?jiǎng)討B(tài)調(diào)用接口來調(diào)用用戶的操作。具體的對(duì)象操作的調(diào)用實(shí)際上是用動(dòng)態(tài)調(diào)用接口來完成的。在基于HLA仿真應(yīng)用系統(tǒng)的各個(gè)仿真節(jié)點(diǎn)實(shí)現(xiàn)互操作,及協(xié)同工作完成整個(gè)仿真任務(wù)都是通過網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行數(shù)據(jù)交換,及對(duì)數(shù)據(jù)報(bào)文進(jìn)行解析、分發(fā)、操作實(shí)現(xiàn)的任務(wù)協(xié)同,因此對(duì)于HLA仿真應(yīng)用對(duì)整個(gè)TCP報(bào)文或者UDP報(bào)文采用統(tǒng)一的格式,例如:對(duì)整個(gè)系統(tǒng)環(huán)境網(wǎng)、系統(tǒng)模擬仿真網(wǎng)絡(luò)中傳輸?shù)腡CP,UDP報(bào)文采用統(tǒng)一的報(bào)文標(biāo)識(shí),如系統(tǒng)仿真時(shí)統(tǒng)UDP報(bào)文標(biāo)示為0x1,那么在仿真系統(tǒng)中收到標(biāo)識(shí)為0x1的UDP報(bào)文。各個(gè)分布式仿真節(jié)點(diǎn)將對(duì)該報(bào)文進(jìn)行時(shí)統(tǒng)系統(tǒng)對(duì)時(shí),實(shí)現(xiàn)整個(gè)仿真系統(tǒng)的時(shí)間一致行,保證對(duì)整個(gè)仿真過程中時(shí)間與現(xiàn)實(shí)的同步,選擇異步Socket進(jìn)行自我封裝成能夠符合HLA仿真系統(tǒng)的報(bào)文傳輸要求。同時(shí)組件的設(shè)計(jì)安裝面向?qū)ο笤O(shè)計(jì)的一般過程、軟件工程的要求。

            設(shè)計(jì)如下的組件的結(jié)構(gòu)如圖3所示。

          3.2 通訊組件的實(shí)現(xiàn)

            作為一種通信組件,他不僅需要完成上層HLA仿真主程序給他的發(fā)送報(bào)文的分發(fā)及從其他仿真節(jié)點(diǎn)收到的仿真數(shù)據(jù)報(bào)文的解析,還提供對(duì)外清晰的交互接口。同時(shí)作為仿真工作的一個(gè)部件,他需要工作在一個(gè)復(fù)雜的網(wǎng)絡(luò)環(huán)境中,在不能很多程度上與占有寶貴的分布式處理機(jī)的處理時(shí)問,作為網(wǎng)絡(luò)組件經(jīng)常會(huì)在某些時(shí)間,等待連接、或者等待數(shù)據(jù)報(bào)文而發(fā)生嚴(yán)重的阻塞,以及需要不斷的監(jiān)聽端口,從而耗費(fèi)處理機(jī)時(shí)間,信號(hào)Windows提供了異步SOCKET的API接口使得組件設(shè)計(jì)能夠一直以異步方式工作的應(yīng)用層,不斷向網(wǎng)絡(luò)層接收和發(fā)送數(shù)據(jù)報(bào)文。但是單純實(shí)用原始異步SOCKET的API接口仍然不能滿足某些特定的要求,不能很好地融入HLA仿真應(yīng)用系統(tǒng)中去。因此首先對(duì)Windows提供的異步SOCKET套接字CAsyncSocket進(jìn)行特定封裝。

           

            下面給出部分封裝代碼:

           

            在應(yīng)用中申請(qǐng)一個(gè)組件的主構(gòu)造類,在該類中去實(shí)例化經(jīng)過封裝的異步套接字來進(jìn)行底層網(wǎng)絡(luò)數(shù)據(jù)的收發(fā),組件實(shí)例可以接收到初始化該組件的操作句柄,完成配合仿真節(jié)點(diǎn)完成仿真主題工作,數(shù)據(jù)的交互,數(shù)據(jù)的處理等。

            下面是主題組件的實(shí)體類。

           
           

            仿真節(jié)點(diǎn)只要向組件發(fā)送一啟動(dòng)命令(IniComponent(HWND m_hWnd))組件就將啟動(dòng)并完成組件的初始化,如組件全局SOCKET的版本請(qǐng)求、版本協(xié)商、經(jīng)過封裝后的異步套接字實(shí)例化、SOCKET通信API的實(shí)例初始化等。同時(shí)組件完成初始化以后,組件將一直開始監(jiān)聽本機(jī)指定端口、并等待接收本仿真節(jié)點(diǎn)的消息發(fā)送命令等。仿真節(jié)點(diǎn)在按照HLA仿真體系中規(guī)定的報(bào)文協(xié)議填寫完成數(shù)據(jù)報(bào)文以后,只需要調(diào)用組件對(duì)外的接口函數(shù):Send-Data(char *bur,char*pDataCode,char*pIDNode)即能完成把報(bào)文發(fā)送到指定目的仿真接點(diǎn),協(xié)同完成仿真模擬任務(wù)。組件在接收到網(wǎng)絡(luò)消息的時(shí)候調(diào)用OnReceive(intnErrorCode)進(jìn)行報(bào)文的預(yù)處理,確定是否需要仿真節(jié)點(diǎn)處理該報(bào)文。如首先對(duì)接收到的報(bào)文進(jìn)行長度分析如果長度很小為系統(tǒng)發(fā)送確認(rèn)報(bào)文,就不需要仿真主程序進(jìn)行處理,為仿真節(jié)點(diǎn)主處理器節(jié)省處理時(shí)間。如果長度超過一定長度,是仿真節(jié)點(diǎn)中協(xié)同報(bào)文的話,組件將首先對(duì)報(bào)文得到報(bào)文標(biāo)識(shí)頭(GetNodeByName(char*IdNode,CString strPeerAddress))然后進(jìn)行報(bào)文解析,并向仿真主程序發(fā)送消息函數(shù)::PostMessage(…)到主程序中,進(jìn)行最終的報(bào)文處理工作;如界面更新、數(shù)據(jù)交互處理等,同時(shí)組件線程在完成了對(duì)解析以后需要對(duì)發(fā)送方發(fā)送解析和成功解析報(bào)文,以確認(rèn)發(fā)送方的發(fā)送報(bào)文別目的節(jié)點(diǎn)成功接受并成功解析。

          4 結(jié) 語

            基于HLA高層體系結(jié)構(gòu)的分布式仿真系統(tǒng)中通過分布在不同物理點(diǎn)的分布式仿真節(jié)點(diǎn),借助網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)報(bào)文交互、仿真同步、仿真協(xié)同完成對(duì)真實(shí)世界的模擬。作為仿真系統(tǒng)在必備的通信模塊,在頻繁地設(shè)計(jì)和不斷地重寫,在一個(gè)特定的仿真領(lǐng)域中需不同的仿真網(wǎng)絡(luò)通信模塊,重復(fù)的開發(fā)和設(shè)計(jì)使得各個(gè)仿真節(jié)點(diǎn)之間的交互需要不斷地協(xié)調(diào)協(xié)議接口;不統(tǒng)一的設(shè)計(jì)方案也同樣讓仿真開發(fā)人員陷入重復(fù)工作的泥潭中。本文針對(duì)以上的開發(fā)弊端,采用現(xiàn)代軟件設(shè)計(jì)思想,組件的開發(fā)設(shè)計(jì)模式,使得代碼得以最大程度上的共享,并易于調(diào)試。他使得仿真開發(fā)人員能夠花最小的時(shí)間和代價(jià)協(xié)調(diào)網(wǎng)絡(luò)通信模塊,從而集中精力在仿真主題功能的設(shè)計(jì)和實(shí)現(xiàn)上。在實(shí)際應(yīng)用中本仿真組件清晰、而又簡單的對(duì)外接口,對(duì)基于HLA分布式仿真應(yīng)用系統(tǒng)功能開發(fā)者基本上不需要了解他的設(shè)計(jì)和實(shí)現(xiàn),就能很好地使用本組件完成通信要求,從而將最大程度上為開發(fā)者節(jié)省項(xiàng)目時(shí)間、項(xiàng)目花費(fèi)。

            組件采用異步SOCKET套接字進(jìn)行自封裝,隱藏了組件通信如何進(jìn)行的過程,從而不必要求對(duì)HLA傳真系統(tǒng)功能開發(fā)者關(guān)心底層網(wǎng)絡(luò)通信是如何進(jìn)行的。同時(shí)組件工作的異步模式下,對(duì)系統(tǒng)不會(huì)產(chǎn)生過大的資源浪費(fèi),同時(shí)也能很好地滿足HLA分布式仿真節(jié)點(diǎn)的實(shí)時(shí)性要求。

           



          關(guān)鍵詞: HLA DIS

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();