1. Every tunnelling connection has an associated cost in network load. Will multiple connections add significantly to this load?
Extending the OPC transaction across the network may allow many clients to connect through the same tunnel, but each client sends and receives data independently. For each connected client the network bandwidth usage increases.
Keeping all OPC transactions local can handle any number of clients and servers on either end of the tunnel, and the data flows across the network only once. Consequently, adding clients to the system will not add load to the network. In a resource-constrained system, this can be a crucial factor in the success of the control application.
2. Be sure to test for cross-coupling between clients in multiple tunnelling connections. Does a time-intensive request from a slow client block other requests from being handled?
Extending the OPC transaction across the network may serialize access to the OPC server when multiple clients are connected, handling the requests one by one. This may simplify the tunnel vendor’s code, but it can produce unacceptable application behavior. If one client makes a time-consuming request via the tunnel, then other clients must line up and wait until that request completes before their own requests will be serviced. All clients block for the duration of the longest request by any client, reducing system performance and increasing latency dramatically.
Keeping all OPC transactions local: This situation simply does not happen. The OPC transactions do not cross the network, so they are not subject to network effects nor to serialization across the tunnel.
The OPC DataHub uses the local OPC transaction approach.
|