CN108021411A - 一种业务调用关系的发现系统和发现方法 - Google Patents
一种业务调用关系的发现系统和发现方法 Download PDFInfo
- Publication number
- CN108021411A CN108021411A CN201711275200.8A CN201711275200A CN108021411A CN 108021411 A CN108021411 A CN 108021411A CN 201711275200 A CN201711275200 A CN 201711275200A CN 108021411 A CN108021411 A CN 108021411A
- Authority
- CN
- China
- Prior art keywords
- java
- business application
- agent
- application system
- relation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种业务调用关系的发现系统和发现方法,所述发现系统包括:jar文件设置单元,用于在与业务应用系统相关的Java程序中设置jar文件;启动单元,用于在虚拟机中启动所述与业务应用系统相关的Java程序,并通过Java程序中设置的jar文件启动Java Instrumentation的代理程序;调用关系获取单元,用于通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。本分发明可以使系统在不对JDK做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。
Description
技术领域
本发明涉及一种业务调用关系的发现系统和发现方法,属于信息监控技术领域。
背景技术
随着信息化建设要求的不断提升,信息化的应用系统覆盖营销专业全部业务。同时营销专业又是电力公司的窗口部门,其业务覆盖用户范围广,调用关系复杂。因此对服务器、中间件、数据库的运行状况,接口调用关系的监控是保证营销专业应用系统的安全、稳定运行、数据安全是日常工作的基础。
目前对业务调用关系的管理主要是通过线下、手工及各类设计文档维护业务接口调用关系,此方式由于人员调动、更新不及时等问题造成拓扑结构不完整、不正确,同时随着业务系统的增多,调用关系的增多使得整个营销专业系统间调用关系杂乱无章,无据可依,无源可查。对系统稳定运行、数据安全都埋下巨大隐患。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,供一种业务调用关系的发现系统和发现方法,使得系统在不对JDK做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。
为解决上述技术问题,本发明提供一种业务调用关系的发现系统,包括:
jar文件设置单元,用于在与业务应用系统相关的Java程序中设置jar文件,所述jar文件用于在所述Java程序启动时启动Java Instrumentation的代理程序;
启动单元,用于在虚拟机中启动所述与业务应用系统相关的Java程序,并通过Java程序中设置的jar文件启动Java Instrumentation的代理程序;
调用关系获取单元,用于通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
前述的jar文件在Java应用服务器的启动文件中通过命令java-javaagent:asm.jar启动Java Instrumentation的代理程序。
前述的虚拟机为JVM。
前述的发现系统还包括拓扑图生产单元,用于根据所述调用关系生成对应的拓扑图。
前述的发现系统的实现通过程序来指令相关的硬件来完成,所述程序存储于计算机的可读取存储介质中,所述可读取存储介质包括ROM/RAM、磁盘和光盘。
业务调用关系发现方法,包括以下步骤:
1)通过jar文件设置单元在与业务应用系统相关的Java程序中设置jar文件;
2)通过启动单元在虚拟机中启动所述与业务应用系统相关的Java程序,并通过设置的Jar文件启动Java Instrumentation的代理程序;
3)调用关系获取单元通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
前述的步骤3)中,获取Java程序对应的业务应用系统之间的调用关系,具体步骤如下:
3-1)通过所述Java Instrumentation的代理程序获取所述Java程序调用的超文本传输协议HTTP数据、Java数据库连接JDBC数据以及文件传输协议FTP数据;
3-2)通过查询所述HTTP数据的基类代码、JDBC数据的基类代码、FTP数据的基类代码获取业务应用系统之间的调用关系,自动分析出非法访问以及接口的状态和负载。
前述的获取所述Java程序对应的业务应用系统之间的调用关系之后,还能够根据所述调用关系生成对应的拓扑图。
本发明的有益效果为:
本发明在与业务应用系统相关的Java程序中设置jar文件,在JVM中启动Java程序,并通过Jar文件启动Java Instrumentation的代理程序,通过代理程序获取Java程序对应的业务应用系统之间的调用关系,使得系统在不对JDK做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。
附图说明
图1为本发明的业务调用关系的发现方法流程图;
图2为本发明的业务调用关系的发现系统结构图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图2所示,本发明的业务调用关系的发现系统,包括:
jar文件设置单元,用于在与业务应用系统相关的Java程序中设置jar文件,所述jar文件用于在所述Java程序启动时启动Java Instrumentation的代理程序。
在本发明实施例中,Java Instrumentation的代理程序可以对JVM上的程序进行协助和监控,因此需要在Java程序启动时,同时启动该Java Instrumentation的代理程序,为了启动该Java Instrumentation的代理程序,可以通过一jar文件来实现,具体的:在Java应用服务器的启动文件中通过命令java-javaagent:asm.jar启动JavaInstrumentation的代理程序。
以weblogic为例:
在weblogic的启动文件(地址为:startWebLogic.cmd/startWebLogic.sh)中通过命令java-javaagent:asm.jar启动Java Instrumentation的代理程序。
其中,java-javaagent:myagent.jar=mode=test Test是具体的实现指令。我们通过-javaagent来指定我们编写的agent的jar路径(./myagent.jar),以及要传给agent的参数(mode=test),在启动Java程序时即同时启动了代理程序,该代理程序就可以发现业务调用关系。
启动单元,用于在虚拟机中启动所述Java程序,并通过Java程序中设置的jar文件启动Java Instrumentation的代理程序。
在本发明实施例中,由于Instrumentation只能对虚拟机上运行的程序进行协助和监控,因此需要虚拟机运行设置了代理程序的Java程序。优选的,所述虚拟机为JVM(JavaVirtual Machine,Java虚拟机)。
调用关系获取单元,用于通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
在本发明实施例中,由于Java程序的启动,设置在该Java程序上的代理程序也随之启动,通过代理程序的监控作用,可以实时获取Java程序对应的业务应用系统之间的调用关系。
作为本发明的一个可选实施例,所述发现系统还包括:
拓扑图生产单元,用于根据所述调用关系生成对应的拓扑图。
本领域普通技术人员还可以理解,上述系统的实现是可以通过程序来指令相关的硬件来完成,所述程序可以存储于一计算机可读取存储介质中,所述存储介质,包括ROM/RAM、磁盘、光盘等。
基于上述发现系统的业务调用关系的发现方法,如图1所示,包括以下步骤:
步骤S101,在与业务应用系统相关的Java程序中设置jar文件,该jar文件用于在所述Java程序启动时启动Java Instrumentation的代理程序。
在本发明实施例中,Java Instrumentation的代理程序可以对JVM上的程序进行协助和监控,因此需要在Java程序启动时,同时启动该Java Instrumentation的代理程序,为了启动该Java Instrumentation的代理程序,可以通过一jar文件来实现。
步骤S102,在虚拟机中启动所述与业务应用系统相关的Java程序,并通过设置的Jar文件启动Java Instrumentation的代理程序。
步骤S103,通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
在本发明实施例中,由于Java程序的启动,设置在该Java程序上的代理程序也随之启动,通过代理程序的监控作用,可以实时获取Java程序对应的业务应用系统之间的调用关系。
具体的,通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系,包括:
1.通过所述Java Instrumentation的代理程序获取所述Java程序调用的超文本传输协议HTTP数据、Java数据库连接JDBC数据以及文件传输协议FTP数据;
2.通过查询所述HTTP数据的基类代码、JDBC数据的基类代码、FTP数据的基类代码获取业务应用系统之间的调用关系,自动分析出非法访问以及接口的状态和负载。
在本发明实施例中,由于Java程序在运行时会调用HTTP数据(HyperTextTransfer Protocol,超文本传输协议)、JDBC数据(Java DataBase Connectivity,Java数据库连接)、FTP数据(File Transfer Protocol,文本传输协议),代理程序获取这些数据,由于上述数据的基类代码会记录业务应用系统之间的调用关系,因此代理程序获取HTTP数据的基类代码、JDBC数据的基类代码以及FTP数据的基类代码,进而获取业务应用系统之间的调用关系。查询基类代码通过现有技术实现,在此不做赘述。
本发明实施例,在与业务应用系统相关的Java程序中设置jar文件,在JVM中启动Java程序,并通过所设置的Jar文件启动Java Instrumentation的代理程序,通过代理程序获取Java程序对应的业务应用系统之间的调用关系,使得系统在不对JDK做任何升级和改动的情况下可以获取业务应用系统之间的调用关系。
作为本发明的一个可选实施例,在通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系之后,还包括:
根据所述调用关系生成对应的拓扑图。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种业务调用关系的发现系统,其特征在于,包括:
jar文件设置单元,用于在与业务应用系统相关的Java程序中设置jar文件,所述jar文件用于在所述Java程序启动时启动Java Instrumentation的代理程序;
启动单元,用于在虚拟机中启动所述与业务应用系统相关的Java程序,并通过Java程序中设置的jar文件启动Java Instrumentation的代理程序;
调用关系获取单元,用于通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
2.根据权利要求1所述的一种业务调用关系的发现系统,其特征在于,所述jar文件在Java应用服务器的启动文件中通过命令java-javaagent:asm.jar启动JavaInstrumentation的代理程序。
3.根据权利要求1所述的一种业务调用关系的发现系统,其特征在于,所述虚拟机为JVM。
4.根据权利要求1所述的一种业务调用关系的发现系统,其特征在于,所述发现系统还包括拓扑图生产单元,用于根据所述调用关系生成对应的拓扑图。
5.根据权利要求1所述的一种业务调用关系的发现系统,其特征在于,所述发现系统的实现通过程序来指令相关的硬件来完成,所述程序存储于计算机的可读取存储介质中,所述可读取存储介质包括ROM/RAM、磁盘和光盘。
6.基于权利要求1至5任意一项所述的业务调用关系的发现系统的业务调用关系发现方法,其特征在于,包括以下步骤:
1)通过jar文件设置单元在与业务应用系统相关的Java程序中设置jar文件;
2)通过启动单元在虚拟机中启动所述与业务应用系统相关的Java程序,并通过设置的Jar文件启动Java Instrumentation的代理程序;
3)调用关系获取单元通过所述Java Instrumentation的代理程序获取所述Java程序对应的业务应用系统之间的调用关系。
7.根据权利要求6所述的业务调用关系发现方法,其特征在于,所述步骤3)中,获取Java程序对应的业务应用系统之间的调用关系,具体步骤如下:
3-1)通过所述Java Instrumentation的代理程序获取所述Java程序调用的超文本传输协议HTTP数据、Java数据库连接JDBC数据以及文件传输协议FTP数据;
3-2)通过查询所述HTTP数据的基类代码、JDBC数据的基类代码、FTP数据的基类代码获取业务应用系统之间的调用关系,自动分析出非法访问以及接口的状态和负载。
8.根据权利要求6所述的业务调用关系发现方法,其特征在于,获取所述Java程序对应的业务应用系统之间的调用关系之后,还能够根据所述调用关系生成对应的拓扑图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275200.8A CN108021411A (zh) | 2017-12-06 | 2017-12-06 | 一种业务调用关系的发现系统和发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275200.8A CN108021411A (zh) | 2017-12-06 | 2017-12-06 | 一种业务调用关系的发现系统和发现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108021411A true CN108021411A (zh) | 2018-05-11 |
Family
ID=62078590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711275200.8A Pending CN108021411A (zh) | 2017-12-06 | 2017-12-06 | 一种业务调用关系的发现系统和发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021411A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901841A (zh) * | 2019-03-01 | 2019-06-18 | 太仓市同维电子有限公司 | 一种查看java字节码时显示方法调用关系图的方法 |
CN110032394A (zh) * | 2019-04-12 | 2019-07-19 | 深圳市腾讯信息技术有限公司 | 一种无源码文件的分析方法、装置和存储介质 |
CN110941534A (zh) * | 2019-11-19 | 2020-03-31 | 深圳开源互联网安全技术有限公司 | 检测web应用第三方代码调用的方法及系统 |
CN113176913A (zh) * | 2021-05-25 | 2021-07-27 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729514A (zh) * | 2008-10-23 | 2010-06-09 | 华为技术有限公司 | 一种业务调用的实现方法及装置和系统 |
CN105589695A (zh) * | 2015-12-23 | 2016-05-18 | 深圳市丽海弘金科技有限公司 | 业务功能的调用方法及系统 |
CN106878045A (zh) * | 2016-10-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 业务调用方法及装置 |
-
2017
- 2017-12-06 CN CN201711275200.8A patent/CN108021411A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729514A (zh) * | 2008-10-23 | 2010-06-09 | 华为技术有限公司 | 一种业务调用的实现方法及装置和系统 |
CN105589695A (zh) * | 2015-12-23 | 2016-05-18 | 深圳市丽海弘金科技有限公司 | 业务功能的调用方法及系统 |
CN106878045A (zh) * | 2016-10-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 业务调用方法及装置 |
Non-Patent Citations (1)
Title |
---|
YCZZ: ""Instrumentation实践详解"", 《HTTPS://BLOG.CSDN.NET/YCZZ/ARTICLE/DETAILS/51656386》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901841A (zh) * | 2019-03-01 | 2019-06-18 | 太仓市同维电子有限公司 | 一种查看java字节码时显示方法调用关系图的方法 |
CN109901841B (zh) * | 2019-03-01 | 2022-02-18 | 太仓市同维电子有限公司 | 一种查看java字节码时显示方法调用关系图的方法 |
CN110032394A (zh) * | 2019-04-12 | 2019-07-19 | 深圳市腾讯信息技术有限公司 | 一种无源码文件的分析方法、装置和存储介质 |
CN110032394B (zh) * | 2019-04-12 | 2022-05-31 | 深圳市腾讯信息技术有限公司 | 一种无源码文件的分析方法、装置和存储介质 |
CN110941534A (zh) * | 2019-11-19 | 2020-03-31 | 深圳开源互联网安全技术有限公司 | 检测web应用第三方代码调用的方法及系统 |
CN113176913A (zh) * | 2021-05-25 | 2021-07-27 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
CN113176913B (zh) * | 2021-05-25 | 2023-03-24 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021411A (zh) | 一种业务调用关系的发现系统和发现方法 | |
JP5340734B2 (ja) | テンプレートベースのサービス管理 | |
JP5698429B2 (ja) | 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
CN101237326B (zh) | 设备日志实时解析的方法、装置和系统 | |
CN102571476B (zh) | 一种实时监控终端命令行的方法和装置 | |
US20100145978A1 (en) | Techniques to provide unified logging services | |
WO2019128299A1 (zh) | 一种测试系统及测试方法 | |
CN103970655A (zh) | 一种基于expect的服务器自动化集群测试方法 | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
US20080114799A1 (en) | System and Method for Utilizing XML Documents to Transfer Programmatic Requests in a Service Oriented Architecture | |
CN111245656A (zh) | 一种通过移动设备远程监控的方法及系统 | |
CN111818175A (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN110704721A (zh) | 客户端数据处理方法、装置、终端设备及可读存储介质 | |
CN104166545A (zh) | 一种网页资源的嗅探方法以及装置 | |
CN105207829B (zh) | 一种入侵检测数据处理方法、装置,及系统 | |
CN109885472A (zh) | 测试管理方法及系统和计算机可读存储介质 | |
CN116069725A (zh) | 文件迁移方法、装置、设备、介质和程序产品 | |
CN115333872A (zh) | 安全网关解析功能验证方法、装置、终端设备及存储介质 | |
CN115408569A (zh) | 一种进程溯源树简化方法、装置、设备及介质 | |
US20150100888A1 (en) | Providing a common interface for accessing and presenting component configuration settings | |
CN112583891B (zh) | 接口文档获取方法、装置和服务器 | |
JP5278533B2 (ja) | アクセス制御装置、情報管理装置およびアクセス制御方法 | |
US20180159737A1 (en) | Method for Remote Management of Multiple Device Configurations | |
KR101620564B1 (ko) | 웹 기반의 감시제어 서비스 제공방법 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체 | |
CN109684158B (zh) | 分布式协调系统的状态监控方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180511 |