This paper presents a lightweight reliable object migration protocol that preserves the centralized object semantics, allows for precise prediction of network behavior, and permits construction of fault tolerance abstractions in the language. Each object has a ``home site'' to which all migration requests are directed. Compared to the standard technique of creating and collapsing forwarding chains, this gives a better worst-case network behavior and it limits dependencies on third-party sites. The protocol defines ``freely mobile'' objects that have the interesting property of always executing locally, i.e., each method executes in the thread that invokes it. This makes them dual, in a precise sense, to stationary objects. The protocol is designed to be as efficient as a nonreliable protocol in the common case of no failure, and to provide sufficient hooks so that common fault tolerance algorithms can be programmed completely in the Oz language. The protocol is fully implemented in the network layer of the Mozart platform for distributed application development, which implements Oz (see ). This paper defines the protocol in an intuitive yet precise way using the concept of to model distributed execution of language entities. Formalization and proof of protocol properties are done elsewhere.
Download PDF Show BibTeX
Login to edit