專利名稱:組合服務演化中運行實例的在線遷移方法及設備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及組合服務技術(shù),尤其涉及一種組合服務演化中運行實例的在線遷移方法及設備,屬于計算機技術(shù)領(lǐng)域。
背景技術(shù):
近年來,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡上聚集了越來越多的資源,不僅包含豐富的計算和存儲等物理資源,還有大量的軟件和服務資源,基于服務的分布式應用系統(tǒng)開發(fā)已經(jīng)成為計算機領(lǐng)域一個重要的方向。Web服務技術(shù)可以用于解決了不同的平臺/系統(tǒng)之間應用的整合問題,為跨組織邊界的業(yè)務流程的自動化提供技術(shù)基礎(chǔ),但由于服務的提供者分工越來越細,并且為了保證重用性和可維護性等,一般不將復雜的業(yè)務邏輯封裝到單個的Web服務中,而為了滿足用戶多樣性的需求,實現(xiàn)完整的業(yè)務功能,需要把分布的獨立的Web服務組合起來,形成具有增值價值的服務,服務組合技術(shù)成為構(gòu)建網(wǎng)絡化軟件的一種重要方法,基于這種方法所開發(fā)的軟件在技術(shù)形態(tài)上體現(xiàn)為組合服務?;跇I(yè)務流程的Web服務組合是指通過借鑒傳統(tǒng)的工作流和業(yè)務流程管理技術(shù),將不同的組件服務編排在一個具有固定業(yè)務邏輯的流程中,執(zhí)行時在按照此流程中的邏輯關(guān)系和時序關(guān)系來調(diào)用遠程的組件服務。一般使用工作流語言描述Web服務組合形成的業(yè)務流程指定一組Web服務操作的執(zhí)行順序,確定服務共享的數(shù)據(jù)、業(yè)務流程涉的伙伴和各伙伴在業(yè)務流程中的角色,以及多個服務和組織是如何參與等。其中,業(yè)務流程是指為實現(xiàn)一個特定業(yè)務目標通過Web服務組合能完成的各項活動的邏輯結(jié)構(gòu)關(guān)系?;顒訛闃I(yè)務流程中實現(xiàn)特定業(yè)務目標的步驟,即Web服務。因此,根據(jù)Web服務工作流語言定義出Web 服務組合的工作流模型,工作流模型可以被工作流執(zhí)行引擎執(zhí)行。組合服務的演化已經(jīng)是學術(shù)界的研究熱點,從演化時間、演化影響、演化操作分類以及演化帶來的問題等方面均進行了深入分析,其中組合服務演化中運行實例的成功遷移尤為重要。組合服務實例遷移是一種根據(jù)已有實例執(zhí)行狀態(tài)判定計算在新組合服務定義下的實例狀態(tài)的行為,它保留了已有執(zhí)行的寶貴數(shù)據(jù),并且最大化地降低了回滾重做的損失。 這種提供在同一組合服務不同版本的模型間動態(tài)遷移的機制,解決了傳統(tǒng)工作流及業(yè)務流程系統(tǒng)應對變化能力差的問題。但是由于在組合服務演化過程中,其業(yè)務流程模型的語義、 消息流、控制流、數(shù)據(jù)流都有可能發(fā)生變化,所以可能會導致實例運行同步失效、死鎖和語義錯誤等問題。針對組合服務演化時運行期流程實例狀態(tài)遷移的情況,國內(nèi)外相關(guān)研究提出了一個重要的問題——動態(tài)變更錯誤(Dynamic Change Bug),指的是舊流程實例中的狀態(tài)在新的流程實例中找不到合適的對應狀態(tài)(演化后會導致某些活動執(zhí)行了多次或被不合理的跳過)。基于PetriNet模型,相關(guān)研究人員提出了通過劃分“變更區(qū)域”的方法來處理動態(tài)變更錯誤,即運行狀態(tài)處于變更區(qū)域內(nèi)的流程實例不能遷移(如果遷移會導致動態(tài)變更錯誤),而運行狀態(tài)在變更區(qū)域外的則可以進行遷移的方法。該變更區(qū)域只是靜態(tài)變更區(qū)域,并且通過工作流網(wǎng)(PetriNet的擴展)給出了靜態(tài)變更區(qū)域的自動生成算法,進一步證明了靜態(tài)變更區(qū)域的定義既不充分也不必要,也就是說處于變更區(qū)域內(nèi)的狀態(tài)也有可能正常地遷移到新的流程實例中,而處于變更區(qū)域外的某些狀態(tài)很可能不能合法地遷移。因此,在進行運行實例的在線遷移時,如何避免動態(tài)變更錯誤,以實現(xiàn)準確、有效的在線實例遷移,是極為重要的研究課題。
發(fā)明內(nèi)容
本發(fā)明提供一種組合服務演化中運行實例的在線遷移方法及設備,用以實現(xiàn)簡便且準確性高的運行實例在線遷移。根據(jù)本發(fā)明的一方面,提供一種組合服務演化中運行實例的在線遷移方法,包括獲取原流程模型與目標流程模型之間的變更區(qū)域;若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑;若存在,則將所述待遷移實例遷移至所述目標路徑。根據(jù)本發(fā)明的另一方面,還提供一種組合服務演化中運行實例的在線遷移設備, 包括變更區(qū)域獲取模塊,用于獲取原流程模型與目標流程模型之間的變更區(qū)域;遷移判定模塊,用于若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑;遷移執(zhí)行模塊,用于若存在,則將所述待遷移實例遷移至所述目標路徑。根據(jù)本發(fā)明提供的組合服務演化中運行實例的在線遷移方法及設備,通過改變現(xiàn)有的基于變更區(qū)域的遷移判定算法,提出了結(jié)合變更區(qū)域計算以及基于執(zhí)行路徑等價性的遷移判定過程,從而保障了運行實例在線遷移過程中控制流的正確性,確保了運行實例在線遷移的高準確度,能夠安全正確地將運行狀態(tài)的實例動態(tài)遷移到更新的流程模型上去, 避免了系統(tǒng)停機重啟,減少了回滾重做的損失,保證了系統(tǒng)的穩(wěn)定性。
圖1為用于實現(xiàn)本發(fā)明實施例的組合服務演化中運行實例的在線遷移方法的系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明實施例的組合服務演化中運行實例的在線遷移方法;圖3為執(zhí)行了 SESE片段劃分的業(yè)務流程示意圖;圖4為圖3中J片段的抽象示意圖;圖5為本發(fā)明實施例的組合服務演化中運行實例的在線遷移設備的結(jié)構(gòu)示意圖。
具體實施例方式圖1為用于實現(xiàn)本發(fā)明實施例的組合服務演化中運行實例的在線遷移方法的系統(tǒng)結(jié)構(gòu)圖。如圖1所示,該系統(tǒng)主要包括組合服務運行管理工具和柔性組合服務執(zhí)行引擎, 其中,組合服務運行管理工具用于負責組合服務動態(tài)演化的人工接口,柔性組合服務執(zhí)行引擎用于支持運行實例的在線遷移。本發(fā)明實施例的組合服務演化中運行實例的在線遷移方法由圖1中的柔性組合服務執(zhí)行引擎來執(zhí)行。圖2為本發(fā)明實施例的組合服務演化中運行實例的在線遷移方法。如圖2所示, 該運行實例的在線遷移方法包括以下步驟步驟S201,獲取原流程模型與目標流程模型之間的變更區(qū)域;步驟S202,若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑;步驟S203,若存在,則將所述待遷移實例遷移至所述目標路徑。具體地,組合服務實例遷移主要包括四個步驟實例狀態(tài)控制及獲取、遷移判定、 目標狀態(tài)計算和遷移實施。其中遷移判定是指判斷特定的組合服務實例狀態(tài)是否能夠在特定的組合服務模型定義下正確繼續(xù)執(zhí)行。其通過保證實例遷移前后已執(zhí)行行為一致性以及遷移前能正確終止的實例在遷移后仍能正確終止來判定控制流的正確性。因此通過合理的實例遷移判定方法能夠保障組合服務演化中實例遷移的控制流的正確性。在上述實施例的在線遷移方法中,綜合了基于變更區(qū)域和基于路徑等價性兩種判定方法進行混合判定。變更區(qū)域的計算方法的輸入為遷移前后組合服務流程模型,輸出為計算得到的變更區(qū)域,之后進入遷移判定的主體部分。通過綜合組合服務執(zhí)行引擎運行期日志和實例當前工作流網(wǎng)狀態(tài)確定運行實例的當前狀態(tài),將其和變更區(qū)域比對,判定是否已經(jīng)進入變更區(qū)域。如果判定結(jié)果為否,則判定通過,并將該實例直接按原有狀態(tài)遷移到新的組合服務業(yè)務流程模型上繼續(xù)執(zhí)行。如果判定結(jié)果為是,則進入下一步判定是否在目標流程模型下存在與待遷移實例行為等價的新狀態(tài)。更為具體地,通過在目標流程模型的狀態(tài)空間里尋找一條與原實例已執(zhí)行路徑等價的路徑來尋找行為等價的新狀態(tài)。當搜索成功時,則判定通過,意味著只要將實例的狀態(tài)轉(zhuǎn)換為搜索到的新狀態(tài),就可以將實例遷移到新的流程模型上并繼續(xù)執(zhí)行。當搜索失敗時, 則表明該實例在當前時刻不可遷移,判定失敗。判定失敗的實例會繼續(xù)按照原有的流程模型執(zhí)行,直到其判定通過為止。根據(jù)上述實施例的組合服務演化中運行實例的在線遷移方法,通過改變現(xiàn)有的基于變更區(qū)域的遷移判定算法,提出了結(jié)合變更區(qū)域計算以及基于執(zhí)行路徑等價性的遷移判定過程,從而保障了運行實例在線遷移過程中控制流的正確性,確保了運行實例在線遷移的高準確度,能夠安全正確地將運行狀態(tài)的實例動態(tài)遷移到更新的流程模型上去,避免了系統(tǒng)停機重啟,減少了回滾重做的損失,保證了系統(tǒng)的穩(wěn)定性。進一步地,在上述實施例的組合服務演化中運行實例的在線遷移方法中,所述獲取原流程模型與目標流程模型之間的變更區(qū)域具體包括構(gòu)建所述原流程模型的第一流程結(jié)構(gòu)樹,以及所述目標流程的第二流程結(jié)構(gòu)樹, 所述第一流程結(jié)構(gòu)樹和所述第二流程結(jié)構(gòu)樹均包括相應流程模型中的單入口單出口 SESE 片段,以及各SESE片段之間的嵌套關(guān)系;建立所述第一流程結(jié)構(gòu)樹的SESE片段,與所述第二流程結(jié)構(gòu)樹的SESE片段之間的映射關(guān)系;根據(jù)所述映射關(guān)系查找所述第一流程結(jié)構(gòu)樹與所述第二流程結(jié)構(gòu)樹之間發(fā)生變更的SESE片段;
6
根據(jù)所述發(fā)生變更的SESE片段生成所述變更區(qū)域。具體地,動態(tài)變更區(qū)域是有效遷移判定的充分不必要條件,即雖然狀態(tài)處于動態(tài)變更區(qū)域內(nèi)的實例也有可能有效地遷移到新的流程模型下,但狀態(tài)處于動態(tài)變更區(qū)域外的實例則一定能有效遷移。因此在上述實施例的在線遷移方法中,提出了一種基于流程結(jié)構(gòu)樹的變更區(qū)域計算方法,該方法計算出來的變更區(qū)域較更加準確,且計算復雜度更低,保證了實例遷移的有效判定。更為具體地,基于流程結(jié)構(gòu)樹的變更區(qū)域計算方法將由工作流網(wǎng)表示的業(yè)務流程圖組織成一棵由單入口單出口(簡稱SESE)片段組成的樹。每個SESE片段的內(nèi)部可能嵌套包含其它SESE片段,這些片段被稱為它的孩子片段。除嵌套包含孩子片段之外,SESE片段還可能包含內(nèi)部網(wǎng)關(guān)節(jié)點,在這些內(nèi)部節(jié)點和孩子片段之間相連的邊被稱為SESE片段的內(nèi)部邊。每個SESE片段都有自己特有的結(jié)構(gòu)類型,其類型的判定是通過對將孩子片段替換成單一節(jié)點之后的流程片段歸類而得的。SESE的片段類型根據(jù)其控制流結(jié)構(gòu)不同可以多種多樣。例如將SESE片段類型為以下六種,如表1中所示,表1為SESE片段類型定義表。
權(quán)利要求
1.一種組合服務演化中運行實例的在線遷移方法,其特征在于,包括 獲取原流程模型與目標流程模型之間的變更區(qū)域;若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑; 若存在,則將所述待遷移實例遷移至所述目標路徑。
2.根據(jù)權(quán)利要求1所述的組合服務演化中運行實例的在線遷移方法,其特征在于,所述獲取原流程模型與目標流程模型之間的變更區(qū)域具體包括構(gòu)建所述原流程模型的第一流程結(jié)構(gòu)樹,以及所述目標流程的第二流程結(jié)構(gòu)樹,所述第一流程結(jié)構(gòu)樹和所述第二流程結(jié)構(gòu)樹均包括相應流程模型中的單入口單出口 SESE片段,以及各SESE片段之間的嵌套關(guān)系;建立所述第一流程結(jié)構(gòu)樹的SESE片段,與所述第二流程結(jié)構(gòu)樹的SESE片段之間的映射關(guān)系;根據(jù)所述映射關(guān)系查找所述第一流程結(jié)構(gòu)樹與所述第二流程結(jié)構(gòu)樹之間發(fā)生變更的 SESE片段;根據(jù)所述發(fā)生變更的SESE片段生成所述變更區(qū)域。
3.根據(jù)權(quán)利要求1所述的組合服務演化中運行實例的在線遷移方法,其特征在于,檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑具體包括按照預定規(guī)則計算所述變更區(qū)域相對于所述原流程模型的比例; 若所述比例大于或等于預設閾值,則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑。
4.根據(jù)權(quán)利要求1所述的組合服務演化中運行實例的在線遷移方法,其特征在于,檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑具體包括獲取所述目標流程模型中,與所述原目標流程模型中的第一執(zhí)行路徑對應的第二執(zhí)行路徑,其中所述第一執(zhí)行路徑為所述待遷移實例的已有執(zhí)行路徑;若所述第一執(zhí)行路徑中的各節(jié)點與所述第二路徑中的各節(jié)點一一對應,則獲知所述第一執(zhí)行路徑與所述第二執(zhí)行路徑等價。
5.根據(jù)權(quán)利要求2所述的組合服務演化中運行實例的在線遷移方法,其特征在于,根據(jù)所述發(fā)生變更的SESE片段生成所述變更區(qū)域具體包括構(gòu)造組合服務的數(shù)據(jù)依賴圖,以獲取組合服務中各組件服務的數(shù)據(jù)依賴關(guān)系; 將內(nèi)部節(jié)點存在數(shù)據(jù)依賴關(guān)系的所述SESE片段進行合并,以生成所述變更區(qū)域。
6.一種組合服務演化中運行實例的在線遷移設備,其特征在于,包括 變更區(qū)域獲取模塊,用于獲取原流程模型與目標流程模型之間的變更區(qū)域;遷移判定模塊,用于若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑; 遷移執(zhí)行模塊,用于若存在,則將所述待遷移實例遷移至所述目標路徑。
7.根據(jù)權(quán)利要求6所述的組合服務演化中運行實例的在線遷移設備,其特征在于,所述變更區(qū)域獲取模塊包括第一處理單元,用于構(gòu)建所述原流程模型的第一流程結(jié)構(gòu)樹,以及所述目標流程的第二流程結(jié)構(gòu)樹,所述第一流程結(jié)構(gòu)樹和所述第二流程結(jié)構(gòu)樹均包括相應流程模型中的單入口單出口 SESE片段,以及各SESE片段之間的嵌套關(guān)系;第二處理單元,用于建立所述第一流程結(jié)構(gòu)樹的SESE片段,與所述第二流程結(jié)構(gòu)樹的 SESE片段之間的映射關(guān)系;第三處理單元,用于根據(jù)所述映射關(guān)系查找所述第一流程結(jié)構(gòu)樹與所述第二流程結(jié)構(gòu)樹之間發(fā)生變更的SESE片段;第四處理單元,用于根據(jù)所述發(fā)生變更的SESE片段生成所述變更區(qū)域。
8.根據(jù)權(quán)利要求6所述的組合服務演化中運行實例的在線遷移設備,其特征在于,所述遷移判定模塊還用于按照預定規(guī)則計算所述變更區(qū)域相對于所述原流程模型的比例;若所述比例大于或等于預設閾值,則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑。
9.根據(jù)權(quán)利要求6所述的組合服務演化中運行實例的在線遷移設備,其特征在于,所述遷移判定模塊還用于獲取所述目標流程模型中,與所述原目標流程模型中的第一執(zhí)行路徑對應的第二執(zhí)行路徑,其中所述第一執(zhí)行路徑為所述待遷移實例的已有執(zhí)行路徑;若所述第一執(zhí)行路徑中的各節(jié)點與所述第二路徑中的各節(jié)點一一對應,則獲知所述第一執(zhí)行路徑與所述第二執(zhí)行路徑等價。
10.根據(jù)權(quán)利要求7所述的組合服務演化中運行實例的在線遷移設備,其特征在于, 所述第四處理單元還用于構(gòu)造組合服務的數(shù)據(jù)依賴圖,以獲取組合服務中各組件服務的數(shù)據(jù)依賴關(guān)系;將內(nèi)部節(jié)點存在數(shù)據(jù)依賴關(guān)系的所述SESE片段進行合并,以生成所述變更區(qū)域。
全文摘要
本發(fā)明提供一種組合服務演化中運行實例的在線遷移方法及設備。該方法包括獲取原流程模型與目標流程模型之間的變更區(qū)域;若判斷獲知待遷移運行實例位于所述變更區(qū)域內(nèi),則檢測所述目標流程模型中是否存在與所述待遷移實例的已有執(zhí)行路徑等價的目標路徑;若存在,則將所述待遷移實例遷移至所述目標路徑。本發(fā)明提供的組合服務演化中運行實例的在線遷移方法及設備用以實現(xiàn)簡便且準確性高的運行實例在線遷移。
文檔編號G06Q10/06GK102567845SQ20111042022
公開日2012年7月11日 申請日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者孫海龍, 張萬才, 懷進鵬, 林晶晶, 鄒佳寧 申請人:北京航空航天大學