Semantic-Data
supporting contextual data processing outside the OPC UA Server session. It presents all the major contributors processing the data in the context of UA Information Model
.Semantic-Data
may be directly used by the following classes of actors:Address Space Management
- part of the OPC UA Server application optionally supporting integration services.UA Client
- custom OPC UA Client
supporting integration services.OOI Reactive Application
- an application program processing the data in the context of the OPC UA metadata without the OPC UA Server session.Address Space Management
is a typical part of any OPC UA Server. It is responsible for:Data Binding
- managing of the links to the underlying process Raw Data
Raw Data
is made available to the clients in. Instantiation of this context depends on an application domain unique OPC UA Information Model and is governed by the OPC UA Address Space Model rules.UA Server Services
accesses data and metadata and makes them available to the UA Client
using a set of non-expandable services compliant with the specification.Address Space Management
activity includes also the creation of data bindings with the underlying real-time process (Raw Data
). Data binding
is responsible for coupling raw data representing the current state/behavior of the underlying real-time process with the appropriate nodes in the address space. Data Binding
is, therefore, the process that establishes a connection between the Variable node and selected data source. The Value attribute of the Variable node reflects changes when made. It can also mean that when the Value attribute of the Variable is changed, the underlying data will reflect that change.Address Space Management
activity may also provide systems integration services supporting the process of bringing together the component external applications (not OPC UA Server Services
aware) into one system and ensuring that the applications function together as a whole. It includes but is not limited to linking together different software applications physically or functionally on the basis of common data and metadata compliant with the applied OPC UA Information Models. These services should provide the following functions:Address Space Management
could expose supplementary UA Information Model
aimed to control remotely the data exchange channels by an OPC UA Client
customized to be compliant with this model.Raw Data
may also be processed by any Application
simultaneously. This kind of activity is outside the presented concept scope.OPC UA Client
shall be compliant with Part 4. It consumes all not optional services required by Part 4 of the specification and must be compliant with the selected existing profile. To maintain data on the OPC UA Server side it must establish the session. In this case, the applications must follow the interactive behavioral model, because the client actively selects and pulls the data source (OPC UA Server) for more information. The session enables the OPC UA Server cyclically updating the selected data on the OPC UA Client side.OPC UA Client
activity may also provide systems integration services supporting the process of bringing together the component external applications (not OPC UA Server Services aware) into one system and ensuring that the applications function together as a whole. It includes but is not limited to linking together different software applications physically or functionally on the basis of common data and metadata compliant with the applied OPC UA Information Models. These services should provide the following functions:OPC UA Client
may also support importing and exporting services of the data to external semantics (Raw Data).Note: because the OPC UA Client selects the data for further processing over a session and in context of metadata the data semantics is preserved and can be processes meaningfully.
OOI Reactive Application
is an application transferring the Semantic-Data
over the network using message centric transport of the strong typed data standardized by the OPC UA Specification Part 14 Pub/Sub. The description of its architecture is captured in UA SemanticData Message Centric Communication.ReferenceApplication
contains the description of a reference WPF application.OOI Reactive Application
may be expanded to implement integration services in context of selected Industrial IT technologies.OOI Reactive Application
is any software program designed to perform a specific function directly for the user or for other application programs. Application programs process consumes (Consumer
role) and/or produces (Producer
role) the Semantic-Data
according to selected algorithm to meet the user requirements according to selected information model. The roles expands the DataRepository
class representing ultimate source or destination of the raw data. Description of how to implement this roles is covered in the document Reactive Networking of SemanticData LibraryOOI Reactive Application
class in the domain model represents varieties of possible applications including but not limited to:XML Gateway
- it factories objects using the Semantic-Data
and serializes them into XML text representation for further processing.JSON Gateway
- it factories objects using the Semantic-Data
and serializes them into the JSON text representation for further processingData Archival
- collects the Semantic-Data
received over the wire and archives it in a database.Cloud Gateway
- it simplifies creation of a bridge to the cloud that enables data to stream from industrial equipment to a cloud messaging endpoint such as Azure IoT.SCADA
- supervisory control and data acquisition is a control system architecture that uses computers, networked data communications and graphical user interfaces for high-level process supervisory management.Fieldbus gateway
- a gateway to family of industrial computer network protocols.UA Server Integration
- a gateway to data exposed by the Address Space Management
- a typical part of any OPC UA Server.Data Archival
can also be used to transfer data from the OPC UA environment to any Database Management System for further processing by Enterprise Management BI systems.JSON Gateway
and XML Gateway
supports strong typed objects serialization and deserialization using JSON and XML industrial standards. Converting the OPC UA objects into text based representation is required to publish and subscribe using Enterprise Service Base concept.Semantic-Data
represents the following triple:Semantic-Data
represents a set of nodes organized as a tree structure defined recursively as a collection of nodes (starting at a root node), where each node called parent is the root of a subtree, i.e. all nodes that have "part of" relationship called children. The collection of children may be empty and in this case the node is called a leaf. In this definition “part of” means that the parent has a HasProperty
or HasComponent
reference to its children. This type of references prevents loops.http://opcfoundation.org/UA/
. To make URI for the nodes defined by the standard unique, the server URL shall be used instead.BrowseName
, or, when it is a part of another node, the BrowseName
of the other node, a "_"
, and the BrowseName
of itself. It applies recursively. “Part of” means that the whole has a HasProperty
or HasComponent
reference to its part. Since all nodes not being the part of another node have a unique name, the symbolic name is unique. Any root element must not be an instance declaration. An instance declaration is an Object, Variable or Method that is the target node of a hierarchical reference from a type definition mode or another instance declaration.ServerType
defined in the specification has the symbolic name ServerType
. One of its instance declarations would be identified as ‘ServerType_ServerCapabilities’. Since this Object is complex, another instance declaration of the ServerType
is ServerType_ServerCapabilities_MinSupportedSampleRate
. The Server
Object
node is based on the ServerType
and has the symbolic name Server
. Therefore, the instance based on the instance declaration described above has the symbolic name Server_ServerCapabilities_MinSupportedSampleRate
.Note: TheSemantic-Data
may be implemented using any other consistent type system.
Semantic-Data
may be used to implement the Data Security and Discoverable Data concepts described below.Semantic-Data
represents a well defined set of nodes organized as a tree structure. Type is responsible to define a meaning for this tree, e.g. from BoilerType we can learn how for this kind of objects their state is described - what values must be present in the data instance. This meaning is provided by the semantics rules of the type. To define valid bits pattern encoding must be defined by the type as well. Encoding rules depends on where the data is to be processed and it could change during the data life-cycle. Definition of the encoding is, therefore, outside of scope of SemanticData
definition and to promote interoperability must be defined be an international standard. For this purpose OPC Unified Architecture has been selected.Semantic-Data
instances.Flow meter #A-4321
device supporting Modbus RTU is equipped with a Modbus => Semantic-Data
gateway (lightweight plug converter - actually converting Modbus responses into the UDP/IP frame according to the Pub/Sub specification - price is relevant!)Address Space Management
on the server side reads the message from the network and, using the URI of the Flow meter #A-4321
, browses a global directory to find the sender certificate and get the public key to implement payload integrity check.Flow meter #A-4321
in his Address Space Management
component (i.e. in the UA Address Space instantiated according to the Information Model used to configure the device)Flow meter #A-4321
device is replaced for some reasons the new one also has to update relevant properties and OPC UA Clients can adopt the behavior using new values (e.g. engineering units) and expose also the device identification data, e.g serial number, model, etc. The device must be equipped with a gateway supporting its field level protocol or directly supporting the Semantic-Data
implementation.Semantic-Data
is used requires that the data is protected against:Semantic-Data
instance is a uniquely named standalone object, the security can be provided in the context of the data but not in the context of the server the data is exposed by.Semantic-Data
is a root of a tree structure created by nodes recursively pointed out by HierarchicalReferences in forward direction. Because each node in this hierarchy is globally recognizable it may be protected as a resource by any independent protection system (for example any Kerberos protocol implementation) supporting authentication and authorization operation and responsible for the distribution of security tokens used to protect the data as above. A hierarchical relationship supports permissions inheritance, i.e. permissions propagation to the children nodes.HMI
devices in a local network – the creation of simultaneous OPC UA sessions is impractical or impossible for some reasons.Boiler #1
and if needed it gets a protection security token using the URI of the data from an external dictionary.HMI
devices).HMI
device can be prepared in advance to display the state of the boiler and configured against the URI to display information about the Boiler #1
- no OPC UA Server session is required but BoilerType must be known (no communication) in advance from the appropriate OPC UA Information ModelHMI
learns from the message that it contains information about Boiler #1
, otherwise it neglects the message (local filtering approach)HMI
browses local dictionaries (e.g. configuration files) to get an appropriate security token to follow the selected protection scenario. Synchronization of the dictionaries is a user dependent mechanism and does not require OPC UA Server engagement.HMI
updates the screen using the message content and it is done.(~123 USD)
shall expose current values related to Consumer #1
in an OPC UA Address Space (also supporting embedded AMQP Client). Because there are ~123456 meters that must be handled, establishing so many simultaneous OPC UA session over the Internet is impractical or even impossible.Consumer #1
and signs it using a private key - no OPC UA Server session is required but SmartPowerMeterType must be known (no communication) in advance from appropriate OPC UA Information Model (OPC UA interoperability is required).Consumer #1
, browses a global customers directory to find the sender certificate and get the public key to implement non-repudiation security algorithm (we are talking not only about power, but also about money!).Consumer #1
in his Address Space Management component.OOI Reactive Application
and UA Client
(see the diagram above) are interested in getting access to or update the data and they may not care about which particular server provides the data. In this case the data must be discoverable over the network. The Semantic-Data
can be used to meet this requirement. In this approach, the data URI can be used as a key to browse the Global Data Discovery System (GDDS – an expanded version of GDS) to find recursively the destination OPC UA Server exposing the requested data. In this scenario we can use a well-known two-step process:Semantic-Data
) unique domain based identifier - URI;HMI
prepared in advance to display the state of boilers formally described by the BoilerType shall display the Boiler #1 state but the server exposing the data is unknown and may change occasionally (e.g. non transparent redundancy).HMI
(OPC UA Client) using URI of the Boiler #1
browses recursively Global Data Discovery System starting form a local server to find a discovery server having all needed information about the OPC UA Server exposing Boiler #1
Object
node representing a physical object named Boiler #1
.HMI
establishes OPC UA Session with the discovery server and gets all needed information.HMI
establishes OPC UA Session with the destination OPC UA Server to subscribe for requested data and events.HMI
repeats the procedure starting from 1 and connects to another server if any.Semantic-Data
paradigm implementation can be found in the project Reactive Networking of SemanticData Library.OOI Reactive Application
architecture is captured in the section Semantic-Data Message Centric Communication.SemanticData
solution folder on the code map. This code map helps you see how the code fits together without reading through files and lines of code.For the sake of simplicity the unit tests have been removed from the diagram.