Remote Procedure Calls and the Client/Server Model

  • Kenneth P. Birman
Part of the Texts in Computer Science book series (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.

Keywords

QuickSilver Coherence Product Line Arena Prefix 

References

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

Copyright information

© Springer-Verlag London Limited 2012

Authors and Affiliations

  • Kenneth P. Birman
    • 1
  1. 1.Department of Computer ScienceCornell UniversityIthacaUSA

Personalised recommendations