A historical comparison of workflow engine solutions in the Zope/Plone community. Required workflow engine features are identified and explained. The presentation ends with a demonstration of the Shoobx Workflow system.
3. Jun 2001
Zope/Plone Workflow Relationship
Feb 2001
Products.CMFCore.WorkflowCore
Dec 2004 May 2006
Infrastructure for workflow development
Core engine capability for Plone created
Products.DCWorkflow
Implementation of a CMF workflow
Filled Out Functionality
zope.wfmc
Workflow Engine based on WfMC XPDL
Attempt to standardize with
development communities
hurry.workflow
Simple Zope 3 workflow engine
Modelled after CMFWorkflow
2013 zope.wfmc is
resurrected!
20132011
4. State-Based
Workflows
Examples: Products.DCWorkflow and
hurry.workflow
State is stored on a target
Transitions between states are defined
Transitions between states are defined
(including permissions, etc.)
State Machine ("Workflow Engine")
- Manages states and transitions
- Manages progression of states
6. State-Based
Workflows:
One process manages single target
Only one state can be maintained at a time
The Reality
Problems
.NET and Java world have adopted this design pattern
Are we
to blame?
7. Activity-Based
Workflows
Examples: zope.wfmc
Business Process Model and Notation
(BPMN) is a graphical representation
XPDL is an XML-based serialization
format for BPMN
Editor: Java Workflow Editor (JaWE)
- Developed by the Workflow Management
Coalition (WfMC)
- BPMN 1.0 did not specify a serialization
format.
- XPDL is obsolete with BPMN 2.0 which
defines an XML serialization format
9. Challenges
Workflow is too high-level to be
machine processable
Engine provides little (trivial) value
Only benefit is graphical presentation
and easy modification
- But publication workflow is too simple for
that to matter.
11. Workflow Engine
Requirements
Security
Machine executable
Full User Interface generation
(and other IO)
- But publication workflow is too simple
for that to matter.
Back and Forth
Discarding with clean up
Exception Handling
Migrations
- Input Data Retention
12. zope.wfmc enhancements
Parameter InitialValue Support
OTHERWISE Condition
Script Tag Support
Arguments are dictionaries, not lists! (Jim!!!)
Deadlines Support
XPDL 2.1 Support
Extended Attributes Support
Participant Types / Candidates Support
Subflow (sync & async) & TaskScript Support
DataField Support
13. Small activity label position
(Start, Finish, Gates)
Lots of small bug fixes
JaWE Enhancements
Script Support
External Editor
Support
14. Discarding
● Requires reversable applications/workitems (operations)
● Process must keep track of finished activities
● Deal with irreversible actions
﹣ Make workflow non-discardable
﹣ May not be reverted on discard
15. Back & Forth
● Requires Revert of activities in correct order
● Restore workflow state properly
● Remember inputs (not fully solved yet)
● It's a very hard problem! (6mm effort)
16. Wizard
● Wizard entries specified via Extended Attribute
● Needs to be generated from workflow definition itself
● No state available
﹣ Relies on default transitions and lane assignments
● Also, a very hard problem. (3mm effort)
17. Simulations
● Automatic Testing of Workflows
﹣ Coverage Included
● Strategy: Provide activity completion
instructions
﹣ Implemented on API and UI level!
● Savepoints
● Debugging
● Screenshots
● Parameterized Simulations allow for complex
sampledata setups (onions)
18. Quality Assurance
● Executes each simulation on multiple
browsers
﹣ Provides PDFs with screenshots for each
browser
● Visualizes workflow paths and coverage
● Shows all output artifacts (documents,
changed data, etc.)
● Linter: External links, spell check, data
integrity, etc.
19. Future
● Shoobx Chronicles (Support/Help)
﹣ Convert onion instructions to readable documents
● Simulation video recordings (Support/Help)
● Support Power Users to create Workflows (Process Editor
UX)
● Personal: Bike across the US :-)