摘要:Web服務(wù)在執(zhí)行基于面向服務(wù)架構(gòu)(SOA)的企業(yè)級應(yīng)用程序方面發(fā)揮了關(guān)鍵性作用。為了實現(xiàn)這一目標,一個實際的Web服務(wù)就要同時滿足用戶對Web服務(wù)的功能性和非功能性需求,但是,目前還沒有一個關(guān)于Web服務(wù)質(zhì)量的標準。為了獲得關(guān)于Web服務(wù)的質(zhì)量信息,我們提出了基于SOA的Web服務(wù)擴展框架,同時構(gòu)建了一個適用于Web服務(wù)質(zhì)量指標的WSBot原型。Web服務(wù)擴展框架可以用來確定滿足用戶的非功能性需求的Web服務(wù)。通過使用擴展Web服務(wù)框架,我們可以提高應(yīng)用程序在調(diào)用無法控制的Web服務(wù)時的最壞情況下的可預(yù)測性。
關(guān)鍵字:Web服務(wù) 服務(wù)質(zhì)量 SOA
中圖法分類號:TP311
1、引言
Internet和Intranet網(wǎng)正在提供越來越多的相同或相似的Web服務(wù),如Internet上就提供有很多股票短信服務(wù)、機票訂票服務(wù)等,在這種情況下,Web服務(wù)的請求者(Service Consumer)在選擇服務(wù)時就不應(yīng)只重視服務(wù)是否滿足用戶功能需求,還要考慮Web服務(wù)的服務(wù)質(zhì)量(Quality of Service,簡稱QoS)即非功能需求,對其準確性、可擴展性和有效性等方面提出更高的要求,以便查找并選擇出最適當(dāng)?shù)姆?wù)。因此,研究者們廣泛認為,基于服務(wù)質(zhì)量的服務(wù)查找與選擇是保證基于服務(wù)的應(yīng)用系統(tǒng)質(zhì)量的重要技術(shù)之一[1]。
傳統(tǒng)的Web服務(wù)架構(gòu)中因缺乏對服務(wù)質(zhì)量(QoS)的描述而難以從功能相同的眾多服務(wù)中為用戶選擇最佳服務(wù),同時,由于它依賴于靜態(tài)信息而且不能提供運行期間Web服務(wù)的非功能性需求,因此,目前也還沒有一個標準能夠準確的評價Web服務(wù)質(zhì)量水平 [2]。
為了評價Web服務(wù)的服務(wù)質(zhì)量水平,本文提出了一個基于SOA的擴展Web服務(wù)框架,同時構(gòu)建了一個包含Web服務(wù)質(zhì)量指標的WebService原型——WSBot,擴展后的Web服務(wù)框架可以用來從相同或相似的Web服務(wù)中選擇滿足用戶非功能性需求的最佳Web服務(wù)。
2、相關(guān)背景知識
2.1 傳統(tǒng)的SOA架構(gòu)
傳統(tǒng)的面向服務(wù)體系架構(gòu)(SOA)由服務(wù)提供者、注冊中心、服務(wù)請求者和服務(wù)契約等四部分組成,包含了SOAP、WSDL、UDDI等支持服務(wù)請求者與服務(wù)提供者(Service Provider)進行交互,以及用于發(fā)現(xiàn)Web服務(wù)的規(guī)范。服務(wù)提供者通常用WSDL來描述它所提供的Web服務(wù),然后將該WSDL描述發(fā)布;服務(wù)請求者通過UDDI或者服務(wù)注冊中心(Registry)獲取WSDL描述,并通過向服務(wù)提供者發(fā)送一個SOAP消息請求執(zhí)行相應(yīng)Web服務(wù)[3],圖1說明了傳統(tǒng)的SOA架構(gòu):
通過上述架構(gòu)模型可以知道,一個服務(wù)體系由三種服務(wù)角色(服務(wù)提供者、服務(wù)請求者、服務(wù)注冊庫),三種服務(wù)操作(服務(wù)發(fā)布、服務(wù)發(fā)現(xiàn)、服務(wù)綁定)以及兩種服務(wù)構(gòu)件(服務(wù)、服務(wù)描述)組成;在SOA架構(gòu)中一個服務(wù)就是一個由服務(wù)提供者處理服務(wù)請求者的請求并達到最終結(jié)果的工作單元。每個服務(wù)都實現(xiàn)一個特定業(yè)務(wù)功能,并且都是可用的,Web服務(wù)只要在服務(wù)注冊中心注冊,即使用戶沒有掌握與其運行相關(guān)的知識也可以訪問它。下面列出了發(fā)布Web服務(wù)的步驟:
(1)服務(wù)提供者在部署平臺上創(chuàng)建、編譯和部署Web服務(wù);
(2)服務(wù)提供者在部署平臺上定義Web服務(wù);
(3)服務(wù)提供者在服務(wù)注冊中心注冊服務(wù)。
2.2 Web服務(wù)的QoS
服務(wù)質(zhì)量(QoS)是一個廣義的術(shù)語,它包含用來預(yù)測和管理多種多樣的廣泛的系統(tǒng)資源的各種方法,這些系統(tǒng)資源對應(yīng)用程序運行時的性能具有重要影響。一般說來,盡管QoS與網(wǎng)絡(luò)資源密切相關(guān),但QoS也同樣適用于其他有限的計算資源。
當(dāng)(QoS)用于對Web服務(wù)評價時則反映了滿足服務(wù)請求者非功能性需求能力的一種度量,并且可以從策略、安全性、傳輸和管理四個角度對服務(wù)的質(zhì)量進行評估[4],可以有可擴展性、并發(fā)處理能力、響應(yīng)時間、可靠性、服務(wù)價格、吞吐量、可用性、安全性、準確性,賠償率等等具體QoS指標。
ISO/IEC 9126標準和ISO/IEC 25000:2005系列標準提出了眾多的軟件QoS指標,考慮到實用性,表1只列出了影響Web服務(wù)質(zhì)量的關(guān)鍵性QoS指標:
3 Web服務(wù)的Qos評價
Web服務(wù)的發(fā)現(xiàn)問題一直以來都是Web服務(wù)技術(shù)研究的一個熱點問題,其中一個主要問題就是如何評價Web服務(wù)的質(zhì)量水平,并給出Web服務(wù)QoS指標的量化方法,因此,通過對多個功能相似的Web服務(wù)的QoS 進行量化評價,就可以為服務(wù)請求者找到服務(wù)質(zhì)量最好的Web服務(wù)。
下面針對Web服務(wù)的QoS指標中比較重要的可用性和性能指標給出量化的評價方法,限于篇幅,表1中的其他QoS指標量化不再說明,可以參考這兩個指標的評價方法給出。
3.1 可用性
可用性是Web服務(wù)是否存在,或是否可以立即使用的策略方面特性,其可以采取服務(wù)可用的概率值量化表示。客戶可以選擇95%,98%,99%或99.9%作為在15秒內(nèi)收到答復(fù)的概率,值越大表示該服務(wù)隨時使用;而較小的值表示服務(wù)在此特定時間內(nèi)是否可以使用是不可預(yù)測的。
定義:Availability(s; o)是執(zhí)行操作時,Web服務(wù)的可用性(其中s:Web服務(wù),o:操作);
定義: Availability(s; o; i)是在一定時間間隔內(nèi)調(diào)用操作時,Web服務(wù)的可用性(其中s:Web服務(wù),o:操作 i:時間間隔);
定義:Availability(s; o; 08 : 00) 是在一定時間間隔內(nèi)調(diào)用操作時,Web服務(wù)的可用性(其中s:Web服務(wù),o:每日上午8時至午夜十二時可以操作);
定義: Availability(>; Availability(s; o); 99)代表一種性能,即當(dāng)操作被調(diào)用時能夠在15秒內(nèi)得到Web服務(wù)的可能性大于99%就視為高可用性(其中s:Web服務(wù),o:操作)。
3.2 性能
性能也是Web服務(wù)質(zhì)量的一個策略特性,可以用吞吐量和響應(yīng)時間來衡量。吞吐量代表了在某一特定時間內(nèi)Web服務(wù)的請求數(shù)量,響應(yīng)時間是從發(fā)送請求開始直到收到響應(yīng)之間的時間間隔,更具體講應(yīng)該是從客戶端發(fā)出服務(wù)請求到收到響應(yīng)的時間減去網(wǎng)絡(luò)傳輸、傳播延遲和客戶端代碼執(zhí)行的時間即為響應(yīng)時間。
定義:Throughput(s; o; i)被定義為在一定時間間隔內(nèi)操作請求被調(diào)用并且Web服務(wù)成功完成的服務(wù)數(shù)量。其中s:Web服務(wù),o:操作,i:時間間隔。
客戶可以選擇0.5、1、或2秒作為平均響應(yīng)時間的標準,并設(shè)置以此為閾值每分鐘完成的Web服務(wù)操作數(shù)。
定義:FastResponseTime(<, ResponseTime(s, o), 0.5),表明以0.5秒為閾值,每分鐘內(nèi)成功完成的Web服務(wù)數(shù)量,如果達到此要求可被視作快速響應(yīng);
定義:ModerateResponseTime (>, ResponseTime(s, o), 1),表明以1秒為閾值,每分鐘內(nèi)成功完成的Web服務(wù)數(shù)量,如果達到此要求可被視作中等響應(yīng);
定義:SlowResponseTime(>, ResponseTime(s, o), 2) ),表明以2秒為閾值,每分鐘內(nèi)成功完成的Web服務(wù)數(shù)量,如果達到此要求可被視作慢速響應(yīng)。
4 Web服務(wù)的擴展架構(gòu)設(shè)計
4.1 基于SOA的Web服務(wù)擴展架構(gòu)
Web服務(wù)質(zhì)量評價方法確定后,本文提出了一種基于SOA架構(gòu)的擴展Web服務(wù)架構(gòu),用來補充提供有關(guān)Web服務(wù)的質(zhì)量信息,它在發(fā)布和查找Web服務(wù)時將QoS的基本要求包含在內(nèi)。擴展Web服務(wù)架構(gòu)可以用于支持所有與查找、選擇和替代Web服務(wù)相關(guān)的工作,通過使用擴展Web服務(wù)架構(gòu),我們可以提高應(yīng)用程序在調(diào)用無法控制的Web服務(wù)時的最壞情況下的可預(yù)測性。
在這個模型中,Web服務(wù)需要服務(wù)請求者查找服務(wù)提供者提供的滿足特定功能性和非功能性需求的服務(wù)。我們假定Web服務(wù)應(yīng)用程序由多個Web服務(wù)組成,這些服務(wù)可能會有各種不同的非功能性需求,這些服務(wù)同樣可能被不同的組織擁有和操作,因此很難享有共同的基礎(chǔ)結(jié)構(gòu)。為了管理和評價Web服務(wù)質(zhì)量,就需要在Web服務(wù)質(zhì)量的狀態(tài)改變時,對它進行定期或不定期監(jiān)測,尤其需要對類似性能、吞吐量等動態(tài)QoS指標進行監(jiān)測,下面列出了監(jiān)測Web服務(wù)質(zhì)量的具體步驟:
(1)一個服務(wù)請求者向UDDI服務(wù)注冊中心發(fā)送一個服務(wù)請求,并指定了服務(wù)的功能性和非功能性需求。 (2)服務(wù)注冊中心在這個服務(wù)查詢中,分離出功能性和非功能性指標。非功能性指標進一步分為靜態(tài)的和動態(tài)的兩類指標,如服務(wù)價格和安全性指標就可以歸為靜態(tài)指標。
(3)服務(wù)注冊中心通過在數(shù)據(jù)庫中查找已注冊的服務(wù),找到滿足功能性和靜態(tài)非功能性指標的候選服務(wù)。
(4)服務(wù)注冊中心向相應(yīng)的監(jiān)測器發(fā)送請求,以確定能滿足動態(tài)非功能性指標的那些服務(wù)。
(5)監(jiān)測器向服務(wù)注冊中心發(fā)送能夠滿足動態(tài)非功能性指標的那些服務(wù)的所有非功能特性。
(6)服務(wù)注冊中心收集和分析所有監(jiān)測器發(fā)來的數(shù)據(jù),評估和排序從監(jiān)測器獲得的所有候選服務(wù)。
以上過程可以用圖2清楚的說明,這個架構(gòu)與傳統(tǒng)SOA架構(gòu)(圖1)的區(qū)別就在于增加了QoS信息,并通過服務(wù)管理器加以管理和監(jiān)測這些信息,最終在相同或相似的Web服務(wù)中獲得最恰當(dāng)?shù)姆?wù)。
4.2 如何選擇合適的Web服務(wù)
那么,如何在這個架構(gòu)中包含QoS信息并選擇合適的Web服務(wù)呢?為此,我們首先定義了一個附帶有質(zhì)量指標的WSDL服務(wù)描述原型——WSBot用來選擇哪些滿足用戶非功能性需求的合適Web服務(wù)。考慮到不同的WSDL描述出自不同的服務(wù)供應(yīng)商,WSBot的服務(wù)管理器首先執(zhí)行一段代碼減輕生成包含質(zhì)量信息的服務(wù)請求的難度,也即先執(zhí)行一個預(yù)處理,然后,我們利用Web服務(wù)QoS信息集合產(chǎn)生正常的服務(wù)質(zhì)量(QoS)值。為此,原來的WSDL由于缺乏質(zhì)量指標描述而被注釋,在WSBot中服務(wù)提供者提供eWSDL和包括QoS策略的eWSDL過濾器,使用QoS策略去選擇已在UDDI注冊中心注冊的Web服務(wù),圖3給出了WSBot的體系結(jié)構(gòu):
在eWSDL過濾器(eWSDL filter)中輸入包含質(zhì)量因子(Qulity factor,QF)的Web服務(wù)描述eWSDL并提取其中的服務(wù)質(zhì)量指標值,為了維護QoS指標數(shù)據(jù)庫中的記錄需要再提供一個WSDL規(guī)范,命名為WSDL2Java。質(zhì)量指標評價器(QF evaluator)以定期或不定期的方式評估基于值的質(zhì)量指標。
eWSDL管理器(eWSDL manager)提供了QoS操作管理,使用擴展的UDDI API檢索已注冊的數(shù)據(jù),并發(fā)布和更新UDDI中的數(shù)據(jù)。它可用于減輕對集中式服務(wù)注冊中心的訪問,緩解服務(wù)注冊中心的性能瓶頸壓力[5]。
5 結(jié)論
在本文中分析了Web服務(wù)的性能、可用性等QoS指標,目的是為了在Web服務(wù)中查找最合適的Web服務(wù)時提供量化評價標準。為了獲得Web服務(wù)的質(zhì)量信息,我們提出了一個基于SOA的Web服務(wù)擴展架構(gòu),同時構(gòu)建了一個應(yīng)用Web服務(wù)質(zhì)量指標的WSBot原型。在將來的工作中,可以擴展QoS參數(shù),使其將聲譽、懲罰率、可靠性和故障率等質(zhì)量信息也包括在內(nèi)。
參考文獻
[1]楊勝文,史美林.一種支持QoS約束的服務(wù)發(fā)現(xiàn)模型.計算機學(xué)報,2005,28(4):589-594.
[2] Ran and Shupring. A model for web services discovery with qos. ACM SIGecom Exchanges, 4(1), March 2008.
[3]Min Luo,Mark Endrei,Philippe Comte,Pal Krogdahl,Jenny Ang,Tony Newling.International Technical Support Organization.Raleigh Center
[4]面向服務(wù)的架構(gòu)(SOA)概念設(shè)計與實現(xiàn). http://www.ibm.com/developerworks/cn/Webservices/ws-ovsoa/in ex.html.2008.4
[5]Ran and Shupring. A model for web services discovery with qos. ACM SIGecom Exchanges, 4(1), March 2007.