Open-source Java-based OMG DDS implementation
by Fouad Allaoui, Ahmed Yehdih, Didier Donsez (advisor)
(Version : 20/08/2005)

The distribution provides an open-source Java-based DDS-DCPS implementation.
The purpose of this implementation is pedagogical and demontrations

Download

Download the latest distribution.

Licence terms

Read the licence terms.

What is Data Distribution Service (DDS) ?

The Object Management Group (OMG) is an international organization responsible for middleware standards. The OMG has recently adopted the specification for the Data Distribution Service for Real-Time Systems; which establishes a standard interface for publish-subscribe communications. DDS satisfies a long awaited need for a fast, flexible, fault tolerant publish-subscribe based data distribution service.

The OMG-DDS specification describes two levels of interfaces:

A report (in french) is provided in the $DDS_HOME/docs directory.

Installation

Follows these steps to install the environement and DDS application :

  1. install JDK and the Java-based build tool Ant (configure your path).
  2. install an ORB which provides an events services. We have tested our DDS implementation with Jacorb
  3. configure and add the JACORB_HOME variable in your path.
  4. unzip dds.zip in your installation directory DDS_HOME.
  5. Launch "ant compile" from your installation directory

Demonstrations

Simple example

The Foo producer produces (and publishes) a random integer.
Consumers display the current integer into a Swing GUI.
NB: The Foo example is given in the DDS specification

Run the following commands (in seperate consoles) from the installation directory

  1. start ant NS
  2. start ant server
  3. start ant FooP
  4. start ant FooC
  5. start ant FooC
or Launch "ant foo" from your installation directory.

Temperature example

The temperature producer produces (and publishes) fictive temperature measurements following a (simple) sinusoidal law.
Consumers display the current temperature into a Swing GUI.

Run the following commands (in seperate consoles) from the installation directory

  1. start ant NS
  2. start ant server
  3. start ant TempP
  4. start ant TempC
  5. start ant TempC
or Launch "ant temperature" from your installation directory.

Position example

The position producer produces (and publishes) fictive positions following a (simple) track for a initial position.
The consumer is a POITracker (Point-Of-Interest) which display a message when the current position is close one of the stored POIs.
Not implemented for the moment
Suggestion: The consumer could reuse the OSGi POI Tracker code.
The producer could reuse the OSGi GPS Position Producer code.

Nota Bene: Under Windows, do not forget to kill the thread (java.exe) after an excecution, else the next execution will not start.

Documentation

Some links on DDS:

Contact