Data Distribution Service

The Data Distribution Service for Real-Time Systems (DDS) is an Object Management Group (OMG) machine-to-machine middleware "m2m" standard that aims to enable scalable, real-time, dependable, high-performance and interoperable data exchanges between publishers and subscribers. DDS addresses the needs of applications like financial trading, air-traffic control, smart grid management, and other big data applications. The standard is used in applications such as smartphone operating systems,[1] transportation systems and vehicles,[2] software-defined radio, and by healthcare providers. DDS may also be used in certain implementations of the Internet of Things.[3]

History

A few proprietary DDS systems had been available for several years. Starting in 2001, two vendors, the American group, Real-Time Innovations,[4] and the French Thales Group teamed up to create the DDS specification, which was subsequently approved by the Object Management Group resulting in Version 1.0 in 2003.

Version History

The DDS specification describes two levels of interfaces:

Starting with DDS version 1.4, the optional DLRL layer was moved to a separate DDS-DLRL specification:[9]

DDS is covered by US patents US8874686,[10] US8671135,[11] US8150988[12] and US9015672,[13] among many others.[14]

Architecture

Entities

Model

DDS is networking middleware that simplifies complex network programming. It implements a publish/subscribe model for sending and receiving data, events, and commands among the nodes. Nodes that produce information (publishers) create "topics" (e.g., temperature, location, pressure) and publish "samples". DDS delivers the samples to subscribers that declare an interest in that topic.

DDS handles transfer chores: message addressing, data marshalling and demarshalling (so subscribers can be on different platforms from the publisher), delivery, flow control, retries, etc. Any node can be a publisher, subscriber, or both simultaneously.

The DDS publish-subscribe model virtually eliminates complex network programming for distributed applications.

DDS supports mechanisms that go beyond the basic publish-subscribe model. The key benefit is that applications that use DDS for their communications are decoupled. Little design time need be spent on handling their mutual interactions. In particular, the applications never need information about the other participating applications, including their existence or locations. DDS transparently handles message delivery without requiring intervention from the user applications, including:

DDS allows the user to specify Quality of Service (QoS) parameters to configure discovery and behavior mechanisms up-front. By exchanging messages anonymously, DDS simplifies distributed applications and encourages modular, well-structured programs.

DDS also automatically handles hot-swapping redundant publishers if the primary fails. Subscribers always get the sample with the highest priority whose data is still valid (that is, whose publisher-specified validity period has not expired). It automatically switches back to the primary when it recovers, too.

Availability

Both commercial and open-source implementations of DDS are available. These include APIs in Ada, C, C++, C#, Java, Scala, Lua, Pharo and Ruby. Some implementations are shown in the table below:

Publisher Product Download Source Code License
OCI OpenDDS Windows/Linux/Solaris/MacOSX GitHub Open Source, No licensing fees
Real-Time Innovations, Inc. Connext DDS RTI DDS Download Open Community Source and Commercial Licenses
PrismTech Vortex OpenSplice Vortex OpenSplice, DDS Community Edition DDS Community Edition GitHub Open Source LGPLv3

The complete list of vendors can be retrieved from the OMG Portal for DDS

Interoperability

DDS vendors participated in Interoperability demonstrations at the Object Management Group (OMG) Spring Technical Meetings from 2009 to 2013. [15] [16] [17] [18] [19] [20]

During demos, each vendor publishes and subscribes to each other's topics using a test suite called the Shapes Demo. For example, one vendor publishes information about a shape and the other vendors can subscribe to the topic and display the results on their own Shapes Display. Each vendor takes turns publishing the information and the other subscribe.

Two things made the demos possible:

In March 2009, three vendors (RTI, PrismTech and Twin Oaks) demonstrated interoperability between the individual, independent products that implement the OMG The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification, Version 2.1, January 2009 [21] Specification. The demonstration included the discovery of each other's publishers and subscribers on different OS Platforms (Windows and Linux) and supported multicast and unicast network communications.[15]

By March 2013, six more companies joined the interoperability demonstration: Object Computing Inc. (OCI, OpenDDS), Electronics and Telecommunications Research Institute (ETRI), IBM, Kongsberg, Milsoft, and RemedyIT.[19]

The DDS Interoperability demonstration used multiple scenarios to highlight strength of the specifications and the rigor of all the implementations to the standard: The scenarios are:

Specifications

See also

References

  1. What Can DDS Do For Android, 2012, http://www.omg.org/hot-topics/documents/dds/Android_and_DDS1.pdf
  2. City of Tokyo Metropolitan Highway Line, 2013, http://www.omg.org/hot-topics/documents/dds/Tokyo_Snapshot_1.pdf
  3. Building the Internet of Things with DDS, 2013, http://www.omg.org/news/meetings/tc/nj-13/special-events/iot-pdfs/corsaro.pdf
  4. http://www.rti.com
  5. Data Distribution Service (DDS), Version 1.4, April 2015, http://www.omg.org/spec/DDS/1.4
  6. Data Distribution Service (DDS), Version 1.2, January 2007, http://www.omg.org/spec/DDS/1.2
  7. Data Distribution Service (DDS), Version 1.1, December 2005, http://www.omg.org/spec/DDS/1.1
  8. Data Distribution Service (DDS) , Version 1.0, December 2004, http://www.omg.org/spec/DDS/1.0
  9. http://www.omg.org/spec/DDS-DLRL/
  10. US Patent US8874686
  11. US Patent US8671135
  12. US Patent US8150988
  13. US Patent US9015672
  14. Justia, Patents by Assignee Real-Time Innovations, Inc.
  15. 1 2 2009, March 2009, http://www.omg.org/news/meetings/GOV-WS/pr/rte-pres/ddsi-demo.pdf
  16. 2010, March 2010, https://community.rti.com/content/presentation/omg-dds-interoperability-demo-2010
  17. 2011, March 2011, https://community.rti.com/content/presentation/omg-dds-interoperability-demo-2011
  18. 2012, March 2012, https://community.rti.com/content/presentation/omg-dds-interoperability-demo-2012
  19. 1 2 2013, March 2013, http://www.slideshare.net/GerardoPardo/dds-interoperability-demo-2013-washington-dc
  20. OMG DDS Interoperability Demo video, December 2010, http://www.youtube.com/watch?v=Bn56V0NLW1E
  21. 1 2 3 The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification, Version 2.1, January 2009, OMG:formal/2009-01-05, http://www.omg.org/spec/DDSI/2.1
  22. Data Distribution Service for Real-time Systems (DDS), Version 1.2, formal/2007-01-01, January 2007, http://www.omg.org/spec/DDS/1.2
  23. DDS for Lightweight CCM (dds4ccm), Version 1.1, formal/2012-02-01, February 2012, http://www.omg.org/spec/dds4ccm/1.1/PDF/
  24. Programming languages — C++, 15 October 2003, ISO/IEC 14882, http://www.iso.org/iso/catalogue_detail.htm?csnumber=38110
  25. DDS-PSM-Cxx: ISO/IEC C++ 2003 Language DDS PSM, Version ptc/2011-01-02, January 2011, http://www.omg.org/spec/DDS-PSM-Cxx/1.0/Beta1/PDF
  26. Extensible and Dynamic Topic Types for DDS (DDS-XTypes), 1.0, formal/2012-11-10, November 2012, http://www.omg.org/spec/DDS-XTypes/1.0/PDF
  27. UML Profile for Data Distribution, version: 1.0, http://www.omg.org/cgi-bin/doc?ptc/10-05-17.pdf
  28. DDS-Java: Java 5 Language PSM for DDSVersion 1.0, ptc/2012-12-01, March 2013 http://www.omg.org/spec/DDS-Java/1.0/Beta3/PDF
  29. Interface Definition Language (IDL), Version 3.5, March 2014, http://www.omg.org/spec/IDL35/3.5/

External links

This article is issued from Wikipedia - version of the Friday, April 01, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.