Implementing Remote Procedure Calls

Notes by Lili Qiu (3/10/1998)


Goals

  1. simplify building distributed systems
  2. balance between powerful semantics and efficiency
  3. secure communications

Major issues

  1. precise semantics
  2. integration of remote calls into existing programming systems
  3. binding
  4. suitable transport protocols
  5. data integrity and security in an open communication network

Environment

  1. Cedar distributed operating system
  2. Most computers are Dorados
  3. Most communication is on the lightly loaded Ethernet (< 40%)
  4. PUP transport protocol

Structure

  1. user
  2. user-stub: place a specification of the target procedure and the arguments into packet
  3. RPCRuntime: transmission, packet routing, encryption
  4. server stub: unpack data, and invoke the corresponding procedure
  5. server

Binding

  1. Naming: type and instance
  2. Locating an approriate exporter:
  3. Effects:

Transport protocol

  1. Requirements
  2. Calls
  3. Optimizations

Discussion

  1. What is the difference between RPC and LPC? How transparent should RPC be?
  2. There are many tradeoffs in the RPC implementation: tradeoffs among efficiency, powerful semantics, resemblance to the local procedure calls, and insulation from detailed communications. How do you think about the solutions provided by the authors regarding these tradeoffs?
  3. According to Table-I, there is considerable overhead in RPC: the transmission time and the execution time of the procedure counts only 10% of the total time. Why so? Any possible improvement?
  4. The authors ponder whether a sufficient level of performance for RPC can be achieved by a general purpose transport protocol whose implementation adopts strategies suitable for RPC as well as bulk data transfer. What do you think? What kind of transport protocol is suitable for RPC and bulk data respectively? Is TCP or UDP good candidate?