Remote evaluation

A new technique for computer-to-computer communication is presented that can increase the performance of distributed systems. This technique, called remote evaluation, lets one computer send another computer a request in the form of a program. A computer that receives such a request executes the program in the request and returns the results to the sending computer. Remote evaluation provides a new degree of flexibility in the design of distributed systems. In present distributed systems that use remote procedure calls, server computers are designed to offer a fixed set of services. In a system that uses remote evaluation, server computers are more properly viewed as programmable processors. One consequence of this flexibility is that remote evaluation can reduce the amount of communication that is required to accomplish a given task. In this paper we discuss the semantics of remote evaluation and its effect on distributed system design. We also summarize our experience with a prototype implementation.

[1]  Steven R. Vegdahl Moving structures between Smalltalk images , 1986, OOPSLA 1986.

[2]  James Gosling SunDew—a distributed and extensible window system , 1986 .

[3]  R. Stockton Gaines,et al.  An operating system based on the concept of a supervisory computer , 1972, CACM.

[4]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

[5]  F. Warren Burton,et al.  Annotations to Control Parallelism and Reduction Order in the Distributed Evaluation of Functional Programs , 1984, TOPL.

[6]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[7]  M. P. Atkinsonidl IDL: A machine‐independent data language , 1977 .

[8]  M. P. Herlihy TRANSMITTING ABSTRACT VALUES IN MESSAGES , 1980 .

[9]  David Kenneth Gifford,et al.  Information storage in a decentralized computer system , 1981 .

[10]  Yutaka Matsushita,et al.  An Approach for Customizing Services of Database Machines , 1987, IWDM.

[11]  Dennis R. Wixon,et al.  Building a user-derived interface , 1984, CACM.

[12]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[13]  James E. Donahue,et al.  Complementary Definitions of Programming Language Semantics , 1976, Lecture Notes in Computer Science.

[14]  Joseph R. Falcone A programmable interface language for heterogeneous distributed systems , 1987, TOCS.

[15]  Dean Daniels,et al.  An Introduction to Distributed Query Compilation in R* , 1982, DDB.

[16]  William G. Griswold,et al.  Extension and software development , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[17]  Barbara Liskov,et al.  Guardians and Actions: Linguistic Support for Robust, Distributed Programs , 1983, TOPL.

[18]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[19]  Andrew Birrell Secure communication using remote procedure calls , 1985, TOCS.

[20]  Donald E. Eastlake Tertiary Memory Access and Performance in the Datacomputer , 1977, VLDB.

[21]  Craig Schaffert,et al.  CLU Reference Manual , 1984, Lecture Notes in Computer Science.

[22]  Maurice Herlihy,et al.  A Value Transmission Method for Abstract Data Types , 1982, TOPL.

[23]  Jerry Farrell,et al.  The Datacomputer - A Network Data Utility , 1976, Berkeley Workshop.

[24]  Gary Hallmark Function Request Shipping in a Database Machine Environment , 1989, IWDM.

[25]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[26]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[27]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[28]  Ossama Ibrahim El-Dessouki,et al.  Program partitioning and load balancing in network computers. , 1978 .

[29]  Barton P. Miller,et al.  CLAM- an open system for graphical user interfaces , 1987, OOPSLA '87.

[30]  Thomas Marill,et al.  The datacomputer: a network data utility , 1975, AFIPS '75.

[31]  Patrick Valduriez,et al.  Parallel Execution Strategies for Declustered Databases , 1987, IWDM.

[32]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[33]  Laura M. Haas,et al.  Computation and communication in R*: a distributed database manager , 1984, TOCS.

[34]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .

[35]  Warren Teitelman X11/NeWS design overview , 1989, Digest of Papers. COMPCON Spring 89. Thirty-Fourth IEEE Computer Society International Conference: Intellectual Leverage.

[36]  Adobe Press,et al.  PostScript Language Reference Manual , 1985 .

[37]  David Notkin,et al.  Heterogeneous computing environments: report on the ACM SIGOPS workshop on accommodating heterogeneity , 1987, CACM.