The following tables describe ConformanceUnits for the Services specified in OPC 10000-4. The tables correlate with the Service Sets.

A single ConformanceUnit can reference several Services (e.g. CreateSession, ActivateSession and CloseSession) but can also refer to individual aspects of Services (e.g. the use of ActivateSession to impersonate a new user).

Each table includes a listing of the Profile Category to which a ConformanceUnit belongs, the title and description of the ConformanceUnit. In some cases, a ConformanceUnit will be derived from another ConformanceUnit. This parent unit will then be specified in the description of each derived unit. In such cases the derived units inherit all of the tests of its parent plus one or more additional TestCases. These TestCases can only further restrict the existing TestCases. An example would be one in which the number of connections is tested, where the TestCase of the parent required at least one connection and the derived ConformanceUnit would require a TestCase for at least five connections.

The Discovery Service Set is composed of multiple ConformanceUnits (see Table 3). All Servers provide some aspects of this functionality; see Profiles categorized as Server Profiles for details. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 3 – Discovery Services

Category

Title

Description

Server

Discovery Get Endpoints

Support the GetEndpoints Service to obtain all Endpoints of the Server.

This includes filtering based on Profiles.

Server

Discovery Get Endpoints SessionLess

Support at least one endpoint for issueing SessionLess Services. Support obtaining such endpoints by accepting the Transport URI as a filter to the GetEndpoints Service with the query string "SL" appended to the Transport URI. E.g. "http://opcfoundation.org/UA-Profile/Transport/https-uajson?SL"

Server

Discovery Find Servers Self

Support the FindServers Service only for itself.

Server

Discovery Register

Call the RegisterServer Service to register itself (OPC UA Server) with an external Discovery Service via a secure channel with a SecurityMode other than NONE.

Server

Discovery Register2

Call the RegisterServer2 Service to register with an external Discovery Service via a Secure Channel with a SecurityMode other than "None". This includes passing a list of short capability identifiers.

The identifiers and their use are specified in Part 12.

Server

Discovery Server Announcement using mDNS

Provide mDNS functionality to announce a Server with its capabilities. The capability identifiers and the use of mDNS records for the purpose of OPC UA Discovery is specified in Part 12.

Note that this functionality is only required for Servers that do not register with an LDS.

The capability identifiers and their use in mDNS records are specified in Part 12.

Server

Discovery Configuration

Allow configuration of the Discovery Server URL where the Server will register itself.

Allow complete disabling of registration with a Discovery Server.

Client

Discovery Client Find Servers Basic

Uses the FindServers Service to obtain all Servers installed on a given platform.

Client

Discovery Client Find Servers with URI

Use FindServers Service to obtain URLs for specific Server URIs.

Client

Discovery Client Find Servers Dynamic

Detect new Servers after an initial FindServers Service call.

Client

Discovery Client Find Servers on Network

Support one of the options to locate Servers on the network.

Client

Discovery Client Find Servers on Network using LDS-ME

Use FindServersOnNetwork Service to obtain URLs for specific Server URIs. Note that this Service is available via the Local Discovery Server with multicast extension (LDS-ME).

Client

Discovery Client Find Servers on Network using mDNS

Use mDNS based Service Discovery to locate Servers on the same multicast network. The contents of mDNS records for OPC UA Discovery are described in Part 12.

Note that this functionality is only required for Clients when there is no Local Discovery Server with multicast extension (LDS-ME).

The capability identifiers and their use in mDNS records are specified in Part 12.

Client

Discovery Client Find Servers in GDS

Use the QueryServers Method on the GDS Directory Object to locate Servers that meet filter criteria specified in the request. This Method is specified in Part 12.

Client

Discovery Client Find Applications in GDS

Use the QueryApplications Method on the GDS Directory Object to locate Applications that meet filter criteria specified in the request. This Method is specified in Part 12.

Client

Discovery Client Get Endpoints Basic

Uses the GetEndpoints Service to obtain all Endpoints for a given Server URI.

Client

Discovery Client Get Endpoints SessionLess

