データ サービス開発者ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

AquaLogic Data Services Platform プロジェクトとプロジェクトのコンポーネント

BEA Aqualogic Data Services Platform に対応したプロジェクトは、2 通りの方法で WebLogic Workshop に追加できます。

WebLogic Workshop に関連した基本のメニュー、共通の動作、およびルック アンド フィールが AquaLogic Data Services Platform に適用されます。WebLogic Workshop の詳細については、以下を参照してください。


http://edocs.beasys.co.jp/e-docs/workshop/docs81/index.html

この章では以下について説明します。

この章の主な内容は以下のとおりです。

 


AquaLogic Data Services Platform ベースの BEA WebLogic アプリケーション

前述のように、AquaLogic Data Services Platform プロジェクトが自動的に含まれた WebLogic Workshop アプリケーションを作成できます。または、任意の BEA WebLogic アプリケーションに AquaLogic Data Services Platform プロジェクトを追加できます。

注意 : 多くの場合、AquaLogic Data Services Platform クエリは、AquaLogic Data Services Platform の開発専用の WebLogic Workshop アプリケーションにまとめるのが適しています。その場合、他のアプリケーションは DSP Mediator API または AquaLogic Data Services Platform コントロールを通じてクエリにアクセスできます。クライアント アプリケーションから AquaLogic Data Services Platform の関数およびプロシージャにアクセスする方法の詳細については、『クライアント アプリケーション開発者ガイド』を参照してください。

AquaLogic Data Services Platform のバージョン番号を確認する

AquaLogic Data Services Platform をアプリケーションで使用できるかどうか、または実行中のバージョンを確認するには、BEA WebLogic Server を起動して Administration Console にアクセスします。

例として、BEA WebLogic で提供しているサンプル ドメインの WebLogic Server Administration Console には、次の URL からアクセスできます。


http://localhost:7001/console

[コンソール|バージョン] ページに移動して ([コンソール] は一番上のメニュー項目)、AquaLogic Data Services Platform のバージョン番号と作成日を見つけます。

AquaLogic Data Services Platform ベースのアプリケーションの作成

AquaLogic Data Services Platform ベースのアプリケーションを作成するには、WebLogic Workshop メニューから [ファイル|新規作成|アプリケーション] を選択します。ダイアログが表示されたら、[Data Services Application] を選択します (図 2-1)。

図 2-1 新しい AquaLogic Data Services Platform アプリケーションの作成

新しい AquaLogic Data Services Platform アプリケーションの作成

アプリケーションの名前は「Untitled」から別の名前に変更することができます。新しいアプリケーションには初期の AquaLogic Data Services Platform プロジェクトが自動的に含まれています。

図 2-2 新しい AquaLogic Data Services Platform アプリケーションのアプリケーション ビュー

新しい AquaLogic Data Services Platform アプリケーションのアプリケーション ビュー

[ファイル|保存]、[ファイル|名前をつけて保存]、または [ファイル|すべて保存] コマンドを使用して、アプリケーションをいつでも保存できます。[すべて保存] はアプリケーションで変更されたファイルをすべて保存します。

たとえば「myLD」という名前で WebLogic Workshop アプリケーションを最初に作成すると、アプリケーションのルート ディレクトリに myLD.work というファイルが作成されます。このファイルを使用して Workshop を呼び出すと、アプリケーションも開かれます。

アプリケーションには AquaLogic Data Services Platform や他のタイプの WebLogic Workshop プロジェクトをいくつでも含めることができます。

AquaLogic Data Services Platform プロジェクトの既存の BEA WebLogic アプリケーションへの追加

1 つまたは複数の AquaLogic Data Services Platform プロジェクトを任意の WebLogic Workshop アプリケーションに追加することもできます。

それには、[ファイル|新規作成|プロジェクト] を選択します。プロジェクト作成ダイアログが表示されたら、[Data Service Project] を選択します。

図 2-3 新しい AquaLogic Data Services Platform アプリケーションの [アプリケーション] タブ

新しい AquaLogic Data Services Platform アプリケーションの [アプリケーション] タブ

AquaLogic Data Services Platform プロジェクトの主なコンポーネント

新しい AquaLogic Data Services Platform アプリケーションまたはプロジェクトを作成すると、AquaLogic Data Services Platform プロジェクト フォルダも作成されます。これがプロジェクトのルート ディレクトリになります (図 2-3 を参照)。ld-server-app.jarmediator.jar の 2 つの Java アーカイブ (.jar) ファイルがアプリケーションのライブラリ フォルダに追加されます。後者のファイルは、サービス データ オブジェクト (SDO) の作成を管理します。詳細については、『クライアント アプリケーション開発者ガイド』を参照してください。

表 2-4 に、主な AquaLogic Data Services Platform のファイル タイプとその目的を示します。

表 2-4 AquaLogic Data Services Platform のコンポーネントとファイル タイプ
コンポーネント
目的
データ サービス (.ds ファイル)
データ サービスは DS ファイルに格納され、アプリケーションのどこにでも置くことができる。各データ サービス ファイルは XQuery ドキュメントである。

注意 : DS ファイルには多数の XQuery と他の自動生成されたプラグマ ディレクティブが含まれている可能性があるため、このファイルを直接編集する場合は慎重に行う必要がある。

