APP下载

基于数据实体的DDS在嵌入式系统中的应用

2018-07-16杜会盈毛洪川胡争争段永杰

科技传播 2018年12期

杜会盈 毛洪川 胡争争 段永杰

摘 要 發布/订阅通信模型—数据分发服务(DDS)是以数据为中心的通信模型,可以实现数据实时高效地传输。文章研究了DDS规范的通信机制,分析了其发布和订阅匹配的方法,提出了基于数据实体的DDS通信方式,该方式既能提高发布/订阅的匹配能力,又能保证数据发送和接收的完整性、正确性及一致性。

关键词 数据分发服务(DDS);发布;订阅;数据实体

中图分类号 TN91 文献标识码 A 文章编号 1674-6708(2018)213-0090-03

随着信息技术水平的高速发展,高速数据通信技术也不断地进行着信息化和数据化,从而带来了海量信息数据的处理问题。传统的网络数据传输方式,已满足不了高速数据通信需要的实时性和和可靠性。为了保证数据传输的实时高效性,对象管理组织(OMG)[1-3]于2004年发布了第一个以数据为中心思想的发布/订阅通信模型—数据分发服务(DDS)规范[4],提供了一个与平台无关的数据模型。

文中在研究DDS规范的基础上,分析了DDS发布/订阅常用机制,提出基于数据实体的DDS数据分发方法,既保证了数据快速高效地分发,又能保证发送和接收数据的正确性及完整性。

1 DDS数据分发服务

数据分发服务(Data Distribution Service),简称DDS。它的目标在于实现分布式系统中数据可以高效、可靠地分发传输。DDS规范标准化了分布式实时系统中数据发布、传递和接收的接口和行为,定义了以数据为核心的发布订阅机制,并且提供了一个与平台无关的数据模型。它包含两层接口:底层的数据订阅/发布层DCPS(DataCentric Publish-Subscribe)和可选的数据重构层DLRL(Data Local ReconstructionLayer)[5-6]。数据重构层DLRL是可选层,其主要负责将数据转换为本地对象类型,以使用户应用层可以更方便地访问/处理数据。而数据发布/订阅层DCPS是必须具备的,应用层通过调用它来实现数据的发布和订阅,实现应用层数据的发送和接收。

发布/订阅模型具体内容包括DDS域(Domain)、信息主题(Topic)、发布者(Publisher)、数据写入者(DataWriter)、数据读取者(DataReader)、订阅者(Subscriber)。域是建立通信联系的基本结构,只有同一域内的组件才能够进行相互通信。每个域参与者里面可以有一个或多个发布者(Publisher)或订阅者(Subscriber)。发布者是负责发布主题数据的组件,通过数据写入者将要发送数据内容发布至数据空间。订阅者是负责订阅主题数据的组件,通过数据读取者获取所订阅的主题数据内容。DDS数据模型如图1。

随着发布/订阅系统技术的不断发展,在此过程中出现了各种各具特色的系统,其表达能力也越来越强。发布/订阅系统按照事件模型和订阅模型可以分为基于通道、主题、内容等模式。

基于通道和基于主题的发布/订阅都是一种静态的模式,仅提供了有限的表达能力。在基于通道的模式中,订阅者不能指定接收通道中的部分事件;基于主题中,所有事件的内部对订阅者来说都是黑盒子,订阅者不能更细粒度地表达它只接收主题下的一部分事件。基于内容的发布/订阅系统[7-10]中,系统并不会先对事件进行分类,而是根据事件本身的属性进行分类,系统需要根据订阅条件来匹配大量事件,带来很大负担。

2 基于数据实体的DDS数据分发

2.1 数据实体

由于高速数据通信涉及的传输报文数据种类繁多及频率高,故采用DDS数据分发服务。为了保证数据收发的高效性及正确性,提出了基于数据实体的DDS数据分发技术。

对需要经过DDS进行分发的的每一帧通信报文,定义一个数据结构,对该报文的数据结构进行重构后的数据类,称为数据实体。

针对要进行传输的报文内容,采用数据结构的定义方式。定义方式如下。

针对数据结构内容,重构出通信数据对应的DDS数据类实体,数据类实体中包含针对传送数据内容长度及数据类型校验的类。数据实体类定义如下。

数据订阅者和发布者针对发送的不同报文数据,分别构建对应的数据实体。

2.2 发布和订阅

针对上述要发送的数据实体,创建对应的数据实体的发布者和订阅者。创建发布者和订阅者时,需指定数据发送的目的域、主题名、结构体名、数据实体长度。通过上述参数创建的发布者和订阅者,可以实现发布者和订阅者之间的最终快速匹配。基于数据实体的DDS通信示意图如图2。

发布者填写完善需要发送的数据结构体对象,调用数据发送接口,经过DDS中间件[11]时,会对发送的长度加以验证,保证发送数据的完整性。如果数据长度不正确,则向发布者返回数据发送失败信息。如果数据完整,则通过网络发送数据。

订阅者的DDS中间件接收到网络数据信息时,首先根据发布者和订阅者匹配时的注册信息对接收到的信息进行完整性确认。若接受长度与匹配信息中的长度参数一致,则向订阅者转发数据。否则丢弃该信息内容。

3 结论

针对上述方法,在嵌入式Linux系统平台项目中得以应用,实现了以数据为中心,快速、高效、正确传输数据的目的。

文中提出了基于數据实体的DDS数据分发服务,该方法提升了系统中的有效匹配数量,减小无用信息的交互,提高了发布者和订阅者之间的匹配效率,同时又实现了对发布端和订阅端数据完整性的校验,确保了发送和接收数据的正确性、完整性和一致性。

参考文献

[1]OMG,Data Distribution Service for Real-time System Specification 1.0[S],2004.

[2]OMG,Data Distribution Service for Real-time System Specification 1.1[S],2005.

[3]OMG,Data Distribution Service for Real-time System Specification 1.2[S],2007.

[ 4 ] O M G . C O R B A n o t i f i c a t i o n s e r v i c e specificationversion[EB]. 2002.10.1.

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

[6]罗亚军.数据分发服务DDS技术研究[J].电子编程技巧与维护,2013(8):62-63,66.

[7]G. Muhl. Generic constrains of content-based publish/subscribe system[C]. In Proceedings of the 6th International Conference on Cooperative Information Systems(CoopIS), pages 211-225. Springer,2001.

[8]薛涛,冯博琴.内容发布/订阅系统路由算法和自配置策略研究[J].软件学报,2005,16(2):251-259.

[9]GeroMuhl, LudgerFiege, and Alejandro P. Buchmann. Filter Similarities in Content-Based Publish/Subscribe Systems. In Proceedings of the International Conference on Architecture of Computing Systems(ARCS02), volume 2299 of LNCS[C]. BERLIN, GERMANY: Springer Verlag, 2002.

[10]薛涛,冯博琴.使用Gossip算法实现可靠的基于内容的发布订阅系统[J].小型卫星计算机系统,2006,27(1):185-189.

[11]MichiHenning,SteveVinoski.基于C++ CORBA高级编程[M].徐金梧,等,译.北京:清华出版社,2000.