Distributed objects are software modules that are designed to work together, but reside either in multiple computers connected via network or in different processes 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.
See also Internet protocol suite.
Local vs Distributed Objects
Local and distributed objects differs in many dimentions[1] here is 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 pointer to memory address.
- Request Latency : A distributed objects request is orders of maginitude slower than local method invocation.
- Object Activation : Distributed objects may not always be advailable to serve and object request at any point in time.
- Parallelism : Distributed object may be executed in parallel.
- Communication : there are different communication primitive available for distributed objects requests.
- Failure : Distributed object have a lot more point of failure than typical local objects
- Security : Distribution make it vulnarable for security attacks and so on.
Examples
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 Microsoft platform.
DDObjects is a framework for distributed objects using Borland Delphi.
Pyro is a framework for distributed objects using the Python programming language.
dRuby is a framework for distributed objects using the Ruby programming language.
- ^ W. Emmerich (2000) Engineering distributed objects, John Wiley & Sons Ltd.