【发布时间】:2020-04-04 07:40:48
【问题描述】:
我正在为我的图像处理管道寻找一个框架。 在我的搜索过程中,我看到很多 DDS 和 RTPS 术语在这里和那里可以互换使用。
它们是一样的吗?如果是,那么为什么有两个不同的术语,如果不是,那么有什么区别?
【问题讨论】:
标签: publish-subscribe data-distribution-service
我正在为我的图像处理管道寻找一个框架。 在我的搜索过程中,我看到很多 DDS 和 RTPS 术语在这里和那里可以互换使用。
它们是一样的吗?如果是,那么为什么有两个不同的术语,如果不是,那么有什么区别?
【问题讨论】:
标签: publish-subscribe data-distribution-service
它们是一样的吗?
DDS 和 RTPS 不是一回事。
如果没有,那有什么区别?
简而言之,RTPS 是一种有线协议,DDS 系统经常利用它来实现其进程间(网络)通信。您可以将它们视为堆栈中的两层,DDS 位于 RTPS 之上。
RTPS 代表实时发布订阅。它现在更正式地称为OMG DDSI-RTPS,其中 DDSI 代表 DDS 互操作性。它由对象管理组 (OMG) 标准化,旨在为 DDS 实现提供互操作性有线协议。
DDS 代表数据分发服务。它是一个基于发布-订阅范式的以数据为中心的连接框架。 OMG DDS 规范描述了 API 以及 DDS 基础设施的预期行为。它为用户提供高级数据管理功能,包括综合类型系统、多种通信模式和不同类型的服务质量,从而简化了构建分布式(实时)系统的任务。
虽然不是必需的,但 DDS 实现在后台利用 DDSI-RTPS 有线协议来实现所需的进程间(网络)通信是很常见的。 DDS 用户不必了解 RTPS 的内部工作原理,尽管可以通过使用带有 RTPS 解析器的 Wireshark 来了解一下。如果要求包括在单个系统中组合使用不同 DDS 实现构建的应用程序,那么 RTPS 支持是必须的。
也可以将 RTPS 本身用作协议,而无需在其之上实现完整的 DDS,也无需使用标准化的 API。这并没有提供我前面提到的许多 DDS 功能,而只提供了较低级别的发布-订阅功能。
【讨论】: