Charlie Garrod -------------- This paper describes an implementation of a remote procedure call facility, a system which extends the programming abstraction of procedure calls to distributed environments. The authors made several key contributions: they designed a precise formalization of what a remote procedure call was in their environment; RPC users find the appropriate exporters of RPC functions (by RPC servers) through the use of a distributed binding database; the authors implemented a new RPC transport protocol which attempted to optimize network usage based on RPC's requirements -- ie, high bidirectional volumes of small call and return packets that require extremely low latency. Performance results for their RPC implementation show a latency overhead of about 1 ms in addition to network transmission time for each RPC call. I would have liked to see a performance analysis of secure RPC, in addition to the normal RPC which was described here. Also, while RPC seems to be make it easier to program in a distributed environment by extending a standard programming abstraction to that environment, it's design doesn't seem to make it any easier to design efficient programs for a distributed environment. For me, the main take-home message from RPC is the advantage that can be gained by applying knowledge from one area -- in this case, program language design -- to systems.