郭 雪,李 錚,張 賀,榮國平,文俊浩
(1.南京大學(xué)軟件學(xué)院,江蘇 南京 210093;2.康塞普西翁大學(xué)計(jì)算機(jī)系,智利 康塞普西翁 4070409; 3.重慶大學(xué)大數(shù)據(jù)與軟件學(xué)院,重慶 401331)
隨著服務(wù)計(jì)算的日益成熟以及微服務(wù)理念的興起,面向服務(wù)架構(gòu)SOA(Service-Oriented Architecture)成為一個(gè)經(jīng)久不衰的熱點(diǎn)。SOA的一個(gè)重要理念是強(qiáng)調(diào)單個(gè)服務(wù)的細(xì)粒度和低耦合,以提高服務(wù)的可重用性和可維護(hù)性,進(jìn)而通過服務(wù)組合來實(shí)現(xiàn)更復(fù)雜的功能并滿足多樣的業(yè)務(wù)需求[1]。在實(shí)際應(yīng)用中,這種細(xì)粒度和低耦合的抽象服務(wù)概念往往由Web服務(wù)技術(shù)加以實(shí)現(xiàn)。相應(yīng)地,Web服務(wù)組合WSC(Web Service Composition)受到研究者廣泛的關(guān)注,大量WSC研究噴涌而出。
當(dāng)前,各界提出了大量的Web服務(wù)組合方法,而這些方法可以根據(jù)不同的性質(zhì)和側(cè)重點(diǎn)進(jìn)行分類。例如,從參與組合的Web 服務(wù)的綁定時(shí)間來分有靜態(tài)組合(Static)和動(dòng)態(tài)組合(Dynamic)兩大類[2,3];從組合實(shí)現(xiàn)方式可以分為服務(wù)編制(Orchestration)和服務(wù)編排(Choreography);從組合過程中的自動(dòng)化程度可以分為人工、半自動(dòng)和自動(dòng)三大類[4]。對(duì)于服務(wù)組合實(shí)施者而言,如何從不同類別選擇多種組合方法來構(gòu)建可行而高效的組合方案是現(xiàn)階段亟待解決的關(guān)鍵問題之一。這就要求一個(gè)可以幫助WSC實(shí)施者選擇多種服務(wù)組合方法的決策機(jī)制。
然而,現(xiàn)階段大多數(shù)對(duì)服務(wù)組合方式的研究只是從單一的角度出發(fā),著力于某一側(cè)重點(diǎn)的組合方法的統(tǒng)計(jì)與比較。例如,文獻(xiàn)[2]對(duì)組合方法從過程驅(qū)動(dòng)和語義驅(qū)動(dòng)兩方面進(jìn)行探討。文獻(xiàn)[4]概述了一系列基于手動(dòng)和自動(dòng)、靜態(tài)和動(dòng)態(tài)分類標(biāo)準(zhǔn)的組合方法。文獻(xiàn)[5]將當(dāng)前Web 服務(wù)組合方法分為以下三類:基于人工智能規(guī)劃的組合方法、基于圖搜索匹配的方法、基于邏輯推理的組合方法。文獻(xiàn)[6]則介紹并比較了基于工作流和基于AI規(guī)劃的組合方法。
也有部分研究較為全面地概述了多角度不同側(cè)重點(diǎn)的組合方法,但分類標(biāo)準(zhǔn)較少,而且僅僅給出了簡(jiǎn)單的工作量估算和開銷對(duì)比方案,并沒有就多角度方法組合決策做出研究討論。文獻(xiàn)[7,8]中構(gòu)建了多標(biāo)準(zhǔn)的服務(wù)組合方法矩陣,并且文獻(xiàn)[7]提供了一種采用分治算法D&C(Divide and Conquer)進(jìn)行多種方法組合的工作量估算機(jī)制。文獻(xiàn)[9]詳細(xì)統(tǒng)計(jì)了Web服務(wù)組合中需要的各類模型、語言、技術(shù)、平臺(tái)和工具等,但并沒有闡述該如何進(jìn)行組合決策。
因此,本文提出了一種基于層次分析法AHP(Analytic Hierarchy Process)[10]的網(wǎng)絡(luò)服務(wù)組合決策機(jī)制,用于幫助決策者合理選擇多種組合方法。AHP是處理復(fù)雜決定的一種結(jié)構(gòu)化技巧。這種方法不是為了做出一個(gè)絕對(duì)正確的決定,而是幫助決策者在若干備選中找到相對(duì)適合設(shè)定目標(biāo)和需求的最好決定。在Web服務(wù)領(lǐng)域的應(yīng)用中,AHP往往僅用于服務(wù)發(fā)現(xiàn)過程,例如文獻(xiàn)[11]中分析了多個(gè)服務(wù)的服務(wù)質(zhì)量QoS(Quality of Service)參數(shù),然后根據(jù)用戶需求應(yīng)用AHP選擇最佳服務(wù)進(jìn)行組合。而在選擇服務(wù)組合方式時(shí),AHP也具有重要的實(shí)踐意義。本文擬在現(xiàn)有的WSC方法矩陣的基礎(chǔ)上,通過文獻(xiàn)綜述,新增決策影響因素來完善該矩陣,尤其是人員因素造成的決策影響,并引入能力成熟度模型CMM(Capability Maturity Model)作為衡量人員因素影響的指標(biāo)。根據(jù)層次分析法構(gòu)建層次結(jié)構(gòu)樹,為每個(gè)節(jié)點(diǎn)分配權(quán)重,并舉例詳細(xì)闡述如何在多個(gè)方案中使用該層次結(jié)構(gòu)做出最佳決策。
特別值得強(qiáng)調(diào)的貢獻(xiàn)是,為幫助WSC決策者理解和使用這種方法,本文實(shí)現(xiàn)了半自動(dòng)平臺(tái)easyWSC,根據(jù)使用者輸入的相關(guān)信息,幫助決策者做出最佳選擇。
層次分析法是系統(tǒng)化、層次化地分析多標(biāo)準(zhǔn)問題的方法,它的實(shí)用性和有效性使其很快在業(yè)界和學(xué)術(shù)界得到重視。如今,已普遍應(yīng)用于經(jīng)濟(jì)、醫(yī)學(xué)、農(nóng)業(yè)等眾多領(lǐng)域。
AHP適用于團(tuán)隊(duì)處理復(fù)雜的多標(biāo)準(zhǔn)問題,尤其是涉及決策者主觀的判斷,且最終結(jié)果對(duì)后續(xù)工作有著長期影響。其獨(dú)特優(yōu)勢(shì)是,當(dāng)某些影響決策的重要因素很難量化或比較,或者在團(tuán)隊(duì)成員中,不同的術(shù)語或觀點(diǎn)阻礙了相互溝通,層次分析法仍然可以為團(tuán)隊(duì)提供一個(gè)較為合理的最終決策。
層次分析法的主要步驟如下:
(1)首先,決策目標(biāo)問題被分解成多個(gè)平行的更易分解的子問題,每一個(gè)子問題都可以被單獨(dú)分析。這一系列的子元素可以涵蓋決策問題的任一方面,可見的或不可見的,可以直接測(cè)量的或只能大致預(yù)估的[11]。每個(gè)子元素還可以根據(jù)實(shí)際需要再進(jìn)行分割,直至決策者認(rèn)為達(dá)到最易比較的級(jí)別。如此將復(fù)雜問題涉及的因素分為若干層次,建立多級(jí)遞階的層次結(jié)構(gòu)模型(目標(biāo)層、判斷標(biāo)準(zhǔn)層、方案層)。
(2)層次結(jié)構(gòu)建立起來后,決策者對(duì)每一父節(jié)點(diǎn)下的子元素做兩兩比較。在做比較時(shí),決策者可以使用這些元素具體的數(shù)據(jù),或者參照這些元素的意義和重要性做出自己的判斷。不僅僅是潛在的信息,決策者的主觀判斷也可以被用在評(píng)估中,這就是AHP的實(shí)質(zhì)。AHP將這些評(píng)估轉(zhuǎn)化成數(shù)值結(jié)果,結(jié)構(gòu)中的每一個(gè)元素都可以獲得一個(gè)數(shù)值權(quán)重或優(yōu)先度,這樣就允許不同的和通常無法比較的元素進(jìn)行合理的比較。
(3)最后,每一個(gè)可選方案也在每一個(gè)元素下兩兩比較,計(jì)算出數(shù)值優(yōu)先級(jí)。這些數(shù)值表示了可選決策達(dá)到最終目標(biāo)的相對(duì)能力,因此基于這些優(yōu)先值,決策者可以選擇最符合目標(biāo)問題的方案。
3.1.1 服務(wù)組合層次結(jié)構(gòu)原型
本文首先以文獻(xiàn)[8]中的WSC方法分類矩陣為原型,構(gòu)建層次結(jié)構(gòu)模型。
該矩陣將WSC方法分為環(huán)境(Context)和技術(shù)(Technology)兩大維度。各元素包含的子元素如下:
(1)環(huán)境(Context):
①模式(Pattern):編制(Orchestration)、編排(Choreography)。
②符號(hào)學(xué)(Semiotics):語義學(xué)(Semantics)、語法學(xué)(Syntax)。
③機(jī)制(Mechanism):簡(jiǎn)單對(duì)象訪問協(xié)議SOAP(Simple Object Access Protocol)、表述性狀態(tài)傳遞REST(REpresentational State Transfer)。
④設(shè)計(jì)階段方法(Design Time):手動(dòng)(Manual)、半自動(dòng)(Semi-auto)、自動(dòng)(Automatic)。
⑤運(yùn)行階段方法(Run Time):靜態(tài)(Static)、動(dòng)態(tài)(Dynamic)。
(2)技術(shù)(Technology):基于工作流(Workflow-based)、模型驅(qū)動(dòng)(Model-driven)、基于AI規(guī)劃(AI Planning)。
但是,在構(gòu)建層次結(jié)構(gòu)時(shí),需要明確目標(biāo)層、判斷標(biāo)準(zhǔn)層、方案層分別是哪些元素。目標(biāo)層,顯而易見是需要解決的服務(wù)組合方法決策問題。第一級(jí)的判斷標(biāo)準(zhǔn)層是環(huán)境和技術(shù)兩個(gè)元素。由上述WSC方法矩陣可以得到第二級(jí)的子標(biāo)準(zhǔn)層,也就是模式、符號(hào)學(xué)、機(jī)制、設(shè)計(jì)階段方法和運(yùn)行階段方法。與經(jīng)典AHP算法示例不同的是,本文需要解決的問題中需要添加一層標(biāo)準(zhǔn)可選項(xiàng)層。因?yàn)楸窘Y(jié)構(gòu)的方案層,本質(zhì)上就是每一個(gè)子標(biāo)準(zhǔn)下的選項(xiàng)組合而成,構(gòu)成一個(gè)較為完整的服務(wù)組合方案,其中將這些子標(biāo)準(zhǔn)下的選項(xiàng)命名為標(biāo)準(zhǔn)可選項(xiàng)層。
構(gòu)建出的層次結(jié)構(gòu)原型如圖1所示。其中深灰色為目標(biāo)層,灰色為標(biāo)準(zhǔn)層,淺灰色為子標(biāo)準(zhǔn)層,白色為標(biāo)準(zhǔn)可選項(xiàng)層。

