本連載で何度かとりあげているが,今回も Geronimo の話題だ。少し前になるが今年の6月に Geronimo バージョン1.1がリリースされた。このバージョンでは,多くのバグフィックス以外に2つの大きな注目点がある。一つはプラグイン機構のサポート,もう一つは Little-G とよばれる最小構成版 Geronimo の配布だ。まずは,プラグイン機構についてふれてみたい。
モジュールやアプリケーションをダウンロードし,再起動せずに追加できる
以前紹介したときに,Geronimoは小さなカーネル部とJ2EEサーバーの様々な機能を提供する多くのモジュールから構成されているとお話しした。このアーキテクチャは現在でも変わっていない。
今回追加されたプラグイン機能は,このモジュールやアプリケーション自体をプラグインという概念で動的に追加できるようにするものだ。プラグインの追加は動的に実施可能であり,再起動も必要としない。
バージョン1.0でも,アプリケーションの追加はデプロイというかたちで,Geronimoに追加することができたが,それは管理画面かデプロイ・ツールを用いてのみ行えた。これはアプリケーション・サーバーであれば大抵はサポートしている機能だ。
バージョン1.1で追加されたプラグイン機能は,これを一歩進めたもので,Geronimoを構成するモジュールもプラグインとして動的に追加することが可能となっているのだ。しかも,追加する対象のリソース(モジュールやアプリケーション)はネットワークで配信されているものでも可能となっている。すなわち,ネットワーク上で公開されている プラグインの URL を Geronimo に指定することでインストールを完了させることができるのだ。
この機能が,本当にアプリケーション・サーバーに必要な機能か?と考えると若干の疑問を抱く読者もおられるだろう。筆者も当初は同じ疑念を抱いた一人だ。しかし,様々な機能をモジュールとして実現しているということを考えると,モジュールの追加や変更が簡単に行えることで,バージョンアップや機能強化が簡単に行えるようになる,という利点はあるだろう。このあたりは,本稿の後半で操作イメージを紹介する。
Geronimo の最小構成版「Little-G」
もう一つの注目点である Little-G だが,これは Geronimo の最小構成版のディストリビューションだ。フル機能のGeronimo(本稿ではこちらの Geronimoと呼ぶ)からは大幅に機能削減がなされており,Webコンテナ+α と言っても過言ではない。Little-Gにも Geronimo 同様に Tomcat 版と Jetty 版が用意されており,Webコンテナを選択することができる。
Geronimoから削除されている機能,すなわち Little-G に組み込まれていない機能は以下のとおりだ。
- Webサービス関連機能
- EJBコンテナ
- MQ
- Webコンソール
逆に言えば,Little-Gには Webコンテナ,J2EEセキュリティなどの最低限の機能は備わっており,EJBを用いないWebアプリケーションを実行するのであれば,十分な構成といえるだろう。
ただし,管理コンソールすら用意されていないため,すべての管理をコマンドラインツールから行う必要があり,本当の意味での最小構成と言えるだろう。利用方法としては,必要な機能を前述のプラグイン機能を使って追加してゆくというイメージだろう。このようなシーンでは前項で紹介した簡単にモジュールを追加できるプラグイン機能は絶大な機能を発揮するだろう。
そこで今回,筆者は Little-G にプラグインを追加してみた。