The Present and Future of DDS
Posted in TechBlog on January 12, 2011 by Angelo Corsaro
The beginning of the new year is the moment in which I like to look back at the year that has just passed through to analyze what has been accomplished and set goals for the new year. I we look at DDS, 2010 was a pretty active year with 3 new standards that were introduced, namely the Extensible and Dynamic Topic Types (X-Types), the ISO C++ PSM and the Java 5 PSM. I think that was quite remarkable and shows how much activity there is around DDS.
Before getting into some details of what each of these new standard provide, I thought it might be useful to visualize the DDS standard ecosystem on a figure that would take into account, roughly, at which level the standard plays. The result of this exercise was the picture shown below:
Pre-2010 Standards
Data Distribution for Real-Time Systems (DDS). This is the standard specifying the semantics of DDS and defining an API for data-centric publish/subscribe supporting automatic fail-over, filtering/queries, and full time decoupling (e.g. durability).
Data Distribution Service Interoperability Wire Protocol (DDSI/RTPS). This standard defines a high-performance binary and extensible wire-protocol that DDS implementations from different vendors can use to have on-the-wire interoperability. Interoperability has recently been demonstrated among 5 DDS vendors (See http://bit.ly/gCmSj4).
UML Profile for DDS (UML4DDS). This standard defines a UML2 profile for modeling DDS applications.
Standards introduced in 2010
Extensible and Dynamic Topic Types (X-TYPES). The X-Types standard is a fundamental extension to DDS that was designed to facilitate the extensibility and evolvability of DDS base systems. In brief, this standard defines (1) a Structural Type System for DDS, (2) an annotation framework (a la Java) that can be used to attach properties to topic types or their attributes, (3) a new API for dynamically defining topic types and creating readers/writers for these dynamically defined types, and (4) defines pluggable data encoding formats. The structural type system introduced by this specification is a key element in allowing the seamless extensibility and evolvability of DDS data models. I'll explain the details of it and provide concrete examples in my next blog entry.
ISO C++ DDS PSM. This standard defines a new native C++ API for DDS which takes full advantage of the features provided by the C++ language to provide a safe, efficient, elegant and compact API. Just to provide some hints, this API leverages C++ templates and template meta-programming for dealing with type registrations and ensuring a type-safe API where no downcasts are ever needed (existing C++ API requires often downcasts...). In addition, all previous API that where forcing a container type on the user rely now on Iterators, thus allowing the user to decide what's best container for the case at hand.
Java 5 PSM. Similarly to the ISO C++ PSM, the Java 5 PSM defines a new Java API for DDS that takes full advantage of the Java language. This API along with greatly simplifying the development of DDS applications also allows the definition of topic types to be made using Java classes.
Future Standards
The 2011 and 2012 are expected to be as busy as 2010 in terms of new DDS standards coming up.
As shown in the figure below, in 2011 we can expect to see coming the following two standards:
- Web-Enabled DDS. This specification will define a standardize way for Web applications based on REST, W3C WS-*, Atom, etc., to access the DDS global data space.
- Ultra-Large Scale DDSI/RTPS (ULS-DDSI). This might not appear like a stand-alone specification but will likely materialize via a set of extensions to the existing DDSI/RTPS wire-protocol.
The DDS Security specification will be worked mostly during 2011 but will probably have to way until 2012 before being mature enough to be voted for adoption. Likewise, 2012 will see the definition of a Remote Method Invocation (RMI) framework for DDS.
I'll be providing more information on the specifications that were adopted in 2010 in upcoming posts. I'd also keep you updated on what happens to the planned standards and on which directions they are taking.
--Angelo
Angelo Corsaro
Okko Willeboordse