`
Fred_Han
  • 浏览: 144442 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JBPM工作流小结

 
阅读更多

关于JBPM工作流

 

1.        工作流

       工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。

l  实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。

l  参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;

l  流程定义是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;

l  工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制

      前三个要素是静态的,而第四个要素是动态的,它将前三者结合起来,是工作流的核心组成元素。

 

2.        JBPM

       jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。

n  jBPM的一个特色是采用了它自己定义的JBoss jBPM Process definition language (jPdl)jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。

n  jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过HibernatejBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。

 

JBPM工作流的应用分析

jbpm工作流步骤:

1加载(发布)流程定义

这个意思是,我们通过jbpmdesigner插件,或者是用其他工具,制定出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,可以将所有业务数据放到jBPMcontext中管理,不再维护业务数据表。但这样的结果是在流程之外的环境(比如在统计报表中)中无法容易的得到业务数据。所以一般会建立业务数据表,我不使用工作流时一样,然后让jBMP从业务数据表中得到业务数据,而不在jBPM中保留业务数据。因此,使用jBPM后,在业务数据方面基本不会减少工作

 

3、  工作流学习成本

工作流本身的概念较复杂,使用jbpm,需要学习其工作流的定义和结构,流程定义工具和语言、了解其数据结构。与其它工作流产品(如Shark)相比,jBPMJava开发人员来说学习较低成本,在做流程复杂的项目时,学习成本可以接受。

 

4、  系统用户和角色与工作流整合

流程的流转和任务的分派完成,都是用户在控制,所以需要将用户、角色和权限整合到jbpm工作流中。

 

5、  系统业务的整合和调整

将流程抽取后,原本连续的业务处理变成一个个的任务节点。需要在每个业务相关处理处添加工作流流程控制、在每个节点处实现相关的业务和流程切入点。

 

 

6、  适用范围

Jbpm工作流适用于:

n  项目流程比较多,流程复杂的项目。

n  系统运行和维护、升级时,流程可能需要修改、调整和跟踪、控制的项目。

转自:http://my.oschina.net/u/1012289/blog/137405

分享到:
评论

相关推荐

    jbpm工作流引擎总结文档

    jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。

    jBPM工作流引擎研究总结

    根据网上的资料我自己总结的一个比较全的关于jBPM工作流引擎的研究文档,希望对初学者有点帮助。

    jbpm工作流开发 java workfow

    jbpm 工作流开发 java j2ee 各种心得,布骤和总结

    JBPM工作流开发指南

    小结 33 四、流程中任务的分配 37 4.1 assignment-handler方式的任务分配 38 4.2 swimlane方式的任务分配 39 五、JBPM持久化 42 5.1 特殊数据库支持 42 5.2 JBPM数据库的安装 42 5.2 JBPM流程发布 45 5.2.1 搭建JBPM...

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

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

    工作流是一项分离业务操作和系统流程的技术

    jbpm工作流总结 工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。

    JBPM4运行时错误异常总结

    JBPM4运行时错误异常总结,本人在jbpm4学习中遇到过的最常见的异常,以后可能还会发布有关资源,如发现整理有误,请指教!

    JBPM4.3工作流基础知识学习

    JBPM4工作流基础知识学习,自己总结的,东西比较基础。 有代码和样例

    工作流引擎讲解 JBPM

    在学校的时候老师要我为大家讲解JBPM,所以我就下载了李腾辉的视频,总结出其中的重点,结合我上传的UML和代码一起学习,很快就能上手,这个学起来有点绕脑袋,要有耐心,祝你们学习进步! PS:希望大家不要把重点...

    JBPM学习资料

    jbpm工作流技术总结,学习jbpm的可以下载参考参考!

    JBPM4学习经验总结第1季

    JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,它使用要遵循 Apache ...

    JBPM笔记总结-1

    JBPM笔记总结,最最经典的,初学者的必看

    工作流概念及模型的研究(学士学位论文)

    4.实验设计:基于JBPM的工作流管理系统 38 4.1 JBPM的简单介绍 38 4.2 需求 39 4.2.1 总体需求 39 4.2.2 功能需求 40 4.3 设计与实现 44 4.3.1业务构架设计 44 4.3.2业务构架包的设计 45 4.3.3视图设计及配置文件 47...

    jbpm 很好的帮助文档

    自己总结的为您少走弯路准备的,初学者可以很好的上手

    Activiti6.0教程例子下载

    由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. ...

    《OSWorkflow开发指南》电子版

    陈刚先生在多年的实际工作中,对工作流技术有深入的研究,包括jBPM和OSWorkflow这样的开源产品,都曾经在实际项目中深度使用。他翻译的OSWorkflow官方文档中文版是为数不多的高质量中文OSWorkflow文档之一...

    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