ほぼすべてのビジネスプロセスには、コンテンツへのアクセス、コンテンツの抽出、処理に関するデータの処理、プロセス内でのさらなるアクションの決定などが含まれるため、ワークプロセスの主要なオブジェクトはリスト、SharePointライブラリ、コンテンツの種類、サイトの要素です処理結果に基づきます。
SharePointプラットフォームは、ワークフロー開発ツールの豊富なセットと、ワークフローのライフサイクル全体を包括的にサポートするコンポーネント間の対話のサービスとプロトコルをユーザーとプログラマに提供します。
以下では、SharePoint 2013ワークフロープラットフォームのアーキテクチャ、SharePoint 2010との違いと利点、およびすべての主要コンポーネントとそれらの間の関係の概要について説明します。
SharePoint 2010ワークフロープラットフォーム
SharePoint 2010では、ワークフローはWindows Workflow Foundation 3.5(WF)プラットフォームに基づいており、プログラミングプラットフォーム、アプリケーション開発、および実行ツールを提供します。
実際、SharePoint 2010にはワークフローランタイムが含まれており、独自のサービスのプライベート実装を提供します。 したがって、ワークフローはSharePoint 2010環境と緊密に統合されており、それを超えて移動することはできません。
図1. SharePoint 2010のWFワークフローアーキテクチャ
ワークフローランタイムは、ファームのインストール中にSharePoint 2010と自動的に統合され、そのすべてのコンポーネントはSQL ServerのSharePointコンテンツデータベースに保存されます。 SharePoint 2010のワークフローはアクセス可能で、SharePointのすべてのエディション(SharePoint Foundation 2010、SharePoint Server 2010)で同等に機能します。
図2. SharePoint 2010にワークフローデータを保存するためのスキーマ
SharePoint 2010ワークフローアーキテクチャには、次のようないくつかの重大な欠点があります。
- SharePointファーム内のサーバーとは無関係に、負荷を分散してフォールトトレランス管理メカニズムを使用するように拡張できないこと。
- 企業の作業環境での実装に焦点を当て、クラウド環境での使用を強く制限します。
SharePoint 2013ワークフロープラットフォーム
SharePoint 2013ワークフロープラットフォームは、WF 4.0ワークフローに基づくWorkflow Managerを使用します。 同様に、WFは.NET Framework 4.5の一部です。
Workflow Managerは、SharePoint Server 2013を含む多くの異なるアプリケーションで使用できる強力な新しいサービスです。新しいプラットフォームを開発するための主なアイデアの1つは、プラットフォーム自体に縛られることなく、SharePoint Server 2013のユーザーに本格的なワークフロー機能を提供することです。 。 このアプローチは、SharePoint Server 2013とワークフローマネージャーの生産性、復元性、およびスケーラビリティの問題を個別に解決する機会を提供しました。
図3. SharePoint 2013ワークフロープラットフォームの一般的なアーキテクチャ
SharePoint 2013は、ワークフローモデルのサポートとアクションのロジックの実装のみを担当するディスパッチャーを使用します。 新しいアーキテクチャの基本は、プロセスをディスパッチャー側に転送することです。これにより、プロセスをSharePoint 2013ファームの外に移動して、サーバーリソースを完全に独立して使用できるようになります。
重要なことは、ワークフローマネージャーは完全に独立したソフトウェア製品であり、ダウンロードしてインストールし、構成した後、SharePointファームに接続する必要があるということです。
ワークフローマネージャーとやり取りするために、SharePoint Server 2013は専用のアプリケーションプログラムインターフェイス(API)を使用します。 これに必要なコンポーネントのすべてのセットは、対応するクライアント(Eng。Workflow Manager Client )に含まれています。 この場合、すべての呼び出しはサービスバス(Eng。Service Bus)を介して実装されます。
SharePoint 2013ワークフロープラットフォームは、クラウドベースのアプリケーションモデルに基づいています。 ワークフローマネージャーは、企業の内部ネットワークインフラストラクチャ( オンプレミス )の別のサーバーにインストールし、Windows Azureのサービスとして展開できます。
実際には、企業は多くの場合、内部ネットワークインフラストラクチャのSharePointサーバーにWindows Serverのワークフローマネージャーとサービスバスを展開します。
2番目の重要な点は、SharePoint 2013ワークフローの構成はサーバーエディションでのみ使用できることです。 SharePoint Server 2013 StandardおよびSharePoint Server 2013 Enterprise。
図4.会社の内部ネットワークインフラストラクチャのワークフロープラットフォームのアーキテクチャ
図5. Windows Azureのワークフロープラットフォームのアーキテクチャ
新しいワークフローアーキテクチャの主な利点は次のとおりです。
- マルチサーバーホスティング。 ワークフローインスタンスの高い効率と実行速度、および管理の容易さを提供します。 また、その利点の中には、より高いレベルのセキュリティ、柔軟なスケーラビリティ、およびリモートワークフローマネージャーサーバー間の負荷分散があります。
- スケーリング。 会社のネットワークインフラストラクチャ内のSharePoint Server 2013のファーム側での作業プロセスの開発、ビジネスロジックの実装、およびインスタンスの形成の管理により、ファームサーバーリソースの使用を一定レベルに維持し、同時に作業プロセスの直接実行に必要なリソースをオンデマンドで割り当てることができます。 ワークフローマネージャーをWindows Azureに配置すると、ワークフロー処理の負荷の増減に応じてリソースを追加および削除でき、現在必要なリソースに対してのみ支払うことができます。
- 高度な診断および監視ツール。 実行中のワークフローインスタンスを監視および診断するための新機能は、REST APIとワークフローマネージャークライアントを使用します。 システム管理者には専用のツールセットが提供され、クライアントは実行中のワークプロセスのステータスとステータスに関するデータを表示し、構成設定を柔軟に管理できます。
- 完全に宣言的なワークフロー開発。 この新しい概念は、SharePointプラットフォームで最初に使用されました。 SharePoint Server 2013のユーザー向けの主な開発ツールは、SharePoint Designer 2013、MS Visio 2013、MS InfoPath 2013です。VisualStudio 2012/2013の開発者向けに、ワークフローアクションを開発するための一連の専用プロジェクトテンプレートと強力なツールが用意されています。 MS Visual Studioで開発されたワークフローアクションは、SharePoint Designer 2013でのその後の使用を目的としています。
- Webサービスの形式での実装。 SharePoint Server 2013ワークフローアクションは、プログラミングインターフェイスを使用してSharePointと対話する疎結合Webサービスを使用して呼び出されます。 Windows Communication Foundation(WCF)メッセージング機能とREST要求の使用に基づいています。 ランタイム環境のサポート、着信および発信メッセージは、ワークフローのすべての段階を調整し、整合性と信頼性を確保します。
SharePoint 2013ワークフローアーキテクチャのコンポーネントについては、以下で詳しく説明します。
SharePoint 2013ワークフロープラットフォームコンポーネント
SharePoint Server 2013のWindows Workflow Foundation
一般的な特徴
Windows Workflow Foundation(WF)は、ワークフローのライフサイクル(定義、開発、実装、および管理)をサポートするマイクロソフトのテクノロジです。 (英語のワークフロー)。 WFは、ワークフローベースのアプリケーションにプログラミングインフラストラクチャ、開発および実行ツールを提供します。
図6. Windows Workflow Foundationのアーキテクチャ
表1. Windows Workflow Foundationアーキテクチャの主要コンポーネント
成分 | 説明 |
ホストプロセス | WFワークフローランタイムを含むアプリケーション。 ホストプロセスは、ランタイムサービスのサポートを提供します。 |
アクション | 作業単位またはビジネスプロセスの個別のステップ。 |
作業プロセス | ビジネスプロセスの実装に使用されるアクションのシーケンス。 |
基本アクションライブラリ | 開発で使用され、WFの一部である一連のワークフローアクションテンプレート。 |
追加のアクション | プログラマーが開発したワークフローアクション。 |
ランタイム | ワークフローインスタンスはランタイムによって実行されます。 また、ワークプロセスの状態の変化とそれらの間の相互作用も制御します。 |
デザイナー | 開発に使用されるUIツール。 Visual Studioには専門のWFデザイナーが含まれています |
ランタイムサービス | ワークフローコンポーネント間のホスティングと対話を提供するサービス |
WFワークフローは、「アクティビティ」の構造化されたコレクションであり、それぞれがビジネスプロセスの機能コンポーネントを表します。
図7. MS Visual Studio 2013のSharePoint 2013のワークフロー開発者ダッシュボードの例
SharePoint Server 2013は追加の開発ツールセットを提供し、WFの標準機能を大幅に拡張します。
- Internet Explorer、Firefox、ChromeなどのWebブラウザーは、SharePoint Server 2013サイトと対話するためのツールですたとえば、リストとライブラリを作成し、それらにアイテムを追加し、それらにワークフローを関連付け、個別のアイテムから開始することができます状態を確認してください。
- MS Visio2013 。形状とコネクタを使用して回路を作成するために使用されます。 SharePoint 2013プラットフォームに基づいてワークフローを作成するために使用でき、次に、MS Visio 2013からSharePoint Designer 2013へ、またはその逆にプロセスをインポートできます。
- MS InfoPath 2013は、 フォームを開発するためのツールです。 これを使用して、ユーザーがワークフローと対話するために必要なフォームをカスタマイズできます。
- SharePoint Designer 2013は、以前のバージョンと同様に、ビジネスユーザーがワークフロー定義を作成して公開する主要な手段です。 また、関連するSharePointコンポーネント(リスト、ライブラリ、コンテンツタイプ、サイトなど)の有無にかかわらず、ワークフロー定義をパッケージ化するためにも使用されます。 Visual Studioでカスタムワークフローアクションを作成し、SharePoint Designer 2013にインポートして、ワークフローデザイナーから使用できるようにすることができます。
- SharePoint Designer 2013で使用するVisual Studioアクション開発ツール 。
図8. SharePoint Designerのサンプルワークフローアクション
図9. SharePoint Designerのワークフロースニペット
WFワークフローアクションと、SharePoint Designer 2013(SPD 2013)で選択可能なSharePoint Server 2013アクションとの関係に注意することが重要です。 WFワークフローアクションは、メソッドがワークフローの動作を決定する基本的な管理対象オブジェクトを表します。
SPD 2013のワークフローアクションは、基本的なWFアクションをカプセル化し、理解可能な2013 SPDフォームで表示するラッパーです。
SPD 2013での開発中のワークフロー作成者はワークフローアクションとやり取りし、ワークフロー実行モジュールは対応するWFアクションに基づいて機能します。
ワークフローの種類
WFは、2種類のワークフロー作成を提供します。
- 一貫したワークフロー。
- 有限状態マシンのワークフロー。
シーケンシャルワークフローは、特定のパスに従います。 決定分岐やループを含む場合もあれば、エンドポイントがない場合もありますが、開発中に予測可能なパスを簡単に追跡できます。
SharePoint Server 2013環境で実行される順次ワークフローの例:
- SharePointライブラリにドキュメントを追加すると、ワークフローは新しいタスクをSharePointタスクリストに追加します。
- タスクを編集するとき、ワークフローはタスクのプロパティをチェックして、完了したかどうかを判断します。 実行が完了すると、ワークフローも終了します。
図10. MS Visual StudioでのシーケンシャルWFワークフローの例
ステートマシンワークフローは、一連の状態、遷移、およびアクションです。 アクションは非同期で実行されます。つまり、アクションは必ずしも厳密な順序で配置される必要はなく、代わりに他のアクションと状態によってアクティブ化できます。 1つの状態が最初の状態として設定され、(特定のイベントが発生すると)別の状態に遷移します。
ステートマシンは、ワークフローの完了を決定する状態に設定できます。
図11. WFステートマシンのワークフローの例
SharePoint Server 2013
SharePoint Server 2013は、ドキュメント、リスト、コンテンツタイプ、ユーザー、タスク、およびSharePointサイトに関連付けられたビジネスプロセスをモデル化するワークフロープラットフォームを提供します。 さらに、ワークフロー、マッピング、アクション、およびその他のメタデータがSharePoint 2013に保存および制御されます。
ワークフローマネージャークライアント
Workflow Manager Clientは、ワークフロー定義の管理を提供します。 これは、システムへのインストール後、サービスバス経由でメッセージングインフラストラクチャの共通プロトコルを使用してSharePointとやり取りするスタンドアロンソフトウェアコンポーネントです。
ワークフローサービスアプリケーションプロキシ
ワークフローマネージャークライアントは、SharePoint 2013でワークフローサービスアプリケーションプロキシとして導入されています。 このコンポーネントにより、SharePointはワークフローマネージャーサーバーと通信できます。 サーバー間認証は、OAuthを使用して実行されます。
ワークフローサービスマネージャー
SharePoint 2013ワークフローのすべての新機能は、ワークフローサービスマネージャーを通じてSharePointオブジェクトモデルに実装されます。これには、展開、インスタンス、相互作用、およびメッセージングサービスが含まれます。
展開サービス
展開サービスは、ワークフローを公開し、ワークフローとSharePointオブジェクト間の関連付けを確立する機能を提供します。
インスタンスサービス
インスタンスサービスは、ワークフローのインスタンスにアクセスして、それらに関する情報を取得および管理するために使用されます。 たとえば、ユーザーはワークフローをキャンセルできます。
インタラクションサービス
コラボレーションサービスは、従来のSharePoint 2010ワークフローのインスタンスを取得および実行するために使用されますが、次の2つのシナリオをサポートしています。
- 組織には、SharePoint 2013環境でサポートする必要がある古いSharePoint 2010ワークフローがあります。
- SharePoint 2013ワークフローが開発されました。このワークフロー内で、SharePoint 2010でのみ使用可能なアクションが完了していることを確認する必要があります。
どちらのシナリオでも、コラボレーションサービスは、ワークフロー自体と、SharePoint 2013環境の個々のSharePoint 2010アクティビティが正しく動作し、2つの環境間の調整プロセスをサポートする役割を果たします。
SharePoint Designer 2013は、SharePoint 2010ワークフローの起動という新しいアクションへのアクセスを提供します。WFの観点から見ると、マネージャーとSharePoint 2013プラットフォームで実行されているSharePoint 2010ワークフローホストとの間でメッセージを送信するシーケンスです。
- ビジネスプロセスマネージャーがワークフローを開始します(1)。 対応するメッセージがワークフローサービスマネージャーに送信されます(2)。
- Workflow Services Managerは、SharePoint 2010ワークフローホスト内でワークフローを起動します。
- SharePoint 2010ワークフローの完了イベントまたはその開始直後(ワークフローのプロパティに応じて)に、対応するメッセージがワークフローマネージャーに送信されます(3)。
- イベント発行元(4)を介して、SharePoint 2010ワークフロー完了情報がワークフローマネージャー(5)に渡されます。
- SharePoint 2013ワークフロープラットフォームのコンポーネント間の相互作用の一般的な概要を以下の画像に示します。
図12. SharePoint 2010ワークフローを実行するときのワークフロープラットフォームのコンポーネントの相互作用の一般的な図
図13. SharePoint Designer 2013でSharePointワークフローを開始するアクション
図14. SharePoint Designer 2013のSharePoint 2010ワークフローのスタートアップオプション
メッセージングサービス
SharePointオブジェクトに関連するイベントに関する情報は、メッセージングサービスを介してワークフローマネージャーに送信されます。 SharePointがイベントをワークフローに送信すると、サービスバスデータベースに保存され、ワークフローマネージャーに配信されます。 彼は、それぞれのステータスに関する情報を保存し、この情報をサービスバスデータベースに保存されているメッセージと同期させる責任があります。
メッセージングサービスはパブリッシング/サブスクライブ機能を使用します。これにより、多くのワークプロセスが同じイベントをサブスクライブできます。 たとえば、SharePointリストアイテムのデータ変更を待機しているワークフローは10個あります。 このイベントが発生した場合、SharePointは1つのメッセージのみをサービスバスに送信し、このメッセージをサブスクライブしている10個のワークプロセスすべてに配信する役割を担います。 従来のSharePoint 2010ワークフローモデルでは、SharePointプラットフォームは10個すべてのイベントを処理することを余儀なくされ、ファームサーバーでのワークロードが増加します。
ワークフローマネージャーとサービスバス
リスト/ライブラリアイテムの作成、リスト/ライブラリアイテムの更新など、ワークフローの実行に関連するSharePoint Server 2013のイベントは、サービスバスを使用してワークフローマネージャーサーバーに送信されます。 Workflow Managerは、SharePoint REST APIを使用してSharePointコールバックを呼び出します。
以下の画像は、単純なSharePoint 2013ワークフローの実行中のワークフローマネージャーとサービスバス間の対話の例を示しています。
図15. SharePoint Server 2013の高レベルワークフローモデル:ユーザーへのタスクの割り当て
図16. SharePoint Server 2013の高レベルワークフローモデル:ユーザーがタスクを実行して結果を保存する
著者-リュボフ・ボルコワ