武蕾,劉玉龍,劉士軍
(山東大學 計算機科學與技術學院,山東 濟南 250101)
隨著面向服務架構(SOA, service-oriented architecture)的發展,Web服務已逐漸成為在提高分布式應用程序的靈活性、可擴展性等方面的有效解決方案,被廣泛地應用在各個領域,如電子商務、政務、衛生保健等行業。在SOA中,服務提供者通過標準化服務描述語言來描述服務的功能,并且可注冊到服務集成平臺中,用戶例如基于服務的系統開發人員可以從中找到開發所需要的服務進行整合使用,而不用重新開發,加速和促進了大型基于服務的系統開發進程,帶來了極大的便利。
服務集成平臺通過將分散在各地的服務資源進行虛擬化描述、封裝、發布可以為用戶集成、提供各種資源和服務。隨著越來越多的服務資源提供方(簡稱服務提供者)將可以提供的服務功能發布到平臺中,當用戶通過向平臺提出具體的使用請求,平臺對用戶請求進行分析、分解,并在云里自動尋找滿足請求的云服務時,困擾也隨之而來,針對同一功能需求,可供選擇的服務越來越多,如何通過調度選擇、優化等一系列操作,向用戶返回解決方案,使選出的服務既可滿足用戶的要求,又可以在當有多個滿足用戶的要求的服務時,根據一定的策略對這些服務進行排序選優成為亟待解決的問題,為解決上述問題,本文提出了一種多策略QoS感知的服務選擇與排序模型,通過服務選擇獲得滿足用戶要求的可用候選服務集,對于可用候選服務集中的服務,分別計算用戶與運營商對其滿意度,并且通過改變用戶滿意度與運營商滿意度在排序選優過程中所占的不同比重,建立靈活多策略的服務選擇與排序選優方法。
服務質量(QoS, quality of service)作為服務的非功能特征[1],是功能相同的服務之間最顯著的區分指標,也是對服務進行性能評價和用戶選擇的重要參考標準。QoS的描述和計算評價在服務選擇和排序選優過程中起的作用越來越顯著。
在進行服務的選擇與排序選優時,主要有3個需要解決的問題:1) 描述、度量、監控Web服務的QoS屬性。目前許多關于QoS的本體論和質量模型已被提出來描述QoS的不同屬性[2,3],QoS屬性值的獲取和監控可以通過實時檢測、用戶的反饋[4,5]、或是由歷史數據通過數據挖掘獲得[6];2) 如何選出滿足用戶要求的可用候選服務集合,尤其是在單個服務滿足不了用戶要求需要多個服務組合才能完成時。在進行服務選擇時,如何根據要求,計算組合服務的QoS屬性值,以及如何根據用戶提出的要求在眾多的服務中高效選出滿足用戶QoS要求的可用服務,文獻[7,11,13]提出了可以利用關鍵字搜索、語義匹配、遺傳算法、整數規劃等發現選出符合要求的服務;3) 對于可用候選服務集,如何靈活的按照某種策略進行排序選優返回最終的解決方案。文獻[9]提出了一種排序算法,但該方法只考慮了用戶的滿意度,建模時,并沒有考慮服務的成本屬性,而成本是服務運營商關心的重要屬性之一,具有一定局限性。文獻[10]中提到的Web服務質量評價算法,在排名過程中考慮了多種服務的QoS屬性,但難以體現用戶對服務質量的個性化要求以及對不同QoS屬性的偏好程度。
從上面分析可以看出:1) 在不同文獻中已經提出較多解決方法;2) 也已經有許多選擇算法,但QoS模型中屬性描述不足,難以為第3個問題提供相關的信息;3) 盡管已經也有一些研究,但也存在一些缺陷,進行排序選優出發的角度單一,只是基于用戶策略的排序方法。
服務選擇和排序是2個相對獨立的過程[8]。服務選擇要確保所選擇的服務可以滿足用戶對基本功能和QoS的要求,而服務排序則是在此基礎上的進一步選優。現有研究方法中,存在一些不足,如在進行服務選擇與排序時,或是QoS建模屬性描述不夠全面;或是單純的服務質量評價方法,缺少對用戶個性化的支持;或是排序選優策略單一。針對上述問題,在進行服務QoS建模時,本文從用戶與運營商的角度共同出發,將服務的性能與運營維護成本等屬性考慮在內,描述和擴充了QoS模型,提出了一種基于用戶與運營商對服務滿意度的多策略服務排序方法,通過改變用戶滿意度與運營商滿意度在排序選優過程中的不同比重,可分別設置完全基于用戶策略、完全基于運營商策略、用戶與運營商2者兼顧策略的服務選擇與排序選優方法。
QoS模型是對服務非功能性屬性的描述,用于描述服務完成業務目標的效果,它是一個包含多側面指標的復雜結構,從不同的方面定性或定量的描述一個服務。在本文中,為了在服務選擇與排序過程中提供足夠的參考信息,細化服務的QoS需求層次。本文從資源需求方與平臺運營商兩個維度出發對QoS建模,對QoS的一般屬性和領域屬性進行了統一,其中,不同領域服務的通用屬性主要沿用以下幾個描述指標:
響應時間(response time):代表一個服務Sj被調用至獲得響應的時間間隔,主要包括服務延遲時間(Tdelay)和服務計算時間(Tcom),總的響應時間T(t)= Tcom(Sj)+Tdelay(Sj)。
可用性(availability):代表一個服務正常運行的概率。取值越大意味著有較高的可用性,而較小的取值則表示較低的可用性。
吞吐量(throughout):表示在給定時間段內服務可以處理的最大請求數,是度量服務性能的一個重要指標。
安全性(security):表示方法調用過程的安全水平,通過身份驗證、消息加密、訪問控制等機制提高其安全性。
價格(price):指的是服務使用者使用服務需要支付的金錢。
上述往往是用戶在使用服務時關心的QoS屬性,但從服務運營商的角度出發,降低服務運營成本,獲取盡可能多的利潤是他們的目標,因此,在進行QoS建模時,必須要考慮服務的成本屬性。
成本(cost):服務成本由多部分組成,整體成本是多個子指標按照整體部分關系形成的[12]。價格與服務成本也有一定的相關性。成本主要是指為用戶提供服務的過程中所消耗一些資源,主要包括2個方面:
軟硬件系統資源的消耗(SC, system cost):主要是指在為用戶提供服務的過程(初始化、運行、監控和維護等)中,服務占用消耗的系統資源,如當為用戶提供某服務時,所需要的設備支持、占用的應用服務器資源、設備磨損等。
人力資源消耗(LC, labor cost):主要是指在服務執行過程中需要人工執行或需要人機交互執行部分的人力資源消耗,如在對產品配置結果進行可行性驗證服務時,人工驗證部分需要相關領域專家的參與。
除了上述一般屬性,特定領域的服務還有領域相關屬性,具體是指服務所屬的應用領域所特有的QoS指標,功能上相似的服務擁有相似的領域相關性能指標集合,如在產品加工制造領域有產品加工精度,產品硬度,表面粗糙度等參數;服務具有的領域質量指標是由該服務所屬領域的領域本體決定。從上面的分析可以看出,QoS由不同層次的多側面指標構成,而且是與服務領域相關的,因此在構建服務質量指標體系用于綜合QoS計算時,需要考慮到上述的各方面情況。
假設對某服務S,C={q1,q2,…,qi}是用戶所關心指定的QoS屬性集,C'={qi+1,qi+2,…,qn}是平臺運營商所關心指定的QoS屬性集。那么在進行選擇與排序時相關服務的QoS可以表示為

