Executing BPMN 2.0 workflows in Python
Matt Hampton is currently the products manager at St James Software. Before that he used to do financial software.
BPMN (Business Processing Model and Notation) is a widely used standard for specifying business processes in a graphical notation. Version 2.0 of the specification includes a standardized XML serialization of that notation.
We've recently adapted SpiffWorkflow, an open source Python workflow library, to import BPMN2 specifications and execute them. In our implementation, the workflow runs on individual database records and defines the life cycle of those records.
The advantage of this is that we can use several available graphical tools for defining business processes, and then have those business processes automatically executable inside our applications. This increases the clarity of definition of these processes, makes them explicitly visible to non-developers, and also potentially modifiable by them. It also decouples the business logic flow from the actual code processes that need to happen at various points.
This talk will briefly explain the core BPMN concepts, demonstrated with graphical editing tools, and demonstrate how the SpiffWorkflow implementation works.
- Workflow and the need for clarity rather than ambiguity -- how BPMN achieves this
- BPMN core concepts, demonstrated graphically
- Demonstration of SpiffWorkflow objects executing BPMN diagrams
- Questions time...