之前做了一个简单的工作流引擎,干完了活做点理论总结。
项目见
工作流应用---理论基础篇、
工作流应用---概念、模型这个工作流引擎主要是根据项目需求和网上看到的一些文章提到的概念做出来的,估计比较野路子,想着把概念和名词向大师靠拢。
过了年刚来不忙,这几天抽空看了两本工作流方面的书,《工作流管理技术基础》和《工作流管理:模型、方法和系统》,讲的比较细致、对基础概念讲的很清楚,就是书老了点。
书中对XPDL标准做了详细描述,对新出的BPEL没有涉及。
我自己项目中用到的概念和大师们基本一致,大方向不错,看来网上找到的那几篇文章挺靠谱的,当时应该随手整理出来。
工作流引擎做的比较简单,没有使用主流的petri技术,只支持项目需求更负责的需求就够呛了,回头有空再改一版。看了书才发现有这么多种模型实现方法早都有人研究很多年了。
这两本书在超星网站都能找到电子版。
IPO模型,过程中的每一个活动都由输入(I)、处理(P)、输出(O)三部分组成。
理论来自《科学管理》提出的科学管理原则:
一个组织的工作可以描述为一系列的任务,每个任务都是工人们具体、严谨的活动过程,管理就是在一定的计划下让这些任务以最优的方式进行。
常用的工作流模型:
1.基于活动网络的过程模型
组成模型的元素包括过程、活动、模块、控制连接弧、数据连接弧和条件。
以活动作为构成过程的基本单元,以连接弧体现过程逻辑,可以灵活的实现企业经营过程的建模,我做的那个基本上采用的就是这种模型。
过程:为完成目标而定义的一系列步骤;
活动:过程中的步骤;
模块:跟过程的概念类似;区别在于是否可以多次重复使用
控制链接弧:定义两个活动间的执行顺序
数据连接弧:定义两个活动间的信息流
条件:定义过程执行中的约束
定义在控制连接弧上的条件:转移条件
活动可以执行和活动被执行:开始条件、结束条件。
优点:
从系统分析的角度来看,有利于通过过程模型提取功能视图和信息视图、便于深入分析
从系统实现的角度来看,控制流管理和数据流管理分离,是不同性质的流管理独立。
2.事件驱动的过程链模型
兼顾模型描述能力强和模型易读两个方面。
业务事件、业务功能、控制流、逻辑操作符、信息对象、组织单元
3.基于语言行为理论的工作流模型
IPO模型对于观察信息和物流的流动过程比较合适,但不利于不同角色间的委托和承担行为。
语言行为理论则侧重与解决,数据、物、人协作中IPO模型对人直接协作描述不足的情况。
听上去不错,实际中没有看到用这种模型的,google了一下相关资料,还只是一个理论在软件领域用来进行协作过程建模的很少。
简单了解一下先,等大师们研究明白了咱再学习。
4.基于petri网的工作流模型
这个东西看着挺复杂的,不过好多人都说是好东西,研究一下先。
找了两本有关petri的书,都太理论化看不懂。还是《工作流管理:模型、方法和系统》讲得比较通俗。
petri基本概念很好理解,不同于过程化分析,更接近面向对象的思想。看起来我在这个项目中采用的分析方法更接近与petri,原来俺们朴素的想法跟大师很接近哦。
一般的面向对象分析更侧重与静态结构,在动态模型部分描述的都不够清楚。petri在动态过程方面感觉很细致有效。据说还是经过严格熟悉验证的分析方法,不过那些公式没看懂,太费劲。分析时用petri分析建模方法就可以了。
.....