Oracle JDeveloper 10gおよびOracle ADFによる優れたJava

アプリケーション開発ツール
Oracle JDeveloper 10g および Oracle ADF による
優れた Java クライアントの開発
Frank Nimphius, Oracle Corporation
要約
Oracle JDeveloper 10g の Oracle Application Development Framework(ADF)は、J2EE アプリケーション構築の際に 1 つの
選択肢を提供します。ビジネス・アプリケーションに Java クライアントを使用するのは、1 つの選択肢に過ぎませんが、
開発者およびエンド・ユーザーがクライアント/サーバーで使用するものに最も近いものです。
多くの開発者が、Java の 3GL に Java クライアント・アプリケーションの構築を厄介なタスクであると考えています。Java
が 3GL 言語であるのに対し、Oracle JDeveloper 10g の Oracle ADF には、Swing を使用して優れた Java クライアント・イ
ンタフェースを構築するための宣言開発環境である ADF JClient が含まれています。このホワイト・ペーパーでは、エン
タープライズ Java アプリケーションの構築を行う開発者のための ADF JClient および Swing の概要を提供します。主な概
要は次のとおりです。
•
ADF JClient は J2EE における Java クライアント・アプリケーションの構築を容易にする。
•
ADF JClient は強力なウィザードによりただちに生産性を向上させる。
•
ADF JClient は、宣言アプリケーション開発および宣言データバインディングをサポートする。
J2EE における Swing の適合
前述のように、ADF JClient は Java Swing コンポーネントを使用してユーザー・インタフェースを構築しますが、Swing
はどこで J2EE に適合するのでしょうか。
Sun Microsystems 社の Java2 Enterprise Edition(J2EE)は、ユーザー・インタフェースが HTML あるいは Java で定義され
ているかに関わらず、エンタープライズ・クラスのビジネス・アプリケーションを Java で開発する基盤を構築します。
J2EE 標準では、Java Server Pages(JSP)、Java Servlets、Enterprise Java Beans(EJB)などのコンポーネントが Web アプ
リケーションのための構築ブロックとして定義されます。J2EE のサブセットである Java 2 Standard Edition(J2SE)には、
Abstract Window Toolik(AWT)や Java Foundation Classes(JFC)のような、以前のテクノロジから派生したテクノロジで
ある Swing が含まれます。
Swing は、Sun Microsystems 社によって Java での企業開発に作成された、次世代の GUI ツールキットです。
Swing は、UI コンポーネントの状態を管理する Model、コンポーネントをレンダリングする View、そして View から Model
にユーザー・イベントをディスパッチする Controller から構成される Model-View-Controller(MVC)アーキテクチャを実
装しています。
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
1
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
Model
Model は、コンポーネントのデータまたは状態を示すものです。例えば、スクロールバーの Model は最大限度、最小限度
および現在位置(現在値)に関する情報を保持します。この情報は、ウィジェットのビジュアル表示に関わらず同じ情報
です。
View
View は、オブジェクトの実際の物理表示です。例えば、ボタンは四角か丸の場合もありますが、ボタンであることにか
わりはありません。
Controller
Controller は、コントロールに対してアクションが実行された場合に、そのコントロールがどのように動作するかを決定
します。例えば、コントロールがフォーカスしたりマウス・クリックを受け取った場合、Controller がそのコントロール
が(仮に)どのように動作するかを決定します。Swing では、View および Controller は UI Delegate と呼ばれる 1 つのコ
ンポーネントとして表されることがあります。
このアーキテクチャの利点は、同じ Model に異なる UI Delegate を定義することで、Model として定義されているデータ
が異なる視覚的表示を持てるという点です。
MVC の例
JCheckBox は、Swing コンポーネントの 1 つで、
定義された Model、View および Controller を持ちます。ユーザーが Controller
をクリックして対話すると、Controller は状態を変更するよう(false から true へ、あるいはその逆)、Model に指示しま
す。Model の状態に応じ、View も更新されます。
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
2
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
ADF JClient による優れた Java アプリケーションの開発
ADF JClient は、Oracle JDeveloper 10g で Java クライアントを構築するための開発環境です。具体的に言うと、JClient は
Swing コンポーネントと基盤データソース、ビジネス・サービスとの通信を確立し、管理するために使用される薄いレイ
ヤーです。
Oracle JDeveloper 10g では、コンポーネント View が UI エディタでプレビューできるのに対し、コンポーネント Model の
状態は、Property Inspector によって監視されます。
次の図では、UI エディタにパネルの UI コンポーネントのレイアウトに GridBag Layout Manager で使用されるグリッド構
造も示しています。コード・エディタで定義された鍵となるリスナー定義は、[Enter]キーが押されるなどのイベントが発
生した場合にユーザー・イベントを示し、ユーザー・イベントは View(UI)から Controller に渡され、Model が更新され
るか、ナビゲーションが実行されます。
図 1: Oracle JDeveloper 10g の Proparty Inspector および UI エディタ
ADF ビジネス・コンポーネントによるウィザード・ドリブン・アプリケーション開発
ADF Business Components は、宣言開発用にビジュアル・デザインタイムで構成される J2EE アプリケーションおよび J2EE
の最適なデザインパターンを実装する、実行時プログラムを構築するためのフレームワークです。Oracle JDeveloper 10g
のウィザードにより、ビジネス・サービスとして ADF Business Components を使用するデータ中心の JClient アプリケーショ
ンの構築を開始できます。
Oracle JDeveloper 10g のリリースでは、Oracle ADF JClient は、ADF Business Components 以外のビジネス・サービスもウィ
ザードでサポートします。
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
3
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 2: JClient を使用したウィザード・ドリブン型 Java クライアントの開発
開発アプローチとして最初に UI コンポーネントを配置するために空のパネルから始め、その後それらをデータソースに
バインドする場合、「空の JClient パネル」および「空の JClient フォーム」ウィザードを使用して、アプリケーションに
対するデータバインディング定義を作成できます。
上の図に示したように、JClient のフォームおよびパネル・ウィザードにより実行可能な単一フォームおよびマスター/ディ
テール・フォーム・アプリケーションを作成できます。カスタム・アプリケーション・パネルを構築する際は、これらの
ウィザードを開始点として使用してください。
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
4
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
新しい宣言データバインディング
ADF JClient は、新しい Oracle ADF データバインディングをサポートしており、Java UI コンポーネントを ADF Business
Components、TopLink、Enterprise Java Beans、Web サービス、Java Beans などのビジネス・サービスに宣言的にバインド
します。
Oracle JDeveloper 10g には、すべてのデータ要素を一覧表示し、特定のビジネス・サービスに対する操作を関連付ける新
しいデータバインディング・パレットがあります。データ要素は、ADF Business Components View Object などのデータ・
コレクションを表します。操作は、ビジネス・サービスによって特定のデータ・コレクションに対して公開されるメソッ
ドです。要素と操作は、ビジネス・サービスが Oracle ADF データバインディングに登録されるとデータバインディング・
パレットに公開されます。
データバインディング・パレットに表示されるすべての要素は、ドラッグ・アンド・ドロップ操作で JClient パネルに追
加できます。
図 3: JClient での宣言的データバインディング
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
5
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
ADF JClient アプリケーションのデプロイ
ADF JClient アプリケーションは、3 層アーキテクチャまたは 2 層アーキテクチャでデプロイできます。Java クライアン
トのローカル・デプロイメントがクライアント/サーバー機能を必要とするすべてのアプリケーションに共通であるのに
対し、ブラウザで実行される Java Applet クライアントは、最初にアプリケーション・ソース・ファイルをインストール
しないユーザーが、アプリケーションにアクセスする必要がある場合に使用されます。
大規模なイントラネットの場合、Java Webstart デプロイメントは、中央集中型の Java ソフトウェア・デプロイメントと
Java クライアントのローカル・デプロイメントの利点を組み合わせた有効なソリューションであると言えます。Webstart
では、ユーザーが最初に Java Webstart アプリケーションをリクエストしたときに、すべての Java アプリケーション・ファ
イルをデスクトップにダウンロードします。その後、アプリケーションはローカルで実行、つまりオフラインで実行され
ます。これは、モバイル・クライアントのサポートを必要とするすべてのビジネスにおいて必要とされている機能です。
ADF JClient は、Java クライアント・アプリケーションの Webstart でのデプロイをサポートするウィザードを提供します。
ADF JClient および Oracle ADF によるアプリケーション構築の利点
顧客の大きな関心事の中で、業務に関する最適なツール以外の関心事として挙げられるのは、特定のテクノロジを使用す
る場合に単一のベンダーに縛られてしまう点です。Oracle ADF ではその心配はありません。ADF JClient がデータバイン
ディングに使用する Oracle ADF は、あらゆるアプリケーション・サーバーにデプロイすることができます。さらに、Oracle
は ADF データバインディングを JSR-227 として Java Community Process(JCP)に発行し、このテクノロジを J2EE 標準で
有効にしています。
まとめ
常に、優れたユーザー・インタフェースを持つインタラクティブなアプリケーションの需要はあります。ADF JClient に
よる Java クライアントの構築により、開発者の生産性が向上し、ADF Business Components、TopLink、Web サービス、
Enterprise Java Beans などの他の多くのデータソースとともにアプリケーションを動作させることができます。JClient ア
プリケーションは、Java Webstart のウィザード・ベースのサポートを含め、複数層の環境でデプロイできます。
JClient は Oracle ADF の一般的なデータバインディングを使用するため、JClient アプリケーションで使用される Model を、
他の HTML ベースのビューと容易に共有できます。JClient によって、生産性が急速に向上します。
Oracle JDeveloper 10g および Oracle ADF による優れた Java クライアントの開発
Paper # 40213
Oracle Corporation 発行「”SWING
THE MOOD”
– DEVELOPING RICH JAVA
CLIENTS WITH
6
ORACLE JDEVELOPER 10G AND ORACLE ADF”」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.