WebService理论.ppt

上传人:小飞机 文档编号:6523279 上传时间:2023-11-08 格式:PPT 页数:27 大小:1.59MB
返回 下载 相关 举报
WebService理论.ppt_第1页
第1页 / 共27页
WebService理论.ppt_第2页
第2页 / 共27页
WebService理论.ppt_第3页
第3页 / 共27页
WebService理论.ppt_第4页
第4页 / 共27页
WebService理论.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《WebService理论.ppt》由会员分享,可在线阅读,更多相关《WebService理论.ppt(27页珍藏版)》请在三一办公上搜索。

1、第4章 Web Service,课程回顾,本章内容,Web Service工作原理Web Service的优势Web Service的创建Web Service的发布Web Service的调用,本章目标,理解Web Service的工作原理能够使用VS.NET创建Web Service能够发布自己的Web Service能够在.NET程序中调用Web Service,1.Web Service的工作原理,1.1 Web Service是什么,WebService是基于网络的、分布式的模块化组件,Web Service技术组成,XML和XSD,SOAP,WSDL,XML是Web Service

2、平台中表示数据的基本格式;XSD作为其数据类型系统,简单对象访问协议以XML形式提供了一个简单、轻量的、用于在分散或分布环境中交换结构化和类型信息的机制,Web服务描述语言用XML文档来描述Web服务,1.2 Web Service 的工作原理,客户端阅读WSDL文档,以调用该Web Service根据WSDL描述文档,生成一个SOAP请求消息,发送到Web服务器Web服务器再把这些请求转发给Web Service请求处理器解析收到的SOAP请求,调用Web Service,然后再生成相应的SOAP应答Web服务器得到SOAP应答,通过HTTP应答的方式把它送回到客户端,1.3 Web Ser

3、vice的优势,Web Service软硬件平台无关性编程语言无关性部署、升级和维护Web服务简单Web服务使用者可以轻易实现多种数据、多种服务的聚合成本低数据不受防火墙阻挡,小结1,Web Service的工作原理是怎样的?Web Service有哪些优势?,2.创建Web Service,在VS.NET中创建Web Service分三步在解决方案中添加一个ASP.NET Web服务应用程序(或者现有的项目中添加“Web 服务”)编写服务方法生成Web服务项目,2.1 创建 Web Service,在VS.NET中创建Web Service有两种方式创建“ASP.NET Web服务应用程序”

4、在现有的Web项目(网站或Web应用程序)中添加一个或多个Web Service,asmx文件中包含服务类的链接,服务方法位于“/App_Code/WebService.cs”,创建 Web Service,Web服务都派生自命名空间下的WebService类,Web服务中的可以被客户调用的方法称为Web服务方法,必须是由WebMethod特性标识并且具有公共访问性,创建 Web Service,创建一个Web Service,生成验证码,WebMethodpublic byte GetValidateCodeImage(int len,ref string code)Graphics g=G

5、raphics.FromImage(bmp);int nlines=3;Pen pen=new Pen(Color.FromArgb(red 50,green 50,blue 50),2);for(int a=0;a nlines;a+)string strcode=“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567980”;for(int i=0;i len;i+)stream=new();/对图片进行正弦曲线波形扭曲bmp=WaveImage(bmp,false,4,2););code=result;/保存验证码字符串

6、byte imgbyte=stream.ToArray();stream.Close();return imgbyte;,绘制干扰线条,采用比背景略深的颜色,循环取得字符并绘制,保存图片到字节流,2.2 SOAP,SOAP是一种通信协议用于应用程序之间的通信是一种用于发送消息的格式被设计用来通过因特网进行通信独立于平台独立于语言基于 XML简单并可扩展允许绕过防火墙被作为 W3C 标准来发展,SOAP,SOAP请求和响应的消息结构:,SOAP请求消息,SOAP响应消息,一个SOAP请求或响应包括HTTP标头和一个标准的XML文档两部分,元素内是SOAP消息的详细信息,小结2,Web服务方法必须

7、满足哪两个条件?SOAP消息与HTTP和XML是什么关系?,3.发布 Web Service,3.1 WSDL,WSDL是一种描述Web服务或网络端点的基于XML的语言,查看WSDL文档,WSDL文档元素:Types:用来定义数据类型的嵌入的XML Schema Message:提供消息和消息传输的详细信息 portType:提供了具体协议与地址解析之间的桥梁 Binding:为元素或者操作提供协议信息 Service:为服务提供URI地址信息,WSDL,WSDL文档包含6部分定义部分:元素的WSDL的根元素类型部分:是一个嵌入的XML Schema,Web服务方法及参数都在这里定义消息部分:

8、元素包含了Web服务方法及参数端口类型部分:部分是操作的集合,此元素在元素中被引用绑定部分:绑定到具体的SOAP服务名,连接到portType部分服务部分:service部分包含端口或者端点的集合。端口提供了地址信息或者URI,3.2 部署和测试Web Service,在IIS中部署Web Service,在默认站点创建虚拟目录,指向Web Service项目,设置应用程序名,设置权限,在浏览器中测试,小结3,WSDL文档由哪几部分组成?部署Web Service在IIS中,关键步骤是哪几步?,4.调用 Web Service,4.1 Web Service的发现机制,Web服务发现机制是定位