モデル ダイアグラム (.md ファイル)
モデル ダイアグラムはさまざまなデータ サービス間の関係のグラフィカルな表現を提供する。データ サービス自体は AquaLogic Data Services Platform クエリで使用できる物理データ サービスと論理データ サービスを表している。
モデル ダイアグラムには .md という拡張子が付いていて、AquaLogic Data Services Platform プロジェクト内のどこにでも置くことができる。
メタデータ情報
メタデータ情報は JAR ファイルに関連付けられた META-INF フォルダに格納されている。このライブラリ フォルダの編集できない内容には、データ サービスが使用するデータ ソースについての情報がある。
スキーマ (.xsd ファイル)
データ サービスは通常、XML 型に関連付けられており、その物理表現は XML スキーマ ファイルである。スキーマ ファイルはアプリケーション内のどこにでも置くことができる。スキーマはメタデータ インポート ウィザードによって自動的に作成され、アプリケーションの schemas プロジェクト内に置かれる。
スキーマ ファイルはテキスト エディタを使用して手動で作成または変更できる。AquaLogic Data Services Platform のデザイン ビューと、データ サービスを含むモデル ダイアグラムには、組み込みのスキーマ エディタもある。
データ サービスに関連付けられている XML 型は、データ サービス内の各関数の戻り値型でもある。戻り値型は、クエリによって返されるドキュメントの形式を正確に記述する。
戻り値型は、XQuery エディタを使用して、またはソースで直接変更できる。ただし、通常この操作は [XML 型の保存および関連付け] コマンドと一緒に行う必要がある (詳細については、「単純なデータ サービス関数の作成」を参照)。
XQuery 関数ライブラリ
(.xfl ファイル)
XQuery 関数ライブラリには、通常、アプリケーション データ サービスでデータの変換に使用できるユーティリティ XQuery 関数が含まれている。一般的な例としては、毎日の為替レートに基づいて通貨を変換するルーチンが挙げられる。そのような変換関数はアプリケーション内のどのデータ サービスからも使用できる。

AquaLogic Data Services Platform プロジェクトで使用されるその他のファイルには、カスタム更新ロジックを含む Java ファイルや、sdo.xsdconfig のような SDO コンフィグレーション ファイル (XMLBean 技術で XMLBean ではなく SDO を作成できるようにする) などがあります。

データ サービス プロジェクトの右クリック メニューのオプション

AquaLogic Data Services Platform では、標準の WebLogic Workshop プロジェクトの右クリック メニューにいくつかのオプションが追加されています (図 2-5)。

図 2-5 データ サービス プロジェクトの右クリック メニューのオプション
新しい AquaLogic Data Services Platform アプリケーションの [アプリケーション] タブ

次の表では、プロジェクトの右クリック メニューに追加された AquaLogic Data Services Platform の機能について説明します。

表 2-6 Workshop の右クリック メニューのデータ サービス拡張
オプション
使用方法
[新規作成]
WebLogic Workshop プロジェクト内に以下のデータ サービス固有のアーティファクトを作成できる。
  • モデル ダイアグラム
  • データ サービス
  • XQuery 関数ライブラリ
インストール
このオプションを使用して新しいデータ サービス ライブラリをインストールできる。
[ソース メタデータのインポート]
ソース メタデータをプロジェクトにインポートするためのダイアログを開く。
[ソース メタデータの更新]
プロジェクト全体のソース メタデータを更新するためのダイアログを開く。
[SQL 使用のためのデータ サービスのパブリッシュ]
AquaLogic Data Services Platform JDBC ドライバを介してパブリッシュするためにプロジェクトのアーティファクトを選択するダイアログを開く。

データ サービスの右クリック メニューのオプション

AquaLogic Data Services Platform では、データ サービスに関連付けられた右クリック メニューにいくつかのオプションが追加されています(図 2-7)。

図 2-7 データ サービスの右クリック メニューのオプション

データ サービスの右クリック メニューのオプション

次の表では、標準の右クリック メニュー オプションに追加された AquaLogic Data Services Platform の機能について説明します。

表 2-8 Workshop の右クリック メニューのデータ サービス拡張
オプション
使用方法
[用途の検索]
各種の AquaLogic Data Services Platform アーティファクトが使用されている場所を調べる方法については、「データ サービス アーティファクトの用途」を参照。
[リファクタ]
データ サービスのリファクタリング操作の詳細については、「AquaLogic Data Services Platform アーティファクトのリファクタリング」を参照。
[サービス バスの WSDL ファイルの生成]
AquaLogic Service Bus のユーザがデータ サービス関数を呼び出すための WSDL ファイルを作成する。詳細については、『クライアント アプリケーション開発者ガイド』の「AquaLogic Service Bus によるデータ サービスへのアクセス」の章を参照。
[ソース メタデータの更新]
データ サービスのソース メタデータを更新するためのダイアログを開く。

WebLogic Workshop IDE の使用

WebLogic Workshop はオンライン ドキュメントおよび印刷用ドキュメントで詳細に説明されています。最初に次のページを参照してください。


http://edocs.beasys.co.jp/e-docs/workshop/docs81/index.html

または、WebLogic Workshop には完全なオンライン ヘルプが用意されています。

図 2-9 AquaLogic Data Services Platform ベースのプロジェクトにおける WebLogic Workshop コンポーネント

AquaLogic Data Services Platform ベースのプロジェクトにおける WebLogic Workshop コンポーネント

表 2-10 では、以下について簡単に説明します。

表 2-11 では、AquaLogic Data Services Platform プロジェクトでよく使用される WebLogic Workshop メニュー コマンドについて説明します。

表 2-11 AquaLogic Data Services Platform で使用される WebLogic Workshop のメニュー サービスの概要
サービス
目的
[ファイル] メニュー
AquaLogic Data Services Platform プロジェクトを操作する場合、以下の [ファイル] メニュー オプションがよく使用される。
  • [保存]、[名前をつけて保存]、[すべて保存]。[保存] コマンドは、現在のファイルを保存する。[すべて保存] コマンドは、プロジェクト内で開いているファイルまたは変更されたファイルをすべて保存する。アプリケーションで行ったすべての変更を確実に永続化するには、[すべて保存] コマンドを使用する。
  • インポート コマンド。インポート ファイル ブラウザを使用して、アプリケーションのファイルまたはライブラリを追加する。たとえば、外部で開発したスキーマがある場合は、インポート コマンドおよび関連するファイル ブラウザを使用して、そのコピーをアプリケーションに取り込むことができる。

プロパティ エディタ

プロパティ エディタを使用して、WebLogic Workshop アーティファクトに関連する詳細を表示することができます (図 2-12 を参照)。たとえば、デザイン ビュー (「デザイン ビュー」) で一般的なデータ サービスをクリックすると、プロパティ エディタにはそのサービスの詳細が表示されます。データ サービス内の関係表現をクリックすると、その関係についてのプロパティの詳細が表示されます。ほとんどの場合、プロパティ設定は編集やコンフィグレーションが可能です。

