我应该使用CORBA,MessagePack RPC还是Thrift,还是完全不同的东西?

Nav*_*eur 6 rpc cross-platform corba thrift interprocess

我正在为一个新的硬件设备编写软件,我希望任何一种新的第三方应用程序能够访问它们.

该软件将是一个本机进程(C++),应由第三方游戏和想要支持硬件设备的应用程序进行调查.这些第三方应用程序还应该能够在订阅的基础上从本机进程接收事件.因此,除了原生流程之外,我还将为第三方开发人员提供"连接器"库,以便他们可以选择的所有平台/语言(Java,C++,Python等)嵌入到他们的应用程序中,以便他们可以轻松连接几乎没有任何额外的代码需要由他们写的设备.我想针对所有台式机/笔记本电脑操作系统平台,并且非常了解我想要公开的功能,但理想情况下我不想太过困难(即我希望它能够从客户端和服务器中优雅地扩展观点).

我正在寻求未来的可靠性,性能,可维护性以及未来的跨平台/语言灵活性,以及​​按顺序开发的简易性.

我该怎么用?

CORBA,MessagePack-RPC,Thrift还是完全不同的东西?

(因为它的许可,我省略了ICE)

Nav*_*eur 1

CORBA 是目前唯一适用于我的系统的免费“RPC”事物,尽管它的扩展性非常差。Thrift 还不支持 Windows。MessagePack-RPC 也尚未在所有语言和操作系统中可用,尽管它仍在开发中。如果 CORBA 具有良好的可扩展性,它可能根本就不会过时。

协议缓冲区和消息传递可以工作,我必须为每个平台/语言开发客户端和服务实现。它还具有很强的可扩展性。我已经决定了。

  • 添加新属性,当人们在新服务器上使用旧客户端,或在旧版本服务器上使用新客户端时(在我的情况下两者都可能),CORBA 中是否可以优雅地处理此问题?我的印象是 CORBA 崩溃了。这很糟糕 - 本来不必这样。如果 CORBA 能够无缝地处理添加和删除属性和函数,它就会征服世界。人们总是希望更新他们的架构:任何所需的版本控制、约束和处理都应该是开发人员在 CORBA 之外的工作。RPC 本身应该是 100% 可扩展/可缩减的。 (2认同)