QuickOPC User's Guide and Reference
Preselected vs. Synthetised Endpoints
Fundamentals > Identifying Information in OPC UA Client-Server > OPC UA Server Endpoints > Preselected vs. Synthetised Endpoints
In This Topic
This is an advanced topic. You do not need to study it unless you have a specific need.

When QuickOPC establishes a connection to an OPC UA server, it tries to do so in most effective manner. When necessary, it first calls the GetEndpoints service of the target OPC UA server, and preselects the endpoint. In other cases, the call to GetEndpoints can be skipped, and the endpoint is synthetised by QuickOPC.

The endpoint demands preselection if at least of one the conditions below is fulfilled:

This might seem quite complicated, but it boils down to a simple rule: If QuickOPC has information available that is precise enough to allow connection without calling GetEndpoints first, it will connect straight away, if supported by the underlying OPC UA stack (= endpoint synthesis). Otherwise, it will call GetEndpoints in order to obtain the list of available endpoints and select from them (= endpoint preselection).

In addition, the endpoint will be preselected if you set the AlwaysPreselectEndpoint Property to true.

Preselected Endpoints

Endpoint preselection is performed by calling the OPC UA GetEndpoints service on the target server, and applying the effective endpoint selection policy to it. The OPC UA server must therefore properly support the GetEndpoints service for endpoint preselection to work. When applying the endpoint selection policy yields an endpoint, the parameters of it are then used to create the OPC UA secure channel.

Synthetised Endpoints

This functionality is not available under (or the text does not apply to) .NET Standard development platform.

Synthetised endpoints do not require use of the OPC UA GetEndpoints service as part of the connection process. They are therefore a bit faster to connect, and (more importantly) allow connections even to servers that do not support the GetEndpoints service (or do not support it properly). The client code in QuickOPC simply uses the parameters from the effective endpoint selection policy when creating the OPC UA secure channel. The effective endpoint selection policy is then applied to the endpoints returned by the OPC UA server from the CreateSession service, and QuickOPC checks whether the endpoint specified by the policy is available.

Some servers may have endpoint URLs that are different from the discovery endpoint URL, or differ depending on the security policy. For example, a server built with OPC Foundation .NET legacy stack and using the HTTP protocol will use an endpoint URL with appended "/None" for its insecure endpoint. You need to specify the precise URL of the specific endpoint, for the synthesized endpoint to work.
See Also