Errata exists for this version of the document.
A ConformanceUnit represents an individually testable entity. For improved clarity, the large list of ConformanceUnits is arranged into named ConformanceGroups. These groups reflect the Service Sets in OPC 10000-4 and the OPC UA information models. Table 2 lists the ConformanceGroups. These groups and the ConformanceUnits that they describe are detailed in the Subclauses of chapter 5 starting with clause 5.2. ConformanceGroups have no impact on testing; they are used only for organizational reasons, i.e. to simplify the readability of this document.
Group |
Description |
Address Space Model |
Defines ConformanceUnits for various features of the OPC UA AddressSpace. |
Aggregates |
All ConformanceUnits that are related to Aggregates, including individual ConformanceUnits for each supported Aggregate as described in Part 13. |
Alarms and Conditions |
All ConformanceUnits that are associated with the OPC UA Information Model for Conditions, acknowledgeable Conditions, confirmations and Alarms as specified in Part 9. |
Includes ConformanceUnits to read or write current or historical Attribute values. |
|
Auditing |
User level security includes support for security audit trails, with traceability between Client and Server audit logs. |
Base Information |
All information elements as defined in Part 5. |
Data Access |
ConformanceUnits specific to Clients and Servers that deal with the representation and use of automation data as specified in Part 8. |
ConformanceUnits which focus on Server Endpoint Discovery. |
|
GDS |
Conformance Units for a GDS. Includes units for global discovery and global certificate management. |
Historical Access |
|
Methods represent the function calls of Objects. Methods are invoked and return only after completion (successful or unsuccessful). |
|
Miscellaneous |
This group contains ConformanceUnits that cover miscellaneous subjects, such as recommended behaviours, documentation etc. These ConformanceUnits typically do not fit into any of the other groups. |
Monitored Item Services |
Clients define MonitoredItems to subscribe to data and Events. Each MonitoredItem identifies the item to be monitored and the Subscription to use to send Notifications. |
Bundles ConformanceUnits for all Services to add and delete OPC UA AddressSpace Nodes and References. |
|
Protocol and Encoding |
Covers all transport and encoding combinations that are specified in Part 6. |
Redundancy |
The design of OPC UA ensures that vendors can create redundant Clients and redundant Servers in a consistent manner. Redundancy may be used for high availability, fault tolerance and load balancing. |
Security |
Security related ConformanceUnits that can be profiled this includes all aspects of security. |
An (OPC UA) Session is an application layer connection. |
|
Subscriptions are used to report Notifications to the Client. |
|
View Services |
Clients use the View Service Set to navigate through the OPC UA AddressSpace or through a View (a subset) of the OPC UA AddressSpace. |
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.
Category |
Title |
Description |
Discovery Get Endpoints |
Support the GetEndpoints Service to obtain all Endpoints of the Server. This includes filtering based on Profiles. |
|
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" |
|
Support the FindServers Service only for itself. |
||
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. |
|
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. |
|
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. |
||
Discovery Configuration |
Allow configuration of the Discovery Server URL where the Server will register itself. Allow complete disabling of registration with a Discovery Server. |
|
Uses the FindServers Service to obtain all Servers installed on a given platform. |
||
Use FindServers Service to obtain URLs for specific Server URIs. |
||
Detect new Servers after an initial FindServers Service call. |
||
Support one of the options to locate Servers on the network. |
||
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). |
||
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. |
||
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. |
||
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. |
||
Uses the GetEndpoints Service to obtain all Endpoints for a given Server URI. |
||
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. |
||
Detect changes to the Endpoints after an initial GetEndpoints Service call. |
||
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.
Category |
Title |
Description |
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 |
||
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. |
|
Session Change User |
Support the use of ActivateSession to change the Session user. |
|
Session Cancel |
Support the Cancel Service to cancel outstanding requests. |
|
Session Minimum 1 |
Support minimum 1 Session (total). |
|
Session Minimum 2 Parallel |
Support minimum 2 parallel Sessions (total for all Clients). |
|
Session Minimum 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 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 |
||
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. |
||
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 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. |
||
Uses ActivateSession to change the Session user (impersonation). |
||
Make periodic requests to keep the Session alive. |
||
Read or monitor the ServerStatus/State Variable to recognize a potential shutdown of the Server and clean up resources. |
||
Use the Cancel Service to cancel outstanding requests. |
||
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 |
||
The Client shall interoperate with Servers that only support one Session. |
||
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 |
Support the AddNodes Service to add one or more Nodes into the OPC UA AddressSpace. |
||
Support the DeleteNodes Service to delete one or more Nodes from the OPC UA AddressSpace. |
||
Node Management Add Ref |
Support the AddReferences Service to add one or more References to one or more Nodes in the OPC UA AddressSpace. |
|
Node Management Delete Ref |
Support the DeleteReferences Service to delete one or more References of a Node in the OPC UA AddressSpace. |
|
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.
Category |
Title |
Description |
View Basic |
Support the View Service Set (Browse, BrowseNext). |
|
View TranslateBrowsePath |
Support TranslateBrowsePathsToNodeIds Service. |
|
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. |
|
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 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. |
|
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. |
||
View Client Basic ResultSet Filtering |
Makes use of the resultMask parameter to optimize the result set to be returned by the Server. |
|
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. |
|
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. |
||
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.
Category |
Title |
Description |
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. |
|
Attribute Read Complex |
Supports reading and encoding Values with structured DataTypes. |
|
Attribute Write Values |
Supports writing to values to one or more Attributes of one or more Nodes. |
|
Attribute Write Complex |
Supports writing and decoding Values with structured DataTypes. |
|
Attribute Write StatusCode & Timestamp |
Supports writing of StatusCode and Timestamps along with the Value. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
||
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. |
||
This ConformanceUnit refers to the ability of a Client to discover the available encodings and choose a specific one when calling the Read Service. |
||
Read and decode Values with structured DataTypes. |
||
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. |
||
Write and Encode Values with structured DataTypes. |
||
Use the Write Service to also write StatusCode and/or Timestamps along with a Value. |
||
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. |
||
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.
Category |
Title |
Description |
Method Call |
Support the Call Service to call (invoke) a Method which includes support for Method Parameters. |
|
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 |
Monitor Basic |
Support the following MonitoredItem Services: CreateMonitoredItems, ModifyMonitoredItems, DeleteMonitoredItems and SetMonitoringMode. |
|
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. |
|
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 ConformanceUnit includes 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 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. |
|
Monitor Items 2 |
Support at least 2 MonitoredItems per Subscription where the size of each MonitoredItem is at least equal to size of Double. |
|
Monitor Items 10 |
Support at least 10 MonitoredItems per Subscription where the size of each MonitoredItem is at least equal to size of Double. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Monitor Triggering |
Support the SetTriggering Service to create and/or delete triggering links for a triggering item. |
|
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. |
|
Monitor Complex Event Filter |
Support for the 'TypeOf' complex Event filter operator. |
|
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. |
|
Monitor Client Complex Value |
Monitor and decode Values with structured DataTypes. |
|
Monitor Client Deadband Filter |
Uses Absolute Deadband filters for subscriptions. |
|
Monitor Client by Index |
Use the IndexRange to select a single element or a range of elements when the Attribute value is an array. |
|
Monitor Client Aggregate Filter |
Uses Aggregate filters for Subscriptions. |
|
Monitor Client Events |
Use the MonitoredItem Service Set to create MonitoredItems for Event notifications. |
|
Use the Event filter 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 Event filter operator. |
||
Monitor Client Modify |
Use ModifyMonitoredItems Service to change the configuration setting. Use SetMonitoringMode Service to disable / enable sampling and / or publishing. |
|
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 |
Subscription Basic |
Support the following Subscription Services: CreateSubscription, ModifySubscription, DeleteSubscriptions, Publish, Republish and SetPublishingMode. |
|
Subscription Minimum 1 |
Support at least 1 Subscription per Session. This number has to be supported for all of the minimum required sessions. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Subscription Transfer |
Support TransferSubscriptions Service to transfer a Subscription from one Session to another. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Subscription Client Republish |
Evaluate the sequence number in Notifications to detect lost Notifications. Use Republish to request missing Notifications. |
|
Subscription Client Modify |
Allow modification of the Subscription configuration using the ModifySubscription Service. |
|
Subscription Client TransferSubscriptions |
The Client supports transferring Subscription from other Clients. This ConformanceUnit is used as part of redundant Clients. |
|
Subscription Client Multiple |
Use multiple Subscriptions to reduce the payload of individual Notifications. |
|
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. |
|
Subscription Client Durable |
Use durable Subscriptions. |
Table 11 describes security related ConformanceUnits. All of these ConformanceUnits apply equally to both Clients and Servers, where a Client uses the related security unit and a Server supports the use of it. These items are defined in detail in OPC 10000-6. It is recommended that a Server and Client support as many of these options as possible in order to achieve increased levels of interoperability. It is the task of an administrator to determine which of these ConformanceUnits are exposed in a given deployed Server or Client application.
Category |
Title |
Description |
Security |
Security User Name Password |
The Server supports User Name/Password combination(s). The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User X509 |
The Server supports a public/private key pair for user identity. The use of this feature must be able to be enabled or disabled by an administrator. |
Security |
Security User IssuedToken Kerberos |
The Server supports a Kerberos Server token for User Identity. The use of this feature must be able to be enabled or disabled by an Administrator. The use of this token is defined in Kerberos Token Documentation. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User IssuedToken Kerberos Windows |
The Server supports the Windows implementation of Kerberos Tokens. This ConformanceUnit only applies if the "Security User IssuedToken Kerberos" is supported. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User JWT IssuedToken |
The Server supports a JSON Web Token (JWT) for user identity. Part 6 describes OAuth2 and JWTs in more detail. The use of this feature must be able to be enabled or disabled by an Administrator. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User Anonymous |
The Server provides support for Anonymous access. The use of this feature must be able to be enabled or disabled by an Administrator. By default Anonymous access shall be disabled. |
Security |
Security User Name Password Client |
A Client uses a User Name/Password combination. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User X509 Client |
A Client uses a public/private key pair for user identity. This includes all validation and trust issues associated with a certificate. |
Security |
Security User IssuedToken Kerberos Client |
A Client uses a Kerberos Server token. The use of this token is defined by the Kerberos documentation. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security User IssuedToken Kerberos Windows Client |
A Client uses the Windows implementation of Kerberos tokens. This ConformanceUnit only applies if the "Security User IssuedToken Kerberos Client" is supported. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN.
|
Security |
Security User JWT IssuedToken Client |
A Client uses a JSON Web Token (JWT) for user identity. Part 6 describes OAuth2 and JWTs in more detail. The token will be encrypted if required by the security policy of the User Token Policy or by the security policy of the endpoint. An unencrypted token either requires message encryption or means outside the scope of OPC UA to secure the identity token so that it cannot be retrieved by sniffing the communication. One option would be a secure transport like a VPN. |
Security |
Security Invalid user token |
Servers shall take proper measures to protect against attacks on user identity tokens. Such an attack is assumed if repeated connection attempts with invalid user identity tokens happen. See ActivateSession Service in UA Part 4. |
Security |
Security User JWT Token Policy |
The Server supports one or more Endpoints with a UserTokenPolicy that includes a JWT IssuerEndpointUrl as defined in UA Part 6. For JWT the issuerEndpointUrl is a JSON object that includes all parameters that define the AuthorizationService. As part of the JWT Token Policy, the Server shall support at least one of the following Authority Profile Conformance Units. The URIs defined in the ConformanceUnit shall be exposed in the authorityProfileURI field of the JWT Token Policy. |
Security |
Security User JWT Token Policy Client |
The Client understands and uses the Authorization Service definition inside the JWT UserTokenPolicy returned with GetEndpoints. It shall support at least one of the following Authority Profile Conformance Units. The URIs defined in the ConformanceUnit are in the authorityProfileURI field of the JWT Token Policy exposed in Server Endpoints. |
Security |
OAuth2 Authority Profile |
This unit indicates support of OAuth2 over HTTPS to request access tokens. The URI for the interactions with this authority is "http://opcfoundation.org/UA/Authorization#OAuth2" |
Security |
OPC UA Authority Profile |
This unit indicates support of the OPC UA Methods defined in UA Part 12 to request access tokens. The URI for the interactions with this authority is "http://opcfoundation.org/UA/Authorization#OPCUA" |
Security |
Azure Identity Provider Authority Profile |
This unit indicates support of the Azure identity provider to request access tokens. The URI for the interactions with this authority is "http://opcfoundation.org/UA/Authorization#Azure" |
Security |
Security Certificate Validation |
A certificate will be validated as specified in Part 4. This includes among others structure and signature examination. Allowing for some validation errors to be suppressed by administration directive. |
Security |
Security Default ApplicationInstance Certificate |
An application, when installed, has a default ApplicationInstanceCertificate that is valid. The default ApplicationInstanceCertificate shall either be created as part of the installation or installation instructions explicitly describe the process to create and apply a default ApplicationInstanceCertificate to the application. |
Security |
Security – No Application Authentication |
The Server supports being able to be configured for no application authentication, just User authentication and normal encryption/signing: – Configure Server to accept all certificates – Certificates are just used for message security (signing and encryption) – Users level is used for authentication |
Security |
Security Policy Required |
Support at least Security Policy [A] and Security Policy [B].Support of multiple Security Policies - even obsolete ones - is recommended. This will provide best interoperability and allows the end user to choose the required level of security. Obsolete Security Policies shall not be enabled / usable without administrative intervention. |
Security |
Security None CreateSession ActivateSession |
When SecurityPolicy=None, the CreateSession and ActivateSession service allow for a NULL/empty signature and do not require Application Certificates or a Nonce. |
Security |
Security None CreateSession ActivateSession 1.0 |
The Client can connect to Servers that require a certificate being passed on Session establishment. The Client in this case will first try without a certificate and if this fails present a certificate. |
Security |
Security TLS General |
This ConformanceUnit indicates that at least one of the transport security Profiles for TLS is supported by this application. It is used in TLS transport Profiles, but the choice of transport security profile is optional. The actual used security profile will default to the most secure one. |
Security |
Security TLS_RSA with AES_256_CBC_SHA256 |
The connection is established using TLS_RSA_WITH_AES_256_CBC_SHA256. That has a MinAsymmetricKeyLength – 2048, MaxAsymmetricKeyLength – 4096, AsymmetricSignatureAlgorithm – RSA_SHA256. (TLS 1.2) |
Security |
Security TLS_DHE_RSA with AES_nnn_CBC_SHA256 |
The connection is established using TLS_DHE_RSA with AES_128_CBC_SHA256 or TLS_DHE_RSA with AES_256_CBC_SHA256. That has a MinAsymmetricKeyLength – 2048, MaxAsymmetricKeyLength – 4096, CertificateSignatureAlgorithm – RSA_SHA256. (TLS 1.2). |
Security |
Security Encryption Required |
Encryption is required using the algorithms provided in the security algorithm suite. |
Security |
Security Signing Required |
Signing is required using the algorithms provided in the security algorithm suite. |
Security |
Security Time Synch – Configuration |
Application supports configuring acceptable clock skew. |
Security |
Security Time Synch – NTP / OS Based support |
Application supports time synchronization, either via an implementation of Network Time Protocol (NTP), or via features of a standard operating system. |
Security |
Security Time Synch – UA based support |
An application makes use of the responses header timestamp provided by a configured well know source, such as a Discovery Server to synchronize the time on the application and that this time synchronization occurs periodically. Use of this TimeSyncing can be configured. |
Security |
Security Administration |
Allow configuration of the following Security related items (when they apply). * select the allowed User identification policy or policies (e.g. User Name/Password or X509). * enable/disable the security policy "None" or other security policies. * enable/disable endpoints with MessageSecurityMode SIGN or SIGNANDENCRYPT. * set the permitted certification authorities. * define how to react to unknown Certificates. * allow accepting any valid Certificate |
Security |
Security Administration – XML Schema |
Support the OPC UA defined XML schema for importing and exporting security configuration information. This schema is defined in Part 6. |
Security |
Security Certificate Administration |
Allow a site administrator to be able to assign a site specific ApplicationInstanceCertificate and if desired to configure a site specific Certificate Authority (CA). |
Security |
Security Role Server Base |
Support the User Authorization Information Model defined in UA Parts 3 and 5 - like Roles - and the RolePermissions and UserRolePermissions Attributes. |
Security |
Security Role Well Known |
Support the well-known Roles "ConfigureAdmin" and "SecurityAdmin" with suggested permissions defined in UA Part 3. |
Security |
Security Role Server IdentityManagement |
Allow authorized users to add and/or remove Identities from Roles with the appropriate Methods. |
Security |
Security Role Server Management |
Allow authorized users to create new Roles and/or remove Roles with the appropriate Methods. |
Security |
Security Role Server Restrict Applications |
Support adding applications to a Role with the appropriate Methods so that only these applications can use this Role. |
Security |
Security Role Server Restrict Endpoints |
Support adding Endpoints to a Role with the appropriate Methods. With this restriction a Role is only applied when a Client connects via one of these Endpoints. |
Security |
Security Role Server DefaultRolePermissions |
Allow authorized users to set the DefaultRolePermissions Property for certain NameSpaces. DefaultRolePermissions are applied if no RolePermissions are associated with a Node. |
Security |
Security Role Server RolePermissions |
Allow authorized users to set the RolePermissions Attribute on Nodes. |
Security |
Security Role Server Authorization |
Restrict access based on the configured Roles and permissions. |
Security |
Security Role Client Base |
Understand and use the User Authorization Information Model defined in UA Part 5 and the RolePermissions Attribute. |
Security |
Security Role Client Management |
Support creating new Roles and adding Identities as well as remove Roles or Identities using the appropriate Methods. |
Security |
Security Role Client Restrict Applications |
Use the appropriate Methods to add applications to a Role so that only these applications can use this Role. |
Security |
Security Role Client Restrict Endpoints |
Use the appropriate Methods to add Endpoints to a Role. With this restriction a Role is only applied when a Client connects via one of these Endpoints. |
Security |
Security Role Client DefaultRolePermissions |
Ability to set the DefaultRolePermissions Property for certain NameSpaces. DefaultRolePermissions are applied if no RolePermissions are associated with a Node. |
Security |
Security Role Client RolePermissions |
|
Security |
Pull Model for Global Certificate and TrustList Management |
Use the Certificate Management Services of UA Part 12 for the Pull model to manage Application Instance Certificates and Trust Lists including Revocation Lists. |
Security |
Push Model for Global Certificate and TrustList Management |
Support the Certificate Management Services of UA Part 12 for the Push model to manage Application Instance Certificates and Trust Lists including Revocation Lists. |
Security |
Pull Model for KeyCredential Service |
Use the Methods on an instance of the KeyCredentialServiceType (Pull model) to obtain KeyCredentials as specified in UA Part 12. |
Security |
Push Model for KeyCredential Service |
Support the KeyCredential Services Push model of UA Part 12 to obtain KeyCredentials. This includes support of one or more instances of the KeyCredentialConfigurationType and the Methods to update or delete credentials. |
Security |
Authorization Service Configuration Server |
Support the Object Types defined in Part 12 to allow configuration of information needed to accept Access Tokens when presented by the Client during session establishment. Access Tokens are issued by Authorization Services. |
Security |
Authorization Service Client |
Use the RequestAccessToken Method defined in UA Part 12. |
Security |
SymmetricSignatureAlgorithm_None |
This algorithm does not apply. |
Security |
SymmetricSignatureAlgorithm_HMAC-SHA1 |
A keyed hash which is defined in https://tools.ietf.org/html/rfc2104. The hash algorithm is SHA1 and is described in https://tools.ietf.org/html/rfc3174. The URI is http://www.w3.org/2000/09/xmldsig#hmac-sha1. No known exploits exist when using SHA1 with a keyed hash, however, SHA1 was broken in 2017 so use of this algorithm is not recommended. |
Security |
SymmetricSignatureAlgorithm_HMAC-SHA2-256 |
A keyed hash used for message authentication which is defined in https://tools.ietf.org/html/rfc2104. The hash algorithm is SHA2 with 256 bits and described in https://tools.ietf.org/html/rfc4634
|
Security |
SymmetricEncryptionAlgorithm_None |
This algorithm does not apply. |
Security |
SymmetricEncryptionAlgorithm_AES128-CBC |
The AES encryption algorithm which is defined in http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. Multiple blocks encrypted using the CBC mode described in http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf. The key size is 128 bits. The block size is 16 bytes. The URI is http://www.w3.org/2001/04/xmlenc#aes128-cbc. |
Security |
SymmetricEncryptionAlgorithm_AES256-CBC |
The AES encryption algorithm which is defined in http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. Multiple blocks encrypted using the CBC mode described in http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf. The key size is 256 bits. The block size is 16 bytes. The URI is http://www.w3.org/2001/04/xmlenc#aes256-cbc. |
Security |
SymmetricEncryptionAlgorithm_AES128-CTR |
The AES encryption algorithm which is defined in http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. Multiple blocks encrypted using the CTR mode described in http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf. The counter block format is defined in https://tools.ietf.org/html/rfc3686. The key size is 128 bits. The block size is 16 bytes. The input nonce length is 4 bytes. |
Security |
SymmetricEncryptionAlgorithm_AES256-CTR |
The AES encryption algorithm which is defined in http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. The key size is 256 bits. The block size is 16 bytes. Multiple blocks encrypted using the CTR mode described in http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf. The counter block format is defined in https://tools.ietf.org/html/rfc3686. The key size is 128 bits. The block size is 16 bytes. The input nonce length is 4 bytes. |
Security |
AsymmetricSignatureAlgorithm_None |
This algorithm does not apply. |
Security |
AsymmetricSignatureAlgorithm_RSA- PKCS15-SHA1 |
The RSA signature algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSASSA-PKCS1-v1_5 scheme is used. The hash algorithm is SHA1 and is described in https://tools.ietf.org/html/rfc3174. The URI is http://www.w3.org/2000/09/xmldsig#rsa-sha1. SHA1 was broken in 2017 so this algorithm should not be used. |
Security |
AsymmetricSignatureAlgorithm_RSA-PKCS15-SHA2-256 |
The RSA signature algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSASSA-PKCS1-v1_5 scheme is used. The hash algorithm is SHA2 with 256bits and is described in https://tools.ietf.org/html/rfc6234. The URI is http://www.w3.org/2001/04/xmldsig-more#rsa-sha256. |
Security |
AsymmetricSignatureAlgorithm_RSA-PSS -SHA2-256 |
The RSA signature algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSASSA-PSS scheme is used. The hash algorithm is SHA2 with 256bits and is described in https://tools.ietf.org/html/rfc6234. The mask generation algorithm also uses SHA2 with 256 bits. The salt length is 32 bytes. The URI is http://opcfoundation.org/UA/security/rsa-pss -sha2-256. |
Security |
AsymmetricEncryptionAlgorithm_None |
This algorithm does not apply. |
Security |
AsymmetricEncryptionAlgorithm_RSA-PKCS15 |
The RSA encryption algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSAES-PKCS1-v1_5 scheme is used. The URI is http://www.w3.org/2001/04/xmlenc#rsa-1_5. The RSAES-PKCS1-v1_5 scheme has known weaknesses and is not recommended. |
Security |
AsymmetricEncryptionAlgorithm_RSA-OAEP-SHA1 |
The RSA encryption algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSAES-OAEP scheme is used. The hash algorithm is SHA1 and is described in https://tools.ietf.org/html/rfc6234. The mask generation algorithm also uses SHA1. The URI is http://www.w3.org/2001/04/xmlenc#rsa-oaep. No known exploits exist when using SHA1 with RSAES-OAEP, however, SHA1 was broken in 2017 so use of this algorithm is not recommended. |
Security |
AsymmetricEncryptionAlgorithm_RSA-OAEP-SHA2-256 |
The RSA encryption algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSAES-OAEP scheme is used. The hash algorithm is SHA2 with 256 bits and is described in https://tools.ietf.org/html/rfc6234. The mask generation algorithm also uses SHA2 with 256 bits. The URI is http://opcfoundation.org/UA/security/rsa-oaep-sha2-256. |
Security |
KeyDerivationAlgorithm_None |
This algorithm does not apply. |
Security |
KeyDerivationAlgorithm_P-SHA1 |
The P_SHA-1 pseudo-random function defined in https://tools.ietf.org/html/rfc4346. The URI is http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1. No known exploits exist when using SHA1 with P-SHA-1, however, SHA1 was broken in 2017 so use of this algorithm is not recommended. |
Security |
KeyDerivationAlgorithm_P-SHA2-256 |
The P_SHA256 pseudo-random function defined in https://tools.ietf.org/html/rfc5246. The URI is http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha256. |
Security |
CertificateSignatureAlgorithm_None |
This algorithm does not apply. |
Security |
CertificateSignatureAlgorithm_RSA-PKCS15-SHA2-256 |
The RSA signature algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSASSA-PKCS1-v1_5 scheme is used. The hash algorithm is SHA2 with 256bits and is described in https://tools.ietf.org/html/rfc6234. The SHA2 algorithm with 384 or 512 bits may be used instead of SHA2 with 256 bits. The URI is http://www.w3.org/2001/04/xmldsig-more#rsa-sha256. |
Security |
CertificateSignatureAlgorithm_RSA-PKCS15-SHA1 |
The RSA signature algorithm which is defined in https://tools.ietf.org/html/rfc3447. The RSASSA-PKCS1-v1_5 scheme is used. The hash algorithm is SHA1 and is described in https://tools.ietf.org/html/rfc3174. The URI is http://www.w3.org/2000/09/xmldsig#rsa-sha1. SHA1 was broken in 2017 so this algorithm should not be used. The SHA2 algorithm with 244, 256, 384 or 512 bits may be used instead of SHA1. The SHA2 algorithm is described in https://tools.ietf.org/html/rfc6234. |
Security |
SecurtyPolicy_None_Limits |
DerivedSignatureKeyLength: 0 |
Security |
Aes128-Sha256-RsaOaep_Limits |
-> DerivedSignatureKeyLength: 256 bits -> MinAsymmetricKeyLength: 2048 bits -> MaxAsymmetricKeyLength: 4096 bits -> SecureChannelNonceLength: 32 bytes |
Security |
Basic256Sha256_Limits |
-> DerivedSignatureKeyLength: 256 bits -> MinAsymmetricKeyLength: 2048 bits -> MaxAsymmetricKeyLength: 4096 bits -> SecureChannelNonceLength: 32 bytes |
Security |
Aes256-Sha256-RsaPss_Limits |
-> DerivedSignatureKeyLength: 256 bits -> MinAsymmetricKeyLength: 2048 bits -> MaxAsymmetricKeyLength: 4096 bits -> SecureChannelNonceLength: 32 bytes |
Security |
Basic128Rsa15_Limits |
-> DerivedSignatureKeyLength: 128 bits -> MinAsymmetricKeyLength: 1024 bits -> MaxAsymmetricKeyLength: 2048 bits -> SecureChannelNonceLength: 16 bytes |
Security |
Basic256_Limits |
-> DerivedSignatureKeyLength: 192 bits -> MinAsymmetricKeyLength: 1024 bits -> MaxAsymmetricKeyLength: 2048 bits -> SecureChannelNonceLength: 32 bytes |
Table 12 describes protocol and encoding related features that can be profiled. These features are defined in detail in OPC 10000-6. It is recommended that Servers and Clients support as many of these options as possible for greatest interoperability.
Table 12 – Protocol and Encoding
Category |
Title |
Description |
Protocol Reverse Connect Server |
Support reverse connectivity by sending a ReverseHello message to a Client. The reverse connect procedure can be applied to several transports as specified in UA Part 6 and shall be supported for all of these that are available in a Server. |
|
Protocol Configuration |
Allow administration of the Endpoints and the port number used by the Endpoints. |
|
Protocol Reverse Connect Client |
Support reverse connectivity by accepting Reverse Hello messages from Servers and establish a Secure Channel if the URI of the Server is accepted by Client or Client user. The reverse connect procedure can be applied to several transports as specified in UA Part 6 and shall be supported for all of these transports that are supported by the Client. |
|
Transport |
Protocol UA TCP |
Support the UA TCP transport protocol as defined in UA Part 6. |
Transport |
Protocol HTTPS |
Support the HTTPS protocol as defined in UA Part 6. |
Transport |
Protocol Web Sockets |
Support the WebSocket protocol (WSS) with at least one of the sub-protocols defined in UA Part 6. |
Transport |
UA Secure Conversation |
Support UA Secure Conversation specified in UA Part 6. |
Transport |
UA Binary Encoding |
Support UA Binary Encoding. Values of these data types are encoded in compact binary formats, contiguously and without tagging. I.e. the receiver is assumed to understand the structure it is decoding. |
Transport |
UA SOAP-XML Encoding |
Support Soap V1.2 based Xml Encoding as defined in UA Part 6. The XML elements include all information necessary to convert it back into OPC UA structures of any language. |
Transport |
JSON Reversible Encoding |
Support reversible JSON Encoding as defined in UA Part 6. The JSON object includes all information necessary to convert it back into OPC UA structures of any language. |
Table 13 describes base features related items that can be profiled. For additional information about these items, please refer to OPC 10000-3, OPC 10000-5 and OPC 10000-6. Servers with a larger resource capacity would support most of this functionality, but smaller resource constraint Server may omit some of this functionality. Many Clients would utilize some of this functionality and more robust Clients would utilize most of this functionality.
Category |
Title |
Description |
Base Info Core Structure |
The Server supports the Server Object, ServerCapabilities and supports the OPC UA AddressSpace structure. |
|
Base Info Server Capabilities |
The Server supports publishing of the Server limitation in the ServerCapabilities, including MaxArrayLength, MaxStringLength, MaxNodePerRead, MaxNodesPerWrite, MaxNodesPerSubscription and MaxNodesPerBrowse. |
|
Base Info Progress Events |
The Server exposes if generation of Progress events for long running service calls such as HistoryRead or Query is supported. If it is listed as supported in ServerCapabilities, than the actual events are verified. |
|
Base Info Diagnostics |
The Server supports the collection of diagnostic information. The EnabledFlag in the ServerDiagnostics Object can be set TRUE and in that case all static and dynamic Objects and Variables for diagnostic data as defined in UA Part 5 are supported. |
|
Base Info System Status |
The Server supports generating SystemStatusChangeEventType indicating shutdown of the Server (SourceNode=Server). |
|
Base Info Estimated Return Time |
Server supports the EstimatedReturnTime Property. It indicates the time at which the Server is expected to have a ServerStatus.State of RUNNING_0. Clients can use this information to govern the reconnect logic. |
|
Base Info System Status Underlying System |
The Server supports generating SystemStatusChangeEventType indicating changes to an Underlying System (SourceNode = Server). This event can also be used to indicate that the OPC UA Server has underlying systems. |
|
Base Info Device Failure |
The Server supports generating DeviceFailureEventType indicating changes to individual devices in an underlying system. |
|
Base Info GetMonitoredItems Method |
The Server supports obtaining subscription information via GetMonitoredItems Method on the Server object. |
|
Base Info ResendData Method |
Support the standard Method ResendData (defined in UA Part 5) to get the latest value of the monitored items of a Subscription. |
|
Base Info Type System |
The Server exposes a Type System with DataTypes, ReferenceTypes, ObjectTypes and VariableTypes including all of the OPC UA (namespace 0) types that are used by the Server, as defined in Part 5. Items that are defined in Namespace 0 but are defined in other specification parts are tested as part of the other information models. |
|
Base Info Custom Type System |
The Server supports custom types (i.e. types that are derived from well-known ObjectTypes, VariableTypes, ReferenceTypes or DataTypes). Supporting this conformance unit requires that the custom types with their full inheritance tree are exposed in the AddressSpace. |
|
Base Info Model Change |
The Server supports ModelChange Event and NodeVersion Property for all Nodes that the server allows Model changes for. |
|
Base Info Placeholder Modelling Rules |
The Server supports defining custom Object or Variables that include the use of OptionalPlaceholder or MandatoryPlaceholder modelling rules. |
|
Base Info SemanticChange |
The Server supports SemanticChangeEvent for some Properties. This includes setting the SemanticChange Bit in the status when a semantic change occurs, such as a change in the engineering unit associated with a value. |
|
Base Info EventQueueOverflow EventType |
The Server supports the EventQueueOverflowEventType as defined in Part 4. |
|
Base Info OptionSet |
The Server supports the VariableType OptionSet. |
|
Base Info ValueAsText |
The Server supports the Property ValueAsText for enumerated DataTypes. |
|
Base Info Engineering Units |
The Server supports defining Variables that include the Engineering Units Property. This property makes use of the EUInformation data structure. This structure by default represents the UN/CEFACT "Codes for Units of Measurement". If a different EU representation is required then the EUInformation.namespaceUri will indicate the alternate namespace. |
|
Base Info Selection List |
The Server supports Variables of the SelectionListType VariableType. |
|
Base Info FileType Base |
The Server supports the FileType Object (see Part 5). File writing may be restricted. |
|
Base Info FileType Write |
The Server supports the FileType Object, including writing of files. Also included is the support of user access control on FileType Object. |
|
Base Info RequestServerStateChange Method |
||
Base Info State Machine Instance |
Support instances of the StateMachineType or a sub-type in the AddressSpace. Generate Events when significant state changes occur. At least one GeneratesEvent Reference exists to define the Event(s) triggered on state changes. |
|
Base Info Finite State Machine Instance |
Support instances of the FiniteStateMachineType or a sub-type in the AddressSpace. |
|
Base Info Available States and Transitions |
Support the Properties AvailableStates and AvailableTransitions defined for the FiniteStateMachineType. |
|
Base Info Client Basic |
The Client uses the defined OPC UA AddressSpace. Access or provide access to Server information like the Server's state, BuildInfo, capabilities, Namespace Table and Type Model. |
|
Base Info Client Honour Operation Limits |
The Client shall honour Server limits described in ServerCapabilites Object of Server. |
|
Base Info Event Processing |
The Client is able to subscribe for and process base OPC UA Events. |
|
Base Info Client System Status |
The Client makes use of SystemStatusChangeEventType to detect server shutdowns. |
|
Base Info Client Estimated Return Time |
Client uses the EstimatedReturnTime Property to govern the reconnect logic. |
|
Base Info Client System Status Underlying System |
The Client makes use of SystemStatusChangeEventType to detect changes to an Underlying System (SourceNode = Server). |
|
Base Info Client Device Failure |
The Client makes use of DeviceFailureEventType to detect failed devices in underlying systems |
|
Base Info Client Progress Events |
The Client makes use of ProgressEvents, including checking for their support. |
|
Base Info Client Diagnostics |
The Client provides interactive or programmatic access to the Server's diagnostic information. |
|
Base Info Client Type Programming |
The Client programmatically process instances of Objects or Variables by using their type definitions. This includes custom DataTypes, ObjectTypes and VariableTypes. |
|
Base Info Client Type Pre-Knowledge |
The Client shall interoperate with Servers that do not expose OPC UA Types in AddressSpace. |
|
The Client can access Nodes that have an extended NodeID that reference a Server different then the orginating Server. It is acceptable that the Server configuration information be pre-configured on the Client. |
||
Base Info Client Change Events |
The Client processes ModelChangeEvents to detect changes in the Server's OPC UA AddressSpace and take appropriate action for a given change. |
|
The Client makes use of GetMonitoredItems Method to recover for communication interruptions and/or to recover subscription information. |
||
The Client makes use of ResendData Method to fetch the last value of the data monitored items. |
||
Base Info Client Selection List |
The Client uses and understands Variables of the SelectionListType VariableType. |
|
Base Info Client FileType Base |
The Client can access a FileType Object to transfer a file from the Server to the Client. This includes large files. |
|
Base Info Client FileType Write |
The Client can access a FileType Object to transfer a file from the Client to the Server. This includes large files. |
|
Base Info Client RequestServerStateChange |
||
Base Info Client State Machine Instance |
Use instances of the StateMachineType or a sub-type. Monitor either the CurrentState component Variable of the instance or the Events triggered as effect of state changes. Use Methods when defined for the StateMachineType to affect the state. |
|
Base Info Client Finite State Machine Instance |
Use instances of the FinitStateMachineType or a sub-type. Monitor either the CurrentState component Variable of the instance or the Events triggered as effect of state changes. |
|
Base Info Client Available States and Transitions |
Use the Properties AvailableStates and AvailableTransitions when exposed by a Server. |
Table 14 describes Address Space Model information related items that can be profiled. The details of these model items are defined in OPC 10000-3 and OPC 10000-5. This includes Server Facets that describe what a Server exposes and Client Facets that describe what a Client consumes.
Table 14 – Address Space Model
Category |
Title |
Description |
Address Space Base |
Support the NodeClasses with their Attributes and References as defined in Part 3. This includes for instance: Object, ObjectType, Variable, VariableType, References and DataType. |
|
Address Space Atomicity |
Support setting the NonatomicRead and NonatomicWrite flags in the AccessLevelEx Attribute for Variable Nodes to indicate whether Read or Write operations can be performed in atomic manner. If the flags are set to '1', atomicity cannot be assured. |
|
Address Space Full Array Only |
Support setting the WriteFullArrayOnly flag in the AccessLevelEx Attribute for Variable Nodes of non-scalar data types to indicate whether write operations for an array can be performed with an IndexRange. |
|
Address Space Events |
Support OPC UA AddressSpace elements for generating Event notifications. This includes at least one Node with an EventNotifier Attribute set to True (Server Node). |
|
Address Space Complex Data Dictionary |
Support structured DataTypes with a Data Dictionary. Note that V1.04 of OPC UA Part 3 specifies a simplified approach using the new DataTypeDefinition Attribute. The "Address Space DataTypeDefinition Attribute" Conformance Unit requires support of the DataTypeDefinition Attribute. Support of a DataDictionary will be deprecated in one of the next OPC UA versions. |
|
Address Space DataTypeDefinition Attribute |
Support structured DataTypes and expose the meta data and encoding information with a StructureDefinitionType via the DataTypeDefinition Attribute. |
|
Address Space Method |
||
Address Space Notifier Hierarchy |
Supports using the HasNotifier reference to build a hierarchy of Object Nodes that are notifiers with other notifier Object Nodes. |
|
Address Space Source Hierarchy |
Supports hierarchies of event sources where each hierarchy roots in an Object Node that is a notifier. The HasEventSource Reference is used to relate the Nodes within a hierarchy. If Conditions are supported, the hierarchy shall include HasCondition References. |
|
Address Space WriteMask |
Supports WriteMask indicating the write access availability for all attributes, including not supported attributes. |
|
Address Space UserWriteMask |
Supports UserWriteMask indicating the write access availability for all attributes for the given user, including not supported attributes. Support includes at least two levels of users. |
|
Address Space UserWriteMask Multilevel |
Supports UserWriteMask indicating the write access availability for all attributes for the given user, including not supported attributes. This includes supporting multiple levels of access control for all nodes in the system. |
|
Address Space User Access Level Full |
Implements User Access Level security, this includes supporting multiple levels of access control for Variable nodes in the system. This includes an indication of read, write, Historical read and Historical write access to the Value Attribute. |
|
Address Space User Access Level Base |
Implements User Access Level Security for Variable nodes, this includes at least two users in the system. This includes an indication of read, write, historical read and Historical write access to the value attribute |
|
Address Space Client Base |
Uses and understands the NodeClasses with their Attributes and behaviour as defined in Part 3. This includes for instance: Object, ObjectType, Variable, VariableType, References and DataType. This includes treating BrowseNames and String NodeIds as case sensitive. |
|
Address Space Client Atomicity |
Access the NonatomicRead or NonatomicWrite flags in the AccessLevelEx Attribute of Variable Nodes to determine whether Read or Write operations can be performed in atomic manner. This information will typically be shown to a user for further action. |
|
Address Space Client Full Array Only |
Access the WriteFullArrayOnly flag in the AccessLevelEx Attribute of Variable Nodes with non-scalar data types to determine whether writing to an array with an IndexRange is allowed. |
|
Address Space Client Complex Data Dictionary |
Uses and understands arbitrary structured DataTypes via Data Dictionary. Note that V1.04 of OPC UA Part 3 specifies a simplified approach using the new DataTypeDefinition Attribute. The "Address Space Client DataTypeDefinition Attribute" Conformance Unit requires support of the DataTypeDefinition Attribute. |
|
Address Space Client DataTypeDefinition Attribute |
Uses and understands arbitrary structured DataTypes where the meta data and encoding information are exposed with the StructureDefinitionType via the DataTypeDefinition Attribute. |
|
Address Space Client Notifier Hierarchy |
Uses hierarchy of Object Nodes that are notifiers to detect specific areas where the Client can subscribe for Events. |
|
Address Space Client Source Hierarchy |
Detect and use the hierarchy of event sources exposed for specific Object Nodes that are event notifiers. |
Table 15 describes Data Access information model related items that can be profiled. The details of this model are defined in OPC 10000-8. Servers could expose this information model and Clients could utilize this information model.
Category |
Title |
Description |
Data Access DataItems |
Provide Variables of DataItemType or one of its subtypes. Support the StatusCodes specified in Part 8. Support of optional Properties (e.g. "InstrumentRange") shall be verified during certification testing and will be shown in the Certificate. |
|
Data Access AnalogItems |
Support AnalogItemType Variables with corresponding Properties. The support of optional properties will be listed. |
|
Data Access PercentDeadband |
Support PercentDeadband filter when monitoring AnalogItemType Variables. |
|
Data Access Semantic Changes |
Support semantic changes of AnalogItemType items (EURange Property and/or EngineeringUnits Property). Support semantic change StatusCode bits where appropriate. |
|
Data Access TwoState |
Support TwoStateDiscreteType Variables with corresponding Properties. |
|
Data Access MultiState |
Support MultiStateDiscreteType Variables with corresponding Properties. |
|
Data Access MultiStateValueDiscrete |
Support MultiStateValueDiscreteType Variables with corresponding Properties. |
|
Data Access ArrayItemType |
Provide Variables of ArrayItemType or one of its subtypes (YArrayItemType, XYArrayItemType, ImageArrayType, CubeArrayType and NDimensionArrayType). The supported subtypes will be listed. Support for this type includes supporting all of the mandatory properties including AxisInformation. |
|
Data Access Complex Number |
Supports the Complex Number data type. This data type is available for any variable types that do not have other explicit restrictions. |
|
Data Access DoubleComplex Number |
Supports the DoubleComplex Number data type. This data type is available for any variable types that do not have other explicit restrictions. |
|
Data Access Client Basic |
Understand the DataAccess Variable Types. Make use of the standard Properties if applicable. |
|
Data Access Client AnalogItems |
Understand AnalogItemType Variables with corresponding Properties. |
|
Data Access Client TwoState |
Understand TwoStateDiscreteType Variables with corresponding Properties. |
|
Data Access Client MultiState |
Understand MultiStateDiscreteType Variables with corresponding Properties. |
|
Data Access Client MultiStateValueDiscrete |
Understand MultiStateValueDiscreteType Variables with corresponding Properties. |
|
Data Access Client Deadband |
Use PercentDeadband to filter value changes of AnalogItemType Variables. |
|
Data Access Client SemanticChange |
Recognize the semantic change bit in the StatusCode while monitoring items and take proper action. Typically, the Client has to re-read Properties that define type-specific semantic like the EURange and EngineeringUnits Properties. |
Table 16 describes Alarm and Conditions information model related items that can be profiled. The details of this model are defined in OPC 10000-9. Servers that deal with Alarm and Conditions would expose this information model and Clients that process Alarms and Conditions would utilize this information model.
Table 16 – Alarms and Conditions
Category |
Title |
Description |
A & C Basic |
||
A & C Enable |
Supports Enable and Disable Methods. |
|
A & C Refresh |
Supports ConditionRefresh Method and the concept of a refresh. |
|
A & C Refresh2 |
Supports ConditionRefresh2 Method and the concept of a monitored item based refresh. |
|
A & C Instances |
Support exposing of A&C Condition instances in the AddressSpace. |
|
A & C ConditionClasses |
Supports multiple Condition classes for grouping and filtering of Alarms. |
|
A & C Condition Sub-Classes |
Support assigning multiple Condition sub-classes for grouping and filtering of Alarms. |
|
A & C Acknowledge |
Supports the Acknowledge concept, Acknowledge Method, and AcknowledgeableCondition Type. |
|
A & C Confirm |
Supports the concept of Confirm and the Confirm Method. |
|
A & C Comment |
Supports the concept of Comments and the AddComment Method. |
|
A & C Alarm |
Supports the mandatory features of the AlarmCondition Type. |
|
A & C Alarm Metrics |
Support the collection of alarm metrics data as defined in UA Part 9. This implies one of more instances of the AlarmMetricsType.
|
|
A & C Branch |
Support for branching of Condition Types and any subtypes, such as AcknowledgeableConditionType and AlarmConditionType etc. |
|
A & C Shelving |
Support the concept of shelving and the TimedShelve, OneShotShelve and Unshelve Methods. |
|
A & C Suppression |
Support the SuppressedState. |
|
A & C Suppression by Operator |
Support the Suppress and UnSuppress Methods to allow an operator control over the SuppressedState. |
|
A & C Silencing |
Support the concept of silencing and the Silence Method. |
|
A & C Out Of Service |
Support the OutOfService state and the OutOfService Method. |
|
A & C On-Off Delay |
Support the OnDelay and OffDelay Properties to eliminate nuisance Alarms. |
|
A & C Re-Alarming |
Support the ReAlarmTime and ReAlarmRepeatCount Properties that define automatic re-annunciation of Alarms in certain conditions. |
|
A & C First in Group Alarm |
Support the "FirstInGroup" elements for an Alarm, indicating which Alarm of a group was the trigger. |
|
A & C Audible Sound |
Support the AudibleSound Property. This Property contains the sound file that is to be played if an audible Alarm is to be generated. |
|
A & C Exclusive Level |
Supports Exclusive Level Alarm type. |
|
A & C Exclusive Limit |
Supports Exclusive Limit Alarms. A Server that supports this must support at least one of the sub-types: Level, Deviation or RateofChange. |
|
A & C Exclusive Deviation |
Supports Exclusive Deviation Alarm type. |
|
A & C Exclusive RateOfChange |
Supports Exclusive RateOfChange Alarm type. |
|
A & C Non-Exclusive Limit |
Supports Non-Exclusive Limit Alarms. A Server that supports this must support at least one of the sub-types: Level, Deviation or RateofChange. |
|
A & C Non-Exclusive Level |
Supports Non-Exclusive Level Alarm type. |
|
A & C Non-Exclusive Deviation |
Supports Non-Exclusive Deviation Alarm type. |
|
A & C Non-Exclusive RateOfChange |
Supports Non-Exclusive RateOfChange Alarm type. |
|
A & C Discrete |
Supports Discrete Alarm types. |
|
A & C OffNormal |
Supports OffNormalAlarmType. |
|
A & C SystemOffNormal |
Supports SystemOffNormalAlarmType. |
|
A & C Trip |
Supports Trip Alarm type. |
|
A & C Discrepancy |
Supports Discrepancy Alarm type. |
|
A & C Dialog |
Supports DialogConditionType including Respond Method. |
|
A & C CertificateExpiration |
Supports CertificateExpirationAlarmType. |
|
A & E Wrapper Mapping |
The Server uses the COM A&E mapping specified in the annex of Part 9 to map OPC-COM Events to A&C Events. This includes Condition Class mapping. |
|
A & C Basic Client |
||
A & C Enable Client |
Uses Enable and Disable Methods. |
|
A & C Refresh Client |
Uses ConditionRefresh Method and the concept of a refresh. |
|
A & C Refresh2 Client |
Uses ConditionRefresh2 Method and the concept of a monitored item based refresh. |
|
A & C Instances Client |
Uses A&C Condition instances when they are exposed in the AddressSpace. |
|
A & C ConditionClasses Client |
||
A & C Acknowledge Client |
Understands the Acknowledge concept and the AcknowledgeableCondition Type, and uses the Acknowledge Method if requested. |
|
A & C Confirm Client |
Understands the concept of confirming Conditions and uses the Confirm Method. |
|
A & C Comment Client |
Understands the concept of Comments and uses the AddComment Method. |
|
Understands the concept of Alarms and uses the mandatory features of the AlarmCondition Type, |
||
Understand and use Alarm metrics data as defined in UA Part 9. This implies discovery of instances of the AlarmMetricsType that can exist anywhere in the HasNotifier hierarchy. |
||
A & C Branch Client |
Can make use of and process Condition Branches, including all actions associated with previous Condition instances. |
|
A & C Shelving Client |
Understand the shelving model and use the TimedShelve, OneShotShelve and Unshelve Methods. |
|
A & C Suppression Client |
Understand the SuppressedState model. |
|
A & C Suppression by Operator Client |
Use the Suppress and UnSuppress Methods to allow an operator control over the SuppressedState. |
|
A & C Silencing Client |
Understand the SilencedState model and use the Silence Method. |
|
A & C Out Of Service Client |
Understand the OutOfServiceState model and use the OutOfService Method. |
|
A & C On-Off Delay Client |
Uses the OnDelay and OffDelay Properties to eliminate nuisance Alarms. |
|
A & C Re-Alarming Client |
Understand and use the ReAlarmTime and ReAlarmRepeatCount Properties. Configure the ReAlarmTime Property for automatic re-annunciation of an Alarm. Note that configuration is only possible for Servers that expose Alarm instances. |
|
Use the "FirstInGroup" elements for an Alarm to determine which Alarm of a group was the trigger. |
||
A & C Audible Sound Client |
Use the AudibleSound Property and - if reported - play the sound file. |
|
A & C Exclusive Level Client |
Uses Exclusive Level Alarms. |
|
A & C Exclusive Limit Client |
Uses Exclusive Limit Alarms. Requires that at least one of the sub-types be used. |
|
A & C Exclusive Deviation Client |
Uses Exclusive Deviation Alarms. |
|
A & C Exclusive RateOfChange Client |
Uses Exclusive RateOfChange Alarms. |
|
A & C Non-Exclusive Level Client |
Uses Non-Exclusive Level Alarms. |
|
A & C Non-Exclusive Limit Client |
Uses Non-Exclusive Limit Alarms. Requires that at least one of the sub-types be used. |
|
A & C Non-Exclusive Deviation Client |
Uses Non-Exclusive Deviation Alarms. |
|
A & C Non-Exclusive RateOfChange Client |
Uses Non-Exclusive RateOfChange Alarms. |
|
A & C Discrete Client |
Uses Discrete Alarm types. |
|
A & C OffNormal Client |
Uses OffNormalAlarmType. |
|
A & C SystemOffNormal Client |
Uses SystemOffNormalAlarmType. |
|
A & C Trip Client |
Uses TripAlarmType. |
|
A & C Discrepancy Client |
Uses Discrepancy Alarm type. |
|
A & C Dialog Client |
Uses DialogConditionType including Respond Method. |
|
A & C CertificateExpiration Client |
Uses CertificateExpirationAlarmType. |
Table 17 describes Historical Data Access information model related items that can be profiled. The details of this model are defined in OPC 10000-11. Servers that support some level of historical data would expose this information model and Clients that utilize historical data would utilize this information model.
Category |
Title |
Description |
Historical Access Read Raw |
General support for basic historical access, reading raw data using the ReadRawModifiedDetails structure. Where the time range is specified using a start time, stop time and number of values (a minimum of two of the three parameters must be provided) and the ReadModified flag is set to False. |
|
Historical Access Data Max Nodes Read Continuation Point |
Supports enough continuation points to cover the number of supported points indicated in the MaxNodesPerHistoryReadData Server OperationLimits Property for historical data access. |
|
Historical Access Time Instance |
Supports reading historical data at a specified instance in time using the ReadAtTimeDetails structure. |
|
Historical Access Aggregates |
Supports reading one or more Aggregates of historical values of Variables using the ReadProcessedDetails structure. At least one of the Aggregates described in Part 13 must be supported. |
|
Historical Access Insert Value |
Supports inserting historical values of Variables. |
|
Historical Access Delete Value |
Supports deleting historical values of Variables. |
|
Historical Access Update Value |
Supports updating historical values of Variables. |
|
Historical Access Replace Value |
Supports replacing historical values of Variables. |
|
Historical Access Modified Values |
Supports maintaining old values for historical data that have been updated and the retrieval of these values using the ReadRawModifiedDetails structure (ReadModified flag set to true). |
|
Historical Access Annotations |
Supports the entry and retrieval of Annotations for historical data. The retrieval is accomplished using the standard historical read raw functionality (ReadRawModifiedDetails). The entry uses the standard historical update (UpdateStructureDataDetails) functionality. |
|
Historical Access ServerTimestamp |
Supports providing a ServerTimestamp (as well as the default SourceTimestamp). |
|
Historical Access Structured Data Read Raw |
Supports ReadRawModified historical access for structured data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Time Instance |
Supports historical access for structured data. Supporting ReadAtTimeDetails for structured data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Insert |
Supports historical access for structured data. Inserting Structured data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Delete |
Supports historical access for structured data. Delete of existing data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Update |
Supports historical access for structured data. Updates of existing data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Replace |
Supports replacing structured historical data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Structured Data Read Modified |
Supports maintaining old values for historical structured data that have been updated and the retrieval of these values. Using the ReadRawModifiedDetails structure (ReadModified flag set to true) for structured data. Supporting the structure for an annotation is not considered supporting generic structured data. |
|
Historical Access Events |
Supports the retrieval of historical Events using the ReadEventDetails structure. This includes support for simple filtering of Events. The Event fields that are stored are server specific, but at least the mandatory fields of BaseEventType are required. |
|
Historical Access Event Max Events Read Continuation Point |
Supports enough continuation points to cover the number of supported Event reads indicated in the MaxNodesPerHistoryReadEvents Server OperationLimits Property for Historical Event access. |
|
Historical Access Insert Event |
Supports inserting historical Events. |
|
Historical Access Update Event |
Supports updating historical Events. |
|
Historical Access Replace Event |
Supports replacing historical Events. |
|
Historical Access Delete Event |
Supports deleting of historical Events. |
|
Historical Access Client Browse |
Uses the View Service Set to discover Nodes with historical data. |
|
Historical Access Client Read Raw |
Uses the HistoryRead Service to read raw historical data using the ReadRawModifiedDetails Structure (ReadModified Flag set to False). |
|
Historical Access Client Read Modified |
Uses the HistoryRead Service to read modified historical data using the ReadRawModifiedDetails Structure (ReadModified Flag set to True). |
|
Historical Access Client Read Aggregates |
Uses the HistoryRead Service to read Aggregated historical data. This includes using at least one of the Aggregates defined in Part 13. |
|
Historical Access Client Structure Data Raw |
Uses the HistoryRead Service to read raw historical data using the ReadRawModifiedDetails Structure (ReadModified Flag set to False) for structured data. |
|
Historical Access Client Structure Data Read Modified |
Uses the HistoryRead Service to read modified structured historical data using the ReadRawModifiedDetails Structure (ReadModified Flag set to True). |
|
Historical Access Client Structure Data Insert |
Uses the HistoryUpdate Service to insert historical data values for structured data. |
|
Historical Access Client Structure Data Delete |
Uses the HistoryUpdate Service to delete historical data values for structured data. |
|
Historical Access Client Structure Data Update |
Uses the HistoryUpdate Service to update historical data values for structured data. |
|
Historical Access Client Structure Data Replace |
Uses the HistoryUpdate Service to replace historical data values for structured data. |
|
Historical Access Client Structure Data Time Instance |
Reads historical data at a specified instance in time for structured data. Using the ReadAtTimeDetails structure. |
|
Historical Access Client Read Events |
Uses the HistoryRead Service to read historical Event data using the ReadEventDetails Structure. |
|
Uses the HistoryUpdate Service to insert historical Events. |
||
Uses the HistoryUpdate Service to update historical Events. |
||
Uses the HistoryUpdate Service to replace historical Events. |
||
Uses the HistoryUpdate Service to delete historical Events. |
||
Historical Access Client Data Insert |
Uses the HistoryUpdate Service to insert historical data values. |
|
Historical Access Client Data Delete |
Uses the HistoryUpdate Service to delete historical data values. |
|
Historical Access Client Data Update |
Uses the HistoryUpdate Service to update historical data values. |
|
Historical Access Client Data Replace |
Uses the HistoryUpdate Service to replace historical data values. |
|
Historical Access Client Annotations |
Enters and retrieves Annotations of historical data. The retrieval is accomplished using the standard historical read raw functionality (ReadRawModifiedDetails). The entry uses the standard Historical Update (UpdateStructureDataDetails) functionality. |
|
Historical Access Client Time Instance |
Reads historical data at a specified instance in time using the ReadAtTimeDetails structure. |
|
Uses the ServerTimestamp (as well as the default SourceTimestamp), if it is provided by the Server. |
Table 18 describes Aggregate related items that can be profiled. Servers that support the Aggregates would expose this functionality and Clients that utilize Aggregates would implement some of this functionality.
Category |
Title |
Description |
Aggregate Master Configuration |
Supports an AggregateConfigurationType Object as part of the HistoricalServerCapabilities (defined in UA Part 11). |
|
Aggregate Historical Configuration |
Supports at least one AggregateConfigurationType Object. AggregateConfigurationType Objects occur as part of an HistoricalConfiguration Object, allowing Variable specific configurations. |
|
Aggregate – Interpolative |
Supports the Interpolative Aggregate for Historical access. |
|
Aggregate – Average |
Supports the Average Aggregate for Historical access. |
|
Aggregate – TimeAverage |
Supports the TimeAverage Aggregate for Historical access. |
|
Aggregate – TimeAverage2 |
Supports the TimeAverage2 Aggregate for Historical access. |
|
Aggregate – Total |
Supports the Total Aggregate for Historical access. |
|
Aggregate – Total2 |
Supports the Total2 Aggregate for Historical access. |
|
Aggregate – Minimum |
Supports the Minimum Aggregate for Historical access. |
|
Aggregate – MinimumActualTime |
Supports the MinimumActualTime Aggregate for Historical access. |
|
Aggregate – Minimum2 |
Supports the Minimum2 Aggregate for Historical access. |
|
Aggregate – MinimumActualTime2 |
Supports the MinimumActualTime2 Aggregate for Historical access. |
|
Aggregate – Maximum |
Supports the Maximum Aggregate for Historical access. |
|
Aggregate – MaximumActualTime |
Supports the MaximumActualTime Aggregate for Historical access. |
|
Aggregate – Maximum2 |
Supports the Maximum2 Aggregate for Historical access. |
|
Aggregate – MaximumActualTime2 |
Supports the MaximumActualTime2 Aggregate for Historical access. |
|
Aggregate – Range |
Supports the Range Aggregate for Historical access. |
|
Aggregate – Range2 |
Supports the Range2 Aggregate for Historical access. |
|
Aggregate – Count |
Supports the Count Aggregate for Historical access. |
|
Aggregate – DurationInStateZero |
Supports the DurationInStateZero Aggregate for Historical access. |
|
Aggregate – DurationInStateNonZero |
Supports the DurationInStateNonZero Aggregate for Historical access. |
|
Aggregate – NumberOfTransitions |
Supports the NumberOfTransitions Aggregate for Historical access. |
|
Aggregate – Start |
Supports the Start Aggregate for Historical access. |
|
Aggregate – StartBound |
Supports the StartBound Aggregate for Historical access. |
|
Aggregate – End |
Supports the End Aggregate for Historical access. |
|
Aggregate – EndBound |
Supports the EndBound Aggregate for Historical access. |
|
Aggregate – Delta |
Supports the Delta Aggregate for Historical access. |
|
Aggregate – DeltaBounds |
Supports the DeltaBounds Aggregate for Historical access. |
|
Aggregate – DurationGood |
Supports the DurationGood Aggregate for Historical access. |
|
Aggregate – DurationBad |
Supports the DurationBad Aggregate for Historical access. |
|
Aggregate – PercentGood |
Supports the PercentGood Aggregate for Historical access. |
|
Aggregate – PercentBad |
Supports the PercentBad Aggregate for Historical access. |
|
Aggregate – WorstQuality |
Supports the WorstQuality Aggregate for Historical access. |
|
Aggregate – WorstQuality2 |
Supports the WorstQuality2 Aggregate for Historical access. |
|
Aggregate – AnnotationCount |
Supports the AnnotationCount Aggregate for Historical access. |
|
Aggregate – StandardDeviationSample |
Supports the StandardDeviationSample Aggregate for Historical access. |
|
Aggregate – VarianceSample |
Supports the VarianceSample Aggregate for Historical access. |
|
Aggregate – StandardDeviationPopulation |
Supports the StandardDeviationPopulation for Historical access. |
|
Aggregate – VariancePopulation |
Supports the VariancePopulation for Historical access. |
|
Aggregate – Custom |
The Server supports custom Aggregates for Historical access that do not have standard tests defined. These Aggregates are list as untested by this ConformanceUnit. |
|
Aggregate Subscription – Filter |
Supports Aggregate subscription filters which requires at least one of the defined Aggregates is supported as defined in Part 13. |
|
Aggregate Subscription – Interpolative |
Supports subscription filter for the Interpolative Aggregate. |
|
Aggregate Subscription – Average |
Supports subscription filter for the Average Aggregate. |
|
Aggregate Subscription – TimeAverage |
Supports subscription filter for the TimeAverage Aggregate. |
|
Aggregate Subscription – TimeAverage2 |
Supports subscription filter for the TimeAverage2 Aggregate. |
|
Aggregate Subscription – Total |
Supports subscription filter for the Total Aggregate. |
|
Aggregate Subscription – Total2 |
Supports subscription filter for the Total2 Aggregate. |
|
Aggregate Subscription – Minimum |
Supports subscription filter for the Minimum Aggregate. |
|
Aggregate Subscription – MinimumActualTime |
Supports subscription filter for the MinimumActualTime Aggregate. |
|
Aggregate Subscription – Minimum2 |
Supports subscription filter for the Minimum2 Aggregate. |
|
Aggregate Subscription – MinimumActualTime2 |
Supports subscription filter for the MinimumActualTime2 Aggregate. |
|
Aggregate Subscription – Maximum |
Supports subscription filter for the Maximum Aggregate. |
|
Aggregate Subscription – MaximumActualTime |
Supports subscription filter for the MaximumActualTime Aggregate. |
|
Aggregate Subscription – Maximum2 |
Supports subscription filter for the Maximum2 Aggregate. |
|
Aggregate Subscription – MaximumActualTime2 |
Supports subscription filter for the MaximumActualTime2 Aggregate. |
|
Aggregate Subscription – Range |
Supports subscription filter for the Range Aggregate. |
|
Aggregate Subscription – Range2 |
Supports subscription filter for the Range2 Aggregate. |
|
Aggregate Subscription – Count |
Supports subscription filter for the Count Aggregate. |
|
Aggregate Subscription – DurationInStateZero |
Supports subscription filter for the DurationInStateZero Aggregate. |
|
Aggregate Subscription – DurationInStateNonZero |
Supports subscription filter for the DurationInStateNonZero Aggregate. |
|
Aggregate Subscription – NumberOfTransitions |
Supports subscription filter for the NumberOfTransitions Aggregate. |
|
Aggregate Subscription – Start |
Supports subscription filter for the Start Aggregate. |
|
Aggregate Subscription – StartBound |
Supports subscription filter for the StartBound Aggregate. |
|
Aggregate Subscription – End |
Supports subscription filter for the End Aggregate. |
|
Aggregate Subscription – EndBound |
Supports subscription filter for the EndBound Aggregate. |
|
Aggregate Subscription – Delta |
Supports subscription filter for the Delta Aggregate. |
|
Aggregate Subscription – DeltaBounds |
Supports subscription filter for the DeltaBounds Aggregate. |
|
Aggregate Subscription – DurationGood |
Supports subscription filter for the DurationGood Aggregate. |
|
Aggregate Subscription – DurationBad |
Supports subscription filter for the DurationBad Aggregate. |
|
Aggregate Subscription – PercentGood |
Supports subscription filter for the PercentGood Aggregate. |
|
Aggregate Subscription – PercentBad |
Supports subscription filter for the PercentBad Aggregate. |
|
Aggregate Subscription – WorstQuality |
Supports subscription filter for the WorstQuality Aggregate. |
|
Aggregate Subscription – WorstQuality2 |
Supports subscription filter for the WorstQuality2 Aggregate. |
|
Aggregate Subscription – AnnotationCount |
Supports subscription filter for the AnnotationCount Aggregate. |
|
Aggregate Subscription – StandardDeviationSample |
Supports subscription filter for the StandardDeviationSample Aggregate. |
|
Aggregate Subscription – VarianceSample |
Supports subscription filter for the VarianceSample Aggregate. |
|
Aggregate Subscription – StandardDeviationPopulation |
Supports subscription filter for the StandardDeviationPopulation Aggregate. |
|
Aggregate Subscription – VariancePopulation |
Supports subscription filter for the VariancePopulation Aggregate. |
|
Aggregate Subscription – Custom |
The Server supports subscribing to custom Aggregates that do not have standard tests defined. These Aggregates are listed as untested by this ConformanceUnit. |
|
Aggregate – Client Usage |
Uses Historical access to Aggregate which requires at least one of the defined Aggregates is supported as defined in Part 13. |
|
Aggregate – Client Interpolative |
Uses Historical access to the Interpolative Aggregate. |
|
Aggregate – Client Average |
Uses Historical access to the Average Aggregate. |
|
Aggregate – Client TimeAverage |
Uses Historical access to the TimeAverage Aggregate. |
|
Aggregate – Client TimeAverage2 |
Uses Historical access to the TimeAverage2 Aggregate. |
|
Aggregate – Client Total |
Uses Historical access to the Total Aggregate. |
|
Aggregate – Client Total2 |
Uses Historical access to the Total2 Aggregate. |
|
Aggregate – Client Minimum |
Uses Historical access to the Minimum Aggregate. |
|
Aggregate – Client MinimumActualTime |
Uses Historical access to the MinimumActualTime Aggregate. |
|
Aggregate – Client Minimum2 |
Uses Historical access to the Minimum2 Aggregate. |
|
Aggregate – Client MinimumActualTime2 |
Uses Historical access to the MinimumActualTime2 Aggregate. |
|
Aggregate – Client Maximum |
Uses Historical access to the Maximum Aggregate. |
|
Aggregate – Client MaximumActualTime |
Uses Historical access to the MaximumActualTime Aggregate. |
|
Aggregate – Client Maximum2 |
Uses Historical access to the Maximum2 Aggregate. |
|
Aggregate – Client MaximumActualTime2 |
Uses Historical access to the MaximumActualTime2 Aggregate. |
|
Aggregate – Client Range |
Uses Historical access to the Range Aggregate. |
|
Aggregate – Client Range2 |
Uses Historical access to the Range2 Aggregate. |
|
Aggregate – Client Count |
Uses Historical access to the Count Aggregate. |
|
Aggregate – Client DurationInStateZero |
Uses Historical access to the DurationInStateZero Aggregate. |
|
Aggregate – Client DurationInStateNonZero |
Uses Historical access to the DurationInStateNonZero Aggregate. |
|
Aggregate – Client NumberOfTransitions |
Uses Historical access to the NumberOfTransitions Aggregate. |
|
Aggregate – Client Start |
Uses Historical access to the Start Aggregate. |
|
Aggregate – Client StartBound |
Uses Historical access to the StartBound Aggregate. |
|
Aggregate – Client End |
Uses Historical access to the End Aggregate. |
|
Aggregate – Client EndBound |
Uses Historical access to the EndBound Aggregate. |
|
Aggregate – Client Delta |
Uses Historical access to the Delta Aggregate. |
|
Aggregate – Client DeltaBounds |
Uses Historical access to the DeltaBounds Aggregate. |
|
Aggregate – Client DurationGood |
Uses Historical access to the DurationGood Aggregate. |
|
Aggregate – Client DurationBad |
Uses Historical access to the DurationBad Aggregate. |
|
Aggregate – Client PercentGood |
Uses Historical access to the PercentGood Aggregate. |
|
Aggregate – Client PercentBad |
Uses Historical access to the PercentBad Aggregate. |
|
Aggregate – Client WorstQuality |
Uses Historical access to the WorstQuality Aggregate. |
|
Aggregate – Client WorstQuality2 |
Uses Historical access to the WorstQuality2 Aggregate. |
|
Aggregate – Client AnnotationCount |
Uses Historical access to the AnnotationCount Aggregate. |
|
Aggregate – Client StandardDeviationSample |
Uses Historical access to the StandardDeviationSample Aggregate. |
|
Aggregate – Client VarianceSample |
Uses Historical access to the VarianceSample Aggregate. |
|
Aggregate – Client StandardDeviationPopulation |
Uses Historical access to the StandardDeviationPopulation Aggregate. |
|
Aggregate – Client VariancePopulation |
Uses Historical access to the VariancePopulation Aggregate. |
|
Aggregate – Client Custom Aggregates |
The Client can make use of all custom Aggregates in the list of Aggregates, via Historical access, exposed by the Server. This includes displaying or utilizing the data in some manner. |
|
Aggregate Subscription – Client Filter |
Subscribes for data using Aggregate filters which requires at least one of the Aggregates defined in Part 13 is supported. |
|
Aggregate Subscription – Client Interpolative |
Subscribes for data using the Interpolative Aggregate filter. |
|
Aggregate Subscription – Client Average |
Subscribes for data using the Average Aggregate filter. |
|
Aggregate Subscription – Client TimeAverage |
Subscribes for data using the TimeAverage Aggregate filter. |
|
Aggregate Subscription – Client TimeAverage2 |
Subscribes for data using the TimeAverage2 Aggregate filter. |
|
Aggregate Subscription – Client Total |
Subscribes for data using the Total Aggregate filter. |
|
Aggregate Subscription – Client Total2 |
Subscribes for data using the Total2 Aggregate filter. |
|
Aggregate Subscription – Client Minimum |
Subscribes for data using the Minimum Aggregate filter. |
|
Aggregate Subscription – Client MinimumActualTime |
Subscribes for data using the MinimumActualTime Aggregate filter. |
|
Aggregate Subscription – Client Minimum2 |
Subscribes for data using the Minimum2 Aggregate filter. |
|
Aggregate Subscription – Client MinimumActualTime2 |
Subscribes for data using the MinimumActualTime2 Aggregate filter. |
|
Aggregate Subscription – Client Maximum |
Subscribes for data using the Maximum Aggregate filter. |
|
Aggregate Subscription – Client MaximumActualTime |
Subscribes for data using the MaximumActualTime Aggregate filter. |
|
Aggregate Subscription – Client MaximumActualTime2 |
Subscribes for data using the MaximumActualTime2 Aggregate filter. |
|
Aggregate Subscription – Client Maximum2 |
Subscribes for data using the Maximum2 Aggregate filter. |
|
Aggregate Subscription – Client Range |
Subscribes for data using the Range Aggregate filter. |
|
Aggregate Subscription – Client Range2 |
Subscribes for data using the Range2 Aggregate filter. |
|
Aggregate Subscription – Client Count |
Subscribes for data using the Count Aggregate filter. |
|
Aggregate Subscription – Client DurationInStateZero |
Subscribes for data using the DurationInStateZero Aggregate filter. |
|
Aggregate Subscription – Client DurationInStateNonZero |
Subscribes for data using the DurationInStateNonZero Aggregate filter. |
|
Aggregate Subscription – Client NumberOfTransitions |
Subscribes for data using the NumberOfTransitions Aggregate filter. |
|
Aggregate Subscription – Client Start |
Subscribes for data using the Start Aggregate filter. |
|
Aggregate Subscription – Client StartBound |
Subscribes for data using the StartBound Aggregate filter. |
|
Aggregate Subscription – Client End |
Subscribes for data using the End Aggregate filter. |
|
Aggregate Subscription – Client EndBound |
Subscribes for data using the EndBound Aggregate filter. |
|
Aggregate Subscription – Client Delta |
Subscribes for data using the Delta Aggregate filter. |
|
Aggregate Subscription – Client DeltaBounds |
Subscribes for data using the DeltaBounds Aggregate filter. |
|
Aggregate Subscription – Client DurationGood |
Subscribes for data using the DurationGood Aggregate filter. |
|
Aggregate Subscription – Client DurationBad |
Subscribes for data using the DurationBad Aggregate filter. |
|
Aggregate Subscription – Client PercentGood |
Subscribes for data using the PercentGood Aggregate filter. |
|
Aggregate Subscription – Client PercentBad |
Subscribes for data using the PercentBad Aggregate filter. |
|
Aggregate Subscription – Client WorstQuality |
Subscribes for data using the WorstQuality Aggregate filter. |
|
Aggregate Subscription – Client WorstQuality2 |
Subscribes for data using the WorstQuality2 Aggregate filter. |
|
Aggregate Subscription – Client AnnotationCount |
Subscribes for data using the AnnotationCount Aggregate filter. |
|
Aggregate Subscription – Client StandardDeviationSample |
Subscribes for data using the StandardDeviationSample Aggregate filter. |
|
Aggregate Subscription – Client VarianceSample |
Subscribes for data using the VarianceSample Aggregate filter. |
|
Aggregate Subscription – Client StandardDeviationPopulation |
Subscribes for data using the StandardDeviationPopulation Aggregate filter. |
|
Aggregate Subscription – Client VariancePopulation |
Subscribes for data using the VariancePopulation Aggregate filter. |
|
Aggregate Subscription – Client Custom Aggregates |
The Client supports subscribing to all custom Aggregates in the list of Aggregates exposed by the Server. This includes displaying or utilizing the data in some manner. |
Table 19 describes auditing related items that can be profiled. Most full function Servers would support these features, although some resource constrained Servers may not provide this functionality. Clients that are security aware or are used to support security logging would support these features
Category |
Title |
Description |
Auditing Base |
Support AuditEvents. The list of supported AuditEvents shall be verified during certification testing and will be shown in the certification test result. Base AuditEvents are defined in Part 3 and in Part 5. |
|
Auditing Client Audit ID |
Client supports generating AuditEvents ids and providing them to Servers. |
|
Auditing Client Subscribes |
The Client supports subscribing for AuditEvents and storing / processing them in a secure manner. |
Table 20 describes Redundancy related items that are profiled. Servers that support redundancy would support appropriate ConformanceUnits based on the type of redundancy they support. Clients that are capable of handling redundancy would support the appropriate ConformanceUnits based of the type of redundancy they support.
Category |
Title |
Description |
Redundancy Server |
Supports Server based redundancy. |
|
Redundancy Server Transparent |
Supports transparent Server redundancy. |
|
Redundancy Client |
Client supports Client redundancy. Clients that support Client redundancy can failover to another Client (requires some out of band communication). |
|
Redundancy Client Switch |
Clients supporting this ConformanceUnit monitor the redundancy status for non-transparent redundancy Servers and switch to the backup Server when they recognize a change in server status. |
Table 21 describes items for a Global Discovery Server (GDS). Servers that act as a GDS would support these ConformanceUnits.
Table 21 – Global Discovery Server
Category |
Title |
Description |
Global Directory Service |
GDS Application Directory |
Supports the Directory Object with all Methods like RegisterApplication and QueryServers. |
Global Directory Service |
GDS Query Applications |
Supports the QueryApplications Method on the Directory Object specified in Part 12. |
Global Directory Service |
GDS LDS-ME Connectivity |
The GDS can be configured to use specific LDS-ME installations for semi-automatic application registration for all Servers on a subnet. |
Global Directory Service |
GDS Certificate Manager Pull Model |
This Conformance Unit requires support of the complete Information Model and Services for Certificate management including the Pull Model as specified in Part 12. |
Global Directory Service |
GDS Certificate Manager Push Model |
This Conformance Unit requires use of the complete Information model and Services for the Certificate management Push Model as specified in UA Part 12. |
Global Directory Service |
GDS Key Credential Service Pull Model |
This Conformance Unit requires support of the complete Information Model and Services for KeyCredential Pull Management as specified in UA Part 12. |
Global Directory Service |
GDS Key Credential Service Push Model |
This Conformance Unit requires use of the complete Information model and Services for KeyCredential Push Management as specified in UA Part 12. |
Global Directory Service |
This Conformance Unit requires support of AuthorizationServiceType Objects as specified in Part 12. UA Clients use the RequestAccessToken Method on these Objects to request an Access Token from an Identity Provider. |
The following table describes miscellaneous ConformanceUnits.
Category |
Title |
Description |
Documentation – Supported Profiles |
The documentation includes a description of the profiles supported by the product. This description includes the level of Certification testing the product has passed. |
|
Documentation – Multiple Languages |
The documentation is available in multiple languages. The results of this conformance unit include the list of supported languages. |
|
Documentation – Users Guide |
The application includes documentation that describes the available functionality provided by the application. For Servers it includes a summary of all functionality provided by the Server. |
|
Documentation – On-line |
The documentation provided by the application is available in electronic format as part of the application. The electronic documentation, could be a WEB page, installed document or CD/DVD, but in all case it can be accessed from the application or from a link installed with the application. |
|
Documentation – Installation |
The application includes installation instructions that are sufficient to easily install the application. This includes descriptions of any and all possible configuration items. Instructions for loading or configuring security related items such as Application Instance Certificates. |
|
Documentation – Trouble Shooting Guide |
The application includes documentation that describes typical problems a user may encounter and actions that the user could perform to resolve the problem. It could also describe tip, tricks or other actions that could help a user diagnose or fix a problem. It could also describe tools or other items that can be used in diagnosing or repairing problems. The actual Trouble Shooting Guide can be part of other documentation, but should be complete enough to provide useful information to a novice user. |
|
The documentation includes a description of the profiles supported by the product. This description includes any software certificates that describes the level of Certification testing the product has passed. |
||
Documentation Client – Multiple Languages |
The documentation is available in multiple languages. The results of this conformance unit include the list of supported languages. |
|
Documentation Client – Users Guide |
The application includes documentation that describes the available functionality provided by the application. For client applications this includes any operator restrictions or general functionality that the client application makes use of. |
|
Documentation Client – On-line |
The documentation provided by the application is available in electronic format as part of the application. The electronic documentation could be a WEB page, installed document or CD/DVD, but in all cases it can be accessed from the application or from a link installed with the application. |
|
Documentation Client – Installation |
The application includes installation instructions that are sufficient to easily install the application. This includes descriptions of any and all possible configuration items. Instructions for loading or configuring security related items such as Application Instance Certificates. |
|
Documentation Client – Trouble Shooting Guide |
The application includes documentation that describes typical problems a user may encounter and actions that the user could perform to resolve the problem. It could also describe tips, tricks or other actions that could help a user diagnose or fix a problem. It could also describe tools or other items that can be used in diagnosing or repairing problems. The actual Trouble Shooting Guide can be part of other documentation, but should be complete enough to provide useful information to a novice user. |
|
Security |
Best Practice – Timeouts |
The user is able to configure reasonable timeouts for Secure Channels, sessions and subscriptions to limit Denial of Service and resource consumption issues (see Part 2 for additional details). |
Security |
Best Practice – Strict Message Handling |
The application assures that messages that are illegally or incorrectly formed are rejected with appropriate error code or appropriate actions as specified in Part 4 and Part 6. |
Security |
Best Practice – Random Numbers |
All random numbers that are required for security use appropriate cryptographic library based random number generators. |
Security |
Best Practice – Administrative Access |
The Server and Client allow for appropriate restriction of access to administrative personnel. This includes multiple levels of administrative access on platforms that support multiple administrative roles (such as Windows or Linux). |
Security |
Best Practice – Alarm Handling |
A Server should restrict critical alarm functionality to users that have the appropriate rights to perform these actions. This would include disabling or alarms, shelving of alarms and generation of dialog messages. It would also include other security related functionality such maintaining appropriate timeouts for shelving and dialogs and preventing an overload of dialog messages. |
Security |
Best Practice – Audit Events |
Subscriptions for Audit Events are restricted to authorized personnel. A Server may also reject a Subscription for Audit Events that is not over a Secure Channel if one is available. |
Security |
Best Practice – Audit Events Client |
Audit tracking system connects to a Server using a Secure Channel and under the appropriate administrative rights to allow access to Audit Events. |