正如该线程中先前的一篇文章所指出的,您的选择之一是 OpenSplice DDS,它是 OMG DDS 标准的开源实现(与 NDDS 实现的标准相同)。
与您正在考虑的其他中间件相比,OpenSplice DDS 的主要优势可以概括为:
- 表现
- 丰富的QoS支持(持久性、容错性、及时性等)
- 数据中心性(例如查询和过滤数据流的可能性)
我想了解的是您对 IDL 有什么问题。DDS 使用 IDL 作为指定用户数据类型的与语言无关的方式。但是 DDS 不限于 IDL,如果您愿意,您可以使用 XML。指定数据类型并将其表示与特定编程语言解耦的优点是中间件可以:
(1) 减轻您序列化数据的负担,
(2) 生成非常节省时间/空间的序列化,
(3) 确保端到端的类型安全,
(4) 允许对整个数据类型进行内容过滤(不仅仅是 JMS 中的标头),并且
(5) 实现跨编程语言(例如 Java、C/C++、C# 等)的在线互操作性
根据您正在设计的系统或应用程序,上述某些属性可能没有用/不相关。在这种情况下,您可以简单地生成一个、几个“DDS 类型”,它是您序列化数据的持有者。
如果您考虑 JMS,它为您提供了 5 种不同的主题类型,您可以使用它们来发送数据。使用 DDS,您可以做同样的事情,但您可以灵活地准确定义主题类型。
最后,您可能想查看这篇关于 Scala 和 DDS 的博客文章,以更详细地讨论为什么类型和静态类型特别适用于分布式系统。
-交流