上一篇文章讲了什么是DDS,以及一些技术特点和openDDS下载,今天继续科普下DDS技术特点和其他版本的实现.

DDS

DDS采用订阅/发布体系结构,以数据为中心,也就是通过订阅/发布这个结构来实现消息(数据)的交换。

从通信角度考虑,其实,就是P/S通信模式。

P(Publish)是发布者,S(Subscribe)是订阅者.

订阅者订阅发布者提供的某些服务后,P与S间就存在了通信关系。P发布了相应的消息后,订阅者便可以收到这些消息(数据)。

RTPS

RTPS指Real Time Publish/Subscribe,它继承自P/S模型。

简单来说,相比P/S,RTPS多出了QoS属性(Quality of Service)、将发布/订阅模块化等等优点。

因此,OMG将RTPS标准化为:DDS的实施互操作协议。

什么是OMG呢?

OMG是一个组织,全名为Object Management Group。DDS就是OMG这个组织规定的规范。

DCPS

OMG将RPTS重定义为DCPS,DDS采用DCPS通信机制。

DCPS主要组成有:

  • Domain : 域。参与者只有在同一个域内,才可以通信。不同域间,不可通信。
  • DomainParticipant: 域参与者。一个域的入口点。
  • Topic:主题。只有使用相同主题(主题名)的P和S,才能够通信。
  • DataWriter:数据写入者,负责向Publisher写入消息。
  • Publisher:发布者,负责发布DataWriter写入的消息。
  • Subscriber:订阅者,负责接收已订阅的消息。
  • DataReader数据读取写,负责处理从Subscriber接收的消息。

DLRL与DCPS

DDS规范定义了两类Interfaces结构:DLRL与DCPS

DLRL

DLRL(A Data Local Reconstruction Layer)更高的抽象接口层,隐藏细节实现。

其实,Data Local Reconstruction可以理解为将App与DDS直接的数据,根据应用环境重构为需要的格式。

DCPS

DDS核心,数据分布基础架构。

OpenDDS

OpenDDS是用于实时系统规范v1.4的OMG数据分发服务(DDS)的开源实现和实时发布订阅有线协议DDS互操作性有线协议规范(DDSI-RTPS)v2.3.

OpenDDS还实现了DDS安全规范v1.1。

Fast DDS

eProsima Fast DDS是一个独立的 Cpp 中间件实现,提供OMG DDS 1.4和OMG RTPS 2.2可互操作的有线协议标准。

eProsima Fast DDS 速度惊人,在 Windows 和 Linux 中都击败了ZeroMQ和其他 DDS 中间件解决方案等替代方案。

该框架使用接口定义语言 (IDL) 从主题定义生成发布/订阅代码,允许开发人员专注于他的应用程序逻辑,而无需担心网络细节。

eProsima Fast DDS 是一款免费和开源软件(Apache License 2.0),具有多种功能和工具,以及商业支持选项。


DDS、openDDS和fast DDS介绍相关推荐

  1. 深入浅出 Fast DDS网络协议(入门篇)

    如果你是机器人领域的学者,那一定听说过ROS1和ROS2,但这两个有什么区别呢? ROS1作为一个通信中间件,在两两节点建立TCP/UDP连接之前,通过发布者和订阅者通过xmlRPC和master进行 ...

  2. Fast DDS入门一、Fast DDS介绍

    Fast DDS入门二.Fast DDS在Windows平台的编译安装 1 前言 Fast DDS是DDS(数据分发服务)规范的C++实现,DDS是由对象管理组(OMG)定义的协议.Fast DDS库 ...

  3. Fast DDS入门二、Fast DDS在Windows平台的编译安装

    Fast DDS入门五.在Windows平台创建一个简单的Fast DDS示例程序 1 Fast DDS动态库的编译安装 本节提供了在Windows环境中从源代码安装Fast DDS的说明.将安装以下 ...

  4. eProsima Fast DDS(1)

    eProsima Fast DDS (1) 简介 eProsima Fast DDS是 DDS(数据分发服务)规范的 C++ 实现,该规范由对象管理组 (OMG)定义.eProsima Fast DD ...

  5. Windows下运行Fast DDS示例程序(包含.idl文件的使用方法)

    本文默认以二进制方式安装好了 Fast DDS(安装包可以从官网获取,建议使用下载工具提速).运行环境是Windows. 本文介绍了两种方法,一种是直接编译运行,另一种是从.idl文件编译运行. 准备 ...

  6. FastDDS Getting Started (1) 运行HelloWorldExample并创建Fast DDS publisher

    在官网文档中的(Getting Started)一章中,解释了DDS和RTPS的基本概念,并通过一个HelloWorld的例子详细解释了如何搭建一个subscriber和一个publisher的app ...

  7. Fast DDS和Cyclone DDS对比性能测试

    Fast DDS vs Cyclone DDS Performance 不同软件供应商提供不同的DDS实现,有必要在它们之间进行性能的比较.在本文中,eProsima对Fast DDS和Eclipse ...

  8. 数据分发服务 (DDS)及Fast DDS环境搭建

    1. 数据分发服务 (DDS) 数据分发服务 (DDS)是一种以 数据为中心的通信协议,用于分布式软件应用程序通信.它描述了支持数据提供者和数据消费者之间通信的通信应用程序编程接口 (API) 和通信 ...

  9. What is DDS? 什么是DDS?(Data Distribute Service,数据分发服务)

    What is DDS? 什么是DDS?(Data Distribute Service,数据分发服务) 关键字:数据分发服务 DDS The Proven Data Connectivity Sta ...

最新文章

  1. MPLS LDP随堂笔记1
  2. hadoop8088端口查看历史打不开,但是在虚拟机上可以打开的解决办法
  3. 美团面试动态规划——整数拆分
  4. Web前端之移动端课程开发之06.bootstrap
  5. Spring Boot----监控管理
  6. java 一对一的关系_与休眠一对一关系 - java
  7. redis设置key的有效期
  8. 《用python写网络爬虫》 编写第一个网络爬虫
  9. 为不干活的员工辩护,要小心
  10. Vue-cli3项目案例
  11. Modelsim下载,亲测有效
  12. 实战演习(九)——用python分析科比生涯数据
  13. 1matlab像素值及统计
  14. AI学习 Day06 内置函数
  15. redis--ServiceStack
  16. 批量自动下单(拼多多)
  17. 智能时代:大数据与人工智能
  18. 完整的系统帮助类Utils
  19. C语言关于有符号和无符号变量相互赋值的探讨
  20. WEBGUI中上一页(PgUp/Page Up)和下一页(PgDn/Page Down)键不起效

热门文章

  1. 统计推断——假设检验——方差分析
  2. java发现城市_java实现简单注册选择所在城市
  3. 基于RBF神经网络的数据预测
  4. C语言 —— float单精度浮点型与double双精度浮点型的使用
  5. hadoop(hadoop是什么)
  6. 可视化损失函数空间三维图
  7. Linux 知:coredump
  8. 2. vibrate-arch
  9. Android Studio生成.jks文件
  10. STM32之system_stm32f4xx.c的理解