Remove code when no longer needed. Security concerns if agents are untrusted. May be machine or language independent. Mobile computation and code gives weak mobility. Mobile computation and state is process migration.
Strong mobility is all three, the most general.
IBM Aglets provides weak mobility - lots of changes in code. Agents in client and server environments, moving agent can lower latency, reduce network bandwidth, and disconnected operation - esp in mobile phones and going thru tunnels for instance. Can unload currently unused services. A universal server is a barebones server where all capabilities are downloaded. Generally supports dynamic and flexible systems.