基于DDS规范的数据发布/订阅模型应用研究

2018-07-28 07:18史会丽
电脑知识与技术 2018年15期

史会丽

摘要:随着我国海军装备技术的快速发展,相关舰载技术和装备也愈加先进,对配套系统信息传递的实时性、可靠性等性能指标也提出了更高要求。现代软件系统的规模越来越大,一方面软件项目实现的复杂性也再增加,且对项目开发周期要求紧迫,另一方面系统之间数据传输格式与方式愈加复杂,传输的数据规模也在不断增加,但对数据的传输质量要求同时愈加严苛。DDS被称为数据分发服务,是对象管理组织(OMG)针对实时数据分发系统制定的一个规范,该规范进行了优化,在强实时系统应用领域具有低延迟、高吞吐量、可控传输性能的优点,对DDS规范进行深入研究对于海军装备整体技术的提升有十分重要的意义。本文结合海军装备软件研发的业务现状,首先研究学习各分布式数据分发模型的内容并对各模型优缺点进行总结分析,然后对数据分发服务(DDS)规范进行了介绍,重点对DCPS模型、DDS 的通信流程、QoS策略进行了研究,并对DDS 在舰船信息系统应用进行简要分析,提出了有关的工作建议。

关键词:数据分发;DDS;DCPS模型;QoS策略

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)15-0247-04

Research on the Data Publish/Subscribe Model Based on DDS

SHI Hui-li

(The 27th Research Institute of China Electronics Technology Group Corporation, Zhengzhou 450047, China)

Abstract: Along with the rapid development of the Naval ship equipment in our country, the real-time performance and reliability of system information transmission are put forward. Modern software system research and development have a shorter cycle, a larger scale, more complex project, larger data transmission between the systems. The quality requirements of data transmission is also getting higher. The Data Distribution Service(DDS),published by OMG,is a real-time systems specification on data distribution service.Combined with the requirements of naval equipment software development,This paper focuses on the communication model in distributed heterogeneous environment. Combined with publish/subscribe model, the paper introduces the data distribution service (DDS) specification and mainly studies DCPS model, DDS communication process and QoS strategy of DDS. It briefly analyzes the application of DDS in ship information system, and puts forward some relevant suggestion.

Key words: Data Distribution; DDS; DCPS; QoS Strategy

1 引言

随着我国海军装备技术的快速发展,相关舰载技术和装备也愈加先进,对配套系统信息传递的实时性、可靠性等性能指标也提出了更高要求。现代软件系统的规模越来越大,一方面软件项目实现的复杂性也再增加,且对项目开发周期要求紧迫,另一方面系统之间数据传输格式与方式愈加复杂,传输的数据规模也在不断增加,但对数据的传输质量要求同时愈加严苛。为了适应这些需求,国外装备软件研发过程中广泛采用数据分发服务技术作为其系统的数据传输基础机制[1],例如美国海上战争中心高性能分布式计算系统,美国HJLPD-17舰内广域网络,TACTICOS等。

数据分发服务(Data Distribution Service,DDS)是对象管理组织(Object Management Group,OMG)对分布式实时系统中数据分发的一种规范[2],是以数据为中心的发布/订阅数据传输模型(Data-Centric Publish Subscribe Communications,DCPS)[3]。该规范针对强实时系统进行了优化,提供了低延迟、高吞吐量、可控传输性能的优点,广泛应用于航空、国防、分布仿真、工业自动化等多个领域[4-8]。

2 数据分发模型

2.1 客戶端/服务器模型

客户端/服务器(Client/Server,C/S)通信模型以处理对象为中心,服务器提供服务,客户端请求服务。服务器提供的服务通常是一个或多个任务计划或处理过程,客户端通过向一个或多个服务器发送请求以便完成相关任务或操作。同时,如图1所示,也存在多个客户端同时向一个服务器发送请求,该服务器处理来自各个客户端的请求,执行相关任务并向它们反馈处理信息。

图1 C/S模型

此模型要求每对有数据交流的连通节点间使用相同的数据结构或用户自定义的接口协议进行点对点的数据交换,因此,客户端和服务器之间耦合度高,灵活性、扩展性和健壮性较低,系统扩展性和兼容性很差。

2.2 消息队列

