本發明涉及業務流程管理,尤其涉及基于消息隊列實現的業務流程驅動引擎系統和運行方法。
背景技術:
1、隨著業務流程管理(bpm)的不斷發展,bpmn(business?process?model?andnotation,業務流程模型和表示法)2.0已成為業界廣泛接受的標準。然而,傳統的bpmn2.0流程引擎在實現復雜業務流程時,可能面臨處理效率低下、容錯能力有限、可擴展性差、單點故障等問題。具體來說處理效率低下的問題是:現有流程引擎在處理大規模的業務流程時,往往會出現性能瓶頸。由于流程引擎需要處理大量的任務和數據,導致執行速度變慢,無法滿足實時性要求。
2、容錯能力有限的問題是:流程引擎在面對異常情況時,缺乏靈活的容錯處理機制。一旦發生錯誤或異常,流程引擎往往無法自動回滾或繼續執行,需要人工介入處理,影響了業務的連續性和穩定性。
3、可擴展性差的問題是:現有的流程引擎在接入新的業務場景或擴展現有業務時,往往需要進行較大規模的改動和定制化開發。這樣的擴展性差,無法滿足企業快速變化的需求,增加了開發和維護的難度和成本。
4、缺乏靈活性的問題是:現有的流程引擎在定義流程規則和執行流程時,較為僵硬。不同業務場景下,往往需要根據具體需求定制化的流程規則,缺乏靈活性的流程引擎無法滿足這種要求。
技術實現思路
1、本發明針對現有技術中的缺點,提出了一種基于消息隊列實現的bpmn流程驅動引擎系統,旨在提高流程引擎的響應速度。
2、為了解決上述技術問題,本發明通過下述技術方案得以解決:
3、一種基于消息隊列實現的業務流程驅動引擎系統,包括如下結構:
4、消息生成器,將流程分解為一個以上的子任務,并為每個子任務創建相應的消息;
5、消息隊列,包括標識任務類型的不同消息隊列;
6、任務處理器,從消息隊列中獲取待處理的消息,并執行相應的子任務;
7、流程引擎,用于包括監聽到消息后消息隊列,根據消息生成流程執行所需的節點和路徑信息,結合消息內容,選擇對應的任務處理器,將消息投遞至任務處理器處理;接收反饋的任務結果,判斷任務結果是否正確,若正確,結合當前子任務處理結果和后續流程的子任務創建相應的下一個子任務的消息,傳遞至消息隊列等待處理;若錯誤,重新調用處理失敗的子任務,傳遞至消息隊列等待處理。
8、可選的,流程引擎包括流程文件存儲模塊、流程文件解析模塊和流程執行模塊,其中,
9、流程文件存儲模塊讀取流程文件并提交給流程文件解析模塊;
10、流程文件解析模塊解析存儲在流程定義庫中的流程定義文件,生成流程執行所需的節點和路徑信息;
11、流程執行模塊,根據流程解析模塊生成的節點和路徑信息,以及消息隊列中的消息,驅動流程的執行。
12、可選的,流程引擎還包括:
13、上下文存儲模塊,存儲流程運轉中間產生的控制數據和業務數據。
14、可選的,流程引擎還包括:管理模塊,用于流程文件發布和版本更新管理。
15、可選的,流程引擎還包括流程記錄模塊,用于記錄流程運轉期間的跟蹤記錄。
16、可選的,消息隊列包括快處理組和慢處理組,其中,
17、快處理組用于通用的流程文件的消費和投遞;
18、慢處理組用于處理耗時長的任務。
19、可選的,流程文件是基于bpmn2.0工作流協議的文件。
20、一種業務流程驅動引擎的運行方法,包括如下步驟:
21、步驟1,流程引擎調用消息生成器;
22、步驟2,將流程文件分解為一個以上的子任務,并為每個子任務創建相應的消息;
23、步驟3,標識任務類型的不同消息隊列獲取到對應任務的消息并根據先進先出原則投遞消息;
24、步驟4,流程引擎監聽到消息后,根據消息生成流程執行所需的節點和路徑信息,結合消息內容,選擇對應的任務處理器,將消息投遞至任務處理器處理;
25、步驟5,任務處理器處理完任務后,將任務結果反饋流程引擎,判斷任務結果是否正確,若正確,返回步驟1,結合當前子任務處理結果和后續流程的子任務創建相應的下一個子任務的消息,傳遞至消息隊列等待處理;
26、若錯誤,返回步驟1重新調用處理失敗的子任務,傳遞至消息隊列等待處理。
27、可選的,當同一子任務失敗次數超過閾值,則將任務標記為失敗。
28、可選的,采用多個副本實現步驟1至步驟5的方法的運行,允許多個副本的流程引擎監聽相同的消息隊列。
29、有益效果:現有的消息隊列都是作為一種簡單的投遞作用,本發明提出了將消息隊列作為自動驅動bpmn流程的核心驅動能力,將bpmn核心流程編排能力和消息隊列結合,通過配置不同類型的消息隊列,將不同流程文件中解析的同類型子任務放入相同消息隊列執行,多個副本可以執行同類型的子任務,而且同一時刻可以實現同時執行不同類型的子任務的能力。如此通過異步處理和并行執行任務,提高流程的處理效率和系統的吞吐量。相比于同步執行方法,需要同一流程文件中解析的所有子任務都完成之后才能進行下一組任務的處理,本發明提出的基于消息隊列的方法穩定且高效。
1.一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,包括如下結構:
2.如權利要求1所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,流程引擎包括流程文件存儲模塊、流程文件解析模塊和流程執行模塊,其中,
3.如權利要求2所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,流程引擎還包括:
4.如權利要求2所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,流程引擎還包括:管理模塊,用于流程文件發布和版本更新管理。
5.如權利要求2所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,流程引擎還包括流程記錄模塊,用于記錄流程運轉期間的跟蹤記錄。
6.如權利要求2所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,消息隊列包括快處理組和慢處理組,其中,
7.如權利要求1至6任一項所述的一種基于消息隊列實現的業務流程驅動引擎系統,其特征在于,流程文件是基于bpmn2.0工作流協議的文件。
8.一種業務流程驅動引擎的運行方法,其特征在于,包括如下步驟:
9.如權利要求8所述的一種業務流程驅動引擎的運行方法,其特征在于,當同一子任務失敗次數超過閾值,則將任務標記為失敗。
10.如權利要求8所述的一種業務流程驅動引擎的運行方法,其特征在于,