用于 Oracle 数据库的 BizTalk 适配器的体系结构概述

介绍适用于 Oracle 数据库的 Microsoft BizTalk 适配器的体系结构。

了解 Oracle 数据库适配器体系结构有助于:

  • 了解 Oracle 数据库适配器与 Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK 之间的关系。

  • 了解安全边界,以便更好地保护解决方案中的数据。

  • 了解 Oracle 数据库适配器绑定属性。

  • 排查安装问题。

本主题介绍使用 Oracle 数据库适配器在 Oracle 数据库上运行的端到端解决方案的体系结构,还介绍了 Oracle 数据库适配器的内部体系结构。

适配器体系结构概述

适用于 Oracle 数据库的 Microsoft BizTalk 适配器是一个 Windows Communication Foundation (WCF) 自定义绑定。 此绑定包含单个自定义传输绑定元素,该元素支持与 Oracle 数据库的通信。 Oracle 数据库适配器由 Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK 运行时包装,并通过 WCF 通道体系结构向应用程序公开。 Oracle 数据库适配器通过 Oracle Data Provider for .NET (ODP.NET) 和 Oracle 客户端与 Oracle 数据库通信,后者是 Oracle Data Access Components (ODAC) for Windows 的一部分。

下图显示了使用 Oracle 数据库适配器开发的解决方案的端到端体系结构。

Oracle 数据库适配器体系结构示意图

使用适配器

Oracle 数据库适配器将 Oracle 数据库作为 WCF 服务公开给客户端应用程序。 若要对 Oracle 数据库执行操作和访问数据,客户端应用程序通过 WCF 通道与 Oracle 数据库适配器交换 SOAP 消息。 上图显示了使用 Oracle 数据库适配器的四种方法。 它们分别是:

  • 通过 WCFchannel 模型应用程序。 WCF 通道模型应用程序通过使用 WCF 通道模型直接与 Oracle 数据库适配器交换 SOAP 消息,对 Oracle 数据库执行操作。 有关使用 WCF 通道模型为 Oracle 数据库适配器开发解决方案的详细信息,请参阅 使用 WCF 通道模型开发 Oracle 数据库应用程序

  • 通过 WCF 服务模型应用程序。 WCF 服务模型应用程序调用 WCF 客户端上的方法对 Oracle 数据库执行操作。 WCF 客户端将 Oracle 数据库适配器公开的操作建模为 .NET 方法。 可以使用 Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK 或 WCF ServiceModel 元数据实用工具 (svcutil.exe) 从 Oracle 数据库适配器公开的元数据创建 WCF 客户端类。 有关 WCF 服务模型和 Oracle 数据库适配器的详细信息,请参阅 使用 WCF 服务模型开发 Oracle 数据库应用程序

  • 通过配置为使用 Microsoft BizTalk WCF-Custom 适配器的 BizTalk 接收位置或发送端口。 WCF-Custom 适配器支持使用 WCF 扩展性功能。 通过使用 WCF-Custom 适配器,可以选择并配置 Oracle DB 绑定以及接收位置或发送端口的行为。 有关如何在BizTalk Server解决方案中使用 Oracle 数据库适配器的详细信息,请参阅开发 BizTalk 应用程序

  • 通过 IIS 托管的 Web 服务。 在此方案中,使用适配器生成的 WCF 服务代理使用标准 WCF Http 绑定托管在 IIS 中。 这会将服务协定作为 Web 服务公开给外部用户。 IIS 在运行时自动托管适配器,而适配器又与 Oracle 数据库通信。

    Oracle 数据库适配器和 ODAC 始终与使用该适配器的应用程序或服务一起托管在进程内。

Oracle 数据库适配器和 WCF

