连接系统

在不同计算机上的不同软件之间有效交换消息是集成的绝对要求。 鉴于存在通信样式的多样性,BizTalk Server 必须支持各种协议和消息格式。 如下所述,引擎的一个重要部分致力于使这种通信顺利进行。 但是,请记住的一个重要事实是,引擎只能在内部使用 XML 文档。 无论消息到达何种格式,它都必须在收到后转换为 XML 文档。 同样,如果文档的收件人不能接受该文档作为 XML,引擎会将其转换为目标预期的格式。

发送和接收消息:适配器

由于 BizTalk Server 必须与各种其他软件通信,因此它依赖于适配器来使这一点成为可能。 适配器是通信机制的实现,例如特定协议。 开发人员确定在给定情况下要使用的适配器。 例如,他们可以选择 BizTalk Server 提供的内置适配器之一,或使用为常用产品(如 Windows SharePoint Services)创建的适配器,甚至创建自定义适配器。 在上述每个情况下,适配器都构建在名为 Adapter Framework 的标准基础之上。 此框架提供了创建和运行适配器的常见方法,它还支持用于管理所有适配器类型的相同工具。

Microsoft BizTalk Server 包含以下本机适配器:

  • 文件适配器:支持读取和写入 Windows 文件系统中的文件。 由于业务流程中涉及的应用程序通常可以访问同一文件系统,无论是在本地还是跨网络,通过文件交换消息可能是一个方便的选项。

  • FTP 适配器:支持在文件传输协议(FTP)服务器和 BizTalk Server 之间发送和接收信息。

  • HTTP 适配器:支持使用 HTTP 发送和接收信息。 BizTalk Server 公开一个或多个 URL,以允许其他应用程序向其发送数据,并且可以使用此适配器将数据发送到其他 URL。

  • MSMQ 适配器:支持使用Microsoft消息队列(MSMQ)发送和接收消息。

  • WebSphere MQ 适配器:支持使用 IBM 的 WebSphere MQ(以前称为 MQSeries)发送和接收消息。

  • POP3 适配器:支持使用第三版 Post Office 协议(POP3)接收电子邮件及其附件。

  • SMTP 适配器:支持使用 SMTP 发送消息。 标准电子邮件地址用于标识参与方。

  • SOAP 适配器:支持发送和接收 Web 服务请求,使 BizTalk Server 能够连接到 Web 服务。

  • WCF 适配器:支持使用 Windows Communication Foundation 发送和接收信息。

  • Windows SharePoint Services (WSS) 适配器:支持访问和发布存储在 Microsoft Windows SharePoint 文档库中的文档。

    通用商业软件的适配器也可从Microsoft获取,其中包括:

  • 适用于 JD Edwards OneWorld 的 Microsoft BizTalk 适配器

  • 适用于 JD Edwards EnterpriseOne 的 Microsoft BizTalk 适配器

  • 适用于 PeopleSoft Enterprise 的 Microsoft BizTalk 适配器

  • 适用于 TIBCO Rendezvous 的 Microsoft BizTalk 适配器

  • 适用于 TIBCO 企业消息服务的 Microsoft BizTalk 适配器

    有关这些适配器的详细信息,请参阅 BizTalk Server 中的适配器

    无论使用哪个适配器来接收数据,它接收的消息通常必须经过处理,然后业务流程才能访问它们。 同样,业务流程生成的传出消息通常需要在适配器发送之前进行处理。

处理消息:管道

业务流程基础的应用程序通过交换各种文档进行通信:例如,采购订单和发票。 要使 BizTalk Server 应用程序能够执行业务流程,它必须能够正确处理包含这些文档的消息。 此处理可能涉及多个步骤,因此由消息管道执行。 传入消息通过接收管道进行处理,而传出消息通过发送管道。

例如,尽管设计了更多应用程序来了解 XML 文档,但许多应用程序(可能是今天大多数)都无法理解。 由于 BizTalk Server 仅在内部使用 XML 文档,因此它必须提供将其他格式转换为 XML 和从 XML 转换的方法。 可能还需要其他服务,例如对邮件的发件人进行身份验证。 为了以模块化但可自定义的方式处理这些任务和其他任务,管道是从一些阶段构造的,每个阶段都包含一个或多个。已启用 NET 或组件对象模型 (COM) 组件。 每个组件处理消息处理的特定部分。 BizTalk Server 提供了几个满足最常见情况的标准组件。 如果这些组件不够,开发人员还可以为接收和发送管道创建自定义组件。

