一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)仿真技術(shù)領(lǐng)域,特別涉及一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法。
【背景技術(shù)】
[0002]高層體系結(jié)構(gòu)(High Level Architecture,HLA)是仿真技術(shù)發(fā)展的新階段,已成為目前仿真所采用的主要結(jié)構(gòu)。與傳統(tǒng)的DIS相比,HLA通過采取一系列的措施,提高了仿真系統(tǒng)間的互操作性和仿真模型的可重用性,然而,HLA在提高可重用性和互操作性的同時(shí)也導(dǎo)致了仿真數(shù)據(jù)的復(fù)雜化,從而增加了仿真系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)收集及記錄的難度,而數(shù)據(jù)收集是仿真的一項(xiàng)重要內(nèi)容,只有通過數(shù)據(jù)收集才可以實(shí)現(xiàn)回放、分析、評(píng)價(jià)等仿真目的。
[0003]目前,在HLA中通常利用以下三種方法將數(shù)據(jù)收集的功能加入仿真程序:
[0004]第一種:集中式的日志聯(lián)邦成員,該聯(lián)邦成員的唯一功能就是數(shù)據(jù)收集、訂購(gòu)并記錄所有收到的數(shù)據(jù)。
[0005]第二種:完全分散式,即將數(shù)據(jù)收集功能直接加入到各個(gè)仿真成員程序中。
[0006]第三種:是運(yùn)行支撐系統(tǒng)(RT1:Runtime Infrastructure)接口日志,其存在于仿真成員軟件與RTI的API之間,收集從聯(lián)邦成員到RTI及從RTI到聯(lián)邦成員的數(shù)據(jù)。
[0007]針對(duì)上述三種數(shù)據(jù)收集方法,HLA仿真系統(tǒng)中所采用的集中式數(shù)據(jù)記錄機(jī)制將會(huì)導(dǎo)致網(wǎng)絡(luò)擁塞和處理機(jī)負(fù)載過大,從而成為整個(gè)仿真系統(tǒng)的瓶頸;而且,在網(wǎng)絡(luò)數(shù)據(jù)傳輸率達(dá)到峰值的情況下,必然造成數(shù)據(jù)丟失,進(jìn)而影響統(tǒng)計(jì)分析結(jié)果的可信度。完全分散式以及RTI記錄中間件等記錄機(jī)制,盡管能夠在一定程度上緩解仿真規(guī)模與廣域網(wǎng)低帶寬之間的矛盾,減小數(shù)據(jù)記錄對(duì)仿真系統(tǒng)的負(fù)面影響,但是由于記錄數(shù)據(jù)的分散性,難以有效支持系統(tǒng)在線實(shí)時(shí)統(tǒng)計(jì)分析、AAR以及仿真過程回放需求,且易造成記錄冗余數(shù)據(jù)和記錄數(shù)據(jù)范圍的空白區(qū)。
【發(fā)明內(nèi)容】
[0008]本發(fā)明需解決的技術(shù)問題是提供一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法,以緩解由于網(wǎng)絡(luò)數(shù)據(jù)量達(dá)到峰值而導(dǎo)致網(wǎng)絡(luò)擁塞的問題,并同時(shí)能夠支持仿真系統(tǒng)在線實(shí)時(shí)分析、數(shù)據(jù)查詢和事后回顧分析等。
[0009]為解決上述問題,本發(fā)明提供一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法,其采用的技術(shù)方案如下:
[0010]S1、將高層體系結(jié)構(gòu)仿真系統(tǒng)中的各聯(lián)邦成員初始化,所述各聯(lián)邦成員分別包含多個(gè)數(shù)據(jù)記錄子模塊,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù);
[0011]S2、基于運(yùn)行支撐系統(tǒng),從多個(gè)聯(lián)邦成員中選擇一個(gè)聯(lián)邦成員創(chuàng)建聯(lián)邦執(zhí)行連接,并將其他聯(lián)邦成員加入到所述聯(lián)邦執(zhí)行中;
[0012]S3、所述多個(gè)聯(lián)邦成員分別通過其通信接口向所述運(yùn)行支撐系統(tǒng)訂購(gòu)各自的對(duì)象類和屬性,所述運(yùn)行支撐系統(tǒng)根據(jù)各聯(lián)邦成員的對(duì)象類和屬性,將仿真運(yùn)行中產(chǎn)生的數(shù)據(jù)分發(fā)給各聯(lián)邦成員;
[0013]S4、所述各聯(lián)邦成員按照初始設(shè)置的多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù),將接收到的數(shù)據(jù)分配到多個(gè)數(shù)據(jù)記錄子模塊中,并對(duì)所述多個(gè)數(shù)據(jù)記錄子模塊的負(fù)載進(jìn)行監(jiān)控,得到各數(shù)據(jù)記錄子模塊的當(dāng)前負(fù)載量;
[0014]S5、當(dāng)所述各聯(lián)邦成員接收到新的數(shù)據(jù)時(shí),所述各聯(lián)邦成員根據(jù)各數(shù)據(jù)記錄子模塊的當(dāng)前負(fù)載量,對(duì)多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)進(jìn)行動(dòng)態(tài)調(diào)度,并將各數(shù)據(jù)記錄子模塊收集的數(shù)據(jù)進(jìn)行存儲(chǔ),完成仿真數(shù)據(jù)的收集。
[0015]優(yōu)選的,所述步驟SI中,對(duì)于每一個(gè)聯(lián)邦成員,根據(jù)預(yù)設(shè)的數(shù)據(jù)收集量S,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)Si,其中,I Si Sn,所述Si滿足:S = Sl U S2 U S3…Sn0
[0016]優(yōu)選的,所述步驟SI中,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)Si時(shí),所述多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)滿足:
[0017]Sj n Sk 為空集,其中,j,k e i ; j 乒 k ;和 / 或 I SI I = I S2 I = I S3 I =…=Snl O
[0018]優(yōu)選的,所述步驟S3進(jìn)一步包括:
[0019]S31、基于運(yùn)行支撐系統(tǒng),為每個(gè)對(duì)象創(chuàng)建訂購(gòu)區(qū)域與更新區(qū)域;
[0020]S32、對(duì)于每一個(gè)對(duì)象,從其他對(duì)象中發(fā)現(xiàn)與該對(duì)象相關(guān)的更新區(qū)域,將該對(duì)象與所述更新區(qū)域連接;
[0021]S33、根據(jù)每個(gè)對(duì)象公布的交互類屬性,將各聯(lián)邦成員與該對(duì)象的訂購(gòu)區(qū)域連接,完成各聯(lián)邦成員各自的對(duì)象類的訂購(gòu);
[0022]S34、所述運(yùn)行支撐系統(tǒng)為各聯(lián)邦成員發(fā)現(xiàn)對(duì)象,被發(fā)現(xiàn)的對(duì)象將其更新屬性值提供給運(yùn)行支撐系統(tǒng),所述運(yùn)行支撐系統(tǒng)將所述更新屬性值分發(fā)給各聯(lián)邦成員,完成各聯(lián)邦成員各自的對(duì)象類屬性的訂購(gòu);
[0023]S35、所述運(yùn)行支撐系統(tǒng)根據(jù)各聯(lián)邦成員的對(duì)象類和屬性,將仿真運(yùn)行中產(chǎn)生的數(shù)據(jù)分發(fā)給各聯(lián)邦成員。
[0024]優(yōu)選的,所述步驟S4進(jìn)一步包括:
[0025]所述各聯(lián)邦成員通過管理器對(duì)所述多個(gè)數(shù)據(jù)記錄子模塊的運(yùn)行狀態(tài)進(jìn)行監(jiān)控;
[0026]所述管理器根據(jù)各數(shù)據(jù)記錄子模塊的運(yùn)行狀態(tài),計(jì)算各數(shù)據(jù)記錄子模塊的當(dāng)前負(fù)載量L。,得到各數(shù)據(jù)記錄子模塊的當(dāng)前負(fù)載量,其計(jì)算公式如下:
[0027]Lc= f (C).C+g (M).M+h (N).N
[0028]其中,C表示該數(shù)據(jù)記錄子模塊的CPU利用率,M表示該數(shù)據(jù)記錄子模塊的內(nèi)存利用率,N表示該數(shù)據(jù)記錄子模塊的網(wǎng)絡(luò)帶寬利用率;f (C)、g (M)、h (N)分別表示C、M、N的正值函數(shù)。
[0029]優(yōu)選的,所述步驟S5進(jìn)一步包括:
[0030]S51、管理器根據(jù)各數(shù)據(jù)記錄子模塊的當(dāng)前負(fù)載量,計(jì)算該數(shù)據(jù)記錄子模塊未來時(shí)刻的負(fù)載量L。,其計(jì)算公式如下:
[0031]Le= L c+nt.(Lc-Ls) /mt
[0032]其中,Ls為該數(shù)據(jù)記錄子模塊過去時(shí)刻的負(fù)載量,nt表示該數(shù)據(jù)記錄子模塊未來時(shí)刻和當(dāng)前時(shí)刻的時(shí)間間隔,mt表示該數(shù)據(jù)記錄子模塊當(dāng)前時(shí)刻和過去時(shí)刻的時(shí)間間隔,η和m均為常數(shù);
[0033]S52、判斷各數(shù)據(jù)記錄子模塊未來時(shí)刻的負(fù)載量是否超過負(fù)載閾值,若是,則當(dāng)該聯(lián)邦成員接收到新的數(shù)據(jù)時(shí),將該數(shù)據(jù)記錄子模塊的后續(xù)任務(wù)中的部分任務(wù)調(diào)度給負(fù)載量小于負(fù)載閾值的數(shù)據(jù)記錄子模塊;
[0034]S53、將各數(shù)據(jù)記錄子模塊收集的數(shù)據(jù)進(jìn)行存儲(chǔ),完成仿真數(shù)據(jù)的收集。
[0035]本發(fā)明的有益效果是:本發(fā)明提供的一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法,通過設(shè)置多個(gè)聯(lián)邦成員分別利用其通信接口與運(yùn)行支撐系統(tǒng)進(jìn)行通信來獲取需收集的數(shù)據(jù),進(jìn)而實(shí)現(xiàn)了聯(lián)邦成員間的相互通信,且由于多個(gè)聯(lián)邦成員所收集的數(shù)據(jù)均經(jīng)過運(yùn)行支撐系統(tǒng),從而降低了數(shù)據(jù)記錄的分散性,以實(shí)現(xiàn)有效支持仿真系統(tǒng)的在線實(shí)時(shí)分析、數(shù)據(jù)查詢和事后回顧分析等,同時(shí),設(shè)置聯(lián)邦成員分別包含多個(gè)數(shù)據(jù)記錄子模塊,通過動(dòng)態(tài)調(diào)度各數(shù)據(jù)記錄子模塊的負(fù)載,實(shí)現(xiàn)了資源的有效利用,從而緩解了由于網(wǎng)絡(luò)數(shù)據(jù)量達(dá)到峰值而導(dǎo)致網(wǎng)絡(luò)擁塞的問題;本發(fā)明易于操作,便于推廣。
【具體實(shí)施方式】
[0036]下面結(jié)合實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。
[0037]本發(fā)明提供一種基于高層體系結(jié)構(gòu)的數(shù)據(jù)收集方法,包括以下步驟:
[0038]S1、將高層體系結(jié)構(gòu)仿真系統(tǒng)HLA中的各聯(lián)邦成員初始化,所述各聯(lián)邦成員分別包含多個(gè)數(shù)據(jù)記錄子模塊,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù);
[0039]對(duì)于每一個(gè)聯(lián)邦成員,根據(jù)預(yù)設(shè)的數(shù)據(jù)收集量S,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)Si,其中,I ( i彡n,所述Si滿足:S = SI U S2 U S3…Sn。
[0040]優(yōu)選的,所述步驟SI中,初始設(shè)置多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)Si時(shí),用戶可以根據(jù)數(shù)據(jù)收集需求,選擇所述多個(gè)數(shù)據(jù)記錄子模塊的收集任務(wù)滿足條件:
[0041]Sj n Sk 為空集,其中,j,k e i ; j 乒 k ;和 / 或 I SI I = I S2 I = I S3 I =…=Snl O
[0042]S2、基于運(yùn)行支撐系統(tǒng)RTI,從多個(gè)聯(lián)邦成員中選擇一個(gè)聯(lián)邦成員創(chuàng)建聯(lián)邦執(zhí)行連接,并將其他聯(lián)邦成員加入到所述聯(lián)邦執(zhí)行中;
[0043]運(yùn)行支撐系統(tǒng)RTI (Run time Infrastructure)是一組軟件,用來實(shí)現(xiàn)一個(gè)聯(lián)邦執(zhí)行中各個(gè)聯(lián)邦成員之間的交互作用,即RTI作為聯(lián)邦執(zhí)行的核心,在一個(gè)聯(lián)邦執(zhí)行過程中,所有的聯(lián)邦成員應(yīng)該按照HLA接口規(guī)范說明所要求的方式同它進(jìn)行數(shù)據(jù)交換,以實(shí)現(xiàn)聯(lián)邦成員間的交互作用。運(yùn)行支撐系統(tǒng)RTI提供了 6種服務(wù),分別為聯(lián)邦管理服務(wù)、聲明管理服務(wù)、對(duì)象管理服務(wù)、所有權(quán)管理服務(wù)、時(shí)間管理服務(wù)、數(shù)據(jù)分發(fā)管理服務(wù)。其中,聯(lián)邦管理服務(wù)主要提供創(chuàng)建、刪除、加入和退出聯(lián)邦運(yùn)行等服務(wù)。
[0044]在該步驟中,通過調(diào)用聯(lián)邦管理服務(wù)的“創(chuàng)建聯(lián)邦執(zhí)行服務(wù)”創(chuàng)建一個(gè)聯(lián)邦執(zhí)行連接;通過調(diào)用聯(lián)邦管理服務(wù)的“加入聯(lián)邦執(zhí)行服務(wù)”,將其他聯(lián)邦成員加入到所述聯(lián)邦執(zhí)行中。
[0045]S3、所述多個(gè)聯(lián)邦成員分別通過其通信接口向所述運(yùn)行支撐系統(tǒng)訂購(gòu)各自的對(duì)象類和屬性,所述運(yùn)行支撐系統(tǒng)根據(jù)各聯(lián)邦成員的對(duì)象類和屬性,將仿真運(yùn)行中產(chǎn)生的數(shù)據(jù)分發(fā)給各聯(lián)邦成員;
[0046]在本發(fā)明中,各聯(lián)邦成員均包括一系列的通信接口,這些通信接口與運(yùn)行支撐系統(tǒng)RTI的環(huán)境一致,各聯(lián)邦成員分別通過其通信接口向運(yùn)行支撐系統(tǒng)訂購(gòu)各自的對(duì)象類和屬性;
[0047]在HLA中,對(duì)象屬于對(duì)象類,是對(duì)象類的實(shí)例。對(duì)象成員在加入聯(lián)邦執(zhí)行時(shí),可以通過RTI的聲明管理服務(wù)DM來聲明它能提供的對(duì)象屬性和訂購(gòu)它需要的屬性,即對(duì)象成員使用DM中的“公布對(duì)象類服務(wù)”來表示它能對(duì)某類對(duì)象建立動(dòng)態(tài)模型,在聯(lián)邦執(zhí)行中負(fù)責(zé)運(yùn)行動(dòng)態(tài)模型來更新對(duì)象的屬性并向外提供;使用“訂購(gòu)對(duì)象類服務(wù)”來表示它希望獲得屬于某類對(duì)象的屬性。
[0048]各聯(lián)邦成員分別通過其通信接口向運(yùn)行支撐系統(tǒng)訂購(gòu)各自的對(duì)象類和屬性;具體包括:
[0049]S31、基于運(yùn)行支撐系統(tǒng),為每個(gè)對(duì)象創(chuàng)建訂購(gòu)區(qū)域與更新區(qū)域;
[0050]通過RTI提供的數(shù)據(jù)分發(fā)管理服務(wù)DDM為每個(gè)對(duì)象創(chuàng)建訂購(gòu)與更新區(qū)域。一個(gè)路徑空間是一個(gè)多維的坐標(biāo)系統(tǒng),是聯(lián)邦執(zhí)行中屬性值構(gòu)成的數(shù)據(jù)空間,對(duì)象成員可用它表達(dá)希望接收和發(fā)送數(shù)據(jù)的范圍。訂購(gòu)區(qū)域與更新區(qū)域是路徑空間的子集,訂購(gòu)區(qū)域用來表明對(duì)象希望接收到該