X hits on this document





3 / 21

Implementing Remote Procedure Calls

  • 41

on single-user workstations, although it is also used for the construction of

servers (shared computers providing common services, communication network). Most of the computers used for Cedar are Dorados 8.

accessible through the

The Dorado is a very

powerful machine (e.g., a simple Algol-style call and return takes less than 10 microseconds). It is equipped with a 24-bit virtual address space (of 16-bit words) and an 80-megabyte disk. Think of a Dorado as having the power of an IBM 370/168 processor, dedicated to a single user.

Communication between per-second Ethernet 11.

these computers is {Some computers

typically by means of a 3-megabit- are on a 10-megabit-per-second



but some


Most of the computers running Cedar are on the same Ethernet, on different Ethernets elsewhere in our research internetwork. The

internetwork consists nets (presently about

of a large number of 3-megabyte and 10-megabyte Ether- 160) connected by leased telephone and satellite links (at

data rates of between 4800 and nication will follow the pattern communication is on the local

56000 bps). We envisage that our RPC commu- we have experienced with other protocols: most Ethernet (so the much lower data rates of the

internet links are not an inconvenience to our users), and the overloaded (we very rarely see offered loads above 40 percent an Ethernet, and 10 percent is typical).

Ethernets are not of the capacity of

The PUP family of protocols 3 this internetwork. Previous PUP

provides uniform access to any computer on protocols include simple unreliable (but high-

probability) datagram two computers on the is available.

service, and reliable flow-controlled byte streams. Between same Ethernet, the lower level raw Ethernet packet format

Essentially all programming is in high-level languages. The dominant language

is Mesa 12 InterLisp are

(as modified for the purposes of Cedar), although Smalltalk also used. There is no assembly language for Dorados.


1.3 Aims

The primary purpose of our RPC project was to make distributed computation easy. Previously, it was observed within our research community that the con- struction of communicating programs was a difficult task, undertaken only by members of a select group of communication experts. Even researchers with substantial systems experience found it difficult to acquire the specialized exper- tise required to build distributed systems with existing tools. This seemed undesirable. We have available to us a very large, very powerful communication network, numerous powerful computers, and an environment that makes building programs relatively easy. The existing communication mechanisms appeared to be a major factor constraining further development of distributed computing. Our hope is that by providing communication with almost as much ease as local procedure calls, people will be encouraged to build and experiment with distrib- uted applications. RPC will, we hope, remove unnecessary difficulties, leaving only the fundamental difficulties of building distributed systems: timing, inde- pendent failure of components, and the coexistence of independent execution environments.

We had two secondary aims that we hoped would support our purpose. We wanted to make RPC communication highly efficient (within, say, a factor of

ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984

Document info
Document views31
Page views31
Page last viewedFri Oct 21 22:41:50 UTC 2016