9 Oracle Metadata Services

この章では、Oracle Metadata Services (MDS)フレームワークをシード・カスタマイズで使用して、ADFアプリケーションで永続性を変更する方法について概説します。

この章の内容は次のとおりです。

Oracle Metadata Services (MDS)について

Oracle ADFを使用した開発したFusion Webアプリケーションのカスタマイズは、Oracle Metadata Services (MDS)によってサポートされます。これは、JDeveloperツールと統合されるフレームワークであり、実行時にエンド・ユーザーによるADF機能のカスタマイズの管理も行います。

Oracle Metadata Services (MDS)フレームワークを使用すると、顧客が自社のユーザーや顧客に対してさらにカスタマイズでき、エンドユーザーもカスタマイズできるアプリケーションを作成できます。

図9-1に示すように、MDSは、ADF Faces、ADF Controller、ADFモデル、ADFビジネス・コンポーネントなど、ADFテクノロジ・スタック内のその他の一連のコンポーネントに適用できます。

図9-1 Metadata Servicesに関するADFアーキテクチャ

図9-1の説明が続きます
「図9-1 Metadata Servicesに関するADFアーキテクチャ」の説明

MDSを使用して、次のタイプのカスタマイズをアプリケーションで有効化できます。

  • シード・カスタマイズ

    アプリケーションのシード・カスタマイズとは、汎用化されたアプリケーションを特定のグループ(特定の産業やサイトなど)のニーズにあわせて変更するプロセスです。シード・カスタマイズはデプロイされたアプリケーションの一部として存在し、特定のデプロイ期間中保持されます。

  • ユーザー・カスタマイズ(変更永続性)

    ユーザー・カスタマイズを使用すると、エンド・ユーザーは実行時に個々のプリファレンス(表にどの列を表示するかなど)に合せてアプリケーションのコンテンツを変更して、その変更内容をそのユーザーのセッション間で一貫させることができます。

MDSのコアな利点

JDeveloperツールおよびOracle Metadata Services (MDS)フレームワークとの緊密な統合により、アプリケーション実行時のエンド・ユーザーによるFusion Webアプリケーションのカスタマイズが簡略化されます。

MDSのアーキテクチャと機能には、次の利点があります。

  • 顧客の要望に合せてさらにカスタマイズできる、実用的なアプリケーションを顧客に提供できます。

  • 単一のアプリケーションに、様々なユーザーやユーザー・セグメントを対象にした各種のカスタマイズを設置できます。

  • アプリケーションへのパッチ適用や更新の際に、カスタマイズを変更または削除する必要がありません。

MDSの主要概念

Fusion Webアプリケーションのカスタマイズは、カスタマイズ・コンテンツの格納と取得を可能にするOracle Metadata Services (MDS)リポジトリによってサポートされます。このリポジトリは、アプリケーション・レイヤーおよびサイトをベースADFアプリケーションと関連付けて、アプリケーションのエンド・ユーザーが表示および(オプションで)カスタマイズできるカスタマイズ・コンテンツを指定します。

MDSを理解するための中心となる概念は、次のとおりです。

  • カスタマイズ・レイヤーおよびカスタマイズ値。

    図9-2に示すように、カスタマイズされたアプリケーションはベース・アプリケーション(ベース・ドキュメント)と、カスタマイズを備えた1つまたは複数のレイヤーで構成されます。各レイヤーには複数のカスタマイズ・レイヤー値を設定できますが、通常、実行時には、そのうちの1つのレイヤー値のみが適用されます。カスタマイズ済アプリケーションが起動されると、カスタマイズの内容がベース・アプリケーションに適用されます。

    図う9-2 ベース・アプリケーションおよびカスタマイズ・レイヤー

    図9-2の説明が続きます
    「図9-2 ベース・アプリケーションおよびカスタマイズ・レイヤー」の説明

    カスタマイズ・レイヤーには、業種サイトなどがあります。industryレイヤーに対応するサンプル値は、financialおよびhealthcareです。

    カスタマイズはベースから個別に保存されているので、カスタマイズは安全にアップグレードでき、ベースへの新しいパッチはカスタマイズを分割せずに適用できます。

  • 静的カスタマイズおよび動的カスタマイズ。

    カスタマイズは、静的なものと動的なものに分類できます。静的カスタマイズにはアプリケーションの実行すべてに有効なレイヤー値が1つのみ設定されており、動的カスタマイズにはアプリケーションの実行コンテキスト(ユーザーなどの)に応じて変化する値が設定されています。

    ADFビジネス・コンポーネント・オブジェクトおよびその他のビジネス・サービス用データ・コントロール・オブジェクトのカスタマイズは、静的カスタマイズのみに設定されています。これらのオブジェクトはアプリケーションに対して1回だけロードされ、アプリケーションの継続中再利用されるためです。

    コントローラ・レベルまたはビュー・レベルのカスタマイズは、ユーザー・ロール(職責)またはその他のアプリケーション固有の基準に基づいて、実行時にレイヤー値を決定できるため、静的にも動的にも設定できます。たとえば、組織が異なるユーザーには画面上で異なるフィールドを表示するように、アプリケーションを設計できます。

  • カスタマイズ開発者ロール

    JDeveloperにはカスタマイズ開発者に特別の開発ロールが用意されているため、アプリケーションのカスタマイズ・レイヤーでの作業はベース・アプリケーション・コードから独立しています。「JDeveloper」ロールを「カスタマイズ開発者」ロールに切り替えると、アプリケーションのカスタマイズ可能な部分のみが編集できるようになり、新規オブジェクトは作成できません。

  • 変更永続性

    ADF Facesには変更永続性の機能が組み込まれており、ユーザーは表内で表示する列の選択などUIコンポーネントに変更を加え、その変更内容をセッションがアクティブの間、永続させることができます。MDSを使用すると、変更永続機能をセッション全体で機能するように拡張できるため、あるUIが含まれるアプリケーションを特定の状態で終了した後、そのアプリケーションを再起動したときに、以前の状態でUIを表示させることができます。

