物联网通信协议–DDS

发表于 知识科普  |  标签 , , ,

概述

DDS(Data Distribution Service)是一种物联网通信协议,属于中间件协议和 API 标准,它将系统的组件集成在一起,提供业务和任务关键型物联网 (IoT) 应用程序所需的低延迟数据连接、极高的可靠性和可扩展的架构.DDS引入了一个虚拟的全局数据空间,应用程序可以通过简单地读取和写入通过应用程序定义的名称(Topic)和键寻址的数据对象来共享信息。DDS 对 QoS 参数(包括可靠性、带宽、交付期限和资源限制)具有精细而广泛的控制功能。DDS 还支持在全局数据空间之上构建本地对象模型

DDS
DDS

使用DDS的分布式应用程序可以发布或订阅“主题”信息,并使用一组丰富的服务质量参数来设置通信的不同方面(可靠性,持久性,冗余性,寿命,传输设置,资源等),DDS的特点有以下几点:

  • 发布/订阅模型:简单且解耦。它允许对分布式系统进行更简洁的设计。
  • 性能:在发布/订阅模式中,延迟低于请求/回复模式,吞吐量高于请求/回复模式。在请求/回复模型中,请求者应拉取远程参与者以获取数据,但在发布/订阅模型中,发布者会在此数据可用后立即将数据直接发送给订阅者。API、对象模型和 QoS 参数都经过精心设计,以实现实时性能,并且通常不同的实现都得到了真正的优化。
  • 自动发现远程参与者:此机制是DDS的主要功能之一。通信是匿名和分离的,开发人员不必担心远程参与者的本地化。
  • 丰富的 Qos 参数集,允许调整通信的各个方面:可靠性、持久性、冗余性、寿命、传输设置、资源…
  • 互操作性协议(RTPS):该协议几乎可以在任何传输上实现,允许在UDP,TCP,共享内存和用户传输中使用DDS,并实现不同DDS实现之间的真正互操作性

DDS历史

DDS规范的开发始于2001年,它由Real-Time Innovations(RTI)和法国国防公司Thales Group开发;2004年, 对象管理组(the Object Management Group -OMG)发布了DDS1.0版本,2005年12月发布1.1版本,2007年1月发布1.2版本,2015年4月发布1.4版本。

版本 2.0 于 2008 年 4 月发布,版本 2.1 于 2010 年 11 月发布,2.2 版本于 2014 年 9 月发布,2.3 版本于 2019 年 5 月发布。DDS 规范描述了两个级别的接口:

  • 较低的以数据为中心的发布-订阅 (DCPS) 级别,旨在将适当的信息有效地传递给适当的接收者。
  • 可选的更高数据局部重建层 (DLRL),允许将 DDS 简单集成到应用层中

对象管理组 (OMG) 是一个计算机行业标准联盟,

于1989年由11家公司(包括惠普,IBM,Sun微系统,苹果计算机,美国航空公司,iGrafx和数据通用)成立。OMG工作组为一系列技术制定企业集成标准。

DDS协议

用于创建发布者(publishers)和订阅者(subscribers)的 DDS 工厂称为 DDS 参与者。通常,应用程序创建一个参与者,发布者发布数据和/或订阅者订阅数据。DDS定义了第三个级别,即数据写入、数据读取器以及写入/读取。

从概念上讲,DDS 看到一个称为“全局数据空间”的本地数据存储。对于应用程序,全局数据空间看起来像通过 API 访问的本地内存。您写入看起来像本地存储的内容。实际上,DDS 会发送消息来更新远程节点上的相应存储。你从看起来像本地商店的东西中阅读。在 DDS 域中,信息共享的单位是主题中的数据对象。该主题由其名称标识,数据对象由某些“Key”属性标识。这类似于使用键属性来标识数据库中的记录。这是概念性的图。DDS 以对等方式进行通信,不需要由服务器或云代理数据。

DDS全局数据空间
DDS全局数据空间模型

远程 DDS 参与者的发现是自动的,在默认行为中,每个参与者都会发送多播通知(或将单播通知发送到预定义的对等方列表),DDS 维护远程目标的列表

  1. 空间:作为自动发现,分布式系统独立于网络拓扑。如果用户更改网络拓扑,则无需在应用程序中进行任何更改。
  2. 时间:发布者可以完全异步发布,而无需测试订阅者的状态。如果服务参数的持久性设置为持久性,则 DDS 会将数据传输给后期加入者订阅者。
  3. 冗余:DDS允许非常容易地实现冗余。多个发布者可以在同一主题上发布,共享该主题,或者可以设置DDS以将主题设置为独占,并且主题的所有者将是具有最高“强度”参数的发布者。如果所有者失败,则以下较强的发布者现在将成为所有者。可以实现故障转移和接管行为。对于订阅方,任意数量的订阅者都可以订阅同一主题。
  4. 平台和语言:DDS在大量平台(Windows, Linux, Solaris, Aix, Mac Os, Integrity, LynxOS, QNX, VxWorks…等)和语言(C、C、Java、C#、Ada等)中实现。因此分布式系统可能非常异构,但是开发人员不必担心远程节点的平台/语言。
  5. 实现:DDS 规范集包括一个用于 DDS 互操作性协议的规范,称为 RTPS(Real Time Publish Subscribe Protocol实时发布订阅协议)。分布式系统中的不同应用程序可以使用不同的 DDS 实现,并且它们将进行互操作。

DDS 提供 Qos 控制的数据共享。应用程序通过发布和订阅由其主题名称标识的主题进行通信。订阅可以指定时间和内容筛选器,并仅获取在主题上发布的数据的子集。不同的 DDS 域彼此完全独立。DDS 域之间没有数据共享。

DDS域
DDS域

DDS与其他协议的简单比较

物联网应用通常考虑几种专门的消息传递/数据共享协议,包括

几种协议之间的对比

参考资料

网站总编:

内容审核: