文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。
作者 | Carole-Ann Berlioz
译者 | Teki.D
MarkNorton 评论了我的算法文章,并启发我写了这篇关于 BPM 和业务规则的后续文章。
自上世纪90年代末以来,一直存在一个争论,到底应该实施业务流程系统还是实施业务规则系统……这么多年过去了,似乎辩论双方已经明确了两种系统的定位,明确了两种系统的协作方法,但我看到很多人对此问题依然是困惑的。
只用BPM系统?只用 BRMS系统?
BPM系统供应商主张,业务流程系统既能管理路由分支也能管理策略规则。BRMS系统供应商则表示,规则服务既可以定义策略逻辑(即规则)也可以定义策略包的执行顺序(即规则流)。简而言之,双方都认为只需要使用一种工具即可,但在使用哪一种上意见不一。
只用BRMS系统的问题
反对“只用BRMS系统”的观点,并不需要太多论证……如果您手头的流程需要运行很长时间,不是那种即时运行、即使响应的同步交易时,BRMS的规则服务将给您带来麻烦。长时间运行的事务会在某个地方暂停并挂起。它可能是在等待人工的输入,或者是对机动车辆管理局或信用局等远程系统的异步调用,或者仅仅是一个失败的调用,正停在那里等待您的处理。您会希望此类事务在继续处理之前,能正常地、耐心地等待。
BRMS系统的问题在于,BRMS的规则服务不适合耐心等待。为了实现耐心等待,某些软件工程师会将规则服务部署为有状态的服务。经过小心设计,可以像状态机那样使用无状态服务- 在无法使用BPM的情况下,我们也曾经这么做过几次。当然,不是很多人喜欢这种设计。
这里有一个类比可以帮助大家理解问题。环法自行车赛中充满了决策- 谁能得到黄色领骑衫?谁会得到波尔卡圆点衫?服用多少兴奋剂才算过量?也就是说,整个比赛是一个长时间运行的流程(环法自行车赛需要进行20多天)。您可以使用规则服务,基于业务规则来判断下一段赛程前往哪里,但规则服务对系统奔溃是无能为力的,您必须精心设计系统,持续地归档比赛进程数据。
只用BPM系统的问题
BPM系统在调度服务和系统方面做得很好。BPM系统可以很好的处理长时间运行的事务。BPM的困难来在于流程中包含的各种策略。
当策略变得有些复杂时,如果使用BPM,您会在流程中不停的添加分支。这没什么大不了的。直到它变得根本不可管理:太多的链接,太多的节点。在一堆意大利面条式的链接中,BPM展示的可视化流程毫无意义。
伦敦著名的交通信号灯就是一个完美的例子。一个交通信号灯非常简单,就连我三岁的孩子也早就明白了: 绿灯走,黄灯减速,红灯停。问题是,随着复杂性的增长,当您面对几十个“简单”的交通信号灯时,您就会感到困惑。当简单的节点和链接成倍增加以创建一个像伦敦的交通信号灯一样混乱的网格时,也会发生同样的事情。
诀窍是找出界限在哪里
您需要找到流程和策略之间的平衡点。仔细思考以下部分:
-
整个过程会涉及到哪些系统和人员,会有哪些关键节点和里程碑
-
哪些决策会随着法规或竞争战略的变化而不断变化
它们会以不同的速度变化,会有不同的约束条件,会属于不同的利益相关者。当您全身心投入工作,仔细思考以上内容,找出界限,找到平衡点并不那么困难。
原文链接:
https://www.sparklinglogic.com/business-rules-in-or-out-of-bpm/
风鸟企业负面信息免费查询平台:http://www.riskbird.com
星标我,每天多一点智慧