目次


WebSphere DataPower SOAアプライアンスとWebSphere MQの統合

Comments

概要

この記事に記載される例では、WebSphere DataPower SOAアプライアンス(以下、「DataPower」と呼びます)のXI50アプライアンスをWebSphere MQと統合するための必要な手順を説明します。この例では、以下のことを行います。

  • WebSphere MQリソースの作成と設定
  • DataPowerリソースの作成と設定
  • エンドツーエンドのシナリオのテスト

この演習を行う際には、WebSphere MQとDataPowerに関する知識が多少あると便利ですが、特に必須ではありません。演習には、これらの製品のインストール手順は含まれていません。この例で使用されるX150アプライアンスのファームウェア・リビジョンはXI50.3.5.0.17(ビルド 131012)です。

シナリオ

この記事で扱うシナリオ(図1を参照)では、クライアントとサーバーの両方にWebSphere MQを使用し、その間にDataPowerを置きます。これで、DataPowerとWebSphere MQの両方に必要となる具体的な設定について説明します。DataPowerを実際に利用する際には、HTTPとWebSphere MQ間でプロトコルを切り替える方が一般的です。

図1 MQ - MQマルチプロトコル・ゲートウェイのシナリオ(この記事ではこれが基本となります)
図1 MQ - MQマルチプロトコル・ゲートウェイのシナリオ(この記事ではこれが基本となります)
図1 MQ - MQマルチプロトコル・ゲートウェイのシナリオ(この記事ではこれが基本となります)

このシナリオのステップは以下のとおりです。

  1. 送信側のRFHUtil(図1の左側にあるRFHUtil)から、メッセージがキューに入れられます。
  2. DataPowerによって、入力メッセージがキュー(FRONT.GET)から取り出されます。この後、メッセージ・データに単純なXSLT変換が適用されます。
  3. メッセージが出力キュー(BACK.REQUEST)に書き込まれます。ここではわかりやすいように、同じキュー・マネージャーを使用してDataPowerアプライアンスの両サイドを統合しますが、これは必須ではありません。
  4. もう一つのRFHUtil(図1の右側にあるRFHUtil)によって、メッセージが出力キュー(BACK.REQUEST)から取り出されます。これにより、別のWebSphere MQ対応アプリケーションのアクションをシミュレートします。一般に、このメッセージはWebSphere MQアプリケーションによって再フォーマットされてから、DataPowerを通って返送されます。この例のRFHUtilは、単に同じメッセージを別のキュー(バックエンドURL応答キューBACK.REPLY) に書き込みます。これが応答の入力ポイントとなります。
  5. メッセージを返送する前に、WebSphere MQの従来の要求/応答モデルに従って、RFHUtilを使用してMsgIdをMQMDヘッダーのCorrelIdプロパティーに付け替えます。(WebSphere MQに関する知識のある方向け)バックエンドURLの応答キューから応答メッセージを識別するために、DataPowerはCorrelIdを使用してMQGetを実行します。
  6. バックエンドURLからメッセージを取り出した後、DataPowerアプライアンスは同じスタイルシート変換を応答メッセージのデータに適用します。別の変換を戻りレグに適用することも可能ですが、ここではわかりやすいように同じ変換を使用します。
  7. 変換されたメッセージがフロント・サイド・ハンドラー・コンポーネントの応答キュー(FRONT.PUT)に書き込まれます。このメッセージの読み取りには、送信側のRFHUtil(図1の左側)が使用されます。

代替シナリオ

WebSphere MQは熟知しているがDataPowerには慣れていないという方は、図2を見ると、マルチプロトコル・ゲートウェイで使用可能なオプションを理解しやすいでしょう。

図2 マルチプロトコル・ゲートウェイで使用可能なオプション
図2 マルチプロトコル・ゲートウェイで使用可能なオプション
図2 マルチプロトコル・ゲートウェイで使用可能なオプション

1つのマルチプロトコル・ゲートウェイで、複数のフロント・サイド・ハンドラーの定義を使用できます。つまり、異なるプロトコルや異なる入力場所を使用して、DataPower上の同じゲートウェイにデータを入力できます。図2の例では、MQフロント・サイド・ハンドラー 2つと HTTPフロント・サイド・ハンドラー 1つが使用されています。

