Web Service體系框架

Web Service體系結構是一種面向服務的體系結構(SOA),這種體系結構設定了3個角色和3種操作。3種角色分別是服務提供者、服務請求者和服務註冊機構。對象由服務和服務描述充當,在這些對象上執行的操作是發布、查找和綁定。這些角色和操作一起作用於Web Service構件:Web Service軟體模組及其描述。在典型情況下,服務提供者提供可通過網路訪問的軟體模組(Web Service的一個實現)。服務提供者定義Web Service的服務描述,並把它發布到服務請求者或服務註冊中心。服務請求者使用查找操作從本地或服務註冊中心搜尋服務描述,然後使用服務描述與服務提供者進行綁定,並調用相應的Web Service實現,同它互動。服務提供者和服務請求者角色是邏輯結構。

基本介紹

  • 中文名:Web Service體系框架
  • 外文名:WebServicesystemframework
Web Service體系結構,角色,操作,開發生命周期,Web Service結構模型,網路傳輸層,數據表現層,數據模型層,基於XML的訊息層,服務描述層,服務發布層,服務發現層,服務工作流層,Web Service運行機理,

Web Service體系結構

角色

Web Service體系結構中的角色包括如下3個。
· 服務提供者(Service Provider):從企業的角度看,這是服務的所有者。從體系結構的角度看,這是託管被訪問服務的平台。
· 服務請求者(Service Requestor):從企業的角度看,這是要求滿足特定功能的企業。從體系結構的角度看,這是尋找並調用服務,或啟動與服務互動的應用程式。服務請求者角色可以由瀏覽器來擔當,由人或無用戶界面的程式(例如另外一個Web Service)來控制它。
· 服務註冊中心(Service Registry):這是可搜尋的服務描述註冊中心,服務提供者在此發布它們的服務描述。在靜態綁定開發或動態綁定執行期間,服務請求者查找服務並獲得服務的綁定信息(在服務描述中)。對於靜態綁定的服務請求者,服務註冊中心是體系結構中的可選角色,因為服務提供者可以把描述直接傳送給服務請求者。同樣,服務請求者可以從服務註冊中心以外的其他來源得到服務描述,例如本地檔案、FTP站點、Web站點、ADS文本檔案(Advertisement and Discovery of Services)或DISCO檔案(Discovery of Web Service)。

操作

對於利用Web Service的應用程式,必須發生以下3個操作:發布服務描述、查詢或查找服務描述以及根據服務描述綁定或調用服務。這些行為可以單次或反覆出現。Web Service體系架構中包含的這些具體操作如下。
· 發布(Publish):為了使服務可訪問,需要發布服務描述以使服務請求者可以查找它。發布服務描述的位置可以根據應用程式的要求而變化。
· 查找(Find):在查找操作中,服務請求者直接檢索服務描述或在服務註冊中心中查詢所要求的服務類型。對於服務請求者,可能會在兩個不同的生命周期階段中牽涉到查找操作:在設計時,為了程式開發而檢索服務的接口描述;而在運行時,為了調用而檢索服務的綁定和位置描述。
· 綁定(Bind):最後需要調用服務。在綁定操作中,服務請求者使用服務描述中的綁定細節來定位、聯繫和調用服務,從而在運行時調用或啟動與服務的互動。
而Web Service體系架構中包含如下Web Service構件。
· 服務(Service):在這裡,Web Service是一個由服務描述語言描述的接口,服務描述的實現就是該服務。服務是一個軟體模組,它部署在由服務提供者提供的可以通過網路訪問的平台上。服務的存在目的就是要被服務請求者調用或者同服務請求者互動。當服務的實現中利用到其他的Web Service時,它也可以作為請求者。
· 服務描述(Service Description):服務描述包含服務的接口和實現的細節。其中,包括服務的數據類型、操作、綁定信息和網路位置。還可能包括可以方便服務請求者發現和利用的分類及其他元數據。服務描述可以被發布給服務請求者或服務註冊中心。
Web Service體系結構解釋了如何以一種可以互操作的方式實現這些操作。

開發生命周期

Web Service開發生命周期則包括了設計和部署以及在運行時對服務註冊中心、服務提供者和服務請求者每一個角色的要求。每個角色對開發生命周期的每一元素都有特定要求。
開發生命周期有以下4個階段。
· 構建:生命周期的構建階段包括開發和測試Web Service實現,定義服務接口描述和定義服務實現描述。可以通過創建新的Web Service,把現有的應用程式變成Web Service和由其他Web Service和應用程式組成新的Web Service,從而提供Web Service的實現。
· 部署:部署階段包括向服務請求者或服務註冊中心發布服務接口和服務實現的定義,以及把Web Service的執行檔部署到執行環境(典型情況下,被部署到Web套用伺服器)中。
· 運行:在運行階段,可以調用Web Service。在此,Web Service完全部署、可操作,並且服務提供者可以通過網路訪問服務。服務請求者可以進行查找和綁定操作。
· 管理:管理階段包括持續的管理和經營Web Service應用程式。安全性、可用性、性能、服務質量和業務流程問題都必須被解決。

Web Service結構模型

為了完成在鬆散耦合環境下的對象訪問,Web Service採用了分層的思想,各層分別實現不同的功能。

網路傳輸層

