I have been day dreaming again and my favourite topic popped up, the PI Server. Here is the latest thought...
We currently have the Update manager providing updates of individual values for individual PI tags for consumers, but I wonder if it is feasible to extend the update manager to include some more complex data update requests. My recent inspiration has come from those clever folks at the Microsoft StreamInsight team - I am in two minds right now if what I describe is perfect for StreamInsight and no worry for the PI Server PM/developers, but I reckon it might have a use case to be core functionality of the PI Server.
I am talking about creating data subscriptions with the update manager for "give me the average of this tag using this relative time period '*' -> '*-1d', oh and send me the result each time a new event for the PI tag is received that falls within my relative time period". Now that is exactly what StreamInsight can give you or even Performance Equations, but why can't the core PI Server do this too without the overhead of StreamInsight or the additional PI tag for PE? So from the up and coming rich data access, when we call RecoredValues against an AFAttribute we have the option to create an EventPipe from the method (e.g. RecordedValuesEventPipe) - if we use relative time the event pipe is a moving one, but if we specify absolute time the event pipe is based on archive values that arrive (if any) in the time frame; a calculation expression could supply the calculation to be performed, etc.