DDS - 推荐哪一个 - OpenSplice 还是 CoreDX?

DDS - Which one is recommended - OpenSplice or CoreDX?

我需要 C# winform 应用程序和 android 本机应用程序才能使用 DDS(数据分发服务)。每个人都可以是订阅者和作者。 对我来说重要的是:
- 高性能。
- 易于使用和文档。
- 支持。
- 低价。

最好推荐使用什么产品 - OpenSplice 还是 CoreDX?
它们之间有什么区别?

感谢

Twin Oaks 的 CoreDX DDS 提供对 C# 和 Android 的支持。 Android 支持包括 Java 和 C# 语言 API。一些客户还使用 C 或 C++ API 开发了基于 CoreDX DDS 的 Android 应用程序,但这有点复杂。无论如何,CoreDX DDS 在 Android 平台上原生运行。

[完全公开,我与 Twin Oaks Computing 有联系;因此,我将避免对您问题中更主观的因素发表评论。我只会说我相信 CoreDX DDS 在您提到的所有四个方面都是一个很好的选择。]

我建议查看 RTI Connext DDS or OpenDDS, we and our customers are using both for various projects including our AXCIOMA 组件框架。

不幸的是,我不能告诉你很多关于 CoreDX 的信息,但我使用 Vortex OpenSlice 和 RTI 的 Connext DDS 工作了很长一段时间。以下是我的经历:

一些差异

OpenSlice 实现了一种联合模型。您的应用程序 运行s 在一个单独的进程中,DCPS 通信和配置在另一个(守护进程)进程中处理。这允许明确的分离,但也涉及在非常高的数据速率下成为瓶颈甚至单点故障的危险(如果处理 DCPS 的进程崩溃)。 OpenSlice 还支持单进程架构,但这不是默认架构,而且优化程度也较低。此外,OpenSlice 支持两种协议:其 RTNetworking 是默认协议,RTPS 标准仅用于与其他供应商的 DDS 实现互操作。

RTI Connext DDS 的架构是完全独立的,不需要守护进程。这样做的好处是消除了单点故障并减少了延迟。但同一主机上多个 DDS 应用程序之间的数据批处理优化更加困难,这导致可扩展性降低,尤其是对于较小的数据大小。

CoreDX是专门针对嵌入式领域的实现,同样适用于单进程架构。它专注于低内存占用和延迟,即使没有操作系统也可以 运行 没有主要限制。

高性能

我不知道您的性能要求,但我认为 Data Distribution Service (DDS): A performance comparison of OpenSplice and RTI implementations 中的公正分析将为您提供最佳指示。它是用 Connext 5.0.0 和 OpenSlice V5.5.1 Community 进行的,所以它仍然可以被认为是相关的。本文分析了每秒采样率、吞吐量(以 Mbps 为单位)、往返时间、内存和 CPU 使用情况。一般的结论是,对于 0 到 1kB 的数据大小,OpenSlice 优于 Connext,但对于大于 1kB 的数据大小,Connext 优于 OpenSlice。很抱歉我不能告诉你确切的数字,因为这篇论文是收费的,所以我建议你自己看一下,并根据你的数据大小来决定哪个最适合你的需求。遗憾的是,我无法告诉您有关 CoreDX 性能的任何信息,因为我没有找到任何独立验证的迹象。

易于使用和文档

在这两种情况下,您会在所有语言绑定中找到一个干净一致的 API。有许多可立即执行的示例和代码片段可供免费下载。官方用户手册非常全面,涵盖了您入门所需的一切。我个人认为 RTI 手册要好得多,因为它充满了可以直接应用到您的应用程序中的示例。根据我的经验,真正从手册而不是随附的代码开始,否则您会发现自己被困在您不知道的细节中。 RTI Connext 和 Vortex OpenSlice 的社区都很大,但人们可能会发现 RTI 的社区响应速度更快且更全面。每当您 post 在论坛中提出问题时,大多数情况下,FAE 都会在数小时内为您提供适当的答案。如果您需要特定的专业支持,很遗憾,只能购买支持许可证。

相比之下,CoreDX 的文档只是几页上最需要的信息以及很少的示例 - 这不是您想要的轻松入门。

低价

有一个社区版的 Vortex OpenSlice,但它只支持 32/64 位 x86 Linux 和 32/64 位 x86 Windows,这意味着 android 上的 DDS 应用程序] 您将需要 Connext、OpenSlice 或 CoreDX 的商业版本。确切的定价始终取决于您的需求。我知道 RTI 的例子,因为我联系过他们。您可以 select 仅选择您真正需要的软件包,因此您支付的费用将大大低于规定的 8000 美元左右。您还可以免费申请研究和评估许可证。

安全

如果您对使用 DDS 的安全性和数据加密有广泛的要求,那么 RTI Connext DDS Secure 是唯一的选择。为什么?原因很简单,因为它是目前唯一完全实施 OMG 的 DDS Secure 标准的产品。以防万一您需要它:它为您提供有价值的功能,用于加密数据和控制 reading/writing 到主题或加入域应用程序可能接收全局数据的操作 space.

关于 CoreDX 的最后一件事 CoreDX 出现仅几年,而 OpenSlice 和 Connext 是成熟而复杂的产品,已在数百个项目中证明了它们的能力。我宁愿把钱押在一个成熟的专业人士身上,也不愿押在一个(可能)正在崛起的新手身上。

您可能还想看看其他开源 DDS 实现,例如 OpenDDS,但我个人认为它们不会满足您的需求。