Workflow pattern: Difference between revisions

Content deleted Content added
m + Link(s)
GreenC bot (talk | contribs)
Reformat 1 archive link. Wayback Medic 2.5 per WP:URLREQ#citeftp
 
(36 intermediate revisions by 23 users not shown)
Line 1:
A '''workflow pattern''' is a specialized form of a [[design pattern]] as defined in the area of [[software engineering]] or [[business process engineering]] respectively. 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''.
 
== Concept ==
Workflow patterns followare concepts of economised development. TheTheir usage shallshould follow strategies of simplifying maintenance as well asand reducing modelingmodelling work.
 
Workflow is performed in real time. The mechanisms of control shallmust support the typical pace of work. Design patterns shall notmust delay execution of workflow.
Workflow patterns follow concepts of economised development. The usage shall follow strategies of simplifying maintenance as well as reducing modeling work.
 
Workflow is performed in real time. The mechanisms of control shall support the typical pace of work. Design patterns shall not delay execution of workflow.
 
=== Aggregation ===
Workflow patterns may usually may be aggregated toas chains, hence the connectors for such patterns shall suffice reasonable set standards as well asand the conditions for startstarting and terminateterminating shallmust be explicitly defined.
 
Workflow patterns usually may be aggregated to chains, hence the connectors for such patterns shall suffice reasonable set standards as well as the conditions for start and terminate shall be explicitly defined.
 
=== Application ===
Workflow patterns usuallycan getbe applied in various context, hence the conditions for use shallmust be explicitly defined and shown in exampleorder to prevent from misinterpretingmisinterpretation.
 