消息队列模式通过一个消息队列来传递消息,任何进程都可以创建队列,可以发送消息到一个队列,或者从多个队列中读取消息,如图2所示。消息队列不需要区分节点是服务器还是客户机,解决了通信双方时间和空间松耦合的问题,但该模型并不是以数据为中心的,因此不能实现消息通信的异步。另外,经典的消息传递模型并不涉及QoS,且存在服务器瓶颈和单点失效的问题,可靠性得不到保障。

图2 消息队列模型

2.3 以数据为中心的发布/订阅(DCPS)模型

如何以最小的代价高效地进行数据分发工作是分布式实时应用系统开发时的核心问题。建立一个以数据为中心的信息交换体系,应用程序发布数据,对其感兴趣的应用程序能够有效地获取数据。不仅仅定义发布者(Publisher)、订阅者(Subscriber)、数据写入器(DataWriter)、数据读取器(DataReader)以及主题(Topic)5类通信实体,以数据为中心的发布/订阅模型(DCPS)同时以主题为中心建立了不同优先级的实时传输通信系统,订阅者只需要订阅它们想要的数据,或者发布它们能提供的信息。从逻辑上讲,消息是在通信节点间直接传递的,利用发布-订阅协议增加实时通信功能,形成实时发布-订阅协议(Real-Time Publish /Subscribe,RTPS)。DCPS通信模型如图3所示。

图3 DCPS通信模型

在DCPS模型中,所有数据对象均存储在全局数据共享空间,任何通信节点都可以通过读、写操作实现分布式访问。所有DCPS模型均需定义全局数据共享空间,且规定了发布者和订阅者其操作的相应规则。基于DCPS模型开发的应用,数据对象将仅仅保存于对其感兴趣的应用程序的本地缓存空间,并非所有应用程序都能对其进行访问操作。

该模型优点在于它允许在网络中存在若干个发布者和订阅者,且不严格界定发布者和订阅者的角色,所有通信节点之间可以按需共享信息,减少了信息发布者与订阅者之间的联系,增强了系统设计的灵活性,若设备升级或增加,不需要更改程序代码和重新测试整个系统配置,只需要添加部分程序代碼,更有利于系统的可维护性和扩展性。

3 DDS

3.1 DDS接口层次

数据分发服务DDS(Data Distribution Service)是对象管理组织OMG制定的新一代分布式实时通信中间件技术规范,该规范基于发布/订阅通信模型,强调以数据为中心,能够保障数据进行实时、高效、灵活地分发。DDS规范使用UML 语言进行服务描述,标准化了分布式实时系统中的底层通信模型和应用程序编程接口(API),提供了一个与平台无关的独立模型,并通过两层的方式对接口进行了详细描述:①以数据为中心的发布-订阅层DCPS;②数据本地重构层(Data Local Reconstruction Layer,DLRL)。

DCPS(Data Centric Publish Subscribe)层通过建立全局数据空间,发布者能够在该空间发布数据,订阅者能够通过该空间获取并操作所需的数据,再通过中间件处理后,确保发布者发布的数据能够对感兴趣的订阅者进行有效传播。DCPS层通过构建共享的全局数据空间,有效地实现了应用程序所需的发布和订阅数据的功能。

DLRL层建立在DCPS层基础之上,通过对DCPS层提供的服务进行抽象,从而建立了与底层服务的映射关系。通过规定应用层和DCPS层之间的接口,使得应用程序能够更加直接地访问交换的数据,有效简化了编程实现工作。在实际应用开发中,通常会以类的形式对DCPS层提供的服务进行封装,实现每个类与对应服务的映射关系,在DLRL层再通过本地语言对类进行操纵,使得用户能够对数据进行方便快捷的访问,DDS通信报文层次模型如图4所示。

图4 DDS 通信报文层次模型

3.2 DDS 工作流程

DDS发布-订阅中间件对于主题的发布订阅和数据传输功能主要通过发布者、订阅者、数据写入者、数据读入者以及GDS()Global Data Space)进行实现。以下将针对DDS工作流程中发布过程、订阅过程、数据分发过程进行详细描述,DDS通信流程时序如图5所示。

图5 DDS通信流程时序图

3.2.1 发布过程

当节点进行消息发布时,发布者将会创建一个数据写入者,数据写入者将要进行发布的消息主题及其能够提供的服务质量QoS(Quality of Service)发布到其他各点的GDS上,消息发布成功后该数据写入者将进入阻塞状态,并等待被激活。

