CN114185535B 基于流程化配置的信息采集方法及装置(上海观安信息技术股份有限公司)_第1页
CN114185535B 基于流程化配置的信息采集方法及装置(上海观安信息技术股份有限公司)_第2页
CN114185535B 基于流程化配置的信息采集方法及装置(上海观安信息技术股份有限公司)_第3页
CN114185535B 基于流程化配置的信息采集方法及装置(上海观安信息技术股份有限公司)_第4页
CN114185535B 基于流程化配置的信息采集方法及装置(上海观安信息技术股份有限公司)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(19)国家知识产权局(12)发明专利王彤辉付闯闯胡绍勇所(普通合伙)34124权利要求书3页说明书12页附图3页本发明公开一种基于流程化配置的信息采每一流程节点采用与流程节点类型对应的执行21.一种基于流程化配置的信息采集方法,其特征在于,对每一信息采集任务预先定义对应的业务流程文件,所述方法包括:获取所述信息采集任务;按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例;在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果;所述预先定义的业务流程文件的信息包括流程基础定义、流程节点、节点执行命令列表和目标节点,所述流程基础定义包括节点参数列表,所述节点类型包括开始节点、登录类节点、执行类节点、网关类节点、子流程类节点和结束节点;所述网关类节点对应的所述执行策略为根据所述目标节点的成立条件,得到下一步执行的所述节点参数列表;所述执行类节点对应的所述执行策略为遍历所述节点执行命令列表或所述节点参数列表,生成执行命令以根据所述执行命令调用执行器得到执行结果;所述子流程类节点对应的所述执行策略为挂起主流程,根据所述子流程类节点绑定的流程ID新建与所述子流程类节点对应的子任务实例,并在所述子任务实例全部执行结束时唤醒主所述主流程;在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例之前,还包括:判断当前所述流程节点是否配置有节点执行前置处理器;若是,则调用所述节点执行前置处理器对当前所述流程节点的属性进行二次定义;若否,则采用与当前所述流程节点类型对应的执行策略执行所述流程实例。2.如权利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述方法,还包预加载所述业务流程文件,生成流程定义对象并加入到缓存列表;启动热加载监听线程,监听所述业务流程文件,并在监听到所述业务流程文件变化时,热加载所述业务流程文件。3.如权利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述流程节点的属性信息包括所述节点类型;所述执行类节点包括循环节点和普通节点,所述网关类节点包括普通网关节点和排他网关节点,所述子流程类节点包括登录子流程节点、普通子流程节点和并行子流程节点;其中,所述开始节点对应的执行策略为直接流转至下一流程节点;所述登录类节点对应的所述执行策略为构建目标登录链接;所述结束节点对应的所述执行策略为标记所述任务实例为结束状态。4.如权利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述流程节点的属性还包括结果解析api路径,在采用与所述执行类节点对应的执行策略执行所述流程实例,得到所述执行结果时,还包括:根据当前节点配置的所述结果解析api路径,工具代理调用与所述结果解析api路径对应的方法对所述执行结果进行处理,得到符合业务需要的结构化结果。35.如权利要求1所述的基于流程化配置的信息采集方法,其特征在于,所述获取所述信判断所述信息采集任务的运行状态;在所述信息采集任务的类别为停止任务时,设置所述信息采集任务为停止状态;在所述信息采集任务的类别为执行任务时,确定所述信息采集任务为有效任务;按照与所述有效任务对应的所述业务流程文件,生成与所述有效任务对用的流程实将所述流程实例加入缓存列表,将所述有效任务插入数据库。6.如权利要求5所述的基于流程化配置的信息采集方法,其特征在于,所述方法还包监控所述数据库中的所述有效任务的运行时间,确定所述有效任务中是否存在超时任务和未超时任务;若存在未超时任务,则恢复所述未超时任务;若存在超时任务,则清除所述超时任务。7.如权利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述流程节点的属性还包括执行异常处理策略,所述方法还包括:确定所述执行命令异常;调用所述执行异常处理策略进行处理。8.如权利要求3所述的基于流程化配置的信息采集方法,其特征在于,所述方法还包根据所述命令的内容和所述命令的执行类型,通过模板模式循环匹配对应类型的命令执行实现类,调用所述执行器得到所述执行结果;9.一种基于流程化配置的信息采集装置,其特征在于,对每一信息采集任务预先定义对应的业务流程文件,所述装置包括:获取模块,用于获取所述信息采集任务;生成模块,用于按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例;执行模块,用于在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果;所述预先定义的业务流程文件的信息包括流程基础定义、流程节点、节点执行命令列表和目标节点,所述流程基础定义包括节点参数列表,所述节点类型包括开始节点、登录类所述网关类节点对应的所述执行策略为根据所述目标节点的成立条件,得到下一步执行的所述节点参数列表;所述执行类节点对应的所述执行策略为遍历所述节点执行命令列表或所述节点参数列表,生成执行命令以根据所述执行命令调用执行器得到执行结果;所述子流程类节点对应的所述执行策略为挂起主流程,根据所述子流程类节点绑定的流程ID新建与所述子流程类节点对应的子任务实例,并在所述子任务实例全部执行结束时CN114185535B4唤醒主所述主流程;在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例之前,还包括:判断当前所述流程节点是否配置有节点执行前置处理器;若是,则调用所述节点执行前置处理器对当前所述流程节点的属性进行二次定义;若否,则采用与当前所述流程节点类型对应的执行策略执行所述流程实例。5基于流程化配置的信息采集方法及装置技术领域[0001]本发明属于软件技术领域,具体涉及一种基于流程化配置的信息采集方法及装背景技术[0002]建设安全资产管理平台,实现对资产全生命周期的可视化安全管理,建立企业全面动态的资产清单库是信息安全的基础,优秀的资产信息采集工具是建立健全的资产库的必要条件。中采集工具开发工作量巨大;(2)采集工具高度制定化,灵活性差,扩展性低;(3)异常情况难以排查。[0004]如申请号202011314586.0的发明专利申请公开的一种基于电力系统的多源异构数据采集汇聚系统及方法,但该方案面向于电力系统场景,通过提供多源异构数据源配置界面,通过界面方式灵活快捷配置异构数据源,简化数据源开发工作,其主要针对非实时性数据、日志数据以及互联网数据的采集汇聚,以及不同数据源之间的存储,并未涉及操作系发明内容[0005]本发明旨在提供一种基于流程化配置的信息采集方法、装置、工具及存储介质,以降低程序耦合性,提高信息采集工具的开发效率。[0006]本发明通过以下技术手段实现解决上述技术问题的:[0007]一方面,本发明实施例提供了一种基于流程化配置的信息采集方法,对每一信息采集任务预先定义对应的业务流程文件,所述方法包括:[0009]按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例;[0010]在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果。[0011]通过采用工作流的思想,预先定义每一种信息采集任务对应的业务流程文件,由业务流程文件来提供业务能力,在获取到信息采集任务时,利用对应的业务流程文件生成与信息采集任务对应的任务实例,在任务实例运行时,根据运行数据动态流转工作节点,达到仅通过修改业务流程文件即可实现大多数通用信息的采集。在任务实例运行时动态调用用户自定义的实现内容,将用户行为与公共行为解耦合,最大化达到对采集任务运行流转的控制,极大的降低了因适配业务修改带来的硬编码工作,提高了信息采集工具的开发效[0012]进一步地,所述预先定义的业务流程文件的信息包括流程基础定义、流程节点、节6点执行命令列表和目标节点;[0013]所述流程基础定义的属性包括流程ID、版本号、超时时长和节点参数列表;[0014]所述流程节点的属性包括节点类型、节点ID、结果解析api路径、执行命令列表和目标节点列表;[0015]所述节点执行命令列表的属性包括命令ID、命令内容和命令执行类型;[0016]所述目标节点的属性包括目标节点ID和连线表达式。[0018]预加载所述业务流程文件,生成流程定义对象并加入到缓存列表;[0019]启动热加载监听线程,监听所述业务流程文件,并在监听到所述业务流程文件变化时,热加载所述业务流程文件。流程类节点和结束节点;[0021]所述执行类节点包括循环节点和普通节点,所述网关类节点包括普通网关节点和排他网关节点,所述子流程类节点包括登录子流程节点、普通子流程节点和并行子流程节[0022]进一步地,所述开始节点对应的执行策略为直接流转至下一流程节点;[0023]所述登录类节点对应的所述执行策略为构建目标登录链接;[0024]所述网关类节点对应的所述执行策略为根据所述目标节点的成立条件,得到下一步执行的所述节点参数列表;[0025]所述执行类节点对应的所述执行策略为遍历所述节点执行命令列表或所述节点参数列表,生成执行命令以根据所述执行命令调用执行器得到执行结果;[0026]所述子流程类节点对应的所述执行策略为挂起主流程,根据所述子流程节点绑定的流程ID新建与所述子流程节点对应的子任务实例,并在所述子任务实例全部执行结束时唤醒主所述主流程;[0027]所述结束节点对应的所述执行策略为标记所述任务实例为结束状态。[0028]进一步地,所述在每一流程节点采用与所述流程节点类型对应的执行策略执行所[0029]判断当前所述流程节点是否配置有节点执行前置处理器;[0030]若是,则调用所述节点执行前置处理器对当前所述流程节点的属性进行二次定[0031]若否,则采用与当前所述流程节点类型对应的执行策略执行所述流程实例。[0032]进一步地,在采用与所述执行类节点对应的执行策略执行所述流程实例,得到所[0033]根据当前节点配置的所述结果解析api路径,工具代理调用与所述结果解析api路径对应的方法对所述执行结果进行处理,得到符合业务需要的结构化结果。[0035]判断所述信息采集任务的运行状态;[0036]在所述信息采集任务的类别为停止任务时,设置所述信息采集任务为停止状态;[0037]在所述信息采集任务的类别为执行任务时,确定所述信息采集任务为有效任务;7[0038]按照与所述有效任务对应的所述业务流程文件,生成与所述有效任务对用的流程[0039]将所述流程实例加入缓存列表,将所述有效任务插入数据库。[0041]监控所述数据库中的所述有效任务的运行时间,确定所述有效任务中存在超时任务和未超时任务;[0042]恢复所述未超时任务,清除所述超时任务。[0043]进一步地,所述流程节点的属性还包括执行异常处理策略,所述方法还包括:[0044]确定所述执行命令异常;[0045]调用所述执行异常处理策略进行处理。[0047]根据所述命令内容和所述命令执行类型,通过模板模式循环匹配对应类型的命令执行实现类,调用所述执行器得到所述执行结果;[0049]第二方面,本发明实施例还提供了一种基于流程化配置的信息采集装置,对每一信息采集任务预先定义对应的业务流程文件,所述装置包括:[0051]生成模块,用于按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例;[0052]执行模块,用于在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果。[0053]第三发面,本发明实施例还提供了一种信息采集[0054]第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的方法。[0056](1)通过采用工作流的思想,预先定义每一种信息采集任务对应的业务流程文件,由业务流程文件来提供业务能力,在获取到信息采集任务时,利用对应的业务流程文件生成与信息采集任务对应的任务实例,在任务实例运行时,根据运行数据动态流转工作节点,达到仅通过修改业务流程文件即可实现大多数通用信息的采集。在任务实例运行时动态调用用户自定义的实现内容,将用户行为与公共行为解耦合,最大化达到对采集任务运行流转的控制,极大的降低了因适配业务修改带来的硬编码工作,提高了信息采集工具的开发[0057](2)通过设置热加载监听线程,监听到业务流程文件有修改变化时,对变化的业务[0058](3)通过配置节点执行前置处理器,可用于对流程定义进行修改,使用灵活,进一步提高了软件可扩展性,并且保证了信息采集的安全性。[0059](4)在得到信息采集任务的执行结果后,调用结果解析流程对执行结果进行解析,可得到符合用户自定义数据结构的数据。[0060](5)通过提供配置化的节点执行异常处理策略,在确定执行命令异常时,对异常命8令进行处理,避免以往异常后问题难以排查的问题,也控制了异常对任务执行影响。[0061]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明[0062]图1是本发明一实施例中一种基于流程化配置的信息采集方法的流程图;[0063]图2是本发明一实施例中一种基于流程化配置的信息采集方法的整体流程图;[0064]图3是本发明一实施例中一种基于流程化配置的信息采集装置的结构图。具体实施方式[0065]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0066]如图1所示,本实施例公开了一种基于流程化配置的信息采集方法,对每一信息采集任务预先定义对应的业务流程文件,所述方法包括如下步骤:[0068]S120、按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例。[0069]需要说明的是,本实施例中获取的信息采集任务可以是来自第三方平台,在获取到信息采集任务后先对参数进行校验,校验通过后获取该信息采集任务对应的业务流程文件,生成与信息采集任务对应的流程实例,将流程实例加入缓存,将信息采集任务信息插入嵌入式数据库,然后从流程开始节点执行。[0070]应当理解的是,本实施例中对参数进行校验指的是对目标ip和任务流程编码进行[0071]S30、在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果。[0072]需要说明的是,本实施例通过采用工作流的思想,预先定义业务流程文件来提供业务能力,在任务实例运行时,根据运行数据动态流转工作节点,达到仅通过修改业务流程文件即可实现大多数通用信息的采集,降低了信息采集工具的开发工作量,提高开发效率。在任务实例运行时动态调用用户自定义的实现内容,将用户行为与公共行为解耦合,最大化达到对采集任务运行流转的控制,极大的降低了因适配业务修改带来的硬编码工作,应[0073]应当理解的是,本实施例可以直观的从流程定义文件中看到信息采集流程的业务逻辑,无需将逻辑都耦合到代码里。可以低成本甚至零成本的修改流程逻辑,无需像相关技术中修改一些逻辑就要到处重构代码。通过预先定义业务流程文件来提供业务能力,降低步骤执行、结果解析、结果返回等模块间的耦合,使用方仅需要关注业务[0074]在一实施例中,所述预先定义的业务流程文件的信息包括流程基础定义(process)、流程节点(node)、节点执行命令列表(cmdInfo)以及目标节点(targetRef);9[0075]所述流程基础定义的属性包括流程ID、版本号、超时时长和节点参数列表;标节点列表、是否需要缓存连接和节点执行前置处理器name;[0077]所述节点执行命令列表的属性包括命令ID、是否加密传输、命令内容和命令执行类型,其中,所述命令内容支持springEL表达式动态解析命令,代入任务实例和节点执行结[0078]所述目标节点的属性包括目标节点ID和连线表达式,其中,连线表达式可采用SpringEL表达式,代入任务执行结果变量后得出节点是否成立。[0079]需要说明的是,本实施例中用户可灵活定义信息采集和结果解析流程,做到业务功能的轻松灵活扩展。[0081]预加载所述业务流程文件,生成流程定义对象并加入到缓存列表;[0082]启动热加载监听线程,监听所述业务流程文件,并在监听到所述业务流程文件变[0083]需要说明的是,本实施例在启动信息采集任务时,利用加载组件通过java反射的方式获取流程定义加载实现类,根据配置文件中的servicesJcDefFilePath属性,扫描并加载此配置文件夹下的业务流程文件,生成流程定义对象加入缓存,并启动热加载监听线程,监听到业务流程文件变化时,对变化的业务流程文件热加载,实现对业务流程文件的修改。[0084]在一实施例中,在启动信息采集任务时,利用扫描组件通过java反射,扫描被@ExecResolverMapping标记的类和方法,预加载并构建结果解析流程对象,加入到内存缓存列表中。[0085]在一实施例中,所述流程节点的类型包括开始节点、登录类节点、执行类节点、网关类节点、子流程类节点和结束节点;[0086]所述执行类节点包括循环节点和普通节点,所述网关类节点包括普通网关节点和排他网关节点,所述子流程类节点包括登录子流程节点、普通子流程节点和并行子流程节[0088](1)登录类节点对应的所述执行策略为构建目标登录链接。[0089]需要说明的是,通过登录类节点构造目标对象的登录链接,而且可以复用登录类[0090](2)网关类节点对应的所述执行策略为根据所述目标节点的成立条件,得到下一步执行的所述节点参数列表。[0091]其中,普通网关节点会将连线表达式代入任务变量后判断目标节点是否成立,并基于成立的目标节点得到下一步执行的节点参数列表;排他网关则基于第一个成立的目标节点得到下一步执行的节点参数列表。[0092](3)执行类节点对应的所述执行策略为遍历所述节点执行命令列表或所述节点参数列表,生成执行命令以根据所述执行命令调用执行器得到执行结果。[0093]其中,普通节点会遍历命令列表,代入任务变量生成最终执行命令调用对应类型的执行器,异步得到结果通过反射统一调用用户自定义解析后继续下一步。[0094]需要说明的是,若配置了碎片化返回,工具会通过事件模式将结果上报给上游平[0095]循环节点会遍历节点参数列表,生成多组命令列表循环调用命令执行器,异步得到结果后通过反射统一调用用户自定义的结果解析流程。[0096](4)子流程类节点对应的所述执行策略为挂起主流程,根据所述子流程节点绑定的流程ID新建与所述子流程节点对应的子任务实例,并在所述子任务实例全部执行结束时唤醒主所述主流程。[0097](5)结束节点对应的所述执行策略为标记所述任务实例为结束状态。[0098]在一实施例中,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例之前,还包括:[0099]判断当前所述流程节点是否配置有节点执行前置处理器;[0100]若是,则调用所述节点执行前置处理器对当前所述流程节点的属性进行二次定[0101]若否,则采用与当前所述流程节点类型对应的执行策略执行所述流程实例。[0102]需要说明的是,本实施例通过配置节点执行前置处理器,可用于对流程定义进行修改,使用灵活,提高了软件可扩展性,并且保证了信息采集的安全性,为提供一种业务开发人员在运行中对流程二次定义的钩子,保证灵活性[0103]需要说明的是,节点执行前置处理器是在节点执行策略之前被调用的,之后节点执行策略需要正常调用的,可以对流程节点的定义进行后置处理,只对当前任务流程实例产生影响。[0104]在一实施例中,在采用与所述执行类节点对应的执行策略执行所述流程实例,得到所述执行结果时,还包括:[0105]根据当前节点配置的所述结果解析api路径,工具代理调用与所述结果解析api路径对应的方法对所述执行结果进行处理,得到符合业务需要的结构化结果。[0106]需要说明的是,结果解析流程为用户自定义内容,在得到信息采集任务的执行结果后,调用结果解析流程对执行结果进行解析,可得到符合用户自定义数据结构的数据。[0107]在一实施例中,所述获取所述信息采集任务之后,还包括:[0108]判断所述信息采集任务的运行状态;[0109]在所述信息采集任务的类别为停止任务时,设置所述信息采集任务为停止状态;[0110]在所述信息采集任务的类别为执行任务时,确定所述信息采集任务为有效任务;[0111]按照与所述有效任务对应的所述业务流程文件,生成与所述有效任务对用的流程实例;[0112]将所述流程实例加入缓存列表,将所述有效任务插入数据库。[0113]需要说明的是,通过合理使用缓存,提高了命令执行的效率,如:以往一个linux4A主机资产信息的采集需要10分钟,本实施例则仅需要1分30秒,效果提升明显。[0114]在一实施例中,所述方法还包括:[0115]监控所述数据库中的所述有效任务的运行时间,确定所述有效任务中存在超时任务和未超时任务;11[0116]恢复所述未超时任务,清除所述超时任务。[0117]需要说明的是,本实施例可通过设置监控组件查询嵌入式数据库job_info表中的[0118]在一实施例中,所述流程节点的属性还包括执行异常处理策略,所述方法还包括:[0119]确定所述执行命令异常;[0120]调用所述执行异常处理策略进行处理。[0121]需要说明的是,本实施例通过提供配置化的节点执行异常处理策略,在确定执行命令异常时,支持的异常处理策略包括跳过当前节点、结束当前任务、递归结束任务或支持配置自定义异常处理策略。发生异常时会触发事件上报节点异常信息,更合理的监控任务执行。[0122]需要说明的是,本实施例中异常处理策略可缺省,缺省时为不影响流程继续执行,需自定义节点执行前置处理器。[0124]根据所述命令内容和所述命令执行类型,通过模板模式循环匹配对应类型的命令执行实现类,调用所述执行器得到所述执行结果;[0126]需要说明的是,本实施例在任务执行时,可任务执行工具内置命令执行工具,对不同执行类型和协议类型组合出的命令提供命令执行和结果回调功能;工具提供的命令执行telnet。通过模板模式保证执行和协议类型的灵活扩展。[0127]在一实施例中,信息采集任务结束后会关闭执行器缓存的连接,移除缓存的任务实例,删除入库的任务信息,触发上报任务结果事件,第三方平台用户使用事件监听的方式获取任务执行的采集结果,如平台服务启动时注册指定类型的事件到本软件工具,任务执[0128]以下通过几个具体实例对本实施例方案进行说明:[0129]示例1:网络内linux主机设备信息登录采集[0130](1)、第一步节点通过自定义登录连接节点执行前置处理器钩子接口实现类(connPostProcessor)的方式,构造登录连接对象,执行器登录后缓存连接并执行sh命令获取系统信息,得到执行的原始结果后工具调用节点配置的自定义解析方法,得到符合业务需求的数据结构,由工具根据节点配置进行数据上报;若执行异常则根据配置的异常策略[0132](3)、第三步为并行网关节点,根据上一步得到的服务组件信息,根据不同目标节点的成立条件,得到下一步执行的节点列表;如目标资产有mysql、Nginx、Oracle的服务组件时,网关节点的目标节点连线表达式会通过springEL表达式解析得到true/false;如mysql目标节点连线表达式为[#{#ponentMaps.containsKey('mysql’)}],解析得到结果为true则会执行mysql节点[0133](4)、第四步为并行循环节点的执行,多个被命中的循环节点会并发调用执行器,得到组件详细的runpath、version等信息,此步骤全部节点执行完毕后,继续下一节点的执[0134](5)、第五步调用自定义解析方法对上一步获取的组件详情进行封装,得到符合业务需求的数据结构。[0135](6)、此步骤为end节点,任务结束,上报整体任务数据[0136]该示例流程尤其是组件信息获取扩展可能性较大,步骤间多有牵连,该工具均提供的良好支持。[0137]示例2:网络内基于指定网络设备的登录发现网络拓扑信息采集[0138](1)、第一步节点通过自定义登录连接节点执行前置处理器钩子接口实现类(connPostProcessor)的方式,构造登录连接对象,执行命令获取系统信息,调用解析后获取厂商信息;执行异常时根据配置的异常策略使任务短路,异常结束。[0139](2)、第二步是排他网关节点,根据第一步得到厂商信息得到有且只有一个目标节点,继续下一步执行;如第一步得到厂商信息为'HuaWei’,经此步骤处理后路由到对应的节点[0140](3)、第三步是具体厂商的arp表获取节点,执行对应命令得到原始结果,解析后得到设备的arp表,根据节点配置像平台用户上报数据后,继续下一节点[0141](4)、第四步为排他网关节点,根据流程定义配置的开关参数和第三步的arp表信息,经过表达式解析后得到目标节点(nmap探测、结束)[0142](5)、第五步为循环节点,循环arp列表的ip进行nmap探测,并发执行得到结果后向平台用户返回整体数据。[0143]该示例因为设备厂商较多且需要循环动态参数进行详情信息探测,传统的后端编码非常不利于扩展,本工具提供的网关和子流程组件对该需求提供了良好支持。[0144]示例3:指定ip范围和端口范围的互联网暴露面资产扫描[0145](1)、第一步是网关节点,根据任务参数(快速扫描+ip是ipV4),满足条件后执行目标节点‘masscan扫描’,不满足条件路由到‘nmap扫描'节点。[0146](2)、masscan扫描,通过命令探测到目标ip的存活端口,结果解析后得到端口列表,设置流程实例上下文中。[0147](3)、nmap扫描,通过命令扫描目标ip的存活端口列表详情(命令代入流程实例变量解析后得到最终执行命令)。[0148](4)、第四步为网关节点,根据流程配置的开关参数和nmap扫描的端口列表信息,满足条件时执行并行子流程节点进行web指纹信息的探测;否则流程结束[0149](5)、并行子流程节点,进行端口web指纹信息的探测。挂起主流程,节点对nmap扫描出的端口信息进行遍历,使用线程池的方式,一次生成8个任务(可配置),并行执行子流程任务进行指纹探测,一批子流程任务执行完成后,判断是否有待执行任务,直到执行完成后,唤醒主流程,继续下一节点。[0150](6)、流程结束,调用流程配置的结果解析方法,对数据结构进行重构,得到符合业务格式的数据后返回给平台用户。[0151]该示例因为探测的端口信息量上限较高,传统方式的执行方式不利于扩展和流量控制,本工具的并行子流程和对子流程并发的池化控制良好的解决了上述问题。[0152]此外,参照图3,本发明实施例还提出一种基于流程化配置的信息采集装置,对每一信息采集任务预先定义对应的业务流程文件,所述装置包括:[0153]获取模块10,用于获取所述信息采集任务。[0154]生成模块20,用于按照与所述信息采集任务对应的所述业务流程文件,生成与所述信息采集任务对应的流程实例。[0155]执行模块30,用于在所述流程实例运行时,在每一流程节点采用与所述流程节点类型对应的执行策略执行所述流程实例,得到信息采集结果。[0156]需要说明的是,本实施例通过采用工作流的思想,预先定义业务流程文件来提供业务能力,在任务实例运行时,根据运行数据动态流转工作节点,达到仅通过修改业务流程文件即可实现大多数通用信息的采集。在任务实例运行时动态调用用户自定义的实现内容,将用户行为与公共行为解耦合,最大化达到对采集任务运行流转的控制,极大的降低了因适配业务修改带来的硬编码工作,应用灵活,且扩展性较强。[0157]应当理解的是,本实施例可以直观的从流程定义文件中看到信息采集流程的业务逻辑,无需将逻辑都耦合到代码里。可以低成本甚至零成本的修改流程逻辑,无需像相关技术中修改一些逻辑就要到处重构代码。通过预先定义业务流程文件来提供业务能力,降低步骤执行、结果解析、结果返回等模块间的耦合,使用方仅需要关注业务相关的编码。在一实施例中,所述预先定义的业务流程文件的信息包括流程基础定义(process)、流程节点[0158]所述流程基础定义的属性包括流程ID、版本号、超时时长和节点参数列表;标节点列表、是否需要缓存连接和节点执行前置处理器name;[0160]所述节点执行命令列表的属性包括命令ID、是否加密传输、命令内容和命令执行类型,其中,所述命令内容支持springEL表达式动态解析命令,代入任务实例和节点执行结[0161]所述目标节点的属性包括目标节点ID和连线表达式,其中,连线表达式可采用SpringEL表达式,代入任务执行结果变量后得出节点是否成立。[0162]需要说明的是,本实施例中用户可灵活定义信息采集和结果解析流程,做到业务功能的轻松灵活扩展。[0164]加载组件,用于通过java反射的方式获取流程定义加载实现类,根据配置文件中的servicesJcDefFilePath属性,扫描并加载此配置文件夹下的业务流程文件,生成流程定义对象加入缓存,并启动热加载监听线程,监听到业务流程文件变化时,对变化的业务流程文件热加载,实现对业务流程文件的修改。加载并构建结果解析流程对象,加入到内存缓存列表中。[0166]需要说明的是,通过合理使用缓存,提高了命令执行的效率,如:以往一个linux4A主机资产信息的采集需要10分钟,本实施例则仅需要1分30秒,效果提升明显。[0167]在一实施例中,所述流程节点的类型包括开始节点、登录类节点、执行类节点、网关类节点、子流程类节点和结束节点;[0168]所述执行类节点包括循环节点和普通节点,所述网关类节点包括普通网关节点和排他网关节点,所述子流程类节点包括登录子流程节点、普通子流程节点和并行子流程节[0170](1)登录类节点对应的所述执行策略为构建目标登录链接。[0171]需要说明的是,通过登录类节点构造目标对象的登录链接,而且可以复用登录类[0172](2)网关类节点对应的所述执行策略为根据所述目标节点的成立条件,得到下一步执行的所述节点参数列表。[0173]其中,普通网关节点会将连线表达式代入任务变量后判断目标节点是否成立,并基于成立的目标节点得到下一步执行的节点参数列表;排他网关则基于第一个成立的目标节点得到下一步执行的节点参数列表。[0174](3)执行类节点对应的所述执行策略为遍历所述节点执行命令列表或所述节点参数列表,生成执行命令以根据所述执行命令调用执行器得到执行结果。[0175]其中,普通节点会遍历命令列表,代入任务变量生成最终执行命令调用对应类型的执行器,异步得到结果通过反射统一调用用户自定义解析后继续下一步。[0176]需要说明的是,若配置了碎片化返回,工具会通过事件模式将结果上报给上游平[0177]循环节点会遍历节点参数列表,生成多组命令列表循环调用命令执行器,异步得到结果后通过反射统一调用用户自定义的结果解析流程。[0178](4)子流程类节点对应的所述执行策略为挂起主流程,根据所述子流程节点绑定的流程ID新建与所述子流程节点对应的子任务实例,并在所述子任务实例全部执行结束时唤醒主所述主流程。[0179](5)结束节点对应的所述执行策略为标记所述任务实例为结束状态。[0180]在一实施例中,所述流程节点属性中若配置有节点执行前置处理器,则调用所述节点执行前置处理器对当前所述流程节点的属性进行二次定义,本实施例通过配置节点执行前置处理器,可用于对流程定义进行修改,使用灵活,提高了软件可扩展性,并且保证了信息采集的安全性。[0182]结果解析模块,用于根据当前节点配置的所述结果解析api路径,工具代理调用与所述结果解析api路径对应的方法对所述执行结果进行处理,得到符合业务需要的结构化[0183]需要说明的是,解析方法为用户自定义内容,在得到信息采集任务的执行结果后,调用结果解析方法对执行结果进行解析,可得到符合用户自定义数据结构的数据。[0185]判断所述信息采集任务的运行状态;[0186]在所述信息采集任务的类别为停止任务时,设置所述信息采集任务为停止状态;[0187]在所述信息采集任务的类别为执行任务时,确定所述信息采集任务为有效任务;[0188]按照与所述有效任务对应的所述业务流程文件,生成与所述有效任务对用的流程实例;[0189]将所述流程实例加入缓存列表,将所述有效任务插入数据库。[0190]在一实施例中,所述装置包括监控组件,用于:[0191]监控所述数据库中的所述有效任务的运行时间,确定所述有效任务中存在超时任务和未超时任务;[0192]恢复所述未超时任务,清除所述超时任务。[0193]需要说明的是,本实施例可通过设置监控组件查询嵌入式数据库job_info表中的未超时任务,并重新启动任务;开启定时任务,定时扫描是否有超时任务,并清除超时任务。[0194]在一实施例中,所述流程节点的属性还包括执行异常处理策略,所述装置还包括异常处理模块,具体用于:[0195]确定所述执行命令异常;[0196]调用所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论