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

ブリッジの用途とステージ

更新日: 2013年11月

BizTalk サービスには、パススルー ブリッジと XML ブリッジの 2 種類のブリッジが用意されています。XML ブリッジ にはさらに、XML 一方向ブリッジとXML 要求-応答ブリッジが含まれています。このセクションでは、これらのブリッジの用途と段階について説明します。

XML ブリッジを使用すると、XML メッセージを交換することで通信する 2 つ以上の異なるシステム間で不一致を仲介およびブリッジ処理することができます。XML ブリッジは、通常はメッセージ フローで他の Service Bus エンティティと組み合わせて使用し、次のようなさまざまな仲介のパラダイムとシナリオを実現します。

  • メッセージの検証: XML ブリッジは、受信 XML メッセージを XSD スキーマと照合する検証をサポートしています。検証に失敗したメッセージは拒否されます。

  • メッセージの強化と抽出: XML ブリッジは、他のデータ ソースからのデータの参照を通じたメッセージの強化をサポートしています。一般的にこの機能が有用であるのは、通常は構成ストア、外部サービスなどのメッセージの境界を超える場所に存在するコンテキスト データがメッセージで必要になることがある状況です。

    また、XML ブリッジにより、最終的にルーティングに使用できる XML メッセージからプロパティを抽出することもできます。たとえば、注文書メッセージでは、Quantity 要素をマークできます。メッセージは、注文数量の値に基づいてルーティングすることができます。

  • メッセージ変換: XML ブリッジは、ある XML 構造から別の XML 構造へのメッセージ本文の変換をサポートしています。XML ブリッジのこの機能は、複数のメッセージが 1 つのメッセージにマッピングされるシナリオで、メッセージを "正規化" するのに使用することもできます。たとえば、ブリッジでさまざまなスキーマの注文書をさまざまなクライアントから受け入れる必要があるが、最終的にそれらが組織で必要な 1 つの注文書のスキーマに変換されるシナリオです。

  • 場所の仮想化: XML ブリッジは、バックエンド サービスのプリミティブな場所の仮想化を実現します。クライアントは、(クラウド上またはオンプレミスに存在する可能性がある) 実際のサービスではなく、クラウドに公開されている XML ブリッジ エンドポイントにメッセージを送信します。続いて、ルーティング ルールに基づいて、ブリッジはバックエンド サービスにメッセージをルーティングします。

  • カスタム処理: ブリッジには、既定のブリッジ構成に含まれていない処理タスクを組み込むため、カスタム コードを含めるオプションがあります。

このセクションでは、XML ブリッジのさまざまな段階について説明します。各段階は省略可能であり、またオン/オフを切り替えることができます。

XML ブリッジの最初の段階は検証段階です。これにより、XML メッセージを指定のスキーマと照合する XSD 検証が実現されます。検証に使用するスキーマは、ブリッジの構成時に指定します。1 つの XML ブリッジで、スキーマが異なる XML メッセージを受信して処理することができます。検証段階では、着信メッセージに応じて、対応するスキーマが検証に選択および使用されます。メッセージがスキーマに対して検証されれば、検証段階はメッセージ上の X_PIPELINE_MESSAGETYPE プロパティを昇格させます。プロパティの値は、http://IntegrationServices.Schema#RootNode など、スキーマおよびルート ノード名のターゲット名前空間の組み合わせです。一致するスキーマが見つからなかったため、またはあいまいな一致 (複数のスキーマの一致) のためにメッセージの検証が失敗した場合、例外がスローされます。

検証段階の構成方法の手順については、「To configure the Validate stage」を参照してください。

強化段階では、プロパティを作成してメッセージを強化できます。プロパティの値は、着信メッセージ ヘッダーから、システムによって昇格されたプロパティから、着信メッセージの本文の要素または属性から、または Microsoft Azure SQL データベース テーブルなどの外部データ ソースに対する参照を通じて派生可能な値です。これらのプロパティは、宛先エンドポイントおよびプロトコル ブリッジへのメッセージのルーティングに使用できます。

 

