Mobile JikesRVM: A framework to support transparent Java thread migration

Today's complex applications must face the distribution of data and code among different network nodes. Computation in distributed contexts is demanding increasingly powerful languages and execution environments, able to provide programmers with appropriate abstractions and tools. Java is a wide-spread language that allows developers to build complex software, even distributed, but it cannot handle the migration of computations (i.e. threads), due to intrinsic limitations of many traditional JVMs. After analyzing the approaches in the literature, this paper presents our thread migration framework (called Mobile JikesRVM), implemented on top of the IBM Jikes Research Virtual Machine (RVM): exploiting some of the innovative techniques in the JikesRVM, we implemented an extension of its scheduler that allows applications to easily capture the state of a running thread and makes it possible to restore it elsewhere (i.e. on a different hardware architecture or operating system), but still with a version of the framework installed). Our thread serialization mechanism provides support for both proactive and reactive migration, available also for multi-threaded Java applications, and tools to deal with the problems of resource relocation management. With respect to previous approaches, we implemented Mobile JikesRVM without recompiling its JVM (Java Virtual Machine) source code, but simply extending JikesRVM functionalities with a full Java package to be imported when thread migration is needed.

[1]  Letizia Leonardi,et al.  Strong agent mobility for aglets based on the IBM JikesRVM , 2006, SAC.

[2]  Akinori Yonezawa,et al.  Bytecode Transformation for Portable Thread Migration in Java , 2000, ASA/MA.

[3]  Michael Weber,et al.  Transparent Migration of Mobile Agents Using the Java Platform Debugger Architecture , 2001, Mobile Agents.

[4]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

[5]  Jeffrey M. Bradshaw,et al.  An Overview of the NOMADS Mobile Agent System , 2000 .

[6]  Stephen V. Rice,et al.  A framework for unified resource management in Java , 2006, PPPJ '06.

[7]  Bowen Alpern,et al.  Implementing jalapeño in Java , 1999, OOPSLA '99.

[8]  Craig Chambers,et al.  The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages , 1992 .

[9]  Sacha Krakowiak,et al.  Experiences implementing efficient Java thread serialization, mobility and persistence , 2004, Softw. Pract. Exp..

[10]  David Kotz,et al.  Extracting a Mobility Model from Real User Traces , 2006, Proceedings IEEE INFOCOM 2006. 25TH IEEE International Conference on Computer Communications.

[11]  Akinori Yonezawa,et al.  A Simple Extension of Java Language for Controllable Transparent Migration and Its Portable Implementation , 1999, COORDINATION.

[12]  Takashi Suezawa,et al.  Persistent execution state of a Java virtual machine , 2000, JAVA '00.

[13]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[14]  Chandra Krintz,et al.  Efficient and General On-Stack Replacement for Aggressive Program Specialization , 2006, Software Engineering Research and Practice.

[15]  Noel De Palma,et al.  Efficient Java thread serialization , 2003, PPPJ.

[16]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[17]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

[18]  Stefan Fünfrocken Transparent Migration of Java-Based Mobile Agents , 1998, Mobile Agents.

[19]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[20]  Paramvir Bahl,et al.  Wireless Hotspots: Current Challenges and Future Directions , 2005, Mob. Networks Appl..

[21]  Cho-Li Wang,et al.  JESSICA2: a distributed Java Virtual Machine with transparent thread migration support , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[22]  Stephen J. Fink,et al.  Design, implementation and evaluation of adaptive recompilation with on-stack replacement , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[23]  Joel H. Saltz,et al.  Sumatra: A Language for Resource-Aware Mobile Programs , 1996, Mobile Object Systems.

[24]  Paramvir Bahl,et al.  Wireless hotspots: current challenges and future directions , 2003, WMASH '03.

[25]  Stefan Fünfrocken,et al.  Transparent migration of Java-based mobile agents: Capturing and re-establishing the state of Java programs , 1998, Personal Technologies.

[26]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .