亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法

文檔序號:6575559閱讀:314來源:國知局

專利名稱::業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計(jì)算機(jī)軟件建模領(lǐng)域,特別涉及業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法。
背景技術(shù)
:業(yè)務(wù)流程是業(yè)務(wù)需求的一種表現(xiàn)形式,它從用戶的需求開始,在用戶需求得到滿足后結(jié)束。業(yè)務(wù)流程的概念最早出現(xiàn)在90年代早期,它產(chǎn)生的動(dòng)機(jī)來源于對流程重新設(shè)計(jì)以適應(yīng)新的變化從而提升企業(yè)的竟?fàn)幜?,作為對工作流的擴(kuò)展,業(yè)務(wù)流程管理則更強(qiáng)調(diào)業(yè)務(wù)流程的重設(shè)計(jì)。業(yè)務(wù)流程與工作流都能使業(yè)務(wù)流程自動(dòng)化和協(xié)同工作并提高工作效率。隨著信息技術(shù)的進(jìn)步,特定的業(yè)務(wù)功能不再由單一的企業(yè)或者組織來實(shí)現(xiàn),而是通過現(xiàn)有業(yè)務(wù)流程之間的交互和協(xié)同來完成,這種開發(fā)模式能夠極大縮短開發(fā)時(shí)間、節(jié)約開發(fā)成本。業(yè)務(wù)流程可以采用業(yè)務(wù)流程建模標(biāo)記(BusinessProcessModelNotation,BPMN)來建模。BPMN是由OMG組織制定的業(yè)務(wù)流程建模的標(biāo)準(zhǔn),它由一系列用來構(gòu)建業(yè)務(wù)流程的標(biāo)準(zhǔn)圖標(biāo)組成,且不與任何一種實(shí)現(xiàn)技術(shù)緊密耦合。BPMN不僅能夠?qū)崿F(xiàn)單個(gè)業(yè)務(wù)流程建模,而且能夠?qū)崿F(xiàn)多流程和它們之間交互的建模。BPMN是首個(gè)用于跨組織業(yè)務(wù)流程建模的開放標(biāo)準(zhǔn)的業(yè)務(wù)流程建模語言,它能夠很容易地被高層業(yè)務(wù)人員閱讀和理解并且便于不同企業(yè)之間的交流。雖然采用BPMN進(jìn)行業(yè)務(wù)流程建模存在很多好處,但也存在很多不足,其中很重要的一點(diǎn)是采用BPMN進(jìn)行多業(yè)務(wù)流程間交互建模時(shí),容易導(dǎo)致業(yè)務(wù)流程間交互的不匹配。所謂業(yè)務(wù)流程間交互的不匹配是指業(yè)務(wù)流程無法正確完成它們之間的交互,也就是存在不匹配的交互。業(yè)務(wù)流程存在不匹配的交互的深層次原因在于業(yè)務(wù)流程所表達(dá)的業(yè)務(wù)需求之間存在矛盾。從技術(shù)角度來說,造成業(yè)務(wù)流程交互不匹配的原因可以分為三種交互語法錯(cuò)誤、靜態(tài)結(jié)構(gòu)錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤。目前已經(jīng)存在很多致力于發(fā)現(xiàn)業(yè)務(wù)流程間交互的不匹配的方法。Petri網(wǎng)和有限狀態(tài)自動(dòng)機(jī)等形式化方法都可用來驗(yàn)證流程間的匹配性。使用Petri5網(wǎng)的方法是將每一個(gè)業(yè)務(wù)流程轉(zhuǎn)換為一個(gè)Petri網(wǎng),然后將流程間的交互轉(zhuǎn)化為庫所(place),最后將多流程之間的交互不匹配的發(fā)現(xiàn)問題轉(zhuǎn)換為一個(gè)多流程合并后的大流程內(nèi)部的正確性問題。有限狀態(tài)自動(dòng)機(jī)的方法將流程間的一次交互當(dāng)作總是能夠正確完成的,但是在流程的運(yùn)行時(shí)可能出現(xiàn)一次交互的發(fā)送消息活動(dòng)成功,但是接收消息活動(dòng)因?yàn)榱鞒痰倪\(yùn)行上下文環(huán)境沒有準(zhǔn)備好導(dǎo)致這次交互失敗的情況??傊?,現(xiàn)有技術(shù)中的方法都各自存在一些不足,列舉如下首先,它們發(fā)現(xiàn)業(yè)務(wù)流程間交互不匹配的過程繁瑣、耗時(shí);其次,這些方法并沒有考慮流程運(yùn)行時(shí)的特征,而這會(huì)造成已經(jīng)驗(yàn)證相互匹配業(yè)務(wù)流程在運(yùn)行時(shí)發(fā)生交互的不匹配;最后,現(xiàn)有的方法不能準(zhǔn)確地給出哪些交互造成了流程間交互的不匹配。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有的業(yè)務(wù)流程間不匹配交互發(fā)現(xiàn)方法過程繁瑣、耗時(shí),不能發(fā)現(xiàn)業(yè)務(wù)流程在運(yùn)行時(shí)的不匹配交互以及不能準(zhǔn)確指出哪些交互造成了流程間交互的不匹配等缺陷,從而提供一種簡便、高效、功能全面的不匹配交互的發(fā)現(xiàn)方法。本發(fā)明提供了一種業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,包括步驟1)、從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;步驟2)、根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,所述交互對間關(guān)系集合包括所述交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;所述活動(dòng)間的關(guān)系包括順序前、順序后、并行、完全互斥以及部分互斥;步驟3)、根據(jù)所述交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。上述技術(shù)方案中,在所述的步驟l)中,所選取的業(yè)務(wù)流程是對不參與業(yè)務(wù)流程間交互的活動(dòng)進(jìn)行約簡后的業(yè)務(wù)流程。上述技術(shù)方案中,所述的所選取的業(yè)務(wù)流程中不參與業(yè)務(wù)流程間交互的活動(dòng)包括消息的任務(wù)類型的活動(dòng);b、中間事件類型的活動(dòng);c、內(nèi)容為空的網(wǎng)關(guān)對。上述技術(shù)方案中,還包括步驟4)、根據(jù)所述的完整矛盾交互集合計(jì)算最小消解集合;所述最小消解集合能夠推導(dǎo)出所述的完整矛盾交互集合,且所包含的矛盾交互對的個(gè)數(shù)最小。上述技術(shù)方案中,所述的步驟4)包括步驟4-l)、初始化最小消解集合為空;步驟4-2)、選擇矛盾交互集合中的一個(gè)交互對(z7,/2);步驟4-3)、若存在交互;c,使得/7與x之間的關(guān)系同時(shí)為順序前或同時(shí)為順序后或同時(shí)為并行,并且交互對(/2,x)已經(jīng)存在于最小消解集合中,則交互對不加入所述的最小消解集合,否則加入所述最小消解集合;步驟4-4)、從步驟4-2)開始重復(fù)執(zhí)行,直至遍歷完整矛盾交互集合中的所有交互對。上述技術(shù)方案中,還包括步驟5)、合并兩個(gè)業(yè)務(wù)流程,然后將合并后的業(yè)務(wù)流程與其它業(yè)務(wù)流程作為所選取的兩個(gè)業(yè)務(wù)流程,重新執(zhí)行步驟1)后的操作,直至不再有未經(jīng)處理的業(yè)務(wù)流程,從而實(shí)現(xiàn)多個(gè)業(yè)務(wù)流程間不匹配交互的發(fā)現(xiàn)。上述技術(shù)方案中,在所述的步驟5)中,所述的合并兩個(gè)業(yè)務(wù)流程包括將已經(jīng)得到完整矛盾交互集合的兩個(gè)業(yè)務(wù)流程進(jìn)行合并。上述技術(shù)方案中,所述的將已經(jīng)得到完整矛盾交互集合的兩個(gè)業(yè)務(wù)流程進(jìn)行合并包括步驟5-1)、選擇其中的一個(gè)作為目標(biāo)流程,另外一個(gè)業(yè)務(wù)流程作為輸入流程;步驟5-2)、將所述輸入流程中除了開始活動(dòng)、結(jié)束活動(dòng)以及交互對方已經(jīng)存在于所述目標(biāo)流程中的活動(dòng)外的每一個(gè)活動(dòng)都被加入所述目標(biāo)流程中;步驟5-3)、將所述輸入流程中除了連接開始活動(dòng)和結(jié)束活動(dòng)的遷移以外的每一個(gè)遷移添加到所述目標(biāo)流程中,如果新加入的遷移所連接的活動(dòng)沒有加入到所述目標(biāo)流程中,則將該遷移連接原活動(dòng)的交互對方。上述技術(shù)方案中,在所述的步驟3)中,所述的存在矛盾的交互對間關(guān)系包括二順序前"和"完全互斥"、"順序后"和"完全互斥,,、二順序前,,和"部分互斥"、"順序后"和"部分互斥"、"并^f亍"和"部分互斥"、"順序前"和"順序后"、"完全互斥"和"并行"。上述技術(shù)方案中,當(dāng)交互對間關(guān)系為下列之一時(shí),所述交互對發(fā)生"死鎖,,:"順序前"和"完全互斥"、"順序后"和"完全互斥,,、二順序前"和"部分互斥"、"順序后"和"部分互斥"、"并行,,和"部分互斥"、"順序前"和"順序后";當(dāng)交互對間關(guān)系為"完全互斥"和"并行,,時(shí),所述交互對發(fā)生"缺乏同步"。本發(fā)明還提供了一種業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,包括業(yè)務(wù)流程選擇模塊、交互對間關(guān)系集合生成模塊、完整矛盾交互集合生成模塊;其中,所述的業(yè)務(wù)流程選擇模塊用于從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;所述的交互對間關(guān)系集合生成模塊用于根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,所述交互對間關(guān)系集合包括所述交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;所述活動(dòng)間的關(guān)系包括順序前、順序后、并行、完全互斥以及部分互斥;所述的完整矛盾交互集合生成模塊用于根據(jù)所述交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。上述技術(shù)方案中,還包括業(yè)務(wù)流程約筒模塊,該模塊用于對不參與業(yè)務(wù)流程間交互的活動(dòng)進(jìn)行約簡。上述技術(shù)方案中,還包括最小消解集合計(jì)算模塊;該模塊用于根據(jù)所述的完整矛盾交互集合計(jì)算最小消解集合;所述最小消解集合能夠推導(dǎo)出所述的完整矛盾交互集合,且所包含的矛盾交互對的個(gè)數(shù)最小。上述技術(shù)方案中,還包括業(yè)務(wù)流程合并模塊;該模塊用于合并兩個(gè)業(yè)務(wù)流程。本發(fā)明的優(yōu)點(diǎn)在于1、本發(fā)明具有快速、高效、實(shí)現(xiàn)簡單的優(yōu)點(diǎn)。2、本發(fā)明能找出不同類型的不匹配的交互。3、本發(fā)明能夠準(zhǔn)確地找出哪些交互造成了流程間交互的不匹配。圖1為本發(fā)明的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法的流程圖2為業(yè)務(wù)流程內(nèi)活動(dòng)間五種控制流關(guān)系的示意圖3為業(yè)務(wù)流程中存在矛盾的交互對的一個(gè)范例;圖4為死鎖現(xiàn)象和缺乏同步現(xiàn)象的示例圖5為在業(yè)務(wù)流程中計(jì)算最小消解集合的一個(gè)范例;圖6為合并業(yè)務(wù)流程的一個(gè)范例。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明進(jìn)行說明。在對本發(fā)明的方法進(jìn)行詳細(xì)說明前,首先對本發(fā)明方法中所涉及的一些概念進(jìn)行說明?;顒?dòng)業(yè)務(wù)流程建模中不可再分的最小的工作單元,例如一段自動(dòng)運(yùn)行的程序。網(wǎng)關(guān)對成對出現(xiàn)以實(shí)現(xiàn)活動(dòng)執(zhí)行路徑的分叉(split)及合并(join),根據(jù)活動(dòng)執(zhí)行路徑是否并發(fā),網(wǎng)關(guān)對可以分為互斥網(wǎng)關(guān)對和并行網(wǎng)關(guān)對。例如,圖2(c)、圖2(d)中在活動(dòng)a、b兩端的、用于表示分支的開始和結(jié)束的棱形就是所述的網(wǎng)關(guān)對,其中圖2(c)中的網(wǎng)關(guān)對為并行網(wǎng)關(guān)對,而圖2(d)中的網(wǎng)關(guān)對為互斥網(wǎng)關(guān)對。交互任意兩個(gè)業(yè)務(wù)流程間一次消息的傳遞被稱為業(yè)務(wù)流程間的一次交互,可以表示為&,其中的fl、6分別屬于不同的業(yè)務(wù)流程。完整矛盾交互集合兩個(gè)業(yè)務(wù)流程之間的交互集合由它們之間所有的交互組成,它們之間的完整矛盾交互集合包含所有相互矛盾的交互對,并且是它們之間交互集合笛卡爾積的子集。最小消解集合通過消除完整矛盾交互集合中的部分矛盾的交互對就能消除業(yè)務(wù)流程間的交互不匹配問題,這部分矛盾交互對構(gòu)成了最小消解集合。在對本發(fā)明中所涉及的相關(guān)概念做上述說明的基礎(chǔ)上,下面對本發(fā)明的具體實(shí)現(xiàn)過程進(jìn)行說明。本發(fā)明所要做的是在相互交互的多個(gè)業(yè)務(wù)流程中找出不匹配的交互。因此,本發(fā)明所要處理的對象是具有關(guān)聯(lián)關(guān)系的多個(gè)業(yè)務(wù)流程。所述的多個(gè)業(yè)務(wù)流程可以用
背景技術(shù)
中所提到的BPMN建模,也可以采用其他的流程建模語言建模。一個(gè)包含多個(gè)業(yè)務(wù)流程和它們之間消息傳遞的BPMN模型用二元組表示如下/ocA:age=r/rac^s^as,/w/era"/oraJ其中表示業(yè)務(wù)流程的集合,z'"terac"o似表示整個(gè)才莫型的交互的集合。業(yè)務(wù)流程可以進(jìn)一步表示為/race515^〖5"toW,£W,ac"'vWes,ga/e而j^s加,'"'ow5/其中,ac"v///^表示活動(dòng)集合,表示活動(dòng)之間遷移的集合,5VaW表示流程的開始活動(dòng),£m/表示流程的結(jié)束活動(dòng)。在得到具有關(guān)聯(lián)關(guān)系的多個(gè)業(yè)務(wù)流程的相關(guān)信息后,就可以通過本發(fā)明的方法找出其中不匹配的交互。由于在兩個(gè)業(yè)務(wù)流程中查找不匹配的交互是基礎(chǔ)的操作,因此,首先以兩個(gè)業(yè)務(wù)流程為例,參考圖1,對本發(fā)明方法的實(shí)現(xiàn)過程進(jìn)行說明。從具有關(guān)聯(lián)關(guān)系的多個(gè)業(yè)務(wù)流程中任意選取兩個(gè)業(yè)務(wù)流程,分別用0和戶表示。一般來說,業(yè)務(wù)流程中與交互有關(guān)的活動(dòng)只占業(yè)務(wù)流程的一部分,業(yè)務(wù)流程中的其它活動(dòng)與交互無關(guān)。為了降低交互之間關(guān)系獲取的難度,本實(shí)施例中,作為一種優(yōu)選實(shí)現(xiàn)方式,可以約簡業(yè)務(wù)流程中不參與業(yè)務(wù)流程間交互的活動(dòng)。但與此同時(shí),為了不對業(yè)務(wù)流程間存在矛盾的交互的發(fā)現(xiàn)造成影響,需要對被約簡活動(dòng)的范圍加以限制,在該優(yōu)選實(shí)現(xiàn)方式中,需要被約簡的活動(dòng)可以分為3類1、不發(fā)送消息或者接受消息的任務(wù)類型的活動(dòng);2、中間事件(InmediateEvent)類型的活動(dòng);3、內(nèi)容為空的網(wǎng)關(guān)對。在約簡掉上述的l、2類活動(dòng)后,若網(wǎng)關(guān)對的分叉和合并之間沒有任何任務(wù)活動(dòng),或者分叉和合并之間只包含一條分支的情況,則該網(wǎng)關(guān)視為內(nèi)容為空的網(wǎng)關(guān)對,需要將其約簡。雖然在本實(shí)施例中對已選取的兩個(gè)業(yè)務(wù)流程做了約簡操作,但在其他實(shí)施例中,也可以省略該約簡操作,只是后續(xù)相關(guān)操作的計(jì)算量會(huì)變大。在對上述所選取的業(yè)務(wù)流程g、尸做約簡操作后,就可以對交互之間的關(guān)系進(jìn)行判斷。根據(jù)本領(lǐng)域技術(shù)人員的相關(guān)知識可以知道如果兩個(gè)業(yè)務(wù)流程間包含相互矛盾的交互,那么這兩個(gè)業(yè)務(wù)流程就是不匹配的,否則,10否存在相互矛盾的控制流關(guān)系,進(jìn)一步的可以認(rèn)為,交互之間的關(guān)系依賴于業(yè)務(wù)流程內(nèi)部活動(dòng)間的關(guān)系。因此,要判斷業(yè)務(wù)流程間的匹配關(guān)系需要首先知道業(yè)務(wù)流程內(nèi)部活動(dòng)間的關(guān)系。根據(jù)本領(lǐng)域的相關(guān)知識,可以將業(yè)務(wù)流程內(nèi)部任意兩個(gè)活動(dòng)間的控制流關(guān)系(以下筒稱"關(guān)系")總結(jié)為以下五種,分別是順序前(51—/Ve)、順序后(5^尸oW)、并行(尸ara〃e/)、完全互斥(Com_E)、部分互斥(尸gW—義如圖2(a)所示,若活動(dòng)a總是先于活動(dòng)b被執(zhí)行,則活動(dòng)a與活動(dòng)b之間的關(guān)系為順序前,可以記錄為a5^/Veb。相反的,如圖2(b)所示,若活動(dòng)a總是后于活動(dòng)b被執(zhí)行,則活動(dòng)a與活動(dòng)b之間的關(guān)系為順序后,可以記錄為a5"—尸oWb。如圖2(c)所示,若活動(dòng)a與活動(dòng)b在并行網(wǎng)關(guān)對的兩個(gè)分支上(即活動(dòng)a與活動(dòng)b需要并行執(zhí)行,且一個(gè)活動(dòng)的執(zhí)行對另一個(gè)活動(dòng)不造成影響),那么活動(dòng)a與活動(dòng)b之間的關(guān)系為并行,可以記錄為a尸b。如圖2(d)所示,若活動(dòng)a與活動(dòng)b在互斥網(wǎng)關(guān)對的兩個(gè)分支上(即活動(dòng)a與活動(dòng)b只能選擇其中之一執(zhí)行),那么活動(dòng)a與活動(dòng)b之間的關(guān)系為完全互斥,可以記錄為aCwn—£b。如圖2(e)所示,若活動(dòng)b在互斥網(wǎng)關(guān)對的一條分支上,活動(dòng)a在該互斥網(wǎng)關(guān)對的順序前或順序后,那么活動(dòng)a與活動(dòng)b之間的關(guān)系為部分互斥,可以記錄為a尸aw一五b。從集合論的角度來說,流程內(nèi)部活動(dòng)間的關(guān)系可以看成是活動(dòng)集合上的二元關(guān)系,因此活動(dòng)間的上述五種關(guān)系滿足以下性質(zhì)*這五種關(guān)系都是不相交的并且它們的并集與活動(dòng)集合的笛卡爾積相等;*是5^尸o^的逆關(guān)系并且它們都是可傳遞的;*在單個(gè)業(yè)務(wù)流程是結(jié)構(gòu)良好的情況下,0附_£與尸^"http://£/同樣是可以傳遞的。在得到活動(dòng)的上述五種關(guān)系類型后,就要對業(yè)務(wù)流程內(nèi)部參與業(yè)務(wù)流程間交互的活動(dòng)之間的關(guān)系加以歸類。這一歸類過程可以通過使用深度優(yōu)先遍歷算法獲得。首先利用有向圖的深度優(yōu)先遍歷算法發(fā)現(xiàn)從單個(gè)流程的開始活動(dòng)到結(jié)束活動(dòng)間的所有路徑和所有的網(wǎng)關(guān)對,這樣該流程中任意兩個(gè)參與交互的活動(dòng)間的關(guān)系可以通過下面的規(guī)則獲得參如果兩個(gè)活動(dòng)在同一條路徑下,并且在這條路徑中它們之間沒有不配對的網(wǎng)關(guān)活動(dòng),則它們之間的關(guān)系依據(jù)在路徑中的前后位置為順序前或者順序后;參如果兩個(gè)活動(dòng)在同一條路徑下,并且在這條路徑中它們之間存在有不配對的網(wǎng)關(guān)活動(dòng),并且這個(gè)網(wǎng)關(guān)活動(dòng)的類型為互斥的,則它們之間的關(guān)系為部分互斥;*網(wǎng)關(guān)對之間的不同分支上的兩個(gè)活動(dòng)間的關(guān)系,依據(jù)網(wǎng)關(guān)類型的不同(并行或者互斥)分為并行或完全互斥。在前面的說明中已經(jīng)提到,交互之間的關(guān)系依賴于業(yè)務(wù)流程內(nèi)部活動(dòng)間的關(guān)系,因此,通過上述原則知道參與交互的活動(dòng)間的關(guān)系后就可以知道交互之間在同一業(yè)務(wù)流程中的關(guān)系。交互之間在同一業(yè)務(wù)流程中的關(guān)系與該業(yè)務(wù)流程中參與交互的活動(dòng)間的關(guān)系相同,而交互之間的關(guān)系應(yīng)當(dāng)包括交互對在不同的業(yè)務(wù)流程中的關(guān)系。以圖3為例,業(yè)務(wù)流程戶中參與交互//、交互G的活動(dòng)分別是活動(dòng)a、活動(dòng)6,它們之間的關(guān)系為aS—7Ve6,因此與G在P中的關(guān)系為z751—尸"Z2。類似的,可以獲得/7、G在流程g中的關(guān)系,"、G在業(yè)務(wù)流程0中的關(guān)系為"5L尸os"2。交互之間的關(guān)系可用集合的形式表示,如交互z7、交互G的相互關(guān)系的集合為"75"—尸"/2,51—尸。5〃_2}。通過上述操作可以得到兩個(gè)業(yè)務(wù)流程間任意兩個(gè)交互之間的關(guān)系。從上述的說明可以看出,對于兩個(gè)特定的交互在一個(gè)業(yè)務(wù)流程中有一種確定的相互關(guān)系,而在兩個(gè)不同的業(yè)務(wù)流程中則可能有兩種不同的相互關(guān)系。與流程內(nèi)部活動(dòng)間的關(guān)系類似,交互之間關(guān)系也可以看作業(yè)務(wù)流程間交互集合上的二元關(guān)系,業(yè)務(wù)流程內(nèi)部活動(dòng)間關(guān)系的性質(zhì)能夠同樣適用與交互之間的關(guān)系。在得到兩個(gè)業(yè)務(wù)流程間任意兩個(gè)交互之間的關(guān)系后,就可以對交互之間是否存在矛盾進(jìn)行判斷。此外,還可以根據(jù)矛盾的類型對不匹配的交互的具體類型進(jìn)行說明。在
背景技術(shù)
中已經(jīng)提到,不匹配交互的發(fā)生可能是因?yàn)殪o態(tài)結(jié)構(gòu)錯(cuò)誤,也可能是因?yàn)檫\(yùn)行時(shí)的錯(cuò)誤。下面分別對兩大類錯(cuò)誤所產(chǎn)生的不匹配交互的判斷標(biāo)準(zhǔn)進(jìn)行說明。對于靜態(tài)結(jié)構(gòu)錯(cuò)誤而言,在本發(fā)明中又提出了兩種交互不匹配的類型,它們是"死鎖"和"缺乏同步"。所謂的"死鎖"是指交互之間處于循環(huán)等待的狀態(tài),如圖4(a)所示,活動(dòng)a與活動(dòng)b之間的交互存在死鎖現(xiàn)象。所謂的"缺乏同步"是指由于缺乏同步并行執(zhí)行路徑的同步網(wǎng)關(guān)造成交互的多次重復(fù)執(zhí)行,如圖(b)所示,活動(dòng)a與活動(dòng)b之間存在缺乏同步的現(xiàn)象。當(dāng)交互之間在不同業(yè)務(wù)流程中的關(guān)系滿足下列標(biāo)準(zhǔn)時(shí),可以認(rèn)為交互間存在"死鎖"或"缺乏同步"。死鎖當(dāng)交互對之間在不同業(yè)務(wù)流程中的關(guān)系滿足下列之一,就認(rèn)為交互間存在死鎖。"順序前"和"完全互斥"、"順序后"和"完全互斥"、順序前"和"部分互斥"、"順序后"和"部分互斥"、"并行"和"部分互斥"、"順序前"和"順序后"。缺乏同步當(dāng)交互對之間在不同業(yè)務(wù)流程中的關(guān)系滿足"完全互斥"和"并行"時(shí),認(rèn)為交互對間存在缺乏同步。在下面的表1中也對上述標(biāo)準(zhǔn)做了說明,在該表中,第一行表示兩個(gè)交互在一個(gè)業(yè)務(wù)流程中的關(guān)系,第一列表示兩個(gè)交互在另外一個(gè)業(yè)務(wù)流程中的關(guān)系,"是"表示兩個(gè)交互是相互矛盾的,"否,,表示兩個(gè)交互不是相互矛盾的,*表示若互斥網(wǎng)關(guān)的條件滿足特定數(shù)據(jù)依賴要求時(shí),交互對可以是不矛盾的。<table>tableseeoriginaldocumentpage13</column></row><table>以上是對靜態(tài)結(jié)構(gòu)錯(cuò)誤所產(chǎn)生的不匹配交互的具體類型的說明。對于由于運(yùn)行時(shí)的錯(cuò)誤所產(chǎn)生的不匹配交互而言,其判斷標(biāo)準(zhǔn)較為簡單,在運(yùn)行過程中,當(dāng)交互對之間在不同業(yè)務(wù)流程中的關(guān)系滿足"順序前"和"順序后"時(shí),就認(rèn)為交互對間存在運(yùn)行時(shí)錯(cuò)誤。例如,在圖3中所提到的交互/人/2之間的關(guān)系為{5"JVez7,〃/2},由此可以知道交互/7,G之間存在矛盾,且交互仏G之間的矛盾是在運(yùn)行時(shí)產(chǎn)生的。對兩個(gè)業(yè)務(wù)流程中任意兩個(gè)交互之間的關(guān)系都做上述判斷后,可以得到一個(gè)包括有所有矛盾交互的完整矛盾交互集合。在得到所述的完整矛盾集合后,可以認(rèn)為已經(jīng)基本完成了兩個(gè)業(yè)務(wù)流程中不匹配交互的發(fā)現(xiàn)。但在本實(shí)施例中,作為優(yōu)選實(shí)現(xiàn)方式,還可以在完整矛盾交互集合的基礎(chǔ)上進(jìn)一步求取最小消解集合。最小消解集合能夠?yàn)榱鞒涕g交互不匹配的消除提供指導(dǎo),通過僅僅消除最小消解集合中相互矛盾的交互對即能保證兩個(gè)業(yè)務(wù)流程間的交互是相互匹配的。最d、消解集合的求取基于下列性質(zhì)性質(zhì)1:兩個(gè)業(yè)務(wù)流程之間的交互"、G、d,若〃與/2之間的兩個(gè)關(guān)系同時(shí)為順序前或同時(shí)為順序后或同時(shí)為并^f亍,而/2與/3是不匹配,則〃與/3是不匹配的。例如,在圖5所示的業(yè)務(wù)流程g與業(yè)務(wù)流程尸中,交互Z2、/3在流程尸中的關(guān)系為順序前,它們在流程g中的關(guān)系為部分互斥,根據(jù)表1可以判斷出交互G、/3是相互矛盾的。交互"、/2在流程尸中的關(guān)系為順序前,它們在流程g中的關(guān)系為順序前,根據(jù)性質(zhì)1可以得出交互z7、d是相互矛盾的。交互z7、/3在流程尸中的關(guān)系為順序前,它們在流程g中的關(guān)系為部分互斥,根據(jù)表1同樣能夠得出交互"、3是相互矛盾的。由此,業(yè)務(wù)流程g與業(yè)務(wù)流程戶之間的完整矛盾交互集合為((i2,i3),(i2,i4),(i3,i4),(il,i3),(il,i4)},而它們之間的最小消解集合僅為{(i2,i3),(i2,i4),(i3,i4)}。通過計(jì)算最小消解集合,需要消除的矛盾交互對的數(shù)量大大縮小了,而消除后的業(yè)務(wù)流程間的交互也是相互匹配的。最小消解集合在邏輯上應(yīng)當(dāng)滿足下面兩個(gè)條件1)、使用前述的性質(zhì)1能夠推導(dǎo)出完整矛盾交互集合;2)、滿足條件l)的前提下包含的矛盾交互對的個(gè)數(shù)最小。在完整矛盾交互集合的基礎(chǔ)上計(jì)算最小消解集合的方法如下a、初始化最小消解集合為空;b、選擇矛盾交互集合中的一個(gè)交互對(/7,/2);c、若存在交互x,使得"與x之間的關(guān)系同時(shí)為順序前或同時(shí)為順序后或同時(shí)為并行,并且交互對(d)已經(jīng)存在于最小消解集合中,則交互對07,,7)不加入最小消解集合,否則加入最小消解集合;d、從步驟b開始重復(fù)執(zhí)行,直至遍歷完整矛盾交互集合中的所有交互對。以上是對兩個(gè)業(yè)務(wù)流程中查找不匹配的交互的完整流程。在兩個(gè)業(yè)務(wù)流程的基礎(chǔ)上,可以進(jìn)一步得到其余業(yè)務(wù)流程中的不匹配的交互。在得到兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合和最小消解集合,將已經(jīng)處理過的這兩個(gè)業(yè)務(wù)流程合并成一個(gè)業(yè)務(wù)流程,然后將合并后的業(yè)務(wù)流程與需要進(jìn)行交互不匹配發(fā)現(xiàn)的業(yè)務(wù)流程中余下的某個(gè)業(yè)務(wù)流程重復(fù)執(zhí)行前述的約簡流程、求取業(yè)務(wù)流程中的交互間的關(guān)系、計(jì)算完整矛盾交互集合、計(jì)算最小消解集合等操作,得到這兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合和最小消解集合。如果還存在未被處理的業(yè)務(wù)流程,則繼續(xù)執(zhí)行合并業(yè)務(wù)流程、約筒流程、求取業(yè)務(wù)流程中的交互間的關(guān)系、計(jì)算完整矛盾交互集合、計(jì)算最小消解集合等操作,直至再也沒有未經(jīng)處理的業(yè)務(wù)流程。雖然在本實(shí)施例中按照上述順序完成業(yè)務(wù)流程的合并,但在其它實(shí)施例中,也可以按照其它順序完成業(yè)務(wù)流程的合并。在上述過程中,所提到的合并業(yè)務(wù)流程是指在合并兩個(gè)業(yè)務(wù)流程時(shí),首先選擇其中的一個(gè)作為目標(biāo)流程,另外一個(gè)業(yè)務(wù)流程作為輸入流程。除了開始活動(dòng)、結(jié)束活動(dòng)以及交互對方已經(jīng)存在于目標(biāo)流程中的活動(dòng)外,輸入流程中的每一個(gè)活動(dòng)都被加入目標(biāo)流程中。輸入流程中的每一個(gè)遷移(即業(yè)務(wù)流程圖中的直線)都被加入到目標(biāo)流程中,除非遷移連接的是輸入流程的開始或者結(jié)束活動(dòng)。如果新加入的遷移所連接的活動(dòng)沒有加入到目標(biāo)流程中,則將遷移連接原活動(dòng)的交互對方。在圖6中給出了一個(gè)合并兩個(gè)業(yè)務(wù)流程的例子。如果流程尸被當(dāng)作目標(biāo)流程,流程0#:當(dāng)作輸入流程,則流程Q中的所有活動(dòng)都沒有加入流程尸,流程g中的所有遷移除了連接開始活動(dòng)和結(jié)束活動(dòng)的遷移外,都被加入到了流程0中,并且這些遷移所連接的活動(dòng)都被重置為原來所連接活動(dòng)的交互對方。本發(fā)明提供了與上述方法相對應(yīng)的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,包括業(yè)務(wù)流程選擇模塊、交互對間關(guān)系集合生成模塊、完整矛盾交互集合生成模塊;其中,所述的業(yè)務(wù)流程選擇模塊用于從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;所述的交互對間關(guān)系集合生成模塊用于根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,所述交互對間關(guān)系集合包括所述交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;所述活動(dòng)間的關(guān)系包括順序前、順序后、并行、完全互斥以及部分互斥;15所述的完整矛盾交互集合生成模塊用于根據(jù)所述交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。本發(fā)明的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置還包括業(yè)務(wù)流程約簡模塊,該模塊用于對不參與業(yè)務(wù)流程間交互的活動(dòng)進(jìn)行約簡。本發(fā)明的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置還包括最小消解集合計(jì)算模塊;該模塊用于根據(jù)所述的完整矛盾交互集合計(jì)算最小消解集合;所述最小消解集合能夠推導(dǎo)出所述的完整矛盾交互集合,且所包含的矛盾交互對的個(gè)數(shù)最小。本發(fā)明的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置還包括業(yè)務(wù)流程合并模塊;該模塊用于合并兩個(gè)業(yè)務(wù)流程。本發(fā)明的上述方法和裝置通過業(yè)務(wù)流程內(nèi)的活動(dòng)間的關(guān)系來判斷交互間的關(guān)系,從而找出不匹配的交互,具有快速、高效、實(shí)現(xiàn)簡單的優(yōu)點(diǎn)。本發(fā)明不僅能夠判斷出業(yè)務(wù)流程間是否存在不匹配的交互,而且還能找出不匹配的交互的具體類型。本發(fā)明不僅能找出由靜態(tài)結(jié)構(gòu)錯(cuò)誤所產(chǎn)生的不匹配的交互,還能找出由運(yùn)行時(shí)錯(cuò)誤所產(chǎn)生的不匹配交互。本發(fā)明通過對最小消解集合的求解還能夠準(zhǔn)確地找出哪些交互造成了流^i間交互的不匹配。最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。權(quán)利要求1、一種業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,包括步驟1)、從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;步驟2)、根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,所述交互對間關(guān)系集合包括所述交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;所述活動(dòng)間的關(guān)系包括順序前、順序后、并行、完全互斥以及部分互斥;步驟3)、根據(jù)所述交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。2、根據(jù)權(quán)利要求1所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,在所述的步驟l)中,所選取的業(yè)務(wù)流程是對不參與業(yè)務(wù)流程間交互的活動(dòng)進(jìn)行約簡后的業(yè)務(wù)流程。3、根據(jù)權(quán)利要求2所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,所述的所選取的業(yè)務(wù)流程中不參與業(yè)務(wù)流程間交互的活動(dòng)包括a、不發(fā)送消息或者接受消息的任務(wù)類型的活動(dòng);b、中間事件類型的活動(dòng);c、內(nèi)容為空的網(wǎng)關(guān)對。4、根據(jù)權(quán)利要求1或2所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,還包括步驟4)、根據(jù)所述的完整矛盾交互集合計(jì)算最小消解集合;所述最小消解集合能夠推導(dǎo)出所述的完整矛盾交互集合,且所包含的矛盾交互對的個(gè)數(shù)最小。5、根據(jù)權(quán)利要求4所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,所述的步驟4)包括步驟4-l)、初始化最小消解集合為空;步驟4-2)、選擇矛盾交互集合中的一個(gè)交互對(仏G);步驟4-3)、若存在交互jc,使得"與x之間的關(guān)系同時(shí)為順序前或同時(shí)為順序后或同時(shí)為并行,并且交互對(O已經(jīng)存在于最小消解集合中,則交互對(z7,G)不加入所述的最小消解集合,否則加入所述最小消解集合;步驟4-4)、從步驟4-2)開始重復(fù)執(zhí)行,直至遍歷完整矛盾交互集合中的所有交互對。6、根據(jù)權(quán)利要求1或2或4所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,還包括步驟5)、合并兩個(gè)業(yè)務(wù)流程,然后將合并后的業(yè)務(wù)流程與其它業(yè)務(wù)流程作為所選取的兩個(gè)業(yè)務(wù)流程,重新執(zhí)行步驟1)后的操作,直至不再有未經(jīng)處理的業(yè)務(wù)流程,從而實(shí)現(xiàn)多個(gè)業(yè)務(wù)流程間不匹配交互的發(fā)現(xiàn)。7、根據(jù)權(quán)利要求6所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,在所述的步驟5)中,所述的合并兩個(gè)業(yè)務(wù)流程包括將已經(jīng)得到完整矛盾交互集合的兩個(gè)業(yè)務(wù)流程進(jìn)行合并。8、根據(jù)權(quán)利要求7所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,所述的將已經(jīng)得到完整矛盾交互集合的兩個(gè)業(yè)務(wù)流程進(jìn)行合并包括步驟5-1)、選擇其中的一個(gè)作為目標(biāo)流程,另外一個(gè)業(yè)務(wù)流程作為輸入流程;步驟5-2)、將所述輸入流程中除了開始活動(dòng)、結(jié)束活動(dòng)以及交互對方已經(jīng)存在于所述目標(biāo)流程中的活動(dòng)外的每一個(gè)活動(dòng)都被加入所述目標(biāo)流程中;步驟5-3)、將所述輸入流程中除了連接開始活動(dòng)和結(jié)束活動(dòng)的遷移以外的每一個(gè)遷移添加到所述目標(biāo)流程中,如果新加入的遷移所連接的活動(dòng)沒有加入到所述目標(biāo)流程中,則將該遷移連接原活動(dòng)的交互對方。9、根據(jù)權(quán)利要求1或2或4或6所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,在所述的步驟3)中,所述的存在矛盾的交互對間關(guān)系包括"順序前"和"完全互斥"、"順序后"和"完全互斥"、"順序前"和"部分互斥"、"順序后"和"部分互斥"、"并行"和"部分互斥"、"順序前"和"順序后"、"完全互斥"和"并行"。10、根據(jù)權(quán)利要求9所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,其特征在于,當(dāng)交互對間關(guān)系為下列之一時(shí),所述交互對發(fā)生"死鎖""順序前"和"完全互斥"、"順序后"和"完全互斥"、二順序前"和"部分互斥"、"順序后"和"部分互斥"、"并行"和"部分互斥"、"順序前"和"順序后,,;當(dāng)交互對間關(guān)系為"完全互斥"和"并行"時(shí),所述交互對發(fā)生"缺乏同步"。11、一種業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,其特征在于,包括業(yè)務(wù)流程選擇模塊、交互對間關(guān)系集合生成模塊、完整矛盾交互集合生成模塊;其中,所述的業(yè)務(wù)流程選擇模塊用于從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;所述的交互對間關(guān)系集合生成模塊用于根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,所述交互對間關(guān)系集合包括所述交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;所述活動(dòng)間的關(guān)系包括順序前、順序后、并行、完全互斥以及部分互斥;所述的完整矛盾交互集合生成模塊用于根據(jù)所述交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。12、根據(jù)權(quán)利要求11所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,其特征在于,還包括業(yè)務(wù)流程約簡模塊,該模塊用于對不參與業(yè)務(wù)流程間交互的活動(dòng)進(jìn)行約簡。13、根據(jù)權(quán)利要求11或12所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,其特征在于,還包括最小消解集合計(jì)算模塊;該模塊用于根據(jù)所述的完整矛盾交互集合計(jì)算最小消解集合;所述最小消解集合能夠推導(dǎo)出所述的完整矛盾交互集合,且所包含的矛盾交互對的個(gè)數(shù)最小。14、根據(jù)權(quán)利要求11或12或13所述的業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)裝置,其特征在于,還包括業(yè)務(wù)流程合并模塊;該模塊用于合并兩個(gè)業(yè)務(wù)流程。全文摘要本發(fā)明提供一種業(yè)務(wù)流程間的不匹配交互的發(fā)現(xiàn)方法,包括從多個(gè)待處理的業(yè)務(wù)流程中選取兩個(gè)業(yè)務(wù)流程;根據(jù)所選取的任一業(yè)務(wù)流程內(nèi)參與交互的兩個(gè)活動(dòng)間的關(guān)系確定活動(dòng)所在交互對在該業(yè)務(wù)流程內(nèi)的關(guān)系,進(jìn)而得到所選取的兩個(gè)業(yè)務(wù)流程所含交互的交互對間關(guān)系集合;其中,交互對間關(guān)系集合包括交互對在所選取的兩個(gè)業(yè)務(wù)流程內(nèi)的關(guān)系;根據(jù)交互對間關(guān)系集合中所包含的存在矛盾的交互對間關(guān)系確定所選取的兩個(gè)業(yè)務(wù)流程內(nèi)存在矛盾的交互對,從而生成所選取的兩個(gè)業(yè)務(wù)流程的完整矛盾交互集合。本發(fā)明具有快速、高效、實(shí)現(xiàn)簡單的優(yōu)點(diǎn);能找出不同類型的不匹配的交互;能夠準(zhǔn)確地找出哪些交互造成了流程間交互的不匹配;能找出由運(yùn)行時(shí)錯(cuò)誤所產(chǎn)生的不匹配交互。文檔編號G06Q10/00GK101650799SQ20091009280公開日2010年2月17日申請日期2009年9月8日優(yōu)先權(quán)日2009年9月8日發(fā)明者帥公,熊錦華,韓燕波申請人:中國科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1