リゾルバーとアダプター プロバイダー フレームワークでは、スケジュール、変換、エンドポイントの解決とルーティングがサポートされています。 フレームワークは、エンドポイントを動的に解決し、送信アダプターのプロパティを設定できます。 リゾルバー コンポーネントがエンドポイントを解決した後 (たとえば、ユニバーサル説明、検出、統合 [UDDI] を使用して送信 Web サービス エンドポイントを検索する)、アダプター プロバイダー コンポーネントは、登録されている BizTalk Server アダプターの特定のプロパティを設定します。 たとえば、WCF-BasicHttp アダプター プロバイダーは、特定の BizTalk アダプターを使用するエンドポイント URI の BizTalk 固有のメッセージ コンテキスト プロパティを設定します。FTP アダプター プロバイダーは、FTP アダプターに固有のプロパティを設定する役割を担います。
リゾルバーとアダプタープロバイダーフレームワークの目標の1つは、BizTalkオーケストレーションを使用せずにメッセージングレベルで、またはオーケストレーションレベルで解決とルーティングをサポートすることです。 どちらの場合も、プラグ可能なフレームワークにより、新しいリゾルバーとアダプター プロバイダーの開発、展開、登録が簡単になります。 すべてのリゾルバーとアダプター プロバイダーは、適切に定義されたインターフェイスを実装し、構成ファイルへの登録を通じて実行時に要求が読み込まれます。
ESB ディスパッチャーと ESB ディスパッチャー逆アセンブル パイプライン コンポーネントはどちらも、スケジュール SOAP ヘッダーまたはパイプライン構成からリゾルバー マネージャーに接続文字列を渡すことによって、リゾルバーとアダプター プロバイダー フレームワークを使用します。
Microsoft BizTalk ESB Toolkit の構成には、登録されているすべてのリゾルバーとアダプター プロバイダーの詳細が含まれています。 実行時に、リゾルバー マネージャーとアダプター マネージャーは、登録されているリゾルバーとアダプター プロバイダーの詳細を構成ファイルから読み取り、適切なアセンブリを読み込み、BizTalk ホスト レベルのキャッシュに格納します。 このキャッシュ手法により、構成ファイルを繰り返し読み取り、送信されたメッセージごとにアセンブリを読み込む必要がなくなります。
リゾルバーとアダプター プロバイダー フレームワークのしくみと、カスタム リゾルバーとアダプター プロバイダーを作成して拡張する方法の詳細については、「 BizTalk ESB ツールキットの変更と拡張」を参照してください。
サポートされている解決メカニズム (リゾルバー)
BizTalk ESB ツールキットには、STATIC、UDDI、UDDI3、XPATH、BRE、BRI、ITINERARY、ITINERARY-STATIC、LDAP のリゾルバーが含まれています。
リゾルバーの接続文字列は、常に モニカー ( BRE など) の後に ":\\" が続き、接続または処理の詳細で構成されます。 モニカーは、構成ファイル内の関連するリゾルバーの定義と一致します。 各接続文字列に関連付けられているプロパティは一意であり、すべてのプロパティが必要なわけではありません。 各リゾルバーのスキーマは、ESB にあります。Resolvers.Schemas プロジェクト。
接続文字列の例を次に示します。
静的 の
STATIC:\\TransportType=;
TransportLocation=
http://localhost/ESB.CanadianServices/SubmitPOService.asmx
;Action=;
EndPointConfig=;
JaxRpcResponse=false;
MessageExchangePattern=;
TargetNamespace=http://globalbank.esb.dynamicresolution.com/canadianservices/;
TransformType=;
UDDI
UDDI:\\serverUrl=
http://localhost:9901/rmengine
;serviceName=OrderPurchaseWebService;
serviceProvider=Microsoft Practices ESB
[XPath]
XPATH:\\TransportType=;
TransportLocation=/*[local-name()='OrderDoc' and namespace-uri()='http://globalbank.esb.dynamicresolution.com/northamericanservices/']/*[local-name()='ID' and namespace-uri()='http://globalbank.esb.dynamicresolution.com/northamericanservices/'];
Action=;
EndPointConfig=;
JaxRpcResponse=;
MessageExchangePattern=;
TargetNamespace=/*[local-name()='OrderDoc' and namespace-uri()='http://globalbank.esb.dynamicresolution.com/northamericanservices/']/*[local-name()='customerName' and namespace-uri()='http://globalbank.esb.dynamicresolution.com/northamericanservices/'];
TransformType=;
BRE
BRE:\\policy=GetCanadaEndPoint;
version=;
useMsg=
BRI
BRI:\\policy=ResolveItinerary;
version=;
useMsg=;
旅程
ITINERARY:\\name=TwoWayTestItinerary;
version=;
ITINERARY-STATIC
ITINERARY-STATIC:\\name=TwoWayTestItinerary;
バージョン=;
LDAP
LDAP:\\TransportType=SMTP;
TransportLocation={mail}
Filter=(&(objectClass=User)(|(userPrincipalName=
))) SearchRoot=;
SearchScope=Subtree;
EndpointConfig=件名=旅程テストメッセージ to {mail}&
SMTPAuthenticate=0&
SMTPHost=127.0.0.1&
From=test@globalbank.com&
DeliveryReceipt=false&
MessagePartsAttachments=0&
ReadReceipt=false;
ThrowErrorIfNotFound=false;
Action=;
JaxRpcResponse=false;
MessageExchangePattern=;
TargetNamespace=;
TransformType=;
接続文字列内のすべての属性が必須であるわけではありません。 さらに、 EndPointConfig は、リゾルバーが設定して返すことができる特別な属性です。 必要に応じて、リゾルバーは、特定の BizTalk アダプター コンテキスト プロパティに対応する名前と値のペアを格納し、その後、BizTalk メッセージのコンテキストに書き込むことができます。
この場合、解決プロセスから返されるすべての解決済みプロパティを含む ResolverDictionary インスタンスは、アダプター マネージャーに渡されます。 アダプター マネージャーは、メッセージのすべてのアダプター固有およびエンドポイント固有の BizTalk コンテキスト プロパティを設定する特定のアダプター プロバイダーにディクショナリを渡します。 リゾルバーは EndPointConfig プロパティを検索し、それぞれのアダプター プロパティに対応する名前と値のペアを抽出し、メッセージにこれらの値を設定します。
サポートされているアダプター プロバイダー
Microsoft BizTalk ESB Toolkit には、FILE、FTP、SMTP、MQSeries、WCF-BasicHttp、WCF-WSHttp、WCF-Custom の組み込みアダプター プロバイダーが含まれています。 各アダプター プロバイダーの名前は、BizTalk Server で関連付けられているアダプター (トランスポートの種類) の名前と同じです。
リゾルバーとアダプター プロバイダー フレームワークの主な利点は、独自のカスタム リゾルバーを作成して登録してエンドポイント情報を解決し、カスタム アダプター プロバイダーを作成して登録することで、登録された BizTalk アダプターの特定のプロパティを設定できることです。 詳細については、「 BizTalk ESB ツールキットの変更と拡張」を参照してください。