王倩倩 方賢文
1(安徽科技學院信息與網絡工程學院 安徽 蚌埠 233030)2(安徽理工大學數學與大數據學院 安徽 淮南 232001)
在大多數應用領域中,流程變化被認為是至關重要的[1]。有多種原因可以引起業務流程的變化,例如新法規的實施、新市場需求的出現等。變化不僅涉及流程的結構,還涉及相應的規則(例如,服從性、隱私或安全規則)。文獻[2]中指出在多個流程合作伙伴共同協作的流程協作中,處理變化可能更加復雜,一個流程上的變化可能會對其他流程合作伙伴產生影響。例如,賣家可能希望在買家收貨后向賣家發送一份關于客戶滿意度的問卷,這可以通過在賣家的私有流程中插入相應的活動來實現。如,某寶網上賣家希望得到客戶滿意度的協作流程中,賣家通過分別在私有流程和公共流程中插入相應的活動“開發問卷”和“發送問卷”,向買家發送相應的變化請求,從而影響買家能夠接收相應的消息并對其反饋。在這種情況下,初始變化導致了多個合作伙伴的傳遞效應。Weidlich[3]使用行為輪廓來識別流程中變化的區域,并將變化傳播到不同抽象級別的其他流程中。由于流程模型結構中的任何變化都會影響節點之間的關系(即行為輪廓),因此可以識別變化的區域,這種方法不考慮數據屬性。文獻[4]中,先給定流程模型的變化,通過使用行為輪廓中的行為關系,以確定另一個模型中的變化區域。此方法可以應對與層次結構不相關的模型對的變化,并顯示行為不一致性,缺點是通過錯誤地識別對應關系,可能增加不一致程度。文獻[5]提出了一種通過更新相應的流程視圖來改變大型流程模型的方法,同時保證了所有其他流程視圖在流程模型上的更新和一致性。可以將相應的變化操作應用于流程視圖,并將相應的變化正確地傳播到基礎流程模型。此外,與此流程模型相關的所有其他視圖也將被遷移到流程模型的新版本。文獻[6]提出了一種通用的方法來傳播協作過程維護場景中的變化,以保持調用一致性。在這樣的場景中,不同的業務合作伙伴擁有自己的私有流程,從該流程可以為其他參與者提供公共視圖。文獻[7]提出了一種基于并發事務邏輯(CTR)的服從性驗證方法,該方法通過將流程圖轉換為CTR公式來根據CTR中指定的約束驗證流程模型,并允許應用推理技術來識別語義沖突。文獻[8]使用FCL來指定契約,從業務契約的角度來處理服從性驗證。通過將流程模型轉換為類似于契約符號的形式來驗證BPMN流程與給定契約的服從性。文獻[9]提供了算法來自動檢查交互模型的不同類型的服從性,即交互模型不與全局服從性規則沖突的能力。它可自動檢查分布式協作工作流的公共元素是否確保全局服從性規則,并開發了一個概念驗證原型來支持分布式和協作工作流的兼容性和服從性檢查。與組織內流程的業務流程管理研究相比,在許多流程模型存儲庫作為模擬和工作評估的支持而存在的情況下,在組織間流程的上下文中缺乏此類存儲庫已成為一種不便。文獻[10]使用LTL為流程模型開發了一個服從性檢查框架,但是他們的方法只能在流程模型級別處理服從性。文獻[11]提出了一種檢測變化對協作流程服從性影響的方法,并在協作流程設置中提高了服從性檢查的效率,但是沒有考慮相關合作伙伴的隱私問題。
基于以上背景,許多研究都集中在協作業務流程的變化域傳播分析,但很少考慮不同級別服從性變化在協作流程中如何進行傳播的,具有一定的局限性。因此在文獻[12]基礎上,本文提出了基于服從性的協作流程變化域傳播分析方法。首先根據隨機編排模型算法生成編排模型,并推導出公共模型和私有模型,得到一個協作模型,然后基于服從性變化傳播算法,分析不同級別的服從性發生變化是如何在協作模型中傳播的,最后通過模型之間的映射關系發現相關流程的變化域。
定義1[9](協作流程) 在協作流程中,P為所涉及合作伙伴的集合,并且p∈P是任意的合作伙伴,則:
1)T是所有任務(即活動)的集合,Tp?T是由p執行的任務集。Tp被劃分為公共任務的集合Vp和私有任務的集合Sp,即Tp=Vp∪Sp。
2)M對應于所有交互的集合,Mp?M對應于涉及p的所有交互的集合,即發送或接收的消息。對于特定的交互I(m,s,r),消息m從s∈P發送到r∈P。SEND(I(m,s,r))、REC(I(m,s,r))表示I(m,s,r)的發送、接收任務。
3)Πp是p的私有流程模型。它包括Tp的任務和Mp的相互作用。Π對應于所有私有流程模型的集合。
4)γp是p的公共流程模型。它包括Vp的公共任務和Mp的交互。Γ對應于所有公共流程模型的集合。
5)lp是交互模型中p的局部視圖,它發送和接收Mp的元素。L是所有局部視圖的集合。
6)H是由M的相互作用組成的全局交互模型,即編排模型。
7) M:=Π∪Γ∪L∪{H}是所有模型的集合。
定義2(映射函數) 在協作流程中,P為所涉及合作伙伴的集合,并且p∈P是任意的合作伙伴,有:
1)ψ={ψp:γp?Πp}p∈P是私有和公共模型之間節點的映射函數。
2)φ:γ?γ′是不同公共模型之間節點的映射函數。
3)φ:γ?H是編排模型與公共模型之間節點的映射函數。
定義3[9](跡) 設n∈M是一個模型,Κ?M是模型的子集,t∈T∪M是任務或交互,E?T∪M,ξ?((T×P)∪M)*是由任務和消息組成的跡。然后:
1)t∈+n表示t用于n。此外,n∈:={t∈T∪M|t∈+n}表示n使用的任務和交互集合。
2)ξ(n)∈((T×P)∪M)*是n上可產生的跡集。每個跡條目包含交換的消息或特定合作伙伴執行的任務。

4) [ξ]E∈((T×P)∪M)*對應于通過任意添加E的元素(即任務和消息)來得到的一組跡。
5) ?:=ξ*({H}∪Π)描述協作模型產生的跡集。?的近似有:


通常,業務流程服從性意味著協作流程不會違反服從性規則。對于協作流程模型,需要區分三個不同級別的服從性:局部服從性、斷言服從性和全局服從性。首先,局部服從性意味著合作伙伴的私有流程不違反其任何局部服從性規則。其次,斷言的服從性意味著特定的合作伙伴向其他合作伙伴保證其私有流程服從特定的服從性規則集,即其斷言集。因此,每個斷言對應于與此特定合作伙伴的私有流程模型相關的局部服從性規則。最后,全局服從性意味著公共流程模型不違反任何全局服從性規則。

定義5[9](服從性和可兼容性) 設H為合作伙伴集P的編排模型,Γ是P的公共流程模型的集合。p∈P為合作伙伴,Πp∈Π為其私有過程模型,γp∈Γ為其公共過程模型。lr∈LCRp為p的局部服從規則,gr∈GCRp為全局服從規則,A為所有斷言的集合。則:
1)Πp|=lr:??τ∈ξ(Πp):τ|=β(lr),表示私有流程Πp服從局部服從規則lr。
2)H|=GCR:??τ∈ζG:τ|=∧gr∈GCRβ(gr),表示編排模型H服從全局服從性規則GCR。
3)H‖-GCR:??I(m,s,r)∈+H:?τ∈ζG:τ|=β(gr)和I(m,s,r)出現在τ中,表示編排模型H全面兼容全局服從性規則GCR。

