Introducing jBPM
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:
- Business users who model the application and use the application
- Technologists who assist the business users to make the models executable and the application completely functional
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.
The KIE workbench
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.
Note
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:
- Discover: The business knowledge required to drive your company.
- Author: Formalize your business knowledge.
- Deploy: Learn how to configure your environment.
- Work: Reduce the paperwork.
- Improve: Enhance your business performance.
The knowledge life cycle shows the maturity of the JBoss community in providing ready-to-use, knowledge-based application development environments.
Process Designer
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.
Operation management
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.
Eclipse tooling
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:
- Wizard for creating a new jBPM project
- Graphical modeler for BPMN 2.0 processes
- Runtime support (for selecting the jBPM runtime to use)
- Debugging, the current states of the running processes can be inspected and visualized during execution
- Process instance view, providing information showing all running process instances and their state
- Audit view showing the audit log
- Synchronizing with the Kie workbench repositories, enabling collaboration between eclipse tooling users and the web-based users
Core engine
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
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:
- Persistence storage for processes and related artifacts such as processes, rules, data models, and forms
- Deploying selected processes
- Authentication and authorization
- Categorization and searching of knowledge artifacts
- Scenario testing to make sure you don't break anything when we update processes
- Features for collaborative development of business processes, such as comments and change notifications