客户端补丁加载使用的监控处理方法和系统与流程

文档序号:18272196发布日期:2019-07-27 09:47阅读:118来源:国知局
客户端补丁加载使用的监控处理方法和系统与流程

本发明涉及计算机安全防护技术领域,特别是涉及一种客户端补丁加载使用的监控处理方法和系统。



背景技术:

目前,客户端可以通过补丁管理系统动态修复已发布客户端版本中存在的缺陷问题。在该类系统中,客户端在运行时通过服务器查询并请求需要加载使用的补丁文件。在补丁文件下载后,客户端以动态加载方式将补丁程序加载到客户端的应用空间中,并执行相关的补丁代码修复存在的缺陷。

如果补丁本身存在严重缺陷或兼容性问题,可能在补丁加载使用过程中导致客户端出现严重问题,甚至异常崩溃无法继续运行。因此亟待需要一种客户端补丁加载使用监控机制,实现能在加载使用补丁期间出现异常崩溃问题时有效检测到该异常信息且能够向补丁提供方反馈相关信息。



技术实现要素:

本发明的目的在于提供一种客户端补丁加载使用的监控处理方法,可以在加载使用补丁期间出现异常崩溃问题时有效检测到该异常信息且能够向补丁提供方反馈相关信息。

本发明的目的通过如下技术方案实现:

一种客户端补丁加载使用的监控处理方法,包括:

注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

启动监控服务组件;

在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息;

若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件;

通过所述监控服务组件向服务器报告所述补丁加载使用失败信息。

一种客户端补丁加载使用的监控处理系统,包括:

注册单元,用于注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

启动单元,用于在独立进程中启动监控服务组件,所述独立进程是指独立于客户端进程的进程;

第一监测单元,用于在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息;

传输单元,用于在所述第一监测单元的监测结果为捕获到异常信息时,将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件;

上报单元,用于通过所述监控服务组件向服务器报告所述补丁加载使用失败信息。

根据上述本发明的方案,其是注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器,启动监控服务组件,在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息由于注册了异常捕获处理器,这样,若在所述客户端进程加载使用补丁的过程中出现异常,异常捕获处理器能够即时有效地捕获到该异常信息,同时,由于启动了监控服务组件,且由于在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,并通过所述监控服务组件向服务器报告所述补丁加载使用失败信息,便于补丁提供方即时获知补丁加载使用失败信息,如此,不但能够有效地捕获到该异常信息,还能够即时向所述服务器报告所述补丁加载使用失败信息。

附图说明

图1为一个实施例中客户端补丁加载使用的监控处理方法的实现流程示意图;

图2为另一个实施例中客户端补丁加载使用的监控处理方法的实现流程示意图;

图3为再一个实施例中客户端补丁加载使用的监控处理方法的实现流程示意图;

图4为一个具体示例中的客户端补丁加载使用的监控处理方法的实现流程示意图;

图5为一个实施例中客户端补丁加载使用的监控处理系统的组成结构示意图;

图6为另一个实施例中客户端补丁加载使用的监控处理系统的组成结构示意图;

图7为再一个实施例中客户端补丁加载使用的监控处理系统的组成结构示意图;

图8为又一个实施例中客户端补丁加载使用的监控处理系统的组成结构示意图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或者/和”包括一个或多个相关的所列项目的任意的和所有的组合。

如图1所示,在一个实施例中,提供了一种客户端补丁加载使用的监控处理方法,该本实施例中的客户端补丁加载使用的监控处理方法包括如下步骤:

步骤S101:注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

具体的,当客户端启动并判定需要加载补丁时,注册一个异常捕获处理器,该异常捕获处理器用于捕获补丁加载使用过程中的异常信息。

步骤S102:启动监控服务组件;

具体的,可以通过调用startService的方式启动一个启动监控服务组件。

优选地,可以在独立进程中启动监控服务组件,所述独立进程是指独立于客户端进程的进程。这样,客户端进程出现异常崩溃也不会对监控服务组件进程造成影响。

步骤S103:在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息;

其中,在所述客户端进程加载使用补丁的过程中,如果出现异常,会被所述异常捕获处理器捕获到异常信息,这里,所述异常信息为表征在所述客户端进程加载使用补丁的过程中出现异常的信息。

步骤S104:若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件;

具体地,可以将补丁加载使用失败信息封装在传递对象中,通过预设的进程通信机制将该传递对象由所述客户端进程发送到所述监控服务组件,其中,进程通信机制包括startService方式、Socket方式或者Binder方式,但也不限于这几种。

步骤S105:通过所述监控服务组件向服务器报告所述补丁加载使用失败信息;

具体地,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息,以使相关人员(例如补丁提供者)知晓并处理问题。

据此,根据上述本实施例的方案,其是注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器,启动监控服务组件,在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息由于注册了异常捕获处理器,这样,若在所述客户端进程加载使用补丁的过程中出现异常,异常捕获处理器能够即时有效地捕获到该异常信息,同时,由于启动了监控服务组件,且由于在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若捕获到异常信息时,则将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,并通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息,便于补丁提供方即时获知补丁加载使用失败信息,如此,不但能够有效地捕获到该异常信息,还能够即时向所述服务器报告所述补丁加载使用失败信息。

考虑到,在正常情况下,补丁加载使用过程一般会在一定的时间内成功完成,但若补丁加载使用过程出现长时间未完成的情况,则很可能是补丁的加载使用失败。为了实现对这种情况下的监控处理,如图2所示,提供了一种客户端补丁加载使用的监控处理方法,该本实施例中的客户端补丁加载使用的监控处理方法包括如下步骤:

步骤S201:注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

步骤S202:启动监控服务组件;

步骤S203:在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若是,进入步骤S204,若否,进入步骤S206;

步骤S204:将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,进入步骤S205;

步骤S205:通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息;

该实施例中的步骤S201至步骤S205可以分别对应地参见上一实施例中的步骤S101至步骤S105,为节约篇幅,这里不再赘述。

步骤S206:监测所述客户端进程是否在预设监控时间内成功加载使用补丁,若否,则进入步骤S207,若是,则通过客户端进程将表征已成功加载使用补丁的信息发送到监控服务组件,监控服务组件可以在接收到该信息退出监控服务(或者称为结束监控服务);

这里,所述预设监控时间可以是系统默认设置的,也可以是用户根据实际需要自行设置的,所述预设监控时间的大小可以根据实际情况设定。

具体的,可以在启动监控服务组件后创建一个计时器,该计时器在创建完成时开始计时,并控制客户端进程在监控服务组件启动后立即加载并使用补丁动态修复存在的缺陷问题,这样,计时器的计时时间与客户端进程加载使用补丁的时间是一致的;若所述计时器的计时时间到达预设监控时间时,未接收到表征客户端进程成功加载使用补丁的消息,若接收到,则确定所述客户端进程在预设监控时间内成功加载使用补丁,否则,确定所述客户端进程未在预设监控时间内成功加载使用补丁。

步骤S207:通过所述监控服务组件检测所述客户端进程是否正在运行,若是,则进入步骤S205;

具体地,可以检测表征所述客户端进程的状态标志,若检测到状态标志表征所述客户端进程正在运行,则通过所述监控服务组件检测所述客户端进程是否正在运行的检测结果为是,若检测到状态标志表征所述客户端进程终止运行,则通过所述监控服务组件检测所述客户端进程是否正在运行的检测结果为否。

本实施例的方案,不但在异常捕获处理器捕获到异常信息会即时通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息,而且会在未捕获到异常信息时,若未捕获到异常信息,还监测所述客户端进程是否在预设监控时间内成功加载使用补丁,若未成功加载使用补丁,则通过所述监控服务组件检测所述客户端进程是否正在运行,若检测到所述客户端进程正在运行,则说明补丁文件存在问题,则通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息,实现了在补丁文件存在问题即时反馈补丁加载使用失败信息。

此外,如图2所示,本发明实施例的客户端补丁加载使用的监控处理方法还可以包括:

步骤S208:将疑似失败记录次数加一;

本步骤是在检测到所述客户端进程已经被终止,即步骤S207的检测结果为否时执行的步骤;

步骤S209:判断所述疑似失败记录次数是否超过预设的次数门限值,若是,进入步骤S205;

这里,所述次数门限值可以是系统默认设置的,也可以是用户根据需要自行设置的,所述次数门限值的大小可以根据实际需要选取,例如2。

具体的,在所述疑似失败记录次数超过预设的次数门限值时,则确定补丁文件存在问题,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息。本实施例中,还会在所述疑似失败记录次数超过预设的次数门限值,会向所述服务器即时反馈所述补丁加载使用失败信息,以便相关人员知晓并处理问题。

