jBPM (Java Business Process Model) is an open-source workflow engine written in Java that can execute business processes described in BPMN 2.0 (or its own process definition language jPDL in earlier versions). It is released under the ASL (or LGPL in earlier versions) by the JBoss company.
In essence jBPM takes graphical process descriptions as input. A process is composed of tasks that are connected with sequence flows. Processes represent an execution flow. The graphical diagram ( flow chart) of a process is used as the basis for the communication between non-technical users and developers.
Each execution of a process definition is called a "process instance". jBPM manages the process instances. Some activities are automatic like sending an e-mail or invoking a service. Some activities act as wait states, like for example human tasks or waiting for an external service to return results. jBPM will manage and persist the state of the process instances at all times.
jBPM is based on the Process Virtual Machine (PVM) which is the JBoss community's foundation to support multiple process languages natively. The JBoss community currently focuses on using the BPMN 2.0 specification for defining business processes.
jBPM also provides various tools, both for developers ( Eclipse) and end users (web-based) to create, deploy, execute and manage business processes throughout their life cycle.
As of version 5.0, jBPM also includes powerful business rules and event integration, and support for more advanced, flexible business processes.
jBPM version 5 was the result of a merge of the jBPM project with Drools Flow, a sub-project of the Drools system.
The current jBPM5 snapshot offers open source business process execution and management, including:
- An embeddable, lightweight process engine in Java, supporting native BPMN 2.0 execution
- BPMN 2.0 process modeling, both in Eclipse (developers) and web-based (business users)
- Process collaboration, monitoring and management through the Guvnor repository and the management consoles
- Human interaction using an independent WS-HT human task service
- Strong and powerful integration with business rules and event processing