销售电话: 1-800-867-1380

有关将 BizTalk Server EDI 解决方案迁移到 BizTalk 服务的指导

更新时间: 2014年5月

作者:Tim Wieman 和 Nitin Mehrotra

审校:Karthik Bharthy

文中使用:Microsoft Azure BizTalk 服务 – 2014 年 2 月版。

电子数据交换 (EDI) 是企业以电子方式交换数据时最常用的技术之一,又称为企业到企业或 B2B 交易。从最早的 BizTalk Sever 版本开始,BizTalk Server 提供 EDI 支持已有十多年了。通过 BizTalk 服务,Microsoft 继续在 平台上提供对 EDI 解决方案的支持。B2B 交易主要在组织的外部发生,因此,如果在云平台上实施了 EDI,则可以更方便地实现这种交易。 通过 BizTalk 服务提供此功能。

尽管有些客户将 BizTalk 服务视为新 EDI 解决方案的“未开发的”平台,但是很多客户可能希望将当前的 BizTalk Server EDI 解决方案迁移到 Azure。由于 BizTalk 服务 EDI 是以与 BizTalk Server EDI 体系结构(贸易合作伙伴、实体和协议)相同的关键实体为基础构建的,因此可以将 BizTalk Server EDI 项目迁移到 BizTalk 服务。

本文档讨论了将 BizTalk Server EDI 项目迁移到 BizTalk 服务涉及的一些不同之处。本文档假设你具有 BizTalk Server EDI 处理和贸易合作伙伴协议方面的实践知识。有关 BizTalk Server EDI 的详细信息,请参阅使用 BizTalk Server 进行贸易合作伙伴管理

The BizTalk Server EDI module was significantly enhanced for BizTalk Server 2010, when it was remodeled to include partners, profiles, and agreements. BizTalk 服务 uses the same model to organize the trading partners and the business divisions within those trading partners.因此,将 EDI 项目从 BizTalk Server 2010 及更高版本迁移到 BizTalk 服务是一个更简单直接的过程。若要迁移与 BizTalk Server 2010 以前的版本关联的 EDI 项目,必须先升级到 BizTalk Server 2010,然后才能将你的 EDI 项目迁移到 BizTalk 服务。

与 BizTalk Server 一样,BizTalk 服务中的 EDI 处理是围绕贸易合作伙伴管理 (TPM) 解决方案构建的。TPM 解决方案包括以下关键组成部分:

  • 贸易合作伙伴,代表 B2B 交易中的组织。

  • 配置文件,代表贸易合作伙伴内部的部门。

  • 贸易合作伙伴协议(或协议),代表两个合作伙伴/配置文件之间的业务协议。

下图描绘了 BizTalk Server EDI 解决方案与 BizTalk 服务 EDI 解决方案之间的相似之处和不同之处:

BizTalk Server 和 BizTalk 服务中的 EDI 解决方案流之间的不同之处和相似之处包括:

  • 与 BizTalk Server 使用 EDIReceive 管道接收 EDI 消息,使用 EDISend 管道发送 EDI 消息类似,BizTalk 服务使用 EDI 接收桥接收 EDI 消息,使用 EDI 发送桥发出 EDI 消息。在 BizTalk Server 中,管道使用发送或接收端口与协议相关联。在 BizTalk 服务中,协议本身表示发送桥或接收桥。

  • 在 BizTalk Server 中,EDIReceive 管道处理 EDI 消息后,该消息将转储到 SQL Server 数据库。然后,EdiSend 管道从 SQL Server 数据库选取该消息进行处理,然后将其发送给贸易合作伙伴。

    在 BizTalk 服务中,在 EDI 接收桥处理 EDI 消息后,会将该消息路由到外部进程。该外部进程可在 中运行或在本地运行。该外部进程应将该消息路由到 EDI 发送桥;发送桥本身不会提取消息。处理该消息后,EDI 发送桥将其路由到贸易合作伙伴。

