Abstract
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.
Currently, Hitachi Ltd., Japan.
Currently, Tokyo Institute of Technology, Japan.
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
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.
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.
Andrew Black, Norman Hutchinson, Eric Jul, Henry Levy, and Larry Carter, Distribution and Abstract Types in Emerald, In IEEE Transactions on Software Engineering, Vol.SE-13, No.1, IEEE, pp.65–76, 1987.
Denis Caromel, Wilfried Klauser and Julien Vayssièra, Towards Seamless Computing and Metacomputing in Java, In Concurrency: Practice & Experience, Vol.10, No.11-13, Wiley, pp.1043–1061, 1998.
Shigeru Chiba, Load-time Structural Reflection in Java, In Proceedings of ECOOP 2000, LNCS 1850, Springer Verlag, pp.313–336, 2000.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns-Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.
James Gosling, Bill Joy, and Guy Steele, The Java Language Specification, Addison-Wesley, 1996.
Zvi Har’El and Zvi Rosberg, Java Class Broker-A Seamless Bridge from Local to Distributed Programming, In Journal of Parallel and Distributed Computing, Vol.60, No.11, Academic Press, pp.1223–1237, 2000.
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.
Satoshi Hirano, HORB: Distributed Execution of Java Programs, In Lecture Notes in Computer Science 1274, Springer, pp.29–42, 1997.
IBM, Remote Abstract Windowing Toolkit (RAWT), Online publishing, URI http://www.s390.ibm.com/java/rawt.html, 2000.
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.
Sheng Liang and Gilad Bracha, Dynamic Class Loading in the Java Virtual Machine, In Proceedings of OOPSLA’ 98, ACM SIGPLAN Notices, Vol.33, No.10, pp.36–44, 1998.
Tim Lindholm and Frank Yellin, The Java Virtual Machine Specification, Addison-Wesley, 1997.
Cristina V. Lopes and Gregor Kiczales, D: A Language Framework Technical report SPL97-010, pp.50–67, Xerox Palo Alto Research Center, 1997.
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.
Nataraj Nagaratnam, Arvind Srinivasan, and Doug Lea, Remote Objects in Java, In Proceedings of IASTED’ 96, International Conference on Networks, 1996.
Robert Scheifler and Jim Gettys, The X Window System, In ACM Transactions on Graphics, Vol.5, No.2, pp.79–109, 1986.
Michael Philippsen and Matthias Zenger, JavaParty-Transparent Remote Objects in Java, In Concurrency: Practice & Experience, Vol.9, No.11, Wiley, pp.1225–1242, 1999.
Hans Rohnert, The Proxy Design Pattern Revisited, In Pattern Languages of Program Design 2, Addison-Wesley, pp.105–118, 1995.
Sun Microsystems, Inc., The Java Remote Method Invocation Specification, Online publishing, URI http://java.sun.com/products/jdk/rmi/, 1997.
Sun Microsystems, Inc., Java Foundation Classes, Online publishing, URI http://java.sun.com/products/jfc/index.html, 2000.
Weimin Yu and Alan Cox, Java/DSM: A Platform for Heterogeneous Computing, In Concurrency: Practice & Experience, Vol.9, No.11, Wiley, pp.1213–1224, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Tatsubori, M., Sasaki, T., Chiba, S., Itano, K. (2001). A Bytecode Translator for Distributed Execution of “Legacy” Java Software. In: Knudsen, J.L. (eds) ECOOP 2001 — Object-Oriented Programming. ECOOP 2001. Lecture Notes in Computer Science, vol 2072. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45337-7_13
Download citation
DOI: https://doi.org/10.1007/3-540-45337-7_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42206-8
Online ISBN: 978-3-540-45337-6
eBook Packages: Springer Book Archive