Uses the GetEndpoints Service with a filter to obtain Endpoints that can be used for SessionLess Service invocation. The filter is the Transport URI extended with the query string "SL". E.g. http://opcfoundation.org/UA-Profile/Transport/https-uajson?SL.

Client

Discovery Client Get Endpoints Dynamic

Detect changes to the Endpoints after an initial GetEndpoints Service call.

Client

Discovery Client Configure Endpoint

Allow specification of an Endpoint without going through the Discovery Service Set.

The Session Service Set is composed of multiple ConformanceUnits (see Table 4). The CreateSession, ActivateSession, and CloseSession services are supported as a single unit. All Servers and Clients provide this functionality.

Table 4 – Session Services

Category

Title

Description

Server

Session General Service Behaviour

Implement basic Service behaviour. This includes in particular:

– checking the authentication token

– returning the requestHandle in responses

– returning available diagnostic information as requested with the 'returnDiagnostics' parameter

– respecting a timeoutHint

Server

Session Base

Support the Session Service Set (CreateSession, ActivateSession, CloseSession) except the use of ActivateSession to change the Session user. This includes correct handling of all parameters that are provided.

Note that for the CreateSession and ActivateSession services, if the SecurityMode = None then:

1) The Application Certificate and Nonce are optional.

2) The signatures are null/empty.

The details of this are described in Part 4.

Server

Session Change User

Support the use of ActivateSession to change the Session user.

Server

Session Cancel

Support the Cancel Service to cancel outstanding requests.

Server

Session Minimum 1

Support minimum 1 Session (total).

Server

Session Minimum 2 Parallel

Support minimum 2 parallel Sessions (total for all Clients).

Server

Session Minimum 50 Parallel

Support minimum 50 parallel Sessions (total for all Clients).

Server

Session Sessionless Invocation

Defines the support of the SessionlessInvoke Service defined in UA Part 4 to process any of the Services (like Read/Write, Browse, or Call) that are designated for Session-less invocation.

Client

Session Client General Service Behaviour

Implement basic Service behaviour. This includes in particular:

– including the proper authentication token of the Session

– creating a requestHandle if needed

– requesting diagnostic information with the 'returnDiagnostics' parameter

– evaluate the serviceResult and operational results

Client

Session Client Base

Use the Session Service Set (CreateSession, ActivateSession, and CloseSession) except the use of ActivateSession to change the Session user. This includes correct handling of all parameters that are provided

Note that for the CreateSession and ActivateSession services, if the SecurityMode = None then:

1) The Application Certificate and Nonce are optional.

2) The signatures are null/empty.

Client

Session Client Multiple Connections

Support unlimited connections (client side) with multiple Servers. Any limit on numbers of connections is from server side. May have a memory based limit, but not a software constraint limit.

Client

Session Client Renew NodeIds

This ConformanceUnit applies to Clients that allow persisting NodeIds.

Verify that the Namespace Table has not changed for NodeIds that the Client has persisted and is going to re-use beyond a Session lifetime. If changes occurred the Client has to recalculate the Namespace Indices of the respective NodeIds.

Client

Session Client Impersonate

Uses ActivateSession to change the Session user (impersonation).

Client

Session Client KeepAlive

Make periodic requests to keep the Session alive.

Client

Session Client Detect Shutdown

Read or monitor the ServerStatus/State Variable to recognize a potential shutdown of the Server and clean up resources.

Client

Session Client Cancel

Use the Cancel Service to cancel outstanding requests.

Client

Session Client Auto Reconnect

Automatic Client reconnect including:

– ActivateSession with new SecureChannel if SecureChannel is no longer valid but Session is still valid

– Creation of a new Session only if Session is no longer valid

Client

Session Client Single Session

The Client shall interoperate with Servers that only support one Session.

Client

Session Client SessionLess Service Calls

Defines the use of the SessionlessInvoke Service defined in UA Part 4 to request one of the Services (like Read or Browse) that are allowed for sessionless invocation. UA Part 6 specifies which transports may be used and how.

The Node Management Service Set is composed of multiple ConformanceUnits (see Table 5). Servers may provide some aspects of this functionality; see Profiles categorized as Server Profiles for details. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 5 – Node Management Services

Category

Title

Description

Server

Node Management Add Node

Support the AddNodes Service to add one or more Nodes into the OPC UA AddressSpace.

Server

Node Management Delete Node

Support the DeleteNodes Service to delete one or more Nodes from the OPC UA AddressSpace.

Server

Node Management Add Ref

Support the AddReferences Service to add one or more References to one or more Nodes in the OPC UA AddressSpace.

Server

Node Management Delete Ref

Support the DeleteReferences Service to delete one or more References of a Node in the OPC UA AddressSpace.

Client

Node Management Client

Uses Node Management Services to add or delete Nodes and to add or delete References in Server's OPC UA AddressSpace.

The View Service Set is composed of a multiple ConformanceUnits (see Table 6). All Servers support some aspects of this conformance group. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 6 – View Services

Category

Title

Description

Server

View Basic

Support the View Service Set (Browse, BrowseNext).

Server

View TranslateBrowsePath

Support TranslateBrowsePathsToNodeIds Service.

Server

View RegisterNodes

Support the RegisterNodes and UnregisterNodes Services as a way to optimize access to repeatedly used Nodes in the Server's OPC UA AddressSpace.

Server

View Minimum Continuation Point 01

Support minimum 1 continuation point per Session.

Server

View Minimum Continuation Point 05

Support minimum 5 continuation points per Session.

This number has to be supported for at least half of the minimum required sessions.

Client

View Client Basic Browse

Uses Browse and BrowseNext Services to navigate through the Server's OPC UA AddressSpace. Make use of the referenceTypeId and the nodeClassMask to specify the needed References.

Client

View Client Remote Nodes Browse

The Client can browse to nodes that have an extended NodeID that reference a Server different than the originating Server. This includes automatic connection to the remote Server. It is acceptable that the Server configuration information be pre-configured on the Client and / or that the user is prompted to connect.

Client

View Client Basic ResultSet Filtering

Makes use of the resultMask parameter to optimize the result set to be returned by the Server.

Client

View Client TranslateBrowsePath

Uses the TranslateBrowsePathsToNodeIds Service to identify the NodeIds for Nodes where a starting Node and a BrowsePath is known. Makes use of bulk operations rather than multiple calls whenever possible.

Client

View Client Remote Nodes Translate Browse

The Client can translate browse paths that include nodes with extended NodeID that reference a Server different than the originating Server and return them as part of the TranslateBrowsePathsToNodeIds Service. It is acceptable that the Server configuration information be pre-configured on the Client.

Client

View Client RegisterNodes

Uses the RegisterNodes Service to optimize access for Nodes that are used repeatedly. Use UnregisterNodes when Nodes are not used anymore.

The Attribute Service Set is composed of multiple ConformanceUnits (see Table 7). The majority of the Attribute service set is a core functionality of OPC UA and as such is supported by most Servers. Most Clients will also support some aspects of the Attribute Service Set.

Table 7 – Attribute Services

Category

Title

Description

Server

Attribute Read

Supports the Read Service to read one or more Attributes of one or more Nodes. This includes support of the IndexRange parameter to read a single element or a range of elements when the Attribute value is an array.

Server

Attribute Read Complex

Supports reading and encoding Values with structured DataTypes.

Server

Attribute Write Values

Supports writing to values to one or more Attributes of one or more Nodes.

Server

Attribute Write Complex

Supports writing and decoding Values with structured DataTypes.

Server

Attribute Write StatusCode & Timestamp

Supports writing of StatusCode and Timestamps along with the Value.

Server

Attribute Write Index

Supports the IndexRange to write a single element or a range of elements when the Attribute value is an array and partial updates is allowed for this array.

Server

Attribute Alternate Encoding

Supports alternate Data Encoding when reading value Attributes.

By default, every Server has to support the Data Encoding of the currently used Stack Profile (i.e. binary with UA Binary Encoding and XML with XML Encoding). This ConformanceUnit - when supported - specifies that the other Data Encoding is supported in addition.

Server

Attribute Historical Read

Supports the HistoryRead Service. The details of what aspects of this service are used are listed in additional ConformanceUnits, but at least one of ReadRaw, ReadProcessed, ReadModified, ReadAtTime or ReadEvents must be supported.

Server

Attribute Historical Update

Supports the HistoryUpdate service. The details of the supported features of this service are described by additional ConformanceUnits, but at least one of the following must be supported: InsertData, InsertEvents, ReplaceData, ReplaceEvents, UpdateData, UpdateEvents, DeleteData, DeleteEvents or DeleteAtTime.

Client

Attribute Client Read Base

Use the Read Service to read one or more Attributes of one or more Nodes. This includes use of an IndexRange to select a single element or a range of elements when the Attribute value is an array.

Clients shall use bulk operations whenever possible to reduce the number of Service invocations.

Client

Attribute Client Remote Nodes Attribute Access

The Client can retrieve attributes of nodes that have an extended NodeID that reference a Server different than the originating Server. This requires a connection to the remote Server for access (not necessarily displayed as a connection). It is acceptable that the Server configuration information be pre-configured on the Client.

Client

Attribute Client Read with proper Encoding

This ConformanceUnit refers to the ability of a Client to discover the available encodings and choose a specific one when calling the Read Service.

Client

Attribute Client Read Complex

Read and decode Values with structured DataTypes.

Client

Attribute Client Write Base

Use the Write Service to write values to one or more Attributes of one or more Nodes. This includes use of an IndexRange to select a single element or a range of elements when the Attribute value is an array.

Clients shall use bulk operations whenever possible to reduce the number of Service invocations.

Client

Attribute Client Write Complex

Write and Encode Values with structured DataTypes.

Client

Attribute Client Write Quality & Timestamp

Use the Write Service to also write StatusCode and/or Timestamps along with a Value.

Client

Attribute Client Historical Read

The Client makes use of the HistoryRead service. The details of which aspect of this service are used are provided by additional ConformanceUnits, but at least one or more of the following is used ReadRaw, ReadAtTime, ReadProcessed, ReadModified or ReadEvents.

Client

Attribute Client Historical Updates

The Client makes use of the HistoryUpdate service. The details of this usage are provided by additional ConformanceUnits, but at least one or more of the following must be provided InsertData, InsertEvents, ReplaceData, ReplaceEvents, UpdateData, UpdateEvents, DeleteData or DeleteEvents or DeleteAtTime.

The Method Service Set is composed of ConformanceUnits (see Table 8). The primary ConformanceUnits provide support for the call functionality. Servers may provide some aspects of this functionality; see Profiles categorized as Server Profiles for details. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 8 – Method Services

Category

Title

Description

Server

Method Call

Support the Call Service to call (invoke) a Method which includes support for Method Parameters.

Client

Method Client Call

Use the Call Service to call one or several Methods.

The MonitoredItem Service Set is composed of multiple ConformanceUnits (see Table 9). Servers may provide some aspects of this functionality; see Profiles categorized as Server Profiles for details. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 9 – Monitored Item Services

Category

Title

Description

Server

Monitor Basic

Support the following MonitoredItem Services: CreateMonitoredItems, ModifyMonitoredItems, DeleteMonitoredItems and SetMonitoringMode.

Server

Monitor Value Change

Support creation of MonitoredItems for Attribute value changes. This includes support of the IndexRange to select a single element or a range of elements when the Attribute value is an array.

Server

Monitor Complex Value

Supports monitoring and encoding Values with structured DataTypes.

Server

Monitored Items Deadband Filter

Supports an absolute Deadband filter as a DataChangeFilter for numeric data types.

Server

Monitor Aggregate Filter

Support for Aggregate filters for MonitoredItems. The result of this ConformanceUnit includes a list of Aggregates that are supported as part of the Profile Certificate.

Server

Monitor Alternate Encoding

