Oracle® Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド 11gリリース1(11.1.1) B61007-01 |
|
![]() 戻る |
![]() 次へ |
この章では、EJB 3.0アノテーションを使用するセッションBeanとエンティティBean、Java Persistence API(JPA)、ADF Model、ADF ControllerおよびADF Facesリッチ・クライアントによるWebアプリケーションの構築に使用される場合のOracle Application Development Framework(Oracle ADF)のアーキテクチャと主な機能について説明します。この章では、高度な開発プラクティスについても説明します。
この章の内容は次のとおりです。
Oracle Application Development Framework(Oracle ADF)は、JavaプラットフォームEnterprise Edition(Java EE)標準とオープン・ソース・テクノロジを基盤とするエンドツーエンドのアプリケーション・フレームワークであり、サービス指向アプリケーションの実装を簡略化および迅速化するものです。Web、ワイヤレス、デスクトップ、Webサービスなどのインタフェースを使用してデータの検索、表示、作成、変更および検証を行うエンタープライズ・ソリューションを開発する場合、Oracle ADFを利用することでその作業が容易になります。Oracle JDeveloper 11gとOracle ADFを組み合せて使用すると、設計からデプロイに至る開発ライフサイクル全体に対応した環境が提供され、ドラッグ・アンド・ドロップによるデータ・バインディング、ビジュアルUI設計、チーム開発などの組込み機能を使用できます。
図1-1は、Fusion Webアプリケーション・アーキテクチャを構成する各ADFモジュールの場所を示しています。このフレームワークのコア・モジュールは、JSR-227仕様を実装した宣言的なデータ・バインディング機能であるADF Modelです。この仕様には、宣言的データ・バインディングのメタデータにアクセスするAPIが含まれています(詳細は、http://jcp.org/en/jsr/summary?id=227
を参照してください)。ADF Modelレイヤーにより、統一化されたアプローチを使用して、各ユーザー・インタフェースをコード記述なしで任意のビジネス・サービスにバインドできます。アプリケーション・テクノロジ・スタックを構成する、EJB以外の他のモジュールは次のとおりです:
ADF Facesリッチ・クライアント: JavaServer Faces(JSF)で構築されるWebアプリケーションに豊富なAJAX対応のUIコンポーネント・ライブラリを提供します。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
ADF Controller: JSFをADF Modelに統合します。ADF Controllerは、JSFページ間のみでなく、インスタンス・メソッド・コールやその他のタスク・フローなど、他のアクティビティ間に制御を渡す再利用可能なタスク・フローなどの追加機能を提供することにより、標準JSFコントローラを拡張します。ADF Controllerの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の第III部「ADFタスク・フローの作成」を参照してください。
注意: ADF Facesに加えて、Oracle ADFはSwing、JSPおよび標準のJSFビュー・テクノロジもサポートしています。これらのテクノロジの詳細は、JDeveloperのオンライン・ヘルプを参照してください。Oracle ADFでは、アプリケーションのビュー・レイヤーとしてのMicrosoft Excelの使用もサポートされます。詳細は、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』を参照してください。 |
Oracle ADFでは、開発プロセスを通して宣言的なプログラミング・パラダイムを使用することが重視されます。これによって、ユーザーは、アプリケーション作成のロジックに集中でき、実装の詳細を知る必要がなくなります。Oracle ADFとともにJDeveloper 11gを使用すると、データ・アクセス、検証、ページ・コントロールおよびナビゲーション、ユーザー・インタフェース設計、データ・バインディングでアプリケーションの宣言的メタデータを自動的に管理する生産性の高い環境が実現します。
注意: このガイドでは、Oracle ADF Modelレイヤー、ADF Controller、ADF Facesとともに、モデルの永続性にEJB 3.0アノテーションを使用したセッションBeanとエンティティBeanおよびJPA(Java Persistence API)を使用したアプリケーションの開発について説明します。このプロセスは、Fusion Webアプリケーションの開発と非常によく似ています。主な違いは、Fusion Webアプリケーションでは、バックエンド・サービスにADF Business Componentsが使用されることです。両方のアプリケーション・タイプで開発プロセスと開発手順が同じ場合、このガイドでは、その詳細について、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照します。Fusion開発者ガイド内のADF Business Componentsに関する情報(エンティティ・オブジェクトやビュー・オブジェクトなど)は無視してください。EJB/JPAに関する同様の情報については、JDeveloperのオンライン・ヘルプの「EJBコンポーネントとJPAコンポーネントの開発」を参照してください。 |
高度なJava EE Webアプリケーションの宣言的開発プロセスには通常、次の過程が含まれます。
アプリケーション・ワークスペースの作成: ウィザードを使用して、選択したテクノロジに必要なライブラリと構成の追加およびパッケージとディレクトリを含むプロジェクトへのアプリケーションの構成が、JDeveloperによって自動的に行われます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のアプリケーション・ワークスペースの作成に関する項を参照してください。
データベース・オブジェクトのモデル化: データベースのオフライン・レプリカを作成し、JDeveloperのエディタとダイアグラマを使用して定義の編集やスキーマの更新を行うことができます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のデータベース・オブジェクト定義によるモデル化に関する項を参照してください。
ユースケースの作成: UMLモデラーを使用して、アプリケーションのユースケースを作成できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のユースケースの作成に関する項を参照してください。
アプリケーション・コントロールおよびナビゲーションの設計: ダイアグラマを使用して、アプリケーション・コントロールおよびナビゲーションのフローを視覚的に決定します。JDeveloperによって、ベースとなるXMLが作成されます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のADFタスク・フローを使用したアプリケーション・コントロールおよびナビゲーションの設計に関する項を参照してください。
共有リソースの識別: アプリケーションにドラッグ・アンド・ドロップするだけで、インポートされたライブラリを表示したり、使用できるリソース・ライブラリを使用します。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の共有リソースの識別に関する項を参照してください。
永続モデルの作成: ウィザードやダイアログを使用して、データベース表からEJB 3.0エンティティBeanを作成します。これらのBeanから、アプリケーションのページで使用されるファサードであるセッションBeanを作成します。エディタを使用して、セッションBeanとそのベースになるエンティティBeanについて記述されたメタデータ・ファイルに検証ルールと他のタイプのビジネス・ロジックを実装できます。JDeveloperとEJBを組合せた使用の詳細は、JDeveloperのオンライン・ヘルプの「EJBコンポーネントとJPAコンポーネントの開発」を参照してください。
サービスのデータ・コントロールの作成: エンティティBeanとセッションBeanを作成したら、メタデータ・インタフェースを使用して、EJB実装を抽象化し、使用されるプロパティ、メソッドおよびタイプに関する情報などの操作とデータ・コレクションを表すデータ・コントロールを作成します。これらのデータ・コントロールは、「データ・コントロール」パネルに表示されます。詳細は、第2章「Java EE WebアプリケーションでのADF Modelデータ・バインディングの使用」を参照してください。
ADF Modelレイヤーを使用したUIコンポーネントとデータのバインディング: 「データ・コントロール」パネルからオブジェクトをドラッグすると、JDeveloperによってページとデータ・モデルとの間にバインディングが自動的に作成されます。詳細は、第2章「Java EE WebアプリケーションでのADF Modelデータ・バインディングの使用」を参照してください。
JSFによるユーザー・インタフェースの実装: JDeveloperの「データ・コントロール」パネルには、アプリケーションのBeanが表示されます。ユーザー・インタフェースの作成は簡単で、オブジェクトをページにドラッグし、ベースとなるデータを表示するUIコンポーネントを選択するだけです。データバインドされていないUIコンポーネントの場合、コンポーネント・パレットを使用してコンポーネントをドラッグ・アンド・ドロップします。JDeveloperによって、すべてのページ・コードが作成されます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のユーザー・インタフェースの実装に関する項を参照してください。
特定のタイプのWebページの作成については、このガイドの次の箇所を参照してください。
検証およびエラー処理の組込み: アプリケーションを作成したら、エディタを使用して、検証を追加し、エラー処理を定義します。詳細は、2.3.5項「検証の構成について」を参照してください。
カスタマイズ可能なページとアプリケーションの開発: Oracle Metadata Services(MDS)のカスタマイズ機能を使用して、顧客がカスタマイズでき、かつアップグレードを容易に受けられるアプリケーション、エンド・ユーザーがアプリケーションのUIを実行時に変更できるページおよび実行時に完全にカスタマイズ可能なアプリケーションを作成できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「MDSによるアプリケーションのカスタマイズ」および「実行時のユーザーによるカスタマイズの許可」を参照してください。
アプリケーションの保護: エディタを使用してロールを作成し、テスト・ユーザーに実装します。フラット・ファイル・エディタを使用して、これらのロールにセキュリティ・ポリシーを定義し、アプリケーション内の特定のリソースに割り当てます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion WebアプリケーションでのADFセキュリティの有効化」を参照してください。
テストとデバッグ: JDeveloperには、統合されたアプリケーション・サーバーが含まれていて、パッケージ化してデプロイすることなく、アプリケーションを完全にテストできます。JDeveloperには、ブレークポイントを設定してデータを調べることができるツールのADF宣言デバッガも含まれています。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「ADFコンポーネントのテストとデバッグ」を参照してください。
アプリケーションのデプロイ: ウィザードとエディタを使用して、デプロイメント・ディスクリプタ、JARファイルおよびアプリケーション・サーバー接続を作成します。詳細は、第8章「ADF Java EEアプリケーションのデプロイ」を参照してください。
このガイドの補足として、Java EEおよびADFのWebアプリケーション・テクノロジ・スタックを使用して、仕入先管理Webシステムに必要なトランザクション・ベースのWebアプリケーションを作成する方法を示すFusion Order DemoアプリケーションのSuppliersモジュールが作成されました。デモ・アプリケーションを通して、要点が示され、サンプル・コードが提供されます。
各コンポーネントとそれらのソース・コードについて深く考察する前に、Fusion Order Demoアプリケーションをインストールしてその機能に慣れておくことをお薦めします。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の次の項を参照してください。
「Oracle Fusion Order Demoの概要」
「Fusion Order Demoアプリケーションの設定」
Suppliersモジュールは、Model
という名前のビジネス・サービス・プロジェクトとViewController
という名前のWebユーザー・インタフェース・プロジェクトで構成されます。ViewController
プロジェクトを実行して、JDeveloperでFusion Order DemoのSuppliersモジュールを実行します。ViewController
プロジェクトでは、ビュー・テクノロジとしてJavaServer Faces(JSF)を使用し、Model
プロジェクトでは、EJBとの対話にOracle ADF Modelレイヤーを使用します。Suppliersモジュールについての知識を深め、実装の詳細を理解するには、1.3.2項「Supplierモジュール・コードの考察」および1.3.3項「Supplierモジュールのツアー」を参照してください。
Fusion Order DemoアプリケーションのSuppliersモジュールを実行する手順:
『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion Order Demoアプリケーションの設定に関する項に記載のとおり、Fusion Order Demoアプリケーションをダウンロードし、インストールします。
Oracle JDeveloperでアプリケーションを開きます。
JDeveloperのメイン・メニューから、「ファイル」→「開く」を選択します。
デモ用ZIPファイルを抽出した場所に移動し、SupplierModuleディレクトリからSupplierModule_2.0.jws アプリケーション・ワークスペースを選択します。「開く」をクリックします。
図1-2は、アプリケーション・ワークスペースのファイルを開いた後のアプリケーション・ナビゲータを示しています。ワークスペースの各プロジェクトの詳細は、1.3.2項「Supplierモジュール・コードの考察」を参照してください。
アプリケーション・ナビゲータで、「アプリケーション・リソース」アコーディオン・タイトルをクリックし、パネルを展開します。
「アプリケーション・リソース」パネルで、「接続」、「データベース」の順にノードを展開します。
FOD接続を右クリックし、「プロパティ」を選択します。
「データベース接続の編集」ダイアログで、表1-1のとおり、各自の環境に合せて接続情報を変更します。
表1-1 Fusion Order Demoアプリケーションの実行に必要な接続プロパティ
プロパティ | 説明 |
---|---|
ホスト名 |
データベースのホスト名。たとえば、次のように入力します。
|
JDBCポート |
データベースのポート。たとえば、次のように入力します。
|
SID |
データベースのSID。たとえば、次のように入力します。
|
ユーザー名とパスワード(fod/fusion)は変更しないでください。これらはそのままにしておきます。「OK」をクリックします。
アプリケーション・ナビゲータで、「モデル」を右クリックして「再ビルド」を選択します。
アプリケーション・ナビゲータで、「ViewController」を右クリックして「実行」を選択します。
login.jspx
ページが表示されます。このモジュールでのセキュリティの構成上、まずログインする必要があります。
「ユーザー名」にSHEMANT
、「パスワード」にwelcome1
と入力します。
ログインすると、browseページが表示され、製品を検索できます。結果の表で製品を選択すると、製品情報の編集や削除を行えます。ページの上部のコマンド・リンクを使用して、仕入先の情報を編集したり、仕入先を新たに追加できます。実行時のSuppliersモジュールの詳細は、1.3.3項「Supplierモジュールのツアー」を参照してください。
Oracle JDeveloperでプロジェクトを開くと、各プロジェクト内のアーティファクトの確認を開始できます。Model
プロジェクトには、Webアプリケーションにデータを表示できるようにするJava クラスとメタデータ・ファイルが含まれています。oracle.fodemo.common
プロジェクトには、アプリケーション内の複数のクラスで使用されるコンポーネントが含まれています。oracle.fodemo.supplier
プロジェクトには、仕入先のデータへのアクセスに使用されるコンポーネントが含まれています。図1-3は、Model
プロジェクトおよび関連するディレクトリを示しています。
ViewController
プロジェクトには、バッキングBean、デプロイメント・ファイル、JSPXファイルなど、Webインタフェース用のファイルが含まれています。「アプリケーション・ソース」ノードには、マネージドBeanおよびバッキングBean、国際化に使用するプロパティ・ファイル、Oracle ADFによってバインド・データの表示に使用されるメタデータなど、Webクライアントで使用されるコードが含まれています。「Webコンテンツ」ノードには、JSPファイル、イメージ、スキン・ファイル、デプロイメント・ディスクリプタ、ライブラリなどのWebファイルが含まれています。図1-4は、ViewController
プロジェクトおよび関連するディレクトリを示しています。
Supplierモジュールには、ユーザーが次の機能を実行できる8個のメイン・ページが含まれています。
製品の検索: browse.jspx
では、ユーザーは、製品を検索できます。検索結果は、表に表示されます。図1-5は、browse
ページの検索フォームを示しています。
検索フォームの作成の詳細は、第7章「データバインドされた検索フォームの作成」を参照してください。
表内の行データの編集: browse.jspx
ページの表から、ユーザーは製品を選択し、「Update」を選択してproductInfo.jspx
ページに移動できます(製品リンクのクリックでも、このページに移動します)。表から、ユーザーは「Remove」をクリックし、選択した製品を削除できるポップアップを起動することもできます。図1-6は、browse
ページの表を示しています。
表の作成の詳細は、第4章「ADFによるデータバインドされた表の作成」を参照してください。
アプリケーションのナビゲーションの作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「ADFタスク・フローの概説」を参照してください。
表内の行を編集するボタンの使用の詳細は、4.3項「編集可能な表の作成」を参照してください。
フォーム内の行データの編集: productInfo.jspx
ページで、ユーザーは行のデータを変更できます。選択リストには、製品ステータスの有効な値が含まれています。「Choose File」ボタンを使用して、ユーザーはグラフィック・ファイルをアップロードできます。このファイルはフォームの下に表示されます。図1-7は、productInfo
ページを示しています。
基本的なフォームの作成の詳細は、3.3項「基本的なフォームの作成」を参照してください。
ユーザーによる情報の編集が可能なフォームの作成の詳細は、3.6項「既存レコードを編集するフォームの作成」を参照してください。
選択リストの作成の詳細は、6.2項「選択リストの作成」を参照してください。
ファイルのアップロードの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のファイル・アップロードの使用に関する項を参照してください。
グラフィックの表示の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のイメージの表示に関する項を参照してください。
「Add Supplier」リンクをクリックすると、図1-8に示す、新規仕入先の作成に使用されるregisrationDetails.jspx
ページに含まれる一連のページに移動します。
トレインの作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のトレインの作成に関する項を参照してください。
ユーザーによる新規レコードの作成が可能なフォームの作成の詳細は、3.7項「入力フォームの作成」を参照してください。
アプリケーションへのログイン: login.jspx
ページで、ユーザーはアプリケーションにログインできます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion WebアプリケーションでのADFセキュリティの有効化」を参照してください。