本發(fā)明涉及計算機資源服務(wù)領(lǐng)域,尤其涉及一種粒子群服務(wù)選擇方法和系統(tǒng)。
背景技術(shù):
云計算將虛擬化后的計算機資源以服務(wù)的形式通過互聯(lián)網(wǎng)提供給用戶,是一種新型的、快速興起的商業(yè)化計算模式。云計算系統(tǒng)中的資源是由數(shù)量龐大的計算機群經(jīng)過虛擬化技術(shù)的處理以資源池的形式構(gòu)成的,這些資源包括計算資源、存儲資源、網(wǎng)絡(luò)資源以及軟件服務(wù)等。用戶根據(jù)自己的需求使用這些資源,可以大量節(jié)約用戶成本,并且獲得具有較高性價比的服務(wù)。
當云計算用戶需要一個具有較復雜的業(yè)務(wù)流程的服務(wù)時,傳統(tǒng)的方法是基于云計算平臺提供的基礎(chǔ)架構(gòu)構(gòu)建一個新服務(wù)來滿足用戶需求,但服務(wù)組合是一個更快速、高效地實現(xiàn)該服務(wù)的方法。服務(wù)組合就是將現(xiàn)有的服務(wù)按照一定的順序執(zhí)行,來完成一個較復雜的商業(yè)流程的過程。服務(wù)組合使用小粒度的服務(wù)相互通信和交互來實現(xiàn)大粒度的服務(wù),可以減少新應(yīng)用的開發(fā)時間和費用,而其最終目的是實現(xiàn)服務(wù)的重用性。通過組合各種粒度、各種功能的服務(wù),應(yīng)用開發(fā)者可以實現(xiàn)極其復雜的商業(yè)流程,達到服務(wù)增值的目標。
對于用戶來說,希望獲得功能符合要求同時服務(wù)質(zhì)量(QoS)在各方面都比較優(yōu)良的服務(wù)。因此在服務(wù)組合的過程中,如何從眾多的服務(wù)中選擇出滿足用戶QoS要求的優(yōu)化服務(wù)組合便成為了一個非常重要的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種粒子群服務(wù)選擇方法和系統(tǒng),以解決現(xiàn)有技術(shù)中 無法從眾多服務(wù)中選擇出滿足用戶QOS要求的優(yōu)化服務(wù)組合的技術(shù)問題。
為解決上述技術(shù)問題,本發(fā)明提供一種粒子群服務(wù)選擇方法,包括:
構(gòu)建云服務(wù)組合模型;
根據(jù)所述云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算;
基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合。
進一步地,所述構(gòu)建云服務(wù)組合模型包括:
根據(jù)服務(wù)組合請求進行服務(wù)集合的選擇;
在所選擇的服務(wù)集合中分析云計算環(huán)境下服務(wù)組合的服務(wù)路徑以及服務(wù)組合的基本組合模式。
進一步地,所述服務(wù)組合的基本組合模式包括:
串行、并行、選擇和/或循環(huán)模式。
進一步地,所述根據(jù)所述云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算包括:
根據(jù)服務(wù)組合的各基本組合模式下的計算公式形成服務(wù)組合的服務(wù)質(zhì)量計算模型,根據(jù)所述服務(wù)質(zhì)量計算模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算。
進一步地,所述基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合包括:
基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量對粒子進行編碼;
進行粒子群初始化;
針對所述云服務(wù)組合模型中不同的服務(wù)路徑計算每一條服務(wù)路徑的綜合服務(wù)質(zhì)量,以獲得每個粒子的適應(yīng)值,并確定所述粒子的群體最優(yōu);
對所述粒子的速度和位置進行更新,獲取更新后粒子的群體最優(yōu)結(jié)果并輸出為優(yōu)化的服務(wù)組合。
另一方面,本發(fā)明還提供一種粒子群服務(wù)選擇系統(tǒng),包括:
模型單元,用于構(gòu)建云服務(wù)組合模型;
計算單元,用于根據(jù)所述云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算;
選擇單元,用于基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合。
進一步地,所述模型單元還用于:
根據(jù)服務(wù)組合請求進行服務(wù)集合的選擇;
在所選擇的服務(wù)集合中分析云計算環(huán)境下服務(wù)組合的服務(wù)路徑以及服務(wù)組合的基本組合模式。
進一步地,所述服務(wù)組合的基本組合模式包括:
串行、并行、選擇和/或循環(huán)模式。
進一步地,所述計算單元還用于:
根據(jù)服務(wù)組合的各基本組合模式下的計算公式形成服務(wù)組合的服務(wù)質(zhì)量計算模型,根據(jù)所述服務(wù)質(zhì)量計算模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算。
進一步地,所述選擇單元還用于:
基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量對粒子進行編碼;
進行粒子群初始化;
針對所述云服務(wù)組合模型中不同的服務(wù)路徑計算每一條服務(wù)路徑的綜合服務(wù)質(zhì)量,以獲得每個粒子的適應(yīng)值,并確定所述粒子的群體最優(yōu);
對所述粒子的速度和位置進行更新,獲取更新后粒子的群體最優(yōu)結(jié)果并輸出為優(yōu)化的服務(wù)組合。
可見,在本發(fā)明提供的粒子群服務(wù)選擇方法和系統(tǒng)中,能夠快速、高效地從眾多的服務(wù)中選擇出滿足用戶QoS要求的優(yōu)化服務(wù)組合,從而給用戶提供所需要的服務(wù),其不僅在功能上能夠滿足用戶需求,同時也可以在非功能屬性上滿足用戶對于服務(wù)質(zhì)量QoS多個屬性的要 求。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例粒子群服務(wù)選擇方法的基本流程示意圖;
圖2是本發(fā)明實施例云服務(wù)組合模型示意圖;
圖3是本發(fā)明實施例服務(wù)組合的基本組合模式示意圖;
圖4是本發(fā)明實施例服務(wù)組合簡化例圖;
圖5是本發(fā)明實施例粒子群服務(wù)選擇系統(tǒng)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例首先提供一種粒子群服務(wù)選擇方法,參見圖1,包括:
步驟101:構(gòu)建云服務(wù)組合模型;
步驟102:根據(jù)所述云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算;
步驟103:基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合。
其中,云服務(wù)組合模型是在分析云計算環(huán)境下服務(wù)組合的過程以及服務(wù)組合的基本組合模式后形成的。其中,首先可以在用戶提交服 務(wù)組合請求的功能性描述(服務(wù)組合拓撲結(jié)構(gòu)和子任務(wù)功能等)與非功能性描述(服務(wù)組合的QoS約束等)后將服務(wù)組合建模為一個工作流或者有向無環(huán)圖;然后選擇符合每個任務(wù)功能的服務(wù)集合,并在隨后的步驟中自實現(xiàn)每個任務(wù)的服務(wù)集合的服務(wù)實例中選擇滿足用戶QoS約束(如價格、時延、可靠性等)的服務(wù)實例,并按照子任務(wù)的執(zhí)行順序依次調(diào)用各個服務(wù)實例并將執(zhí)行結(jié)果返回給用戶。具體的云服務(wù)組合模型可以參見圖2所示。
可選地,構(gòu)建云服務(wù)組合模型可以包括:根據(jù)服務(wù)組合請求進行服務(wù)集合的選擇;在所選擇的服務(wù)集合中分析云計算環(huán)境下服務(wù)組合的服務(wù)路徑以及服務(wù)組合的基本組合模式。
其中,服務(wù)組合的基本組合模式可以包括:串行、并行、選擇和/或循環(huán)模式。圖3中示出了服務(wù)組合的四種基本組合模式。這些基本組合模式可以構(gòu)造出大量結(jié)構(gòu)不同的復合服務(wù)應(yīng)用。在基于功能需求選擇服務(wù)組合后,可以基于用戶的QoS要求和系統(tǒng)的負載均衡需求從大量備選服務(wù)組合路徑中選出一個或多個最優(yōu)路徑,每個備選服務(wù)組合路徑中均可以包含有多種拓撲結(jié)構(gòu),如串行和并行等。
其中,根據(jù)云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算可以包括:根據(jù)服務(wù)組合的各基本組合模式下的計算公式形成服務(wù)組合的服務(wù)質(zhì)量計算模型,根據(jù)所述服務(wù)質(zhì)量計算模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算。
表1 服務(wù)組合的各基本組合模式下的計算公式
表1為云服務(wù)QoS在四種基本組合模式下的計算公式。其中,Qt、Qc、Qa、Qr分別代表n個原子服務(wù)構(gòu)成的組合服務(wù)的時間、費用、可用性、信譽度;分別代表原子服務(wù)i的時間、費用、可用性、信譽度;循環(huán)模式計算式中的k表示服務(wù)迭代的次數(shù);選擇模式計算式中的pi代表原子服務(wù)i被選擇的概率。
服務(wù)組合由一定數(shù)量的原子服務(wù)構(gòu)成,因此服務(wù)組合的QoS與構(gòu)成它的每個原子服務(wù)的QoS有關(guān)。如果服務(wù)組合中存在多種基本組合模式時,可以同時采用不同的服務(wù)組合計算公式,按一定的步驟計算服務(wù)組合的QoS。計算服務(wù)組合的QoS值主要是采用自底向上的方法,把包含基本組合模式的服務(wù)組合簡化成一個與本服務(wù)組合性能等價的抽象的服務(wù)質(zhì)量計算模型,利用上述四種基本組合模式下的計算公式計算服務(wù)質(zhì)量計算模型的QoS值并重復以上操作步驟,最后得到整個服務(wù)組合的QoS的值。
其中,基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合可以包括:
步驟S1:基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量對粒子進行編碼。
在編碼過程中,參考圖4的服務(wù)組合簡化例圖,首先對圖4中的各個服務(wù)結(jié)點按照順序進行編號;然后,將虛擬服務(wù)S和E作為服務(wù)組合的起始點和終止點,圖中節(jié)點的個數(shù)為粒子的D維,由于每一個給定的服務(wù)組合其所包含的服務(wù)結(jié)點數(shù)目相同,因此本發(fā)明實施例中可以采用定長編碼,將服務(wù)組合的路徑映射為粒子空間中的個體:第一個粒子和最后一個粒子的位置總是圖中的頂點S和E,取值為-1,粒子位置的每一維的值是圖4中相應(yīng)位置對應(yīng)的某一個服務(wù)組合實例的編號,如果對應(yīng)位置的服務(wù)組合不在服務(wù)組合路徑中,則取0。
步驟S2:進行粒子群初始化。
本步驟中,可以對粒子的位置和速度進行隨機初始化,并按照對應(yīng)的限制值進行限制。具體地,可以利用隨機方法產(chǎn)生一組滿足約束 條件的從S到E的初始服務(wù)組合路徑集,初始服務(wù)組合路徑集(即粒子群集)中的一個個體對應(yīng)于圖4中的一條服務(wù)組合路徑。假設(shè)初始服務(wù)組合粒子群規(guī)模為N,從集合PS中選取滿足約束條件的服務(wù)組合路徑可以用Constr(PS)表示,利用隨機方法選擇S到E的一條服務(wù)組合路徑可以用RandS(S,E)表示。當集合PS的個數(shù)小于N時,循環(huán)執(zhí)行PS=PS+Constr(RandS(S,E)),直至初始服務(wù)組合粒子群規(guī)模達到N。
步驟S3:針對所述云服務(wù)組合模型中不同的服務(wù)路徑計算每一條服務(wù)路徑的綜合服務(wù)質(zhì)量,以獲得每個粒子的適應(yīng)值,并確定所述粒子的群體最優(yōu)。
本步驟中,計算每個粒子的適應(yīng)值需要用到適應(yīng)度函數(shù)。通常,用戶會期望服務(wù)費用小,執(zhí)行時間盡量少,服務(wù)可用性和信譽度盡量高,也就是希望在QoS上得到滿足以上目標的優(yōu)化目標。因此本發(fā)明實施例可以定義每一條服務(wù)組合路徑的綜合服務(wù)質(zhì)量函數(shù)為適應(yīng)度函數(shù)。粒子適應(yīng)值的計算主要是根據(jù)選擇出來的服務(wù)組合路徑計算當前路徑的QoS值以計算每個粒子的適應(yīng)值,確定粒子的個體最優(yōu)和群體最優(yōu)。對于每個粒子,將其適應(yīng)值與個體最優(yōu)適應(yīng)值進行比較,如果更好,則將其作為粒子的個體最優(yōu)值,用此粒子的當前位置更新個體最優(yōu);然后將其個體最優(yōu)與群體最優(yōu)進行比較,若更好,則將其作為本次迭代的群體最優(yōu)。
步驟S4:對所述粒子的速度和位置進行更新,獲取更新后粒子的群體最優(yōu)結(jié)果并輸出為優(yōu)化的服務(wù)組合。
本發(fā)明實施例中,粒子的速度與位置的更新可以依據(jù)以下公式來進行:
具體來說就是先運用粒子本身所經(jīng)歷的最佳位置來對當前位置進行影響,隨后作進一步的調(diào)整,其依據(jù)是粒子群經(jīng)歷的全局最佳位置。
隨后,如果在經(jīng)歷粒子的速度和位置更新后,依然沒有達到結(jié)束條件(如是否達到最大迭代次數(shù)),則可以轉(zhuǎn)至步驟S2進行再次計算。否則,則直接輸出當前群體最優(yōu)結(jié)果,作為優(yōu)化的服務(wù)組合。
本發(fā)明實施例還提供一種粒子群服務(wù)選擇系統(tǒng),參見圖5,包括:
模型單元501,用于構(gòu)建云服務(wù)組合模型;
計算單元502,用于根據(jù)所述云服務(wù)組合模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算;
選擇單元503,用于基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量進行粒子群服務(wù)選擇,獲取優(yōu)化的服務(wù)組合。
其中,模型單元501還可以用于:
根據(jù)服務(wù)組合請求進行服務(wù)集合的選擇;
在所選擇的服務(wù)集合中分析云計算環(huán)境下服務(wù)組合的服務(wù)路徑以及服務(wù)組合的基本組合模式。
其中,服務(wù)組合的基本組合模式可以包括:串行、并行、選擇和/或循環(huán)模式。
其中,計算單元502還可以用于:根據(jù)服務(wù)組合的各基本組合模式下的計算公式形成服務(wù)組合的服務(wù)質(zhì)量計算模型,根據(jù)所述服務(wù)質(zhì)量計算模型進行云服務(wù)的服務(wù)質(zhì)量屬性計算。
其中,選擇單元503還可以用于:
基于所述云服務(wù)組合模型和所計算的服務(wù)質(zhì)量對粒子進行編碼;
進行粒子群初始化;
針對所述云服務(wù)組合模型中不同的服務(wù)路徑計算每一條服務(wù)路徑的綜合服務(wù)質(zhì)量,以獲得每個粒子的適應(yīng)值,并確定所述粒子的群體最優(yōu);
對所述粒子的速度和位置進行更新,獲取更新后粒子的群體最優(yōu)結(jié)果并輸出為優(yōu)化的服務(wù)組合。
可見,在本發(fā)明實施例提供的粒子群服務(wù)選擇方法和系統(tǒng)中,能夠快速、高效地從眾多的服務(wù)中選擇出滿足用戶QoS要求的優(yōu)化服務(wù) 組合,從而給用戶提供所需要的服務(wù),其不僅在功能上能夠滿足用戶需求,同時也可以在非功能屬性上滿足用戶對于服務(wù)質(zhì)量QoS多個屬性的要求。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。