第四章 系統實作與模擬實驗分析
4.1 系統架構
本系統是以 Eclipse Platform(version 3.4.2)為開發平台,並使用 JAVA 程式語 言來開發系統。其中,UDDI 註冊中心伺服器是以 JUDDI(version 2.0rc6)[4]來架 設,並且利用 UDDI4J[32]來幫助服務提供者發佈網路服務,並且註冊對應的服 務品質資訊到 UDDI 註冊中心的 tModel 中。除此之外,UDDI4J 也可以幫助服務 需求者來查詢網路服務和服務品質資訊。圖 16 為 WSDigger 的架構圖。
在 WSDigger 中,主要的功能模組可以分為三個 : 協同過濾模組、服務品質 排序模組、和使用者行為觀察模組,前兩個模組分別代表了本論文所提出兩階段 網路服務發現演算法的第一階段和第二階段。當使用者發出查詢語句和服務品質 的要求時,WSDigger 會透過協同過濾模組來滿足使用者對網路服務的功能需求,
並且過濾掉服務品質不正確的網路服務,之後再透過服務品質排序模組來滿足使 用者的非功能性需求,推薦網路服務給使用者。最後,當使用者選擇了一個網路 服務,並且向服務提供者提出服務請求時,WSDigger 中的使用者行為觀察模組 會將兩者之間的請求(resquest)和回應(response)訊息記錄,以及實際所偵測的服務 品質資訊紀錄在歷史資料庫中,之後這些資訊將會用來改善協同過濾模組的精確 率。
33
圖 16、系統架構圖
4.1.1 協同過濾模組
協同過濾模組主要的目的在於分析使用者送給 WSDigger 的查詢語句後,找 出與此查詢語句相關程度較高的網路服務,此為本論文所提出兩階段網路服務發 現演算法的第一階段。
在一開始時會將使用者的查詢語句 依照 TF-IDF(Term Frequency-Inverse Documented Frequency)算出查詢語句中每個字詞的權重並轉換成向量。接下來,
再計算此查詢語句與資料庫中其他查詢語句的相似度,然而在這裡會發生兩個需 要額外處理的狀況,一是若歷史資料庫為 Cold Start 的狀態而沒有任何查詢語句 歷史資料的狀況,另一是歷史資料庫中的查詢語句與使用者所下的查詢語句相似 度都為 0 的狀況。在這兩個狀況下,以模組會將目標查詢語句以關鍵字的方式來 查詢 UDDI 註冊中心的網路服務,並且取得網路服務集合作為 Output。
34
若非為上述兩種狀況,接下來協同過濾模組就會計算出各個查詢語句中與每 個網路服務的相關程度,再乘上各個查詢語句與目標查詢語句的相似度,而得到 所有網路服務與目標查詢語句的相關程度數值,之後依門檻值將相關程度低的網 路服務過濾掉,只保留高於門檻值的網路服務集合。然而,由於歷史資料庫只存 放過去使用者曾經呼叫過的網路服務,而不會有 UDDI中所有的網路服務。因此,
為了找出其他存在 UDDI 而且使用者也可能會感興趣的網路服務,仍然需要再將 目標查詢語句以關鍵字的方式來查詢 UDDI 註冊中心的網路服務,並將所查詢到 的網路服務集合與協同過濾的網路服務集合整合為一個集合作為 Output。圖 17 為協同過濾模組流程圖。
圖 17、協同過濾模組流程圖
35
4.1.2 服務品質排序模組
服務品質排序模組的目的在於將協同過濾模組的網路服務集合,再依照使用 者的服務品質需求來排序網路服務,此為本論文所提出兩階段網路服務發現演算 法的第二階段。
一開始時,由於服務品質的單位與意義都不同,為了能夠讓所有數值都在同 一衡量標準下,服務品質模組會將網路服務集合的服務品質資訊作一正規劃。接 下來,為了能夠滿足不同使用者對網路服務的服務品質需求,在計算服務品質分 數時,會針對不同的服務品質而乘上不同的權重,最後再將個別的服務品質分數 相加,就會得到個別網路服務總體的服務品質分數,而排序就根據這個分數由高 到低來推薦網路服務給使用者。
4.1.3 使用者行為觀察模組
使用者行為觀察模組的目的在於,希望可以藉由記錄使用者的行為,來幫助 協同過濾機制改善其所推薦網路服務的精確率。
因此,當服務需求者在 WSDigger 所推薦的網路服務集合中,選擇了一個網 路服務向服務提供者請求服務時,使用者行為觀察模組會將服務需求者和提供者 之間的行為紀錄到歷史資料庫中,例如 : 服務需求者呼叫了哪一個網路服務、
網路服務是否有回應服務的請求、回應是成功訊息或失敗訊息等等。除此之外,
此模組還會在服務需求者呼叫服務時,偵測網路服務實際的服務品質數值,例如 : 回應時間、可用度等等,來判斷此次的呼叫是否符合服務提供者所保證的服務品 質資訊。
36