jc_dreaming 发表于 2013-2-7 16:33:47

jBPM4.4:ProcessDefinition/ProcessInstance/Execution/Task关系和区别

ProcessDefinition :
这个最好理解,就是流程的定义,也就相当于规范。
ProcessDefinition也有id,这个id是 {key}-{version}
在部署过程中,会把一个id分配给流程定义。 这个id的格式为{key}-{version}, key和version之间使用连字符连接。
如果没有提供key, 会在名字的基础自动生成。 生成的key会把所有不是字母和数字的字符替换成下划线。
ProcessInstance :
这个也比较好理解,就是流程的一个实例。
在系统中,也有一个ProcessInstance的Id
key可以用来创建流程实例的id, 格式为{process-key}.{execution-id}。
如果没有提供用户定义的key,数据库就会把主键作为key。
用Java来讲: ProcessDefinition就是代码中的一个类,而ProcessInstance就是把这个类new了出来,创建了一个实例;

Execution :目前这个还比较难以理解。
在jBPM官方上是这么说的:
http://jboss.org/jbpm 写道
Each execution of a process definition is called a process instance.
每一个流程定义的实施,被成为process instance。这个只讲了ProcessDefinition与ProcessInstance之间的关系。

在ExecutionService中,start的是ProcessInstance。
在ProcessInstance的JavaDoc中把ProcessInstance和Execution区别讲了出来:
ProcessInstance的Javadoc 写道
<div class="quote_title">引用
页: [1]
查看完整版本: jBPM4.4:ProcessDefinition/ProcessInstance/Execution/Task关系和区别