流程矩阵模型中的基本元素是什么?

   一个传统的矩阵是这样的

 

                             | 0  0  1   0   1 |

                             | 1  1  0   0   1 |

                             | 0  1  1   0   1 |

                             | 0  0  1   1   0 |

                             | 1  0  0   1   1 |

 

 

    而在流程矩阵中每一个元素的位置代表不同的意义,元素为1表示这个位置有流程的拓扑连接,为0表示没有拓扑连接,具体的定义请参考我这篇文章   JWFD工作流引擎设计--简单矩阵建模与应用(初步讨论)   链接是 http://comsci.iteye.com/blog/1188482   ,还有另外一个朋友写的文章“ 土制状态机在工作流引擎中的应用”  链接是  http://ahuaxuan.iteye.com/blog/505124

 

 我的思路大概和“土制状态机在工作流引擎中的应用”这篇博文的作者有点类似,既都认为普通的二维矩阵的元素无法直接表达出流程的节点及其工作状态,需要采用一个包含多个数值或者变量的数组来替代简单的数字元素,既上面的元素1必须变换为一个数组X,这个数组X中包含至少有两个数值型的变量,如X(a,b),而a和b分别代表什么呢?

 

  事实上,如果用矩阵来表示一个流程图,矩阵中的元素仅仅是表达的流程拓扑图中的连接线段,既是如下图表示的那种情况,矩阵中的元素1表示的是1-1和1-2节点之间的连接线,而不是1-1节点或者1-2节点本身

                                                     


那么前面的问题X(a,b)中的a,b就需要用来表示节点1-1和1-2的运行和处理状态,这样我们就构造出一个具有两个存储层次的流程矩阵数据结构

 

 第一个存储层次   简单矩阵A,这个矩阵仅仅存储的是整个流程图的拓扑结构,既仅仅存储了一个流程图的所有连接线段及其之间的连接关系

 

 第二个存储层次   矩阵中的元素X(a,b),在一个流程矩阵中如果存在这一一个元素,那么就表示流程图中有这么一个连接线段,而这个连接线段的两端的节点1-1,1-2的运行和处理状态,就分别用变量a,b来表示,比如说节点处理状态可以用0未处理,1正在处理,2处理完毕这三个状态值来表示,那么矩阵中用来存储节点状态的数组X就可以直接表示为(0,0)或者(0,1),前者表示这个连接线两端的节点的状态分别为(未处理,未处理),而后者表示(未处理,正在处理),这个可以根据流程实际运行的状态对其进行赋值操作和查询操作。。。。。

 

 我们就构造一个如下图所示的流程矩阵(随便举的一个例子,并非实际流程图)

 

     | 0 X  0  X  0 |

     | X 0  0  0  X |

     | 0 X  X  0  0 |

     | X 0  0  X  0 |

     | X X  0  0  X |

 

 其中的矩阵元素X的数据结构为  X(a,b)  a和b分别可以用一组预先定义的状态数值来表示,如前面所述的0,1,2等

 

 其实矩阵元素X的内部结构,并非只能够用两个简单的节点状态数值来表达,还可以用一个方程或者若干个和流程节点本身的操作有关的变量甚至是类和更为复杂的数据结构来表示,就我们目前的研究情况来看,尚未达到实际应用的水平,还处在一个前期的摸索过程中,希望国内从事流程管理系统开发的企业,大专院校,开源爱好者一起来研究,完善。。。。让我们一起把中国的流程管理软件系统的设计和开发水平推进一个新的高度。。。。。



你可能感兴趣的:(工作流系统设计,工作流引擎,数据结构,存储,工作)