基于服务组件框架的分布式数据融合仿真系统设计

2012-09-19 10:29杨恩宁姚红革
电子设计工程 2012年24期
关键词:配置文件分布式组件

徐 飞,杨恩宁,姚红革

(1.西安工业大学 计算机科学与工程学院,陕西 西安 710032;2.西安交通大学 城市学院,陕西 西安 710018)

多传感器数据融合(Multi-sensor Data Fusion)是指对来自多个传感器的数据进行多级别多方面、多层次的处理,从而产生任何单一传感器所无法获得的有意义的信息。多传感器数据融合是一个多级、多层面的分布式数据处理过程,在不同的计算节点上需要完成数据的配准、关联、相关、估计和融合过程中。利用数学建模技术和分布式仿真技术构建一个通用的数据融合仿真平台,在平台上结合工程背景开展数据融合仿真试验,评估各种模型、算法的性能及在实际系统中的应用情况,对试验数据进行定量分析,验证融合结构中各个层次数据处理的合理性和有效性[1]。

在分布式环境下进行数据融合过程仿真需要将多级融合算法分解,部署在多台计算节点上进行仿真。分布式仿真系统在集成现有模型的基础上还需要新模型的开发,因此对仿真系统具有异构性与可重用性有较高的要求。现有的分布式仿真系统大多遵循HLA规范。在重用性上受限于特定的仿真支撑平台,且与其他支持平台的技术和标准脱节[2]。在通用编程平台结合的上只能选择JavaEE或微软.NET平台组件实现方式[3],异构性较差。设计一种跨语言、跨平台的基于服务的组件框架,同时满足分布式数据融合系统异构性与算法模型可重用性就显得非常有必要了。

1 基于服务的组件框架概述

面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互[4]。面向对象的模型是紧耦合的,面向服务的体系结构是更传统的面向对象的模型的替代模型。基于SOA的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。

服务组件框架(service component architecture,简称SCA)是一套基于SOA去构建企业应用的编程模型,它的基础思想就将业务功能构造成一系列的服务,并且能够很好地将这些服务组合起来,达到解决业务需求的目的。在构建这些应用时所用到的服务,不仅包含新建服务,而且可以包括已有的业务应用中的业务功能,且SCA提供了一套针对服务组合和服务创建的模型。主要包括如下元素:

1)Module

Module是SCA构架中重要的组成单元,也是粒度较粗的一个单元。Module具有了属性,这是为了能够更加方便地注入给 Component属性值而做的调整。Module是通过一个XML格式文件进行描述的。

2)ComponentType

ComponentType是一个描述 SCA中服务的元素,它定义了服务以及服务的接口,以及服务对应的属性和服务引用。ComponentType是通过一个后缀名为.componentType XML文档来描述的。

3)Component

ComponentType只是描述性地说明一下服务的接口以及属性,引用,但是具体该服务对应的实现以及属性的值和引用对应的服务是没有给出的。而Component描述了服务对应的实现,服务实现是通过implement元素指定的。Component也描述ComponentType中定义的属性以及引用所对应的值。Component的XML描述是在Module的描述文件中的

4)EntryPoint

Module在SCA中是一个粒度较为粗的单元,Module和Module之间的交互是通过定义在 Module内部的 Entry Point和 External Service进行的,也就是说 Entry Point是一个Module对外提供的接口,而 External Service是一个 Module对外访问的出口。

2 分布式数据融合仿真系统的构建

2.1 平台框架

分布式数据融合仿真平台的采用了非集中式的融合结构,满足多个机动目标跟踪精度高、数据传输量大、雷达校准要求高等特点。雷达信息的二次和三次处理同在一个计算节点内进行,对各个雷达站的目标航迹点迹进行综合处理,输出各个目标的多雷达航迹和融合判决结果。本文提出分布式仿真系统采用模型-视图-控制器(Model-View-Controller,MVC)模型。MVC选择Struts框架与SCA规范业务模型整合的开发模式。视图(View)部分主要负责界面显示,接受系统用户的请求,并嵌入电子地理信息系统,包括JSP网页客户端和Java应用程序客户端。控制器(Controller)是运行构件的容器服务,完成构件生命周期管理、构件调度工作,是仿真系统的“大脑”,并根据用户的请求调用不同的模型实例。模型(Model)主要完成航迹数据和融合算法,是仿真系统分布式服务的具体实现。Struts框架提供了可以扩展进行请求调度的模型实现,使得对象的复用更加地有效[4]。Struts整合SCA分布式仿真系统结构如图1所示。

图1 基于Struts和SCA的分布式仿真系统结构Fig.1 Structure of distributed simulation system based on Struts and SCA

2.2 抽象构件设计

仿真模块是仿真业务功能的基本元素,也是系统实现的关键。SCA模块由若干SCA抽象构件构成,如图2所示。

SCA模块按照一定的逻辑划分对SCA构件进行分组和装配。一个模块同样包含若干的组件、服务、引用和属性,并且对应一个后缀名为composite的XML配置文件。SCA组件本身有多种实现方式,本文主要研究SCA组件的Java实现。

算法是数据融合中心的核心,其中IFusion为算法的输入输出接口,用来处理融合数据的输入输出;第二个接口IAlgoRes为算法资源接口,用来技术算法所需要的资源。

图2 抽象构件设计Fig.2 Abstract component design

2.3 业务构件数据描述

数据融合中心采用链表来组织数据,将数据分为两类,一类是测试平台用于实时显示的数据,包括传感器数据链表、目标航迹链表;另一类时组件内部融合算法输入输出的数据,包括输入传感器探测信息链表、输出融合航迹点链表。定义的主要的类有:

传感器属性类,代表传感器的属性信息:

