As denoted in chapter 3.1, OPC XML-DA specifies a so-called ``Subscription Service'' for obtaining changes of fieldbus data, which is basically a mixture of asynchronous notifications and polling. The IGUANA Gateway does not offer appropriate services that may be mapped an XML-DA compliant subscription service121, therefore it has to be implemented by the OPC server itself.
An OPC Subscription service on the IGUANA gateway may be implemented by periodically polling certain datapoints with ESD READ commands. Value changes may then be sent back to the subscribed client. One viable implementation is shown in figure 57.
In case of an OPC subscribe request, the OPC server creates a new thread that periodically requests datapoint values from the ESD. If a datapoint value changes, the thread notifies the OPC Server which may forward the changed data to the subscribed client.
An OPC subscription service on the IGUANA gateway raises various problems that have to be addressed in detail. One major problem may be the so-called ``Sampling Rate'', by which the client denotes how often a datapoint value should be checked for possible changes. On the one hand the sampling rate needs to be high enough so that changes of datapoint values are registered, but on the other hand it must not be too high so that the fieldbus is not flooded with successive datapoint reads. This problem may be solved by introducing a maximum sampling rate that must not be exceeded. Moreover, a maximum number of subscriptions may have to be defined, as a high number of polling threads could also flood the fieldbus. Moreover, certain aspects of OPC Subscriptions, such as maintaining subscriptions, buffering and ``Deadband'', have to be implemented in the server, which may raise implementation-specific issues.