BizTalk 服务提供易用的配置体验,以在贸易合作伙伴之间快速创建和部署 B2B 协议,而无需配置任何 计算实例(Web 角色或辅助角色)、任何 Microsoft Azure SQL Database 或任何 存储帐户。更复杂的方案将需要捆绑围绕贸易合作伙伴协议“边缘”(即贸易合作伙伴协议 EDI 桥处理之前或之后)的工作流或其他服务处理。具体而言,在 BizTalk 服务中进行 EDI 消息处理期间,将发生以下事件序列:

  1. 从贸易合作伙伴 Fabrikam 处收到一个 EDI 消息。为了从贸易合作伙伴接收 EDI 消息,BizTalk 服务支持 FTP、SFTP、AS2 和 HTTP/S 等传输协议。

  2. 贸易合作伙伴协议接收端处理将 EDI 消息分解为 XML 格式。你可以将分解的 EDI 消息(采用 XML 格式)路由到 Service Bus 终结点,例如 Service Bus 中继终结点、Service Bus 主题、Service Bus 队列或 BizTalk 服务桥。

  3. 然后可以从该端点接收分解的 XML 消息以进行进一步自定义处理。这些终结点可以由本地组件或 计算实例处理,以进一步在 Windows Workflow (WF) 或 Windows Communication Foundation (WCF) 服务等中处理消息。

  4. 贸易合作伙伴协议的“发送端处理”然后将 XML 消息组装为 EDI 格式并将它发送给贸易合作伙伴 Contoso。为了将 EDI 消息发送给贸易合作伙伴,BizTalk 服务 支持用于接收 EDI 消息的同样的协议。

本文档还提供了有关将一些不同的 BizTalk Server EDI 项目迁移到 BizTalk 服务的概念性指导。

在 BizTalk Server 中,你将设置“接收位置”和“接收端口”以从贸易合作伙伴接收 EDI/XML 消息,并设置“发送端口”以将 EDI/XML 消息发送给贸易合作伙伴。然后,你将使用 BizTalk Server 管理控制台将这些端口绑定到贸易合作伙伴协议。在 BizTalk 服务中,你从贸易合作伙伴接收消息的位置以及将消息发送到贸易合作伙伴的位置在 BizTalk Services 门户中配置为贸易合作伙伴协议本身的一部分(属于“传输设置”)。因此您本质上在 BizTalk 服务 中并未真的有“发送端口”和“接收位置”的概念。有关详细信息,请参阅创建协议

在 BizTalk Server EDI 中,管道是消息处理实体,它们可能还包含应用程序所需的特定处理功能的自定义逻辑。对于 BizTalk 服务,等效的功能是 EDI 桥。但是,在 BizTalk 服务中,EDI 桥目前是“关闭的”。这意味着你不能向 EDI 桥添加自己的自定义活动。在你的应用程序中,任何自定义处理必须在应用程序中的 EDI 桥接外部完成,无论是在消息进入作为贸易合作伙伴协议的一部分配置的桥之前还是之后。EAI 桥可以选择执行自定义处理。如果你要执行自定义处理,则可以在 EDI 桥处理消息之前或之后使用 EAI 桥。有关详细信息,请参阅在桥中使用自定义代码

在贸易合作伙伴协议收到消息前或该协议处理消息并将它路由到 Service Bus 终结点之后,你可以使用自定义代码和/或 Service Bus 消息队列与主题插入发布/订阅流。

有关消息流模式,请参阅方案/消息流

如果你熟悉用于 EDI 处理的 BizTalk Server 2010 贸易合作伙伴协议,则会觉得 BizTalk 服务贸易合作伙伴协议看上去很眼熟。大部分协议设置是相同的并使用相同的术语。在某些情况下,协议设置比 BizTalk Server 中的相同设置要简单得多。Microsoft Azure BizTalk 服务支持 X12、EDIFACT 和 AS2 传输。

Microsoft Azure BizTalk 服务还提供了 TPM 数据迁移工具,用于将贸易合作伙伴和协议从 BizTalk Server 贸易合作伙伴模块迁移到 BizTalk Services 门户。TPM 数据迁移工具作为 Tools 包的一部分提供,该包可以从 http://go.microsoft.com/fwlink/?LinkId=235057 下载。该包还包含一个自述文件,其中提供了有关如何使用该工具的说明,以及该工具的基本故障排除信息。

BizTalk 服务提供可以在 BizTalk 服务解决方案中使用的 EDI 架构。此外,BizTalk Server EDI 架构也可用于 BizTalk 服务,因为 EDI 架构的根节点在 BizTalk Server 和 BizTalk 服务中是相同的。这样,你将可以直接使用 BizTalk Server EDI 架构,并在使用 BizTalk 服务开发的 EDI 解决方案中使用这些构架。也可以从 http://go.microsoft.com/fwlink/?LinkId=235057 下载这些架构。

