企业级应用开发架构的现状与趋势 - Part 3
目录
我们现在有一堆可以独立部署工作的应用,但是对于客户而言,似乎我们目前为止什么都没有做,因为作为一个企业级应用,真正直接给用户带来价值是那么能够产生利润的业务流程,比如对于保险系统,Sales流程中有一个流程叫做报价,以车险为例,基本上就是收集一些投保人的信息,一些车辆的信息,然后系统自动给你提供多份报价,如果你确认一份报价,将会进入签订保险合同的流程,如果你不满意报价,可以联系代理人请求人工报价。
一个上述的业务流程映射到系统中需要调用多个模块的API,这个过程可能不是线性的,中间可以有分支,有工人任务(需要人工介入才能继续)。
这个时候你可能会说上述这些难道我不能用Java代码来实现吗,为什么还要搞一个BPM的东东。你说得对,完全可以!!!如果你的项目永远不需要上生产,不需要维护的话。
真正上生产的项目,运营会问你,我有没有办法监控有多少个询价流程在进行,有多少进入了人工报价流程,每个人工报价的流程任务从生成到完全耗费了多少时间等等问题。这个时候你发现这里面的需求其实对于大多数业务流程都是相似的,为什么不做一个统一的解决方案呢?
BPMN 2.0
BPMN是OMG的一个规范,用来描述业务流程的结构,注意BPMN 2.0是一个很大很大的规范,即使是目前最新的Java BPM引擎比如Activiti或者jBPM都没有完全实现其中的所有结构。
与SOA的关系
SOA架构提倡Micro-Service的概念,BPM把这些Micro-Service全部组织起来,并且提供诸如流程监控,持久化,历史,人工任务管理等等必要的功能。
在一个SOA架构的系统中,BPM能够最大限度的发挥它的组织和协调大量Micro-Service的能力,并且给运营提供大量的信息,以帮助他们分析当前流程的弱点,并最终达到改善业务流程,提升企业的运营效率的目的。