專利名稱:基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web服務(wù)和服務(wù)組裝技術(shù)領(lǐng)域,尤其涉及一種基于服務(wù)質(zhì)量優(yōu)化和語 義信息集成的服務(wù)組裝系統(tǒng)及方法
背景技術(shù):
隨著互聯(lián)網(wǎng)通信技術(shù)和電子商務(wù)應(yīng)用的普及,面向服務(wù)的架構(gòu)(ServiceOriented Architecture, S0A),即以服務(wù)為核心的軟件設(shè)計(jì)的思想,被廣泛地應(yīng)用到構(gòu)建實(shí)際的大型 系統(tǒng)中。近些年來,隨著Web服務(wù)被越來越多的人使用,很多業(yè)務(wù)模塊需要若干服務(wù)協(xié)作完 成,這就產(chǎn)生了對服務(wù)組裝技術(shù)的需求。所謂的服務(wù)組裝,即自動(dòng)地將若干在業(yè)務(wù)邏輯上相 關(guān)聯(lián)的服務(wù)以某種方式結(jié)合在一起從而完成特定的用戶需求。Web服務(wù)組裝過程是指服務(wù) 組裝者運(yùn)用組裝技術(shù),根據(jù)組裝需求編排Web服務(wù)生成新的服務(wù)或應(yīng)用的過程?,F(xiàn)有的服務(wù)組裝方法主要著眼于基于預(yù)定義的工作流、用戶對服務(wù)質(zhì)量的限制和 優(yōu)化目標(biāo),在工作流中各任務(wù)節(jié)點(diǎn)所對應(yīng)的服務(wù)列表中進(jìn)行服務(wù)選擇。先根據(jù)用戶需求制 定由抽象任務(wù)節(jié)點(diǎn)組成的工作流;再根據(jù)組裝優(yōu)化的目標(biāo)函數(shù)以及不同節(jié)點(diǎn)上的候選服務(wù) 列表進(jìn)行服務(wù)選擇,最終給出一個(gè)由具體服務(wù)組成的工作流。(如圖1所示)在SOA框架下的軟件設(shè)計(jì)開發(fā)中,工作流通常是由服務(wù)所提供的功能決定的,這 是一個(gè)自下而上的過程,所以在需求工程階段,也就是服務(wù)組裝之前,往往不能夠給出精確 的預(yù)定義工作流;其次,在服務(wù)發(fā)現(xiàn)過程中,候選服務(wù)列表實(shí)際上是隨機(jī)產(chǎn)生的,數(shù)據(jù)規(guī)模 比較大。缺少有效的服務(wù)發(fā)現(xiàn)算法。另外,在工業(yè)界,自動(dòng)服務(wù)組裝的方法并沒有得到廣泛 使用,候選服務(wù)列表是由系統(tǒng)開發(fā)者指定的,服務(wù)的數(shù)量非常有限。固定的工作流也就使得 服務(wù)組裝過程變得不靈活。服務(wù)組裝過程中,傳統(tǒng)的服務(wù)組裝是利用服務(wù)的輸入/輸出數(shù)據(jù)類型和名稱進(jìn)行 匹配,這樣做的缺點(diǎn)是匹配準(zhǔn)確度和覆蓋率都非常低。首先,很多服務(wù)描述文檔(WSDL,Web Services Description Language)都是自動(dòng)生成的,參數(shù)命名不含信息量,因此就會(huì)出現(xiàn) 無法匹配或匹配發(fā)生錯(cuò)誤的情況出現(xiàn);其次,即使用自然語言命名的參數(shù),也存在大量的一 詞多義或同義詞現(xiàn)象,由于缺乏信息量,匹配的原則只能局限于字符串匹配,這同樣會(huì)導(dǎo)致 錯(cuò)誤匹配或者遺漏正確的匹配。目前,根據(jù)對在互聯(lián)網(wǎng)上服務(wù)的提供者和使用者的調(diào)研,服務(wù)組裝所面臨的關(guān)鍵 問題主要有以下幾點(diǎn)(1)如何充分利用服務(wù)中所附帶或者隱含的語義信息;隨著語義Web 的發(fā)展,大量的數(shù)據(jù)都會(huì)附帶語義信息,這些信息可以幫助提高服務(wù)間的相關(guān)性匹配和數(shù) 據(jù)關(guān)聯(lián)的準(zhǔn)確度,進(jìn)而能夠提高組裝過程中的服務(wù)挖掘能力。(2)如何保證服務(wù)質(zhì)量;服務(wù) 組裝不僅要給出正確的組裝結(jié)果,即功能性需求,還要滿足不同系統(tǒng)對服務(wù)質(zhì)量的需求,甚 至需要做到在運(yùn)行時(shí)可以自適應(yīng)地調(diào)整以滿足QoS的穩(wěn)定性,S卩非功能性需求。(3)如何處 理服務(wù)組裝規(guī)模和效率。服務(wù)組裝的數(shù)量級能否覆蓋目前互聯(lián)中存在的所有服務(wù),以及能 否對服務(wù)實(shí)時(shí)檢測和實(shí)時(shí)組裝,這些都是以高效的組裝算法為前提的。
發(fā)明內(nèi)容
為了克服上述的缺陷,本發(fā)明提供一種集成了語義信息,具有優(yōu)化的服務(wù)質(zhì)量,以 及能夠高效地處理大規(guī)模服務(wù)組裝的基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng) 和方法。為達(dá)到上述目的,本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),包 括Web服務(wù)網(wǎng)絡(luò),提供服務(wù)及其對應(yīng)的輸入/輸出數(shù)據(jù)類型;本體概念網(wǎng)絡(luò)數(shù)據(jù)庫,提供本體概念; 索引產(chǎn)生服務(wù)器,基于Web服務(wù)網(wǎng)絡(luò)和本體概念網(wǎng)絡(luò)數(shù)據(jù)庫,建立服務(wù)的輸入/輸 出數(shù)據(jù)類型和本體概念之間的“服務(wù)_數(shù)據(jù)類型_本體”索引,并將該索引存儲(chǔ)在所述索引 產(chǎn)生服務(wù)器內(nèi);服務(wù)組裝引擎服務(wù)器,接收客戶端需求的輸入/輸出數(shù)據(jù)類型,并在“服務(wù)_數(shù)據(jù) 類型-本體”索引中查詢與其匹配的數(shù)據(jù)類型,依據(jù)服務(wù)組裝算法進(jìn)行服務(wù)組裝,得出服務(wù) 組裝結(jié)果;以及服務(wù)組裝結(jié)果執(zhí)行服務(wù)器,用于執(zhí)行服務(wù)組裝結(jié)果。進(jìn)一步地,還包括服務(wù)組裝結(jié)果測試服務(wù)器,接收來自服務(wù)組裝引擎服務(wù)器的服 務(wù)組裝結(jié)果,并對其進(jìn)行工作狀態(tài)和服務(wù)質(zhì)量檢測。進(jìn)一步地,“服務(wù)_數(shù)據(jù)類型_本體”索引包括服務(wù)到其輸入/輸出數(shù)據(jù)類型的映射;數(shù)據(jù)類型到以其為輸入/輸出的服務(wù)的映射;數(shù)據(jù)類型與本體概念的相互映射;本體概念之間的父子關(guān)系的關(guān)系映射;以及服務(wù)到其對應(yīng)的不同服務(wù)質(zhì)量屬性的映射。進(jìn)一步地,服務(wù)組裝算法包括以下步驟a、將以與客戶端需求的輸入數(shù)據(jù)類型相匹配的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù) 放入優(yōu)先級隊(duì)列中;b、從優(yōu)先級隊(duì)列中取出優(yōu)先級最大的服務(wù);C、判斷該服務(wù)的輸出數(shù)據(jù)類型是否與客戶端需求的輸出數(shù)據(jù)類型相匹配,若匹 配,進(jìn)行反向搜索,得出服務(wù)組裝結(jié)果,若不匹配,進(jìn)行步驟(d);d、在“服務(wù)_數(shù)據(jù)類型_本體”索引中查詢出與上述服務(wù)的輸出數(shù)據(jù)類型相匹配 的數(shù)據(jù)類型;e、將以步驟d查詢出的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入優(yōu)先級隊(duì)列中,再重 復(fù)步驟(b)至(c)。進(jìn)一步地,所述本體概念是由OWL文件表示,其包含了所有概念的定義以及概念 之間的層次關(guān)系。本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,包括以下步驟(1)構(gòu)建服務(wù)的輸入/輸出數(shù)據(jù)類型和本體概念之間的“服務(wù)_數(shù)據(jù)類型_本體” 的索引;(2)在“服務(wù)_數(shù)據(jù)類型_本體”索引中查詢出與客戶端需求的輸入/輸出數(shù)據(jù)類型相匹配的數(shù)據(jù)類型,基于服務(wù)組裝算法進(jìn)行服務(wù)組裝,并得出服務(wù)組裝結(jié)果;(3)執(zhí)行服務(wù)組裝結(jié)果。進(jìn)一步地,步驟(2)之后還包括測試服務(wù)組裝結(jié)果,包括以下步驟檢查服務(wù)的輸入數(shù)據(jù)類型是否在被調(diào)用前已達(dá)到滿足客戶端需求的輸入數(shù)據(jù)類 型的狀態(tài);檢查服務(wù)的輸入數(shù)據(jù)類型是否是客戶端需求的輸入數(shù)據(jù)類型的子集;檢查服務(wù)的輸出數(shù)據(jù)類型是否覆蓋了客戶端需求的輸出數(shù)據(jù)類型;檢查服務(wù)組裝系統(tǒng)的服務(wù)質(zhì)量是否達(dá)到客戶端需求。進(jìn)一步地,服務(wù)組裝算法包括以下步驟a、將以與客戶端需求的輸入數(shù)據(jù)類型相匹配的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù) 放入優(yōu)先級隊(duì)列中;b、從優(yōu)先級隊(duì)列中取出優(yōu)先級最大的服務(wù);C、判斷該服務(wù)的輸出數(shù)據(jù)類型是否與客戶端需求的輸出數(shù)據(jù)類型相匹配,若匹 配,進(jìn)行反向搜索,得出服務(wù)組裝結(jié)果,若不匹配,進(jìn)行步驟(d);d、在“服務(wù)-數(shù)據(jù)類型_本體”索引中查詢出與上述服務(wù)的輸出數(shù)據(jù)類型相匹配 的數(shù)據(jù)類型;e、將以步驟d查詢出的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入優(yōu)先級隊(duì)列中,再重 復(fù)步驟(b)至(c)。進(jìn)一步地,執(zhí)行服務(wù)組裝結(jié)果,包括以下步驟(1)執(zhí)行服務(wù)組裝結(jié)果中的起始節(jié)點(diǎn);(2)判斷節(jié)點(diǎn)是否為單一服務(wù),是,執(zhí)行服務(wù);不是,判斷該節(jié)點(diǎn)的結(jié)構(gòu);(3)若節(jié)點(diǎn)的結(jié)構(gòu)為串行結(jié)構(gòu),按照先后順序依次執(zhí)行構(gòu)成串行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn) 到步驟⑵;(4)若節(jié)點(diǎn)的結(jié)構(gòu)為并行結(jié)構(gòu),同時(shí)執(zhí)行構(gòu)成并行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn)到步驟(2);(5)直至執(zhí)行完服務(wù)組裝結(jié)果中的所有服務(wù)。進(jìn)一步地,反向搜索的步驟如下(1)將滿足客戶端需求的輸出數(shù)據(jù)類型的服務(wù)置于服務(wù)組裝結(jié)果的解中;(2)判斷上述服務(wù)的輸入數(shù)據(jù)類型是否與客戶端需求的輸入數(shù)據(jù)類型相匹配,是, 結(jié)束搜索;否,繼續(xù)進(jìn)行下一步;(3)將滿足上述服務(wù)的輸入數(shù)據(jù)類型的服務(wù)置于服務(wù)組裝結(jié)果的解中,然后轉(zhuǎn)到 步驟(2)。本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)及方法,所達(dá)到的有益 效果主要體現(xiàn)在以下幾點(diǎn)1)本發(fā)明不需要給出預(yù)定義工作流,只需要給出客戶端需求的輸入/輸出數(shù)據(jù)類 型,然后由數(shù)據(jù)類型,服務(wù)及本體概念之間的匹配關(guān)系來驅(qū)動(dòng)服務(wù)組裝。2)基于集成語義信息,能夠提高匹配的成功率,以及減少錯(cuò)誤的匹配;本發(fā)明利 用了本體概念,通過將服務(wù)的輸入和輸出數(shù)據(jù)類型與本體概念進(jìn)行“服務(wù)_數(shù)據(jù)類型_本 體”索引,實(shí)質(zhì)上是利用服務(wù)的輸入和輸出的語義信息和本體概念之間建立索引關(guān)系,再將 客戶端需求的輸入/輸出的語義信息與索引中的具有相同語義的服務(wù)進(jìn)行匹配來實(shí)現(xiàn)的。
6
3)服務(wù)質(zhì)量優(yōu)化,本發(fā)明依據(jù)服務(wù)組裝算法來動(dòng)態(tài)地根據(jù)服務(wù)質(zhì)量的變化調(diào)整組 裝方法從而達(dá)到用戶所需要的服務(wù)質(zhì)量。4)能夠高效地處理大規(guī)模的服務(wù)組裝,本發(fā)明由于采用了本體概念,使得其服務(wù) 組裝的數(shù)量級可以覆蓋目前互聯(lián)中存在的所有服務(wù)以及所有語義信息,此外,由于采用了 本發(fā)明的服務(wù)組裝算法,服務(wù)組裝系統(tǒng)能夠?qū)崟r(shí)性和自適應(yīng)性對服務(wù)進(jìn)行檢測和組裝,為 高效的處理大規(guī)模組裝提供了技術(shù)上的支持。
圖1為現(xiàn)有的服務(wù)組裝方法的流程示意圖;圖2為本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)的結(jié)構(gòu)圖;圖3為本發(fā)明提供的構(gòu)建“服務(wù)-數(shù)據(jù)類型-本體”索引的實(shí)施例示意圖;圖4為本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝模型示意圖;圖5為多個(gè)服務(wù)之間的相互連接關(guān)系的實(shí)施例示意圖;圖6為多個(gè)服務(wù)之間的相互連接關(guān)系的實(shí)施例的另一表示形式的示意圖;圖7為本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝算法實(shí)施例的計(jì)算 過程示意圖。
具體實(shí)施例方式下面結(jié)合說明書附圖對本發(fā)明的具體實(shí)施方式
做詳細(xì)描述。圖2所示本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)的結(jié)構(gòu)圖,由 Web服務(wù)網(wǎng)絡(luò)1提供服務(wù),本體概念網(wǎng)絡(luò)數(shù)據(jù)庫2提供了所有概念的定義以及概念之間的層 次關(guān)系,利用Web服務(wù)網(wǎng)絡(luò)1和本體概念網(wǎng)絡(luò)數(shù)據(jù)庫2實(shí)時(shí)獲取服務(wù)和本體概念定義的更新。索引產(chǎn)生服務(wù)器3接收服務(wù)的輸入/輸出數(shù)據(jù)類型和本體概念,建立“服務(wù)_數(shù)據(jù) 類型-本體”的索引,該索引包括服務(wù)到其輸入/輸出數(shù)據(jù)類型列表的映射;數(shù)據(jù)到以其 為輸入/輸出的服務(wù)列表的映射;數(shù)據(jù)與本體概念的相互映射;本體概念之間的父子關(guān)系 的關(guān)系映射;以及服務(wù)到其對應(yīng)的不同服務(wù)質(zhì)量屬性的映射。將該索引作為關(guān)系數(shù)據(jù)庫的 表存放在其內(nèi)。服務(wù)組裝引擎服務(wù)器4,接收客戶端需求的輸入/輸出數(shù)據(jù)類型,并將其與“服 務(wù)_數(shù)據(jù)類型_本體”索引中的數(shù)據(jù)類型進(jìn)行匹配,基于服務(wù)組裝算法進(jìn)行服務(wù)組裝,得出 服務(wù)組裝結(jié)果。服務(wù)組裝結(jié)果測試服務(wù)器5,其封裝了一個(gè)組裝結(jié)果測試服務(wù),該服務(wù)接收服務(wù)組 裝結(jié)果,并對其進(jìn)行檢查,給出是否可以正常工作以及是否滿足用戶需求的檢查結(jié)果,檢查 的結(jié)果主要包括有數(shù)據(jù)關(guān)聯(lián)的有效性;用戶的功能性需求;以及用戶的非功能性需求。對 服務(wù)組裝結(jié)果進(jìn)行以下步驟的檢查檢查服務(wù)的輸入數(shù)據(jù)類型是否在被調(diào)用前已達(dá)到滿足客戶端需求的輸入數(shù)據(jù)類 型的狀態(tài);檢查服務(wù)的輸入數(shù)據(jù)類型是否是客戶端需求的輸入數(shù)據(jù)類型的子集;檢查服務(wù)的輸出數(shù)據(jù)類型是否覆蓋了客戶端需求的輸出數(shù)據(jù)類型;
7
檢查服務(wù)組裝系統(tǒng)的服務(wù)質(zhì)量是否達(dá)到客戶端需求。服務(wù)組裝結(jié)果執(zhí)行服務(wù)器6,執(zhí)行服務(wù)組裝結(jié)果,并能夠直接讓客戶端7查看整個(gè) 運(yùn)行狀態(tài)是否滿足其在業(yè)務(wù)邏輯和服務(wù)質(zhì)量方面的需求。圖3所示本發(fā)明提供的構(gòu)建“服務(wù)_數(shù)據(jù)類型_本體”索引的實(shí)施例示意圖,圖中 交通工具本體是由已經(jīng)定義好的由各種概念組成的,本體概念具有一定的層次關(guān)系,即交 通工具為最頂層的概念,飛機(jī)和汽車都屬于交通工具的子概念,而汽車又分為轎車和越野 車兩個(gè)子概念。從語義角度看,子概念所包含的信息量大于父概念所包含的信息量。這對于 語義匹配將是一個(gè)重要的事實(shí)。標(biāo)注的過程就是將服務(wù)1到服務(wù)4的輸入/輸出數(shù)據(jù)類型 分別對應(yīng)到本體中的各個(gè)概念中,標(biāo)注的結(jié)果如圖2中的虛線所示aut0與汽車匹配,car 與汽車匹配,vehicle與交通工具匹配,suv與越野車匹配。根據(jù)概念之間的層次關(guān)系和概 念和數(shù)據(jù)類型之間的匹配關(guān)系,可以得出服務(wù)1與服務(wù)2是匹配的,因?yàn)榉?wù)1的輸出數(shù)據(jù)類型auto與服務(wù)2的輸入數(shù)據(jù) 類型car對應(yīng)于同一個(gè)概念汽車;服務(wù)1與服務(wù)3也是匹配的,因?yàn)榉?wù)3的輸入數(shù)據(jù)類型vehicle對應(yīng)與交通工 具,是汽車的父概念,即服務(wù)1的輸出數(shù)據(jù)類型足夠滿足服務(wù)3的輸入數(shù)據(jù)類型;而服務(wù)1與服務(wù)4是不匹配,因?yàn)榉?wù)4的輸入數(shù)據(jù)類型suv對應(yīng)與越野車,是汽 車的子概念,即服務(wù)1的輸出數(shù)據(jù)類型不能滿足服務(wù)4的輸入數(shù)據(jù)類型。本發(fā)明的實(shí)質(zhì)是基于本體標(biāo)注進(jìn)行服務(wù)匹配,具體做法是將WSDUWebServices Description Language, Web服務(wù)描述語言)所描述的服務(wù)的輸入/輸出數(shù)據(jù)類型參照已 經(jīng)定義好的本體概念進(jìn)行標(biāo)注。在服務(wù)組裝過程中,客戶端需求的輸入/輸出數(shù)據(jù)類型與 索引中的本體概念進(jìn)行標(biāo)注,然后再根據(jù)概念之間的層次關(guān)系以及概念和數(shù)據(jù)類型之間的 匹配關(guān)系,得出與客戶端需求的輸入/輸出數(shù)據(jù)類型相匹配的服務(wù)的輸入/輸出數(shù)據(jù)類型。 也就是說,本發(fā)明中服務(wù)的每一個(gè)輸入/輸出數(shù)據(jù)類型都對應(yīng)一個(gè)本體,本體又是由多個(gè) 概念構(gòu)成,各概念又與本體存在著層次關(guān)系,該層次關(guān)系實(shí)質(zhì)上就表征了服務(wù)的輸入/輸 出數(shù)據(jù)類型之間的語義信息,客戶端需求的輸入/輸出數(shù)據(jù)類型與該語義信息進(jìn)行匹配。另外,在實(shí)際的語義標(biāo)注和組裝過程中,還會(huì)遇到多對一的數(shù)據(jù)關(guān)聯(lián)。即某些服務(wù) 的輸出可能是一個(gè)數(shù)組,數(shù)組中的每一個(gè)元素都對應(yīng)一個(gè)本體概念,比如概念C,而另一些 服務(wù)的輸入恰恰是C。在這種情況下,可以從輸出的數(shù)組中取出一個(gè)元素作為后續(xù)服務(wù)的輸 入。反之,如果一些服務(wù)的輸出是C而另一些服務(wù)的輸入是以C為元素的數(shù)組,也可以將C 包裝為元素個(gè)數(shù)為1的數(shù)組,從而進(jìn)行后續(xù)的組裝。這種情況在服務(wù)組裝算法中只需將數(shù) 組和元素對應(yīng)到同一個(gè)數(shù)據(jù)類型即可。但在實(shí)際系統(tǒng)的執(zhí)行過程中,這種“多對一”的情況 的執(zhí)行就需要人為參與,比如具體選擇數(shù)組中的哪一個(gè)元素作為下一個(gè)服務(wù)的輸入。針對多對一的數(shù)據(jù)關(guān)聯(lián)情況,例如,用戶選擇的系統(tǒng)輸入為國家,輸出為天氣。從 邏輯上說,一個(gè)城市可以有天氣,一個(gè)國家擁有多個(gè)城市,這就形成了典型的“多對一”的情 況,即將國家到主要城市列表和城市到天氣預(yù)報(bào)兩個(gè)服務(wù)進(jìn)行串聯(lián)。服務(wù)組裝結(jié)果執(zhí)行服 務(wù)器會(huì)在多對一的數(shù)據(jù)關(guān)聯(lián)點(diǎn)上將執(zhí)行過程分為前后兩個(gè)部分,然后讓用戶自己選擇數(shù)組 中的某一個(gè)元素作為下一步的輸入數(shù)據(jù)。用戶輸入“China”后得到的是中國地區(qū)的主要城 市列表,系統(tǒng)下一步需要執(zhí)行的操作是根據(jù)城市的名稱查詢天氣預(yù)報(bào),此時(shí)就需要用戶來 選擇某個(gè)城市查看其天氣狀況。用戶選擇了“Hohhot”,即呼和浩特,然后在另一個(gè)界面中顯示其天氣狀況。本發(fā)明的有益效果體現(xiàn)在首先,能夠提高匹配的成功率,發(fā)現(xiàn)潛在組裝方案,如 上例中auto和car在語義上同屬于一個(gè)概念,匹配成功。但字符串匹配顯然是失敗的;因 此只要有同義詞(組)的存在,這種同義詞(組)匹配失敗的情況就會(huì)非常多。另外,能夠 減少錯(cuò)誤的匹配,對一些不相關(guān)的服務(wù),即使輸入/輸出在字符串匹配中成功,如果在本體 標(biāo)注中對應(yīng)的概念不同,也會(huì)匹配失敗。這種現(xiàn)象多見于一些應(yīng)用范圍廣且容易混淆的命 名,比如“名稱”、“編號”等。圖4所示本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)模型,圖中表 示出了服務(wù)組裝的過程,根據(jù)客戶端的需求進(jìn)行組裝并且給出組裝結(jié)果。服務(wù)組裝系統(tǒng)的 客戶端需求可以表示為(Rin,Rout, Qk)。其中,Rin表示客戶端需求的輸入數(shù)據(jù)類型,Rtm表 示客戶端需求的輸出數(shù)據(jù)類型,91;表示客戶端需求的各種QoS(Quality of Service,服 務(wù)質(zhì)量)屬性。QoS驅(qū)動(dòng)的服務(wù)組裝即基于已有服務(wù)1和服務(wù)2,或服務(wù)3和服務(wù)4,或服 務(wù)5和……和服務(wù)η的輸入/輸出數(shù)據(jù)類型所對應(yīng)的本體,在給定(Rin,Rout, Qe)情況 下,利用服務(wù)組裝算法以Qs最大化為目標(biāo)函數(shù)給出(Din,Dout, P,Qs)。其中,—=Dw , Rout C DOUT,Qs為服務(wù)各種Q0S屬性集合,且Qs為最大值,Din為服務(wù)的輸入數(shù)據(jù)類型集 合,Dout為服務(wù)輸出數(shù)據(jù)類型的集合,P為服務(wù)組裝的結(jié)果。圖中可以看出Din與Rin匹配,Din與以其為輸入數(shù)據(jù)類型的服務(wù)1有映射關(guān)系,因 此服務(wù)1為P的一個(gè)解。服務(wù)1有兩個(gè)輸出數(shù)據(jù)類型1和2,此時(shí)將這兩個(gè)輸出數(shù)據(jù)類型1 和2分別在“服務(wù)-數(shù)據(jù)類型_本體”索引中查詢,找出與上述的輸出數(shù)據(jù)類型1和2相匹 配的數(shù)據(jù)類型3和4,則以數(shù)據(jù)類型3為輸入數(shù)據(jù)類型的服務(wù)3和以數(shù)據(jù)類型4為輸入數(shù)據(jù) 類型的服務(wù)4為P的另兩個(gè)解;依照上述的方法,得出P的其余解服務(wù)5和服務(wù)n-1,此時(shí) 判斷服務(wù)n-1的輸出數(shù)據(jù)類型是否與Rott相匹配。本實(shí)施例中,服務(wù)n-1的輸出數(shù)據(jù)類型 Dout與Rott相匹配,則本實(shí)施例的服務(wù)組裝完成,得出服務(wù)組裝結(jié)果P (如圖4中所示)。圖5即為本發(fā)明服務(wù)組裝中多個(gè)服務(wù)之間的相互連接關(guān)系的實(shí)施例示意圖,服務(wù)組裝實(shí)際上是將客戶端需求的輸入/輸出數(shù)據(jù)類型與索引中的服務(wù)的輸入/ 輸出數(shù)據(jù)類型進(jìn)行匹配,再根據(jù)匹配的程度將若干服務(wù)集成在一起,形成可以完成更為復(fù) 雜邏輯的工作流。通常,服務(wù)之間的相互連接關(guān)系有串行、并行、選擇、條件、循環(huán)等等。在服 務(wù)組裝研究領(lǐng)域,串行、并行和選擇執(zhí)行是最重要的基本結(jié)構(gòu),因?yàn)闂l件和循環(huán)通常是在服 務(wù)內(nèi)部實(shí)現(xiàn)的。本發(fā)明中,串行結(jié)構(gòu)是指由多個(gè)先后順序執(zhí)行的服務(wù)組成的結(jié)構(gòu);并行結(jié)構(gòu) 是指由多個(gè)可以同時(shí)執(zhí)行的服務(wù)組成的結(jié)構(gòu);選擇結(jié)構(gòu)是指由多個(gè)可以選擇執(zhí)行的服務(wù)組 成的結(jié)構(gòu)。通常選擇結(jié)構(gòu)中的服務(wù)是有相互替代關(guān)系的,系統(tǒng)可以在運(yùn)行時(shí)根據(jù)QoS的情 況動(dòng)態(tài)選擇具體執(zhí)行哪一個(gè)服務(wù)。在BPEL (Business Process Execution Language,業(yè)務(wù) 流程執(zhí)行語言)表示的工作流中,這三種關(guān)系分別用〈Sequence〉,〈Parallel〉和〈Switch〉 表示。三種基本結(jié)構(gòu)可以相互嵌套,組成更為復(fù)雜的邏輯。基于以上三種工作流程的基本 結(jié)構(gòu),本實(shí)施例對幾種比較重要的QoS屬性進(jìn)行了調(diào)用和分析,包括響應(yīng)時(shí)間、吞吐量、有 效性(Availability)、可靠性(Reliability)和使用成本(Cost)等。如表1所示。表IQoS屬性的計(jì)算列表
圖中串行結(jié)構(gòu)1是由選擇結(jié)構(gòu)1,服務(wù)D和并行結(jié)構(gòu)1組成;選擇結(jié)構(gòu)1由串行結(jié) 構(gòu)2和服務(wù)C組成;串形結(jié)構(gòu)2由服務(wù)A和服務(wù)B組成;并行結(jié)構(gòu)1由串行結(jié)構(gòu)3和選擇 結(jié)構(gòu)2組成;串行結(jié)構(gòu)3由服務(wù)E和服務(wù)F組成,選擇結(jié)構(gòu)2由服務(wù)G和服務(wù)H組成;圖中 R代表響應(yīng)時(shí)間,T代表吞吐量。通過圖5很容易就可以找到最優(yōu)化的執(zhí)行。串行機(jī)構(gòu)1表 明選擇結(jié)構(gòu)1,服務(wù)D和并行結(jié)構(gòu)1需按順序執(zhí)行,因此需先執(zhí)行選擇結(jié)構(gòu)1,此時(shí)可以通過 比較串形結(jié)構(gòu)2和服務(wù)C的響應(yīng)時(shí)間(假設(shè)我們以響應(yīng)時(shí)間最短為優(yōu)選),從圖中可以看出 執(zhí)行串形結(jié)構(gòu)2的響應(yīng)時(shí)間最短,因此選擇執(zhí)行串形結(jié)構(gòu)2。串形結(jié)構(gòu)2執(zhí)行完成后再執(zhí)行 服務(wù)D和并行結(jié)構(gòu)1。并行結(jié)構(gòu)1需同時(shí)執(zhí)行串形結(jié)構(gòu)3和選擇結(jié)構(gòu)2,串形結(jié)構(gòu)3按順序 執(zhí)行服務(wù)E和服務(wù)F,選擇結(jié)構(gòu)2按擇優(yōu)執(zhí)行的方式執(zhí)行服務(wù)H。圖6所示多個(gè)服務(wù)之間的相互連接關(guān)系的實(shí)施例的另一表示形式的示意圖,服務(wù) A和服務(wù)B與服務(wù)C是選擇結(jié)構(gòu),可以執(zhí)行服務(wù)A再執(zhí)行服務(wù)B,或執(zhí)行服務(wù)C ;而服務(wù)A,服 務(wù)B和服務(wù)C與服務(wù)D是串行結(jié)構(gòu),即執(zhí)行完服務(wù)A和服務(wù)B,或執(zhí)行完服務(wù)C后再執(zhí)行服 務(wù)D ;執(zhí)行完服務(wù)D后,串行結(jié)構(gòu)的服務(wù)E和服務(wù)F與選擇結(jié)構(gòu)的服務(wù)G和服務(wù)H同時(shí)執(zhí)行, 在執(zhí)行選擇結(jié)構(gòu)的服務(wù)G和服務(wù)H時(shí),可選擇性的執(zhí)行服務(wù)G或服務(wù)H ;執(zhí)行完成后結(jié)束。 圖中按執(zhí)行過程在不同位置給出預(yù)期的響應(yīng)時(shí)間。其中括號內(nèi)的數(shù)字表示服務(wù)的實(shí)際響應(yīng) 時(shí)間,虛線上的數(shù)字表示不同位置預(yù)期的響應(yīng)時(shí)間。本實(shí)施例中,選取QoS屬性的響應(yīng)時(shí)間 最短為優(yōu)選值,從圖中可以直觀的看出執(zhí)行服務(wù)A和服務(wù)B所需的響應(yīng)時(shí)間為600ms,而執(zhí) 行服務(wù)C需800ms,因此執(zhí)行服務(wù)A和服務(wù)B比執(zhí)行服務(wù)C較優(yōu),執(zhí)行服務(wù)G所需的響應(yīng)時(shí) 間為300ms,執(zhí)行服務(wù)H需100ms,因此執(zhí)行服務(wù)H比執(zhí)行服務(wù)G較優(yōu),根據(jù)表1中的響應(yīng)時(shí) 間的計(jì)算公式得執(zhí)行本實(shí)施例的服務(wù)組裝所需要的響應(yīng)時(shí)間Ts = 200+400+400+50+50 = 1150ms。系統(tǒng)可以運(yùn)行時(shí)根據(jù)計(jì)算值與實(shí)際監(jiān)控得到的響應(yīng)時(shí)間進(jìn)行對比,及時(shí)發(fā)現(xiàn)問題。 并能夠定位到具體出現(xiàn)異常的服務(wù)。圖7所示本發(fā)明基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的動(dòng)態(tài)服務(wù)組裝算法實(shí)施例 的計(jì)算過程示意圖;圖1顯示系統(tǒng)的輸入數(shù)據(jù)類型(即客戶端需求的輸入數(shù)據(jù)類型)為 {#1,#2,#3,#4},輸出數(shù)據(jù)類型(即客戶端需求的輸出數(shù)據(jù)類型)為{#8,#9,#10},可用服
務(wù)集合為{服務(wù)A,服務(wù)B,......,服務(wù)H}。本實(shí)施例計(jì)算的優(yōu)化的目標(biāo)是系統(tǒng)的響應(yīng)時(shí)
間,圖中在各個(gè)服務(wù)上所標(biāo)的數(shù)字是調(diào)用單個(gè)服務(wù)的響應(yīng)時(shí)間。步驟1,將滿足系統(tǒng)的輸入數(shù)據(jù)類型的服務(wù)B、服務(wù)E和服務(wù)F放入優(yōu)先級隊(duì)列中, 并分別計(jì)算它們的累積響應(yīng)時(shí)間。由于是直接被系統(tǒng)輸入數(shù)據(jù)類型滿足,所以累積響應(yīng)時(shí)間即為服務(wù)本身的響應(yīng)時(shí)間,如圖6(2)所示。步驟2,將優(yōu)先級最大(響應(yīng)時(shí)間最小)的服務(wù)B從隊(duì)列中取出并放入解空間,服 務(wù)B的輸出數(shù)據(jù)類型為#5和#6,根據(jù)新的可用數(shù)據(jù)類型{#1,#2,#3,#4,#5,#6},將新的可 滿足的服務(wù)A加入到優(yōu)先級隊(duì)列中。計(jì)算服務(wù)A的累計(jì)響應(yīng)時(shí)間,根據(jù)服務(wù)A的所有輸入 數(shù)據(jù)類型的最大響應(yīng)時(shí)間加上調(diào)用A本身所消耗的時(shí)間,即20+15 = 35ms,如圖6 (3)所示。步驟3,將優(yōu)先級最大(響應(yīng)時(shí)間最小)的服務(wù)E從隊(duì)列中取出并放入解空間,服 務(wù)E的輸出數(shù)據(jù)類型為#7,根據(jù)新的可用數(shù)據(jù)類型{#1,#2,#3, #4,#5,#6,#7},將新的可滿 足的服務(wù)C加入到優(yōu)先級隊(duì)列中,計(jì)算服務(wù)C的累計(jì)響應(yīng)時(shí)間,根據(jù)服務(wù)C的所有輸入數(shù)據(jù) 類型的最大響應(yīng)時(shí)間加上調(diào)用C本身所消耗的時(shí)間,即30+35 = 65ms,如圖6(4)所示。步驟4,將優(yōu)先級最大(響應(yīng)時(shí)間最小)的服務(wù)A從隊(duì)列中取出并放入解空間,服 務(wù)A的輸出數(shù)據(jù)類型為#11和#9,根據(jù)新的可用數(shù)據(jù)類型{#1,#2, #3, #4,#5,#6,#7,#9和 #11},此時(shí)判斷服務(wù)集合中已不存在可滿足的服務(wù),而輸出數(shù)據(jù)類型#9與系統(tǒng)需求的第一 輸出數(shù)據(jù)類型相匹配,如圖6(5)所示。步驟5,將優(yōu)先級最大(響應(yīng)時(shí)間最小)的服務(wù)F從隊(duì)列中取出并放入解空間,服 務(wù)F的輸出數(shù)據(jù)類型為#8,其與系統(tǒng)需求的第二輸出數(shù)據(jù)類型相匹配,如圖6(6)所示。步驟6,將優(yōu)先級隊(duì)列中的最后一個(gè)被滿足的服務(wù)C取出并放入解空間,服務(wù)C的 輸出輸出數(shù)據(jù)類型為#10,其與系統(tǒng)需求的第三輸出數(shù)據(jù)類型相匹配,如圖6(7)所示。步驟7,到此步驟所有的系統(tǒng)需求的輸出數(shù)據(jù)類型{#8,#9,#10}均被滿足,然后再 根據(jù)每個(gè)數(shù)據(jù)類型所記錄的服務(wù),進(jìn)行反向搜索,即先將與系統(tǒng)輸出數(shù)據(jù)類型{#8,#9,#10} 相匹配的數(shù)據(jù)類型為輸出數(shù)據(jù)的服務(wù)C,服務(wù)F和服務(wù)A置于服務(wù)組裝結(jié)果的解集中;然后 判斷出服務(wù)C的輸入數(shù)據(jù)類型#5和#7與系統(tǒng)需求的輸入數(shù)據(jù)類型不匹配,并判斷出服務(wù) A的輸入數(shù)據(jù)類型#6與系統(tǒng)需求的輸入數(shù)據(jù)類型不匹配,則將以數(shù)據(jù)類型#5,#6和#7為 輸出數(shù)據(jù)的服務(wù)B和服務(wù)E置于服務(wù)組裝結(jié)果的解集中(由于以數(shù)據(jù)類型#7為輸出數(shù)據(jù) 的服務(wù)F以在解集中,因此這里不用重復(fù)放置);同時(shí)判斷出服務(wù)F的輸入數(shù)據(jù)類型與系統(tǒng) 需求的輸入數(shù)據(jù)類型#4相匹配,結(jié)束搜索。此時(shí)服務(wù)B和服務(wù)E的輸入數(shù)據(jù)類型還未經(jīng)判 斷,然后判斷出服務(wù)B和服務(wù)E的輸入數(shù)據(jù)類型均與系統(tǒng)需求的輸入數(shù)據(jù)類型#1,#2和#3 相匹配,結(jié)束搜索。反向搜索完成。步驟8,得到服務(wù)組裝結(jié)果(服務(wù)B,服務(wù)E,服務(wù)F,服務(wù)C和服務(wù)A),圖7(8)中著 重顯示的地方。本實(shí)施例是基于貪心的搜索算法,并不需要擴(kuò)展到所有的服務(wù)(服務(wù)D,服務(wù)G和 服務(wù)H),并且根據(jù)算法一旦得到某個(gè)數(shù)據(jù)類型,就無需在之后的搜索過程中再更新,提高了 搜索效率。下面結(jié)合本發(fā)明的實(shí)驗(yàn)做進(jìn)一步說明。下面的實(shí)驗(yàn)創(chuàng)建了一個(gè)基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),并 利用虛擬的服務(wù)進(jìn)行了測試和驗(yàn)證。實(shí)驗(yàn)用C++編程實(shí)現(xiàn),并在配置為雙核Intel Xeon 2. OGHz處理器、IGB內(nèi)存的服務(wù)器上運(yùn)行。(1)實(shí)驗(yàn)服務(wù)數(shù)據(jù)的生成a. Web服務(wù)集合(Services, wsdl文件)。Web服務(wù)是服務(wù)組裝的基礎(chǔ)。由于Web 服務(wù)具有自描述的特點(diǎn),即一個(gè)WSDL(Web Services Description Language,Web服務(wù)描述語言)文件可以描述一個(gè)實(shí)際存在的Web服務(wù)。由Web服務(wù)網(wǎng)絡(luò)數(shù)據(jù)庫搜索互聯(lián)網(wǎng)上最新 的Web服務(wù)并且進(jìn)行更新??梢钥紤]以wsdl或者asmx為后綴的網(wǎng)絡(luò)文件。b.本體概念集合(Taxonomy, owl文件)。本體概念是數(shù)據(jù)類型進(jìn)行語義匹配的基 礎(chǔ)。本發(fā)明中本體概念是由OWL文件所表示的,這個(gè)文件包含了所有的概念定義以及概念 之間的層次關(guān)系。由本體概念網(wǎng)絡(luò)數(shù)據(jù)庫根據(jù)本體概念的定義進(jìn)行更新操作。c.數(shù)據(jù)類型和概念的映射關(guān)系(Services, wsdl文件)。服務(wù)的每一個(gè)輸入或者 輸出都是一個(gè)數(shù)據(jù)類型,每一個(gè)數(shù)據(jù)類型都會(huì)映射到本體中的某一個(gè)概念,概念之間的關(guān) 系反映了數(shù)據(jù)之間的關(guān)系。映射關(guān)系通常需要手工或者半自動(dòng)的方法進(jìn)行標(biāo)注。本發(fā)明所 用的數(shù)據(jù)產(chǎn)生工具同時(shí)產(chǎn)生服務(wù)和概念,所以,映射關(guān)系與服務(wù)集合在同一個(gè)文件中。d.服務(wù)的 QoS (ServiceLevelAgreements. wsla),文件中記錄了每個(gè) Web 服務(wù)的各 種QoS值。QoS是算法的優(yōu)化對象,因此,對于每一個(gè)服務(wù),都需要給出它們的QoS值。在實(shí) 際的服務(wù)組裝系統(tǒng)中需要由Web服務(wù)網(wǎng)絡(luò)數(shù)據(jù)庫進(jìn)行實(shí)時(shí)監(jiān)控并測量服務(wù)的QoS或者給出 一段時(shí)間的統(tǒng)計(jì)結(jié)果。e.系統(tǒng)需求(Query, wsdl)。記錄了客戶端需求的輸入/輸出數(shù)據(jù)類型和需要優(yōu) 化的服務(wù)質(zhì)量。a e作為服務(wù)組裝算法的輸入,可以由Web服務(wù)網(wǎng)絡(luò)數(shù)據(jù)庫和本體概念網(wǎng)絡(luò)數(shù)據(jù) 庫提供由實(shí)際Web服務(wù)和本體形成的輸入文件。如果僅考慮做實(shí)驗(yàn)證明方法的有效性,也 可以由數(shù)據(jù)集生成器生成,本發(fā)明參考并且兼容了國際比賽Web Service Challenge所采 用的通用數(shù)據(jù)源http://ws-challenge. georgetown. edu/wsc09/o服務(wù)的數(shù)量和本體概念 的數(shù)量可以根據(jù)不同的實(shí)驗(yàn)需求分別進(jìn)行設(shè)定,QoS和系統(tǒng)需求都是隨機(jī)生成的。另外,在 生產(chǎn)測試集合的同時(shí),數(shù)據(jù)集生成器也分別給出了最小響應(yīng)時(shí)間和最大吞吐量的組裝參考 方案,以便對服務(wù)組裝結(jié)果進(jìn)行評估。(2)構(gòu)建“服務(wù)-數(shù)據(jù)類型-本體”索引服務(wù)器表2描述了不同的服務(wù)對應(yīng)的輸入/輸出數(shù)據(jù)類型,以及Q0S屬性的響應(yīng)時(shí)間列 表。表3描述了本體概念及層次關(guān)系。基于這些服務(wù)和本體,我們構(gòu)建如表4和表5的幾 個(gè)映射組成“服務(wù)-數(shù)據(jù)類型-本體”索引,并且將它們作為關(guān)系數(shù)據(jù)庫的表存放在索引服 務(wù)器中。表2Web服務(wù)列表
服務(wù)ID輸入輸出響應(yīng)時(shí)間(ms)SlAB30S2CD40S3BC25S4DE50S5EB45
12
表3本體概念關(guān)系表 表4數(shù)據(jù)類型到服務(wù)的映射 表5數(shù)據(jù)類型本體概念的映射 (3)構(gòu)建服務(wù)組裝引擎客戶端的任務(wù)是以數(shù)據(jù)類型的方式傳遞給服務(wù)組裝引擎,服務(wù)組裝引擎將接收到 的客戶端的輸入/輸出數(shù)據(jù)類型與“服務(wù)_數(shù)據(jù)類型_本體”索引中的服務(wù)的輸入/輸出 數(shù)據(jù)類型進(jìn)行匹配,基于服務(wù)組裝算法得出服務(wù)組裝結(jié)果。(4)構(gòu)建組裝結(jié)果測試引擎組裝結(jié)果測試引擎封裝了一個(gè)組裝結(jié)果測試服務(wù),該服務(wù)接收服務(wù)組裝結(jié)果文 件,并且根據(jù)(1)中的實(shí)驗(yàn)數(shù)據(jù)對結(jié)果中的工作流進(jìn)行檢查,給出是否可以正常工作以及 是否滿足用戶需求的檢查結(jié)果,包含了業(yè)務(wù)邏輯方面以及服務(wù)質(zhì)量方面(目前覆蓋的服務(wù)
13質(zhì)量屬性有響應(yīng)時(shí)間和吞吐量)。構(gòu)建組裝結(jié)果測試引擎的步驟如下4. 1檢查數(shù)據(jù)關(guān)聯(lián)的有效性。檢查服務(wù)組裝結(jié)果中每一個(gè)服務(wù)的輸入數(shù)據(jù)類型是 否在被調(diào)用前達(dá)到已滿足狀態(tài)。在這里,數(shù)據(jù)類型已滿足當(dāng)且僅當(dāng)該數(shù)據(jù)類型所對應(yīng)的本 體概念或者其子概念已有服務(wù)輸出。4. 2檢查用戶的功能性需求。檢查服務(wù)組裝結(jié)果中所輸入的數(shù)據(jù)類型是否是客戶 端需求的輸入數(shù)據(jù)類型的子集;檢查服務(wù)組裝結(jié)果中所輸出的數(shù)據(jù)類型是否覆蓋了客戶端 需求的輸出數(shù)據(jù)類型。4. 3檢查用戶的非功能性需求。按照不同服務(wù)質(zhì)量(即服務(wù)的QoS值)的不同計(jì) 算公式,檢查整個(gè)服務(wù)組裝系統(tǒng)的服務(wù)質(zhì)量是否達(dá)到客戶端需求。(5)構(gòu)建組裝結(jié)果執(zhí)行引擎為了能夠直接讓終端用戶查看整個(gè)運(yùn)行狀態(tài)是否滿足其在業(yè)務(wù)邏輯和服務(wù)質(zhì)量 方面的需求,并驗(yàn)證服務(wù)組裝結(jié)果與實(shí)際調(diào)用情況是否與測試結(jié)果一致。本發(fā)明構(gòu)建了一 個(gè)組裝結(jié)果執(zhí)行引擎,該引擎將參數(shù)通過相應(yīng)適配器調(diào)整為可以自動(dòng)調(diào)用工作流所指定的 串聯(lián)和并聯(lián)服務(wù)之間的調(diào)用關(guān)系(因本發(fā)明在服務(wù)組裝的過程中已經(jīng)進(jìn)行的服務(wù)質(zhì)量的 優(yōu)化,因此服務(wù)組裝結(jié)果中不會(huì)再存在選擇結(jié)構(gòu))。用戶可以輸入實(shí)際參數(shù)來檢查,并且最 終返回現(xiàn)實(shí)執(zhí)行調(diào)用工作流的結(jié)果。組裝結(jié)果的執(zhí)行是一個(gè)遞歸的過程,具體步驟如下5. 1執(zhí)行服務(wù)組裝結(jié)果中的起始節(jié)點(diǎn);5. 2判斷節(jié)點(diǎn)是否為單一服務(wù),是,執(zhí)行服務(wù);不是,判斷該節(jié)點(diǎn)的結(jié)構(gòu);5. 3若節(jié)點(diǎn)的結(jié)構(gòu)為串行結(jié)構(gòu),按照先后順序依次執(zhí)行構(gòu)成串行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn) 到步驟5. 2 ;5. 4若節(jié)點(diǎn)的結(jié)構(gòu)為并行結(jié)構(gòu),同時(shí)執(zhí)行構(gòu)成并行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn)到步驟(2);5. 5直至執(zhí)行完服務(wù)組裝結(jié)果中的所有服務(wù)。(6)實(shí)驗(yàn)和實(shí)驗(yàn)結(jié)果6. 1第一個(gè)實(shí)驗(yàn)和實(shí)驗(yàn)結(jié)果經(jīng)過調(diào)研,常用的Web服務(wù)有約2,000個(gè),常用的本體概念(OpenCyc,OpenCyc就 是一種本體論,它具有復(fù)雜的格式,由CycL的語言寫成)約有150,000個(gè)。基于對網(wǎng)絡(luò)上 實(shí)際的Web服務(wù)和語義本體的調(diào)研,本實(shí)驗(yàn)按照目前本體概念和Web服務(wù)之間的比例進(jìn)行 放大和縮小,以模擬真實(shí)情況下的服務(wù)組裝的效率和正確性。數(shù)據(jù)集和實(shí)驗(yàn)結(jié)果如表6所
7J\ ο表6實(shí)驗(yàn)1數(shù)據(jù)集參數(shù)設(shè)置及實(shí)驗(yàn)結(jié)果 用本發(fā)明服務(wù)組裝算法的時(shí)間與用Zeng的算法結(jié)果和另一種基于迭代的算法 進(jìn)行比較;Zeng的算法是傳統(tǒng)服務(wù)組裝的經(jīng)典算法,基于迭代的算法取得了 2008年WS Challenge國際比賽的第一名。從算法時(shí)間看,在這個(gè)規(guī)模上,對比于Zeng的算法和基于迭 代的算法,本發(fā)明的服務(wù)組裝算法可以用比較穩(wěn)定且非常短的時(shí)間完成服務(wù)組裝。6. 2第二個(gè)實(shí)驗(yàn)和實(shí)驗(yàn)結(jié)果第二個(gè)實(shí)驗(yàn)是基于語義Web發(fā)展假定的實(shí)驗(yàn),即將服務(wù)個(gè)數(shù)固定在一個(gè)比較高的 水平(20,000個(gè)),通過改變本體概念的數(shù)據(jù)來檢測算法的效率。這一設(shè)定也是從對現(xiàn)實(shí)情 況的調(diào)查出發(fā)的,因?yàn)檎Z義Web的發(fā)展在Web服務(wù)之后,并且關(guān)于語義Web新的技術(shù)和創(chuàng)新 要多于Web服務(wù),所以當(dāng)服務(wù)數(shù)量達(dá)到一定規(guī)模后,基于特定領(lǐng)域的服務(wù)保持著較穩(wěn)定的 數(shù)量,而本體概念是不斷發(fā)展和變化的。因此本實(shí)驗(yàn)是通過改變本體概念的數(shù)據(jù)來檢測算 法的效率。測試集參數(shù)設(shè)置及實(shí)驗(yàn)結(jié)果如表7所示。表7實(shí)驗(yàn)2數(shù)據(jù)集參數(shù)設(shè)置及實(shí)驗(yàn)結(jié)果 6. 3第三個(gè)實(shí)驗(yàn)和實(shí)驗(yàn)結(jié)果第三個(gè)實(shí)驗(yàn)是基于Web服務(wù)發(fā)展假定的實(shí)驗(yàn),即將本體概念的數(shù)量固定,通過變 動(dòng)參與組裝的服務(wù)的個(gè)數(shù)來觀察本發(fā)明的服務(wù)組裝算法和基于迭代的算法的效率。這種假 設(shè)是基于今后的Web服務(wù)走向更加細(xì)化的專業(yè)劃分,以及不同提供商會(huì)提供相同功能但是 服務(wù)質(zhì)量不同的服務(wù)的情況。數(shù)據(jù)集的參數(shù)及實(shí)驗(yàn)結(jié)果如表8所示。表8實(shí)驗(yàn)3數(shù)據(jù)集參數(shù)設(shè)置及實(shí)驗(yàn)結(jié)果 從實(shí)驗(yàn)結(jié)果可以看出,本發(fā)明的服務(wù)組裝算法在大部分情況下的評測結(jié)果都優(yōu)于 基于迭代的算法。從絕對值來看,本發(fā)明的服務(wù)組裝算法可以在大部分情況下的組裝時(shí)間 都低于1秒,滿足了服務(wù)組裝系統(tǒng)對于服務(wù)質(zhì)量變化情況下的動(dòng)態(tài)服務(wù)組裝的要求。實(shí)驗(yàn) 表明,本發(fā)明提出的基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)及方法是切實(shí)有效 的。
16
以上,僅為本發(fā)明的較佳實(shí)施例,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本 技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在 本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求所界定的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
一種基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),其特征在于,包括Web服務(wù)網(wǎng)絡(luò),提供服務(wù)及其對應(yīng)的輸入/輸出數(shù)據(jù)類型;本體概念網(wǎng)絡(luò)數(shù)據(jù)庫,提供本體概念;索引產(chǎn)生服務(wù)器,基于Web服務(wù)網(wǎng)絡(luò)和本體概念網(wǎng)絡(luò)數(shù)據(jù)庫,建立服務(wù)的輸入/輸出數(shù)據(jù)類型和本體概念之間的“服務(wù) 數(shù)據(jù)類型 本體”索引,并將該索引存儲(chǔ)在所述索引產(chǎn)生服務(wù)器內(nèi);服務(wù)組裝引擎服務(wù)器,接收客戶端需求的輸入/輸出數(shù)據(jù)類型,并在“服務(wù) 數(shù)據(jù)類型 本體”索引中查詢與其匹配的數(shù)據(jù)類型,依據(jù)服務(wù)組裝算法進(jìn)行服務(wù)組裝,得出服務(wù)組裝結(jié)果;以及服務(wù)組裝結(jié)果執(zhí)行服務(wù)器,用于執(zhí)行服務(wù)組裝結(jié)果。
2.根據(jù)權(quán)利要求1所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),其特征在 于,還包括服務(wù)組裝結(jié)果測試服務(wù)器,接收來自服務(wù)組裝引擎服務(wù)器的服務(wù)組裝結(jié)果,并對 其進(jìn)行工作狀態(tài)和服務(wù)質(zhì)量檢測。
3.根據(jù)權(quán)利要求1所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),其特征在 于,“服務(wù)_數(shù)據(jù)類型_本體”索引包括服務(wù)到其輸入/輸出數(shù)據(jù)類型的映射; 數(shù)據(jù)類型到以其為輸入/輸出的服務(wù)的映射; 數(shù)據(jù)類型與本體概念的相互映射; 本體概念之間的父子關(guān)系的關(guān)系映射; 以及服務(wù)到其對應(yīng)的不同服務(wù)質(zhì)量屬性的映射。
4.根據(jù)權(quán)利要求1所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),其特征在 于,服務(wù)組裝算法包括以下步驟a、將以與客戶端需求的輸入數(shù)據(jù)類型相匹配的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入 優(yōu)先級隊(duì)列中;b、從優(yōu)先級隊(duì)列中取出優(yōu)先級最大的服務(wù);c、判斷該服務(wù)的輸出數(shù)據(jù)類型是否與客戶端需求的輸出數(shù)據(jù)類型相匹配,若匹配,進(jìn) 行反向搜索,得出服務(wù)組裝結(jié)果,若不匹配,進(jìn)行步驟(d);d、在“服務(wù)-數(shù)據(jù)類型-本體”索引中查詢出與上述服務(wù)的輸出數(shù)據(jù)類型相匹配的數(shù) 據(jù)類型;e、將以步驟d查詢出的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入優(yōu)先級隊(duì)列中,再重復(fù)步 驟(b)至(C)。
5.根據(jù)權(quán)利要求1所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng),其特征在 于,所述本體概念是由OWL文件表示,其包含了所有概念的定義以及概念之間的層次關(guān)系。
6.一種基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,其特征在于,包括以下步驟(1)構(gòu)建服務(wù)的輸入/輸出數(shù)據(jù)類型和本體概念之間的“服務(wù)_數(shù)據(jù)類型_本體”的索引;(2)在“服務(wù)_數(shù)據(jù)類型_本體”索引中查詢出與客戶端需求的輸入/輸出數(shù)據(jù)類型相 匹配的數(shù)據(jù)類型,基于服務(wù)組裝算法進(jìn)行服務(wù)組裝,并得出服務(wù)組裝結(jié)果;(3)執(zhí)行服務(wù)組裝結(jié)果。
7.根據(jù)權(quán)利要求6所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,其特征在 于,步驟(2)之后還包括測試服務(wù)組裝結(jié)果,包括以下步驟檢查服務(wù)的輸入數(shù)據(jù)類型是否在被調(diào)用前已達(dá)到滿足客戶端需求的輸入數(shù)據(jù)類型的 狀態(tài);檢查服務(wù)的輸入數(shù)據(jù)類型是否是客戶端需求的輸入數(shù)據(jù)類型的子集;檢查服務(wù)的輸出數(shù)據(jù)類型是否覆蓋了客戶端需求的輸出數(shù)據(jù)類型;檢查服務(wù)組裝系統(tǒng)的服務(wù)質(zhì)量是否達(dá)到客戶端需求。
8.根據(jù)權(quán)利要求6所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,其特征在 于,服務(wù)組裝算法包括以下步驟a、將以與客戶端需求的輸入數(shù)據(jù)類型相匹配的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入 優(yōu)先級隊(duì)列中;b、從優(yōu)先級隊(duì)列中取出優(yōu)先級最大的服務(wù);c、判斷該服務(wù)的輸出數(shù)據(jù)類型是否與客戶端需求的輸出數(shù)據(jù)類型相匹配,若匹配,進(jìn) 行反向搜索,得出服務(wù)組裝結(jié)果,若不匹配,進(jìn)行步驟(d);d、在“服務(wù)-數(shù)據(jù)類型_本體”索引中查詢出與上述服務(wù)的輸出數(shù)據(jù)類型相匹配的數(shù) 據(jù)類型;e、將以步驟d查詢出的數(shù)據(jù)類型為輸入數(shù)據(jù)類型的服務(wù)放入優(yōu)先級隊(duì)列中,再重復(fù)步 驟(b)至(C)。
9.根據(jù)權(quán)利要求6所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,其特征在 于,執(zhí)行服務(wù)組裝結(jié)果,包括以下步驟(1)執(zhí)行服務(wù)組裝結(jié)果中的起始節(jié)點(diǎn);(2)判斷節(jié)點(diǎn)是否為單一服務(wù),是,執(zhí)行服務(wù);不是,判斷該節(jié)點(diǎn)的結(jié)構(gòu);(3)若節(jié)點(diǎn)的結(jié)構(gòu)為串行結(jié)構(gòu),按照先后順序依次執(zhí)行構(gòu)成串行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn)到步 驟⑵;(4)若節(jié)點(diǎn)的結(jié)構(gòu)為并行結(jié)構(gòu),同時(shí)執(zhí)行構(gòu)成并行結(jié)構(gòu)的各節(jié)點(diǎn),轉(zhuǎn)到步驟(2);(5)直至執(zhí)行完服務(wù)組裝結(jié)果中的所有服務(wù)。
10.根據(jù)權(quán)利要求6所述基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝方法,其特征 在于,反向搜索的步驟如下(1)將滿足客戶端需求的輸出數(shù)據(jù)類型的服務(wù)置于服務(wù)組裝結(jié)果的解中;(2)判斷上述服務(wù)的輸入數(shù)據(jù)類型是否與客戶端需求的輸入數(shù)據(jù)類型相匹配,是,結(jié)束 搜索;否,繼續(xù)進(jìn)行下一步;(3)將滿足上述服務(wù)的輸入數(shù)據(jù)類型的服務(wù)置于服務(wù)組裝結(jié)果的解中,然后轉(zhuǎn)到步驟⑵。
全文摘要
本發(fā)明公開一種基于服務(wù)質(zhì)量優(yōu)化和語義信息集成的服務(wù)組裝系統(tǒng)及方法,主要是為了提高服務(wù)組裝的可靠性、穩(wěn)定性和服務(wù)質(zhì)量而設(shè)計(jì)。本發(fā)明包括Web服務(wù)網(wǎng)絡(luò),提供服務(wù)及其對應(yīng)的輸入/輸出數(shù)據(jù)類型;本體概念網(wǎng)絡(luò)數(shù)據(jù)庫,提供本體概念;索引產(chǎn)生服務(wù)器,建立服務(wù)的輸入/輸出數(shù)據(jù)類型和本體概念之間的“服務(wù)-數(shù)據(jù)類型-本體”索引,并將該索引存儲(chǔ)在所述索引產(chǎn)生服務(wù)器內(nèi);服務(wù)組裝引擎服務(wù)器,接收客戶端需求的輸入/輸出數(shù)據(jù)類型,并在“服務(wù)-數(shù)據(jù)類型-本體”索引中查詢與其匹配的數(shù)據(jù)類型,依據(jù)服務(wù)組裝算法進(jìn)行服務(wù)組裝,得出服務(wù)組裝結(jié)果;以及服務(wù)組裝結(jié)果執(zhí)行服務(wù)器。本發(fā)明集成了語義信息,服務(wù)質(zhì)量最優(yōu),且能夠高效地處理大規(guī)模的服務(wù)組裝。
文檔編號H04L29/06GK101917413SQ20101023991
公開日2010年12月15日 申請日期2010年7月29日 優(yōu)先權(quán)日2010年7月29日
發(fā)明者許斌, 閆奕歆 申請人:清華大學(xué)