分布式流程調度系統(tǒng)及流程調度、執(zhí)行方法
【技術領域】
[0001]本發(fā)明涉及分布式數(shù)據(jù)處理領域,具體而言,涉及一種分布式流程調度系統(tǒng)及流程調度、執(zhí)行方法。
【背景技術】
[0002]自流程的概念被正式提出后,流程管理一直受到學者和企業(yè)的重視,人們對流程的理解和認識也不斷加深,在科研和工業(yè)等領域都形成了科學、成熟的流程管理模式,其中流程的邏輯關系也越來越復雜。隨著流程應用的數(shù)量以及復雜度迅速增長,其中的數(shù)據(jù)量激增。
[0003]目前已經(jīng)有包括業(yè)務流程管理(Java Business Process Management,簡稱為JPBM)、Activiti等主流工作流引擎廣泛應用于實際業(yè)務系統(tǒng)中。通過行業(yè)標準的業(yè)務流程建模與標注(Business Process Modeling Notat1n,簡稱為BPMN)編寫流程定義,通過可擴展標記語言(Extensible Markup Language,簡稱為XML)進行流程描述。通過對系統(tǒng)接口的調用可以很輕松的實現(xiàn)流程的加載、啟動以及流程任務的相關操作。但是傳統(tǒng)的工作流引擎都是獨立部署運行,在當今的大數(shù)據(jù)時代處理能力捉襟見肘。
[0004]隨后有學者提出了簡單工作流(Simple Workf low,簡稱為SWF),作為一個基于分布式計算調度框架的工作流引擎,SffF由Worker和Decider組成,Worker執(zhí)行實際任務,Decider進行流程控制,它的設計結構決定其職能用于處理簡單的WorkFlow,因為所有的流程控制都集中于Decider如果太復雜的話Decider將無比龐大。給維護和拓展帶來很大困難。
[0005]針對相關技術中大數(shù)據(jù)量條件下高性能的進行流程調度與管理的問題,目前尚未提出有效的解決方案。
【發(fā)明內容】
[0006]針對相關技術中大數(shù)據(jù)量條件下高性能的進行流程調度與管理的問題,本發(fā)明提供了一種分布式流程調度系統(tǒng)及流程調度、執(zhí)行方法,以至少解決上述問題。
[0007]根據(jù)本發(fā)明的一個方面,提供了一種分布式流程調度系統(tǒng),包括:第一管理節(jié)點和位于集群系統(tǒng)中的多個流程處理節(jié)點,其中,第一管理節(jié)點包括:管理模塊,用于管理所述多個流程處理節(jié)點;負載均衡模塊,用于按照預設的負載均衡策略從所述多個流程處理節(jié)點中選擇執(zhí)行流程處理任務的流程處理節(jié)點,并將流程處理任務分發(fā)至選擇的流程處理節(jié)點;所述多個流程處理節(jié)點中的每個流程處理節(jié)點,配置有流程處理引擎,用于執(zhí)行流程處理任務。
[0008]可選地,所述多個流程處理節(jié)點中的每個流程處理節(jié)點,用于根據(jù)流程定義文件標準,確定流程處理任務使用的流程引擎,對確定的流程引擎進行適配,適配完成后啟動流程弓I擎執(zhí)行所述流程處理任務。
[0009]可選地,所述多個流程處理節(jié)點中的每個流程處理節(jié)點,還用于解析所述流程處理任務,將所述流程處理任務中的數(shù)據(jù)持久化到第一數(shù)據(jù)庫中、將流程處理任務的結果持久化到第二數(shù)據(jù)庫中,以及將流程處理任務執(zhí)行狀態(tài)緩存至內存數(shù)據(jù)庫中。
[0010]可選地,所述系統(tǒng)還包括:第二管理節(jié)點,用于監(jiān)控所述多個流程處理節(jié)點的工作狀態(tài),在流程處理節(jié)點出現(xiàn)故障時,向所述負載均衡節(jié)點請求流程恢復;所述負載均衡模塊,還用于響應所述第二管理節(jié)點的請求,選擇流程處理節(jié)點執(zhí)行請求恢復的流程處理任務。
[0011]可選地,所述第一管理節(jié)點,用于管理所述多個流程處理節(jié)點的集群狀態(tài)以及流程處理狀態(tài),并將所述集群狀態(tài)和所上述流程處理狀態(tài)同步至所述第二管理節(jié)點;所述第二管理節(jié)點,用于監(jiān)聽所述多個流程處理節(jié)點的工作狀態(tài),在流程處理節(jié)點出現(xiàn)故障時,根據(jù)所述第一管理節(jié)點同步的數(shù)據(jù)向所述負載均衡節(jié)點請求流程恢復。
[0012]可選地,所述第二管理節(jié)點包括:主第二管理節(jié)點和備第二管理節(jié)點,所述主第二管理節(jié)點和所述備第二管理節(jié)點采用主備機制。
[0013]根據(jù)本發(fā)明的另一個方面,提供了一種流程調度方法,包括:響應流程處理請求,按照預設的負載均衡策略從位于集群系統(tǒng)中的多個流程處理節(jié)點中選擇執(zhí)行流程處理任務的流程處理節(jié)點;向選擇的流程處理節(jié)點分發(fā)所述流程處理任務。
[0014]可選地,所述方法還包括:監(jiān)控所述多個流程處理節(jié)點的工作狀態(tài);在流程處理節(jié)點出現(xiàn)故障時,重新選擇流程處理節(jié)點執(zhí)行出現(xiàn)故障的流程處理節(jié)點所執(zhí)行的流程處理任務。
[0015]根據(jù)本發(fā)明的再一個方面,提供了一種流程執(zhí)行方法,包括:響應流程處理任務,根據(jù)流程處理任務確定流程定義文件標準;根據(jù)流程定義文件標準確定流程處理任務使用的流程引擎;對確定的流程引擎進行適配,適配完成后啟動流程引擎執(zhí)行所述流程處理任務。
[0016]可選地,上述方法還包括:解析所述流程處理任務,將所述流程處理任務中的數(shù)據(jù)持久化到第一數(shù)據(jù)庫中;將流程處理任務的結果持久化到第二數(shù)據(jù)庫中;以及將流程處理任務執(zhí)行狀態(tài)緩存至內存數(shù)據(jù)庫中。
[0017]通過本發(fā)明,采用負載均衡和分布式集群系統(tǒng),實現(xiàn)了流程的分布式調度。
【附圖說明】
[0018]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0019]圖1是根據(jù)本發(fā)明實施例的分布式流程調度系統(tǒng)的示意圖;
[0020]圖2是根據(jù)本發(fā)明實施例的流程調度方法的流程圖;
[0021]圖3是根據(jù)本發(fā)明實施例的流程執(zhí)行方法的流程圖;
[0022]圖4是根據(jù)本發(fā)明實施例可選的分布式流程調度系統(tǒng)的示意圖。
【具體實施方式】
[0023]下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0024]圖1是根據(jù)本發(fā)明實施例的分布式流程調度系統(tǒng)的示意圖,如圖1所示,該系統(tǒng)包括:第一管理節(jié)點I和位于集群系統(tǒng)中的多個流程處理節(jié)點2,其中,第一管理節(jié)點I包括:管理模塊,用于管理所述多個流程處理節(jié)點;負載均衡模塊,用于按照預設的負載均衡策略從所述多個流程處理節(jié)點2中選擇執(zhí)行流程處理任務的流程處理節(jié)點,并將流程處理任務分發(fā)至選擇的流程處理節(jié)點;所述多個流程處理節(jié)點2中的每個流程處理節(jié)點,配置有流程處理引擎,用于執(zhí)行流程處理任務。
[0025]在本發(fā)明實施例中,可以在每個流程處理節(jié)點上設置流程處理引擎(也稱為工作流引擎),以執(zhí)行流程處理任務。流程處理任務為請求執(zhí)行的工作流。工作流就是工作流程的計算模型,即將工作流程中的工作如何前后組織在一起的邏輯和規(guī)則在計算機中以恰當?shù)哪P瓦M行表示并對其實施計算。
[0026]在本發(fā)明實施例中,負載均衡模塊,可以用于實現(xiàn)IP層的負載均衡。負載均衡模塊接收到流程處理請求后,選擇處理流程處理任務的節(jié)點,并將流程處理請求中的IP地址替換成選擇的流程處理節(jié)點的IP地址,向該流程處理節(jié)點發(fā)送流程處理請求。負載均衡模塊接收到的流程處理請求中的目的IP地址為系統(tǒng)向外提供的地址,從而對外部用戶而言僅有一個IP地址。
[0027]在本發(fā)明實施例的一個可選實施方式中,上述多個流程處理節(jié)點中的每個流程處理節(jié)點,可以用于根據(jù)流程定義文件標準,確定流程處理任務使用的流程引擎,對確定的流程引擎進行適配,適配完成后啟動流程引擎執(zhí)行所述流程處理任務。通過該實施方式,提高了系統(tǒng)的可拓展性。
[0028]在本發(fā)明實施例的一個可選實施方式中,上述多個流程處理節(jié)點中的每個流程處理節(jié)點,還用于解析所述流程處理任務,將所述流程處理任務中的數(shù)據(jù)持久化到第一數(shù)據(jù)庫中、將流程處理任務的結果持久化到第二數(shù)據(jù)庫中,以及將流程處理任務執(zhí)行狀態(tài)緩存至內存數(shù)據(jù)庫中。通過該實施方式,流程處理任務執(zhí)行狀態(tài)異步存儲到內存數(shù)據(jù)庫中,為用戶提供高效的異步查詢服務;同時,將流程處理節(jié)點相關的數(shù)據(jù)持久化存儲到傳統(tǒng)的關系型數(shù)據(jù)庫中為系統(tǒng)提供數(shù)據(jù)。
[0029]在本發(fā)明實施例的一個可選實施方法中,上述系統(tǒng)還包括:第二管理節(jié)點,用于監(jiān)控所述多個流程處理節(jié)點的工作狀態(tài),在流程處理節(jié)點出現(xiàn)故障時,向所述負載均衡節(jié)點請求流程恢復;所述負載均衡模塊,還用于響應所