JBoss.orgCommunity Documentation
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.
This Guide contains a lot of terminology. Definitions for the key terms can be found in Section 9.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.
The JPDL can be configured for use with any database. It can also be deployed on any application server.
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 in the form of a simple Java library. This library includes a service that manages and executes jPDL database processes.
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:
This is packaged as a web archive. Both process participants and jBPM administrators can use this console.
This is part of the Console Web Application. It is launched by a servlet, then spawns a thread pool, whose job it is to monitor and executes timers and asynchronous messages.
These are contained in the default Hypersonic database. (It already contains a process.)
One example process is already deployed to the jBPM database.
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.
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.
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.
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.
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.)
Read Section 11.11, “ The Identity Component ” to learn more about this topic.
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