首页 / 专利库 / 软件 / 软件包 / 经由对应用操作请求的分析来恢复应用功能

经由对应用操作请求的分析来恢复应用功能

阅读:217发布:2020-05-11

专利汇可以提供经由对应用操作请求的分析来恢复应用功能专利检索,专利查询,专利分析的服务。并且应用恢复系统被配置为通过确定应用正在异常操作并向该应用提供恢复指令来恢复在客户端设备上执行的应用。在客户端设备上执行的应用包括应用的主要部分和应用的恢复部分。应用的恢复部分将对恢复指令的 请求 发送到网络系统。网络系统接收恢复请求,并分析由应用的主要部分生成的操作请求,以标识失效功能及其关联 软件 包。基于所标识的失效功能及其关联 软件包 来确定恢复指令,并将其发送到客户端设备。客户端设备应用恢复指令来 修改 应用,以使应用恢复正常操作。,下面是经由对应用操作请求的分析来恢复应用功能专利的具体信息内容。

1.一种用于恢复应用的功能性的方法,所述方法包括:
由网络系统从设备接收对恢复指令的请求,所述设备(i)远离所述网络系统并且(ii)执行具有主要部分和恢复部分的应用,所述请求由所述应用的所述恢复部分生成并且指定影响所述应用的所述主要部分的操作的一组软件包;
标识反映所述应用的所述主要部分的操作的一组操作请求;
至少部分地基于所述一组操作请求和与所述一组软件包相关联的一组预期操作请求之间的差异,确定用于修改所述应用的所述主要部分的一组恢复指令;以及向所述设备提供所述一组恢复指令。
2.根据权利要求1所述的方法,还包括:
从所述应用的所述主要部分的一组功能中标识至少一个失效功能,每个失效功能与影响所述应用的所述主要部分的操作的所述一组软件包中的至少一个软件包相关联;并且其中确定所述一组恢复指令包括:确定用于修改与所述至少一个失效功能相关联的所述一组软件包中的所述至少一个软件包的指令。
3.根据权利要求2所述的方法,还包括:
标识一组候选软件包,所述一组候选软件包影响所述至少一个失效功能的所述操作;
以及
从所述一组候选软件包中选择一个或多个软件包。
4.根据权利要求3所述的方法,其中标识所述至少一个候选软件包包括:
对所述应用的所述主要部分执行静态分析,以标识受一组候选软件包影响的一组候选操作请求;以及
基于所接收到的操作请求以及与所述候选软件包相关联的所述候选操作请求,从所述一组候选软件包中选择异常软件包。
5.根据权利要求3所述的方法,其中标识所述至少一个候选软件包基于所述设备的所接收到的所述一组操作请求与所述一组候选软件包、以及第二设备的所接收到的第二组操作请求与第二组候选软件包之间的比较。
6.根据权利要求5所述的方法,其中当所述第二设备正在标称地操作时,所述比较将所述设备与所述第二设备之间的相异软件包标识为候选软件包。
7.根据权利要求5所述的方法,其中当所述第二设备正在异常操作时,所述比较将所述第一设备和所述第二设备之间的相似软件包标识为候选软件包。
8.根据权利要求1所述的方法,还包括:
基于所述一组功能,标识反映所述应用的所述主要部分的操作的一组预期操作请求;
并且
其中确定所述一组恢复指令还基于所述一组预期操作请求。
9.根据权利要求1所述的方法,其中所述一组恢复指令包括用于执行被安装在所述设备上的第二应用的指令。
10.根据权利要求1所述的方法,其中修改所述一组恢复指令包括:
标识一组先前提供的恢复指令;并且
其中所述一组恢复指令基于所述先前提供的恢复指令。
11.根据权利要求1所述的方法,其中修改所述一组恢复指令包括:
确定用相似的一组软件包执行所述应用的一组设备;以及
将所述一组恢复指令发送到所述一组设备。
12.一种存储计算机程序指令的非瞬态计算机可读存储介质,所述计算机程序指令由系统的处理器可执行以执行用于恢复应用的步骤,所述步骤包括:
由网络系统从设备接收对恢复指令的请求,所述设备(i)远离所述网络系统并且(ii)执行具有主要部分和恢复部分的应用,所述请求由所述应用的所述恢复部分生成并且指定影响所述应用的所述主要部分的操作的一组软件包;
标识从所述设备接收到的、反映所述应用的所述主要部分的操作的一组操作请求;
至少部分地基于所述一组操作请求和与所述一组软件包相关联的一组预期操作请求之间的差异,确定用于修改所述应用的所述主要部分的一组恢复指令;以及向所述设备提供所述一组恢复指令。
13.根据权利要求12所述的非瞬态计算机可读存储介质,还包括:
从所述应用的所述主要部分的一组功能中标识至少一个失效功能,每个失效功能与影响所述应用的所述主要部分的操作的所述一组软件包中的至少一个软件包相关联;并且其中确定所述一组恢复指令包括:确定用于修改与所述至少一个失效功能相关联的所述一组软件包中的所述至少一个软件包的指令。
14.根据权利要求13所述的非瞬态计算机可读存储介质,还包括:
标识一组候选软件包,所述一组候选软件包影响所述至少一个失效功能的所述操作;
以及
从所述一组候选软件包中选择一个或多个软件包。
15.根据权利要求14所述的非瞬态计算机可读存储介质,其中标识所述至少一个候选软件包包括:
对所述应用的所述主要部分执行静态分析,以标识受一组候选软件包影响的一组候选操作请求;以及
基于所接收到的操作请求以及与所述候选软件包相关联的所述候选操作请求,从所述一组候选软件包中选择异常软件包。
16.根据权利要求14所述的非瞬态计算机可读存储介质,其中标识所述至少一个候选软件包基于所述设备的所接收到的所述一组操作请求与所述一组候选软件包、以及第二设备的所接收到的第二组操作请求与第二组候选软件包之间的比较。
17.根据权利要求16所述的非瞬态计算机可读存储介质,其中如果所述第二设备正在标称地操作,则所述比较将所述第一设备与所述第二设备之间的相异软件包标识为候选软件包。
18.根据权利要求16所述的非瞬态计算机可读存储介质,其中当所述第二设备正在异常操作时,所述比较将所述设备与所述第二设备之间的相似软件包标识为候选软件包。
19.根据权利要求12所述的非瞬态计算机可读存储介质,还包括:
基于所述一组功能,标识反映所述应用的所述主要部分的操作的一组预期操作请求;
并且
其中确定所述一组恢复指令还基于所述一组预期操作请求。
20.根据权利要求12所述的非瞬态计算机可读存储介质,其中所述一组恢复指令包括用于执行被安装在所述设备上的第二应用的指令。

