Due to the absence of commonly accepted conceptual and formal foundations for workflow management, and more generally Business Process Management (BPM), a plethora of approaches to process modelling and execution exists both in academia and in industry. The introduction of workflow patterns provided a deep and language independent understanding of modelling issues and requirements encountered in business process specification. They provide a comparative insight into various approaches to process specification and serve as guidance for language and tool development. YAWL (Yet Another Workflow Language) is a novel and formally defined workflow language based on workflow patterns and Petri nets, thus leveraging off both practical and theoretical insights in the field of BPM. This chapter provides an overview of this language and its corresponding open source support environment.
There exists an abundance of approaches to business process modelling and execution. This is partly due to the lack of commonly accepted conceptual and formal foundations. Standardisation efforts over time, while significant in number and level of industry support, have not (fully) succeeded in providing such foundations. In order to provide a deeper insight into constructs used in business process specification and execution, a collection of workflow patterns was introduced (van der Aalst, ter Hofstede, Kiepuszewski & Barros, 2003). Note that the word “patterns” here refers to components within business processes that have generic applicability and are recurrent in form.
The original patterns collection focussed on control-flow specification only and derived from an analysis of a number of commercially available systems and research prototypes. Over time, this pattern collection was revised (Russell, ter Hofstede, van der Aalst & Mulyar, 2006) and extended with patterns for the data perspective (Russell, ter Hofstede, Edmond & van der Aalst, 2005), the resource perspective (Russell, van der Aalst, ter Hofstede & Edmond, 2005), and exception handling (Russell, van der Aalst & ter Hofstede, 2006). The original control-flow patterns have been used for comparing process modelling languages, tool selection and as a basis for language development.
While Petri nets have a number of distinct advantages for the specification of executable processes (van der Aalst, 1996), they lack sufficient support for a number of the originally identified workflow control-flow patterns (van der Aalst & ter Hofstede, 2002). This observation led to the development of YAWL (Yet Another Workflow Language) (van der Aalst & ter Hofstede, 2005), a formally defined language that took Workflow nets (van der Aalst, 1997), which are based on Petri nets, as a starting point and introduced a number of constructs directly supporting those patterns. As such, YAWL provides powerful support for control-flow specification, and over time an open source support environment was developed which also provided support for the specification of data aspects, resource aspects and exception handling.
It is worthwhile noting that when it comes to the derivation of executable process models, two fundamentally different approaches can be observed. In the first approach emphasis is on the specification of intuitive models, easily understood by the various stakeholders, using an informal language. These models are subsequently to be transformed to models captured in an executable language. A typical example of this approach is BPMN (OMG, 2006) combined with BPEL (Jordan & Evdemon, 2007) (mappings from BPMN to BPEL are, for example, described in (Ouyang, Dumas, van der Aalst, ter Hofstede & Mendling, 2008)).
In the second approach, process models are captured in a formal language of which the models are directly executable. YAWL falls in the latter category and in this chapter this language and its support environment are examined in some depth. Firstly, the workflow patterns are elaborated upon and a brief overview of approaches to process specification is presented. Secondly, the specification of the various aspects involved in business process modelling using YAWL is studied. Thirdly, the support environment of YAWL is examined. Fourthly, we present a case study of the application of the YAWL environment in the film and TV domain. Finally, we conclude the paper briefly listing, among others, a number of current research topics in BPM.
Key Terms in this Chapter
Workflow Pattern: 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.
Workflow: A workflow comprises cases, resources, and triggers that relate to a particular process.
Petri Net: A Petri net is the description of a process in terms of places (capturing conditions), transitions (capturing tasks), and arcs (capturing relation between conditions and tasks). The semantics is always formally defined.
Process Automation: Process automation is the application of software applications, tools and infrastructure to manage routine activities in order to free up employees to handle exceptions or perform more creative work.
Process Modelling: Process modelling is the use of information and graphics to represent processes in a consistent way.
Workflow System: A workflow system is one that supports the workflows in a specific business situation. It usually consists of a workflow management system (e.g. a workflow engine) plus process and resource classification definitions, applications, a database system, and so on.
Process Execution: Process execution is to enact a process according to the process definition (e.g. in format of a process model) using certain software or tools (e.g. a process execution engine or a workflow engine).
Workflow Engine: The workflow engine takes care of the actual management of the workflow. Among other things, it is concerned with task-assignment generation, resource allocation, activity performance, case preparation and modification, the launching of applications, and the recording of logistical information.
YAWL: YAWL stands for Yet Another Workflow Language. It is a process modelling and execution language based on the workflow patterns and Petri nets. YAWL is also the name of the corresponding workflow system that implements the YAWL language.
Process: The definition of a process indicates which tasks must be performed and in what order to successfully complete a case. A process consists of tasks, conditions, and sub-processes.