Web Service體系的基礎是網路傳輸層。Web Service要被服務請求者調用,就必須是可以通過網路訪問的。Internet上可以訪問的Web Service使用已普遍部署的網路協定。HTTP憑藉其普遍性,成為了Internet環境下Web Service使用的標準網路協定。同時,在某些擴展套用領域,也支持SMTP協定(用於電子郵件)和FTP協定(用於檔案傳輸)。而在Intranet環境中,Web Service還可以使用中間件作為傳輸互動的基礎架構,如IBM的MQ Series(已經改名為Websphere MQ)和CORBA(Common Object Request Broker Architecture)。
Web Service的好處之一在於它能夠為Intranet和Internet服務開發和使用提供統一的編程模型。所以,網路協定和技術的選擇對於服務開發者來說是透明的。

數據表現層

數據表現層的XML為整個Web Service上層協定提供了數據/信息描述手段,XML是全球範圍內用於描述數據和交換數據的一種標準方式。
可擴展標註語言XML作為Internet上的一種新的數據交換標準,其套用範圍從早先的Web信息描述,發展到後來的數據交換開放標準,直至服務集成和服務互動的開放技術,XML已經成為開放環境下描述數據和描述信息的標準技術。在Web Service的時代,全部的規範、技術同樣都是以XML為底層核心和構架基礎的。對於Web Service而言,無論是Web Service的調用(SOAP技術)、Web Service界面的描述(WSDL技術),還是Web Service的發現(UDDI技術),都是使用XML作為信息描述和交換的標準手段。

數據模型層

在數據表現層上是數據模型層,描述數據結構的數據模型(也稱為元數據)。它同樣也是一種數據,因此,描述數據結構的方式也是使用基礎的數據表現方式:XML。
XML Schema已經成為XML世界中的標準數據建模語言,SOAP、WSDL和UDDI的XML語法都是採用XML Schema進行定義和描述的。XML Schema已經成為XML世界中的標準交流工具,這有些類似於UML在軟體設計中的地位。

基於XML的訊息層

在這一層次,使用的是基於XML的訊息協定SOAP。訊息層是構築在更低的傳輸層之上的,這意味著SOAP可以單獨使用,也可以與任何傳輸協定聯合使用。所有的SOAP訊息都支持我們先前提到的Web Service架構中的發布(Publish)、綁定(Bind)和查找(Find)等操作。SOAP由3部分組成。
· 一個使用XML信封來描述訊息內容的機制;
· 一組編序規則,用於對各種類型的數據進行編碼;
· 一個提供遠程過程調用(RPC)和回響的機制。
IBM、Microsoft以及其他的一些公司將SOAP提交給W3C,作為XML協定工作組(XML Protocol Working Group)的基礎。當W3C發布XML Protocol標準規範的時候,Web Service協定棧將升級,SOAP將被XML Protocol所替代。

服務描述層

服務描述為調用Web Service提供了具體的方法。WSDL是一個基於XML格式的定義服務的實現和接口的基礎標準。這意味著WSDL將服務的描述分為兩部分:服務實現和服務接口。在按照WSDL進行服務實現之前,我們必須先定義服務接口。WSDL僅是一個基本的服務描述手段,要指定業務環境、服務質量和服務之間的關係,我們還需要另外的描述手段。

服務發布層

WSDL文檔可以由其他服務描述文檔來補充,從而描述Web Service更高級的方面。例如,我們可以使用UDDI數據結構來表示商業上下文。在服務客戶生命周期的任一階段,都可以將WSDL文檔提供給服務客戶端。當這一操作被涉及後,我們就需要從服務描述層更進一步到達下一個層次服務發布層。在這一層次,服務提供者能夠直接向服務客戶端傳送WSDL文檔,一個可能的例子是通過E-mail的形式。這一動作被稱為直接發布。同時,服務提供者也可以選擇將WSDL文檔發布到本地的WSDL註冊庫,或是公共/私有的UDDI註冊中心。服務客戶端可以通過這些註冊庫來獲得WSDL文檔。

服務發現層

服務發現是基於服務發布的。如果Web Service沒有或不能被發布,那么它就不能被發現。服務客戶端可以在運行時態獲取服務描述。例如,服務客戶端可以獲取一個以本地檔案形式存在的WSDL文檔,這個WSDL文檔是通過直接發布手段發布的。這一操作被稱為靜態發現。同時,這個服務客戶端也可以選擇在設計階段或運行時態通過一個本地WSDL註冊庫或公共/私有的UDDI註冊中心發現WSDL文檔。

服務工作流層

Web Service工作流語言(WSFL)是套用於協定棧頂層的服務工作流層標準。與協定棧中的其他標準不同,WSFL針對的是商務流程建模和工作流。WSFL用於描述Web Service在工作流中如何互相作用,以及它們如何處理服務到服務的通信或協同。這意味著Web Service可以是工作流的一部分,也可以動態地被編入工作流。
例如,WSFL允許工作流管理器從一個複合Web Service中,按工作流來定義依據商業流程賦予的各自角色的調用作為其成分的每個個體Web Service,這樣的商業流程可能包括財務報表管理、預測支持或5年IT計畫等。

Web Service運行機理

服務提供者通過服務註冊中心發布自己的Web Service,以供服務請求者查找和調用,服務請求者(Java、VB等應用程式)通過服務註冊中心查找到Web Service描述檔案,服務註冊中心授權給服務請求者,繼而通過WSDL描述文檔創建相應的SOAP請求訊息。Web Service放在具體的可執行環境(J2EE、CORBA、JMS)中,服務描述與可執行環境通過一個映射層相分離,映射層通常以代理(Proxy)或樁(Stub)的形式實現;SOAP請求通過HTTP傳送給可執行環境。Web Service在完成服務請求後,將SOAP返回訊息通過HTTP傳回請求者,服務請求者再根據WSDL文檔將SOAP返回訊息解析成自己能夠理解的內容。

相關詞條

熱門詞條

聯絡我們