`
zhayong
  • 浏览: 3889 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【转】JBPM工作流小结

阅读更多
关于JBPM工作流
1.        工作流
       工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。
实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。
参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;
I 流程定义是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;
工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制
      前三个要素是静态的,而第四个要素是动态的,它将前三者结合起来,是工作流的核心组成元素。


2.        JBPM

       jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。
I  jBPM的一个特色是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。
I  jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。


JBPM工作流的应用分析jbpm工作流步骤:
1、加载(发布)流程定义
这个意思是,我们通过jbpm的designer插件,或者是用其他工具,制定出processDefinition

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


使用jBPM的优势将业务流程复杂的系统结构清晰话,提供系统运行时的灵活性
1、  解耦系统业务流程
流程独立,可以使用工具定义和建模,利于跟踪、监控、管理、调度、优化和重整
2、  提高系统的灵活性
系统流程定义生产环境的修改和调整,用户和外部工具交互,任务的动态分派


使用jBPM时的问题
1、  对当前任务的条件查询
jBPM不提供灵活进行条件查询的api,如果需要,可以自定义hibernate查询,从jbpm相应的数据表中查询任务数据。但需要对jBPM机制比较了解,而且有些复杂条件难以用jBPM本身的信息查到。
2、  当前任务的分页
在上一问题的基础上,使用hibernate分页。
3、  统计各个流程实例的状态
可以通过流程实例,在jbpm系统表中查询,也可以在业务表的相应数据上加上状态列来统计。前一个比较麻烦,后一个比较直观,但不会因使用jBMP而使用工作量减少。
4、  工作流数据与业务数据结合
一般通过在流程实例中添加相应的一笔数据的标识作为变量来关联。也可以有针对性的扩展jbpm的系统表来实现与业务的关联性。
5、  修改流程后的历史数据兼容性问题
Jbpm工作流流程定义有版本的概念,修改流程后要重新发布,与旧的流程不是一个同一个版本。系统可以区别开新旧流程来。

结论
1、  工作量
初步的结论是:引入工作流技术不会明显减少系统开发工作量。相反,在一般情况下,会增加一部分工作量。
如果项目流程比较少,而且比较固定,则使用工作流技术会明显增加开发工作量。
如果项目流程多,而且比较复杂,则使用工作流技术会使项目结构层次更加清晰、更具有扩展性,根据需求有可能要修改和扩展现有开源工作流类库与数据库结构,也会增加额外的工作量。但权衡之下,利大于弊。
2、  关于业务数据与jBPM本身的数据
理论上说,如果使用jBPM,可以将所有业务数据放到jBPM的context中管理,不再维护业务数据表。但这样的结果是在流程之外的环境(比如在统计报表中)中无法容易的得到业务数据。所以一般会建立业务数据表,我不使用工作流时一样,然后让jBMP从业务数据表中得到业务数据,而不在jBPM中保留业务数据。因此,使用jBPM后,在业务数据方面基本不会减少工作
3、  工作流学习成本
工作流本身的概念较复杂,使用jbpm,需要学习其工作流的定义和结构,流程定义工具和语言、了解其数据结构。与其它工作流产品(如Shark)相比,jBPM对Java开发人员来说学习较低成本,在做流程复杂的项目时,学习成本可以接受。
4、  系统用户和角色与工作流整合
流程的流转和任务的分派完成,都是用户在控制,所以需要将用户、角色和权限整合到jbpm工作流中。
5、  系统业务的整合和调整
将流程抽取后,原本连续的业务处理变成一个个的任务节点。需要在每个业务相关处理处添加工作流流程控制、在每个节点处实现相关的业务和流程切入点。
6、  适用范围
Jbpm工作流适用于:
n  项目流程比较多,流程复杂的项目。
n  系统运行和维护、升级时,流程可能需要修改、调整和跟踪、控制的项目。


工作流使用示例
----------  xxxxx -----------此处省略了一些
分享到:
评论

相关推荐

    JBPM4使用小结.doc

    JBPM4 使用小结 JBPM4 是 JBoss 开发的 Java 工作流引擎,它提供了可视化的流程设计界面和基于 Hibernate 的持久层框架。下面是对 JBPM4 的主要 API 介绍和使用。 ProcessEngine ProcessEngine 是 JBPM4 的流程...

    JBPM4工作流应用开始指南.rar

    第一篇 jBPM工作流开发基础 1 第1章 工作流基础 2 1.1 工作流概念 2 1.1.1 工作流管理思想之于企业现代化管理 2 1.1.2 工作流技术在企业中的应用 5 1.1.3 如何从一个开发者的角度看工作流技术 6 1.2 工作流管理系统...

    JBPM、OSWORKFLOW分析报告

    **JBPM小结** JBPM凭借其强大的功能和标准支持,成为大型企业构建复杂工作流解决方案的理想选择。 **OSWORKFLOW** **OSWORKFLOW简介** OSWorkflow是另一个开源的工作流引擎,虽然不像JBPM那样全面,但其简单易用性...

    工作流引擎-选型 (各工作流对比)

    ### 工作流引擎选型分析 随着企业信息化建设的深入发展,工作流技术作为连接企业内部业务系统的重要桥梁,在提升工作效率、优化管理流程等方面发挥着不可替代的作用。选择合适的工作流引擎对于企业来说至关重要。...

    jbpm安装手册mysql版

    **小结:** 通过以上步骤,我们可以成功地在CentOS 7系统上安装配置MySQL,并进一步完成了JBPM的基本配置。这些步骤确保了JBPM能够与MySQL数据库有效地集成,从而支持更加复杂和高效的工作流管理任务。

    MyEclipse-8.5-之Drools插件安装小结.docx

    - **jBPM**:提供工作流和服务编排功能。 - **Drools Fusion**:专注于事件处理和时序推理,适用于实时决策。 - **Drools Planner**:用于自动化规划,帮助解决复杂的优化问题。 2. **Drools插件安装步骤** - ...

    Spring攻略(第二版 中文高清版).part2

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

    Spring攻略(第二版 中文高清版).part1

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

Global site tag (gtag.js) - Google Analytics