Embedded systems and networking are high-growth fields. Where they meet--in distributed embedded systems--there's a world of opportunity for new approaches. Just a few in the long list of applications are military systems, telecommunications, and factory automation. Each of these industries must create a single system from many distributed parts.
We could build whole classes of new distributed applications if we had the data. The information is out there. The network is fast, cheap, and reliable. Unfortunately, getting the data isn't that simple.
So what's holding distributed systems back? The lack of appropriate standards! Enterprise and desktop networking technologies fall short, so cobbled-together solutions dominate the field. Fortunately, the first networking standard designed expressly for real-time data distribution, the Data Distribution Service (DDS), has just left the presses. So, the solution may be just around the corner.
DDS fits into the class of software known as network "middleware." This is a layer between the ubiquitous network "stack" and the user application. The stack provides fundamental access to the network hardware and low-level routing and connection management. The application software, a set of custom modules, implements the various parts of the particular system. Middleware delivers data to these modules by using the underlying stack. What's the middleware challenge? It must find the right data, know where to send it, and deliver it to the right place at the right time.
The fastest-growing embedded middleware technologies are publish-subscribe architectures. In contrast to the "central-server-with-many-clients" model of enterprise middleware, publish-subscribe nodes simply "subscribe" to data they need and "publish" information they produce. Messages pass directly between communicating nodes. Such systems are good at distributing large quantities of time-critical data quickly, even in the presence of unreliable delivery mechanisms.
Publish-subscribe architectures map well to the embedded communications problem. Publish-subscribe is efficient because the data flows directly from sender to receiver without intermediate servers. Multiple senders and receivers are easily supported, making redundancy and fault tolerance natural. Perhaps most importantly, each publisher-subscriber pair can establish independent quality of service (QoS) agreements. Systems can support extremely complex, flexible data flow requirements.
Publish-subscribe designs are not new. In fact, the technology is proven and reliable. Embedded-system developers, for the most part, have had to write their own middleware. Many of them have built custom publish-subscribe systems. A few commercial products have also found some traction. The pattern follows the classic technological infrastructure evolution: a few scrappy vendors generalize from custom implementations, gradually building a solution that will work for all. The huge benefit comes when standards (de facto or not) emerge that allow industries to concentrate on the next, higher-level problem.
Those standards are now falling into place. The Object Management Group, the standards body responsible for CORBA and UML, recently published DDS as the first open, international standard directly addressing publish-subscribe middleware for embedded systems. It was patterned after many successful applications.
DDS is designed for the demanding embedded world. QoS parameters control virtually every aspect of the DDS model, including reliability, bandwidth control, delivery deadlines, fault tolerance, and resource limits. It handles transports from sporadic wireless connections to high-performance switched fabrics. It delivers high peer-to-peer performance, taking advantage of multicasting for large networks. Finally, DDS supports dynamic network configuration and redundant nodes, making it naturally resistant to many common sources of fault. DDS is rapidly building a following. Agencies within the Department of Defense are rallying around DDS, and industries from railroads to financial services are investigating the technology.
Middleware is crossing the threshold from specialized point solution to widely adopted infrastructure. When it completes that transition, it could enable new distributed systems with much greater capabilities than are practical today.