只有累積,沒有奇蹟

2018年8月17日 星期五

[筆記] 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
Web Services 入門(推薦)

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com