アーキテクチャ図

AppFabric は、WCF サービスと WF サービスをホストおよび管理する Windows プロセス アクティブ化サービス (WAS) と Windows Server のアプリケーション サーバーの役割が進化したものです。このため、AppFabric は .NET Framework 4 と緊密に連携し、フレームワークの一部として提供される機能を利用して、WCF サービスと WF サービスの永続化、監視、ホスティングなどの主要機能を実現します。AppFabric は、IIS 管理コンソール内の管理ツールや監視ツールを提供するインターネット インフォメーション サービス (IIS) とも統合されています。

次のアーキテクチャ図に、AppFabric の各部分、および AppFabric で使用される .NET Framework 4 と IIS のコンポーネントを示します。

アーキテクチャの概要図

このトピックでは、アーキテクチャ図に示されたテクノロジの詳細と共に、AppFabric のアーキテクチャについて説明します。

Windows プロセス アクティブ化サービスの機能強化

アーキテクチャ図には AppFabric の基盤となるテクノロジが示されています。したがって、IIS と WAS から説明します。

IIS と WAS

AppFabric の基盤は、IIS と WAS によって提供される堅牢なホスティング環境です。WAS 内でアプリケーションをホスティングすることで、サービス指向アーキテクチャ (SOA) に適した次のような機能を利用できます。

  • 受信メッセージに応じて動的にアプリケーションを起動したり停止できる、アプリケーションのメッセージベースのアクティブ化。

  • 実行中のアプリケーションの正常性を維持するための、堅牢なアプリケーションおよびワーカー プロセスのリサイクル。

  • アプリケーションの構成と管理。

  • アドレス指定と管理を目的とした、サイトへのアプリケーションの編成。アプリケーションは実行時に、ランタイム プロセス境界を定義するアプリケーション プールに関連付けられます。

ただし、豊富な機能が提供されるにもかかわらず、WCF サービスと WF サービスの展開、管理、および監視には対処されず、展開の手段、管理のガイダンス、およびカスタムの監視ソリューションを提供する責任はアプリケーション開発者が負います。また、オンデマンドのアクティブ化やプロセスのリサイクルが原因で、IIS や WAS でワークフローなど長時間実行されるプロセスをホストするのは困難です。状態の永続化とホストのアクティブ化がアプリケーションに必要な場合は、開発者が明示的に構成する必要があります。このような短所に対処するために AppFabric では、ホスティング環境の機能を構成するだけでなく、簡単にアプリケーションを展開して監視できるツールとサービスを提供します。

ランタイム サービスとコンポーネント

AppFabric では、長時間実行されるワークフローの状態の永続化ストアへの保持、コンテンツベースのルーティング、構成ベースのアクティブ化などのサービスを提供します。

ASP.NET

WAS のホスティング環境を魅力的なものにしている、アプリケーション ドメイン、ライフサイクル管理、正常性の監視、共通構成システム、動的コンパイルなどの基本機能の多くは、ASP.NET によって提供されています。また ASP.NET は、HTTP を使用してメッセージを受信する WCF サービスと WF サービスに対して、メッセージベースのアクティブ化を実現します。

WCF と WF

WCF サービスと WF サービスは、SOA アプリケーションを作成するための構成要素であり、AppFabric の中心です。WCF は、Web 上で通信する SOA アプリケーションを開発するための統一プログラミング モデルであり、他のテクノロジを使用して構築されたアプリケーションとの相互運用性などを提供します。WF は、長時間実行されるプロセスを実装するために使用できるワークフロー エンジンを提供します。

WCF と WF の詳細については、「Windows Communication Foundation」および「Windows Workflow Foundation」を参照してください。

ランタイム データベース

アプリケーションの実行に関する状態の永続化を実装したり、監視情報を取得するにあたって、最初の検討事項となるのがデータの格納メディアです。SOA アプリケーションにとって、このデータ ストアは堅牢性、安全性、スケーラビリティ、および可用性に優れていることが特に重要です。アプリケーションはファーム内の複数のサーバーで稼働するコンポーネントで構成されることもあるため、データ ストアは複数のサーバーから簡単に同時にアクセスできることも必要です。

これらの条件を満たすために、AppFabric ではすべての永続化情報と監視情報をデータ ストアに格納します。

ヒント

既定では、永続化データと監視データの両方が同じデータベースに格納されます。ただし、データを別のデータベースに分けたり、特定のアプリケーションごとに永続化データベースと監視データベースを追加作成することもできます。

