JWFD工作流引擎自动运行控制器的一些改进设计思路(一)

流程引擎设计思路 本文是最近在学习了解流程引擎的功能设计原理时,梳理出来的一些思路,只总结了一些大致框架和方向,细节设计待后续再完善。 阅读详情


     经过前面一段时间的思考,我发现在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)

                
                System.out.println("普通点的递归"+step_id);
                java.util.ArrayList lln = new java.util.ArrayList();
                lln = gcm.ConditionDfs(step_id, graphid);
                ftcer.set_end_time(step_id, graphid);
                gcm.SAN(lln, graphid,step_id);


在流程调试器处理流程前进的按钮的代码中,我嵌入了上面的一段代码,在我们调用方法gcm.SAN()开始递归之前,我们对当前流程节点进行一些设置,这并不是我们讨论的重点,仅仅说一下,ftcer.set_end_time()这个函数是用来对当前节点设置时间的一个函数,通常我们在调用递归函数让流程开始流转之前,一般要对前面处理的节点进行一下时间值和处理状态值之类的设置(当然,如果我们需要对流程进行更加精细的控制,那么这种设置所需要的代码量就更大了),在这之后,我们才让流程进入下一个待处理的节点。

      注意一点,我们是通过传递参数lln(lln是一个数组类型的数据,里面保存着一个或者多个正在被处理的流程图中的节点) 来控制递归过程的方向的,如果在这里我们修改一下lln这个参数所传递的节点(节点群),那么流程运行的方向就将发生变化,我们可以让lln数组里面的节点发生变化,如果我们截取lln数组的值,并将其修改,比如说当前流程正要进入下一个节点,那么我们把这里的下一个节点(如何获得当前节点的下一个节点,请参考JWFD工作流引擎API函数简要说明)替换为另外一个我们想让流程处理的节点,比如说让流程立即跳转到我们指定的一个节点那里去处理,而不按照流程的顺序来依次处理,那么这种处理模式就被大家称为-自由流或者随意流的流程控制模式


     今天就写到这里,大家有时间,有兴趣可以研究一下我前面说的东西。。。。。。。。



FC游戏金手指代码大全:亲测可用指南与内存修改原理 在计算机和游戏开发领域,内存修改是一项基础而强大的技术,它通过直接读写程序运行时内存中的数据,改变软件的行为和状态。其核心原理在于理解进程的内存地址空间布局,定位存储关键游戏变量(如生命值、金币数)的特定地址,并注入或锁定目标数值。这项技术的工程价值在于,它不仅能用于游戏辅助,更是软件逆向工程、漏洞分析和调试的重要实践手段。在怀旧游戏和模拟器场景中,内存修改以“金手指”或“作弊码”的形式广泛应用,帮助玩家自定义游戏体验。本文将聚焦FC(红白机)游戏,深入解析Game Genie码和Raw码两种主流金手指格式 阅读详情

相关推荐

利用Docker Compose简化openGauss多节点容器化部署

本文详细介绍了如何利用Docker Compose简化openGauss多节点容器化部署,从环境准备到配置文件编写,再到集群部署与验证,提供了一套完整的解决方案。通过Docker Compose,原本复杂的手动部署流程被大幅简化,显著提升了部署效率和可靠性,特别适合企业级开源数据库的高可用架构需求。

weixin_30338481的博客 61

DocuWare Workflow Manager(工作流管理器)

Workflow Manager(工作流管理器)由两个组件组成:图形设计器使创建复杂的工作流变得容易,只需拖放即可(下图左)。在DocuWare客户端的任务列表中,每个员工处理他或她(自己)的任务(下图右)。销售、人力资源、财务等部门需要流畅、可靠的信息传输,以便在正确的时间做出正确的决策。DocuWare Workflow Manager(工作流管理器)是DocuWare 的一个工具,使您能够通过简单直观的拖放界面设计自动化工作流程。此外,工作流历史记录还显示工作流中的哪些用户做出了哪些决策。

qq_43653083的博客 579

MemSeg:一种差异和共性来检测图像表面缺陷的半监督方法