各MQフロント・サイド・ハンドラーは1つの要求キューと1つの応答キューを指定します。どちらのキューも、同じキュー・マネージャー上にあります。

1つのマルチプロトコル・ゲートウェイは、「静的バックエンド」か「動的バックエンド」のいずれかを持つことができます。

  • 静的バックエンドURLは、1つのWebSphere MQ対応バックエンド・リソースに対してRequestQueueとReplyQueueの両方を指定します。静的バックエンドURLは、マルチプロトコル・ゲートウェイの一般プロパティーで設定されます。
  • 動的バックエンドは、マルチプロトコル・ゲートウェイ・ポリシー内でroute-setアクションを使用します。route-setアクションは、処理ポリシーの設定時に「Advanced Action」アイコンから使用できます。この設定では、DataPower変数、スタイルシート、Xpath式のいずれかを利用して、DataPowerが通信するバックエンドURLを判断します。つまりこれは、1つの処理ポリシーで、実行時に動的に決定された複数のプロトコルと宛先を利用できることを意味します。

環境の設定

この演習を実行するには、以下のものが必要です。

  • DataPowerアプライアンスへのドメイン管理アクセス権。
  • インストール済みのWebSphere MQサーバー。この記事の画面図は、Windows XP上のものです。
  • RFHUtil(IBMサポート・パックの一部として無料提供されています)。RFHUtilはWebSphere MQ対応アプリケーションをシミュレートします。詳細については、「参考文献」を参照してください。

ここではわかりやすいように、コマンド行管理ユーティリティーではなく Webインターフェースを使用して、この例のDataPower設定を実行します。WebSphere MQ設定については、WebSphere MQコマンド行からのスクリプト(runmqsc)を使用します。このプロセスで作成されたリソースの探索には、WebSphere MQエクスプローラーを使用します。

ステップ1:WebSphere MQ リソースの作成

必要なWMQ成果物をすべて定義するスクリプトが提供されています。WebSphere MQユーザー・インターフェースを使用してこれを行うこともできますが、簡単にするためにスクリプトが提供されています。

  1. ダウンロード」セクションで提供されている LabResources.zip ファイルを解凍します。
  2. コマンド・プロンプトを開き、LabResourcesファイルの解凍先ディレクトリーに変更します。
  3. バッチ・スクリプトsetupQMDP.batを実行します。このスクリプトは以下のことを実行します(図3を参照)。
    • QMDPという名前のキュー・マネージャーを作成し、起動します。
    • 以下の名前の4つのキューを作成します。
      • FRONT.GET
      • FRONT.PUT
      • BACK.REQUEST
      • BACK.REPLY
    • QMDP_LSTRという名前のリスナーを作成し、起動します。このリスナーはポート3414上でlistenします。
    • DP.CHANNELという名前のチャネルを作成します。
    図3 setupQMDP.batの実行によるWMQリソースの作成
    図3 setupQMDP.batの実行によるWMQリソースの作成
    図3 setupQMDP.batの実行によるWMQリソースの作成
  4. WebSphere MQエクスプローラーを開くと、4つのローカル・キューとともにキュー・マネージャーが正しく作成されていることがわかります。左側のウィンドウで「Queue Managers」フォルダーを展開し、QMDPキュー・マネージャーを開きます。「Queues」を選択すると、以下のキューが表示されます。
    図4 WebSpher MQエクスプローラーに表示される新しいキュー
    図4 WebSpher MQエクスプローラーに表示される新しいキュー
    図4 WebSpher MQエクスプローラーに表示される新しいキュー
  5. WebSphere MQのリスナー設定を表示するには、「Advanced」を展開し、「Listeners」を選択します。リスナーがポート3414上で動作していることに注意してください。この指定は後ほど行います。

ステップ2:DataPowerマルチプロトコル・ゲートウェイの作成

