上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5 长期运行的流程
流程自动化的应用范围很广。虽然它通常和企业级的端到端业务流程有关,如订单履约、开户或理赔结算。但它在诸如服务编排、服务集成的技术用例中也有帮助,正如上面提到的信用卡例子。
所有这些例子都有一个共同点:它们包含长期运行的流程。换句话说,这些流程需要几分钟、几小时、几周甚至几个月才能完成。处理长期运行的流程正是工作流引擎擅长的。
这些流程需要等待某个事件发生。例如,其他组件做出反馈,或者单纯地等人做一些事情。这就是为什么工作流引擎需要持久化状态。
从另一个视角看每当逻辑跨越边界,就需要长期运行的行为。边界有很多不同的含义。如果你调用远程服务,就跨越了本地程序、本地操作系统和本地计算机的边界。这时你就有责任处理服务的可用性或时延增加之类的问题。如果你调用其他组件或资源,就跨越了技术事务的边界。如果你集成了来自其他团队的组件,就跨越了组织边界,这意味着你需要与这些人进行更多协作。如果你调用了外部服务,例如,信用卡机构的外部服务,就跨越了自己公司的边界。如果你的流程包含了人,则跨越了可自动化任务与不可自动化任务之间的边界。
管理这些边界不仅需要有长期运行的能力,还需要仔细斟酌任务的顺序。认真讨论故障场景及处理它们的正确业务策略。你还可能会面临有关数据安全、合规性或审计的监管要求。这些要求进一步促进了图形化流程的可视化,第11章会深入讨论这一点。对于这些要求,技术人员可以与对应的非技术人员进行协商,以解决面临的挑战。
现代系统具有越来越多的边界,因为系统越来越倾向于从一个整体转向一些细粒度的组件,如服务、微服务或函数。系统通常是云上购买的服务和内部的应用程序混合而成。