工作流与BPM

  工作流与BPM其实是两个概念,不过现在已经融合为一了,工作流顾名思义基于人的工作的流程,因为只有人才会工作work,当然机器也会工作,因此BPM(业务流程管理)的概念更进一步了,已经不管是人和机器,都是基于业务流程本身的一种管理,业务流程需要人工完成,那么人工必须完成任务;而业务流程需要机器完成,机器应该会自动完成,这个自动完成不是直接执行SQL操作数据库,而是基于服务之间的调用流程,是服务的组合完成,比如有一个数据库注册服务A和邮件服务B,如果需求要求注册后发送邮箱确认,那么使用流程实现服务A+服务B,而且能够每次用户注册都会执行这个流程。

  因此,流程有两个好处:自动化流程和状态跟踪。也就是说,在流程执行过程中,能够有一个总的状态机跟踪整个流程的执行情况,从而让流程管理者能够实时了解当前流程在哪个情况?

  BPM有各种开源软件,以Activiti为首的Java开源是主要流派,基于Activiti有各种分支,比如Camunda和Flowable,大概主要分为两个功能:流程设计和流程运行。

  过去,流程引擎总是耦合成为一个SDK,虽然很轻量,但是无法应付大中型复杂的任务管理,特别是基于ESB服务总线之上的服务调度,这部分主要依靠BPEL实现,相关开源是APache ODE,也就是说扩展性很差,在如今微服务和云原生架构的发展下,流程引擎的分布式运行和高可用性对于一个组织或公司越来越重要,否则流程服务器瘫痪代表整个组织运行的中断,目前基于Serverless无服务器架构下的云流程也是风生水起。无服务器Serverless将变革工作流BPM

  下面是一些工作流引擎产品列表:

  在BPM领域有一个标准的图形化符号语言BPMN,遵循零代码或少写代码的宗旨,BPMN 2.0以后融入了BPEL,从而实现人工流和服务流程的综合调度编排。

  学习掌握设计一个BPMN案例,需要比较高的逻辑能力,有过严格的编程逻辑训练,或者相关业务的领域专家能力,初学者建议分三步学习:

  1. 启动事件 结束事件和一个用户任务(表单),主要掌握事件、任务和顺序流的概念

  2. 请假流程。这实际上是一个审核流,主要掌握网关实现批准或否决的用途,网关只能和顺序流衔接

  3. 四眼原则。双人审核流,有两个人审核,主要掌握事件和子流程概念,BPMN中事件有60多种,很多事件有使用场景,上下文不同事件的概念不同,使用事件可以实现各种流程路由,如回退、取回、抄送、关系等功能。

  BPMN的主要元素如下:这些符号如同计算机一个语言的语法,流程是由这些符号组合表达的,如何使用这些符号表达一个复杂流程是建模人员专业素质体现:

  为了将服务流程和人工流程全部集成到BPMN中,需要一种复杂的架构设计,下面是商业产品ActiveVOS的设计图,标准的任务管理系统负责处理人工相关的工作;整合了BPEL BPEL4People的BPM引擎是整个系统真正核心,领域专家可以使用BPMN2设计测试部署流程到其中,其管理控制台能够进行流程运行的各种管理,BPM引擎不但负责向人工任务系统发送任务,还负责向各个REST端点服务交互通讯。

  开源项目Activiti从7版本以后开始引入Spring cloud架构,这是一个好的开始,但是因为它也有企业版,比如它的企业版有REST任务支持,而社区版则没有,这些坑未来版本里面会不会因为商业目的而人为制造呢?

领域事件是实现业务流程分析设计的突破入口,事件是业务流程和技术领域,包括领域驱动设计DDD、数据分析、商业智能等领域共用统一术语行话,从领域事件入手,可以起到纲举目张的事半功倍效果。

 

BPMN文章

BPMN中可以有多个开始和结束事件吗?

BPMN和Visio流程的区别

什么是DMN?如何支持BPMN?

BPMN五大基本元素是什么?

BPMN学习第一步:简单的流程图

BPMN中的任务和活动之间有什么区别?

什么是BPMN网关?

BPMN复杂网关及其在流程建模中的应用?

BPMN学习第二 步:请假流程图

什么是BPMN事件?

BPMN基于事件的专用网关及其在流程建模中的使用方式?

BPMN中断事件和非中断事件有什么区别?

什么是计时事件?

什么是BPMN多实例活动?

什么是BPMN消息流?

池Pool和泳道Swimlane有什么区别?

什么是BPMN协作图?

私有流程和公共流程是什么意思?

BPMN和UML活动图对比

如何将BPMN流程部署到Activiti

Saga与工作流引擎比较

业务流程重构

如何构建业务流程模型?

用例的基本组成部分是什么?

PDCA方法是什么,业务分析师如何应用它?

什么是六西格玛方法?

什么是价值流映射,它是如何执行的?

相关文章

Code rant: 从硬编码到配置、规则引擎、低代码或 DSL的复杂性时钟理论

工作流的7宗罪

在Spring Boot中使用流程引擎Activiti

使用Activiti和Spring集成完成BPEL和BPM

深入理解Activiti工作流

BPMN开始结束事件的最佳实践

四眼原则

业务流程的新实现:微服务和事件编排

工作流引擎四重罪

无服务器Serverless将变革工作流BPM

服务与数据之争

从架构师思维看分布式事务两种技术方案

2018工作流引擎比较:Airflow、Azkaban、Conductor、Oozie和 Amazon Step Functions

业务流程与软件架构的结合

两个领域事件驱动的开源项目介绍

从微服务到工作流:Jet订单系统演变过程分享

DDD福音:Zeebe是一个类似Kafka的可扩展的分布式事件溯源工作流引擎

如何使用Zebee构建高度可扩展的分布式工作流中间件?

使用Spring Boot开发基于Kubernetes的Zeebe工作流应用

德国人寿保险公司LV 1871如何做到使业务专家能够参与软件开发的?附开源建模和代码生成工具 - David Ibl

更多#工作流专题

相关专题

规则引擎

DDD通用统一语言与术语UL

DSL领域特定语言

业务分析

DDD战略设计与领域建模

领域事件是业务流程的突破入口

事件风暴建模 #activiti   #Saga #分布式事务

#SOA专题 # 业务分析专题 #事件风暴