软件系统的关联关系分析方法、装置和存储介质与流程

文档序号:17160998发布日期:2019-03-20 00:43阅读:902来源:国知局
技术简介:
本专利针对现有系统依赖关系分析依赖定制软件且准确性低的问题,提出通过爬取部署文件获取源代码,利用预定义规则解析调用关系并生成关联图的解决方案,实现自动化、高精度的软件系统关联分析。
关键词:软件关联分析,源代码解析

本申请涉及互联网技术领域,特别是涉及一种软件系统的关联关系分析方法、装置、计算机设备和存储介质。



背景技术:

随着互联网技术的不断发展,软件系统在计算机中是非常重要的组成部分,在运行的过程中,会与其他各个系统存在依赖关系,通过各个系统的依赖关系来实现系统的各个功能。

其中,当软件系统在数据中心的部署架构达到一定的复杂度之后,软件系统之间的关联关系的管理变得异常复杂,同时会出现设计的部署架构图和真实的关联关系不一致的情况。目前基本都是需要预先设计或制定系统部署架构,或在特定的机器上安装特定的软件监控来获取相关软件和网络通信信息。

因此,需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够采用自动的方式收集真实的部署架构,不依赖定制的软件获取各个系统存在的依赖关系,且准确性高的软件系统的关联关系分析方法、装置、计算机设备和存储介质。

一种软件系统的关联关系分析方法,所述方法包括:

获取待访问地址信息;

根据爬取访问路径爬取与所述待访问地址信息对应的软件系统部署相关文件;

解析所述软件系统部署相关文件,获取到对应的源代码信息;

通过预定义的规则对所述源代码信息进行解析,获取所述源代码信息中存在的调用关系;

根据所述源代码信息中的调用关系,确定所述软件系统的关联关系。

在其中一个实施例中,所述根据爬取访问路径爬取与所述待访问地址信息对应的软件系统部署相关文件的步骤包括:

根据所述待访问地址信息,访问对应的服务器;

通过预定义的规则及预设的爬取信息进行爬取,爬取到对应的所述软件系统部署相关文件,并获取所述软件系统部署相关文件。

在其中一个实施例中,所述根据所述源代码信息中的调用关系,确定所述软件系统的关联关系的步骤包括:

根据所述源代码信息中的调用关系,确定所述软件系统依赖的各个服务器;

根据所述软件系统依赖的各个服务器,确定所述软件系统的关联关系。

在其中一个实施例中,所述通过预定义的规则对所述源代码信息进行解析,获取所述源代码信息中存在的调用关系的步骤包括:

通过预定义的规则对所述源代码信息进行解析,获取所述源代码信息中的ip地址和端口号;

将所述ip地址和端口号记录在xml文件中,获得关联关系分析结果文件;

根据所述关联关系分析结果文件,确定所述源代码信息中存在的调用关系。

在其中一个实施例中,在所述获取待访问地址信息步骤之前,还包括:

接收终端下发的爬取访问路径设置指令;

根据所述爬取访问路径设置指令在终端生成设置界面;

通过所述设置界面接收终端输入的爬取访问路径信息;

根据所述爬取访问路径信息生成爬取访问路径;

爬取得到所述待访问地址信息对应的软件系统部署相关文件,包括:

根据所述爬取访问路径爬取所述待访问地址信息对应的软件系统部署相关文件。

在其中一个实施例中,所述解析所述软件系统部署相关文件,获取到对应的源代码信息的步骤包括:

通过反编译工具对所述软件系统部署相关文件进行逆向分析,获取到对应的源代码信息。

在其中一个实施例中,还包括:通过图形解析器解析所述软件系统的关联关系,获得软件系统的关联关系图,展示所述关联关系图。

一种软件系统的关联关系分析装置,

地址信息获取模块,用于获取待访问地址信息;

爬取模块,用于根据爬取访问路径爬取与所述待访问地址信息对应的软件系统部署相关文件;

解析模块,用于解析所述软件系统部署相关文件,获取到对应的源代码信息;

调用关系确定模块,用于通过预定义的规则对所述源代码信息进行解析,获取所述源代码信息中存在的调用关系;

关联关系确定模块,用于根据所述源代码信息中的调用关系,确定所述软件系统的关联关系。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法的步骤。

