1 .JBPM 的版本:3.1.4
2 .JBPM 的流程建模
流程建模采用的是改良的UML 活动图,一是在用UML 活动图表述业务流程时,只建模状态层( 状态和控制流) ,不包括动作(UML 活动图没有区分状态和动作,它们都用活动来表示) ;二是如果多个迁移到达一个状态,缺省定义为不需要同步的合并(UML 活动图中默认是需要同步的联合) 。JBPM 定义了自己的流程定义语言JPDL ,用它来精确描述UML 活动图的每一个部分,采用的是XML 格式的。
JBPM 的流程建模结合应用了状态图,活动图和PetriNet 的知识,这里的活动图是UML2.0 版的。JBPM 使用的状态图的概念有ransition/event
等; JBPM 的内部实现中还采用了PetriNet 的概念,如token,signal 等。
活动图没有区分状态和动作,在JBPM 中动作(actions) 就是一段程序逻辑,也就是工作流模型中的应用服务 。在JBPM 中,状态(state)
这一术语与有限自动机(FSM) 或者UML 状态图中的state 具有相同的意义。状态是jBPM 的一个核心概念,也是业务流程的基本元素,状态代表了一种对外部参与者的依赖。定义状态时需要指定该状态的执行者,也就是该状态依赖的外部参与者。多个状态可能依赖同一个参与者,工作流管理系统根据这些信息构建该参与者的任务列表。
当开始在jBPM 中进行流程建模时,首先需要考虑业务流程的状态,状态将会成为你定义的流程的基本框架。
控制流包含一组状态和它们之间的关系。状态之间的逻辑关系描述了哪些执行路径可以同时执行,那些不可以。
(forks)和联合(joins)
建模来表示流程中的分支路径,用判断(decisions) 来选择流程怎么样流向下一个节点。
JBPM 的流程版本控制机制
一般情况下,流程定义不应该改变,因为预测流程变化带来的梭鱼可能的影响是非常困难的。JBPM
有一个明智的流程版本机制,版本机制允许在数据库中多个同名的流程定义共存,流程实例以当时最新的版本来启动,并且在它的整个生命周期中将保持以相同的流程定义执行。
JBPM
的版本控制机制可归结为以下几条原则:
当一个流程存档被部署时,将在 jBPM 数据库中创建一个新的流程定义。
当一个被命名的流程定义被部署,部署器将分配一个版本号。为了分配版本号,部署器将查询同名流程定义的最高版本号,
并且在其上加 1 .
当一个新的版本被部署,新的流程实例以新版本启动,而老的流程实例则以老的流程定义继续执行,直到它结束为止。
JBPM 甚至能够对与一个流程相关的程序逻辑进行版本控制,通过在流程存档中包括 java 类, JBPM 能够将每个流程定义的类分离。
JPDL 具体分析
为了把复杂的企业经营过程定义成工作流引擎可以理解的形式化信息及工作流管理系统可以管理的工作流 , 需要建立计算机化的工作流模型。为了全面描述经营过程 , 工作流模型通常又包含三个子模型 , 分别是过程模型 , 资源模型和组织模型。
过程模型描述经营过程中的活动以及活动之间的关系 ,
资源模型描述活动所需要的软硬件资源 ,
而组织模型描述活动的执行实体。
过程模型是工作流模型的核心 , 比较常见的过程建模方法有 Petri 网、活动图、状态图等。
JBPM的流程建模, 具体的在JBPM 中,一个业务流程是用xml 文件的形式表现出来的,其包含的元素如下:
process-definition,有一个流程定义名称,其流程内容主要由下面七个部分组成:
1 ,swimlane ,泳道,它们被用于任务分配 ,一个泳道可以被视为一个参与者在这一流程中的角色名称。
2 ,start-state ,流程的起始状态,所有的流程实例都是从这个状态开始的,没有起始状态的流程是合法的,但不能被执行;
3 ,node-elements ,包含一系统流程定义的节点,这些节点类型包括
end-state|state|node|task-node|process-state|super-state|fork|join|decision
没有流程定义的流程是合法的,但不能被执行;
4 ,action-elements ,全局定义的动作,可以在事件和转换中引用,为了被引用,这些动作必须被指定名称;包括 action|script|create-timer|cancel-timer
5 ,event ,事件,服务于动作的流程事件;
6 ,task ,全局定义的任务,可以在动作中使用;
7 ,exception-handler ,一个异常处理器列表,用于这个流程定义中的委托类所抛出的所有异常。
在JPDL 包含的这些元素中,node-elements
中定义的为一系统的包含各种类型的 node-elements ,这些 node-elements 描述了整个流程包含的各个状态,以及状态之间的转换。即相当于流程的过程模型。
而在这些 node-elements 的状态转换时,可以调用相应的action-elements
node-elements 也有支持的event 类型,所以能够调用相应的event ,在event 中,也可以调用相应的action-elements
。而action 是指实现用户指定的行为,通过实现org.jbpm.graph.def.ActionHandler
接口来实现。所以可以在流程中,得到用户的或者其他应用程序的资源。
当 node-element 为task-node 时,即流程包含的任务,可以为这些任务指定任务的执行者,通过swimlane
属性直接指定或者通过assignment来实现一个委托,即实现一个org.jbpm.taskmgmt.def.AssignmentHandler
接口来分派任务执行者。
参考《 JBPM3.1 用户指南》
分享到:
相关推荐
eclipse3.4解压版带jbpm流程定义插件,很简单,只需解压即可使用
jbmp入门教程,jBPM流程定义语言,业务日历,流程建模
jBPM 视频教程 管理流程定义 jBPM 视频教程 管理流程定义
本篇还可以帮助读者快速上手jBPM4、使用jBPM4开发企业流程应用,包括安装和配置jBPM4、使用jBPM图形化流程设计器(GPD)设计流程、把流程部署到服务器上去、使用jBPM 4 Service API控制流程、掌握jBPM流程定义语言、...
JBPM创建数据库,流程定义以及发布学习笔记
jbpm 基本使用方法,附带sqlserver数据库,附加数据库后可直接运行
jbpm4 jbpl流程定义语言,详细介绍了jbpl语言的各种定义
JBPM4 PVM的流程定义模型与过程调度
JBPM工作流实战_流程定义文件的上传处理视频
jBPM教学视屏(02管理流程定义)。。。。。。。。。
jBPM 4视频教程02管理流程定义,如何定义流程
jbpm流程控制初学者容易接触的domo package com.sxdx.jbpm; import java.io.FileInputStream; import java.io.InputStream; import java.util.zip.ZipInputStream; import org.jbpm.JbpmConfiguration; import org...
持久执行模式是指流程定义、 流程执行以及流程历史都保存在关系数据库中, 这是jBPM实际通常使用的方式。 这个用户指南介绍了jBPM中支持的使用方式。 开发指南介绍了更多的、高级的、定制的、 没有被支持的选项。
1.10 JBPM_MODULEDEFINITION:流程模块定义表 8 1.11JBPM_EXCEPTIONHANDLER:流程异常处理器表 8 1.12 JBPM_DECISIONCONDITION:DECISION节点判断条件表 9 1.13 JBPM_ SWINLANE:DECISION节点判断条件表 10 2 流程...
jbpm学习笔记:安装插件、配置环境、发布流程定义、查看流程定义
1.10 JBPM_MODULEDEFINITION:流程模块定义表 8 1.11JBPM_EXCEPTIONHANDLER:流程异常处理器表 8 1.12 JBPM_DECISIONCONDITION:DECISION节点判断条件表 9 1.13 JBPM_ SWINLANE:DECISION节点判断条件表 10 2 ...
flex 开发的可视化流程工具, 最终生成XML文件可与各种后台结合, 生成的xml格式合乎jbpm流程定义规范 不是为了分我才不会拿出来
3.3.1 process-definition(流程定义) 12 3.3.2 node(自动节点) 13 3.3.3 start-state(开始状态) 13 3.3.4 end-state(结束节点) 14 3.3.5 state(状态) 14 3.3.6 task-node (任务节点) 15 3.3.7 fork(分支) 16 3.3.8 ...
jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC′s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是...
第一章:介绍 第二章 开始 第三章. 讲座 第四章....第五章 发布 第六章 永久化 第七章....第八章 上下文 ...第12章....第13章. jBPM 流程定义语言 (JPDL) 第14章 安全 第15章. TDD适合工作流 第16章 可插入架构