專利名稱:一種語義Web服務組合方法
技術領域:
本發(fā)明涉及一種Web服務組合方法,尤其是涉及一種語義Web服務組合方法。
背景技術:
隨著云計算技術的不斷發(fā)展,互聯(lián)網(wǎng)上各類Web服務的數(shù)量飛速增長。然而,單個Web服務提供的功能極其有限,大多數(shù)應用都難以通過單一 Web服務予以實現(xiàn),往往需要把若干個Web服務組合起來,共同滿足應用需求。其次,面向服務的軟件開發(fā)方法逐漸被全球的開發(fā)者所接受,而服務質量動態(tài)變化、用戶需求個性化、多樣化,如何實時抽取服務質量最好的若干服務,并能按照用戶需求自動組合出可執(zhí)行的服務流程方案,也將成為未來軟件業(yè)發(fā)展的巨大機遇和挑戰(zhàn)。另外,Web服務的分布式特性與傳統(tǒng)的組件系統(tǒng)不同,服務本身處于分布式的環(huán)境中,面對不斷涌現(xiàn)出來的服務,以專家靜態(tài)規(guī)定服務組合的方式是遠遠不夠的,如何高效、正確、智能的將現(xiàn)有的服務組合成新的服務成為現(xiàn)在國內(nèi)外的研究熱點。目前,Web服務組合方法主要包括以下幾種(I)基于工作流的方法。工作流可被用作分布活動的協(xié)調執(zhí)行引擎或服務組合方案的描述方式,其中以BPEL,WSFL等工作流建模語言最為常見。但是,該方法主要以人工編輯為主,不能實現(xiàn)自動服務組合。(2)基于人工智能(Al)規(guī)劃的方法。該方法借鑒了 Al中的形式化方法和邏輯推理,但它時間復雜度高,無法適應問題規(guī)模較大情況下的服務組合。(3)基于圖搜索的方法。該方法將服務按照概念輸入集合和概念輸出集合構建成服務依賴圖(SDG)。將服務組合算法轉換成從有向圖中查找最優(yōu)路徑的問題。該方法效率較高,但僅考慮了概念語義,而未考慮QoS。(4)基于信息檢索的方法。該方法以SQL查詢來實現(xiàn)服務組合,避免了傳統(tǒng)服務組合算法極占內(nèi)存的缺點,適用于更大規(guī)模服務集合的組合計算。但由于其對服務抽象度要求過高,限制了實際應用價值;另外,對于多QoS、語義關系復雜的情況下,該方法效率會大幅下降。(5)單一 QoS的圖搜索方法。此類方法中服務的選擇策略存在多種形式,包括局部最優(yōu)、全局最優(yōu)、混合最優(yōu)等,算法的實現(xiàn)多基于貪心算法、動態(tài)規(guī)劃算法、遺傳算法等智能算法。通過服務接口方式及根據(jù)QoS啟發(fā)式規(guī)則對子圖進行裁剪來生成最優(yōu)組合方案。但存在以下不足以單一 QoS屬性概括服務的所有非功能性特性;只返回一個符合自定義規(guī)則的最佳搜索結果;只能選擇某一個服務進行配置;動態(tài)QoS適應性較差。
發(fā)明內(nèi)容
本發(fā)明的上述技術問題主要是通過下述技術方案得以解決的一種語義Web服務組合方法,其特征在于,包括以下步驟步驟I. Top K服務中正向概念擴展階段根據(jù)用戶需求,在服務的功能性要求滿足的情況下,依次從服務的非功能目標形成的Skyline中選擇備選服務進行概念擴展;概念擴展過程將測試比較當前狀態(tài)至目標概念的距離及相似度,對擴展的各個狀態(tài)進行取舍,從而構建多條從Cl到CO的概念擴展鏈,即多套服務調用備選方案;其中,概念擴展鏈中每條鏈由概念與提供此概念的服務組成;步驟2. Top K服務中反向方案擇優(yōu)階段由于步驟I中生成的概念擴展鏈一般包含一簇服務組合方案,為把其中的單個組合方案分離出來,并選取其中最優(yōu)的幾套方案返回,則需要將概念擴展鏈轉換成基于與或樹的服務組合方案描述模型,將組合方案生成過程轉換為二叉樹的遍歷問題,其中,左節(jié)點表示服務前置條件,而右節(jié)點表示某前置條件可滿足的服務;同時,對所有服務組合方案進行擇優(yōu),生成全局QoS最優(yōu)的K個組合方案;步驟3.采用基于紙帶模型的Skyline算法優(yōu)化基于多維QoS的Top K服務組合方法按照設定的規(guī)則對步驟2中產(chǎn)生的服務組合方案進行智能裁剪,生成最簡服務組合 方案樹,在服務擇取過程中,采用基于紙帶模型的Skyline算法克服傳統(tǒng)Skyline空間中存在的數(shù)據(jù)點頻繁更新造成的性能瓶頸,同時大幅提高獲得TopK方案的計算效率。在上述的一種語義Web服務組合方法,所述步驟I的具體實現(xiàn)方法包括以下子步驟第一步,采用六種非功能服務特征組成六維向量來構造服務QoS模型;分別為服務響應時間Qrt,服務吞吐量Qtp,服務可靠性Qr,服務信譽度Qcd,服務價格Qc,服務安全性Qs,對QoS各個屬性進行規(guī)范化處理,將各屬性值歸一化至統(tǒng)一區(qū)間;第二步,定義擴展狀態(tài)如下某時刻擴展得到的所有概念及到它們所消耗QoS信息組成的中間狀態(tài),其中結束狀態(tài)為包含CO的擴展狀態(tài);第三步,對用戶需求UR進行判斷,計算從Cl到CO是否有可用概念擴展路線可達,若沒有,則直接返回給用戶;第四步,對概念關系圖進行遍歷,在滿足功能要求的前提下,根據(jù)服務的非功能特征形成每個概念關系圖的最優(yōu)備選服務集合Skyline ;Skyline定義為,對于數(shù)據(jù)集合中某一點P,若在同樣數(shù)據(jù)集合中不存在任何點能夠支配P,即不存在一個點在所有維度上的值都小于或等于P在同維度上的值,則稱P點為此數(shù)據(jù)集合的Skyline點;第五步,遍歷Skyline,克隆概念圖,并選取每個Skyline點作為擴展方向,沿擴展方向進行概念擴展,每個克隆的概念繼承父狀態(tài)的Skyline,各種概念之間可以通過服務組合算法生成一條概念之間轉換的鏈表,鏈表中的每一項即為某一服務的調用,算法據(jù)此當前狀態(tài)到用戶需求CO之間的最小QoS花費判斷各個狀態(tài)至目標的距離,概念關系圖得到概念直接距離矩陣,矩陣中每一數(shù)據(jù)項表示概念直接調用某一服務進行轉換所需的QoS值,利用Floyd加權圖求定點最短路徑算法對概念直接距離矩陣進行處理,最終得到概念之間通過服務組合進行轉換所需的最小QoS值,概念擴展過程中實時比較當前狀態(tài)至終點的概念距離及相似度;第六步,具體的概念擴展和備選服務的加入,首先求出備選服務的前置條件消耗的QoS與此備選服務自身消耗的QoS之和,并將其保存于服務對象中,然后得到加入此備選服務后新增的概念,即此服務的輸出概念集合,亦即概念的擴展;進而將概念及提供此概念的服務保存于概念服務鏈中,并更新skyline ;第七步,對擴展后的狀態(tài)進行實時去重操作,去除重復多余的狀態(tài);
第八步,當生成的狀態(tài)數(shù)目大于K時拋棄離目標過遠的狀態(tài),概念擴展過程比較當前狀態(tài)至終點的概念距離及相似度,比較各狀態(tài)距離,依據(jù)所需概念擴展鏈個數(shù)K并依據(jù)保留距離小的,舍棄距離大的的原則進行擴展。在上述的一種語義Web服務組合方法,所述步驟2的具體實現(xiàn)方法包括以下子步驟第一步,方案樹左節(jié)點的生成,由于服務調用時所需的概念集合在服務概念擴展鏈中一般有多種提供方式,因此所提供方式采用笛卡爾積進行,并當可提供方式過多時對所有可提供的方式進行排序取Top-K個,然后依次作為生成的左節(jié)點;第二步,方案樹右節(jié)點的生成,從擴展鏈中提取提供服務的集合及集合中每個服務所提供概念,以此構建右節(jié)點;第三步,遞歸調用構建方案樹,調用上兩步算法產(chǎn)生某一節(jié)點的左右節(jié)點,將其按照方案樹的特性進行組織,按照基于“與或樹”的方案樹的特點,某一服務的所有條件以父 子鏈表的關系進行組織,后一提供方式為前一提供方式的左孩子,算法稱此為左孩子鏈,某一條件的提供者也以父子的關系進行組織,稱為右孩子鏈,算法產(chǎn)生某個右節(jié)點所有的左節(jié)點,遍歷生成的左節(jié)點,生成每個左節(jié)點所需服務,即所有右節(jié)點然后遍歷生成的這些右節(jié)點,然后將正向概念擴展階段的所有概念擴展鏈全部轉換成方案樹;第四步,遍歷服務組合方案樹生成各個服務組合方案子樹,其規(guī)則如下服務組合方案樹根節(jié)點為服務組合方案子樹的根節(jié)點;當服務組合方案樹中一個左節(jié)點在服務組合方案子樹中時,該左節(jié)點的所有右孩子鏈表節(jié)點皆在服務組合方案子樹中;當服務組合方案樹中的一個右節(jié)點在服務組合方案子樹中時,則該右節(jié)點的左節(jié)點鏈必有唯一一個在服務組合方案子樹中;遍歷過程從服務組合方案樹的根節(jié)點開始,至服務組合方案子樹所有節(jié)點皆為服務組合方案樹中的葉子節(jié)點為止;第五步,產(chǎn)生一定數(shù)量的組合方案子樹,當生成方案超過用戶的要求K時,算法以服務組合方案全局QoS離Skyline坐標系原點距離為擇優(yōu)依據(jù)對結果集合進行增減,對方案按照某種特定規(guī)則排序即可得到組合方案中最優(yōu)的K個方案。在上述的一種語義Web服務組合方法,所述步驟3的具體實現(xiàn)方法包括新狀態(tài)Skyline集合產(chǎn)生,服務組合算法,最簡服務組合方案樹分支裁剪判斷步驟,其中,服務組合算法采用服務失效和備選組合算法用來從Skyline空間坐標集合中刪除數(shù)據(jù)點。在上述的一種語義Web服務組合方法,所述新狀態(tài)Skyline集合產(chǎn)生的具體實現(xiàn)步驟如下第一步,根據(jù)Skyline點集合坐標分布,將整個Skyline空間坐標系分成三區(qū)域,分別為支配區(qū)域,即新進服務必然會支配已經(jīng)生成的Skyline集合中某些數(shù)據(jù)點;盲點區(qū)域,此區(qū)域各點不歸原Skyline各點支配,也不支配原Skyline中的元素;被支配區(qū)域,此區(qū)域的各點被Skyline支配;第二步,依據(jù)數(shù)據(jù)點建立多維紙帶模型,即根據(jù)服務的QoS屬性維度建立相應數(shù)目的紙帶,每一維屬性用一條紙帶表示,遍歷所有的紙帶,將Skyline集合按照此紙帶表示的QoS屬性進行排序,將排序好的服務按照前后關系一一在對應的紙帶中記錄,記錄每個服務的Id,遍歷所有的紙帶,對紙帶上的每個服務在紙帶上的位置按照從左到右依次編號,編號從I開始,編號記錄在對應紙帶的相應位置的服務上;
第三步,繼承父狀態(tài)的Skyline空間坐標系;第四步,得到新增概念集合及現(xiàn)有概念集合;第五步,根據(jù)變化后的新增概念集合從服務庫取得可先進行擴展的服務組成的集合WSS,將WSS集合中每個服務加入至繼承的Skyline空間坐標系;第六步,對于任意一個可進行擴展的服務,算出服務絕對優(yōu)集sps與絕對劣集
SWS ; 第七步,根據(jù)多維QoS紙帶模型判定規(guī)定,當絕對劣集不為空時,從原Skyline中刪除此服務的絕對劣集,并按插入處于A支配區(qū)域的服務的方式增加至Skyline中,即將服務加入到skyline集合后映射到skyline坐標系,當服務絕對優(yōu)集與絕對劣集皆為空時,同樣將新增服務加入至原skyline集合后映射到skyline坐標系即可,而當服務絕對優(yōu)集為空時,只需將服務映射至skyline坐標系即可;第八步,對父狀態(tài)以新skyline及合并后的新舊概念集合為依據(jù)進行更新得到新的狀態(tài);第九步,當按照方案生成算法生成所有服務組合方案時,為從方案集合中取得K個最優(yōu)方案返回,因涉及方案的多QoS比較,算法同樣以比較Skyline點集合坐標分布的方式進行判定。在上述的一種語義Web服務組合方法,所述服務組合算法的具體實現(xiàn)方法如下第一步,取得服務絕對優(yōu)集和絕對劣集,按照紙帶模型判斷所屬區(qū)域;第二步,刪除服務必不可能位于支配區(qū),當變動服務位于盲點區(qū)域時,算法將計算對應變動服務的唯一支配區(qū)Local Skyline,將Local Skyline所有元素依次插入到原Skyline,然后把對應變動服務在Skyline坐標系中的映射刪除;第三步,當變動服務位于受支配區(qū)域,算法直接將服務從Skyline坐標系中將相應的映射刪除;第四步,設置新Skyline至相應的狀態(tài)的概念擴展鏈。在上述的一種語義Web服務組合方法,所述最簡服務組合方案樹分支裁剪的判斷依據(jù)為用戶要求返回QoS全局最優(yōu)的組合方案數(shù)目K以及算法在概念擴展時記錄的擴展到某一概念所消耗的QoS數(shù)值,其生成算法為第一步,參照步驟B中生成組合方案樹;第二步,算法對方案樹進行中序遍歷,對各個右節(jié)點進行處理;第三步,按照同右節(jié)點同層次,不同右節(jié)點同層次,不同右節(jié)點不同層次依照對應規(guī)則順序進行,規(guī)則如下同右節(jié)點同層次對此節(jié)點的左孩子鏈表進行排序,擇取最優(yōu)的K個方案,此步可在生成方案樹時進行處理;不同右節(jié)點同層次此種情形下選擇服務提供方式數(shù)量的笛卡爾積接近K數(shù)值,按照提供方式消耗的QoS數(shù)值進行比較排序;刪除QoS消耗太多的左節(jié)點,并保證所有遍歷過的右節(jié)點都有至少一個左節(jié)點作為提供方式;不同右節(jié)點不同層次要將某提供條件進行分解后進行排序,再按照上兩步方式處理;第四步,返回處理完成的方案樹即為所需最簡服務組合方案樹。
因此,本發(fā)明具有如下優(yōu)點1.通過概念最短轉換路徑思想,解決傳統(tǒng)正向概念擴展過程中隨機選取的盲目性;2.以服務支配集Skyline為依據(jù),對概念進行多方向擇優(yōu)擴展,避免最優(yōu)方案丟失;3.將與或樹服務組合方案描述模型轉換成二叉樹遍歷問題,更為簡單易懂;4.利用最簡服務組合方案樹,極大提高組合算法的時間和空間效率5.利用基于紙帶模型的Skyline算法克服Skyline空間中由于數(shù)據(jù)點頻繁更新所造成的性能降低。
附圖I是本發(fā)明的流程示意圖。附圖2是本發(fā)明中C-K概念關系圖。附圖3是本發(fā)明中概念直接距離與概念最短路徑。附圖4是本發(fā)明中Web服務概念化描述實例。 附圖5是本發(fā)明中用戶需求為CI={C9,C10},C0={C4,C5}的一條路徑。附圖6是本發(fā)明中組合方案樹。附圖7是本發(fā)明中Skyline紙帶模型空間示意圖。附圖8是本發(fā)明中二維紙帶模型示意圖。
具體實施例方式下面通過實施例,并結合附圖,對本發(fā)明的技術方案作進一步具體的說明。實施例I.首先,介紹一下本發(fā)明的具體實現(xiàn)過程本發(fā)明主要包括如下步驟步驟I.正向概念擴展階段根據(jù)用戶需求(包括概念輸入集Cl和概念輸出集CO),在服務的功能性要求滿足的情況下,依次從服務的非功能目標形成的Skyline中選擇備選服務進行概念擴展;概念擴展過程將測試比較當前狀態(tài)至目標概念的距離及相似度,對擴展的各個狀態(tài)進行取舍,從而構建多條從Cl到CO的概念擴展鏈,即多套服務調用備選方案。其中,概念擴展鏈中每條鏈由概念與提供此概念的服務組成??筛鶕?jù)概念擴展鏈個數(shù)判斷用戶需求是否可滿足,當此個數(shù)不為O時,可知當前服務集可滿足用戶需求;否則,服務集無法滿足用戶需求。同時,為方便反向方案擇優(yōu),在概念擴展階段記錄擴展到某一概念時所消耗的QoS數(shù)值。步驟2.反向方案擇優(yōu)階段由于正向概念擴展階段生成的概念擴展鏈一般包含一簇服務組合方案,為把其中的單個組合方案分離出來,并選取其中最優(yōu)的幾套方案返回,則需要將概念擴展鏈轉換成基于“與或樹”的服務組合方案描述模型,將組合方案生成過程轉換為二叉樹的遍歷問題,其中,左節(jié)點表示服務前置條件,而右節(jié)點表示某前置條件可滿足的服務。同時,對所有服務組合方案進行擇優(yōu),生成全局QoS最優(yōu)的K個組合方案。步驟3.采用基于紙帶模型的Skyline算法優(yōu)化基于多維QoS的Top K服務組合方法按照特定規(guī)則對服務組合方案樹進行智能裁剪,生成最簡服務組合方案樹,在服務擇取過程中,采用基于紙帶模型的Skyline算法克服傳統(tǒng)Skyline空間中存在的數(shù)據(jù)點頻繁更新造成的性能瓶頸,同時大幅提聞獲得TopK方案的計算效率?;谏鲜黾夹g方案,更進一步地,如圖I所述,Top K自動服務組合算法詳細步驟描述如下步驟I詳細說明如下第一步,采用六種非功能服務特征組成六維向量來構造服務QoS模型。分別為服務響應時間Qrt,服務吞吐量Qtp,服務可靠性Qr,服務信譽度Qcd,服務價格Qc,服務安全性Qs0對QoS各個屬性進行規(guī)范化處理,將各屬性值歸一化至統(tǒng)一區(qū)間,如
ο第二步,定義擴展狀態(tài)如下某時刻擴展得到的所有概念及到它們所消耗QoS信息組成的中間狀態(tài),其中結束狀態(tài)為包含CO的擴展狀態(tài)。第三步,對用戶需求UR(Cl,CO)進行判斷,計算從Cl到CO是否有可用概念擴展路線可達,若沒有,則直接返回給用戶。
第四步,對概念關系圖進行遍歷,在滿足功能要求的前提下,根據(jù)服務的非功能特征形成每個概念關系圖的最優(yōu)備選服務集合Skyline。Skyline定義為,對于數(shù)據(jù)集合中某一點P,若在同樣數(shù)據(jù)集合中不存在任何點能夠支配P,即不存在一個點在所有維度上的值都小于或等于P在同維度上的值,則稱P點為此數(shù)據(jù)集合的Skyline點。第五步,遍歷Skyline,克隆概念圖,并選取每個Skyline點作為擴展方向,沿擴展方向進行概念擴展,每個克隆的概念繼承父狀態(tài)的Skyline。各種概念之間可以通過服務組合算法生成一條概念之間轉換的鏈表,鏈表中的每一項即為某一服務的調用。算法據(jù)此當前狀態(tài)到用戶需求CO之間的最小QoS花費判斷各個狀態(tài)至目標的距離。概念關系圖得到概念直接距離矩陣(矩陣橫縱皆為概念),矩陣中每一數(shù)據(jù)項表示概念直接調用某一服務進行轉換所需的QoS值。利用Floyd加權圖求定點最短路徑算法對概念直接距離矩陣進行處理,最終得到概念之間通過服務組合進行轉換所需的最小QoS值。概念擴展過程中實時比較當前狀態(tài)至終點的概念距離及相似度。第六步,具體的概念擴展和備選服務的加入,首先求出備選服務的前置條件消耗的QoS與此備選服務自身消耗的QoS之和,并將其保存于服務對象中,然后得到加入此備選服務后新增的概念,即此服務的輸出概念集合,亦即概念的擴展;進而將概念及提供此概念的服務保存于概念服務鏈中,并更新skyline。第七步,對擴展后的狀態(tài)進行實時去重操作,去除重復多余的狀態(tài)。第八步,當生成的狀態(tài)數(shù)目大于K時拋棄離目標過遠的狀態(tài)。概念擴展過程比較當前狀態(tài)至終點的概念距離及相似度,比較各狀態(tài)距離,依據(jù)所需概念擴展鏈個數(shù)K并依據(jù)保留距離小的,舍棄距離大的的原則進行擴展。步驟2詳細說明如下第一步,方案樹左節(jié)點的生成,由于服務調用時所需的概念集合(B卩服務前置條件)在服務概念擴展鏈中一般有多種提供方式,因此所提供方式采用笛卡爾積進行,并當可提供方式過多時對所有可提供的方式進行排序取Top-K個,然后依次作為生成的左節(jié)點第二步,方案樹右節(jié)點的生成,從擴展鏈中提取提供服務的集合及集合中每個服務所提供概念,以此構建右節(jié)點。第三步,遞歸調用構建方案樹,調用上兩步算法產(chǎn)生某一節(jié)點的左右節(jié)點,將其按照方案樹的特性進行組織。按照基于“與或樹”的方案樹的特點,某一服務的所有條件以父子鏈表的關系進行組織,后一提供方式為前一提供方式的左孩子,算法稱此為左孩子鏈。某一條件的提供者也以父子的關系進行組織,稱為右孩子鏈。算法產(chǎn)生某個右節(jié)點所有的左節(jié)點,遍歷生成的左節(jié)點,生成每個左節(jié)點所需服務,即所有右節(jié)點然后遍歷生成的這些右節(jié)點,然后將正向概念擴展階段的所有概念擴展鏈全部轉換成方案樹。第四步,遍歷服務組合方案樹生成各個服務組合方案子樹,其規(guī)則如下服務組合方案樹根節(jié)點為服務組合方案子樹的根節(jié)點;當服務組合方案樹中一個左節(jié)點在服務組合方案子樹中時,該左節(jié)點的所有右孩子鏈表節(jié)點皆在服務組合方案子樹中;當服務組合方案樹中的一個右節(jié)點在服務組合方案子樹中時,則該右節(jié)點的左節(jié)點鏈必有唯一一個在服務組合方案子樹中;遍歷過程從服務組合方案樹的根節(jié)點開始,至服務組合方案子樹所有節(jié)點皆為服務組合方案樹中的葉子節(jié)點為止。第五步,產(chǎn)生一定數(shù)量的組合方案子樹,當生成方案超過用戶的要求K時,算法以服務組合方案全局QoS離Skyline坐標系原點距離為擇優(yōu)依據(jù)對結果集合進行增減。對方案按照某種特定規(guī)則排序即可得到組合方案中最優(yōu)的K個方案。步驟3包括新狀態(tài)Skyline集合產(chǎn)生,服務組合算法,最簡服務組合方案樹SCCPT,現(xiàn)詳細說明如下 其中新狀態(tài)Skyline集合產(chǎn)生采用的方式為采用并操作的方式將可擴展服務集合元素依次增加至繼承的Skyline中,這樣既使繼承Skyline中元素支配關系不必進行比較操作獲得,又可依紙帶模型算法快速進行動態(tài)調整得到本狀態(tài)的Skyline集合,定義優(yōu)集P(WS)為紙帶中處于改動服務編號之前服務組成的集合。定義劣集ff(ws)為紙帶中處于改動服務編號之后服務組成的集合。定義絕對優(yōu)集SP (WS)為對于某一服務,其在各個紙帶上的優(yōu)集的交集。定義絕對劣集SW(ws)為對于某一服務,其在各個紙帶上的劣集的交集。定義唯一支配區(qū)為,若某一區(qū)域!■中所有數(shù)據(jù)點只被某一數(shù)據(jù)點P支配,而無其他數(shù)據(jù)點支配r中任意一點。算法則稱區(qū)域r為數(shù)據(jù)點P的唯一支配區(qū)。定義Local Skyline為,任意Skyline點的唯一支配區(qū)。步驟3. I.新Skyline集合產(chǎn)生步驟如下第一步,根據(jù)Skyline點集合坐標分布,將整個Skyline空間坐標系分成三區(qū)域,分別為支配區(qū)域,即新進服務必然會支配已經(jīng)生成的Skyline集合中某些數(shù)據(jù)點(即某些服務);盲點區(qū)域,此區(qū)域各點不歸原Skyline各點支配,也不支配原Skyline中的元素;被支配區(qū)域,此區(qū)域的各點被Skyline支配。第二步,依據(jù)數(shù)據(jù)點建立多維紙帶模型,即根據(jù)服務的QoS屬性維度建立相應數(shù)目的紙帶,每一維屬性用一條紙帶表示。遍歷所有的紙帶,將Skyline集合按照此紙帶表示的QoS屬性進行排序,將排序好的服務按照前后關系一一在對應的紙帶中記錄,記錄每個服務的Id。遍歷所有的紙帶,對紙帶上的每個服務在紙帶上的位置按照從左到右依次編號,編號從I開始,編號記錄在對應紙帶的相應位置的服務上。第三步,繼承父狀態(tài)的Skyline空間坐標系;第四步,得到新增概念集合及現(xiàn)有概念集合,第五步,根據(jù)變化后的新增概念集合從服務庫取得可先進行擴展的服務組成的集合WSS,將WSS集合中每個服務加入至繼承的Skyline空間坐標系。第六步,對于任意一個可進行擴展的服務,算出服務絕對優(yōu)集sps與絕對劣集
SWSo
第七步,根據(jù)多維QoS紙帶模型判定規(guī)定,當絕對劣集不為空時,從原Skyline中刪除此服務的絕對劣集,并按插入處于A支配區(qū)域的服務的方式增加至Skyline中,即將服務加入到skyline集合后映射到skyline坐標系。當服務絕對優(yōu)集與絕對劣集皆為空時,同樣將新增服務加入至原skyline集合后映射到skyline坐標系即可。而當服務絕對優(yōu)集為空時,只需將服務映射至skyline坐標系即可。第八步,對父狀態(tài)以新skyline及合并后的新舊概念集合為依據(jù)進行更新得到新的狀態(tài)。第九步,當按照方案生成算法生成所有服務組合方案時,為從方案集合中取得K個最優(yōu)方案返回,因涉及方案的多QoS比較,算法同樣以比較Skyline點集合坐標分布的方式進行判定。步驟3. 2.其中服務失效和備選組合算法用來從Skyline空間坐標集合中刪除數(shù)據(jù)點,步驟如下 第一步,取得服務絕對優(yōu)集和絕對劣集,按照紙帶模型判斷所屬區(qū)域第二步,刪除服務必不可能位于支配區(qū)。當變動服務位于盲點區(qū)域時,算法將計算對應變動服務的唯一支配區(qū)Local Skyline,將Local Skyline所有元素依次插入到原Skyline,然后把對應變動服務在Skyline坐標系中的映射刪除。第三步,當變動服務位于受支配區(qū)域,算法直接將服務從Skyline坐標系中將相應的映射刪除第四步,設置新Skyline至相應的狀態(tài)的概念擴展鏈。步驟3. 3.最簡服務組合方案樹分支裁剪的判斷依據(jù)為用戶要求返回QoS全局最優(yōu)的組合方案數(shù)目K以及算法在概念擴展時記錄的擴展到某一概念所消耗的QoS數(shù)值,其生成算法為第一步,參照步驟B中生成組合方案樹第二步,算法對方案樹進行中序遍歷,對各個右節(jié)點進行處理,第三步,按照同右節(jié)點同層次,不同右節(jié)點同層次,不同右節(jié)點不同層次依照對應規(guī)則順序進行。規(guī)則如下同右節(jié)點同層次對此節(jié)點的左孩子鏈表進行排序,擇取最優(yōu)的K個方案,此步可在生成方案樹時進行處理;不同右節(jié)點同層次此種情形下選擇服務提供方式數(shù)量的笛卡爾積接近K數(shù)值,按照提供方式消耗的QoS數(shù)值進行比較排序;刪除QoS消耗太多的左節(jié)點。并保證所有遍歷過的右節(jié)點都有至少一個左節(jié)點作為提供方式;不同右節(jié)點不同層次要將某提供條件進行分解后進行排序,再按照上兩步方式處理。第四步,返回處理完成的方案樹即為所需最簡服務組合方案樹。2.下面介紹一下采用本發(fā)明的實現(xiàn)方法所進行的具體實施例根據(jù)圖I,分兩部分闡述本方法第一部分,正向概念擴展階段I.概念擴展算法步驟I.對Al中所述QoS各個屬性進行規(guī)范化,將各屬性的值統(tǒng)一調整至某一區(qū)間。定義在服務QoS模型中的正負增益,正增益為數(shù)值取值越大越佳,負增益則相反,為數(shù)值取值越小越優(yōu)。算法選擇最小-最大規(guī)范法進行處理。規(guī)范處理規(guī)則如下正增益屬性規(guī)范化公式
權利要求
1.一種語義Web服務組合方法,其特征在于,包括以下步驟 步驟I. Top K服務中正向概念擴展階段根據(jù)用戶需求,在服務的功能性要求滿足的情況下,依次從服務的非功能目標形成的Skyline中選擇備選服務進行概念擴展;概念擴展過程將測試比較當前狀態(tài)至目標概念的距離及相似度,對擴展的各個狀態(tài)進行取舍,從而構建多條從Cl到CO的概念擴展鏈,即多套服務調用備選方案;其中,概念擴展鏈中每條鏈由概念與提供此概念的服務組成; 步驟2. Top K服務中反向方案擇優(yōu)階段由于步驟I中生成的概念擴展鏈一般包含一簇服務組合方案,為把其中的單個組合方案分離出來,并選取其中最優(yōu)的幾套方案返回,則需要將概念擴展鏈轉換成基于與或樹的服務組合方案描述模型,將組合方案生成過程轉換為二叉樹的遍歷問題,其中,左節(jié)點表示服務前置條件,而右節(jié)點表示某前置條件可滿足的服務;同時,對所有服務組合方案進行擇優(yōu),生成全局QoS最優(yōu)的K個組合方案; 步驟3.采用基于紙帶模型的Skyline算法優(yōu)化基于多維QoS的Top K服務組合方法按照設定的規(guī)則對步驟2中產(chǎn)生的服務組合方案進行智能裁剪,生成最簡服務組合方案樹,在服務擇取過程中,采用基于紙帶模型的Skyline算法克服傳統(tǒng)Skyline空間中存在的數(shù)據(jù)點頻繁更新造成的性能瓶頸,同時大幅提高獲得TopK方案的計算效率。
2.根據(jù)權利要求I所述的一種語義Web服務組合方法,其特征在于,所述步驟I的具體實現(xiàn)方法包括以下子步驟 第一步,采用六種非功能服務特征組成六維向量來構造服務QoS模型;分別為服務響應時間Qrt,服務吞吐量Qtp,服務可靠性Qr,服務信譽度Qcd,服務價格Qc,服務安全性Qs,對QoS各個屬性進行規(guī)范化處理,將各屬性值歸一化至統(tǒng)一區(qū)間; 第二步,定義擴展狀態(tài)如下某時刻擴展得到的所有概念及到它們所消耗QoS信息組成的中間狀態(tài),其中結束狀態(tài)為包含CO的擴展狀態(tài); 第三步,對用戶需求UR進行判斷,計算從Cl到CO是否有可用概念擴展路線可達,若沒有,則直接返回給用戶; 第四步,對概念關系圖進行遍歷,在滿足功能要求的前提下,根據(jù)服務的非功能特征形成每個概念關系圖的最優(yōu)備選服務集合Skyline ;Skyline定義為,對于數(shù)據(jù)集合中某一點P,若在同樣數(shù)據(jù)集合中不存在任何點能夠支配P,即不存在一個點在所有維度上的值都小于或等于P在同維度上的值,則稱P點為此數(shù)據(jù)集合的Skyline點; 第五步,遍歷Skyline,克隆概念圖,并選取每個Skyline點作為擴展方向,沿擴展方向進行概念擴展,每個克隆的概念繼承父狀態(tài)的Skyline,各種概念之間可以通過服務組合算法生成一條概念之間轉換的鏈表,鏈表中的每一項即為某一服務的調用,算法據(jù)此當前狀態(tài)到用戶需求CO之間的最小QoS花費判斷各個狀態(tài)至目標的距離,概念關系圖得到概念直接距離矩陣,矩陣中每一數(shù)據(jù)項表示概念直接調用某一服務進行轉換所需的QoS值,利用Floyd加權圖求定點最短路徑算法對概念直接距離矩陣進行處理,最終得到概念之間通過服務組合進行轉換所需的最小QoS值,概念擴展過程中實時比較當前狀態(tài)至終點的概念距離及相似度; 第六步,具體的概念擴展和備選服務的加入,首先求出備選服務的前置條件消耗的QoS與此備選服務自身消耗的QoS之和,并將其保存于服務對象中,然后得到加入此備選服務后新增的概念,即此服務的輸出概念集合,亦即概念的擴展;進而將概念及提供此概念的服務保存于概念服務鏈中,并更新skyline ; 第七步,對擴展后的狀態(tài)進行實時去重操作,去除重復多余的狀態(tài); 第八步,當生成的狀態(tài)數(shù)目大于K時拋棄離目標過遠的狀態(tài),概念擴展過程比較當前狀態(tài)至終點的概念距離及相似度,比較各狀態(tài)距離,依據(jù)所需概念擴展鏈個數(shù)K并依據(jù)保留距離小的,舍棄距離大的的原則進行擴展。
3.根據(jù)權利要求I所述的一種語義Web服務組合方法,其特征在于,所述步驟2的具體實現(xiàn)方法包括以下子步驟 第一步,方案樹左節(jié)點的生成,由于服務調用時所需的概念集合在服務概念擴展鏈中一般有多種提供方式,因此所提供方式采用笛卡爾積進行,并當可提供方式過多時對所有可提供的方式進行排序取Top-K個,然后依次作為生成的左節(jié)點; 第二步,方案樹右節(jié)點的生成,從擴展鏈中提取提供服務的集合及集合中每個服務所提供概念,以此構建右節(jié)點; 第三步,遞歸調用構建方案樹,調用上兩步算法產(chǎn)生某一節(jié)點的左右節(jié)點,將其按照方案樹的特性進行組織,按照基于“與或樹”的方案樹的特點,某一服務的所有條件以父子鏈表的關系進行組織,后一提供方式為前一提供方式的左孩子,算法稱此為左孩子鏈,某一條件的提供者也以父子的關系進行組織,稱為右孩子鏈,算法產(chǎn)生某個右節(jié)點所有的左節(jié)點,遍歷生成的左節(jié)點,生成每個左節(jié)點所需服務,即所有右節(jié)點然后遍歷生成的這些右節(jié)點,然后將正向概念擴展階段的所有概念擴展鏈全部轉換成方案樹; 第四步,遍歷服務組合方案樹生成各個服務組合方案子樹,其規(guī)則如下服務組合方案樹根節(jié)點為服務組合方案子樹的根節(jié)點;當服務組合方案樹中一個左節(jié)點在服務組合方案子樹中時,該左節(jié)點的所有右孩子鏈表節(jié)點皆在服務組合方案子樹中;當服務組合方案樹中的一個右節(jié)點在服務組合方案子樹中時,則該右節(jié)點的左節(jié)點鏈必有唯一一個在服務組合方案子樹中;遍歷過程從服務組合方案樹的根節(jié)點開始,至服務組合方案子樹所有節(jié)點皆為服務組合方案樹中的葉子節(jié)點為止; 第五步,產(chǎn)生一定數(shù)量的組合方案子樹,當生成方案超過用戶的要求K時,算法以服務組合方案全局QoS離Skyline坐標系原點距離為擇優(yōu)依據(jù)對結果集合進行增減,對方案按照某種特定規(guī)則排序即可得到組合方案中最優(yōu)的K個方案。
4.根據(jù)權利要求I所述的一種語義Web服務組合方法,其特征在于,所述步驟3的具體實現(xiàn)方法包括新狀態(tài)Skyline集合產(chǎn)生,服務組合算法,最簡服務組合方案樹分支裁剪判斷步驟,其中,服務組合算法采用服務失效和備選組合算法用來從Skyline空間坐標集合中刪除數(shù)據(jù)點。
5.根據(jù)權利要求4所述的一種語義Web服務組合方法,其特征在于,所述新狀態(tài)Skyline集合產(chǎn)生的具體實現(xiàn)步驟如下 第一步,根據(jù)Skyline點集合坐標分布,將整個Skyline空間坐標系分成三區(qū)域,分別為支配區(qū)域,即新進服務必然會支配已經(jīng)生成的Skyline集合中某些數(shù)據(jù)點;盲點區(qū)域,此區(qū)域各點不歸原Skyline各點支配,也不支配原Skyline中的元素;被支配區(qū)域,此區(qū)域的各點被Skyline支配; 第二步,依據(jù)數(shù)據(jù)點建立多維紙帶模型,即根據(jù)服務的QoS屬性維度建立相應數(shù)目的紙帶,每一維屬性用一條紙帶表示,遍歷所有的紙帶,將Skyline集合按照此紙帶表示的QoS屬性進行排序,將排序好的服務按照前后關系一一在對應的紙帶中記錄,記錄每個服務的Id,遍歷所有的紙帶,對紙帶上的每個服務在紙帶上的位置按照從左到右依次編號,編號從I開始,編號記錄在對應紙帶的相應位置的服務上; 第三步,繼承父狀態(tài)的Skyline空間坐標系; 第四步,得到新增概念集合及現(xiàn)有概念集合; 第五步,根據(jù)變化后的新增概念集合從服務庫取得可先進行擴展的服務組成的集合WSS,將WSS集合中每個服務加入至繼承的Skyline空間坐標系; 第六步,對于任意一個可進行擴展的服務,算出服務絕對優(yōu)集sps與絕對劣集SWS ;第七步,根據(jù)多維QoS紙帶模型判定規(guī)定,當絕對劣集不為空時,從原Skyline中刪除此服務的絕對劣集,并按插入處于A支配區(qū)域的服務的方式增加至Skyline中,即將服務加入到skyline集合后映射到skyline坐標系,當服務絕對優(yōu)集與絕對劣集皆為空時,同樣將新增服務加入至原skyline集合后映射到skyline坐標系即可,而當服務絕對優(yōu)集為空時,只需將服務映射至skyline坐標系即可; 第八步,對父狀態(tài)以新skyline及合并后的新舊概念集合為依據(jù)進行更新得到新的狀態(tài); 第九步,當按照方案生成算法生成所有服務組合方案時,為從方案集合中取得K個最優(yōu)方案返回,因涉及方案的多QoS比較,算法同樣以比較Skyline點集合坐標分布的方式進行判定。
6.根據(jù)權利要求4所述的一種語義Web服務組合方法,其特征在于,所述服務組合算法的具體實現(xiàn)方法如下 第一步,取得服務絕對優(yōu)集和絕對劣集,按照紙帶模型判斷所屬區(qū)域; 第二步,刪除服務必不可能位于支配區(qū),當變動服務位于盲點區(qū)域時,算法將計算對應變動服務的唯一支配區(qū)Local Skyline,將Local Skyline所有元素依次插入到原Skyline,然后把對應變動服務在Skyline坐標系中的映射刪除; 第三步,當變動服務位于受支配區(qū)域,算法直接將服務從Skyline坐標系中將相應的映射刪除; 第四步,設置新Skyline至相應的狀態(tài)的概念擴展鏈。
7.根據(jù)權利要求4所述的一種語義Web服務組合方法,其特征在于,所述最簡服務組合方案樹分支裁剪的判斷依據(jù)為用戶要求返回QoS全局最優(yōu)的組合方案數(shù)目K以及算法在概念擴展時記錄的擴展到某一概念所消耗的QoS數(shù)值,其生成算法為 第一步,參照步驟B中生成組合方案樹; 第二步,算法對方案樹進行中序遍歷,對各個右節(jié)點進行處理; 第三步,按照同右節(jié)點同層次,不同右節(jié)點同層次,不同右節(jié)點不同層次依照對應規(guī)則順序進行,規(guī)則如下 同右節(jié)點同層次對此節(jié)點的左孩子鏈表進行排序,擇取最優(yōu)的K個方案,此步可在生成方案樹時進行處理; 不同右節(jié)點同層次此種情形下選擇服務提供方式數(shù)量的笛卡爾積接近K數(shù)值,按照提供方式消耗的QoS數(shù)值進行比較排序;刪除QoS消耗太多的左節(jié)點,并保證所有遍歷過的右節(jié)點都有至少一個左節(jié)點作為提供方式;不同右節(jié)點不同層次要將某提供條件進行分解后進行排序,再按照上兩步方式處理; 第四步,返回處理完成的方案樹即為所需最簡服務組合方案樹。
全文摘要
本發(fā)明涉及一種語義Web服務組合方法,是一種針對大規(guī)模Web服務,實現(xiàn)按需自動服務組合的技術。該技術能夠同時考慮多種服務質量(QoS),如服務的響應時間、吞吐量、價格等,根據(jù)用戶的輸入輸出需求,自動構建語義上滿足需求的若干服務流程,并返回多種服務質量綜合最優(yōu)的TopK個組合方案。此外,該技術能夠在百萬Web服務規(guī)模下,實現(xiàn)秒級的組合效率,從而在大幅減小程序開發(fā)者實際編程量的同時,還能夠實時適應網(wǎng)絡狀況和Web服務的運行狀況,始終保證用戶使用到最優(yōu)組合方案。
文檔編號G06F17/30GK102945283SQ20121046875
公開日2013年2月27日 申請日期2012年11月19日 優(yōu)先權日2012年11月19日
發(fā)明者曾承, 丁偉, 胡揚, 曹德強 申請人:武漢大學