本發(fā)明涉及業(yè)務(wù)過程管理中、業(yè)務(wù)過程模型重構(gòu)領(lǐng)域,特別涉及挖掘bpmn編制流程并行性的方法及系統(tǒng),以達到提高編制效率的目。
背景技術(shù):
隨著bpm技術(shù)的廣泛使用,企業(yè)使用bpmn2.0(businessprocessmodelingnotation2.0)建模出了越來越多的編制流程。由于建模業(yè)務(wù)流程是耗時、易錯的,且不同建模者的能力參差不齊,所以,編制流程的質(zhì)量差異也很大。
當(dāng)建模出一個編制流程后,建模者需要考慮一個問題:該編制流程的效率怎樣?在一個實際的業(yè)務(wù)流程中,某些任務(wù)可以并發(fā)執(zhí)行。但是,在建模出的編制流程中,這些任務(wù)卻是串行執(zhí)行。因此,如何將編制流程中串行執(zhí)行的任務(wù)改變?yōu)椴⑿袌?zhí)行的任務(wù),以提高編制流程的效率,成為了業(yè)務(wù)過程重構(gòu)領(lǐng)域研究的難點。
雖然已有文獻提出將petri網(wǎng)中的串行執(zhí)行的變遷變?yōu)椴⑿袌?zhí)行變遷的方法,但尚未發(fā)現(xiàn)有關(guān)工作可將bpmn中的編制流程的串行執(zhí)行的任務(wù)變?yōu)椴⑿袌?zhí)行的任務(wù)。目前,針對petri網(wǎng)描述的業(yè)務(wù)流程,已有文獻從數(shù)據(jù)讀寫的角度提出了一種方法:將petri網(wǎng)中串行執(zhí)行的變遷改變?yōu)椴⑿袌?zhí)行的變遷。而針對petri網(wǎng)描述的軟件演化過程,已有文獻從相關(guān)性的角度,也提出了一種方法:將petri網(wǎng)中串行執(zhí)行的變遷改變?yōu)椴⑿袌?zhí)行的變遷。與petri網(wǎng)的基本建模元素:庫所、變遷、弧和托肯相比,bpmn的建模元素更加豐富,包含:開始事件、結(jié)束事件、任務(wù)、網(wǎng)關(guān)和序列流,但是目前無法直接將現(xiàn)有文獻提出的方法直接應(yīng)用于bpmn編制流程,以提高編制流程的效率。為此,有必要提供一種挖掘bpmn編制流程并行性的方法。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是,從依賴性(dependence)角度將bpmn編制流程中存在順序關(guān)系、但不存在數(shù)據(jù)依賴的任務(wù)對,使它們由串行執(zhí)行改為并行執(zhí)行的一種挖掘bpmn編制流程并行性的方法。
解決上述技術(shù)問題,本發(fā)明提供了一種挖掘bpmn編制流程并行性的方法,包括如下步驟:
根據(jù)結(jié)構(gòu)特征從編制流程中提取任務(wù)間的基本關(guān)系,并構(gòu)造出基本關(guān)系矩陣;
分析任務(wù)間的依賴關(guān)系,并構(gòu)造出依賴關(guān)系矩陣;
根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖;
根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程。
更進一步,方法還包括:預(yù)處理編制流程的步驟:根據(jù)預(yù)處理規(guī)則將結(jié)構(gòu)不同但語義相同的編制流程轉(zhuǎn)換為結(jié)構(gòu)統(tǒng)一的編制流程。
更進一步,所述預(yù)處理規(guī)則至少包括:
對于開始事件,若開始事件具有多個輸出流,則通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的開始事件;
和/或,對結(jié)束事件,若結(jié)束事件有多個輸入流,可通過獨占事件合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的結(jié)束事件;和/或,對任務(wù),若任務(wù)具有多個輸入流則通過排他數(shù)據(jù)合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的任務(wù);
若任務(wù)具有多個輸出流,則通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的任務(wù)。
和/或,對網(wǎng)關(guān)嵌套,若具有多個輸入流的并行網(wǎng)關(guān)和具有多個輸出流的并行網(wǎng)關(guān)直接嵌套相連,則將這兩個并行網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的并行網(wǎng)關(guān);
若具有多個輸入流的排他事件網(wǎng)關(guān)和具有多個輸出流的排他事件網(wǎng)關(guān)直接嵌套相連,則將這兩個排他數(shù)據(jù)網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的排他數(shù)據(jù)網(wǎng)關(guān)。
更進一步,在編排流程中提取所有任務(wù)間的關(guān)系包括:順序關(guān)系,選擇關(guān)系,并發(fā)關(guān)系中的所述兩個任務(wù)間的唯一關(guān)系。
更進一步,分析任務(wù)間的依賴關(guān)系具體包括如下步驟:
5-1)分析任務(wù)間的正依賴,
5-2)分析任務(wù)間的反依賴,
5-3)分析任務(wù)間的輸出依賴,
5-4)分析任務(wù)間的控制依賴。
更進一步,根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖的步驟具體包括:
6-1)構(gòu)造節(jié)點。將編制流程中的每個任務(wù)構(gòu)造為一個節(jié)點;
6-2)構(gòu)造弧,若兩個任務(wù)間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間添加??;
6-3)標(biāo)識弧上的依賴類型,若所述兩個任務(wù)間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間的弧上添加對應(yīng)的標(biāo)記。
更進一步,對所述依賴圖進行預(yù)處理,根據(jù)簡化規(guī)則對依賴圖進行簡化處理:
7-1)簡化依賴性的語義,
7-2)消除冗余的傳遞數(shù)據(jù)依賴,
7-3)增加開始節(jié)點及對應(yīng)的弧和結(jié)束節(jié)點及相應(yīng)的弧。
更進一步,根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程具體包括:
將依賴圖中的除開始節(jié)點和結(jié)束節(jié)點外的節(jié)點轉(zhuǎn)換為編制流程中的任務(wù);
和/或,將依賴圖中的單一弧,且依賴類型為數(shù)據(jù)依賴,轉(zhuǎn)換為編制流程中的序列流;
和/或,將依賴圖中的開始節(jié)點轉(zhuǎn)換為編制流程中的開始事件;
和/或,將依賴圖中的結(jié)束節(jié)點轉(zhuǎn)換為編制流程中的結(jié)束事件;
和/或,將依賴圖中的分叉弧,且依賴類型均為數(shù)據(jù)依賴和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的并行分叉網(wǎng)關(guān);
和/或,將依賴圖中的分叉弧,且依賴類型均為控制依賴和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的獨占數(shù)據(jù)決策網(wǎng)關(guān);
和/或,將依賴圖中的匯聚弧,且依賴類型均為數(shù)據(jù)依賴和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的并行匯聚網(wǎng)關(guān);
和/或,將依賴圖中的匯聚弧,且依賴類型均為控制依賴和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的獨占數(shù)據(jù)合并網(wǎng)關(guān);
和/或,將依賴圖中的分叉弧,且依賴類型不同、沒有回弧和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為并行分叉網(wǎng)關(guān)和獨占數(shù)據(jù)決策網(wǎng)關(guān)直接嵌套相連,其中,并行分叉網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流;獨占數(shù)據(jù)決策網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流;
和/或,將依賴圖中的匯聚弧,且依賴類型不同和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為編制流程中的獨占數(shù)據(jù)合并網(wǎng)關(guān)和并行匯聚網(wǎng)關(guān)嵌套相連,其中,獨占數(shù)據(jù)合并網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流;并行匯聚網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流。
基于上述本發(fā)明提供了一種挖掘bpmn編制流程并行性的系統(tǒng),包括:
關(guān)系提取器,用以根據(jù)結(jié)構(gòu)特征從編制流程中提取所有任務(wù)間的關(guān)系,并構(gòu)造出任務(wù)關(guān)系矩陣;
依賴關(guān)系分析器,用以分析任務(wù)間的依賴關(guān)系,并構(gòu)造出依賴關(guān)系矩陣;
依賴圖構(gòu)造器,用以根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖;
轉(zhuǎn)化器,用以根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程。
更進一步,系統(tǒng)還包括:
預(yù)處理器,用以根據(jù)預(yù)處理規(guī)則將結(jié)構(gòu)不同但語義相同的編制流程轉(zhuǎn)換為結(jié)構(gòu)統(tǒng)一的編制流程;
以及,依賴圖簡化器,用以根據(jù)簡化規(guī)則對依賴圖進行簡化處理。
本發(fā)明的有益效果:
本發(fā)明的技術(shù)區(qū)別于現(xiàn)有技術(shù)(比如,文獻jint,wangj,yangy,etal.refactorbusinessprocessmodelswithmaximizedparallelism[j].ieeetransactionsonservicescomputing,2016,9(3):456-468和lit.anapproachtomodellingsoftwareevolutionprocesses[m],tsinghuauniversitypress,2008)的主要不同點在于:
原有技術(shù)方法文獻(文獻jint,wangj,yangy,etal.refactorbusinessprocessmodelswithmaximizedparallelism[j].ieeetransactionsonservicescomputing,2016)針對基于petri網(wǎng)描述的業(yè)務(wù)流程,從數(shù)據(jù)讀寫的角度,將原業(yè)務(wù)流程中存在順序關(guān)系、但不具有讀寫依賴操作的任務(wù)對,將其任務(wù)間的順序關(guān)系改變?yōu)椴l(fā)關(guān)系,并使用alpha算法對原業(yè)務(wù)流程進行重構(gòu)。
具體地,本發(fā)明與之的區(qū)別表現(xiàn)在以下方面:1)研究對象不同:文獻([jint,wangj,yangy,etal.refactorbusinessprocessmodelswithmaximizedparallelism[j].ieeetransactionsonservicescomputing,2016])的研究對象為petri網(wǎng),而本發(fā)明的研究對象為bpmn編制流程。與petri網(wǎng)相比,bpmn編制流程中的建模元素更加豐富,無法將該文獻提出的方法直接應(yīng)用于bpmn編制流程,以提高編制流程的效率。重構(gòu)業(yè)務(wù)流程的方法不同:文獻([jint,wangj,yangy,etal.refactorbusinessprocessmodelswithmaximizedparallelism[j].ieeetransactionsonservicescomputing,2016])使用alpha算法對petri網(wǎng)進行重構(gòu),而本發(fā)明使用依賴圖和轉(zhuǎn)換規(guī)則對bpmn業(yè)務(wù)流程進行重構(gòu)。
原有技術(shù)方法文獻([lit.anapproachtomodellingsoftwareevolutionprocesses[m],tsinghuauniversitypress,2008])針對基于petri網(wǎng)定義的軟件演化過程,從相關(guān)性的角度,將原軟件演化過程中存在順序關(guān)系、但不具相關(guān)關(guān)系的任務(wù)對,將其任務(wù)間的順序關(guān)系改變?yōu)椴l(fā)關(guān)系,并使用相關(guān)圖和轉(zhuǎn)換規(guī)則對原軟件演化過程進行重構(gòu)。本發(fā)明與之的區(qū)別表現(xiàn)在以下方面:
1)研究對象不同:文獻([lit.anapproachtomodellingsoftwareevolutionprocesses[m],tsinghuauniversitypress,2008])的研究對象為petri網(wǎng),而本發(fā)明的研究對象為bpmn編制流程。與petri網(wǎng)相比,bpmn編制流程中的建模元素更加豐富,無法將該文獻提出的方法直接應(yīng)用于bpmn編制流程,以提高編制流程的效率。
2)轉(zhuǎn)換規(guī)則不同:文獻([lit.anapproachtomodellingsoftwareevolutionprocesses[m],tsinghuauniversitypress,2008])提出了三條轉(zhuǎn)換規(guī)則用于將相關(guān)圖轉(zhuǎn)換為petri網(wǎng),本申請?zhí)岢隽耸畻l轉(zhuǎn)換規(guī)則用于將依賴圖轉(zhuǎn)換為bpmn編制流程。
3)分析任務(wù)間關(guān)系的方式不同:文獻([lit.anapproachtomodellingsoftwareevolutionprocesses[m],tsinghuauniversitypress,2008])使用人工方式對原軟件演化過程中任務(wù)間的相關(guān)性進行分析,而本發(fā)明使用結(jié)構(gòu)特征,通過依賴關(guān)系分析器自動提取原bpmn編制流程中的任務(wù)間的依賴關(guān)系。
此外,本發(fā)明技術(shù)將在提高業(yè)務(wù)流程模型的質(zhì)量和效率方面具有廣闊的應(yīng)用背景。
附圖說明
圖1是本發(fā)明一實施例中的方法流程示意圖;
圖2是本發(fā)明一實施例中的系統(tǒng)結(jié)構(gòu)示意圖;
圖3是本發(fā)明一優(yōu)選實施例中的系統(tǒng)結(jié)構(gòu)示意圖。
圖4(a)-圖4(d)是本發(fā)明中的預(yù)處理規(guī)則示意圖;
圖5(a)-圖5(d)是本發(fā)明中順序關(guān)系和選擇關(guān)系的特征結(jié)構(gòu)示意圖;
圖6(a)-圖6(j)是本發(fā)明中的轉(zhuǎn)化規(guī)則示意圖。
具體實施方式
現(xiàn)在將參考一些示例實施例描述本公開的原理??梢岳斫猓@些實施例僅出于說明并且?guī)椭绢I(lǐng)域的技術(shù)人員理解和實施例本公開的目的而描述,而非建議對本公開的范圍的任何限制。在此描述的本公開的內(nèi)容可以以下文描述的方式之外的各種方式實施。
如本文中所述,術(shù)語“包括”及其各種變體可以被理解為開放式術(shù)語,其意味著“包括但不限于”。術(shù)語“基于”可以被理解為“至少部分地基于”。術(shù)語“一個實施例”可以被理解為“至少一個實施例”。術(shù)語“另一實施例”可以被理解為“至少一個其它實施例”。
圖1是本發(fā)明一實施例中的方法流程示意圖,本實施例中的一種挖掘bpmn編制流程并行性的方法,包括如下步驟:步驟s100根據(jù)結(jié)構(gòu)特征從編制流程中提取任務(wù)間的基本關(guān)系,并構(gòu)造出基本關(guān)系矩陣;步驟s101分析任務(wù)間的依賴關(guān)系,并構(gòu)造出依賴關(guān)系矩陣;步驟s102根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖;步驟s103根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程。
在步驟s103中本實施例提出了十條轉(zhuǎn)換規(guī)則用于將依賴圖轉(zhuǎn)換為bpmn編制流程。
在步驟s100中本實施例使用結(jié)構(gòu)特征,通過依賴關(guān)系分析器自動提取原bpmn編制流程中的任務(wù)間的依賴關(guān)系。
與現(xiàn)有技術(shù)中使用alpha算法對petri網(wǎng)進行重構(gòu)所不同,在本實施例中使用依賴圖和轉(zhuǎn)換規(guī)則對bpmn業(yè)務(wù)流程進行重構(gòu)。
作為本實施例中的優(yōu)選,本實施例中的方法還包括:預(yù)處理編制流程的步驟:根據(jù)預(yù)處理規(guī)則將結(jié)構(gòu)不同但語義相同的編制流程轉(zhuǎn)換為結(jié)構(gòu)統(tǒng)一的編制流程。所述預(yù)處理規(guī)則至少包括:對于開始事件,若開始事件具有多個輸出流,則通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的開始事件;
和/或,對結(jié)束事件,若結(jié)束事件有多個輸入流,可通過獨占事件合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的結(jié)束事件;和/或,對任務(wù),若任務(wù)具有多個輸入流則通過排他數(shù)據(jù)合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的任務(wù);
若任務(wù)具有多個輸出流,則通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的任務(wù)。
和/或,對網(wǎng)關(guān)嵌套,若具有多個輸入流的并行網(wǎng)關(guān)和具有多個輸出流的并行網(wǎng)關(guān)直接嵌套相連,則將這兩個并行網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的并行網(wǎng)關(guān);
若具有多個輸入流的排他事件網(wǎng)關(guān)和具有多個輸出流的排他事件網(wǎng)關(guān)直接嵌套相連,則將這兩個排他數(shù)據(jù)網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的排他數(shù)據(jù)網(wǎng)關(guān)。
上述預(yù)處理過程包括但不限于如下的事件處理:
1)預(yù)處理開始事件
2)預(yù)處理結(jié)束事件
3)預(yù)處理任務(wù)
4)預(yù)處理網(wǎng)關(guān)嵌套
具體預(yù)處理規(guī)則,如圖4(a)-圖4(d)所示。
作為本實施例中的優(yōu)選,在編排流程中提取任務(wù)間的基本關(guān)系包括:順序關(guān)系,選擇關(guān)系,并發(fā)關(guān)系。依賴關(guān)系矩陣存在四種依賴關(guān)系:正依賴、反依賴、輸出依賴和控制依賴。若該編制流程中兩個任務(wù)間存在順序關(guān)系,但不存在正依賴或反依賴或輸出依賴,則我們認為這兩個任務(wù)間并不真正存在順序關(guān)系,通過后續(xù)步驟可將其重構(gòu)為并行結(jié)構(gòu)。
上述過程如下:1)提取任務(wù)間的順序關(guān)系。在編排流程中,若兩個任務(wù)(t1和t2)間是順序關(guān)系,存在兩種情況:第一種兩個任務(wù)緊鄰相連,如圖5(a)中所示,其結(jié)構(gòu)特征為:t1·={t2}∧·t2={t1}∧(t1,t2)∈sf。第二種,兩個任務(wù)間通過并行網(wǎng)關(guān)相連,如圖5(b)所示,其結(jié)構(gòu)特征為:(t1,g),(g,t2)∈sf∧t1·={g}∧·t2={g}∧g∈gpf∪gpj。2)提取任務(wù)間的選擇關(guān)系。在編排流程中,若兩個任務(wù)(t1和t2)間是選擇關(guān)系,存在兩種情況:第一種這兩個任務(wù)(t1和t2)通過排他數(shù)據(jù)網(wǎng)關(guān)相連,如圖5(c)中所示,其結(jié)構(gòu)特征為:(t1,g),(g,t2)∈sf∧t1·={g}∧·t2={g}∧g∈gxd∪gdm。第二種,兩個任務(wù)間通過并行數(shù)據(jù)網(wǎng)關(guān)和排他網(wǎng)關(guān)相連,如圖5(d)所示,其結(jié)構(gòu)特征為:(t1,g1),(g1,g2),(g2,t2)∈sf∧t1·={g1}∧·t2={g2}∧g1∈gpf∪gpj∧g2∈gxd∪gdm。在編排流程中,由于任務(wù)間的關(guān)系只有三種,因此,如果兩個任務(wù)間的關(guān)系不是順序關(guān)系,也不是選擇關(guān)系,那么它們間的關(guān)系一定是并發(fā)關(guān)系。
作為本實施例中的優(yōu)選,分析任務(wù)間的依賴關(guān)系具體包括如下步驟:
5-1)分析任務(wù)間的正依賴,
5-2)分析任務(wù)間的反依賴,
5-3)分析任務(wù)間的輸出依賴,
5-4)分析任務(wù)間的控制依賴。
所述步驟3由依賴關(guān)系分析器實現(xiàn),任給任務(wù)t1,t2,數(shù)據(jù)網(wǎng)關(guān)g,其過程如下:
1)分析任務(wù)間的正依賴。若
2)分析任務(wù)間的反依賴。若
3)分析任務(wù)間的輸出依賴。若
4)分析任務(wù)間的控制依賴。若·t1∩t2·={g}∧g∈數(shù)據(jù)網(wǎng)關(guān),則任務(wù)t1和t2間滿足控制依賴。其中,→為順序關(guān)系,
更進一步,根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖的步驟具體包括:
6-1)構(gòu)造節(jié)點。將編制流程中的每個任務(wù)構(gòu)造為一個節(jié)點;
6-2)構(gòu)造弧,若兩個任務(wù)間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間添加?。?/p>
6-3)標(biāo)識弧上的依賴類型,若所述兩個任務(wù)間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間的弧上添加對應(yīng)的標(biāo)記。
上述過程具體如下:1)構(gòu)造節(jié)點。將編制流程中的每個任務(wù)構(gòu)造為一個節(jié)點。2)構(gòu)造弧。若任務(wù)t1和t2間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間添加弧。3)標(biāo)識弧上的依賴類型。若任務(wù)t1和t2間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間的弧上添加對應(yīng)的標(biāo)記:δ、
更進一步,對所述依賴圖進行預(yù)處理,根據(jù)簡化規(guī)則對依賴圖進行簡化處理:
7-1)簡化依賴性的語義,依賴圖中存在三種類型的數(shù)據(jù)依賴:正依賴、反依賴和輸出依賴。在將依賴圖轉(zhuǎn)換為編制流程時,只要任兩個任務(wù)間存在任何一種數(shù)據(jù)依賴,則這兩個任務(wù)不能并發(fā)執(zhí)行。因此,對轉(zhuǎn)換編制流程而言,依賴圖中的正依賴類型、反依賴類型和輸出依賴類型的語義,并無任何語義區(qū)別,我們可以將其全部統(tǒng)一為數(shù)據(jù)依賴δd。該步的處理過程:依賴圖中每條弧的依賴類型改為數(shù)據(jù)依賴δd即可。
7-2)消除冗余的傳遞數(shù)據(jù)依賴,在依賴圖中,傳遞的數(shù)據(jù)依賴可由依賴關(guān)系描述,因而該關(guān)系是多余的。該步的處理過程:將依賴圖中存在傳遞的數(shù)據(jù)依賴對應(yīng)的弧刪除即可。
7-3)增加開始節(jié)點及對應(yīng)的弧和結(jié)束節(jié)點及相應(yīng)的弧。增加的開始節(jié)點將來會轉(zhuǎn)換為編制流程中的開始事件,增加的結(jié)束節(jié)點將來會轉(zhuǎn)換為編制流程中的結(jié)束事件。該步的處理過程:在依賴圖中,在入度為0的節(jié)點前添加開始節(jié)點s及相應(yīng)的弧,弧的依賴類型設(shè)置為數(shù)據(jù)依賴;在出度為0的節(jié)點后添加結(jié)束節(jié)點e及相應(yīng)的弧,弧的依賴類型設(shè)置為數(shù)據(jù)依賴。
作為本實施例中的優(yōu)選,根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程具體包括:
如圖6(a)所示,將依賴圖中的除開始節(jié)點和結(jié)束節(jié)點外的節(jié)點轉(zhuǎn)換為編制流程中的任務(wù);
和/或,如圖6(b)所示,將依賴圖中的單一弧,且依賴類型為數(shù)據(jù)依賴,轉(zhuǎn)換為編制流程中的序列流;
和/或,如圖6(c)所示,將依賴圖中的開始節(jié)點轉(zhuǎn)換為編制流程中的開始事件;
和/或,如圖6(d)所示,將依賴圖中的結(jié)束節(jié)點轉(zhuǎn)換為編制流程中的結(jié)束事件;
和/或,如圖6(e)所示,將依賴圖中的分叉弧,且依賴類型均為數(shù)據(jù)依賴和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的并行分叉網(wǎng)關(guān);
和/或,如圖6(f)所示,將依賴圖中的分叉弧,且依賴類型均為控制依賴和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的獨占數(shù)據(jù)決策網(wǎng)關(guān);
和/或,如圖6(g)所示,將依賴圖中的匯聚弧,且依賴類型均為數(shù)據(jù)依賴和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的并行匯聚網(wǎng)關(guān);
和/或,如圖6(h)所示,將依賴圖中的匯聚弧,且依賴類型均為控制依賴和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的獨占數(shù)據(jù)合并網(wǎng)關(guān);
和/或,如圖6(i)所示,將依賴圖中的分叉弧,且依賴類型不同、沒有回弧和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為并行分叉網(wǎng)關(guān)和獨占數(shù)據(jù)決策網(wǎng)關(guān)直接嵌套相連,其中,并行分叉網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流;獨占數(shù)據(jù)決策網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流;
和/或,如圖6(j)所示,將依賴圖中的匯聚弧,且依賴類型不同和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為編制流程中的獨占數(shù)據(jù)合并網(wǎng)關(guān)和并行匯聚網(wǎng)關(guān)嵌套相連,其中,獨占數(shù)據(jù)合并網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流;并行匯聚網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流。
圖2是本發(fā)明一實施例中的系統(tǒng)結(jié)構(gòu)示意圖,本實施例中的一種挖掘bpmn編制流程并行性的系統(tǒng),,包括:
關(guān)系提取器1,用以根據(jù)結(jié)構(gòu)特征從編制流程中提取任務(wù)間的基本關(guān)系,并構(gòu)造出基本關(guān)系矩陣;所述關(guān)系提取器1,其過程如下:1)提取任務(wù)間的順序關(guān)系。在編排流程中,若兩個任務(wù)(t1和t2)間是順序關(guān)系,存在兩種情況:第一種兩個任務(wù)緊鄰相連,其結(jié)構(gòu)特征為:t1·={t2}∧·t2={t1}∧(t1,t2)∈sf。第二種,兩個任務(wù)間通過并行網(wǎng)關(guān)相連,其結(jié)構(gòu)特征為:(t1,g),(g,t2)∈sf∧t1·={g}∧·t2={g}∧g∈gpf∪gpj。2)提取任務(wù)間的選擇關(guān)系。在編排流程中,若兩個任務(wù)(t1和t2)間是選擇關(guān)系,存在兩種情況:第一種這兩個任務(wù)(t1和t2)通過排他數(shù)據(jù)網(wǎng)關(guān)相連,其結(jié)構(gòu)特征為:(t1,g),(g,t2)∈sf∧t1·={g}∧·t2={g}∧g∈gxd∪gdm。第二種,兩個任務(wù)間通過并行數(shù)據(jù)網(wǎng)關(guān)和排他網(wǎng)關(guān)相連,其結(jié)構(gòu)特征為:(t1,g1),(g1,g2),(g2,t2)∈sf∧t1·={g1}∧·t2={g2}∧g1∈gpf∪gpj∧g2∈gxd∪gdm。在編排流程中,由于任務(wù)間的關(guān)系只有三種,因此,如果兩個任務(wù)間的關(guān)系不是順序關(guān)系,也不是選擇關(guān)系,那么它們間的關(guān)系一定是并發(fā)關(guān)系。
依賴關(guān)系分析器2,用以分析任務(wù)間的依賴關(guān)系,并構(gòu)造出依賴關(guān)系矩陣;
由關(guān)系分析器2實現(xiàn),任給任務(wù)t1,t2,數(shù)據(jù)網(wǎng)關(guān)g,其過程如下:1、分析任務(wù)間的正依賴。若
依賴圖構(gòu)造器3,用以根據(jù)所述依賴關(guān)系矩陣構(gòu)造出依賴圖;所述依賴圖構(gòu)造器3,其過程如下:1)構(gòu)造節(jié)點。將編制流程中的每個任務(wù)構(gòu)造為一個節(jié)點。2)構(gòu)造弧。若任務(wù)t1和t2間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間添加弧。3)標(biāo)識弧上的依賴類型。若任務(wù)t1和t2間滿足正依賴或反依賴或輸出依賴或控制依賴,則在該兩個任務(wù)對應(yīng)的節(jié)點間的弧上添加對應(yīng)的標(biāo)記:δ、
轉(zhuǎn)化器4,用以根據(jù)轉(zhuǎn)換規(guī)則將所述依賴圖轉(zhuǎn)換得到編制流程,至少包括如下10個規(guī)則。
1)規(guī)則一用于將依賴圖中的除開始節(jié)點和結(jié)束節(jié)點外的節(jié)點轉(zhuǎn)換為編制流程中的任務(wù)。
2)規(guī)則二用于將依賴圖中的單一弧,且依賴類型為δd,轉(zhuǎn)換為編制流程中的序列流。
3)規(guī)則三用于將依賴圖中的開始節(jié)點轉(zhuǎn)換為編制流程中的開始事件;
4)規(guī)則四用于將依賴圖中的結(jié)束節(jié)點轉(zhuǎn)換為編制流程中的結(jié)束事件
5)規(guī)則五用于將依賴圖中的分叉弧,且依賴類型均為δd和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的并行分叉網(wǎng)關(guān)。
6)規(guī)則六用于將依賴圖中的分叉弧,且依賴類型均為δc和不存在回弧,轉(zhuǎn)換為編制流程中帶單輸入序列流和多輸出序列流的獨占數(shù)據(jù)決策網(wǎng)關(guān)。
7)規(guī)則七用于將依賴圖中的匯聚弧,且依賴類型均為δd和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的并行匯聚網(wǎng)關(guān)。
(8)規(guī)則八用于將依賴圖中的匯聚弧,且依賴類型均為δc和不存在回弧,轉(zhuǎn)換為編制流程中的帶多輸入序列流和單輸出序列流的獨占數(shù)據(jù)合并網(wǎng)關(guān)。
(9)規(guī)則九用于將依賴圖中的分叉弧,且依賴類型不同、沒有回弧和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為并行分叉網(wǎng)關(guān)和獨占數(shù)據(jù)決策網(wǎng)關(guān)直接嵌套相連。其中,并行分叉網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流;獨占數(shù)據(jù)決策網(wǎng)關(guān)帶1個輸入序列流和2個輸出序列流
(10)規(guī)則十用于將依賴圖中的匯聚弧,且依賴類型不同和控制依賴弧的個數(shù)>=2,轉(zhuǎn)換為編制流程中的獨占數(shù)據(jù)合并網(wǎng)關(guān)和并行匯聚網(wǎng)關(guān)嵌套相連。其中,獨占數(shù)據(jù)合并網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流;并行匯聚網(wǎng)關(guān)帶2個輸入序列流和1個輸出序列流。
圖3是本發(fā)明一優(yōu)選實施例中的系統(tǒng)結(jié)構(gòu)示意圖,作為本實施例中的優(yōu)選,上述的系統(tǒng)還包括:
預(yù)處理器5,還用以根據(jù)預(yù)處理規(guī)則將結(jié)構(gòu)不同但語義相同的編制流程轉(zhuǎn)換為結(jié)構(gòu)統(tǒng)一的編制流程;預(yù)處理器5其過程如下:1)預(yù)處理開始事件。若開始事件具有多個輸出流,可通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的開始事件。2)預(yù)處理結(jié)束事件。若結(jié)束事件有多個輸入流,可通過獨占數(shù)據(jù)(事件)合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的結(jié)束事件。3)預(yù)處理任務(wù)。若任務(wù)具有多個輸入流可通過排他數(shù)據(jù)合并網(wǎng)關(guān)與多個輸入流相連,使之轉(zhuǎn)換成一個具有一個輸入流的任務(wù);若任務(wù)具有多個輸出流,可通過并行分叉網(wǎng)關(guān)與多個輸出流相連,使之轉(zhuǎn)換成一個具有一個輸出流的任務(wù)。4)預(yù)處理網(wǎng)關(guān)嵌套。若具有多個輸入流的并行網(wǎng)關(guān)和具有多個輸出流的并行網(wǎng)關(guān)直接嵌套相連,可將這兩個并行網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的并行網(wǎng)關(guān);若具有多個輸入流的排他數(shù)據(jù)網(wǎng)關(guān)和具有多個輸出流的排他數(shù)據(jù)網(wǎng)關(guān)直接嵌套相連,可將這兩個排他數(shù)據(jù)網(wǎng)關(guān)轉(zhuǎn)換為具有多個輸入流和多個輸出的排他數(shù)據(jù)網(wǎng)關(guān)。
以及,依賴圖簡化器6,用以根據(jù)簡化規(guī)則對依賴圖進行簡化處理,所述圖簡化器6其過程如下:1)簡化依賴性的語義。依賴圖中存在三種類型的數(shù)據(jù)依賴:正依賴、反依賴和輸出依賴。在將依賴圖轉(zhuǎn)換為編制流程時,只要任兩個任務(wù)間存在任何一種數(shù)據(jù)依賴,則這兩個任務(wù)不能并發(fā)執(zhí)行。因此,對轉(zhuǎn)換編制流程而言,依賴圖中的正依賴類型、反依賴類型和輸出依賴類型的語義,并無任何語義區(qū)別,我們可以將其全部統(tǒng)一為數(shù)據(jù)依賴δd。該步的處理過程:依賴圖中每條弧的依賴類型改為數(shù)據(jù)依賴δd即可。2)消除冗余的傳遞數(shù)據(jù)依賴。在依賴圖中,傳遞的數(shù)據(jù)依賴可由依賴關(guān)系描述,因而該關(guān)系是多余的。該步的處理過程:將依賴圖中存在傳遞的數(shù)據(jù)依賴對應(yīng)的弧刪除即可。3)增加開始節(jié)點及對應(yīng)的弧和結(jié)束節(jié)點及相應(yīng)的弧。增加的開始節(jié)點將來會轉(zhuǎn)換為編制流程中的開始事件,增加的結(jié)束節(jié)點將來會轉(zhuǎn)換為編制流程中的結(jié)束事件。該步的處理過程:在依賴圖中,在入度為0的節(jié)點前添加開始節(jié)點s及相應(yīng)的弧,弧的依賴類型設(shè)置為數(shù)據(jù)依賴;在出度為0的節(jié)點后添加結(jié)束節(jié)點e及相應(yīng)的弧,弧的依賴類型設(shè)置為數(shù)據(jù)依賴。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
總體而言,本公開的各種實施例可以以硬件或?qū)S秒娐贰④浖?、邏輯或其任意組合實施。一些方面可以以硬件實施,而其它一些方面可以以固件或軟件實施,該固件或軟件可以由控制器、微處理器或其它計算設(shè)備執(zhí)行。雖然本公開的各種方面被示出和描述為框圖、流程圖或使用其它一些繪圖表示,但是可以理解本文描述的框、設(shè)備、系統(tǒng)、技術(shù)或方法可以以非限制性的方式以硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或其它計算設(shè)備或其一些組合實施。
此外,雖然操作以特定順序描述,但是這不應(yīng)被理解為要求這類操作以所示的順序執(zhí)行或是以順序序列執(zhí)行,或是要求所有所示的操作被執(zhí)行以實現(xiàn)期望結(jié)果。在一些情形下,多任務(wù)或并行處理可以是有利的。類似地,雖然若干具體實現(xiàn)方式的細節(jié)在上面的討論中被包含,但是這些不應(yīng)被解釋為對本公開的范圍的任何限制,而是特征的描述僅是針對具體實施例。在分離的一些實施例中描述的某些特征也可以在單個實施例中組合地執(zhí)行。相反對,在單個實施例中描述的各種特征也可以在多個實施例中分離地實施或是以任何合適的子組合的方式實施。