Operation 説明

プロパティ割り当てのヘッダー

この操作では、メッセージ ヘッダーの値を使用して、それをプロパティに割り当てることができます。たとえば、SOAP ヘッダーからアクションを抽出し、それをプロパティに割り当て、続いてそのプロパティをさらに処理/ルーティングするために使用することができます。ブリッジにメッセージを送信するために使用されるメッセージ プロトコルに基づいて、プロパティを使用できます。サポートされるプロトコルは、HTTP、SOAP、FTP、および SFTP です。これらのプロトコルには、次のプロパティが使用できます。

  • SOAP

    • 操作

    • MessageId

    • ReplyTo

    • 宛先

    • カスタム SOAP ヘッダー

  • HTTP – 標準 HTTP ヘッダー

  • FTP/SFTP

    • FileName

    • ServerAddress

    • フォルダー

プロパティ割り当てのヘッダーを構成する方法の手順については、「To assign message header values to properties」を参照してください。

システムによって昇格されたプロパティを使用する

既定では、BizTalk サービスは、ブリッジにより処理されるメッセージ上の複数のプロパティを昇格させます。これらのプロパティは、システムによって昇格されたプロパティとも呼ばれます。これらのプロパティの値は、ルーティングの宛先の決定など、さまざまな処理タスクに使用することもできます。利用可能な、システムによって昇格されたプロパティには次のものがあります。

  • RequestId - メッセージに割り当てられる一意の要求 ID。

  • MessageReceivedTime - メッセージがブリッジ エンドポイントで受信された時間を示すタイムスタンプ。

  • SourceName - ブリッジの構成画面で定義される、ブリッジのメッセージの受信元であるソースの名前。

  • SourceType - ブリッジの構成画面で使用される、ブリッジのメッセージの受信元であるソースの種類。

システムによって昇格されたプロパティを使用する方法の手順については、「To use system-promoted properties」を参照してください。

抽出

強化段階の抽出操作を使用して、メッセージのルーティングまたはさらなる処理に使用される、メッセージ本文自体の固有の要素または属性の値を抽出します。

抽出操作の構成方法の手順については、「To extract values from a message body using xpath」を参照してください。

参照

強化段階の参照操作を使用して、メッセージ境界の外部にあるソースからのデータを参照して含めることで、メッセージを強化します。たとえば、ユーザーが現地通貨を使用して注文できるようにするオンライン小売店が存在するが、注文処理用のバックエンド サービスがすべての注文の処理にドルなどの 1 つの通貨を使用する場合です。このような場合、メッセージがバックエンド サービスに送信される前に、注文の値は現地通貨からドルに変換する必要があります。最新の為替レートを提供する別のサービスを参照することで、この処理を行うことができます。

このリリースでは、強化段階は Microsoft Azure SQL データベース からのデータの参照のみをサポートしています。つまり、Microsoft Azure SQL データベース は現在のリリースでサポートされている唯一の参照 "プロバイダー" です。参照プロバイダーに関する情報は LookupProviderConfigurations.xml に格納され、このファイルはBizTalk サービス プロジェクトに追加されます。1 つの .xml ファイルに定義されている複数のプロバイダーを使用できますが、このことは、1 つの強化段階の一部として複数の Microsoft Azure SQL データベース データ ソースから参照できるという事実に対応しています。LookupProviderConfigurations.xml ファイルの典型的なプロバイダーの定義は次の形式です。

<ArrayOfLookupProviderConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WindowsAzureServiceBus/Bridge">
  <LookupProviderConfiguration i:type="SqlTableLookupProviderConfiguration">
    <ProviderName>...</ProviderName>
    <ConnectionString>...</ConnectionString>
    <QueryInColumnName>...</QueryInColumnName>
    <QueryOutColumnName>...</QueryOutColumnName>
    <TableName>...</TableName>
  </LookupProviderConfiguration>
