Distributed object communication
Encyclopedia
Distributed object communication realizes communication between distributed object
Distributed object
The term distributed objects usually refers to software modules that are designed to work together, but reside either in multiple computers connected via a network or in different processes inside the same computer. One object sends a message to another object in a remote machine or process to...

s in the distributed computing
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

 environment.

The main role is to interconnect objects residing in non-local memory space and allowing them to perform remote calls and exchange data. The widely used approach on how to implement the communication channel is realized by using stubs
Class stub
In the distributed computing environment, stub stands for client side object participating in the distributed object communication.The stub acts as a gateway for client side objects and all outgoing requests to server side objects that are routed through it...

 and skeletons
Class skeleton
-As pattern:A class skeleton is an outline of a class that is used in software engineering. It contains a description of the class's roles, and describes the purposes of the variables and methods, but does not implement them...

. They are generated objects whose structure and behavior depends on chosen communication protocol, but in general provide additional functionality that ensures reliable communication over the network.



When a caller wants to perform remote call on the called object, it delegates requests to its stub
Class stub
In the distributed computing environment, stub stands for client side object participating in the distributed object communication.The stub acts as a gateway for client side objects and all outgoing requests to server side objects that are routed through it...

 which initiates communication with the remote skeleton
Class skeleton
-As pattern:A class skeleton is an outline of a class that is used in software engineering. It contains a description of the class's roles, and describes the purposes of the variables and methods, but does not implement them...

. Consequently, the stub passes caller arguments over the network to the server skeleton. The skeleton then passes received data to the called object, waits for a response and returns the result to the client stub. Note, there is no direct communication between the caller and the called object.

In more details, the communication consists of several steps:
  1. caller calls a local procedure
    Subroutine
    In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code....

     implemented by the stub
  2. stub marshalls
    Marshalling
    Marshalling may refer to :* Marshalling * Marshalling * Aircraft marshalling* A marshalling yard in railroading* Doctrine of Marshalling - an equitable concept in the law...

     call type and input arguments into a request message
  3. client stub sends the message over the network to the server and blocks the current execution thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

  4. server skeleton receives the request message from the network
  5. skeleton unpacks call type from the request message and looks up the procedure
    Subroutine
    In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code....

     on the called object
  6. skeleton unmarshalls
    Marshalling
    Marshalling may refer to :* Marshalling * Marshalling * Aircraft marshalling* A marshalling yard in railroading* Doctrine of Marshalling - an equitable concept in the law...

     procedure arguments
  7. skeleton executes the procedure
    Subroutine
    In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code....

     on the called object
  8. called object performs a computation and returns the result
  9. skeleton packs the output arguments into a response message
  10. skeleton sends the message over the network back to the client
  11. client stub receives the response message from the network
  12. stub unpacks output arguments from the message
  13. stub passes output arguments to the caller, releases execution thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     and caller then continues in execution


The advantage of this architecture is that neither the caller nor the called object has to implement network related logic. This functionality, that ensures reliable communication channel over the network, has been moved to the stub
Class stub
In the distributed computing environment, stub stands for client side object participating in the distributed object communication.The stub acts as a gateway for client side objects and all outgoing requests to server side objects that are routed through it...

 and the skeleton
Class skeleton
-As pattern:A class skeleton is an outline of a class that is used in software engineering. It contains a description of the class's roles, and describes the purposes of the variables and methods, but does not implement them...

 layer.

Protocols using Stub/Skeleton Approach

  • RPC
    Remote procedure call
    In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...

     - Remote Procedure Call

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

     - Common Object Request Broker Architecture

  • DCE
    Distributed Computing Environment
    The Distributed Computing Environment is a software system developed in the early 1990s by a consortium that included Apollo Computer , IBM, Digital Equipment Corporation, and others. The DCE supplies a framework and toolkit for developing client/server applications...

     - Distributed Computing Environment

  • RMI - Remote Method Invocation

  • .NET Remoting
    .NET Remoting
    .NET Remoting is a Microsoft application programming interface for interprocess communication released in 2002 with the 1.0 version of .NET Framework. It is one in a series of Microsoft technologies that began in 1990 with the first version of Object Linking and Embedding for 16-bit Windows...

     - .NET Remoting

  • 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+...

     - Distributed Component Object Model

  • 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.

  • 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