定義6[13](域) 給定一個過渡流程PM′=(A′,G′,N′,F′,s′,e′,t′),一個流程PM=(A,G,N,F,s,e,t),若PM′中有域R(a),則兩者之間有映射h:PM′→PM且a∈A,都有R(a)={a′∈A′|h(a′)=a}。
定義7[14](配置活動類型)
1) allow:允許活動是可見并且可執行的活動。
2) hide:隱藏活動是可以被跳過而直接執行下一個活動的活動,即該活動不可見。
3) block:阻塞活動是活動分支被禁止選擇的活動,也就是刪除該活動的分支。
其中配置參數allow作為默認參數,適用于所有活動集。
協作流程中的流程模型(例如公共或私有模型)和所涉及的服從性規則(例如全局或局部規則)是緊密相關的。更改流程模型不僅會影響其他合作伙伴的流程模型,還可能導致違反各自的服從性規則。同樣,服從性規則的更改(例如,法律)也會對合作伙伴流程產生影響,從而導致其他合作伙伴的更改或者與其他合作伙伴的服從規則產生沖突。因此,本文針對基于服從性的協作流程變化域傳播問題,主要從以下步驟進行處理:1) 生成編排模型;2) 計算公共/私有模型;3) 判斷變化對流程是否有影響;4) 判斷變化是否影響全局服從性;5) 計算直接或間接變化域;6) 確定目標變化域。圖1為協作流程變化傳播流程。

圖1 協作流程變化傳播流程
本節從參數約束的角度來分析隨機編排模型的生成,并指定以下輸入參數來影響編排模型的隨機生成:1) 交互數量:決定消息交換的數量;2) 最大分支:為每個網關創建的最大可能路徑數。由于對交互數量的限制,交互不一定總是被選擇為下一個節點類型。同樣,并不是每個打開的分支都可以被隨機選擇以將下一個節點放入模型中,因為這可能會違反模型的正確性或超過定義的交互次數。因此,本文提出了隨機編排模型生成算法,該算法受到參數的約束,并且可以隨機選擇要放入模型中的下一個節點的節點類型和相應位置,而不會導致錯誤的模型。
任何流程模型都可以由圖2中所示的一組基本結構表示,包括順序、選擇和并行。若為模型中的網關分支創建拆分,每個拆分可以包含多個分支,這些分支表示由并行或排他網關創建的不同路徑。同樣,每個分支都有相應的節點,在編排模型中,節點僅限于交互和網關。而路徑跟拆分受其相應分支網關節點的合并節點的限制,即若前有并行(排他)網關,后則有并行(排他)網關與之相對應(圖2(b)和圖2(c))。此外,每個分支都有一個狀態,指示分支是open、split還是close。

(a) 順序 (b) 并行 (c) 排他圖2 流程模型的基本結構
定義8(分支的狀態)
1) open:分支尚未被其相應拆分節點的合并節點包圍,并且可以通過在其路徑上放置更多節點來進一步發展。
2) split:如果分支包含另一個拆分,所有拆分分支都尚未關閉且分支不能進一步發展,則該分支處于拆分狀態。
3) close:分支已完成,無法進一步發展。
例如圖3中分支1的狀態為open,圖4中分支2的狀態為split,圖5中所有分支的狀態為close。

圖3 分支的狀態open

