介绍用于 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 数据库适配器通过适用于 .NET 的 Oracle 数据提供程序(ODP.NET)和 Oracle 客户端与 Oracle 数据库通信,后者是适用于 Windows 的 Oracle 数据访问组件(ODAC)的一部分。
下图显示了使用 Oracle 数据库适配器开发的解决方案的端到端体系结构。
消耗适配器
Oracle 数据库适配器将 Oracle 数据库公开为客户端应用程序的 WCF 服务。 若要在 Oracle 数据库上执行作和访问数据,客户端应用程序通过 WCF 通道与 Oracle 数据库适配器交换 SOAP 消息。 上图显示了可以使用 Oracle 数据库适配器的四种方式。 它们分别是:
通过 WCF 通道模型应用程序。 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 数据库应用程序。
通过 BizTalk 接收位置或发送端口,配置为使用 Microsoft BizTalk WCF-Custom 适配器。 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 自定义绑定(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 提供的功能,并通过用于 .NET 的 Oracle 数据提供程序(ODP.NET)提供与 Oracle 数据库的连接。
WCF LOB 适配器 SDK 充当 Oracle 数据库适配器与 Windows Communication Foundation(WCF)接口的软件层。 ODP.NET 充当 Oracle 数据库适配器与 Oracle 数据库接口的层。
下图显示了 Oracle 数据库适配器、WCF LOB 适配器 SDK 和 ODP.NET 的内部组件之间的关系。
ODP.NET
Oracle 数据库适配器通过 ODP.NET 和 Oracle 客户端与 Oracle 数据库连接。 这两个组件都是 Oracle 数据访问组件(ODAC)的一部分。
ODP.NET 实现了一个与 ADO.NET 接口一致的 Oracle 数据库的数据提供程序。 Oracle 数据库适配器使用 ODP.NET 公开的类对 Oracle 数据库进行操作。
Oracle 客户端提供与 Oracle 数据库的连接。 通过向 Oracle 数据库适配器提供连接 URI 来建立与 Oracle 数据库的连接。 可以通过两种方式指定连接 URI:
使用 tnsnames.ora。 在此方法中,适配器客户端提供的连接 URI 仅包含 tnsnames.ora 文件中指定的 net 服务名称。 适配器从文件中的 net 服务名称条目中提取连接参数,例如服务器名称、服务名称、端口号等。 若要使用此方法,必须将运行 Oracle 客户端的计算机配置为在 tnsnames.ora 文件中包括 Oracle 数据库的 Net 服务名称。
不使用 tnsnames.ora。 在此方法中,适配器客户端直接在连接 URI 中指定连接参数。 这不需要 net 服务名称存在于客户端计算机上的 tnsnames.ora 文件中。 此方法甚至不需要客户端计算机上存在 tnsnames.ora 文件。
有关连接 URI 的详细信息,请参阅 创建与 Oracle 数据库的连接。