`
DynamicMan
  • 浏览: 25482 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jbpm3概览

阅读更多

前段时间选用JBPM来做为未来项目的工作流引擎,JBPM的版本目前主要是3,4,5,因为4在很多时候有BUG,并且

官方的的documentation也是不推荐的,所以没有去看4的一些相关信息,版本5中的内容比较新,融入的东西也比较多,特别是对BPMN标准的支持,但是因为内容过多,学习的曲线度也比较大,所以从tom研发的JBPM3着手,3,4,5的三个版本几乎是完全不一样的,不可能完全的掌握,只需要理解一种工作流引擎,找到一些核心的东西进行学习,其他的相关引擎都可以触类旁通,因为他们都是程序,具有共性。

JBPM是基于UML的活动图来进行流程的设计定义的,JBPM工作流引擎的核心有2个方面,第一个是定义流程,第二

个则是解释流程,在我们使用JBPM的时候,主要也就是干的这2方面的工作,我们用设计器来定义流程,拖拽出相应的流程图,然后在业务系统当中调用JBPM的API执行在配置文件上的流程,从而实现业务流程的流转。

一、定义流程,jbpm3定义流程采用的是JPDL,之前也说过,每一种工作流引擎都有自己的一套定义流程的规则,这

些规则其实就是定义流程的语言,JBPM是基于UML的活动图,采用JPDL来定义和设计流程的。

common_activity

 

图示表示这是一个很简单的UML活动图,无论是怎么去构建一个活动图,都可以看到,其实活动图里面具有2个非常基本的元素,也就是JBPM的流程定义当中也具有2个很基本的元素。第一个是节点,第二个是线,所有的活动图都是由这2个基本元素来构成的,无论活动图是简单还是复杂,都离不开这2种基本的元素。JBPM里面依然是这样,因此我们把这两个基本元素定义为,1、node,2、transition,node就是节点,transition就是线,JBPM的流程的定义都是由这2个元素构成的。

1、transition,不同的节点之间通过transition来进行联系,一般来说transition分为两种类型,一种是leaving transitio

-ns,另外一种是arriving transitions,即离开的线和到达的线,从图示可以看出,一个节点既有离开的线,而且也会有到达的线,并且一个节点可能会有多条离开的线,也可能会有多条到达的线。

2、node,节点有很多种类型,主要的类型包括,start state,end state,decision,fork,join,state,task node,

每个节点有每个节点不同的含义和不同的行为,通过这些node和transition,我们可以构造出很复杂的业务流程。start state是开始节点,end state是结束几点,开始节点只能在一个流程定义中出现一次,结束节点不能有leaving transitions。state是等待节点,当流程流转到state这种节点的时候,会停顿住,只有靠外面的力量叫他流转,才会流转到下一步。decision是条件节点,意思是该节点会定义一些条件表达式,会根据流转的信息进行表达式计算获得结果,通过结果进行判断到底是流转到哪一个环节。fork和join一般来说是成对出现的,在uml中如果出现在同一个时间把一件事情分给几个人同时完成,需要有同步杆的参与,在业务系统中一般表现为会签,多个人同时审批一个文件,相同的,在JBPM上其实也是用了同步杆,只不过名字换掉了而已,在进行分发之前的同步杆成为fork,最后任务完成聚拢之后的同步杆成为join,最重要的一个节点类型称为task node,任务节点,这个节点是完成我们的业务的节点,在这个节点当中,一个或者多个参与者共同完成一个或者多个任务,这些任务其实就是我们的业务,在我们大多数编写系统的时候,都是针对于这个task node定义的。

 

二、执行流程,意思就是利用JBPM的API来解释定义的流程,从而实现业务流程的流转。在流程执行的过程当中要明

白一些相关的术语,之前通过设计器进行设计的流程定义,我们称之为ProcessDefinition,比如一个请假流程,一个报销流程,一个某种类型的签字流程,每一种类型都是一个ProcessDefinition的对象,在业务流程流转当中,首先会根据ProcessDefinition来构造出一个叫做ProcessInstance的东西,这个东西叫做流程实例,是什么意思呢?你可以把他看成是JBPM的一个抽象事物,他的含义是依照某种规则进行流转的具体信息,从含义上比较模糊,例如,可以把某个具体的报销单,例如李磊的报销单,韩梅梅的报销单等看做成一个ProcessInstance,从一种更好理解的角度来看,在JBPM外部它是我们业务系统的一个具体的领域对象(类)的实例,在JBPM内部则可以看成是一个流程实例,即ProcessInstance,他们之间是一一对应的,当创建一个相应的领域对象的时候,也要创建一个相应的ProcessInstance与之绑定,我们如果要使得一个业务流程发生流转,其实质就是让ProcessInstance发生流转。另外一个概念叫Token,Token是令牌的意思,在JBPM3中核心调度算法由FSM和PetriNet组成,FSM是维护状态,PetriNet里面的重要核心就是Token,Token是指向当前流转环节的一个对象,他是当前环节的一个指向,一个引用,JBPM通过它来获取到当前的ProcessInstance到底流转到哪一个环节的,当创建一个ProcessInstance的时候,JBPM会自动的创建一个RootToken与之一一对应,一旦流程发生流转,RootToken的指向也会发生改变,之前说到了会签的功能,fork,join会在同一时间把一个任务同时分给几个人共同完成,当在这个时候的时候,RootToken会自行拆解成很多份小的Token,每一个Token指向一个任务节点,所有的任务节点都已经完成流转到了join的时候,小的Token又会合并成RootToken并指向join的下一个节点。这里有一个很关键和核心的东西,就是流程的流转其实质其实就是关系的维护,这句话需要多多体味。

在执行流程的时候,RootToken并不是自己把所有的事情都做完了,并不是看到流程流转了,自己把自已的引用指向

下一个环节,在执行过程当中会经过很多个JBPM的内部对象,并且利用专家模式,按照面向对象的原则,分离开了职责,使得JBPM本身的框架可读性,灵活性都非常的强。先看一下JBPM的流程流转原理:

JBPM process

由图示可以看出JBPM的流转过程,对于调用者而言,非常的简单,只需要调用signal方法就可以发生流转(这只是其中的流转的一种情况),之后将会把责任分散到Token,node,Transition上面,由这些对象共同来完成一个业务流程的流转工作,具体的步骤就不一一介绍,之后的API调用也可以查阅一些相关资料,只要理解到了JBPM的核心概念,使用起来是非常简单的,JBPM还有很多很多的内容,比如task,taskInstance等等,这些东西在使用JBPM的时候可以慢慢去熟悉,理解概念,懂得原理,才能驾驭任何的开源产品。

分享到:
评论

相关推荐

    jbpm3基本资料和代码总结

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

    jbpm实战讲解.pdf

    #### 一、JBPM概览与重要性 JBPM,全称为Java Business Process Management,是JBoss旗下的一款强大的工作流和业务流程管理框架。它旨在帮助企业通过自动化业务流程,提高效率和灵活性。JBPM不仅支持传统的工作流...

    jBPM教学视频(09流程图跟踪.zip)

    **jBPM 教程概览** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于构建和执行业务流程。本套教学视频重点聚焦于流程图跟踪,旨在帮助学习者深入理解如何在jBPM中监控和管理流程实例的...

    jbpm选择理由及其优势

    #### jBPM概览与核心优势 jBPM,作为一款开源的、纯Java的、轻量级的工作流引擎,为商业流程管理(BPM)领域带来了革命性的解决方案。它不仅能够在任何JavaEE应用服务器或简单的JDBC配置的JVM中运行,还支持多种可...

    JBPM5.3开发指南

    ### JBPM5.3开发指南知识点详解 #### 一、概述 JBPM是Java Business Process Management的缩写,是一款开源的工作流引擎。本教程旨在帮助开发者快速掌握JBPM5.3的基本使用方法,包括下载安装、环境搭建以及通过具体...

    JBPM5用户指南

    1.2 **概览** jBPM5的核心特性包括: - **流程建模**:支持基于BPMN 2.0标准的流程定义,使得流程模型具有广泛的可读性和可维护性。 - **执行引擎**:高效地执行流程实例,包括并发控制、异常处理和变量管理。 - **...

    jbpm开发指南

    该系统组件的概览显示了其组件间的相互作用和集成。 1.2 jBPM入门套件 入门套件提供了一个完整的开发环境,包括预配置的Jboss应用服务器、图形化流程设计工具(eclipse插件)、数据库兼容包、核心jBPM组件以及BPEL...

    jbpm4.4用户手册

    #### 一、jBPM 4.4 概览 jBPM 4.4 是一款基于Java的开源工作流管理引擎,专为需要高度可扩展性和灵活性的业务流程设计。作为JBoss项目的一部分,jBPM 4.4在LGPL(GNU Lesser General Public License)和JBoss End ...

    JBPM5入门学习.doc

    - **文档更新**: 对文档进行了全面的重构和更新,增加了概览和起步等内容。 #### 二、入门指南 **2.1 下载** 首先需要从官方网站下载JBPM5的相关资源,包括核心库、设计器和其他工具。 **2.2 资源** 了解可用的...

    jbpm3.1

    - **jBPM 3** - **The Starters Kit**:包含了 jBPM 的基础版本及其所需的依赖项。 - **Core Engine and Identity Component**:核心引擎和身份组件的独立版本,适合需要定制化开发的场景。 - **Database ...

    JBPM5权威指南

    1.2 概览 2 1.3 核心引擎 3 1.4 Eclipse编辑器 4 1.5 基于Web的设计器 5 1.6 jBPM控制台 5 1.7 文档结构 6 第二章 获得开始 7 2.1 下载 7 2.2 获得开始 7 2.3 社区 8 2.4 资源 8 2.41许可证 8 2.42 源代码 9 2.4.3 ...

    jbpm6.0 入门(很有权威)

    ### jBPM 6.0 入门指南 #### 一、概述 ##### 1.1 什么是 jBPM? jBPM (JBoss Business Process Management) 是一个灵活且易于使用的业务流程管理(Business Process Management, BPM)框架,用于帮助开发者和业务...

    jBPM4.1中文开发指南

    #### 开发指南概览 **1. 环境搭建** - **开发工具**:推荐使用Eclipse或IntelliJ IDEA进行开发。 - **构建工具**:Maven是最常用的构建工具,它可以帮助开发者自动化项目的构建过程。 - **依赖库**:确保项目中...

    Jbpm4提一个web项目

    在web项目中,可以构建一个模块,展示流程实例的概览、当前状态、参与者、历史记录等。这需要对接JBPM4的查询服务,获取并展示相关的流程实例数据。 【删除流程】 删除流程意味着从系统中卸载不再需要的流程定义。...

    jBPM5 Developer Guide

    ### jBPM框架概览 jBPM是JBoss企业级中间件的一部分,它提供了一套完整的业务流程管理解决方案。该框架基于工作流概念,允许开发者设计、实现和执行复杂的业务流程。jBPM支持多种工作流模型,包括基于状态机的流程...

    jbpm4.4中文手册

    ### jBPM4.4概览 jBPM4.4是一个基于Java的业务流程管理系统,它提供了一套完整的工具链,支持业务流程的设计、执行和监控。这个版本在jBPM3的基础上进行了大量的改进和优化,引入了更多的功能和更好的性能。 ### ...

    jBPM4用户指南 参考手册

    ### jBPM4概览 jBPM4提供了一系列工具和服务,帮助组织自动化其业务流程。它支持多种业务流程建模语言,如BPMN和BPEL,使开发人员能够构建复杂的工作流和业务逻辑。此外,jBPM4还提供了图形化的流程设计工具,使得...

    jboss --JBPM介绍及应用

    概述视图提供了一个高层次的概览,帮助用户快速了解整个流程的大致情况。 ##### 4.3 The Properties View 属性视图显示了当前选中元素的具体属性,便于用户进行修改和配置。 ##### 4.4 The jBPM Graphical ...

Global site tag (gtag.js) - Google Analytics