3.2.2 订阅过程

在进行数据订阅时,节点将由订阅者创建一个数据读入者,数据读入者首先在本节点的发布主题表中找到相匹配的发布者,按照一定策略从中选择一个作为本次订阅的对象,然后将相应的主题和QoS发送到该发布节点的GDS上,接着进入阻塞状态等待有数据时被激活。

节点收到数据读入者的订阅信息时,将在全局数据空间的订阅登记表添加订阅记录,然后查看发布主题表中持久性属性取值。若值为1,表示可能存在订阅者发布的某一主题对应的数据,然后对发布数据缓冲区的主题进行查找,若存在满足条件的主题,则进行QoS匹配,则数据写入者被激活,且数据写入者将该项队列中保存的所有数据按照相应的QoS发送给订阅方。

3.2.3 数据分发过程

(1) 发布者发布数据。在节点上,当发布的主题有数据要发送时,对应的数据写入者被激活,它先查看发布主题表中是否存在某一主题的持久性属性取值;若值为1,则在发布数据缓冲区中相应位置主题的链表中添加一项,以便后来的订阅者可以收到该数据;否则根据下面的步骤发送完数据后将其丢弃。

(2) 传输数据。对某节点的全局数据空间的订阅登记表进行查找,若存在数据写入者发布的主题与数据读入者订阅的主题相同时,且QoS匹配,则该数据写入者与数据读入者形成了发布订阅关系,全局数据空间将订阅登记表中该数据读入者的订阅消息发送给该数据写入者,同时该数据写入者被激活。数据写入者按照相应的QoS策略,并根据订阅消息将数据发送给数据读入者,然后进入阻塞状态等待下一次被激活。若不存在满足上述条件的数据读入者,则进入阻塞状态等待被激活。数据读入者接收到数据后对数据进行处理,然后进入阻塞状态,等待下一次被激活,具体工作流程如图6所示。

图6 DDS发布/订阅工作流程

3.3 DDS 特点

DDS模型将发布方可提供资源状况及订阅方对资源的期待程度分别用可靠性、持久性、最大时延和生命周期等QoS参数来描述。发布者和订阅者通过这些参数选择最符合通信双方QoS要求的传输方式来分发数据,实现了发布方和订阅方的异步实时通信。具体特点如下:

(1) 便捷性。订阅者根据发布主题可以随时订阅自己需要的主题,而不需要关心发布者是谁。一旦订阅成功,即形成了发布/订阅关系,订阅者就只负责接收数据。

(2) 实时性。发布者和订阅者通过QoS约束,可以选择最符合自己要求的传输方式,且基于UDP/IP协议,并通过多播传播方式,有效地增加了网络的吞吐率和数据传输的实时性。

(3) 动态可扩展性。可根据系统需要随时添加或删除节点,同时可以随时添加新主题,为系统添加新功能。

(4) 灵活性[10]。DDS通过将资源的可用情况程序化为主题QoS,将提供方对资源的占有程度程序化发布者QoS,将请求方对资源的期待程度分别程序化订阅者QoS,并通过QoS控制服务行为,根据实际需要决定采用UDP、RUDP、TCP和组播等多种传输策略,大大增加了通信的灵活性。

(5) 高效性。DDS通过全局数据空间中的主题进行关联,能够实现一对多的连接,有效地提高了数据通信效率。

4 应用研究

DDS技术基于以数据为核心的思想進行设计,通过提供一个平台独立的数据模型和标准化的QoS控制策略,对分布式实时系统中数据发布、传递和接口的接口和行为进行规范,有效地保障了数据分发的实时、高效和灵活。QoS是一种用于解决网络延迟和阻塞的传输控制策略,QoS服务通过提供不同的服务模型,在网络中通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。DDS 规范通过定义QoS策略,以保障对网络华宁的适应性和鲁棒性,有效地对网络传输质量进行了优化,QoS关键指标参数如下:

(1) Durability(持续性)。此属性选择则允许发布者保存期在创建之前发布的历史数据记录,并允许订阅者能够访问该发布者创建之前发布的历史数据。同时,该属性允许订阅者能够向发布者请求在期加入系统之前的历史数据,发布者将会把历史队列中的所有数据发送给订阅者。

