工作流基础

什么是BPM

BPM是Business Process Management的缩写,中文含义是业务流程管理,是一套达成企业各种业务环节整合的全面管理模式

可以简单的理解成是一种管理模式,气概念包括两种含义,一个是管理规范,一个是软件工程,由此引出工作流的概念

什么是BPMN

Business Process Modeling Notation,简称BPMN,中文译为业务流程建模标注,是由BPMN标准组织发布的,其第一版BPMN 1.0规范于2004年5月发布。经过多年的改进新的规范BPMN 2.0于2011年发布。之后各大厂商、开源社区均基于2.0规范设计自己的流程引擎,结束了各个厂商“各自为政”的局面,相应地统一了标准,从而利于以后的产品迁移。

什么是工作流

工作流基础

工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。 工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表達并对其实施计算。 工作流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务

工作流引擎

简单理解: 工作流是概念,工作流引擎是实现,可以理解是一个框架

应用

  • CRM系统
  • ERP系统
  • OA系统
  • 办公软件

工作流发展

  • 各个发展
    • JBPM

      • 官网

      • 目前最新版本

        • 7.38.0

        • 分水岭jbpm5

          • BPM5使用http://jBoss.org社区的大多数组件,以Drools Flow为核心组件作为流程引擎的核心构成,以hibernate作为数据持久化ORM实现,采用基于JPA/JTA的可插拔的持久化和事务控制规范,使用Guvnor作为流程管理仓库,能够与Seam、Spring、OSGi等集成
        • 特点

          • 从jbpm5以后全新设计,给之前的开发者带来很多不便,采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(http://jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2
    • activiti

      • 官网地址

      • 历史渊源

        • activiti的创始人,Tom Baeyens,也是jbpm的创始人,由于jbpm的未来架构上产生意见,Tom Baeyens在2010年离开jboss,同年发布activiti5.0版本

        • 第一个版本5.0

          • Activiti5是在jBPM3、jBPM4的基础上发展而来的,是原jBPM的延续,而jBPM5则与之前的jBPM3、jBPM4没有太大关联,且舍弃了备受推崇的PVM(流程虚拟机)思想,转而选择jBoss自身产品Drools Flow作为流程引擎的核心实现,工作流最为重要的“人机交互”任务(类似于审批活动)则由单独的一块“Human Task Service”附加到Drools Flow上实现,任务的查询、处理等行为通过Apache Mina异步通信机制完成。
        • 优势

          • 采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;
        • 缺点

          • 二次开发难度也挺大,门槛高
          • 流程设计器官网好久不维护了,idea下不方便用,页面设计器需要汉化,而且有bug
          • 团队转向flowable
          • 新版本发展朦胧
      • 主要版本

        • 5.13

          • 历史项目
          • 23张表
        • 5.22

          • 当前主流
          • 25张表
        • 6.0

          • 主要版本
          • 28张表格
        • 7.X

          • 团队重心转移发展activiti-cloud
          • 主要还是基于6.0开发,新特性并不多
      • 现状

        • 很多商业公司多以5.22为主流,
      • 未来发展?

    • flowable

      • 官网

      • 优点

        • 支持jms、rabbitmq、mongodb方式处理历史数据
        • 支持事务子流程
        • 支持条件表达式中自定义juel函数
        • 修复了dmn规范设计器,activit用的dmn设计器还是旧的框架,bug太多
        • 对activiti的代码大量的进行了重构
        • .......
      • 缺点

        • 官网可见,在大力发展商业版产品,部分功能已经不再开源
    • camunda

      • 曾经是activiti5比较大的贡献者
    • 对比

    • Activiti7.1, jBPM7.25, Camunda, Flowable6.3技术组成对比:序号 帓技术组成 帓Activiti7.1 帓jBPM7.25 帓Camunda帓Flowable6.3.1帓1 帓数据库持久层ORM 帓MyBatis3.4.2 帓JPA2.2二次封装 帓Hibernate4.2.0 帓JPA 2.2帓帓持久化标准 帓 JPA规范 帓 JPA规范 帓 JPA规范 帓JPA规范帓3 帓事务管理 帓MyBatis机制/Spring事务控制帓 Bitronix,基于JTA事务管理 帓hibernate机制/Spring事务控制 帓hibernate机制,Spring事务控制帓4 帓数据库连接方式帓Jdbc/DataSource帓Jdbc/DataSource帓Jdbc/DataSource帓Jdbc/DataSource帓5 帓支持数据库 帓Oracle、SQL Server、MySQL、db2帓Oracle、SQL Server、MySQL、db2帓Oracle、SQL Server、MySQL、db2帓Oracle、SQL Server、MySQL、db2帓6 帓设计模式 帓Command模式、观察者模式等 帓帓帓帓7帓内部服务通讯 帓Service间通过API调用帓基于Apac...h

    • 主要人物和发展历史

      • Tom Bayen

        • jbpm创始人
        • activiti创始人
        • 2010年5月第一版
      • Tijs Rademakers

        • 算是activiti5以及6比较核心得leader。现在是flowable框架得leader

          • activiti5

            • 一开始参与者有作者,十几位核心开发人员,加上其他一些公司得员工参与
          • activiti6

          • flowable

      • Joram Barrez

        • 算是activiti5以及6比较核心的leader了。目前从事flowable框架开发
      • Salaboy

        • Activiti Cloud BPM leader(Activiti Cloud BPM 也就是目前的activiti7框架)

          • activiti7
          • 维护activiti5和6工作
        • 2019年6月中旬离职

上一篇:3.10 activiti核心API详解——流程表达式Expressions


下一篇:springcloud 集成 activiti 工作流 报错调试(一)