次に、WebSphere MQとDataPowerの統合を具体的に説明するための成果物を作成します。

  1. アクセス権のあるドメインを使用して、DataPowerボックスにログインします。
  2. コントロール・パネルの左上にある「Multi-Protocol Gateway」アイコンを選択します(図5を参照)。
    図5 マルチプロトコル・ゲートウェイの作成
    図5 マルチプロトコル・ゲートウェイの作成
    図5 マルチプロトコル・ゲートウェイの作成
  3. Add」をクリックして、新しいマルチプロトコル・ゲートウェイを追加します。

ステップ3:DataPower処理ポリシーの作成

  1. Multi-Protocol Gateway Name」フィールドに「WMQ_MPGateway」と指定し、必要に応じて要約情報を追加します(図6を参照)。
    図6 マルチプロトコル・ゲートウェイ名の指定
    図6 マルチプロトコル・ゲートウェイ名の指定
    図6 マルチプロトコル・ゲートウェイ名の指定
  2. マルチプロトコル・ゲートウェイ・ポリシーを追加するには、「Multi-Protocol Gateway Policy」フィールドの横の「+」ボタンを選択します(図7を参照)。
    図7 マルチプロトコル・ゲートウェイ・ポリシーの追加
    図7 マルチプロトコル・ゲートウェイ・ポリシーの追加
    図7 マルチプロトコル・ゲートウェイ・ポリシーの追加
  3. ポリシー名として「WMQ_ProcessingPolicy」と入力し、「OK」をクリックします。警告メッセージが返された場合は、「OK」をクリックしてメッセージを消します。
  4. マッチ・ルールを設定するには、黄色の枠で強調表示された「Match」アイコンをダブルクリックします(図8を参照)。
    図8 マルチプロトコル・ゲートウェイ・ポリシー
    図8 マルチプロトコル・ゲートウェイ・ポリシー
    図8 マルチプロトコル・ゲートウェイ・ポリシー
  5. +」ボタンをクリックし、新しいマッチ・ルールを作成します。
  6. 「Main」タブで、ルール名として「All」と指定します。
  7. Matching Rule」タブをクリックし、次に「Add」をクリックします(図9を参照)。
    図9 マッチ・ルールの追加
    図9 マッチ・ルールの追加
    図9 マッチ・ルールの追加
  8. Matching Type」フィールドに「url」、「URL Match」フィールドに「*」と指定し、「Save」をクリックします(図10を参照)。
    図10 マッチ・タイプの指定
    図10 マッチ・タイプの指定
    図10 マッチ・タイプの指定
  9. Apply」をクリックします(図11を参照)。
    図11 マッチ・ルールの適用
    図11 マッチ・ルールの適用
    図11 マッチ・ルールの適用

    これで、マッチ・ルールが正しく修正されました。
  10. Close」をクリックします。新しいマッチ・ルールが選択されている点に注意してください。
  11. Done」をクリックします。「Match」アイコンの上にマウス・ポインタを置くと、ルールが正しく適用されていることがわかります。
  12. 「Transform」アイコンを、「Match」アイコンの右側のルール上にドラッグ・アンド・ドロップします(図12を参照)。
    図12 「Transform」アイコンのドラッグ・アンド・ドロップ
    図12 「Transform」アイコンのドラッグ・アンド・ドロップ
    図12 「Transform」アイコンのドラッグ・アンド・ドロップ
  13. この変換を編集するには、新しい変換を囲んでいる黄色の枠をダブルクリックします。
  14. 「Configure Transform Action」ダイアログで、以下の手順を実行します。
    • Use Document Processing Instructions」は、デフォルト設定の「Use XSLT specified in this action」のままにします。
    • Processing Control File」フィールドの横の「Upload」をクリックします(図13を参照)。
      図13 処理制御ファイルのアップロード
      図13 処理制御ファイルのアップロード
      図13 処理制御ファイルのアップロード
  15. 次のウィンドウで、「参照」をクリックし、このドキュメントで提供されているsimple.xslスタイルシートを指定します。このファイルの詳細がウィンドウに表示されます。
  16. Upload」をクリックします。
  17. 確認ウィンドウで、「Continue」をクリックします。前のウィンドウに戻り、XSL設定が表示されます (図14を参照)。
    図14 XSL設定
    図14 XSL設定
    図14 XSL設定
  18. Done」をクリックします。
  19. Rule Action」セクションで、「Apply」をクリックします。画面最下部の「Configured Rules」に、新しいルールが表示されます(図15を参照)。
    図15 新しいルール
    図15 新しいルール
    図15 新しいルール
  20. 画面最上部の「Select a Policy Name」セクションで、「Close」をクリックします。
    以下のXSLがアップロードされています。
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" 
              xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
              xmlns:dp="http://www.datapower.com/extensions" 
              xmlns:dpconfig="http://www.datapower.com/param/config" 
              extension-element-prefixes="dp" 
              exclude-result-prefixes="dp dpconfig">
        <xsl:output method="xml"/>
        <xsl:template match="/">
            <Message>
                <Text>Simple XSL Transformation</Text>
                <OriginalMessage>
                    <xsl:copy-of select="."/>
                </OriginalMessage>
            </Message>
        </xsl:template>
    </xsl:stylesheet>

