经过前面一段时间的思考,我发现在JWFDv0.96版本中用于流程引擎的自动运行控制器SAN算法存在着一些值得改进的地方,这种改进也许还无法实现我在前面的文章说描述的那种流程自适应控制的机制(
http://comsci.iteye.com/blog/537131),但是至少可以让流程在自动运行过程中变得更加灵活和便于控制
下面是SAN自动运行控制器的一个伪代码描述,让我们来看看,到底是什么地方可以改进一下
FOR循环体(循环控制变量为存储节点的链表容量)
IF (当前节点尚未处理)
THEN 嵌入处理过程
递归前进
ELSE IF (当前节点处理完毕)
THEN 嵌入处理过程
递归前进
ELSE IF (当前节点正在处理)
THEN 嵌入处理过程
递归前进
FOR循环体结束
在上述代码-判断节点的状态值的IF语句中间,我们还可以嵌入更加复杂的IF判断语句,用于对流程的运行过程进行更加精细的控制,当然这种精细的控制将给工作流引擎带来更加复杂的调控模式和更加庞大的代码量,同时也增加了工作流引擎的设计难度,所以我要考虑一下,是否值得这样做。。。。有时候,控制的松一些反而更好,控制得过于细,反而不利于流程的整体运行。。。。
在流程的运行过程中,真正起决定性作用的是上述伪代码的蓝色字体表述的-递归前进的这一过程,无论前面做什么样的判断和处理,最终要靠递归来推动流程进入下一个节点中,所以我们真正要动手修改的地方就是这个地方,参考SAN函数具体的递归模块的代码(代码详见 org.jwfd.workflowEngines.Algorithm.TopologyAnalysis.java)
在流程调试器处理流程前进的按钮的代码中,我嵌入了上面的一段代码,在我们调用方法gcm.SAN()开始递归之前,我们对当前流程节点进行一些设置,这并不是我们讨论的重点,仅仅说一下,ftcer.set_end_time()这个函数是用来对当前节点设置时间的一个函数,通常我们在调用递归函数让流程开始流转之前,一般要对前面处理的节点进行一下时间值和处理状态值之类的设置(当然,如果我们需要对流程进行更加精细的控制,那么这种设置所需要的代码量就更大了),在这之后,我们才让流程进入下一个待处理的节点。
注意一点,我们是通过传递参数lln(lln是一个数组类型的数据,里面保存着一个或者多个正在被处理的流程图中的节点) 来控制递归过程的方向的,如果在这里我们修改一下lln这个参数所传递的节点(节点群),那么流程运行的方向就将发生变化,我们可以让lln数组里面的节点发生变化,如果我们截取lln数组的值,并将其修改,比如说当前流程正要进入下一个节点,那么我们把这里的下一个节点(如何获得当前节点的下一个节点,请参考JWFD工作流引擎API函数简要说明)替换为另外一个我们想让流程处理的节点,比如说让流程立即跳转到我们指定的一个节点那里去处理,而不按照流程的顺序来依次处理,那么这种处理模式就被大家称为-自由流或者随意流的流程控制模式
今天就写到这里,大家有时间,有兴趣可以研究一下我前面说的东西。。。。。。。。
分享到:
相关推荐
非常抱歉,因为我的网站出现故障,无法访问,因为... 本压缩包的文档包含旧版本的JWFD工作流系统使用说明,JWFD工作流引擎算法设计说明,JWFD作者设计的流程会签规范,和简化版的JWFD的数据库结构(目前只支持MYSQL数据库)
JWFD工作流设计器(带引擎算法)的源代码包, 实在不好意思,这个包的资源文件缺失了,导致编译时报错,经过反馈, 修改了这个问题,在资源中新增加下载,本下载停止使用,非常抱歉 请下载 jwfd工作流源代码 for ...
NULL 博文链接:https://comsci.iteye.com/blog/610102
工作流系统,jwfd工作流源码,eclipse,版本是0.94.。。。
jwfd 工作流设计器V0.91 (本程序的源代码在comsci的其它资源中下载) 名称是 JWFD v0.94工作流源代码 for eclipse(BUG修正版) COMSCI 2005 需要JDK1.4以上 运行方法:双击jwfd.jar运行 QQ:784092877 本...
JWFD 是 java workflow designer JAVA工作流设计系统 的缩写 作者 comsci 官方群号: 7428804 推荐技术联盟 fireWorkflow 群,作者:非也 作品 FireWorkflow 工作流系统 群号:80347522 网站 www.fireflow.org ...
JWFD的全称是 JAVA WORKFLOW DESIGNER(JAVA工作流设计者) 但是它并不仅仅是一个基于JGRAPH组件的工作流设计器,而是包括流程引擎控制模块和流程数据结构在内的一个非常实用的工作流系统,可以很容易的嵌入到包括 ERP...
JWFD开源工作流系统 到目前为止所有的文档集合 comsci 共享
JWFD开源工作流矩阵模块设计简要说明
NULL 博文链接:https://comsci.iteye.com/blog/2428048
最简单的流程设计器,用于嵌入到WEB页面中,需要JRE
使用开源软件antlr,实现一个用户自定义的脚本语言编译器,用于工作流节点嵌入式脚本中,本压缩包是两个关键的语法和句法文件
经过对60个节点和105个连接的流程图test119的矩阵数据的测试,发现,目前这个算法还存在问题,还需要改进和升级,暂时修改一下计划在JG的设计器的基础上,把矩阵引擎这块继续完善下去,不着急做自己的设计器,把引擎...
NULL 博文链接:https://comsci.iteye.com/blog/2117583
NULL 博文链接:https://comsci.iteye.com/blog/2163929
NULL 博文链接:https://comsci.iteye.com/blog/2145362
开源工作流系统 JWFD
这个压缩包里面有JWFDv0.94,v0.96开源工作流系统所需要的数据库结构的建表SQL文件,请安装MYSQL数据库之后,运行该SQL,如果发现什么问题,请给我发送邮件 comsci@163.com
================================================= ... 需要进行流程引擎设计的同志请参考 jwfd 数据结构与引擎设计文档.rar包 中的相关DOC文档 ============================================================
对jwfd v0.96引擎设计的描述 org.jwfd.workflowDesigner.FLCLs.Gxl.GxlToDatabase.java org.jwfd.workflowDesigner.FLCLs.Gxl.JgraphGxlCodec.java org.jwfd.workflowDesigner.FLCLs.Gxl.ParserGxl.java