There are many different types of workflow and BPM. Where all other solutions focus on one particular language, jBPM supports multiple process languages. Furthermore, we realize that Java application development is done in a lot of different environments like e.g. standard and enterprise. All of the jBPM sub projects easily work in the environment and with the database of your choice.
jPDL is jBPM's preferred process language. While directly executable, it provides excellent modelling capabilities. It leverages the PVM and the Identity, Task Management and Enterprise components and thus provides excellent support in these areas. Graphical creation of jPDL process definitions is supported by the GPD.
BPEL is the popular standard for service orchestration. jBPM provides an implementation for this standard. Use this process language if you want to write scripts that create web services as a function of other web services.
The Graphical Process Designer (GPD) is a set of Eclipse plug-ins build on top of the Eclipse WTP and GEF frameworks. The purposes of the GPD are multiple. First of all it supports graphical creation and editing jPDL process definitions and Seam pageflows. Another purpose is to also enable extenders to build and include custom nodes and even build support for entire new graph-based languages.
The Process Virtual Machine
The common parts like graph execution and state management are extracted in the Process Virtual Machine (PVM). The process languages extend the PVM so that they can run natively on one single technology. The PVM is a simple Java library for building and executing graphs. Process languages are a set of activity types that are build using the features that are provided by the PVM.
While not available as a separate subproject, pageflow is an important process language that is supported by jBPM. Seam offers the possibility to use jBPM Pageflow as the navigation mechanism between web pages. Creating these pageflows graphically is supported by the GPD.
Management of users, groups and permissions is commonly known as identity management. jBPM currently includes an optional identity component that can be easily replaced by a company's own identity data store. This component will be separated out in its own subproject soon.
Tasks and the management of tasks is an important part of most process languages. The task management component will be separated out and live in its own subproject in the future. It will be leveraged by different process languages such as jPDL and XPDL.
The upcoming enterprise component will contain enterprise beans that can be used in an application server like e.g. JBoss AS. These components will also live in their own subproject.