gpt4 book ai didi

sockets - Ada/C/++ 分布式应用程序

转载 作者:行者123 更新时间:2023-12-02 10:58:06 24 4
gpt4 key购买 nike

我正在尝试评估一些技术,用于实现一些 Ada 模块与一些 C++/OpenGL 模块之间的通信过程。有一个 (Windows XP) Ada 应用程序使用 COM 与 C++ 应用程序进行通信,但我打算将 COM 切换到新技术。提出了一些建议,例如直接套接字、DSA、Polyorb、Corba 和 DSS/Opensplice。

  • DSA 似乎只是 Ada 实现的(不确定)
  • 根据http://polyorb.ow2.org/,Polyorb 的最后一次实现是在 2006 年。
  • 有人认为 Corba 可能不够简单,不足以证明其实现简单应用程序的复杂性是合理的
  • DSS/Opensplice 似乎只是 C/C++ 实现的,因此应该完成 Ada 绑定(bind)。实现起来似乎也不是很简单。

我个人喜欢COM,但由于迁移,我宁愿采用套接字选项,因为它简单,而且接口(interface)架构可以很容易实现。

那么,你觉得呢?您能否对这些技术发表评论,甚至提出其他更多技术建议?

非常感谢。

最佳答案

您选择的一个重要因素是您正在重新设计的系统的规模和复杂性。它是一个具有大量复杂消息的广泛分布式系统吗?它是一个相对较小的系统,只有少量普通的消息交换吗?

对于小型系统,我过去只是使用自己的基于套接字的通信模块。不过现在,我更倾向于 ZeroMQ (无经纪)或 STOMP (基于文本)。并且有一些 Ada 支持这些,zeromq-AdaTOMI_4_Ada (两者都支持)。

虽然这些处理分发机制,但您仍然需要将消息序列化为可传输形式。

CORBA/PolyORB 和 DDS 解决方案相当重量级,但却是完整的解决方案。如果您不害怕 IDL 和管理代理,它们可以在大型分布式系统中表现出色。是的,可能需要构建一些 Ada 绑定(bind),但如果您可以获得 C 头文件或 C API 来绑定(bind),那么如果您专注于绑定(bind)所需的函数和数据结构,通常也不会太糟糕。不要创建全面的绑定(bind),而是对您不关心其内部内容的结构和参数自由使用不透明和空指针( void_ptropaque_structure_def_ptr )。

关于sockets - Ada/C/++ 分布式应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com