camunda流程引擎概念術語


前言

本文重點介紹開源流程引擎camunda的核心概念,這些概念同樣適用於JBMP、Activiti、Flowable流程引擎,了解這些基本概念和原理,使用流程引擎API將更得心應手。

一、Process Definition

Process Definition即流程定義。Process Definition定義了流程的結構,或者說定義了業務活動的執行過程。Camunda bpm使用bpmn2.0作為其流程定義的主要建模語言。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用戶通過拖拉拽的方式設計流程圖,這個設計完的xml文件就是流程定義。

二、Process Instance

Process Instance即流程實例。流程實例是流程定義的單獨執行,流程定義和流程實例是一對多關系。流程實例與流程定義的關系與面向對象編程中對象與類的關系相同(在這種類比中,流程實例扮演對象的角色,流程定義扮演類的角色)。
流程定義設計完成后,發布到BPM,通過流程引擎解析流程定義,發起一次流程即創建了一個流程實例,比如:創建了一個“請假流程”,這是一個流程定義,張三發起了一次請假流程,即創建了一個流程實例,李四也發起了一次請假,就是創建了另一個流程實例,這兩個實例均基於流程定義創建生成。

三、Execution

Execution即流程執行實例,如果流程實例包含多個執行路徑(例如,在並行網關之后),則會同時產生多個執行實例,即execution, 通過excutionId能夠區分流程實例內的當前活動路徑。如下流程圖,“receive payment”和“ship order”節點同時運行,即有兩個execution在運行。

在這里插入圖片描述
Execution(執行)是分層的,流程實例中的所有Execution(執行)組成一個樹,Process Instance(流程實例)是樹中的根節點,Process Instance(流程實例)本身就是一個Execution(執行)。

四、Activity Instance

Activity Instance即活動實例,活動實例概念與執行概念類似,但采用了不同的視角。雖然可以將執行想象為在流程中移動的令牌,但活動實例表示活動(任務、子流程等)的單個實例。因此,活動實例的概念更面向狀態。

五、Process Variable

Process Variable即流程變量,流程變量在整個工作流中扮演很重要的作用,是業務和流程引擎之間交互信息的載體,業務可以把數據放到流程變量里傳遞給流程引擎,流程引擎也可以把信息放到流程變量給傳遞給業務,流程變量最常見的用途有路由條件表達式、流程執行事件參數等。例如:請假流程中有請假天數、請假原因等一些參數都為流程變量的范圍。流程變量的作用域范圍是流程實例,也就是說各個流程實例的流程變量是不相互影響的。

六、Tasklist

Tasklist即任務列表,也就是待辦任務。當流程節點是人工任務類型時,才可產生任務列表。

七、Job and Job Definition

Job and Job Definition即作業執行器,Camunda流程引擎包含一個名為Job Executor的組件。作業執行器是一個調度組件,負責執行異步后台工作。考慮一個計時器事件的例子:每當流程引擎到達計時器事件時,它將停止執行,將當前狀態保存到數據庫,並創建一個作業以在將來繼續執行。部署流程時,流程引擎會為流程中的每個活動創建作業定義,這些活動將在運行時創建作業。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM