Implementing Remote Procedure Calls

Notes by Adrian Bozdog (3/17/1999)

Previous notes by Lili Qiu


Goals

  1. simplify building distributed systems
  2. balance between powerful semantics and efficiency
  3. secure communications
  4. similarity between semantics of RPCs and LPCs

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

Features of 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
  5. Absence of shared addresses

Structure

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

Binding

  1. Naming: type and instance
  2. Alternatives for locating an exporter :
  3. Effects:

Transport protocol

  1. Features and Goals
  2. Call features
  3. Optimizations

Questions

  1. What is the difference and similarity between RPC and LPC? How transparent should RPC be?
  2. 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 is this situation?
  3. What are advantages and desadvantages of using probe packets as compared to using a timeout ?
  4. The authors investigate 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?