Implementing Remote procedure calls

  • Authors:
  • Andrew D. Birrell;Bruce Jay Nelson

  • Affiliations:
  • Xerox Palo Research Center, Palo Alto. CA;Xerox Palo Research Center, Palo Alto. CA

  • Venue:
  • SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
  • Year:
  • 1983

Quantified Score

Hi-index 0.00

Visualization

Abstract

Remote procedure calls (RPC) are a useful paradigm for providing communication across a network between programs written in a high level language. This paper describes a package, written as part of the Cedar project, providing a remote procedure call facility. The paper describes the options that face a designer of such a package, and the decisions we made. We describe the overall structure of our RPC mechanism, our facilities for binding RPC clients, the transport level communication protocol, and some performance measurements. We include descriptions of some optimisations we used to achieve high performance and to minimize the load on server machines that have many clients. Our primary aim in building an RPC package was to make the building of distributed systems easier. Previous protocols were sufficiently hard to use that only members of a select group of communication experts were willing to undertake the construction of distributed systems. We hoped to overcome this by providing a communication paradigm as close as possible to the familiar facilities of our high level languages. To achieve this aim, we concentrated on making remote calls efficient, and on making the semantics of remote calls as close as possible to those of local calls.