其中,行{qj1,qj2,…,qjn},1≤j≤m,表示某個服務Sj分別在{q1,q2,…,qn}上的屬性值,列{q1k,q2k,…,qmk},1≤k≤n,表示所有相關服務在屬性qk上的值。
下面具體說明對服務的QoS請求的表示形式:用戶關心的QoS屬性集為C={q1,q2,…,qi},對每一個屬性指定他/她的要求時,表示形式如下

其中,reqj=(lj,uj,wj),1≤j≤i,lj、uj分別是用戶對于屬性qj可以接受的上、下限值。wj是權重因子,代表了用戶對屬性qj的重視喜好程度。運營商關心的QoS屬性集為C'={qi+1,qi+2,…,qn},對每一個屬性指定自己的偏好程度W′={wi+1,wi+2,…,wn}。
QoS感知的服務選擇主要負責選擇出滿足用戶要求的可用候選服務集,其主要的過程為,根據用戶給出的QoS需求向量,對滿足功能性需求及質量要求的候選服務進行過濾和選擇,提取出滿足用戶約束的可用候選服務集,進行選擇的具體過程在之前的文章[13]中介紹過,采用的是遺傳算法,由于篇幅所限,本文將不做詳細介紹。接下來,在滿足用戶約束的可用候選服務集已經獲得的條件下,本文將重點講解如何計算一個服務的用戶滿意度與運營商滿意度,以及如何設置一定的策略來對可用候選服務集進行排序選優。
對于可用候選服務Sj,計算得分的過程如下。
1)計算用戶對Sj的滿意度Satisfactionj1。

