PVM
Documentation
Downloads
Sources
Forum
Wiki
Issue Tracker
jBPM
jPDL
BPEL
GPD
PVM

The Process Virtual Machine

A single technology to support multiple process languages natively and embeddable

The Process Virtual Machine is a simple Java library for building and executing process graphs. This serves as a basis for all kinds of workflow, Business Process Management (BPM) and orchestration process languages.

The Process Virtual Machine is embeddable. Traditional BPM and workflow technologies are offered as monolithic systems to which an integration communication link has to be established. That, together with heavyweight deployment requirements makes the treshold of the traditional technologies often too big. The Process Virtual Machine is build around the concept of embeddable BPM, which means that the BPM engine runs as part of your application in your architecture. In case persistence is required, the database tables will be next to your domain model tables in your database.

So the PVM runs in all Java environments. Be it a standalone swing application, a web application on a servlet container like Tomcat, a spring environment or an enterprise application on an application server like JBoss. All of this with or without relational database persistence.

The Process Virtual Machine is the basis for multiple process languages. Native support for any process language can be build on top of the Process Virtual Machine. The runtime behaviour of each activity in the process graph is delegated to a Java interface. Process languages are a set of activity types. An activity implements the runtime behaviour and corresponds to one activity type. So building a process language on the PVM is as easy as creating a set of activity implementations. Through the same mechanism, languages like jPDL are very easily extensible.