此外,为了防止客户端在再次启动使重新加载存在异常的补丁文件,在其中一个实施例中,在通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息,还可以包括通过所述监控服务组件删除加载使用失败的补丁文件。具体的,如图3所示,提供了一种客户端补丁加载使用的监控处理方法,该本实施例中的客户端补丁加载使用的监控处理方法包括如下步骤:

步骤S301:注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

步骤S302:启动监控服务组件;

步骤S303:在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息,若是,进入步骤S204,若否,进入步骤S306;

步骤S304:将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件,进入步骤S305;

步骤S305:通过所述监控服务组件删除加载使用失败的补丁文件;

本实施例中,将加载使用失败的补丁文件删除,可以确保下次客户端启动时不会再加载该补丁文件。

此外,为了能够确保下次客户端启动时不会再加载该补丁文件,还可以通过所述监控服务组件将加载使用失败的补丁文件标记为问题补丁,这样,客户端进程在加载使用补丁文件前检测到该“问题补丁”的标记,就可以终止加载使用补丁文件。

步骤S306:通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息;

步骤S307:监测所述客户端进程是否在预设监控时间内成功加载使用补丁,若否,则进入步骤S308,若是,则通过客户端进程将表征已成功加载使用补丁的信息发送到监控服务组件,监控服务组件可以在接收到该信息退出监控服务(或者称为结束监控服务);

步骤S308:通过所述监控服务组件检测所述客户端进程是否正在运行,若是,则进入步骤S305,若否,则进入步骤S309;

步骤S309:将疑似失败记录次数加一;

步骤S310:判断所述疑似失败记录次数是否超过预设的次数门限值,若是,则进入步骤S305。

上述任意一个实施例中的客户端补丁加载使用的监控处理方法,均可以较佳的应用于Android系统的客户端程序,这样,可以通过Android系统的捕获异常处理机制所提供的Thread.set Default Uncaught Exception Handler方法注册所述异常捕获处理器,或者/和通过Android系统提供的Context对象调用其中的startService的方式启动所述监控服务组件。

具体示例

为了便于理解本发明的方案,以下以Android系统为例进行说明,但这并不构成对本发明方案的限定。

如图4所示,该具体示例中的客户端补丁加载使用的监控处理方法还可以包括:

步骤S401:注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

具体的,客户端启动并判断需要加载补丁时,首先通过Android系统的未捕获异常处理机制所提供的Thread.setDefaultUncaughtExceptionHandler方法注册一个异常捕获的处理器,用于捕获补丁加载使用过程中可能产生的异常。

步骤S402:在独立进程中启动监控服务组件,设置计时器计时,并接收客户端进程的消息;

具体的,通过Android系统提供的Context对象调用其中的startService方法启动一个监控服务组件,该组件在客户端的AndroidManifest.xml中配置为在独立进程中运行。因此启动该组件的同时会启动一个独立的进程,与原客户端进程隔离。客户端进程出现异常崩溃也不会对监控服务组件进程造成影响。监控服务组件运行后,创建计时器及设置一个监控时间间隔并开始计时,并在监控时间间隔内等待接收客户端进程发送的消息。

步骤S403:客户端进程加载使用补丁修复缺陷;

具体的,客户端进程启动监控服务组件后立即尝试加载并使用补丁动态修复存在的缺陷问题。

步骤S404:检测是否捕获到异常,若是,进入步骤S405,若否,则进入步骤S408;

步骤S405:客户端进程将失败的消息发送到监控服务组件;

步骤S406:删除加载使用失败的补丁文件;

步骤S407:向服务器报告失败信息;

对于上述的步骤S404-步骤S407,具体的,如果加载使用补丁过程出现异常,被补丁异常处理器捕获到该异常信息,则客户端进程将加载使用补丁失败的消息封装在Intent对象中,通过startService方法发送到监控服务组件,监控服务组件接收到信息后将该补丁文件删除,确保下次客户端启动时不会再加载。另外,监控服务组件将补丁失败的信息上报到服务器,让相关人员知晓并处理问题。

此外,客户端进程向监控服务组件发送消息也可以使用如Socket、Binder等其它进程间通信机制实现。

步骤S408:检测是否在预设时间内完成补丁的加载使用,若是,进入步骤S409,若否,进入步骤S410;

