Introduction
I did this article ages ago and have just found where I had misplaced it.
Anyway the intention is to provide some introductory information about BAM (Business Activity Monitoring) for those who are relatively new to BizTalk and to help people to decide if it is suitable for their project. I will also provide some links to useful resources I have used before when working with BAM.
What is BAM?
Business Activity Monitoring (BAM) is a feature of BizTalk which allows you to obtain information and metrics around your executing processes. To do this you define an observation model of your process which indicates which metrics you are interested in. This information is then captured during the execution of the process and can be queried by business users. BAM has a number of tools which lets different types of users interact with this view of the process.
|
User Type
|
Tool
|
What do they do
|
|
Business Analyst
|
Excel Add-in
Orchestration Designer for Business Analysts
|
These tools help the Business Analst to define the data to capture and to define how the data will be aggregated
|
|
Developer
|
Tracking Profile Editor
BAM API
BAM Web Services
|
These tools/components allow the developer to map the observation model to the physical implementation of the process. An example of this would be indicating that a particular shape in an orchestration maps to a mile stone defined in the observation model
The BAM Web Services allow a developer to integrate custom applications with BAM so they can query inform from BAM
|
|
Business User
|
BAM Portal
Excel
|
These tools allow a business user to access BAM information in tools which they are used to such as Office and Sharepoint
|
For a newbie some of the common questions which might be asked are:
What's the difference between BAM and HAT?
BAM is intended for business users to monitor business processes. HAT is intended for administrators to monitor and track the health of the system.
What's the difference between BAM and BAS?
· BAS provides information workers with features in tools such as Office/Sharepoint which allow them to interact with and manage processes involving Business Partners.
· BAM allows business users to access information about processes which have executed or are executing and aggregations of this information
Why use BAM?
The following are some of reasons why a client would like BAM:
|
Reason
|
Description
|
|
Business Knowledge
|
Unlike application development, BizTalk development often does not have anything tangible which can be shown to a client. BAM will provide them with important KPI related information about their business processes and can help them to see the benefits of the solution and help them confirm they are getting a satisfactory ROI.
|
|
Business Knowledge
|
A business user would be able to see real-time information about their business processes enabling them to be agile and responsive to ensure they are getting the most from their business. An example of this might be seeing that we are starting to build up a back log of orders in the warehouse so they could draft in more resources to help clear this temporary bottleneck.
BAM alerts can also provide the trigger to automate some of these decisions.
|
|
Cost
|
BAM is a built-in feature of BizTalk which a company who invests in BizTalk will already have made. The cost of mining information about processes with BAM would be significantly cheaper than using a third party tool. Although I’m sure it would be possible to capture the information in BAM and then export it to third party tools if required.
|
|
User Experience
|
BAM as a reporting solution provides a familiar environment to business users by taking advantage of Office and Sharepoint
|
|
Simplicity
|
BAM can be implemented with no code in lots of cases
|
|
Phased implementation
|
One of the cool things about BAM is that often a project chooses not to implement it as a core requirement, but an organisation can always come back to their established BizTalk solution and look to add BAM as an additional layer to the solution where they could make the information about processes available without having to deploy a new version of their BizTalk components which are already running. You would simply deploy the BAM artefacts to the existing BizTalk group.
|
How do I spot an opportunity for BAM on my project
1. If a client is considering BizTalk against a potential other product a demonstration of how easily BAM can be implemented in the solution and the valuable information that it can return can be a good way to promote the benefits of BizTalk.
2. If a client is considering a BizTalk solution but is also considering a custom approach which is a common case due to the cost of BizTalk, then it can be useful to discuss how the custom solution would be monitored and how the data would be made available in a consistent manner. This kind of thing would quickly increase the complexity of the custom solution and would make the fact that BAM is available out of the box and easy to implement into your processes an attractive proposition.
3. Although it is recommended to begin thinking about BAM from the start of your project BAM can be added to existing BizTalk solution later. This provides the opportunity for additional work on a project where BAM was not originally in scope. When you hear a client wanting to have a better understanding about their business processes or when you hear them wanting to have volumetric type information relating to their processes this is an opportunity for us to talk to them about adding BAM to their existing solution.
4. If you find that people struggle to understand the role BizTalk is playing in a solution or thing that BizTalk is a magic box which makes things happen and people just generally don’t understand what it does then BAM can be a good way to give people visibility to what BizTalk does in a way they might understand.
5. If you are a consultancy then BAM is a fantastic opportunity for you to sell another project into your existing customers if BAM was not an original requirement of the other projects. You will already know their processes and if you can demonstrate the value of the information you can get your client then you have another potential project here.
Sometimes I think the best way to approach this is to take an existing process which you thing would benefit from being BAM enabled and then just do it as a POC. Showing the business the value of the information and how easily it can be accessed combined with the low cost involved in getting it is probably the best way to get people interested in BAM. I think it is common in these kinds of situations that when a business user sees something like this that will help them they will often come back and ask for more.
Components of BAM
This section will provide some terminology and basic information about some of the background components which make up BAM:
BAM Portal
The BAM Portal is an ASP.net web application which allows business users to view the information held in BAM. In addition to this users can also create alerts so that they are informed when a particular event happens.
BAM Observation Model
The BAM Observation Model is a high level view of the business process. The BAM Observation model is normally defined by a business analyst using the add-in in Microsoft Excel. The Observation Model defines the milestones and data items to collect, information about any aggregations and how they should be presented to users. The Observation Model contains the following items:
-
BAM Activities - See below for more info
-
Aggregations - An aggregation can be either real time or scheduled, see below for more info
o Aliases - There will be business terms defined for common data items to allow business users to understand what value a process may be presenting them. This is intended to ensure that developer naming conventions which may not have meaning to a business user are not displayed.
o Duration - The period of time over which the activity is monitored
o Milestone Groups - Sets of milestones which start or end the process
Aggregations
Aggregations are defined by the business analyst as pivot tables in Excel when they are creating the BAM Observation Model. The aggregation(s) define pre-calculated summaries of data which will significantly improve query response time compared to having to calculate thousands of rows of data.
Aggregations are implemented in the database as OLAP cubes.
Real-Time Aggregations
Real-time aggregations (RTA) allow a business user to see information on business processes that will change through out the day (for example if you refresh your screen the data may have changed). This is because you are seeing data based on the activity tables which contain currently executing activities. RTA data is available via dynamically created views in the BAM Primary Import Database.
This can be very useful to a business but there are some things you need to be aware of:
· Real-time aggregations significantly affect the write speed of BAM to the activity tables therefore you should only consider RTA for the most important aggregations.
Scheduled Aggregations
Scheduled Aggrega