999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于歷史路徑的工作流實(shí)例遷移方法

2009-04-29 00:00:00超,侯秀萍,郝
電腦知識(shí)與技術(shù) 2009年33期

摘要:工作流變更中一個(gè)重要問題就是工作流實(shí)例的遷移問題。該文根據(jù)工作流實(shí)例執(zhí)行的歷史路徑和節(jié)點(diǎn)路由表提出了一個(gè)新的遷移策略,減少了一些不必要的回滾和遷移,并對(duì)每個(gè)節(jié)點(diǎn)都確定了相應(yīng)了遷移動(dòng)作。

關(guān)鍵字:遷移;歷史路徑;動(dòng)態(tài)動(dòng)作流

中圖分類號(hào):TP311文獻(xiàn)表示碼:A文章編號(hào):1009-3044(2009)33-9597-02

Work Flow Instance Migration Approach Based on History Route

JING Chao, HOU Xiu-ping, HAO Shuai

(College of Computer and Engineering, Changchun University of Technology, Changchun 130012, China)

Abstract: One of the most crucial issues in workflow alteration is the transfer of workflow instance. This paper puts forward a brand-new transfer strategy based on historical path and node-route table of workflow instance which avoids unnecessary rollback and transfer while confirms corresponding transfer activities.

Key words: transfer; history route; dynamic workflow

隨著工作流技術(shù)實(shí)際應(yīng)用的不斷深入,人們對(duì)其提出了更多的功能要求。在現(xiàn)實(shí)需求中,一個(gè)工作流在運(yùn)行中很有可能發(fā)生變化,這就要求工作流模型有自適應(yīng)變化的能力,并且正在運(yùn)行的工作流實(shí)例往往需要盡早地按照新的工作流過程模型繼續(xù)執(zhí)行,并保持已做工作的最大化[1]。在研究工作流動(dòng)態(tài)性的過程中,研究人員先后提出過許多方法來解決相關(guān)問題。文獻(xiàn)[2]提出了變更區(qū)域的概念,但沒有給出變更區(qū)域的自動(dòng)識(shí)別方法。文獻(xiàn)[3]基于工作流網(wǎng)的概念,提出了自動(dòng)計(jì)算變更區(qū)域的方法,保證了動(dòng)態(tài)變更區(qū)域以外的實(shí)例能夠正確遷移,然而這是一個(gè)充分不必要條件,計(jì)算過程也過于復(fù)雜。文獻(xiàn)[4]提出了繼承保留規(guī)則的方法,然而這是一個(gè)預(yù)防性的問題處理方法,僅適合與變更前后的工作流模型存在父類與子類繼承關(guān)系的情況。本文引入了執(zhí)行路徑來判斷工作流實(shí)例的執(zhí)行狀態(tài),提出了一種基于狀態(tài)的工作流實(shí)例遷移檢測和調(diào)整算法,且由該算法自動(dòng)生成的遷移規(guī)則總能保證實(shí)例的回退工作盡可能少。

1 工作流模型定義

定義1 工作流模型定義,為一個(gè)三元組W=(ID,X,F(xiàn)),其中:ID為工作流版本號(hào)標(biāo)識(shí)。X為節(jié)點(diǎn)集合。F=N×N為控制流關(guān)系。

定義2 節(jié)點(diǎn)定義,為一個(gè)三元組N=(ID ,Name,ExecuteCode),其中id為節(jié)點(diǎn)的序號(hào),Name為活動(dòng)節(jié)點(diǎn)的名字。ExecuteCode為當(dāng)前節(jié)點(diǎn)要執(zhí)行的方法。

定義3 工作流實(shí)例定義,為一個(gè)三元組Istance=(ID,W,H),其中id為工作流實(shí)例唯一標(biāo)識(shí),W為實(shí)例運(yùn)行的工作流模型,H表示當(dāng)前工作流實(shí)例已經(jīng)執(zhí)行過的活動(dòng)節(jié)點(diǎn)的集合。

2 遷移算法設(shè)計(jì)

2.1 相關(guān)規(guī)則定義

定義4 偏序關(guān)系定義,設(shè)集合X為工作流活動(dòng)圖上節(jié)點(diǎn)集合。關(guān)系R為集合X上任務(wù)節(jié)點(diǎn)執(zhí)行的先后順序,用\"<\"表示。即R(N1,N2)=N1