ステップ4:バックエンドURLの設定

  1. 「General Configuration settings」の下には、「Back side settings」と「Front side settings」の2つのセクションがあります。これらのセクションでは、マルチプロトコル・ゲートウェイの両サイドのプロパティーを管理します。バックエンドURLを追加するには、「Back side settings」の下にある「MQHelper」をクリックします。
  2. Queue Manager」フィールドの横の「+」をクリックし、「Create a New」=>「MQ Queue Manager」の順に選択します(図16を参照)。
    図16 キュー・マネージャーの作成
    図16 キュー・マネージャーの作成
    図16 キュー・マネージャーの作成
  3. 「Configure Queue Manager」ダイアログの各フィールドを以下のように指定します。
    • Name」に「QMDP」と指定します。
    • 「Comments」フィールドに、「This is the DataPower representation of the WebSphere MQ queue manager」と入力します。
    • 「Host Name」フィールドに、WebSphere MQキュー・マネージャーのあるマシンのホスト名またはIPアドレスと WebSphere MQリスナーのポート番号(この場合は3414)を、「x.x.x.x(3414)」の形式で指定します。
    • 「Queue Manager Name」フィールドに、スクリプトによって生成された名前「QMDP」を指定します。
    • 「Channel Name」フィールドには、「SYSTEM.DEF.SVRCONN」というテキストが事前に入力されています。これは、WebSphere MQキュー・マネージャーのデフォルトで作成されるサーバー接続チャネルです。このチャネルの他の用途と混同しないように、提供のスクリプトでは、DataPower通信専用のDP.CHANNELというサーバー接続チャネルが生成されます。「Channel Name」フィールドの設定を「DP.CHANNEL」に変更します。
    • 「User Name」フィールドに、WebSphere MQに対して認証済みのユーザーIDを指定します。一般に、WebSphere MQのホスト・マシン上にあるローカル・グループ「mqm」のメンバーのユーザーIDを指定します。
    • それ以外の設定はすべてデフォルトのままで、「Apply」をクリックします(図17を参照)。
      図17 「Configure Queue Manager」ダイアログ
      図17 「Configure Queue Manager」ダイアログ
      図17 「Configure Queue Manager」ダイアログ
  4. 「MQ URL Builder」ダイアログに戻り、以下の手順を実行します(図18を参照)。
    • URI」フィールドに「URINotUsed」と指定します。これは、実際にはWebSphere MQの接続に使用しませんが、必須のプロパティーなので入力する必要があります。
    • RequestQueue」フィールドに「BACK.REQUEST」と指定します。
    • ReplyQueue」フィールドに「BACK.REPLY」と指定します。

      Transactionality」で「off」をクリックします。

      UserIdentifier」で「off」をクリックします。

      Build」をクリックします。
      図18 「MQ URL Builder」ダイアログ
      図18 「MQ URL Builder」ダイアログ
      図18 「MQ URL Builder」ダイアログ
  5. ブラウザー・ウィンドウが再度表示され、前のアクションによって以下のバックエンドURLが生成されたことがわかります。

dpmq://QMDP/URINotUsed?RequestQueue=BACK.REQUEST;ReplyQueue=BACK.REPLY

