浅谈传统工作流引擎的设计

来源:互联网 发布:取出记录集数据 vb 编辑:程序博客网 时间:2024/05/17 23:06

 传统工作流引擎的设计,可以从静态结构,动态结构,耦合结构三个主要方面进行构思:

1.静态结构:工作流活动持久化后的数据结构,决定了工作流引擎的驱动算法;

2.动态结构:工作流引擎在内存中的对象图结构,决定了工作流引擎的驱动能力;

3.耦合结构:工作流引擎和业务流的耦合方式,决定了工作流引擎的应用能力;

下面就以上三个方面进行详述:

1.静态结构:工作流活动持久化以后(以数据库持久化实现为例),表现为数据库里的几条纪录,诸如:当前工作流实例,引用的模板,当前活动,当前执行人等等,存储的数据结构决定了驱动算法的实现方式和活动关联结构的复杂程度;

2.动态结构:工作流引擎将持久化后的活动加载到内存并通过模板定义恢复为一个完整的对象图,在当前活动之前/之后插入了一系列的顺序结构,可以实现活动流向控制,活动执行前后事件触发等系列驱动功能,动态结构的实现要充分利用开发语言的高级特性, 诸如:反射,动态编译,脚本宿主等,以增强工作流引擎的驱动能力;

3.耦合结构:工作流引擎运行在业务流之下,对于业务流的驱动采用接口与实现分离, 流程驱动与数据分离的方式,所谓接口与实现分离就是工作流引擎通过接口来屏蔽应用的差异,流程驱动与数据分离是指工作流引擎控制的是业务的驱动(包括在其上构建的系列事件集合),业务的数据存取由各应用自行实现,诸如:业务对象的定义标准(引擎提供),业务对象的具体实现(应用提供)等.

推荐:microsoft workflow foundation的设计思想曾经,现在,未来,都会让我受益良多.非常值得大家去学习.