ワークフロー プロセス アーキテクチャ
公開日: 2016年11月
対象: Dynamics CRM 2015
Microsoft Dynamics 365 のプロセス管理システムには、Microsoft Dynamics CRM SDK、プラグイン、フォーム、およびその他のコンポーネントが含まれます。
このトピックの内容
プロセス アーキテクチャの図
プロセスおよび統合イベント モデル
プロセスのライフ サイクル
プロセスと非同期サービス: ワークフローのみ
プロセスの保持とシャットダウン: ワークフローのみ
プロセス アーキテクチャの図
以下の図は、Microsoft Dynamics 365 の上位システム アーキテクチャを示しており、プロセスに特有のシステムの部分が強調表示されています。
この図は、内部コンポーネント、外部コンポーネント、インフラストラクチャ、およびデータを含む Microsoft Dynamics 365 のプロセス アーキテクチャを示しています。
内部コンポーネント。Microsoft Dynamics 365 のプロセス プログラミング モデルをサポートする内部コンポーネントは、Web サービス、共有プラットフォーム、およびビジネス ロジックを含みます。 共有プラットフォームは、Microsoft Dynamics 365 の共通コンポーネントで構成されています。これらのコンポーネントによって、登録サービス、メタデータ キャッシュ サービス、およびデータ アクセス サービスが提供されます。 ビジネス ロジックには、Microsoft Dynamics 365 ビジネス エンティティのビジネス ロジックの実装が含まれています。
外部コンポーネント。 外部コンポーネントは次のとおりです。
Windows Workflow Foundation のオブジェクト モデル。ワークフロー プロセス定義を XAML 形式で作成および解析する際に使用される一連のクラスが含まれています。
Windows Workflow Foundation の実行。ワークフロー プロセスを実行する際に使用される一連のクラスが含まれています。
プロセス インフラストラクチャ。Microsoft Dynamics 365 プロセス インフラストラクチャは、次のコンポーネントから構成されています。
プロセス エンティティ モデル。Windows Workflow Foundation のオブジェクト モデルを使用する一連のクラスを含み、Microsoft Dynamics 365 ワークフロー活動を公開します。
プロセス ビジネス ロジック。プロセス固有のエンティティのビジネス ロジックを実装します。
プロセスの実行。ワークフローのホスティングや保持などのワークフロー実行サービスを提供します。
プロセス データ。Microsoft Dynamics 365 プロセス プログラミング モデルは以下のデータによってサポートされています。
業務データ。Microsoft Dynamics 365 エンティティに関連する情報が含まれています。
プロセス構成データ。ワークフロー プロセス定義、コンパイル済みのワークフロー プロセス、およびワークフロー プロセスの設定が含まれています。
プロセスの実行時データ。ワークフロー プロセスを実行したり、保持や通知などのワークフロー プロセス機能を実装する際に必要です。
プロセスおよび統合イベント モデル
Microsoft Dynamics 365 では、プラグイン (コールアウト) とプロセスの両方で使用される統合イベント モデルが使用されます。 このイベント処理サブシステムでは、パイプライン実行モデルが導入されているため、プロセスとプラグインの実行をより柔軟に行うことができます。
このモデルを使用することにより、プロセスとプラグインは、登録、メッセージの種類、およびあらかじめ定義された構成可能なパラメーターに基づいて実行されます。 コア プラットフォーム操作が実行シーケンスに追加され、信頼性と拡張性の高い実行モデルを形成することができます。
プロセスのライフ サイクル
プロセスのライフ サイクルは、ワークフロー作成から実行までの状態の遷移を表します。 プロセスの状態は、準備完了、中止、ロック、および完了のいずれかになります。 プロセスの有効期間中に発生するイベントにより、その状態が別の状態に遷移します。
ワークフロー
ワークフローのライフ サイクルを次に示します。
ワークフローを作成すると、下書き状態になります。 実行する前にワークフローをアクティブ化する必要があります。 アクティブ化されたワークフローは、特定の Microsoft Dynamics 365 イベントをサブスクライブします。 これらのイベントがプラットフォームで発生すると、ワークフロー依存関係のスナップショットと入力パラメーターが作成され、新しい非同期操作が非同期サービス キュー マネージャに追加されます。 非同期操作は、ワークフロー実行ジョブを表します。これは、キュー内で実行されるまで準備完了状態で待機します。
非同期操作が処理されると、この操作に関連付けられているワークフロー インスタンスが Windows Workflow Foundation ランタイム エンジンによって作成され、その状態が準備完了からロックに遷移します。
非同期操作は、状態が遷移するたびに、ワークフロー インスタンスの状態の進捗状況を使用して更新されます。 非同期操作がブロックされると、Windows Workflow Foundation ランタイム エンジンによってワークフロー インスタンスの状態が中止に変更され、メモリから削除されます。 中止状態の条件が満たされると、ワークフロー インスタンスは再びメモリに読み込まれます。
ワークフローの実行は、ワークフロー インスタンスを準備完了状態にしてから、ロック状態にすることによって再開されます。 単純なシナリオの場合、すべてのワークフロー活動が正常に完了すると、ワークフロー インスタンスは完了状態になります。
ユーザーは、非同期操作の状態を変更することができます。 たとえば、中止状態にある非同期操作を明示的に再開することができます。
ダイアログ
ダイアログのライフ サイクルを次に示します。
ダイアログを作成すると、下書き状態になります。 実行する前にダイアログをアクティブ化する必要があります。 ダイアログは、主エンティティのフォームとグリッドから、またはダイアログの URL を使用して直接、実行できます。 詳細については、「URL によるダイアログの起動」を参照してください。
ダイアログを実行するたびに、ダイアログに対するプロセス セッション インスタンスが作成されます。 ダイアログの実行が進むにしたがって、プロセス セッション エンティティは、ダイアログの実行中に実行されたアクションによって更新されます。
ダイアログの実行が正常に完了すると、対応するプロセス セッション レコードが完了状態で作成されます。 ダイアログを完了する前にキャンセルすると、対応するプロセス セッション レコードが未完了状態で作成されます。
プロセスと非同期サービス: ワークフローのみ
非同期サービスにより、一括インポート、電子メール広告、ワークフロー プロセスなどの多様な長時間の操作を実行、監視、および管理することができます。Microsoft Dynamics 365 のパフォーマンス、スケーラビリティ、および信頼性を向上させるため、これらの操作は非同期的に実行されます。 つまり、要求された操作はすぐに処理されずにキューに登録され、Microsoft Dynamics 365 によって適宜処理されます。
Microsoft Dynamics 365 プラットフォーム パイプラインでイベントが発生すると、そのイベントに関連付けられたすべてのワークフローが非同期サービスによって実行されます。 ワークフロー イベント ハンドラーが非同期キューに追加され、イベント実行順序のとおりに処理されます。
プロセスの保持とシャットダウン: ワークフローのみ
ワークフローは、完了までに数時間、数週間、または数か月かかる長時間の業務処理に使用することができます。 つまり、ワークフローを長時間アイドル状態にして、ユーザーまたは他のシステムからの入力に備えることができます。
Microsoft Dynamics 365 のパフォーマンス、スケーラビリティ、および信頼性を向上させるため、ワークフローなどの長時間の処理では非同期サービスが使用されます。
Windows Workflow Foundation ランタイム エンジンのホストとして非同期サービスを使用する場合、長期間続くワークフロー活動の間に累積するすべてのオブジェクトを常にキャッシュに保存したりアクティブにしておくことはできません。 ワークフローの実行時に再起動やシャットダウンなどの特定の条件が発生した場合、ワークフロー ランタイム エンジンは永続性サービスを使用して、ワークフロー インスタンスの状態をディスクに保存します。 他の条件が発生した場合も、保持サービスが起動されます。たとえば、ワークフローがアイドル状態になり、一部の外部イベントが発生するのを待っている場合などです。 これらのアイドル状態のワークフロー インスタンスを保持することにより、メモリが節約され、スケーラビリティが大幅に向上します。 非同期サービスを実行しているサーバーがシャットダウンするか、実行中にワークフローがクラッシュした場合は、サーバーの再起動後に、最後に保持された時点からワークフローを再開することができます。 ワークフローがアイドル状態でなくなると、ワークフロー インスタンスの状態が、最後に保持された時点の状態でメモリに復元されます。
詳細:ワークフローの保持。
関連項目
Microsoft Dynamics CRM 2015 での非同期サービス
イベント実行パイプライン
イベント フレームワークの紹介
ビジネス プロセスを自動化するワークフローの記述
© 2017 Microsoft. All rights reserved. 著作権