The following tables describe ConformanceUnitsfor the Servicesspecified in OPC 10000-4. The tables correlate with the Service Sets.
A single ConformanceUnitcan 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 Categoryto which a ConformanceUnitbelongs, the title and description of the ConformanceUnit. In some cases, a ConformanceUnitwill 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 ConformanceUnitwould require a TestCasefor at least five connections.
The Discovery ServiceSet is composed of multiple ConformanceUnits(see Table 3). All Serversprovide some aspects of this functionality; see Profilescategorized as Server Profilesfor details. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Category |
Title |
Description |
DiscoveryGet Endpoints |
Support the GetEndpoints Serviceto obtain all Endpoints of the Server. This includes filtering based on Profiles. |
|
DiscoveryGet 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" |
|
Support the FindServers Serviceonly for itself. |
||
DiscoveryRegister |
Call the RegisterServer Serviceto register itself (OPC UA Server) with an external Discovery Servicevia a secure channel with a SecurityMode other than NONE. |
|
DiscoveryRegister2 |
Call the RegisterServer2 Serviceto register with an external Discovery Servicevia 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. |
|
Provide mDNS functionality to announce a Serverwith its capabilities. The capability identifiers and the use of mDNS records for the purpose of OPC UA Discoveryis specified in Part 12.
Note that this functionality is only required for Serversthat do not register with an LDS. The capability identifiers and their use in mDNS records are specified in Part 12. |
||
DiscoveryConfiguration |
Allow configuration of the Discovery ServerURL where the Serverwill register itself. Allow complete disabling of registration with a Discovery Server. |
|
Uses the FindServers Serviceto obtain all Serversinstalled on a given platform. |
||
Use FindServers Serviceto obtain URLs for specific ServerURIs. |
||
Support one of the options to locate Serverson the network. |
||
Use FindServersOnNetwork Serviceto obtain URLs for specific ServerURIs. Note that this Serviceis available via the Local Discovery Serverwith multicast extension (LDS-ME). |
||
Use mDNS based Service Discoveryto locate Serverson the same multicast network. The contents of mDNS records for OPC UA Discoveryare described in Part 12.
Note that this functionality is only required for Clientswhen there is no Local Discovery Serverwith multicast extension (LDS-ME). The capability identifiers and their use in mDNS records are specified in Part 12. |
||
Use the QueryServers Methodon the GDS Directory Objectto locate Serversthat meet filter criteria specified in the request. This Methodis specified in Part 12. |
||
Use the QueryApplications Methodon the GDS Directory Objectto locate Applications that meet filter criteria specified in the request. This Methodis specified in Part 12. |
||
Uses the GetEndpoints Serviceto obtain all Endpoints for a given ServerURI. |
||
Uses the GetEndpoints Servicewith a filter to obtain Endpoints that can be used for SessionLess Serviceinvocation. The filter is the Transport URI extended with the query string "SL". E.g. http://opcfoundation.org/UA-Profile/Transport/https-uajson?SL. |
||
Detect changes to the Endpoints after an initial GetEndpoints Servicecall. |
||
Allow specification of an Endpoint without going through the Discovery ServiceSet. |
The Session ServiceSet is composed of multiple ConformanceUnits(see Table 4). The CreateSession, ActivateSession, and CloseSession services are supported as a single unit. All Serversand Clientsprovide this functionality.
Category |
Title |
Description |
Implement basic Servicebehaviour. 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 |
||
SessionBase |
Support the Session ServiceSet (CreateSession, ActivateSession, CloseSession) except the use of ActivateSession to change the Sessionuser. 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 Certificateand Nonce are optional. 2) The signatures are null/empty. The details of this are described in Part 4. |
|
SessionChange User |
Support the use of ActivateSession to change the Sessionuser. |
|
SessionCancel |
Support the Cancel Serviceto cancel outstanding requests. |
|
SessionMinimum 1 |
Support minimum 1 Session(total). |
|
SessionMinimum 2 Parallel |
Support minimum 2 parallel Sessions (total for all Clients). |
|
SessionMinimum 50 Parallel |
Support minimum 50 parallel Sessions (total for all Clients). |
|
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. |
|
Implement basic Servicebehaviour. 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 |
||
Use the Session ServiceSet (CreateSession, ActivateSession, and CloseSession) except the use of ActivateSession to change the Sessionuser. 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 Certificateand Nonce are optional. 2) The signatures are null/empty. |
||
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. |
||
This ConformanceUnitapplies to Clientsthat allow persisting NodeIds. Verify that the Namespace Table has not changed for NodeIds that the Clienthas persisted and is going to re-use beyond a Sessionlifetime. If changes occurred the Clienthas to recalculate the Namespace Indices of the respective NodeIds. |
||
Uses ActivateSession to change the Session user (impersonation). |
||
Make periodic requests to keep the Sessionalive. |
||
Read or monitor the ServerStatus/State Variable to recognize a potential shutdown of the Server and clean up resources. |
||
Use the Cancel Serviceto cancel outstanding requests. |
||
Automatic Clientreconnect including: – ActivateSession with new SecureChannel if SecureChannel is no longer valid but Sessionis still valid – Creation of a new Sessiononly if Sessionis no longer valid |
||
The Clientshall interoperate with Serversthat only support one Session. |
||
Defines the use of the SessionlessInvoke Servicedefined 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 NodeManagement ServiceSet is composed of multiple ConformanceUnits(see Table 5). Serversmay provide some aspects of this functionality; see Profilescategorized as Server Profilesfor details. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Table 5– Node Management Services
Category |
Title |
Description |
Support the AddNodes Serviceto add one or more Nodesinto the OPC UA AddressSpace. |
||
Support the DeleteNodes Serviceto delete one or more Nodesfrom the OPC UA AddressSpace. |
||
NodeManagement Add Ref |
Support the AddReferences Serviceto add one or more Referencesto one or more Nodesin the OPC UA AddressSpace. |
|
NodeManagement Delete Ref |
Support the DeleteReferences Serviceto delete one or more Referencesof a Nodein the OPC UA AddressSpace. |
|
Uses NodeManagement Servicesto add or delete Nodesand to add or delete Referencesin Server's OPC UA AddressSpace. |
The View ServiceSet is composed of a multiple ConformanceUnits(see Table 6). All Serverssupport some aspects of this conformance group. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Category |
Title |
Description |
View Basic |
Support the View ServiceSet (Browse, BrowseNext). |
|
View TranslateBrowsePath |
Support TranslateBrowsePathsToNodeIds Service. |
|
View RegisterNodes |
Support the RegisterNodes and UnregisterNodes Servicesas a way to optimize access to repeatedly used Nodesin the Server's OPC UA AddressSpace. |
|
View Minimum Continuation Point 01 |
Support minimum 1 continuation point per Session. |
|
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. |
|
View ClientBasic Browse |
Uses Browse and BrowseNext Servicesto navigate through the Server's OPC UA AddressSpace. Make use of the referenceTypeId and the nodeClassMask to specify the needed References. |
|
The Clientcan browse to nodes that have an extended NodeID that reference a Serverdifferent than the originating Server. This includes automatic connection to the remote Server. It is acceptable that the Serverconfiguration information be pre-configured on the Clientand / or that the user is prompted to connect. |
||
View ClientBasic ResultSet Filtering |
Makes use of the resultMask parameter to optimize the result set to be returned by the Server. |
|
View ClientTranslateBrowsePath |
Uses the TranslateBrowsePathsToNodeIds Serviceto identify the NodeIds for Nodeswhere a starting Nodeand a BrowsePath is known. Makes use of bulk operations rather than multiple calls whenever possible. |
|
The Clientcan translate browse paths that include nodes with extended NodeID that reference a Serverdifferent than the originating Serverand return them as part of the TranslateBrowsePathsToNodeIds Service. It is acceptable that the Serverconfiguration information be pre-configured on the Client. |
||
View ClientRegisterNodes |
Uses the RegisterNodes Serviceto optimize access for Nodesthat are used repeatedly. Use UnregisterNodes when Nodesare not used anymore. |
The Attribute ServiceSet is composed of multiple ConformanceUnits(see Table 7). The majority of the Attributeservice set is a core functionality of OPC UA and as such is supported by most Servers. Most Clientswill also support some aspects of the Attribute ServiceSet.
Category |
Title |
Description |
AttributeRead |
Supports the Read Serviceto read one or more Attributesof one or more Nodes. This includes support of the IndexRange parameter to read a single element or a range of elements when the Attributevalue is an array. |
|
AttributeRead Complex |
Supports reading and encoding Values with structured DataTypes. |
|
AttributeWrite Values |
Supports writing to values to one or more Attributesof one or more Nodes. |
|
AttributeWrite Complex |
Supports writing and decoding Values with structured DataTypes. |
|
AttributeWrite StatusCode & Timestamp |
Supports writing of StatusCode and Timestamps along with the Value. |
|
AttributeWrite Index |
Supports the IndexRange to write a single element or a range of elements when the Attributevalue is an array and partial updates is allowed for this array. |
|
AttributeAlternate Encoding |
Supports alternate Data Encoding when reading value Attributes. By default, every Serverhas 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. |
|
AttributeHistorical 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. |
|
AttributeHistorical 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. |
|
Use the Read Serviceto read one or more Attributesof one or more Nodes. This includes use of an IndexRange to select a single element or a range of elements when the Attributevalue is an array. Clientsshall use bulk operations whenever possible to reduce the number of Serviceinvocations. |
||
The Clientcan retrieve attributes of nodes that have an extended NodeID that reference a Serverdifferent than the originating Server. This requires a connection to the remote Serverfor access (not necessarily displayed as a connection). It is acceptable that the Serverconfiguration information be pre-configured on the Client. |
||
This ConformanceUnitrefers to the ability of a Clientto discover the available encodings and choose a specific one when calling the Read Service. |
||
Read and decode Values with structured DataTypes. |
||
Use the Write Serviceto write values to one or more Attributesof one or more Nodes. This includes use of an IndexRange to select a single element or a range of elements when the Attributevalue is an array. Clientsshall use bulk operations whenever possible to reduce the number of Serviceinvocations. |
||
Write and Encode Values with structured DataTypes. |
||
Use the Write Serviceto also write StatusCode and/or Timestamps along with a Value. |
||
The Clientmakes 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. |
||
The Clientmakes 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 ServiceSet is composed of ConformanceUnits (see Table 8). The primary ConformanceUnits provide support for the call functionality. Serversmay provide some aspects of this functionality; see Profilescategorized as Server Profilesfor details. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Category |
Title |
Description |
MethodCall |
Support the Call Serviceto call (invoke) a Methodwhich includes support for MethodParameters. |
|
Use the Call Serviceto call one or several Methods. |
The MonitoredItem ServiceSet is composed of multiple ConformanceUnits(see Table 9). Serversmay provide some aspects of this functionality; see Profilescategorized as Server Profilesfor details. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Table 9– Monitored Item Services
Category |
Title |
Description |
Monitor Basic |
Support the following MonitoredItem Services: CreateMonitoredItems, ModifyMonitoredItems, DeleteMonitoredItems and SetMonitoringMode. |
|
Monitor Value Change |
Support creation of MonitoredItemsfor Attributevalue changes. This includes support of the IndexRange to select a single element or a range of elements when the Attributevalue is an array. |
|
Monitor Complex Value |
Supports monitoring and encoding Values with structured DataTypes. |
|
Monitored Items Deadband Filter |
Supports an absolute Deadband filter as a DataChangeFilter for numeric data types. |
|
Monitor Aggregate Filter |
Support for Aggregate filters for MonitoredItems. The result of this ConformanceUnitincludes a list of Aggregates that are supported as part of the Profile Certificate. |
|
Monitor Alternate Encoding |
Support alternate encoding when monitoring value Attributes. By default, every Serverhas 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. |
|
Monitor Items 2 |
Support at least 2 MonitoredItemsper Subscriptionwhere the size of each MonitoredItemis at least equal to size of Double. |
|
Monitor Items 10 |
Support at least 10 MonitoredItemsper Subscriptionwhere the size of each MonitoredItemis at least equal to size of Double. |
|
Monitor Items 100 |
Support at least 100 MonitoredItemsper Subscription. This number has to be supported for at least half of the required Subscriptions for half of the required Sessions. |
|
Monitor Items 500 |
Support at least 500 MonitoredItemsper Subscription. This number has to be supported for at least half of the required Subscriptions for half of the required Sessions. |
|
Monitor QueueSize_1 |
This ConformanceUnitdoes not require queuing when multiple value changes occur during a "publish period". I.e. the latest change will be sent in the Notification. |
|
Monitor MinQueueSize_02 |
Support at least 2 queue entries for MonitoredItems. Serversoften will adapt the queue size to the number of currently MonitoredItems. However, it is expected that Serverssupport this minimum queue size for at least one third of the supported MonitoredItems. |
|
Monitor MinQueueSize_05 |
Support at least 5 queue entries for MonitoredItems. Serversoften will adapt the queue size to the number of currently MonitoredItems. However, it is expected that Serverssupport this minimum queue size for at least one third of the supported MonitoredItems. |
|
Monitor QueueSize_ServerMax |
This ConformanceUnitis for events. When the Clientrequests queuesize=MAXUInt32 the Serveris to return the maximum queue size that it can support for event notifications as the revisedQueueSize. |
|
Monitor Triggering |
Support the SetTriggering Serviceto create and/or delete triggering links for a triggering item. |
|
Monitor Events |
Support creation of MonitoredItemsfor 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. |
|
Monitor Complex EventFilter |
Support for the 'TypeOf' complex Eventfilter operator. |
|
Monitor ClientValue Change |
Use the MonitoredItem ServiceSet to register items for changes in Attributevalue. Use CreateMonitoredItems to register the Node/Attributetuple. 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. |
|
Monitor ClientComplex Value |
Monitor and decode Values with structured DataTypes. |
|
Monitor ClientDeadband Filter |
Uses Absolute Deadband filters for subscriptions. |
|
Monitor Clientby Index |
Use the IndexRange to select a single element or a range of elements when the Attributevalue is an array. |
|
Monitor ClientAggregate Filter |
Uses Aggregate filters for Subscriptions. |
|
Monitor ClientEvents |
Use the MonitoredItem ServiceSet to create MonitoredItemsfor Eventnotifications. |
|
Use the Eventfilter when calling CreateMonitoredItems to filter the desired Events and to select the columns to be provided for each Event Notification. |
||
Use of the 'TypeOf' complex Eventfilter operator. |
||
Monitor ClientModify |
Use ModifyMonitoredItems Serviceto change the configuration setting. Use SetMonitoringMode Serviceto disable / enable sampling and / or publishing. |
|
Monitor ClientTrigger |
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 Serviceto link these items to the trigger item. |
The Subscription ServiceSet is composed of multiple ConformanceUnits(see Table 10). Serversmay provide some aspects of this functionality; see Profilescategorized as Server Profilesfor details. Clientsmay support some aspects of this functionality; see Profilescategorized as Client Profilesfor details.
Table 10– Subscription Services
Category |
Title |
Description |
SubscriptionBasic |
Support the following Subscription Services: CreateSubscription, ModifySubscription, DeleteSubscriptions, Publish, Republish and SetPublishingMode. |
|
SubscriptionMinimum 1 |
Support at least 1 Subscriptionper Session. This number has to be supported for all of the minimum required sessions. |
|
SubscriptionMinimum 02 |
Support at least 2 Subscriptions per Session. This number has to be supported for at least half of the minimum required sessions. |
|
SubscriptionMinimum 05 |
Support at least 5 Subscriptions per Session. This number has to be supported for at least half of the minimum required sessions. |
|
SubscriptionPublish Min 02 |
Support at least 2 Publish Servicerequests 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 Servicereturns Bad_MessageNotAvailable. |
|
SubscriptionPublish Min 05 |
Support at least 5 Publish Servicerequests 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. |
|
SubscriptionPublish Min 10 |
Support at least 10 Publish Servicerequests 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. |
|
SubscriptionPublish Discard Policy |
Respect the specified policy for discarding Publish Servicerequests. If the maximum number of Publish Servicerequests has been queued and a new Publish Servicerequest arrives, the "oldest" Publish request has to be discarded by returning the proper error. |
|
SubscriptionTransfer |
Support TransferSubscriptions Serviceto transfer a Subscriptionfrom one Sessionto another. |
|
SubscriptionDurable |
Support setting Subscriptions in durable mode. This mode requires that collected data and events are stored and delivered even if a Clientwas disconnected for a longer time or the Serverwas restarted. Support one of the “SubscriptionDurable StorageLevel nnn” ConformanceUnits. |
|
SubscriptionDurable StorageLevel Small |
Support at least 20 monitored items with a queue size of 10000 for each item and where the size of each MonitoredItemis at least equal to size of Double. This requires storage capacity for 200 thousand values of DataType Double. |
|
SubscriptionDurable StorageLevel Medium |
Support at least 100 monitored items with a queue size of 50000 for each item and where the size of each MonitoredItemis at least equal to size of Double. This requires storage capacity for 5 million values of DataType Double. |
|
SubscriptionDurable StorageLevel High |
Support at least 2000 monitored items with a queue size of 200000 for each item and where the size of each MonitoredItemis at least equal to size of Double. This requires storage capacity for 400 million values of DataType Double. |
|
Subscription ClientBasic |
Use the Subscriptionand MonitoredItem ServiceSet as an efficient means to detect changes of Attributevalues and / or to receive Eventoccurrences. Set appropriate intervals for publishing, keep alive notifications and total Subscriptionlifetime. Supply a sufficient number of Publish requests to the Serverso that Notificationscan be sent whenever a publish timer expires. Acknowledge received Notificationswith subsequent Publish requests. |
|
Subscription ClientFallback |
The Clientshall interoperate with Serversthat do not support Subscriptions, or have exhausted Subscriptionlimits, for Monitoring by using Read Service. |
|
Subscription ClientRepublish |
Evaluate the sequence number in Notificationsto detect lost Notifications. Use Republish to request missing Notifications. |
|
Subscription ClientModify |
Allow modification of the Subscriptionconfiguration using the ModifySubscription Service. |
|
Subscription ClientTransferSubscriptions |
The Clientsupports transferring Subscriptionfrom other Clients. This ConformanceUnitis used as part of redundant Clients. |
|
Subscription ClientMultiple |
Use multiple Subscriptions to reduce the payload of individual Notifications. |
|
Subscription ClientPublish Configurable |
Send multiple Publish Servicerequests to assure that the Serveris always able to send Notifications. The number of parallel Publish Servicerequests per Sessionshall be configurable. |
|
Subscription ClientDurable |
Use durable Subscriptions. |