OpenDDS is an open source and widely adopted standards-based real-time publish-subscribe solution for distributed systems that implements the 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 OpenDDS 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. OpenDDS features broad platform support, including real-time and non-real-time operating systems on a variety of hardware platforms. OpenDDS also interoperates with other DDS implementations through the standard RTPS discovery and transport. As open source software, OpenDDS is portable to new operating systems, and extensible to support new requirements.
Exceptional Performance. In independent tests, OpenDDS 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 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 OpenDDS.
Footprint-Friendly. OpenDDS 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 is 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. OpenDDS 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 following OMG Data Distribution Service (DDS) specifications are implemented in OpenDDS:
- Data Distribution Service (DDS) for Real-Time Systems v1.4
- DDS Interoperability Wire Protocol (DDSI-RTPS) v2.2
- DDS Security (DDS-Security) v1.1
Standards Compliance. OpenDDS 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 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. OpenDDS 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). OpenDDS 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. OpenDDS uses a very efficient wire protocol and includes features like content- and time-based filtering. Solutions based on OpenDDS can scale from very small edge devices to very large enterprise systems. Additional configurations enable OpenDDS to communicate securely across the public Internet and within cloud environments.
Multi-Threaded Architecture. OpenDDS 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. OpenDDS supports a wide range of operating systems, compilers, and hardware platforms.
Multiple Transports. OpenDDS 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. OpenDDS 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. OpenDDS 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. OpenDDS includes a Safety Profile configuration that allows OpenDDS 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 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)
OpenDDS 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 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 also benefit from dynamic run-time discovery of topics and participants, reducing much of the burden and error prone nature of manual configuration.
* 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. OpenDDS provides a built-in comprehensive performance and scalability testing framework to enable testing scenarios that model expected usage with analysis and reporting of results.
Android is a trademark of Google LLC
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 OpenDDS 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.