OpenDDS is an Open Source, native C++ implementation of the OMG (Object Management Group) Data Distribution Service (DDS) for Real-Time Systems specification.
DDS defines a strongly typed publish-subscribe service for efficiently distributing application data between participants in a distributed application. OpenDDS leverages the ADAPTIVE Communication Environment (ACE) to provide portability and configurability across a wide variety of operating systems and deployment environments. OpenDDS was developed by OCI, working closely with key customers, users, and other researchers at various universities and other locations around the globe.
- Broad platform support, including real-time and non-real time operating systems on a variety of hardware platforms.
- Operating systems include Linux, Windows™, Mac OS™, VxWorks™, LynxOS™, and others
- Hardware platforms include the Intel Core Processor Family, ARM, Raspberry Pi, and others
- Complies with the OMG DCPS layer of the Data Distribution Service for Real-Time Systems (DDS) specification.
- A Pluggable Transport Layer that allows data transmission across a variety of transport protocols. OpenDDS currently implements simple TCP, UDP, reliable multicast, and unreliable multicast transports. In addition, application developers may implement their own custom transport protocols and plug them into OpenDDS.
- Interoperability with other DDS implementations through the RTPS transport.
- Support for Java bindings through JNI and the option of inclusion with JBoss (ESB) frameworks by means of a JMS wrapper.
OpenDDS is free Open Source software (FOSS), which means no vendor lock-in and maximum user control. There are no license fees whatsoever.
Full source code available (also at no cost).
The OpenDDS Modeling Software Development Kit (SDK), built on top of the Eclipse Modeling Framework, simplifies using OpenDDS, leaving the developer free to devote more time to application issues rather than the details of internal middleware plumbing.
Efficient marshaling and demarshalling of user-defined data types.
Robust federated information repository that allows publishers and subscribers to discover one another, to support registration of participants and creation of topics, and to support publication of built-in topics for meta-data propagation.
Scalable, multi-threaded architecture.
Includes an easy-to-use run-time configuration framework that supports configuration via a combination of files, options, and application programming interfaces.
OpenDDS on GITHUB
Designing a Distributed Application Using DDS QoS
In this webinar, OCI Principal Software Engineer, Adam Mitz, and Object Management Group (OMG) explore how an application uses DDS QoS policies to address several non-functional requirements. They also cover the trade-offs involved in different design choices involving DDS QoS and other DDS features.
The Object Management Group (OMG) Data-Distribution Service for Real-Time Systems (DDS) is the first open international middleware standard directly addressing publish-subscribe communications for real-time and embedded systems.
DDS introduces a virtual Global Data Space where applications can share information by simply reading and writing data-objects addressed by means of an application-defined name (Topic) and a key. DDS features fine and extensive control of QoS parameters, including reliability, bandwidth, delivery deadlines, and resource limits. DDS also supports the construction of local object models on top of the Global Data Space.