BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Tomcat 7 ベータ版公開 - Servlet 3.0 サポート,セキュリティ向上,操作性の改善

Tomcat 7 ベータ版公開 - Servlet 3.0 サポート,セキュリティ向上,操作性の改善

原文(投稿日:2010/07/09)へのリンク

Apache ソフトウェア財団 の Tomcat Web サーバが 7.0 ベータに到達した。最初のリリースからは3年以上前が過ぎている。およそ 18ヶ月 の開発期間を費やした最新リリースは,Apache ソフトウェア財団のサイトにあるプロジェクトのページ からダウンロードできる。

今回のリリースでは Servlet 3.0JSP 2.2,EL 2.2 など,新しい仕様が数多く実装されている。特に Servlet 3.0 のサポートによって,世界で最も多く使用されているこの Java Web コンテナは,Java EE 6 仕様で導入された最新のサーブレット仕様を備えることになった。Servlet 3.0 では多くの改良 (API の汎用化など) とともに,開発者の作業を容易にして,スケーラブルなアプリケーションを短期間で構築可能にする数多くの新機能が導入されている。その重要な機能のひとつが,非同期 HTTP 要求・応答の標準化サポートだ (これらの機能は Tomcat,Jetty,その他コンテナ独自の API を通じて,技術的には実現されていた)。またファイルのアップロードのサポートが明確に定義されているので,Apache プロジェクトの Common File Upload コンポーネント などのサードパーティライブラリは,その必要性を否定されることになる。

Web アプリケーションの動的コンフィギュレーションに関するサポートも定義され,多くの部分に影響を与えている。サーブレットなどの Web 層構成要素はアノテーションによる定義が可能になり,デプロイ定義ファイル WEB-INF/web.xml への登録の必要がなくなる。さらに仕様には,Servlet や Filter をプログラムから実行時登録するための API も定義されている。同じ方向性のものとしては Web フラグメント (web fragment) もある。これはサードパーティライブラリに添付された web.xml ディスクリプタを,Web アプリケーションの持つメインの web.xml に追加できるようにするものだ。Web フレームワークの .jar ファイルをアプリケーションの WEB-INF/lib フォルダに単に ドロップするだけで,自動的にコンフィギュレーションが行われる,というような使い方が想定できるだろう。

Tomcat 7 はセッション固定攻撃 (Session Fixation Attack) にも対処している。セッション固定攻撃とは,クライアントのセッションID を既知の値に明示的,強制的に設定する方法だ。さらに SSL セッションのトラッキングや,各種の機構 (JMX,Web ベース,スクリプトアクセスなど) に対応した詳細なアクセス権管理もサポートする。

新リリースはクライアントコードに組み込むための軽量 API を公開することで,コンテナ組み込みに対しても従来より柔軟に対応する。必要な .jar ファイルの数も少なくなっているため,オリジナル版 Tomcat を構築することも容易だ。

サーバの運用管理を容易にするための機能もいくつか用意されている。リクエスト/レスポンスをそれぞれのパイプラインから独立して記録する,非同期ログスレッドのサポートはそのひとつだ。さらに Tomcat 7 は,メモリリークを防止,識別,トラップするための高度なサポートも備えている。メモリリーク撲滅サポートのコアとなるのは,Tomcat 7 改良型クラスローダと JreLeakPreventionListener クラスの2つだ。また Tomcat 7 では "エイリアス (alias)" という機能が新たに登場している。Apache サーバの同名の機能に非常に近く,アプリケーションに対して,ファイルシステムなど外部のソースにあるコンテントを公開するものだ。

Tomcat 7 に最後まで見当たらないのは Java EE 6 Web プロファイルのサポートだろう。これは Web 指向アプリケーション実現に向けたJava EE 仕様のサブセットを定義するものだ。Web プロファイル および Java EE 6 仕様の詳細については "Web プロファイルを載せた Java EE 6 プラットフォームドラフトが公開 (Java EE 6 Platform Draft Published featuring the Web Profile)" を参考にしてほしい。Web プロファイルのコンセプトは,"認証" のみを目的とした後方互換性維持に要するアプリケーションサーバベンダの負担軽減だが,認証を取得しようとするサーブレットコンテナの目標でもある。実際に Simple Web Profile Application Server プロジェクトでは,ベースとしての Apache Tomcat 7 と Apache ソフトウェア財団のコンポーネントを使用して,Java EE 6 Web プロファイル準拠のサーバ構築を目指している。

この記事に星をつける

おすすめ度
スタイル

BT