《第八章Web服务(精品).ppt》由会员分享,可在线阅读,更多相关《第八章Web服务(精品).ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8章 Web服务教学提示:本章将介绍教学提示:本章将介绍Web Service的基的基础知识与如何创建础知识与如何创建Web Service及运用及运用Web Service。用一个简单的案例说明。用一个简单的案例说明Web Service的使用方法。并介绍如何使的使用方法。并介绍如何使用用Web Service的数据服务的数据服务。8.1 Web Service概述nWeb服务(Web Services)是近两年来发展的一项技术。它以“软件就是服务”为理想目标,使得在系统架构以及软件开发等领域都发生了深刻的变化。Web服务是微软.NET策略计划的基础。一个Web Service就是一个应用
2、Web协议的可编程的应用程序逻辑。其中最重要的协议是简单对象访问协议SOAP(Simple Object Access Protocol)。8.1.1 XML、SOAP与Web ServicenWeb Service是一种应用程序,使用标是一种应用程序,使用标准的互联网协议,在网上提供函数接口,准的互联网协议,在网上提供函数接口,这就是说,你能够用编程的方法通过这就是说,你能够用编程的方法通过Web来调用这个应用程序。来调用这个应用程序。n我们可以把我们可以把Web服务想象为通过因特网服务想象为通过因特网或企业内部网连接调用其方法的组件,或企业内部网连接调用其方法的组件,或者把它想象为通过或者
3、把它想象为通过Web提供其接口的提供其接口的组件。组件。8.1.1 XML、SOAP与Web ServicenWeb服务建立在对开放标准服务建立在对开放标准XML广泛接广泛接受的基础上,受的基础上,Web服务使用服务使用XML序列化序列化其客户端收发的数据。即使客户端和其客户端收发的数据。即使客户端和Web服务主机使用不同的操作系统,或服务主机使用不同的操作系统,或者应用程序使用不同的程序语言开发,者应用程序使用不同的程序语言开发,只要客户端程序可以解析只要客户端程序可以解析XML,那么它,那么它就可以使用就可以使用Web服务返回的数据。服务返回的数据。1 XML技术nXML实际上是实际上是W
4、eb上表示结构化信息的一种标上表示结构化信息的一种标准文本格式,它没有复杂的语法和包罗万象的准文本格式,它没有复杂的语法和包罗万象的数据定义。数据定义。Web服务要以一种可靠的自动的方服务要以一种可靠的自动的方式操作数据,式操作数据,HTML不能满足要求,不能满足要求,XML允许允许使用者创建和使用他们自己的标记而不是使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要,企业的有限词汇表。这一点至关重要,企业可以用可以用XML为电子商务和供应链集成等应用定为电子商务和供应链集成等应用定义自己的标记语言,甚至特定行业一起来定义义自己的标记语言,甚至特定行业一起来定义该领域的特
5、殊标记语言,作为该领域信息共享该领域的特殊标记语言,作为该领域信息共享与数据交换的基础。与数据交换的基础。1 XML技术nXML提供了一种结构化的数据表示方式,使得用户提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,界面分离于结构化数据。所以,Web用户所追求的用户所追求的许多先进功能在许多先进功能在XML环境下更容易实现。环境下更容易实现。XML文档文档通常包含一个文档类型声明,因而通常包含一个文档类型声明,因而XML文档是自描文档是自描述的。不仅人能读懂述的。不仅人能读懂XML文档,计算机也能处理。文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,表示
6、数据的方式真正做到了独立于应用系统,并且数据能够重用。并且数据能够重用。XML文档被看作是文档的数据文档被看作是文档的数据库化和数据的文档化。另外,库化和数据的文档化。另外,XML也吸收了人们多也吸收了人们多年来在年来在Web上使用上使用HTML的经验。的经验。XML支持世界上支持世界上几乎所有的主要语言,并且不同语言的文本可以在几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用同一文档中混合使用,应用XML的软件能处理这些的软件能处理这些语言的任何组合。所有这一切将使语言的任何组合。所有这一切将使XML成为数据表成为数据表示的一个开放标准,这种数据表示独立于机器平台、示的一
7、个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。供应商以及编程语言。1 XML技术nXML提供了一种结构化的数据表示方式,使得用户提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,界面分离于结构化数据。所以,Web用户所追求的用户所追求的许多先进功能在许多先进功能在XML环境下更容易实现。环境下更容易实现。XML文档文档通常包含一个文档类型声明,因而通常包含一个文档类型声明,因而XML文档是自描文档是自描述的。不仅人能读懂述的。不仅人能读懂XML文档,计算机也能处理。文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,表示数据的方式真正做到了独立于
8、应用系统,并且数据能够重用。并且数据能够重用。XML文档被看作是文档的数据文档被看作是文档的数据库化和数据的文档化。另外,库化和数据的文档化。另外,XML也吸收了人们多也吸收了人们多年来在年来在Web上使用上使用HTML的经验。的经验。XML支持世界上支持世界上几乎所有的主要语言,并且不同语言的文本可以在几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用同一文档中混合使用,应用XML的软件能处理这些的软件能处理这些语言的任何组合。所有这一切将使语言的任何组合。所有这一切将使XML成为数据表成为数据表示的一个开放标准,这种数据表示独立于机器平台、示的一个开放标准,这种数据表示独
9、立于机器平台、供应商以及编程语言。供应商以及编程语言。2、SOAP技术nWeb Service建好以后,其他人就会去调用它。简建好以后,其他人就会去调用它。简单对象访问协议单对象访问协议SOAP(Simple Object Access Protocol)提供了标准的)提供了标准的RPC方法调用方法调用Web Service。SOAP并不意味着并不意味着Web Service一定要一定要以对象的方式表示,你完全可以把你的以对象的方式表示,你完全可以把你的Web Service写成一系列的写成一系列的C函数,并仍然使用函数,并仍然使用SOAP进进行调用。行调用。SOAP使用使用XML消息调用远程
10、方法,这样消息调用远程方法,这样Web服务可以通过服务可以通过HTTP协议的协议的Post和和Get方法与方法与远程机器交互,而且,远程机器交互,而且,SOAP更加健壮和灵活易用。更加健壮和灵活易用。SOAP是是Web服务最重要的协议。服务最重要的协议。用于用于Web发现发现的其他技术,如的其他技术,如UDDI和和WSDL,也是通过,也是通过XML和和SOAP技术紧密结合实现的。技术紧密结合实现的。8.1.2 Web服务的体系结构 nWeb服务体系结构是基于三种角色服务体系结构是基于三种角色(服务提供服务提供者、服务注册中心和服务请求者者、服务注册中心和服务请求者)之间的交互。之间的交互。交互
11、通过发布、查找和绑定三种操作来完成。交互通过发布、查找和绑定三种操作来完成。这些角色和操作一起作用于这些角色和操作一起作用于Web Services构构件。件。n服务提供者服务提供者(Service Provider)。从企业角。从企业角度看它是服务的所有者,从体系结构看它是提度看它是服务的所有者,从体系结构看它是提供服务的平台。供服务的平台。n服务请求者服务请求者(Service Requester)。从企业角。从企业角度看它是指需要请求特定功能的企业,从体系度看它是指需要请求特定功能的企业,从体系结构看它是查找和调用服务的客户端应用程序。结构看它是查找和调用服务的客户端应用程序。n服务注册
12、中心服务注册中心(Service Registry)。8.1.2 Web服务的体系结构 8.1.3 构建ASP.NET Web服务n使用使用ASP.NET创建创建Web服务需要三个步骤:服务需要三个步骤:n(1)创建创建.asmx文件。文件。n(2)在文件中用标签声明此文件用于在文件中用标签声明此文件用于Web服务。服务。n(3)定义定义Web Service Method把把Web Service的功能暴露给用户。的功能暴露给用户。8.1.3 构建ASP.NET Web服务n(1)首先,打开首先,打开isual Studio.ET,选择,选择【文件文件】【新建新建】【项目项目】命令,在命令,
13、在弹出的对话框的语言中选择弹出的对话框的语言中选择“Visual C#项目项目”,在对话框的,在对话框的“模板模板”中选择中选择“ASP.NET Web服务服务”。然后在。然后在“位置位置”处输入处输入Web服务名字和服务名字和VS.NET创建创建Web服务所在的虚拟目录的位置。将项目名称服务所在的虚拟目录的位置。将项目名称设置为设置为slmWeb,如图,如图8-2所示。所示。8.1.3 构建ASP.NET Web服务8.1.3 构建ASP.NET Web服务n单击单击【确定确定】按钮后,按钮后,VS.NET就开就开始帮助建立新项目。项目建好后将出始帮助建立新项目。项目建好后将出现一个默认的现
14、一个默认的Service文件文件Service.asmx,如书上第,如书上第181页,页,图图8-3所示的界面。所示的界面。8.1.3 构建ASP.NET Web服务8.1.3 构建ASP.NET Web服务n我们所得到的我们所得到的Web服务将默认包含以下文件:服务将默认包含以下文件:nService.asmx:包含:包含Web Service页面访问点页面访问点和代码的引用,以及和代码的引用,以及.cs和和.resx文件。文件。nWeb.config:这是一个这是一个XML格式的文件,他包含格式的文件,他包含了系统资源的配置信息。了系统资源的配置信息。nslmWeb.csproj:它是该文
15、件的项目文件,包含它是该文件的项目文件,包含项目的配置和生成信息。项目的配置和生成信息。nslmWeb.vsdisco:这是一个:这是一个XML格式的文件,格式的文件,在在XML Web Services中用于发现进程使用的信中用于发现进程使用的信息。息。n(3)单击单击Service.cs进入代码视图界面,如图进入代码视图界面,如图8-4所示。所示。8.1.3 构建ASP.NET Web服务8.1.3 构建ASP.NET Web服务n可以看出,在创建项目的过程中,VS.NET已经自动为用户创建好了代码框架。下面就来分析一下该框架,先列出所用已生成的Service.cs代码:nusing Sy
16、stem;nusing System.Web;nusing System.Collections;nusing System.Web.Services;nusing System.Web.Services.Protocols;n/n/WebService 的摘要说明n/nWebService(Namespace=http:/tempuri.org/)8.1.3 构建ASP.NET Web服务nWebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)npublic class WebService:System.Web.Services.
17、WebService n public WebService()n /如果使用设计的组件,请取消注释以下行 n /InitializeComponent();n n WebMethodn public string HelloWorld()n return Hello World;n n8.1.3 构建ASP.NET Web服务n以上这段代码现列出了该项目所需要引用的名以上这段代码现列出了该项目所需要引用的名字空间,字空间,“WebService(Namespace=http:/tempuri.org/)”这个网站里面包这个网站里面包含含System.Web和和System.Web.Servi
18、ces等,等,显然对于开发显然对于开发Web服务来说,这些都是必须的。服务来说,这些都是必须的。然后就是完成对然后就是完成对Web Services类的实例化工类的实例化工作,其中一些代码是作,其中一些代码是Web服务设计必须的,这服务设计必须的,这些不需要大家深入理解。在代码的后面部分,些不需要大家深入理解。在代码的后面部分,提供了一个提供了一个“Hello World”Web服务实例代服务实例代码,默认是被注释掉的。码,默认是被注释掉的。8.1.3 构建ASP.NET Web服务n可以看出,普通的方法通过添加可以看出,普通的方法通过添加WebMethod属性就转变成属性就转变成Web的方法
19、。的方法。可以先去掉注释看一下可以先去掉注释看一下“Hello World”Web服务的运行情况。服务的运行情况。n一旦创建并生成了一旦创建并生成了Web服务,可以导航服务,可以导航到到Web服务页面的服务页面的URL,通过,通过Web浏览浏览器方便地浏览服务内容。如图器方便地浏览服务内容。如图8-5所示。所示。8.1.3 构建ASP.NET Web服务8.2 一个简单的Web服务的实例nWeb服务的数据服务是最常用的一种服务。服务的数据服务是最常用的一种服务。在在Web服务使用服务使用System.Data名字空间可名字空间可以利用数据库系统提供数据服务。下面就以利用数据库系统提供数据服务。
20、下面就要添加自己的定义的要添加自己的定义的Web服务方法。和系服务方法。和系统提供的统提供的Hello World方法类似,只需要方法类似,只需要增加一个增加一个WebMethod关键字,普通的方关键字,普通的方法就变成了法就变成了Web服务方法。服务方法。8.2 一个简单的Web服务的实例nWebMethodnpublic DataSet GetData(string TBName)nnstring s=Server.MapPath(student.mdb);nstring p=Provider=Microsoft.Jet.OLEDB.4.0;Data source=+s;nOleDbCon
21、nection MyConn=new OleDbConnection(p);nDataSet DS=new DataSet();nstring k=select*from +TBName ;nOleDbDataAdapter NComm=new OleDbDataAdapter(k,MyConn);nNComm.Fill(DS,TBName);nreturn DS;n8.2 一个简单的Web服务的实例n因为要调用数据库,所以需要在因为要调用数据库,所以需要在Service.cs文件前文件前面添加代码面添加代码“using System.Data.OleDb;”,然,然后创建后创建Web服务方法
22、,首先添加服务方法,首先添加WebMethod关键关键字,然后开始方法内容的编写。这里定义了一个字,然后开始方法内容的编写。这里定义了一个GetData方法,它接收一个方法,它接收一个TBName(表名)字(表名)字符串,返回一个符串,返回一个DataSet对象(内存放表中所有信对象(内存放表中所有信息)。息)。n该程序利用该程序利用OleDb提供的方法读取了提供的方法读取了Access数据数据库库“student.mdb”,并将查询的结果以结果集的,并将查询的结果以结果集的方式返回。下面先来测试一下设计的方式返回。下面先来测试一下设计的Web服务的方服务的方法。点击运行窗口里面的函数法。点击
23、运行窗口里面的函数“GetData”,出现,出现输入参数输入参数“TBName”的界面,如图的界面,如图8-8所示。所示。8.2 一个简单的Web服务的实例8.2 一个简单的Web服务的实例n在图在图8-8中的中的TBName后面的文本后面的文本框中输入表名为框中输入表名为“student”,此,此时单击时单击“调用调用”按钮,就可以得到按钮,就可以得到表表“student”中的内容,如书中中的内容,如书中图图8-9所示。所示。8.2 一个简单的Web服务的实例8.3 访问Web Servicen创建好创建好Web服务后,就可以把该服务服务后,就可以把该服务注册到远程注册到远程UDDI注册中心
24、,服务请求注册中心,服务请求者查询到该服务为自己需要的服务后,者查询到该服务为自己需要的服务后,就可以查看相关就可以查看相关WSDL说明并调用该服说明并调用该服务。下面就来以消费者的角度来说明如务。下面就来以消费者的角度来说明如何调用何调用Web服务。服务。8.3 访问Web Servicen要进行要进行Web服务调用,需要以下一些步服务调用,需要以下一些步骤:骤:n从从UDDI注册中心查询到该注册中心查询到该Web服务;服务;n查看查看Web服务说明服务说明WSDL文档;文档;n生成代理类来调用生成代理类来调用Web服务;服务;n创建代理类实例并使用其方法。创建代理类实例并使用其方法。8.3
25、 访问Web Servicen首先假定要调用的首先假定要调用的Web服务为上一节构服务为上一节构建好的建好的Service.asmx服务。接下来在服务。接下来在Default.aspx网页中调用这个网页中调用这个web服务。服务。步骤如下:步骤如下:n(1)首先要构建一个)首先要构建一个ASP.NET Web应应用程序网站,命名为用程序网站,命名为slmAppweb。如下。如下图:图:8.3 访问Web Service8.3 访问Web Servicen然后在该网站中的然后在该网站中的Default.aspx中中进行界面设计,这里需要添加一个进行界面设计,这里需要添加一个Label控件,控件,
26、ID为为“Label1”,Text为为“表名表名”;一个;一个TestBox控件,控件,ID为为“TBnametext”,一个,一个Button控件,控件,ID为为“Button1”;如图;如图8-11所示。所示。8.3 访问Web Service8.3 访问Web Service再添加一个再添加一个GridView控件,控件,ID为为“gridweb”,如下图:,如下图:8.3 访问Web Servicen然后在项目中选择然后在项目中选择“项目项目”“添加添加Web引用引用”命令。查找在上命令。查找在上一节中定义好的那个一节中定义好的那个Web服务。服务。一般来说,需要在一般来说,需要在UD
27、DI注册中注册中心查询到该心查询到该Web服务,如图服务,如图8-13所示。所示。8.3 访问Web Service8.3 访问Web Service根据要求选择根据要求选择Web服务,这里选择服务,这里选择“本地计算机上的本地计算机上的Web服务服务”,这,这是系统开始查找是系统开始查找Web服务文件,如下图:服务文件,如下图:8.3 访问Web Service点击找到点击找到“http:/localhost/slmWeb”的的“Service.asmx”文件,则文件,则在地址栏在地址栏URL中显示地址,出现如下图:中显示地址,出现如下图:8.3 访问Web Servicen最后就要进行添加
28、最后就要进行添加Web引用了。单击对话引用了。单击对话框右下角框右下角“添加引用添加引用”的按钮就可以完成的按钮就可以完成Web服务的添加,同时服务的添加,同时VS自动生成自动生成Web服务代理类,并把它添加到应用程序。代服务代理类,并把它添加到应用程序。代理类提供理类提供Web服务的方法,把客户端请求服务的方法,把客户端请求打包为发送到服务器上的打包为发送到服务器上的SOAP消息,并消息,并检索包含结果的响应。检索包含结果的响应。n添加添加Web引用后单击引用后单击“解决方案资源管理解决方案资源管理器器”按钮,可以看到已经添加进去的按钮,可以看到已经添加进去的Web引用项引用项“Servic
29、e”,如图,如图8-16所示。所示。8.3 访问Web Service8.3 访问Web Service随后要进行的就是后台代码随后要进行的就是后台代码Default.aspx.cs的编写工作。由于代的编写工作。由于代理类已经由系统生成,在代码中创建该理类已经由系统生成,在代码中创建该类的对象后就可以调用该类的对象后就可以调用该Web服务提供服务提供的方法。双击的方法。双击Button1按钮,按钮,Default.aspx.cs代码设计如书中第代码设计如书中第187页所示,将其输入页所示,将其输入8.3 访问Web Service代码中,先创建一个代理类对象代码中,先创建一个代理类对象stu,
30、然后就直接调用其方法然后就直接调用其方法stu.GetData,该方法需要一个该方法需要一个String参数即表名参数即表名TBName,这里是那个文本框输入的内,这里是那个文本框输入的内容容“TBnametext.Text”,这个是由,这个是由DataSet类的对象来接收返回集,随后类的对象来接收返回集,随后就可以完成就可以完成GridView控件的数据绑定控件的数据绑定了。在了。在Visual Studio.NET中运行该项中运行该项目,可以得到如图目,可以得到如图8-17的运行结果。的运行结果。8.3 访问Web Service8.3 访问Web Service在文本框中输入数据表名在文本框中输入数据表名“student”,点击,点击“确确定定”,结果如下:,结果如下:8.3 访问Web Service再添加一个再添加一个GridView控件,控件,ID为为“gridweb”,如下图:,如下图:本 章 小 结n本章重点介绍本章重点介绍Web服务的创建和使服务的创建和使用。读者需要掌握如何创建用。读者需要掌握如何创建Web服服务,如何使用务,如何使用Web服务提供的方法服务提供的方法和属性。掌握数据服务的创建和使和属性。掌握数据服务的创建和使用方法,以及如何实现远程方法的用方法,以及如何实现远程方法的调用。调用。