The Data Distribution Service (DDS) for real-time systems is an Object Management Group (OMG) machine-to-machine (sometimes called middleware or connectivity framework) standard that aims to enable dependable, high-performance, interoperable, real-time, scalable data exchanges using a publish–subscribe pattern.
DDS handles transfer chores: message addressing, data marshalling and de-marshalling (so subscribers can be on different platforms from the publisher), delivery, flow control, retries, etc.
By exchanging messages anonymously, DDS simplifies distributed applications and encourages modular, well-structured programs.
These include application programming interfaces (APIs) and libraries of implementations in Ada, C, C++, C#, Java, Python, Scala, Lua, Pharo, Ruby, and Rust.
Two things made the demos possible: the DDS-I or Real-Time Publish-Subscribe (RTPS) protocol,[7] and the agreement to use a common model.
In March 2009, three vendors demonstrated interoperability between the individual, independent products that implemented the OMG Real-time Publish-Subscribe protocol version 2.1 from January 2009.
The demonstration included the discovery of each other's publishers and subscribers on different OS Platforms (Microsoft Windows and Linux) and supported multicast and unicast network communications.
[7] DDS for Lightweight CCM (dds4ccm) offers an architectural pattern that separates the business logic from the non-functional properties.
[18] The specification provides mappings for the application programming interface (API) specified in DDS-XTypes, and accessing quality of service (QoS) profiles specified in DDS-CCM.
[20] This specification also defined how to publish and subscribe objects without first describing the types in another language, such as XML or OMG IDL.
[21] An interface definition language (IDL) was specified in 2014 independently from the Common Object Request Broker Architecture (CORBA) specification chapter 3.