Java调用OpenDDS过程中踩了很多坑,记录一下。
提纲
1、DDS简介
2、DDS协议的实现产品
3、OpenDDS安装过程
1、DDS简介
DDS指的是Data Distribution Service,也即数据分发服务,是OMG(Object Management Group,对象管理组织)定义的一个数据传输协议。DDS采用发布-订阅的方式来在两个通信对象之间传输数据,也就是说它基于 DCPS(Data-Centric Publish-Subscribe, 以数据为中心的发布订阅)模型。
DDS协议定义了一套QoS(Quality of Service,服务质量)进行数据传输质量的控制。
DDS看上去和kafka等mq系统、mqtt协议等非常类似,但是仔细研究之后发现它和kafka、mqtt有一个核心的区别,这个核心区别用以下的图来展示更为清晰:
从这张图中可以看到,dds中发布者和订阅者只是通过DDS去发现彼此,当订阅者发现了自己需要的发布者后,传输数据的时候就是他们两个之间直接传输数据,而在kafka或者mqtt中不仅是订阅者、发布者彼此发现对方通过kafka,而且发布者和订阅者之间传输数据也是通过kafka或者mqtt进行的。这一点是他们之间的关键区别,其他方面在概念上都非常类似。