Oracle BI Suite EE: Embedding BI in SOA Applications
A couple of weeks ago I wrote an article ("Oracle BI and SOA - Hype or Here Now?") that looked at the role Service-Orientated Architecture will have on the world of Oracle BI developers. Since then I've been giving a lot of thought as to the practical applications of this new technology, and I was lucky enough to spend a few hours at the recent UKOUG conference with Phil Bates, an architect within the BI product managemet group who's been driving the direction of much of this functionality. Phil gave a presentation at the recent Oracle Open World in San Francisco on this very subject (downloadable from the Open World website, username "cboracle", password "oraclec6") and we took out a couple of hours to go through the presentation and discuss the impact on Oracle business intelligence developers.
If you read through my article and you've seen some of the recent presentations by Oracle on their business intelligence roadmap, you'll probably be aware of one of the main drivers for the fusing together of SOA and business intelligence - the ability it gives us to start embedding BI in the day-to-day applications we use to run our organizations. Oracle talk about "pervasive" business intelligence, which means moving away from BI being just about OLAP cubes, standalone query tools and access by a handful of analysts with masters degrees, to a situation where BI almost disappears as a distinct category of applications and instead becomes just a part of the business applications we use each day. Where BI applications are used standalone, perhaps in the form of interactive dashboards, SOA also gives us the ability to link these dashboards to external business processes, so that for example a user viewing sales trends on a dashboard can use a link on the page to trigger a marketing campaign to a particular segment of customers on the report.
Drilling down into more detail, this move towards pervasive business intelligence leads to many things:
- We start to embed BI in business processes
- We start to embed BI in business applications, such as expense management applications and call centre applications
- It becomes increasingly useful to get real-time data into the data warehouse, so we can act on current circumstances
- We start to think about delivering BI via technologies such as SMS and Blackberries, and
- We recognize the fact that a lot of people do all their work within Microsoft Office.
What Oracle are now proposing is that business events, business processes and business rules can be enhanced to analytic business events, analytic business processes and analytic business rules through the use of Oracle's new BI Suite Enterprise Edition products.
-
The business processes that we've defined using BPEL can call out to web services provided by BI Suite EE, to evaluate BI conditions, embed BI metrics, and generate and deliver reports from BPEL workflows
-
Analytics can be embedded in business rules, so we can evaluate whether a customer is profitable before allowing or denying a discount,
-
We can generate business events from BI alerts, and route business events based on analytic content, and
-
We can run analytics on the metrics generated by business processes, giving us the opportunity to perform closed-loop business process optimisation.
These things are always easier to understand with examples, so here's a few starting off with what is probably the easiest to visualize: giving our BI dashboards the ability to kick off BPEL business processes.
In this example, our BI dashboard provides some insight into the sales trends for one of our products. Normally, if you want to act on this information, you need to change context and switch out to the marketing application; however a feature currently in Siebel Analyics 7.8 allows us to define a link menu that gives the user the ability to perform a range of actions based on the context of the information on the screen. In our case, we simply use this menu to link out to a BPEL process that kicks off a marketing campaign.
As I said, the ability to do this (the link-menu structure) is already in Siebel Analytics 7.8, but the link through to BPEL is a bit tricker as you need to put a bit of Javascript together to call the BPEL process; in the future though, you'll just be able to create links straight through to BPEL just like you currently do with iBots, and you'll be able to call BPEL processes from iBots and vice-versa.
The next step on is to embed analytics within business rules. To take an example, an organization might grant a discount to a customer, or refund a customer a recent bank charge, based on a predefined set of rules such as "is the customer a key account" or "does the customer have an otherwise unblemished credit record". If, however, we could build an analytic query into the business process, to establish how profitable the customer is, or whether they are likely to churn, we can make this business rules more dynamic and more responsive to the needs of the business. In effect, we're moving away from static rules based on predefined actions, to more dynamic ones based on overall business objectives (in this case, to maximize profits.)
Taking this approach of embedding analytics in business rules allows us to to move from:
-
The old-world way of embedding business rules directly in applications, or
-
embedding business rules in workflows, to the current best practice of....
-
Moving rules to a separate, declarative rules engine such as "Oracle Business Rules", and then eventually...
-
using Oracle Business Intelligence to create dynamic business rules based on overall objectives
with Oracle BI Suite running reports, in response to a request from the rules engine, to work out whether the customer is profitable, whether they're about to churn, whether they're a fraud risk and so on.
When you couple this with the new Real-Time Decisions product that Oracle recently bought via the Sigma Dynamics acquisition, you can start to add some pretty interesting intelligence into the day-to-day applications in use within an organisation. To take an example using Siebel CRM, which has had an OEM'd version of Real-Time Decisions embedded within it for some time now, the following scenario might occur:
-
A high-value customer calls the bank call-centre and enquires about his balances. He's doing this because he's recently had a bank charge and he's thinking of moving his accounts, but he doesn't say this when he calls.
-
As he's a high value customer, and his current "churn prediction rating" is very low, the system would normally suggest that the operator tries to cross-sell him an investment plan.
-
When the operator enters the purpose of the customer's call into the CRM system - to enquire about fees - this is communicated to the decision engine in real-time, which then uses BI functionality to work out that the risk of churning is now much higher.
-
This churn risk is then communicated back to the CRM application, which now changes the recommendation to a free platinum account upgrade, with no cross-selling suggested whilst customer retention is the priority.
Another example is defining a business process around store promotions. The store promotion process, defined using BPEL, might itself be called from a business intelligence alert (an iBot, in BI Suite EE terms) that has determined that sales have fallen below a certain level. The BPEL process runs to process the store promotion, and accesses a BI web service to work out the likely cost of the promotion. These Web Services are provided by the BI Web element of BI Suite Enterprise Edition, which provides access to both requests (reports) and individual items in the Common Information Model as required.
Later on, and getting more into the BI Suite EE "Maui" release timeframe, the BPEL process calls out to the BI Web server again, this time to call more course-grained web service that invokes an iBot to inform store staff of the new store promotion.
Of course, given that the BPEL engine and the SOA environment records it's own metrics, it's a logical next step to point BI Suite EE at these business process metrics, and use this to drive business performance. BI can be used to identify process bottlenecks, to identify the business impact of process improvement, identify through alerts common process failures, whilst the BI server can be used to integrate application and business process data.
So, summing up, with the current and future releases of BI Suite EE, we can create links and menus on the dashboards that invoke business processes, so that our users can act immediately on the insight they gain rather than having to start up separate line-of-business applications and switch context between the two environments. We can embed intelligence into business processes, by having BPEL processes call BI EE functionality currenty via fine-grained, and in future course-grained web services, and we can move towards our business rules being dynamic based on broad business objectives, rather than static based on proscriptive sets of predefined scenarios. Some of this is possible now (Siebel Analytics 7.8), much of it is possible with the forhcoming Maui release of BI Suite EE (BPEL integation for example), and more of it will come along with the 11g release of BI Suite EE some time in 2008. And, of course, all of this is being embedded in the upcoming Fusion release of Oracle's CRM applications, which will leverage the BI EE platform to weave analytics directly into Oracle's transactional applications. Again (as I always say at this point), it all looks like very interesting stuff, albeit based on the new BI Suite EE platform rather than the traditional Discoverer-Reports-Portal framework.