JBPM工作流常见概念

1. 流程定义Process Definition
流程定义是记录在xml文件中的对流程的描述,它包含唯一的流程开始节点和多个流程功能节点,每个节点之间使用transition进行连接。

Process Definition使用id, key和version进行标识,jBPM中可能包含多个key值相同的Process Definition,key值相同的Process Definition会拥有不同的version值,而id是使用key-version的形式用来表示唯一的Process Definition的。

jBPM中使用RepositoryService来控制流程定义的发布,浏览,删除等操作。

2. 流程实例Process Instance
以流程定义为蓝本生成的流程实例,在jBPM属于Execution的一种。

当我们执行start时,会根据流程定义启动一个新的流程实例,然后它会根据流程定义里的节点运行,在遇到state或task时停顿,等待外部用户调用signal,最后会执行到end节点,结束整个流程。

jBPM中只允许有一个start节点,所以每个流程都是单一入口的,jBPM4中可以允许有多个end节点,所以我们可以在任意位置结束流程。

jBPM中使用ExecutionService来控制流程实例的启动,浏览,执行,删除等操作

3. state节点
state节点是等待节点,它必须等待用户执行signal才能让流程实例进行到下一步。

除了state之外,其他的节点都不需要用户执行signal就可以直接向下运行,感觉state就是一个异类,不清楚在xpdl里是如何定义这类节点的概念的。

jBPM中使用ExecutionService来控制对state的signal操作。

4. task节点
task节点是任务节点,可以使用assignee, swimelane等方式为任务定义分配到某个人或者某个组,对应的用户可以执行completeTask()结束任务,并控制任务结束后流程实例向哪个方向前进。

jBPM中使用TaskService控制task的各项操作。

14.5. Identity身份验证
jBPM中的身份验证分为User, Group和Membership三部分,用户表示登陆用户,Group表示用户组,用户和用户组之间的关联关系保存在Membership中。User和Group与Task中的assignee和swimelane是息息相关的。

jBPM中使用IdentityService控制身份的各项操作。

6.事件
Event反映的是流程执行中的各个时刻。在流程执行中 JBPM引擎会在计算下一个状态的时候触发各种事件。一个事件通常和流程定义中的一个元素相关联,比如流程定义本身,节点或者转移。大部分的元素能够触发不同类型的事件,比如一个节点可以触发节点进入事件,节点离开事件。事件其实是和动作连接在一起的。每个事件维护一个动作列表。当JBPM引擎触发一个事件的时候,该事件维护的动作列表中的动作将被执行。

JBPM中事件类型是写死在事件类中的,共有16种:
EVENTTYPE_TRANSITION = "transition"; // 转移
EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 发信号前
EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 发信号后
EVENTTYPE_PROCESS_START = "process-start"; // 处理开始状态
EVENTTYPE_PROCESS_END = "process-end"; // 处理结束状态
EVENTTYPE_NODE_ENTER = "node-enter"; // 进入节点
EVENTTYPE_NODE_LEAVE = "node-leave"; // 离开节点
EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 进入超级状态
EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 离开超级状态
EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程创建
EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程结束
EVENTTYPE_TASK_CREATE = "task-create"; // 任务创建
EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任务分派
EVENTTYPE_TASK_START = "task-start"; // 任务启动
EVENTTYPE_TASK_END = "task-end"; // 任务结束
EVENTTYPE_TIMER = "timer"; // 定时器

7.transition
关联两个节点,用于表示节点的走向

8.常用类说明
ProcessEngine:它是整个jBPM4的入口,并且是单例模式。通过它可以获取processEngine,并藉此获得工作流引擎所提供的各种服务

RepositoryService:控制流程定义的发布,浏览,删除等操作

ExecutionService:控制流程实例的启动,浏览,执行,删除等操作

IdentityService:控制身份的各项操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值