3

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

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

感谢

4

3 回答 3

10

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

一些差异

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

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

CoreDX 是专为嵌入式领域设计的实现,也适用于单进程架构。它专注于低内存占用和延迟,即使没有操作系统也可以运行而没有重大限制。

高性能

我不知道您的性能要求,但我认为 数据分发服务 (DDS) 中的无偏见分析:OpenSplice 和 RTI 实现的性能比较将为您提供最佳指示。它是与 Connext 5.0.0 和 OpenSlice V5.5.1 社区一起进行的,因此仍然可以认为是相关的。本文分析了每秒采样率、Mbps 吞吐量、往返时间、内存和 CPU 使用率。一般的结论是,对于 0 到 1kB 的数据大小,OpenSlice 的性能优于 Connext,但对于大于 1kB 的数据大小,Connext 的性能优于 OpenSlice。很抱歉,由于本文是收费的,因此我无法告诉您确切的数字,因此我建议您自行查看,并根据数据的大小确定最适合您的需求。不幸的是,我无法告诉您有关 CoreDX 性能的任何信息,因为我没有找到任何独立验证的迹象。

易于使用和文档

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

相比之下,CoreDX 的文档只是几页上最需要的信息以及很少的示例——这不是你想要的简单开始。

低价

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

安全

如果您对使用 DDS 的安全性和数据加密有广泛的要求,RTI Connext DDS Secure 是唯一的答案。为什么?仅仅因为它是目前唯一完全实施 OMG 的 DDS 安全标准的产品。以防万一:它为您提供有价值的功能,用于加密数据并控制诸如读/写主题或加入域应用程序可能在全局数据空间中执行的操作。

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

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

于 2016-07-14T13:54:14.210 回答
2

我建议查看RTI Connext DDSOpenDDS,我们和我们的客户正在将这两者用于各种项目,包括我们的AXCIOMA组件框架。

于 2016-07-07T07:48:13.747 回答
1

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

[全面披露,我与 Twin Oaks Computing 有联系;因此,我将避免评论您问题中更主观的因素。我只会说我相信 CoreDX DDS 在你提到的所有四个维度上都是一个很好的选择。]

于 2016-07-06T16:56:35.057 回答