Semantic-Datasupporting 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-Datamay 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 Clientsupporting 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 Managementis a typical part of any OPC UA Server. It is responsible for:
Data Binding- managing of the links to the underlying process
Raw Datais 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 Servicesaccesses data and metadata and makes them available to the
UA Clientusing a set of non-expandable services compliant with the specification.
Address Space Managementactivity includes also the creation of data bindings with the underlying real-time process (
Data bindingis 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 Bindingis, 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 Managementactivity may also provide systems integration services supporting the process of bringing together the component external applications (not OPC
UA Server Servicesaware) 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 Managementcould expose supplementary
UA Information Modelaimed to control remotely the data exchange channels by an
OPC UA Clientcustomized to be compliant with this model.
Raw Datamay also be processed by any
Applicationsimultaneously. This kind of activity is outside the presented concept scope.
OPC UA Clientshall 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 Clientactivity 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 Clientmay also support importing and exporting services of the data to external semantics (Raw Data).
OOI Reactive Applicationis an application transferring the
Semantic-Dataover 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.
ReferenceApplicationcontains the description of a reference WPF application.
OOI Reactive Applicationmay be expanded to implement integration services in context of selected Industrial IT technologies.
OOI Reactive Applicationis any software program designed to perform a specific function directly for the user or for other application programs. Application programs process consumes (
Consumerrole) and/or produces (
Semantic-Dataaccording to selected algorithm to meet the user requirements according to selected information model. The roles expands the
DataRepositoryclass 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 Library
OOI Reactive Applicationclass in the domain model represents varieties of possible applications including but not limited to:
XML Gateway- it factories objects using the
Semantic-Dataand serializes them into XML text representation for further processing.
JSON Gateway- it factories objects using the
Semantic-Dataand serializes them into the JSON text representation for further processing
Data Archival- collects the
Semantic-Datareceived over the wire and archives it in a database.
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 Archivalcan also be used to transfer data from the OPC UA environment to any Database Management System for further processing by Enterprise Management BI systems.
XML Gatewaysupports 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-Datarepresents the following triple:
Semantic-Datarepresents 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
HasComponentreference 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
BrowseNameof the other node, a
"_", and the
BrowseNameof itself. It applies recursively. “Part of” means that the whole has a
HasComponentreference 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.
ServerTypedefined 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
Objectnode is based on the
ServerTypeand has the symbolic name
Server. Therefore, the instance based on the instance declaration described above has the symbolic name
Semantic-Datamay be implemented using any other consistent type system.
Semantic-Datamay be used to implement the Data Security and Discoverable Data concepts described below.
Semantic-Datarepresents 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
SemanticDatadefinition and to promote interoperability must be defined be an international standard. For this purpose OPC Unified Architecture has been selected.
Flow meter #A-4321device supporting Modbus RTU is equipped with a Modbus =>
Semantic-Datagateway (lightweight plug converter - actually converting Modbus responses into the UDP/IP frame according to the Pub/Sub specification - price is relevant!)
Address Space Managementon 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-4321in his
Address Space Managementcomponent (i.e. in the UA Address Space instantiated according to the Information Model used to configure the device)
Flow meter #A-4321device 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-Datais used requires that the data is protected against:
Semantic-Datainstance 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-Datais 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.
HMIdevices in a local network – the creation of simultaneous OPC UA sessions is impractical or impossible for some reasons.
Boiler #1and if needed it gets a protection security token using the URI of the data from an external dictionary.
HMIdevice 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 Model
HMIlearns from the message that it contains information about Boiler
#1, otherwise it neglects the message (local filtering approach)
HMIbrowses 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.
HMIupdates the screen using the message content and it is done.
(~123 USD)shall expose current values related to
Consumer #1in 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 #1and 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 #1in his Address Space Management component.
OOI Reactive Applicationand
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-Datacan 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;
HMIprepared 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 #1browses 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
Objectnode representing a physical object named
HMIestablishes OPC UA Session with the discovery server and gets all needed information.
HMIestablishes OPC UA Session with the destination OPC UA Server to subscribe for requested data and events.
HMIrepeats the procedure starting from 1 and connects to another server if any.
Semantic-Dataparadigm implementation can be found in the project Reactive Networking of SemanticData Library.
OOI Reactive Applicationarchitecture is captured in the section Semantic-Data Message Centric Communication.
SemanticDatasolution folder on the code map. This code map helps you see how the code fits together without reading through files and lines of code.