[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Free access

A survey of remote procedure calls

Published: 01 July 1990 Publication History

Abstract

The Remote Procedure Call (RPC) is a popular paradigm for inter-process communication (IPC) between processes in different computers across the network. It is widely used in various Distributed Systems. Although it is conceptually simple and straightforward to implement, there are a lot of different and subtle issues involved which result different RPC implementations. In this paper, various distinctive RPC implementations are surveyed, analyzed and compared: Xerox Courier RPC, Xerox Cedar RPC, Sun ONC/RPC, Apollo NCA/RPC, Cambridge Mayflower Project RPC, MIT Athena Project RPC, Stanford Modula/V RPC, and Rajdoot RPC are presented. The design objectives, features provided, call semantics, orphan treatment, binding, transport protocols supported, security/authentication, data representation and application programming interface of these RPCs are examined.

References

[1]
[1] Project Athena Executive Committee, "An Introduction to Project Athena", MIT, 1983.
[2]
[2] Almes, G., "The Impact of Language and System on Remote Procedure Call Design", Proc. of 6th International Conference on Distributed Computing Systems, May 1986, pp. 414-421.
[3]
[3] Geoff Arnold, "Internet Protocol Implementation Experiences in PC-NFS", ACM Symp. on Oper. Syst. Principles, Nov 1987, pp. 8-14.
[4]
[4] J. M. Bacon and K. G. Hamilton, "Distributed Computing with the RPC: the Cambridge Approach", Distributed Processing, IFIP, North-Holland, 1988, pp. 355-369.
[5]
[5] Bershad B. N., Ching D. T., Lazowska E. D., Sanislo J., Schwartz M., "A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems", IEEE Trans. on Software Eng., Vol. SE-13, No. 8, Aug 1987, pp. 880-894.
[6]
[6] Birrell A. D. and Nelson B. J., "Implementing Remote Procedure Calls", ACM Trans. on Computer Systems, Vol. 2, No. 1, Feb 1984, pp. 39-59.
[7]
[7] Nelson, B. J., "Remote Procedure Call", Tech. Rep. CSL-81-9, Xerox Palo Alto Research Center, Palo Alto, Calif. 1981.
[8]
[8] Cheriton, D. R., "The V kernel: A Software Base for Distributed Systems", IEEE Software, Vol. 1, No. 2, 1984, pp. 19-42.
[9]
[9] Cheriton, D. R., "VMTP: A Transport Protocol for the next generation of Communication System", In Sym. on Communication Architectures and Protocols, ACM SIGCOMM, Aug 1986, pp. 406-415.
[10]
[10] Cooper, E. C., "Replicated Procedure Calls", Proc. of 3rd ACM Symp. on Principles of Distributed Computing, Aug 1984.
[11]
[11] Eric C. Cooper, "Circus: A Replicated Procedure Call Facility", Proc. of 4th Symp. on Reliability in Distributed Software and Database Systems, Oct 1984, pp. 11-24.
[12]
[12] Dineen, T. H., Leach, P. J., Mishkin, N. W., Pato, J. N., and Wyant, G. L., "The Network Computing Architecture and System: An Environment for Developing Distributed Applications", In Proc. of the 1987 Summer USENIX Conference (Phoenix, Ariz., June), USENIX Association, Berkeley, Calif., 1987, pp. 385-398.
[13]
[13] Mike Kong, Terence H. Dineen, Paul J. Leach, Elizabeth A. Martin, Nathaniel W. Mishkin, Joseph N. Pato, and Geoffrey L. Wyant, Network Computing System Reference Manual, Prentice-Hall, Englewood Cliffs, N. J., 1990.
[14]
[14] Leffler, S. J., Fabry, R. S., W. N., Lapsley, P. Miller, S., and Torek, C., "An Advanced 4.3 BSD Interprocess Communication Tutorial", Unix Programmer's Supplementary Documents, Vol. 1 (PS1), 4.3 Berkeley Software Distribution, Computer Systems Research Group, Computer Science Division, Univ. of California, Berkeley, Calif., Apr 1986.
[15]
[15] Joshua Levy, "A Comparison of Commercial RPC Systems", Atherton Technology, 1989.
[16]
[16] Barbara Liskov, Dorothy Curtis, Paul Johnson, Robert Scheifler, "Implementation of Argus", ACM Symp. on Oper. Syst. Principles, 1987, pp. 111-122.
[17]
[17] Barbara Liskov, "Distributed Programming in Argus", Comm. of ACM, Vol. 31, No. 3, Mar 1988, pp. 300-312.
[18]
[18] F. Panzieri and S. K. Shrivastava, "Rajdoot: A Remote Procedure Call Mechanism Supporting Orphan Detection and Killing", IEEE Trans. on Software Eng., Vol. 14, No. 1, Jan 1988.
[19]
[19] Russel Sandberg, "The SUN Network File System: Design, Implementation and Experience", Proc. of USENIX Conference, 1986, pp. 150-166.
[20]
[20] M. Satyanarayanan and E. H. Siegel, "Multi-RPC: A Parallel Remote Procedure Call Mechanism", Tech. Rep. CMU-CS-86-139/CMU-ITC-047, Carnegie Mellon Univ. Aug 1986.
[21]
[21] M. Satyanarayanan and E. H. Siegel, "Parallel Communication in a Large Distributed Environment", IEEE Trans. on Computers, Vol. 39, No. 3, Mar 1990, pp. 323-348.
[22]
[22] Stuart Sechrest, "An Introductory 4.3BSD Interprocess Communication Tutorial", Unix Programmer's Supplementary Documents, Vol. 1 (PS1), 4.3 Berkeley Software Distribution, Computer Systems Research Group, Computer Science Division, Univ. of California, Berkeley, Calif., Apr 1986.
[23]
[23] Shrivastava S. and Panzieri F., "The Design of a Reliable Remote Procedure Call Mechanism", IEEE Trans. Computers, Vol. 31, No. 7, Jul 1982, pp. 692-697.
[24]
[24] S. K. Shrivastava, "On the Treatment of Orphans in a Distributed System", Proc. of 3rd Symp. Reliability Distributed Software and Database Systems, Oct 1983, pp. 155-162.
[25]
[25] Alfred Z. Spector, "Perform Remote Operations Efficiently on a Local Computer Network", Comm. of ACM, Vol. 25, No. 4, Apr 1982, pp. 246-260.
[26]
[26] Robert J. Souza and Steven P. Miller, "Unix and Remote Procedure Calls: A Peaceful Coexistence?", Proc. 6th IEEE International Conference on Distributed Computing Systems, 1986.
[27]
[27] Sun Microsystems, "XDR: External Data Representation Standard (RFC 1014)", in Internet Network Working Group Request for Comments, No. 1014, Network Information Center, SRI International, Jun 1987.
[28]
[28] Sun Microsystems, "RPC: Remote Procedure Call Protocol Specification Version 2 (RFC 1057)", in Internet Network Working Group Request for Comments, No. 1057, Network Information Center, SRI International, Jun 1988.
[29]
[29] Sun Microsystems, "NFS: Network File System Protocol Specification (RFC 1094)", in Internet Network Working Group Request for Comments, No. 1094, Network Information Center, SRI International, Mar 1989.
[30]
[30] A. S. Tanenbaum and Robbert van Renesse, "Reliability Issues in Distributed Operating Systems", Proc. of 6th Symp. on Reliability in Distributed Software and Database Systems, Kingsmill Williamburg, VA, Mar 1987.
[31]
[31] Tanenbaum, A. S. and van Renesse, R., "A Critique of the Remote Procedure Call Paradigm", Research into Networks and Distributed Applications (Edt. by R. Speth), Elsevier Science Publishers B. V. (North-Holland), Apr 1988.
[32]
[32] Tanenbaum, A. S., Renesse, R. van, Staveren, H. van., Sharp, G. J., Mullender, S. J., Jansen, A. J., and Rossum, G. van, "Experiences with the Amoeba Distributed Operating System", Report IR-194, Dept of Mathematics and Computer Science, Vrije Universiteit, July 1989 (accepted for publication).
[33]
[33] Mullender, S. J., Rossum, G. van, Tanenbaum, A. S., Renesse, R. van, Staveren, H. van., "Amoeba - A Distributed Operating System for the 1990", To be published in IEEE Computer, May 1990.
[34]
[34] Steve Wilbur, Ben Bacarisse, "Building Distributed Systems with Remote Procedure Call", Software Eng. Journal, Sep 1987, pp. 148-159, also appeared in UCL-CS TR 141, Dept. of Comp. Sc., Univ. College London.
[35]
[35] Xerox Corporation, "Courier: The Remote Procedure Call Protocol", Xerox System Integration Standard 038112, Xerox OPD, Dec 1981.
[36]
[36] Yap, M., P. Jalote and S. K. Tripathi, "Fault Tolerant Remote Procedure Call", Proc. of 8th International Conference on Distributed Computing Systems, Jun 1988, pp. 48-54.
[37]
[37] Lisa Zahn, Terence H. Dineen, Paul J. Leach, Elizabeth A. Martin, Nathaniel W. Mishkin, Joseph N. Pato, and Geoffrey L. Wyant, Network Computing Architecture, Prentice-Hall, Englewood Cliffs, N. J., 1990.

Cited By

View all
  • (2024)Chronos: Finding Timeout Bugs in Practical Distributed Systems by Deep-Priority Fuzzing with Transient Delay2024 IEEE Symposium on Security and Privacy (SP)10.1109/SP54263.2024.00109(1939-1955)Online publication date: 19-May-2024
  • (2024)A high-fidelity ensemble simulation framework for interrogating wildland-fire behaviour and benchmarking machine learning modelsInternational Journal of Wildland Fire10.1071/WF2409733:12Online publication date: 22-Nov-2024
  • (2024)Modern computing: Vision and challengesTelematics and Informatics Reports10.1016/j.teler.2024.10011613(100116)Online publication date: Mar-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 24, Issue 3
July 1990
74 pages
ISSN:0163-5980
DOI:10.1145/382244
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1990
Published in SIGOPS Volume 24, Issue 3

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)384
  • Downloads (Last 6 weeks)37
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Chronos: Finding Timeout Bugs in Practical Distributed Systems by Deep-Priority Fuzzing with Transient Delay2024 IEEE Symposium on Security and Privacy (SP)10.1109/SP54263.2024.00109(1939-1955)Online publication date: 19-May-2024
  • (2024)A high-fidelity ensemble simulation framework for interrogating wildland-fire behaviour and benchmarking machine learning modelsInternational Journal of Wildland Fire10.1071/WF2409733:12Online publication date: 22-Nov-2024
  • (2024)Modern computing: Vision and challengesTelematics and Informatics Reports10.1016/j.teler.2024.10011613(100116)Online publication date: Mar-2024
  • (2022)WREP: A lightweight event real-time processing engine for IoT2022 7th IEEE International Conference on Data Science in Cyberspace (DSC)10.1109/DSC55868.2022.00018(79-85)Online publication date: Jul-2022
  • (2022)The Evolution of Operating SystemsClassic Operating Systems10.1007/978-1-4757-3510-9_1(1-34)Online publication date: 3-Aug-2022
  • (2021)The Design of a Protocal Buffer Library for Vala2021 IEEE 15th International Conference on Electronic Measurement & Instruments (ICEMI)10.1109/ICEMI52946.2021.9679656(51-55)Online publication date: 29-Oct-2021
  • (2021)Guarded attribute grammars and publish/subscribe for implementing distributed collaborative business processes with high data availabilityService Oriented Computing and Applications10.1007/s11761-021-00319-z15:3(245-256)Online publication date: 1-Sep-2021
  • (2020)Decentralized ComputingQueue10.1145/3434571.343696418:5(41-53)Online publication date: 16-Nov-2020
  • (2020)HovercRaftProceedings of the Fifteenth European Conference on Computer Systems10.1145/3342195.3387545(1-17)Online publication date: 15-Apr-2020
  • (2018)A survey on reliable distributed communicationJournal of Systems and Software10.1016/j.jss.2017.03.028137(713-732)Online publication date: Mar-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media