Transparent redundancy

General topics regarding OPC Foundation and communication technology in general.

Moderator: Support Team

Post Reply
mazel
Jr. Member
Jr. Member
Posts: 2
Joined: 04 Jun 2012, 06:32

Transparent redundancy

Post by mazel »

Hello all,
I have an question regarding transparent server redundancy. I´ve read in another thread:
OPC UA defines two main modes for server redundancy, non-transparent and transparent. Non-transparent has the sub modes Cold, Warm and Hot.

In the non-transparent case, all servers in the redundant set have their own Server URI and Endpoint URLs. Every server in the redundant set provides a list of the other redundant servers in the set (Server URI) and the sub mode (Cold, Warm or Hot). With this feature a client need to know only one server and can find the other available servers through the information in the server object (Objects -> Server -> ServerRedundancy). The advantage of non-transparent redundancy is that it is easy to support on the server side. The disadvantage is that the client needs to do something to benefit from redundancy. But it would be easy to implement a generic support in the client with the information provided by the server.

In the transparent case, all servers in the redundant set have the same Server URI and Endpoint URLs. The servers are running in a cluster with the same IP-Address. A client cannot connect to a specific server but he can request the list of available server and their status in Objects -> Server -> ServerRedundancy. The advantage of transparent redundancy is that the client needs to know nothing about redundancy to benefit for the redundant servers. The disadvantage is the higher effort on the server side.

The C++ Server SDK from Unified Automation supports both main modes for server redundancy, non-transparent and transparent. For transparent redundancy an additional module is needed that is not part of the standard SDK. It is available on request. The non-transparent configuration can also be used in the UaGateway V1.2.
My questions are:
Does the OPC servers have to have the same endpoint addresses?
If the transparent redundancy is used, is there a posibility to let know the client about that the redundancy handover occured?

The thing is: we have 2 identical controlling devices connected to the network with different IPs, and each device has an OPC server. Devices acts as redundant. (both can handover the controlling) We want to implement transparent redundancy, but the IPs has to remain the same and furthermore if the handover occur we have to warn the operator that the second device is out of order ...

Thank you for your answer...

User avatar
Support Team
Hero Member
Hero Member
Posts: 3068
Joined: 18 Mar 2011, 15:09

Re:Transparent redundancy

Post by Support Team »

Hi mazel,

The key feature of transparent redundancy is that there is only one IP-Address and one Endpoint URL (endpoint address) and one logical server (Server URI) for all physical servers. A client that does not care cannot see anything about the redundancy. Independent of the infrastructure necessary in the SDK, you need an IT infrastructure that is able to provide one IP-Address for a set of physical network nodes. Windows Server NLB (Network Load Balancing) is providing such an infrastructure.

A client has no control to which physical server he connects but he can get
- the list of available physical servers and their status
- the index of the server in the list he is connected to

If you want to provide redundancy on the device level and you cannot provide one virtual IP-Address for all physical device you can only implement non-transparent redundancy.

The only reason for implementing transparent redundancy is to support clients that have no knowledge about redundancy.
For all redundancy aware clients it is better to have non-transparent redundant servers because they can control much better what happens in the case of fail-over.

Best Regards,
Unified Automation Support Team
Best regards
Unified Automation Support Team

Post Reply