[] 推动流程运行的动力是什么?

         一个流程要运转起来,是什么在推动它呢? 推动它允许的发动机是什么?   我们来总结一下(由简单到复杂)
 
     人工动力源:   每个节点对应的操纵人的控制操作,比如说一个鼠标点击动作,好像是人用自己的手在推动一个轮子滚动一样,鼠标动一下,流程就前进或者后退一步
 
     无数据程序动力源:   无数据作用于流程的程序推动,目前看来就是对流程图的拓扑结构进行的广度优先遍历算法的遍历推动方式,或者类似遍历的方式,这一个方式应该还有很多衍生体,这种方式的特点是流程一旦开始启动遍历,就会从开始节点一直运行到结束节点,中间的运行过程缺乏人工的干预和控制机制
 
     数据驱动的程序动力源: 目前很多厂商使用表单(多数据结构表格)作为流程运行过程中的嵌入式数据模块,通过表单中的数据对流程的运行进行控制,用户通过对表单中的表格进行数据的录入和修改,使外部数据进入流程系统,并对流程的运行产生控制机制
此外,如果在流程系统中加入了脚本语言,那么数据就会成为脚本语言的参数,程序员通过预先在流程中嵌入脚本语言的运算代码,并通过调用表单中的数据,经过运算以后,产生对流程进行控制的参数,这一过程就相对于前面的方式要来得复杂些,大家可以参考我前面写的文档 -- jwfd工作流系统-嵌入式公式结构说明
 
    全自动数据驱动的程序动力源: 这种动力驱动流程运转的方式是目前还处在研究状态的一种方式,简单的讲就是将前面提到的遍历算法和数据驱动方式进行结合,形成一个全自动的数据控制流程运行的机制,这种机制使得流程在运行过程中,很少需要人工的干预甚至可以完全自动化全过程运行,但是为什么这种机制会是全自动的呢?
   我是这样理解的,对流程进行遍历,相当于一种无控制的随意运动(发动机),好像是我们神经系统的自主运动,它本身是一种原始动力(一台发动机),但是这台发动机是相对无序运转的,遍历的过程就是按照流程的拓扑结构进行单向的运行过程,而真正的流程,特别是嵌入了数据和表单的流程,其运行的过程往往并不仅仅是这种单向的简单的按照拓扑结构的顺序来运行的过程,而是一个相对复杂的,有序和不确定性相结合的运行过程,甚至比火箭的控制还要复杂些,因为好像还没有导弹在发射之后,还会倒退到发射台,多次往复和迭代。。。。。而流程却是会这样运行的。。。。所以有必要将遍历运行这台发动机与表单数据(嵌入脚本)的控制相结合,简单来讲就是将一个发动机与一个计算机相结合,形成一个由表单数据控制的遍历算法来驱动的流程系统
   这样一来,我们就有一个相对完整的流程引擎的设计思路了。。。。。。。不过,有了发动机和控制器,我们还需要汽油和驾驶员,这样一台流程汽车才能够真正的跑起来
 

猜你喜欢

转载自bd2007.iteye.com/blog/1155677