Support alternate encoding when monitoring value Attributes.

By default, every Server has to support the encoding of the currently used Stack Profile (i.e. binary with UA Binary Encoding and XML with XML Encoding). This ConformanceUnit - when supported - specifies that the other encoding is supported in addition.

Server

Monitor Items 2

Support at least 2 MonitoredItems per Subscription where the size of each MonitoredItem is at least equal to size of Double.

Server

Monitor Items 10

Support at least 10 MonitoredItems per Subscription where the size of each MonitoredItem is at least equal to size of Double.

Server

Monitor Items 100

Support at least 100 MonitoredItems per Subscription.

This number has to be supported for at least half of the required Subscriptions for half of the required Sessions.

Server

Monitor Items 500

Support at least 500 MonitoredItems per Subscription.

This number has to be supported for at least half of the required Subscriptions for half of the required Sessions.

Server

Monitor QueueSize_1

This ConformanceUnit does not require queuing when multiple value changes occur during a "publish period".

I.e. the latest change will be sent in the Notification.

Server

Monitor MinQueueSize_02

Support at least 2 queue entries for MonitoredItems.

Servers often will adapt the queue size to the number of currently MonitoredItems. However, it is expected that Servers support this minimum queue size for at least one third of the supported MonitoredItems.

Server

Monitor MinQueueSize_05

Support at least 5 queue entries for MonitoredItems.

Servers often will adapt the queue size to the number of currently MonitoredItems. However, it is expected that Servers support this minimum queue size for at least one third of the supported MonitoredItems.

Server

Monitor QueueSize_ServerMax

This ConformanceUnit is for events. When the Client requests queuesize=MAXUInt32 the Server is to return the maximum queue size that it can support for event notifications as the revisedQueueSize.

Server

Monitor Triggering

Support the SetTriggering Service to create and/or delete triggering links for a triggering item.

Server

Monitor Events

Support creation of MonitoredItems for an "EventNotifier Attribute" for the purpose of Event Notification. The subscription includes supporting a filter that includes SimpleAttribute Operands and a select list of Operators. The list of Operators includes: Equals, IsNull, GreaterThan, LessThan, GreaterThanorEqual, LessThatorEqual, Like, Not, Between, InList, And, Or, Cast, BitwiseAnd, BitwiseOr.

Server

Monitor Complex Event Filter

Support for the 'TypeOf' complex Event filter operator.

Client

Monitor Client Value Change

Use the MonitoredItem Service Set to register items for changes in Attribute value.

Use CreateMonitoredItems to register the Node/Attribute tuple. Set proper sampling interval, Deadband filter and queuing mode.

Use disabling / enabling instead of deleting and re-creating a MonitoredItem.

Use bulk operations rather than individual service requests to reduce communication overhead.

Client

Monitor Client Complex Value

Monitor and decode Values with structured DataTypes.

Client

Monitor Client Deadband Filter

Uses Absolute Deadband filters for subscriptions.

Client

Monitor Client by Index

Use the IndexRange to select a single element or a range of elements when the Attribute value is an array.

Client

Monitor Client Aggregate Filter

Uses Aggregate filters for Subscriptions.

Client

Monitor Client Events

Use the MonitoredItem Service Set to create MonitoredItems for Event notifications.

Client

Monitor Client Event Filter

Use the Event filter when calling CreateMonitoredItems to filter the desired Events and to select the columns to be provided for each Event Notification.

Client

Monitor Client Complex Event Filter

Use of the 'TypeOf' complex Event filter operator.

Client

Monitor Client Modify

Use ModifyMonitoredItems Service to change the configuration setting.

Use SetMonitoringMode Service to disable / enable sampling and / or publishing.

Client

Monitor Client Trigger

Use the Triggering Model if certain items are to be reported only if some other item triggers.

Use proper monitoring mode for these items.

Use SetTriggering Service to link these items to the trigger item.

The Subscription Service Set is composed of multiple ConformanceUnits (see Table 10). Servers may provide some aspects of this functionality; see Profiles categorized as Server Profiles for details. Clients may support some aspects of this functionality; see Profiles categorized as Client Profiles for details.

