5 Conformance Units ToC Previous Next

5.2 Services ToC Previous Next

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.

Previous Next