図 2-12 データ サービスの関係プロパティ

データ サービスの関係プロパティ

ファイル内のテキストを検索する

WebLogic Workshop には、[編集] メニューから使用できる [ファイル内の検索] オプションによる包括的なファイル検索機能があります ([編集|ファイル内の検索])。

図 2-13 Workshop のファイル検索機能

Workshop のファイル検索機能

[ファイル内を検索] を使用すると、特定のデータ ソースや関数の使用など、任意の AquaLogic Data Services Platform アーティファクトの参照を検索することができます。

WebLogic Workshop における AquaLogic Data Services Platform の追加機能の紹介

AquaLogic Data Services Platform プロジェクトでは、以下の機能をサポートするために、基本の WebLogic Workshop 環境にメニュー項目とビューが追加されています。

メタデータのインポート

データ サービスは、AquaLogic Data Services Platform クエリで使用できるデータ モデルや物理および論理データ ビューの作成の中心となるものです。データ サービス作成の最初の手順は、対応する物理データ サービスを作成できるように、物理データ ソースからメタデータをインポートすることです。

図 2-14 AquaLogic Data Services Platform プロジェクトのメタデータのインポートの選択

AquaLogic Data Services Platform プロジェクトのメタデータのインポートの選択

AquaLogic Data Services Platform プロジェクトへのメタデータのインポートとメタデータの更新の詳細については、「エンタープライズ メタデータの取得」を参照してください。

データ モデル

データ モデル インタフェースを通じて、以下の操作を行うことができます。

データ モデルの開発と管理の詳細については、「データ サービスのモデル化」を参照してください。

データ サービス

各データ サービスには、デザイン ビュー、XQuery エディタ ビュー、ソース ビュー、テスト ビュー、クエリ プラン ビューがあります。各データ サービスは 1 つの XQuery ソース ファイルに基づいています。どのデータ サービスにも XML 型 (XDS ファイル) が関連付けられています。

データ サービスは読み取り関数およびナビゲーション関数とプロシージャで構成されています。読み取り関数はデータ サービスの XML 型を返す必要があります。ナビゲーション関数はネイティブ データ サービスの XML 型を返します。プロシージャは副次的な関数とも呼ばれ、何も返す必要はありません。

図 2-16 サンプル データ サービス

サンプル データ サービス

デザイン ビュー

デザイン ビューはすべてのデータ サービスの中心的な参照基準となります。デザイン ビューから以下の操作を行うことができます。

データ サービスの開発と管理の詳細については、「データ サービスの設計」を参照してください。

XQuery エディタ ビュー

XQuery エディタ ビューでは、変換と同様に、データ サービス関数の要素を関数の戻り値型に反映させることにより、クエリ関数を開発できます。

図 2-17 XQuery エディタのサンプル クエリと戻り値型

XQuery エディタのサンプル クエリと戻り値型

このグラフィカル エディタは、1.0 XQuery 標準の一般的な構文を直接サポートしています。ビジネス ロジックの開発と管理に役立つ複数のリソースが用意されています。これらのリソースは WebLogic Workshop の [表示|ウィンドウ] メニューから使用できます。

XQuery エディタ ビューを使用したクエリの開発の詳細については、「XQuery エディタの操作」を参照してください。

XQuery 関数パレット

標準の XQuery 関数と BEA 固有の関数をサポートする XQuery 関数パレット (図 2-18) があります。この関数パレットも Workshop の [表示|ウィンドウ] メニューから使用できます。

図 2-18 XQuery 関数パレット

XQuery 関数パレット

Workshop のすべてのペインと同様に、XQuery 関数パレットは WebLogic Workshop ウィンドウのどこにでも配置できます。このパレットから関数を XQuery エディタ ビューやソース ビューにドラッグできます。

XQuery 構築パレット

AquaLogic Data Services Platform プロジェクトから XQuery 構築パレット (図 2-19) にアクセスできます。このパレットは、XQuery エディタ ビューまたはソース ビューでのさまざまな XQuery 文の作成をサポートします。FLWGR、FGWOR、FWGR などのさまざまな構文のプロトタイプは、最も一般的な XQuery 構文である FLWR (for-let-where-return) のバリエーションです。

図 2-19 XQuery 構築パレット

XQuery 構築パレット

たとえば、FLWGR は AquaLogic Data Services Platform の拡張である group by を追加したものです。このプロトタイプはソース ビューで次のように表示されます。

for $var in ()
let $var2:=()
where (true)
group by () as $var3 with partitions $var as $var4
return
()

group by や他の BEA XQuery 拡張の詳細については、『XQuery 開発者ガイド』を参照してください。

データ サービス パレット

データ サービス パレット (図 2-20) は AquaLogic Data Services Platform プロジェクトでのみ使用できます。AquaLogic Data Services Platform の XQuery エディタに、データ サービスと XFL (XQuery 関数ライブラリ) ルーチンへのアクセスを提供します。

図 2-20 データ サービス パレット

データ サービス パレット

XQuery エディタの使用の詳細については、「XQuery エディタの操作」を参照してください。

XML 型と戻り値型を編集する

モデル ダイアグラムとデータ サービスの XML 型、および XQuery エディタの戻り値型を変更するためのスキーマ エディタがあります。「論理データ サービスの XML 型の操作」を参照してください。ほとんどのエディタ オプションは右クリック メニューから使用できます。

戻り値型に関する右クリック メニュー コマンドは、XML 型エディタの場合と若干異なります。XQuery エディタでは、クエリ結果ドキュメントの形式をより正確に指定する手段として、if-then-else 構文、ゾーン、要素の複製などを作成できるためです。「戻り値型の変更」を参照してください。

図 2-21 XML 型要素の編集

XML 型要素の編集

テスト ビュー

クエリを開発したら、テスト ビューを使用してクエリを実行できます。詳細については、「クエリ関数のテストとクエリ プランの表示」を参照してください。

ソース ビュー

