摘要:在設(shè)計(jì)服務(wù)系統(tǒng)的過程中,服務(wù)設(shè)計(jì)人員將粗粒度的服務(wù)模型向細(xì)粒度服務(wù)模型進(jìn)行轉(zhuǎn)換時(shí),經(jīng)常會(huì)面臨存在多種可選服務(wù)模型分解方案的情況。為了幫助服務(wù)設(shè)計(jì)人員能夠快速、準(zhǔn)確的選擇出高質(zhì)量的服務(wù)模型分解方案,提出了針對(duì)多可選服務(wù)模型分解方案的價(jià)值知覺的迭代式服務(wù)建模方法。該方法同時(shí)考慮了功能和價(jià)值角度,服務(wù)建模過程在上下層服務(wù)模型之間迭代地執(zhí)行價(jià)值聲明、價(jià)值度量、價(jià)值分析與優(yōu)化等價(jià)值知覺活動(dòng),將服務(wù)價(jià)值的實(shí)現(xiàn)程度作為整個(gè)階段的決策依據(jù),從而保證了選擇出的服務(wù)模型分解方案能夠最充分地支持其對(duì)應(yīng)的服務(wù)價(jià)值的實(shí)現(xiàn)。最后,通過與常見的服務(wù)建模方法進(jìn)行比較驗(yàn)證了該方法的性能。
關(guān)鍵詞:功能角度; 價(jià)值角度; 價(jià)值知覺; 迭代式; 服務(wù)建模
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-2163(2013)02-0006-05
0引言
近年來,隨著現(xiàn)代服務(wù)業(yè)的迅猛發(fā)展,服務(wù)工程方法論的研究越來越受到國內(nèi)外專家和學(xué)者的重視及熱議。服務(wù)工程方法論是用于助力服務(wù)設(shè)計(jì)與開發(fā)人員優(yōu)質(zhì)、高效、準(zhǔn)確地定義、描述、設(shè)計(jì)、優(yōu)化與實(shí)現(xiàn)服務(wù)系統(tǒng)的,亦是服務(wù)工程領(lǐng)域亟待解決的核心問題之一[1]。而作為服務(wù)方法論的重要組成部分[2],服務(wù)建模方法則是本文研究的主題和重點(diǎn)。服務(wù)建模方法可用來對(duì)服務(wù)系統(tǒng)進(jìn)行需求分析、設(shè)計(jì),并實(shí)施、實(shí)現(xiàn)模型的轉(zhuǎn)換與映射。
通常,可將各種有形或無形的服務(wù)價(jià)值認(rèn)定為是一個(gè)服務(wù)系統(tǒng)的“產(chǎn)出”。這就決定了,服務(wù)模型描述的服務(wù),連同服務(wù)系統(tǒng)能否實(shí)現(xiàn)、以及在多大程度上實(shí)現(xiàn)供需雙方期望的價(jià)值,即構(gòu)成了評(píng)價(jià)服務(wù)模型質(zhì)量的一個(gè)重要標(biāo)準(zhǔn)[3]。因此關(guān)于服務(wù)建模的全過程,就需要進(jìn)行價(jià)值知覺。文獻(xiàn)[4]中針對(duì)單一服務(wù)模型分解方案,已經(jīng)給出了能夠保證服務(wù)價(jià)值最大化實(shí)現(xiàn)的服務(wù)建模方法。但是在設(shè)計(jì)服務(wù)系統(tǒng)的過程中,服務(wù)設(shè)計(jì)人員將粗粒度的服務(wù)模型向細(xì)粒度服務(wù)模型進(jìn)行轉(zhuǎn)換時(shí),經(jīng)常會(huì)面臨存在多種可選服務(wù)模型分解方案的情況。為了協(xié)助服務(wù)設(shè)計(jì)人員能夠快速、準(zhǔn)確地選擇得到高質(zhì)量的服務(wù)模型分解方案,本文提出了針對(duì)多種可選服務(wù)模型分解方案的價(jià)值知覺的迭代式服務(wù)建模方法。該方法同時(shí)考慮了功能和價(jià)值雙重角度,其服務(wù)建模過程是在上下層服務(wù)模型之間迭代地執(zhí)行價(jià)值聲明、價(jià)值度量、價(jià)值分析與優(yōu)化等有關(guān)價(jià)值知覺活動(dòng),并將服務(wù)價(jià)值的實(shí)現(xiàn)程度作為整個(gè)階段的決策依據(jù),從而保證了選擇得到的服務(wù)模型分解方案能夠最充分、有效地支持其對(duì)應(yīng)服務(wù)價(jià)值的實(shí)現(xiàn)。
1服務(wù)建模方法
服務(wù)建模方法是使用恰當(dāng)?shù)姆?wù)建模語言,按照特定的方法和步驟,構(gòu)造得到目標(biāo)服務(wù)和服務(wù)系統(tǒng)的模型。典型的服務(wù)建模方法包括自頂向下的服務(wù)建模、面向?qū)ο蟮姆?wù)建模方法、分層服務(wù)的建模方法、面向服務(wù)的建模方法和目標(biāo)驅(qū)動(dòng)的服務(wù)建模方法。現(xiàn)對(duì)各種典型方法分別做以如下分析和簡述。
自頂向下的服務(wù)建模方法借鑒了“結(jié)構(gòu)化分析與設(shè)計(jì)方法”[5]中的自頂向下思想,將待建模的復(fù)雜服務(wù)業(yè)務(wù)逐層向下分解,在初始階段則是簡略、概括地描述服務(wù)業(yè)務(wù),隨著層次的逐漸下行,對(duì)服務(wù)業(yè)務(wù)的描述越發(fā)詳細(xì),直到業(yè)務(wù)每一部分都可以清晰、準(zhǔn)確地描述為止[6]。
面向?qū)ο蟮姆?wù)建模方法以對(duì)象作為起始出發(fā)點(diǎn),對(duì)需要做出區(qū)分的對(duì)象進(jìn)行識(shí)別,再對(duì)各個(gè)對(duì)象進(jìn)行功能識(shí)別,而后找出使不同對(duì)象發(fā)生聯(lián)系的消息或事件,最后一步則是依據(jù)接收到的消息或事件,見證對(duì)象是否能夠正常執(zhí)行動(dòng)作。
分層服務(wù)建模方法則是遵循MDA思想,將服務(wù)系統(tǒng)建模過程分成若干個(gè)階段(例如,需求建模階段、服務(wù)設(shè)計(jì)階段和服務(wù)系統(tǒng)建模階段,等),并在每個(gè)節(jié)點(diǎn)分別建立特定意旨的單體模型,再通過相鄰層次模型間的映射與轉(zhuǎn)化,來逐步實(shí)現(xiàn)系統(tǒng)構(gòu)建。其中,有代表性的方法包括SMDA[7]和IBM提出的模型驅(qū)動(dòng)服務(wù)工程方法論[8]等。
面向服務(wù)的建模方法SOMA[9]采用自頂向下的思想,由業(yè)務(wù)需求開始,建立服務(wù)業(yè)務(wù)模型,再通過模型驅(qū)動(dòng)的方法對(duì)服務(wù)進(jìn)行識(shí)別、設(shè)計(jì)和實(shí)現(xiàn),還要完成對(duì)服務(wù)構(gòu)建的支持;與此同時(shí),又采用自底向上的思想,從遺留系統(tǒng)中識(shí)別、封裝仍可為服務(wù)所用的功能;而后,可利用上述新設(shè)計(jì)或已存在的服務(wù),通過對(duì)其進(jìn)行編排、協(xié)同,支持頂層業(yè)務(wù)獲得實(shí)現(xiàn)。
另外,有別于上述方法,Gordijn等[10]從服務(wù)價(jià)值的角度對(duì)服務(wù)建模方法進(jìn)行了研究。該方法在進(jìn)行服務(wù)系統(tǒng)建模時(shí),首先由價(jià)值視角分析服務(wù)業(yè)務(wù)的未來的經(jīng)濟(jì)收益情況,并建立價(jià)值網(wǎng)。在價(jià)值網(wǎng)中,又介紹了服務(wù)業(yè)務(wù)中經(jīng)濟(jì)價(jià)值的對(duì)象是如何創(chuàng)造、分配和消費(fèi)的。接著,從業(yè)務(wù)流程出發(fā),討論了經(jīng)濟(jì)價(jià)值的對(duì)象的創(chuàng)造、分配和消費(fèi)是如何在跨組織的業(yè)務(wù)流程中獲得實(shí)現(xiàn)的。在實(shí)現(xiàn)流程建模時(shí),完成自頂向下的任務(wù)分解后,又利用UML-like 語言描述這些任務(wù),由此獲得服務(wù)流程模型。
綜上所述,以上大多數(shù)方法的共同特點(diǎn)是,均采用分層、多維的建模方法,也有部分方法在建模過程中加入了價(jià)值維度。但是卻都存在不足。有些方法遺漏了價(jià)值這個(gè)服務(wù)系統(tǒng)的重要特征,有些方法只是在策略層計(jì)算了經(jīng)濟(jì)價(jià)值,但卻未將對(duì)價(jià)值的量化分析貫穿到服務(wù)系統(tǒng)建模的全過程中。
2多可選服務(wù)模型分解方案的迭代式服務(wù)建模過程在設(shè)計(jì)服務(wù)系統(tǒng)的過程中,服務(wù)設(shè)計(jì)者將粗粒度的服務(wù)模型SMi向細(xì)粒度的服務(wù)模型SMi+1轉(zhuǎn)換時(shí),會(huì)發(fā)現(xiàn)存在著多種可選的服務(wù)模型分解方案,可將其表示成SMi+1={SMi+11,SMi+12,…,SMi+1m}。本文提出了價(jià)值知覺的迭代式服務(wù)建模方法,用于從多個(gè)可選服務(wù)模型分解方案中確定何為最好的方案。該方法中,處理對(duì)象集合{SMi, i=1,…,n}中任意一個(gè)SMi均可能包含多個(gè)可選方案,此處假設(shè)SMi的任一可選方案均能使得相對(duì)應(yīng)的服務(wù)價(jià)值在功能方面的期望約束得到滿足。
如圖1所示,在模型轉(zhuǎn)換SMi-1→SMi執(zhí)行完成之后,可確知SMi存在5種可選方案,SMi={SMi1,SMi2, SMi3, SMi4, SMi5}。在對(duì)其進(jìn)行局部分析和優(yōu)化時(shí),首先需要假設(shè)第i-1層的面向參與者的價(jià)值網(wǎng)模型POVN中服務(wù)價(jià)值的約束是經(jīng)過合理聲明的。又如圖1(b)所示,只有當(dāng)全部5種可選方案,既無法通過模型優(yōu)化(即調(diào)整相應(yīng)服務(wù)要素的QoS設(shè)計(jì)值),也無法通過松弛本層價(jià)值模型中服務(wù)價(jià)值的約束使得服務(wù)價(jià)值的實(shí)現(xiàn)值滿足約束時(shí),假設(shè)才可被認(rèn)定認(rèn)為不合理,即i-1層的POVN中服務(wù)價(jià)值的約束出現(xiàn)不合理時(shí),需要反饋上一層松弛價(jià)值約束。
此后,如圖1(a)所示,可選方案SMi1和SMi2能直接接使得相對(duì)應(yīng)服務(wù)價(jià)值的實(shí)現(xiàn)值滿足其約束,可選方案SMi3則可以通過模型優(yōu)化使得價(jià)值實(shí)現(xiàn)值滿足約束,而可選方案SMi4可以通過松弛本層的價(jià)值約束使得價(jià)值實(shí)現(xiàn)值滿足約束,可選方案集合中存在正確的可選方案,則可以斷定假設(shè)成立,并將所有正確的可選方案作為進(jìn)一步的處理對(duì)象。其中的可選方案SMi5卻無法使得價(jià)值實(shí)現(xiàn)值滿足約束,應(yīng)該舍棄。
在對(duì)SMi1、SMi2、SMi3和SMi4進(jìn)行全局分析和優(yōu)化時(shí),也是先假設(shè)第i-1層的POVN中價(jià)值約束得到了合理聲明。只有如圖1(d)所示,針對(duì)所有4種可選方案,既無法通過模型優(yōu)化,也無法通過松弛本層的價(jià)值約束使得價(jià)值實(shí)現(xiàn)值滿足價(jià)值約束,此種情況下,假設(shè)判定為不合理,需要反饋上一層松弛價(jià)值約束。
而如圖1(c)所示,可選方案SMi1顯然可使相對(duì)應(yīng)的父價(jià)值的實(shí)現(xiàn)值滿足約束,可選方案SMi2則可以通過模型優(yōu)化使得父價(jià)值的價(jià)值實(shí)現(xiàn)值滿足約束,而可選方案SMi3可以通過松弛本層的價(jià)值約束使得父價(jià)值的實(shí)現(xiàn)值滿足約束,存在正確的可選方案,因而認(rèn)為假設(shè)成立,并從中擇定最優(yōu)的可選方案作為下一層的處理對(duì)象。由于可選方案SMi4無法使得父價(jià)值的實(shí)現(xiàn)值滿足約束,被舍棄。在此過程中,最優(yōu)化的可選方案指的是服務(wù)價(jià)值的實(shí)現(xiàn)值滿足價(jià)值約束的程度最高的。
基于上述分析,下面給出適用于多可選服務(wù)模型分解方案的迭代式服務(wù)建模過程。輸入:{SMi, i=0,…, n},其中,SMi={SMi1,SMi2,…,SMim},SMn表示最終的服務(wù)模型;輸出:OHQ_SMn,表示最優(yōu)的高質(zhì)量服務(wù)模型;
建模過程:
步驟1. 令i=0,輸入SMi;
步驟2. 建立價(jià)值聲明模型VPM;
步驟3. 執(zhí)行服務(wù)模型轉(zhuǎn)換SMi→SMi+1,判斷SMi是否為OHQ_SMn,如果不是,則執(zhí)行模型轉(zhuǎn)換SMi→SMi+1,會(huì)得到一組可選方案構(gòu)成的集合SMi+1={SMi+11,SMi+12,…,SMi+1m};如果是,則輸出OHQ_SMn;
步驟4. 建立面向參與者的價(jià)值網(wǎng)模型POVN i+1;
步驟5. 建立價(jià)值依賴模型VDM i+1;
步驟6. 建立價(jià)值聲明模型VAM i+1;
步驟7.選擇一個(gè)未被選擇過的方案SMi+1j進(jìn)行局部分析;判斷在方案SMi+1j的支持下實(shí)現(xiàn)值是否滿足約束,如果實(shí)現(xiàn)值能夠滿足約束,則將方案SMi+1j加入集合SMi+11,且執(zhí)行步驟10;如果實(shí)現(xiàn)值未能滿足約束,則執(zhí)行步驟8;
步驟8. 判斷局部優(yōu)化是否成功,如果優(yōu)化成功,則將方案SMi+1j加入集合Si+11,且執(zhí)行步驟10;如果優(yōu)化未成功,則執(zhí)行步驟9;
步驟9.判斷松弛POVNi+1j是否成功,如果松弛成功,則將方案SMi+1j加入集合Si+11,且執(zhí)行步驟10;如果松弛未成功,則將方案SMi+1j加入集合Si+12,且執(zhí)行步驟10;
步驟10. 判斷|Si+11|+|Si+12|是否等于|SMi+1|,如果二者不相等,則返回步驟7,如果二者相等,則執(zhí)行步驟11;
步驟11. 如果集合Si+11的元素?cái)?shù)量|Si+11|等于0,則執(zhí)行i--,并執(zhí)行步驟12,如果|Si+11|不等于0,則執(zhí)行步驟14;
步驟12. 判斷i是否等于0,如果i=0,則松弛VPN的價(jià)值約束,重新建立VPM,并返回步驟3,如果i≠0,則執(zhí)行步驟13;
步驟13.判斷能否成功地選擇出新方案,如果能,則返回步驟3執(zhí)行,如果不能,則執(zhí)行i--,并返回步驟12;
步驟14. 選擇一個(gè)未被選擇過的方案SMi+1k進(jìn)行全局分析;判斷在方案SMi+1k的支持下相對(duì)應(yīng)的父價(jià)值的實(shí)現(xiàn)值是否滿足約束,如果實(shí)現(xiàn)值能夠滿足約束,則將方案SMi+1k加入集合SMi+13,且執(zhí)行步驟17;如果實(shí)現(xiàn)值未能滿足約束,則執(zhí)行步驟15;
步驟15. 判斷全局優(yōu)化是否成功,如果優(yōu)化成功,則將方案SMi+1k加入集合Si+13,且執(zhí)行步驟17;如果優(yōu)化未成功,則執(zhí)行步驟16;
步驟16. 判斷松弛是否成功,如果松弛成功,那么將方案SMi+1k加入集合Si+13,且執(zhí)行步驟17;如果松弛未成功,則將方案SMi+1k加入集合Si+14,且執(zhí)行步驟17;
步驟17.如果|Si+13|+|Si+14| |Si+11|,則返回步驟14,如果二者相等,則執(zhí)行步驟18;
步驟18.如果|Si+13|=0,則執(zhí)行i--,并執(zhí)行步驟19,如果|Si+13|≠0,則選擇集合Si+13中最優(yōu)方案,并返回步驟3;
步驟19.如果i=0,則松弛VPN的價(jià)值約束,重新建立VPM,并返回步驟Step3,如果i≠0,則執(zhí)行步驟20;
步驟20.判斷能否成功地選擇出新方案,如果能,則返回步驟3執(zhí)行,如果不能,則執(zhí)行i--,并返回步驟19;
適用于多可選服務(wù)模型分解方案的選代式服務(wù)建模過程圖示。如圖書室所示。
在上述服務(wù)建模過程中,提出了4種服務(wù)價(jià)值模型:價(jià)值聲明模型VPM、面向參與者的價(jià)值網(wǎng)模型POVN、價(jià)值依賴模型VDM和價(jià)值標(biāo)注模型VAM。其模型規(guī)范及其相關(guān)信息請(qǐng)參見文獻(xiàn)[4]。此外,文獻(xiàn)[4]中也同時(shí)給出了服務(wù)模型需要包含的語義信息。
3與其他服務(wù)建模方法的比較
自頂向下的服務(wù)建模方法使用簡單、易于理解,但是在為復(fù)雜服務(wù)系統(tǒng)進(jìn)行建模時(shí),效果并不好。有的研究者也將面向?qū)ο笏枷胍敕?wù)建模領(lǐng)域,形成了面向?qū)ο蟮姆?wù)建模方法,只是使用者并不多。分層服務(wù)建模方法是一種流行的服務(wù)建模方法,遵循MDA思想,并將服務(wù)系統(tǒng)的設(shè)計(jì)過程分為若干階段,通過相鄰層次模型的映射與轉(zhuǎn)化,逐層地實(shí)現(xiàn)服務(wù)模型的建立。面向服務(wù)的建模方法也是一種流行的服務(wù)建模方法,采用自頂向下與自底向上相結(jié)合的方法快速建立服務(wù)模型,并且通過引進(jìn)目標(biāo)驅(qū)動(dòng)的思想,能夠保證服務(wù)模型得到現(xiàn)有可執(zhí)行服務(wù)構(gòu)件的廣泛支持。
上文的服務(wù)建模方法在從業(yè)務(wù)和功能的角度為服務(wù)系統(tǒng)實(shí)現(xiàn)建模時(shí),均取得了良好效果,但是這些方法都忽略了服務(wù)的重要特征,即服務(wù)價(jià)值。Gordjin提出了面向價(jià)值的服務(wù)建模方法,探討從服務(wù)價(jià)值、業(yè)務(wù)流程以及信息系統(tǒng)的視角來設(shè)計(jì)和實(shí)現(xiàn)服務(wù)系統(tǒng)。但是該方法僅在服務(wù)模式和服務(wù)業(yè)務(wù)層進(jìn)行了面向價(jià)值的服務(wù)分析,并未將服務(wù)價(jià)值作為目標(biāo)或約束用于引導(dǎo)和限定服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程,而且也沒有考慮服務(wù)價(jià)值之間的各種依賴關(guān)系對(duì)整個(gè)過程產(chǎn)生的影響,因而仍存在一定的不足。
基于以上的問題分析,本文提出了價(jià)值知覺的迭代服務(wù)建模方法。該方法集成了分層建模的思想,考慮了服務(wù)價(jià)值角度,而且進(jìn)一步將服務(wù)價(jià)值作為目標(biāo)和約束來控制服務(wù)系統(tǒng)的整個(gè)優(yōu)化設(shè)計(jì)過程,保證了構(gòu)建的服務(wù)模型具有很高的質(zhì)量。表1給出了該方法與其余方法之間的結(jié)果差異。
4結(jié)束語
本文在文獻(xiàn)[4]的基礎(chǔ)上,針對(duì)在實(shí)際的服務(wù)系統(tǒng)設(shè)計(jì)過程中,將粗粒度的服務(wù)模型轉(zhuǎn)換成細(xì)粒度的服務(wù)模型時(shí),可能面臨對(duì)多方案進(jìn)行選擇的情景,提出了適用于多方案選擇的價(jià)值知覺的迭代式服務(wù)建模方法。該方法通過在上下層服務(wù)模型之間迭代地執(zhí)行各種價(jià)值知覺活動(dòng),最終保障服務(wù)設(shè)計(jì)者能夠從眾多的可選方案中尋找得到最佳方案,即該方法能夠支持其對(duì)應(yīng)的服務(wù)價(jià)值實(shí)現(xiàn)最大化。另外,本文將該方法與一般的服務(wù)建模方法進(jìn)行了對(duì)比,驗(yàn)證了該方法的優(yōu)異性。
參考文獻(xiàn):
[1]PAPAZOGLOU M, TRAVERSO P, DUSTDAR S, et al. Service-oriented computing research roadmap, March 2006, http://infolab.uvt.nl/pub/papazogloump-2006-96.pdf.
[2]徐曉飛, 王忠杰, 莫同. 服務(wù)工程方法體系[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2007, 13(8): 1457- 1464.
[3]XU Xiaofei, WANG Zhongjie. Value-aware service model driven architecture and methodology [C]//IFIP: E-Government ICT Professionalism and Competences Service Science. New York, USA: Springer, 2008, 280: 277-286.
[4]XU Xiaofei, MA Chao, WANG Zhongjie. A value-oriented iterative service modeling process. VAN SINDEREN M, et al. (Eds.): 2012 International IFIP Working Conference on Enterprise Interoperability (IWEI 2012), LNBIP 122, Harbin, China, September 6-7, 2012: 104-116.
[5]MARCA D A, MCGOWAN C L. SADT: structured analysis and design technique. McGraw-Hill, Inc., New York, NY, USA. 1987.
[6]CONGRAM C, EPELMAN M. How to describe your service: an invitation to the structured analysis and design technique [J]. International Journal of Service Industry Management, 1995, 6(2): 6-23.
[7]XU Xiaofei, MO Tong, WANG Zhongjie. SMDA: a service model driven architecture[C]// Proceedings of the 3rd International Conference on Interoperability for Enterprise Software and Applications. Mar. 28-30, Madeira Island, Portugal. Enterprise Interoperability II: New Challenges and Approaches. GONCALVES R J, MULLER J P, MERTINS K, et al (Eds). ISBN: 978-1-84628-857-9:291-302.
[8]ANABY-TAVOR A, AMID D, SELA A, et al. Towards a model driven service engineering process. IEEE Congress on Services 2008 - Part I, July 2008, 503-510.
[9]ARSANJANI A, GHOSH S, ALLAM A, et al. SOMA: A method for developing service-oriented solutions[J]. IBM System Journal, 2008, 47(3): 377-396.
[10]JU¨RJENS J. UMLsec: Extending UML for secure systems development. In: JE′ZE′QUEL J M, HYSSNABB H, COOK S, eds. Proc. of the 5th Int’l Conf. of the Unified Modeling Language (UML 2002). LNCS 2460, Berlin, Heidelberg, New York: Springer-Verlag, 2002:412-425.
[11]Object Management Group. UML profile for modeling quality of service and fault tolerance characteristics and mechanisms. OMG Adopted Specification, ptc/04-09-01, 2004. http://www.omg.org/docs/ptc/04-06-01.pdf
[12]GORDIJN J, VAN ECK P, WIERINGA R. Requirements engineering techniques for e-Services. In GEORGAKOPOULOS D, PAPAZOGLOU M P, editors. Service-oriented computing[M]. The MIT Press, Cambridge, 2009.