In
distributed computing
A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
, distributed objects are objects (in the sense of
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
) that are distributed across different
address spaces, either in different
processes on the same computer, or even in multiple
computers connected via a
network
Network, networking and networked may refer to:
Science and technology
* Network theory, the study of graphs as a representation of relations between discrete objects
* Network science, an academic field that studies complex networks
Mathematics ...
, but which work together by sharing data and invoking methods. This often involves
location transparency In computer networks, location transparency is the use of names to identify network resources, rather than their actual location. For example, files are accessed by a unique file name, but the actual data is stored in physical sectors scattered arou ...
, where remote objects appear the same as local objects. The main method of
distributed object communication In a distributed computing environment, distributed object communication realizes communication between distributed objects. The main role is to allow objects to access data and invoke methods on remote objects (objects residing in non-local memor ...
is with
remote method invocation In a distributed computing environment, distributed object communication realizes communication between distributed objects. The main role is to allow objects to access data and invoke methods on remote objects (objects residing in non-local memor ...
, generally by message-passing: 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.
Distributed objects were popular in the late 1990s and early 2000s, but have since fallen out of favor.
The term may also generally refer to one of the extensions of the basic
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ...
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 object
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, may encaps ...
s'' (or simply ''
live objects'') 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
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the sui ...
.
Local vs. distributed objects
Local and distributed objects differ in many respects. Here are some of them:
# Life cycle : Creation, migration and deletion of distributed objects is different from local objects
# Reference : Remote references to distributed objects are more complex than simple pointers to memory addresses
# Request Latency : A distributed object request is orders of magnitude slower than local method invocation
# Object Activation : Distributed objects may not always be available to serve an object request at any point in time
# Parallelism : Distributed objects may be executed in parallel.
# Communication : There are different communication primitives available for distributed objects requests
# Failure : Distributed objects have far more points of failure than typical local objects.
# Security : Distribution makes them vulnerable to attack.
Examples
The RPC facilities of the cross platform serialization protocol,
Cap'n Proto
Cap’n Proto is a data serialization format and Remote Procedure Call (RPC) framework for exchanging data between computer programs. The high-level design focuses on speed and security, making it suitable for network as well as inter-process co ...
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.
Distributed objects are implemented in
Objective-C
Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXT ...
using the
Cocoa API with the NSConnection class and supporting objects.
Distributed objects are used in
Java RMI
In computing, the Java Remote Method Invocation (Java RMI) is a Java API that performs remote method invocation, the object-oriented equivalent of remote procedure calls (RPC), with support for direct transfer of serialized Java classes and dist ...
.
CORBA
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between s ...
lets one build distributed mixed object systems.
DCOM is a framework for distributed objects on the Microsoft platform.
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 Delp ...
is a framework for distributed objects using Borland Delphi.
Jt is a framework for distributed components using a messaging paradigm.
JavaSpaces
A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of process ...
is a Sun specification for a distributed, shared memory (space based)
Pyro is a framework for distributed objects using the
Python programming language
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.
Python is dynamically-typed and garbage-collected. It supports multiple programming p ...
.
Distributed Ruby
Distributed Ruby or DRb allows Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties ...
(DRb) is a framework for distributed objects using the
Ruby programming language
Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including p ...
.
See also
*
Fragmented object {{multiple issues, {{technical, date=June 2014
{{context, date=February 2018
In computing, fragmented objects are truly distributed objects. It is a novel design principle extending the traditional concept of stub based distribution.
In contrast ...
*
Distributed object communication In a distributed computing environment, distributed object communication realizes communication between distributed objects. The main role is to allow objects to access data and invoke methods on remote objects (objects residing in non-local memor ...
*
Object request broker In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interop ...
References
{{reflist
Distributed computing architecture