当前位置:首页 > 新手教程:手把手教你学Web Services 教程

新手教程:手把手教你学Web Services 教程

点击次数:1044  更新日期:2010-12-28
\n

Web Services可以将应用程序转换为网络应用程序。


\n

通过使用Web Services,您的应用程序可以向全世界发布信息,或提供某项功能。


\n

Web Services可以被其他应用程序使用。


\n

通过Web Services,您的会计部门的Win 2k服务器可以与IT供应商的UXIX服务器相连接。


\n

基本的Web Services平台是XML+HTTP。


\n

Web services使用XML来编解码数据,并使用SOAP来传输数据。


\n

学习如何经由ASP.NET应用程序创建Web Services。


\n

本教程将一个ASP.NET程序转换为一个Web Services。


\n

Web Services 简介


\n

\n

Web Services可使您的应用程序成为Web应用程序。


\n

Web Services被通过Web进行发布、查找和使用。


\n

\n

您应当具备的基础知识


\n

在继续学习之前,您需要对下面的知识有基本的了解:


\n

    \n
  • HTML
    \n
  • XML

\n

\n

什么是Web Services?


\n

    \n
  • Web Services是应用程序组件
    \n
  • Web Services使用开放协议进行通信
    \n
  • Web Services是独立的(self-contained)并可自我描述
    \n
  • Web Services可通过使用UDDI来发现
    \n
  • Web Services可被其他应用程序使用
    \n
  • XML是Web Services的基础

\n

\n

它如何工作?


\n

基础的Web Services平台是XML + HTTP。


\n

HTTP协议是最常用的因特网协议。


\n

XML提供了一种可被用于不同的平台和编程语言之间的语言。


\n

Web services平台的元素:


\n

    \n
  • SOAP (简易对象访问协议)
    \n
  • UDDI (通用描述、发现及整合)
    \n
  • WSDL (Web services描述语言)

\n

我们会在本教程后面章节讲解这些主题。


\n

\n

Web services的未来


\n

请不要过早地期待太多!


\n

Web services平台是简单的可共同操作的消息收发框架。它仍然缺少许多诸如安全和路由等重要的特性。但是,一旦SOAP变得更加高级,这些事项就会得到解决。


\n

Web services有望使应用程序更加容易通信。


\n

\n

Why Web Services?


\n

\n

几年前,Web services的速度还没有快到让人们产生兴趣的程度。


\n

感谢主要的IT开发商近年来的努力,大多数的人们和企业拥有了宽带连接,并越来越多地使用Web。


\n

\n

最重要的事情是协同工作


\n

由于所有主要的平台均可通过Web浏览器来访问Web,不同的平台可以借此进行交互。为了让这些平台协同工作,Web应用程序被开发了出来。


\n

Web应用程序是运行在Web上的简易应用程序。它们围绕Web浏览器标准被进行构建,几乎可被任何平台之上的任何浏览器来使用。


\n

\n

Web services把Web应用程序提升到了另外一个层面


\n

通过使用Web services,您的应用程序可向全世界发布功能或消息。


\n

Web services使用XML来编解码数据,并使用SOAP借由开放的协议来传输数据。


\n

通过Web services,您的会计部门的Win 2k服务器可与IT供应商的UNIX服务器进行连接。


\n

\n

Web services有两种类型的应用


\n

可重复使用的应用程序组件


\n

有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?


\n

Web services可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。


\n

比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。


\n

连接现有的软件


\n

通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。


\n

通过使用Web services,您可以在不同的应用和不同的平台之间来交换数据。


\n

\n

Web Services 平台元素


\n

\n

Web Services拥有三种基本的元素。


\n

它们是:SOAP、WSDL以及UDDI。


\n

\n

什么是SOAP?


\n

基本的Web services平台是XML + HTTP。


\n

    \n
  • SOAP指简易对象访问协议
    \n
  • SOAP是一种通信协议
    \n
  • SOAP用于应用程序之间的通信
    \n
  • SOAP是一种用于发送消息的格式
    \n
  • SOAP被设计用来通过因特网进行通信
    \n
  • SOAP独立于平台
    \n
  • SOAP独立于语言
    \n
  • SOAP基于XML
    \n
  • SOAP很简单并可扩展
    \n
  • SOAP运许您绕过防火墙
    \n
  • SOAP将被作为W3C标准来发展

\n

\n

什么是WSDL?


\n

WSDL是基于XML的用于描述Web Services以及如何访问Web Services的语言。


\n

    \n
  • WSDL指网络服务描述语言
    \n
  • WSDL使用XML编写
    \n
  • WSDL是一种XML文档
    \n
  • WSDL用于描述网络服务
    \n
  • WSDL也可用于定位网络服务
    \n
  • WSDL还不是W3C标准

\n

\n

什么是UDDI?


\n

UDDI是一种目录服务,通过它,企业可注册并搜索Web services。


\n

    \n
  • UDDI指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
    \n
  • UDDI是一种用于存储有关web services的信息的目录。
    \n
  • UDDI是一种由WSDL描述的网络服务接口目录。
    \n
  • UDDI经由SOAP进行通迅。
    \n
  • UDDI被构建于Microsoft .NET平台之中。

