史銀雪,孫瑞志,袁 鋼
(中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院計算機系,北京 100083)
服務(wù)工作流是在面向服務(wù)架構(gòu)(service-oriented architecture, SOA)下對業(yè)務(wù)過程的一種計算機化的表示模型,業(yè)務(wù)過程中全部或部分活動的執(zhí)行通過服務(wù)調(diào)用來實現(xiàn)[1]。而服務(wù)工作流的個性化定制主要目的是在滿足用戶個性需求的同時更好地體現(xiàn)用戶價值。但由于業(yè)務(wù)環(huán)境的復(fù)雜多變和網(wǎng)絡(luò)環(huán)境下不斷出現(xiàn)的新特性使得服務(wù)工作流的個性化定制必然面對更多的挑戰(zhàn)。
首先,服務(wù)工作流的建模必須具有更好的靈活性。對于預(yù)先定義的服務(wù)工作流建模,適用于業(yè)務(wù)完全明確的情況。這種方法首先對用戶要求較高,需要用戶了解網(wǎng)絡(luò)環(huán)境的很多細(xì)節(jié)(如資源的物理位置、服務(wù)端點等);其次,難以適應(yīng)復(fù)雜業(yè)務(wù)的需求,主要原因在于復(fù)雜業(yè)務(wù)通常在建模期間無法完全確定所有的活動細(xì)節(jié),只有等到業(yè)務(wù)執(zhí)行期間根據(jù)執(zhí)行情況邊執(zhí)行邊構(gòu)造(如依賴于前繼活動的執(zhí)行結(jié)果等一些實時信息的活動);然后,在動態(tài)多域的網(wǎng)絡(luò)分布環(huán)境下,軟硬件故障隨時發(fā)生,策略突然改變都會使得原定義流程不再適用。因此,需要柔性的服務(wù)工作流建模方法。
另外,在執(zhí)行過程中根據(jù)用戶的個人偏好進行基于服務(wù)質(zhì)量(quality of service,QoS)的服務(wù)選取和工作流調(diào)度也是個性化服務(wù)工作流的一個關(guān)鍵問題,目前的研究只考慮了業(yè)務(wù)邏輯在執(zhí)行前完全確定的情況。而現(xiàn)實世界中,很多業(yè)務(wù)邏輯的確定依賴于運行中間結(jié)果。因此,執(zhí)行過程中不僅要考慮服務(wù)實例的選取還要考慮服務(wù)工作流的執(zhí)行時模型細(xì)化。
針對以上情況,本文在前期研究[2]的基礎(chǔ)上提出了服務(wù)流程模式,從不同層面對業(yè)務(wù)知識進行抽象和描述,可以根據(jù)用戶需求即時構(gòu)造一個多粒度的服務(wù)組織模型;并詳細(xì)描述了基于服務(wù)流程模式的多層次匹配算法,以實現(xiàn)在服務(wù)流程運行過程中的動態(tài)構(gòu)造和服務(wù)選取。最后以一個應(yīng)急案例說明此方法能夠完成服務(wù)工作流的業(yè)務(wù)邏輯定制和服務(wù)實例定制。
流程可視化建模[3]是服務(wù)工作流采用較多的業(yè)務(wù)邏輯定制解決方案,但是流程在運行時的動態(tài)修改比較困難。為了解決在不完整流程定義的情況下的業(yè)務(wù)邏輯定制,文獻[4]引入黑盒將事先無法確定的子流程進行封裝,等到服務(wù)工作流執(zhí)行過程中才能根據(jù)預(yù)定義規(guī)則、當(dāng)前運行信息和用戶的需求將黑盒子流程展開為具體運行流程。文獻[5]給出了一種基于業(yè)務(wù)生成圖的服務(wù)工作流構(gòu)造方法,其基本思想是將服務(wù)按照功能分類,每類服務(wù)分別采用生成樹的方式組織,并依據(jù)工作流的邏輯關(guān)系形成業(yè)務(wù)生成圖,此方法方便實現(xiàn)業(yè)務(wù)功能級別的服務(wù)組織,但缺乏對情景上下文的討論。服務(wù)工作流的按需構(gòu)建也尤為重要,文獻[6]通過建立目標(biāo)本體,服務(wù)本體,利用層次任務(wù)網(wǎng)絡(luò)(hierarchy task net,HTN)規(guī)劃實現(xiàn)目標(biāo)驅(qū)動的可適應(yīng)服務(wù)組合,文獻[7]基于用戶角色、目標(biāo)、流程和服務(wù)需求元模型,依據(jù)模型關(guān)聯(lián)關(guān)系進行服務(wù)組織,并提出了按角色、需求目標(biāo)、服務(wù)描述查找和推薦的方法,著重某一領(lǐng)域的用戶需求和服務(wù)關(guān)聯(lián)關(guān)系。本文方法融合以上研究特點,一方面構(gòu)造服務(wù)流程模式利用將業(yè)務(wù)目標(biāo)和能夠?qū)崿F(xiàn)業(yè)務(wù)目標(biāo)的服務(wù)流程聯(lián)系起來,業(yè)務(wù)領(lǐng)域的用戶可以方便的定義和選擇所需服務(wù)流程;另一方面在流程運行過程中利用多層匹配方便實現(xiàn)服務(wù)流程的即時構(gòu)造。
服務(wù)實例的選取是服務(wù)組合研究中的一個主要研究點,有些研究側(cè)重于抽象服務(wù)選擇可用的服務(wù)提供商,對原子服務(wù)的選擇,最常用的服務(wù)選擇方式為QoS屬性簡單加權(quán)聚合[8-9],按分值排序取評估最高的服務(wù);對組合服務(wù)的選擇,主要有兩種解決方案即局部最優(yōu)和全局最優(yōu)[10],全局最優(yōu)策略和服務(wù)流程的邏輯結(jié)構(gòu)密切相關(guān),且用戶偏好也影響評估分值。另一方面,基于人工智能的服務(wù)組合方法發(fā)展也很迅速[11],W3C先后推薦了RDF、DAML+OIL和OWL-S[12]作為本體描述語言標(biāo)準(zhǔn)提供了很好的支持,但由于各個客戶端本體庫不同,導(dǎo)致服務(wù)越多,描述就越復(fù)雜。本文提出的服務(wù)實例選取方法隨著服務(wù)工作流的執(zhí)行逐步進行的,因此QoS非功能信息也是實時獲取,這樣不僅能夠保證每一個被選取的服務(wù)是當(dāng)前最佳的可用服務(wù),從而最大限度地降低了執(zhí)行異常的出現(xiàn),而且可以將抽象流程定義的轉(zhuǎn)換工作分散到各個流程的執(zhí)行階段,降低服務(wù)查找和綁定時的開銷。
因此,本文的研究旨在實現(xiàn)服務(wù)工作流的按需定制。通過引入服務(wù)流程模式建立用戶需求和服務(wù)工作流的關(guān)聯(lián);利用基于服務(wù)流程模式的多層次匹配算法進行多粒度服務(wù)組織,建立抽象需求流程模型,不僅能實現(xiàn)明確的業(yè)務(wù)還可以在運行中根據(jù)實時信息對目標(biāo)活動進行動態(tài)細(xì)化,并采用QoS全局最優(yōu)策略選擇動態(tài)綁定服務(wù)實例。
在實際應(yīng)用領(lǐng)域中,大量的業(yè)務(wù)活動和業(yè)務(wù)邏輯經(jīng)逐步積累后形成了標(biāo)準(zhǔn)化的服務(wù)流程,并在新的應(yīng)用中有著重要的指導(dǎo)意義和參考價值,服務(wù)流程的共享和復(fù)用顯得尤為重要。服務(wù)流程模式作為一種知識表示工具,用來實現(xiàn)業(yè)務(wù)領(lǐng)域知識和與之適應(yīng)的服務(wù)流程的抽象和規(guī)范。不失一般性,其形式化定義如下:
服務(wù)流程模式 (service process pattern, SPP),由一個四元組(Description, Goal, Context, Service SubProcess)組成:
(1) Description:服務(wù)流程模式的基本描述,包括模式的基本標(biāo)識和名稱。
(2) Goal:表示服務(wù)業(yè)務(wù)目標(biāo),包含業(yè)務(wù)目標(biāo)標(biāo)識,業(yè)務(wù)目標(biāo)名稱、描述、所屬業(yè)務(wù)領(lǐng)域和概念。其中Concept是目標(biāo)對應(yīng)在領(lǐng)域本體中的概念對象。這些本體概念一般用詞典或OWL來描述。每一個服務(wù)流程模式對應(yīng)唯一確定的業(yè)務(wù)目標(biāo),而同一業(yè)務(wù)目標(biāo)則可能有多個服務(wù)流程模式與之對應(yīng)。
(3) Context={FR, NFR}: 表示上下文場景,是指和服務(wù)相關(guān)的功能性需求(functional requirement,FR)和非功能性需求(nonfunctional requirement,NFR)。FR/NFR={<W1,F1>,<W2,F2>…<Wi,Fi>},表示功能性需求和非功能性需求皆由多個需求指標(biāo)和相應(yīng)權(quán)重構(gòu)成。其中<Wi,Fi>表示第i個需求指標(biāo)和其對應(yīng)的權(quán)重,權(quán)重一般取決于用戶偏好和專家經(jīng)驗。
(4) Service SubProcess: 服務(wù)子流程,通過更細(xì)粒度的業(yè)務(wù)操作的組合來描述服務(wù)流程模式的動態(tài)特性,由服務(wù)流程活動集合(service process activities, SPA)、控制關(guān)系(service process control,SPC) (順序、并行、選擇、循環(huán)等)以及數(shù)據(jù)依賴關(guān)系(service process data,SPD)構(gòu)成。服務(wù)流程活動(service process activities, SPA)={Goal,Parameter}即服務(wù)活動要完成的任務(wù)目標(biāo)和響應(yīng)參數(shù),當(dāng)服務(wù)子流程為空時,說明服務(wù)流程模式為最細(xì)粒度服務(wù),不可再分。
利用服務(wù)流程模式作為服務(wù)工作流的知識表示方法有以下優(yōu)點:①服務(wù)流程模式將業(yè)務(wù)目標(biāo)和能夠?qū)崿F(xiàn)業(yè)務(wù)目標(biāo)的服務(wù)流程聯(lián)系起來,業(yè)務(wù)領(lǐng)域的用戶可以方便地定義和選擇所需服務(wù)流程;②服務(wù)流程模式提供不同的描述粒度,能夠?qū)I(yè)務(wù)知識和經(jīng)驗進行不同層次的抽象,易于在應(yīng)用程序中表示和使用;③服務(wù)流程模式結(jié)構(gòu)相對獨立,可以在執(zhí)行過程中抽取新的模式從而對其進行更新和擴充;④服務(wù)流程模式對業(yè)務(wù)知識的表示比較靈活,各部分和各參數(shù)都有明確的意義,有利于知識建模過程及后續(xù)的知識調(diào)整和優(yōu)化。
服務(wù)工作流的個性化定制主要包括業(yè)務(wù)邏輯的定制和執(zhí)行模式的定制[7]。其核心思想為:①利用多層次匹配算法實現(xiàn)基于服務(wù)流程模式的多粒度服務(wù)組織,并通過人機交互進行服務(wù)組合粒度控制;②利用質(zhì)量分析實現(xiàn)用戶感知的QoS分析實現(xiàn)服務(wù)實例定制。
該匹配算法包括業(yè)務(wù)目標(biāo)匹配和功能屬性評估,而功能屬性評估又包括輸入、輸出參數(shù)匹配和業(yè)務(wù)條件評估2個方面。對于一個業(yè)務(wù)目標(biāo),最適用的服務(wù)流程模式就是滿足目標(biāo)匹配,功能屬性評估中得分最高的服務(wù)流程模式。
3.1.1 目標(biāo)匹配
目標(biāo)匹配(goal match,GM),用來選擇能夠完成業(yè)務(wù)目標(biāo)g的候選組合服務(wù)流程模式。目標(biāo)匹配采用相似度度量函數(shù),如式(1):
其中SIM(sp.Goal,g)為目標(biāo)匹配度,d定義為概念相關(guān)性,a是可以調(diào)節(jié)的參數(shù)。當(dāng)sp.goal?g時d=1;Goal=g時,d=0;匹配度為1;sp.Goal≠g時,a=1,目標(biāo)匹配度為0。當(dāng)目標(biāo)匹配度超過預(yù)定閥值時,則接著進行功能屬性評估。
3.1.2 功能屬性評估
功能屬性評估(function matching, FM)主要是對輸入、輸出(input,output,IO)參數(shù)的評估和對業(yè)務(wù)條件的評估,這里的業(yè)務(wù)條件也可以理解為業(yè)務(wù)規(guī)則,是指服務(wù)執(zhí)行前必須滿足的前置條件和業(yè)務(wù)執(zhí)行后所需滿足的條件。例如要想使用航空運輸服務(wù),前置條件是所運輸物品必須為非危險品。
目前在服務(wù)發(fā)現(xiàn)領(lǐng)域一部分研究采用相似函數(shù)匹配,其功能屬性匹配主要集中在IO匹配;一部分研究采用邏輯推理,不僅可以包括服務(wù)描述性元素,而且可以包含與服務(wù)相關(guān)的條件,但是實現(xiàn)較為復(fù)雜。本文采用的功能屬性評估采用分而治之的辦法,對IO輸入、輸出參數(shù)的評估采用相似度量方法;而對于業(yè)務(wù)規(guī)則條件的判斷采用上下文評估函數(shù)[13]。
功能屬性評估 (function matching,F(xiàn)M)記為:
其中IOM為輸入、輸出匹配度,BCM為業(yè)務(wù)條件匹配度,μ1,μ2分別為IO匹配和業(yè)務(wù)條件匹配所占權(quán)重。
(1) IO輸入輸出參數(shù)匹配。對于IO匹配研究較多,利用語義匹配相對成熟,本文采用文獻[14]中基于OWL-S的計算方法得出各自的語義匹配值,基于語義匹配度的服務(wù)選擇公式為:
其中IOM為語義匹配值,IM,OM分別為輸入,輸出參數(shù)對應(yīng)的語義匹配值,ωi,ωo分別為輸入?yún)?shù)對應(yīng)的權(quán)重。IOM為輸入、輸出參數(shù)對應(yīng)的語義匹配值權(quán)重的綜合結(jié)果。
其中ωi為積極影響因素對應(yīng)的權(quán)重,評估函數(shù),用戶需求值和服務(wù)流程模式參數(shù)值,相對而言,為第i個消極影響因素的相應(yīng)內(nèi)容。
根據(jù)層次化分析的設(shè)計理念,一個問題可以分解為多個子問題,自上而下,分而治之。針對同一業(yè)務(wù)需求,可以由一個粗粒度的服務(wù)來實現(xiàn),也可以將業(yè)務(wù)目標(biāo)分解為多個細(xì)粒度的服務(wù)組合實現(xiàn)。而服務(wù)流程模式是構(gòu)造多粒度服務(wù)模型的基本元素。圖1為多粒度服務(wù)流程模式樹,根節(jié)點為滿足目標(biāo)Goal的服務(wù)流程模式SPP1,其服務(wù)子流程為非空流程,則意味著可進一步分解細(xì)化,為其服務(wù)中的每個服務(wù)節(jié)點選擇適用的服務(wù)流程模式,當(dāng)用戶同意分解時,再次進行多層次匹配,如此遞歸形成一個功能粒度由粗到細(xì)的多粒度服務(wù)流程模式樹。
圖1 多粒度服務(wù)流程模式樹
可見,對于同一業(yè)務(wù)目標(biāo)Goal,存在多個滿足功能需求的服務(wù)組合方案。第一種方案為SPP1,對應(yīng)最粗粒度復(fù)合服務(wù);而最底層的服務(wù)組合方案則全部分解為原子服務(wù),為最細(xì)粒度服務(wù)組合。
利用上述多層次匹配算法進行多粒度服務(wù)組織后,得到一系列目標(biāo)匹配和功能相似的候選服務(wù)流程模式構(gòu)成的服務(wù)組合方案。但不管是粗粒度服務(wù)組合方案還是細(xì)粒度服務(wù)組合方案對應(yīng)的都是抽象的服務(wù)類型,需要將其映射到服務(wù)實例中。
信息網(wǎng)絡(luò)時代,web數(shù)量不斷增加,存在著大量的功能相近、質(zhì)量迥異的web服務(wù)資源。原子服務(wù)提供者對開發(fā)部署的服務(wù)的QoS進行描述,并注冊到服務(wù)注冊中心,而復(fù)合服務(wù)的服務(wù)質(zhì)量很大程度上依賴于構(gòu)成該復(fù)合服務(wù)的各子服務(wù)的服務(wù)質(zhì)量及其服務(wù)質(zhì)量關(guān)聯(lián)。
目前客戶比較關(guān)注的QoS屬性主要有可用性、吞吐量、響應(yīng)時間和服務(wù)價格,其中可用性,吞吐量為正收益性屬性,即是說,其數(shù)值越高,服務(wù)質(zhì)量越好;而響應(yīng)時間和服務(wù)費用為負(fù)收益屬性,即其數(shù)值越高則服務(wù)質(zhì)量越差。表1給出原子服務(wù)(atomic service, AS)和復(fù)合服務(wù)(composition service,CS)的QoS評價模型,其中代表可用性、吞吐量、響應(yīng)時間和服務(wù)價格評估值。
因此,QoS的評價函數(shù)為:
表1 質(zhì)量評估模型
具體服務(wù)實例匹配步驟如下:
(1) 抽象服務(wù)輸入輸出接口匹配;
(2) 從服務(wù)注冊中心中選取與抽象服務(wù)接口匹配的服務(wù)實例集合;
(3) 提取每個服務(wù)實例的QoS描述信息;
(4) 設(shè)定權(quán)重,進行QoS評估;
(5) 利用QoS評估函數(shù)對各個服務(wù)實例進行評估并排序;
(6) 結(jié)果非空,則返回QoS評估分?jǐn)?shù)最高的服務(wù)實例;否則,調(diào)用多層次匹配,進行粒度細(xì)化,得到下層細(xì)粒度服務(wù)組合方案,返回步驟(1);
(7) 部署到服務(wù)工作流引擎執(zhí)行。
本節(jié)結(jié)合突發(fā)事件應(yīng)急處理說明服務(wù)工作流的個性化定制方法。案例場景為:2012年7月21日晚8點,北京應(yīng)急中心接到報警,北京京港澳高速長陽路段積水高度超過50 mm,交通癱瘓,多于50輛車被困,周邊斷電,有人員傷亡,災(zāi)情非常嚴(yán)重,請求救助。下面首先構(gòu)造突發(fā)事件應(yīng)急服務(wù)流程模式庫,實現(xiàn)對應(yīng)急預(yù)案的形式化和知識化,然后說明基于暴雨應(yīng)急服務(wù)流程模式的應(yīng)急處理個性化定制過程。
服務(wù)流程模式從目標(biāo),上下文場景和處理流程3個方面對應(yīng)急預(yù)案進行描述。其中,上下文場景對應(yīng)實例中的事件屬性,主要包括積水量={高([50,100)),非常高[100,)},人員傷亡數(shù)={無,有},交通情況={正常,受阻,癱瘓},電力情況={正常,斷電},災(zāi)害等級={1, 2, 3, 4},災(zāi)害地點。表2中列舉出部分暴雨應(yīng)急服務(wù)流程模式。
其中,積水高,有人員傷亡,交通癱瘓和斷電的場景下應(yīng)急處置可以由RP25和RP26服務(wù)來實現(xiàn),分別對應(yīng)服務(wù)子流程SWF25和SWF26,如圖2所示。
上述構(gòu)造的所有服務(wù)流程模式都存儲在服務(wù)流程模式庫中,當(dāng)突發(fā)事件發(fā)生,應(yīng)急指揮中心獲取報警信息,通過多層匹配獲取符合條件的服務(wù)流程模式過程如圖3所示。
表2 暴雨應(yīng)急服務(wù)流程模式(部分)
圖2 服務(wù)子流程
圖3 個性化定制過程
具體步驟為:
(1) 獲取應(yīng)急目標(biāo)(如“暴雨應(yīng)急”);
(2) 目標(biāo)模式多層匹配找到適合的服務(wù)流程模式(如暴雨應(yīng)急-暴雨服務(wù)流程模式RP0,應(yīng)急啟動-RP22,應(yīng)急處置-RP31);
(3) 獲取對應(yīng)于服務(wù)子流程中的各個服務(wù)活動的目標(biāo)和參數(shù)列表;
(4) 判斷服務(wù)活動是否為目標(biāo)活動,是轉(zhuǎn)步驟(2);
(6) 執(zhí)行服務(wù)實例匹配找到相應(yīng)服務(wù)(如房山醫(yī)療隊,北京排水集團);
(7) 部署執(zhí)行。
面向服務(wù)的工作流個性化定制能夠更好地適應(yīng)復(fù)雜多變的業(yè)務(wù)需求。一方面可以根據(jù)用戶需求定制服務(wù)流程,另一方面還可在互聯(lián)網(wǎng)資源中動態(tài)地選擇和調(diào)用web服務(wù)。本文引入了服務(wù)流程模式,它不僅包含粒度較小、功能單一的原子服務(wù)和功能豐富、粒度較大的服務(wù),還可以通過多層次匹配實現(xiàn)大粒度服務(wù)到較小粒度服務(wù)的多粒度服務(wù)組合方案;而對于執(zhí)行模式的定制是通過QoS的評估分析從服務(wù)注冊中心中匹配最佳服務(wù)實例并部署執(zhí)行。最后用突發(fā)事件的應(yīng)急處理作為示例進行了說明。目前的工作沒有考慮服務(wù)失效的處理,下一步工作將對服務(wù)工作流異常做進一步研究。
[1]劉 博, 范玉順.面向服務(wù)的工作流性能評價及指標(biāo)相關(guān)度分析[J].計算機集成制造系統(tǒng), 2008, 14(1):160-166.
[2]史銀雪, 孫瑞志, 向 勇.基于動態(tài)規(guī)劃的柔性工作流[J].東南大學(xué)學(xué)報(自然科學(xué)版), 2010, 40(s2):258-262.
[3]胡春華, 彭昆湘, 劉濟波, 劉安豐.Web 服務(wù)工作流路由模型構(gòu)造及 QOS 優(yōu)化[J].中南大學(xué)學(xué)報(自然科學(xué)版), 2009, 40(4): 1040-1046.
[4]夏海江, 鄧水光, 吳朝暉.Web服務(wù)動態(tài)組合方法研究和設(shè)計[J].計算機工程與設(shè)計, 2007, 28(6):1334-1337.
[5]胡春華, 吳 敏, 劉國平, 徐德智.一種基于業(yè)務(wù)生成圖的Web服務(wù)工作流構(gòu)造方法[J].軟件學(xué)報, 2007,18(8): 1870-1882.
[6]Song S, Lee S W.Goal-driven approach for adaptive service composition using planning [J].Mathematical and Computer Modelling, 2013, 58(1-2): 261-273.
[7]劉建曉, 何克清, 王 健, 余敦輝, 馮在文, 寧 達,張秀偉.RGPS制導(dǎo)的按需服務(wù)組織與推薦方法[J].計算機學(xué)報, 2013, 36(2): 238-251.
[8]Ko J M, Kim C O, Kwon I H.Quality-of-service oriented web service composition algorithm and planning architecture [J].Journal of Systems and Software, 2008,81(11): 2079-2090.
[9]Canfora G, Di Penta M, Esposito R, Villani M L.A framework for QoS-aware binding and re-binding of composite web services [J].Journal of Systems and Software, 2008, 81(10): 1754-1769.
[10]Cao Jian, Wang Jie, Zhao Haiyan, Sun Xiaohan.A service process optimization method based on model refinement [J].The Journal of Supercomputing, 2013,63(1): 72-88.
[11]方其慶, 彭曉明, 劉慶華, 胡亞慧.結(jié)合AI規(guī)劃和工作流的動態(tài)服務(wù)組合框架研究[J].計算機科學(xué), 2009,36(9): 110-114.
[12]吳善明, 沈建京, 韓 強.基于領(lǐng)域本體和OWL-S的Web服務(wù)組合方法[J].計算機工程, 2009, 35(21):256-263.
[13]沈浴竹, 向 勇, 張少華, 姜進磊, 史美林.擴展BPEL4WS實現(xiàn)基于語義的服務(wù)流程動態(tài)細(xì)化[J].通信學(xué)報, 2006, 27(11): 106-112.
[14]李慶云, 魏娟杰.基于多層匹配篩選的 Web 服務(wù)發(fā)現(xiàn)模型的研究[J].計算機應(yīng)用與軟件, 2010, 27(6):142-144.