Distributed object

In distributed computing, distributed objects are objects (in the sense of object-oriented programming) that are distributed across different address spaces, either in different processes on the same computer, or even in multiple computers connected via a network, but which work together by sharing data and invoking methods. This often involves location transparency, where remote objects appear the same as local objects. The main method of distributed object communication is with remote method invocation, 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 concept used in the context of distributed computing, such as "replicated objects" or "live distributed objects".
See also Internet protocol suite.
Local vs. distributed objects.
Local and distributed objects differ in many respects. Here are some of them:
Examples.
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.
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.