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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
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.
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)
Amir, Y.: Replication using group communication over a partitioned network. Ph.D. diss., Hebrew University of Jerusalem (1995)
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
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)
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)
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)
Bartlett, J., Gray, J., Horst, B.: Fault tolerance in tandem computing systems. In: Evolution of Fault-Tolerant Computing, pp. 55–76. Springer, Berlin (1987)
Bellovin, S.M., Merritt, M.: Limitations of the Kerberos authentication system. Comput. Commun. Rev. 20(5), 119–132 (1990)
Berners-Lee, T., et al.: The World Wide Web. Commun. ACM 37(8), 76–82 (1994)
Berners-Lee, T., et al.: Hypertext Transfer Protocol—HTTP 1.0. IETF HTTP Working Group Draft 02 (Best Current Practice), August (1995)
Bernstein, P.E., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley, Reading (1987)
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)
Birman, K.P., Glade, B.B.: Consistent failure reporting in reliable communications systems. IEEE Softw., Special Issue on Reliability (1995)
Birman, K.P., van Renesse, R. (eds.): Reliable Distributed Computing with the Isis Toolkit. IEEE Computer Society Press, New York (1994)
Birman, K.P., van Renesse, R.: Software for reliable networks. Sci. Am. 274(5), 64–69 (1996)
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)
Birrell, A.: Secure communication using remote procedure calls. ACM Trans. Comput. Syst. 3(1), 1–14 (1985)
Birrell, A., Nelson, B., Implementing remote procedure call. ACM Trans. Program. Lang. Syst. 2(1), 39–59 (1984)
Braun, T., Diot, C.: Protocol implementation using integrated layer processing. In: Proceedings of SIGCOMM-95, September 1995
Brockschmidt, K.: Inside OLE-2. Microsoft Press, Redmond (1994)
Comer, D.E., Stevens, D.L.: Internetworking with TCP/IP. Client/Server Programming and Applications, vol. III. Prentice Hall, Englewood Cliffs (1993)
Coulouris, G., Dollimore, J., Kindberg, T.: Distributed Systems: Concepts and Design. Addison-Wesley, Reading (1994)
Digital Equipment Corporation: A technical description of the DECsafe available server environment (ASE). Digit. Tech. J. 7(4), 89–100 (1995)
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)
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)
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)
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
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)
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)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo (1993)
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)
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)
Heidemann, J., Popek, G.: File system development with stackable layers. Commun. ACM 12(1), 58–89 (1994)
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)
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)
Jacobson, V.: Congestion avoidance and control. In: Proceedings of the ACM SIGCOMM ’88, Palo Alto (1988)
Jacobson, V.: Compressing TCP/IP headers for low-speed serial links. Technical Report RFC 114, Network Working Group, February (1990)
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)
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
Kistler, J.J., Satyanarayanan, M.: Disconnected operation in the Coda file system. ACM Trans. Comput. Syst. 10(1), 3–25 (1992)
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)
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)
Ladin, R., Liskov, B., Shrira, L., Ghemawat, S.: Providing availability using lazy replication. ACM Trans. Comput. Syst. 10(4), 360–391 (1992)
Lampson, B., Abadi, M., Burrows, M., Wobber, E.: Authentication in distributed systems: Theory and practice. ACM Trans. Comput. Syst. 10(4), 265–434 (1992)
Liskov, B., Scheifler, R.: Guardians actions: Linguist support for robust, distributed programs. ACM Trans. Program. Lang. Syst. 5(3), 381–404 (1983)
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)
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)
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
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)
Mullender, S.J., et al.: Amoeba—A distributed operating system for the 1990s. IEEE Comput. 23(5), 44–53 (1990)
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)
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
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)
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)
Ousterhout, J., et al.: The sprite network operating system. Computer 21(2), 23–36 (1988)
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)
Rashid, R.F.: Threads of a new system. UNIX Rev. 4, 37–49 (1986)
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)
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)
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)
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)
Satyanarayanan, M., et al.: Integrating security in a large distributed system. ACM Trans. Comput. Syst. 7(3), 247–280 (1989)
Schiller, J.I.: Secure distributed computing. Sci. Am. 72–76 (1994)
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)
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)
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
Siegel, A., Birman, K.P., Marzullo, K.: Deceit: A flexible distributed file system. Technical Report 89-1042, Department of Computer Science, Cornell University (1989)
Spasojevic, M., Satyanarayanan, M.: An empirical study of a wide area distributed file system. ACM Trans. Comput. Syst. 14(2) (1996)
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)
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)
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)
Tanenbaum, A.: Computer Networks, 2nd edn. Prentice Hall, Englewood Cliffs (1988)
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)
Thekkath, C.A., Levy, H.M.: Limits to low-latency communication on high-speed networks. ACM Trans. Comput. Syst. 11(2), 179–203 (1993)
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
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)
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)
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)
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)
Author information
Authors and Affiliations
Rights 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)