定義5 節(jié)點(diǎn)操作方法定義,對(duì)于工作流模型中的節(jié)點(diǎn)N0,定義如下操作函數(shù)。

Succ(N0,W) = {N1| N0< N1,并且對(duì)于任意的節(jié)點(diǎn)N2∈X,(N0< N2∩N2< N1) = 1,N0,N1,N2∈X.其中X為工作流W中的節(jié)點(diǎn)集合},求出節(jié)點(diǎn)X的直接后繼節(jié)點(diǎn)集合。

Prec (N0,W) = { N1| N1< N0,并且對(duì)于任意的節(jié)點(diǎn)N2∈X, (N1< N2∩N2< N0) = 1, N0,N1,N2∈X.其中X為工作流W中的節(jié)點(diǎn)集合.},求得節(jié)點(diǎn)X的直接前驅(qū)節(jié)點(diǎn)集合。

Succ*( N0,W) = { N1| N0< N1, N0,N1∈X.其中X為工作流W中的節(jié)點(diǎn)集合},求出節(jié)點(diǎn)X的所有后繼節(jié)點(diǎn)集合。

Prec*(N0,W) = { N1| N1

定義6 工作流實(shí)例的操作方法

RoolBack(W0,N0,id),在工作流模型W0 中將當(dāng)前工作流實(shí)例回滾到活動(dòng)節(jié)點(diǎn)N0,并修改相應(yīng)信息(如H)。

Transfer(id,W),把工作流實(shí)例遷移到工作流模型W上運(yùn)行。首先對(duì)當(dāng)前的工作流實(shí)例持久化,把運(yùn)行期的數(shù)據(jù)存儲(chǔ)到磁盤中,然后在新的模型中實(shí)例化一個(gè)新的工作流作流實(shí)例,反序列化原實(shí)例的數(shù)據(jù),并把相關(guān)數(shù)據(jù)信息給新實(shí)例賦值。

Start(id),開始執(zhí)行工作流實(shí)例

Suspend(id),掛起當(dāng)前工作流實(shí)例

Resume(id),重新啟動(dòng)掛起的工作流實(shí)例

2.2 工作流實(shí)例遷移算法

我們目前把所有工作的流的活動(dòng)節(jié)點(diǎn)都定義為原子節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)可以是幾個(gè)節(jié)點(diǎn)組成的節(jié)點(diǎn)組,該文暫時(shí)不考慮一個(gè)節(jié)點(diǎn)組修改的情況。

當(dāng)工作流模型發(fā)生變更時(shí),該文基于歷史路徑提出了一種工作流實(shí)例遷移算法,算法思想為:根據(jù)原工作流模型和新工作流模型的節(jié)點(diǎn)集合數(shù)量來判斷新的工作流模型是增加節(jié)點(diǎn),刪除節(jié)點(diǎn)還是替換節(jié)點(diǎn)。然后根據(jù)當(dāng)前工作流實(shí)例執(zhí)行的歷史路徑信息H,得到當(dāng)前工作流實(shí)例正在執(zhí)行的節(jié)點(diǎn),判斷如果模型的更改對(duì)當(dāng)前實(shí)例沒有影響,當(dāng)前實(shí)例不用遷移,還在原來的模型上運(yùn)行即可。如果模型的更改對(duì)當(dāng)前實(shí)例有影響,則當(dāng)前實(shí)例根據(jù)不同的情況修改信息后,遷移到新的工作流模型上運(yùn)行。

用W0(0,X0,F(xiàn)0)和W1(1,X1,F(xiàn)1)分別表示新舊工作流過程模型,Istance(0,W0,H)表示工作流當(dāng)前實(shí)例。定義兩個(gè)節(jié)點(diǎn)變量Node Nc,Nc為變化的活動(dòng)節(jié)點(diǎn),Nn = H.Last; Nn 為工作流實(shí)例正在執(zhí)行的當(dāng)前活動(dòng)節(jié)點(diǎn)。算法實(shí)現(xiàn)如下

如果Count(X0)>Count(X1)||(Count(X0)=Count(X1) F0 != F1) //刪除節(jié)點(diǎn)或替換節(jié)點(diǎn)

Nc = X0 – (X1∩X0);

Case : Nn ∈ Prec*( Nc) // 當(dāng)Nn 是Nc的前驅(qū)節(jié)點(diǎn)

Do{ Suspend(id);Transfer(id,W1);Resume(id)}

Case : Nn ∈ Succ*( Nc) // 當(dāng)Nn 是Nc的后繼節(jié)點(diǎn)

If(Nc∩H ==Nul ) Go Ahead;//工作流模型變化對(duì)當(dāng)前實(shí)例沒有影響,繼續(xù)運(yùn)行

Else:{ Node Pre = Prec( Nc) ∩ H//在執(zhí)行路徑上找到Nc 的前驅(qū)節(jié)點(diǎn)

Do{ Suspend(id);RoolBack(W0,Pre, id); Transfer(id,W1);Resume(id)}

Default: Go Ahead ;

如果Count(X0)

Nc = X1- X0;

Case : Nn ∈ Prec*( Nc) // 當(dāng)Nn 是Nc的前驅(qū)節(jié)點(diǎn)

Do{ Suspend(id);Transfer(id,W1); Resume(id); }

Case : Nn ∈ Succ*( Nc) // 當(dāng)Nn 是Nc的后繼節(jié)點(diǎn)

Node Pre = Prec( Nc) ∩ H//在執(zhí)行路徑上找到Nc 的前驅(qū)節(jié)點(diǎn)

If(Pre ==Null ) Go Ahead;

Else : Do {Suspend(id); RoolBack(W0,Pre, id);Transfer(id,W1);Resume(id);}

其它: Go Ahead // 算法結(jié)束

3 應(yīng)用實(shí)例

對(duì)于一個(gè)手機(jī)生產(chǎn)的流程,手機(jī)出來的產(chǎn)品有兩種,一種是普通手機(jī),這種手機(jī)只有普通的操作系統(tǒng),支持手機(jī)的正常操作功能。第二種手機(jī)添加了電子書閱讀功能。這兩種手機(jī)產(chǎn)品都是合理的。則整個(gè)手機(jī)生產(chǎn)的過程處理流程簡化為工作流模型如圖1所示。其中N1.裝配機(jī)器外殼N2.裝配操作系統(tǒng)N3.增加電子書軟件(可選裝配)N4.組裝機(jī)器。

由于市場需求的需要,客戶需要有手機(jī)同時(shí)具備電子書和Mp3功能,只具有單一閱讀電子書功能的產(chǎn)品將停產(chǎn)。則流程中增加了Mp3播放一個(gè)流程項(xiàng)。新的過程流程變更為工作流模型如圖2所示,其中N1.裝配機(jī)器外殼N2.裝配操作系統(tǒng)N3.增加電子書軟件(可選裝配)N4.增加Mp3軟件(可選裝配)N5.組裝機(jī)器。

原工作流模型和新的工作流模型分別表示為W0(0, X0,F(xiàn)0) ,W1(0,X1,F(xiàn)1)

根據(jù)Count(X1) >Count(X0),可以判斷出新的工作流模型是在原模型上增加節(jié)點(diǎn)。可以得到變化節(jié)點(diǎn)Nc = N4(增加Mp3軟件),變化節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)集合Prec*(Nc)={N1,N2,N3}。變化節(jié)點(diǎn)的后繼結(jié)點(diǎn)結(jié)合Succ*(Nc)={N5},對(duì)于實(shí)例Instance(0,W0,H)中的H信息,找到H中的最后一個(gè)活動(dòng)節(jié)點(diǎn)N0, N0即為當(dāng)前工作流實(shí)例正在執(zhí)行的活動(dòng)節(jié)點(diǎn)。

1) 當(dāng)H={啟動(dòng),N1}時(shí),N0=N,實(shí)例不用遷移,繼續(xù)運(yùn)行。

2) 當(dāng)H={啟動(dòng),N1,N2}時(shí),N0=N2,實(shí)例不用遷移,繼續(xù)運(yùn)行。

3) 當(dāng)H={啟動(dòng),N1,N2,N3}時(shí),N0=N3,實(shí)例不用遷移,繼續(xù)運(yùn)行。

4) 當(dāng)H={啟動(dòng),N1,N2,N5}時(shí),N0=N5,模型變更對(duì)工作流實(shí)例沒有影響,實(shí)例不用遷移,繼續(xù)運(yùn)行。實(shí)例結(jié)束后運(yùn)行的路徑為{啟動(dòng),N1,N2,N5,結(jié)束}

5) 當(dāng)H={啟動(dòng),N1,N2,N3,N5}時(shí),N0=N5,模型更改對(duì)工作流實(shí)例有影響,先將運(yùn)行中的工作流實(shí)例回滾到N3節(jié)點(diǎn),遷移到新的工作流模型中再繼續(xù)執(zhí)行。這時(shí)實(shí)例結(jié)束后運(yùn)行的路徑為{啟動(dòng),N1,N2,N3,N4,N5,結(jié)束}

該文基于工作流實(shí)例歷史路徑的信息提出來一個(gè)工作流實(shí)例的遷移方法,該方法可以有效的避免不必要的回滾和遷移,提高了工作流實(shí)例的運(yùn)行效率。該文的研究僅僅把工作流改變節(jié)點(diǎn)抽象為原子節(jié)點(diǎn)來研究的,對(duì)于節(jié)點(diǎn)組的遷移算法情況,將是該文以后研究的方向和重點(diǎn)。

參考文獻(xiàn):

[1] 魏登萍,姜新文.工作流演進(jìn)變化中遷移策略的自動(dòng)生成[J].計(jì)算機(jī)應(yīng)用,2006,26(4):995-997.

[2] ELLISC,KEDDARAK,ROZENBERGG.Dynamic change within workflow systems[C]//Proceedings of ACM Conference on Organizational Computing Systems.New York:ACM Press 1995:10-21.

[3] VAN NDE RAALST W M P.Exterminating the dynamic change bug: a concrete approach to support workflow change[J].Information Systems Frontiers,2001,3(3):297-317.

[4] VAN NDE RAALST W M P,BASTENT T.Inheritance of workflow: an approach to tackling problems related to changes[J].The oretical Computer Science,2002,270(1/2):125-203.

主站蜘蛛池模板: 日本色综合网| 国产在线欧美| 国产成人精品一区二区不卡 | 人妻熟妇日韩AV在线播放| 亚洲人成电影在线播放| 一本大道东京热无码av| 亚洲第一页在线观看| 真实国产乱子伦高清| 日韩精品专区免费无码aⅴ| 欧美成人免费午夜全| 黄色网在线| 天堂亚洲网| 亚洲欧美激情小说另类| 国产xx在线观看| 麻豆精品视频在线原创| 国产亚洲男人的天堂在线观看| 五月天婷婷网亚洲综合在线| 国产一区自拍视频| 国产不卡一级毛片视频| 99免费在线观看视频| 欧美亚洲国产精品久久蜜芽| 欧美日韩高清在线| 亚洲欧美综合精品久久成人网| 91九色视频网| 91精品国产自产91精品资源| 午夜综合网| 波多野结衣视频一区二区| 亚洲成a人在线播放www| 制服丝袜国产精品| 色综合久久久久8天国| 久久精品免费看一| 全部毛片免费看| 久青草免费视频| 99久久国产精品无码| 54pao国产成人免费视频| 国产免费看久久久| 欧美亚洲综合免费精品高清在线观看| 中文字幕伦视频| 91久久偷偷做嫩草影院精品| 欧洲精品视频在线观看| 91久久精品日日躁夜夜躁欧美| 国产丝袜91| 亚洲天堂首页| 美女无遮挡被啪啪到高潮免费| 免费不卡在线观看av| 国产黄色视频综合| 91亚洲免费| 婷婷综合色| 婷婷亚洲最大| 91破解版在线亚洲| 天天躁夜夜躁狠狠躁图片| 国产精品亚洲综合久久小说| 久久人搡人人玩人妻精品一| 国产成人免费| 久久黄色一级视频| 无码粉嫩虎白一线天在线观看| 久久久精品国产亚洲AV日韩 | 国产成人久视频免费| 国产日韩精品一区在线不卡| 国产亚洲精品资源在线26u| 日韩第八页| 国产精品va免费视频| 日韩av无码精品专区| 亚洲国产清纯| 欧美一级黄色影院| 国产在线精品香蕉麻豆| 超清无码熟妇人妻AV在线绿巨人| 一区二区偷拍美女撒尿视频| 欧美成人看片一区二区三区| 亚洲视频在线网| 成人综合网址| 最新国产网站| 精品无码人妻一区二区| 69综合网| 国产精品无码AⅤ在线观看播放| 久爱午夜精品免费视频| 国产精品99一区不卡| 精品国产99久久| 特级毛片8级毛片免费观看| 亚洲精品色AV无码看| 97国产精品视频人人做人人爱| 五月天在线网站|