本文认为人为创建类内差异和保持类内共性可以帮助模型实现更好的缺陷检测能力,从而更好地区分非正常图像。如图一所示。差异(differences):MemSeg引入人工模拟的异常图像在训练阶段使模型能够区分正常和异常的图像,减轻了半监督学习只能用正常样本进行训练的不足,然后在推理阶段可以直接输入图像无需做任何后处理。共性(commonalities):MemSeg引入了一个记忆池来记录正常样本的通用模式,在训练和推理阶段,比较输入图像和记忆池中的样本之间的差异,为异常区域的定位提供有用的信息。

斯人若彩虹,遇上方知有! 4842

实现工作流自动运行控制器过程中的思考

我们使用过工作流设计器的朋友一定都有这样的经验,流程设计器设计出来的流程图如果用XML来存储,是一个类似层次结构的数据模型,直接对这种数据模型进行处理并不是很方便(但是我也见到很多直接在XML结构上面进行后台引擎处理的工作流系统,所以我这里说描述的方法不一定是最好的),所以我没有直接在流程图XML上面进行数据操作和处理,而是把用XML存储的流程图数据转换成一种简单的链表结构并存储在数据库中,具体的

comsci的专栏 2202

告别底噪和发热:TPA3255的PCB布局与散热设计保姆级教程(附嘉立创EDA文件)

本文详细解析TPA3255 Class D音频功放的PCB布局与散热设计,提供从电源系统分层架构到热管理系统的全流程优化方案。通过实战案例展示如何消除底噪、降低发热,并附嘉立创EDA文件,助力工程师快速设计高性能音频功放。

weixin_29208077的博客 379

OpenCV安装配置教程VS2022(超级顺利)

博主最开始没打算写这篇博客,只是想简单的在网上找一下最新版的OpenCV的安装配置教程,适用于VS2022的,但是我搜了一早上,也没搜到一个能让我成功安装配置的,看了很多很多文章,根本就没有几篇有用的。所以没办法了,只能自己研究了,于是就整理了这篇博客,希望能帮到和我一样的人,这就是博主一直信奉的利他精神!

weixin_47367099的博客 5万+

基于事件驱动的有限状态机实现工作流引擎的核心调度算法

  有限状态机(FSM)又称为有限状态自动机或简称状态机,是表示有限个状态以及这些状态之间的转移和动作等行为的数学模型。   状态存储关于过去的信息,就是说它反映从系统开始到现在时刻的输入变化。转移指示状态变更,并且用必须满足来确使转移发生的条件来描述它。动作是在给定时刻要进行的活动的描述。有多种类型的动作: 进入动作(Entry action)  &nbs...

snowfox2008 1726

AD620仪表放大器模块实战:从双电源切换到单电源供电的完整指南(附原理图)

本文深入探讨了AD620仪表放大器模块从双电源切换到单电源供电的常见陷阱与正确方案。通过解析AD620的内部架构与电气特性,指出其“天生”依赖双电源,简单的跳线改装会导致芯片损坏或失效。文章提供了基于AD623芯片的真正单电源替代方案,并附有原理图与实战波形对比,为便携式设备设计提供了完整指南。

weixin_29231027的博客 375

[原创]JWFDv0.96工作流引擎设计-自动运行控制器结构说明

JWFDv0.96---工作流引擎设计                                             --自动运行控制器结构说明   注:这篇文章中所使用的“函数”就是指JAVA语言中的方法 作者 comsci   2010.12.12   四川。成都

comsci的专栏 1775

学习记录——SIMPACK生成轨道谱文件的方法

生成轨道谱文件的方法,可以用于实测轨道谱导入和自制轨道谱导入仿真

weixin_51965897的博客 7805

Valgrind 从入门到精通:内存调试和性能分析

Valgrind 提供了强大的 API,允许开发者编写自定义的检查工具。通过扩展 Valgrind,可以针对特定场景实现更精准的检测。

大模型大数据攻城狮的专栏 1218

使用JWFD开源工作流引擎ARC实现简易的自动数据处理的一些摸索(一)

使用JWFD开源工作流引擎ARC实现简易的自动数据处理的一些摸索 注释:ARC是指我在JWFD开源工作流引擎中用JAVA语言实现的一种流程自动运行控制算法(该算法的雏形是一种经过改造的图形广度优先遍历算法,经过数次修改,早就和经典的图形广度优先遍历算法在结构上相差很远了,在jwfdv0.94版本中可以找到这个算法的最初形态), 我是一个业余的工作流爱好者

comsci的专栏 1679

