The Apache Software Foundationは,Apacheを始めとする数々の高品質なオープンソース・ソフトウエアを世に送り出し続けている団体である。Jakarta Projectはその中でJavaソフトウエアを開発しているプロジェクトだ。このコラムでは,Jakarta Projectを中心に,The Apache Software Foundationの最新状況をレポートする。

Apacheの酋長となるJ2EE APサーバー「Geronimo」

 Apacheの語源はご存知の通り,米国の先住民のApache族に由来する。Apache族は侵略者である白人からの圧迫に抵抗し続け,その戦いは数多く映画化され一躍有名となったが,その中心にいたのが酋長のGeronimo(ジェロニモ)である。そう,Apache族はGeronimoなくしては語れないのである。

 一方Apache Software Foundationは,TomcatApacheStrutsTaglibsなどJ2EEに関連する多くのプロダクトを開発しているが,J2EEの個別のテクノロジを実装しているに留まっている。これらを束ねJ2EEの中心となるプロダクト,すなわちApache族における酋長ともいえるJ2EE Application Server(APサーバー)は,これまで存在しなかった。

 Enterprise JavaBeans(EJB)は,分散システム環境でトランザクション処理とDBアクセスを自動化する技術であり,多くの商用2EE対応APサーバーがサポートしているが,ApacheのプロダクトでEJBをサポートしているものはなかった。

 しかし今年(2003年),ついにJ2EE Application Serverプロジェクトが開始された。その名もApache Geronimoプロジェクトである。2003年8月5日,その発足がThe Apache Software Foundationより正式にアナウンスされた。

J2EEの基準となるAPサーバーになるか

 現在,Apache以外に目を向けても,OpenEJBJBoss以外に際立ったフリーのプロダクトは存在していない。このような状況のなか,多くのJ2EE利用者(開発者)は J2EE Application Serverを必要とした場合には,ほとんどの場合,決して安くない商用プロダクトを購入せざるを得なかった。

 そこで,Geir Magnusson Jr.とJames StrachanそしてRichard Monson-Haefelの3氏は,Apache Software FoundationにJ2EE Application Serverの開発を提案した。この提案は採択され,Apache Geronimoプロジェクトが誕生したのである。

 このプロジェクトは,オープンソースのJ2EE Application Serverを提供するという意味以上に,J2EEの世界に多くの恩恵を世にもたらすと思われる。なぜなら,現在の多くのJ2EE Application Server製品は,各ベンダが自社製品に付加価値を付けるためになんらかの機能追加や拡張を行った製品が多く,J2EE仕様にニュートラルな製品は非常に少ない。この事は,同じJ2EE仕様に則ったアプリケーションが,ともすると他のJ2EE Application Serverでは動作しないということにもなりかねない。

 Geronimoは,J2EE仕様を忠実に実装する予定であり,将来,サーブレット・コンテナにおけるTomcatのように,J2EE仕様のリファレンス・インプリメンテーション(基準となる実装)になるかもしれない。「Geronimoで開発を行い,運用はベンダーの製品を使う」などという事も可能となるのではないだろうか。

 また,Apache Lisenceに基づきフリーで配布されるという事は,今までApplication Serverが高価なために,採用を見送っていたような比較的小規模なアプリケーションでもEJBを利用するケースが増え,J2EEの利用がさらに広まる事も期待される。

 しかし,J2EE仕様は複雑且つ多岐に渡り,そのすべてを実装するのは容易ではない。また,J2EE仕様は刻一刻と進化し続け拡大を続けており,Geronimoの名に恥じない性能と機能を有したプロダクトがリリースされるまでの道のりが,困難なものになる事は容易に想像できる。このプロジェクトが成功するかどうかは,どれだけの協力者と賛同者が得られるかにかかっている。途中解散や中止とならないよう,心から願っている。