其中,0≤wi≤1,為用戶指定的對Qji的偏好程度。
2)計算服務提供商對Sj的滿意度Profit(Sj)。

其中,Earning(Sj)是用戶使用服務Sj需要付給運營商的費用,Cost(Sj)為Sj的運營維護成本。
3) 整合Satisfactionj,Profit(Sj),確定Sj的最終服務得分。

其中,w1+w2=1,w1,w2表示2者的影響因子,不同的值代表著基于不同的策略的服務排序選優方法。
對于服務iS,本文通過效用函數分別計算用戶和運營商對iS的滿意度。在設計效用函數時遵循的基本原則為:如果對iS的QoS屬性jq,用戶和運營商都沒有指定任何要求,那么在計算的時候,jq對滿意度不產生任何影響;如果對屬性jq,用戶和運應商只要有一個對其提出要求,那么jq會對計算的滿意度產生一定的影響。
由于不同QoS屬性在屬性值和單位上有很大的不同,直接進行計算,必然會因數量級差異影響計算結果的公平性。為避免這種差異對服務排序的影響,在計算得分時,首先需要對各屬性進行統一量化處理。本文將給出函數,ijQ,來計算任一服務iS在屬性jq上的得分,對于成本型的屬性,如服務的響應時間,價格等,其值越大,服務的質量越差,采用式(5)計算;對于效益型屬性,如服務的可靠性,安全性等,其值越大,服務的質量越好,采用式(6)計算。

式(1)經過統一量化處理后,得到下面的矩陣

事實上,不同QoS屬性對服務性能的貢獻存在著差異,而且用戶和運營商對不同QoS屬性也存在各自偏好。因此,在計算服務滿意度的過程中必須考慮這些因素。
對于服務Sj的屬性集C={q1,q2,…,qi},C'={qi+1,qi+2,…,qn},根據用戶、運營商設置的權重和偏好程度,分別計算他們對服務Sj的滿意度Satisfactionj、Profitj。運營商的滿意度,通過為用戶提供服務可以獲得的利潤的大小來體現。為此,需要將服務的成本屬性轉化為一定的價格度量。如在為某用戶提供服務Sj加工產品的過程中,運行維護Sj會產生機器磨損,人力資源的消耗等,就需要按照一定規則將這些消耗轉化成一定的價格度量;用戶的滿意度,本文采用簡單加權的方式來反映QoS屬性間的相對重要度以及用戶的偏好。Satisfactionj1、Profitj2計算方式如式(2)、式(3)所示。
式(7)經過計算后得到如下矩陣

