我们什么时候应该理想地使用远程过程调用?

时间:2011-09-20 06:55:20

标签: java gwt-rpc

我正在研究Google App Engine上的Java应用程序,我们有一个RPC的概念,但我们什么时候应该理想地使用RPC?即使没有它,我可以实现与RPC相同的功能。那么理想情况下应该在什么情况下设计RPC?

3 个答案:

答案 0 :(得分:2)

需要访问当前应用程序外部的服务时,通常使用RPC(或类似)。

如果您只是尝试调用属于此应用程序的方法(即在此应用程序的地址空间中),那么就没有必要了......并且浪费使用RPC。


  

......我们什么时候应该理想地使用RPC?

当你需要时,而不是在你不需要时。

  

即使没有它,我可以实现与RPC相同的功能。

如果没有RPC可以实现相同的功能,那么听起来你不需要它。

  

那么理想情况下应该在什么情况下设计RPC?

需要时(见上文)。

更有启发性的答案是有充分理由在不同地址空间和(通常)在不同机器上运行的不同程序中实现“系统”的不同功能的情况。 可能包含以下内容的好理由:

  • 将系统的一部分与另一部分隔离
  • 以不同语言实施系统的不同部分
  • 与旧系统接口
  • 与第三方供应商提供的子系统连接;例如数据库
  • 利用其他机器的计算资源
  • 提供冗余
  • 等等。

答案 1 :(得分:0)

听起来你的应用程序中不需要RPC。

只要您需要从服务器上的资源访问客户端上不可用的数据,就会使用RPC。例如Web服务,数据库等

答案 2 :(得分:0)

RPC专为请求/响应而设计。即,您对服务有自包含的请求,并且您希望得到响应(返回值或成功/失败状态)

您可以在任何可能使用方法调用的地方使用它,除了您调用的对象不是当前进程的本地对象。