Chapter 1. Introduction
This Guide has been written for developers and administrators. Read on in order to learn how to use jBPM and JPDL in your corporate setting. Note that this book not only teaches how to use the software but explains, in significant detail, how it works.
Note
This Guide contains a lot of terminology. Definitions for the key terms can be found in Section 6.1, “ Some Helpful Definitions ”.
The JBoss Business Process Manager (jBPM) is a flexible and extensible scaffolding for process languages. The jBPM Process Definition Language (JPDL) is one of the process languages that is built on top of this framework. It is an intuitive language, designed to enable the user to express business processes graphically. It does so by representing tasks, wait states (for asynchronous communication), timers and automated actions. To bind these operations together, the language has a powerful and extensible control flow mechanism.
The JPDL has few dependencies, making it is as easy to install as a Java library. To do so, deploy it on a J2EE clustered application server. One will find it particularly useful in environments in which extreme throughput is a crucial requirement.
Note
The JPDL can be configured for use with any database. It can also be deployed on any application server.
1.1. Overview
Read this section to gain an overview of the way in which the jBPM works.
The core workflow and business process management functionality is packaged as a simple Java library. This library includes a service that manages and executes JPDL database processes:
Figure 1.1. Overview of the jPDL components
1.2. The jPDL Suite
This suite contains all of the jBPM components and the following sub-directories:
- config
- database
- deploy
- designer
- examples
- lib
- src
The JBoss Application Server consists of the following components:
- The jBPM Web Console
- This is packaged as a web archive. Both process participants and jBPM administrators can use this console.
- The jBPM Tables
- These are contained in the default Hypersonic database. (It already contains a process.)
- An Example Process
- One example process is already deployed to the jBPM database.
- Identity Component
- The identity component libraries are part of the Console Web Application. It owns those tables found in the database which have the
JBPM_ID_
prefix.
1.3. The jPDL Graphical Process Designer
The jPDL also includes the Graphical Process Designer Tool. Use it to design business processes. (It is an Eclipse plug-in and is included with the JBoss Developer Studio product.)
It facilitates a smooth transition from business process modeling to practical implementation, making it of use to both the business analyst and the technical developer.
1.4. The jBPM Console Web Application
The Console Web Application serves three purposes. Firstly, it functions as a central user interface, allowing one to interact with those run-time tasks that have been generated by the process executions. Secondly, it is an administrative and monitoring console that allows one to inspect and manipulate run-time instances. The third role of this software is that of business activity monitor. In this role, it presents statistics about the execution of processes. This information is of use to managers seeking to optimize performance as it allows them to find and eliminate bottlenecks.
1.5. The jBPM Core Library
The Business Process Manager has two core components. These are the "plain Java" (J2SE) library, which manages process definitions, and the run-time environment, which executes process instances.
The jBPM, itself, is a Java library. Consequently, it can be used in any Java environment, be it a web or Swing application, an
Enterprise Java Bean
or a web service.
One can also package and expose the jBPM library as a stateless session
Enterprise Java Bean
. Do this if there is a need to create a clustered deployment or provide scalability for extremely high throughput. (The stateless session Enterprise Java Bean
adheres to the J2EE 1.3
specifications, mearning that it can be deployed on any application server.)
Be aware that some parts of the
jbpm-jpdl.jar
file are dependent upon third-party libraries such as Hibernate and Dom4J.
Hibernate provides the jBPM with persistence functionality. Also, apart from providing traditional O/R mapping, Hibernate resolves the differences between the Structured Query Language dialects used by competing databases. This ability makes the jBPM highly portable.
The Business Process Manager's application programming interface can be accessed from any custom Java code in your project, whether it be a web application, an Enterprise Java Bean, a web service component or a message-driven bean.
1.6. The Identity Component
The jBPM can integrate with any company directory that contains user (and other organizational) data. (For those projects for which no organizational information component is available, use the Identity Component. This component has a "richer" model than those used by traditional servlets, Enterprise Java Beans and portlets.)
Note
Read Section 8.11, “ The Identity Component ” to learn more about this topic.
1.7. The JBoss jBPM Job Executor
The JBoss jBPM Job Executor is a component designed for the purpose of monitoring and executing jobs in a standard Java environment. Jobs are used for timers and asynchronous messages. (In an enterprise environment, the Java Message Service and the Enterprise Java Bean
TimerService
might be used for this purpose; the Job Executor is best used in a "standard" environment.)
The Job Executor component is packaged in the core
jbpm-jpdl
library. It can only be deployed in one of the following two scenarios:
- if the
JbpmThreadsServlet
has been configured to start the Job Executor. - if a separate Java Virtual Machine has been started so that the Job Executor thread can be run from within it
1.8. Conclusion
Having read this chapter, you have gained a broad overview of the jBPM and its constituent components.