OpenDDS 是一个消息发布和订阅通信模型框架;简单来说,就是消息发布者,发布一个消息,订阅者能够收到这个消息
主题:
•
消息通过
TOPIC
来定义;
•
每个预先定义的消息格式为一个
TOPIC
;
•
支持多个
TOPIC
的定义;
实例
•
单个
topic
的不同样本称之为实例;
•
一个
topic
可以有限数目的实例,通过
KEY
字段来区分;
Publish/Subscriber
•
消息的发布者称之为
Publisher;
•
消息的订阅者称之为
Subscriber;
•
绑定在同一个
TOPIC
下
;
DataWriter/DataReader
•
读写消息的接口称之为
Reader/Writer;
•
writer
、
reader
和
topic
是一一对应的
;
域
•
publish/writer/topic
三者存在的一个逻辑环境;
•
通过域
ID
来区分隔离,构造独立的空间;
•
可以通过不同的物理
IP
来构造物理环境;
•
一个域下支持多个
TOPIC
,以及对应的
writer/reader
;
域工厂
框架的代名词,支持多个域的工厂,物理域,逻辑域;
发现方式
•
publisher
、
writer
之间隔离者网络,可以通过
RTSP/TCP/UDP
不同的通信手段;
•
可以通过集中、组播、点对点的方式来发现服务
•
发布方和接收方可以互不关注;
QOS
•
对于双方的通信,可以通过配置
QOS
达到特殊的性能优化,比如心跳时间,重复识别策略,数据缓存策略;
•
更好的数据分发效率,通过优化
IO
和协议
;
优点
•
支持消息的序列化反序列;
•
支持通信信道的建立;
•
支持不同的发现方式;
•
支持不同的性能要求;
•
多个通信信道并存
•
支持接收方的随时加入
•
支持历史数据的缓存
适用场景:大型分布式松耦合
•
多通道通信;
•
可靠发布;
•
数据时延要求:确定性
•
数据带宽要求;
•
快速适应环境变化
•
网络结构复杂