[原创]山寨的工作流引擎设计
山寨工作流引擎设计核心思路-初步实现
1: 使用设计器设计出流程图
2: 流程图生成XML文件
3: 将XML文件导入数据库
4: 编写针对流程处理的数据库SQL原子操作方法(函数)
5: 编写一个基于广度优先遍历算法的流程引擎核心算法(最简单的实现方式,参考清华大学-数据结构教程-第七章 图的遍历)
6: 将第四步中实现的SQL原子操作方法装配(嵌入)到第五步中编写的算法模块中
7: 使用装配好的遍历算法对数据库中的流程数据进行调试,保证流程图的每个节点都被访问到,且顺序正确,且只被访问一次
在完成上面的七个步骤之后,就可以进行下列进一步的工作(下篇博文中继续介绍)
这就是我们过去几年中实现工作流的思路,很简单,但是很有效,作为低成本的工作流产品的设计思路,可以再很多领域和采用复杂设计的流程系统进行竞争
但是在这个过程中,我们仍然要面对很多问题,比如说流程图的并行和分支的处理,条件汇聚的处理等问题,请参考我的博客中的其他文章
请对这个设计思路感兴趣的朋友,下载JWFD的相关资料和代码,我可以这样说,如果一个懂JAVA和数据库SQL操作的初级程序员,完全可以在1周内基本理解这个过程并且在1个月内开发出具有自己特色的工作流模块和产品出来(但是...至少还是要懂点算法)
1 楼 comsci 2009-12-11 经过对V0.96版本的设计思想进行梳理,我总结了下,这个设计的体系慢慢浮现出来
其特点是工作流引擎的核心层次大体分为三层结构,分别是
SQL层
算法表达层
运行控制器层