On remote procedure call

The Remote Procedure Call (RPC) paradigm is reviewed. The concept is described, along with the backbone structure of the mechanisms that support it. An overview of works in supporting these mechanisms is discussed. Extensions to the paradigm that have been proposed to enlarge its suitability, are studied. The main contributions of this paper are a standard view and classification of RPC mechanisms according to different perspectives, and a snapshot of the paradigm in use today and of goals for the future of RPC.

[1]  Steve Wilbur,et al.  Building distributed systems with remote procedure call , 1987, Softw. Eng. J..

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

[3]  Satish K. Tripathi,et al.  Fault tolerant remote procedure call , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[4]  W. Richard Stevens,et al.  Unix network programming , 1990, CCRV.

[5]  Barton P. Miller,et al.  Distributed upcalls: a mechanism for layering asynchronous abstractions , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[6]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[7]  Andrew P. Black,et al.  The Eden System: A Technical Review , 1985, IEEE Transactions on Software Engineering.

[8]  A.L. Ananda,et al.  ASTRA-an asynchronous remote procedure call facility , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[9]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

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

[11]  David J. Otway,et al.  REX : A Remote Execution Protocol for Object-Oriented Distributed Applications , 1987, ICDCS.

[12]  Guy T. Almes,et al.  The Impact of Language and System on Remote Procedure Call Design , 1986, ICDCS.

[13]  Philip S. Yu,et al.  Performance comparison of active-sender and active-receiver policies for distributed caching , 1992, Proceedings of the First International Symposium on High-Performance Distributed Computing. (HPDC-1).

[14]  Jonathan Schaeffer,et al.  A Template-Based Approach to the Generation of Distributed Applications Using a Network of Workstations , 1991, IEEE Trans. Parallel Distributed Syst..

[15]  Samuel T. Chanson,et al.  Distributed, object-based programming systems , 1991, CSUR.

[16]  Maurice Herlihy,et al.  Limitations of synchronous communication with static process structure in languages for distributed computing , 1986, POPL '86.

[17]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

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

[19]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1990 .

[20]  Wanlei Zhou PM: a system for prototyping and monitoring remote procedure call programs , 1990, SOEN.

[21]  Eric C. Cooper Programming language support for multicast communication in distributed systems , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[22]  Daniel M. Yellin,et al.  Hermes - a language for distributed computing , 1991, Prentice Hall series in innovative technology.

[23]  Brian N. Bershad,et al.  A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems , 1987, IEEE Transactions on Software Engineering.

[24]  Mahadev Satyanarayanan,et al.  Integrating security in a large distributed system , 1989, TOCS.

[25]  Nagui Halim,et al.  A New Programming Methodology for Long-Lived Software Systems , 1984, IBM J. Res. Dev..

[26]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[27]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[28]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[29]  Richard D. Schlichting,et al.  Facilitating Mixed Language Programming in Distrbuted Systems , 1987, IEEE Transactions on Software Engineering.

[30]  Shaula Yemini On the suitability of Ada multitasking for expressing parallel algorithms , 1982, AdaTEC '82.

[31]  David P. Anderson,et al.  Marionette: a system for parallel distributed programming using a master/slave model , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[32]  Polle Zellweger,et al.  The structure of Cedar , 1985, ACM SIGPLAN Notices.

[33]  Santosh K. Shrivastava,et al.  Rajdoot: A Remote Procedure Call Mechanism Supporting Orphan Detection and Killing , 1988, IEEE Trans. Software Eng..

[34]  Michael B. Jones,et al.  Matchmaker: an interface specification language for distributed processing , 1985, POPL.

[35]  Akkihebbal L. Ananda,et al.  A survey of asynchronous remote procedure calls , 1992, OPSR.

[36]  Marvin Theimer,et al.  Heterogeneous process migration by recompilation , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[37]  Mary K. Vernon,et al.  Hardware Support for Interprocess Communication , 1990, IEEE Trans. Parallel Distributed Syst..