显示接收管道的图像。

上图说明了接收管道中的阶段,以及为每个接收管道提供的标准组件。 这些阶段及其关联的组件包括:

  • 解码:BizTalk Server 为此阶段提供一个标准组件,即 MIME/SMIME 解码器。 此组件可以处理以 MIME 或安全加密的 MIME (S/MIME) 格式包含的邮件和任何附件。 该组件将这两种类型的消息转换为 XML,还可以解密 S/MIME 消息并验证其数字签名。

  • 拆解:三个标准组件已提供。 平面文件反汇编程序组件将平面文件转换为 XML 文档。 这些文件可以是定长的,其中每个记录的长度和结构相同;或者是分隔的,使用指定字符来分隔文件中的记录。 第二个标准组件 XML 反汇编程序分析已使用 XML 描述的传入消息。 第三个标准组件(目前不经常使用)是 BizTalk 框架反汇编程序。 它接受使用 BizTalk Framework 定义的可靠消息传送机制发送的消息,该机制是在 BizTalk Server 2000 中实现的。

  • 验证:BizTalk Server 为此阶段提供 XML 验证程序组件。 顾名思义,此组件根据指定的架构或架构组验证由反汇编阶段生成的 XML 文档,如果文档不符合其中一个架构,则返回错误。

  • 解析方:此阶段的唯一标准组件“参与方解析”会尝试确定此邮件发件人的标识。 如果消息经过数字签名,则签名用于在 BizTalk Server 的管理数据库中查找 Windows 标识。 (如稍后所述,BizTalk Server 的管理工具也使用此数据库。如果消息携带 Windows 用户经过身份验证的安全标识符(SID),则使用此标识。 如果两种机制都未成功,则消息的发送方将分配默认匿名标识。

    显示发送管道的图像。

    传出消息还可以经历多个阶段,由正在使用的发送管道定义。 上图显示了发送管道的阶段和标准组件。 它们分别是:

  • 预组装:未提供标准组件。 相反,可以根据需要在此处插入自定义组件。

  • 汇编:类似于接收管道中的解组阶段,该阶段也包含三个标准组件。 平面文件汇编程序将 XML 消息转换为位置或分隔的平面文件,XML 汇编程序支持添加信封并对传出 XML 消息进行其他更改。 第三个选项 BizTalk 框架汇编程序使用 BizTalk 框架消息传送技术打包消息以实现可靠传输。

  • 编码:BizTalk Server 为此阶段(MIME/SMIME 编码器)仅定义一个标准组件。 此组件以 MIME 或 S/MIME 格式打包传出消息。 如果使用 S/MIME,消息也可以进行数字签名和/或加密。

    BizTalk Server 定义了一些默认管道,包括一个简单的接收/发送对,可用于处理已用 XML 表示的消息。 开发人员还可以使用管道设计器创建自定义管道。 此工具在 Visual Studio 中运行,提供了一个图形界面,使开发人员能够拖放组件,以创建具有所需功能的管道。

选择消息:订阅

在消息通过适配器和接收管道进行传递后,下一步是确定它应该去哪里。 消息通常以业务流程为目标,但消息也可以直接转到发送管道,从而允许 BizTalk Server 纯粹用作消息系统。 无论哪种情况,此消息与其目标匹配都是使用订阅完成的。

当接收管道处理消息时,将创建包含消息的各种属性的消息上下文。 业务流程或发送管道可以根据这些属性的值订阅消息。 例如,业务流程可能会创建一个订阅,该订阅与所有类型为“Invoice”的消息匹配;或者与从QwickBank公司收到的所有类型为“Invoice”的消息匹配,亦或者与从QwickBank公司收到的金额超过10,000美元的“Invoice”消息匹配。 无论如何指定,订阅只返回那些与订阅定义的条件匹配的消息。 收到的消息可能会通过实例化某些协调流程来启动业务流程,或者激活已经在运行的业务流程中的另一个步骤。 同样,当编排发送消息时,该消息会根据管道已建立的订阅,与发送管道匹配。

  • 在 BizTalk Server 中,还可以订阅特定的错误条件。 可以特定方式处理错误消息,也可以路由到特定目标,例如 Windows SharePoint Services 文件夹。

另请参阅

BizTalk Server 消息传送引擎
发布和订阅体系结构
适配卡
管道