1.基本概念
BPMN 业务流程模型注解(Business Process Modeling Notation)
OMG 物件管理组(Object Management Group)
2.为什么使用BPMN
对于流程控制,有一种比较初级的玩法是:在业务程式码里面加入 Status 栏位维护流程状态,流程负责的审批人可能也是Hard Code,这种玩法实现流程初级会比较快,但是长远来看会出现几个问题:
- 流程健壮性差,但凡出现人员变动,或者组织结构调整,就需要修改程式码,维护成本高
- 流程无法复用,当组织出现新的工作流程,又要重新写一套程式码,开发成本非常高
- 流程和业务程式码耦合,你中有我,我中有你(并不符合单一职责和解耦的设计原则)
BPMN:业务流程模型和标记法 工作流(Workflow)是对各个行业的流程进行抽象,例如电信、软件、制造、金融和办公自动化领域。为了给全部业务的参与者提供易于理解的标准标记法,由业务流程管理倡议组织BPMI 开发出了“业务流程建模标记法” Business Process Modeling Notation, BPMN。BPMI组织于2005 年并入OMG国际规范组织(Object Management Group),当前BPMN规范由OMG组织进行维护。
任何工具都有适用场景,如果把一个工具放到一个不适应的场景内,那么最终起到事倍功半的效果,流程引擎也不是银弹,它是一个对于复杂流程和抽象和复用工具,对于那些工作流程多且复杂的业务系统,合理的使用流程引擎会大大降低我们对于工作流的开发成本和时间,并且最终交付的效果也会比自己开发流程引擎要好上许多。
但是如果你的业务系统没有那么多的工作流程,或者只有很简单的状态从A -> B 的转移,那么引入流程引擎显然是大馬拉小車,费时费力不说,而且会造成简单的需求开发起来很麻烦,拉长开发周期时间,最终交付的效果也未必很好。所以选择合适的工具,就成了程式设计师最重要的选择。
3.总结
- 自行研发流程,把流程和业务耦合不仅导致程式码开发、修改成本高,而且流程偏定制开发,无法复用。
- 通过流程引擎,可以以极低的成本,快速实现业务工作流,提高开发效率,而且久经生产考验的流程引擎,也比任何人从0 开始写流程要可靠的多,流程引擎的功能并没有多特别,都可以通过逻辑程式码实现的,流程引擎的核心功能在于高质量的复用,设计层面的解耦(设计思想,语言和技术栈无关)
- BPMN2.0 是行业规范,遵循行业标准,有众多成熟工具可以使用,例如bpmn 流程设计工具等等……系统需要实现的工作流越多,使用工作流的收益就越大
- 流程引擎不是银弹,它只适用于工作流程多且复杂的大型业务系统,如果是流程逻辑简单的业务系统,那么不建议使用流程引擎
4.BPM引擎演进
image.png4.参考资料
https://iter01.com/609118.html
https://blog.csdn.net/luo15242208310/article/details/122648136
网友评论