The list of distributed real-time applications is long. It includes military systems, financial trading, telecommunications, factory automation, traffic control, medical imaging, and more. Each of these industries struggles daily with how to create a single high-performance system from many distributed parts.
While these systems are networked, today they are not really well connected. There is little control, or even understanding, of critical issues such as delivery timing, bandwidth utilization, or fault handling. As a result, most systems share only a fraction of the information required to develop a truly distributed application. Instead, these systems are really a loose federation of connected point applications. The great potential of the network is not yet realized.
Why is that? The information is out there. The network is fast, cheap, and reliable. We could build whole classes of new distributed real-time applications, if we could just get the data. Unfortunately, today, getting the data---the right data at the right time---isn't that simple.
Getting the right data at the right time is hard because network software architecture has not kept pace with easy-to-use operating systems and network hardware. The fundamental information models built for office and enterprise networks are fine for sharing files and executing transactions, but they simply don't fill the needs of demanding real-time embedded systems. In a real-time network, the main problem is to find and disseminate information quickly and within strict delivery requirements to many nodes. Technology designed for human interaction, at human-interaction speeds, just doesn't cut it.
Recent advances in real-time middleware technology promise to enable much higher-performance distributed applications. The real change is from code-centric or architecture-centric thinking to data-centric design. Instead of configuring clients and servers, or building data-access objects and invoking remote methods, data-centric design lets developers directly control information exchange.
Recently, the Object Management Group's (OMG) Data Distribution Service for Real-Time Systems standard (DDS) codified the data-centric approach. DDS specifies a rich API for publish-subscribe data delivery. More critically, DDS is the first standard that specifies flexible Quality of Service (QoS) parameters that control real-time delivery. DDS has the potential to enable a new class of high-performance real-time applications.
This article examines the challenges faced by distributed real-time systems. It outlines how that challenge drives the transition to data-centric design. Finally, it dives into the depths of the DDS standard, revealing how data-centric design can be implemented within real-time constraints.