WebSphere MQ が使用可能なアプリケーションへの Web サービスとしてのアクセス

このシナリオで示すのは、ドメインとして MIME を使用して、WebSphere MQ が使用可能なアプリケーションへのインターフェースを提供する Web サービスです。このシナリオのメッセージ・フローと、結果のメッセージ・ツリーを以下に示します。

この図は、外部 HTTP クライアントがメッセージをメッセージ・フローに送信およびメッセージ・フローから受信していることを示しています。メッセージ・フローは、Compute1 と呼ばれる Compute ノードに接続した HTTPInput ノードで構成されています。次に、Compute ノードは MQOutput ノードに接続しています。
MQOutput ノードは、外部アプリケーションが使用するキューにメッセージを書き込みます。アプリケーションはメッセージを別のキューに書き込みます。キューからのメッセージは MQInput ノードに入ります。このノードは、Compute2 と呼ばれる別の Compute ノードに接続されています。Compute ノードは HTTPReply ノードに接続しています。
応答メッセージは HTTP クライアントに戻されます。

MIME メッセージが メッセージ・フロー に入力されると、メッセージの最上位の Content-Type が HTTPInputHeader ツリーおよび MIME 論理メッセージ・ツリーに保管されます。ブローカーはまた、メッセージの Content-Type のコピーを、Properties サブツリーの ContentType 値として保管します。以下の図は、メッセージが HTTPInput ノードを離れた後のメッセージ・ツリーを示しています。

この図は、メッセージが HTTPInput ノードを離れた後の論理メッセージ・ツリーを示しています。ツリーのルートは Root と呼ばれ、子が 3 つあります。これらは順に、Properties、HTTPInputHeader、および MIME です。

最初の Compute ノードである Compute1 はメッセージに MQMD ヘッダーを追加して HTTP 相関関係子を保管し、リターン・フローで使用できるようにする必要があります。HTTP 相関関係子はデータベースに保管するか、またはメッセージ本体にコピーすることもできます。以下の ESQL の例で、相関関係子を XML メッセージ本体に保管する方法を示します。
SET OutputRoot.XML.X.rid = CAST(InputLocalEnvironment.Destination.HTTP.RequestIdentifier AS CHARACTER); 
以下の図は、Compute1 を離れた後のメッセージ・ツリーを示しています。

この図は、メッセージが最初の Compute ノードを離れた後の論理メッセージ・ツリーを示しています。ツリーのルートは Root と呼ばれ、子が 4 つあります。これらは順に、Properties、HTTPInputHeader、MQMD、および MIME です。

MQ メッセージを受信するアプリケーションが MIME フォーマットのメッセージを要求する場合、MIME ツリーが必要です。 Compute1 は、新規の MIME ツリーを作成するか、既存の MIME ツリーを変更して伝搬するかのいずれかによって、これを提供できます。メッセージの Content-Type を変更するには、ブローカー ContentType プロパティーを使用する必要があります。ブローカー ContentType プロパティーを変更すると、MIME ツリーの Content-Type プロパティーは自動更新されます。

MQInput ノードを経由してメッセージ・キューからメッセージを受信すると、2 番目の Compute ノードである Compute2 はメッセージから MQMD ヘッダーを除去し、HTTP 相関関係子を復元する必要があります。Compute1 が、上で説明したように、メッセージ本体から相関関係子をコピーした場合、Compute2 は以下の ESQL で相関関係子を復元できます。
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(InputRoot.XML.X.rid AS BLOB); 
Compute2 は明示の HTTPReplyHeader もセットアップできます。

出力ドメインが MIME の場合、メッセージを出力するために MIME ツリーを作成する必要があります。Compute2 は、新規の MIME メッセージを作成するか、または出力メッセージ作成の必要に応じて入力 MIME メッセージを変更および伝搬します。以下の図は、Compute2 を通過した後のメッセージ・ツリーを示しています。

この図は、メッセージが 2 番目の Compute ノードを離れた後の論理メッセージ・ツリーを示しています。ツリーのルートは Root と呼ばれ、子が 4 つあります。これらは順に、Properties、HTTPInputHeader、HTTPReplyHeader、および MIME です。

このシナリオは、いろいろ変動することが考えられます。 例えば、MQInput ノードの代わりに MQGet ノードを使用して単一フローが作成された場合、HTTP 相関関係子を保管する必要がありません。 ただし、これは潜在的にあまりスケーラブルではありません。Coordinated Request Reply サンプル のサンプルに、MQGet ノードの使用に関する詳しい情報があります。

関連概念
MIME ドメインのメッセージの操作
MIME ツリーの詳細
MIME メッセージ
関連タスク
ESQL の開発
Java の開発
関連資料
HTTP をトランスポートとして使用した Web サービスの作成
WebSphere MQ をトランスポートとして使用した Web サービスの作成
WebSphere MQ が使用可能なアプリケーションによる Web サービスの呼び出し
HTTPReply ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac30040_