        Enhanced Simulated Time Support Service in OSIMIS-4.0
        -----------------------------------------------------

In OSIMIS 4.0 the simulated time support function was enhanced as
decribed here. In the first version of the simulated time support
service (3.3), ALL applications in a hierarchical management environment
needed to have an association open to one of the simulated element
agents in order to receive the time update (in the ICM system there
is only one such agent, the simulator's QA).

This is unacceptable in the sense that introduces a specific aspect
to the simulated environment and as such defies transparency.
The original proposed solution involved the propagation of the
simulated time "upwards" by receiving applications, so that associations
to the lowest TMN level are not required. This change is in effect now.


In terms of design/implementation details, there are now two types
of time manager classes:

- TimeManager
- TimeManagerRelay

The former should be instantiated at the lowest level simulated agents
(in the ICM case the simulator's QA) and at pure managing applications
i.e. WS-OSs. Any other OSs, MDs etc. should instantiate the
TimeManagerRelay so that time is propagated "upwards".
Those time manager instances should be given the address of one
remote application (ANY one, not necessarily the simulator's QA as before).


The programmatic interface remains virtually unchanged, with one
only small change: when the TimeManager is instantiated in the
simulator's QA, this should be done as:

    TimeManager timeManager(TM_SIMULATED);

and not as before:

    TimeManager timeManager;


OSIMIS-4.0 contains a simtime/example directory with three applications:

a. a simulated agent (simagent)
b. a OS              (simos)
c. a manager         (simmgr)

The simulated agent operates in simulated time which is exactly
twice slower than real time (1 simsec = 2 realsecs).
The simos may talk to it and it will simply propagate the time while
the simmgr may talk to either the simos/simagent.

As an example, simmgr schedules wake ups every 10 secs and if it talks
to simagent/simos it wakes up every 20 real seconds (10 secs of simulated time)
while if it connects to any other application it will operate in real time
i.e. will wake-up every 10 secs of real time.
Please note that simagent/simos run both as SMA application title
and as such cannot be run on the same machine.

