1. 标准及发展简介
DDS 的全称为 Data Distribution Service(数据分发服务 ),是由 OMG 联盟在 2004 年发布的中间件协议和应用程序接口标准。采用发布 / 订阅模型,提供丰富的 QoS(Quality of Service)服务质量策略, 可满足各种分布式系统实时通信的低延迟、高可靠性、可扩展性的需求。DDS 被广泛应用在航空航天、船舶、军事、工业、医疗、交通、能源等领域中。
在分布式系统中,DDS 中间件是处于操作系统和用户应用程序之间的软件层,如图 4.5-12 所示。它将应用程序从操作系统,网络传输和低级数据格式的详细信息中抽象出来,以接口定义语言模式提供 了支持多种编程语言 API,从而使应用在不同的操作系统、编程语言和处理器体系架构之间交换信息。DDS 中间件管理了数据格式、发现、连接、可靠性、协议、传输选择、QoS、安全性等底层细节。
![](https://img-blog.csdnimg.cn/2c8b20fbcedc472fa9fd539ee7318778.png)
图4.5-12 DDS架构
随着 SOA 在汽车领域的发展和运用,面向服务的通信中间件 SOME/IP 标准协议被引入到基础软件架构标准中。随着基础软件软硬解耦、软软解耦的发展,应用和服务之间除了服务能力的提供,还出现数据共享的需求。DDS 正是以数据为中心的通信中间件,用 Topic 为单元实现数据的共享,按照用户定义的方式存储、发布和订阅数据,支持运行在不同系统上,不同开发语言的应用可以分布式的互相收发数据。
2. 概念介绍
DDS 在软件框架中的模型如图 4.5-13,图 4.5-14 所示。DDS 通信的要素包括域(Domain)、域参与者(Domain Participant)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)、数据写入者
(Data Writer)、数据读取者(Data Reader)。
![](https://img-blog.csdnimg.cn/85858a00e7df476791fc3a1f71fa494c.png)
图4.5-13 DDS软件框架模型
![](https://img-blog.csdnimg.cn/234d1e65a4a54646bf6cc930be54ff02.png)
图4.5-14 DDS软件框架模型
DCPS(Data-Centric Publish-Subscribe )模型中的 4 个基础的概念:
-
Publisher :它是负责创建和配置其实现的 DataWriters 的 DCPS 实体。DataWriter 是负责实际发布消息的实体。每个 DataWriter 都有一个分配的 Topic,在该 Topic 下发布消息。
-
Subscriber:它负责接收在其订阅的 Topic 下发布的数据。它为一个或多个 DataReader 对象提供服务,这些对象负责将新数据的可用性传达给应用程序。
-
Topic:它是绑定发布和订阅的实体,在 DDS 域中是唯一的。通过 TopicDescription,它允许发布和订阅数据类型的统一。
-
Domain :它用于链接所有发布者和订阅者,属于一个或多个应用程序,它们在不同主题下交换数据。这些参与域的单个应用程序称为 DomainParticipant,DDS 域由 Domain ID 标识。Domain- Participant 通过定义 Domain ID 以指定它所属的 DDS 域。具有不同 Domain ID 的两个 Do- mainParticipants 不知道彼此在网络中的存在。因此,可以创建多个通信通道。这适用于涉及多个 DDS 应用程序的场景,它们各自的 DomainParticipants 相互通信,但这些应用程序不得干扰。DomainParticipant 充当其他 DCPS 实体的容器,充当发布者、订阅者和主题实体的工厂,并在域中提供管理服务。
DDS 支持 22 种 QoS(Quality of service),如图 4.5-15 所示,QoS 为数据通信提供更好的服务能力,确保通信的可靠性、安全性。
![](https://img-blog.csdnimg.cn/5315b86fc96748328035bbb94bbd5209.png)
图4.5-15 DDS支持的QoS
3. 应用场景及价值意义
· DDS 已经广泛应用于不同领域,表 4.5-1 列出了一些典型的 DDS 应用案例。
表 4.5-1 DDS 应用案例
![](https://img-blog.csdnimg.cn/1a1c9c5d465d40ecb7cdd74f067dcf0f.png)
![](https://img-blog.csdnimg.cn/1445d32b0213424d812a57f620373c55.png)
![](https://img-blog.csdnimg.cn/98d52b41c9254344bc990446ec1665c9.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)