YAWL

This article is about the workflow system. For the sailing craft, see Yawl.

YAWL (Yet Another Workflow Language) is a workflow language based on workflow patterns. It is supported by a software system that includes an execution engine, a graphical editor and a worklist handler. It is available as open-source software under the LGPL license.

Production-level implementations of YAWL include deployment by first:utility and first:telecom in the UK to automate frontend service processes, and by the Australian film television and radio school to coordinate film shooting processes. It has also been used for teaching in more than 20 universities.[1]

## Features[edit]

* Comprehensive support for the workflow patterns.
* Support for advanced resource allocation policies, including four-eyes principle and chained execution.
* Support for dynamic adaptation of workflow models through the notion of worklets.
* Sophisticated workflow model validation features (e.g. deadlock detection at design-time).
* XML-based model for data definition and manipulation based on XML Schema, XPath and XQuery.
* XML-based interfaces for monitoring and controlling workflow instances and for accessing execution logs.
* XML-based plug-in interfaces for connecting third-party web services with the system, including third-party worklist/task handlers.
* Automated form generation from XML schema.

## History[edit]

The language and its supporting system were originally developed by researchers at Eindhoven University of Technology and Queensland University of Technology. Subsequently, several organizations such as InterContinental Hotels Group, first:telecom and ATOS Worldline[2] have contributed to the initiative.

The original drivers behind YAWL were to define a workflow language that would support all (or most) of the workflow patterns and that would have a formal semantics. Observing that Petri nets came close to supporting most of the workflow patterns, the designers of YAWL decided to take Petri nets as a starting point and to extend this formalism with three main constructs, namely or-join, cancellation sets, and multi-instance activities. These three concepts are aimed at supporting five of the workflow patterns that were not directly supported in Petri nets, namely synchronizing merge, discriminator, N-out-of-M join, multiple instance with no a priori runtime knowledge and cancel case.

In addition, YAWL adds some syntactical elements to Petri nets in order to intuitively capture other workflow patterns such as simple choice (xor-split), simple merge (xor-join), and multiple choice (or-split). During the design of the language, it turned out that some of the extensions that were added to Petri nets were difficult or even impossible to re-encode back into plain Petri nets. As a result, the original formal semantics of YAWL are defined as a labelled transition system and not in terms of Petri nets. The fact that YAWL is based on formal semantics has enabled the implementation of several techniques for analyzing YAWL processes. In particular, the YAWL system includes a static analysis tool called WofYAWL.

## YAWL vs. BPEL[edit]

YAWL is sometimes seen as an alternative to BPEL[by whom?]. A major advantage of BPEL is that it is driven by a standardization committee supported by several IT industry players. As a result, BPEL is supported by a significant number of tools (both proprietary and open-source) while YAWL has a single implementation at present. Also, several researchers have captured the formal semantics of subsets of BPEL in terms of various formalisms, including Petri nets, process algebra and finite state machine. This has paved the way for the development of static analysis tools for BPEL that can compete with the static analysis capabilities provided by the YAWL system.

On the other hand, it has been noted[by whom?] that standard BPEL fails to support human tasks, that is, tasks that are allocated to human actors and that require these actors to complete actions, possibly involving a physical performance. A number of BPEL engines already provide extensions to BPEL for human tasks, but these extensions are yet to be standardized. In contrast, YAWL provides a unified interface for worklist services based on web services standards. This interface allows developers to build their own worklist service to support human tasks according to their needs. In addition, the YAWL system comes with a default worklist service that supports several types of human task allocation and handling. Another advantage of YAWL is its support for workflow patterns, although the gap between YAWL and BPEL in this respect may be reduced by new constructs that are included in BPEL version 2.0.

## See also[edit]

* Computer programming portal

* Business process management
* Cameleon (programming language)
* Dataflow
* Petri net
* Programming language
* Visual programming

## References[edit]

1. ^ yawl-system.com
2. ^ ATOS Worldline

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "YAWL" – news · newspapers · books · scholar · JSTOR (October 2009) (Learn how and when to remove this template message)

|

## External links[edit]

* Official website

* v
* t
* e

Computer science

Note: This template roughly follows the 2012 ACM Computing Classification System.

Hardware|

* Printed circuit board
* Peripheral
* Integrated circuit
* Very Large Scale Integration
* Systems on Chip (SoCs)
* Energy consumption (Green computing)
* Electronic design automation
* Hardware acceleration

Computer systems organization|

* Computer architecture
* Embedded system
* Real-time computing
* Dependability

Networks|

* Network architecture
* Network protocol
* Network components
* Network scheduler
* Network performance evaluation
* Network service

Software organization|

* Interpreter
* Middleware
* Virtual machine
* Operating system
* Software quality

Software notations and tools|

* Programming paradigm
* Programming language
* Compiler
* Domain-specific language
* Modeling language
* Software framework
* Integrated development environment
* Software configuration management
* Software library
* Software repository

Software development|

* Control variable
* Software development process
* Requirements analysis
* Software design
* Software construction
* Software deployment
* Software engineering
* Software maintenance
* Programming team
* Open-source model

Theory of computation|

* Model of computation
* Formal language
* Automata theory
* Computability theory
* Computational complexity theory
* Logic
* Semantics

Algorithms|

* Algorithm design
* Analysis of algorithms
* Algorithmic efficiency
* Randomized algorithm
* Computational geometry

Mathematics of computing|

* Discrete mathematics
* Probability
* Statistics
* Mathematical software
* Information theory
* Mathematical analysis
* Numerical analysis
* Theoretical computer science

Information systems|

* Database management system
* Information storage systems
* Enterprise information system
* Social information systems
* Geographic information system
* Decision support system
* Process control system
* Multimedia information system
* Data mining
* Digital library
* Computing platform
* Digital marketing
* World Wide Web
* Information retrieval

Security|

* Cryptography
* Formal methods
* Security hacker
* Security services
* Intrusion detection system
* Hardware security
* Network security
* Information security
* Application security

Human–computer interaction|

* Interaction design
* Social computing
* Ubiquitous computing
* Visualization
* Accessibility

Concurrency|

* Concurrent computing
* Parallel computing
* Distributed computing
* Multithreading
* Multiprocessing

Artificial intelligence|

* Natural language processing
* Knowledge representation and reasoning
* Computer vision
* Automated planning and scheduling
* Search methodology
* Control method
* Philosophy of artificial intelligence
* Distributed artificial intelligence

Machine learning|

* Supervised learning
* Unsupervised learning
* Reinforcement learning
* Multi-task learning
* Cross-validation

Graphics|

* Animation
* Rendering
* Photograph manipulation
* Graphics processing unit
* Mixed reality
* Virtual reality
* Image compression
* Solid modeling

Applied computing|

* Quantum Computing
* E-commerce
* Enterprise software
* Computational mathematics
* Computational physics
* Computational chemistry
* Computational biology
* Computational social science
* Computational engineering
* Differentiable computing
* Computational healthcare
* Digital art
* Electronic publishing
* Cyberwarfare
* Electronic voting
* Video games
* Word processing
* Operations research
* Educational technology
* Document management

* Category
* Outline
* WikiProject
* Commons

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template