The people at the Object Management Group (OMG) have been busy churning out a new standard for real-time publish-subscribe network middleware, called the Data Distribution Service (DDS). OMG is the organization responsible for such standards as UML (Unified Modeling Language) and CORBA (Common Object Request Broker Architecture).
Although it's not small, DDS targets lightweight implementations with real-time underpinnings. Like CORBA, DDS is middleware that connects applications on different systems.
DDS is a connectionless system, unlike connection-oriented systems such as CORBA and TCP. The connection-oriented systems are very common, and they address client/server-based applications where data naturally flows from one application to another. Typically, both applications incorporate a higher-level protocol like the Hypertext Transport Protocol (HTTP) for a well-known purpose, e.g., communication between a Web browser and a Web server. Data exchange is usually bidirectional and reliable.
The publish-subscribe model used by DDS differs significantly. A publisher doesn't know what application will be using its data, and the number of subscribers to that data may change dynamically. Data exchange is usually unidirectional.
Obviously, these two models address different applications. But both can be used in the same environment for different purposes. Connection-oriented standards aren't new, unlike the relatively nubile connectionless protocols like DDS. (Proprietary publish-subscribe systems are common, though.) Publish-subscribe systems typically possess lower latency than connection-oriented systems that require acknowledgements. This allows DDS-style systems to work well on large networks with high bandwidth.
DDS is dynamically reconfigurable, and it's naturally resistant to faults. No special nodes or single points of failure exist within the system. DDS also works well in networks with transient connections, providing a self-healing environment when disconnected parts of a network are rejoined.
The DDS standard can ride atop existing protocols like the Internet Protocol (IP) using existing datagram and multicast standards. As a higher-level protocol, DDS permits programmers to use a few DDS calls to publish and deliver, or subscribe and acquire, data. This can be compared to the underlying socket calls typically used to implement the DDS functions.
With DDS, publishers needn't know who the subscribers are or where they're located. DDS maintains a distribution and notification list. So publishers simply name the information they're supplying, and subscribers use the same approach to request it. The DDS system handles movement of data from a publisher to active subscribers of that data when the data is generated. In many cases, data may go to dozens of nodes on the network. This lets DDS employ the multicast features of some networks.
DDS is significant because of its real-time publish/subscribe paradigm. It supports deadlines, failover, publisher arbitration, bandwidth control, reliability tuning, quality of service, and other features.
GETTING DDS RUNNING
OMG simply develops and publishes a standard. Developers and companies must complete the implementation. One company with implementations and tools for DDS is Real-Time Innovations. In addition to a DDS implementation called NDDS, Real-Time Innovations offers development tools such as NDDS Surf, NDDS Snoop, and NDDS Scope. These tools provide diagnostic information for a DDS environment.
DDS doesn't replace connection-based client/server communication. It complements it. The middleware is already being used in a wide range of rugged, real-time environments like naval radar systems. DDS and NDDS are worth investigating if your development needs require a data-centric approach. Pricing for NDDS starts at $46,920.
Object Management Group