Monday, March 25, 2013


IBM has acquired Lombardi Software in January 2010 and integrated their excellent BPM into a new solution called IBM BPM. IBM BPM comes in three variants: Express, Standard and Advanced. They are different by licensing and products that are included into them. Express comes with limited users and deployment options with Lombardi part only, Standard comes with Lombardi part of BPM and Advanced are integrated with Lombardi and WPS that has advanced service integration, BPEL and ESB.

If the company already has services exposed directly or by already existing ESB, Standard version of the BPM should be sufficient.

BPM standard comes with WAS 8 and can be easily installed. BPM cannot be downloaded and has to be procured from IBM support even for the testing purposes. One additional item is that DB2 Express is needed to be installed and databases created before the installation. BPM needs three databases for start: BPMDB (Process Server database), CMNDB (Common database for Business Process Manager Advanced), PDWDB (Performance Data Warehouse database). You can rename them during the installation. Here is the link  with the instructions for setting this up quickly.

After the installation, user will be able to connect to different consoles. First item would be to connect to Process Center Console and download the Process Designer. This is Eclipse based tool that will help you to design your processes. Please note that when installing BPM, you need to specify the address that is not localhost as other developers will not be able to connect to the computer to download Processes Center and later connect to your process repository. Since you will pay for every component of BPM, this is important.

These are the consoles that would be available after the installation:

  1. Process Center Console (this console has similar layout as Designer but you cannot design a process here, it is used only to view and deploy process apps)
  2. Process Admin Console  (in this console you can set users, groups and use process monitoring)
  3. Process Portal Console (this is user related console and in here you can see yours or your team reports and process user tasks)
  4. REST API integrated test console (used for testing purposes and very useful during the application development)

Once connected, you will be able to start building your first process.

IBM BPM supports following constructs in Process Designer (not all of them are listed here):

  • Business Objects (You can use this item to pass your data around BPM and also use it in input/output variables)
  • BPD's (This is your business process definition)
  • Coach View (If you use Coaches for working with user tasks, this is where you will develop UI)
  • Decision Service (Used as a flow for the business rules)
  • Event Subscription (Used when registering to events in other repositories outside of BPM. You can then trigger a service in BPM environment and process application)
  • Exposed Process Value (Used when you need to expose values outside of you process and not only as input/output)
  • External implementation (Used to connect to external system in more generic way, but usually using WS calls)
  • General System Service (This will be used a lot as a bridge between different constructs listed in here. It is important to say that this is one of the ways to use UCAs)
  • Human Service (Used to define Coaches flow and link different screens created with Coach View. Please note that this can be done from Human Task from BPD using double click to automatically access default Service)
  • Integration Service (Used when you need to integrate external/internal services like WS, Java, Document repository or invoke UCAs)
  • Participant Group (Used to create groups of people/roles that can access certain resource. You will have only default groups defined when you start a new process, so you can use this to create other grouping structures for security or assigning to lanes when using BPD)
  • Service Level Agreement (Very useful construct. We can track execution of the process and act if we breach some SLA. We can then invoke a service, send an email or do something similar. It is very useful for reporting, too.)
  • Tracking Group (Used to define tracking parameters that can be later related to in BPD)
  • Undercover Agent (UCA) (Used for intermediate events or start process events)
  • Web Service (Used to expose General System Service, Integration Service or Service as a Web Service. Ajax is used and security can be enabled. Very customizable)

Note1: Every time you are exposing something outside of BPM, you will need to setup users/groups that can see/work with this resource. Do not forget this or otherwise, you will not be able to use exposed values.
Note2: I have left out a few of the other constructs like tracking, scenarios or file manipulation out of this list as I did not need them at this time, but you can find help for these and other items on IBM support site.

Depending if you choose that your solution becomes BPM centric or not, you may want to use Coaches to interact with the user, but in case that you already have a front end or you intend to build one, you can use the great support that IBM offers through Web Services (SOAP/REST). By using integrated REST API console, you can see the parameters for the process, and test it before you integrate it with your application.

Overall, my experience with IBM BPM was very satisfactory where BPM excelled in almost every aspect. IBM made a good decision when they acquired this product. Nevertheless, keep in mind that with a good product, comes a big price :).

I hope that this gives you some overview in how to start with IBM BPM 8. Here is also an eBook that might help you with first steps: BPM for Dummies.