最新的技术是Web服务 现在出现在所有市场中的类似简单对象访问协议(SOAP) Web服务描述语言(WSDL) 通用描述 发现和集成(UDDI)等术语的基本元素都是XML和Internet 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
Web Release
(SQLXML
)的焦点是Web服务(你能够通过链接下载SQLXML
)
SQLXML
使你能够从数据库中选择存储过程并从虚拟目录中选择XML模版
把它们暴露为Web服务的方法
因为你能够通过Web服务和传统方法(例如T
SQL EXEC语句
OLE DB
ADO和ODBC)调用存储过程
你可以最大化地重复使用这些组件
简单地说
SQLXML
使你能把数据库编程中的专门技术扩展到Web服务中而不需要学习新的语言或工具
下面让我们看看怎样把存储过程转变为Web服务
配置虚拟目录
把存储过程暴露为Web服务的第一步是从安装SQLXML
产生的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
列表
显示了把soap字符串作为虚拟名称的VBScript代码
给虚拟名称输入一个路径
该路径包含了当你把修改保存到根目录时从IIS虚拟目录管理器中输出的WSDL文件
我通常选择(
)
它选择相同的目录作为虚拟目录
你可以接收对话框中剩余字段的默认值
点击
保存
当你保存虚拟名称时
SQLXML
给你指定的虚拟名称目录写入两个文件
扩展名为
wsdl
其它的文件扩展名为
ssc
包含IIS虚拟目录管理器使用的存储过程的XML描述
现在你选择希望暴露作为Web服务方法的存储过程
在本文的例子中
我使用列表
中所示的OrdersForCustomer存储过程
这个存储过程返回指定客户ID(作为参数传递进的)的订单集合
进行下一步之前
你必须使用查询分析器(Query Analyzer)把这个存储过程安装在Northwind示例数据库中
建立Web服务
在
新虚拟目录属性
对话框的
虚拟名称
页面上选择刚刚建立的虚拟名称
接着点击
配置
(Configure)
这样就显示了Soap虚拟名称配置对话框(图
所示)
在这个对话框中
选择你希望暴露作为Web服务方法的存储过程
为了选择一个存储过程
点击(
)
它建立你配置虚拟目录访问的一个数据库中可用的存储过程列表
不要选择包含FOR XML子句查询的存储过程
作为代替
你必须选择返回标准结果集合的存储过程
SQLXML
期望存储过程返回输出参数或标准结果的结果集
接着该结果在中间层中被建立为XML
选择返回标准结果集的存储过程使所有可以用于Web服务或传统编程方法(例如T
SQL)的存储过程的灵活性最大化了
当你在中间层中建立XML查询结果
要小心避免SQLXML
的限制(你可以查看SQLXML
在线文档查看这些限制的详细信息)
你选择OrdersForCustomer存储过程后
点击
确定
(OK)
接着点击Soap虚拟名称配置对话框的
保存
(Save)按钮
这样你就已经建立了第一个Web服务了
你可以使用任何文本编辑器检查为虚拟名称选择的目录中的WSDL
该WSDL文件包含余你选择的Web服务相对应的方法定义
为了测试新建立的Web服务
使用列表
中显示的VBScript代码
该代码建立一个调用该Web服务的SOAP消息
接着使用XMLHTTP对象把该SOAP请求发送给Web服务
SOAP结果显示在一个消息框中
这个客户端简单演示了SOAP小心在VBScript和SQLXML
之间的交换
但是
它也显示了现在存储过程调用可以通过在HTTP上使用SOAP跨平台交互操作
它们通过WSDL和SCC文件中的描述提供了到存储过程的松散连接