写真1●Longhorn上で動かしたリッチ・クライアント技術のデモ
写真1●Longhorn上で動かしたリッチ・クライアント技術のデモ
写真2●現在のEJB仕様は定型的なコーディング(赤で示した部分)が多く特殊なオブジェクトを作る感覚
写真2●現在のEJB仕様は定型的なコーディング(赤で示した部分)が多く特殊なオブジェクトを作る感覚(拡大表示
写真3●EJB3.0では,例えばSession Beanであれば「@session」(青で示した部分)と記述するだけでよい
写真3●EJB3.0では,例えばSession Beanであれば「@session」(青で示した部分)と記述するだけでよい(拡大表示

 JavaOne1日目のジェネラル・セッション「Javaプラットフォーム・アップデート」では,Java技術のあらゆる側面にわたる新技術を紹介した。その中から,デスクトップJava関連の話題と,エンタープライズ向けJavaであるJ2EE5.0(J2EE1.5から改称)の話題を紹介する。

デスクトップJavaも注力,Longhorn対応やGnome対応も

 JavaOneの主催者であるSun Microsystemsは,デスクトップ環境のためのJava技術にも力を入れていくことを強調した。SunがデスクトップJavaについて挙げた項目は以下のようになる。

●次期版のJ2SE5.0 Tigerリリース(J2SE1.5から番号を変更)では,Winodws XPスタイルのルック&フィールに対応。Linuxのデスクトップ環境Gnomeや,最新版MacOSのルック&フィールにもいち早く対応する。
●将来版のJ2SEでは,Longhornのユーザー・インタフェースに対応する。
●「実験的な試み」として,リッチ・クライアント技術JDIC(JDesktop Integration Components)とJDNC(JDesktop Network Components)を開発中。将来版のJ2SEではSwingと統合する可能性がある。LGPL(Lesser General Public License)に基づきjava.netでオープンソースで公開する。

 特に,Microsoftの次期WinodwsであるLonghornのユーザー・インタフェースにもいち早く対応する。Java技術の特徴は特定のOSに依存しないことだが,デスクトップ環境ではOS非依存という特徴を維持しつつOSの機能を引き出すことが求められる。リッチ・クライアント技術として登場したJDIC,JDNCはこうした要求に対応するものだ。

 JDICは,「データ・タイプ,ファイル・タイプのマッピングに関する情報をプログラムから切り離してXMLファイルとして外部化する」(Sun)仕組み。これにより,特定のOSに依存しないアプリケーションを作りやすくなる。JDNCは,データベースなど各種プログラムと通信するデスクトップ・アプリケーション構築のためのコンポーネントである。どちらも,

 写真1は,Longhorn上で動かしたリッチ・クライアント技術のデモ。OSの最新機能を使いながら,OS非依存のアプリケーションを構築する。

 デスクトップ技術としては,このほかProject Looking Glassの華麗なデモンストレーションが目立った。3次元表示を駆使したルック&フィールを備えたデスクトップ環境で,X11上にJavaで記述してある。java.netで,GPL(GNU Generaluu Public License)に基づきオープンソースとして公開中である(JDIC,JDNC,Looking Glassについては関連記事)。

EJB3.0はプログラミングを大幅に簡素化

 このセッションの締めくくりとして,次期J2EEであるJ2EE5.0(J2EE1.5改め)の概要を紹介した。2005年後半に正式版になる見込みである。

 J2EE5.0では,各種APIでメタデータを使いプログラミングの簡素化を図っている。昨年のJavaOneで登場したEoD(Ease of Development)を実現しつつある。J2EE5.0は,新APIのJSF(JavaServer Faces)もコアAPIとして標準搭載する。

 J2EE5.0を構成する技術の中で,注目が集まっているのはEJB3.0である。現在のEJB仕様では,EJBは定型的なコーディングが多く特殊なオブジェクトを作る感覚だが(写真2[拡大表示],赤で示した部分),EJB3.0仕様では,アノテーション記述として,例えばSession Beanであれば「@session」と記述するだけでよい(写真3[拡大表示],青で示した部分)。このようにEJBの使い勝手を大幅に改善する。また現行のEJB仕様ではインタフェース記述(EJBHomeなど)がプログラム本体と別途必要だが,これは不要になる。デプロイメント・ディスクリプタ(DD)の記述も不要となる(EJB3.0については関連記事)。

 このように,プログラマの観点からは通常のJavaオブジェクト(POJO)をEJBコンテナ上で動かす感覚でプログラミングできる。そのメリットは,「設計の自由度の向上,テストの容易さにつながる」(Sun)。

 EJB3.0の説明として,2003年には「簡単さ」だけを強調していたが,今年はオブジェクト指向設計や,テスト駆動開発への適用がしやすくなることを強調するようになった。Martin Fowler氏が唱えるDI(Dependency Injection)パターン(いわゆる「軽量コンテナ」のための設計指針)の用語を使った説明もあった。こうした最新分野への関心が開発者の間で高まりつつあることが感じられた。

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