论文部分内容阅读
摘 要:Web Services是下一代分布式系统的核心,是发布在网络上并提供API以供其他程序调用的封装的实体,是在网络上进行分布式计算的基本构造块。Web Services也是描述了某些操作的接口,该接口隐藏了服务实现的细节,允许应用程序通过独立于服务实现、独立于硬件或软件平台、独立于编写服务所用的编程语言的方式使用该服务。本文重点介绍了Web Services,通过创建一个简单的Web服务,将SQLServer2005服务器中的Sender数据库中Sender_User表中的用户信息暴露给客户端,通过GetProducts()方法返回一个数据集供客户端使用,实现Web服务的调用为例,实现了在当前环境下最高的可集成性,为许多厂商提供大量的免费工具来快速生成和部署Web Services,比较容易实现。
关键词:Web Services;封装;实体;接口
中图分类号:TP393.02
1 Web Service概述
1.1 典型的Web Service结构
一般过程是,Web Service提供者使用合适的编程语言和开发工具开发并部署Web Service,客户应用程序根据Web Service的WSDL服务描述文档中的信息生成一个SOAP请求消息来调用这个Web Service。通常Web Service都是位于Web服务器(如IIS、Apache等)的后面,客户端生成的SOAP请求会被嵌入在一个HTTPPOST请求中,发送到Web服务器,Web服务器在把这些请求转发给Web Service请求处理器(Request Handler)。收到消息后,Web Service请求处理器就会解析SOAP请求,然后再生成相应的SOAP响应信息。Web服务器得到SOAP应答后,在通过HTTP方式回送给客户端。
1.2 Web Service体系结构
Web Service体系结构是基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。这些角色和操作一起作用于Web服务构件:Web服务软件模块及其描述。服务提供者定义Web服务的服务描述并把它发布到服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者绑定,并调用Web Service实现或同它交互。
2 应用实现
(1)用.NET2005创建新的网站“Web Services”
(2)右键“解决方案管理器”创建新的Web服务,取名为Products
(3)打开Products.cs。要使用SQLServer提供的数据库系统服务,需要在文件头添加引用System.Data和System.Data.SqlClient命名空间
(4)在Products类中添加GetProducts方法,其代码如下
usingSystem;usingSystem.Web;usingSystem.Collections;usingSystem.Web.Services;usingSystem.Web.Services.Protocols;usingSystem.Data;usingSystem.Data.SqlClient;
[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]publicclassProducts:System.Web.Services.Web Service
{publicProducts(){}[WebMethod(Description="返回用户列表")]
publicDataSetGetProducts()
{SqlConnectionconn;
SqlDataAdaptermyDataAdapter;DataSetmyDataSet=newDataSet();
//打开数据库连接conn=newSqlConnection("DataSource=(local);InitialCatalog=Northwind;IntegratedSecurity=True");stringcmd="Select*FromProducts";myDataAdapter=newSqlDataAdapter(cmd,conn);//填充myDataSet,并将其返回myDataAdapter.Fill(myDataSet,"Products");returnmyDataSet;
(5)测试Web服务Products,单击Get Products方法的超链接(如图1),单击“调用”按钮,可以得到由Get Products方法返回的数据集转换而来的XML文档。
图1 GetProducts方法的超链接
接下来,需要把GetProducts方法返回的数据集结果用于ASP.NET2.0创建的应用程序,以便对这些数据进行进一步的加工处理。打开该网站的Default.aspx切换到设计视图,在Web窗体中添加一个Button控件和一个GridView控件
(6)在网站中添加Web引用,在URL框中输入ProductsWeb服务的地址,本例为http://localhost:2624/Web Services/Web Services.asmx,默认其中Web引用名为Localhost。
(7)双击“获取服务”按钮,添加Button_Click方法,其代码如下。
protectedvoidButton1_Click(objectsender,EventArgse)
{//实例化Products代理对象
localhost.Productsws=newlocalhost.Products();
//调用GetProducts()方法,将其结果赋值给GridView1的DataSource
GridView1.DataSource=ws.GetProducts();
GridView1.DataBind(); //数据绑定
(8)保存并运行网站。单击“获取服务”按钮系统运行。
3 总结
Web Services所有公共的协约都使用开放的标准协议进行描述、传输和交换,完全屏蔽了不同软件平台的差异,各种技术都可通过标准的协议进行互操作,实现了在当前环境下最高的可集成性。Web Services不像现有的分布式计算系统具有复杂接口,许多厂商提供大量的免费工具来快速生成和部署Web Services,比较容易实现。
参考文献:
[1]祝建江.基于NETWeb Service的多层分布式体系机构的研究于应用[J].浙江工业大学学报,2006,5:56-58.
[2]周刚.Web服务解决方案分析[J].天津理工学院学院:计算机工程,2006,2:36-38.
[3]间新庆,李文锋,陈定方.Web服务的体系结构和应用[J].武汉理工大学学报,2002,3:52-54.
[4](美)DanWahlin.ASP.NET2.0AJAX高级编程[M].2008.
[5](美)里克特,李建忠..NET框架程度设计[M].北京:清华大学出版社,2003.
[6]邹建峰,周建峰,项细威.C#企业开发案例精解[M].北京:人民邮电出版社,2006.
作者简介:王金环(1979-),女,山东菏泽人,助教,硕士研究生,研究方向为计算机网络与语义网;李宝敏,教授,硕士生导师,研究方向为计算机系统结构、计算机网络与语义网;李艳,讲师,硕士研究生,研究方向是计算机应用技术。
作者单位:西安培华学院,西安 710125
关键词:Web Services;封装;实体;接口
中图分类号:TP393.02
1 Web Service概述
1.1 典型的Web Service结构
一般过程是,Web Service提供者使用合适的编程语言和开发工具开发并部署Web Service,客户应用程序根据Web Service的WSDL服务描述文档中的信息生成一个SOAP请求消息来调用这个Web Service。通常Web Service都是位于Web服务器(如IIS、Apache等)的后面,客户端生成的SOAP请求会被嵌入在一个HTTPPOST请求中,发送到Web服务器,Web服务器在把这些请求转发给Web Service请求处理器(Request Handler)。收到消息后,Web Service请求处理器就会解析SOAP请求,然后再生成相应的SOAP响应信息。Web服务器得到SOAP应答后,在通过HTTP方式回送给客户端。
1.2 Web Service体系结构
Web Service体系结构是基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。这些角色和操作一起作用于Web服务构件:Web服务软件模块及其描述。服务提供者定义Web服务的服务描述并把它发布到服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者绑定,并调用Web Service实现或同它交互。
2 应用实现
(1)用.NET2005创建新的网站“Web Services”
(2)右键“解决方案管理器”创建新的Web服务,取名为Products
(3)打开Products.cs。要使用SQLServer提供的数据库系统服务,需要在文件头添加引用System.Data和System.Data.SqlClient命名空间
(4)在Products类中添加GetProducts方法,其代码如下
usingSystem;usingSystem.Web;usingSystem.Collections;usingSystem.Web.Services;usingSystem.Web.Services.Protocols;usingSystem.Data;usingSystem.Data.SqlClient;
[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]publicclassProducts:System.Web.Services.Web Service
{publicProducts(){}[WebMethod(Description="返回用户列表")]
publicDataSetGetProducts()
{SqlConnectionconn;
SqlDataAdaptermyDataAdapter;DataSetmyDataSet=newDataSet();
//打开数据库连接conn=newSqlConnection("DataSource=(local);InitialCatalog=Northwind;IntegratedSecurity=True");stringcmd="Select*FromProducts";myDataAdapter=newSqlDataAdapter(cmd,conn);//填充myDataSet,并将其返回myDataAdapter.Fill(myDataSet,"Products");returnmyDataSet;
(5)测试Web服务Products,单击Get Products方法的超链接(如图1),单击“调用”按钮,可以得到由Get Products方法返回的数据集转换而来的XML文档。
图1 GetProducts方法的超链接
接下来,需要把GetProducts方法返回的数据集结果用于ASP.NET2.0创建的应用程序,以便对这些数据进行进一步的加工处理。打开该网站的Default.aspx切换到设计视图,在Web窗体中添加一个Button控件和一个GridView控件
(6)在网站中添加Web引用,在URL框中输入ProductsWeb服务的地址,本例为http://localhost:2624/Web Services/Web Services.asmx,默认其中Web引用名为Localhost。
(7)双击“获取服务”按钮,添加Button_Click方法,其代码如下。
protectedvoidButton1_Click(objectsender,EventArgse)
{//实例化Products代理对象
localhost.Productsws=newlocalhost.Products();
//调用GetProducts()方法,将其结果赋值给GridView1的DataSource
GridView1.DataSource=ws.GetProducts();
GridView1.DataBind(); //数据绑定
(8)保存并运行网站。单击“获取服务”按钮系统运行。
3 总结
Web Services所有公共的协约都使用开放的标准协议进行描述、传输和交换,完全屏蔽了不同软件平台的差异,各种技术都可通过标准的协议进行互操作,实现了在当前环境下最高的可集成性。Web Services不像现有的分布式计算系统具有复杂接口,许多厂商提供大量的免费工具来快速生成和部署Web Services,比较容易实现。
参考文献:
[1]祝建江.基于NETWeb Service的多层分布式体系机构的研究于应用[J].浙江工业大学学报,2006,5:56-58.
[2]周刚.Web服务解决方案分析[J].天津理工学院学院:计算机工程,2006,2:36-38.
[3]间新庆,李文锋,陈定方.Web服务的体系结构和应用[J].武汉理工大学学报,2002,3:52-54.
[4](美)DanWahlin.ASP.NET2.0AJAX高级编程[M].2008.
[5](美)里克特,李建忠..NET框架程度设计[M].北京:清华大学出版社,2003.
[6]邹建峰,周建峰,项细威.C#企业开发案例精解[M].北京:人民邮电出版社,2006.
作者简介:王金环(1979-),女,山东菏泽人,助教,硕士研究生,研究方向为计算机网络与语义网;李宝敏,教授,硕士生导师,研究方向为计算机系统结构、计算机网络与语义网;李艳,讲师,硕士研究生,研究方向是计算机应用技术。
作者单位:西安培华学院,西安 710125