Figure 1 Hierarchy prototype 圖1 層次結(jié)構(gòu)原型
3.1.2 完善服務(wù)組合層次結(jié)構(gòu)
以上述WSC方法矩陣為原型構(gòu)建了服務(wù)組合層次結(jié)構(gòu)后,目前所包含的服務(wù)組合關(guān)注點(diǎn)顯然是不平衡也不完整的。因此,需要更多的標(biāo)準(zhǔn)和可選項(xiàng)來完善這個(gè)層次結(jié)構(gòu)。
(1)添加標(biāo)準(zhǔn)1:運(yùn)行平臺(tái)。
運(yùn)行平臺(tái)是服務(wù)組合進(jìn)行的場(chǎng)所。很多研究者認(rèn)為不同的運(yùn)行平臺(tái)會(huì)影響最后組合服務(wù)的安全性和適應(yīng)性等非功能屬性。例如,文獻(xiàn)[12]中作者列舉了7個(gè)服務(wù)組合的運(yùn)行平臺(tái),并對(duì)這7個(gè)平臺(tái)就開放性的標(biāo)準(zhǔn)支持、使用的難易度、服務(wù)性能的模擬效果、管理功能以及組合服務(wù)的適應(yīng)性、優(yōu)化程度、安全性做出了比較。由此可見,運(yùn)行平臺(tái)對(duì)服務(wù)組合的影響也是不能忽視的。本文借鑒了文獻(xiàn)[9]中對(duì)運(yùn)行平臺(tái)的分類和可選項(xiàng),即分為部署項(xiàng)(Development Options)和執(zhí)行引擎(Execution Engine)。其層次結(jié)構(gòu)如下所示:
①部署項(xiàng)(Development Options):云端部署(Cloud)、本地部署(On-premise)。
②執(zhí)行引擎(Execution Engine):業(yè)務(wù)流程引擎(Business Process Engine)、服務(wù)總線(Service Bus)、代碼生成(Code Generation)。
(2)添加標(biāo)準(zhǔn)2:機(jī)制可選項(xiàng)。
原有的矩陣中,在機(jī)制這一標(biāo)準(zhǔn)下,只提供了SOAP和REST這兩個(gè)經(jīng)典的協(xié)議。但是,隨著Web服務(wù)發(fā)展,如今又興起了另一種可以運(yùn)用在SOA中的協(xié)議——開放服務(wù)網(wǎng)管協(xié)議OSGi(Open Services Gateway initiative)[9]。
SOAP是在Web服務(wù)啟用期間交換結(jié)構(gòu)化信息的協(xié)議規(guī)范,可以使用業(yè)務(wù)流程執(zhí)行語言來構(gòu)建組合Web服務(wù)[13]。SOAP作為應(yīng)用協(xié)議可以基于多種傳輸協(xié)議來傳遞消息(HTTP,SMTP等),但是隨著SOAP的廣泛應(yīng)用,不斷地增加附加的內(nèi)容以更新擴(kuò)展,使得現(xiàn)在開發(fā)人員覺得SOAP使用門檻較高。在SOAP近年來的擴(kuò)展過程中,發(fā)布應(yīng)用了一系列WS-*協(xié)議,雖然使得SOAP的應(yīng)用更加規(guī)范,但相應(yīng)地使用負(fù)擔(dān)也增加了。RESTful服務(wù)被認(rèn)為是一種架構(gòu)風(fēng)格,可以用來為客戶端構(gòu)造軟件來請(qǐng)求服務(wù),越來越多的網(wǎng)絡(luò)服務(wù)采用這種架構(gòu),為顯示對(duì)象特征和與外部服務(wù)通信提供更容易的接口[14]。與SOAP相比,REST充分利用了傳輸協(xié)議的運(yùn)行理念,更為簡(jiǎn)潔易用且輕量級(jí)。而近年來興起的OSGi技術(shù)是在Java虛擬機(jī)上定義的一個(gè)公共開放的架構(gòu),用來開發(fā)、部署、管理服務(wù)[9]。OSGi是一種輕量級(jí)服務(wù)模型,通過一個(gè)服務(wù)注冊(cè)表來進(jìn)行服務(wù)的發(fā)布、綁定和聯(lián)合。因此,隨著OSGi在Web服務(wù)領(lǐng)域越來越廣泛的應(yīng)用,本文也將其納入服務(wù)組合層次結(jié)構(gòu)中。
(3)添加標(biāo)準(zhǔn)3:人員因素。
在軟件開發(fā)中,相同的復(fù)雜度在不同的人眼中判斷的結(jié)果是不一樣的,這涉及到開發(fā)者的開發(fā)技能、經(jīng)驗(yàn)甚至專業(yè)知識(shí)等因素。軟件開發(fā)的復(fù)雜度越高,設(shè)計(jì)和管理的難度也會(huì)越大。因?yàn)閺?fù)雜度高可能導(dǎo)致設(shè)計(jì)者和管理者需要更加關(guān)注解決復(fù)雜度的問題而不是編碼或改進(jìn)設(shè)計(jì)[15]。在Web服務(wù)組合中同樣存在著這樣的關(guān)系。人員因素對(duì)服務(wù)組合的性能和效率有著難以忽視的影響。因此,本文的層次結(jié)構(gòu)也將人員因素納入考慮范圍。
但是,在已有的文獻(xiàn)中,筆者并未發(fā)現(xiàn)就人員因素對(duì)Web服務(wù)組合產(chǎn)生影響的相關(guān)研究成果,因此只將人員因素作為一項(xiàng)綜合標(biāo)準(zhǔn),不再進(jìn)行子標(biāo)準(zhǔn)細(xì)化。而對(duì)于這個(gè)標(biāo)準(zhǔn)下的可選項(xiàng),本文引進(jìn)了能力成熟度模型CMM來進(jìn)行描述。
CMM雖然是一種用于評(píng)估軟件承包能力的方法,借以提高軟件質(zhì)量,但其更關(guān)注在軟件開發(fā)過程中,參與開發(fā)人員的項(xiàng)目管理及工程能力的評(píng)估。CMM在20世紀(jì)70年代中期被提出,針對(duì)軟件項(xiàng)目開發(fā)延期及軟件質(zhì)量不佳的現(xiàn)象,美國國防部曾專門立題研究,研究結(jié)果發(fā)現(xiàn)這大多數(shù)是由于項(xiàng)目管理不善導(dǎo)致的,而不是技術(shù)實(shí)力不夠,進(jìn)而總結(jié)經(jīng)驗(yàn):軟件項(xiàng)目開發(fā)中技術(shù)只對(duì)局部產(chǎn)生影響,而管理才是影響軟件研發(fā)項(xiàng)目全局的因素[16]。由此,美國卡內(nèi)基-梅隆大學(xué)軟件工程研究院提出了CMM模型——關(guān)于軟件過程改進(jìn)與評(píng)估的方法。
在本文的層次結(jié)構(gòu)中,希望可以進(jìn)一步探究人員開發(fā)和管理因素對(duì)Web服務(wù)組合的影響,因此需要對(duì)人員因素做出一個(gè)綜合等級(jí)評(píng)估,這里將CMM應(yīng)用于AHP標(biāo)準(zhǔn)中。根據(jù)CMM的體系結(jié)構(gòu),本文也將人員因素評(píng)估的可選項(xiàng)分為五個(gè)級(jí)別:初始級(jí)、可重復(fù)級(jí)、 已定義級(jí)、已管理級(jí)、優(yōu)化級(jí)。
在原有的服務(wù)結(jié)構(gòu)層次基礎(chǔ)上,將上述三項(xiàng)標(biāo)準(zhǔn)添加合并,可以得到如圖2所示較為完善的服務(wù)組合決策層次結(jié)構(gòu)。

