Seasar Projectは2005年4月22日,オープンソースで開発を進めるJavaのDI(Dependency Injection)コンテナに,J2EE(Java2 Platform,Enterprise Edition)のコンポーネント規約EJB(Enterprise JavaBeans)3.0の仕様の一部を取り込む計画を明らかにした。プロジェクト名は「Kuina」。EJBの次版3.0のうち,データの永続化を担当するコンポーネント「EntityBean」を利用できるようにする。

 DIは,コンポーネント間の依存性を外部に切り離して,コンポーネントの再利用性を高めたり,テストを容易にすることを狙った技術(関連記事)。依存性の管理を担当するのが,DIコンテナである。DIコンテナはこれまでのEJBコンテナに代わるものとして,主にJ2EEの開発者の間で注目を集めている。EJBに基づいたコンポーネントの開発作業は複雑で,比較的小規模なアプリケーションの開発者には敬遠されがちだった。DIコンテナを使えば,EJBを利用せずにJavaのコンポーネントを作成できる。

 現在Early Draft版の仕様が公開されているEJB 3.0には,複雑すぎるという批判を受けて開発作業をシンプルにする工夫が盛り込まれる。Seasar Projectはこのうち,EntityBeanに関する仕様が「J2SE(Java2 Platform,Standard Edition)5.0で盛り込まれたアノテーションを使って,分かりやすく表現できている」(Seasar2の生みの親である,電通国際情報サービス ビジネスソリューション事業部 プロダクトコンサルティング3部 マネージャーの比嘉康雄氏)ため,取り込むことを決めた。EJBにおけるもう一つの規約であるSessionBeanに関しては「SessionBeanに相当する機能はDIコンテナで提供できる」(比嘉氏)ため採用していない。アノテーションの仕組みを利用し,簡単なキーワードをソースコードに付与しておけば,DIコンテナがSQL文をデータベースに発行してデータの取得や保存をする仕組みも併せて盛り込む。

 なお同日,比嘉氏が勤務する電通国際情報サービスは,Seasar Projectを正式に支援することを表明した。比嘉氏は業務の一部としてSeasar Projectの開発作業を担当する。また同社が2005年6月1日から,Seasar2の商用サポートを開始する。価格は1プロジェクトあたり1年間で60万円。

(八木 玲子=日経バイト)