ソース ビューで作業すると、ビルド済みの XQuery 関数や構文のソースへの追加、データ サービスの編集変更などを簡単に行うことができます。詳細については、「XQuery ソースの操作」を参照してください。

クエリ プラン ビュー

生成された SQL を検証し、パフォーマンス改善の余地について検討するために、AquaLogic Data Services Platform で開発された特定の関数のクエリ プランを確認できます。「クエリ プラン ビューの使用」を参照してください。

クエリ プラン ビューア ユーティリティ

クエリ プラン ビューア ユーティリティは、AquaLogic Data Services Platform 対応の WebLogic Workshop アプリケーションの [スタート] メニューから使用できます。

[スタート|すべてのプログラム|BEA WebLogic Platform 8.1|BEA AquaLogic Data Services Platform 2.5|Query Plan Viewer]

このユーティリティはデータ サービスの開発中に使用できるものですが、主にクライアント アプリケーションの開発者によって使用されます。ユーティリティに関するドキュメントについては、『クライアント アプリケーション開発者ガイド』の「SQL を使用したデータ サービスへのアクセス」を参照してください。

データ サービス アーティファクトの用途

AquaLogic Data Services Platform アーティファクトが他のどのアーティファクトで使用されているかを確認すると便利な場合があります。たとえば、XML 型で変更を行う前に、影響を受ける可能性のある他のデータ サービスを確認することは重要です。もちろん、AquaLogic Data Services Platform の『管理ガイド』の「メタデータの表示」で説明されているように、メタデータ ブラウザからでも確認できますが、WebLogic Workshop のナビゲーション ペインや AquaLogic Data Services Platform デザイン ビューのコンテキストで確認できると一層便利です。

たとえば、RTLApp でデータ サービスを右クリックすると、[用途の検索] を含むさまざまなオプションが表示されます (図 2-22)。

図 2-22 RTLApp でのデータ サービスの用途の検索

RTLApp でのデータ サービスの用途の検索

このオプションを選択すると、図 2-23 のように、アーティファクトの用途が表示されます。

図 2-23 RTLAPP での Customer データ サービスの用途

RTLAPP での Customer データ サービスの用途

以下の種類の AquaLogic Data Services Platform アーティファクトの用途を検索できます。

アプリケーションまたはプロジェクトのデータ サービス ライブラリを更新する

AquaLogic Data Services Platform アプリケーションを保存すると、その JAR ライブラリ ファイルがアプリケーションにバインドされます。それ以降に、AquaLogic Data Services Platform の新しいバージョンに移行する場合は、アプリケーションも最新のライブラリ ファイルにアップグレードする必要があります。詳細については、AquaLogic Data Services Platform の『インストール ガイド』を参照してください。

 


アプリケーション、JAR、および SDO メディエータ クライアントのビルドおよびデプロイ

AquaLogic Data Services Platform は必要に応じてアプリケーションを再ビルドしようとします。ただし、ビルドを直接開始する必要がある場合もあります。

アプリケーションのビルド、デプロイ、および更新

表 2-24 では、関連する [ビルド] メニュー オプションとその使用方法を説明します。

表 2-24 [ビルド] メニューのオプションと使用方法
[ビルド] メニュー オプション
使用方法
[アプリケーションのビルド]
アプリケーションをビルドまたは再ビルドする。その結果、すべてのプロジェクト固有の JAR ファイルの内容が、基底のプロジェクト スクリプトに従って更新される。アプリケーションがすでにデプロイされている場合は、ビルドが成功した後で自動的に再デプロイされる。
個々のプロジェクトをビルドすることもできる。
[アプリケーションのクリーンアップ]
基底の EJB と、コンパイル プロセスによって生成された他のリソースをアンデプロイしようとする。サーバの状態によっては、この操作が行えない場合がある。[アプリケーションのクリーンアップ] で問題が解決しない場合は、WebLogic Server を停止して再起動する。
[アプリケーションのクリーンアップ] は、プロダクション サーバではなく、反復的な開発の際に Java ファイルのコンパイルの繰り返しが原因で発生する問題を解決する。
個々のプロジェクトをクリーンアップすることもできる。
[EAR のビルド]
アプリケーションの Java アーカイブ (JAR) ファイルを作成する。EAR ファイルの名前はアプリケーションの名前と同じになる。

AquaLogic Data Services Platform プロジェクトを再ビルドする場合

AquaLogic Data Services Platform ベースのプロジェクトからファイルを削除したときは、プロジェクトを再ビルドする必要があります。再ビルドはプロジェクト レベルでもアプリケーション レベルでも行うことができます。一般に、複数のプロジェクトを変更した場合でない限り、アプリケーション全体を再ビルドする必要はありません。

次の 2 つの手順でプロジェクト (アプリケーション) を再ビルドします。

  1. プロジェクト (アプリケーション) をクリーンアップします。それには、[アプリケーション] ペインでプロジェクト (アプリケーション) を右クリックして、表示されたクリーンアップ オプションを選択します。または、WebLogic Workshop の [ビルド] メニューから、該当するクリーンアップ オプションを使用します。
  2. 該当する右クリック メニュー オプションまたは [ビルド] メニュー オプションを使用して、プロジェクト (またはアプリケーション) をビルドします。
注意 : テスト ビューで関数を実行しようとして不意に失敗した場合は、クエリの実行を再試行する前に、アプリケーションをクリーンアップして再ビルドすると効果的な場合があります。

アプリケーションをデプロイする

アプリケーションがすでにデプロイされている場合は、アプリケーションを再ビルドすると自動的に再デプロイされます。状況によっては、アプリケーションを最初にアンデプロイすることもできます。表 2-25 では、[アプリケーション] ペインでアプリケーション フォルダを右クリックしたときに使用できる、関連する [デプロイメント] メニュー オプションについて説明します。

表 2-25 [デプロイメント] メニュー オプション
アプリケーション レベルの右クリック メニューの [デプロイメント] オプション
使用方法
[デプロイメント|再デプロイ]
アプリケーションを再デプロイする。

注意 : アプリケーションをビルドすると自動的に再デプロイされる。

