使用SQLXML 3.0把存储过程暴露为Web服务

news/2024/7/11 2:12:48 标签: web服务, 存储, soap, sql server, vbscript, iis
默认 使用SQLXML 3.0把存储过程暴露为Web服务

最新的技术是Web服务。现在出现在所有市场中的类似简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、通用描述、发现和集成(UDDI)等术语的基本元素都是XML和Internet。

Web服务用于建立松散连接的应用程序并实现互操作性。松散连接的应用程序使你能重新配置、重新部署或重新定位它的实现而不影响相关的应用程序。互操作性涉及到建立能够在允许Web服务的任何平台上使用的应用程序。通过Web服务暴露SQL Server给予应用程序一个松散的连接接口,使你能够修改数据库的结构和位置而不影响应用程序。另外,Web服务使SQL Server能与更多的编程环境和平台交互操作。

为了达到互操作性,开发者需要在一套开放的工业标准和协议上建立Web服务。XML是这些标准中多数的基础,提供了不依赖平台的描述和数据表现。建立在XML上的SOAP提供了基于标准的向应用程序发送数据和从应用程序接收数据的途径,代表性的是使用HTTP。WSDL描述了位置、方法、参数和Web服务使用的数据类型。UDDI为注册Web服务或查找需要的其它Web服务的目录提供了一个接口。通过把这些标准技术和T-SQL编程组合在一起,你能把SQL Server存储过程实现为Web服务。

