最近、Patrice Cappelaere氏は、WF-XML 2.0(pdf・英語)に対しRESTfulバインディングを提供するというイニシアチブがWorkflow Management Coalition(source)(WfMC)によって受け入れられたことを発表した(サイト・英語)。それが、WfXML-Rである(source)。
WfXML-Rは、WfMCのReference Model(参照モデル)(source)の5つのインターフェースを中心とした仕様を提供することを目的としている。
-
Interface 1: プロセス定義とモデリングツールやワークフローエンジンの間の標準インターフェースの定義。
-
Interface 2: ワークフローエンジンからサービスを要求し、プロセス、アクティビティ、およびワークアイテムの進行を管理するクライアントアプリケーションためのAPIの定義。
-
Interface 3: ワークフローエンジンが共通のエージェントソフトウェアを通じて、さまざまなアプリケーションを呼び出すことができるAPIの標準インターフェース定義。
-
Interface 4: ワークフロー相互運用性モデルとそれに対応する相互作用をサポートする標準の定義。
-
Interface 5: モニタリングと管理機能の定義。
現在のバージョン0.4で(source)、WfXML-Rは、次のユースケースのサポートを挙げている。
- Remote Applicationはサーバから利用可能なワークフロー、定義、およびその他の利用可能なリソースを発見して取り出す必要がある。
- Remote Applicationは、プロセスインスタンスを開始(および停止)できる必要がある。
- Remote Applicationは、次のことを行う必要がある。
- プロセスインスタンスの現在の状態を検出する。
- そのプロセス内の、現在待機されているアクティビティを検出する。
- Remote Applicationはワークフローおよび定義を作成、更新、削除できる必要がある。
- 定義
- Remote Applicationは、プロセスエンジンの開始および停止、または新しいエンジンの作成/削除を行える必要がある。
- Remote Applicationは、履歴とログをチェックできる必要がある。
- Remote Applicationは特定のリソースを検索する。
これを書いている時点で特定されているRESTリソースは次のとおりである。
/workflows |
このリソースはワークフローアナリストによって最初に作成される主要なコンテナである。このリソースには、ワークフローに関連する名前情報、制作者、およびその他のメタデータが含まれる。定義やインスタンスなどの他のリソースを指し示す。 |
/definitions |
特定のワークフローについて、1つまたは複数のプロセス定義を指定し、エンジンにロードし、バージョン化できる。プロセス定義は、ワークフローによって実行される各種アクティビティを指定するために必要である。プロセス定義は本質的に、プロセスインスタンスの工場である。 |
/processes |
プロセスインスタンスは実際の作業を実行する。これには、あるプロセスインスタンスを別のプロセスインスタンスと区別するコンテキスト情報が含まれる。プロセスインスタンスリソースは一度しか使用できない。作成された後、開始、一時停止、再開、終了させることができる。すべて正常に進めば、最終的には完了する。 |
/activities | プロセスインスタンスは任意の時点で、外部アクションと見なすものの完了を待機している。アクティビティはプロセス内のこの待機ポイントを表す。プロセスは、人間の介入を待機している場合もあれば、プロセス内の自動化されたステップの結果を待機している場合もある。アクティビティは、プロセスが何を待機しているか(たとえば、担当者など)に関する情報を提供する。さらに場合によっては、どのくらい待機しているか、どのくらい待機する用意があるかに関する詳細も提供する。この場合、アクティビティはそのリモートプロセスの観察者として機能している。アクティビティは待機しているリモートプロセスインスタンスのURLを提供できる。 |
/traces |
特定のプロセスが実行すると、システムはシーケンスパスに関する履歴情報やトレース、各アクティビティ後の入力/出力、タイムスタンプを収集できる。 |
/participants | パーティシパント(参加者)は特定のアクティビティを実行する。パーティシパントは、人間の場合もあれば、他のWebサービスの場合もある。 |
/workitems | 人間はワークフロー内のパーティシパントになることができ、実行するタスク(アクティビティ)を手渡されることがある。これらの要求は、ユーザーが取り出して実行できるように「ストア」内にキューイングされる。これらの要求がワークアイテムである。 |
/engine |
エンジン自体はおそらく最もアクセスする価値のあるリソースである。Remote Applicationは一部のエンジン属性をチェックしてそれらを変更できる。管理者(アドミニストレータ)は、新しいエンジンリソースを作成または削除したり、実行中のエンジンのリストを取得したりできる。 |
/errors |
エンジンは実行時エラーのリストを保存し、ユーザーはこれを取り出すことができる。 |
WfXML-Rは、Atom出版プロトコル(サイト・英語)、Atom 1.0配信フォーマット(サイト・英語)、GData(source)、OpenSearch(source)、およびOCG Publish-Subscribeなどの(source)、既存の標準およびプロトコルを利用する。
原文はこちらです: