The OpenDDS project is an open source and widely adopted standards-based real-time publish-subscribe solution for distributed systems that implements standardized interfaces and behaviors that enable application connectivity and portability, backed by unparalleled service and support from Object Computing.
Cost Savings. As open source software, all the source code for the OpenDDS project is freely available and can be broadly adopted and used with no vendor lock-in, contracts, complex license management, or run-time licensing fees. See the OpenDDS license for details.
Flexibility. The OpenDDS project features broad platform support, including real-time and non-real-time operating systems on a variety of hardware platforms. The OpenDDS project also interoperates with other DDS implementations through the standard RTPS discovery and transport. As open source software, the OpenDDS project is portable to new operating systems, and extensible to support new requirements.
Exceptional Performance. In independent tests, the OpenDDS implementation performed as well as or better than other DDS implementations, with minimal additional latency over the practical limits of the underlying network transport.*
Predictable Performance. Not only is OpenDDS technology fast, it is also predictable. It is designed for applications with demanding real-time requirements and mission-critical constraints, such as those found in C4I, industrial automation, distributed control and simulation, sensor networks, and distributed embedded systems. Real-time capabilities are enabled through quality-of-service (QoS) policies and transport configurations.
Increased Developer Productivity. Developers benefit from thoughtful tooling, extensive documentation, numerous examples, and access to an engaged and active community of users. In addition, dedicated training, consulting, and support services are available from Object Computing to help your team make the most effective use of the OpenDDS project.
Footprint-Friendly. OpenDDS technology is designed to be efficient and adaptable to meet end-system requirements and constraints. Its layered architecture with composable features means different features can be added or omitted at compile time, depending on the needs of your application. Run-time configuration options and QoS policies can also be managed to affect footprint. In addition, Object Computing can help you optimize your solution based on application and platform demands.
Ideal for Data-Driven Network Architecture. The DDS specification defines a distributed data-centric publish-subscribe (DCPS) connectivity and communication model that's ideal for data-driven networked applications, from edge environments to the enterprise to the cloud. The DCPS architecture presents applications with a conceptual "global data space" through which they communicate. Application developers are free to focus on their applications, not on managing the inherent complexity of networked communications.
Unparalleled Service and Support. The OpenDDS project is freely available and free to use, but it's also backed by Object Computing's deep technology expertise and full-lifecycle solution engineering capabilities.
* The performance of any solution depends upon context and must be measured for scenarios that reflect the application's actual or expected requirements and constraints. The OpenDDS project provides a built-in comprehensive performance and scalability testing framework to enable testing scenarios that model expected usage with analysis and reporting of results.
The following OMG Data Distribution Service (DDS) specifications are implemented in the OpenDDS implementation:
- Data Distribution Service (DDS) for Real-Time Systems v1.4
- DDS Interoperability Wire Protocol (DDSI-RTPS) v2.2
- DDS Security (DDS-Security) v1.1
Support for Interface Definition Language v4 (IDL 4) annotations and Extensible and Dynamic Topic Types for DDS (DDS-XTypes) is in progress.
Standards Compliance. The OpenDDS project complies with the OMG DDS, DDSI-RTPS, and DDS-Security specifications. Details of this compliance are provided in the complimentary documentation.
Broad Industry Support. DDS forms the recommended connectivity layer of standard reference architectures across several industries, including aerospace (Future Airborne Capability Environment), IIoT (Industrial Internet Consortium), automotive (AUTOSAR Adaptive), robotics (Robot Operating System v2), and defense (NATO Generic Vehicle Architecture).
Data Centricity. Unlike message-oriented middleware solutions that require application code to create and pass payloads of non-globally defined data between endpoints, the data-centric nature of OpenDDS technology presents a conceptual "global data space" that looks to the application like native local memory accessed via an API, with flexible QoS control over how and when to share data. Rather than writing complex connection management and messaging logic, DDS directly implements controlled, managed, secure data sharing for you.
Flexible Discovery. The OpenDDS project provides scalable, dynamic discovery of publishers and subscribers via OMG-standard RTPS discovery. Participants can be added and removed at any time without reconfiguration, leading to highly decoupled, plug-and-play architectures. Alternatively, applications may use the DCPS Information Repository service for discovery and built-in topic metadata propagation. A static discovery option is also available for constrained environments.
Powerful Quality of Service (QoS). The OpenDDS project provides a rich set of QoS policies to control the behavior of the underlying connectivity and data communications to meet non-functional requirements and constraints in areas like distribution, reliability, timeliness, and security.
Scalability. The OpenDDS project uses a very efficient wire protocol and includes features like content- and time-based filtering. Solutions based on OpenDDS technology can scale from very small edge devices to very large enterprise systems. Additional configurations enable OpenDDS technology to communicate securely across the public Internet and within cloud environments.
Multi-Threaded Architecture. The OpenDDS project optimizes performance by separating processing logic, transport I/O, queuing, and resource management to different threads to minimize contention. QoS policies and certain transport configuration options allow applications to tune the threading model to their specific requirements.
Portability. The OpenDDS project supports a wide range of operating systems, compilers, and hardware platforms.
Multiple Transports. The OpenDDS project supports multiple transport implementations via a pluggable transport framework. Currently supported transports include OMG-standard DDS-I RTPS (both unicast and multicast), simple TCP, simple UDP, reliable multicast, unreliable multicast, and shared memory.
Interoperability. The OpenDDS project implements the DDSI-RTPS interoperability specification. Interoperability with other DDS implementations has been demonstrated, with and without DDS Security, at multiple OMG Technical Meetings. Users can do their own interoperability testing across DDS implementations using demo source code and binaries in OMG-managed DDS interoperability testing repositories in GitHub.
Security. The OpenDDS project implements the DDS-Security specification, which provides applications with authentication, authorization, and message protection (signing, encryption). The implementation supports the standard plugins required by the specification and custom plugins are possible.
Safety. The OpenDDS implementation includes a Safety Profile configuration that allows OpenDDS technology to be used in environments with a restricted set of operating system and standard library functions and that prevents dynamic memory allocation after system start-up. The OpenDDS Safety Profile was developed to be conformant to the Open Group's FACE Technical Standard, Edition 2.1 Safety Profile (Base and Extended). It can be used along with the support for FACE Transport Services to create FACE-conformant DDS applications, or it can be used by general DDS applications unrelated to the FACE Transport Services APIs.
Integration. OpenDDS technology is used in scenarios with widely varying integration requirements. Examples include:
- Integration with vehicle on-board multispectral cameras, sensors, actuators, controllers, and display subsystems
- Custom drivers for CAN Bus, MIL-STD-1553, and proprietary communications protocols
- Integration with XMPP for multimedia chat and distributed collaboration
- ICE and STUN integration for DDS connectivity across the public Internet
- Integration with Robot Operating System (ROS2)
The OpenDDS project supports DDS standard entities, QoS policies, interfaces, and data model, enabling developers to integrate application code with OpenDDS libraries without detailed knowledge of the underlying implementation. Support for RTPS enables interoperability and integration with applications developed with other DDS implementations.
Real-Time. The DDS specification was created with the needs of distributed real-time applications in mind, meaning data communications must be high-performance, predictable, and efficient in terms of resource usage. The data-centric publish-subscribe (DCPS) model of communications is a good fit for such applications. Real-time capabilities are enabled in OpenDDS technology through QoS policies (e.g., DEADLINE, TRANSPORT_PRIORITY, LATENCY_BUDGET) and transport configurations.
Runtime Configuration Framework. This easy-to-use framework supports configuration via a combination of files, options, and application programming interfaces. Applications built with OpenDDS technology also benefit from dynamic run-time discovery of topics and participants, reducing much of the burden and error prone nature of manual configuration.
Language Bindings. The OpenDDS project provides language bindings for C++, Java, JavaScript, and Node.js. An independent open source project called OpenDDSharp provides an OpenDDS wrapper for .NET languages such as C#.
Android is a trademark of Google LLC
The OpenDDS project and Object Computing provide extensive documentation and resources for learning and using OpenDDS technology:
- opendds.org
- The GitHub project
- Documentation
- Articles
- Quick start guides for popular platforms and QoS policies
- Demos and examples
- FAQ
- Mailing lists
- Training courses
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.
In addition to the benefits of the OpenDDS implementation itself, the technology is backed by Object Computing's software engineering expertise to help you make the most effective use of it. This service-based vs. product-based business model is what differentiates us from a commercial vendor.
Resources
Everything you need to get started using OpenDDS