The common object request broker architecture (CORBA) allows objects, possibly written in different languages or running under different systems, to communicate at message-passing level. It incorporates a standard for defining interfaces and messages, which maps to many commonly used programming languages.
An extension to CORBA, in which there is a standard for describing the execution state of objects, is described in this paper. This offers the possibility that, during the execution of some code, an object is saved in some standard form (that is, serialized), ported to another system, and revived and allowed to execute in that new system. As an example, an object running under Java could be ported and run under C++ code.
Besides restoring crashed programs, this technique could be used to implement cases where objects are moved between systems by some external agency (load-balancing), or through their own autonomous decision-making (mobile agents).
The approach taken in this paper is to use an open compiler to generate the serialization code. This means the original code is run through a source-to-source transformer, rather than having the serialization mechanism added ad hoc by a human programmer. This saves time, and ensures reliable code written to a common standard.
This paper looks like an important step on the way from the old world of stand-alone computers and programs to the new world of interconnectedness.