`
bailingeye
  • 浏览: 21497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jbpm常见概念

阅读更多

jBPM4 常见概念

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
节点
  
状态结点是一个典型的等待状态。同任务结点不同的是,状态结点不会向任务列表添加任务实例。当业务进程需要等待外部系统的干预时,这种结点是很有用的。(需要外部系统干预,但又不是让人去干预)假设如下情况:在进入该结点时,通过 node-enter 事件向外部系统发送一个消息,然后结点进入等待状态;当外部系统完成处理,并回送一个消息,这将导致触发一个 signal() 方法的运行,该方法重新激活正在等待的流程继续下行
   jBPM
中使用 ExecutionService 来控制对 state signal 操作。

4. task
节点
  
任务结点( task-node )任务结点是代表由人介入的一个或多个任务。因此当流程运行到一个任务结点时,会生成 任务实例对象( task instances ,并添加到参与人的任务列表中,之后结点会处于等待状态,直到参与人完成他们的任务,并激活流程继续向下执行。
   task
节点可以使用 assignee, swimelane 等方式为任务定义分配到某个人或者某个组,对应的用户可以执行 completeTask() 结束任务,并控制任务结束后流程实例向哪个方向前进。
   jBPM
中使用 TaskService 控制 task 的各项操作。

5. Identity
身份验证
   jBPM
中的身份验证分为 User, Group Membership 三部分,用户表示登陆用户, Group 表示用户组,用户和用户组之间的关联关系保存在 Membership 中。 User Group Task 中的 assignee swimelane 是息息相关的。
 
6.
事件
   Event
反映的是流程执行中的各个时刻。在流程执行中 JBPM 引擎会在计算下一个状态的时候触发各种事件。一个事件通常和流程定义中的一个元素相关联,比如流程定义本身,节点或者转移。大部分的元素能够触发不同类型的事件,比如一个节点可以触发节点进入事件,节点离开事件。事件其实是和动作连接在一起的。每个事件维护一个动作列表。当 JBPM 引擎触发一个事件的时候,该事件维护的动作列表中的动作将被执行。

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

8.
常用类说明
   ProcessEngine
:它是整个 jBPM4 的入口,并且是单例模式。通过它可以获取 processEngine ,并藉此获得工作流引擎所提供的各种服务
  
   RepositoryService
:控制流程定义的发布,浏览,删除等操作
  
   ExecutionService
:控制流程实例的启动,浏览,执行,删除等操作

   IdentityService
:控制身份的各项操作

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics