Oracle ADFアプリケーション・モジュールについて

Oracle ADFアプリケーション・モジュールは、特定のアプリケーション・タスクを表すビジネス・コンポーネントです。アプリケーション・モジュールは、タスクに必要なビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスを集約することによって、そのタスクのデータ・モデルを提供します。また、クライアントのタスクの実行に役立つサービスも提供します。たとえば、アプリケーション・モジュールは次のようなタスクを表し、支援できます。

アプリケーション・モジュールの定義方法は、「データ・モデルの作成」を参照してください。

データ・モデル

アプリケーション・モジュールには、ビュー・オブジェクト・インスタンス間の関連を指定するビュー・リンク・インスタンスの他、クライアントが必要とするデータを取得するビュー・オブジェクト・インスタンスも含まれます。ビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスは、アプリケーション・モジュールのデータ・モデルと呼ばれるツリーで表されます。

たとえば、次のビジネス・コンポーネント定義があるとします。

この場合、次のデータ・モデルを使用して、アプリケーション・モジュールのFindOrdersForCustomerModuleを定義できます。

FindOrdersForCustomerModuleの3レベルのツリー

このデータ・モデルでは、AllCustomersCustomersViewのインスタンス、CustomerOrdersOrdersViewのインスタンス、CustOrdLink1CustOrdLinkのインスタンスです。AllCustomersの特定の行(たとえば、Customer 101)が選択されると、CustomerOrdersの行セットは、その問合せの結果に制限されます。

SELECT * FROM ORDERS
WHERE 101 = ORDERS.CUSTOMER_ID    

したがって、Customer 101の注文のみがCustomerOrdersから参照できます。

また、次のデータ・モデルを使用して、アプリケーション・モジュールのShowOrdersAndCustomersModuleを定義できます。

ShowOrdersAndCustomersModuleの2レベルのツリー

このデータ・モデルでは、AllCustomersCustomersViewのインスタンス、AllOrdersOrdersViewのインスタンスです。AllCustomersおよびAllOrdersからの行の選択は独立しているため、CustomersViewおよびOrdersViewのすべての行は、常に参照できます。

詳細は、関連項目のトピックを参照してください。

アプリケーション・モジュール定義とアプリケーション・モジュール・インスタンス

一般に、次の区別をすることが重要です。

アプリケーション・モジュール定義はJDeveloperのツールを使用して作成します。これにより、クライアントはアプリケーション・モジュールのインスタンスを作成してデータにアクセスできます。また、アプリケーション・モジュール・インスタンスを別のアプリケーション・モジュール定義に追加できます。アプリケーション・モジュールのネストと呼ばれるこのプロセスは、小さいタスク(小さいアプリケーション・モジュール定義で表される)をより大きいタスク(小さいアプリケーション・モジュールのインスタンスを含むアプリケーション・モジュール定義で表される)の一部として再利用できるようにします。詳細は、関連項目のトピックを参照してください。

アプリケーション・モジュールおよびクライアント

アプリケーション・モジュールはデータ・モデル・コンポーネントです。そのため、定義時にクライアントのデータ・ニーズを考慮する必要があります。アプリケーション・モジュールを設計する前に、次の項目を確認してください。

これらの確認を行うことにより、必要以上にデータを取得および保存せずに、またクライアント用のデータを関連付けるプログラムも使用せずに、アプリケーション・モジュールを効率的に設計できます。

アプリケーション・モジュールには、データに対して複雑な操作を実行するサービス・メソッドも格納できます。これらのメソッドはクライアントからコールできますが、クライアント自体のデータ操作処理はほとんど必要ありません。詳細は、関連項目のトピックを参照してください。

アプリケーション・モジュールおよびトランザクション

通常、1つのアプリケーション・モジュール・インスタンスは単一のデータベース・トランザクションを所有しています。そのインスタンスを通じて加えられたすべての変更は、単一のトランザクションで実行され、いつでもロールバックまたはコミットできます。

次の2つの場合は、アプリケーション・モジュール・インスタンスはデータベース・トランザクションを所有しません。

トランザクション操作の詳細は、関連項目のトピックを参照してください。

アプリケーション・モジュール、XMLファイルおよびJavaクラス

個々のアプリケーション・モジュールは、ほとんどのビジネス・コンポーネントと同様に、部分的にXMLファイルで定義されます。これらのファイルでは、そのアプリケーション・モジュール定義に対するデータ・モデルおよびネストされたアプリケーション・モジュール・インスタンスが指定されます。

あるXMLファイルが特定のアプリケーション・モジュールのニーズを満たす場合、クラスの拡張またはJavaコードの記述は必要ありません。

アプリケーション・モジュールは、XMLファイルの他に、オプションでJavaクラスのアプリケーション・モジュール・クラスによって定義されます。このクラスには、そのアプリケーション・モジュールに必要な任意のサービス・メソッドまたは拡張コードが含まれます。


ビジネス・コンポーネントについて
Oracle ADF Business Domain Components、データ・モデル・コンポーネントおよび構成コンポーネントについて
ビュー・オブジェクトについて
ビュー・リンクについて
ビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスについて
データ・モデルへのビュー・オブジェクト・インスタンスの追加
アプリケーション・モジュールのネスト
クライアントからのデータ・アクセス
ビジネス・コンポーネントのサービス・メソッドについて
トランザクションの管理
コンテナ管理トランザクションおよびBean管理トランザクションについて