There was an interesting new JSR created this week: JSR 323 – Strong Mobility for Java. The basic idea is allowing the full execution state of a running program to be serialized or transfered. The idea is to use byte code transformation to add additional information to the serialized state of a program to allow the running program to be deserialized at a later time and possibly JVM. The motivation for such a capability is the ability to create mobile agents that can be moved around in a peer-to-peer computing environment.
I tried to track down a few of the papers mentioned in the JSR but most are not available for free or without subscriptions to professional societies. I did find a couple other papers though that were available. This paper presents an approach to thread mobility using serialization and seems to be in the same ballpark as the JSR.
On a quick skim, I can see that there are a few interesting overlaps with Terracotta’s technology, particularly around dealing with shared objects across VMs.