一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?br>
【專利摘要】本發(fā)明公開了一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,該方法由LRC_S模塊通過組播發(fā)送時戳消息給LRC_R模塊的同時,通過TCP構(gòu)建與仿真時間推進(jìn)服務(wù)完全一致的另一條時戳消息傳輸路徑,LRC_R模塊通過比較兩路時戳消息的一致性分布式仿真時間推進(jìn)和消息傳輸?shù)耐?,從而完整地實現(xiàn)了HLA接口規(guī)范規(guī)定的服務(wù),提高分布式仿真系統(tǒng)的運行性能。
【專利說明】一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?br>
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種同步方法,特別是涉及一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒ā?br>
【背景技術(shù)】
[0002]在基于HLA的分布式仿真系統(tǒng)中,按照HLA接口規(guī)范,一個分布式節(jié)點申請仿真時間推進(jìn)到T,在被允許之前,必須保證該節(jié)點已接收到所有Ts ( T的時戳消息。由于在HLA中間件RTI的實現(xiàn)中,通常分布式仿真時間推進(jìn)服務(wù)采用可靠傳輸模式TCP實現(xiàn),消息傳輸服務(wù)采用組播模式Multicast實現(xiàn),由于二者傳輸模式和傳輸路徑不同,同步困難,難以保證仿真時間推進(jìn)允許前所有Ts ( T的時戳消息已接收到,從而不能完整地實現(xiàn)HLA接口規(guī)范。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的在于提供一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,以保證分布式仿真節(jié)點時間推進(jìn)允許前所有Ts < T的時戳消息已接收到,從而完整地實現(xiàn)HLA接口規(guī)范。
[0004]一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,該同步方法包括如下步驟:
[0005]I)構(gòu)建用于分布式仿真時間推進(jìn)和消息傳輸同步的系統(tǒng),該系統(tǒng)包括:
[0006]節(jié)點消息發(fā)送處理LRC_S模塊:使用組播,發(fā)送時戳消息給LRC_R模塊,同時,復(fù)制該時戳消息,使用TCP,發(fā)送給FEDEXEC模塊;使用TCP,發(fā)送仿真時間推進(jìn)服務(wù)給FEDEXEC模塊;
[0007]時間推進(jìn)處理FEDEXEC模塊:累計計算接收到的時戳消息,當(dāng)接收到LRC_S模塊發(fā)送的仿真時間推進(jìn)服務(wù)時,判斷是否允許時間推進(jìn),并將計算結(jié)果,以及此時已累積的時戳消息集合發(fā)送給LRC_R ;
[0008]節(jié)點消息接收處理LRC_R模塊:接收LRC_S模塊發(fā)送的時戳消息并累計;接收FEDEXEC模塊發(fā)送的時間推進(jìn)允許結(jié)果和時戳消息集合,調(diào)用MSG_C模塊,計算LRC_S模塊發(fā)送的時戳消息集合是否等于FEDEXEC模塊發(fā)送的時戳消息集合,如果相等,則調(diào)用時間推進(jìn)允許服務(wù);
[0009]消息匹配處理MSG_C模塊:比較輸入的兩個時戳消息集合是否相等,相等返回TRUE,否則返回FALSE ;
[0010]2) LRC_S模塊分別發(fā)送時戳消息給LRC_R模塊和FedExec模塊;
[0011 ] 3) LRC_R模塊接收時戳消息并處理;
[0012]4) LRC_S模塊發(fā)送仿真時間推進(jìn)服務(wù)給FedExec模塊;
[0013]5)FEDEXEC模塊處理時戳消息和申請時間推進(jìn)服務(wù);
[0014]6) LRC_R模塊處理FEDEXEC模塊發(fā)送的時間推進(jìn)允許和時戳消息集合。
[0015]本發(fā)明的優(yōu)點在于:[0016]本發(fā)明時間推進(jìn)和消息傳輸?shù)耐椒椒ㄊ沟孟到y(tǒng)運行更為方便,快捷。
【專利附圖】
【附圖說明】
[0017]圖1:一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒鞒虉D。
【具體實施方式】
[0018]如圖1所示為一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒鞒虉D,該同步方法的具體步驟為:
[0019]第一步構(gòu)建實現(xiàn)該方法的系統(tǒng)
[0020]用于分布式仿真時間推進(jìn)和消息傳輸同步的系統(tǒng),包括:節(jié)點消息發(fā)送處理LRC_S模塊、時間推進(jìn)處理FEDEXEC模塊、節(jié)點消息接收處理LRC_R模塊、消息匹配處理MSG_C模塊。
[0021]LRC_S模塊的功能為:使用組播,發(fā)送時戳消息給LRC_R模塊,同時,復(fù)制該時戳消息,使用TCP,發(fā)送給FEDEXEC模塊;使用TCP,發(fā)送仿真時間推進(jìn)服務(wù)給FEDEXEC模塊;
[0022]FEDEXEC模塊的功能為:累計計算接收到的時戳消息,當(dāng)接收到LRC_S模塊發(fā)送的仿真時間推進(jìn)服務(wù)時,判斷是否允許時間推進(jìn),并將計算結(jié)果,以及此時已累積的時戳消息集合發(fā)送給LRC_R ;
[0023]LRC_R模塊的功能為:接收LRC_S模塊發(fā)送的時戳消息并累計;接收FEDEXEC模塊發(fā)送的時間推進(jìn)允許結(jié)果和時戳消息集合,調(diào)用MSG_C模塊,計算LRC_S模塊發(fā)送的時戳消息集合是否等于FEDEXEC模塊發(fā)送的時戳消息集合,如果相等,則調(diào)用時間推進(jìn)允許服務(wù);
[0024]MSG_C模塊的功能為:比較輸入的兩個時戳消息集合是否相等,相等返回TRUE,否則返回FALSE。
[0025]其中FEDEXEC模塊通過可靠傳輸模式TCP與LRC_S模塊、LRC_R模塊通訊,LRC_S模塊與LRC_R模塊通過組播傳輸模式進(jìn)行通訊。
[0026]第二步LRC_S模塊發(fā)送時戳消息
[0027]計算該節(jié)點可發(fā)送時戳消息的下限值LBTS, LBTS=T (i)+Lookahead(i);
[0028]判斷要發(fā)送的時戳消息的時戳是否大于LBTS,如果不大于,則出錯返回;
[0029]如果大于,則通過組播發(fā)送該時戳消息;
[0030]復(fù)制該時戳消息,通過TCP發(fā)送該消息給FEDEXEC模塊。
[0031 ] 第三步LRC_R模塊接收時戳消息并處理
[0032]接收該時戳消息,并累計計算該節(jié)點已接收到的時戳消息集合;
[0033]查詢是否有未處理、由FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),如果沒有,則返回,如果有,則調(diào)用MSG_C模塊,輸入本節(jié)點接收的時戳消息集合和FEDEXEC模塊發(fā)送的時戳消息集合,輸出時TRUE,則標(biāo)記處理FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),否則返回。
[0034]第四步LRC_S模塊發(fā)送仿真時間推進(jìn)服務(wù)
[0035]LRC_S模塊判斷仿真時間推進(jìn)值是否大于LBTS,如果小于,則直接返回;
[0036]LRC_S模塊通過TCP發(fā)送仿真時間推進(jìn)服務(wù)給FEDEXEC模塊,并更新該節(jié)點的τα)為該服務(wù)設(shè)置的時間值。
[0037]第五步FEDEXEC模塊處理時戳消息和申請時間推進(jìn)服務(wù)[0038]FEDEXEC模塊累計計算已接收到的時戳消息;
[0039]FEDEXEC模塊計算每一個聯(lián)邦成員的約束時戳下限值:
[0040]LBTS (i) =Min {ELT (j)}其中 i 關(guān) j
[0041]ELT (j) =T (j) +Lookahead (j)
[0042]完成LBTS (i)的計算后,F(xiàn)EDEXEC模塊判斷LBTS (i)≥T (i)時,F(xiàn)EDEXEC模塊允許該成員邏輯時間推進(jìn)到T (i),并通過TCP發(fā)送時間推進(jìn)允許時間推進(jìn)標(biāo)志和更新的時戳消息集合給LRC_R模塊。
[0043]第六步LRC_R模塊處理FEDEXEC模塊發(fā)送的時間推進(jìn)允許和時戳消息集合 [0044]LRC_R模塊接收FEDEXEC模塊發(fā)送的時間推進(jìn)允許,標(biāo)記為FALSE ;
[0045]LRC_R模塊接收FEDEXEC模塊發(fā)送的時戳消息集合,調(diào)用MSG_C模塊,輸入該集合與本節(jié)點通過組播接收的時戳消息集合,輸出時TRUE,則標(biāo)記處理FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),否則標(biāo)記該允許時間推進(jìn)服務(wù)為FALSE。
[0046]應(yīng)當(dāng)理解,以上借助優(yōu)選實施例對本發(fā)明的技術(shù)方案進(jìn)行的詳細(xì)說明是示意性的而非限制性的。本領(lǐng)域的普通技術(shù)人員在閱讀本發(fā)明說明書的基礎(chǔ)上可以對各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,其特征在于,該同步方法包括如下步驟: 1)構(gòu)建用于分布式仿真時間推進(jìn)和消息傳輸同步的系統(tǒng),該系統(tǒng)包括: 節(jié)點消息發(fā)送處理LRC_S模塊:使用組播,發(fā)送時戳消息給LRC_R模塊,同時,復(fù)制該時戳消息,使用TCP,發(fā)送給FEDEXEC模塊;使用TCP,發(fā)送仿真時間推進(jìn)服務(wù)給FEDEXEC模塊; 時間推進(jìn)處理FEDEXEC模塊:累計計算接收到的時戳消息,當(dāng)接收到LRC_S模塊發(fā)送的仿真時間推進(jìn)服務(wù)時,判斷是否允許時間推進(jìn),并將計算結(jié)果,以及此時已累積的時戳消息集合發(fā)送給LRC_R ; 節(jié)點消息接收處理LRC_R模塊:接收LRC_S模塊發(fā)送的時戳消息并累計;接收FEDEXEC模塊發(fā)送的時間推進(jìn)允許結(jié)果和時戳消息集合,調(diào)用MSG_C模塊,計算LRC_S模塊發(fā)送的時戳消息集合是否等于FEDEXEC模塊發(fā)送的時戳消息集合,如果相等,則調(diào)用時間推進(jìn)允許服務(wù); 消息匹配處理MSG_C模塊:比較輸入的兩個時戳消息集合是否相等,相等返回TRUE,否則返回FALSE ; 2)LRC_S模塊分別發(fā)送時戳消息給LRC_R模塊和FedExec模塊; 3)LRC_R模塊接收時戳消息并處理; 4)LRC_S模塊發(fā)送仿真時間推進(jìn)服務(wù)給FedExec模塊; 5)FEDEXEC模塊處理時戳消息和申請時間推進(jìn)服務(wù); 6)LRC_R模塊處理FEDEXEC模塊發(fā)送的時間推進(jìn)允許和時戳消息集合。
2.根據(jù)權(quán)利要求1所述的一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒ǎ涮卣髟谟?,所述步驟2中LRC_S模塊分別發(fā)送時戳消息給LRC_R模塊和FedExec模塊時, 計算該節(jié)點可發(fā)送時戳消息的下限值LBTS,LBTS=T (i)+Lookahead(i),其中T(i)是時間變量,Lookahead (i)是前瞻量; 判斷要發(fā)送的時戳消息的時戳是否大于LBTS,如果不大于,則出錯返回;如果大于,則通過組播發(fā)送該時戳消息; 復(fù)制該時戳消息,通過TCP發(fā)送該消息給FEDEXEC模塊。
3.根據(jù)權(quán)利要求1或2所述的一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,其特征在于,所述步驟3中1^(:_1?模塊接收時戳消息并處理時, 接收該時戳消息,并累計計算該節(jié)點已接收到的時戳消息集合; 查詢是否有未處理、由FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),如果沒有,則返回,如果有,則調(diào)用MSG_C模塊,輸入本節(jié)點接收的時戳消息集合和FEDEXEC模塊發(fā)送的時戳消息集合,輸出時TRUE,則標(biāo)記處理FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),否則返回。
4.根據(jù)權(quán)利要求3所述的一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒ǎ涮卣髟谟?,所述步驟4中LRC_S模塊發(fā)送仿真時間推進(jìn)服務(wù)給FedExec模塊時, LRC_S模塊判斷仿真時間推進(jìn)值是否大于LBTS,如果小于,則直接返回; LRC_S模塊通過TCP發(fā)送仿真時間推進(jìn)服務(wù)給FEDEXEC模塊,并更新該節(jié)點的T (i)為該服務(wù)設(shè)置的時間值。
5.根據(jù)權(quán)利要求4所述的一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,其特征在于,所述步驟5中FEDEXEC模塊處理時戳消息和申請時間推進(jìn)服務(wù)時,F(xiàn)EDEXEC模塊累計計算已接收到的時戳消息; FEDEXEC模塊計算每一個聯(lián)邦成員的約束時戳下限值: LBTS⑴=Min{ELT(j)}其中 i≠ j ELT(j)=T(j)+Lookahead (j) 完成LBTS (i)的計算后,F(xiàn)EDEXEC模塊判斷LBTS (i)≥T (i)時,F(xiàn)EDEXEC模塊允許該成員邏輯時間推進(jìn)到T (i),并通過TCP發(fā)送時間推進(jìn)允許時間推進(jìn)標(biāo)志和更新的時戳消息集合給LRC_R模塊。
6.根據(jù)權(quán)利要求5所述的一種分布式仿真時間推進(jìn)和消息傳輸?shù)耐椒椒?,其特征在于,所述步驟6中LRC_R模塊處理FEDEXEC模塊發(fā)送的時間推進(jìn)允許和時戳消息集合,LRC_R模塊接收FEDEXEC模塊發(fā)送的時間推進(jìn)允許,標(biāo)記為FALSE ; LRC_R模塊接收FEDEXEC模塊發(fā)送的時戳消息集合,調(diào)用MSG_C模塊,輸入該集合與本節(jié)點通過組播接收的時戳消息集合,輸出時TRUE,則標(biāo)記處理FEDEXEC模塊發(fā)送的允許時間推進(jìn)服務(wù),否則標(biāo)記該允許時間推進(jìn) 服務(wù)為FALSE。
【文檔編號】H04L29/08GK103763377SQ201410035335
【公開日】2014年4月30日 申請日期:2014年1月24日 優(yōu)先權(quán)日:2014年1月24日
【發(fā)明者】卿杜政, 楊凱, 張進(jìn), 鄭燕紅, 孫捷 申請人:北京仿真中心