DDS is data-centric while OPC-UA is designed to support device interoperability.
The Object Management Group (OMG) Data Distribution Service for Real-Time Systems (DDS) and the OPC Foundation Open Platform Communications-Unified Architecture (OPC-UA) are commonly considered as two of the most relevant technologies for data and information management in the Industrial Internet of Things (IIoT). There remains, however, much confusion on how the two technologies compare and their applicability with different IIoT use cases.
There are many misconceptions, misunderstandings and apples-to-oranges comparisons of the two technologies. In this article, I’ll try to clarify the differences and applicability of DDS and OPC UA in IIoT.
Let’s start with looking at how the two IoT standards came into existence.
DDS and OPC-UA genesis
DDS: In the late 1990s to ensure information superiority, the U.S. Department of Defense introduced the concept of the Global Information Grid (GIG). The idea was to provide a set of capabilities for collecting, processing, storing, disseminating and managing information on demand to warfighters, policy makers and support personnel.
Client/server technologies popular at the time — such as CORBA, COM+/DCOM — were not suited to implementing the GIG, because of tight coupling it induced, the high sensibility to faults, as well as scalability and performance issues.
DDS was introduced to overcome these limitations and address the data-sharing requirements of the GIG for real-time situational awareness, operational intelligence and mission planning. Many consider the Global Information Grid to be the precursor of what we call today the IoT.
Since then, DDS has been endorsed and recommended worldwide as the technology at the foundation for network-centric systems and GIG-like functionalities. Its massive deployments include air traffic control and management, unmanned air vehicles, aerospace applications, integrated modular vetronics, training and simulation systems, and naval combat systems.
OPC: Open-Platform Communications, the father of OCP-UA, has its origins in the 1990s. At the time, the automation industry had no standard for interacting with control hardware and ﬁeld devices. As a result, client applications — such as HMIs — had to embed drivers and protocols for all the devices they had to interact with. It was the age of the “Integration Nightmare.”
OPC (OLE for process control–this is the original expansion of the acronym) was introduced in 1996 as a means to shield client applications from the details of the automation equipment and provide standardized interfaces to interact with control hardware and ﬁeld devices.
The original OPC specification was based on OLE, COM and DCOM (distributed component object model) technologies, tying it exclusively to the Microsoft platform. When Microsoft declared DCOM dead in 2002, the OPC community had to deal with the technology obsolescence problem along with the increasing demand of supporting OPC on non-Microsoft platforms. The first attempt to address these problems resulted in the definition a new OPC Data Access standard that relied over SOAP/XML. While these new standard addressed portability, the overhead introduced by SOAP/XML was not compatible with several industrial use cases.
As a result, a consensus had emerged in the OPC community that a new standard was required. This led to the OPC-UA initiative which delivered it’s the 1.0 version of the standard in 2009. As part of this process the acronym OPC was changed to be “Open Platform Communication” and the new standard was called OPC-UA (OPC Unified Architecture).
DDS and OPC-UA evolution
Now, let’s take a look at the standards and evolution of the two technologies.
The DDS spec defines a Data-Centric Publish-Subscribe (DCPS) model for distributed application communication and integration. The speciﬁcation deﬁnes APIs and the communication semantics (behavior and quality of service) that enable the eﬀicient delivery of information from information producers to matching consumers. The standard also defines DDS Interoperability Wire Protocol (DDSI-RTPS), which enables interoperability between DDS implementation from different vendors. DDS can be used to implement a virtualized data space where applications can autonomously and asynchronously read and write data, enjoying spatial and temporal decoupling. The purpose of the DDS speciﬁcation is to enable the “Eﬀicient and Robust Delivery of the Right Information to the Right Place at the Right Time.”
Recent additions to the standard include:
- DDS-Security, a comprehensive information-centric security framework for data in movement as well as data at rest.
- DDS-RPC to enable request-reply interactions between DDS applications.
- DDS-Xtypes, which enables extensible and dynamic topic types for DDS applications.
DDS applicability to eXtremely Resource Constrained Environments (XRCE) — targets with less than 100KB of RAM and connected by constrained networks, is also being extended via the upcoming DDS-XRCE standard. Finally, the upcoming DDS/OPC-UA Gateway standard will provide with seamless integration of the two technologies.
OPC-UA is a platform-independent standard through which various systems and devices can communicate by sending messages between clients and servers over various networks. It supports robust, secure communication that assures the identity of clients and servers and resists attacks. OPC-UA deﬁnes sets of services that servers may provide.
Information is conveyed using OPC-UA-deﬁned and vendor-deﬁned data types, and servers deﬁne object models that clients can dynamically discover. Servers can provide access to current and historical data, as well as alarms and events to notify clients of important changes.
OPC-UA provides the protocol and services for exchanging complex data between applications that were developed independently. OPC-UA enables syntactic interoperability between clients and servers exchanging information.
Comparing DDS and OPC-UA
Both DDS and OPC-UA address the problem of information management in distributed systems. Both provide support for information modeling: DDS through relational data modeling while OPC-UA via object-oriented modeling. Here, however, is where the similarities end:
- DDS abstraction is centered around a decentralized data space that decouples applications in time and space. OPC-UA abstraction is centered around client-server.
- DDS applications interact by anonymously and asynchronously reading and writing data in the global data space. OPC-UA applications interact by invoking requests on one or more UA servers.
- DDS applications feature complete location transparency. Data goes automatically to where there is interest. OPC-UA applications have to undergo a two-step resolution process: ﬁrst, they need to lookup servers and, second, browse data in their address space.
- DDS favors a resource-oriented and declarative programming style: You express how things should be. OPC-UA favors an imperative programming style: You express how things should be done.
- DDS data modeling is relational. A DDS information model can be queried, joined and projected. OPC-UA data modeling, however, is object oriented. OPC-UA can be browsed and queried when servers support this extension.
- DDS’ dynamic discovery allows for very dynamic systems in which applications and data are discovered automatically. Applications are notiﬁed of relevant information discovered. DDS has an out-of-the box, plug-and-play nature. OPC-UA applications, meanwhile, have to explicitly “search” for things. That means that supporting plug-and-play behaviors requires programmatic eﬀort.
- DDS allows information to be annotated with quality of service (20+ configurable QoS policies), so to capture nonfunctional properties. OPC-UA does not support QoS speciﬁcation.
- DDS security addresses data in motion as well as data at rest. Additionally, DDS security provides pluggable authentication, access control, cryptography and logging. OPC-UA security focuses on establishing secure channels between client and servers.
The most important thing to take away from this article is that DDS and OPC-UA address a similar problem in a very different way.
DDS is data-centric, designed since inception to support GIG-like systems and large-scale data integration. Its support for peer-to-peer communications naturally lends itself to support horizontal (east-west) data sharing between edge applications (fog computing) as well north-south data flows between devices, edge nodes and cloud applications in an IIoT system.
OPC-UA is a device-centric technology that was designed to support device interoperability and integration of sensors, embedded devices and PLC controllers into a larger system. OPC-UA has emerged from, and is mostly used in, the automation industry, thus its ecosystem is its biggest strength.