Skip to main content

Remote Procedure Calls and the Client/Server Model

  • Chapter
Book cover Guide to Reliable Distributed Systems

Part of the book series: Texts in Computer Science ((TCS))

Abstract

Up to now we have looked at cloud computing from a fairly high level, and used terms such as “client” and “server” in ways intended to evoke the reader’s intuition into the way that modern computing systems work: our mobile devices, laptops and desktop systems operate fairly autonomously, requesting services from servers that might run in a machine up the hall, or might be situated in a massive cloud-computing data center across the country. Here we focus on client/server computing as a model and look at the issues that arise when a client platform cooperates with a server, potentially replicating state or holding locks.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 49.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 64.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 89.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    It is common to call the interface to a program its IDL, although IDL actually is a shorthand for Interface Definition Language, which is the name of the language used to write down the description of such an interface when using CORBA. Thus one often reads about the “IDL” of a Web Services application, despite the fact that such applications describe their interfaces as part of the WSDL document.

  2. 2.

    The author describes this means of attacking an NFS system with some trepidation. Yet the security problem outlined here is so well known, and NFS deployments that disable strong security are so common, that only the most naïve hacker would be unaware of the issue. With this in mind, it seems more important to warn the next generation of system architects about the risk, even knowing that some particularly uninformed hackers could learn of this security hole from this textbook!

  3. 3.

    An important special case arises in settings where each transaction can be represented as a single operation, performing a desired task and then committing or aborting and returning a result. Many distributed systems are said to be transactional but, in fact, operate in this much more restrictive manner. However, even if the application perceives a transaction as being initiated with a single operation, the database system itself may execute that transaction as a series of operations. These observations motivate a number of implementation decisions and optimizations, which we discuss in Chap. 20.

