EDIT: My apologies. Post below refers to AFSDK, while question was on PISDK... Please disregard!
The summaries method runs on AF attributes. As the AF server only serves the AFmodel to an AFclient (read: AFSDK), it is the AFSDK that does the calculations / summaries. Any data that is required to calculate the summary is therefore pulled to the AFclient / AFSDK and the summary is calculated there.
When using Abacus, this load can be pushed down to the calculation service of Abacus on the server.
The important part to remember is that that AFserver only holds the model, and not the data in the model! (i know, with the notable exception of data contained in attributes with no DataReference).
Although this requires some careful thought about volume of data, frequency of calculation, access paths, etc., i do want to note that the AFSDK is really, really fast. But be careful in defining your architecture!
@Roger: thanks for your post to explain AF SDK working. However, this question should refer to PI SDK. AF SDK has no IPIDATA interface currently.
@Leonardro: I think the method you used should be in IPIDATA2 interface. I will check this with PI SDK developer to get the exact answer.
@ Roger, thanks for your explanation but as Xi Wang expressed, my question was about PI SDK.
@ Xi Wang, your correction is right, it's in the IPIDATA2 interface.
Thank you for your dedication, I'll be waiting for the answer.
The PI Server calculates summaries, as it does a single summary - take the Event Count summary for example, makes no sense to return all events within a timerange to be counted client side.
In what way is the data transfer peculiar? You're only seeing a small amount of data transfered?
I know it makes no sense, transfered data of a summary request (from a PI Server to a PI Client) should be the summary only, not the whole bunch of PI points' values.
But, in any case, I need to be absolutly sure of this feature.
To answer your questions:
- Data transfer is peculiar because we need to reduce network traffic as much as possible.
- We're in a pre-implementation analysis phase and we're looking for solutions which can fit our requirements.
Summaries2 method seems to be the best way to obtain required data but I need to go deeper into this "network load issue".
Summaries2, as implemented in CPI3PIPoint, will calculate server-side for PI Server 3.4 and later. PI Server 3.3 and earlier do not have the RPC support for this.
Just a couple notes, since AF SDK was referenced, and some misleading statements were made
- An AF SDK equivalents of PI SDK's Summaries2 doexist. The method is PIPoint.Summaries for direct PI Point access, and AFAttribute.Data.Summaries for reference via an AF Attribute.
- Most all functions of PI SDK's PIData and PIData2 functions are available directly from the AF SDK's PI Point and AFData object
- The AF SDK call executes on the PI Server, just as in the PI SDK.
- Beginning in AF 2.6, there are also List equivalent methods, that allow you to summarize multiple points/attributes in one call.
- The AF SDK does offer, in addition, a client side summary, which is available on any collection of data that you have already retrieved client side. Use AFValues.Summary/Summaries for this function. The client side calculations have the same capabilities as the server side. These calculations are sometimes used in Abacus to boost performance when the client-side cache indicates that the data is available for client side summaries.
Thanks all for your answers.
The issue has been finally empirically proved and the results were exactly as you said.