コンセプト ガイド

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

データ サービスによる情報の統合

この章では、BEA AquaLogic Data Services Platform 統合レイヤの基本的なコンポーネントであるデータ サービスについて説明します。この章の内容は以下のとおりです。

 


データ サービスとは

データ サービスは、データ ユーザが単一のアクセス レイヤを介してエンタープライズ内のあらゆる情報にアクセスできるようにします。通常、データ サービスは情報の単位 (顧客、注文、製品など) をモデル化します。複数のデータ サービスをまとめて構成することで、IT 環境内にデータ統合レイヤを構築できます。

データ サービスは、実体としては拡張子 .ds のファイルで、データのクエリや変換を実行する XML Query 言語の命令が格納されています。データ サービスは、さまざまな面で Web サービスに似ています。まず、モジュール式で再利用可能です。また、そのサービスにアクセスするためのパブリック関数やパブリック プロシージャから構成されるコントラクトを備えています。そして、サービス実装の詳細 (通常はデータの取得や変換を伴う部分) はユーザからは見えません。

しかし、Web サービスと異なるのは、各データ サービスのコア部分が XML データ型であるという点です (図 3-1 に示すデザイン ビューを参照)。AquaLogic Data Services Platform は、要求に応じてデータを取得して統合し、そのデータを XML データ型で定義された形式で (つまりスキーマとして) 返します。

サービス コンシューマ (クライアント アプリケーション、プロセス、または別のデータ サービス) は、データ サービス内に定義されている読み取り関数を使用してその情報を取得します。また、ナビゲーション関数を呼び出して、関連するデータ サービスからデータを取得することもできます。その場合、通常は現在のデータ サービスのインスタンスを引数として渡します。データ サービスから利用できるもう 1 つの機能はプロシージャです。プロシージャを使用すると、データを返す以外の副作用を実行する外部プロセスを呼び出すことができます。データ サービスに定義できる読み取り関数、プロシージャ、およびナビゲーション関数の数に制限はありません。

図 3-1 Workshop でグラフィカルに表現されたデータ サービス

Workshop でグラフィカルに表現されたデータ サービス

データ サービスでは、返されたデータをそのターゲット XML スキーマで規定されたとおりに変換するだけでなく、別の方法でデータを操作することも可能です。組み込みの XQuery 関数を使用して、たとえば数値データの算術演算を実行したり、テキスト文字列を連結したりできます。

 


データ サービスの関数について

クライアント アプリケーション、コントロール、およびプロセスは、データ サービスの関数を使用してエンタープライズ データを取得します。データ サービスのインタフェースは、以下のようなパブリック関数から構成されます。

留意すべき重要な点は、データ サービス全般 (具体的には AquaLogic Data Services Platform の関数) が、SOA の目的に合わせて「きめの粗い」データ アクセスを提供する点です。アクセスのきめを粗くすることで、情報を特定および集約して異質のビジネス エンティティを構成する、という面倒な作業をクライアント側で行う必要をなくしています。

データ サービスには、パブリック インタフェースに加え、プライベート関数を定義することもできます。プライベート関数は、データ サービス内の別の関数からのみ使用できます。通常、プライベート関数には共通の処理ロジック (データ サービス内の複数の関数で使用する処理) を格納します。

また、複数のデータ サービスで使用する補助的な関数を提供することもできます。これらの関数を、XQuery 関数ライブラリ (.xfl) ファイルと呼びます。

データ サービスの読み取り関数は、さまざまな方法で情報を返すように定義できます。たとえば、すべての顧客を取得したり、顧客を地域別に取得したり、注文金額が所定の額以上の顧客を取得したりできます。