</ArrayOfLookupProviderConfiguration>

上記の例では、LookupProviderConfiguration 要素の type 属性は SqlTableLookupProviderConfiguration に固定されています。これは、現時点では Microsoft Azure SQL データベース 内のテーブルのみを参照できるためです。

Microsoft Azure SQL データベース からデータを参照する際の考慮事項もいくつかあります。

  • Microsoft Azure SQL データベース テーブルのみを参照できます。

  • 参照は、キーと値のペアを使用して行う必要があります。

  • 参照で得られる値は、メッセージでプロパティに割り当てられる 1 つの値のみである必要があります。参照で複数の値が得られる場合、これらの値の最初の値がプロパティに割り当てられます。

  • 複数のデータ ソースから値を参照できます。このことは、複数の Microsoft Azure SQL データベース テーブルまたは複数の Microsoft Azure SQL データベース から参照できることを意味します。

参照操作の構成方法の手順については、「To lookup an external data source」を参照してください。

プロバイダーに関する情報は LookupProviderConfigurations.xml に格納されますが、ヘッダーからメッセージのプロパティに割り当てる値、抽出する値、および参照する値に関する情報はブリッジ構成ファイルに格納されます。BizTalk サービス プロジェクトをビルドする際には、LookupProviderConfigurations.xml もブリッジ構成ファイルにまとめられます。BizTalk サービス プロジェクトを配置する際に、Service Bus に配置されるのはこのブリッジ構成ファイルです。

強化段階では、プロパティを作成し、これらのプロパティに値を割り当てます。しかし、これらのプロパティを使用してどのような操作ができるのか、これらのプロパティはどのようにしてタスクを簡単に実行できるようにするか、という疑問が生じます。これらのプロパティは次の 2 つの方法で使用できます。

  • これらのプロパティを使用すると、メッセージをさまざまな宛先にルーティングするフィルター条件を設定できます。これを行う方法の手順については、「The Routing Condition」を参照してください。

  • これらのプロパティを使用すると、メッセージの送信者と受信者の間のプロトコルの不一致をブリッジすることができます。たとえば、カスタム ヘッダーの値が含まれる着信 SOAP メッセージがあるとします。メッセージの受信者には REST メッセージが必要でも、SOAP メッセージ形式を解釈できない場合は、この値を HTTP メッセージのカスタム ヘッダーとして渡す必要があります。プロパティを使用するとこの操作を行うことができます。まず、着信メッセージのヘッダーからの値を P1 などのプロパティに割り当て、受信者にメッセージを送信している間に、送信メッセージのメッセージ ヘッダーに値 P1 を割り当てる方法があります。詳細については、「Route and Reply Actions: Bridging Protocol Mismatch」を参照してください。

ブリッジの構成内では、強化段階の一部として定義したプロパティは、ブリッジの構成の各段階のメッセージ フロー全体で使用できます。つまり、強化段階でプロパティを定義した場合は、変換段階だけでなくすべてのマップ操作にそのプロパティを使用できます。強化段階で定義されているプロパティは、ブリッジの構成の境界の外部でも使用できますが、いくつかの点を考慮する必要があります。その詳細の説明に進む前に、プロパティの値は Service Bus BrokeredMessage クラスのプロパティとして格納されていることを理解する必要があります。この事実を確認した上で、ブリッジの構成の外部でのプロパティの有効期間について説明を進めます。

  • Service Bus の 1 つのキューまたはトピックのみが BrokeredMessage 型のメッセージを使用できるため、(キーと値のペアとして) プロパティとその値はキューおよびトピックにより直接使用できます。その後、たとえばトピックでは、プロパティをさらなる処理とルーティングに使用できます。

  • プロパティやその値を、一方向/双方向のリレー エンドポイントや一方向/双方向の外部サービス エンドポイントなどの、その他のブリッジの構成 コンポーネントに渡すことはできません。プロパティの値をこれらのエンティティに渡さない場合は、プロパティの値を、送信メッセージのヘッダーに割り当てる必要があります。詳細については、「Route and Reply Actions: Bridging Protocol Mismatch」を参照してください。

  • あるブリッジからのメッセージが別のブリッジにルーティングされ、最終的に (たとえば) Service Bus キューに到達する「チェーン」シナリオでは、チェーンの最後のブリッジからのプロパティのみが、さらなるルーティングや処理に使用できます。また、プロパティの値を以降のブリッジに渡すには、プロパティの値を、送信メッセージのヘッダーに割り当てる必要があります。その後、2 番目のブリッジでこれらのプロパティを抽出する必要があります。

