A Serveroften has no direct access to the information that it manages. Variables or services might be in underlying systems where additional effort is required to establish a connection to these systems. The RegisterNodes Servicecan be used by Clientsto register the Nodesthat they know they will access repeatedly (e.g. Write, Call). It allows Serversto set up anything needed so that the access operations will be more efficient. Clients can expect performance improvements when using registered NodeIds, but the optimization measures are vendor-specific. For Variable Nodes Serversshall concentrate their optimization efforts on the Value Attribute.

RegisteredNodeIdsare only guaranteed to be valid within the current Session. Clientsshall unregister unneeded Ids immediately to free up resources.

RegisterNodesdoes not validate the NodeIdsfrom the request. Serverswill simply copy unknown NodeIdsin the response. Structural NodeIderrors (size violations, invalid id types) will cause the complete Serviceto fail.

For the purpose of Auditing, Serversshall not use the registered NodeIdsbut only the canonical NodeIds which is the value of theNodeId Attribute.

Table 43defines the parameters for the Service.

Table 43– RegisterNodes Service Parameters

Name

Type

Description

Request

requestHeader

Request Header

Common request parameters (see 7.28for RequestHeaderdefinition).

nodesToRegister []

NodeId

List of NodeIdsto register that the Clienthas retrieved through browsing, querying or in some other manner.

Response

responseHeader

Response Header

Common response parameters (see 7.29for ResponseHeaderdefinition).

registeredNodeIds []

NodeId

A list of NodeIdswhich the Clientshall use for subsequent access operations. The size and order of this list matches the size and order of the nodesToRegisterrequest parameter.

The Servermay return the NodeIdfrom the request or a new (an alias) NodeId. It is recommended that the Serverreturn a numeric NodeIdsfor aliasing.

In case no optimization is supported for a Node, the Servershall return the NodeIdfrom the request.

Table 44defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.

Table 44– RegisterNodes Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Bad_NodeIdInvalid

See Table 178for the description of this result code.

Serversshall completely reject the RegisterNodesrequest if any of the NodeIdsin the nodesToRegisterparameter are structurally invalid.