Workflow Manager 1.0 における主要な概念

 

公開日: 2016年7月

このトピックでは、Workflow Manager 1.0 の重要な概念の概要を説明します。

主要な概念

  • ワークフロー管理サービス

  • Workflow Client API

  • アクティビティ

  • ワークフロー

  • インスタンス

  • 適用範囲

  • 通知

  • DynamicValue

ワークフロー管理サービス

Workflow Manager 1.0 では、ワークフローを発行、管理、および実行するための REST ベースのサービス エンドポイントを公開します。 ワークフロー定義およびそのインスタンスと対話する通信はすべて HTTP によって行われます。

の詳細については ワークフロー管理については、「Workflow Manager 1.0 のサーバー管理」を参照してください。

Workflow Client API

Microsoft.Workflow.Client.dll 内にパッケージ化された Workflow Client API は、ワークフローを発行、管理、および実行するために使用できる .NET ベースのクラスのセットです。 これによって、ワークフロー管理サービスへの内部的な HTTP トラフィックを抽象化する API のファーストクラス セットが提供されます。

アクティビティ

アクティビティは名前付きエンティティであり、ワークフローの機能のビルド ブロックが格納されています。 アクティビティは、通常、他のアクティビティ (開発者によって作成されるカスタム アクティビティまたは Microsoft.Activities 名前空間に指定されるアクティビティ) から構成されます。

アクティビティは、Workflow Client API 内で ActivityDescription クラスによって示されます。 このクラスの基本メンバーは、アクティビティの XAML ベースの定義を示す Xaml プロパティです。

ワークフロー

ワークフローは、名前付きエンティティであり、アクティブ化または開始することができるワークフローを示します。 ワークフローは、クライアント API 内で WorkflowDescription クラスによって示されます。 このクラスの重要な 2 つのプロパティを次に示します。

  1. ActivityPath - このワークフローの実装ボディとして使用するアクティビティを指定します。

  2. ActivationFilter - このワークフローのインスタンスをアクティブ化できるメッセージの特性を定義します。

インスタンス

ワークフロー インスタンスは、特定のワークフローのインスタンスを示すエンティティです。 ワークフロー インスタンスは、次の 2 つの方法のいずれかで作成されます。

  1. 明示的な方法。StartWorkflow API を呼び出して特定のワークフローの新しいインスタンスを開始します。

  2. 暗黙的な方法。PublishNotification API を使用して、指定されたワークフローの ActivationFilter と一致するメッセージを発行します。 単一のメッセージが 1 つまたは多数のワークフローの ActivationFilter と一致する可能性、またはどのワークフローの ActivationFilter とも一致しない可能性があります。 一致したワークフローごとに 1 つの新しいインスタンスが、こうしたメッセージを発行した結果としてインスタンス化されます。

ワークフロー インスタンスは作成されると、クライアント API 内で WorkflowInstanceInfo クラスによって示されます。

適用範囲

スコープは、アクティビティ、ワークフロー、インスタンス、構成、および子スコープのためのセキュリティ保護された名前付きコンテナーです。 また、スコープはマルチテナント機能およびメッセージング (通知) の境界を指定します。 スコープは、Workflow Client API を使用して作成および変更できます。 スコープは、クライアント API 内で T:Microsoft.Workflow.Client.ScopeInfo クラスによって示されます。

ワークフローをインストールすると、ルート スコープのみが作成されます。このスコープは削除することはできません。 必要に応じて、追加のスコープを作成することができます。 複数レベルのネスト スコープがサポートされています。 ワークフローとアクティビティは、ルート スコープの下のスコープに展開する必要があります。

アクティビティワークフロー、およびインスタンスのそれぞれは、単一のスコープに属します。 アクティビティとワークフローは、自身が発行された先のスコープに属します。 インスタンスは、対応するワークフローと同じスコープに属します。

アクティビティ Xaml は、同じスコープ、親スコープ、または祖先スコープ (ただし、ルート スコープは除外) に属する他のアクティビティを参照および使用することができます。

ワークフローは、同じスコープ、親スコープ、または任意の祖先スコープ (ただし、ルート スコープは除外) を使用して定義することができます。

スコープのセキュリティや他の構成設定は、すべての子スコープによって継承されます。

スコープは命名の境界です。 それぞれの名前付きエンティティ (アクティビティ、ワークフロー、および子スコープ) の名前は、これらのエンティティが属するスコープ内でのみ一意である必要があります。

また、スコープは PublishNotification API のターゲットです。つまり、PublishNotification に渡される単一メッセージは、ターゲット スコープに属するワークフローのみをアクティブ化することができます。

ワークフローでは、子スコープのために特定のセマンティックを要求しません。 指定されたアプリケーションに適するスコープ構造は、ワークフローのユーザーが決定する必要があります。

たとえば、OnlineCollaborationSolution を開発する ISV はトップ レベルのスコープを作成して OnlineCollaborationSolution アプリケーションのテナント (Contoso、Fabrikam、Litware など) を示すことが可能です。 OnlineCollaborationSolution では、下図に示すように、リソース モデル内でネストされたスコープとして表現するエンティティを、テナントが作成することを許可できます。

Windows Azure Workflow Scopes

通知

ワークフロー インスタンスは、通知メッセージを介して作成および再開することができます。 スコープに発行されたメッセージは、ファンアウトしてから、ワークフローで定義したフィルターと一致するすべてのワークフロー インスタンスに非同期で配信されます。

ワークフロー内の の詳細については メッセージについては、「Workflow Manager 1.0 でのメッセージング」を参照してください。

DynamicValue

DynamicValue は動的データ構造体であり、複雑なデータをワークフローに渡す場合、ワークフロー内でデータを操作する場合、またはワークフローからデータを JSON として渡す場合に使用できます。

の詳細については DynamicValue については、「動的な値について」を参照してください。