本文主要对jbpm4进行一个通俗、宏观的解析,涉及流程部署,流程定义,流程执行等基本概念,能让你很轻松地了解jbpm的基本结构和使用方法。
我们使用jbpm的一般步骤可以粗暴的分为:
定义流程——》部署流程定义——》创建流程实例——》运行流程——》控制和监视流程——》流程结束,归档流程——》对历史流程进行数据分析——》优化和重组业务——》定义流程——》……
在这个循环过程中,jbpm到底是怎么工作的?
我们先来下面这张图
当我们拿到一个业务需求的描述。
首先,我们要通过jbpl对该业务流程进行流程定义,表现为若干活动节点通过转移线条串联。有了流程定义文件,我们需要用到jbpm serviceAPI中的repositoryService将其进行部署,主要是写入数据库。使用serviceAPI,可以管理流程部署,流程执行,流程任务,流程历史等等,被管理的流程实例即为jbpl流程定义的实例化对象,成为流程实例。
在流程运行过程中与流程实例绑定或存储一些用户定义的,可以动态改变的数据,我们称为流程变量,流程变量可以流程运行更加灵活。同样可以运用serviceAPI进行操作,即ExecutionService。而我们的serviceAPI一共分为六个(见图中),都来自“流程引擎ProcessEngine”,通过get……()方法获得,如:processEngine.getRepositoryService()。
而ProcessEngine是由Configuration创建,使用Configuration.set……()等方法可以从xml,inputstream,inputsource,url,文件中等创建,即工作流引擎根据配置产生。看到Configuration,会发现jbpm核心对象的获得和大多数开源框架,例如hibernate,spring等核心对象的获得是基本相同的。
这次先写到这,后面慢慢说。