jBPM is based on a simple principle called 'Graph Oriented Programming.' The basic ideas behind jBPM were coded in less than 120 lines, in the following classes:the user's guide, 'Graph Oriented Programming'. The sources are also linked from the documentation.
On top of this new model, we already have support for three languages:
- jPDL: a language with clean Java integration and superb task management features.
- BPEL: (alpha stage) a service orchestration language based on WSDL and XML.
- Pageflow: In JBoss SEAM, we have a simple graph based approach (with Eclipse plugin support) for defining pageflows.
- Asynchronous continuations (see user's guide, in 'Asynchronous continuations')
- Configuration framework (see user's guide, in 'Configuration')
- Task instance variables (see user's guide, 'Task Management' section 'Task controllers')
- Externalized the hibernate queries: (see user's guide, 'Customizing queries')
- Added support for JSF-like expressions in actions and assignments: (see user's guide, 'Expressions').
- TaskInstanceFactory replaced the task instance class configuration (see user's guide, 'Task Management' section 'Customizing task instances')