Remote Batch Invocation for Compositional Object Services

  • Ali Ibrahim
  • Yang Jiao
  • Eli Tilevich
  • William R. Cook
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5653)

Abstract

Because Remote Procedure Calls do not compose efficiently, designers of distributed object systems use Data Transfer and Remote Façade patterns to create large-granularity interfaces, hard-coded for particular client use cases. As an alternative to RPC-based distributed objects, this paper presents Remote Batch Invocation (RBI), language support for explicit client-defined batches. A Remote Batch statement combines remote and local execution: all the remote code is executed in a single round-trip to the server, where all data sent to the server and results from the batch are communicated in bulk. RBI supports remote blocks, iteration and conditionals, and local handling of remote exceptions. RBI is efficient even for fine-grained interfaces, eliminating the need for hand-optimized server interfaces. We demonstrate RBI with an extension to Java, using RMI internally as the transport layer. RBI supports large-granularity, stateless server interactions, characteristic of service-oriented computing.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Ahern, A., Yoshida, N.: Formalising Java RMI with explicit code mobility. In: Proc. of OOPSLA 2005, pp. 403–422. ACM Press, New York (2005)Google Scholar
  2. 2.
    Alt, M., Gorlatch, S.: Adapting Java RMI for grid computing. Future Generation Computer Systems 21(5), 699–707 (2005)CrossRefGoogle Scholar
  3. 3.
    Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall PTR, Englewood Cliffs (2003)Google Scholar
  4. 4.
    Baduel, L., Baude, F., Caromel, D., Contes, A., Huet, F., Morel, M., Quilici, R.: Programming, Deploying, Composing, for the Grid. In: Grid Computing: Software Environments and Tools. Springer, Heidelberg (2006)Google Scholar
  5. 5.
    Black, A.P., Hutchinson, N.C., Jul, E., Levy, H.M.: The development of the Emerald programming language. In: HOPL III, pp. 11–1–11–51 (2007)Google Scholar
  6. 6.
    Bogle, P., Liskov, B.: Reducing cross domain call overhead using batched futures. ACM SIGPLAN Notices 29(10), 341–354 (1994)CrossRefGoogle Scholar
  7. 7.
    Brevnov, E., Dolgov, Y., Kuznetsov, B., Yershov, D., Shakin, V., Chen, D.-Y., Menon, V., Srinivas, S.: Practical experiences with java software transactional memory. In: PPoPP 2008: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, pp. 287–288. ACM, New York (2008)Google Scholar
  8. 8.
    Brown, N., Kindel, C.: Distributed Component Object Model Protocol–DCOM/1.0, Redmond, WA, 1996 (1998)Google Scholar
  9. 9.
    Cheung Yeung, K., Kelly, P.: Optimising Java RMI Programs by Communication Restructuring. In: Endler, M., Schmidt, D.C. (eds.) Middleware 2003. LNCS, vol. 2672. Springer, Heidelberg (2003)Google Scholar
  10. 10.
    Chong, S., Liu, J., Myers, A.C., Qi, X., Vikram, K., Zheng, L., Zheng, X.: Secure web application via automatic partitioning. In: SOSP 2007: Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, pp. 31–44. ACM, New York (2007)CrossRefGoogle Scholar
  11. 11.
    Cook, W., Barfield, J.: Web Services versus Distributed Objects: A Case Study of Performance and Interface Design. In: the IEEE International Conference on Web Services (ICWS 2006), pp. 419–426 (2006)Google Scholar
  12. 12.
    Damm, C., Eugster, P., Guerraoui, R.: Linguistic support for distributed programming abstractions. In: Proceedings of 24th International Conference on Distributed Computing Systems, pp. 244–251 (2004)Google Scholar
  13. 13.
    Demarey, C., Harbonnier, G., Rouvoy, R., Merle, P.: Benchmarking the Round-Trip Latency of Various Java-Based Middleware Platforms. Studia Informatica Universalis Regular Issue 4(1), 7–24 (2005)Google Scholar
  14. 14.
    Detmold, H., Hollfelder, M., Oudshoorn, M.: Ambassadors: structured object mobility in worldwide distributed systems. In: Proc. of ICDCS 1999, pp. 442–449 (1999)Google Scholar
  15. 15.
    Detmold, H., Oudshoorn, M.: Communication Constructs for High Performance Distributed Computing. In: Proceedings of the 19th Australasian Computer Science Conference, pp. 252–261 (1996)Google Scholar
  16. 16.
    Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. SIGPLAN Not 42(10), 1–18 (2007)CrossRefMATHGoogle Scholar
  17. 17.
    Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice-Hall, Upper Saddle River (2005)Google Scholar
  18. 18.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc, Boston (2002)Google Scholar
  19. 19.
    Gabriel, R.: Is worse really better? Journal of Object-Oriented Programming (JOOP) 5(4), 501–538 (1992)Google Scholar
  20. 20.
    Krafzig, D., Banke, K., Slama, D.: Enterprise SOA: service-oriented architecture best practices. Prentice-Hall, Englewood Cliffs (2005)Google Scholar
  21. 21.
    Marques, E.: A study on the optimisation of Java RMI programs. Master’s thesis, Imperial College of Science Technology and Medicine, University of London (1998)Google Scholar
  22. 22.
    The Object Management Group (OMG). The Common Object Request Broker: Architecture and Specification (1997)Google Scholar
  23. 23.
    Patterson, D.A.: Latency lags bandwith. Commun. ACM 47(10), 71–75 (2004)CrossRefGoogle Scholar
  24. 24.
    Peltz, C.: Web services orchestration and choreography. Computer 36(10), 46–52 (2003)CrossRefGoogle Scholar
  25. 25.
    Philippsen, M., Zenger, M.: JavaParty– transparent remote objects in Java. Concurrency Practice and Experience 9(11), 1225–1242 (1997)CrossRefGoogle Scholar
  26. 26.
    Saif, U., Greaves, D.: Communication primitives for ubiquitous systems or RPC consideredharmful. In: 2001 International Conference on Distributed Computing Systems Workshop, pp. 240–245 (2001)Google Scholar
  27. 27.
    Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame, C., Eisler, M., Noveck, D.: Network File System (NFS) version 4 Protocol (2003)Google Scholar
  28. 28.
    Spiegel, A.: Automatic Distribution of Object Oriented Programs. PhD thesis, FU Berlin, FB Mathematik und Informatik (2002)Google Scholar
  29. 29.
    Sun Microsystems. Java Remote Method Invocation Specification (1997)Google Scholar
  30. 30.
    Tanenbaum, A.S., Renesse, R.v.: A critique of the remote procedure call paradigm. In: EUTECO 1988, pp. 775–783. North-Holland, Amsterdam (1988)Google Scholar
  31. 31.
    Tatsubori, M., Sasaki, T., Chiba, S., Itano, K.: A Bytecode Translator for Distributed Execution of “Legacy” Java Software. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 236. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  32. 32.
    Tay, B., Ananda, A.: A survey of remote procedure calls. Operating Systems Review 24(3), 68–79 (1990)CrossRefGoogle Scholar
  33. 33.
    Tilevich, E., Smaragdakis, Y.: J-Orchestra: Enhancing Java programs with distribution capabilities. ACM Transactions on Software Engineering and Methodology (in press)Google Scholar
  34. 34.
    Vinoski, S.: RPC Under Fire. IEEE Internet Computing, 93–95 (2005)Google Scholar
  35. 35.
    Vogels, W.: Web services are not distributed objects. IEEE Internet Computing 7(6), 59–66 (2003)CrossRefGoogle Scholar
  36. 36.
    Waldo, J., Wollrath, A., Wyant, G., Kendall, S.: A Note on Distributed Computing. Technical report, Sun Microsystems, Inc. Mountain View, CA, USA (1994)Google Scholar
  37. 37.
    Wiedermann, B., Ibrahim, A., Cook, W.R.: Interprocedural query extraction for transparent persistence. In: OOPSLA 2008: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, pp. 19–36. ACM Press, New York (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Ali Ibrahim
    • 2
  • Yang Jiao
    • 1
  • Eli Tilevich
    • 1
  • William R. Cook
    • 2
  1. 1.Computer Science DepartmentVirginia TechUSA
  2. 2.Department of Computer SciencesThe University of Texas at AustinUSA

Personalised recommendations