I'm looking for a way to "push" new data from PI AF (PI tag values and event frames) to other systems.
I need this for two different cases:
1. Update a SQL database for an external application every time an event frame is created or closed in PI AF
2. Monitor a set of tags, and publish a message to a message queue every time one of the tag (accessed through AF) has a new value, so that external applications can be notified there is new data.
Is there a recommended way to implement this kind of "push"-based synchronization?
I saw the "OSISoft PI Reactive Sample" which is close to what I want to do (I'm not using StreamInsight as in the sample, but the Observer pattern would be a good way to achieve what I want). However, looking at the source code, it seems to be implemented by simulating "push" using polling. Is there a "native" push mechanism built into PI AF, or should I simulate a push using polling, as this sample is doing?