发明名称 一种节点之间的依赖关系系统及其运行方法
摘要 本发明涉及节点,特别涉及一种节点之间的依赖关系系统及其运行方法。该节点之间的依赖关系系统,包括节点,其特殊之处在于:节点之间设置生成顺序模块、避免循环依赖模块、启动及停止顺序模块,其中节点通过避免循环依赖模块连接其他节点形成无循环依赖的依赖关系,生成顺序模块对各节点间的依赖关系进行遍历,形成顺序结构,启动及停止顺序模块设置节点的用于启动的向上依赖顺序及用于停止的向下依赖顺序。通过避免循环依赖模块、启动及停止顺序模块将电力公司中的各节点连接,能方便动态的改变节点间依赖关系,该依赖关系中避免出现循环依赖,并通过生成顺序模块给该依赖关系排序形成顺序结构,方便可靠。
申请公布号 CN103150485B 申请公布日期 2016.08.03
申请号 CN201310110676.1 申请日期 2013.04.01
申请人 山东鲁能软件技术有限公司;国网山东省电力公司电力科学研究院 发明人 邢宏伟;丁书耕;张建辉;陈雷动;王军建;陈飞龙
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 济南泉城专利商标事务所 37218 代理人 张贵宾
主权项 一种节点之间的依赖关系系统,包括节点,其特征在于 :节点包括其名字、父节点、节点列表,该节点列表包括机组列表、计算模型列表,机组与节点共用同一个类,通过函数来判断是否属于机组还是节点,计算模型包括名字、所属的节点或者组,依赖列表、相关的计算模型信息,节点之间依赖关系系统包括:避免循环依赖模块,生成顺序模块,节点的启动及停止的顺序模块,即复杂节点的排序,节点为机组、计算模型的至少一种,其中机组的启动,其实是各自包括的计算模型的启动;节点的启动,其实是节点下包括的计算模型、机组的启动,避免循环依赖模块:初始时,各个计算模型无依赖,每添加一个计算模型的依赖关系,都需通过递归调用来查看各个计算模型是否形成循环依赖,没有形成依赖则添加成功,并保存模块依赖关系,否则提示不能添加,生成顺序模块:对各个计算模型依赖关系进行遍历,形成树状的顺序结构,机组、计算模型、节点的启动及停止的顺序模块:对应于机组、计算模型、节点的向上依赖顺序及向下依赖顺序,节点之间的依赖关系系统对于给定节点,能取得给定节点的依赖顺序,对于有启动和停止顺序的复杂节点来说,能取得给定节点的向上依赖顺序和向下依赖顺序,节点与节点间避免循环依赖模块的实现步骤:(1)初始时计算模型间无依赖关系;(2)每添加一个计算模型的依赖关系,都新创建一个空的计算模型的列表A,将该计算模型及依赖的计算模型添加到列表A中,之后查看其依赖的计算模型是否也有依赖,如果有,也添加到计算模型列表中,每次添加时,都判断是否列表中已经存在要添加的计算模型,如果存在,说明有循环依赖,则禁止添加该依赖,否则,循环递归调用其依赖,直到找不到依赖关系为止,节点与节点间的启动及停止顺序模块的实现步骤:节点的启动和停止,也就是机组、计算模型的启动和停止,机组的启动和停止,也就是机组下计算模型的启动和停止,因此,此处以计算模型的启动和停止来进行讨论,计算模型的启动和停止也就转化成了获得计算模型的向上依赖顺序和向下依赖顺序的问题,给定计算模型的向上依赖顺序模块实现步骤:(1)创建最终的顺序列表A,临时列表B;(2)取得给定计算模型的直接向上依赖的模型,即直接取出给定模型的依赖模型即可,若依赖的为机组,取得机组下的计算模型;(3)循环直接向上依赖的模型,如果该依赖的模型不在列表A中,将该模型放入列表A,同时放入临时列表B,否则进入下次循环;(4)将临时列表B作为新的给定计算模型,重复执行步骤2、3直至取得最终列表A;(5)列表A通过生成顺序模块进行排序,即得到最终结果,向下依赖顺序模块实现步骤:(1)创建最终的顺序列表A,临时列表B;(2)取得给定计算模型的直接向下依赖的模型,即先取得所有的计算模型及机组下的计算模型,创建列表C,对整个的模型进行遍历,如果有模型的依赖关系为给定的计算模型,则判断该模型是否在列表C中,不在则添加,在则跳过,最终得出所有的直接向下依赖的模型;(3)循环直接向下依赖的模型,如果该依赖的模型不在列表A中,将该模型放入列表A,同时放入临时列表B,否则进入下次循环;(4)将临时列表B作为新的给定计算模型,重复执行步骤2、3直至取得最终列表A;(5)对列表A通过生成顺序模块进行排序,即得到最终结果,节点与节点间的生成顺序模块的实现步骤:(1)树状模型的建立,创建最终列表A,对于给定的多个计算模型及机组来说,首先,取得所有的计算模型及机组下的计算模型,找出没有被依赖关系的计算模型;(2)对没有依赖关系的计算模型内部进行排序,先对机组内的计算模型进行排序,收集不在机组内的计算模型,按照周期大小进行排序,之后完成了没有依赖关系的计算模型的排序;(3)循环没有依赖关系的计算模型,看是否能在给定的多个计算模型中找到,如能找到,且不在列表A中,则添加入列表A;(4)找出没有依赖关系的直接向上依赖的计算模型,将之做为新的没有依赖关系的计算模型,重复步骤2、3直至结束;(5)对得出的计算模型列表A进行反向排序,至此完成了对于给定计算模型的排序。
地址 250101 山东省济南市高新区新泺大街2008号银荷大厦B座5层