專利名稱:一種通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于工作流技術(shù)領(lǐng)域,涉及工作流多實(shí)例的計(jì)算機(jī)實(shí)現(xiàn)方法,特別涉及
種通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例的方法。
背景技術(shù):
在工作流建模技術(shù)的應(yīng)用領(lǐng)域中,多實(shí)例是指工作流過程模型中相同結(jié)構(gòu)的定義 產(chǎn)生多個(gè)實(shí)例的現(xiàn)象。在工作流過程建模中,可能很簡(jiǎn)單的工作流過程模型,因?yàn)槎鄬?shí)例, 利用現(xiàn)有的技術(shù)要建立復(fù)雜的模型,或?qū)崿F(xiàn)方法復(fù)雜,或者無法實(shí)現(xiàn)。為了減輕建模人員的 負(fù)擔(dān),降低流程模型的復(fù)雜度,本發(fā)明提出了一種通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例 的方法。 對(duì)于工作流建模中多實(shí)例的現(xiàn)有解決方案有以下幾種
文獻(xiàn)一 種多實(shí)例工作流模式的解決方案[J].計(jì)算機(jī)工程與科 學(xué),2005, 27(1) :89-92.提出 一種基于"活動(dòng)數(shù)組"的多實(shí)例活動(dòng)建模方案,將"活動(dòng)數(shù) 組"作為新的活動(dòng)類型加入建模元素中。此方法提出增加新元素來表達(dá)多實(shí)例的方法使其 通用性下降;
文獻(xiàn)支持多實(shí)例模式的動(dòng)態(tài)工作流研究許甸,李建華,劉星沙,夏媛;計(jì)算機(jī)應(yīng)用
討論了一種具有動(dòng)態(tài)性的建模方法,提出了一種動(dòng)態(tài)組裝活動(dòng)執(zhí)行部件設(shè)計(jì)方案。
當(dāng)今實(shí)現(xiàn)的方案中,大多基于活動(dòng)的建模方法,要么在現(xiàn)有的建模元素基礎(chǔ)上做 擴(kuò)展,要么提出新的建模元素,使其通用性降低;多采用循環(huán)等間接方式支持多實(shí)例,并且 未能實(shí)現(xiàn)的所有多實(shí)例類型,且不支持嵌套的方式;不符合現(xiàn)實(shí)中復(fù)雜的流程建模要求,無 法滿足用戶復(fù)雜的流程建模需求。 本發(fā)明是在工作流模型的多實(shí)例實(shí)現(xiàn)方案中引入一種網(wǎng)絡(luò)結(jié)構(gòu)劃分方法,支持 多實(shí)例嵌套,且同一工作角色既可參加多實(shí)例任務(wù),同時(shí)又可參加非多實(shí)例任務(wù),簡(jiǎn)化了工 作流中多個(gè)相同結(jié)構(gòu)的實(shí)例的建模,使所建立的模型清晰易讀。
發(fā)明內(nèi)容
本發(fā)明目的在于克服現(xiàn)有技術(shù)的缺點(diǎn),提供一種用于實(shí)現(xiàn)工作流多實(shí)例的網(wǎng)結(jié)構(gòu) 劃分方法,該方法在工作流模型的多實(shí)例實(shí)現(xiàn)方案中引入一種網(wǎng)絡(luò)結(jié)構(gòu)劃分方法,簡(jiǎn)化了 工作流中多個(gè)結(jié)構(gòu)相同的實(shí)例的建模,使所建立的模型清晰易讀。且使該方法能夠支持多 實(shí)例嵌套,使同一工作角色既可參加多實(shí)例任務(wù),同時(shí)又可參加非多實(shí)例任務(wù)。
本發(fā)明的目的是通過以下技術(shù)方案來解決的
該種通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例的方法,包括以下步驟
(A) 建立工作流節(jié)點(diǎn)模型
工作流節(jié)點(diǎn)由服務(wù)器和計(jì)算機(jī)客戶端組成,以連接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為 完成不同工作任務(wù)的工作角色;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第一服務(wù)器作為分發(fā)工作任 務(wù)的工作流管理服務(wù)器;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第二服務(wù)器作為數(shù)據(jù)存儲(chǔ)服務(wù)器;
(B) 建立工作流過程的網(wǎng)絡(luò)連接模型
一個(gè)工作角色參與一個(gè)或多個(gè)工作任務(wù),一個(gè)工作任務(wù)由一個(gè)或多個(gè)工作角色來協(xié)作 完成;一個(gè)工作任務(wù)完成后即終止或者將工作任務(wù)傳遞給其它工作角色,將這種工作流過 程的網(wǎng)絡(luò)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;
(C) 建立工作流多實(shí)例的任務(wù)集
一個(gè)工作流多實(shí)例包含一個(gè)或多個(gè)工作任務(wù),將這種包含關(guān)系稱為工作流多實(shí)例的任 務(wù)集并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;
(D) 工作流管理服務(wù)器按照下述步驟篩選工作流多實(shí)例包含的工作角色集并劃定工作
流多實(shí)例的網(wǎng)絡(luò)連接邊界集
1) 篩選工作流多實(shí)例包含的工作角色集根據(jù)步驟(C)確定的工作流多實(shí)例的任務(wù) 集,逐一取得工作任務(wù),并將取得的每一個(gè)工作任務(wù)執(zhí)行以下步驟;
a) 工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得參與工作任務(wù)的所有工 作角色;
b) 逐一判斷工作角色所參與的工作任務(wù)是否全部屬于步驟(C)確定的工作流多實(shí)例的 任務(wù)集;若全部屬于,則將該工作角色加入到工作流多實(shí)例的工作角色集中;若不全部屬 于,則復(fù)制該工作角色,并使新復(fù)制工作角色和原工作角色具有相同的網(wǎng)絡(luò)連接關(guān)系;
c) 刪除原工作角色參與的非工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系,并將原工作角色加入 到工作流多實(shí)例的工作角色集中;刪除新復(fù)制工作角色參與的工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連 接關(guān)系;所述的工作流多實(shí)例任務(wù)為步驟(C)確定的工作流多實(shí)例的任務(wù)集中的一個(gè)工作 任務(wù);
2) 劃定工作流多實(shí)例的網(wǎng)絡(luò)連接輸入邊界集根據(jù)步驟1)獲得的工作流多實(shí)例的工 作角色集,逐一取得工作角色,并將取得的每一個(gè)工作角色執(zhí)行以下步驟
i. 工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得傳遞工作任務(wù)給該工 作角色的網(wǎng)絡(luò)連接集;
ii. 逐一判斷網(wǎng)絡(luò)連接是否將多實(shí)例工作任務(wù)傳遞給該工作角色,若不是將多 實(shí)例工作任務(wù)傳遞給該工作角色,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例網(wǎng)絡(luò)連接輸入邊界 集中;所述的多實(shí)例工作任務(wù)為步驟(C)確定的工作流多實(shí)例任務(wù)集中的一個(gè)工作任務(wù);
3) 確定工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集根據(jù)步驟(C)確定的工作流多實(shí)例的任 務(wù)集,逐一取得工作任務(wù),并將取得的每一個(gè)工作任務(wù)執(zhí)行下述步驟
I. 工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得該工作任務(wù)要傳遞的網(wǎng) 絡(luò)連接集;
II. 逐一判斷網(wǎng)絡(luò)連接是否將工作任務(wù)傳遞給工作流多實(shí)例角色,所述的工 作流多實(shí)例角色為步驟(C)確定的工作流多實(shí)例的工作角色集的一個(gè);若網(wǎng)絡(luò)連接沒有將工作任務(wù)傳遞給工作流多實(shí)例角色,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例網(wǎng)絡(luò)連接輸出邊 界集中;
4)以上步驟2)和3)中的工作流多實(shí)例網(wǎng)絡(luò)連接輸入邊界和工作流多實(shí)例網(wǎng)絡(luò)連接輸 出邊界組成所述的工作流多實(shí)例的網(wǎng)絡(luò)連接邊界;
(E) 將步驟(D)取得的工作流多實(shí)例包含的工作角色集和工作流多實(shí)例的網(wǎng)絡(luò)連接邊 界存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中;
(F) 當(dāng)工作流管理服務(wù)器創(chuàng)建工作流多實(shí)例時(shí),首先確定需要?jiǎng)?chuàng)建的實(shí)例數(shù)目,之后 從數(shù)據(jù)存儲(chǔ)服務(wù)器中取出工作流多實(shí)例包含的工作角色集、工作流多實(shí)例包含的工作任務(wù) 集、工作流多實(shí)例網(wǎng)絡(luò)連接邊界集,并復(fù)制實(shí)例數(shù)目份,存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中。 進(jìn)一步的,上述步驟(B)中,所述工作流過程的網(wǎng)絡(luò)連接關(guān)系是以XML格式或XPDL 格式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中或以二維表的形式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器上關(guān)系型數(shù)據(jù)庫(kù) 中。 本發(fā)明具有以下有益效果
本發(fā)明解決了現(xiàn)有技術(shù)中大多基于活動(dòng)的建模、通用性降低的缺點(diǎn),在工作流模型的 多實(shí)例實(shí)現(xiàn)方案中引入網(wǎng)絡(luò)結(jié)構(gòu)劃分方法,支持多實(shí)例嵌套,同一工作角色既可參加多實(shí) 例任務(wù),同時(shí)又可參加非多實(shí)例任務(wù),簡(jiǎn)化了工作流中多個(gè)結(jié)構(gòu)相同的實(shí)例的建模,使所 建立的模型清晰易讀。同時(shí)使建模者把精力集中在具體的業(yè)務(wù)邏輯上,而不用過多的關(guān)注 特定的建模語(yǔ)言的使用技巧。
圖1是用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例系統(tǒng)包括的設(shè)備框圖; 圖2是本發(fā)明的實(shí)施例運(yùn)行環(huán)境圖; 圖3是工作流節(jié)點(diǎn)的圖形化表示視圖; 圖4是稿件審稿示例流程圖5是獲得工作流多實(shí)例節(jié)點(diǎn)及邊界流程圖; 圖6是取得多實(shí)例角色集流程圖; 圖7是取得多實(shí)例的網(wǎng)絡(luò)連接輸入邊界集流程圖; 圖8是取得多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施做進(jìn)一步描述
圖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)、非易 失性的(如R0M、閃存等)或者這兩者的組合。系統(tǒng)存儲(chǔ)器通常包括操作系統(tǒng)、應(yīng)用程序,并
6可包括程序數(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, R0M, EEPR0M、 閃存或其他存儲(chǔ)器技術(shù),CD-R0M、數(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, li皿s,Unix,蘋果OS等,并安裝西安交通大學(xué)電氣工程學(xué)院開發(fā)的工作流管理系 統(tǒng),以及運(yùn)行工作流管理系統(tǒng)環(huán)境JavaR皿Time。 配置數(shù)據(jù)存儲(chǔ)服務(wù)器選擇圖1所示的計(jì)算設(shè)備為數(shù)據(jù)存儲(chǔ)服務(wù)器的硬件配置, 在數(shù)據(jù)存儲(chǔ)服務(wù)器安裝操作系統(tǒng)軟件以及數(shù)據(jù)庫(kù)管理軟件。Windows, li皿s,Unix,蘋果OS 各類的各個(gè)版本是操作系統(tǒng)軟件示例,數(shù)據(jù)庫(kù)管理軟件可以是MicrosoftSQLServer,Visua 1FoxPro, Oracle, MicrosoftAccess, MySQL等關(guān)系型數(shù)據(jù)庫(kù)管理軟件。 配置客戶端選擇圖l所示的計(jì)算設(shè)備為客戶端的硬件配置,在客戶端 上至少安裝有操作系統(tǒng)軟件,例如Windows, li皿s, Unix,蘋果OS等,瀏覽器,例如 InternetExplorer, Firefox等。 ②將工作流管理服務(wù)器、數(shù)據(jù)存儲(chǔ)服務(wù)器、客戶端按照?qǐng)D2進(jìn)行網(wǎng)絡(luò)連接,以連
接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為完成不同工作任務(wù)的工作角色;以連接于網(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ǎng)絡(luò)連接模型
工作流過程的網(wǎng)絡(luò)連接指客戶端與服務(wù)器之間的計(jì)算機(jī)網(wǎng)絡(luò)連接。在工作流過程的 網(wǎng)絡(luò)連接模型中, 一個(gè)工作角色既可參與一個(gè)工作任務(wù),又可參與多個(gè)工作任務(wù), 一個(gè)工作 任務(wù)可由一個(gè)工作角色獨(dú)立完成,也可通過多個(gè)工作角色來協(xié)作完成;一個(gè)工作任務(wù)完成 后即可終止也可將工作任務(wù)傳遞給其它工作角色。為了方便建立工作流節(jié)點(diǎn)的網(wǎng)絡(luò)連接模 型,采用圖形化設(shè)計(jì)的形式表示工作流節(jié)點(diǎn)的網(wǎng)絡(luò)連接模型,下面以圓圈表示工作角色,以 方框表示工作任務(wù),以帶箭頭的弧表示網(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所示的稿件審稿示例流程圖的網(wǎng)絡(luò)連接
示意圖。 (C)、建立工作流多實(shí)例的任務(wù)集
一個(gè)工作流多實(shí)例包含一個(gè)或多個(gè)工作任務(wù),將這種包含關(guān)系稱為工作流多實(shí)例的任 務(wù)集并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中。具體如下
在步驟(B)建立的工作流過程的網(wǎng)絡(luò)連接模型上指定多實(shí)例的任務(wù)集,多實(shí)例的任務(wù)
集可以有一個(gè)或多個(gè)工作任務(wù)組成。在實(shí)際的工作流過程的網(wǎng)絡(luò)連接模型中,多實(shí)例的任 務(wù)是已知的,用戶可直接在其上指定,工作管理服務(wù)器在用戶確定多實(shí)例的任務(wù)集之后將 該多實(shí)例的任務(wù)集存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中。 如圖4所示的稿件審稿流程圖,多實(shí)例任務(wù)只有一個(gè)為工作任務(wù)評(píng)審,工作流管 理服務(wù)器在創(chuàng)建此任務(wù)時(shí),需要?jiǎng)?chuàng)建多個(gè)評(píng)審對(duì)象,每個(gè)評(píng)審對(duì)象需要一個(gè)專家來辦理。
(D)工作流管理服務(wù)器按照下述步驟篩選工作流多實(shí)例包含的工作角色集并劃定 工作流多實(shí)例的網(wǎng)絡(luò)連接邊界集
工作流管理服務(wù)器確定工作流多實(shí)例包含的節(jié)點(diǎn)集和網(wǎng)絡(luò)連接邊界 工作流多實(shí)例包含了多實(shí)例任務(wù)集、多實(shí)例角色集以及劃分多實(shí)例的網(wǎng)絡(luò)連接邊界,
按照下述步驟可得到工作流多實(shí)例包含的節(jié)點(diǎn)集和網(wǎng)絡(luò)連接邊界,其詳細(xì)步驟如圖5所示。 (1)篩選工作流多實(shí)例包含的工作角色集根據(jù)步驟(C)確定的工作流多實(shí)例的 任務(wù)集,逐一取得工作任務(wù),并將取得的每一個(gè)工作任務(wù)執(zhí)行以下步驟;
a) 工作流管理服務(wù)器獲得步驟(C)的多實(shí)例任務(wù)集
b) 從多實(shí)例任務(wù)集取出一個(gè)工作任務(wù),根據(jù)步驟(B)建立的工作流過程模型找出辦理 此工作任務(wù)的所有工作角色。 c)從步驟b)確定的工作角色集中取出一個(gè)工作角色。 d)判斷工作角色參與的工作任務(wù)是否全部屬于步驟a)確定的工作流多實(shí)例的任 務(wù)集;若全部屬于,將此工作角色加入到工作流多實(shí)例的工作角色集中,若不全部屬于,則 復(fù)制該工作角色,并使新復(fù)制工作角色和原工作角色具有相同的網(wǎng)絡(luò)連接關(guān)系。刪除原工 作角色參與的非工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系,并將原工作角色加入到工作流多實(shí)例 的工作角色集中。刪除新復(fù)制工作角色參與的工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系。
e)重復(fù)步驟c)直至取出所有的步驟b)確定的工作角色集。
f)重復(fù)b)直至取出所有步驟a)獲得的多實(shí)例任務(wù)集任務(wù)。
執(zhí)行完成上述步驟即可得到工作流多實(shí)例的工作角色集。 上述步驟的詳細(xì)流程圖如圖6所示,當(dāng)工作流管理服務(wù)器開始選取工作流多實(shí)例 角色集時(shí),工作流管理服務(wù)器取得多實(shí)例任務(wù)集T ;取出T中的一個(gè)工作任務(wù)Ti,獲得辦理 Ti的工作角色集R ;取出R中的一個(gè)工作角色Rj,獲得Rj參與的工作任務(wù)集;判斷Rj參與的工作任務(wù)是否全部屬于T,若是,則將Rj加入到多實(shí)例角色集,若不是,則復(fù)制該工作角 色Rj以及網(wǎng)絡(luò)連接關(guān)系,刪除原工作角色Rj與非多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系,將原工作角 色Rj加入到多實(shí)例角色集,刪除新工作角色Rj與多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系;判斷是否從 R中取出所有的工作角色,若是則判斷是否從T中取出所有的工作任務(wù),若否,重復(fù)從R中 取出另一個(gè)工作角色;當(dāng)從R中取出所有的工作角色時(shí),判斷是否從T中取出所有的工作任 務(wù),若是,則結(jié)束,若不是,則重復(fù)從T中取出另一個(gè)工作任務(wù)。 如圖4所示的稿件審稿流程圖,按照?qǐng)D6步驟可以得到多實(shí)例角色為同行專家。
(2)工作流管理服務(wù)器按照下述步驟劃定工作流多實(shí)例的網(wǎng)絡(luò)連接輸入邊界集。
i )工作流管理服務(wù)器獲得步驟(l)確定的多實(shí)例角色集
ii )從多實(shí)例角色集中取出一個(gè)工作角色,獲得傳遞工作任務(wù)給該工作角色的網(wǎng)絡(luò)連 接集。 iii)從步驟ii )確定的網(wǎng)絡(luò)連接集中取出 一個(gè),判斷該網(wǎng)絡(luò)連接是否將多實(shí)例工作 任務(wù)傳遞給該工作角色,若不是,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例的網(wǎng)絡(luò)連接輸入邊 界集中。 iv)重復(fù)步驟iii)直至取出步驟ii)確定所有的網(wǎng)絡(luò)連接。
v )重復(fù)步驟ii)直至取出步驟i )獲得的多實(shí)例角色集。 上述步驟的詳細(xì)的流程圖如圖7所示,當(dāng)工作流服務(wù)器開始劃定工作流多實(shí)例的 網(wǎng)絡(luò)連接輸入邊界集時(shí),工作流服務(wù)器獲得多實(shí)例角色集R ;從R中取出一個(gè)多實(shí)例工作角 色Ri ;獲得傳遞工作任務(wù)給Ri的網(wǎng)絡(luò)連接D ;從D中取出一個(gè)網(wǎng)絡(luò)連接Dj ;判斷Dj是否將 多實(shí)例任務(wù)傳遞給Ri,若否,將Dj加入到網(wǎng)絡(luò)連接輸入邊界集;判斷是否取出所有的Dj,若 否,則重復(fù)從D中取出一個(gè)網(wǎng)絡(luò)連接Dj,執(zhí)行前一步驟;若是,判斷是否取出所有的Ri,若 否,重復(fù)從R中取出一個(gè)多實(shí)例工作角色Ri執(zhí)行上述步驟,若是,則結(jié)束。
如圖4所示的稿件審稿流程圖,按照上述步驟可以得到多實(shí)例的網(wǎng)絡(luò)連接輸入邊 界集為如圖4中D2。 (3)工作流管理服務(wù)器按照下述步驟劃定工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集。
執(zhí)行下述步驟即可得到工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集。
I )工作流管理服務(wù)器獲得步驟(C)確定的多實(shí)例任務(wù)集
II )從多實(shí)例任務(wù)集取出一個(gè)工作任務(wù),獲得該工作任務(wù)要傳遞的網(wǎng)絡(luò)連接集。
III)從步驟II)確定的網(wǎng)絡(luò)連接集中取出一個(gè),判斷該網(wǎng)絡(luò)連接是否將工作任務(wù)傳 遞給多實(shí)例工作角色,若不是,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界 集中。 IV)重復(fù)步驟IID直至取出步驟II)確定所有的網(wǎng)絡(luò)連接。
V)重復(fù)步驟II)直至取出所有步驟I )獲得的多實(shí)例任務(wù)集。 執(zhí)行完成上述步驟即可得到工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集。 上述步驟的詳細(xì)的流程圖如圖8所示,當(dāng)工作流服務(wù)器開始劃定工作流多實(shí)例的
網(wǎng)絡(luò)連接輸出邊界集時(shí),工作流服務(wù)器獲得多實(shí)例任務(wù)集T ;從T中取出一個(gè)多實(shí)例工作任
務(wù)Ti ;獲得Ti要傳遞網(wǎng)絡(luò)連接D ;從D中取出一個(gè)網(wǎng)絡(luò)連接Dj ;判斷Dj是否Ti傳遞給多
實(shí)例角色,若否,將Dj加入到網(wǎng)絡(luò)連接輸出邊界集;判斷是否取出所有的Dj,若否,則重復(fù)
從D中取出一個(gè)網(wǎng)絡(luò)連接Dj,執(zhí)行前一步驟;若是,判斷是否取出所有的Ti,若否,重復(fù)從T
9中取出一個(gè)多實(shí)例工作任務(wù)Ti執(zhí)行上述步驟,若是,則結(jié)束。 如圖4所示的稿件審稿流程圖,按照上述步驟可以得到多實(shí)例的網(wǎng)絡(luò)連接輸出邊 界集為如圖4中D3。 (E)、將步驟3獲得的工作流多實(shí)例包含的節(jié)點(diǎn)集和網(wǎng)絡(luò)連接邊界存儲(chǔ)到數(shù)據(jù)存 儲(chǔ)服務(wù)器中。 (F)、工作流管理服務(wù)器創(chuàng)建工作流多實(shí)例
當(dāng)工作流管理服務(wù)器創(chuàng)建工作流多實(shí)例時(shí),首先確定需要?jiǎng)?chuàng)建的實(shí)例數(shù)目,對(duì)于創(chuàng)建 的實(shí)例數(shù)目可以是從數(shù)據(jù)庫(kù)中取得,也可是用戶輸入的實(shí)例數(shù)目值,也可由工作任務(wù)確定, 之后從數(shù)據(jù)存儲(chǔ)服務(wù)器中取出多實(shí)例工作角色集、多實(shí)例工作任務(wù)集、多實(shí)例網(wǎng)絡(luò)連接邊 界集,并復(fù)制實(shí)例數(shù)目份,存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中。
10
權(quán)利要求
一種通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例的方法,其特征在于,包括以下步驟(A)建立工作流節(jié)點(diǎn)模型工作流節(jié)點(diǎn)由服務(wù)器和計(jì)算機(jī)客戶端組成,以連接于網(wǎng)絡(luò)上的若干計(jì)算機(jī)客戶端作為完成不同工作任務(wù)的工作角色;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第一服務(wù)器作為分發(fā)工作任務(wù)的工作流管理服務(wù)器;以連接于網(wǎng)絡(luò)上的一個(gè)或多個(gè)第二服務(wù)器作為數(shù)據(jù)存儲(chǔ)服務(wù)器;(B)建立工作流過程的網(wǎng)絡(luò)連接模型一個(gè)工作角色參與一個(gè)或多個(gè)工作任務(wù),一個(gè)工作任務(wù)由一個(gè)或多個(gè)工作角色來協(xié)作完成;一個(gè)工作任務(wù)完成后即終止或者將工作任務(wù)傳遞給其它工作角色,將這種工作流過程的網(wǎng)絡(luò)連接關(guān)系存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(C)建立工作流多實(shí)例的任務(wù)集一個(gè)工作流多實(shí)例包含一個(gè)或多個(gè)工作任務(wù),將這種包含關(guān)系稱為工作流多實(shí)例的任務(wù)集并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器中;(D)工作流管理服務(wù)器按照下述步驟篩選工作流多實(shí)例包含的工作角色集并劃定工作流多實(shí)例的網(wǎng)絡(luò)連接邊界集1)篩選工作流多實(shí)例包含的工作角色集根據(jù)步驟(C)確定的工作流多實(shí)例的任務(wù)集,逐一取得工作任務(wù),并將取得的每一個(gè)工作任務(wù)執(zhí)行以下步驟;a)工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得參與工作任務(wù)的所有工作角色;b)逐一判斷工作角色所參與的工作任務(wù)是否全部屬于步驟(C)確定的工作流多實(shí)例的任務(wù)集;若全部屬于,則將該工作角色加入到工作流多實(shí)例的工作角色集中;若不全部屬于,則復(fù)制該工作角色,并使新復(fù)制工作角色和原工作角色具有相同的網(wǎng)絡(luò)連接關(guān)系;c)刪除原工作角色參與的非工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系,并將原工作角色加入到工作流多實(shí)例的工作角色集中;刪除新復(fù)制工作角色參與的工作流多實(shí)例任務(wù)的網(wǎng)絡(luò)連接關(guān)系;所述的工作流多實(shí)例任務(wù)為步驟(C)確定的工作流多實(shí)例的任務(wù)集中的一個(gè)工作任務(wù);2)劃定工作流多實(shí)例的網(wǎng)絡(luò)連接輸入邊界集根據(jù)步驟1)獲得的工作流多實(shí)例的工作角色集,逐一取得工作角色,并將取得的每一個(gè)工作角色執(zhí)行以下步驟工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得傳遞工作任務(wù)給該工作角色的網(wǎng)絡(luò)連接集;逐一判斷網(wǎng)絡(luò)連接是否將多實(shí)例工作任務(wù)傳遞給該工作角色,若不是將多實(shí)例工作任務(wù)傳遞給該工作角色,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例網(wǎng)絡(luò)連接輸入邊界集中;所述的多實(shí)例工作任務(wù)為步驟(C)確定的工作流多實(shí)例任務(wù)集中的一個(gè)工作任務(wù); 3)確定工作流多實(shí)例的網(wǎng)絡(luò)連接輸出邊界集根據(jù)步驟(C)確定的工作流多實(shí)例的任務(wù)集,逐一取得工作任務(wù),并將取得的每一個(gè)工作任務(wù)執(zhí)行下述步驟工作流管理服務(wù)器根據(jù)步驟(B)確定的網(wǎng)絡(luò)連接關(guān)系,獲得該工作任務(wù)要傳遞的網(wǎng)絡(luò)連接集;逐一判斷網(wǎng)絡(luò)連接是否將工作任務(wù)傳遞給工作流多實(shí)例角色,所述的工作流多實(shí)例角色為步驟(C)確定的工作流多實(shí)例的工作角色集的一個(gè);若網(wǎng)絡(luò)連接沒有將工作任務(wù)傳遞給工作流多實(shí)例角色,則將該網(wǎng)絡(luò)連接加入到工作流多實(shí)例網(wǎng)絡(luò)連接輸出邊界集中;4)以上步驟2)和3)中的工作流多實(shí)例網(wǎng)絡(luò)連接輸入邊界和工作流多實(shí)例網(wǎng)絡(luò)連接輸出邊界組成所述的工作流多實(shí)例的網(wǎng)絡(luò)連接邊界;(E)將步驟(D)取得的工作流多實(shí)例包含的工作角色集和工作流多實(shí)例的網(wǎng)絡(luò)連接邊界存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中;(F)當(dāng)工作流管理服務(wù)器創(chuàng)建工作流多實(shí)例時(shí),首先確定需要?jiǎng)?chuàng)建的實(shí)例數(shù)目,之后從數(shù)據(jù)存儲(chǔ)服務(wù)器中取出工作流多實(shí)例包含的工作角色集、工作流多實(shí)例包含的工作任務(wù)集、工作流多實(shí)例網(wǎng)絡(luò)連接邊界集,并復(fù)制實(shí)例數(shù)目份,存儲(chǔ)到數(shù)據(jù)存儲(chǔ)服務(wù)器中。
2.根據(jù)權(quán)利要求1所述的通過網(wǎng)絡(luò)結(jié)構(gòu)劃分來實(shí)現(xiàn)工作流多實(shí)例的方法,其特征在 于,步驟(B)中,所述工作流過程的網(wǎng)絡(luò)連接關(guān)系是以XML格式或XPDL格式存儲(chǔ)在數(shù)據(jù)存 儲(chǔ)服務(wù)器中或以二維表的形式存儲(chǔ)在數(shù)據(jù)存儲(chǔ)服務(wù)器上關(guān)系型數(shù)據(jù)庫(kù)中。
全文摘要
本發(fā)明公開了一種用于實(shí)現(xiàn)工作流多實(shí)例的網(wǎng)絡(luò)結(jié)構(gòu)劃分方法,該方法通過建立工作流節(jié)點(diǎn)模型、建立工作流過程的網(wǎng)絡(luò)連接模型、建立工作流多實(shí)例的任務(wù)集、工作流管理服務(wù)器按照下述步驟篩選工作流多實(shí)例包含的工作角色集并劃定工作流多實(shí)例的網(wǎng)絡(luò)連接邊界集等步驟,在工作流模型的多實(shí)例實(shí)現(xiàn)方案中引入一種網(wǎng)絡(luò)結(jié)構(gòu)劃分方法,簡(jiǎn)化了工作流中多個(gè)結(jié)構(gòu)相同的實(shí)例的建模,使所建立的模型清晰易讀。且使該方法能夠支持多實(shí)例嵌套,使同一工作角色既可參加多實(shí)例任務(wù),同時(shí)又可參加非多實(shí)例任務(wù)。
文檔編號(hào)H04L12/28GK101741666SQ20101011408
公開日2010年6月16日 申請(qǐng)日期2010年2月26日 優(yōu)先權(quán)日2010年2月26日
發(fā)明者張丹丹, 胡飛虎 申請(qǐng)人:西安交通大學(xué)