基于发布订阅的大数据传输机制的研究

(整期优先)网络出版时间:2022-11-17
/ 2

基于发布订阅的大数据传输机制的研究

吕广喆 ,齐舸 ,刘陶

航空工业计算所  陕西省西安市  71000

摘要:在异构网络消息传输时,需要屏蔽底层网络差异,文章提出了基于发布订阅的大数据传输机制,解决了跨网络传输时分包、组包,消息传输可靠性,控制流量等问题,形成了跨网络传输大数据的机制。

关键字:通信中间件;发布订阅;大数据传输

中文图书分类:TP393   文献标识码: A

Research on big data transmission mechanism based on publishand subscription

Abstract:In heterogeneous network message transmission,it is necessary to shield the differences of the underlying network.This paper proposes a big data transmission mechanism based on publish and subscription,which sloves the problems of subcontract ,package group , message transmission reliability,traffic control and so on in cross-network transmission,forming a cross-network big data transmission mechanism.

Key words:Communication MiddleWare;Publication and subscription;Big Data Transmission

引言

在分布式联合作战环境中,多个军种利用各自优势,进行信息收集和共享,已达到将信息转换成作战优势。信息交换过程中涉及到的通信节点数量众多,存在一对一、多对一、多对多的通信方式,此外,消息的传递可能是随机的、周期性的。目前,不少软件供应商开发了适应用该场景的通信中间件,例如,美国RTI(Real-Time Innovations, Inc.),是全球第一个发布商用网络中间件的公司,是行业领导者。其RTI Connext DDS软件功能完备,配套工具最为完善,适用于通用领域,但是没有针对嵌入式环境的特殊设计所需的内存资源和传输延时较大;OpenDDS由OCI(Object Computing)公司设计和维护,是符合OMG DDS规范的发布/订阅中间件,采用单播(默认方式)和多播传输模型,采用第三层网络接口(IP组播和广播)来处理不同通信模型的网络传输,该结构的优点是由于所有的控制信息都在一个节点上,实现和配置简单,减少用户工作量;不足之处在于守护程序需要一个单独节点运行,可能发生节点失效,并存在超负载系统潜在的性能瓶颈问题。国内不少高校也开展了相关研究,复旦大学陈春甫等人基于DDS和RTPS规范,设计和实现了一个数据分发系统ReDDS,目前仍处于原型阶段。东南大学沈卓炜教授的团队构件了基于数据分发服务的远程过程调用系统,是通过研宄OMG组织的Remote Procedure Call over DDS规范,提出基于DDS的远程过程调用机制的设计方案实现一个Remote Procedure Call over DDS原型系统,对原型系统进行了测试验证,未形成产品。

对于嵌入式异构网络传输,需要考虑在不同的网络协议上传输消息时,不同网络协议对消息长度的支持能力不同,应用程序传输的消息长度也不相同。为了适应不同网络的传输能力,通信中间件需要对消息进行分包、组包以支持大数据的传输,数据分片的长度必须能够在任何一种网络上传输,同时还需要考虑大数据传输的可靠性。因此,提出了基于发布订阅大数据传输方案。

1.发布订阅通信

传统的通信模式包括点对点模式、总线模式以及星型模式。点对点模式是指网络中的任意两个通信节点之间的信息交换,点对点通信时,只有一个用户能够收到信息;总线模式是一种共享性数据传输模式,总线上可以联接多个通信设备,但任一时刻只能有一个设备参与数据传输;星型模式是是指网络中有个中心节点,通信节点需要通过中心节点与其他的节点进行通信,中心节点起到了控制和交换的作用。

传统的通信模式是从网络的拓扑、物理特性角度出发,而从用户使用的角度出发通信模式是以数据为中心的订阅/发布模式。以数据为中心的订阅/发布模型最典型的应用场景是一个主题消息从一个生产者流向多个消费者,或者一个主题消息连续的从生产者发送到消费者,例如,一个温度传感器的数据被多个应用使用,包括:控制应用、显示应用、监控应用等等。该模型具有良好的扩展性,适用于大规模分布式应用的集成

