1. 程式人生 > >WebService之工作原理 一

WebService之工作原理 一

一、Web Service基本概念


Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟體服務,使用WSDL檔案進行說明,並通過UDDI進行註冊。
XML:(Extensible Markup Language)擴充套件型可標記語言。面向短期的臨時資料處理、面向全球資訊網絡,是Soap的基礎。

Soap:(Simple Object Access Protocol)簡單物件存取協議。是XML Web Service 的通訊協議。當用戶通過UDDI找到你的WSDL描述文件後,他通過可以SOAP呼叫你建立的Web服務中的一個或多個操作。SOAP是XML文件形式的呼叫方法的規範,它可以支援不同的底層介面,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 檔案是一個 XML 文件,用於說明一組 SOAP 訊息以及如何交換這些訊息。大多數情況下由軟體自動生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一個主要針對Web服務供應商和使用者的新專案。在使用者能夠呼叫Web服務之前,必須確定這個服務內包含哪些商務方法,找到被呼叫的介面定義,還要在服務端來編制軟體,UDDI是一種根據描述文件來引導系統查詢相應服務的機制。UDDI利用SOAP訊息機制(標準的XML/HTTP)來發布,編輯,瀏覽以及查詢註冊資訊。它採用XML格式來封裝各種不同型別的資料,並且傳送到註冊中心或者由註冊中心來返回需要的資料。

簡單說: WSDL、SOAP和UDDI 一起工作,支援WebService與Internet上的其他服務、應用程式和裝置互動作用。UDDI提供了釋出和
定位Web服務功能,WSDL描述了Web服務,SOAP服務提供了傳輸訊息。


二、Web Service 優勢:

1. 平臺無關性。任何平臺都可以使用WebService,它圍繞Web瀏覽器標準被進行構建,不同的平臺可以藉此進行互動。 2. 程式語言無關係。基於XML,XML本身與平臺無關,使用XSD作為資料型別系統,不論用什麼語言編寫,所有資料型別都會被轉換為XSD,只需要遵守WebService的統一標準即可。 3. 部署、升級和維護Web服務簡單、方便。 4. 實現多資料、多服務的聚合 5. 成本低 6. 不受防火牆影響。使用SOAP協議通訊,封裝了XML格式的資料,以ASCII文字的方式傳輸,而非二進位制,除錯方便,而且可以使資料容易的通過防火牆,不需要單獨開通訊埠。

三、呼叫原理

1)WebService簡要說明

圖一: WebService的簡要表示


2)Webservice 架構說明:                        圖二: 基本的WebService架構流程圖      實現一個完整的Web服務包括以下步驟:

◆ Web服務提供者設計實現Web服務,並將除錯正確後的Web服務通過Web服務中介者釋出,並在UDDI註冊中心註冊; (釋出)

◆ Web服務請求者向Web服務中介者請求特定的服務,中介者根據請求查詢UDDI註冊中心,為請求者尋找滿足請求的服務; (發現)

◆ Web服務中介者向Web服務請求者返回滿足條件的Web服務描述資訊,該描述資訊用WSDL寫成,各種支援Web服務的機器都能閱讀;(發現)

◆ 利用從Web服務中介者返回的描述資訊生成相應的SOAP訊息,傳送給Web服務提供者,以實現Web服務的呼叫;(繫結)

◆ Web服務提供者按SOAP訊息執行相應的Web服務,並將服務結果返回給Web服務請求者。(繫結)


3)WebService 呼叫流程說明:
 

圖三: 細節步驟流程圖

上圖呈現了 WebService 的整個原理流程 :

1.       Client 有需要,想呼叫一個服務,可以去 UDDI Registry 上查詢相關服務。

2.       UDDI 上記錄了某個一個叫做 Web Server A 的伺服器能提供這樣的服務。

3.       Client 去 Web Server A, 詢問確切的呼叫方法(一般就是URL訪問)。

4.       Web Server A 看到 Client 提出的“確切方法查詢”之後, 返回給它一個 WSDL 描述的 xml 文件,裡面記錄他能提供的各類方法介面 及其引數.

5.       Client 瞭解到這些之後,將這些 xml 的介面方法,封裝成為 HTTP 請求 , 發給 Web Server A. 

這些封裝方式採用的是標準的 SOAP 方式 , 實質是滿足 HTTP 協議的一些 SOAP 的報文訊息。

6.       Web Server A 迴應Client的請求,返回的也是 HTTP 協議的 SOAP 包 。

 

呼叫過程:客戶端——> 閱讀WSDL文件 (根據文件生成SOAP請求) ——>傳送到Web伺服器——>交給WebService請求處理器 (ISAPI Extension)

——>處理SOAP請求——> 呼叫WebService——>生成SOAP應答 ——> Web伺服器通過http的方式交給客戶端


進一步深入 , 可以發現如下的協議架構圖 :

圖四: 協議結構

 

 Service發現(UDDI), Service 介面描述 (WSDL), Service的呼叫 (SOAP), 以及傳輸 (HTTP) 。

其中 核心技術是 SOAP。