前言

本文重点介绍开源流程引擎camunda的核心概念,这些概念同样适用于JBMP、Activiti、Flowable流程引擎,了解这些基本概念和原理,使用流程引擎API将更得心应手。

一、Process Definition

Process Definition即流程定义。Process Definition定义了流程的结构,或者说定义了业务活动的执行过程。Camunda bpm使用bpmn2.0作为其流程定义的主要建模语言。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用户通过拖拉拽的方式设计流程图,这个设计完的xml文件就是流程定义。

二、Process Instance

Process Instance即流程实例。流程实例是流程定义的单独执行,流程定义和流程实例是一对多关系。流程实例与流程定义的关系与面向对象编程中对象与类的关系相同(在这种类比中,流程实例扮演对象的角色,流程定义扮演类的角色)。
流程定义设计完成后,发布到BPM,通过流程引擎解析流程定义,发起一次流程即创建了一个流程实例,比如:创建了一个“请假流程”,这是一个流程定义,张三发起了一次请假流程,即创建了一个流程实例,李四也发起了一次请假,就是创建了另一个流程实例,这两个实例均基于流程定义创建生成。

三、Execution

Execution即流程执行实例,如果流程实例包含多个执行路径(例如,在并行网关之后),则会同时产生多个执行实例,即execution, 通过excutionId能够区分流程实例内的当前活动路径。如下流程图,“receive payment”和“ship order”节点同时运行,即有两个execution在运行。


Execution(执行)是分层的,流程实例中的所有Execution(执行)组成一个树,Process Instance(流程实例)是树中的根节点,Process Instance(流程实例)本身就是一个Execution(执行)。

四、Activity Instance

Activity Instance即活动实例,活动实例概念与执行概念类似,但采用了不同的视角。虽然可以将执行想象为在流程中移动的令牌,但活动实例表示活动(任务、子流程等)的单个实例。因此,活动实例的概念更面向状态。

五、Process Variable

Process Variable即流程变量,流程变量在整个工作流中扮演很重要的作用,是业务和流程引擎之间交互信息的载体,业务可以把数据放到流程变量里传递给流程引擎,流程引擎也可以把信息放到流程变量给传递给业务,流程变量最常见的用途有路由条件表达式、流程执行事件参数等。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是流程实例,也就是说各个流程实例的流程变量是不相互影响的。

六、Tasklist

Tasklist即任务列表,也就是待办任务。当流程节点是人工任务类型时,才可产生任务列表。

七、Job and Job Definition

Job and Job Definition即作业执行器,Camunda流程引擎包含一个名为Job Executor的组件。作业执行器是一个调度组件,负责执行异步后台工作。考虑一个计时器事件的例子:每当流程引擎到达计时器事件时,它将停止执行,将当前状态保存到数据库,并创建一个作业以在将来继续执行。部署流程时,流程引擎会为流程中的每个活动创建作业定义,这些活动将在运行时创建作业。

camunda流程引擎概念术语的更多相关文章

  1. Camunda 流程引擎的一种 Adapter 层实现

    上一篇说明了选择 Camunda 的理由.这一篇说明如何实现适配层. 当前还没有专门写一篇对 Camunda 各个功能的详细介绍.如果要获得比较直观的感受,可以下载 Modeler 或者使用在线版的 ...

  2. 开源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪个好?

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...

  3. 基于camunda开源流程引擎如何实现会签及会签原理解析

    一.背景 市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.由于jbpm.activiti.flowable这几个流程引擎出现的比较早, ...

  4. Camunda开源流程引擎快速入门——Hello World

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.由于jbpm.activiti.flowable这几个流程引擎出现的比较早,国内人用的 ...

  5. 基于开源流程引擎开发BPM或OA有哪些难点

    前言     如何基于开源流程引擎开发OA系统?开源流程引擎哪个好?把它整合到自己的产品里难不难,有没有啥风险?这是大家经常遇到的问题.笔者从2006年开始参与流程引擎开发,经历了三代流程引擎研发,支 ...

  6. 开源流程引擎Camunda BPM如何扩展数据库表

    前言 在使用开源流程引擎(如:JBPM.Activiti.Flowable.Camunda等)的时候,经常会遇到这样的需求,我们需要按照业务需求增加一张数据库的表,而且这张表是跟工作流引擎有交互的(注 ...

  7. 开源流程引擎该如何选择flowable还是camunda

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.现在国内用的最多的是activiti.flowable.camunda,下面主要从功能 ...

  8. camunda开源流程引擎的数据库表结构介绍

    Camunda bpm流程引擎的数据库由多个表组成,表名都以ACT开头,第二部分是说明表用途的两字符标识.本文以Camunda7.11版本为例,共47张表. ACT_RE_*: 'RE'表示流程资源存 ...

  9. 开源流程引擎camunda如何扩展

    ​  市场上基于Java语言的开源工作流引擎有:osworkflow.jbpm.activiti.flowable.camunda等,其中osworkflow.jbpm流程引擎已经过时,目前主流的开源 ...

随机推荐

  1. Static in C++

    Static in C++ static根据上下文会有两种含义,他们的区别如下 **在类class或者是在结构体struct 外 **使用static 类外的static修饰的符号在link阶段是局部 ...

  2. window升级Nginx1.10到1.12.2

    window升级Nginx较为简单,只需要修改配置文件,然后启动即可. 环境:window系统 服务器:10.123.98.92 Nginx目录:e:\hgeagle\nginx-1.10.1 旧版N ...

  3. Django + Taro 前后端分离项目实现企业微信登录

    前言 还是最近在做的一个小项目,后端用的是Django搭配RestFramework做接口,前端第一次尝试用京东开源的Taro框架来做多端(目前需要做用于企业微信的H5端和微信小程序) 本文记录一下企 ...

  4. selenium打开指定Chrome账号

    selenium打开指定Chrome账号 获取User Data路径 打开目标Chrome,在搜索栏输入chrome://version,找到"个人资料路径". 这里获取到的路径为 ...

  5. 学生管理系统(python实现)

    # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("------------------" ...

  6. k8s TLS bootstrap解析-k8s TLS bootstrap流程分析

    当k8s集群开启了TLS认证后,每个节点的kubelet组件都要使用由kube-apiserver的CA签发的有效证书才能与kube-apiserver通信:当节点非常多的时候,为每个节点都单独签署证 ...

  7. toFixed()与银行家舍入

    toFixed()与银行家舍入 一直在用toFixed()方法做浮点数的舍入取值,如果只是客户端展示数据是没有多大问题的,但是如果涉及到和后端互交,数据的精度可能会导致接口对接失败,当然了,涉及安全性 ...

  8. docker进阶_dockerswarm

    DockerSwarm Docker Swarm简介 Docker Swarm的功能 ​ Docker Swarm包含两个方面:docker安全集群,以及一个微服务应用引擎 ​ 集群方面,swarm将 ...

  9. 论文解读(SUBG-CON)《Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning》

    论文信息 论文标题:Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning论文作者:Yizhu Ji ...

  10. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...