網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制的制作方法
【專利摘要】本發(fā)明公開了網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,包括以下步驟:S1.定義任務類別;S2.定義消費者類別;S3.消費者訂閱其需要處理的任務;S4.生成任務訂閱集的HASH表;S5.分配任務;S6.消費者接受任務。該機制能夠?qū)⒐ぷ髁飨到y(tǒng)產(chǎn)生的任務及時準確的分配到感興趣的消費者中,驅(qū)動工作流程的正常運作;該機制支持主動訂閱,當系統(tǒng)生成的任務類型存在訂閱者時,將隨機或依據(jù)等級選擇訂閱者分發(fā)任務事件,當系統(tǒng)生成的任務類型不存在關注者時,將掛起任務,直到該任務類型被消費者訂閱;該機制用于解決常見于工作流系統(tǒng)的任務分派問題,在滿足問題被及時處理時,避免產(chǎn)生訂閱者競爭。
【專利說明】網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制
【技術領域】
[0001]本發(fā)明涉及網(wǎng)站工具系統(tǒng)設計開發(fā)領域,在企業(yè)資源計劃、客戶關系管理、辦公自動化等工作流業(yè)務系統(tǒng)中屬于關鍵領域機制。
【背景技術】
[0002]在企業(yè)資源計劃(ERP)、客戶關系管理(CRM)、辦公自動化(0A)等系統(tǒng)中,工作流程相關的任務分發(fā)機制是無法繞過的環(huán)節(jié)。任務分發(fā)機制非常重要,不同的系統(tǒng)往往有不同的實現(xiàn)細節(jié),各種實現(xiàn)細節(jié)與系統(tǒng)的具體需求密切相關,概念上的一點區(qū)別往往帶來實現(xiàn)上的巨大差異。
[0003]目前常見的任務分發(fā)機制有兩種,一種是系統(tǒng)直接指派,另一種是任務廣播,用戶競爭令牌搶奪任務。
[0004]對于第一種情況,即系統(tǒng)直接指派機制,需要系統(tǒng)事先配置好嚴格的任務流程,指定流程鏈上每個環(huán)節(jié)的處理角色,系統(tǒng)任務在該流程鏈上按照事先設置好的機制往下進行。其中每個節(jié)點的用戶都必須處于活躍狀態(tài),否則該任務流就會在出現(xiàn)問題的節(jié)點阻塞,直接影響任務的完成。此種機制一般用于審批類流程。
[0005]對于第二種情況,即任務廣播方式,用戶在競爭任務時表現(xiàn)出普遍一致性特點。用戶和用戶之間在平等的地位上競爭任務,系統(tǒng)基于令牌機制呈隨機性的選擇執(zhí)行任務的用戶。該機制相比第一種機制具有更大的靈活性,任務的消費者是一個群體,其中某個消費者的活躍度不會影響任務的分發(fā)和執(zhí)行,能夠保證任務系統(tǒng)的正常完成。此種機制一般用于業(yè)務處理流程。
[0006]在實際的需求中,往往存在這樣一種情況。在所謂的“專家系統(tǒng)”中,任務往往具有一定的專業(yè)性,需要具備某種特定技能的“專家任務消費者”來接領并執(zhí)行任務。但是“領域?qū)<摇庇质且粋€群體,其中任何一個人都能夠執(zhí)行任務。因此需要任務系統(tǒng)在一定范圍的“任務消費者”中分派任務。既要保證任務在一個確定的分派流程中嚴格有序的向下進行,又要保證任務的消費者具有一定的冗余度,防止單點故障造成的任務擱置。本發(fā)明提出的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制就是一種滿足該需求的專家任務分發(fā)系統(tǒng),同時也兼顧審批流程。其中,任務消費者需要主動的對感興趣(或自身專業(yè)范圍內(nèi))的任務類別進行訂閱,使系統(tǒng)知道該類任務的執(zhí)行專家有哪些,并維護該消費者列表。系統(tǒng)中生產(chǎn)者一旦產(chǎn)生任務,系統(tǒng)會查詢該任務的執(zhí)行專家,配合其他權重機制從中選取任務消費者,以此保證任務系統(tǒng)有序、穩(wěn)定的在各個狀態(tài)間流轉(zhuǎn),防止任務被死鎖掛起。
【發(fā)明內(nèi)容】
[0007]為解決上述問題,本發(fā)明提出網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制。
[0008]技術方案:
[0009]網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,包括以下步驟:
[0010]S1.定義任務類別;
[0011]S2.定義消費者類別;
[0012]S3.消費者訂閱其需要處理的任務;
[0013]S4.生成任務訂閱集的HASH表;對步驟S3中消費者的消費者類別與其訂閱任務的任務類別進行綁定,以任務類別為鍵值,將訂閱該類任務的消費者存放為一個描述任務訂閱集的HASH表;
[0014]S5.分配任務;根據(jù)步驟S4HASH表進行任務分配;
[0015]S6.消費者接受任務。
[0016]進一步的,步驟S1中定義任務類別具體是指,對工作流系統(tǒng)內(nèi)的所有任務,定義其任務狀態(tài)和任務級別,任務狀態(tài)包括未分發(fā)、已分發(fā)和已完成三種狀態(tài),任務級別包括單訂閱者任務和多訂閱者任務兩種級別。
[0017]對多訂閱者任務,設置訂閱者人數(shù)上限及下限,以限制處理該類任務的消費者數(shù)量。
[0018]對于多訂閱者任務,消費者對其處理方式包括完成、退訂或是轉(zhuǎn)發(fā),對于單訂閱者任務,消費者接受該類任務后必須完成。
[0019]退訂包括消費者主動退訂和任務取消兩種情況,發(fā)生消費者主動退訂時,系統(tǒng)更新HASH表即可;發(fā)生任務取消時,系統(tǒng)刪除HASH表,該任務作廢。
[0020]轉(zhuǎn)發(fā)包括任務消費者流轉(zhuǎn)和任務管理者流轉(zhuǎn)兩種情況;任務消費者流轉(zhuǎn)是指消費者將其接受的任務轉(zhuǎn)發(fā)給其他消費者處理,但有最大轉(zhuǎn)發(fā)次數(shù)的限制,以避免該類任務在系統(tǒng)中一直被轉(zhuǎn)發(fā)而得不到處理;任務管理者流轉(zhuǎn)是指,工作流系統(tǒng)在任務中指定一個明確的任務管理者,該任務管理者利用任務轉(zhuǎn)發(fā)機制,將其分派給任務訂閱集中的其他消費者,以此通過人工判定來達到最優(yōu)的任務分派效果。
[0021]進一步的,步驟S2中定義消費者類別具體是指,對系統(tǒng)中處理任務的消費者,將其定義為十個任務領取等級,等級越高的用戶代表其處理問題的能力越強,會被優(yōu)先分派任務。
[0022]進一步的,步驟S5中分配任務包括如下過程:
[0023]S51.查詢步驟S4HASH表,找到訂閱該任務的消費者群;
[0024]S52.依據(jù)群內(nèi)消費者的任務領取等級,刷選具有最高等級的消費者;
[0025]S53.在具有最高等級的消費者中,選取擁有任務量最少的一個消費者,將該任務分配給他。
[0026]由于采用了上述技術方案,本發(fā)明具有以下有益效果:
[0027](1)對任務級別的劃分,使本發(fā)明同時兼顧審批類流程和業(yè)務處理流程;
[0028](2)本發(fā)明支持消費者主動訂閱,使消費者只會分配到自己感興趣的任務或是使任務被分配給相應領域的專家,達到任務被合理分配的目的,驅(qū)動工作流的正常運作;
[0029](3)本發(fā)明支持消費者對接受的任務退訂或是轉(zhuǎn)發(fā),避免了因為消費者自身的問題使任務被擱置,保證任務能夠有序完成。
【專利附圖】
【附圖說明】
[0030]圖1是本發(fā)明的流程示意圖;
【具體實施方式】
[0031]下面結合附圖對本發(fā)明作進一步闡述。
[0032]如圖1所示,網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,包括如下步驟:
[0033]S1定義任務類別;
[0034]網(wǎng)站工作流系統(tǒng)首先需要定義任務類別,任務類別根據(jù)工作流系統(tǒng)的需要定義為一組常量,用于標識處理任務的消費者專家將來需要訂閱的信息。定義任務狀態(tài):未分發(fā)、已分發(fā)、已完成。定義任務級別:單訂閱者任務和多訂閱者任務,其中,審批類流程被定義為單訂閱者任務,業(yè)務處理流程被定義為多訂閱者任務。
[0035]對于多訂閱者任務,可以附加設置訂閱者人數(shù)上限及下限,用以限制處理該任務的消費者數(shù)量。如果一類任務的訂閱者人數(shù)未達到人數(shù)下限,則該類任務不會被系統(tǒng)生成。
[0036]S2定義消費者類別;
[0037]具體指通過0-9數(shù)值(具體數(shù)值根據(jù)業(yè)務需要調(diào)整)將任務消費者定義為十個任務領取等級,數(shù)值越大的用戶代表其處理問題的能力越強,工作流系統(tǒng)會越優(yōu)先分派任務。
[0038]S3消費者訂閱其需要處理的任務;
[0039]消費者代表不同的用戶角色,消費者進入系統(tǒng)后,根據(jù)自己的興趣和業(yè)務領域,訂閱自己可處理任務類別。
[0040]對于多訂閱者任務,訂閱者可以隨時取消任務訂閱,此過程稱為退訂,退訂過程在實際中由多種情況觸發(fā),一種是消費者主動退訂,這種情況往往是由于消費者用戶分組調(diào)整、部分調(diào)整、請假或離職等原因?qū)е?;此類退訂,對任務不產(chǎn)生任何影響,需要工作流系統(tǒng)即時更新任務訂閱集的HASH表即可;當某一類任務的訂閱者數(shù)量由于退訂行為歸零以后,工作流系統(tǒng)需要標識該任務,并通知系統(tǒng)管理員,同時配以適當手段,如阻止該類任務生成,來確保工作流系統(tǒng)中不出現(xiàn)無法處理的任務;另外,退訂行為不影響已經(jīng)分配給任務消費者的任務,即任務消費者有義務完成其已經(jīng)得到分派的任務,而不管該任務類別當前是否已經(jīng)被成功退訂。另一種是任務取消,某類任務類型可能會應為業(yè)務邏輯修改等原因?qū)е略擃惾蝿兆鲝U,此時由任務觸發(fā)的集體退訂會導致工作流系統(tǒng)直接刪除任務訂閱集的HASH 表。
[0041]對于單訂閱者任務,消費者不可退訂任務,以防止系統(tǒng)運行過程中,由于用戶的操作導致任務無法匹配消費者,出現(xiàn)任務流程無法繼續(xù)往下進行的情況。
[0042]S4生成任務訂閱集的HASH表;
[0043]工作流系統(tǒng)會將消費者的任務領取等級的數(shù)值與其訂閱任務的任務類別進行綁定,以任務類別為鍵值,將訂閱該類任務的消費者存放為一個描述任務訂閱集的HASH表。
[0044]S5分配任務;當工作流系統(tǒng)產(chǎn)生任務后,根據(jù)HASH表進行任務分配,包括以下步驟:
[0045]S51查詢HASH表,找到訂閱該任務的消費者群;
[0046]S52依據(jù)群內(nèi)消費者的任務領取等級,刷選具有最高任務領取等級的消費者;
[0047]S53在具有最高任務領取等級的消費者中,選取擁有任務量最少的一個消費者,將該任務分配給他,若擁有最少任務量的消費者不只一個,則系統(tǒng)隨機將該任務分配給其中一個消費者。
[0048]S6消費者接受任務;
[0049]消費者接受任務后,對于多訂閱者任務,可將任務完成或是轉(zhuǎn)發(fā),對于單訂閱者任務,消費者接受該類任務后必須完成。
[0050]對于業(yè)務處理流程類任務(被定義為多訂閱者任務),可以根據(jù)業(yè)務的需要提供任務轉(zhuǎn)發(fā)機制。該機制設計分為兩個層面進行,其中一種是任務消費者流轉(zhuǎn),另一種是任務管理者流轉(zhuǎn)。
[0051]任務消費者流轉(zhuǎn)比較簡單,當一個任務消費者被系統(tǒng)自動分派任務后,可能由于該消費者臨時難以處理任務、或者當前存在空閑的更適合處理該任務的其他消費者,此時系統(tǒng)應該支持持有任務的消費者將該任務轉(zhuǎn)發(fā)給其他消費者處理,用以加快任務處理的時效。為了防止狀態(tài)機制從有限變?yōu)闊o限,描述任務的數(shù)據(jù)結構中還應該設置最大轉(zhuǎn)發(fā)次數(shù),一旦該任務的轉(zhuǎn)發(fā)次數(shù)達到最大轉(zhuǎn)發(fā)次數(shù),該任務將不能再被轉(zhuǎn)發(fā)出去,由當前持有該任務的消費者負責解決,從而避免某一類任務始終在轉(zhuǎn)發(fā)過程中,無法得到運行。
[0052]任務管理者流轉(zhuǎn)用于解決系統(tǒng)在自動分派任務消費者時無法最優(yōu)的選取任務消費者的缺陷,對于應用此類機制的工作流系統(tǒng),需要工作流系統(tǒng)在任務中指定一個明確的任務管理者,任務管理者與任務消費者一樣對應于系統(tǒng)中的用戶。此類任務一旦產(chǎn)生,系統(tǒng)直接將其分派給任務管理者,由該任務管理者利用任務轉(zhuǎn)發(fā)機制,將其分派給任務描述集中的其他消費者,以此通過人工判定來達到最優(yōu)的任務分派效果。
[0053]對于審批流程類任務(被定義為單訂閱者任務),工作流系統(tǒng)需要在配置任務類別時,預置該任務的訂閱人,并將該任務的級別設置為單訂閱者任務,以此來保證本任務具有明確、可靠的任務消費者。相對于業(yè)務處理流程來講,審批流程類任務分配機制顯得更為簡單、確定。
[0054]以上【具體實施方式】,描述的是一種任務分配及其消費者管理的機制,能夠廣泛的應用于網(wǎng)站工作流系統(tǒng)中,該機制與具體的編程語言無關??梢愿鶕?jù)業(yè)務的需要增刪其中功能點,本發(fā)明既滿足業(yè)務處理流程類工作流需求也滿足審批類工作流需求。
[0055]本領域的普通技術人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。本領域的普通技術人員可以根據(jù)本發(fā)明公開的這些技術啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。
【權利要求】
1.網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于,包括以下步驟: S1.定義任務類別; S2.定義消費者類別; S3.消費者訂閱其需要處理的任務; S4.生成任務訂閱集的HASH表;對步驟S3中所述消費者的消費者類別與其訂閱任務的任務類別進行綁定,以任務類別為鍵值,將訂閱該類任務的消費者存放為一個描述任務訂閱集的HASH表; S5.分配任務;根據(jù)步驟S4所述HASH表進行任務分配; S6.消費者接受任務。
2.根據(jù)權利要求1所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:步驟SI中所述定義任務類別具體是指,對工作流系統(tǒng)內(nèi)的所有任務,定義其任務狀態(tài)和任務級別,所述任務狀態(tài)包括未分發(fā)、已分發(fā)和已完成三種狀態(tài),所述任務級別包括單訂閱者任務和多訂閱者任務兩種級別,其中,審批類流程被定義為單訂閱者任務,業(yè)務處理流程被定義為多訂閱者任務。
3.根據(jù)權利要求2所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:對所述多訂閱者任務,設置訂閱者人數(shù)上限及下限,以限制處理該類任務的消費者數(shù)量。
4.根據(jù)權利要求2所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:對于所述多訂閱者任務,消費者對其處理方式包括完成、退訂或是轉(zhuǎn)發(fā),對于所述單訂閱者任務,消費者接受該類任務后必須完成。
5.根據(jù)權利要求4所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:所述退訂包括消費者主動退訂和任務取消兩種情況,發(fā)生消費者主動退訂時,系統(tǒng)更新所述HASH表;發(fā)生任務取消時,系統(tǒng)刪除所述HASH表,該任務作廢。
6.根據(jù)權利要求4所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:所述轉(zhuǎn)發(fā)包括任務消費者流轉(zhuǎn)和任務管理者流轉(zhuǎn)兩種情況;所述任務消費者流轉(zhuǎn)是指消費者將其接受的任務轉(zhuǎn)發(fā)給其他消費者處理,但有最大轉(zhuǎn)發(fā)次數(shù)的限制,以避免該類任務在系統(tǒng)中一直被轉(zhuǎn)發(fā)而得不到處理;所述任務管理者流轉(zhuǎn)是指,工作流系統(tǒng)在任務中指定一個明確的任務管理者,該任務管理者利用任務轉(zhuǎn)發(fā)機制,將其分派給任務描述集中的其他消費者,以此通過人工判定來達到最優(yōu)的任務分派效果。
7.根據(jù)權利要求1所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于:步驟S2中所述定義消費者類別具體是指,對系統(tǒng)中處理任務的消費者,將其定義為十個任務領取等級,等級越高的用戶代表其處理問題的能力越強,會被優(yōu)先分派任務。
8.根據(jù)權利要求7所述的網(wǎng)站工作流中一種基于主動訂閱的任務分發(fā)機制,其特征在于,步驟S5中所述分配任務包括如下過程: S51.查詢步驟S4所述HASH表,找到訂閱該任務的消費者群; S52.依據(jù)所述群內(nèi)消費者的任務領取等級,刷選具有最高等級的消費者; S53.在所述具有最高等級的消費者中,選取擁有任務量最少的一個消費者,將該任務分配給他。
【文檔編號】G06Q10/06GK104268702SQ201410514012
【公開日】2015年1月7日 申請日期:2014年9月29日 優(yōu)先權日:2014年9月29日
【發(fā)明者】蔡淼 申請人:成都西山居互動娛樂科技有限公司