`

jbpm3 之 概念

阅读更多

http://1311321.blog.51cto.com/1301321/530676

 经过两周的时间,把工作流开源jbpm进行了学习,现在再回头理解一下工作流的概念,并结合网上的资源加深自己的理解,同时也将自己在jbpm学习过程记录下来。
一:工作流的概念理解:
相关概念:企业信息化进程的深入,普通的OA(办公自动化)系统无法满足,工作流(workflow)/BPM(business process management)业务流程管理因此而生,在ERP(enterprise resource planning)企业资源计划、CRM(customer relationship management)客户关系管理、EAI(Enterprise application integration)企业应用集成等领域,工作流技术都有涉及。
   主要特点是:过程的自动化。
   工作流的价值:提高运转效率、良好的流程控制、改进客户服务、使企业变得灵活、促进业务改进。
定义1:工作流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务。
定义2:(wfmc工作流管理联盟的定义)工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
综上:工作流的概念:为了提高企业自动化办公的效率,对于一个具体的业务过程按照定义好的规则传递信息,使业务的各个参与者可以专注于处理自己的业务,而由程序来完成业务流转,从而完成预期业务目标的计算机软件。
对于开发者来说,它就是一整套的代码,在这套代码中,
     a:每个活动节点都要开发交互界面和后台处理程序;
     b:每次活动的流转都需要硬性判断下一步活动节点及其处理人
     c:每次操作都需要维护业务数据和流程的相关数据;
     d:一旦业务流程变更,就需要大量地更改程序,甚至重新开发‘
     e:监视、控制、分析流程处理还需要单独开发,成本不低。
工作流的核心是工作流引擎,这里jbpm具有很大的优势,目前更新到版本5.0,发展速度很快。
 
二:jbpm3.2.3学习过程:
参考资料《深入浅出jbpm》,本书对工作流的层次不是很清晰、代码中有些许错误,但是由于国内关于工作流的资料很少,而且源于本书中的一些具体实例,总体来说还是一个好书。
首先介绍几个重要的概念:
    1:JbpmConfiguration:用来读取jbpm配置文件的对象。也提供了jbpm流程在运行过程中所需要的各种服务对象。
    2:JbpmContext:封装了大部分操作jbpm流程的方法。基本上每一个工作流程都需要JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext()这样一条语句来获得jbpmContext对象,它可以实现发布流程、穿件流程实例、加载流程实例、加载任务实例、加载代办任务等等功能。
注意一定要在程序最后将其关闭,jbpmContext.close();
    3:ProcessDefinition和ProcessInstance流程模板与流程实例,一个工作流程发布到数据库中就是一个流程模板,即一个xml文件。一个流程模板可以有多个流程实例,一个流程实例就是一个具体的应用,如报销流程张三和李四都采用了同一个模板,但是他们属于不同的实例。
    4:token(根令牌),在一个流程实例创建出来时,一个token也被创建了。token用来获取当前流程所在节点的位置,当token使用了token.signal()方法时,流程向下一个节点流转。
    5:ContextInstance流程上下文,在一个流程实例创建出来时,一个ContextInstance也被创建了。用来存储流程实例在运行过程中存储的流程变量,这里是一组键值对。
    6:JPDL表达式,beanshell脚本。融合java的简单语言。
     7:node节点和state节点,如果node节点没有对应的actino,流程执行到此不会停留,如果定义了actino,则执行完成后会停留在node节点上的,当外部发出token.signal()命令时,流程继续向下流转。state节点不管有没有acton都会停留。
    8:任务是流程与操作者交互的一种手段,是jbpm的核心。一般在tasknode定义任务,流程运转到taknode中,就会向对应的用户任务实例,直到任务实例的参与者将任务实例处理完成后,流程才能继续执行。
       任务实例(processInstance):一个任务可以产生一个任务实例,并指定一个参与者,任务实例就是要任务参与者处理的对象。它产生后存在jbpm_taskinstance表中。任务实例的生命周期:创建、开始处理、完成三个阶段,不管它的状态怎样,都会保留在原表中,只是会因为不同的状态而被不同的查询获取。
    当任务实例结束的时候,就会向流程实例发出向下流转的信号。
    任务分配:hander方式(必须实现AssignmentHander接口)、expression方式(不是JPDL)、swimlane方式处理一个流程中多个任务节点由同一个或角色来完成、pooled actors方式、actor方式。
    任务控制器task_controller:用来将流程上下文里的变量输出到客户端,一个是用来接收用户输入,并写到流程上下文中。
    任务调度处理的对象是job,对于每一个job可以设定它的触发时间、触发周期、触发后要执行的动作,当jbpm的任务调度服务开启之后,就会在服务端开启一个任务线程不断的检查存储job的jbpm_job表,一旦有符合条件的job就触发。
   过程: a:服务端需要启动一个线程来监视,不断来查找job表:
jbpmConfiguration.getJobExecutor().start().
          b:流程中设计一个timer,当流程实例运行到timer节点时,产生job,并在job表中可以看到一个timer信息,此时流程调用job执行。
          c:调用taskinstance.end()即结束这个任务,job表中对应的timer也被删除了,即它在任务结束的时候触发了timer的cancel-event事件。
分享到:
评论

相关推荐

    jbpm jbpm3 jbpm4 用户和开发指南+教程+最佳实践全套

    "JBPM3.1Help(中文).chm"可能包含了关于jbpm3的安装步骤、API使用、工作流设计等方面的中文帮助文档,这对于初学者了解jbpm3的基础操作和核心概念非常有帮助。 "jbpm开发指南.pdf"可能是对jbpm4或更高版本的开发者...

    jbpm3中文文档.rar

    - **概念与架构**:深入解释jbpm3的主要组件和它们之间的关系,帮助理解系统的工作原理。 - **流程建模**:详细讲解如何使用BPMN创建流程图,以及在jbpm3中导入和管理这些流程定义。 - **API与服务使用**:阐述如何...

    jbpm3基本资料和代码总结

    在本总结中,我们将深入探讨jbpm3的核心概念、功能以及如何进行实际开发。 ### 1. jbpm3核心概念 - **工作流引擎**: jbpm3的核心是工作流引擎,它负责执行流程定义(BPMN模型)并管理流程实例的生命周期。引擎通过...

    JBPM3学习笔记

    在本文中,我们将深入探讨JBPM3的核心概念、功能和使用方法,以帮助你更好地理解和应用这一强大的工具。 **一、JBPM3简介** JBPM3是JBPM系列的第三个主要版本,它在早期版本的基础上增加了许多新特性,如图形化的...

    jbpm3使用帮助,一本比较使用帮助

    1. **jbpm3简介**:了解jbpm3的基本概念,如工作流、任务管理和流程实例。jbpm3的核心功能包括流程定义、流程实例管理、任务分配以及流程监控。 2. **安装与配置**:学习如何在你的开发环境中安装jbpm3,配置数据库...

    jbpm4jbpm5

    3. **jbpm5用户手册**: jBPM5_用户手册-中文版为开发者提供了jbpm5的详细操作指南,包括新特性和改进。jbpm5相较于jbpm4有显著提升,例如支持bpmn2.0标准,提供了更强大的图形化建模工具,以及更完善的API和事件...

    jbpm3.rar_JBP_jbpm_jbpm3

    【jbpm3.rar_JBP_jbpm_jbpm3】是一个关于JBPM3的压缩包,其中包含了jbpm的相关文档,旨在帮助用户理解和使用这个工作流管理系统。JBPM(Java Business Process Management)是一个开源的工作流引擎,它允许开发者在...

    jbpm3 入门项目-环境搭建(1)

    首先,我们需要了解jbpm的核心概念。jbpm3是一个开源的工作流引擎,主要用于处理企业的业务流程自动化。它提供了流程定义、流程实例管理和监控等功能。jbpm3基于Java,支持J2EE标准,并且可以与各种应用程序服务器...

    JBPM3总结.docx

    JBPM3作为JBPM的早期版本,虽然现在已经更新到了JBPM5,但其核心概念和原理对于理解整个JBPM框架依然有重要的价值。下面我们将深入探讨JBPM3的关键知识点。 1. **JBPM简介**: - JBPM3是一个灵活且可扩展的框架,...

    jbpm3.rar_bpm_bpm jbpm_jbpm3_workflow_workflow process bpm

    在本文档中,我们将深入探讨jbpm3的核心概念、配置步骤以及工作流程的实施。 **工作流(Workflow)**是企业业务流程的抽象表示,它定义了任务如何在不同参与者之间传递,以及这些任务的顺序和条件。jbpm3提供了一个...

    jbpm中文指南(包括3和4的)

    1. **核心概念**:jbpm3引入了业务流程建模语言BPMN(Business Process Modeling Notation),让用户通过图形化方式设计流程。主要概念包括任务(Task)、事件(Event)、网关(Gateway)和泳道(Lane)等。 2. **...

    jbpm3教程

    教程提供的jbpm3.chm文件可能包含了jbpm3的详细文档,包括概念介绍、使用指南、API参考等内容,是学习和使用jbpm3的重要参考资料。建议开发者仔细阅读,深入理解jbpm3的工作原理和使用方法,以便在实际项目中更好地...

    【转载 见附件】纵观jBPM:从jBPM3到jBPM5以及Activiti5

    1. **jBPM3** - jBPM3是jBPM系列的早期版本,可能涵盖其核心概念,如工作流引擎、业务规则集成、持久化机制等。 2. **jBPM4和jBPM5的改进** - 可能会讨论这些版本引入的新特性,如基于JPA的持久化、增强的GUI工具、...

    jbpm源码阅读之一

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

    jbpm4之HelloWorld实例

    【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...

    JBPM工作原理及表结构详解

    JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了强大的业务流程建模、执行和监控能力。本文将深入探讨JBPM的工作...理解这些概念和操作,对于有效地设计、实施和维护业务流程至关重要。

    jbpm学习资料,jbpm教程

    通过jBPM-jPDL学习笔记,你可以系统地学习如何使用jPDL设计和实施业务流程,掌握jbpm的核心概念和技术。无论是对于开发人员还是业务分析师,这份资料都将极大地提升你在工作流管理领域的专业技能。

    jbpm

    最后,对于Struts2,你需要了解其拦截器、Action、结果类型等核心概念,以便在jbpm流程中正确调用和响应前端请求。 总的来说,jbpm是企业级流程管理的强大工具,与Struts2的整合可以为企业提供一个灵活且可扩展的...

    传智播客jbpm教程

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

    jbpm白皮书 介绍jbpm 入门

    3. **工具链**:jBPM 配备了一套完整的工具链,包括流程建模工具、调试器、监控和管理工具等。这些工具大大简化了流程的设计、测试和运维过程,提高了开发效率。 #### 四、jBPM 的优势 - **成本效益**:作为开源...

Global site tag (gtag.js) - Google Analytics