Workflow patterns

Workflow patterns

A workflow pattern is a specialized form of a design pattern as defined in the area of software engineering. Workflow patterns refer specifically to recurrent problems and proven solutions related to the development of workflow applications in particular, and more broadly, "process-oriented applications".

Categories

van der Aalst et al. 2003

A well-known collection of Workflow Patterns are those proposed by Wil van der Aalst, Arthur ter Hofstede, Bartek Kiepuszewski and Alistair Barros in their seminal paper "Workflow Patterns" published in 2003 (with earlier versions published in 2000-2002). This collection of patterns focuses on one specific aspect of process-oriented application development, namely the description of control flow dependencies between activities in a workflow/process. These patterns are divided into the following categories:

Basic Control Patterns

* Sequence - execute two or more activities in sequence
* Parallel Split - execute two or more activities in any order or in parallel
* Synchronization - synchronize two or more activities that may execute in any order or in parallel; do not proceed with the execution of the following activities until all these preceding activities have completed; also known as barrier synchronisation.
* Exclusive Choice - choose one execution path from many alternatives based on data that is available when the execution of the process reaches the exclusive choice
* Simple Merge - wait for one among a set of activities completes before proceeding; it is assumed that only one of these activities will be executed; typically, these activities are on different paths stemming from an exclusive choice or a deferred choice (see below);

Advanced Branching and Synchronization Patterns

* Multiple Choice - choose several execution paths from many alternatives
* Synchronizing Merge - merge many execution paths; synchronize if many paths are taken; do the same as for a simple merge if only one execution path is taken
* Multiple Merge - wait for one among a set of activities to complete before proceeding; if several of the activities being waited for are executed, the simple merge fires each time that one of them completes.
* Discriminator - wait for one among a set of activities to complete before proceeding; if several of the activities being waited for are executed, the discriminator only fires once.
* N-out-of-M Join - same as the discriminator but it is now possible to wait until more than one of the preceding activities completes before proceeding by setting a parameter N to some natural number greater than one.

tructural Patterns

* Arbitrary Cycles - do not impose any structural restrictions on the types of loops that can exist in the process model.
* Implicit Termination - terminate an instance of the process if there is nothing else to be done

Multiple Instances (MI)

* MI without synchronization - generate many instances of one activity without synchronizing them afterwards
* MI with a priori known design time knowledge - generate many instances of one activity when the number of instances is known at the design time (with synchronization)
* MI with a priori known runtime knowledge - generate many instances of one activity when a number of instances can be determined at some point during the runtime (as in FOR loop but in parallel)
* MI with no a priori runtime knowledge - generate many instances of one activity when a number of instances cannot be determined (as in WHILE loop but in parallel)

tate-based patterns

* Deferred Choice - execute one of a number of alternatives threads. The choice which thread is to be executed is not based on data that is available at the moment the execution reaches the deferred choice, but is rather determined by an event (e.g. an application user selecting a task from the worklist, or a message being received by the process execution engine).
* Interleaved Parallel Routing - execute a number of activities in any order (e.g. based on availability of resources), but do not execute any of these activities at the same time/simultaneously.
* Milestone - allow a certain activity at any time before the milestone is reached, after which the activity can no longer be executed.

Cancellation Patterns

* Cancel Activity - stop the execution of an enabled activity
* Cancel Case - stop the execution of a running process

The above workflow patterns have been used to evaluate the functionality of commercial products supporting the development of process-oriented applications. They have also been used to evaluate a number of proposed standards, including BPEL, BPMN, UML Activity diagram, XPDL, etc. It has been noted that not all these patterns are relevant in all application domains, so care must be taken when using the above workflow patterns to select a particular language or system for a given application.

The workflow patterns have also been used as initial requirements in the the design of a workflow language and open-source system called YAWL.

Several extensions to the above set of workflow patterns have been proposed. In particular, the same research groups that developed these patterns, have also proposed a set of "Workflow Data Patterns", "Workflow Resource Patterns", "Workflow Exception Handling Patterns", and "Service Interaction Patterns".

Another classification

Another classification of workflow patterns is the following:

;Independent/Pooled: where each component of the work is completed independent of each other component and no component has a specific dependency on any other component. An example would be where staff are serving at a counter - Raoul can serve a customer in his queue without waiting for Jamie to serve a customer in his queue.;Sequential: where each component of the work is dependent on the preceding component. In this case the preceding component controls the advancement of the workflow through subsequent components. An example would be on a production line - Betty cannot affix the radiator cap to the Model T Ford until Veronica has put the radiator in place.;Interdependent/Networked: where each component of the work is dependent on one or a number of other components being completed. In this case the preceding components control the workflow through subsequent components. An example would be a project team - Sarah must wait for several tasks to be completed by Kevin and George before she can execute her task.

References

*cite journal
first = Wil M.P.
last = van Der Aalst
coauthors = Hofstede, Arthur H.M.; Kiepuszewski, Bartek; Barros, Alistair P.
title = Workflow Patterns
journal = Distributed and Parallel Databases
volume = 14
number = 1
pages = 5--51
year = 2003
doi = 10.1023/A:1022883727209

*cite book
first = Marlon
last = Dumas
coauthors = van der Aalst, Wil; ter Hofstede, Arthur H.M. (editors)
year = 2005
title = Process-Aware Information Systems
publisher = John Wiley and Sons
id = ISBN 0-471-66306-9

External links

* [http://www.workflowpatterns.com Workflow Patterns]
* [http://www.bpm.fit.qut.edu.au/projects/babel/dp/ Workflow Data Patterns]
* [http://www.bpm.fit.qut.edu.au/projects/babel/rp/ Workflow Resource Patterns]
* [http://www.bpmcenter.org/reports/2006/BPM-06-04.pdf Workflow Exception Handling Patterns]
* [http://www.serviceinteraction.com Service Interaction Patterns]
* [http://is.tm.tue.nl/staff/wvdaalst/publications/p108.pdf Workflow Patterns, W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, and A.P. Barros]

* [ftp://ftp.informatik.uni-stuttgart.de/pub/library/medoc.ustuttgart_fi/STUD-2052/STUD-2052.pdf Evaluation of IBM´s WebSphere Integration Developer based on Workflow Patterns]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Workflow — A workflow is a depiction of a sequence of operations, declared as work of a person, work of a simple or complex mechanism, work of a group of persons, [See e.g., ISO 12052:2006, [http://www.iso.org] ] work of an organization of staff, or… …   Wikipedia

  • Workflow — Un workflow (anglicisme) est la représentation d une suite de tâches ou opérations effectuées par une personne, un groupe de personnes, un organisme, etc. Le terme flow renvoie au passage du produit, du document, de l information, etc., d une… …   Wikipédia en Français

  • Processus de workflow — Workflow Un workflow (anglicisme) est un flux d informations au sein d une organisation, comme la transmission automatique de documents entre des personnes. Le terme officiellement recommandé par la Commission générale de terminologie et de… …   Wikipédia en Français

  • Gestion des flux d'informations — Workflow Un workflow (anglicisme) est un flux d informations au sein d une organisation, comme la transmission automatique de documents entre des personnes. Le terme officiellement recommandé par la Commission générale de terminologie et de… …   Wikipédia en Français

  • Workflows — Workflow Un workflow (anglicisme) est un flux d informations au sein d une organisation, comme la transmission automatique de documents entre des personnes. Le terme officiellement recommandé par la Commission générale de terminologie et de… …   Wikipédia en Français

  • YAWL — (Yet Another Workflow Language) is a workflow language based on the Workflow patterns. The language is supported by a software system that includes an execution engine, a graphical editor and a worklist handler. The system is available as an Open …   Wikipedia

  • XPDL — The XML Process Definition Language (XPDL) is a format standardized by the Workflow Management Coalition (WfMC) to interchange Business Process definitions between different workflow products like business process modeling tools and business… …   Wikipedia

  • Yawl (Informatik) — Yawl ist die Bezeichnung einer Prozessmodellierungssprache und gleichzeitig ein Akronym mit der Bedeutung Yet Another Workflow Language. Teile des Yawl Software Framework wurden unter der Apache Software License und der GNU Lesser General Public… …   Deutsch Wikipedia

  • Business Process Modeling Notation — The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is now being maintained by the Object… …   Wikipedia

  • Picture archiving and communication system — An image as stored on a picture archiving and communication system (PACS) The same image following contrast adjustment, sha …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”