Open International Data-Centric Connectivity Standard
DDS enjoys an active and vibrant community continuously working to extend its applicability. The DDS standard currently includes the following:
- High-performance, scalable, secure, and data-centric publish/subscribe abstraction
- Completely decentralized architecture with dynamic discovery service that automatically establishes communication between matching peers
- Rich Quality of Service (QoS) characteristics for control over every aspect of data distribution, such as data availability, resource usage, reliability, and timing
- Interoperable data sharing, platform-independent extensible data modeling, encoding, and representation
- Recent extensions for RPC, security, resource-constrained devices, web integration, and OPC UA integration
OMG DDS Standards
- DDS v1.4 – the DDS specification describes a Data-Centric Publish-Subscribe (DCPS) model for distributed application communication and integration.
- DDSI-RTPS v2.3 – defines the Real-time Publish-Subscribe Protocol (RTPS) DDS Interoperability Wire Protocol.
- Implementations are identified by an OMG-assigned RTPS vendor ID
- DDS-XTypes v1.3 – defines the DDS Type System and the serialized representation of DDS data.
- DDS-Security v1.1 – defines the Security Model and Service Plugin Interface (SPI) architecture for compliant DDS implementations.
Type Syntax and Language Mappings (IDL)
- IDL4 (Interface Definition Language) v4.2 (also available as ISO standard ISO/IEC 19516:2020) – defines the IDL, a language used to define data types and interfaces in a way that is independent of the programming language. This is not a DDS standard, but DDS depends on it.
- IDL4-JAVA – defines the mapping of IDL4 types to the to Java Language.
- IDL4-C# – defines the mapping of IDL4 types to C# Language.
- DDS C++ API (ISO/IEC C++ 2003 Language PSM for DDS) – defines a C++ API only for the Data-Centric Publish-Subscribe (DCPS) portion of the DDS specification.
- DDS Java API (Java 5 Language PSM for DDS) – defines a Java API for the Data-Centric Publish-Subscribe (DCPS) portion of the DDS specification.
- Other language APIs – the API for C, Java, Traditional C++, ADA, C#, and other Languages are derived from the DDS API in IDL using the respective IDL to language Mappings.
- DDS-RPC v1.0 – defines a distributed services framework providing language-independent service definition and service/remote procedure invocation using DDS. Supports automatic discovery, synchronous and asynchronous invocations, and Qos.
- DDS-XML v1.0 – defines the XML syntax used to represent DDS-related resources. Provides XSD schema files for the DDS Quality of Service (Qos), DDS Data Types, and DDS Entities (DomainParticipants, Topics, Publishers, Subscriber, DataWriters and DataReaders).
- DDS-JSON v1.0 – defines the JSON syntax used to represent DDS-related resources. Provides JSON schema files for the DDS Quality of Service (Qos), DDS Data Types, DDS Data, and DDS Entities (DomainParticipants, Topics, Publishers, Subscriber, DataWriters and DataReaders).
- DDS-WEB v1.0 – defines a platform-independent Abstract Interaction Model of how web clients should access a DDS System and a set of mappings to specific web platforms that realize the Platform Independent Model (PIM) in terms of standard web technologies and protocols.
- DDS-OPCUA v1.0 – defines a standard, configurable gateway that enables interoperability and information exchange between systems that use DDS and systems that use OPC UA.
- DDS-XRCE v1.0 – defines the protocol used by a resource constrained, low-powered device (client) to publish and subscribe data to a DDS Domain. The XRCE protocol connects the XRCE client to a DDS Agent that acts as the gateway to the DDS Domain.
Work in Progress
- DDS-TSN – defines a set of mechanisms to allow DDS to be deployed on, and leverage, Time-Sensitive Networks (TSN). Defines the mapping of the DDSI-RTPS protocol to a TSN transport.
- DDSI-RTPS TCP/IP PSM – defines the mapping of the DDSI-RTPS protocol to a TCP/IP transport.
- DDS C# API – defines a C# API for the Data-Centric Publish-Subscribe (DCPS) portion of the DDS specification.
DDS and CORBA are independent standards
DDS™ and CORBA® are two independent connectivity standards that enable the exchange of information, distinct from location, hardware platform, programming language or operating system.
They both provide application portability (using standard language interfaces) and network interoperability. Both DDS and CORBA were developed by the Object Management Group® (OMG). However, they were designed to support different use cases and integration patterns.
DDS primarily supports publish-subscribe data-distribution. It also supports remote procedure calls (RPC), an evolvable type system, Qos, and fine-grained security. DDS is transport independent: It can run over UDP/IP, TCP/IP, Shared-Memory or other transports.
The CORBA family of standards support remote method invocation on distributed objects. CORBA uses TCP/IP, SSL/TLS, or other transports. CORBA has support for real-time and embedded systems.
While the DDS and CORBA standards are independent, both leverage the OMG Interface Definition Language™ (IDL™) to specify data and service types. This allows applications to use the same data types for both DDS and CORBA interactions.