[筆記] Web Service 概述

  • 145641
  • 0
  • HTTP
  • 2011-08-29

[筆記] Web Service 概述

“Web Services是一種軟體服務,它透過Web通訊協定及資料格式的開放式標準(例如 HTTP、XML 及 SOAP等)來為其他應用程式或異質系統提供服務,或進行資料交換” From 資策會

Web Service 是以Web的標準為基礎,其中最基本的是HTTP+XML。Web Service 由四個核心元件所組成,分別是XML、SOAP、WSDL和UDDI,如下圖所示
UDDI:Universal Description, Discovery and Integration
WSDL:Web Services Description Language
SOAP:Simple Object Access Protocol
XML&HTTP

什麼是Web Service

“Web Services是一種軟體服務,它透過Web通訊協定及資料格式的開放式標準(例如 HTTP、XML 及 SOAP等)來為其他應用程式或異質系統提供服務,或進行資料交換” From 資策會

舉例來說,假設今天要檢查輸入資料e­-mail的格式正確性(正確、可以用的e-mail格式,如abc@def.ghi就不是合法的e-mail格式),可以在專案中加入Web參考,參考http://www.webservicex.com/ValidateEmail.asmx?WSDL,呼叫Web Service使用其中IsVaildEmail方法,來檢查e-mail的正確性。網路上有提供很多免費的Web Service可以使用,詳細可以參考 xmethods

 

Web service 核心元件

Web Service 是以Web的標準為基礎,其中最基本的是HTTP+XML。Web Service 由四個核心元件所組成,分別是XML、SOAP、WSDL和UDDI,如下圖所示

Web service

 

UDDIUniversal Description, Discovery and Integration

統一描述、發現和集成的縮寫,它是一個基於XML的跨平台的描述規範,可以使世界範圍內的企業在網際網路上發布自己所提供的服務– UDDI @ wiki

由WS-I組織所定義的登錄服務技術,企業可以使用它對Web Service註冊與搜尋。也可以透過此服務找到其他公司的提供的Web Service服務。

WSDLWeb Services Description Language

描述Web服務發布的XML格式 – WSDL @ wiki

描述Web Service。敘述服務所提供的項目或方法,以及使用者如何與Web Service溝通及互動,哪些方法可以呼叫?溝通時所需要使用的參數、參數格式…等。WSDL也是以XML來定義。

SOAPSimple Object Access Protocol

簡單物件存取協定。是一種標準化的通訊規範,主要用於Web Service服務中 – SOAP @ wiki

是一個簡單的基於 XML的協議,透過標準的通訊協定 SOAP 作為溝通管道,與 Web Service進行溝通,並使用所提供的服務。

XML&HTTP

讓不同程式透過HTTP通訊協定,以XML格式互相交換彼此的資料,使其與程式語言、平台和硬體無關,實現跨平台、跨語言、跨Internet的整合目的。

 

Web service 基礎の結構

Architecture

以下為參考MSDN XML Web Service概論

  • 目錄
    XML Web Service 目錄提供尋找其他組織所提供之 XML Web Service 的中心位置。如 UDDI 登錄這類的 XML Web Service 目錄會擔任這個角色。XML Web Service 用戶端不一定會參考 XML Web Service 的目錄。
  • 探索
    XML Web Service 探索是尋找或探索一或多份相關文件的處理序,這些文件會使用 Web 服務描述語言 (WSDL) 來描述特定的 XML Web Service。DISCO 規格會定義尋找服務描述的演算法。如果 XML Web Service 用戶端知道服務描述的位置,則可以略過探索處理序。
  • 描述
    為了讓人瞭解如何與特定 XML Web Service 互動,您必須提供服務描述來定義 XML Web Service 所支援的互動方式。XML Web Service 用戶端必須知道如何與 XML Web Service 互動,才能使用它。
  • Wire格式
    為了達到通用通訊的目的,XML Web Service 會使用開放式 Wire 格式進行通訊,這些格式是任何支援最常見 Web 標準的系統(如HTTP POST和HTTP GET標準通訊協定),均可理解的通訊協定。SOAP 是用於 XML Web Service 通訊的關鍵通訊協定。

 

Web service 運作の方式

以下描述Web Service所發生的事件順序:

  1. 使用者透過瀏覽器瀏覽網頁,執行Client端應用程式(.aspx page),會建立Web Service Proxy類別的新執行個體,並(invokes)叫用Proxy上的方法。
  2. 使用者Proxy Object物件將參數序列化(serializes)成SOAP訊息(XML格式),並透過網路將SOAP訊息傳送到Web Service。
  3. Web Service 收到後,還原序列化(deserializes)接收到的SOAP訊息。並建立實做相關類別執行個體,叫用對應的方法,傳入還原序列化後的XML當作參數,並執行其程式碼,最後設定傳回值、以及輸出參數。
  4. Web Service Object將其傳回值序列化(serializes)成SOAP訊息,並透過網路將其回傳給使用者。
  5. 使用者電腦接收到Web Service的XML SOAP訊息後,還原序列化(deserializes)接收到的XML資料,取得傳回值,傳給使用者Proxy Object的執行個體
  6. 使用者收到執行後的傳回值資料。

PS:運作方式內容有做修正,感謝小朱大的熱心提醒!

 

Web service 使用方式

有關Web Service 使用方法在網路上有很多前輩有分享,這裡就不在說明(因為寫的沒有別人好,就不獻醜了 XD)

 

補充

有關Web Service 還有很多相關的議題與資訊,先在此列出來,方便之後有時間在研究

 

參考

此篇文章是上網查詢自己整理的結果,如果內容有錯誤的地方,麻煩各位高手給予小弟指導

如果覺得此篇文章不錯,請幫忙點選「我要推薦」;讓我有持續努力的動力,謝謝 :D

.NET Web Services Concepts(推薦)

.NET 研究室專欄:Web services 之規劃策略與設計模式(推薦)

Web Services介紹

Web Service的應用與省思

Web服務 @ wiki

Web Services 简介

Web Services 入門(推薦)

System.Web.Services 命名空間

[Architecture] 孰輕孰重?Web Service vs. REST APIs