views:

24

answers:

1

Hi

Can anyone please provide specific links which cite the advantages of RPC over other inter process communication models.

Also whether RPC is best suited for TCP/IP or HTML or similar other transfer mediums.

Thanks and in advance.

+1  A: 

I think that you're mixing and matching various parts of the internet stack. Following the five-layer layer network model (there's also a seven layer model that you can compare),

  1. Application Layer: Many, including HTTP, RPC, etc.
  2. Transport Layer: TCP (others exist, including UDP, ICMP)
  3. Network Layer: IP
  4. Link Layer
  5. Physical Layer

RPC would sit in the application layer, so I don't really see how HTML would be involved.

Regarding RPC: It (along with other similar protocols like Java's RMI) gives you a way of transparently calling a procedure located at another computer across a network, as though it were local. Is this a good thing? Superficially, it would seem to make distributed computing easier, but that may be an illusion. Because treating a distributed system like a single computer can be a very dangerous way to program.

Waldo et al. describe the problem very well (seriously, it's an excellent paper). Distributed systems have problems not found in standalone systems: latency; partial failure; different memory access models. These are the "hard parts" of distributed computing. RPC solves the "easy part": marshalling and unmarshalling data, while papering over the hard parts, and most likely leading to a false sense of security.

Rob Lachlan

related questions