JBoss.orgCommunity Documentation
jBPM is a flexible Business Process Management (BPM) Suite. It is light-weight, fully open-source (distributed under Apache license) and written in Java. It allows you to model, execute, and monitor business processes throughout their life cycle.
A business process allows you to model your business goals by describing the steps that need to be executed to achieve those goals, and the order of those goals are depicted using a flow chart. This process greatly improves the visibility and agility of your business logic. jBPM focuses on executable business processes, which are business processes that contain enough detail so they can actually be executed on a BPM engine. Executable business processes bridge the gap between business users and developers as they are higher-level and use domain-specific concepts that are understood by business users but can also be executed directly.
Business processes need to be supported throughout their entire life cycle: authoring, deployment, process management and task lists, and dashboards and reporting.
The core of jBPM is a light-weight, extensible workflow engine written in pure Java that allows you to execute business processes using the latest BPMN 2.0 specification. It can run in any Java environment, embedded in your application or as a service.
On top of the core engine, a lot of features and tools are offered to support business processes throughout their entire life cycle:
Pluggable human task service based on WS-HumanTask for including tasks that need to be performed by human actors.
Pluggable persistence and transactions (based on JPA / JTA).
Web-based process designer to support the graphical creation and simulation of your business processes (drag and drop).
Web-based data modeler and form modeler to support the creation of data models and process and task forms
Web-based, customizable dashboards and reporting
All combined in one web-based workbench, supporting the complete BPM life cycle:
Modeling and deployment - author your processes, rules, data models, forms and other assets
Execution - execute processes, tasks, rules and events on the core runtime engine
Runtime Management - work on assigned task, manage process instances, etc
Reporting - keep track of the execution using Business Activity Monitoring capabilities
Eclipse-based developer tools to support the modeling, testing and debugging of processes
Remote API to process engine as a service (REST, JMS, Remote Java API)
Integration with Maven, Spring, OSGi, etc.
BPM creates the bridge between business analysts, developers and end users by offering process management features and tools in a way that both business users and developers like. Domain-specific nodes can be plugged into the palette, making the processes more easily understood by business users.
jBPM supports adaptive and dynamic processes that require flexibility to model complex, real-life situations that cannot easily be described using a rigid process. We bring control back to the end users by allowing them to control which parts of the process should be executed; this allows dynamic deviation from the process.
jBPM is not just an isolated process engine. Complex business logic can be modeled as a combination of business processes with business rules and complex event processing. jBPM can be combined with the Drools project to support one unified environment that integrates these paradigms where you model your business logic as a combination of processes, rules and events.
This figure gives an overview of the different components of the jBPM project.
The core engine is the heart of the project and allows you to execute business processes in a flexible manner. It is a pure Java component that you can choose to embed as part of your application or deploy it as a service and connect to it through the web-based UI or remote APIs.
An optional core service is the human task service that will take care of the human task life cycle if human actors participate in the process.
Another optional core service is runtime persistence; this will persist the state of all your process instances and log audit information about everything that is happening at runtime.
Applications can connect to the core engine by through its Java API or as a set of CDI services, but also remotely through a REST and JMS API.
Web-based tools allows you to model, simulate and deploy your processes and other related artifacts (like data models, forms, rules, etc.):
The process designer allows business users to design and simulate business processes in a web-based environment.
The data modeler allows non-technical users to view, modify and create data models for use in your processes.
A web-based form modeler also allows you to create, generate or edit forms related to your processes (to start the process or to complete one of the user tasks).
Rule authoring allows you to specify different types of business rules (decision tables, guided rules, etc.) for combination with your processes.
All assets are stored and managed on the Guvnor repository (exposed through Git) and can be managed (versioning), built and deployed.
The web-based management console allows business users to manage their runtime (manage business processes like start new processes, inspect running instances, etc.), to manage their task list and to perform Business Activity Monitoring (BAM) and see reports.
The Eclipse-based developer tools are an extension to the Eclipse IDE, targeted towards developers, and allows you to create business processes using drag and drop, test and debug your processes, etc.
Each of the components are described in more detail below.
The core jBPM engine is the heart of the project. It's a light-weight workflow engine that executes your business processes. It can be embedded as part of your application or deployed as a service (possibly on the cloud). Its most important features are the following:
Solid, stable core engine for executing your process instances.
Native support for the latest BPMN 2.0 specification for modeling and executing business processes.
Strong focus on performance and scalability.
Light-weight (can be deployed on almost any device that supports a simple Java Runtime Environment; does not require any web container at all).
(Optional) pluggable persistence with a default JPA implementation.
Pluggable transaction support with a default JTA implementation.
Implemented as a generic process engine, so it can be extended to support new node types or other process languages.
Listeners to be notified of various events.
Ability to migrate running process instances to a new version of their process definition
The core engine can also be integrated with a few other (independent) core services:
The human task service can be used to manage human tasks when human actors need to participate in the process. It is fully pluggable and the default implementation is based on the WS-HumanTask specification and manages the life cycle of the tasks, task lists, task forms, and some more advanced features like escalation, delegation, rule-based assignments, etc.
The history log can store all information about the execution of all the processes in the engine. This is necessary if you need access to historic information as runtime persistence only stores the current state of all active process instances. The history log can be used to store all current and historic states of active and completed process instances. It can be used to query for any information related to the execution of process instances, for monitoring, analysis, etc.
The web-based designer allows you to model your business processes in a web-based environment. It is targeted towards business users and offers a graphical editor for viewing and editing your business processes (using drag and drop), similar to the Eclipse plugin. It supports round-tripping between the Eclipse editor and the web-based designer. It also supports simulation of processes.
Processes almost always have some kind of data to work with. The data modeler allows non-technical users to view, edit or create these data models.
Typically, a business process analyst or data analyst will capture the requirements for a process or application and turn these into a formal set of interrelated data structures. The new Data Modeler tool provides an easy, straightforward and visual aid for building both logical and physical data models, without the need for advanced development skills or explicit coding. The data modelers is transparently integrate into the workbench. Its main goals are to make data models into first class citizens in the process improvement cycle and allow for full process automation through the integrated use of data structures (and the forms that will be used to interact with them).
The jBPM Form Modeler is a form engine and editor that enables users to create forms to capture and display information during process or task execution, without needing any coding or template markup skills.
It provides a WYSIWYG environment to model forms that it's easy to use for less technical users.
Key features:
Form Modeling WYSIWYG UI for forms
Form autogeneration from data model / Java objects
Data binding for Java objects
Formula and expressions
Customized forms layouts
Forms embedding
The form modeler's user interfaces is aimed both at process analyst and developers for building and testing forms.
Developers or advanced used will also have some advanced features to customize form behavior and look&feel.
Business processes can be managed through a web-based management console. It is targeted towards business users and its main features are the following:
Process instance management: the ability to start new process instances, get a list of running process instances, visually inspect the state of a specific process instances.
Human task management: being able to get a list of all your current tasks (either assigned to you or that you might be able to claim), and completing tasks on your task list (using customizable task forms).
As of version 6.0, jBPM comes with a full-featured BAM tooling which allows non-technical users to visually compose business dashboards. With this brand new module, to develop business activity monitoring and reporting solutions on top of jBPM has never been so easy!
Key features:
Visual configuration of dashboards (Drag'n'drop).
Graphical representation of KPIs (Key Performance Indicators).
Configuration of interactive report tables.
Data export to Excel and CSV format.
Filtering and search, both in-memory or SQL based.
Data extraction from external systems, through different protocols.
Granular access control for different user profiles.
Look'n'feel customization tools.
Pluggable chart library architecture.
Chart libraries provided: NVD3 & OFC2.
Target users:
Managers / Business owners. Consumer of dashboards and reports.
IT / System architects. Connectivity and data extraction.
Analysts. Dashboard composition & configuration.
To get further information about the new and noteworthy BAM capabilities of jBPM please read the chapter Business Activity Monitoring.
The workbench is the web-based application that combines all of the above web-based tools into one configurable solution.
It supports the following:
A repository service to store your business processes and related artefacts, using a Git repository, which supports versioning, remote accessing (as a file system), and using REST services.
A web-based user interface to manage your business processes, targeted towards business users; it also supports the visualization (and editing) of your artifacts (the web-based editors like designer, data and form modeler are integrated here), but also categorisation, build and deployment, etc..
Collaboration features to have multiple actors (for example business users and developers) work together on the same project.
Workbench application covers complete life cycle of BPM projects starting at authoring phase, going through implementation, execution and monitoring.
The Eclipse-based tools are a set of plugins to the Eclipse IDE and allow you to integrate your business processes in your development environment. It is targeted towards developers and has some wizards to get started, a graphical editor for creating your business processes (using drag and drop) and a lot of advanced testing and debugging capabilities.
It includes the following features:
Wizard for creating a new jBPM project
A graphical editor for BPMN 2.0 processes
The ability to plug in your own domain-specific nodes
Validation
Runtime support (so you can select which version of jBPM you would like to use)
Graphical debugging to see all running process instances of a selected session, to visualize the current state of one specific process instance, etc.