[デプロイメント|完全再デプロイ]
最初にサーバからアプリケーションを削除し、次にアプリケーションを再デプロイする。
[デプロイメント|アンデプロイ]
アプリケーションをサーバから削除する。

WebLogic Workshop アプリケーションのデプロイの詳細については、以下を参照してください。

SDO メディエータ API の作成

アプリケーションのクエリ関数を作成してテストしたら、クライアント アプリケーションで使用できるようにする必要があります。更新可能な関数へのアクセスを提供する主な手段として、SDO メディエータ API があります。

注意 : SDO プログラミング、およびメディエータ API を通じた Java クライアントでのデータ アクセスの詳細については、『クライアント アプリケーション開発者ガイド』の「データ プログラミング モデルと更新フレームワーク」を参照してください。

SDO メディエータ JAR を Workshop で生成する

SDO メディエータ クライアント Java アーカイブ (.jar) ファイルを作成する方法の 1 つは、右クリック メニュー オプションの [SDO メディエータ クライアントの構築] を使用する方法です。このメニュー オプションはアプリケーションのルート フォルダからのみ使用できます。

成功すると、アプリケーションのルート ディレクトリに SDO メディエータ クライアントが作成されます。ファイル名は次のようになります。

<name_of_your_application>-ld-client.jar

アプリケーションのライブラリ フォルダに、SDO メディエータ JAR ファイルも自動的に追加されます。

注意 : SDO メディエータ JAR ファイルを作成する前に、プロジェクトのすべてを最新の状態にし、ビルドしておきます。「アプリケーションのビルド、デプロイ、および更新」も参照してください。

SDO メディエータ API をコマンドラインで生成する

コマンドラインから ant スクリプトを使用して SDO メディエータ クライアント JAR ファイルを作成することもできます。

EAR ファイルが使用可能な場合

すでに EAR ファイルがある場合は、次のスクリプトを使用できます。

ant -f $WL_HOME/liquiddata/bin/ld_clientapi.xml
-Darchive=</your_path/name_of_your_application>.ear>

この場合、JAR ファイルの名前は EAR ファイルの名前から取られます。

<name_of_your_application>-ld-client.jar

EAR ファイルと同じディレクトリ内に作成されます。

SDO メディエータ JAR ファイルを生成する

アプリケーション ディレクトリを指定するだけで、SDO メディエータ クライアント JAR ファイルを生成できます (EAR ファイルが必要ない場合)。

ant -f $WL_HOME/liquiddata/bin/ld_clientapi.xml
-Dapproot=</your_path/name_of_your_application>/root>

この方法では、アプリケーション ルートのディレクトリ名を使用して JAR ファイル名を計算します。上記の場合、名前は root-ld-client.jar になります。この動作を希望しない場合は、次のように指定して、

-Dsdojarname=<MyApp-ld-client.jar>

この動作をオーバーライドできます。いずれの方法でも、JAR ファイルはアプリケーション ルート ディレクトリに生成されます。

デフォルト以外のディレクトリに JAR ファイルを生成する

いずれの場合でも、次のような追加の ant パラメータを指定して、

-Doutdir=</path/to/dir>

特定のディレクトリの場所に JAR ファイルを生成できます。

同様に、次のパラメータを使用して、

-Dtmpdir=</path/to/tmp>

生成された .java コードなどの一時ファイル用に代替ディレクトリを指定できます。

デフォルトの一時ファイルの場所は Java システム プロパティで次のように指定されています。

java.io.tmpdir

いずれの方法でも、コマンドラインからビルドした場合は、SDO mediator.jar ファイルはアプリケーションのライブラリ フォルダ (図 2-2) に追加されません。

 


AquaLogic Data Services Platform アーティファクトのリファクタリング

AquaLogic Data Services Platform プロジェクトのアーティファクトを移動、名前変更、または削除する必要がある場合があります。たとえば、許可のない個人に機密情報が公開されないようにするため、アプリケーションは最初にテスト データで開発されます。開発が済むと、アプリケーションは実際の保護されたデータ ソースと一緒にデプロイする準備が整います。リファクタリングを使用すると、AquaLogic Data Services Platform コンポーネントの名前の変更、削除、または移動が非常に簡単になります。

図 2-26 RTLApp の Address データ サービスで使用できるリファクタリング オプション

RTLApp の Address データ サービスで使用できるリファクタリング オプション

リファクタリングをしない場合、アーティファクト名を変更すると、すぐに無効な参照が生じる可能性があります。たとえば、データ サービス ファイルの名前を変更すると、そのファイルを参照している他のデータ サービスの関係関数が自動的に無効になります。リファクタリングの代わりとしては、特定のアーティファクトのすべての用途を手動で検索して、データ サービス ソースを手動で編集する方法があります。この方法は、特にプロジェクトが大きくなるほど、非常に手間がかかり、エラーが発生しやすくなります。

[リファクタ] オプションを使用すると、最初に、リファクタリングによる変更がアプリケーションのアーティファクトに与える影響が表示されます (図 2-27)。チェック ボックスを使用して、リファクタリング操作からアーティファクトを除外することができます。

注意 : リファクタリングを推奨されている要素を選択解除するときは慎重に行ってください。基底のソースを手動で変更しないと、アプリケーションをビルドまたはデプロイできなくなる可能性があります。
図 2-27 リファクタリングの影響を受けるアーティファクト

リファクタリングの影響を受けるアーティファクト

リファクタリングをサポートするアーティファクト

表 2-28 に、リファクタリングされるアーティファクトとそのオプションを示します。

表 2-28 リファクタリングをサポートするデータ サービス アーティファクトと使用可能なリファクタリング オプション
アーティファクト
リファクタリング オプション
データ サービス (DS ファイル)
移動、名前変更、安全な削除
XML ファイル ライブラリ (XFL ファイル)
移動、名前変更、安全な削除
データ サービス内で参照されるスキーマ (XSD ファイル)
移動、名前変更、安全な削除
関数 (データ サービスと XFL)
名前変更、安全な削除、パラメータの追加/削除
ネームスペース宣言
選択されたプレフィックスの名前を変更する、または、プロジェクト全体に変更を伝播する
スキーマ インポート (データ サービスと XFL)
選択されたスキーマ インポート プレフィックスの名前を変更する、または、プロジェクト全体に名前変更を伝播する
SQL オブジェクトとしてパブリッシュされたアーティファクト
移動、名前変更、安全な削除

