
The use of the OSI management model for distributed processing through OSIMIS
-----------------------------------------------------------------------------

The CMIS/GDMO Action is one of the most powerful features
of the OSI management model as it can be used to effect arbitrary remote
method calls ("actions") on distributed managed objects. 
In fact, if the management semantics are left aside, this is a very
powerful paradigm for distributed computing in the Open Distributed Processing
(ODP) sense. It is actually more powerful than the emerging OMG CORBA
paradigm in information model terms as GDMO is more powerful than IDL [].
It can also be thought as more powerful in general terms if the OSI management
and directory frameworks are combined to support various ODP
transparencies as has been shown in [].

To demonstrate the use of the OSI management model as a powerful paradigm
for distributed processing when supported by high-level object-oriented APIs,
the OSIMIS platform was extended with a distributed processing example.
A "simpleStats" class was specified providing simple statistical services
in the form of actions. The currently supported services (actions) are:

- calcSqrt:       returns the square root of a non-negative real number
- calcMeanStdDev: calculates and returns the mean and standard deviation
                  of a series of real numbers

For such a simple class, the GDMO compiler and the Generic Managed System
(GMS) do all the work with respect to the server realisation,
leaving to the implementor (almost) only the realisation of the object's
services. The file $(TOP)/examples/odp/simpleStats.inc.cc contains all
the user supplied code while the file $(TOP)/examples/odp/OdpTestSrv.h
instructs the GMS of which classes the server will support.

Regarding access aspects to utilise those services, the open nature
of the OSI model due to ASN.1/GDMO minimise almost completely the task.
The generic maction utility can be deployed to provide a
1 line shell script (!) that will provide such a service. The OSIMIS location
transparency service may be used to hide the location where an instance
of this object executes. Two scripts are provided to effect those two actions,
$(TOP)/examples/odp/calcSqrt.sh and $(TOP)/examples/odp/calcMeanStdDev.sh .

In case a more complex client program needs to utilise those services,
the RMIB access API may be used as demostrated in
$(TOP)/examples/odp/OdpTestClnt.cc which provides the same service as
the two scripts but by using a programmatic high-level API (20 lines in C++).

These features are implemented in OSIMIS-4.0 . On the subject of performance,
measurements on workstations across an Ethernet show about 40-45 msecs
to perform the calcSqrt action. Association establishment is in the order
of 120-150 msecs without location transparency while association release
is about 20 msecs.

