Activiti 是一個遵從 Apache 許可的工作流和業務流程管理開源平臺,它的核心是基於 Java 的超快速、超穩定的 BPMN 2.0 流程引擎,強調流程服務的可嵌入性和可擴展性,同時強調面向業務人員。本文主要介紹 Activiti 的一些基礎知識,包括 Activiti 結構、基本服務和功能簡介。
背景介紹
Activiti 核心是 BPMN 2.0 的流程引擎,全稱爲 Business Process Model and Notation,由 OMG 組織進行維護,2011 年 1 月份發佈了其 2.0 的正式版。BPMN 2.0 對比於第一個版本,其最重要的變化在於其定義了流程的元模型和執行語義,即它自己解決了存儲、交換和執行的問題。這代表 BPMN 2.0 流程定義模型不僅僅可以在任何兼容 BPMN 2.0 的引擎中執行,而且也可以在圖形編輯器間交換。作爲一個標準,BPMN 2.0 統一了工作流社區。Activiti 是由 jBPM 的創建者 Tom Baeyens 離開 JBoss 之後建立的,在 jBPM 版本 1 到 4 積累的多年經驗的基礎之上,旨在創建創建下一代BPM 解決方案。同時 Activiti 選擇了 Apache 許可,一方面是希望 Activiti 能有更長久的生命力,另一方面更是希望這個寬鬆的許可能夠讓 Activiti BPM 引擎和 BPMN2.0 被更廣泛的採納、使用和商業化。
對於 Java 開發者來說,Activiti 的首席架構師 Tom Baeyens 曾提到,Activiti 的首個目標就是要獲得開發者的青睞。首先它在使用時極爲方便,只是個 jar 文件,使用時僅需要將其放在類路徑中,當然,Activiti 也可以作爲獨立服務器的方式使用;同時 Activiti 提供了很多 BPM 高級工具,其中還包括開發了協作工具,使得開發人員、業務人員和運維人員能夠更好的協同工作。
Activiti 基本架構
Activiti 流程引擎重點關注在系統開發的易用性和輕量性上。每一項 BPM 業務功能 Activiti 流程引擎都以服務的形式提供給開發人員。通過使用這些服務,開發人員能夠構建出功能豐富、輕便且高效的 BPM 應用程序。
Activiti 關鍵對象
Deployment:流程部署對象,部署一個流程時創建。
ProcessDefinitions:流程定義,部署成功後自動創建。
ProcessInstances:流程實例,啓動流程時創建。
Task:任務,在Activiti中的Task僅指有角色參與的任務,即定義中的UserTask。
Execution:執行對象,流程實例和流程執行中的所有節點都是Execution,如UserTask、ServiceTask等。
Activiti服務組件介紹
ProcessEngine是Activiti系統的核心接口,七類基礎服務接口通過ProcessEngine獲取,這些服務是: