A data representation language representation of the state of a process
executing on a client or service in a distributed computing environment
may be created. The representation may include a computation state of the
device and/or virtual machine on which the process is executing, wherein
the computation state of the device and/or virtual machine comprises
information about the execution state of the process on the device and/or
virtual machine. A process state may include, but is not limited to:
threads, all objects referenced by the threads, transient variables
created during the execution of the process, objects and their data, etc.
In one embodiment, data describing one or more leases representing grants
of access to external services, obtained from spaces by the process, may
also be stored with the process state. The data representation language
representation of the state of a process may be moved from node to node
within the distributed computing environment. The representation of the
state of a process may also be stored as a data representation language
object in a store mechanism, and later retrieved from the store mechanism
to resume the process execution on the same node or on a different node
in the distributed computing environment. In one embodiment, an object
compilation/decompilation process may be used in creating the
representation of the state of a process and in regenerating the state of
the process by decompiling the representation of the state of the
process.