エクスポート (0) 印刷
すべて展開

チュートリアル:BizTalk サービス ブリッジを使用して、Service Bus Relay Service とメッセージを送受信する

更新日: 2014年9月

このチュートリアルでは、Microsoft Azure BizTalk サービス を使用して配置された 1 つの ブリッジ エンド ポイントに異なるスキーマを使用して XML メッセージを送信する方法について説明します。ブリッジは、ソリューションの一部として定義されたビジネス ロジックに基づいてメッセージを処理して複数のリレー サービスにルーティングします。チュートリアルでは、このシナリオを使用し、次のような BizTalk サービス の機能も紹介します。

  • ルート フィルター: ブリッジを使用すると、フィルターを基にして目的の受信者にメッセージをルーティングすることができます。フィルターは、メッセージの一部として渡される特定の値に設定されます。たとえば、XML メッセージ内の要素 <Recipient> の値が Finance に設定された場合、メッセージが Service A に送信されるようにします。それ以外の場合は、メッセージが Service B に送信されるようにします。詳細については、「The Routing Condition」を参照してください。

  • ルート アクション: ルート アクションは、プロトコルの不一致をブリッジするのに役立ちます。たとえば、App AApp B という 2 つのアプリケーションについて考えます。App A は、REST プロトコルを使用してメッセージを送信し、App B は SOAP メッセージのみを受信します。App A が代わりにブリッジにメッセージを送信すると、ブリッジはルート アクションの一部として SOAP ヘッダーをメッセージに含めます。その後で、ブリッジは、メッセージを App B に送信します。詳細については、「The Routing Action」を参照してください。

  • 応答アクション: 応答アクションは、応答をクライアントに返すときに、ルート アクションがメッセージを受信者に送信するときに提供するのと同じ機能を提供します。そのため、App B が応答を App A に送信する場合、ブリッジは、応答アクション機能を使用して、クライアントに必要なヘッダーのスタンプを応答に付けます。詳細については、「Reply Action」を参照してください。

このチュートリアルでは、ビジネス シナリオを使用してブリッジのこれらの機能とその他の機能について説明します。

Northwind Traders は、自動車保険会社です。Northwind Traders は、保険メッセージの業界標準である標準 ACORD スキーマに準拠した XML 形式の新しい保険契約の見積要求を受け取ります。受信するメッセージは、任意の ACORD 互換形式です。そのため、Northwind Traders は、複数の XML スキーマに準拠した XML メッセージを処理できるソリューションを構成する必要があります。Northwind Traders がメッセージを受信した後に、メッセージは提供された ACORD メッセージ スキーマと比較して検証され、Northwind 内部のスキーマに変換されます。次に、Northwind はメッセージをバックエンド サービスに送信して、メッセージをさらに処理します。ただし、メッセージがサービスに送信される前に特定のルーティング条件が確認されます。

  • メッセージ内の見積金額が $10000 未満である場合、RelayReceiverServiceA などのリレー サービスに送信される必要があります。メッセージをリレー サービスに送信する前に、QuoteType という SOAP ヘッダーをメッセージ ヘッダーに追加する必要があります。このヘッダーの値は SmallAmounts に設定する必要があります。

  • メッセージ内の見積金額が $10000 より多い場合は、高リスク請求として扱われ、RelayReceiverServiceB などの別のリレー サービスに送信されます。メッセージをサービスに送信する前に、QuoteType という SOAP ヘッダーをメッセージ ヘッダーに追加する必要があります。このヘッダーの値は LargeAmounts に設定する必要があります。

メッセージを受信した後にサービスが応答を生成し、ヘッダーを追加して、応答をブリッジに戻します。サービスは次のヘッダーを追加します。

 

応答元のサービス 追加されるヘッダー

RelayServiceA

 

ヘッダーの名前 ヘッダーの値

MsgStatus

Success

適性

ApprovedForSmallAmounts

RelayServiceB

 

ヘッダーの名前 ヘッダーの値

MsgStatus

Success

適性

ApprovedForLargeAmounts

サービスからの応答の形式は、Northwind の内部要求形式と同じです。ブリッジは、応答を受信した後に、ACORD 標準に準拠した応答メッセージ スキーマに変換します。ブリッジは、MsgStatusヘッダーから値を取得して、応答スキーマ内の要素に割り当てます。最後に、メッセージをクライアントに返す前に、ブリッジが、ProcessingStatus という別のヘッダーを追加し、その値を Complete に設定します。次の図は、このシナリオを表しています。

ブリッジとリレー サービスの使用

