Process choreography is the underlying workflow technology that lets you describe the sequence of activities that compose a business process to automate it. Process choreography doesn’t describe the business logic of individual activities, but provides the navigation logic to determine which activities to invoke and in which order. For example, a business process for a mortgage application may involve several steps, including determining existing assets, performing a credit check, and assessing the value of the home being purchased. Rather than using a paper-based process where the knowledge of the next step is either written in some obsolete procedures manual or kept in some expert’s head, process choreography gives you the tools to describe the sequence and relationships of each step to be automated. As each step is completed, the next step is automatically scheduled.
Typically, business processes are described using the Web Services Business Process Execution Language (WS-BPEL) standard. This XML-based language is used to create executable business processes and is sometimes called “programming in the large” because it represents the high-level navigation of the business process steps rather than the individual business logic of each step. The process choreography is specified in the WS-BPEL. While individual activities (steps) in the process are invoked via Web services requests, the business logic, represented by activities, doesn’t have to be Web services-enabled to participate in a WS-BPEL process flow. An Enterprise Service Bus (ESB) can convert the Web service protocol to the protocol the business logic application expects. This type of mediation provides a more loosely coupled connection that will give you greater flexibility.
There are many process design tools that can help you graphically build the business process and generate the WSBPEL artifact. You can build the process with such tools, define Key Performance Indicators (KPIs) to be monitored at run-time, and perform simulations to test process changes before they’re deployed. Once you have the process model built, you can wire the process activities to the appropriate realization of the business logic. When you have the process model defined and the activities wired, you’re ready to deploy the process model to the process server at run-time.
Human Interaction Management
Not all steps in a business process are programmatic; many require some human interaction for activities such as exception handling, gathering additional information, critical decision-making, or even initiating a new process. Some processes are exclusively human, so each activity is assigned to a person. A person can’t be wired into a business process at a specific step, so there must be an interface developed to let one or more humans interact with a process that can still be specified and implemented at run-time. This discipline is known as Human Interaction Management (HIM).
There are many implications in building a robust HIM system. There may be several people who can accomplish a specific task, so a role-based assignment system is required. For instance, a loan approval process may require human approval when the amount exceeds a certain threshold. In a large lending company, there are probably many people who have this role and can perform the function. Assigning a human activity to an individual involves ensuring they have the proper role in the organization. In addition, the task may be assigned to a work list that several people in that role are handling. That ensures no one person is overloaded with assignments while another person is idle.
Another consideration for a HIM system is the handling of people moving into and out of specific roles. Typically, the role definitions are maintained in a separate company directory, managed by HR, that the BPM system accesses.
Business Rules Management
As much as 70 percent of business processes involve decision-making logic. Building flexibility into your process model is important so you can quickly adapt to changes. An external Business Rules Management System (BRMS) can help you change policies and rules without having to go back and change the code or WS-BPEL for the process. A BRMS lets you externalize rules-based decision logic from your process navigation logic and application business logic.