一、简介
jBPM(Java Business Process Management)是一个开源的业务流程管理框架,用于管理和执行业务流程。它提供了一个可视化的流程设计器,可以创建、模拟和部署业务流程,并提供了灵活的流程执行引擎。
jBPM可以帮助开发人员和业务分析师更好地管理和优化业务流程。它提供了以下功能和作用:
-
流程建模:jBPM提供了一个可视化的流程设计器,使开发人员和业务分析师能够创建和修改业务流程。它支持多种流程模型,如BPMN(Business Process Model and Notation)和规则流程。
-
流程执行:jBPM的流程引擎可以执行已定义的业务流程。它包括流程实例管理、任务分配、流程状态管理等功能。开发人员可以使用jBPM的API来管理和控制流程的执行。
-
任务管理:jBPM提供了任务管理功能,可以创建、分配和跟踪任务。它支持任务的优先级、截止日期、委派和转派等功能,以便更好地管理任务的执行。
-
规则引擎:jBPM集成了Drools规则引擎,可以将规则与业务流程相结合。开发人员可以使用规则引擎来定义和执行业务规则,从而实现更灵活的业务流程。
-
监控和优化:jBPM提供了监控和优化业务流程的功能。它可以记录流程的执行情况、性能指标和错误信息,并提供可视化的报表和分析工具,以便用户能够优化业务流程的效率和质量.
jBPM和flowable都是工作流引擎,还有Activiti、Bonita 、Airflow等工作流引擎
二、应用部署
应用程序部署有两种方式:单机模式(standalone mode)和开发模式(development mode)。单机模式没有额外的配置和依赖要求,直接本地启动即可(可借助于 spring boot+tomcat,或者使用 jboss 服务器),而开发模式需要 Business Central 作为 jBPM Controller,开发模式意味着允许用户在不需要重启服务的情况下,进行处理业务资产项目,并动态地将更改部署到业务应用程序。同时,它提供了对业务自动化功能(流程实例、任务、作业等)的完整监视环境。
启动方式一:单机模式(standalone mode)
参考 csdn 代码示例中 spring-boot-jbpm 子工程,csdn地址:https://download.csdn.net/download/zhuqiuhui/87452118
启动方式二:开发模式(development mode, 或托管模式 managed mode)
开发模式需要启动 jBPM-server,这里重点讲示例应用程序模板 business-application 怎么结合 Business Central 使用。
-
Step 1:下载并启动 jBPM-server,地址:jBPM - Open Source Business Automation Toolkit - jBPM Business Automation Toolkit
jbpm-server/bin/standalone.sh (Unix / Linux)
jbpm-server/bin/standalone.bat (Windows)
-
Step 2:访问并登录 Business Central(以账号示例:wbadmin/wbadmin),地址:http://localhost:8080/business-central
-
Step 3:以开发模式启动应用程序模板 business-application 工程中 business-application-service 模块
./launch-dev.bat clean install
-
Step 4:在 Business Central 系统上新增 project 并导入资产工程 business-application-jar
-
(1)进行到 business-application-jar 目录下,进行 git 工程初始化,命令如下:
-
git init git add -A git commit -m "my business assets project"
(2)在 Business Central 系统上导入 project
Step 5:将资产文件deploy 导入到 business-application-service Dev 服务中
Step 6:在 Business Central 系统中 Manage 模块进行流程实例运行,并在 Track 模块中进行查看报告
三、jBPM 整体架构
图来自 jBPM 官方文档,
Execution
Core Engine:是 jBPM 整个项目的核心,支撑着整个工作流的顺利执行,可作为项目的一部分嵌入到项目中,也可被当作一个单独的服务进行独立部署,然后通过基于网页的方式或者远程调用接口的方式进行通讯连接。
Human Task Service:用于有人工参与的流程任务中
Persistence:流程实例运行时,可以持久化流程状态和历史日志信息
CDI、REST 和 JMS:应用程序在运行时连接 Core Engine 可通过 Java API、CDI 服务、REST API 或者 JMS API 方式
Modeling & Deployment
Process Designer:设计者可基于 web 环境设计和模拟业务流程
Data Modeler:允许非技术人员创建、查看和修改流程中的数据模型
Rule Authoring:允许在工作流中指定或者创建不同的业务规则组合,比如 decision tables、 guided rules等
Form Modeler:允许创建、生成或者编辑流程中的表格
Guvnor Repository:所有的资产通过 Guvnor 仓库存储和管理,同时可以进行版本控制、构建和部署
Eclipse Developer Tools:基于Eclipse的开发者工具是Eclipse IDE的一种拓展,目的是为了让开发者能够通过简单的拖拽的方式构建自己的工作流,测试自己的工作流和debug自己的工作流等
Runtime Management & Reporting
基于 web 的管理控制台允许使用者对流程进行操作,比如开始或者运行某个流程实例,也可以查看流程实例中的的任务列表、监控状态和监控报告。