SQL Server 2000 Web Release 3(SQLXML 3.0)的焦点是Web服务(你能够通过链接 http://microsoft.com/sql/default.asp下载SQLXML 3.0)。SQLXML 3.0使你能够从数据库中选择存储过程并从虚拟目录中选择XML模版,把它们暴露为Web服务的方法。因为你能够通过Web服务和传统方法(例如T-SQL EXEC语句、OLE DB、ADO和ODBC)调用存储过程,你可以最大化地重复使用这些组件。简单地说,SQLXML 3.0使你能把数据库编程中的专门技术扩展到Web服务中而不需要学习新的语言或工具。下面让我们看看怎样把存储过程转变为Web服务。

配置虚拟目录。存储过程暴露为Web服务的第一步是从安装SQLXML 3.0产生的Configure IIS Support(配置IIS支持)菜单项中选择Microsoft IIS Virtual Directory Manager(微软IIS虚拟目录管理器)。要建立虚拟目录,从左边的树视图中选择Web服务器,接着展开该视图并点击默认的Web站点。右击右边面板中的任意区域,选择Context-》New-》Virtual Directory来显示一个New Virtual Directory Properties(新虚拟目录属性)对话框。在“安全和数据源”页面上,输入能够访问Northwind示例数据库的SQL Server登陆许可。注意你在“通用”页面上选择的目录的许可必须给你在“安全和数据源” 页面上为IIS配置的默认用户授权(请查看IIS文档寻找配置的详细信息)。为了避免许可的问题,为你的虚拟目录选择Inetpub/wwwroot的一个子目录,IIS默认用户自动拥有访问Inetpub/wwwroot下面数据的权限。下一步,在“设置”页面上,选择Allow POST选项,这样虚拟目录能够接受HTTP POST请求。点击“应用”。

配置虚拟名称。在配置虚拟目录后,点击New Virtual Directory Properties(新虚拟目录属性)对话框上的“虚拟名称”页面。从虚拟名称列表中选择新虚拟名称,为该虚拟名称选择一个名字,接着把它的类型设置为soap。列表1显示了把soap字符串作为虚拟名称的VBScript代码。给虚拟名称输入一个路径。该路径包含了当你把修改保存到根目录时从IIS虚拟目录管理器中输出的WSDL文件。我通常选择('.'),它选择相同的目录作为虚拟目录。你可以接收对话框中剩余字段的默认值。点击“保存”。当你保存虚拟名称时,SQLXML 3.0给你指定的虚拟名称目录写入两个文件,扩展名为.wsdl。其它的文件扩展名为.ssc,包含IIS虚拟目录管理器使用的存储过程的XML描述。现在你选择希望暴露作为Web服务方法的存储过程。在本文的例子中,我使用列表2中所示的OrdersForCustomer存储过程。这个存储过程返回指定客户ID(作为参数传递进的)的订单集合。进行下一步之前,你必须使用查询分析器(Query Analyzer)把这个存储过程安装在Northwind示例数据库中。

列表1:调用一个存储过程的VBScript代码Sub Main() Dim xmlhttp set xmlhttp = CreateObject("Msxml2.XMLHTTP.4.0") Dim request request = "<?xml version='1.0' encoding='UTF-8'   standalone='no'?>" & _ "<SOAP-ENV:Envelope xmlns:   SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>" & _ " <SOAP-ENV:Body>" & _ " <OrdersForCustomer xmlns=     'http://localhost/June2002/soap'>" & _ " <CID>BOTTM</CID>" & _ " </OrdersForCustomer>" & _ " </SOAP-ENV:Body>" & _ "</SOAP-ENV:Envelope>"xmlhttp.open "POST", "http://localhost/June2002/soap", False xmlhttp.send (request)MsgBox (xmlhttp.responseXML.xml)End Sub

列表2:建立OrdersForCustomer存储过程的代码CREATE PROCEDURE OrdersForCustomer @CID nvarchar(50)ASSELECT * FROM Customers, OrdersWHERE Customers.CustomerID = @CIDAND Customers.CustomerID = Orders.CustomerIDGO

建立Web服务。在“新虚拟目录属性”对话框的“虚拟名称”页面上选择刚刚建立的虚拟名称,接着点击“配置”(Configure)。这样就显示了Soap虚拟名称配置对话框(图1所示)。在这个对话框中,选择你希望暴露作为Web服务方法的存储过程。为了选择一个存储过程,点击("..."),它建立你配置虚拟目录访问的一个数据库中可用的存储过程列表。不要选择包含FOR XML子句查询的存储过程。作为代替,你必须选择返回标准结果集合的存储过程。SQLXML 3.0期望存储过程返回输出参数或标准结果的结果集。接着该结果在中间层中被建立为XML。选择返回标准结果集的存储过程使所有可以用于Web服务或传统编程方法(例如T-SQL)的存储过程的灵活性最大化了。当你在中间层中建立XML查询结果,要小心避免SQLXML 3.0的限制(你可以查看SQLXML 3.0在线文档查看这些限制的详细信息)。你选择OrdersForCustomer存储过程后,点击“确定”(OK),接着点击Soap虚拟名称配置对话框的“保存”(Save)按钮。这样你就已经建立了第一个Web服务了。你可以使用任何文本编辑器检查为虚拟名称选择的目录中的WSDL。该WSDL文件包含余你选择的Web服务相对应的方法定义。



图1:Soap虚拟名称配置对话框

为了测试新建立的Web服务,使用列表1中显示的VBScript代码。该代码建立一个调用该Web服务的SOAP消息,接着使用XMLHTTP对象把该SOAP请求发送给Web服务。SOAP结果显示在一个消息框中。这个客户端简单演示了SOAP小心在VBScript和SQLXML 3.0之间的交换。但是,它也显示了现在存储过程调用可以通过在HTTP上使用SOAP跨平台交互操作,它们通过WSDL和SCC文件中的描述提供了到存储过程的松散连接。

------------

本文译自:

《Creating a Web Service——Use SQLXML 3.0 to expose your stored procedures as Web services》

http://www.niftyadmin.cn/n/1608044.html

相关文章

SAP Afaria禁用Windows Mobile Professional设备上运行QQ

SAP Afaria对Windows Mobile Professional的管理能力是相当给力的&#xff0c;可以禁用运行指定的应用程序。 比如禁止用户运行QQ&#xff01;测试QQ程序&#xff1a;从这里下载 http://down.tech.sina.com.cn/3gsoft/download.php?id17测试效果&#xff1a;参考&#xff1a;A…

linux命令与内核,[科普] Linux 的内核与 Linux 系统之间的关系

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在 FHS 协议里&#xff0c;有这样的规定&#xff1a;/bin/ 需要在单用户模式可用的必要命令(可执行文件)&#xff1b;面向所有用户&#xff0c;例如&#xff1a; cat、 ls、 cp。/boot/ 引导程序文件&#xff0c;例如&#xff1a; …

Nexus 7试用报告: 触摸彪悍外表下的软肋

本文作者谐音太郎是雷锋网的读者&#xff0c;他和公司的几位同事都是Google 的忠实fans。在通宵看完Google I/O大会之后谐音太郎就第一时间预定了Nexus 7&#xff0c;漫长的等待终于拿到了这款具有颠覆意义的平板。经过几天的把玩&#xff0c;谐音太郎为为我们得出下面这份试用…

CRM能力成熟度评估模型

CRM能力成熟度评估模型【2004-07-29 17:29】 【叶开】 【AMT】 随着后工业时代的激励竞争&#xff0c;企业开始将核心竞争力从产品想客户和服务等方向转移。在当今的电子商务时代&#xff0c;注意是真正的电子商务而不是网络商务的时代&#xff0c;消费者的选择范围大大扩大&am…

Afaria服务器为Windows Mobile设备添加注册表数据

感谢Lincoln Tang提供资料&#xff01;Afaria服务器除了内置的各种对Windows Mobile的管理能力之外&#xff0c;管理员还可以定制自己的Configuration Service Provider&#xff08;以下简称CSP&#xff09;&#xff0c;它可以用来修改、设置、查询或修改Windows Mobile设置。 …

linux修改ssl支持的密码套件,Weblogic 12版本以下服务器如何调整SSL协议和加密套件...

注&#xff1a;请认真细读里面的每个步骤。针对不同系统安装的weblogic 需要调整不同的启动文件&#xff0c;此目的是为了提示低版本的weblogic可以支持TLS1.0以上安全协议和提升安全加密套件而制作。注意&#xff1a;首先要额外(Windows&#xff1a;安装jdk新的版本)或是(Linu…

事件营销让面包圈有关注 但产品好才是真的好

近期伦敦奥运会事关中国夺金的话题大热&#xff0c;于是很多官博或者草根就开始了含糊其辞的微博营销&#xff0c;拿奥运夺金的话题大作文章。并不是说这些事件营销无良&#xff0c;而是作为一个营销来说还是要有个度&#xff0c;虽然粉丝跟风加粉也是周瑜打黄盖的事&#xff0…

全球迎接信息化新课题:CRM融入电子政务

全球迎接信息化新课题&#xff1a;CRM融入电子政务【2004-07-27 14:44】 【】 【国际金融报】 发达国家的电子政务不仅可以为用户带来服务&#xff0c;也可以带来投资回报。从CRM的技术特性来看&#xff0c;它能够支持政府改善服务的理想&#xff0c;更好地满足公民的要求并改善…