Browse Prior Art Database

Remote Procedure Call Disclosure Number: IPCOM000148092D
Original Publication Date: 1981-May-31
Included in the Prior Art Database: 2007-Mar-28

Publishing Venue

Software Patent Institute

Related People

Nelson, Bruce Jay: AUTHOR [+2]


Bruce Jay Nelson

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 2% of the total text.

Page 1 of 220

Remote Procedure Call

Bruce Jay Nelson


Node A I


Node C




Node B

Node D

A 8









6 A

= ?


I b




1 u


May 1981

[This page contains 1 picture or other non-text object]

Page 2 of 220

[This page contains 1 picture or other non-text object]

Page 3 of 220

Abstract j I !

 Remote procedure call is the synchronous language-level transfer of control between programs in disjoint address spaces whose primary communication medium is a narrow chadnel. The thesis of this dissertation is that remote procedure call (RPC) is a satisfactory and efficient programming language primitive for constructing distributed systems.

  A survey of existing remote procedure mechanisms shows that past RPC tffom are weak in addressing the five crucial issues: uniform call semantics, binding and configuration, strong


typechecking, parameter functionality, and concurrency and exception control./ The body of the dissertation elaborates these issues and defines a set of corresponding essential1 properties for RPC mechanisms. These properties must be satisfied by any KPC mechanism that is /fully and uniformly integrated into a programming language for a homogeneous distributed !system. Uniform integration is necessary to meet the dissertation's fundamental goal of synbtic and semantic fransparency for local and remote procedures. Transparency is important so thal programmers need not concern themselves with the physical distribution of their programs.

In addition to these essential language properties, a number of pleasant prophrlies are introduced

that ease the work of distributed programming. These pleasant properties are good performance, sound remote interface design, atomic transactions, respect for autonomy, @pe translation, and remote debugging.

  With the essential and pleasant properties broadly explored, the detailed; design of an RPC mechanism that satisfies all of the essential properties and the performance pfoperty is presented. Two design approaches are used: The first assumes full programming language kupport and involves changes to the language's compiler and binder. The second involves no language changes, but uses a separate translator-a source-to-source RPC compiler-to implement the samd functionality.

 Design decisions crucial to the efficiency of the mechanism are made $sing a set of RPC perfonnance lessons. These lessons are based on the empirical performahce evaluation of a sequence of five working RPC mechanisms, each one faster than its predeces/sor. Some expected results about the costs of parameter copying, process switching, and runtime t@e manipulation are confirmed; a surprising result about the price of protocol layering is presedted as well. These performance lessons, applied in conceq reduce the roundtrip time for a remott procedure call by a remarkable factor of 35. For mod...