说明书全文

经由对应用操作请求的分析来恢复应用功能

技术领域

[0001] 本说明书一般涉及还原在设备上执行的应用的功能性,并且更具体地涉及用于检测、确定和校正在设备上执行的异常软件包以还原应用的功能性。

背景技术

[0002] 客户端设备及其安装的应用通过应用中包括的软件包的执行来向用户提供各种功能。例如,应用可以通过提供访问互联网上的信息、在用户之间发送消息等能来提供连接用户以协调旅行的功能。当客户端设备和应用被修改时,这些修改可能会影响应用的执行并使应用的功能变得异常,从而阻止了应用操作目标的有效完成。
[0003] 在一些实例中,用户不能识别出故障的应用,从而允许应用操作在次优条件下,并阻止应用实现全部功能性。在更有害的情况下,用户能够识别出故障,但是故障本身阻止用户还原应用。因此,期望提供一种自动检测和校正应用的失效功能的方法。发明内容
[0004] 应用恢复系统(为简便起见,在本文中也被称为“系统”)通过采取行动来标识异常的应用操作并使应用返回正确的操作来恢复应用。在不同的客户端设备操作相同的应用以提供相同的功能但被相异地进行配置的环境中,应用恢复具有挑战性。作为示例,两个客户端设备提供与第一客户端设备相同的功能,第一客户端设备包括具有第一组软件包的应用,并且第二客户端设备包括具有第二组软件包的应用。每个应用通过已安装的(多个)软件包,在提供应用的功能的服务中向与应用恢复系统通信的服务器生成一组操作请求。例如,为了提供用于协调骑手和提供方之间的旅行的应用,骑手的设备可以生成操作请求以指定骑手的位置、查询目的地、显示地图数据等等。为了标识和校正失效功能并确定一组恢复指令,系统标识设备的已安装软件包以及由该设备生成的操作请求。
[0005] 根据本文的示例,为了确定该组恢复指令,网络系统首先标识应用的异常操作。应用的异常操作指示存在至少一个与该应用相关联的失效功能。网络系统可以例如通过分析所生成的执行软件应用的操作请求来标识异常操作。客户端设备向网络系统发送对恢复指令的请求以帮助标识(多个)失效功能,该恢复指令包括已安装的(多个)软件包(或已安装的(多个)软件包的(多个)标识符)。
[0006] 网络系统使用所接收到的已安装软件包(或已安装软件包的标识符)来标识应用的预期操作。基于所标识的预期操作,网络系统标识可能正在影响应用的操作的(多个)失效功能及其相关联的(多个)软件包。该标识可以基于系统中所包括的任何信息,诸如恢复请求、客户端设备数据存储库、软件包数据存储库或恢复指令数据存储库。
[0007] 基于所标识的失效功能、相关联的软件包和/或环境中用于应用的操作的任何其他信息,网络系统确定用于请求客户端设备的一组恢复指令。在一个示例中,当由客户端设备执行时,恢复指令可以禁用、修改或删除软件包。当确定该组恢复指令时,网络系统还可以针对具有相似软件包的其他请求修改一组恢复指令。在确定该组恢复指令之后,网络系统将恢复指令提供给请求客户端设备。请求客户端设备将恢复指令应用于客户端设备和应用,以使该应用被恢复。
[0008] 在发明内容和以下具体实施方式中描述的特征和优点不是包括全部的。鉴于附图、说明书和权利要求书,许多附加特征和优点对于本领域的普通技术人员将是明显的。

附图说明

[0009] 图(附图)1是根据一些实施例的用于旅行协调系统的系统环境的高级框图,该系统环境可以恢复故障应用。
[0010] 图2是根据一些示例实施例的被用来确定一组恢复指令以恢复应用的多个客户端设备及其相关联的功能和操作请求的表。
[0011] 图3是图示出根据一些实施例的用于网络系统恢复应用的方法的流程图
[0012] 图4是图示出根据一些实施例的用于客户端设备恢复应用的方法的流程图。
[0013] 图5是根据一些实施例的用于从机器可读介质读取和执行指令的机器的图示。
[0014] 附图仅出于说明的目的描绘了本发明的实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的本发明原理的情况下,可以采用本文所图示的结构和方法的备选实施例。

具体实施方式

