OpenDDS之DDS学习笔记

IT教程 4年前 (2020) https://www.leileyou.com

dds

   DDS:data distribution service数据分发服务

   DDS信息发布中间件是一种轻便的、能够提供实时信息传送的中间件技术。DDS中间件是一个软件层,从操作系统、网络传输和底层数据格式的细节中抽象出应用。相同的概念和api提供给不同的编成语言,使得应用在不同的操作系统、编成语言和处理体系架构之间交换信息。底层细节包括数据传输格式、发现、连接、可靠性和、协议、Qos策略等由中间件来管理。

   DDS采用发布/订阅体系架构,以数据为中心,提供丰富的Qos服务质量策略。

   以数据为中心的核心是DDS知晓整个集成网络内的数据以及控制数据的共享。使用传统的以消息为中心的中间件,必须考虑发送消息的问题。而使用以数据为中心的中间件,只要考虑如何共享数据,何时共享数据的问题,就可以之间共享数据值。DDS直接为用户实现受控的、受管的、安全数据共享,而不是在应用代码中管理所有的负责逻辑。在众多的通信中间中,DDS是唯一一个以数据为中心的标准,适用于物联网。

   DDS提供基于Qos控制的共享数据。应有通过发布和订阅主题来实现,主题用他们的主题名来标识。订阅方可以规定时间和内容过滤器,这样可以获得该主题发布数据的一个子集。不同的DDS域是完全不重叠的。在DDS域之间没有共享。

  DDS的全局数据空间

  DDS把所有的本地存储的数据称作全局数据空间。对于应用来说,全局数据空间看上去像通过api来访问内存一样。你使用时,就像使用本地存储一样。事实上,DDS发送消息来更新远端节点的相应存储值。这样,在使用时,如同本地存储。

   总而言之,DDS使应用在需要进行数据访问的时候提供一个虚拟的全局数据池概念,事实上并没有一个存储所有数据的全局设备。每个应用仅在本地存储它需要的数据,当整个网络内的任何应用需要他们时,提供给对应应用。所有的数据分发工作全部都由DDS代劳了。全局数据空间是一个虚拟概念,实际上是本地存储的集合。每个应用,可以用几乎任何一种语言编写,运行在任何系统上,可以在本地内存上读到最好的数据格式显示的数据。全局数据空间可以在嵌入式系统、移动和云应用之间共享数据,采用任意的传输方式,无论语言和系统,而且延迟极低。

OpenDDS之DDS学习笔记

DDS发布/订阅模型

   DDS以数据为中心的发布-订阅模型为所有的分布式节点之间创建了一个虚拟共享的全局数据空间。在该模型下分布式节点在网络

上以发布或订阅的方式传输数据,节点可以是发布者或者订阅者,或两者都是。网络中的数据对象用主题做标识,分布式节点在全局数据空间中发布或订阅感兴趣的主题信息。各个节点在逻辑上无主从关系,点与点之间都是对等关系,通信方式可以是点对点,点对多,多对多,在Qos策略的控制下建立连接,自动发现和配置网络参数。

OpenDDS之DDS学习笔记

   DDS规范有两层:分别是DLRL层(数据本地重构)和DCPS层(以数据为中心发布订阅)。DCPS层是DDS的核心和基础,提供了通信的基本服务;DLRL层将DCPS层提供的服务进行了抽象,在DLRL层建立了与底层服务的映射关系。

OpenDDS之DDS学习笔记

DDS基本结构是域domain,由域号唯一标识。domain将各个应用程序绑定在一起进行通信,只有在同一个域内的通信实体才能通信,不同域内的实体间无任何逻辑关系。

OpenDDS之DDS学习笔记

   DDS内所有的成员都是entity,DDS中任两个entity通信都必须在同一个domain内进行交互。domain内的domainparticipant是服务的入口点,任何DDS应用都需首先获取domain participant,然后通过domain participant获取其他服务,如publisher,subscriber,topic等。

   domain Participant作为数据分发服务的入口点,包含若干发布者,订阅者和注册主题,负责创建,删除和管理这些实体。

   publisher作为发布者角色,至少包含一个DataWriter,并负责创建,删除和管理datawriter。同样,subcri作为订阅者,至少与一个datareader关联,并负责发布数据,数据发布者通过调用datawriter的write函数发布数据,但数据不会立刻被送出,实际的消息产生是通过publisher和Qos综合控制的。datareader负责订阅数据,订阅方式可采用异步方式(listener),同步方式和非阻塞三种。

   topic是datawriter和datareader相互通信时约定的主题,每个datawriter/datareader必须与一个主题绑定,相互通信的datawriter和datareader之间的主题数据类型必须相同,Qos必须匹配。另外,topic必须有确定的数据类型。

DDS的工作原理分析一

声明:小编也是个学生 这是在实验室工作汇报的时候讲到的一些分享给大家 下次会更深入更认真的写博客   介绍DDS 和ADI的一款芯片

文章回顾

大家看了本文OpenDDS之DDS学习笔记的精彩教程资源内容,是不是对OpenDDS之DDS学习笔记了解更多,真心希望OpenDDS之DDS学习笔记能帮助到你, 小编会一直给你带来更多教程资源文章信息。

版权声明: 发表于 2020-08-11 8:50:43。

本文在撰写过程中会借鉴文案,对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。

本文标题:OpenDDS之DDS学习笔记