HOME

TheInfoList



OR:

A workflow pattern is a specialized form of
design pattern A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering. The " Gang of Four" b ...
as defined in the area of
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
or
business process engineering Business process re-engineering (BPR) is a business management strategy originally pioneered in the early 1990s, focusing on the analysis and design of workflows and business processes within an organization. BPR aims to help organizations fun ...
. Workflow patterns refer specifically to recurrent problems and proven solutions related to the development of
workflow A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence ...
applications in particular, and more broadly, ''process-oriented applications''.


Concept

Workflow patterns are concepts of economised development. Their usage should follow strategies of simplifying maintenance and reducing modelling work. Workflow is performed in real time. The mechanisms of control must support the typical pace of work. Design patterns must delay execution of workflow.


Aggregation

Workflow patterns may usually be aggregated as chains and the conditions for starting and terminating must be explicitly defined.


Application

Workflow patterns can be applied in various context, hence the conditions for use must be explicitly defined and shown in order to prevent misinterpretation.


Van der Aalst classification

A well-known collection of workflow patterns is that proposed by Wil van der Aalst et al. (2003) in their paper ''Workflow Patterns''. with earlier versions published in 2000–02. This collection of patterns focuses on one specific aspect of process-oriented application development, namely the description of
control flow In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an '' ...
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 * Synchronize - synchronize two or more activities that may execute in any order or in parallel; do not proceed with the execution of subsequent activities until all preceding activities have completed; also known as barrier synchronization. * 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 to complete 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) * Terminate - terminate execution of activities upon defined event or status change


Advanced Branching and Synchronization Patterns

* Multiple Choice - choose several execution paths from many alternatives * Conditional Choice - choose one execution path from many alternatives according to discriminated status conditions * 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 of 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 In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called '' cardinal ...
greater than one.


Structural Patterns

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


Multiple Instances (MI)

* MI without synchronizing - generate many instances of one activity without synchronizing them afterwards * MI with a prior 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 prior 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 without a prior runtime knowledge - generate many instances of one activity when a number of instances cannot be determined (as in WHILE loop but in parallel)


State-based patterns

* Deferred Choice - execute one of a number of alternative threads. The choice which thread is to be executed is not based on data that is available at the moment when the execution has reached 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 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 * Cancel Wait - continue execution of a running process without prior completion event 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 The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL (Business Process Execution Language), is an OASIS standard executable language for specifying actions within business processes with web services. Process ...
,
BPMN Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. Originally developed by the Business Process Management Initiative (BPMI), BPMN has been maintained by the ...
,
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
Activity diagram Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
,
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, i.e. between different modeling tools and management su ...
, 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 design of a workflow language and open-source system called
YAWL A yawl is a type of boat. The term has several meanings. It can apply to the rig (or sailplan), to the hull type or to the use which the vessel is put. As a rig, a yawl is a two masted, fore and aft rigged sailing vessel with the mizzen mast p ...
(Yet Another Workflow Language). 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 scheduled 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 scheduled 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 scheduled 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.


Other perspectives

The workflow patterns are not limited to control-flow. Other (workflow) pattern collections include: * resource patterns, * data patterns, * exception patterns, * service interaction patterns. * parallelism and pipelining patterns. These patterns collections have been used to evaluate a variety of workflow processes, both commercial (Websphere, Oracle BPEL, Staffware, SAP workflow, Windows Workflow Foundation, etc.) and open source.


Workflow systems implementing patterns


Tavaxy
is a cloud-based workflow system that implements a pattern-based approach for enabling interoperability between Galaxy and Taverna, two workflow engines popular in the bioinformatics domain, *
YAWL A yawl is a type of boat. The term has several meanings. It can apply to the rig (or sailplan), to the hull type or to the use which the vessel is put. As a rig, a yawl is a two masted, fore and aft rigged sailing vessel with the mizzen mast p ...
, Yet Another Workflow Language, *
Cameleon (programming language) Cameleon is a free and open source graphical language for functional programming, released under an MIT License. Cameleon language is a graphical data flow language following a two-scale paradigm. It allows an easy up-scale, that is, the integr ...
, Workflow based graphical language for functional programming.


References


Further reading

* Marlon Dumas, Wil van der Aalst and
Arthur H.M. ter Hofstede Arthur Harry Maria ter Hofstede (born 1966) is a Dutch computer scientist, and professor of information systems at the Queensland University of Technology in Australia, and professor at the Eindhoven University of Technology, known for his work ...
ed. (2005). ''Process-Aware Information Systems''. John Wiley and Sons. {{ISBN, 0-471-66306-9. * Volker Kramberg (2006) tp://ftp.informatik.uni-stuttgart.de/pub/library/medoc.ustuttgart_fi/STUD-2052/STUD-2052.pdf Pattern-based Evaluation of IBM WebSphere BPEL Evaluation of IBM's WebSphere Integration Developer based on Workflow Patterns.


External links


Workflow Patterns

BPMN 2 examples
of original 20 workflow patterns Software design patterns Workflow technology