Windows Workflow の概要

ワークフローは "アクティビティ" と呼ばれる要素の集まりであり、これらは実際のプロセスを記述したモデルとして保存されます。 ワークフローでは、短期間だけ行われる業務や長期間にわたって行われる業務の各部分の実行順序と、それらの間の依存関係を表すことができます。 このような業務はモデルの最初から最後まで通して行われます。アクティビティには、人間によって実行されるものと、システム機能によって実行されるものがあります。

ワークフロー ランタイム エンジン

実行されるそれぞれのワークフロー インスタンスは、ホスト プロセスが次のいずれかを通して対話するプロセス内ランタイム エンジンによって作成および保持されます。

  • WorkflowInvoker。メソッドのようにワークフローを呼び出します。

  • WorkflowApplication。1 つのワークフロー インスタンスの実行に対して明示的な制御を行います。

  • WorkflowServiceHost。複数のインスタンスを使用する場合にメッセージ ベースの対話を行います。

これらの各クラスは、アクティビティの実行に関与する ActivityInstance として表されるコアのアクティビティ ランタイムをラップします。 実行するアプリケーション ドメイン内では、同時に複数の ActivityInstance オブジェクトを使用できます。

前述のホストと対話する 3 つのオブジェクトは、それぞれワークフロー プログラムと呼ばれるアクティビティのツリーから作成されます。 ワークフローは、これらの型を使用するか、ActivityInstance をラップするカスタムのホストを使用して、コンソール アプリケーション、フォームに基づくアプリケーション、Windows サービス、ASP.NET Web サイト、Windows Communication Foundation (WCF) サービスなどの任意の Windows プロセス内で実行できます。

Workflow components in the host process
ホスト プロセス内のワークフローのコンポーネント

ワークフロー コンポーネント間の対話

次の図は、ワークフロー コンポーネントが互いにどのように対話するかを示しています。

Diagram that shows how workflow components interact.

前の図では、複数のワークフロー インスタンスを呼び出すために、Invoke クラスの WorkflowInvoker メソッドが使用されています。 WorkflowInvoker は、ホストからの管理が不要の簡易なワークフローに使用されます。ホストからの管理が必要なワークフロー (Bookmark の再開など) は、代わりに Run を使用して実行する必要があります。 他のワークフロー インスタンスを呼び出す前に、現在のワークフロー インスタンスが完了するのを待機する必要はありません。ランタイム エンジンでは、複数のワークフロー インスタンスの同時実行をサポートしています。 呼び出されるワークフローは次のとおりです。

関連項目