CN115599379A - 一种java应用程序预埋针系统及方法 - Google Patents

一种java应用程序预埋针系统及方法 Download PDF

Info

Publication number
CN115599379A
CN115599379A CN202211397611.5A CN202211397611A CN115599379A CN 115599379 A CN115599379 A CN 115599379A CN 202211397611 A CN202211397611 A CN 202211397611A CN 115599379 A CN115599379 A CN 115599379A
Authority
CN
China
Prior art keywords
data
variable
service
traffic
name
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
CN202211397611.5A
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.)
Shenzhen Ylink Computing System Co ltd
Original Assignee
Shenzhen Ylink Computing System 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 Shenzhen Ylink Computing System Co ltd filed Critical Shenzhen Ylink Computing System Co ltd
Priority to CN202211397611.5A priority Critical patent/CN115599379A/zh
Publication of CN115599379A publication Critical patent/CN115599379A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种JAVA应用程序预埋针系统及方法,该系统嵌入应用程序中,包括:接口通信模块:用于设置与外部交互的访问接口;数据观察模块:用于接收数据获取请求,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值;业务量统计模块:用于记录应用程序的业务数据;接收业务量获取请求,根据业务量获取请求读取对应的业务数据,对读取到的业务数据进行统计,以得到业务量数据,返回业务量数据;数据操纵模块:用于接收数据操纵请求,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值。该系统能够实现应用程序中变量可从外部被观察、被动态修改,以及外部可获取业务量数据的功能。

Description

