HOME

TheInfoList



OR:

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 sc ...
, 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 pr ...
) that are distributed across different
address space In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity. For software programs to save and retrieve s ...
s, 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 ai ...
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'') 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 NeXTS ...
using the Cocoa API with the NSConnection class and supporting objects. Distributed objects are used in Java RMI.
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 sys ...
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 Delph ...
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 pa ...
.
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 (RMI) to pass commands and data between processes. See also * Java remote method invocation In ...
(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 *
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 intero ...


References

{{reflist Distributed computing architecture