频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

面向Microsoft SQL Server 2005的本机XML Web Services概述(1)

作者: Brad Sarsfield/Srik Raghavan 出处:51CTO.com 2007-02-25 17:34    砖    好    评论   进入论坛
阅读提示:了解如何借助SQL Server 2005(以前称为“Yukon”)中的SOAP/HTTP来设置和使用XML Web Services。文中还包含了相关的示例。为了从本文最大地受益,应该对Web服务技术具有基本的了解,包括HTTP、SOAP和WSDL。它包含的具体内容有:要求、HTTP终结点、创建HTTP终结点、身份验证与安全、WSDL、SOAP RPC:方法调用、批处理:即席查询和管理。

简介

Microsoft® SQL Server™ 2005 提供了一个标准机制,用于使用 SOAP 通过 HTTP 访问数据库引擎。通过使用此机制,可将 SOAP/HTTP 请求发送到 SQL Server 以执行以下内容:

◆Transact-SQL 批处理语句,带参数或不带参数。
◆存储过程,扩展存储过程以及用户定义的标量值函数。

在 SQL Server 2005 之前,可用于连接 SQL Server 的唯一机制就是通过名为 Tabular Data Stream (TDS) 的自定义二进制协议。利用 SOAP/HTTP 访问,我们提供了一种开放的且具有相关文档的协议,可以作为后备手段,以连接到 SQL Server。提供 SOAP/HTTP 访问,可以使更多类型的客户端访问 SQL Server,其中包括“无痕迹安装”客户端,因为已不再需要在客户端设备上安装 Microsoft 数据访问组件 (MDAC) 栈以尝试连接到 SQL Server。它方便了与各种平台上的 .NET、SOAP 工具包、Perl 以及更多功能的互操作。由于 SOAP/HTTP 访问机制基于各种应用广泛的技术(如 XML 和 HTTP),它能内在地促进异构环境中与 SQL Server 的互操作性及对 SQL Server 的访问。任何能够分析 XML 和提交 HTTP 请求的设备现在都能够访问 SQL Server。

很多企业都采用异构的环境,其中运行于 UNIX 和 Linux 平台上的应用程序可能需要连接到 SQL Server。在以前,此类用户唯一可用的解决方案就是使用 JDBC 或 ODBC 驱动程序。SOAP/HTTP 访问现在提供另一个低成本的后备方法。对于 DBA 使用 Perl 编写了运行于 UNIX 上的脚本以管理 SQL Server 资源的场景,这非常有用。在开发使用智能集成开发环境 (IDE)(其中内置了 SOAP/HTTP 支持,如 Microsoft Visual Studio® .NET 或 Jbuilder 就属于此类 IDE)开发客户端应用程序时,这也十分有用。这些 IDE 将生成特定的代理代码,这些代理代码对 SQL Server 通信进行抽象,并提供客户端应用程序可以使用的对象。使用 SOAP/HTTP 还实现了随时随地对 SQL Server 的访问,而这使得开发用于移动设备或偶尔连接的设备的应用程序更为容易。一旦建立了连接,并且服务器已开始处理请求,则可以使用 TDS 所基于的客户端上的现有机制(如使用 SqlClient、ODBC 和 OLEDB)对此进行监视。

要求

SQL Server 2005 本机 Web 服务要求使用 Microsoft Windows Server™ 2003 作为操作系统,因为它们依赖于此版本提供的内核模式 http 驱动程序 http.sys。由于 SQL Server 利用内核模式 http.sys 驱动程序,所以不必安装 IIS 以在 SQL Server 外公开 Web 服务,这就简化了管理。

应该根据应用程序要求决定是否安装 IIS。

例如,特定的应用程序可能从使用显式中间层而受益。在这种情况下,IIS 将很有用。

HTTP 终结点

为了将 SQL Server 设置为可以本机侦听 HTTP SOAP 请求的 Web 服务,需要创建 HTTP 终结点并定义该终结点公开的方法。当创建 HTTP 终结点时,必须使用唯一的 URL 进行创建,将使用此 URL 侦听传入的 HTTP 请求。例如,如果您使用 URL“http://servername/sql”创建一个终结点,发送到 http://servername/sql 的 SOAP 请求将由 http.sys. 拾取,然后将此 SOAP 请求路由到承载与该 URL 关联的终结点的 SQL Server 实例。请求将从此处传递到 SQL Server 内的 SOAP 处理层。

SQL Server 实例可以具有多个终结点,每个终结点都可以将任意数量的存储过程(通过使用 Transact-SQL 或 CLR 实现)公开为终结点上的 WebMethod,且可以通过 SOAP 远程过程调用 (RPC) 而调用。WebMethod 可以具有与所公开的实际存储过程不同的名称。WebMethod 名称就是在 WSDL 中作为操作名称向用户显示的名称。

注意   务必指出,终结点中的 WebMethod 子句是特定于 SQL Server 2005 的,与 ASMX WebMethod 属性无关。

用户可以对终结点执行 AdHoc Transact-SQL 语句。这可以通过使用数据定义语言 (DDL) 中的一个可选子句在终结点上允许进行批处理而实现。允许进行批处理将隐式地将名为“sqlbatch”的 WebMethod 公开给用户。在接下来的各节中将进一步对这些概念进行说明。

创建 HTTP 终结点

HTTP 终结点是使用 Transact-SQL DDL 创建和管理的。创建 HTTP 终结点是允许 HTTP/SOAP 访问 SQL Server 2005 的第一步。每个终结点都具有名称和一个选项集合,这些选项一起定义终结点的行为。

为了演示如何使用“创建 HTTP 终结点”的内容,让我们看看 Hello World 示例,以了解如何通过 SQL Server Web 服务调用存储过程。

首先,使用以下 T-SQL 在主数据库中创建名为“hello world”的存储过程。此存储过程只是显示输入参数中提供的字符串。

CREATE PROCEDURE hello_world
(@msg nvarchar(256))
AS BEGIN
select @msg as 'message'
END

然后,使用以下 T-SQL 创建 HTTP 终结点,此终结点将允许将此存储过程作为一个 WebMethod 进行访问:

CREATE ENDPOINT hello_world_endpoint
STATE = STARTED
AS HTTP (
AUTHENTICATION = ( INTEGRATED ),
PATH = '/sql/demo',
PORTS = ( CLEAR )
)
FOR SOAP (
WEBMETHOD
'http://tempuri.org/'.'hello_world'
(NAME = 'master.dbo.hello_world'),
BATCHES = ENABLED,
WSDL = DEFAULT
)

所有终结点均存储在主数据库中,在元数据视图 master.sys.http_endpoints 中。除非进行定义,否则终结点不会具有任何 SOAP 方法。在上例中,我们将存储过程 master.dbo.hello_world 作为“hello_world”WebMethod 公开;该 WebMethod 可以使用任何名称,如可以命名为“http://tempuri.org”命名空间下的“testproc1”。如果将 WSDL 子句的值指定为 DEFAULT,将使终结点使用默认格式对请求 WSDL 生成的 WSDL 进行响应。通过在上面的语句中设置 WSDL=NONE,可以取消 WSDL 生成。在接下来的部分中,我们将对 WSDL 生成的细节进行讨论。


共2页: 1 [2] 下一页
【内容导航】
专题
初探敏捷开发
WCF开发基础
体验Visual Studio 2008的魅力
Visual Studio 2005开发基础
测试开发人员参考手册
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81120次)
·UML类图详解 (查看72587次)
·C++是垃圾语言?! (查看42719次)
·C#技术开发指南 (查看40290次)
·UML统一建模语言 (查看39225次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。