首先介绍几个必要的JBPM中的实例对象。以方便谈论架构。
JbpmConfiguration: Jbpm的配置文件,
JbpmContext: 想当于根据配置文件,和数据库配置而生成相关的流程上下文。
Swimlane: 泳道用于简化指派参与者的操作的一种方式(指定参与者可以在多个地方,如:配置,或编码的方式指定。);
Node: 节点,所有节点的根类,代表了流程执行的节点。
Transition: 有向弧,流向,表明了流程执行的方向。
Action: 即在节点或者有向弧中可以进行操作的地方。
ProcessDefinition: 这个是对于流程的定义,依赖于一个xml文件,用流程定义语言(JPDL)描述。
ProcessInstance: 故名思意,就是根据流程定义ProcessDefinition相当于流程的模板而生成的一个流程实例,发起代表一次流程,一次流程也唯一的对应一个ProcessInstance,但是也有子流程这种其中采用了多个ProcessDefinition模板。
ContextInstance: 该对象是流程实例的一个扩展用于控制其使用的变量。该对象和ProcessInstance是一对一的关系。
Task: 任务对象,其中保存了节点对参与者的指派,以及关于进行的操作的系列信息。
TaskInstance:该对象也是和ProcessInstance的一个扩展。其中负责管理对任务的指派的流程实例。
TaskMgmtSession: 流程任务实例的管理对象,其中能够对流程实例进行管理。
Token: 令牌,即代表了流程执行的当前状态,所有的关于流程的操作,最总都是交给Token来完成。
而所有的对象状态都是交由jbpmContext管理,即根据不同的状态进行数据库持久操作。