WebServices教程WebServices可以将应用程序转换为网络应用程序。通过使用WebServices,您的应用程序可以向全世界发布信息,或提供某项功能。WebServices可以被其他应用程序使用。通过WebServices,您的会计部门的Win2k服务器可以与IT供应商的UNIX服务器相连接。基本的WebServices平台是XML+HTTP。Webservices使用XML来编解码数据,并使用SOAP来传输数据。学习如何经由ASP.NET应用程序创建WebServices。在本教程中,我们把一个ASP.NET程序转换为了WebServices。WebServices可使您的应用程序成为Web应用程序。WebServices通过Web进行发布、查找和使用。您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解:•HTML•XML如果您希望首先学习这些项目,请在我们的首页访问这些教程。什么是WebServices?•WebServices是应用程序组件•WebServices使用开放协议进行通信•WebServices是独立的(self-contained)并可自我描述•WebServices可通过使用UDDI来发现•WebServices可被其他应用程序使用•XML是WebServices的基础它如何工作?基础的WebServices平台是XML+HTTP。HTTP协议是最常用的因特网协议。XML提供了一种可用于不同的平台和编程语言之间的语言。Webservices平台的元素:•SOAP(简易对象访问协议)•UDDI(通用描述、发现及整合)•WSDL(Webservices描述语言)我们会在本教程后面章节讲解这些主题。Webservices的未来请不要过早地期待太多!Webservices平台是简单的可共同操作的消息收发框架。它仍然缺少许多诸如安全和路由等重要的特性。但是,一旦SOAP变得更加高级,这些事项就会得到解决。Webservices有望使应用程序更加容易通信。几年前,Webservices的速度还没有快到让人们产生兴趣的程度。感谢主要的IT开发商近年来的努力,大多数的人们和企业拥有了宽带连接,并越来越多地使用Web。最重要的事情是协同工作由于所有主要的平台均可通过Web浏览器来访问Web,不同的平台可以借此进行交互。为了让这些平台协同工作,Web应用程序被开发了出来。Web应用程序是运行在Web上的简易应用程序。它们围绕Web浏览器标准被进行构建,几乎可被任何平台之上的任何浏览器来使用。Webservices把Web应用程序提升到了另外一个层面通过使用Webservices,您的应用程序可向全世界发布功能或消息。Webservices使用XML来编解码数据,并使用SOAP借由开放的协议来传输数据。通过Webservices,您的会计部门的Win2k服务器可与IT供应商的UNIX服务器进行连接。Webservices有两种类型的应用可重复使用的应用程序组件有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?Webservices可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。连接现有的软件通过为不同的应用程序提供一种链接其数据的途径,Webservices有助于解决协同工作的问题。通过使用Webservices,您可以在不同的应用程序与平台之间来交换数据。WebServices拥有三种基本的元素。它们是:SOAP、WSDL以及UDDI。什么是SOAP?基本的Webservices平台是XML+HTTP。•SOAP指简易对象访问协议•SOAP是一种通信协议•SOAP用于应用程序之间的通信•SOAP是一种用于发送消息的格式•SOAP被设计用来通过因特网进行通信•SOAP独立于平台•SOAP独立于语言•SOAP基于XML•SOAP很简单并可扩展•SOAP允许您绕过防火墙•SOAP将作为W3C标准来发展如需更多有关SOAP的知识,请访问我们的《SOAP教程》什么是WSDL?WSDL是基于XML的用于描述WebServices以及如何访问WebServices的语言。•WSDL指网络服务描述语言•WSDL使用XML编写•WSDL是一种XML文档•WSDL用于描述网络服务•WSDL也可用于定位网络服务•WSDL还不是W3C标准如需更多有关WSDL的知识,请访问我们的《WSDL教程》什么是UDDI?UDDI是一种目录服务,通过它,企业可注册并搜索Webservices。•UDDI指通用的描述、发现以及整合(UniversalDescription,DiscoveryandIntegration)。•UDDI是一种用于存储有关webservices的信息的目录。•UDDI是一种由WSDL描述的网络服务接口目录。•UDDI经由SOAP进行通迅。•UDDI被构建于Microsoft.NET平台之中。任何应用程序都可拥有WebService组件。WebServices的创建与编程语言的种类无关。一个实例:ASP.NETWebService在这个例子中,我们会使用ASP.NET来创建一个简单的WebService。%@WebServiceLanguage=VBClass=TempConvert%ImportsSystemImportsSystem.Web.ServicesPublicClassTempConvert:InheritsWebServiceWebMethod()PublicFunctionFahrenheitToCelsius(ByValFahrenheitAsInt16)AsInt16DimcelsiusAsInt16celsius=((((Fahrenheit)-32)/9)*5)ReturncelsiusEndFunctionWebMethod()PublicFunctionCelsiusToFahrenheit(ByValCelsiusAsInt16)AsInt16DimfahrenheitAsInt16fahrenheit=((((Celsius)*9)/5)+32)ReturnfahrenheitEndFunctionEndClass此文档是一个.asmx文件。这是用于XMLWebServices的ASP.NET文件扩展名。要运行这个例子,我们需要一个.NET服务器此文档中第一行表明这是一个WebService,由VB编写,其class名称是TempConvert。%@WebServiceLanguage=VBClass=TempConvert%接下来的代码行从.NET框架导入了命名空间System.Web.Services。ImportsSystemImportsSystem.Web.Services下面这一行定义TempConvert类是一个WebSerivce类:PublicClassTempConvert:InheritsWebService接下来的步骤是基础的VB编程。此应用程序有两个函数。一个把华氏度转换为摄氏度,而另一个把摄氏度转换为华氏度。与普通的应用程序唯一的不同是,此函数被定义为WebMethod。请在您希望其成为webservices的应用程序中使用WebMethod来标记函数。WebMethod()PublicFunctionFahrenheitToCelsius(ByValFahrenheitAsInt16)AsInt16DimcelsiusAsInt16celsius=((((Fahrenheit)-32)/9)*5)ReturncelsiusEndFunctionWebMethod()PublicFunctionCelsiusToFahrenheit(ByValCelsiusAsInt16)AsInt16DimfahrenheitAsInt16fahrenheit=((((Celsius)*9)/5)+32)ReturnfahrenheitEndFunction最后要做的事情是终止函数和类:EndFunctionEndClass假如您把此文件另存为.asmx文件,并发布于支持.NET的服务器上,那么您就拥有了第一个可工作的WebService。ASP.NET的自动化处理通过ASP.NET,你不必亲自编写WSDL和SOAP文档。如果您仔细研究我们的这个例子,您会发现ASP.NET会自动创建WSDL和SOAP请求。使用我们的ASP.NETWebService例子在上一节,我们创建了一个WebService的例子。请在此测试华氏度转换摄氏度函数:华氏度转换为摄氏度请在此测试摄氏度转换华氏度函数:摄氏度转换为华氏度这些函数会向您发送一个XML回答本测试使用HTTPPOST,会发送类似这样的XML响应:?xmlversion=1.0encoding=utf-8?shortxmlns=使用表单来访问WebService通过使用表单和HTTPPOST,您可以把webservice置于您的站点上,比如这样:华氏度转换为摄氏度:提交摄氏度转换为华氏度:提交您可以把webservice置于您的站点上您可以使用这些代码把webservice放置在您的站点上:formtarget=_blankaction='=POSTlabel华氏度转换为摄氏度:/labelpspaninputclass=frmInputtype=textsize=30name=Fahrenheit/spanspaninputtype=submitvalue=提交class=button/span/p/formformtarget=_blankaction='=POSTlabel摄氏度转换为华氏度:/labelpspaninputclass=frmInputtype=textsize=30name=Celsius/spanspaninputtype=submitvalue=提交class=button/span/p/formWebServices概要本教程已经向您讲解了如何把应用程序转换为网络应用程序.您已经学习了如何使用XML在应用程序间发送消息。您也学习了如何从应用程序导出某项功能(创建一个webservice)。您已经学习了WebServices,下一步呢?下一步您应当学习WSDL和SOAP。WSDLWSDL是基于XML的用来描述Webservices以及如何访问它们的一种语言。WSDL可描述webservice,连同用于webservice的消息格式和协议的细节。如果您希望学习更多有关WSDL的知识,请访问我们的《WSDL教程》。SOAPSOAP是一种使应用程序有能力通过HTTP交换信息的基于XML的简易协议。或者可以更简单地说:SOAP是一种用于访问webservice的协议。如果您希望学习更多有关SOAP的知识,请访问我们的《SOAP教程》。XmlWebService完全实例解析(一)最近闲来无事,想起blog很久没写新文章了,干脆来写个专题好了,想来想去,干脆写个有关webservice的示例文章吧.首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外