YAWL ( Yet Another Workflow Language ) ist eine auf Workflow-Mustern basierende Workflow- Sprache. Sie wird von einem Softwaresystem unterstützt, das eine Ausführungs-Engine, einen grafischen Editor und einen Worklist-Handler umfasst. YAWL ist als Open-Source-Software unter der LGPL- Lizenz verfügbar .
Zu den produktiven Implementierungen von YAWL gehören der Einsatz bei first:utility und first:telecom in Großbritannien zur Automatisierung von Frontend-Serviceprozessen sowie bei der australischen Film-, Fernseh- und Radioschule zur Koordination von Filmdrehprozessen. Es wurde außerdem an über 20 Universitäten für Lehrzwecke verwendet. [ 1 ]
Merkmale
- Umfassende Unterstützung für die Workflow-Muster.
- Unterstützung für fortgeschrittene Ressourcenzuweisungsrichtlinien , einschließlich des Vier-Augen-Prinzips und der verketteten Ausführung.
- Unterstützung der dynamischen Anpassung von Workflow-Modellen durch das Konzept der Worklets .
- Ausgefeilte Validierungsfunktionen für Workflow-Modelle (z. B. Deadlock- Erkennung zur Entwurfszeit).
- XML-basiertes Modell zur Datendefinition und -manipulation basierend auf XML Schema , XPath und XQuery .
- XML-basierte Schnittstellen zur Überwachung und Steuerung von Workflow-Instanzen sowie zum Zugriff auf Ausführungsprotokolle.
- XML-basierte Plug-in-Schnittstellen zur Anbindung von Webdiensten Dritter an das System, einschließlich Worklist-/Task-Handlern von Drittanbietern.
- Automatisierte Formulargenerierung aus XML-Schema.
Geschichte
Die Sprache und das zugehörige System wurden ursprünglich von Forschern der Technischen Universität Eindhoven und der Technischen Universität Queensland entwickelt . In der Folge haben mehrere Organisationen wie die InterContinental Hotels Group , first:telecom und ATOS Worldline [ 2 ] zu dieser Initiative beigetragen.
Die ursprüngliche Motivation hinter YAWL war die Definition einer Workflow-Sprache, die alle (oder die meisten) Workflow-Muster unterstützt und über eine formale Semantik verfügt. Da Petri-Netze die meisten Workflow-Muster bereits gut abdeckten, entschieden sich die Entwickler von YAWL, Petri-Netze als Ausgangspunkt zu nehmen und diesen Formalismus um drei Hauptkonstrukte zu erweitern: Oder-Verknüpfung, Abbruchmengen und Aktivitäten mit mehreren Instanzen. Diese drei Konzepte zielen darauf ab, fünf Workflow-Muster zu unterstützen, die von Petri-Netzen nicht direkt abgedeckt wurden: Synchronisierungs-Merge , Diskriminator , N-aus-M-Verknüpfung , Aktivitäten mit mehreren Instanzen ohne Laufzeitvorwissen und Abbruchfall .
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
YAWL is sometimes seen as an alternative to BPEL. 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 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
- Business process management
- Cameleon (programming language)
- Dataflow
- Petri net
- Programming language
- Visual programming
References
- ^yawl-system.com
- ^"ATOS Worldline". Archived from the original on 2007-01-16. Retrieved 2006-07-06.