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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
Yariv Aridor, Michael Factor, and Avi Teperman, “CJVM: a Single System Image of a JVM on a Cluster”, in Proc. ICPP’99.
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.
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.
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.
Markus Dahm, “Doorastha—a step towards distribution transparency”, JIT, 2000. See http://www.inf.fu-berlin.de/~dahm/doorastha/.
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha, The Java Language Specification, 2nd Ed., The Java Series, Addison-Wesley, 2000.
Bernhard Haumacher, Jürgen Reuter, Michael Philippsen, “JavaParty: A distributed companion to Java”, http://wwwipd.ira.uka.de/JavaParty/
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.
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.
Nelson King, “Partitioning Applications”, DBMS and Internet Systems magazine, May 1997. See http://www.dbmsmag.com/9705d13.html.
Christian Nester, Michael Phillipsen, and Bernhard Haumacher, “A More Efficient RMI for Java”, in Proc. ACM Java Grande Conference, 1999.
Michael Philippsen and Matthias Zenger, “JavaParty-Transparent Remote Objects in Java”, Concurrency: Practice and Experience, 9(11):1125–1242, 1997.
Robert W. Scheifler, and Jim Gettys, “The X Window System”, ACM Transactions on Graphics, 5(2): 79–109, April 1986.
Robert W. Scheifler, “X Window System Protocol, Version 11”, Network Working Group RFC 1013, April 1987.
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.
Andre Spiegel, “Automatic Distribution in Pangaea”, CBS 2000, Berlin, April 2000. See also http://www.inf.fu-berlin.de/~spiegel/pangaea/
Sun Microsystems, Remote Method Invocation Specification, http://java.sun.com/products/jdk/rmi/, 1997.
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.
Eli Tilevich and Yannis Smaragdakis, “J-Orchestra: Automatic Java Application Partitioning”, Georgia Tech, CoC Tech. Report, GIT-CC-02-17, 2002.
Jim Waldo, Geoff Wyant, Ann Wollrath, and Sam Kendall, “A note on distributed computing”, Technical Report, Sun Microsystems Laboratories, SMLITR-94-29, November 1994.
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.
Weimin Yu, and Alan Cox, “Java/DSM: A Platform for Heterogeneous Computing”, Concurrency: Practice and Experience, 9(11): 1213–1224, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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