APP下载

DDS在分布式仿真中的应用探讨*

2015-06-07任棕诜任雄伟

舰船电子工程 2015年11期
关键词:数据类型发布者应用程序

任棕诜 任雄伟

(海军工程大学电子工程学院 武汉 430033)

DDS在分布式仿真中的应用探讨*

任棕诜 任雄伟

(海军工程大学电子工程学院 武汉 430033)

分布式仿真规模不断扩大,仿真环境也日趋复杂,造成了网络通信数据量的大幅度增加,需要一种高性能的实时通信技术来完成数据分发。传统的基于客户/服务器的通信模型已不能满足实际需求,基于DDS的以数据为中心的通信模型逐渐成为发展方向。文中介绍了DDS的各要素,分析了DDS各方面的特性,并对RTI-DDS的应用做出了具体描述。

数据分发服务;分布式仿真;实时通信

Class NumberTP391.9

1 引言

随着分布式仿真中系统规模的扩大与复杂性的提高,需要实时、频繁地在系统内部交换大量数据信息,这就造成了网络数据量的大幅度增加,从而对系统的数据分发性能提出了更高要求。之前采用的高层体系结构(HLA)以运行支撑环境(RTI)为工作中心,存在性能瓶颈和可伸缩性问题,不支持服务质量(QoS),且发布/订阅过于繁琐,越来越不能满足实际需求[1]。

与此同时,另一种数据分发技术DDS获得了极大成功。对象管理组织OMG于2004年发布了第一个以数据为中心的发布/订阅通信模型——数据分发服务(DDS)规范,并在2007年1月推出了V1.2版[2]。DDS灵活的数据通信机制允许分布式的大量节点进行异步的和实时的通信,极大地提高了通信效率,可以满足分布式仿真对于数据分发高速、高效的要求[3]。

2 DDS概述

2.1 DDS规范

DDS主要包括主题(Topic)、域(Domain)和域成员(DomainParticipant)、发布者(Publisher)和数据写入者(DateWriter)、订阅者(Subscriber)和数据读取者(DataReader)、监听器(Listener)、条件触发器(StatusCondition)等要素[4]。下面给出简单介绍:

·主题:发布者与订阅者之间通过主题(数据写入者与数据读取者的主题)进行匹配,具有相同主题的发布者与订阅者可以直接进行点对点的数据传输,不需要中间媒介。

·域和域成员:DDS通过域来划分逻辑网络,域名相同的应用相互之间才能通信,这样就可以在一个物理网络上虚拟多个通信网络(如图1)。

图1 多域系统

·发布者和数据写入者:发布者将其数据写入者组织起来,由数据写入者对数据进行分发。

·订阅者和数据读取者:订阅者用来组织数据读取者,通过数据读取者从网络上获得数据并传递给应用。

·监听器:监听器为DDS中间件提供了一种通知应用程序相关的异步事件的机制。

·条件触发器:作为监听器的补充,提供了中间件与应用程序之间的另一种同步通信模式,是基于等待的。

DDS标准化了数据交换的接口和行为,它描述了两个层次的接口[5]:

1)以数据为中心的发布/订阅DCPS层

DCPS是DDS的核心层,提供发布与订阅数据的功能,使发布者能够发布拥有的数据,订阅者能够订阅感兴趣的数据,建立一个不需要维护的、快捷的数据通道。

2)数据本地重构DLRL层

DLRL是DDS的可选层,建立在DCPS与应用层之间,以类的形式对DCPS层提供的服务进行了封装,DLRL层通过这些类让应用层可以快速地访问数据。

2.2 DDS的特性

DDS以数据为中心,它的数据对象存在于全局数据空间中,通过全局数据空间上与数据对应的主题来关联通信双方(如图2)。

图2 DDS通信模型

DDS采用UDP/IP协议,支持一对一、一对多、多对多的通信,提供尽力传输(BEST_EFFORT)和可靠传输(RELIABLE)两种传输服务,当应用程序对实时性要求高时允许通过降低可靠性来缩短时延,这时就要用到尽力传输方式。由于DDS不需要中心服务器,可以直接使用P2P传输方式,消除掉网络中转引起的时延,与C/S模型相比大大提高了传输速度。另外,利用DDS进行多点传送,可以把单个数据包同时发送给多个分布式节点,极大地提高了大型网络的吞吐量[6]。

