CN106686041A - 一种java软件的监测方法、监测组件及应用服务器 - Google Patents
一种java软件的监测方法、监测组件及应用服务器 Download PDFInfo
- Publication number
- CN106686041A CN106686041A CN201510763496.2A CN201510763496A CN106686041A CN 106686041 A CN106686041 A CN 106686041A CN 201510763496 A CN201510763496 A CN 201510763496A CN 106686041 A CN106686041 A CN 106686041A
- Authority
- CN
- China
- Prior art keywords
- service
- detection
- monitoring
- result
- data analysis
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种JAVA软件的监测方法、监测组件及应用服务器,该监测方法包括:监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;和/或检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;根据所述监听数据分析结果,和/或检测数据分析的结果,确定所述JAVA软件的运行状态。本发明能够快速给出监测结果和分析结果,提升软件的维护效率和稳定性,在降低了操作人员维护工作量和对操作人员能力水平的要求的同时,提高了软件状态分析的准确性。
Description
技术领域
本发明涉及软件监测技术领域,尤其涉及一种JAVA软件的监测方法、监测组件及应用服务器。
背景技术
随着计算机的不断普及,软件在日常生活的应用越来越多,而且软件系统越来越庞大,但是人们对计算机的认识水平参差不齐,对于软件运行过程中的慢、卡或者错误认识不足,目前只能从CPU占用和内存占用来看程序的状态,无法详细了解程序的真实运行情况。
当前分析软件运行情况,通过操作系统查看CPU占用、内存占用;通过系统操作界面或者日志功能查看错误警告,或者通过软件运行日志分析系统的运行状态和负载状况等,或者通过第三方工具软件分析某特定功能的情况(比如:Jconsole,Wireshark,Jprofile等),最后,结合系统操作维护手册或者个人的维护验证,初步估计分析出系统当前的运行情况和负载状态,而并非系统的真实情况。
整体上可以归结为“人工检查和分析”两个阶段,人工检查阶段逐步由简单通用性分析,转入复杂专业性分析,并且该过程可能需要不停的重复执行,从而达到一个比较切合实际的分析结果,如图1所示。人工检查是指维护人员通过查看CPU占用、内存占用、或者通过系统功能、系统日志,以及第三方工具软件等检查系统情况,整个过程经历简单通用性分析,转到复杂专业的检查过程,人为要求较高,检查效率较低,维护成本高;人工分析是指维护人员根据前一阶段检查情况,结合个人的维护经验,以及系统操作维护手册,分析出系统当前的运行状态和负荷情况,最后,再根据分析结果逐一印证检查阶段的情况,确认分析结果的合理性。人工检查和分析一次可能达不到预期效果,还需要续观察,重复多次执行检查、分析和印证过程,才能达到一个相对较为符合实际的分析结果。
但是,在实现本发明过程中,发明人发现现有技术至少存在以下问题:
(1)通过软件的现象、提示、CPU、内存、日志等准确及时判断软件运行状况,检测繁锁,人为因素较大,需要具备非常丰富的软件开发、维护或使用经验,跟人员经验紧密相关,对人的要求比较高;
(2)由于软件长时间运行,维护人员不能实时不间断的检测和分析软件状态,不能准确掌握软件的运行,状态分析不准确,存在一定的维护风险;
(3)随着网络的发展,软件应用得到广泛普及,以及大型软件的应用,软件故障的影响也越来越大,人工分析状态不能满足时间要求,分析成本也比较大。
发明内容
本发明提出了一种JAVA软件的监测方法、监测组件及应用服务器,以解决现有软件运行状况监测中存在的对操作人员要求高、检测繁锁、人为因素较大、状态分析不准确、检测和分析周期长、维护成本高等问题,有效地提高了软件分析的准确性。
根据本发明的一个方面,提供了一种JAVA软件的监测方法,该方法包括:
监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;和/或
检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
根据所述监听数据分析结果,和/或检测数据分析的结果,确定所述JAVA软件的运行状态。
其中,所述方法还包括:
当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;
输出所述软件分析报告到用户终端。
其中,在所述监听JAVA软件中业务处理进程前、后的内部流转数据之前,所述方法还包括:
接收用户发送的监听服务启动请求,通过动态安全口令对所述监听服务启动请求进行安全认证;其中,所述监听服务启动请求用于指定启动的监听服务;
根据通过安全认证的监听服务启动请求,启动相应的监听服务;
接收所述相应的监听服务的监听服务响应消息,并根据所述监听服务响应消息启动对应的数据分析服务。
其中,所述监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,具体包括:
调用监听服务启动接口,分别监听JAVA软件中业务处理进程运行前和所述业务处理进程完成后的内部流转数据;
接收监听到的内部流转数据,得到数据监听结果;
将所述数据监听结果上报到对应的数据分析服务,以触发所述数据分析服务对所述数据监听结果进行监听数据分析。
其中,所述检测所述业务处理进程在执行过程中的运行状态之前,所述方法还包括:
接收用户发送的检测服务启动请求,通过动态安全口令对所述检测服务启动请求进行安全认证;
根据通过安全认证的检测服务启动请求,启动相应的检测服务;
接收所述检测服务的检测服务响应消息,并根据所述检测服务响应消息启动对应的数据分析服务。
其中,若检测服务为被动检测服务,则所述检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,具体包括:
创建并启动定时检测任务,检测所述业务处理进程在执行过程中的运行状态;
获取检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
其中,若检测服务为主动检测服务,则所述检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,具体包括:
接收检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
其中,所述方法还包括:
接收用户终端发送的服务注册信息,并对所述服务注册信息进行注册;
根据所述服务注册信息的服务类型,建立与所述服务类型对应的监测操作和数据分析服务的同步关系;
其中,所述服务注册信息包括服务类型和与服务类型对应数据分析服务,所述服务类型包括:检测服务类型和/或监听服务类型。
其中,在所述对所述服务注册信息进行注册之前,所述方法还包括;
通过动态安全口令对所述服务注册信息进行安全认证。
根据本发明的另一个方面,提供了一种JAVA软件的监测组件,该监测组件包括:
监听管理模块,用于监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;和/或
检测管理模块,用于检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
所述数据分析管理模块,用于根据所述监听管理模块的监听数据分析结果,和/或所述检测管理模块的检测数据分析的结果,确定所述JAVA软件的运行状态。
其中,所述数据分析管理模块,还用于当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;以及
输出所述软件分析报告到用户终端。
根据本发明的再一个方面,提供了一种应用服务器,所述应用服务器包括如上述任一实施例所述的JAVA软件的监测组件;
所述JAVA软件的监测组件通过插拔方式安装在所述应用服务器上。
本发明的有益效果为:
本发明提供的JAVA软件的监测方法、监测组件及应用服务器,能够自动对JAVA软件中业务处理进程进行监测,监听业务处理进程前、后的内部流转数据,和/或,检测该业务处理进程的运行状态,并快速给出监测结果和分析结果。增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1背景技术中人工分析JAVA软件的方法处理流程图;
图2为本发明实施例提出的一种JAVA软件的监测方法的流程图;
图3为本发明另一实施例提出的一种JAVA软件的监测方法的流程图;
图4为本发明另一实施例提出的一种JAVA软件的监测方法的流程图;
图5为本发明实施例提出的JAVA软件的监测方法中服务注册步骤的流程图;
图6为本发明实施例提出的JAVA软件的监测方法中监听服务的监听实现原理图;
图7为本发明实施例提出的JAVA软件的监测方法中监听处理的时序流程图;
图8为本发明实施例提出的JAVA软件的监测方法中检测服务的检测实现原理图;
图9为本发明实施例提出的JAVA软件的监测方法中检测服务的检测结果上报方式示意图;
图10为本发明实施例提出的JAVA软件的监测方法中检测处理的时序流程图;
图11为本发明实施例提出的一种JAVA软件的监测组件的结构框图;
图12为本发明另一实施例提出的一种JAVA软件的监测组件的结构框图;
图13为本发明另一实施例提出的一种JAVA软件的监测组件的结构框图;
图14为本发明实施例中的JBoss服务器的核心服务组件架构图;
图15为本发明实施例中的Soft-Auto-Detection组件的软件结构分布图;
图16为本发明实施例中的Soft-Auto-Detection组件的工作原理图;
图17为本发明实施例中的JAVA软件的监测方法中服务注册和发布的工作原理图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
针对现有技术中无法详细了解软件程序的真实运行状态的问题,如软件在使用中出现慢、卡等现象,就有很多原因,比如:
(1)软件间资源竞争激烈。
(2)软件待请求较多,处理繁忙。
(3)软件内存占用过大,内存反复切入切出,造成来不及处理其它业务。
(4)对于分布式系统,还存在系统间传输网络带宽、消息延迟等问题。
(5)系统中消息内存错误。
因此,一旦出现不良状况,就需要软件开发人员定位,分析系统当前状态,增加了软件运营维护成本,同时给开发人员带来很大的维护工作量。
目前,分析软件运行情况,主要是通过人工对CPU占用、内存占用、操作响应、错误警告等方面分析,或者结合日志文件分析,但是不具备智能分析和快速输出详细报告的能力,一旦系统出现异常表现,就需要人工逐一分析排除。对于复杂的问题还需要分析大量的日志文件,或者提供分析定位补丁等专业性要求较高处理,对操作人员的要求会很高,人为经验因素很大,因此,问题分析定位时间不固定,同时支撑也增加了后期软件维护成本。为此,本发明提出了一种JAVA软件的监测方法、监测组件及应用服务器,使得传统人工方式检测和控制方法实现了在线自动化和流程化,能够自动检测内部业务处理情况,并快速给出检测结果和分析结果。增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了操作人员维护工作量和对操作人员能力水平的要求,从而在减少人工维护成本和工作量的同时,提高了软件状态分析的准确性。
以下对本公开实施例中提及的部分词语进行举例说明。其中:
JMX:(Java Management Extensions)即Java管理扩展,是一个为应用程序、设备、系统等植入管理功能的可复用框架,它为远程(Remote)和本地(Local)管理工具扩展了应用。
JBoss:JBoss是一个使用工业标准JMX来管理、运行EJB(Enterprise JavaBean的缩写)的J2EE应用服务器。
JBoss XMBean:MBean是Managed Bean的简称,在JMX中MBean代表一个被管理的资源实例,通过MBean暴露一系列方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。JBossXMBean是JBoss的JMX实现版本,它不需要通过编程方式实现动态MBean的接口,而是通过XML描述符指定组件的管理接口。
图2示出了本发明实施例的一种JAVA软件的监测方法的流程图。
参照图2,本发明实施例提出的JAVA软件的监测方法,具体包括以下步骤:
S11、监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;
S12、根据所述监听数据分析结果,确定所述JAVA软件的运行状态。
本发明提供的JAVA软件的监测方法,能够自动对JAVA软件中业务处理进程进行监测,监听业务处理进程前、后的内部流转数据,并快速给出监测结果。增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
图3示出了本发明另一实施例的一种JAVA软件的监测方法的流程图。
参照图3,本发明实施例提出的JAVA软件的监测方法,具体包括以下步骤:
S21、检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
S22、根据所述检测数据分析的结果,确定所述JAVA软件的运行状态。
本发明提供的JAVA软件的监测方法,能够自动对JAVA软件中业务处理进程进行检测,通过检测该业务处理进程的运行状态,并快速给出检测分析结果,增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
图4示出了本发明另一实施例的一种JAVA软件的监测方法的流程图。
参照图4,本发明实施例提出的JAVA软件的监测方法,具体包括以下步骤:
S31、监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;
S32、检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
S33、根据所述监听数据分析结果和检测数据分析的结果,确定所述JAVA软件的运行状态。
需要说明的是,软件的的运行状态,包括:软件待请求较多,处理繁忙、软件内存占用过大,内存反复切入切出,造成来不及处理其它业务、对于分布式系统,还存在系统间传输网络带宽、消息延迟等问题以及系统中消息内存错误等。
进一步地,本实施例中,所述方法还包括:
当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;
输出所述软件分析报告到用户终端。
本发明实施例提供的技术方案,在软件内部建立检测和监听机制,并提供数据分析和报表提取功能,从而能够快速输出软件状态检测和分析报告,以及软件内部流转数据,避免人工检测和分析。在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
本发明实施例提供的JAVA软件的监测方法,进一步包括以下步骤:
接收用户终端发送的服务注册信息,并对所述服务注册信息进行注册;
根据所述服务注册信息的服务类型,建立与所述服务类型对应的监测操作和数据分析服务的同步关系;
其中,所述服务注册信息包括服务类型和与服务类型对应数据分析服务,所述服务类型包括:检测服务类型和/或监听服务类型。
其中,在所述对所述服务注册信息进行注册之前,所述方法还包括;
通过动态安全口令对所述服务注册信息进行安全认证。
本发明实施例提供的JAVA软件的监测方法中,进一步包括服务注册的步骤,下面通过具体实例介绍服务注册的实现流程,如图5所示,具体如下。
操作人员通过注册器在线注册新的检测或监听服务,需要将服务类型、检测服务、数据分析服务等信息注册到组件的服务管理模块,并提供动态安全口令。
注册器根据动态安全口令校验判断,如果口令正确,则继续处理,否则,结束处理,并提示注册失败,原因提示口令非法。
通知同步器进行新注册服务同步,同步器根据服务类型同步注册检测管理/监听管理和数据分析管理模块,建立与所述服务类型对应的监测操作和数据分析服务的同步关系。
服务注册完成后,返回注册结果。
本实施例中,在所述步骤S31中的监听JAVA软件中业务处理进程前、后的内部流转数据之前,所述方法还包括以下图中未示出的步骤:
A01、接收用户发送的监听服务启动请求,通过动态安全口令对所述监听服务启动请求进行安全认证;其中,所述监听服务启动请求用于指定启动的监听服务;
A02、根据通过安全认证的监听服务启动请求,启动相应的监听服务;
A03、接收所述相应的监听服务的监听服务响应消息,并根据所述监听服务响应消息启动对应的数据分析服务。
进一步地,所述步骤S31,具体包括以下图中未示出的步骤:
调用监听服务启动接口,分别监听JAVA软件中业务处理进程运行前和所述业务处理进程完成后的内部流转数据;
接收监听到的内部流转数据,得到数据监听结果;
将所述数据监听结果上报到对应的数据分析服务,以触发所述数据分析服务对所述数据监听结果进行监听数据分析。
本发明实施例中,监听服务是在原业务处理环节,利用Java拦截器技术,注入相应的拦截器,在业务处理进程前后拦截内部流转数据,如图6所示,左侧数是原始业务处理流程,右侧是注入一拦截器后的业务处理流程。
本实施例中的监听处理流程,如图7所示,具体如下:
操作人员通过注册器发起监听服务启动请求,可以指定启动的监听服务,也可以是启动全部监听服务。另外,需要提供动态安全口令。
注册器首先完成安全口令认证,如果认证失败,则处理结束,并返回失败提示;否则,通知同步器启动服务。
同步器根据服务类型,同步监听管理和数据管理,以触发所述数据分析服务对所述数据监听结果进行监听数据分析,并返回启动结果。
当监听服务启动后,一旦监听到数据,就会上报给监听管理。
监听管理再将监听数据转发给数据管理。
数据管理首先完成监听结果数据分析和过滤,并将分析过滤结果保存到文件。
本实施例中,在所述步骤S32中的检测所述业务处理进程在执行过程中的运行状态之前,所述方法还包括以下图中未示出的步骤:
B01、接收用户发送的检测服务启动请求,通过动态安全口令对所述检测服务启动请求进行安全认证;
B02、根据通过安全认证的检测服务启动请求,启动相应的检测服务;
B03、接收所述检测服务的检测服务响应消息,并根据所述检测服务响应消息启动对应的数据分析服务。
进一步地,若检测服务为被动检测服务,则所述步骤S32,具体包括以下图中未示出的步骤:
创建并启动定时检测任务,检测所述业务处理进程在执行过程中的运行状态;
获取检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
在本发明另一实施例中,若检测服务为主动检测服务,则所述步骤S32,具体包括以下图中未示出的步骤:
接收检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
本发明实施例中,检测服务是在原业务处理进程中增加检测服务,静态注入或者利用Java拦截器技术动态注册检测服务,在业务处理中或者前后实时统计并上报给检测管理,如图8所示,左侧数是原始业务处理流程,右侧是注册了检测服务后的业务处理流程。
检测服务按照检测结果上报方式可分为主动检测和被动检测两种类型。其中,主动和被动是相对检测服务来说,如图9所示,主动检测是检测服务自动检测,将并检测结果主动上报给控制服务器;而被动检测是控制服务器调用检测服务接口,触发检测返回检测结果。
本实施例中的检测处理流程,如图10所示,具体如下:
操作人员通过注册器发起服务启动请求,可以指定启动的服务,也可以是启动全部服务。另外,需要提供动态安全口令。
注册器首先完成安全口令认证,如果认证失败,则处理结束,并返回失败提示;否则,通知同步器启动服务。
同步器根据服务类型,决定是同步检测管理和数据管理,以触发所述数据分析服务对所述状态检测结果进行检测数据分析,并返回启动结果。
如果启动的是被动检测服务,检测管理需要创建并启动周期任务,由此任务主动发起检测;否则,需要调用检测服务启动接口,完成启动。
任务启动后,检测管理会主动获取或接收检测结果,并将检测结果发送给数据管理。
数据管理首先完成检测结果数据分析,并将检测和分析结果保存起来。
进一步地,当操作人员需要提取软件状态时,通过注册器发起提取检测报告。数据管理根据操作人员的请求,提取并生成检测报告,并返回给操作人员。
通过本发明提供的JAVA软件的监测方法,使得传统人工方式检测和控制方法实现了在线自动化和流程化,降低了操作人员维护工作量和对操作人员能力水平的要求。
图11示出了本发明实施例提出的一种JAVA软件的监测组件的结构框图。
参照图11,本发明实施例提出的JAVA软件的监测组件,具体包括监听管理模块101以及数据分析管理模块102,其中:
所述的监听管理模块101,用于监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;
所述的数据分析管理模块102,用于根据所述监听数据分析结果,确定所述JAVA软件的运行状态。
本发明提供的JAVA软件的监测组件,能够自动对JAVA软件中业务处理进程进行监测,监听业务处理进程前、后的内部流转数据,并快速给出监测结果。增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
图12示出了本发明另一实施例提出的一种JAVA软件的监测组件的结构框图。
参照图12,本发明实施例提出的JAVA软件的监测组件,具体包括检测管理模块201以及数据分析管理模块202,其中:
所述的检测管理模块201,用于检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
所述的数据分析管理模块202,用于根据所述检测数据分析的结果,确定所述JAVA软件的运行状态。
本发明提供的JAVA软件的监测组件,能够自动对JAVA软件中业务处理进程进行检测,通过检测该业务处理进程的运行状态,并快速给出检测分析结果,增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
图13示出了本发明实施例提出的一种JAVA软件的监测组件的结构框图。
参照图13,本发明实施例提出的JAVA软件的监测组件,具体包括监听管理模块301、检测管理模块302以及数据分析管理模块303,其中:
所述的监听管理模块301,用于监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;
所述的检测管理模块302,用于检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
所述的数据分析管理模块303,用于根据所述监听管理模块301的监听数据分析结果和所述检测管理模块302的检测数据分析的结果,确定所述JAVA软件的运行状态。
进一步地,所述数据分析管理模块303,还用于当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;以及
输出所述软件分析报告到用户终端。
本发明实施例中,所述监测组件还包括:
注册模块,用于在所述监听管理模块监听JAVA软件中业务处理进程前、后的内部流转数据之前,接收用户发送的监听服务启动请求,并通过动态安全口令对所述监听服务启动请求进行安全认证;其中,所述监听服务启动请求用于指定启动的监听服务;
同步模块,用于根据通过安全认证的监听服务启动请求,启动所述监听管理模块中相应的监听服务;以及,接收所述相应的监听服务的监听服务响应消息,并根据所述监听服务响应消息启动所述数据分析管理模块中对应的数据分析服务。
进一步地,当进行监听服务处理时,所述注册模块,还用于在所述检测管理模块检测所述业务处理进程在执行过程中的运行状态之前,接收用户发送的检测服务启动请求,通过动态安全口令对所述检测服务启动请求进行安全认证;
所述同步模块,还用于根据通过安全认证的检测服务启动请求,启动相应的检测服务;以及
接收所述检测服务的检测服务响应消息,并根据所述检测服务响应消息启动对应的数据分析服务。
进一步地,当进行检测服务处理时,所述注册模块,还用于接收用户终端发送的服务注册信息,通过动态安全口令对所述服务注册信息进行安全认证,并对所述服务注册信息进行注册;
所述同步模块,还用于根据所述服务注册信息的服务类型,建立与所述服务类型对应的监测操作和数据分析服务的同步关系;
其中,所述服务注册信息包括服务类型和与服务类型对应数据分析服务,所述服务类型包括:检测服务类型和/或监听服务类型。
本发明实施例提供的技术方案,在软件内部建立检测和监听机制,并提供数据分析和报表提取功能,从而能够快速输出软件状态检测和分析报告,以及软件内部流转数据,避免人工检测和分析。在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
此外,对于JAVA软件的监测组件实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本发明的另一实施例中,提供了一种应用服务器,所述应用服务器包括如上述任一实施例所述的JAVA软件的监测组件;
所述JAVA软件的监测组件通过插拔方式安装在所述应用服务器上。
需要说明的是,本发明技术方案可以通过内嵌在JBoss服务器中的一个组件服务(命名为Soft-Auto-Detection)实现,下面详细介绍本技术方案的原理设计及功能划分。
JBoss应用服务器是一种建立在JMX架构之上的模块化框架,这种框架结构使得JBoss的所有核心服务都具有“可插拔性”。因此本发明技术方案正是利用这种模块化与可插拔的设计理念,在遵循JBoss XMBean开发规范的基础之上,在JBoss核心服务成员中扩展了一个命名为“Soft-Auto-Detection”的新的组件模块,如图14所示。新扩展的Soft-Auto-Detection组件即可以实现本发明技术方案,有效的克服了“人工”方案的缺陷。
每个JBoss核心服务组件都是一系列JBoss XMBean的封装包,JBoss启动成功时被初始化并注册进MBeanServer服务中,成为一种可管理的MBean服务并对外提供相应的业务功能,Soft-Auto-Detection组件模型与加载方式同样如此。
在软件设计方面,Soft-Auto-Detection组件遵循JBoss XMBean规范,软件结构可分为“检测管理”、“监听管理”和“数据分析管理”三个模块,组件结构分布如图15所示。
检测管理,包括检测服务管理和检测处理,其中,检测服务管理负责检测服务的注册、存储、启动、停止、生成分析报告等;检测处理负责周期主动查询或者接收检测结果、触发针对检测结果的数据分析、保存检查结果和分析结果。
监控管理,包括监听服务管理和监听处理,其中,监听服务管理负责监听服务的注册、存储、启动、停止等;监听处理负责接受、触发针对监听结果的数据分析、保存监听结果和分析结果。
数据分析管理,包括数据分析服务管理、数据分析和数据管理等,其中,数据分析服务管理负责数据分析服务的注册和存储;数据分析负责对检测结果和监听结果的分析,并形成分析报告;数据管理负责数据保存和输出。
Soft-Auto-Detection组件各个管理模块之间的工作原理、巡检任务调度以及部署原理均可参见图16所示。从工作原理图中可以得知,Soft-Auto-Detection组件被作为内置组件部署于JBoss应用服务器内部,主要职责是检测和监听软件数据,并记录原始检测和监听数据,以及输出软件运行状态分析报告。
如图16所示,Soft-Auto-Detection组件本身不具备任务调度能力,定时检测任务的周期调度由JBoss服务器内置的时钟服务Scheduler负责完成,通过将检测管理模块的检测任务注入Scheduler服务的Timer进程即可,这样JBoss启动成功后Soft-Auto-Detection组件就会实时检测软件的运行状态,并将检测结果发送给数据管理模块进行相应的处理。
检测和监听服务管理采用在线注册和动态发布的设计,如图17所示,能够很方便的功能扩展。当出现新的需求或者运行状态需要监控或监听时,只需要增加相应的检测或监听服务,服务管理模块收到添加消息时,可以自动实现注册,并在线与数据分析模块和事件监听模块同步发布生效。
综上所述,本发明实施例提供的JAVA软件的监测方法、监测组件及应用服务器,能够自动对JAVA软件中业务处理进程进行监测,监听业务处理进程前、后的内部流转数据,和/或,检测该业务处理进程的运行状态,并快速给出监测结果和分析结果。增强了软件自我状态分析能力、提升软件的维护效率和稳定性,降低了对操作维护人员的能力要求,在减少人工维护成本和工作量的同时,提高了软件分析的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的系统中的模块可以按照实施例描述进行分布于实施例的系统中,也可以进行相应变化位于不同于本实施例的一个或多个系统中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种JAVA软件的监测方法,其特征在于,所述方法包括:
监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;和/或
检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
根据所述监听数据分析结果,和/或检测数据分析的结果,确定所述JAVA软件的运行状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;
输出所述软件分析报告到用户终端。
3.根据权利要求1或2所述的方法,其特征在于,在所述监听JAVA软件中业务处理进程前、后的内部流转数据之前,所述方法还包括:
接收用户发送的监听服务启动请求,通过动态安全口令对所述监听服务启动请求进行安全认证;其中,所述监听服务启动请求用于指定启动的监听服务;
根据通过安全认证的监听服务启动请求,启动相应的监听服务;
接收所述相应的监听服务的监听服务响应消息,并根据所述监听服务响应消息启动对应的数据分析服务。
4.根据权利要求3所述的方法,其特征在于,所述监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,具体包括:
调用监听服务启动接口,分别监听JAVA软件中业务处理进程运行前和所述业务处理进程完成后的内部流转数据;
接收监听到的内部流转数据,得到数据监听结果;
将所述数据监听结果上报到对应的数据分析服务,以触发所述数据分析服务对所述数据监听结果进行监听数据分析。
5.根据权利要求1或2所述的方法,其特征在于,所述检测所述业务处理进程在执行过程中的运行状态之前,所述方法还包括:
接收用户发送的检测服务启动请求,通过动态安全口令对所述检测服务启动请求进行安全认证;
根据通过安全认证的检测服务启动请求,启动相应的检测服务;
接收所述检测服务的检测服务响应消息,并根据所述检测服务响应消息启动对应的数据分析服务。
6.根据权利要求5所述的方法,其特征在于,若检测服务为被动检测服务,则所述检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,具体包括:
创建并启动定时检测任务,检测所述业务处理进程在执行过程中的运行状态;
获取检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
7.根据权利要求5所述的方法,其特征在于,若检测服务为主动检测服务,则所述检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,具体包括:
接收检测到的运行状态数据,得到状态检测结果;
将所述状态检测结果上报到对应的数据分析服务,以触发所述数据分析服务对所述状态检测结果进行检测数据分析。
8.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收用户终端发送的服务注册信息,并对所述服务注册信息进行注册;
根据所述服务注册信息的服务类型,建立与所述服务类型对应的监测操作和数据分析服务的同步关系;
其中,所述服务注册信息包括服务类型和与服务类型对应数据分析服务,所述服务类型包括:检测服务类型和/或监听服务类型。
9.根据权利要求8所述的方法,其特征在于,在所述对所述服务注册信息进行注册之前,所述方法还包括;
通过动态安全口令对所述服务注册信息进行安全认证。
10.一种JAVA软件的监测组件,其特征在于,包括:
监听管理模块,用于监听JAVA软件中业务处理进程前、后的内部流转数据,得到数据监听结果,并对所述数据监听结果进行监听数据分析;和/或
检测管理模块,用于检测所述业务处理进程在执行过程中的运行状态,得到状态检测结果,并对所述状态检测结果进行检测数据分析;
所述数据分析管理模块,用于根据所述监听管理模块的监听数据分析结果,和/或所述检测管理模块的检测数据分析的结果,确定所述JAVA软件的运行状态。
11.根据权利要求10所述的监测组件,其特征在于,所述数据分析管理模块,还用于当接收到用户的监测状态获取请求时,根据所述监听数据分析结果,和/或检测数据分析的结果,生成软件分析报告,并保存所述软件分析报告;以及
输出所述软件分析报告到用户终端。
12.一种应用服务器,其特征在于,所述应用服务器包括如权利要求10或11所述的JAVA软件的监测组件;
所述JAVA软件的监测组件通过插拔方式安装在所述应用服务器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510763496.2A CN106686041A (zh) | 2015-11-10 | 2015-11-10 | 一种java软件的监测方法、监测组件及应用服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510763496.2A CN106686041A (zh) | 2015-11-10 | 2015-11-10 | 一种java软件的监测方法、监测组件及应用服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106686041A true CN106686041A (zh) | 2017-05-17 |
Family
ID=58865654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510763496.2A Pending CN106686041A (zh) | 2015-11-10 | 2015-11-10 | 一种java软件的监测方法、监测组件及应用服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106686041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471852A (zh) * | 2019-08-12 | 2019-11-19 | 中国工商银行股份有限公司 | 在线检测方法、系统和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1381785A (zh) * | 2001-04-13 | 2002-11-27 | 互慧科技股份有限公司 | 软件诊断系统与方法 |
US20030061265A1 (en) * | 2001-09-25 | 2003-03-27 | Brian Maso | Application manager for monitoring and recovery of software based application processes |
CN101697144A (zh) * | 2009-10-28 | 2010-04-21 | 中兴通讯股份有限公司 | 一种软件测试方法及测试装置 |
CN104699593A (zh) * | 2013-12-04 | 2015-06-10 | 大连鸿祺科技发展有限公司 | 基于unix操作系统的计算软件诊断方法 |
-
2015
- 2015-11-10 CN CN201510763496.2A patent/CN106686041A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1381785A (zh) * | 2001-04-13 | 2002-11-27 | 互慧科技股份有限公司 | 软件诊断系统与方法 |
US20030061265A1 (en) * | 2001-09-25 | 2003-03-27 | Brian Maso | Application manager for monitoring and recovery of software based application processes |
CN101697144A (zh) * | 2009-10-28 | 2010-04-21 | 中兴通讯股份有限公司 | 一种软件测试方法及测试装置 |
CN104699593A (zh) * | 2013-12-04 | 2015-06-10 | 大连鸿祺科技发展有限公司 | 基于unix操作系统的计算软件诊断方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471852A (zh) * | 2019-08-12 | 2019-11-19 | 中国工商银行股份有限公司 | 在线检测方法、系统和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752799B (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN109800160B (zh) | 机器学习系统中的集群服务器故障测试方法和相关装置 | |
Xu et al. | POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications | |
CN110752969B (zh) | 一种性能检测方法、装置、设备及介质 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
EP2479698A1 (en) | Systems and methods for detecting fraud associated with systems application processing | |
CN105577799B (zh) | 一种数据库集群的故障检测方法和装置 | |
CN105404580B (zh) | 分布式压力测试系统和方法 | |
CN112860569A (zh) | 一种自动化测试方法、装置、电子设备和存储介质 | |
Stephanow et al. | Towards continuous security certification of software-as-a-service applications using web application testing techniques | |
CN103701783A (zh) | 一种预处理单元、由其构成的数据处理系统以及处理方法 | |
CN107220169B (zh) | 一种模拟服务器返回定制化数据的方法和设备 | |
CN113010392B (zh) | 大数据平台的测试方法、装置、设备、存储介质和系统 | |
CN116155771A (zh) | 网络异常测试方法、装置、设备、存储介质和程序 | |
Wang et al. | A model-based framework for cloud API testing | |
CN110908910B (zh) | 一种基于区块链的测试监控方法、装置及可读存储介质 | |
CN114124759B (zh) | 用于分布式系统的评估方法及装置、电子设备、存储介质 | |
CN109446053A (zh) | 应用程序的测试方法、计算机可读存储介质及终端 | |
CN105955838A (zh) | 一种系统死机的原因查看方法及装置 | |
CN111651121A (zh) | 数据逻辑计算方法、装置、电子设备及存储介质 | |
CN114338684A (zh) | 一种能源管理系统及方法 | |
CN105978939A (zh) | 一种数据下载方法及设备 | |
CN106686041A (zh) | 一种java软件的监测方法、监测组件及应用服务器 | |
CN114785526B (zh) | 基于区块链的多用户多批次权重分配计算及存储处理系统 | |
CN111722917A (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 |
Application publication date: 20170517 |
|
RJ01 | Rejection of invention patent application after publication |