首先提一下目前工作流域的两种主流方向
1、workflow
代表osworkflow等。
workflow的特点为:其主要侧重于对流程的处理模型方面,也就是说它关注的重心是流程的处理
2、BPM-商业逻辑流程模型
BPM的重心为商业逻辑流程模型的处理,其中以jBPM为代表
二、JBPM工作流的主要概念
1、流程定义(process definition):预先定义的业务逻辑
2、流程实例(process instance):业务的实际流转过程
3、参与者(actor):任务的参与者(可能是人也可能是角色或是组织等)
4、任务(task):业务逻辑上会呈现给参与者处理的元素
5、任务实例(task instance):业务实际流转过程中,生成的需要参与者进行参与 的实际 内容
6、流转(transition):连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据
7、工作流引擎(engine):核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行 8、工作列表:根据实际应用的需求,需要展示给参与者的任务实例列表
JBPM流程的一个基本的处理步骤
1、加载(发布/部署)流程定义
即通过jbpm的designer插件,或者是用其他工具,制定出processDefinition(可以是String,可以是包文件,也可以是流数据等),然后将其加载(发布/部署)到应用中的过程。这个加载可以是写入内存中,或者是直接写入数据库等。
2、启动流程
即processDefinition.createProcessInstance(),创建流程实例的过程。具体创建实例的方法有多种,可根据自己的需要自行选择。
3、处理任务
在流程流转的过程中,jBPM引擎会为我们生成任务的实例,我们就需要针对这些任务实例来进行处理,然后结束这些任务实例,并推动流程的流转。
4、记录流程的相关状态
记录流程状态这点包括且不限于以下内容:
1)流程实例的开启
2)任务实例的创建
3)任务实例的开始执行
4)任务实例的结束
5)流程实例的结束
如何将工作流应用于项目
1、工作流与权限系统以及组织机构的集成
工作流管理系统以待办/已办/查看任务列表的形式把任务呈现给具有相应工作流操作权限的参与者,这里
要求系统用户权限与这里所指参与者的权限的一致性。(流程环节需要相应的绑定不同的执行角色(用户
),流程操作通常需要与权限系统、组织机构进行关联。)
2、系统中业务逻辑与流程中任务结点的整合(挂接)
3、jBPM事务管理与业务层事务管理的整合
这里涉及到组件版本问题。目前我们是在JBPM3.2.3基础上研究和开发,而JBPM3.2.3 需要有
Hibernate3.2.3的支持 。在我们的SSH框架中采用Hibernate2,这使得不能实现jBPM流程信息的事务操作
和系统中具体业务逻辑事务操作的整合,只能是分开来处理。这样可能就存在风险。如果对事务管理要求
不高,这样做也是可行的;否则要求在SSH框架中采用Hibernate3.2.3以上版本实现两者的完全整合。