The Data Distribution Service for Real-Time Systems™ (DDS™) is a leading data-centric publish and subscribe style of communications standard from the Object Management Group® (OMG®) for the Internet of Things (IoT) and Industrial Internet of Things (IIoT).
OMG DDS enables scalable, real-time, reliable, high performance and interoperable data exchanges between publishers and subscribers. OMG DDS is designed to address the needs of mission and business-critical IoT and IIoT applications such as air traffic control, transportation management, healthcare, energy and utilities, software defined networking and other big data applications.
Data-Centricity or Message-Centricity?
Most Message Oriented Middleware (MOM) implementations are message-centric technologies. OMG DDS on the other hand is a data-centric technology. They both can do similar things with respect to providing connectivity in a distributed system, however the way they do it is quite different. In a message-centric system the focus is on delivery of the message itself regardless of the data payload it contains and the infrastructure's role is to ensure that messages get to their intended recipients.
In a data-centric system the focus is on user defined data (the data model). The unit of exchange in this type of system is a data value. The middleware understands the context of the data and ensures that all interested subscribers have a correct and consistent view of the data. This is similar in concept to a database that can provide a global view (see Figure 1) of the data and can manage its access.
Figure 1 - DDS Global Data Space
One of the key advantages of data-centric technologies like OMG DDS is that the data sharing provides a much higher level of abstraction for users of the technology. Data is something that users understand since it represents something in their domain. Message-centric systems on the other hand provide a lower level abstraction as it requires users to implement data sharing through exchange of messages. A data-centric system is therefore easier to maintain and extend, enabling users to focus on developing their business logic and not on writing message handling logic. OMG DDS was designed to support complex systems, inherently providing excellent scalability, fan-out characteristics and state management capabilities. In a data-centric based system applications interact with the data model and not directly with each other. This helps to reduce coupling and enables the system to evolve much more easily and dynamically.
Message Broker or Data Bus?
The majority of MOM implementations are broker-based. Publishers post messages to a trusted message routing and delivery service, or broker (see Figure 2), and subscribers register subscriptions with the broker which also performs any message filtering. The broker normally performs a store and forward function to route messages from publishers to subscribers. In addition, the broker may prioritize messages in a queue before routing. Subscribers may register for specific messages at build time, initialization time or runtime.
Figure 2 - Message Broker Architecture
Brokers may have a single queue, multiple queues with messages distributed amongst them, copies of each message duplicated in each queue or some other kind of delivery pattern. Flexible routing patterns are a benefit of using a broker.
OMG DDS supports a decentralized broker-less architecture to enable seamless data sharing between producers and consumers. OMG DDS is based on the idea of a virtual “global data space” where producers write to the data space and consumers read from the data space. A data model consisting of named topics, their user defined data types and associated QoS is used to by the OMG DDS infrastructure to control how data is shared. OMG DDS connects producers to consumers over the data bus as shown in Figure 3.
Figure 3 – DDS Data Bus Architecture
OMG DDS provides a dynamic discovery mechanism to automatically match DataReaders and DataWriters. OMG DDS can run over many transports including TCP/IP, UDP (unicast or multicast), shared memory or any other specialist transport. It does not rely on the underlying transport for reliability as this is provided by the standard OMG DDS wire protocol.
It is worth noting that there are OMG DDS designs that are also brokered but these are the exceptions and are not usually optimal for most use cases.
PrismTech's Vortex is the leading (Commercial and Open Source) implementation of the OMG DDS standard.