徐輝, 曹健
軟件從傳統(tǒng)的面向?qū)ο?Object-Oriented Programming,OOP)的開發(fā)方式,逐漸轉(zhuǎn)變到了面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture, SOA)的開發(fā)方式。Web Service具有松散耦合以及平臺無關(guān)等優(yōu)良特性,在Internet環(huán)境下不同的應(yīng)用,可以方便地進(jìn)行互操作和集成,所以越來越多的服務(wù)提供商,把應(yīng)用程序作為服務(wù)發(fā)布在網(wǎng)上。
UDDI(Universal Description Discovery & Intergration)規(guī)范為用戶提供了一個(gè)統(tǒng)一的發(fā)布和查找 WebService服務(wù)的集成平臺[1],但它只提供了功能性需求,企業(yè)在查找服務(wù)時(shí),除了對功能需求之外對非功能需求(即服務(wù)質(zhì)量)也有較高要求,為了使企業(yè)能夠從眾多的 WebService服務(wù)中,選擇一個(gè)高質(zhì)量的服務(wù),我們對 UDDI進(jìn)行擴(kuò)展和改進(jìn),加入WEB服務(wù)質(zhì)量管理模型,形成了QoSUDDI注冊中心。
傳統(tǒng)的Web Service模型,是基于服務(wù)注冊中心、服務(wù)提供商和服務(wù)請求者3種角色的[1]??蛻粼诿鎸Υ罅客|(zhì)的WebService服務(wù)時(shí),存在一個(gè)選擇的問題,該模型顯然不能滿足這種篩選的需求。所以,在此基礎(chǔ)上又產(chǎn)生了支持QoS的Web Service模型[2-3],其中有服務(wù)發(fā)布、服務(wù)發(fā)現(xiàn)、服務(wù)排序、服務(wù)調(diào)用、服務(wù)反饋等。但上述模型沒有把不同的服務(wù)歸類,為了更好地進(jìn)行管理和提高查找服務(wù)的效率,我們在QoSUDDI中定義了不同的領(lǐng)域,各種服務(wù)按應(yīng)用歸屬于各個(gè)領(lǐng)域,每個(gè)領(lǐng)域有相應(yīng)的樹型指標(biāo)體系,服務(wù)提供者通過定義指標(biāo)值來描述服務(wù)。
由于評價(jià)信息的復(fù)雜性,領(lǐng)域內(nèi)的指標(biāo)值存在著模糊性,所以模型必須支持模糊評價(jià),有的服務(wù)質(zhì)量模型把指標(biāo)分成了靜態(tài)、動態(tài)和統(tǒng)計(jì)三種類型[6],這種分類太過抽象,不易實(shí)現(xiàn);有的服務(wù)質(zhì)量模型定義的指標(biāo)太具體化,缺乏通用性[3] [11]。我們的QoSUDDI模型力求提供一個(gè)通用性的平臺,模糊類型的劃分既全面又容易實(shí)現(xiàn)。
為了幫助服務(wù)請求者更好地從滿足需求的眾多服務(wù)中,挑選最適合自己的服務(wù),服務(wù)排序是必不可少的。因?yàn)橹笜?biāo)具有模糊性,所以排序中存在指標(biāo)歸一化的問題,有的采用相似度來進(jìn)行排序[11],只是考慮了與近似值的相近程度,沒有考慮效益型和成本型的不同;有的先把不同類型的指標(biāo)歸一化為精確值,加權(quán)求和后再進(jìn)行排序[4],沒有考慮到指標(biāo)間因模糊性而帶來的差別。在QoSUDDI的服務(wù)排序中,先把原子指標(biāo)的不同模糊值歸一化為三角模糊數(shù),再把三角模糊數(shù)加權(quán)求和,然后將得到的三角模糊數(shù)綜合評價(jià)值,進(jìn)行去模糊化處理,根據(jù)各個(gè)非模糊化值對服務(wù)進(jìn)行排序,供服務(wù)請求者進(jìn)行選擇。
為了保持指標(biāo)評價(jià)值的客觀性和公正性,在模型中存在用戶反饋。有的采用中值量化來進(jìn)行去噪聲處理[15],沒有考慮到指標(biāo)值的模糊型;有的提出了一個(gè)反饋相似度的概念,由反饋相似度來決定其在反饋值中所占的比重[14],但對不同的模糊類型沒有給出不同的處理方案。在QoSUDDI的服務(wù)反饋中,借鑒了反饋相似度的做法,根據(jù)指標(biāo)的不同模糊類型作不同處理,把反饋值和原有值綜合求得校正值,并把校正值按模糊類型還原為相應(yīng)的模糊表示。
在文中我們先提出一個(gè)改進(jìn)的系統(tǒng)模型(QoSUDDI),然后從領(lǐng)域?qū)<摇⒎?wù)提供者和服務(wù)請求者3種角色的工作中介紹系統(tǒng)實(shí)現(xiàn)。
我們在綜合了文獻(xiàn)[2-5]的基礎(chǔ)上,提出了一個(gè)面向服務(wù)的改進(jìn)模型(圖 1)。領(lǐng)域?qū)<铱山ⅰ⑿薷暮蛣h除領(lǐng)域,也可對領(lǐng)域內(nèi)的指標(biāo)進(jìn)行管理;服務(wù)提供者可發(fā)布服務(wù)和管理服務(wù);服務(wù)請求者可根據(jù)指標(biāo)值進(jìn)行服務(wù)查找,并按自己的要求對查找到的各個(gè)服務(wù)進(jìn)行排序,以便選擇最適合自己的高質(zhì)量服務(wù),在調(diào)用好服務(wù)后對該服務(wù)進(jìn)行反饋。
隨著UDDI的普及,服務(wù)提供商和服務(wù)請求者,都已經(jīng)習(xí)慣了用它來進(jìn)行 WEB服務(wù)的發(fā)布和查找,所以我們的QoSUDDI需要兼容原有的 UDDI,是在它的基礎(chǔ)上進(jìn)行改造和擴(kuò)展的,這樣做更容易得到普及和應(yīng)用[10]。
圖1 系統(tǒng)模型
具體做法是:在分析器中先解讀用戶請求,如果是屬于UDDI操作信息的,轉(zhuǎn)發(fā)給原有UDDI進(jìn)行處理,如果是屬于擴(kuò)展的操作,則轉(zhuǎn)發(fā)給QoSUDDI擴(kuò)展部分的API進(jìn)行處理。當(dāng)然在QoSUDDI擴(kuò)展部分中,某一個(gè)操作也有可能前半部分屬于UDDI操作,后半部分屬于QoSUDDI擴(kuò)展部分的操作,所以QoSUDDI擴(kuò)展部分也會向原有UDDI中心發(fā)送UDDI請求,并得到相應(yīng)的SOAP返回消息。如圖2所示。
圖2 QoSUDDI對UDDI的兼容
領(lǐng)域?qū)<业囊粋€(gè)工作是對領(lǐng)域進(jìn)行管理,包括建立領(lǐng)域、對所屬領(lǐng)域進(jìn)行修改和刪除;另一個(gè)工作是定義所屬領(lǐng)域內(nèi)的各個(gè)指標(biāo),包括建立、修改和刪除指標(biāo)。我們著重介紹領(lǐng)域內(nèi)指標(biāo)體系的建立。
領(lǐng)域中的指標(biāo)是樹型結(jié)構(gòu),我們只對處于葉子結(jié)點(diǎn)上的原子指標(biāo)進(jìn)行評價(jià)。在參考文獻(xiàn)[13]的基礎(chǔ)上,我們把指標(biāo)類型定義為5種類型,分別是固定型、等級型、區(qū)間型、語言型和組件型,并對其中的組件型和語言型的處理作了改進(jìn)。
2.2.1 組件型的處理
組件型的參數(shù)按取值方向分為4種不同的類型,分別是來自服務(wù)提供者、服務(wù)請求者、外部接口和外部統(tǒng)計(jì)。
比如網(wǎng)上訂房系統(tǒng)中的指標(biāo)internetPrice(上網(wǎng)費(fèi)用),總費(fèi)用S的計(jì)算公式如下:
其中t1和t是時(shí)間,x是用時(shí)在t1內(nèi)收取的費(fèi)用,y是每分鐘收取的費(fèi)用。把計(jì)算出的總費(fèi)用除以總時(shí)間t,得出每分鐘的上網(wǎng)費(fèi)用。調(diào)用該組件時(shí),有t,t1,x,y四個(gè)參數(shù),其中t1,x和y是服務(wù)提供者在定義服務(wù)時(shí)輸入的,t參數(shù)是服務(wù)請求者在請求評價(jià)時(shí)輸入的。
再比如網(wǎng)上訂房系統(tǒng)中的指標(biāo) RentCar(租車方便程度),它的參數(shù)是來自一個(gè)權(quán)威機(jī)構(gòu)對于出租車經(jīng)過其周邊路上的每小時(shí)流量的統(tǒng)計(jì),屬于其中的外部統(tǒng)計(jì)值,在組件內(nèi)通過計(jì)算得出一個(gè)0-1之間的數(shù)值。
2.2.2 語言型的處理
在文獻(xiàn)[13]中,采用計(jì)數(shù)的方法把語言集合進(jìn)行了等分,缺乏評價(jià)時(shí)的靈活性,對此我們作了改進(jìn),允許評價(jià)時(shí)的不等分處理。例如,領(lǐng)域?qū)<叶x某一指標(biāo)時(shí)用描述語言<差,較差,一般,較好,好>,并在0到10之間指定對應(yīng)的評價(jià)值,如為<0,2,5,8,10>。當(dāng)服務(wù)提供者定義服務(wù)時(shí)指定該指標(biāo)值為“較好”,則它的三角模糊數(shù)為(5/10,8/10,10/10),如是效益性,為(0.5,0.8,1);如是成本型,則用(1-0.5,1-0.8,1-1)=(0.5,0.2,0),并調(diào)換位置為(0,0.2,0.5)。
服務(wù)提供者可以發(fā)布服務(wù),在發(fā)布服務(wù)時(shí),主要提供對服務(wù)中各個(gè)原子指標(biāo)值的描述,描述格式?jīng)Q定于指標(biāo)的不同模糊類型;同時(shí),服務(wù)提供者也可以修改和刪除所擁有的服務(wù),刪除某一服務(wù)后,該服務(wù)對應(yīng)的指標(biāo)值也一并刪除。
服務(wù)請求者把所需服務(wù)的各項(xiàng)功能性描述和非功能性描述遞交給QoSUDDI,QoSUDDI從數(shù)據(jù)庫中取得滿足條件的服務(wù)列表,按用戶的要求排序后輸出給服務(wù)請求者,服務(wù)請求者選擇其中最適合自己的服務(wù)進(jìn)行調(diào)用,調(diào)用后對該服務(wù)的某些指標(biāo)進(jìn)行反饋評價(jià)。
服務(wù)發(fā)現(xiàn)的功能在本文中不作研究,我們著重探討如何把查找到的服務(wù)按照用戶的需求,進(jìn)行排序輸出,所以現(xiàn)在假定用戶在某一領(lǐng)域內(nèi)查找時(shí),該領(lǐng)域的所有服務(wù)都滿足用戶的功能需求。
2.4.1 服務(wù)排序
服務(wù)請求者提交服務(wù)需求后,在所選領(lǐng)域的樹型指標(biāo)中,選擇排序所依據(jù)的原子指標(biāo)及相應(yīng)權(quán)重(如圖3所示),QoSUDDI中心進(jìn)行排序后,向服務(wù)請求者返回相應(yīng)的服務(wù)列表。
圖3 某領(lǐng)域的樹型指標(biāo)體系
服務(wù)排序的算法思想是,先把原子指標(biāo)的不同模糊值表示轉(zhuǎn)化成三角模糊數(shù)表示,然后對每個(gè)服務(wù)利用三角模糊數(shù)的加法和乘法進(jìn)行加權(quán)求和,再把得到的三角模糊數(shù)綜合評價(jià)值進(jìn)行非模糊化處理,根據(jù)每個(gè)服務(wù)的非模糊化值進(jìn)行從大到小排序[13]。程序流程圖如圖4所示:
圖4 服務(wù)排序算法的流程圖
2.4.2 服務(wù)反饋
如文獻(xiàn)[14]所述,服務(wù)提供者對服務(wù)的指標(biāo)值進(jìn)行量化時(shí),出于吸引更多用戶的角度,可能會給出高于實(shí)際水平的值,所以我們采用服務(wù)請求者調(diào)用服務(wù)后,對服務(wù)的 QoS指標(biāo)值進(jìn)行反饋。
不過,我們認(rèn)為,不是所有指標(biāo)都適合用戶反饋,應(yīng)該分成三種不同的情況。
① 對于一些不存在服務(wù)提供者提供不可信的指標(biāo),比如價(jià)格等,不需要進(jìn)行用戶反饋。
② 對于定義成組件型的指標(biāo),如服務(wù)可用性,它的參數(shù)是外部接口值或是外部統(tǒng)計(jì)得到,也不存在可信問題。
③ 其它如用戶滿意度等主觀性較強(qiáng)的指標(biāo),一些服務(wù)提供者為了吸引更多用戶,可能會發(fā)布一些高于實(shí)際水平的值,客戶應(yīng)該有反饋權(quán)。
當(dāng)然哪些指標(biāo)允許用戶反饋需要領(lǐng)域?qū)<叶x指標(biāo)時(shí)確定,可在指標(biāo)類中增加一個(gè)屬性代表是否允許進(jìn)行評價(jià)。
但服務(wù)請求者也可能由于自身的因素,發(fā)布一些惡意的虛擬數(shù)據(jù),這樣會直接影響反饋的準(zhǔn)確性和可靠性,所以我們必須對 QoS反饋進(jìn)行去噪聲處理。我們?nèi)ピ肼曁幚淼那疤崾?,返回?QoS反饋中健康數(shù)據(jù)占多數(shù),且基于返回的QoS屬性值往往分布在真實(shí)QoS的兩側(cè),采用中值量化來進(jìn)行去噪聲處理[15]。
因?yàn)槲覀兊闹笜?biāo)值所具有的模糊性,我們在參考論文[14]的基礎(chǔ)上提出了用海明距離進(jìn)行去噪聲處理。根據(jù)指標(biāo)類型分三種不同情況進(jìn)行處理。
① 固定型和等級型
假設(shè)對一個(gè)服務(wù)Si的某個(gè)指標(biāo)有n個(gè)評價(jià),第i個(gè)評價(jià)值為qi,它在服務(wù)中的原有QoS值為q,求出每個(gè)評價(jià)值相對原有值的貼近度di=|qi-q|,相應(yīng)權(quán)值為fi=1-di。把n個(gè)權(quán)值累加后得到最后每個(gè)反饋的相對權(quán)值再用該權(quán)值對每個(gè)反饋值qi進(jìn)行加權(quán)求和得到反饋綜合值并與原有值q平均后得到校正值
對于等級型,要把校正值還原為等級描述,計(jì)算出來的校正值可能位于兩個(gè)等級之間,可采用四舍五入,如值為7.8,則近似為8,如是7.2,則近似為7。
② 區(qū)間型
把原有值的區(qū)間描述轉(zhuǎn)換成三角模糊數(shù),l、m、r各個(gè)用戶反饋的區(qū)間描述也轉(zhuǎn)換成三角模糊數(shù),把它的左、中、右值分別按上述辦法與原有值的左、中、右值比較,計(jì)算貼近度和權(quán)值,再計(jì)算出反饋值,并與原有值的左、中、右值l、m、r求平均得校正值l′′、m′′、r′′。
然后把上面用三角模糊數(shù)表示的校正值,還原為區(qū)間表示的評價(jià)值。已知[α,β] 為評價(jià)值區(qū)間,區(qū)間[l,r] 為該評價(jià)區(qū)間內(nèi)的一個(gè)評價(jià)值,三角模糊數(shù)現(xiàn)在已知評價(jià)值區(qū)間[α,β] 和三角模糊數(shù),可以求出評價(jià)值區(qū)間[l,r]
③ 語言型
為簡化計(jì)算,我們直接取中值作為評價(jià)值,如語言集合為<差,較差,一般,較好,好>,對應(yīng)評價(jià)值為<0,2,5,8,10>,用戶評價(jià)時(shí)選擇“較好”,則取反饋值為8,如選擇“較差”,則反饋值為2。然后按上述等級型中的辦法求出校正值,并與評價(jià)值比較,可能該校正值落在兩個(gè)評價(jià)值之間,按接近程度取其中的一個(gè)評價(jià)值。
本文提出了一個(gè)兼容UDDI的Web服務(wù)質(zhì)量模型,即QoSUDDI模型,在系統(tǒng)實(shí)現(xiàn)中重點(diǎn)介紹了對原有UDDI的兼容、指標(biāo)的模糊處理、對同質(zhì)服務(wù)的排序輸出和對用戶反饋的去噪聲處理。我們以該QoSUDDI模型為中心加上相應(yīng)的前臺,就可以形成一個(gè)較為完整的服務(wù)質(zhì)量評價(jià)系統(tǒng)。
[1] 顧寧. Web Services 原理與研發(fā)實(shí)踐[M] .北京:機(jī)械工業(yè)出版社,2006.
[2] Liu Yutu .QoS Computation and Policing in Dynamic Web Service Selection[C] // the 13th international World Wide Web conference on Alternate track. International World Wide Web Conference, New York,NY,USA,2004.
[3] 楊勝文.一種支持QoS約束的Web服務(wù)發(fā)現(xiàn)模型[J] .計(jì)算機(jī)學(xué)報(bào),2005,28(4):589-594.
[4] Xu Ziqiang.reputation-enhanced web services discovery with Qos[D] . Ontario,Canada:Queen's University Kingston,2006:66-73.
[5] Chen Zhou.Semantics in Service Discovery and QoS Measurement[J] .IEEE Computer Society IT Pro,2005.7(2):29-34.
[6] 鄭曉霞.基于QoS的Web服務(wù)發(fā)現(xiàn)模型研究[J] .情報(bào)科學(xué),2007,25(2):249-253.
[7] 牟玉潔.面向服務(wù)質(zhì)量的交互式 Web服務(wù)選擇[J] .計(jì)算機(jī)集成制造系統(tǒng),2006,12(5):788-794.
[8] Ivan Mecar.Agent-oriented Semantic Discovery and Matchmaking of Web Services[C] // Proceedings of the 8th International Conference, Zagreb,2005:603-607.
[9] 宋順林.一種支持QoS約束的Web服務(wù)質(zhì)量模型[J] .江蘇大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(5):450-453.
[10] 奚越.Web服務(wù)質(zhì)量管理模型[D] .上海:上海交通大學(xué),2008.
[11] 吳健.網(wǎng)絡(luò)制造中WebService的服務(wù)質(zhì)量模糊排序方法[J] .計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2005,17(7):1594-1599.
[12] 賈利軍.電子商務(wù)環(huán)境中電子服務(wù)質(zhì)量評價(jià)模型研究[D] . 武漢:華中科技大學(xué),2006.
[13] 劉英華.可配置模糊綜合評價(jià)系統(tǒng)研究與實(shí)現(xiàn)[D] .上海:上海交通大學(xué),2002.
[14] 李研.一種考慮 QoS數(shù)據(jù)可信性的服務(wù)選擇方法[J] .Journal of software,2008,19(10):2620-2627.
[15] 夏雷.基于反饋QoS的Web服務(wù)發(fā)現(xiàn)的研究與實(shí)現(xiàn)[D] .北京:中國石油大學(xué),2007.