[38]  Liba Svobodova Resilient Distributed Computing , 1984, IEEE Transactions on Software Engineering.

[39]  Narain H. Gehani,et al.  Rendezvous Facilities: Concurrent C and the Ada Language , 1988, IEEE Trans. Software Eng..

[40]  Yi-Hsiu Wei,et al.  CONCERT: a high-level-language approach to heterogeneous distributed systems , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[41]  Liam M. Casey,et al.  XMS: A Rendezvous-Based Distributed System Software Architecture , 1985, IEEE Software.

[42]  Brian E. Carpenter,et al.  Experience with remote procedure calls in a real‐time control system , 1984, Softw. Pract. Exp..

[43]  James M. Purtilo,et al.  A Packaging System For Heterogeneous Execution Environments , 1991, IEEE Trans. Software Eng..

[44]  Bruce Jay Nelson Remote procedure call , 1981 .

[45]  Robert E. Strom,et al.  NIL: An integrated language and system for distributed programming , 1983, ACM SIGPLAN Notices.

[46]  Gerald W. Neufeld,et al.  The Design and Implementation of an ASN.1-C Compiler , 1990, IEEE Trans. Software Eng..

[47]  Akkihebbal L. Ananda,et al.  A survey of remote procedure calls , 1990, OPSR.

[48]  Dan C. Marinescu Modeling of Programs with Remote Procedures , 1987, ICDCS.

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

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

[51]  David K. Gifford,et al.  Remote pipes and procedures for efficient distributed communication , 1988, TOCS.

[52]  Andrew P. Black,et al.  Interconnecting heterogeneous computer systems , 1988, CACM.

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

[54]  D SchroederMichael,et al.  Performance of the Firefly RPC , 1990 .

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

[56]  Kwei-Jay Lin,et al.  Atomic Remote Procedure Call , 1985, IEEE Transactions on Software Engineering.

[57]  Michael L. Scott,et al.  Messages vs. remote procedures is a false dichotomy , 1983, SIGP.

[58]  Liuba Shrira,et al.  Efficient at-most-once messages based on synchronized clocks , 1991, TOCS.

[59]  Phillip B. Gibbons A Stub Generator for Multilanguage RPC in Heterogeneous Environments , 1987, IEEE Transactions on Software Engineering.

[60]  Klaus-Peter Löhr,et al.  DAPHNE: support for distributed applications programming in heterogeneous computer networks , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[61]  Robbert van Renesse,et al.  Connecting RPC-Based Distributed Systems Using Wide-Area Networks , 1987, ICDCS.

[62]  Nissim Francez,et al.  Symmetric intertask communication , 1985, TOPL.

[63]  Michael Burrows,et al.  Performance of Firefly RPC , 1990, ACM Trans. Comput. Syst..

[64]  Harvey G. Cragon,et al.  High-speed transformation of primitive data types in a heterogeneous distributed computer system , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[65]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[66]  Santosh K. Shrivastava,et al.  The Design of a Reliable Remote Procedure Call Mechanism , 1982, IEEE Transactions on Computers.

[67]  Paul J. Leach,et al.  The Architecture of an Integrated Local Network , 1983, IEEE J. Sel. Areas Commun..

[68]  Steven P. Miller,et al.  UNIX and Remote Procedure Calls: A Peaceful Coexistence? , 1986, ICDCS.

[69]  Paul J. Leach,et al.  The network computing architecture and system: an environment for developing distributed applications , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.

[70]  Roger M. Needham,et al.  Experience with Grapevine: the growth of a distributed system , 1984, TOCS.

[71]  Andrew S. Tanenbaum,et al.  A Critique of the Remote Procedure Call Paradigm , 1988 .

[72]  T. Bloom,et al.  Communications in the Mercury system , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[73]  Michael L. Scott,et al.  Language Support for Loosely Coupled Distributed Programs , 1987, IEEE Transactions on Software Engineering.