1 / 47

第 8 章 Web 服务

第 8 章 Web 服务. 教学提示:本章将介绍 Web Service 的基础知识与如何创建 Web Service 及运用 Web Service 。用一个简单的案例说明 Web Service 的使用方法。并介绍如何使用 Web Service 的数据服务 。. 8.1 Web Service 概述.

Download Presentation

第 8 章 Web 服务

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 Web服务 教学提示:本章将介绍Web Service的基础知识与如何创建Web Service及运用Web Service。用一个简单的案例说明Web Service的使用方法。并介绍如何使用Web Service的数据服务。

  2. 8.1 Web Service概述 • Web服务(Web Services)是近两年来发展的一项技术。它以“软件就是服务”为理想目标,使得在系统架构以及软件开发等领域都发生了深刻的变化。Web服务是微软 .NET策略计划的基础。一个Web Service就是一个应用Web协议的可编程的应用程序逻辑。其中最重要的协议是简单对象访问协议SOAP(Simple Object Access Protocol)。

  3. 8.1.1 XML、SOAP与Web Service • Web Service是一种应用程序,使用标准的互联网协议,在网上提供函数接口,这就是说,你能够用编程的方法通过Web来调用这个应用程序。 • 我们可以把Web服务想象为通过因特网或企业内部网连接调用其方法的组件,或者把它想象为通过Web提供其接口的组件。

  4. 8.1.1 XML、SOAP与Web Service • Web服务建立在对开放标准XML广泛接受的基础上,Web服务使用XML序列化其客户端收发的数据。即使客户端和Web服务主机使用不同的操作系统,或者应用程序使用不同的程序语言开发,只要客户端程序可以解析XML,那么它就可以使用Web服务返回的数据。

  5. 1 XML技术 • XML实际上是Web上表示结构化信息的一种标准文本格式,它没有复杂的语法和包罗万象的数据定义。Web服务要以一种可靠的自动的方式操作数据,HTML不能满足要求,XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定行业一起来定义该领域的特殊标记语言,作为该领域信息共享与数据交换的基础。

  6. 1 XML技术 • XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。XML文档通常包含一个文档类型声明,因而XML文档是自描述的。不仅人能读懂XML文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。另外,XML也吸收了人们多年来在Web上使用HTML的经验。XML支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。

  7. 1 XML技术 • XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。XML文档通常包含一个文档类型声明,因而XML文档是自描述的。不仅人能读懂XML文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。另外,XML也吸收了人们多年来在Web上使用HTML的经验。XML支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。

  8. 2、SOAP技术 • Web Service建好以后,其他人就会去调用它。简单对象访问协议SOAP(Simple Object Access Protocol )提供了标准的RPC方法调用Web Service。SOAP并不意味着Web Service一定要以对象的方式表示,你完全可以把你的Web Service写成一系列的C函数,并仍然使用SOAP进行调用。SOAP使用XML消息调用远程方法,这样Web服务可以通过HTTP协议的Post和Get方法与远程机器交互,而且,SOAP更加健壮和灵活易用。SOAP是Web服务最重要的协议。 用于Web发现的其他技术,如UDDI和WSDL,也是通过XML和SOAP技术紧密结合实现的。

  9. 8.1.2 Web服务的体系结构 • Web服务体系结构是基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。交互通过发布、查找和绑定三种操作来完成。这些角色和操作一起作用于Web Services构件。 • 服务提供者( Service Provider)。从企业角度看它是服务的所有者,从体系结构看它是提供服务的平台。 • 服务请求者(Service Requester)。从企业角度看它是指需要请求特定功能的企业,从体系结构看它是查找和调用服务的客户端应用程序。 • 服务注册中心(Service Registry)。

  10. 8.1.2 Web服务的体系结构

  11. 8.1.3 构建ASP .NET Web服务 • 使用ASP .NET创建Web服务需要三个步骤: • (1) 创建.asmx文件。 • (2) 在文件中用标签声明此文件用于Web服务。 • (3) 定义Web Service Method把Web Service的功能暴露给用户。

  12. 8.1.3 构建ASP .NET Web服务 • (1)首先,打开Visual Studio.NET,选择【文件】│【新建】│【项目】命令,在弹出的对话框的语言中选择“Visual C# 项目”,在对话框的“模板”中选择“ASP.NET Web服务”。然后在“位置”处输入Web服务名字和VS.NET创建Web服务所在的虚拟目录的位置。将项目名称设置为slmWeb,如图8-2所示。

  13. 8.1.3 构建ASP .NET Web服务

  14. 8.1.3 构建ASP .NET Web服务 • 单击【确定】按钮后,VS.NET就开始帮助建立新项目。项目建好后将出现一个默认的Service文件Service.asmx,如书上第181页,图8-3所示的界面。

  15. 8.1.3 构建ASP .NET Web服务

  16. 8.1.3 构建ASP .NET Web服务 • 我们所得到的Web服务将默认包含以下文件: • Service.asmx:包含Web Service页面访问点和代码的引用,以及.cs和.resx文件。 • Web.config:这是一个XML格式的文件,他包含了系统资源的配置信息。 • slmWeb.csproj:它是该文件的项目文件,包含项目的配置和生成信息。 • slmWeb.vsdisco:这是一个XML格式的文件,在XML Web Services中用于发现进程使用的信息。 • (3)单击Service.cs进入代码视图界面,如图8-4所示。

  17. 8.1.3 构建ASP .NET Web服务

  18. 8.1.3 构建ASP .NET Web服务 • 可以看出,在创建项目的过程中,VS.NET已经自动为用户创建好了代码框架。下面就来分析一下该框架,先列出所用已生成的Service.cs代码: • using System; • using System.Web; • using System.Collections; • using System.Web.Services; • using System.Web.Services.Protocols; • /// <summary> • /// WebService 的摘要说明 • /// </summary> • [WebService(Namespace = "http://tempuri.org/")]

  19. 8.1.3 构建ASP .NET Web服务 • [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] • public class WebService : System.Web.Services.WebService { • public WebService () { • //如果使用设计的组件,请取消注释以下行 • //InitializeComponent(); • } • [WebMethod] • public string HelloWorld() { • return "Hello World"; • } • }

  20. 8.1.3 构建ASP .NET Web服务 • 以上这段代码现列出了该项目所需要引用的名字空间,“[WebService(Namespace = "http://tempuri.org/")]”这个网站里面包含System.Web和System.Web.Services等,显然对于开发Web服务来说,这些都是必须的。然后就是完成对Web Services类的实例化工作,其中一些代码是Web服务设计必须的,这些不需要大家深入理解。在代码的后面部分,提供了一个“Hello World”Web服务实例代码,默认是被注释掉的。

  21. 8.1.3 构建ASP .NET Web服务 • 可以看出,普通的方法通过添加WebMethod属性就转变成Web的方法。可以先去掉注释看一下“Hello World”Web服务的运行情况。 • 一旦创建并生成了Web服务,可以导航到Web服务页面的URL,通过Web浏览器方便地浏览服务内容。如图8-5所示。

  22. 8.1.3 构建ASP .NET Web服务

  23. 8.2 一个简单的Web服务的实例 • Web服务的数据服务是最常用的一种服务。在Web服务使用System.Data名字空间可以利用数据库系统提供数据服务。下面就要添加自己的定义的Web服务方法。和系统提供的Hello World方法类似,只需要增加一个WebMethod关键字,普通的方法就变成了Web服务方法。

  24. 8.2 一个简单的Web服务的实例 • [WebMethod] • public DataSet GetData(string TBName ) • { • string s =Server.MapPath ("student.mdb"); • string p ="Provider = Microsoft.Jet.OLEDB.4.0;Data source=" + s; • OleDbConnection MyConn = new OleDbConnection(p); • DataSet DS = new DataSet (); • string k = "select * from " + TBName ; • OleDbDataAdapter NComm = new OleDbDataAdapter (k,MyConn); • NComm.Fill (DS,TBName); • return DS; • }

  25. 8.2 一个简单的Web服务的实例 • 因为要调用数据库,所以需要在Service.cs文件前面添加代码“using System.Data.OleDb;”,然后创建Web服务方法,首先添加WebMethod关键字,然后开始方法内容的编写。这里定义了一个GetData方法,它接收一个TBName(表名)字符串,返回一个DataSet对象(内存放表中所有信息)。 • 该程序利用OleDb提供的方法读取了Access数据库“student.mdb”,并将查询的结果以结果集的方式返回。下面先来测试一下设计的Web服务的方法。点击运行窗口里面的函数“GetData”,出现输入参数“TBName”的界面,如图8-8所示。

  26. 8.2 一个简单的Web服务的实例

  27. 8.2 一个简单的Web服务的实例 • 在图8-8中的TBName后面的文本框中输入表名为“student”,此时单击“调用”按钮,就可以得到表“student”中的内容,如书中图8-9所示。

  28. 8.2 一个简单的Web服务的实例

  29. 8.3 访问Web Service • 创建好Web服务后,就可以把该服务注册到远程UDDI注册中心,服务请求者查询到该服务为自己需要的服务后,就可以查看相关WSDL说明并调用该服务。下面就来以消费者的角度来说明如何调用Web服务。

  30. 8.3 访问Web Service • 要进行Web服务调用,需要以下一些步骤: • 从UDDI注册中心查询到该Web服务; • 查看Web服务说明WSDL文档; • 生成代理类来调用Web服务; • 创建代理类实例并使用其方法。

  31. 8.3 访问Web Service • 首先假定要调用的Web服务为上一节构建好的Service.asmx服务。接下来在Default.aspx网页中调用这个web服务。步骤如下: • (1)首先要构建一个ASP.NET Web应用程序网站,命名为slmAppweb。如下图:

  32. 8.3 访问Web Service

  33. 8.3 访问Web Service • 然后在该网站中的Default.aspx中进行界面设计,这里需要添加一个Label控件,ID为“Label1”,Text为“表名”;一个TestBox控件,ID为“TBnametext”,一个Button控件,ID为“Button1”;如图8-11所示。

  34. 8.3 访问Web Service

  35. 8.3 访问Web Service 再添加一个GridView控件,ID为“gridweb”,如下图:

  36. 8.3 访问Web Service • 然后在项目中选择“项目” │“添加Web引用”命令。查找在上一节中定义好的那个Web服务。一般来说,需要在UDDI注册中心查询到该Web服务,如图8-13所示。

  37. 8.3 访问Web Service

  38. 8.3 访问Web Service 根据要求选择Web服务,这里选择“本地计算机上的Web服务”,这是系统开始查找Web服务文件,如下图:

  39. 8.3 访问Web Service 点击找到“http://localhost/slmWeb”的“Service.asmx”文件,则在地址栏URL中显示地址,出现如下图:

  40. 8.3 访问Web Service • 最后就要进行添加Web引用了。单击对话框右下角“添加引用”的按钮就可以完成Web服务的添加,同时VS自动生成Web服务代理类,并把它添加到应用程序。代理类提供Web服务的方法,把客户端请求打包为发送到服务器上的SOAP消息,并检索包含结果的响应。 • 添加Web引用后单击“解决方案资源管理器”按钮,可以看到已经添加进去的Web引用项“Service”,如图8-16所示。

  41. 8.3 访问Web Service

  42. 8.3 访问Web Service 随后要进行的就是后台代码Default.aspx.cs的编写工作。由于代理类已经由系统生成,在代码中创建该类的对象后就可以调用该Web服务提供的方法。双击Button1按钮,Default.aspx.cs代码设计如书中第187页所示,将其输入

  43. 8.3 访问Web Service 代码中,先创建一个代理类对象stu,然后就直接调用其方法stu.GetData,该方法需要一个String参数即表名TBName,这里是那个文本框输入的内容“TBnametext.Text”,这个是由DataSet类的对象来接收返回集,随后就可以完成GridView控件的数据绑定了。在Visual Studio.NET中运行该项目,可以得到如图8-17的运行结果。

  44. 8.3 访问Web Service

  45. 8.3 访问Web Service 在文本框中输入数据表名“student”,点击“确定”,结果如下:

  46. 8.3 访问Web Service 再添加一个GridView控件,ID为“gridweb”,如下图:

  47. 本 章 小 结 • 本章重点介绍Web服务的创建和使用。读者需要掌握如何创建Web服务,如何使用Web服务提供的方法和属性。掌握数据服务的创建和使用方法,以及如何实现远程方法的调用。

More Related