BPM involves the designing, modeling, executing, monitoring, and optimizing of business processes. A specialized software system that helps achieve these objectives completely is called Business Process Management System (BPMS). Most of the IT infrastructure used in business is in fact part of one or more business processes, and a BPMS should have the capability to manage the complete life cycle of a business management process. Further, jBPM provides a complete BPMS.
A business process consists of a set of activities, organized to complete a specific business objective, which varies from creating a product to delivering a service. A business process model also provides a visual representation of the business processes. The activities in a business process (also called tasks) are connected to represent the execution flow of a business process; further, these activities can be categorized.
jBPM helps its users to define and model business processes by using its process designers. Business users can in fact design the business process online, and efficient versioning and history capabilities help in making the activity of modeling business processes collaborative. There are provisions to simulate how a business process might behave during runtime. jBPM also provides capabilities to migrate the process definition to an updated version when business changes stipulate process improvements.
The defined business process models are deployed to BPM software, where instances of these process definitions are created to execute the process. jBPM provides the capability of executing business processes and has complete operation management capabilities such as tracking, controlling, and maintaining the history of the life cycle of all process instances.
An important concept that we need to discuss in detail while explaining BPMS is Human Interaction Management (HIM). The activities that form business processes can be broadly classified into automatic and manual. Automatic activities are those that can be completed by the software system without any manual intervention. For example, in a banking transaction process, the customer has to provide the details of the transaction, such as the bank account number to which the money needs to be transferred and the amount to be credited into this account. This is a manual activity. In contrast, if an SMS alert needs to be sent to the customer's mobile as part of this process, no manual intervention is needed; the software can fetch the mobile number registered with the customer's account and send the SMS automatically. An SMS alert is an automatic activity in the banking transaction process.
Therefore, human tasks are in fact human interactions in the business processes or, in a broader sense, human interactions with the software system in place. Usually, human activities are physical tasks that are performed outside the software system and the results or conclusions are then fed as input into the software system. Technically, from the perspective of the system, we can say that the associated human activities would provide an input to the business process and there would be scenarios where the business process would be able to continue only after manual decisions. For example, in a banking transaction business process, the customer has to provide a one-time password to continue the process.
A Human Interaction Management System (HIMS) should have the capability to handle the life cycle of a human activity, which includes notifying the users who are associated with the activity, collecting information or results from the users, and keeping track of the history of the tasks. The information collected from human interactions is used in process execution and decision making. jBPM has an in-built human task service and can be integrated with any other HIMS. The in-built human task service of jBPM is in compliance with the WS-Human Task specification.
jBPM also provides a form modeling feature that helps business analysts to design user interface forms that can be attached to the jBPM user task, using which information about the completion of the user task (if any) can be collected.
Business Activity Monitoring (BAM) provides online monitoring capabilities for business activities and enables businesses to arrive at key performance pointers by slicing and dicing the activity event data. BAM refers to a general software system that can monitor business processes, but attaching BAM with a BPM-based software system is relatively easy and powerful. In general, BAM software has the capability to show business data using dashboards, enabling business users to create customer reports and charts for performance indicators and trend analysis.
The jBPM core engine stores the process and task history and provides APIs to perform the BAM operations. Further, the jBPM tooling includes the dashboard builder, which enables its users to create custom dashboards from the business process history.
Consider a banking transaction process where a customer carries out a transaction from his/her account to another account. By analyzing the process history logs, the business user can create trend analysis reports of the peak hours of the day at which the maximum number of transactions took place. This analysis can be used to optimize related IT costs.
Another more frequent use case where BAM is applied is the optimization of a business process by avoiding process bottlenecks. Process bottlenecks can be caused by various problems including resource shortage (insufficient supply of staff) or a system not performing up-to-the-mark. A resource shortage problem would be quite obvious, but a system inefficiency may not be very apparent. For example, suppose that the One-Time Password (OTP) activity in a banking transaction process is often delayed. Let us say it takes more than one minute, which prompts users to perform the transaction again (or use the resend option) and leads to customer dissatisfaction. This also leads to wastage of resources by sending multiple OTPs; in other words, a delayed OTP confuses the customer and the bank further loses its credibility. Such issues are often noticed by banks when diligent customers notify them about the issues. BAMs can make the corrections of these issues more proactive, leading to increased customer satisfaction.
Business process simulation provides the business user with the ability to see how the business process model created by them would work during runtime. Simulation is a term that goes hand-in-hand with modeling. A model designer would really love to have a simulator to test his model and understand the runtime impacts of his/her model. Business process simulation is the capability to analyze the runtime behavior of business processes. It helps in the optimization of business process models for quality, performance, and resource utilization.
Comparing business process simulation with the more regular models of testing these processes, we find that the user has to manually test these processes after deploying them in a Quality Assurance (QA) environment. Further, for automated verification, the user would have to rely on a programmer to script the automated test cases. In both cases, the process of verification is not carried out locally with the modeling process and delayed results mean iterations for corrections, adding to the cost of process improvements.
Business process simulation provides business users with the ability to see how the business process model created by them would work during runtime. The users can provide the simulation information, which includes the input to the processes, interrupts, and resource information to be used in the simulation mode. While executing the simulation, the software collects the statistical information about the running process, and this information can be analyzed by the users to optimize their business model.
jBPM is an early adopter and implementer of the Business Process Simulation Interchange Standard (BPSim). BPSim provides a standardized specification that allows business process models to be analyzed using a computer interpretable representation or a meta model. Using jBPM, the end user can provide the metadata for simulation by using the process designer and execute simulations to view the execution paths and the performance metrics associated with the various execution paths.