eDocs ホーム > BEA WebLogic Integration 9.2 ドキュメント
>
ソリューション サンプル
> 動的なトランスフォーメーションとルーティングのサンプル
動的なトランスフォーメーションとルーティングのサンプル
このサンプルでは、ステートレス メッセージのルーティングとトランスフォーメーションに関する一般的な問題に対処する方法を示します。
注意 : このサンプルは dev2dev で使用可能ですが、BEA のサポート対象外です。
サンプルについて
このサンプルでは、メッセージを JMS キューで受信し、メッセージのペイロードまたはヘッダ内に特定の値があるかどうかを調べ、メッセージを変換し、2 つの JMS 送り先のいずれかに送信します。このトランスフォーメーションは動的に選択されるため、アプリケーションには記述されていません。トランスフォーメーションは、実行時にコンフィグレーションできます。
このサンプルでは、動的トランスフォーメーション コントロールを使用して XQuery マップを動的に取得し、受信ドキュメントを地域固有のスキーマに変換します。このビジネス プロセスは入力キューをリスンし、メッセージを outputQ1 および outputQ2 に動的にルーティングします。
サンプルのワークフロー
このサンプルのアーキテクチャには、次の図に示すコンポーネントが含まれています。
- JPD/Java クライアント - JMS メッセージをルーティング変数と共に送信します。このサンプルでは "From" および "To"。
- ルーティング処理アプリケーション - ステートレス ルーティングおよびトランスフォーメーションの使用例の実装である WLW アプリケーション。
- XML メタデータ キャッシュ - 適用する "From" フィールドとトランスフォーメーションの間のマッピングが含まれます。ルーティング処理アプリケーションによるルックアップとして使用されます。
- XQ リポジトリ アプリケーション - ユーザが XQ マッパーを使用して作成した XQuery 定義を含む WLW アプリケーション。
このサンプルには、次の 2 つの WebLogic Integration アプリケーションが含まれています。
- XQ リポジトリ - XQuery およびトランスフォーメーション コントロールを含む XQuery リポジトリ アプリケーション。
- ルーティング処理 - 1 つの同期ビジネス プロセスと関連する主要アイテム (JMS イベント ジェネレータ、JMS コントロール、スキーマ、XML メタデータ キャッシュ、および動的トランスフォーメーション コントロール) が含まれます。
ルーティング処理アプリケーションは、JMS メッセージのルーティング フィールド ("From" および "To") をプロパティとして抽出し、"From" ルーティング フィールドに基づいて、受信メッセージに適用するトランスフォーメーションを XML メタデータ キャッシュから抽出し、動的トランスフォーメーション コントロールを呼び出します。
トランスフォーメーションの完了後、ルーティング処理アプリケーションは、変換したメッセージのルーティング先となる JMS 送り先を XML メタデータ キャッシュから抽出し、プロパティを適用して JMS コントロールを動的にコンフィグレーションします。
このサンプルは、インターネットで医薬品を販売する Avitek Inc. という架空の会社を基に作成されています。注文を受けた地域に基づいて市外局番に固有のトランスフォーメーションを適用し、該当する送り先キューにルーティングします。この過程を次に示します。
- リスン先の定義済みキューで XML メッセージを受信する
- JMS メッセージは、"From" フィールドと "To" フィールドを含む JMS プロパティで構成される
- 適用する "From" フィールドと XQuery の間のマッピングを含む XML ドキュメントで構成される XML メタデータ キャッシュに対してルックアップを実行する
- トランスフォーメーションを使用して、適用する XQuery URI を抽出する
- 受信メッセージに注文 ID (Java ノードで生成) を追加して、メッセージを拡張する
- 特定の市外局番に適用する XQuery を使用して動的トランスフォーメーション コントロールを呼び出し、受信 XML ドキュメントを地域固有のフォーマットに変換する
- XML メタデータ コントロールに対してルックアップを実行し、"To" フィールドを使用してメッセージのルーティング先となる送り先のプロパティを取得する
- JMS コントロールの Set Dynamic プロパティを呼び出して送り先のプロパティを設定する
- JMS コントロールを介して、XML メッセージを JMS キューに送信する
XQuery はそれぞれ個別のアプリケーションに実装することをお勧めします。これにより柔軟性が確保され、ビジネス アプリケーションを開くことなく新しいトランスフォーメーションを動的に追加できるためです。
たとえば、値 100 を使用して "From" フィールドの新しいトランスフォーメーションを追加するには、次の変更が必要になります。
- XQ リポジトリ アプリケーションに新しいトランスフォーメーションのマップ (.xq) ファイルを追加する
- このエントリを追加するために、XML ドキュメントとキャッシュを更新することによって、適用する "from" フィールドとトランスフォーメーションの間のマッピングが含まれる XML キャッシュを更新する
- 新しい物理 JMS 送り先が必要な場合、必要に応じて "to" フィールドの新しいエントリを XML キャッシュに追加する
実際のビジネス アプリケーションを変更する必要はありません。リポジトリとキャッシュのエントリを更新して、新しいトランスフォーメーションおよびルーティングを新しい送り先に動的に適用する場合は、ビジネス アプリケーションを変更する必要があります。
必須ソフトウェア
このサンプルには次のソフトウェアが必要です。
- WebLogic Integration 9.2 MP2 以降 (Jython 2.1 を含む)。WebLogic Integration 9.2 は dev2dev のダウンロード ページからダウンロードします。
- WLI Common Utilities バージョン 2.5。WLI Common Utilities は
ダウンロード ページからダウンロードします。
- WebLogic Server Scripting Tool (WLST) (WLI Common Utilities に含まれる)。WLST は
ダウンロード ページからもダウンロードできます。
-
- 注意 : WLST Offline および WLST Online は BEA の dev2dev サイトからダウンロードおよび評価することができますが、正式な WebLogic Platform 9.2 製品には含まれません。WLST は BEA ニュースグループのみでサポートされ、ユーティリティと API は変更される場合があります。WebLogic Platform の将来のリリースではこの機能を正式にサポートする予定です。
補足資料
このサンプルには、アプリケーション コードに加えて次の項目が含まれています。
- アプリケーションをサポートするように BEA WebLogic Integration クラスタをコンフィグレーションするための手順およびスクリプト
- 適切にコンフィグレーションされたクラスタにアプリケーションをデプロイするための手順およびスクリプト
- タスクを作成して割り当てるための手順、ガイドライン、および注意事項
ダウンロード
動的なトランスフォーメーションとルーティングのサンプル、および WLI Common Utilities は dev2dev のサンプル ダウンロード ページからダウンロードできます。
|