Welcome to JBPM Tutorials. The objective of these tutorials is to provide in depth understand of JBPM.

In addition to free JBPM Tutorials, we will cover common interview questions, issues and how to’s of JBPM.


JBPM is a flexible Business Process Management (BPM) Suite. JBPM is the bridge between business analysts and developers. Traditional BPM engines have a focus that is limited to non-technical people only. JBPM has a dual focus: it offers process management features in a way that both business users and developers like it.

JBPM is a fully open-source , light-weight, flexible Business Process Management (BPM) Suite written in Java that permits you to implement, model and observe business processes throughout their life cycle. JBPM is distributed under Apache license.

A business process permits you to model business goals by explaining the phases that needs to be implemented to accomplish those goals. The perceptibility and quickness of business logic are significantly advanced. Business processes executes sufficient detail which can essentially be implemented on a BPM engine. Bridge the gap between business users and developers as they are at higher-level and practice domain-specific models that are assumed by business users but can also be implemented directly.

The fundamental of JBPM is a light-weight, advanced workflow engine that is written in Java language that permits the execution of business procedures using the latest BPMN 2.0 specification. You can able to learn BPM in any Java friendly environment, and can be embedded with the application or implemented as a service.

To support business processes in JBPM a lot of features and tools are offered during their complete life cycle:

-Pluggable human job facility built on WS-HumanTask for containing tasks that need to be executed by human actors.

-Pluggable perseverance and communications.

-Web-based process designer which is used to generate the graphical formation and replication of business processes.

-Web-based form modeler and data modeler which is used to support the formation of data prototypes and practice and task methods.

Web-based re-designable dashboards and reporting tools.

JBPM is software used for process control function as workflow engine or used upon process execution. This is one of products included in JEMS (JBoss Enterprise Middleware Suite) provided by JBoss as SOA platform.

JBPM has Community Edition and Enterprise Edition.

Community Edition

Volunteer developers; free to download from JBoss.org

Enterprise Edition

Red Hat, Inc. offers it as JBoss Enterprise Middleware by selecting and restructuring crucial and stable parts of each product in Community Edition in order to make it possible to use at corporate level.

JBPM offers following functions:

-Graphical process designer

-Business process (workflow) management

-Data management regarding business process execution

-Timer application corresponded to business calendar (Timer processing based on business calendars)

-Logging function for business process analyses

Anyone can enable JBPM Graphical Process Designer tool and which is processed intuitively without requiring programming skills, and enables modeling of processes by means of diagrams

This tool allows you (us) to design business processes from viewpoints of both business and system.

jBPM supports two languages below:

-JPDL (jBPM Process Definition Language)


JPDL is the proprietary format for jBPM and is a language to express processes involving humans. It can include programs (Java code) in its definitions. BPEL is a language for automation of processes by means of web services.

In jBPM 4, a new Process Virtual Machine (PVM) is used to handle multiple process languages and execution modes.

All are joined in a single web-based work surface, which supports the entire BPM life cycle:

Modeling and deployment – Modeling and deployment is used to author your procedures, rules, data models, methods and other things

Execution – Execution is used to perform processes, tasks, events and rules on the core run-time engine.

Runtime Management – Runtime Management is used to work on allocated job, achieve procedure requests etc.

Reporting – Reporting is used to keep track of the implementation using Business Activity Observing abilities.

Eclipse-based tools for developer which is used to support the testing, modeling and debugging of processes.

Use Remote API to process engine as a service.

BPM generate a bridge among developers, business analysts and end users by proposing process management tools and features in such a way that satisfy the requirement of both business users and developers. Domain precise nodes can be persevered into the palette, helping the processes easily understandable by business users.

jBPM supports adaptive and dynamic methods that needs flexibility to picturize difficult, real-life conditions that cannot simply be defined using a stiff procedure. This will help to control which parts of the process should be executed.

jBPM is more than an isolated process engine. Many Complex business logic can be modeled as a arrangement of business processes with business rules and complex event processing. jBPM can be joined with the Drools project to develop one unified environment that combine these patterns where you model your business requirement as a grouping of processes, actions and guidelines.

Enterprise jBPM Features

The enterprise features of jBPM that are the focus of this section are beneficial when you begin developing complex business processes. In particularly, it is useful to be able to break down, or group, complex processes into more manageable pieces. We will discuss two means of accomplishing this within jBPM: superstates and subprocesses. Later, we will describe solutions for how to manage exceptions that may occur as a result of any custom code you developed as part of the process.

While not an "advanced" feature per se, our focus will turn to describing how you can use in-line code in the form of Bean shell scripts and monitor a given process instance through the extensive logging features that are provided.