連載
» 2007年11月21日 00時00分 公開

第5回 柔軟性と機能性を大幅に高めたIIS 7.0(後編)Windows Server 2008の基礎知識(3/3 ページ)

[奥主洋(エバンジェリスト),マイクロソフト株式会社 ]
前のページへ 1|2|3       

ASP.NETとの統合

 IISとASP.NETの関係を考えると、IISが先にあり、ASP.NETが後から登場した。従って、IISになくてASP.NETに必要なものはASP.NET用にあらためて追加で開発されたことは間違いない。そのため、GUI面でも構造面でも辛口でいえば統一感がなく、うまくアプリケーション・プロセスをホストするIIS側との融合が図られないままASP.NETは普及していった。

 aspnet_regiis.exe(*3)って何? と最初に悩んだ人は多い。もっとも、ASP.NETを中心に使っている人にとってみればIISよりASP.NETが主役なわけで、このコマンドは結構使い勝手がよいかもしれない。しかし、前編の「新たな動作モードが加わったアーキテクチャ」でも記したように、ASPと同様にISAPIのうえで動作する従来の構造ではASP.NETはいわば釈迦(=IIS)の掌のうえなのであり、それ以上の能力を発揮することは構造上あり得ない。

*3ASP.NET IIS登録ツールのこと。アプリケーションに対応するバージョンのASP.NETを選んでIISに登録したりするのに利用する。


IIS 7.0の各モードにおけるASP.NETの構成
IIS 6.0互換のクラシック・モードでは、ASP.NETはISAPI上で動作する。一方、新しい動作モードである統合モードでは、ASP.NETの各機能がISAPIから独立していることが分かる。

 これらの事情を一変させて、IIS 7.0はASP.NETが存在することを前提にして開発された。従って、ASP.NETで若干不便だと感じていた部分がプラットフォームであるIISの改造によって大分様相が変わってきたのを上図でも見て取れるはずだ。まず実行プロセスにおける.NETのバージョン指定を見てみよう。IIS 6.0におけるASP.NETのバージョン指定はもちろんアプリケーション・プールごとに行えるが、その指定はアプリケーション・プールのプロパティ・ページに「追加」されたタブで行う。IISと.NET Frameworkをインストールした順番によっては、このタブが見つからない、という経験をした人は多いと思う。IIS 7.0では、ネイティブでアプリケーション・プール設定に含まれている。あるいはメンバーシップを使う場合にも、IIS 7.0からはIISマネージャで各種設定ができるようになっている。

IISマネージャにおけるアプリケーション・プールの設定画面
このようにIIS 7.0では、最初からアプリケーション・プールの設定に.NET Framework(ASP.NET)に関する項目が含まれている。IIS 6.0では「追加」されたタブで設定する必要があった。

 前出の図「IIS 7.0の各モードにおけるASP.NETの構成 」における2種類の動作モードのうち、IIS 7.0の新モードである統合モードでは、ASP.NETはISAPIの管理を脱して一人歩きする。その結果、IHttpHandlerやIHttpModule(*4)を使った開発がそのままIIS本体の内部フローに加わることができるようになっている。つまりIISサーバ内の処理をするモジュール/ハンドラを.NET言語で開発可能となったわけだ。しかもIISの開発チームが利用するのと同じAPIを用いて開発ができる。極論すれば、マイクロソフトが用意したモジュールをすべて利用せず、独自のモジュールだけでサーバを組み立てることも可能といえる。この点の持つ意味は大きい。無論、利点も多いが、副作用としていわゆる「使用上の注意」も生じる。

*4 IHttpHandlerはIISが特定の拡張子のリクエストをどう処理するかを記述する際に使用するインターフェイス。IHttpModuleはIISの処理フローを制御するモジュールを記述する際に使用するインターフェイス。


 その端的な例は、モジュールを組み合わせた人が十分に試験をして提供しないと、サーバの全体パフォーマンスが予想外に低くなって悩まされる可能性があることだ。IISの開発チームいわく、最もパフォーマンスに影響のある要素は、実はサーバ・モジュールの実行順だという。これはネイティブのモジュールとマネージ・モジュールが交互に実行されるとコンテキスト・スイッチが発生するためで、それをどこまで抑え込めるかがパフォーマンス上、大きな意味を持つということだ。統合モードではこの要素がいままでの設計要素に加えて重要な意味を持つため、サーバ・モジュール開発を行うことになる諸氏には必ず頭の片隅でこのことを覚えておいてほしい。

新しい役割もプラグイン

 前編の「モジュール構造の採用」で少し書いたが、IIS 7.0における今後の追加機能の開発がどのように行われるのか、最後に触れておこう。Windows Server 2003から実はこのような発想があるのだが、Windows Server 2008やWindows Vista向けの機能拡張もマイクロソフトのサイトからダウンロード提供されるだろう。Windows Server 2003の場合にはFeature Packという名称でWindows SharePoint Servicesなどが最初に提供され、その後Windows Server 2003 R2で製品CDに組み入れられたが、今後も同じ形式だと思われる。ただし、IISの場合にはマイクロソフトのダウンロード・センターからだけではなく、コミュニティ・サイトであるIIS.netからも、いろいろと提供されることになる。

 現時点ですでにこのような形態で提供されている機能としては、Windows Mediaサービス、FTP7、FrontPage 2002 Server Extension、IIS7 Media Packなどがある。今後WebDAVもこのラインアップに並ぶ予定である。Windows Server 2008ではダウンロードしたMSUファイルを実行することで役割がインストールされ、その後、役割の追加はサーバ・マネージャというツールで新しいサービスを構成するので、若干Windows Server 2003のFeature Pack群とは感覚が違うかもしれない。

 FTPについてはFTPS(通信データを暗号化できるFTP)に対応したFTP7が提供されるが、実はIIS 7.0にはもともとFTP6つまりIIS 6.0相当のFTP機能も付属している点には注意したい。RC0時点でFTP7はあくまでもダウンロード提供であり、その後Windows Server 2008の製品版あるいはその後のどこかのビルドで取り込まれる予定だ。

まとめ

 前後編にわたっていろいろな観点で見てきたとおり、IIS 7.0はかなり大きな変更点を持つビルドといえる。しかし、セキュリティとともに互換性にはIISの開発部門もかなりの時間をかけて取り組んでおり、クラシック・モードの対応、およびIIS 6.0互換の機能は充実している。また、運用面における改善点は目覚ましいものがある。構成ファイルの進化、共有構成の考え方、診断機能の強化など詳細に踏み込めばまだまだあるだろう。

 IISは、単なるWebサーバではなく、マイクロソフトの重要なアプリケーション・プラットフォームである。IIS 7.0では、この流れがいっそう強化された。具体的にいえば、WCF(Windows Communication Foundation)のホストとして動作すること、IIS7 Media PackやFTP7による多機能なWebサイトの提供が役割として拡充されたことなどだ。

 IIS 7.0により、Windows Serverは、アプリケーション・プラットフォームとしてさらに大きく進化したといってよいだろう。


「  Windows Server 2008の基礎知識 ―― 新サーバOSで何が変わるのか? ―― 」のインデックス

  Windows Server 2008の基礎知識 ―― 新サーバOSで何が変わるのか? ―― 

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。