OpenClovis Logo

Functional Description
Remote Method Dispatch

Description of RMD. More...

Description of RMD.

Overview

The OpenClovis Remote Method Dispatch (RMD) is the foundation on which all OpenClovis ASP client APIs are implemented. It implements remote procedure call semantics using synchronous and asynchronous methods. The infrastructure of RMD transparently invokes methods exported by various objects, irrespective of whether the object on which the method is invoked exists locally or is on a remote blade.

RMD supports both synchronous and asynchronous calls. The latter includes calls with and without return information. Signature and/or version check is performed run-time as part of the call. One semantic ensures that even in case of link failures, the request is never executed more than once by the service (API) provider.

RMD calls can fail due to reasons beyond the semantics of the actual operation. Some of the possible causes include link failure, component failure, and communication overload. These errors are automatically handled by the RMD layer and acted upon by the respective error handlers registered by the application.

Interaction with other components

For making any RMD call user application needs to be EOnized. It uses the functionality provided by the IOC for sending the RMD request to the destination and receiving the reply. It uses the basic functionality for buffer management and timer services provided by the corresponding components.

For all the OS resources, RMD uses the OSAL layer.

Usage Model

When an object requires the service of another object, it needs to call that particular object. This call is trapped by the RPC mechanism, which sends the parameters of the call to the destination object across the network. The RPC mechanism receives the parameters and calls the relevant function residing on the destination server. This function executes in the address space of the destination and returns the control (and parameters) to the RPC mechanism, on the server at the destination. This return result is returned to the RPC mechanism at the client (caller). The caller's RPC returns the result to the caller, that continues as if it returned from a normal (local) function call. The RMD is built on the same mechanism as the RPC. The RMD mechanism uses the OpenClovis IOC protocol as the transport layer for communication and enables communication between components (processes). IOC is responsible for the transportation of packets across servers. A component is the unit of execution of ASP and it is equivalent to a process in many ways.

rmd.png
Communication Based on RMD

Generated on Tue Jan 10 10:29:15 PST 2012 for OpenClovis SDK using Doxygen