今,Enterprise JavaBeans(EJB)の新しいバージョンであるEJB 3.0が技術者の注目を集めています。これまで複雑で扱いにくいと批判されてきたEJBが,今回のバージョンアップでその批判に応えて大きく変わろうとしているからです。

 EJB 3.0の仕様の最終リリースは2006年第1四半期に予定されています。本稿執筆時点(2005年12月11日現在)では最終リリースはまだ行われていません(6月現在Final Releaseあり)。しかし,現時点でドラフト段階の仕様に対応したEJB3.0の実装がいくつか公開されています。

 この連載では,米JBossが開発した「Embeddable EJB 3.0」という実行環境を使い,EJB 3.0の新しいプログラミング・モデルを紹介します。EJBを使ったことがある方もない方も,ぜひEJB 3.0の新しいプログラミング・モデルを体験してください。

欠点が多かった従来のEJB

 EJBは,企業アプリケーションを構築するためのコンポーネント・ベースのアーキテクチャです。EJBのコンポーネントが実行環境であるEJBコンテナの中で実行されます。

 EJBは標準化されたアーキテクチャですが,それにもかかわらず,現在それほど広く使われていると言えません。それには様々な理由があります。

 まず,多くの規約が存在し,開発やメンテナンスがしにくかった点が挙げられます。EJBのコンポーネントはJavaで記述しますが,通常のJavaプログラミングにはない規約が多数ありました。開発者はその規約をよく知っていることが必要でした。そのため開発が難しく,同様の理由でメンテナンスも大変でした。EJBのコンポーネントは,アプリケーション・サーバー上に配置しなければ実際に動かせなかったため,単体テストを行いにくいという問題もありました。

 効果を発揮するアプリケーションが限定的だったということもあります。企業アプリケーションといっても,アプリケーションによって要件は様々です。例えば,分散オブジェクト通信や非同期処理などの要件を含むアプリケーションにとってEJBは重要なアーキテクチャです。その一方で,EJBがもたらす効果を必要としないアプリケーションも多くありました。単一のサーバー上で動き,非同期処理が不要なアプリケーションなどです。そうしたものでは従来,EJBは有効な選択肢ではありませんでした。

大きく改良されたEJB 3.0

 EJB 3.0には以前のEJBと比べて大きく異なる点があります。それはプログラミング・モデルです。EJB 3.0ではプログラミングが格段に簡単になりました(図1)。EJB 2.1以前のEJBを使った開発では,開発者がEJBの規約を意識しながらプログラミングしなければなりませんでした。しかし,EJB 3.0を使った開発では,それらの規約のほとんどを意識する必要がありません。以前よりもずいぶんシンプルにEJBのコンポーネントを開発できるようになっています。EJB 3.0の主な特徴について説明しましょう。

図1 EJB 2.1以前とEJB 3.0の比較 [画像のクリックで拡大表示]