我正在为一种新的硬件设备编写软件,我希望任何一种新的第三方应用程序都能够访问它。
软件将是本机进程(C++),应可由希望支持硬件设备的第三方游戏和应用程序轮询。这些第三方应用程序也应该能够接收来自本地进程的事件,在订阅的基础上。因此,除了本机过程之外,我还将为第三方开发人员提供适用于他们可能选择的所有平台/语言(Java、C++、Python等)的“连接器”库。嵌入到他们的应用程序中,这样他们就可以轻松地连接到设备,而几乎不需要他们编写任何额外的代码。我想要面向所有台式机/笔记本电脑操作系统平台,并且对我想要公开的功能有一个很好的想法,但理想情况下我不想太卡住(即我希望它从客户端和服务器的角度都可以优雅地扩展)。
我期待的是可靠性、性能、可维护性、跨平台/语言灵活性,以及开发的简易性。
我应该使用什么?
CORBA、MessagePack-RPC、Thrift或其他完全不同的东西?
(我省略了ICE,因为它是许可的)
发布于 2010-08-28 00:55:34
CORBA是目前唯一可以在我的系统上工作的免费"RPC“东西,尽管它的伸缩性非常差。Thrift还不是Windows友好的。MessagePack-RPC目前还不适用于所有语言和操作系统,尽管它仍处于开发阶段。如果CORBA具有优雅的可伸缩性,它可能根本就不会过时。
协议缓冲区和消息传递将起作用,我必须为每种平台/语言开发一个客户端和服务实现。它还具有很强的可扩展性。我已经决定要这个了。
发布于 2010-09-12 18:06:17
Thrift或Message Pack是未来的最佳选择。这两种方法都很流畅,重量很轻,并且不会给您的过程增加太多延迟。它们支持大多数通用语言,并且正在积极开发中。在目前的阶段,我个人更倾向于节俭,但message pack似乎确实承诺了很多功能。
虽然节俭可能不像我们想要的那样对windows友好,但人们正在windows上使用它。这是windows上的节俭入门指南。http://wiki.apache.org/thrift/ThriftInstallationWin32在windows上只安装和获取Thrift编译器可能会很麻烦。使用生成的文件取决于您选择的语言,并且许多语言都很好地支持通过导入节约库来运行文件。(Java很简单,MAVEN工件)
在RPC frameworks available?上有关于RPC框架的讨论。
根据我的说法,CORBA是旧的、笨重的、非常重量级的。
发布于 2010-08-26 20:41:26
如果古老的和重量级的不会让你望而却步,那么过时肯定会让你望而却步。无论如何,我可以告诉你我们最近在工作中使用了什么Google Protocol Buffers,它们非常容易使用。
从开发人员的角度来看,您所需要做的就是构建一个GPB (这实际上并不困难),然后它将为您生成源文件。最终的结果是一个跨平台的二进制消息传输消息传递接口(考虑XML和有限的RMI,而不是类似MPI的功能)。
我们在Windows上使用它与运行相同软件的基于arm的Linux系统(来自嵌入式arm的TS-7200)进行对话。据我所知,它与许多语言兼容。
https://stackoverflow.com/questions/3558401
复制相似问题