除了BPM其他实现选项的局限性

除了BPM其他实现选项的局限性

开发人员每天使用许多常见的方法来自动化流程。每种实现都有自己的缺点,但都可以采用工作流引擎。

1、硬编码的流程

之前文章详细讲解过,这里不解释

2、批处理

批处理是自动化过程的一个非常流行的选择。让我们首先理解什么是批作业,以及如何使用一批批作业自动化流程。你有没有在酒店里搭乘过拥挤的电梯?这在很大程度上定义了什么是批处理作业看起来像。所有的物品(在这里是你)必须等到电梯到来然后,所有的人都挤在电梯里进行处理(在这里案例,提升到不同的楼层)。如果你选择了摩天大楼酒店,你甚至可能要换电梯,所以之后第一次成功的批量作业(搭乘电梯),你必须排队等待下一批作业的工作。如果有人使用紧急停车,机舱内没有人会离开。在这个比喻中发生的真正过程是你从酒店入口移动到您的房间,它是由多个批处理作业实现的。一个单一的工作不真正了解整个流程,即使一些聪明的架构师知道

想想去你房间的整个过程。

这个比喻比典型的IT批处理作业更友好。电梯会对您按下一个按钮作出反应,因此您的批处理作业运行的等待时间相对较短。大多数现实生活中的批处理作业是受时间控制的;假设有多部电梯,电梯A可以在早上8点上升,电梯B可以在早上9点上升,以此类推。在这种情况下,整个旅程可能真的需要很多时间。如您所见,一个批处理作业只关注流程中的一个活动,但是

整个过程由连续的多个批处理作业实现。批处理是实际上与实际过程正交

 

上图显示了一个实际的批处理示例。顾客在线请求更新他们的信用额度。这不是马上处理的,这

称为联机处理,但它在队列中等待,直到下一批运行,通常在一天的特定时间处理。然后,所有的项目等待这批都是一次性加工的。批处理是一种非常流行的方法,因为这是计算机最初创建时的工作方式。起初,计算机一次只能运行一个程序,从磁带等顺序存储器中读取数据。即使在今天,大型机仍然为批处理进行了优化,可以处理大量的数据即使是在一个事务中,数据也是非常高效和快速的。但这些正交批次在过程自动化方面有严重的缺点:

1.       批处理给单个工作单元增加了处理延迟,从而降低了处理速度Down进程周期时间。虽然这种行为在当时是可以容忍的寄信,它不再满足客户的期望在时代智能手机。一些组织试图通过更多地运行批处理来减少延迟通常,这可能导致下一个批处理作业在前者已经结束,导致各种奇怪的并发问题。

2.       失败处理变得更加困难,原因有三。首先,一个错误通常可以停止整个批处理作业,并不是所有的批处理作业都可以从确切的位置重新启动他们破产了。这不仅导致所有项目的额外延迟,而且可能导致双重处理。其次,失败不会暴露任何上下文。一个操作员可能只是看到批处理作业中的一个失败和导致失败的记录。但是操作者不知道这条记录是如何到达那里的,为什么它包含奇怪的数据,该记录下游实际会发生什么,等等。第三,通常不清楚如何清理失败的批处理作业并恢复到恢复一致性的原始状态。简而言之:操作人员不知道整体的过程。这使得分析或修复问题变得非常困难。

3.       进程是不可见的,因为它隐藏在批处理作业之间的连接中。公司需要投入大量精力来进行批处理调度,以确保他们按正确的顺序运行。他们必须通过考古来了解这一过程。整个结构变得脆弱而难以改变。

 

许多企业开始了“非批处理计划”,即他们开始逐步淘汰批处理处理要避免这些缺点。例如,我最近看到一辆大型汽车保险公司安斯公司开始替换一些批量工作的合同公司帐户的更新。他们设计了一个端到端流程整个更新过程,并开始了车队内所有合同的子流程。通过做这样,他们降低了整体处理时间,但也减少了问题包围失败的批处理作业。只要有一份合同失败了,就整个更新没有暂停,会影响到其他客户。相反,它们在单个失败流程实例中创建了事件。这使得能够识别失败了,并继续这个过程

相关教程