教程-XML Web Service.ppt_第1页
教程-XML Web Service.ppt_第2页
教程-XML Web Service.ppt_第3页
教程-XML Web Service.ppt_第4页
教程-XML Web Service.ppt_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XMLWebService教程,引言,运行在不同的环境下,大量的组件如何能相互协作?互相使用?复用性.版本如何更新而不需重新编译。各类组件用不同的技术开发,用不同的语言编写,怎样才能理解组件确保正确的组装.分布式的应用?,1.什么是WebService,当开发网络应用程序时,需要考虑设计不包含用户界面的用于网络通讯的逻辑组件,有以下几种选择:Socket,DCOM(COM+),.NET远程调用,Web服务器等.通过WebService,客户端和服务器能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么,不需要这些要求特定组件技术或对象调用约定,在客户端和服务器之间所做的唯一假设就是接收方可以理解收到的消息。,1.什么是WebServices?,WebServices是应用程序组件WebServices使用开放HTTP协议进行通信WebServices是独立的(self-contained)并可自我描述WebServices可通过使用UDDI来发现WebServices可被其他应用程序使用,您的应用程序可向全世界发布功能或消息。XML是WebServices的基础,2.XMLWebservices基础结构,目录发现UDDI(UniversalDescription,DiscoveryandIntegration)它提供了在Web上描述并发现商业服务的框架。UDDI通过服务注册,以及使用SOAP访问这些注册信息的约定来实现其目标。UDDI注册使用的核心信息模型由XMLSchema定义WSDL(Web服务描述语言)连网形式:HTTP,2.1基础结构组件,XMLWebservices生存期,通信过程,2.2下面描述调用XMLWebservices时发生的事件序列:客户端创建XMLWebservices代理类的一个新实例。该对象驻留在客户端所在的同一台计算机上。客户端调用代理类上的方法。客户端计算机上的基础结构将XMLWebservices方法的参数序列化为SOAP消息,并通过网络将它发送给XMLWebservices。基础结构接收SOAP消息并反序列化该XML。它创建实现XMLWebservices的类的实例并调用XMLWebservices方法,同时将反序列化的XML作为参数传入。XMLWebservices方法执行其代码,最终会设置返回值和任何输出参数。Web服务器上的基础结构将返回值和输出参数序列化为SOAP消息,并通过网络将它发送回客户端。客户端计算机上的XMLWebservices基础结构接收该SOAP消息,将XML反序列化为返回值和任意输出参数,并将它们传递给代理类的实例。客户端接收返回值和任何输出参数。,访问WebService,3.1在HTML表单中访问WebService3.2.使用VS.NET访问Webservices方法,3.1在HTML表单中访问WebService,在HTML表单中访问WebService的一种方法是使用IE的行为组件webservice.htc,示例:华氏度摄氏度互相转换。界面如下,华氏度:,摄氏度:,variCallID=newArray();functioninit()obody.useService(tempconvert.asmx?WSDL,TempConvert);functiononsubmit1()iCallID0=obody.TempConvert.callService(myCallBackFunction,FahrenheitToCelsius,Fahrenheit.value);functiononsubmit2()iCallID1=obody.TempConvert.callService(myCallBackFunction,CelsiusToFahrenheit,Celsius.value);functionmyCallBackFunction(res)if(res.id=iCallID0)Celsius.value=res.value;elseif(res.id=iCallID1)Fahrenheit.value=res.value;华氏度:onclick=onsubmit1()摄氏度:,.NET的WebService的扩展名.asmx,3.2.使用VS.NET访问Webservices方法,1。添加Web引用,生成XMLWebservices客户端代理类.1)在解决方案资源管理器中打开快捷菜单/添加Web引用2)定位Web服务的URL2。在客户端代码中引用该代理类名空间,创建该代理类的实例3。调用代理类方法,与XMLWebservices通信。,同步调用,例PrimeFactorizerpf=newPrimeFactorizer();/实例化Longresults=pf.Factorize(ar);/调用方法获得结果异步调用,例IAsyncResultar=pf.BeginFactorize(factorizableNum,null,null);/等待异步调用完成ar.AsyncWaitHandle.WaitOne();/Get完成结果。longresults=pf.EndFactorize(ar);,4.使用ASP.NET生成XMLWebservices,创建ASP.NETWeb服务项目在“文件”菜单上,选择“新建网站”。在“新建网站”对话框中,选择“ASP.NETWeb服务”图标。输入要在其中开发XMLWebservices的Web服务器地址,并指定Web服务名,如“http:/MyServer/TempConvert1”。默认情况下,项目使用本地计算机“http:/localhost”。,实现XMLWebservices,例:,System.Web.Services.WebService(Namespace=/,Description=Atemperatureconversionservice.)publicclassTempConvert1:System.Web.Services.WebService/在Service类中,添加以下代码以声明ConvertTemperature函数:WebMethod(Description=Thismethodconvertsatemperaturein+degreesFahrenheittoatemperatureindegreesCelsius.)publicdoubleConvertTemperature(doubledFahrenheit)return(dFahrenheit-32)*5)/9;,调试XMLWebservices,添加一个断点。在“调试”菜单上单击“启动”,将在IE中打开.asmx文件时,XMLWebservices会返回一个服务帮助页.点击你的服务,输入参数,执行停止在断点.执行结果显示xml页,如类似100,部署XMLWebservices,使用Web安装项目部署XMLWebservices通过复制项目来部署XMLWebservices,XMLWebservices的代码,在ASP.NET中XMLWebservices由两部分组成1。.asmx.cs文件-C#代码源文件2.asmx文件示例:一个XMLWebservices:Service1,.asmx.cs文件,含一个方法:HelloWorldnamespaceWebService1WebService(Namespace=/)publicclassService1:System.Web.Services.WebServiceWebMethodpublicstringHelloWorld()returnHelloWorld;示例中使用WebService特性应用于实现XMLWebservices的类Service1,使用WebMethod特性应用于实现Service1Webservices的一个方法HelloWorld()。,.asmx文件它是XMLWebservices的可寻址入口点文本文件,它包含WebService处理指令,引用预编译的程序集中的代码、代码隐藏文件或包含于.asmx文件本身的代码。示例:一个XMLWebservices的.asmx文件,System.Web.Services.WebService类,ASP.NET创建的XMLWebservices的类从WebService类派生,从而获得对公共ASP.NET对象(例如Application、Session、User和Context)的直接访问。WebService特征:每一XMLWebservices都需要唯一的命名空间,以便客户端应用程序在可能使用相同方法名称的XMLWebservices之间进行区分。你它在使其被公共使用之前可修改此默认命名空间。,WebService(Namespace=,WebMethod特性实现XMLWebservices类的方法不会自动拥有Web通信的功能,要将方法作为XMLWebservices的一部分公开,您必须将WebMethod特性放置在要公开的每个公共方法的声明之前。常用的属性有description属性EnableSession属性:启用XMLWebservices方法的会话状态。TransactionOption属性:使XMLWebservices方法可以作为事务的根对象参与。,你的Webservices类的方法,publicclassService1:System.Web.Services.WebServiceWebMethod(EnableSession=true)publicdoubleConvertTemperature(doubledFahrenheit)SessionConversions=(int)SessionConversions+1;return(dFahrenheit-32)*5)/9;,5.XMLWebservices的安全,身份验证授权Windows身份验证1。使用IIS配置XMLWebservices以使用Windows身份验证,在IIS中的.asmx文件上为该XMLWebservices设置权限。2.修改配置文件,web.config文件以使用Windows身份验证。,新建XMLWebService后默认的设置已是“Windows”。,3.身份验证代码,可使用WebServiceUser属性,接受用户提供的凭据publicclassUtil:WebServiceWebMethod(Description=ObtainstheUserName,EnableSession=false)publicstringGetUserName()returnUser.Identity.Name;,客户证书身份验证,“客户证书”提供了一种安全的身份验证机制,这是因为它要求客户端将一个标识该客户端的电子文档使用SSL连接发送到Web服务器,该电子文档叫做客户证书。为客户证书身份验证配置XMLWebservices安装SSL。配置Web应用程序以接受客户证书。使用ClientCertificates属性修改配置文件Web.config,为XMLWebservices指定Windows身份验证。使用客户证书传递其凭据到XMLWebservices,例,/实例化xmlWebservices代理类如BankSessionBankSessionbank=newBankSession();/装客户证书文件X509Certificatex509=X509Certificate.CreateFromCertFile(c:user.cer);/添加客户证书到代理类的ClientCertificates属性bank.ClientCertificates.Add(x509);/调用Webservices方法(该方法需要客户证书身份验证)bank.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论