JBoss jBPM is a flexible, extensible workflow management system. JBoss jBPM has an intuitive process language to express business processes graphically in terms of tasks, wait states for asynchronous communication, timers, automated actions,... To bind these operations together, JBoss jBPM has the most powerful and extensible control flow mechanism.
JBoss jBPM has minimal dependencies and can be used as easy as using a java library. But it can also be used in environments where extreme throughput is crucial by deploying it on a J2EE clustered application server.
JBoss jBPM can be configured with any database and it can be deployed on any application server.
The core workflow and BPM functionality is packaged as a simple java library. This library includes a service to store, update and retrieve process information from the jBPM database.
Figure 1.1. Overview of the JBoss jBPM components
The starter kit is a download that contains all the jBPM components bundled in one easy download. The download includes:
- jbpm-server, a preconfigured jboss application server.
- jbpm-designer, the eclipse plugin for authoring jBPM processes graphically.
- jbpm-db, the jBPM database compatibility package (see below).
- jbpm, the core jbpm component including the libs and this userguide.
- jbpm-bpel, a reference to the JBoss jBPM BPEL extension.
The preconfigured JBoss application server has the following components installed :
- The core jBPM component, packaged as a service archive
- An integrated database with the jBPM tables: the default hypersonic database that contains the jBPM tables and already contains a process.
- The jBPM console web application that can be used by process participants as well as jBPM administrators.
- The jBPM scheduler for the execution of timers. The scheduler is configured in the starters kit as a servlet. The servlet will spawn a thread to monitor and execute the timers.
- One example process is already deployed into the jBPM database.
JBoss jBPM also includes a graphical designer tool. The designer is a graphical tool for authoring business processes.
The JBoss jBPM graphical process designer is an eclipse plugin. A standalone installation of the designer tool is on the roadmap.
The most important feature of the graphical designer tool is that it includes support for both the tasks of the business analyst as well as the technical developer. This enables a smooth transition from business process modelling to the practical implementation.
The plugin is available as a local update site (plain zip file) for installation via the standard eclipse software updates mechanism. And there is also a feature package that you can unzip in your eclipse home directory.
The JBoss jBPM core component is the plain java (J2SE) software for managing process definitions and the runtime environment for execution of process instances.
JBoss jBPM is a java library. As a consequence, it can be used in any java environment like e.g. a webapplication, a swing application, an EJB, a webservice,... The jBPM library can also be packaged and exposed as a stateless session EJB. This allows clustered deployment and scalability for extreme high throughput. The stateless session EJB will be written against the J2EE 1.3 specifications so that it is deployable on any application server.
The JBoss jBPM core component is packaged as a simple java library archive. Depending on the functionalities that you use, the library jbpm-3.0.jar has some dependencies on other third party libraries such as e.g. hibernate, dom4j and others. Those dependencies are clearly documented in Chapter 5, Deployment
For its persistence, jBPM uses hibernate internally. Apart from traditional O/R mapping, hibernate also resolves the SQL dialect differences between the different databases, making jBPM portable across all current databases.
The JBoss jBPM API can be accessed from any custom java software in your project, like e.g. your web application, your EJB's, your web service components, your message driven beans or any other java component.
The jBPM console web application serves two purposes. First, it serves as a central user interface for interacting with runtime tasks generated by the process executions. And secondly, it is an administration and monitoring console that allows to inspect and manipulate runtime instances.
JBoss jBPM can integrate with any company directory that contains users and other organisational information. But for projects where no organisational information component is readily available, JBoss jBPM includes this component. The model used in the identity component is richer then the traditional servlet-, ejb- and portlet models.
For more information, see Section 9.9, “The identity component”
The JBoss jBPM scheduler is a component for monitoring and executing timers that are scheduled during process executions.
The timer component software is packaged in the core jbpm library, but it needs to be deployed in one of the following environments: either you have to configure the scheduler servlet to spawn the monitoring thread or you have to start up a separate JVM with the scheduler main.
The JBoss jBPM database compatibility package is a download package that contains all the information, drivers and scripts to get jBPM running on your database of choice.
The JBoss jBPM BPEL extension is a separatly packaged extension that extends jBPM with support for BPEL. The essence of BPEL is an xml scripting language for writing web services in terms of other web services.