しかし、データ ユーザが必要とするデータ アクセス方法を網羅するために、データ サービスの設計段階で関数を完全に定義しようとすることには無理があります。クライアント アプリケーションでフィルタ処理や並べ替えのための API を使用すると、データ サービスの読み取り関数呼び出しによってどのようなデータが返されるかを、実行時に指定した条件に基づいてさらに細かく制御できます。クライアント側のあらゆる要件を満たす読み取り関数を作成するのではなく、汎用化された読み取り関数を作成しておくことで、実行時にフィルタ条件や並べ替え条件をクライアント側で適用することが可能になります。データ サービス設計者は、これら 2 つの方法 (読み取り関数にアクセス条件を組み込んで厳密に定義するか、汎用の読み取り関数を作成してクライアント側でフィルタ条件を指定できるようにしておくか) を柔軟に選択できます。

 


データ サービスによる変換

バックエンド システムのデータを取得してから、そのデータをクライアントに供給するまでの間に、データ サービスでデータを変換することもできます。どのような変換を行うかは、呼び出される関数の XQuery 本文で定義します。

変換には、単純な要素マッピング、より一般的な形式の変換、データの結合、演算 (文字列演算、算術演算、または日付演算) による値の変更などがあります。変換の構造とデータは、if-then-else 文などの論理コンストラクトによって制御できます。変換によって、複数のソースからのデータを結合したり、データをフィルタ処理したりすることも可能です。

XQuery エディタ (図 3-2) を使用すると、ソース スキーマとターゲット スキーマの間でノードをドラッグ アンド ドロップするだけで変換クエリを作成できます。ターゲット スキーマは、データ サービスの XML 型 (つまり、サービス リクエストに応じて返されるデータ形式) です。

図 3-2 グラフィカルな XQuery 変換エディタ

XQuery の役割

データ サービスの内部言語である XQuery (XML Query 言語の略称) は、XML ベースの情報をクエリ処理するための新しい標準です。XQuery の多くの機能は SQL と共通です (たとえば where 句)。しかし、XQuery は、単純な 2 次元データ形式 (行と列) を扱う SQL とは異なり、XML のネスト構造手法を使用したより複雑な Web サービス データを扱えるように設計されています。

データ サービス内の XQuery 関数によって、どのデータを取得してどのように変換するかが決まります。変換できるのはデータの形式だけではありません。文字列の結合、数値の算術演算などにより、データの値自体を変更することも可能です。

 


メタデータによるデータ サービスの通知と管理

企業にとっての課題は、異種データ ソースの統合だけではありません。データの可用性に関する通知を、一貫性のある信頼性の高い方法で行えるかどうかも大きな課題です。データ ソースを使用する可能性のあるユーザがデータの存在を知らなければ、実質的にはそのデータが存在していないのと同じです。たとえば、ある開発者が手間をかけて Customer データ サービスを作成したら、他の開発者がそれを見つけて再利用できるようにする必要があります。

AquaLogic Data Services Platform では、データ サービスとそのコンポーネント関数およびプロシージャに関する情報を、データ サービス記述子 (メタデータ) のセットを使用してエンタープライズ全体に提供できます。メタデータは、データ サービスがどのような情報を提供するか、その情報の供給元 (データ系統) はどこか、などの情報を表します。

メタデータの用途は、サービスを使用する可能性のあるコンシューマのための文書化だけではありません。管理者がデータ ソース レイヤをどうしても変更しなければならない場合の影響分析にも使用できます。データベースを変更する場合、その変更がどのデータ サービスに影響するかを簡単に特定できます。

実際に変更が発生した場合は、メタデータ同期ウィザードを使用して、データ サービス レベルの変更をデータ サービス レイヤに反映できます。Workshop から起動するこのウィザードは、データ ソースのスキーマと物理データ サービスとの間の差異を検出します。検出された差異は強調表示され、クリック操作で同期させることができます。

メタデータには、さまざまな方法でアクセスできます。メタデータ ブラウザ (図 3-3) を使用すると、HTML インタフェースでメタデータを参照したり検索したりできます。また、メタデータ API を使用すると、メタデータにプログラム的にアクセスできます。

図 3-3 メタデータ ブラウザ

メタデータ ブラウザ


  ページの先頭       前  次