專利名稱::基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)及其仿真方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于分布式交通仿真領(lǐng)域,具體涉及面向服務(wù)架構(gòu)(Service-OrientedArchitecture,S0A)、多智能體、數(shù)據(jù)庫(kù)和分布式仿真等技術(shù)。
背景技術(shù):
:鑒于交通系統(tǒng)的復(fù)雜性,基于交通仿真的優(yōu)化成為交通信號(hào)優(yōu)化控制的主要方法之一。它大大減少了在評(píng)估交通系統(tǒng)時(shí)對(duì)數(shù)學(xué)公式或物理模型的解算所造成的負(fù)擔(dān),大大降低了現(xiàn)場(chǎng)試驗(yàn)的要求,為科研工作者提供了一種節(jié)約時(shí)間、節(jié)省費(fèi)用、安全可行的研究手段。分布式交通仿真主要研究如何將對(duì)大規(guī)模路網(wǎng)的復(fù)雜仿真過(guò)程分成許多較小的部分,并將它們分配到多個(gè)計(jì)算機(jī)上并行處理,最后綜合這些處理結(jié)果得到最終的仿真結(jié)果,可以大幅提高仿真的速度和效率。分布式交通仿真平臺(tái)往往包括新模塊的開(kāi)發(fā)與已有模塊的集成。新舊模塊在開(kāi)發(fā)語(yǔ)言、傳輸協(xié)議、軟硬件平臺(tái)等技術(shù)方面會(huì)有所不同,要求仿真系統(tǒng)具有較高的異構(gòu)性。此外,隨著信息化建設(shè)的不斷發(fā)展,不同應(yīng)用系統(tǒng)之間的交互日益頻繁,要求分布式系統(tǒng)各個(gè)模塊具有較好的可重用性。目前分布式仿真平臺(tái)主要采用HLA(HighLevelArchitecture)規(guī)范,然而其重用性受限于特定的仿真支撐平臺(tái)(RTI平臺(tái)),與其它領(lǐng)域技術(shù)和標(biāo)準(zhǔn)脫節(jié)。雖然WebService提供了良好的標(biāo)準(zhǔn)服務(wù)接口,然而與J2EE或.NET平臺(tái)結(jié)合的傳統(tǒng)開(kāi)發(fā)模式各自只能選擇EJB(EnterpriseJavaBean)或.NET語(yǔ)言的組件實(shí)現(xiàn)方式,異構(gòu)性較差。
發(fā)明內(nèi)容本發(fā)明的主要目的在于提供一種基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),以解決傳統(tǒng)分布式交通仿真存在的上述各種問(wèn)題,提高系統(tǒng)的異構(gòu)性,靈活性與模塊的可重用性,降低系統(tǒng)的開(kāi)發(fā)難度?;诿嫦蚍?wù)架構(gòu)的分布式交通仿真平臺(tái)包括4層結(jié)構(gòu)用戶界面層、協(xié)調(diào)仿真多智能體層、數(shù)據(jù)服務(wù)中心層與仿真資源層;其中,用戶界面層包括仿真客戶端和數(shù)據(jù)維護(hù)客戶端;協(xié)調(diào)仿真多智能體層包括交互智能體、路網(wǎng)生成智能體、協(xié)調(diào)智能體、仿真結(jié)果處理智能體與區(qū)域仿真模塊,區(qū)域仿真模塊由VC區(qū)域仿真模塊組成;數(shù)據(jù)服務(wù)中心層包括數(shù)據(jù)服務(wù)中心,而數(shù)據(jù)服務(wù)中心又包括Hibernate0RM子模塊(0RM即Object/RelationM即ping,對(duì)象-關(guān)系數(shù)據(jù)庫(kù)映射)、數(shù)據(jù)生成子模塊和數(shù)據(jù)調(diào)遣子模塊;仿真資源層是Oracle數(shù)據(jù)庫(kù);用戶界面層中的仿真客戶端通過(guò)訪問(wèn)協(xié)調(diào)仿真多智能體層中的交互智能體的仿真啟動(dòng)服務(wù),下達(dá)仿真任務(wù),并在仿真過(guò)程中通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果和實(shí)時(shí)仿真結(jié)果,并將其顯示;用戶界面層中的數(shù)據(jù)維護(hù)客戶端,用來(lái)完成路網(wǎng)數(shù)據(jù)與信號(hào)機(jī)參數(shù)的添加、修改、查詢與刪除;協(xié)調(diào)仿真多智能體層中的交互智能體,連接著仿真客戶端與仿真平臺(tái)內(nèi)部組件,向外提供仿真啟動(dòng)、仿真數(shù)據(jù)獲取與仿真結(jié)果上傳三個(gè)服務(wù);交互智能體接受仿真任務(wù),根據(jù)仿真任務(wù),確定仿真區(qū)域以及參與仿真的區(qū)域仿真模塊中的VC區(qū)域仿真模塊,并調(diào)用數(shù)據(jù)服務(wù)中心層中數(shù)據(jù)服務(wù)中心的數(shù)據(jù)生成子模塊的服務(wù),然后等區(qū)域仿真路網(wǎng)數(shù)據(jù)準(zhǔn)備完畢后初始化VC區(qū)域仿真模塊,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)開(kāi)始調(diào)用協(xié)調(diào)仿真多智能體層中的協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù),并在仿真過(guò)程中接收協(xié)調(diào)仿真多智能體層中的仿真結(jié)果處理智能體通過(guò)仿真結(jié)果上傳服務(wù),上傳的實(shí)時(shí)仿真結(jié)果;仿真結(jié)果處理智能體,提供實(shí)時(shí)結(jié)果上傳服務(wù)與統(tǒng)計(jì)結(jié)果生成服務(wù);各VC區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體的實(shí)時(shí)結(jié)果上傳服務(wù),向仿真結(jié)果處理智能體更新本周期的仿真實(shí)時(shí)信息,而仿真結(jié)果處理智能體通過(guò)仿真結(jié)果上傳服務(wù),上傳實(shí)時(shí)仿真結(jié)果給交互智能體;協(xié)調(diào)智能體,向外提供協(xié)調(diào)初始化服務(wù),內(nèi)部包括協(xié)調(diào)判定服務(wù)與信號(hào)調(diào)整服務(wù);協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù)被調(diào)用時(shí),首先開(kāi)辟多個(gè)線程,接著循環(huán)執(zhí)行線程調(diào)用各VC區(qū)域仿真模塊的周期仿真服務(wù),并在每一個(gè)仿真周期中根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào),若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體繼續(xù)調(diào)用VC區(qū)域仿真模塊的周期仿真服務(wù),實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策;區(qū)域仿真模塊,內(nèi)部嵌入SOA接入模塊,向交互智能體提供區(qū)域仿真初始化服務(wù),向協(xié)調(diào)智能體提供周期仿真服務(wù);區(qū)域仿真模塊產(chǎn)生交通流與車(chē)源,模擬車(chē)輛的運(yùn)動(dòng)行為,負(fù)責(zé)所屬子區(qū)域的仿真;VC區(qū)域仿真模塊調(diào)用數(shù)據(jù)服務(wù)中心的數(shù)據(jù)調(diào)遣子模塊的服務(wù),獲取區(qū)域仿真路網(wǎng)數(shù)據(jù);路網(wǎng)生成智能體作為數(shù)據(jù)解析部分嵌入SOA接入模塊,向VC區(qū)域仿真模塊提供路網(wǎng)生成服務(wù),路網(wǎng)生成服務(wù)從數(shù)據(jù)服務(wù)中心獲得路網(wǎng)與信號(hào)機(jī)的數(shù)據(jù)對(duì)象,并轉(zhuǎn)換成區(qū)域仿真模塊對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,使數(shù)據(jù)適用于區(qū)域仿真模塊;數(shù)據(jù)服務(wù)中心包括3個(gè)子模塊①HibernateORM子模塊,完成對(duì)象_關(guān)系映射,實(shí)現(xiàn)基于對(duì)象原語(yǔ)的數(shù)據(jù)建立,并將其持久化到仿真資源層中的Oracle數(shù)據(jù)庫(kù)中;②數(shù)據(jù)生成子模塊提供數(shù)據(jù)生成服務(wù),從Oracle數(shù)據(jù)庫(kù)中獲取分布式交通仿真所需要的路網(wǎng)信息,并將其封裝為SDO數(shù)據(jù);③數(shù)據(jù)調(diào)遣子模塊提供數(shù)據(jù)調(diào)遣服務(wù),通過(guò)WebService獲取路網(wǎng)生成智能體的仿真原始數(shù)據(jù)發(fā)送請(qǐng)求,將生成的SDO數(shù)據(jù)發(fā)送到區(qū)域仿真模塊;Oracle數(shù)據(jù)庫(kù),存儲(chǔ)仿真所需的路網(wǎng)數(shù)據(jù)信息與信號(hào)機(jī)配置信息;交互智能體、協(xié)調(diào)智能體和仿真結(jié)果處理智能體以及數(shù)據(jù)服務(wù)中心采用服務(wù)組件架構(gòu)SCA(ServiceComponentArchitecture)規(guī)范,并各自封裝成SCA構(gòu)件;已有的單機(jī)仿真程序模塊則通過(guò)SOA接入模塊作為區(qū)域仿真模塊接入本發(fā)明的仿真平臺(tái)中。系統(tǒng)的區(qū)域協(xié)調(diào)仿真基于邏輯時(shí)鐘同步,每個(gè)仿真模塊調(diào)用或提供粗粒度的服務(wù),基于不同的仿真服務(wù),仿真平臺(tái)完成大規(guī)模的分布式交通仿真。所述的VC區(qū)域仿真模塊,指用VisualC++實(shí)現(xiàn)的單機(jī)仿真程序模塊通過(guò)SOA接入模塊作為區(qū)域仿真模塊的。所述的SOA接入模塊由兩個(gè)部分組成服務(wù)綁定模塊與服務(wù)調(diào)用模塊;服務(wù)綁定模塊采用SCAJava構(gòu)件實(shí)現(xiàn),包括數(shù)據(jù)解析子模塊和Socket請(qǐng)求子模塊,其應(yīng)用原理為首先,服務(wù)綁定模塊接受SOA環(huán)境中的服務(wù)調(diào)用請(qǐng)求,并獲得SDO數(shù)據(jù);接著,數(shù)據(jù)解析子模塊解析SD0數(shù)據(jù),并通過(guò)Socket請(qǐng)求子模塊將數(shù)據(jù)經(jīng)Socket連接發(fā)送到VC單機(jī)仿真程序模塊,VC單機(jī)仿真程序模塊與SOA接入模塊位于同一臺(tái)計(jì)算機(jī)上,VC單機(jī)仿真程序模塊執(zhí)行其自身仿真程序的相關(guān)操作;然后,VC單機(jī)仿真程序模塊通過(guò)Socket連接將結(jié)果返回到服務(wù)綁定模塊;最后,服務(wù)綁定模塊將返回得數(shù)據(jù)結(jié)果封裝成SDO數(shù)據(jù)對(duì)象,并返回給服務(wù)調(diào)用者;服務(wù)調(diào)用模塊則采用組件對(duì)象模型COM(ComponentObjectModel)組件的實(shí)現(xiàn)方式,包括服務(wù)引用子模塊和數(shù)據(jù)轉(zhuǎn)換子模塊,服務(wù)引用子模塊采用公共語(yǔ)言運(yùn)行時(shí)CLR(CommonLanguageRuntime)托管程序開(kāi)發(fā),并以動(dòng)態(tài)鏈接庫(kù)DLL(DynamicLinkLibrary)形式生成;VC單機(jī)仿真程序模塊通過(guò)COM組件接口調(diào)用服務(wù)引用子模塊,實(shí)現(xiàn)仿真服務(wù)(如數(shù)據(jù)發(fā)送服務(wù))的引用,并得到SDO數(shù)據(jù);數(shù)據(jù)轉(zhuǎn)換子模塊解析SDO數(shù)據(jù)并進(jìn)行重新組合,使數(shù)據(jù)存儲(chǔ)格式與VC單機(jī)仿真程序模塊中的一致。數(shù)據(jù)類(lèi)型在VC程序,COM組件,托管DLL中需要進(jìn)行相應(yīng)的轉(zhuǎn)化,VC程序調(diào)用COM服務(wù)時(shí)傳遞的參數(shù)與返回值應(yīng)使用Variant類(lèi)型變量,COM組件訪問(wèn)托管DLL時(shí)傳遞的參數(shù)與返回值則需要進(jìn)行托管,非托管類(lèi)型轉(zhuǎn)化?;诿嫦蚍?wù)架構(gòu)的分布式交通仿真方法主要包括以下步驟步驟1、仿真啟動(dòng);仿真客戶端訪問(wèn)交互智能體的仿真啟動(dòng)服務(wù),交互智能體根據(jù)仿真任務(wù)確定仿真區(qū)域以及參與仿真的VC區(qū)域仿真模塊;步驟2、數(shù)據(jù)準(zhǔn)備;交互智能體調(diào)用數(shù)據(jù)服務(wù)中心的數(shù)據(jù)生成子模塊的服務(wù),數(shù)據(jù)服務(wù)中心從Oracle數(shù)據(jù)中獲取原始的路網(wǎng)數(shù)據(jù),并按區(qū)域?qū)?shù)據(jù)重組并封裝成SDO數(shù)據(jù)對(duì)象,生成區(qū)域仿真路網(wǎng)數(shù)據(jù),數(shù)據(jù)準(zhǔn)備完畢后,交互智能體初始化區(qū)域仿真模塊并同時(shí)等待初始化完成;步驟3、初始化區(qū)域仿真模塊,包括步驟3.1與步驟3.2,這兩個(gè)步驟都是多任務(wù)并發(fā);步驟3.l,仿真啟動(dòng)服務(wù)根據(jù)參與仿真的VC區(qū)域仿真模塊的數(shù)量開(kāi)辟多線程,在多線程中調(diào)用區(qū)域仿真初始化服務(wù);步驟3.2,仿真啟動(dòng)服務(wù)在主線程中通過(guò)標(biāo)志位等待步驟3.1中的仿真初始化完成;步驟4、獲取區(qū)域仿真路網(wǎng)數(shù)據(jù);各VC區(qū)域仿真模塊通過(guò)調(diào)用路網(wǎng)生成智能體的路網(wǎng)生成服務(wù),獲取在步驟2生成的區(qū)域仿真路網(wǎng)數(shù)據(jù);步驟5、區(qū)域協(xié)調(diào)仿真啟動(dòng),具體為步驟5.1,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)開(kāi)始調(diào)用協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù),此時(shí)仿真啟動(dòng)服務(wù)的生命周期結(jié)束;步驟5.2,仿真客戶端開(kāi)始循環(huán)調(diào)用交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲取公交車(chē)輛當(dāng)前時(shí)刻坐標(biāo),干線、路口交通流情況以及各信號(hào)當(dāng)前相位,協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù)首先開(kāi)辟多個(gè)線程,并循環(huán)執(zhí)行線程,調(diào)用各VC區(qū)域仿真模塊的周期仿真服務(wù);步驟6、區(qū)域協(xié)調(diào)控制;協(xié)調(diào)智能體在每一個(gè)仿真周期中首先根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào),若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則執(zhí)行步驟7,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則轉(zhuǎn)到步驟10;步驟7、周期性區(qū)域協(xié)調(diào)仿真;協(xié)調(diào)智能體調(diào)用區(qū)域仿真模塊的周期仿真服務(wù),實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,根據(jù)子區(qū)域所處的位置進(jìn)行邊界信息的更新,包括社會(huì)車(chē)輛交通流信息與公交車(chē)位置信息,然后執(zhí)行步驟8;步驟8、生成實(shí)時(shí)交通仿真數(shù)據(jù);各VC區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體的實(shí)時(shí)結(jié)果上傳服務(wù),向仿真結(jié)果處理智能體更新本周期的仿真實(shí)時(shí)信息,包括公交車(chē)輛經(jīng)緯度,行駛方向,信號(hào)狀態(tài);步驟9、仿真狀態(tài)判定與數(shù)據(jù)上載,包括步驟9.1與步驟9.2;步驟9.l,本周期的仿真實(shí)時(shí)信息更新后,仿真結(jié)果處理智能體通過(guò)交互智能體的仿真結(jié)果上傳服務(wù),上傳實(shí)時(shí)仿真結(jié)果給交互智能體,仿真客戶端可以通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲得實(shí)時(shí)仿真結(jié)果并顯示;步驟9.2,協(xié)調(diào)智能體根據(jù)仿真時(shí)間判斷整個(gè)仿真過(guò)程是否結(jié)束,若仿真沒(méi)有結(jié)束則循環(huán)進(jìn)行下一周期的仿真,執(zhí)行步驟6;否則結(jié)束區(qū)域仿真,執(zhí)行步驟12;步驟10、協(xié)調(diào)控制決策;協(xié)調(diào)智能體調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策;步驟11、更新信號(hào)機(jī)參數(shù);根據(jù)步驟10信號(hào)調(diào)整服務(wù)的結(jié)果在下一個(gè)仿真周期中更新信號(hào)機(jī)的參數(shù),然后執(zhí)行步驟7;步驟12、仿真統(tǒng)計(jì)數(shù)據(jù)生成;交互智能體調(diào)用仿真結(jié)果處理智能體的統(tǒng)計(jì)結(jié)果生成服務(wù),將生成的統(tǒng)計(jì)數(shù)據(jù)上傳到交互智能體,然后執(zhí)行步驟13;步驟13、統(tǒng)計(jì)數(shù)據(jù)顯示與結(jié)束;仿真客戶端通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù)獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果并顯示,整個(gè)分布式仿真任務(wù)結(jié)束,并等待下一個(gè)仿真任務(wù)的到來(lái)。本發(fā)明的優(yōu)點(diǎn)與積極效果在于(1)采用SOA架構(gòu),提高分布式仿真平臺(tái)的靈活度,易于分散開(kāi)發(fā),減少系統(tǒng)的開(kāi)發(fā)成本與周期;(2)仿真模塊采用SCA構(gòu)件實(shí)現(xiàn)方式,系統(tǒng)的異構(gòu)性、可重用型與可集成性強(qiáng);(3)S0A接入模塊進(jìn)一步增強(qiáng)了系統(tǒng)的可重用性,整個(gè)系統(tǒng)易于在異質(zhì)環(huán)境中部署;(4)仿真方法相對(duì)現(xiàn)有方法速度較快。圖1為基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)架構(gòu)示意圖2為基于SCA組件的系統(tǒng)實(shí)現(xiàn)示意圖;圖3為基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)SOA接入模塊示意圖4為基于面向服務(wù)架構(gòu)的分布式交通仿真方法運(yùn)行步驟示意圖5為本發(fā)明實(shí)施例驗(yàn)證試驗(yàn)中采用的路網(wǎng)示意圖6為本發(fā)明實(shí)施例驗(yàn)證試驗(yàn)所得數(shù)據(jù);圖中l(wèi)-仿真客戶端,2-數(shù)據(jù)維護(hù)客戶端,3-交互智能體,4-仿真結(jié)果處理智能體,5-協(xié)調(diào)智能體,6-區(qū)域仿真模塊,7-路網(wǎng)生成智能體,8-數(shù)據(jù)服務(wù)中心,801-數(shù)據(jù)調(diào)遣子模塊,802-數(shù)據(jù)生成子模塊,803-HibernateORM子模塊,9-0racle數(shù)據(jù)庫(kù),10-服務(wù)綁定模塊,101-數(shù)據(jù)解析子模塊,102-Socket請(qǐng)求子模塊,11-服務(wù)調(diào)用模塊,111-數(shù)據(jù)轉(zhuǎn)換子?!姥耄?12-服務(wù)引用子模塊,12-VC單機(jī)仿真程序模塊,a-仿真啟動(dòng)服務(wù),b-仿真數(shù)據(jù)獲取服務(wù),c-仿真結(jié)果上傳服務(wù),d-數(shù)據(jù)生成服務(wù),e-數(shù)據(jù)調(diào)遣服務(wù),f-實(shí)時(shí)結(jié)果上傳服務(wù),g-統(tǒng)計(jì)結(jié)果生成服務(wù),h-協(xié)調(diào)初始化服務(wù),i-區(qū)域仿真初始化服務(wù),j-周期仿真服務(wù)。具體實(shí)施例方式下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。如圖l所示,基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)包括四層結(jié)構(gòu)用戶界面層、協(xié)調(diào)仿真多智能體層、數(shù)據(jù)服務(wù)中心層與仿真資源層;其中,用戶界面層包括仿真客戶端1和數(shù)據(jù)維護(hù)客戶端2,仿真客戶端1包含多個(gè)客戶端(客戶端dl,客戶端d2,……客戶端dN)進(jìn)行顯示;協(xié)調(diào)仿真多智能體層包括交互智能體3、仿真結(jié)果處理智能體4、協(xié)調(diào)智能體5、路網(wǎng)生成智能體7與區(qū)域仿真模塊6,區(qū)域仿真模塊6中根據(jù)仿真任務(wù)接入VC區(qū)域仿真模塊(VC區(qū)域仿真模塊j,VC區(qū)域仿真模塊—2,……VC區(qū)域仿真模塊—k,……,VC區(qū)域仿真模塊—N,1《k《N);數(shù)據(jù)服務(wù)中心層是數(shù)據(jù)服務(wù)中心8,數(shù)據(jù)服務(wù)中心8又包括Hibernate0RM子模塊803、數(shù)據(jù)生成子模塊802和數(shù)據(jù)調(diào)遣子模塊801;仿真資源層是Oracle數(shù)據(jù)庫(kù)9。結(jié)合圖l,基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)各模塊實(shí)現(xiàn)細(xì)節(jié)及模塊間關(guān)系如下1)用戶界面層參仿真客戶端1:采用VB(VisualBasic)與MapX實(shí)現(xiàn)。仿真客戶端1顯示的路網(wǎng)底圖來(lái)源于美國(guó)M即Info公司的桌面地理信息系統(tǒng)軟件M即Info電子地圖。仿真客戶端1與交互智能體3通過(guò)SOA接入模塊相互連接,所交互的數(shù)據(jù)采用SDO模型進(jìn)行封裝。仿真客戶端1通過(guò)訪問(wèn)交互智能體3的仿真啟動(dòng)服務(wù)a下達(dá)仿真任務(wù),如圖2,并在仿真過(guò)程中通過(guò)交互智能體3的仿真數(shù)據(jù)獲取服務(wù)b,獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果和實(shí)時(shí)仿真結(jié)果,并將其顯示。參數(shù)據(jù)維護(hù)客戶端2:采用JavaSWT(StandardWidgetToolkit)實(shí)現(xiàn),通過(guò)Hibernate0RM子模塊803完成路網(wǎng)數(shù)據(jù)與信號(hào)機(jī)參數(shù)的添加、修改、查詢與刪除。2)協(xié)調(diào)仿真多智能體層參交互智能體3:采用SCAJava構(gòu)件實(shí)現(xiàn),與WebService綁定后向外提供仿真啟動(dòng)服務(wù)a、仿真數(shù)據(jù)獲取服務(wù)b與仿真結(jié)果上傳服務(wù)c,如圖2。仿真啟動(dòng)服務(wù)a的輸入?yún)?shù)是仿真客戶端1發(fā)送的仿真請(qǐng)求SDO數(shù)據(jù),該服務(wù)通過(guò)XSD(XMLSchemasDefinition)數(shù)據(jù)描述文件與SD0API(應(yīng)用程序編程接口)提取出仿真路網(wǎng)范圍,區(qū)域劃分個(gè)數(shù),車(chē)輛設(shè)定參數(shù)等信息。仿真啟動(dòng)服務(wù)a會(huì)通知數(shù)據(jù)服務(wù)中心8生成對(duì)應(yīng)路網(wǎng)的數(shù)據(jù),并根據(jù)區(qū)域個(gè)數(shù)創(chuàng)建若干線程用于啟動(dòng)區(qū)域仿真模塊6。仿真數(shù)據(jù)獲取服務(wù)b的返回參數(shù)是SDO數(shù)據(jù),包含當(dāng)前仿真時(shí)刻車(chē)輛與信號(hào)機(jī)的狀態(tài)。仿真結(jié)果上傳服務(wù)c的輸入是仿真過(guò)程中產(chǎn)生的實(shí)時(shí)數(shù)據(jù)與仿真結(jié)束后生成的統(tǒng)計(jì)數(shù)據(jù)。交互智能體3接受仿真任務(wù),根據(jù)仿真任務(wù)確定仿真區(qū)域,以及參與仿真的區(qū)域仿真模塊6中的VC區(qū)域仿真模塊,并調(diào)用數(shù)據(jù)服務(wù)中心8的數(shù)據(jù)生成子模塊802的服務(wù),然后等區(qū)域仿真路網(wǎng)數(shù)據(jù)準(zhǔn)備完畢后初始化VC區(qū)域仿真模塊,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)a開(kāi)始調(diào)用協(xié)調(diào)智能體5的協(xié)調(diào)初始化服務(wù)h,并在仿真過(guò)程中接收仿真結(jié)果處理智能體4通過(guò)實(shí)時(shí)結(jié)果上傳服務(wù)f上傳的實(shí)時(shí)仿真結(jié)果,如圖2。參仿真結(jié)果處理智能體4:采用SCAJava構(gòu)件實(shí)現(xiàn),提供實(shí)時(shí)結(jié)果上傳服務(wù)f與統(tǒng)計(jì)結(jié)果生成服務(wù)g,如圖2。實(shí)時(shí)結(jié)果上傳服務(wù)f的輸入?yún)?shù)為仿真實(shí)時(shí)數(shù)據(jù),包括公交車(chē)輛經(jīng)緯度與信號(hào)燈狀態(tài)等信息。統(tǒng)計(jì)結(jié)果生成服務(wù)g的輸入?yún)?shù)為各路口歷史狀態(tài),其根據(jù)歷史狀態(tài)計(jì)算區(qū)域信號(hào)控制整體指標(biāo),包括各路口的公交車(chē)平均延誤時(shí)間,各條公交線路的平均旅行時(shí)間等指標(biāo)。各VC區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體4的實(shí)時(shí)結(jié)果上傳服務(wù)f,向仿真結(jié)果處理智能體4更新本周期的仿真實(shí)時(shí)信息,而仿真結(jié)果處理智能體4通過(guò)仿真結(jié)果上傳服務(wù)c,上傳實(shí)時(shí)仿真結(jié)果給交互智能體3。參協(xié)調(diào)智能體5:通過(guò)邏輯時(shí)鐘同步區(qū)域仿真,確定區(qū)域協(xié)調(diào)決策;采用SCAJava構(gòu)件實(shí)現(xiàn),向外提供協(xié)調(diào)初始化服務(wù)h,內(nèi)部包括協(xié)調(diào)判定服務(wù)與信號(hào)調(diào)整服務(wù),如圖2。協(xié)調(diào)初始化服務(wù)h的輸入?yún)?shù)是參與仿真的區(qū)域仿真模塊的編號(hào)。協(xié)調(diào)判定服務(wù)的輸入?yún)?shù)是包括公交車(chē)延誤與排隊(duì)長(zhǎng)度在內(nèi)的路口狀態(tài)信息,返回值是協(xié)調(diào)方案決策。信號(hào)調(diào)整服務(wù)的輸入?yún)?shù)是協(xié)調(diào)方案與協(xié)調(diào)區(qū)域當(dāng)前信號(hào)狀態(tài),返回值是調(diào)整后的信號(hào)參數(shù)。協(xié)調(diào)初始化服務(wù)h被調(diào)用時(shí),首先會(huì)開(kāi)辟多個(gè)線程,并循環(huán)執(zhí)行線程調(diào)用各VC區(qū)域仿真模塊(VC區(qū)域仿真模塊_1、VC區(qū)域仿真模塊_2、……、VC區(qū)域仿真模塊_N)的周期仿真服務(wù)j,并在每一個(gè)仿真周期中調(diào)用協(xié)調(diào)判定服務(wù),根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào),若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體5繼續(xù)調(diào)用區(qū)域仿真模塊6中的VC區(qū)域仿真模塊的周期仿真服務(wù)j,實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體5調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策。參區(qū)域仿真模塊6:采用VC++實(shí)現(xiàn)。仿真模型采用宏觀微觀相結(jié)合的混合仿真模型,公交車(chē)輛采用微觀仿真模型精確描述其行駛,超車(chē),進(jìn)站等行為。社會(huì)車(chē)輛用宏觀交通流代替。區(qū)域仿真模塊6內(nèi)部嵌入SOA接入模塊,向外提供區(qū)域仿真初始化服務(wù)i與周期仿真服務(wù)j,如圖2。區(qū)域仿真初始化服務(wù)i實(shí)現(xiàn)區(qū)域仿真模塊內(nèi)部的路網(wǎng)構(gòu)建,公交車(chē)輛生成與社會(huì)車(chē)輛交通流生成等仿真初始化操作。周期仿真服務(wù)j實(shí)現(xiàn)各仿真子區(qū)域在一個(gè)周期內(nèi)的仿真。區(qū)域仿真模塊6產(chǎn)生車(chē)流與交通流,模擬車(chē)輛的運(yùn)動(dòng)行為,負(fù)責(zé)所屬子區(qū)域的仿真;其內(nèi)接入的VC區(qū)域仿真模塊調(diào)用數(shù)據(jù)服務(wù)中心8的數(shù)據(jù)調(diào)遣子模塊801的服務(wù),獲取區(qū)域仿真路網(wǎng)數(shù)據(jù)。參路網(wǎng)生成智能體7:采用C++COM組件實(shí)現(xiàn),嵌入SOA接入模塊,提供路網(wǎng)生成服務(wù)。路網(wǎng)生成服務(wù)從數(shù)據(jù)服務(wù)中心8獲得路網(wǎng)與信號(hào)機(jī)的SDO數(shù)據(jù)對(duì)象,并轉(zhuǎn)換成區(qū)域仿真模塊6對(duì)應(yīng)的struct數(shù)據(jù)結(jié)構(gòu)類(lèi)型。3)數(shù)據(jù)服務(wù)中心層參數(shù)據(jù)服務(wù)中心8:采用SCAJava構(gòu)件實(shí)現(xiàn),包括HibernateORM子模塊803、數(shù)據(jù)生成子模塊802與數(shù)據(jù)調(diào)遣子模塊801。HibernateORM子模塊803基于Hibernate的關(guān)聯(lián)映射實(shí)現(xiàn)路網(wǎng)數(shù)據(jù)結(jié)構(gòu)及其在0racle數(shù)據(jù)庫(kù)9中的持久化存儲(chǔ)。數(shù)據(jù)生成子模塊802通過(guò)組件內(nèi)的數(shù)據(jù)生成服務(wù)d完成基于面向?qū)ο蟮穆肪W(wǎng)數(shù)據(jù)提取,并生成SDO數(shù)據(jù)對(duì)象。數(shù)據(jù)調(diào)遣子模塊801中的數(shù)據(jù)調(diào)遣服務(wù)e通過(guò)WebService將SDO數(shù)據(jù)發(fā)送到區(qū)域仿真模塊6。4)仿真資源層參Oracle數(shù)據(jù)庫(kù)9:所存儲(chǔ)的仿真路網(wǎng)采用包括拓?fù)湫畔ⅲ瑢傩孕畔?,地理信息的三層模型。其中的地理信息存?chǔ)在OracleSpatial數(shù)據(jù)庫(kù)中。整個(gè)數(shù)據(jù)庫(kù)包括路網(wǎng)拓?fù)湫畔⒈恚肪W(wǎng)元素屬性信息表,路網(wǎng)元素地理信息表,信號(hào)機(jī)參數(shù)表與映射集合表等13個(gè)關(guān)系型數(shù)據(jù)表。本發(fā)明各模塊間的數(shù)據(jù)傳輸方式有四種,如圖1所示,仿真客戶端1與交互智能體3之間,交互智能體3與區(qū)域仿真模塊6之間,交互智能體3與數(shù)據(jù)服務(wù)中心8之間,仿真結(jié)果處理智能體4與區(qū)域仿真模塊6之間,協(xié)調(diào)智能體5與區(qū)域仿真模塊6之間,以及路網(wǎng)生成智能體7與數(shù)據(jù)服務(wù)中心8之間,均采用的是WebService進(jìn)行數(shù)據(jù)傳輸;交互智能體3與仿真結(jié)果處理智能體4之間,交互智能體3與協(xié)調(diào)智能體5之間,數(shù)據(jù)維護(hù)客戶端2與數(shù)據(jù)服務(wù)中心8之間,以及數(shù)據(jù)服務(wù)中心8中的數(shù)據(jù)調(diào)遣子模塊801與數(shù)據(jù)生成子模塊802之間,數(shù)據(jù)生成子模塊802與HibernateORM子模塊803之間,采用的是SCAService進(jìn)行數(shù)據(jù)傳輸;此外,數(shù)據(jù)服務(wù)中心8與Oracle數(shù)據(jù)庫(kù)9之間采用的是Java數(shù)據(jù)庫(kù)連接JDBC(JavaDataBaseConnectivity)進(jìn)行數(shù)據(jù)傳輸,區(qū)域仿真模塊6與路網(wǎng)生成智能體之間采用COMService進(jìn)行數(shù)據(jù)傳輸。本發(fā)明的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)中各模塊的工作基于邏輯時(shí)間同步,從仿真客戶端1部署仿真任務(wù)到仿真結(jié)束返回統(tǒng)計(jì)數(shù)據(jù)結(jié)果。本發(fā)明仿真平臺(tái)的交互智能體3、協(xié)調(diào)智能體5、仿真結(jié)果處理智能體4以及數(shù)據(jù)服務(wù)中心8采用服務(wù)組件架構(gòu)SCA規(guī)范,并各自封裝成SCA構(gòu)件,SCA的語(yǔ)言無(wú)關(guān)性使得SCA組件可由多種語(yǔ)言實(shí)現(xiàn),包括Java、C、C++、BPEL、PHP、COBOL等等。每個(gè)SCA構(gòu)件由若干SCA組件構(gòu)成。每個(gè)SCA組件包含如下4個(gè)部分參服務(wù)組件本身向其他組件提供的業(yè)務(wù)功能;參實(shí)現(xiàn)特定業(yè)務(wù)功能的實(shí)現(xiàn)代碼;參屬性對(duì)業(yè)務(wù)功能中的數(shù)據(jù)值進(jìn)行配置,進(jìn)而影響實(shí)現(xiàn)的行為;參引用本組件實(shí)現(xiàn)對(duì)其他組件所提供服務(wù)的依賴。本發(fā)明實(shí)施例中SCA組件采用Java實(shí)現(xiàn),組件包括服務(wù)接口、實(shí)現(xiàn)、屬性、引用接口四部分。一個(gè)SCA組件可對(duì)外提供一個(gè)或多個(gè)服務(wù),每個(gè)服務(wù)對(duì)應(yīng)一個(gè)接口類(lèi),服務(wù)對(duì)應(yīng)的方法在服務(wù)接口類(lèi)中體現(xiàn)為一系列的抽象方法,若服務(wù)被定義為遠(yuǎn)程調(diào)用,需要用@Remotable進(jìn)行注釋,在實(shí)現(xiàn)類(lèi)中,用@ServiCe(*.class)指定服務(wù)接口,并重寫(xiě)服務(wù)接口中的方法。若組件的實(shí)現(xiàn)需包含對(duì)其它組件服務(wù)的引用,則需調(diào)用相應(yīng)的set方法并以◎Reference進(jìn)行注釋。屬性的配置需要在服務(wù)實(shí)現(xiàn)類(lèi)中用@Property標(biāo)記字段或Setter方法,并在配置文件中的〈property〉元素中進(jìn)行配置。由于分布式仿真平臺(tái)結(jié)構(gòu)復(fù)雜,涉及多個(gè)模塊,僅由一名開(kāi)發(fā)人員從底層開(kāi)始完成系統(tǒng)的全部開(kāi)發(fā)是不現(xiàn)實(shí)的。首先,分布式系統(tǒng)的開(kāi)發(fā)應(yīng)盡可能建立在現(xiàn)有的模塊之上,其次,分布式系統(tǒng)應(yīng)先以模塊為單位進(jìn)行分散開(kāi)發(fā),最后將各模塊進(jìn)行集成。仿真模塊SCA的實(shí)現(xiàn)與SD0數(shù)據(jù)封裝已經(jīng)解決了SCA模塊系統(tǒng)集成的問(wèn)題,而獨(dú)立開(kāi)發(fā)的非SCA模塊的集成需要設(shè)計(jì)相應(yīng)的解決方案。為了將單機(jī)仿真程序與整個(gè)仿真平臺(tái)結(jié)合,其需要具備提供服務(wù)與調(diào)用服務(wù)的能力。雖然單機(jī)的仿真程序可以將關(guān)鍵部分分離出來(lái),重新封裝成SCA組件,但這樣操作具有許多弊端。首先,作為一個(gè)完整的單機(jī)仿真程序,重新對(duì)其關(guān)鍵組件封裝會(huì)破壞軟件的整體結(jié)構(gòu),不利于軟件后續(xù)的升級(jí)與維護(hù)。其次,單機(jī)仿真程序本身規(guī)模較大,重新封裝成SCA組件代碼改動(dòng)量大。再次,SCA組件的運(yùn)行依賴特殊的Web容器,系統(tǒng)運(yùn)行的獨(dú)立性降低。最后,單機(jī)仿真程序的開(kāi)發(fā)人員須同時(shí)具有SOA、SCA、SDO的相關(guān)知識(shí),否則不利于整個(gè)系統(tǒng)的分散開(kāi)發(fā)。而本發(fā)明創(chuàng)新的實(shí)現(xiàn)了一種單機(jī)程序SOA接入模塊,可將單機(jī)仿真程序模塊接入SOA環(huán)境并作為分布式仿真平臺(tái)模塊的一部份,并進(jìn)行極少的代碼修改。SOA接入模塊與VC單機(jī)仿真程序模塊12位于同一臺(tái)計(jì)算機(jī)上,如圖3所示,涉及到兩個(gè)環(huán)境SOA環(huán)境與非SOA環(huán)境,SOA環(huán)境指本發(fā)明的仿真平臺(tái)環(huán)境,VC單機(jī)仿真程序模塊是由用Visual0++實(shí)現(xiàn)的單機(jī)仿真程序模塊,處于非5(^環(huán)境。SOA接入模塊包括兩個(gè)部分服務(wù)綁定模塊10與服務(wù)調(diào)用模塊11。服務(wù)綁定模塊10采用SCAJava構(gòu)件實(shí)現(xiàn),包括數(shù)據(jù)解析子模塊101和Socket請(qǐng)求子模塊102,其應(yīng)用原理為首先,服務(wù)綁定模塊10通過(guò)WebService傳輸數(shù)據(jù),接受SOA環(huán)境中的服務(wù)調(diào)用請(qǐng)求,并獲得SDO數(shù)據(jù);接著,數(shù)據(jù)解析子模塊101解析SDO數(shù)據(jù),并通過(guò)Socket請(qǐng)求子模塊102將數(shù)據(jù)經(jīng)Socket連接發(fā)送到VC單機(jī)仿真程序模塊12,VC單機(jī)仿真程序模塊12執(zhí)行其內(nèi)仿真程序的相關(guān)操作,然后,VC單機(jī)仿真程序模塊12通過(guò)Socket連接將結(jié)果返回到服務(wù)綁定模塊10;最后,服務(wù)綁定模塊10將返回的數(shù)據(jù)結(jié)果封裝成SDO數(shù)據(jù)對(duì)象,并返回給服務(wù)調(diào)用者。服務(wù)調(diào)用模塊11則采用COM組件的方式實(shí)現(xiàn),包括數(shù)據(jù)轉(zhuǎn)換子模塊111和服務(wù)引用子模塊112。服務(wù)引用子模塊112采用CLR托管程序開(kāi)發(fā),并以DLL形式生成。VC單機(jī)仿真程序模塊12通過(guò)COM組件接口調(diào)用服務(wù)引用子模塊112,實(shí)現(xiàn)仿真服務(wù)(如數(shù)據(jù)發(fā)送服務(wù))的引用,并得到SD0數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)換子模塊lll解析SDO數(shù)據(jù)并進(jìn)行重新組合,使數(shù)據(jù)存儲(chǔ)格式與VC單機(jī)仿真程序模塊12中的一致。數(shù)據(jù)類(lèi)型在VC程序,COM組件,托管DLL中需要進(jìn)行相應(yīng)的轉(zhuǎn)化,VC程序調(diào)用COM服務(wù)時(shí)傳遞的參數(shù)與返回值應(yīng)使用Variant類(lèi)型變量,COM組件訪問(wèn)托管DLL時(shí)傳遞的參數(shù)與返回值則需要進(jìn)行托管,非托管類(lèi)型轉(zhuǎn)化。圖3中C0M組件提供的接口都需要從IUnknown接口繼承?;诿嫦蚍?wù)架構(gòu)的分布式交通仿真平臺(tái)的仿真方法,其仿真流程如圖4所示,具體步驟說(shuō)明如下步驟1、仿真啟動(dòng);仿真客戶端1訪問(wèn)交互智能體3的仿真啟動(dòng)服務(wù),交互智能體3根據(jù)仿真任務(wù)確定仿真區(qū)域以及參與仿真的區(qū)域仿真模塊6接入的VC區(qū)域仿真模塊。步驟2、數(shù)據(jù)準(zhǔn)備;交互智能體3調(diào)用數(shù)據(jù)服務(wù)中心8的數(shù)據(jù)生成子模塊802的服務(wù),數(shù)據(jù)服務(wù)中心8從Oracle數(shù)據(jù)庫(kù)9中獲取原始的路網(wǎng)數(shù)據(jù),并按區(qū)域?qū)?shù)據(jù)重組并封裝成SDO數(shù)據(jù)對(duì)象,生成區(qū)域仿真路網(wǎng)數(shù)據(jù)。數(shù)據(jù)準(zhǔn)備完畢后,交互智能體3初始化區(qū)域仿真模塊6并同時(shí)等待初始化完成。步驟3、初始化區(qū)域仿真模塊,包括步驟3.1與步驟3.2,這兩個(gè)步驟都是多任務(wù)并發(fā);步驟3.l,仿真啟動(dòng)服務(wù)根據(jù)參與仿真的VC區(qū)域仿真模塊的數(shù)量開(kāi)辟多線程,在多線程中調(diào)用區(qū)域仿真初始化服務(wù);步驟3.2,仿真啟動(dòng)服務(wù)在主線程中通過(guò)標(biāo)志位等待步驟3.1中的仿真初始化完成;步驟4、獲取區(qū)域仿真路網(wǎng)數(shù)據(jù);各VC區(qū)域仿真模塊通過(guò)調(diào)用路網(wǎng)生成智能體的路網(wǎng)生成服務(wù),獲取在步驟2生成的區(qū)域仿真路網(wǎng)數(shù)據(jù)。步驟5、區(qū)域協(xié)調(diào)仿真啟動(dòng),具體為步驟5.1,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)開(kāi)始調(diào)用協(xié)調(diào)智能體5的協(xié)調(diào)初始化服務(wù),此時(shí)仿真啟動(dòng)服務(wù)的生命周期結(jié)束;步驟5.2,仿真客戶端1開(kāi)始循環(huán)調(diào)用交互智能體3的仿真數(shù)據(jù)獲取服務(wù),獲取公交車(chē)輛當(dāng)前時(shí)刻坐標(biāo),干線、路口交通流情況以及各信號(hào)等當(dāng)前相位。協(xié)調(diào)智能體5的協(xié)調(diào)初始化服務(wù)首先會(huì)開(kāi)辟多個(gè)線程,并循環(huán)執(zhí)行線程調(diào)用各VC區(qū)域仿真模塊的周期仿真服務(wù)。步驟6、區(qū)域協(xié)調(diào)控制;協(xié)調(diào)智能體5在每一個(gè)仿真周期中首先根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào)。若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則執(zhí)行步驟7,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則執(zhí)行步驟IO。步驟7、周期性區(qū)域協(xié)調(diào)仿真;協(xié)調(diào)智能體5調(diào)用區(qū)域仿真模塊6的周期仿真服務(wù),實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,根據(jù)子區(qū)域所處的位置進(jìn)行邊界信息的更新,包括社會(huì)車(chē)輛交通流信息與公交車(chē)位置信息,然后執(zhí)行步驟8。步驟8、生成實(shí)時(shí)交通仿真數(shù)據(jù);各VC區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體4的實(shí)時(shí)結(jié)果上傳服務(wù),向仿真結(jié)果處理智能體4更新本周期的仿真實(shí)時(shí)信息,包括公交車(chē)輛經(jīng)緯度,行駛方向,信號(hào)等狀態(tài)等。步驟9、仿真狀態(tài)判定與數(shù)據(jù)上載,包括步驟9.1與步驟9.2;步驟9.1,本周期的仿真實(shí)時(shí)信息更新后,仿真結(jié)果處理智能體4通過(guò)交互智能體3的仿真結(jié)果上傳服務(wù),上傳實(shí)時(shí)仿真結(jié)果給交互智能體3,仿真客戶端1可以通過(guò)交互智能體3的仿真數(shù)據(jù)獲取服務(wù),獲得實(shí)時(shí)仿真結(jié)果并顯示;步驟9.2,協(xié)調(diào)智能體5根據(jù)仿真時(shí)間是否到期判斷整個(gè)仿真過(guò)程是否結(jié)束,若仿真沒(méi)有結(jié)束則循環(huán)進(jìn)行下一周期的仿真,轉(zhuǎn)到步驟6執(zhí)行,若仿真結(jié)束,則結(jié)束區(qū)域仿真,然后轉(zhuǎn)步驟12。步驟10、協(xié)調(diào)控制決策;協(xié)調(diào)智能體5調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策。步驟11、更新信號(hào)機(jī)參數(shù);根據(jù)步驟10信號(hào)調(diào)整服務(wù)的結(jié)果在下一個(gè)仿真周期中更新信號(hào)機(jī)的參數(shù),然后執(zhí)行步驟7。步驟12、仿真統(tǒng)計(jì)數(shù)據(jù)生成;交互智能體3調(diào)用仿真結(jié)果處理智能體4的統(tǒng)計(jì)結(jié)果生成服務(wù),將生成的統(tǒng)計(jì)數(shù)據(jù)上傳到交互智能體3,然后執(zhí)行步驟13。步驟13、統(tǒng)計(jì)數(shù)據(jù)顯示與結(jié)束;仿真客戶端1通過(guò)交互智能體3的仿真數(shù)據(jù)獲取服務(wù)獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果并顯示,整個(gè)分布式仿真任務(wù)結(jié)束,等待下一個(gè)仿真任務(wù)的到來(lái)。最后,為了驗(yàn)證本發(fā)明的分布式交通仿真平臺(tái)的可行性,本文選擇了某區(qū)內(nèi)一真實(shí)路網(wǎng)進(jìn)行實(shí)驗(yàn),路網(wǎng)如圖5所示。整個(gè)路網(wǎng)被分成3個(gè)子區(qū)域,用虛線框與實(shí)線框分出,路網(wǎng)內(nèi)設(shè)置了3條公交線路Linel:A1-A2-A14-A15-A16-A17-A18-A19-A7-A8-A9-A21-A31-A32-A33-A34,共有7站;Line2:A25-A26-A27-A28-A16-A17-A18-A19-A29-A30-A31-A21-A22-A23-A24,共有8站;Line3:A35-A36-A37-A38-A39-A28-A29-A40-A41-A42-A43,共有7站;每條線路上、下行方向共有20輛公交車(chē),發(fā)車(chē)間隔為1分鐘,公交車(chē)輛的平均速度為12米/秒,社會(huì)車(chē)輛以交通流方式在路口處注入,信號(hào)控制采用半感應(yīng)控制,信號(hào)周期為120秒,最小綠燈時(shí)間為20秒,最大綠燈時(shí)間為60秒,仿真時(shí)間設(shè)定為1小時(shí)。整個(gè)分布式仿真耗時(shí)87秒,證明了本發(fā)明的分布式交通仿真平臺(tái)的高效性。三條線路的平均旅行時(shí)間分別為1303.10秒,1159.58秒和1096.32秒。此外,本文統(tǒng)計(jì)了路口公交車(chē)輛通過(guò)數(shù)(APB)與公交車(chē)輛路口平均延誤(AD,秒)兩個(gè)指標(biāo),如圖6所示。以路口A8和A12為例,通過(guò)路口A8的公交車(chē)數(shù)量為96,公交車(chē)平均延誤為11.47秒;路口A12沒(méi)有公交車(chē)通過(guò),則其平均延誤時(shí)間無(wú)法統(tǒng)計(jì)。分布式仿真所得數(shù)據(jù)與單機(jī)仿真程序所得數(shù)據(jù)基本一致,表明分布式仿真平臺(tái)可以正確模擬車(chē)輛的行為,驗(yàn)證了其正確性。權(quán)利要求基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,包括四層結(jié)構(gòu)用戶界面層、協(xié)調(diào)仿真多智能體層、數(shù)據(jù)服務(wù)中心層與仿真資源層;其中,用戶界面層包括仿真客戶端和數(shù)據(jù)維護(hù)客戶端;協(xié)調(diào)仿真多智能體層包括交互智能體、路網(wǎng)生成智能體、協(xié)調(diào)智能體、仿真結(jié)果處理智能體與區(qū)域仿真模塊,區(qū)域仿真模塊由VC區(qū)域仿真模塊組成;數(shù)據(jù)服務(wù)中心層包括數(shù)據(jù)服務(wù)中心,而數(shù)據(jù)服務(wù)中心又包括HibernateORM子模塊、數(shù)據(jù)生成子模塊和數(shù)據(jù)調(diào)遣子模塊;仿真資源層是Oracle數(shù)據(jù)庫(kù);用戶界面層中的仿真客戶端通過(guò)訪問(wèn)協(xié)調(diào)仿真多智能體層中的交互智能體的仿真啟動(dòng)服務(wù),下達(dá)仿真任務(wù),并在仿真過(guò)程中通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果和實(shí)時(shí)仿真結(jié)果,并將其顯示;用戶界面層中的數(shù)據(jù)維護(hù)客戶端,用來(lái)完成路網(wǎng)數(shù)據(jù)與信號(hào)機(jī)參數(shù)的添加、修改、查詢與刪除;協(xié)調(diào)仿真多智能體層中的交互智能體,連接著仿真客戶端與仿真平臺(tái)內(nèi)部組件,向外提供仿真啟動(dòng)、仿真數(shù)據(jù)獲取與仿真結(jié)果上傳三個(gè)服務(wù);交互智能體接受仿真任務(wù),根據(jù)仿真任務(wù),確定仿真區(qū)域以及參與仿真的區(qū)域仿真模塊中的VC區(qū)域仿真模塊,并調(diào)用數(shù)據(jù)服務(wù)中心層中數(shù)據(jù)服務(wù)中心的數(shù)據(jù)生成子模塊的服務(wù),然后等區(qū)域仿真路網(wǎng)數(shù)據(jù)準(zhǔn)備完畢后初始化VC區(qū)域仿真模塊,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)開(kāi)始調(diào)用協(xié)調(diào)仿真多智能體層中的協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù),并在仿真過(guò)程中接收協(xié)調(diào)仿真多智能體層中的仿真結(jié)果處理智能體通過(guò)仿真結(jié)果上傳服務(wù)上傳的實(shí)時(shí)仿真結(jié)果;仿真結(jié)果處理智能體,提供實(shí)時(shí)結(jié)果上傳服務(wù)與統(tǒng)計(jì)結(jié)果生成服務(wù);各VC區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體的實(shí)時(shí)結(jié)果上傳服務(wù),向仿真結(jié)果處理智能體更新本周期的仿真實(shí)時(shí)信息,而仿真結(jié)果處理智能體通過(guò)仿真結(jié)果上傳服務(wù),上傳實(shí)時(shí)仿真結(jié)果給交互智能體;協(xié)調(diào)智能體,向交互智能體提供協(xié)調(diào)初始化服務(wù),內(nèi)部包括協(xié)調(diào)判定服務(wù)與信號(hào)調(diào)整服務(wù);協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù)被調(diào)用時(shí),首先開(kāi)辟多個(gè)線程,接著循環(huán)執(zhí)行線程調(diào)用各VC區(qū)域仿真模塊的周期仿真服務(wù),并在每一個(gè)仿真周期中根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào),若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體繼續(xù)調(diào)用VC區(qū)域仿真模塊的周期仿真服務(wù),實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則協(xié)調(diào)智能體調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策;區(qū)域仿真模塊,內(nèi)部嵌入SOA接入模塊,向交互智能體提供區(qū)域仿真初始化服務(wù),向協(xié)調(diào)智能體提供周期仿真服務(wù);區(qū)域仿真模塊產(chǎn)生交通流與車(chē)源,模擬車(chē)輛的運(yùn)動(dòng)行為,負(fù)責(zé)所屬子區(qū)域的仿真;VC區(qū)域仿真模塊調(diào)用數(shù)據(jù)服務(wù)中心的數(shù)據(jù)調(diào)遣子模塊的服務(wù),獲取區(qū)域仿真路網(wǎng)數(shù)據(jù);路網(wǎng)生成智能體作為數(shù)據(jù)解析部分嵌入SOA接入模塊,向VC區(qū)域仿真模塊提供路網(wǎng)生成服務(wù),路網(wǎng)生成服務(wù)從數(shù)據(jù)服務(wù)中心獲得路網(wǎng)與信號(hào)機(jī)的SDO數(shù)據(jù)對(duì)象,并轉(zhuǎn)換成區(qū)域仿真模塊對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,使數(shù)據(jù)適用于區(qū)域仿真模塊;數(shù)據(jù)服務(wù)中心包括3個(gè)子模塊①HibernateORM子模塊,完成對(duì)象-關(guān)系映射,實(shí)現(xiàn)基于對(duì)象原語(yǔ)的數(shù)據(jù)建立,并將其持久化到仿真資源層中的Oracle數(shù)據(jù)庫(kù)中;②數(shù)據(jù)生成子模塊提供數(shù)據(jù)生成服務(wù),從Oracle數(shù)據(jù)庫(kù)中獲取分布式交通仿真所需要的路網(wǎng)信息,并將其封裝為SDO數(shù)據(jù);③數(shù)據(jù)調(diào)遣子模塊提供數(shù)據(jù)調(diào)遣服務(wù),通過(guò)WebService獲取路網(wǎng)生成智能體的仿真原始數(shù)據(jù)發(fā)送請(qǐng)求,將生成的SDO數(shù)據(jù)發(fā)送到區(qū)域仿真模塊;Oracle數(shù)據(jù)庫(kù),存儲(chǔ)仿真所需的路網(wǎng)數(shù)據(jù)信息與信號(hào)機(jī)配置信息;交互智能體、協(xié)調(diào)智能體、仿真結(jié)果處理智能體以及數(shù)據(jù)服務(wù)中心采用服務(wù)組件架構(gòu)SCA規(guī)范,并各自封裝成SCA構(gòu)件;已有的單機(jī)仿真程序模塊則通過(guò)SOA接入模塊作為區(qū)域仿真模塊接入仿真平臺(tái)中;系統(tǒng)的區(qū)域協(xié)調(diào)仿真基于邏輯時(shí)鐘同步,每個(gè)仿真模塊調(diào)用或提供粗粒度的服務(wù),基于不同的仿真服務(wù),仿真平臺(tái)完成大規(guī)模的分布式交通仿真;其中,SOA代表面向服務(wù)架構(gòu),SCA代表服務(wù)組件架構(gòu),VC即VisualC++,SDO即ServicedataObjects,ORM代表對(duì)象-關(guān)系數(shù)據(jù)庫(kù)映射。2.根據(jù)權(quán)利要求1所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,所述的VC區(qū)域仿真模塊,指用VisualC++實(shí)現(xiàn)的單機(jī)仿真程序模塊,通過(guò)SOA接入模塊接入?yún)^(qū)域仿真模塊。3.根據(jù)權(quán)利要求1或2所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,所述的SOA接入模塊由兩個(gè)部分組成服務(wù)綁定模塊與服務(wù)調(diào)用模塊;服務(wù)綁定模塊采用SCAJava構(gòu)件實(shí)現(xiàn),包括數(shù)據(jù)解析子模塊和Socket請(qǐng)求子模塊,其應(yīng)用原理為首先,服務(wù)綁定模塊接受SOA環(huán)境中的服務(wù)調(diào)用請(qǐng)求,并獲得SDO數(shù)據(jù);接著,數(shù)據(jù)解析子模塊解析SDO數(shù)據(jù),并通過(guò)Socket請(qǐng)求子模塊將數(shù)據(jù)經(jīng)Socket連接發(fā)送到VC單機(jī)仿真程序模塊,VC單機(jī)仿真程序模塊與SOA接入模塊位于同一臺(tái)計(jì)算機(jī)上,VC單機(jī)仿真程序模塊接收數(shù)據(jù)執(zhí)行其自身仿真程序的相關(guān)操作;然后,VC單機(jī)仿真程序模塊通過(guò)Socket連接將結(jié)果返回到服務(wù)綁定模塊;最后,服務(wù)綁定模塊將返回得數(shù)據(jù)結(jié)果封裝成SDO數(shù)據(jù)對(duì)象,并返回給服務(wù)調(diào)用者;服務(wù)調(diào)用模塊則采用COM組件的實(shí)現(xiàn)方式,包括服務(wù)引用子模塊和數(shù)據(jù)轉(zhuǎn)換子模塊,服務(wù)引用子模塊采用CLR托管程序開(kāi)發(fā),并以DLL形式生成;VC單機(jī)仿真程序模塊通過(guò)COM組件接口調(diào)用服務(wù)引用子模塊,實(shí)現(xiàn)仿真服務(wù)的引用,并得到SDO數(shù)據(jù);數(shù)據(jù)轉(zhuǎn)換子模塊解析SDO數(shù)據(jù)并進(jìn)行重新組合,使數(shù)據(jù)存儲(chǔ)格式與VC單機(jī)仿真程序模塊中的一致;其中,COM代表組件對(duì)象模型,CLR代表公共語(yǔ)言運(yùn)行時(shí),DLL代表動(dòng)態(tài)鏈接庫(kù)。4.根據(jù)權(quán)利要求1所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,所述的交互智能體采用SCAJava構(gòu)件實(shí)現(xiàn),提供的三個(gè)服務(wù)具體為仿真啟動(dòng)服務(wù)的輸入?yún)?shù)是仿真客戶端發(fā)送的仿真請(qǐng)求SDO數(shù)據(jù),仿真啟動(dòng)服務(wù)通知數(shù)據(jù)服務(wù)中心生成對(duì)應(yīng)路網(wǎng)的數(shù)據(jù),并根據(jù)區(qū)域個(gè)數(shù)創(chuàng)建若干線程用于啟動(dòng)區(qū)域仿真模塊;仿真數(shù)據(jù)獲取服務(wù)的返回參數(shù)是SDO數(shù)據(jù),包含當(dāng)前仿真時(shí)刻車(chē)輛與信號(hào)機(jī)的狀態(tài);仿真結(jié)果上傳服務(wù)的輸入是仿真過(guò)程中產(chǎn)生的實(shí)時(shí)數(shù)據(jù)與仿真結(jié)束后生成的統(tǒng)計(jì)數(shù)據(jù)。5.根據(jù)權(quán)利要求1所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,所述的仿真結(jié)果處理智能體采用SCAJava構(gòu)件實(shí)現(xiàn),提供的兩個(gè)服務(wù)具體為實(shí)時(shí)結(jié)果上傳服務(wù)的輸入?yún)?shù)為仿真實(shí)時(shí)數(shù)據(jù),包括公交車(chē)輛經(jīng)緯度與信號(hào)燈狀態(tài)信息;統(tǒng)計(jì)結(jié)果生成服務(wù)的輸入?yún)?shù)為各路口歷史狀態(tài),其根據(jù)歷史狀態(tài)計(jì)算區(qū)域信號(hào)控制整體指標(biāo),包括各路口的公交車(chē)平均延誤時(shí)間,各條公交線路的平均旅行時(shí)間。6.根據(jù)權(quán)利要求1所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái),其特征在于,所述的協(xié)調(diào)智能體采用SCAJava構(gòu)件實(shí)現(xiàn),其提供的三個(gè)服務(wù)具體為協(xié)調(diào)初始化服務(wù)的輸入?yún)?shù)是參與仿真的區(qū)域仿真模塊的編號(hào);協(xié)調(diào)判定服務(wù)的輸入?yún)?shù)是包括公交車(chē)延誤與排隊(duì)長(zhǎng)度在內(nèi)的路口狀態(tài)信息,返回值是協(xié)調(diào)方案決策;信號(hào)調(diào)整服務(wù)的輸入?yún)?shù)是協(xié)調(diào)方案與協(xié)調(diào)區(qū)域當(dāng)前信號(hào)狀態(tài),返回值是調(diào)整后的信號(hào)參數(shù)。7.應(yīng)用權(quán)利要求1所述的基于面向服務(wù)架構(gòu)的分布式交通仿真平臺(tái)的仿真方法,其特征在于,包括如下步驟步驟1、仿真啟動(dòng);仿真客戶端訪問(wèn)交互智能體的仿真啟動(dòng)服務(wù),交互智能體根據(jù)仿真任務(wù)確定仿真區(qū)域以及參與仿真的VC區(qū)域仿真模塊;步驟2、數(shù)據(jù)準(zhǔn)備;交互智能體調(diào)用數(shù)據(jù)服務(wù)中心的數(shù)據(jù)生成子模塊的服務(wù),數(shù)據(jù)服務(wù)中心從Oracle數(shù)據(jù)中獲取原始的路網(wǎng)數(shù)據(jù),并按區(qū)域?qū)?shù)據(jù)重組并封裝成SDO數(shù)據(jù)對(duì)象,生成區(qū)域仿真路網(wǎng)數(shù)據(jù),數(shù)據(jù)準(zhǔn)備完畢后,交互智能體初始化區(qū)域仿真模塊并同時(shí)等待初始化完成;步驟3、初始化區(qū)域仿真模塊,包括步驟3.1與步驟3.2,這兩個(gè)步驟都是多任務(wù)并發(fā);步驟3.l,仿真啟動(dòng)服務(wù)根據(jù)參與仿真的VC區(qū)域仿真模塊的數(shù)量開(kāi)辟多線程,在多線程中調(diào)用區(qū)域仿真初始化服務(wù);步驟3.2,仿真啟動(dòng)服務(wù)在主線程中通過(guò)標(biāo)志位等待步驟3.1中的仿真初始化完成;步驟4、獲取區(qū)域仿真路網(wǎng)數(shù)據(jù);各VC區(qū)域仿真模塊通過(guò)調(diào)用路網(wǎng)生成智能體的路網(wǎng)生成服務(wù),獲取在步驟2生成的區(qū)域仿真路網(wǎng)數(shù)據(jù);步驟5、區(qū)域協(xié)調(diào)仿真啟動(dòng),具體為步驟5.1,當(dāng)所有的VC區(qū)域仿真模塊初始化結(jié)束后,仿真啟動(dòng)服務(wù)開(kāi)始調(diào)用協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù),此時(shí)仿真啟動(dòng)服務(wù)的生命周期結(jié)束;步驟5.2,仿真客戶端開(kāi)始循環(huán)調(diào)用交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲取公交車(chē)輛當(dāng)前時(shí)刻坐標(biāo),干線、路口交通流情況以及各信號(hào)當(dāng)前相位,協(xié)調(diào)智能體的協(xié)調(diào)初始化服務(wù)首先開(kāi)辟多個(gè)線程,并循環(huán)執(zhí)行線程,調(diào)用各VC區(qū)域仿真模塊的周期仿真服務(wù);步驟6、區(qū)域協(xié)調(diào)控制;協(xié)調(diào)智能體在每一個(gè)仿真周期中首先根據(jù)上一周期仿真結(jié)果判斷是否需要區(qū)域協(xié)調(diào),若當(dāng)前仿真周期無(wú)需進(jìn)行區(qū)域間協(xié)調(diào),則執(zhí)行步驟7,若當(dāng)前仿真周期需要進(jìn)行區(qū)域間協(xié)調(diào),則轉(zhuǎn)到步驟10;步驟7、周期性區(qū)域協(xié)調(diào)仿真;協(xié)調(diào)智能體調(diào)用區(qū)域仿真模塊的周期仿真服務(wù),實(shí)現(xiàn)給定周期內(nèi)的區(qū)域交通仿真,根據(jù)子區(qū)域所處的位置進(jìn)行邊界信息的更新,包括社會(huì)車(chē)輛交通流信息與公交車(chē)位置信息,然后執(zhí)行步驟8;步驟8、生成實(shí)時(shí)交通仿真數(shù)據(jù);各vc區(qū)域仿真模塊調(diào)用仿真結(jié)果處理智能體的實(shí)時(shí)結(jié)果上傳服務(wù),向仿真結(jié)果處理智能體更新本周期的仿真實(shí)時(shí)信息,包括公交車(chē)輛經(jīng)緯度,行駛方向,信號(hào)狀態(tài);步驟9、仿真狀態(tài)判定與數(shù)據(jù)上載,包括步驟9.1與步驟9.2;步驟9.l,本周期的仿真實(shí)時(shí)信息更新后,仿真結(jié)果處理智能體通過(guò)交互智能體的仿真結(jié)果上傳服務(wù),上傳實(shí)時(shí)仿真結(jié)果給交互智能體,仿真客戶端能夠通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù),獲得實(shí)時(shí)仿真結(jié)果并顯示;步驟9.2,協(xié)調(diào)智能體根據(jù)仿真時(shí)間判斷整個(gè)仿真過(guò)程是否結(jié)束,若仿真沒(méi)有結(jié)束則循環(huán)進(jìn)行下一周期的仿真,執(zhí)行步驟6;否則結(jié)束區(qū)域仿真,執(zhí)行步驟12;步驟10、協(xié)調(diào)控制決策;協(xié)調(diào)智能體調(diào)用信號(hào)調(diào)整服務(wù)進(jìn)行決策;步驟11、更新信號(hào)機(jī)參數(shù);根據(jù)步驟10信號(hào)調(diào)整服務(wù)的結(jié)果在下一個(gè)仿真周期中更新信號(hào)機(jī)的參數(shù),然后執(zhí)行步驟7;步驟12、仿真統(tǒng)計(jì)數(shù)據(jù)生成;交互智能體調(diào)用仿真結(jié)果處理智能體的統(tǒng)計(jì)結(jié)果生成服務(wù),將生成的統(tǒng)計(jì)數(shù)據(jù)上傳到交互智能體,然后執(zhí)行步驟13;步驟13、統(tǒng)計(jì)數(shù)據(jù)顯示與結(jié)束;仿真客戶端通過(guò)交互智能體的仿真數(shù)據(jù)獲取服務(wù)獲得最終的統(tǒng)計(jì)數(shù)據(jù)結(jié)果并顯示,整個(gè)分布式仿真任務(wù)結(jié)束,并等待下一個(gè)仿真任務(wù)的到來(lái)。全文摘要本發(fā)明公開(kāi)了一種基于面向服務(wù)架構(gòu)(Service-OrientedArchitecture,SOA)的分布式交通仿真平臺(tái)及其仿真方法,主要包括交互智能體、仿真結(jié)果處理智能體、協(xié)調(diào)智能體、路網(wǎng)生成智能體、區(qū)域仿真模塊及數(shù)據(jù)服務(wù)中心等幾個(gè)模塊,通過(guò)不同智能體的相互協(xié)調(diào)完成基于大規(guī)模真實(shí)路網(wǎng)的仿真。本發(fā)明模塊采用服務(wù)組件架構(gòu)SCA、VisualC++和VisualBasic實(shí)現(xiàn)。此外,本發(fā)明設(shè)計(jì)了基于SCA的SOA接入模塊,用于集成已有的單機(jī)仿真程序,滿足了分布式仿真平臺(tái)對(duì)異構(gòu)性的要求,提高了系統(tǒng)的靈活性,業(yè)務(wù)模型的可重用性與服務(wù)的可互操作性,并使得系統(tǒng)更加易于集成。文檔編號(hào)G08G1/00GK101710361SQ20091026038公開(kāi)日2010年5月19日申請(qǐng)日期2009年12月17日優(yōu)先權(quán)日2009年11月13日發(fā)明者劉倩,姜秉楠,張海,郭欣蕾申請(qǐng)人:北京航空航天大學(xué)