チームが構築した製品の1つで非常に誇りに思えるのがIIS7です。 IIS7はWebサーバースタックの*メジャー*アップデート で、大幅に新しくまた改善された拡張性、構成、管理アーキテクチャーを導入しています。いくつかの機能については以前こことここでブログに書いています。
成熟した製品上で主要な再構築を行うのは簡単ではありません。インターネット上で40%以上のWebサーバーが起動しているものに行うことは特に気後れします。最終製品になりますが素晴らしく、信じられない程柔軟性があり、伸縮自在で、強固なサーバーアーキテクチャーを提供します。それにより非常に刺激的な事を進めていけるようになります。
Windows Server 2008 や IIS 7.0のRC0ビルドを今週の初めに出荷しました。これについての詳細の確認およびRC0バージョンのダウンロードはここのMai-lanのブログ投稿から行うことができます。
IIS 7.0 拡張性(勧める理由)
IIS7.0のメジャーな変更の1つは以前のWebサーバのバージョンよりもシステムを劇的に拡張可能にするところです。この拡張性はコアのHTTP処理エンジン、および構成システム、ヘルスモニタリングシステム、管理ツールのアーキテクチャーの両方に適用されます。マネージド.NETクラスを書いて、それらのサブシステム全てをクリーンに拡張することができます。
これは顧客の視点からするとすごいことです。(システム内ですべて置換および拡張IIS7.0上で起動する新しい現代的なFTPサービスの実装を提供しています。このFTPサービスでは非常に改善された管理および構成を体験することができます。(IIS7とASP.NETのweb.configモデルと同じものを使用し、IIS7管理ツールに統合されます。)現在FTP over SSL、またUTF8 および IPv6をサポートしています。
FTPサーバによりIIS7上の同じWebサイトからFTPおよびWebコンテンツの両方をホストすることができるようになります。(既存のWebサイトにFTPバインディングを追加するだけで有効化することができます。)今では仮想ホスト名のサポートを提供しています。つまり複数のFTPサイトを同じIPアドレス上でホストすることができるということです。またビルドインのユーザアイソレーションサポートがあるため、共有ホストのシナリオに対しては完璧です。
FTPサーバの認可システムは現在プラガブルになっています。つまり、自分のユーザ名およびパスワードをログイン管理のために追加して保存することができます。一番いいのは、既存のASP.NETのメンバーシップ プロバイダ モデルを使ってログインやユーザ管理に自分の認証システムをプラグインすることができるところです。
FTP サーバの詳細についてはここ 、ダウンロードはここ (x64ここ)で参照ください。
IIS 7.0 メディアパック ビットレート スロットリング モジュール
インターネット上でサイズの大きいビデオやオーディオファイルをホストする時の問題が帯域幅のコストが高価になってしまうことです。何が一番悪いかというと、全部見られることのないビデオをユーザがダウンロードするために結局支払いが発生するということです。特に、Webサーバはデフォルトでコンテンツをできるだけ早くダウンロードするように設計されています。そのため、ユーザがサイトを訪れて、そこにある50MBビデオの再生が開始された場合、Webサーバはデフォルトでできるだけ早く50MBファイルを転送しようとします。もしユーザがビデオが半分再生された状態でブラウザを閉じた場合でも、ダウンロードが完了しているのに実際には見られることのない残った25MBのコンテンツに対して結果的に支払いが発生してしまいます。
IIS 7.0メディアパック ビットレートのスロッターはより費用効果の良い方法でビデオやオーディオを標準のWebサーバでホストできるようにします。ブラウザ(Silverlight、Flash、Windowsメディアプレーヤー、iTチューンなどのプラグインを使用した)がメディアファイルを要求した時に、IIS7は自動的にファイルのエンコーディングのビットレートを検知し、そのプレーヤーが継続的な再生のために受信する必要のある1秒あたりのバイト数を決定します。
IIS7はその後コンテンツ(デフォルトでビデオ・オーディオファイルの20秒)を十分に"バースト"して、確実にそのクライアントプレーヤーがビデオを再生できるように、そしてバッファリングが遅延しないようにします。そうすると、IIS7は自動的にファイル転送を遅らせて、エンコードされたビットレート(ビデオが400kbsでエンコードされていたらIIS7はこれの20秒間をバーストして、コンテンツの400kbsへの残りの転送を遅らせます。)と等しくします。もしユーザが再生中のビデオ上でブラウザを閉じた場合、IIS7は自動的にドロップされた接続を検知し、コンテンツをそれ以上送信しない(残りの帯域幅費用を節約する)ようにします。このモジュールは現在Silverlight、Flash、Windowsメディアプレーヤーと動作します。これを有効化するためにコードの変更は必要ありません。
IIS7のメディアパック ビットレート スロッターはVistaおよびWindows Server 2008の両方にインストールすることができます。この詳細はここをご覧ください。 ダウンロードはここ(x64ここ)から行えます。
IIS 7.0 リモートマネージャ管理ツール
IIS 7.0は非常に改善された管理ツールを伴って出荷されます。管理ツールはマネージドコード(Windowsフォームを使用して)で全体が書かれており、それはHTTPベースのWebサービス越しでWebサーバ管理を遠隔的にサポートします。(管理ツールを使用してプロキシサーバーを通じてホストされている環境でサーバを遠隔的に管理することができます。)管理ツールは標準のIIS設定、およびASP.NETのもの(例えば、ツールを使用して遠隔的にASP.NETのメンバーシップ・ロールを管理することができます。)の両方を構成することができます。
今週の初めにIIS7.0の管理ツールのスタンドアローンを出荷しました。そのツールを使用して、Windows XP、 Windows Server 2003、 Windows VistaのクライアントマシンからWindows Server 2008ベースのIIS7のWebサーバを遠隔的に管理することができます。
遠隔管理ツールの詳細とダウンロードついては ここ (x64 ここ)をご参照ください。
WIIS 5.1と IIS 6.0へのFastCGI サポート
IIS 7.0 はFastCGI をビルドインサポートされて出荷されます。Webサーバの拡張性にCGIではなくこれを使用するとパフォーマンスがよくなります。よく使用されている多くのWebフレームワーク(特定のPHPにある)ではこれを使用してWebサーバと統合しています。IIS7.0にビルドインサポートされているFastCGI に加え、今週FastCGI ISAPI拡張も出荷しており、これは既存のIIS5.1やIIS6.0Webサーバ上で動作します。
FastCGI拡張についての詳細はここをお読みください。ダウンロードは ここから行えます。
まとめ
IIS7のアーキテクチャーは拡張性があるため、今後何カ月もその上で起動する機能を継続的に改善し出荷することができます。早いうちにこれらの追加拡張のいくつかについてもっとブログに書いていきます。(その中に、Webサーバ間またWebサーバ・ファーム間の遠隔作業を含むサーバ間でバージョンのあるWebアプリケーションの展開をサポートする新しいかっこいい自動Web配備システムが含まれます。)
IIS7が使用するには非常に刺激的なWebアプリケーションサーバだと思われると思います詳細については、www.iis.netでご確認ください。今後のIIS7のWebcastはここサインアップしてください。
Hope this helps,
Scott
P.S. IIS7は現在www.microsoft.com のWebサーバを全て動かしています。 (それが好きな理由は 彼らのブログ投稿をお読みください。 )