第三章 一個在不信任的環境下基於服務品質和協同過濾的兩階段網路服務發現
3.4 服務品質資訊的管理
在UDDI V3[35]的架構中,tModel是用來描述網路服務的技術指紋,例如格 式、傳輸協定、輸入和輸出參數為何、商業邏輯等等,目的是希望讓服務請求者 可以使用更有意義的搜尋方式,而不單侷限於商業名稱、分類或是服務的名稱等 的查詢方式。而在UDDI中,tModel的實體(Instance)是以keyedReference呈現,並 且透過鍵值tModelKey當作識別鑰匙,和categoryBag用於儲存分類資訊,使得 tModel成為一個用於描述技術規格的參考系統。
3.4.1 服務品質資訊的發佈
因此,在本論文所提出的架構中,服務品質的資訊是擴充 UDDI 註冊中心的 tModel 來儲存。當服務提供者在發佈一個網路服務到 UDDI 註冊中心前,一個相 對應的 tModel 會被創造出來用於存放網路服務的 QoS 資訊,使得服務請求者可 以透過 tModelKey 來找到 QoS 資訊。而每個 QoS 屬性,則是由 tModel 裡的
29
keyedReference 來表示,其中 QoS 屬性的名稱是以 keyName 來表示,而數值則是
以 keyValue 來表示。至於每個 QoS 屬性的單位量詞並沒有在 tModel 中表示出來,
在這邊本論文假設這些單位量詞為預設值,亦即服務提供者和使用者對 QoS 的 衡量單位是相同的,例如價格(Price),其單位是每次請求為 0.01 美元、反應時間 (Response Time)是以毫秒為單位等等。
圖 15 為服務提供者發佈天氣查詢服務的 QoS 資訊的範例 :
價格(Price) : 每次請求為 0.01 美元
可用度(Availability) : 99%
反應時間(Response Time) : 70 毫秒
總處理量(Throughput) : 每秒 800 個請求
<tModel tModelKey="uuid:CD978180-3B13-11DF-A8EB-D2A3C1ECE15B">
<name>QoS information for Weather service</name>
<description xml:lang="en">
Quality of Service Information for Weather service
</description>
<overviewDoc>
<description xml:lang="en"></description>
<overviewURL>
http://<URL describing schema of QoS attributes>
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
tModelKey=" uuid:CD978180-3B13-11DF-A8EB-D2A3C1ECE15B "
keyName="Price"
keyValue="0.01" />
<keyedReference
tModelKey=" uuid:CD978180-3B13-11DF-A8EB-D2A3C1ECE15B "
keyName="Availability"
keyValue="99.0" />
30
<keyedReference
tModelKey=" uuid:CD978180-3B13-11DF-A8EB-D2A3C1ECE15B "
keyName="ResponseTime"
keyValue="30" />
<keyedReference
tModelKey=" uuid:CD978180-3B13-11DF-A8EB-D2A3C1ECE15B "
keyName="Throughput"
keyValue="800" />
</categoryBag>
</tModel>
圖 15、發佈天氣查詢服務 QoS 資訊的範例
因此,服務提供者發佈網路服務到 UDDI 前,會先創造一個擁有 QoS 資訊 的 tModel,之後再透過 bindingTemplate 將 tModel 參照到網路服務。而發佈的方 法則可以利用 UDDI 的 API(Application Programming Interface),例如 UDDI4J[32]
來達成。
3.4.2 服務品質資訊的更新
當服務提供者需要更新 QoS 資訊時,亦是利用 tModelKey 來更新 tModel 的 內容,修改完畢後再用相同的 tModelKey 來儲存。而修改的權限就只有發佈服務 的服務提供者才有權限可以修改網路服務和 QoS 資訊的內容,因此一個服務提 供者應該要隨時的更新網路服務的 QoS 資訊,來確保資訊內容的正確性。而 UDDI 的 API,UDDI4J[32]亦可以幫助服務提供者來更新 QoS 資訊,主要的步驟 如下 :
(1) 以 tModelKey 找到 UDDI 中對應的 tModel (2) 修改 tModel 中 keyedReference 的參數值
(3) 修改完後,以原本的 tModelKey 儲存 tModel,更新 QoS 資訊。
31