メディエーション・コンポーネントは、サービス・コンポーネント間のメッセージ・フローを操作します。
メディエーション・コンポーネントの機能は、標準サービス・インプリメンテーション・タイプをインプリメントするメディエーション・プリミティブ によってインプリメントされます。
メディエーション・コンポーネントには、1 つ以上のフローがあります (例、要求用と応答用に 1 つずつ)。
WebSphere Process Server は、提供されたメディエーション・プリミティブのセットをサポートしており、このメディエーション・プリミティブ・セットは、WebSphere Process Server にデプロイされたメディエーション・モジュールの標準メディエーション機能をインプリメントします。
特殊なメディエーション機能が必要な場合は、ユーザー独自のカスタム・メディエーション・プリミティブを開発できます。
メディエーション・プリミティブには、サービス・メッセージ・オブジェクト (SMO) によって表されるメッセージを処理する 1 つの「in」オペレーションを定義します。メディエーション・プリミティブには、他のコンポーネントまたはモジュールにメッセージを送信する「out」オペレーションも定義できます。
図 1. 3 つのメディエーション・プリミティブから成るメディエーション・モジュール
メディエーション・プリミティブは一般に、単一オペレーション・レベルで機能して、要求と応答のメディエーションが可能です。場合によっては、オペレーションの単一パラメーターのレベルまでメディエーション・プリミティブで指定できます。例えば、セレクターはオペレーション・レベルまたはパラメーター・レベルで作動できます。
WebSphere Integration Developerを使用すると、メディエーション・プリミティブからメディエーション・コンポーネントをグラフィカルにモデル化し組み立てて、さらにメディエーション・コンポーネントからメディエーション・モジュールを組み立てることができます。
サポートされるメディエーション・プリミティブ
以下の
メディエーション・プリミティブ・セットが
WebSphere Process Server でサポートされています。
- Custom Mediation
- カスタム・ロジックを実行します。Custom Mediation プリミティブは、ユーザーが提供する外部 Service Component Architecture (SCA) コンポーネントを呼び出すこともできます。
- 呼び出されるオペレーションは、両方向オペレーションでなければなりません。
- ターゲット SCA コンポーネントは、Custom Mediation プリミティブと同じメディエーション・モジュールに存在していなければなりません。
- Database Lookup
- ユーザーが提供するデータベースからの情報を使用して、メッセージを変更します。
- Database Lookup メディエーション・プリミティブが使用できるようにデータベース、データ・ソース、およびサーバー認証の設定をセットアップする必要があります。
- Database Lookup メディエーション・プリミティブは、1 つのテーブルからのみ読み取ることができます。
- 指定されたキー列には、固有な値が含まれていなければなりません。
- 値列のデータは、Java プリミティブまたは Java ストリング (あるいは Java プリミティブまたは Java ストリングにキャスト可能) でなければなりません。
- Endpoint Lookup
- リポジトリー内でサービス・エンドポイントを検索することにより、要求の動的ルーティングを可能にします。
- サービス・エンドポイント情報は、ローカルまたはリモートの WebSphere Service Registry and Repository (WSRR) から取得されます。
- レジストリーの管理コンソールから登録の変更を行うことができます。
- Event Emitter
- メディエーション・フロー内からイベントを送信することにより、モニター機能を強化します。
- イベントは Common Base Event (CBE) の形で、Common Event Infrastructure (CEI) サーバーに送信されます。
- Event Emitter 情報を十分活用するために、イベント利用者が CBE の構造を理解しておく必要があります。CBE には包括的なスキーマがありますが、このスキーマでは拡張データ・エレメントに含まれるアプリケーション固有のデータはモデル化されません。
拡張データ・エレメントをモデル化するために、WebSphere Integration Developer のツール群により、構成済みの Event
Emitter メディエーション・プリミティブ ごとに CEI イベント・カタログ定義ファイルが生成されます。
イベント・カタログ定義ファイルは、ユーザーのサポート用に提供されるエクスポート成果物ですが、これらは WebSphere Integration Developer や WebSphere Process Server ランタイムでは使用されません。
イベント・カタログ定義ファイルは、Event Emitter のイベントを利用するアプリケーションを作成するときに参照する必要があります。
- WebSphere Process Server から、その他のモニターを指定することができます。
例えば、インポートおよびエクスポートから送信するイベントをモニターすることができます。
Event Emitter メディエーション・プリミティブ の機能は、メディエーション・フロー・コンポーネント内からイベントを送信できるようにすることです。この後、 WebSphere Process Server上の CBE ブラウザーを使用して Event Emitter のイベントを表示することができます。
- Fail
- フロー内で障害を生成します。
- Message Element Setter
- メッセージ・ヘッダーや本文の内容を設定するための単純なメカニズムを提供します。メッセージのタイプは変更しません。
- Message Filter
- メッセージ内容に基づいて、さまざまなパスにメッセージを送付します。
- Message Logger
- データベースにメッセージを記録します。メッセージは XML として保管されるので、データは XML 対応アプリケーションで後処理できます。
- データベース・スキーマは IBM によって定義されています。
- 分散プラットフォームでは、 WebSphere Process Server のデフォルトのインストールで、スタンドアロン・アプリケーション・サーバー、および Cloudscape データベースとデータ・ソースが作成されます。
デフォルトでは、WebSphere Integration Developer は、この Cloudscape データベースを使用するように Message Logger メディエーション・プリミティブを構成します。WebSphere Process Server では、Cloudscape データベースを作成する createMessageLoggerResource.jacl というスクリプトも提供されます。
- coreDBUtilty コマンドを使用して、リモート z/OS システム上に DB2 メッセージ・ロギング・データベースを作成することができます。
- 管理コンソールを使用してユーザー独自のデータベースおよびデータ・ソースを作成する場合、WebSphere Process Server では、テーブル・スキーマを記述するデータ定義言語 (ddl) ファイルが提供されています。この Table.ddl ファイルは以下の場所に格納されています。 install_root/util/EsbLoggerMediation/database_
type/Table.ddl ここで、database_ type はデータベースのタイプを指します (例、CLOUDSCAPE_V50)。ユーザー独自のデータベースを作成して、データ・ソースにデフォルト JNDI 名を使用する場合は、デフォルト・データ・ソースを除去する必要があります。
- Stop
- 例外を生成せずに、フロー内の特定のパスを停止します。
- XSLT
- メッセージを変換します。
- XSLT メディエーション・プリミティブは、メッセージのヘッダーまたは本体を変更できます。
- XSLT (Extensible Stylesheet Transformations) 1.0 変換を使用してメッセージを変換します。この変換は、メッセージの XML 直列化を処理します。
- SplitPath
- ターゲット・サービス (または他のメディエーション) の選択、特定ターゲットへの送付、およびルーティング・パスの変更を行います。
- BOMapper
- ターゲット・サービス (または他のメディエーション) の選択、特定ターゲットへの送付、およびルーティング・パスの変更を行います。