This section provides a very general introduction for how BAM works. It is important to note that, because most of the BAM-based infrastructure is dynamically generated, building a BAM solution typically does not require any knowledge of Microsoft® SQL Server™ and OLAP.
User Interaction for BAM
The primary goal of BAM technology is to connect information workers (e.g. Microsoft Office users) with the implementation of business processes. This is why the workflow for BAM begins and ends with information workers using Microsoft Office, as shown in Figure 2.
Figure 2 BAM technology and user interaction
Figure 2 shows:
-
An expert in the business (analyst/consultant, business architect, manager, etc.) defines an observation model. This task is accomplished using BAM-specific wizards added to Microsoft® Excel®, which take the analyst/user through defining the model, then actually interacting with a simulated "preview data" version of it to verify it meets the requirements of the end-user. Briefly, an "observation model" includes (refer to the next section for more details):
-
One or more "activity" definitions: an activity (or unit of work) is simply a list of milestones (events as points in time, e.g. "invoice received") and contextual data (e.g. "invoice number") needed to service the visibility requirements of business decision makers.
-
One or more "view" definitions: a view is a role-specific perspective that spans one or more activities. The definition includes specifications for what to show (activity data shown or hidden) as well as how to show it (aggregations – dimensions; measures; visualization – charts/graphs, etc.).
-
The IT administrator (after one-time setup of BizTalk Server/BAM) uses a command-line utility to deploy the observation model constructed by the business expert in step 1 (i.e. the utility consumes the Excel workbook). This deployment results in several automatic actions:
-
Dynamic infrastructure is generated for correlation, data maintenance, and aggregations (a self-maintaining data warehouse). This includes emitting SQL schema and logic for staging, star-schema, OLAP cubes, and DTS packages.
-
UI is generated/provisioned giving business end-users a live data view corresponding exactly to the preview decided on by the business expert. In BizTalk Server 2004, the UI is another Excel workbook that is bound to the SQL and OLAP data directly. BizTalk Server 2006 (currently in Beta) adds out-of-box portal functionality for both ASP.Net and Windows Sharepoint Services.
-
The observation model is stored inside BAM (for access by tools and run-time components).
-
Now that the infrastructure for storing and using the data is ready, the developer needs to find the data of interest somewhere in the implementation and connect those run-time event sources to the BAM activity defined.
Note |
|---|
|
For the developer, the only concern is filling the items in the activity given that the view aggregation/presentment layer is entirely self-managed once deployed by the IT administrator in the previous step.
|
The developer maps the activity definition to the actual run-time in two possible ways depending on the implementation technology:
-
If the business implementation is done on BAM-enabled technology such as BizTalk Server, there is no need for coding. The Developer uses the Tracking Profile Editor (TPE) (a tool that first debuted in BizTalk Server 2004) to map the observation model defined by the business expert to the events and data that exist in the implementation. Once the developer applies this "tracking profile," the BAM immediately starts collecting (and possibly aggregating) the data as defined in the observation model. It is important to note that you can update profiles, and therefore you can update visibility requirements, at any time without impact upon the running process itself.
-
For technology that is not BAM-enabled, for example, custom C# code, the developer sends events to BAM using explicit calls to the BAM API.
-
As the business process is executed it emits events that are correlated and aggregated by BAM:
-
The BAM Event Bus Service takes care of the in-memory preparation of the real-time event streams (manages buffering, transactions and threads, watermarks for crash recovery, etc.).
-
The dynamic Business Intelligence (BI) infrastructure takes care of correlating and storing the events into activity records, performs subsequent data maintenance (so that the system does not fill-up and stop), and finally/optionally, aggregation as the basis for performance indicators.
-
Finally, the Business Decision Maker (BDM) opens the auto-generated UI and sees live data about business processes, presented in terms of both current progress as well as recent historical context.
-
The experience of BDM is identical to the preview experience of the expert in the business who created the observation model, but with live data showing what is going on with the business currently.
-
The BDM can also perform ad-hoc queries, define alerts on conditions for which they need automatic monitoring, etc. For BizTalk Server 2004, query capability is surfaced as an out-of-box experience through the Business Activity Services portal, and alerting requires some development atop SQL Server Notification Services (as noted above, BizTalk Server 2006, currently in Beta, will introduce an out-of-box BAM portal which includes query and alerting capabilities).
Note that an important aspect of the BAM technology is clear role separation (hiding complexity for some audiences, etc.), sometimes referred to as "the right tools for the right users." For example, as far as information workers are concerned, they know what data they need (defining observation models in step 1 above) and benefit from live access to it (step 5 above) – everything else is quasi-magical, and they typically do not need or want to understand it. Similarly, the developer knows about the process implementation and how to get data from it, but does not care at all what users are being serviced by this data collection (the views).
Observation Model Concepts
The following figure is a conceptual representation of how data flows into and through BAM. From the bottom up, the BAM stack progressively filters and/or aggregates data. In addition, as described above, everything subsequent to intercepting events is about presentment of the data to serve some specific user visibility requirement or other process management purpose.
Figure 3 BAM Observation Model concepts
Consider first the raw events of the run-time. During the execution of the process, a vast amount of data can potentially be collected. Even though this data may be useful to IT or development for troubleshooting or server health monitoring, most of it does not make much sense to business end users.
The manifest that describes specifically what data to collect for the business user audience is the BAM activity (the dotted-line arrows shown at the bottom of Figure 3 above: milestones in red, data items in black). These items are collected during the actual transacting of the business. Defining the activity requires knowledge of a specific business (or whatever is being modeled as an activity) but does not require knowledge of the actual implementation.
Assuming that the data is collected in context of the defined activity, the next layer closer to the end-user is the activity view: a filtering and aliasing of the activity data intended to serve a specific category (i.e. functional role) of business users. There can be one or more views onto any given activity. Through the views created for specifically for them, business users can see the health of their business in their terms, and do things like perform searches (query) for activities in progress.
Optionally, multidimensional aggregations of activity data can be created based on whatever data is part of a given view. Those aggregations contain measures (e.g. count of purchase orders in total, or a running average on dollar amount) and dimensions (used for filtering or grouping, such as the product being ordered or the city to which goods will be shipped).
Typically, the analyst or expert in the business who defines the activity works in collaboration with the IT administrator to determine appropriate real-timeness of aggregate data. Specifically, any aggregations defined can be created as OLAP cubes, which represent moment-in-time snapshots of the business, or as real-time aggregations, which are continuously updated. Many factors contribute to this decision, though it usually comes down to balancing the timeliness requirements of the end-user with the impact to shared IT resources (specifically the SQL servers).
Defining & Searching for Activities
Despite targeting different users, defining and searching for activities are two tasks typically mentioned together because it is a good way to represent the fact that BAM begins and ends with the business user:
-
First, a business analyst, or expert in the business, decides what the visibility for a given process ought to be. They do this completely separate from whatever exists to run that process in the real world. As described in the introductory part of this section, this is a two-part task of a) deciding what data to collect, and b) creating views or perspectives on that data collection.
-
A couple of other important process management roles do their part (namely the IT Pro and developer), at which point the business end-user (or information worker) is able to consume business activity data in a representation tailored to their needs.
As described near the beginning of this paper (see The Visibility Problem section for more details), this is a fundamental process management capability: being able to define an abstract for a process and then use that abstract to measure the progress of individual items of work as they move through the process end-to-end.
However, this truly is only a basic capability. It allows users to perform ad-hoc and repeatable queries, generally to review performance aspects of a process or the participating applications, business entities, etc. What this ability does not do is provide any advanced process management capabilities. At best, this data supports reacting to business/process conditions.
Activity & Document Navigation: References
In The BAM Vision: Global Visibility section, BAM was likened to a distributed index for all activities of the business. That comparison is meant to describe an experience in which users seamlessly crawl from or through activity data to related messages, back again, through other related activities and their messages, and so forth. To facilitate this experience, there are two BAM functions required:
-
Related activities – described in The BAM Vision: Global Visibility section (sub-point #4 related to the figure), activities can have relationships with other activities. Whether for reasons of granularity (i.e. a 1-to-many relationship between the activities) or simply because of functional association relative to the business, the idea of knowing inter-activity relationships is a cornerstone of the seamless navigation experience.
-
Activity references – this is an open framework by which it is possible to associate any kind of data to a BAM activity. The most common example given for this is the one of a purchase order business message relative to an activity built atop the order management process. When users review activity data for the process, it is entirely likely that they will eventually need to see the actual message at the heart of (or causing) the process instance to occur. Processes may optionally append any relevant reference material to a BAM activity as it is being assembled. Also, BAM will automatically maintain this information in the form of pointers to underlying run-time references that it understands (e.g. BizTalk Server service, Orchestration, and message IDs are all known and provided automatically for BAM activities mapped to BizTalk Server solutions).
None of this is to say that BAM lacks value in the absence of activity relationships and references. However, given that richness of the business user experience is a significant reason for employing BAM technology at all, its ability to also function as a powerful cross-reference is a key aspect of BAM.
Activity Aggregations
This is really where BAM delivers on its promise to improve process management. As noted in the previous section, having access to activity data at the level of individual items of work does allow some process management to occur, but it is entirely in reactive mode: users review what data they have for the individual items of work to reconstruct "what happened." However, when users have access to data in aggregate, they are no longer reviewing the process outcome for any single item of work and are instead taking a holistic view of process health.
For example, consider the prototypical purchase order management process. The power of process management at one’s disposal is dramatically different depending on the granularity of data available:
-
Individual – users can see what data has been recorded and what has not, determine how long each part of the process took to complete for this case, and otherwise investigate anything the activity is set to record; users can be alerted on queries that match some condition or set of conditions, but are left to deal with each specific case separately; no conclusions are possible regarding process health or performance trends over time.
-
Aggregate – users no longer see anything about specific cases of the process; aggregate views are a reflection of process health, and comparative analysis of aggregate snapshots is the means by which trends are identified (and corrected if negative, encouraged if positive).
In short, being able to assemble Key Performance Indicators (KPIs) for an organization requires data aggregations. Typically, KPIs are complex expressions that tie together two or more simple data aggregations; however, a KPI can be as simple as "average time to process a purchase order end-to-end."
Although it might be semi-controversial to say so, it is through aggregation of data that BAM is somewhat predictive of the future. For example, if a given BAM aggregation shows that 300 purchase orders pile up in the stage of the order management process known as "fulfillment," and the normal steady-state level for that build-up is more like 100-150, then two things are true about the process:
-
Real-time / non-predictive: there is a bottleneck in this stage of the process for some reason (for which further investigation will reveal a cause at some point…).
-
Future / predictive: at some point, everything in the process downstream from "fulfillment" will get slammed when the stage that is currently jammed up goes into high gear to catch up.
This second aspect is the main driver behind vendors of network & systems management software looking to augment their technology by adding BAM capabilities. The process bottleneck just described is completely invisible unless correlated, aggregated process progress data is available as additional commentary on system health.