资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
文档供参考,可复制、编制,期待您的好评与关注! JWFDv0.96工作流系统设计文档 (二) 数据库结构说明 - by comsci 2010-10-5(最新更新)QQ: 784092877(加好友请注明JWFD)EMAIL: comsci163.netCOMSCI博客 :http:/comsci.javaeye.comJGraph介绍:关于JGraph,open-open上是这样介绍的:JGraph,纯Java开发的图形组件,支持拖,放,缩放,合并等其它操作。它可以被结合到任何的Swing应用程序当中。什么是状态机就是状态转移图。举个最简单的例子。人有三个状态健康,感冒,康复中。触发的条件有淋雨(t1),吃药(t2),打针(t3),休息(t4)。所以状态机就是健康-(t3)-健康;健康-(t1)-感冒;感冒-(t3)-健康;感冒-(t2)-康复中;康复中-(t4)-健康。等等。就是这样状态在不同的条件下跳转到自己或不同状态的图。介绍: 本项目是一个利用JGRAPH和SWING实现的工作流程设计与运行管理程序,其数据结构和流程算法均是自己设计的,没有使用XPDL等工作流规范文件,而是使用的最简单的XML(GXL)格式,没有状态机的概念而是使用的自定义图形遍历算法来驱动这个流程主要的操作是在数据库方面,这样做仅仅是降低了工作流管理系统的技术门槛,便于初学者入门并从感性上理解什么是工作流技术,但是在实际应用上和真正的商业工作流产品还有较大的差距V0.96版本介绍JWFD是由我在04年开始设计并开发的一套包括基于JGRAPH开源软件的流程设计器和建立在图形自定义数据结构基础上面的流程引擎的工作流软件系统,在随后的几年中,由于工作和其它一些技术原因,对JWFD的更新一直都停留在局部BUG的修正上面,对核心引擎算法没有进行什么大的改进,这几年国内的流程产品层出不穷,技术水平不断提高,为适应这种发展的情况,我利用在08和09年在完成某项目的机会,对JWFD在面对各种实际项目中所体现出来的缺陷进行了修改,对引擎算法进行了大幅度的修正,新增加了增强流程引擎功能的算法,加入了自定义嵌入式脚本解析工具(基于ANTLR3.0开发,脚本功能可能要少些),增加了流程设计器的流程代码编辑功能,增加了简易流程引擎调试工具,对数据库的表结构也做了一定的调整,精简了几张不需要的表,同时增加了主控制结构表的字段,为方便流程设计的初学者,我在不删除旧数据结构说明的基础上面,从新添加新版本数据结构的说明,这样可以使朋友们很容易的从简单的结构入手,再深入到新版本的结构中去。目前的数据库结构总览(JWFD v0.96数据库结构):(下面这两段话是描述的jwfdv0.94之前的数据结构,用户可以跳过不看)JWFD曾经使用表一共12张,分别是:用户权限部门管理类一共三张表: department, department_level, departmentmember用户表类两张: user和user_group (以上的表都不是核心结构,可要可不要,但是做为一个完整的程序,还是应该考虑的这些表是用户和权限控制的基础数据结构)(上面的六张表由于和实际应用项目开发关系过于密切,在JWFD的新版本中已经完全被放弃不用了,JWFD只是一个用于学习的工作流系统,我只关心流程核心的运行控制和处理问题,对于项目和产品应用的外围数据结构,比如说表单等数据结构,我在这里暂时不关心,这些工作是交给项目实施者和商业产品开发者考虑的工作)流程运行控制表一共五张表: edge_control, flow_manager, route_control, step_detail, step_main,文档管理类: 一张表 :document v0.94版本之前的数据库总体结构(下面的内容是描述jwfdv0.96的数据库结构) v0.96版本的数据库总体结构目前所有的表,其中只有4张表对于流程引擎来讲比较重要(它们分别是edge_control, flow_manager, route_control, step_main),也需要重点说明,其它的表在系统中使用率不高,甚至根本没有使用,只是用于给用户进行自定义扩展的时候使用的,大家一看就懂。最新的v0.96版本中,一共有5张表都已经废弃了,原因是由于在jwfd的设计过程中,会出现各种不同的应用,作为JWFD的设计者,我无法完全掌握用户自定义的需求,所以只给用户提供了扩展的接口,具体的应用还是需要用户自己去设计和实现的。流程图数据结构-实际流程建模数据是由XML文件导入数据库,请看下例文章了解XML数据结构,JWFDv0.96工作流系统开发包简要说明.docJWFDv0.96 工作流XML结构说明.doc表名: step_main ( 流程图节点属性主表 ) 该表和edge_control表共同在数据库中表示了流程图拓扑数据结构,(在数据库中采用顶点和弧的方式来表示图的拓扑结构是一种最流行的,最方便的解决方法,当然.这里也不例外,我已经在设计基于矩阵的流程拓扑数据结构,希望在JWFDv0.98以后的版本推出基于矩阵流程数据结构的新引擎)step_main表的一条记录就代表在流程图中的一个顶点的拓扑数据,具体结构如下:上图是jwfdv0.94之前版本的数据结构上图是jwfdv0.96版本的新数据结构,增加了 5个字段,减少了3个字段(下面做补充说明)字段1: id (排序ID号,非空,短整型) 功能: 该条记录的唯一性标识字段2: step_name (节)顶点标识名,非空,字符型) 功能: 标识流程图节点的名称,中文或者英文,在流程图定义或者运行控制过程中标识或者代表该节点,和表中的step_id字段相对应,字段3: graph_id (流程图标识字段,非空,字符型) 功能: 用于区分不同的流程图,使用中文或者英文,是该表的INDEX字段,查询各流程图的关键字段字段4: is_active (流程运行状态标识字段,非空,短整型,默认值0) 功能: 通过该字段来标识一个已经处在运行状态中的流程的各个节点的状态,0代表非活动,1代表已经开始活动,2代表异常状态,(流程节点是否活动就是通过该字段来表示的,朋友们可以对这个字段进行自定义扩展,以便扩展引擎的控制功能)字段5: step_id (流程图顶点的内部标识字段,非空,字符型) 功能: 在数据库和XML文件中标识一个节点,不对外显示,只是在内部程序中用来代表节点的字段,与step_name相对应,其重要性主要体现在数据SQL语句中作为where子句的查询条件字段,该字段和XML数据结构中的node_id属性相对照字段6: is_routed (流程图路由节点标识字段,可空,短整型) 功能: 功能扩展字段字段7: visited (流程访问状态标识字段,非空,短整型) 功能: 标识流程运行阶段该顶点被运行控制模块访问次数的统计,该字段是程序中图形算法模块需要的重要字段,在有分支节点的流程图中,通过该字段来分辨哪些后驱点被访问,哪些没有被访问字段8: allow_toback (流程运转回退标识字段,可空,短整型,默认0) 功能: 表示该节点可回退,0代表容许回退(在v0.96版本中,该字段已经被删除) -JWFD V0.96版本的增加字段补充说明(要深入认识这几个字段的功能和作用,请大家参考“JWFDv0.96 工作流系统开发包简易说明.doc”文档中的流程引擎基础API调用说明)字段9: cond (嵌入式公式数据字段 ,长字符串型,可为空,默认) 功能:作为节点嵌入式脚本(公式)数据的数据库保存字段,用于流程条件表达式的逻辑判断和相应处理字段10: actioned_time ( 流程节点处理次数计数器字段,可为空,短整型,默认0 ) 功能:记录流程节点在运行过程中的被处理次数,属于功能计数器字段字段11: jap_num (条件表达式汇聚逻辑控制字段,可为空,短整型,默认0) 功能:记录流程汇聚节点的汇聚控制次数,属于功能计数器字段字段12: rollback_status ( 流程节点回退状态字段,可为空,短整型,默认0 ) 功能:记录流程节点回退状态,尚未使用,备用字段字段 13: rollback_time ( 流程节点回退次数计数器字段,可为空,短整形,默认0 ) 功能:记录流程节点的回退次数,属于功能计数器字段字段 14: startup_time ( 流程引擎时间控制字段,可为空,字符串型,默认“” )功能:记录该流程节点的起始运行时刻值,属于流程时间控制参数字段字段 15: end_time ( 流程引擎时间控制字段,可为空,字符串型,默认“” )功能:记录该流程节点的终止运行时刻值,属于流程时间控制参数字段- -表名: EDGE_CONTROL ( 流程图边(弧)关系表 )字段1: id (排序ID号,非空,短整型) 功能: 该条记录的唯一性标识, 字段2: edge_id ( 流程拓扑边标识ID,非空,字符型 ) 功能: 标识流程图连接边的名称,SQL语言中查询的条件值,作为该条记录的唯一主键字段,该字段和XML连接边数据结构中的数据段中的id字段数据值相对应字段3: from_step( 起始顶点连接属性,非空,字符型 ) 功能: 该边所连接的起始顶点的标识ID,该字段和XML连接边数据结构中的数据段中的from字段数据值相对应字段4: to_step ( 终结顶点连接属性,非空,字符型 ) 功能: 该边所连接的终结顶点的标识ID,该字段和XML连接边数据结构中的数据段中的to字段数据值相对应字段5: flow_master_id ( 保留字段 ) 功能: 保留字段6: graph_id ( 同step_main表中同名字段 ) 功能: 同step_main表中同名字段相同这张表和step_main表共同组成了流程图的基础拓扑数据结构表.实际上大多数对图的遍历和控制的操作算法都是在这两张表的数据结构基础上进行的-
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号