Loading
|
@IT > オープンソースの高機能アプリケーションサーバ、いよいよ日本語版が登場 |
「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を使用したモニターサービス」などを提供する。 なかでも、呼び出しフローでは、アプリケーション、コンテナ、リソース別に実行時間を監視し、グラフ表示で確認できるほか、アプリケーションサーバの各コンテナ間で実行されたメソッドの呼び出し、およびユーザーが作成したメソッドの呼び出しのスタックトレースを表示できるようになる。 「例えば、本番環境でアプリケーションを動かし始めたときに、運用者側でこのプログラムの動きが遅いと感じた場合、このツールを使うと、どの部分で負荷がかかっているのかをチェックできる。その情報を開発者側に提供することで、開発者と運用者の距離を縮め、より迅速に問題を解決できるようになる」という(寺田氏)。
また、ログ統計の監視では、SEVERE、WARNINGメッセージの出力傾向を折れ線グラフで表示できるとともに、ロガー別の出力傾向を可視化することも可能で、ロガー別に出力された分布表示などをチェックすることによって、エラーの発生源が特定しやすくなるという。
拡張性/高可用性についても優れた機能を備えており、とくに最新バージョンのGlassFish v2では、新たにインメモリ・リプリケーションを搭載している。さらに、商用版のSun Java System Application Server 9.1では、ミッションクリティカルシステム向けにHADB(High Availability Session Store)を備えている。 インメモリ・リプリケーションとHADBは、高可用性を実現するもので、ともにセッション情報などを共有する機能をもっているが、インメモリ・リプリケーションの場合はメモリ内でセッション情報を共有するため、HADBに比べてハイパフォーマンスとなっている。一方、HADBの場合は、専用のデータベース内にセッション情報を保存するため、パフォーマンスは若干落ちるが高可用性レベルは格段に高くなり、最大で99.999%の高可用性を実現可能でミッションクリティカルなシステムに向く。
いずれの場合でも、アプリケーションサーバが提供する豊富な管理機能により環境の構築が容易にでき、アクセス数の増加に応じたシステムの増強などもサービスを停止することなく実現できるという。
このように、従来のアプリケーションサーバとは比べものにならないほどの充実した機能を備えている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コミュニティサイト
提供:サン・マイクロシステムズ株式会社 企画:アイティメディア 営業局 制作:@IT編集部 掲載内容有効期限:2008年2月18日 |
|