什么是工作流?

工作流指计算机业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程;

什么是activiti?

Activiti是一个开源架构的工作流引擎,基于bpmn2.0(Business Process Modeling Notation,业务模型注解)标准进行流程定义。其前身是JBPM(Java Business process Manage),Activiti通过嵌入到业务流程开发中进行使用;

生命周期

一个完整的生命周期会经历5个阶段:定义、发布、执行、监控、优化;

activiti主要特性

1、集成mybatis框架
Activiti的设计思想是简洁、快速。所以它选择了Mybatis作为持久层框架,从而可以通过最优的sql语句执行Command,仅凭如此就能让引擎在速度上保持最高的性能。
2、Activiti的服务接口

Activiti提供了7个服务接口,都通过ProcessEngine(Activiti中最核心的类)来获取的,并且支持链式编程风格;

  1. RepositoryService(仓库服务):用于管理仓库,例如管理流程定义,读取流程资源等;
  2. IdentifyService(身份服务):管理用户组以及他们之间的关系;
  3. RuntimeService(运行时服务):管理所有正在运行的流程实例、任务等对象;
  4. TaskService(任务服务):(管理服务);
  5. FormService(表单服务):管理和流程任务相关的表单;
  6. HistroyService(历史服务):管理历史数据;
  7. ManagementService(引擎管理服务):比如管理引擎的配置、数据库和作业等核心对象;

3、流程设计器
与 jBPM 类似,Activiti 也提供了基于 Eclipse 的流程设计器 —— Eclipse Designer。 此外还有 Signavio 公司为 Activiti 定制的基于 Web 的 流程设计器 —— Activiti Modeler。
4、原生支持 Spring
Activiti 可以很容易与 Spring 集成,这对于管理事务和解析表达式来说,非常方便。
5、分离运行时数据与历史数据
这一特性与 jBPM4 的设计理念一脉相承。这样的设计架构使得引擎可以快速地读取运行时数据,只有在需要时才会从历史表中查询历史数据。 这样可以极大地提高数据的存取效率。

jbpm和activiti对比分析

目前流行的工作流引擎有Activiti和jBPM5,而在jBPM5发布以前大多数项目、平台都是基于jBPM3、jBPM4开发的。

JBPM
1、全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。

2、jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(http://jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。

Activiti5
1、Activiti5是在jBPM3、jBPM4的基础上发展而来的,Activiti5使用Spring进行引擎配置以及各个Bean的管理,综合使用IoC和AOP技术,使用CXF作为Web Services实现的基础,使用MyBatis进行底层数据库ORM的管理,预先提供Bundle化包能较容易地与OSGi进行集成,通过与Mule ESB的集成和对外部服务(Web Service、RESTful等)的接口可以构建全面的SOA应用。
2、从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。

其他流程引擎

Activiti
Activiti 由 Alfresco 公司开发,目前最高版本为 Activiti cloud 7.1.0。其中 activiti5 和 activiti6 的核心 leader 是 Tijs Rademakers,由于团队内部分歧,2017 年 Tijs Rademakers 离开团队,创建了后来的 Flowable。activiti6 以及 activiti5 代码则交接给 Salaboy 团队维护,activiti6 以及 activiti5 的代码官方已经暂停维护。往后 Salaboy 团队开发了 activiti7 框架,activiti7 内核使用的还是 activiti6,并没有为引擎注入更多的新特性,只是在 Activiti 之外的上层封装了一些应用。直到 Activiti cloud 7.1.0 版本,Activiti cloud 将系统拆分为 Runtime Bundle、Audit Service、Query Service、Cloud Connectors、Application Service、Notification Service。这些工作的主要目的其实就是为了上云,减少对 Activiti 依赖的耦合,需要使用 Activiti 的系统只需要通过调用 http 接口的方式来实现工作流能力的整合,将工作流业务托管上云。
Flowable
Flowable 是基于 activiti6 衍生出来的版本,目前最新版本是 v6.7.0。开发团队是从 Activiti 中分裂出来的,修复了一众 activiti6 的 bug,并在其基础上实现了 DMN 支持,BPEL 支持等。相对开源版,其商业版的功能会更强大。Flowable 是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016 年 10 月,Activiti 工作流引擎的主要开发者离开 Alfresco 公司并在 Activiti 分支基础上开启了 Flowable 开源项目。Flowable 项目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎和表单引擎(Form Engine)等模块。
Camunda
Camunda基于 activiti5,所以其保留了 PVM,最新版本 Camunda7.17,开发团队也是从 activiti 中分裂出来的,发展轨迹与 Flowable 相似。通过压力测试验证 Camunda BPMN 引擎性能和稳定性更好。功能比较完善,除了 BPMN,Camunda 还支持 CMMN(案例管理)和 DMN(决策自动化)。Camunda 不仅带有引擎,还带有非常强大的工具[6],用于建模、任务管理、操作监控和用户管理。
jBPM
jBPM 由 JBoss 公司开发,目前最高版本 7.61.0.Final,不过从 jBPM5 开始已经跟之前不是同一个产品了,jBPM5 的代码基础不是 jBPM4,而是从 Drools Flow 重新开始,基于 Drools Flow 技术在国内市场上用的很少,jBPM4 诞生的比较早,后来 jBPM4 创建者 Tom Baeyens 离开 JBoss 后,加入 Alfresco 后很快推出了新的基于 jBPM4 的开源工作流系统 Activiti,另外 jBPM 以 Hibernate 作为数据持久化 ORM,而 Hibernate 也已不是主流技术。
osworkflow
osworkflow 是一个轻量化的流程引擎,基于状态机机制,数据库表很少,osworkflow 提供的工作流构成元素有:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)等,但不支持会签、跳转、退回、加签等这些操作,需要自己扩展开发,有一定难度。如果流程比较简单,osworkflow 是很好的选择。

