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流程定义插件"中,用户无需安装,仅需解压即可开始使用,这极大地简化了部署过程。这意味着Eclipse 3.4已经被配置好,集成了jbpm的相关库和插件,用户可以直接打开Eclipse进行...
一、jBPM流程定义语言 jBPM采用的是BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的流程建模语言。BPMN提供了一套符号和图形,使得业务人员和技术人员可以共同理解流程模型。在jBPM中,你...
JPDL(Java Process Definition Language)是jbpm流程定义语言,用于定义jbpm流程。学习JPDL是jbpm流程开发的基础,旨在帮助读者掌握jbpm流程定义的基本概念和语法。 流程版本(Version) jbpm流程版本(Version)...
"JBPM工作流实战_流程定义文件的上传处理视频 03"这一主题主要关注如何在实际操作中处理JBPM流程定义文件的上传,这在构建业务流程自动化系统时是非常关键的步骤。 首先,流程定义文件是JBPM工作流的核心组成部分,...
通过jbpm Designer,你可以拖放元素来构建流程,并且可以保存为XML格式的jbpm流程定义文件(.bpmn20.xml)。 3. **源码集成**: 标签提到“源码”,意味着我们将讨论jbpm如何与Java应用源码结合。jbpm的核心库可以...
jbpm流程引擎内核的结构可以分为三个部分:流程定义、流程实例和执行引擎。流程定义是指流程的模型和结构,它定义了流程的执行顺序和逻辑。流程实例是指流程的具体实例,它是流程定义的具体实现。执行引擎是指流程...
2. **jbpm流程定义**:示例可能包含了使用jbpm的工作流定义文件(.bpmn或.bpmn2),这些文件使用XML描述了业务流程的步骤、决策和任务。开发者可以通过jbpm提供的工具(如jbpm-designer)创建和编辑这些流程图。 3....
`subjbpm.jpdl.xml`文件则是jbpm流程定义语言(Job Process Definition Language)的文件,它是jbpm用来存储流程定义的XML格式。此文件包含了流程的所有详细信息,包括活动(tasks)、泳道(lanes)、转换...
文档《JBPM流程引擎资料》详细介绍了如何利用JBPM开发流程应用,涵盖了从框架构造到节点处理的方方面面。 首先,文档提到了jBPM的基本概念。jBPM是一个轻量级流程引擎,它允许开发者以模块化的方式管理业务流程。...
JBPM流程引擎设计是IT领域中的一个重要知识点,尤其对于那些希望理解和实施企业级工作流管理系统的人员来说,它是不可或缺的。 1. **流程建模**:JBPM支持BPMN 2.0(Business Process Model and Notation)标准,这...
### JBPM流程监控的实现过程详解 JBPM作为一款由JBOSS公司推出的开源工作流管理工具,以其强大的功能和灵活性赢得了众多开发者的青睐。尽管如此,JBPM原生并未直接提供流程监控功能的API,这无疑给那些希望在企业...
6. **版本管理**:jbpm流程设计器支持流程定义的版本管理,便于跟踪和回溯流程的变化历史。 在提供的压缩包文件中,"droolsjbpm-jbpm-designer-6.0.0.Beta1-480-gdc1d8ec.zip"可能是jbpm流程设计器的一个早期版本,...
**jbpm 请假流程定义发布项目** jbpm(Java Business Process Management)是一个开源的工作流管理系统,主要用于业务流程的建模、执行和管理。这个项目主要介绍如何使用jbpm来实现一个具体的请假流程,并且提供了...
2. **流程执行**:jbpm引擎负责解析和执行流程定义。当流程实例被启动时,引擎会根据流程图的逻辑进行控制流的管理。在执行过程中,它可以处理并行分支、条件判断、循环等复杂逻辑。 3. **任务管理**:jbpm提供了一...
**1.3 部署JBPM流程定义** - 覆盖了使用Ant和API两种方式部署流程定义的方法,确保流程可以在JBPM环境中正确执行。 **1.4 模拟借款申请与审批** - 提供了一个具体案例——借款申请流程,深入讲解了JBPM服务API...
1. 过程定义(Process Definition)和流程实例(Process Instance):jbpm流程引擎内核中最基本的对象和服务。 2. 调度机制和执行机制:jbpm流程引擎内核中用于解决流程运行问题的机制。 3. 微内核流程引擎构架:...
1. **jBPM流程定义**: - jBPM不遵循传统的WfMC's XPDL、BPML、ebXML或BPEL4WS等规范,而是使用自定义的jBoss jBPM Process Definition Language (jPdl)。jPdl基于UML状态图模型,使流程定义图形化,易于理解和维护...
【MyEclipse6.0下Jbpm流程设计器】是一个专为MyEclipse6.0集成的业务流程管理(Business Process Management,BPM)工具,主要用于设计和管理Jbpm流程。Jbpm是一个开源的工作流和业务流程管理平台,它提供了一套完整...
jBPM使用BPMN 2.0(Business Process Modeling Notation)标准来创建流程定义,这是一种图形化的建模语言,能够清晰地表达复杂的业务逻辑。流程定义包括了任务(Task)、事件(Event)、网关(Gateway)和泳道(Lane...
【JBPM流程代码演示】是关于使用JBPM(Java Business Process Management)框架进行流程管理的实践教程。JBPM是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。本教程通过一系列代码示例,旨在...