第 5 章. 拥护工作流引擎和 BPMN
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本书主要介绍如何使用工作流引擎和 BPMN 实现流程自动化。当然,开发人员的工具箱中还有其他自动化流程的方法。此外,BPMN 并不是唯一可以使用的流程建模语言。
本章将介绍我做出这些选择的背景。希望这些知识不仅能说服你,还能帮助你与公司或组织讨论为什么某些场景可以从工作流引擎和 BPMN 中获益。如果你只想进一步了解流程自动化,可以跳过本章,以后再来看。本章内容
-
解释使用工作流引擎的替代方案,以及应注意的权衡问题
-
介绍流程建模语言的不同选择,并解释为什么我认为 BPMN 是最佳选择
-
简要介绍区块链的流程自动化,因为它经常作为一个没有人真正理解的话题出现
其他实施方案的局限性
开发人员每天都在使用许多常见的方法来实现流程自动化。每种实现方式都有其自身的缺点,而所有这些方式都可以从采用工作流引擎中受益。让我们来探讨一下这些典型的替代方法是如何工作的。
硬编码流程
硬编码流程自动化在"狂野的西部集成 "中有所介绍。要补充的内容不多,但为了完整起见,我想把标题写在这里。
批量处理
批处理是一种非常流行的自动化流程选择。让我们先来了解一下什么是批处理作业,以及如何通过一系列批处理作业实现流程自动化。
您在酒店乘坐过拥挤的电梯吗?这就是批量工作的一个很好的比喻。所有物品(这里指您和其他乘客)都必须等待电梯到达,然后一起被装进电梯并进行处理(这里指被提升到不同楼层)。
在摩天大楼的酒店里,你甚至可能需要切换电梯,因此在第一次成功的批量任务(乘坐电梯)之后,你必须排队等待下一次批量任务。如果有人使用了紧急停止装置,轿厢内就没有人继续前进了。
这里发生的过程是你从酒店大堂到房间的移动,由多个批处理作业实现。单个作业通常并不真正了解整个流程,即使某个建筑师希望能考虑到从酒店到房间的整个过程。
这个比喻比典型的 IT 批量作业更友好。电梯对您按下按钮做出反应,因此批处理作业运行的等待时间相对较短。现实生活中的大多数批处理作业都是受时间控制的;假设有多部电梯,电梯 A 可能在上午 8 点上行,电梯 B 可能在上午 9 点上行,以此类推。在这种情况下,整个行程可能需要很长时间。
因此,一个批处理作业只关注流程中的一个任务,但整个流程是由多个批处理作业连续执行的。批处理实际上与实际流程是正交的。
图 5-1 展示了一个批处理的实际案例。在这里,客户在线请求更新其信用额度。该请求不会立即得到处理(称为在线处理),而是在一个队列中等待下一个批次的运行,下一个批次通常会在一天中的某个特定时间运行。然后,该批次中等待的所有项目都会一次性处理完毕。
图 5-1. 批次与实际流程正交
批处理是一种非常流行的方法,因为计算机刚诞生时就是这样运行的。最初,计算机一次只能运行一个程序,从磁带等顺序存储器中读取数据,等等。如今,大型机仍然针对批处理进行了优化,可以非常高效、快速地处理大量数据,即使是一次交易。但这些正交批处理在流程自动化方面存在严重缺陷:
-
批处理 增加了单个工作单元的处理延迟,从而减慢了流程周期时间。虽然在邮寄信件的时代,这种行为通常是可以容忍的,但在智能手机时代,它已不再符合客户的期望。一些企业试图通过更频繁地运行批处理来减少延迟,甚至在前一个批处理作业尚未完成时就开始执行一个批处理作业,从而导致各种奇怪的并发问题。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access