Thread and address space transport has been provided in the past by some operating systems and programming languages, but usually only within a single computer architecture. How computation moves I wish to compare three relatively well-defined and distinct models of mobile computation. Other models certainly already exist, and more will be developed in the future. These three models differ in what kind of entities can be transmitted over the network. State and connectivity must be reestablished at the receiving site.
Control is reestablished by dynamic binding or dynamic linking.
A computation, in this sense, can be represented as a closure, which is the run-time description of a running procedure. The context may include data, active network connections which are preserved on transmission, and new connections that are created to keep the closure in touch with the site it leaves behind. In this approach live, active, computations can move, and their meaning is preserved upon transmission. Control is reestablished by running the closure at the receiving site, possibly supplying arguments that provide local information. Agents are similar to closures in that they carry their context with them as they move from location to location, and are reanimated at each location.