如今的流程自动化有多种形式。而不断发展的工具生态系统可以使从简单的重复性任务到复杂的自定义工作流都实现自动化。
2015年,德国电信公司开始使用机器人流程自动化(RPA),这是全流程自动化领域的众多工具之一。随着时间的推移,该公司开发了超过2500个机器人流程自动化(RPA)系统,并取得了巨大的成功。但他们也很清楚,即使机器人流程自动化(RPA)的名称标明“流程自动化”,其实并不是真正意义上的流程自动化,而是任务自动化。
这是人们一个常见的误解,其根源在于流程自动化领域的复杂性,在该领域中,其工具类别是多维的并且难以捕获。以下将回答人们通常都会问到的问题—什么是流程自动化?并对流程自动化领域的发展进行概述。
为了描述更加简洁,将流程自动化缩小到以下范围:
- 业务流程和数字流程:这些是从大多数组织了解的典型业务流程(例如客户入职、索赔清算、贷款发放、订单履行等),通常跨越两个不同的端到端系统。如今,“数字化流程”一词似乎很受欢迎,因为“业务流程”一词通常被认为是过时的说法。
- 集成流程:集中于系统或服务集成的流程,例如,在进行远程通信时协调微服务或保证一致性的流程。
其他流程自动化用例明显超出这个范围:
- 不受信任的参与者之间的流程:这是区块链技术发挥作用的领域。
- 基础设施配置或IT自动化(例如Ansible和Terraform):这是具有专用工具的独立领域。
- 持续集成/持续交付(例如,Jenkins、GitHub Workflows):持续集成(CI)/持续交付(CD)管道是软件工程中的标准流程,由标准软件实现自动化。
- 物联网(例如Node Red):物联网用例通常通过专用工具解决,可以将其归类为任务自动化。为了简单起见,本文对此不进行讨论。
现在有两种截然不同的数字或集成流程:
- 标准流程:当组织并不想通过流程实现差异化时,可以购买商业现成软件(COTS),如企业资源计划(ERP)、客户关系管理(CRM)或人力资源(HR)系统。在这种情况下,通常会根据软件来调整工作流程。
- 自定义流程:某些流程是组织特有的,因此需要根据组织的需求进行自定义。尽管不同组织的这些流程可能是相同的(例如,客户入职、订单管理、保险理赔等),但是组织设计和实施它们的方式是独特的,这有助于在其市场中区分这些流程。这使组织能够提高竞争力,更有效地开展业务,降低成本,增加收入,并转变为更加数字化的业务。
在自定义标准软件时,这两个类别之间有一些灰色区域。但由于在过去的糟糕经历,很多组织在这方面变得越来越谨慎。
因此针对组织中的每个流程分别做出决定。并且需要注意的是:没有正确或错误的决定,只是组织的的选择应该反映其业务策略。本文将重点讨论自定义流程。
自定义流程涉及构建用于流程自动化的软件。这是“构建软件的软件”, 可以大致分为两个方面(工具的性质和自动化的性质),如下图所示:
- 流程自动化关注自动化流程的控制流程。它着重于任务的顺序,而不是单个任务。任务自动化可以自动执行流程中的单个任务,例如通过与某些系统集成。
- 对开发人员友好的工具无缝地集成在典型的开发人员工具堆栈和流程中,但是为开发人员解决了特定于流程自动化的某些问题(例如,提供了流程状态的持久性、图形化的流程模型、流程模型的版本控制)。开发人员友好的工具需要软件开发才能构建解决方案。低代码工具允许非开发人员通过提供复杂的图形用户界面和向导来隐藏技术细节,从而实现自动化逻辑。这允许不同的角色来构建解决方案,但也限制了可能性,并需要采用专有的知识。
有了这两个维度,就可以将工具归入以下所述的主要存储区域中。
低代码任务自动化
低代码任务自动化的典型示例包括应用程序集成工具和机器人流程自动化(RPA):
- 应用程序集成工具(例如Zapier、IFTTT、Tray.io、Integromat等):应用程序集成工具可以在某些事件发生时执行操作,例如,在完成Trello插入时将新数据插入Airtable。其中一些工具超出了任务自动化的范围,还提供了基本的流程自动化功能(例如tray.io)。
- 机器人流程自动化(RPA)工具(例如UiPath):机器人流程自动化(RPA)工具可以在不提供任何API的原有系统中自动执行任务。这是关于屏幕抓取和模拟鼠标或键盘操作的,类似于Microsoft Office宏记录器。
低代码任务自动化工具非常适合单独解决简单的集成问题,并有助于消除人工集成工作,例如将数据从系统A复制到系统B。即时业务价值是机器人流程自动化(RPA)获得成功的原因。
但是,其自动化范围可能比较简单。需要注意的是,生成的解决方案通常未经测试、不成熟且难以维护。许多解决方案将重点放在成功的案例上,而忘记了例外情况,这些例外情况在生产中会意外发生,并且往往会被忽略,这会使解决方案变得比较脆弱。
开发人员友好的任务自动化
以对开发人员友好的方式自动化单个任务通常意味着不仅要利用软件开发,而且还包括以下方面:
- 集成框架(例如Apache Camel):集成框架使开发人员可以轻松完成某些任务,例如与文件系统、消息中间件和其他接口技术的通信。
- 批处理:自动执行单个任务的经典方法是使用批处理作业,该作业将这一任务应用于特定数据集中的每一行。
- 事件驱动的体系结构(EDA):组件可以对流程中的数据做出反应,而无需知道这些数据来自何处。其通用工具包括Apache Kafka之类的事件代理。
与低代码解决方案相比,开发人员友好型解决方案要求软件开发人员参与其中。另一方面,这些开发人员通常非常有效率,因为他们可以在已知的堆栈中工作。而且,所得到的解决方案通常更稳定,并且可以解决更复杂的问题。
逻辑链任务自动化
任务自动化工具无法实现业务流程。但是,一系列机器人流程自动化、集成任务或事件订阅可能会形成实现业务流程的逻辑链。这带来了两个挑战:首先,流程没有持久性,这使得很难确定任何实例的当前状态。其次,逻辑控制流不可见,这使得这些架构难以理解和维护。
有两类工具致力于提供对这些任务链的可见性:
- 流程挖掘工具:这些产品可以帮助组织了解如何使用大量原有工具实现流程自动化。通常,这涉及从这些系统加载和分析一堆日志文件、发现相关性以及映射流程。
- 流程事件监视工具:这些工具允许用户将事件映射到即时提供或发现的流程模型。与通常基于日志文件分析的流程挖掘不同,流程事件监视工具着重于摄取实时事件流,这可能是由事件驱动的架构产生的。
低代码流程自动化
流程自动化工具使多步骤流程的控制流程自动化。它们的关注重点不再是单个任务,而是更多地关注任务之间的相互作用。流程通常在本质上是长期运行的,这会导致对工具有着自己的要求(持久性、操作工具等)。
低代码工具旨在允许非开发人员实施这些流程。典型的工具类别包括:
- 传统业务流程管理套件(BPMS):调研机构Gartner公司现在将其称为“智能业务流程管理套件”(iBPMS),该领域的工具包括Pega和Appian。
- 集成平台即服务(iPaaS)工具:iPaaS产品提供了实现流程逻辑的基本可能性。示例包括Tray.io和Process Street。
- 机器人流程自动化(RPA)工具:机器人流程自动化(RPA)工具有时被滥用以使流程自动化,建议不要这样做。
其中一些工具确实可以帮助简单的流程实施自动化。如果组织是一家初创企业,则可能会熟悉一些典型的SaaS应用程序,然后使用iPaaS解决方案进行处理。但是,这些方法在复杂的业务流程或集成方案中是不够的。
人们经常发现,低代码产品通常无法兑现其承诺,而且技术娴熟的开发人员也无法自己实现核心流程。因此,组织不得不要求IT部门指派专业的软件开发人员来完成这项工作,但这些方法在复杂的业务流程或集成场景中并不适用。
开发人员友好的流程自动化
有一些工具可以使软件开发人员有效地实施流程自动化项目:
(1)开发人员友好的工作流引擎、流程编排器或微服务编排器,有以下三种形式:
- 开源产品:具有企业版的轻量级工具,可以从供应商处获得,例如Camunda、JBoss jBPM或Flowable。拥有一个活跃的开源项目和社区,再加上依赖于收入流的供应商的保证,是一个很好的组合。
- 软件即服务(SaaS):提供了许多工具作为托管服务,或者只是SaaS形式(例如AWS Step Functions或Google Workflow),或者是现有开源产品(例如Camunda Cloud)的托管版本。需要注意的是,目前大多数云计算提供商都将重点更多地放在集成上,而不是业务流程上。
- 开源项目:大型组织通常会开发自己的工具栈,其中包括工作流引擎。其中一些工具是在开源许可下提供的,但是没有任何支持、保证或影响路线图的可能性。这些工具是针对环境的,因为它们是针对某个特定组织而不是针对整个市场而构建的。其典型的例子是Netflix Conductor和Uber Cadence。
(2)数字流程自动化(DPA):该类别基本上扩展了业务流程管理套件(BPMS)类别,以在数字化转型的背景下专注于数字端到端流程。这一广泛类别的界限并不清晰。这里概述的所有类别的供应商出于营销原因要求实施数字流程自动化(DPA)。鉴于数字化和端到端流程自动化本质上是复杂的,因此将这一类别归入对开发人员友好的流程自动化中。
有时,还会在流程自动化项目的场景中评估没有特定流程自动化支持的工具类别。数据管道就是一个很好的例子。由于它们通常可以图形化建模,因此很多人将它们用于流程自动化。
(3)数据管道(例如Apache Airflow、Spring Cloud Data Flow):这些工具具有不同的重点,因此缺乏流程自动化用例的重要功能,例如对诸如循环之类的控制流结构的支持。此外,这些工具没有自己的持久性实现,因此流程实例的状态是流经管道的数据项。
当然,也可以简单地对所有内容进行硬编码以使流程自动化,从而产生自定义的工作流引擎,应该避免使用它。
结论
考虑到上述想法,专家绘制了下图,列出了本文介绍的主要工具类别以及一些示例性工具。
因此,对开发人员友好的工作流引擎是使复杂的自定义流程自动化的合适选择。低代码方法也有其优点,通常是在不需要太多管理的环境中自动执行单个任务或简单流程的时候。
原文标题:Understanding the process automation landscape,作者:Bernd Ruecker