AppFabric で使用されるデータベースの詳細については、「データベース管理」を参照してください。

永続化

アプリケーションのホスティングに伴う課題の 1 つは、アプリケーションがシステム障害や再起動などのイベントにも耐えられるようにすることです。これを実現するために AppFabric では永続化プロバイダーを使用します。これにより、WF サービスがその状態を永続化データベースに保存して、システム障害や再起動が発生した場合に正常なシステムで実行を再開できます。

長時間実行される WF サービスは、システム障害や再起動に対応できる耐久性を提供するだけでなく、通常の実行中に一時停止してリソースを他のアプリケーションのために解放して、永続化ワークフロー インスタンスで処理する必要があるメッセージが到着すると処理を再開することができます。また、永続的な WF インスタンス上の「実行時指定」インジケーターを監視してそのインスタンスを再開する持続的なタイマーを使用することで、指定した間隔後に WF サービスを再開することもできます。

永続化の詳細については、「永続化の概念」を参照してください。

ホスティング

AppFabric では、ServiceHost (ホスト WCF) と WorkflowServiceHost (ホスト WF) サービス ホスティング環境を IIS と WAS に統合しています。たとえば、両方のホストが appDomain の正常なシャットダウンとリサイクル、およびアプリケーションの自動開始プロセスに参加します。IIS と WAS の機能を組み合わせることで WCF アプリケーションと WF アプリケーションに堅牢なホスティング環境を提供できますが、これらの機能を利用するには、アプリケーションの展開と構成に開発者の多大な努力が必要です。AppFabric では、標準的な方法でアプリケーションを構成できる包括的なツール セットを提供しています。カスタムの展開ソリューションや手動での構成操作は必要ありません。

AppFabric で IIS と WAS のテクノロジを活用する方法の詳細については、「ホスティングの概念」を参照してください。

監視

WCF サービスと WF サービスを使用して構築されたソリューションの結び付きは緩やかで分散しているため、監視やトラブルシューティングが困難な場合があります。それぞれ個別のサービスを表示してから、監視対象イベントを手動で関連付けて、アプリケーションで何が起こっているかを総合的に判断する必要があるからです。AppFabric では、イベントがさまざまなソースから収集されて関連付けられ、実行中のプロセスの全体像を把握できます。このデータはデータベースに格納されるので、IIS 管理コンソールでホストされる監視ツールか、または Windows PowerShell 用 ApplicationServer モジュール コマンドレットを使用してデータを取得できます。

監視の詳細については、「監視の概要」を参照してください。

管理 API

管理上のさまざまなシナリオに対応するために、AppFabric ではコマンドレット形式の Windows PowerShell 用 ApplicationServer モジュール を介してすべての管理機能にアクセスできます。この実装により、いくつもの方法で管理機能を使用することができます。たとえば、Windows PowerShell コマンド ライン シェルから対話的にコマンドレットを起動したり、コマンドレットを起動するスクリプトを作成したり、カスタム アプリケーションからコマンドレットを起動したりすることが可能です。

詳細については、「管理ツール」を参照してください。

IIS マネージャー

WF サービスと WCF サービスの構成と管理を集中的に行うために、AppFabric では、WCF サービスと WF サービスの管理と監視用に豊富なツールセットを IIS マネージャーに用意しています。また、AppFabric では MSDeploy を使用して、サービスを WAS ホスティング環境に展開することもできます。MSDeploy を使用して、WCF サービスや WF サービスを含むアプリケーションを展開できます。

ヒント

IIS 管理コンソールで公開される機能はすべてが Windows PowerShell 用 ApplicationServer モジュール に基づいており、Windows PowerShell コマンドレット形式で実装されます。AppFabric ユーザー インターフェイスで実行されるタスクはすべてスクリプト化できます。

IIS マネージャー用の AppFabric 拡張機能の詳細については、「管理ツール」を参照してください。

Visual Studio

Visual Studio 2010 は、WCF サービスや WF サービスを含むアプリケーションの作成に使用できる機能豊富な開発環境を提供します。Visual Studio 2010 では、F5 キーを押すと AppFabric 内のサービスを直接テストすることができます。プロジェクトの展開パッケージを作成することもできます。このパッケージは、MSDeploy 経由で AppFabric 環境に直接インポートできます。

Visual Studio 2010 の詳細については、「Visual Studio 2010」を参照してください。AppFabric で Visual Studio 2010 を使用する方法の詳細については、次のトピックを参照してください。

関連項目

概念

アーキテクチャの概要

  2012-03-05