The JBoss jBPM core component is the plain java (J2SE) library 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.4 specifications so that it is deployable on any application server.
Depending on the functionalities that you use, the library lib/jbpm-jpdl.jar
has some dependencies on other third party libraries such as e.g. hibernate, dom4j
and others. We have done great efforts to require only those dependent libraries that
you actually use. The dependencies are further documented in Chapter 4, 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.