Every IT department strives for maintaining a healthy production environment for their systems. Proven stability and performance are key measures for a well-operated production environment. WebSphere Process Server (hereafter called Process Server) and its successor, IBM Business Process Manager (BPM), provide a platform to create and implement BPM solutions.
A fundamental part of creating a BPM solution is to meet its functional requirements. Another integral part of a BPM project is to ensure that the system performance, once the BPM solution is deployed to production, meets its respective service level agreements.
In reality, performance engineering frequently falls short in development project plans. This results in systems failing to meet user expectations in the context of performance. Richard Metzger depicts in his BPM and SOA performance article various studies on this topic. "Factors inhibiting performance and scalability", for example, identifies various areas that inhibit performance targets. In 16 analyzed cases, only about 35% were vendor product and environment related, and 65% were application related. Out of these 65%, 45% were related to backend resources, 18% to customer application setups, and 36% to customer code. These numbers highlight the importance of including performance considerations during the whole life cycle of a BPM project.
This article contains links to documents on how to tune a Process Server or BPM solution and refers to information resources that discuss performance tuning steps.
General tuning methodology
Performance tuning is typically an iterative process that starts with the throughput or response time requirements for the BPM solution. These requirements are typically retrieved from service level agreements. The aim of the performance engineering is to meet these defined service level agreements.
The process to get there is an iterative one, which includes repeated performance testing, identification of bottlenecks in the system, and applying changes to remove those bottlenecks. These can be application design or configuration changes, such as in the infrastructure, database, or environment. Testing, identifying bottlenecks, and applying changes are repeated until the performance requirements are met.
The Performance Tuning Worksheet provides practical guidance on performance tuning a Process Server or BPM system. It includes a sample worksheet showing how to apply performance tuning principles.
Optimizing the application design for performance
Continuous engineering in the context of performance should have already taken place during the application design and development phase in the project. IBM provides information about application design best practices for optimized performance through a series of performance tuning IBM Redpapers for various product releases:
- [Process Server V7] WebSphere Business Process Management and WebSphere Enterprise Service Bus V7 Performance Tuning
- [Process Server V6.2] WebSphere Business Process Management 6.2.0 Performance Tuning
- [Process Server V6.1] IBM WebSphere Business Process Management V6.1 Performance Tuning
You can refer to the architecture and development best practices outlined in Chapter 1 and 2 of those Redpapers as the first step towards a performance optimized system.
Tuning the operating and database systems
The next step is optimizing the infrastructure, backend databases, and environment in order to meet the performance objectives. First of all, the operating system and backend database performance must be tuned. Valuable information for this step are found in, but not limited to, the following resources:
- Tuning operating systems to optimize WebSphere performance
- Case study: Tuning WebSphere Application Server V7 and V8 for performance
- Best Practices: Tuning and Monitoring Database System Performance (DB2®)
Tuning the BPM environment
Once the application design and the infrastructure are optimized, the BPM environment, such as Process Server or BPM, need to be tuned. What to tune and how to tune usually depends on the solution that is being executed on this BPM environment. Important system parameters to take measurements and apply changes on are typically:
- JVM heap usage and garbage collection policies
- Thread pools
- Connection pools
- Messaging components like connection factories and activation specs
There are generally two major kinds of BPM solution types: response time and throughput focused solutions.
General information on tuning the BPM environment is provided in Optimizing the application design for performance, Chapter 3: Performance tuning and configurations.
In addition, the Information Center provides valuable information on this topic, IBM Business Process Manager V7.5: Tuning.
Response time focused BPM solutions
User interactions with a BPM system are typically response time focused scenarios. A user is, for example, working on a task or task list within the BPM system and using a built-in or custom user interface. He typically waits for a response during his interaction with the BPM system via this user interface. The time required to provide that response is critical for such a response time based scenario.
Process Server and BPM provide built-in user interfaces such as Business Space or the Business Process Choreographer Explorer. There is also a variety of APIs available for creating custom clients. These clients are critical components that typically need to be included into performance tuning activities. Performance engineering for response time focused scenarios concentrates on tuning the solution for delivering fast response times for all user interactions.
More information on tuning response time focused scenarios is found in the following resources:
Tuning built-in clients:
- [Process Server V7] Scalability and Performance of Business Space and Human Task Management Widgets in WebSphere Process Server V7
- [Process Server V6.0.2 – V6.1.2] Business Process Choreographer Explorer - Customization and Tuning Options
- [Process Server V184.108.40.206 – V7] Using Query Tables in Business Process Choreographer Explorer
Optimizing custom client applications:
- [Process Server V6.1 – V7] Business Process Choreographer query() and queryAll() - How to access processes, tasks and work items through the API and JDBC
- [Process Server V6.0.2 – V6.2] Improving the performance of complex BPC API queries on DB2
- [Process Server V6.0.2 – V6.1] WebSphere Process Server 6: Business Process Choreographer - BPC Queries - Performance Tuning Methodology For DB2
- [Process Server V220.127.116.11 – V6.1] WebSphere Process Server V6 – Business Process Choreographer: Performance Tuning of Human Workflows Using Materialized Views
Throughput-focused BPM solutions
Straight through processing of business transaction without human interaction is a typical example for a throughput-focused BPM solution. It is important to process a defined number of business transactions per a defined time period. Performance engineering for such scenarios would focus on tuning the solution for processing as many business transactions as possible in a defined period of time.
Information about tuning throughput-focused scenarios is found in the following resources:
- Performance tuning of throughput-based SOA solutions for WebSphere Process Server - Practical introduction to performance tuning that will help you master your next BPM project
- [Process Server V6.1] WebSphere Process Server V6.1 – Business Process Choreographer: Performance Tuning Automatic Business Processes for Production Scenarios with DB2
Performance tuning is an iterative process that typically involves:
- Changing the application design
- Tuning the infrastructure and backend databases
- Tuning the BPM environment
This article provided information resources on performance tuning that you can reference for your WebSphere Process Server or BPM solution.
The author would like to thank Andrew Tharp, Dominik Meyer, Karri Carlson-Neumann, Ryan Claussen, Wendy Butt, Gary Hunt, and Richard Metzger for reviewing the article and providing valuable comments.
- Article series on operating a WebSphere Process Server environment
- IBM Business Process Manager 7.5 and WebSphere Process Server 6.X and 7.0 Public Knowledge Compendium (This document provides a comprehensive list of documents, including performance-related documents.)
- IBM Redpaper: Performance and Capacity Implications for a Smarter Planet
- IBM Software Services for WebSphere web site
- IBM Business Process Management zone on developerWorks
- developerWorks WebSphere Process Server and WebSphere Integration Developer resource page