JBPM4工作流知识简单介绍

  1.         流程定义(ProcessDefinition)基于有向图对业务进行描述,图是由节点(活动)和转移(Transition)构成的,节点是有类型的, 节点的类型决定了到达该节点做的事情,不同的节点做的事情不一样,转移描述了一个流向或路径,转移表示了from … to ..的关系
  2.         任务节点(Task),当流程到达该节点将会创建任务实例(TaskInstance)分别分配给参与者,
    如:商务主管审核流向单就是一个任务节点,当到达该节点就会创建流向单审核任务分配给商务主管,如:张三,然后张三登录系统,查看待审任务列表,就可以看到待处理的流向单审批任务了,之后可以就可以进行审批(只要有人参与活动,一般就使用任务节点,因为要分配给人处理)
  3.        态节点(State),这种节点处于等待状态,不会创建任务,除非外界系统进行干预才会执行,等待外部系统一个返回,根据这个返回决定下一步的流向
  4.        起始节点(Start),流程定义中必须有一个起始节点,而且只能有一个
  5.        结束节点(End),流程定义中可以没有结束节点,也可以有多个结束节点
  6.        决策节点(Decision),决策节点是由流程自动决策的,不需要人为干预,该节点相当于if…else ….决策节点可以嵌入java代码或使用脚本语言进行判断(如:可以取得分销商的级别,如果是一级分销商,那么就转移到项目会计审核流向单,否则就转移到 大区经理审核流向单)
  7.       分支节点(Fork),将一个路径可以分解为多个并发的子路径(并发任务),只有所有的子路径到达联合节点(Join),主路径才会继续执行
  8.      流程实例(ProcessInstance),流程实例就是流程定义的具体化,一个流程定义会有多个流程实例,如:如张三启动一个录入流向单的流程,录入流向单的这个流程就是一个流程实例,如:张三、李四、王五都录入流向单,那么系统中将会同时存在三个流程实例
  9.     流程变量(Process variable),流程变量保存了上下文信息,流程变量采用Map结构存储,采用键值对的方式,流程变量是流程实例的一部分,流程变量的生命周期是随着 流程实例的消亡而消亡的,流程变量的值在此流程中的任何节点都可以读取和修改(和ThreadLocal类似)
  10.     信号(Singal),发送信号可以让节点离开,如:State节点,必须手动发送信号才可以离开
  11.     泳道(Swimlane),泳道是流程中的角色,如果建立了泳道可以方便分配任务,泳道可以使任务和参与者分离,任务直接依赖于泳道而不直接依赖于参与 者,所以当参与者发生改变不会影响到任务分配的,泳道可以包含多个参与者,但是只要有一个参与者处理完成任务,其他参与者待审任务列表中的任务将会消失, 不能处理任务了
  12.     事件(Event),当流程离开、到达某个节点或执行转移的时候,都会触发事件的
  13. JBPM4整个代码都重写了,和JBPM3不一样,引入了流程虚拟机(PVM)
  14. ProcessEngine是JBPM4的外观接口(facade模式,门面模式),从另一个角度看是一个抽象工厂模式,这个类是JBPM4的核心,所有的服务都需要通过ProcessEngine来创建,该类是线程安全的

   15.JBPM4主要包括6个Service,这些Service都是通过ProcessEngine创建的,主要作用如下:

 

      RepositoryService    主要和流程定义相关,如:部署流程、删除流程、查看流程
      ExecutionService    和流程实例相关,启动流程
      HistoryService    JBPM4的数据库设计发生了改变,区分了历史表和当前表,主要适合于大量流程下的使     用,HistoryService主要是查询历史的
      TaskService    和任务相关,取得个人任务,组任务,结束任务、一参与者的完整任务=个人任务(findPersonalTasks) + 组任务(findGroupTasks)
      IdentityService    身份相关,创建用户、创建组、主要和我们组织机构整合时用的
      ManagementService    管理定时任务的(job)

你可能感兴趣的:(jbpm4)