アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 @IT > オープンソースの高機能アプリケーションサーバ、いよいよ日本語版が登場
 
@IT Special

 

PR

オープンソースの高機能アプリケーションサーバ、
いよいよ日本語版が登場


 2007年10月、サン・マイクロシステムズが提供するJava EE 5準拠のオープンソース・アプリケーションサーバ「GlassFish v2」に待望のマルチリンガル版が登場した。これにともない、日本語版のコミュニティもオープン、日本市場におけるGlassFishの普及促進に向けた活動がいよいよ本格的にスタートしている。

    Tomcatとは一線を画す圧倒的な製品力

 「GlassFish」とは、“透明な魚”を意味し、その名の通り、透明性のあるアプリケーションサーバの開発をコンセプトに、オープンソースのコミュニティ上で 2005年6月に立ち上がったプロジェクトだ。サン・マイクロシステムズ社内にクローズされた情報は一切なく、スケジュール策定からアーキテクチャ設計、コード開発、バグ修正、ドキュメント作成まで、すべてがコミュニティ上で実施されているという。

 もちろんGlassFishの利用はすべて無料で、サポートも基本的にコミュニティ上で行われることになる。ただ、エンタープライズ向けに導入するには、パッチの提供も含めたきめ細かいサポートが必須。そのため、同社では、GlassFishの内容はそのままにインストーラを付属した商用版として「Sun Java System Application Server」を提供。こちらも商用環境への導入が無料で可能だが、ライセンスの購入により商用サポートを受けることも可能となっている。

サン・マイクロシステムズ ソフトウェア・インフラストラクチャー・ソリューション本部 ソリューションアーキテクトの寺田佳央氏

 「オープンソースのアプリケーションサーバとして知られるApache Tomcat、Apache Geronimoを利用しているユーザーの不満をすべて解消できるのがGlassFish v2。Tomcatなどと同様に、オープンソースで、無料で利用できるにもかかわらず、エンタープライズ環境でも運用できる充実した機能を備えており、いままでのアプリケーションサーバとは一線を画する製品に仕上がっている。Tomcat、Geronimoのユーザーは、すぐにでもGlassFishのコミュニティに参加して、どれだけの違いがあるのか、実際に使ってみて欲しい」と自信を見せるのは、サン・マイクロシステムズ ソフトウェア・インフラストラクチャー・ソリューション本部 ソリューションアーキテクトの寺田佳央氏。

 その自信の裏側には、従来のアプリケーションサーバを上回るGlassFish v2の圧倒的な製品力がある。「基本的な処理性能だけでも、Sun Fire T2000、Solaris10上におけるSPECjAppServer2004のベンチマーク測定で、883.66 JOPSという業界最高水準のパフォーマンスを実現している。この数値は、他社のアプリケーションサーバに比べて1.2〜1.6倍のハイパフォーマンスになる」(寺田氏)という。

    開発者を支援する簡単ツールを提供

 具体的なGlassFish v2の機能としては、大きく開発者向けと運用者向けの機能に分かれる。

 まず、開発者向けの基本機能として、NetBeans 5.5.1、6.0、Eclipse、MyEclipseといった統合開発環境と連携が可能。また、OracleからGlassFishコミュニティに寄贈されたO/RマッピングフレームワークのTopLinkを、JPA(Java Persistence API)のリファレンス実装として統合している。「これにより、Java EE 5の“かんたん開発”を実現できる。例えば、NetBeansを使用することで、慣れれば10分以内で、既存のデータベースに接続して、データを参照、追加、変更、削除できるプログラムをコーディングレスで作成することが可能になる」(寺田氏)という。

 また、クライアントマシン側で実行するリッチクライアント上でJava EEのリソースを簡単に呼び出すことのできるApplication Client Container(ACC)の技術とJava Web Startの技術を連携できる機能を備えているのもGlassFish v2の大きな特徴だ。Java Web Startは、ワンクリックで、クライアントアプリケーションの自動ダウンロード、自動アップデートを実現するツール。一方、ACCは、クライアントで稼働する軽量のJava EEコンテナで、クライアントアプリケーションからJava EEが提供するEJB、JMSなどのエンタープライズのリソースを直接呼び出すことができるというもの。

 それぞれ、もともとあった技術だが組み合わせて使われた例はほとんどなく、GlassFish v2ではこの2つを連携させることで、バックエンドのエンタープライズリソースと連携できるリッチクライアントアプリケーションを簡単に配布できる仕組みを実現した。具体的には、ブラウザ側からJava Web Startのプログラムへのリンクをクリックすると、サーバ側から必要なモジュールを自動的にダウンロード、インストールして起動される。起動されたリッチクライアントのアプリケーションは直接サーバのリソースにアクセスして、効率的に業務を行えるようになる。

 「従来までのACCもしくはリッチクライアントは、更新する度に各クライアントに最新版を配布する必要があり、大きな労力と時間を費やしていたが、これならばクライアントのアプリケーションをサーバ側に配備するだけでよくなり、更新時の負荷も大幅に軽減することができる」と寺田氏は説明する。

 このほか、最新のWeb2.0技術に対応しており、JRuby on Rails、Ajax、jMaki、Phobos、Jersey(RESTful Webサービス)、Cometといった先進の実行環境をサポートしている。

    運用面も強力サポート、高可用性を追求

 運用者向けの機能としては、Web上から軽快に操作できる日本語化された管理画面を用意するとともに、コマンドラインから管理画面と同等の管理ができる機能を提供し、コンソールしか使用できない環境にも対応する。また、JConsoleを使うことで、実行時のメモリの使用状況などを、アプリケーションサーバを動かしながら確認することが可能となっている。

 さらに、運用者の問題解決をサポートするツールとして、「呼び出しフロー」「ログ統計の監視」「診断サービス」「JMXを使用したモニターサービス」などを提供する。

 なかでも、呼び出しフローでは、アプリケーション、コンテナ、リソース別に実行時間を監視し、グラフ表示で確認できるほか、アプリケーションサーバの各コンテナ間で実行されたメソッドの呼び出し、およびユーザーが作成したメソッドの呼び出しのスタックトレースを表示できるようになる。

 「例えば、本番環境でアプリケーションを動かし始めたときに、運用者側でこのプログラムの動きが遅いと感じた場合、このツールを使うと、どの部分で負荷がかかっているのかをチェックできる。その情報を開発者側に提供することで、開発者と運用者の距離を縮め、より迅速に問題を解決できるようになる」という(寺田氏)。

GlassFishに配備したアプリケーションの監視ツール。稼働中のシステムに対して設定可能、設定有効時に監視が開始。上は各コンテナ上での実行時間を監視したもの。下はユーザーが作成したメソッドの呼び出しのスタックトレース (クリックすると拡大)

 また、ログ統計の監視では、SEVERE、WARNINGメッセージの出力傾向を折れ線グラフで表示できるとともに、ロガー別の出力傾向を可視化することも可能で、ロガー別に出力された分布表示などをチェックすることによって、エラーの発生源が特定しやすくなるという。

ログ統計の監視。ログの出力傾向を時系列で折れ線グラフとして表示(上)。エラー発生源の区別、ロガー別に出力された分布表示(下) (クリックすると拡大)

 拡張性/高可用性についても優れた機能を備えており、とくに最新バージョンのGlassFish v2では、新たにインメモリ・リプリケーションを搭載している。さらに、商用版のSun Java System Application Server 9.1では、ミッションクリティカルシステム向けにHADB(High Availability Session Store)を備えている。

 インメモリ・リプリケーションとHADBは、高可用性を実現するもので、ともにセッション情報などを共有する機能をもっているが、インメモリ・リプリケーションの場合はメモリ内でセッション情報を共有するため、HADBに比べてハイパフォーマンスとなっている。一方、HADBの場合は、専用のデータベース内にセッション情報を保存するため、パフォーマンスは若干落ちるが高可用性レベルは格段に高くなり、最大で99.999%の高可用性を実現可能でミッションクリティカルなシステムに向く。

セッションデータのリプリケーション方式の違い (インメモリ・リプリケーションとHADB)

 いずれの場合でも、アプリケーションサーバが提供する豊富な管理機能により環境の構築が容易にでき、アクセス数の増加に応じたシステムの増強などもサービスを停止することなく実現できるという。

    コミュニティのサブプロジェクトにも注目

 このように、従来のアプリケーションサーバとは比べものにならないほどの充実した機能を備えているGlassFish v2だが、その進化がとどまることはない。早くもGlassFishの次期バージョンとなるv3の開発に着手することがコミュニティ上で決定。2008年4月にテクニカルプレビュー版2をリリース、2009年4月には製品版が投入される予定だ。GlassFish v3では、Java EE 6に準拠し、100KB以下のモジュール化されたカーネル「HK2」を備え、必要なモジュールを選択して稼働させることができるようになる。非常に小さなカーネルとなるため極端な言い方をすると携帯電話上でもアプリケーションサーバを動かすことができるようになるという。

 また、コミュニティ上においてGlassFishの開発を進める中で、アプリケーションサーバから派生したサブプロジェクトも数多く生まれてきているという。サブプロジェクトの生成物は、すべてオープンソースによって開発され、個別利用が可能となっている。その代表的なものが、HTTPコネクタ「Grizzly」、汎用クラスタフレームワーク「Shoal」、次世代Web UI開発「Woodstock」、次世代簡易Ajaxフレームワーク「jMaki」など。

 このなかでもとくに注目されているのがGrizzly。GrizzlyはJavaのNew I/Oを使用して実装されており、GlassFishの中ではHTTPのハンドリングを全て行い、アプリケーションサーバの各コンテナに処理を転送する役割を持つ。またGrizzlyは単体でHTTP以外にもTCP、UDPなどといったプロトコルもサポートするハイパフォーマンスのネットワークサーバエンジンである。さらに、Grizzlyは最新のWeb2.0技術であるCometの技術もサポートしている。

 「Cometは、HTTPクライアントとサーバを常に接続状態にして、サーバ側からのイベント駆動でコンテンツをプッシュ配信する技術。これによって、Web上での真の双方向通信を実現するのだが、サーバに何千人、何万人と接続してきた場合、サーバ側がパンクする危険性がある(C10K問題)。しかし、Grizzlyのフレームワーク上でCometを動かせば、非同期でリクエストを処理し、また個々のコネクションをスレッドで処理するため、そうした問題は発生しにくくなり、非常にハイパフォーマンスなサービスを提供できる」(寺田氏)という。

 これらのサブプロジェクトは、すべて米国のコミュニティから生まれたもの。「コミュニティ内のGlassFishに関する情報量は、当社の社員でも驚くほど充実している。日本版のコミュニティはまだスタートしたばかりだが、早く情報量を増やして、ユーザーと一緒に国内でもGlassFishを盛り上げていきたい」と寺田氏。将来的には、日本のコミュニティから数多くのサブプロジェクトが生まれ、世界に提供されていくことに期待を寄せている。

[参考情報]

日本語GlassFishコミュニティサイト
◎ 日本語ディスカッションメーリングリスト (discuss_ja@glassfish.dev.java.net)
SPECjAppServer2004によるベンチマーク結果
寺田佳央
大学院でJavaのソフトウェア技術に関する研究を行った後、入社した会社でJavaアプリケーションの案件に従事。2001年にサンに入社した後はサポート・エンジニアとしてSolaris OS、Sun Cluster、Java VMなどのトラブルシューティングを行う。2004 年、現在所属するソフトウェア・ビジネス統括本部へ異動し、Web層の製品を担当するソリューション・アーキテクトとしてプリセールス活動や各種セミナー、イベントなどでの講演などを行う。また、SunのJava Evangelistグループの主要メンバーとして、GlassFishセミナーなどの講師を務めている。
ブログ→http://blogs.sun.com/yosshi/

ホワイトペーパー
 サン・マイクロシステムズは、2005年のJavaOneで、SunのアプリケーションサーバとJava EEリファレンス実装をオープンソース化するためのProject GlassFishを発表。これは、すべてのJavaプラットフォームをオープンソース化する最初のステップであったが、Java EE 5の普及を加速するとともに、オープンソースコミュニティで利用可能なアプリケーションサーバの選択肢に、エンタープライズ品質のものを加えることになった。そして、さらにはより優れた製品を生み出す過程で、アプリケーションサーバを開発、テスト、公開、および拡張していく手法にも変化をもたらした。
 GlassFish コミュニティはすでにバージョン2をリリースしており、現在はバージョン3の開発が進んでいる。本ホワイトペーパーでは、GlassFishコミュニティおよびGlassFishアプリケーションサーバの概要をあらゆる側面から解説する。

提供:サン・マイクロシステムズ株式会社
企画:アイティメディア 営業局
制作:@IT編集部
掲載内容有効期限:2008年2月18日
 
ホワイトペーパー
GlassFishコミュニティ/
GlassFishアプリケーションサーバの概要

オープンソースアプリケーションサーバを提供するProject GlassFish。本ホワイトペーパーは、それらの製品およびコミュニティの概要と特徴的機能をあまねく紹介し、コミュニティへの参加方法や、将来の方向性についても触れていく。

関連リンク
サン・マイクロシステムズ株式会社
日本語GlassFishコミュニティサイト
SPECjAppServer2004のベンチマーク結果
Sun Java System

関連記事
シングル・サインオンでは不足、サンとNRIのID管理とは (@IT NewsInsight)
サンのソフトウェア戦略第2幕は、勝利への第1歩 (@IT NewsInsight)
Java EE 5、プログラミングの簡略化を目指して (@IT NewsInsight)
マクニーリが語った“本当のCIO”の姿とは (@IT NewsInsight)


 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