9、并查询Web服务的过程。通过这一机制,Web服务的客户就会知道一个Web服务的存在、功能以及如何正确地与之进行交互,发现机制中的XML文件.discomap文件.disco文件,Discomap文件通过url属性指向disco文件和wsdl文件的位置,disco文件是一个标准的XML文件,其中元素的ref属性设置了WSDL文档的位置,Web Service的发现机制,UDDI,统一描述、发现和集成,提供了一种独立于平台的数据库,其中包含Web服务的分类目录。允许用户更加方便地查找和消费Web Service,UDDI请求中心和注册中心同步镜像,4.2 调用 Web Service,通过客户端代

10、理类调用Web Service 添加Web引用创建Web服务实例调用Web服务方法,/实例化客户端代理类 Stanford.Service1 imgsvr=new Stanford.Service1();string code=;/调用Web服务方法byte data=imgsvr.GetValidateCodeImage(5,ref code);/保存验证码字符串到SessionSessioncode=code;/输出图片 Response.OutputStream.Write(data,0,data.Length);,生成本地客户端代理类调用Web Service,调用 Web Servi

11、ce,动态调用Web Service,动态调用Web Service可以通过以下5个步骤实现从目标URL下载WSDL 数据使用ServiceDescription创建和格式化 WSDL 文档文件使用ServiceDescriptionImporter 创建客户端代理类使用CodeDom 动态创建客户端代理类程序集利用反射调用相关Web服务方法,动态调用Web Service使用3个类ServiceDescriptionServiceDescriptionImporterCodeDom,调用 Web Service,通过动态调用Web Service来实现天气预报查询,浏览天气预报服务的WSDL

12、文档,设计Web窗体显示主要城市的天气预报,调用Web Service显示的上海市3天内的天气情况,调用 Web Service,WebClient web=new WebClient();Stream stream=);,第一步:使用WebClient下载WSDL文档,ServiceDescription description=ServiceDescription.Read(stream);,第二步:创建和格式化 WSDL 文档,ServiceDescriptionImporter importer=new ServiceDescriptionImporter();importer.Pro

13、tocolName=Soap;/指定访问协议。importer.Style=ServiceDescriptionImportStyle.Client;/生成客户端代理importer.CodeGenerationOptions=CodeGenerationOptions.GenerateProperties|CodeGenerationOptions.GenerateNewAsync;importer.AddServiceDescription(description,null,null);/添加 WSDL 文档,第三步:创建客户端代理代理类,/为代理类添加命名空间,缺省为全局空间CodeNa

14、mespace nmspace=new CodeNamespace();CodeCompileUnit unit=new CodeCompileUnit();unit.Namespaces.Add(nmspace);ServiceDescriptionImportWarnings warning=importer.Import(nmspace,unit);CodeDomProvider provider=CodeDomProvider.CreateProvider(CSharp);CompilerParameters parameter=new CompilerParameters();par

15、ameter.GenerateExecutable=false;parameter.OutputAssembly=weather.dll;/可以指定任何文件名。parameter.ReferencedAssemblies.Add(System.dll););););CompilerResults result=provider.CompileAssemblyFromDom(parameter,unit);,第四步:使用 CodeDom 编译客户端代理类,Assembly asm=Assembly.LoadFrom(weather.dll);Type t=asm.GetType(WeatherW

16、ebService);object o=Activator.CreateInstance(t);MethodInfo method=t.GetMethod(getSupportCity);if(!IsPostBack)string citys=(string)method.Invoke(o,new object);foreach(string city in citys)City.Items.Add(new ListItem(city);,第五步:通过反射调用编译出的程序集文件,动态调用Web服务方法,小结4,查找和定位Web Service主要依赖哪两个文件?UDDI是一种什么机制?在VS.

17、NET中调用Web Service有哪几种方式?,本章总结,Web Service具有以下优势:平台无关性编程语言无关性部署、升级和维护Web服务简单性对于Web服务使用者来说,可以轻易实现多种数据、多种服务的聚合成本低数据不受防火墙阻挡.NET中创建的Web Service,都派生自类Web服务方法都必须满足两个条件:由WebMethod特性标识、public访问修饰符简单对象访问协议(SOAP)是基于XML的轻量级协议,通过它,可以实现在Internet上任意位置调用已发布的Web ServiceWSDL与SOAP和UDDI(统一描述、发现和集成机制)一起工作,支持Web服务与Internet上的其他服务、应用程序和设备交互作用。UDDI提供了发布和定位Web服务的功能,WSDL描述了Web服务,SOAP为Web服务提供了传输消息在.NET各种类型的应用程序中,都可以通过“添加Web引用”的方式创建客户端代理类来调用Web Service,也可以通过动态生成客户端代理类来调用,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号