利用成功的问题解决的应用兼容性的制作方法

文档序号:6365851阅读:115来源:国知局
专利名称:利用成功的问题解决的应用兼容性的制作方法
利用成功的问题解决的应用兼容性
背景技术
用户可用的应用数目日益增长。例如,应用传统地在可由用户在实体店购买的计算机可读存储介质上提供。因此,用户通常去该店,以从可以安装在该用户计算设备上的数百个应用中进行选择。但是,随着在线应用市场的出现,用户可以访问数万个可以在用户计算设备上执行的应用。然而,由于有庞大数量的选择,原来应用来确保数百个应用兼容性的技术在面临好数万个应用的时候可能变得失控。

发明内容
描述了应用兼容性技术。在一个或多个实现中,服务提供商的一个或多个计算设备经由网络从多个客户端设备接收数据,该数据描述了一个或多个在解决一个或多个应用在相应计算设备上执行中的一个或多个不兼容性方面的至少部分成功的尝试。根据一个或多个准则来挖掘数据以识别至少一个应用,并验证该数据以确认所识别应用在解决至少一个不兼容性方面的至少部分成功。存储描述经验证的、对不兼容性的成功解决的数据,并至少基于所存储的数据传播更新以解决不兼容性。在一个或多个实现中,通过客户端设备输出用户接口,该用户接口被配置为用作至少部分地解决应用在客户端设备上执行中的不兼容性的尝试的引导。响应于客户端设备对该尝试至少部分成功地解决了不兼容性的确定,经由网络传递描述通过客户端设备进行的尝试的数据以供服务提供商来接收
在一个或多个实现中,一个或多个计算设备具有一个或多个模块,该一个或多个模块至少部分地以硬件实现,并配置为执行以下操作,包括经由网络从多个客户端设备接收数据,该数据描述了一个或多个在解决一个或多个应用在相应计算设备上执行的一个或多个不兼容性方面至少部分成功的尝试。该模块还配置为根据所接收的数据识别至少一个应 用,从经由网络可访问的应用市场购买所识别的应用,该购买自动执行而没有用户介入;针对所购买的应用验证在解决至少一个不兼容性方面的至少部分成功;以及存储描述经验证的、对不兼容性成功解决的数据。提供此发明内容来以简要形式介绍一些概念选集,其将在以下具体实施例中进一步介绍。此发明内容不旨在标识要求保护主题的关键特征或必要特征,也不旨在用来帮助确定要求保护主题的范围。


