Other parts of this series of standards are written to be independent of the technology used for implementation. This approach means OPC UA is a flexible specification that will continue to be applicable as technology evolves. On the other hand, this approach means that it is not possible to build an OPC UA application with the information contained in OPC 10000-1through to OPC 10000-5because important implementation details have been left out.

This standard defines Mappingsbetween the abstract specifications and technologies that can be used to implement them. The Mappingsare organized into three groups: DataEncodings, SecurityProtocols andTransportProtocols. Different Mappingsare combined together to create StackProfiles. All OPC UA applications shall implement at least one StackProfile and can only communicate with other OPC UA applications that implement the same StackProfile.

This standard defines the DataEncodingsin Clause 5, the SecurityProtocolsin Clause 5.4and the TransportProtocolsin 6.7.6. The StackProfilesare defined in OPC 10000-7.

All communication between OPC UA applications is based on the exchange of Messages. The parameters contained in the Messagesare defined in OPC 10000-4; however, their format is specified by the DataEncodingand TransportProtocol. For this reason, each Messagedefined in OPC 10000-4shall have a normative description which specifies exactly what shall be put on the wire. The normative descriptions are defined in the appendices.

A Stackis a collection of software libraries that implement one or more StackProfiles. The interface between an OPC UA application and the Stackis a non-normative API which hides the details of the Stackimplementation. An API depends on a specific DevelopmentPlatform. Note that the datatypes exposed in the API for a DevelopmentPlatform may not match the datatypes defined by the specification because of limitations of the DevelopmentPlatform. For example, Java does not support an unsigned integer which means that any Java API will need to map unsigned integers onto a signed integer type.

Figure 1illustrates the relationships between the different concepts defined in this standard.


Figure 1– The OPC UA Stack Overview

The layers described in this specification do not correspond to layers in the OSI 7-layer model [X200]. Each OPC UA StackProfileshould be treated as a single Layer 7 (application) protocol that is built on an existing Layer 5, 6 or 7 protocol such as TCP/IP, TLS or HTTP. The SecureChannellayer is always present even if the SecurityModeis None. In this situation, no security is applied but the SecurityProtocolimplementation shall maintain a logical channel with a unique identifier. Users and administrators are expected to understand that a SecureChannelwith SecurityModeset to Nonecannot be trusted unless the application is operating on a physically secure network or a low-level protocol such as IPSec is being used.