一种JAVA应用程序预埋针系统及方法
技术领域
本发明属于计算机技术领域,具体涉及一种JAVA应用程序预埋针系统及方法。
背景技术
应用程序在开发完成后,通过编译、打包、发布等过程,其运行逻辑基本就已经固化了。所以在应用程序的运行过程中,通常难以实时观察和动态调整处于运行中的应用程序情况。具体包括:
1、从外部对正在运行中的应用程序观察某个变量的当前值(通常是Java中的static变量)或获得业务量数据。而目前这种需求的解决方案是在开发阶段提前在源代码中输出日志信息,若在开发阶段忘记日志输出或者在运行过程中临时需要对某数据进行观察,现有方法不能满足需求。
2、从外部对正在运行中的应用程序操纵原有数据值。例如应用程序在运行过程中发现某个变量(通常是Java中的static变量)需要临时调整其值,以实现操纵某个标记位使应用程序执行如清理垃圾数据、改变判断成立条件、切换程序执行分支、触发特定的逻辑处理等处理。而目前无法对正常运行中的应用程序实现此需求。
发明内容
本发明提供一种JAVA应用程序预埋针系统及方法,能够实现应用程序中变量可从外部被实时观察、被动态修改,以及从外部可获取业务数据的功能。
第一方面,一种JAVA应用程序预埋针系统,JAVA应用程序预埋针系统嵌入应用程序中,包括:
接口通信模块:用于设置与外部交互的访问接口;
数据观察模块:用于接收数据获取请求,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值;
业务量统计模块:用于记录应用程序的业务处理量数据;接收业务量获取请求,根据业务量获取请求读取对应的业务数据,对读取到的业务数据进行统计,以得到业务量数据,返回业务量数据;
数据操纵模块:用于接收数据操纵请求,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值。
进一步地,数据观察模块具体用于:
解析数据获取请求,以得到访问用户信息、待获取变量的名称、待获取变量所属的Java类名;
当访问用户信息验证通过时,根据待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据待获取变量的名称获取对应的变量,读取变量的当前值;
根据待获取变量的名称、待获取变量所属的Java类名、当前值构建数据返回报文;
返回数据返回报文。
进一步地,业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
业务量统计模块具体用于:
当接收到业务请求时,记录业务请求的接收时间、交易码和处理结果;
当业务请求处理完成后,更新业务请求的处理结果和耗时。
进一步地,所述业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
业务量统计模块具体用于:
解析业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当访问用户信息验证通过时,从业务数据中读取接收时间满足统计时间范围、交易码与统计交易码一致的业务数据;
在读取到的业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据成功业务量和失败业务量求取成功率;
根据正在进行中业务量、已处理业务量、平均耗时、成功率构建业务返回报文;
返回业务返回报文。
进一步地,数据操纵模块具体用于:
解析数据操纵请求,以得到访问用户信息、待操纵变量的名称、待操纵变量所属的Java类名、新值;
当访问用户信息验证通过时,根据待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据待操纵变量的名称获取对应的变量,将待操纵变量的数值设置为新值;
根据待操纵变量的名称、待操纵变量所属的Java类名、新值构建操作返回报文;
返回操作返回报文。
第二方面,一种JAVA应用程序预埋针方法,JAVA应用程序预埋针方法在应用程序中执行,包括:
接收数据获取请求,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值;
记录应用程序的业务数据;
接收业务量获取请求,根据业务量获取请求读取对应的业务数据,对读取到的业务数据进行统计,以得到业务量数据,返回业务量数据;
接收数据操纵请求,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值。
进一步地,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值具体包括:
解析数据获取请求,以得到访问用户信息、待获取变量的名称、待获取变量所属的Java类名;
当访问用户信息验证通过时,根据待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据待获取变量的名称获取对应的变量,读取变量的当前值;
根据待获取变量的名称、待获取变量所属的Java类名、当前值构建数据返回报文;
返回数据返回报文。
进一步地,业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
记录应用程序的业务数据具体包括:
当接收到业务请求时,记录业务请求的接收时间、交易码和处理结果;
当业务请求处理完成后,更新业务请求的处理结果和耗时。
进一步地,业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
根据业务量获取请求读取对应的业务数据,返回业务数据具体包括:
解析业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当访问用户信息验证通过时,从业务数据中读取接收时间满足统计时间范围、交易码与统计交易码一致的业务数据;
在读取到的业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据成功业务量和失败业务量求取成功率;
根据正在进行中业务量、已处理业务量、平均耗时、成功率构建业务返回报文;
返回业务返回报文。
进一步地,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值具体包括:
解析数据操纵请求,以得到访问用户信息、待操纵变量的名称、待操纵变量所属的Java类名、新值;
当访问用户信息验证通过时,根据待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据待操纵变量的名称获取对应的变量,将待操纵变量的数值设置为新值;
根据待操纵变量的名称、待操纵变量所属的Java类名、新值构建操作返回报文;
返回操作返回报文。
由上述技术方案可知,本发明提供的JAVA应用程序预埋针方法及系统,通过一种通用公共机制,实现了应用程序中变量可从外部被观察、被动态修改,以及外部可获取业务量数据的功能。该JAVA应用程序预埋针系统扩展性强,可根据需要扩展定制更多的功能,丰富了预制能力。该JAVA应用程序预埋针系统适应性广,在不同行业、不同开发框架的Java应用程序中都可以使用。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为实施例提供的JAVA应用程序预埋针系统的模块框图。
图2为实施例提供的JAVA应用程序预埋针方法的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例:
一种JAVA应用程序预埋针系统,参见图1,JAVA应用程序预埋针系统嵌入应用程序中,包括:
接口通信模块1:用于设置与外部交互的访问接口;
数据观察模块2:用于接收数据获取请求,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值;
业务量统计模块3:用于记录应用程序的业务数据;接收业务量获取请求,根据业务量获取请求读取对应的业务数据,对读取到的业务数据进行统计,以得到业务量数据,返回业务量数据;
数据操纵模块4:用于接收数据操纵请求,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值。
在本实施例中,该JAVA应用程序预埋针系统借鉴了医学诊疗临床实践中留置针的概念,在应用程序中构建JAVA应用程序预埋针系统,JAVA应用程序预埋针系统可以为EmbeddedNeedle组件,该组件作为基础组件供系统内所有服务使用。
在本实施例中,为了可以从外部观察或操纵运行中的应用程序,应用程序需要对外部暴露访问接口,所以接口通信模块1主要用来对外提供访问接口。接口通信模块1还约定了接口规范,接口规范包括通信协议和报文格式两方面。其中通信协议可以采用Socket协议、HTTP协议、HTTPS协议等,由于HTTP协议比较主流,且HTTP客户端工具比较多,所以通信协议通常选用HTTP协议,当使用HTTP协议时,客户端可以使用curl工具。为了便于人工从外部观察或操纵数据,报文格式的内容可以为明文可阅读文本(包括数字、字母、可阅读符号),报文格式可以选择定长格式、分隔符格式、XML格式、JSON格式等。考虑到JSON比较主流且简单,报文格式可以优选为JSON格式。
在本实施例中,数据观察模块2主要是实现数据观测功能,用来获取应用程序中各种变量的数值。业务量统计模块3包括实时记录业务数据和业务统计两个功能,例如业务量统计模块3可以从外部及时了解应用程序的处理量、当前在途业务量、处理耗时等指标,从而来判断应用程序的繁忙程度。业务量数据即可以作为监控数据来源,也可以作为上级流量分发或流量切换的依据。数据操纵模块4可以实现对JAVA应用程序中各种static变量值的修改,例如操纵某个标记位,使得应用程序执行如清理垃圾数据、改变判断成立条件、切换程序执行分支、触发特定的逻辑处理等操作。
该JAVA应用程序预埋针系统通过一种通用公共机制,实现了应用程序中变量可从外部被观察、被动态修改,以及外部可获取业务量数据的功能。该JAVA应用程序预埋针系统扩展性强,可根据需要扩展定制更多的功能,丰富了预制能力。该JAVA应用程序预埋针系统适应性广,在不同行业、不同开发框架的Java应用程序中都可以使用。
进一步地,在一些实施例中,数据观察模块2具体用于:
解析数据获取请求,以得到访问用户信息、待获取变量的名称、待获取变量所属的Java类名;
当访问用户信息验证通过时,根据待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据待获取变量的名称获取对应的变量,读取变量的当前值;
根据待获取变量的名称、待获取变量所属的Java类名、当前值构建数据返回报文;
返回数据返回报文。
在本实施例中,数据获取请求主要是用来请求获取应用程序中某个变量的当前值。当用户想要从外部观测数据时,利用客户端工具(例如curl或开发的管理工具软件)对指定的变量发出数据获取请求。数据获取请求可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000081
Figure BDA0003934237030000091
数据观察模块2通过接口通信模块1接收上述JSON报文,解析JSON报文,读取operateType项的值为“GetJavaVarValue(表征获取变量的当前值)”,则进行数据观察,对authorizedUserName(即访问用户信息中用户名)和authorizedInfo(即访问用户信息中授权验证信息)进行验证。若验证通过才进行后续操作,防止该JAVA应用程序预埋针系统被非法访问使用。从JSON报文中,读取ClassFullName(即待获取变量所属的Java类名)值,该类名可以采用全限定名,这样能唯一确定一个Java类,例如某个Java类的全限定名为“com.yykj.config.SomeClassName”,而“SomeClassName”为简洁类名。然后通过Java的Reflect反射机制,从当前运行Java应用程序中,找出ClassFullName对应的类对象。在该类对象中,通过Java的Reflect反射机制找到VarName(即待获取变量的名称)指定的变量,获取变量的当前值,将变量的当前值以toString的方式返回,例如数据返回报文可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000092
Figure BDA0003934237030000101
进一步地,在一些实施例中,业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
业务量统计模块3具体用于:
当接收到业务请求时,记录业务请求的接收时间、交易码和处理结果;
当业务请求处理完成后,更新业务请求的处理结果和耗时。
在本实施例中,Java应用程序每收到一笔业务请求时,记录业务请求的接收时间、交易码和处理结果。当业务请求处理完成后,更新业务请求的处理结果和耗时。例如在以下的二维表中进行记录:
Figure BDA0003934237030000102
处理结果中:S表示成功,F表示失败,0表示进行中,。Java应用程序可以通过数组或者其他集合对象存储以上二维表。Java应用程序可以直接将业务数据存放在内存中,加快读写速度。为了避免业务数据占用较多内存,可以只保存最近N分钟的记录(例如5分钟),丢弃超过N分钟的业务数据。
进一步地,在一些实施例中,所述业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
业务量统计模块3具体用于:
解析业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当访问用户信息验证通过时,从业务数据中读取接收时间满足统计时间范围、交易码与统计交易码一致的业务数据;
在读取到的业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据成功业务量和失败业务量求取成功率;
根据正在进行中业务量、已处理业务量、平均耗时、成功率构建业务返回报文;
返回业务返回报文。
在本实施例中,业务量获取请求主要是用来请求获取应用程序中的业务量数据。当用户想要从外部了解业务量统计情况时,利用客户端工具(例如curl或开发的管理工具软件)发出业务量获取请求。业务量获取请求可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000111
数据观察模块2通过接口通信模块1接收上述JSON报文,解析JSON报文,读取operateType项的值为“GetBusinessStatistic(表征获取业务量)”,则进行数据观察,对authorizedUserName和authorizedInfo进行验证。若验证通过才进行后续操作。从JSON报文中读取lastSeconds(即统计时间范围)、businessCode(即统计交易码)字段的值,从记录的业务数据中找出在lastSeconds秒范围内、并与统计交易码一致的业务数据。
然后对找到的业务数据进行统计。统计处理结果为O(进行中的业务数据)的业务数据的数量,定义为正在进行中业务量,填入业务返回报文的onGoing字段。统计处理结果为非0(成功和失败的业务数据)的业务数据的数量,定义为已处理业务量,填入业务返回报文的volume字段。读取处理结果为非进行中所有业务数据的耗时,对所有耗时进行均值运算,以得到平均耗时,填入业务返回报文的avgElapsedTime字段。统计处理结果为成功的业务数据的数量,定义为成功业务量,作为分子;统计处理结果为失败的业务数据的数量,定义为失败业务量,将成功业务量和失败业务量的总和作为分母,将分子与分母相除,得到的比值即为成功率,填入业务返回报文的successRate字段中。业务返回报文可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000121
进一步地,在一些实施例中,数据操纵模块4具体用于:
解析数据操纵请求,以得到访问用户信息、待操纵变量的名称、待操纵变量所属的Java类名、新值;
当访问用户信息验证通过时,根据待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据待操纵变量的名称获取对应的变量,将待操纵变量的数值设置为新值;
根据待操纵变量的名称、待操纵变量所属的Java类名、新值构建操作返回报文;
返回操作返回报文。
在一些实施例中,数据操纵请求主要是用来请求操纵或修改应用程序中某个变量的值。当用户想要从外部操纵数据时,利用客户端工具(例如curl或开发的管理工具软件)发出数据操纵请求。数据操纵请求可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000131
数据观察模块2通过接口通信模块1接收上述JSON报文,解析JSON报文,读取operateType项的值为“SetJavaVarValue(表征操纵变量)”,则进行数据观察,对authorizedUserName和authorizedInfo进行验证。若验证通过才进行后续操作。从JSON报文中,读取ClassFullName(即待操纵变量所属的Java类名)值。通过Java中的Reflect反射机制,从当前运行Java应用程序中,找出ClassFullName对应的类对象。在类对象中,通过Java中的Reflect反射机制找到VarName(即待操纵变量的名称)指定的变量,并将该变量设置为JSON报文中newValue(即新值)字段的值。操作返回报文可以采用如下的JSON报文格式定义:
Figure BDA0003934237030000141
一种JAVA应用程序预埋针方法,JAVA应用程序预埋针方法在应用程序中执行,参见图2,包括:
S1:接收数据获取请求,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值;
S2:记录应用程序的业务数据;
S3:接收业务量获取请求,根据业务量获取请求读取对应的业务数据,对读取到的业务数据进行统计,以得到业务量数据,返回业务量数据;
S4:接收数据操纵请求,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值。
进一步地,根据数据获取请求获取对应的待获取变量,读取待获取变量的当前值,返回当前值具体包括:
解析数据获取请求,以得到访问用户信息、待获取变量的名称、待获取变量所属的Java类名;
当访问用户信息验证通过时,根据待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据待获取变量的名称获取对应的变量,读取变量的当前值;
根据待获取变量的名称、待获取变量所属的Java类名、当前值构建数据返回报文;
返回数据返回报文。
进一步地,业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
记录应用程序的业务数据具体包括:
当接收到业务请求时,记录业务请求的接收时间、交易码和处理结果;
当业务请求处理完成后,更新业务请求的处理结果和耗时。
进一步地,业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
根据业务量获取请求读取对应的业务数据,返回业务数据具体包括:
解析业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当访问用户信息验证通过时,从业务数据中读取接收时间满足统计时间范围、交易码与统计交易码一致的业务数据;
在读取到的业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据成功业务量和失败业务量求取成功率;
根据正在进行中业务量、已处理业务量、平均耗时、成功率构建业务返回报文;
返回业务返回报文。
进一步地,根据数据操纵请求获取对应的待操纵变量和新值,将待操纵变量的数值设置为新值具体包括:
解析数据操纵请求,以得到访问用户信息、待操纵变量的名称、待操纵变量所属的Java类名、新值;
当访问用户信息验证通过时,根据待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据待操纵变量的名称获取对应的变量,将待操纵变量的数值设置为新值;
根据待操纵变量的名称、待操纵变量所属的Java类名、新值构建操作返回报文;
返回操作返回报文。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种JAVA应用程序预埋针系统,其特征在于,所述JAVA应用程序预埋针系统嵌入应用程序中,包括:
接口通信模块:用于设置与外部交互的访问接口;
数据观察模块:用于接收数据获取请求,根据所述数据获取请求获取对应的待获取变量,读取所述待获取变量的当前值,返回所述当前值;
业务量统计模块:用于记录所述应用程序的业务数据;接收业务量获取请求,根据所述业务量获取请求读取对应的业务数据,对读取到的所述业务数据进行统计,以得到业务量数据,返回所述业务量数据;
数据操纵模块:用于接收数据操纵请求,根据所述数据操纵请求获取对应的待操纵变量和新值,将所述待操纵变量的数值设置为所述新值。
2.根据所述权利要求1所述JAVA应用程序预埋针系统,其特征在于,所述数据观察模块具体用于:
解析所述数据获取请求,以得到访问用户信息、所述待获取变量的名称、所述待获取变量所属的Java类名;
当所述访问用户信息验证通过时,根据所述待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据所述待获取变量的名称获取对应的变量,读取所述变量的当前值;
根据所述待获取变量的名称、所述待获取变量所属的Java类名、所述当前值构建数据返回报文;
返回所述数据返回报文。
3.根据所述权利要求1所述JAVA应用程序预埋针系统,其特征在于,
所述业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
所述业务量统计模块具体用于:
当接收到所述业务请求时,记录所述业务请求的接收时间、交易码和处理结果;
当所述业务请求处理完成后,更新所述业务请求的处理结果和耗时。
4.根据所述权利要求3所述JAVA应用程序预埋针系统,其特征在于,
所述业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
所述业务量统计模块具体用于:
解析所述业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当所述访问用户信息验证通过时,从所述业务数据中读取接收时间满足所述统计时间范围、交易码与所述统计交易码一致的业务数据;
在读取到的所述业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有所述耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据所述成功业务量和所述失败业务量求取成功率;
根据所述正在进行中业务量、所述已处理业务量、所述平均耗时、所述成功率构建业务返回报文;
返回所述业务返回报文。
5.根据所述权利要求1所述JAVA应用程序预埋针系统,其特征在于,所述数据操纵模块具体用于:
解析所述数据操纵请求,以得到访问用户信息、所述待操纵变量的名称、所述待操纵变量所属的Java类名、所述新值;
当所述访问用户信息验证通过时,根据所述待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据所述待操纵变量的名称获取对应的变量,将所述待操纵变量的数值设置为所述新值;
根据所述待操纵变量的名称、所述待操纵变量所属的Java类名、所述新值构建操作返回报文;
返回所述操作返回报文。
6.一种JAVA应用程序预埋针方法,其特征在于,所述JAVA应用程序预埋针方法在应用程序中执行,包括:
接收数据获取请求,根据所述数据获取请求获取对应的待获取变量,读取所述待获取变量的当前值,返回所述当前值;
记录所述应用程序的业务数据;
接收业务量获取请求,根据所述业务量获取请求读取对应的业务数据,对读取到的所述业务数据进行统计,以得到业务量数据,返回所述业务量数据;
接收数据操纵请求,根据所述数据操纵请求获取对应的待操纵变量和新值,将所述待操纵变量的数值设置为所述新值。
7.根据所述权利要求6所述JAVA应用程序预埋针方法,其特征在于,所述根据所述数据获取请求获取对应的待获取变量,读取所述待获取变量的当前值,返回所述当前值具体包括:
解析所述数据获取请求,以得到访问用户信息、所述待获取变量的名称、所述待获取变量所属的Java类名;
当所述访问用户信息验证通过时,根据所述待获取变量所属的Java类名获取对应的类对象;在该类对象中,根据所述待获取变量的名称获取对应的变量,读取所述变量的当前值;
根据所述待获取变量的名称、所述待获取变量所属的Java类名、所述当前值构建数据返回报文;
返回所述数据返回报文。
8.根据所述权利要求6所述JAVA应用程序预埋针方法,其特征在于,
所述业务数据包括每条业务请求的接收时间、交易码、处理结果和耗时;
所述记录所述应用程序的业务数据具体包括:
当接收到所述业务请求时,记录所述业务请求的接收时间、交易码和处理结果;
当所述业务请求处理完成后,更新所述业务请求的处理结果和耗时。
9.根据所述权利要求8所述JAVA应用程序预埋针方法,其特征在于,
所述业务量数据包括正在进行中业务量、已处理业务量、平均耗时和成功率;
所述根据所述业务量获取请求读取对应的业务数据,返回所述业务数据具体包括:
解析所述业务量获取请求,以得到访问用户信息、统计时间范围、统计交易码;
当所述访问用户信息验证通过时,从所述业务数据中读取接收时间满足所述统计时间范围、交易码与所述统计交易码一致的业务数据;
在读取到的所述业务数据中,统计处理结果为进行中的业务数据的数量,定义为正在进行中业务量;统计处理结果为非进行中的业务数据的数量,定义为已处理业务量;读取处理结果为非进行中所有业务数据的耗时,对所有所述耗时进行均值运算,以得到平均耗时;统计处理结果为成功的业务数据的数量,定义为成功业务量,统计处理结果为失败的业务数据的数量,定义为失败业务量,根据所述成功业务量和所述失败业务量求取成功率;
根据所述正在进行中业务量、所述已处理业务量、所述平均耗时、所述成功率构建业务返回报文;
返回所述业务返回报文。
10.根据所述权利要求6所述JAVA应用程序预埋针方法,其特征在于,所述根据所述数据操纵请求获取对应的待操纵变量和新值,将所述待操纵变量的数值设置为所述新值具体包括:
解析所述数据操纵请求,以得到访问用户信息、所述待操纵变量的名称、所述待操纵变量所属的Java类名、所述新值;
当所述访问用户信息验证通过时,根据所述待操纵变量所属的Java类名获取对应的类对象;在该类对象中,根据所述待操纵变量的名称获取对应的变量,将所述待操纵变量的数值设置为所述新值;
根据所述待操纵变量的名称、所述待操纵变量所属的Java类名、所述新值构建操作返回报文;
返回所述操作返回报文。
CN202211397611.5A 2022-11-09 2022-11-09 一种java应用程序预埋针系统及方法 Pending CN115599379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211397611.5A CN115599379A (zh) 2022-11-09 2022-11-09 一种java应用程序预埋针系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211397611.5A CN115599379A (zh) 2022-11-09 2022-11-09 一种java应用程序预埋针系统及方法