WCF 提供基于客户端和服务之间通过通道交换 SOAP 消息的编程模型。 这些消息在通信客户端和服务公开的终结点之间发送。 终结点包括:

  • 终结点地址,指定接收消息的位置

  • 绑定,指定用于交换消息的通信协议

  • 协定,指定终结点公开的操作和数据类型。

    绑定由一个或多个绑定元素组成,这些元素相互堆叠以定义消息与终结点的交换方式。 绑定至少必须指定用于与终结点交换消息的传输和编码。 终结点之间的消息交换发生在由一个或多个通道组成的通道堆栈上。 每个通道都是为终结点配置的绑定中绑定元素之一的具体实现。 WCF 文档包括有关 WCF 和 WCF 编程模型的更多详细信息。

    适用于 Oracle 数据库的 Microsoft BizTalk 适配器公开 WCF 自定义绑定,Oracle DB 绑定 (Microsoft.Adapters.OracleDB.OracleDBBinding) 。 默认情况下,此绑定包含单个自定义传输绑定元素,即 Oracle DB 适配器绑定元素 (Microsoft.Adapters.OracleDB.OracleDBAdapter) ,用于对 Oracle 数据库启用操作。

    Microsoft.Adapters.OracleDB.OracleDBBinding (Oracle DB 绑定) 和 Microsoft.Adapters.OracleDB.OracleDBAdapter (Oracle DB 适配器绑定元素) 是公共类,也公开给配置系统。 由于 Oracle DB 适配器绑定元素是公开的,因此可以生成自己的自定义 WCF 绑定,以便扩展 Oracle 数据库适配器的功能。 例如,可以实现自定义绑定以支持 WCF 通道或服务模型解决方案中的企业单一登录 (SSO) 。 这样做的原因是将数据库操作聚合到单个多功能操作中,或者在自定义应用程序实现的操作与 Oracle 数据库上的操作之间执行架构转换。

    Oracle 数据库适配器基于 Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK 构建,并在 WCF LOB 适配器 SDK 运行时上运行。 WCF LOB 适配器 SDK 提供 Oracle 数据库适配器用于向用户和适配器客户端提供一组丰富的功能的软件框架和工具基础结构。

Oracle 数据库适配器和 WCF LOB 适配器 SDK

适用于 Oracle 数据库的 Microsoft BizTalk 适配器实现一组核心组件,这些组件利用 Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK 提供的功能,并通过 Oracle Data Provider for .NET (ODP.NET) 与 Oracle 数据库建立连接。

WCF LOB 适配器 SDK 充当软件层,Oracle 数据库适配器通过该层与 Windows Communication Foundation (WCF) 进行接口。 ODP.NET 充当 Oracle 数据库适配器与 Oracle 数据库接口的层。

下图显示了 Oracle 数据库适配器、WCF LOB 适配器 SDK 和 ODP.NET 的内部组件之间的关系。

Oracle 数据库适配器内部体系结构

ODP.NET

Oracle 数据库适配器通过 ODP.NET 和 Oracle 客户端与 Oracle 数据库连接。 这两个组件都是 Oracle 数据访问组件 (ODAC) 的一部分。

ODP.NET 为 Oracle 数据库实现与 ADO.NET 接口一致的数据提供程序。 Oracle 数据库适配器使用 ODP.NET 公开的类对 Oracle 数据库进行操作。

Oracle 客户端提供与 Oracle 数据库的连接。 通过向 Oracle 数据库适配器提供连接 URI,可以建立与 Oracle 数据库的连接。 可以通过两种方式指定连接 URI:

  • 使用 tnsnames.ora。 在此方法中,适配器客户端提供的连接 URI 仅包含 tnsnames.ora 文件中指定的网络服务名称。 适配器从文件中的 net 服务名称条目中提取连接参数,例如服务器名称、服务名称、端口号等。 若要使用此方法,必须将运行 Oracle 客户端的计算机配置为在 tnsnames.ora 文件中包括 Oracle 数据库的 net 服务名称。

  • 不使用 tnsnames.ora。 在此方法中,适配器客户端直接在连接 URI 中指定连接参数。 这不需要 net 服务名称存在于客户端计算机上的 tnsnames.ora 文件中。 此方法甚至不需要客户端计算机上存在 tnsnames.ora 文件。

    有关连接 URI 的详细信息,请参阅 创建与 Oracle 数据库的连接

下一步

保护 Oracle 数据库应用程序