上述软件系统的关联关系分析方法、装置、计算机设备和存储介质,通过获取到待访问地址信息,爬取到待访问地址信息对应的软件系统部署相关文件,从软件系统部署相关文件获得对应的源代码信息,从源代码信息中可以确定出软件系统的关联关系,从而解决了需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高的问题。

附图说明

图1为一个实施例中软件系统的关联关系分析方法的应用场景图;

图2为一个实施例中软件系统的关联关系分析方法的流程示意图;

图3为一个实施例中软件系统的关联关系分析方法的流程示意图;

图4为一个实施例中软件系统的关联关系分析方法步骤的流程示意图;

图5为一个实施例中软件系统的关联关系分析方法步骤的流程示意图;

图6为一个实施例中软件系统的关联关系图;

图7为另一个实施例中软件系统的关联关系分析方法的交互流程示意图;

图8为一个实施例中软件系统的关联关系分析装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的软件系统的关联关系分析方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。用户通过终端102下发分析指令,使服务器104执行软件系统的关联关系分析方法,服务器104通过获取到待访问地址信息,从服务器106处爬取到待访问地址信息对应的软件系统部署相关文件,从软件系统部署相关文件获得对应的源代码信息,从源代码信息中可以确定出软件系统的关联关系。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104与服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种软件系统的关联关系分析方法,以该方法应用于图1中的服务器为例进行说明,包括步骤s220至步骤s300:

步骤s220,获取待访问地址信息。

其中,待访问地址信息可以是软件系统所使用的服务器的ip地址,也可以是软件系统其他信息,只要能从信息中获取到软件系统所使用的服务器的ip地址。用户可以根据需要分析的软件系统,获取到待访问地址信息。可以通过用户将待访问地址信息保存在存储模块,当需要获取待访问地址信息时,向存储模块获取待访问地址信息。用户还可以通过终端向服务器发送ps命令设置指令,服务器根据接收ps命令设置指令开放ps命令设置权限,用户将ps命令通过终端将ps命令发送至服务器,生成ps命令。可以通过触发ps命令,获取到=服务器的进程信息,根据进程信息,获取到需要分析的软件系统信息,从而获取到待访问地址信息。

步骤s240,根据爬取访问路径爬取与待访问地址信息对应的软件系统部署相关文件。

其中,爬取得到待访问地址信息对应的软件系统部署相关文件,包括:根据爬取访问路径爬取待访问地址信息对应的软件系统部署相关文件。软件系统部署相关文件包括:系统的安装包、中间件、应用软件基础信息和配置信息等等。

步骤s260,解析软件系统部署相关文件,获取到对应的源代码信息。

其中,并将软件系统部署相关文件进行解析,获取到对应的源代码信息的步骤包括:通过反编译工具对软件系统部署相关文件进行逆向分析,获取到对应的源代码信息。

步骤s280,通过预定义的规则对源代码信息进行解析,获取源代码信息中存在的调用关系。

步骤s300,根据源代码信息中的调用关系,确定所述软件系统的关联关系。

其中,当源代码中与数据库存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描数据库(mybatis,hibernate等框架)中的配置文件和配置类,确定数据库与软件系统的关联关系。当源代码中与缓存模块存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描缓存模块(如redis,memcached等组件)的配置文件和配置类,确定缓存模块与软件系统的关联关系。当源代码中与其他组件存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描其他组件(如zookeeper,mq等)的配置文件和配置类,确定其他组件与软件系统的关联关系。当所依赖的是其他自研系统,根据统一的技术规范,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描配置类和配置文件,确定所依赖的是其他自研系统与软件系统的关联关系。

上述软件系统的关联关系分析方法,通过获取到待访问地址信息,爬取到待访问地址信息对应的软件系统部署相关文件,从软件系统部署相关文件获得对应的源代码信息,从源代码信息中可以确定出软件系统的关联关系,从而解决了需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高的问题。

在一个实施例中,还包括步骤s320:通过图形解析器解析软件系统的关联关系,获得软件系统的关联关系图,并展示关联关系图。

其中,获取关联关系分析结果文件,根据关联关系分析结果文件的内容生成软件系统之间的关联关系的展示图,具体地,用户通过终端向服务器发送软件系统的关联关系图形生成指令,软件系统的关联关系图形生成指令中包含了关联关系分析结果文件,根据接收到的关联关系分析结果文件,绘制出对应的软件系统的关联关系图形(如图6所示,是根据接收到的关联关系分析结果文件绘制出的软件系统的关联关系图形)。使得用户直观的看到软件系统之间的关联关系。

请参阅图3,在一个实施例中,在获取待访问地址信息步骤之前,还包括步骤s120至步骤s180:

步骤s120,接收终端下发的爬取访问路径设置指令。

其中,用户通过终端,使终端向服务器发送爬取访问路径设置指令。

步骤s140,根据爬取访问路径设置指令在终端生成设置界面。

其中,服务器接收到爬取访问路径设置指令后,根据爬取访问路径设置指令向终端反馈设置界面,使终端生成设置界面。

步骤s160,通过设置界面接收终端输入的爬取访问路径信息。

其中,用户可以根据统一规范化的部署工具确定爬取访问路径信息。用户可以对所有需要分析的软件系统使用统一规范化的部署工具,将程序的jar文件(jar(javaarchive,java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件)或者war文件(war文件是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中,是一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有web-inf目录。通常在web-inf目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如javabean))位置固定或按既定规则存放,程序开发时也使用统一规范的技术栈,使用统一的数据库持久层框架,使用统一的缓存连接框架,使用统一的远程过程调用框架。

步骤s180,根据爬取访问路径信息生成爬取访问路径。

其中,服务器接收到爬取访问路径信息后生成爬取访问路径。

在一个实施例中,请参阅图4,根据爬取访问路径爬取与待访问地址信息对应的软件系统部署相关文件的步骤包括步骤s242至步骤s244:

步骤s242,根据待访问地址信息,访问对应的服务器。

其中,根据待访问地址信息,可以通过浏览器访问到对应的服务器。

步骤s244,

通过预定义的规则及预设的爬取信息进行爬取,爬取到对应的所述软件系统部署相关文件,并获取所述软件系统部署相关文件。

其中,预设的爬取信息是指如爬取对象的关键字等信息,可以通过需要分析的软件系统确定预设的爬取信息,用于对抓取目标的描述或定义。预定义的规则可以是使用beautifulsoup(beautifulsoup是一个可以从html或xml文件中提取数据的python库,简单来说,它能将html的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性。)进行爬取;也可以是通过正则表达式(正则表达式又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑)进行爬取。爬取到对应的软件系统部署相关文件后,将对应的软件系统部署相关文件下载到服务器中。

在一个实施例中,根据源代码信息中的调用关系,确定软件系统的关联关系的步骤包括:根据源代码信息中的调用关系,确定软件系统依赖的各个服务器;根据软件系统依赖的各个服务器,确定软件系统的关联关系。

其中,源代码信息中有所依赖的系统名称,ip地址端口号等信息,从所依赖的系统名称,ip地址端口号等信息可以确定出软件系统依赖的各个服务器,与软件系统有依赖关系的服务器就存在关联关系,从而确定软件系统的关联关系。

请参阅图5,在一个实施例中,通过预定义的规则对源代码信息进行解析,获取源代码信息中存在的调用关系的步骤包括步骤s2822至步骤s2826:

步骤s2822,通过预定义的规则对源代码信息进行解析,获取源代码信息中的ip地址和端口号。

其中,当源代码中与数据库存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描数据库(mybatis,hibernate等框架)中的配置文件和配置类,解析出连接字符串,根据连接字符串获得数据库实例的ip地址和端口号等信息。当源代码中与缓存模块存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描缓存模块(如redis,memcached等组件)的配置文件和配置类,解析出缓存实例的ip地址和端口号信息。当源代码中与其他组件存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描其他组件(如zookeeper,mq等)的配置文件和配置类,解析其他组件出缓存实例的ip地址和端口号信息。当所依赖的是其他自研系统,根据统一的技术规范,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描配置类和配置文件,获得所依赖的系统名称,ip地址端口号等信息。

步骤s2824,将ip地址和端口号记录在xml文件中,获得关联关系分析结果文件。

其中,将获取的源代码信息中的ip地址和端口号等输入xml文件,生成软件系统的关联关系的xml文件,也就是关联关系分析结果文件。xml文件可以是预先根据生成xml文件指令生成xml文件。也可以是在获取到源代码信息中的ip地址和端口号时,触发生成xml文件指令生成xml文件。

步骤s2826,根据关联关系分析结果文件,确定源代码信息中存在的调用关系。

其中,在关联关系分析结果文件中包含了软件系统与所有服务器、数据库、中间文件等等存在的关联的ip地址和端口号信息,从而确定调用关系。

上述软件系统的关联关系分析方法,通过获取到待访问地址信息,爬取到待访问地址信息对应的软件系统部署相关文件,从软件系统部署相关文件获得对应的源代码信息,从源代码信息中可以确定出软件系统的关联关系,从而解决了需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高的问题。还可以使用户可以直观的看到软件系统之间的关联关系,实现软件系统的关联关系的可视化。

在一个实施例中,请参阅图7,一种软件系统的关联关系分析方法,用户将需要分析的软件系统,使用统一规范化的部署工具,程序的jar包位置固定或按既定规则存放,程序开发使用统一规范的技术栈,程序开发使用统一规范的技术栈,使用统一的缓存连接框架,使用统一的远程过程调用框架。

从运维处可以获取所有服务器的ip地址,分析系统根据这些ip地址逐个访问服务器,根据预定义的规则取到系统部署的jar包或者war包,分析系统下载jar包或者war包到本地,通过反编译工具解析出程序的源代码,根据用户既定的标准技术栈,解析源代码中的调用关系,当源代码中与数据库存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描数据库(mybatis,hibernate等框架)中的配置文件和配置类,解析出连接字符串,根据连接字符串获得数据库实例的ip地址和端口号等信息。当源代码中与缓存模块存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描缓存模块(如redis,memcached等组件)的配置文件和配置类,解析出缓存实例的ip地址和端口号信息。当源代码中与其他组件存在调用关系时,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描其他组件(如zookeeper,mq等)的配置文件和配置类,解析其他组件出缓存实例的ip地址和端口号信息。当所依赖的是其他自研系统,根据统一的技术规范,根据预设的规则(如beautifulsoup或正则表达式的规则)扫描配置类和配置文件,获得所依赖的系统名称,ip地址端口号等信息。获取的源代码信息中的ip地址和端口号等输入xml文件,生成软件系统的关联关系的xml文件,也就是关联关系分析结果文件。在关联关系分析结果文件中包含了软件系统与所有服务器、数据库、中间文件等等存在的关联的ip地址和端口号信息,从而确定调用关系。并根据软件系统的关联关系的xml文件的内容生成软件系统之间的关联关系的展示图(如图6),并通过终端进行显示。

上述软件系统的关联关系分析方法,通过获取到待访问地址信息,爬取到待访问地址信息对应的软件系统部署相关文件,从软件系统部署相关文件获得对应的源代码信息,从源代码信息中可以确定出软件系统的关联关系,从而解决了需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高的问题。还可以使用户可以直观的看到软件系统之间的关联关系,实现软件系统的关联关系的可视化。

应该理解的是,虽然2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种软件系统的关联关系分析装置,包括:地址信息获取模块310,用于获取待访问地址信息;爬取模块320,用于爬取得到待访问地址信息对应的软件系统部署相关文件;解析模块330,用于并将软件系统部署相关文件进行解析,获取到对应的源代码信息;调用关系确定模块340,用于通过预定义的规则对所述源代码信息进行解析,获取所述源代码信息中存在的调用关系;关联关系确定模块350,用于根据所述源代码信息中的调用关系,确定所述软件系统的关联关系。

在一个实施例中,爬取模块320包括:服务器访问单元,用于根据待访问地址信息,访问对应的服务器;爬取单元,用于通过预定义的规则及预设的爬取信息进行爬取,爬取到对应的所述软件系统部署相关文件,并获取所述软件系统部署相关文件。

在一个实施例中,关联关系确定模块350包括:依赖关系确定单元,用于根据所述源代码信息中的调用关系,确定所述软件系统依赖的各个服务器;关联关系确定单元,用于根据所述软件系统依赖的各个服务器,确定所述软件系统的关联关系。

在一个实施例中,调用关系获取单元包括:解析子单元,用于通过预定义的规则对源代码信息进行解析,获取源代码信息中的ip地址和端口号;结果文件获取子单元,用于将ip地址和端口号记录在xml文件中,获得关联关系分析结果文件;调用关系确定子单元,用于根据关联关系分析结果文件,确定源代码信息中存在的调用关系。

在一个实施例中,还包括:接收模块,用于接收终端下发的爬取访问路径设置指令;设置界面生成模块,用于根据爬取访问路径设置指令在终端生成设置界面;爬取访问路径信息接收模块,用于通过设置界面接收终端输入的爬取访问路径信息;爬取访问路径生成模块,用于根据爬取访问路径信息生成爬取访问路径。

