-1

我目前正在开发一个客户端-服务器系统,其中每个客户端在服务器上独占一个对象。客户端与其对象之间的基本交互应通过远程过程调用 (RPC) 完成。此外,客户端必须能够注册与其对象相关的事件。一种方法是发布/订阅模型。但是我更喜欢服务器上的对象使用 RPC 来调用注册的客户端方法(分布式观察者)。

问题: 您知道允许双向调用的轻量级、多语言 RPC 库吗?有没有比 RPC 更适合我的技术?你怎么看?

服务器将用 Java 编写,而客户端可以用不同的语言编写。第一个客户端应用程序将在 Android 上运行。所有网络都在(无线)局域网内完成。易于集成对我来说是重中之重,因此高级 API 会很棒。

迄今为止的研究(短):

  • RMI 仅限于 JAVA
  • SOAP 和 REST 似乎不允许双向 RPC
  • Protobuf 是一个序列化库,但是在上面可以很容易地实现 RPC。基于 protobuf 的 RPC 实现是可用的,但大多数只支持一种或两种语言。
  • Thrift 不直接支持双向 RPC,但有可能。
  • 像 RabbitMQ 和 ActiveMQ 这样的消息代理是有能力的,但可能有点过头了。还必须运行额外的服务器。
  • CORBA 似乎非常复杂,我不确定它是否仍然是最先进的

请随时纠正我!

4

1 回答 1

1

如果 java 和 python 语言支持足够,您可以考虑的另一种选择是Versile(完全披露:我是开发人员之一)。支持双向对象交互。这也是您将如何实现“注册到事件”的方式,方法是向对等方提供一个对象以进行事件回调。更多信息的最佳来源是 Versile Python文档概述和示例。

于 2013-06-14T22:50:34.467 回答