專利名稱:一種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于工作流技術(shù)領(lǐng)域,涉及復(fù)雜工作流網(wǎng)絡(luò)模型化簡(jiǎn)的實(shí)現(xiàn)方法。
背景技術(shù):
網(wǎng)是一種由節(jié)點(diǎn)和連線構(gòu)成的圖,被廣泛用于現(xiàn)實(shí)世界的復(fù)雜問題建模,如通訊網(wǎng)絡(luò)、交通網(wǎng)絡(luò)、社會(huì)網(wǎng)絡(luò)等。網(wǎng)也可以被用于生產(chǎn)過程或辦公過程的建模,例如在工作流領(lǐng)域,工作流網(wǎng)(Workflow net, WF-net)、活動(dòng)網(wǎng)絡(luò)圖、事件驅(qū)動(dòng)的過程鏈(Event-driven Process Chain,EPC)、信息控制網(wǎng)(Information Control Nets,ICN)等都是基于網(wǎng)的工作流模型。在不改變節(jié)點(diǎn)連接關(guān)系的前提下,如果對(duì)具有復(fù)雜連接關(guān)系的網(wǎng)進(jìn)行化簡(jiǎn),可以有效降低工作流的復(fù)雜程度,簡(jiǎn)化工作流模型的設(shè)計(jì),提高計(jì)算機(jī)系統(tǒng)分析和運(yùn)行工作流的效率?,F(xiàn)有的基于網(wǎng)的工作流模型化簡(jiǎn)方法,基本都是將網(wǎng)化簡(jiǎn)成若干具有單一輸入、 單一輸出的子網(wǎng)絡(luò)。這些子網(wǎng)絡(luò)自身可能也比較復(fù)雜,但現(xiàn)有方法卻不能對(duì)它們進(jìn)行進(jìn)一步的分解。因此,提出了一種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法。和現(xiàn)有方法相比較,該方法能在保持原有網(wǎng)絡(luò)連接關(guān)系的前提下,盡可能將網(wǎng)劃分成為更多的、更小的網(wǎng)絡(luò)結(jié)構(gòu),以便計(jì)算機(jī)系統(tǒng)對(duì)網(wǎng)進(jìn)行結(jié)構(gòu)分析和控制,提高計(jì)算機(jī)系統(tǒng)運(yùn)行工作流的效率。
發(fā)明內(nèi)容
本發(fā)明目的在于克服現(xiàn)有技術(shù)的缺點(diǎn),提供一種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法,該方法能在保持原有網(wǎng)絡(luò)連接關(guān)系的前提下,盡可能將網(wǎng)劃分成為更多的、更小的網(wǎng)絡(luò)結(jié)構(gòu)的方法,以便計(jì)算機(jī)系統(tǒng)對(duì)網(wǎng)進(jìn)行結(jié)構(gòu)分析和控制,提高計(jì)算機(jī)系統(tǒng)運(yùn)行工作流的效率。本發(fā)明的目的是通過以下技術(shù)解決方案來解決的該種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法,包括以下步驟(A)建立工作流節(jié)點(diǎn)模型工作流節(jié)點(diǎn)由服務(wù)器和計(jì)算機(jī)客戶端組成,以連接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為工作流任務(wù)的執(zhí)行單元;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第一服務(wù)器作為分發(fā)工作流任務(wù)的工作流管理服務(wù)器;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第二服務(wù)器作為數(shù)據(jù)存儲(chǔ)服務(wù)器;(B)建立工作流任務(wù)的網(wǎng)絡(luò)連接模型工作流的任務(wù)是由計(jì)算機(jī)客戶端負(fù)責(zé)執(zhí)行的,一個(gè)工作流任務(wù)完成后即終止或者被傳遞到其它計(jì)算機(jī)客戶端;任務(wù)的傳遞是單向的,依靠計(jì)算機(jī)之間的有線或無線網(wǎng)絡(luò)連接實(shí)現(xiàn);任意兩個(gè)工作流任務(wù)之間最多只能有一個(gè)直接傳遞關(guān)系,但允許一個(gè)工作流任務(wù)完成后被同時(shí)傳遞給多個(gè)工作流任務(wù);網(wǎng)絡(luò)連接模型由工作流任務(wù)和相鄰任務(wù)間的單向傳遞關(guān)系組成;將這種工作流任務(wù)的網(wǎng)絡(luò)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(C)建立工作流任務(wù)網(wǎng)絡(luò)連接模型中的環(huán)連接關(guān)系
不考慮工作流任務(wù)的傳遞方向,在步驟(B)建立的網(wǎng)絡(luò)連接模型中,搜索所有的環(huán)連接關(guān)系;在不考慮工作流任務(wù)間傳遞方向的前提下,從環(huán)連接關(guān)系中的任何一個(gè)節(jié)點(diǎn) (計(jì)算機(jī)客戶端)出發(fā),都可以通過一條或多條路徑回到這個(gè)節(jié)點(diǎn);允許一個(gè)環(huán)連接關(guān)系包含另一個(gè)環(huán)連接關(guān)系(即復(fù)合環(huán)連接關(guān)系),但不允許兩個(gè)環(huán)連接關(guān)系完全一樣;將所有的環(huán)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;
(D)建立普通環(huán)集合和特征環(huán)集合工作流管理服務(wù)器分別創(chuàng)建一個(gè)空的普通環(huán)集合和一個(gè)空的特征環(huán)集合;普通環(huán)集合中的元素在步驟(E)中進(jìn)行添加;特征環(huán)集合中元素在步驟(G)中的第(4)步中進(jìn)行添加;所謂的普通環(huán),即從環(huán)中任何一個(gè)節(jié)點(diǎn)出發(fā),通過一條或多條路徑仍可以回到這個(gè)節(jié)點(diǎn),允許復(fù)合環(huán)連接關(guān)系的存在,但是不允許兩個(gè)環(huán)連接關(guān)系完全一樣;所謂的特征環(huán),即環(huán)連接關(guān)系中任一普通點(diǎn)(初度或入度為0的節(jié)點(diǎn)為特征點(diǎn),其余為普通點(diǎn))都不與該環(huán)連接關(guān)系之外的節(jié)點(diǎn)相連,也就是特征環(huán)只通過特征點(diǎn)與其它外部節(jié)點(diǎn)相連,特征環(huán)內(nèi)的普通點(diǎn)只能存在于特征環(huán)內(nèi)部,而與外部沒有連接關(guān)系;(E)添加普通環(huán)集合元素工作流管理服務(wù)器逐個(gè)取出存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中的環(huán)連接關(guān)系,并添加到普通環(huán)集合中;(F)排序普通環(huán)集合元素工作流管理服務(wù)器對(duì)普通環(huán)集合中的環(huán)連接關(guān)系進(jìn)行排序,排序按照環(huán)連接關(guān)系中包含節(jié)點(diǎn)數(shù)目由少到多的順序進(jìn)行;當(dāng)有多個(gè)環(huán)連接關(guān)系中包含的節(jié)點(diǎn)數(shù)目相同時(shí),這些環(huán)連接關(guān)系之間的順序是任意的;(G)添加特征環(huán)集合元素工作流管理服務(wù)器依據(jù)步驟(F)獲得的排序結(jié)果,從中逐個(gè)取出普通環(huán)集合中的環(huán)連接關(guān)系,并按照以下步驟進(jìn)行處理(1)判斷該環(huán)連接關(guān)系是否被特征環(huán)集合中的環(huán)連接關(guān)系所包含,即該環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部包含于特征環(huán)集合中的某個(gè)環(huán)連接關(guān)系;如果是,則不做任何處理; 如果否,則按照步驟(2)到步驟(4)依次進(jìn)行對(duì)該環(huán)連接關(guān)系進(jìn)行處理;(2)新創(chuàng)建一個(gè)空的普通點(diǎn)集合和一個(gè)空的特征點(diǎn)集合;(3)逐個(gè)取出步驟⑴中環(huán)連接關(guān)系的節(jié)點(diǎn),判斷該節(jié)點(diǎn)的入度(即被傳遞到該節(jié)點(diǎn)的工作流任務(wù)的個(gè)數(shù))或出度(即該節(jié)點(diǎn)向其它節(jié)點(diǎn)傳遞工作流任務(wù)的個(gè)數(shù))是否為 0 ;如果該節(jié)點(diǎn)的入度為0或者出度為0,并且不存在入度和出度同時(shí)為0的情況,則該節(jié)點(diǎn)為特征點(diǎn),將其添加到步驟(2)創(chuàng)建的特征點(diǎn)集合中;如果該節(jié)點(diǎn)的入度和出度都不為0, 則該節(jié)點(diǎn)為普通點(diǎn),將其添加到普通點(diǎn)集合中;(4)逐個(gè)取出經(jīng)過步驟(3)處理后的普通點(diǎn)集合中的節(jié)點(diǎn),依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接模型,判斷與該節(jié)點(diǎn)直接連接的所有其它節(jié)點(diǎn)是否全部被步驟(1)的環(huán)連接關(guān)系所包含;如果不是,則不作處理;如果是,則該環(huán)連接關(guān)系為特征環(huán),將其添加到步驟(D)創(chuàng)建的特征環(huán)集合中,并執(zhí)行以下操作(a)逐個(gè)取出普通環(huán)集合中未經(jīng)步驟(1)判斷的環(huán)連接關(guān)系,并對(duì)其執(zhí)行步驟(b) 中操作;
(b)判斷步驟(4)中判定為特征環(huán)的環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部被包含在步驟 (a)取出的環(huán)連接關(guān)系中;如果是,則刪除普通環(huán)集合中的該環(huán)連接關(guān)系;如果否,則不作操作;(H)將特征環(huán)集合中的所有環(huán)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(I)建立特征點(diǎn)之間的連接關(guān)系 逐個(gè)取出特征環(huán)集合中的環(huán)連接關(guān)系,依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,判斷不同環(huán)連接關(guān)系的特征點(diǎn)之間是否有連接關(guān)系;如果有,將特征點(diǎn)之間的連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(J)所有不包含在特征環(huán)集合中的節(jié)點(diǎn),依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,將其網(wǎng)絡(luò)連接關(guān)系復(fù)制并保存在數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器中。本發(fā)明具有以下有益效果1、本發(fā)明可以實(shí)現(xiàn)復(fù)雜網(wǎng)絡(luò)連接關(guān)系的化簡(jiǎn),有效降低基于網(wǎng)技術(shù)實(shí)現(xiàn)的工作流模型的復(fù)雜程度。特別是當(dāng)環(huán)的內(nèi)部具有交叉連接關(guān)系(可看成多個(gè)環(huán)之間具有公共邊) 時(shí),現(xiàn)有方法無法實(shí)現(xiàn)對(duì)這種情況的進(jìn)一步化簡(jiǎn)。2、現(xiàn)有方法化簡(jiǎn)后的子網(wǎng)絡(luò)只能有單一輸入和輸出點(diǎn),只適用于結(jié)構(gòu)性好、連接簡(jiǎn)單的網(wǎng)絡(luò)化簡(jiǎn)。本發(fā)明允許化簡(jiǎn)后的子網(wǎng)絡(luò)具有多個(gè)輸入或輸出點(diǎn)(即特征點(diǎn)),能用于任意連接結(jié)構(gòu)的網(wǎng)絡(luò)化簡(jiǎn),并能將網(wǎng)絡(luò)化簡(jiǎn)為更多、更小的子網(wǎng)絡(luò),便于計(jì)算機(jī)系統(tǒng)對(duì)工作流模型的分析和控制。3、本發(fā)明化簡(jiǎn)后的子網(wǎng)絡(luò),只能通過特征點(diǎn)和外界進(jìn)行連接,實(shí)現(xiàn)了子網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)信息的隱藏,可簡(jiǎn)化計(jì)算機(jī)系統(tǒng)的分析和設(shè)計(jì),增強(qiáng)計(jì)算機(jī)系統(tǒng)分析工作流模型的能力,提高計(jì)算機(jī)系統(tǒng)運(yùn)行工作流的效率。4、本發(fā)明的方法簡(jiǎn)單,易用。
圖1是用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例系統(tǒng)包括的設(shè)備框圖;圖2是本發(fā)明的實(shí)例運(yùn)行環(huán)境圖;圖3是工作流任務(wù)的圖形化表示;圖4是本發(fā)明的工作流過程圖形化表示示例;圖5是本發(fā)明的流程圖;圖6是添加特征環(huán)集合元素的流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施做進(jìn)一步詳細(xì)描述圖1是用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例系統(tǒng)包括諸如計(jì)算設(shè)備等計(jì)算設(shè)備。計(jì)算設(shè)備可被配置成客戶機(jī)、服務(wù)器。在最基本的配置中,計(jì)算設(shè)備通常包括至少一個(gè)處理單元、 系統(tǒng)存儲(chǔ)器、程序。取決于計(jì)算設(shè)備的確切配置和類型,系統(tǒng)存儲(chǔ)器可以是易失性的(如 RAM)、非易失性的(如ROM、閃存等)或者這兩者的組合。系統(tǒng)存儲(chǔ)器通常包括操作系統(tǒng)、應(yīng)用程序,并可包括程序數(shù)據(jù)。計(jì)算設(shè)備可具有其它功能。如計(jì)算設(shè)備還可包括諸如磁盤、光盤等數(shù)據(jù)存儲(chǔ)設(shè)備。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括以存儲(chǔ)諸如計(jì)算機(jī)可讀指令、程序模塊或其他數(shù)據(jù)信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性、非易失性的、可移動(dòng)的、不可移動(dòng)的介質(zhì)。系統(tǒng)存儲(chǔ)器、可移動(dòng)存儲(chǔ)及不可移動(dòng)存儲(chǔ)都是計(jì)算機(jī)存儲(chǔ)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM, ROM, EEPROM、 閃存或其他存儲(chǔ)器技術(shù),CD-ROM、數(shù)字多功能盤(DVD)或其他光學(xué)存儲(chǔ),磁帶盒、磁盤存儲(chǔ)或任何其它可用于存儲(chǔ)期望信息并可由計(jì)算設(shè) 備訪問的介質(zhì)。計(jì)算設(shè)備還可具有諸如鍵盤、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等輸入設(shè)備。還可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等輸出設(shè)備。計(jì)算設(shè)備還包括設(shè)備通過網(wǎng)絡(luò)與其他計(jì)算設(shè)備通信的通信連接。網(wǎng)絡(luò)包括局域網(wǎng)和廣域網(wǎng)。圖2是本發(fā)明實(shí)例運(yùn)行環(huán)境圖,運(yùn)行本發(fā)明的方法需要按照上圖將計(jì)算設(shè)備聯(lián)入網(wǎng)絡(luò)。運(yùn)行環(huán)境包含服務(wù)器端和客戶端,以及連接服務(wù)器端和客戶端的網(wǎng)絡(luò)。其中網(wǎng)絡(luò)可以是局域網(wǎng)和廣域網(wǎng)。服務(wù)器由一個(gè)或多個(gè)工作流管理服務(wù)器和一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)服務(wù)器組成,將工作流管理服務(wù)器作為第一服務(wù)器,主要用于分發(fā)工作任務(wù),將數(shù)據(jù)存儲(chǔ)服務(wù)器作為第二服務(wù)器,主要用于存儲(chǔ)相關(guān)數(shù)據(jù)。下述為實(shí)現(xiàn)本發(fā)明方法的詳細(xì)步驟(A)、建立工作流節(jié)點(diǎn)模型①配置工作流管理服務(wù)器、數(shù)據(jù)存儲(chǔ)服務(wù)器、客戶端。配置工作流管理服務(wù)器選擇圖1所示的計(jì)算設(shè)備為工作流管理服務(wù)器的硬件配置,在工作流管理服務(wù)器計(jì)算設(shè)備上安裝操作系統(tǒng)軟件,其中操作系統(tǒng)軟件可以是 Windows, linus, Unix,蘋果OS等,并安裝西安交通大學(xué)電氣工程學(xué)院開發(fā)的工作流管理系統(tǒng),以及運(yùn)行工作流管理系統(tǒng)環(huán)境Java Runtime Environment配置數(shù)據(jù)存儲(chǔ)服務(wù)器選擇圖1所示的計(jì)算設(shè)備為數(shù)據(jù)存儲(chǔ)服務(wù)器的硬件配置, 在數(shù)據(jù)存儲(chǔ)服務(wù)器安裝操作系統(tǒng)軟件以及數(shù)據(jù)庫(kù)管理軟件。Windows,linus,Unix,蘋果 OS各類的各個(gè)版本是操作系統(tǒng)軟件示例,數(shù)據(jù)庫(kù)管理軟件可以是Microsoft SQL Server, Visual FoxPro, Oracle, Microsoft Access,MySQL 等關(guān)系型數(shù)據(jù)庫(kù)管理軟件。配置客戶端選擇圖1所示的計(jì)算設(shè)備為客戶端的硬件配置,在客戶端上至少安裝有操作系統(tǒng)軟件,例如Windows,linus, Unix,蘋果OS等,瀏覽器,例如Internet Explorer, Firefox 等。②將工作流管理服務(wù)器、數(shù)據(jù)存儲(chǔ)服務(wù)器、客戶端按照?qǐng)D2進(jìn)行網(wǎng)絡(luò)連接,以連接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為完成不同工作任務(wù)的執(zhí)行者;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第一服務(wù)器作為分發(fā)工作任務(wù)的工作流管理服務(wù)器;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第二服務(wù)器作為數(shù)據(jù)存儲(chǔ)服務(wù)器;將服務(wù)器和計(jì)算機(jī)客戶端作為工作流節(jié)點(diǎn)。(B)、建立工作流任務(wù)的網(wǎng)絡(luò)連接模型工作流任務(wù)的網(wǎng)絡(luò)連接指客戶端與服務(wù)器之間的計(jì)算機(jī)網(wǎng)絡(luò)連接。在工作流任務(wù)的網(wǎng)絡(luò)連接模型中,工作流的任務(wù)是由計(jì)算機(jī)客戶端負(fù)責(zé)執(zhí)行的,一個(gè)工作流任務(wù)完成后即終止或者被傳遞到其它計(jì)算機(jī)客戶端;任務(wù)的傳遞是單向的,依靠計(jì)算機(jī)之間的有線或無線網(wǎng)絡(luò)連接實(shí)現(xiàn);任意兩個(gè)工作流任務(wù)之間最多只能有一個(gè)直接傳遞關(guān)系,但是允許一個(gè)工作流任務(wù)完成被同時(shí)傳遞給多個(gè)工作流任務(wù);工作流任務(wù)的網(wǎng)絡(luò)連接模型由工作流任務(wù)和任務(wù)之間的單向傳遞關(guān)系組成。為了方便建立工作流任務(wù)的網(wǎng)絡(luò)連接模型,采用圖形化設(shè)計(jì)的形式表示工作流任務(wù)的網(wǎng)絡(luò)連接模型,下面以圓圈表示工作流任務(wù),以帶箭頭的弧表示網(wǎng)絡(luò)連接,以波浪線表示經(jīng)過化簡(jiǎn)后的網(wǎng)絡(luò)連接,如圖3所示;
(1)按照?qǐng)D3所示的工作流 節(jié)點(diǎn)圖形化表示形式及上述的工作流任務(wù)的關(guān)系在工作流管理服務(wù)器上建立工作流節(jié)點(diǎn)的網(wǎng)絡(luò)連接模型;(2)將建立的工作流節(jié)點(diǎn)的網(wǎng)絡(luò)連接模型保存在數(shù)據(jù)存儲(chǔ)服務(wù)器中。以上所述的工作流過程的網(wǎng)絡(luò)連接關(guān)系是以XML格式或XPDL格式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中或以二維表的形式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器上關(guān)系型數(shù)據(jù)庫(kù)中。下面以圖4所示的工作流流程為例,說明通過特征環(huán)實(shí)現(xiàn)工作流化簡(jiǎn)的步驟。(C)、建立工作流任務(wù)網(wǎng)絡(luò)連接模型中的環(huán)連接關(guān)系環(huán)連接關(guān)系中的節(jié)點(diǎn)滿足如下條件在不考慮工作流任務(wù)間傳遞方向的前提下, 從環(huán)連接關(guān)系中的任何一個(gè)節(jié)點(diǎn)(計(jì)算機(jī)客戶端)出發(fā),都可以通過一條或多條不同路徑回到這個(gè)節(jié)點(diǎn),具體如下;在步驟(B)建立的工作流任務(wù)的網(wǎng)絡(luò)連接模型中,搜索所有的環(huán)連接關(guān)系;在不考慮工作流任務(wù)間傳遞方向的前提下,從環(huán)連接關(guān)系中的任何一個(gè)節(jié)點(diǎn)(計(jì)算機(jī)客戶端) 出發(fā),都可以通過一條或多條不同路徑回到這個(gè)節(jié)點(diǎn);允許一個(gè)環(huán)連接關(guān)系包含另一個(gè)環(huán)連接關(guān)系,但不允許兩個(gè)環(huán)連接關(guān)系完全一樣;將所有的環(huán)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器服務(wù)器中;如圖4所示流程示例圖中,可以得到的環(huán)連接關(guān)系有(用節(jié)點(diǎn)來表示,V1-V11代表節(jié)點(diǎn))P1 = {v2, V3, V4I, P2 = {v8, v9, V1J , P3 = Iv10, v9, V1J , p4 = {v2, V3, V4, V5, ν6}, ρ5
={ν2, V3, V5, V6I , P6 = Iv3, V4, V6, V7I , P7 = Iv8, V9, V10, V11I , P8 = Iv2, V5, V6, V4, V5I......(D)建立普通環(huán)和特征環(huán)集合工作流管理服務(wù)器分別創(chuàng)建一個(gè)空的普通環(huán)集合和一個(gè)空的特征環(huán)集合;普通環(huán)集合中的元素在步驟(E)中進(jìn)行添加;特征環(huán)集合中元素在步驟(G)中進(jìn)行添加;(E)添加普通環(huán)集合元素工作流管理服務(wù)器逐個(gè)取出步驟(C)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中的環(huán)連接關(guān)系,將其添加到普通環(huán)集合中,普通環(huán)集合中存放的是工作流任務(wù)網(wǎng)絡(luò)連接模型中的所有環(huán)連接關(guān)系;以圖4為例,普通環(huán)集合中的元素有P1; P2, P3, P4,P5,P6, P7, P8......(F)排序普通環(huán)集合元素工作流管理服務(wù)器對(duì)普通環(huán)集合中的環(huán)連接關(guān)系進(jìn)行排序,排序按照環(huán)連接關(guān)系中包含節(jié)點(diǎn)數(shù)目由少到多的順序進(jìn)行;當(dāng)有多個(gè)環(huán)連接關(guān)系中包含的節(jié)點(diǎn)數(shù)目相同時(shí),這些環(huán)連接關(guān)系之間的順序是任意的;如圖4所示流程示例圖中,經(jīng)過排序后的普通環(huán)集合中的元素為Pl,p,p3, P5, P6, P7' P4' P8......(G)添加特征環(huán)集合元素工作流管理服務(wù)器對(duì)經(jīng)過步驟(F)排序的普通環(huán)集合中元素進(jìn)行篩選,選出符合特征環(huán)條件的環(huán)連接關(guān)系,將其添加到步驟(D)建立的特征環(huán)集合中,其詳細(xì)步驟如下所
7J\ ο1)工作流管理服務(wù)器獲得步驟(F)排序過的普通環(huán)集合;2)逐一取出經(jīng)過排序后的普通環(huán)集合中的環(huán)連接關(guān)系,并執(zhí)行步驟(3)操作;
3)判斷該環(huán)連接關(guān)系是否被特征環(huán)集合中的環(huán)連接關(guān)系所包含,即該環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部包含于特征環(huán)集合中的某個(gè)環(huán)連接關(guān)系;即該環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部屬于特征環(huán)集合中的某一個(gè)環(huán)連接;如果是,則對(duì)其不作處理,并執(zhí)行步驟9);如果否,則按照步驟4)到步驟8)進(jìn)行處理;4)創(chuàng)建一個(gè)空的普通點(diǎn)集合和一個(gè)空的特征點(diǎn)集合;5)逐個(gè)取出環(huán)連接關(guān)系中的節(jié)點(diǎn)(即工作流任務(wù)),判斷該節(jié)點(diǎn)的入度或出度是否為0 ;如果是(即該節(jié)點(diǎn)的出度為0,或者入度為0,并且不存在入度、出度同時(shí)為0的情況),則該節(jié)點(diǎn)為特征點(diǎn),將該節(jié)點(diǎn)添加到步驟4)創(chuàng)建的特征點(diǎn)集合中;如果不是,則該節(jié)點(diǎn)為普通點(diǎn),將該節(jié)點(diǎn)添加到步驟4)創(chuàng)建的普通點(diǎn)集合中; 6)重復(fù)5)直到該環(huán)連接關(guān)系中的節(jié)點(diǎn)全部經(jīng)過出度入度的判斷,添加到普通點(diǎn)集合或者特征點(diǎn)集合中;7)逐個(gè)取出經(jīng)過6)處理的普通點(diǎn)集合中的節(jié)點(diǎn),依據(jù)步驟⑶建立的網(wǎng)絡(luò)連接模型,獲得與該節(jié)點(diǎn)直接連接(即中間沒有其它節(jié)點(diǎn))的所有其他節(jié)點(diǎn);8)逐個(gè)取出7)獲得的連接節(jié)點(diǎn),判斷這些節(jié)點(diǎn)是否都在該環(huán)連接關(guān)系中;如果不是,則該環(huán)連接關(guān)系不是特征環(huán),則對(duì)其不作處理,并執(zhí)行步驟9);如果是,則該環(huán)連接關(guān)系為特征環(huán),將其添加到步驟(D)創(chuàng)建的特征環(huán)集合中,并執(zhí)行以下操作進(jìn)行節(jié)點(diǎn)包含判斷(a)逐個(gè)取出普通環(huán)集合中未經(jīng)步驟(1)判斷的環(huán)連接關(guān)系,并對(duì)其執(zhí)行步驟(b) 中操作;(b)判斷步驟(4)中判定為特征環(huán)的環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部被包含在步驟 (a)取出的環(huán)連接關(guān)系中;如果是,則刪除普通環(huán)集合中的該環(huán)連接關(guān)系;如果否,則重復(fù)步驟(a)到(b)操作,直到普通環(huán)集合中特征環(huán)以后的環(huán)連接關(guān)系全部經(jīng)過節(jié)點(diǎn)包含判斷;9)重復(fù)步驟2)直到普通環(huán)集合中的環(huán)連接關(guān)系全部判斷完,即特征環(huán)集合中元素添加完畢。上述步驟的詳細(xì)的流程圖如6所示,當(dāng)工作流服務(wù)器開始添加特征環(huán)集合元素時(shí),工作流服務(wù)器獲得經(jīng)過排序的普通環(huán)集合PC = {Pl ;p2 ;P3 ;P5 ;P6 ;P7 ;P4 ;p8},從PC中逐個(gè)取出環(huán)連接關(guān)系PCi ;工作流服務(wù)器獲得特征環(huán)集合TC,取出TC中的特征環(huán)TCj ;判斷PCi 是否被TCj所包含,若包含,則判斷是否從PC中取出所有的環(huán)連接關(guān)系,若不包含,則重復(fù)上一步直至TCj全部判斷完畢;然后創(chuàng)建空的特征點(diǎn)集合TD和普通點(diǎn)集合PD,取得PCi的節(jié)點(diǎn)PCid,判斷PCid的入度I (PCid)或者出度0 (PCid)是否為0,若為0則該節(jié)點(diǎn)為特征點(diǎn),將其添加到特征點(diǎn)集合TD中,若都不為0則該節(jié)點(diǎn)為普通點(diǎn),將其添加到普通點(diǎn)集合PD中; 當(dāng)環(huán)連接關(guān)系中的節(jié)點(diǎn)全部判斷完成后,取出普通點(diǎn)集合中節(jié)點(diǎn)PDm,獲得與?0 1直接相連接的節(jié)點(diǎn)集合LD,判斷LD中節(jié)點(diǎn)LDn是否屬于環(huán)連接關(guān)系PCi,若屬于,則PCi是特征環(huán),將其添加到TC中,并判斷普通環(huán)集合中PCi后面的環(huán)連接關(guān)系中是否含有PCi的全部節(jié)點(diǎn),若含有,則刪除PC中的該環(huán)連接關(guān)系;最后當(dāng)PC中的所有環(huán)連接關(guān)系都判斷完畢后,特征環(huán)集合元素添加完畢,且TC = {p7 ;p4}。(H)、將步驟(G)最終操作后獲得的特征環(huán)集合中的所有環(huán)連接關(guān)系存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中。(I)、建立特征點(diǎn)之間的連接 關(guān)系逐個(gè)取出特征環(huán)集合中的環(huán)連接關(guān)系,依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,判斷不同環(huán)連接關(guān)系的特征點(diǎn)之間是否有連接關(guān)系;如果有,特征點(diǎn)之間的連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;工作流管理服務(wù)器從數(shù)據(jù)存儲(chǔ)服務(wù)器中取得特征環(huán)集合中的環(huán)連接關(guān)系TC = {p7 ;P4 I P7 = {v8, V9, V10, V1J , P4 = {¥2, ,¥5, }},建立特征環(huán)的簡(jiǎn)化結(jié)構(gòu)模型關(guān)系,如圖4(bi)特征環(huán)P7的化簡(jiǎn)和圖4 (b2)中的特征環(huán)P4的化簡(jiǎn);然后經(jīng)判斷得特征環(huán)P7的特征點(diǎn)V2、V6分別與特征環(huán)P4的特征點(diǎn)v8、V11存在連接關(guān)系,兩個(gè)特征環(huán)連接的簡(jiǎn)化模型如圖 4(b3)中所示。(J)、所有不包含在特征環(huán)集合中的節(jié)點(diǎn),依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,將其網(wǎng)絡(luò)連接關(guān)系復(fù)制并保存在數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器中;工作流管理服務(wù)器按照步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系獲得特征環(huán)集合外的節(jié)點(diǎn)V1 和V7,保持其連接關(guān)系不變,因此最終的化簡(jiǎn)模型如圖4(b3)所示,V1與V2連接,V7分別與 V4和V6連接。
權(quán)利要求
1. 一種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法,其特征在于,包括以下步驟(A)建立工作流節(jié)點(diǎn)模型工作流節(jié)點(diǎn)由服務(wù)器和計(jì)算機(jī)客戶端組成,以連接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為工作流任務(wù)的執(zhí)行單元;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第一服務(wù)器作為分發(fā)工作流任務(wù)的管理服務(wù)器;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第二服務(wù)器作為數(shù)據(jù)存儲(chǔ)服務(wù)器;(B)建立工作流任務(wù)的網(wǎng)絡(luò)連接模型工作流的任務(wù)是由計(jì)算機(jī)客戶端負(fù)責(zé)執(zhí)行的,一個(gè)工作流任務(wù)完成后即終止或者被傳遞到其它計(jì)算機(jī)客戶端;任務(wù)的傳遞是單向的,通過計(jì)算機(jī)之間的有線或無線網(wǎng)絡(luò)連接實(shí)現(xiàn);任意兩個(gè)工作流任務(wù)之間最多只能有一個(gè)直接傳遞關(guān)系,但一個(gè)工作流任務(wù)完成后可以被傳遞給一個(gè)或多個(gè)工作流任務(wù);網(wǎng)絡(luò)連接模型由工作流任務(wù)和相鄰任務(wù)間的單向傳遞關(guān)系組成;將這種工作流任務(wù)的網(wǎng)絡(luò)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(C)建立工作流任務(wù)網(wǎng)絡(luò)連接模型中的環(huán)連接關(guān)系在步驟(B)建立的網(wǎng)絡(luò)連接模型中,搜索所有的環(huán)連接關(guān)系;將所有的環(huán)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;所謂的環(huán)連接關(guān)系是指從任何一個(gè)節(jié)點(diǎn)出發(fā),通過一條或多條路徑回到這個(gè)節(jié)點(diǎn)的連接;(D)建立普通環(huán)集合和特征環(huán)集合工作流管理服務(wù)器分別創(chuàng)建一個(gè)空的普通環(huán)集合和一個(gè)空的特征環(huán)集合;普通環(huán)集合中的元素在步驟(E)中進(jìn)行添加;特征環(huán)集合中的元素在步驟(G)中的第4步進(jìn)行添加;(E)添加普通環(huán)集合元素工作流管理服務(wù)器逐個(gè)取出存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中的環(huán)連接關(guān)系,并添加到普通環(huán)集合中;(F)排序普通環(huán)集合元素工作流管理服務(wù)器對(duì)普通環(huán)集合中的環(huán)連接關(guān)系進(jìn)行排序,排序按照環(huán)連接關(guān)系中包含節(jié)點(diǎn)數(shù)目由少到多的順序進(jìn)行;當(dāng)有多個(gè)環(huán)連接關(guān)系中包含的節(jié)點(diǎn)數(shù)目相同時(shí),這些環(huán)連接關(guān)系之間的順序是任意的;(G)添加特征環(huán)集合元素工作流管理服務(wù)器依據(jù)步驟(F)獲得的排序結(jié)果,從中逐個(gè)取出普通環(huán)集合中的環(huán)連接關(guān)系,并將取得的環(huán)連接關(guān)系執(zhí)行以下步驟(1)判斷該環(huán)連接關(guān)系是否被特征環(huán)集合中的環(huán)連接關(guān)系所包含,即該環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部包含于特征環(huán)集合中的某個(gè)環(huán)連接關(guān)系;如果是,則不做任何處理;如果否,則按照步驟(2)到步驟(4)依次對(duì)該環(huán)連接關(guān)系進(jìn)行處理;(2)新創(chuàng)建一個(gè)空的普通點(diǎn)集合和一個(gè)空的特征點(diǎn)集合;(3)逐個(gè)取出步驟(1)中環(huán)連接關(guān)系的節(jié)點(diǎn),判斷各個(gè)節(jié)點(diǎn)的入度或出度是否為O;所述入度為被傳遞到該節(jié)點(diǎn)的工作流任務(wù)的個(gè)數(shù);所述出度為該節(jié)點(diǎn)向其它節(jié)點(diǎn)傳遞的工作流任務(wù)的個(gè)數(shù);如果該節(jié)點(diǎn)的入度為O或者出度為0,并且排除入度和出度同時(shí)為0的情況,則該節(jié)點(diǎn)為特征點(diǎn),將其添加到步驟(2)創(chuàng)建的特征點(diǎn)集合中;如果該節(jié)點(diǎn)的入度和出度都不為0,則該節(jié)點(diǎn)為普通點(diǎn),將其添加到普通點(diǎn)集合中;(4)逐個(gè)取出經(jīng)過步驟(3)處理后的普通點(diǎn)集合中的節(jié)點(diǎn),依據(jù)步驟⑶建立的網(wǎng)絡(luò)連接模型,判斷與該節(jié)點(diǎn)直接連接的所有其它節(jié)點(diǎn)是否全部被步驟(1)的環(huán)連接關(guān)系所包含;如果不是,則不作處理;如果是,則該環(huán)連接關(guān)系為特征環(huán),將其添加到步驟⑶創(chuàng)建的特征環(huán)集合中,并執(zhí)行以下操作(a)逐個(gè)取出普通環(huán)集合中未經(jīng)步驟(1)判斷的環(huán)連接關(guān)系,并對(duì)其執(zhí)行步驟(b)中操作;(b)判斷步驟(4)中判定為特征環(huán)的環(huán)連接關(guān)系中的節(jié)點(diǎn)是否全部被包含在步驟(a) 取出的環(huán)連接關(guān)系中;如果是,則刪除普通環(huán)集合中的該環(huán)連接關(guān)系;如果否,則不作操作;(H)將特征環(huán)集合中的所有環(huán)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(I)建立特征點(diǎn)之間的連接關(guān)系逐個(gè)取出特征環(huán)集合中的環(huán)連接關(guān)系,依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,判斷不同環(huán)連接關(guān)系的特征點(diǎn)之間是否有連接關(guān)系;如果有,將特征點(diǎn)之間的連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(J)所有不包含在特征環(huán)集合中的節(jié)點(diǎn),依據(jù)步驟(B)建立的網(wǎng)絡(luò)連接關(guān)系,將其網(wǎng)絡(luò)連接關(guān)系復(fù)制并保存在數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器中。
2.根據(jù)權(quán)利要求1所述的一種通過特征環(huán)來實(shí)現(xiàn)工作流化簡(jiǎn)的方法,其特征在于,步驟(B)中,所述工作流任務(wù)的網(wǎng)絡(luò)連接關(guān)系是以XML格式或XPDL格式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中或以二維表的形式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器上關(guān)系型數(shù)據(jù)庫(kù)中。
全文摘要
本發(fā)明公開了一種通過特征環(huán)實(shí)現(xiàn)工作流化簡(jiǎn)的方法,該方法通過建立工作流節(jié)點(diǎn)模型、建立工作流過程的網(wǎng)絡(luò)連接模型、建立工作流普通環(huán)集合及特征環(huán)集合、工作流管理服務(wù)器按照下述步驟篩選普通環(huán)集合中符合特征環(huán)條件的環(huán)連接關(guān)系等步驟,在工作流模型的化簡(jiǎn)的實(shí)現(xiàn)方案中引入特征環(huán)方法,簡(jiǎn)化了工作流的建模,使所建立的模型清晰易讀。
文檔編號(hào)G06Q10/06GK102436611SQ20111044894
公開日2012年5月2日 申請(qǐng)日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者胡飛虎, 邵曉寒 申請(qǐng)人:西安交通大學(xué)