12

我在 RTI DDS 方面拥有丰富的经验,并且在许多应用程序中都使用过它。我最近开始使用 OpenSplice 与 DDS 一起工作,看看它是否是 RTI 的一个很好的开源替代品。我已经有一段时间了这两个对接头,试图让消息在不同的实现之间来回传递但无济于事。

每个人都会推荐哪些(如果有的话)其他 DDS 实现?我找到了其他的,比如 OpenDDS,但我真正想要的是一个很好的 DDS 实现,它与 RTI 兼容,支持 C/C++/C#/Java,并且是开源的。

我意识到 OpenSplice 符合这个描述,但我想要其他的。谢谢!

4

3 回答 3

10

在最近的 OMG 会议上,OpenDDS 展示了与 RTI 和 OpenSplice(以及其他 DDS 实现)的互操作性。

于 2012-03-27T19:19:31.793 回答
3

我首先开始尝试 RTPS 的 OCERA(参见下面的链接)C 实现(我什至翻译成 C++),但它只是一个 RTPS v1.0 协议实现,不完全符合 DDS。具有讽刺意味的是,它是任何 DDS 实现都应该使用的协议的第一个版本(与可互操作的协议)。

我确定您知道 DDS 供应商页面,对吗? http://portals.omg.org/dds/where-can-i-get-dds/

我没有尝试过 OpenSplice,但它已被用于许多军事应用(以及 RTI),而且它是开源的(免费注册:D)

OpenDDS 的人在 OMG 产品方面有着悠久的传统。在一些不可互操作的 OpenDDS 传输内部是 ACE(也许还有 TAO,它们的高效 CORBA 实现)。很高兴知道他们终于可以选择互操作协议了,该死的!2008 年在哪里?

我希望它是 C# 中的任何一个!!!!...这促使我开发(开源)一个 C# 发布/订阅框架/中间件,使用Google Protocol Buffers作为有线格式,从 DDS、JMS、TIBCO rendevouz 和 JGroups 中获得一些想法。如果您有兴趣,请告诉我(我将很快发布 v2)。

于 2012-05-12T19:16:41.813 回答
2

OpenSplice DDS 和 RTI DDS 没有相互通信可能有一个非常简单的原因,那就是您可能没有将 OpenSplice 配置为使用 DDSI 作为其有线协议。

OpenSplice DDS 目前支持两种协议:

  • DDSI,DDS 互操作性有线协议
  • RT-NET,一种针对硬实时应用的专有协议

直到版本 5.x OpenSplice DDS 被配置为使用 RT-NET 作为默认协议。从 v6.x 开始,我们将默认值更改为使用 DDSI 作为默认值。

您使用的是哪个版本的 OpenSplice DDS?

也就是说,请注意 OpenSplice DDS 是开源的,并且在 LGPL 下获得许可。

一个+

于 2013-04-26T10:04:39.377 回答