发布模块包括发布者、数据写者、发布者监听器和数据写者监听器接口等与发布有关的类。发布者执行数据分发,负责创建和管理数据写者。当与它所创建的数据写者相关的数据存在更新时,它会发布数据更新的消息。

订阅模块包括订阅者、数据读者、读条件、查询条件类、订阅者监听器和数据读者监听器接口等与订阅有关的类。订阅者负责接收数据,创建和管理数据读者。

订阅者执行数据接收,负责创建和管理数据读者。数据读者声明哪些数据是它想要接收的,并且从订阅者哪里读取接收到的数据。

2.大数据传输

大数据是指超过网络协议所支持的最大包长的数据。对于这种类型的消息,嵌入式数据中间件软件在传输时需要对其进行分包和组包。具体需要解决三方面的问题,消息分片的大小、消息拆包组包以及如何确保大数据传输的可靠性。

其中,消息分片的大小选择与所支持网相关,要确保所有网络都能直接发送。消息分片的大小由发送端决定,具体需要满足以下三个方面的约束:

嵌入式通信中间件可能同时支持多个网络传输介质,需要保证消息分片能够在每一种传输介质上进行传输,消息分片大小

对所有接收该主题数据的数据读者看到的消息分片大小是一致的;

参照RTPS协议的要求,1KB<消息分片大小<64KB。

分片后的消息每个消息的头部需要添加消息ID和消息分片序号两个属性;接收端在接收到分片消息后可以根据消息ID和消息分片序号进行组包,只有所有的数据分片接收到之后才能提交给应用程序。具体过程如图2所示。

图2 大数据传输的运行方案

大数据的可靠传输需要在原有可靠传输机制的基础上,增加了对丢失数据分片的处理,扩展了数据分片心跳消息(HeartbeatFrag)、以及数据分片请求消息(NackFrag)。

Heartbeat子消息中包含的序号意味着该序号所代表的大数据的所有消息分片都是可用的;

AckNack子消息用来确认大数据的所有消息分片接收端都已经收到。或者确认一个大数据,其所有子消息都丢失。

HeartbeatFrag用来通知读者可用的消息分片范围。

NackFrag子消息用来确认部分消息分片丢失。

写者通过数据分片心跳消息通知读者,有哪些可用的数据分片;读者通过数据分片请求消息向写者请求丢失的数据分片。当读者获取到整个大数据后向写者确认消息已经收到。

3.流量控制

当一个网络可以支持多个消息分片的长度时,为了节省网络资源,将多个消息分片合并成一个消息分片进行发送。对大数据进行分片后可能会造成网络风暴。通信中间件采用令牌环机制控制网络流量,避免网络风暴的形成。

令牌桶的能够存储的令牌上限为M个(M由网络特性决定),该参数描述了通信中间件瞬间能够处理的最大消息数,当令牌桶不满时,通信中间件会按照一定的频率向桶中发放令牌;当令牌桶满时,不再向其中放入令牌。通信中间件发送消息是需要获取令牌,如果获取不成功则等待一定的时间,再次获取,尝试多次后仍不能获得令牌的情况下,阻塞发送线程。用户可以根据实际的应用调整令牌发放频率和发放个数,从而达到控制网络的目的。

4.总结

本文首先介绍了分布式联合作战环境中异构网络消息传输的需要,讨论了发布订阅通信机制,并再次基础上提出了基于发布订阅的大数据传输机制,具体包括了数据传输过程中如何分包、组包,如何保证消息传输的可靠性,控制流量等形成了完整的解决思路,后续将研究如何在大规模节点通信的情况下进行高效、实时传输。

[1]Real-Time Innovations, Inc .RTI Connext-Comprehensive Summary of QoS Policies[M].U.S.A:

Real-Time Innovations,Inc,2012.

[2]Object Management Group .Data Distribution Service for Realtime System[R]. Version1.2,jan,2007

[3] Hu GQ, Wee PT, Wen YG.Cloud robotics: Architecture,challenges and applications. Network, IEEE,2012,26(3):21–28.

吕广喆

出生年月:1987.11.9

单位:航空工业计算所

学历:硕士研究生

研究方向:嵌入式软件