Figure 2 Hierarchy of WSC圖2 服務(wù)組合決策層次結(jié)構(gòu)
AHP方法之所以被人們廣泛使用,就是因?yàn)榭梢匀菁{不同類型的因素,可以是有形的可精確測(cè)量的標(biāo)準(zhǔn),如價(jià)格、容量等;也可以是有形的但難以衡量的標(biāo)準(zhǔn),如維護(hù)成本等;甚至是無形的完全依靠決策者主觀判斷的標(biāo)準(zhǔn),如風(fēng)格等因素。在服務(wù)組合的層次結(jié)構(gòu)中,眾多標(biāo)準(zhǔn)及子標(biāo)準(zhǔn)都難以衡量,大多需要決策者依靠開發(fā)經(jīng)驗(yàn)進(jìn)行判斷。因此,不同的決策者可能做出完全不同的判斷結(jié)果。本文參考了大量文獻(xiàn)依據(jù)與比較,從而得出以下結(jié)果。
3.2.1 標(biāo)準(zhǔn)兩兩比較
為了判斷每一層級(jí)中每個(gè)元素的權(quán)重,需要對(duì)這些元素進(jìn)行兩兩比較,因此為每個(gè)元素都分配到一個(gè)0~1的優(yōu)先度。但是,在兩兩比較過程中,需要一個(gè)相同的指標(biāo)來表示不同的重要程度,AHP方法中介紹了一個(gè)基本比較值[11]理論,如表1所示。其中2、4、6和8用來表示中間值。

Table 1 Fundamental scale for pair wise comparisons
(1)標(biāo)準(zhǔn)行分配權(quán)重。
按照表1的標(biāo)準(zhǔn)便可以進(jìn)行兩兩比較。這個(gè)過程從層次結(jié)構(gòu)的標(biāo)準(zhǔn)層開始。標(biāo)準(zhǔn)層共4個(gè)元素:環(huán)境、技術(shù)、運(yùn)行平臺(tái)、人員因素。這4個(gè)可用的標(biāo)準(zhǔn)中一共有6對(duì)進(jìn)行比較——環(huán)境/技術(shù),環(huán)境/運(yùn)行平臺(tái),環(huán)境/人員因素,技術(shù)/運(yùn)行平臺(tái),技術(shù)/人員因素,運(yùn)行平臺(tái)/人員因素。
環(huán)境在服務(wù)組合中指的是組合的不同階段,文獻(xiàn)[8]在服務(wù)組合的生命周期中定義了以上5個(gè)階段,也就是5個(gè)子標(biāo)準(zhǔn),這5個(gè)子標(biāo)準(zhǔn)是對(duì)組合過程影響最大的部分[8]。技術(shù)是指在實(shí)施服務(wù)組合中使用到的工具。運(yùn)行平臺(tái)指服務(wù)組合進(jìn)行的場(chǎng)所,不同的運(yùn)行平臺(tái)會(huì)影響最后組合的服務(wù)的安全性和適應(yīng)性等非功能屬性。人員因素則對(duì)服務(wù)組合過程中的設(shè)計(jì)和管理有著一定的影響。因此,根據(jù)上述比較,無疑環(huán)境對(duì)服務(wù)組合的影響是最為顯著的,與技術(shù)、運(yùn)行平臺(tái)、人員因素的比分別可以取3∶1,3∶1,5∶1。技術(shù)稍次之,與運(yùn)行平臺(tái)、人員因素的比分別可以取2∶1,3∶1。運(yùn)行平臺(tái)與人員因素的比可以取2∶1。如此可建立如表2所示的矩陣。

Table 2 Criteria comparison matrix
根據(jù)矩陣,首先計(jì)算每一列的和,然后將矩陣中每個(gè)值都除以所在列的和,得出如表3所示的標(biāo)準(zhǔn)層4元素比較矩陣2。

Table 3 Criteria comparison matrix 2
最后將每一行的值取平均,即為該行元素的權(quán)重,也稱為優(yōu)先度。得到結(jié)果為:環(huán)境0.518、技術(shù)0.242、運(yùn)行平臺(tái)0.154、人員因素0.086。
(2)“環(huán)境”子標(biāo)準(zhǔn)分配權(quán)重。
“環(huán)境”下共分為5個(gè)子標(biāo)準(zhǔn),即模式、符號(hào)學(xué)、機(jī)制、設(shè)計(jì)階段方法和運(yùn)行階段方法。同理,兩兩比較一共有10對(duì)。根據(jù)文獻(xiàn)[7,8],模式和機(jī)制對(duì)服務(wù)組合起到了絕大數(shù)影響,符號(hào)學(xué)和運(yùn)行階段稍次之,設(shè)計(jì)階段則重要性偏低,因此可以給出如表4所示的比較矩陣。

Table 4 Sub-criteria comparison matrix in “Context”
經(jīng)過上述相似的步驟計(jì)算,得出這5項(xiàng)子標(biāo)準(zhǔn)的優(yōu)先度分別是:模式0.321、符號(hào)學(xué)0.078、機(jī)制0.326、設(shè)計(jì)階段方法0.156和運(yùn)行階段方法0.119。
(3)“運(yùn)行平臺(tái)”子標(biāo)準(zhǔn)分配權(quán)重。
“運(yùn)行平臺(tái)”下共有2個(gè)子標(biāo)準(zhǔn),即部署項(xiàng)和執(zhí)行引擎。文獻(xiàn)[9]對(duì)二者進(jìn)行了詳細(xì)闡述,但并未對(duì)二者重要性進(jìn)行比較,因此本文取這兩項(xiàng)的比較值為1∶1,即優(yōu)先度都為0.5。
至此,本文完成了標(biāo)準(zhǔn)層和子標(biāo)準(zhǔn)層的優(yōu)先度分配的大部分工作,所得出的優(yōu)先度如圖3所示。此時(shí),每一節(jié)點(diǎn)下的優(yōu)先度相加的和都為1,這被稱為局部?jī)?yōu)先度。

Figure 3 Local priority圖3 局部?jī)?yōu)先度
但是,在計(jì)算時(shí),局部?jī)?yōu)先度并不方便,因此需要將每一節(jié)點(diǎn)的優(yōu)先度乘以其父節(jié)點(diǎn)的優(yōu)先度,計(jì)算出該元素的全局優(yōu)先度。計(jì)算結(jié)果如圖4所示。此時(shí),環(huán)境和運(yùn)行平臺(tái)這兩個(gè)標(biāo)準(zhǔn)的優(yōu)先度就失效了,而層次結(jié)構(gòu)中所有的元素優(yōu)先度相加和才為1。

Figure 4 Global priority圖4 全局優(yōu)先度
3.2.2 最后決策
3.1.1節(jié)中提到,在構(gòu)建服務(wù)組合層次結(jié)構(gòu)時(shí),將經(jīng)典的AHP結(jié)構(gòu)做了一些改動(dòng),添加了一層標(biāo)準(zhǔn)可選項(xiàng)層。因?yàn)楸窘Y(jié)構(gòu)的方案層,本質(zhì)上就是每一個(gè)子標(biāo)準(zhǔn)下的選項(xiàng)組合構(gòu)成一個(gè)較為完整的服務(wù)組合方案。通常情況下,決策者會(huì)根據(jù)經(jīng)驗(yàn)提出若干較為合適的組合方案,但不能明確比較其優(yōu)劣。為了幫助決策者選擇最佳方案,就可以按照本文的AHP算法進(jìn)行量化比較。具體比較過程如算法1所示。
算法1最佳WSC方案選擇
輸入:備選項(xiàng)A,層次結(jié)構(gòu)標(biāo)準(zhǔn)C,各標(biāo)準(zhǔn)權(quán)重CP,各標(biāo)準(zhǔn)下選項(xiàng)比較值矩陣AC。
輸出:最佳方案BA。
functionGetAP(A,C,AC)
for allcj∈Cdo
for allai∈Ado
//計(jì)算可選項(xiàng)ai在標(biāo)準(zhǔn)cj下的權(quán)重值A(chǔ)Paicj
end for
end for
//得到各標(biāo)準(zhǔn)下選項(xiàng)權(quán)重矩陣AP
returnAP
end function
AP=GetAP(A,C,AC)
for allai∈Ado
//計(jì)算每個(gè)可選項(xiàng)ai的總權(quán)重值Pai
·CPcj
end for
//選擇權(quán)重值Pai最高的方案為最佳方案
BA=Amax(P);
returnBA
下面舉出示例,根據(jù)算法選擇最佳方案。
首先,根據(jù)經(jīng)驗(yàn)提出三種可行的備選方案:
Ⅰ編制+語義學(xué)+SOAP+半自動(dòng)+動(dòng)態(tài)+模型驅(qū)動(dòng)+云端部署+服務(wù)總線+已定義級(jí);
Ⅱ編排+語法學(xué)+SOAP+自動(dòng)+動(dòng)態(tài)+基于AI規(guī)劃+云端部署+業(yè)務(wù)流程引擎+已定義級(jí);
Ⅲ編排+語義學(xué)+REST+自動(dòng)+動(dòng)態(tài)+模型驅(qū)動(dòng)+本地部署+業(yè)務(wù)流程引擎+已管理級(jí)。
其次,根據(jù)上述規(guī)則將三個(gè)方案在每一子標(biāo)準(zhǔn)下進(jìn)行兩兩比較,相同的項(xiàng)比較結(jié)果為1,不同的項(xiàng)由決策者選擇比較值。例如,將這三種方案在模式這一標(biāo)準(zhǔn)下比較,得出比較矩陣,根據(jù)算法計(jì)算出模式標(biāo)準(zhǔn)下三種方案的優(yōu)先度,如表5所示。

Table 5 Alternative comparison by “pattern” sub-criteri
同理,比較得出三個(gè)方案在每一標(biāo)準(zhǔn)下的優(yōu)先度,并乘以該項(xiàng)標(biāo)準(zhǔn)的優(yōu)先度可得出所有標(biāo)準(zhǔn)下的方案比較矩陣,如表6所示。
將方案在每一項(xiàng)標(biāo)準(zhǔn)下的優(yōu)先度相加,得出總的權(quán)重:方案Ⅰ 0.31、方案Ⅱ 0.33、方案Ⅲ 0.36。由此,決策者可以判斷,權(quán)重最高的方案Ⅲ即為備選項(xiàng)中最適合該服務(wù)組合目標(biāo)的方案。

Table 6 Alternatives comparison
為輔助Web服務(wù)方案決策人在實(shí)踐中更便捷地應(yīng)用前文所描述的決策機(jī)制,本文進(jìn)一步設(shè)計(jì)并實(shí)現(xiàn)了這一決策系統(tǒng)。
本系統(tǒng)所采用的技術(shù)方案如表7所示,包括系統(tǒng)架構(gòu)、開發(fā)環(huán)境、開發(fā)語言、前端框架和數(shù)據(jù)庫等內(nèi)容。

Table 7 List of technology strategies in the system
本決策系統(tǒng)的核心功能主要有構(gòu)建AHP層次結(jié)構(gòu)樹和AHP決策,可以幫助用戶完成一個(gè)完整的決策過程。
4.2.1 構(gòu)建AHP層次結(jié)構(gòu)樹
用戶在進(jìn)入系統(tǒng)后,可以選擇新建項(xiàng)目。在新建項(xiàng)目模塊中,用戶需要為新建項(xiàng)目增添基本信息,然后分配層次結(jié)構(gòu)樹權(quán)重。在構(gòu)建結(jié)構(gòu)樹時(shí),系統(tǒng)會(huì)推薦本文根據(jù)文獻(xiàn)研究得出的權(quán)重分配,用戶根據(jù)需求可以選擇接受或拒絕。若接受,則結(jié)構(gòu)樹自動(dòng)賦值推薦值;若拒絕,則用戶需進(jìn)行3.2.1節(jié)中三個(gè)矩陣的標(biāo)準(zhǔn)比較,得出新的權(quán)重值。最終層次結(jié)構(gòu)樹如圖5所示。

Figure 5 Interface of hierarchy tree圖5 系統(tǒng)最終層次結(jié)構(gòu)樹界面
4.2.2 AHP決策
用戶的決策樹構(gòu)建完成后,可以新建該項(xiàng)目的方案項(xiàng),然后需要進(jìn)入3.2.2節(jié)中在每個(gè)子標(biāo)準(zhǔn)下的比較過程。最后,系統(tǒng)將自動(dòng)計(jì)算出每個(gè)方案最終的權(quán)重值(如表8所示),用戶便可借鑒該權(quán)重值做出選擇(系統(tǒng)的運(yùn)行過程可參考項(xiàng)目系統(tǒng)運(yùn)行視頻http://softeng.nju.edu.cn/WSCshow/main.html)。

Table 8 Results of alternatives comparison
本文使用層次分析法(AHP)來幫助解決Web服務(wù)組合中多標(biāo)準(zhǔn)的方法組合問題。首先,為了讓AHP更加符合Web服務(wù)組合的實(shí)際應(yīng)用情況,本文對(duì)標(biāo)準(zhǔn)AHP作出了些許改進(jìn),在目標(biāo)層、標(biāo)準(zhǔn)層和方案層之外新增了方案可選項(xiàng)層。其次,以Web服務(wù)組合原有的分類矩陣為原型,構(gòu)造出基于環(huán)境和技術(shù)兩大標(biāo)準(zhǔn)及其數(shù)個(gè)子標(biāo)準(zhǔn)的基本層次結(jié)構(gòu)。通過文獻(xiàn)分析,在原始的層次結(jié)構(gòu)上增添了運(yùn)行平臺(tái)標(biāo)準(zhǔn)、機(jī)制新可選項(xiàng)和人員因素標(biāo)準(zhǔn),并提供了子標(biāo)準(zhǔn)分類和方案可選項(xiàng)。接著,通過標(biāo)準(zhǔn)和子標(biāo)準(zhǔn)的兩兩比較,計(jì)算出每個(gè)元素在結(jié)構(gòu)中的優(yōu)先度或權(quán)重。最后,本文舉出示例,從三個(gè)經(jīng)驗(yàn)選項(xiàng)中利用上述層次結(jié)構(gòu)做出比較,得出最佳結(jié)果。由此可見,AHP在Web服務(wù)組合的決策過程中,將這些無法量化和難以比較的元素巧妙地進(jìn)行了轉(zhuǎn)化,為決策者提供了更加具有實(shí)用性和可靠性的結(jié)果,在實(shí)際運(yùn)用中有著重要的意義。為幫助Web服務(wù)組合決策者理解和使用這種機(jī)制,本文也設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)半自動(dòng)決策系統(tǒng)平臺(tái)easyWSC。根據(jù)使用者輸入的相關(guān)信息,easyWSC會(huì)幫助決策者做出相應(yīng)的最佳選擇。為了驗(yàn)證最終決策的正確性和合理性,決策者可以召集參與服務(wù)組合工作的不同角色成員組成驗(yàn)證委員會(huì),對(duì)決策參數(shù)及結(jié)果進(jìn)行二次比較和論證。
下一步的研究工作將針對(duì)原有的決策系統(tǒng)進(jìn)行優(yōu)劣比較,并探索是否能對(duì)二者進(jìn)行整合,以得到更有效的決策算法。同時(shí),AHP方法在解決多標(biāo)準(zhǔn)問題時(shí)較多依賴于人工決策,因此為了挖掘更加優(yōu)化的方法,可以記錄系統(tǒng)的決策數(shù)據(jù),判斷決策點(diǎn)之間的關(guān)聯(lián)。例如,人員工程管理能力越高,最終決策選擇的組合方案越偏向于復(fù)雜,如此可以根據(jù)挖掘結(jié)果改進(jìn)決策樹。在系統(tǒng)實(shí)現(xiàn)方面,為了提供更好的用戶體驗(yàn),還可以拓展其它功能模塊。例如,可以讓用戶自主選擇決策標(biāo)準(zhǔn)、邀請(qǐng)他人為自己的項(xiàng)目決策等。