Content deleted Content added
m minor edits |
expanded + minor edits |
||
Line 1:
==
[[Image:Definition_of_a_Live_Distributed_Object.gif|right|thumbnail|300 px|An illustration of the basic concepts involved in the definition of a live distributed object.]]
Line 16:
* '''References'''. The ''reference'' to a live object is a complete set of [[serialization|serialized]], portable instructions for constructing its proxy. To ''dereference'' a reference means to locally parse and follow these instructions on a particular computer, to produce a running proxy of the live object. Defined this way, a live object reference plays the same role as a Java [[Reference (computer science)|reference]], a C/C++ [[Pointer (computing)|pointer]], or a [[web service]]'s [[Web Services Description Language|WSDL]] description; it contains a complete information sufficient to ''locate'' the given object and interact with it. Since live distributed objects may not reside in any particular place (but rather span across a dynamically changing set of computers), the information contained in a live distributed object's reference cannot be limited to just an address. If the object is identified by some sort of a gobally unique identifier (as might be the case for publish-subscribe topics or multicast groups), the reference must specify how this identifier is resolved, by recursively embedding a reference to the appropriate [[name resolution]] object.
* '''Types'''. The ''type'' of a live distributed object determines the patterns of external interactions with the object; it is determined by the types of endpoints and graphical user interfaces exposed by the object's proxies, and the patterns of events that may occur at the endpoints. The constraints that the object's type places on event patterns may span across the network. For example, type ''atomic multicast'' might specify that if an event of the form ''deliver(x)'' is generated by one proxy, a similar event must be eventually generated by all ''non-faulty'' proxies (proxies that run on computers that never crash, and that never cease to execute or are excluded from the protocol; the precise definition might vary). Much as it is the case for types in [[Java (programming language)|Java]-like languages, there might exist many very different implementations of the same type. Thus, for example, behavior characteristic to ''atomic multicast'' might be exhibited by instances of distributed protocols such as virtual synchrony or Paxos.
== References ==
|