If both code and execution state are moved to a new computational environment, the mobility mechanism is called strong mobility . Weak mobility represents the transfer of code with some initialization data without recreation of the execution state.
Strong mobility is either realized by migration or by remote cloning . For migration the executing unit is suspended and after the transfer of code to the new computational environment, the executing unit is resumed. Remote cloning differs from migration , because it does not detach the original executing unit from its current computational environment.
Weak mobility differes in the direction in which the code moves, the nature of the code, the synchronization and the point of time when the code is actually executed. The direction can either be to the executing unit, fetch , or from the executing unit to a computational environment, ship . The code is either stand-alone or only a fragment . Whether the weak mobility is synchronous or asynchronous depends on whether the executing unit moving the code, blocks until the moved code is executed or not. After the move to a new computational environment the code is executed immediately or deferred .