远程过程调用的优缺点是什么?

3

请问是否能提供一些具体链接,阐述RPC相对于其他进程间通信模型的优势。

此外,RPC最适合用于TCP/IP、HTML或类似的传输介质吗?

谢谢。提前致谢。


你还考虑了哪些进程间通信模型?有很多种,它们都有各自的优缺点。另外,不确定 HTML 与此有何关系...? - Dean Harding
实际上,我正在寻找所有进程间通信模型的优缺点。 - ckv
1个回答

4
我认为你混淆了互联网协议栈的各个部分。遵循五层网络模型(还有一个七层模型可以进行比较):
  1. 应用层:包括HTTP、RPC等
  2. 传输层:TCP(其他协议也存在,包括UDP、ICMP)
  3. 网络层:IP
  4. 链路层
  5. 物理层
RPC将位于应用层,因此我不太明白HTML如何参与其中。
关于RPC: 它(以及类似协议,如Java的RMI)提供了一种透明调用位于网络上另一台计算机上的过程的方式,就像它在本地一样。这是一件好事吗?表面上看,它似乎使分布式计算更容易,但这可能是一种幻觉。因为像单个计算机一样处理分布式系统可能是一种非常危险的编程方式。

Waldo等人 很好地描述了这个问题(说真的,这是一篇很好的论文)。分布式系统存在独立系统中没有的问题:延迟;部分故障;不同的内存访问模型。这些都是分布式计算中的“难点”。RPC解决了“易点”:编组和解组数据,同时掩盖了困难的部分,最有可能导致一种虚假的安全感。


注意到远程过程调用(RPC)不仅解决了“简单部分”——序列化的问题,而且通常还需要解决“中等到困难的部分”——建立和维护两个远程实体之间的连接。 - Martin Ba
"Waldo et al."的链接已失效。这里提供一个镜像:A Note on Distributed Computing (Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall) - Snowball

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接