リゾルバーとアダプターのプロバイダー フレームワーク
リゾルバーとアダプター プロバイダー フレームワークでは、スケジュール、変換、エンドポイントの解決とルーティングがサポートされています。 フレームワークでは、エンドポイントを動的に解決し、送信アダプターのプロパティを設定できます。 リゾルバー コンポーネントがエンドポイントを解決した後 (たとえば、ユニバーサル説明、検出、統合 [UDDI] を使用して送信 Web サービス エンドポイントを検索)、アダプター プロバイダー コンポーネントは、登録済みのBizTalk Server アダプターの特定のプロパティを設定します。 たとえば、WCF-BasicHttp アダプター プロバイダーは、特定の BizTalk アダプターを使用するエンドポイント URI の BizTalk 固有のメッセージ コンテキスト プロパティを設定します。FTP アダプター プロバイダーは、FTP アダプターに固有のプロパティを設定する役割を担います。
リゾルバーとアダプター プロバイダー フレームワークの目的の 1 つは、BizTalk オーケストレーションを使用せずに、またはオーケストレーション レベルで、メッセージング レベルで解決とルーティングをサポートすることです。 どちらの場合も、プラグ可能なフレームワークにより、新しいリゾルバーとアダプター プロバイダーの開発、展開、登録が簡単になります。 すべてのリゾルバーとアダプター プロバイダーは、適切に定義されたインターフェイスを実装し、構成ファイルへの登録によって実行時に需要が読み込まれます。
ESB Dispatcher と ESB Dispatcher の逆アセンブル パイプライン コンポーネントはどちらも、スケジュール SOAP ヘッダーまたはパイプライン構成からリゾルバー マネージャーに接続文字列を渡すことによって、リゾルバーとアダプター プロバイダー フレームワークを使用します。
Microsoft BizTalk ESB Toolkit の構成には、登録されているすべてのリゾルバーとアダプター プロバイダーの詳細が含まれています。 実行時に、リゾルバー マネージャーとアダプター マネージャーは、登録されているリゾルバーとアダプター プロバイダーの詳細を構成ファイルから読み取り、適切なアセンブリを読み込み、BizTalk ホスト レベルのキャッシュに格納します。 このキャッシュ手法により、構成ファイルを繰り返し読み取り、送信されたすべてのメッセージに対してアセンブリを読み込む必要がなくなります。
リゾルバーとアダプター プロバイダー フレームワークのしくみと、カスタム リゾルバーとアダプター プロバイダーを作成して拡張する方法の詳細については、「 BizTalk ESB Toolkit の変更と拡張」を参照してください。
サポートされている解決メカニズム (リゾルバー)
BizTalk ESB Toolkit には、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;
version=;
LDAP
LDAP:\\TransportType=SMTP;
TransportLocation={mail}
Filter=(&(objectClass=User)(|(userPrincipalName=yourname@domain.com)));
SearchRoot=;
SearchScope=Subtree;
EndpointConfig=Subject=Itinerary Test Message 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 ツールキットの変更と拡張」を参照してください。