1.本技术涉及拓扑分析技术领域,具体而言,涉及一种拓线分析方法、装置、电子设备及存储介质。
背景技术:
2.在现有的多维分析拓扑图管理及落库存储方案中,节点、边以及节点和边的关系通常通过一张json表管理;从而当拓扑变更后,web前端和服务端每次将通过整张大json表进行数据传输,当拓扑图中节点和边比较多时,json结构会很大,web前端和服务端进行json传输时,网络负载压力大;json结构被黑客截获后,很容易通过分析整张json画出多维分析拓扑图,即现有的拓扑图存储方式存在较大的安全隐患。
技术实现要素:
3.本技术实施例的目的在于提供一种拓线分析方法、装置、电子设备及存储介质,将节点和边分别进行独立库表结构存储,且在进行拓扑分析时,实时存储更新的节点和边,以调用更新存储进行渲染,从而解决了现有方法网络传输负载压力大以及安全性较低的问题。
4.本技术实施例提供了一种拓线分析方法,应用于服务端,所述方法包括:基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;根据选中节点和拓线模型,得到新拓线分析节点,所述选中节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;对所述新拓线分析节点进行拓线分析,得到所述新拓线分析节点对应的新边;将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点集合和边集合。
5.在上述实现过程中,将新拓线分析节点对应的新边和新节点分别分开存储至第一数据表和第二数据表中,区别于在库中存储整张json结构的方式,不容易造成整个拓扑图信息的泄露,并且在传输过程中,也避免了整张大json表进行数据传输,具有较高的安全性,解决了现有方法网络传输负载压力大以及安全性较低的问题。
6.进一步地,所述对所述新拓线分析节点进行拓线分析,得到所述新拓线分析节点对应的新边之后,所述方法还包括:根据所述拓线分析节点与所述选中节点之间的关系,确定是否保存所述拓线分析
节点和/或创建所述拓线分析节点与所述选中节点之间的新边;在确定保存所述新拓线分析节点,并创建所述新拓线分析节点与所述选中节点之间的新边之后,转入执行所述将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中的步骤。
7.进一步地,所述根据所述拓线分析节点与所述选中节点之间的关系,以确定是否保存所述拓线分析节点和/或创建所述拓线分析节点与所述选中节点之间的边,包括:判断所述新拓线分析节点是否所述当前拓扑图中的原有节点;若是,则判断所述新拓线分析节点与所述选中节点是否为同一节点;若否,则判断所述新拓线分析节点与所述选中节点是否存在共有的边;若否,则创建并保存所述新拓线分析节点与所述选中节点之间的新边。
8.进一步地,所述方法还包括:响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,更新并保存删除后的边集合和节点集合;分别从所述第一数据表和所述第二数据表中删除所述待删除节点的节点信息和待删除边的边信息,更新并保存删除后的第一数据表和第二数据表。
9.在上述实现过程中,在拓扑图中进行拓线剪枝时,对拓线剪枝结果进行实时更新。
10.进一步地,所述响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,包括:遍历客户端发送的需要删除的节点列表;基于所述需要删除的节点列表,确定待删除节点,并在节点集合中删除所述待删除节点;根据所述待删除节点之间的关联关系,或者,所述待删除节点与所述当前拓扑图中原有节点之间的关联关系,遍历查找对应的待删除边;从所述边集合中删除所述待删除边。
11.在上述实现过程中,拓线剪枝时,只对相应的节点集合和边集合进行操作。
12.进一步地,所述方法还包括:将更新后的节点集合和边集合返回至客户端,以在所述客户端渲染得到新拓扑图,其中,所述客户端根据所述节点集合和边集合获取新拓线分析节点的节点信息和新边的边信息,在所述当前拓扑图的基础上,基于所述新拓线分析节点的节点信息和新边的边信息进行渲染。
13.在上述实现过程中,客户端根据更新后的新拓线分析节点和新边的节点信息和边信息,进行渲染,避免了传输整张json表,解决了现有方法网络传输负载压力大以及安全性较低的问题。
14.本技术实施例还提供一种拓线分析装置,所述装置包括:查询模块,用于基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;新节点获取模块,用于根据选中节点和拓线模型,得到新拓线分析节点,所述选中
节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;拓线分析模块,用于对所述新拓线分析节点进行拓线分析,以得到所述新拓线分析节点对应的新边;存储模块,用于将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;更新模块,用于基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点集合和边集合。
15.在上述实现过程中,将新拓线分析节点对应的新边和新节点分别分开存储至第一数据表和第二数据表中,区别于在库中存储整张json结构的方式,不容易造成整个拓扑图信息的泄露,并且在传输过程中,也避免了整张大json表进行数据传输,具有较高的安全性,解决了现有方法网络传输负载压力大以及安全性较低的问题。本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的拓线分析方法。
16.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的拓线分析方法。
17.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的拓线分析方法。
附图说明
18.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
19.图1为本技术实施例提供的一种拓线分析方法的流程图;图2为本技术实施例提供的拓扑图拓线分析及存储过程流程图;图3为本技术实施例提供的拓线剪枝及数据更新流程图;图4为本技术实施例提供的拓线剪枝流程图;图5为本技术实施例提供的一种拓线分析装置的结构框图;图6为本技术实施例提供的另一种拓线分析装置的结构框图。
20.图标:100-查询模块;200-新节点获取模块;300-拓线分析模块;400-存储模块;500-更新模块;600-拓线剪枝模块;700-删除模块。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
22.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
23.请参看图1,图1为本技术实施例提供的一种拓线分析方法的流程图,该方法应用于服务端,区别于现有的节点、边以及节点和边的关系通过一张json表进行管理的方式,本技术将边和节点分别采用独立的数据库表结构进行分开存储,并在此基础上,通过在边(edges)数据库表中设置sid、did、direction字段来代表对应的开始节点、结束节点以及节点与边的关联关系。
24.具体地,在本技术中,拓扑图采用节点和边分开存储与管理的优化方案:在node表(第二数据表)中存储有详细的节点信息,包括但不限于设置sequence,代表节点顺序;hash值作为节点的唯一标识,并通过history_id(节点id)关联history表。
25.history(历史记录)表包括边集合和节点集合,边集合用于存储各个边的边id,以通过边id关联第一数据表中的边信息(边的详细信息存储在第一数据表中),节点集合用于存储各个节点的节点id,以通过节点id关联第二数据表中的节点信息(节点的详细信息存储在第二数据表中)。
26.在edge表(第一数据表)结构中存储有详细的边信息,包括但不限于设置sid,代表源节点;did代表目的节点;direction代表线的方向;hash值作为边的唯一标识,代表边的唯一性;并通过history_id(边id)关联history表。
27.通过上述设置,使得拓扑节点在进行拓线分析时,只需要针对边集合和节点集合中的当前节点进行拓线分析及数据存储即可;在拓线剪枝时,只需要针对当前节点进行剪枝及数据更新即可。
28.将边和节点分别单独存储至node表和edge表,其中,node表中关键字段包括id、name、sequence、type、hash以及关联字段history_id,edge表包括id、name、sid、did、direction以及关联字段history_id字段,将节点和边进行单独存储,并通过history建立关联(history表中的边集合和节点集合中分别存储有边id和节点id,可分别与对应的node表和edge表进行关联)。
29.针对拓扑图中某一节点,在选择数据源和查询模型的基础上,进行拓线分析及数据存储,其目的是获取分析过程中得到的节点集合和边集合,落库存储后并返回给web前端进行渲染。
30.本技术实施例,提供一种拓线分析方法,具体包括以下步骤:步骤s100:基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;拓线分析任务包括任务task_id和拓扑节点唯一标识id等信息,web前端只需要把相应任务task_id、拓扑节点唯一标识id传给服务端(服务器中存储有历史记录的节点集合和边集合),便可在历史记录中基于任务task_id、拓扑节点唯一标识id进行查询,从而获得匹配的当前拓扑图,进而得到当前拓扑图中对应的边和节点,即不需要传递整张json表,网络开销比较小,且在web前端需要进行拓扑图渲染时,可以选择只针对更新节点进行渲染,性能比较高。
31.在基于当前的拓线分析任务进行查询时,对应在当前时刻history(历史记录)表中的节点集合和边集合中进行查询,目的是为了,确定当前拓扑图呈现的边和节点范围,因此可通过分析任务表analysis_task以及history表查询当前拓扑图对应的所有节点集合和边集合。
32.需要说明的是,本方案中在接收到客户端发送的拓线分析任务进行拓线分析时,通过从历史记录中已有拓扑图的节点和边中,查找出作为拓线分析基础的当前拓扑图的节点和边,以便从当前拓扑图中选中一个或多个节点,再基于拓线模型能够方便地实施多维拓线分析,有效提升拓线分析的性能和可靠性。
33.其中,通过将历史记录表进行优化存储,能够有效提升安全性,具体将原有按照整张json表格式存储的拓扑图,调整为将拓扑图的节点和边分别存储至不同的数据表,从而在分别从不同数据表中确定拓扑图对应的节点和边的情况下,才能得到整个拓扑图,比起单张表存储的方式,安全性得到有效提升,并且进行查询时,基于节点id、边id进行查询,比起整个拓扑图匹配查询,能够有效提升查询效率。
34.步骤s200:根据选中节点和拓线模型,得到新拓线分析节点,所述选中节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;根据选中节点(sid)、数据源和查询模型(也称拓线模型),获取新的拓线分析节点。
35.需要说明的是,此处的选中节点可以在确定当前拓扑图后,基于用户的选择操作或自动触发的选择指令确定,也可以通过预设指令指定特定节点作为选中节点,并将该选中节点的节点id包含在拓线分析任务中,也即,将选中节点的节点id作为查询条件之一,从历史记录的节点集合和边集合中,查询包含该选中节点的拓扑图,作为当前拓扑图。
36.在该实施例中,进一步可以认为上述步骤s100中:基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,包括:基于客户端发送的拓线分析任务中的选中节点的节点id,查询历史记录中的节点集合和边集合,确定包含选中节点id的当前拓扑图所对应的边和节点。
37.在此过程中,用户选中节点是当前拓扑图记录中的原有节点中的一个或多个,数据源和查询模型(即拓线模型),用于表征选中节点与原有节点的关联关系,从而确定新拓线分析节点。例如选中节点为192.168.45.129,基于拓线模型可知该选中节点与哪些原有节点相关联,从而确定新拓线分析节点。
38.新拓线分析节点可以是当前拓扑图原有节点中的节点,也可以不是当前拓扑图原有节点中的节点即新增加的新节点。
39.选中节点为所述当前拓扑图中的原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系。
40.步骤s300:对所述新拓线分析节点进行拓线分析,以得到所述新拓线分析节点对应的新边;步骤s400:将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;其中,新边的边id及边信息通过映射或者键值对等方式关联存储至第一数据表
中,以便于通过新边的边id能够方便地关联查询出相应的边信息;相应地,新拓线分析节点的节点id及节点信息也可以通过映射或者键值对等方式关联存储至第二数据表中,以便于通过新拓线分析节点的节点id能够方便地关联查询出相应的节点信息;具体地,如图2所示,为拓扑图拓线分析及存储过程流程图,该步骤具体可以包括:步骤s310:根据所述新拓线分析节点与所述选中节点之间的关系,确定是否保存所述新拓线分析节点和/或创建所述新拓线分析节点与所述选中节点之间的新边;该步骤具体可以包括:步骤s311:判断所述新拓线分析节点是否为所述当前拓扑图中的原有节点;具体可以通过循环遍历新获取的节点即新拓线分析节点,检查新拓线分析节点是否与当前拓扑图中的原有节点重复。
41.步骤s312:若是,则判断所述拓线分析节点与所述选中节点是否为同一节点;若重复,也即,新拓线分析节点是当前拓扑图中的原有节点,则进一步判断新拓线分析节点是否和选中节点(sid节点)为同一节点。
42.步骤s313:若否,则判断所述拓线分析节点与所述选中节点是否存在共有的边;若判断新拓线分析节点和选中节点不是同一节点,进一步判断拓线分析节点与选中节点之间是否存在共有的边。
43.步骤s314:若否,则创建并保存从所述拓线分析节点到所述选中节点之间的新边;若判断拓线分析节点与选中节点之间不存在共有的边,则创建并保存拓线分析节点到选中节点之间的新边,该新边例如可以为一条从新节点到选中节点(sid节点)之间的边。
44.在另外一个实施例中,还包括以下步骤:步骤s315:若新拓线分析节点不是当前拓扑图中的原有节点,则设置拓线分析节点的序号并保存;若新拓线分析节点与当前拓扑图中的原有节点没有重复,则设置新节点序号,并保存节点以及节点对应的节点信息。
45.步骤s316:创建并保存所述选中节点到所述拓线分析节点之间的一条边。
46.创建并保存一条新边(从sid节点到新节点的)。
47.步骤s320:在确定保存所述新拓线分析节点,并创建所述新拓线分析节点与所述选中节点之间的新边之后,转入执行所述将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中的步骤。
48.若需要保存新边,则创建历史日志记录并更新分析任务表和关联字段;创建历史日志记录(history表),并更新analysis_task以及关联history_id,history表包括边集合和节点集合;另外,因为新节点和新边在选中节点对应的当前拓扑图中,但不一定在同一个任务下的另一个版本的拓扑图中,因此需要对analysis_task进行更新。
49.将新边和拓线分析节点分别进行存储,以得到节点集合和边集合。
50.对于拓扑图中进行拓线剪枝及数据更新过程,如图3所示,为拓线剪枝及数据更新流程图,具体包括以下步骤:步骤s500:基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点
集合和边集合。
51.将新节点集合和边集合,返回给web前端,使得web前端进行拓扑图渲染。
52.将拓扑图节点和边分开存储与管理,且处理过程中实时将拓线分析结果落库更新,只需要对节点和边进行操作,提升了存储效率及安全性。
53.将节点拓线分析优化为只针对当前节点进行操作及结果输出(边集合和节点集合),而不是通过变更整张json表,降低了网络开销,同时也提升了web前端数据渲染的性能。
54.步骤s600:响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,更新并保存删除后的边集合和节点集合;如图4所示,为拓线剪枝流程图,该步骤具体可以包括:步骤s601:遍历客户端发送的需要删除的节点列表;其中,此处的节点列表可以为客户端传入的要删除的节点列表nodetodeletelist。
55.通过分析任务表和历史日志记录查询当前拓扑图对应的所有节点集合和边集合;通过分析任务表analysis_task以及history表查询当前拓扑图对应的所有节点nodelists和边集合edgelists。
56.步骤s602:基于所述需要删除的节点列表,确定待删除节点,并在节点集合中删除所述待删除节点;循环遍历客户端传入的要删除的节点列表nodetodeletelist。
57.在节点集合nodelists中remove要删除的节点(nodetodeletelist)步骤s603:根据所述待删除节点之间的关联关系,或者,所述待删除节点与所述当前拓扑图中原有节点之间的关联关系,遍历查找对应的待删除边;待删除节点的个数可能是一个或多个,如果待删除节点有多个,那么有关联关系的两个待删除节点之间的边也需要删除;如果待删除节点有一个,则需要考虑待删除节点与原有节点之间的关联关系,待删除节点与原有节点之间的边也需要删除。
58.步骤s604:从所述边集合中删除所述待删除边。
59.根据待删除节点,遍历找到要删除的边,并在edgelists中remove要删除的边。
60.更新并保存删除后的所述边集合和所述节点集合即更新删除后的节点集合和边集合到库中。
61.步骤s700:分别从所述第一数据表和所述第二数据表中删除所述待删除节点的节点信息和待删除边的边信息,更新并保存删除后的第一数据表和第二数据表。
62.在历史日志记录中记录删除动作并更新分析任务表以及最新的关联字段。
63.在history表中记录删除动作,并更新analysis_task表对应的最新history_id。
64.该方法还包括,将更新后的节点集合和边集合返回至客户端进行渲染,具体地:作为其中一种实施方式,将更新后的节点集合和边集合返回至客户端,以在所述客户端渲染得到新拓扑图,其中,所述客户端根据所述节点集合和边集合获取新拓线分析节点的节点信息和新边的边信息,在所述当前拓扑图的基础上,基于所述新拓线分析节点的节点信息和新边的边信息进行渲染。
65.作为另一种实施方式,将更新后的节点集合和边集合返回至客户端,以在所述客
户端渲染得到新拓扑图,其中,所述客户端利用所述节点集合和所述边集合查询生成新拓扑图需要的所有边id和节点id,并基于所述所有边id和节点id,分别从第一数据表和所述第二数据中查询对应的边信息和节点信息,并基于查询到的边信息和节点信息进行渲染。
66.在客户端已有的当前拓扑图的基础上,可基于新拓线分析节点的节点信息和新边的边信息进行渲染;若没有拓扑图,则可通过边id和节点id查询得到渲染拓扑图所需的所有的节点信息和边信息,从而完成渲染。在此过程中,客户端与服务端之间无需传递整张json表。
67.由上述可知,进行拓线剪枝时,将拓扑图节点和边分开存储与管理,且处理过程中实时将剪枝结果落库更新,提升了存储效率以及安全性;并且只需要对针对当前节点进行剪枝及数据更新即可,而无需对整张json进行变更和操作,降低了网络开销,同时也提升了web前端数据渲染的性能,具有更高的处理效率。
68.将新拓线分析节点对应的新边和新节点分别分开存储至第一数据表和第二数据表中,区别于在库中存储整张json结构的方式,避免了整张大json表进行数据传输;并基于新增的边表对边集合和节点集合进行实时更新存储;只需将更新后的节点集合和边集合发送至前端进行渲染,即只针对当前新增节点进行渲染,因此在数据传输过程中,web前端(客户端)无需将整张json表传输给服务端,只需将相应任务task_id、拓扑节点唯一标识id传给服务端便可进行相应操作,减轻了网络负载的压力,且只针对当前节点进行渲染,效率较高,且具有较高的安全性,解决了现有方法网络传输负载压力大以及安全性较低的问题。
69.本技术实施例还提供一种拓线分析装置,如图5所示,为拓线分析装置的结构框图,所述装置包括:查询模块100,用于基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;新节点获取模块200,用于根据选中节点和拓线模型,得到新拓线分析节点,所述选中节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;拓线分析模块300,用于对所述新拓线分析节点进行拓线分析,以得到所述新拓线分析节点对应的新边;对于具体的拓线分析过程,已在上述方法中阐明,在此不再赘述。
70.存储模块400,用于将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;更新模块500,用于基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点集合和边集合。
71.如图6所示,为另一种拓线分析装置的结构框图,该装置还包括:拓线剪枝模块600,用于响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,更新并保存删除后的边集合和节点集合;对于具体的拓线剪枝过程已在上述方法中具体阐明,在此不再赘述。
72.删除模块700,用于分别从所述第一数据表和所述第二数据表中删除所述待删除节点的节点信息和待删除边的边信息,更新并保存删除后的第一数据表和第二数据表。
73.通过把边和节点拆开单独来存储,且在进行拓扑拓线以及拓线剪枝时,实时调用服务端api落库更新存储,从而避免网络传输开销大以及不安全等因素。
74.当用户进行拓线分析或拓线剪枝时,web前端和服务端之间的数据交互都是针对当前拓扑节点进行的,所以,web前端只需要把相应任务task_id、拓扑节点唯一标识id传给服务端,便可完成相应操作,即不需要传递整张json,网络开销比较小,且web前端针对当前节点进行渲染时,性能比较高。
75.当针对某一拓扑节点的数据被不法分子截获了,也不会影响整个拓扑图,安全性比较好。
76.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中所述的拓线分析方法。
77.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中所述的拓线分析方法。
78.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
79.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
80.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
81.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
82.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
83.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:
1.一种拓线分析方法,其特征在于,应用于服务端,所述方法包括:基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;根据选中节点和拓线模型,得到新拓线分析节点,所述选中节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;对所述新拓线分析节点进行拓线分析,得到所述新拓线分析节点对应的新边;将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点集合和边集合。2.根据权利要求1所述的拓线分析方法,其特征在于,所述对所述新拓线分析节点进行拓线分析,得到所述新拓线分析节点对应的新边之后,所述方法还包括:根据所述新拓线分析节点与所述选中节点之间的关系,确定是否保存所述新拓线分析节点和/或创建所述新拓线分析节点与所述选中节点之间的新边;在确定保存所述新拓线分析节点,并创建所述新拓线分析节点与所述选中节点之间的新边之后,转入执行所述将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中的步骤。3.根据权利要求2所述的拓线分析方法,其特征在于,所述根据所述新拓线分析节点与所述选中节点之间的关系,确定是否保存所述新拓线分析节点和/或创建所述新拓线分析节点与所述选中节点之间的新边,包括:判断所述新拓线分析节点是否为所述当前拓扑图中的原有节点;若是,则判断所述新拓线分析节点与所述选中节点是否为同一节点;若否,则判断所述新拓线分析节点与所述选中节点是否存在共有的边;若否,则创建并保存所述新拓线分析节点与所述选中节点之间的新边。4.根据权利要求1所述的拓线分析方法,其特征在于,所述方法还包括:响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,更新并保存删除后的边集合和节点集合;分别从所述第一数据表和所述第二数据表中删除所述待删除节点的节点信息和待删除边的边信息,更新并保存删除后的第一数据表和第二数据表。5.根据权利要求4所述的拓线分析方法,其特征在于,所述响应于对当前拓扑图进行拓线剪枝的指令,分别从节点集合和边集合中删除对应的待删除节点和待删除边,包括:遍历客户端发送的需要删除的节点列表;基于所述需要删除的节点列表,确定待删除节点,并在节点集合中删除所述待删除节点;根据所述待删除节点之间的关联关系,或者,所述待删除节点与所述当前拓扑图中原有节点之间的关联关系,遍历查找对应的待删除边;从所述边集合中删除所述待删除边。
6.根据权利要求1所述的拓线分析方法,其特征在于,所述方法还包括:将更新后的节点集合和边集合返回至客户端,以在所述客户端渲染得到新拓扑图,其中,所述客户端根据所述节点集合和边集合获取新拓线分析节点的节点信息和新边的边信息,在所述当前拓扑图的基础上,基于所述新拓线分析节点的节点信息和新边的边信息进行渲染。7.根据权利要求1所述的拓线分析方法,其特征在于,所述方法还包括:将更新后的节点集合和边集合返回至客户端,以在所述客户端渲染得到新拓扑图,其中,所述客户端利用所述节点集合和所述边集合查询生成新拓扑图需要的所有边id和节点id,并基于所述所有边id和节点id,分别从第一数据表和所述第二数据中查询对应的边信息和节点信息,并基于查询到的边信息和节点信息进行渲染。8.一种拓线分析装置,其特征在于,所述装置包括:查询模块,用于基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点,所述边集合用于存储各个边的边id,以通过所述边id关联第一数据表中的边信息,所述节点集合用于存储各个节点的节点id,以通过所述节点id关联第二数据表中的节点信息;新节点获取模块,用于根据选中节点和拓线模型,得到新拓线分析节点,所述选中节点为所述当前拓扑图中原有节点中的一个或多个,所述拓线模型用于确定所述选中节点与所述原有节点之间的关联关系;拓线分析模块,用于对所述新拓线分析节点进行拓线分析,以得到所述新拓线分析节点对应的新边;存储模块,用于将所述新边的边id及边信息存储至对应的第一数据表,将所述新拓线分析节点的节点id及节点信息存储至对应的第二数据表中;更新模块,用于基于所述新拓线分析节点的节点id和所述新边的边id,更新所述节点集合和边集合。9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行根据权利要求1至7中任一项所述的拓线分析方法。10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至7任一项所述的拓线分析方法。
技术总结
本申请实施例提供一种拓线分析方法、装置、电子设备及存储介质,包括:基于客户端发送的拓线分析任务,查询历史记录中的节点集合和边集合,得到当前拓扑图对应的边和节点;根据选中节点和拓线模型,得到新拓线分析节点,选中节点为当前拓扑图中原有节点中的一个或多个,拓线模型用于确定选中节点与原有节点之间的关联关系;对新拓线分析节点进行拓线分析,得到新拓线分析节点对应的新边;将新边的边ID及边信息存储至对应的第一数据表,将新拓线分析节点的节点ID及节点信息存储至对应的第二数据表中;基于新拓线分析节点的节点ID和新边的边ID,更新节点集合和边集合,从而解决了现有技术中网络传输负载压力大以及安全性较低的问题。的问题。的问题。
技术研发人员:常月
受保护的技术使用者:奇安信科技集团股份有限公司
技术研发日:2022.02.10
技术公布日:2022/3/8