摘 要:隨著Web環境下服務數量的快速增長,如何高效快速地發現服務成為迫切需要解決的問題。基于Web服務圖的服務發現方法,利用Web服務之間的語義關系來進行服務發現,仿真實驗證明這種方法能極大的提高Web服務的發現效率。但是目前的研究還未涉及到Web服務組合流的網絡傳輸、服務組合流的可視化表示以及多服務組合流的客戶自主與交互選擇。而這些是基于Web服務圖的服務發現方法得以實現和應用的重要環節。本文以知識地圖為基礎,通過對服務關系進行建模來解決這些問題,從而進一步完善基于Web服務圖的服務發現理論與方法。
關鍵詞:Web服務圖;服務發現;知識地圖;XTM
中圖分類號:TP393 文獻標識碼:A
1 引言
在傳統的Web服務發現方法中,服務發現過程是客戶根據語法、語義和策略在服務注冊機構中一個一個的查找滿足條件的服務,然后在返回的多個服務中選擇滿意的服務結點,最后組合成符合用戶需求的服務流。這種服務發現方法沒有考慮服務提供組織提供的系列服務之間的聯系和客戶需求系列服務之間的邏輯關系,從而使得要在服務提供商提供的海量服務中尋找單個的服務非常耗時。為了解決該問題,提出了web服務圖的概念。基于Web服務圖的服務發現方法不再搜索單個的服務,而是將客戶自定義的需求服務流作為一個完整的請求對象傳遞給UDDI注冊中心,UDDI注冊中心在Web服務圖的基礎上進行匹配,返回的結果是多個滿足條件的服務組合,而不是傳統服務發現方法中的多個滿足條件的單一服務結點。基于web服務圖的服務發現過程如圖1所示,實驗研究表明,該方法能極大提高Web服務發現的效率。

但是,基于Web服務圖的服務發現方法在實際的應用中還有很多具體問題需要考慮,如在實際服務發現過程中,即便是組合的請求流,可滿足條件的待選組合流數量有可能龐大,需要客戶交互式參與選擇,這就要求實現多個服務組合流在網上傳輸以及實現多個組合服務在客戶端的可視化表示和交互選擇機制,從而使客戶能更方便地選擇出滿意的服務組合。針對該問題,本文嘗試以知識地圖為基礎,通過對服務關系建模來解決這些問題,從而進一步完善基于Web服務圖的服務發現理論與方法。
2 基于知識地圖的組合Web服務流模型
要將候選的服務流在網絡中傳輸并以可視化的形式顯示在客戶端,首先需要一個表示模型。BPEIAWS雖然能夠描述組合Web服務流,但它只是描述了什么時候,以什么順序,到哪兒,去調用那些Web服務,怎樣組織這些調用,不能涉及服務的細節,因此無法給客戶提供評價的標準,進行雙向選擇。在本研究中,考慮到Web服務是一類知識而知識地圖能夠用來描述知識以及知識與知識之間的關系,并且有完備的理論與工具將知識與關系可視化表示,因此我們采用知識地圖模型對候選服務流中的Web服務以及Web服務之間的關系建模。

2.1 Topic Maps and XTM(XML Topic Maps)
ISO標準ISO/IEC 13250 Topic Map定義了一個模型作為鏈接網絡的語義結構。Topic Maps把知識描述、信息管理與實際的信息資源聯系起來。Topic Map標準為企業提供了一個清晰的結構,這有助于企業對不同的信息資源進行知識組織。并為用戶訪問知識建造了一個知識共享環境。一般,TopicMaps用于構造組合電子服務的導航圖。
XML topic maps(XTM)是TopicMaps.org制定的使用XML語法來描述基于Web的主題地圖的抽象模型,它使用
2.2 使用知識地圖來表示組合web服務

組合的Web服務是一種知識,它包含兩類,一種是Web服務本身如服務名稱,服務提供者,服務的地址,服務的分類等,另一種是Web服務之間的關系,如publish assertion等。為了將知識表示出來,首先必須選擇一個模型。知識的表示有很多種模型,如元數據,XML,謂詞邏輯等,但是考慮到需要將Web服務組合流在網絡上傳輸和可視化顯示,我們采用了XTM(XML Topic Maps)來存儲Web服務流中的知識,它是基于XML標準的,因此能夠使用Soap協議來進行有效的傳輸,而且目前的可視化技術能夠很好的解析XML文檔。
基于XTM的組合Web服務流表示
要使用XTM來描述Web服務流中的服務結點和關聯,首先要做的就是將服務結點的元數據信息和服務之間的關系抽象出來,對應于XTM中的元素就是

WSDL文檔是服務提供者描述所提供服務的XML文檔,它包含了Web服務的元信息,這些信息有:服務的名字,服務的提供者,服務的位置,服務的分類等等,這些元數據信息都可以抽象為
到目前為止,我們已經使用XTM將Web服務流表示出來了,全部建模過程結束。
3 應用分析
建立知識地圖的目的是為了解決知識共享和知識利用等問題,目前知識地圖的利用熱點包括以下幾個方面:知識預訂與推送;信息可視化。因此知識地圖模型之所以能夠在網絡上傳輸和以可視化的形式顯示在客戶端是由它本身的特性所決定的。

XTM的主要功能在于給用戶提供導航,讓客戶可以瀏覽Web服務流和與Web服務流相關的知識,其詳細的流程如圖5所示:
在這個過程中,也是把客戶自定義的需求服務流作為一個完整的請求對象傳遞給UDDI注冊中心,UDDI注冊中心在Web服務圖的基礎上進行匹配,知識地圖系統會將返回的所有符合條件的Web服務組合進行建模存儲,存儲的內容包括Web服務結點的詳細信息以及Web服務組合中的彼此服務結點之間的關系,然后再將結果在網絡上進行傳輸并以可視化的方式顯示在客戶端,客戶端進行選擇后綁定到自己選擇的服務提供商上。
4 具體實現
用Ecliese開發工具和Java語言本文實現了XTM中所表示的用戶導航接口模塊和Sequence關系。圖7表示Sequence關系的一個Web服務組合流,圖8是生成的用戶導航接口。對程序進行測試中,根據用戶對服務的不同的需求,程序運行良好。在系統生成用戶導航接口后,用戶能夠選擇服務。
此外,我們需要確定導航系統的表示邏輯,為用戶提供導航接口。既然是Web服務知識導航,面向的用戶當然也是網絡用戶,因此采用Web服務器作為導航服務平臺。XTM是基于XML的,現有的XML技術已經完全能夠滿足XTM處理的需要。導航的基本模式與當前通用的導航模式一樣,提供兩種方式:搜索與瀏覽。

當利用知識地圖把模型建立好以后,我們把基于Web服務圖的服務發現過程改進為如圖6所示:
5 結束語
知識地圖是一個研究了很多年的領域,它具有完備的理論來支持查詢和可視化顯示。由于基于Web服務圖的服務發現方法得到的結果可能很多,客戶要做出選擇仍然是一個困難的過程。所以,我們應該實現多個服務組合流在網上傳輸以及實現多個組合服務在客戶端的可視化表示和交互選擇機制。通過對知識地圖的研究,我們提出了基于XTM的模型來描述組合的Web服務,并對其進行可視化表示和傳輸。
下一步研究的工作是可以使用某種評價函數對搜索出來的結果排序,如根據用戶的歷史執行記錄來判斷哪一組服務流是客戶經常選擇的,進一步來完善web服務圖理論。