既存のサーブレット・コンテナと連携

 Geronimo について,もう少し詳しく紹介しよう。とはいえ,まだプロジェクトは始まったばかりであり,動作をさせて検証するといった状況ではない。ソースコードですらすべて揃っている訳ではない。そこで,現在予定されている構想について紹介する。

 Apache GeronimoはJ2EE仕様と互換性をもつJ2EE Application Serverである。よって,その内部には当然サーブレット・コンテナ(Webコンテナ),EJBコンテナが備えられる予定である。

 ここで一つ疑問がわく。そう,ApacheのTomcatとの関係はどうなってしまうのだろう。TomcatはGeronimoの一部になってしまうのだろうか?それとも新たにサーブレット・コンテナを作るのだろうか?この疑問に対する答えは「サーブレット・コンテナへのコネクタを用意する」という方向で検討がなされているようだ。要するにサーブレット・コンテナの機能は既存のプロダクトを利用し,それぞれのコンテナへのコネクタを用意するという方向で作成し,重複する開発を抑えるようである。

 このスタンスは,多岐にわたる膨大なJ2EE仕様を実装する必要のあるJ2EE Application Serverの開発においては,有用かつ効果的なスタンスと言えよう。サーブレット・コンテナ以外のテクノロジに関しても,現存するオープンソースプロダクトを積極的に利用する方向で検討しているようだ。現在利用が予定されているプロダクトを下記に示す。

MX4J JMX実装
Tomcatまたは Jettyサーブレット・コンテナ実装
Axis Webサービス
James メール
OJB JDO
commons 機能ライブラリ
OpenJms JMS
Tyrex JTA
Xerces XML parsing

 これら以外にも多くのプロダクトが利用されると思われる。まさに,オープンソース・プロダクトの集合となり,それらの取りまとめとしてGeronimoが存在するという構図となる。

図1
 また,実際の開発に携わるコミッタと呼ばれるメンバーも既に決まり始めている。その中にはJBossやOpenEJBの開発に携わったメンバーも名を連ねており,彼らのノウハウが生かされたものになるだろう(図1[拡大表示])。

 オープンソースのJ2EE Application Serverには,前述のJBossOpenEJB以外にも JOnASEnhydraが既に存在している。今あえて,Apache プロジェクトが J2EE Application Serverを作ることに,どのようなメリットがあるのだろうか。

 複数のオープンソースJ2EE Application Server が存在することで,それぞれが切磋琢磨してお互いが良いものになってゆくというメリットがあるだろう。また,利用者も選択肢が広がるというメリットも考えられる。同様のことがプロジェクトの提案に記載されている。

 また,なぜ今までApacheプロジェクトに存在しなかった,J2EE Application Server を作ることになったのだろうか。J2EE仕様も1.4βがリリースされ,EJBも登場当初よりもだいぶ洗練され利用しやすいものになってきた。また,J2EE自体も安心して利用できるテクノロジとして浸透し,幅広い案件で利用されるようになった。そうなると気軽に入手でき,信頼性のあるJ2EE Application Serverの要求が強まってきたのではないだろうか。このような要求に答えるにはASFが開発し,The Apache Software Licenseにて配布することに意義があるのではないだろうか。

 多くの期待とともに始動したGeronimoプロジェクトであるが,本格的に利用できるようになるのは,当分先であろう。多くのApacheプロダクトの集大成ともいえるこのプロダクトが,Apache族のジェロニモ酋長のようにApache Software Foundationの偉大なる存在となるか,将来が楽しみである。

黒住幸光(Kurozumi Yukimitsu)


The Apache Foundationアナウンス一覧(2003年8月~9月12日)


avalon-cornerstone 1.0 componentsリリース(2003年9月7日)

Jakarta Turbine 2.3リリース(2003年9月4日)

avalon-cornerstone 1.0 componentsリリース(2003年9月3日)

Turbine-2.3-RC2リリース(2003年8月26日)

The Apache Newsletter 第1号発行(2003年8月15日)

Apache Ant 1.5.4リリース(2003年8月13日)

Apache Geronimo Project発表(2003年8月5日)

■著者紹介  黒住幸光(くろずみ ゆきみつ)氏
株式会社アークシステム シニアコンサルタント。1989年よりスーパーコンピュータ向け言語処理環境の研究に従事。1995年,生まれて間もないJavaと出会い,Javaに専念するため転職。現在,株式会社アークシステムにてオープンソース・ソフトウエアを用いたWWWシステムの構築,コンサルティングを行うかたわら,雑誌への執筆,StrutsユーザーMLの管理,Ja-Jakartaプロジェクト Turbine翻訳の取りまとめなど幅広く活動中。メール・アドレスは,yukimi@arksystems.co.jp