DDS - 哪一个更好 - OpenSplice 还是 CoreDX?

3

我需要为C# winform应用程序和Android原生应用程序使用DDS(Data Distribution Service)。每一个都可以是订阅者和写入者。 对我来说重要的是:
- 高性能。
- 易于使用和文档化。
- 支持。
- 低价格。

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

谢谢

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 Community进行,并且仍然可以被视为相关。该论文分析了每秒样本率、吞吐量(以Mbps为单位)、往返时间、内存和CPU使用情况。总体结论是对于数据大小在0到1kB之间的情况,OpenSlice的表现优于Connext,但对于数据大小大于1kB的情况,Connext的表现优于OpenSlice。很抱歉我不能告诉您确切的数字,因为这篇论文是收费的,因此我建议您自行查看并根据数据大小决定哪种更适合您的需求。不幸的是,我没有找到任何经过独立验证的有关CoreDX性能的指标,因此无法告诉您任何信息。

易用性和文档

在两种情况下,您都会发现所有语言绑定的API都是干净和一致的。有许多可直接下载的示例和代码片段。官方用户手册是全面的,涵盖了您需要开始的所有内容。我个人发现RTI手册更好,因为它充满了可以直接应用于应用程序中的示例。从我的经验来看,确实要从手册开始学习,而不是从附带的代码开始,否则您会发现自己锁定在您一无所知的细节上。

RTI Connext和Vortex OpenSlice的社区都很大,但有人可能会发现RTI的社区反应更快,提供的支持更全面。每当您在论坛中发布问题时,FAE(Field Application Engineer)通常会在几小时内提供适当的答案。如果您需要特定和专业的支持,那么唯一的办法就是购买支持许可证。

相比之下,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 Secure 标准的产品。以防您需要:它为您提供有价值的功能,用于加密数据并控制操作,例如读取/写入主题或加入应用程序可能在全局数据空间中采取的域。

关于 CoreDX 的最后一条说明

CoreDX 已经存在了几年时间,而 OpenSlice 和 Connext 是成熟而复杂的产品,在许多项目中已经证明了其能力。我宁愿把钱押在经过证明的专业产品上,而不是押在(可能)新晋的产品上。

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


在twinoakscomputing.com网站上提供的CoreDX DDS文档包括程序员指南、参考手册和快速入门指南,远不止几页。网站上提供了多个在线示例,并且在免费的评估软件包中还包含更多示例。CoreDX DDS也可获得免费的IR&D许可证。CoreDX DDS还支持完整的DDS安全标准,以实现身份识别、认证、完整性和机密性的全面覆盖。CoreDX DDS自2008年以来已经商业化推出。 - C Tucker
在撰写我的文章之前,我已经仔细阅读了文档。我想说的是,OpenSlice和Connext的文档比CoreDX的文档更加详细。你说有几个例子,但我很抱歉,我无法同意这一点。有3个在线和一些随附评估包的示例。这个列表是可以称之为几个示例的东西。也许我错过了,但我没有看到CoreDX事实或其网站上支持DDS Secure的声明。 - Pete
1
感谢您提供详细的答案。 - Shir

2

2
我不喜欢使用RTI,因为它非常昂贵。我正在寻找更便宜的产品。 - Shir
1
RTI的定价取决于您的需求以及项目所需的保证类型。有多种选择,包括开放社区源、学术和IR&D类型的协议。我真的建议您联系RTI并与他们讨论您的确切需求。 - Johnny Willemsen

1
CoreDX DDS来自Twin Oaks,支持C#和Android。 Android支持包括Java和C#语言API。一些客户还使用C或C++ API开发了基于CoreDX DDS的Android应用程序,但这需要更多的工作。无论如何,CoreDX DDS在Android平台上可以本地运行。
[完整披露,我与Twin Oaks Computing有关联;因此,我将避免评论您问题中更主观的元素。我只会说,我相信CoreDX DDS在您提到的所有四个方面都是一个很好的选择。]

第一- 我在网上没有看到太多关于它的论坛和讨论。似乎使用它开发的人比使用OpenSplice的人少。你知道CoreDX的论坛吗?第二- OpenSplice的优缺点如何?谢谢。 - Shir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接