eProsima Fast DDS是 DDS(数据分发服务)规范的 C++ 实现,该规范由对象管理组 (OMG)定义。eProsima Fast DDS库提供应用程序编程接口 (API) 和通信协议,用于部署以数据为中心的发布者-订阅者 (DCPS) 模型,目的是在实时系统之间建立高效可靠的信息分发。 eProsima 快速 DDS在资源处理方面是可预测的、可扩展的、灵活的和高效的。为了满足这些要求,它使用类型化接口并依赖于多对多分布式网络范式,该范式巧妙地允许通信的发布方和订阅方分离。 eProsima Fast DDS包括:
1.The DDS API implementation.
2.Fast DDS-Gen, a generation tool for bridging typed interfaces with the middleware implementation.
3.The underlying RTPS wire protocol implementation.
DDS 采用的通信模型是多对多的单向数据交换,其中产生数据的应用程序将其发布到属于使用数据的应用程序的订阅者的本地缓存。信息流由负责数据交换的实体之间建立的服务质量 (QoS) 策略进行管理。
作为以数据为中心的模型,DDS 建立在所有感兴趣的应用程序都可以访问的“全局数据空间”的概念之上。想要提供信息的应用程序声明其意图成为发布者,而想要访问部分数据空间的应用程序则声明其意图成为订阅者。每次发布者向该空间发布新数据时,中间件都会将信息传播给所有感兴趣的订阅者。
通信跨域发生,即连接所有能够相互通信的分布式应用程序的孤立抽象平面。只有属于同一域的实体才能交互,订阅数据的实体与发布数据的实体之间的匹配是由主题介导的。主题是明确的标识符,它将在域中唯一的名称与数据类型和一组附加的特定于数据的 QoS 相关联。
只有属于同一域的实体才能通过匹配主题发现彼此,从而在发布者和订阅者之间交换数据
依赖接口意味着需要一种生成工具,能够将 IDL 文件转换成 C++ 代码,并且依赖于java,需要安装java,后面会介绍Java的安装
RTPS 是 Real-Time Publish Subscribe 的缩写,它是 DDS 的通信中间件,是发布-订阅模式,通信能力强大,支持 UDP/IP、TCP 及共享内存。RTPS 中定义了一个 Domain 的概念,它定义了一个单独的通信平面。几个域可以同时独立地共存。一个域包含任意数量的 RTPSParticipant,即能够发送和接收数据的元素