(2) Liveliness(活跃性)。此属性参数用于检测发布者的状态。在进行发布者创建时,设定的Liveliness间隔时间表示发布者发出活跃信号的最大间隔时间;在进行订阅者创建时,设定的Liveliness间隔时间表示订阅者希望发布者存在的最大时间间隔。

(3) Reliability(可靠性)。此属性选择则允许发布者能够交付所有的数据并发送,同时订阅者能够得到所有数据的可靠更新。默认情况下,发布者不会重发丢失的数据,但数据服务将会修复由于通信错误导致订阅者不能接收到数据的错误,并重新发送数据给订阅者。

(4) History(历史记录)。该属性参数与Durability及Reliability属性相关联,主要用于实现对发送队列中数据总量的控制。在Durability属性被选中的情况下,History属性决定会被传送给后加入订阅者的数据总量。

DDS的QoS策略主要分为默认传输、可靠传输、高优先给可靠传输、异步可靠传输、高效传输、组播高效传输,并且采取多种策略组合应用的方式实现上述数据的灵活传输。QoS常用策略的典型应用如下:

(1) 可靠传输配置。多应用于请求应答操作类,保障发布的数据内容能够可靠的被订阅者接收。

(2) 高优先级可靠传输配置。多应用于指挥移交,保障优先传输优先级别高的数据。

(3) 异步可靠传输配置。应用于大容量数据传输计划,例如传输方案、文电、图片等,此类数据特点是单包数据量大,传输可靠,传输速度没有特殊要求。

(4) 高效传输配置。应用于周期性数据传输。

(5) 组播高效传输配置。应用于周期性一发多收。

DDS数据分发服务技术已是美国国防部的强制标准,起初美国海军用期解决舰船复杂网络环境中大量软件升级的兼容性问题。目前,DDS技术已成为分布式实时系统中数据发布/订阅的标准解决方案,广泛应用于国防、工业控制、民航等各个领域。例如,在洛克希德马丁公司Aegis军械系统、波音公司B-1B轰炸机军械系统、波音公司B-1B及B52数据链系统、波音公司扫描鹰无人机侦查及地面控制系统、捕食者及空中勇士无人机地面数字方舱系统、德国RoboScout机器人侦查车内部通讯系统、美国DDG1000全舰计算系统、大众汽车辅助驾驶和安全集成系统、NASA智能机器人系统、CAE飞行模拟器系统、欧洲空中交通管理系统等项目中得到了较好地应用。

5 结束语

设计并开发基于DDS规范的消息中间件,能够更有效地管理计算资源和网络通讯,实现不同技术之间的资源共享,保障信息系统之间数据传递的有效性和可靠性。结合我国海军舰船装备信息系统的实际需要,对于保障系统间消息传递的实时性、可靠性、安全性等要求,基于DDS规范的消息中间件技术将是较好的解决方案。

参考文献:

[1].杨传顺. 以数据为中心的舰载分布式系统.JC科学技术. 2011, 33(7):75-79.

[2].Object Management Group.Data Distribution Service for Real-time System[R]. Object Management Group,2010.

[3].Computing O.Inc.OpenDDS Developers Guide[EB/OL]. 2009-06-10. http://download.ociweb.com/OpenDDS/OpenDDS-latest.pdf.

[4].刘浩,蒋泽军,陈进朝. 一个面向服务的DCPS信息库的设计与实现. 航空计算技术. 2013,43(5):100-104.

[5].曹万华,谢蓓, 吴海昕, 程雄. 基于DDS的发布/订阅中间件设计. 计算机工程.2007,33(18):78-81.

[6].吕云飞,王旋,张军. 基于DDS技术的JC平台综合管理系统. JC科学技术. 2011,33(5): 47-52.

[7].李海浩,顾斌兵. DDS在舰载ZB系统中的应用研究. 计算机与数字工程.2015, 43(9): 1698-1701.

[8].候玉,潘昕,冯源. 基于DDS的船舶分布式通信实时性研究. JC电子工程. 2015, 35(9): 13-16.

[9].OMG. The Common Object Request Broker: Architecture and Specification. 2004.

[10].楊传顺,王学万. 实时数据分发系统的服务质量控制的研究. 计算机技术与发展. 2011,21(5): 231-234.