Strong mobility, which allows multithreaded agents to be migrated transparently at any time, is a powerful mechanism for implementing a peer-to-peer computing environment, in which agents carrying a computational payload find available computing resources. Existing approaches to strong mobility either modify the Java virtual machine or do not correctly preserve the Java semantics when migrating multithreaded agents. We give an overview of our implementation strategy for strong mobility in which each agent thread maintains its own serializable execution state at all times, while thread states are captured just before a move. We explain how to solve the synchronization problems involved in migrating a multithreaded agent and how to cleanly terminate the Java threads in the originating virtual machine. We present experimental results that indicate that our implementation approach is feasible in practice
['Arjav J. Chakravarti', 'Xiaojin Wang', 'Jason O. Hallstrom', 'Gerald Baumgartner']
Implementation of strong mobility for multi-threaded agents in Java