翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SWF ワークフロー
ワークフローとは
Amazon Simple Workflow Service (Amazon SWF) を使用して、分散された非同期アプリケーションをワークフローとして実装できます。ワークフローは複数のコンピューティングデバイス間で非同期的に実行でき、シーケンシャル処理と並列処理の両方を実行できるアクティビティの実行を調整、管理します。
ワークフローを設計するときは、アプリケーションを分析してそのコンポーネントタスクを特定します。Amazon SWF の場合、これらのタスクは、アクティビティを表します。アクティビティが実行される順序は、ワークフローの調整ロジックによって決まります。
シンプルなワークフローの例: e コマースアプリケーション
たとえば、次の図は、人間によるプロセスおよび自動化されたプロセスの両方を含むシンプルな e コマースの注文処理のワークフローを示しています。
このワークフローは、顧客が注文を行うときに開始されます。これには 4 つのタスクが含まれます。
注文を確認する。
注文が有効である場合、顧客に課金する。
支払いが行われたら、注文品を出荷する。
注文品が出荷されたら、注文の詳細を保存する。
このワークフローのタスクはシーケンシャルです。クレジットカードに課金する前に注文を確認する必要があり、注文品を出荷する前にクレジットカードに正常に課金する必要があります。さらに、注文を記録する前に注文品を出荷する必要があります。それでも、Amazon SWF は分散プロセスをサポートしているため、これらのタスクは別の場所で実行できます。タスクの特性がプログラム的である場合、別のプログラミング言語または別のツールを使用して記述することもできます。
タスクのシーケンシャル処理に加えて、Amazon SWF はタスクの並列処理を使用したワークフローもサポートします。並行タスクは同時に実行され、別のアプリケーションまたは人間のワーカーによって単独に実行することもできます。ワークフローにより、1 つ以上の並行タスクが完了したときの続行方法に関する決定が行われます。
ワークフローの登録と実行
調整ロジックとアクティビティを設計したら、Amazon SWF を使用してそれらのコンポーネントをワークフローおよびアクティビティタイプとして登録します。登録時に、各タイプに名前、バージョン、およびデフォルト設定値を指定します。
Amazon SWF には、登録されたワークフローとアクティビティタイプのみを使用できます。e コマースの例では、CustomerOrder ワークフロータイプ、および VerifyOrder、ChargeCreditCard、ShipOrder、RecordCompletion アクティビティタイプを登録します。
ワークフロータイプの登録後は、何回でも実行できます。ワークフロー実行は、ワークフローの実行中のインスタンスです。e コマースの例では、新しいワークフロー実行が顧客の注文ごとに開始されます。
ワークフロー実行は、別のワークフロー実行の後でも、任意のプロセスまたはアプリケーションによって開始できます。e コマースの例では、ワークフローを開始するアプリケーションのタイプは、顧客の注文方法によって異なります。ワークフローは、ウェブサイトやモバイルアプリケーション、または社内アプリケーションを使用してカスタマーサービス担当者が開始できます。
Amazon SWF を使用すると、workflowId
という識別子をワークフロー実行に関連付けることができるため、既存のビジネス識別子をワークフロー実行に統合することができます。e コマースの例では、各ワークフロー実行を、顧客の請求書番号を使って特定できます。
Amazon SWF は、ユーザーが指定した識別子に加えて、システムが生成する一意の識別子 (runId
) をワークフローの実行ごとに関連付けます。Amazon SWF では、この識別子を使用して 1 つのワークフロー実行のみを任意の時点で実行できます。同じワークフロータイプの複数のワークフローを実行することはできますが、各ワークフローの実行には別個の runId
があります。