步骤S409:客户端进程将成功的消息发送到监控服务组件;

具体的,如果加载使用补丁过程在预设的监控时间内成功完成,则客户端进程将成功加载使用补丁的消息封装在Intent对象中,通过startService方法发送到监控服务组件。

步骤S410:检测客户端进程是否在运行,若是,进入步骤S406,若否,进入步骤S411;

步骤S411:增加一次疑似失败记录;

步骤S412:检测累计的疑似失败记录是否超过两次,若是,进入步骤S406,若否,监控服务组件结束监控服务。

对于上述的步骤S409-步骤S412,具体的,如果客户端进程加载使用补丁过程所消耗时间过长,监控服务组件在设置的监控时间范围内仍未收到任何消息,则监控服务组件作如下判断:如果此时客户端进程已被终止,则增加一次疑似失败记录;如果客户端进程仍在运行或者当前的疑似失败记录累计超过2次,则认为该补丁文件存在问题,监控服务组件将该补丁文件删除,确保下次客户端启动时不会再加载。另外,监控服务组件将补丁失败的信息上报到服务器,让相关人员知晓并处理问题。

根据上述实施例中的客户端补丁加载使用的监控处理方法,本发明还提供一种客户端补丁加载使用的监控处理装置。图5为一个实施例中客户端补丁加载使用的监控处理系统的组成结构示意图。如图5所示,该实施例中的客户端补丁加载使用的监控处理系统包括注册单元501、启动单元502、第一监测单元503、传输单元504和上报单元505,其中:

注册单元501,用于注册用于捕获补丁加载使用过程中的异常信息的异常捕获处理器;

启动单元502,用于在独立进程中启动监控服务组件,所述独立进程是指独立于客户端进程的进程;

第一监测单元503,用于在所述客户端进程加载使用补丁的过程中,在所述客户端进程中监测所述异常捕获处理器是否捕获到异常信息;

传输单元504,用于在所述第一监测单元的监测结果为捕获到异常信息时,将补丁加载使用失败信息由所述客户端进程发送到所述监控服务组件;

上报单元505,用于通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息。

在其中一个实施例中,如图6所示,本发明的客户端补丁加载使用的监控处理系统,还可以包括第二监测单元601和进程检测单元602;

第二监测单元601用于在第一监测单元503的监测结果为未捕获到异常信息时,监测所述客户端进程是否在预设监控时间内成功加载使用补丁;

进程检测单元602用于在在第二监测单元506的监测结果为未成功加载使用补丁时,则通过所述监控服务组件检测所述客户端进程是否正在运行;

上报单元505还用于在进程检测单元602检测到所述客户端进程正在运行时,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息。

在其中一个实施例中,如图6所示,本发明的客户端补丁加载使用的监控处理系统,还可以包括次数更新单元603。

次数更新单元603用于在进程检测单元602检测到所述客户端进程已经被终止时,将疑似失败记录次数加一;

上报单元505还用于在所述疑似失败记录次数超过预设的次数门限值时,通过所述监控服务组件向所述服务器报告所述补丁加载使用失败信息。

在其中一个实施例中,所述启动单元在独立进程中启动监控服务组件,所述独立进程是指独立于客户端进程的进程。

在其中一个实施例中,如图7所示,本发明的客户端补丁加载使用的监控处理系统,还可以包括删除单元701,删除单元701用于通过所述监控服务组件删除加载使用失败的补丁文件。

在其中一个实施例中,如图8所示,本发明的客户端补丁加载使用的监控处理系统,还可以包括标记单元801,标记单元801用于通过所述监控服务组件将加载使用失败的补丁文件标记为问题补丁。

在其中一个实施例中,注册单元501可以通过Android系统的捕获异常处理机制所提供的Thread.set Default Uncaught Exception Handler方法注册所述异常捕获处理器,或者/和启动单元502通过Android系统提供的Context对象调用其中的startService的方式启动所述监控服务组件。

本发明实施例提供的客户端补丁加载使用的监控处理装置,需要指出的是:以上对于客户端补丁加载使用的监控处理装置的描述,与上述客户端补丁加载使用的监控处理方法的描述是类似的,并且具有上述客户端补丁加载使用的监控处理方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的客户端补丁加载使用的监控处理装置中未披露的技术细节,请参照上述提供的客户端补丁加载使用的监控处理方法的描述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1