2012年1月18日水曜日

Windows Server AppFabric と Workflow Foundation

ワークフローをホスティングする環境の一つに Windows Server AppFabric を利用したホスティング方法があります。実際には IIS の拡張機能的なポジションなので、IIS でのホスティングと基本は変わりありませんが、AppFabric にて提供される機能にて Workflow Foundation に関わる設定を簡易に行えるようになります。言い換えると Windows Server AppFabric で拡張される機能は「各種設定ファイル( *.config ) の設定用 UI を提供」する事と言えます。

AppFabric の導入により、ワークフローの永続化や追跡などが簡易に設定できるようになるのですが、一つ条件があります。Windows Server AppFabric にて実行を行えるワークフローはワークフローサービスのみで、通常のワークフローはホスティングできません。ここでいう、通常のワークフローとワークフローサービスの違いは
「メッセージングアクティビティを利用している」
かどうかになります。

AppFabric のインストールは非常に簡単です。ダウンロードしたインストーラーを実行すると、必要な機能の選択をするダイアログが表示されるのでそれに従うだけで済みます。このあたりは MSDN の記述を参考にするとよいでしょう。なお Workflow Foundation に関連する AppFabric の機能としては「ホスティングサービス」と「ホスティング管理」が当てはまりますので、この二つはインストールするようにしてください。

無事 Windows Server AppFabric がインストールできると IIS マネージャが拡張されます。

AppFabric1

上記スクリーンショットにて AppFabric グループが増え、右部メニューに「WCF サービスと WF サービスの管理」というカテゴリが増えているのがわかると思います。AppFabric にてホスティングするワークフローの基本設定はこの管理メニューより行います。

まずはワークフローを動作させるためにサイトを新規に作成しますが、このあたりは IIS でホスティングさせる際と同様の手順ですので省略します。サイトを作成しましたら、次にバインドの設定を行います。単純にワークフローサービスを利用するだけであれば、http や https のバインドだけでよいのですが、Windows Server AppFabric を利用する場合にはワークフローの管理を行うために名前付きパイプが利用できる必要があります。

名前付きパイプのバインドは次のように設定します。

AppFabric3_Bind3

バインドを設定後、このサイトにおける WF の構成を設定します。右側メニューにある「WCF サービスと WF サービスの管理」カテゴリにある「構成」をクリックします。表示されるダイアログは「全般」「監視」「ワークフロー永続化」「ワークフローホスト管理」「スロットル」「セキュリティ」とグループ化されています。

AppFabricWFDialog1

全般グループはこのようになります。メタデータを提供するかどうかを設定します。

AppFabricWFDialog2

監視グループはこのようになります。ここでワークフローの監視について設定を行います。ワークフローで発生したイベントやエラーをデータベースに書き込むか、ログ出力をどのように行うか、という点での設定です。ここでのイベントやエラーはある程度レベル分けされており、一部を出力するか、または全て出力するかといった具合に選択が可能です。

AppFabricWFDialog3

永続化グループはこのようになります。ワークフローの永続化を行うか、行う際にはどこに保存するかという設定を行います。普段であれば設定ファイルやコードで指定した内容そのものです。

AppFabricWFDialog4

ホスト管理はこのようになります。先程の永続化と関わるのですが、どのようなタイミングでインスタンスの保存を行うか、を指定します。なお、設定として「アンロードする」と「保有する」がありますが、もしどちらも行うように設定し、かつタイムアウトを同値に設定した場合は、アンロードが有効になりインスタンスの保持は行われません。

AppFabricWFDialog5

スロットルはこのようになります。どれだけ同時に動作させるか、といった設定です。

AppFabricWFDialog6

セキュリティはこのようになります。このあたりはワークフロー特有ではない内容ですね。

なお、ホスト管理の設定画面にて「net.pipe バインドが~」と表示されている場合は、サイトに対して名前付きパイプのバインドが有効になっていませんので、その点を確認してください。

AppFabric3_Bind0

このような形で設定を行いワークフローサービスを動作させると、その稼働状況について AppFabric ダッシュボードから確認できるようになります。

AppFabricDashboard

この画面を表示させた際に、右側メニューには「永続的な WF インスタンス」「追跡対象 WF インスタンス」「追跡対象イベント」が選択できるようになり、ワークフローサービスの動作や発生しているイベントの確認、動作中のワークフローの停止や再起動などの事が行えるようになります。

このように Windows Server AppFabric を導入すると簡易にワークフローホスティングの環境が構築できます。またサーバーを増加させるなどのスケーリングを行いやすくなるという利点もありますので、ある程度以上の環境でワークフローサービスを利用する際には必須と考えていいかも知れません。

また、AppFabric を利用するためにワークフローに手を加える必要は全くない、というのも大きな利点ではないでしょうか。セルフホスト以外でワークフローサービスを利用しているのであれば、そのまま Windows Server AppFabric を利用した動作環境へと移行できることになります。

0 件のコメント:

コメントを投稿