Java技術のロードマップは今,EoD(Ease of Development=開発の容易さ)を追求する方向に向かって動いている。この過程は2~3年かけて進み,Java技術によるシステム構築技術のスタイルを大きく変えるだろう。このコラム記事では,Java技術がどう変わるのか,その変化にどう対応するのかを考えてみたい。

 きっかけは,2月18,19日に開催されたイベントJava Technology Conference2004である。ここで筆者は企画を担当する立場でもあったが,このイベントで明らかになったこと,確認できたことをつなぎ合わせると,やはりEoDのインパクトは大きいという印象を受けたのだ。

Javaの進化は「より簡単」な方向に

 EoDとは,2003年6月に開催されたJava開発者会議JavaOne03でSun Microsystemsが打ち出したコンセプトである(関連記事)。単なるマーケティング用語ではなく,Java言語とJava APIの進化の方向性をひとくくりに表現したコンセプトである。具体的には,J2SE(Java2 Platform, Standard Edition)1.5「Tigerリリース」で取り入れられた新しいJava言語仕様や,新しいユーザー・インタフェース構築APIであるJavaServer Faces(JSF)が,EoDを実現するものとして挙げられている。

 その影響範囲は広い。例えば,J2SE1.5が採用した新たな言語仕様である「メタデータ」は,今後登場するエンタープライズAPI群の中で使われることで,実際の効果を発揮する。例えば,EJB(Enterprise JavaBeans)3.0では,従来のEJBと違いDD(デプロイメント・ディスクリプタ)を記述する必要がなくなる。メタデータを使い,プログラム・コード本体から必要な情報を抽出するからだ。JDBC4.0や,JAX-RPC2.0などの新API群でも,メタデータは開発作業を簡素化するために使われている。

 新ユーザー・インタフェースAPIであるJSFも,それ単体だけでなくビジュアルな開発環境を備える開発ツールの機能と統合することによって威力を発揮する。Webベースのユーザー・インタフェースを,よりオブジェクト指向的な考え方で記述できるようになり,プログラムと画面上のコンポーネントの結びつけの作業はツールが支援してくれる。JavaによるWebアプリケーション開発の作業が大幅に簡素になる。

 Sun,IBM,Borland,Oracleの4社が,開発ツールをJSF対応にすると表明している。Sunは,JSF対応の開発ツールの普及により,現在Javaを使っていないWebアプリケーション開発者もJSFを使うようになると期待している。

「簡易型」ではない

 システム開発の生産性を上げるための技術は,従来も数え切れないほど登場してきた。例えば,業務パターンに対応した4GL(第四世代)ライクな簡易型の開発環境を作るという考え方がある。ビジュアルな操作が可能な統合開発環境(IDE)を整備して開発効率を高めるという考え方もある。EoDは,それらの技術とはどう違うのだろうか。

 4GLライクなやり方とは違う。EoDの狙いは業務に特化するのではなく汎用的なプログラミング環境を提供することである。ビジュアルな開発環境との統合はJava技術のロードマップの視野には入っている(2004年1月に結成されたJava Tools Communityがその役割を担う)。ただし,EoDの狙いはツールとの統合に限定されるものではない。

 EoDとは,「従来型のシステムを作りやすくする」こととは違い,従来より高度なシステムを,より簡素に作れるように,オブジェクト指向環境としての完成度を高めようということである。

 こういった説明を聞いて,あるいは失望した読者もおられるかもしれない。EoDとは奇抜な新発明ではなく,オブジェクト指向のプラットフォームの完成度を高めるという当たり前の努力の積み重ねだからだ。

 また,オブジェクト指向開発,と聞いて苦い顔になった方もおられるかもしれない。オブジェクト指向開発は,あまりにも普及に時間がかかりすぎ,失敗経験を持つ人も多い。だが,今は2004年である。実装技術であるJavaプラットフォームの採用は当たり前となり,設計言語であるUMLも普及しつつある。開発方法論の分野でもUP(Unified Process)が成立し,知識を共有できる土台となっている。オブジェクト指向人口は増えつつあり,もはや特殊な手法ではない。10年前には無理だったことでも,今なら違うかもしれない。

オブジェクト指向のメリットを引き出す

 Java技術の進化に対応するということは,オブジェクト指向開発をちゃんとやる,ということである。Java Technology Conference2004の「日経BPトラック」でのセッションの一つ,「J2EEシステム開発へのイントロダクション」で,日本総合研究所 事業化技術センター所長の細川努氏は,J2EEがよりオブジェクト指向のメリットに対応できるようになる方向にあることを説明した。

 従来型のプログラミングでは,データ・アクセス用のプログラム・ロジックがSQL文を発行してリレーショナル・データベース管理システムからデータを取得する。画面表示のさいには,やはり値を表示用ロジックに渡す。こうした実装では煩雑なプログラミングになり,オブジェクト指向のメリットが出にくい。データソースと画面表示という肝心の部分がオブジェクト指向ではないからだ。

 だが,オブジェクト指向の環境が整ってくると,開発スタイルが変わってくる。O-R(オブジェクト-リレーショナル)マッピング用のフレームワーク(CMP Entity BeanやJDO)や,オブジェクト指向の画面表示フレームワーク(JSF)を使いこなすことができれば,業務レベルの概念を表現したオブジェクト(例えば「商品」や「売り上げ」)をそのままデータソースから取得して,オブジェクトとして処理し,画面表示のフレームワークまでシームレスに利用できる。生産性が圧倒的に上がる。

 このようなオブジェクト指向型のプラットフォームは「あと2~3年かけて完成するだろう」と細川氏は語った。現時点でも,O-Rマッピング・フレームワーク(オープンソースのHibernateなど)や,UIフレームワーク(Strutsなど)を利用した構築事例が出てきているが,2~3年後の近い将来には,J2EEの標準的なAPIの範囲内で,オブジェクト指向のメリットをより活かした実装ができるようになる。もちろん,実装だけがオブジェクト指向でも意味はない。分析,設計を含めたシステム開発全体でオブジェクト指向を取り入れた開発プロセスを取り入れなければメリットは出ない。

 2~3年という近い将来に,本格的なオブジェクト指向の開発プラットフォームが完成する。その時代には,オブジェクト指向開発を取り入れるか否かで開発プロジェクトの生産性に大きな差が開くことが予想される。それに対応するということは,どうやら「オブジェクト指向開発をちゃんとやる」ということになりそうなのだ。

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