一、先了解下DDS
介绍fastdds前先了解下dds,dds是用于分布式软件应用通信的数据中心的通信协议,主要定义了通信应用程序的接口API和通信语义。同时DDS又是一个以数据为中心的发布订阅模型,因此定义了三个关键实体:发布者、订阅者、话题;
OMG组织定义了DDS通信协议和通信api,但是各个厂商对DDS协议进行了编译语言的实现,从而有了各种DDS的通信中间件;类似的还有opendds这些;
有兴趣的同学可以去OMG的官网看下原版协议
https://www.omg.org/
二、fastdds简介
前面已经说过fastdds仅仅是对DDS协议的一种实现;fastdds实现DDS协议后主要对外提供三种使用:
- DDS的API接口
- dds-gen用于生成学序列化和反序列化的java工具
- RTPS协议的API接口
这里有一个新名词RTPS(实时发布订阅协议),在下图fastdds的整个架构我们可以看出dds层处于最上层,其核心层是和RTPS进行通信的,所以实际上RTPS已经能够实现订阅发布的功能,所有fastdds同样对外提供RTPS的API接口供原有熟悉rtps协议的人使用。
对于做应用开发的同学来说,和我们相关的是应用层和dds层的API接口,可以通过fastdds的官网熟悉fastdds已经实现的dds接口和常用定义
https://fast-dds.docs.eprosima.com/en/latest/index.html