在 BizTalk Server 中规划发送和接收

几乎所有由 BizTalk Server 处理的文档,都是通过 BizTalk Server 接收适配器接收,并由发送适配器发送出去。 由于 BizTalk Server 适配器在任何 BizTalk Server 环境中如此突出,因此,提前计划确定要使用的适配器或加速器,以及如何正确配置这些适配器和/或加速器非常重要。

确定要使用的适配器和加速器

提前与贸易合作伙伴联系,以确定需要哪些适配器和加速器有助于在组织与贸易合作伙伴之间以及 BizTalk 应用程序和内部业务应用程序之间发送和接收文档。 将 BizTalk Server 体系结构设计为足够灵活,以适应在将来与其他贸易合作伙伴建立关系时添加其他适配器或加速器。

BizTalk 适配器支持的功能

本节中的表格列出了每个原生适配器的主要优势,以及适配器是否提供以下功能:

  • 事务支持 在分布式事务协调器 (DTC) 事务的上下文下发送和接收文档的功能。 维护有序邮件传递并保证文档不会重复或丢失,需要此功能。

    注释

    如果 MSDTC 出现问题,请查看主题 “排查 MSDTC 的问题”

  • 双向通信支持(请求/响应或请求/响应) 能够从目标发送文档并处理响应消息或接收文档并将响应消息发送到源。

  • 按顺序接收支持。 能够按照收到的文档的确切顺序将收到的文档发布到 MessageBox 数据库。

    注释

    某些适配器可以在接收位置级别强制实施有序的文档传递,而其他适配器则无法执行。 对于不支持接收位置级别的有序文档传送的适配器,仍可在发送端口级别强制执行有序传递,但这样做可能会造成性能损失。 有关邮件的有序传递的详细信息,请参阅“ 邮件的有序传递”主题。

  • 已启用 SSO。 使用适配器发送或接收文档时,能够使用 SSO 身份验证。

适配器 主要好处 事务支持 Two-Way 通信支持 In-Order 获得支持 已启用 SSO
文件 易于使用
FTP 广泛用于企业对企业的通信 是的
HTTP(s) 广泛用于B2B通信 请求/响应和征询/响应 是的
肥皂 支持使用 Web 服务 请求/响应和征求/响应 是的
MSMQ 支持在 BizTalk Server 与Microsoft消息队列之间保证一次性传递消息 是的 是的
MQ 系列 支持在 BizTalk Server 和 IBM WebSphere MQ for Windows 平台之间保证一次性传递消息 是的 是的 是的
SQL 支持 BizTalk Server 和 SQL Server 数据库之间的直接通信 是的 仅限请求/响应
Windows SharePoint Services 实现 BizTalk Server 与 SharePoint 文档库之间 XML 和二进制消息的交换
POP3 支持通过电子邮件接收文档
SMTP 支持通过电子邮件发送文档
EDI 支持处理符合 EDI 标准的业务文档
习惯 支持您的遗留系统 是的,需要自定义代码。 是的,需要自定义代码。 是的,需要自定义代码。 是的,需要自定义代码。
WCF-WSHttp 通过 HTTP 传输支持 WS-* 标准 是的,WsHTTP 支持事务(仅 WS-Transactions) 请求/响应和询求/响应 是的
WCF-BasicHttp 使用 HTTP 或 HTTPS 与基于 ASMX 的 Web 服务和客户端和其他符合 WS-I 基本配置文件 1.1 的服务通信 请求/响应和征询/响应 是的
WCF-NetTcp 支持通过 TCP 传输的 WS-* 标准 是的 请求/响应和征求/响应 是的
WCF-NetMsmq 通过利用Microsoft消息队列(MSMQ)作为传输方式来支持排队 是的 是的 是的
WCF-NetNamedPipe 为同一台计算机上的跨进程通信提供快速传输(仅适用于 WCF 应用) 是的 请求/响应和征求/响应 是的
WCF-Custom 允许使用 WCF 扩展性功能 是的。 是的。 是的,前提是绑定支持。 是的。
WCF-CustomIsolated 允许通过 HTTP 传输使用 WCF 扩展性功能 是的。 是的。 否。 是的。

业务线适配器

下面是Microsoft提供的业务线适配器列表。

注释

除了 mySAP™ Business Suite 的 Microsoft BizTalk 适配器 v2.0(适配器),Windows Vista 上不支持任何业务线适配器。

适配器 DESCRIPTION 支持的版本
SAP(也称为“适配器”) 允许在 BizTalk Server 和 SAP R/3® 系统之间交换中间文档(IDOC)、BAPI 和远程函数调用(RFC)消息。 SAP R/3 4.x 和 R/3 6.20 (企业版)
PeopleSoft Enterprise 允许在 BizTalk Server 和 PeopleSoft 系统之间交换组件接口(CI)消息。 PeopleTools 版本 8.17.02、8.43、8.45、8.46 和 8.48
JD Edwards OneWorld XE 使能够在 BizTalk Server 与 JD Edwards OneWorld 系统之间交换业务功能消息。 B7.3.3.3 SP23、JDE 8.0(B7.3.3.4)
JD Edwards EnterpriseOne 使 BizTalk Server 与 JD Edwards EnterpriseOne 系统之间能够进行业务功能消息的交换。 8.10 和 8.11 适用于工具版本 8.93、8.94、8.95 和 8.96
Oracle 数据库的 ODBC 适配器 允许从 Oracle Server 数据库读取和写入信息。 Oracle 8i (8.1.6.0)、9i (9.2.0.1) 或 10g
Siebel eBusiness 应用程序 允许在 BizTalk Server 与 Siebel eBusiness 应用程序之间交换业务组件和业务服务消息。 7.0、7.5.*、7.7.*和 7.8.*
TIBCO Rendezvous 允许在 BizTalk Server 与 TIBCO Rendezvous 之间交换 XML 和二进制数据格式消息。 7.3
TIBCO 企业消息服务 允许在 BizTalk Server 与 TIBCO EMS 服务器之间交换 XML 和二进制数据格式消息,从而提供紧密集成且可靠的应用程序基础结构。 4.2
WebSphere MQ 支持 BizTalk Server 和 IBM WebSphere MQ 之间的消息交换。 具有修补程序包 10 或更高版本的 5.3 和 具有修补程序包 1.1 或更高版本的 6.0

有关 BizTalk Server 可用的 LOB 适配器的详细信息,请参阅以下资源:

BizTalk 适配器包

Microsoft BizTalk 适配器包包含基于 WCF 的适配器,用于提供与 Oracle 数据库、Oracle E-Business Suite、SAP、Siebel 和 SQL Server 等 LOB 应用程序的连接。 有关详细信息和 BizTalk 适配器包提供的适配器列表,请参阅以下资源:

重要

若要将 LOB 适配器的 BizTalk 项目迁移到使用 BizTalk 适配器包中提供的基于 WCF 的 LOB 适配器的 BizTalk 项目,可以使用 BizTalk 适配器包迁移工具。

若要下载 BizTalk 适配器包迁移工具,请转到 Azure Integration Migrationor BizTalk 的 GitHub 存储库。 有关将 LOB 适配器迁移到 BizTalk 适配器包中包含的基于 WCF 的 LOB 适配器的详细信息,请参阅 Microsoft BizTalk 适配器 2.0 迁移白皮书

BizTalk 加速器

虽然 BizTalk 适配器能够适应使用特定协议发送和接收文档,但 BizTalk 加速器旨在根据特定的行业标准来容纳文档的交换。 有关可用 BizTalk 加速器的列表,请参阅 Microsoft BizTalk Server 加速器

向 Internet 公开传输协议时配置您的域名

为了方便您的组织与外部贸易合作伙伴之间发送和接收文档,可能需要在可从互联网访问的面向公众的网站上公开相关传输机制。 在这种情况下,建议使用以下域配置:

  • 使用外围网络域(也称为非军事区(DMZ)或屏蔽子网),将服务器安置于其中,以便为您的组织提供互联网相关服务。

    外围网络域应包含作为物理位置的服务器,这些服务器负责将面向 Internet 的传输在运行 BizTalk Server 的计算机与贸易合作伙伴之间进行文档路由。 外围网络防火墙应仅开放必要的端口,以便与面向 Internet 的传输服务进行通信。 不应有运行 BizTalk Server、BizTalk Server 接收位置或外围网络域中的企业单 Sign-On 服务器计算机的计算机。 应将边界网络域中的传输文档发送/接收到面向互联网的防火墙后,通过使用 Internet 安全和加速服务器(ISA)服务器的 Web 发布和服务器发布功能,将文档路由到保护处理域的防火墙。

    注释

    作为一项附加的安全性措施,请考虑使用公钥基础结构(PKI)数字证书进行文档加密和解密、文档签名和验证(不可否认性),以便通过此域中面向 Internet 的传输向贸易合作伙伴发送或接收的文档。

    以下传输通常用于可从 Internet 访问的外围网络域:

    • FTP - 使用 FTP 协议接收文档

    • SMTP - 使用 SMTP 协议发送文档

    • HTTP - 使用 HTTP 协议接收文档

    • SOAP - 使用 SOAP 接收文档

    • POP3 - 使用 POP3 协议接收文档

  • 使用处理域来托管包含 BizTalk Server 接收和发送处理程序以及 BAM 门户服务器的服务器

    应通过这些域之间的防火墙路由处理域中面向外部的传输和处理域中的 BizTalk 适配器之间的文档流。 处理域应容纳 BizTalk Server 端口、接收位置、管道、映射、架构和程序集,用于接收、路由和发送消息。 处理域还应包含 BAM 门户的服务器。 在处理域中运行 BizTalk Server 的计算机数取决于满足组织性能需求所需的主机和主机实例数。

    重要

    请确保在处理域中创建足够的隔离主机实例,以适应外围域中 HTTP 和 SOAP 传输与处理域中 HTTP 和 SOAP 适配器之间的流量。 如果组织与贸易合作伙伴之间的大部分文档流量流经 HTTP 和 SOAP 传输,则处理域中必须有足够的处理带宽来处理文档流。

  • 使用其他域为环境提供进一步的隔离和安全性层

    这些域应包括:

    • 受处理域信任并且对于成功处理消息是必需的服务域。 服务域中的服务器通常运行 BizTalk 业务流程、管道、企业单一 Sign-On(SSO)服务、业务规则引擎,并且可能包括其他业务流程。

    • 用于 BizTalk Server 的 SQL Server 计算机的数据域。

    • 服务器和台式计算机的公司域,用于为组织中的信息工作者提供服务。

      有关建议用于各种 BizTalk Server 体系结构的域拓扑的详细信息,请参阅 示例 BizTalk Server 体系结构

高可用性注意事项

通过在 BizTalk 组中的多个 BizTalk 服务器上运行适配器处理程序主机实例,为大多数适配器提供高可用性。 这样,如果一个适配器处理程序主机实例失败,则另一个适配器处理程序主机实例可用于继续处理。 然而,这样做有例外。 在某些情况下,运行多个适配器处理程序主机实例可能会引发资源争夺的问题。 例如,在运行 POP3 和 FTP 适配器的多个实例时,可能会出现争用问题。 在这些情况下,可以通过在群集 BizTalk 主机中运行适配器处理程序主机实例来为适配器提供高可用性。

有关通过主机群集为适配器处理程序主机实例提供高可用性的详细信息,请参阅 有关在群集主机中运行适配器处理程序的注意事项 。 有关为 BizTalk 主机提供高可用性的详细信息,请参阅 BizTalk 主机的高可用性

性能注意事项

SOAP 适配器性能注意事项

有关优化 SOAP 适配器性能的信息,请参阅 影响适配器性能的配置参数

MQSeries 适配器性能注意事项

如果 MQSeries 适配器接收位置不需要事务支持和有序传递,请禁用它们 当 MQSeries 适配器接收位置配置为事务支持选项设置为,或有序选项设置为有序停止时,接收位置选取的每条消息将在 Microsoft 分布式事务协调器(MSDTC)事务的上下文中处理。 由于在 MSDTC 事务的上下文中处理消息时会产生额外的开销,因此,如果 MQSeries 适配器接收位置不需要按序传递或事务支持,则不应启用这些选项。

规划有序消息传递

有序消息传递可确保按给定顺序发布到 MessageBox 数据库的消息以相同的顺序传递到每个匹配的订阅服务器。 实现消息的有序传递时,需要注意以下事项:

配置有序消息传递

可以在以下位置配置有序邮件传递:

  • 在编排流程中接收形状

  • 接收特定适配器的位置信息

  • 发送端口

    使用现有传输系统进行有序交付

    某些传输的基础协议(如 FILE 和 HTTP)与有序传递的概念不一致。 如果传输绑定的端口被标记为需要有序传递,那么即使使用此类传输,BizTalk Server 也会通过确保在当前消息成功发送之前,传输不会接收下一个发出的消息,从而强制实现有序传递。 为此,BizTalk Server 会将每个消息传递到传输的适配器,并等待适配器成功从 MessageBox 数据库删除消息,然后再在另一批中将下一条消息传送到适配器。

    自定义适配器的有序交付

    为了使自定义接收适配器在将消息提交到 BizTalk Server 时保留消息的顺序,必须使用以下功能开发适配器:

  • 提交一批消息后,自定义接收适配器应等待 BizTalk Server 的 BatchComplete 调用,然后再提交下一批。 有关详细信息,请参阅 Batch-Supported 接收适配器的接口

  • 如果消息在管道中失败,则应暂停该消息,最好设置为不可恢复。 使用 BizTalk Server 中的 BTS.SuspendAsNonResumable 消息上下文属性可相应地标记消息。

    注释

    如果稍后恢复挂起的消息,可能会导致消息顺序被打乱。 如果不希望出现此行为,请将失败的消息暂停设为不可恢复的状态。

    端到端有序消息处理的条件

    若要提供端到端有序交付,必须满足以下条件:

  • 必须使用适配器接收消息,以便在将消息提交到 BizTalk Server 时保留消息的顺序。 在 BizTalk Server 中,此类适配器的示例包括 MSMQ 和 MQSeries。 此外,HTTP 或 SOAP 适配器可用于按顺序提交消息,但在这种情况下,HTTP 或 SOAP 客户端需要通过一次提交消息来强制实施顺序。

  • 必须使用设置为 True 的发送端口订阅这些消息,并选择已排序传递 选项。

  • 如果业务流程用于处理消息,则只应使用业务流程的单个实例,应将业务流程配置为使用顺序车队,并且业务流程的接收端口的 “有序传递 ”属性应设置为 True

另请参阅

规划 BizTalk Server 的环境