一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法
【專利摘要】本發(fā)明公開了一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,包括設(shè)置在每個(gè)仿真節(jié)點(diǎn)上的時(shí)鐘推進(jìn)代理、時(shí)鐘推進(jìn)服務(wù)器,所述時(shí)鐘推進(jìn)代理為用戶提供仿真時(shí)鐘推進(jìn)接口,自動(dòng)為用戶生成仿真時(shí)鐘推進(jìn)消息,并接收時(shí)鐘推進(jìn)計(jì)算結(jié)果反饋給用戶;所述時(shí)鐘推進(jìn)服務(wù)器負(fù)責(zé)接收時(shí)鐘推進(jìn)代理發(fā)送的時(shí)鐘推進(jìn)請求,加載時(shí)鐘推進(jìn)服務(wù)實(shí)例,計(jì)算時(shí)鐘推進(jìn)步長,并返回時(shí)鐘推進(jìn)結(jié)果給時(shí)鐘推進(jìn)代理。本發(fā)明在計(jì)算最大安全時(shí)間的步驟中,考慮了網(wǎng)絡(luò)延遲對時(shí)鐘推進(jìn)的影響,使得每個(gè)仿真節(jié)點(diǎn)在時(shí)鐘推進(jìn)過程中盡可能接收完整的時(shí)鐘推進(jìn)消息,避免由于網(wǎng)絡(luò)性能不佳帶來的時(shí)鐘事件和消息延遲,從而影響整個(gè)仿真系統(tǒng)的運(yùn)行狀態(tài)。
【專利說明】一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種屬于計(jì)算機(jī)仿真應(yīng)用【技術(shù)領(lǐng)域】,特別是一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)仿真技術(shù)的廣泛應(yīng)用,特別是現(xiàn)代軍事需求的推動(dòng),分布式仿真技術(shù)不斷朝著高度分布性、良好的互操作性和可擴(kuò)展性方向發(fā)展。一方面,大規(guī)模、細(xì)粒度、長時(shí)間的分布仿真對系統(tǒng)計(jì)算能力、可靠性、容錯(cuò)性的要求越來越高;另一方面,針對靈活多變的仿真任務(wù)需求,仿真系統(tǒng)的構(gòu)建方式轉(zhuǎn)變?yōu)椤耙阅P蜑橹行摹?,更加?qiáng)調(diào)分布在網(wǎng)絡(luò)上的仿真模型的共享、重用和集成。但是,現(xiàn)有的基于HLA構(gòu)建的仿真系統(tǒng)存在資源利用率低下、缺乏動(dòng)態(tài)負(fù)載平衡能力、容錯(cuò)能力不足、仿真應(yīng)用部署繁瑣、仿真應(yīng)用間協(xié)作和互操作機(jī)制缺乏等問題;而且,傳統(tǒng)的HLA仿真是以RTI為中心,將不同仿真節(jié)點(diǎn)進(jìn)行互聯(lián)來構(gòu)建仿真,故HLA也不能滿足新的仿真系統(tǒng)構(gòu)建模式。目前的時(shí)鐘推進(jìn)系統(tǒng)和時(shí)鐘推進(jìn)計(jì)算方法都是以局域網(wǎng)應(yīng)用為背景,難以滿足廣域網(wǎng)環(huán)境下網(wǎng)絡(luò)延遲帶來的計(jì)算影響。
[0003]目前,國內(nèi)外針對仿真時(shí)鐘推進(jìn)計(jì)算方法的改進(jìn)已經(jīng)開展了大量的相關(guān)研究。有人給出了一種層次式聯(lián)邦體系結(jié)構(gòu),該結(jié)構(gòu)關(guān)鍵在于能夠兼容HLA相關(guān)服務(wù),除此之外研究了其時(shí)鐘推進(jìn)時(shí)各層次間關(guān)系并介紹了系統(tǒng)開發(fā)。中國臺(tái)灣學(xué)者設(shè)計(jì)了一種稱為SmartTime Management (STM)的代理接口,用其來統(tǒng)一滿足HLA規(guī)則的各種推進(jìn)方式下的所有時(shí)間管理服務(wù)。STM是一種基于HLA的統(tǒng)一時(shí)間管理機(jī)制,是一種統(tǒng)一可擴(kuò)展的中間層,當(dāng)處理同步問題時(shí),允許用戶用統(tǒng)一的時(shí)間管理接口構(gòu)造HLA仿真節(jié)點(diǎn)。新加坡專家創(chuàng)造性的設(shè)計(jì)了一種面向服務(wù)結(jié)構(gòu)的網(wǎng)格分布仿真時(shí)間管理,其將時(shí)間管理服務(wù)進(jìn)行組件化開發(fā),使用了仿真拓?fù)湫畔頊p少仿真組件間的時(shí)鐘推進(jìn)限制。以上研究均非常有意義,對于時(shí)間管理的探討均取得了重大的突破。這些研究雖然對時(shí)間管理服務(wù)在大規(guī)模廣域網(wǎng)環(huán)境下應(yīng)用的局限性并做了相關(guān)研究,但是并沒有更緊密的聯(lián)系網(wǎng)絡(luò)化思想及面向服務(wù)技術(shù),更多的是偏向組件開發(fā)結(jié)構(gòu)以及拓?fù)湫畔鬏敚⑽磳ν七M(jìn)時(shí)鐘步長進(jìn)行全面研究。
【發(fā)明內(nèi)容】
[0004]發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中網(wǎng)絡(luò)環(huán)境下仿真系統(tǒng)運(yùn)行過程中邏輯時(shí)鐘推進(jìn)的問題,提供一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法。
[0005]為了解決上述技術(shù)問題,本發(fā)明公開了一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,包括設(shè)置在每個(gè)仿真節(jié)點(diǎn)上的時(shí)鐘推進(jìn)代理、時(shí)鐘推進(jìn)服務(wù)器,所述時(shí)鐘推進(jìn)代理為用戶提供仿真時(shí)鐘推進(jìn)接口,自動(dòng)為用戶生成仿真時(shí)鐘推進(jìn)消息,并接收時(shí)鐘推進(jìn)計(jì)算結(jié)果反饋給用戶;所述時(shí)鐘推進(jìn)服務(wù)器負(fù)責(zé)接收時(shí)鐘推進(jìn)代理發(fā)送的時(shí)鐘推進(jìn)請求,加載時(shí)鐘推進(jìn)服務(wù)實(shí)例,計(jì)算時(shí)鐘推進(jìn)步長,并返回時(shí)鐘推進(jìn)結(jié)果給時(shí)鐘推進(jìn)代理。由此解決網(wǎng)絡(luò)化仿真系統(tǒng)運(yùn)行過程中實(shí)時(shí)性要求,滿足仿真系統(tǒng)中各仿真節(jié)點(diǎn)邏輯時(shí)間同步的需求,通過服務(wù)端靈活創(chuàng)建多個(gè)時(shí)鐘推進(jìn)計(jì)算服務(wù)實(shí)例,滿足多個(gè)仿真節(jié)點(diǎn)并發(fā)進(jìn)行時(shí)鐘推進(jìn)計(jì)算服務(wù)的需求。
[0006]本發(fā)明為仿真應(yīng)用提供了三類接口:時(shí)間注冊接口、時(shí)間設(shè)置接口、時(shí)鐘推進(jìn)接口。用戶通過所述三類接口與所述時(shí)鐘推進(jìn)服務(wù)器進(jìn)行交互,完成仿真時(shí)鐘推進(jìn)過程。所述時(shí)間注冊接口,在用戶仿真節(jié)點(diǎn)初始化時(shí)被調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)送本仿真節(jié)點(diǎn)基本消息,包括仿真節(jié)點(diǎn)IP、仿真節(jié)點(diǎn)ID,表明本仿真節(jié)點(diǎn)將使用時(shí)統(tǒng)服務(wù);所述時(shí)鐘設(shè)置接口,在用戶仿真節(jié)點(diǎn)初始化或者狀態(tài)發(fā)生變化時(shí)被調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)送消息,向時(shí)鐘推進(jìn)服務(wù)器設(shè)置本仿真節(jié)點(diǎn)需要使用的仿真時(shí)鐘推進(jìn)的時(shí)間特性和參數(shù)要求;所述時(shí)鐘推進(jìn)接口,在用戶仿真節(jié)點(diǎn)需要與其它仿真節(jié)點(diǎn)進(jìn)行時(shí)鐘同步時(shí)調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)起時(shí)鐘推進(jìn)請求,請求時(shí)鐘推進(jìn)服務(wù)器計(jì)算本仿真節(jié)點(diǎn)能推進(jìn)的最大時(shí)鐘步長。
[0007]本發(fā)明所述時(shí)鐘推進(jìn)服務(wù)器包括時(shí)鐘服務(wù)部署模塊、時(shí)鐘推進(jìn)請求接收模塊、時(shí)鐘推進(jìn)請求處理模塊。
[0008]所述時(shí)鐘服務(wù)部署模塊是針對DLL格式的文件一系列操作過程,它提供本地文件夾監(jiān)視功能、時(shí)鐘計(jì)算服務(wù)部署功能。本地文件夾監(jiān)視功能用于接收本地或遠(yuǎn)程已經(jīng)開發(fā)好的時(shí)鐘推進(jìn)計(jì)算服務(wù)的DLL文件,并將接收到的文件傳拷貝到指定的文件路徑下;部署功能是在接收到服務(wù)執(zhí)行文件后,將DLL文件拷貝到服務(wù)器指定的路徑下,并完成該時(shí)鐘推進(jìn)計(jì)算服務(wù)的參數(shù)配置信息。
[0009]本發(fā)明所述時(shí)鐘推進(jìn)請求接收模塊管理和維護(hù)一個(gè)請求消息緩沖區(qū),將接收到的時(shí)鐘推進(jìn)請求放入緩沖區(qū)隊(duì)列,等待處理;緩沖區(qū)內(nèi)的請求消息將按照先來先服務(wù)的原則依次處理。
[0010]本發(fā)明所述時(shí)鐘服務(wù)請求處理模塊將接收的用戶時(shí)鐘推進(jìn)服務(wù)請求分配給時(shí)鐘推進(jìn)計(jì)算服務(wù),并將時(shí)鐘推進(jìn)計(jì)算服務(wù)的處理結(jié)果返回給用戶,它包括時(shí)鐘推進(jìn)請求預(yù)處理子模塊、時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊、時(shí)鐘推進(jìn)請求作業(yè)管理模塊。
[0011]本發(fā)明所述時(shí)鐘推進(jìn)請求預(yù)處理子模塊監(jiān)控緩沖區(qū)是否有新的請求消息到達(dá),當(dāng)有新的消息到達(dá)時(shí),按照請求消息到達(dá)的先后順序,遵循先來先服務(wù)的原則,讀取新到達(dá)的請求消息;對讀取的請求消息進(jìn)行解析,提煉出時(shí)鐘計(jì)算服務(wù)調(diào)用的參數(shù)信息,包括當(dāng)前時(shí)鐘值、時(shí)鐘推進(jìn)步長需求、請求時(shí)鐘推進(jìn)的仿真節(jié)點(diǎn)ID等參數(shù)信息,并發(fā)送給所述時(shí)鐘推進(jìn)請求作樂管理模塊。
[0012]本發(fā)明所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊接收新到達(dá)的時(shí)鐘推進(jìn)請求,將該請求放入計(jì)算任務(wù)隊(duì)列中,通知時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊選擇時(shí)鐘計(jì)算服務(wù)開始計(jì)算推進(jìn)時(shí)間;同時(shí),對當(dāng)前所有的計(jì)算任務(wù)進(jìn)行監(jiān)控,當(dāng)計(jì)算任務(wù)結(jié)束后,移出任務(wù)隊(duì)列。所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊,管理一個(gè)就緒任務(wù)隊(duì)列,該任務(wù)隊(duì)列中緩沖所有仿真節(jié)點(diǎn)發(fā)送的時(shí)鐘推進(jìn)請求計(jì)算任務(wù)信息,該就緒任務(wù)隊(duì)列滿足先來先服務(wù)的原則。對于每個(gè)計(jì)算任務(wù),分為四種狀態(tài):等待、處理、異常和結(jié)束。對于每個(gè)處于處理狀態(tài)的計(jì)算任務(wù),如果該計(jì)算任務(wù)的計(jì)算時(shí)間大于設(shè)置的閾值,則所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊將表示該計(jì)算任務(wù)為異常,并通知所述時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊終止該計(jì)算任務(wù)對應(yīng)的實(shí)例線程。
[0013]本發(fā)明所述時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊解析時(shí)鐘推進(jìn)請求,遍歷當(dāng)前已經(jīng)加載運(yùn)行的時(shí)鐘推進(jìn)計(jì)算服務(wù)是否空閑;如果有空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù),將該請求分配該空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù);如果沒有空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù),則動(dòng)態(tài)加載一個(gè)新的時(shí)鐘推進(jìn)計(jì)算服務(wù)實(shí)例,并將時(shí)鐘推進(jìn)請求分配給該實(shí)例。[0014]本發(fā)明中,時(shí)鐘推進(jìn)計(jì)算服務(wù)在計(jì)算時(shí)鐘推進(jìn)最大步長過程中屏蔽了網(wǎng)絡(luò)傳輸延遲產(chǎn)生的瞬時(shí)消息影響,采用了基于延遲偏移量的時(shí)鐘推進(jìn)步長計(jì)算方法,其步驟如下:
[0015]步驟1:仿真節(jié)點(diǎn)向時(shí)鐘推進(jìn)服務(wù)器申請時(shí)鐘推進(jìn),服務(wù)器收到相應(yīng)推進(jìn)請求;
[0016]步驟2:仿真時(shí)鐘推進(jìn)服務(wù)器對所有仿真節(jié)點(diǎn)進(jìn)行遍歷,若申請推進(jìn)的仿真節(jié)點(diǎn)存在,則繼續(xù)計(jì)算,否則返回;
[0017]步驟3:將申請推進(jìn)的仿真節(jié)點(diǎn)狀態(tài)改為推進(jìn)(Time_Advanced),并開始計(jì)算仿真節(jié)點(diǎn)推進(jìn)時(shí)間,將申請推進(jìn)仿真節(jié)點(diǎn)加入推進(jìn)列表;
[0018]步驟4:開始計(jì)算仿真節(jié)點(diǎn)安全推進(jìn)距離,將所有推進(jìn)仿真節(jié)點(diǎn)分為兩類:控制仿真節(jié)點(diǎn)(Regulated)和受限仿真節(jié)點(diǎn)(Constrained),只有控制仿真節(jié)點(diǎn)才會(huì)對其它仿真節(jié)點(diǎn)的時(shí)鐘推進(jìn)產(chǎn)生影響,遍歷所有仿真節(jié)點(diǎn),找到所有控制仿真節(jié)點(diǎn),根據(jù)不同的仿真節(jié)點(diǎn)推進(jìn)方式,開始計(jì)算申請時(shí)鐘推進(jìn)的仿真節(jié)點(diǎn)i的最大安全推進(jìn)時(shí)間GATi ;
[0019]步驟5:在計(jì)算得出所有仿真節(jié)點(diǎn)的最大安全推進(jìn)時(shí)間GAT(i)后,遍歷推進(jìn)列表所有仿真節(jié)點(diǎn),若列表中仿真節(jié)點(diǎn)為受限仿真節(jié)點(diǎn),推進(jìn)仿真節(jié)點(diǎn),見步驟9,若推進(jìn)列表中仿真節(jié)點(diǎn)為非受限仿真節(jié)點(diǎn),見步驟10 ;
[0020]步驟6:若推進(jìn)仿真節(jié)點(diǎn)為受限仿真節(jié)點(diǎn),將其申請的推進(jìn)時(shí)間與其推進(jìn)狀態(tài)下之前記錄的最小GAT(i)進(jìn)行比較,若申請推進(jìn)時(shí)間小于或等于最小GAT(i),則轉(zhuǎn)步驟11,若申請時(shí)間大于最小GAT(i),仿真節(jié)點(diǎn)時(shí)間不可推進(jìn),仿真節(jié)點(diǎn)進(jìn)入等待狀態(tài);
[0021]步驟7:若推進(jìn)仿真節(jié)點(diǎn)為非受限仿真節(jié)點(diǎn),則其推進(jìn)不受其它仿真節(jié)點(diǎn)約束,若推進(jìn)仿真節(jié)點(diǎn)狀態(tài)為推進(jìn),直接進(jìn)行時(shí)鐘推進(jìn),若仿真節(jié)點(diǎn)狀態(tài)為不可推進(jìn),則該仿真節(jié)點(diǎn)時(shí)間不可推進(jìn),進(jìn)入等待狀態(tài);
[0022]步驟8:當(dāng)申請時(shí)間小于等于最小GAT(i)時(shí),進(jìn)行時(shí)鐘推進(jìn),更新仿真節(jié)點(diǎn)時(shí)間,置仿真節(jié)點(diǎn)狀態(tài)為空閑(Time_Idle)并從推進(jìn)列表中刪除該推進(jìn)仿真節(jié)點(diǎn);
[0023]步驟9:遍歷所有仿真節(jié)點(diǎn),將所有仿真節(jié)點(diǎn)推進(jìn)狀態(tài)更改為不可推進(jìn),將更新后的消息以報(bào)文格式發(fā)送。
[0024]本發(fā)明中最大安全推進(jìn)時(shí)間GAT(i)采用如下方法計(jì)算:
[0025]首先判斷仿真節(jié)點(diǎn)推進(jìn)方式:分為:若為基于時(shí)鐘推進(jìn)的方式和基于事件的推進(jìn)方式;如果申請時(shí)鐘推進(jìn)的仿真節(jié)點(diǎn)序列為n= Ini, i e [I, m]};對于任意的仿真節(jié)點(diǎn)i的最大時(shí)鐘推進(jìn)步長設(shè)為GATi,且滿足GAT (i) =min {OUTPUT (j)}, i ^ j ;m為仿真節(jié)點(diǎn)的數(shù)量,i和j分別表示仿真節(jié)點(diǎn)編號(hào);
[0026]其中,OUTPUT(i)定義為:
[0027]
【權(quán)利要求】
1.一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,包括設(shè)置在每個(gè)仿真節(jié)點(diǎn)上的時(shí)鐘推進(jìn)代理、時(shí)鐘推進(jìn)服務(wù)器,其特征在于: 所述時(shí)鐘推進(jìn)代理為用戶提供仿真時(shí)鐘推進(jìn)接口,自動(dòng)為用戶生成仿真時(shí)鐘推進(jìn)消息,并接收時(shí)鐘推進(jìn)計(jì)算結(jié)果反饋給用戶; 所述時(shí)鐘推進(jìn)服務(wù)器負(fù)責(zé)接收時(shí)鐘推進(jìn)代理發(fā)送的時(shí)鐘推進(jìn)請求,加載時(shí)鐘推進(jìn)服務(wù)實(shí)例,計(jì)算時(shí)鐘推進(jìn)步長,并返回時(shí)鐘推進(jìn)結(jié)果給時(shí)鐘推進(jìn)代理。
2.根據(jù)權(quán)利要求1所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 所述時(shí)鐘推進(jìn)代理,為用戶提供三類調(diào)用接口:時(shí)間注冊接口、時(shí)間設(shè)置接口、時(shí)鐘推進(jìn)接口 ;用戶通過所述三類接口與所述時(shí)鐘推進(jìn)服務(wù)器進(jìn)行交互,完成仿真時(shí)鐘推進(jìn)過程; 所述時(shí)間注冊接口,在用戶仿真節(jié)點(diǎn)初始化時(shí)被調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)送本仿真節(jié)點(diǎn)基本消息,包括仿真節(jié)點(diǎn)IP、仿真節(jié)點(diǎn)ID,表明本仿真節(jié)點(diǎn)將使用時(shí)統(tǒng)服務(wù); 所述時(shí)鐘設(shè)置接口,在用戶仿真節(jié)點(diǎn)初始化或者狀態(tài)發(fā)生變化時(shí)被調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)送消息,向時(shí)鐘推進(jìn)服務(wù)器設(shè)置本仿真節(jié)點(diǎn)需要使用的仿真時(shí)鐘推進(jìn)的時(shí)間特性和參數(shù)要求; 所述時(shí)鐘推進(jìn)接口,在用戶仿真節(jié)點(diǎn)需要與其它仿真節(jié)點(diǎn)進(jìn)行時(shí)鐘同步時(shí)調(diào)用,向時(shí)鐘推進(jìn)服務(wù)器發(fā)起時(shí)鐘推進(jìn)請求,請求時(shí)鐘推進(jìn)服務(wù)器計(jì)算本仿真節(jié)點(diǎn)能推進(jìn)的最大時(shí)鐘步長。
3.根據(jù)權(quán)利要求1所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 所述時(shí)鐘推 進(jìn)服務(wù)器,包括:時(shí)鐘服務(wù)部署模塊、時(shí)鐘推進(jìn)請求接收模塊、時(shí)鐘推進(jìn)請求處理模塊; 所述時(shí)鐘服務(wù)部署模塊將已經(jīng)開發(fā)好的時(shí)鐘推進(jìn)計(jì)算服務(wù)裝載入時(shí)鐘服務(wù)器中,使其可被用戶調(diào)用; 所述時(shí)鐘推進(jìn)請求接收模塊將接收到的時(shí)鐘推進(jìn)請求放入緩沖區(qū)隊(duì)列,等待處理; 所述時(shí)鐘服務(wù)請求處理模塊自動(dòng)將接收的用戶時(shí)鐘推進(jìn)服務(wù)請求分配給時(shí)鐘推進(jìn)計(jì)算服務(wù),并將時(shí)鐘推進(jìn)計(jì)算服務(wù)的處理結(jié)果返回給用戶。
4.根據(jù)權(quán)利要求3所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 所述時(shí)鐘服務(wù)部署模塊為針對DLL格式文件的操作,它提供本地文件夾監(jiān)視功能、時(shí)鐘計(jì)算服務(wù)部署功能; 本地文件夾監(jiān)視功能用于接收本地或遠(yuǎn)程已經(jīng)開發(fā)好的時(shí)鐘推進(jìn)計(jì)算服務(wù)的DLL文件,并將接收到的文件傳拷貝到指定的文件路徑下; 時(shí)鐘計(jì)算服務(wù)部署功能為用于在接收到服務(wù)執(zhí)行文件后,將DLL文件拷貝到服務(wù)器指定的路徑下,并完成該時(shí)鐘推進(jìn)計(jì)算服務(wù)的參數(shù)配置信息。
5.根據(jù)權(quán)利要求3所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 所述時(shí)鐘推進(jìn)請求處理模塊包括時(shí)鐘推進(jìn)請求預(yù)處理子模塊、時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊、時(shí)鐘推進(jìn)請求作業(yè)管理模塊; 所述時(shí)鐘推進(jìn)請求預(yù)處理子模塊管理請求消息緩沖區(qū),監(jiān)控請求消息緩沖區(qū)是否有新的請求消息到達(dá);當(dāng)有新的消息到達(dá)時(shí),觸發(fā)時(shí)鐘推進(jìn)請求預(yù)處理子模塊,讀取新到達(dá)的請求消息,并發(fā)送給所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊;所述時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊解析時(shí)鐘推進(jìn)請求,遍歷當(dāng)前已經(jīng)加載運(yùn)行的時(shí)鐘推進(jìn)計(jì)算服務(wù)是否空閑,如果有空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù),將該時(shí)鐘推進(jìn)請求分配給該空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù),如果沒有空閑的時(shí)鐘推進(jìn)計(jì)算服務(wù),則動(dòng)態(tài)加載一個(gè)新的時(shí)鐘推進(jìn)計(jì)算服務(wù)實(shí)例,并將時(shí)鐘推進(jìn)請求分配給該時(shí)鐘推進(jìn)計(jì)算服務(wù)實(shí)例; 所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊接收新到達(dá)的時(shí)鐘推進(jìn)請求,將該時(shí)鐘推進(jìn)請求放入計(jì)算任務(wù)隊(duì)列中,通知時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊選擇時(shí)鐘計(jì)算服務(wù)開始計(jì)算推進(jìn)時(shí)間;同時(shí),對當(dāng)前所有的計(jì)算任務(wù)進(jìn)行監(jiān)控,當(dāng)計(jì)算任務(wù)結(jié)束后,移出任務(wù)隊(duì)列。
6.根據(jù)權(quán)利要求3所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊,管理一個(gè)就緒任務(wù)隊(duì)列,該任務(wù)隊(duì)列中緩沖所有仿真節(jié)點(diǎn)發(fā)送的時(shí)鐘推進(jìn)請求計(jì)算任務(wù)信息,該就緒任務(wù)隊(duì)列滿足先來先服務(wù)的原則;對于每個(gè)計(jì)算任務(wù),分為四種狀態(tài):等待、處理、異常和結(jié)束; 對于每個(gè)處于處理狀態(tài)的計(jì)算任務(wù),如果該計(jì)算任務(wù)的計(jì)算時(shí)間大于設(shè)置的閾值,則所述時(shí)鐘推進(jìn)請求作業(yè)管理模塊將表示該計(jì)算任務(wù)為異常,并通知所述時(shí)鐘推進(jìn)計(jì)算服務(wù)調(diào)度模塊終止該計(jì)算任務(wù)對應(yīng)的實(shí)例線程。
7.根據(jù)權(quán)利要求3所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 時(shí)鐘推進(jìn)計(jì)算服務(wù)在計(jì)算時(shí)鐘推進(jìn)最大步長過程中屏蔽了網(wǎng)絡(luò)傳輸延遲產(chǎn)生的瞬時(shí)消息影響,采用了基于延遲偏移量的時(shí)鐘推進(jìn)步長計(jì)算方法,其具體步驟為: 步驟1:仿真節(jié)點(diǎn)向時(shí)鐘推進(jìn)服務(wù)器申請時(shí)鐘推進(jìn)請求,時(shí)鐘推進(jìn)服務(wù)器接收相應(yīng)時(shí)鐘推進(jìn)請求; 步驟2:仿真時(shí)鐘推進(jìn)服務(wù)器對所有仿真節(jié)點(diǎn)進(jìn)行遍歷,若申請推進(jìn)的仿真節(jié)點(diǎn)存在,則繼續(xù)計(jì)算,否則返回; 步驟3:將申請推進(jìn)的仿真節(jié)點(diǎn)狀態(tài)改為推進(jìn),并開始計(jì)算仿真節(jié)點(diǎn)推進(jìn)時(shí)間,將申請推進(jìn)的仿真節(jié)點(diǎn)加入推進(jìn)列表; 步驟4:開始計(jì)算仿真節(jié)點(diǎn)安全推進(jìn)距離,將所有推進(jìn)仿真節(jié)點(diǎn)分為兩類:控制仿真節(jié)點(diǎn)和受限仿真節(jié)點(diǎn),遍歷所有仿真節(jié)點(diǎn),找到所有控制仿真節(jié)點(diǎn),計(jì)算申請時(shí)鐘推進(jìn)的仿真節(jié)點(diǎn)i的最大安全推進(jìn)時(shí)間GAT(i); 步驟5:在計(jì)算得出所有仿真節(jié)點(diǎn)最大安全推進(jìn)時(shí)間GAT (i)后,遍歷推進(jìn)列表所有仿真節(jié)點(diǎn); 步驟6:若推進(jìn)仿真節(jié)點(diǎn)為受限仿真節(jié)點(diǎn),將其申請的推進(jìn)時(shí)間與其推進(jìn)狀態(tài)下之前記錄的最大安全推進(jìn)時(shí)間GAT (i)的最小值進(jìn)行比較,若申請推進(jìn)時(shí)間小于或等于最大安全推進(jìn)時(shí)間GAT(i)的最小值,則轉(zhuǎn)步驟8,若申請時(shí)間大于最大安全推進(jìn)時(shí)間GAT(i)的最小值,仿真節(jié)點(diǎn)時(shí)間不可推進(jìn),仿真節(jié)點(diǎn)進(jìn)入等待狀態(tài); 步驟7:若推進(jìn)仿真節(jié)點(diǎn)為非受限仿真節(jié)點(diǎn),則其推進(jìn)不受其它仿真節(jié)點(diǎn)約束,若推進(jìn)仿真節(jié)點(diǎn)狀態(tài)為推進(jìn),直接進(jìn)行時(shí)鐘推進(jìn),若仿真節(jié)點(diǎn)狀態(tài)為不可推進(jìn),則該仿真節(jié)點(diǎn)時(shí)間不可推進(jìn),進(jìn)入等待狀態(tài); 步驟8:進(jìn)行時(shí)鐘推進(jìn),更新仿真節(jié)點(diǎn)時(shí)間,置仿真節(jié)點(diǎn)狀態(tài)為空閑,并從推進(jìn)列表中刪除該推進(jìn)仿真節(jié)點(diǎn); 步驟9:遍歷所有仿真節(jié)點(diǎn),將所有仿真節(jié)點(diǎn)推進(jìn)狀態(tài)更改為不可推進(jìn),將更新后的消息以報(bào)文格式發(fā)送。
8.根據(jù)權(quán)利要求3所述的一種面向服務(wù)仿真時(shí)鐘推進(jìn)方法,其特征在于: 最大安全推進(jìn)時(shí)間GAT(i)采用如下方法計(jì)算: 首先判斷仿真節(jié)點(diǎn)推進(jìn)方式:分為:若為基于時(shí)鐘推進(jìn)的方式和基于事件的推進(jìn)方式;如果申請時(shí)鐘推進(jìn)的仿真節(jié)點(diǎn)序列為n= Ini, i e [I, m]};對于任意的仿真節(jié)點(diǎn)i的最大時(shí)鐘推進(jìn)步長設(shè)為GAT (i)且滿足GAT(i) =min{OUTPUT(j)},i Φ j ;m為仿真節(jié)點(diǎn)的數(shù)量,i和j分別表示仿真節(jié)點(diǎn)編號(hào); 其中,仿真節(jié)點(diǎn)i的輸出時(shí)間OUTPUT(i)的計(jì)算公式為:
【文檔編號(hào)】H04L29/06GK103716397SQ201310745049
【公開日】2014年4月9日 申請日期:2013年12月30日 優(yōu)先權(quán)日:2013年12月30日
【發(fā)明者】林劍檸, 俞杰, 李玉萍, 徐慧, 崔鵬 申請人:中國電子科技集團(tuán)公司第二十八研究所