BizTalk Server 中的映射在 BizTalk 服务中称为“转换”。将 BizTalk Server 中的映射迁移到 BizTalk 服务可能是要完成的较复杂任务之一(取决于映射复杂性)。用于 BizTalk 服务的映射工具不同于 BizTalk 映射程序。即使映射程序看起来多半是相同的,基础映射格式也有所不同。用户可用的 functoid(在 BizTalk 服务中称为映射操作)也不同。实际上,你不能直接在 BizTalk 服务中使用 BizTalk 映射。此外,并非 BizTalk Server 中可用的所有 functoid 均可作为 BizTalk 服务中的映射操作使用。

尽管可用的转换映射操作列表可能与 BizTalk Server 映射程序大有不同,但 BizTalk 服务转换提供了完成相同任务的新方式。例如,BizTalk 服务 转换可以使用“列表操作”。这在 BizTalk 映射程序中不可用。“列表操作”允许您创建“列表”并对其进行操作,其中列表是项(也称为“行”)的集合且每个项可以具有多个成员(也称为“列”)。您可以对列表排序、基于条件选择项等。

BizTalk 服务 转换中的新功能的另一个示例是“循环操作”。在 BizTalk Server 映射程序中创建嵌套循环比较困难。因此,为 BizTalk 服务 转换添加了“循环”映射操作。

另一个示例是 If-Then-Else 表达式映射操作。可以在 BizTalk 映射程序中执行“if-then-else”操作,但是它需要多个 functoid 来完成似乎很简单的任务。

Microsoft Azure BizTalk 服务提供了用于将 BizTalk Server 映射迁移到 BizTalk 服务转换的工具。BTMMigrationTool 作为与 BizTalk 服务 SDK 一起提供的 Tools 包的一部分提供,并可以从 http://go.microsoft.com/fwlink/?LinkId=235057 下载。有关该工具的详细信息,请参阅将 BizTalk 映射转换为 BizTalk 服务转换

有关如何将 BizTalk Server 映射迁移到 BizTalk 服务转换的信息,你也可以查看由 BizTalk 最有价值专家 Sandro Pereira 编写的示例。该示例可在此处获取。基于此示例的文章可在此处获取。

如果你需要将 BizTalk Server 业务流程处理迁移到 ,则需要重新编写业务流程,因为 不支持运行 BizTalk Server 业务流程。您可以在 Windows Workflow Foundation 4.0 (WF4) 服务中重写业务流程功能。这需要彻底重新编写,因为当前不支持将 BizTalk Server 业务流程迁移到 WF4。以下是用于 Windows 工作流的一些资源:

  • “如何将 WCF 工作流服务与 Service Bus 队列和主题集成”文章,作者:Paolo Salvatori。请参阅此处 (http://go.microsoft.com/fwlink/?LinkId=237313)。

  • Build 2011 会议的“使用 Windows Workflow Foundation 和 Azure 构建应用程序”研讨会。请参阅此处 (http://go.microsoft.com/fwlink/?LinkId=237314)。

  • MSDN 上的 Windows Workflow Foundation 开发人员中心。请参阅此处 (http://go.microsoft.com/fwlink/?LinkId=237315)。

  • MSDN 上的 Windows Workflow Foundation 4 (WF4) 文档。请参阅此处 (http://go.microsoft.com/fwlink/?LinkId=237316)。

以下是在使用 BizTalk 服务时必须注意的一些事项。

BizTalk Server EDI processing has the concept of "Fallback Agreements". BizTalk 服务 does not have a Fallback Agreement concept so far.有关如何在 BizTalk Server 中使用后备协议的信息,请参阅 BizTalk 文档主题协议在 EDI 处理中的角色配置全局或后备协议属性

BizTalk 服务桥在其当前状态下不支持使用发布-订阅模型将消息路由到多个目标。但是,你可以将消息从 BizTalk 服务桥路由到 Service Bus 主题,然后该主题可以提供多个订阅以在多个终结点上接收消息。

我们将在常规的里程碑点更新 Microsoft Azure BizTalk 服务,以添加更多的特性和功能。通过每次更新,我们希望能够辅以更多的功能,方便用户使用 BizTalk 服务和其他 技术创建端到端解决方案。

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft