通信中间件 Fast DDS 基础概念简述与通信示例

从事汽车软件开发,通信中间件绕不开,当前最火热的无非有 2 种:Some/IP 和 DDS。DDS 是一种分布式通信标准,有很多商业和开源的实现,Fast DDS 是其中的一种。它在 ROS2 中被应用,而 Apollo 中的 CyberRT 框架中也有它的身影。

讲 Fast DDS 之前先讲什么是 DDS。

1. 什么是 DDS

DDS 是 OMG 组织发布的一种中间件协议和 API 标准,它将系统的组件集成在一起,提供业务和任务关键型物联网 (IoT) 应用程序所需的低延迟数据连接、极高的可靠性和可扩展架构。

DDS(Data Distribution Service,数据分发服务) 是一种以数据为中心的通信协议,用于分布式软件应用程序通信。

它描述了支持 数据提供者(Data Providers)数据消费者(Data Consumers) 之间通信的通信应用程序编程接口 (API) 和通信语义。

要学习 DDS 就不能忽略它的模型:DCPS(以数据为中心的发布订阅模型)。

DCPS 有 3 个关键实体:

  1. publication entities: 定义消息生成对象及相关属性
  2. subscription entities:定义消息消费对象及相关属性
  3. configuration entities:定义传输相关的属性如 Topic 类型,通信的 QoS(服务质量)。

QoS 是一个非常重要的概念,DDS 使用 QoS 来定义 DDS 实体的行为特征。 QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成。

2. 什么是 Fast-DDS

DDS 是一套标准,它有很多实现,有商业的,也有开源的。

商业:RTI
开源: Cyclone DDS、Fast-DDS

所以,Fast DDS 是一种开源的 DDS 标准实现,它由 ePromise 公司发布并维护。

3. 什么是 DCPS

先看看 Fast DDS 官方文档中的一张图。

在这里插入图片描述

DDS 是以数据为中心的通信模型,那么这个数据中心是什么呢?

我个人的理解是以 Topic 为代表的消息对象就是 DDS 中的数据中心。

通过 Topic 的纽带关系,可以将数据生成为数据消费对象连接起来,并且可以通过 QoS 执行通信服务质量策略。

在 DCPS 模型中,有 4 个基础的概念:

  1. Publisher:它是负责创建和配置其实现的 DataWriters 的 DCPS 实体。 DataWriter 是负责实际发布消息的实体。每个 DataWriter 都有一个分配的 Topic,在该 Topic 下发布消息。
  2. Subscriber:它负责接收在其订阅的 Topic下发布的数据。它为一个或多个 DataReader 对象提供服务,这些对象负责将新数据的可用性传达给应用程序。
  3. Topic(话题):它是绑定发布和订阅的实体。它在 DDS 域中是唯一的。通过TopicDescription&#x
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值