making workflows work for you

22

Upload: stephan-richter

Post on 26-Jan-2017

231 views

Category:

Software


1 download

TRANSCRIPT

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 weto 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.

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