Remote evaluation
- 1 October 1990
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 12 (4) , 537-564
- https://doi.org/10.1145/88616.88631
Abstract
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.Keywords
This publication has 16 references indexed in Scilit:
- Fine-grained mobility in the Emerald systemACM Transactions on Computer Systems, 1988
- A programmable interface language for heterogeneous distributed systemsACM Transactions on Computer Systems, 1987
- Secure communication using remote procedure callsACM Transactions on Computer Systems, 1985
- Annotations to Control Parallelism and Reduction Order in the Distributed Evaluation of Functional ProgramsACM Transactions on Programming Languages and Systems, 1984
- Computation and communication in R*ACM Transactions on Computer Systems, 1984
- Guardians and Actions: Linguistic Support for Robust, Distributed ProgramsACM Transactions on Programming Languages and Systems, 1983
- A Value Transmission Method for Abstract Data TypesACM Transactions on Programming Languages and Systems, 1982
- GrapevineCommunications of the ACM, 1982
- The Lisp Machine manualACM SIGART Bulletin, 1981
- An operating system based on the concept of a supervisory computerCommunications of the ACM, 1972