徐 飛,楊恩寧,姚紅革
(1.西安工業(yè)大學 計算機科學與工程學院,陜西 西安 710032;2.西安交通大學 城市學院,陜西 西安 710018)
多傳感器數(shù)據(jù)融合(Multi-sensor Data Fusion)是指對來自多個傳感器的數(shù)據(jù)進行多級別多方面、多層次的處理,從而產(chǎn)生任何單一傳感器所無法獲得的有意義的信息。多傳感器數(shù)據(jù)融合是一個多級、多層面的分布式數(shù)據(jù)處理過程,在不同的計算節(jié)點上需要完成數(shù)據(jù)的配準、關(guān)聯(lián)、相關(guān)、估計和融合過程中。利用數(shù)學建模技術(shù)和分布式仿真技術(shù)構(gòu)建一個通用的數(shù)據(jù)融合仿真平臺,在平臺上結(jié)合工程背景開展數(shù)據(jù)融合仿真試驗,評估各種模型、算法的性能及在實際系統(tǒng)中的應用情況,對試驗數(shù)據(jù)進行定量分析,驗證融合結(jié)構(gòu)中各個層次數(shù)據(jù)處理的合理性和有效性[1]。
在分布式環(huán)境下進行數(shù)據(jù)融合過程仿真需要將多級融合算法分解,部署在多臺計算節(jié)點上進行仿真。分布式仿真系統(tǒng)在集成現(xiàn)有模型的基礎(chǔ)上還需要新模型的開發(fā),因此對仿真系統(tǒng)具有異構(gòu)性與可重用性有較高的要求?,F(xiàn)有的分布式仿真系統(tǒng)大多遵循HLA規(guī)范。在重用性上受限于特定的仿真支撐平臺,且與其他支持平臺的技術(shù)和標準脫節(jié)[2]。在通用編程平臺結(jié)合的上只能選擇JavaEE或微軟.NET平臺組件實現(xiàn)方式[3],異構(gòu)性較差。設(shè)計一種跨語言、跨平臺的基于服務的組件框架,同時滿足分布式數(shù)據(jù)融合系統(tǒng)異構(gòu)性與算法模型可重用性就顯得非常有必要了。
面向服務的體系結(jié)構(gòu)(service-oriented architecture,SOA)是一個組件模型,它將應用程序的不同功能單元通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互[4]。面向?qū)ο蟮哪P褪蔷o耦合的,面向服務的體系結(jié)構(gòu)是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P?。基于SOA的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計來構(gòu)建單個服務,但是其整體設(shè)計卻是面向服務的。由于它考慮到了系統(tǒng)內(nèi)的對象,所以雖然 SOA是基于對象的,但是作為一個整體,它卻不是面向?qū)ο蟮?。不同之處在于接口本身?/p>
服務組件框架(service component architecture,簡稱SCA)是一套基于SOA去構(gòu)建企業(yè)應用的編程模型,它的基礎(chǔ)思想就將業(yè)務功能構(gòu)造成一系列的服務,并且能夠很好地將這些服務組合起來,達到解決業(yè)務需求的目的。在構(gòu)建這些應用時所用到的服務,不僅包含新建服務,而且可以包括已有的業(yè)務應用中的業(yè)務功能,且SCA提供了一套針對服務組合和服務創(chuàng)建的模型。主要包括如下元素:
1)Module
Module是SCA構(gòu)架中重要的組成單元,也是粒度較粗的一個單元。Module具有了屬性,這是為了能夠更加方便地注入給 Component屬性值而做的調(diào)整。Module是通過一個XML格式文件進行描述的。
2)ComponentType
ComponentType是一個描述 SCA中服務的元素,它定義了服務以及服務的接口,以及服務對應的屬性和服務引用。ComponentType是通過一個后綴名為.componentType XML文檔來描述的。
3)Component
ComponentType只是描述性地說明一下服務的接口以及屬性,引用,但是具體該服務對應的實現(xiàn)以及屬性的值和引用對應的服務是沒有給出的。而Component描述了服務對應的實現(xiàn),服務實現(xiàn)是通過implement元素指定的。Component也描述ComponentType中定義的屬性以及引用所對應的值。Component的XML描述是在Module的描述文件中的
4)EntryPoint
Module在SCA中是一個粒度較為粗的單元,Module和Module之間的交互是通過定義在 Module內(nèi)部的 Entry Point和 External Service進行的,也就是說 Entry Point是一個Module對外提供的接口,而 External Service是一個 Module對外訪問的出口。
分布式數(shù)據(jù)融合仿真平臺的采用了非集中式的融合結(jié)構(gòu),滿足多個機動目標跟蹤精度高、數(shù)據(jù)傳輸量大、雷達校準要求高等特點。雷達信息的二次和三次處理同在一個計算節(jié)點內(nèi)進行,對各個雷達站的目標航跡點跡進行綜合處理,輸出各個目標的多雷達航跡和融合判決結(jié)果。本文提出分布式仿真系統(tǒng)采用模型-視圖-控制器(Model-View-Controller,MVC)模型。MVC選擇Struts框架與SCA規(guī)范業(yè)務模型整合的開發(fā)模式。視圖(View)部分主要負責界面顯示,接受系統(tǒng)用戶的請求,并嵌入電子地理信息系統(tǒng),包括JSP網(wǎng)頁客戶端和Java應用程序客戶端??刂破鳎–ontroller)是運行構(gòu)件的容器服務,完成構(gòu)件生命周期管理、構(gòu)件調(diào)度工作,是仿真系統(tǒng)的“大腦”,并根據(jù)用戶的請求調(diào)用不同的模型實例。模型(Model)主要完成航跡數(shù)據(jù)和融合算法,是仿真系統(tǒng)分布式服務的具體實現(xiàn)。Struts框架提供了可以擴展進行請求調(diào)度的模型實現(xiàn),使得對象的復用更加地有效[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è)務功能的基本元素,也是系統(tǒng)實現(xiàn)的關(guān)鍵。SCA模塊由若干SCA抽象構(gòu)件構(gòu)成,如圖2所示。
SCA模塊按照一定的邏輯劃分對SCA構(gòu)件進行分組和裝配。一個模塊同樣包含若干的組件、服務、引用和屬性,并且對應一個后綴名為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ù)鏈表、目標航跡鏈表;另一類時組件內(nèi)部融合算法輸入輸出的數(shù)據(jù),包括輸入傳感器探測信息鏈表、輸出融合航跡點鏈表。定義的主要的類有:
傳感器屬性類,代表傳感器的屬性信息:
目標航跡類,代表融合得到的目標航跡:
目標信息類,代表傳感器探測到的目標信息:
感器探測信息類,代表單個傳感器一個融合周期內(nèi)所探測的目標信息:
航跡點類,代表一次融合周期內(nèi)輸出的單個目標航跡點:
構(gòu)建SCA模塊需要編寫配置文件。多個SCA組件通過連線(wire)構(gòu)成SCA模塊[5-7],組件的服務和引用通過提升(promote)成為模塊的服務與引用。一個完整的SCA模塊結(jié)構(gòu)所示。SCA模塊按照一定的邏輯劃分對SCA組件進行分組和裝配。一個模塊同樣包含若干的組件、服務、引用和屬性,并且對應一個后綴名為composite的XML配置文件。
一個SCA組件可對外提供一個或多個服務,每個服務對應一個接口類,服務對應的方法在服務接口類中體現(xiàn)為一系列的抽象方法。若服務被定義為遠程調(diào)用,需要用@Remo table行注釋。
SCA應用分布性表現(xiàn)為一個SCA應用對應一個domain(域),domain包含一個或多個 composite(構(gòu)件),一個composite包含一個多個業(yè)務component(組件),所有的component分布在不同的網(wǎng)絡node(結(jié)點)上。按照上節(jié)給出的業(yè)務構(gòu)件定義及抽象構(gòu)件的分布式實現(xiàn)如圖3所示。
在開發(fā)分布式SCA應用時不需要考慮應用的分布性,分布性的管理是由domain manager通過3個配置文件來完成的。這3個配置文件所在的位置是domain manager運行的當前目錄,分別是workspace.xml、domain.composite和 cloud.Composite。
3個部署節(jié)點分別用Node1.composite、Node2.composite和Node3.Composite進行描述。在每一個node配置文件中,包含的主要內(nèi)容有:該node將要運行的contribution(包含對應的composite);該node所在計算機的網(wǎng)絡環(huán)境,包括IP和port;遠程調(diào)用所使用的綁定及其協(xié)議。
抽象構(gòu)件的名稱、構(gòu)成組件的名稱、組件之間相互引用的關(guān)系、傳輸協(xié)議的服務綁定等信息都反映在配置文件中。為了遵循SCA協(xié)議,在其組件配置文件中,抽象構(gòu)件、組件與服務的相關(guān)信息分別在
圖3 數(shù)據(jù)融合業(yè)務構(gòu)件的分布式模型Fig.3 Distributed model of data fusion business component
代碼片段為
SCA框架的部署主要是將多個contribution及其composite整合到同一個domain中(包括分配contribution所在node的IP地址和端口號),部署的主要工作是在domain manager的當前運行目錄下配置或生成3個文件,在本地服務器上設(shè)置相應的引用模塊,并將SCA模塊Web Service綁定與引用。其基本過程如下圖所示:編寫WSDL(web服務描述語言)文件。主要包括數(shù)據(jù)類型定義、消息定義、端口類型定義、綁定定義、服務訪問點定義和服務定義。
1)配置SCA模塊.主要是增加對Web Service的綁定,在元素
2)編寫服務啟動程序。啟動程序主要通過SCADomain的靜態(tài)方法new Instance(String composite)加載配置文件與WSDL文件,用于啟動服務。
3)最后,將 discontribution貢獻包放在Node1上運行;Node1的JVM位于192.168.1.11的計算機上,提供服務的port為8081;服務的綁定采用sca綁定,綁定的協(xié)議由SCA框架自動選擇?!皒mlns:c”是指composite的namespace,需要與前面的保持一致。
圖4 視頻信息處理器模擬器圖Fig.4 Video processor simulator
為證明分布式仿真系統(tǒng)的可行性,構(gòu)建3個仿真節(jié)點和1個SCA服務節(jié)點。3個仿真節(jié)點由一個局域網(wǎng)中指定3臺PC承擔本任務。一臺PC是空情生成模擬器,一臺模擬視頻信息處理和顯示,一臺模擬空情數(shù)據(jù)處理。仿真計算機的配置為AMD 3200+CPU,1 GB內(nèi)存,100 Mbps以太網(wǎng)卡。1個服務節(jié)點作為Web服務器和構(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)算法在目標編隊交叉或近距飛行時,有較高的關(guān)聯(lián)正確率,從而解決了分布式多傳感器多目標跟蹤的有效性問題,并且區(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ū)ο蠛兔嫦蚍盏脑瓌t進行抽象構(gòu)件設(shè)計和業(yè)務構(gòu)件設(shè)計,并使用Java語言進行具體編程實現(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è)務組件的升級和維護。仿真系統(tǒng)的構(gòu)建具有較好的通用性、可擴充性、開放性和實時性等特點,為評價數(shù)據(jù)融合算法及系統(tǒng)的戰(zhàn)術(shù)性能提供了可靠的平臺依托。
[1]徐飛,鐘連炯.高炮空情信息處理仿真[J].系統(tǒng)仿真學報,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]向偉,蒲國林,楊清平.面向服務架構(gòu)的異構(gòu)系統(tǒng)集成模型[J].計算機系統(tǒ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].上海理工大學學報,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è)務系統(tǒng)的研究與設(shè)計[J].廣西大學學報:自然科學版,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.