OpenDDS 是对象管理组织规范“实时系统数据分发服务”(DDS) 以及其他一些相关规范的开源 C++ 实现。这些标准定义了一组用于开发基于发布-订阅和分布式缓存模型的分布式应用程序的接口和协议。尽管OpenDDS本身是用C++开发的,但提供了Java绑定,以便Java应用程序可以使用OpenDDS。 OpenDDS 还包括对 DDS 安全性和 XTypes 规范的支持。
OpenDDS 构建在 ACE 抽象层之上,提供平台可移植性。 OpenDDS 还利用 TAO 的 IDL 编译功能和 OpenDDS DCPS 信息存储库。
OpenDDS 的主要开发是由位于圣路易斯和菲尼克斯的对象计算公司完成的。它是在类似于 ACE、TAO 和 MPC 的慷慨许可条款下发布的。有关详细信息,请参阅LICENSE
文件。
目录:
OpenDDS 开发人员指南可在 https://opendds.readthedocs.io/en/latest-release 上获取。
对于想要为 OpenDDS 做出贡献的开发者,请阅读开发指南。
其他文档可以在docs
目录中找到。
如需商业支持,请参阅 https://opendds.org/support.html。
有关 OpenDDS 的问题应直接访问 GitHub 讨论。
如果您想提交错误报告:
tests/DCPS/MyExample
( MyExample
是占位符。)run_test.pl
。请务必记录选项。请参阅tests/DCPS/HelloWorld/run_test.pl
获取灵感。README.rst
文件,该文件提供示例及其说明的问题的高级概述。应该可以使用run_test.pl
构建并运行示例,如 Windows 和 Linux 快速入门中所示。如果问题出在示例中,那么 GitHub 的 Pull Request 界面将允许人们讨论、评论并提出更改以使示例正常运行。如果问题出在 OpenDDS 上,那么该示例是一个新的测试用例。
此版本的 OpenDDS 基于 DDS 规范正式/2015-04-10(版本 1.4)。它具有以下传输协议:
RTPS(互操作性)功能基于 DDS-RTPS 规范正式/2019-04-03(版本 2.3)。有关 RTPS 的更多详细信息,请参阅 OpenDDS 开发人员指南和文件 docs/design/RTPS。
有关 OpenDDS 符合 DDS 规范的信息,请参阅开发人员指南。如果您想贡献一项功能或赞助开发人员添加一项功能,请参阅上面的支持部分以获取联系信息。
这些只是必需的依赖项。有关依赖项的完整详细列表(包括可选依赖项),请参阅 https://opendds.readthedocs.io/en/latest-release/devguide/building/dependency.html。
OpenDDS 需要 TAO 来进行 IDL 编译以及与 DCPSInfoRepo 的交互。 ACE 也是必需的,但它始终包含在 TAO 中。如果您将使用 OpenDDS 的configure
脚本,则无需先下载 TAO—— configure
脚本将为您下载它。
Perl 用于配置脚本,运行此源代码树中包含的自动化测试和示例,并生成 Makefile 或 Visual Studio 项目文件。
在 Windows 上,我们建议使用 Strawberry Perl。
此版本的 OpenDDS 已在以下平台上进行了测试:
Linux家族:
Windows系列:
嵌入式/移动/物联网:
我们已经为 VxWorks 6.9、7 和 21.03 构建了 OpenDDS,并运行了基本系统和性能测试(但不是整个回归测试套件)。请参阅 OpenDDS 支持页面,了解有关 VxWorks 上 ACE、TAO 和 OpenDDS 支持的更多信息。在此处下载 ACE、TAO 和 OpenDDS 的 VxWorks RPM 软件包。
此版本的 OpenDDS 已使用以下编译器进行了测试:
有关构建和安装说明,请参阅 https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html
有关如何使用预构建的 docker 映像,请参阅 Docker 快速入门。