国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      流程系統(tǒng)中不確定分支與合并的解決方法

      文檔序號:6556250閱讀:224來源:國知局
      專利名稱:流程系統(tǒng)中不確定分支與合并的解決方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及流程系統(tǒng)方面的軟件技術(shù)方法。
      背景技術(shù)
      目前流程系統(tǒng)或者叫工作流(Workflow)系統(tǒng)已開始得到廣泛應(yīng)用,無論在電子工單處理、軟件開發(fā)管理、電子政務(wù)等等凡是涉及到流程的應(yīng)用軟件,都會(huì)用到這項(xiàng)技術(shù)。通常要能夠?qū)崿F(xiàn)諸如順序執(zhí)行、并行執(zhí)行、同步、循環(huán)、分支與合并等功能,不同的應(yīng)用要求的功能會(huì)有所差異,根據(jù)對實(shí)際需求的研究摸索,國外已把這些功能歸納總結(jié)成了20個(gè)標(biāo)準(zhǔn)模板,可以說基本上涵蓋了我們在Workflow實(shí)際應(yīng)用中可能出現(xiàn)的功能需求。實(shí)際上,國際上對工作流是有一些標(biāo)準(zhǔn)的,如XPDL(xml工作流定義語言)、UML(統(tǒng)一建模語言)、BPEL(商務(wù)處理執(zhí)行語言)、XLANG、WSFL、BPML、WSCI等等,但尚沒有哪個(gè)標(biāo)準(zhǔn)能夠全部實(shí)現(xiàn)這些功能;對于不確定的分支與合并(MI without a PrioriRuntime Knowledge)尚無標(biāo)準(zhǔn)能實(shí)現(xiàn)。這里對所謂不確定分支做個(gè)解釋,通常分支分為兩種,一種是設(shè)計(jì)流程時(shí)(Design Time)即已確定在該環(huán)節(jié)會(huì)有多少個(gè)分支,這種情況是確定的,很容易實(shí)現(xiàn),另一種是在流程運(yùn)行時(shí)(Runtime)才知道會(huì)有多少分支,數(shù)量是事先不知道的。比如一個(gè)任務(wù)分配系統(tǒng),上級會(huì)將任務(wù)分解成多個(gè)子任務(wù)分配到下級,待所有子任務(wù)完成后,再由上級審核。分解成多少個(gè)子任務(wù)是根據(jù)任務(wù)的需要決定的,在設(shè)計(jì)流程時(shí)是無法預(yù)知的。
      這種情況下,通常的辦法是專門運(yùn)行一個(gè)線程,對子任務(wù)進(jìn)行記數(shù),并不斷去檢查子任務(wù)的狀態(tài),判斷所有子任務(wù)是否完成。其缺陷顯而易見,一是耗資源,開線程要耗內(nèi)存,不斷檢查狀態(tài)要耗CPU;二是有延時(shí),延時(shí)多少取決于狀態(tài)檢查的間隔時(shí)間長短。

      發(fā)明內(nèi)容
      本發(fā)明的目的是提出一種流程系統(tǒng)中不確定分支與合并的解決方法,就是針對不確定分支與合并這一特定情況提出的一種解決方法,本發(fā)明目的是解決流程系統(tǒng)中不確定分支與合并的一種方法,是獨(dú)立于具體實(shí)現(xiàn)它的計(jì)算機(jī)程序語言和工具的。分支記數(shù)器由流程主控程序?qū)崿F(xiàn),不需另起進(jìn)程,減少了資源消耗;合并動(dòng)作由分支記數(shù)器觸發(fā),沒有延時(shí)。
      本發(fā)明的目的是這樣實(shí)現(xiàn)的流程系統(tǒng)中不確定分支與合并的解決方法,在系統(tǒng)流程存在不確定分支與合并時(shí),對流程的發(fā)散節(jié)點(diǎn)、收斂節(jié)點(diǎn)和普通節(jié)點(diǎn),為每個(gè)節(jié)點(diǎn)設(shè)置一個(gè)分支記數(shù)器,由兩個(gè)字段組成,一個(gè)用來保存收斂節(jié)點(diǎn),默認(rèn)為空;另一個(gè)保存分支記數(shù),默認(rèn)為0其特征是
      1)流程首先創(chuàng)建起始節(jié)點(diǎn)A,最終收斂于一個(gè)環(huán)節(jié)E,起始節(jié)點(diǎn)與收斂環(huán)節(jié)是成對出現(xiàn)的節(jié)點(diǎn)與環(huán)節(jié),將收斂環(huán)節(jié)的分支記數(shù)器設(shè)為1,表明收斂環(huán)節(jié)需要等待1個(gè)節(jié)點(diǎn)(A)的完成才能開始;2).流程中起始節(jié)點(diǎn)在分出2個(gè)節(jié)點(diǎn)即分出一個(gè)分支的時(shí),將此節(jié)點(diǎn)記錄的收斂節(jié)點(diǎn)的分支記數(shù)加1,此時(shí)此起始節(jié)點(diǎn)記錄的終始或最終收斂節(jié)點(diǎn)是E,經(jīng)過本環(huán)節(jié)的分支,終始收斂節(jié)點(diǎn)E的分支記數(shù)器的值是1加所有傳遞到終始收斂節(jié)點(diǎn)分支節(jié)點(diǎn)的數(shù)目;同時(shí)將起始節(jié)點(diǎn)A中記錄的收斂節(jié)點(diǎn)“E”傳遞給流程中間的起始節(jié)點(diǎn)(B1)和(B2),即將(B1)和(B2)的字段1也設(shè)置成“E”;3).當(dāng)起始節(jié)點(diǎn)A完成時(shí),則將起始節(jié)點(diǎn)A對應(yīng)的收斂節(jié)點(diǎn)E的分支記數(shù)器減1,并判斷是否為0;此時(shí)收斂節(jié)點(diǎn)E的分支記數(shù)器的值減1;當(dāng)終始收斂E的分支記數(shù)器變?yōu)?時(shí),則表明E所等待的任務(wù)均已完成;即成為活動(dòng)節(jié)點(diǎn),反之則不能開始,仍然是非活動(dòng)節(jié)點(diǎn);4).起始節(jié)點(diǎn)與收斂環(huán)節(jié)是成對出現(xiàn),流程中間的起始節(jié)點(diǎn)(B1)和(B2)與中間收斂環(huán)節(jié)(D1)和(D2),并且將流程中間的起始節(jié)點(diǎn)B記錄的收斂節(jié)點(diǎn)遺傳給收斂環(huán)節(jié)D,因此收斂環(huán)節(jié)D1和D2中字段1也變?yōu)槭諗抗?jié)點(diǎn)“E”;此時(shí)由于流程中間B環(huán)收斂于收斂節(jié)點(diǎn)D環(huán)節(jié),隨即將流程中間起始節(jié)點(diǎn)B1的收斂節(jié)點(diǎn)修改為D1,B2環(huán)節(jié)也一樣;5).在先起始節(jié)點(diǎn)和流程中分支逐步完成,直到所有傳遞到終始收斂節(jié)點(diǎn)分支節(jié)點(diǎn)的流程均完成,再執(zhí)行最終環(huán)節(jié)的任務(wù),整個(gè)流程結(jié)束;在完成過程中,收斂節(jié)點(diǎn)“D1”被遺傳給在先起始節(jié)點(diǎn)。
      本發(fā)明的特點(diǎn)是相對于通常的方法,其主要優(yōu)勢在于分支記數(shù)器由流程主控程序?qū)崿F(xiàn),不需另起進(jìn)程,減少了資源消耗;合并動(dòng)作由分支記數(shù)器觸發(fā),沒有延時(shí)。


      圖1是本發(fā)明所示的典型的對稱的分支收斂流程,圖2是本發(fā)明所示的非對稱的分支收斂流程。
      具體實(shí)施例方式
      圖1中所示流程是一個(gè)典型的分支合并流程,從A開始,到E結(jié)束,共5個(gè)環(huán)節(jié)。其中A、B1、B2是發(fā)散節(jié)點(diǎn),D1、D2、E是收斂節(jié)點(diǎn),C1、C2、C3是普通節(jié)點(diǎn),我們?yōu)槊總€(gè)節(jié)點(diǎn)設(shè)置一個(gè)分支記數(shù)器,由兩個(gè)字段組成,一個(gè)用來保存收斂節(jié)點(diǎn),默認(rèn)為空;另一個(gè)保存分支記數(shù),默認(rèn)為0。下面開始描述整個(gè)過程。
      1.流程首先創(chuàng)建起始節(jié)點(diǎn)A,此時(shí)我們知道無論它產(chǎn)生多少個(gè)分支,必然最終收斂于E環(huán)節(jié),在此我們定義一種成對出現(xiàn)的環(huán)節(jié),如A與E、B與D,因此我們同時(shí)創(chuàng)建E節(jié)點(diǎn),并在A節(jié)點(diǎn)字段1中記錄“E”,將E的分支記數(shù)器設(shè)為1,表明E需要等待1個(gè)節(jié)點(diǎn)(A)的完成才能開始。
      2.流程執(zhí)行到B環(huán)節(jié),由A節(jié)點(diǎn)分出2個(gè)節(jié)點(diǎn)即B1和B2,在分出一個(gè)分支的時(shí)候,我們會(huì)將A節(jié)點(diǎn)記錄的收斂節(jié)點(diǎn)的分支記數(shù)加1,此時(shí)A記錄的收斂節(jié)點(diǎn)是E,因此經(jīng)過本環(huán)節(jié)的分支,E的分支記數(shù)器的值變?yōu)?。同時(shí)將A中記錄的收斂節(jié)點(diǎn)“E”傳遞給B1和B2,即將B1和B2的字段1也設(shè)置成“E”,我們將這一特點(diǎn)稱為遺傳。
      3.當(dāng)節(jié)點(diǎn)A完成時(shí),將A對應(yīng)的收斂節(jié)點(diǎn)E的分支記數(shù)器減1,并判斷是否為0。此時(shí)E的分支記數(shù)器的值變?yōu)?,當(dāng)E的分支記數(shù)器變?yōu)?時(shí),則表明E所等待的任務(wù)均已完成,可以開始執(zhí)行了,即成為活動(dòng)節(jié)點(diǎn),反之則不能開始,仍然是非活動(dòng)節(jié)點(diǎn)。
      4.與A環(huán)節(jié)與E環(huán)節(jié)成對出現(xiàn)一樣,在創(chuàng)建B1和B2的時(shí)候也同時(shí)創(chuàng)建D1和D2,并且將B環(huán)節(jié)中記錄的收斂節(jié)點(diǎn)遺傳給D,因此D1和D2中字段1也變?yōu)椤癊”。此時(shí)由于B環(huán)節(jié)收斂于D環(huán)節(jié),因此我們在遺傳動(dòng)作之后隨即將B1的收斂節(jié)點(diǎn)修改為D1,B2環(huán)節(jié)也一樣。
      5.由B1和B2分別分支出C1、C2、C3,與第2步一樣,D1的分支記數(shù)是3,D2的分支記數(shù)是2,表明D1需要等待3個(gè)任務(wù)完成才可執(zhí)行,D2需要等待2個(gè)任務(wù)完成才可執(zhí)行。同樣B1的收斂節(jié)點(diǎn)“D1”被遺傳給C1和C2,B2的收斂節(jié)點(diǎn)“D2”被遺傳給C3,6.B1完成,D1記數(shù)器變?yōu)?,C1、C2完成,D1記數(shù)器變?yōu)?,此時(shí)D1節(jié)點(diǎn)可以開始,同樣當(dāng)B2、C3完成,D2記數(shù)器變?yōu)?,D2可以開始。
      7.由于D1記錄的收斂節(jié)點(diǎn)是“E”,因此當(dāng)D1完成時(shí),E的分支記數(shù)器要減1,變?yōu)?。同樣當(dāng)D2完成時(shí),E記數(shù)器變?yōu)?,表明流程已經(jīng)流到節(jié)點(diǎn)E,E可以開始執(zhí)行。
      8.當(dāng)E執(zhí)行完畢,整個(gè)流程結(jié)束。
      通過上述過程的描述,闡明了具體的原理和方法,本方法有幾個(gè)特性a.成對創(chuàng)建--即有對應(yīng)關(guān)系的開始結(jié)束環(huán)節(jié),在開始節(jié)點(diǎn)創(chuàng)建的同時(shí)就創(chuàng)建結(jié)束節(jié)點(diǎn),而不管中間環(huán)節(jié)會(huì)創(chuàng)建哪些節(jié)點(diǎn)。
      b.目標(biāo)遺傳--即收斂節(jié)點(diǎn)遺傳。
      c.記數(shù)器后置--即分支記數(shù)放在收斂節(jié)點(diǎn)中計(jì)算。
      這幾點(diǎn)是本方法的關(guān)鍵所在。
      我們在這里畫一個(gè)表格,列出在上述過程中各節(jié)點(diǎn)記數(shù)器狀態(tài)變化,以便使人更清晰地理解1

      2,3,4

      5

      6

      7,8

      本方法不僅對與圖1所示的典型的對稱的分支收斂流程適用,對于象圖2所示的非對稱的分支收斂流程同樣適用。推導(dǎo)過程與圖1類似,區(qū)別在創(chuàng)建B1,B2時(shí)不會(huì)成對創(chuàng)建D1、D2,而是直接將收斂節(jié)點(diǎn)“E”遺傳給C1、C2、C3。
      流程系統(tǒng)中不確定分支與合并的解決方法,是解決流程系統(tǒng)中不確定分支與合并的一種通用方法,不依賴于具體實(shí)現(xiàn)語言和工具,C/C++,Java等均可實(shí)現(xiàn)。
      具體方法介紹如下圖1中所示流程是一個(gè)典型的分支合并流程,從A開始,到E結(jié)束,共5個(gè)環(huán)節(jié)。其中A、B1、B2是發(fā)散節(jié)點(diǎn),D1、D2、E是收斂節(jié)點(diǎn),C1、C2、C3是普通節(jié)點(diǎn),我們?yōu)槊總€(gè)節(jié)點(diǎn)設(shè)置一個(gè)分支記數(shù)器,由兩個(gè)字段組成,一個(gè)用來保存收斂節(jié)點(diǎn),默認(rèn)為空;另一個(gè)保存分支記數(shù),默認(rèn)為0。下面開始描述整個(gè)過程。
      1.流程首先創(chuàng)建起始節(jié)點(diǎn)A,此時(shí)我們知道無論它產(chǎn)生多少個(gè)分支,必然最終收斂于E環(huán)節(jié),在此我們定義一種成對出現(xiàn)的環(huán)節(jié),如A與E、B與D,因此我們同時(shí)創(chuàng)建E節(jié)點(diǎn),并在A節(jié)點(diǎn)字段1中記錄“E”,將E的分支記數(shù)器設(shè)為1,表明E需要等待1個(gè)節(jié)點(diǎn)(A)的完成才能開始。
      2.流程執(zhí)行到B環(huán)節(jié),由A節(jié)點(diǎn)分出2個(gè)節(jié)點(diǎn)即B1和B2,在分出一個(gè)分支的時(shí)候,我們會(huì)將A節(jié)點(diǎn)記錄的收斂節(jié)點(diǎn)的分支記數(shù)加1,此時(shí)A記錄的收斂節(jié)點(diǎn)是E,因此經(jīng)過本環(huán)節(jié)的分支,E的分支記數(shù)器的值變?yōu)?。同時(shí)將A中記錄的收斂節(jié)點(diǎn)“E”傳遞給B1和B2,即將B1和B2的字段1也設(shè)置成“E”,我們將這一特點(diǎn)稱為遺傳。
      3.當(dāng)節(jié)點(diǎn)A完成時(shí),將A對應(yīng)的收斂節(jié)點(diǎn)E的分支記數(shù)器減1,并判斷是否為0。此時(shí)E的分支記數(shù)器的值變?yōu)?,當(dāng)E的分支記數(shù)器變?yōu)?時(shí),則表明E所等待的任務(wù)均已完成,可以開始執(zhí)行了,即成為活動(dòng)節(jié)點(diǎn),反之則不能開始,仍然是非活動(dòng)節(jié)點(diǎn)。
      4.與A環(huán)節(jié)與E環(huán)節(jié)成對出現(xiàn)一樣,在創(chuàng)建B1和B2的時(shí)候也同時(shí)創(chuàng)建D1和D2,并且將B環(huán)節(jié)中記錄的收斂節(jié)點(diǎn)遺傳給D,因此D1和D2中字段1也變?yōu)椤癊”。此時(shí)由于B環(huán)節(jié)收斂于D環(huán)節(jié),因此我們在遺傳動(dòng)作之后隨即將B1的收斂節(jié)點(diǎn)修改為D1,B2環(huán)節(jié)也一樣。
      5.由B1和B2分別分支出C1、C2、C3,與第2步一樣,D1的分支記數(shù)是3,D2的分支記數(shù)是2,表明D1需要等待3個(gè)任務(wù)完成才可執(zhí)行,D2需要等待2個(gè)任務(wù)完成才可執(zhí)行。同樣B1的收斂節(jié)點(diǎn)“D1”被遺傳給C1和C2,B2的收斂節(jié)點(diǎn)“D2”被遺傳給C3,6.B1完成,D1記數(shù)器變?yōu)?,C1、C2完成,D1記數(shù)器變?yōu)?,此時(shí)D1節(jié)點(diǎn)可以開始,同樣當(dāng)B2、C3完成,D2記數(shù)器變?yōu)?,D2可以開始。
      7.由于D1記錄的收斂節(jié)點(diǎn)是“E”,因此當(dāng)D1完成時(shí),E的分支記數(shù)器要減1,變?yōu)?。同樣當(dāng)D2完成時(shí),E記數(shù)器變?yōu)?,表明流程已經(jīng)流到節(jié)點(diǎn)E,E可以開始執(zhí)行。
      8.當(dāng)E執(zhí)行完畢,整個(gè)流程結(jié)束。
      權(quán)利要求
      1.流程系統(tǒng)中不確定分支與合并的解決方法,在系統(tǒng)流程存在不確定分支與合并時(shí),對流程的發(fā)散節(jié)點(diǎn)、收斂節(jié)點(diǎn)和普通節(jié)點(diǎn),為每個(gè)節(jié)點(diǎn)設(shè)置一個(gè)分支記數(shù)器,由兩個(gè)字段組成,一個(gè)用來保存收斂節(jié)點(diǎn),默認(rèn)為空;另一個(gè)保存分支記數(shù),默認(rèn)為0其特征是1).流程首先創(chuàng)建起始節(jié)點(diǎn)A,最終收斂于一個(gè)環(huán)節(jié)E,起始節(jié)點(diǎn)與收斂環(huán)節(jié)是成對出現(xiàn)的節(jié)點(diǎn)與環(huán)節(jié),將收斂環(huán)節(jié)的分支記數(shù)器設(shè)為1,表明收斂環(huán)節(jié)需要等待1個(gè)節(jié)點(diǎn)(A)的完成才能開始;2).流程中起始節(jié)點(diǎn)在分出2個(gè)節(jié)點(diǎn)即分出一個(gè)分支的時(shí),將此節(jié)點(diǎn)記錄的收斂節(jié)點(diǎn)的分支記數(shù)加1,此時(shí)此起始節(jié)點(diǎn)記錄的終始或最終收斂節(jié)點(diǎn)是E,經(jīng)過本環(huán)節(jié)的分支,終始收斂節(jié)點(diǎn)E的分支記數(shù)器的值是1加所有傳遞到終始收斂節(jié)點(diǎn)分支節(jié)點(diǎn)的數(shù)目;同時(shí)將起始節(jié)點(diǎn)A中記錄的收斂節(jié)點(diǎn)E傳遞給流程中間的起始節(jié)點(diǎn)(B1)和(B2),即將(B1)和(B2)的字段1也設(shè)置成“E”;3).當(dāng)起始節(jié)點(diǎn)A完成時(shí),則將起始節(jié)點(diǎn)A對應(yīng)的收斂節(jié)點(diǎn)E的分支記數(shù)器減1,并判斷是否為0;此時(shí)收斂節(jié)點(diǎn)E的分支記數(shù)器的值減1;當(dāng)終始收斂E的分支記數(shù)器變?yōu)?時(shí),則表明E所等待的任務(wù)均已完成;即成為活動(dòng)節(jié)點(diǎn),反之則不能開始,仍然是非活動(dòng)節(jié)點(diǎn);4).起始節(jié)點(diǎn)與收斂環(huán)節(jié)是成對出現(xiàn),流程中間的起始節(jié)點(diǎn)(B1)和(B2)與中間收斂環(huán)節(jié)(D1)和(D2),并且將流程中間的起始節(jié)點(diǎn)B記錄的收斂節(jié)點(diǎn)遺傳給收斂環(huán)節(jié)D,因此收斂環(huán)節(jié)D1和D2中字段1也變?yōu)槭諗抗?jié)點(diǎn)“E”;此時(shí)流程中間B環(huán)收斂于收斂節(jié)點(diǎn)D環(huán)節(jié),隨即將流程中間起始節(jié)點(diǎn)B1的收斂節(jié)點(diǎn)修改為D1,B2環(huán)節(jié)也一樣;5).在先起始節(jié)點(diǎn)和流程中分支逐步完成,直到所有傳遞到終始收斂節(jié)點(diǎn)分支節(jié)點(diǎn)的流程均完成,再執(zhí)行最終環(huán)節(jié)的任務(wù),整個(gè)流程結(jié)束;在完成過程中,收斂節(jié)點(diǎn)“D1”被遺傳給在先起始節(jié)點(diǎn)。
      全文摘要
      流程系統(tǒng)中不確定分支與合并的解決方法,在系統(tǒng)流程存在不確定分支與合并時(shí),對流程的每個(gè)節(jié)點(diǎn)設(shè)置一個(gè)分支記數(shù)器,由兩個(gè)字段組成,一個(gè)用來保存收斂節(jié)點(diǎn),默認(rèn)為空;另一個(gè)保存分支記數(shù),默認(rèn)為0流程創(chuàng)建起始節(jié)點(diǎn)A,最終收斂于一個(gè)環(huán)節(jié)E,起始節(jié)點(diǎn)與收斂環(huán)節(jié)是成對出現(xiàn)的節(jié)點(diǎn)與環(huán)節(jié),將收斂環(huán)節(jié)的分支記數(shù)器設(shè)為1,表明收斂環(huán)節(jié)需要等待1個(gè)節(jié)點(diǎn)(A)的完成才能開始;流程中起始節(jié)點(diǎn)在分出2個(gè)節(jié)點(diǎn)即分出一個(gè)分支的時(shí),將此節(jié)點(diǎn)記錄的收斂節(jié)點(diǎn)的分支記數(shù)加1,此起始節(jié)點(diǎn)記錄的終始或最終收斂節(jié)點(diǎn)是E;直到所有傳遞到終始收斂節(jié)點(diǎn)分支節(jié)點(diǎn)的流程均完成,再執(zhí)行最終環(huán)節(jié),整個(gè)流程結(jié)束。
      文檔編號G06Q10/06GK1808487SQ20061003837
      公開日2006年7月26日 申請日期2006年2月20日 優(yōu)先權(quán)日2006年2月20日
      發(fā)明者錢伊心, 孟維, 張輝 申請人:南京聯(lián)創(chuàng)科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1