一种应用程序运行状态的检查方法和检查装置的制作方法

文档序号:6368527阅读:118来源:国知局
专利名称:一种应用程序运行状态的检查方法和检查装置的制作方法
技术领域
本申请涉及Java领域,特别涉及一种应用程序运行状态的检查方法和检查装置。
背景技术
OSGI技术是面向Java的动态模型系统。OSGI技术提供允许应用程序使用可重用、配置、扩展、协作、管理的组件构建的标准化原语。这些组件能够组装进ー个应用和部署中,实现组件的模块化、动态化。OSGI规范的核心组件是OSGI框架。这个框架为应用程序(被叫做组件bundle)提供了ー个标准环境,整个框架可以划分为ー些层次LO :运行环境;LI :模块;L2 :组件(bundle)生命周期管理,如组件的安装、卸载、激活、停止;L3 :服务的注册和注销,类的声明与类的对象的实例化;以及均在上述LO、LI、L2和L3中设置的安全系统。当应用程序不断到集成OSGI框架中时,会产生ー些已知或未知的问题,这些问题可能是ー些无法避免的问题,比如a、bundle安装、卸载、启动、停止等生命周期运行异常;b、Java虚拟机堆栈异常。诸如此类问题会导致系统无法稳定运行。但是由于Java系统是封闭运行的,在系统的稳定运行受到影响之前,无法得知其运行情况,只有在系统出现异常后进行分析,才能够知道是其中运行的某个或某些应用程序的数据出现了问题导致的,影响系统的正常运行。

发明内容
有鉴于此,本申请提供一种应用程序运行状态的检查方法,对在OSGI框架运行环境中的应用程序进行检查,得到系统的运行情况,解决了在系统出现异常后才能进行问题分析的缺点。一种应用程序运行状态的检查方法,包括接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前 运行状态。上述的方法,优选的,调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的运行状态包括
获取所述采集器中采集到的所述应用程序运行时的数据信息,在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。上述的方法,优选的,还包括依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新。上述的方法,优选的,还包括将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。上述的方法,优选的,将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布之后还包括 判断所述应用程序的当前运行状态是否满足预设的标准运行条件,当不满足吋,触发警报。一种应用程序运行状态的检查装置,包括接收器,用于接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;采集器,用于依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;分析器,用于调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。上述的装置,优选的,所述分析器包括获取模块,用于获取所述采集器中采集到的所述应用程序运行时的数据信息;分析模块,用于在依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。上述的装置,优选的,还包括更新器,用于依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新。上述的装置,优选的,还包括发布器,用于将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。上述的装置,优选的,所述发布器包括判断模块,用于判断所述应用程序的当前运行状态是否满足预设的标准运行条件;警报模块,用于当所述应用程序的当前运行状态不满足预设的标准运行条件吋,触发警报。本申请提供了一种应用程序运行状态的检查方法,包括接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。采用本申请的ー种应用程序运行状态的检查方法,能够对在OSGI框架运行环境下运行的应用程序进行状态检查,得到该应用程序的当前运行状态,得知系统的运行情况,不必等到系统出现异常后才进行问题分析,系统运行时就能知道其中的应用程序的运行情況。