在一个实施例中,解析模块330包括:解析单元,用于通过反编译工具对软件系统部署相关文件进行逆向分析,获取到对应的源代码信息。

在一个实施例中,还包括:关联关系图获取模块360,用于通过图形解析器解析软件系统的关联关系,获得软件系统的关联关系图,展示所述关联关系图。

上述软件系统的关联关系分析装置,地址信息获取模块310通过获取到待访问地址信息,爬取模块320爬取到待访问地址信息对应的软件系统部署相关文件,解析模块330从软件系统部署相关文件获得对应的源代码信息,关联关系确定模块350从源代码信息中可以确定出软件系统的关联关系,从而解决了需要定制的软件才能获取各个系统存在的依赖关系,且准确性不高的问题。还可以使用户可以直观的看到软件系统之间的关联关系,实现软件系统的关联关系的可视化。

关于软件系统的关联关系分析装置的具体限定可以参见上文中对于软件系统的关联关系分析方法的限定,在此不再赘述。上述软件系统的关联关系分析装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储软件系统部署相关文件数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件系统的关联关系分析方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待访问地址信息;根据爬取访问路径爬取与待访问地址信息对应的软件系统部署相关文件;解析软件系统部署相关文件,获取到对应的源代码信息;通过预定义的规则对源代码信息进行解析,获取源代码信息中存在的调用关系;根据源代码信息中的调用关系,确定软件系统的关联关系。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据待访问地址信息,访问对应的服务器;通过预定义的规则及预设的爬取信息进行爬取,爬取到对应的软件系统部署相关文件,并获取软件系统部署相关文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据源代码信息中的调用关系,确定软件系统依赖的各个服务器;根据软件系统依赖的各个服务器,确定软件系统的关联关系。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过预定义的规则对源代码信息进行解析,获取源代码信息中的ip地址和端口号;将ip地址和端口号记录在xml文件中,获得关联关系分析结果文件;根据关联关系分析结果文件,确定源代码信息中存在的调用关系。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收终端下发的爬取访问路径设置指令;根据爬取访问路径设置指令在终端生成设置界面;通过设置界面接收终端输入的爬取访问路径信息;根据爬取访问路径信息生成爬取访问路径;爬取得到待访问地址信息对应的软件系统部署相关文件,包括:根据爬取访问路径爬取待访问地址信息对应的软件系统部署相关文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过反编译工具对软件系统部署相关文件进行逆向分析,获取到对应的源代码信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过图形解析器解析软件系统的关联关系,获得软件系统的关联关系图,展示所述关联关系图。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待访问地址信息;根据爬取访问路径爬取与待访问地址信息对应的软件系统部署相关文件;解析软件系统部署相关文件,获取到对应的源代码信息;通过预定义的规则对源代码信息进行解析,获取源代码信息中存在的调用关系;根据源代码信息中的调用关系,确定软件系统的关联关系。

在一个实施例中,计算机程序被执行时实现以下步骤:根据待访问地址信息,访问对应的服务器;通过预定义的规则及预设的爬取信息进行爬取,爬取到对应的软件系统部署相关文件,并获取软件系统部署相关文件。

在一个实施例中,计算机程序被执行时还实现以下步骤:根据源代码信息中的调用关系,确定软件系统依赖的各个服务器;根据软件系统依赖的各个服务器,确定软件系统的关联关系。

在一个实施例中,计算机程序被执行时还实现以下步骤:通过预定义的规则对源代码信息进行解析,获取源代码信息中的ip地址和端口号;将ip地址和端口号记录在xml文件中,获得关联关系分析结果文件;根据关联关系分析结果文件,确定源代码信息中存在的调用关系。

在一个实施例中,计算机程序被执行时还实现以下步骤:接收终端下发的爬取访问路径设置指令;根据爬取访问路径设置指令在终端生成设置界面;通过设置界面接收终端输入的爬取访问路径信息;根据爬取访问路径信息生成爬取访问路径;爬取得到待访问地址信息对应的软件系统部署相关文件,包括:根据爬取访问路径爬取待访问地址信息对应的软件系统部署相关文件。

在一个实施例中,计算机程序被执行时还实现以下步骤:通过反编译工具对软件系统部署相关文件进行逆向分析,获取到对应的源代码信息。

在一个实施例中,计算机程序被执行时还实现以下步骤:通过图形解析器解析软件系统的关联关系,获得软件系统的关联关系图,所述关联关系图。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!