参考附图来描述具体实施例。在图中,附图标记的最左边的一个或多个数字标识该附图标记首次出现在哪个图中。说明书和附图中的不同实例中使用的相同附图标记指示相似或相同的项。图I是在可操作来执行应用兼容性技术的示例实现中的环境的说明。图2是示例实现中的系统的说明,在该系统中,利用图I的服务提供商的兼容性验证模块来计算针对兼容性问题的修复的置信度得分。图3是描述在示例实现中的过程的流程图,其中,通过兼容性模块来输出用户接口以解决不兼容性。图4是描述在示例实现中的过程的流程图,其中,根据从图3的一个或多个客户端设备接收并传播到其他客户端设备的数据来验证修复。
具体实施例概沭
计算设备可以执行来自很多不同源的很多应用。例如,用户可以经由网络导航至应用市场以访问数百甚至数千个应用。但是,因为庞大数量的应用可用,使用常规的技术难于维护与应用的兼容性,尤其在有更新版本的软件供执行的时候。 描述了应用兼容性技术。在一个或多个实现中,兼容性模块配置为输出用户接口以协助引导客户朝向修复兼容性问题。如果该修复是成功的,则可以经由网络将描述该修复的数据发送到服务提供商以用于传播给其他用户。以这种方式,可以利用用户的初始子集来为更大的群组修正兼容性问题。在一个或多个实现中,服务提供商可以识别将传播哪些修复,并验证这些修复起作用。这个可以通过以下步骤来执行自动从应用市场购买应用,并应用在信息中描述的修复以确定其是否成功。可以涉及以下章节找到应用兼容性技术的进一步讨论。在以下讨论中,首先描述的是可以根据在此所述的技术来利用的示例环境。随后描述也可以在示例环境和其他环境中采用的示例过程。相应地,对示例过程的执行不限于示例环境,并且该示例环境不限于执行该示例过程。示例环境
图I是可操作来采用在此描述的技术的示例实现中的环境100的说明。示出的环境100包括客户端设备102、服务提供商104和应用市场106。客户端设备102、服务提供商104和应用市场106可以使用可以以多种方式配置的广泛范围的计算设备来实现。例如,计算设备可以配置为便携式游戏设备、移动电话、能够通过网络进行通信的计算机(例如,桌面计算机、一个或多个服务器、娱乐器具)、通信地耦接到显示设备的机顶盒等。因此,计算设备的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏机)到具有有限存储器和/或处理资源的低资源设备(例如传统的机顶盒、手持游戏机)。另外,虽然在相应的图示中示出单个实体,但是显而易见的是该实体可以表示一个或多个实体,并因此被相应的引用,例如客户端设备102、客户端设备104等。计算设备还可以包括使得计算设备的硬件执行操作的实体(例如软件),例如处理器、功能块等。例如,计算设备可以包括配置为维护导致计算设备、更具体地导致计算设备的硬件执行操作的指令的计算机可读介质。因而,指令起作用以配置硬件来执行操作,并以这种方式导致硬件的变换以执行功能。可以经由多种不同的配置来由计算机可读介质将指令提供给计算设备。一个这样的计算机可读介质的配置是信号承载介质,并因而被配置为例如经由网络将指令(例如,作为载波)发送到计算设备的硬件。计算机可读介质还可以被配置为计算机可读存储介质,并因而不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存存储器、硬盘存储器和可以使用磁、光和其他技术来存储指令和其他数据的其他存储器设备。说明示例中的客户端设备102被示为包括处理器108和存储器110。处理器不受限于形成该处理器的材料或其中采用的处理机制。例如,处理器可以包括一个或多个半导体和/或晶体管(例如,电子集成电路(1C))。在这样的上下文中,处理器可执行的指令可以是可电子执行的指令。可替换地,处理器的机制和因此计算设备的机制包括但不限于量子计算、光学计算、机械计算(例如使用纳米技术)等。另外,尽管示出单个处理器104和存储器106,但是可以采用多种类型的存储器和/或处理器及其组合。客户端设备102示出为还包括操作系统112。操作系统112通常用来提取诸如处理器108、存储器110和其他设备之类的底层设备的功能给由客户端设备102执行的应用114和其他软件。虽然操作系统112示出为在处理器108上执行,但是该模块还可以存储在存储器110中。如前所述,可以从各种源来获取应用114。例如,应用114可以使用从实体店获取的计算机可读存储介质来安装在客户端设备102上。在另一示例中,可以经由网络116从应用市场106获取应用114。应用市场106示出为包括市场模块118,其表示管理并传递来自应用市场106的存储设备120的应用的功能。例如,市场模块118可以采用收益技术(例如做广告、每次下载计费)来收集用以提供应用由客户端设备102执行的收益。因此,用户可以经由网络116访问应用市场106来访问众多不同的应用,例如收费的、免费的、基于订阅的应用等。为了维护兼容性,客户端设备102被进一步示出为采用兼容性模块122,其示出为在处理器108上执行并可以存储在存储器110中。兼容性模块122可以以多种方式帮助促进兼容性。例如,兼容性模块122可以用作兼容性层,其由客户端设备102执行以自动地监控应用114 (包括操作系统112)的执行。兼容性模块112例如可以监控已知的兼容性问题并输出用户接口,该用户接口可以帮助将用户引导朝向至少部分地解决问题的修复124。在另一示例中,兼容性模块112可以实现为响应于从用户接收的请求来执行的调解器。同样,当在此配置中时,调解器可以输出配置为帮助将用户引导朝向修复124的用户接口。例如,兼容性模块122可以应用技术来修正应用114中的缺陷、应用114与更新版本的操作系统112的兼容性问题等。在一个或多个实现中,如果修复124被认为至少部分是成功的,则兼容性模块122经由网络116将描述修复124的数据传递至服务提供商104。所示出的服务提供商104包括兼容性验证模块126,其表示验证修复124的功能,例如该修复如所描述的那样“起作用”。兼容性验证模块126因此可以维护可以提供给其他客户端设备的修复130的数据库128。这样,尽管客户端设备102的初始子集对于应用114具有不大令人满意的体验(例如,由于应用114自身、对操作系统112所作出的变化等),但是该体验可以为群组所利用,以使得通过自动地应用相应的修复而使该体验不再重复发生。通常,可以使用软件、固件、硬件(例如固定的逻辑电路)、人工处理及这些实现的组合来实现在此所述的任意功能。在此使用的术语“模块”、“引擎”和“功能”通常表示硬 件、软件、固件或其组合。在软件实现的情况下,模块、功能或逻辑表示执行由硬件,例如一个或多个处理器和/或功能块指定的功能的指令和硬件。
图2示出示例实现中的系统200,在该系统中,利用服务提供商104的兼容性验证模块126来计算针对兼容性问题的修复的置信度得分。如前,客户端设备102包括操作系统112、应用114、和兼容性模块122。可以利用兼容性模块122来解决各种兼容性问题,这些兼容性问题可以由应用114的执行、应用114与操作系统112的交互(由于操作系统112的更新)等引起。兼容性模块122例如可以输出用户接口,其引导用户朝向修复。在解决不兼容性期间,兼容性模块122还可以生成描述在修复之前204应用114执行的数据202,以及描述在修复之后206应用114执行的数据202。如果确定该修复至少部分成功地解决了不兼容性,则数据202可以由客户端设备102传递到服务提供商104。服务提供商104随后可以采用兼容性验证模块126来验证兼容性问题的解决方案。例如,兼容性验证模块126可以根据数据202来识别应用114以便于识别“前X”个修复的应用。兼容性验证模块126随后可以选择应用114的其中之一,并例如从应用市场106购买应用114’的副本。兼容性验证模块126随后可以计算置信度得分208,其指示修复210 至少能部分地解决兼容性问题的概率。例如,置信度得分208可以基于描述修复之后206的操作的数据202,例如在应用修复的情况下应用114已执行的时间长度、在应用修复的情况下应用114已执行的次数、该修复后续是否被移除等。还可以利用该信息来识别哪些应用将被验证,例如“前X”个修复的应用。在验证了修复210时,修复210可以传播到其他客户端设备212。例如,可以提供修复210作为对于应用114和/或操作系统112的更新214 (例如,作为服务包的一部分)、填补216、标志218 (将用于代码路径选择)等。填补216例如可以用来以多种方式促进操作系统112和应用114的兼容性。填补216可以采用钩子,以使得用与填补216相对应的地址来替换用于一个或多个应用编程接口的输入地址表(IAT)中的地址。填补216还可以配置为截获回调,例如该回调将在通过客户端设备102发生事件时被调用。以这种方式,填补216可以截获所作出的去往和来自不再兼容的API的调用,并翻译与该调用相关联的数据以使得其是兼容的。在一个这样的示例中,填补216可以翻译数据以模仿之前版本的操作系统112,以使应用114可以理解从操作系统112接收的命令,和/或操作系统112可以理解来自应用114的命令。还设想到了各种其他示例,诸如通过修改调度表中声明的地址来截获I/O请求包(IRP)。因此,可以采用填补216来通过将调用和其他通信的执行包装在填补216内以重定向该调用和其他通信的执行。在一个或多个实现中,填补声明了用于接口或回调的包装器。如果将这样的包装器应用于填补(例如在运行时),则通过该包装器处理针对系统组件的调用或者从应用114到系统组件的调用。因此,填补216可以控制接口调用的输入和输出两者,并修改它们以修正不兼容性。参照以下过程可以找到有关生成和传播修复的进一步讨论。示例过稈
以下讨论描述了可以利用前述的系统和设备实现的技术。各过程中每一个的各方面可以以硬件、固件、软件、或其组合来实现。过程示出为框集合,其指定了由一个或多个设备执行的操作,并且不必限于示出的通过各个块来执行操作的顺序。在以下讨论的各部分中,将参考图I的环境100和图2的系统200。
图3描述了示例实现中的过程300,其中,通过兼容性模块输出用户接口来解决不兼容性。由客户端设备从用户接收输入来启动兼容性模块(框302)。兼容性模块例如被配置为在由客户端设备102的用户识别出不兼容性时输出的调解器。还可以自动地输出用户接口而没有用户介入。例如,兼容性模块可以监控由客户端设备对应用的执行以监控一个或多个已知的不兼容性(框304)。模块随后可以检测计算设备对应用的执行涉及不兼容性(框 306)。随后,由客户端设备输出用户接口,其被配置为用作尝试至少部分解决由客户端设备执行应用中的不兼容性的引导(框308)。用户接口例如可以被配置为引导用户通过一系列可以用于解决不兼容的步骤的“向导”。这些步骤可以包括由用户回答的问题以追随可能导致解决兼容性问题的路径。响应于客户端设备确定该尝试至少部分成功地解决了不兼容性,经由网络传递描述由客户端设备进行的尝试的数据以供服务提供商来接收(框310)。在应用修复后,兼容性模块122例如可以监控应用114的执行。该监控随后可以用作确定该修复是否可能成功的根据,例如基于以下内容在应用了修复情况下应用执行的时间量、兼容性模块122是否被再次执行来修正该修复、应用114执行的次数等。虽然描述了由应用114对修复的使用,但是该修复还可以应用到客户端设备102的操作系统112或其他软件(例如驱动器),参照以下附图可以找到该内容的进一步讨论。图4描述了示例实现中的过程400,其中根据从一个或多个客户端设备接收的数据验证修复,并将修复传播到其他客户端设备。从多个计算设备接收数据,该数据描述了至少部分成功地解决了一个或多个应用在相应计算设备上的执行中的一个或多个不兼容性的尝试(框402)。如上所述,例如,兼容性模块122 —旦确定修复至少是部分成功的就发送数据,从而减少了传递到服务提供商104并由服务提供商104处理的数据量。例如,数据量可以使得与不管结果为何都发送日志文件的常规技术相比没有利用采样。然而,还可以设想其他实现,例如发送描述失败尝试的数据。
对数据进行挖掘来根据一个或多个准则至少识别一个或多个应用(框404)。兼容性验证模块126例如可以使用各种准则来比较和聚合来自多个客户端设备的数据。例如,该聚合和比较可以用来定位由一组客户端设备应用的修复、部分成功地解决不兼容问题的修复、涉及普遍应用114的修复、针对特别突出兼容性问题的修复等。为所识别的应用验证至少部分成功地解决了不兼容性中的至少一个(框406)。例如,所识别的应用可以通过从存储设备复制、从应用市场购买等方式来获取(框408)。随后作出有关所施加的修复是否至少部分成功地解决不兼容性的确定(框412)。这些步骤可以由兼容性验证模块126自动执行而没有用户介入,从而使过程自动化。自然地,还可以设想其他示例,例如具有获取应用、施加修复等选项的用户接口的输出。存储描述经验证的对不兼容性的成功解决的数据(框414)。随后基于所存储的数据来传播修复以解决不兼容性(框416)。该修复例如可以配置为更新(例如,作为服务包的一部分)、填补、用于代码路径选择以为了兼容性配置应用114和/或操作系统112的标志等。以这种方式,可以传播由对于应用114具有不大令人满意的体验的小用户子集所应用的修复,以使得其他用户不会有类似的体验。结论虽然以特定于结构化特征和/或方法学上的动作的语言描述本发明,但是要理解的 是,所附权利要求中限定的本发明不必限于所描述的具体特征和行为。相反,这些具体特征和行为以实现所要求保护的发明的示例形式来公开。
权利要求
1.ー种由服务提供商的一个或多个计算设备执行的方法,该方法包括 经由网络从多个客户端设备接收数据,所述数据描述了ー个或多个尝试,所述ー个或多个尝试至少部分成功地解决了ー个或多个应用在相应计算设备上的执行中的一个或多个不兼容性(402); 根据ー个或多个准则对所述数据进行挖掘以识别所述应用中的至少ー个(404); 针对所识别的应用验证解决不兼容性中的至少ー个的至少部分成功(406);以及 存储描述经验证的、对不兼容性的成功解决的数据(408);以及 至少根据所存储的数据来传播更新以解决所述不兼容性(410)。
2.如权利要求I所述的方法,其中所接收的数据由可由相应的所述客户端设备执行的兼容性模块来生成,以输出用户接ロ来引导用户解决不兼容性。
3.如权利要求I所述的方法,其中所接收的数据没有描述不能至少部分成功地解决不兼容性的尝试。
4.如权利要求I所述的方法,其中所述ー个或多个准则与相应的所述应用的普及率有关。
5.如权利要求I所述的方法,其中所一个或多个准则可用于计算指示尝试成功的概率的置信度得分。
6.如权利要求5所述的方法,其中所述置信度得分至少部分基于在尝试解决相应的所述不兼容性之后应用执行的时间量,或在尝试解决相应的所述不兼容性之后应用执行的次数。
7.如权利要求I所述的方法,其中所述验证包括 获取所识别的应用; 将在所接收的数据中描述的修复施加于所识别的应用;以及 确定所施加的修复是否至少部分成功地解决了不兼容性。
8.如权利要求7所述的方法,其中所述获取包括由所述服务提供商的一个或多个计算机经由应用市场自动地购买所识别的应用而没有用户介入。
9.ー种方法,包括 通过客户端设备输出用户接ロ,所述用户接ロ被配置为用作尝试至少部分解决应用在所述客户端设备上执行中的不兼容性的引导(308);以及 响应于所述客户端设备确定所述尝试至少部分成功地解决了不兼容性,经由网络传递描述由所述客户端设备进行的所述尝试的数据以供服务提供商来接收。
10.如权利要求9所述的方法,其中响应于由在所述客户端设备上执行的兼容性模块检测到来自所述兼容新模块所知晓的多个不兼容性中的不兼容性,来执行所述输出。
全文摘要
描述了应用兼容性技术。在一个或多个实现中,服务提供商的一个或多个计算设备经由网络从多个客户端设备接收数据,该数据描述了一个或多个尝试,这些尝试至少部分成功地解决了一个或多个应用在相应计算设备上执行中的一个或多个不兼容性。根据一个或多个准则来挖掘数据以识别所述应用中的至少一个,并验证该数据以确认针对所识别应用至少部分成功地解决了不兼容性中的至少一个。存储描述经验证的、对不兼容性的成功解决的数据,并至少基于所存储的数据传播更新以解决不兼容性。
文档编号G06F9/48GK102707999SQ20121005798
公开日2012年10月3日 申请日期2012年3月7日 优先权日2011年3月7日
发明者C.I.卢普, D.L.希克斯, E.V.戴, H.卡扎, J.L.斯蒂芬顿, R.J.肯尼, S.K.帕苏拉, S.K.马尼文南 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1