Geronimoコード初リリース、5月に認定テスト開始へ

ApacheのオープンソースJ2EEプロジェクトGeronimoは、静かに大きく前進している。9ヵ月に渡る開発期間を経て、Apacheは先週、Geronimoの最初のコードセットをリリースした。また、Geronimo開発チームによると、今月J2EEの自己認定テストを開始する予定で、この夏には完全準拠を目指すという。

今回のコードリリースはGeronimoマイルストーン1.0と呼ばれるもので、商用J2EEアプリケーションサーバの高コストと複雑さを懸念するJ2EEのCIOや開発者の注意を喚起するものだ。彼らへのメッセージはこうだ。「Apacheのオープンソース(しかも認定済みの)J2EEスタックは、思っていたより近づいているのかもしれない。」

今週初めて見る実際のコード

Open Enterprise Trendsは、Geronimoコミッタのひとりからじっくり話を聞き、開発者に提供されるのはGeronimoのオープンソースservletコンテナだけではなく、servletコンテナと一緒に使える、Open EJBなど4つの主要オープンソースコンポーネントも含まれることがわかった。

今週、開発者たちは、Apache Software FoundationのオープンソースJ2EEプロジェクトGeronimoの実際のコードを初めて見ることができるようになった。4つの主要コンポーネントも含め、Geronimoの第1マイルストーンのビルドのソース、バイナリ、サポートはASFのWebサイトから入手可能だ。

今週ラスベガスで開催されるTheServerSide Java Symposiumの参加者は、Geronimoの現在のダウンロードとタイムテーブルの詳しいプレゼンテーションも見ることができる。

Geronimoのこのマイルストーンリリースは、GeronimoのオープンソースJ2EE 1.4スタックなど遠い未来の夢だと思っていたJava/J2EE開発者の注意を喚起するものだ。このリリースはまた、商用J2EEアプリケーションサーバの高コストと複雑さを懸念するJ2EEのCIOや開発者にとって、オープンソースという選択が思っていたより近づいているという警鐘でもある。

実際このプロジェクトは好調に進み、ASFの関係筋によると、順調に行けばGeronimoはこの夏にはJ2EE 1.4の認定を得られそうだという。

「1〜2週間以内にJ2EE 1.4 TCKの(自己認定)テストを開始する予定です。」とASFのメンバーでGeronimoコミッタのGeir Magnusson Jr.氏はいう。「順調に行けば、8月までには(自己)認定が完了するでしょう。」現在、Geronimoプロジェクトチームには20人のコミッタと、活動中の貢献者およびコミュニティメンバー数十人で構成されている。

Magnusson氏に、認定済みのオープンソースJ2EE 1.4への道のりにおいて、まだどれくらいの課題が残っているのか聞いた。「Sunが提供するTCKに対して一連のタスクを実行し、”すべてのテストに合格”となればそれで認定されます。」とMagnusson氏は答えた。「TCKのテストに合格したらJ2EE仕様に準拠していることは間違いありません。また、Geronimoチームは実用向けに機能するものとして作業を進めています。これは学術用の試みではありません。」

Apache Geronimoの内容

さて、ではGeronimoとはどんなものなのか。ApacheのGeronimoプロジェクトには主に次の2つの側面がある。

  • 完全なJ2EE認定を受け、健全なオープンソースコミュニティに支持されているApache Softwareライセンスのサーバを配布すること
  • フルモジュール化J2EEスタックを作成し、J2EEスタックの必要な部分をどれでもJ2EEサーバプロジェクトから独立してApacheコミュニティが使用できるようにすること

Magnusson氏によると、GeronimoはオープンソースJ2EEコンテナとサービスのアーキテクチャとしてデザインされており、また、他のどのコンテナ用に作られたJ2EEコンポーネントでも実行できるようにすることを目指している、という。

では、Geronimoマイルストーン1.0は開発者にどんなものを提供するのか。かなりのものが用意されていることがわかった。

「今週リリースしたのは、認定へ向けての最初の公開マイルストーンです。」とMagnusson氏はいう。「これは、コンテナアーキテクチャ自体、つまり、J2EEスタックを構成する各種のコンポーネントをGeronimoがどのようにひとつにまとめることになるのかを見ていただくためのものです。Geronimoが操作と制御をどのようにサポートするか見てください。」

「これ(このダウンロード)はなんだか花火みたいだという気がします。」とMagnusson氏は話す。「よくラベルに”火を付けたら離れてください”と書いてありますよね。そういう感じです。私たちは、(開発者が)簡単にこれを手に入れてすぐ使えるようにしたいと思っています。すべてのコンポーネントをディストリビューションに含められます。自分のコンポーネントを用意し、それらすべてがGeronimoコンテナに含められるようにします。」

Magnusson氏は、開発者向けの「コンソールとカラーGUI」は見ることができないと注意した。が、GBean(GeronimoBean)の内部動作とアーキテクチャは詳しく見ることができる。このGBeanこそが「J2EEサーバにおける中核的な単位となるマネージドエレメントであり、コンポーネント間の相互動作の鍵なのです。」と同氏はいう。

