跳至內容

Web services

維基教科書,自由的教學讀本

Web Services 可以將應用程式轉換為網絡應用程式,以便於您的應用程式可以向全世界發布信息,或提供某項功能 基本的 Web Services 平台是 XML+HTTP。

Web Services 簡介

[編輯]

Web Services 可使您的應用程式成為 Web 應用程式。

Web Services 通過 Web 進行發布、查找和使用。

您應當具備的基礎知識

[編輯]

在繼續學習之前,您需要對下面的知識有基本的了解:

  • HTML
  • XML

什麼是Web Services

[編輯]
  • Web Services 是應用程式組件
  • Web Services 使用開放協議進行通信
  • Web Services 是獨立的(self-contained)並可自我描述
  • Web Services 可通過使用UDDI來發現
  • Web Services 可被其他應用程式使用
  • XML 是 Web Services 的基礎

它如何工作

[編輯]

基礎的 Web Services 平台是 XML + HTTP。XML 提供了一種可用於不同的平台和程式語言之間的語言。HTTP 協議是最常用的互聯網協議。Web services 平台的元素:

  • SOAP (簡易對象訪問協議)
  • UDDI (通用描述、發現及整合)
  • WSDL (Web services 描述語言)

Web Services 為什麼使用它

[編輯]

早期,Web services 的發展速度還沒有讓人們對它產生興趣。

互操作性具有最高優先級

[編輯]

由於所有主要的平台均可通過 Web 瀏覽器來訪問 Web,不同的平台可以藉此進行交互。為了讓這些平台協同工作,Web 應用程式被開發了出來。
Web 應用程式是運行在 Web 上的簡易應用程式。它們圍繞 Web 瀏覽器標準被進行構建,幾乎可被任何平台之上的任何瀏覽器來使用。

Web services 把 Web 應用程式提升到了另外一個層面

[編輯]

通過使用 Web services,您的應用程式可向全世界發布功能或消息。
Web services 使用 XML 來編解碼數據,並使用 SOAP 藉由開放的協議來傳輸數據。
通過 Web services,您的會計部門的 Win 2k 伺服器可與 IT 供應商的 UNIX 伺服器進行連接。

Web services 有兩種類型的應用

[編輯]

重複使用的應用程式組件
有一些功能是不同的應用程式常常會用到的。 那麼為什麼要周而復始地開發它們呢?
Web services 可以把應用程式組件作為服務來提供,比如匯率轉換、天氣預報或者甚至是語言翻譯等等。
比較理想的情況是,每種應用程式組件只有一個最優秀的版本,這樣任何人都可以在其應用程式中使用它。
連接現有的軟件
通過為不同的應用程式提供一種連結其數據的途徑,Web services有助於解決協同工作的問題。
通過使用 Web services,您可以在不同的應用程式與平台之間來交換數據。

Web Services 平台元素

[編輯]

Web Services 擁有三種基本的元素:SOAP、WSDL 以及 UDDI。

什麼是 SOAP

[編輯]

SOAP是一個基於XML的協議,讓應用程式通過HTTP交換信息。
或更簡單:SOAP是一種用於訪問Web服務的協議。

  • SOAP 指簡易對象訪問協議
  • SOAP 是一種通信協議
  • SOAP 用於應用程式之間的通信
  • SOAP 是一種用於發送消息的格式
  • SOAP 被設計用來通過互聯網進行通信
  • SOAP 獨立於平台
  • SOAP 獨立於語言
  • SOAP 基於 XML
  • SOAP 很簡單並可擴展
  • SOAP 允許您繞過防火牆
  • SOAP 將作為 W3C 標準來發展

什麼是 WSDL

[編輯]

WSDL 是基於 XML 的用於描述 Web Services 以及如何訪問 Web Services 的語言。

  • WSDL 指網絡服務描述語言
  • WSDL 使用 XML 編寫
  • WSDL 是一種 XML 文檔
  • WSDL 用於描述網絡服務
  • WSDL 也可用於定位網絡服務
  • WSDL 還不是 W3C 標準

什麼是UDDI

[編輯]

UDDI 是一種目錄服務,通過它,企業可註冊並搜索 Web services。

  • UDDI 指通用的描述、發現以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一種用於存儲有關 web services 的信息的目錄。
  • UDDI 是一種由 WSDL 描述的網絡服務接口目錄。
  • UDDI 經由 SOAP 進行通迅。
  • UDDI 被構建於 Microsoft .NET 平台之中。

Web Services 實例

[編輯]

任何應用程式都可擁有 Web Service 組件。
Web Services 的創建與程式語言的種類無關。

一個 Web Service 實例

[編輯]

在這個例子中,我們會使用 ASP.NET 來創建一個簡單的 Web Service。

<%@ WebService Language="VB" Class="TempConvert" %><br />

Imports System<br />
Imports System.Web.Services<br />

Public Class TempConvert :Inherits WebService<br />

<WebMethod()> Public Function FahrenheitToCelsius<br />
(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

end class

ASP.NET 的自動化處理

[編輯]

通過 ASP.NET,你不必親自編寫 WSDL 和 SOAP 文檔。 如果您仔細研究我們的這個例子,您會發現 ASP.NET 會自動創建 WSDL 和 SOAP 請求。

參考資料

[編輯]

www.44lan.cn/lan_web/webservice/