Since 2006
Anton (9) Konrad (6)
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
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
Simple State-Based Publication Workflow
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?
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
Simple Activity-Based Publication Workflow
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.
Realistic Publication Workflow
Demo
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
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
Small activity label position
(Start, Finish, Gates)
Lots of small bug fixes
JaWE Enhancements
Script Support
External Editor
Support
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
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)
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)
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)
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.
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 :-)
Questions?
Comments?
Links
● Shoobx zope.wfmc: https://github.com/Shoobx/zope.wfmc
● Java Workflow Editor: https://sourceforge.net/projects/jawe/
● BPMN: http://www.bpmn.org/
● WfMC/XPDL: http://www.wfmc.org/
Help us Improve
Please use the survey app to send us feedback.
http://ploneconf.sixfeetup.com

Making Workflows Work for You

  • 2.
  • 3.
    Jun 2001 Zope/Plone WorkflowRelationship 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 Stateis 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
  • 5.
  • 6.
    State-Based Workflows: One process managessingle 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 ProcessModel 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
  • 8.
  • 9.
    Challenges Workflow is toohigh-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.
  • 10.
  • 11.
    Workflow Engine Requirements Security Machine executable FullUser 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 InitialValueSupport 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 labelposition (Start, Finish, Gates) Lots of small bug fixes JaWE Enhancements Script Support External Editor Support
  • 14.
    Discarding ● Requires reversableapplications/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 entriesspecified 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 Testingof 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 ● Executeseach 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 :-)
  • 20.
  • 21.
    Links ● Shoobx zope.wfmc:https://github.com/Shoobx/zope.wfmc ● Java Workflow Editor: https://sourceforge.net/projects/jawe/ ● BPMN: http://www.bpmn.org/ ● WfMC/XPDL: http://www.wfmc.org/
  • 22.
    Help us Improve Pleaseuse the survey app to send us feedback. http://ploneconf.sixfeetup.com