A Server often 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 Service can be used by Clients to register the Nodes that they know they will access repeatedly (e.g. Write, Call). It allows Servers to 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 Servers shall concentrate their optimization efforts on the Value Attribute.
Registered NodeIds are only guaranteed to be valid within the current Session. Clients shall unregister unneeded Ids immediately to free up resources.
RegisterNodes does not validate the NodeIds from the request. Servers will simply copy unknown NodeIds in the response. Structural NodeId errors (size violations, invalid id types) will cause the complete Service to fail.
For the purpose of Auditing, Servers shall not use the registered NodeIds but only the canonical NodeIds which is the value of the NodeId Attribute.
Table 43 defines the parameters for the Service.
Table 43 – RegisterNodes Service Parameters
|requestHeader||Request Header||Common request parameters (see 7.28 for RequestHeader definition).|
|nodesToRegister ||NodeId||List of NodeIds to register that the Client has retrieved through browsing, querying or in some other manner.|
|responseHeader||Response Header||Common response parameters (see 7.29 for ResponseHeader definition).|
|registeredNodeIds ||NodeId||A list of NodeIds which the Client shall use for subsequent access operations. The size and order of this list matches the size and order of the nodesToRegister request parameter.
The Server may return the NodeId from the request or a new (an alias) NodeId. It is recommended that the Server return a numeric NodeIds for aliasing.
In case no optimization is supported for a Node, the Server shall return the NodeId from the request.
Table 44 – RegisterNodes Service Result Codes
|Bad_NothingToDo||See Table 177 for the description of this result code.|
|Bad_TooManyOperations||See Table 177 for the description of this result code.|
|Bad_NodeIdInvalid||See Table 178 for the description of this result code.
Servers shall completely reject the RegisterNodes request if any of the NodeIds in the nodesToRegister parameter are structurally invalid.