为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的ー些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本申请提供的一种应用程序运行状态的检查方法实施例I的流程图;图2是本申请提供的一种应用程序运行状态的检查方法实施例2的流程图;图3是本申请提供的一种应用程序运行状态的检查方法实施例3的流程图; 图4是本申请提供的一种应用程序运行状态的检查装置实施例I的结构示意图;图5是本申请提供的一种应用程序运行状态的检查装置实施例I的另ー种结构示意图;图6是本申请提供的一种应用程序运行状态的检查装置实施例2的结构示意图;图7是本申请提供的一种应用程序运行状态的检查装置实施例3的结构示意图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请是基于JSR77。JSR77提出了ー个为J2EE平台公开管理信息的管理模型。模型支持管理大量J2EE资源的能力,包括EJB、Web容器、JMS和JDBC连接。该模型还可以用于采集、监听和控制有关应用服务器的运行时信息。这个通用模型支持使用管理工具,轻松地管理多个J2EE的厂商实现。JSR77定义了许多抽象,在处理性能统计信息、应用程序状态和关系方面,对JMX进行了补充。它定义了 Statistic接ロ,用于对J2EE组件的性能数据建模。參见图1,示出了本申请ー种应用程序运行状态的检查方法实施例I的流程图,包括步骤SlOl :接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;通过线程机制预先设定核心线程,核心线程中设置有定时进行应用程序运行状态检查的条件,当到达设置的定时时间时,核心线程自动发送对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求,该请求包括了多项检查条件,其中,被检查的应用程序的数据对象类型均能设置在核心线程的请求中。应用程序的数据对象类型可以包括虚拟机、组件(Bundle)等。步骤S102 :依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;线程机制也预先设置了与检查请求中设置的被检查的应用程序的类型等条件相对应的采集线程。当接收到核心线程发送的检查请求时,依据检查请求中包含的被检查的应用程序的数据对象类型启动与其相对应的采集线程,按照预设的采集条件对该应用程序当前运行时的数据信息进行采集,并且需要对采集得到的数据信息进行缓存。应用程序的数据对象类型为虚拟机时,采集的是Java虚拟机各方面的数据信息,如虚拟机的核心线程、内存使用情况等。应用程序的数据对象类型为bundle组件时,采集OSGI微内核内Bundle的运行状况信息,如bundle是正常启动与停止还是异常启动与停止等。其中,采集线程运行的具体步骤包括
步骤S 1021 :接收到核心线程发送的检查请求,启动与其相对应的采集线程;步骤S1022 :刷新上一次采集完成后缓存的数据信息;对上一次采集的数据信息进行刷新的目的是定时更新缓存的数据,保证数据最新。步骤S1023 :执行采集任务,以设定的频率对应用程序的数据信息进行采集;该设定的频率是在线程机制预先设定采集线程时进行预设的,可根据应用程序的重要性和易出错等特征进行频率大小的设置。在下一个采集周期开始前,采集线程一直被阻塞,直到本次采集到的数据信息刷新缓存的数据信息。实际实施中,采集得到的数据信息可以为事实数据,该事实数据是指最基本类型的数据,而非定义对象类型,比如bundle的启动类型为int,bundle的名称类型为string。步骤S103 :调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。与采集线程相对应的,规则引擎设置有分析规则,对应用程序当前运行时的数据信息进行采集完成后,获取所述采集器中采集到的所述应用程序运行时的数据信息,在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。实际实施中,可采用遍历的方式将所述应用程序运行时的全部的数据信息进行获取。由上述可知,本申请实施例I提供的一种应用程序运行状态的检查方法,接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求,依据所述检查请求启动与其相对应的采集线程,该采集线程按照预设的采集条件对应用程序的当前运行时的数据信息进行采集,对应用程序当前运行时的数据信息进行采集完成后,获取所述采集器中采集到的所述应用程序运行时的数据信息,在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。通过对在OSGI框架运行环境下运行的应用程序进行数据信息的采集和规则分析,就能够得到该应用程序当前的运行状态,不必等到系统出现异常后才进行问题分析。參见图2,示出了本申请ー种应用程序运行状态的检查方法实施例2的流程图,本实施例是在实施例I步骤S 103之后,还包括步骤S 104 :依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新;每一次对应用程序的运行状态进行检查,都要对采集得到的该应用程序的当前运行过程中的数据信息及获得的所述应用程序的当前运行状态进行存储,当对应用程序的运行状态进行检查时,依据本次检查时采集的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对上一次检查过程中的数据信息及运行状态进行更新,保证了存储的数据信息及运行状态信息为最新的。步骤S105 :将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前 运行状态,对所述得到的当前运行状态进行发布,发布的方式可以为将所述当前运行状态写入日志文件中发布;该日志接ロ必须符合微内核日志规范,该运行状态根据预设的级别对应写入到警告、错误等级别的log日志中。或者,将所述当前运行状态转换为命令进行发布。该命令的发布必须符合微内核的命令规范。由上述可知,本申请实施例2提供的一种应用程序运行状态的检查方法,通过依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新,保证了存储的数据信息及运行状态信息为最新,并且对得到的该应用程序当前运行状态进行发布,方便编程人员或是使用人员对应用程序的运行状态情况进行快速了解。參见图3,示出了本申请ー种应用程序运行状态的检查方法实施例3的流程图,本实施例是在实施例2的步骤S 105之后还包括步骤S106 :判断所述应用程序的当前运行状态是否满足预设的标准运行条件,当不满足时,触发警报。预设程序运行的标准运行条件,当规则引擎对采集得到的所述应用程序当前运行的数据进行规则分析得到的所述应用程序的当前运行状态不满足该标准运行条件时,触发警报,通知编程人员或是使用人员所述应用程序继续运行将会导致系统出现异常。由上述可知,本申请实施例3提供的一种应用程序运行状态的检查方法,当进行检查的应用程序的当前运行状态不满足与现实设定的标准运行条件时,触发警报进行报警,通知编程人员或是使用人员。与上述的本申请提供的一种应用程序运行状态的检查方法实施例I相对应的,參见图4,示出了本申请ー种应用程序运行状态的检查装置实施例I的结构示意图,包括接收器101、采集器102和分析器103。其中,接收器101,用于接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;
通过线程机制预先设定核心线程,核心线程中设置有定时进行应用程序运行状态检查的条件,当到达设置的定时时间时,核心线程自动发送对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求,该请求包括了多项检查条件,其中,被检查的应用程序的数据对象类型等均能设置在核心线程的请求中。接收器101接收核心线程发送的检查请求。其中,采集器102,用于依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;接收器101接收到检查请求时,采集器102启动与所述检查请求相对应的采集线程,采集线程的类型与被检查的应用程序的类型相同,采集线程的类型对应着采集器102的具体类型。实际实施中,采集器具体可采用探针,较常用的两种探针类型为
JvmProbe,负责探听、检查、采集java虚拟机各方面的数据信息,如虚拟机的核心线程、内存使用情况等;BundleProbe,负责探听、检查、采集OSGI微内核框架内bundle的运行状况,如bundle是正常启动与停止还是异常启动与停止等。也可根据应用程序的数据对象类型采用其他类型的探针。实际实施中,该探针类型可设置在核心线程的请求中,依据核心线程发送的请求使用与请求中相应类型的探针进行数据信息采集。探针的命名必须符合java包命名范围,分析器从探针得到的数据信息实现了 Statistic 接 ロ。探针上下文对探针注册到OSGI框架、从OSGI框架注销、OSGI框架更新等探针的服务动作进行跟踪,当探针服务被OSGI框架注册时,探针上下文缓存该探针服务;当探针服务从OSGI框架注销时,探针上下文删除缓存的该探针服务。所述采集器102遵循JSR77规范,实现Statistic接ロ,对不同J2EE组件的各个方面采集到的事实数据建模,便于数据在分析器103中的传递。其中,分析器103,用于调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。与采集线程相对应的,规则引擎设置有分析规则,采集器102对应用程序当前运行时的数据信息进行采集完成后,获取所述采集器中采集到的所述应用程序运行时的数据信息,在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。实际实施中,可采用遍历的方式获取采集器采集的所述应用程序运行时的全部的数据信息。图5示出了本申请实施例I的另ー种结构示意图,所述分析器103包括获取模块1031和分析模块1032。其中,所述获取模块1031,用于获取所述采集器中采集到的所述应用程序运行时的数据信息;分析器103内部设置有规则引擎,规则引擎中存储有执行规则,该执行规则包括比对、计算等多种规则。
采集器102对应用程序运行时的数据信息采集完成后,分析器103对这些数据信息进行分析,获取模块1031获取所述数据信息到分析器103中。其中,所述分析模块1032,用于在依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。规则引擎中存储的执行规则与采集器102相对应,获取所述采集器中采集到的所述应用程序运行时的数据信息,由与其对应的执行规则进行分析。由上述可知,本申请实施例I提供了一种应用程序运行状态的检查装置,接收器接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;采集器依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;分析器的获取模块获取所述采集器中采集到的所述应用程序运行时的数据信息,分析模块在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。通过本申请实施例I提供的一种应用程序运行状态的检查装置对在OSGI框架运行环境下运行的应用程序进行数据信息的采集和规 则分析,就能够得到该应用程序当前的运行状态,不必等到系统出现异常后才进行问题分析。參见图6,示出了本申请ー种应用程序运行状态的检查装置实施例2的结构示意图,本实施例是在实施例I所示的一种应用程序运行状态的检查装置还包括更新器104,用于依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新。每一次对应用程序的运行状态进行检查,都要对采集器102采集得到的该应用程序的当前运行过程中的数据信息及分析器103获得的所述应用程序的当前运行状态进行存储,当对本次对应用程序的运行状态进行检查时,依据本次检查时采集器102采集的所述应用程序当前运行过程中的数据信息及分析器103获得的所述应用程序的对当前运行状态上一次检查过程中的数据信息及运行状态进行更新,保证了存储的数据信息及运行状态イM息为最新的。实际实施中,采用探针上下文对探针采集的数据信息及依据探针采集的数据信息规则计算得到的运行状态进行更新。由上述可知,本申请实施例2提供的一种应用程序运行状态的检查装置,更新器依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新,保证了存储的数据信息及运行状态信息为最新,并且对得到的该应用程序当前运行状态进行发布,方便编程人员或是使用人员对应用程序的运行状态情况进行快速了解。參见图7,示出了本申请ー种应用程序运行状态的检查装置实施例3的结构示意图,本实施例是在实施例2所示的一种应用程序运行状态的检查装置还包括发布器105,用于将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态,对所述得到的当前运行状态进行发布,发布的方式可以为
将所述当前运行状态写入日志文件中发布;该日志接ロ必须符合微内核日志规范,该运行状态根据预设的级别对应写入到警告、错误等级别的log日志中。或者,将所述当前运行状态转换为命令进行发布。该命令的发布必须符合微内核的命令规范。所述发布器105包括判断模块1051和警报模块1052 其中,所述判断模块1051,用于判断所述应用程序的当前运行状态是否满足预设的标准运行条件; 判断模块1051内设置有标准运行条件。当依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态时,比对所述当前运行状态与标准运行条件,判断所述当前运行状态是否满足该标准运行条件,满足,即是,运行正常,所述应用程序继续运行不会引起系统异常;不满足,所述应用程序继续运行将会导致系统出现异常。其中,所述警报模块1052,用于当所述应用程序的当前运行状态不满足预设的标准运行条件时,触发警报。当规则引擎对采集得到的所述应用程序当前运行的数据进行规则分析得到的所述应用程序的当前运行状态不满足该标准运行条件时,所述应用程序继续运行将会导致系统出现异常,触发警报,通知编程人员或是使用人员。由上述可知,本申请实施例3提供的一种应用程序运行状态的检查装置,判断模块判断当进行检查的应用程序的当前运行状态不满足与现实设定的标准运行条件时,警报模块触发警报进行报警,通知编程人员或是使用人员所述应用程序继续运行将会导致系统出现异常。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相參见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种应用程序运行状态的检查方法,其特征在于,包括 接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求; 依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息; 调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。
2.根据权利要求I所述的方法,其特征在于,调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的运行状态包括 获取所述采集器中采集到的所述应用程序运行时的数据信息,在所述规则引擎中依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。
3.根据权利要求2所述的方法,其特征在于,还包括 依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新。
4.根据权利要求I所述的方法,其特征在于,还包括 将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。
5.根据权利要求4所述的方法,其特征在于,将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布之后还包括 判断所述应用程序的当前运行状态是否满足预设的标准运行条件,当不满足时,触发警报。
6.一种应用程序运行状态的检查装置,其特征在于,包括 接收器,用于接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求; 采集器,用于依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息; 分析器,用于调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。
7.根据权利要求6所述的装置,其特征在于,所述分析器包括 获取模块,用于获取所述采集器中采集到的所述应用程序运行时的数据信息; 分析模块,用于在依据所述规则引擎的执行规则分析所述数据信息,获得所述应用程序的当前运行状态。
8.根据权利要求7所述的装置,其特征在于,还包括 更新器,用于依据采集到的所述应用程序当前运行过程中的数据信息及获得的所述应用程序的当前运行状态对当前检查过程的上一次检查过程中的数据信息及运行状态进行更新。
9.根据权利要求6所述的装置,其特征在于,还包括 发布器,用于将所述依据预设的规则引擎对所述数据信息进行规则计算得到的所述应用程序的当前运行状态进行发布。
10.根据权利要求9所述的装置,其特征在于,所述发布器包括 判断模块,用于判断所述应用程序的当前运行状态是否满足预设的标准运行条件; 警报模块,用于当所述应用程序的当前运行状态不满足预设的标准运行条件时,触发警报。
全文摘要
本申请提供了一种应用程序运行状态的检查方法,包括接收核心线程发送的对在OSGI框架运行环境下运行的应用程序进行状态检查的检查请求;依据所述检查请求启动与其相对应的采集线程,按预设的采集条件采集所述应用程序当前运行时的数据信息;调用预设的规则引擎对所述数据信息进行规则分析,获得所述应用程序的当前运行状态。采用本申请的一种应用程序运行状态的检查方法,能够对在OSGI框架运行环境下运行的应用程序进行状态检查,得到该应用程序的当前运行状态,得知系统的运行情况,不必等到系统出现异常后才进行问题分析,系统运行时就能知道其中的应用程序的运行情况。
文档编号G06F11/32GK102708037SQ20121012056
公开日2012年10月3日 申请日期2012年4月23日 优先权日2012年4月23日
发明者刘耀, 盛凌艳 申请人:山东中创软件商用中间件股份有限公司, 山东中创软件工程股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1