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
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
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 Corp of China SGCC
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
Original Assignee
State Grid Corp of China SGCC
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
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 Corp of China SGCC, 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 filed Critical State Grid Corp of China SGCC
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; CALCULATING OR 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; CALCULATING OR 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
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