[go: up one dir, main page]

CN108021411A - 一种业务调用关系的发现系统和发现方法 - Google Patents

一种业务调用关系的发现系统和发现方法 Download PDF

Info

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
program
business application
instrumentation
business
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
Application number
CN201711275200.8A
Other languages
English (en)
Inventor
邓君华
徐超
张昕
李叶飞
葛崇慧
顾俊
王松
谢伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Jiangsu Electric Power Co Ltd
Jiangsu Fangtian Power Technology Co Ltd
Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd
State Grid Corp of China SGCC
Original Assignee
State Grid Jiangsu Electric Power Co Ltd
Jiangsu Fangtian Power Technology Co Ltd
Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd
State Grid Corp of China SGCC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Jiangsu Electric Power Co Ltd, Jiangsu Fangtian Power Technology Co Ltd, Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd, State Grid Corp of China SGCC filed Critical State Grid Jiangsu Electric Power Co Ltd
Priority to CN201711275200.8A priority Critical patent/CN108021411A/zh
Publication of CN108021411A publication Critical patent/CN108021411A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-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程序对应的业务应用系统之间的调用关系之后,还能够根据所述调用关系生成对应的拓扑图。
CN201711275200.8A 2017-12-06 2017-12-06 一种业务调用关系的发现系统和发现方法 Pending CN108021411A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 阿里巴巴集团控股有限公司 业务调用方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
YCZZ: ""Instrumentation实践详解"", 《HTTPS://BLOG.CSDN.NET/YCZZ/ARTICLE/DETAILS/51656386》 *

Cited By (7)

* Cited by examiner, † Cited by third party
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
CN103049271B (zh) 自动生成api接口的描述文档的方法和装置
KR102008037B1 (ko) 분산형 애플리케이션 객체에 대한 업데이트 통지를 제공하는 기법
CN106533713B (zh) 一种应用部署方法及设备
TWI549080B (zh) The method, system and device for sending information of category information
CN110727560B (zh) 云服务报警方法及装置
WO2019051948A1 (zh) 监控数据的处理方法、设备、服务器及存储介质
TW201638779A (zh) 一種對虛擬主機的資源管理的方法、裝置、系統及電子設備
US20190278590A1 (en) Automated generation of service definitions for message queue application clients
WO2019075774A1 (zh) 设备参数配置方法、装置、计算机设备和存储介质
CN104636678B (zh) 一种云计算环境下对终端设备进行管控的方法和系统
CN108021411A (zh) 一种业务调用关系的发现系统和发现方法
WO2019223178A1 (zh) 跨平台任务调度方法、系统、计算机设备和存储介质
CN109274777B (zh) 一种导出配置文件的方法、装置、设备及可读存储介质
CN106961361A (zh) 自检处理方法、装置及系统
CN116016702A (zh) 一种应用可观测数据采集处理方法、装置及介质
WO2019109519A1 (zh) 业务规则管理方法、装置、设备及计算机可读存储介质
AU2015404396B2 (en) Federated marketplace portal
CN117112266A (zh) 一种基于分布式部署的多租户数据处理方法、设备及介质
CN117632445B (zh) 请求处理方法以及装置、任务执行方法以及装置
CN111240904A (zh) 数据库备份方法、装置、电子设备及存储介质
WO2018000524A1 (zh) 一种备份文件的方法及装置
US7614047B1 (en) Change indication for a service offering
US20190149622A1 (en) Application Resilience System and Method Thereof for Applications Deployed on Platform
CN115695537A (zh) 实现服务网格适配传统微服务注册中心的方法、系统和装置
CN111596933A (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