Skip navigation.

動的なトランスフォーメーションとルーティングのサンプル

このサンプルでは、ステートレス メッセージのルーティングとトランスフォーメーションに関する一般的な問題に対処する方法を示します。

注意 : このサンプルは dev2dev で提供されていますが、BEA のサポート対象外です。

サンプルの動作

このサンプルでは、メッセージを JMS キューで受信し、メッセージのペイロードまたはヘッダ内に特定の値があるかどうかを調べ、メッセージを変換し、2 つの JMS 送り先のいずれかに送信します。 このトランスフォーメーションは動的に選択されるため、アプリケーションには記述されていません。トランスフォーメーションは、実行時にコンフィグレーションできます。

このサンプルでは、動的トランスフォーメーション コントロールを使用して XQuery マップを動的に取得し、受信ドキュメントを地域固有のスキーマに変換します。 このビジネス プロセスは入力キューをリスンし、メッセージを outputQ1 および outputQ2 に動的にルーティングします。

サンプルの動作のしくみ

このサンプルのアーキテクチャには、次の図に示すコンポーネントが含まれています。


      動的なトランスフォーメーションとルーティングのサンプル

このサンプルには、次の 2 つの WebLogic Integration アプリケーションが含まれています。

ルーティング処理アプリケーションは、JMS メッセージのルーティング フィールド ("From" および "To") をプロパティとして抽出し、"From" ルーティング フィールドに基づいて、受信メッセージに適用するトランスフォーメーションを XML メタデータ キャッシュから抽出し、動的トランスフォーメーション コントロールを呼び出します。

トランスフォーメーションの完了後、ルーティング処理アプリケーションは、変換したメッセージのルーティング先となる JMS 送り先を XML メタデータ キャッシュから抽出し、プロパティを適用して JMS コントロールを動的にコンフィグレーションします。

このサンプルは、インターネットで医薬品を販売する Avitek Inc. という架空の会社を基に作成されています。 注文を受けた地域に基づいて市外局番に固有のトランスフォーメーションを適用し、該当する送り先キューにルーティングします。この過程を次に示します。

XQuery はそれぞれ個別のアプリケーションに実装することをお勧めします。これにより柔軟性が確保され、ビジネス アプリケーションを開くことなく新しいトランスフォーメーションを動的に追加できるためです。

たとえば、値 100 を使用して "From" フィールドの新しいトランスフォーメーションを追加するには、次の変更が必要になります。

リポジトリとキャッシュのエントリを更新するだけで済み、実際のビジネス アプリケーションを変更する必要はありません。 新しいトランスフォーメーションおよびルーティングを新しい送り先に動的に適用する場合は、ビジネス アプリケーションを変更する必要があります。

必須ソフトウェア

このサンプルには次のソフトウェアが必要です。

補足資料

このサンプルには、アプリケーション コードに加えて次の項目が含まれています。

ダウンロード方法

動的なトランスフォーメーションとルーティングのサンプル、および WLI Common Utilities は dev2dev のダウンロード ページからダウンロードできます。