專利名稱:基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及局域網(wǎng)和廣域網(wǎng)上的支撐大規(guī)模仿真的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,包括仿真終端的局部集成環(huán)境和多層次分布式服務(wù)環(huán)境的實(shí)現(xiàn)方法。
背景技術(shù):
高層體系結(jié)構(gòu)HLA(High Level Architecture)為分布式仿真的建模和實(shí)踐提供了一個(gè)通用的技術(shù)框架和開放的標(biāo)準(zhǔn)。HLA的具體實(shí)現(xiàn)是運(yùn)行支撐環(huán)境RTI (RunTimeInfrastructure),RTI提供了一組通用服務(wù),這些服務(wù)包括聯(lián)邦管理、聲明管理、對(duì)象管理、所有權(quán)管理、時(shí)間管理、數(shù)據(jù)分發(fā)管理六個(gè)方面。目前RTI主要有以下幾種類型I、集中式。主要代表是日本三菱公司的eRTI等。2、功能分布式。主要代表是國(guó)防科大的KDRTI,瑞典的pRTI等。3、全分布式。比如Georgia大學(xué)的Π)Κ。4、層次式。比如國(guó)防科大的StarRTI,北京航空航天大學(xué)的BHRTI目前RTI主要存在了以下幾個(gè)問(wèn)題一、容錯(cuò)性需增強(qiáng)。I、目前各種RTI,除了全分布式RTI外,都存在一個(gè)中心RTI,負(fù)責(zé)全局相關(guān)事務(wù)處理,如果該中心RTI故障,將造成整個(gè)聯(lián)邦故障。全分布式RTI的問(wèn)題在于,當(dāng)仿真規(guī)模增加到一定程度后,系統(tǒng)復(fù)雜度過(guò)大,效率和可靠性難以保證。2、對(duì)于層次式RTI,如果某個(gè)局部RTI故障,也將造成該RTI負(fù)責(zé)的一組成員仿真中斷甚至失敗,盡管有些容錯(cuò)處理,比如BHRTI通過(guò)心跳機(jī)制檢測(cè)故障RTI并恢復(fù),但是在恢復(fù)期間,受影響的該組成員是無(wú)法繼續(xù)參與仿真的。二、網(wǎng)絡(luò)負(fù)載平衡能力需增強(qiáng)。目前的所有擁有多服務(wù)器的RTI,要實(shí)現(xiàn)服務(wù)器間的網(wǎng)絡(luò)負(fù)載平衡,只能通過(guò)靜態(tài)配置手段,在仿真初始前優(yōu)化配置好各RTI服務(wù)器下屬的成員,而無(wú)法在仿真運(yùn)行時(shí)動(dòng)態(tài)實(shí)現(xiàn)RTI服務(wù)器之間的網(wǎng)絡(luò)負(fù)載平衡。三、數(shù)據(jù)分發(fā)管理層次只到成員為止,軟件復(fù)用級(jí)別的粒度偏大。在HLA標(biāo)準(zhǔn)中SOM規(guī)定了成員級(jí)的需求和公布信息,RTI負(fù)責(zé)將需求信息只分發(fā)到成員為止,成員接收到信息后自行處理。不同成員的SOM是不同的,在不同仿真應(yīng)用中難以遇到完全相同功能需求的成員,這樣造成了成員復(fù)用難度較大。即使仿真中基于BOM規(guī)范來(lái)提高可復(fù)用性,也只是在仿真對(duì)象模型基礎(chǔ)上的復(fù)用,這與軟件模塊的復(fù)用含義不同。對(duì)于軟件設(shè)計(jì)而言,要提高軟件復(fù)用能力,就得減小軟件復(fù)用模塊的粒度,粒度越小,復(fù)用性越好。四、聲明管理既要聲明定購(gòu)內(nèi)容,又要聲明公布內(nèi)容,在使用上比較繁瑣。五、目前,還有大量的非HLA方式開發(fā)的分布式仿真系統(tǒng),其交互信息往往并非劃 分為對(duì)象類和交互類,數(shù)據(jù)傳輸時(shí)也不是按照RTI的接口方法逐個(gè)設(shè)置對(duì)象類屬性值,而是直接發(fā)送一段數(shù)據(jù)包。這樣的舊系統(tǒng)在進(jìn)行適應(yīng)性改造時(shí),除了內(nèi)部處理流程外的所有內(nèi)容都要重新設(shè)計(jì)和開發(fā),使舊系統(tǒng)改造的工作量較大。六、HLA標(biāo)準(zhǔn)規(guī)定的接口方法細(xì)致具體,其中IEEE1516版本達(dá)到146個(gè),這也造成了利用RTI開發(fā)人員必須接受系統(tǒng)的培訓(xùn)后才可能掌握。但是在一般的分布式仿真系統(tǒng)開發(fā)中,開發(fā)人員往往沒(méi)有必要掌握所有接口方法來(lái)實(shí)現(xiàn)全方位控制,實(shí)際需要主動(dòng)調(diào)用的功能集中于聯(lián)邦創(chuàng)建、加入和退出聯(lián)邦、時(shí)間推進(jìn)、需求聲明、對(duì)象和交互數(shù)據(jù)發(fā)布等,需要的回調(diào)方法集中在時(shí)間同步、對(duì)象和交互數(shù)據(jù)更新和聯(lián)邦管理事件等。
發(fā)明人針對(duì)以上問(wèn)題,提出了一種基于多層次分布式服務(wù)的分布仿真支撐環(huán)境,給出了一個(gè)從使用角度看更簡(jiǎn)單,但是能夠支持從局域網(wǎng)到廣域網(wǎng)的大規(guī)模分布式仿真的支撐環(huán)境的實(shí)現(xiàn)方法。本發(fā)明具備HLA提出的六大功能,但并不致力于與HLA接口標(biāo)準(zhǔn)相兼容。
發(fā)明內(nèi)容
本發(fā)明的目的在于提高大規(guī)模分布式仿真系統(tǒng)的容錯(cuò)能力、網(wǎng)絡(luò)負(fù)載平衡能力,減小仿真成員軟件復(fù)用粒度以及簡(jiǎn)化開發(fā)人員工作。本發(fā)明采用的技術(shù)方案是一種基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,包括了本地服務(wù)組件LSC (Local Service Component)和遠(yuǎn)程服務(wù)組件RSC (RemoteService Component)的組織管理方法,仿真成員由本地服務(wù)組件LSC提供服務(wù),每個(gè)仿真成員由多個(gè)可重用模塊構(gòu)成,本地服務(wù)組件LSC為各個(gè)模塊生成代理,并維護(hù)一個(gè)按名字區(qū)分的本地?cái)?shù)據(jù)環(huán)境;其特征在于多個(gè)本地服務(wù)組件LSC支持下的一組仿真成員由一組遠(yuǎn)程服務(wù)組件RSC提供服務(wù),由遠(yuǎn)程服務(wù)組件RSC組成的服務(wù)組根據(jù)地位不同分為中間層RSC服務(wù)組和中心層RSC服務(wù)組,它們分別由若干個(gè)網(wǎng)絡(luò)全連接的遠(yuǎn)程服務(wù)組件RSC構(gòu)成;一個(gè)系統(tǒng)只有一個(gè)中心層RSC服務(wù)組,中心層RSC服務(wù)組按樹型結(jié)構(gòu)管理若干中間層RSC服務(wù)組,各中間層RSC服務(wù)組下面還可以延伸出新的中間層RSC服務(wù)組,最底層的是本地服務(wù)組件LSC,同時(shí),中心層RSC服務(wù)組和任何一個(gè)中間層RSC服務(wù)組也可以直接導(dǎo)出本地服務(wù)組件LSC ;同一仿真成員不同模塊間信息交互由本地服務(wù)組件LSC獨(dú)立完成,不同仿真成員之間進(jìn)行信息交互,由它們之間最短網(wǎng)絡(luò)路徑上的本地服務(wù)組件LSC和遠(yuǎn)程服務(wù)組件RSC協(xié)調(diào)完成,涉及到全局事務(wù)則通過(guò)中心層RSC服務(wù)組參與協(xié)調(diào)完成;這樣,多層次的分布式遠(yuǎn)程服務(wù)組件RSC服務(wù)組將多個(gè)仿真成員組管理起來(lái),形成一個(gè)分布仿真系統(tǒng),并為其提供所需的服務(wù)功能,包括系統(tǒng)管理、時(shí)間管理、需求管理、數(shù)據(jù)分發(fā)管理、對(duì)象管理和所有權(quán)管理;這些服務(wù)功能的實(shí)現(xiàn)是基于支撐環(huán)境內(nèi)部定義的互操作協(xié)議,該協(xié)議的基礎(chǔ)是自定義的消息。所述支撐環(huán)境是以中心層RSC服務(wù)組為核心,通過(guò)多個(gè)中間層RSC服務(wù)組向外不斷延伸的服務(wù)體系,每個(gè)服務(wù)組內(nèi)部是全連接的對(duì)等網(wǎng)關(guān)系,組與組之間是樹型結(jié)構(gòu)關(guān)系;任何時(shí)刻,只要每個(gè)服務(wù)組至少還有一個(gè)遠(yuǎn)程服務(wù)組件RSC正常工作,整個(gè)環(huán)境就能正常運(yùn)行。所述支撐環(huán)境的樹型結(jié)構(gòu)中屬相鄰兩級(jí)的中心層RSC服務(wù)組、中間層RSC服務(wù)組或者本地服務(wù)組件LSC之間互稱上級(jí)服務(wù)組和下級(jí)服務(wù)組。下級(jí)服務(wù)組中的各個(gè)組員在上級(jí)服務(wù)組中選擇連接的上級(jí)組員是根據(jù)消息處理時(shí)長(zhǎng)來(lái)決定的;首先上、下級(jí)服務(wù)組間互相連接的組員之間通過(guò)周期性時(shí)間校正消息來(lái)測(cè)定上下級(jí)間的時(shí)間差,然后上級(jí)組員通過(guò)消息時(shí)戳來(lái)檢測(cè)消息處理時(shí)長(zhǎng)并將統(tǒng)計(jì)得到的數(shù)據(jù)通報(bào)全組,組員負(fù)載相差較大時(shí),高負(fù)載組員向它的某個(gè)下級(jí)組員發(fā)出遷移消息,使該下級(jí)組員重新連接到上級(jí)服務(wù)組中其他負(fù)載較輕的組員;這種方法同樣用于處置服務(wù)組內(nèi)出現(xiàn)的組員故障情況。
所述仿真成員只提出需求信息即可,由支撐環(huán)境按級(jí)進(jìn)行需求信息融合,最終匯總到中心層RSC服務(wù)組,然后再分別按級(jí)融合后下發(fā)到各仿真成員;需求信息帶有作用域和周期兩種屬性,能夠進(jìn)一步優(yōu)化數(shù)據(jù)分發(fā)管理和需求管理,提高全系統(tǒng)的效率。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)這種基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法是以中心層服務(wù)組為核心,通過(guò)多層次的中間層服務(wù)組向外延伸,組與組之間構(gòu)成樹型關(guān)系,每個(gè)服務(wù)組內(nèi)部都是全連接對(duì)等網(wǎng),組內(nèi)采用基于消息處理時(shí)長(zhǎng)的網(wǎng)絡(luò)負(fù)載平衡算法,用于優(yōu)化網(wǎng)絡(luò)效率并提高系統(tǒng)容錯(cuò)能力。支撐環(huán)境的最底層是由可重用模塊構(gòu)成的仿真成員提供支撐的本地服務(wù)端,中心層與任何中間層也能直接連接仿真成員。仿真成員只提出需求信息,需求信息帶有作用域與周期屬性,通過(guò)支撐環(huán)境融合處理后再下發(fā)到各仿真成員,實(shí)現(xiàn)更為優(yōu)化的需求管理和數(shù)據(jù)分發(fā)管理。該方法增強(qiáng)了大規(guī)模分布式仿真中的容錯(cuò)能力和網(wǎng)絡(luò)負(fù)載平衡能力,改善了網(wǎng)絡(luò)交互性能,消除了影響系統(tǒng)效率瓶頸,提高了仿真成員的可重用性和靈活性,進(jìn)一步優(yōu)化了需求管理和數(shù)據(jù)分發(fā)管理模式。
圖I是本地服務(wù)組件LSC與仿真成員和遠(yuǎn)程服務(wù)組件RSC關(guān)系圖;圖2是本地服務(wù)組件LSC實(shí)現(xiàn)原理圖;圖3是遠(yuǎn)程服務(wù)組件RSC與其他RSC和LSC連接關(guān)系圖;圖4是RSC服務(wù)組全連接關(guān)系圖;圖5是RSC服務(wù)組內(nèi)組播關(guān)系圖;圖6是遠(yuǎn)程服務(wù)組件RSC與上下級(jí)通信實(shí)現(xiàn)原理圖;圖7是遠(yuǎn)程服務(wù)組件RSC與同組的RSC通信實(shí)現(xiàn)原理圖;圖8是多層次分布式服務(wù)的實(shí)現(xiàn)原理圖;圖9是時(shí)鐘差檢測(cè)原理圖;圖10是RSC故障或負(fù)載過(guò)重時(shí)網(wǎng)絡(luò)連接遷移示意圖;圖11是需求信息融合上報(bào)與下達(dá)路徑示意圖。
具體實(shí)施例方式以下參照附圖對(duì)本發(fā)明做進(jìn)一步描述。基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)是依靠多個(gè)本地服務(wù)組件LSC和多個(gè)遠(yuǎn)程服務(wù)組件RSC共同作用,在網(wǎng)絡(luò)內(nèi)形成一個(gè)統(tǒng)一的數(shù)據(jù)環(huán)境。在該環(huán)境里的所有仿真成員相互之間的位置是透明的。環(huán)境內(nèi)最基本的通信單元是消息,在各種消息的基礎(chǔ)上,實(shí)現(xiàn)分布仿真支撐環(huán)境的聯(lián)邦管理、需求管理、時(shí)間管理、數(shù)據(jù)分發(fā)管理、對(duì)象管理和所有權(quán)管理。圖I描述了本地服務(wù)組件LSC與仿真成員和遠(yuǎn)程服務(wù)組件RSC關(guān)系仿真成員的基本軟件單元是可重用模塊,例如C++類的源代碼文件、動(dòng)態(tài)連接庫(kù)或可執(zhí)行程序等。每個(gè)仿真成員由一個(gè)本地服務(wù)組件LSC通過(guò)若干模塊代理提供服務(wù)。一個(gè)本地服務(wù)組件LSC通過(guò)網(wǎng)絡(luò)與一個(gè)遠(yuǎn)程服務(wù)組件RSC連接,一臺(tái)計(jì)算機(jī)內(nèi)可以同時(shí)運(yùn)行多個(gè)本地服務(wù)組件LSC,不同LSC按名稱區(qū)分。圖2描 述了本地服務(wù)組件LSC實(shí)現(xiàn)原理仿真成員內(nèi)的可重用模塊首先向本地服務(wù)組件LSC提出申請(qǐng),然后本地服務(wù)組件LSC為每個(gè)模塊單獨(dú)生成一個(gè)代理,該模塊代理接受所屬模塊的需求聲明和消息發(fā)布請(qǐng)求,并且在模塊所需求的數(shù)據(jù)更新時(shí)回調(diào)模塊提供的接口。本地服務(wù)組件LSC融合所有模塊代理的需求情況,生成本地服務(wù)組件LSC的需求之后通過(guò)對(duì)上連接代理上報(bào)遠(yuǎn)程服務(wù)組件RSC。本地服務(wù)組件LSC通過(guò)唯一的對(duì)上連接代理來(lái)維護(hù)一對(duì)按LSC名稱區(qū)分的本地全局唯一的消息入隊(duì)列和出隊(duì)列,模塊代理為其所屬模塊維護(hù)一個(gè)消息出隊(duì)列和一個(gè)消息入隊(duì)列。當(dāng)遠(yuǎn)程服務(wù)組件RSC發(fā)送來(lái)新消息時(shí),本地服務(wù)組件LSC先將消息入列,然后喚醒所有模塊代理的觀察線程。模塊代理的觀察線程從LSC的消息入隊(duì)列中根據(jù)自身需求取回?cái)?shù)據(jù)并加入到自身的消息入隊(duì)列中,再喚醒其消息線程。消息線程從消息入隊(duì)列中按先入先出的原則取出消息,并回調(diào)所屬模塊的接口。當(dāng)模塊有消息發(fā)出時(shí),其代理將消息排隊(duì)后發(fā)往本地服務(wù)組件LSC的消息出隊(duì)列,本地服務(wù)組件LSC按先入先出原則取出消息后,一方面根據(jù)上級(jí)需求將數(shù)據(jù)過(guò)濾后通過(guò)對(duì)上連接代理發(fā)給遠(yuǎn)程服務(wù)組件RSC,一方面根據(jù)LSC需求將數(shù)據(jù)過(guò)濾后加入消息入隊(duì)列。圖3描述了遠(yuǎn)程服務(wù)組件RSC與其他RSC和LSC的連接關(guān)系一個(gè)RSC在一個(gè)時(shí)刻只能對(duì)上連接一個(gè)RSC,可以連接多個(gè)同組的RSC,也可以接受多個(gè)LSC和RSC的連接,相對(duì)于該RSC,其他的分別可稱為上級(jí)RSC、同組RSC和下級(jí)RSC/LSC。圖4描述了 RSC服務(wù)組內(nèi)全連接網(wǎng)絡(luò)關(guān)系一個(gè)RSC服務(wù)組由多個(gè)RSC個(gè)體組成,組內(nèi)的RSC互相之間分別建立連接,形成一個(gè)全連接的對(duì)等網(wǎng)。如果有新加入的RSC,它必須掌握同組信息并主動(dòng)連接其他RSC,然后其他RSC再回連,當(dāng)建立了穩(wěn)定的全連接并初始化相關(guān)數(shù)據(jù)之后,RSC服務(wù)組就成功地接納了新成員。當(dāng)組內(nèi)某個(gè)RSC主動(dòng)退出或出現(xiàn)故障,其他的RSC會(huì)在至多一個(gè)檢測(cè)周期后發(fā)現(xiàn),然后各RSC更新本組信息并清理對(duì)應(yīng)的連接和接收代理。中間層RSC服務(wù)組與中心層RSC服務(wù)組的區(qū)別在于中心層RSC服務(wù)組沒(méi)有上級(jí)管理層。圖5描述了 RSC服務(wù)組內(nèi)組播關(guān)系當(dāng)RSC服務(wù)組所在網(wǎng)絡(luò)支持網(wǎng)絡(luò)組播時(shí),RSC服務(wù)組內(nèi)的RSC都加入同一個(gè)組播組,通過(guò)組播發(fā)布自身的網(wǎng)絡(luò)地址、上級(jí)RSC信息和負(fù)載信息,新加入的RSC首先加入該組播組,接收到同組信息后主動(dòng)連接其他RSC,然后其他RSC再回連。圖6、圖7描述了遠(yuǎn)程服務(wù)組件RSC的實(shí)現(xiàn)方法RSC服務(wù)組內(nèi)的每個(gè)RSC都具有同樣的結(jié)構(gòu)和功能。從網(wǎng)絡(luò)連接的角度看,遠(yuǎn)程服務(wù)組件RSC既能接受多個(gè)本地服務(wù)組件LSC和多個(gè)下級(jí)遠(yuǎn)程服務(wù)組件RSC的連接,也能夠作為客戶連接上級(jí)遠(yuǎn)程服務(wù)組件RSC,同時(shí)還可以與同組的遠(yuǎn)程服務(wù)組件RSC互連。遠(yuǎn)程服務(wù)組件RSC通過(guò)一個(gè)向上連接代理與一個(gè)上級(jí)RSC通信,向上連接代理中維護(hù)一個(gè)消息入隊(duì)列和消息出隊(duì)列,并保存上級(jí)傳來(lái)的上級(jí)需求;通過(guò)多對(duì)連接代理和接收代理與同組的每個(gè)遠(yuǎn)程服務(wù)組件RSC實(shí)現(xiàn)互連,這些連接代理中只有消息出隊(duì)列,同時(shí)負(fù)責(zé)接收保存對(duì)方傳來(lái)的同組需求,接收代理中擁有消息入隊(duì)列,同時(shí)將下級(jí)融合需求發(fā)出;通過(guò)一一對(duì)應(yīng)的下級(jí)接收代理來(lái)處理各下級(jí)的相關(guān)事務(wù),這些接收代理為對(duì)應(yīng)的下級(jí)維護(hù)一個(gè)消息入隊(duì)列和一個(gè)消息出隊(duì)列,并且記憶下級(jí)的需求,所有下級(jí)的需求被融合后上報(bào)到上級(jí)和同組RSC。當(dāng)對(duì)上連接代理接收到上級(jí)RSC的消息以及連接同組RSC的接收代理接收到同組的消息時(shí),它們將消息首先分別加入各自的消息入隊(duì)列,隊(duì)列不斷彈出消息并根據(jù)各個(gè)下級(jí)接收代理的需求情況加入對(duì)應(yīng)的消息入隊(duì)列,進(jìn)而發(fā)往下級(jí)。當(dāng)下級(jí)接收代理接收到上傳的消息后,一方面根據(jù)對(duì)上連接代理中的上級(jí)需求和同組連接代理的同組需求將消息加入對(duì)上連接代理和同組連接代理的消息出隊(duì)列,一方面根據(jù)其他下級(jí)的需求將消息加入到對(duì)應(yīng)的下級(jí)接收代理的消息入隊(duì)列中。圖8描述了多層次分布式服務(wù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)多層次分布式服務(wù)是指以中心層RSC服務(wù)組為核心,根據(jù)系統(tǒng)規(guī)模需求向外延伸多個(gè)層次的中間層RSC服務(wù)組,整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)呈樹型結(jié)構(gòu),樹型結(jié)構(gòu)的末端就是由本地服務(wù)組件LSC提供支撐的仿真成員,中心層RSC服務(wù)組和任何中間層RSC服務(wù)組都能直接連接LSC。RSC服務(wù)組內(nèi)的各個(gè)RSC節(jié)點(diǎn)周期性統(tǒng)計(jì)消息處理時(shí)長(zhǎng)作為負(fù)載指標(biāo),如果某個(gè)RSC節(jié)點(diǎn)負(fù)載過(guò)重,那么消息處理時(shí)長(zhǎng)將會(huì)增加,相當(dāng)于負(fù)載指標(biāo)增大,它的下級(jí)節(jié)點(diǎn)將自行選擇同一服務(wù)組內(nèi)的其他負(fù)載較輕的遠(yuǎn)程服務(wù)組件RSC作為上級(jí);另外,當(dāng)遠(yuǎn)程服務(wù)組件RSC節(jié)點(diǎn)故障時(shí),它的下屬節(jié)點(diǎn)也能自行選擇新的遠(yuǎn)程服務(wù)組件RSC上級(jí),確保了整個(gè)仿真系統(tǒng)的實(shí)時(shí)性和可靠性。這種多層次的分布式服務(wù)確保了在任意時(shí)刻,只要每個(gè)中間層服務(wù)組或中心服務(wù)組都至少還有一個(gè)遠(yuǎn)程服務(wù)組件RSC服務(wù)端能正常工作,就能夠確保整個(gè)系統(tǒng)的正常運(yùn)行,這樣就提升了系統(tǒng)的容錯(cuò)能力和網(wǎng)絡(luò)負(fù)載平衡能力。圖9描述了基于消息處理時(shí)長(zhǎng)的自適應(yīng)網(wǎng)絡(luò)負(fù)載平衡算法中的時(shí)鐘差檢測(cè)原理。檢測(cè)的最終目的在于檢測(cè)出RSC服務(wù)組內(nèi)相對(duì)高載和低載的RSC,不需要檢測(cè)結(jié)果非常精確。在基本滿足精度需求前提下,本發(fā)明在沒(méi)有外界輔助手段情況下通過(guò)如下方法實(shí)現(xiàn)時(shí)鐘差的檢測(cè)設(shè)上下級(jí)間的時(shí)鐘差固定為S,當(dāng)每個(gè)時(shí)差檢測(cè)周期到來(lái)時(shí),在T1時(shí)刻下級(jí)RSC或LSC向上級(jí)RSC發(fā)出時(shí)鐘校正消息,上級(jí)RSC經(jīng)過(guò)網(wǎng)絡(luò)傳輸λ :時(shí)間后在T2時(shí)刻接收到,并在處理時(shí)間△后將T2時(shí)刻信息包含在時(shí)鐘校正消息內(nèi)反饋回下級(jí),下級(jí)經(jīng)過(guò)網(wǎng)絡(luò)傳輸λ2時(shí)間后在1~3時(shí)刻收到。根據(jù)精度需求,可以認(rèn)為X1=入2和Λ =0,于是得到檢測(cè)值δ =T2-(VT3)^0由于理論上上下級(jí)的兩個(gè)連接節(jié)點(diǎn)間的時(shí)鐘差是個(gè)不變的恒定值,所以將此后η個(gè)檢測(cè)周期的測(cè)量值δ^·· 611進(jìn)行遞推最小二乘濾波,其中取初值式=5,# = 0,可得到第η次檢測(cè)的濾波值&,隨著時(shí)間延長(zhǎng),檢測(cè)精度將不斷提高。圖10描述了 RSC服務(wù)組內(nèi)的某RSC故障或負(fù)載過(guò)重時(shí)網(wǎng)絡(luò)連接遷移過(guò)程實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載平衡和容錯(cuò)處理是依據(jù)基于消息處理時(shí)長(zhǎng)的自適應(yīng)網(wǎng)絡(luò)負(fù)載平衡算法。所有RSC服務(wù)組都通過(guò)該算法動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)連接,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的動(dòng)態(tài)平衡。具體方法如下I、檢測(cè)消息處理時(shí)長(zhǎng)。(I)檢測(cè)上下級(jí)間的時(shí)鐘差;(2)每個(gè)消息都附有時(shí)戳信息,在消息即將發(fā)出前,將消息內(nèi)的時(shí)戳在本地時(shí)鐘基礎(chǔ)上修正與對(duì)方的時(shí)鐘差,使時(shí)戳修正到以消息接收方時(shí)鐘為基準(zhǔn)的時(shí)鐘值;(3)接收方接收并處理完消息后,取出消息內(nèi)時(shí)戳與本地時(shí)鐘比較,就能得到該條消息的處理時(shí)長(zhǎng)。消息處理時(shí)長(zhǎng)包括網(wǎng)上傳輸時(shí)間和接收方處理時(shí)間。 2、時(shí)長(zhǎng)數(shù)據(jù)處理。接收方處理完每條消息后都能獲得該消息的處理時(shí)長(zhǎng),首先采用卡爾曼濾波算法對(duì)每個(gè)時(shí)長(zhǎng)數(shù)據(jù)進(jìn)行濾波得到相對(duì)平滑數(shù)據(jù),然后在一個(gè)網(wǎng)絡(luò)負(fù)載平衡檢測(cè)周期結(jié)束時(shí),計(jì)算周期內(nèi)所有卡爾曼濾波值的數(shù)學(xué)期望,并以此作為最終的負(fù)載指標(biāo)。3、網(wǎng)絡(luò)負(fù)載平衡以及容錯(cuò)策略。RSC服務(wù)組內(nèi)的RSC在組內(nèi)定期通報(bào)自身的負(fù)載數(shù)據(jù),并在服務(wù)組內(nèi)成員發(fā)生變化時(shí)將組內(nèi)所有RSC的地址信息通知所有下級(jí)節(jié)點(diǎn),然后按照下面步驟進(jìn)行網(wǎng)絡(luò)負(fù)載平衡調(diào)整(I)將組內(nèi)所有遠(yuǎn)程服務(wù)組件RSC按負(fù)載值排序;(2)計(jì)算所有遠(yuǎn)程服務(wù)組件RSC負(fù)載的均值,將各節(jié)點(diǎn)按其負(fù)載與均值偏離程度分成高、中、低三組;(3)根據(jù)最高負(fù)載值大小以及最高負(fù)載與最低負(fù)載的偏離程度是否超過(guò)檢測(cè)閾來(lái)確定是否激活負(fù)載平衡調(diào)整,如不調(diào)整轉(zhuǎn)步驟(10);否則轉(zhuǎn)步驟(4);(4)選擇高負(fù)載組內(nèi)所有遠(yuǎn)程服務(wù)組件RSC作為被調(diào)整對(duì)象,選擇中負(fù)載和低負(fù)載組內(nèi)低于負(fù)載均值的所有RSC作為待選的目標(biāo)來(lái)接收遷移對(duì)象;(5)在每個(gè)作為被調(diào)整對(duì)象的RSC在待選的負(fù)載較低的RSC中選擇負(fù)載遷移目標(biāo)時(shí),首先計(jì)算待選RSC的負(fù)載與均值的偏離量,然后根據(jù)計(jì)算值按輪盤賭算法挑選出遷移 目標(biāo);(6)在被調(diào)整的遠(yuǎn)程服務(wù)組件RSC中,各下級(jí)接收代理統(tǒng)計(jì)各自接收的消息量,并按消息量由少到多的順序排序,接收消息量最少的代理對(duì)應(yīng)的下級(jí)優(yōu)先考慮遷移。選出待遷移的下級(jí)后,通過(guò)對(duì)應(yīng)的下級(jí)接收代理將帶有遷移目標(biāo)的遷移命令發(fā)到下級(jí);(7)該下級(jí)接收到遷移命令后,首先保存現(xiàn)場(chǎng),斷開當(dāng)前連接并重新連接到指定的遷移目標(biāo),最后恢復(fù)現(xiàn)場(chǎng);(8) RSC服務(wù)組內(nèi)各RSC將負(fù)載初始化,重新開始負(fù)載檢測(cè);(9)當(dāng)發(fā)現(xiàn)較短時(shí)期內(nèi)出現(xiàn)了重復(fù)的被調(diào)整對(duì)象時(shí),說(shuō)明出現(xiàn)了系統(tǒng)抖動(dòng),此時(shí)該RSC需要上調(diào)檢測(cè)閾;(10)下一調(diào)整周期重新執(zhí)行(I) (10)步驟。圖11描述了需求信息融合上報(bào)與下達(dá)過(guò)程本發(fā)明的特點(diǎn)之一是所有仿真終端只聲明需求內(nèi)容,不聲明公布內(nèi)容,而且每條需求信息中都設(shè)置了作用域和周期這兩種屬性,通過(guò)這些屬性來(lái)控制需求信息影響范圍和程度。本地服務(wù)組件LSC和中間層RSC逐級(jí)將下級(jí)發(fā)來(lái)所有需求融合后上報(bào)并向同組通報(bào),最終上報(bào)到中心層RSC服務(wù)組。中心層RSC服務(wù)組首先融合需求,然后分別逐級(jí)下發(fā)。下發(fā)過(guò)程中,各級(jí)遠(yuǎn)程服務(wù)組件RSC往每個(gè)下級(jí)發(fā)出的需求都是上級(jí)、同組以及與該下級(jí)不屬同一 RSC服務(wù)組的其他下級(jí)這三方需求融合的結(jié)果。傳輸中具體原則為I、需求信息在由樹型結(jié)構(gòu)底層末端向中心層方向傳播過(guò)程中,每經(jīng)過(guò)一層其作用域就自行減1,當(dāng)作用域減到O時(shí),該需求信息不能再向上傳;需求信息在向同級(jí)和下級(jí)傳播時(shí)不受作用域限制,該屬性也不發(fā)生變化。相同類型需求在融合時(shí)作用域?qū)傩匀∑渲械淖畲笾?。例如某可重用模塊定購(gòu)需求的作用域?yàn)?,該需求信息只上傳一級(jí)到本地服務(wù)組件LSC為止,遠(yuǎn)程服務(wù)組件RSC接收不到該需求信息,這樣,該模塊只接收仿真成員內(nèi)部其他模塊發(fā)出的消息,不受其他節(jié)點(diǎn)的影響;如果作用域足夠大,能夠到達(dá)中心遠(yuǎn)程服務(wù)組件RSC服務(wù)組,那么該需求信息就能影響系統(tǒng)全局,相當(dāng)于全系統(tǒng)范圍內(nèi)發(fā)生的這種消息都將發(fā)送到該模塊中。2、來(lái)自上級(jí)的消息,不向該項(xiàng)需求作用域?yàn)镺的下級(jí)連接代理發(fā)出;來(lái)自同級(jí)和其他下級(jí)的消息則不受限制。3、周期值用于控制需求信息響應(yīng)的頻率。例如周期為2時(shí),該需求信息每發(fā)生2次才能發(fā)出,周期值越大,支撐環(huán)境對(duì)該需求信息響應(yīng)的速度就越慢。相同類型需求在融合時(shí)周期值取其中的最小值。4、每一個(gè)本地服務(wù)組件LSC和遠(yuǎn)程服務(wù)組件RSC首先檢測(cè)新融合的需求信息是否與原有需求信息一致,只在發(fā)生變化時(shí)才上報(bào)或下發(fā)。本發(fā)明的核心有三點(diǎn)一是采用了基于網(wǎng)絡(luò)負(fù)載平衡算法的多層次分布式服務(wù);二是將仿真成員進(jìn)一步劃分為具備統(tǒng)一接口規(guī)范的可重用模塊;三是采用了可以自定義作用域和周期的需求管理模式。采用本發(fā)明可達(dá)到以下有益效果1、使分布式仿真系統(tǒng)具備極強(qiáng)的容錯(cuò)能力和很好的網(wǎng)絡(luò)負(fù)載平衡能力。只要每個(gè)中間層RSC服務(wù)組和中心層RSC服務(wù)組中都至少還有一個(gè)RSC能正常工作,就能確保系統(tǒng)在短暫調(diào)整后自行恢復(fù)正常。2、由于多層次的遠(yuǎn)程服務(wù)組件RSC能夠起到數(shù)據(jù)中繼作用,從而可以使得在經(jīng)過(guò)多重網(wǎng)絡(luò)地址轉(zhuǎn)換管理下的多層次的局域網(wǎng)到廣域網(wǎng)范圍內(nèi)的所有參與仿真的計(jì)算機(jī)都統(tǒng)一在一個(gè)分布仿真支撐環(huán)境下。3、由于采用多層次分布式服務(wù),有效擴(kuò)大了分布式仿真系統(tǒng)可支持的規(guī)模程度。4、提高了仿真系統(tǒng)的效率,解決了以往集中式或?qū)哟渭惺降姆抡嫦到y(tǒng)中的瓶頸問(wèn)題。5、將仿真成員進(jìn)一步劃分為松耦合的具備統(tǒng)一接口規(guī)范的可重用模塊,模塊由本地服務(wù)組件LSC支持,使仿真的重用粒度更小,增強(qiáng)了可重用性和靈活性。6、相比HLA規(guī)范,只進(jìn)行定購(gòu)聲明,免除了公布聲明,從而簡(jiǎn)化了操作,而且需求信息可以設(shè)置作用域和周期,進(jìn)一步優(yōu)化了需求管理和數(shù)據(jù)分發(fā)管理模式,提高了系統(tǒng)的效率。
權(quán)利要求
1.一種基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,包括了本地服務(wù)組件LSC (Local Service Component)和遠(yuǎn)程服務(wù)組件 RSC (Remote Service Component)的組織管理方法,仿真成員由本地服務(wù)組件LSC提供服務(wù),每個(gè)仿真成員由多個(gè)可重用模塊構(gòu)成,本地服務(wù)組件LSC為各個(gè)模塊生成代理,并維護(hù)一個(gè)按名字區(qū)分的本地?cái)?shù)據(jù)環(huán)境;其特征在于多個(gè)本地服務(wù)組件LSC支持下的一組仿真成員由一組遠(yuǎn)程服務(wù)組件RSC提供服務(wù),由遠(yuǎn)程服務(wù)組件RSC組成的服務(wù)組根據(jù)地位不同分為中間層RSC服務(wù)組和中心層RSC服務(wù)組,它們分別由若干個(gè)網(wǎng)絡(luò)全連接的遠(yuǎn)程服務(wù)組件RSC構(gòu)成;一個(gè)系統(tǒng)只有一個(gè)中心層RSC服務(wù)組,中心層RSC服務(wù)組按樹 型結(jié)構(gòu)管理若干中間層RSC服務(wù)組,各中間層RSC服務(wù)組下面還可以延伸出新的中間層RSC服務(wù)組,最底層的是本地服務(wù)組件LSC,同時(shí),中心層RSC月艮務(wù)組和任何一個(gè)中間層RSC服務(wù)組也可以直接導(dǎo)出本地服務(wù)組件LSC ;同一仿真成員不同模塊間信息交互由本地服務(wù)組件LSC獨(dú)立完成,不同仿真成員之間進(jìn)行信息交互,由它們之間最短網(wǎng)絡(luò)路徑上的本地服務(wù)組件LSC和遠(yuǎn)程服務(wù)組件RSC協(xié)調(diào)完成,涉及到全局事務(wù)則通過(guò)中心層RSC服務(wù)組參與協(xié)調(diào)完成;這樣,多層次的分布式遠(yuǎn)程服務(wù)組件RSC服務(wù)組將多個(gè)仿真成員組管理起來(lái),形成一個(gè)分布仿真系統(tǒng),并為其提供所需的服務(wù)功能,包括系統(tǒng)管理、時(shí)間管理、需求管理、數(shù)據(jù)分發(fā)管理、對(duì)象管理和所有權(quán)管理;這些服務(wù)功能的實(shí)現(xiàn)是基于支撐環(huán)境內(nèi)部定義的互操作協(xié)議,該協(xié)議的基礎(chǔ)是自定義的消息。
2.根據(jù)權(quán)利要求I所述的基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,其特征在于所述支撐環(huán)境是以中心層RSC服務(wù)組為核心,通過(guò)多個(gè)中間層RSC服務(wù)組向外不斷延伸的服務(wù)體系,每個(gè)服務(wù)組內(nèi)部是全連接的對(duì)等網(wǎng)關(guān)系,組與組之間是樹型結(jié)構(gòu)關(guān)系;任何時(shí)刻,只要每個(gè)服務(wù)組至少還有一個(gè)遠(yuǎn)程服務(wù)組件RSC正常工作,整個(gè)環(huán)境就能正常運(yùn)行。
3.根據(jù)權(quán)利要求I所述的基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,其特征在于所述支撐環(huán)境的樹型結(jié)構(gòu)中屬相鄰兩級(jí)的中心層RSC服務(wù)組、中間層RSC服務(wù)組或者本地服務(wù)組件LSC之間互稱上級(jí)服務(wù)組和下級(jí)服務(wù)組。下級(jí)服務(wù)組中的各個(gè)組員在上級(jí)服務(wù)組中選擇連接的上級(jí)組員是根據(jù)消息處理時(shí)長(zhǎng)來(lái)決定的;首先上、下級(jí)服務(wù)組間互相連接的組員之間通過(guò)周期性時(shí)間校正消息來(lái)測(cè)定上下級(jí)間的時(shí)間差,然后上級(jí)組員通過(guò)消息時(shí)戳來(lái)檢測(cè)消息處理時(shí)長(zhǎng)并將統(tǒng)計(jì)得到的數(shù)據(jù)通報(bào)全組,組員負(fù)載相差較大時(shí),高負(fù)載組員向它的某個(gè)下級(jí)組員發(fā)出遷移消息,使該下級(jí)組員重新連接到上級(jí)服務(wù)組中其他負(fù)載較輕的組員;這種方法同樣用于處置服務(wù)組內(nèi)出現(xiàn)的組員故障情況。
4.根據(jù)權(quán)利要求I所述的基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法,其特征在于所述仿真成員只提出需求信息即可,由支撐環(huán)境按級(jí)進(jìn)行需求信息融合,最終匯總到中心層RSC服務(wù)組,然后再分別按級(jí)融合后下發(fā)到各仿真成員;需求信息帶有作用域和周期兩種屬性,能夠進(jìn)一步優(yōu)化數(shù)據(jù)分發(fā)管理和需求管理,提高全系統(tǒng)的效率。
全文摘要
一種基于多層次分布式服務(wù)的分布仿真支撐環(huán)境的實(shí)現(xiàn)方法。這種分布仿真支撐環(huán)境以中心層服務(wù)組為核心,通過(guò)多層次樹型關(guān)系的中間層服務(wù)組向外延伸,每個(gè)服務(wù)組內(nèi)部都是全連接對(duì)等網(wǎng),組內(nèi)采用基于消息處理時(shí)長(zhǎng)的網(wǎng)絡(luò)負(fù)載平衡算法來(lái)優(yōu)化網(wǎng)絡(luò)效率并提高容錯(cuò)能力。支撐環(huán)境的最底層是仿真成員,中心層以及各中間層也能直接連接仿真成員。仿真成員建立在本地服務(wù)端基礎(chǔ)上,由可重用模塊構(gòu)成。它只提出需求信息,需求信息帶有作用域與周期屬性,通過(guò)支撐環(huán)境融合處理并下發(fā)到各仿真成員,實(shí)現(xiàn)更優(yōu)化的需求管理和數(shù)據(jù)分發(fā)管理。該方法增強(qiáng)了大規(guī)模分布式仿真中的容錯(cuò)能力和網(wǎng)絡(luò)平衡能力,消除了影響系統(tǒng)效率瓶頸,提高了仿真成員的可重用性。
文檔編號(hào)H04L12/24GK102624543SQ20121001444
公開日2012年8月1日 申請(qǐng)日期2012年1月17日 優(yōu)先權(quán)日2012年1月17日
發(fā)明者余家祥, 周晶, 康鳳舉, 徐敬, 李鐵, 王鎖平 申請(qǐng)人:李鐵