アプリケーションの境界を定義する
ASP をベースにしたアプリケーションは、ASP ページと COM コンポーネントの集まりです。アプリケーションを定義する場合、Web サイトのアプリケーション開始点ディレクトリを指定するには、インターネット インフォメーション サービス スナップインを使用します。Web サイトの開始点ディレクトリの下にあるファイルやフォルダはすべて、アプリケーションの一部であるとみなされます。したがって、ディレクトリ構造を使用して、"アプリケーション境界" を定め、アプリケーションの範囲を定義することができます。1 つの Web サイトに複数のアプリケーションを配置し、それぞれのアプリケーションを異なる構成にすることが可能です。
Web アプリケーションを開発する上で、開発者が直面する最も重要な作業の 1 つに、複数の ASP ページを 1 つの Web アプリケーションにまとめる方法を決めるという作業があります。IIS では、アプリケーションの識別には "名前空間" の概念が使用されます。名前空間は、メモリの領域を、わかりやすい名前と関連付ける方法です。これにより、関連する複数のファイルを 1 つのグループとして認識できます。アプリケーションの名前空間を定義するのに仮想ディレクトリが使用されます。次の図は、この概念を示しています。
アプリケーションの境界内にあるスクリプト、および ISAPI 拡張 DLL は 独立した 1 つの単位を形成し、常に 1 つのサーバー インプロセスで実行されます。IIS 管理者はプール プロセス (既定のプロセス) として、アプリケーションを IIS と同じサーバー プロセスで実行するか、または独立プロセスでアプリケーションを実行することにより、このアプリケーションを分離することができます。後者は、特に、開発とテストに有効な手段です。
アプリケーションとコンポーネントの分離の詳細については、「プロセスの分離により開発を簡素化する」を参照してください。
シングル プロセスでのアプリケーションの実行に加えて、コンポーネントを分離プロセス、またはプール プロセスで実行することにより、これらのコンポーネントを呼び出す .asp ファイルからコンポーネントを分離することもできます。分離プロセスは、コンポーネントのデバッグに適した構成です。プール プロセスでは、膨大な量の分離プロセスの維持に必要なオーバーヘッドなしに、サーバーを保護できます。コンポーネント自身のプロセスで、これらのコンポーネントを実行するには、新しいアプリケーションを作成し、コンポーネント サービス管理ツールを使用して、このアプリケーションにコンポーネントを追加する必要があります。
アプリケーションの構成方法には、次の 5 種類が考えられます。
- .asp ファイルとコンポーネントをすべて、IIS と同じプロセスに入れる。この構成では、パフォーマンスが高速化されます。
- .asp ファイルとコンポーネントをすべて 1 つのプロセスにいれ、IIS を別のプロセスに入れる。
- .asp ファイルとコンポーネントをすべてプール プロセスに、IIS を別のプロセスに入れて、特別なアプリケーションは分離プロセスに入れる。
- .asp ファイルすべてと IIS を 1 つのプロセスに入れて、コンポーネントを別のプロセスに入れる。
- .asp ファイルすべて、コンポーネント、IIS をそれぞれ個別にコンポーネントに入れる。
プロセスの境界はメモリの異なる領域を表すので、ある境界から別の境界を呼び出すことは、IIS に余分な作業を要求することになります。プロセス境界にまたがって呼び出しを行うメカニズムは "マーシャリング" と呼ばれます。マーシャリングされた呼び出しは、シングル プロセスでの呼び出しに比べると遅くなります。したがって、プール アプリケーションおよび分離アプリケーションは、IIS プロセスを共有するアプリケーションほど高速には実行されません。