JBPM4相关概念

1、流程定义
   流程定义是对业务过程步骤的详细描述,在JBPM4中表现为若干“活动”节点
   通过“转移”线条串联。例如一个请假流程定义,描述了一个请假的具体处理
   步骤。
  
2、流程实例
   流程实例表示流程定义在运行时特有的执行例程。打个比方:可以把流程定义
   理解为一个Java类,而流程实例则可以理解为该Java类的一个具体对象。例如
   学生A提出请假申请,就会产生一个请假流程定义的具体流程实例A;学生B提出
   请假申请,又会产生一个新的请假流程定义的具体流程实例B;就好像一个名为
   User的Java类,使用User user1 = new User();会产生一个User(流程定义)的
   具体对象(流程实例)。所以一个流程定义对应多个流程实例。
  
3、执行
   一个流程实例的其生命周期中,最典型的特征就是其具有指向当前执行活动的指针
   -------“执行”。比如一个请假单流程实例:执行活动指针将指向该请假单当前所
   处的位置,也就是该请假单目前提交给谁了,是到了班长审批还是到了老师审批。
  
   注意:“执行”这个概念在JBPM3中被称为“token”,到了JBPM4中则变成了“executions”
  
   流程实例支持“并行”执行(比如企业中的一个采购单需要经过多个领导审批,也就是
   一个采购单在某个环节需要同时提交给多个人),所以在同一个流程实例中执行的数
   量并非绝对唯一(在某个节点提交成功后,可以fork到不同的节点,也就是产生多个
   分支)。
   一般情况下,一个流程实例可以理解为一颗“执行树”。当一个流程实例启动时,最初
   的执行处于这棵执行树的“根”节点位置,之后可以根据定义的需要产生子执行,即
   ”树枝“。
   JBPM使用树状执行结构的原因在于:这一概念实际上只有一条执行路径,所以执行终将
   归于(join)根执行(也就是说:fork和join在流程定义中是成对出现了)。这样,执
   行流程模型的实现和使用就更简单、更容易理解了。
  
   业务API不需要理解流程实例和执行之间的功能区别,jBPM Service API里值需要一个
   执行类型来引用流程实例。

【注:本文章参考《jBPM4工作流应用开发指南》胡奇 一书】

猜你喜欢

转载自zeng1990.iteye.com/blog/1517623