`
jinguizi
  • 浏览: 7447 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

JBPM的一些基本概念

阅读更多
题记:某部门领导有天突发奇想,把我们几个人叫过去,曰:最近出去开会,老有人推销自己的工作流产品,说的这好那好,你们几个给我研究研究。正好刚做完的xxx子系统里有一个申请审批的流程,你们按这个需求,把系统改成jbpm工作流试试。一定要搞清楚,引入工作流能不能减少我们开发部门的工作量。

于是,4个啥也不懂的人,忙碌的两周(实际时间大概是一周不到,因为每个人都一直有其他项目的工作)开始了。

也许是我们几个的水平不行,最后写了这么一个报告,结论是一般都会增加工作量。







JBPM工作流小结



         经过两周的学习和讨论,我们了解了工作流的概念、并逐步分析和熟悉了jbpm工作流的特点和应用,现对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领域最好的一种数据持久层解决方案。通过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  系统运行和维护、升级时,流程可能需要修改、调整和跟踪、控制的项目。
分享到:
评论

相关推荐

    jbpm3基本资料和代码总结

    以上就是jbpm3的基本知识概览,涵盖了其核心概念、功能和API的使用。通过这些,开发者可以构建出强大的业务流程管理系统,实现企业的自动化业务流程。在实际应用中,还需要结合具体业务场景进行深入研究和实践。

    工作流基本概念及JBPM简介

    这种模型包括基本元素如任务及其相互关系。 工作流有别于传统的面向功能的管理技术,因为它面向业务过程,描述了可由计算机系统支持运行的流程。在实际应用中,广义的工作流涵盖了所有由软件系统控制的过程,常用于...

    jbpm一些资料

    让我们深入探讨一下 jPDL 中涉及的一些关键概念和元素。 首先,我们关注的是第一层级的 `GraphElement`,这是所有流程定义元素的基础。`GraphElement` 包含了如 `processDefine`(所属流程定义)、`events`(可接收...

    传智播客jbpm教程

    这套教程分为四个部分,旨在帮助初学者和有一定基础的学习者逐步掌握jbpm的核心概念、进阶技术和实际应用开发。 在【JBPM_(1)_Basics_new.ppt】中,你将学习到jbpm的基础知识,包括jbpm框架的概述、它在BPM领域中的...

    工作流基本概念及jbpm简介

    工作流的基本元素包括任务及其相互关系。它是一种面向业务流程的模型,区别于传统的面向功能的管理方式,更注重业务过程的自动化。工作流模型应明确四个关键要素:目的或目标、执行的任务和步骤、参与者以及完成任务...

    jbpm 下载链接资源

    在深入探讨JBPM及其下载资源之前,我们先来了解一下JBPM的基本概念以及它在工作流管理领域的地位。JBPM(JBoss Business Process Management)是Red Hat公司开发的一款开源业务流程管理(BPM)框架,主要应用于Java...

    jbpm中文教程-详细

    建议初学者首先阅读这份文档,理解jbpm的基本概念和操作,然后通过实际项目练习,掌握jbpm的实战应用。 总结,jbpm作为企业级的业务流程管理工具,其强大之处在于它提供的完整流程生命周期管理、灵活的流程定义和...

    JBPM案例详解(一)

    总之,【JBPM案例详解(一)】涵盖了JBPM的基本概念、流程设计、部署执行、监控和系统集成等多个方面,旨在通过一个具体的业务场景,使读者深入理解和应用JBPM这一强大的工作流管理工具。通过学习和实践,读者不仅能...

    jbpm3.2.2工作流入门例子

    通过深入研究这个jbpm3.2.2入门例子,你不仅可以了解jbpm的基本概念和使用方法,还能掌握如何在实际项目中应用工作流管理,提升你的企业级应用开发能力。这个例子为你提供了一个动手实践的平台,通过运行和修改代码...

    jbpm中文文档--英文文档

    1. **jbpm概述**:解释jbpm的基本概念,包括工作流引擎、流程定义语言(JPDL)以及它在企业应用中的角色。 2. **安装与配置**:详述如何在开发环境中安装jbpm,包括设置环境变量、导入依赖库和配置数据库连接等步骤...

    JBPM流程引擎资料

    首先,文档提到了jBPM的基本概念。jBPM是一个轻量级流程引擎,它允许开发者以模块化的方式管理业务流程。文档还涉及了许可证与最终用户许可协议,引导用户在合法合规的前提下使用jBPM。它提供了对jBPM4.4版本的下载...

    JBPM工作原理及表结构详解

    - **活动 (ACTIVITY)**:活动是流程图中的基本单元,可以是用户任务、服务任务、子流程等,表示工作流程中的具体步骤。 3. **所用到的表** - **资源库与运行时表结构**:用于存储流程定义、部署信息等。 - **...

    jbpm4.4学习教程

    1. 阅读基础理论:先了解jbpm4.4的基本概念、架构和核心组件。 2. 学习流程设计:掌握BPMN 2.0语言,学习如何在jbpm中创建和编辑流程模型。 3. 实践操作:通过示例代码和项目实践,熟悉jbpm的部署、运行和管理工作...

    jbpm源码阅读之一

    描述虽然为空,但我们可以推测博主可能在文章中讨论了如何通过源码理解jbpm的核心概念,如工作流引擎的工作原理,任务调度机制,以及如何实现业务规则的编排和执行。 标签 "源码" 和 "工具" 暗示了这篇文章会深入到...

    jbpm使用简单示例

    **jbpm简介** jbpm(Java Business ...总之,"jbpm使用简单示例"是一个很好的学习资源,通过它,开发者不仅可以了解jbpm的基本操作,还能掌握如何在实际项目中运用流程管理技术,提升业务系统的灵活性和可维护性。

    jbpm.rar_jbpm

    内容可能涵盖jBPM的基本概念、安装配置、流程设计、任务管理等方面。 5. **用JBossjBPM管理业务流程.pdf**:这份文档可能详细介绍了如何使用jBPM来管理和控制企业的业务流程。jBPM通过定义流程图,可以清晰地表达...

    jbpm项目实练

    首先,让我们深入理解jbpm的核心概念。jbpm支持业务流程建模与 notation (BPMN),这是一种国际标准的流程建模语言,通过图形化的方式表示复杂的业务流程。通过jbpm,你可以设计流程图,定义流程中的各个步骤、决策点...

    JBPM4.3完整示例

    JBPM4.3是该系统的早期版本,但仍然包含了丰富的功能和完整的示例,适用于学习和理解工作流管理的基本概念和操作。 在"JBPM4.3完整示例"中,我们可以深入探索以下几个关键知识点: 1. **流程定义(Process ...

Global site tag (gtag.js) - Google Analytics