Jbpm介绍

一、介绍下大背景
   
工作流的应用市场部分内容就不提了。
   
首先提一下目前工作流域的两种主流方向
1
workflow
  
代表osworkflow等。
workflow
的特点为:其主要侧重于对流程的处理模型方面,也就是说它关注的重心是流程的处理
2
BPM-商业逻辑流程模型
BPM
的重心为商业逻辑流程模型的处理
其中以JBPM为代表
这是两者最大的区别,也就是切入点不同。
不过对我们实际应用来说,选哪个区别都不是很大
说到工作流就要提到WFMC组织,这个组织是国际上一些厂商组成的一个工作流的组织,该组织给出了一个他们自己定义的工作流的定义,及XPDL语义。
该定义将工作流的定义包括为至少以下五部分内容:
1
、工作流过程活动
2
、转移信息
3
、参与者声明
4
、外部应用程序声明
5
、相关数据
并给出了标准的语法来描述上述元数据
1
workflow process
2:activity
3:transition
4:application
5:date field
由于JBPM不符合上述语法定义,因此JBPM是不符合该WFMC规范的

不过上述每部分内容在JBPM都有自己的定义来描述
1:process
2:task
3:transition
4:delegation//
这个是我自己理解的
5:variable
到此大背景介绍完毕。

二、JBPM流程的一个基本的处理步骤
1
、加载(发布)流程定义
2
、启动流程
3
、处理任务
4
、记录流程的相关状态

1、加载(发布)流程定义
  
这个意思是,我们通过jbpmdesigner插件,或者是用其他工具,
  
制定出processDefinition(可以是String,可以是包文件,也可以是流数据等),
  
然后将其加载到应用中的过程。这个加载可以是写入内存中,或者是直接写入数据库等
2
、启动流程
  
processDefinition.createProcessInstance(),创建流程实例的过程。
  
具体创建实例的方法有多种,可根据自己的需要自行选择。
3
、处理任务
  
在流程流转的过程中,JBPM引擎会为我们生成任务的实例,我们就需要针对这些
  
任务实例来进行处理,然后结束这些任务实例,并推动流程的流转
4
、记录流程的相关状态
  
记录流程状态这点包括且不限于以下内容:

   1
)流程实例的开启
   2
)任务实例的创建
   3
)任务实例的开始执行
   4
)任务实例的结束
   5
)流程实例的结束
三、JBPM工作流的主要概念
    1
、流程定义(process definition):预先定义的业务逻辑
    2
、流程实例(process instance):业务的实际流转过程
    3
、参与者(actor):任务的参与者(可能是人也可能是角色或是组织等)
    4
、任务(task):业务逻辑上,会呈现给参与者处理的元素
    5
、任务实例(task instance):业务实际流转过程中,生成的需要参与者进行参与的实际内容
    6
、流转(transition):连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据
    7
、工作流引擎(engine):核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行
    8
、工作列表:根据实际应用的需求,需要展示给参与者的任务实例列表 //待办任务列表为其最具代表性的

 

你可能感兴趣的:(工作,workflow,jbpm,任务,工作流引擎,transition)