このスクリプトでは、e-docs マニュアルの検索に必要な Google 検索のパラメータを出力します。
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 のサンプル ダウンロード ページからダウンロードできます。