关于如何快速上手activiti:https://www.sohu.com/a/378289349_120512881

关于工作流activiti相关推荐

  1. 5步带你掌握工作流Activiti框架的使用

    摘要:本文通过一个工作流Activiti框架的具体使用示例,具体详尽的介绍了工作流Activiti框架的使用方式. 本文分享自华为云社区<一个使用示例,五个操作步骤!从此轻松掌握项目中工作流的开 ...

  2. 工作流Activiti集成构建自有平台方案

    序 最近以为工作安排,让我研究工作流.说实话这个一直停留在用的阶段,但是能工作流Activiti网上资料也很多,真要基于这个构建自有工作流也是可以的.下面就说说我的方案与试验. 一. 可行性 经过4天 ...

  3. 工作流Activiti初体验—流程撤回【二】

    已经玩工作流了,打算还是研究一下撤回的功能.但是流程图里面并不带撤回的组件,所以需要自己动态改造一下,还是延续上一个流程继续试验撤回功能.<工作流Activiti初体验[一]> 完整流程图 ...

  4. 工作流Activiti流程图各元素介绍

    我们常见的工作流流程图,通过各元素的拖拽生成,如下图: 要想生成根据业务需求制定的流程图,首先要知道这些构成元素代表的是什么,这篇就来将一下这些元素的作用.通过activiti集成eclipse,会在 ...

  5. OA工作流-Activiti(一)

    OA工作流-Activiti(一) 一.工作流定义 工作流:一系列相互衔接.自动进行的业务活动或任务. OA工作流:建立于网络办公自动化基础上的事务行政审批,业务申请审批.公文.信息等的网上流转.它主 ...

  6. activiti 工作流_分享:springboot中关于工作流activiti的搭建

    概念 工作流产品使用activiti的算是比较多了,自带了一套UI界面,可以直接使用,用来设计流程,下面简单总结一下它的步骤: 1 设计模型 2 发布为流程,一个模型可以发布多个版本的流程 3 建立一 ...

  7. SpringBoot - 工作流Activiti开发

    1.工作流 1.1 开发前奏 介绍 当前系统activit开发以springboot+mybatis开发为准, 1.1.1 IDEA安装actiBPM 通过File -> Settings -& ...

  8. 工作流activiti

    回顾一下以前使用过的activiti工作流:下载工作流引擎和下载插件就不说了,这个百度上很多. 安装遇到的问题: 说一下再下载插件中容易遇到的几个问题以及解决的方案:自己电脑上安装的有java ide ...

  9. 工作流(Activiti 6.0)之自由驳回任务实现

    工作流版本使用6.0,参数为任务id(task中主键),目标节点ID(比如userTask1),以及业务主键信息(businessKey). /*** 任务节点跳转* @param taskId 当前 ...

  10. 工作流Activiti核心概念、原理和集成方法

    1.什么是工作流及BPMN2.0规范介绍 BPMN 是Business Process Modeling Notation 的简称 BPMN定义了一个业务流程图: Activity是bpmn的一个实现 ...

最新文章

  1. python降温了吗_为“Python将纳入高考”降温
  2. python:实现Django简单的网页设计
  3. ANDROID L——Material Design综合应用(Demo)
  4. CVPR 2022 | 华为诺亚北大提出量子启发MLP,性能超越Swin Transfomer
  5. 编写sonar 插件:No SqaleSubCharacteristic annotation was found on class xxx
  6. 【VMCloud云平台】拥抱Docker(六)关于DockerFile(1)
  7. 服务器网卡的Teaming技术
  8. php 判断设备是手机还是平板还是pc
  9. 生鲜APP软件功能开发
  10. ValueError: operands could not be broadcast together with shapes (416,416,4) (3,)
  11. elasticsearch分片分配和路由配置
  12. 毕业三年,坚持学习两年,成功上岸字节跳动,背水一战
  13. 10.自动代理AutoProxy
  14. sqlserver连接池及查看连接数相关
  15. 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )
  16. 仓储模式和传统三层架构多数据库实现
  17. Word中批量更新域的两个小方法
  18. 霍格沃兹分院测试_在法律上与理查德·霍格的对话是互联网上最喜欢的律师
  19. 74HC1G66模拟开关,多路复用
  20. 科大讯飞语音听写app闪退

热门文章

  1. 泰坦号潜艇事故给软件工程师的启示
  2. JavaScript基础总结深入(数据类型、数据_变量_内存、对象、函数、回调函数、this)
  3. 百度搜索:个人信用记录查询方法分享
  4. 基于Socket的网络即时通信系统
  5. 金三银四面试必问:AQS了解吗?
  6. 古月居 ROS入门21讲 第十二讲 话题消息的定义与使用
  7. portlet_Portlet教程
  8. 第一门编程语言学python靠谱吗?
  9. 错误使用pca,输出参数太多
  10. STM32——ARM与STM32之间的联系