開発環境
Oracle JDeveloper 10g

図3●Oracle Application Development Framework(ADF)で選択できる技術
図3●Oracle Application Development Framework(ADF)で選択できる技術
ADFでは開発者が自分の利用する技術を選択し,JDeveloperへプラグインして自分仕様のフレームワークを完成させる

 Oracle10gのJava標準開発環境「JDeveloper 10g」は,新しい開発フレームワーク Oracle Application Development Framework(ADF)を採用し,さらに生産性を高めることができる。またTOPLinkサポートが日本でも開始される。

 J2EEアプリケーションの開発においては,アプリケーション全体をM(Model)―V(View)―C(Controller)*4に分割して開発がすすめられる。これまでにある多くのフレームワークは,このMVCの一部となるタイプ(ControllerとしてのStrutsなど)と,アプリケーションの定型的な定義をしてある程度のひな型を一括生成するコード生成タイプに分けることができる。

 前者のMVCの一部となるタイプは,個々の部品として利用することしかできず,アプリケーション全体の開発は助けてくれない。ビジュアル開発でアプリケーション全体が開発できないため,J2EE熟練者が好むフレームワークとなっている。逆に後者の場合,一括してひな型コードが生成されるため,J2EEをよく理解していなくても開発でき,一定の品質を保ったアプリケーションができる。しかし,この手法では,フレームワークがひな型として生成した技術が押し付けられてしまう。このような一長一短のフレームワーク・ベースの開発に対して,ADFでは開発者が好みの技術を選び(図3[拡大表示]),ツールへプラグインして開発することを可能にする。そしてそれをビジュアル環境で実現できる。JDeveloper 10gには,JSP/HTMLビジュアル・エディタ,ページフロー・モデラーが統合され,開発はこのビジュアル・エディタ主体で進めていく。

 ADFを使用することで,例えばデータベースに問い合わせるJ2EEアプリケーションの開発手順が次のように変化する。

1■データ・モデルの作成
 JDeveloper内部からデータベースそのものを参照し,アクセス対象のテーブルをUMLダイアグラム上にドラッグ&ドロップする(写真4[拡大表示])。このとき,作成するデータ・モデルのタイプが選択できる。

2■データ・モデルに対するビジネス・ルールの定義
 Modelとしてビジネス・コンポーネント(BC4J)を選択した場合,基本的なデータ・バリデーションに関するビジネス・ルールは宣言的に定義する。また,必要であればプログラミングを追加して細かな動作をコントロールする。

3■ページ・フローの作成
 Webアプリケーションを構築する場合,ページフロー・モデラーを用いてアプリケーション・フローを設計する(写真5[拡大表示])。

写真4●JDeveloperによるアプリケーション開発画面(1)
写真4●JDeveloperによるアプリケーション開発画面(1)
JDeveloperからデータベースを参照し,UMLへ反映させる
写真5●JDeveloperによるアプリケーション開発画面(2)
写真5●JDeveloperによるアプリケーション開発画面(2)
ページ・フロー・モデラーを用いてアプリケーション・フローを作成する

4■ページ・デザインの作成
 ページ・フロー・モデラーでページに遷移するアクションをドリルダウンすると,ページ・デザインに移動する。ここではHTMLエディタ感覚でのページ・デザインが可能となる。この際,データ・バインド機能を利用し,表示させたいデータとそのコントロール・タイプを選択してドラッグ&ドロップするだけで,問い合せ結果などを表示する画面をデザインできる(写真6[拡大表示])。

5■イベント・アクション・ロジックの開発
 例えば,ControllerとしてStrutsを使用したアプリケーションの場合,FormBeanやActionのロジックを作成する必要があるが,これらの開発はページ・フローからドリルダウンの感覚で記述できる。

TopLinkでオブジェクトとデータをマッピング

 TopLinkはJavaアプリケーションで使用するオブジェクト・タイプと,実際にデータベースに格納されているリレーショナル・データに対して,その間の関連付けをマッピング・パターンで詳細に構成するフレームワークである。このTopLinkによって,JDBCを使用した低レベルのデータベース・アクセスから完全にJavaアプリケーションを切り離すことができる。Javaアプリケーションの開発者は,通常のJavaオブジェクトを取り扱うようにデータベース中に存在するリレーショナル・データにアクセスすることができる。このデータベース・アクセス部分をTopLinkによって行うことで,性能を向上させるキャッシング,遅延読み込みなども同時に利用できる(写真7[拡大表示])。

写真6●JDeveloperによるアプリケーション開発画面(3)
写真6●JDeveloperによるアプリケーション開発画面(3)
問い合わせ結果など表示させたいデータをドラッグ&ドロップで画面作成する
写真7●TopLinkによるデータ・マッピング画面
写真7●TopLinkによるデータ・マッピング画面
Javaのオブジェクトとリレーショナル・データの関連付けを行う