[原创]推动流程运行的动力是什么?
2011-08-08 11:11
309 查看
一个流程要运转起来,是什么在推动它呢? 推动它允许的发动机是什么? 我们来总结一下(由简单到复杂)
人工动力源: 每个节点对应的操纵人的控制操作,比如说一个鼠标点击动作,好像是人用自己的手在推动一个轮子滚动一样,鼠标动一下,流程就前进或者后退一步
无数据程序动力源:
无数据作用于流程的程序推动,目前看来就是对流程图的拓扑结构进行的广度优先遍历算法的遍历推动方式,或者类似遍历的方式,这一个方式应该还有很多衍生
体,这种方式的特点是流程一旦开始启动遍历,就会从开始节点一直运行到结束节点,中间的运行过程缺乏人工的干预和控制机制
数据驱动的程序动力源: 目前很多厂商使用表单(多数据结构表格)作为流程运行过程中的嵌入式数据模块,通过表单中的数据对流程的运行进行控制,用户通过对表单中的表格进行数据的录入和修改,使外部数据进入流程系统,并对流程的运行产生控制机制
此外,如果在流程系统中加入了脚本语言,那么数据就会成为脚本语言的参数,程序员通过预先在流程中嵌入脚本语言的运算代码,并通过调用表单中的数据,经过运算以后,产生对流程进行控制的参数,这一过程就相对于前面的方式要来得复杂些,大家可以参考我前面写的文档 -- JWFD工作流系统-嵌入式公式结构说明
全自动数据驱动的程序动力源:
这种动力驱动流程运转的方式是目前还处在研究状态的一种方式,简单的讲就是将前面提到的遍历算法和数据驱动方式进行结合,形成一个全自动的数据控制流程运
行的机制,这种机制使得流程在运行过程中,很少需要人工的干预甚至可以完全自动化全过程运行,但是为什么这种机制会是全自动的呢?
我是这样理解的,对流程进行遍历,相当于一种无控制的随意运动(发动机),好像是我们神经系统的自主运动,它本身是一种原始动力(一台发动机),但是这台
发动机是相对无序运转的,遍历的过程就是按照流程的拓扑结构进行单向的运行过程,而真正的流程,特别是嵌入了数据和表单的流程,其运行的过程往往并不仅仅
是这种单向的简单的按照拓扑结构的顺序来运行的过程,而是一个相对复杂的,有序和不确定性相结合的运行过程,甚至比火箭的控制还要复杂些,因为好像还没有
导弹在发射之后,还会倒退到发射台,多次往复和迭代。。。。。而流程却是会这样运行的。。。。所以有必要将遍历运行这台发动机与表单数据(嵌入脚本)的控
制相结合,简单来讲就是将一个发动机与一个计算机相结合,形成一个由表单数据控制的遍历算法来驱动的流程系统
这样一来,我们就有一个相对完整的流程引擎的设计思路了。。。。。。。不过,有了发动机和控制器,我们还需要汽油和驾驶员,这样一台流程汽车才能够真正的跑起来
人工动力源: 每个节点对应的操纵人的控制操作,比如说一个鼠标点击动作,好像是人用自己的手在推动一个轮子滚动一样,鼠标动一下,流程就前进或者后退一步
无数据程序动力源:
无数据作用于流程的程序推动,目前看来就是对流程图的拓扑结构进行的广度优先遍历算法的遍历推动方式,或者类似遍历的方式,这一个方式应该还有很多衍生
体,这种方式的特点是流程一旦开始启动遍历,就会从开始节点一直运行到结束节点,中间的运行过程缺乏人工的干预和控制机制
数据驱动的程序动力源: 目前很多厂商使用表单(多数据结构表格)作为流程运行过程中的嵌入式数据模块,通过表单中的数据对流程的运行进行控制,用户通过对表单中的表格进行数据的录入和修改,使外部数据进入流程系统,并对流程的运行产生控制机制
此外,如果在流程系统中加入了脚本语言,那么数据就会成为脚本语言的参数,程序员通过预先在流程中嵌入脚本语言的运算代码,并通过调用表单中的数据,经过运算以后,产生对流程进行控制的参数,这一过程就相对于前面的方式要来得复杂些,大家可以参考我前面写的文档 -- JWFD工作流系统-嵌入式公式结构说明
全自动数据驱动的程序动力源:
这种动力驱动流程运转的方式是目前还处在研究状态的一种方式,简单的讲就是将前面提到的遍历算法和数据驱动方式进行结合,形成一个全自动的数据控制流程运
行的机制,这种机制使得流程在运行过程中,很少需要人工的干预甚至可以完全自动化全过程运行,但是为什么这种机制会是全自动的呢?
我是这样理解的,对流程进行遍历,相当于一种无控制的随意运动(发动机),好像是我们神经系统的自主运动,它本身是一种原始动力(一台发动机),但是这台
发动机是相对无序运转的,遍历的过程就是按照流程的拓扑结构进行单向的运行过程,而真正的流程,特别是嵌入了数据和表单的流程,其运行的过程往往并不仅仅
是这种单向的简单的按照拓扑结构的顺序来运行的过程,而是一个相对复杂的,有序和不确定性相结合的运行过程,甚至比火箭的控制还要复杂些,因为好像还没有
导弹在发射之后,还会倒退到发射台,多次往复和迭代。。。。。而流程却是会这样运行的。。。。所以有必要将遍历运行这台发动机与表单数据(嵌入脚本)的控
制相结合,简单来讲就是将一个发动机与一个计算机相结合,形成一个由表单数据控制的遍历算法来驱动的流程系统
这样一来,我们就有一个相对完整的流程引擎的设计思路了。。。。。。。不过,有了发动机和控制器,我们还需要汽油和驾驶员,这样一台流程汽车才能够真正的跑起来
相关文章推荐
- 推动流程运行的动力是什么?
- redis 持久化详解,RDB和AOF是什么?他们优缺点是什么?运行流程是什么?
- [原创]java WEB学习笔记70:Struts2 学习之路-- struts2拦截器源码分析,运行流程
- 第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览(原创)
- servlet的web.xml配置有什么意义,运行时是什么流程?
- ASP.NET页面运行机制以及请求处理流程
- 原创:Erlang gen_udp:open 流程详解
- 打通spark内幕运行内幕机制循环流程
- 那是什么进程 —— dwm.exe是什么? 它为何运行?
- spark核心术语和运行流程
- 庖丁解ASP.NET MVC内部运行流程
- Struts2运行流程分析
- 高通Android camera运行流程【转】
- 【原创】源智工作流流程定义过程描述语言
- [原创]什么是兼容性测试?
- spydroid源码分析(二):spydroid运行流程
- 第5章4节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 命令行参数解析(原创)
- Himi 原创 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
- ASP.NET页面运行机制以及请求处理流程
- Linux启动运行流程