[0015] 现代的客户端设备可以在几乎任何类型的环境中完成各种各样的功能。功能是由在客户端设备上执行的应用来实现的。在本说明书的上下文中,功能表示在客户端设备上执行的应用的高级操作目标。在一些实例中,应用可能会发生故障,并且客户端设备在环境中可能无法提供(或错误地提供)应用的功能。在多个客户端设备100执行相同应用并提供相同功能但每个客户端设备安装了不同版本的应用的环境中,很难确定个体客户端设备上的故障的原因。
[0016] 图(附图)1是根据一些实施例的用于经由网络系统130在客户端设备100上恢复故障应用的系统环境的高级框图。图1包括客户端设备100、用户108、网络120和网络系统130。系统环境的备选实施例可以具有任何数目的用户设备100以及多个网络系统130。由图1的各个实体执行的特定功能可以在不同的实施例中变化。在一个示例中,系统130可以被用来协调用户之间的旅行,每个用户操作各自的用户设备100。
[0017] 每个客户端设备100是由一个或多个用户108使用以执行(多个)应用102的计算设备。客户端设备100例如可以是执行应用102的移动计算系统,其经由客户端设备100的用户接口130与网络系统130交互。在其他实施例中,客户端设备100是任何其他具有网络能力的设备。
[0018] 当用户108操作客户端设备100时,应用102可以在环境中执行任何数目的功能。在本说明书的上下文中,功能表示在客户端设备100上执行的应用102的高级操作目标。例如,执行一个功能可以是协调用户之间的旅行。另外,每个应用102可以包括任何数目的功能,并且每个功能可以具有任何数目的子功能。子功能可以是整体上形成一个功能的功能细分。使用上面的示例,协调用户之间的旅行的功能可以具有向用户提供旅行并从用户请求旅行的子功能。
[0019] 当应用正在正确执行时,该应用的功能提供了该应用的操作目标。相反,在出故障的应用中,功能不正确地执行,并且未提供应用的操作目标。在本公开的上下文中,正确地执行的功能将被称为标称功能,而不正确地执行的功能将被称为失效功能。类似地,成功地提供应用的操作目标的应用被描述为正常操作,而未提供应用的操作目标的应用被描述为异常操作。
[0020] 客户端设备100包括在相应的客户端设备100的处理器上执行的软件应用,诸如应用102和辅助应用114。在客户端设备100上执行的应用102在环境中执行一个(或多个)功能。辅助应用114可以执行与应用102的恢复相关联的功能(例如,加载一组恢复指令,或者执行一组恢复指令)。在一些实施例中,辅助应用114的功能性被包括在应用102中。另外,应用和恢复应用可以彼此通信并且可以经由网络120来与网络系统130通信。应用102(和114)的示例可以是运输协调应用、web浏览器、社交网络应用、消息收发应用、游戏应用、媒体消费应用等。每个应用102可以被链接到与客户端设备100相关联的网络系统130上的用户账户、客户端设备用户108或一群客户端设备用户。
[0021] 应用102包括用于执行应用的功能的许多软件包104。软件包104启用应用102的功能,从而影响应用在其在环境中执行时的各种操作活动。如本文所指,软件包104是在客户端设备100的处理器上操作的一组计算机指令。在一些实施例中,软件包104可以在硬件(例如,包括计算逻辑的硬件)、固件、和/或允许执行软件包104的任何其他组件中被实现。软件包104表示所公开方法的一个实施例,并且其他实施例可以包括其他软件包104。
[0022] 例如,在第一客户端设备100a上执行的应用102的功能是协调旅行(例如,旅行协调应用)。在第一客户端设备100b上执行的应用102包括用于执行旅行协调应用的功能的软件包104a和104b。提供更多的上下文,软件包104a与协调用户之间的旅行相关联,而软件包104b与和网络进行接口连接相关联,二者均与应用的功能相关联。在一些情况下,软件包可以指定用于应用的操作的参数(例如,软件设置),而不会影响应用的操作活动。
[0023] 在其他实施例中,各种客户端设备100可以运行任何数目的相似或相异的软件包102以实现相同的功能。在这些实现中的任何一种中,软件包102可以被存储在客户端设备的计算机可读持久性存储设备上,被加载到存储器中,并且由客户端设备的计算机的一个或多个处理器执行。例如,在第二客户端设备100b上执行的应用102是运输协调应用。在第二客户端设备100b上执行的应用102包括与协调旅行相关联的类似软件包104a。然而,在第二客户端设备100b上执行的应用102包括与网络进行接口连接相关联的相异的软件包
104c。在该示例中,因为设备100是不同的型号,所以在每个设备上与网络进行接口连接相关联的软件包是相异的。
[0024] 在备选实施例中,应用102可以缺少本文描述的软件包104和/或以不同的方式便于软件包104之间的功能性。在所描述的实施例中,软件包104被实现为形成应用102的一部分的独立软件包。然而,软件包也可以影响应用102的操作,而不需要是应用本身的一部分。例如,影响应用102的软件包104可以是也影响其他应用的更大、更复杂的软件包的一部分。
同样,软件包104可以是一个或多个静态或动态链接的库。
[0025] 在应用102的操作期间,一组操作请求(例如,接收位置信息、请求运输提供方等)通常被生成并将其与应用的功能相关联。这些操作请求可以受到被安装在特定应用中的软件包的影响或修改。根据示例,用户经由用户设备100的接口来操作应用102。用户设备100(或其上的对应应用)收集描述软件包104的执行以及可能生成或可能不生成的操作请求的数据。在正常操作期间,由软件应用生成的操作请求的正确执行整体上执行了环境中的应用的标称功能。
[0026] 广义地,操作请求可以被描述为应用102的便于环境中的功能的执行的任何操作。这些请求通常反映应用的运行以及从应用对其他服务或设备的请求,诸如对客户端设备的其他组件的请求或对网络上的其他系统的请求。作为附加示例,操作请求可以包括:经由客户端设备接口接收去往客户端设备的输入;经由客户端设备接口在客户端设备上产生输出;任何其他客户端设备接口交互;对服务器的请求;来自服务器的输入,对其他软件包的请求,来自其他软件包的输入,对其他应用的请求,来自其他应用的输入,对数据库的请求,来自数据库的输入,来自客户端设备(例如天线、用户接口、扬声器等)的组件的输入,或者可以由环境中的应用生成的任何其他操作请求。
[0027] 提供另一个示例,在第一客户端设备100a上执行的应用102提供协调运输的功能。在第一客户端设备100a上执行的应用102包括软件包104,软件包104在被执行时产生一组操作请求,其一起允许用户108与网络系统130交互以协调运输。在一个示例中,应用102包括软件包104a,该软件包104a在被执行时生成操作请求以确定客户端设备的位置。另外,应用102包括软件包104b,该软件包104b在被执行时生成操作请求以请求来自网络系统130的旅行。
[0028] 在一些实施例中,尽管通常被称为执行操作请求,但是当用户108与接口交互时,针对给定功能或软件包的操作请求可以被发送到网络系统130,作为来自用户设备100的一系列通信。类似地,可以在设备内操作请求执行期间以分段的方式发送操作请求。同样,网络系统130可以将恢复指令作为一系列通信发送到客户端设备100。
[0029] 如前所述,应用102的(多个)软件包104的执行生成操作请求,这些操作请求整体上提供了环境中的应用的标称功能。通常,在正常操作期间,每个软件包104在被执行时生成一组特定的操作请求。这些操作请求被称为预期操作请求。可以使用系统内的各种方法来确定预期操作请求。例如,应用102的程序员可以在应用或软件包的分发之前确定预期操作请求,预期操作请求可以被存储在软件包数据存储库中,客户端设备的用户可以设置针对客户端设备的预期操作请求,网络系统可以对软件包执行静态分析,网络系统可以从环境中的另一个实体接收一组预期操作请求,网络系统可以基于环境内的标称运行客户端设备来构建一组预期操作请求,等等。在一些实施例中,预期操作请求还可以包括指示预期操作请求何时发生的定时或排序结构。
[0030] 然而,如果应用操作异常,则该应用可以包括至少一个失效功能。在一些情况下,失效功能是由出故障的软件包引起的。这些软件包被称为异常软件包。异常软件包可能会生成与预期操作请求不同的操作请求。在一个示例实施例中,可以存在三种类型的不同操作请求:除了预期操作请求之外还被生成的附加操作请求(例如,超额操作请求),替换预期操作请求而被生成的操作请求(例如,替换操作请求),以及预期操作请求中缺少操作请求(例如,缺失操作请求)。为了方便起见,这些操作请求整体上被称为异常操作请求。因此,当应用操作异常时,它可能会生成无法提供应用的功能的异常操作请求。在一个示例中,异常操作请求被包括在崩溃报告中。在类似的实施例中,网络系统可以从异常操作请求中生成崩溃报告。
[0031] 在一些实例中,应用可以正常地成功提供功能,同时仍产生异常操作请求。即,所生成的异常操作请求可能不抑制应用的操作目标。在这些情况下,异常操作请求可以被视为环境中的应用的低效执行功能。尽管功能仍然可以被提供(并且从用户的度来看可能不存在明显的错误),但是诸如本文所述的那些方法之类的类似方法可以被用来标识和校正低效应用。
[0032] 应用还可以包括恢复软件包110。恢复软件包110请求并应用针对应用102的恢复指令。在一个实例中,对恢复指令的请求和应用在(例如,在应用加载期间)应用在客户端设备上被执行的每个实例中都发生。恢复软件包110还可以监测应用102的操作请求。这些操作请求可以作为对恢复指令的请求的一部分而由恢复软件包110提供给网络系统130。在备选实施例中,恢复软件包可以在任何其他时间(例如,基于来自用户的输入、基于来自网络系统的所接收到的通知、基于时间阈值、基于被存储在设备数据存储库中的信息等等)请求和应用恢复指令。
[0033] 在一个示例中,恢复软件包110经由网络120向网络系统130请求一组恢复指令。当由应用102、辅助应用114或客户端设备100应用时,该组恢复指令可以修改应用的功能。例如,恢复指令修改应用(或客户端设备),以使异常功能返回到正常功能。
[0034] 根据示例,对恢复指令的请求由恢复软件包110发送到网络系统130,以确定应用102的异常功能。该请求可以在客户端设备在环境中操作时的任何时间点发生。在一个示例中,请求可以包括应用清单、设备清单以及与执行的应用相关联的任何所生成的操作请求。
应用清单可以包括应用的已安装软件包、应用的版本号、可以被生成的操作请求的列表、应用设置等。设备清单可以包括已安装应用的列表、显示设置以及网络设置等。此外,请求可以包括设备数据存储库中所包括的信息、客户端设备的位置、或由恢复软件包执行的先前的恢复指令。
[0035] 恢复软件包110可以从网络系统130接收一组恢复指令,以修改应用的软件包104。在执行恢复指令之后,在一些实施例中,恢复软件包110确定来自应用102的操作请求现在是否与预期操作请求一致,并且可以基于该确定从网络系统130请求一组新的恢复指令。在这些实例中,对恢复指令的后续请求可以包括与先前执行的恢复指令相关联的信息和操作请求。
[0036] 恢复指令可以包括任何数目的指令以恢复应用102。一些示例指令包括:禁用、移除或添加任何数目的软件包;修改已安装的软件包;禁用、移除、修改或添加应用所提供的功能;移除、添加或修改设备数据存储库中的信息(例如密码、清除高速缓存等);访问辅助应用以帮助还原该应用(例如,打开web浏览器以检索供用户执行的指令);修改由软件包在被执行时生成的操作请求或可以恢复应用102的任何其他指令。
[0037] 恢复软件包110可以被视为提供应用的预期功能的应用的“主要部分”的“同伴”或次要部分。在该示例中,应用的主要部分涉及并包括与执行应用的一个或多个功能相关联的软件包。即,恢复软件包110在应用102内执行,但是由软件包104提供的功能不影响恢复软件包112的执行。
[0038] 为了说明恢复软件包110的功能,我们继续一个包括异常软件包的应用的简要示例。恢复包向网络系统130发送对恢复指令的请求。恢复包从网络系统130接收一组恢复指令。恢复指令包括对与引起应用102的异常操作的失效功能相关联的异常软件包的计算逻辑的修改和执行辅助应用114的指令。恢复软件包110执行恢复应用的恢复指令。关于图2更详细地讨论了确定异常功能并恢复环境内的应用的附加示例。
[0039] 作为补充或备选,恢复软件包110基于对操作请求的一致监测和分析,确定应用正在异常操作。根据一个示例,异常操作请求的生成指示该应用正在异常操作。在这种情况下,确定应用正在异常操作可以包括经由网络120将生成的操作请求发送到网络系统130以供网络系统130进行分析。在一些实施例中,恢复包110确定应用正在异常操作而没有访问网络系统130。除了生成的操作请求之外,当那些请求的执行不平常时,可以确定应用102操作异常。在其他实施例中,当在一定时间后操作请求未被执行、被执行的操作请求的响应时间异常(例如高于或低于阈值)、生成的操作请求被重复执行(例如执行循环)、生成的操作请求未被执行、执行的操作请求导致异常响应(例如查询设备的GPS返回设备时间)或者指示应用正在异常操作的操作请求的任何其他分析时,恢复软件包110可以确定应用正在异常操作。在其他实施例中,失效确定组件或模142可以做出异常操作的类似确定。
[0040] 继续图1的客户端设备,设备数据存储库112包含与设备用户、客户端设备100、用户账户等相关联的信息。当在环境中提供应用的功能时,该信息可以由应用102访问。此外,在执行恢复指令时可以访问、修改或删除信息。在一个实施例中,该信息可以被用来定制软件包和针对特定设备、用户账户、设备群组和用户账户群组的操作请求(例如,基于屏幕大小显示输出、基于语言设置输入数据等等)。设备数据存储库中所存储的信息可以包括:设备间安全性度量、设备内安全性度量、网络安全性度量、认证协议、用户账户信息和偏好、客户端设备信息和偏好、设备用户信息和偏好、记录偏好和更改、以及基于位置的信息、在客户端设备上执行的应用、在客户端设备上执行的软件包、与软件包相关联的修改、预期和异常操作请求、以及与恢复环境中的应用相关联的任何其他信息。
[0041] 作为一个示例,设备数据存储库112可以存储针对设备用户108的支付信息。应用102的功能需要访问支付信息,并且应用可以响应于操作请求而访问设备数据存储库中的信息。作为另一个示例,设备数据存储库可以存储针对客户端设备的设备内安全度量。应用
102的功能需要访问客户端设备的硬件配置,并且应用可以基于存储的设备内安全性度量(例如,防止或允许访问)响应于操作请求来访问配置。
[0042] 客户端设备100可以使用网络120来与环境内的其他客户端设备和网络系统进行通信。网络120表示客户端设备100和网络系统130之间的通信路径。在一个实施例中,网络120是互联网,但也可以是任何网络,包括但不限于LAN、MAN、WAN、移动、有线或无线网络、计算网络、私用网络或虚拟私用网络、以及任何它们的组合。另外,可以使用常规加密技术(诸如安全套接字层(SSL)、安全HTTP和/或虚拟私用网络(VPN))对所有或一些链路进行加密。在另一个实施例中,实体可以使用定制的和/或专用的数据通信技术来代替上述技术或者作为上述技术的补充。
[0043] 网络系统130协助提供在客户端设备100上执行的应用102的功能,并且便于经由网络120恢复应用102。网络系统130包括恢复事件模块140、失效确定模块142、恢复指令模块144、客户端设备数据存储库150、软件包数据存储库152和恢复指令数据存储库154。网络系统130可以从客户端设备上的应用接收操作请求。作为响应,网络系统130可以提供所请求的操作。例如,旅行协调应用120向网络系统130发送包括对最近旅行提供方的位置的请求的操作请求。网络系统130确定最近的提供方的位置,并在客户端设备100上返回请求应用的信息。另外,网络系统130可以接收对恢复指令的请求,基于该请求确定一组恢复指令,并将恢复指令发送给请求者。
[0044] 网络系统130包括多个“模块”,其是指用于提供指定功能性的硬件组件和/或计算逻辑。即,可以在硬件、固件和/或软件(例如,包括计算逻辑的硬件服务器)中实现模块,其他实施例可以包括附加模块,可以在模块之间分发功能性,可以将功能性归因于更多或更少的模块,可以被实现为独立程序或者被实现为程序网络的一部分,并且可以被加载到处理器可执行的存储器中。
[0045] 网络系统130可以包括恢复事件模块140。恢复事件模块140与恢复软件包110交互,以为应用提供恢复指令。广义上,恢复事件模块140从客户端设备100接收对恢复指令的请求,将请求发送到失效确定模块142,从恢复指令模块144接收一组恢复指令,并且将恢复指令发送到客户端设备。在一些实施例中,恢复事件模块140被配置为使用各种网络120路径将恢复指令传送到客户端设备100。例如,如果异常操作的应用不再能够经由第一通信协议(例如,应用内通信)接收恢复指令,则恢复事件模块140可以经由第二通信协议(例如,SMS消息)将恢复指令提供给客户端设备100。在一些实施例中,恢复事件模块140向与请求应用相似的应用102发送恢复指令,该相似应用包括与所确定的恢复指令相关联的客户端设备信息或软件包。
[0046] 网络系统130可以包括失效确定模块142,该失效确定模块142从恢复事件模块140接收恢复请求。如前所述,恢复请求可以包括应用清单、设备清单、操作请求或可以帮助确定应用的失效功能的任何其他信息。失效确定模块基于所接收到的恢复请求来确定用于请求客户端设备的一组预期操作请求。然后,失效确定模块基于接收到的恢复请求、一组预期操作请求以及从提供功能的客户端设备接收到的实际操作请求来标识失效功能及其相关联的软件包。失效确定模块还从引起失效功能的关联软件包中标识异常软件包。本文描述了用于确定失效功能的各种方法以及关联软件包。
[0047] 在一个实施例中,失效确定模块142可以通过分析预期操作请求与异常操作请求之间的差异来确定失效功能和异常软件包。即,失效确定模块确定(或访问)应用的预期操作请求,并将其与应用的接收到的操作请求进行比较。基于预期操作请求和接收到的操作请求(即,异常操作请求)之间的差异,失效确定模块确定应用包括失效功能。在该示例中,与接收到的操作请求相关联的所有软件包可以是异常软件包。
[0048] 在另一个实施例中,失效确定142模块可以通过分析接收到的操作请求来确定失效功能。在这种情况下,类似于先前的示例,失效确定模块确定异常操作请求。然而,在该示例中,失效确定模块从应用清单中确定与异常操作请求相关联的软件包的列表。在一些示例中,可以从软件包数据存储库或客户端设备数据存储库访问软件包。失效确定模块分析与异常操作请求相关联的软件包的列表,并确定列表中的哪些软件包最有可能引起失效功能。确定引起异常功能的软件包可以包括基于以下任何一项对每个软件包评分:异常操作请求的数目、异常操作请求的严重性、软件包的最近安装时间等。
[0049] 在另一个实施例中,失效确定模块基于对包括在接收到的请求的应用清单中的软件包的静态分析,来确定失效功能及其相关联的(多个)软件包。在一种变型中,软件包被存储在软件包数据存储库152中。静态分析对软件包进行分析并确定每个软件包在被应用执行时可以生成的操作请求。在一些情况下,静态分析进一步分析软件包,并确定执行中的软件包可以如何生成预期操作请求和异常操作请求(例如,用户输入错误、变量更改、意外的软件包交互、软件错误等)的任何组合。基于静态分析,失效确定模块可以标识失效功能及其关联软件包。
[0050] 在另一个实施例中,失效确定模块142可以访问客户端设备数据存储库,并将来自请求客户端设备的接收到的操作请求和软件包与环境内的替代客户端设备的软件包和预期操作请求进行比较。例如,失效确定模块先前已经确定替代设备在环境中正在标称地操作。失效确定模块可以将替代设备的预期操作请求与请求设备的接收到的操作请求进行比较。基于预期操作请求/接收到的操作请求之间的差异的比较,失效确定模块确定接收到的操作请求是异常的。此外,基于替代/请求设备的相关联的应用和设备清单,失效确定模块可以确定引起异常操作请求的失效功能和关联软件包。如果替代客户端设备正在异常操作,则可以进行类似的分析,失效确定模块可以确定客户端设备之间可能引起异常操作的类似软件包。
[0051] 通过这些各种方式,基于在请求应用上执行的任何软件包、预期操作请求和异常操作请求的关联集合(如果有的话)、或与恢复请求相关联的任何其他信息,失效确定模块142可以确定应用的失效功能。类似地,由于每个软件包与失效功能相关联,因此失效确定模块可以确定能够引起失效功能的软件包104。这些软件包被标识为用于恢复指令的候选软件包,以通过影响一个或多个候选软件包的操作来恢复应用。
[0052] 网络系统还可以包括恢复指令模块144。恢复指令模块144从失效确定模块142接收失效功能。因此,恢复指令模块144确定与所确定的失效功能相关联的一组恢复指令以恢复请求该组恢复指令的应用102的功能性。用于(多个)候选软件包的该组恢复指令的确定可以基于从请求应用102接收的操作请求、应用清单、设备清单、候选软件包、存储在客户端设备数据库中的所接收的信息、存储在恢复指令数据库154中的恢复指令和信息、或环境中可以帮助恢复应用的任何其他信息。
[0053] 通常,可以基于应用的先前操作请求并基于先前的恢复指令来为应用选择恢复指令。当应用正常操作时,恢复指令可能不会对应用提供任何修改或更改。当没有正常操作时,恢复指令可以选择影响应用的操作或在不同程度上影响用户的指令。例如,提供禁用软件包的恢复指令可能会比删除高速缓存的数据或要求用户重新登录或使辅助应用向用户提供指令对用户体验产生更小的影响。因此,恢复指令可以根据先前的恢复指令加剧恢复指令的影响级别。为了试图自动解决由软件包引起的问题,恢复指令模块144可以确定哪些软件模块会影响恢复指令。
[0054] 在一个实施例中,恢复指令模块144可以访问所确定的候选软件包恢复事件模块以确定一组恢复指令。在这种情况下,恢复指令可以是存储在恢复指令数据存储库中的恢复指令列表之一。列表中的每组恢复指令可以预先与失效功能和候选软件包相关联。
[0055] 在另一个实施例中,基于在针对恢复指令的请求中接收的信息,恢复指令模块为若干候选者选择单个候选软件包作为要校正的异常软件包。在该实施例中,恢复指令模块可以被配置为每组恢复指令仅校正一个候选软件包,而不是同时校正多个软件包。
[0056] 在另一个示例中,发送到请求应用102的一组恢复指令可以是与候选软件包104相关联的存储在恢复指令数据存储库154中的一组恢复指令。恢复指令模块144可以基于所确定的失效功能和恢复请求修改所存储的该组恢复指令。恢复指令模块144可以将修改后的该组恢复指令发送到请求该组恢复指令的应用102。在另一个实施例中,该组恢复指令可以是一组恢复指令,其先前被提供给执行类似软件包和修改的应用并被存储在恢复指令数据存储库154中。
[0057] 在另一个实施例中,提供给客户端设备100的一组恢复指令维护客户端设备,并且客户端设备继续异常操作。客户端设备再次向网络系统130发送恢复请求。这里,网络系统130可以确定与提供给客户端设备的先前一组恢复指令相似的一组恢复指令。在这种情况下,恢复指令模块144可以确定从客户端设备接收到的操作请求未被更改,并且生成用于恢复应用的新的一组恢复指令。
[0058] 网络系统可以包括客户端设备数据存储库、软件包数据存储库和恢复指令数据存储库。客户端设备数据存储库可以存储与客户端设备相关联的信息,诸如:执行的软件包、执行的修改、用户信息、客户端设备信息、与任何存储的信息相关联的操作请求、以及与任何存储的信息相关联的功能。软件包数据存储库可以包括与应用102相关联的所有软件包104和修改106。恢复指令数据存储库154可以包括与应用102的恢复功能性相关联的所有恢复指令。
[0059] 应用恢复
[0060] 图2是图示出了网络系统130和客户端设备可以采取来恢复应用的过程的示例的表。
[0061] 首先,所有图示出的客户端设备102都在执行应用102。应用可以在环境中提供功能220“A”、“B”和“C”。作为第一示例,当文斯(Vince)在其客户端设备100a上使用应用102的界面时,执行的应用提供功能210“A”。文斯的客户端设备100a包括与功能“A”相关联的软件包220“1”和“2”。恢复软件包110从网络系统130请求230一组恢复指令。在一个示例中,该请求包括设备配置文件(即,硬件配置等)和应用配置文件(即,已安装的软件包等)。在一些实施例中,该请求可以包括如由恢复软件包确定的预期操作请求和异常操作请求。网络系统确定与功能210“A”以及软件包“1”和“2”相关联的一组预期操作请求240“θ”。当软件包“1”和“2”由应用执行时,文斯的客户端设备生成实际的操作请求250“α”。因此,网络系统130确定实际操作请求“α”是异常操作请求。网络系统130使用失效确定模块142和恢复指令模块144来基于恢复请求和所确定的异常功能以及相关联的软件包来确定用于恢复应用的一组恢复指令260“Φ”。
[0062] 继续,当爱丽丝(Alice)使用应用的界面时,执行的应用提供功能210“A”。在爱丽丝的客户端设备100b上执行的应用102包括与功能“A”相关联的软件包220“1”。恢复软件包110从网络系统130请求230一组恢复指令。在该实例中,网络系统130确定不存在与功能“A”和软件包“1”相关联的预期240操作请求。当软件包“1”由应用执行时,爱丽丝的客户端设备
100b生成实际的操作请求250“γ”。因此,实际操作请求“γ”是异常操作请求,并且网络系统130确定应用的异常功能。网络系统130使用失效确定模块142和恢复指令模块144来基于接收到的恢复请求以及所确定的异常功能和相关联的软件包来确定用于恢复应用的一组恢复指令260“Δ”。
[0063] 在另一个示例中,当尼克(Nick)使用执行的应用的界面时,执行的应用提供功能210“A”和“B”。在尼克的客户端设备100c上执行的应用包括与功能“A”和“B”相关联的软件包220“1”和“3”。恢复软件包110从网络系统130请求230一组恢复指令。网络系统130确定与功能“A”和“B”和软件包“1”和“3”相关联的一组预期操作请求240“θ”。当软件包“1”和“3”由应用执行时,尼克的客户端设备100c不生成实际操作请求240。在这种情况下,生成的操作请求的不存在指示异常操作请求,并且网络系统确定应用的异常功能。网络系统使用失效确定模块142和恢复指令模块144来基于接收到的恢复请求以及所确定的异常功能和相关联的软件包来确定用于恢复应用的一组恢复指令“Φ”。
[0064] 最后,当玛丽(Mary)使用应用的界面时,执行的应用提供功能210“C”。玛丽的客户端设备100d包括与功能“C”相关联的软件包“2”。恢复软件包110从网络系统130请求230一组恢复指令。当软件包“2”由应用执行时,网络系统确定一组预期240操作请求“α”。当软件包“2”由应用执行时,玛丽的客户端设备生成一组实际操作请求240“α”。在这个示例中,不存在异常操作请求。网络系统130确定功能“C”是标称的,并且未确定260针对玛丽的客户端设备的一组恢复指令。
[0065] 在图2中描述的情形可以作为示例而被提供。注意,任何数目的设备、功能、软件包、操作请求和恢复指令可以被用来恢复应用。
[0066] 图3是图示出根据一些实施例的数据流的数据流程图,该数据流演示了应用的恢复。图3的替代实施例可以包括更多、更少或不同的步骤,并且可以按照与本文所描述的以及图3中所图示的顺序不同的顺序来执行这些步骤。在一个实施例中,图3的数据流可以在网络系统130上发生,但是也可以在环境内的任何元件或元件组合上发生。
[0067] 首先,客户端设备正在执行应用并且标称地运行。当应用正在提供标称功能时,网络系统经由网络从客户端设备接收310操作请求。网络系统基于请求向客户端设备提供320对操作请求的响应。在该实施例中,网络系统312服务于来自客户端设备的操作请求,并且因此可以分析其接收的操作请求。还可以从服务于来自应用的操作请求的其他系统接收附加操作请求以供分析,并且客户端设备内的操作请求可以由恢复请求提供。
[0068] 例如,当应用加载恢复包时或当恢复包标识出应用的异常运行时,网络系统130经由网络120从执行应用的客户端设备100的恢复包接收330恢复请求。请求可以包括关于应用和客户端设备的信息,该信息包括操作请求、设备清单、应用清单以及来自客户端设备数据存储库的信息。失效确定模块标识340客户端设备的预期操作。标识340客户端设备的期望操作可以包括以先前描述的任何方法确定期望操作请求和异常操作请求的集合。
[0069] 继续,失效确定模块基于期望操作请求和异常操作请求的标识来标识350失效功能。失效确定模块基于所标识的失效功能、所接收的恢复请求、异常操作请求和预期操作请求来标识360影响失效功能的已安装软件包。
[0070] 恢复指令模块基于所标识的失效功能、操作请求和接收到的请求来确定370一组恢复指令。最后,恢复事件模块向请求客户端设备提供380所确定的恢复指令。
[0071] 图4是图示出根据一些实施例的用于恢复应用的功能性的数据流的数据流程图。图4的替代实施例可以包括更多、更少或不同的步骤,并且可以按照与本文所描述的以及图
4中所图示的顺序不同的顺序执行这些步骤。通常,图4的数据流可以在客户端设备100上发生,但是也可以在环境内的任何元件或元件组合上发生。
[0072] 首先,客户端设备加载410应用。应用将恢复软件包420和应用412的主要部分及其相关联的软件包进行加载。应用的主要部分和相关联的软件包向服务器提供414操作请求,并返回来接收416操作。
[0073] 恢复软件包向网络系统传送430包括设备配置文件和应用配置文件的恢复请求。作为响应,恢复软件包从网络系统接收440一组恢复指令(如果需要的话)。恢复软件包将恢复指令应用450到应用上,以恢复应用的功能。
[0074] 在一些实施例中,恢复软件包监测460应用的主要部分的所生成的操作请求——当其生成与那些功能相关联的操作请求时。如前所述,恢复软件包可以标识470应用的异常功能,并基于应用的所标识的异常功能而向网络系统传送480恢复请求。
[0075] 图5是图示出了用于从机器可读介质读取和执行指令的示例机器的组件的框图。具体而言,图5以计算机系统500的示例形式示出了系统130和客户端设备100的示意表示。
计算机系统500可以被用来执行指令524(例如,程序代码或软件),以用于使机器执行本文所述的任何一个或多个方法(或过程)。在备选实施例中,机器作为独立设备或连接到其他机器的连接的(例如,联网的)设备进行操作。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。
[0076] 机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、智能手机、物联网(IoT)设备、网络路由器、开关或桥接器、或任何能够(顺序地或以其他方式)执行指令524的机器,这些指令指定了该机器要采取的动作。此外,虽然仅图示出了单个机器,但是术语“机器”也应被认为包括单独地或共同地执行指令524以执行本文所讨论的任何一个或多个方法的机器的任何集合。
[0077] 示例计算机系统500包括一个或多个处理单元(通常为处理器502)。处理器502例如是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、控制器、状态机、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)或这些的任何组合。计算机系统500还包括主存储器504。计算机系统可以包括存储单元516。处理器502、存储器504和存储单元516经由总线508进行通信。
[0078] 另外,计算机系统506可以包括静态存储器506、图形显示器510(例如用以驱动等离子体显示面板(PDP)、液晶显示器(LCD)或投影仪)。计算机系统500还可以包括字母数字输入设备512(例如键盘)、光标控制设备514(例如鼠标轨迹球、操纵杆、运动传感器或其他指向仪器)、信号生成设备518(例如扬声器)和网络接口设备520,它们也被配置为经由总线508进行通信。
[0079] 存储单元516包括机器可读介质522,其上存储了体现本文所述方法或功能中的任何一个或多个的指令524(例如,软件)。例如,指令524可以包括图2中描述的系统130的模块的功能性。在也构成机器可读介质的处理器502、主存储器504和计算机系统500执行指令期间,指令524还可以全部或至少部分地驻留在主存储器504内或处理器502内(例如,在处理器的高速缓存存储器内)。可以经由网络接口设备520在网络526上传送或接收指令524。
[0080] 尽管在示例实施例中将机器可读介质522示出为单个介质,但是术语“机器可读介质”应被认为包括能够存储指令524的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储指令524以供机器执行并使机器执行本文所公开的任何一个或多个方法的任何介质。术语“机器可读介质”包括但不限于固态存储器、光学介质和磁性介质形式的数据存储库。
[0081] 备选考虑事项
[0082] 出于说明的目的已经给出了对实施例的前述描述;其并不旨在穷举或将专利权限制为所公开的精确形式。相关领域的技术人员可以理解:鉴于以上公开,许多修改和变化是可能的。例如,虽然本公开讨论了预测潜在安全事件的提供方参与,但是本文中的方法和系统可以更普遍地被用于想要使用机器学习模型来预测潜在事件的参与的任何目的。
[0083] 本说明书的一些部分根据对信息的操作的符号表示和算法来描述实施例。这些算法的描述和表示通常由数据处理领域的技术人员用来将其工作的实质有效地传达给本领域的其他技术人员。这些操作尽管在功能上、在计算上或在逻辑上进行了描述,但应理解为由计算机程序或等效电子电路、微代码等实现。此外,在不失一般性的情况下,有时将这些操作布置称为模块也是方便的。所描述的操作及其相关联的模块可以用软件、固件、硬件或其任何组合来体现。
[0084] 本文描述的任何步骤、操作或过程可以单独地或与其他设备组合地利用一个或多个硬件或软件模块而被执行或实现。在一个实施例中,用计算机程序产品来实现软件模块,该计算机程序产品包括包含计算机程序代码的计算机可读介质,该计算机程序代码可以由计算机处理器执行以用于执行所描述的任何或所有步骤、操作或过程。
[0085] 实施例还可以涉及用于执行本文中的操作的装置。该装置可以被特殊构造用于所需目的,和/或它可以包括由被存储在计算机中的计算机程序选择性地激活或重新配置的通用计算设备。这样的计算机程序可以被存储在非瞬态的有形计算机可读存储介质中,或者可以被存储在可以被耦合到计算机系统总线的适合于存储电子指令的任何类型的介质中。此外,说明书中提及的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。
[0086] 实施例还可以涉及通过本文所描述的计算过程生产的产品。这样的产品可以包括由计算过程产生的信息,其中该信息被存储在非瞬态的有形计算机可读存储介质上,并且可以包括计算机程序产品或本文所述的其他数据组合的任何实施例。
[0087] 最后,主要出于可读性和指导性目的选择了在本说明书中使用的语言,并且可能没有选择它来描绘或限制本发明的主题。因此,旨在使专利权的范围不受该详细描述的限制,而是受基于此的申请所发布的任何权利要求的限制。因此,实施例的公开旨在说明而非限制所附权利要求中阐述的专利权的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