Northwind Traders は、BizTalk サービス を使用して、 上でこのシナリオをセットアップします。次に、Northwind Traders がこのシナリオの最後に、エンドツーエンドで実行する操作を示します。

  • Northwind は、RelayReceiverServiceARelayReceiverServiceB という 2 つのリレー サービスを作成します。RelayReceiverServiceA は、$10000 未満の見積金額のメッセージを受信し、RelayServiceB は、$10000 より多い見積金額のメッセージを受信します。メッセージを受信した後で、両方のサービスは、ビジネス シナリオで説明したように応答メッセージを生成し、ヘッダーのスタンプを付けます。

  • Northwind は、BizTalk サービス プロジェクト を作成し、受信 XML メッセージを処理して応答を送信するための XML 要求-応答ブリッジ を追加します。Northwind は、RelayReceiverServiceARelayReceiverServiceB に 1 つずつ、双方向のリレー サービス コンポーネントも追加します。

  • Northwind は、すべての必要なアーティファクト (スキーマと変換) を BizTalk サービス プロジェクト に追加します。

  • Northwind は、XML 要求-応答ブリッジ の要求パスを構成し、次の操作を実行します。

    • 検証段階を構成し、ACORD スキーマと比較して XML メッセージを検証します。

    • 強化段階を構成し、どのメッセージがバックエンド サービスにルーティングされるかを基にしてプロパティを昇格させます。

    • 変換段階を構成し、メッセージを ACORD スキーマから Northwind の内部スキーマに変換します。

  • Northwind は、XML 要求-応答ブリッジ の応答パスを構成し、次の操作を実行します。

    • 強化段階を構成し、リレー サービスが応答メッセージに追加した MsgStatus ヘッダーを抽出します。

    • 変換 段階を構成し、リレー サービスからの応答を、ACORD 標準に準拠したメッセージ スキーマに変換します。この段階で、ブリッジは、MsgStatus ヘッダーからの値を、応答スキーマ内の要素に割り当てます。

    • 応答アクションを構成し、ProcessingStatus ヘッダーを、クライアントに送信される応答メッセージに含めます。

  • Northwind は、2 つのリレー サービスを表す BizTalk サービス プロジェクト に 2 つの外部リレー エンドポイントを追加し、それらを XML 要求-応答ブリッジ ブリッジに接続します。これらのルーティング コネクタの一部として、Northwind は次の操作を実行します。

    • ブリッジの構成 デザイン画面上のすべてのコンポーネントを接続し、見積金額を基にしてフィルターの条件を設定します。

    • QuoteType ヘッダーのスタンプをメッセージに付けて、メッセージのルーティング先のサービスに応じて、その値を SmallAmounts または LargeAmounts に設定します。

  • 最後に、Northwind は、Service Bus 上の 2 つのリレー サービスと BizTalk サービス プロジェクト を BizTalk サービス に配置し、メッセージをブリッジ エンドポイントに送信します。

このチュートリアルは、MSDN コード ギャラリーからダウンロードできる、サンプルの Bridges_RelayServices.zip に基づいて作成されています。サンプルを使用し、このチュートリアルを進めながら、サンプルがどのように作成されたかを理解することもできますし、このチュートリアルを利用して独自のアプリケーションを作成することもできます。このチュートリアルでは、このアプリケーションがどのように作成されたかを理解できるように、2 番目の方法を対象としています。また、このチュートリアルは、できる限りサンプルとの一貫性が確保されており、各種要素 (スキーマ、変換など) にサンプルで使用されるのと同じ名前を使用しています。

Microsoft では概念と手順を理解するためにチュートリアルに従うことをお勧めしていますが、サンプルを使用する場合は、次の作業を行ってください。

  • Bridges_RelayServices サンプルをダウンロードし、Service Bus 名前空間、発行者名、発行者キーの指定など、関連する変更を行います。必要な変更を加えたら、アプリケーションをビルドして配置します。

  • 2 つのリレー サービスをビルドしてホストし、ブリッジ経由で受信した要求メッセージを受け入れます。

  • パッケージで提供される MessageSender ツールを使用し、要求メッセージを ブリッジ に送信します。サービスと MessageSender ツールのコマンド プロンプトを見て、メッセージが正常に処理されたかどうかを確認します。メッセージが正常に処理された場合、要求および応答のスキーマはプロジェクトの \bin\Debug フォルダーの下に保存されます。さらにメッセージ ファイルの場所と名前がそれぞれのコマンド プロンプトに表示されます。

BizTalk サービス のダウンロード場所 (http://go.microsoft.com/fwlink/?LinkId=235057) から、BizTalk サービス SDK をダウンロードしてインストールします。手順については、「Azure BizTalk サービス SDK のインストール」を参照してください。SDK をインストールすると BizTalk サービス プロジェクト テンプレートが Visual Studio にインストールされます。このプロジェクト テンプレートは、ビジネス シナリオで説明したように、検証するブリッジの作成、変換、および異なるエンドポイントへのメッセージのルーティングのために使用されます。

関連項目

表示:
© 2014 Microsoft