Using idle workstations in a shared computing environment
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
IEEE Transactions on Software Engineering
Persistent execution state of a Java virtual machine
Proceedings of the ACM 2000 conference on Java Grande
The Java Language Specification
The Java Language Specification
Mole – Concepts of a mobile agent system
World Wide Web
Transparent Migration of Java-Based Mobile Agents
MA '98 Proceedings of the Second International Workshop on Mobile Agents
Bytecode Transformation for Portable Thread Migration in Java
ASA/MA 2000 Proceedings of the Second International Symposium on Agent Systems and Applications and Fourth International Symposium on Mobile Agents
Portable Support for Transparent Thread Migration in Java
ASA/MA 2000 Proceedings of the Second International Symposium on Agent Systems and Applications and Fourth International Symposium on Mobile Agents
Pickling Threads State in the Java System
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 33)
ATEC '97 Proceedings of the annual conference on USENIX Annual Technical Conference
Computation scrapbooks for software evolution
Proceedings of the International Workshop on Principles of Software Evolution
Virtual-machine-based heterogeneous checkpointing
Software—Practice & Experience
Implementation of a CORBA-Based Metacomputing System
HPCN Europe 2001 Proceedings of the 9th International Conference on High-Performance Computing and Networking
Virtual Machine Based Heterogeneous Checkpointing
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Jawa: A Java Tool-Kit for Mobile Objects Applications
FIDJI '01 Revised Papers from the International Workshop on Scientific Engineering for Distributed Java Applications
Checkpointing Facility on a Metasystem
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
Transparent Migration of Mobile Agents Using the Java Platform Debugger Architecture
MA '01 Proceedings of the 5th International Conference on Mobile Agents
Extended mpijava for distributed checkpointing and recovery
EuroPVM/MPI'06 Proceedings of the 13th European PVM/MPI User's Group conference on Recent advances in parallel virtual machine and message passing interface
Transparent fault tolerance for grid applications
EGC'05 Proceedings of the 2005 European conference on Advances in Grid Computing
Parallel checkpointing on a grid-enabled java platform
EGC'05 Proceedings of the 2005 European conference on Advances in Grid Computing
Hi-index | 0.00 |
Today, mobility and persistence are important aspects of distributed applications. They have many fields of use such as load balancing, fault tolerance and dynamic reconfiguration of applications. In this context, the Java virtual machine provides many useful services such as dynamic class loading and object serialization which allow Java code and objects to be mobile or persistent. However, Java does not provide any service for the mobility or the persistence of control flows (threads), the execution state of a Java program remains inaccessible. We designed and implemented new services that make Java threads mobile or persistent. With these services, a running Java thread can, at an arbitrary state of its execution, migrate to a remote machine or be checkpointed on disk for a possible subsequent recovery. Therefore migrating a Java thread is simply performed by the call of our go primitive, by the thread itself or by an external thread. In other words, the migration or the checkpointing of a thread can be initiated by the thread itself or by another thread. We integrated these services into the JVM, so they provide reasonable and competitive performance figures without inducing an overhead on JVM performance. Finally, we experimented a dynamic reconfiguration tool based on our mobility service and applied to a running distributed application.