ステップ5:フロント・サイド・ハンドラーの設定

  1. 以下の手順を実行して、新しいフロント・サイド・プロトコルを作成します。
    • 「Front Side Settings」ダイアログで、「Create new」をクリックします。
    • リストから「MQ Front Side Handler」を選択します(図19を参照)。
      図19 フロント・サイド・プロトコルの作成
      図19 フロント・サイド・プロトコルの作成
      図19 フロント・サイド・プロトコルの作成
  2. 以下の手順を実行して、MQフロント・サイド・ハンドラーを設定します(図20を参照)。
    • Name」に「WMQ_FrontSideHandler」と指定します。
    • Queue Manager」フィールドで、「QMDP」を選択します。
    • Get Queue」に「FRONT.GET」と指定します。
    • Put Queue」に「FRONT.PUT」と入力します。
    • Apply」をクリックします。
      図20 MQフロント・サイド・ハンドラーの設定
      図20  MQフロント・サイド・ハンドラーの設定
      図20 MQフロント・サイド・ハンドラーの設定
  3. Add to gateway」をクリックして、作成したフロント・サイド・ハンドラーを追加します(図21を参照)。作成したフロント・サイド・ハンドラーがリストされます。
    図21 フロント・サイド・ハンドラーの追加
    図21 フロント・サイド・ハンドラーの追加
    図21 フロント・サイド・ハンドラーの追加

ステップ6:ゲートウェイ設定の完了

マルチプロトコル・ゲートウェイの場合、残っている設定はあとわずかです。

  1. マルチプロトコル・ゲートウェイ設定の「General」セクションで、「Response Type」と「Request Type」に対して「XML」を選択します(図22を参照)。
    図22 応答タイプと要求タイプの選択
    図22 応答タイプと要求タイプの選択
    図22 応答タイプと要求タイプの選択
  2. WebSphere MQメッセージには、MQメッセージ記述子(MQMD)と呼ばれるヘッダーが含まれています。このMQMDは、この例で使用するXSL変換では処理できないため、バック方向で抑制する必要があります。MQMDを抑制するには、「Headers」をクリックし、「Header Suppression Parameters」の下にある「Add」をクリックします(図23を参照)。
    図23 MQMDの抑制
    図23 MQMDの抑制
    図23 MQMDの抑制
  3. Direction」フィールドはデフォルト設定の「back」のままにします。「Header Tag」に「MQMD」と指定し、「Submit」をクリックします(図24を参照)。
    図24 新しいヘッダー抑制パラメーターの追加
    図24 新しいヘッダー抑制パラメーターの追加
    図24 新しいヘッダー抑制パラメーターの追加
  4. Apply」をクリックし、マルチプロトコル・ゲートウェイの設定を適用します。
  5. View Status」をクリックし、すべてのコンポーネントが動作していることを確認します。すべてのコンポーネントで、「op-state」の値が「up」になっているはずです。
    図25 状態の確認
    図25 状態の確認
    図25 状態の確認
  6. すべてのコンポーネントが動作中で問題がなければ、ウィンドウを閉じます。ただし、DataPowerとMQの統合に関して、何らかのトラブルシューティングを実行しなければならない場合もあります。トラブルシューティングについてはこの記事の範囲外なので、ここでは説明しません。
  7. マルチプロトコル・ゲートウェイの成功ウィンドウに戻ったら、「Done」をクリックします。
  8. 設定を保存するには、該当するドメインの「Save Config」をクリックします。

ステップ7:RFHUtilを使用したテスト

