Windows Server AppFabric の導入

Windows Server AppFabric は、Web アプリケーションおよび中間層サービス用に機能を拡張したホスティング、管理、およびキャッシュを提供できるように Windows Server を拡張します。 AppFabric ホスティング機能は、インターネット インフォメーション サービス (IIS)、Windows プロセス アクティブ化サービス (WAS)、および .NET Framework 4 にサービス管理拡張機能を追加します。これには、ホスティング サービスおよびホスティング管理ツールが付属しており、Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) ベースのサービスの配置、構成、および管理が容易になります。 AppFabric キャッシュ機能は、配布されたメモリ内オブジェクトのキャッシュを Windows Server に追加します。これにより、高性能 .NET アプリケーション、特に ASP.NET アプリケーションの拡張が容易になります。

サービスおよびサービス指向のアーキテクチャは現在、他のユーザーが使用するサービスとして単に公開されている一部の機能から、その機能自体が多数のサービス間の複雑な調整を行うアプリケーションまで、広範な種類のアプリケーションに組み込まれています。 このサービスの世界で容易に参加および実行できるアプリケーションを構築するというニーズは、決して増加していません。 現行のアプリケーションは通常、中間層でトランザクションを管理する高度に分散されたビジネス ロジックと共に、中心部にあるデータ駆動型の従来のコンポーネントで構成されています。

中間層サービスの配置、管理、および監視は、開発者がホスティング インフラストラクチャを作成したり、アプリケーションのカスタム配置ソリューションの作成に時間を費やしたりする必要のある労働集約型の工程であることがあります。 アプリケーションを配置した後であっても、開発者は、構成ファイルを手動で修正し、アプリケーションを管理する必要がある場合があります。 AppFabric は、サービスの配置を単純化し、カスタマイズ可能な監視ソリューションを提供し、豊富な管理ツールセットを提供することにより、この負担を減らすのに役立つことがあります。これらのすべてについて、IIS 管理コンソールによって直接アクセスしたり、Windows PowerShell の AppFabric モジュールを使用してスクリプトを作成したりすることができます。

開発者には、応答性の高いスケーラブルなアプリケーションの提供も一層求められるようになってきています。 これは、中間層のサービスだけでなく、Web アプリケーション、モバイル アプリケーション、およびデスクトップ アプリケーションでも同様です。 アプリケーションへの要求が高まっているので (Web サイトが一般的になったため、他のグループも共有サービスの使用を開始する場合など)、データ アクセスにコストがかかる場合、アプリケーションの性能およびスケールに大幅な制限が生じる可能性があります。 キャッシュはデータベースの分野で確立されたソリューションですが、高性能 Web アプリケーションおよび複合サービスを提供するときの基本要素としてもますます認識されるようになってきています。 両方の場合で、AppFabric キャッシュ サービスを使用すると、データ量の多い .NET アプリケーションおよびサービスの性能およびスケーラビリティを向上させることができます。 AppFabric キャッシュ サービスによって、アプリケーション層やデータ層に関係なく柔軟にスケーリングできる (スケールアウト/スケールイン)、可用性の高い分散型のインメモリ キャッシュが提供されます。 .NET API と、ASP.NET および PowerShell とのシームレスな統合により、AppFabric キャッシング サービスを使用すると、コードの破損が最小限で、整合性のある管理環境を備えたソリューションにキャッシングの導入を確実に行えます。

以下のセクションでは、中間層サービスのホスティングおよび Web アプリケーションのスケール変更におけるこのような課題の一部について考察し、AppFabric が提供するソリューションについて説明します。

