Title:
J-Orchestra: Automatic Java Application Partitioning
J-Orchestra: Automatic Java Application Partitioning
Author(s)
Tilevich, Eli
Smaragdakis, Yannis
Smaragdakis, Yannis
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
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).
Sponsor
Date Issued
2002
Extent
202241 bytes
Resource Type
Text
Resource Subtype
Technical Report