目标航迹类,代表融合得到的目标航迹:

目标信息类,代表传感器探测到的目标信息:

感器探测信息类,代表单个传感器一个融合周期内所探测的目标信息:

航迹点类,代表一次融合周期内输出的单个目标航迹点:

2.4 SCA模块的实现

构建SCA模块需要编写配置文件。多个SCA组件通过连线(wire)构成SCA模块[5-7],组件的服务和引用通过提升(promote)成为模块的服务与引用。一个完整的SCA模块结构所示。SCA模块按照一定的逻辑划分对SCA组件进行分组和装配。一个模块同样包含若干的组件、服务、引用和属性,并且对应一个后缀名为composite的XML配置文件。

一个SCA组件可对外提供一个或多个服务,每个服务对应一个接口类,服务对应的方法在服务接口类中体现为一系列的抽象方法。若服务被定义为远程调用,需要用@Remo table行注释。

SCA应用分布性表现为一个SCA应用对应一个domain(域),domain包含一个或多个 composite(构件),一个composite包含一个多个业务component(组件),所有的component分布在不同的网络node(结点)上。按照上节给出的业务构件定义及抽象构件的分布式实现如图3所示。

在开发分布式SCA应用时不需要考虑应用的分布性,分布性的管理是由domain manager通过3个配置文件来完成的。这3个配置文件所在的位置是domain manager运行的当前目录,分别是workspace.xml、domain.composite和 cloud.Composite。

3个部署节点分别用Node1.composite、Node2.composite和Node3.Composite进行描述。在每一个node配置文件中,包含的主要内容有:该node将要运行的contribution(包含对应的composite);该node所在计算机的网络环境,包括IP和port;远程调用所使用的绑定及其协议。

抽象构件的名称、构成组件的名称、组件之间相互引用的关系、传输协议的服务绑定等信息都反映在配置文件中。为了遵循SCA协议,在其组件配置文件中,抽象构件、组件与服务的相关信息分别在元素中进行配置。组件的实现类与服务接口的实现类对应元素注明。组件之间的连线通过元素完成。

图3 数据融合业务构件的分布式模型Fig.3 Distributed model of data fusion business component

代码片段为

2.5 SCA框架的部署

SCA框架的部署主要是将多个contribution及其composite整合到同一个domain中(包括分配contribution所在node的IP地址和端口号),部署的主要工作是在domain manager的当前运行目录下配置或生成3个文件,在本地服务器上设置相应的引用模块,并将SCA模块Web Service绑定与引用。其基本过程如下图所示:编写WSDL(web服务描述语言)文件。主要包括数据类型定义、消息定义、端口类型定义、绑定定义、服务访问点定义和服务定义。

1)配置SCA模块.主要是增加对Web Service的绑定,在元素中进行配置,代码片段为:

2)编写服务启动程序。启动程序主要通过SCADomain的静态方法new Instance(String composite)加载配置文件与WSDL文件,用于启动服务。

3)最后,将 discontribution贡献包放在Node1上运行;Node1的JVM位于192.168.1.11的计算机上,提供服务的port为8081;服务的绑定采用sca绑定,绑定的协议由SCA框架自动选择。“xmlns:c”是指composite的namespace,需要与前面的保持一致。

3 仿真实例

图4 视频信息处理器模拟器图Fig.4 Video processor simulator

为证明分布式仿真系统的可行性,构建3个仿真节点和1个SCA服务节点。3个仿真节点由一个局域网中指定3台PC承担本任务。一台PC是空情生成模拟器,一台模拟视频信息处理和显示,一台模拟空情数据处理。仿真计算机的配置为AMD 3200+CPU,1 GB内存,100 Mbps以太网卡。1个服务节点作为Web服务器和构件管理协调器。仿真时间设定为 3 60 s。

数据融合仿真系统要求实时处理显示火炮空情信息,在全系统的处理时间协调上要统一处理各模块的处理时间与全系统时间安排,如图4所示。从仿真试验结果可以看出航迹关联算法在目标编队交叉或近距飞行时,有较高的关联正确率,从而解决了分布式多传感器多目标跟踪的有效性问题,并且区域之间具有较好的协调效果,如图5所示。

图5 空情数据处理模拟器Fig.5 Air situation data processing simulator

4 结 论

文中构建了基于SCA规范的分布式数据融合仿真系统,体现出了SOA系统松散耦合、粗粒度和传输协议透明这3大要素。按照面向对象和面向服务的原则进行抽象构件设计和业务构件设计,并使用Java语言进行具体编程实现。SCA组件的实现语言无关性及传输协议无关性满足了系统对异构性的需求,大大降低了异构系统跨平台集成的难度。分布式仿真框架通过Web Service与SCA的整合开发。构件化的开发模式有利于不同开发语言、不同计算平台的业务组件的升级和维护。仿真系统的构建具有较好的通用性、可扩充性、开放性和实时性等特点,为评价数据融合算法及系统的战术性能提供了可靠的平台依托。

[1]徐飞,钟连炯.高炮空情信息处理仿真[J].系统仿真学报,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]向伟,蒲国林,杨清平.面向服务架构的异构系统集成模型[J].计算机系统应用,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的第三方物流信息系统解决方案[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].计算机与数字工程,2006,34(3):20-24.

BAO Jie-jiao,FAN Jin,XONG Li-rong.Research on deployment model of EJB-based web service[J].Computer&Digital Engineering,2006,34(3):20-24.

[5]关明,吉宏伟,杨雪君.基于SOA的数字城市管理业务系统的研究与设计[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.

猜你喜欢
配置文件分布式组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
分布式光伏热钱汹涌
为View桌面准备父虚拟机
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究