DDS

DDS(Data Distribution Service)数据分发服务,是一种基于订阅/发布的分布式实时系统的通信中间件,底下是自持各种操作系统,上层直接面向应用层,为应用层提供了API
理论上支持各种传输层协议,常用的有UDP/TCP/RTPS
DDS是实现了去中心化,因为和MQTT做个比较久知道了,MQTT也是订阅/发布模型的通信协议,但是MQTT就必须有一个中心的Server(Broker),这种去中心化利用一个数据中心的概念达成,当然了这个数据中心是一个逻辑概念而已,说白了就是数据发送方把数据往这个中心丢数据,接收方在这个数据中心中佬自己要的数据,这个捞数据和发布数据的操作是依赖与topic的
DDS中定义了Domain的概念,只有一个Domain中的实体才能互相感知到对方的存在,在同一个Domain中每个实体通过定义Domain participant,每个participant之间订阅相同的topic,来实现彼此之间的数据通信,Participant通过publisher将数据给Data writer,Writer根据特定的QoS发送数据,topic相同且QoS规则匹配的接收方收到数据,

所以DDS的数据收发成功的三要素:topic相同,类型相同、QoS匹配
s
IDL是一种接口描述语言,在DDS中可以通过IDL定义topic,然后通过一些工具生成类的定义,方便后续程序开发