References

  • Alonso, R., Korth, F.: Database issues in nomadic computing. In: Proceedings of the ACM SIGMOD International Conference on Mannagement of Data, Washington, DC, May 1993, pp. 388–392 (1993)

    Google Scholar 

  • Amir, Y.: Replication using group communication over a partitioned network. Ph.D. diss., Hebrew University of Jerusalem (1995)

    Google Scholar 

  • Anderson, D., Franklin, J., Kaminsky, M., Phanishayee, A., Tan, L., Vasudevan, V.: FAWN: A fast array of wimpy nodes. In: Proc. 22nd ACM Symposium on Operating Systems Principles (SOSP), Big Sky, MT, October 2009

    Google Scholar 

  • Anderson, T., et al.: Serverless network file systems. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 109–126. ACM Press, New York (1995). Also ACM Trans. Comput. Syst. 13(1) (1996)

    Chapter  Google Scholar 

  • Baker, M.G., et al.: Measurements of a distributed file system. In: Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, Orcas Island, WA, November 1991, pp. 198–212 (1991)

    Chapter  Google Scholar 

  • Bal, H.E., Kaashoek, M.F., Tanenbaum, A.S.: Orca: A language for parallel programming of distributed systems. IEEE Trans. Softw. Eng. 190–205 (1992)

    Google Scholar 

  • Bartlett, J., Gray, J., Horst, B.: Fault tolerance in tandem computing systems. In: Evolution of Fault-Tolerant Computing, pp. 55–76. Springer, Berlin (1987)

    Chapter  Google Scholar 

  • Bellovin, S.M., Merritt, M.: Limitations of the Kerberos authentication system. Comput. Commun. Rev. 20(5), 119–132 (1990)

    Article  Google Scholar 

  • Berners-Lee, T., et al.: The World Wide Web. Commun. ACM 37(8), 76–82 (1994)

    Article  Google Scholar 

  • Berners-Lee, T., et al.: Hypertext Transfer Protocol—HTTP 1.0. IETF HTTP Working Group Draft 02 (Best Current Practice), August (1995)

    Google Scholar 

  • Bernstein, P.E., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley, Reading (1987)

    Google Scholar 

  • Bhide, A., Elnozahy, E.N., Morgan, S.P.: A highly available network file server. In: Proceedings of the USENIX Winter Conference, Austin, December 1991, pp. 199–205 (1991)

    Google Scholar 

  • Birman, K.P., Glade, B.B.: Consistent failure reporting in reliable communications systems. IEEE Softw., Special Issue on Reliability (1995)

    Google Scholar 

  • Birman, K.P., van Renesse, R. (eds.): Reliable Distributed Computing with the Isis Toolkit. IEEE Computer Society Press, New York (1994)

    Google Scholar 

  • Birman, K.P., van Renesse, R.: Software for reliable networks. Sci. Am. 274(5), 64–69 (1996)

    Article  Google Scholar 

  • Birman, K.P., van Renesse, R.: A history of the virtual synchrony replication model. In: Charron-Bost, B., Pedone, F., Schiper, A. (eds.) Replication: Theory and Practice. Chap. 6. Lecture Notes in Computer Science, vol. 5959, pp. 91–120. Springer, Berlin (2010)

    Google Scholar 

  • Birrell, A.: Secure communication using remote procedure calls. ACM Trans. Comput. Syst. 3(1), 1–14 (1985)

    Article  MathSciNet  Google Scholar 

  • Birrell, A., Nelson, B., Implementing remote procedure call. ACM Trans. Program. Lang. Syst. 2(1), 39–59 (1984)

    Google Scholar 

  • Braun, T., Diot, C.: Protocol implementation using integrated layer processing. In: Proceedings of SIGCOMM-95, September 1995

    Google Scholar 

  • Brockschmidt, K.: Inside OLE-2. Microsoft Press, Redmond (1994)

    Google Scholar 

  • Comer, D.E., Stevens, D.L.: Internetworking with TCP/IP. Client/Server Programming and Applications, vol. III. Prentice Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  • Coulouris, G., Dollimore, J., Kindberg, T.: Distributed Systems: Concepts and Design. Addison-Wesley, Reading (1994)

    Google Scholar 

  • Digital Equipment Corporation: A technical description of the DECsafe available server environment (ASE). Digit. Tech. J. 7(4), 89–100 (1995)

    Google Scholar 

  • Engler, D.R., Kaashoek, M.F., O’Toole, J.: Exokernel: An operating system architecture for application-level resource management. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 251–266. ACM Press, New York (1995)

    Chapter  Google Scholar 

  • Feeley, M., et al.: Implementing global memory management in a workstation cluster. In: Proceedings of the Fifteenth ACM SIGOPS Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 201–212 (1995)

    Chapter  Google Scholar 

  • Ganger, G., McKusick, M., Soules, C., Patt, Y.: Soft updates: A solution to the metadata update problem in file systems. ACM Trans. Comput. Syst. 18(2), 127–153 (2000)

    Article  Google Scholar 

  • Ghemawat, S., Gobioff, H., Leung, S.T.: File and storage systems: The Google file system. In: 19th ACM Symposium on Operating Systems Principles (SOSP), Bolton Landing, NY, October 2003

    Google Scholar 

  • Govindran, R., Anderson, D.P.: Scheduling and IPC mechanisms for continuous media. In: Proceedings of the Twelfth ACM Symposium on Operating Systems Principles, Asilomar, CA, October 1991, pp. 68–80. ACM Press, New York (1991)

    Chapter  Google Scholar 

  • Gray, J.: Notes on database operating systems. In: Operating Systems: An Advanced Course. Lecture Notes in Computer Science, vol. 60, pp. 393–481. Springer, Berlin (1978)

    Google Scholar 

  • Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo (1993)

    MATH  Google Scholar 

  • Hagmann, R.: Reimplementing the cedar file system using logging and group commit. In: Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, Austin, November 1987, pp. 155–171. ACM Press, New York (1987)

    Chapter  Google Scholar 

  • Hartman, J.H., Ousterhout, J.K.: The Zebra striped network file system. In: Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, Asheville, NC, December 1993, pp. 29–43. ACM Press, New York (1993)

    Chapter  Google Scholar 

  • Heidemann, J., Popek, G.: File system development with stackable layers. Commun. ACM 12(1), 58–89 (1994)

    Google Scholar 

  • Heidemann, J., Popek, G.: Performance of cache coherence in stackable filing. In: Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 127–142 (1995)

    Chapter  Google Scholar 

  • Howard, J., et al.: Scale and performance in a distributed file system. In: Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, Austin, November 1987. ACM Press, New York (1987). Also ACM Trans. Comput. Syst. 5(1) (1988)

    Google Scholar 

  • Jacobson, V.: Congestion avoidance and control. In: Proceedings of the ACM SIGCOMM ’88, Palo Alto (1988)

    Google Scholar 

  • Jacobson, V.: Compressing TCP/IP headers for low-speed serial links. Technical Report RFC 114, Network Working Group, February (1990)

    Google Scholar 

  • Johnson, K., Kaashoek, M.F., Wallach, D.: CRL: High-performance all software distributed shared memory. In: Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 213–228 (1995)

    Chapter  Google Scholar 

  • Joseph, A., de Lespinasse, A., Tauber, J., Gifford, D., Kaashoek, F.K.: Rover: A toolkit for mobile information access. In: 15th ACM Symposium on Operating Systems (SOSP), Copper Mountain, CO, December 1995

    Google Scholar 

  • Kistler, J.J., Satyanarayanan, M.: Disconnected operation in the Coda file system. ACM Trans. Comput. Syst. 10(1), 3–25 (1992)

    Article  Google Scholar 

  • Kronenberg, N., Levy, H., Strecker, W.: VAXClusters: A closely-coupled distributed system. In: Proceedings of the Tenth ACM Symposium on Operating Systems Principles, Orcas Island, WA, December 1985. Also ACM Trans. Comput. Syst. 4(2), 130–146 (1986)

    Google Scholar 

  • Ladin, R., Liskov, B., Shrira, L., Ghemawat, S.: Lazy replication: Exploiting the semantics of distributed services. In: Proceedings of the Tenth ACM Symposium on Principles of Distributed Computing, Quebec, August 1990, pp. 43–58. ACM Press, New York (1990)

    Chapter  Google Scholar 

  • Ladin, R., Liskov, B., Shrira, L., Ghemawat, S.: Providing availability using lazy replication. ACM Trans. Comput. Syst. 10(4), 360–391 (1992)

    Article  Google Scholar 

  • Lampson, B., Abadi, M., Burrows, M., Wobber, E.: Authentication in distributed systems: Theory and practice. ACM Trans. Comput. Syst. 10(4), 265–434 (1992)

    Article  Google Scholar 

  • Liskov, B., Scheifler, R.: Guardians actions: Linguist support for robust, distributed programs. ACM Trans. Program. Lang. Syst. 5(3), 381–404 (1983)

    Article  MATH  Google Scholar 

  • Liskov, B., et al.: Replication in the Harp file system. In: Proceedings of the Twelfth ACM Symposium on Operating Systems Principles, Asilomar, CA, October 1991, pp. 226–238. ACM Press, New York (1991)

    Chapter  Google Scholar 

  • Macedo, R.A., Ezhilchlvan, P., Shrivastava, S.: Newtop: A total order multicast protocol using causal blocks. BROADCAST Project Technical Reports, vol. I, Department of Computer Science, University of Newcastle upon Tyne, October (1993)

    Google Scholar 

  • McKusick, M.K., Joy, W., Leffler, S., Fabry, R.S.: A fast file system for UNIX. Comput. Syst. 2(3), 181–197 (1984). Retrieved 2008-12-30

    Google Scholar 

  • Moss, J.E.: Nested transactions and reliable distributed computing. In: Proceedings of the Second Symposium on Reliability in Distributed Software and Database Systems, pp. 33–39 (1982)

    Google Scholar 

  • Mullender, S.J., et al.: Amoeba—A distributed operating system for the 1990s. IEEE Comput. 23(5), 44–53 (1990)

    Article  Google Scholar 

  • Mummert, L.B., Ebling, M.R., Satyanarayanan, M.: Exploiting weak connectivity for mobile file access. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 143–155. ACM Press, New York (1995). Also ACM Trans. Comput. Syst. 13(1) (1996)

    Chapter  Google Scholar 

  • Muthitacharoen, A., Chen, B., Mazieres, D.: A low-bandwidth network file system. In: 18th ACM Symposium on Operating Systems Principles (SOSP ’01), Chateau Lake Louise, Banff, Canada, October 2001

    Google Scholar 

  • Nelson, M., Welsh, B., Ousterhout, J.: Caching in the Sprite network file system. In: Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, Austin, November 1987. ACM Press, New York (1987). Also ACM Trans. Comput. Syst. 6(1) (1988)

    Google Scholar 

  • Ousterhout, J., Da Costa, H., Harrison, D., Kunze, J.A., Kupfer, M., Thompson, J.G.: A trace-driven analysis of the UNIX 4.2 BSD file system. In: Proceedings of the Tenth ACM Symposium on Operating Systems Principles, Orcas Island, WA, December 1985, pp. 15–24. ACM Press, New York (1985)

    Chapter  Google Scholar 

  • Ousterhout, J., et al.: The sprite network operating system. Computer 21(2), 23–36 (1988)

    Article  Google Scholar 

  • Patterson, D., Gibson, G., Katz, R.: A case for redundant arrays of inexpensive disks (RAID). In: Proceedings of the 1988 ACM Conference on Management of Data (SIGMOD), Chicago, June 1988, pp. 109–116 (1988)

    Chapter  Google Scholar 

  • Rashid, R.F.: Threads of a new system. UNIX Rev. 4, 37–49 (1986)

    Google Scholar 

  • Reiher, P., et al.: Resolving file conflicts in the ficus file system. In: Proceedings of the Summer USENIX Conference, June 1994, pp. 183–195 (1994)

    Google Scholar 

  • Rosenblum, M., Ousterhout, J.K.: The design and implementation of a log-structured file system. In: Proceedings of the Twelfth ACM Symposium on Operating Systems Principles, Asilomar, CA, October 1991, pp. 1–15. ACM Press, New York (1991). Also ACM Trans. Comput. Syst. 10(1), 26–52 (1992)

    Chapter  Google Scholar 

  • Santry, D.S., Feeley, M.J., Hutchinson, N.C., Veitch, A.C., Carton, R.W., Ofir, J.: Deciding when to forget in the Elephant file system. In: Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles, SOSP ’99, Charleston, South Carolina, United States, pp. 110–123. ACM, New York (1999)

    Chapter  Google Scholar 

  • Satyanarayanan, M., et al.: The ITC distributed file system: Principles and design. In: Proceedings of the Tenth ACM Symposium on Operating Systems Principles, Orcas Island, WA, December 1985, pp. 35–50. ACM Press, New York (1985)

    Chapter  Google Scholar 

  • Satyanarayanan, M., et al.: Integrating security in a large distributed system. ACM Trans. Comput. Syst. 7(3), 247–280 (1989)

    Article  Google Scholar 

  • Schiller, J.I.: Secure distributed computing. Sci. Am. 72–76 (1994)

    Google Scholar 

  • Schmuck, F., Wyllie, J.: Experience with transactions in quicksilver. In: Proceedings of the Twelfth ACM Symposium on Operating Systems Principles, Asilomar, CA, October 1991, pp. 239–252. ACM Press, New York (1991)

    Chapter  Google Scholar 

  • Shroeder, M., Burrows, M.: Performance of firefly RPC. In: Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, Litchfield Springs, AZ, December 1989, pp. 83–90 (1989). Also ACM Trans. Comput. Syst. 8(1), 1–17 (1990)

    Google Scholar 

  • Siegal, A.: Performance in flexible distributed file systems. Ph.D. diss., Cornell University, February (1992). Also Technical Report TR-92-1266, Department of Computer Science, Cornell University

    Google Scholar 

  • Siegel, A., Birman, K.P., Marzullo, K.: Deceit: A flexible distributed file system. Technical Report 89-1042, Department of Computer Science, Cornell University (1989)

    Google Scholar 

  • Spasojevic, M., Satyanarayanan, M.: An empirical study of a wide area distributed file system. ACM Trans. Comput. Syst. 14(2) (1996)

    Google Scholar 

  • Spector, A.: Distributed transactions for reliable systems. In: Proceedings of the Tenth ACM Symposium on Operating Systems Principles, Orcas Island, WA, December 1985, pp. 12–146 (1985)

    Google Scholar 

  • Srinivasan, V., Mogul, J.: Spritely NFS: Experiments with cache consistency protocols. In: Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, Litchfield Springs, AZ, December 1989, pp. 45–57 (1989)

    Google Scholar 

  • Steiner, J.G., Neuman, B.C., Schiller, J.I.: Kerberos: An authentication service for open network systems. In: Proceedings of the 1988 USENIX Winter Conference, Dallas, February 1988, pp. 191–202 (1988)

    Google Scholar 

  • Tanenbaum, A.: Computer Networks, 2nd edn. Prentice Hall, Englewood Cliffs (1988)

    Google Scholar 

  • Tanenbaum, A., van Renesse, R.: A critique of the remote procedure call paradigm. In: Proceedings of the EUTECO ’88 Conference, Vienna, April 1988, pp. 775–783 (1988)

    Google Scholar 

  • Thekkath, C.A., Levy, H.M.: Limits to low-latency communication on high-speed networks. ACM Trans. Comput. Syst. 11(2), 179–203 (1993)

    Article  Google Scholar 

  • Thekkath, C., Mann, T., Lee, E.: Frangipani: A scalable distributed file system. In: 16th ACM Symposium on Operating Systems Principles (SOSP), Saint-Malo, France, October 1997

    Google Scholar 

  • Vogels, W.: File system usage in Windows NT 4.0. In: Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles, SOSP’99, Charleston, South Carolina, United States, pp. 93–109. ACM, New York (1999)

    Chapter  Google Scholar 

  • von Eicken, T., Basu, A., Buch, V., Vogels, W.: U-Net: A user-level network interface for parallel and distributed computing. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 40–53. ACM Press, New York (1995)

    Chapter  Google Scholar 

  • Walter, B., et al.: The locus distributed operating system. In: Proceedings of the Ninth ACM Symposium on Operating Systems Principles, Bretton Woods, NH, October 1993, pp. 49–70 (1993)

    Google Scholar 

  • Wilkes, J., et al.: The HP AutoRAID hierarchical storage system. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles, Copper Mountain Resort, CO, December 1995, pp. 96–108. ACM Press, New York (1995). Also ACM Trans. Comput. Syst. 13(1) (1996)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag London Limited

About this chapter

Cite this chapter

Birman, K.P. (2012). Remote Procedure Calls and the Client/Server Model. In: Guide to Reliable Distributed Systems. Texts in Computer Science. Springer, London. https://doi.org/10.1007/978-1-4471-2416-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-2416-0_6

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-2415-3

  • Online ISBN: 978-1-4471-2416-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics