expose this information to whatever OCF devices in
the OCF ecosystem. Vice versa, information
maintained by an OCF device may be published by an
OPC UA Server making this information available to
whatever OPC UA–based applications. Mapping
from OPC UA to OCF information models has been
presented by the authors in previous works (Cavalieri,
et al., 2018). In this paper, the mapping from OCF to
OPC UA is presented in great details, for the first
time. For this reason, the proposal here presented
represents an enhancement of the previous works,
targeting the full integration between OPC UA and
OCF.
No other solutions of integration between OPC
UA and OCF are present in the current literature, with
the exception of the authors’ papers cited before. For
this reason, the authors believe that the contribution
of the paper is remarkable as it allows the industrial
applications based on the international standard OPC
UA to interwork with the emerging IoT ecosystem
based on the OCF specifications.
2 OPC UA
The aim of this section is to give an overview about
two important features of the OPC UA international
standard: OPC UA AddressSpace and OPC UA
Device Model.
2.1 OPC UA AddressSpace
In OPC UA, the set of information that a server makes
available to OPC UA-based applications is named
AddressSpace. In particular an AddressSpace
contains OPC UA Nodes used to represent any kind
of information (Mahnke, et al.,
2009)(OPCFoundation, 2015).
Each OPC UA Node belongs to a class named
NodeClass, derived from the Base NodeClass, which
defines several attributes. Among them, there are:
BrowseName (used as a non-localised human-
readable name when browsing the AddressSpace),
DisplayName (containing the name of the OPC UA
Node to be displayed to the user) and Description
(explaining the meaning of the Node in a localised
text).
Among the available NodeClasses, there is the
Variable NodeClass, modelling values of the system.
Two types of Variables are defined: Properties
(containing metadata) and DataVariables
(representing the data of an OPC UA Object). Both of
them holds an attribute named Value, containing the
data. Another NodeClass is the Method, modelling
callable functions that initiate actions within an OPC
UA Server. Object NodeClass represents real-world
entities like system components, hardware and
software components, or even a whole system. An
OPC UA Object is a container for other OPC UA
Objects, DataVariables and Methods. As the Object
Node does not provide for a value, therefore an OPC
UA DataVariable Node is used to represent the data
of an Object.
OPC UA defines particular NodeClasses defining
types. Some of them are called Concrete, for which
instances can be realised. Other types are Abstracts,
for which instances may exist only for the relevant
subtypes. Among NodeClasses defining types there is
the ObjectType NodeClass, which holds type
definition for OPC UA Objects. Objects are instances
of ObjectTypes in the sense that they inherit the
Nodes beneath the ObjectTypes defining them. OPC
UA defines the BaseObjectType which all the
ObjectTypes must be extended from. OPC UA
already defines several standard ObjectTypes derived
from BaseObjectType. Among them there is the
FolderType whose aim is to model hierarchy among
OPC UA Nodes. Instances of FolderType ObjectType
are used to organise the AddressSpace into a
hierarchy of OPC UA Nodes. VariableType is another
NodeClass used to provide type definition for
Variables. OPC UA defines the BaseVariableType
which all the VariableTypes must be extended from.
Among the standard VariableTypes derived from
BaseVariableType, there are the
BaseDataVariableType and the PropertyType. The
former is used to define a DataVariable Node, whilst
the latter defines a Property Node.
Particular relationships may be defined between
OPC UA Nodes; they are called References. The
ReferenceType NodeClass used to define different
types of References. They may be classified in two
different main categories: Hierarchical and
NonHierarchical.
Among the Hierarchical References there is the
HasComponent Reference used to specify that an
OPC UA Object contains another OPC UA Object,
OPC UA DataVariable or OPC UA Method specified
as target of the Reference. Another Hierarchical
Reference is Organizes which allows to organise
several OPC UA Nodes under a folder (i.e. a
FolderType Object). The last Hierarchical Reference
cited in the paper is the Abstract Aggregates, which
indicates that the target Node belongs to the source
Node.
Among the NonHierarchical References there is
the HasTypeDefinition, which is used to bind an OPC
UA Object or Variable to its ObjectType or
ICEIS 2019 - 21st International Conference on Enterprise Information Systems
556