CN117950653A - 一种可视化流程构建方法 - Google Patents
一种可视化流程构建方法 Download PDFInfo
- Publication number
- CN117950653A CN117950653A CN202410124125.9A CN202410124125A CN117950653A CN 117950653 A CN117950653 A CN 117950653A CN 202410124125 A CN202410124125 A CN 202410124125A CN 117950653 A CN117950653 A CN 117950653A
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- updating
- affected
- edges
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 24
- 230000000007 visual effect Effects 0.000 title claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 51
- 230000008859 change Effects 0.000 claims abstract description 50
- 238000013499 data model Methods 0.000 claims abstract description 25
- 230000036961 partial effect Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 19
- 238000012800 visualization Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000009877 rendering Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 17
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种可视化流程构建方法,包括以下步骤:S1、接收对于流程图中节点或边的编辑指令;S2、根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;S3、使用变化传播算法确定受编辑指令影响的节点集合;S4、仅对所确定的受影响节点集合对应的部分依赖关系图进行更新处理。所述节点数据模型包括唯一标识符、位置信息和连接边的列表。所述边数据模型包括起点和终点节点的标识符及路径信息。本发明通过只更新受影响的节点,可以大大减少需要处理和渲染的数据量,从而提高了更新效率。并且由于更新操作的处理时间大大减少,用户在编辑流程图时可以得到更快的反馈,从而提高了用户体验。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种可视化流程构建方法。
背景技术
在现代计算领域,从软件开发到项目管理,从服务编排到配置管理,依赖关系的跟踪与管理是一个核心问题。现有技术通常依赖于复杂的依赖关系图来表示和处理各种元素之间的相互依赖。这些图的节点代表实体或配置项,而边代表它们之间的依赖关系。随着系统的扩展,这些关系图迅速增长,变得异常复杂,从而导致了对高效管理和查询机制的需求。
传统的依赖关系管理方案通常面临几个关键问题。首先,当依赖图庞大且动态变化时,节点的查找、插入和删除操作往往效率低下。这是因为大多数现有系统没有有效地平衡查询速度与数据结构动态变化之间的关系。其次,依赖变更的传播是一个计算密集型过程,尤其是在需要快速响应和准确更新的场景下。现有系统在变更传播方面缺乏有效的优化,导致性能瓶颈。此外,随着依赖关系日益复杂,确保数据在整个系统中的一致性变得越来越困难,这直接影响了系统的可靠性和稳定性。
针对上述中的相关技术,发明人认为当前的解决方案还面临着缺乏灵活性和可伸缩性的挑战。例如,很多依赖关系管理工具只适用于特定的应用场景或数据模型,并不能很好地适应需求的变化。此外,对于大规模的系统,现有技术通常无法有效地扩展以处理海量的节点和复杂的依赖关系,这限制了它们在大型企业和云基础设施中的应用。
发明内容
本申请的目的是提供一种可视化流程构建方法,以改善现有技术通常无法有效地扩展以处理海量的节点和复杂的依赖关系的问题。
为实现上述目的,本申请采用如下的技术方案:
一种可视化流程构建方法,包括以下步骤:
接收对于流程图中节点或边的编辑指令;
根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;
使用变化传播算法确定受编辑指令影响的节点集合;
仅对所确定的受影响节点集合对应的部分依赖关系图进行更新处理。
通过采用上述技术方案,实现了一种可视化流程构建方法。相比于传统的全图更新方法,通过只更新受影响的节点,可以大大减少需要处理和渲染的数据量,从而提高了更新效率。
可选的,所述节点数据模型包括唯一标识符、位置信息和连接边的列表。所述边数据模型包括起点和终点节点的标识符及路径信息。
通过采用上述技术方案,可以清晰地描述流程图中的每个节点和边,以及它们之间的关系。此外,由于使用唯一标识符来标识和跟踪节点和边,所以可以很容易地管理和更新流程图。
可选的,所述变化传播算法包括:
a)接收节点或边的更新信息;
b)根据更新信息和依赖关系图,追踪并标识受影响的节点;
c)更新受影响节点的状态,并记录更新操作。
通过采用上述技术方案,可以在复杂的可视化流程构建中有效地管理和更新节点状态。
可选的,所述依赖关系图是一个有向图,节点表示流程图中的元素,边表示元素之间的依赖关系。
可选的,还包括为每个节点构建一个反向依赖列表,该列表记录其他依赖于该节点的节点集合。
通过采用上述技术方案,通过使用反向依赖列表,算法可以更加高效地确定受影响的节点,因为它不需要遍历整个图来寻找这些节点。
可选的,还包括使用图数据结构来存储依赖关系图中的节点和边,所述数据结构包括用于存储节点的平衡二叉树。
通过采用上述技术方案,有助于有效管理依赖关系图中的节点,尤其是在节点频繁变更的情况下。当一个节点更新时,算法可以迅速识别并更新所有依赖于该节点的节点。
本发明还提供一种可视化流程构建装置,用于实施上述的方法,包括:
输入模块,用于接收对于流程图中节点或边的编辑指令;
更新模块,用于根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;
算法实现模块,用于执行变化传播算法,确定受编辑指令影响的节点集合;
渲染模块,用于根据算法实现模块的输出,仅对受影响节点集合对应的部分依赖关系图进行更新处理。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的方法。
本发明还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的方法。
综上所述,本申请包括以下至少一种有益技术效果:
1.本发明通过只更新受影响的节点,可以大大减少需要处理和渲染的数据量,从而提高了更新效率。并且由于更新操作的处理时间大大减少,用户在编辑流程图时可以得到更快的反馈,从而提高了用户体验。同时由于更新操作的处理复杂度与流程图的大小无关,而只与受影响的节点数量有关,因此本发明的方法具有很好的扩展性,可以处理非常大规模的流程图。另外通过使用图数据结构和变化传播算法,可以更方便地管理和维护流程图的数据模型,从而提高了可维护性;
2.在处理编辑指令时本发明直接通过唯一标识符找到对应的节点或边,并更新其数据模型。然后,使用变化传播算法来确定受影响的节点集合,并对这些节点进行更新处理。这种方式提高了处理效率,提高了响应速度,提高了可维护性,并且具有良好的扩展性;
3.本发明通过使用反向依赖列表,算法可以更加高效地确定受影响的节点,因为它不需要遍历整个图来寻找这些节点。这种方法特别适用于大型或复杂的依赖关系图,因为它可以显著减少必要的计算量,从而提高响应速度和处理能力。
4.本发明使用平衡二叉树来存储节点可以快速地进行节点的查找、插入和删除。这有助于有效管理依赖关系图中的节点,尤其是在节点频繁变更的情况下。当一个节点更新时,算法可以迅速识别并更新所有依赖于该节点的节点。这种快速响应对于实时系统来说是至关重要的。
附图说明
图1是本发明的方法流程示意图。
图2是本发明的装置结构示意图。
图3是本发明的计算机设备结构示意图。
图中,100、输入模块;200、更新模块;300、算法实现模块;400、渲染模块;40、计算机设备;41、处理器;42、存储器;43、存储介质。
具体实施方式
以下结合附图1-附图3,对本申请作进一步详细说明。
本发明提供一种可视化流程构建方法,参照图1,包括步骤S1~S4,具体如下:
其中,步骤S1、接收对于流程图中节点或边的编辑指令:
在用户界面层,系统具备一个交互式的流程图编辑器,用户可以通过这个编辑器来创建、修改或删除流程图中的节点和边。当用户完成这些操作后,编辑器会生成一个对应的编辑指令,这个指令包含了用户的操作类型(如创建、修改或删除)以及操作的目标(如节点或边的标识符)和新的属性值。
其中,步骤S2、根据编辑指令,更新依赖关系图中相应的节点和边的数据模型:
在接收到编辑指令后,系统会调用相应的处理函数来更新依赖关系图中的数据模型。例如,如果编辑指令是创建一个新节点,那么系统会在数据模型中添加一个新节点,并设置其属性值;如果编辑指令是修改一个现有节点的属性,那么系统会找到这个节点并更新其属性值。
其中,步骤S3、使用变化传播算法确定受编辑指令影响的节点集合:
在更新了数据模型后,系统会使用变化传播算法来确定哪些节点受到了这次编辑的影响。这个算法会从被编辑的节点开始,向上追踪其依赖关系,找出所有受到影响的节点。为了提高效率,算法会使用一些优化策略,如限制追踪的深度,或者使用缓存来避免重复计算。
其中,步骤S4、仅对所确定的受影响节点集合对应的部分依赖关系图进行更新处理:
最后,系统会根据算法确定的受影响节点集合,来更新依赖关系图的显示。具体来说,系统会重新计算这些节点的布局和样式,并只重新渲染这些节点及其相关的边,而不是整个流程图。这样可以大大提高渲染效率,尤其是在处理大规模的流程图时。
通过以上步骤,本发明实现了一种可视化流程构建方法。相比于传统的全图更新方法,通过只更新受影响的节点,可以大大减少需要处理和渲染的数据量,从而提高了更新效率。并且由于更新操作的处理时间大大减少,用户在编辑流程图时可以得到更快的反馈,从而提高了用户体验。同时由于更新操作的处理复杂度与流程图的大小无关,而只与受影响的节点数量有关,因此本发明的方法具有很好的扩展性,可以处理非常大规模的流程图。另外通过使用图数据结构和变化传播算法,可以更方便地管理和维护流程图的数据模型,从而提高了可维护性。
本实施例中,流程图由一系列的节点和边组成,每个节点和边都有自己的数据模型。
具体的,节点数据模型包括以下信息:
唯一标识符:这是每个节点的唯一标识,通常可以使用一个唯一的字符串或数字。这个唯一标识符在整个流程图中是唯一的,用于标识和跟踪节点。
位置信息:这是节点在流程图中的位置信息。这可以是一个二维坐标(例如,x和y坐标),也可以是一个三维坐标(例如,x,y和z坐标),取决于流程图的维度。
连接边的列表:这是一个包含所有与该节点相连的边的列表。每个条目是一个边的唯一标识符,这样本发明就可以很容易地找到与该节点相连的所有边。
边数据模型包括以下信息:
起点和终点节点的标识符:这是边的起点和终点节点的唯一标识符。本发明可以通过这些标识符在节点数据模型中找到对应的节点。
路径信息:这是边在流程图中的路径信息。这可以是一条直线,也可以是一条曲线,取决于流程图的设计。路径信息可以是一个坐标序列,描述了边的形状和位置。
这种实施方式的优点是简单和高效。通过这种方式,本发明可以清晰地描述流程图中的每个节点和边,以及它们之间的关系。此外,由于使用唯一标识符来标识和跟踪节点和边,所以可以很容易地管理和更新流程图。
在处理编辑指令时本发明直接通过唯一标识符找到对应的节点或边,并更新其数据模型。然后,使用变化传播算法来确定受影响的节点集合,并对这些节点进行更新处理。这种方式提高了处理效率,提高了响应速度,提高了可维护性,并且具有良好的扩展性。
本实施例中,变化传播算法是流程图或依赖关系图可视化编辑中的一个关键组成部分。这个算法负责在图中传播由于单个节点或边的更改而引起的连锁反应。以下是该算法的详细步骤:
a)接收节点或边的更新信息
1.监听变更事件:算法开始于监听节点或边的更新事件。这些事件是用户通过界面进行的交互操作,如移动一个节点、更改节点属性、添加或删除边等。
2.捕获更新细节:一旦检测到更新,算法会捕获相关的详细信息,包括被更改对象的唯一标识符、变更类型(增加、删除、修改)以及任何新的属性值。
b)根据更新信息和依赖关系图,追踪并标识受影响的节点
1.确定影响范围:算法使用传入的更新信息来确定哪些其他节点受到影响。这通常涉及查看依赖关系图中的连接边来识别所有下游(或在某些情况下,上游)的节点。
2.递归追踪:对于受影响的每个节点,算法递归地检查所有相连的节点,并将这些节点标记为受影响的节点。追踪通常会继续,直到到达叶节点或者没有更多的节点受到当前变更的直接影响为止。
3.考虑间接影响:某些节点的更新会间接影响其他节点(例如,通过改变布局导致的重新排列)。算法需要识别这些间接影响,并将相应的节点也标记为受影响。
c)更新受影响节点的状态,并记录更新操作
1.应用状态变更:对于每个被标记为受影响的节点,算法将应用必要的状态变更。这包括更新节点的位置、更改节点的样式或属性、添加或删除连接边等。
2.更新渲染:在应用了所有必要的状态变更之后,算法会触发更新流程图的渲染过程。这个过程通常涉及到只重新渲染受影响的节点和边,而不是整个图。
3.记录操作:为了支持撤销/重做功能或者其他的历史跟踪需求,算法会记录每个变更操作的细节,包括变更前后的状态。
进一步的,变化传播算法不仅要处理直接的下游节点,还要考虑条件依赖、循环依赖以及多层级的影响传播。
具体的,以下是该算法的详细步骤:
第一步:初始化
1.识别发生变化的节点,将其标记为“已变更”。
2.创建两个列表,一个用于记录待处理的节点(待处理队列),另一个用于记录所有受影响的节点(受影响节点列表)。
3.将变化的节点加入到待处理队列中。
第二步:处理待处理队列
1.检查待处理队列,如果队列不为空,则从中取出一个节点进行处理。
2.将取出的节点添加到受影响节点列表中。
第三步:节点依赖分析
1.对于当前处理的节点,分析其所有下游节点,包括直接和间接的依赖。
2.对于每一个下游节点,进行以下检查:
2.1如果下游节点有条件依赖(即它的更新取决于某个特定条件),则验证这个条件是否成立。只有在条件成立的情况下,才将该节点标记为“已变更”并加入待处理队列。
2.2如果下游节点处于循环依赖中,需要特别注意检测是否存在无限循环。在这种情况下,可以通过版本号或时间戳来限制更新次数,避免无限循环。
2.3如果下游节点是复合节点(即包含子节点的节点),则需要对其子节点也执行上述的依赖分析。
第四步:处理间接影响
1.在完成直接下游节点的分析后,考虑间接影响。对于每个受影响的节点,检查其是否影响其他节点的计算或显示逻辑。
2.递归地检查和更新所有间接影响的节点,直到没有新的节点被加入到受影响节点列表为止。
第五步:执行更新
1.对于受影响节点列表中的每个节点,执行实际的更新操作。这包括:
2.重新计算节点的输出值。
3.更新节点的显示状态,例如颜色、大小或形状等视觉属性。
4.同步更新相关联的用户界面元素或其他视图。
第六步:优化和防错机制
1.引入缓存机制,对于那些在本次变化传播中未发生变更的节点,可以直接使用缓存的结果,减少不必要的计算。
2.设置防错机制,如循环计数器或超时机制,以防止算法陷入无限循环或耗时过长。
第七步:结束处理
1.确保所有受影响的节点已经更新。
2.清空待处理队列和受影响节点列表,为下一次变化做准备。
通过这种方式,变化传播算法可以在复杂的可视化流程构建中有效地管理和更新节点状态,同时避免不必要的重复计算和潜在的循环依赖问题。
本实施例中,依赖关系图是一个有向图,节点表示流程图中的元素,边表示元素之间的依赖关系。以下是基于有向依赖关系图的变化传播算法的详细步骤:
接收节点或边的更新信息
1.捕捉更新:当一个节点或边发生变化时(如属性更新、位置移动、添加或删除),系统会捕捉到这个变化,并获得变更的详细信息。
2.记录变更:变更的相关信息被记录下来,包括变更的类型(增加、删除、修改)、涉及的节点或边的标识符,以及所有与变更有关的新属性或位置信息。
根据更新信息和依赖关系图,追踪并标识受影响的节点
1.分析影响范围:使用变更信息,算法分析哪些节点受到影响。这包括直接连接到已更新节点的所有下游节点,因为在有向图中,变更可以沿着边的方向传播。
2.递归标记:对于每个受影响的节点,算法递归地遍历它们的下游节点,直到没有更多的节点可以被标记。这个过程确保了所有受到直接或间接影响的节点都被识别出来。
3.处理循环依赖:有向图中存在循环依赖,这会导致无限递归。算法需要检测这些情况并适当地处理,例如通过记录已访问的节点并在检测到循环时停止递归。
更新受影响节点的状态,并记录更新操作
1.执行更新:对于所有标记为受影响的节点,执行必要的状态更新,这包括调整节点在流程图中的位置、改变节点的属性或样式、更新节点的内部数据,或者是添加或移除边。
2.最小化重绘:更新被应用后,触发流程图的重绘。为了提高效率,尽量只重绘受影响的部分而不是整个图。
3.操作记录:为了支持撤销/重做操作,每一步变更都被记录下来,包括变更前后的状态。
作为本发明的一种实施方式,该方法还包括为每个节点构建一个反向依赖列表,该列表记录其他依赖于该节点的节点集合。
具体的,为每个节点构建一个反向依赖列表可以快速确定哪些节点会因为某个节点的变更而需要更新。以下是在有向依赖关系图中使用反向依赖列表的变化传播算法步骤:
初始化阶段
1.构建反向依赖列表:在流程图或依赖关系图的初始化过程中,或者当图中添加新节点时,为每个节点构建一个反向依赖列表。这个列表包含所有直接或间接依赖于该节点的其他节点的集合。
2.维护列表的一致性:在图中进行任何更改(如添加或删除节点和边)时,更新相关节点的反向依赖列表,确保列表始终反映最新的依赖关系。
变更传播阶段
1.节点变更捕获:当一个节点发生变更时,系统捕获该变更事件并确定变更的类型和范围。
2.确定受影响的节点:利用反向依赖列表,快速确定所有依赖于已变更节点的其他节点。这些节点构成了受影响的节点集合。
3.递归更新:对于受影响的每个节点,递归地使用它们自己的反向依赖列表来进一步确定受影响的节点集合,并依此更新更多节点的状态。
4.避免重复处理:在递归更新过程中,要注意避免重复处理同一个节点。可以通过标记已处理的节点来实现,或者使用数据结构(如队列或堆栈)来跟踪待处理的节点。
更新和渲染阶段
1.应用状态变更:对于确定为受影响的每个节点,应用必要的状态变更,如更新节点属性或重新计算布局。
2.重绘受影响节点:触发流程图的重绘过程,但只限于受影响的节点及其相关的边,以提高效率。
3.变更记录:记录每一步变更,以便支持撤销/重做操作。
通过使用反向依赖列表,算法可以更加高效地确定受影响的节点,因为它不需要遍历整个图来寻找这些节点。这种方法特别适用于大型或复杂的依赖关系图,因为它可以显著减少必要的计算量,从而提高响应速度和处理能力。
作为本发明的一种实施方式,该方法还包括使用图数据结构来存储依赖关系图中的节点和边,数据结构包括用于存储节点的平衡二叉树。
具体的,使用图数据结构结合平衡二叉树来存储依赖关系图中的节点和边是一种高效管理和查询数据的方法。这种结构可以提供以下优势:
快速查找:平衡二叉树(如AVL树或红黑树)保证了在最坏情况下具有O(log n)的查找时间复杂度,这对于频繁查询节点的系统来说非常有利。
高效插入和删除:在平衡二叉树中插入和删除节点的操作也能保持O(log n)的时间复杂度,这意味着即使在依赖关系图更新频繁的情况下,性能也不会显著下降。
保持有序性:平衡二叉树在任何时候都保持元素有序,这可以用于快速地进行范围查询或有序遍历,对于需要维护节点顺序的应用场景非常有用。
动态平衡:由于平衡二叉树会在每次插入或删除操作后重新平衡自身,这保证了树的高度始终保持接近log n,避免了普通二叉搜索树退化成链表的情况。
在依赖关系图的上下文中,平衡二叉树可以用于存储节点的同时,图数据结构则用于表示节点之间的边。为了实现这一点,本发明采用如下设计:
节点存储结构:每个节点都是平衡二叉树中的一个元素,节点可以包含额外的信息,如指向其依赖项和被依赖项的指针或列表。
边的表示:边可以用节点之间的关系来表示,例如,可以在节点结构中包含指向其他节点的指针,这些指针代表从一个节点指向另一个节点的有向边。
索引和引用:为了快速访问任何特定节点,可以在平衡二叉树的基础上建立索引,索引的键可以是节点的唯一标识符,如名称或ID。
图遍历和操作:尽管节点存储在平衡二叉树中,但执行图操作(如深度优先搜索或广度优先搜索)时,仍然需要通过节点之间的边来遍历整个图。
通过这种方式,可以结合图的灵活性和平衡二叉树的效率,实现一个既可以高效处理节点和边的增删查改操作,又适用于复杂依赖关系处理的数据结构。
结合使用图数据结构和平衡二叉树的实施方式与反向依赖列表的变更传播算法可以提供一个强大且高效的系统,用于处理复杂的依赖关系和频繁的变更事件。尤其适合于需要高响应性和稳定性的应用场景,如配置管理、项目规划工具和服务编排平台。
具体的,使用平衡二叉树来存储节点可以快速地进行节点的查找、插入和删除。这有助于有效管理依赖关系图中的节点,尤其是在节点频繁变更的情况下。当一个节点更新时,算法可以迅速识别并更新所有依赖于该节点的节点。这种快速响应对于实时系统来说是至关重要的。
当一个节点发生变更时,算法首先使用平衡二叉树快速定位到该节点,然后通过这个节点的反向依赖列表来确定所有受影响的节点。因为反向依赖列表允许直接访问所有依赖于特定节点的其他节点,这减少了遍历整个图的需要,而平衡二叉树保证了即使在大量节点存在时,访问和更新节点的操作仍然高效。反向依赖列表确保在任何给定的变更传播过程中,所有相关的节点都会被考虑到,这样可以避免数据不一致的问题。
下文描述的一种可视化流程构建装置与上文描述的一种可视化流程构建方法可相互对应参照。
本发明还提供一种可视化流程构建装置,参照图2,包括:
输入模块100,用于接收对于流程图中节点或边的编辑指令;
更新模块200,用于根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;
算法实现模块300,用于执行变化传播算法,确定受编辑指令影响的节点集合;
渲染模块400,用于根据算法实现模块的输出,仅对受影响节点集合对应的部分依赖关系图进行更新处理。
本实施例装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
本发明还提供一种计算机设备40,参照图3,包括:处理器41和存储器42,存储器42存储有处理器可执行的计算机程序,计算机程序被处理器执行时执行如上的方法。
本发明还提供了一种存储介质43,该存储介质43上存储有计算机程序,该计算机程序被处理器41运行时执行如上的方法。
其中,存储介质43可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本具体实施方式的实施例均为本申请的较佳实施例,并非依此限制本申请的保护范围,其中相同的零部件用相同的附图标记表示。故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。
Claims (10)
1.一种可视化流程构建方法,其特征在于,包括以下步骤:
接收对于流程图中节点或边的编辑指令;
根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;
使用变化传播算法确定受编辑指令影响的节点集合;
仅对所确定的受影响节点集合对应的部分依赖关系图进行更新处理。
2.根据权利要求1所述的一种可视化流程构建方法,其特征在于:所述节点数据模型包括唯一标识符、位置信息和连接边的列表。
3.根据权利要求1所述的一种可视化流程构建方法,其特征在于:所述边数据模型包括起点和终点节点的标识符及路径信息。
4.根据权利要求1所述的一种可视化流程构建方法,其特征在于:所述变化传播算法包括:
a)接收节点或边的更新信息;
b)根据更新信息和依赖关系图,追踪并标识受影响的节点;
c)更新受影响节点的状态,并记录更新操作。
5.根据权利要求1所述的一种可视化流程构建方法,其特征在于:所述依赖关系图是一个有向图,节点表示流程图中的元素,边表示元素之间的依赖关系。
6.根据权利要求1所述的一种可视化流程构建方法,其特征在于:还包括为每个节点构建一个反向依赖列表,该列表记录其他依赖于该节点的节点集合。
7.根据权利要求1所述的一种可视化流程构建方法,其特征在于:还包括使用图数据结构来存储依赖关系图中的节点和边,所述数据结构包括用于存储节点的平衡二叉树。
8.一种可视化流程构建装置,用于实施如权利要求1-7任一项所述的可视化流程构建方法,其特征在于,包括:
输入模块,用于接收对于流程图中节点或边的编辑指令;
更新模块,用于根据所述编辑指令,更新依赖关系图中相应的节点和边的数据模型;
算法实现模块,用于执行变化传播算法,确定受编辑指令影响的节点集合;
渲染模块,用于根据算法实现模块的输出,仅对受影响节点集合对应的部分依赖关系图进行更新处理。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410124125.9A CN117950653A (zh) | 2024-01-30 | 2024-01-30 | 一种可视化流程构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410124125.9A CN117950653A (zh) | 2024-01-30 | 2024-01-30 | 一种可视化流程构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117950653A true CN117950653A (zh) | 2024-04-30 |
Family
ID=90803418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410124125.9A Pending CN117950653A (zh) | 2024-01-30 | 2024-01-30 | 一种可视化流程构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117950653A (zh) |
-
2024
- 2024-01-30 CN CN202410124125.9A patent/CN117950653A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6772168B2 (en) | Object relationship management system | |
US5970496A (en) | Method and system for storing information in a computer system memory using hierarchical data node relationships | |
AU2002249161B2 (en) | Data structure for information systems | |
US6321230B1 (en) | Binary tree with override nodes for representing a time-varying function in an enterprise model | |
US8001159B2 (en) | Using viewtypes for accessing instance data structured by a base model | |
US8229968B2 (en) | Data caching for distributed execution computing | |
US8364723B1 (en) | Apparatus and method for realizing big data into a big object and non-transitory tangible machine-readable medium thereof | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
US20090327373A1 (en) | Method for performing memory leak analysis inside a virtual machine | |
CN114168608B (zh) | 一种用于更新知识图谱的数据处理系统 | |
CN113434557B (zh) | 一种标签数据的范围查询方法、装置、设备及存储介质 | |
KR20160011212A (ko) | 데이터 운영을 위한 메모리 및 스토리지 공간 관리 | |
US20240095241A1 (en) | Data search method and apparatus, and device | |
CN109656950B (zh) | 递归查询方法、装置、服务器及存储介质 | |
WO2015168988A1 (zh) | 一种数据索引创建方法、装置及计算机存储介质 | |
US10013347B2 (en) | Non-blocking parallel memory mechanisms | |
CN114416798A (zh) | 基于数据依赖关系和一致性保证的缓存管理方法及装置 | |
CN117454206A (zh) | 针对晶圆的缺陷的聚类方法、系统、设备及计算机可读介质 | |
Severance | A parametric model of alternative file structures | |
Sankaranarayanan et al. | A Fast k-Neighborhood Algorithm for Large Point-Clouds. | |
CN117950653A (zh) | 一种可视化流程构建方法 | |
KR20210077975A (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN116204532A (zh) | 一种基于dcg的图索引迁移方法及装置 | |
US9239886B2 (en) | Partitioned list | |
CN115272601A (zh) | 一种三维地质模型综合数据库构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |