Camunda BPM既可以單獨作為流程引擎服務存在,也能嵌入到其他java應用中。Camunda BPM的核心流程引擎是一個輕量級的模塊,可以被Spring管理或者加入到自定義的編程模型中,并且支持線程模型。
1,流程引擎架構
流程引擎由多個組件構成,如下所示:
API服務
API服務,允許java應用程序與流程引擎進行交互。不同職責被分離成單獨的服務,比如:流程存儲,任務管理等。通過命令攔截器路由到不同職責的服務,該攔截器設置線程上下文,比如事務等
BPMN2.0核心引擎
流程引擎的核心。包含一個圖結構的輕量級執行引擎PVM,一個用來將BPMN2.0 XML文件轉換為java對象的解析器,一組BPMN行為實現。
作業執行器
負責處理異步的后臺工作。
持久層
負責將流程實例狀態持久化到關系型數據庫,這里使用的是Mybatis進行對象關系映射,非常容易理解。
2,Camunda BPM 平臺架構
由于Camunda BPM非常靈活,支持不同的部署場景。
嵌入式流程引擎
將流程引擎作為應用程序庫添加到自定義的應用程序中。由應用程序控制流程引擎的啟動和停止,并且可以根據需要運行多個流程引擎。