圖4 分支的狀態split
定義9[15]設x是打開和不可關閉的分支數,剩余交互是尚未放入模型的所有交互,剩余XOR網關和剩余AND網關是尚未放入模型的網關數量。然后:
保留交互分支=x
保留交互AND網關=剩余AND網關+1
保留交互AND網關=如果剩余AND網關>0則為0,否則為1
保留交互網關=保留交互AND網關+保留交互XOR網關
所有的保留交互=保留交互分支+保留交互網關
自由交互=剩余交互-所有的保留交互
根據定義9中指定變量的值,可以隨機選擇要放入模型中的下一個節點的節點類型和相應位置,而不會導致錯誤的模型。下面給出了隨機編排模型生成的算法。
算法1隨機編排模型的生成
1 begin:
2 for(i=remainingInteractionsNodes; i>0; i--)
3 {
4 nextNodeType=getRandomNodeType();
5 selectedBranch=getRandomBranch();
6 if selectedBranch=getRandomBranch()
7 {
8 close branch by random;
9 if closed
10 { continue;}
11 else
12 nextNode=instantiate node of nextNodeType;
13 if nextNodeType is Gateway
14 {
15 branchCount=getRandomBranchCount();
16 split=instantiate new split;
17 for(j=0; j<=banchCount; j++)
18 {
19 branch=instantiate new branch;
20 split.branches.append()=branch;
21 }
22 }
23 selectedBranch.nodes=selectedBranch.nodes∪ nextNode;
24 }
25 }
26 close still open splits;
27 add end event to root branch;
28 enrich interactions with reasonable sender and receiver sequence;
29 end
在算法1的基礎上,遵循自頂向下的方法,派生和定義每個合作伙伴的公共模型。因此,編排模型的每個交互(編排任務)在相應的公共流程模型中轉換為發送和接收任務。然后,通過使用抽象的私有任務豐富公共模型,每個私有模型都是從相應的公共模型派生而來的。最后,通過互連所有公共模型來構建協作模型。
在本節中,首先使用圖6、圖7和圖8來分析不同級別服從性變化如何在協作模型中進行變化傳播的,圖中兩個節點之間的虛線鏈接表示可能的傳播。在變化傳播的過程中,可能導致某些模型發生變化,產生一定的變化域。因此本節提出了尋找基于局部(全局)服從性變化的協作流程的變化域。

圖6 LCR變化的影響

圖7 斷言變化的影響

圖8 GCR變化的影響
圖6描述的是局部服從性變化的影響。如果合作伙伴p的局部服從性發生變化,則需要檢查p的私有模型是否符合變化后的規則。如果不符合,則需要確定變化位置來更改私有模型。如果私有模型的變化不是局部的,那么變化就需要進行傳播。在這個過程,變化傳播分為兩類:直接變化傳播和間接變化傳播。對于間接變化傳播可以利用中間方的信息交換來進行變化傳播。這樣模型產生的變化域可能是直接造成的,也可能是間接造成的。如圖9所示,私有模型p變化導致相應公共模型p1產生的變化域為直接的,而與p的公共模型相關的其他公共模型p3產生的變化域是間接的,是通過中間方p1間接傳遞的。

圖9 間接影響
圖7中描述的是斷言變化的影響。如果斷言變化,則檢查斷言中涉及的私有和公共模型的可兼容性。當不兼容時,則需要更改模型,那么就需要使用與前一步相同的確定變化域過程。算法2給出了尋找基于局部服從性變化的協作流程的變化域。
算法2尋找基于局部服從性變化的協作流程的變化域
輸入:變化的lr、gr,協作流程。
輸出:變化域。
步驟1在協作流程中,如果Πp|≠changedlr,則根據changedlr找到Πp變化區域CR1;如果Πp|=changedlr,則無影響返回Πp。
步驟2?x∈CR1,在γp中的映射節點為ψ(x),所有的映射節點構成γp的變化域CR2。
步驟3如果γp|≠gr,則返回步驟1,重新尋找Πp變化域;如果γp|=gr,?ψ(x)∈CR2,對于與γp相關的公共模型γp′,其映射節點為φ(ψ(x)),同樣可得到γp′的變化域CR3。
步驟4?φ(ψ(x))∈CR3,在Πp′的映射節點為ψ(φ(ψ(x))),則Πp′的變化域為CR4。
步驟5如果Πp′|≠changedlr,返回步驟4重新計算CR4;如果Πp′|=changedlr,則Πp′的變化域為CR4。
步驟6輸出變化域CR1、CR2、CR3、CR4。
圖8中描述的是GCR變化。如果全局服從性規則發生變化,那么將檢查編排模型以及相關公共模型的兼容性。當不兼容時,就要確定編排模型的變化導致公共模型產生的變化域。對于涉及到更改的公共模型,確定公共模型的變化導致相應私有模型產生的變化域。如果需要對私有模型進行更改,則檢查斷言和相應的LCR是否存在可能的違反。算法3給出了尋找基于全局服從性的協作流程的變化域。
算法3尋找基于全局服從性變化的協作流程的變化域
輸入:變化的gr、lr,協作流程。
輸出:變化域。
步驟1在協作流程中,如果H|=changedgr,返回H;如果H|≠changedgr,則根據changedgr找到H變化區域R1。
步驟2?y∈R1,存在q∈P,在γq中的映射節點為φ(y),所有的映射節點構成γq的變化域R2。
步驟3對于與q相關的合作伙伴q′,?φ(y)∈R2,根據映射關系得到γq′的映射節點φ(φ(y)),同樣得到γq′的變化區域R3。
步驟4?φ(φ(x))∈R3,在Πq′的映射節點為ψ(φ(φ(x))),則Πp′的變化域為R4。
步驟5如果Πq′|≠lr,返回步驟4重新計算R4;如果Πp′|=lr,則的變化域為R4。
步驟6輸出變化域R1、R2、R3、R4。
本節通過網上購物場景來說明變化傳播問題。根據算法1得到了網上購物場景的編排模型(圖10)、協作模型(圖11)、公共模型(圖12),以及私有模型(圖13)。其中,活動字母對應名稱如表1所示。該場景描述了3個合作伙伴的協作,即買家、賣家、快遞公司。買家將訂單消息發送給賣家,賣家收到消息后對買家進行身份驗證,身份驗證完成后,買家下單,并通過快遞公司進行發貨。如果買家接收貨物后不滿意,則向賣家發送退貨通知,賣家向快遞公司發送退貨通知,否則向賣家和快遞公司發送確認收貨。

表1 活動字母表

圖10 編排模型

圖11 協作模型

圖12 公共模型

圖13 私有模型
網上購物場景符合以下5條服從規則(CR),這些規則和標準反映了需要遵守的法規和標準:
C1:購買貨物要付款。
C2:快遞運輸期間要保證地址的正確性。
C3:取消訂單一定要在發貨前。
C4:一定要對貨物進行質量檢查。
C5:收到貨物通知,則需要去拿貨。
為了保護商業隱私,合作伙伴只會分享其流程的公共視圖(參見圖12);例如,賣家隱藏庫存檢查以及準備貨物(參見圖13)。為了驗證服從性 C1-C5,合作伙伴對其私有流程的隱藏行為提供以下斷言規則(AR):
A1:如果買家沒有在線支付,則必須進行到付。
A2:貨物運輸期間不能直接修改地址和電話號碼。
A3:賣家接收訂單后一定要檢查庫存,如果貨物庫存不足,則需要補充貨物,然后才能發貨。如果無法補充貨物,則取消訂單。
A4:如果賣家沒有對貨物進行質量檢查,快遞公司要確保貨物的質量。
A5:快遞公司在運輸期間保證貨物無破損。
當服從規則發生變化時,由算法2和算法3可知,相關流程可能作出相應的變化,才能滿足服從規則。例如,A2,為了滿足買家需求,現在更改服從規則,使貨物運輸期間可以修改地址和電話號碼。如果買家在運輸期間要更改送貨地址,這樣快遞公司就需要作出相應的更改。由算法2可知,可以在模型中找到相應的變化域如圖14-圖16所示。文獻[16]中詳細介紹了不同變化模式下變化傳播的過程。與文獻[16]相比,算法2和算法3從服從性的角度來分析變化傳播過程,并根據映射函數確定相關流程的變化域。

圖14 買家公共流程變化域

圖15 快遞公司公共流程變化域

圖16 快遞公司私有流程變化域
本文基于服從性的基礎知識對協作流程模型的變化域進行了分析,從而有利于發現相關流程的變化區域。本文首先在參數約束條件下提出編排模型生成算法,然后分析了不同級別服從性變化在協作流程中是如何傳播的,最后通過模型之間的映射關系發現相關流程的變化域。在未來的工作中,將要對本文的算法做出新的改進,找到更精確的變化域。