劉霖岳,歐陽春,何克清,郭 曦+,馮在文,4,5,沙 瀛,王騰輝
(1.華中農(nóng)業(yè)大學(xué) 信息學(xué)院,湖北 武漢 430070;2.昆士蘭科技大學(xué) 信息系統(tǒng)系,澳大利亞 布里斯班 4000;3.武漢大學(xué) 計算機(jī)學(xué)院,湖北 武漢 430072;4.華中農(nóng)業(yè)大學(xué) 宏觀農(nóng)業(yè)研究院,湖北 武漢 430070;5.武漢大學(xué) 雜交水稻國家重點實驗室,湖北 武漢 430072)
近20年,業(yè)務(wù)流程管理技術(shù)發(fā)展迅猛,其在工作流系統(tǒng)[1]及服務(wù)計算領(lǐng)域[2-4]均有廣泛應(yīng)用。隨著各業(yè)務(wù)部門之間頻繁的合并重組,越來越多的企業(yè)選擇共同發(fā)展多個業(yè)務(wù)流程的變體(通常來自不同公司或部門,彼此之間存在聯(lián)系但不相同)并最終將其融合為一個可配置業(yè)務(wù)流程,從而在很大程度上消除冗余,使這些變體協(xié)同工作,共同發(fā)揮作用。因此,很多企業(yè)構(gòu)建了專門的業(yè)務(wù)流程分析團(tuán)隊來比較各流程模型,找出其共性和差異,以此為依據(jù)對變體進(jìn)行合并,從而創(chuàng)建可用于推動流程整合工作的集成業(yè)務(wù)流程模型。多個變體合并后的模型稱為可配置業(yè)務(wù)流程模型(configurable process model)[5]。人工進(jìn)行流程模型合并是一項繁瑣的任務(wù),不但會耗費很多工時,而且在很多環(huán)節(jié)都容易出錯。ROSA等[6]提出一種有效的自動化業(yè)務(wù)流程合并方法,通過可配置業(yè)務(wù)流程模型,業(yè)務(wù)分析師可以清楚地分析各個流程變體(process variant)之間的共同點和差異。然而,在某些情況下,流程變體合并后可能因各種原因而面臨修改,修改后的變體與原變體之間會有差異,無法對應(yīng)之前的可配置業(yè)務(wù)流程模型,業(yè)務(wù)分析師希望能夠記錄發(fā)生在流程變體上的修改操作,及其對可配置業(yè)務(wù)流程模型產(chǎn)生影響的區(qū)域,以持續(xù)保證流程變體與可配置業(yè)務(wù)流程模型之間的可追溯性(traceability),實現(xiàn)業(yè)務(wù)流程模型家族的協(xié)同演化(coevolution)。
已有學(xué)者對業(yè)務(wù)流程模型家族的協(xié)同演化方法進(jìn)行了研究。ROSA等[6]提出一種以可配置業(yè)務(wù)流程模型為中介的流程家族協(xié)同演化方法,并提出支持業(yè)務(wù)流程家族協(xié)同演化的初步變更元語(change primitives)和清潔操作,該方法以可配置業(yè)務(wù)流程模型為中介,先將流程變體上發(fā)生的修改同步到可配置業(yè)務(wù)流程模型上,再將可配置流程模型上的變更同步到其他流程變體上,從而實現(xiàn)業(yè)務(wù)流程家族的協(xié)同演化,然而所定義的變更元語和清潔操作并不完整,而且是非形式化的。
針對業(yè)務(wù)流程模型家族變更傳播問題中存在的問題,本文提出一種流程變體向可配置業(yè)務(wù)流程模型傳播變更的方法。首先,定義了標(biāo)準(zhǔn)化流程變更元語,以描述流程變體和可配置業(yè)務(wù)流程模型中發(fā)生的一系列變更,在此基礎(chǔ)上設(shè)計了一系列算法,將流程變體上發(fā)生的變更以正確的方式傳播到可配置業(yè)務(wù)流程;其次,實現(xiàn)了所有變更元語和流程變體到可配置業(yè)務(wù)流程模型上的變更傳播算法,并將變更傳播模型集成到國際大規(guī)模、開源的高級業(yè)務(wù)流程倉庫APROMORE(advanced process model repository,https://github.com/apromore)[7]中;最后,通過在SAP公司604個R/3業(yè)務(wù)流程模型[8]上進(jìn)行實驗,表明本文方法可以在極低的時間耗費下完成95%以上的正確傳播。
為了說明變更傳播達(dá)到業(yè)務(wù)流程家族協(xié)同演化的研究動機(jī)和效果,本文研究一個來自SAP公司參考模型的關(guān)于Excel數(shù)據(jù)處理的案例[8]。
數(shù)據(jù)處理流程包括兩個流程變體,如圖1所示。
流程變體1描述對行數(shù)據(jù)的處理方式,分為人工清算和自動清算,人工清算可以直接結(jié)束,而自動清算有未發(fā)現(xiàn)數(shù)據(jù)和發(fā)現(xiàn)數(shù)據(jù)兩種情況,若發(fā)現(xiàn)數(shù)據(jù)則同時報告清算完成和數(shù)據(jù)已清空。
流程變體2描述了一個Excel數(shù)據(jù)處理系統(tǒng),其可以同時處理行數(shù)據(jù)和列數(shù)據(jù),數(shù)據(jù)進(jìn)入一個清算系統(tǒng)后根據(jù)不同情況分為人工清算、自動清算和未發(fā)現(xiàn)數(shù)據(jù)3種。
最后的流程模型是將兩者合并后的可配置業(yè)務(wù)流程模型,可見兩個變體表示的流程最終由一個完整的流程圖表示,其中為了簡化合并模型,在不影響功能的前提下對一些變體的點進(jìn)行了修改。
面對不同需求時,變體上可能產(chǎn)生不同的變化,如圖2所示。由于某些原因,行數(shù)據(jù)可能存在錯誤信息需要刪除,期望在變體1“人工清算”和“自動清算”前的連接器后再追加一個新的事件“數(shù)據(jù)錯誤,已清空”,從而使變體1發(fā)生改變,如果重新將其與變體2合并,雖然可以將變體1的變更傳播到可配置流程模型上,但是重新合并意味著需要再次進(jìn)行一次計算復(fù)雜度較高的流程合并過程。實際上,如果將變體1發(fā)生的變化直接傳播到可配置業(yè)務(wù)流程模型,則可避免再次合并引起的大量重復(fù)計算。如圖2左上流程模型所示,“數(shù)據(jù)錯誤,已清空”事件(加粗并劃線)已經(jīng)被追加(append)到最左邊的網(wǎng)關(guān)之后,旁邊的標(biāo)簽表示其為屬于變體1的事件。
本文的流程變體向可配置流程模型傳播變更的方法主要包括3部分,即對可配置流程模型的修改操作、從變體到可配置業(yè)務(wù)流程模型的傳播操作和完成傳播后的流程圖清潔操作。
首先定義一組針對流程模型的修改操作,包括對流程變體的修改操作和對可配置流程模型的修改操作。
針對流程模型的底層(low-level)修改操作包括添加邊操作、刪除邊操作、修改邊注釋操作、添加點操作、刪除點操作、修改點注釋操作6種。在添加邊操作中,首先要得到待添加邊的起點和終點,并判斷添加后是否合法,若合法則可添加;刪除邊操作先將邊刪除,再判斷該邊的起點和終點是否因該邊的消失而變?yōu)楣铝⒐?jié)點,是則將其刪除;已知添加點和刪除點一定伴隨著邊操作,因此只簡單定義了在圖的點集中添加、刪除點的操作,它們一定會與邊操作結(jié)合;最后是更新點、邊注釋操作,找到對應(yīng)的點后直接更新即可,更新邊注釋同理。
完成基本修改操作的定義后,在附錄中定義了合并模型的高級(high-level)修改操作,共有9種高級修改操作:
(1)插入邊注釋 即在一條邊的注釋上再插入某段注釋。
(2)刪除邊注釋 即刪除某段邊的邊注釋,如果刪除后邊的注釋為空,則清潔操作會刪除這段邊。
(3)插入點 即在兩個點的邊上再插入一個點,需要根據(jù)該插入點出邊上注釋的個數(shù)分類討論。
(4)添加點 即在兩個連接器之間增加一條只有一個點的路徑。
(5)預(yù)/追加點 即在某個點前/后再加上一個點,這兩個操作比較相似,將其合并為一個操作。
(6)改變邊 即將某條邊移動到另一個位置,可以看作“添加邊”和“刪除邊”的組合。
(7)移除點 該操作不會單獨出現(xiàn),一般伴隨著刪除邊操作,即刪除某點及其所有邊。
(8)添加邊 即在兩個點之間添加一條邊。
(9)刪除邊 即刪除兩個點之間的一條邊。
以上針對流程模型的高級修改操作是執(zhí)行變更傳播操作的基礎(chǔ),傳播時需要調(diào)用這些高級操作來修改流程變體和可配置業(yè)務(wù)流程模型。
算法1變更傳播的判斷與實現(xiàn)。
2 begin
3 if(CO=='InsertEdge')then
6 end
7 if(CO=='DeleteEdge')then
9 end
10 if(CO=='UpdateLabel')then
12 if(|α(pv1, v1)|=1|||α(v1,sv1)|=1)then
13 αCG(v1)=αG(v)
14 end
15 else if(|α(pv1, v1)|> 1 && sv1=?)then
16 m=(c,XOR)
17 InsertNode(pv1,v1,m,CG)
18 AppendNode(m,G.v,CG)
19 αCG(m,v1) αG
20 end
21 else if(|α(pv1,v1)|>1&&|α(v1,sv1)|>1)then
22 m=(c,XOR), n=(c,XOR)
23 InsertNode(pv1,v1,m,CG)
24 InsertNode(v1,sv1,n,CG)
25 AddNode(m,n,G.v,CG)
26 αCG(m,v1) αG
27 αCG(v1,n) αG
28 end
29 end
30 if(CO=='AppendNode')then
32 if(τ(vp)∈{e,f} && |α(pv1,v1)|>1)then
33 m=(c,XOR)
34 InsertNode(pv1,v1,m,CG)
35 AppendNode(m,v2,CG)
36 αCG(m,v2)αG
37 end
38 AppendNode(v1,vs,CG)
39 end
40 if(CO=='AddNode')then
42 AddNode(v1,v2,v,CG)
43 αCG(v1,v)=αCG(v1,v)∪αG
44 αCG(v,v2)=αCG(v,v2)∪αG
45 end
46 if(CO=='InsertNode')then
48 if(|α(v1,v2)|>1)then
49 m=(c, XOR),n=(c,XOR)
50 InsertNode(v1,v2,m,CG)
51 InsertNode(m,v2,n,CG)
52 v1=m,v2=n
53 end
54 InsertNode(v1,v2,v,CG)
55 end
56 end
根據(jù)變更操作CO可以判斷將執(zhí)行的傳播操作,算法共定義了6種傳播操作:
(1)插入邊傳播操作 傳播時在CG的對應(yīng)點之間插入一條邊并添加G的注釋即可。
(2)刪除邊傳播操作 傳播時清除CG對應(yīng)邊上關(guān)于G的注釋,若清除后邊注釋為空,則在清潔操作中刪除該邊。
(3)更新點注釋傳播操作 該操作要分多種情況執(zhí)行:若該點入邊或出邊上的注釋不大于1,則直接更新;若入邊的注釋大于1而無出邊,則在該點前插入一個連接器并刪去邊上關(guān)于G的注釋,然后在連接器后追加G中更新了注釋的點;若出邊的注釋大于1而無入邊,則與上文的操作相反,算法中略去;若入邊和出邊的注釋均大于1,則在該點前、后各插入一個連接器,然后在兩連接器之間新增一條只有G中更新了注釋的點的路徑,最后刪除相關(guān)邊上的注釋。
(4)追加點傳播操作 傳播時在CG對應(yīng)點后追加一個節(jié)點即可,但要注意,如果該對應(yīng)點為“事件”或“函數(shù)”且其入邊的注釋大于1,則在其前面插入一個連接器,并在連接器后新增一個該對應(yīng)點的復(fù)制,在復(fù)制點的后面追加點。另外,預(yù)加點的流程與其基本相似,因此在算法中略去。
(5)添加點傳播操作 操作集中對AddNode的判斷需要在最開始進(jìn)行,因為滿足AddNode的條件也一定滿足AppendNode。傳播時要在CG中找到v的父節(jié)點和子節(jié)點的對應(yīng)點v1,v2,在兩者之間添加一條只有v的路徑,然后添加邊注釋即可。
(6)插入點傳播操作 傳播時要在CG中找到v的父節(jié)點和子節(jié)點的對應(yīng)點v1,v2。若兩者之間邊的注釋大于1,則在兩者之間插入兩個連接器,在連接器之間的路徑上插入新的點v;若兩者之間邊的注釋不大于1,則直接在路徑上插入v。每種情況最后都需要修改邊注釋。
在完成流程變體到可配置流程模型變更傳播后,可配置流程模型可能因變更傳播而產(chǎn)生一些不合法的部分,如冗余連接器、孤立節(jié)點、無注釋邊等,因此定義了清潔操作,刪除變更傳播后可配置流程模型上不合法的部分。清潔操作如算法2所示。
算法2清潔操作。
1 function CleanGraph(Conf.Graph CG)
2 begin
3 foreach τ(NCG.v)=='c' do
4 if(|pv|>1 && |sv| > 1)then
5 v1=(v.type)
6 InsertEdge(v1,sv,CG)
7 DeleteEdge(v,sv,CG)
8 InsertEdge(v,v1,CG)
9 end
10 if(|pv|<1&&|sv|<1)then
11 InsertEdge(pv,sv,CG)
12 αCG(pv,sv)=αCG(v,sv)
13 DeleteEdge(v, sv,CG)
14 DeleteEdge(pv, v,CG)
15 RemoveNode(v)
16 end
17 end
18 if(α(ECG.e)=?)then
19 DeleteEdge(e.vp, e.vs, CG)
20 end
21 if(p(NCG.v)=?&& s(NCG.v)=?)then
22 RemoveNode(v)
23 end
24 end
該算法的唯一輸入是變更傳播待清潔的可配置流程模型CG,算法在得到輸入CG后會檢測可配置業(yè)務(wù)流程模型中的幾種不合法情況并進(jìn)行改正:
(1)若一個連接器v同時有多個子節(jié)點和父節(jié)點,則創(chuàng)建一個與其同類型的連接器v1,在v1和v的所有子節(jié)點之間插入邊,插入邊的注釋等于v與v子節(jié)點之間邊的注釋,然后刪除v與其子節(jié)點的所有邊,最后建立一條v到v1的邊。
(2)若一個連接器的子節(jié)點數(shù)和父節(jié)點數(shù)都不大于1,則認(rèn)為該連接器為冗余連接器,直接刪除該連接器及其與父、子節(jié)點的邊,然后將其父、子節(jié)點連接起來。
(3)若一條邊的注釋為空,則直接刪除該邊,但要注意刪除后可能出現(xiàn)更多不合法的情況,需要重復(fù)檢查。
(4)一個沒有出邊也沒有入邊的點稱為孤立節(jié)點,應(yīng)直接刪除。
清潔算法完成后,便可將更新后的可配置流程模型返回用戶。該合并模型會生成一個新的版本并保留之前的舊版本,分別對應(yīng)傳播前和傳播后。同時系統(tǒng)會建立新的模型對應(yīng)關(guān)系,發(fā)生變化的變體也會同時創(chuàng)建一個新的版本與總體對應(yīng),用戶之后的修改將在新版本對應(yīng)的流程模型上進(jìn)行。
在完成流程變體向可配置流程模型的變更傳播操作和清潔操作后,以傳播操作和清潔操為基礎(chǔ),構(gòu)建業(yè)務(wù)流程變更傳播管理器。該管理器的框架如圖3所示,分別由Signavio GUI,Cpf2Graph Service,Graph Comparison Module,Change Propagation Manager,Graph Change Module,Graph2Cpf Service 6個組件組成,每個組件的具體作用以及修改的整體流程如下:
(1)用戶通過Signavio GUI修改變體并發(fā)出變更傳播請求,系統(tǒng)將被修改的變體和原變體一起傳入Cpf2Graph Service,得到流程變體對應(yīng)的有向圖。
(2)在Graph Comparison Module的作用下,用戶得到變體發(fā)生變更的變化操作集;接著,通過Change Propagation Manager,根據(jù)變體的變更集合獲得可配置業(yè)務(wù)流程模型的變更集合。
(3)由Graph Change Module根據(jù)變化集修改可配置業(yè)務(wù)流程模型。
(4)用Graph2Cpf Service將修改后的可配置業(yè)務(wù)流程模型對應(yīng)的有向圖轉(zhuǎn)化為可配置業(yè)務(wù)流程模型,并通過Signavio GUI呈現(xiàn)給用戶,完成從變體到可配置業(yè)務(wù)流程模型的變更傳播過程。
流程變更傳播模塊已經(jīng)集成到業(yè)務(wù)流程模型管理系統(tǒng)APROMORE(https://apromore.org/)[7]中。
為了證明并評估所提方法的普適性和實用性,采用SAP參考模型的數(shù)據(jù)集進(jìn)行實驗。該數(shù)據(jù)集包括604個事件驅(qū)動流程鏈(Event-driven Process Chain, EPC)格式的流程模型,這些SAP EPC參考模型不可配置,因此首先采用一種圖的相似度計算方法得到每個圖之間的相似度,然后采用凝聚層次聚類(Agglomerative Hierarchical Clustering, AHC)算法,根據(jù)其相似度進(jìn)行聚類,共得到40個流程類簇,經(jīng)過篩選和處理,舍棄30個EPC模型,并在剩余類簇中選擇20對模型作為變體,采用文獻(xiàn)[6]的模型合并方法進(jìn)行兩兩合并,得到20個可配置業(yè)務(wù)流程模型及其對應(yīng)的流程變體構(gòu)成的業(yè)務(wù)流程家族,其中每個業(yè)務(wù)流程家族含有兩個變體和一個可配置業(yè)務(wù)流程模型。下面用這20個業(yè)務(wù)流程家族進(jìn)行變更傳播實驗。
對每個流程家族進(jìn)行9項變更傳播操作,以驗證算法是否對每種流程模型都有效且準(zhǔn)確。除之前算法中列出的6項,還有“預(yù)加點”“移動邊”“移除點”3項,這9項傳播操作目前可以涵蓋業(yè)務(wù)流程建模標(biāo)注(語言)(Business Process Modeling Notation,BPMN)模型變體到總體的幾乎所有變更操作,且遵守BPMN規(guī)則[9]。另外,傳播操作引起的合并模型上的變化并不總是與變體上的變化相同,需要從多種情況討論傳播的實施,以“更新點注釋”為例,修改變體時只有一個點的注釋發(fā)生變化,修改合并模型時需要根據(jù)其出邊和入邊的邊注釋的數(shù)目分為4種情況,有些情況可以直接更改合并模型中點的標(biāo)簽,有些情況則需要插入多個連接器來保證圖的正確性。傳播操作在合并模型上的操作是復(fù)雜多變的,某個復(fù)雜的模型經(jīng)過傳播有可能產(chǎn)生錯誤的合并模型,因此安排一位操作員對傳播后的總體進(jìn)行判斷,以確定傳播正確與否。表1所示為9項操作在20個模型集上變更傳播的正確率。
表1 傳播操作在各模型集上的正確率 %
可見,“插入邊”“刪除邊”“移動邊”的普適性和正確性很高,原因是這3種傳播操作相對簡單,不需要考慮連接器和邊注釋等復(fù)雜因素,只要在合并模型中找到變體中變化邊的起點和終點所對應(yīng)的點,對兩個對應(yīng)點之間的邊進(jìn)行操作即可。然而剩下有關(guān)點的操作仍存在各種問題,例如當(dāng)原始的流程圖不合法時,所有點操作都將無法進(jìn)行;當(dāng)被添加點的節(jié)點的子節(jié)點或父節(jié)點存在連接器時,傳播后的合并模型可能存在錯誤,原因是對連接器和節(jié)點的組合情況考慮不全面;當(dāng)插入點和修改點注釋的相關(guān)點的出邊和入邊上的注釋不唯一時,變更傳播也可能會發(fā)生錯誤,原因是未能完整列舉出對有多個注釋的邊進(jìn)行修改的所有情況;移除點時最容易發(fā)生傳播錯誤,原因是很多模型不存在可以移除的點,如果強(qiáng)行移除則會引起B(yǎng)PMN模型語法錯誤,導(dǎo)致傳播無法進(jìn)行。
根據(jù)表1數(shù)據(jù)來看,95%以上的傳播操作是可以進(jìn)行的,而且擁有平均90%的正確率,因此認(rèn)為傳播操作是普適且正確的,可以滿足絕大多數(shù)需要修改變體的情況。當(dāng)僅進(jìn)行邊修改操作時,幾乎可以認(rèn)為傳播完全正確,而進(jìn)行點操作時,只要操作合法,傳播的正確率即可達(dá)到90%以上,但還是無法保證完全可靠,需要人為檢查傳播后的模型正確與否。另外,以上數(shù)據(jù)中有部分圖因為規(guī)模和內(nèi)容問題無法進(jìn)行全部9項操作實驗,所以將其從基數(shù)中減去。
本節(jié)評估傳播算法的實用性,即用變更傳播得到的合并模型比重新合并兩個變體得到的合并模型耗時更少。為此統(tǒng)計了在20對模型上9項操作的變更傳播時間及重新合并模型的時間,結(jié)果如表2所示。需要說明的是,文獻(xiàn)[6]中的模型合并方法基于最大公共區(qū)域,因此修改變體引起的合并用時的變化可以忽略,即修改后的合并用時等于先前的合并用時。
表2中加粗的“F”表示傳播錯誤,加粗劃線的耗時表示該耗時比重新合并模型耗時更多,“/”表示該模型無法測試該傳播操作。可知絕大多數(shù)情況下傳播操作的耗時比重新合并模型的耗時少得多,9項傳播操作的平均耗時僅占重新合并耗時的29.6%,證明了傳播操作的實用性。有關(guān)傳播耗時比重新合并模型耗時更多的情況,可能由于圖的規(guī)模太小,導(dǎo)致傳播耗時和合并耗時相差不大,從而被其他細(xì)微因素影響。另外,耗時異常的情況常出現(xiàn)在“添加點”這一操作上,可能是算法設(shè)計時存在漏洞,還需進(jìn)一步改進(jìn)。
綜上所述,盡管傳播操作目前還存在某些問題,無法保證點操作百分之百正確,而且極少情況的耗時多于重新合并耗時,但是絕大多數(shù)情況能滿足普適性和實用性需求,未來將繼續(xù)優(yōu)化和完善傳播算法,進(jìn)一步提升正確率和效率。
表2 各模型集上的耗時統(tǒng)計 μs
近年來,業(yè)務(wù)流程模型家族的變更傳播問題研究得到了業(yè)務(wù)流程管理領(lǐng)域的廣泛關(guān)注,澳大利亞南澳大學(xué)GROSSMANN等[10]提出一種作用于公共參考模型(common reference model)和流程視角(process view)之間的變更傳播框架,并提出在不同視角之間進(jìn)行一致性檢測的方法,然而該方法并不適用于可配置流程模型和流程變體之間的變更傳播。
更多學(xué)者針對業(yè)務(wù)流程倉庫(business process repository)中相似流程的變更影響和傳播問題進(jìn)行研究[11-13]。DAM等[11]對業(yè)務(wù)流程倉庫中的流程變更對其他流程產(chǎn)生的級聯(lián)影響(ripple impact)問題進(jìn)行了研究,該方法首先對業(yè)務(wù)流程模型活動的前置條件和效果進(jìn)行語義標(biāo)注,通過計算累計效果(cumulative effects)和一種基于依賴的影響分析方法來分析流程與子流程以及流程之間的協(xié)同變更影響;相比文獻(xiàn)[11],本文方法不需要在流程模型之間預(yù)先定義跟蹤鏈,但是語義推理的時間開銷更高;FENG等[12]提出一種面向方面的業(yè)務(wù)流程家族協(xié)同演化方法,該方法將協(xié)同演化信息封裝在插件(plug-in)中,通過面向方面的技術(shù)將插件插入業(yè)務(wù)流程家族,實現(xiàn)了流程家族的協(xié)同演化;WEIDLICH等[13]提出一種基于流程行為畫像(behavioral profile)的流程模型家族變更傳播方法,當(dāng)流程倉庫里某流程變更版本時,該方法抽取流程行為畫像的變更,決定流程倉庫中相關(guān)流程的變更區(qū)域,完成整個業(yè)務(wù)倉庫中流程的協(xié)同演化。
宋巍等[14]提出一種業(yè)務(wù)流程變更管理框架,本文方法屬于該框架中設(shè)計期業(yè)務(wù)流程家族協(xié)同演化的范疇。另外,宋巍等[15]提出一種基于軌跡追蹤的數(shù)據(jù)遷移有效性檢查方法,使流程發(fā)生動態(tài)演化后產(chǎn)生的新版本可以正確執(zhí)行并產(chǎn)生預(yù)期結(jié)果[16],而且可以判斷其遷移的有效性,當(dāng)更改超出業(yè)務(wù)流程的范圍時,還應(yīng)考慮環(huán)境屬性等因素,如合作共同編排服務(wù)[17]等,這些工作為今后進(jìn)行可配置模型變更傳播的正確性驗證提供了思路。
本文提出一種從流程變體到可配置業(yè)務(wù)流程模型之間的協(xié)同演化方法。首先,定義了作用于流程變體和可配置業(yè)務(wù)流程模型上的7個流程變更元語;然后,設(shè)計了從流程變體到可配置業(yè)務(wù)流程模型傳播方向上的變更傳播算法;接著,提出變更傳播算法的模塊架構(gòu),并將變更傳播模塊集成到Apromore系統(tǒng)中;最后,用實驗證明了本文方法的正確性和普適性。
未來工作主要包括3部分:
(1)本文所提算法將流程變體上單個變更操作傳播到可配置業(yè)務(wù)流程模型上,然而流程變體的改變可能由一個變更操作序列構(gòu)成,未來將研究如何將發(fā)生在流程變體上的變更操作集合傳播到可配置業(yè)務(wù)流程模型上。
(2)檢測并消解變更傳播帶來的不一致性問題。
(3)將可配置業(yè)務(wù)流程模型上的變更操作傳播到各個流程變體上進(jìn)行研究。