关于流程引擎
一. 使用背景
CTO说要有流程引擎,然后就有了流程引擎
2015年的时候,因为是独子,家里不许我在其他城市找工作,我偷偷的跑上海面试,正巧赶上了某厂大规模扩张,原有的人事系统吃不消,我有做人事系统的经验,狗屎运,第一次面试就拿到大厂offer。后来在家里很嚣张也有这部分原因,好多人跟我说上海工作不好找,“蛤?你再说一遍?”。
当时进部门的时候,其实是比较疯狂的,一个部门就十几个人,除了3个leader,11个产品经理,两个程序员,对,两个,包括我。当时用的是某友oa系统,我们的方案是自研一套系统把OA代替掉。
OA系统在我来说最大的难度就是流程引擎部分,就像物流一样,从这个点把信息运到下一个点,如何让这些信息根据我定义的方式运送到正确的地方,这是个问题,这里,我把核心问题抛出来,流程引擎的核心功能,就是把一个信息从一个点按照定义好的规则正确的传输到下一个节点。
大厂毕竟是大厂,容易抱大腿,后来我找到了我的良师益友,frank。两个人一起开始搞OA系统,公司内部编号ACT。想想这名字真是low
二.使用前的调用
原则
开始调用开源的流程引擎,因为大厂主要是使用java,.net、php、python之类直接不考虑,也找不到合适的。
JBPM4.4
Jboss的产品,开源,重,代码相当多,复杂,文档多。jBPM项目从设计上就没有考虑“回退”、“取回”、“会签”、“委派”等业务场景。
JBPM4.5+
JBPM4.5是Jboss的产品,开源,是jbpm作者和jboss闹掰以后,jboss自己做的一套东西,个人感觉Jboss不尊重开源作者的成果,那么这个东西也没什么可以尊重的,后来发现的确,没有activity好。
Activity
jbpm作者和jboss闹掰以后,单飞干的一套新的流程引擎,的确牛逼,有好多新的东西,但还是逃不开重的本性,复杂。
Snaker
中国人写的流程引擎,文档比较少,但是代码也少啊,核心代码7000行,读一个礼拜顶多了吧。看到这里,我觉得够了,我特么就喜欢看源码,哈哈哈。