Skip to main content

J-Orchestra: Automatic Java Application Partitioning

  • Conference paper
  • First Online:
ECOOP 2002 — Object-Oriented Programming (ECOOP 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2374))

Included in the following conference series:

Abstract

J-Orchestra is an automatic partitioning system for Java programs. J-Orchestra takes as input Java applications in bytecode format and transforms them into distributed applications, running on distinct Java Virtual Machines. To accomplish such automatic partitioning, J-Orchestra uses bytecode rewriting to substitute method calls with remote method calls, direct object references with proxy references, etc. Using J-Orchestra does not require great sophistication in distributed system methodology—the user only has to specify the network location of various hardware and software resources and their corresponding application classes. J-Orchestra has significant generality, flexibility, and degree of automation advantages compared to previous work on automatic partitioning. For instance, J-Orchestra can correctly partition almost any pure Java program, allowing any application object to be placed on any machine, regardless of how application objects access each other and Java system objects. This power is due to the novel way that J-Orchestra deals with unmodifiable code (e.g., native code in the Java system classes). Additionally, J-Orchestra offers support for object migration and run-time optimizations, like the lazy creation of distributed objects.

We have used J-Orchestra to successfully partition several realistic applications including a command line shell, a ray tracer, and several applications with native dependencies (sound, graphics).

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bowen Alpern, Anthony Cocchi, Stephen Fink, David Grove, and Derek Lieber, “Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless”, in Proc. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2001.

    Google Scholar 

  2. Yariv Aridor, Michael Factor, and Avi Teperman, “CJVM: a Single System Image of a JVM on a Cluster”, in Proc. ICPP’99.

    Google Scholar 

  3. Henri E. Bal, Raoul Bhoedjang, Rutger Hofman, Ceriel Jacobs, Koen Langendoen, Tim Ruhl, and M. Frans Kaashoek, “Performance Evaluation of the Orca Shared-Object System”, ACM Trans. on Computer Systems, 16(1): 1–40, February 1998.

    Google Scholar 

  4. Andrew Black, Norman Hutchinson, Eric Jul, Henry Levy, and Larry Carter, “Distribution and Abstract Types in Emerald”, in IEEE Trans. Softw. Eng., 13(1):65–76, 1987.

    Article  Google Scholar 

  5. John B. Carter, John K. Bennett, and Willy Zwaenepoel, “Implementation and performance of Munin”, Proc. 13th ACM Symposium on Operating Systems Principles, pp. 152–164, October 1991.

    Google Scholar 

  6. Markus Dahm, “Doorastha—a step towards distribution transparency”, JIT, 2000. See http://www.inf.fu-berlin.de/~dahm/doorastha/.

  7. James Gosling, Bill Joy, Guy Steele, and Gilad Bracha, The Java Language Specification, 2nd Ed., The Java Series, Addison-Wesley, 2000.

    Google Scholar 

  8. Bernhard Haumacher, Jürgen Reuter, Michael Philippsen, “JavaParty: A distributed companion to Java”, http://wwwipd.ira.uka.de/JavaParty/

  9. Galen C. Hunt, and Michael L. Scott, “The Coign Automatic Distributed Partitioning System”, 3rd Symposium on Operating System Design and Implementation (OSDI’99), pp. 187–200, New Orleans, 1999.

    Google Scholar 

  10. Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black, “Fine-Grained Mobility in the Emerald System”, ACM Trans. on Computer Systems, 6(1): 109–133, February 1988.

    Google Scholar 

  11. Nelson King, “Partitioning Applications”, DBMS and Internet Systems magazine, May 1997. See http://www.dbmsmag.com/9705d13.html.

  12. Christian Nester, Michael Phillipsen, and Bernhard Haumacher, “A More Efficient RMI for Java”, in Proc. ACM Java Grande Conference, 1999.

    Google Scholar 

  13. Michael Philippsen and Matthias Zenger, “JavaParty-Transparent Remote Objects in Java”, Concurrency: Practice and Experience, 9(11):1125–1242, 1997.

    Article  Google Scholar 

  14. Robert W. Scheifler, and Jim Gettys, “The X Window System”, ACM Transactions on Graphics, 5(2): 79–109, April 1986.

    Google Scholar 

  15. Robert W. Scheifler, “X Window System Protocol, Version 11”, Network Working Group RFC 1013, April 1987.

    Google Scholar 

  16. Andre Spiegel, “Pangaea: An Automatic Distribution Front-End for Java”, 4th IEEE Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS’ 99), San Juan, Puerto Rico, April 1999.

    Google Scholar 

  17. Andre Spiegel, “Automatic Distribution in Pangaea”, CBS 2000, Berlin, April 2000. See also http://www.inf.fu-berlin.de/~spiegel/pangaea/

  18. Sun Microsystems, Remote Method Invocation Specification, http://java.sun.com/products/jdk/rmi/, 1997.

  19. Michiaki Tatsubori, Toshiyuki Sasaki, Shigeru Chiba, and Kozo Itano, “A Bytecode Translator for Distributed Execution of ‘Legacy’ Java Software”, European Conference on Object-Oriented Programming (ECOOP), Budapest, June 2001.

    Google Scholar 

  20. Eli Tilevich and Yannis Smaragdakis, “J-Orchestra: Automatic Java Application Partitioning”, Georgia Tech, CoC Tech. Report, GIT-CC-02-17, 2002.

    Google Scholar 

  21. Jim Waldo, Geoff Wyant, Ann Wollrath, and Sam Kendall, “A note on distributed computing”, Technical Report, Sun Microsystems Laboratories, SMLITR-94-29, November 1994.

    Google Scholar 

  22. Cliff Young, Y N. Lakshman, Tom Szymanski, John Reppy, David Presotto, Rob Pike, Girija Narlikar, Sape Mullender, and Eric Grosse, “Protium, and Infrastructure for Partitioned Applications”, Eighth IEEE Workshop on Hot Topics in Operating Systems (HotOS-VIII). May 20-23, 2001, Schoss Elmau Germany, pp. 41–46, IEEE Computer Society Press, 2001.

    Google Scholar 

  23. Weimin Yu, and Alan Cox, “Java/DSM: A Platform for Heterogeneous Computing”, Concurrency: Practice and Experience, 9(11): 1213–1224, 1997.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tilevich, E., Smaragdakis, Y. (2002). J-Orchestra: Automatic Java Application Partitioning. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_8

Download citation

  • DOI: https://doi.org/10.1007/3-540-47993-7_8

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43759-8

  • Online ISBN: 978-3-540-47993-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics