CoreDX DDS Dynamic and Extensible Topic Types (X-Types)

Easily modify, extend, and maintain CoreDX DDS Systems without requiring system-wide upgrades.

CoreDX DDS X-Types provides a mechanism to manage the evolution of systems throughout their life-cycle, allowing the upgrade of individual components and maintaining backwards compatibility without requiring costly (or infeasible) system-wide upgrades.

Overview

Dynamic and Extensible Topic Types (X-Types) adds powerful functionality to the existing DDS type system, including:

  • The ability to extend and modify data types over time
  • Further configuration options for data types like "optional" and "required"
  • Standardized IDL and XML representation of data types
  • New data types including bitmap
  • Standardized API for Dynamic Data Types

Extensibility

The ability to modify and extend data types over time provides tremendous flexibility in the long-term maintenance of any system. X-types provides 3 datatype extension options.

Final: Data types won't change

The 'Final' extensibility kind is equivalent to the old DDS data type definitions: the data type is fixed. DataReaders and DataWriters will match only if their data types are the same in structure and order. This is a very efficient configuration for data types, using CDR encoding rules for data transmission.

Extensible/Appendable: Data types may grow over time by adding additional fields

The 'Extensible' or 'Appendable' extensibility kind allows for new fields to be added to the end of a data type. A DataReader and DataWriter can match with different data types, provided the only difference is additional fields at the end of the data type. This is still an efficient configuration of data types, with minimal overhead compared to Final data types.

Mutable: Data types may change over time by adding, removing, or re-ordering fields

The 'Mutable' extensibility kind allows the most flexibility in data type maturation over time. Fields may be added in any order, fields may be removed, and fields may change order. DataReaders and DataWriters will match common fields between their data types. This data type configuration provides the most flexibility.

Data Type Configuration

CoreDX DDS X-Types provides a number of new configuration options for data types, individual fields, and ability to insert code into the resulting generated C, C++, C#, or Java code. These configuration options are specified in the IDL or XML file using annotations. Annotations may be added before or after the entity they effect.

Backwards Compatibility of Data Types

Carefully constructed data types may use X-Types features and be backwards compatible with non-X-Types DDS applications. The CoreDX DDS data type compiler provides an optional flag to force backwards compatibility of the compiled data types, for those systems who have this requirement.

Additional Information

CoreDX DDS X-Types Programmer's Guide

Contact Twin Oaks Computing for a personalized tutorial or in person CoreDX DDS X-Types workshop

OMG DDS X-Types Standard