Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Embedded Systems

The Data Distribution Service for Real-Time Systems: Part 1

Angelo Corsaro is CTO at PrismTech. Angelo also leads strategic standardization at the Object Management Group (OMG), where he co-chairs the Data Distribution Service (DDS) Special Interest Group.

The Data Distribution Service for Real-Time Systems: Part 1
The Data Distribution Service for Real-Time Systems: Part 2

This is the first installment of a series covering the Object Management Group (OMG) Data Distribution Service for Real-Time Systems (DDS). In this first installment I focus on what DDS is, why it represents an important technology you should learn about, and how it is being used today. I also make sure that those of you that can't spend too much time away from a keyboard will get started coding their first DDS application.

What Is DDS?

Whether you are an experienced programmer or a newbie, it is highly likely that you have already experienced some form of Publish/Subscribe (Pub/Sub). Pub/Sub is an abstraction for one-to-many communication that provides anonymous, decoupled, and asynchronous communication between a publisher and its subscribers. This is the abstraction behind many of the technologies used today to build and integrate distributed applications, such as social application, e-services, financial trading, etc., while maintaining their composing parts loosely coupled and independently evolvable.

Different implementations of the Pub/Sub abstraction have emerged for supporting the needs of different application domains. The Data Distribution Service for Real-Time Systems (DDS) is an Object Management Group (OMG) standard for Pub/Sub that addresses the needs of mission- and business critical applications, such as, financial trading, air traffic control and management, and complex supervisory and telemetry systems.

That key challenges addressed by DDS are to provide a Pub/Sub technology in which data exchange between producers and consumers are:

  • Real-time, meaning that the right information is delivered at the right place at the right time -- all the time. Failing to deliver key information within the required deadlines can lead to life-, mission- or business-threatening situations. For instance in a financial trading 1ms could make the difference between loosing or gaining $1M. Likewise, in a supervisory applications for power-grids failing to meet deadlines under an overload situation could lead to severe blackout such as the one experienced by the northeastern U.S. and Canada in 2003 [1].
  • Dependable, thus ensuring availability, reliability, safety and integrity in spite of hardware and software failures. For instance, from the reliable functioning of an Air Traffic Control and Management System depends the life of thousands of people flying over the area it is managing. Thus these systems have to ensure 99.999% of availability and guarantee that regardless of experienced failures critical data is reliably delivered.
  • High-Performance, hence able to distribute very high volumes of data with very low latencies. As an example, financial auto-trading applications have to deal with millions of messages per second each of which has to be delivered with minimal latency, in the order of tens of microseconds.

At this point, to the question "What is DDS?" I can safely answer that it is is a Pub/Sub technology for real-time, dependable and high-performance data exchanges. Another way of answering as you will find in the course of this series is that DDS is Pub/Sub on steroids.

DDS vs Other Pub/Sub Technologies

Whenever you hear about a new technology you may say "Cool!" or "So What?!". If you are a "So What?!" kind of person, this sidebar quickly summarize how DDS differs from other publish/subscribe technologies. We'll compare with the Java Message Service (JSM) and Advanced Messaging Queuing Protocol (AMQP).

One way of comparing DDS to JMS and AMQP is to measure what they standardize. JMS standardizes an API while AMQP standardizes a wire-protocol -- DDS standardizes both. Another important characteristic is the architectural style promoted. DDS is fully distributed and does not require the presence of any broker mediating communication between producers and consumers. On the other hand, both JMS and AMQP have a broker-based architecture where one or more brokers mediate the distribution of information from sources to destinations.

If you look at the expressiveness of these different technologies, you will see that DDS provides the ability of associating user defined data types with topics and perform full queries as well as continuos queries on these data types. This exceeds what both JMS or AMQP can provide since filtering is limited to message headers and topics tend to hide the user data type into more or less structured blobs.

Another dimension in which DDS excels when compared to either JMS or AMQP is the support for QoS. DDS allows you to configure just about any non-functional aspect of a distributed pub/sub application while JMS and AMQP provides a subset of QoS with often a subset of possible choices.

Finally, if we look at performance, DDS implementations can deliver very low latencies (in the range of 50-60 usec on a Gbps Ethernet) along with very high throughput (millions update per second) while retaining very low and deterministic jitter.


The OMG DDS Standard

The OMG DDS standards family is today composed, as in Figure 1, by the DDS v1.2 API [2] and the DDS Interoperability Wire Protocol (DDSI v2.1) [3]. The DDS API standard guarantees source code portability across different vendor implementations, while the DDSI Standard ensures on the wire interoperability across DDS implementations from different vendors. The DDS API standard defines several different profiles (see Figure 1) that enhance realtime pub/sub with content filtering, persistence, automatic fail-over, and transparent integration into object-oriented languages.

Figure 1: The DDS Standard

The DDS standard was formally adopted by the OMG in 2004. In less than six years, it has become the established Pub/Sub technology for distributing high volumes of data, dependably and with predictable low latencies in applications such as, Radar Processors, Flying and Land Drones, Combat Management Systems, Air Traffic Control and Management, High Performance Telemetry, Large Scale Supervisory Systems, and Automated Stocks and Options Trading.

Along with wide commercial adoption, the DDS standard has been recommended and mandated as the technology for real-time data distribution by several key administrations worldwide, such as the U.S. Navy, the DoD Information-Technology Standards Registry (DISR) the UK MoD, the MILVA Vehicles Association, and EUROCONTROL--the European organization for the safety of air navigation.

Now that I've given you an overall idea of what DDS is and where it is being used let's try to see how it works.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.