陳 威,徐 鋒
CHEN Wei1,2,XU Feng1,2
1.南京大學 軟件新技術(shù)國家重點實驗室,南京 210046
2.南京大學 計算機科學與技術(shù)系,南京 210046
◎理論研究、研發(fā)設計◎
一個基于后備服務的高可靠工作流開發(fā)模型
陳 威1,2,徐 鋒1,2
CHEN Wei1,2,XU Feng1,2
1.南京大學 軟件新技術(shù)國家重點實驗室,南京 210046
2.南京大學 計算機科學與技術(shù)系,南京 210046
隨著互聯(lián)網(wǎng)的發(fā)展,面向Web服務的工作流技術(shù)逐漸興起。然而在開放多變的網(wǎng)絡環(huán)境中,組成工作流的網(wǎng)絡服務的可靠性變化,網(wǎng)絡連接的可靠性變化,都對工作流的可靠執(zhí)行帶來挑戰(zhàn)。目前工作流可靠性研究較多地關(guān)注如何選取并確定一條最可靠的工作流路徑,以及如何選取可靠性較高的服務來組成工作流,這些方法較難應對網(wǎng)絡環(huán)境的多變以及服務本身可靠性的變化。隨著Web服務的廣泛普及,網(wǎng)絡中涌現(xiàn)出大量的等價服務,利用等價服務作為后備服務來達到構(gòu)建更可靠的工作流的目的?;诖讼敕ǎo出了一個高可靠工作流的開發(fā)模型,包括基于后備服務的工作流描述機制,以及工作流可靠性評估機制;最后,給出相應的工作流腳本轉(zhuǎn)換工具實現(xiàn),可將其轉(zhuǎn)換成標準的BPEL腳本并運行。
工作流可靠性;Web服務;等價服務
工作流是一類能夠完全或者部分自動執(zhí)行的業(yè)務過程,文檔、信息或任務根據(jù)一定的程序規(guī)則在不同的參與者之間進行傳遞與執(zhí)行[1]。作為企業(yè)經(jīng)營過程重組與過程自動化的一種手段,工作流技術(shù)著眼于協(xié)調(diào)企業(yè)資源,自動化企業(yè)業(yè)務流程,高效完成企業(yè)業(yè)務目標。在過去的數(shù)年時間里,隨著Web服務領(lǐng)域中新的技術(shù)和工業(yè)標準的出現(xiàn),互聯(lián)網(wǎng)已經(jīng)從單純的交流媒介快速發(fā)展成了一個B2B集成的平臺,企業(yè)集中式的信息處理已經(jīng)無法應對跨組織、大規(guī)模、復雜動態(tài)的業(yè)務需求。在這種情況下,面向Web服務的工作流技術(shù)逐漸興起,它給企業(yè)提供了一個很好的解決方案,使得分散的參與者能夠透明地應用分布異構(gòu)的資源進行更快、更便捷的合作。
然而,面對開放、動態(tài)的網(wǎng)絡環(huán)境,構(gòu)造和保障工作流的可靠執(zhí)行面臨巨大挑戰(zhàn)。 目前的研究工作主要側(cè)重以下兩個方面 :如何選取并確定一條可靠最優(yōu)的工作流路徑[2-3];如何選擇參與流程的每個具體的服務,尋找提高服務質(zhì)量、可靠性的方法[4-9]。然而,只關(guān)注以上兩點還不能保證滿足用戶建立可靠工作流的需求,Web服務所處的環(huán)境是一個動態(tài)的網(wǎng)絡環(huán)境,很多服務可能經(jīng)常發(fā)生變化,服務構(gòu)建、服務組合、服務綁定和服務實際運行中都有可能出現(xiàn)失敗的情況[10]。因此,即使已經(jīng)建立了可靠的流程,流程中涉及服務的可靠性變化還會使整個流程可靠性降低甚至無法順利運行。
開放的網(wǎng)絡環(huán)境是挑戰(zhàn),同是也帶來了機遇。隨著Web服務的發(fā)展,往往會出現(xiàn)多個具有相似功能,能完成相同任務的服務,如果把這些服務引入到工作流中,可以通過一定的方法增強工作流的可靠性,而之前的工作很少有這方面的研究。本文試圖設計一個具有高可靠性的工作流的開發(fā)模型,充分利用能夠完成相同任務的等價服務作為后備服務,自動頂替運行失敗的服務,以此來提高流程的可靠性。該模型將提供一種對加入了后備服務的工作流的描述方法,以及針對工作流可靠性的評估方法。
在過去的數(shù)十年里,針對提高工作流可靠性的研究已經(jīng)提出了不少方法和技術(shù)。隨著網(wǎng)絡服務的發(fā)展,也出現(xiàn)了針對基于Web服務的工作流可靠性的研究,然而現(xiàn)有的方法和技術(shù)仍存在著局限性。以往的基于網(wǎng)絡服務的高可靠性工作流的研究主要從兩個角度進行:從工作流的結(jié)構(gòu)出發(fā)和從工作流選取所需的高可靠網(wǎng)絡服務出發(fā)。
Wang等人將工作流分解成所有可能路徑的集合,然后從服務代價、服務時間和服務可信值三個目標的多目標優(yōu)化選擇最優(yōu)解,鑒于這是個NP-hard問題,提出使用中位數(shù)的方法給出近似的最優(yōu)解,即工作流的最佳執(zhí)行路徑[3]。這個方法雖然將服務代價、時間和可信值都考慮在內(nèi),能選取一個具體工作流執(zhí)行路徑,但對于結(jié)構(gòu)已經(jīng)確定的工作流卻并不適用。Yang等人提出了使用分層著色Petri網(wǎng)的方法,結(jié)合了著色Petri網(wǎng)的強大的分析、設計協(xié)作系統(tǒng)的能力和高層語言的描述能力[2]。這樣,工作流中服務的組織結(jié)構(gòu)就能轉(zhuǎn)換成著色Petri網(wǎng),使用現(xiàn)成的著色Petri網(wǎng)工具來分析和驗證工作流的性能。盡管這個方法能提供比較好的分析和驗證結(jié)果,但也僅限于此,并不能主動增強工作流的可靠性。
Web服務的發(fā)現(xiàn)過程解釋了工作流是如何選取可靠服務的。由于Web服務是一種低耦合高聚合的服務單元,所以服務消費者和服務提供者之間需要一個中間代理進行服務的互操作,比如基于UDDI(Universal Description,Discovery and Integration of Web services【OASIS2002標準】)的服務查詢,服務提供者將服務注冊到UDDI中心,服務消費者根據(jù)自己的需要從UDDI中心發(fā)現(xiàn)想要的服務,并綁定到服務提供者。圖1顯示了這種發(fā)布-發(fā)現(xiàn)-綁定的模型。
圖1 UDDI的發(fā)布-發(fā)現(xiàn)-綁定模型
在上述機制的基礎上,Ran在普通的服務發(fā)現(xiàn)模型中加入了一個Web服務的QoS評估中心,只有通過評估的服務才能注冊到UDDI中心,并且在注冊信息中添加了服務質(zhì)量的描述,從而一定程度上保證了從UDDI中心選取的服務的質(zhì)量[6]。為了能夠創(chuàng)建靈活的工作流,Wang等在構(gòu)建初期只是定義一個粗糙的工作流模型,其系統(tǒng)提供了一個協(xié)同中介代理與服務的供應代理協(xié)作,確定工作流中具體服務的細節(jié)[4]。Sycara從使用代理的角度,分析了中介在服務代理和具體不同服務之間協(xié)同所需要的條件,并在語義網(wǎng)絡服務本體語言(OWL-S)上實現(xiàn)了一個中介[5]。盡管這些方法提供了系統(tǒng)的靈活性,但也增加了系統(tǒng)的復雜度,服務搜索的過程也需要在中介代理和協(xié)同代理之間進行多次的請求。
這些研究雖然增加了選取服務的靈活性,也有提高具體服務的質(zhì)量的方法,但還是無法保證在多變的網(wǎng)絡環(huán)境中工作流的可靠性。同時,它們也并沒有充分利用一個事實,那就是在UDDI中心,會有很多相似行為的服務,比如提供的服務功能相同,服務調(diào)用方法相同。如果服務A的使用環(huán)境也是服務B的使用環(huán)境,那么稱服務B能模擬服務A;如果服務A與服務B能夠互相模擬,那么稱服務A與服務B等價[11]。對于等價的服務,它們的使用環(huán)境相同,如果把處于工作流中的一個服務使用它的等價服務替換,那么整個工作流的運行將不會受到影響(如果替換服務能夠正常與運行的話)。把這些等價服務稱做原來工作流中服務的后備服務。
本文提出基于后備服務的高可靠工作流開發(fā)模型,給出對加入了后備服務的工作流描述方法,并通過分析量化評價服務和工作流的可靠性,最終將工作流描述腳本轉(zhuǎn)換成標準的可執(zhí)行工作流腳本。
在基于后備服務的高可靠工作流開發(fā)模型中,工作流的描述機制將用戶自定義的加入了后備服務的工作流以形式化的語言描述。通過分析工作流的描述,分解出工作流中包含的各個子結(jié)構(gòu),計算出其中每個Web服務,包括加入了后備服務后的服務節(jié)點的可靠性以及工作流整體的可靠性。如果計算得到的工作流可靠性不滿足用戶的需求,用戶可以從外部服務中選擇最優(yōu)的服務添加到后備服務列表中。為工作流中的服務加入后備服務后,再次評估服務節(jié)點和工作流整體的可靠性,如果還是不滿足要求,則繼續(xù)添加后備服務,漸進地提高工作流的可靠性,直至達到用戶的要求。模型如圖2所示。
工作流中的子系統(tǒng)根據(jù)敏感度進行了排序,用戶可以優(yōu)先選擇對工作流可靠性影響更高的服務添加后備服務。對于每個服務的等價服務,按后備服務機制所安排的順序進行最優(yōu)的排序,使得用戶每次都能夠優(yōu)先選取可靠性最高的等價服務加入此服務的后備服務列表中。
模型主要涉及工作流描述、工作流可靠性評估,以及工作流子系統(tǒng)敏感性分析三個關(guān)鍵技術(shù)。
圖2 高可靠工作流開發(fā)模型
3.1 工作流描述
工作流中涉及的過程,有可能只有一個單個具體的服務,也有可能是若干個服務共同協(xié)作的結(jié)果。但從工作流的角度看,一個外部服務節(jié)點就是一個原子單元,節(jié)點中具體服務的復雜性對工作流是透明的。在加入后備服務后,一個服務節(jié)點也有可能是一個服務和它的后備服務共同協(xié)作的結(jié)果。在這個認識的基礎上,給出了工作流的形式化定義:
其中“?”表示這是一個空節(jié)點,“Ti”表示一個具體的服務,“;”表示分支之間是順序執(zhí)行,“,”表示分支之間選擇其中一個執(zhí)行,“||”表示分支之間并行執(zhí),括號“()”中添加后備服務列表,后備服務列表中的“>”表示后備服務之間被執(zhí)行的先后順序,每個節(jié)點的可能情況之間用“|”分隔。
從定義可以看出,用戶可以使用這個定義的語法自頂向下構(gòu)建工作流,對后備服務列表中的服務也作了完整地表述,每個服務都能有一個或多個后備服務,也可以沒有后備服務。
3.2 工作流可靠性評估
3.2.1 后備服務可靠性分析
服務的可靠性定義為:正確服務的連續(xù)性[12]。這就意味著盡可能少得出現(xiàn)失敗的服務和盡可能短的恢復時間。當工作流的結(jié)構(gòu)確定以后,工作流的可靠性就主要依賴于工作流中涉及的外部服務。如果在運行時出現(xiàn)外部服務失效,并且無法在可承受的時間內(nèi)恢復,那么整個工作流就會失敗,因此這樣的工作流的可靠性無法得到保證。
如果工作流中的某個服務出現(xiàn)了失?。ǚ詹豢蛇_或者超時),這時需要從后備服務列表中選擇一個后備服務替換這個服務,人們總是希望被選到的后備服務是服務列表中可靠性最好的一個。在服務記錄數(shù)據(jù)庫中,記錄著不同服務的若干次測試數(shù)據(jù),主要的信息是服務的正確返回所需要的時間。這些時長如果在一個閾值范圍內(nèi),就視為服務可用,否則視為超時。
由此可以定義,在數(shù)據(jù)充足的情況下,統(tǒng)計每一個服務的所有時長在閾值范圍內(nèi)的頻率,即服務成功的概率,作為評價此服務可靠性的一個指標。
后備列表中的服務按成功概率從高到低遞減排序,如果其中存在成功概率相同的服務,則按成功返回的期望時間遞增排序,這樣系統(tǒng)選取服務時總能首先選取可用的后備服務中可靠性最好的一個。
假設 p0是原服務成功的概率,它有n個后備服務,pi(1≤i≤n)是后備服務成功的概率,那么加入后備服務后,這個服務節(jié)點整體的可靠性Pn可以由遞歸公式得到:
考慮到只要有一個服務成功,整個服務節(jié)點就能夠成功,那么服務節(jié)點成功的概率可以使用公式(2)計算得到相同的結(jié)果:
對于成功概率相同的后備服務,根據(jù)其成功返回的期望時間進行排序。設tj是第 j(1≤j≤m)個測試數(shù)據(jù)的返回時間,則服務成功返回的期望時間計算公式(3)如下:
計算得到服務的期望時間后,按期望時間進行從小到大對成功概率相同的后備服務進行排序。
最終系統(tǒng)得到一個服務可靠性從高到低的后備服務列表。
3.2.2 工作流子系統(tǒng)的可靠性
在對工作流程的分析過程中,可以方便地應用自頂向下的分解順序,從粗到細劃分子系統(tǒng)的粒度,逐步分解出子系統(tǒng)內(nèi)部的實現(xiàn)細節(jié),能夠清晰地掌握系統(tǒng)的結(jié)構(gòu),降低由系統(tǒng)復雜性帶來的分析難度。從工作流的形式化定義可以看出,工作流可以自頂向下被分解成五種不同類型的子系統(tǒng):服務節(jié)點、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、并行結(jié)構(gòu)和循環(huán)結(jié)構(gòu),所有工作流都是由這五種結(jié)構(gòu)組合而成的??梢钥吹?,模型對流程圖結(jié)構(gòu)的描述與Petri網(wǎng)對圖形的描述極其類似,而在Petri網(wǎng)研究領(lǐng)域已經(jīng)有了很多對系統(tǒng)結(jié)構(gòu)以及成熟的性能分析的工作[13-16],于是可以把Petri網(wǎng)對圖形結(jié)構(gòu)的性能分析方法應用于工作流結(jié)構(gòu)的分析與可靠性的評估計算。具體的評估公式可以參考文獻[16]。
3.2.3 工作流可靠性綜合計算
使用自頂向下的方式最終能把工作流表示成一個樹形結(jié)構(gòu),分解出工作流中所有的子系統(tǒng),并從底層開始計算子系統(tǒng)的其可靠性,對分解得到的子系統(tǒng)應用自底向上逐層構(gòu)建的方式,每一層都應用子結(jié)構(gòu)的可靠性計算公式,最終在樹形結(jié)構(gòu)的頂端得到整個工作流的可靠性。工作流可以由以上五種類型的子系統(tǒng)以自底向上的方式逐層構(gòu)造而成,每一層的結(jié)構(gòu)也只有這五種。系統(tǒng)的可靠性就可以以逐層的方式進行分析,計算復雜性得到了大大的降低,最終便很容易得到了工作流整體的可靠性。
3.3 工作流子系統(tǒng)的敏感度分析
不同結(jié)構(gòu)的子系統(tǒng)對工作流整體可靠性的影響程度不同,因此子系統(tǒng)的重要性是指工作流整體的可靠性相對于子系統(tǒng)可靠性的變化率,其值越大說明子系統(tǒng)對整體的影響越大,具有越高的重要性。重要性不僅與子系統(tǒng)自身的結(jié)構(gòu)有關(guān),還與子系統(tǒng)運行的次數(shù)有關(guān),子系統(tǒng)重要性的基本計算思想是:
其中,P(Ω)是系統(tǒng)的可靠性,P(A)是子系統(tǒng)的可靠性,具體的子系統(tǒng)的計算公式已有的工作已經(jīng)做了詳盡的介紹[15],這里就不再贅述。
在實際使用中,工作流往往會涉及很多Web服務,考慮到可操作性和處理的性能,給每個服務都添加后備服務并不切實可行也沒有必要。后備列表中優(yōu)先級低的服務并不能夠帶來明顯的可靠性的提高,雖然能在極端情況(列表中靠前的后備服務都失敗)時使服務節(jié)點成功運行,但節(jié)點實際運行成功的時間太長,往往導致整個工作流的執(zhí)行時間已經(jīng)大大超過了用戶或者工作流可以容忍的范圍,最終工作流運行依然失敗。因此,用戶需要給可靠性低的以及重要程度高的服務添加后備服務,這樣能以較低的代價獲得較高的工作流可靠性的提升。為了能讓用戶方便地知道哪些服務相對更需要添加后備服務,就需要依據(jù)服務在工作流中的敏感度對工作流中的服務進行排序。子系統(tǒng)的重要性越高,對系統(tǒng)的影響也就越大,因此敏感度也越高;子系統(tǒng)的可靠性越高,那么它的可靠性提高空間越小,并且對系統(tǒng)整體可靠性的提高效果不明顯。因此,式(5)給出了敏感度S(A)的定義公式,其中D(Ω,A)是服務的在系統(tǒng)中的重要性,P(A)是服務的可靠性,α是一個比例常數(shù)。
敏感度更高的服務在工作流的所有需要添加后備服務的服務中排在更靠前的位置,提醒用戶優(yōu)先給這些服務添加后備服務,這樣能夠更有效地提高工作流整體的可靠性。
高可靠工作流開發(fā)支撐工具的實現(xiàn)能夠幫助用戶按照高可靠工作流開發(fā)模型快速、方便地開發(fā)高可靠的工作流。支撐工具的實現(xiàn)主要包括三個工具,分別是工作流編輯與展示工具、工作流分析與評估工具和標準工作流轉(zhuǎn)換工具。圖3顯示了高可靠工作流開發(fā)支撐工具的實現(xiàn)結(jié)構(gòu)。為了能夠?qū)崿F(xiàn)云端的在線訪問,其工具以網(wǎng)站的形式提供給用戶。
圖3 高可靠工作流開發(fā)支撐工具的實現(xiàn)
4.1 工作流編輯與展示工具
在工作流編輯與展示工具中,用戶根據(jù)工作流描述語言的語法編寫描述工作流的腳本。用戶編寫完工作流后,工具通過分析工作流腳本,能夠得到工作流中服務節(jié)點的樹型結(jié)構(gòu)。為了能夠展示面向用戶友好的工作流程,工具將服務節(jié)點的樹形結(jié)構(gòu)轉(zhuǎn)換成圖形結(jié)構(gòu),展示界面將圖形化地展示用戶制定的工作流的流程圖。
為了更方便地為其中的服務添加后備服務,用戶點擊流程圖中的每個服務節(jié)點,工具都會給出與之對應的經(jīng)過可靠性優(yōu)先排序的等價服務列表供用戶選擇,工具會自動將選中的后備服務添加到工作流中。圖4給出了一個工具展示流程圖的例子。用戶通過工作流編輯工具編輯完成工作流后,工作流展示工具描繪了工作流圖,用戶可以方便地給工作流中的服務添加后備服務,并實時地評估添加后備服務后工作流的可靠性。如果可靠性已經(jīng)滿足用戶需求,就可以使用部署工具將工作流部署到外部引擎上執(zhí)行。
4.2 工作流分析與評估工具
工作流分析與評估工具負責將用戶生成的工作流描述進行分析,自頂向下獲得最底層的各個子結(jié)構(gòu)中的服務,包括可能的后備服務。然后按服務名從服務記錄數(shù)據(jù)庫中查詢服務成功的歷史數(shù)據(jù),根據(jù)3.2節(jié)的方法計算單個服務以及加入后備服務后的服務節(jié)點的可靠性。最后,按照工作流可靠性綜合計算的方法得到工作流整體的可靠性。同時,評估工具針對工作流中的子系統(tǒng)對工作流整體可靠性的敏感度進行排序,方便用戶給能夠明顯提升工作流可靠性的服務優(yōu)先添加后備服務;對每個服務的可選后備服務根據(jù)可靠性進行排序,使得用戶能夠優(yōu)先選擇最可靠的后備服務。
圖4 一個工作流示例圖
分析工具還為其他工具提供了分析數(shù)據(jù)。通過分析得到工作流樹形結(jié)構(gòu)和服務節(jié)點的可靠性等數(shù)據(jù),將以API的形式給出,提供給工作流編輯與展示工具和標準工作流轉(zhuǎn)換工具。標準工作流轉(zhuǎn)換工具以這些數(shù)據(jù)進行標準工作流轉(zhuǎn)換,在工作流編輯與展示工具中繪制成圖形結(jié)構(gòu)的可視化的工作流程。
4.3 標準工作流轉(zhuǎn)換工具
標準工作流轉(zhuǎn)換模塊實現(xiàn)了對WS-BPEL(Web Services Business Process Execution Language,業(yè)務流程執(zhí)行語言)的支持,BPEL是最為成熟和被廣泛支持的業(yè)務流程規(guī)范,使用了開源的ODE的BPEL執(zhí)行引擎。
在服務失敗的情況下,希望后備服務能夠自動替代原服務,然而,BPEL的執(zhí)行引擎,例如ODE引擎,本身并不支持服務的運行時動態(tài)替換,所有的服務必須在運行前都明確指定。利用了ODE引擎的出錯處理機制擴展實現(xiàn)了服務選擇的動態(tài)性。
在BPEL的編譯和執(zhí)行過程中可能有很多種錯誤情況。對于一般的出錯(fault)情況,往往是一個服務無法處理一個錯誤的表達式或者一個錯誤的連接條件,工作流程因此引發(fā)一個出錯,改變正常的執(zhí)行流程來處理錯誤。而失?。╢ailure)則不同,它往往不會中斷工作流影響正常的工作流程,而把這情況提交給工作流引擎或者流程管理員處理,保證工作流免受正常的非中斷錯誤對工作流正常執(zhí)行的影響。
在工作流系統(tǒng)中調(diào)用外部服務的失敗正是一種failure,如果能把這種出錯也變成一種fault進行錯誤處理,就可以改變工作流的流程,進而在服務失敗后調(diào)用后備列表中的服務。
該工具利用了ODE引擎的擴展功能faultonfailure功能,即在失敗情況下同樣進行錯誤處理。在轉(zhuǎn)換生成的可靠BPEL腳本中,需要添加如下聲明語句:<ext:failureHandling>
<ext:faultOnFailure>true</ext:faultOnFailure></ext:failureHandling>
在調(diào)用外部服務的invoke語句中,加入catchAll塊用于錯誤處理,調(diào)用后備服務列表中的服務。如果一個服務的后備服務不止一個,那么需要按照后備服務的可靠性優(yōu)先級遞歸地在invoke語句中加入catchAll塊,最外層的catchAll塊中調(diào)用的服務可靠性最高。
<bpel:invoke...><bpel:catchAll>...
</bpel:catchAll></bpel:invoke>
將轉(zhuǎn)換生成的可靠工作流BPEL文件和相關(guān)服務的網(wǎng)絡服務定義WSDL文件,以及部署文件放入到系統(tǒng)的ODE引擎工作流執(zhí)行文件夾下,就實現(xiàn)了熱部署,在外部就可以訪問可靠性增強的新的工作流了。
為了分析后備服務機制在提高工作流可靠性上的效果,本章提供了一個工作流的例子,通過對加入后備服務前后工作流的可靠性進行對比,說明加入后備服務對工作流可靠性的影響。
圖4中的示例是一個旅行出行的工作流,流程是根據(jù)天氣情況選擇出行交通工具并查票、訂票。從服務數(shù)據(jù)庫查詢工作流中涉及服務和它們的后備服務的成功執(zhí)行時間,并根據(jù)系統(tǒng)設置的服務成功閾值計算得到各個服務的可靠性,如表1。
給每個服務都添加相應的后備服務后,由第3章中的公式可以計算出加入后備服務后的服務節(jié)點的可靠性。從表2可以看到,每個服務加入一個后備服務后可靠性都得到了提高,可靠性越低的服務提高程度越明顯。
表1 工作流中Web服務的可靠性
當然,添加后備服務并不是越多越好,后備列表中優(yōu)先級低的服務并不能夠帶來明顯的可靠性的提高。圖5的例子使用的都是0.8可靠性的后備服務,可以看到三個后備服務基本已經(jīng)達到了可靠性提高程度的極限。
圖5 后備服務個數(shù)對可靠性的影響
得到了各個節(jié)點的可靠性后,使用3.2節(jié)中的公式,運用自底向上的計算方式,就能得到工作流系統(tǒng)總體的可靠性。添加后備服務前,可以計算得到工作流整體的可靠性為0.58,加入后備服務后,可靠性提升為0.86,可靠性提升了48%。最后用戶將得到的可靠性與要求的可靠性進行比較,判斷新的工作流是否滿足需求。
現(xiàn)在的網(wǎng)絡環(huán)境日漸呈現(xiàn)出開放、動態(tài)的趨勢,如何建立起一個完整、可靠的基于網(wǎng)絡服務的工作流面臨多方面的挑戰(zhàn)。本文主要做了以下工作:
(1)分析了現(xiàn)有的增強工作流可靠性和網(wǎng)絡服務可靠性的方案不足。
(2)提出了一個利用等價網(wǎng)絡服務的高可靠工作流的開發(fā)模型。該模型提供了一個對加入后備服務后的工作流的描述機制,還提供了工作流可靠性評價方法量化工作流的可靠性。
(3)給出了高可靠工作流開發(fā)模型的一個基于BPEL的實現(xiàn),能夠完成制定、分析與轉(zhuǎn)換以及部署高可靠的工作流。
(4)實驗分析了加入后備服務對工作流可靠性的提升。
本文提出的方案,還需要應用到更多的實際項目中測試具體的效果,檢驗其提高工作流可靠性的有效性和可操作性。今后的工作中,需要從多角度出發(fā),進一步研究影響工作流可靠性的因素,提高判斷的準確性;需要研究對工作流運行時情況的預判,以給出更接近實際運行結(jié)果的可靠性分析。
[1]Ganesarajah D.Web service workflow,IndividualProject Report[R].2001:8-9.
[2]Yang Y,Tan Q,Xiao Y,et al.Exploiting hierarchical CP-nets to increase the reliability of Web services workflow[C]//ProceedingsoftheInternationalSymposium on Applications and the Internet,2006:116-122.
[3]Wang M,Ramamohanarao K,Chen J.Trust-based robust scheduling and runtime adaptation ofscientific workflow[C]// Proceedings of the 3rd International Workshop on Workflow Management and Applications in Grid Environments,2009,21:1982-1998.
[4]Wang S,Shen W,Hao Q.An agent-based Web service workflow model for inter-enterprise collaboration[J].Expert Systems with Applications,2006,31(4):787-799.
[5]Sycara K,Paolucci M,Soudry J,et al.Dynamic discovery and coordination of Agent-based semantic Web services[J].IEEE Internet Computing,2004,8(3):66-73.
[6]Ran S.A model for Web services discovery with QoS[J]. Newsletter ACM SIgecom Exchanges,2003,4(1):1-10.
[7]Cardoso J,Sheth A,Miller J,et al.Quality of service for workflowsand Web serviceprocesses[J].JournalofWeb Semantics,2004(3):281-308.
[8]Maximilien E M,Singh M P.A framework and ontology for dynamic Web services selection[J].IEEE Internet Computing,2004,8(5):84-93.
[9]Soteriou A C,Chase R B.A robust optimization approach for improving service quality[J].Manufacturing and Service Operations Management,2000,2(3):264-286.
[10]Xie C,Li B,Wang X,et al.A staged model for Web services reliability[J].Journal of Southeast University:Natural Science Edition,2012,42(1):40-44.
[11]Martens A.Analyzing Web service based business processes[C]// Proceedings of the European Conference on Theory and Practice of Software Conference on Fundamental Approaches to Software Engineering,2005:19-33.
[12]Avizienis A,Laprie J C,Randell B,et al.Basic concepts and taxonomy ofdependable and secure computing[J].IEEE Transactions on Dependable and Secure Computing,2004 (1):11-33.
[13]Georgakopoulos D,Hornick M,Sheth A.An overview of workflow management:from process modeling to workflow automation infrastructure[J].Distributed and Parallel Databases, 1995,3(2):119-153.
[14]Van der Aalst W M P.The application of Petri nets to workflow management[J].The Journal of Circuits,Systems and Computers,1998,8(1):199-203.
[15]Andonoff E,Bouzguenda L,Hanachi C.Specifying workflow Web services using Petri nets with objects and generating oftheirowl-sspecification[C]//Proceedingsofthe 6th International Conference on E-Commerce and Web Technologies(EC-Web'05),2005:41-52.
[16]Lu W,Xu F,Lv J.An approach of software reliability evaluation in the open environment[J].Chinese Journal of Computers,2010(3):452-462.
1.State Key Laboratory for Novel Software Technology,Nanjing University,Nanjing 210046,China
2.Department of Computer Science and Technology,Nanjing University,Nanjing 210046,China
With development of Internet,Web-service-oriented workflow technologies begin to emerge.In the open and changing network environment,reliability of service and network risk the reliability of workflow.Some of present researches focus on selecting the most reliable workflow path;others focus on improving reliability of Web services involved in workflow.However, reliable workflow or Web services may turn out unreliable under the inconstant environment.With development of Web service, lots of equivalent services emerge,which can be used as backup service to improve reliability of workflow.A model is given to develop workflow with high reliability,including workflow description mechanism and evaluation mechanism.In addition,this paper provides an implementation of this approach,which converts workflow into BPEL script.
workflow reliability;Web service;equivalent services
A
TP317
10.3778/j.issn.1002-8331.1208-0520
CHEN Wei,XU Feng.Backup-service-based developing model of workflow with high reliability.Computer Engineering and Applications,2013,49(7):39-44.
國家重點基礎研究發(fā)展規(guī)劃(973)(No.2009CB320702);國家自然科學基金(No.61021062,No.61073030)。
陳威(1988—),男,碩士研究生,主要研究領(lǐng)域為可信計算;徐鋒(1975—),男,博士,博士生導師,主要研究領(lǐng)域為可信計算,系統(tǒng)安全,軟件可靠性技術(shù)等。E-mail:lit7tle7@gmail.com
2012-09-07
2012-10-30
1002-8331(2013)07-0039-06
CNKI出版日期:2012-11-05 http://www.cnki.net/kcms/detail/11.2127.TP.20121105.1414.005.html