この章の内容は次のとおりです。
このマニュアルおよびこの他のマニュアルに、なじみのない用語が出てきた場合は、用語集で定義を確認してください。
ADFモデルは宣言的なデータ・バインディング機能で、コードを使用せずにユーザー・インタフェースをビジネス・サービスにバインドする統一されたアプローチを提供します。ADFモデルによって、ユーザー・インタフェース・テクノロジとビジネス・サービス実装の分離を可能にする2つの概念(データ・コントロールと宣言的ADFバインディング)が実装されています。図1-1は、ADFモデルがADFアプリケーション・アーキテクチャにどのように適合しているかを示しています。
図1-1 ADFモデルを含むADFアーキテクチャ
データ・コントロールでは、関連するプロパティ、メソッド、タイプの情報を含め、サービスの操作とデータ・コレクションを表す標準のメタデータ・インタフェースを使用してビジネス・サービスの実装技術を抽象化します。これらの操作とコレクションは、データ・コントロール・オブジェクトとして公開されます。開発者とUI設計者は、これらを使用してデータバインドされたUIコンポーネントを作成でき、基礎となるビジネス・サービスのタイプについて考慮する必要はほとんどありません。
宣言的なバインディングによって、データ・コントロール内のデータ・コレクションからのデータ・アクセスの詳細と、その操作の実行が抽象化されます。宣言的なバインディング・オブジェクトには、次の3つの基本的なカテゴリがあります。
値バインディング: データを表示するUIコンポーネントで使用します。値のバインディングは、単純なテキスト・フィールドで使用する最も基本的なものから、リスト、表、ツリーでのUIコントロールのニーズをサポートするような、より高度なリスト、ツリーのバインディングまで、様々な種類があります。
アクション・バインディング: ハイパーリンクやボタンなどのUIコンポーネントで使用され、コードを記述することなく、データ・コレクションやデータ・コントロールの組込み操作またはカスタム操作を実行します。
実行可能バインディング: 実行可能バインディングには、イテレータ・バインディングなどが含まれ、データ・コレクションのスクロール処理とページング、および概要情報から詳細情報へのドリルダウンを可能にするユーザー・インタフェースを容易に作成できます。また、実行可能バインディングには、ページ内で一連のページの検索およびネストを可能にするバインディングや、操作を即時実行するためのバインディングも含まれます。
実行時に、ADFモデル・レイヤーによって、適切なXMLファイルからデータ・コントロールおよびバインディングを記述した情報が読み取られ、ユーザー・インタフェースとビジネス・サービスの双方向の結合が実装されます。
ADFモデル・レイヤーをデータのバインドに使用するには、サービスに対してデータ・コントロールを作成する必要があります。データ・コントロールが「データ・コントロール」パネルのツリー階層として表示され、ツリーの各サブノードにコレクション、操作、メソッド、属性などの要素が表されます。その後、Webページのビジュアル・エディタまたはその他のユーザー・インタフェース・コンポーネントに、それらのサブノードをドラッグ・アンド・ドロップすることにより、データバインドされたコンポーネントを作成します。データ・コントロールからサブノードをページにドラッグすると、JDeveloperによって、ページからサービスへのバインディングを表すメタデータが自動的に作成されます。
たとえば、EJBセッション・ファサードを使用するアプリケーションでは、開発者はファサードのデータ・コントロールを作成できます。その後、JDeveloperの「データ・コントロール」パネル(図1-2を参照)に表示されたデータ・コントロールの表現を使用して、セッション・ファサードに自動的にバインドされるUIコンポーネントを作成できます。
図1-2 「データ・コントロール」パネル
ページのUIコンポーネントをサポートするバインディングのグループは、ページ定義ファイルというページ固有のXMLファイルに記述されます。ADFモデル・レイヤーでは実行時にこのファイルが使用され、ページのバインディングがインスタンス化されます。これらのバインディングは、バインディング・コンテナと呼ばれるリクエスト・スコープ・マップに保持されます。
JSFアプリケーションでは、バインディング・コンテナは、各ページ・リクエスト時にEL式#{bindings}
を使用してアクセスできます。この式により、現在のページのバインディング・コンテナが常に評価されます。
次の例は、フォーム内のチェック・ボックスをOrdersSessionEJBLocal
データ・コントロールのorderFilled
属性にバインディングするために使用されるコードを示します。
<af:selectBooleanCheckbox value="#{bindings.orderFilled.inputValue}" label="#{bindings.orderFilled.label}" shortDesc="#{bindings.orderFilled.hints.tooltip}" id="sbc1"/>
データ・コントロールの実装には様々なものがあり、これらは次に示すカテゴリに分けることができます。
ADFビジネス・コンポーネント・アプリケーション・モジュール
ADFビジネス・コンポーネントを使用するアプリケーションでは、アプリケーション・モジュール作成時に自動的にデータ・コントロールが作成され、データ・コントロールにはアプリケーション・モジュールの全機能が含まれます。
ADFビジネス・コンポーネント・アプリケーション・モジュールを使用するための詳細なガイドについては、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「アプリケーション・モジュールによるビジネス・サービス」を参照してください。
データ・コントロール・フレームワークを両方とも拡張するデータ・コントロール(「アダプタ・データ・コントロール」)
これにはEJB、Bean、Webサービス(SOAPベースおよびRESTful)、およびURLのデータ・コントロールが含まれ、これらはこのガイドの説明対象です。
Beanデータ・コントロール・タイプに基づくカスタム・データ・コントロール
データ・コントロール・フレームワークに基づき、Beanデータ・コントロールを拡張しないカスタム・データ・コントロール
アダプタ・データ・コントロール・フレームワークを拡張しないカスタム・データ・コントロール
このカテゴリは主に、アダプタ・フレームワークが開発される前に開発されたデータ・コントロールからなります。
このガイドでは主に、アダプタ・データ・コントロールの作成と使用を中心に説明しますが、情報の大部分はADFビジネス・コンポーネント・データ・コントロールにも適用されます。
次に、このガイドでは説明しないデータ・コントロールのタイプをいくつか示します。
プレースホルダ・データ・コントロール。これは空のデータ・コントロールで、まだ具体的な作業対象になるビジネス・サービスがないユーザーが、データバインドされたページを設計するために使用します。プレースホルダ・データ・コントロールを使用してデータバインドされたコンポーネントを設計し、ビジネス・サービスが提供された後、コンポーネントをこれらのビジネス・サービスに再バインドできます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「プレースホルダ・データ・コントロールによるページの設計」を参照してください。
JMXデータ・コントロール。これを使用して、Java Management Extension (JMX) MBeanに基づくデータ・コントロールを作成できます。
JavaBeanデータ・コントロール。Beanデータ・コントロールと混同しないでください。JavaBeanデータ・コントロールは、アダプタ・データ・コントロール・フレームワークより前に開発されたデータ・コントロール・タイプです。問合せ可能コレクションのサポートなど、後からBeanデータ・コントロールに組み込まれた主要機能の多くが備わっていません。
より広範囲のFusion Middlewareスタックに含まれる、その他のデータ・コントロール(BAMデータ・コントロールなど)。