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

逻辑这回事(八)---- 异步电路设计 在模式一的时候,由于两个模块处理没有配合要求,不存在异步问题,在模式二的时候,由于存在时序配合,这种分别处理的方式存在异步汇聚问题。优点是可靠,缺点是效率低。如上图所示,转发逻辑和XMAC逻辑都是采用异步复位同步撤离的方式,转发逻辑为芯片不可复位的部分,XMAC是可以配置复位的部分,之间通过异步FIFO正常过渡,设计中两边的时钟域都有各自独立的复位,实际测试发现,仅配置XMAC的复位,概率性导致转发逻辑发生错乱,不可恢复,原因:异步复位设计不合理,导致异步FIFO单边复位,另一边也会出现异常。 阅读详情

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

 

图例


节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)

需要解决的问题:已知分支点的运行路径数值S,求流程图中一个汇聚点的实际访问(实际汇聚)数值,通过获取该数值,使得流程引擎控制器能够准确的控制流程 的运转,即准确的控制对条件异步汇聚点放行的时机(对于该问题,国内另外一个开源工作流 Fireworkflow的作者非也有另外一个思路 请参考 http://www.fireflow.org/viewthread.php?tid=9&extra=page%3D3 )

  算法设计思路: 对于标准的对称的流程图而言,一个汇聚点一般来讲是应该对应一个分支点的,也就是说汇聚支路数应该和它前面的分支支路数相吻合(当然,这只是对很规则的对 称流程图模型来讲),那么如果在分支节点中如果出现了条件选择公式(或者智能脚本),那么从这个分支节点所分出来的支路,就不一定都会被选中(简单举例, 我们在分支节点中嵌入了一个条件表达式a>2,那么如果分支实际有三条支路,在流程运行过程中,a的数值大于2,符合嵌入的条件,三条支路其中的2 条就会运行下去,而另外一条就不会运行,这样一来,在该节点的后驱汇聚点那里,我们就需要知道具体运行下去的支路数到底是几条? 怎么才能够获取这个支路数呢? 我们在流程运行控制器(流程引擎)中加入一段算法,使得我们确定的知道一个条件汇聚点的前驱分支点是哪个节点,然后我们先计算一次嵌入条件公式,预先知道 该前驱分支点具体要走几条支路,然后再把这个支路数值作为参数传递给用于控制条件汇聚点的控制器中,使得汇聚点按照实际运行的支路来判断是否该继续运行到 下一个节点去,那么我们按照这个思路设计伪代码算法

  混合伪代码5步描述法
 
1: 条件表达式解析函数 public java.util.ArrayList CFS(SID,GID)() 
  这个函数是流程控制器中用于解析流程嵌入的条件表达式,并根据流程的变量数值计算出流程嵌入公式的结果,函数参数SID是传递给流程控制器中的需要处理的节点ID,GID是流程图的ID,下面一致

2: 获取输入汇聚节点的所有前驱汇聚点函数  public java.util.ArrayList GAS(SID,GID)()   这个函数用于获取该节点前面出现的所有汇聚点

3: 获取输入汇聚节点的所有前驱分支点函数  public java.util.ArrayList GAJ(SID,GID)()   这个函数用于获取该节点前面出现的所有分支点

4: 对该节点的所有前驱分支点集合和前驱汇聚点集合进行计算,找出该汇聚节点的匹配分支点SSID  public String GRN(GAS,GAJ,GID)()  节点匹配算法的实质是对称集合配对差算法

5: 在找到这个匹配的分支点SSID之后,我们就可以对其中嵌入的条件公式进行提前计算
   public int PCSF(SSID,GID)(
      CFS(SSID,GID)()
      return K;
   )

     这样获得了一个int数值k,然后我们就在流程控制器中在流程汇聚点进行控制的过程中使用这个数值,那么前面提到得问题就这样初步解决了,离圆满的解决这个问题,我们又近了一步............

深入理解与开发:jwfd工作流系统源码剖析 工作流管理系统是一种帮助组织自动执行工作流程的软件应用。它使得工作流程中的任务能够按照预定规则从一个参与者传递到另一个参与者。这样的系统可以用来设计、执行、监控和优化业务流程。工作流管理系统(Workflow Management System, WfMS)专注于企业内部流程的自动化和管理,它支持过程的定义、执行、监控和优化。WfMS的目的是通过减少手动任务和提高过程的可视化,提高组织效率和灵活性。 阅读详情

相关推荐

JWFD工作流WEB插件源代码包

最简单的流程设计器,用于嵌入到WEB页面中,需要JRE

JWFD开源工作流-矩阵引擎设计-高维向量空间分析法

矩阵是一种纯粹的数学模型,要在这种数学模型上实现循环,跳跃和回退等。根据我的研究 矩阵模型的维度高出链表一级,我们在矩阵模型上做的控制和操作。如何把矩阵表和路由表的参数结合起来,形成一个高维向量空间,然后在这个空间。探测到,遍历并没有完全的完成,仍然有泄露的节点在其中,这个问题需要进一步。在完成遍历和排序之后,矩阵的循环,跳跃和回退等模块是否和数据库模型的时候。亿级参数模型,可以进行智能模拟和生成式人工智能,但是我们的矩阵工作流开发。抛弃掉深度学习的那些看起来深奥的学术词汇,人工智能的最底层的模型和结构。

comsci的专栏 618

JWFD工作流嵌入式公式解析模块

2010.12.12 最新更新 JWFD最新的官方博客地址为 http://blog.youkuaiyun.com/comsci JWFD最新官方下载地址 http://www.cnblogs.com/comsci/favorite/260690.html 本模块简称JGAM 是 jwfd GrammarAnalysis module (JWFD语法分析模块) 的缩写 用于JWFD或者其它流程系统中处理用户自定义的公式和脚本语言的模块 本模块使用开源软件ANTLR-3.0为基础,经过COMSCI对语法文件的修改而成,适用于各种流程引擎,可以结合JWFD使用 也可以嵌入到其它JAVA系统中使用 使用方法: 用户只需要在自己的系统中调用GrammarInterface类中的ScriptAnalysis()的方法即可,通过在ScriptAnalysis()方法中把string参数STR赋值为公式或者脚本 具体公式和脚本例子请参考代码中GrammarInterface类的方法说明 请将压缩包中的antlr-3.0.jar文件放在项目的JAR库中... 请用户根据项目具体情况自行修改类的package路径,默认路径为 org.jwfd.workflow.GrammarAnalysis ============================================================================================================ JWFD 是 java workflow designer JAVA工作流设计系统 的缩写 作者 comsci 官方群号: 7428804 推荐技术联盟 fireWorkflow 群,作者:非也 作品 FireWorkflow 工作流系统 群号:80347522 网站 www.fireflow.org 推荐技术联盟 OpenJweb 群,作者:阿宝 作品 OpenJweb 快速开发平台 群号:33724089 网站 http://code.google.com/p/openjweb/downloads/list 推荐技术联盟 family168 www.family168.com 专业的JBPM解决方案提供者

关于JWFD开源工作流系统与电商平台的关系的说明

关于JWFD开源工作流系统与电商平台的关系的说明

comsci的专栏 385

JWFD1.01工作流系统(08升级版)

JWFD申请到一个论坛专区,希望大家对JWFD的数据结构和设计有什么意见和建议,包括BUG都可以到这个地方来提交 地址是 http://www.openjweb.com/bbs/forum.php?mod=forumdisplay&fid=61 jwfd 工作流设计器V0.91 (本程序的源代码在comsci的其它资源中下载) 名称是 JWFD v0.94工作流源代码 for eclipse(BUG修正版) COMSCI 2005 需要JDK1.4以上 运行方法:双击jwfd.jar运行 QQ:784092877 本工具由JAVA SWING与开源软件JGRAPH包的一些类和方法共同编写的,其中对原JGRAPH包的一些类 和方法进行了修改和完善(原始类不能将图的一些重要属性写入GXL文件,我添加了这几种属性的方法) 现在可以使用的一些功能有: 利用作图工具界面完成流程图的绘制,添加可以处理的节点属性和其他一些通用功能, 利用树型结构显示流程图文件的信息(一个是临时GXL文件目录(GXL_TEMP),一个是保存已经提交的GXL文件的目录(ACTIONED)) 通过点击顶部工具栏的最后一个图标,弹出对话框输入文件名后将图GRAPH保存为GXL文件 把GXL文件提交到数据库中的功能可通过在树型栏目中对已经保存的文件点击右键选择提交流程图来运行 提交完成后,在树型栏中的第二项目,已提交流程中就生成了一个被修改了文件名的项,同时数据库中的 stem_main(节点表)和edge_control(边定义表)中就就完整的图的基本数据,可以供流程运行处理模块使用 (本人使用的是MYSQL数据库,库的名字为new_sys,有三张基本表,建表SQL在包中,请自行修改 JGRAPH中对图和顶点与边的定义与存储结构是非常简洁与实用的,利用数据库或者是GXL文件中的这些数据可以非常简单的处理一个复杂的流程图........... 该工具经过修改后,也可以实现一个实时监控界面和其它的适合于网络结构显示的工具和项目 GXL文件格式就是一种标准XML格式文件.....非常容易处理..可以脱离数据库进行流程图数据管理,效率很高 但是如果写入库中,则可以让程序更灵活一些............. 这些程序是在JBuliderX版本中完成的,我把需要用到的LIB都一起打成一个包..

开源工作流系统 JWFD.7z

开源工作流系统 JWFD.7z

JWFD开源工作流矩阵引擎测试版本BUG20231022修正代码

请把该函数覆盖到JWFD开发包的org.jwfd.workflowEngines.Matrix.DataMatrix.java文件的同名函数中,非常感谢大家的支持,因为矩阵引擎并没有任何先例可以借鉴,所以一步一步的再做,还有很多不完善的地方。。。。

comsci的专栏 513

多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)

关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系

qq_33328642的博客 5862

对JWFD长期使用JGRAPH开源项目组件的官方解释

对JWFD长期使用JGRAPH开源项目组件的官方解释

comsci的专栏 266

给STM32F4装上耳朵:用麦克风模块和Keil MDK实现你的第一个语音指令(附完整代码)

本文详细介绍了如何使用STM32F4开发板和麦克风模块实现简单的语音指令识别系统。通过Keil MDK开发环境配置、ADC音频采样、语音活动检测和模板匹配算法,开发者可以快速构建响应'开灯'、'关灯'等基础指令的语音交互方案。文章包含完整代码实现和调试技巧,特别适合STM32初学者入门语音识别领域。

weixin_29171087的博客 437

Dify学习-19-EXCEL数据如何建立知识库+知识库的学习ING

Args:"""定义类,继承自类文档字符串说明这个类用于加载Excel文件这个类提供了从Excel文件(.xls和.xlsx)中提取数据并转换为文档列表的功能。处理两种Excel格式保留超链接信息跳过空行将每行数据转换为键值对格式的文档在元数据中保留源文件信息对于.xlsx文件使用openpyxl处理,可以获取更多单元格信息(如超链接);对于.xls文件则使用pandas的xlrd引擎处理。

Claire的博客 3437

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

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

comsci的专栏 1133

STM32 Proteu直流电机正反转控制系统限位开关-0035

硬件组成:STM32F103C6单片机 +L298N电机控制电路+直流电机+3个按键(正转、反转、停止)+LED指示灯(正转、反转、停止)+限位开关(正限位 反限位) 1.通过3个按键(正转、反转、停止)控制电机的正转、反转、停止。 2.有3个LED指示灯,正转时正转指示灯亮。反转停止对应反转停止指示灯亮。 3.有自动正转反转停止功能,正转时当正限位按键按下时说明正转到最大距离。此时自动停止。反转一样。

zhaxiaobian_er的博客 2003

JWFDv0.96开源工作流引擎设计--节点匹配搜索算法设计说明

JWFDv0.96开源工作流引擎设计                        --节点匹配搜索算法设计说明 注:这篇文章中所使用的“函数”就是指JAVA语言中的方法         作者  comsci        四川.成都        最后修改时间    2013.4.1 算法设计说明   (前两年,我曾经公布

comsci的专栏 1421

西门子S7-200 SMART 实战解析:滑动平均值滤波算法在模拟量信号处理中的应用

本文详细解析了在西门子S7-200 SMART PLC中实现滑动平均值滤波算法的实战应用。通过处理模拟量信号如温度、压力等,该算法有效抑制信号干扰,提升系统稳定性。文章涵盖算法原理、程序框架、信号采集及调试优化,为工业自动化工程师提供实用指南。

gitlab7runner的博客 1158

RK3568平台开发系列讲解(DMA篇)DMA engine使用

DMA传输属于异步传输,在启动传输之前,slave driver需要将此次传输的一些信息(例如src/dst的buffer、传输的方向等)提交给dma engine(本质上是dma controller driver),dma engine确认okay后,返回一个描述符(由struct dma_async_tx_descriptor抽象)。DMA_PREP_PQ_DISABLE_P、DMA_PREP_PQ_DISABLE_Q、DMA_PREP_CONTINUE,PQ有关的操作,TODO。

内核笔记 1725

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

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

comsci的专栏 2916

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1849

状态机/流程引擎/审批流的流程引擎/结合低代码开发的流程引擎 区别 业务系统中使用流程引擎

业务中利用流程引擎可以解耦. 但坏处是有一天流程引擎无法满足新功能的时候,开发工作量比较大. 有遇到过一个特殊的 case. 乘客和司机, 垫付场景. 本来,乘客支付后分润给司机. 两个行为时顺序的. 后续变更, 新增 平台垫付. 乘客支付和司机垫付两个行为即不是平行的,也不是互斥的, 乘客支付排斥垫付,但是垫付不排斥乘客支付,且要对乘客支付进行延迟判断. 业务逻辑

fei33423的专栏 4141

【微信小程序】微信小程序开发环境搭建:安装微信小程序开发者工具

通过本文的介绍,你应该已经成功安装并配置了微信小程序开发者工具,为微信小程序开发做好了准备。接下来,你可以开始编写你的第一个小程序项目,探索更多有趣的功能和特性。祝你开发顺利,创造更多优秀的作品!

墨夶的博客 2959

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JWFD开源工作流-矩阵引擎-遍历伪代码算法

下标:(0,2): 节点标签:(node0,node2): 节点状态:(0,0): 节点标志:普通点。下标:(1,2): 节点标签:(node1,node2): 节点状态:(0,0): 节点标志:普通点。下标:(6,2): 节点标签:(node6,node2): 节点状态:(0,0): 节点标志:普通点。下标:(7,8): 节点标签:(node7,node8): 节点状态:(0,0): 节点标志:起始点。下标:(2,3): 节点标签:(node2,node3): 节点状态:(0,0): 节点标志:普通点。

comsci的专栏 317

假人有限元模型

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

业务工作流引擎调度算法简析(一):

     在工作流系统中,系统调度是核心,调度算法的生效程度和成熟性直接决定了工作流系统的可用性。本文章描述工作流如何推进和回退,并且描述在分之、合并、跳转等特殊情况下的流转规则处理。基本概念1.1 流程实例流程实例是根据流程定义所产生的,一个流程启动后自动产生一个流程实例;系统完成创建流程实例后,需要初始化流程实例(如:给流程全局变量赋值);流程实例创建并初始化完成后,流

GavinFriends的专栏 2333

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: OpenJWeb(1.8) Java Web应用快速开发平台
下一篇: [转帖]流程图的跳转问题
comsci
博客等级 码龄22年 412粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值