変換段階は、名前が意味するように、メッセージに対する構造変換を実行する機能を提供します。パイプラインの他の段階と同じように、変換段階は複数のメッセージ型と連携できるため、変換段階の一部として複数の変換を使用できます。ブリッジの構成時に、対応する変換が構成およびアップロード済みであれば、実行すべき適切な変換は、着信メッセージの型に基づいて実行時に自動的に検索されます。着信メッセージのメッセージ型に基づいて、変換の解決が行われます。

  • 変換段階では、メッセージのメッセージ型と、マップ内のソース スキーマのメッセージ型を照合します。

  • 検証段階がオフである場合、変換段階は着信メッセージとソース メッセージ スキーマを照合します。解決が行われると、メッセージ上の MessageType プロパティが昇格します。

現在のリリースでは、1 つのソースから 1 つの宛先への変換のみをサポートしています。詳細については、「Azure BizTalk サービスのメッセージ変換」を参照してください。変換段階の構成方法の手順については、「To configure the Transform stage」を参照してください。

強化段階 (変換後) は、変換前の強化段階に似ています。唯一の相違点は、変換後の強化段階では、変換済みのメッセージを強化できることです。強化段階を構成する方法は、変換前の強化段階と同じままです。強化段階 (変換後) の構成方法の手順については、「XML One-Way Bridge : Configuring the Enrich Stage (post- Transform) for the Request Message」を参照してください。

noteメモ
変換段階の前に抽出または検索されたすべてのプロパティは、変換済みのメッセージでも使用できます。以前に抽出または強化されたプロパティは、変換後の強化段階で変更されている場合、上書きされます。

上記のセクションでは、検証段階において、検証はスキーマに対して行われ、変換段階ではメッセージは変換を使用して変換されることを説明しました。そのため、XML ブリッジの一部として利用できるアーティファクトには次のものがあります。

  • スキーマ。拡張子は .XSD

  • 変換。拡張子は .TRFM で、変換段階では複数の変換を行うことができます。

  • アセンブリ。これらには、ブリッジの特定の段階に組み込むことができるカスタム処理ロジックが含まれます。

  • 証明書。これらは、セキュリティで保護されたメッセージ転送に使用されます。

noteメモ
ブリッジ構成ファイルは、異なるブリッジ間で共有できないため、アーティファクトではありません。ブリッジ構成ファイルはブリッジに固有です。

BizTalk サービス アプリケーションでは複数のブリッジを使用でき、各ブリッジでは複数の変換とスキーマを使用できます。そのため、典型的な BizTalk サービスアプリケーションには多数の変換とスキーマがあります。ただし、同時に、各 XML ブリッジにすべての変換とスキーマが必要になるわけではありません。そのため、変換およびスキーマをブリッジに関連付ける手段が存在する必要があります。ブリッジの構成中にこの関連付けを行うことができます。

パススルー ブリッジを使用するのは、メッセージ型をブリッジで処理する必要がある場合です。その結果、両方の段階がメッセージ型に結び付けられるため、パススルー ブリッジには検証または変換の段階が含まれません。パススルー ブリッジに含まれるのは強化段階のみで、これは XML ブリッジ内と同じ目的に使用されます。パススルー ブリッジを構成する方法については、「パススルー ブリッジの構成」を参照してください。

関連項目

表示:
© 2014 Microsoft