This Servicereturns the Serversknown to aServeror Discovery Server. The behaviour of Discovery Servers is described in detail in OPC 10000-12.

The Clientmay reduce the number of results returned by specifying filter criteria. A Discovery Serverreturns an empty list if no Serversmatch the criteria specified by the Client. The filter criteria supported by this Serviceare described in 5.4.2.2.

Every Servershall provide a DiscoveryEndpointthat supports this Service. The Servershall always return a record that describes itself, however in some cases more than one record may be returned. Gateway Serversshall return a record for each Serverthat they provide access to plus (optionally) a record that allows the Gateway Serverto be accessed as an ordinary OPC UA Server. Non-transparent redundant Serversshall provide a record for each Serverin the Redundant Server Set.

Every Servershall have a globally unique identifier called the ServerUri. This identifier should be a fully qualified domain name; however, it may be a GUID or similar construct that ensures global uniqueness. The ServerUrireturned by this Serviceshall be the same value that appears in index 0 of the ServerArrayproperty (see OPC 10000-5). The ServerUriis returned as the applicationUrifield in the ApplicationDescription(see 7.2)

Every Servershall also have a human readable identifier called the ServerNamewhich is not necessarily globally unique. This identifier may be available in multiple locales.

A Servermay have multiple HostNames. For this reason, the Clientshall pass the URL it used to connect to the Endpointto this Service. The implementation of this Serviceshall use this information to return responses that are accessible to the Clientvia the provided URL.

This Serviceshall not require message security but it may require transport layer security.

Some Serversmay be accessed via a Gateway Serverand shall have a value specified for gatewayServerUriin their ApplicationDescription(see 7.2). The discoveryUrlsprovided in ApplicationDescriptionshall belong to the Gateway Server.Some Discovery Serversmay return multiple records for the same Serverif that Servercan be accessed via multiple paths.

This Servicecan be used without security and it is therefore vulnerable to Denial of Service (DOS) attacks. A Servershould minimize the amount of processing required to send the response for this Service. This can be achieved by preparing the result in advance. The Servershould also add a short delay before starting processing of a request during high traffic conditions.

Table 3defines the parameters for the Service.

Table 3– FindServers Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters. The authenticationTokenis always null. The authenticationTokenshall be ignored if it is provided.

The type RequestHeaderis defined in 7.33.

endpointUrl

String

The network address that the Clientused to access the DiscoveryEndpoint.

The Serveruses this information for diagnostics and to determine what URLs to return in the response.

The Servershould return a suitable default URL if it does not recognize the HostNamein the URL.

localeIds []

LocaleId

List of locales to use.

The Servershould return the applicationName in the ApplicationDescription defined in 7.2using one of locales specified. If the Serversupports more than one of the requested locales then the Servershall use the locale that appears first in this list. If the Serverdoes not support any of the requested locales it chooses an appropriate default locale.

The Serverchooses an appropriate default locale if this list is empty.

serverUris []

String

List of Serversto return.

All known Serversare returned if the list is empty.

A serverUri matches the applicationUrifrom the ApplicationDescriptiondefined in 7.2.

Response

responseHeader

ResponseHeader

Common response parameters.

The ResponseHeadertype is defined in 7.34.

servers []

ApplicationDescription

List of Serversthat meet criteria specified in the request.

This list is empty if no Serversmeet the criteria.

The ApplicationDescriptiontype is defined in 7.2.

Common StatusCodesare defined in Table 182.