何时使用 WCF 适配器与 WCF 自定义绑定与外部应用程序或系统通信更有意义?
BizTalk Server WCF 适配器有助于使用 WCF 将外部系统与 BizTalk Server 集成两种新方法:
可以编写 WCF 客户端/服务代码,并使用标准的 BizTalk Server WCF 适配器来处理通信。
或者,可以使用 .NET WCF 框架开发新的自定义 WCF 绑定,并将其用于代替 WCF 适配器来处理通信。
将 WCF 适配器与 BizTalk Server 配合使用,可以开发 WCF 客户端代码并将 BizTalk Server 调用为远程 WCF 服务,也可以编写 WCF 服务并配置 BizTalk Server 以将其公开为 WCF 服务。 另一种方法是,实际上可以编写全新的自定义 WCF 绑定来处理通信。
编写标准 WCF 客户端或服务代码并使用标准 BizTalk Server 适配器编写 WCF 自定义绑定元素的优点是自定义绑定更难开发。 生成的 WCF 客户端或服务存在于 BizTalk Server 管理(监视、配置和部署)之外。 编写自己的新自定义绑定并使用 BizTalk WCF 自定义适配器进行托管的好处是,它可以紧密集成到这些 BizTalk Server 管理功能中。 与在基础结构支持方面开发绑定相关的成本比开发服务的成本要高得多。
请务必了解这两种方法都使你有机会以事务方式与内部 BizTalk MessageBox 数据库集成,并提供类似的性能。 这更是决定要如何使解决方案变得复杂。
使用 WCF 时,应首先尝试编写自定义服务和客户端,并使用标准 BizTalk WCF 适配器连接这两个适配器。 .NET Framework 和 WCF 库专门用于简化此任务。 若要创建 WCF 服务,只需开发自定义接口,设置相应的属性,并实现协定背后的代码。 WCF 负责从元数据到对象序列化的所有内容。 编写 WCF 服务后,可以通过发送端口配置 WCF 适配器,以便通过几个简单的步骤与服务通信。 甚至可以配置事务,以便新服务可以使用内部 BizTalk MessageBox 数据库参与消息的事务交换。
在接收端,可以配置 BizTalk Server,以便接收位置类似于网络上的 WCF 服务。 这样,便可以编写常规 WCF 客户端代码,甚至可以在调用该服务时使用事务。 将标准 BizTalk WCF 适配器用作直接从 WCF 客户端到 WCF 服务代码的可配置桥的优点是开发情景非常简单。 WCF 适配器以简单的方式从 WCF 服务环境向 BizTalk Server 提供高性能事务桥。
总之,若要与外部系统通信,可以编写 WCF 服务以与外部系统交互,然后编写代码以直接与 WCF 服务通信,作为解决问题的更简单的解决方案。 使用更复杂的方法,可以编写一个新的自定义绑定,并使用比使用 WCF 服务更严格的 WCF 自定义适配器之一与 BizTalk Server 集成。 编写新的自定义绑定是较低级别和复杂的开发练习。 此方法的好处是,你已获得一个紧密集成的解决方案,其中 BizTalk Server 管理、配置和开发故事在整个解决方案中统一使用。 如果适配器的功能是作为外部 WCF 客户端和服务开发的,则配置必须位于 BizTalk Server 环境之外,因此缺少关联的基础结构支持。
WCF 适配器与 BizTalk 适配器包中的适配器有何区别?
WCF 适配器是 BizTalk Server 版本标准的七个适配器:
WCF-Custom
WCF-CustomIsolated
WCF-NetTcp
WCF-BasicHttp
WCF-WsHttp
WCF-NetNamedPipe
WCF-NetMsmq
BizTalk 适配器包是 BizTalk Server 发布后,它提供一种解决方案,用于从任何自定义开发的 .NET 应用程序、基于 SQL Server 的商业智能解决方案或 Office 业务应用程序(OBA)轻松安全地连接到业务线(LOB)数据。 此版本中提供的三个适配器是 Siebel、SAP 和 Oracle DB。 适配器包许可证包含在 BizTalk Server 开发人员版、标准版和企业版中,但分支版本不包括该许可证。 已使用软件保障购买 BizTalk Server 的客户还可以通过该计划访问 BizTalk 适配器包。
决定使用 BizTalk Server 适配器框架、WCF LOB 适配器 SDK 或 .NET Framework 的建议顺序是什么?
BizTalk 适配器框架是首选选项,因为它不基于标准 .NET WCF。 因为从战略上讲,你的解决方案应包含最有可能的 WCF,因此最好的方法是什么? 最简单的方法是编写 WCF 客户端和服务,然后使用 WCF 适配器将它们捆绑在一起。 如果程序在 BizTalk Server 外部,则可以使用 .NET Framework 编写 WCF 自定义绑定。
选择 WCF LOB 适配器 SDK 作为选项的唯一一次是尝试解决以元数据为中心的 LOB 集成问题。 WCF LOB 适配器 SDK 只是创建 WCF 绑定的另一种方法,它专门介绍元数据支持。 此元数据要求的示例是在你与之通信的系统没有固定类型的文档时。 BizTalk Server 发送和接收 XML 文档,元数据描述文档中数据的布局,以便目标系统可以使用它。
BizTalk 适配器框架与 WCF LOB 适配器 SDK 之间的区别是什么?
当七个标准 WCF 适配器都不符合通信要求时,BizTalk 适配器框架用于生成自定义 WCF 适配器。 适配器框架为元数据提供了丰富的支持,以支持 LOB 应用程序,并共享标准 WCF 适配器使用的标准化配置和管理方法。
WCF LOB 适配器 SDK 允许为具有大量元数据要求的目标系统编写自定义绑定。 WCF LOB 适配器 SDK 旨在促进基于 WCF 的可重用元数据的适配器的统一开发,使企业应用程序和数据库能够相互集成。 由于使用 WCF LOB 适配器 SDK 生成 WCF 绑定,因此同一开发的解决方案可以在多个 .NET 应用程序中重复使用,包括自定义 .NET 应用程序、BizTalk Server、Microsoft Office SharePoint® Server 和 Microsoft SQL Server Integration Services。 此外,WCF LOB 适配器 SDK 提供了一个通用的元数据对象模型,用于公开目标系统元数据,供适配器使用者浏览、搜索和检索适配器中的 WCF 协定。
虽然 BizTalk 适配器框架和 WCF LOB 适配器 SDK 具有相似之处,因为它们有助于促进自定义适配器的开发,但有一些区别值得注意:
WCF LOB 适配器 SDK 是一个较新版本,基于 .NET Framework 3.0 类。 与前面的 BizTalk 适配器框架一样,它在元数据处理和管理连接方面提供了丰富的功能;但是,生成的适配器未绑定到 BizTalk Server 体系结构。
使用 WCF LOB 适配器 SDK 编写的适配器公开为自定义绑定,因此可供任何 WCF 客户端应用程序调用。 也可以将其扩展为 WCF 通道。 使用 BizTalk 适配器框架编写的适配器只能由 BizTalk Server 调用。
没有对 BizTalk 适配器框架的显式开发工具支持。 对于 WCF LOB 适配器 SDK,适配器代码生成向导将引导你完成一系列步骤,以收集自定义适配器需要使用的各种信息,然后生成文件供你在自定义适配器项目中使用。