Local vs. Distributed Objects
Local vs. Distributed Objects
The term may also generally refer to one of the extensions of the basic object concept used in the
context of distributed computing, such as replicated objects or live distributed objects.
Replicated objects are groups of software components (replicas) that run a distributed multi-
party protocol to achieve a high degree of consistency between their internal states, and that
respond to requests in a coordinated manner. Referring to the group of replicas jointly as
an object reflects the fact that interacting with any of them exposes the same externally visible
state and behavior.
Live distributed objects (or simply live objects)[2] generalize the replicated object concept to
groups of replicas that might internally use any distributed protocol, perhaps resulting in only a
weak consistency between their local states. Live distributed objects can also be defined as
running instances of distributed multi-party protocols, viewed from the object-oriented
perspective as entities that have distinct identity, and that can encapsulate distributed state and
behavior.
See also Internet protocol suite.
Contents
1. Life cycle : Creation, migration and deletion of distributed objects is different from local
objects
2. Reference : Remote references to distributed objects are more complex than simple pointers
to memory addresses
3. Request Latency : A distributed object request is orders of magnitude slower than local
method invocation
4. Object Activation : Distributed objects may not always be available to serve an object request
at any point in time
5. Parallelism : Distributed objects may be executed in parallel.
6. Communication : There are different communication primitives available for distributed
objects requests
7. Failure : Distributed objects have far more points of failure than typical local objects.
8. Security : Distribution makes them vulnerable to attack.
Examples[edit]
The RPC facilities of the cross platform serialization protocol, Cap'n Proto amount to a distributed
object protocol. Distributed object method calls can be executed (chained, in a single network
request, if needs be) through interface references/capabilities.[5]
Distributed objects are implemented in Objective-C using the Cocoa API with the NSConnection
class and supporting objects.
Distributed objects are used in Java RMI.
CORBA lets one build distributed mixed object systems.
DCOM is a framework for distributed objects on the Microsoft platform.
DDObjects is a framework for distributed objects using Borland Delphi.
Jt is a framework for distributed components using a messaging paradigm.
JavaSpaces is a Sun specification for a distributed, shared memory (space based)
Pyro is a framework for distributed objects using the Python programming language.
Distributed Ruby (DRb) is a framework for distributed objects using the Ruby programming
language.
See also[edit]
Fragmented object
Distributed object communication
Object request broker
References[edit]
1. ^ Microservices and the First Law of Distributed Objects, Martin Fowler, 13 August 2014
2. ^ Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed
Objects", Proceedings of the 22nd European Conference on Object-Oriented Programming, Paphos,
Cyprus, July 07–11, 2008, J. Vitek, Ed., Lecture Notes in Computer Science, vol. 5142, Springer-
Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
3. ^ W. Emmerich (2000) Engineering distributed objects, John Wiley & Sons Ltd.
4. ^ Samuel C. Kendall, Jim Waldo, Ann Wollrath, and Geoff Wyant. 1994. A Note on Distributed
Computing. Technical Report. Sun Microsystems, Inc., Mountain View, CA, USA.
5. ^ "Cap'n Proto: RPC Protocol".