代码之家  ›  专栏  ›  技术社区  ›  ckv

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

  •  2
  • ckv  · 技术社区  · 14 年前

    任何人都可以提供特定的链接,引用rpc相对于其他进程间通信模型的优势。

    另外,rpc是否最适合tcp/ip或html或类似的其他传输介质。

    谢谢,提前。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Rob Lachlan    14 年前

    我认为你正在混合和匹配互联网堆栈的各个部分。跟随 five-layer layer network model (还有一个 seven layer model 你可以比较,

    1. 应用层:很多,包括http、rpc等。
    2. 传输层:TCP(其他存在,包括UDP、ICMP)
    3. 网络层:IP
    4. 链路层
    5. 物理层

    rpc将位于应用程序层中,所以我不知道html将如何参与进来。

    关于RPC: 它(以及其他类似的协议,如 Java's RMI )提供了一种透明地调用位于网络上另一台计算机上的过程的方法,就好像它是本地的一样。这是件好事吗?表面上看,这似乎使分布式计算变得更容易,但这可能是一种错觉。因为把分布式系统当作一台计算机来处理是一种非常危险的编程方法。

    Waldo et al. 把问题描述得很好(说真的,这是一篇很好的论文)。分布式系统在独立系统中没有发现问题:延迟;部分故障;不同的内存访问模型。这些是分布式计算的“硬部分”。rpc解决了“容易的部分”:数据的封送和解封,而硬部分则被覆盖,并且很可能导致错误的安全感。