常识 | dds通信

DDS定义Data Distribution Service 数据分发服务,是新一代分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。

DDS实现的数据共享可以理解成一个抽象的“全局数据空间”,就好像访问本地的存储空间一样。当然“全局数据空间”仅仅是一个抽象的概念,在实现时仍然是分别存储在每个应用程序的本地空间当中。在系统运行时,数据是按需传输或存储的,数据的发布者仅仅发送对方需要的数据,而订阅者仅接收并存储本地应用程序当前需要的数据。

数据的发送过程,简单来说就是应用程序调用DataWriter对象提供的write方法,把数据传递给Publisher对象,而Publisher负责将数据在网络上发送出去。

数据的接收过程,简单来说就是Subscriber负责从网络上接收数据,并把它存储在对应的DataReader中。应用程序可以为对应的DataReader注册一个回调函数,或者使用DataReader提供的read和take方法来轮询DataReader中的数据。

QoS策略

设置缓存的到期时间
设置可靠传输(重传)
设置消息发送给订阅者后是否丢弃/保留
.....
 

DDS实时传输协议——RTPS
应用UDP/IP作为消息传输协议

常识 | dds通信_第1张图片

 常识 | dds通信_第2张图片

 


DDS与SOME/IP

SOME/IP是面向服务的通信,服务端将方法和数据以服务的形式暴露给其他节点。而DDS最大的特点是以数据为中心,侧重数据的分发

SOME/IP协议标准中没有定义标准API,DDS制定了多种编程语言的标准API

DDS在诸多方面提供了更丰富的特性,这自然就导致了在资源需求上,比如内存占用,比SOME/IP要大得多。

你可能感兴趣的:(常识,通信,什么都来点,dds)