機能
Microsoft AppFabric 1.1 for Windows Server のホスティング機能は、次の機能を提供することにより、Windows プロセス アクティブ化サービス (WAS) の .NET Framework Version 4 Windows Communication Foundation (WCF) サービスおよび Windows Workflow Foundation (WF) サービスのホスティングを強化します。
WAS でホストされる WCF サービスと WF サービスの簡素化された展開と管理
永続ワークフローの永続化の簡素化された構成
必要なデータだけをキャプチャできるカスタマイズ可能な追跡プロファイル
追跡対象データ用の専用の照会可能な記憶域
カスタム管理スクリプトを作成できる Windows PowerShell コマンドレット
ホストされるサービスのカスタマイズ可能な監視
Windows インターネット プロトコル バージョン 6 (IPv6) スタックを介した、IPv6 のサポート
サービス遅延を最小限にするアプリケーションの自動起動
ヒント
この機能には Windows Server 2008 R2 または Windows® 7 が必要です。
AppFabric キャッシュ機能は、スケーラビリティ、可用性、およびパフォーマンスの高いアプリケーションを開発するための、分散型のインメモリ キャッシュ プラットフォームを提供します。AppFabric キャッシュ機能の主要な機能は、次のとおりです。
シリアル化可能な CLR オブジェクトをキャッシュし、シンプルなキャッシュ API を通じてアクセスを提供する
数十台から数百台のコンピューターからなるエンタープライズ スケールをサポートする
ネットワーク経由でアクセスされるサービスとしての実行が構成可能である
共通キャッシュ構成をサポートする
新しいノードを追加することによる動的スケーリングをサポートする
キャッシュされたデータのコピーを独立したキャッシュ ホストに保存することにより、キャッシュされたデータの継続的な可用性をサポートする高可用性機能
自動負荷分散
Windows イベント トレーシング (ETW) や System Center などの管理および監視ツールとの統合。
ASP.NET との緊密な統合を実現し、ソース データベースに書き込むことなくキャッシュの ASP.NET セッション データをキャッシュすることが可能。また、アプリケーション データのキャッシュとしても使用可能で、Web ファーム全体でアプリケーション データをキャッシュすることが可能。
サポートされていないシナリオと構成
.NET Framework 4 では、eXtensible Application Markup Language (XAML) を使用してワークフロー サービスを定義できます。AppFabric は .NET Framework 4 ワークフロー サービスと連携して機能するよう設計されています。これには、SVC ファイルを使用するか、または新しい構成ベースのアクティブ化機能 (SVC ファイルを使用せずに Web サービスをアクティブ化できる) によってアクティブ化されるワークフロー サービスが含まれます。構成ベースのアクティブ化の詳細については、「構成ベースのアクティブ化」を参照してください。XAML を使用してワークフローをサービスとして定義する方法の詳細については、「.NET Framework 4 における WCF サービスと WF サービス、そして "Dublin"」を参照してください。
ただし、Windows プロセス アクティブ化サービス (WAS) でホストされる WCF サービスと WF サービスが提供する次のサービス アクティブ化オプションと構成オプションは、AppFabric ではサポートされません。
プリコンパイル済み Web アプリケーションの一部であるサービスはサポートされません。プリコンパイルとは、Web サイトのパフォーマンス向上を目的として ASP.NET で使用されるメカニズムです。ASP.NET コンパイラ ツールが最初の要求で Web アプリケーションのリソースを検出すると、アクティブ化で使用される共通のファイルの種類の内容 (ASPX や SVC など) がアセンブリにコンパイルされます。その後、自動生成されたテキストで置き換えられます。これにより、ファイルはその内容が不要になっても、物理的なアクティブ化エントリ ポイント (および URL) であり続けることが保証されます。AppFabric のツールは、SVC ファイルの内容を解析することで、サービス構成を検出および管理しています。SVC の内容が ASP.NET コンパイラの自動生成テキストに置き換えられた後は、AppFabric をこれらのサービスのリストと管理に使用できなくなります。前に説明したように、プリコンパイル済み ASP.NET アプリケーションの一部として XAML を使用して定義された .NET Framework 4 ワークフロー サービスは、Microsoft AppFabric 1.1 for Windows Server で引き続き動作します。詳細については、「ASP.NET Web サイトのプリコンパイル」を参照してください。
RouteTable.Routes.Add() 機能を使用してランタイムに登録およびアクティブ化されるサービスは、サポートされません。.NET Framework RouteTable クラスは、アプリケーションの URL ルートの保存に使用されます。ASP.NET アプリケーションが要求を処理するときに、アプリケーションは Routes プロパティ内のルートのコレクションを反復処理して URL 要求の形式に一致する最初のルートを検索します。詳細については、「RouteTable クラス」を参照してください。
ヒント
サービス登録に RouteTable を使用するのが、従来型の REST 形式の URL を必要とする RESTful サービスの共通パターンです。たとえば、https://server/AutoService/Car/123-345-678 です。
AppFabric のホスティング機能
AppFabric のホスティング機能は、WAS に依存して、WCF サービスと WF サービス用のホスティング環境を提供し、また IIS 管理コンソールを拡張して WAS でホストされるサービス用の管理および構成ツールを提供します。WAS でホストされる既存の WCF サービスと WF サービスがある場合、AppFabric ホスティング サービスを使用すると、これらのサービスを列挙および管理することができます。ただし、サービスが、管理された Windows サービスまたはスタンドアロン アプリケーションでホストされている場合、AppFabric のホスティング機能とこれらのサービスを併用する前に、サービスを WAS ホスティング環境に移行する必要があります。
現在、WAS 以外のホストでサービスをホストしている場合、サービスを WAS に移行する決定を行う前に、AppFabric の機能だけでなく、WAS ホスティング環境の機能も慎重に評価することをお勧めします。WCF サービスと WF サービスのホスティングのオプションについては、ホスティング サービス (https://go.microsoft.com/fwlink/?LinkId=166423) を参照してください。
アプリケーション展開
現在のアプリケーション展開の方法には、Xcopy を使用する方法や、Windows インストーラーなどのテクノロジに基づいた展開パッケージを使用する方法があります。Xcopy は、アプリケーションのアイテムを、仮想ディレクトリに対応するフォルダーから、目的のフォルダーへ移動します。展開パッケージを使用すると、証明書、アプリケーション プールと関連付けられたユーザー アカウント、レジストリ設定、データベース データなどの追加のアイテムが展開されます。既存の展開テクノロジは単一サーバー展開には適していますが、多くの場合 Xcopy は単純すぎ、一方で多くの場合 Windows インストーラー パッケージの作成は複雑すぎ、実装するには固有の開発の知識が必要なことがあります。どちらも、スケールアウトを目的としたサーバー ファームへのサービスの展開にはあまり適していません。
IIS の Web 展開ツールである MSDeploy は、コマンド ライン、IIS 管理コンソール、または Visual Studio 2010 から使用できる、シンプルなパッケージベースの展開機能を提供します。また、MSDeploy を使用すると、1 つのコンピューターと別のコンピューターを同期させることができます。
MSDeploy の詳細については、IIS7 用の Web 展開ツール (https://go.microsoft.com/fwlink/?LinkId=127069) を参照してください。
アプリケーション構成
アプリケーション管理性の主要なコンポーネントは、基本のコードを変更することなくアプリケーションのビヘイビアーに影響する構成オプションを適用する機能です。AppFabric は、ホストされるアプリケーションとサービスを構成するために、以下の機能を提供します。
簡素化されたアプリケーション構成: AppFabric のホスティング機能で使用される原則は、Web.config ファイルの構成設定のみが管理目的に使用される、というものです。ソース コードで定義されている設定は、アクセスできず、AppFabric 管理ツールによって変更することはできません。この原則は、C# のような命令型のコードと XAML のような宣言型のコードの両方に該当します。XAML の場合のようにコードそれ自体を簡単に表示できる場合であっても、設定は依然としてロックされたものとして扱われ、アクセスできません。
構成管理を単純にするため、AppFabric は、セットアップにより構成された各サーバー ノード用の既定の設定を適用します。これらの設定は、ルート Web.config ファイルに定義され、ホストされる任意のアプリケーションにより使用できます。また管理者は、サイトまたはアプリケーションの Web.config ファイルを介してサイトまたはアプリケーション固有の構成設定を適用し、ホストされるアプリケーション用のより正確な追跡または永続化動作を適用する場合があります。
IIS 管理コンソールを介して提供される WCF の構成オプション: WCF Service Configuration Editor ツール (SvcConfigEditor.exe) を使用する現在の WCF 構成は、開発者と IT プロフェッショナルの両方にとって課題となっています。特に、Service Configuration Editor を使用するには WCF サービス モデルを完全に理解する必要があるため、IT プロフェッショナルにとってさらなるオーバーヘッドとなります。
AppFabric は、WCF および WF 用の IIS マネージャーの拡張機能を使用して使い慣れた IIS 管理コンソールを拡張し、最も一般的な構成タスクを行うことにより、これを改善します。例としては、トレースの有効化、アプリケーション スロットル パラメーターの定義、および IIS マネージャーの拡張機能を使用して行うことができるすべての実行中のサービスの列挙があります。その他の構成オプションは、AppFabric 構成ウィザード、または IIS 7.0 で使用できる IIS 構成エディターを使用すると適用できます。
WF 永続化構成: 長時間実行されるビジネス プロセス用の永続ワークフローという概念をサポートするため、WF サービスは永続化して永続化ストアに格納され、メッセージの受信などの固有のイベントが発生した時点で処理を再開することができます。ただし、永続化の構成は、耐久性のある記憶域メカニズムに支えられた永続化サービスの作成を必要とする、大部分が手動によるプロセスのままとなってきました。
ワークフロー永続化の構成を単純化し、サーバー ファームの構成をサポートするため、AppFabric ホスティング サービスは、WAS 内でホストされる永続ワークフローにより利用可能な、SQL Server ベースの永続化ストアと SQL 永続化プロバイダーを提供します。また、AppFabric を使用すると、独自に選択したカスタムの永続化ストアおよびプロバイダーを使用することもできます。AppFabric では、ホストされるすべてのアプリケーションにより継承される既定の永続化の設定、または個別のアプリケーションに固有の永続化の設定のいずれかを構成することができます。
Windows PowerShell コマンドレット: IIS 管理コンソール内で構成と管理のオプションを提供すると、ホストされるアプリケーションの管理が簡単になる一方で、多くの場合、複数の手順からなる構成および管理シナリオを自動化するスクリプトを作成することが望まれます。
スクリプト ソリューションの作成をサポートするため、AppFabric のホスティング機能には Windows Powershell 用の ApplicationServer モジュールが含まれます。これは、ホストされるアプリケーションの構成と管理へのアクセスを提供するコマンドレットを含みますが、これは IIS 管理コンソールで提供されるツールと同じレベルです。
アプリケーション監視
ホストされるサービスの展開、管理、および構成を単純化するだけでなく、AppFabric ホスティング サービスは、実行時に生成される追跡情報をキャプチャし、それを監視データベースに保存することにより、アプリケーションの監視も容易にします。この情報は、いったんキャプチャされれば、IIS 管理コンソールのダッシュボード機能において、または監視データベースから直接使用できるようになります。
アプリケーションから収集される情報は、追跡プロファイルを使用してカスタマイズすることができ、アクティビティ状態 (開始、停止、およびエラー発生)、ワークフロー内部の固有の変数の内容、またはカスタム追跡レコードを使用することでアプリケーションから生成されるカスタム追跡情報などの情報をキャプチャすることができます。
アプリケーション ホスティング
AppFabric ホスティング サービスは WAS と連携して、中間層 WCF アプリケーションと WF アプリケーション用の堅牢なホスティング環境を提供します。WAS により実現される機能には以下の機能があります。
アプリケーションとワーカー プロセスのメッセージベースのアクティブ化。アプリケーションは、HTTP ネットワーク プロトコルおよび非 HTTP ネットワーク プロトコルを使用して到着する着信作業項目に応じて、動的に起動および停止します。
実行中のアプリケーションの正常性を維持するための、堅牢なアプリケーションおよびワーカー プロセスのリサイクル。
集中的なアプリケーションの構成と管理。
WAS により従来から提供されている機能に加えて、.NET Framework 4 はホストされるサービスのアクティブ化の領域において機能拡張を実現します。.NET Framework 3.5 を使用して構築されたサービスのアクティブ化には、サービスと共に展開される必要がある、独立した "サービス ファイル" (拡張子 .svc) を作成する必要があります。さらに、サービスで WF を使用する場合、追加の Extensible Application Markup Language (XAML) ファイル (拡張子 .xaml) を、サービスと共に作成および展開する必要があります。.NET Framework 4 は、独立した .svc ファイルを作成および展開することなく、WF サービスの直接アクティブ化に対応します。XAML ファイルは、関連付けられた WF アプリケーションのホストによる直接アクティブ化に対応するには、拡張子 .xamlx を必要とします。WCF アプリケーションと WF アプリケーションは両方とも、独立した .svc ファイルを必要とすることなく、Web.config ファイルから直接アクティブ化することができます。このことについての詳細および WAS ホスティング環境のその他の機能については、ホスティング (https://go.microsoft.com/fwlink/?LinkId=166403) を参照してください。
ホストされるサービスのアクティブ化が簡素化されることでサービス ファイルが必要なくなりますが、このことは、WAS により使用されるメッセージベースのアクティブ化の機構に対処しません。WAS でサービスがホストされている場合、サービスにアドレス指定されているメッセージが受信されるまで、サービス インスタンスは作成されません。これは、サービスがまず開始する時点で、メモリを割り当てる、ライブラリをロードする、オブジェクトを作成するなどにより、サービスは新しいインスタンスを初期化する必要があることを意味します。アプリケーションで時間が重要となるデータを処理する場合、個別のサービスを開始する際のこの遅延は、許容できないものになる場合があります。時間が重要となるデータを処理していない場合であっても、メッセージベースのアクティブ化には WAS アクティベーターが必要であるため、メッセージベースのアクティブ化にこのように依存していることで、サービスがデータを受け取る方法に制約が課せられます。初期状態の .NET は、以下のプロトコル用のアクティベーターを提供します。
http: IIS 7.0 と WCF 両方の HTTP アクティブ化を行います。
net.tcp: TCP ポートベースのアクティブ化を行います。
net.pipe: 名前付きパイプベースのアクティブ化を行います。
net.msmq: WCF ベースであるメッセージ キュー (MSMQ) アプリケーションと共に使用されます。
msmq.formatname: 既存の MSMQ アプリケーションとの下位互換性を実現します。
メッセージベースのアクティブ化の制限を克服するため、AppFabric ホスティング サービスは、Windows Server 2008 R2 および Windows 7 により提供される IIS の自動開始機能を利用して、アクティブ化メッセージを待つのではなく、展開されるとすぐに、WAS によりホストされるサービスを自動的に開始することができます。
AppFabric キャッシュ機能
AppFabric キャッシュ サービスは、複数のコンピューターのメモリを結合し、単一の統合されたキャッシュ ビューをアプリケーションに提供します。アプリケーションは、オブジェクトが保存された場所を考慮することなく、シリアル化可能な CLR オブジェクトを保存できます。単に必要に応じてより多くのコンピューターを追加することにより、スケーラビリティを実現できます。また、AppFabric キャッシュ サービスでは、データのコピーをクラスター間で保存できるため、障害からデータを保護できます。AppFabric キャッシュ サービスには、データベースに書き込むことなく ASP.NET セッションのオブジェクトを分散キャッシュに保存できるようにする、ASP.NET セッション プロバイダー オブジェクトが含まれています。これにより、ASP.NET アプリケーションのパフォーマンスとスケーラビリティが向上します。
2012-03-05