Simplify Design, Implementation, and Integration of Industrial and Consumer IoT Systems
DDS uses a global data space that lets applications share information with full control of reliability and timing. DDS middleware takes full responsibility for both the distribution of data (from producers to consumers), as well as the management of data (such as maintaining non-volatile data for late-joining applications). The benefits of reduced complexity are apparent during the whole lifecycle of the IoT system.
Simplify Modeling and Design
During the modeling and design process, DDS allows you to:
- Capture domain-specific information in a structured, standardized way with Topic and Types
- Annotate this information (its syntax) with Quality of Service (QoS) policies — non-functional properties that define special and temporal properties such as timing, urgency, reliability and persistence
The resulting DDS information model is extremely valuable. Developers can use it to help build re-usable software components. You can also use it to share system properties and requirements with end users.
During development, DDS allows you to:
- Handle data input and output for any application, leaving the developer to focus on business logic without the distraction of unnecessary coupling (time, location, content) between input providers and output consumers.
- Structure data based on Types, leaving applications to express fine-grained interest (timeliness, content) in required data; traditional message-oriented middleware only handles opaque messages and cannot filter data.
- Manage non-volatile data in a fault-tolerant manner; if applications publish their internal state using DDS, they can easily become both re-startable and re-allocatable.
- Arbitrate seamlessly between redundant publishers and supports redundant consumers; it facilitates automatic failover, again without increasing the application’s complexity.
Eighty percent of typical networking code is dedicated to handling data selection and errors. DDS accelerates development by abstracting this complexity away from application code.
Simplify System Integration
System integration depends on data availability. During this process, DDS allows you to:
- Discover data sources and sinks automatically and ensure that data producers meet QoS requirements to provide the right data to the right place at the right time.
- Use configuration and monitoring utilities to deploy an optimal physical infrastructure by configuring (dynamic) mappings between logical DDS properties (urgency, importance, partitioning) and physical properties (priority lanes, scheduling classes, multicast groups) without affecting applications.
System integration is essentially a free benefit of DDS. Ubiquitous information availability allows spontaneous integration, including dynamic discovery and related QoS matching.
Simplify System Deployment and Evolution
Complex systems present challenges for deployment when integrating new and legacy elements. DDS allows you to:
- Apply a data-centric approach that uniquely decouples space (location) and time (frequency) dependencies with a simple and powerful information model.
- Acknowledge and integrate new and unplanned applications at runtime without impacting existing data models, to enable the spontaneous integration of new functionality into a system.
- Recognize and translate mismatched data types between old and new versions and applications to enable incremental upgrades of large distributed systems.
The abstractions embraced by the data-centric approach and shared data model speeds development and enables dynamic deployment and evolutionary upgrades.
DDS supports seamless security. During normal operation, DDS finds data by name or value and makes connections. Secure DDS simply documents and enforces those relationships. It allows you to:
- Use a standard DDS API to relink and specify allowed data flows to create a secure system without any coding.
- Enable secure multicast systems since DDS supports many-to-many sessions.
- Implement access control by documenting Topic names and relationships (configuration), and enforcing data flows between named publishers and named subscribers.
Fundamentally, DDS controls the data itself, not users, machines, end-points, or other non-data-centric entity.