Web服務的組合與分割

導讀:

  Web服務的組合與分割

  從外部使用者的角度而言,Web服務是一種部署在Web上的對象/組件,它完成一定的功能。既然如此,那麼就可以針對其所具有的功能進行分類,因爲只有對Web服務進行標準統一而又準確的分類,才能保證UDDI註冊和發現功能的準確性。本節從Web服務所完成功能和所屬類別的角度討論了Web服務的組合和分割,這裏的“組合”和“分割”是相對的。在SDOWSCS中,我們對擴展UDDI中Web服務的表示定義了分類標準,這使得Web服務的組合與分割有了一定的實際意義。

  所謂Web服務的組合,就是把Internet上已有的功能相對簡單單一的Web服務按照一定的邏輯組合起來以構成複雜的服務,從而提供更強大更完整的功能;逆向考慮這個過程,一個Web服務可以由若干個操作構成,每個操作都有自己的入口出口參數,完成一定的功能,把這些操作按照一定的規則分割開來,使其具有的功能更加具體、靈活,這就是本節中Web服務分割的含義。

  依據參數集分類每個Web服務包含一個或多個操作,不同的操作完成不同的功能,擁有不同的參數,我們把每個操作所擁有的參數稱爲一個參數集。如果Web服務本身定義的粒度UDDI中Web服務表示模型的粒度不一致,導致的結果就是在服務註冊時確定所屬分類不準確,從而使得服務查找結果也不夠準確。這種情況下,可以根據參數集的不同在邏輯上把一個Web服務劃分到不同類中,或者由若干個Web服務組合在一起歸爲一個類中。

  比如一個具有訂票功能的Web服務,包含兩個操作分別爲訂機票和訂火車票,每個操作擁有不同的參數集,這樣一個服務在我們擴展的UDDI中就無法唯一確定一個具體類別。一個解決辦法是服務註冊時選擇依次選擇已有的分類,在處理服務的輸入輸出參數信息時,通過解析WSDL文檔,結合語義方面的支持,把每個操作對應的參數集放入到相對應的分類中。這種情況屬於Web服務的分割。

  考慮組合的情況,我們來看一個最簡單的例子,下圖4.5中是一個具有乘法功能的Web服務WSDL文檔,圖4.6是另一個Web服務實現加法功能,每個Web服務具有自己的參數集。假設根據UDDI的分類需要具有乘法加法的混合運算類別,顯然涉及到進行Web服務組合。UDDI在處理服務的輸入輸出參數信息時,可以根據WSDL文檔把這兩個獨立的Web服務組合成一個Web服務中的兩個操作,當然作爲新的組合的Web服務的其他方面的屬性信息需要由Web服務提供者來提供。

  依據參數取值範圍分類

  除了依據參數集的劃分標準,還應考慮到依據參數取值範圍的不同進行類的劃分。對於擁有相同參數的一個Web服務,如果參數的取值不同,就可能完成不同的功能。

  依然來看一個實例。一個Web服務具有表示地點的兩個入口參數,如果對這賦予兩個參數兩個城市的名稱,那麼Web服務執行的功能是計算這兩個城市間的距離;而如果這兩個參數被賦值爲一個城市中的兩個具體地點,那麼Web服務執行的功能將是給出兩個地點間互通的路線。如果考慮到了這種情況,那麼對於這種Web服務相對是比較容易處理的。從Web服務的分割角度看,只需要在邏輯上分割成兩個不同功能的服務,在類別的劃分中分化到相應的類中即可。反之考慮Web服務的組合情況也是同樣道理。

  TOP



本文轉自

http://soa.5d6d.com/redirect.php?fid=4&tid=96&goto=nextnewset
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章