一种业务调用关系的发现系统和发现方法与流程

文档序号:14419032阅读:190来源:国知局
一种业务调用关系的发现系统和发现方法与流程

本发明涉及一种业务调用关系的发现系统和发现方法,属于信息监控技术领域。



背景技术:

随着信息化建设要求的不断提升,信息化的应用系统覆盖营销专业全部业务。同时营销专业又是电力公司的窗口部门,其业务覆盖用户范围广,调用关系复杂。因此对服务器、中间件、数据库的运行状况,接口调用关系的监控是保证营销专业应用系统的安全、稳定运行、数据安全是日常工作的基础。

目前对业务调用关系的管理主要是通过线下、手工及各类设计文档维护业务接口调用关系,此方式由于人员调动、更新不及时等问题造成拓扑结构不完整、不正确,同时随着业务系统的增多,调用关系的增多使得整个营销专业系统间调用关系杂乱无章,无据可依,无源可查。对系统稳定运行、数据安全都埋下巨大隐患。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的缺陷,供一种业务调用关系的发现系统和发现方法,使得系统在不对jdk做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。

为解决上述技术问题,本发明提供一种业务调用关系的发现系统,包括:

jar文件设置单元,用于在与业务应用系统相关的java程序中设置jar文件,所述jar文件用于在所述java程序启动时启动javainstrumentation的代理程序;

启动单元,用于在虚拟机中启动所述与业务应用系统相关的java程序,并通过java程序中设置的jar文件启动javainstrumentation的代理程序;

调用关系获取单元,用于通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系。

前述的jar文件在java应用服务器的启动文件中通过命令java-javaagent:asm.jar启动javainstrumentation的代理程序。

前述的虚拟机为jvm。

前述的发现系统还包括拓扑图生产单元,用于根据所述调用关系生成对应的拓扑图。

前述的发现系统的实现通过程序来指令相关的硬件来完成,所述程序存储于计算机的可读取存储介质中,所述可读取存储介质包括rom/ram、磁盘和光盘。

业务调用关系发现方法,包括以下步骤:

1)通过jar文件设置单元在与业务应用系统相关的java程序中设置jar文件;

2)通过启动单元在虚拟机中启动所述与业务应用系统相关的java程序,并通过设置的jar文件启动javainstrumentation的代理程序;

3)调用关系获取单元通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系。

前述的步骤3)中,获取java程序对应的业务应用系统之间的调用关系,具体步骤如下:

3-1)通过所述javainstrumentation的代理程序获取所述java程序调用的超文本传输协议http数据、java数据库连接jdbc数据以及文件传输协议ftp数据;

3-2)通过查询所述http数据的基类代码、jdbc数据的基类代码、ftp数据的基类代码获取业务应用系统之间的调用关系,自动分析出非法访问以及接口的状态和负载。

前述的获取所述java程序对应的业务应用系统之间的调用关系之后,还能够根据所述调用关系生成对应的拓扑图。

本发明的有益效果为:

本发明在与业务应用系统相关的java程序中设置jar文件,在jvm中启动java程序,并通过jar文件启动javainstrumentation的代理程序,通过代理程序获取java程序对应的业务应用系统之间的调用关系,使得系统在不对jdk做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。

附图说明

图1为本发明的业务调用关系的发现方法流程图;

图2为本发明的业务调用关系的发现系统结构图。

具体实施方式

下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图2所示,本发明的业务调用关系的发现系统,包括:

jar文件设置单元,用于在与业务应用系统相关的java程序中设置jar文件,所述jar文件用于在所述java程序启动时启动javainstrumentation的代理程序。

在本发明实施例中,javainstrumentation的代理程序可以对jvm上的程序进行协助和监控,因此需要在java程序启动时,同时启动该javainstrumentation的代理程序,为了启动该javainstrumentation的代理程序,可以通过一jar文件来实现,具体的:在java应用服务器的启动文件中通过命令java-javaagent:asm.jar启动javainstrumentation的代理程序。

以weblogic为例:

在weblogic的启动文件(地址为:startweblogic.cmd/startweblogic.sh)中通过命令java-javaagent:asm.jar启动javainstrumentation的代理程序。

其中,java-javaagent:myagent.jar=mode=testtest是具体的实现指令。我们通过-javaagent来指定我们编写的agent的jar路径(./myagent.jar),以及要传给agent的参数(mode=test),在启动java程序时即同时启动了代理程序,该代理程序就可以发现业务调用关系。

启动单元,用于在虚拟机中启动所述java程序,并通过java程序中设置的jar文件启动javainstrumentation的代理程序。

在本发明实施例中,由于instrumentation只能对虚拟机上运行的程序进行协助和监控,因此需要虚拟机运行设置了代理程序的java程序。优选的,所述虚拟机为jvm(javavirtualmachine,java虚拟机)。

调用关系获取单元,用于通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系。

在本发明实施例中,由于java程序的启动,设置在该java程序上的代理程序也随之启动,通过代理程序的监控作用,可以实时获取java程序对应的业务应用系统之间的调用关系。

作为本发明的一个可选实施例,所述发现系统还包括:

拓扑图生产单元,用于根据所述调用关系生成对应的拓扑图。

本领域普通技术人员还可以理解,上述系统的实现是可以通过程序来指令相关的硬件来完成,所述程序可以存储于一计算机可读取存储介质中,所述存储介质,包括rom/ram、磁盘、光盘等。

基于上述发现系统的业务调用关系的发现方法,如图1所示,包括以下步骤:

步骤s101,在与业务应用系统相关的java程序中设置jar文件,该jar文件用于在所述java程序启动时启动javainstrumentation的代理程序。

在本发明实施例中,javainstrumentation的代理程序可以对jvm上的程序进行协助和监控,因此需要在java程序启动时,同时启动该javainstrumentation的代理程序,为了启动该javainstrumentation的代理程序,可以通过一jar文件来实现。

步骤s102,在虚拟机中启动所述与业务应用系统相关的java程序,并通过设置的jar文件启动javainstrumentation的代理程序。

步骤s103,通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系。

在本发明实施例中,由于java程序的启动,设置在该java程序上的代理程序也随之启动,通过代理程序的监控作用,可以实时获取java程序对应的业务应用系统之间的调用关系。

具体的,通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系,包括:

1.通过所述javainstrumentation的代理程序获取所述java程序调用的超文本传输协议http数据、java数据库连接jdbc数据以及文件传输协议ftp数据;

2.通过查询所述http数据的基类代码、jdbc数据的基类代码、ftp数据的基类代码获取业务应用系统之间的调用关系,自动分析出非法访问以及接口的状态和负载。

在本发明实施例中,由于java程序在运行时会调用http数据(hypertexttransferprotocol,超文本传输协议)、jdbc数据(javadatabaseconnectivity,java数据库连接)、ftp数据(filetransferprotocol,文本传输协议),代理程序获取这些数据,由于上述数据的基类代码会记录业务应用系统之间的调用关系,因此代理程序获取http数据的基类代码、jdbc数据的基类代码以及ftp数据的基类代码,进而获取业务应用系统之间的调用关系。查询基类代码通过现有技术实现,在此不做赘述。

本发明实施例,在与业务应用系统相关的java程序中设置jar文件,在jvm中启动java程序,并通过所设置的jar文件启动javainstrumentation的代理程序,通过代理程序获取java程序对应的业务应用系统之间的调用关系,使得系统在不对jdk做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。

作为本发明的一个可选实施例,在通过所述javainstrumentation的代理程序获取所述java程序对应的业务应用系统之间的调用关系之后,还包括:

根据所述调用关系生成对应的拓扑图。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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