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.
This work was supported by the National Science Foundation under Grant CCF-0448128.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ahern, A., Yoshida, N.: Formalising Java RMI with explicit code mobility. In: Proc. of OOPSLA 2005, pp. 403–422. ACM Press, New York (2005)
Alt, M., Gorlatch, S.: Adapting Java RMI for grid computing. Future Generation Computer Systems 21(5), 699–707 (2005)
Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall PTR, Englewood Cliffs (2003)
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)
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)
Bogle, P., Liskov, B.: Reducing cross domain call overhead using batched futures. ACM SIGPLAN Notices 29(10), 341–354 (1994)
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)
Brown, N., Kindel, C.: Distributed Component Object Model Protocol–DCOM/1.0, Redmond, WA, 1996 (1998)
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)
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)
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)
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)
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)
Detmold, H., Hollfelder, M., Oudshoorn, M.: Ambassadors: structured object mobility in worldwide distributed systems. In: Proc. of ICDCS 1999, pp. 442–449 (1999)
Detmold, H., Oudshoorn, M.: Communication Constructs for High Performance Distributed Computing. In: Proceedings of the 19th Australasian Computer Science Conference, pp. 252–261 (1996)
Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. SIGPLAN Not 42(10), 1–18 (2007)
Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice-Hall, Upper Saddle River (2005)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc, Boston (2002)
Gabriel, R.: Is worse really better? Journal of Object-Oriented Programming (JOOP) 5(4), 501–538 (1992)
Krafzig, D., Banke, K., Slama, D.: Enterprise SOA: service-oriented architecture best practices. Prentice-Hall, Englewood Cliffs (2005)
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)
The Object Management Group (OMG). The Common Object Request Broker: Architecture and Specification (1997)
Patterson, D.A.: Latency lags bandwith. Commun. ACM 47(10), 71–75 (2004)
Peltz, C.: Web services orchestration and choreography. Computer 36(10), 46–52 (2003)
Philippsen, M., Zenger, M.: JavaParty– transparent remote objects in Java. Concurrency Practice and Experience 9(11), 1225–1242 (1997)
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)
Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame, C., Eisler, M., Noveck, D.: Network File System (NFS) version 4 Protocol (2003)
Spiegel, A.: Automatic Distribution of Object Oriented Programs. PhD thesis, FU Berlin, FB Mathematik und Informatik (2002)
Sun Microsystems. Java Remote Method Invocation Specification (1997)
Tanenbaum, A.S., Renesse, R.v.: A critique of the remote procedure call paradigm. In: EUTECO 1988, pp. 775–783. North-Holland, Amsterdam (1988)
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)
Tay, B., Ananda, A.: A survey of remote procedure calls. Operating Systems Review 24(3), 68–79 (1990)
Tilevich, E., Smaragdakis, Y.: J-Orchestra: Enhancing Java programs with distribution capabilities. ACM Transactions on Software Engineering and Methodology (in press)
Vinoski, S.: RPC Under Fire. IEEE Internet Computing, 93–95 (2005)
Vogels, W.: Web services are not distributed objects. IEEE Internet Computing 7(6), 59–66 (2003)
Waldo, J., Wollrath, A., Wyant, G., Kendall, S.: A Note on Distributed Computing. Technical report, Sun Microsystems, Inc. Mountain View, CA, USA (1994)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ibrahim, A., Jiao, Y., Tilevich, E., Cook, W.R. (2009). Remote Batch Invocation for Compositional Object Services. In: Drossopoulou, S. (eds) ECOOP 2009 – Object-Oriented Programming. ECOOP 2009. Lecture Notes in Computer Science, vol 5653. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03013-0_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-03013-0_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03012-3
Online ISBN: 978-3-642-03013-0
eBook Packages: Computer ScienceComputer Science (R0)