DDS-推荐哪个-OpenSplice或CoreDX? [英] DDS - Which one is recommended - OpenSplice or CoreDX?

查看:1400
本文介绍了DDS-推荐哪个-OpenSplice或CoreDX?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要C#winform应用程序和android native应用程序才能使用DDS(数据分发服务)。每个人都可以是订阅者和作家。
对我来说重要的是:

-高性能。

-易于使用和编写文档。

-支持。

-低价。



最好使用什么推荐产品-OpenSplice或CoreDX?

它们之间有什么区别?



谢谢

解决方案

不幸的是,我不能告诉您太多有关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美元左右。您也可以申请研究和评估许可证,而无需花一美元。



安全性



RTI Connext DDS Secure是唯一的答案,如果您对使用DDS的安全性和数据加密有广泛的要求。为什么?仅仅是因为它是目前唯一完全实现OMG的DDS安全标准的产品。万一您需要它:它为您提供了宝贵的功能,用于加密数据并控制诸如读取/写入主题或加入域等操作,这些应用程序可能会占用全局数据空间。



关于CoreDX的最后一件事
CoreDX诞生仅几年了,而OpenSlice和Connext是成熟而成熟的产品已经在数百个项目中证明了其功能。我会把钱押在一个经过验证的专业人员上,而不是一个(也许)正在崛起的新手。



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


I need for C# winform app and for android native application to use DDS(Data Distribution Service). Each one can be subscriber and writer. What is important for me:
- High performance.
- Easy to use and documentation.
- Support.
- Low price.

What is best recommended product to use - OpenSplice or CoreDX?
What the differences between them?

Thank

解决方案

Unfortunately I can't tell you much about CoreDX, but I worked for quite a while with Vortex OpenSlice and RTI's Connext DDS. Here are my experiences:

Some Differences

OpenSlice implements a kind of federated model. Your application runs in a separate process, the DCPS communication and configuration is handled in another (daemon) process. This allows a clear separation, but also involves the danger of becoming a bottleneck at very high data rates or even a single-point-of-failure(if case the process handling DCPS crashes). OpenSlice also supports a single-process architecture, but that's not the default and it's also less optimized. Furthermore, OpenSlice supports two protocols: its RTNetworking is the default and the RTPS standard is only used for interoperability with DDS implementations of other vendors.

The architecture of RTI Connext DDS is completely self-contained and does not need a daemon process. This has the benefit that the single point of failure is eliminated and latency is reduced. But data batching optimization between multiple DDS applications on the same host is more difficult, which results in reduction of scalability, especially for smaller data sizes.

CoreDX is a implementation specifically intended for the embedded domain and applies also the single-process architecture. It focused on a low memory footprint and latency and can run even without a operating system without major restrictions.

High Performance

I don't know your performance requirements, but I think the unbiased analysis in Data Distribution Service (DDS): A performance comparison of OpenSplice and RTI implementations will provide you the best indication. It was conducted with Connext 5.0.0 and OpenSlice V5.5.1 Community, so it can still be regarded as relevant. This paper analysed the rate of samples per second, throughput in Mbps, round-trip-time, memory and CPU usage. The general conclusion is that for data sizes ranging from 0 to 1kB, OpenSlice outperforms Connext, but for data sizes greater than 1kB Connext outperforms OpenSlice. I'm sorry I can't tell you the exact numbers since this paper is fee-based, I suggest therefore you take a look at it on your own and decide which suits your needs best based on the size of your data. Unfortunately I can't tell you anything about CoreDX's performance since I haven't found any independently verified indications.

Easy to use and documentation

In both cases you will find a clean and consistent API throughout all language bindings. There are many ready-to-execute examples and code snippets free for download. The official user manuals are comprehensive and cover everything you need to start. I personally found the RTI manual much better because it is full of examples you can directly apply in your application. From my experience, start really with the manuals and not with the accompanying code, otherwise you will find yourself locked down in details you don't have a clue about. The communities of both RTI Connext and Vortex OpenSlice are large, but one may find RTI's community responding faster and being more comprehensive. Whenever you post a questions in the forums, FAEs will provide you in most cases an appropriate answer within hours. If you need specific and professional support, there is unfortunately no way but to purchase support licences.

By contrast, the documentation of CoreDX is only the most need information on a few pages along with only very few examples - that's not what you want for an easy starting.

Low price

There is a community edition of Vortex OpenSlice, but it only supports 32/64 bit x86 Linux and 32/64 bit x86 Windows, which means for DDS applications on android you will need a commercial version of either Connext, OpenSlice or CoreDX. The exact pricing always depends on your needs. I know the example of RTI because I contacted them. You can select only the software packages you really need and therefore you'll pay significantly less than the stated 8000$ or so. You also have the possibility to apply for research and evaluation licences which don't cost you a single buck.

Security

RTI Connext DDS Secure is the only answer if you have extensive requirements on security and data encryption using DDS. Why? Simply because it is currently the only producty fully implementing OMG's DDS Secure standard. Just in case you need it: it provides you valuable functionalities for encrypting your data and controlling the actions like reading/writing to topics or joining domains applications may take in the global data space.

On last thing about CoreDX CoreDX has been around since only a few years, while OpenSlice and Connext are mature and sophisticated products which have proven their capabilities in many hundreds of projects. I would bet my money rather on a proven professional than on a (maybe) rising newbie.

You may also want to take a look at other open-source DDS implementations like OpenDDS, but I personally don't think they will fit your needs.

这篇关于DDS-推荐哪个-OpenSplice或CoreDX?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