BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Project Helios: IIS上のASP.NET OWINベースのWebホスト ランタイム

Project Helios: IIS上のASP.NET OWINベースのWebホスト ランタイム

原文(投稿日:2014/02/19)へのリンク

Microsoftは、IISの上で実行される軽量のOWINをベースにしたWebホストであるHeliosと呼ばれるプロジェクトをリリースした。

Heliosは、昨年の夏にMicrosoftによって発表された別のプロジェクトKatanaのステップに続いている。これは、インストールして、使用して、分離して管理できるよりも、いくつかの独立した小さなコンポーネントを提供することで、.NET Web開発者がASP.NET/IISモノリスを避けて、OWIN仕様を実装したWebホストで実行することができる。

ASP.NETの問題のひとつは、.NET Frameworkに含まれているため、数年かかるメジャーバージョンアップのリリースサイクルに紐付いており、特定のテストとバグフィックスのプロセスに影響を受けることである。より機敏に、反応よくWebツールを開発するために、ASP.NETチームはSystem.Web.dllに依存しない、はるかに早い開発サイクルで、迅速に修正を適用できる、いくつかのより小さなコンポーネント (ASP.NET MVC、 ASP.NET Web API) を開発した。それだけでなく開発者はカスタムOWIN上または、OWINのリファレンス実装であるKatana上にホストされたWebアプリケーションをデプロイすることができる。

Heliosは、Microsoftの本格的なWebサーバーではなく、IIS上で動作するWebランタイムである。Rick Strahl氏は以下のように説明する:

Heliosは、OWINベースのインターフェイスとコンテキスト セマンティクスをベースに提供するために、System.Webを使わず、直接IISのネイティブ・インターフェイスをフックしています。これは、既存のASP.NET実行環境とは完全に切り離されており、モジュールのパイプラインとデフォルトのASP.NETランタイム プロセスをバイパスして実行されます。… Heliosは、非常に軽量で、生のIIS上で起動するWebホストのショートサーキットされたバージョンです。IISとASP.NETは密接に紐付いていますが、IISコアはかなり軽量で、完全にネイティブコードで実行されることを覚えておいてください。ASP.NETモジュールやハンドラーがインストールされている場合、ASP.NETは相互作用のみがキックされ、それらはネイティブコードとネイティブモジュールのみの場合と比べて遅くなります。

Heliosの背景は、IISが提供している成熟していて、豊富な環境を、従来のASP.NETなしで提供しようというアイディアである。 これらのゴールは、「Webサーバーの高密度化」「Webホストの模倣よりも自己ホストの模倣」「Webアプリケーションのデプロイ摩擦の減少」を提供することであると、ASP.NETのセキュリティエンジニアであるLevi Broderick氏は言う。しかし「それらは既存のアプリケーションの100%互換を提供しようとしていません。具体的にはHeliosプロジェクトは、.aspxや.ashxエンドポイントなどのASP.NETイズムはサポートしていません」

開発については、Heliosは次の基本要件がある: Windows 8かWindows Server 2012、.NET Framework 4.5.1、Visual Studio 2012か2013。Broderick氏は、Windows 7で開発している開発者のために「この要件は将来のプレリリースで」緩和する可能性があると述べた。Heliosアプリケーションは、Windows Azureまたは、Windows Server 2012、.NET Framework 4.5.1と完全信頼を持つ任意のホスティング環境にデプロイすることができる。

パフォーマンスの面で言うと、ASP.NETの“Hello World”アプリケーションと比較して、Heliosは2~3倍以上のスループットを実現しているが、実際のアプリケーションはこれよりもはるかに複雑であるため、2つのWebソリューションの比較のベースとして採用することはできないとBroderick氏は言う。しかしメモリ消費量の面では、Heliosは、System.Webよりもよい:

絶対数では、Heliosアーキテクチャは、私たちのサンプルアプリケーションにおいて、標準のASP.NETパイプラインと比較しておよそ1 GB少なく、50,000の同時リクエストを達成しました。サンプルアプリケーションは、最小のベースラインで設計されており、重要なアプリケーションにも同様の絶対値を期待することができます。

注意: Broderick氏のコメントの通り、MicrosoftはまだHeliosにコミットしていない:

    私たちはこの作業をやめて、リリースされない可能性があります。例えば、人々が実際にそれを望んでいなかったとき、チームが解散してしまったとき、よりよい何かが現れたとき、その他私たちが想像つかない多くの理由があり得ます。チームは、これがAzure専用になることには興味がありません。

開発者はMicrosoft.Owin.Host.IIS NuGetパッケージをインストールした後で、Visual Studioから直接HeliosベースのASP.NETアプリケーションを開発することができる。

この記事に星をつける

おすすめ度
スタイル

BT