對于服務Sj,Satisfactionj,Profitj分別代表了用戶和運營商對服務的滿意度。在得到式(8)后,接下來需要合并函數Score(sj)根據一定的策略來整合計算服務Sj的最終得分,這個函數的定義如式(4)所示。
當1w:2w=1:0時,為完全基于用戶策略的服務排序方法,此時用戶可以獲得最高的服務滿意度,而平臺運營商的利潤可能會受到一定的影響,但在服務反饋與監控中,有利于平臺運營商信譽度的提升。
當1w:2w=0:1時,為完全基于運營商策略的服務排序方法,此時運營商可以獲得最高的利潤,而資源需求方獲得的服務性能可能會受到一定的影響,在服務反饋與監控中,不利于平臺運營商信譽度的提升。
當1w:2w的比值介于此2者之間時,為基于用戶與運營商兩者的服務排序選優策略,綜合考慮了用戶與運營商的滿意度。在進行服務排序選優時,可以通過調整1w:2w的比值,靈活的按所設定的策略按需要進行選優。
不同比重的設定與運營商的運營策略有關,如果運營商目標是提供最好的服務,則可以通過完全面向用戶的策略來進行排序;如果目的是盡可能盈利與節能,則可以設置完全面向運營商的策略進行排序;同樣,也可以介于2者之間。
如圖1所示,服務集成平臺是負責服務資源的管理、運行、維護以及接入接出等任務的軟件平臺。在服務資源的應用運轉過程中,作為連接用戶與資源提供方的紐帶,平臺起到了核心支撐的作用,在資源提供方注冊發布服務資源時,需要為資源的虛擬化封裝和映射提供支持;在用戶提出請求的時候為需求描述提供支持;針對用戶需求,在服務選擇與排序選優的過程中,為選出滿足要求的服務,并按指定的策略進行排序選優提供支持。
服務選擇與排序模型作為平臺的一個核心部分,主要由服務注冊中心、服務選擇和排序中心、云終端用戶界面、第三方評測機構等組成。
1) 服務注冊中心:提供一個接口,使得資源提供方可以將各種服務資源的相關信息注冊發布到平臺中,注冊時QoS認證中心將對服務的QoS信息進行度量和認證,并將相關信息存到服務資產庫(WS-QOS)中,以備服務選擇與排名時可查詢相關信息。
2) 服務選擇和排序中心:主要有查詢解析器,服務選擇引擎,服務排序引擎,選優策略設定器組成。首先解析器接收并解析用戶請求,服務選擇引擎根據用戶要求選擇出滿足條件的可用的候選服務集合,然后根據策略設定器指定的選優排序策略,如基于用戶的策略、或基于運營商的排序策略等,由服務排序引擎從可用服務集中選出選定最終解決方案。
3) 云終端用戶界面:主要由SLA簽訂模塊組成,為用戶提供一個可以指定服務功能與QoS要求的接口,負責簽訂生成服務等級協議(SLA, service level agreement)[6]。
4) 第三方評測機構:監控用戶獲得的服務的QoS相關信息和收集用戶的反饋信息,查看是否滿足SLA要求,并根據監測與反饋信息計算平臺運營商的違約率和信譽度。專業評測機構取得的數據具有客觀、公正、可比性強等優勢,是應用中客觀性的重要保證。
首先,用戶通過云終端向平臺服務運營提出服務使用請求,協商簽訂服務等級協議,確定對服務的功能與非功能方面的請求,以及違約處理等。
接下來,相關模塊接收并解析用戶簽訂的服務等級協議,根據用戶請求服務的功能性需求和質量要求,服務選擇引擎檢索服務資產庫(WS-QOS)對平臺中的候選服務進行過濾和選擇,提取出所有滿足SLA要求的可用候選服務集。

圖1 系統的體系結構
在服務集成平臺的支撐下,將會有越來越多的服務資源發布注冊到平臺中。當用戶在請求服務時,針對用戶的要求,利用上述服務選擇與排序模型,可以快速的選出滿足用戶要求的服務,并且當有多個滿足用戶要求的候選服務時,可以根據設定的策略來進行服務排序選優,選定最終的解決方案,此原型系統為平臺中的服務選擇與排序選優提供了一個有效的解決方案。
本文通過一個應用實例來具體說明方法的流程,并證明方法的有效性。某語音通信系統的開發人員要對安全的端對端語音通訊系統進行升級,想要選擇現有的加密服務,用于在系統中。加密服務應接受數據流和輸出流加密的數據。假設服務的QoS屬性值可以直接從Web-QoS庫中獲得,用戶對加密服務的QoS具體要求如表1所示,其中,吞吐量(throughput)是指服務單位時間可以處理的數據包的大小,單位為兆比特每秒(Mbit/s),延遲(delay)是指由于進行加密處理引起的額外時間單位為毫秒(ms);安全性(security)指的是被攻擊者捕獲信息概率的大小;價格(price)指的是使用該服務需要支付的人民幣,單位為元/天。當用戶對某項屬性沒有上限,或下限要求時分別指定為Min, Max。

表1 用戶指定的QoS要求
平臺相關模塊接收到服務請求后,檢索服務資產庫,根據服務功能請求所獲得的服務列表及相應的QoS指標值如表2所示。

表2 具有相同功能服務
經服務選擇后篩選掉不滿足QoS要求的服務,獲得可用候選服務集,如表3所示。

