Innovating@Sun コミュニティ ご購入について (0120-33-9096) マイ・アカウント 日本 [Change] 日本語
Sun Inner Circle for information technology leaders

GlassFish vs Tomcat 徹底比較検証
~アプリケーションのパフォーマンスと使いやすさ、敏捷性を重視する方、必見!~

GlassFish vs Tomcat 徹底比較検証

経営者がIT部門に尋ねる質問は常に単純です。

「なぜ新しいオンライン注文システムに顧客が満足していないのか?」
「新しいWebサービスの提供に8ヵ月もかかる理由は何だ?」
「財務レポート・アプリケーションが今朝クラッシュしたのはなぜなんだ?」
etc,etc...

使用しているアプリケーション・サーバについてCEOから尋ねられることは非常にまれなケースです。しかし、それこそが、先ほど挙げたような質問に関連する問題なのです。これは、開発チームが使用するアプリケーション・サーバと企業のアプリケーションのパフォーマンスや敏捷性には、直接的なつながりがあるためです。

さらに具体的な話をすると、より適切なWebコンテナ・テクノロジーを使用することで、アプリケーションの開発サイクルを短縮できるだけでなく、そのパフォーマンスも向上します。誤った選択は、現在だけでなく、将来的にも問題を引き起こす原因となります。

そのため、アプリケーションを扱う業務を担当している場合は、アプリケーション・サーバの内部構造やWebコンテナ・テクノロジーと、それらが開発チームに与える影響について、詳しく知っておく価値があります。この記事では、最も広く使用されているオープンソースのアプリケーション・サーバとして、GlassFishとTomcatを比較します。

広く使用されている両者に存在する多くの重要な相違点

GlassFishはGlassFish Communityから提供されているオープンソースのアプリケーション・サーバです。2005年にサンが発表し、開発者の間で広く普及してきました。現在普及しているバージョンは2種類あります。GlassFish v2と、新たにリリースされたGlassFish v3 Preludeです。GlassFish v2は、現在までに約9,000,000回ダウンロードされており、2009年だけでも300,000件の製品登録が行われています。GlassFish v3 Preludeでは、新機能と機能強化が提供されています。JavaやjRubyなどの動的言語によって駆動する多機能なインターネット・アプリケーションを展開する上で、優れたプラットフォームと言えます。

Tomcatアプリケーション・サーバはApacheによって発表され、開発グループにはサンとJServのデベロッパが参加していました。また、初期コードはサンが開発したものです。TomcatはサーバサイドJavaの導入当初に重要な役割を果たし、オープンソース・ライセンスで提供されていました。また、大企業でのオープンソース・ソフトウェアの普及にも貢献しています。

通常は、Tomcatで動作するアプリケーションは、GlassFishでもそのまま動作します。ただし、アプリケーションのパフォーマンスやスケーラビリティ、使いやすさ、さらにはデベロッパの生産性に影響を及ぼす重要な相違点が存在します。

このような違いを理解するためには、基盤となるWebコンテナ・テクノロジーに目を向ける必要があります。Webコンテナはアプリケーション・サーバの一部であり、サーブレットやJavaServer Pages(JSP)などのWeb層コンポーネントを管理します。

GlassFishがJava EEコンテナのコレクションであり、その1つがWebコンテナであるのに対し、Tomcatは単なるWebコンテナです。この大きな違いが、GlassFishの主な利点となっています。


GlassFishのアドバンテージ

  • 容易な移行パス:
    GlassFish v2には、Enterprise Java Beans(EJB)、Java Persistence API(JPA)、Java Message Service(JMS)などのテクノロジーをはじめとする様々な機能を利用するために、明確かつ容易な方法が用意されています。Tomcatでは、このようなテクノロジーを1つずつ個別に追加する必要があります。また、各機能を実装し、全てが機能することと連携して動作することを確認する作業は、デベロッパに委ねられています。
  • 独創的なクラスタリング及びフェイルオーバーのサポート:
    GlassFish v2では、クラスタリングと高度な高可用性機能の提供が可能です。これにより、厳格なエンタープライズ・クラスのサービス・レベル契約(SLA)にアプリケーションを対応させることができます。GlassFish v3 Preludeでも、負荷分散装置を使用したクラスタリングのサポートが可能です。ただし、クラスタリング・プロファイルは提供されていません。
  • 優れた管理/監視機能:
    GlassFish v2及びv3 Preludeは、どちらも管理コンソールとコマンド・ライン・インタフェース(CLI)を使用した一元管理をサポートしています。GlassFish v2では、Callflow Monitoringという機能が提供されています。これは、アプリケーション開発者またはサーバ管理者向けの機能で、アプリケーションが最も時間を費やしている部分を特定することができます。この機能は、GlassFish v3でも使用できるようになる予定です。 また、サードパーティ・ベンダーは、自社のソフトウェアをGlassFish Update Centerから使用できるように構成し、GlassFishでのセットアップを容易にすることができます。Tomcatでは、新しいソフトウェアを個別に設定する必要があります。Update Centerを使用することで、EJB 3.1など、最新テクノロジーのアーリーアクセス版を配布することもできます。これにより、WARへのEJBのバンドルが可能になり、アプリケーションをEARファイルとしてパッケージ化する必要がなくなります。
  • スクリプト言語のサポート:
    GlassFishでは、Ruby/JRuby、Python/Jython、Groovy、PHP、JavaScript/Phobos、Scalaなどの言語をサポートまたはサポートする予定です。

ページ先頭へ

これまでに説明した一般的な利点に加え、GlassFishには、Webコンテナ機能についてTomcatにはない特徴があります。以下はその一例です。


GlassFishのWebコンテナ機能の特長

  • アプリケーションの再展開時にセッションが保持される機能(v3 Prelude)により、Java Webアプリケーションの作成時間を短縮できます。
  • GlassFish v2及びv3 Preludeでは、仮想サーバとHTTPリスナーの動的な再構成をサポートしています。サーバの再起動は必要ありません。Tomcatでリソース・プールに変更を加えた場合、通常はアプリケーション・サーバの再起動が必要になります。
  • v2及びv3 Preludeに採用されているハイパフォーマンスで拡張性が高いGrizzly Framework(英語)によって、要求/応答のスループットが向上しています。GlassFishでは、Web層の下位レイヤーが、Grizzly Frameworkを使用して実装されています。このフレームワークはJavaで記述されており、NIO API(拡張性が高いネットワーク及びファイルI/O)を利用しています。スケーラビリティを提供するだけでなく、高度なカスタマイズが可能です。
  • GlassFish v2及びv3 Preludeでは、様々なパフォーマンスの最適化が行われています。例として挙げられるのが「フラットなvalve呼び出し」です。これはvalveアーキテクチャに加えられた改良で、各valveの呼び出し方法が簡素化されています。これによりスタックの深度が抑えられ、パフォーマンスが向上しています。GlassFish v3 Preludeでは、Tomcatスタイルのvalveをサポートすることもできます。

サンでは、広範なスケーラビリティのテストを実施し、TomcatとGlassfishのNIOコネクタを比較しました。テストではシンプルなサーブレットを使用し、コンテナで費やされる時間を最小限に抑えています。そして、各コンテナが、増加するユーザ数にどの程度対応できるかを、1秒あたりの演算数で測定しました。例えば、ユーザ数が16,000人の環境では、以下のようなベンチマークの結果が得られています。

  GLASSFISH TOMCAT
演算数/秒 6988.9 6615.3
平均応答時間 0.242 0.358
最大応答時間 1.519 3.693
90%応答時間 0.6 0.75

ページ先頭へ

詳細を把握して最適な選択を行う

アプリケーション・サーバの選択は、開発チームだけでなく、企業活動の様々な側面に影響を与えます。そのため、業務上の高度な戦略的決定として位置付けることができます。サンでは、GlassFishが、次世代型アプリケーションを開発する上で優れた選択肢であることは証明済みであると考えています。ただし、より多くの情報を集め、他の選択肢についても十分に検討することをお勧めします。その他の詳細な情報や、GlassFishとTomcatの比較については、サンが提供するホワイトペーパー(米国サイト:英語)を参照してください。

トピックス一覧 ≫

Reader Survey
この記事は参考になりましたか?
     

コメントがございましたらご記入ください


ページ先頭へ



Sun Inner Circle
業界の最新トレンドがわかる技術情報マガジンSun Inner Circleに今すぐご登録ください!
  GlassFish vs Tomcat 徹底比較検証
  今、情報システム責任者に求められていること
  クラウド・コンピューティングで変わるITの世界
  サンのファイナンス・サービスで厳しい時代を乗り切りましょう