第 2 章. 工作流程引擎和流程解决方案
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在对流程自动化进行总体介绍之后,本章将介绍流程自动化:
-
介绍工作流程引擎和流程解决方案
-
介绍一个可执行的实践范例,使问题具体化
-
探讨开发人员在使用流程自动化平台时的体验
工作流程引擎
正如您在导言中所看到的,工作流引擎是实现长期运行流程控制流自动化的关键组件。
如果你想知道为什么要使用工作流引擎,而不是硬编码流程或使用批处理或数据流,你可能想看看"其他实施选项的局限性"。
核心能力
工作流引擎的核心技术能力包括
- 持久状态(持续性)
-
引擎会跟踪所有正在运行的进程实例,包括它们的当前状态和历史审计数据。虽然这听起来很容易,但持久状态的处理仍然是一项挑战,尤其是在大规模运行时。它还会立即触发与了解当前状态有关的后续需求,这意味着你需要操作工具。工作流引擎还需要管理事务,例如处理对同一流程实例的并发访问。
- 日程安排
-
工作流引擎需要对时间进行跟踪,如果某个流程被卡住的时间过长,引擎可能会升级。因此,必须有一种调度机制,让引擎在需要完成某些工作时随时处于活动状态。这样还能在出现临时错误时重试任务。
- 版本控制
-
拥有长期运行的进程意味着没有任何时间点没有进程实例在运行。请记住,在这种情况下,"运行 "实际上可能意味着等待。无论何时您想对流程进行更改,如添加另一个任务,您都需要考虑当前运行的所有实例。大多数工作流引擎都支持并行的多版本流程定义。好的工具允许以可自动化和可测试的方式将实例迁移到新版本的流程定义中。
图 2-1 展示了这些核心特征。
图 2-1. 工作流引擎是一个善于等待和调度的状态机
如"狂野西部集成 "中所述,使用工作流引擎可以减轻自己存储状态、利用定制的调度机制以及最终构建自己的工作流引擎的负担。
当然,这需要权衡利弊。使用工作流引擎的主要缺点是在堆栈中引入了另一个组件。这绝不是免费的。例如,你需要选择一个工具,学习如何使用它,并绘制一个使用它的架构草图。
通常情况下,这种初期投资会很早就得到回报,当然这在很大程度上取决于你的应用场景。在本书的这一部分,讨论何时使用工作流引擎才有意义还为时过早--你首先必须了解这些工具是如何工作的,以及它们如何影响你的架构--但我们会在"何时使用工作流引擎 "一文中再来讨论这个问题。让我们先睹为快,投资回报也取决于投资,因此学习曲线较浅的轻量级工具已经可以帮助解决 "较小 "的问题。您可以相对较快地使用这些工具。
备注
不同的工作流引擎有不同的架构和资源要求。现代工作流引擎往往非常轻量级,能很好地与现有架构、开发人员经验和 CI/CD 管道集成。云中也有可管理的产品。有些工作流引擎可以横向扩展,因此可用于高负载场景,如延迟问题严重的交易用例、吞吐量巨大的电信用例或需要掌握高峰值负载的零售用例。
工作流程平台的其他功能
除了这些核心功能外,大多数工作流引擎还提供其他功能。好的工具会让这些功能可选或可插拔,这让你能够选择是要一个超级精简的工作流程引擎,还是要利用一些附加工具。当你发现需要更多功能时,还可以逐步采用。
典型的附加功能包括
- 可见性
-
流程模型可以通过相对简单的可视化或功能强大的图形语言(在"流程建模语言 " ...
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