skip to main content
article
Free access

A survey of asynchronous remote procedure calls

Published: 01 April 1992 Publication History

Abstract

Remote Procedure Call (RPC) is a popular paradigm for interprocess communication in distributed systems. It is simple, flexible and powerful. However, most of the RPC systems today are synchronous in nature, and hence fail to exploit fully the parallelism inherent in distributed applications. In view of this, various asynchronous RPC systems have been designed and implemented to achieve higher parallelism while retaining the familiarity and simplicity of synchronous RPC. Asynchronous RPC calls do not block the caller (client) and the replies can be received as and when they are needed, thus allowing the client execution to proceed locally in parallel with the callee (server) invocation. Asynchronous RPC calls can be classified into two types depending on whether the calls return a value. Most asynchronous RPC systems only support calls that do not return a value, and few support both classes. In this paper, an analysis and comparison of various asynchronous RPC systems are presented.

References

[1]
[Ananda et al. 91] A.L. Ananda, B.H. Tay, and E.K. Koh, "ASTRA - An Asynchronous Remote Procedure Call Facility", Proc of the 11th International Conference on Distributed Computing Systems (ICDCS-11), IEEE, Arlington, Texas, United States, May 20-24, 1991, pp.172-180.
[2]
[Bal et al. 87] Bal, H.E., Renesse, R. van, and Tanenbaum, A.S., "Implementing Distributed Algorithms using Remote Procedure Call", Proc. National Computer Conference, AFIPS, pp. 499-505, 1987.
[3]
[Bershad et al. 87] 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. 13, No. 8, Aug. 1987, pp. 880-894.
[4]
[Bershad et al. 89] Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy, "Lightweight Remote Procedure Call", Proc. of 12th Symp. on Operating Systems Principles, Dec. 1989, pp. 102-113.
[5]
[Birrell and Nelson 84] 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.
[6]
[Champine et al. 90] George A. Champine, Daniel E. Geer, Jr., and William N. Ruh, "Project Athena as a Distributed Computer System", Computer, Sep. 1990, pp. 40-51.
[7]
[Cheriton 86] Cheriton, D.R., "VMTP: A Transport Protocol for the Next Generation of Communication System", Proc. of SIGCOMM'86, Aug. 1986, pp. 406-415.
[8]
[Dineen et al. 87] 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 USENIX Conference (Phoenix, Ariz., June). USENIX Association, Berkeley, Calif., 1987, pp. 385-398.
[9]
[Gifford and Glasser 88] David K. Gifford and Nathan Glasser, "Remote Pipes and Procedures for Efficient Distributed Communication", ACM Trans. on Computer Syst., Vol. 6, No. 3, Aug. 1988, pp. 258-283.
[10]
[Liskov 88] B. Liskov, "Distributed Programming in Argus", Comm. of the ACM, Vol. 31, No. 3, Mar. 1988, pp. 300-312.
[11]
[Liskov et al. 88] B. Liskov, T. Bloom, D. Gifford, R. Scheifler, and W.E. Weihl, "Communication in the Mercury System", in Proc. 21st Annu. Hawaii Int. Conf. Syst. Sc., Jan. 1988.
[12]
[Liskov and Shrira 88] B. Liskov and Shrira, "Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems", in Proc. of the SIGPLAN'88 Conference on Programming Language Design and Implementation, Atlanta, Georgia, June 22-24, 1988, pp. 260-267.
[13]
[Mullender et al. 90] Sape J. Mullender, and Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans van Staveren, "Amoeba: A Distributed Operating Systems for the 1990s", Computer, May 1990, pp. 44-53.
[14]
[Nelson 81] Nelson, B., "Remote Procedure Call", Report CSL-81-9, Xerox Palo Alto Research Center, May 1981.
[15]
[Ousterhout et al. 88] John K. Ousterhout, Andrew R. Cherenson, Frederick Douglis, Michael N. Nelson, and Brent B. Welch, "The Sprite Network Operating System", Computer, Feb. 1988, pp. 23-36.
[16]
[Satyanarayanan and Siegel 90] 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.
[17]
[Satyanarayanan 90] M. Satyanarayanan, "Scalable, Secure, and Highly Available Distributed File Access", Computer, May 1990, pp. 9-21.
[18]
[Schantz et al. 86] R. Schantz, R. Thomas and G. Bono, "The Architecture of the CRONUS Distributed Operating System", Proc of 6th International Conference on Distributed Computing System, Cambridge, Massachusetts, May 19-23, 1986, pp. 250-259.
[19]
[Souza and Miller 86] Robert J. Souza and Steven P. Miller, "Unix and Remote Procedure Calls: A Peaceful Coexistence?", Proc of 6th International Conference on Distributed Computing System, Cambridge, Massachusetts, May 19-23, 1986, pp. 268-277.
[20]
[Sechrest 86] 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.
[21]
[Spector 82] Spector, A.Z., "Performing Remote Operations Efficiently on a Local Computer Network", Comm. of the ACM, Vol. 25, No. 4, Apr. 1982, pp. 246-260.
[22]
[Sun 87] Sun Microsystems, "XDR: External Data Representation Standard (RFC 1014)", in lnternet Network Working Group Request for Comments, No. 1014, Network Information Center, SRI International, Jun. 1987.
[23]
[Sun 88] 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.
[24]
[Tay and Ananda 90] B.H. Tay and A.L. Ananda, "A Survey of Remote Procedure Calls", ACM Operating Systems Review, Vol. 24, No. 3, July 1990.
[25]
[Walker et al. 90] Edward F. Walker, Richard Floyd, and Paul Neves, "Asynchronous Remote Operation Execution in Distributed Systems", Proc. 10th Intl. Conf. on Distributed Computing Systems (ICDCS-10), IEEE, Paris, France, May 28-June 1, 1990, pp. 253-259.
[26]
[Walker 90] Edward F. Walker, Private Communication, Oct. 1990.
[27]
[Wilbur and Bacarisse 87] 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.
[28]
[Zahn et al. 90] 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, 1990.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 26, Issue 2
April 1992
114 pages
ISSN:0163-5980
DOI:10.1145/142111
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 1992
Published in SIGOPS Volume 26, Issue 2

Check for updates

Author Tags

  1. asynchronous RPC
  2. distributed systems
  3. high-throughput
  4. interprocess communication (IPC)
  5. intra-machine call
  6. low-latency
  7. parallelism
  8. remote procedure call (RPC)
  9. synchronous RPC
  10. transport-independent

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)85
  • Downloads (Last 6 weeks)17
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all

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