Today's complex applications must face the distribution of data and code among different network nodes. 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 literature, this paper presents our research work on the IBM Jikes Research Virtual Machine: exploiting some of its innovative VM techniques, 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 or software architecture, but still with a version of JikesRVM installed). Our thread serialization mechanism provides support for both proactive and reactive migration of single- and multi-threaded Java applications. With respect to previous approaches, we implemented the mobility framework without recompiling a previous JVM source code, but simply extending its functionalities with a full Java package.
Enabling Java Mobile Computing on the IBM Jikes Research Virtual Machine / Cabri, Giacomo; Leonardi, Letizia; Quitadamo, Raffaele. - STAMPA. - 178:(2006), pp. 62-71. (Intervento presentato al convegno 4th International Conference on Principles and Practices of Programming in Java, PPPJ 2006 tenutosi a Mannheim, Germany nel August 2006) [10.1145/1168054.1168064].