MDSの主要コンポーネント

エンド・ユーザーによるFusion Webアプリケーションのカスタマイズは、ADF機能のカスタマイズの格納と取得を可能にするOracle Metadata Services (MDS)メタデータ・リポジトリによってサポートされます。

MDSの主要コンポーネントは、次のとおりです。

  • MDSメタデータ・リポジトリ。

    MDSは、カスタマイズをメタデータ・リポジトリに格納し、実行時にこのカスタマイズを取得してベース・メタデータにマージし、カスタマイズ済アプリケーションを公開します。

    MDSリポジトリはファイル・ベースまたはデータベース・ベースのいずれかです。本番環境には、データベース・ベースMDSリポジトリをお薦めします。これには、効率的な設定ベースの問合せ、原子性トランザクション・セマンティック、バージョニング、および実行環境で選択したユーザーへのメタデータ変更を分離してテストする機能などの利点があります。メタデータ・リポジトリ設定の詳細は、『Oracle Fusion Middlewareの管理』「メタデータ・リポジトリの管理」を参照してください。

  • カスタマイズ・クラス。

    カスタマイズ・クラスとは、ベース定義メタデータに適用するカスタマイズを定義するためにMDSが使用するインタフェースです。各カスタマイズ・クラスでカスタマイズ・レイヤー(industrysiteなど)を定義して、複数のレイヤー値を含めることができます。

  • メタデータ・アーカイブ(MAR)。

    MARファイルは、選択したメタデータの圧縮済アーカイブで、アプリケーションのカスタマイズをMDSリポジトリにデプロイする際に使用します。

MDSプロセス・フローの概要

Oracle Metadata Services (MDS)フレームワークを使用したFusion Webアプリケーションのエンド・ユーザーによるカスタマイズをサポートする場合、JDeveloperツールでサポートされている段階的なプロセスに従います。

アプリケーションでMDS使用する一般的なステップは、次のとおりです。

  1. デザイン・タイムにJDeveloperで使用し、アプリケーションで使用可能にするカスタマイズ・クラスを作成します。

  2. 任意のページに対するシード・カスタマイズまたはカスタマイズ可能にするその他のアーティファクトを有効化します。

  3. adf-config.xmlファイルでカスタマイズ・クラスを指定します。

  4. オプションで、アプリケーションのランタイム・カスタマイズに制限を設定します。

  5. オプションで、エンドユーザーのカスタマイズを有効化し、カスタマイズできるコンポーネントやそのプロパティを指定します。さらに、ページ固有のカスタマイズの構成を設定し、子コンポーネントの並替えなどに対応するプログラム上のカスタマイズを実装できます。

  6. カスタマイズ・レイヤーとその値をCustomizationLayerValues.xmlファイルで指定します(レイヤー値を決定し、カスタマイズ開発者が「カスタマイズ・コンテキスト」ウィンドウで使用できるようにします)。

  7. JDeveloperで、Studio開発者ロールまたはカスタマイズ開発者ロールを使用して、追加するシード・カスタマイズを実装します。

  8. カスタマイズ可能なアプリケーションをデプロイするサーバーで、MDSリポジトリを構成していない場合には、構成します。

  9. MARファイル内のカスタマイズをパッケージ化し、そのMARをアプリケーション・サーバーにデプロイするアプリケーションのEARファイルの一部として追加します。

MDSの詳細について

エンド・ユーザーによるFusion WebアプリケーションのOracle Metadata Services (MDS)カスタマイズを可能にする準備ができたら、Oracle Fusion Middlewareドキュメント・ライブラリのこれらのタスクに対応するドキュメントを参照してください。

次のリソースには、MDSの使用に関する詳細が記載されています。