转载:DDS基本原理研究
1 主题
本文基于主流DDS(Data Distribution Service–数据分发服务)软件,汇总参考文献对DDS的研究,概要说明发布/订阅过程、数据分发服务设计、实现关键技术等方面,对DDS基本原理进行简要介绍。
2 发布/订阅过程
图 1 DDS发布/订阅中间件工作流程
3 数据分发服务设计
图 2数据分发服务系统架构
4 实现关键技术
4.1 链路管理
图 3发布订阅配对流程
图 4解除发布订阅配对流程
4.2 数据管理
DDS设计的初衷就是为了在分布式节点之间进行数据的实时分发,所以高实时性是本系统的最终目标。
对应数据分发系统来说,衡量实时性的一个最直观的变量就是从发布者生产出数据到订阅者获取到数据之间的时间间隔。
主要依靠以下技术来减小式中各项获取系统实时性的。
- 采用简单应用层协议。简化应用层协议,仅仅在数据前面加了一个表示消息类型以及消息长度的消息头。简单的协议减小了消息的封装与解封开销。减小T0和K0。
- 采用多线程技术。多个线程并发从发送端队列中读取消息进行发送,使得多条消息可以并发的向外投递从而减小消息在队列中的等待时间k,同时提供注册回调接口供用户采用多线程并发处理接收到的数据,减小数据在接收端队列中的等待时间T0。
- 采用消息队列管理数据指针。避免数据在本地内存的拷贝,数据从生产出来直接被拷贝到系统内核空间进行发送,减小L和Tr。
- 数据点对点传送。节点间的数据直接从发布者流向订阅者,不经过任何中间节点转发,同时避开使用广播,缓解网络拥塞从而减小数据在网络间的飞行时间Tf。
- 采用优先级技术。在发布和订阅方的数据队列均提供按优先级入队的接口,用户通过此接口可以将对延迟敏感的数据插入到队列的前部,从而获取到优先发送和处理的权利,减小T0和K0。
- 采用数据质量衡量技术。对同一个主题的数据进行质量分级,用户订阅主题时可以指定所需要数据的质量,这样系统可以自动过滤掉一些质量比较低而不符合用户需求的同主题数据,避免用户处理一些不符合要求的数据,减小系统开销,提供系统实时性。
5 参考文献
【1】 基于DDS模型的数据分发中间件的设计与实现
【2】 基于DDS的发布_订阅中间件设计