Publications (1)

Publication Number Publication Date
CN115599379A true CN115599379A (zh) 2023-01-13

Family

ID=84853182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211397611.5A Pending CN115599379A (zh) 2022-11-09 2022-11-09 一种java应用程序预埋针系统及方法

Country Status (1)

Country Link
CN (1) CN115599379A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015717A1 (en) * 2001-07-30 2005-01-20 Kirkpatrick Mark A. System and method for using web based applications to manipulate data with manipulation functions
CN109992614A (zh) * 2018-11-14 2019-07-09 阿里巴巴集团控股有限公司 数据获取方法、装置和服务器
JP2020024533A (ja) * 2018-08-07 2020-02-13 富士通株式会社 分析支援方法および分析支援プログラム
WO2021051583A1 (zh) * 2019-09-16 2021-03-25 平安科技(深圳)有限公司 变量的传输和收集方法、装置及计算机可读存储介质
CN113254470A (zh) * 2021-05-28 2021-08-13 武汉悦学帮网络技术有限公司 一种数据更改方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015717A1 (en) * 2001-07-30 2005-01-20 Kirkpatrick Mark A. System and method for using web based applications to manipulate data with manipulation functions
JP2020024533A (ja) * 2018-08-07 2020-02-13 富士通株式会社 分析支援方法および分析支援プログラム
CN109992614A (zh) * 2018-11-14 2019-07-09 阿里巴巴集团控股有限公司 数据获取方法、装置和服务器
WO2021051583A1 (zh) * 2019-09-16 2021-03-25 平安科技(深圳)有限公司 变量的传输和收集方法、装置及计算机可读存储介质
CN113254470A (zh) * 2021-05-28 2021-08-13 武汉悦学帮网络技术有限公司 一种数据更改方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US20030135792A1 (en) Language subset validation
US20020170033A1 (en) Computer program language subset validation
CN112527414B (zh) 一种基于前端的数据处理方法、装置、设备及存储介质
CN107133323A (zh) 数据模型构建方法、政务服务业务的实现方法及装置
CN112631924A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN112433705A (zh) 脚本生成方法、装置、电子设备及存储介质
CN112711398A (zh) 埋点文件生成方法、装置、设备及存储介质
US20070088871A1 (en) Implementation of shared and persistent job queues
CN115599379A (zh) 一种java应用程序预埋针系统及方法
CN110489576B (zh) 图片资源处理方法和系统、客户端、服务器、处理器及介质
CN111767161A (zh) 远程调用深度识别方法、装置、计算机设备及可读存储介质
CN114970474A (zh) 一种基于数据监听的excel导入导出方法及系统
CN113780580B (zh) 基于机器学习的数据分析方法、装置、设备及存储介质
CN112287643B (zh) 消息监听方法、装置、设备及计算机可读存储介质
CN113852610A (zh) 报文处理方法、装置、计算机设备和存储介质
KR101637201B1 (ko) 함수 후킹을 이용한 리눅스 또는 유닉스 시스템용 c언어 기반 어플리케이션 성능 관리 모듈
CN110012023B (zh) 一种投毒式的防爬方法、系统、终端及介质
CN111913700B (zh) 一种云-端交互协议分析方法、装置、设备及存储介质
CN113946333B (zh) 一种移动端逻辑脚本执行方法及装置
EP3995966A1 (en) System and method for automatic application log messages grouping using logging framework code instrumentation
WO2015035838A1 (en) Method and apparatus for collecting multimedia data
CN118245342A (zh) 一种面向无页面应用的数据埋点采集装置、方法、设备及存储介质
CN115691724A (zh) 医用信息处理方法、装置、计算机设备及存储介质
CN115421723A (zh) 指标采集方法、装置、电子设备及存储介质
CN113296834A (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