本发明涉及互联网技术领域,尤其涉及一种基于业务服务的系统应用架构发现方法及系统。
背景技术:
伴随着互联网技术快速发展,越来越多的业务办理都需要通过软件系统完成,业务系统的长期稳定运行也变得更为重要,所以对业务系统的支撑运维手段要求也变得更高。需要更快速、更直观的定位问题点和面,就需要能将被监控系统的应用架构梳理清楚,基于应用之间的调用关系去展示监控结果才能更方便发现问题所在。
现有的系统应用架构梳理方式一般有以下几种:一、根据记录的信息人工手动配置出来,这种方式虽然比较灵活,系统与系统之间也不存在任何耦合性。但是存在以下几点缺陷:1、人工操作与真实的数据存在差异,准确性无法保证;2、系统复杂梳理和配置信息量大,工作量较大,效率较低;3、现如今系统资源存在灵活变动,人工配置无法实时更新,存在滞后性。
二、通过系统自身维护应用架构信息同步给业务支撑的监控系统,这种方式虽然即实时又准确,但是也存在以下缺陷:1、需要业务系统自身已经维护相关信息,不一定所有被监控系统都存在这种能力,所以适应范围有限;2、需要被监控系统和监控系统实时同步相关信息,系统间耦合性增加,监控系统和被监控系统应该尽量减少耦合性。
三、通过ip端口关系发现应用之间的调用关系再结合人工梳理出应用架构,这种方式虽然不依赖被监控系统,同时也可以通过自动发现得出应用组件之间的网络交互关系,但是依然存在以下缺陷:仅仅通过网络中应用组件之间的调用关系得出的结果一般过于庞大,因为应用组件在网络中可能跟很多服务器和应用都有交互,但是交互的内容和协议可能根本与被监控系统无关,所这种交互关系其实也不属于当前被监控系统的应用架构范围内,所以仅仅通过ip端口调用关系得出的结果参考意义不大,最终还是过于依赖人工根据得到的信息进一步确认。
因此,现在亟需一种基于业务服务的系统应用架构发现方法及系统来解决上述问题。
技术实现要素:
针对现有技术存在的问题,本发明提供一种基于业务服务的系统应用架构发现方法及系统。
本发明提供一种基于业务服务的系统应用架构发现方法,包括:
获取并处理系统应用间交互网络数据,得到可分析的结构化数据;
按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述方法还包括:
将发现的关系进行串联,并以图形化方式进行展现。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述将发现的关系进行串联,并以图形化方式进行展现,包括:
获取规定时间内发现的关系;
基于所述发现的关系,采用双向递归还原应用实例调用关系拓扑图,并结合存在相同业务服务关系,聚合形成应用架构拓扑图。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述将发现的关系进行串联,并以图形化方式进行展现,还包括:
当检测到应用资源变化时,动态更新所述应用架构拓扑图。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述获取并处理系统应用间交互网络数据,得到可分析的结构化数据,包括:
绑定程序指定对应的网卡;
从绑定的网卡中获取网络数据包;
按照网络协议和应用协议,对所述网络数据包进行解码;
将属于同一网络回话中同一请求的响应数据进行组合,形成可分析的结构化数据。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述可分析的结构化数据的数据字段包括:
协议类型、业务服务请求串、请求和响应ip端口以及时间。
根据本发明提供的一种基于业务服务的系统应用架构发现方法,所述按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储,包括:
按照规定的数据格式,解析可分析的结构化数据的数据字段;
将业务服务请求串去参后,判断去参后的业务服务和响应ip端口的关系是否存在,并判断请求ip和响应ip端口以及协议类型和响应ip端口的关系是否存在;
若不存在,则加入缓存中。
本发明还提供一种基于业务服务的系统应用架构发现系统,包括:
数据采集模块,用于获取并处理系统应用间交互网络数据,得到可分析的结构化数据;
数据发现模块,用于按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于业务服务的系统应用架构发现方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于业务服务的系统应用架构发现方法的步骤。
本发明提供的基于业务服务的系统应用架构发现方法及系统,通过镜像的网络流量发现ip端口调用关系,业务服务与ip端口关系,可以更加高效的构建应用架构拓扑图,且构建的拓扑图更为准确。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于业务服务的系统应用架构发现方法的流程示意图;
图2为本发明提供的模块功能示意图;
图3为本发明提供的拓扑连接示意图;
图4为本发明提供的基于业务服务的系统应用架构发现系统的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的基于业务服务的系统应用架构发现方法的流程示意图,如图1所示,本发明提供了一种基于业务服务的系统应用架构发现方法,包括:
步骤101,获取并处理系统应用间交互网络数据,得到可分析的结构化数据。
具体的,在步骤101中,主要是完成数据采集过程,数据采集主要是将复制的系统应用间交互网络数据进行抓包、解码和组包,然后形成可分析的结构化数据,并推送出去做进一步分析。
步骤102,按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
在步骤102中,进行数据发现过程,完成关系的发现,具体的数据发现主要接收数据采集推送的数据,按照规定的数据格式对数据进行解析和识别,发现存在的关系,并将结果持久化。
本发明提供的一种基于业务服务的系统应用架构发现方法,通过镜像的网络流量发现ip端口调用关系,业务服务与ip端口关系,可以更加高效的构建应用架构拓扑图,且构建的拓扑图更为准确。
在上述实施例的基础上,所述方法还包括:
将发现的关系进行串联,并以图形化方式进行展现。
图2为本发明提供的模块功能示意图,如图2所示,除了包括数据采集、数据发现之外,还包括数据展示。
可以理解的是,本发明会将发现的单元关系串联起来,然后通过图形化的方式展现出来。
具体的,所述将发现的关系进行串联,并以图形化方式进行展现,包括:
获取规定时间内发现的关系;
基于所述发现的关系,采用双向递归还原应用实例调用关系拓扑图,并结合存在相同业务服务关系,聚合形成应用架构拓扑图。
在本发明中,首先获取规定时间内发现的关系,然后通过被监控系统相关的业务服务和系统使用的应用协议作为过滤条件(被监控系统的关键业务服务只需要访问一下被监控系统,就很容易得到一些主要的业务服务请求串,而且这些服务串一旦系统开发完成后,就很少发生变化了,同时,相关的应用协议类型也基本不会发生变化,并且提供相同服务和协议相同的应用实例,既ip端口一般属于同一个应用集群),基于输入的业务服务和应用协议类型,结合业务服务和应用协议与应用组件的关系,得到对应的响应ip端口。
接着,得到ip端口,根据请求ip和响应ip端口的关系,去查找所有跟这些ip端口存在请求和响应关系的ip端口,然后再在间接存在关系的ip端口中继续查找存在请求和响应关系的ip端口,这样双向递归循环查找,直到所有ip存在间接或者直接存在请求响应关系的ip端口全被找到为止,图3为本发明提供的拓扑连接示意图,如图3所示,得到拓扑图集合:
ipn:protn={ip0:port0->ip11:port11,ip0:port0->ip12:port12,ip11:port11->ip31:port31,ip12:port12->ip32:port32,ip12:port12->ip33:port33}。
例如,得到ip11:port11按以下递归逻辑查找与ip11:port11存在调用和被调用关系的ip:port,将存在的关系加入ipn集合;然后,继续根据找到的新的ip:port重新执行相同的逻辑,直到没有找到新的ip:port关系程序结束。具体为:
在得到ipn:protn关系集合后,再根据业务服务和ip端口关系,将跟相同业务服务存在关系的ip端口聚合为一个应用集群,这样就可以得到一个系统下有多少个应用集群,每个应用集群下有哪些应用组件,以及根据不同应用集群的应用组件之间的调用关系,得到应用集群与应用集群之间的交互关系,这样才能还原真实的应用架构。
本发明基于系统关键业务服务、业务服务与ip端口关系和ip端口自身,调用关系双向递归还原应用实例调用关系拓扑图,再结合存在相同业务服务关系,聚合形成应用架构拓扑图。
在上述实施例的基础上,所述将发现的关系进行串联,并以图形化方式进行展现,还包括:
当检测到应用资源变化时,动态更新所述应用架构拓扑图。
在本发明中,基于已经形成的应用架构相关的应用实例ip端口,结合业务服务的关系,定时和最新的业务服务和ip端口关系进行比对,如果相同业务服务出现了新的ip端口存在关系,则加入应用架构中,如果原来的ip端口和相同的业务服务在规定时间内没有新的数据进来更新,则提示可能提供业务服务的应用实例发生变化,并标注出来,由人工确实是否需要删除,这样就基于原始的应用架构,结合一般不会变化的业务服务以及业务服务和应用实例ip端口的关系,在应用资源不断变化的云环境下可以做到实时更新。
本发明中基于形成应用架构和实时发现的业务服务和ip端口关系,动态更新应用架构拓扑图。
在上述实施例的基础上,所述获取并处理系统应用间交互网络数据,得到可分析的结构化数据,包括:
绑定程序指定对应的网卡;
从绑定的网卡中获取网络数据包;
按照网络协议和应用协议,对所述网络数据包进行解码;
将属于同一网络回话中同一请求的响应数据进行组合,形成可分析的结构化数据。
具体的,首先,网卡绑定就是程序指定对应的网卡,然后从绑定的网卡获取网络数据包,接着将属于同一个网络会话中同一个请求响应数据组合在一起,形成一条可分析的结构化数据,其中,所述可分析的结构化数据的数据字段包括:协议类型、业务服务请求串、请求和响应ip端口以及时间。最后将组合好的数据推送出去。
在上述实施例的基础上,所述按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储,包括:
按照规定的数据格式,解析可分析的结构化数据的数据字段;
将业务服务请求串去参后,判断去参后的业务服务和响应ip端口的关系是否存在,并判断请求ip和响应ip端口以及协议类型和响应ip端口的关系是否存在;
若不存在则加入缓存中。
具体的,首先实时接收数据采集推送的数据,然后按照定义的格式解析数据字段,接着将业务服务请求串去参(因为不去掉参数,每次请求串都不一样,不能将属于同一个服务的请求识别为一个相同的服务请求),记录去参后的业务服务和响应ip端口的关系是否存在,不存在则加入缓存中;同样,判断请求ip和响应ip端口以及协议类型和响应ip端口的关系是否存在,不存在则加入缓存中,最后将缓存中发现的关系入库存储。
具体的,本发明在实际中应用主要为:输入关键业务服务,会根据业务服务和ip端口关系、以及ip端口自身调用关系,进行双向递归查找所有存在调用关系ip形成结果。
图4为本发明提供的基于业务服务的系统应用架构发现系统的结构示意图,如图4所示,本发明提供了一种基于业务服务的系统应用架构发现系统,包括数据采集模块401和数据发现模块402,其中,数据采集模块401用于获取并处理系统应用间交互网络数据,得到可分析的结构化数据;数据发现模块402用于按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
本发明提供的基于业务服务的系统应用架构发现系统,通过镜像的网络流量发现ip端口调用关系,业务服务与ip端口关系,可以更加高效的构建应用架构拓扑图,且构建的拓扑图更为准确。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(communicationsinterface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行基于业务服务的系统应用架构发现方法,该方法包括:获取并处理系统应用间交互网络数据,得到可分析的结构化数据;按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于业务服务的系统应用架构发现方法,该方法包括:获取并处理系统应用间交互网络数据,得到可分析的结构化数据;按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于业务服务的系统应用架构发现方法,该方法包括:获取并处理系统应用间交互网络数据,得到可分析的结构化数据;按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种基于业务服务的系统应用架构发现方法,其特征在于,包括:
获取并处理系统应用间交互网络数据,得到可分析的结构化数据;
按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
2.根据权利要求1所述的基于业务服务的系统应用架构发现方法,其特征在于,所述方法还包括:
将发现的关系进行串联,并以图形化方式进行展现。
3.根据权利要求2所述的基于业务服务的系统应用架构发现方法,其特征在于,所述将发现的关系进行串联,并以图形化方式进行展现,包括:
获取规定时间内发现的关系;
基于所述发现的关系,采用双向递归还原应用实例调用关系拓扑图,并结合存在相同业务服务关系,聚合形成应用架构拓扑图。
4.根据权利要求3所述的基于业务服务的系统应用架构发现方法,其特征在于,所述将发现的关系进行串联,并以图形化方式进行展现,还包括:
当检测到应用资源变化时,动态更新所述应用架构拓扑图。
5.根据权利要求1所述的基于业务服务的系统应用架构发现方法,其特征在于,所述获取并处理系统应用间交互网络数据,得到可分析的结构化数据,包括:
绑定程序指定对应的网卡;
从绑定的网卡中获取网络数据包;
按照网络协议和应用协议,对所述网络数据包进行解码;
将属于同一网络回话中同一请求的响应数据进行组合,形成可分析的结构化数据。
6.根据权利要求5所述的基于业务服务的系统应用架构发现方法,其特征在于,所述可分析的结构化数据的数据字段包括:
协议类型、业务服务请求串、请求和响应ip端口以及时间。
7.根据权利要求6所述的基于业务服务的系统应用架构发现方法,其特征在于,所述按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储,包括:
按照规定的数据格式,解析可分析的结构化数据的数据字段;
将业务服务请求串去参后,判断去参后的业务服务和响应ip端口的关系是否存在,并判断请求ip和响应ip端口以及协议类型和响应ip端口的关系是否存在;
若不存在,则加入缓存中。
8.一种基于业务服务的系统应用架构发现系统,其特征在于,包括:
数据采集模块,用于获取并处理系统应用间交互网络数据,得到可分析的结构化数据;
数据发现模块,用于按照规定的数据格式,对所述可分析的结构化数据进行解析和识别,发现存在的关系,并持久化存储。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述基于业务服务的系统应用架构发现方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于业务服务的系统应用架构发现方法的步骤。
技术总结