An Overview of IBM BPM
I gave a presentation the other day on IBM BPM. Here are my notes...
1. BPM and BPMS
Business process management (BPM) is a systematic approach to making an organization's processes more effective, more efficient and more capable of adapting to an ever-changing environment. A Business process management suite (BPMS) is a software platform on which BPM can be delivered.
2. IBM BPM
IBM BPM (formerly Lombardi Teamworks) is a BPMS. The following diagrams and text are intended to provide an overview of the architecture and key components of IBM BPM.
Each circle in the diagram above is a Server. There's a "special" Server (called the Process Center) that is for Development and all the others are Process Servers (e.g. UAT, Production). Process Applications are created on the Process Center and then (typically) pushed out sequentially to Process Servers (with Production being the last Process Server). | |
Each Server (Process Center or Process Server) comprises two main components, a Process Server (which does everything to do with Process i.e. most things) and a Performance Data Warehouse (which handles the performance data that's generated by the Process Server). Having a separate component for performance data helps to optimise the overall performance.
NOTE: Please note the name-duplication of non-development servers (Process Server) and the process-related server component (Process Server). | |
Each Process Server (on a Process Center or a Process Server) comprises three main components, a BPD Engine, a Service Engine and an Event Manager. The whole thing is relatively stateless (everything lives in the database).
The BPD Engine does all the orchestration work. It pushes cases (Instances) through the BPD models and hands off (via the Event Manager) work to the Service Engine. When these discrete chunks of work are complete, the Event Manager lets the BPD Engine know and it moves on to the next thing in the BPD.
The Event Manager acts as a relay between the BPD Engine and the Service Engine. It picks up discrete pieces of work that are ready to run from the BPD Engine (e.g. System Tasks, Timers) and hands them over (complete with data etc.) to the Service Engine.
The Service Engine is the part that actually does things. While the BPD engine provides the orchestration the Service Engine performs does all the tangible stuff e.g. sends E-mails, calls Web Services etc. | |
Each Performance Data Warehouse (on a Process Center or a Process Server) comprises two main components, Tracking Data and Database Views.
Tracking Data is created when the Performance Data Warehouse picks up data from the Process Server.
Database Views sit on top of the Tracking Data and provide a richer data set for clients (typically reporting platforms e.g. Cognos). | |
___________________________________ | Interacting with Process Centre / Process Server
Process Designer (IDE)
Only present on Process Centers, the Process Designer is the Integrated Development Environment (IDE) for IBM BPM. It's where things are built. You would use the Process Designer to create a Business Process Diagram (i.e. to model a process) or an Integration Service (i.e. to connect to an external system).
Process Center Console
Only present on Process Centers, the Process Center Console is where the things that are built are managed. You would use the Process Center Console to deploy a Process Application to a Process Server (e.g. to deploy into the UAT Environment).
Process Portal
Present on both Process Centers and Process Servers, the Process Portal is where Users do things.
Web-Sphere Console
Application Server stuff e.g. defines JDBC connections, LDAP integrations etc.
Admin Console (PS)
Contains all the out-the-box administrations functions (e.g. Process Inpector, Manage EPVs etc.) and any user-defined Administration Services.
Admin Console (PDW)
There's very little to see here. It will tell you if there's a problem and give you some high level information about the volume of tracking data being generated. |
NOTE: In the descriptions above, I have ignored Clustering. IBM are good at infrastructure. Suffice to say that the platform is tunable and scalable.
3. Build a Simple Process
At this point in a presentation I jumped into the product and built a simple process. It's surprisingly quick and easy to build something simple (yet surprisingly difficult to define real business processes simply - don't be oversold on what the platform does and doesn't do).