YAWL

出典: フリー百科事典『ウィキペディア(Wikipedia)』

YAWLYet Another Workflow Language)は、ワークフローパターンに基づいたワークフロー言語の一種。実行エンジンやグラフィックエディタなどのソフトウェアシステムでサポートされている。この言語とそのサポートシステムを最初に開発したのは、アイントホーヘン工科大学クイーンズランド科学技術大学の研究者らであった。その後、インターコンチネンタルホテルズグループfirst:telecomATOS Worldline といった企業が参加するようになり、YAWL はオープンソースソフトウェアとして LGPL ライセンスで提供されるようになった。

概要[編集]

YAWL 開発の動機は、ほとんど全てのワークフローパターンをサポートし、形式的意味を与えるワークフロー言語を定義することであった。ペトリネットがほとんどのワークフローパターンをほぼ描けると思われたため、YAWL の設計者らはペトリネットを出発点とし、これに形式的な拡張として、OR-合流(or-join)、取り消し集合(cancellation sets)、複数インスタンス活動(multi-instance activities)という三つの構成要素を加えた。これらの拡張によって、ペトリネットでは直接描けなかった5種類のワークフローパターン(synchronizing merge, discriminator, N-out-of-M join, multiple instance with no a priori runtime knowledge, cancel case)が描けるようになった。

さらに YAWL ではペトリネットの構文的要素も拡張して他のワークフローパターンも直観的に描けるようにした。simple choice (xor-split)、simple merge (xor-join)、multiple choice (or-split) である。言語の設計において、ペトリネットへの拡張の一部は難解であったり、通常のペトリネットに戻せないものであることが判明した。結果として、YAWL の形式意味論は単なるペトリネットではなく、一種のラベル付き状態遷移系の定義となっている。YAWL が形式意味論に基づいているという事実により、YAWL プロセスの解析技法を実装可能となった。特に YAWL システムには静的解析ツール WofYAWL がある。

YAWL と BPEL[編集]

YAWL は BPEL の代替とされることもある。BPEL の最大の利点は、それがIT業界の標準化委員会で策定されたものであるという点である。そのため BPEL をサポートするツールは多数存在する一方、YAWL は1つの実装しか(今のところ)存在しない。また、BPEL のサブセットの形式的意味論によって、ペトリネットプロセス代数有限オートマトンといった各種形式定義が描けることが示されている。これにより、BPEL にも YAWL システムと同様の機能を持つ静的解析ツールが開発できることが示された。

一方、標準の BPEL は人間の行う作業をサポートできないと指摘されている。BPEL エンジンにはそのようなタスクも描けるよう拡張されたものが既に存在するが、そのような拡張はまだ標準化されていない。対照的に、YAWL はWebサービス標準に基づいたワークリストサービスのための統合されたインタフェースを提供する。このインタフェースによって開発者は、必要に応じて人間のタスクもサポートするワークリストサービスを構築できる。さらに、YAWL にはデフォルトで数種類の人間のタスクの割り当てと制御をサポートするワークリストサービスが含まれている。

YAWL のもう1つの利点はワークフローパターンのサポートだが、BPEL 2.0 で新たに追加される構成要素により、その差は小さくなると予想される。

機能[編集]

  • 幅広いワークフローパターンをサポート
  • 並行性の強力な理論であるペトリネットを拡張
  • YAWL(制御フロー)言語は、文法も意味論も形式的に定義されている。
  • 構築時にワークフロー解析をサポート
  • 永続性、自動的な世代管理、ワークフロー管理をサポート
  • ワークレット(worklet)と Ripple Down Rules (RDR) に基づいて動的ワークフローを扱える。
  • 洗練された拡張の開発を容易にするサービス指向アーキテクチャ
  • 時間的観点のサポート
  • XML技術(XML SchemaXPathXQuery)に基づいたデータパースペクティブのサポート
  • ワークリストサービス・インタフェースによるリソースパースペクティブのサポート

関連項目[編集]

外部リンク[編集]