A Bytecode Translator for Distributed Execution of “Legacy” Java Software

  • Michiaki Tatsubori
  • Toshiyuki Sasaki
  • Shigeru Chiba
  • Kozo Itano
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2072)


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.


Java Virtual Machine Window System Object Request Broker Remote Object Remote Host 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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
  3. 3.
    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.CrossRefGoogle Scholar
  4. 4.
    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.CrossRefGoogle Scholar
  5. 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. 6.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns-Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.Google Scholar
  7. 7.
    James Gosling, Bill Joy, and Guy Steele, The Java Language Specification, Addison-Wesley, 1996.Google Scholar
  8. 8.
    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.CrossRefGoogle Scholar
  9. 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. 10.
    Satoshi Hirano, HORB: Distributed Execution of Java Programs, In Lecture Notes in Computer Science 1274, Springer, pp.29–42, 1997.Google Scholar
  11. 11.
    IBM, Remote Abstract Windowing Toolkit (RAWT), Online publishing, URI, 2000.
  12. 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
  13. 13.
    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.CrossRefGoogle Scholar
  14. 14.
    Tim Lindholm and Frank Yellin, The Java Virtual Machine Specification, Addison-Wesley, 1997.Google Scholar
  15. 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. 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. 17.
    Nataraj Nagaratnam, Arvind Srinivasan, and Doug Lea, Remote Objects in Java, In Proceedings of IASTED’ 96, International Conference on Networks, 1996.Google Scholar
  18. 18.
    Robert Scheifler and Jim Gettys, The X Window System, In ACM Transactions on Graphics, Vol.5, No.2, pp.79–109, 1986.CrossRefGoogle Scholar
  19. 19.
    Michael Philippsen and Matthias Zenger, JavaParty-Transparent Remote Objects in Java, In Concurrency: Practice & Experience, Vol.9, No.11, Wiley, pp.1225–1242, 1999.CrossRefGoogle Scholar
  20. 20.
    Hans Rohnert, The Proxy Design Pattern Revisited, In Pattern Languages of Program Design 2, Addison-Wesley, pp.105–118, 1995.Google Scholar
  21. 21.
    Sun Microsystems, Inc., The Java Remote Method Invocation Specification, Online publishing, URI, 1997.
  22. 22.
    Sun Microsystems, Inc., Java Foundation Classes, Online publishing, URI, 2000.
  23. 23.
    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.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Michiaki Tatsubori
    • 1
  • Toshiyuki Sasaki
    • 1
  • Shigeru Chiba
    • 1
    • 2
  • Kozo Itano
    • 1
  1. 1.University of TsukubaJapan
  2. 2.PRESTOJapan Science and Technology CorporationJapan

Personalised recommendations