\n

\n

Web Service 实例


\n

\n

任何应用程序都可拥有Web Service组件。


\n

Web Services的创建与编程语言的种类无关。


\n

\n

一个实例:ASP.NET Web Service


\n

在这个例子中,我们会使用ASP.NET来创建一个简单的Web Service。

<%@ WebService Language=”VB” Class=”TempConvert” %>
\nImports System
\nImports System.Web.Services

\n

Public Class TempConvert :Inherits WebService
\n<WebMethod()> Public Function FahrenheitToCelsius
\n(ByVal Fahrenheit As Int16) As Int16
\n Dim celsius As Int16
\n celsius = ((((Fahrenheit) – 32) / 9) * 5)
\n Return celsius
\nEnd Function
\n<WebMethod()> Public Function CelsiusToFahrenheit
\n(ByVal Celsius As Int16) As Int16
\n Dim fahrenheit As Int16
\n fahrenheit = ((((Celsius) * 9) / 5) + 32)
\n Return fahrenheit
\nEnd Function
\nEnd Class
\n


\n

此文档是一个.asmx文件。这是用于XML Web Services的ASP.NET文件扩展名。


\n

\n

要运行这个例子,我们需要一个.NET服务器


\n

此文档中第一行表明这是一个Web Service,由VB编写,其class名称是”TempConvert”。

<%@ WebService Language=”VB” Class=”TempConvert” %>

\n

接下来的代码行从.NET框架导入了命名空间”System.Web.Services”。

Imports System
\nImports System.Web.Services

\n

下面这一行定义”TempConvert”类是一个WebSerivce类:

Public Class TempConvert :Inherits WebService

\n

接下来的步骤是基础的VB编程。此应用程序有两个函数。一个把华氏度转换为摄氏度,而另一个把摄氏度转换为华氏度。


\n

与普通的应用程序唯一的不同是,此函数被定义为”WebMethod”。


\n

请在您希望其成为web services的应用程序中使用”WebMethod”来标记函数。

<WebMethod()> Public Function FahrenheitToCelsius
\n(ByVal Fahrenheit As Int16) As Int16
\n Dim celsius As Int16
\n celsius = ((((Fahrenheit) – 32) / 9) * 5)
\n Return celsius
\nEnd Function
\n<WebMethod()> Public Function CelsiusToFahrenheit
\n(ByVal Celsius As Int16) As Int16
\n Dim fahrenheit As Int16
\n fahrenheit = ((((Celsius) * 9) / 5) + 32)
\n Return fahrenheit
\nEnd Function

\n

最后要做的事情是终止函数和类:

End Function
\nEnd Class

\n

假如您把此文件另存为.asmx文件,并发布于支持.NET的服务器上,那么您就拥有了第一个可工作的Web Service。


\n

\n

ASP.NET 的自动化处理


\n

通过ASP.NET,你不必亲自编写WSDL和SOAP文档。


\n

如果您仔细研究我们的这个例子,您会发现ASP.NET会自动创建WSDL和SOAP请求。


\n

\n

Web Service 使用


\n

\n

您可以把web service置于您的站点上


\n

您可以使用这些代码把web service放置在您的站点上:

<form target=”_blank”
\naction=’http://www.w3schools.com/webservices/tempconvert.asmx/FahrenheitToCelsius’
\nmethod=”POST”>
\n <label>华氏度转换为摄氏度:</label>
\n <p>

\n

<span>
\n <input class=”frmInput” type=”text” size=”30″ name=”Fahrenheit”>
\n </span>

\n

<span>
\n <input type=”submit” value=”提交” class=”button”>
\n </span>

\n

</p>
\n</form>
\n<form target=”_blank”
\naction=’http://www.webjx.com/webservices/tempconvert.asmx/CelsiusToFahrenheit’
\nmethod=”POST”>
\n <label>摄氏度转换为华氏度:</label>
\n <p>

\n

<span>
\n <input class=”frmInput” type=”text” size=”30″ name=”Celsius”>
\n </span>

\n

<span>
\n <input type=”submit” value=”提交” class=”button”>
\n </span>

\n

</p>
\n</form>


\n

\n已经学习了Web Services,下一步学习什么内容呢?
\n

Web Services 概要


\n

本教程已经向您讲解了如何把应用程序转换为网络应用程序.


\n

您已经学习了如何使用XML在应用程序间发送消息。


\n

您也学习了如何从应用程序导出某项功能(创建一个web service)。


\n

\n

您已经学习了Web Services,下一步呢?


\n

下一步您应当学习WSDL和SOAP。


\n

WSDL


\n

WSDL是基于XML的用来描述Web services以及如何访问它们的一种语言。


\n

WSDL可描述web service,连同用于web service的消息格式和协议的细节。


\n

SOAP


\n

SOAP是一种使应用程序有能力通过HTTP交互信息的基于XML的简易协议。


\n

或者可以更简单地说:SOAP是一种用于访问web service的协议。

\n