本机 XML Web 服务概述

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

本主题将 Microsoft SQL Server 中的本机 XML Web 服务与 Microsoft SQLXML 进行比较,说明本机 XML Web 服务如何工作,并列出了使用它的一些优点。

对于下列情况,本机 XML Web 服务没有用处,建议不要使用它:

  • 以实时高并发访问为特征且具有持续时间较短的事务的应用程序。

  • Web 场类型扩展。

  • 作为中间层的替代品,具体而言,就是当应用程序体系结构中的大规模业务逻辑需求能够在中间层组件中得到更好的满足时。

将本机 XML Web 服务与 SQLXML 进行比较

在 SQL Server 2005 之前的版本中,需要使用表格格式数据流 (TDS) 访问 SQL Server 数据库。对于基于 Windows 的桌面客户端来说,TDS 是必须支持的一项专有协议。有时,SQL Server 客户端必须使用 Microsoft 数据访问组件 (MDAC)。MDAC 堆栈安装在连接到 SQL Server 的客户端计算机上。对于 SQL Server,SQLXML 3.0 是支持基于 Web 的 SQL Server 访问的中间层组件,但还必须使用 Internet Information Services (IIS)。

如下图所示,自 SQL Server 2005 开始,通过结合使用 HTTP 和 SOAP,本机 XML Web 服务针对非 Windows 环境提供了替代方案。

将本机 XML Web 服务与 SQLXML 进行比较

由于客户端不再需要安装 MDAC,SQLXML 也不需要在中间层上依赖于 IIS,因此 SOAP 和 HTTP 访问使更大范围的客户端能够访问 SQL Server。这些客户端包括使用现有客户端应用程序的 Web 应用程序客户端,例如 Web 浏览器。本机 XML Web 服务使得使用 Microsoft .NET Framework、Microsoft SOAP 工具包、Perl 和其他 Web 开发操作系统以及工具集更加容易。

下表显示了每项技术提供的一些功能。

本机 XML Web 服务

Microsoft SQLXML

  • 可支持 SOAP 1.1 和 SOAP 1.2 客户端的完全兼容的 SOAP 服务器实现。

  • 完全支持参数化批处理执行。

  • 服务器上的动态 WSDL 生成。

  • XML 模板和架构文件。它们支持可更新的 XML 视图。

  • Updategram。

  • XML 大容量加载。

本机 XML Web 服务如何工作

若要使用 SQL Server 中的本机 XML Web 服务,必须在服务器上建立 HTTP 端点。此端点实质上是基于 HTTP 的客户端可以通过其查询服务器的网关。建立 HTTP 端点后,可以添加存储过程或用户定义函数,或者使其可用于端点用户。创建或更新端点后可以执行此操作。启用过程和函数后,它们将被指定为“Web 方法”。设计为一起使用的 Web 方法的集合可以称为“Web 服务”。

可以使用 WSDL 格式来描述这些 Web 服务。WSDL 格式由 SQL Server 实例生成,并返回到启用了 WSDL 的任何 HTTP 端点的 SOAP 客户端,如下图所示。如果需要,WSDL 格式可以是自定义解决方案,而不是 SQL Server 生成的解决方案。还可以将端点配置为不应答 WSDL 请求。

本机 XML Web 服务的工作方式

按照此过程,可以实现启用 SQL Server 的 Web 服务的集合,并将其用于帮助建立和填充面向服务的体系结构 (SOA)。有关详细信息,请在位于此 Microsoft 网站 的 MSDN Online Library 中搜索关键字“SOA”。

使用本机 XML Web 服务的好处

可作为自身的 XML Web 服务运行的 SQL Server 实例提供下列好处:

  • 任何 Web 服务应用程序都可以访问 SQL Server 的实例

    这是主要好处。因为本机 XML Web 服务基于大家熟知的技术(例如 XML 和 HTTP),所以可以分析 XML 并提交 HTTP 请求的任何设备现在都可以访问 SQL Server。这允许在异类环境中对 SQL Server 进行更好的访问(在异类环境中,在非 Windows 操作系统上运行的应用程序可能需要连接到 SQL Server)。在这些情况下,一直以来,使用 Java 数据库连接 (JDBC) 或开放式数据库连接 (ODBC) 驱动程序是唯一可用的解决方案。SQL Server 中的本机 XML Web 服务提供了另一个低成本的替代方案。例如,当数据库管理员使用 Perl 编写将在非 Windows 操作系统中运行以管理 SQL Server 资源的脚本时,此功能将非常有用。

  • 改进与 Microsoft 以及第三方 Web 开发工具集的集成

    使用本机 XML Web 服务,SQL 查询结果将以 XML 格式返回。通过使用预定义的架构,具有内置 SOAP/HTTP 支持的智能集成开发环境 (IDE)(例如 Microsoft Visual Studio 2005 或 JBuilder)可以利用本机 XML Web 服务来帮助生成代理代码,以便提取与 SQL Server 实例的通信。大多数情况下,IDE 都能生成并提供对象,供客户端应用程序用来进行基于 Web 的数据访问。

  • 更好地支持间歇或松散连接的移动客户端

    使用本机 XML Web 服务还允许随时随地访问 SQL Server 实例。这使得开发用于移动设备或间歇连接设备的应用程序更加容易。在建立连接且服务器开始处理请求之后,可以使用现有机制来监视服务器,这些机制可用于使用 TDS 和 SQL Server Net-Library 的基于传统网络的客户端。

  • 服务器内建立的安全措施可以减少实现其他防火墙的需要

    本机 XML Web 服务为 Web 访问提供内置级别的安全性。和一般的 Web 服务器不同,为供 SQL Server 使用而创建的 HTTP 端点不允许匿名用户访问。若要创建端点,首先需要具有服务器的系统级管理特权,并且端点只提供配置端点时公开的存储方法。