SlideShare a Scribd company logo
A Deep Dive into the DDS/OPC
UA Gateway Specification
Gerardo Pardo-Castellote, Ph.D.
Chief Technology Officer, RTI
May 2018
Fernando Garcia-Aranda
Senior Software Engineer, RTI
Outline
• Motivation
• Use-Cases
• OPC UA Concepts
• DDS Concepts
• OPC UA / DDS Gateway
• Conclusions
©2018 Real-Time Innovations, Inc. Confidential.
©2017 Real-Time Innovations, Inc. Confidential.
DECENTRALIZED PEER TO PEER SYSTEMS
How to connect and integrate these systems?
• Performance
• Scalability
• Reliability
• Redundancy
• Fail over
• Security
• Heterogeneity
• Domain-Specific
Technologies
• Legacy Systems
©2018 Real-Time Innovations, Inc. Confidential.
Industrial Internet Consortium: 270+ Companies, 30+ Countries
IIC Founding and Contributing Members
The World’s Largest IoT Consortium
The IIC created the IIoT market
IIC Core Connectivity Standards
Endpoints
Other
Connectivity
Technologies
Connectivity Core Standards (baseline)
Gateway
Other EndpointsFunctional Domain
Other
Functional
Domain
Gateway
IIoT Connectivity Stack Model
Connectivity
Information
Networking
Information (Data in Context)
Participant X
Transport
Link
Framework
Distributed Data
Interoperability and Management
Physical
Network
Participant Y
Data (State, Events, Streams)
Messages
Packets
Frames
Bits
Transport
Link
Framework
Distributed Data
Interoperability and Management
Physical
Network
Technical
Interoperability
(opaque blocks)
Syntactic
Interoperability
(data structures)
Semantic
Interoperability
(data context)
Connectivity Transport Layer
Transport
Link
Distributed Data Interoperability & Management
Framework
Connectivity
Transport
Functions
Physical
Network
Messaging Protocol
Endpoint
Addressing
Connectednes
s
Prioritization
Timing &
Synchronizatio
n
Security
Communication Modes
Technical
Interoperability
For IIC Member use only. Portions ©2017 Real-Time Innovations, Inc.
Connectivity Framework Layer
Transport
Link
Distributed Data Interoperability & Management
Framework
Quality
of
Servic
e
Securit
y
Publish-
Subscribe
Request-Reply Discovery
Data Resource Model
Id and
Addressing
Data Type
System
Lifecycle (CRUD)
Exception Handling
State
Management
Connectivity
Framework
Functions
Physical
Network
API Governance
Syntactic
Interoperability
Connectivity Standards
For IIC Member use only. Portions ©2017 Real-Time Innovations, Inc.
Manufacturing Origin
TSN /
Ethernet
(802.1,
802.3)
DDS
Wireless
PAN
(802.15)
Wireless
2G/3G/LTE
(3GPP)
Wireless
LAN
(802.11
Wi-Fi)
Internet Protocol (IP)
CoAP
MQT
T
Web
Services
Wireless
Wide Area
(802.16)
HTTPDDSI-RTPS
oneM2M OPC-UA
OPC-UA
Bin
Telecommunications Origin
UDP TCP
TC
P
Transport
Link
Framework
Distributed Data
Interoperability and Management
Physical
Network
Healthcare TransportationManufacturing… …
Energy &
Utilities
Selection Criteria
©2017 Real-Time Innovations, Inc
Core Standard Criterion DDS Web Services OPC-UA oneM2M
1 Provide syntactic interoperability
✔
Need XML or
JSON
✔ ✔
2 Open standard with strong independent, international governance
✔ ✔ ✔ ✔
3 Horizontal and neutral in its applicability across industries
✔ ✔ ✔ ✔
4 Stable and proven across multiple vertical industries
Software Integration &
Autonomy
✔ Manufacturing
Smart City
Pilots*
5 Have standards-defined Core Gateways to all other core
connectivity standards Web Services,
OPC-UA, oneM2M*
DDS, OPC-UA,
oneM2M
Web Services,
DDS,
oneM2M*
Web Services,
DDS*
6 Meet the connectivity framework functional requirements
✔ ✗
Pub-Sub in
development
7 Meet non-functional requirements of performance, scalability,
reliability, resilience
✔ ✗
Real-time in
development
Reports not yet
documented or
public* = work in progress , ✔ = supported, ✗ = not supported GREEN = Gating Criteria
DDS and the Industrial Internet of Things
• Reliability: Severe consequences if
offline for 5ms (or 5 min)
• Real-time: measure in ms or µs
• Interface scale: 10+ applications/teams
• Dataflow complexity: data has many
destinations
• Architecture: Next generation IIoT
Deployed in 1000s of Systems Industrial IoT Systems
Industries: Energy, Industrial Control, Transportation, Healthcare, Defense
3+ Yes?
Use Cases
DDS DataBus
Scale access to OPC UA devices
OPC UA
Server
OPC
UA/DDS
Gateway
OPC
UA
Client
DDS
Participan
t
Device Supporting OPC UA
DDS
Participan
t
DDS
Participan
t
DDS
Participan
t
OPC UA as a universal
“device driver”
Use SCADA Tools in DDS systems
©2017 Real-Time Innovations, Inc. Confidential.
OPC UA
Client
OPC
UA/DDS
Gateway
OPC
UA
Server
DDS
Participan
t
SCADA tool supporting OPC UA
Many Industrial Automation
Tools support a OPC UA Interface
DDS DataBus
DDS
Participan
t
DDS
Participan
t
DDS
Participan
t
DDS Concepts
DDS Standard family
DDS v 1.4
RTPS v2.2DDS-SECURITY
DDS-RPC
DDS-XTYPES
Application
UDP TCP DTLS TLS
DDS-C++ DDS-JAVA DDS-IDL-C DDS-IDL-C#
SHARED-MEMORYIP
HTTP
IDL4.
TSN
Ethernet
DDS-WEB
DDS-OPCUA
OPC/
TPC
Timeline
©2018 Real-Time Innovations, Inc. Confidential.
2004 2006 2007 2008 2010 2012 2014 2016 20182017201520132005 2009 2011
4th Gen Middleware: Data-Centric Publish-Subscribe
Broadcast
Publish/Subscribe
Fieldbus, CANbus,
SOMEIP,
OPC UA Pub-Sub
Data-Centric
Publish-Subscribe
DDS (Data-Distribution
Service)
Brokered
Publish/Subscribe
Queuing
MQTT, XMPP
AMQP
Broker
ESB
Daemon
Point-to-Point
Client/Server
TCP, REST, WS*,
OPC UA
DataBus
Global Data Space
Virtual Global Data Space
Topic A
QoS
Topic C
QoS
Topic D
QoS
DDS DOMAIN
Persistence
Service
Recording
Service
CRUD operations
Topic B : “Turbine State”
Source (Key) Speed Power Phase
WPT1 37.4 122.0 -12.20
WPT2 10.7 74.0 -12.23
WPTN 50.2 150.07 -11.98
QoS
Data-Centric Communications Model
©2015 Real-Time Innovations, Inc. Confidential.
• Participants scope the global data space (domain)
• Topics define the data-objects (collections of subjects)
• DataWriters publish data on Topics
• DataReaders subscribe to data on Topics
• QoS Policies are used configure the system
• Listeners are used to notify the application of events
Reader
“Alarm”
Domain
ParticipantWriter
“Alarm”
Domain
Participant
Listener
Offered
QoS Listener
Got new
data
Requested
QoS
New
subscriber!
Topic2
Topic3
Request <= Offered
QoS compatibility
checking and run-time
monitoring
“Alarm” Topic
Quality of Service (QoS) Policies
QoS Policy
DURABILITY
HISTORY
LIFESPAN
WRITER DATA LIFECYCLE
READER DATA LIFECYCLE
ENTITY FACTORY
RESOURCE LIMITS
RELIABILITY
TIME BASED FILTER
DEADLINE
CONTENT FILTERS
Cache
UserQoS
Delivery
Presentation
Availability
Resources
Transport
QoS Policy
USER DATA
TOPIC DATA
GROUP DATA
PARTITION
PRESENTATION
DESTINATION ORDER
OWNERSHIP
OWNERSHIP STRENGTH
LIVELINESS
LATENCY BUDGET
TRANSPORT PRIORITY
RTPS Protocol optimized for IIOT
• Full peer-to-peer protocol
–No required brokers or servers
• Adaptable via QoS
–Reliability, timeouts, message priority
• Native reliable multicast support
–Uses transport multicast, if available, else unicast UDP
• Robust to disconnects
–Maintains session above (UDP) transport
• Efficient data encapsulation
–Binary XCDR
• Built-in availability and durability
–Durable & Persistent data, Historical cache, Failover support
© 2010 Real-Time Innovations, Inc.
RTPS
Data and Service Definition
DDS-XTYPES and IDL4 standards
• Logical Data Model and Service Interfaces
–Portable: Language-Independent Type System
–Safe: Rules for Type Compatibility
–Flexible: Types/Interfaces expressed in IDL or XML
• Interoperable System Evolution
–Types/Services changes (add, remove, reorder, …)
–Incremental/Partial upgrades
• Dynamic API’s to access data and types
–Systems that adapt at run-time
• Efficient binary serialization
@mutable
struct ShapeType {
@key string color;
@range(0, 200) long x;
@range(0, 250) long y;
@optional @min(5) float size;
};
struct ShapeTypeExt : ShapeType {
@unit(“meter”) long x;
};
/* Service definition */
enum Command { START, STOP };
@service
interface RobotControl
{
void command(Command com);
float setSpeed(float speed)
raises (TooFast);
float getSpeed();
};
DDS Security Goals
• Authenticate subjects
• Enforce access control to data
objects
• Ensure data integrity
• Ensure data confidentiality
• Enforce non-repudiation
• Provide availability of data
• Create auditable security logs
….while maintaining high performance
DDS DataBus
Connext
DDS
App 1
Connext
DDS
App 2
Key Management
Authentication
Logging
Cryptography
Access Control
Complete C++ Example
enum TempUnit {
CELSIUS,
FAHRENHEIT,
KELVIN
};
struct TempType {
@key short id;
float temp;
TempUnit unit;
};
dds::domain::DomainParticipant dp(0);
dds::topic::Topic<TempType> topic(dp, "TTempSensor");
dds::pub::Publisher pub(dp);
dds::pub::DataWriter<TempType> writer(pub, topic);
TempType sensor(1, 0, 0, TempUnit::CELSIUS);
for ( int i = 0; i < 100; ++ i, ) {
sensor.temp( i%100 );
writer.write(sensor);
std::this_thread::sleep_for(std::chrono::seconds(1));
}
dds::domain::DomainParticipant dp(0);
dds::topic::Topic<TempType> topic(dp, "TTempSensor");
dds::sub::Subscriber sub(dp);
dds::sub::DataReader<TempType> reader(sub, topic);
dds::sub::cond::ReadCondition condition(reader,
dds::sub::status::DataState::any());
dds::core::cond::WaitSet waitset;
waitset += condition;
while (true) {
waitset.wait(dds::core::Duration(4))
auto samples = reader.take();
for (auto s : samples) {
std::cout << s.data() << std::endl;
}
}
// Subscriber Application:
// Publisher Application:
// IDL
Connext DDS factsheet
• Architecture: Peer-to-Peer, no Broker, Layered (Hierarchical)
Databus.
• Communication Patterns: Publish/Subscribe, Request/Reply,
Queuing
• Payload: Strongly-defined types, opaque, mixed. Static/Dynamic.
• Filtering: Content filter, time filter, supports Publisher side filtering.
• Quality of Service: Extensive (Reliability, History, Liveliness, etc.)
• Transports: UDP (multicast), TCP, TLS, DTLS, shared memory,
pluggable custom. Transparent Mobility.
• Security: Fine grained security per Topic, transport-level security.
• Languages: C, C++, Java, .NET, ADA. Via connector: JS, Python, Lua.
OPC UA Concepts
OPC UA Standards
©2018 Real-Time Innovations, Inc. Confidential.
Part I - Overview & Concepts
Part 2 – Security Model
Part 3 – Address Space
Model
Part 4 – Services
Part 5 – Information Model
Part 6 – Service Mapping
Part 7 – Profiles
Part 8 – Data Access
Part 9 – Alarms &
Conditions
Part 10 – Programs
Part 11 – Historical Access
Part 12 – Discovery
Part 13 – Aggregates
Part 14 – Publish-Subscribe
5.4 – Discovery
5.5 – Secure Channel
5.6 – Session
5.7 – Node
Management
5.8 – View
5.9 – Query
5.10 – Attribute
5.12 – Monitored Item
5.13 – Subscription
5.11 – Method
5.1-5.3 – ...
Classic
OPC
In
Progress
Timeline
©2018 Real-Time Innovations, Inc. Confidential.
1996 1998 1999 2000 2002 2004 20051997 2001 2003
2006 2007 2008 2010 2012 2014 2016 20182017201520132009 2011 TBD
OPC Classic
(OLE for Process Control)
OPC UA (Open Platform Communication Unified Architecture)
©2018 Real-Time Innovations, Inc.
OPC UA Basics
• Client/Server Model
–Servers expose Address Space
–Clients access information using
services
• Object-oriented meta-model
–Used for sensors, actuators…
–Information as nodes in Address Space
–Nodes are organized hierarchically
• OPC UA Services:
–Connection management
–Node management
–View, Query
–Attribute, Method
–Subscription, Monitor items
OPC UA Basics
OPC UA = established OPC features
+ Platform independence
+ Standard internet and IP based protocols
+ Built-in security features
+ Generic object model
+ Extensible type system
+ Scalability through profiles
+ Migration path from Classic OPC
©2016 Real-Time Innovations, Inc. Confidential.
OPC DA and HDA OPC Commands
OPC DA Alarms and Events
OPC UA Object model
• Nodes and References between nodes
–Nodes have: NodeId, NodeClass, BrowseName, DisplayName,
Description, WriteMask, UserWriteMask
–References – relations between nodes
• Types of Nodes:
–Object – Used to structure the address space. They group other
Nodes. E.g. Variables and Methods always exists within the concept
of an Object
–Variable – represent a value Can be read, written, subscribed by a
client
–Method – Operations that may be called by a client, have arguments
(input, output) and a result
–Events – Notifications that may be subscribed by the client
–Other: ReferenceType, VariableType, DataType, ObjectType, ...
Object
Variables:
x
y
z
Methods:
f()
g()
h()
Events:
^ev1
^ev2
^ev3
©2016 Real-Time Innovations, Inc. Confidential.
Classic OPC UA Communication model
• Data Access
–Client Browse:
• Navigate Address space of sever
• Create Variable Group. Read/Write group
–Client Monitor
• Create Variable Group & Monitor rate, Server push changes to any variables in group
• Alarms & Conditions
–Client subscribes to “all notifications” from server that match a “filter
criteria”
• Historical Data Access (HDA)
–Read historical records. Three ways:
• By time range, for a specific timestamp, as aggregated values
–Insert, replace & delete data from the historical records
©2016 Real-Time Innovations, Inc. Confidential.
OPC UA Subscriptions
• Each Client creates
individual Sessions,
Subscriptions and
MonitoredItems to:
–Get Events
–Observe Variable Value
data changes
• Subscriptions are not
shared between Clients
©2016 Real-Time Innovations, Inc. Confidential.
Subscription Subscription Subscription
OPCUA Subscriptions vs DDS Subscriptions
• OPC UA “subscription”:
–Lives on a specific OPCUA Server
–Is created (dynamically) by a client with
• Client-configured “refresh rate”
• Type “sequence of variables” or “sequence of events”
–Is sent to just one client containing:
• Variables that changed in the last “refresh”
• Events that occurred in the server
Unlike DDS, OPC UA Clients cannot share “subscriptions”:
• No global/shared data space. No databus.
• No multicast
• No Qos
©2016 Real-Time Innovations, Inc. Confidential.
OPC UA / DDS Gateway Standard
©2018 Real-Time Innovations, Inc. Confidential.
OMG Specification
approved March 2018
OPC UA / DDS Gateway
©2016 Real-Time Innovations, Inc. Confidential.
• Existing: OPC UA Server(s)
• Existing: OPC UA Client application(s)
• Existing: DDS Application(s)
• New: OPCUA-DDS Gateway– bridges between OPCUA and DDS
OPC UA
Server
OPCUA-DDS
Gateway
OPCUA
Client
RTPS
DataBus
Global Data
Space
DDS
App
DDS
App
DDS
App
©2018 Real-Time Innovations, Inc.
Specification Overview
The specification defines 5 building blocks that
build up the OPC UA/DDS Gateway:
• OPC UA Type System Mapping
• OPC UA Service Sets Mapping
• OPC UA Subscription Model Mapping
• DDS Type System Mapping
• DDS Global Data Space Mapping
©2018 Real-Time Innovations, Inc.
• OPC UA to DDS / Basic Conformance
 OPC UA Subscription Model Mapping
 OPC UA Type System Mapping