Python爬虫实战:美团外卖商家数据抓取与分析

随着互联网技术的快速发展,外卖平台已成为人们日常生活中不可或缺的一部分。本文基于Python爬虫技术,使用最新的异步爬虫框架和反爬虫绕过技术,实现了对美团外卖平台商家信息与评分数据的自动化抓取。通过对抓取数据的清洗、存储和分析,为餐饮行业市场研究和商业决策提供数据支持。本文详细介绍了爬虫的设计思路、技术实现方案、数据处理方法以及可视化分析结果,为相关领域的研究者和开发者提供参考。关键词:Python爬虫;美团外卖;数据抓取;数据分析;异步爬虫。

2201_76125261的博客 1822

jwfd工作流引擎设计-流程数据同步控制器的设计思路及其矛盾

  基于图论的广义优先遍历算法的流程引擎运行控制器仅仅是一个很初级而简单的工作流引擎的实现手段,那么更进一步的需求则是来源于用户需要用(外部输入)自动表单中的数据来控制这个图的遍历行为,这就好像是我们有发动机可以驱动汽车的轮胎转动,但是还需要一个驾驶员和方向盘来控制汽车的前进,后退和转向,那么发动机就是基于图论的广义遍历算法,而驾驶员和方向盘则是外部表单数据和基于表单数据的流程数据同步控制器,为什么要用同步来描述这个控制器呢? 对于这个问题,实际上我还有些问题没有弄得很清楚,首先基于遍历算法的流程引擎对流程

comsci的专栏 1290

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[原创]JWFDv0.96工作流引擎设计--嵌入公式使用和结构说明

        JWFDv0.96工作流引擎设计                                 --嵌入公式使用和结构说明注:这篇文章中所使用的“函数”就是指JAVA语言中的方法作者 comsci   2010.11.18   四川。成都总体设计思路   通过在流程的节点里面嵌入公式(脚本),保存在数据库中节点字段属性中的,然后流程引擎控制器通过执行脚本引擎获得运行公式的结果,然后通过这个运行结果控制流程的走向设计说明:提前计算及其潜在问题    在实际的流程系统工程设计中,我们会遇到这样

comsci的专栏 3420

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于解决条件异步汇聚问题)

 本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://blog.youkuaiyun.com/comsci/archive/2009/02/27/4682578.aspx),我现在把我对图例A2的一个解决方案公布出来,请大家多指点 图例 节点匹配搜索算法(用于解决标准对称流程图条件

comsci的专栏 1411

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[原创]工作流自适应引擎的设计思想(初步)

      最近一段时间都在思考这样一个问题:如果我们想让一个工作流引擎能够妥善的处理由用户通过流程设计器设计出来的任意复杂(简单)的流程图,那么对这个工作流引擎的结构设计就必须很灵活,因为如果仅仅依靠一个有限规模的类与方法集合体,我们不太容易很好的处理所有可能遇到的流程图,但是经过我在JWFDv0.94-v0.96这几个版本的流程引擎设计过程中,我发现了一个潜在的,有可能比较

comsci的专栏 2916

[原创]JWFD工作流引擎设计--节点匹配搜索算法(再讨论)

  JWFD工作流引擎设计--节点匹配搜索算法(再讨论)NMSA  Node matching search algorithm--节点匹配搜索算法说明         只所以要设计这样一个算法,原因是在设计流程引擎的过程中遇到下面的这个问题        “在对称条件下带条件选择的汇聚路由问题”:         问题的

comsci的专栏 1133

[更新]总线模式与工作流引擎扩展思路

我们设计用户自定义工作流引擎的时候,往往面临这样的问题,即:流程图的设计权在用户那里,而我们后台的引擎代码却是系统开发人员是先写好的,这种情况导致-无限复杂的流程图与处理功能相对有限的流程引擎模块之间的矛盾,这个矛盾就是用户自定义工作流的主要矛盾,如何在现有技术水平下妥善解决这个矛盾就成为我们的主要任务   前几天在装一台二手服务器的时候,看见PCI插槽,突然想到。。是否我们的自定义流程引擎

comsci的专栏 1532
上一篇: 国内开源工作流fireflow推出全浏览器兼容流程设计器
下一篇: 工作流程引擎算法在其它领域的应用(一)
comsci
博客等级 码龄22年 412粉丝 397原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值