One of the pillars of BI is aggregation. Totals (an aggregate) — every banded report has them. Often metrics are some variation of aggregation or set math. Give me my division numbers please! Services, however, are usually fine grained, transactional. Can they be aggregated? Should they?
How do you take a single service that returns the sales of an invoice line and get those division numbers? Can you? Are you forced to hide a proper aggregating expression behind a division total service? And if you do have to hide or pre-calculate the aggregation (can you say OLAP) is the ability of users to construct visual integrations (mashups) of these services of these special aggregate services on the fly really more useful than traditional approaches? (Good questions and unfortunately the complete answer probably won’t appear in the next paragraph)
I can say this, however. First, let’s take a service that returns a set of data — columns/rows — and assigns an awareness semantic to the specific columns of interest. Second, take a user with access to the service acting in a visualization who’s default actions which are separate from the service are to aggregate based on the semantic. Then you create the desired effect – totals. And all of this without the user necessarily having to make an explicit determination to sum a value and the service not having to resort to pre-aggregation of values. Does that really work? (And before you object I realize that this won’t work at a certain scale but lets give it a chance)
Well Google has a pretty good set of services around the spreadsheet. If you look at each column as an element and each sheet as a service then you end up with a nice set-based service. Throw an interesting element such as number in one of the columns. Define the service so that it tags the numeric column. Then as the user uses the service in a visual designed to return totals it can sum the properly tagged columns. If that spreadsheet is division sales then without the burden of significant definition we use the context and the content in concert to achieve the answer. My division totals!
That said — this thought is still in progress — and it is true that most “mashups” serving data are little more than portal views of discrete service responses and often focused on non-structured information (regardless of what the marketing slick says). And when people want a total – it is off to the meta-data layer and the banded report model or metric calculator.
Regardless, let’s look at the future a bit by considering one of my favorite sites Swivel for a moment. It is true that the last time I built a data set the definitions resembled some of the heft of a traditional data definition in your favorite BI tool. However, I can chart sales of tennis balls from one “data service” against sales of tennis rackets from another with little more than two defined sets and the desire to chart the results. Multiple users, delivering data and collaborating in mixed, complex visuals.
Need totals? (Not all the time and less then we probably have been conditioned to think) Have services? You may still be in business with a little context and a bit of glue driving resulting calculations.