jBPM5 - Components
BPMS core is the heart of the BPM. The following illustration depicts the BPMS core and its components.
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.
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.