面向服務(wù)的需求分析方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種面向服務(wù)的需求分析方法,首先將用戶需求抽象為一個(gè)七元組,對(duì)已有的web服務(wù)做預(yù)處理,然后根據(jù)七元組與元服務(wù)的語(yǔ)義距離判斷是否需要需求分析;進(jìn)行需求分析時(shí),先候選元服務(wù)之間的關(guān)聯(lián),然后尋找能夠得到用戶需求需要的所有輸出參數(shù)的路徑,并按照用戶滿意度從高到低排序后反饋給用戶。本發(fā)明方法利用已有服務(wù),有目的地分解需求,并及早進(jìn)行粒度控制,使得需求分解過(guò)程盡早結(jié)束,可提供高效的分解服務(wù),并構(gòu)建一個(gè)有色petri網(wǎng)模型。
【專(zhuān)利說(shuō)明】面向服務(wù)的需求分析方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,涉及需求工程方法和用戶偏好檢索方法。
【背景技術(shù)】
[0002]web服務(wù)是自組合、自描述的,能夠在網(wǎng)絡(luò)上發(fā)布,可以被動(dòng)態(tài)的調(diào)用。Web服務(wù)的價(jià)值在于重用,使服務(wù)增值。web服務(wù)組合通過(guò)組合已有的不同功能的小粒度web服務(wù),形成功能更加強(qiáng)大的大粒度服務(wù),從而實(shí)現(xiàn)復(fù)雜的用戶需求。服務(wù)組合提高了服務(wù)的可重用性和可維護(hù)性,節(jié)省了大量的時(shí)間和資源,在近年來(lái)到得到廣泛的研究,成為當(dāng)前面向服務(wù)(Service oriented architecture, S0A)領(lǐng)域的研究熱點(diǎn)。然而,用戶需求通常比較抽象籠統(tǒng),而已有的服務(wù)的描述則非常具體,因此,需求分解至關(guān)重要。只有將用戶需求分解細(xì)化成粒度足夠小的子需求,這些子需求的描述才能和已有服務(wù)匹配,從而實(shí)現(xiàn)服務(wù)選擇和服務(wù)組合。
[0003]針對(duì)此現(xiàn)狀,近年來(lái)許多學(xué)者展開(kāi)了針對(duì)基于web服務(wù)領(lǐng)域的需求分解問(wèn)題的研究,常見(jiàn)的有利用目標(biāo)系統(tǒng)行為進(jìn)行需求分解的方法(如基于UML的活動(dòng)圖和序列圖,提取目標(biāo)系統(tǒng)的行為,據(jù)此進(jìn)行需求分解);基于知識(shí)和經(jīng)驗(yàn)的方法,已知大量已有的服務(wù)組合方案,通過(guò)機(jī)器學(xué)習(xí),建立起一個(gè)語(yǔ)義本體庫(kù),當(dāng)有新的用戶需求出現(xiàn)時(shí),去本體庫(kù)里匹配,尋找分解方法;或者直接選擇一個(gè)相似的服務(wù)組合案例,學(xué)習(xí)它的分解方式;基于有色petri網(wǎng)(CPN)的方法,對(duì)需求分析得到具體的流程,映射到petri網(wǎng),將需求的分解轉(zhuǎn)換成petri網(wǎng)的分解問(wèn)題;有色petri網(wǎng)(CPN)是一種形式化的描述工具,可以對(duì)系統(tǒng)進(jìn)行模擬分析和驗(yàn)證,能保證服務(wù)組合的正確性。簡(jiǎn)單基于IO匹配的方法;基于文本處理的方法。各類(lèi)需求分解方法,大多沒(méi)有考慮用戶對(duì)服務(wù)組合方式的偏好,而這無(wú)疑是保證服務(wù)組合的用戶滿意度的前提與基礎(chǔ),也是成功實(shí)現(xiàn)web服務(wù)組合的關(guān)鍵問(wèn)題之一。針對(duì)這些問(wèn)題,本文具體討論了用有色petri網(wǎng)建模,并考慮用戶偏好的Web服務(wù)需求分解方法,具體思路如下:首先,已有的web服務(wù)按照功能聚類(lèi)。每類(lèi)服務(wù)提取一個(gè)元服務(wù),放入集合ServiceSet中;根據(jù)用戶需求,從ServiceSet中選出與需求相關(guān)的服務(wù),找出所有可能的分解方案,分別用有關(guān)系圖表示;考慮用戶的偏好,選擇合適的分解方案,將這些分解方案映射到有色petri網(wǎng)。最終該有色petri網(wǎng)就代表用戶需求分解結(jié)果。
[0004]CP-net (用戶偏好模型)的性質(zhì)在學(xué)術(shù)界已經(jīng)得到廣泛研究。CP_net是一種圖形化建模工具,能夠嚴(yán)密準(zhǔn)確的表示定性偏好關(guān)系。WCP-net是CP-net的擴(kuò)展,允許用戶指定屬性之間或者屬性值之間的相對(duì)重要性,用權(quán)重表示。當(dāng)用戶預(yù)先給出的偏好和他們最終的選擇有沖突時(shí),可以動(dòng)態(tài)調(diào)整初始權(quán)重。
[0005]值得注意的是,本發(fā)明所涉的是需求分解和用戶偏好以及粒度控制相結(jié)合的技術(shù)。以往的服務(wù)組合領(lǐng)域的研究主要集中服務(wù)的選擇、組合、優(yōu)化等,對(duì)服務(wù)組合領(lǐng)域的需求分解很少單獨(dú)研究,而是采用已有的常用的需求分解方法。最具代表性的有基于目標(biāo)的需求工程方法、基于領(lǐng)域的需求工程方法、基于特征的需求工程方法。但是,絕大部分的常用需求分解方法都沒(méi)有考慮用戶對(duì)需求分解方案的偏好。也沒(méi)有考慮服務(wù)組合這個(gè)特定領(lǐng)域中,大量已有的可服用的服務(wù)提供了豐富的信息,比如他們的規(guī)模,這可以用來(lái)及早控制需求分解的粒度,避免將需求分解的過(guò)細(xì),浪費(fèi)人力物力,在服務(wù)選擇時(shí)也不容易匹配。同時(shí),在面向服務(wù)的架構(gòu)中,需求分析是為了復(fù)用已有的服務(wù),而不是為了重新開(kāi)發(fā)系統(tǒng),需求分析和服務(wù)組合的迭代周期很短,需求分析不再是一個(gè)獨(dú)立的階段,它和服務(wù)發(fā)現(xiàn)、服務(wù)選擇過(guò)程結(jié)合在一起。
【發(fā)明內(nèi)容】
[0006]技術(shù)問(wèn)題:本發(fā)明提供了一種可提供早期力度控制并考慮用戶對(duì)分解方式偏好的面向web服務(wù)的需求分析方法。
[0007]技術(shù)方案:本發(fā)明的面向web服務(wù)的需求分析方法,包括以下步驟:
[0008]I)對(duì)用戶需求進(jìn)行建模,將用戶需求抽象為一個(gè)七元組R=ID,IE, Oe, PreE, Ee, W, P,其中ID是需求的標(biāo)識(shí),Ie是輸入?yún)?shù)集,Ie=I1, I2, I3, I4,……,1?,η是輸入?yún)?shù)的個(gè)數(shù),
Ok是輸出參數(shù)集,Oe=O1, O2, O3, O4,......,Om, m是輸出參數(shù)的個(gè)數(shù),?1^表示前提條件,
Ek表示狀態(tài)的改變,即服務(wù)執(zhí)行后產(chǎn)生的影響,P是用戶偏好集;W是權(quán)重集,W={ffI,ffO,ffPre, WSoftCons};
[0009]其中,WI是各個(gè)輸入的權(quán)重集,WI= (WI1, WI2,WI3,WI4,......, WIJ , η是輸入?yún)?shù)
的個(gè)數(shù),WO是各個(gè)輸出的權(quán)重集TO= (WO1, WO2, WO3, WO4,......,TOJ,m是輸出參數(shù)的個(gè)數(shù),
W Pre是各種前提條件的權(quán)重集,WSoftCons是每個(gè)軟約束的權(quán)重集;
[0010]2)對(duì)已有的web服務(wù)做預(yù)處理:對(duì)已有web服務(wù)按照功能進(jìn)行聚類(lèi),將同一類(lèi)的服務(wù)提取成一個(gè)元服務(wù)meta func`tion,然后將所有元服務(wù)meta function的信息存儲(chǔ)起來(lái);
[0011]3)將步驟2)得到的元服務(wù)meta function,分別按照功能與步驟I)得到的用戶需求七元組R進(jìn)行匹配,即利用語(yǔ)義相似度匹配算法求出用戶需求七元組R與每個(gè)元服務(wù)的語(yǔ)義距離,然后判斷得到的所有語(yǔ)義距離中的最小值是否小于或等于相似度下限閾值,如是則進(jìn)入步驟7),否則進(jìn)入步驟4);
[0012]4)將語(yǔ)義距離小于相似度上限閾值且大于相似度下限閾值的元服務(wù)metafunction作為候選元服務(wù),根據(jù)候選元服務(wù)的輸入輸出參數(shù)類(lèi)型,確定它們之間的關(guān)聯(lián);然后以候選元服務(wù)為節(jié)點(diǎn),以上述關(guān)聯(lián)為邊,得到關(guān)系圖RD ;
[0013]5)從每一個(gè)輸入?yún)?shù)已知的候選元服務(wù)出發(fā),通過(guò)深度遍歷關(guān)系圖RD,來(lái)尋找滿足如下條件的路徑:該路徑上的候選元服務(wù)組合起來(lái)后能夠滿足用戶需求;
[0014]如果能夠找到一條或者多條滿足上述條件的路徑,則將這些路徑作為合法路徑保存后進(jìn)入步驟6),否則進(jìn)入步驟7);
[0015]6)根據(jù)用戶偏好計(jì)算合法路徑所代表的需求分解方案的的用戶滿意度,并將合法路徑按照用戶滿意度從高到低排序,反饋給用戶后進(jìn)入步驟7);
[0016]7)結(jié)束需求分析流程。
[0017]有益效果:本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0018](I)提出支持定性和定量條件偏好的需求分解方法。用戶偏好通常被用在服務(wù)發(fā)現(xiàn)和服務(wù)選擇模型中,不同的用戶在不同的場(chǎng)合對(duì)web服務(wù)發(fā)現(xiàn)有不同的偏好。本發(fā)明中,不僅考慮用戶對(duì)服務(wù)發(fā)現(xiàn)的偏好,還考慮用戶對(duì)需求分解的偏好。
[0019](2)針對(duì)服務(wù)組合這個(gè)特定領(lǐng)域,將需求分析和服務(wù)發(fā)現(xiàn)、服務(wù)選擇結(jié)合,充分利用大量已有服務(wù),獲取他們的信息,有針對(duì)性地分解需求,同時(shí)及早進(jìn)行粒度控制。通常,需求分析和服務(wù)發(fā)現(xiàn)分開(kāi),需求分解時(shí)不考慮已有的服務(wù),當(dāng)需求細(xì)化后,再做服務(wù)發(fā)現(xiàn)。本發(fā)明中,將需求分析和服務(wù)發(fā)現(xiàn)結(jié)合,根據(jù)已有服務(wù)去分解需求,針對(duì)性強(qiáng),不但可以提高服務(wù)發(fā)現(xiàn)的效率和正確性,還能及早進(jìn)行粒度控制,加快需求分解的速度。
[0020](3)保留所有合法的需求分解方案,并按照他們滿足用戶偏好的程度排序。對(duì)一個(gè)用戶需求,可能有多種分解方案,本發(fā)明不僅保留最先發(fā)現(xiàn)的分解方案,還將其他的合法的需求分解方案都保存下來(lái),然后計(jì)算它們的用戶偏好滿意度,一起返回給用戶。因此,在動(dòng)態(tài)變化的環(huán)境中(已有的web服務(wù)是大量的,而且隨時(shí)變化,比如某個(gè)web服務(wù)由可用變?yōu)椴豢捎?,即便一個(gè)分解方案變得不可行(涉及到的某個(gè)web服務(wù)已經(jīng)不可用時(shí)),用戶可以另一個(gè)分解方案替換,而不需要重新去做需求分解。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0021]圖1是本發(fā)明方法的流程示意圖。
【具體實(shí)施方式】
[0022]下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0023]面向服務(wù)的需求分析和服務(wù)發(fā)現(xiàn),大部分是采用I/O匹配的方式:如果一個(gè)服務(wù)的輸出包含了某個(gè)子需求要求的所有輸出,而這個(gè)服務(wù)的輸入是已知的,那么就說(shuō)這個(gè)服務(wù)能實(shí)現(xiàn)這個(gè)子需求的功能。需求分解就是把復(fù)雜的用戶需求分解細(xì)化,使每一個(gè)子需求都能被已有的服務(wù)實(shí)現(xiàn)。
[0024]本發(fā)明方法的具體步驟為:
[0025]I)對(duì)用戶需求進(jìn)行建模,將用戶需求抽象為一個(gè)七元組R=ID,IE, Oe, PreE, Ee, W, P,`其中ID是需求的標(biāo)識(shí),Ik是輸入?yún)?shù)集(Ik=I1, I2, I3, I4,......,In,該集合中的元素都是輸
入元素。η是輸入?yún)?shù)的個(gè)數(shù),Oe是輸出參數(shù)集(Ok=O1, O2, O3, O4,......,Om),該集合中的元
素都是輸出參數(shù)。m是輸出參數(shù)的個(gè)數(shù)。PreK表示前提條件,Ek表示狀態(tài)的改變,即服務(wù)執(zhí)行后產(chǎn)生的影響,P是用戶偏好集;W是權(quán)重集;
[0026]W= {WI, WO, W Pre, WSoftCons},
[0027]其中,WI是各個(gè)輸入的權(quán)重集,WI= IffI1, WI2,WI3,WI4,......,WlJ η是輸入?yún)?shù)的
個(gè)數(shù),WI中元素和輸入?yún)?shù)--對(duì)應(yīng),WI中的一個(gè)元素WIk(0〈k〈=n)是輸入?yún)?shù)Ik的權(quán)重。
WO是各個(gè)輸出的權(quán)重集WO= (WO1, W02,W03,W04,......,WOJ,m是輸出參數(shù)的個(gè)數(shù),WO中的元
素和輸出參數(shù)——對(duì)應(yīng),WO中的一個(gè)元素W0k(0〈k〈=m)是輸出參數(shù)Ok的權(quán)重。W Pre是各種前提條件的權(quán)重集,WSoftCons是每個(gè)軟約束的權(quán)重集;最后,用戶需求需要用領(lǐng)域本體標(biāo)注。
[0028]2)對(duì)已有的web服務(wù)做預(yù)處理:對(duì)已有web服務(wù)按照功能進(jìn)行聚類(lèi),將同一類(lèi)的服務(wù)提取成一個(gè)元服務(wù)meta function,然后將所有元服務(wù)meta function的信息存儲(chǔ)起來(lái),具體過(guò)程如下:服務(wù)聚類(lèi)采用kmeans算法。根據(jù)M個(gè)預(yù)定義的原型,應(yīng)用kmeans算法在整個(gè)訓(xùn)練集上進(jìn)行聚類(lèi)分析。對(duì)于每個(gè)原型,計(jì)算樣本數(shù),將最高樣本數(shù)的原型作為相應(yīng)的類(lèi)另O。聚類(lèi)完成之后,當(dāng)有新的服務(wù)發(fā)布時(shí),將它分類(lèi)到最近原型所屬的類(lèi)別;然后從每一類(lèi)提取元服務(wù)。[0029]3)將步驟2)得到的元服務(wù)meta function,分別按照功能與步驟I)得到的用戶需求七元組R進(jìn)行匹配,即利用語(yǔ)義相似度匹配算法求出用戶需求七元組R與每個(gè)元服務(wù)的語(yǔ)義距離,匹配算法是根據(jù)領(lǐng)域本體的知識(shí),在用戶需求R和元服務(wù)的描述間進(jìn)行推理匹配的;然后判斷得到的所有語(yǔ)義距離中的最小值是否小于或等于相似度下限閾值,如是則進(jìn)入步驟7),否則進(jìn)入步驟4);
[0030]4)將語(yǔ)義距離小于相似度上限閾值且大于相似度下限閾值的元服務(wù)metafunction作為候選元服務(wù),根據(jù)候選元服務(wù)的輸入輸出參數(shù)類(lèi)型,確定它們之間的關(guān)聯(lián),關(guān)聯(lián)分為泛化、包含、等價(jià)三種;然后以候選元服務(wù)為節(jié)點(diǎn),以上述關(guān)聯(lián)為邊,得到關(guān)系圖RD,當(dāng)關(guān)聯(lián)是泛化關(guān)系時(shí),兩個(gè)節(jié)點(diǎn)是連通的,加邊;當(dāng)關(guān)聯(lián)是包含關(guān)系時(shí),比如節(jié)點(diǎn)A包含于B,若此時(shí)存在節(jié)點(diǎn)C也包含于B,就將A和C看成一個(gè)整體,考察其并集和節(jié)點(diǎn)B的關(guān)聯(lián);當(dāng)關(guān)聯(lián)代表等價(jià)關(guān)系時(shí),兩個(gè)節(jié)點(diǎn)是連通的,加邊;
[0031]5)從每一個(gè)輸入?yún)?shù)已知的候選元服務(wù)出發(fā),通過(guò)深度遍歷關(guān)系圖RD,來(lái)尋找滿足如下條件的路徑:該路徑上的候選元服務(wù)組合起來(lái)后能夠滿足用戶需求,即該路徑上元服務(wù)需要的輸入?yún)?shù)都已知,輸入?yún)?shù)可以是來(lái)自用戶需求,或者是來(lái)自路徑上排在該元服務(wù)前面的元服務(wù);同時(shí),這些候選元服務(wù)能輸出七元組R中要求的所有輸出元素,并且七元組R中所有的硬約束和影響都得到滿足;
[0032]如果能夠找到一條或者多條滿足上述條件的路徑,則將這些路徑作為合法路徑保存后進(jìn)入步驟6),否則進(jìn)入步驟7);
[0033]6)根據(jù)用戶偏好計(jì)算合法路徑所代表的需求分解方案的的用戶滿意度,并將合法路徑按照用戶滿意度從高到低排序,反饋給用戶后進(jìn)入步驟7);
[0034]以下是計(jì)算用戶滿意度的例子:三個(gè)操作,“到達(dá)目的地”、“住宿”、“返回原地”都
有用戶偏好,用軟約束建模。每個(gè)軟約束都有權(quán)重。
[0035]
【權(quán)利要求】
1.一種面向服務(wù)的需求分析方法,其特征在于,該方法包括以下步驟: O對(duì)用戶需求進(jìn)行建模,將用戶需求抽象為一個(gè)七元組R=ID,IE, Oe, PreE, Ee, W,P,其中ID是需求的標(biāo)識(shí),Ie是輸入?yún)?shù)集,Ie=I1, I2, I3, I4,......,Ι?, η是輸入?yún)?shù)的個(gè)數(shù),Ok是輸出參數(shù)集,Oe=O1, O2, O3, O4,......,Om, m是輸出參數(shù)的個(gè)數(shù),?1^表示前提條件,Ee表示狀態(tài)的改變,即服務(wù)執(zhí)行后產(chǎn)生的影響,P是用戶偏好集,W是權(quán)重集,W={WI, WO, WPre, WSoftCons}; 其中,WI是各個(gè)輸入的權(quán)重集,Wi=WIpWI2iWI3iWI4,......,WlJ,η是輸入?yún)?shù)的個(gè)數(shù),WO是各個(gè)輸出的權(quán)重集WO=(WC)1, W02,W03,W04,......,WOJ,m是輸出參數(shù)的個(gè)數(shù),W Pre是各種前提條件的權(quán)重集,WSoftCons是每個(gè)軟約束的權(quán)重集; 2)對(duì)已有的web服務(wù)做預(yù)處理:對(duì)已有web服務(wù)按照功能進(jìn)行聚類(lèi),將同一類(lèi)的服務(wù)提取成一個(gè)元服務(wù)meta function,然后將所有元服務(wù)meta function的信息存儲(chǔ)起來(lái); 3)將所述步驟2)得到的元服務(wù)metafunction,分別按照功能與所述步驟I)得到的用戶需求七元組R進(jìn)行匹配,即利用語(yǔ)義相似度匹配算法求出用戶需求七元組R與每個(gè)元服務(wù)的語(yǔ)義距離,然后判斷得到的所有語(yǔ)義距離中的最小值是否小于或等于相似度下限閾值,如是則進(jìn)入步驟7),否則進(jìn)入步驟4); 4)將語(yǔ)義距離小于相似度上限閾值且大于相似度下限閾值的元服務(wù)metafunction作為候選元服務(wù),根據(jù)所述候選元服務(wù)的輸入輸出參數(shù)類(lèi)型,確定它們之間的關(guān)聯(lián);然后以候選元服務(wù)為節(jié)點(diǎn),以上述關(guān)聯(lián)為邊,得到關(guān)系圖RD ; 5)從每一個(gè)輸入?yún)?shù)已知的候選元服務(wù)出發(fā),通過(guò)深度遍歷關(guān)系圖RD,來(lái)尋找滿足如下條件的路徑:該路徑上的候選元服務(wù)組合起來(lái)后能夠滿足用戶需求; 如果能夠找到一條或者多條滿足上述條件的路徑,則將這些路徑作為合法路徑保存后進(jìn)入步驟6),否則進(jìn)入步驟7); 6)根據(jù)用戶偏好計(jì)算合法路徑所代表的需求分解方案的的用戶滿意度,并將合法路徑按照用戶滿意度從高到低 排序,反饋給用戶后進(jìn)入步驟7); 7)結(jié)束需求分析流程。
【文檔編號(hào)】G06F17/30GK103646061SQ201310636447
【公開(kāi)日】2014年3月19日 申請(qǐng)日期:2013年12月2日 優(yōu)先權(quán)日:2013年12月2日
【發(fā)明者】王紅兵, 周書(shū)湘 申請(qǐng)人:東南大學(xué)