エンドツーエンドのシナリオをテストするには、以下の手順を実行します。

  1. キューのオープン入力カウントを表示するには、WebSphere MQエクスプローラーで「IBM WebSphere MQ」=>「Queue Managers」=>「QMDP」=>「Queues」の順に選択します(図26を参照)。FRONT.GETキューのオープン入力カウントは1になっています。これは、DataPowerアプライアンスがこのキューをオープン状態にし、メッセージの受信準備ができていることを意味します。
    図26 FRONT.GETキュー
    図26 FRONT.GETキュー
    図26 FRONT.GETキュー
  2. IH03で提供されている RFHUtil を起動します。
  3. Main」タブで、以下の手順を実行します。
    • Queue Manager Name」フィールドに「QMDP」と指定します。
    • Queue Name」に「FRONT.GET」と指定します。
    • Read File」をクリックし、この記事で提供されているText.xmlの場所を参照します。
      図27 「Main」タブ上の設定の指定
      図27 「Main」タブ上の設定の指定
      図27 「Main」タブ上の設定の指定
  4. Data」タブをクリックし、「XML」を選択します。以下のメッセージが表示されます。
    図28 「Main」タブ上の設定の指定
    図28 「Main」タブ上の設定の指定
    図28 「Main」タブ上の設定の指定
  5. MQMD」タブをクリックします。
  6. MQ Message Format」に「MQSTR」と指定します(図29を参照)。
    図29 MQメッセージ形式の指定
    図29 MQメッセージ形式の指定
    図29 MQメッセージ形式の指定
  7. Main」タブに戻り、「Write Q」をクリックしてメッセージを送信します。
  8. WebSphere MQエクスプローラーに戻り、「Queues」ウィンドウを再度開きます。FRONT.GET上のメッセージがGETされて、なくなっている点と、メッセージが BACK.REQUESTに送信されている点に注意してください(図30を参照)。
    図30 メッセージのテスト
    図30 メッセージのテスト
    図30 メッセージのテスト
  9. RFHUtilの別のインスタンスを起動します。
  10. Main」タブで、以下の手順を実行します。
    • Queue Manager Name」フィールドに「QMDP」と指定します。
    • Queue Name」フィールドに「BACK.REQUEST」と指定します。
    • Read Q」をクリックします(図31を参照)。
      図31 「Main」タブの設定
      図31 「Main」タブの設定
      図31 「Main」タブの設定
  11. Data」タブを選択し、「XML」を選択します。FRONT.GETに書き込まれた元のメッセージが、DataPowerによって、提供のスタイルシートに従って変換されたことがわかります。
    図32 BACK.REQUESTからのメッセージ
    図32 BACK.REQUESTからのメッセージ
    図32 BACK.REQUESTからのメッセージ
  12. 以下の手順を実行して、BACK.REQUESTから読み取ったものと同じメッセージを使用して応答メッセージを作成します。
    • MQMD」タブを選択します。
    • DataPowerが応答を取得できるように、「Correlation ID」を、DataPowerによって送信されたメッセージの「Message ID」と同じに設定する必要があります。「Copy Msg Id to Correl Id」をクリックします(図33を参照)。
      図33 相関IDの設定
      図33 相関IDの設定
      図33 相関IDの設定
  13. Main」タブで以下の手順を実行し、メッセージを応答キューに書き込みます。
  14. WebSphere MQエクスプローラーに戻り、「Queues」ウィンドウを再度開きます。BACK.REPLYに送信されたメッセージが、GETされてなくなっている点と、メッセージがFRONT.PUTに送信されている点に注意してください。
    図35 BACK.REPLYでのメッセージ処理
    図35 BACK.REPLYでのメッセージ処理
    図35 BACK.REPLYでのメッセージ処理
  15. 以下の手順を実行して、RFHUtilの最初のインスタンスに戻り、メッセージを読み取ります。
  16. データを表示するには、以下の手順を実行します。
    • Data」タブを選択します。
    • XML」をクリックします。
  17. BACK.REPLYに書き込まれた戻りメッセージが、DataPowerによって、提供のスタイルシートに従って再度変換されています。

これでテストは完了です。

まとめ

この演習では、以下の方法について説明しました。

  1. 複数のキューと、DataPowerで使用する1つのチャネルを指定して、単純なキュー・マネージャーを作成する。
  2. 以下のものが含まれたマルチプロトコル・ゲートウェイを設定する。
    • 簡単な処理ポリシー
    • MQフロント・サイド・ハンドラー
    • MQバックエンドURL
  3. エンドツーエンドのシナリオをテストする。

ここでは、DataPowerとWebSphere MQを使用したフロントエンドおよびバックエンドの統合方法を直に見てきました。これらの機能によって、WebSphere DataPower SOAアプライアンスの機能範囲を高性能なWebSphere MQメッセージング・バックボーンにまで拡張することができます。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=WebSphere
ArticleID=328866
ArticleTitle=WebSphere DataPower SOAアプライアンスとWebSphere MQの統合
publish-date=03212007