Class skeleton
4933467
225826674
2008-07-15T16:08:46Z
Serhio
569400
formatting
==As pattern==
A '''class skeleton''' is an outline of a [[class (computer science)|class]] that is used in [[software engineering]]. It contains a description of the class's roles, and describes the purposes of the [[variable]]s and [[method (computer science)|method]]s, but does not implement them. The class is later [[implementation|implemented]] from the skeleton.
==As server side object==
In the [[distributed computing]] environment '''skeleton''' stands for server side object participating in the [[distributed object communication]].
[[Image:Distributed object communication.png|thumb|Role of the skeleton in the distributed object communication.]]
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 [[Class stub|stub]] to the correct up-calls to server objects
* [[Serialization|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 [[Class stub|stub]] over the network
=== Protocols Using Stub/Skeleton Approach ===
* [[Remote procedure call|RPC]] - Remote Procedure Call;
* [[CORBA|CORBA]] - Common Object Request Broker Architecture;
* [[Distributed_Computing_Environment| DCE]] - Distributed Computing Environment;
* [[Java RMI|RMI]] - Remote Method Invocation;
* [[.NET Remoting|.NET Remoting]] - .NET Remoting;
* [[Distributed Component Object Model|DCOM]] - Distributed Component Object Model;
* [[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==
* Druschel, Peter [http://www.cs.rice.edu/~druschel/comp413/lectures/rmi-corba.html "Distributed Program Construction"]
* Farley, Jim. [http://www.oreilly.com/catalog/javadc/chapter/ch03.html "Java Distributed Computing"], ''O'Reilly'', January, 1998.
* [http://dsrg.mff.cuni.cz/publications.phtml "Research Papers"], ''Distributed Systems Research Group'', ''Charles University Prague''
[[Category:Distributed computing]]