jBPM5 - Components

BPMS core is the heart of the BPM. The following illustration depicts the BPMS core and its components.

BPM Core

The Semantic Module

The semantic module defines the language semantic (what each word means) and how it will be translated for the process engine's internal structures that are ready to be executed. This module basically contains the essentials to understand the BPMN2 language.

The Process Engine

The process engine is the one responsible for actually executing our business processes. The process engine is in charge of creating new process instances and keeping the state for each of them. Inside the process engine code, the internal structures are defined to represent each activity that is in our process definitions. All the mechanisms that are being used to instantiate these process definitions will execute them as defined in the process engine.

Persistence and Transactions

In most enterprise applications, all the interactions must run inside a transaction boundary, and we must deal with different systems, APIs, and designs. Also, we must have a flexible mechanism to define −

  • How to handle long-running processes

  • How and when we can we store information about the process status and the information that the process is handling

  • How and when we need to create, commit, or roll back the process engine transactions

  • Which business exceptions can roll back or compensate already executed business actions

All the above points are covered by persistance and transactions component inside the jBPM.

Audit/History Logs

This module is in charge of giving the user a way to query about how our processes are being executed. This information includes historic information about processes that have already ended and the latest information about the processes that are being executed.

Business Activity Monitoring (BAM) tools and information dashboards are some of the most common clients for the information generated by this module. The Audit/History Logs module is commonly used to extract useful information and metrics that will collaborate with different tools designed to display this information accordingly.