動的解決サンプルのしくみ
動的解決サンプルでは、前のセクションで説明したすべてのメッセージング例に ESB Dispatcher 逆アセンブラー パイプライン コンポーネントを使用します。
一方向メッセージング シナリオの場合、この例では STATIC、BRE、または XPATH リゾルバーを使用してエンドポイントを解決し、FILE から FILE、FTP、または MQSeries にプロトコルを仲介します。
双方向メッセージング のシナリオでは、STATIC、BRE、UDDI、または XPATH リゾルバーを使用してエンドポイントを解決し、SOAP から SOAP または WCF-BasicHttp にプロトコルを仲介します。 さらに、この例では、BRE リゾルバーを使用して Microsoft BizTalk マップを解決して実行します。このマップでは、メッセージ コンテキスト プロパティとメッセージ本文に含まれるファクトを使用して解決結果が決定されます。
解決プロセスの結果は、すべての双方向の例がメッセージを ESB に送信することです。CanadianServices Web サービスは、 http://localhost/ESB.CanadianServices/SubmitPOService.asmx. さらに、解決結果に応じて、 submitOrder アクションまたは submitPurchase アクションを実行します。 さらに、ESB ディスパッチャー逆アセンブラー パイプライン コンポーネントは、指定されたアクションまたは解決されたアクションに応じて、BizTalk マップを動的に実行します。
図 1 は、DynamicResolutionReqResp_SOAP受信場所用に構成されたパイプラインを示しています。
図 1
動的解決サンプル アプリケーションのDynamicResolutionReqResp_SOAP受信場所の構成済みパイプライン
図 2 は、ESB ディスパッチャー逆アセンブラーを使用する ESBReceiveXML コンポーネントのインスタンスごとのプロパティを示しています。
図 2
動的解決サンプル アプリケーションの ESBReceiveXML パイプライン内のコンポーネントのインスタンスごとのプロパティ
次のプロパティを図 2 に示します。
Enabled。 このプロパティは、パイプラインがアクティブかどうかを決定します。 これが False に設定されている場合、メッセージは処理されずに通過します。
エンドポイント。 このプロパティは、読み込むリゾルバーを決定するために使用される接続文字列であり、エンドポイントの構成を指定します。
MapName。 このプロパティは、読み込むリゾルバーと実行する BizTalk マップを決定するために使用される接続文字列です。 リゾルバー 接続文字列ではなく、マップの完全修飾名を指定できます。
検証する。 True (既定の設定) に設定すると、ESB Dispatcher 逆アセンブラー コンポーネントは ESB 変換サービスに対して、マップで定義されているソース スキーマに対して解決および実行されるソース メッセージを検証するように指示します。
図 3 は、ESB ディスパッチャーを使用する ESBSendPassthrough コンポーネントのインスタンスごとのプロパティを示しています。
図 3
動的解決サンプル アプリケーションの ESBSendPassthrough パイプライン内のコンポーネントのインスタンスごとのプロパティ
次のプロパティを図 3 に示します。
Enabled。 このプロパティは、パイプラインがアクティブかどうかを決定します。 これが False に設定されている場合、メッセージは処理されずに通過します。
エンドポイント。 このプロパティは、読み込むリゾルバーとエンドポイント構成を決定するために使用される接続文字列です。
MapName。 このプロパティは、読み込むリゾルバーと実行する BizTalk マップを決定するために使用される接続文字列です。 マップの完全修飾名は、リゾルバーの接続文字列の代わりに使用できます。
検証する。 True (既定の設定) に設定すると、ESB Dispatcher 逆アセンブラー コンポーネントは ESB 変換サービスに対して、マップで定義されているソース スキーマに対して解決および実行されるソース メッセージを検証するように指示します。