SWF(Simple Workflow)とは
マネージド型のタスクコーディネータ
商品の発注/請求処理のワークフロー(処理の流れ)のような、重複が許されない、厳密に一回限り順序性が求められる処理のコーディネータとしての利用に適している。
#SWFの要素
##①ワークフロースターター
SWFを起動し、ワークフロー開始の起点となるアプリケーション。
例えば、顧客の注文を起点に動作するワークフローだと注文を受けるアプリケーションがワークフロースターターになる。
##②SWF
ワークフロースターター、もしくはワーカー・Lambdaタスクから受け取った情報を元に決定タスクを作成し、ディサイダーへ渡す。
ディサイダーから受け取った次に実行するタスクの情報からタスクの実行命令を出す。
決定タスク ワークフローの実行状態を伝えるもの。 ワークフロー履歴等を保持する。
ワークフロー履歴
ワークフローが実行されてから発生したイベントの実行記録。
各タスクが実行状態を持たずに決定タスクに持たせることでワークフロースターターやタスクなどのアプリケーションをステートレスに保つことが可能。
##③ディサイダー
SWFから受け取った決定タスクを元に次に実行するタスクを決定する。
SWFを使用するユーザ自信がプログラミングして作成する必要があります。
##④タスク
SWFから呼び出されて実行される処理。
アクティビティタスクとLambdaタスクに分類される
1アクティビティタスク
ユーザが作成した任意のプログラム・処理を実行するタスク。 SWFから直接実行されるのではなく、ワーカーと呼ばれるプロセス・スレッドから実行される。 ワーカーは SWFを使用するユーザ自信がプログラミングして作成する必要があります。