我想评估一些技术,用于实现一些Ada模块与一些C++/OpenGL模块之间的通信过程。有一个(Windows XP)Ada应用程序使用COM与C++应用程序通信,但我打算将COM切换为新技术。提出了一些建议,如直接套接字,DSA,Polyorb,Corba和DSS/Opensplice。Ada/C/++分布式应用程序
- DSA似乎只是阿达-implemented(不知道)
- Polyorb都有其2006年最后落实,根据http://polyorb.ow2.org/
- 的Corba有人argumented,这可能是不够的简单证明其复杂性实现简单的应用程序
- DSS/Opensplice似乎只是C/C++实现的,所以应该完成Ada绑定。它也似乎不是很容易实施。
就我个人而言,我喜欢COM,但由于迁移,我宁愿采用套接字选项,由于其简单,接口架构可以很容易地实现。
那么,你觉得呢?您能否对这些技术发表评论,甚至建议其他更多?
非常感谢。
在您陷入思考套接字“简单”的陷阱之前,请考虑您必须在裸套接字层上构建的东西的数量,以支持高性能,灵活且可扩展的IPC机制。有关更多详细信息,请参阅我的另一个问题的这个答案:http://stackoverflow.com/questions/6067538/restful-web-services-vs-socket-programming-for-a-data-intensive-application/6067635#6067635 –
Polyorb似乎由AdaCore积极维护,并有相当新的更新。你可以通过http://libre2.adacore.com//viewvc/trunk/polyorb/ –
来浏览版本库,CORBA应该能够做到,polyorb是一个选项,你也可以开发为现有oRB的语言绑定,我们可以示例已经为TAO创建了一个Ruby绑定,一个用于TAO的新的C++ 11绑定和一个用于JacORB的JRuby绑定。另请查看http://www.orbzone.org。如果您想使用DDS,请考虑为OpenDDS创建Ada绑定(请参阅http://www.opendds.org/) –