DDS扩展性强,可以方便地增加节点,不会对系统造成什么影响;容错性好,即使个别节点发生故障,系统仍然可以运转。DDS具有高效的动态配置能力,能快速发现新的节点及其主题,旧的或者失效的节点也容易去掉。当一个域被分割时,系统也可以很快重新组合成新域,然后各自独立工作,修复后则能恢复如初,自愈能力很独特。

DDS用QoS策略控制服务行为,保证服务质量,它将资源的可用情况、提供方对资源的占有程度及请求方对资源的期待程度分别化为主题QoS、发布者QoS和订阅者QoS。QoS参数虚拟了底层的通信机制,包括可靠性、等待时间、带宽限制和资源限制等[7]。

发布者发布数据,订阅者订阅数据,不需要知道彼此的位置,只要两者的QoS兼容且Topic一致就能建立连接,增加了通信的灵活性(如图3)。

图3 QoS对通信的影响

下面简单介绍五个重要的QoS参数[8]:

·History(历史记录):控制发送队列中的数据总量,与Durability及Reliability相关联。

·Durability(持续性):如果创建发布者时此属性被选中,那么将在内存中保存其发布数据的历史记录,保留的数据总量由History属性控制。Durability允许后加入的订阅者获得在其创建之前已经发送过的数据。

·Reliability(可靠性):如果创建发布者时此属性被选中,发布者会发送所有的数据。如果由于通信错误导致订阅者不能接收到数据,就会修复该错误并重新发送数据。

·Deadline(时间限制):对于发布者而言,Deadline是发布者承诺更新数据的最大时间间隔;对于订阅者而言,Deadline是期望从发布者得到更新数据的最大时间间隔。

·Liveliness(活跃性):用于检测发布者的状态,甚至当它没有活跃地发送数据时也可以检测。创建发布者时设定的Liveliness是发布者发出活跃信号的最大时间间隔。创建订购者时设定的Liveliness是订阅者希望确认发布者的存在的最大时间间隔。

3 基于RTI-DDS的分布式仿真的具体实现

RTI-DDS由Real-Time Innovations公司开发实现的,第一个支持DDS规范的商业产品(以前叫做NDDS)。RTI公司是DDS市场的领导公司,它实现了完整的DCPS和部分的DLRL,适用于Linux、Solaris、AIX、VxWorks、INTEGRITY、LynxOS、Windows等多种系统。

RTI-DDS不仅支持UDP,还支持TCP、共享内存等多种通信方式。RTI-DDS采用分布对称式的体系结构,所有节点都是完全对等的,避免了瓶颈问题的出现[9]。

在分布式仿真中,以仿真引擎为数据源,将其与各平台(包括飞机教控台、舰艇教控台、潜艇教控台、兵力模拟系统等)相连接,平台下设探测装置、控制系统、武器等装备模拟器,各节点装备发布或者订阅数据(如图4)。

图4 分布式仿真系统通信架构

对这些数据类型的定义,RTI提供了三种方法[10]:

1)使用中间件内嵌的数据类型,适用于简单的数据类型需求;

2)通过Code Generator(rtiddsgen)来定义,它可以在编译时将描述性语言转换成特定的编程语言;

3)在运行时通过编程来定义,适用于有动态数据描述需求以及数据改变频繁或不能提前知道的应用程序。

通过设定域,不仅单平台的装备可以通信,多个平台的装备之间也可以通信。一个订阅者可以在全局数据空间中找到多个相同主题,实现一对多的连接,一个连接失败可以换用另一个,大大降低了网络延迟,图4中的域0就是这种情况,指控模拟器可以订阅由多个传感器发布的主题为“目标状态”的数据。

发布方应用程序与订阅方应用程序通过DDS中间件进行交互,发布方按照以下步骤发送数据(以域1为例):

1)在火控模拟器上创建一个域成员;

2)通过域成员注册用户数据类型Command-DataType;

3)用注册的数据类型名称创建主题“控制命令”;

4)利用域成员创建一个发布者(可选);

5)通过发布者或域成员为主题创建一个数据写入者;

6)将普通的数据写入者映射成指定类型的数据写入者CommandDataWriter;

7)将要发送的数据存储在一个类型为CommandDataType的变量Command中;

8)调用CommandDataWriter的write(),将变量Command的值存储在DDS内部缓冲器中;

9)当有匹配的数据读取者时,依据发布者和数据写入者的QoS策略设定的标准发送数据。

类似地,订阅方接收数据的步骤为:

1)在导弹模拟器上创建一个域成员;

2)通过域成员注册用户数据类型Command-DataType;

3)用注册的数据类型名称创建主题“控制命令”;

4)利用域成员创建一个订阅者(可选);

5)通过订阅者或域成员为主题创建一个数据读取者;

6)将普通的数据读取者映射成指定类型的数据读取者CommandDataReader;

7)安装监听器或者条件触发器(可选);8)通过调用CommandDataReader的read()或take()访问接收队列中的数据。

通过这种机制,各节点之间的通信得以建立,解决了分布式仿真的数据分发问题。这种以数据为中心的通信模式能够提供各种详细的参数,例如粒度、发布的速率、订阅的速率、数据有效期等。这些QoS参数使得分布式仿真程序可以支持复杂多变的数据流要求,大大增加了通信的灵活性[11]。以水面舰艇为例,当敌方发射导弹攻击我舰时,由于目标速度较快,需要对目标进行实时跟踪,这时就应该把Deadline的值设小一点,以便订阅方快速接收更新的数据,及时进行反击。

4 结语

大规模的分布式仿真系统催生了对低延迟、高吞吐量数据分发的需求,而DDS作为专门为实时系统设计的中间件无疑是不错的选择。

目前DDS已经广泛应用到了美国陆、海、空、天各个领域,并发挥了重要作用。而国内的相关研究与应用范围还很有限,下一步工作中应通过实验测试一下DDS在不同网络环境下的性能,以此来指导实际应用。[1]康凤举,杨惠珍,高立娥,等.现代仿真技术与应用[M].第2版.北京:国防工业出版社,2010:251-263.

[2]张大海,赖兰剑,陈鼎才.DDS在分布式系统仿真中的应用[J].计算机技术与发展,2011,21(3):250-253.

[3]程雄,向慧.对数据发布服务标准基本要素的研究[J].计算机与数字工程,2007,35(8):53-56.

[4]OMG.Data Distribution Service for Real-Time Systems Version 1.2[DB/OL].[2015-02-03].http://www.omg.org/spec/DDS.

[5]张胜,许庆华,任建华.数据分发服务研究[A]//杨义先.2009年研究生学术交流会通信与信息技术论文集[C]//北京:国防工业出版社,2009:153-155.

[6]裘楷,沈栋,李娜,等.基于DCPS模型的数据分发服务DDS的研究[J].电子科技,2006(11):68-71.

[7]谢蓓,刘毅,曹万华,等.实时系统数据分布服务DDS技术综述[J].舰船电子工程,2006(2):16-19.

[8]谢阳杰,吴家铸.数据分发服务DDS的研究[A].见:刘晓平.全国第19届计算机技术与应用(CACIS)学术会议论文集(上册)[C]//合肥:中国科学技术大学出版社,2008:38-43.

[9]卢传富,蔡志明,夏学知.数据分发服务体系结构的研究[J].计算机与数字工程,2008,36(5):67-69.

[10]Real-Time Innovations,Inc.RTI Connext DDS Core Libraries and Utilities User's Manual Version 5.1.0[EB/OL].[2015-02-03].http://community.rti.com.

[11]孙昊翔.DDS和以数据为中心的通信方式[J].科技和产业,2013,13(7):153-158.

Application of DDS in Distributed Simulation

REN Zongshen REN Xiongwei
(College of Electronics Engineering,Naval University of Engineering,Wuhan 430033)

The continuously extending scale of distributed simulation and increasingly sophisticated simulation environment cause the increase in network traffic data.As a result,a high performance real-time communication technology is in demand.Traditional communication models based on client/server cannot meet the actual demand now,data-centric communication model based on DDS gradually becomes development direction.This article introduces all elements of DDS,and analyzes the characteristics of DDS in all aspects,and makes a detailed description of the application of RTI-DDS.

DDS,distributed simulation,real-time communication

TP391.9DOI:10.3969/j.issn.1672-9730.2015.11.029

2015年5月14日,

2015年6月30日

任棕诜,男,硕士研究生,研究方向:作战系统工程。

猜你喜欢

数据类型发布者应用程序
新加坡新法规引争议
如何理解数据结构中的抽象数据类型
删除Win10中自带的应用程序
带隐私保护的群智感知任务分配机制
谷歌禁止加密货币应用程序
软件众包任务发布优先级计算方法
基于SeisBase模型的地震勘探成果数据管理系统设计
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用
Luminate—“给图片用的AdSense”获1070万融资