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.
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 .
- 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  and the DDS Interoperability Wire Protocol (DDSI v2.1) . 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.
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.