• OPC UA to DDS / Complete Mapping
 Basic Conformance + OPC UA Service Sets Mapping
• DDS to OPC UA / Basic Conformance
 DDS Global Data Space Mapping (except HDA,
9.3.4.4)
 DDS Type System Mapping
• DDS to OPC UA / Complete Conformance
 Basic Conformance + HDA (9.3.4.4)
Four Conformance Points
OPC UA to DDS
©2018 Real-Time Innovations, Inc.
OPC UA/DDS
Gateway
OPC UA
Client
DDS
Participan
t
RTPS
DataBus
DDS
App
DDS
App
DDS
App
OPC UA
Server
OPC UA
Client
OPC UA
Server
OPC UA
Bin
Gateway instantiates OPC UA clients
to connect to each OPC UA Server
OPC UA to DDS—Overview
•Building blocks:
–OPC UA Type System Mapping to DDS
–OPC UA Service Invocation from DDS
–OPC UA Subscription from DDS
©2018 Real-Time Innovations, Inc.
OPC UA Type DDS Type (IDL 4.2)
Boolean boolean
SByte int8
Byte uint8
Int16 int16
UInt16 uint16
Int32 int32
UInt32 uint32
Int64 int64
UInt64 uint64
Float float
Double double
String string
OPC UA Type System Mapping—Primitive Types
• OPC UA primitive types map
easily to DDS/IDL types
©2018 Real-Time Innovations, Inc.
OPC UA complex types mapped to DDS structures
Examples:
struct Guid {
uint32 data1;
uint16 data2;
uint16 data3;
octet data4[8];
};
struct NodeId {
uint16 namespace_index;
NodeIdentifierType identifier;
};
union NodeIdentifierType switch(NodeIdentifierKind) {
case NODEID_NUMERIC:
uint32 ulong_val;
case NODEID_STRING
string str_val;
case NODEID_GUID:
Guid guid_val;
case NODEID_OPAQUE:
sequence<octet> opaque_val
};
©2018 Real-Time Innovations, Inc.
OPC UA Type System Mapping—Variants
union VariantValue
switch(BuiltinTypeKind) {
case BOOL_TYPE:
boolean bool_val;
case SBYTE_TYPE:
int8 sbyte_val;
case BYTE_TYPE:
uint8 byte_val;
...
};
struct Variant {
sequence<uint32> array_dimensions;
sequence<VariantValue> value;
};
©2018 Real-Time Innovations, Inc.
OPC UA Monitored Items & Subscription Mapping
• Monitored Items and Subscriptions are mapped to a
DDS Topic
–DDS Applications can subscribe to the Topic on the DDS
–The Gateway manages everything:
• Connecting to the OPC UA server
• Setting up the monitored items & subscription
• Publishing the OPC Server data to DDS, including type mapping
• The Gateway makes OPC UA Subscriptions scalable
–Unlike OPC UA in DDS many Subscribers can receive data
from the same Publisher
<dds>
<types>...</types>
<ddsopcua_gateway name=”...”>
<opcua_connection name=”...”
server_endpoint_url=”...”>...</opcua_connection>
<domain_participant name=”...” domain_id=”...”>...</domain_participant>
<opcua_to_dds_bridge name=”...”>
<opcua_input name=”...” opcua_connection_ref=”...”>
<subscription_protocol>...</subscription_protocol>
<monitored_items>
<data_item name=”...”></data_item>
<event_item name=”...”></event_item>
</monitored_items>
</opcua_input>
<dds_output name=”...” domain_participant_ref=”...”>...</dds_output>
<mapping>
<assignment dds_output_ref=”...” opcua_input_ref=”...”>...</assignment>
</mapping>
</opcua_to_dds_bridge>
</ddsopcua_gateway> ©2018 Real-Time Innovations, Inc.
OPC UA to DDS— Subscription Configuration
©2018 Real-Time Innovations, Inc.
Service Sets IDL-defined DDS Services
OPC UA Service Sets Mapping
•OPC UA services are a collection of remote
procedure calls that OPC UA Clients can invoke
on the OPC UA Servers
•They are mapped to DDS services using DDS-RPC
Attribute Service Set
 Access to node