Table 10 – Subscription Services

Category

Title

Description

Server

Subscription Basic

Support the following Subscription Services: CreateSubscription, ModifySubscription, DeleteSubscriptions, Publish, Republish and SetPublishingMode.

Server

Subscription Minimum 1

Support at least 1 Subscription per Session.

This number has to be supported for all of the minimum required sessions.

Server

Subscription Minimum 02

Support at least 2 Subscriptions per Session.

This number has to be supported for at least half of the minimum required sessions.

Server

Subscription Minimum 05

Support at least 5 Subscriptions per Session.

This number has to be supported for at least half of the minimum required sessions.

Server

Subscription Publish Min 02

Support at least 2 Publish Service requests per Session.

This number has to be supported for all of the minimum required sessions. Support of a NotificationMessage retransmission queue is not required; if not available the Republish Service returns Bad_MessageNotAvailable.

Server

Subscription Publish Min 05

Support at least 5 Publish Service requests per Session.

This number has to be supported for at least half of the minimum required sessions. Support, as a minimum, the number of Publish requests per session as the size of the NotificationMessage retransmission queue for Republish.

Server

Subscription Publish Min 10

Support at least 10 Publish Service requests per Session.

This number has to be supported for at least half of the minimum required sessions. Support, as a minimum, the number of Publish requests per session as the size of the NotificationMessage retransmission queue for Republish.

Server

Subscription Publish Discard Policy

Respect the specified policy for discarding Publish Service requests. If the maximum number of Publish Service requests has been queued and a new Publish Service request arrives, the "oldest" Publish request has to be discarded by returning the proper error.

Server

Subscription Transfer

Support TransferSubscriptions Service to transfer a Subscription from one Session to another.

Server

Subscription Durable

Support setting Subscriptions in durable mode. This mode requires that collected data and events are stored and delivered even if a Client was disconnected for a longer time or the Server was restarted.

Support one of the “Subscription Durable StorageLevel nnn” ConformanceUnits.

Server

Subscription Durable StorageLevel Small

Support at least 20 monitored items with a queue size of 10000 for each item and where the size of each MonitoredItem is at least equal to size of Double. This requires storage capacity for 200 thousand values of DataType Double.

Server

Subscription Durable StorageLevel Medium

Support at least 100 monitored items with a queue size of 50000 for each item and where the size of each MonitoredItem is at least equal to size of Double. This requires storage capacity for 5 million values of DataType Double.

Server

Subscription Durable StorageLevel High

Support at least 2000 monitored items with a queue size of 200000 for each item and where the size of each MonitoredItem is at least equal to size of Double. This requires storage capacity for 400 million values of DataType Double.

Client

Subscription Client Basic

Use the Subscription and MonitoredItem Service Set as an efficient means to detect changes of Attribute values and / or to receive Event occurrences.

Set appropriate intervals for publishing, keep alive notifications and total Subscription lifetime.

Supply a sufficient number of Publish requests to the Server so that Notifications can be sent whenever a publish timer expires.

Acknowledge received Notifications with subsequent Publish requests.

Client

Subscription Client Fallback

The Client shall interoperate with Servers that do not support Subscriptions, or have exhausted Subscription limits, for Monitoring by using Read Service.

Client

Subscription Client Republish

Evaluate the sequence number in Notifications to detect lost Notifications.

Use Republish to request missing Notifications.

Client

Subscription Client Modify

Allow modification of the Subscription configuration using the ModifySubscription Service.

Client

Subscription Client TransferSubscriptions

The Client supports transferring Subscription from other Clients. This ConformanceUnit is used as part of redundant Clients.

Client

Subscription Client Multiple

Use multiple Subscriptions to reduce the payload of individual Notifications.

Client

Subscription Client Publish Configurable

Send multiple Publish Service requests to assure that the Server is always able to send Notifications.

The number of parallel Publish Service requests per Session shall be configurable.

Client

Subscription Client Durable

Use durable Subscriptions.