解析程序和适配器提供框架支持行程规划、转换、以及终结点的解析和路由。 框架可以动态解析终结点并设置出站适配器属性。 在解析程序组件解析终结点(例如,使用通用描述、发现和集成 [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:\\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:\\nname=TwoWayTestItinerary;
版本=;
LDAP
LDAP:\\TransportType=SMTP;
运输地点={邮件}
Filter=(&(objectClass=User)(|(userPrincipalName=
))); SearchRoot=;
SearchScope=Subtree;
EndpointConfig=Subject=行程测试邮件到 {mail}&
SMTPAuthenticate=0&
SMTPHost=127.0.0.1&
From=test@globalbank.com&
送达回执=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 工具包。