Jump to content

Live distributed object

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Krzys ostrowski (talk | contribs) at 20:59, 1 March 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Definition

An illustration of the basic concepts involved in the definition of a live distributed object.

The term live distributed object (also abbreviated as live object) refers to a running instance of a distributed multi-party (or peer-to-peer) protocol, viewed from the object-oriented perspective, as an entity that has a distinct identity, and encapsulates state and behavior.

The identity of a live distributed object is determined by the same factors that differentiate between instances of the same distributed protocol: the object consists of a group of software components physically executing on some set of physical machines and engaged in mutual communication, each executing the distributed protocol code with the same set of essential parameters, such as the name of a multicast group, the identifier of a publish-subscribe topic, the identity of a membership service, etc.

The software component instances involved in executing the live object's distributed protocol are referred to as live distributed object's proxies, or replicas. The object can thus be alternatively defined as a group of proxies engaged in communication, jointly maintaining some distributed state, and coordinating their operations. The term proxy stresses the fact that a single software component does not in itself constitute an object; rather, it serves as a gateway through which an application can gain access to a certain functionality or behavior that spans across a set of computers.

The state of a live distributed object is defined as the sum of all internal, local states of its proxies. By definition, it is distributed and replicated. The different replicas of the object's state may be strongly or only weakly consistent, depending on the protocol semantics: an instance of a consensus protocol will have the state of its replicas strongly consistent, whereas an instance of a leader election protocol will have a weakly consistent state. In this sense, the term live distributed object generalizes the concept of a replicated object; the latter is a specific type of live distributed object that uses a protocol such as Paxos, virtual synchrony, or state machine replication to achieve strong consistency between the internal states of its replicas.

The behavior of a live distributed object is characterized by the set of possible patterns of external interactions that its proxies can engage in with their local runtime environments. These interactions are modeled as exchanges of explicit events (messages).


References