首页 > 其他分享 >[FASTDDS]01-FastDDS简介

[FASTDDS]01-FastDDS简介

时间:2023-04-17 23:06:37浏览次数:52  
标签:订阅 01 DDS FASTDDS 实体 RTPS 发布者 数据 FastDDS

01-FastDDS简介

本节介绍DDS和RTPS的概念。

本文章来源于fast dds官网中的 What is DDSWhat is RTPS 章节

1.1 什么是DDS

Data Disrubution Service(DDS)——数据分发服务——是一个用来进行分布式软件应用通信的协议。它描述了数据提供者和数据消费者之间的通信API以及通信语义。

DDS是一个以数据为中心的发布、订阅模型(Data-Centric Publish Subscribe),因此在其实现中定义了三个关键的应用实体:

  • 发布者实体(Publication entities)——定义信息生成对象以及属性
  • 订阅者实体(Subscription entities)——定义信息消费对象以及属性
  • 配置实体(configration entities)——定义了以topic形式传输的信息类型,以及创建发布者和订阅者的服务质量(Quality of Service),以保证上述实体的正确表现。DDS使用QoS来定义DDS实体的行为特征,QoS有其单独的QoS策略。

1.1.1 DCPS概念模型

DCPS模型中,为通信应用系统的开发定义了四个基本元素:

  • 发布者(Publisher):它是负责创建和配置它所实现的DataWriter的实体。DataWriter是负责实际的消息发布的实体。每个DataWriter都会被赋予一个topic,以进行消息的发布。
  • 订阅者(Subscriber):它是负责接收它所订阅的topic的实体。它为一个或多个DataReader对象提供服务,这些对象负责传达应用程序的新数据。
  • 话题(Topic):它是绑定发布者和订阅者的实体,并且它在DDS域中是唯一的。通过TopicDescription,它允许发布和订阅的数据保持一致。
  • 域(Domain):这是一个连接在一个或多个应用之间的链接所有发布者和订阅者,使他们可以通过不同的topic交换数据的概念。这些作为domain的独立应用参与者叫做DomainParticipantDDS Domain通过Domain ID进行标识。DomainParticipant定义domain ID来指定它属于哪个DDS Domain。具有不同ID的两个DomainParticipants不知道彼此在网络中的存在。DomainParticipant充当其他 DCPS的实体,扮演发布者、订阅者和主题的实体工厂容器,并提供域中的管理服务。

1.2 什么是RTPS

为提供DDS应用而开发的实时发布订阅(RTPS)协议,是一个基于例如UDP/IP的最佳传输的发布者——订阅者通信中间件。此外,Fast-DDS还提供支持TCP和共享内存(SHM)的传输方式。它被设计为同时支持单播和多播通信。

在继承于DDSRTPS顶部可以找到Domain,它被定义为一个单独的通信平面。多个domain可以同时独立共存。domain可以包含任意个数的RTPS参与者,既能够发送数据,又可以接收数据。为此,每个RTPS参与者都有以下端点:

  • RTPSWriter:用于发送数据的端点
  • RTPSReader:用于接收数据的端点

每个RTPS参与者可以拥有任意多个的RTPSWriter和任意多个的RTPSReader

image.png

DDS围绕TOPICS进行通信。它定义并标记要交换的数据。TOPICS不属于任何特定的参与者。相反,参与者在topics之下,通过RTPSWritersRTPSReaders进行数据的读写。通信单元被称为Change,它表示在topic之下的数据更新。RTPSWritersRTPSReaders在历史中注册这些变更,该变更是一种用于缓存最近更改的数据结构。

Fast DDS中,当你通过RTPSWriter发布数据时,默认的配置行为如下:

  • 变更记录被添加到RTPSReader的历史缓存中
  • RTPSWriter将数据变更发送给它所知道的任何RTPSReader
  • RTPSReader接收到数据后将使用新的数据更新它的历史缓存

通过选择不同的Qos,可以决定历史缓存如何进行管理。

标签:订阅,01,DDS,FASTDDS,实体,RTPS,发布者,数据,FastDDS
From: https://blog.51cto.com/u_6650004/6196383

相关文章

  • 为什么2017年之后操作系统仍将扮演重要角色?
    操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。在可预期的未来,操作系统仍将继续......
  • 为什么2017年之后操作系统仍将扮演重要角色?
    操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。在可预期的未来,操作系统仍将继续......
  • 为什么2017年之后操作系统仍将扮演重要角色?
    操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。在可预期的未来,操作系统仍将继续......
  • 团体天梯练习 L2-017 人以群分
    L2-017人以群分社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数\(N\)(\(2≤......
  • 01-Object、常用API
    01-Object类、常用APIObject类概述在Java中,Object类是所有类的根类,它位于Java类继承体系的最顶层。所有的Java类都直接或间接地继承了Object类,因此Object类中包含了一些在Java编程中非常常用的方法。常用方法以下是一些Object类中常用的方法:equals(Objectobj)publicbool......
  • ms17-010
    用nmap的漏洞扫描模式nmap--script=vuln192.168.178.128可以发现,靶机上扫到了4个漏洞,其中包括了MS17-010。 打开metasploit(msf很有意思的是,每次打开都会显示不同的画面。)msfconsole 搜索ms17-010相关模块,可以看到一共找到了6个不同的模块。(选项:0-5)searchms17-010......
  • MySQL中间件mycat-01
    @目录mycat基础概念Mycat安装部署mycat基础概念1、什么是MyCat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新......
  • zynq7010,petalinux, USB-wifi测试
    zynq7010,基于linux验证USB-wifi功能1.相关电路图,这里貌似复位键默认上电开启的,引脚并没有印出来需要注意的地方注意芯片型号"USB3320",这个在linux内核中如果USB配置正确的话是会被打印出来的usbcore:registerednewinterfacedriverusb-storagechipidea-us......
  • 人月神话读后感01
    最近读了一本书《人月神话》,这本书是软件工程类的一本经典著作。阅读这本书的第一感受就是感觉这本书不像是一种和学习相关的书,更像是用很多形象的比喻,阐述项目管理当中的一些问题,让读者能够很轻松,明白的去阅读。在软件领域,很少能有像《人月神话》-样具有深远影响力和畅销不衰的......
  • 2019-第十届蓝桥杯大赛个人赛省赛(软件类)真题 C大学B组
    返回目录 题目一览:A.数列求值B.迷宫C.完全二叉树的权值D.组队E.年号字串F.数的分解G.特别数的和H.等差数列I.后缀表达式J.灵能传输  A.数列求值   B.迷宫   C.完全二叉树的权值   D.组队   E.年号字串   F.数的分解   ......