Distributed object
Encyclopedia
The term distributed objects usually refers to software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

 modules that are designed to work together, but reside either in multiple computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...

s connected via a network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

 or in different processes
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

 inside the same computer. One object sends a message to another object in a remote machine or process to perform some task. The results are sent back to the calling object.

The term may also generally refer to one of the extensions of the basic object
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

 concept used in the context of distributed computing, such as replicated objects or live distributed objects.
  • Replicated objects
    Replication (computer science)
    Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. It could be data replication if the same data is stored on multiple storage devices, or...

    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
    Live distributed object
    - Definitions :The term live distributed object refers to a running instance of a distributed multi-party protocol, viewed from the object-oriented perspective, as an entity that has a distinct identity, may encapsulate internal state and threads of execution, and that exhibits a well-defined...

    (or simply live objects
    Live distributed object
    - Definitions :The term live distributed object refers to a running instance of a distributed multi-party protocol, viewed from the object-oriented perspective, as an entity that has a distinct identity, may encapsulate internal state and threads of execution, and that exhibits a well-defined...

    ) 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
Internet protocol suite
The Internet protocol suite is the set of communications protocols used for the Internet and other similar networks. It is commonly known as TCP/IP from its most important protocols: Transmission Control Protocol and Internet Protocol , which were the first networking protocols defined in this...

.

Local vs Distributed Objects

Local and distributed objects differ in many respects. Here are some of them:
  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

Distributed objects are implemented in Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

 using the Cocoa API
Cocoa (API)
Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...

 with the NSConnection class and supporting objects.

Distributed objects are used in Java RMI.

CORBA
Çorba
Chorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...

 lets one build distributed mixed object systems.

DCOM
Distributed component object model
Distributed Component Object Model is a proprietary Microsoft technology for communication among software components distributed across networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the communication substrate under Microsoft's COM+...

 is a framework for distributed objects on the Microsoft platform.

DDObjects
DDObjects
DDObjects is a remoting framework for Borland Delphi and C++ Builder. A main goal while developing DDObjects has not been only to keep the code one has to implement in order to utilize DDObjects as simple as possible but also very close to Delphi's usual style of event-driven programming.DDObjects...

 is a framework for distributed objects using Borland Delphi.

Jt
JT
JT may stand for:* Haplogroup JT , a human mitochondrial DNA haplogroup* Jake Thackray, an English musician and poet* Jakobstads Tidning, a Finland-Swedish newspaper* James Taylor a folk music singer-songwriter...

is a framework for distributed components using a messaging paradigm.

JavaSpaces is a Sun specification for a distributed, shared memory (spaces based)

Pyro
PYthon Remote Objects
PYro is an acronym for PYthon Remote Objects, a Python-based Distributed Object Technology similar to Java's Remote Method Invocation ....

 is a framework for distributed objects using the Python programming language
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

.

Distributed Ruby
Distributed Ruby
Distributed Ruby or DRb allows Ruby programs to communicate with each other on the same machine or over a network. DRb uses remote method invocation to pass commands and data between processes.- External links :* * *...

 (DRb) is a framework for distributed objects using the Ruby programming language.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK