Modeling your business processes with IBM WebSphere Lombardi Edition, Part 6: Using KPIs and reports for monitoring and performance analysis

In the final part of this series, you'll learn how to use key performance indicators (KPIs) and reports to do monitoring and performance analysis with WebSphere® Lombardi Edition.

Xi Ning Wang, Advisory Software Engineer, IBM

Xi Ning Wang photoXi Ning Wang is an advisory software engineer on the IBM China Cloud Labs team in IBM Software Group, where he focuses on cloud computing related technologies development and customer solutions. He was designated an IBM developerWorks Contributing Author in 2009.



11 January 2012

Overview

Part 1 of this series gave you an overview of the features and architecture of WebSphere Lombardi V7.1 (hereafter called Lombardi). In Part 2 you learned how to use the most common features of Lombardi, including business process definition (BPD), and integration, human and rule services, to model the sample process. In Part 3 you learned how to use some advanced features of Lombardi to enrich to meet more complex requirements, including nested processes, milestones, event mechanisms, exception handling and Lombardi web services exposure. Part 4 covered how to use Lombardi Coaches to build human services. In Part 5, you learned about advanced Coach features, such as dynamic data binding and the runtime rendering mechanism, as well as how to customize the Coach.

In Part 6, you'll learn how to use KPIs and and reports to do monitoring and performance analysis. The data that Lombardi tracks and stores for KPIs enables you to analyze process performance, as well as create service level agreements (SLAs). When you run instances of a BPD, Lombardi tracks and stores data for configured KPIs in the Performance Data Warehouse. Lombardi uses the stored KPI data to run certain types of historical analyses in the Optimizer.

You can import and unzip the Lombardi export file provided in the Downloads section to quickly go through the whole scenario for KPI, SLA and reporting.


Concepts

This section describes some of the key concepts with which you should be familiar before proceeding with this article.

Metrics

A metric is a holder for information, usually a business performance measurement. A metric can be used alone or with other metrics to define the calculation for a KPI, which measures performance against a business objective. Examples of metrics are the working duration of a process, the name of the assigned user, a supplier's response time, and the cost of the risk assessment step in an insurance process. As a unit of measure, the metric is often expressed as a quantity, time, or value.

KPIs

A KPI is a metric that is essential to indicate progress towards a goal, or to indicate a positive or negative situation. KPIs are the significant measurements used to track performance against business objectives. A KPI has a target or ranges, or both, to measure the improvement or deterioration in the performance of an activity critical to the business. KPIs differ depending on the business and its objectives.

KPIs are based on business objectives. The business objective is a high-level goal that is quantifiable, measurable, and results-oriented. An objective translates into a KPI that enables the organization to measure an aspect of the process against a defined target.

A KPI generally describes the measurements that Lombardi tracks at process runtime, storing results that you can use to analyze process and task performance in the Optimizer. WebSphere Lombardi V7.1 includes the following types of KPIs:

  • Standard KPIs

Standard KPIs reside in the Lombardi System Data toolkit. By default, most of the standard KPIs are associated with each activity that you add to a BPD diagram. Click the KPIs option in the properties for an activity to see the associated KPIs. Each of these KPIs has default settings that you can change.

  • Custom KPIs

You can develop custom KPIs for custom metrics to measure the performance of activities.

Service Level Agreements (SLA)

A service level agreement (SLA) is the part of a service contract in which the level of service is formally defined. In practice, an SLA is a contract that requires metrics to meet specific targets within a timeframe. It is a commitment to complete a task within a specific timeframe.

You can create SLAs based on standard and custom KPIs. SLAs enable you to establish a condition for one or more activities that triggers a consequence. For example, you can create an SLA that causes Lombardi to send an email notification when a particular activity takes longer than expected to execute.

When you run instances of your processes, SLA consequences do not trigger until the associated activity starts or completes. For example, if you configure an SLA to send an email notification when a particular activity takes longer than two days to execute, Lombardi does not send the notification at the time that the violation occurs. Instead, it sends the notification at the time that the activity is complete. So, if the activity takes three days to complete, Lombardi sends the notification at that time, informing users of the violation. SLAs enable you to easily report on violations, as well as understand the trend in violations over time.


Building custom KPIs

In general, KPI data comes from two different sources: one is based on business data, such as existing order status information; the other is the additional basic data specifically for the calculation of KPI, such as the issued time and the effective time of the order. A KPI user interface page is used to display the KPI data, usually in different formats, such as pie charts, histograms, and so on.

The sample of purchase order process used in this series uses the following KPIs to illustrate how you can build custom KPIs and report them in UI pages.

Create an Order Processing Time KPI

In the purchase order scenario, The order processing time KPI is used to analyze the average processing time of each order. In order to calculate the average processing time of each purchase order, the following two fields are required:

  • Order Creation Time
  • Order Delivery Time

To create the custom Order Processing Time KPI, complete the following steps:

  1. Start the Lombardi Authoring Environment and open the process application developed in previous parts of this series.
  2. Click the plus sign (+) next to the Rules category and select Key Performance Indicator from the list.
  3. In the New Key Performance Indicator dialog, specify a descriptive name for the new KPI, such as Order Processing Time KPI, and click Finish.
  4. In the Details section of the dialog, select Time as the Unit for the KPI, as shown in Figure 1.
  5. Click Select to choose a KPI in order to roll the selected unit up into a higher level KPI.
  6. Specify the value by which to multiply the unit that you are tracking before the data is collected in the roll-up KPI.
Figure 1. Create Order Processing Time KPI
Create Order Processing Time KPI

Create an Order Submission Resource KPI

An order submission can have the following sources:

  • Order Submission by UI - submitting the order using a web-based user interface.
  • Order Submission by ERP - submitting the order from the external ERP system.

Follow the steps in Create an Order Processing Time KPI to an Order Submission Resource KPI.

Verify that the newly created KPIs are listed in KPI types, by clicking the Performance category, as shown in Figure 2.

Figure 2. Performance KPI types
Performance KPI types

Tracking Lombardi performance data

In Lombardi, tracking requirements are called definitions because they establish a database schema in the Performance Data Warehouse to accommodate the tracked data generated by the Process Server. Definitions must be sent to the Performance Data Warehouse when you make any changes to your tracking requirements in the Lombardi Designer.

To create customized and third-party reports in Lombardi V7.1, you need to identify the data to track and send that data to the Performance Data Warehouse. Lombardi provides two tracking methods: autotracking and tracking groups.

Autotracking

When you use autotracking to track the data, the following KPIs are tracked:

  • Custom KPIs associated with your BPD
  • Custom KPIs associated with the activities in your BPD
  • The Total Time KPI associated with each BPD by default

The supported data types are String, Integer, Decimal, Boolean, and Date.

Tracking groups

If you want to explicitly control your tracked data and tracking points for more advanced custom reports, you should use tracking groups to track the data. For example, you can group the variables that you want to track by type, strategically place tracking points in your BPD, and track variables across multiple BPDs. With tracking groups, your tracking points can also span multiple BPDs.

The supported data types are String, Number, and Date.

If you want to create reports to analyze the amount of time that elapses between certain steps in your process, you can add tracking points to your BPD and then create a timing interval to capture the duration between a starting point and an ending point. When using timing intervals, you should auto-track the process variables that you want to capture and then create a tracking group to hold the timing interval data.


Building customized reports

Lombardi reporting options provide a powerful way to collect, publish, and consume process performance information. They can enable you to easily define the data that will help you analyze process performance, configure the product components to collect this data, and create the reports that consume the collected process performance data.

