`

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事件。
分享到:
评论

相关推荐

    jbpm3.2表说明

    JBPM_MODULEDEFINITION JBPM_MODULEDEFINITION FK_MODDEF_PROCDEF PROCESSDEFINITION_ 一个流程可能处在很多的模块(模块概念不理解) JBPM_DELEGATION JBPM_DELEGATION FK_DELEGATION_PRCD PROCESSDEFINITION_ 一...

    JBPM工作流详解

    详细讲解了JBPM工作流的概念以及使用,可以让大家更加轻松把jbpm工作流应用到自己的项目中。

    jbpm3.rar_bpm_bpm jbpm_jbpm3_workflow_workflow process bpm

    Workflow and BPM 实践,本文详细的说明了jbpm工作流的概念,配置及工作流程和在开发的过程中应注意的问题

    jbpm工作流管理系统

    介绍JBPM的基本流程概念、实例执行的概念及使用JBPM的区别

    工作流基本概念及JBPM简介

    工作流引擎的简单介绍,对于概念和基本架构讲述的比较清楚,需要了解工作流的可以看。

    JBPM7基础开发

    简单描述流程引擎相关概念和以jbpm7为基础的开发方式和实现方式做简单的说明

    jbpm安装及使用方法

    jbpm中最重要的概念,应该是令牌(Token)和信令(Signal)。在整个流程实例运行过程中,我们可以迅速的利用token得到其当前的current state。在解决“并行”等(比如Fork)问题时,jBpm让Token对象维护了父子关系,这种...

    jbpm架构简介 概念 详细介 绍了jPDL语言的相关知识

    jPDL的 概念 详细介 绍了jPDL语言的相关知识点 希望对大 家有帮助。

    工作流基本概念及jbpm简介

    工作流基本概念及jbpm简介PPT,这是公司内部培训PPT,是初学入门的好课件,推荐给大家。

    工作流基本概念及JBPM简介.ppt

    工作流基本概念及JBPM简介

    JBPM4.4课程文档

    全面介绍了JBPM的相关概念、api及其用法...

    JBPM4.4教程

    JBPM4.4教程,内含jbpm表结构的搭建,流程的基本流转过程,以及重要概念的详细讲解

    工作流基本概念及jBPM简介

    工作流基本概念简介 工作流系统功能特性描述 开源工作流引擎jBpm的介绍

    jBPM4.1中文用户手册

    建议读者先自行上网了解jbpm的基本概念以及流程的定义等基础知识,在理解了jbpm的基础之上学习这份文档会有更大的收获!

    jbpm4 helloworld

    jbpm4 helloworld,详细参考 《partner4java 讲述jBPM4》之第一步:jBPM4概念 & helloworld http://blog.csdn.net/partner4java

    jbpm4.4学习笔记

    3 Jbpm4.4介绍 7 3.1工作流引擎 8 3.2jpdl 8 3.3数据库 8 3.3.1资源库和运行时表结构 8 3.3.2历史数据库表 9 3.3.3身份认证表 9 3.4jbpm.cfg.xml 9 3.5 jbpm.hibernate.cfg.xml 10 3.6logging.properties 10 4 准备...

    4流实战_工作流中的概念与JBPM相关API调用

    4流实战_工作流中的概念与JBPM相关API调用.rar

    jbpm的实现流程图.doc

    一、流程定义的基本概念: 二、流程执行的基本概念: 三、流程引擎核心调度过程 ----------------------- jbpm的实现流程图全文共3页,当前为第1页。 jbpm的实现流程图全文共3页,当前为第2页。 ࠀ࠘ࠚࠜࣾऀंऄआ...

    jbpm工作流.ppt

    工作流基本概念及jBpm简介 适用于刚接触工作流、jbpm

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

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

Global site tag (gtag.js) - Google Analytics