实时发布/订阅数据分发服务的模型分析
2016-04-07孙志刚
李 腾,孙志刚,贾 峰
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
实时发布/订阅数据分发服务的模型分析
李腾,孙志刚,贾峰
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
摘要为了探索数据分发服务中间件(DDS)在移动自组织网络中的通信性能,深入研究了DDS的规范和特点,描述了DDS规范中以数据为中心的发布订阅层(DCPS) 和数据本地重构层(DLRL)的2个接口内容,阐述了DDS数据分发的基本思想,分析了DDS的服务质量(QoS)策略。OMG DDS定义了以数据为中心的发布/订阅模式,对分布式实时系统中数据分发、传递和接收的接口行为进行了标准化,提供一个与平台无关的数据模型,该模型能够映射到各种具体的平台和编程语言。以RTI公司的数据分发服务为例,对中间件模型的数据分发进行了分析。
关键词数据分发服务;中间件;实时发布订阅;服务质量策略
Analysis on Real-time Publish/Subscribe Data Distribution Service Model
LI Teng,SUN Zhi-gang,JIA Feng
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
AbstractIn order to explore the communication performance of Data Distribution Service (DDS) in mobile ad hoc networks,the specifications and characteristics of DDS are deeply studied.The two layers of DDS,DCPS and DLRL,are described.Then the basic idea of DDS data distribution is introduced.The QoS policy of DDS is analyzed.OMG DDS standardizes the API and behavior of data distribution,delivery and receiving in distributed real-time systems.It defines a data-centric publish/subscribe model,and provides a platform-independent data model,which can be mapped to a variety of programming languages.Taking RTI data distribution service as an example,the design and implementation of the middleware model are analyzed.
Key wordsdata distribution service;middleware;real-time publish/subscribe;quality of service policy
0引言
随着网络技术的飞速发展,各领域网络应用软件越来越复杂,系统集成的难度和风险都在大幅度提高, 现在通信需要解决的关键问题就是如何将这些基于不同平台的系统连接起来,使通信更为方便。中间件技术作为架构在应用层和底层操作系统之间的桥梁能够很好地解决该问题,保证了应用软件在不同平台、不同操作系统之间的互连、互通和互操作。数据分发服务是一个用于实时分布式应用程序的网络中间件,传统的客户端/服务器(C/S)的数据传输方式存在低效和信息传递不及时的问题[1],DDS使用发布/订阅通信模型,在数据分发服务中建立以数据为中心的发布订阅模型,并能解决高效、实时的数据分发问题,能够使分布式应用程序的参与者有效地分配数据服务,各种需要信息分发的应用都能够使用这种以数据为驱动的网络结构。在2004年12月,OMG组织正式颁布了该规范,本文将对DDS的关键技术进行讨论和相关研究,对DDS的QoS策略进行可靠性配置,并试验验证了其可靠性性能。通过分析提出了DDS在无线网络下的可行性观点。
1数据分发服务
以数据为中心的发布/订阅(Data Centric Publish-Subscriber,DCPS) 是DDS的核心,它提供了一个与平台无关的数据模型。使应用程序能够实时地进行信息发布,并订阅其需要的信息。作为网络中间件层可以认为是架构在应用层与传输层之间的桥梁,使系统集成从传统的硬集成转变为以数据为中心的软集成,达到信息按需获取、应用功能即插即用和系统灵活重构的目的[2]。
1.1DDS规范
DDS规范目的是为了简化分布式系统以能够有效地发布数据,主要应用于要求可预见性、高性能和能有效使用资源的关键领域。DDS规范有2个层次的接口:
低层的DCPS:将数据发布者发布的信息高效准确地传送给数据订阅者,DCPS层提供了数据发布的基础架构,是 DDS规范的核心。
可选的高层DLRL:允许将服务简单地集成到应用层[3]。DLRL层建立在DCPS之上,主要规定应用层和DCPS层之间的接口,该接口将接收到的数据进行处理并传递给应用层,经由底层DCPS层提供服务,进而简化编程工作。
1.2DDS特点
DDS是一种轻便的、能够提供实时信息传送的中间件产品。其特点整理如下:
① DDS是针对网络编程的一个公开标准;
② 是一套支持发布/订阅设计思想的应用程序接口(API);
③ 体现了以数据为中心进行结构设计的方法学;
④ 是专为高性能,实时系统设计的通信中间件;
⑤ 降低成本,用户专注于自己的设计,没有自己设计系统中所有的组件,不需要DIY.;降低集成成本,减少首次设计和后继测试等时间开销;
⑥ 采用公开标准,减少了被供应商特定技术禁锢的风险;
⑦ 可以同时使用多种传输途径,如UDPv4、UDPv6、共享内存、WAN和DTLS。
2以数据为中心的发布/订阅层
作为DDS 规范的核心,DCPS 层为应用程序的发布/订阅数据提供了基础架构[4]。它允许:
① 发布者应用程序识别即将发布的数据对象,并提供发布值给这些对象;
② 订阅者应用程序识别其感兴趣的数据,并获得这些对象值;
③ 应用程序定义主题以及和主题关联的类型信息,创建发布者和订阅者实体并给这些实体关联 QoS 策略[5],进而创建并初始化所有实体。
2.1基本概念
DCPS的实体包括:域(Domain)、域参与者(Domain Participant)、数据写入者(Data Writer)、发布者(Publisher)、数据读取者(Data Reader)、订阅者(Subscriber)和主题(Topic)。各个实体间的关系如图 1所示。下面将详细介绍这些实体的概念以及实体间的联系[6]。
图1 DDS发布/订阅模型
域是DDS中特有的一个通信环境,应用程序实现互相通信的前提是在同一个域内,这一约束对隔离优化那些共享相同需求的通信有很大帮助。每个分布式系统可以由1个或多个域组成。
数据写入者是发布者的类型化的接入器,数据写入者将数据提供给发布者,由发布者完成数据分发,发布者根据其自身的 QoS策略和数据写入者的相应的QoS策略进行数据分发。
数据读取者负责获取订阅者接收到的数据,并传递给应用程序的DCPS层。而订阅者负责接收来自发布者的数据,然后将接收到的数据传给相应的数据读取者,从而使应用程序获得它所感兴趣的数据。数据读取者可以通过调用函数从DDS中获取数据,这为开发人员程序的开发提供了灵活性。调用的函数有2种: take()函数和 read()函数。在获取数据后take()函数会把数据删除,而 read()在读取数据后不删除该数据,所以下一次依然可以读取该数据。
主题作为发布者和订阅者之间的基本连接点,2个节点上的发布者主题和订阅者主题相匹配才能够进行通信[7]。一个主题由主题名称(Topic Name)和主题类型(Topic Type)组成。在一个域中,Topic Name是能唯一标识主题的字符串,而Topic Type则是对在主题中数据的定义。在一个特定的域中主题必须是唯一的。在 DDS 框架结构中,即便2个主题是不同的Topic Name但是相同的Topic Type,也说明这是2个不同的主题。此外,每个主题都可关联其相应 QoS。
DDS的对称架构,使用户应用程序更加强健。没有中央服务器和中心节点,这样解决了断点失效的问题。这一点可以很好地适应无线移动网络的特点。
2.2模块描述
DDS提供的是一个与平台无关的数据模型,数据模型图如图2所示。它允许应用程序对其拥有的信息进行实时的发布,并可订阅需要的信息,能够较好地处理不可靠网络通信中数据的自动发现、冗余性和可靠性等问题。DDS规范的关键之一就是使分布式应用的底层通信模型和应用程序接口(API)标准化。
图2 DDS数据模型
以数据为中心的发布/订阅模式清晰地定义了接口和模型信息。有了清晰的接口,各个部件很容易接入。可见,DDS是模块之间成为松耦合的方式,这使得集成各个系统成为可能。
DDS作为一个高性能、支持容错的数据分发服务,也适于需要高可靠性的系统。DDS中没有任何特殊的节点。如果某个节点发生故障,其他部分能照常继续工作;同样,如果有新的节点加入,也不会对原有的系统造成任何影响(这同时也反应了可扩展性)。DDS网络能够进行自愈,即使网络被劈成两半,每一半都能独立的工作;如果网络被修复,将会自动重新连接,继续提供服务。
DDS规范提出了全局数据空间的概念,它的发布/订阅模型是通过主题将发布者和订阅者相关联的。当订阅与发布的主题相同并且相应的QoS相匹配时,DCPS全局数据空间通知发布者和订阅者进行数据传输,即DDS规范的核心。
2.3DDS的QoS策略
QoS是指一系列可控制 DDS 服务行为的特性集合,它由独立的 QoS策略组成,DDS 的功能依赖于 QoS 的使用[8]。DDS 中的所有实体都可以与QoS 策略关联,QoS 策略是 DDS 规范的最大亮点,DDS 提供了包括数据可靠性、持久度、周期数据的超时、基于时间的过滤、数据的历史记录、数据的分区、所有权和资源限制等20多种 QoS 策略。每种QoS策略对应一种功能,并且能在不同层次上进行配置。因此,用户可以按需求进行不同的配置,只有当发布者与订阅者QoS 策略匹配成功,二者才能进行通信。如:DEADLINE策略决定数据的有效期限,LATENCY_BUDGET策略用来优化调节数据传输时订阅者最大可接受时延,RELIABILITY策略用来保证接收数据的可靠性。TRANSPORT_PRIORITY、PRESENTATION和DESTINATION_ORDER策略可以解决优先级的问题,DISCOVER、USERDATA和GROUPDATA等策略可以实现DDS的发现机制,使新接入的节点能够被原组网内成员识别并进行通信。由此可以看出,DDS 规范只是定义了一系列的 QoS 策略和接口来控制实体间的数据交换,但并没有指定如何去实现这些服务或DDS 资源的管理。因此,DDS开发者可以根据规范自由地发挥和创新[9,10]。
3RTPS DDS互操作协议
互操作是指一种能使分布的控制系统设备通过相关信息的交换,能够协调工作,从而达到共同目标的能力。也认为是“不同平台或编程与语言之间交换和共享数据的能力”。为了实现这一目标DDS规范使用模型驱动体系结构(MDA)方法来精确描述了以数据为中心的通信模型,该通信模型解决了如下问题[11]:
① 应用程序希望如何发送和接收的数据模型;
② 应用程序如何与DCPS中间件交互并指定它所希望发送和接收的数据以及QoS需求;
③ 数据是如何被发送和接收;
④ 应用程序如何访问数据;
⑤ 应用层从中间件的状态获得的各种反馈。
DDS规范还包括一个映射到交互式数据语言(Interactive Data Language,IDL)特定的平台。因此,应用程序使用DDS能够在DDS运行和重编译之间切换。DDS因此具有应用程序的可移植性。
随着在大型分布式系统采用DDS,定义一个标准的“线协议”是可取的,以允许来自多个供应商的DDS实现互操作。理想的 “DDS线协议”应该有能力利用DDS的QoS可配置性,来优化基础传输功能。特别是,理想的线协议必须具备组播、高效,连接许多DDS QoS的设置的能力。
4应用软件的设计与实现
以RTI公司为例,DDS中间件是执行数据分发服务标准的一个典型代表。编写好发送数据的结构体IDL文件后,只需RTI Launcher中的Code Generator代码生成器,即可生成相应的发布/订阅程序[12]。
使用Code Generator代码生成器即可生成相应的发布/订阅程序,包括可以配置QoS的XML文件,可以在此XML文件中设置自己需要的服务质量策略。高可靠传输的策略设置如表1所示。这组策略配置了数据写入者和数据读取者的服务策略,能够有效保证数据传输的可靠性,避免丢包的发生。
表1 可靠性QoS设置
为了证明DDS的可靠性传输,用8台计算机、交换机和路由器搭建了如图3所示的树形网络拓扑结构,在100 M网域网环境下,网络背景流量占带宽百分比分别为10%、50%和90%,数据包大小分别为32 bytes、1 024 bytes和8 192 bytes,总发包数为10 000个包情况下进行实验。试验结果如表2所示。实验验证丢包数全部为零,可以认为满足可靠性传输。在不进行可靠性设置下进行相同条件试验则偶尔会出现丢包现象。
图3 网络拓扑结构
5结束语
DDS可以说是目前相对较先进的网络中间件,它提供一个以数据为中心的网络设计手段,是一个分布式网络的首选网络中间件,并且专注于数据通信领域;为数据通信提供良好的系统架构和丰富的通信质量服务策略,通过QoS设置可以使各种复杂的数据通信方式变得容易,从而为整个系统的开发节省了大量的时间和资源;它高度的灵活性以及与生俱来的高性能就是为大系统而产生,提高了分布式系统的可扩展性,为后续复杂系统的搭建和实现提供了基础。
参考文献
[1]张大海,赖兰剑,陈鼎才.DDS在分布式系统仿真中的应用[J].计算机技术与发展,2011,21 (3): 250-252.
[2]任昊利,李旺龙,张少扬,等.数据分发服务——以数据为中心的发布/订阅式通信[M].北京:清华大学出版社,2014:8-9.
[3]朱华勇,张庆杰,沈林成,等.分布式系统实时发布/订阅数据分发服务[M].北京:国防工业出版社,2013:16-18.
[4]裘楷,沈栋,李娜,等.基于DCPS模型的数据分发服务DDS的研究[J].电子科技,2006(11):68-76.
[5]CASTELLOTE G P.OMG Data Distribution Service: Architectural Overview[J].IEEE Military Communications Conference,2003(1):242-247.
[6]杨传顺,钱幸存.实时数据分发系统软件的设计与实现[J].微型机与应用,2011,30(6):3-5,10.
[7]BASAGNI S,CONTI M,GLORDANO S,et al.Mobile Ad Hoc Networking[M].西安:西安交通大学出版社,2012:13-17.
[8]Real-Time Innovations,Inc.RTI Connext- Comprehensive Summary of QoS Policies[M].U.S.A: Real-Time Innovations,Inc,2012.
[9]Real-Time Innovations,Inc.RTI Core Libraries And Utilities QoS Reference Guide[S].U.S.A: Real-Time Innovations,Inc,2012.
[10]冯国良.基于DDS的数据分发中间件的设计与实现 [D].南京:南京航空航天大学,2011:8-10.
[11]谢蓓,刘毅,曹万华,等.实时系统数据分布服务DDS技术综述[J].舰船电子工程,2006(2):16-19.
[12]Real-Time Innovations,Inc.Core Libraries and Utilities User’s Manual[M].U.S.A,2012.
李腾女,(1989—),硕士研究生。主要研究方向:无人机系统通信技术。
孙志刚男,(1965—),研究员。主要研究方向:航空测控与信息传输技术。
作者简介
中图分类号TP391.41
文献标识码A
文章编号1003-3106(2016)02-0006-04
基金项目:国家高技术研究发展计划(“863”计划)(2013AA122105)。
收稿日期:2015-11-12
doi:10.3969/j.issn.1003-3106.2016.02.02
引用格式:李腾,孙志刚,贾峰.实时发布/订阅数据分发服务的模型分析[J].无线电工程,2016,46(2):6-9,18.