attributes (e.g., read the
values)
 DDS applications may
use these interfaces to
access attributes of OPC
UA object.
©2018 Real-Time Innovations, Inc.
@DDSService
interface Attribute {
ResponseHeader read(
in string server_uri, // Identifies OPC
server
out sequence<DataValue> results,
out sequence<DiagnosticInfo>
diagnostic_infos,
in Duration max_age,
in TimestamsToReturn timestamps_to_return,
in sequence<ReadValueId> nodes_to_read);
ResponseHeader write(
in string server_uri, // Identifies OPC
server
out sequence<StatusCode> results,
out sequence<DiagnosticInfo>
diagnostic_infos,
in sequence<WriteValue> nodes_to_write);
Example: OPC UA Attributes Service Set
DDS to OPC UA
©2018 Real-Time Innovations, Inc.
OPC UA/DDS
Gateway
DDS
Participan
t
RTPS
DataBus
DDS
App
DDS
App
DDS
App
OPC UA
Client
OPC UA
Client
OPC UA
Bin
Gateway instantiates one or more
OPC UA Servers per configuration
OPC UA
Server
DDS to OPC UA—Overview
Building blocks:
• DDS Type System Mapping to OPC UA
• DDS Global Data Space Representation in OPC UA
Type System mapping
• DDS primitive and string types are exposed as OPC UA Nodes in
the Gateway OPC UA Server
• DDS Union Types are exposed to OPC UA VariableType Union
containing Variables of each specific discriminator value
• DDS Structured Types are exposed in two ways:
–As as OPC UA Structure DataType (ExtensionObject)
• Provides access to all fields as a whole in serialized form
–As as OPC UA Complex VariableType containing Variables for each field
• Provides convenient individual access to each field that can be processed by
Generic OPC UA Clients
• DDS Array and Sequence types are exposed two ways:
–As a whole
–As a OPC UA VariableType Object with nested Variables for each element
with names automatically created from the structure name and index
©2018 Real-Time Innovations, Inc. Confidential.
Example: Mapping of struct “ShapeType”
©2018 Real-Time Innovations, Inc. Confidential.
// DDS Type definition using IDL
struct ShapeType {
@key string color;
uint32 x;
uint32 y;
uint32 shapesize;
};
VariableTypes::ShapeTypeVariableTyp
e
Variables::color
BrowseName = “color”
DataType = String
Variables::x
BrowseName = “x”
DataType = Int32
Variables::y
BrowseName = “y”
DataType = Int32
Variables::shapesize
BrowseName = “shapesize”
DataType = Int32
OPC UA representation as complex VariableType
DataTypes::ShapeTypeDataType
BrowseName =
“ShapeTypeDataType”
+HasTypeDefinition
OPC UA representation as Structure DataType
©2018 Real-Time Innovations, Inc.
DDS Global Data Space Representation
DDS Global Data Space elements:
• Domain
–Topic
• Topic Instances (Keys)
are exposed as Nodes in the Address
Space of the Gateway OPC UA Server
Domain with domain_id=0 has two DDS Topics: “Square” and “Circle”
• Topic “Square” has instance “BLUE”
• Topic “Triangle” has instances “GREEN” and “ORANGE”
Conclusion
Edge / Machine Domain
DDS Machine Domain (Edge)
OPCU
A
DDS
Gatewa
y
DDS
OPCU
A
OPCU
A
DD
S
OPCU
A
Gatewa
y
DDS
OPCU
A
OPCU
A
DD
S
DDS Control Domain (Fog)
DD
S
OPCU
A
Gatewa
y
DDS
OPCU
A
OPCU
A
DD
S
Scalable Architecture Edge to Cloud
Machine Domain (Edge)
DDS Central Domain (Fog)
DDS Control Domain (Fog)
DDS Admin Domain (Cloud)
Devices, Machine Elements, Sensors
System Supervision, Monitoring, Processing, Local Storage, Historian
Analytics, Trends, Elasticity, Bug Data, Enterprise Integration
System Supervision, Monitoring, Processing, Local Storage, Historian
DDS/OPC-UA Prototype and Demo
©2018 Real-Time Innovations, Inc. Confidential.
Ethernet
Powerlink
GPIO
Analog
Codesys Control
OPC UA Server
POWERLINK MN
UltraZed-EG SOM
OPC-UA to DDS
Gateway
Mocana Security
TPM 2.0
Edge Node
HW TBD (SOC-E?)
DDS
Endpoint
IR Barrier
3.3V, GND,
Signal (IN)
GPIO Pin TBD
3.3V, GND,
Signal (OUT)
GPIO Pin 417
UaExpert
PLC
Motor
Switch
SwitchRTI Admin
Console
https://www.rti.com/blog/announcing-the-opc-ua-dds-gateway-standard
Simplicity, Scalability, Performance
• Normally accessing OPC UA data is quite complex…
–Define subscription
–Define Monitored Items
–Read data as an array of “Variants,” address via indices
–Use untyped API’s…
• With the DDS Gateway it is simple!
–Define the DDS data-types in XML
–List and map the OPC UA monitored items in the XML file
–Use DDS API to subscribe to the Topic…
©2017 Real-Time Innovations, Inc. Confidential.
And added benefits of DDS Performance, Scalability and QoS
More information
www.rti.com
http://portals.omg.org/dds/
https://community.rti.com/
https://www.iiconsortium.org/IICF.htm
https://www.slideshare.net/GerardoPardo/presentations
https://www.rti.com/blog/announcing-the-opc-ua-dds-
gateway-standard
Thank You!

More Related Content

PDF
Spanning Tree Protocol Cheat Sheet
PDF
DDS Security
PPTX
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
PDF
エンタープライズITでのOpenID Connect利用ガイドライン
PDF
Oracle Integration Cloud 概要(20200507版)
PPTX
SSH超入門
PDF
Keycloak開発入門
PDF
Prometeusについてはじめてみよう / Let's start Prometeus
Spanning Tree Protocol Cheat Sheet
DDS Security
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
エンタープライズITでのOpenID Connect利用ガイドライン
Oracle Integration Cloud 概要(20200507版)
SSH超入門
Keycloak開発入門
Prometeusについてはじめてみよう / Let's start Prometeus

What's hot (20)

PDF
詳説データベース輪読会: 分散合意その2
PDF
SMTPのSTARTTLSにおけるTLSバージョンについて
PPTX
【第5回jduc】【勉強会】dynamics 365 web apiとの接し方
PDF
Keycloak拡張入門
PDF
The Data Distribution Service
PDF
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
PDF
Distributed Tracing with Jaeger
PDF
Sentry - An Introduction
PDF
FIWARE Global Summit - Implementing OPC‐UA with FIWARE Orion Context Broker
PPTX
Storage
PPTX
Tail f - Why ConfD
ODP
OAuth2 - Introduction
PDF
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
PDF
月間10億pvを支えるmongo db
PDF
Serf / Consul 入門 ~仕事を楽しくしよう~
PDF
ブロックチェーンPoCにおける開発リードタイム短縮のポイント
PDF
Netmanias L2,L3 Training (3) L2, L3 QoS
PPTX
Introduction to RTI DDS
PPTX
Chapter 2 : Configuring a network operating system
詳説データベース輪読会: 分散合意その2
SMTPのSTARTTLSにおけるTLSバージョンについて
【第5回jduc】【勉強会】dynamics 365 web apiとの接し方
Keycloak拡張入門
The Data Distribution Service
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Distributed Tracing with Jaeger
Sentry - An Introduction
FIWARE Global Summit - Implementing OPC‐UA with FIWARE Orion Context Broker
Storage
Tail f - Why ConfD
OAuth2 - Introduction
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
月間10億pvを支えるmongo db
Serf / Consul 入門 ~仕事を楽しくしよう~
ブロックチェーンPoCにおける開発リードタイム短縮のポイント
Netmanias L2,L3 Training (3) L2, L3 QoS
Introduction to RTI DDS
Chapter 2 : Configuring a network operating system
Ad

Similar to Deep Dive into the OPC UA / DDS Gateway Specification (20)

PDF
Introduction to DDS: Context, Information Model, Security, and Applications.
PDF
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
PPTX
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
PDF
Industrial Internet of Things: Protocols an Standards
PDF
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
PDF
A Converged Approach to Standards for Industrial Automation
PPTX
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
PPTX
Data Distribution Service Security and the Industrial Internet of Things
PDF
RCA OCORA: Safe Computing Platform using open standards
PPTX
Fiware: Connecting to robots
PPTX
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
PDF
RCA OCORA: Safe Computing Platform using open standards
PPT
Is Your Power Utility Smart Enough to Survive Another Decade
PDF
What Does Interoperability Mean for the IoT?
PPTX
Fiware - communicating with ROS robots using Fast RTPS
PPTX
Embedded Security and the IoT – Challenges, Trends and Solutions
PDF
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
PDF
Industrial IOT Data Connectivity Standard
PPTX
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
PDF
Real-Time Communications and the Industrial Internet of Things
Introduction to DDS: Context, Information Model, Security, and Applications.
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
Industrial Internet of Things: Protocols an Standards
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
A Converged Approach to Standards for Industrial Automation
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
Data Distribution Service Security and the Industrial Internet of Things
RCA OCORA: Safe Computing Platform using open standards
Fiware: Connecting to robots
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
RCA OCORA: Safe Computing Platform using open standards
Is Your Power Utility Smart Enough to Survive Another Decade
What Does Interoperability Mean for the IoT?
Fiware - communicating with ROS robots using Fast RTPS
Embedded Security and the IoT – Challenges, Trends and Solutions
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
Industrial IOT Data Connectivity Standard
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Real-Time Communications and the Industrial Internet of Things
Ad

More from Gerardo Pardo-Castellote (20)

PDF
DDS-Security 1.2 - What's New? Stronger security for long-running systems
PDF
DDS, the US Navy, and the Need for Distributed Software
PDF
DDS-TSN OMG Request for Proposals (RFP)
PPTX
Overview of the DDS-XRCE specification
PDF
DDS-Security Interoperability Demo - March 2018
PDF
OPC UA/DDS Gateway version 1.0 Beta
PDF
DDS for eXtremely Resource Constrained Environments 1.0 Beta
PDF
DDS-Security Interoperability Demo - December 2017
PDF
DDS-Security Interoperability Demo - September 2017
PDF
Extensible Types for DDS (DDS-XTYPES) version 1.2
PDF
DDS-Security version 1.1
PDF
Interface Definition Language (IDL) version 4.2
PDF
DDS Security Specification version 1.0
PDF
DDS for eXtremely Resource Constrained Environments
PDF
DDS-XRCE - Revised Submission Presentation (September 2017)
PDF
DDS-XRCE (Extremely Resource Constrained Environments)
PDF
Using DDS to Secure the Industrial Internet of Things (IIoT)
PDF
The Platform for the Industrial Internet of Things (IIoT)
PPTX
Web Enabled DDS - London Connext DDS Conference
PPTX
Remote Procedure Call over DDS - London Connext DDS Conference
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS, the US Navy, and the Need for Distributed Software
DDS-TSN OMG Request for Proposals (RFP)
Overview of the DDS-XRCE specification
DDS-Security Interoperability Demo - March 2018
OPC UA/DDS Gateway version 1.0 Beta
DDS for eXtremely Resource Constrained Environments 1.0 Beta
DDS-Security Interoperability Demo - December 2017
DDS-Security Interoperability Demo - September 2017
Extensible Types for DDS (DDS-XTYPES) version 1.2
DDS-Security version 1.1
Interface Definition Language (IDL) version 4.2
DDS Security Specification version 1.0
DDS for eXtremely Resource Constrained Environments
DDS-XRCE - Revised Submission Presentation (September 2017)
DDS-XRCE (Extremely Resource Constrained Environments)
Using DDS to Secure the Industrial Internet of Things (IIoT)
The Platform for the Industrial Internet of Things (IIoT)
Web Enabled DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
AI in Product Development-omnex systems
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Introduction to Artificial Intelligence
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Transform Your Business with a Software ERP System
PDF
Nekopoi APK 2025 free lastest update
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
AI in Product Development-omnex systems
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Online Work Permit System for Fast Permit Processing
Introduction to Artificial Intelligence
Wondershare Filmora 15 Crack With Activation Key [2025
PTS Company Brochure 2025 (1).pdf.......
CHAPTER 2 - PM Management and IT Context
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms I-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
How to Migrate SBCGlobal Email to Yahoo Easily
Transform Your Business with a Software ERP System
Nekopoi APK 2025 free lastest update
Operating system designcfffgfgggggggvggggggggg
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx
L1 - Introduction to python Backend.pptx
How Creative Agencies Leverage Project Management Software.pdf

Deep Dive into the OPC UA / DDS Gateway Specification

  • 1. A Deep Dive into the DDS/OPC UA Gateway Specification Gerardo Pardo-Castellote, Ph.D. Chief Technology Officer, RTI May 2018 Fernando Garcia-Aranda Senior Software Engineer, RTI
  • 2. Outline • Motivation • Use-Cases • OPC UA Concepts • DDS Concepts • OPC UA / DDS Gateway • Conclusions ©2018 Real-Time Innovations, Inc. Confidential.
  • 3. ©2017 Real-Time Innovations, Inc. Confidential. DECENTRALIZED PEER TO PEER SYSTEMS
  • 4. How to connect and integrate these systems? • Performance • Scalability • Reliability • Redundancy • Fail over • Security • Heterogeneity • Domain-Specific Technologies • Legacy Systems ©2018 Real-Time Innovations, Inc. Confidential.
  • 5. Industrial Internet Consortium: 270+ Companies, 30+ Countries IIC Founding and Contributing Members The World’s Largest IoT Consortium The IIC created the IIoT market
  • 6. IIC Core Connectivity Standards Endpoints Other Connectivity Technologies Connectivity Core Standards (baseline) Gateway Other EndpointsFunctional Domain Other Functional Domain Gateway
  • 7. IIoT Connectivity Stack Model Connectivity Information Networking Information (Data in Context) Participant X Transport Link Framework Distributed Data Interoperability and Management Physical Network Participant Y Data (State, Events, Streams) Messages Packets Frames Bits Transport Link Framework Distributed Data Interoperability and Management Physical Network Technical Interoperability (opaque blocks) Syntactic Interoperability (data structures) Semantic Interoperability (data context)
  • 8. Connectivity Transport Layer Transport Link Distributed Data Interoperability & Management Framework Connectivity Transport Functions Physical Network Messaging Protocol Endpoint Addressing Connectednes s Prioritization Timing & Synchronizatio n Security Communication Modes Technical Interoperability For IIC Member use only. Portions ©2017 Real-Time Innovations, Inc.
  • 9. Connectivity Framework Layer Transport Link Distributed Data Interoperability & Management Framework Quality of Servic e Securit y Publish- Subscribe Request-Reply Discovery Data Resource Model Id and Addressing Data Type System Lifecycle (CRUD) Exception Handling State Management Connectivity Framework Functions Physical Network API Governance Syntactic Interoperability
  • 10. Connectivity Standards For IIC Member use only. Portions ©2017 Real-Time Innovations, Inc. Manufacturing Origin TSN / Ethernet (802.1, 802.3) DDS Wireless PAN (802.15) Wireless 2G/3G/LTE (3GPP) Wireless LAN (802.11 Wi-Fi) Internet Protocol (IP) CoAP MQT T Web Services Wireless Wide Area (802.16) HTTPDDSI-RTPS oneM2M OPC-UA OPC-UA Bin Telecommunications Origin UDP TCP TC P Transport Link Framework Distributed Data Interoperability and Management Physical Network Healthcare TransportationManufacturing… … Energy & Utilities
  • 11. Selection Criteria ©2017 Real-Time Innovations, Inc Core Standard Criterion DDS Web Services OPC-UA oneM2M 1 Provide syntactic interoperability ✔ Need XML or JSON ✔ ✔ 2 Open standard with strong independent, international governance ✔ ✔ ✔ ✔ 3 Horizontal and neutral in its applicability across industries ✔ ✔ ✔ ✔ 4 Stable and proven across multiple vertical industries Software Integration & Autonomy ✔ Manufacturing Smart City Pilots* 5 Have standards-defined Core Gateways to all other core connectivity standards Web Services, OPC-UA, oneM2M* DDS, OPC-UA, oneM2M Web Services, DDS, oneM2M* Web Services, DDS* 6 Meet the connectivity framework functional requirements ✔ ✗ Pub-Sub in development 7 Meet non-functional requirements of performance, scalability, reliability, resilience ✔ ✗ Real-time in development Reports not yet documented or public* = work in progress , ✔ = supported, ✗ = not supported GREEN = Gating Criteria
  • 12. DDS and the Industrial Internet of Things • Reliability: Severe consequences if offline for 5ms (or 5 min) • Real-time: measure in ms or µs • Interface scale: 10+ applications/teams • Dataflow complexity: data has many destinations • Architecture: Next generation IIoT Deployed in 1000s of Systems Industrial IoT Systems Industries: Energy, Industrial Control, Transportation, Healthcare, Defense 3+ Yes?
  • 14. DDS DataBus Scale access to OPC UA devices OPC UA Server OPC UA/DDS Gateway OPC UA Client DDS Participan t Device Supporting OPC UA DDS Participan t DDS Participan t DDS Participan t OPC UA as a universal “device driver”
  • 15. Use SCADA Tools in DDS systems ©2017 Real-Time Innovations, Inc. Confidential. OPC UA Client OPC UA/DDS Gateway OPC UA Server DDS Participan t SCADA tool supporting OPC UA Many Industrial Automation Tools support a OPC UA Interface DDS DataBus DDS Participan t DDS Participan t DDS Participan t
  • 17. DDS Standard family DDS v 1.4 RTPS v2.2DDS-SECURITY DDS-RPC DDS-XTYPES Application UDP TCP DTLS TLS DDS-C++ DDS-JAVA DDS-IDL-C DDS-IDL-C# SHARED-MEMORYIP HTTP IDL4. TSN Ethernet DDS-WEB DDS-OPCUA OPC/ TPC
  • 18. Timeline ©2018 Real-Time Innovations, Inc. Confidential. 2004 2006 2007 2008 2010 2012 2014 2016 20182017201520132005 2009 2011
  • 19. 4th Gen Middleware: Data-Centric Publish-Subscribe Broadcast Publish/Subscribe Fieldbus, CANbus, SOMEIP, OPC UA Pub-Sub Data-Centric Publish-Subscribe DDS (Data-Distribution Service) Brokered Publish/Subscribe Queuing MQTT, XMPP AMQP Broker ESB Daemon Point-to-Point Client/Server TCP, REST, WS*, OPC UA DataBus Global Data Space
  • 20. Virtual Global Data Space Topic A QoS Topic C QoS Topic D QoS DDS DOMAIN Persistence Service Recording Service CRUD operations Topic B : “Turbine State” Source (Key) Speed Power Phase WPT1 37.4 122.0 -12.20 WPT2 10.7 74.0 -12.23 WPTN 50.2 150.07 -11.98 QoS
  • 21. Data-Centric Communications Model ©2015 Real-Time Innovations, Inc. Confidential. • Participants scope the global data space (domain) • Topics define the data-objects (collections of subjects) • DataWriters publish data on Topics • DataReaders subscribe to data on Topics • QoS Policies are used configure the system • Listeners are used to notify the application of events Reader “Alarm” Domain ParticipantWriter “Alarm” Domain Participant Listener Offered QoS Listener Got new data Requested QoS New subscriber! Topic2 Topic3 Request <= Offered QoS compatibility checking and run-time monitoring “Alarm” Topic
  • 22. Quality of Service (QoS) Policies QoS Policy DURABILITY HISTORY LIFESPAN WRITER DATA LIFECYCLE READER DATA LIFECYCLE ENTITY FACTORY RESOURCE LIMITS RELIABILITY TIME BASED FILTER DEADLINE CONTENT FILTERS Cache UserQoS Delivery Presentation Availability Resources Transport QoS Policy USER DATA TOPIC DATA GROUP DATA PARTITION PRESENTATION DESTINATION ORDER OWNERSHIP OWNERSHIP STRENGTH LIVELINESS LATENCY BUDGET TRANSPORT PRIORITY
  • 23. RTPS Protocol optimized for IIOT • Full peer-to-peer protocol –No required brokers or servers • Adaptable via QoS –Reliability, timeouts, message priority • Native reliable multicast support –Uses transport multicast, if available, else unicast UDP • Robust to disconnects –Maintains session above (UDP) transport • Efficient data encapsulation –Binary XCDR • Built-in availability and durability –Durable & Persistent data, Historical cache, Failover support © 2010 Real-Time Innovations, Inc. RTPS
  • 24. Data and Service Definition DDS-XTYPES and IDL4 standards • Logical Data Model and Service Interfaces –Portable: Language-Independent Type System –Safe: Rules for Type Compatibility –Flexible: Types/Interfaces expressed in IDL or XML • Interoperable System Evolution –Types/Services changes (add, remove, reorder, …) –Incremental/Partial upgrades • Dynamic API’s to access data and types –Systems that adapt at run-time • Efficient binary serialization @mutable struct ShapeType { @key string color; @range(0, 200) long x; @range(0, 250) long y; @optional @min(5) float size; }; struct ShapeTypeExt : ShapeType { @unit(“meter”) long x; }; /* Service definition */ enum Command { START, STOP }; @service interface RobotControl { void command(Command com); float setSpeed(float speed) raises (TooFast); float getSpeed(); };
  • 25. DDS Security Goals • Authenticate subjects • Enforce access control to data objects • Ensure data integrity • Ensure data confidentiality • Enforce non-repudiation • Provide availability of data • Create auditable security logs ….while maintaining high performance DDS DataBus Connext DDS App 1 Connext DDS App 2 Key Management Authentication Logging Cryptography Access Control
  • 26. Complete C++ Example enum TempUnit { CELSIUS, FAHRENHEIT, KELVIN }; struct TempType { @key short id; float temp; TempUnit unit; }; dds::domain::DomainParticipant dp(0); dds::topic::Topic<TempType> topic(dp, "TTempSensor"); dds::pub::Publisher pub(dp); dds::pub::DataWriter<TempType> writer(pub, topic); TempType sensor(1, 0, 0, TempUnit::CELSIUS); for ( int i = 0; i < 100; ++ i, ) { sensor.temp( i%100 ); writer.write(sensor); std::this_thread::sleep_for(std::chrono::seconds(1)); } dds::domain::DomainParticipant dp(0); dds::topic::Topic<TempType> topic(dp, "TTempSensor"); dds::sub::Subscriber sub(dp); dds::sub::DataReader<TempType> reader(sub, topic); dds::sub::cond::ReadCondition condition(reader, dds::sub::status::DataState::any()); dds::core::cond::WaitSet waitset; waitset += condition; while (true) { waitset.wait(dds::core::Duration(4)) auto samples = reader.take(); for (auto s : samples) { std::cout << s.data() << std::endl; } } // Subscriber Application: // Publisher Application: // IDL
  • 27. Connext DDS factsheet • Architecture: Peer-to-Peer, no Broker, Layered (Hierarchical) Databus. • Communication Patterns: Publish/Subscribe, Request/Reply, Queuing • Payload: Strongly-defined types, opaque, mixed. Static/Dynamic. • Filtering: Content filter, time filter, supports Publisher side filtering. • Quality of Service: Extensive (Reliability, History, Liveliness, etc.) • Transports: UDP (multicast), TCP, TLS, DTLS, shared memory, pluggable custom. Transparent Mobility. • Security: Fine grained security per Topic, transport-level security. • Languages: C, C++, Java, .NET, ADA. Via connector: JS, Python, Lua.
  • 29. OPC UA Standards ©2018 Real-Time Innovations, Inc. Confidential. Part I - Overview & Concepts Part 2 – Security Model Part 3 – Address Space Model Part 4 – Services Part 5 – Information Model Part 6 – Service Mapping Part 7 – Profiles Part 8 – Data Access Part 9 – Alarms & Conditions Part 10 – Programs Part 11 – Historical Access Part 12 – Discovery Part 13 – Aggregates Part 14 – Publish-Subscribe 5.4 – Discovery 5.5 – Secure Channel 5.6 – Session 5.7 – Node Management 5.8 – View 5.9 – Query 5.10 – Attribute 5.12 – Monitored Item 5.13 – Subscription 5.11 – Method 5.1-5.3 – ... Classic OPC In Progress
  • 30. Timeline ©2018 Real-Time Innovations, Inc. Confidential. 1996 1998 1999 2000 2002 2004 20051997 2001 2003 2006 2007 2008 2010 2012 2014 2016 20182017201520132009 2011 TBD OPC Classic (OLE for Process Control) OPC UA (Open Platform Communication Unified Architecture)
  • 31. ©2018 Real-Time Innovations, Inc. OPC UA Basics • Client/Server Model –Servers expose Address Space –Clients access information using services • Object-oriented meta-model –Used for sensors, actuators… –Information as nodes in Address Space –Nodes are organized hierarchically • OPC UA Services: –Connection management –Node management –View, Query –Attribute, Method –Subscription, Monitor items
  • 32. OPC UA Basics OPC UA = established OPC features + Platform independence + Standard internet and IP based protocols + Built-in security features + Generic object model + Extensible type system + Scalability through profiles + Migration path from Classic OPC ©2016 Real-Time Innovations, Inc. Confidential. OPC DA and HDA OPC Commands OPC DA Alarms and Events
  • 33. OPC UA Object model • Nodes and References between nodes –Nodes have: NodeId, NodeClass, BrowseName, DisplayName, Description, WriteMask, UserWriteMask –References – relations between nodes • Types of Nodes: –Object – Used to structure the address space. They group other Nodes. E.g. Variables and Methods always exists within the concept of an Object –Variable – represent a value Can be read, written, subscribed by a client –Method – Operations that may be called by a client, have arguments (input, output) and a result –Events – Notifications that may be subscribed by the client –Other: ReferenceType, VariableType, DataType, ObjectType, ... Object Variables: x y z Methods: f() g() h() Events: ^ev1 ^ev2 ^ev3 ©2016 Real-Time Innovations, Inc. Confidential.
  • 34. Classic OPC UA Communication model • Data Access –Client Browse: • Navigate Address space of sever • Create Variable Group. Read/Write group –Client Monitor • Create Variable Group & Monitor rate, Server push changes to any variables in group • Alarms & Conditions –Client subscribes to “all notifications” from server that match a “filter criteria” • Historical Data Access (HDA) –Read historical records. Three ways: • By time range, for a specific timestamp, as aggregated values –Insert, replace & delete data from the historical records ©2016 Real-Time Innovations, Inc. Confidential.
  • 35. OPC UA Subscriptions • Each Client creates individual Sessions, Subscriptions and MonitoredItems to: –Get Events –Observe Variable Value data changes • Subscriptions are not shared between Clients ©2016 Real-Time Innovations, Inc. Confidential. Subscription Subscription Subscription
  • 36. OPCUA Subscriptions vs DDS Subscriptions • OPC UA “subscription”: –Lives on a specific OPCUA Server –Is created (dynamically) by a client with • Client-configured “refresh rate” • Type “sequence of variables” or “sequence of events” –Is sent to just one client containing: • Variables that changed in the last “refresh” • Events that occurred in the server Unlike DDS, OPC UA Clients cannot share “subscriptions”: • No global/shared data space. No databus. • No multicast • No Qos ©2016 Real-Time Innovations, Inc. Confidential.
  • 37. OPC UA / DDS Gateway Standard
  • 38. ©2018 Real-Time Innovations, Inc. Confidential. OMG Specification approved March 2018
  • 39. OPC UA / DDS Gateway ©2016 Real-Time Innovations, Inc. Confidential. • Existing: OPC UA Server(s) • Existing: OPC UA Client application(s) • Existing: DDS Application(s) • New: OPCUA-DDS Gateway– bridges between OPCUA and DDS OPC UA Server OPCUA-DDS Gateway OPCUA Client RTPS DataBus Global Data Space DDS App DDS App DDS App
  • 40. ©2018 Real-Time Innovations, Inc. Specification Overview The specification defines 5 building blocks that build up the OPC UA/DDS Gateway: • OPC UA Type System Mapping • OPC UA Service Sets Mapping • OPC UA Subscription Model Mapping • DDS Type System Mapping • DDS Global Data Space Mapping
  • 41. ©2018 Real-Time Innovations, Inc. • OPC UA to DDS / Basic Conformance  OPC UA Subscription Model Mapping  OPC UA Type System Mapping • OPC UA to DDS / Complete Mapping  Basic Conformance + OPC UA Service Sets Mapping • DDS to OPC UA / Basic Conformance  DDS Global Data Space Mapping (except HDA, 9.3.4.4)  DDS Type System Mapping • DDS to OPC UA / Complete Conformance  Basic Conformance + HDA (9.3.4.4) Four Conformance Points
  • 42. OPC UA to DDS
  • 43. ©2018 Real-Time Innovations, Inc. OPC UA/DDS Gateway OPC UA Client DDS Participan t RTPS DataBus DDS App DDS App DDS App OPC UA Server OPC UA Client OPC UA Server OPC UA Bin Gateway instantiates OPC UA clients to connect to each OPC UA Server OPC UA to DDS—Overview •Building blocks: –OPC UA Type System Mapping to DDS –OPC UA Service Invocation from DDS –OPC UA Subscription from DDS
  • 44. ©2018 Real-Time Innovations, Inc. OPC UA Type DDS Type (IDL 4.2) Boolean boolean SByte int8 Byte uint8 Int16 int16 UInt16 uint16 Int32 int32 UInt32 uint32 Int64 int64 UInt64 uint64 Float float Double double String string OPC UA Type System Mapping—Primitive Types • OPC UA primitive types map easily to DDS/IDL types
  • 45. ©2018 Real-Time Innovations, Inc. OPC UA complex types mapped to DDS structures Examples: struct Guid { uint32 data1; uint16 data2; uint16 data3; octet data4[8]; }; struct NodeId { uint16 namespace_index; NodeIdentifierType identifier; }; union NodeIdentifierType switch(NodeIdentifierKind) { case NODEID_NUMERIC: uint32 ulong_val; case NODEID_STRING string str_val; case NODEID_GUID: Guid guid_val; case NODEID_OPAQUE: sequence<octet> opaque_val };
  • 46. ©2018 Real-Time Innovations, Inc. OPC UA Type System Mapping—Variants union VariantValue switch(BuiltinTypeKind) { case BOOL_TYPE: boolean bool_val; case SBYTE_TYPE: int8 sbyte_val; case BYTE_TYPE: uint8 byte_val; ... }; struct Variant { sequence<uint32> array_dimensions; sequence<VariantValue> value; };
  • 47. ©2018 Real-Time Innovations, Inc. OPC UA Monitored Items & Subscription Mapping • Monitored Items and Subscriptions are mapped to a DDS Topic –DDS Applications can subscribe to the Topic on the DDS –The Gateway manages everything: • Connecting to the OPC UA server • Setting up the monitored items & subscription • Publishing the OPC Server data to DDS, including type mapping • The Gateway makes OPC UA Subscriptions scalable –Unlike OPC UA in DDS many Subscribers can receive data from the same Publisher
  • 48. <dds> <types>...</types> <ddsopcua_gateway name=”...”> <opcua_connection name=”...” server_endpoint_url=”...”>...</opcua_connection> <domain_participant name=”...” domain_id=”...”>...</domain_participant> <opcua_to_dds_bridge name=”...”> <opcua_input name=”...” opcua_connection_ref=”...”> <subscription_protocol>...</subscription_protocol> <monitored_items> <data_item name=”...”></data_item> <event_item name=”...”></event_item> </monitored_items> </opcua_input> <dds_output name=”...” domain_participant_ref=”...”>...</dds_output> <mapping> <assignment dds_output_ref=”...” opcua_input_ref=”...”>...</assignment> </mapping> </opcua_to_dds_bridge> </ddsopcua_gateway> ©2018 Real-Time Innovations, Inc. OPC UA to DDS— Subscription Configuration
  • 49. ©2018 Real-Time Innovations, Inc. Service Sets IDL-defined DDS Services OPC UA Service Sets Mapping •OPC UA services are a collection of remote procedure calls that OPC UA Clients can invoke on the OPC UA Servers •They are mapped to DDS services using DDS-RPC
  • 50. Attribute Service Set  Access to node attributes (e.g., read the values)  DDS applications may use these interfaces to access attributes of OPC UA object. ©2018 Real-Time Innovations, Inc. @DDSService interface Attribute { ResponseHeader read( in string server_uri, // Identifies OPC server out sequence<DataValue> results, out sequence<DiagnosticInfo> diagnostic_infos, in Duration max_age, in TimestamsToReturn timestamps_to_return, in sequence<ReadValueId> nodes_to_read); ResponseHeader write( in string server_uri, // Identifies OPC server out sequence<StatusCode> results, out sequence<DiagnosticInfo> diagnostic_infos, in sequence<WriteValue> nodes_to_write); Example: OPC UA Attributes Service Set
  • 52. ©2018 Real-Time Innovations, Inc. OPC UA/DDS Gateway DDS Participan t RTPS DataBus DDS App DDS App DDS App OPC UA Client OPC UA Client OPC UA Bin Gateway instantiates one or more OPC UA Servers per configuration OPC UA Server DDS to OPC UA—Overview Building blocks: • DDS Type System Mapping to OPC UA • DDS Global Data Space Representation in OPC UA
  • 53. Type System mapping • DDS primitive and string types are exposed as OPC UA Nodes in the Gateway OPC UA Server • DDS Union Types are exposed to OPC UA VariableType Union containing Variables of each specific discriminator value • DDS Structured Types are exposed in two ways: –As as OPC UA Structure DataType (ExtensionObject) • Provides access to all fields as a whole in serialized form –As as OPC UA Complex VariableType containing Variables for each field • Provides convenient individual access to each field that can be processed by Generic OPC UA Clients • DDS Array and Sequence types are exposed two ways: –As a whole –As a OPC UA VariableType Object with nested Variables for each element with names automatically created from the structure name and index ©2018 Real-Time Innovations, Inc. Confidential.
  • 54. Example: Mapping of struct “ShapeType” ©2018 Real-Time Innovations, Inc. Confidential. // DDS Type definition using IDL struct ShapeType { @key string color; uint32 x; uint32 y; uint32 shapesize; }; VariableTypes::ShapeTypeVariableTyp e Variables::color BrowseName = “color” DataType = String Variables::x BrowseName = “x” DataType = Int32 Variables::y BrowseName = “y” DataType = Int32 Variables::shapesize BrowseName = “shapesize” DataType = Int32 OPC UA representation as complex VariableType DataTypes::ShapeTypeDataType BrowseName = “ShapeTypeDataType” +HasTypeDefinition OPC UA representation as Structure DataType
  • 55. ©2018 Real-Time Innovations, Inc. DDS Global Data Space Representation DDS Global Data Space elements: • Domain –Topic • Topic Instances (Keys) are exposed as Nodes in the Address Space of the Gateway OPC UA Server Domain with domain_id=0 has two DDS Topics: “Square” and “Circle” • Topic “Square” has instance “BLUE” • Topic “Triangle” has instances “GREEN” and “ORANGE”
  • 57. Edge / Machine Domain DDS Machine Domain (Edge) OPCU A DDS Gatewa y DDS OPCU A OPCU A DD S OPCU A Gatewa y DDS OPCU A OPCU A DD S DDS Control Domain (Fog) DD S OPCU A Gatewa y DDS OPCU A OPCU A DD S
  • 58. Scalable Architecture Edge to Cloud Machine Domain (Edge) DDS Central Domain (Fog) DDS Control Domain (Fog) DDS Admin Domain (Cloud) Devices, Machine Elements, Sensors System Supervision, Monitoring, Processing, Local Storage, Historian Analytics, Trends, Elasticity, Bug Data, Enterprise Integration System Supervision, Monitoring, Processing, Local Storage, Historian
  • 59. DDS/OPC-UA Prototype and Demo ©2018 Real-Time Innovations, Inc. Confidential. Ethernet Powerlink GPIO Analog Codesys Control OPC UA Server POWERLINK MN UltraZed-EG SOM OPC-UA to DDS Gateway Mocana Security TPM 2.0 Edge Node HW TBD (SOC-E?) DDS Endpoint IR Barrier 3.3V, GND, Signal (IN) GPIO Pin TBD 3.3V, GND, Signal (OUT) GPIO Pin 417 UaExpert PLC Motor Switch SwitchRTI Admin Console https://www.rti.com/blog/announcing-the-opc-ua-dds-gateway-standard
  • 60. Simplicity, Scalability, Performance • Normally accessing OPC UA data is quite complex… –Define subscription –Define Monitored Items –Read data as an array of “Variants,” address via indices –Use untyped API’s… • With the DDS Gateway it is simple! –Define the DDS data-types in XML –List and map the OPC UA monitored items in the XML file –Use DDS API to subscribe to the Topic… ©2017 Real-Time Innovations, Inc. Confidential. And added benefits of DDS Performance, Scalability and QoS