Lombardi provides the following reporting capabilities:

  • Out-of-the-box scoreboards: The out-of-the-box scoreboards provided by Lombardi can help you to analyze personal performance, team performance, business process performance, and SLA violations with minimal configuration. Default scoreboards are available by default in the Lombardi Process Portal.
  • Customized reports: Customized reports enable you to analyze business data specific to your processes. You can define the variables to track and create customized reports to query your tracked data in the Lombardi Designer. You can view the resulting report scoreboards in the Lombardi Process Portal or any browser.
  • Third-party report tool: Lombardi provides the capabilities to support a third-party report tool, such as Cognos, to query and view the Lombardi Performance Data Warehouse and extract data.

How reports work in Lombardi

After you send tracking definitions to the Performance Data Warehouse from the Lombardi Authoring Environment and then start to run instances of your process, the Performance Data Warehouse retrieves tracked data from the Process Center Server or Process Server at regular intervals. As shown in Figure 3, the reports work with Lombardi as follows:

  1. In the Lombardi Designer view, define the variables that you want to track and then send tracking definitions to the Performance Data Warehouse. The Performance Data Warehouse creates a database table to hold the tracked data.
  2. Run instances of your processes on the Process Center Server or a Process Server in a runtime environment.
  3. The Performance Data Warehouse retrieves tracked data for each variable from the Process Center Server or Process Server at regular intervals.

    When a process participant accesses a task that is part of the process or a system involved in the process generates an event, the Process Server creates the tracked data. The tracked data can include runtime values for the fields in a Tracking Group, values for a Timing Interval, or variables whose values are auto-tracked. The Process Server writes the tracked data to the Process Server database.

    The Performance Data Warehouse polls the Process Server database at configurable intervals, checking for a batch of data that is ready to be transferred. In a single transaction, the Performance Data Warehouse marks the data in the Process Server database as transferred (locking it to prevent any further updates), loads the data from the Process Server database to the Performance Data Warehouse database, and then deletes the transfer records from the Process Server database.

  4. Create reports in the Designer that query the Performance Data Warehouse to retrieve the required data.
  5. Reports that you define in the Designer display as scoreboards in the Lombardi Process Portal or a customized portal. You can also query the Performance Data Warehouse from third-party tools such as Cognos to build the more specific reports.
Figure 3. Lombardi reporting process
Lombardi reporting process

Create a simple custom report

The following sections explain how to enable autotracking capabilities to track data and generate a custom report of order submission source using the Ad-Hoc wizard.

  1. To use autotracking, open the BPD diagram in the Designer view. Click the pool, and make sure Enable Autotracking is checked, as shown in Figure 4. When autotracking is enabled for a BPD, data for any nested processes of that BPD will also be tracked. Subprocesses and services inherit the setting of the parent process. Change the default autotracking name to PurchaseOrderProcessTG.
    Figure 4. Enable autotracking
    Reporting in Lombardi
  2. If you want to analyze process data according to particular business variable values, go to the Variables tab for your BPD and right-click each variable that you want to track, such as orderID, status, or orderSubmissionSource, and select Track this Variable, as shown in Figure 5.
    Figure 5. Select variables to track
    Select variables to track
  3. Save the BPD and then send the newly defined tracking requirements to the Performance Data Warehouse by selecting File => Send Definitions to Performance Data Warehouse. Then you can go to the Performance Data Warehouse database in the Process Center and verify that a PurchaseOrderProcessTG view has been created that includes a column for each variable that you tracked, as shown in Figure 6.
    Figure 6. Verify variables in PurchaseOrderProcessTG view
    Verify variables in PurchaseOrderProcessTG view
  4. The Ad-Hoc wizard in the Designer view enables you to quickly generate and publish reports. Using autotracked data with the wizard, you can easily create custom reports to analyze various aspects of your business.

    In the Designer view, open the diagram of the BPD by selecting File => Ad-Hoc Report Analysis from the main menu. Choose the settings that you want for the report from the wizard. For example, as shown in Figure 7, select the orderSubmissionSource variable for the X-axis binding and the orderId variable for the Y-axis binding with the function of COUNT (#), because we want to show the sum number for each type of purchase order. Leave the default chart layout (Stock Bar Chart), and then click the Refresh icon in the upper right to preview the chart in the wizard.

    Figure 7. Ad-Hoc Report
    Ad-Hoc Report
  5. Once you're satisfied with the chart's appearance and data, click the Create Report icon in the upper right. In the Create Report dialog, specify Order Submission Source as the name of the report and click Finish.
  6. To create a scoreboard so that you can display the report in the Process Portal, click the plus sign (+) next to the Performance category in the library and select Scoreboard from the list of components.
  7. In the New Scoreboard dialog, specify Order Submission Source as the scoreboard name, leave the default layout setting (Default Scoreboard Layout), and click Finish.
  8. In the new scoreboard, under Reports, click Add, find the report, and click it to add it to the scoreboard.

    Under Layout, check Enabled and specify a title for the scoreboard, such as Order Submission Source. Click Select next to Exposed to option and select the participant group whose members can view this scoreboard in the Process Portal, as shown in Figure 8.

    Figure 8. Specify Scoreboard options
    Specify Scoreboard options

Now when you log in to Lombardi Process Portal as a member of the participant group to whom the scoreboard is exposed, you can see the title of the Scoreboard (Order Submission Source) under My Scoreboards on the left of the portal. When you click it, the Process Portal displays the report as shown in the following Figure 9.

Figure 9. Resulting scoreboard
Resulting scoreboard

Create a basic custom report

In this section you'll learn how to use the Ad-Hoc wizard to leverage data captured using tracking groups, so that you can compare the duration of a set of tasks for different process variables.

  1. In order to calculate the processing time for each purchase order, add the Submit and Completed tracking points to the BPD diagram as shown in Figure 10.
    Figure 10. Add tracking points
    Add tracking points
  2. Create a tracking group to hold the timing interval data. In the Designer view library, click the plus sign next to the Performance category and select Tracking Group from the list of components. For our sample, specify OrderProcessingTimeTG as the name of the newly created tracking group and click Finish.
  3. Select the icon for each tracking point in the BPD diagram, select the Implementation option in the properties, select the OrderProcessingTimeTG tracking group and then specify the tracked fields, as shown in Figure 11.
    Figure 11. Specify tracked fields
    Specify tracked fields
  4. Now you need to create the timing interval. In the Designer library, click the plus sign next to the Performance category and select Timing Interval from the list of components. Specify Order_Processing_Timing_Interval as the name of the newly created timing interval and click Finish.
  5. Open the new timing interval (Order_Processing_Timing_Interval) and add the start and end tracking points, as shown in Figure 12. Select the Submit tracking point for the Start Points of the interval with Calculate from earliest point, and the Completed tracking point for the End Points of the interval with Calculate from latest point, as shown in Figure 12.
    Figure 12. Configure Order Processing Timing Interval
    Configure Order Processing Timing Interval
  6. Follow the steps in Create a simple custom report to create a report, selecting the OrderProcessingTimeTG.supplier variable for the X-axis binding and the Order_Processing_Timing_Interval.duration variable for the Y-axis binding with the function of AVG (average), since you want to show the average processing time of each purchase order per supplier.
  7. After you finish creating the report and score card, you can log in to Lombardi Process Portal as a member of the participant group to which the scoreboard is exposed. You should see Order Processing Time scoreboard under My Scoreboards. Click it to display the Order Processing Time report, as shown in Figure 13.
    Figure 13. Order Processing Time Report
    Order Processing Time Report

Conclusion

In this paper, you learned how to use WebSphere Lombardi KPIs and reports for monitoring and performance analysis. Lombardi reporting options provide a powerful way to collect, publish, and consume process performance information. Specifically, Lombardi enables you to easily define the data that will help you analyze process performance, configure the product components to collect this data, and create the reports that consume the collected process performance data.


Download

DescriptionNameSize
Purchase Order Process filePurchaseOrderProcess_v6.zip466KB

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Business process management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Business process management, WebSphere
ArticleID=784403
ArticleTitle=Modeling your business processes with IBM WebSphere Lombardi Edition, Part 6: Using KPIs and reports for monitoring and performance analysis
publish-date=01112012