Oracle® Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発 12c (12.2.1.2.0) E82918-03 |
|
前 |
次 |
この章の内容は次のとおりです。
このマニュアルおよびこの他のマニュアルに、なじみのない用語が出てきた場合は、用語集で定義を確認してください。
Oracle ADFは、エンタープライズ・アプリケーションを構築するための市販のJavaフレームワークです。すぐに使用できるデザイン・パターン、メタデータドリブン・ツールおよびビジュアル・ツールに基づいた短期間でのアプリケーション開発をサポートします。
Oracle Application Development Framework (Oracle ADF)は、JavaプラットフォームEnterprise Edition (Java EE)標準とオープン・ソース・テクノロジを基盤とするエンドツーエンドのアプリケーション・フレームワークです。Oracle ADFを使用すると、Web、ワイヤレス、デスクトップまたはWebサービス・インタフェースを使用してデータを検索、表示、作成、変更および検証するエンタープライズ・ソリューションを実装できます。宣言的な機能を提供するOracle ADFにより、ユーザーはコードの詳細ではなくアプリケーション作成ロジックに焦点を当てることができ、開発を簡易化および迅速化できます。Oracle JDeveloperとOracle ADFを組み合せて使用すると、設計からデプロイに至る開発ライフサイクル全体に対応した環境が提供され、ドラッグ・アンド・ドロップによるデータ・バインディング、ビジュアルUI設計、チーム開発などの組込み機能を使用できます。
ヒント:
また、ADFアプリケーションはOracle Enterprise Pack for Eclipse (OEPE)を使用して開発することもできます。OEPEはJava EE環境をサポートするためにEclipse IDE向けに設計された一連のプラグインです。また、OEPEにはADFアプリケーション開発のサポート機能も含まれていますが、そのサポート機能はJDeveloperによって提供されている機能より限定されています。http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
を参照してください。
Fusion Webアプリケーション(フルFusionテクノロジ・スタックで構築されたアプリケーション)、ADFビジネス・コンポーネント、ADFモデル、ADF ControllerおよびADF Facesコンポーネントを備えたJavaServer Facesページを開発できます。このガイドの補足として、このガイド(および他のOracle Fusion Middleware開発者ガイド)の概念と手順を具体的に示すうえで役立つOracle ADF用のSummitサンプル・アプリケーションをダウンロードして表示できます。このサンプル・アプリケーションの例は、Fusion Webアプリケーション・テクノロジ・スタックを使用して作成されています。このアプリケーションのスクリーンショットおよびコード例は、このガイド全体で使用され、Oracle ADFテクノロジの実際の使用例を示しています。Summit ADFサンプル・アプリケーションのダウンロードおよび使用方法の詳細は、「ADFサンプル・アプリケーションの概要」を参照してください。
Oracle ADFアーキテクチャは、モデル、ビュー、コントローラおよびビジネス・サービスの4つのレイヤーで構成されるModel-View-Controller (MVC)デザイン・パターンに基づいています。アプリケーションをこれらのレイヤーに分けると、アプリケーション間でのコンポーネントのメンテナンスおよび再利用性に役立ちます。
Fusion Webテクノロジ・スタックを使用してアプリケーションを構築すると、業界のベスト・プラクティスに従うように、モデル・ビュー・コントローラ・アーキテクチャに準拠したビジネス・ロジック、ページ・ナビゲーション、ユーザー・インタフェースの明確な分離が実現します。図1-1に示すように、MVCアーキテクチャでは次のような構成になります。
モデル・レイヤーは、現在のページに関連するデータ値とともに、データ値に対して使用されるモデルレベル・ビジネス・ルール、セキュリティおよびアプリケーション・ロジックを表します。
ビュー・レイヤーには、データの表示および変更に使用するUIページがあります。
コントローラ・レイヤーは、ユーザー入力を処理し、ページ・ナビゲーションを決定します。
ビジネス・サービス・レイヤーは、データ・アクセスを処理し、ビジネス・ロジックをカプセル化します。
図1-1 MVCアーキテクチャによる、UI、ビジネス・ロジック、ページ・ナビゲーションの明確な分離
図1-2は、Fusion Webアプリケーション・アーキテクチャを構成する各ADFモジュールの場所を示しています。このフレームワークの中核モジュールは、データバインディング機能であるADFモデルです。ADFモデルにより、統一化されたアプローチを使用して、各ユーザー・インタフェースをコード記述なしで任意のビジネス・サービスにバインドできます。Fusion Webアプリケーション・テクノロジ・スタックを構成するその他のモジュールは、次のとおりです。
ADFビジネス・コンポーネント: ビジネス・サービスの構築作業を簡略化します。
ADF Faces: JavaServer Faces (JSF)で構築されるWebアプリケーションに豊富なAjax対応のUIコンポーネント・ライブラリを提供します。
ADF Controller: JSFをADFモデルに統合します。ADF Controllerは、複数のJSFページ間のみだけでなく、メソッド・コールやその他のタスク・フローなど、他のアクティビティ間に制御を渡す再利用可能なタスク・フローなどの追加機能を提供することにより、標準JSFコントローラを拡張します。ADF Controllerもデータ・モデルと連携し、各リクエストまたはリージョンで適切なデータが使用されるようにします。
注意:
ADF Facesに加えて、Oracle ADFはJavaおよび標準のJSFビュー・テクノロジの使用もサポートしています。これらのテクノロジの詳細は、『Oracle JDeveloperによるアプリケーションの開発』の「Javaアプリケーションの開発のスタート・ガイド」を参照してください。Oracle ADFでは、アプリケーションのビュー・レイヤーとしてのMicrosoft Excelの使用もサポートされます。『Oracle ADFデスクトップ統合によるアプリケーションの開発』のADFデスクトップとMicrosoft Excelの統合の概要に関する項を参照してください。
図1-2 シンプルなOracle ADFアーキテクチャ
Oracle ADFアーキテクチャおよび個々のADFテクノロジの詳細は、『Oracle Application Development Frameworkの理解』の「Oracle ADFの概要」を参照してください。
Oracle ADFとともにJDeveloperを使用すると、Fusion Webアプリケーションを構築できます。アプリケーションのインフラストラクチャを構築し、アプリケーションの複雑なビジネス・ロジックを実装するために開発者がコーディングに要する手間を最小限に抑えるステップ・バイ・ステップのADFアプリケーション開発プロセスを使用します。
Oracle ADFでは、開発プロセスを通して宣言的なプログラミング・パラダイムを使用することが重視されます。これによって、ユーザーは、アプリケーション作成のロジックに集中でき、実装の詳細を知る必要がなくなります。Oracle ADFとともにJDeveloperを使用すると、データ・アクセス、検証、ページ・コントロールおよびナビゲーション、ユーザー・インタフェース設計、データ・バインディングでアプリケーションの宣言的メタデータを自動的に管理する生産性の高い環境が実現します。
高レベルのFusion Webアプリケーションの開発プロセスには通常、次の過程が含まれます。
アプリケーション・ワークスペースの作成: ウィザードを使用して、選択したテクノロジに必要なライブラリと構成の追加およびパッケージとディレクトリを含むプロジェクトへのアプリケーションの構成が、JDeveloperによって自動的に行われます。
データベース・オブジェクトのモデル化: オンライン・データベースまたはデータベースのオフライン・レプリカを作成し、JDeveloperのエディタとダイアグラマを使用して定義の編集やスキーマの更新を行うことができます。
ユースケースの作成: UMLモデラーを使用して、アプリケーションのユースケースを作成できます。
アプリケーション・コントロールおよびナビゲーションの設計: ダイアグラマを使用して、アプリケーション・コントロールおよびナビゲーションのフローを視覚的に決定します。JDeveloperによって、ベースとなるXMLが作成されます。
共有リソースの識別: アプリケーションにドラッグ・アンド・ドロップするだけで、インポートされたライブラリを表示したり、使用できるリソース・ライブラリを使用します。
データにアクセスするためのビジネス・コンポーネントの作成: データベース表から、ウィザードまたはダイアログを使用してエンティティ・オブジェクトを作成します。これらのエンティティ・オブジェクトから、アプリケーション内のページが使用するビュー・オブジェクトを作成します。エディタを使用して、検証規則およびその他のタイプのビジネス・ロジックを実装できます。
JSFによるユーザー・インタフェースの実装: JDeveloperの「データ・コントロール」パネルには、アプリケーションのビュー・オブジェクトが表示されます。ユーザー・インタフェースの作成は簡単で、オブジェクトをページにドラッグし、ベースとなるデータを表示するUIコンポーネントを選択するだけです。データバインドされていないUIコンポーネントの場合、「コンポーネント」ウィンドウを使用してコンポーネントをドラッグ・アンド・ドロップします。JDeveloperによってページ・コードが作成されます。
ADFモデルを使用したUIコンポーネントとデータのバインディング: 「データ・コントロール」パネルからオブジェクトをドラッグすると、JDeveloperによってページとデータ・モデルとの間にバインディングが自動的に作成されます。
検証およびエラー処理の組込み: アプリケーションを作成したら、エディタを使用して、検証を追加し、エラー処理を定義します。
アプリケーションの保護: エディタを使用してロールを作成し、ユーザーに実装します。フラット・ファイル・エディタを使用して、これらのロールにセキュリティ・ポリシーを定義し、アプリケーション内の特定のリソースに割り当てます。
テストとデバッグ: JDeveloperには、統合されたアプリケーション・サーバーが含まれていて、パッケージ化してデプロイすることなく、アプリケーションを完全にテストできます。JDeveloperには、ブレークポイントを設定してデータを調べることができるツールのADF宣言デバッガも含まれています。
アプリケーションのデプロイ: ウィザードとエディタを使用して、デプロイメント・ディスクリプタ、JARファイルおよびアプリケーション・サーバー接続を作成します。
新規アプリケーションを作成する最初の手順は、アプリケーションに名前を割り当て、そのソース・ファイルを保存するディレクトリを指定することです。JDeveloperから提供されるアプリケーション・テンプレートを使用してアプリケーションを作成すると、作成するアプリケーションのタイプで必要とされる多くの構成ファイルが作成され、ワークスペースとともにプロジェクトに構成されます。
これらのテンプレートの1つがADF Fusion Webアプリケーション・テンプレートで、ビューに対してADF Faces、ページ・フローに対してADFコントローラ、ビジネス・サービスに対してADFビジネス・コンポーネントを使用するWebアプリケーションを作成するために必要な正確に構成されたプロジェクトのセットを提供します。このテンプレートを使用してアプリケーション・ワークスペースを作成する場合、アプリケーションに必要なJSFおよびADF構成ファイルがJDeveloperにより自動的に作成されます。
「アプリケーション概要」の構成要素の1つに、「Fusion Webアプリケーションのクイック・スタート・チェックリスト」があります。このチェックリストは、Fusion Webアプリケーション作成の基本手順を提供します。図1-3に示すように、関連ドキュメント、前提条件、チェックリスト内の各手順のステータスを追跡する機能へのリンクが含まれています。
図1-3「Fusion Webアプリケーションのクイック・スタート・チェックリスト」
JDeveloperでは、アプリケーション内のビジネス・サービスに関連するすべてのソース・ファイルを含みModel
という名前のプロジェクトと、ADF Facesビュー・レイヤーおよびモデル・レイヤー用のすべてのソース・ファイル(コントローラ用のファイルを含む)を含みViewController
という名前のプロジェクトも作成されます。
関連付けられたライブラリを自分で追加する手間を省くため、一度ビジネス・コンポーネントを作成すると、JDeveloperでは、自動的に次のライブラリをデータ・モデル・プロジェクトに追加します。
ADFモデル・ランタイム
BC4J Oracleドメイン
BC4Jランタイム
BC4Jセキュリティ
MDSランタイム
MDSランタイム依存性
Oracle JDBC
JDeveloperでは、ビュー・オブジェクトに次のライブラリも追加されます。
JSPランタイム
JSF 2.1
JSTL 1.2
ADF Page Flowランタイム
ADF Controllerランタイム
ADF Controllerスキーマ
ADF Facesランタイム11
ADF共通ランタイム
ADF Webランタイム
MDSランタイム
MDSランタイム依存性
Commons Beanutils 1.6
Commons Logging 1.0.4
Commons Collections 3.1
ADF DVT Facesランタイム
ADF DVT Facesデータバインディング・ランタイム
ADF DVT FacesデータバインディングMDSランタイム
JSFページを追加すると、JDeveloperによってOracle JEWTライブラリが追加されます。
その場合、JDeveloperを使用して追加のプロジェクトを作成し、アプリケーションに必要なパッケージとファイルを追加できます。
注意:
アプリケーションのアーティファクト(タスク・フローなど)を再利用する場合、「アプリケーション・コンポーネントの再利用」のネーミング・ガイドラインに従って、名前の競合を回避する必要があります。
ヒント:
アプリケーション・テンプレートで使用するデフォルト値を編集したり、独自のテンプレートを作成できます。その場合は、「アプリケーション」→「テンプレートの管理」を選択します。
図1-4は、「アプリケーション」ウィンドウに表示されるSummit ADFサンプル・アプリケーションの様々なプロジェクト、パッケージ、ディレクトリおよびファイルを示しています。
図1-4 Summit ADFサンプル・アプリケーションのプロジェクト、パッケージおよびディレクトリ
詳細は、『Oracle JDeveloperによるアプリケーションの開発』のアプリケーションおよびプロジェクトの管理に関する項を参照してください。
図1-5に示すように、ファイルの操作時には主に「アプリケーション」ウィンドウ、エディタ・ウィンドウ、「構造」ウィンドウおよび「プロパティ」ウィンドウを使用します。エディタ・ウィンドウでは、WYSIWYG環境に多くのファイルを表示でき、概要エディタにファイルを表示して宣言的に変更したり、ファイルのソース・コードを表示できます。「構造」ウィンドウには、現在選択されているファイルの構造が示されます。このウィンドウでオブジェクトを選択した後、選択したオブジェクトのプロパティを「プロパティ」ウィンドウで編集できます。
図1-5 JDeveloperのワークスペース
JDeveloperでは、オンラインのデータベースで作業することも、アプリケーション・ワークスペースの作成後にデータベース・スキーマからオフライン・データベースまたはプロジェクトにデータベース・オブジェクトをコピーし、.xml
ファイルとして保存されたオフライン・データベース・オブジェクトとして利用することもできます。オンラインまたはオフラインのどちらのデータベースでも、プロジェクト内でデータベース・オブジェクト定義を作成および編集できます。また、オフライン・データベース・オブジェクトを他のオフラインまたは稼働中のデータベース・スキーマと比較したり、SQL文(CREATE
、REPLACE
およびALTER
を含む)を生成したりできます。
たとえば、アプリケーションによって定義されているデータベース接続からデータベース・ダイアグラムに表をドラッグすると、JDeveloperでは、稼働中またはオフラインのデータベースをモデリングする(オブジェクトの.xml
ファイル表現を作成する)ことができます。表および外部キーなどのデータベース定義のモデリングによって、スキーマの基本的な情報を視覚的に取得できます。ダイアグラムでは、列とキーをドラッグ・アンド・ドロップして、外部キー関係を複製、移動および作成できます。オフライン・モードでダイアグラム上でノードをモデル化する場合は、JDeveloperによって基礎となるオフライン・オブジェクトが作成され、「アプリケーション」ウィンドウに表示されます。稼働中のスキーマを操作する場合は、ダイアグラムを修正すると、JDeveloperによってデータベース・オブジェクトが更新されます。同一のオフライン・データベース・オブジェクトから複数のダイアグラムを作成し、複数のプロジェクトにオフライン・データベースを展開できます。
図1-6に示すようなデータベース・ダイアグラムを使用すると、次の要素を視覚化できます。
表とその列
表間の外部キー関係
ビュー
オフラインの順序とシノニム
データベース・オブジェクトを直接作成および編集する場合は、ダイアグラムだけでなく、特定のデータベース・オブジェクト・エディタでも作業できます。オフライン・データベース・オブジェクトでの作業が終了したら、更新された新しいデータベース定義をオンライン・データベース・スキーマに生成できます。
データベース・ダイアグラムで作業する場合は、ダイアグラムをカスタマイズして、レイアウトの変更や、オブジェクトの表示方法とグループ化方法の変更を行ったり、依存性やリンク(URLなど)を指定する注釈をダイアグラムに追加したり、ダイアグラムの色およびフォント要素などの視覚的なプロパティを変更したりできます。
図1-6 Payments Groupingのデータベース・ダイアグラム
データベース・ダイアグラムを使用したデータベース定義のモデル化の詳細は、『Oracle JDeveloperによるアプリケーションの開発』のデータベース・オブジェクトの作成、編集およびドロップに関する項を参照してください。
アプリケーション・ワークスペースを作成した後、ユースケースをモデル化して構築対象のアプリケーションに関するエンド・ユーザー要件を取得して伝達すると、開発プロセスを開始できます。図1-7は、JDeveloperのUMLモデラーを使用して設計されることのある新規従業員を作成しているHR管理者向けの簡単なダイアグラムを示しています。ダイアグラムの注釈を使用すると、ユースケースを実装する画面上でエンド・ユーザーが参照する必要がある内容に関する特定の要件を取り込むことができます。たとえば、このユースケースでは、ユーザーがすべての従業員のリストを表示しながら新規従業員を作成することを選択しています。
図1-7 オーダー履歴を表示するユースケース・ダイアグラム
ユースケース・ダイアグラムの作成方法の詳細は、『Oracle JDeveloperによるアプリケーションの開発』の「モデル化を使用したアプリケーションの開発」を参照してください。
ユースケースのモデル化により、エンド・ユーザー要件を実装するために必要なユーザー・インタフェース・ページの種類を把握していきます。この時点で、次の3つのダイアグラムをアプリケーション・フローの設計を開始するために役立つドキュメント・ツールとして使用できます。Fusion Webアプリケーションでは、標準JSFナビゲーション・フローではなくADFタスク・フローを使用します。タスク・フローでは、ナビゲーションおよびアプリケーション・コントロールに対してよりモジュール化されたトランザクション対応のアプローチを使用します。標準JSFナビゲーション・フローと同様、タスク・フローには主に表示可能なページ(またはページ・フラグメント)が含まれます。ナビゲーションとは別に、タスク・フローには、組み合せることでページ・フローとアプリケーション動作に影響を与えることができる否ビジュアル的なアクティビティも含まれます。たとえば、これらの否ビジュアル的なアクティビティでは、マネージドBeansへのメソッド呼出し、EL式の評価、または別のタスク・フローの呼出しが可能です。これにより、ビジネス・ロジックは表示されているページとは関係なく呼び出すことができるため、再利用しやすくなります。
図1-8は従業員を作成するためのタスク・フローを示しています。このタスク・フローでは、GeneralInfo
およびConfirmation
はページを表示するビュー・アクティビティであり、CreateInsert
はメソッド・コール・アクティビティです。ユーザーがこのフローを開始すると、CreateInsert
アクティビティ(緑色の円で示したフローのエントリ・ポイント)が呼び出され、対応するメソッドがコールされます。これはメソッドへのコールであり、メソッド自体はタスク・フローに含まれていないため、アプリケーションの別の場所でメソッドを再利用できます。また、メソッド内のロジックはページ・フローのメタデータに影響を及ぼさずに変更できます。そこから、フローはGeneralInfo
ページに続き、データが送信されると、Confirmation
ページへと続きます。
図1-8 従業員を作成するためのタスク・フロー
ADF Controllerでは、コントロール・フロー・ルールを使用してナビゲーションを定義するメカニズムを提供しています。コントロール・フロー・ルールの情報は、フローに関する他の情報とともに構成ファイルに保存されます。図1-9はタスク・フローの「構造」ウィンドウを示しています。このウィンドウは、コントロール・フロー・ルールなど、フローに構成された各項目を示しています。「プロパティ」ウィンドウ(デフォルトでは右下の位置)を使用すると、フローの様々な要素の値を設定できます。
図1-9 「構造」ウィンドウおよび「プロパティ」ウィンドウのタスク・フロー要素
ページとは別に、タスク・フローではページ・フラグメントを調整することもできます。ページ・フラグメントとは、別のJSFページのコンテンツとしてレンダリングされるJSFドキュメントです。ページ・フラグメントおよびページ・フラグメント間の制御は、ページを作成する場合と同様にバインド・タスク・フローに作成し、タスク・フロー全体をリージョンとして別のページに挿入できます。リージョンは別のタスク・フローになるため、これによりメソッドの実行、式の評価およびコンテンツの表示を個別に実行できますが、格納するページの残りのコンテンツは同じ状態のままです。
また、リージョンによって再利用が可能になります。タスク・フローをリージョンとして作成し、タスクに必要な情報とタスクから返される情報を決定し、それらをリージョンのパラメータとして定義して値を戻すと、リージョンをアプリケーションの任意のページにドロップできます。パラメータの値によっては、異なるビューが表示される場合があります。
「ADFタスク・フローの作成」では、タスク・フローの使用方法を詳しく説明しています。タスク・フローおよびその作成の詳細は、「ADFタスク・フローのスタート・ガイド」を参照してください。タスク・フロー・アクティビティの詳細は、「タスク・フロー・アクティビティの使用」を参照してください。パラメータをタスク・フローに、またはタスク・フローから渡す必要がある場合は、「タスク・フローのパラメータの使用」を参照してください。リージョンの詳細は、「リージョンとしてのタスク・フローの使用」を参照してください。トランザクション機能やページの必須の順序(トレイン)の作成など、タスク・フローで提供できる高度な機能の詳細は、「複雑なタスク・フローの作成」を参照してください。タスク・フローを使用したダイアログの作成の詳細は、「アプリケーションでのダイアログの使用」を参照してください。
アプリケーションの設計時に、アプリケーションの一部をアプリケーション全体で再利用できる場合があります。たとえば、ビジネス・コンポーネントを作成する開発者が1名、Webインタフェースを作成する開発者が1名いる場合があります。ビジネス・コンポーネント開発者はプロジェクトをライブラリとして保存してパッケージ化できます。このライブラリは他の開発者に送信可能で、受信した開発者はリソース・カタログにこれを追加でき、そこから必要なページにドラッグ・アンド・ドロップできます。図1-10はJDeveloperの「リソース」ウィンドウのリソース・カタログを示しています。
図1-10 JDeveloperの「リソース」ウィンドウ
再利用の候補となるすべてのタスクに注意が必要です。ADFライブラリとしてパッケージ化および再利用できるADFアーティファクト、およびライブラリの作成と使用手順の詳細は、「アプリケーション・コンポーネントの再利用」を参照してください。
通常、ビジネス・ロジックをADFビジネス・コンポーネントとして実装する場合は、次の手順を実行します。
アプリケーションが実行するトランザクションの対象となる表を示すエンティティ・オブジェクトを作成します。エンティティ・オブジェクトは実際に既存のデータベース・スキーマから作成できます。必要に応じて、検証規則およびビジネス・ルールを追加します。
データベースの問合せを実行するエンティティ・オブジェクトと連動するビュー・オブジェクトを作成します。これらのビュー・オブジェクトを使用して、ビュー・レイヤーに表示できるデータを作成します。また、読取り専用ビュー・オブジェクトを作成でき、静的リストを表示するために使用できます。エンティティ・オブジェクトと同様に、ビュー・オブジェクトは既存のデータベース・スキーマから作成できます。
UIクライアントがアプリケーション・データの操作に使用するトランザクション・コンポーネントであるアプリケーション・モジュールを作成します。アプリケーション・モジュールはビジネス・サービスへのインタフェースになり、これらのサービス(アプリケーションのUIレイヤーなど)の使用者によって使用されます。このアプリケーション・モジュールには、アプリケーションのWebページを介してユーザーが対話するデータ・モデルのビュー・オブジェクト・インスタンスとカスタム・メソッドが含まれます。
必要に応じて、リモート呼び出し用のWebサービスとしてサービスを公開します。
「ビジネス・サービスの構築」では、これらのアーティファクトの作成方法を詳しく説明しています。「アプリケーションの完成」の各章にはビジネス・オブジェクトの拡張、チューニング、状態管理などの追加情報が記載されています。
アプリケーションで表示され操作されるデータについて理解すると、まだデータベースを構築していない場合はデータベースを構築できます(詳細は、『Oracle JDeveloperによるアプリケーションの開発』の「Oracle JDeveloper内でのデータベースの設計」を参照)。データベース表が準備されている場合、これらの表を示す一連のエンティティ・オブジェクトを作成し、表に含まれるデータの変更を簡略化できます。エンティティ・オブジェクトを使用して表に関するデータ・アクセスおよび検証をカプセル化することにより、今日または将来作成するこれらの表と連携するページを一貫性のある方法で検証できます。表の間の関係は、対応するエンティティ・オブジェクト間のアソシエーションとして反映されます。
エンティティ・オブジェクトが作成されると、エンティティのUIでの表示を簡略化するコントロールと属性のヒントを定義できるだけでなく、オブジェクトに動作を追加することもできます。詳細は、「エンティティ・オブジェクトを使用したビジネス・ドメイン・レイヤーの作成」を参照してください。
ビジネス・オブジェクトの再利用可能なレイヤーが作成されると、UIクライアントが動作できるサービス・メソッドとアプリケーション・モジュールのデータ・モデルを実装できます。
アプリケーション・モジュールのデータ・モデルは、必要な問合せのカプセル化のために作成したビュー・オブジェクト・コンポーネントのインスタンスで構成されています。ビュー・オブジェクトでは、ユーザー・インタフェースで表されるエンド・ユーザーのタスクが必要とする形に、データを結合、計画、フィルタ、ソートおよび集約できます。エンド・ユーザーがデータを更新する必要がある場合、ビュー・オブジェクトでは、再使用可能なビジネス・ドメイン・レイヤー内のエンティティ・オブジェクトを参照します。ビュー・オブジェクトは、再利用可能であり、複数のアプリケーション・モジュールで使用できます。詳細は、「ビュー・オブジェクトを使用したSQL問合せの定義」を参照してください。
図1-11はアプリケーションによって必要とされる多数の問合せを含むoracle.summit.model.view
パッケージを示しています。
図1-11 Summit ADFサンプル・アプリケーション内のビュー・オブジェクト
さらに、外部アプリケーションに機能を公開する必要がある場合があります。このとき、サービス・インタフェースを通じてこの機能を公開できます。たとえば、ServiceAppModule
アプリケーション・モジュールは、Webサービスとして公開されます。このWebサービスは、図1-12に示すように、CustomersView
およびOrdersViewビュー・インスタンスを公開します。詳細は、「アプリケーション・モジュールによるSOAP Webサービスの作成」を参照してください。
図1-12 WebサービスとしてのServiceAppModuleアプリケーション・モジュール
アプリケーションを開発する場合、Oracle ADFモデル・テスターを使用してビジネス・サービスを繰り返しテストできます。テスターにより、サービスをテストするユーザー・インタフェースまたはその他のクライアントを使用したり作成せずに、ビジネス・サービスの問合せ、ビジネス・ロジックおよび検証をテストできます。テスターを使用すると、追加した最新の問合せまたはビジネス・ルールをテストし、問題の診断に要する時間を節約できます。アプリケーション・モジュールの開発およびテストの詳細は、「アプリケーション・モジュールによるビジネス・サービスの実装」を参照してください。
またテスターはADF宣言デバッガと対話し、ビジネス・サービスのデバッグができます。作成する任意のカスタム・メソッドにブレークポイントを設定できます。詳細は、「テストとデバッグのためのOracle ADFモデル・テスターの使用」を参照してください。
計画段階で作成したページ・フローからページ・アイコンをダブルクリックすると、実際のJSFファイルを作成できます。ADF FacesアプリケーションのJSFページを作成する場合は、.jsf
拡張子を使用するFacelets XHTMLファイルを作成します。Faceletsは、JSPエンジンの代替として使用できるJSF中心のXMLビュー定義テクノロジです。
ヒント:
Faceletページでは任意の整形式のXMLファイルを使用できますが、JDeveloperでFaceletページを作成する場合は、XHTMLファイルとして作成されます。
ADF Facesには、ページのレイアウト全体の定義に使用できる多数のコンポーネントが用意されています。JDeveloperには、これらのコンポーネントを使用した事前定義済のクイック・スタート・レイアウトが含まれており、効率的に正しくページのレイアウトを決定できます。1列、2列または3列のレイアウトから選択でき、列の動作を指定できます。また、レイアウトに適用するテーマを選択すると、コンポーネントの一部に色が追加されます。詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のクイック・スタート・レイアウトの使用に関する項を参照してください。
またOracle ADFでは、独自のページ・テンプレートを作成して使用できます。テンプレートを作成する場合は、ページのレイアウトを決定し(クィック・レイアウト・テンプレートのいずれかを使用するか手動でレイアウトを作成する)、すべてのページで表示する必要のある静的コンテンツを提供して、各ページで有効な値に置き換えることができるプレースホルダー属性を作成します。レイアウトの変更など、テンプレートが変更されるたびに、テンプレートを使用するページにも更新が反映されます。
「データバインドされたWebユーザー・インタフェースの作成」では、基本的なフォームから複雑な検索機能まで、異なるタイプのUI機能の作成方法を詳しく説明しています。
通常のJSFアプリケーションでは、UIコンポーネント属性を管理対象Beanのプロパティまたはメソッドにバインドします。JSFランタイムでは、EL式でBeanを最初に参照した際に、Beanのオンデマンドのインスタンス化が管理されます。ただし、ADFモデルを使用しているアプリケーション内では、JDeveloperは汎用データ・バインド機能を駆動するXML構成ファイルを使用しているADFモデルにUIコンポーネント属性を自動的にバインドします。これには、ユーザー・インタフェース・テクノロジとビジネス・サービス実装の分離を可能にする概念(データ・コントロールと宣言的バインディング)が実装されています。
データ・コントロールでは、サービスの記述にXML構成ファイルを使用します。設計時に、JDeveloperのようなビジュアル・ツールでメタデータを操作し、任意のデータ・コントロール操作やデータ・コレクションにUIコンポーネントを宣言的にバインドして、バインディングを作成できます。たとえば、図1-13は、JDeveloperの「データ・コントロール」パネルに表示されるBackOfficeAppModuleDataControl
データ・コントロールを示しています。
図1-13 BackOfficeAppModuleDataControl
パネルに表示されるコレクションは、BackOfficeAppModuleDataControl
アプリケーション・モジュールに含まれる各ビュー・オブジェクト・インスタンスでの問合せによって返される行セットを表します。たとえば、「データ・コントロール」パネルのCountries
データ・コレクションは、BackOfficeAppModuleDataControl's
データ・モデルのCountries
ビュー・オブジェクト・インスタンスを表します。それぞれのデータ・コレクションの各行で使用可能な属性は、子ノードとして表示されています。データ・コレクション・レベルの「操作」ノードには、ADFモデルでサポートされるデータ・コレクションに対する組込み操作(previous
、next
、first
、last
など)が含まれます。
注意:
Webサービス、URLから取得されたXMLデータ、JavaBeans、EJBを操作するために別の種類のデータ・コントロールを作成する場合、これらは「データ・コントロール」パネルにも適切に表示されます。プロジェクトでこれらのデータ・コントロールのいずれかを作成する場合、JDeveloperでは構成情報を含むメタデータ・ファイルが作成されます。Oracle ADFアプリケーション・モジュールを操作する場合、アプリケーション・モジュールがすでにメタデータ駆動型のコンポーネントであり、ADFモデル・データ・コントロールとして自動的に公開するために必要なすべての情報を含んでいるため、これらの追加ファイルを明示的に作成する必要はありません。
「データ・コントロール」パネルを使用して、データ・コレクションをビジュアル・エディタのページ上にドラッグ・アンド・ドロップすると、必要なバインディングが作成されます。図1-14は、「データ・コントロール」パネルからドラッグされ、JSFページにフォームとしてドロップされるCountries
コレクションを示しています。
図1-14 「データ・コントロール」パネルを使用したフォームの宣言的作成
「データ・コントロール」パネルからデータバインドされたコンポーネントが最初にページにドロップされたときに、JDeveloperによりそのコンポーネントの関連ページ定義ファイルが作成されます。このXMLファイルは、ページ上でUIコンポーネントをサポートするバインディングのグループについて記述しています。ADFモデルでは実行時にこのファイルが使用され、ページのバインディングがインスタンス化されます。これらのバインディングは、バインディング・コンテナと呼ばれるリクエスト・スコープ・マップに保持されます。「データ・コントロール」パネルを使用してコンポーネントをページに追加するたびに、適切なバインディング・エントリがこのページ定義ファイルに追加されます。さらに、ドラッグ・アンド・ドロップによるデータ・バインディング操作を実行すると、JDeveloperにより、JSFページのJSF UIコンポーネントを示す必要なタグが作成されます。「データ・コントロール」パネルの使用の詳細は、「Fusion WebアプリケーションでのADFモデルの使用」を参照してください。
データを表示または更新するフォームおよび表の他に、検索フォーム、およびデータがバインドされた図とグラフを作成することもできます。データ・コントロールを使用して様々なタイプのページを作成する方法の詳細は、「データバインドされたWebユーザー・インタフェースの作成」の各章を参照してください。「データ・コントロール」パネル、およびUIデータがバインドされたコンポーネントを作成するためのその使用方法の詳細は、「Fusion WebアプリケーションでのADFモデルの使用」を参照してください。ADFモデルの詳細は、『Oracle ADFデータ・コントロールによるアプリケーションの開発』のADFモデルについてに関する項を参照してください。
エンティティ・オブジェクトおよびビュー・オブジェクトでは、概要エディタを使用してビジネス・オブジェクトに検証を宣言的に追加できます。エンティティの場合、ビジネス・ルールは常に属性に定義されたデータ・タイプの制約を反映します。
図1-15は、EmpEO
エンティティ・オブジェクトの概要エディタの「ビジネス・ルール」ページを示しています。
図1-15 概要エディタでの検証の設定
このタブでは、検証規則に加えて、検証が失敗した場合のエラー・メッセージの表示設定も行います。このような宣言的な検証を補足する場合は、Groovyスクリプト式も使用できます。サービス・レベルでの検証の作成の詳細は、「検証とビジネス・ルールの宣言的な定義」を参照してください。
また、ADF Faces入力コンポーネントには、組込みの検証機能があります。required
属性を設定するか、事前作成済のADF Facesバリデータを使用して、コンポーネントに1つ以上のバリデータを設定します。ビジネス・ニーズに合せて、独自のカスタム・バリデータを作成することもできます。詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の「入力の検証および変換」を参照してください。
カスタムのエラー・ハンドラを作成して、アプリケーションの実行中に発生したエラーをレポートできます。エラー・ハンドラを作成すると、アプリケーションの構成ファイルの1つにハンドラを登録するだけです。
Oracle ADFは、Java Authentication and Authorization Service (JAAS)に基づくセキュリティ実装を提供します。アプリケーションでのユーザーの認証と認可の実施を可能にします。Oracle ADFのJAASの実装は、パーミッションベースです。これらのパーミッションを定義したあと、アプリケーションのユーザーに関連付けるアプリケーション・ロールに付与します。アプリケーションのセキュリティ保護の詳細は、「Fusion WebアプリケーションでのADFセキュリティの有効化」を参照してください。
Oracle ADF Webアプリケーションのテストは、他の任意のJava EEアプリケーションのテストとデバッグに似ています。大半のエラーの原因は、ページのADFバインディング・コンテナのランタイム・オブジェクトにアクセスするEL式内またはアプリケーションで定義される宣言情報内において単純で容易に修正できる問題です。多くのケースでは、宣言ファイルおよびEL式を検証すると大半の問題を解決できます。
宣言的ファイルまたはEL式が原因ではないエラーの場合、ADFロガーを使用してADFモデルAPIからランタイム・トレース・メッセージを取得できます。このトレースには、アプリケーション・エラーの原因をすぐに特定できるランタイム・メッセージが含まれます。ログ出力から特定のエラーを検索することもできます。
JDeveloperには、バインディング・レイヤーやタスクフローなど、Oracle ADFの宣言的部分でブレークポイントを設定してデータを調べることができるツールのADF宣言デバッガも含まれています。ブレークポイントに達すると、アプリケーションの実行が一時停止され、ADFバインディング・コンテナの作業対象データを調べて、予測されるデータと比較することができます。「ADFコンポーネントのテストとデバッグ」には、Fusion Webアプリケーションを正常にデバッグする方法についての有用な情報およびヒントが記載されています。
JDeveloperでは、テストのためのJUnitとの統合が提供されます。ウィザードを使用して、回帰テスト・ケースを生成します。詳細は、「JUnitを使用した回帰テスト」を参照してください。
JDeveloperを使用すると、アプリケーション内の異なるコンポーネントの名前を変更したり移動できます。JDeveloperを使用してデータ・モデル・プロジェクトのビジネス・コンポーネントをリファクタすると、コンポーネントの名前を変更したり、それらを別のパッケージに移動でき、さらにJDeveloperはリファクタされたコンポーネントへのすべての参照を検出し、更新します。可能な場合は常に、JDeveloperのリファクタ・アクションを使用してエラーを招き易いプロジェクトの手動での編集を回避できます。詳細は、「Fusion Webアプリケーションのリファクタ」を参照してください。
Fusion Webアプリケーションは、JDeveloper内の統合WebLogic Serverまたはサポートされるスタンドアロン・インスタンスのいずれかにデプロイできます。デプロイメントの詳細は、「Fusion Webアプリケーションのデプロイ」を参照してください。
Fusion Webアプリケーションは、Oracle SOA Suiteによって提供されるサービス指向アーキテクチャ(SOA)プリンシパルを使用して、既存または新規の任意のアプリケーションと統合できます。Oracle SOA Suiteに含まれる宣言型開発ツールにより、サービス、イベント、ビジネス・ルール、ビジネス・プロセス・フロー、その他のSOAテクノロジを使用して、複数のアプリケーションを容易に統合できます。
Fusion Webアプリケーションを構築して、容易に他のアプリケーションと統合できます。アプリケーション・モジュールは、サービスとして公開できます。たとえばビジネス・プロセスを開始するために使用できるイベントを作成することもできます。「アプリケーション・モジュールによるSOAP Webサービスの作成」を参照してください。アプリケーション・モジュールで、他のWebサービスを直接コールすることもできます。「アプリケーション・モジュールからのWebサービスのコール」を参照してください。タスク・フローを使用してアプリケーションを統合することもできます。たとえば、タスク・フローを使用してビジネス・プロセス・フローを開始できます。
Oracle SOA Suiteの機能の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のOracle SOA Suiteの概要に関する項を参照してください。
チームで効率的に作業することは、アプリケーション開発においてきわめて重要です。これには、ADFアプリケーションの様々なパーツの開発に従事している開発者間での効果的なコミュニケーション、コラボレーションおよび時間管理が必要です。
多くの場合、アプリケーションはチーム開発環境で構築されます。チームベースの開発プロセスは、「Oracle ADFによるアプリケーションの構築の概要」で説明した開発サイクルに従って進めますが、開発者は通常、アプリケーションの様々な部分を同時に作成します。生産性の向上とは、効率的なアプリケーション開発を実現するため、チーム・メンバーが作業を分担し、標準の適用方法を理解し、ソース・コントロール・システムによってソース・ファイルを管理することを意味します。
大規模なアプリケーション開発を開始する前に、設計段階では通常、ユースケースの評価、タスク・フローおよび画面の計画、共有されるリソースの識別を行う必要があります。
次のリストは、初期設計が適用された場合の一般的なFusion Webアプリケーションの作業の分類方法を示しています。
インフラストラクチャ
管理者は、完成したアプリケーションの構築およびデプロイのためのAntスクリプト(またはその他のスクリプト・ファイル)を作成します。SQLスクリプトを開発して、アプリケーションで使用されるデータベース・スキーマを作成します。
エンティティ・オブジェクト
大規模な開発環境では、個別の開発グループがアプリケーションのすべてのエンティティ・オブジェクトを構築することがあります。残りのアプリケーションはこれらのオブジェクトに依存するため、エンティティ・オブジェクトはアプリケーションの開発で手順の1つとして、またはアプリケーションの一部として最初に完了する必要があります。
エンティティ・オブジェクトが完了すると、Oracle ADFライブラリを使用して他のチームと共有できます(詳細は、「ADFライブラリへの再利用可能なADFコンポーネントのパッケージ化」を参照)。その後、その他のチームが「リソース」ウィンドウでそれらをカタログに追加することでオブジェクトにアクセスします。自社アプリケーション開発プロセスでは、このように作業を分担しないことを選択できます。多くのアプリケーションでは、エンティティ・オブジェクトとビュー・オブジェクトは同じチーム(または1人)により開発され、1つのプロジェクト内に格納されます。
ビュー・オブジェクト
エンティティ・オブジェクトが作成され、ライブラリまたはプロジェクト内のいずれかに配置されると、(UIを構成する場合に)データ表示に必要なビュー・オブジェクトが必要に応じて作成されるか、または(SOAインフラストラクチャの他のアプリケーションがデータを必要とする場合に)サービス・データ・オブジェクトが提供されます。
開発中は、複数のビュー・オブジェクトが同じ機能を提供している場合があります。これらのビュー・オブジェクトは、オブジェクトの1つの問合せを変更して簡単に組み合せることができるため、各開発者のページまたはサービスのニーズに応じることができます。特に、ビュー基準によって開発者は容易に問合せを個々の用途に適応させることができます。
ビュー・オブジェクトが配置された後は、アプリケーション・モジュールおよびデータ・コントロールを作成し、必要なカスタム・メソッドを追加できます。ビュー・オブジェクトの作成、冗長性の確認、およびアプリケーション・モジュールへのこれらの追加のプロセスは、繰返しのプロセスである場合があります。
ユーザー・インタフェース(UI)の作成
UI設計を適用し、ビュー・オブジェクトを配置し、データ・コントロールを作成すると、ビュー・オブジェクトを作成したチーム(これについては前項で説明済)または別のチームがUIを作成することができます。データ・コントロールを定義する前にUI設計者がページを作成する、UIファーストの手法を採用して開発することもできます。Oracle ADFでは、UI設計者が開発サイクルの初期に使用できるプレースホルダ・データ・コントロールが提供されます。「プレースホルダ・データ・コントロールによるページの設計」を参照してください。
別個のチームに分けられた多数のスタッフがアプリケーションを開発することから、開発を始める前に多数の標準を施行して、アプリケーションのすべてのコンポーネントが効率的に連携するようにする必要があります。チーム環境で作業する場合の標準化のために必要なアプリケーション内の領域を次に示します。
コード・レイアウト・スタイル
複数の人が効率よくコードを使用して作業できるようにするため、特定のコード・スタイルに準拠します。JDeveloperを使用すると、組込みコード・エディタの動作方法を選択できます。ほとんどの設定は、ユーザーのコード・エディタとの対話方法(表示設定など)に影響し、一部の設定はコードのフォーマット方法に影響します。たとえば、左の大カッコの配置位置やインデントのサイズなどを指定するコード・スタイルを選択できます。また、所有している既存のコード・スタイルをインポートしたり、独自のコード・スタイルを作成してエクスポートし、チームで使用できるようにします。詳細は、『Oracle JDeveloperによるアプリケーションの開発』のソース・エディタ用プリファレンスの設定方法に関する項を参照してください。
パッケージの命名規則
パッケージのネーミング方法のみでなく、各パッケージを構成するオブジェクトの数と種類の粒度も指定する必要があります。
ページ
「JSFによるユーザー・インタフェースの実装」で説明しているように、UIに関して作業しているすべての開発者が使用するテンプレートを作成できます。すべてのページのルック・アンド・フィールを揃えるのみでなく、テンプレートを変更し、テンプレートを使用するすべてのページにこの変更を適用することもできます。詳細は、「ページ・テンプレートの使用方法」を参照してください。
テンプレートの使用とは別に、ページのネーミング標準を設定する必要もあります。たとえば、ページのアプリケーション内での使用箇所を名前に反映する場合があります。この目標を実現するために、サブディレクトリを作成してレイヤー構成を追加できます。
接続名: ほとんどのJDeveloperとOracle ADFのオブジェクトは、プロジェクトごとに一度のみ作成され、参照および使用するユーザーに関係なく、定義によって同じ名前を持ちますが、データベースの接続名は、同じ接続名の詳細にマッピングする場合でも、個々のチーム・メンバーによって作成できます。名前の不一致によって、不要な競合が生じる場合があります。まず、チーム・メンバーが大文字/小文字が区別される共通の接続名に同意し、該当チームの全メンバーがそれを使用する必要があります。
チーム環境で作業する場合、ソース・コントロール・システムを使用する必要があります。デフォルトでは、JDeveloperはSubversionのソース・コントロール・システムのサポートを提供しており、その他(CVSなど)は拡張機能を通じて利用できます。JDeveloperの別のシステムで作業できるように、拡張子を作成することもできます。これらのシステムをJDeveloper内で使用する方法の詳細は、『Oracle JDeveloperによるアプリケーションの開発』の「ソース・コントロールによるアプリケーションのバージョニング」を参照してください。
Fusion Webアプリケーションでのソース・コントロール使用の提案を次に示します。
ファイルのチェックアウト
JDeveloperを使用すると、ソース・コントロール・サーバーへの接続を作成し、ソース・コントロール・ウィンドウを使用してソースをチェックアウトできます。ファイルをローカルで操作する場合、変更されたファイルは保留中の変更ウィンドウにより通知されます。JDeveloperに組み込まれているApache Antを使用すると、スクリプトを作成できます。作成したスクリプトを使用して、すべてのアプリケーション・ワークスペースをローカルでビルドできます。これにより、変更されたファイルをソース・コントロール・リポジトリにチェックインする前にソース・ファイルをコンパイルできます。Apache Antを使用してスクリプトを作成する方法の詳細は、『Oracle JDeveloperによるアプリケーションの開発』のApache Antによる構築に関する項を参照してください。
ビルドの自動化
連続的な統合ツールを実行するようにしてください。ファイルがソース・サーバーにチェックインされると、このツールを使用して、ファイルが変更されたかどうかを認識したり、変更されたファイルを指定した間隔でチェックしたりできます。この時点で、このツールを使ってサーバーでAntスクリプトを実行して、完全なソースをコピーし(チェックアウトではなくコピー)、これらのファイルをコンパイルすることができ、コンパイルが成功すると、アプリケーションの(開発者用ではなく)コンシューマが使用するZIPファイルが作成されます。このスクリプトによって、次にソース・ディレクトリがクリーンアップされます。連続的な統合ツールを実行すると、リポジトリ内のコードの品質が向上し、開発者が頻繁に更新を行うようになるため、更新の量と競合の数が減少します。Hudson(http://hudson-ci.org/
)は、連続的な統合ツールの例です。
ファイルの更新およびコミット
Subversionの処理時、更新およびコミットは各ファイルではなく「作業用コピー」レベルで行う必要があります。各ファイルをコミットおよび更新しようとしている場合、サポートするメタデータ・ファイルがなく、そのためアプリケーションのコミット済コピーが破損する場合があります。
マージ競合の解決
ADFビジネス・コンポーネントのデータ・モデル・プロジェクトでビジネス・コンポーネントの追加または削除を実行すると、JDeveloperはそれをプロジェクト・ファイル(.jpr
)に反映します。作成(またはリファクタ)によって新しいパッケージにコンポーネントが格納されると、JDeveloperはそれをプロジェクト・ファイルとADFビジネス・コンポーネント・プロジェクト構成ファイル(.jpx
)に反映します。XMLフォーマットのこれらのプロジェクト管理ファイルはマージ競合の発生が減るように最適化されていますが、マージ競合は発生する可能性があり、それらのマージ競合は、影響を受ける各ファイルのポップアップ・メニューにある「競合の解決」オプションを使用してJDeveloperで解決する必要があります。
ADFビジネス・コンポーネントのXMLコンポーネント・ディスクリプタ・ファイル、データ・モデル・プロジェクトのプロジェクト・ファイル(.jpr
)または対応するADFビジネス・コンポーネント・プロジェクト構成ファイル(.jpx
)でマージ競合が解決した後は、プロジェクトを一度閉じてから再度開き、最新バージョンのコンポーネント定義を使用していることを確認してください。これを実行するには、「アプリケーション」ウィンドウでプロジェクトを選択し、JDeveloperメイン・メニューから「ファイル」→「閉じる」を選択し、「アプリケーション」ウィンドウで再度プロジェクトを開きます。
Oracle JHeadstartアプリケーション・ジェネレータは、JDeveloper用の追加拡張機能であり、WebベースのJEEビジネス・アプリケーションの作成においてさらに生産的な利点をもたらします。Oracle ADFの組込み機能を使用して、Oracle JHeadstartでは、ADF Facesをビュー・レイヤーとして、またADFタスク・フローをコントローラ・レイヤーとして使用する、フル動作のWeb層を繰り返し生成する機能をさらに追加しています。
このガイドの後半で説明するように、JDeveloperおよびOracle ADFでは、宣言的な開発経験を最大限に活用し、機能豊富でデータベース中心のJava EEアプリケーションを構築するための、生産性の高いビジュアルな環境を提供します。しかし、Oracle Designerのように、高レベルなアプリケーション構造定義に基づく完全なユーザー・インタフェース生成を提供するツールの使用経験がある場合、Java EE開発でも同様の機能が必要になる場合があります。その場合は、Oracle JHeadstart Application Generatorが適しています。これはOracle ADFの組込み機能を使用するJDeveloperの拡張機能で、アプリケーション・モジュールに対して完全なWeb階層の生成を実現します。ADFビジネス・サービスのために設計したデータ・モデルを開始点として、JHeadstartによりJDeveloper環境に追加された統合エディタを使用し、より高レベルのアプリケーション構造の定義を繰り返し修正できます。これらのエディタでは、生成されたWebユーザー・インタフェースのビュー・オブジェクト情報の機能と組織を制御します。チェック・ボックスのチェック、およびドロップダウン・リストからの様々なオプションの選択によって、検索するリージョン、検証を含めた値リスト(LOV)、シャトル・コントロール、ネストされた表およびその他の機能などの様々な形式を含む、ページの論理階層を表すことができます。このような宣言的な選択では、Oracle FormsやDesignerのユーザーが使い慣れた用語が使用されるため、Web開発がさらに容易になります。アプリケーション構造定義に基づき、Oracle ADFおよびJSFが提供する最も高度な機能を容易に活用して、このガイドに示すベスト・プラクティスを自動的に実装する完全なWebアプリケーションを生成できます。
JHeadstart Application Generatorを実行する場合は、コードが生成されるのではなく、Oracle ADFベースのWebアプリケーションのすべての宣言的なビューおよびコントロール・レイヤーのアーティファクトが作成(または再生成)されます。これらのアーティファクトは、ADFモデルを使用し、ビジネス・サービスとしてADFアプリケーション・モジュールと連携します。生成されたファイルは、JDeveloperに組み込まれたビジュアル・エディタを使用して生成するファイルと同様のものです。JHeadstartにおける相違点は、高レベルの定義に基づいてファイルをバルク・ベースで作成し、生成されたページがエンド・ユーザーの要件に可能なかぎり一致するまで繰り返し修正できるということです。生成されるファイルは次のとおりです。
データバインドされたADF Faces UIコンポーネントを含むJSFページ
各ページのデータ・バインディングを表すADFモデル・ページ定義XMLファイル
ページ・フローを処理するJSFナビゲーション・ルール
ローカライズ可能なUI文字列を含むリソース・ファイル
アプリケーションのWebユーザー・インタフェースを最大数まで生成した後は、JDeveloperの生産性の高い環境で結果を調整し、特に注意が必要なモデルとなるページに集中できます。生成したページを変更した後は、Application Generatorのページの実行時に再生成されないように設定を調整できます。また、生成されたページとカスタム設計のページが同一のADF Faces UIコンポーネントを利用しているため、すべてのページに同一のルック・アンド・フィールが自動的に継承されます。価格、サポート、追加サービスの詳細を含め、JHeadstartの評価のための十分な機能トライアルの入手方法については、Oracle Technology NetworkのJHeadstartに関するページ(http://www.oracle.com/technetwork/developer-tools/jheadstart/ overview/index.html
)を参照してください
アプリケーションでOracle ADFを最大限に活用する方法を理解するために、開発者ガイドに加えて様々なリソースの助けを借りることができます。このようなリソースには、ステップ・バイ・ステップのチュートリアル、テクニカル・ペーパー、事前収録されたセッション、ブック、トレーニング、動作保証などがあります。
この開発者ガイドに加えて、アプリケーションでのOracle ADFの活用方法を理解するために役立つ次のリソースも用意されています。
チュートリアル: JDeveloperキュー・カードはOracle ADFを使用したアプリケーション開発プロセスを段階的にサポートします。それらは、用意されている例とサンプル・スキーマを使用するように設計されていますが、独自のデータを使用することもできます。チュートリアルには、詳細な背景情報を紹介したトピック、各ステップの進め方をカード形式で説明するビューレットおよびコード・サンプルも含まれています。チュートリアルでは、簡単なエンドツーエンドのタスクにより、Oracle ADFの基本機能および操作方法を迅速かつ簡単に理解できます。
ADF Insider、Oracle ADFをより短期間で習得するために役立つ記録されたセッションを含むOracle Technology Network上のテクニカル・ペーパー、サンプルなど
Oracle PressおよびPackt Publishingでは、JDeveloperやOracle ADFに関する書籍を多数出版しています。http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index.html
を参照してください。
Oracle Universityでは、Oracle ADFのトレーニングと認定を行っています。http://education.oracle.com
を参照してください。
Oracle ADFテクノロジをサポートしている他の開発者ガイド: オラクル社では、データ・コントロール(ADFビジネス・コンポーネント用以外)、ADF Faces、ADFデスクトップ統合用の開発者ガイドなどを多数用意しています。関連ガイドの詳細は、このマニュアルの「はじめに」で「関連ドキュメント」を参照してください。