jBPM4的一些相关概念(转)
首先,在jBPM4中,流程定义相关的布署信息就存储在JBPM4_DEPLOYMENT、JBPM4_DEPLOYPROP及JBPM4_LOB中。
其次,虽然jBPM也说一个流程定义是关于某个过程(Procedure)中的各个步骤(Step)的描述,但在流程定义中并未出现Step字样,而是代之于Activity。顾名思义,在JBPM4_HIST_PROCINST与JBPM4_HIST_ACTINST两张表中,分别存放的是Process Instance、Activity Instance的历史记录(实际上对于流程实例而言,一经建立,就会被存放在JBPM4_HIST_PROCINST中了)。而这两张History表,也是jBPM升级至V4才有的,算是V4的亮点之一!
存放Process Instance、Activity Instance历史记录的表有了,那他们的当前记录存在什么地方呢?这就需要弄清楚jBPM的另外几个概念。一般而言,在jBPM中,“a process instance is the root of a tree of executions”。因此,当一个流程实例Split出两个并行步骤的时候(这里的描述语言用的是OSWorkflow的,见谅),在JBPM4_EXECUTION表中将有三笔相关记录,一笔是代表流程实例的Root Execution,另外两笔是关于上述两个并行步骤的Child Execution。
此外,我们还必须搞清楚,在jBPM中,Activity的种类是很丰富的,可以是Control Flow Activities,如sub-process、decision等,也可以是Automatic Activities,如java、script、sql等(有关activity的完整描述请参见jPDL文档)。其中需要人来参与完成的Activity被称为Task,相关记录被存放于JBPM4_TASK表中。
对一个Task而言,它可能会有多个Participation(Swim Lane同样会有多个Participation)。Participation的种类有Candidate、Client、Owner、Replaced Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。Participation的信息存放在JBPM4_PARTICIPATION表中。
Swim Lane是一种Runtime Process Role。通过Swim Lane,多个Task可以一次分配到同一Actor身上。存放这些信息是表JBPM4_SWIMLANE。
除此以外,JBPM4_JOB存放的是Timer的定义,JBPM4_VARIABLE存的是临时变量,JBPM4_COMMENT中的是用户在Task上的加注信息。
jBPM4中的任务分配
在前一篇笔记中,我们提到过,jBPM到V4后增加了两张新表——JBPM4_HIST_PROCINST、JBPM4_HIST_ACTINST,用来存放Process、Activity实例的历史记录。
与OSWorkflow相比,jBPM还有一个特别——有一张表专门用来存放需要人参与完成的Activity,在V4中,这张表名为JBPM4_TASK。显而易见,在一个流程中,只有需要人参与完成的Activity才有Assignment之说,而且因为他们只是全部Activity的一个子集,所以在构建有关的个人、用户组任务项列表时,数据库查询所涉及的记录数要少于OSWorkflow。
至于jBPM中的Swimlane——
它是随流程一起被定义的,所以也随流程一道被实例化。同一流程定义下的各个流程实例(Process Instance),分别拥有自己的Swimlane实例,在JBPM4_SWIMLANE表中也是有各自的记录与其对应;对一个Swimlane Instance的操作不会影响到另一个,即使它们来自同一个流程定义。
Swimlane的Candidate属性会传播到与之相关联的Task实例上。即,与Swimlane相关联的Task实例会自动获得Swimlane的Candidate属性;并且,在数据库表JBPM4_PARTICIPATION中,会有生各自的记录,分别保存Swimlane Instance与Task Instance的Candidate。
对Task Instance的assignment操作,将会传播到与之关联的Task Instance之上。换言之,假如我们将一个Task Instance分配给用户A,而这个Task Instance又属于某个Swinlane Instance B,则从此Swinlane Instance B就被指派给用户A了;进而,Swimlane Instance中的其他Task Instance也顺势被指派给了用户A。
不知通过上面的描述,是不是能让我们进一步理解“A swimlane is a process role.”这句话呢?好象它的作用就在于将一个Process Instance中的多个Task一次分配给同一个Actor吧。
分享到:
相关推荐
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
- **基础概念:** 介绍工作流、BPMN(业务流程建模符号)、jBPM4中的关键术语和概念,帮助开发者建立基础知识体系。 - **流程定义:** 深入讲解jPDL、流程图的创建和编辑,让开发者学会如何定义业务流程。 - **...
**jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...
首先,jbpm4的核心概念包括: 1. **流程定义(Process Definition)**:这是业务流程的蓝图,用BPMN(Business Process Model and Notation)语言编写,描述了流程的各个步骤、决策点、事件和参与者之间的关系。在...
**JBPM4 开发文档详解** JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于...对于开发人员来说,理解这些核心概念和数据库表结构,能更好地掌握和应用jBPM4进行业务流程自动化。
首先,我们要理解jbpm4的核心概念。jbpm4包含了一个流程定义语言(BPMN 2.0),使得业务流程可以用图形化的方式进行建模。流程定义文件通常以`.bpmn`或`.bpmn20.xml`扩展名存在,描述了流程的各个步骤和它们之间的...
在学习和使用jBPM4时,理解这些核心概念至关重要。通过实践,你可以熟练掌握jBPM4的工作原理,从而更好地实现业务流程自动化,提升企业的效率和灵活性。jBPM4.0GA.pdf文档中包含了更详细的步骤和示例,建议仔细阅读...
**jbpm4实例源码详解** ...通过研究这个jbpm4实例源码,开发者不仅可以了解jbpm4的基本概念,还能学习到如何在实际项目中部署和运行流程。这将极大地提升开发者的业务流程管理能力,使其能够高效地实现企业流程自动化。
### 一、JBPM4核心概念 1. **工作流定义(Process Definition)**:工作流定义是业务流程的蓝图,用BPMN(Business Process Modeling Notation)语言进行描述,如泳道图、任务、事件等。 2. **流程实例(Process ...
- **作用**: 保存JBPM引擎的一些配置属性。 - **主要内容**: 如版本号、默认超时时间等系统级设置。 ##### 5. **JBPM4_TASK** — 任务表 - **作用**: 记录待办任务信息。 - **主要内容**: 任务ID、名称、负责人、...
`JBPM4_SWIMLANE`表定义了泳道的概念。泳道是指流程执行过程中的一种角色分组方式,通常用于表示流程中的不同职责区域。泳道与任务之间的关联可以帮助确保任务被分配给合适的执行者。 #### 10. `JBPM4_VARIABLE` ...
**一、JBPM4核心概念** 1. **流程定义(Process Definition)**: 在JBPM4中,业务流程以BPMN2(Business Process Model and Notation 2.0)的XML文件形式进行定义,包含了流程图中的各个节点和连接线,如任务(Task...
首先,我们需要了解jbpm4的基本概念,包括工作流定义(Workflow Definition)、任务(Task)、节点(Node)以及流程实例(Process Instance)。jbpm4通过 BPMN 2.0 标准提供了一种可视化的方式来设计这些流程。 在...
jbpm3和jbpm4是该系统的两个重要版本,提供了丰富的功能来支持流程定义、执行、监控和优化。 jbpm3作为早期版本,其用户文档详细介绍了如何配置、部署和使用jbpm系统。"JBPM3.1Help(中文).chm"可能包含了关于jbpm3...
51CTO下载的《jBPM4工作流应用开发指南》PDF文件是其中的一份详细的学习资料,涵盖了从基础概念到高级用法的全面指导。 通过学习和实践jBPM4,开发者能够构建出灵活、可扩展且易于维护的工作流应用,以满足企业复杂...
- **JBPM4_ID_GROUP**,**JBPM4_ID_MEMBERSHIP**,**JBPM4_ID_USER**:身份认证相关表,管理用户、组和成员关系。 - **JBPM4_JOB**:定时任务表,用于调度未立即执行的操作。 - **JBPM4_LOB**:存储大型对象,如...
在实际应用中,开发者需要了解JBPM4的工作原理,包括流程实例、任务实例、信号和事件的概念,以及如何通过API或服务任务与外部系统交互。熟悉Maven的使用也是至关重要的,包括理解POM文件的结构、如何添加和排除依赖...
【jbpm4web请假例子】是一个基于JBPM4工作流引擎的示例应用,它演示了如何在Eclipse环境中开发和部署一个简单的请假流程。这个例子可以帮助开发者理解工作流管理系统的基本概念,以及如何将它们集成到实际的Web应用...
jbpm.hibernate.cfg.xml是工作流引擎是依靠自身的一些数据库的,这个就是数据库相关的配置信息,因为JBPM底层就是引用了Hibernate来做持久层维护的,所以此文件就是Hibernate配置文件。 知识点4:JPDL4 schema效验 ...
在本指南中,我们将深入探讨jBPM4的主要特性、核心概念以及如何在实际项目中应用。 1. **jBPM4的核心概念**: - **流程定义(Process Definition)**:使用 BPMN(Business Process Modeling Notation)语言来描述...