移動、名前変更、パラメータの追加/削除の各操作は、通常、悪影響を与えることはありません。しかし、削除操作は、プロジェクトに悪影響を与える可能性があります。このため、削除の対象として選択したアーティファクトの用途が表示されます (図 2-29 を参照)。この情報から、リファクタリング操作の自動化とその結果のトレードオフを簡単に確認することができます。自分で追加の手動操作を行う必要がある場合もあります。

図 2-29 安全な削除操作の影響

安全な削除操作の影響

リファクタ オプションの設定

リファクタ オプションにアクセスする方法はアーティファクトによって異なります。

注意 : リファクタ操作に含めるのが望ましくないアーティファクトを選択解除することはできますが、その場合は、そのアーティファクトと、そのアーティファクトに依存しているファイルが無効になります。このため、通常は、リファクタリングされるアーティファクトの選択解除は行わないでください。
注意 : ネームスペース プレフィックスの場合、名前を変更するときは読みやすさや一貫性を考慮してください。ローカルな変更、またはグローバルな変更のいずれの場合も、コードに悪影響を与えることはありません。

さまざまなリファクタリング操作の影響

リファクタ操作のさまざまな影響の可能性を理解しておくと便利です。表 2-34 では、リファクタリングの操作ごとに、関連するアーティファクトに与える影響の可能性について説明します。

表 2-34 各種の AquaLogic Data Services Platform アーティファクトに対するリファクタリングの影響
アーティファクト
名前変更操作
移動操作
安全な削除操作
データ サービス
データ サービスの名前を変更する。
以下のものを更新する。
  • ソース内の名前
  • データ サービス関数のネームスペース URI
  • 依存するアノテーション
  • 依存する関数参照
  • 依存するモデル ダイアグラム
  • 依存するデータ サービス コントロール
  • 読み取り関数および関係関数に依存している関数
データ サービスをプロジェクト内の新しい場所に移動する。
移動操作では、「名前変更操作」で示したリストと同じアーティファクトが更新される。
依存関係についての警告を表示した後で、削除する。
  • データ サービスの読み取り関数
  • 関係関数
  • プライベート関数
  • XFL 関数
以下のものを更新する。
  • ソース内の名前
  • 他の関数の本文に含まれている、この関数の外部参照または内部参照 (ある場合)
  • 反転および等価変換のアノテーションに含まれている、この関数の参照 (ある場合)
なし
  • ソース内の名前を削除する。
  • 次のような依存関係を警告する。
    • 他の関数の本文に含まれている、この関数の参照
    • 反転および等価変換のアノテーションに含まれている、この関数の参照
  • ネームスペース宣言
  • スキーマ インポート宣言
以下のものを更新する。
  • プレフィックス宣言とソース内での用途 (ローカル)
  • プロジェクト全体における、指定されたネームスペース URI のプレフィックスの用途 (グローバル オプション)
なし
なし
外部スキーマ宣言
以下のものを更新する。
  • 外部スキーマ URI (ローカル)
  • プロジェクト全体の外部スキーマ URI (グローバル オプション)
なし
なし

 


XQuery 関数ライブラリの作成および使用

XQuery 関数ライブラリ (XFL) には、アプリケーションでデータ サービスや他の XFL が使用できる関数が含まれています。ライブラリは次のものを提供します。

XFL ファイル内の関数はデータ サービス クライアントから直接呼び出すことはできません。代わりに、他のデータ サービスによって使用されます。XFL 関数は、実行可能なアーティファクトのセット内で共有できる、ユーザ定義のルーチンを提供します。

XQuery 関数ライブラリ (.xfl ファイル) は、共有可能な変換、セキュリティ、および他の種類の関数を作成するのに適しています。

表 2-35 XQuery 関数ライブラリでサポートされるファイル タイプ
XFL ファイル タイプ
目的
リレーショナル
XQuery 関数をリレーショナル データ ソースと関連付ける。
Web サービス
XQuery 関数を WSDL と関連付ける。
Java 関数
XQuery 関数をクラス ファイルと関連付ける。
ユーザ定義
ユーザ定義の XQuery 関数。
外部データベース関数
外部の組み込みまたはカスタムのデータベース関数を登録して、データ サービスまたは他の XFL 関数から呼び出せるようにする。

最初の 3 タイプのファイルには、特定のタイプの物理ソース (リレーショナル、WSDL、またはクラス ファイル) のインスタンスにバインドされた関数が格納されます。ユーザ定義の XQuery 関数は、プロジェクト内のすべてのデータ サービスにわたって共通の関数を共有する機能を提供します。外部データベース関数は、アプリケーション プログラムに、ユーザ定義の SQL 関数または組み込みでベンダ固有の SQL 関数をデータ サービスから呼び出す機能を提供します。

XQuery 関数ライブラリは 2 通りの方法で作成できます。

XQuery 関数ライブラリはデータ サービス パレットから使用できます。

グローバル プレフィックスの変更の影響を受けるプレフィックス バインディングのリスト

XQuery 関数ライブラリのビュー

XQuery 関数ライブラリ (XFL) には多数の関数を含めることができます。AquaLogic Data Services Platform 対応プロジェクトにおいて、XFL デザイン ビューはデータ サービスのデザイン ビュー (「サンプル データ サービス」を参照) と似ています。主な違いは次のとおりです。

データ サービスで使用できるタブ方式 (ソース ビュー、XQuery エディタ ビュー、テスト ビュー、クエリ プラン ビュー) は、XQuery 関数ライブラリでも使用できます。同様に、XFL 関数には関連付けられたプロパティがあり、プロパティ エディタで表示できます。

注意 : XFL ファイルは反転関数の作成でも重要な役目を果たします。「ベスト プラクティスと高度なトピック」の「反転関数を使用したクエリ パフォーマンスの向上」を参照してください。

XFL 関数を作成する

データ サービス内の関数を、XML 関数ライブラリとしてプロジェクト全体で使用できるようにするのは難しくありません。たとえば、以下の関数は RTLApp の DataServices/RTLServices/Credit Card データ サービスで使用できます (ソース ファイルの別のセクションからのネームスペース宣言も含まれています)。

declare namespace ns1="ld:DataServices/BillingDB/CREDIT_CARD";

import schema namespace ns0="urn:retailerType" at "ld:DataServices/RTLServices/schemas/CreditCard.xsd";

declare namespace tns="ld:DataServices/RTLServices/CreditCard";
(: ... :)
declare function tns:getCreditCard() as element(ns0:CREDIT_CARD)* {
for $CREDIT_CARD in ns1:CREDIT_CARD()
return <ns0:CREDIT_CARD>
<CreditCardID>{fn:data($CREDIT_CARD/CC_ID)}</CreditCardID>
<CustomerID>{fn:data($CREDIT_CARD/CUSTOMER_ID)}</CustomerID>
<CustomerName>{fn:data($CREDIT_CARD/CC_CUSTOMER_NAME)}</CustomerName>
<CreditCardType>{fn:data($CREDIT_CARD/CC_TYPE)}</CreditCardType>
<CreditCardBrand>{fn:data($CREDIT_CARD/CC_BRAND)}</CreditCardBrand>
<CreditCardNumber>{fn:data($CREDIT_CARD/CC_NUMBER)}</CreditCardNumber>
<LastDigits>{fn:data($CREDIT_CARD/LAST_DIGITS)}</LastDigits>
<ExpirationDate>{fn:data($CREDIT_CARD/EXP_DATE)}</ExpirationDate>
{fn-bea:rename($CREDIT_CARD/STATUS,<Status/>)}
{fn-bea:rename($CREDIT_CARD/ALIAS,<Alias/>)}
<AddressID>{fn:data($CREDIT_CARD/ADDR_ID)}</AddressID>
</ns0:CREDIT_CARD>
};

この関数を XQuery ライブラリ内に作成する手順は次のとおりです。

  1. 最初の手順として、ライブラリがまだない場合は、ライブラリを作成して名前を付けます。
  2. [ファイル|新規作成|XQuery 関数ライブラリ]

    図 2-36 XQuery 関数ライブラリの作成


    XQuery 関数ライブラリの作成

  3. ライブラリに myXQueryLibrary などの名前を付けます。
  4. 新しく作成されたファイルに関数をコピーします。
  5. ライブラリ ファイルのネームスペースに一致するように関数宣言を変更します。

CREDIT_CARD 関数を含む XQuery ライブラリ ファイルのソースを以下に示します。簡単にするため、オブジェクトは個々にマップされた要素ではなく $x として返されています。

xquery version "1.0" encoding "WINDOWS-1252";
(::pragma xfl <x:xfl xmlns:x="urn:annotations.ld.bea.com"></x:xfl> ::)

declare namespace tns="lib:DataServices/myXQueryLibrary";

declare namespace ns1="ld:DataServices/BillingDB/CREDIT_CARD";
import schema namespace ns0="urn:retailerType" at "ld:DataServices/RTLServices/schemas/CreditCard.xsd";

declare function tns:getCreditCard() as element(ns1:CREDIT_CARD)* {
for $x in ns1:CREDIT_CARD()
return $x
};

XFL データベース関数のビュー

データベース関数ライブラリは、データベース関数の場所とシグネチャのみが含まれた XFL です。このライブラリにはデータベース関数のみを含めることができます。

データベース関数は、標準の JDBC 機能で提供される SQL サポートを拡張するために設計されています。次のような利点があります。

組み込みおよびユーザ定義の SQL 関数のサポート

データベース関数ライブラリでは、さらに 2 つのタイプの SQL 関数にアクセスできます。

関数をライブラリに登録すると、XQuery を通じて、または SQL として、その関数を使用できるようになります。

データベース XFL を作成して、データベース関数を登録する

以下の例では、このようなライブラリの作成方法を示します。

  1. この節で前述したように、新しい XFL を作成します。
  2. まだ実行されていない場合は、サーバを起動します。
  3. 新しいライブラリのタイトル バーを右クリックして、[データベース関数ライブラリとして指定...] を選択します(図 2-37)。
  4. 図 2-37 XFL のデータベース関数ライブラリとしての指定


    XFL のデータベース関数ライブラリとしての指定

  5. サーバで使用可能なデータ ソースのドロップダウン リストから、1 つまたは複数のデータ ソースを選択します (図 2-38)。データ サービスからアクセスする予定のある、組み込みまたはユーザ定義のデータベース関数が含まれているデータ ソースを調べておく必要があります。
  6. 注意 : データベース関数ライブラリを作成したら、XFL プロパティ エディタ (図 2-40 を参照) からデータベース関数を追加することができます。
    図 2-38 登録予定のデータベース関数が含まれているデータ ソースの選択


    登録予定のデータベース関数が含まれているデータ ソースの選択

  7. データ ソースを選択すると、特定のデータベース関数のサポートをライブラリに追加する準備が整います。追加するには、デザイン ビューでデータベース関数ライブラリを右クリックして、使用可能な唯一のオプション [データベース関数の追加] を選択します。
  8. データベース関数を識別するために必要な情報を入力します (図 2-39)。SQL 関数名と XQuery 関数名を除いて、すべてのフィールドは省略可能です。プレースホルダの XQuery 関数名も表示されますが、有効で衝突のない XQuery 関数名に変更してください。
  9. 図 2-39 データベース関数情報の追加


    データベース関数情報の追加

  10. [OK] をクリックします。
  11. ソース ビューで、パラメータの指定などを行い、関数定義を完成させます。

XFL データベース関数ライブラリはデータ サービス パレットから使用できます。

注意 : XML と JDBC の型のマッピングについては、『クライアント アプリケーション開発者ガイド』の「SQL を使用したデータ サービスへのアクセス」を参照してください。
XFL データベース関数の情報を変更する

プロパティ エディタ (図 2-40) を使用して、カタログ、スキーマ、パッケージ、および XQuery 関数名の設定をいつでも調整できます。

図 2-40 デザイン ビューと関連するプロパティ エディタでの XFL データベース関数

デザイン ビューと関連するプロパティ エディタでの XFL データベース関数

XFL データベース関数を SQL にパブリッシュして (「SQL で使用するためのデータ サービス関数のパブリッシュ」を参照)、AquaLogic Data Services Platform アプリケーションをデプロイすると、その関数は、JDBC などの標準のデータ サービス呼び出しや Mediator API を通じて、またはデータ サービス コントロールとして、クライアント アプリケーション開発者が使用できるようになります。

注意 : レポート ツールを使用して SQL クエリをビルドする場合、生成される SQL では修飾されていない JDBC 関数名が使用されます。アプリケーション開発者が XFL データベース関数を呼び出す場合、JDBC 接続が作成されるときに、デフォルトのカタログとスキーマ名が定義されている必要があります。このため、JDBC 接続は、1 つのカタログ/スキーマ ペアの場所で用意されている関数を使用する必要があります。
注意 : 以下は、JDBC 接続のデフォルトのカタログとスキーマを定義した URL の例です。
jdbc:dsp@localhost:7001/myApplication/myCatalog/mySchema
XFL データベース関数ライブラリにデータ ソースを追加する

XFL プロパティ エディタを使用して DFL データ ソースを簡単に関連付けたり、関連付けを解除したりできます。図 2-41 では、サンプル XFL データベース関数ライブラリに関連付けられた 2 つのデータ ソース、cgDataSource と cgDataSource-nonXA が示されています。

図 2-41 登録された XFL データベース関数のデータ ソース

登録された XFL データベース関数のデータ ソース

データベース名をクリックして、ドロップダウン リストから別のデータベースを選択すると、データベース名の指定を変更できます。[登録済みデータベース関数のデータ ソース] プロパティの横にある [+] をクリックすると、新しいデータベースを追加できます。同様に、データ ソース名の横の [-] をクリックすると、登録されたデータベース関数のデータ ソースを削除できます。

ソース ビューで XFL データベース関数の呼び出しを理解する

XFL をデータベース関数ライブラリとして宣言すると、ソース ビューでは、データベース関数宣言用にその XFL を指定した基底のプラグマ文が生成されます。

コード リスト 2-1 では、関数宣言で使用できるデータベースの名前が customNativeFunctions 型の中に含まれています(カスタム ネイティブ関数は XFL データベース関数と同じです)。

コード リスト 2-1 XFL をデータベース関数ライブラリとして指定するプラグマ
(::pragma xfl <x:xfl xmlns:x="urn:annotations.ld.bea.com">
 <creationDate>
  2006-07-11T11:13:18
 </creationDate>
<customNativeFunctions>
<relational>
<dataSource>cgDataSource-nonXA</dataSource>
<dataSource>bpmArchDataSource</dataSource>
</relational>
</customNativeFunctions>
</x:xfl> ::)
XFL データベース関数の宣言

コード リスト 2-2 のサンプルは、XFL データベース関数宣言をライブラリに追加するときに自動的に作成されるコードを示しています。

コード リスト 2-2 XFL データベース関数の宣言
(::pragma function 
<f:function xmlns:f="urn:annotations.ld.bea.com"  nativeLevel1Container="cat1"
 nativeLevel2Container="schema1"
 nativeLevel3Container="sql_functions1"
 nativeName="POWER">
</f:function>::)
declare function tns:Power() as xdt:anyAtomicType? external;

関数はアプリケーションの外部として指定されていることに注目してください。

注意 : 一連の dataSource 要素は、指定された関数が適用されるリレーショナル ソースの名前を示しています。各関数のネイティブの修飾名は次の値で取得されます。
"nativeLevelNContainer" (N = 1,2,3) 

および

"nativeName" 

たとえば、パッケージ STATISTICS の下で定義されているカスタム SQL 関数 MEDIAN の修飾名は、次のようなアノテーションで表現されます。

(::pragma function 
<f:function xmlns:f="urn:annotations.ld.bea.com" nativeName="MEDIAN" nativeLevel3Container="STATISTICS"/> ::)

ネイティブ関数を表す XQuery 関数の修飾名 (qname) はユーザ定義です。

各関数のネイティブ シグネチャは、XQuery 関数宣言で指定されるシグネチャに反映されます。ユーザ定義の SQL 関数の場合、SQL 関数の入力パラメータまたは出力の SQL 型 (TIME など) が、関数シグネチャの対応する XQuery 型 (xs:time など) に反映されます。

注意 : XML と SQL の間の型マッピングが正しいことが重要です。『クライアント アプリケーション開発者ガイド』の「SQL を使用したデータ サービスへのアクセス」の「XML および SQL 型のマッピング」を参照してください。
多態性のサポート

出力型がいずれかのパラメータの実際の型によって決定されるという、特定の多態性を示すネイティブ関数では、省略可能なアノテーション要素 isPolymorphic を使用することができます。要素 isPolymorphic では、必須の parameter 要素が内容として使用されます。表 2-42 のように、parameter 要素には index 属性が入ります。

表 2-42 isPolymorphic のインデックス パラメータの使用
isPolymorphic パラメータ
使用方法
index
多態性があると宣言された関数パラメータに基づいて、パラメータのインデックスを表す省略可能な属性。
最初のパラメータのインデックスは 1 になる。アノテーション付き関数のパラメータが 1 つである場合は、省略可能。

以下の例では、isPolymorphic 要素の使用方法を示します。

declare namespace stat = "urn:sample";

(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" nativeName="MEDIAN" nativeLevel3Container="STATISTICS">
	<isPolymorphic><parameter/></isPolymorphic>
</function>::)
declare function stat:median($x as xdt:anyAtomicType*) as xdt:anyAtomicType external;

  ページの先頭       前  次