So, do you work with Oracle SOA Suite?, that’s great because we also do, every single day since a long time ago. As Oracle professionals, we’ve seen the SOA stack grow, change, incorporating new products and technology with each version, from 10g to 12c.
We’re Rolando Carrasco (Oracle ACE) and Arturo Viveros (Oracle ACE Associate), the SOA Myth Busters from Mexico, and as we go with this series we will put to the test a number of questions, myths and urban legends regarding both SOA & the Oracle SOA Platform in seek of finding out which myths are true and which are not.
BAM vs BI. BAM vs Monitoring.
In this episode, we will dive into the discussion of how and where BAM fits into the analytics and monitoring space.
One of the most common conclusions in this regard, are:
- “BAM is my SOA BI”
- “With BAM I can monitor what happens inside the service bus”
- “BAM is a less powerful BI”
- “BAM is a reporting tool”
- “BAM is just to monitor the steps of a business process inside a bpm engine”
- “I have a reporting tool where I can see the status of my processes/services, therefore I don’t need BAM”
For years we’ve been hearing those type of conclusions/arguments around BAM. So:
· Is BAM just a reporting tool?
· Is BAM just an extension of my BI initiative?
· Why use BAM if I already have something to get into the data my services produce?
“BAM is nothing more than a BI and a way to monitor my processes/services”
Let’s get started
BAM means: Business Activity Monitoring. It is a concept before a product. But as in most cases regarding the leading vendor’s (Oracle/IBM/SAP/Microsoft) tools, the concept is in fact branded as a product. For instance: Oracle BAM.
BAM is one of the key enablers for an organization that is heading into SOA. It is actually, from our standpoint, one of the best ways to introduce SOA value to the organization. It’s also a way in which the C-Level can get involved in the result of an SOA implementation and a way to perceive the value of an initiative such as SOA or even BPM.
BAM – Business Activity Monitoring. Is part of most of the BPM and SOA platforms that are available in the market. In the Oracle space, the Oracle BAM product is bundled within he Oracle SOA Suite, but can be used with the Oracle Unified BPM Suite, as well. As its name stands for, BAM is focused on Business Activity. It is targeted to enable a business user to get real time information of his/her business. It is oriented to facilitate the visibility of key business information in real time via a graphical set of reports. It is not tied to a Service Bus, SOA platform, nor to a BPM engine. It is well prepared to receive/consume information from different sources. It is not for history analysis nor to forecasting. It is focused on what is happening now, in this very moment, in this minute.
A little bit of history
Let’s reuse this image of our first episode. We are focusing in Oracle technology, and we will use it as our sample technology to go through this myth of BAM = BI, BAM = Monitoring.
The following image is the timeline of the SOA and BPM tools history for Oracle:
Our first time with Oracle BAM was back in 2005, it was the days of Oracle acquiring PeopleSoft, Siebel, etc. This BAM tool came as a part of one of those acquisitions. It was a rare product, but a very visible one.
Oracle had the vision to include it in its SOA Suite packaging, and with the Oracle SOA Suite 10g release you could install it.
It was not a very straight forward task, because the product depended on Microsoft software. Yes, you read it correctly: Microsoft software. Basically .NET framework and Internet Explorer. The installer was a command line installer. So the first days were not that good if you wanted to go full speed with the product.
At the end you managed to install it, and then part of the confusion started to come up. It was easy to get confused on what the value of this so called real time monitoring was capable to do.
Take a look to this image:
Isn’t this a type of an ETL tool? You can identify sources, targets, some transformation in the middle. And it actually worked like an ETL type of tool, the main difference was that the target was pretty much an Oracle BAM Data Object. But as in any other ETL tool, you had the ability to gather information from different sources, among them: database tables, jms queues.
The name of that tool was Oracle BAM Enterprise Link Design Studio. It was a Microsoft type of tool, where, as I mentioned, it provided you a graphical way to design your load processes to BAM data objects. In the beginning it was very common to have JMS sources, probably feeded by Oracle BPEL PM, or even Oracle Enterprise Service Bus.
Then you have (10g and 11g) another set of tools, all of them web based:
2. Active Viewer
3. Active Studio
Those tools are still available, in 10g/11g those are the same ones.
In Active Studio you have something like this:
At a first sight, is nothing more than a reporting tool. You can choose the information you want to work with; you have a set of different type of graphs to choose; you can configure alerts.
Pretty much what a BI reporting tool is capable to do. But the main difference is that this is oriented to get real time analysis.
It was easy to start thinking in ways like:
- Why don’t we connect BAM to a database?
- This is like creating reports in Excel
- How long the information can be stored in BAM?
- The information is gathered from the database, right?
- I want a report of all the sales, and want to create a pivotal table to get my analysis.
Well, in fact, because of what we have described, the tool could be able to fulfill those requirements.
All what we’ve been mentioned were the first impressions of a user, consultant, BI consultant back in the first days of Oracle BAM.
We remember being delivering BAM workshops back in 2005-2006, through all out Latin America together with Sanjeev Sondur. It was a constant story to hear those type of conclusions.
In Oracle BAM 11g the tool changed its technology foundation. Now it relies on Weblogic, it is more integrated with Oracle SOA Suite (BPEL, OSB) and with other tools like Oracle Data Integrator.
But: is that really the value of BAM? The answer was and is still: NO. BAM is for real time analysis, it is aimed to provide information in real time. BAM is no interested on provide what happens yesterday, it can though, but is not interested. Nor to provide you with a forecast of what is probably going to happen tomorrow.
In 2014, Oracle SOA Suite 12c was released. Oracle BAM, as it’s been since 10g, is bundled it with the suite. This type with major changes:
1. It is an ADF based tool
2. Oracle BAM is capable to read information from Oracle BI EE data structures.
3. Oracle BAM is able to be deployed in an active-active HA architecture
4. Oracle BAM uses Oracle Coherence for its cache
5. Oracle BAM can be displayed in mobile devices: phones, tablets, etc.
In this release it is easier to identify the value and the barriers of the BAM concept:
· It is possible to create reports where you can contrast the information that happened yesterday, with the one that is currently happening. That is to mix the info from Oracle BI EE and the real time in BAM
· You have the freedom to mix different style of reports: bar graphs, matrix, geo spatial, maps, and external web applications. All this with the idea of having the real time and other information to complement it or contrast it.
· You are able to get all this information from any type of device. The monitoring you will get is real time. Is not that you want to know what happened yesterday, is that you want to know what is happening NOW.
So let’s summarize everything that we just mentioned:
That pretty much summarized in a nutshell the history of Oracle BAM as part of the Oracle SOA Suite. As we mentioned, some sort of confusion on what is possible to get from it arise.
Let’s nail those confusions identifying some use cases where BAM perfectly fits, and we are also going to isolate the patterns here it doesn’t fit.
BAM use cases
Previous sections described how Oracle BAM has been evolving through all these past 8 years, and we have mentioned some confusions that come up while understanding the concept and the value of the product.
Now let’s focus on how to delimitate the barriers of the real time analysis with Oracle BAM.
The first thing to really understand is that BAM is focused on real time, so let’s elaborate around this:
USE CASE 1
Let’s imagine that you want to know the status of your orders:
· The top orders for the current hour and the last two hours
· Orders divided by your regions
· If an order is not being fulfilled in time, alert me right away
· The top selling product of today
· Cancelled orders. To identify when an order is cancelled, and react right away
· Identify if an order exceeded the day expectations. But to identify when it happens
You can obviously say:
· Well, let’s just go directly to the orders table and get it from there
· Let’s create a table that consolidate all that information, and create a simple report with that
· Let’s not even use a reporting tool, let’s create a web application where I can track my orders, filter them
· Alerts? That’s easy. Let’s create a trigger or a java routine
Some thoughts around this:
· The information that we want to monitor is transactional
· It is highly probable that the information passes through a Service Bus (e.g. Oracle).
· We don’t need to:
a) Store this information in tables
b) If the information is later on store in a database because that information is handled by an Enterprise Application, ERP, etc. that’s fine. But let’s not mix things right here
c) Create a web app to get this type of information. Why do this? Why complicate things and make your development team work in a new application just to monitor this?
· We also want to give a business type of value. Not only report: you have 10 orders during the last 3 minutes. We want the Directors to love this. So let’s not just worry about the technical side of the house. We need to provide a powerful tool for them. A tool where we don’t make them think. Where they just open a web page and start visualizing how their business is working. In this very simple example: how the orders are moving and fulfilling.
· This is real time. The least we want to make is waste time with the data threatening.
· This information is right in time, once it loses its value, is not necessary to report it. So why waste time and space storing them for this purpose?
· If what you want to provide is information about yesterday. Then just move to the historic information within your data warehouse. BAM is not your place.
· Think about this: if you want to know what happened yesterday: let’s go to an Oracle BI EE type of report. If you want to know what is happening NOW: let’s go to an Oracle BAM report. If you want to compare what happened yesterday with what is currently happening, let’s use Oracle BAM 12c and mix information from my historic records and with your real time activity. Just that simple.
For this use case, we are mostly gathering information from within services that are running on top a Service Bus. Obviously in this case: Oracle Service Bus.
Oracle Service Bus will provide the service layer to manage the orders: create them, cancel them, query them, save them. So once that information passes through the bus that can be feed directly to BAM. Probably in the middle you can create a set of internal services to enrich the information, clean it, etc. and then passes it to BAM. But the idea we want to highlight is that the bus is the transport, there is no need to go elsewhere, or to store the information somewhere else. You already have it, let’s leverage that and feed BAM.
USE CASE 2
Now let’s imagine you want to provide a solution to monitor network events for a TELCO. Those events come from different systems and platforms. Events can be from any type of nature: activation, call errors, sms errors, internet data errors, etc. If those events are from the universe of this TELCO subscribers, it is going to be a huge amount.
With OEP you will get the infrastructure to get the information, listen to those events, and correlate them. Since we are talking about hundreds/thousands or even millions of events, there is no way you will want to store this information and then in a different moment, analyze it. What you need is to use OEP to identify patterns and the important information for the network administrators to be shown on a real-time analysis report, to get the most relevant events from the network at the time they occur. You want to have this promptly, since depending on this you take actions.
Some thoughts around this:
1. Do you imagine yourself creating a web application for this purpose?
2. What about creating a data model and store all that information and then try to report it with a traditional reporting tool after fact?
3. How would you analyze the patterns?
4. How important is the real time in this scenario?
In this case, BAM is being used as the window to get all this information. You will not take time to store and the run a process to analyze the information. You will get the visual alerts, the patterns as they happen.
USE CASE 3
Here we have a financial institution that really needs to be able to visualize real-time information about the way international payments are being distributed and handled by its internal / automated business processes.
The data which appears on the dashboards is very sensitive and can influence in a positive manner quick decision making that can save tons of money overall for the organization.
The targeted applications for this KPI monitoring are the following:
- Implemented Business Rules engine for International Payment Operations (Oracle Business Rules)
- Configurable “Bread & Butter” Rules and Exceptions (BPEL + DVM Lookups)
- Fair-Share counterparty Balancing Algorithm (BPEL + Java SE)
- ABA / SWIFT Code Validation and Repair (BPEL + PL/SQL + ODI)
- Payment Gateway to the SWIFT Platform (OSB + BPEL)
And this is the way the resultant dashboards may look:
In this scenario, BAM has just been “plugged” into the middleware platform’s huge flow of data. The product receives this information transparently and manages to consolidate and portray it in a pretty neat fashion.
These are quite valuable pieces of information which are coming alive and together with very little effort whatsoever by the development team.
- While it is common to try to understand the value of a BAM tool as a traditional reporting tool, it is more than that. It is focused on real time analysis
- While 10g and 11g Oracle BAM architecture was a little bit rigid, in 12c is a very powerful one. It is the release that allow you to start mixing real time analysis with your traditional BI
- One thing is to have a real time analysis and a different one is to have a Web application to get information for your business operation
- BAM is a powerful tool to give the C-LEVEL a real time view of their business. It is not something that they will have to wait for an overnight process to know what happen yesterday. They can have it right away, and in 12c, they can have it in their mobile devices.
- Oracle BAM leverages the power of the SOA Suite and Oracle Event Processing Server.
So, the myth:
“BAM is nothing more than a BI and a way to monitor my processes/services”
Has been demystified. The answer for such argument, is: No. BAM is not a traditional BI, nor just a way to monitor Services.
Even more, BAM is one of the key enablers for an organization that is heading into SOA. It is actually, from our standpoint, one of the best ways to introduce SOA value to the organization. It’s also a way in which the C-Level can get involved in the result of an SOA implementation and a way to perceive the value of an initiative such as SOA or even BPM.
We certainly hope that this body of work has been interesting, useful and enjoyable for you appreciated reader. Let’s meet again in our next episode!!
The SOA Myth Busters.