【摘要】本文從web服務體系結構中的角色、操作以及協議棧三個方面剖析了Web服務的體系結構,通過本文能夠對web服務有一個清晰的認識。
【關鍵詞】Web角色操作棧
一、Web服務的概念
Web服務是一種部署在Web上的對象,它們具有對象技術所承諾的所有優(yōu)點。同時,Web服務建立在以XML為主的、開放的Web規(guī)范技術基礎上,因此具有比任何現有對象技術更好的開放性,是建立可互操作的分布式應用程序的新平臺。Web服務平臺是一套標準,它定義了應用程序如何在Web上實現互操作性,可以用任何語言、在任何平臺上編寫所需要的Web服務。
二、Web服務的體系結構
2.1體系結構中的角色
Web服務的體系結構是基于三種角色(服務提供者、服務請求者和服務注冊中心)之間的交互,它是一種面向服務的體系結構(Web Services-Oriented Architecture,簡稱SOA)。
服務提供者是可通過網絡地址訪問的實體,它從服務請求者接受和執(zhí)行請求。它發(fā)布服務和接口到服務注冊中心以便于服務請求者能發(fā)現和訪問該服務。
服務注冊中心是可搜索的服務描述注冊中心,服務提供者在此列出他們的Web服務清單。服務請求者可以從服務注冊中心搜索Web服務。服務注冊中心己包含了一個可利用的服務倉庫和允許服務請求者查找他們感興趣的服務提供者接口,使服務發(fā)現成為可能。
服務請求者是一個應用程序、一個軟件模塊或是另一個需要其它服務的服務。它向注冊中心提出服務請求,通過傳輸器綁定該服務,然后執(zhí)行該服務功能。服務請求者通過接口調用該服務。
2.2體系結構中的操作
利用Web服務,必然會發(fā)生以下三個行為:發(fā)布服務描述、查詢或查找服務描述以及根據服務描述綁定或調用服務。這些行為可以單次或反復出現,這些操作具體為:①發(fā)布(publish)。為了使服務可訪問,服務提供者向服務注冊中心注冊自己的功能和訪問接口,發(fā)布服務描述以使服務請求者可以查找它。②查找(find)。服務請求者向服務注冊中心檢索服務描述或在服務注冊中心中查詢所要求的特定服務。在查找操作中,服務請求者直接檢索服務描述或在服務注冊中心中查詢所要求的服務類型。對于服務請求者,可能會在兩個不同的生命周期階段中牽涉到查找操作在設計時為了程序開發(fā)而檢索服務的接口描述,而在運行時為了調用而檢索服務的綁定和位置描述。③綁定(bind)和調用(invoke)。在檢索服務描述后,服務請求者最后需要綁定以調用服務。在綁定操作中,服務請求者使用服務描述中的綁定細節(jié)來定位、聯系和調用服務,從而在運行時調用或啟動與服務的交互。
2.3Web服務協議棧
要以一種可互操作的方式執(zhí)行發(fā)布、發(fā)現和綁定這三個操作,必須有一個包含每層標準的Web服務協議體系。一個概念性Web服務協議棧,上面的層應建立在下面層提供的功能之上,并且協議棧中每層必須應用一定的標準技術,滿足不同的需求。
我們把Web服務的互操作棧協議分為網絡層、消息傳遞(XML)層、服務描述層、服務發(fā)布發(fā)現層和服務流程層,Web服務協議棧各層的功能如下:①網絡層。Web服務協議棧的基礎是網絡層,Web服務要被服務請求者調用,就必須通過網絡訪問。②消息傳遞層。網絡上的信息可以是任何格式的,但是信息的發(fā)送者和接收者必須互相明白信息里的數據才能完成一次有意義的交換,這就是消息傳遞層SOAP要解決的問題。③服務描述層。如果服務的提供者和請求者能夠成功的進行交互,它們之間必須擁有更高一層的認識,描述層就提供了這樣一種認識機制。Web服務的接口和實現均由WSDL來定義。使用WSDL開發(fā)可以描述一組Web服務的操作,包括每個操作的輸入、輸出參數與網絡和數據編碼結合的不同方式。④服務發(fā)布發(fā)現層。描述了綁定和調用某個Web服務的詳細信息,但是服務請求者如何才能取得某個Web服務的WSDL文檔呢?此時,就需要有一個發(fā)布發(fā)現層UDDI來實現WSDL文檔的發(fā)布和查找。作為目錄技術的標準協議UDDI,提供使用基于性能的查找來發(fā)現Web服務或者商務伙伴的功能,服務請求者可以按照服務的類型和服務的性能來發(fā)現所需要的Web服務。⑤服務流程層。單獨的Web服務只能完成單一的操作,而事實上的活動,都不是單一的操作所能夠完成的系列操作步驟,并且在大部分情況下,這些操作不是相互獨立的,而是需要互相協作,從而形成一個服務流程。
所有的機制完全是基于現有的技術,并沒有創(chuàng)造一個完全的新體系。無論是HTTP, FTP等現有的網絡協議,還是SOAP, WSDL等基于XML定義的協議,都是遵循繼承原有的被廣泛接受的技術,這樣才使得Web服務被廣泛接受。