この章では、ドメイン値マップの概要と、Service Busサービスでそれらを使用して、様々なドメインによって使用される用語を関連付けてオブジェクトのように記述する方法について説明します。また、Service Busプロジェクト内でドメイン値マップを作成する方法についても説明します。
この章の内容は次のとおりです。
ドメイン値マップの詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップの操作に関する項を参照してください。
ドメイン値マップによって、特定のフィールドに対して1つのドメインで使用される値が、その同じフィールドに対して他のドメインで使用される値に関連付けられ、複数のボキャブラリまたはシステム間での値のマッピングが可能になります。たとえば、国コード、市区町村コード、通貨コードなどをマップできます。マッピングが必要なフィールドの数に応じて、1つのService Busプロジェクトで複数のドメイン値マップを使用できます。ドメイン値マップは、相互参照に似ていますが、それらは静的定義に基づいています。ドメイン値マップは、デザインタイムに作成して移入し、ランタイムにデプロイします。ドメイン値マップ・データは相互参照のように実行時アクティビティによって変更されることはなく、ドメイン値マップはルックアップのためのみに使用されます。
ドメイン値マップは、複数のOracle SOA Suiteコンポーネント間で使用できます。Service Busでは、JDeveloperとOracle Service Busコンソールの両方でドメイン値マップを作成できます。
Service Busメッセージ・フローでは、一連のDVM関数を使用して、XQuery式およびXSLT変換からドメイン値マップを参照し、受信メッセージ内の情報に基づいて実行時に値をルックアップできます。これらの関数を使用することで、Service Busは1つのシステムから受信するデータを別のシステムに送信されるデータにマップする方法を認識します。
JDeveloper内のDVM関数には、XSLTマッパー、XQuery Mapperおよび式エディタからアクセスできます。Oracle Service Busコンソールでは、これらの関数には式および条件の各エディタから使用できます。Service Bus DVM関数の詳細は、「ドメイン値マップ関数」を参照してください。
JDeveloperでService Busプロジェクト内にドメイン値マップを作成し、パイプラインおよび分割-結合のXQuery式でそれらを使用して外部システム間でオブジェクトをマップできます。ドメイン値マップは通常、1つのフィールドのみに対してマッピングを定義するため、パイプラインまたは分割-結合では複数のドメイン値マップを参照できます。
Oracle Service Busコンソールを使用している場合、新しいドメイン値マップを作成するか、最初にJDeveloperで作成したドメイン値マップをDVMリソースにアップロードできます。
DVMを作成するときは、ドメイン値マップの対象となるフィールドの対応する値とともにデータを共有する最大2つのエンド・システムの名前を定義します。マップを作成した後、DVM定義エディタで追加のドメインおよび値を定義できます。
始める前に
「JDeveloperでのドメイン値マップの作成」に従って、JDeveloperですでに作成済のドメイン値マップ・ファイルをアップロードする場合は、そのファイルがシステムで使用可能であることを確認してください。
コンソールでDVMリソースを作成するには:
マップへの追加ドメインを定義でき、それらはドメイン値マップに列として表されます。新しいドメインそれぞれには、実行時のルックアップに含めるため、またはマッピングを修飾するためのみに使用される値を含めることができます。ドメイン名は、タイプNCName (non-colonized name、コロンを含まない有効なXML要素名)である必要があります。
ドメイン値マップにドメインを追加するには:
ドメイン値はドメイン値マップの行に表示され、各行には、各ドメインにマッピングされる値が含まれます。ドメイン間のマッピングを完全に定義するために必要な数のドメイン値を追加できます。
ドメイン値マップにドメイン値を追加するには:
Oracle Service Busコンソールを使用している場合、次の手順を使用して既存のドメイン値マップを変更します。
コンソールでドメイン値マップを編集するには:
プロジェクト・ナビゲータで、編集するドメイン値マップが含まれているプロジェクトおよびフォルダを開きます。
DVMリソース名をクリックします。
ソース・ファイルを変更するには、次のように実行します。
ツールバーの「ソースの編集」をクリックします。
「ソースの編集」ダイアログが表示されます。
アップロードする新しい相互参照ファイルを参照して選択するには、「参照」をクリックします。
ファイルのコンテンツを変更するには、ダイアログの「コンテンツ」セクションでコードを直接更新します。
「保存」をクリックします。
マップにドメインを追加するには、「ドメイン値マップへのドメインの追加方法」を参照してください。
ドメイン値を追加するには、「ドメイン値マップへのドメイン値の追加方法」を参照してください。
ドメインを編集するには、「マップ表」でドメインを選択し、「編集」をクリックします。「ドメインの更新」ダイアログで、「ドメイン値マップへのドメインの追加方法」に記載されている変更を実行します。
値を変更するには、「マップ表」で値名をダブルクリックし、新しい値を入力します。
DVM定義エディタのツールバーで、「保存」をクリックします。
セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。
削除するリソースを参照しているリソースがある場合、そのリソースを削除する前にそれらの参照を削除します。リソースは他のリソースによって参照されていても削除できますが、その場合、削除されたリソースへの未解決の参照が原因で、競合が発生する可能性があります。
ドメイン値マップを削除する前に、リソースまたは依存性を確認します。Oracle Service Busコンソールの場合、DVM定義エディタでDVMを開き、右上にある「ツール」をクリックして「参照」を選択し、サービスで参照を使用しているかどうかを調べます。JDeveloperでは、DVMを右クリックして、「依存性の参照」を選択します。
DVMリソースを削除するには:
Service Busで提供されているDVM XPath関数を使用して、実行時に行われるドメイン値ルックアップを定義します。XPath関数によって、単一値または複数値のいずれに対しても様々な方法でルックアップを実行できます。これらのXPath関数は、式ビルダーで使用して式を作成したり、XSLTマッパーで使用して変換を作成できます。「式ビルダー」ダイアログには、いくつかのパイプライン・アクティビティおよび分割-結合操作からアクセスできます。
Service Busによって提供されるDVM関数の詳細は、「ドメイン値マップ関数」を参照してください。Oracle Service Bus Console式エディタおよび条件エディタの一般情報と手順については、「エディタ・ワークスペースのテキスト・フィールドでの式の構築」を参照してください。
JDeveloperでのDVM関数の使用の詳細、例および手順は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のドメイン値マップ関数の使用方法に関する項を参照してください。この情報は、Oracle Service Busコンソールを使用する場合にも役立ちます。