AppFabric の詳細情報については、Windows Server デベロッパー センター (https://go.microsoft.com/fwlink/?LinkId=182970) を参照してください。

ホスティング サービス

課題

WCF および WF ベースのサービスを含むアプリケーションのホスティング環境のセットアップは、複雑で時間のかかることがあります。 IIS/WAS により、このようなアプリケーションについて堅牢なホスティング環境が実現しますが、それと同時に、その機能の利点を得るには、かなりの開発努力、カスタム配置ソリューション、および手動の構成手順が必要であることがあります。 ソリューションを導入して構成すると、サービスの管理は困難になることがあります。

解決策

AppFabric ホスティング サービスを使用すると、WCF および WF ベースのサービスの運用をすぐに開始できます。 追加のホスティング機能を開発せずに、AppFabric ホスティング機能を活用できます。 ホスティング サービスは、WAS ホスティング環境の既定の構成を提供することにより、WAS のホスティング機能を拡張します。 ホスティング サービスには、ロック/再試行、自動開始、永続タイマー、コマンド キューなどのワークフロー管理サービスによって提供される機能があります。

AppFabric ホスティング管理プロバイダーには、コントロール、監視、およびクエリ機能を使用して実行中のワークフロー インスタンスをより簡単に管理できるツールがあります。 また、WAS および標準的な方法で WAS 内でホストされているアプリケーションを構成することもできます。 ホスティング管理ツールを使用すると、サービスのエンドポイントのアドレスを構成したり、自動開始のアクティブ化を管理したり、セキュリティおよび性能の設定を構成したりすることができます。

AppFabric のホスティング機能の詳細については、「ホスティングの概念」を参照してください。

AppFabric インメモリ キャッシュ プラットフォーム

課題

頻繁に使用するアプリケーションを格納するインメモリ キャッシュを使用するのは、アプリケーションの性能を向上させるための長年の方法です。 メモリに対する読み取りと書き込みは、ディスクに対する読み取りと書き込みよりも、かなり高速です。 ただし、インメモリ キャッシュのサイズは通常、アプリケーションが動作しているコンピューターで使用できるメモリ容量によって制限されるので、インメモリ キャッシュに格納されるデータは、コンピューター メモリの固有の揮発性のため、すべて失われることがあります。 メモリ キャッシュ内でオブジェクトを保存および取得するため、インメモリ キャッシュを十分に活用するアプリケーションの開発は、アプリケーション プログラミング インターフェイス (API) がないことにより、さらに制限されます。 キャッシングを使用するアプリケーションの開発は、キャッシュ管理機能がないことが障害になることもあります。

解決策

AppFabric キャッシング機能は、複数のコンピューターのメモリ容量を単一の統合キャッシュ クラスターに組み合わせることができると、.NET アプリケーションの容易かつ安価なスケール変更に役立つことがあります。 これらの機能には、キャッシング サービス、キャッシュ クライアント、キャッシュ管理ツールなどがあります。 AppFabric キャッシング サービスは高スケーラブルであるため、単一の統合メモリ キャッシュとして使用できるキャッシュ クラスターのノードとして多くのコンピューターを構成することができます。 キャッシング サービスで、独立したキャッシュ ホストにあるデータのコピーを格納することにより、キャッシュ データの連続的な利用をサポートする可用性の高い機能が実現します。 高可用性をマルチサーバー クラスターで有効にすると、キャッシュ サーバーが落ちた場合にもアプリケーションがキャッシュ データを取得することができます。

キャッシング サービスは、.NET ベース アプリケーションとインメモリ キャッシュの利用を統合するため、十分に実証されている API の包括的なセットを提供します。 さらに、キャッシュ内のセッション状態を格納するため、ASP.NET とはシームレスに統合されます。 これにより、サイトのパフォーマンスとスケールの迅速な向上のため、ASP.NET サイトにコスト効率の高いパスが提供されることがあります。 AppFabric キャッシュ管理により、インメモリ キャッシュの作成、構成、および管理のための管理ツールの完全なセットが得られます。 AppFabric のキャッシングとホスティングの機能は両方とも統合インストール パッケージに含まれています。

詳細については、「Windows Server AppFabric のキャッシュ機能」を参照してください。

ワークフローの保持

課題

Windows Workflow Foundation でステートフルな長時間サービスの運用を開始することは難しい場合があります。 永続化を設定して、ワークフローを永続的にするには、永続化ストアの作成、スキーマの作成、永続化データベースの設定を行ってから、構成する必要があることがあります。 運用環境には、呼び出された永続ワークフローのインスタンスを保持するデータベースがある場合があります。 このようなワークフローのインスタンスの一部は中断されますが、一部は実行されます。 システムで発生していることを確認するのは困難です。

解決策

AppFabric では、永続化はすぐに機能します。 AppFabric ホスティング サービスでは、.NET Framework 4 に同梱されている SQL 永続化ストアを使用し、アプリケーションで活用できる既定の永続化データベースを作成します。これにより、コンピューターの 1 つのセット間でステートフルなサービスをスケール変更することができます。 独自の選択のカスタム永続化ストアを使用することができます。 さらに、AppFabric ホスティング管理を使用すると、永続化データベースまたは長時間実行のワークフローでアクティビティを監視するのに必要なツールが提供されます。

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

サービスの監視

課題

WCF および WF ベースのアプリケーションを使用すると、サービスおよびワークフロー インスタンスで発生していることを常に確認することができません。 複数のマシンにサービスおよびワークフローがある場合、アクティブにする場所はどこですか。 いくつアクティブにしますか。 ステータスは何ですか。 エラーは発生しましたか。

解決策

AppFabric ホスティング サービスおよびホスティング管理を使用すると、WCF および WF サービスの実行についてヘルス監視およびトラブルシューティングを実行したり、それらのサービスを制御したりすることができます。 それらの操作は、IIS マネージャーの AppFabric ダッシュボード ページで行います。 AppFabric ダッシュボードで、常にシステム状態を認識しておくことができます。 データを監視すると、ワークフロー インスタンスを適切に制御するのに役立つことがあります。 また、データを生成するクエリを変更したり、適切なレベルでアプリケーションを監視する性能コストを保持しながらも、お使いのアプリケーションのヘルスを監視するのに十分なデータを収集できるレベルの監視を選択したりする柔軟性もあります。 AppFabric 監視は .NET Framework で提供される追跡およびトレース機能上に構築されます。

イベントはホスティング管理ツールによってアクセスできる監視データベースに格納されます。 追跡パーティシパントは Windows イベント トレーシング (ETW) のセッションにイベントを書き込み、AppFabric ホスティング機能によってインストールされた Event Collection Service は ETW セッションからイベントをロードするので、高性能なデータ処理が実現します。 AppFabric ホスティング機能をインストールすると、インストール プログラムにより、お使いの運用環境で使用できるように設計される構成可能な監視インフラストラクチャが設定されます。 .NET Framework 4 に同梱されている SQL 監視ストアか、ユーザーが選択したカスタム ストアを使用できます。 AppFabric を構成して、監視データベースを自動的に削除することができます。

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

管理ツール

課題

IT の専門家や開発者には、運用環境で WCF および WF ベースのサービスを処理するのに役立つ、強力で使いやすいツールが必要です。 アプリケーションを管理するには、いくつかのツールを使用し、手動で構成ファイルを編集する必要がある場合があります。 サービスのデータに対する可視性がなく、構成を制御できないことがあります。 サービス構成エディターを使用し、構成ファイルを開いて構成要素を編集するときに、複数の構成ファイルにアクセスできるため、アプリケーション構成の設定方法を決定することが難しい場合があります。

解決策

AppFabric ホスティング機能によって、サービス管理用の、IIS マネージャーの拡張機能のリッチなセットが得られます。 AppFabric ダッシュボードにより、システムのヘルスに対する可視性が得られるので、統合された構成のユーザー インターフェイスでサービス構成を制御できます。 必要に応じて、保持されているワークフロー インスタンスの再開、中断、キャンセル、または終了を実行したり、サービスの開始または停止を実行したりすることができます。 ユーザー インターフェイスは IIS マネージャーに基づいているため、Web アプリケーションと同じ管理者環境と WCF および WF ベースのサービスのツールがあります。 ツールを切り替えたり、構成ファイルを手動で編集したりするのではなく、IIS マネージャー内で多数のアプリケーション管理タスクを実行することができます。

IIS マネージャーの AppFabric 拡張機能では、サーバー上のサービスを列挙することは簡単であるため、容易にクエリを変更してデータを調整できます。 実行状態または非実行状態のワークフロー インスタンスの数を確認できます。 保持されているワークフロー インスタンスまたは追跡ワークフロー インスタンスを表示できます。

IIS マネージャーでは、1 つのダイアログ ボックスに 1 つのサービスの構成を表示できます。 そのダイアログ ボックスでは、サービスの構成と、サービスによって継承できるアプリケーション、Web サイト、またはサーバーの既定の構成設定を設定できます。 AppFabric ホスティング サービスは、.NET Framework 4 のビヘイビアーをマージする機能を利用し、サービスによって IIS 階層のすべてのレベルから構成プロパティを継承できます。 多くの構成シナリオでは、ホスティング サービスを使用すると、ファイルに直接アクセスする必要がなく、該当する Web.config ファイルで構成の設定が可能になります。

ホスティング管理ツールには、Windows PowerShell コマンドレットが付属しており、PowerShell コンソールから、または自動化された方法で構成できるスクリプトによって、アプリケーションをマージできます。 このような PowerShell モジュールには、AppFabric ホスティング サービスの ApplicationServer モジュール、AppFabric キャッシング サービスの DistributedCacheAdministration および DistributedCacheConfiguration モジュールが付属しています。

AppFabric には、AppFabric ホスティングおよびキャッシング機能の両方をインストールするセットアップ ウィザード、それらの機能を構成する構成ウィザードがあります。 また、WebPI を使用して AppFabric をインストールすることもできます。

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

サービスの開発

課題

新製品で、アプリケーションの開発方法を学び、新機能を利用したり、その製品と統合したりする必要があることがあります。

解決策

AppFabric ホスティング サービスを使用する場合、Windows プロセス アクティブ化サービス (WAS) を使用して IIS/WAS ホスティング環境でアプリケーションをホストできることを保証すること以上に、アプリケーションを作成するのに特別な要件はありません。 Visual Studio® (WCF サービス アプリケーションおよび WCF ワークフロー サービス アプリケーション) の既定のプロジェクト テンプレートは、IIS/WAS をサポートしているため、変更を必要とすることなく、AppFabric でマージされます。 現在 WAS でホストされているアプリケーションがある場合、変更せずに、AppFabric に配置することができます。

AppFabric で使用するアプリケーションの開発の詳細については、「アプリケーションを開発する」を参照してください。

サービスの配置

課題

1 つのサーバーから別のサーバーにサービスを配置したり、同一の構成を使用して複数のサーバーに 1 つのサービスを配置したりすることは困難である場合があります。

解決策

AppFabric ホスティング サービスは、Microsoft Web 配置ツール (Web 配置ツールとも呼ばれます) を利用し、ホスティング環境にサービスを配置します。 Web 配置ツールは、IIS および Visual Studio 環境の両方と統合されているので、直接 Visual Studio 内からサービスをパッケージ化して配置したり、直接 IIS マネージャーから事前にパッケージ化されているアプリケーションを配置したりすることが容易にできます。

AppFabric でのアプリケーションの展開の詳細については、「一般的な展開」および「アプリケーションを展開する」を参照してください。

ホスティング サービスおよび管理の拡張

課題

一部の事前にパッケージ化されているソリューションは、その上で構築することが困難です。

解決策

AppFabric ホスティング機能により、カスタム ソリューションを作成する拡張性が得られます。 IIS マネージャーにモジュールを追加し、AppFabric ホスティング管理コマンドレットの上部で独自の UI ツールを作成することができます。 お使いのアプリケーションのターゲット ユーザーにカスタム UI を提供できます。 独自のコマンドレットを作成するか、パイプを使用して AppFabric コマンドレットをいくつでも組み合わせることができます。 また、拡張性はホスティングサービスの監視および永続化機能でも利用できます。 カスタム監視または永続化ストアを使用できます。

AppFabric の拡張性の詳細については、「AppFabric の拡張性」を参照してください。

  2011-12-05