Camunda BPM既可以单独作为流程引擎服务存在,也能嵌入到其他java应用中。Camunda BPM的核心流程引擎是一个轻量级的模块,可以被Spring管理或者加入到自定义的编程模型中,并且支持线程模型。
1,流程引擎架构
流程引擎由多个组件构成,如下所示:
API服务
API服务,允许java应用程序与流程引擎进行交互。不同职责被分离成单独的服务,比如:流程存储,任务管理等。通过命令拦截器路由到不同职责的服务,该拦截器设置线程上下文,比如事务等
BPMN2.0核心引擎
流程引擎的核心。包含一个图结构的轻量级执行引擎PVM,一个用来将BPMN2.0 XML文件转换为java对象的解析器,一组BPMN行为实现。
作业执行器
负责处理异步的后台工作。
持久层
负责将流程实例状态持久化到关系型数据库,这里使用的是Mybatis进行对象关系映射,非常容易理解。
2,Camunda BPM 平台架构
由于Camunda BPM非常灵活,支持不同的部署场景。
嵌入式流程引擎
将流程引擎作为应用程序库添加到自定义的应用程序中。由应用程序控制流程引擎的启动和停止,并且可以根据需要运行多个流程引擎。