Class skeleton

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

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. The class is later implemented from the skeleton.

As server side object

In a distributed computing environment a skeleton stands for a server side object participating in distributed object communication.

Role of the skeleton in the distributed object communication.

A skeleton acts as gateway for server side objects and all incoming clients requests are routed through it. The skeleton wraps server object functionality and exposes it to the clients, moreover by adding the network logic ensures the reliable communication channel between clients and server. Skeletons can be written up manually or generated automatically depending on chosen communication protocol.

The skeleton is responsible for:

  • translating incoming data from the stub to the correct up-calls to server objects
  • unmarshalling of the arguments from received data
  • passing arguments to server objects
  • marshalling of the returned values from server objects
  • passing values back to the client stub over the network

Protocols using stub/skeleton approach

  • RPC - Remote Procedure Call;
  • CORBA - Common Object Request Broker Architecture;
  • DCE - Distributed Computing Environment;
  • RMI - Remote Method Invocation;
  • .NET Remoting - .NET Remoting;
  • DCOM - Distributed Component Object Model (note that the stub is called "proxy" and the skeleton is called "stub"[1]);
  • DDObjects is a framework for distributed objects using Borland Delphi;
  • Distributed Ruby (DRb) is a framework for distributed objects using the Ruby programming language.

References

  1. MSDN: Marshalling details.