This document defines an OPC UA/DDS gateway specification. It specifies how to bridge the OPC UA and DDS protocols by defining mappings between their data models, type systems and core services. This includes mapping OPC UA data types, services and subscriptions to DDS data types and topics as well as mapping DDS data types and the global data space to OPC UA address space objects. Configuration formats are also defined to allow configuration of OPC UA to DDS and DDS to OPC UA bridges.
Draft submission to the OMG RPC over DDS RPF.
This draft standard defines a Remote Procedure Call (RPC) framework using the basic building blocks of DDS, such as topics, types, and entities (e.g., DataReader, DataWriter) to provide request/reply semantics. It defines distributed services, characterized by a service interface, which serves as a shareable contract between service provider and a service consumer. It supports synchronous and asynchronous method invocation.
This the the formal version 1.0 of the DDS Security specification released September 2016. OMG document number formal/2016-08-01.
DDS-Security defines the Security Model and Service Plugin Interface (SPI) architecture for compliant DDS implementations.
The DDS Security Model is enforced by the invocation of these SPIs by the DDS implementation. This specification also defines a set of builtin implementations of these SPIs.
* The specified builtin SPI implementations enable out-of-the box security and interoperability between compliant DDS applications.
* The use of SPIs allows DDS users to customize the behavior and technologies that the DDS implementations use for Information Assurance, specifically customization of Authentication, Access Control, Encryption, Message Authentication, Digital Signing, Logging and Data Tagging.
Draft submission to the OMG RPC over DDS RPF.
This draft standard defines a Remote Procedure Call (RPC) framework using the basic building blocks of DDS, such as topics, types, and entities (e.g., DataReader, DataWriter) to provide request/reply semantics. It defines distributed services, characterized by a service interface, which serves as a shareable contract between service provider and a service consumer. It supports synchronous and asynchronous method invocation.
This the the formal version 1.0 of the DDS Security specification released September 2016. OMG document number formal/2016-08-01.
DDS-Security defines the Security Model and Service Plugin Interface (SPI) architecture for compliant DDS implementations.
The DDS Security Model is enforced by the invocation of these SPIs by the DDS implementation. This specification also defines a set of builtin implementations of these SPIs.
* The specified builtin SPI implementations enable out-of-the box security and interoperability between compliant DDS applications.
* The use of SPIs allows DDS users to customize the behavior and technologies that the DDS implementations use for Information Assurance, specifically customization of Authentication, Access Control, Encryption, Message Authentication, Digital Signing, Logging and Data Tagging.
The OMG Application Instrumentation Specification provides a simple way to instrument applications so that their internal state can be accessed by remote applications and tools in order to supervise the correct operation of the system. All this with minimal impact on the application so that it can be used even within real-time threads. The Application Instrumentation API is available in C and Java.
This specification was adopted (in Beta form) by the OMG in September 2013
This is the DDS Security adopted specification.
It was adopted as an OMG standard in June 2014.
The official URL is http://www.omg.org/spec/DDS-SECURITY/
This specification is a response to the OMG RFP "eXtremely Resource Constrained Environments DDS (DDS- XRCE)"
It defines a DDS-XRCE Service based on a client-server protocol between a resource constrained, low-powered device (client) and an Agent (the server) that enables the device to communicate with a DDS network and publish and subscribe to topics in a DDS domain. The specifications purpose and scope is to ensure that applications based on different vendor’ implementations of the DDS-XRCE Service are compatible and interoperable.
This is the Joint submission by RTI, TwinOaks, and eProsima. Updated September 2017, OMG document number mars/2017-09-18.
This is the DDS-XRCE 1.0 Beta specification adopted by the OMG March 2018.
The purpose of DDS-XRCE is to enable resource-constrained devices to participate in DDS communication, while at the same time allowing those devices to be disconnected for long periods of time but still be discoverable by other DDS applications.
DDS-XRCE defines a wire protocol, the DDS-XRCE protocol, to be used between an XRCE Client and XRCE Agent. The XRCE Agent is a DDS Participant in the DDS Global Data Space. The DDS-XRCE protocol allows the client to use the XRCE Agent as a proxy in order to produce and consume data in the DDS Global Data Space.
NOTE: This document has been obsoleted by the Adopted DDS Specification
OMG DDS Security Draft Specification. This is the 4th Revised Submission to the DDS Security Specification.
Also accessible from the OMG at:
http://www.omg.org/members/cgi-bin/doc?mars/13-02-15.pdf
NOTE: This document has been obsoleted by the Adopted DDS Specification
This is the September 2013 Draft Submission to the OMG DDS Security Specification
This document specifies the OMG Interface Definition Language (IDL). IDL is a descriptive language used to define data types and interfaces in a way that is independent of the programming language or operating system/processor platform.
The IDL specifies only the syntax used to define the data types and interfaces. It is normally used in connection with other specifications that further define how these types/interfaces are utilized in specific contexts and platforms.
NOTE: This document has been obsoleted by the Adopted DDS Specification
OMG DDS Security Draft Specification. This is the 5th Revised Submission to the DDS Security Specification.
Also accessible from the OMG at:
http://www.omg.org/members/cgi-bin/doc?mars/13-05-17.pdf
This specification provides the following additional facilities to DDS [DDS] implementations and users:
* Type System. The specification defines a model of the data types that can be used for DDS Topics. The type system is formally defined using UML. The Type System is de- fined in section 7.2 and its subsections. The structural model of this system is defined in the Type System Model in section 7.2.2. The framework under which types can be modi- fied over time is summarized in section 7.2.3, “Type Extensibility and Mutability.” The concrete rules under which the concepts from 7.2.2 and 7.2.3 come together to define compatibility in the face of such modifications are defined in section 7.2.4, “Type Com- patibility.”
* Type Representations. The specification defines the ways in which types described by the Type System may be externalized such that they can be stored in a file or communi- cated over a network. The specification adds additional Type Representations beyond the
DDS-XTypes version 1.2 1
one (IDL [IDL41]) already implied by the DDS specification. Several Type Representa- tions are specified in the subsections of section 7.3. These include IDL (7.3.1), XML (7.3.2), XML Schema (XSD) (7.3.3), and TypeObject (7.3.4).
* Data Representation. The specification defines multiple ways in which objects of the types defined by the Type System may be externalized such that they can be stored in a file or communicated over a network. (This is also commonly referred as “data serializa- tion” or “data marshaling.”) The specification extends and generalizes the mechanisms already defined by the DDS Interoperability specification [RTPS]. The specification in- cludes Data Representations that support data type evolution, that is, allow a data type to change in certain well-defined ways without breaking communication. Two Data Repre- sentations are specified in the subsections of section 7.4. These are Extended CDR (7.4.1, 7.4.2, and 7.4.3) and XML (7.4.4).
* Language Binding. The specification defines multiple ways in which applications can access the state of objects defined by the Type System. The submission extends and gen- eralizes the mechanism currently implied by the DDS specification (“Plain Language Binding”) and adds a Dynamic Language Binding that allows application to access data without compile-time knowledge of its type. The specification also defines an API to de- fine and manipulate data types programmatically. Two Language Bindings are specified in the subsections of section 7.5. These are the Plain Language Binding and the Dynamic Language Binding.
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...Remedy IT
Remedy IT revised submission for the Unified Component Model (UCM) for Distributed, Real-Time and Embedded Systems.
Change of address Remedy IT:
Melkrijder 11
3861 SG Nijkerk
tel. +31 (0)88 053 0000
From its first use case that enabled distributed communications for US Navy ships to the autonomous systems of today, the DDS family of standards has enabled new generations of applications to run reliably, rapidly and securely, regardless of distance or scale.
To commemorate the 20th year milestone, the DDS Foundation is creating presentations that highlight the 14 specifications in the DDS standard, along with selected real-world use cases.
This presentation introduces some of the original use-cases and experiments, along with a brief history of the Standards.
A recorded video of the presentation is available at this URL
https://www.brighttalk.com/webcast/12231/602966
Introduction to DDS: Context, Information Model, Security, and Applications.Gerardo Pardo-Castellote
Introduction to the Data-Distribution Service (DDS): Context and Applications.
This 50 minute presentation summarizes the main features of DDS including the information model, the type system, and security as well as how typical applications use DDS.
It was presented at the Canadian Government Information Day in Ottawa on September 2018.
There is also a video of this presentation at https://www.youtube.com/watch?v=6iICap5G7rw.
The OMG Application Instrumentation Specification provides a simple way to instrument applications so that their internal state can be accessed by remote applications and tools in order to supervise the correct operation of the system. All this with minimal impact on the application so that it can be used even within real-time threads. The Application Instrumentation API is available in C and Java.
This specification was adopted (in Beta form) by the OMG in September 2013
This is the DDS Security adopted specification.
It was adopted as an OMG standard in June 2014.
The official URL is http://www.omg.org/spec/DDS-SECURITY/
This specification is a response to the OMG RFP "eXtremely Resource Constrained Environments DDS (DDS- XRCE)"
It defines a DDS-XRCE Service based on a client-server protocol between a resource constrained, low-powered device (client) and an Agent (the server) that enables the device to communicate with a DDS network and publish and subscribe to topics in a DDS domain. The specifications purpose and scope is to ensure that applications based on different vendor’ implementations of the DDS-XRCE Service are compatible and interoperable.
This is the Joint submission by RTI, TwinOaks, and eProsima. Updated September 2017, OMG document number mars/2017-09-18.
This is the DDS-XRCE 1.0 Beta specification adopted by the OMG March 2018.
The purpose of DDS-XRCE is to enable resource-constrained devices to participate in DDS communication, while at the same time allowing those devices to be disconnected for long periods of time but still be discoverable by other DDS applications.
DDS-XRCE defines a wire protocol, the DDS-XRCE protocol, to be used between an XRCE Client and XRCE Agent. The XRCE Agent is a DDS Participant in the DDS Global Data Space. The DDS-XRCE protocol allows the client to use the XRCE Agent as a proxy in order to produce and consume data in the DDS Global Data Space.
NOTE: This document has been obsoleted by the Adopted DDS Specification
OMG DDS Security Draft Specification. This is the 4th Revised Submission to the DDS Security Specification.
Also accessible from the OMG at:
http://www.omg.org/members/cgi-bin/doc?mars/13-02-15.pdf
NOTE: This document has been obsoleted by the Adopted DDS Specification
This is the September 2013 Draft Submission to the OMG DDS Security Specification
This document specifies the OMG Interface Definition Language (IDL). IDL is a descriptive language used to define data types and interfaces in a way that is independent of the programming language or operating system/processor platform.
The IDL specifies only the syntax used to define the data types and interfaces. It is normally used in connection with other specifications that further define how these types/interfaces are utilized in specific contexts and platforms.
NOTE: This document has been obsoleted by the Adopted DDS Specification
OMG DDS Security Draft Specification. This is the 5th Revised Submission to the DDS Security Specification.
Also accessible from the OMG at:
http://www.omg.org/members/cgi-bin/doc?mars/13-05-17.pdf
This specification provides the following additional facilities to DDS [DDS] implementations and users:
* Type System. The specification defines a model of the data types that can be used for DDS Topics. The type system is formally defined using UML. The Type System is de- fined in section 7.2 and its subsections. The structural model of this system is defined in the Type System Model in section 7.2.2. The framework under which types can be modi- fied over time is summarized in section 7.2.3, “Type Extensibility and Mutability.” The concrete rules under which the concepts from 7.2.2 and 7.2.3 come together to define compatibility in the face of such modifications are defined in section 7.2.4, “Type Com- patibility.”
* Type Representations. The specification defines the ways in which types described by the Type System may be externalized such that they can be stored in a file or communi- cated over a network. The specification adds additional Type Representations beyond the
DDS-XTypes version 1.2 1
one (IDL [IDL41]) already implied by the DDS specification. Several Type Representa- tions are specified in the subsections of section 7.3. These include IDL (7.3.1), XML (7.3.2), XML Schema (XSD) (7.3.3), and TypeObject (7.3.4).
* Data Representation. The specification defines multiple ways in which objects of the types defined by the Type System may be externalized such that they can be stored in a file or communicated over a network. (This is also commonly referred as “data serializa- tion” or “data marshaling.”) The specification extends and generalizes the mechanisms already defined by the DDS Interoperability specification [RTPS]. The specification in- cludes Data Representations that support data type evolution, that is, allow a data type to change in certain well-defined ways without breaking communication. Two Data Repre- sentations are specified in the subsections of section 7.4. These are Extended CDR (7.4.1, 7.4.2, and 7.4.3) and XML (7.4.4).
* Language Binding. The specification defines multiple ways in which applications can access the state of objects defined by the Type System. The submission extends and gen- eralizes the mechanism currently implied by the DDS specification (“Plain Language Binding”) and adds a Dynamic Language Binding that allows application to access data without compile-time knowledge of its type. The specification also defines an API to de- fine and manipulate data types programmatically. Two Language Bindings are specified in the subsections of section 7.5. These are the Plain Language Binding and the Dynamic Language Binding.
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...Remedy IT
Remedy IT revised submission for the Unified Component Model (UCM) for Distributed, Real-Time and Embedded Systems.
Change of address Remedy IT:
Melkrijder 11
3861 SG Nijkerk
tel. +31 (0)88 053 0000
From its first use case that enabled distributed communications for US Navy ships to the autonomous systems of today, the DDS family of standards has enabled new generations of applications to run reliably, rapidly and securely, regardless of distance or scale.
To commemorate the 20th year milestone, the DDS Foundation is creating presentations that highlight the 14 specifications in the DDS standard, along with selected real-world use cases.
This presentation introduces some of the original use-cases and experiments, along with a brief history of the Standards.
A recorded video of the presentation is available at this URL
https://www.brighttalk.com/webcast/12231/602966
Introduction to DDS: Context, Information Model, Security, and Applications.Gerardo Pardo-Castellote
Introduction to the Data-Distribution Service (DDS): Context and Applications.
This 50 minute presentation summarizes the main features of DDS including the information model, the type system, and security as well as how typical applications use DDS.
It was presented at the Canadian Government Information Day in Ottawa on September 2018.
There is also a video of this presentation at https://www.youtube.com/watch?v=6iICap5G7rw.
This Object Management Group (OMG) RFP solicits submissions identifying and defining mechanisms to achieve integration between DDS infrastructures and TSN networks. The goal is to provide all artifacts needed to support the design, deployment and execution of DDS systems over TSN networks.
The DDS-TSN integration specification sought shall realize the following functionality:
● Define mechanisms that provide the information required for TSN-enabled networks to calculate any network schedules needed to deploy a DDS system.
OMG RFP
● Identify those parts of the set of the IEEE TSN standards that are relevant for a DDS-TSN integration and indicate how the DDS aspects are mapped onto, or related to, the associated TSN aspects. Examples include TSN- standardized information models for calculating system-wide schedules and configuring network equipment.
● Identify and specify necessary extensions to the [DDSI-RTPS] and [DDS- SECURITY] specifications, if any, to allow DDS infrastructures to use TSN- enabled networks as their transport while maintaining interoperability between different DDS implementations.
● Identify and specify necessary extensions to the DDS and DDS- XML specification, if any, to allow declaration of TSN-specific properties or quality of service attributes.
A NEW ARCHITECTURE PROPOSAL TO INTEGRATE OPC UA, DDS & TSN.
Suppliers and end users need a complete solution to address the complexity of future industrial automation systems. These systems require:
• Interoperability to allow devices and independent software applications from multiple suppliers to work together seamlessly
• Extensibility to incorporate future large or intelligent systems
• Performance and flexibility to handle challenging deployments and use cases
• Robustness to guarantee continuity of operation despite partial failures
• Integrity and fine-grained security to protect against cyber attacks
• Widespread support for an industry standard
This document proposes a new technical architecture to build this future. The design combines the best of the OPC Unified Architecture (OPC UA), Data Distribution Service (DDS), and Time-Sensitive Networking (TSN) standards. It will connect the factory floor to the enterprise, sensors to cloud, and real-time devices to work cells. This proposal aims to define and standardize the architecture to unify the industry.
Technical overview of the DDS for Extremely Resource-Constrained Environments (DDS-XRCE) specification.
This specification was adopted by the OMG in March 2018.
Demonstrates interoperability of 5 independent products that implement the Data-Distribution Service (DDS) Security Standard
(https://www.omg.org/spec/DDS-SECURITY/).
Tests the following implementations: RTI Connext DDS, Twin Oaks Computing CoreDX DDS, Kongsberg InterComm DDS, ADLink Vortex DDS Cafe, and Object Computing Inc OpenDDS.
This demonstration was performed at the OMG Meeting held in Reston, VA, USA in March 2018
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkGerardo Pardo-Castellote
The benefits of Model-Based Systems Engineering (MBSE) and SysML are well established. As a result, users want to apply MBSE to larger and more complex Industrial IoT applications.
Industrial IoT applications can be very challenging: They are distributed. They deploy components across nodes spanning from small Devices to Edge computers to the Cloud. They often need mathematically-complex software. Moreover, they have strict requirements in terms of performance, robustness, and security.
SysML can model requirements, system components, behavior, interactions, and more. However, SysML does not provide a robust way to connect components running across different computers, especially when the security and quality of service of individual data-flows matter. SysML also does not provide all the tools needed to model and generate the (mathematical) code for complex dynamic systems.
A new “DDS + Simulink” MagicDraw SysML plugin has been developed to addresses these needs. It brings to MagicDraw users the capabilities of Connext DDS from RTI and Simulink from Mathworks:
The OMG Data-Distribution Service (DDS) is a secure and Qos-aware connectivity “databus”. DDS is considered the core connectivity framework for Software Integration and Autonomy by the Industrial Internet Consortium. Connext DDS is the leading implementation of the DDS standard, proven in 1000s of critical deployments.
Simulink is a tool for modeling and implementing the code needed for complex dynamic systems. It is widely deployed in many application domains including Automotive, Robotics, and Control Systems.
The new MagicDraw plugin defines a “DDS profile” for SysML that can model a distributed application connected using the DDS databus. The plugin can also generate the artifacts that configure the DDS databus (Topics, Data Types, Qos, etc.) and the adapters to Simulink and native code (e.g. C++ or Java).
By integrating three best-of class technologies: SysML, DDS and Simulink it is now possible to do MBSE for a wide range of Industrial IoT applications.
One of the most important challenges that system designers and system integrators face when deploying complex Industrial Internet of Things (IoT) systems is the integration of different connectivity solutions and standards. At RTI, we are constantly working to accelerate the Industrial IoT revolution. Over the past few years, we have developed standard connectivity gateways to ensure that DDS systems can easily integrate with other core connectivity frameworks.
This year, we developed a standard OPC UA/DDS Gateway, a bridge between two of the most well-known Industrial IoT connectivity frameworks. We are excited to announce that the gateway was just adopted by the Object Management Group (OMG).
In this webinar, we will dive deeper into the importance of choosing a baseline core connectivity standard for the Industrial IoT and how to ensure all system components are fully integrated. Attendees will also learn:
How the OPC UA/DDS Gateway specification was developed and how it works
How to leverage the Gateway to enable DDS and OPC UA applications to interoperate transparently
About the first standard connectivity gateway released with RTI Web Integration Service in Connext DDS 5.3
Gateways are a critical component of system interoperability and we will keep working to help companies accelerate Industrial IoT adoption.
Demonstrates interoperability of 5 independent products that implement the Data-Distribution Service (DDS) Security Standard
(https://www.omg.org/spec/DDS-SECURITY/).
Tests the following implementations: RTI Connext DDS, Twin Oaks Computing CoreDX DDS, Kongsberg InterComm DDS, ADLink Vortex DDS Cafe, and Object Computing Inc OpenDDS.
Demonstrates interoperability of 3 independent products that implement the Data-Distribution Service (DDS) Security Standard
(https://www.omg.org/spec/DDS-SECURITY/).
Tests the following implementations: RTI Connext DDS, Twin Oaks Computing CoreDX DDS, and Kongsberg InterComm DDS.
This specification defines the Security Model and Service Plugin Interface (SPI) architecture for compliant DDS implementations. The DDS Security Model is enforced by the invocation of these SPIs by the DDS implementation. This specification also defines a set of builtin implementations of these SPIs.
* Authentication Service Plugin. Provides the means to verify the identity of the application and/or user that invokes operations on DDS. Includes facilities to perform mutual authentication between participants and establish a shared secret.
* AccessControl Service Plugin. Provides the means to enforce policy decisions on what DDS related operations an authenticated user can perform. For example, which domains it can join, which Topics it can publish or subscribe to, etc.
* Cryptographic Service Plugin. Implements (or interfaces with libraries that implement) all cryptographic operations including encryption, decryption, hashing, digital signatures, etc. This includes the means to derive keys from a shared secret.
* Logging Service Plugin. Supports auditing of all DDS security-relevant events Data Tagging Service Plugin. Provides a way to add tags to data samples.
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)Gerardo Pardo-Castellote
The next wave of Industrial Internet applications will connect machines and devices together into functioning, intelligent systems with capabilities beyond anything possible today. These systems fundamentally depend on connectivity and information exchange to derive knowledge and make "smart decisions". They require a much higher level of reliability and security than "Consumer" IoT applications. OMG's Data-Distribution Service for Real-Time Systems (DDS) is the premier open middleware standard directly addressing publish-subscribe communications for Industrial IoT applications. It provides a protocol that meets the demanding security, scalability, performance, and Quality of Service requirements of IIoT applications spanning connected machines, enterprise systems, and mobile devices.This presentation will use concrete use cases to introduce DDS and examine why energy, advanced medical, asset-tracking, transportation, and military systems choose to base their designs on DDS.
Presentation at the 2016 IIOT Challenges and Opportunities Workshop.
The next wave of Industrial Internet applications will connect machines and devices together into functioning, intelligent systems with capabilities beyond anything possible today. These systems fundamentally depend on connectivity and information exchange to derive knowledge and make "smart decisions". They require a much higher level of reliability and security than "Consumer" IoT applications. OMG's Data-Distribution Service for Real-Time Systems (DDS) is the premier open middleware standard directly addressing publish-subscribe communications for Industrial IoT applications. It provides a protocol that meets the demanding security, scalability, performance, and Quality of Service requirements of IIoT applications spanning connected machines, enterprise systems, and mobile devices.This presentation will use concrete use cases to introduce DDS and examine why energy, advanced medical, asset-tracking, transportation, and military systems choose to base their designs on DDS.
The Industrial IoT depends on connectivity and information exchange. Much of the business value derives from the ability to have independent systems share information in order to derive knowledge, make "smart decisions", and offer behavior and functionality never before possible.
Many industrial systems were designed with a focus on reliability and safety at a time were implicit trust of all components and communication was the norm. Restricting physical access is currently the only practical method for protecting this existing critical infrastructure. This includes the electrical power grid, process control, transportation, or manufacturing systems. This is changing with increased connectivity to the Internet and personal computers as well as awareness of malicious insider threats. Many industrial systems are being (or want to be) connected to external networks using standard technologies like Ethernet and the Internet Protocol Suite (TCP/UDP/IP). These technologies make systems more functional and efficient, unfortunately they also open the critical infrastructure to cyber attacks.
New IIoT Systems are being designed with security as a key concern. New systems can leverage a solid set of security technologies and building blocks for Authentication, Cryptography, Integrity, etc. However these security technologies must be used correctly and in ways that do not disrupt the performance or access to the legitimate applications/devices, yet limit legitimate access to just the needed information (to minimize the insider threats) and denies access to all others. Adding to this difficulties the new systems need to co-exist and (securely) exchange information with the already-deployed legacy systems which were built without such security elements.
Secure DDS (a recent standard from the OMG) is a "secure connectivity middleware" technology that can be used to address these three needs: (1) Build modern secure IIoT systems, (2) Secure legacy Industrial systems being connected on the Internet, and (3) Securely bridge between new and legacy systems. Secure DDS extends the proven Data-Distribution Service (DDS) and Real-Time Publish-Subscribe Protocol (DDS-RTPS) standards with enterprise-grade authentication, encryption and fine-grained security controls while maintaining the peer-to-peer, robustness and scalability features (including secure multicast) that have made DDS a clear choice for critical infrastructure systems.
This presentation introduces the DDS Security specification and provide describe several use-cases that exemplify how these standards are deployed in real-world applications.
Short summary of the OMG DDS-WEB specification. This recently adopted standard enables thin-client applications (e.g. JavaScript applications in a browser) to access the real-time data on a DDS Domain. Industrial Internet applications built using DDS can now have a REST API.
Overview of the RPC over DDS specification (in-progress as the OMG). Significance to Industrial Internet applications. Significant to people migrating from a legacy CORBA system
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
3. COMPANIES LISTED ABOVE BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING
LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN
CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
The entire risk as to the quality and performance of software developed using this specification is borne by you. This
disclaimer of warranty constitutes an essential part of the license granted to you to use this specification.
RESTRICTED RIGHTS LEGEND
Use, duplication or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraph (c) (1)
(ii) of The Rights in Technical Data and Computer Software Clause at DFARS 252.227-7013 or in subparagraph (c)
(1) and (2) of the Commercial Computer Software - Restricted Rights clauses at 48 C.F.R. 52.227-19 or as specified
in 48 C.F.R. 227-7202-2 of the DoD F.A.R. Supplement and its successors, or as specified in 48 C.F.R. 12.212 of the
Federal Acquisition Regulations and its successors, as applicable. The specification copyright owners are as indicated
above and may be contacted through the Object Management Group, 140 Kendrick Street, Needham, MA 02494,
U.S.A.
TRADEMARKS
CORBA®
, CORBA logos®
, FIBO®
, Financial Industry Business Ontology®
, FINANCIAL INSTRUMENT GLOBAL
IDENTIFIER®
, IIOP®
, IMM®
, Model Driven Architecture®
, MDA®
, Object Management Group®
, OMG®
, OMG
Logo®
, SoaML®
, SOAML®
, SysML®
, UAF®
, Unified Modeling Language®
, UML®
, UML Cube Logo®
, VSIPL®
, and
XMI®
are registered trademarks of the Object Management Group, Inc.
For a complete list of trademarks, see: http://www.omg.org/legal/tm_list.htm. All other products or company names
mentioned are used for identification purposes only, and may be trademarks of their respective owners.
COMPLIANCE
The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its
designees) is and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer
software to use certification marks, trademarks or other special designations to indicate compliance with these
materials.
Software developed under the terms of this license may claim compliance or conformance with this specification if
and only if the software compliance is of a nature fully matching the applicable compliance points as stated in the
specification. Software developed only partially matching the applicable compliance points may claim only that the
software was based on this specification, but may not claim compliance or conformance with this specification. In the
event that testing suites are implemented or approved by Object Management Group, Inc., software developed using
this specification may claim compliance or conformance with the specification only if the software satisfactorily
completes the testing suites.
OPC UA/DDS Gateway 1.0 iii
4. OMG’s Issue Reporting Procedure
All OMG specifications are subject to continuous review and improvement. As part of this process we encourage
readers to report any ambiguities, inconsistencies, or inaccuracies they may find by completing the Issue Reporting
Form listed on the main web page http://www.omg.org, under Documents, Report a Bug/Issue
(http://issues.omg.org/issues/create-new-issue).
iv OPC UA/DDS Gateway 1.0
5. Table of Contents
0 Response Details...............................................................................................................1
0.1 OMG Response Details..........................................................................................................1
0.2 Copyright Waiver....................................................................................................................1
0.3 Contacts..................................................................................................................................1
0.4 Problem Statement.................................................................................................................1
0.5 Overview of this Specification.................................................................................................2
0.5.1 OPC UA to DDS Bridge.....................................................................................................................2
0.5.2 DDS to OPC UA Bridge.....................................................................................................................3
0.5.3 Configuration.....................................................................................................................................3
0.6 Statement of Proof of Concept...............................................................................................3
0.7 Mapping to RFP Requirements...............................................................................................3
0.8 Responses to RFP Issues to be Discussed..........................................................................10
1 Scope...............................................................................................................................13
2 Conformance...................................................................................................................13
3 Normative References.....................................................................................................14
4 Terms and Definitions......................................................................................................15
5 Symbols...........................................................................................................................16
6 Additional Information......................................................................................................17
6.1 Acknowledgements...............................................................................................................17
7 OPC UA/DDS Gateway Overview (non-normative)........................................................19
7.1 OPC Unified Architecture (OPC UA).....................................................................................19
7.1.1 OPC UA AddressSpace..................................................................................................................19
7.1.2 OPC UA Services............................................................................................................................20
7.2 Data Distribution Service (DDS)............................................................................................21
7.2.1 DDS Global Data Space..................................................................................................................21
7.2.2 Remote Procedure Call over DDS (DDS-RPC)...............................................................................22
7.3 Bridging OPC UA and DDS..................................................................................................22
8 OPC UA to DDS Bridge...................................................................................................25
8.1 Overview (non-normative).....................................................................................................25
8.2 OPC UA Type System Mapping...........................................................................................25
8.2.1 Built-in Primitive Types....................................................................................................................26
8.2.2 Built-in Complex Types....................................................................................................................27
8.3 OPC UA Service Sets Mapping............................................................................................30
8.3.1 Standard DataTypes and NodeClasses Mapping............................................................................30
8.3.2 View Service Set.............................................................................................................................37
8.3.3 Query Service Set...........................................................................................................................38
8.3.4 Attribute Service Set........................................................................................................................39
8.3.5 Method Service Set.........................................................................................................................43
8.3.6 Implementation Considerations.......................................................................................................44
8.4 OPC UA Subscription Model Mapping..................................................................................45
8.4.1 Overview (non-normative)...............................................................................................................45
8.4.2 OPC UA Subscription Mapping.......................................................................................................49
8.4.3 OPC UA Subscription Mapping Behavior........................................................................................58
8.4.4 Implementation Considerations.......................................................................................................63
9 DDS to OPC UA Bridge...................................................................................................65
OPC UA/DDS Gateway 1.0 v
6. 9.1 Overview (non-normative).....................................................................................................65
9.2 DDS Type System Mapping..................................................................................................65
9.2.1 Primitive Types................................................................................................................................66
9.2.2 String Types....................................................................................................................................69
9.2.3 Enumerated Types..........................................................................................................................72
9.2.4 Aggregated Types...........................................................................................................................79
9.2.5 Collection Types..............................................................................................................................89
9.2.6 Nested Types................................................................................................................................108
9.2.7 Alias Types....................................................................................................................................108
9.2.8 Keyed Types..................................................................................................................................109
9.3 DDS Global Data Space Mapping......................................................................................109
9.3.1 Overview (non-normative).............................................................................................................109
9.3.2 Representing DDS Domains in OPC UA.......................................................................................110
9.3.3 Representing DDS Topics in OPC UA...........................................................................................113
9.3.4 Representing DDS Instances and Samples in OPC UA................................................................117
9.3.5 Implementation Considerations.....................................................................................................122
10 OPC UA/DDS Gateway Configuration........................................................................125
10.1 Overview.........................................................................................................................125
10.2 Configuration...................................................................................................................125
10.3 Examples (non-normative)..............................................................................................129
10.3.1 OPC UA to DDS Bridge Example..................................................................................................129
10.3.2 DDS to OPC UA Bridge Example..................................................................................................136
vi OPC UA/DDS Gateway 1.0
7. Table of Figures
Figure 0.1: OPC UA/DDS Gateway Concept...................................................................................................2
Figure 7.1: OPC UA Metamodel....................................................................................................................20
Figure 7.2: DCPS Conceptual Model.............................................................................................................22
Figure 7.3: OPC UA/DDS Gateway Concept.................................................................................................23
Figure 8.1: OPC UA to DDS Bridge Overview...............................................................................................25
Figure 8.2: OPC UA Subscription Mapping Overview...................................................................................50
Figure 8.3: OPC UA Input Definition..............................................................................................................51
Figure 8.4: DDS Output Definition.................................................................................................................54
Figure 8.5: Input/Output Mapping Definition..................................................................................................56
Figure 9.1: DDS to OPC UA Bridge Overview...............................................................................................65
Figure 9.2: Primitive Types Mapping to OPC UA..........................................................................................66
Figure 9.3: Example of Primitive Type Mapping to OPC UA.........................................................................68
Figure 9.4: String Types Mapping to OPC UA...............................................................................................70
Figure 9.5: Example of String Type Mapping to OPC UA..............................................................................71
Figure 9.6: Enumeration Types Mapping to OPC UA....................................................................................72
Figure 9.7: Example of Enumeration Type Mapping to OPC UA...................................................................74
Figure 9.8: Bitmask Types Mapping to OPC UA...........................................................................................76
Figure 9.9: Example of Bitmask Type Mapping to OPC UA..........................................................................78
Figure 9.10: Structure Types Mapping to OPC UA........................................................................................81
Figure 9.11: Example of Structure Type Mapping to OPC UA......................................................................83
Figure 9.12: Union Types Mapping to OPC UA.............................................................................................86
Figure 9.13: Example of Union Type Mapping to OPC UA............................................................................88
Figure 9.14: Array of Primitive or String Types Mapping to OPC UA............................................................90
Figure 9.15: Array of Enumerations Mapping to OPC UA.............................................................................91
Figure 9.16: Array of Bitmasks Mapping to OPC UA.....................................................................................92
Figure 9.17: Array of Structures Mapping to OPC UA...................................................................................93
Figure 9.18: Array of Unions Mapping to OPC UA........................................................................................95
Figure 9.19: Array of Collection Types Mapping to OPC UA.........................................................................96
Figure 9.20: Sequence of Primitive or String Types Mapping to OPC UA.....................................................98
Figure 9.21: Sequence of Enumerations Mapping to OPC UA......................................................................99
Figure 9.22: Sequence of Bitmasks Variable Definition...............................................................................100
Figure 9.23: Sequence of Structures Mapping to OPC UA..........................................................................101
Figure 9.24: Sequence of Unions Mapping to OPC UA...............................................................................102
Figure 9.25: Sequence of Collection Types Mapping to OPC UA................................................................103
Figure 9.26: Map Types Mapping to OPC UA.............................................................................................105
Figure 9.27: Example of Map Type Mapping to OPC UA............................................................................107
Figure 9.28: DDS Domain Mapping to OPC UA..........................................................................................111
Figure 9.29: DDS Topic Mapping to OPC UA..............................................................................................113
Figure 9.30: DDS Instance Mapping to OPC UA.........................................................................................118
OPC UA/DDS Gateway 1.0 vii
8. Table of Tables
Table 0.1: Mandatory RFP Requirements........................................................................................................3
Table 0.2: Non-Mandatory RFP Requirements.................................................................................................7
Table 0.3: RFP Issues to be Discussed..........................................................................................................10
Table 2.1: Conformance Points......................................................................................................................13
Table 5.1: Acronyms.......................................................................................................................................16
Table 8.1: Mapping of OPC UA Primitive Types to DDS................................................................................26
Table 8.2: Mapping of OPC UA Non-Primitive Built-in Types to DDS............................................................27
Table 8.3: Mapping of OPC UA Standard DataTypes and NodeClasses to DDS...........................................30
Table 8.4: Mapping of Types Specific to the View Service Set.......................................................................37
Table 8.5: Mapping of Types Specific to the Query Service Set....................................................................38
Table 8.6: Mapping of Types Specific to the Attribute Service Set.................................................................39
Table 8.7: Mapping of Types Specific to the Method Service Set..................................................................44
Table 8.8: Subscription Mapping Configuration..............................................................................................50
Table 8.9: OPC UA Input Definition................................................................................................................51
Table 8.10: OPC UA Connection Definition....................................................................................................52
Table 8.11: OPC UA Subscription Protocol Definition....................................................................................52
Table 8.12: OPC UA MonitoredItem Definition...............................................................................................53
Table 8.13: DDS Output Definition.................................................................................................................54
Table 8.14: DDS DomainParticipant Definition...............................................................................................55
Table 8.15: Input/Output Mapping Definition..................................................................................................57
Table 8.16: Simplified Mapping of OPC UA Variant Type to DDS Types.......................................................60
Table 9.1: Primitive Type Variable Definition..................................................................................................66
Table 9.2: OPC UA Built-in Types Equivalent to DDS Primitive Types..........................................................67
Table 9.3: Example of Int32 Variable Definition..............................................................................................68
Table 9.4: String8 (String) Variable Definition.................................................................................................70
Table 9.5: String16 (Wide String) Variable Definition......................................................................................70
Table 9.6: Example of String Variable Definition............................................................................................71
Table 9.7: Enumeration DataType Definition..................................................................................................73
Table 9.8: Enumeration Variable Definition.....................................................................................................73
Table 9.9: Example of Enumeration DataType Definition...............................................................................74
Table 9.10: Example of Enumeration Variable Definition................................................................................75
Table 9.11: Bitmask DataType Definition........................................................................................................76
Table 9.12: Bitmask Variable Definition..........................................................................................................77
Table 9.13: Example of Bitmask DataType Definition.....................................................................................78
Table 9.14: Example of Bitmask Variable Definition.......................................................................................79
Table 9.15: Structure DataType Definition......................................................................................................81
Table 9.16: Structure VariableType Definition................................................................................................82
Table 9.17: Example of Structure DataType Definition...................................................................................83
Table 9.18: Example of Structure VariableType Definition.............................................................................84
Table 9.19: Example of Structure Variable Definition.....................................................................................84
Table 9.20: Union Data Type Definition..........................................................................................................86
Table 9.21: Union Type Variable Definition.....................................................................................................87
Table 9.22: Example of Union DataType Definition........................................................................................88
Table 9.23: Example of Union Variable Definition...........................................................................................88
Table 9.24: Array of Primitive or String Type Variable Definition....................................................................90
Table 9.25: Array of Enumerations Variable Definition...................................................................................91
Table 9.26: Array of Bitmasks Variable Definition...........................................................................................92
Table 9.27: Array of Structures Variable Definition.........................................................................................94
Table 9.28: Array of Unions Variable Definition..............................................................................................95
Table 9.29: Array of Collection Types Object Definition.................................................................................96
Table 9.30: Collection Variable or Object Definition – Arrays of Collections...................................................96
Table 9.31: Example Array Variable Definition...............................................................................................97
Table 9.32: Sequence of Primitive or String Types Variable Definition...........................................................98
Table 9.33: Sequence of Enumerations Variable Definition............................................................................99
viii OPC UA/DDS Gateway 1.0
9. Table 9.34: Sequence of Bitmasks Variable Definition.................................................................................100
Table 9.35: Sequence of Structures Variable Definition...............................................................................101
Table 9.36: Sequence of Unions Variable Definition.....................................................................................102
Table 9.37: Sequence of Collection Types Object Definition........................................................................103
Table 9.38: Collection Variable or Object Definition – Sequences of Collections.........................................104
Table 9.39: Example of Sequence Variable Definition..................................................................................104
Table 9.40: Map Object Definition.................................................................................................................106
Table 9.41: MapEntry Variable or Object Definition......................................................................................106
Table 9.42: Example of MapEntry Variable Definition – First MapEntry.......................................................107
Table 9.43: Example of MapEntry Variable Definition – Second MapEntry..................................................107
Table 9.44: Example of Map Object Definition..............................................................................................108
Table 9.45: Domain Object Definition...........................................................................................................111
Table 9.46: DomainType ObjectType Definition...........................................................................................112
Table 9.47: Topic Object Definition...............................................................................................................114
Table 9.48: RegisterInstance Method Definition...........................................................................................115
Table 9.49: UnregisterInstance Method Definition........................................................................................116
Table 9.50: DisposeInstance Method Definition............................................................................................116
Table 9.51: TopicType ObjectType Definition...............................................................................................117
Table 9.52: PropertyType Variables Representing Members of DDS::SampleInfo.......................................119
Table 9.53: Instance Variable or Object Node Definition..............................................................................119
Table 10.1: XML Configuration Elements Overview.....................................................................................125
OPC UA/DDS Gateway 1.0 ix
10. Preface
OMG
Founded in 1989, the Object Management Group, Inc. (OMG) is an open membership, not-for-profit computer
industry standards consortium that produces and maintains computer industry specifications for interoperable,
portable, and reusable enterprise applications in distributed, heterogeneous environments. Membership includes
Information Technology vendors, end users, government agencies, and academia.
OMG member companies write, adopt, and maintain its specifications following a mature, open process. OMG’s
specifications implement the Model Driven Architecture®
(MDA®
), maximizing ROI through a full-lifecycle
approach to enterprise integration that covers multiple operating systems, programming languages, middleware and
networking infrastructures, and software development environments. OMG’s specifications include: UML®
(Unified
Modeling Language®
); CORBA®
(Common Object Request Broker Architecture); CWM™
(Common Warehouse
Metamodel™
); and industry-specific standards for dozens of vertical markets.
More information on the OMG is available at http://www.omg.org/.
OMG Specifications
As noted, OMG specifications address middleware, modeling and vertical domain frameworks. All OMG
Specifications are available from the OMG website at:
http://www.omg.org/spec
Specifications are organized by the following categories:
Business Modeling Specifications
Middleware Specifications
• CORBA/IIOP
• Data Distribution Services
• Specialized CORBA
IDL/Language Mapping Specifications
Modeling and Metadata Specifications
• UML, MOF, CWM, XMI
• UML Profiles
Modernization Specifications
Platform Independent Model (PIM), Platform Specific Model (PSM), Interface
Specifications
• CORBAServices
• CORBAFacilities
OMG Domain Specifications
x OPC UA/DDS Gateway 1.0
11. CORBA Embedded Intelligence Specifications
CORBA Security Specifications
Signal and Image Processing Specifications
All of OMG’s formal specifications may be downloaded without charge from our website. (Products implementing
OMG specifications are available from individual suppliers.) Copies of specifications, available in PostScript and
PDF format, may be obtained from the Specifications Catalog cited above or by contacting the Object Management
Group, Inc. at:
OMG Headquarters
109 Highland Avenue
Needham, MA 02494
USA
Tel: +1-781-444-0404
Fax: +1-781-444-0320
Email: pubs@omg.org
Certain OMG specifications are also available as ISO standards. Please consult http://www.iso.org
Typographical Conventions
The type styles shown below are used in this document to distinguish programming statements from ordinary English.
However, these conventions are not used in tables or section headings where no distinction is necessary.
Times/Times New Roman/Liberation Serif – 10 pt.: Standard body text
Helvetica/Arial – 10 pt. Bold: OMG Interface Definition Language (OMG IDL) and syntax elements.
Courier – 10 pt. Bold: Programming language elements.
Helvetica/Arial – 10 pt: Exceptions
NOTE: Terms that appear in italics are defined in the glossary. Italic text also represents the name of a document,
specification, or other publication.
Issues
The reader is encouraged to report any technical or editing issues/problems with this specification via the report form
at:
http://issues.omg.org/issues/create-new-issue
OPC UA/DDS Gateway 1.0 xi
13. 0 Response Details
0.1 OMG Response Details
This specification is submitted in response to the OPC-UA/DDS Gateway RFP issued in September 2015 with OMG
document number mars/2015-09-02.
0.2 Copyright Waiver
“Each of the entities listed above: (i) grants to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-
free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute
copies of the modified version, and (ii) grants to each member of the OMG a nonexclusive, royalty-free, paid up,
worldwide license to make up to fifty (50) copies of this document for internal review purposes only and not for
distribution, and (iii) has agreed that no person shall be deemed to have infringed the copyright in the included
material of any such copyright holder by reason of having used any OMG specification that may be based hereon or
having conformed any computer software to such specification.”
0.3 Contacts
• Real-Time Innovations, Inc. Fernando Garcia-Aranda fgarcia AT rti.com
• PrismTech Ltd Angelo Corsaro angelo.corsaro AT prismtech.com
• Twin Oaks Computing, Inc. Clark Tucker ctucker AT twinoakscomputing.com
• eProsima Inc. Jaime Martin jaime.martin AT eprosima.com
0.4 Problem Statement
Data Distribution Service (DDS) is a family of standards from the Object Management Group (OMG) that provide
connectivity, interoperability, and portability for Industrial Internet, cyber-physical, and mission-critical applications.
The DDS connectivity standards cover Publish-Subscribe (DDS), Service Invocation (DDS-RPC), Interoperability
(DDS-RTPS), Information Modeling (DDS-XTYPES), Security (DDS-SECURITY), as well as programing APIs for
C, C++, Java and other languages.
The OPC Unified Architecture (OPC UA) is an information exchange standard for Industrial Automation and related
systems created by the OPC Foundation. The OPC UA standard provides an Addressing and Information Model for
Data Access, Alarms, and Service invocation layered over multiple transport-level protocols such as Binary TCP and
Web-Services.
DDS and OPC UA exhibit significant deployment similarities:
• Both enable independently developed applications to interoperate even when those applications come from
different vendors, use different programming languages, or run on different platforms and operating systems.
• Both have significant traction within Industrial Automation systems.
• Both define standard protocols built on top of the TCP/ UDP/IP Internet stacks.
The two technologies may coexist within the same application domains; however, while there are solutions that
bridge between DDS and OPC UA, these are based on custom mappings and cannot be relied to work across vendors
and products.
This specification overcomes this situation by defining a standard, vendor-independent, configurable gateway that
enables interoperability and information exchange between systems that use DDS and systems that use OPC UA.
OPC UA/DDS Gateway 1.0 1
14. An important use-case that would greatly benefit from a standards-based gateway is the use of DDS to integrate OPC
UA applications and subsystems. In this scenario, individual applications and components may expose their data and
services via OPC UA and use DDS for integration in larger systems for monitoring and control. These systems would
combine the benefits from OPC UA’s Industrial Automation information models and DDS’ scalability, performance,
QoS, and Global Data Space abstractions.
0.5 Overview of this Specification
This specification defines an OPC UA/DDS Gateway capable of bridging between DDS applications and OPC UA
applications. In particular, to enable bi-directional communication, this proposal defines two different bridges: an
OPC UA to DDS Bridge and a DDS to OPC UA Bridge. Moreover, to facilitate the integration of the Gateway in
existing systems while ensuring vendor-independence, this proposal defines a standards-based XML syntax to
configure the OPC UA/DDS Gateway.
0.5.1 OPC UA to DDS Bridge
Provides DDS applications with the means to browse, read, write, and subscribe to information in the AddressSpace
of OPC UA Servers using native constructs, such as DDS Services and DDS Topics. To accomplish that, the OPC UA
to DDS Bridge defines:
• A mapping of the OPC UA Type System to the DDS type system
• A mapping of the most salient OPC UA Service Sets to DDS Services.
2 OPC UA/DDS Gateway 1.0
DDSOPCUA
Server &
Client
RTPS
DDS-OPCUA Gateway
DDS
RTPS
<<conceptually>>
Global Data Space
App
TCP / WS
OPC-UA
Client
TCP / WS
OPC-UA
Server
TCP / WS
DDS
RTPS
App
OPC-UA Protocols
DDS Protocols
App
App
Figure 0.1: OPC UA/DDS Gateway Concept
15. • A mapping of the OPC UA Subscription Model to DDS Topics.
0.5.2 DDS to OPC UA Bridge
Provides OPC UA Clients with the means to participate as first-class citizens in the DDS Global Data Space using
OPC UA’s standard Service Sets. To accomplish that, the DDS to OPC UA Bridge defines:
• A mapping of the DDS Type System to the OPC UA type system.
• An OPC UA Information Model to represent of the DDS Global Data Space in the AddressSpace of an OPC
UA Server.
0.5.3 Configuration
Defines an XML syntax to configure the OPC UA/DDS Gateway, which is built upon the schema files specified in
[DDS-XML].
0.6 Statement of Proof of Concept
Submitters of this proposal have developed a proof of concept implementation of the Gateway to validate the OPC
UA to DDS Bridge mappings specified in chapter 8, and the configuration capabilities introduced in chapter 10. This
proof of concept has been successfully tested with different OPC UA Server implementations, and has been validated
by OPC UA users interested in the RFP.
0.7 Mapping to RFP Requirements
The specification resolves the mandatory requirements listed in Table 0.1.
Table 0.1: Mandatory RFP Requirements
Requirement Description References Remarks
6.5.1 Basic Operation
6.5.1.1 The specified OPC-UA/DDS gateway
shall conform to the Embedded UA
Server Profile as defined in [OPC-UA
7].
9.3.5 Satisfied
Sub clause 9.3.5 states that
implementations of this specification
shall embed an OPC UA Server
compliant with the Embedded UA Server
Profile defined in sub clause 6.5.54 of
[OPCUA-07]
6.5.1.2 The specified OPC-UADDS gateway
shall be discoverable by OPC-UA
applications via the Local and Global
Discovery Servers defined in [OPC-
UA12].
9.3.5 Satisfied
Sub clause 9.3.5 states that the OPC UA
Server embedded into the OPC UA/DDS
Gateway shall be capable of being
discovered by the Local and Global
Discovery Servers defined in [OPCUA-
12].
6.5.1.3 The specified OPC-UA/DDS gateway
shall connect to OPC-UA servers using
Discovery Service Set, SecureChannel
Service Set, and Session Service Set.
8.3.6.1, 8.4.4.1 Satisfied
Sub clause 8.3.6.1 states that
implementations of the OPC UA/DDS
Gateway compliant with the OPC UA
OPC UA/DDS Gateway 1.0 3
16. Requirement Description References Remarks
Service Sets Mapping specified in 8.3
shall use OPC UA Clients supporting the
Discovery, SecureChannel, and Session
Service Sets. Similarly, sub clause 8.4.4.1
states that implementations of the OPC
UA Subscription Mapping shall also use
OPC UA Clients supporting those
Service Sets.
6.5.1.41
The specified OPC-UA/DDS gateway
shall conform to DDS 1.4 minimum
profile [DDS] and to DDSI-RTPS
version 2.2, or future revisions thereof
[DDSI-RTPS].
8.3.6.2,
8.4.4.2,
9.3.5.2
Satisfied
Sub clauses 8.3.6.2, 8.4.4.2, and 9.3.5.2
state that implementations of this OPC
UA/DDS Gateway shall be complaint
with the Minimum Profile of [DDS] and
[DDSI-RTPS].
6.5.2 Type System Mapping
6.5.2.1 Proposals shall define an unambiguous mapping between the OPC-UA type system/object model
and the DDS-XTYPES type System.
6.5.2.1.a The mapping shall cover all OPC-UA
data types (Section 5.8 of OPC-UA 3])
and variable types (Section 5.6 of OPC-
UA 3]).
8.2 Satisfied
Clause 8.2 provides a mapping for all the
OPC UA standard data types defined in
clause 5.8 of [OPCUA-03].
6.5.2.1.b The mapping does not need to cover the
full DDS-XTYPES type-system; just the
subset of types needed to map OPC-UA
data types.
9.2 Satisfied
Clause 9.2 goes beyond the mapping
requirements specified in 6.5.2.1.b and
provides a full mapping of the DDS-
XTYPES type system. According to the
analysis, all DDS types can be
represented in the AddressSpace of an
OPC UA Server.
6.5.2.2 Proposals shall define standard DDS
QoS settings for OPC-UA data, alarm,
conditions, and service operations.
102
Satisfied
The configuration syntax specified in
chapter 10, and the normative XSD files
it references, allows users to specify
which standard QoS Policies shall be
used when mapping OPC UA constructs
to DDS constructs. Indeed, the proposed
syntax is built upon the standard syntax
to describe QoS Policies specified in
[DDS-XML]. The proposed mappings are
therefore fully configurable—which
should help users tune the behavior of the
Gateway to meet their use cases.
6.5.3 Configuration
1
The RFP Document (mars/2015-09-02) labels this as the 5th
requirement of 6.5.1 because of a typographical error (there are
actually four requirements under 6.5.1). In this table we label 4th
requirement as 6.5.1.4.
2
Chapter 10 and the normative XSD files it references.
4 OPC UA/DDS Gateway 1.0
17. Requirement Description References Remarks
6.5.3.1 The specified OPC-UA/DDS gateway
shall provide a way to configure or
specify the DDS Domain, DDS Topics,
and DDS Topic-Instances that are
exposed from DDS to OPC-UA clients.
102
Satisfied
The configuration syntax specified in
chapter 10, and the normative XSD files
it references, allows users to configure
which DDS Domains shall be exposed by
the OPC UA Server embedded into the
Gateway. Indeed, it requires those
Domains to be explicitly configured
using the <domain> tag.
Moreover, the specified XML syntax
provides mechanisms to configure which
Topics shall be exposed via the <topic>
tag. Alternatively, it provides a
<topic_group> tag that defines syntax
to expose Topics based on their topic-
name and/or type-name using regular
expressions.
Finally, both <topic> and
<topic_group> tags allow specifying
which instances shall be exposed by the
Gateway. It does so by providing a syntax
to configure content filters—which can
be used to list the key fields of the
associated type and the values identifying
the Topic Instances to be exposed.
6.5.4 Mapping between OPC-UA Servers and DDS
Proposals shall define the means (implemented by the OPC-UA/DDS gateway) by which:
6.5.4.1 DDS applications can access the OPC-
UA Server Attribute Service Set
functionality as defined in Section 5.10
of [OPC-UA 4].
8.3.4 Satisfied
Sub clause 8.3.4 provides a mapping of
the OPC UA Attribute Service Set to
DDS by defining an equivalent DDS
Service. This mapping uses the constructs
and syntax specified in [DDS-RPC].
6.5.4.2 DDS applications can access the OPC-
UA Server MonitoredItem Service Set
functionality as defined in Section 5.12
of [OPC-UA 4].
8.4 Satisfied
Clause 8.4 provides a mapping of the
OPC UA MonitoredItem Service Set that
is compatible with the DDS subscription
model. Chapter 10, and the normative
XSD files it refers to, defines a syntax to
configure which items shall be monitored
(i.e., DataItems or EventItems).
6.5.4.3 DDS applications can access the OPC-
UA Server Subscription Service Set
functionality as defined in Section 5.13
of [OPC-UA 4].
8.4, 102
Satisfied
Clause 8.4 provides a mapping of the
OPC UA Subscription Service Set that is
compatible with the DDS subscription
model. Chapter 10, and the normative
OPC UA/DDS Gateway 1.0 5
18. Requirement Description References Remarks
XSD files it refers to, defines a syntax to
configure the OPC UA Subscriptions and
the items to be monitored.
6.5.5 Mapping between OPC-UA Clients and DDS.
Proposals shall define the means (implemented by the OPC-UA/DDS gateway) by which:
6.5.5.1 OPC-UA applications can discover DDS
Topics.
9.3.3, 9.3.5,
102
Satisfied
The requirements on the underlying OPC
UA Server specified in 9.3.5 allow OPC
UA Clients to find Topics in the
AddressSpace of the Server using the
View Service Set. Sub clause 9.3.3
describes how the Gateway shall populate
the AddressSpace of the underlying
Server with Nodes representing DDS
Topics. Additionally, clause 10
introduces the <topic_group> concept,
which enables the Gateway to
automatically add new Topics to the
AddressSpace of the Server as they are
discovered by the underlying DDS
entities using DDS Discovery and a
configurable filter criteria.
6.5.5.2 OPC-UA application can access the DDS global data space
6.5.5.2.a The mapping shall provide a way for an
OPC-UA client using the Attribute Read
Client Facet [OPC-UA 7, Section
6.5.56] to read the current value of the
mapped DDS Topic Instances.
9.3.5, 9.3.4.2,
9.3.4.3
Satisfied
The requirements on the underlying OPC
UA Server specified in 9.3.5 and the
behavior specified in 9.3.4.2 and 9.3.4.3
allow OPC UA Clients to read DDS
Topics Instances.
6.5.5.2.b The mapping shall provide a way for an
OPC-UA client using the Historical
Access Client Facet [OPC-UA 7,
Section 6.5.78] to read the history value
of the mapped DDS Topic Instances.
9.3.5, 9.3.4.2,
9.3.4.4
Satisfied
The requirements on the underlying OPC
UA Server specified in 9.3.5 and the
behavior specified in 9.3.4.2 and 9.3.4.4
allow OPC UA Clients to perform
historical reads of DDS Topic Instances.
6.5.5.2.c The mapping shall provide a way for an
OPC-UA client using the Attribute
Write Client Facet [OPC-UA 7, Section
6.5.57] to write operation to publish
data on the mapped DDS Topics.
9.3.5, 9.3.4.5,
9.3.4.6
Satisfied
The requirements on the underlying OPC
UA Server specified in 9.3.5 and the
behavior specified in 9.3.4.5 allow OPC
UA Clients to publish data on the mapped
DDS Topic Instances. The behavior
specified in 9.3.4.6 provides the means to
register new instances, which can be also
written by Client applications.
6.5.5.2.d The mapping shall provide a way for an
OPC-UA client using the DataChange
Subscriber Client Facet or the Event
Subscriber Client Facet to subscribe to
9.3.5, 9.3.4.2,
9.3.4.3
Satisfied
The requirements on the underlying OPC
UA Server specified in 9.3.5 and the
6 OPC UA/DDS Gateway 1.0
19. Requirement Description References Remarks
the mapped DDS topics and receive
data updates on the Topics.
behavior specified in 9.3.4.2 and 9.3.4.3
allow OPC UA Clients to configure a
Subscription, attach a set of
MonitoredItems, and receive updates on
DataChanges triggered by updates on
DDS Topics.
This specification resolves the non-mandatory requirements listed in Table 0.2.
Table 0.2: Non-Mandatory RFP Requirements
Requirement Description References Remarks
6.6.1 Type system mapping
6.6.1.1 The type mapping between OPC-UA
and DDS may be defined such that DDS
applications can dynamically discover
the data-types associated with the OPC-
UA variables that will be accessible via
DDS.
8.2, 8.4.3.3 Satisfied
Sub clause 5.1.6 of [OPCUA-06] states
that Variants are used to “store any value
or parameter with a data type of
BaseDataType or one of its subtypes.”
NotificationMessages sent to OPC UA
Clients encode the value of the
DataChange or Event updates in
Variants as well.
To make it possible for DDS applications
to discover the underlying data type, sub
clause 8.4.3.3 provides a simplified
mapping of Variants to DDS types. This
mapping follows a two-step process: (1)
it inspects the Variant to find out whether
it represents a scalar, an array, or a
multidimensional array; (2) it maps the
Variant’s underlying data type to a DDS
type following in part the mappings
specified in clause 8.2.
6.6.1.2 Proposals may define a mapping
between OPC-UA objects and methods
(Section 5.7 of [OPC-UA 3]) and DDS-
RPC Services [DDS-RPC].
8.3, 8.3.4,
8.3.5
Partially Satisfied
Sub clause 8.3.5 defines a mapping of the
Method Service Set that allows DDS
applications to invoke OPC UA Methods
using an equivalent DDS Service
explicitly defined for that purpose.
Moreover, sub clause 8.3.4 provides
equivalent DDS Services to Read and
Write attributes of an OPC UA Object,
and 8.3 defines an equivalent DDS
Service to browse the AddressSpace of an
OPC UA Server to find OPC UA Objects
and Methods.
However, this proposal does not define a
mechanism to represent DDS Services as
OPC UA Objects associated with OPC
UA Methods in the AddresSpace of the
OPC UA Server specified in clause 9.3.
OPC UA/DDS Gateway 1.0 7
20. Requirement Description References Remarks
With the current mappings, OPC UA
Clients will discover the Request/Reply
Topics associated with DDS Services
instead. In this way, OPC UA Clients can
use DDS Services following the
Request/Reply Language binding Style
specified in sub clause 7.2.2.2 of [DDS-
RPC] (as opposed to using the Function-
call style specified in 7.2.2.1 of the same
specification—which would be
equivalent to the mapping to Objects and
Methods previously described).
6.6.2 Gateway Configuration and Operation
6.6.2.1 The specified OPC-UA/DDS gateway
may conform to the Standard UA Server
Profile as defined in [OPC-UA 7].
9.3.5 Satisfied
The requirements for the OPC UA Server
embedded into the Gateway set forth by
sub clause 9.3.5 of this proposal specify
that “the Server shall conform to the
Embedded UA Server Profile.”
The Standard UA Server Profile is built
upon the facets provided by the
Embedded UA Server Profile, adding a
number of extra facets that provide more
advanced features. Therefore, a Server
compliant Standard UA Server Profile
also satisfices all the requirements
specified in 9.3.5.
It is important to note that to enable
access to historical data, the underlying
Server shall also comply with the
Historical Raw Data Server Facet defined
in sub clause 6.5.36 of [OPCUA-07],
which is not part of the Standard UA
Server Profile or the Embedded UA
Server Profile.
6.6.2.2 Proposals may define a way to
configure the DDS Topics mapped by
the OPC-UA/DDS based on the Topic
name.
102
Satisfied
Chapter 10 introduces <topic_group>,
a configuration tag that enables users of
the OPC UA/DDS Gateway to configure
which Topics are exposed to OPC UA
Clients according to a filter criteria. In
this case, its child tag
<allow_topic_name_filter>
provides the ability to expose Topics
whose name matches a regular
expression (see Table 10.1).
6.6.2.3 Proposals may define a way to
configure the DDS Types mapped by
the OPC-UA/DDS based on the Type
name.
102
Satisfied
Chapter 10 introduces <topic_group>,
a configuration tag that enables users of
8 OPC UA/DDS Gateway 1.0
21. Requirement Description References Remarks
the OPC UA/DDS Gateway to configure
which Topics are exposed to OPC UA
Clients according to a filter criteria. In
this case, its child tag
<allow_type_name_filter> provides
the ability to expose Topics whose type
name matches a regular expression (see
Table 10.1).
6.6.2.4 Proposals may define a way to
configure the DDS QoS of the DDS
entities created.
102
Satisfied
The normative schema files referenced
by Chapter 10 (dds-
opcua_definitions.xsd and dds-
opcua_definitions_nonamespace.xsd)
provide syntax to configure the QoS
Policies of the DDS entities created by
the Gateway.
6.6.3 Mapping between OPC-UA Servers and DDS
6.6.3.1 Proposals may define a mapping to be
implemented by the OPC-UA/DDS
gateway allowing DDS applications to
access OPC-UA Discovery functionality
as defined in [OPC-UA 12].
Unsatisfied
This proposal does not define a mapping
of the OPC UA Discovery Service Set to
an equivalent DDS Service. Instead, the
proposal relies on the underlying
capabilities of the OPC UA Server and
shields DDS applications from those
features.
6.6.3.2 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing DDS applications to
access OPC-UA NodeManagement
Service Set functionality as defined in
Section 5.7 of [OPC-UA 4].
Unsatisfied
This proposal does not define a mapping
of the OPC UA Node Management
Service Set to an equivalent DDS
Service. This implies that DDS
applications cannot directly create or
remove Nodes in the AddressSpace of a
remote OPC UA Server.
6.6.3.3 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing DDS applications to
access OPC-UA View Service Set
functionality as defined in Section 5.8
of [OPC-UA 4].
8.3.2 Satisfied
Sub clause 8.3.2 defines a mapping of the
OPC UA View Service Set to an
equivalent DDS Service, which enables
DDS applications to browse the
AddressSpace of remote OPC UA
Servers.
6.6.3.4 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing DDS applications to
access OPC-UA Query Service Set
functionality as defined in Section 5.9
of [OPC-UA 4].
8.3.3 Satisfied
Sub clause 8.3.3 defines a mapping of the
OPC UA Query Service Set to an
equivalent DDS Service, which enables
DDS applications to obtain information
from the AddressSpace of OPC UA
Servers.
OPC UA/DDS Gateway 1.0 9
22. Requirement Description References Remarks
6.6.3.5 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing DDS applications to
access OPC-UA Method Service Set
functionality as defined in Section 5.11
of [OPC-UA 4].
The mapping may provide a way for
OPC-UA to receive service requests
from a DDS requester (as defined by the
DDS-RPC specification) and reply to
them.
8.3.5 Satisfied
Sub clause 8.3.5 defines a mapping of the
OPC UA Method Service Set to an
equivalent DDS Service, which enables
DDS applications compliant with [DDS-
RPC] to invoke OPC UA Methods and
receive the corresponding responses.
6.6.4 Mapping between OPC-UA Clients and DDS
6.6.4.1 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing an OPC-UA client to
discover DDS-RPC Services using the
OPC-UA View Services.
9.3 Partially Satisfied
The mappings specified in clause 9.3
expose the Request/Reply Topics
associated with DDS Services. Therefore,
OPC UA Clients can implicitly discover
DDS Services. However, those mappings
provide OPC UA Clients with a
Request/Reply Language binding Style
rather than a Function-call style.
6.6.4.2 Proposals may define a mapping
implementable by the OPC-UA/DDS
gateway allowing an OPC-UA client to
call DDS-RPC Services.
The mapping may provide a way for a
DDS replier (as defined by the DDS-
RPC specification) to receive service
requests from an OPC-UA client and
reply to them.
9.3 Partially Satisfied
This optional requirement is partially
addressed in 9.3. As explained in the
remarks for Requirement 6.6.4.1, the
mappings specified in this proposal
define a Request/Reply Language
binding Style for DDS Services. This
binding style less natural for OPC UA
Clients than the Function-call style,
because it requires them to use the
Write/Read Services to invoke a method
and to receive a response, as opposed to
simply using the Call Service.
0.8 Responses to RFP Issues to be Discussed
The specification discusses the following issues.
Table 0.3: RFP Issues to be Discussed
Issue Description Reference Remarks
6.7 Proposals shall discuss the
relationship and interaction
between the OPC-UA security
model [OPC-UA 2] and the
DDS Security model [DDS-
SECURITY].
8.3.6.1,
8.3.6.2,
8.4.4.1,
8.4.4.2,
9.3.5.1,
9.3.5.2
The OPC UA/DDS Gateway bridges two different
connectivity frameworks: OPC UA and DDS. Both OPC
UA and DDS provide comprehensive security models,
which are specified in [OPCUA-02] and [DDS-
SECURITY], respectively. However, while the objectives
of these security models are the same (i.e., providing
authentication, authorization, confidentiality, integrity,
10 OPC UA/DDS Gateway 1.0
23. Issue Description Reference Remarks
auditability, and availability [OPCUA-02]) the
configuration capabilities and resources that need to be
secured are different. On the one hand, OPC UA deals with
Clients, Servers and information in their AddressSpace;
and on the other hand, DDS deals with Domains, Topics,
and Entities.
This proposal acknowledges that these two security models
need to be configured separately, according to the specific
peculiarities and feature-sets of each communication
framework. Moreover, it considers that, depending on the
use case, the configuration on each end of the Gateway
may have different requirements.
Below, we describe the three interoperability scenarios
between OPC UA and DDS that are possible in the current
proposal, and the security model interactions in each of
them:
• Mapping of OPC UA Services to DDS—This
scenario, described in 8.3, requires instantiating
one or more OPC UA Clients capable of
connecting to one or more OPC UA Servers to
translate DDS Service requests into OPC UA
Service Set invocations. On one side, as explained
in 8.3.6.1, Clients shall be configured to meet the
OPC UA Servers’ security requirements to access
those Services; while on the other side, as
explained in 8.3.6.2, DomainParticipants,
DataReaders, and DataWriters shall be configured
to access the required Domains (if restricted) and
Request/Reply Topics (if restricted).
• Mapping of OPC UA Subscription to DDS—
This scenario, described in 8.4, has similar
requirements. On one side, OPC UA Clients shall
be capable of connecting, creating subscriptions,
and monitoring items from specific OPC UA
Servers; while on the other side,
DomainParticipants, DataReaders, and
DataWriters shall be able to access the required
Domains and Topics.
• Mapping of DDS Global Data Space to OPC UA
—This scenario deals with the opposite use case,
which is described in detail in clause 9.3. On one
side, the Gateway shall instantiate an OPC UA
Server that OPC UA Clients may use to interact
with the DDS Global Data Space. In that case, a
user may wish to limit the number of Clients that
can access the Server—and therefore the DDS
Global Data Space—or the resources that are
exposed. On the other side, a user may need to
configure the DomainParticipants, DataReaders,
and DataWriters instantiated by the Gateway to
OPC UA/DDS Gateway 1.0 11
25. 1 Scope
Data Distribution Service (DDS) is a family of standards from the Object Management Group (OMG) that provide
connectivity, interoperability, and portability for Industrial Internet, cyber-physical, and mission-critical applications.
The DDS connectivity standards cover Publish-Subscribe (DDS), Service Invocation (DDS-RPC), Interoperability
(DDS-RTPS), Information Modeling (DDS-XTYPES), Security (DDS-SECURITY), as well as programing APIs for
C, C++, Java and other languages.
The OPC Unified Architecture (OPC UA) is an information exchange standard for Industrial Automation and related
systems created by the OPC Foundation. The OPC UA standard provides an Addressing and Information Model for
Data Access, Alarms, and Service invocation layered over multiple transport-level protocols such as Binary TCP and
Web-Services.
DDS and OPC UA exhibit significant deployment similarities:
• Both enable independently developed applications to interoperate even when those applications come from
different vendors, use different programming languages, or run on different platforms and operating systems.
• Both have significant traction within Industrial Automation systems.
• Both define standard protocols built on top of the TCP/ UDP/IP Internet stacks.
The two technologies may coexist within the same application domains; however, while there are solutions that
bridge between DDS and OPC UA, these are based on custom mappings and cannot be relied to work across vendors
and products.
This specification overcomes this situation by defining a standard, vendor-independent, configurable gateway that
enables interoperability and information exchange between systems that use DDS and systems that use OPC UA.
2 Conformance
This specification defines a set of building blocks that are grouped into four conformance points:
• OPC UA to DDS Mapping Basic Conformance
• OPC UA to DDS Mapping Complete Conformance
• DDS to OPC UA Mapping Basic Conformance
• OPC UA to DDS Mapping Complete Conformance
Table 2.1 defines each conformance point and lists the building blocks they are built upon.
Table 2.1: Conformance Points
Conformance Point Definition
OPC UA to DDS Mapping Basic
Conformance
Constructs an OPC UA/DDS Gateway that allows DDS applications to subscribe
to data in the AddressSpace of different OPC UA Servers.
Conformance with this point requires the implementation of the following
building blocks:
• OPC UA Type System Mapping
• OPC UA Subscription Model Mapping
OPC UA/DDS Gateway 1.0 13
26. Conformance Point Definition
OPC UA to DDS Mapping
Complete Conformance
Constructs an OPC UA/DDS Gateway that allows DDS applications to subscribe,
browse, and manage data in the AddressSpace of different OPC UA Servers.
Conformance with this point requires the implementation of:
• OPC UA to DDS Mapping Basic Conformance
• OPC UA Service Sets Mapping
DDS to OPC UA Mapping Basic
Conformance
Constructs an OPC UA/DDS Gateway that allows OPC UA clients to browse,
read, write, and subscribe to information in the DDS Global Data Space.
Conformance with this point requires the implementation of the following
building blocks:
• DDS Type System Mapping
• DDS Global Data Space Mapping (except sub clause 9.3.4.4 Reading
Historical Data from Instance Nodes)
DDS to OPC UA Mapping
Complete Conformance
Constructs an OPC UA/DDS Gateway that allows OPC UA clients to browse,
read, write, and subscribe to information in the DDS Global Data Space,
Services. Additionally, it allows OPC UA clients to access Historical Data.
Conformance with this point requires the implementation of:
• DDS to OPC UA Mapping Basic Conformance
• Reading Historical Data from Instance Nodes
OPC UA to DDS and DDS to OPC UA conformance points may be combined in implementations of the OPC
UA/DDS Gateway that provide bi-directional communication between OPC UA and DDS applications. For example:
• Implementations conforming to OPC UA to DDS Mapping Basic Conformance and DDS to OPC UA
Mapping Basic Conformance provide basic bi-directional communication between OPC UA and DDS
applications.
• Implementations conforming to OPC UA to DDS Mapping Complete Conformance and DDS to OPC UA
Mapping Complete Conformance provide complete bi-directional communication between OPC UA and
DDS applications.
3 Normative References
The following normative documents contain provisions which, through reference in this text, constitute provisions of
this specification. For dated references, subsequent amendments to, or revisions of, any of these publications do not
apply.
[DDS] OMG, Data Distribution Service for Real-Time Systems, Version 1.4,
http://www.omg.org/spec/DDS/1.4
[DDS-RPC] OMG, Remote Procedure Call Over DDS, Version 1.0, http://www.omg.org/spec/DDS-
RPC/1.0
[DDS-SECURITY] OMG, DDS Security, Version 1.1, http://www.omg.org/spec/DDS-
SECURITY/1.1/Beta1/
14 OPC UA/DDS Gateway 1.0
27. [DDS-WEB] OMG, Web-Enabled DDS, http://www.omg.org/spec/DDS-WEB/1.0
[DDS-XML] OMG, DDS Consolidated XML Syntax, Version 1.0 Beta, http://www.omg.org/spec/DDS-
XML/1.0/Beta1
[DDS-XTYPES] OMG, Extensible And Dynamic Topic Types For DDS,
http://www.omg.org/spec/DDS-XTypes/1.2
[DDSI-RTPS] OMG, The Real-time Publish-SubscribeProtocol (RTPS) DDS Interoperability
WireProtocol Specification, Version 2.2, http://www.omg.org/spec/DDSI-RTPS/2.2
[IDL] OMG, Interface Definition Language (IDL), Version 4.2, http://www.omg.org/spec/IDL/4.2
[OPCUA-01] OPC Foundation, OPC Unified Architecture Specification Part 1: Overview and Concepts,
Release 1.03, 2015
[OPCUA-02] OPC Foundation, OPC Unified Architecture Specification, Part 2: Security Model, Release
1.03, 2015
[OPCUA-03] OPC Foundation, OPC Unified Architecture Specification, Part 3: Address Space Model,
Release 1.03, 2015
[OPCUA-04] OPC Foundation, OPC Unified Architecture Specification, Part 4: Services, Release 1.03,
2015
[OPCUA-05] OPC Foundation, OPC Unified Architecture Specification, Part 5: Information Model,
Release 1.03, 2015
[OPCUA-06] OPC Foundation, OPC Unified Architecture Specification, Part 6: Mappings, Release 1.03,
2015
[OPCUA-07] OPC Foundation, OPC Unified Architecture Specification, Part 7: Profiles, Release 1.03,
2015
[OPCUA-09] OPC Foundation, OPC Unified Architecture Specification, Part 9: Alarms and Conditions,
Release 1.03, 2015
[OPCUA-11] OPC Foundation, OPC Unified Architecture Specification, Part 11: Historical Access,
Release 1.03, 2015
[OPCUA-12] OPC Foundation, OPC Unified Architecture Specification, Part 12: Discovery, Release
1.03, 2015
4 Terms and Definitions
For the purposes of this specification, the following terms and definitions apply.
OPC UA/DDS Gateway 1.0 15
28. DDS
Data Distribution Service (DDS) is a family of standards from the Object Management Group (OMG,
http://www.omg.org) that provide connectivity, interoperability and portability for Industrial Internet, cyber-physical,
and mission-critical applications. The DDS connectivity standards cover Publish-Subscribe (DDS), Service
Invocation (DDS-RPC), Interoperability (DDSI-RTPS), Information Modeling (DDS-XTYPES), Security (DDS-
Security), as well as programing APIs for C, C++, Java and other languages.
DDS Domain
Represents a global data space. It is a logical scope (or “address space”) for Topic and Type definitions. Each Domain
is uniquely identified by an integer Domain ID. Domains are completely independent from each other. For two DDS
applications to communicate with each other they must join the same DDS Domain.
DDS DomainParticipant
A DomainParticipant is the DDS Entity used by an application to join a DDS Domain. It is the first DDS Entity
created by an application and serves as a factory for other DDS Entities. A DomainParticipant can join a single DDS
Domain. If an application wants to join multiple DDS Domains, then it must create corresponding DDS
DomainParticipant entities, one per domain.
Mapping
Specifies how to implement a DDS or an OPC UA feature with a specific technology [OPCUA-06].
OPC UA
OPC Unified Architecture (OPC UA) is an information exchange standard for Industrial Automation and related
systems created by the OPC Foundation (http://www.opcfoundation.org). The OPC UA standard provides an
Addressing and Information Model for Data Access, Alarms, and Service invocation, layered over multiple transport-
level protocols such as Binary TCP and Web-Services.
5 Symbols
The following acronyms are used in this specification.
Table 5.1: Acronyms
Acronyms Meaning
DCPS Data-Centric Publish-Subscribe
DDS Data Distribution Service
GDS Global Data Space
OMG Object Management Group
RPC Remote Procedure Call
RTPS Real-Time Publish-Subscribe Protocol
UA Unified Architecture
16 OPC UA/DDS Gateway 1.0
29. Acronyms Meaning
XTYPES eXtensible and dynamic topic TYPES (for DDS)
6 Additional Information
6.1 Acknowledgements
The following companies submitted this specification:
• Real-Time Innovations, Inc.
• PrismTech Ltd
• Twin Oaks Computing, Inc.
• eProsima, Inc.
OPC UA/DDS Gateway 1.0 17
30. 7 OPC UA/DDS Gateway Overview (non-normative)
7.1 OPC Unified Architecture (OPC UA)
OPC UA defines a pure client-server architecture, where Clients access the AddressSpace of a Server by means of a
set of standard Services. This clause provides an overview of the OPC UA AddressSpace and Service Sets focusing on
the aspects that are important for building a bridge between OPC UA and DDS.
[OPCUA-01] provides a more general purpose overview of OPC UA and the different parts of the specification.
7.1.1 OPC UA AddressSpace
The OPC UA AddressSpace model provides a mechanism to describe the entities that exist in a distributed system. It
is defined in [OPCUA-03] using UML as a meta-model that may be exposed by any OPC UA Server.
The AddressSpace is composed of a set of Nodes connected by References. Figure 7.1 depicts the different
NodeClasses defined in the OPC UA standard and their relationship with References.
• BaseNodeClass—The abstract class BaseNodeClass contains the set of Attributes that are common to all
NodeClasses including a NodeClass enumeration attribute that indicates which concrete class is actually
instantiated, and a NodeId that uniquely identifies a Node anywhere in the system. Note that relationships
between Nodes are defined by means of the NodeId value (similarly to a foreign key in a relational data
model).
• ReferenceType—ReferenceTypes define the nature of references (relationship between Nodes). Clause 7 of
[OPCUA-03] defines a set of standard ReferenceTypes, which are widely used in OPC UA applications.
Other parts of the OPC UA family of standards define additional ReferencesTypes by instantiating the
ReferenceType NodeClass. It is important to note that References are not NodeClasses and they do not appear
as such in the AddressSpace of OPC UA Servers.
• View—Nodes of the View class allow the selection of a subset of the AddressSpace. The entire AddressSpace
is the default view. Each node in a view may contain only a subset of its References, as defined by the creator
of the view.
• Object—Nodes of the Object NodeClass represent real-life objects in a system. Examples of Objects are
devices, controllers dealing with multiple devices, segments containing multiple controllers, and plants
consisting of multiple segments.
• ObjectType—Nodes of the ObjecType NodeClass provide type definitions for Objects. In other words,
Objects are defined by ObjectTypes, and each node of Object class includes a HasTypeDefinition Reference
to an ObjectType.
• Variable—Nodes of the Variable NodeClass represent simple or complex values. Depending on their
constraints, Variables are defined as either Properties or DataVariables of other Nodes. Variables may be
simple or complex. Simple Variable objects refer to predefined DataTypes as found in [OPCUA-06].
• VariableType—Nodes of the VariableTypes NodeClass provide type definitions for Variables. In other
words, Variables are defined by VariableTypes, and each node of the Variable includes a HasTypeDefinition
Reference to a VariableType.
• Method—Nodes of the Method NodeClass define functions that are invoked using the Call Service defined in
[OPCUA-04].
• DataType—Nodes of the DataType NodeClass describe the syntax of a Variable’s value. DataTypes can be
simple or complex.
OPC UA/DDS Gateway 1.0 19
31. 7.1.2 OPC UA Services
In a nutshell, OPC UA Services are Remote Procedure Calls (RPC) that Client applications can invoke to browse the
AddressSpace of a Server, read/write data, and configure subscriptions. OPC UA’s complete Service Set is defined in
[OPCUA-04].
For the purpose of building a bridge between OPC UA and DDS the following Service Sets apply:
• View Service Set—Provides Clients with Services to navigate the AddressSpace or a View—a subset—of the
AddressSpace of an OPC UA Server. These include the Browse, and BrowseNext services.
• Query Service Set—Provides Clients with Services to access information about the OPC UA Server. These
include the QueryFirst and QueryNext services.
20 OPC UA/DDS Gateway 1.0
class OPCUAMetamodel
BaseNodeClass
+ BrowseName: QualifiedName
+ Description: LocalizedText
+ DisplayName: LocalizedText
+ NodeClass: NodeClass
+ NodeId: NodeId
+ UserWriteMask: UInt32
+ WriteMask: UInt32
ObjectType
+ IsAbstract: Boolean
ReferenceType
+ InverseName: LocalizedText
+ IsAbstract: Boolean
+ Symmatric: BooleanObject
+ EventNotifier: Byte
VariableType
+ ArrayDimensions: UInt32 [0..*]
+ DataType: NodeId
+ IsAbstract: Boolean
+ NodeId: NodeId
+ Value
+ ValueRank: Int32
Variable
+ AccessLevel: Byte
+ ArrayDimensions: UInt32 [0..*]
+ DataType: NodeId
+ Historizing: Boolean
+ MinimumSamplingInterval: Duration
+ UserAccessLevel: Byte
+ Value
+ ValueRank: Int32
DataType
+ IsAbstract: Boolean
View
+ ContainsNoLoops: Boolean
+ EventNotifier: Byte
Method
+ Executable: Boolean
+ UserExecutable: Boolean
Reference
+ InverseName: String
+ IsAbstract: Boolean
+ Symmetric: Boolean
1
+SourceNode
1
+TargetNode
1
Figure 7.1: OPC UA Metamodel
32. • Attribute Service Set—Provides Clients with Services to Attributes that are part of a Nodes. For example, it
allows Clients to read the value of a Variable Node using the Read Service, update the value of a Variable
Node using the Write Service, or perform operations on historical values or events using the HistoryRead or
HistoryUpdate services.
• Method Service Set—Provides Clients with the Call Service, which is used to invoke OPC UA Methods.
• Subscription Service Set—Provides Clients with a mechanism to receive notifications from the Server on a
group of MonitoredItems. Unlike in DDS, where subscriptions are configured on a per-Topic bases (which
decouples information producers from information consumers in time and space, and allows efficient one-to-
many and many-to-many communications), OPC UA Subscriptions are server-to-client (i.e., one-to-one). As
a result, a Client is tightly coupled to a Server. In other words, Clients configure their own Subscriptions on
the Server and cannot share them with other Clients.
• MonitoredItems Service Set—Provides Clients with Services to configure the data and Events they wish to
subscribe to. MonitoredItems are created in the context of a Subscription, which is used to push Notifications
to the Client.
OPC UA provides also Service Sets to manage and control connections between OPC UA Clients and Servers. While
these services need not be exposed to DDS applications—because they have no role in the OPC UA to DDS end-to-
end interactions—they shall be implemented by the OPC UA Clients and Servers embedded into the OPC UA/DDS
Gateway (see sub clause 7.3).
• Discovery Service Set—Provides Clients with Services to discover Endpoints they can use to establish a
SecureChannel.
• SecureChannel Service Set—Provides Clients with Services to open a communication channel to exchange
Messages with the Server.
• Session Service Set—Provides Clients with Services to create an application-layer connection once a
SecureChannel has been created.
• NodeManagement Service Set—Provides Clients with Services to modify the AddressSpace of a Server. This
Service Set needs not be implemented by the OPC UA/DDS Gateway.
7.2 Data Distribution Service (DDS)
DDS is based on a data-centric publish-subscribe (DCPS) communication model, where information producers and
information consumers are decoupled in time and space and exchange information by means of a set of Topics. This
enables seamless one-to-many and many-to-many communication.
7.2.1 DDS Global Data Space
The DDS DCPS model is built upon the concept of a Global Data Space (GDS) that is accessible to all interested
applications. DDS applications that are interested in contributing information to the GDS become Publishers and
DDS applications interested in portions of the GDS become Subscribers. Each time a Publisher posts new data into
the Global Data Space, the DDS middleware propagates the information to the corresponding Subscribers [DDS].
The information that Publishers and Subscribers exchange in the Global Data Space is referred to as Topics, which
uniquely identify the data items in the Global Data Space. Each Topic is associated with a Type, which provides
information on how to manipulate the data, providing a level of type safety.
Lastly, the Global Data Space is divided into different logical divisions called Domains. DDS applications may
participate in different Domains using different DomainParticipants. Likewise, DomainParticipants may create
different DataWriters and DataReaders to publish and subscribe to different Topics on a certain Domain. Figure 7.2
provides an overview of the DCPS Model and shows the different DDS Entities that enable applications to participate
in the Global Data Space.
OPC UA/DDS Gateway 1.0 21
33. 7.2.2 Remote Procedure Call over DDS (DDS-RPC)
While the publish-subscribe communications model makes DDS extremely powerful and scalable for one-to-many
and many-to-many communications, it makes it cumbersome to implement request-reply interactions and RPC
invocations such as OPC UA’s.
To overcome this limitation, the DDS family of standards includes the RPC over DDS Specification [DDS-RPC],
which defines a standard RPC framework using the basic building blocks of DDS (e.g., Topics, Types, DataWriters,
and DataReaders) to provide request-reply semantics.
The [IDL] specification provides syntax to represent services and interfaces and the [DDS-RPC] specification
provides the corresponding mapping of that syntax to actual building blocks to implement the DDS services and
interfaces.
7.3 Bridging OPC UA and DDS
The goal of this specification is to define a standard, vendor-independent, configurable gateway to enable seamless
interoperability and information exchange between systems that use DDS and systems that use OPC UA.
An important use-case that would greatly benefit from a standards-based gateway is the use of DDS to integrate OPC
UA applications and subsystems (see Figure 7.3). In this scenario, individual applications and components, which
expose their data and services via OPC UA, are integrated into larger systems for monitoring and control using DDS.
These systems would benefit from OPC UA’s familiar Industrial Automation information models while benefiting
from DDS’ scalability, performance, QoS, and Global Data Space abstractions.
22 OPC UA/DDS Gateway 1.0
class DCPSModel
DomainEntity DomainParticipant
Publisher Subscriber
TypeSupport::
Topic
«interface»
TypeSupport
DataReaderDataWriter
Data
A DomainParticipant is the entry-point
for the service and isolates a set on
applications that share a physical
network.
*
1
* 1
*
1
*
1
*
1
Figure 7.2: DCPS Conceptual Model
34. An OPC UA/DDS Gateway capable of providing such functionality must implement two different bridges:
• OPC UA to DDS Bridge, which enables DDS applications to interact with the AddressSpace of different
OPC UA Servers using native constructs,
• DDS to OPC UA Bridge, which enables OPC UA Clients to participate as first-class citizens in the DDS
Global Data Space.
Additionally, the OPC UA/DDS Gateway must provide a set of configuration files to allow users to tune the behavior
and mappings of the Gateway to their needs.
It is important to note that this specification does not mandate any specific architecture for the OPC UA/DDS
Gateway, although it describes an implementation based on the use of built-in OPC UA Clients and Servers and DDS
Entities. Instead, it provides a set of building blocks that enable implementers of this specification to construct an
interoperable product.
OPC UA/DDS Gateway 1.0 23
DDSOPCUA
Server &
Client
RTPS
DDS-OPCUA Gateway
DDS
RTPS
<<conceptually>>
Global Data Space
App
TCP / WS
OPC-UA
Client
TCP / WS
OPC-UA
Server
TCP / WS
DDS
RTPS
App
OPC-UA Protocols
DDS Protocols
App
App
Figure 7.3: OPC UA/DDS Gateway Concept
35. 8 OPC UA to DDS Bridge
This chapter defines the OPC UA to DDS Bridge, which enables DDS applications to browse, read, and manage
information in the AddressSpace of different OPC UA Servers. In other words, it enables DDS applications to
communicate with OPC UA Servers using DDS native constructs.
8.1 Overview (non-normative)
Figure 8.1 shows an example OPC UA/DDS Gateway implementing the OPC UA to DDS Bridge.
On one side of the Gateway, a set of DDS DomainParticipants and DDS Endpoints (i.e., DataWriters and
DataReaders) handle interactions with DDS applications that wish to access the AddressSpace of different OPC UA
Servers. On the other side of the Gateway, an OPC UA Client handles interactions with different OPC UA Servers by
forwarding requests/responses from DDS applications/OPC UA Servers to OPC UA Servers/DDS applications.
This chapter is organized as follows:
• Sub clause 8.2 defines a mapping of the OPC UA type to IDL,
• Sub clause 8.3 defines a mapping of the OPC UA Service Sets to DDS Services using RPC over DDS.
• Sub clause 8.4 defines a special mapping of the OPC UA Subscription and MonitoredItem Service Sets to
allow DDS applications to subscribe to data in the AddressSpace of different OPC UA Servers following the
DCPS model.
8.2 OPC UA Type System Mapping
OPC UA leverages a collection of built-in types to construct structures, arrays, and messages.
Sub clause 5.1.2 of [OPCUA-06] defines the complete set of built-in types and assigns an ID to each of them. The set
of OPC UA built-in types can be represented as the following enumeration in IDL syntax:
module OMG { module DDSOPCUA { module OPCUA2DDS {
enum BuiltinTypeKind {
@value(1) BOOLEAN_TYPE,
@value(2) SBYTE_TYPE,
@value(3) BYTE_TYPE,
OPC UA/DDS Gateway 1.0 25
OPC UA/DDS
Gateway
DDS
EP
OPC UA
Client
OPC UA
Client
DDS
EP
OPC UA
Server
OPC UA
Server
DDS
Global Data Space
DDS
App
RTPS
RTPS
RTPS
DDS
App
RTPS
OPC UA
Server
OPC UA
Server OPC UA
Bin
OPC UA
Bin OPC UA
Client
OPC UA
Client
Figure 8.1: OPC UA to DDS Bridge Overview
36. @value(4) INT16_TYPE,
@value(5) UINT16_TYPE,
@value(6) INT32_TYPE,
@value(7) UINT32_TYPE,
@value(8) INT64_TYPE,
@value(9) UINT64_TYPE,
@value(10) FLOAT_TYPE,
@value(11) DOUBLE_TYPE,
@value(12) STRING_TYPE,
@value(13) DATETIME_TYPE,
@value(14) GUID_TYPE,
@value(15) BYTESTRING_TYPE,
@value(16) XMLELEMENT_TYPE,
@value(17) NODEID_TYPE,
@value(18) EXPANDEDNODEID_TYPE,
@value(19) STATUSCODE_TYPE,
@value(20) QUALIFIEDNAME_TYPE,
@value(21) LOCALIZEDTEXT_TYPE,
@value(22) EXTENSIONOBJECT_TYPE,
@value(23) DATAVALUE_TYPE,
@value(24) VARIANT_TYPE,
@value(25) DIAGNOSTICINFO_TYPE
};
};};};
The OPC UA built-in types listed above include both primitive types and complex types. The mapping of primitive
types to DDS is described in sub clause 8.2.1 and the mapping of complex types is described in sub clause 8.2.2.
These mappings are also available in a separate normative machine-readable IDL file named dds-
opcua_builtin_types.idl, which is provided with this specification.
8.2.1 Built-in Primitive Types
Table 8.1 shows the correspondence between the different built-in OPC UA primitive types and DDS types. The
mapping provides both the generic [DDS-XTYPES] equivalent type and its corresponding [IDL] representation.
Table 8.1: Mapping of OPC UA Primitive Types to DDS
OPC UA Built-in Type DDS Type IDL Equivalent
Boolean Boolean boolean
SByte Byte int8
Byte Byte uint8
Int16 Int16 int16
UInt16 UInt16 uint16
Int32 Int32 int32
UInt32 UInt32 uint32
Int64 Int64 int64
UInt64 UInt64 uint64
Float Float32 float
Double Float64 double
26 OPC UA/DDS Gateway 1.0
37. OPC UA Built-in Type DDS Type IDL Equivalent
String String8 string
There is almost a one-to-one correspondence between these types. They only exception are OPC UA SByte and
Byte types, which represent signed and unsigned 8-bit integers respectively. [DDS-XTYPES] does not define an 8-bit
signed integer; therefore, they are both mapped to DDS Bytes3
. Nevertheless, these types can always be expressed in
[IDL], which provides the equivalent int8 and uint8 types.
8.2.2 Built-in Complex Types
Table 8.2 maps the OPC UA non-primitive built-in types to IDL.
Table 8.2: Mapping of OPC UA Non-Primitive Built-in Types to DDS
OPC UA Built-in Type DDS Type (IDL Equivalent)4
DateTime int64
Guid struct Guid {
uint32 data1;
uint16 data2;
uint16 data3;
octet data4[8];
};
ByteString sequence<octet>
XmlElement string
NodeId enum NodeIdentifierKind {
NODEID_NUMERIC,
NODEID_STRING,
NODEID_GUID,
NODEID_OPAQUE
};
@nested
union NodeIdentifierType switch (NodeIdentifierKind) {
case NUMERIC_NODE_ID:
uint32 numeric_id;
case STRING_NODE_ID:
string string_id; // Restricted to 4096 bytes
case GUID_NODE_ID:
Guid guid_id;
case OPAQUE_NODE_ID:
ByteString opaque_id; // Restricted to 4096 bytes
};
struct NodeId {
uint16 namespace_index;
NodeIdentifierType identifier_type;
};
ExpandedNodeId struct ExpandedNodeId : NodeId {
string namespace_uri;
3
The addition of types Int8 and UInt8 is planned for the next revision of the [DDS-XTYPES] specification.
4
All these types appear inside the IDL module OMG::DDSOPCUA::OPCUA2DDS.
OPC UA/DDS Gateway 1.0 27
38. OPC UA Built-in Type DDS Type (IDL Equivalent)
uint32 server_index;
};
StatusCode uint32
QualifiedName struct QualifiedName {
uint16 namespace_index;
string name; // Restricted to 512 characters
};
LocalizedText @mutable
struct LocalizedText {
@id(1) @optional string locale;
@id(2) @optional string text;
};
ExtensionObject enum BodyEncoding {
@value(0) NONE_BODY_ENCODING,
@value(1) BYTESTRING_BODY_ENCODING,
@value(2) XMLELEMENT_BODY_ENCODING
};
@nested
union ExtensionObjectBody switch (BodyEncoding) {
case NONE_BODY_ENCODING:
octet none_encoding;
case BYTESTRING_BODY_ENCODING:
sequence<octet> bytestring_encoding;
case XMLELEMENT_BODY_ENCODING:
XmlElement xmlelement_encoding;
};
struct ExtensionObject {
NodeId type_id;
ExtensionObjectBody body;
};
DataValue @mutable
struct DataValue {
@id(1) @optional Variant value;
@id(2) @optional StatusCode status;
@id(4) @optional DateTime source_timestamp;
@id(8) @optional DateTime server_timestamp;
@id(10) @optional uint16 source_pico_sec;
@id(32) @optional uint16 server_pico_sec;
};
Variant @nested
union VariantValue switch (BuiltinTypeKind) {
case BOOLEAN_TYPE:
boolean bool_value;
case SBYTE_TYPE:
int8 sbyte_value;
case BYTE_TYPE:
uint8 byte_value;
case INT16_TYPE:
int16 int16_value;
case UINT16_TYPE:
uint16 uint16_value;
case INT32_TYPE:
int32 int32_value;
case UINT32_TYPE:
uint32 uint32_value;
28 OPC UA/DDS Gateway 1.0
39. OPC UA Built-in Type DDS Type (IDL Equivalent)
case INT64_TYPE:
int64 int64_value;
case UINT64_TYPE:
uint64 uint64_value;
case FLOAT_TYPE:
float float_value;
case DOUBLE_TYPE:
double double_value;
case STRING_TYPE:
string string_value;
case DATETIME_TYPE:
DateTime datetime_value;
case GUID_TYPE:
Guid guid_value;
case BYTESTRING_TYPE:
ByteString bytestring_value;
case XMLELEMENT_TYPE:
XmlElement xmlelement_value;
case NODEID_TYPE:
NodeId nodeid_value;
case EXPANDEDNODEID_TYPE:
ExpandedNodeId expandednodeid_value;
case STATUSCODE_TYPE:
StatusCode statuscode_value;
case QUALIFIEDNAME_TYPE:
QualifiedName qualifiedname_value;
case LOCALIZEDTEXT_TYPE:
LocalizedText localizedtext_value;
case EXTENSIONOBJECT_TYPE:
ExtensionObject extensionobject_value;
};
struct Variant {
sequence<uint32> array_dimensions;
sequence<VariantValue> value;
};
DiagnosticInfo @mutable
struct DiagnosticInfo {
@id(1) @optional int32 symbolic_id;
@id(2) @optional int32 namespace_uri;
@id(4) @optional int32 localized_text;
@id(8) @optional int32 locale;
@id(10) @optional string additional_info;
@id(32) @optional StatusCode inner_status_code;
@id(64) @optional DiagnosticInfo inner_diagnostic_info;
};
In the IDL representation of a Variant, array_dimensions may be set to a zero-length sequence, a sequence of
length one, or a sequence of length greater than one:
• If array_dimensions is an empty zero-length sequence, it indicates the Variant contains a single
element. In this case the value field shall contain a sequence of length 1 with that one element representing
the value of the variant.
• If array_dimensions is a sequence of length 1, it indicates the Variant contains a one-dimensional array.
In this case the first and only array_dimensions element shall match the length of the value sequence.
• If array_dimensions is a sequence with length greater than 1, it indicates the Variant contains a multi-
dimensional array. The length of array_dimensions indicates the number of dimensions and the value of
OPC UA/DDS Gateway 1.0 29
40. each element in array_dimensions indicates the length of each dimension. As specified in [OPCUA-06],
multi-dimensional arrays are encoded as a one-dimensional array whose length is equal to the sum of the
lengths of each dimension with the higher rank dimensions are appearing first. In this case, the value field
shall contain a sequence with length equaling the sum of all the dimensions.
8.3 OPC UA Service Sets Mapping
This clause defines a set of DDS Services equivalent to the OPC UA Services specified in [OPCUA-04]. These allow
DDS applications to browse, query, read, write, and subscribe to information in the AddressSpace of different OPC
UA Servers in a pure client-server manner.
The DDS Services specified in this clause are built upon the mechanisms defined in [DDS-RPC] and [IDL], which
provide IDL syntax to define interfaces with methods/operations and attributes, and the mapping of OPC UA’s built-
in types specified in sub clause 8.2 of this specification.
Each DDS Service contains a group of methods with input and output parameter, which are identified with the in and
out keywords (e.g., out sequence<DataValue> results). The first parameter of each method is always the
input parameter server_id—a string that uniquely identifies the OPC UA Server that shall process the request. The
format of the server_id is unspecified; it may be the Server’s URI (e.g., opc.tcp://10.10.100.131:55001) or an
identifier corresponding a custom name specified in a configuration file. Aside from the output parameters, each
method returns a ResponseHeader, whose mapping is specified in Table 8.3.
The standard DataTypes, NodeClasses, and Services mapped in this clause are also available in a separate machine-
readable IDL file named dds-opcua_services.idl, which is provided with this specification.
8.3.1 Standard DataTypes and NodeClasses Mapping
Table 8.3 maps the OPC UA DataTypes and NodeClasses that are required to implement DDS Services equivalent to
those in [OPCUA-04].
These mappings are built upon the type mappings specified in sub clause 8.2 of this specification.
Table 8.3: Mapping of OPC UA Standard DataTypes and NodeClasses to DDS
OPC UA Type DDS Type (IDL equivalent)5
NodeClass enum NodeClass {
@value(1) OBJECT_NODE_CLASS,
@value(2) VARIABLE_NODE_CLASS,
@value(4) METHOD_NODE_CLASS,
@value(8) OBJECT_TYPE_NODE_CLASS,
@value(16) VARIABLE_TYPE_NODE_CLASS,
@value(32) REFERENCE_TYPE_NODE_CLASS,
@value(64) DATA_TYPE_NODE_CLASS,
@value(128) VIEW_NODE_CLASS
};
BaseNodeClass @nested
struct BaseNodeClass {
// Attributes
NodeId node_id;
NodeClass node_class;
QualifiedName browse_name;
LocalizedText display_name;
@optional LocalizedText description;
@optional uint32 write_mask;
5
All these types appear inside the IDL module OMG::DDSOPCUA::OPCUA2DDS.
30 OPC UA/DDS Gateway 1.0