さらに、このディストリビューションには、Geronimoコンテナとの統合例を示す4つのJ2EEコンポーネントが含まれる。

  • OpenEJB。オープンソースEJBコンテナシステム。GeronimoではOpenEJBを実行するので、開発者はOpenEJBを使って既存のEJBをGeronimoに展開し、それが動作するかのテストを実行できる。「現時点で動作するはずです。」とMagnusson氏はいう。「OpenEJBはもう長いこと存在していたのですから。」
  • MX4J。オープン管理/監視JavaテクノロジであるJMX(Java Management Extensions)のオープンソース実装。Geronimoは内部的にJMXを使用する。これもJava用オープンソースコンポーネントの展開例である。
  • ActiveMQ。CodehouseのオープンソースActiveMQを使ったJMS実装で、Geronimo GBean管理インタフェースをサポートする。このコンポーネントは「現在動作している基本的なJMSサービスを、JMS仕様のBSD派生(オープンソース)ライセンス実装のもとに」提供するとMagnusson氏はいう。現行バージョンのActiveMQは、キューとトピックを行うことができ、多くのプロトコルを使用できる。また、現行バージョンのActiveMQでは、まだパーシスタンスはサポートされていないが、これからサポートされる予定だと同氏は付け加えた。
  • Jetty。Geronimo用のオープンソースservletコンテナ。「ユーザの選択肢として、TomcatとJettyの両方をGeronimo用に使え、かつ認定されるようにしたいと思っています。」とMagnusson氏はいう。「それぞれの実装方法はわずかに異なっており、選択できるのはいいことです。このリリースではJettyが用意でき統合されたので、Jettyを含めました。」TomcatはまだGeronimo用の実装の途中だ。ただし、JettyとTomcatの両方のservletコンテナの統合は、「もっと深く掘り下げる必要があります。」とMagnusson氏はいう。「それぞれのコンテナで、全コンポーネント管理の完全制御を提供したいと思っています。」

GBeanの内容:資産活用と管理のカギ

GBeanアーキテクチャはGeronimoのパワーの中心に位置付けられ、オープンソースか商用かにかかわらず既存のJ2EE資産を開発者が操作できるようにするものだとMagnusson氏はいう。

「GBeanは、既存のものをGBeanラッパーで覆って、JSR 77(GBeanでサポートするライフサイクル要件)との結合に使用できるようにデザインされています。既存のどんなものでも、GBeanと一緒に使えるようにすることができます。」とMagnusson氏はいう。またGBeanでは、開発者が既存のほかのオープンソースJavaプロジェクトをGeronimoの軌道に乗せることができるという。

「既存のコンポーネントに関するこのような(GBean)サポートは当初からの目標でした。そのために、J2EE 1.4とJSR 77サポートの要件に準拠しようとしてきたのです。」とMagnusson氏はいう。「この点についてのGeronimo開発チームの考えは、”最初からそうしよう”ということでした。」

Magnusson氏は、GBeanについてこのように定義している。「GBeanは、Geronimoコンテナでライフサイクルを管理できるクラスまたはオブジェクトです。したがって、たとえば、あるコンテナにパーツを展開する場合、自分でそのパーツを開始して停止する必要があります。また、パーツ同士には依存関係があります。たとえば、’Bean A’が必要とするサービスを’Bean B’が提供する場合、’Bean A’は’Bean B’の準備ができているときに限り開始できます。このように、GBeanは、管理する必要のあるものをGeronimoがパッケージ化する手段であり、依存関係を表すことができます。」

まだできていないのは、J2EE 1.4が定めるXMLまたはWebサービスの深い部分の実装である。既存のオープン標準ベースのXML、WSDL、または関連技術をGeronimoに導入できるのかという問いに対し、Magnusson氏はこのように話した。「XMLまたはWebサービスをサポートするには、これらをすべて用意してGBeanで管理できるようにしなければならないので、特別な作業が必要になります。AxisなどWebサービス実装のいくつかはApache自体が所有権を持っています。」したがって、こうしたサービスのサポートも期待できる、と同氏は付け加えた。

Geronimoマイルストーン1.0でできること

「既存のJ2EEアプリケーションを(Geronimo)コンテナに展開して何か有効な動作を実行させることができる、と思ってもらうことはまだできません。」とMagnusson氏は認めた。「これ(このバージョン)は、非常に初期段階の開発リリースであり、’技術見本’リリースのようなものです。ただ、だからといってGeronimo M1は単に見るだけのものというわけでもありません。ダウンロードしてみれば、すぐに家に帰ってEJBを作って展開できるか試したくなるでしょう。」

Geronimoチームのこれまでの進捗状況から見て、Magnusson氏は、Geronimoプロジェクトは、コア開発、デモアプリケーション構築、ステートレスセッションbean作成用のサンプルスペック支援などのさまざまな分野、特にドキュメント作成において、支援を求めているという。

参加希望者は、Geronimoチームに連絡を。開発者の方はGeronimoプロジェクトサイトで参加方法に関する情報を参照のこと。また、開発者の方はApacheのJakartaサイトからMagnusson氏に直接問い合わせることもできる。

Vance McCarthy――Open Enterprise Trends編集長。この記事は発行元と著者から特別に許可を得て転載した。