TAO's Real-time Event Service

Point of contact: Johnny Willemsen

Last Updated: $Date: 2004-11-18 05:45:00 -0600 (Thu, 18 Nov 2004) $

Documentation for the command line and service configurator options used to configure the real-time event service is available here.

New on this release

Known issues:

The new EC does not use the scheduling service

The new implementation has been designed to simplify its use in applications that do not require an scheduling service and to minimize the code footprint when the scheduling service is only required for dispatching

To achieve this goals the EC will able to run without any scheduling service or only consulting the schedule, but not updating the dependencies.

Using strategies and factories we will be able to configure the EC to update the schedule only in the configurations that required. Unfortunately this features have not been implemented yet.

Further details:

Many lower level issues and tasks can be found in the DOC Center Bugzilla webpage .

Examples

For general documentation on the Event Service please read The Design and Performance of a Real-time CORBA Event Service.

The simplest test for the Event Channel is Event_Latency, below are the basic instructions to run it:

  1. Compile everything under $TAO_ROOT/orbsvcs, this needs, obviously, $TAO_ROOT/tao and the IDL compiler in $TAO_ROOT/TAO_IDL.
  2. Run the naming service, the scheduling service, the event service and the test in $TAO_ROOT/TAO/orbsvcs/tests/Event_Latency. As in:

    $ cd $TAO_ROOT/orbsvcs

    $ cd Naming_Service ; ./Naming_Service &

    $ cd Event_Service ; ./Event_Service &

    $ cd tests/Event_Latency ; ./Event_Latency -m 20 -j &

    You may want to run each program in a separate window. Try using a fixed port number for the Naming Service so you can use the NameService environment variable.

    The script start_services in $TAO_ROOT/orbsvcs/tests can help with this.

  3. If you want real-time behavior on Solaris you may need to run these programs as root; on the other hand, this particular example really has no priority inversion, since only one thread runs at a time.
Another example is EC_Multiple, numerous examples on how to run this test can be found in the scripts located in $TAO_ROOT/orbsvcs/tests/EC_Multiple.

Features in previous releases