流程, 只有涉及到顺序地处理任务,就会形成流程。在工厂,会用固定的流水线来固定流程;在政府中,有一套默认的处理事情的规则。
如果一个流程是固定的,那么无论怎么规定都无所谓,即使让大家默认记住也可以,但如果一个流程需要适应动态变化的需求,那么如果每个人都需要知道流程的细节,大家就会疯的。比如:网购物流,如果要你知道 商品要流过那些站点,并且这些站点是不断变化的,我估计你也得疯。
解决办法就是:不了解物流的细节,我就在需要认为介入的时候点击一下【确认收货】等按钮,具体怎么流转才不管呢! 这就得有人专门研究物流了,怎么样的物流能提高效率。 也就是说,将 复杂变化多端的部分,交给专门的一些人来完成,其他人就不需要了解细节,社会分工就这么形成了。
软件就是:现实工作在网络上载体。
在流程处理方面,Java有Activiti组件专门处理流程。 Activiti 是基于 BPM 的。据说是 BPM的开发者,完成后跟领导意见不合,跳槽别的公司,利用开源的BPM继续完成了Activiti,证明他是对的。现在市场上大部分都使用Activiti了,很少有人直接使用BPM。
传统软件完成流程的方法:
- 定义一套状态码 1234567
- 首先查某个状态码的数据,然后处理,处理后 通过if else 判断下一个状态码
评价:
可以很快的建立流程,可以应付固定流程需求
需求:(思考一下怎么完成)
- 需要动态加签,比如:为了可以申请到巨款, 采购是就会招几个大领导审批,然后财务才能批款。 有时候能需要 三个领导,有时候需要四个
- 流程变动,代码需要修改,原始数据怎么处理
- 如要给用户自定义流程,定义好后,直接可以使用
- ……
上面几个需求很常见,传统方法要么很难完成,要么就不可能完成。
结论:
使用Activiti来管理流程,下面 会通过具体示例来认识Activiti,尽请期待