表3 滿足用戶功能與質量要求的服務
對可用候選服務集,經過式(5)和式(6)處理,效用函數(2)和效用函數(3)計算后分別得到基于用戶與基于服務供應商策略的服務滿意度,如表4所示。

表4 用戶與運營商對可用候選服務的滿意度
而后根據合并函數(4),分別設置1w:2w的不同比值,即基于不同策略進行服務排序時,服務的選擇結果如表5所示。

表5 不同策略下的服務的得分計算情況
從表5可以看出,在不同的策略下,服務排序結果不同,返回的選擇結果依次為S5、S2、S4、S2,說明了算法的有效性,服務運營商完全可以根據運營策略選擇合適的選擇排序方式。
為了方便在服務集成平臺發現用戶需要的服務,并且對滿足要求的可用候選服務集按一定的策略進行排序選優,本文在考慮了服務運營商與用戶不同需求的基礎上,提出了一種多策略的QoS感知的云服務選擇與排序方法,彌補了以往僅僅基于用戶策略的服務選擇的不足,并搭建了基于服務集成平臺的服務選擇與排序原型系統,闡述了基于此平臺對服務資源的選擇與排序選優過程。文章最后給出應用實例,證明了算法的有效性。
本文只是服務選擇與排序選優的研究一個初始階段,還有許多問題有待進一步研究,如把所提服務的擴展QoS模型和選擇優化算法進一步應用到實際的大規模面向應用的服務系統開發中,以便對其可靠性,適應性和性能作更深入的分析和改進。
[1] ALONSO G, CASATI F, KUNO H, etal. Web Services Concepts,Architectures and Applications[M]. Berlin: Springer, 2004.
[2] OSULLIVAN J. What's in service towards accurate description of non-functional service properties[J]. IEEE Trans on Distributed and Parallel Database, 2002, 12(1): 117-133.
[3] BRUIJIN J, BUSSLER C, DOMINGUE J, etal. Web service modeling ontology (WSMO)[EB/OL]. http://www.wsmo.org/TR/d2/v1.3/, 2006.
[4] YAU S S, YE N, SARJOUGHIAN H, etal. Toward development of adaptive service-based software systems[J]. IEEE Trans on Services Computing, 2009. 247-260.
[5] YAU S S, HUANG J, YIN Y. Improving the trustworthiness of service QoS information in service-based systems[A]. The 7th Autonomic and Trusted Computing[C]. Xi’an, China, 2010.208-218.
[6] LEITNER P, MICHLMAYR A, ROSENBERG F, etal. Monitoring,prediction and prevention of SLA violations in composite services[A].IEEE International Conference On Web Service[C]. Miami, FL, USA,2010.369-376.
[7] STRUNK A. QoS-Aware service composition: a survey[A]. The 8th IEEE European Conference on Web Services[C]. Ayia Napa, Cyprus,2010.67-74.
[8] 郭得科, 任彥, 陳洪輝等.一種基于QoS約束的Web服務選擇和排序模型.上海交通大學學報[J]. 2007, 41(6): 870-875.GUO D K, REN Y, CHEN H H, etal. Web services selection and rankding model with QoS constraints[J]. Journal of Shanhai Jiaotong University,2007, 41(6): 870-875.
[9] STEPHEN S. YAU Y Y. QoS-based service ranking and selection for service-based system[A]. IEEE International Conference on Services Computing[C]. Washington DC, USA, 2011. 56-63.
[10] 吳健, 董金祥. 網絡制造中Web Service的服務質量模糊排序方法[J]. 計算機輔助設計與圖形學學報, 2005, 17(5): 1593-1599.WU J, DONG J X. QoS based web service fuzzy sort approach in internet-based manufacturing[J]. Journal of Computer Aided Design&Computer Graphics, 2005, 17(5): 1593-1599.
[11] Eyhab Al-Masri, Qusay H Mahmoud. Discovering the best web service[A]. 16th International World Wide Web Conference[C]. New York, USA, 2007. 1257-1258.
[12] CARDOSO J, SHETH A, MILLER J, etal. Quality of service for workflows and web service processes[J]. Web Semantics: Science,Services and Agents on the World Wide Web, 2004, 1(3): 281-308.
[13] YANG E F, ZHANG Y, LIU S J, etal. A hybrid approach to placement of tenants for service-based multi-tenant SaaS application[A].Asia-Pacific Services Computing Conference[C]. Jeju, Korea, 2011.124-130