-
Book Overview & Buying
-
Table Of Contents
Mastering jBPM 5
By :
jBPM is an open source BPM suite with a complete tool stack supporting everything right from the modeling and execution to the management and maintenance of business processes. It was released under Apache License 2.0, and was developed and is actively supported by the JBoss community.
The tool stack focuses on serving the following two types of users:
The following diagram will give you an overall view of the jBPM tool stack and the set of functionalities that it provides. We will discuss in brief the functional components. Detailed discussions of each of these components will be presented in subsequent chapters.

Kie is the abbreviated form of "Knowledge is Everything," and the Kie workbench is a combination of every tool in the Drools world for capturing and managing knowledge. It combines capabilities such as authoring of projects, data models, rules, decision tables, test services, process authoring, process runtime execution, process simulation, and human task management.
The Kie workbench provides a web frontend and a complete integrated environment for doing all BPM-related activities. It makes it easier for the user to manage the large set of tools. The underlying architecture is highly modular, and you can integrate each part of this functionality independently to your web application, provided it is UberFire-compliant.
UberFire is a web-based workbench framework inspired by Eclipse RPC. It is plugin-based, and the runtime is a composition of UberFire-compliant plugins.
For more information, see http://www.uberfireframework.org/docs/.
The importance of Kie workbench is that it also provides a philosophy, a guideline, and a process, in developing knowledge-based systems. It guides you through developing a knowledge-based system in a structured manner.
The knowledge life cycle, as the community calls it, is a cycle consisting of the following steps:
The knowledge life cycle shows the maturity of the JBoss community in providing ready-to-use, knowledge-based application development environments.
Process Designer is a web-based rich user interface that allows us to model BPMN2-compliant business processes. Its aim is to provide an intuitive workbench where both business and technical users can model and simulate executable business processes.
The output of modeling is executable business processes. Management tooling enables users to manage the execution of processes, monitor the execution, and report it.
jBPM provides web-based tooling for process management, monitoring, and reporting. Web-based tooling in fact uses the core engine APIs. These APIs are exposed via Representational State Transfer (REST), Java Message Service (JMS), and Contexts and Dependency Injection (CDI) interfaces so that they can be integrated with other enterprise software systems.
Although as a BPM suite, jBPM focuses on business users with a large set of web-based tooling for business users, the community firmly keeps their feet on the ground, with explicit tooling for technical users who are relied upon to build complex business functionalities.
Eclipse-based tooling is a set of plugins to the Eclipse IDE and allows technical users to integrate the jBPM environment to the software development environment. The Eclipse tooling provides features such as the following:
The core of jBPM is a business process execution engine built in Java. It is lightweight and is easily embeddable in any Java application as a dependency (as dependent libraries). The core engine is designed as a standard-based, pluggable, and highly extensible component. It supports the native BPMN 2.0 specification.
The knowledge repository is where we store all the process definitions and related artifacts. BPM is a continuous process; business processes continuously evolve, and it is important to keep track of the updated processes and provide multiple versions of the processes. jBPM uses Drools Guvnor as the knowledge repository and provides the following:
Change the font size
Change margin width
Change background colour