YAWL(Yet Another Workflow Language)は、ワークフローパターンに基づいたワークフロー言語です。実行エンジン、グラフィカルエディタ、ワークリストハンドラを含むソフトウェアシステムによってサポートされています。LGPLライセンスの下、オープンソースソフトウェアとして利用可能です。
YAWLの実用レベルでの実装例としては、英国のfirst:utilityとfirst:telecomによるフロントエンドサービスプロセスの自動化、オーストラリアの映画テレビラジオ学校による映画撮影プロセスの調整などが挙げられます。また、20以上の大学で教育にも使用されています。[ 1 ]
この言語とそのサポートシステムは、もともとアイントホーフェン工科大学とクイーンズランド工科大学の研究者によって開発されました。その後、インターコンチネンタルホテルズグループ、first:telecom、ATOS Worldline [ 2 ]などのいくつかの組織がこのイニシアチブに貢献しました。
YAWL の当初の目的は、すべての (またはほとんどの) ワークフロー パターンをサポートし、形式的な意味論を持つワークフロー言語を定義することでした。ペトリネットがワークフロー パターンのほとんどをサポートしていることに着目し、YAWL の設計者はペトリネットを起点として、or-join、キャンセル セット、マルチ インスタンス アクティビティという 3 つの主要な構成要素でこの形式を拡張することにしました。これらの 3 つの概念は、ペトリネットでは直接サポートされていなかった 5 つのワークフロー パターン、すなわち同期マージ、ディスクリミネータ、N-out-of-M ジョイン、事前実行時知識のないマルチインスタンス、キャンセル ケースをサポートすることを目的としています。
さらに、YAWLはペトリネットにいくつかの構文要素を追加することで、単純な選択(xor-split)、単純なマージ(xor-join)、複数の選択(or-split)といった他のワークフローパターンを直感的に捉えられるようにしています。言語の設計段階で、ペトリネットに追加された拡張機能の中には、通常のペトリネットに再エンコードするのが困難、あるいは不可能なものもあることが判明しました。そのため、YAWLの本来の形式意味論は、ペトリネットではなく、ラベル付き遷移システムとして定義されています。YAWLが形式意味論に基づいているという事実は、YAWLプロセスを分析するためのいくつかの手法の実装を可能にしました。特に、YAWLシステムにはWofYAWLと呼ばれる静的解析ツールが含まれています。
YAWLは、 BPELの代替として見られることがあります。BPELの大きな利点は、複数のIT業界関係者が支援する標準化委員会によって推進されていることです。その結果、BPELは多数のツール(プロプライエタリおよびオープンソースの両方)によってサポートされているのに対し、YAWLは現時点で単一の実装しかありません。また、複数の研究者が、ペトリネット、プロセス代数、有限状態機械など、さまざまな形式体系を用いてBPELのサブセットの形式意味論を捉えています。これにより、YAWLシステムが提供する静的解析機能に匹敵するBPELの静的解析ツールの開発への道が開かれました。
一方、標準のBPELは、人間が担当するタスク、つまり、人間が担当し、場合によっては身体的な動作を伴うアクションを完了する必要があるタスクをサポートしていないことが指摘されています。多くのBPELエンジンは既に人間タスクのためのBPEL拡張機能を提供していますが、これらの拡張機能はまだ標準化されていません。これに対し、YAWLはWebサービス標準に基づいたワークリストサービス用の統一インターフェースを提供します。このインターフェースにより、開発者はニーズに応じて人間タスクをサポートする独自のワークリストサービスを構築できます。さらに、YAWLシステムには、複数のタイプの人間タスクの割り当てと処理をサポートするデフォルトのワークリストサービスが付属しています。YAWLのもう1つの利点はワークフローパターンをサポートしていることですが、この点におけるYAWLとBPELのギャップは、BPELバージョン2.0に含まれる新しい構成要素によって縮小される可能性があります。