徐 飛,楊恩寧,姚紅革
(1.西安工業(yè)大學(xué) 計算機科學(xué)與工程學(xué)院,陜西 西安 710032;2.西安交通大學(xué) 城市學(xué)院,陜西 西安 710018)
多傳感器數(shù)據(jù)融合(Multi-sensor Data Fusion)是指對來自多個傳感器的數(shù)據(jù)進(jìn)行多級別多方面、多層次的處理,從而產(chǎn)生任何單一傳感器所無法獲得的有意義的信息。多傳感器數(shù)據(jù)融合是一個多級、多層面的分布式數(shù)據(jù)處理過程,在不同的計算節(jié)點上需要完成數(shù)據(jù)的配準(zhǔn)、關(guān)聯(lián)、相關(guān)、估計和融合過程中。利用數(shù)學(xué)建模技術(shù)和分布式仿真技術(shù)構(gòu)建一個通用的數(shù)據(jù)融合仿真平臺,在平臺上結(jié)合工程背景開展數(shù)據(jù)融合仿真試驗,評估各種模型、算法的性能及在實際系統(tǒng)中的應(yīng)用情況,對試驗數(shù)據(jù)進(jìn)行定量分析,驗證融合結(jié)構(gòu)中各個層次數(shù)據(jù)處理的合理性和有效性[1]。
在分布式環(huán)境下進(jìn)行數(shù)據(jù)融合過程仿真需要將多級融合算法分解,部署在多臺計算節(jié)點上進(jìn)行仿真。分布式仿真系統(tǒng)在集成現(xiàn)有模型的基礎(chǔ)上還需要新模型的開發(fā),因此對仿真系統(tǒng)具有異構(gòu)性與可重用性有較高的要求?,F(xiàn)有的分布式仿真系統(tǒng)大多遵循HLA規(guī)范。在重用性上受限于特定的仿真支撐平臺,且與其他支持平臺的技術(shù)和標(biāo)準(zhǔn)脫節(jié)[2]。在通用編程平臺結(jié)合的上只能選擇JavaEE或微軟.NET平臺組件實現(xiàn)方式[3],異構(gòu)性較差。設(shè)計一種跨語言、跨平臺的基于服務(wù)的組件框架,同時滿足分布式數(shù)據(jù)融合系統(tǒng)異構(gòu)性與算法模型可重用性就顯得非常有必要了。
面向服務(wù)的體系結(jié)構(gòu)(service-oriented architecture,SOA)是一個組件模型,它將應(yīng)用程序的不同功能單元通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互[4]。面向?qū)ο蟮哪P褪蔷o耦合的,面向服務(wù)的體系結(jié)構(gòu)是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P汀;赟OA的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計來構(gòu)建單個服務(wù),但是其整體設(shè)計卻是面向服務(wù)的。由于它考慮到了系統(tǒng)內(nèi)的對象,所以雖然 SOA是基于對象的,但是作為一個整體,它卻不是面向?qū)ο蟮?。不同之處在于接口本身?/p>
服務(wù)組件框架(service component architecture,簡稱SCA)是一套基于SOA去構(gòu)建企業(yè)應(yīng)用的編程模型,它的基礎(chǔ)思想就將業(yè)務(wù)功能構(gòu)造成一系列的服務(wù),并且能夠很好地將這些服務(wù)組合起來,達(dá)到解決業(yè)務(wù)需求的目的。在構(gòu)建這些應(yīng)用時所用到的服務(wù),不僅包含新建服務(wù),而且可以包括已有的業(yè)務(wù)應(yīng)用中的業(yè)務(wù)功能,且SCA提供了一套針對服務(wù)組合和服務(wù)創(chuàng)建的模型。主要包括如下元素:
1)Module
Module是SCA構(gòu)架中重要的組成單元,也是粒度較粗的一個單元。Module具有了屬性,這是為了能夠更加方便地注入給 Component屬性值而做的調(diào)整。Module是通過一個XML格式文件進(jìn)行描述的。
2)ComponentType
ComponentType是一個描述 SCA中服務(wù)的元素,它定義了服務(wù)以及服務(wù)的接口,以及服務(wù)對應(yīng)的屬性和服務(wù)引用。ComponentType是通過一個后綴名為.componentType XML文檔來描述的。
3)Component
ComponentType只是描述性地說明一下服務(wù)的接口以及屬性,引用,但是具體該服務(wù)對應(yīng)的實現(xiàn)以及屬性的值和引用對應(yīng)的服務(wù)是沒有給出的。而Component描述了服務(wù)對應(yīng)的實現(xiàn),服務(wù)實現(xiàn)是通過implement元素指定的。Component也描述ComponentType中定義的屬性以及引用所對應(yīng)的值。Component的XML描述是在Module的描述文件中的
4)EntryPoint
Module在SCA中是一個粒度較為粗的單元,Module和Module之間的交互是通過定義在 Module內(nèi)部的 Entry Point和 External Service進(jìn)行的,也就是說 Entry Point是一個Module對外提供的接口,而 External Service是一個 Module對外訪問的出口。
分布式數(shù)據(jù)融合仿真平臺的采用了非集中式的融合結(jié)構(gòu),滿足多個機動目標(biāo)跟蹤精度高、數(shù)據(jù)傳輸量大、雷達(dá)校準(zhǔn)要求高等特點。雷達(dá)信息的二次和三次處理同在一個計算節(jié)點內(nèi)進(jìn)行,對各個雷達(dá)站的目標(biāo)航跡點跡進(jìn)行綜合處理,輸出各個目標(biāo)的多雷達(dá)航跡和融合判決結(jié)果。本文提出分布式仿真系統(tǒng)采用模型-視圖-控制器(Model-View-Controller,MVC)模型。MVC選擇Struts框架與SCA規(guī)范業(yè)務(wù)模型整合的開發(fā)模式。視圖(View)部分主要負(fù)責(zé)界面顯示,接受系統(tǒng)用戶的請求,并嵌入電子地理信息系統(tǒng),包括JSP網(wǎng)頁客戶端和Java應(yīng)用程序客戶端。控制器(Controller)是運行構(gòu)件的容器服務(wù),完成構(gòu)件生命周期管理、構(gòu)件調(diào)度工作,是仿真系統(tǒng)的“大腦”,并根據(jù)用戶的請求調(diào)用不同的模型實例。模型(Model)主要完成航跡數(shù)據(jù)和融合算法,是仿真系統(tǒng)分布式服務(wù)的具體實現(xiàn)。Struts框架提供了可以擴展進(jìn)行請求調(diào)度的模型實現(xiàn),使得對象的復(fù)用更加地有效[4]。Struts整合SCA分布式仿真系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 基于Struts和SCA的分布式仿真系統(tǒng)結(jié)構(gòu)Fig.1 Structure of distributed simulation system based on Struts and SCA
仿真模塊是仿真業(yè)務(wù)功能的基本元素,也是系統(tǒng)實現(xiàn)的關(guān)鍵。SCA模塊由若干SCA抽象構(gòu)件構(gòu)成,如圖2所示。
SCA模塊按照一定的邏輯劃分對SCA構(gòu)件進(jìn)行分組和裝配。一個模塊同樣包含若干的組件、服務(wù)、引用和屬性,并且對應(yīng)一個后綴名為composite的XML配置文件。SCA組件本身有多種實現(xiàn)方式,本文主要研究SCA組件的Java實現(xiàn)。
算法是數(shù)據(jù)融合中心的核心,其中IFusion為算法的輸入輸出接口,用來處理融合數(shù)據(jù)的輸入輸出;第二個接口IAlgoRes為算法資源接口,用來技術(shù)算法所需要的資源。
圖2 抽象構(gòu)件設(shè)計Fig.2 Abstract component design
數(shù)據(jù)融合中心采用鏈表來組織數(shù)據(jù),將數(shù)據(jù)分為兩類,一類是測試平臺用于實時顯示的數(shù)據(jù),包括傳感器數(shù)據(jù)鏈表、目標(biāo)航跡鏈表;另一類時組件內(nèi)部融合算法輸入輸出的數(shù)據(jù),包括輸入傳感器探測信息鏈表、輸出融合航跡點鏈表。定義的主要的類有:
傳感器屬性類,代表傳感器的屬性信息:
目標(biāo)航跡類,代表融合得到的目標(biāo)航跡:
目標(biāo)信息類,代表傳感器探測到的目標(biāo)信息:
感器探測信息類,代表單個傳感器一個融合周期內(nèi)所探測的目標(biāo)信息:
航跡點類,代表一次融合周期內(nèi)輸出的單個目標(biāo)航跡點:
構(gòu)建SCA模塊需要編寫配置文件。多個SCA組件通過連線(wire)構(gòu)成SCA模塊[5-7],組件的服務(wù)和引用通過提升(promote)成為模塊的服務(wù)與引用。一個完整的SCA模塊結(jié)構(gòu)所示。SCA模塊按照一定的邏輯劃分對SCA組件進(jìn)行分組和裝配。一個模塊同樣包含若干的組件、服務(wù)、引用和屬性,并且對應(yīng)一個后綴名為composite的XML配置文件。
一個SCA組件可對外提供一個或多個服務(wù),每個服務(wù)對應(yīng)一個接口類,服務(wù)對應(yīng)的方法在服務(wù)接口類中體現(xiàn)為一系列的抽象方法。若服務(wù)被定義為遠(yuǎn)程調(diào)用,需要用@Remo table行注釋。
SCA應(yīng)用分布性表現(xiàn)為一個SCA應(yīng)用對應(yīng)一個domain(域),domain包含一個或多個 composite(構(gòu)件),一個composite包含一個多個業(yè)務(wù)component(組件),所有的component分布在不同的網(wǎng)絡(luò)node(結(jié)點)上。按照上節(jié)給出的業(yè)務(wù)構(gòu)件定義及抽象構(gòu)件的分布式實現(xiàn)如圖3所示。
在開發(fā)分布式SCA應(yīng)用時不需要考慮應(yīng)用的分布性,分布性的管理是由domain manager通過3個配置文件來完成的。這3個配置文件所在的位置是domain manager運行的當(dāng)前目錄,分別是workspace.xml、domain.composite和 cloud.Composite。
3個部署節(jié)點分別用Node1.composite、Node2.composite和Node3.Composite進(jìn)行描述。在每一個node配置文件中,包含的主要內(nèi)容有:該node將要運行的contribution(包含對應(yīng)的composite);該node所在計算機的網(wǎng)絡(luò)環(huán)境,包括IP和port;遠(yuǎn)程調(diào)用所使用的綁定及其協(xié)議。
抽象構(gòu)件的名稱、構(gòu)成組件的名稱、組件之間相互引用的關(guān)系、傳輸協(xié)議的服務(wù)綁定等信息都反映在配置文件中。為了遵循SCA協(xié)議,在其組件配置文件中,抽象構(gòu)件、組件與服務(wù)的相關(guān)信息分別在
圖3 數(shù)據(jù)融合業(yè)務(wù)構(gòu)件的分布式模型Fig.3 Distributed model of data fusion business component
代碼片段為
SCA框架的部署主要是將多個contribution及其composite整合到同一個domain中(包括分配contribution所在node的IP地址和端口號),部署的主要工作是在domain manager的當(dāng)前運行目錄下配置或生成3個文件,在本地服務(wù)器上設(shè)置相應(yīng)的引用模塊,并將SCA模塊Web Service綁定與引用。其基本過程如下圖所示:編寫WSDL(web服務(wù)描述語言)文件。主要包括數(shù)據(jù)類型定義、消息定義、端口類型定義、綁定定義、服務(wù)訪問點定義和服務(wù)定義。
1)配置SCA模塊.主要是增加對Web Service的綁定,在元素
2)編寫服務(wù)啟動程序。啟動程序主要通過SCADomain的靜態(tài)方法new Instance(String composite)加載配置文件與WSDL文件,用于啟動服務(wù)。
3)最后,將 discontribution貢獻(xiàn)包放在Node1上運行;Node1的JVM位于192.168.1.11的計算機上,提供服務(wù)的port為8081;服務(wù)的綁定采用sca綁定,綁定的協(xié)議由SCA框架自動選擇。“xmlns:c”是指composite的namespace,需要與前面的保持一致。
圖4 視頻信息處理器模擬器圖Fig.4 Video processor simulator
為證明分布式仿真系統(tǒng)的可行性,構(gòu)建3個仿真節(jié)點和1個SCA服務(wù)節(jié)點。3個仿真節(jié)點由一個局域網(wǎng)中指定3臺PC承擔(dān)本任務(wù)。一臺PC是空情生成模擬器,一臺模擬視頻信息處理和顯示,一臺模擬空情數(shù)據(jù)處理。仿真計算機的配置為AMD 3200+CPU,1 GB內(nèi)存,100 Mbps以太網(wǎng)卡。1個服務(wù)節(jié)點作為Web服務(wù)器和構(gòu)件管理協(xié)調(diào)器。仿真時間設(shè)定為 3 60 s。
數(shù)據(jù)融合仿真系統(tǒng)要求實時處理顯示火炮空情信息,在全系統(tǒng)的處理時間協(xié)調(diào)上要統(tǒng)一處理各模塊的處理時間與全系統(tǒng)時間安排,如圖4所示。從仿真試驗結(jié)果可以看出航跡關(guān)聯(lián)算法在目標(biāo)編隊交叉或近距飛行時,有較高的關(guān)聯(lián)正確率,從而解決了分布式多傳感器多目標(biāo)跟蹤的有效性問題,并且區(qū)域之間具有較好的協(xié)調(diào)效果,如圖5所示。
圖5 空情數(shù)據(jù)處理模擬器Fig.5 Air situation data processing simulator
文中構(gòu)建了基于SCA規(guī)范的分布式數(shù)據(jù)融合仿真系統(tǒng),體現(xiàn)出了SOA系統(tǒng)松散耦合、粗粒度和傳輸協(xié)議透明這3大要素。按照面向?qū)ο蠛兔嫦蚍?wù)的原則進(jìn)行抽象構(gòu)件設(shè)計和業(yè)務(wù)構(gòu)件設(shè)計,并使用Java語言進(jìn)行具體編程實現(xiàn)。SCA組件的實現(xiàn)語言無關(guān)性及傳輸協(xié)議無關(guān)性滿足了系統(tǒng)對異構(gòu)性的需求,大大降低了異構(gòu)系統(tǒng)跨平臺集成的難度。分布式仿真框架通過Web Service與SCA的整合開發(fā)。構(gòu)件化的開發(fā)模式有利于不同開發(fā)語言、不同計算平臺的業(yè)務(wù)組件的升級和維護(hù)。仿真系統(tǒng)的構(gòu)建具有較好的通用性、可擴充性、開放性和實時性等特點,為評價數(shù)據(jù)融合算法及系統(tǒng)的戰(zhàn)術(shù)性能提供了可靠的平臺依托。
[1]徐飛,鐘連炯.高炮空情信息處理仿真[J].系統(tǒng)仿真學(xué)報,2008,20(23):6442-6445.
XU Fei,ZHONG Lian-jiong.Air intelligence information simulation of artillery[J].Journal of System Simulation,2008,20(23):6442-6445.
[2]向偉,蒲國林,楊清平.面向服務(wù)架構(gòu)的異構(gòu)系統(tǒng)集成模型[J].計算機系統(tǒng)應(yīng)用,2011,20(1):22-26.
XIANG Wei,PU Guo-Lin,YANG Qing-ping.Heterogeneous system integration based on service-oriented architecture[J].Computer Systems&Applications,2011,20(1):22-26.
[3]鄧桂英.基于Web Services的第三方物流信息系統(tǒng)解決方案[J].上海理工大學(xué)學(xué)報,2006,28(3):290-292,298.
DENG Gui-ying.Solution ofthe third-party logistics application based on web services[J].Journal of University of Shanghai for Science and Technology,2006,28 (3):290-292,298.
[4]包潔嬌,范菁,熊麗榮.基于EJB的Web Service部署模型的研究[J].計算機與數(shù)字工程,2006,34(3):20-24.
BAO Jie-jiao,F(xiàn)AN Jin,XONG Li-rong.Research on deployment model of EJB-based web service[J].Computer&Digital Engineering,2006,34(3):20-24.
[5]關(guān)明,吉宏偉,楊雪君.基于SOA的數(shù)字城市管理業(yè)務(wù)系統(tǒng)的研究與設(shè)計[J].廣西大學(xué)學(xué)報:自然科學(xué)版,2009,34(5):690-695.
GUAN Ming,JI Hong-wei,YANG Xue-jun.Research and design of digital city management business system based on SOA[J].JournalofGuangxiUniversity:NaturalScienceEdition,2009,34(5):690-695.
[6]Chappell.IntroducingSCA[EB/OL].[2010-05-16].http://www.davidchappell.com/articles/Introducing_SCA.pdf.
[7]LAWSONS.Tuscany SCA in Action[M].USA:Manning Publication Co.,2011.