开放式 DDS 与 RTI DDS 软件
对象管理组 (OMG) 数据分发服务(DDS) 标准就是所谓的“开放标准”。这意味着该标准是公开可用的,并提供规范性参考以帮助保证一致性、可移植性和互操作性。开放标准与“开源”软件不同。开源软件是通过其源代码提供的计算机软件。开源软件可以共享、修改和分发,通常在开源许可下。 DDS 标准是一个开放标准,并且有可用的开放源代码实现。例如,OpenDDS 是由 OCI(Object Computing Inc.)管理的 DDS 的开源实现。还有许多可用的商业发行版,最受欢迎的是 RTI 的 Connext® DDS。
那么,在选择开源 DDS 解决方案还是商业解决方案时,您应该考虑什么?
开源 DDS 核心功能
在开源 DDS 和商业 DDS 之间做出决定时,重要的是确定您需要的 DDS 功能并将它们与您想要使用的 DDS 版本的可用功能进行比较。如果您不确定自己需要什么,从长远来看,完整的实现更有可能满足您的需求。例如,RTI Connext DDS 支持完整的 DDS API。
以下是 RTI Connext DDS 支持的一些标准 OMG DDS 功能,这些功能在开源发行版中并不常见:
- 语言支持 - Connext DDS 支持传统的 C++、C++03、C++11、Java、Ada、C# 和 .Net。例如,OpenDDS 仅支持传统的 C++。
- 呈现服务质量 (QoS) - 能够控制样本到达订阅者的顺序。
- 写入端内容过滤 - 在接收端使用更少的带宽和更少的 CPU 周期。
- 数据类型定义 - 以更灵活的方式定义数据类型,能够随着时间的推移而发展,而不会放弃 DDS 类型系统的可移植性、互操作性或表达能力。这称为可扩展类型。
- 请求/回复功能 - OMG 标准的一部分,为用户提供额外的消息传递范例以适应他们的用例。
- XML 应用语言规范支持 - 通过 XML 文件为用户提供 QoS 配置。
- 跨多个主题的连贯数据 - 这是通过具有演示访问范围的连贯集实现的。
以下是 RTI Connext DDS 支持的一些增强(非标准)功能,这些功能在开源发行版中并不常见,包括:
- 保证交付功能,包括“应用级”确认、虚拟 GUID(以支持冗余路由服务)、持久订阅、持久写入历史和协作数据写入。
- 将较小的数据包合并为一个较大的数据包,以提高吞吐量(批处理)。
- 从您的主题查询历史数据(主题查询)。
- 动态添加、删除和更改 IP 连接(IP 移动性)。
应用组件和服务
在考虑哪种解决方案最适合您时,重要的是要确定您需要的 DDS 核心之外的哪些支持,而您正在使用的 DDS 版本没有这些支持。您需要与网页交互吗?您想与关系数据库集成吗?开源 DDS 不提供的一些关键服务包括:
- 路由服务 - 在网络之间转发和转换数据。
- 记录和重放服务——高速记录数据。重播到实时或模拟系统。
- 数据库集成服务——将 DDS 数据存储到关系数据库中。使用 DDS 随时随地监控数据库更改。
- Web 集成服务 – 开发基于 Web 和基于浏览器的应用程序。仅使用 HTTP 命令读取和写入 DDS 数据。
- 持久性服务 – 永久存储数据,并在应用程序加入系统时提供这些数据。
- DDS 连接器脚本语言接口 - Connext DDS 与 Python、Javascript 和 Lua 脚本语言接口。
- 系统设计师 – 以图形方式设计和配置 Connext DDS 系统。
- Prototyper – DDS 系统的原型、练习和测试。
- Cloud Discovery Service – 在云中部署 DDS。
DDS 实现工具
您还需要确定哪些开发工具可用于您正在考虑的 DDS 实施。 DDS 经常用于可能非常复杂的大型互连系统中。拥有可用于调试这些系统的正确工具至关重要。 Connext DDS 拥有一套完整的工具,旨在满足我们客户的需求,包括:
- 管理控制台 – 查看正在运行的 DDS 应用程序并可视化数据。查看参与者、主题、作者和读者,包括 QOS 设置和数据类型。自动识别连接问题。
- 监控 – 获取有关 DDS 实体、流量和内部状态的详细信息。
- rtiddsspy – 用于查看正在发布的内容和正在订阅的内容的命令行实用程序。
- Excel 电子表格插件 – 从 Microsoft Excel 读取和写入 DDS。
- 堆分析工具 – 获取 DDS 堆使用情况的快照并快速识别任何内存泄漏。
DDS 安全
开源 DDS 发行版不直接包含任何安全支持。也就是说,它们不支持 DDS 安全标准,也没有任何现成的 TLS 或 DTLS 传输。 RTI Connext DDS 确实支持 DDS 安全标准,并且自 Connext DDS Secure 测试版于 2015 年首次发布以来已发布可用版本。 Connext DDS 还具有安全 WAN 传输,包括 TLS 和 DTLS 支持。详细了解我们的 RTI Connext DDS Secure 软件。
认证
您的应用程序是否需要某种形式的认证?认证软件既费时又费钱,而且涉及的代码越多,就越难做到。目前唯一的 DDS 认证版本是 RTI Connext DDS Cert。 Connext DDS Cert 支持 DDS 标准 API 的一个子集,并已通过 DO178C A 级认证。阅读有关 Connext DDS 证书的更多信息。
鲁棒性
在确定开源 DDS 是否合适时,最重要的因素可能是实现的稳健性。软件证明自己的最佳方式是在实际的客户应用中。有多少实际部署的系统正在使用您正在考虑的 DDS 实施?当一个实现被一遍又一遍地成功部署时,您就知道它可以胜任这项工作。目前,Connext DDS 已经在超过 100 万台设备中的 1000 多个不同项目中进行了现场测试、验证和使用。目前利用 Connext DDS 的一些复杂的关键任务应用程序包括:
- Grand Coulee Dam – 24x7 运行,30 万个数据值
- NASA KSC 发射控制 – 300K 点,400k 消息/秒
- Raytheon Zumwalt 驱逐舰 – 1500 个 DDS 应用程序,1000 万个可发布对
- 上海 PVG 机场地面控制 - 自 2015 年起在中国东南地区机场使用
Connext DDS 在实际应用中一次又一次地证明了自己。
其次,RTI 真正测试了 DDS。这包括广泛的自动化测试、严格的培训和审查以及广泛的问题跟踪和管理。此外,RTI IIoT 测试实验室是业界最大、最完整的实验室设施,具有:
- 240 核规模测试;运行 1000 个并发程序,10k 个端点
- 32 个高速至强 CPU 阵列
- 128 板微测试阵列
- 近 100 种不同类型的计算机
要问自己一个非常重要的问题是,您将产品委托给的 DDS 版本的质量如何?
平台支持
您打算使用的目标架构、操作系统和编译器是什么?您正在考虑的 DDS 实现是否支持您想要使用的语言?此外,新架构和操作系统版本获得支持的频率和速度如何?确保支持您要使用的平台非常重要。如果不支持,有哪些服务可以创建并支持该平台?
Connext DDS 支持业界最多的平台。请注意,如果对某个平台的支持不可用,可以重新构建开源 DDS 以提供所需的支持。开源 DDS 附带源代码和有关如何重建源代码的说明。 Connext DDS 还允许客户构建自己的库,但这主要用于测试目的。每当您构建自己的 DDS 库时,请注意这并不总是那么简单,您必须考虑已经完成了哪些测试。
成本
一些开源 DDS 实现可以免费下载。因此,从短期来看,它们的成本低于商业 DDS。但是,随着时间的推移,使用开源 DDS 的成本会增加。虽然开源 DDS 由开源社区支持,并且没有任何许可费或支持费,但您必须依赖社区支持或向另一家公司支付支持费用。因此,很可能由于缺少功能、需要额外的开发人员、增加的开发时间和额外的支持成本,开源 DDS 从长远来看将花费更多。上市时间对您来说有多重要?快速、可靠的支持有多重要?权衡商业 DDS 许可证的成本与工程师每年的负载成本。预先存钱值得吗?
上市时间
您打算多快使用每种 DDS 替代方案将产品推向市场?如果您想要使用的 DDS 实施不太完整——没有您需要的工具、支持或服务,或者只是没有按预期工作——这将如何影响您的上市时间?按时推出您的产品有多重要?
一般来说,商业 DDS 实现比开源版本功能更全、更健壮。这是因为他们有更多的工程师全职致力于开发和测试。例如,Connext DDS Professional 拥有超过 50 名全职开发工程师。这不包括 25 名全职支持工程师,或服务或培训工程师。
DDS 支持
了解在遇到问题时可以获得哪些支持至关重要。开源 DDS 确实通过在线用户组以及第三方付费提供支持。但是,您需要确定支持工程师是专门致力于此实施还是他们支持多种不同的产品(即,他们是否专注于您正在使用的产品?)。另外,如果您遇到严重问题,他们是否有升级政策?
RTI 了解连接软件是您应用程序的关键任务部分,并以应有的严肃态度对待客户支持。我们的支持工程师非常合格:他们是设计、调试和实施分布式实时和嵌入式系统的专家。通过在美国和欧洲设有支持中心,DDS 支持工程师几乎可以 24/7 全天候联系到。此外,DDS 支持工程师与开发工程资源位于同一地点,并可直接访问这些资源。当关键问题阻止您的项目进展时,让开发工程师提供帮助是必不可少的。
此外,RTI 在线提供了大多数 Connext DDS 功能的示例。此外,所有内容均可通过 Google 搜索,因此获得帮助就像进行网络搜索一样简单。这包括用户组文章、教学视频、示例代码、在线培训和文档。
RTI Connext DDS 入门
在选择要使用的 DDS 实现之前,您必须完全了解您的要求以及您需要哪些功能和服务,这一点很重要。以下是一些有助于定义您的要求的关键问题:
- 您要使用的语言是否受支持?
- 是否需要与脚本语言集成?
- 您需要与云集成吗?还是使用关系数据库?
- 您将来需要安全吗?还是认证?
- 发布是否稳健?是否经过严格的测试?它是否已在现场应用中多次成功使用?
如果您有一个复杂的产品,需要考虑上市时间,需要坚如磐石,得到良好的支持,并且具有您现在和将来需要的功能,那么 RTI Connext DDS 是正确的选择。
物联网技术