EJB(Enterprise JavaBeans)3.0の概要が公表された。従来のEJBへの批判を取り込み,「ビジネス・ロジックの部品化」や「データ・アクセスの隠ぺい」というEJB本来の役割をよりシンプルなプログラミングで実現できるように仕様を大幅に変更する。今までEJBの使用を避けていた開発者にとっても注目すべき内容となりそうだ。

 EJB3.0の概要は,5月6~8日に米国で開催された開発者会議「TheServerSide Symposium」で,EJB3.0のスペック・リードであるLinda DeMichiel氏(Sun Microsystems)が発表した(TheServerSide.com掲載記事)。2003年6月のJavaOne03の時点で,すでにEJB3.0の方向性がEoD(開発の容易さ)を重視してよりシンプルになることは表明されていたが,この日発表された内容はJ2EE開発者の間で大きな反響を呼んだ。従来のEJB仕様への批判を取り込んだ形となっているからだ。

 注目されるのはPOJO(Plain Old Java Object,通常のJavaオブジェクト)への対応である。EJBのインタフェースを意識することなく,通常のJavaBeansのようにプログラミングできる。Entity Beanによるデータの永続化もPOJOベースで可能となり,O-R(オブジェクト-リレーショナル)マッピング・フレームワークのように利用できる。また,メタデータを全面的に採用し,XMLによるDD(デプロイメント・ディスクリプタ)が不要になる。

 POJO(Plain Old Java Object)とは,元々はMartin Fowler氏らがEJBを批判するため使い始めた言葉。EJBは,分散オブジェクトのプログラミング・インタフェースを前提とすることから通常のJavaオブジェクト(POJO)に比べて制約が強く,扱いにくいとの批判である。同氏以外にもEJBを批判する声はあり,POJOベースの「軽量コンテナ」を実現するオープンソース・ソフトウエアも多数登場している。また,EJBではなくO-Rマッピング・フレームワークをデータ・アクセス層に採用する事例も登場しつつある(関連記事あり)。

 EJB3.0では,これら「アンチEJB」の声も取り入れた。EJB3.0仕様に関して,BEAのCedric Beust氏は,「最も興味深い点はCMP Entity Beanの部分。以前のEJBのバージョンや,HibernateなどO-Rマッピング・フレームワークから多くのものを学んだ。いままで間違いもあったが,EJB3.0ではJavaオブジェクトをリレーショナル・データべースに格納する際の問題を一挙に解決できる」(同氏のBlogより)と述べている。O-Rマッピング・フレームワークとして有名なHibernateプロジェクト設立者で,JBoss社員でもあるGavin King氏によれば「EJB3.0のEntity BeanはHibernateと非常に似ている」(同氏のBlogより)。

 また,JBoss社長のMarc Fleury氏は,「私たちはエクスパート・グループでPOJOの永続化とシンプルなプログラミング・モデルに関する作業をしており,その結果はEJB3.0仕様に反映されている」(同氏のBlogより)と述べており,EJB3.0仕様には,JBoss Groupの提案の影響が強いことがうかがえる。

 EJB3.0は,現在はJCP(Java Community Process)で,仕様策定のためのエクスパート・グループを結成してから11カ月が経過した段階である。この6月28日から開催の開発者会議JavaOneの前後に「パブリックレビュー」が出ると予想される。その後,エクスパート・グループによる投票が待っているが,最短時間で仕様策定プロセスが進んだとすれば8月から9月頃には仕様が正式版となる。製品が登場するのは来年(2005年)になるだろう。EJB仕様は標準仕様のため,将来のJ2EEアプリケーション・サーバーでは揃って採用されるはずだ。

 公開レビューの直前という時期なのにも関わらずEJB3.0の情報が公開されて議論が巻き起こっているのは,新たなフレームワークを待望する開発者の声が高まっているからだ。従来のEJBの機能を使いこなしている例は非常に少なく,特にCMP Entity Beanによるデータの永続化というEJBのメリットを引き出している例はほとんどない。EJB3.0は,こうした状況への回答となる可能性がある。「バージョン3でブレイクする」というソフトウエア業界のジンクスは,EJBにも当てはまるのかもしれない。

(星 暁雄=日経BP Javaプロジェクト)

◎関連記事:J2EEの「常識」は常に動いている

◎関連記事:日本発の「世界最先端」,オープンソース軽量コンテナに熱い視線――Seasar2説明会から

◎関連記事:EJB3.0入門講座