The Real-time Publish-Subscribe Protocol (RTPS) DDS Interoperability Wire Protocol Specification,Version 2.2,September 2014
本规范是对OMG RFP“数据分发服务互操作性网络协议(Data-Distribution Service Interoperability Wire Protocol)”(mars / 2005-06-13)的响应。它定义了DDS的互操作性协议。其目的和范围是确保基于不同供应商的DDS实现的应用程序可以互操作。
实现必须完全遵循本文8.4.2章的一致性描述。
本文所引用的以下规范性文件,构成本规范的条款。凡是注日期的引用文件,其随后所有的修改单(或修改版)均不适用于本标准。
-《DDS Specification v1.1 (OMG document formal/2005-12-04)》
规范性参考文献中给出的术语和定义适用于本规范。
本文对OMG的规范不做任何修改,而是作为其补充。
(见http://www.omg.org/cgi-bin/doc?formal/05-12-04)。
本文定义了DDS协同协议。不熟悉DDS的读者建议先阅读DDS规范。
7.1介绍一节高度概述了RTPS(Real-Time Publish-Subscribe),简要列出本文的机构。后续章节将更加详细地描述RTPS的更多细节。
本文描述了PIM((Platform Independent Model)和PSM (Platform Specific Model)以满足不同读者的需求:
最近采用的数据分发服务(DDS)规范定义了应用程序级接口和DDS的行为,该服务支持实时系统中以数据为中心的发布订阅(DCPS)。DDS规范使用模型驱动架构(MDA)方法来精确描述以数据为中心的通信模型:
DDS最大程度地采用基于类型的接口(即考虑实际的数据类型进行设计的接口)。基于类型的接口主要有以下优点:
DDS规范还包括特定于平台的IDL映射,因此使用DDS的应用程序只需重新编译即可在DDS实现之间切换。通过这种方式DDS解决了“应用程序可移植性”问题。
DDS规范没有提出中间件通过TCP/UDP/IP等传输方式交换消息的协议,因此除非提供特定于供应商的“网桥”,否则DDS的不同实现将不会实现彼此之间的互操作。这种情况类似于其他消息传递的API标准(如JMS)。
随着DDS在大型分布式系统中的日益普及,需要定义标准的“有线协议”,允许来自多个供应商的DDS实现进行互操作。所需的“DDS有线协议”应该能够利用DDS可配置的QoS设置来优化其对底层传输能力的使用。特别是所需的有线协议必须能够利用多播,尽力而为和许多DDS QoS的无连接的特性。
在网络通信中,与许多其他工程领域一样,事实上“一种尺寸并不适合所有情况”。工程设计是关于做出正确的权衡取舍,这些权衡必须平衡相互冲突的需求,如通用性,易用性,功能丰富性,性能,内存大小和使用,可扩展性,确定性和健壮性。这些权衡取决于信息流的类型(例如,周期性与突发性,基于状态与基于事件,一对多与请求应答,尽力而为与可靠,小数据值与大文件等),以及应用程序和执行平台施加的约束。因此,出现了许多成功的协议,例如HTTP,SOAP,FTP,DHCP,DCE,RTP,DCOM和CORBA。这些协议中的每一个都填补了一项空白,为特定目的或应用领域提供了良好的功能。
DDS的基本通信模型是单向数据交换的一种,其中发布数据的应用程序将相关数据更新“推送”到订阅者的本地高速缓存。此信息流由DataWriter和DataReader之间隐式建立的QoS合约进行管理。DataWriter在声明其发布数据的意图时指定其QoS合约,DataReader在声明其订阅数据的意图时指定它的QoS合约。通信模式通常包括多对多样式配置。部署DDS技术的应用程序主要关注的是以最小的开销和有效的方式分发信息。另一个重要的需求是以强大的容错方式扩展到数百或数千个订阅者。
DDS规范规定了必须要有内置发现服务,允许发布者动态发现订阅者,反之亦然,并且无需联系任何名称服务器即可连续执行此任务。
DDS规范还规定DDS实现不应引入任何单点故障。因此协议不能依赖于集中式名称服务器或集中式信息代理。
部署DDS的应用程序的大规模,松耦合,动态特性以及适应新兴传输方式的需求要求数据定义和协议具有一定的灵活性,以便每个都可以发展进化,同时保持与已部署系统的向下兼容性。
实时发布订阅(RTPS)协议源于工业自动化,实际上已被IEC批准为实时工业以太网套件IEC-PAS-62030的一部分。它是一种经过现场验证的技术,目前已在全球数千个工业设备中部署。
RTPS专门用于支持数据分发系统的独特要求。作为DDS所针对的应用领域之一,工业自动化社区定义了与DDS匹配的标准发布订阅线协议的需求。在底层的行为架构和RTPS的特征方面,DDS和RTPS有线协议之间存在紧密的协同作用。
RTPS协议旨在能够在多播和无连接的尽力传输方式(例如UDP/IP)上运行。 RTPS协议的主要特点包括:
上述特性使RTPS成为DDS有线协议的绝佳搭档。鉴于其发布订阅机制的根源,RTPS专门用于满足DDS应用程序域提出的需求类型,这并不是巧合。
此规范定义了消息格式,解释和使用场景,它们是使用RTPS协议的应用程序交换传输所有消息的基础。