ACM Home Page
Please provide us with feedback. Feedback
J-Orchestra: Enhancing Java programs with distribution capabilities
Full text PdfPdf (1.39 MB)
Source
ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 19 ,  Issue 1  (August 2009) table of contents
Article No. 1  
Year of Publication: 2009
ISSN:1049-331X
Authors
Eli Tilevich  Virginia Tech, Blacksburg, VA
Yannis Smaragdakis  University of Massachusetts, Amherst, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 47,   Downloads (12 Months): 190,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1555392.1555394
What is a DOI?

ABSTRACT

J-Orchestra is a system that enhances centralized Java programs with distribution capabilities. Operating at the bytecode level, J-Orchestra transforms a centralized Java program (i.e., running on a single Java Virtual Machine (JVM)) into a distributed one (i.e., running across multiple JVMs). This transformation effectively separates distribution concerns from the core functionality of a program. J-Orchestra follows a semiautomatic transformation process. Through a GUI, the user selects program elements (at class granularity) and assigns them to network locations. Based on the user's input, the J-Orchestra backend automatically partitions the program through compiler-level techniques, without changes to the JVM or to the Java Runtime Environment (JRE) classes. By means of bytecode engineering and code generation, J-Orchestra substitutes method calls with remote method calls, direct object references with proxy references, etc. It also translates Java language features (e.g., static methods and fields, inheritance, inner classes, new object construction, etc.) for efficient distributed execution.

We detail the main technical issues that J-Orchestra addresses, including its mechanism for program transformation in the presence of unmodifiable code (e.g., in JRE classes) and the translation of concurrency and synchronization constructs to work correctly over the network. We further discuss a case study of transforming a large, commercial, third-party application for efficient execution in a client server environment and outline the architectural characteristics of centralized programs that are amenable to automated distribution with J-Orchestra.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
3
4
5
 
6
7
8
9
 
10
Chatterjee, A. 1992. The class is an abstract behaviour type for resource allocation of distributed object-oriented programs. ACM SIGPLAN OOPS Messenger 4, 2, 63--69.
 
11
Craig, G., Bellur, U., Shank, K., and Lea, D. 1993. Clusters: A pragmatic approach towards supporting a fine grained active object model in distributed systems. In Proceedings of the 9th International Conference on Systems Engineering.
 
12
Dahm, M. 1999. Byte code engineering. In Proceedings of JIT.
 
13
Dahm, M. 2000. Doorastha: A step towards distribution transparency. In Proceedings of JIT.
 
14
Dijkstra, E. 1982. On the role of scientific thought. In Selected Writings on Computing: A Personal Perspective, 60--66.
 
15
 
16
 
17
 
18
Guccione, S., Levi, D., and Sundararajan, P. 1999. JBits: A Java-based interface for reconfigurable computing. In Proceedings of the 2nd Annual Military and Aerospace Applications of Programmable Devices and Technologies Conference (MAPLD).
 
19
 
20
21
 
22
 
23
 
24
 
25
 
26
 
27
Lopes, C. 1997. D: A language framework for distributed programming. Ph.D. thesis, Northeastern University.
 
28
Philippsen, M. and Zenger, M. 1997. JavaParty: Transparent remote objects in Java. Concurrency: Pract. Exper. 9, 11, 1225--1242.
 
29
 
30
31
 
32
Shapiro, M. 1986. Structure and encapsulation in distributed systems: The proxy principle. In Proceedings of the 6th International Conference on Distributed Computing Systems, 198--204.
 
33
Spiegel, A. 2000. Automatic distribution in Pangaea. In Proceedings of the Copenhagen Business School (CBS).
 
34
Spiegel, A. 2002. Automatic distribution of object-oriented programs. Ph.D. thesis, FB Mathematik und Informatik FU Berlin.
 
35
 
36
 
37
 
38
 
39
40
 
41
 
42
 
43
Weyns, D., Truyen, E., and Verbaeten, P. 2002. Distributed Threads in Java. In Proceedings of the International Symposium on Distributed and Parallel Computing (ISDPC).
 
44
Weyns, D., Truyen, E., and Verbaeten, P. 2004. Serialization of distributed threads in Java. Scalable Comput. Pract. Exper. 6, 1, 81--98.
 
45
Wohlstadter, E. and Devanbu, P. 2006. Aspect-oriented development of crosscutting features in distributed, heterogeneous systems. Trans. Aspect-Oriented Softw. Devel. II. Springer-Verlag, 69--100.
 
46
 
47
 
48
Yu, W. and Cox, A. 1997. Java/DSM: A platform for heterogeneous computing. Concurrency: Pract. Exper. 9, 11, 1213--1224.

Collaborative Colleagues:
Eli Tilevich: colleagues
Yannis Smaragdakis: colleagues