解析程序和适配器提供程序框架
解析程序和适配器提供程序框架支持路线、转换以及终结点解析和路由。 框架可以动态解析终结点并设置出站适配器属性。 例如,在解析程序组件解析终结点 (之后,使用通用说明、发现和集成 [UDDI]) 查找出站 Web 服务终结点,适配器提供程序组件将设置已注册BizTalk Server适配器的特定属性。 例如,WCF-BasicHttp 适配器提供程序负责为将使用特定 BizTalk 适配器的终结点 URI 设置特定于 BizTalk 的消息上下文属性;FTP 适配器提供程序负责设置特定于 FTP 适配器的属性。
解析程序和适配器提供程序框架的一个目标是在消息传送级别支持解析和路由,而无需使用 BizTalk 业务流程,或在业务流程级别。 在这两种情况下,可插入框架都可以轻松开发、部署和注册新的解析程序与适配器提供程序。 所有解析器和适配器提供程序都实现定义完善的接口,并通过在配置文件中注册在运行时按需加载。
ESB 调度程序和 ESB 调度程序反汇编管道组件都使用冲突解决程序和适配器提供程序框架,方法是将行程 SOAP 标头或管道配置的连接字符串传递到冲突解决程序管理器。
Microsoft BizTalk ESB 工具包配置包含所有已注册的解析程序和适配器提供程序的详细信息。 在运行时,解析程序管理器和适配器管理器从配置文件中读取已注册冲突解决程序和适配器提供程序的详细信息,加载相应的程序集,并将其存储在 BizTalk 主机级缓存中。 此缓存技术消除了重复读取配置文件和为每个提交的消息加载程序集的要求。
有关解析器和适配器提供程序框架的工作原理以及如何通过创建自定义解析程序和适配器提供程序对其进行扩展的详细信息,请参阅 修改和扩展 BizTalk ESB 工具包。
支持的解析机制 (解析程序)
BizTalk ESB 工具包包括以下解析程序: STATIC、UDDI、UDDI3、XPATH、BRE、BRI、ITINERARY、ITINERARY-STATIC 和 LDAP。
冲突解决程序的连接字符串始终由名字对象 ((例如 BRE) 后跟“:\\”和连接或处理详细信息)组成。 名字对象与配置文件中关联解析程序的定义匹配。 与每个连接字符串关联的属性都是唯一的,并非所有属性都是必需的。 可以在 ESB 中找到每个解析程序的架构。Resolvers.Schemas 项目。
下面是连接字符串的示例:
STATIC
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=;
行程
行程:\\name=TwoWayTestItinerary;
version=;
行程-静态
ITINERARY-STATIC:\\name=TwoWayTestItinerary;
version=;
LDAP
LDAP:\\TransportType=SMTP;
TransportLocation={mail}
Filter= (& (objectClass=User) (| (userPrincipalName=yourname@domain.com) ) ) ;
SearchRoot=;
SearchScope=Subtree;
EndpointConfig=Subject=行程测试消息到 {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 工具包包含以下内置适配器提供程序: FILE、FTP、SMTP、MQSeries、WCF-BasicHttp、WCF-WSHttp 和 WCF-Custom。 每个适配器提供程序的名称与BizTalk Server中 (传输类型) 关联的适配器的名称相同。
解析器和适配器提供程序框架的主要优点是,可以通过创建和注册自己的自定义解析程序来解析终结点信息和自定义适配器提供程序来扩展它,以设置已注册的 BizTalk 适配器的特定属性。 有关详细信息,请参阅 修改和扩展 BizTalk ESB 工具包。