A Bytecode Translator for Distributed Execution of “Legacy” Java Software
This paper proposes a system named Addistant, which enables the distributed execution of “legacy” Java bytecode. Here “legacy” means the software originally developed to be executed on a single Java virtual machine (JVM). For adapting legacy software to distributed execution on multiple JVM, developers using Addistant have only to specify the host where instances of each class are allocated and how remote references are implemented. According to that specification, Addistant automatically transforms the bytecode at load time. A technical contribution by Addistant is that it covers a number of issues for implementing distributed execution in the real world. In fact, Addistant can adapt a legacy program written with the Swing library so that Swing objects are executed on a local JVM while the rest of objects are on a remote JVM.
KeywordsJava Virtual Machine Window System Object Request Broker Remote Object Remote Host
Unable to display preview. Download preview PDF.
- 1.Ken Arnold, James Gosling and David Holmes, Garbage Collection and Memory, Chapter 12, In The Java Programming Language Third Edition, Addison Wesley, pp.313–327, 2000.Google Scholar
- 2.Yariv Aridor, Michael Factor and Avi Teperman, CJVM: a Single System Image of a JVM on a Cluster, In Proceedings of ICPP 99, IEEE, 1999.Google Scholar
- 5.Shigeru Chiba, Load-time Structural Reflection in Java, In Proceedings of ECOOP 2000, LNCS 1850, Springer Verlag, pp.313–336, 2000.Google Scholar
- 6.Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns-Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.Google Scholar
- 7.James Gosling, Bill Joy, and Guy Steele, The Java Language Specification, Addison-Wesley, 1996.Google Scholar
- 9.Michael Hicks, Suresh Jagannathan, Richard Kelsey, Jonathan T. Moore, and Cristian Ungureanu, Transparent Communication for Distributed Objects in Java, In Proceedings of the ACM 1999 conference on Java Grande, pp.160–170, 1999.Google Scholar
- 10.Satoshi Hirano, HORB: Distributed Execution of Java Programs, In Lecture Notes in Computer Science 1274, Springer, pp.29–42, 1997.Google Scholar
- 11.IBM, Remote Abstract Windowing Toolkit (RAWT), Online publishing, URI http://www.s390.ibm.com/java/rawt.html, 2000.
- 12.Laxmikant V. Kalé, Milind Bhandarkar, and Terry Wilmarth, Design and Implementation of Parallel Java with Global Object Space, In Proceedings of PDPTA’ 97, Conference on Parallel and Distributed Processing Technology and Applications, 1997.Google Scholar
- 14.Tim Lindholm and Frank Yellin, The Java Virtual Machine Specification, Addison-Wesley, 1997.Google Scholar
- 15.Cristina V. Lopes and Gregor Kiczales, D: A Language Framework Technical report SPL97-010, pp.50–67, Xerox Palo Alto Research Center, 1997.Google Scholar
- 16.Matchy J. M. Ma, Cho-Li Wang, and Francis C. M. Lau, JESSICA: Java-Enabled Single-System-Image Computing Architecture, In Journal of Parallel and Distributed Computing, Vol.60, No.11, Academic Press, pp.1194–1222, 2000.Google Scholar
- 17.Nataraj Nagaratnam, Arvind Srinivasan, and Doug Lea, Remote Objects in Java, In Proceedings of IASTED’ 96, International Conference on Networks, 1996.Google Scholar
- 20.Hans Rohnert, The Proxy Design Pattern Revisited, In Pattern Languages of Program Design 2, Addison-Wesley, pp.105–118, 1995.Google Scholar
- 21.Sun Microsystems, Inc., The Java Remote Method Invocation Specification, Online publishing, URI http://java.sun.com/products/jdk/rmi/, 1997.
- 22.Sun Microsystems, Inc., Java Foundation Classes, Online publishing, URI http://java.sun.com/products/jfc/index.html, 2000.