== Van der Aalst classification <ref>{{cite web|url=http://www.workflowpatterns.com |title=Workflow Patterns Home Page |publisher=Workflowpatterns.com |date= |accessdate=2021-11-26}}</ref> ==
Workflow patterns usually get applied in various context, hence the conditions for use shall be explicitly defined and shown in example to prevent from misinterpreting.
 
== Van der Aalst classification ==
 
A well-known collection of Workflowworkflow Patternspatterns areis thosethat proposed by [[Wil van der Aalst]] et al. (2003) in their seminal paper ''Workflow Patterns''.<ref>[[Wil van Der Aalst]], [[Arthur H.M. Hofstede]], Bartek Kiepuszewski, and Alistair P. Barros (2003). [httphttps://wwwpure.headlessbricktue.orgnl/mediawiki2ws/imagesportalfiles/4portal/482053121/WorkflowPatterns-van_der-Aalst-2003613310.pdf "Workflow Patterns"]. In: ''Distributed and Parallel Databases'' 14 (1): pp. 5--51. {{doi|10.1023/A:1022883727209}}.</ref> with earlier versions published in 2000-022000–02. 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 ===
Line 23 ⟶ 19:
* 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 the followingsubsequent activities until all these 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
Line 34 ⟶ 30:
* 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 amongof 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.
 
Line 52 ⟶ 48:
 
* 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 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.
 
Line 63 ⟶ 59:
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]], [[Unified Modeling Language|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 design of a workflow language and open-source system called [[YAWL]] (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.
Line 71 ⟶ 67:
Another classification of workflow patterns is the following:
 
;Independent/Pooled: where each [[workflow component|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 [[workflow component|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 [[workflow component|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.<ref>N. Russell, A.H.M. ter Hofstede, W.M.P. van der Aalst, and N. Mulyar. ''Workflow Control-Flow Patterns: A Revised View.'' BPM Center Report BPM-06-22 , BPMcenter.org, 2006.</ref>
Other (workflow) pattern collections include:
* resource patterns,<ref>N. Russell, [[Wil van der Aalst|W.M.P.van der Aalst]], A.H.M. ter Hofstede, and D. Edmond. "Workflow Resource Patterns: Identification, Representation and Tool Support". In O. Pastor and J. Falcao e Cunha, editors, ''Proceedings of the 17th Conference on Advanced Information Systems Engineering (CAiSE'05), volume 3520 of [[Lecture Notes in Computer Science]]'', pages 216-232. Springer-Verlag, Berlin, 2005.</ref>
* data patterns,<ref>N. Russell, A.H.M. ter Hofstede, D. Edmond, and [[Wil van der Aalst|W.M.P.van der Aalst]]. "Workflow Data Patterns: Identification, Representation and Tool Support". In L. Delcambre, C. Kop, H.C. Mayr, [[John Mylopoulos|J. Mylopoulos]], and O. Pastor, editors, ''24th International Conference on Conceptual Modeling (ER 2005), volume 3716 of Lecture Notes in Computer Science'', pages 353-368. Springer-Verlag, Berlin, 2005.</ref><ref>N. Trcka, [[Wil van der Aalst|W.M.P.van der Aalst]], and N. Sidorova. "Data-Flow Anti-Patterns: Discovering Data-Flow Errors in Workflows". In P. van Eck, J. Gordijn, , and R. Wieringa, editors, ''Advanced Information Systems Engineering, Proceedings of the 21st International Conference on Advanced Information Systems Engineering (CAiSE'09), volume 5565 of Lecture Notes in Computer Science'', pages 425-439. Springer-Verlag, Berlin, 2009.</ref>
* exception patterns,<ref>N. Russell, [[Wil van der Aalst|W.M.P.van der Aalst]], and A.H.M. ter Hofstede. "Workflow Exception Patterns". In E. Dubois and K. Pohl, editors, ''Proceedings of the 18th International Conference on Advanced Information Systems Engineering (CAiSE'06), volume 4001 of Lecture Notes in Computer Science'', pages 288-302. Springer-Verlag, Berlin, 2006.
</ref>
Line 85 ⟶ 81:
* parallelism and pipelining patterns.<ref>C. Pautasso, G. Alonso. [http://www.jopera.org/node/7 "Parallel Computing Patterns for Grid Workflows"], In Proc. of the HPDC2006 Workshop on Workflows in Support of Large-Scale Science (WORKS06), Paris, France, June 2006.</ref>
 
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.<ref>P. Wohed, N.C. Russell, A.H.M. ter Hofstede, B. Andersson, and [[Wil van der Aalst|W.M.P.van der Aalst]]. "Patterns-based Evaluation of Open Source BPM Systems: The Cases of jBPM, [[OpenWFE]], and Enhydra Shark". In: ''Information and Software Technology'', 51(8):1187-1216, 2009.</ref>
 
==Workflow systems implementing patterns ==
[http://www.tavaxy.org *Tavaxy] <ref>{{citeCite journal doi| last1 = Abouelhoda | first1 = M. | last2 = Issa | first2 = S. | last3 = Ghanem | first3 = M. | title = Tavaxy: Integrating Taverna and Galaxy workflows with cloud computing support | doi = 10.1186/1471-2105-13-77 | journal = BMC Bioinformatics | volume = 13 | page = 77 | year = 2012 | pmid = 22559942| pmc =3583125 | doi-access = free }}</ref> is a cloud-based workflow system that implements that usesa pattern-based approach for enabling interoperability between Galaxy and Taverna, two workflow engines popular in the bioinformatics ___domain,<ref>{{Cite book | last1 = Abouelhoda | first1 = M. | last2 = Alaa | first2 = S. | last3 = Ghanem | first3 = M. | doi = 10.1145/1833398.1833400 | chapter = Meta-workflows | title = Proceedings of the 1st International Workshop on Workflow Approaches to New Data-centric Science - Wands '10 | page = 1 | year = 2010 | isbn = 9781450301886 | s2cid = 17343728 }}</ref>
*[[YAWL]], Yet Another Workflow Language,
.<ref>{{cite doi|10.1145/1833398.1833400}}</ref>
*[[Cameleon (programming language)]], Workflow based graphical language for functional programming.
 
== References ==
Line 96 ⟶ 93:
 
== Further reading ==
* [[Marlon Dumas]], [[Wil van der Aalst]] and [[Arthur H.M. ter Hofstede]] ed. (2005). ''Process-Aware Information Systems''. John Wiley and Sons. {{ISBN |0-471-66306-9}}.
* Volker Kramberg (2006) [ftp://ftp.informatik.uni-stuttgart.de/pub/library/medoc.ustuttgart_fi/STUD-2052/STUD-2052.pdf Pattern-based Evaluation of IBM WebSphere BPEL]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}: Evaluation of IBM's WebSphere Integration Developer based on Workflow Patterns.
 
== External links ==
Line 104 ⟶ 101:
 
[[Category:Software design patterns]]
[[Category:Workflow technology]]