OpenDDS是分布式应用程序的实时通信网络中间件, 主要用于实时数据分发服务。是分布式系统实时应用程序的网络中间件,它遵循对象管理组织(OMG)中实时系统数据分发服务DDS的标准,并且是全球DDS标准最可靠、最灵活和最高性能的实现。
DDS是位于网络协议栈最上层的软件,它屏蔽底层网络代码,代之以通用的、基于标准的应用程序接口(API)。通过API提供易于理解、基于发布/订阅的通讯模式,这种模式定义了两类基本角色:
- 发布者:创建数据,给数据命名(称为主题Topic),并将数据分发给感兴趣的订阅者
- 订阅者:注册感兴趣的主题,并在主题数据有变化时接收数据
任意一个节点可以成为发布者、订阅者或两者皆是,并可拥有多个主题。DDS处理所有的网络输入输出,管理可靠和透明的传输,如消息寻址、数据组合和分散、流控制、重试等等。所有这些都不需要应用程序干预,大大降低了用户的工作量,用户可以把精力花在应用程序的设计上。
常见的设计模式
DDS经常被用于三种设计和应用环境,包括:
- 数据苛刻性场合的应用
- 多个数据源需要连接到多个数据接收点的应用程序
- 系统结构动态需要发生变化的应用程序
-
数据苛刻性场合
数据关键的应用就是对应用来说时间基线、可靠性、可获得性和性能都非常重要,但是由于物理定律的存在,设计者必须在这些需求中有所取舍。