Push pattern from PI AF for near real-time synchronization to other systems

Discussion created by ckarras on Sep 26, 2014
Latest reply on Sep 30, 2014 by dmoler

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?