评估应用兼容性.pdf

上传人:zhu****69 文档编号:1664910 上传时间:2018-07-03 格式:PDF 页数:23 大小:2.09MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380035613.2

申请日:

2013.07.01

公开号:

CN104641363A

公开日:

2015.05.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 15/16申请日:20130701|||公开

IPC分类号:

G06F15/16; G06F17/00

主分类号:

G06F15/16

申请人:

亚马逊科技公司

发明人:

S.吉尔; K.K.拉加戈帕兰; M.A.琼斯; K.C.K.柯

地址:

美国华盛顿州

优先权:

13/540045 2012.07.02 US

专利代理机构:

中国专利代理(香港)有限公司72001

代理人:

吕传奇; 陈岚

PDF下载: PDF下载
内容摘要

本文公开了用计算设备评估应用兼容性的各种实施方案。确定应用集合并且随后过滤所述应用集合以排除与特定客户端不兼容的那些应用。通过确定所述客户端的能力集合并且使用所述能力集合进行对每个应用的兼容性表达式的评估以确定每个应用是否与所述客户端兼容,从而进行所述过滤。返回经过滤的应用集合并且随后可以在与应用市场系统相关联的用户界面中使用所述经过滤的应用集合。

权利要求书

权利要求书
1.  一种系统,其包括:
至少一个计算设备;以及
可在所述至少一个计算设备中执行的至少一个应用,所述至少一 个应用包括:
确定应用集合的逻辑;
过滤所述应用集合以排除与特定客户端不兼容的应用的逻辑,进 行过滤的所述逻辑被配置来:
确定所述特定客户端的能力集合;
获得所述应用集合中的每个应用的对应兼容性表达式;以及
使用所述能力集合进行对所述对应兼容性表达式的评估以确定 所述应用集合中的每个应用与所述特定客户端是否兼容;以及
返回已过滤的所述应用集合的逻辑。

2.  如权利要求1所述的系统,其中所述至少一个应用还包括生 成用户界面的逻辑,所述用户界面促进购买已过滤的所述应用集合中 的任一个应用,与所述特定客户端不兼容的所述应用将通过所述用户 界面被排除在选择之外。

3.  如权利要求1所述的系统,其中所述应用集合与移动应用集 合对应,并且所述客户端与移动设备对应。

4.  如权利要求1所述的系统,其中进行过滤的所述逻辑被配置 来经由网络向兼容性评估服务发送一批评估请求,所述兼容性评估服 务被配置来进行所述评估,所述评估请求中的每一个规定所述应用集 合中的各自应用的对应识别符以及所述能力集合的识别符。

5.  如权利要求4所述的系统,其中所述至少一个应用还包括:
缓存对经由所述网络从所述兼容性评估服务获得的所述这批评 估请求的多个响应的逻辑;并且
其中进行过滤的所述逻辑还被配置来利用所述响应中的已针对 另一评估缓存的至少一个响应来替代向所述兼容性评估服务发送请 求。

6.  如权利要求1所述的系统,其中所述至少一个应用还包括:
从所述特定客户端获得所述能力集合的逻辑;
确定所述能力集合与数据存储中任何已存储的能力集合是否匹 配的逻辑;
响应于确定所述能力集合与所述数据存储中任何已存储的能力 集合不匹配而将所述能力集合存储在所述数据存储中的逻辑;以及
使所述能力集合的识别符与所述特定客户端相关联的逻辑。

7.  如权利要求1所述的系统,其中所述至少一个应用还包括从 用户获得搜索查询的逻辑,并且确定所述应用集合的所述逻辑被配置 来至少部分基于执行所述搜索查询来确定所述应用集合。

8.  如权利要求1所述的系统,其中所述评估包括用来自所述能 力集合的各自常数替换每个对应兼容性表达式中多个操作数变量中 的每一个。

9.  如权利要求1所述的系统,其中所述对应兼容性表达式是包 括多个项的后缀表达式,并且进行过滤的所述逻辑被配置来使用堆栈 评估所述后缀表达式。

10.  如权利要求9所述的系统,其中所述对应兼容性表达式的所 述评估包括:
针对所述后缀表达式中的所述项中的每一项:
确定所述项中的所述一项是运算符还是操作数;
响应于确定所述项中的所述一项是操作数而将所述操作数推入 到所述堆栈中;
响应于确定所述项中的所述一项是运算符而从所述堆栈弹出多 个操作数;
通过将所述运算符应用于所述多个操作数来产生结果;以及
将所述结果推入到所述堆栈中。

11.  一种方法,其包括以下步骤:
在客户端计算设备中向应用市场系统发送对应用列表的请求,所 述请求包括客户端识别符,所述客户端识别符与向所述应用市场系统 注册的客户端能力集合相关联;
在所述客户端计算设备中从所述应用市场系统获得应用列表,所 述应用列表被过滤来排除与所述客户端能力集合不兼容的应用;以及
在所述客户端计算设备中呈现用户界面,所述用户界面被配置来 呈现已过滤的所述应用列表。

12.  如权利要求11所述的方法,其中所述请求还包括所述客户 端计算设备的至少一个可变能力特性。

13.  如权利要求11所述的方法,其还包括以下步骤:
在所述客户端计算设备中定期发现所述客户端计算设备的所述 客户端能力集合;以及
在所述客户端计算设备中向所述应用市场系统注册已发现的所 述客户端能力集合。

14.  如权利要求11所述的方法,其中通过使用与所述客户端识 别符相关联的所述能力集合评估所述应用列表中的每个应用的对应 兼容性表达式来过滤所述应用列表。

15.  如权利要求11所述的方法,其还包括以下步骤:
在所述客户端计算设备中缓存已过滤的所述应用列表;以及
在所述客户端计算设备中呈现另一用户界面,所述另一用户界面 被配置来呈现来自已缓存的所述应用列表中的至少一个应用。

说明书

说明书评估应用兼容性
相关申请的交叉引用
以下申请要求2012年7月2日提交的标题为“EVALUATING  APPLICATION COMPATIBILITY”、申请号为13/540,045的美国专利 申请的优先权和权益,所述美国专利申请以引用方式整体并入本文。
背景
可获得许多不同类型的移动设备,从具有小显示屏和有限特征集 合的智能手机到具有大显示屏和大量特征集合的平板计算机。针对一 种类型的移动设备编写的应用可能与另一种类型的移动设备不兼容。 作为一个实例,拍摄照片的应用可能与没有相机的移动设备不兼容。 作为另一个实例,应用可以具有针对某一最小显示器分辨率来设计的 用户界面,并且可能与具有低于所述最小值的显示器分辨率的移动设 备不兼容。
附图简述
参照以下附图,可以更好地理解本公开的许多方面。附图中的组 件未必按比例绘制,而是将重点放在清楚地示出本公开的原理。此外, 在附图中,相似参考数字贯穿若干视图始终指代对应部件。
图1为根据本公开的各种实施方案的网络化环境的图。
图2为根据本公开的各种实施方案的在图1的网络化环境中由客 户端呈现的用户界面的一个实施例的图。
图3为示出根据本公开的各种实施方案的作为在图1的计算环境 中执行的应用引入服务的部分来实现的功能性的一个实施例的流程 图。
图4为示出根据本公开的各种实施方案的作为在图1的计算环境 中执行的应用市场系统的部分来实现的功能性的一个实施例的流程 图。
图5和图6为示出根据本公开的各种实施方案的作为在图1的计 算环境中执行的兼容性评估服务的部分来实现的功能性的实施例的 流程图。
图7为提供根据本公开的各种实施方案的在图1的网络化环境中 所采用的计算环境的一个示例性图示的示意性框图。
详述
本公开涉及评估应用兼容性。应用市场通常包括可能与任何给定 设备兼容或不兼容的众多应用。当顾客在应用市场中浏览或执行搜索 时,希望避免向顾客呈现不兼容的应用。例如,将不兼容的应用从应 用市场的用户界面中排除减少了混乱。此外,排除不兼容的应用防止 了因不兼容的应用的意外安装或执行所造成的糟糕的顾客体验。
本公开的各种实施方案提供用来评估一个或多个应用与客户端 的兼容性的方法,所述方法可以用来将不兼容的应用从应用市场的用 户界面中过滤或排除。为此,可以响应于应用被添加到应用市场而自 动地针对所述应用构建兼容性表达式。可以获得客户端的客户端能力 数据。当顾客在应用市场中浏览或搜索应用以安装在客户端上时,对 结果进行过滤以排除与客户端不兼容的应用。至少部分基于相对于客 户端的客户端能力数据评估应用的兼容性表达式来进行过滤。不兼容 的应用随后可以由顾客排除在选择之外,或甚至可以不予呈现给顾 客。在以下论述中,提供对系统和其组件的一般描述,然后是对所述 系统和其组件的操作的论述。
参照图1,所示的是根据各种实施方案的网络化环境100。网络 化环境100包括经由网络112与一个或多个开发者客户端106和一个 或多个客户端109进行数据通信的计算环境103。网络112包括(例如) 互联网、内部网、外部网、广域网(WAN)、局域网(LAN)、有线网、 无线网或其它合适的网络等,或者两个或更多个这类网络的任何组 合。
计算环境103可以包括(例如)服务器计算机或提供计算能力的任 何其它系统。可选地,在计算环境103中可以采用多个计算设备,所 述多个计算设备被布置成(例如)一个或多个服务器组或计算机组或 其它装置。例如,多个计算设备可以共同构成云计算资源、网格计算 资源和/或任何其它分布式计算装置。这类计算设备可以定位在单个 设施中或者可以分布在许多不同地理位置当中。
根据各种实施方案,可以在计算环境103中执行各种应用和/或 其它功能性。另外,各种数据被存储在可由计算环境103存取的数据 存储115中。如可以了解的,数据存储115可以表示多个数据存储115。 存储在数据存储115中的数据例如与以下描述的各种应用和/或功能 实体的操作相关联。
在计算环境103上执行的组件例如包括开发者门户系统118、应 用引入服务121、应用市场系统124、兼容性评估服务127以及本文 未详细论述的其它应用、服务、进程、系统、引擎或功能性。执行开 发者门户系统118来生成用户界面并且进行与维持开发者在应用市 场中的存在相关的功能性。如本文所使用的开发者可以对应于与应用 130的来源或分销商对应的用户或商业实体。开发者门户系统118可 以允许开发者在开发者客户端106处提交或上传应用130,建立应用 130的定价,建立应用130的元数据,定制应用130在应用市场中的 销售,且/或进行其它功能。
一旦开发者向开发者门户系统118提供应用130,就可以执行应 用引入服务121来将应用130添加到应用市场。应用引入服务121可 以进行与配置应用市场来提供应用130相关的各种任务。例如,应用 引入服务121可以确定应用130的各种要求,如:支持的操作系统、 支持的显示器分辨率或大小、支持的无线运营商、处理器要求、存储 器要求等。
执行应用市场系统124来提供用户界面并且进行与应用市场相 关的各种后端功能性。应用市场帮助用户获取将要安装在客户端109 上的应用130。应用130可以由许多不同的开发者提供。这种获取可 以包括购买和下载、免费下载、试用下载、升级、解锁和/或其它类 型的获取。应用市场系统124帮助用户根据风格、类别、标题、发行 日期等来搜索可获得的应用130和/或浏览应用130。应用市场系统 124可以进行用户身份验证以及对各种付款方式(如信用卡、电子支 票、信贷额度、礼品卡等)的收费以促进对应用130的电子付款。
应用市场系统124被配置来获得客户端能力131的注册并且搜索 来自客户端109的请求132。响应于搜索请求132,应用市场系统124 被配置来经由网络112将搜索结果133返回给客户端109。在一些实 施方案中,可以预先过滤搜索结果133以排除不兼容的应用130。在 其它实施方案中,可以将搜索结果133提供给客户端109以便在客户 端109中进行兼容性过滤。虽然可以响应于搜索查询来生成搜索结果 133,但也可以响应于对类别列表、流行的应用130列表和/或其它预 定义或动态生成的应用130列表的搜索请求132来生成搜索结果133。
应用市场系统124、开发者门户系统118或两者可以包括可商购 获得的超文本传送协议(HTTP)服务器应用,如HTTP服务 器、互联网信息服务(IIS)和/或其它服 务器。应用市场系统124、开发者门户系统118或两者可以采用HTTP、 简单对象访问协议(SOAP)、表述性状态传送(REST)和/或其它网络协 议。
执行兼容性评估服务127来评估特定应用130与客户端109的特 定能力集合兼容还是不兼容。为此,兼容性评估服务127可以向针对 特定应用130生成的兼容性表达式134中进行变量替换。在一个实施 方案中,兼容性表达式134与由兼容性评估服务127使用堆栈来评估 的后缀表达式对应。
存储在数据存储115中的数据包括(例如)应用130、应用要求数 据136、商业规则139、兼容性表达式134、具有能力集合145和识 别符148的客户端能力数据142、应用市场数据151、顾客数据154 并且可能包括其它数据。数据存储115中的应用130与已由开发者提 供以便包括在应用市场中的那些应用130对应。应用130可以包括(例 如)移动应用、超文本标记语言5(HTML5)应用、桌面应用和/或其它 应用。
应用要求数据136包括针对应用130中的每一个的各种应用要 求。这类要求可以包括安全性要求、特征要求和/或其它要求,客户 端109必须满足这些要求才能将应用130下载和/或安装到客户端109 上。可以从应用130中所包括的清单或其它文件来确定这类要求。此 外,可以经由分析应用130的代码、执行应用130的代码和确定存取 哪些特征和/或通过其它方法来确定这类要求。在一些情况下,可以 由开发者在开发者客户端106处通过由开发者门户系统118生成的用 户界面来人工规定所述要求。
商业规则139可以包括可以确定应用130与特定能力集合145是 否兼容的任意规则。出于商业原因,无论是为了应用市场的所有者还 是开发者的利益,都可能不希望为了在某些客户端109上的获取和安 装而提供某些应用130。作为非限制性实例,如果应用市场的所有者 针对某些平板客户端109提供地图绘制应用130,那么商业规则139 可以规定来自其它来源的地图绘制应用130与平板客户端109不兼 容。作为另一个实例,商业规则139可以规定某些应用130与关联于 除特定的专门无线运营商以外的无线运营商的移动客户端109不兼 容。
兼容性表达式134可以由应用引入服务121从应用要求数据136 和与应用130相关的商业规则139来生成。在一个实施方案中,兼容 性表达式134与包括操作数和运算符的项的列表对应。操作数可以包 括变量和常数。运算符可以包括(例如)逻辑运算符、比较运算符、算 术运算符、集合运算符等。在一些情况下,一个运算符可以与预定数 量的运算符(例如两个操作数或另一数量的操作数)相关联。兼容性表 达式134可以用前缀、中缀或后缀表示法来提供。在一个实施方案中, 兼容性表达式134可以呈后缀表示法以用于基于堆栈的评估。
客户端能力数据142包括描述与各种客户端109相关联的能力或 特性的数据。这类能力或特性可以确定应用130与对应客户端109是 否兼容。客户端能力数据142包括多个能力集合145,其中每个能力 集合145可以与具有相同能力的多个客户端109对应。每个能力集合 145可以规定(例如):操作系统版本,无线运营商,已安装的应用130 和程序库,客户端109是否具有全球定位系统(GPS)设备,客户端109 是否具有相机,客户端109的处理器、客户端109的存储器等。每个 能力集合145与识别能力集合145的识别符148相关联。
应用市场数据151包括与由应用市场系统124提供的应用市场相 关联的各种数据。例如,应用市场数据151可以包括定价信息、订单 信息、应用130的元数据、信息页面、类别和分类结构、评论、评级、 屏幕截图和/或在销售应用130时可以采用的其它数据。顾客数据154 可以包括与应用市场系统124的用户相关的各种数据。这类数据可以 包括安全凭证、浏览历史、订单历史、已注册设备的识别符148和/ 或其它信息。
开发者客户端106表示由开发者操作的多个客户端设备,这些客 户端设备可以连接到网络112。开发者客户端106可以包括(例如)基 于处理器的系统,如计算机系统。这类计算机系统可以体现为如下形 式:台式计算机、膝上型计算机、个人数字助理、蜂窝电话、智能电 话、机顶盒、音乐播放器、连网板(web pad)、平板计算机系统、游戏 操纵台、电子书阅读器或具有类似能力的其它设备。
开发者客户端106可以被配置来执行各种应用,如浏览器和/或 其它应用。可以在开发者客户端106中执行浏览器,例如来访问并且 呈现网络页面,如网页或由开发者门户系统118和/或其它服务器提 供的其它网络内容,进而在显示器上生成所呈现的网络页面。开发者 客户端106可以被配置来执行除浏览器之外的应用,例如像移动应 用、电子邮件应用、实时消息应用和/或其它应用。
客户端109表示由顾客或预期顾客操作的多个客户端设备,这些 客户端设备可以连接到网络112。客户端109可以包括(例如)基于处 理器的系统,如计算机系统。这类计算机系统可以体现为如下形式: 台式计算机、膝上型计算机、移动计算机、个人数字助理、蜂窝电话、 智能电话、机顶盒、音乐播放器、连网板、平板计算机系统、游戏操 纵台、电子书阅读器或具有类似能力的其它设备。客户端109可以包 括显示器157。显示器157可以包括(例如)一个或多个设备,如液晶 显示器(LCD)屏幕、基于气体等离子的平板显示器、LCD投影仪或其 它类型的显示设备等。
客户端109可以被配置来执行各种应用,如客户端应用160和/ 或其它应用。客户端应用160被配置来在显示器157上呈现用户界面 163以促进浏览和搜索应用市场并且从应用市场购买、下载和安装应 用130。在一个实施方案中,客户端应用160与应用市场的移动应用 对应。在另一个实施方案中,客户端应用160与浏览器对应,所述浏 览器例如用来访问和呈现网络页面,如网页或由应用市场系统124和 /或其它服务器提供的其它网络内容。客户端109可以被配置来执行 除客户端应用160之外的应用,例如像移动应用、电子邮件应用、实 时消息应用和/或其它应用。
接下来,提供对网络化环境100的各种组件的操作的一般描述。 首先,开发者在开发者客户端106处与开发者门户系统118进行交互 以提交将要包括在应用市场中的一个或多个应用130。在一些情况下, 可以提交应用130的多个版本。此外,在发行应用130的新版本时, 可以提交新版本。新版本可以例如与先前版本共存或取代先前版本。 可以将应用130上传到开发者门户系统118,或开发者门户系统118 可以被配置来从另一个来源下载应用130。在其它实施方案中可以采 用提交应用130的其它方法。
应用引入服务121随后处理已提交来包括在应用市场中的每个 应用130。为此,应用引入服务121可以确定应用130的各种要求。 这类要求可以由开发者人工规定和/或自动加以确定。例如,应用引 入服务121可以启动应用130并且确定应用130试图存取哪些资源。 可选地,或另外,应用引入服务121可以检查应用130的代码以评估 应用130在使用哪些特征、资源等。此外,应用引入服务121可以至 少部分基于应用130的清单或其它配置文件(如果存在)来确定要求。 应用引入服务121随后从应用要求数据136和任何可适用的商业规则 139创建应用130的兼容性表达式134。
另外,顾客可以向应用市场系统124建立账户和/或身份。作为 这个过程的一部分,这些顾客中的每一个可以向应用市场系统124注 册一个或多个客户端109。顾客可以下载和安装客户端应用160以促 进这个注册过程。可选地,当客户端应用160是浏览器时,顾客可以 浏览由应用市场系统124提供的网站。所述网站随后可以将各种客户 端可执行代码下载到进行注册过程的浏览器上。
作为注册的一部分,客户端应用160可以询问客户端109以确定 客户端109的各种能力。例如,客户端应用160可以确定当前操作系 统版本、已安装的软件程序库、GPS设备是否存在、相机是否存在、 当前无线运营商和/或客户端109的其它特性、特征等。虽然本文中 的论述主要使能力与客户端109设备有关,但能力可以另外或可选地 与客户端应用160有关。作为非限制性实例,当客户端应用160是浏 览器时,可以确定客户端应用160是否支持HTML5,支持哪些 HTML5特征等。
客户端应用160随后向应用市场系统124报告客户端能力131。 在初始注册之后,客户端应用160可以被配置来定期地(例如,每个 月、每两个月等)、响应于能力变化、在存取应用市场系统124时和/ 或在其它时间询问客户端109并且报告客户端能力131。应用市场系 统124随后使客户端能力131与预先存在的能力集合145(如果存在) 匹配。如果预先存在的能力集合不存在,那么应用市场系统124可以 在数据存储115中从客户端能力131创建新的能力集合145,并且给 新的能力集合145分配新的识别符148。随后可以使与可适用的能力 集合145相关联的识别符148与顾客数据154中的客户端109相关联, 作为cookie存储在客户端109中,传送到客户端109以便由客户端 应用160使用,或以其它方式与客户端109相关联。
顾客随后可以通过客户端应用160来存取应用市场的各种用户 界面163。可以在客户端应用160与应用市场系统124之间经由网络 112发送数据以促进生成和呈现用户界面163。在一个实施方案中, 用户界面163可以与所呈现的网页对应。在另一个实施方案中,用户 界面163可以与移动应用屏幕对应。通过用户界面163,顾客可以浏 览和/或搜索由应用市场提供的应用130。顾客可以输入搜索查询和/ 或存取被配置来呈现某些应用130的用户界面163。这样一来,客户 端应用160可以向应用市场系统124发送搜索请求132。
作为响应,应用市场系统124例如通过使用搜索查询执行搜索或 检索预定义列表来获得应用130的列表。列表中的应用130虽然可能 满足流行性、新鲜度、搜索查询相关性、价格等的条件,但可能与客 户端109兼容或不兼容。根据各种实施方案,进行过滤来排除与客户 端109不兼容的应用130(和/或应用130的版本)。
在一个实施方案中,由应用市场系统124在服务器一侧进行过 滤。为此,应用市场系统124可以查询兼容性评估服务127以确定应 用130的列表中的每个应用130与客户端109是否兼容。每次查询可 以提供客户端109的能力集合145的识别符148,以及各自应用130 的对应识别符。在查询是作为服务呼叫经由网络加以传输时,应用市 场系统124可以被配置来批处理查询或服务呼叫以使网络延迟的影 响最小化。随后经由网络112将应用130的已过滤列表或其至少一部 分发送给客户端109。
在另一个实施方案中,由客户端109在客户端一侧进行过滤。换 句话说,在搜索结果133中将应用130的列表发送给客户端109,所 述列表可以包括不兼容的应用130。客户端应用160随后可以向兼容 性评估服务127进行一个或多个服务呼叫以确定应用130中的每一个 与客户端109是否兼容。在这类服务呼叫中,客户端应用160可以传 递识别符148(或可以用来确定识别符148的信息),以及每个应用130 的对应识别符。客户端应用160可以被配置来批处理查询或服务呼叫 以使网络延迟的影响最小化。在一个实施方案中,评估结果可以缓存 在客户端109中。
当在客户端109处可获得应用130的已过滤列表或其至少一部分 时,客户端应用160呈现用户界面163,所述用户界面呈现来自兼容 的应用130的列表的一个或多个应用130。用户界面163可以包括用 于导航到应用130的详细页面或屏幕的一个或多个链接或其它用户 界面组件。此外,用户界面163可以包括用于发起对所述应用130中 的一个的获取(例如,购买和下载、免费下载、现有安装的升级等)的 一个或多个链接或其它用户界面组件。
在一些情况下,搜索请求132和/或对兼容性评估服务127的评 估查询可以提供与客户端109相关联的各种可变能力特性。例如,在 一个实施方案中,已存储的能力集合145可以包括客户端109的不可 变特性,而可变特性可以由客户端109提供以实现过滤。这类可变能 力特性可以包括(例如)当前操作系统版本、当前无线运营商等。
虽然已就客户端109发起针对将要安装在所述客户端109上的应 用130的搜索请求132的能力来描述功能性,但在其它实施方案中, 搜索请求132可以规定与不同的客户端109相关联的识别符148。例 如,顾客可能希望从他们的台式计算机浏览与他们的智能手机兼容的 移动应用130。在这种情况下,顾客可以人工识别或从先前注册的设 备选择,从而选择与所使用的客户端109的识别符不同的识别符148。
兼容性评估服务127获得规定应用130的识别符、能力集合145 的识别符148并且可能规定应用130的版本识别符和可变能力特性的 查询,并且进行评估以确定应用130与能力集合145是否兼容。为此, 兼容性评估服务127获得与应用130(和版本,如果可适用)对应兼容 性表达式134,并且根据能力集合145(和可变能力特性,如果可适用) 中的值来替换兼容性表达式134中的变量。兼容性评估服务127还可 以将进行兼容性表达式134从中缀表示法翻译成后缀表示法和/或进 行其它翻译(如果可适用)。在一个实施方案中,兼容性评估服务127 使用堆栈来评估兼容性表达式134。评估结果指示应用130与给定的 能力集合145(和可变能力特性,如果可适用)兼容还是不兼容。必要 时,所述结果可以缓存在数据存储115中并且用来替代对兼容性评估 服务127的未来请求。
现在转到图2,所示的是根据各种实施方案的在网络化环境100 (图1)中由在客户端109中执行的客户端应用160(图1)呈现的用户界 面163的一个实施例。用户界面163呈现被确定为与客户端109兼容 的应用130(图1)的列表203。客户端109的识别206将客户端109 描述为“Galaxo 2000N智能手机”。可以提供用户界面组件209来切换 被评估兼容性的客户端109。例如,顾客先前可能已注册平板计算机, 并且可能希望在智能手机上浏览与平板计算机兼容的应用130。
列表203包括三个应用130的描述212a、212b以及212c,这些 描述分别与“Instaphoto”、“Mean Birds”以及“Map App.”对应。在这个 非限制性实施例中,可以为每个描述212提供图形、用于请求更多信 息的组件和用于请求购买的组件。因为用户界面163的大小可能有 限,所以可以提供一个或多个导航组件215来更新用户界面163以呈 现针对列表203中的额外应用130的描述212。
接下来参照图3,所示的是提供根据各种实施方案的应用引入服 务121的一部分的操作的一个实施例的流程图。应理解,图3的流程 图提供可以用来实现如本文所述的应用引入服务121的所述部分的 操作的许多不同类型功能布置的仅一个实施例。作为一个替代方案, 图3的流程图可以被视为描绘根据一个或多个实施方案的在计算环 境103(图1)中实现的方法的步骤的实施例。
从框303开始,应用引入服务121从开发者获得应用130(图1)。 例如,开发者可以经由开发者门户系统118(图1)提交应用130。在框 306中,应用引入服务121确定应用130的要求。例如,应用引入服 务121可以审查与应用130相关联的数据(例如,清单等)。此外,应 用引入服务121可以检查应用130的代码或执行应用130的代码以确 定应用130使用哪些特征。此外,应用引入服务121可以获得已由开 发者人工规定的要求。应用引入服务121可以将要求存储在应用要求 数据136(图1)中。
在框309中,应用引入服务121确定可以应用于应用130的商业 规则139(图1)。在框312中,应用引入服务121生成应用130的兼 容性表达式134(图1)。应用引入服务121随后将兼容性表达式134 存储在数据存储115(图1)中。在框315中,应用引入服务121将应 用130添加到应用市场,这可能涉及:将应用130存储在数据存储 115中,更新应用市场数据151(图1),向应用市场系统124(图1)注 册应用130和/或其它动作。此后,应用引入服务121的所述部分结 束。
继续到图4,所示的是提供根据各种实施方案的应用市场系统 124的一部分的操作的一个实施例的流程图。应理解,图4的流程图 提供可以用来实现如本文所述的应用市场系统124的所述部分的操 作的许多不同类型功能布置的仅一个实施例。作为一个替代方案,图 4的流程图可以被视为描绘根据一个或多个实施方案的在计算环境 103(图1)中实现的方法的步骤的实施例。
从框403开始,应用市场系统124从客户端109(图1)获得客户 端能力131(图1)。在框406中,应用市场系统124确定对应能力集 合145(图1)是否存在于数据存储115(图1)中。如果对应能力集合不 存在,那么应用市场系统124移到框409并且将与客户端能力131对 应新的能力集合145存储在数据存储115中。在框412中,应用市场 系统124针对能力集合145生成新的识别符148(图1)并且使识别符 148与客户端109相关联。为此,应用市场系统124可以更新顾客数 据154(图1),向客户端109发送识别符148,将识别符148作为cookie 存储在客户端109上和/或进行其它动作。应用市场系统124随后进 行到框415。
相反,如果应用市场系统124确定能力集合145已存在于数据存 储115中,那么应用市场系统124从框406移到框418,并且使现有 能力集合145的识别符148与客户端109相关联。为此,应用市场系 统124可以更新顾客数据154,向客户端109发送识别符148,将识 别符148作为cookie存储在客户端109上和/或进行其它动作。应用 市场系统124随后进行到框415。
在框415中,应用市场系统124从客户端109获得对应用130(图 1)的列表的请求。例如,所述请求可以是搜索请求132(图1)、对类 别列表的请求等。在框421中,应用市场系统124生成应用130的列 表。例如,应用市场系统124可以对应用130执行搜索以找出与搜索 条件匹配的应用130。在框424中,应用市场系统124查询兼容性评 估服务127(图1)以确定应用130中的每一个与客户端109是否兼容。 在一些情况下,应用市场系统124可以将查询一起批处理以避免应用 市场系统124与兼容性评估服务127之间的通信中的延迟效应。
在框427中,应用市场系统124过滤应用130的列表以排除被确 定为不兼容的应用130。在框430中,应用市场系统124生成用户界 面163(图1)的数据以呈现应用130的已过滤列表。在框433中,应 用市场系统124经由网络112(图1)向客户端109发送用户界面163 的数据。此后,应用市场系统124的所述部分结束。
继续到图5,所示的是提供根据各种实施方案的兼容性评估服务 127的一部分的操作的一个实施例的流程图。应理解,图5的流程图 提供可以用来实现如本文所述的兼容性评估服务127的所述部分的 操作的许多不同类型功能布置的仅一个实施例。作为一个替代方案, 图5的流程图可以被视为描绘根据一个或多个实施方案的在计算环 境103(图1)中实现的方法的步骤的实施例。
从框503开始,兼容性评估服务127获得与客户端109(图1)对 应能力集合145(图1)以及与应用130(图1)对应兼容性表达式134(图 1)。在一些情况下,兼容性评估服务127还可以获得应用130的版本 识别符以识别兼容性表达式134。另外,除了能力集合145中所存储 的内容,兼容性评估服务127还可以获得客户端109的各种可变能力 特性。
在框506中,兼容性评估服务127将兼容性表达式134翻译成后 缀表达式,如果可适用。在框509中,兼容性评估服务127用来自能 力集合145的值替换兼容性表达式134中的变量。例如,兼容性表达 式134可以具有变量“screenSize”,并且能力集合145可以具有属性值 对“screenSize=small”。因此,为了评估兼容性表达式134,兼容性评 估服务127可以用“small”替换“screenSize”。
在框512中,兼容性评估服务127使用堆栈来评估兼容性表达式, 将结合图6的流程图对此加以进一步描述。在框515中,兼容性评估 服务127返回评估结果。此后,兼容性评估服务127的所述部分结束。
现在转到图6,所示的是提供根据各种实施方案的兼容性评估服 务127的另一部分的操作的一个实施例的流程图。应理解,图6的流 程图提供可以用来实现如本文所述的兼容性评估服务127的所述另 一部分的操作的许多不同类型功能布置的仅一个实施例。作为一个替 代方案,图6的流程图可以被视为描绘根据一个或多个实施方案的在 计算环境103(图1)中实现的方法的步骤的实施例。
从框603开始,兼容性评估服务127从兼容性表达式134获得项。 在框606中,兼容性评估服务127确定所述项是否为操作数。如果兼 容性评估服务127确定所述项为操作数,那么兼容性评估服务127进 行到框609并且将所述操作数推入到堆栈中。兼容性评估服务127随 后继续到框612。
相反,如果兼容性评估服务127确定所述项不是操作数(即,是 运算符),那么兼容性评估服务127从框606移到框615并且根据所 述运算符从堆栈弹出操作数。例如,兼容性评估服务127可以从堆栈 弹出多个操作数,其中所述数量可以至少部分基于所述运算符来确 定。在框618中,兼容性评估服务127将运算符应用于操作数。例如, 当运算符为“=”并且操作数为“6”和“7”时,兼容性评估服务127可以 评估“6”是否等于“7”,从而产生错误的结果。
在框612中,兼容性评估服务127确定兼容性表达式134是否包 括更多项。如果兼容性表达式134包括更多项,那么兼容性评估服务 127在框621中将运算符结果推入到堆栈中并且此后返回到框603。 如果兼容性表达式134不包括更多项,那么兼容性评估服务127在框 624中返回结果。此后,兼容性评估服务127的所述部分结束。
参照图7,所示的是根据本公开的一个实施方案的计算环境103 的示意性框图。计算环境103包括一个或多个计算设备700。每个计 算设备700包括例如具有处理器703和存储器706的至少一个处理器 电路,所述处理器与存储器均连接到本地接口709。为此,计算设备 700可以包括例如至少一个服务器计算机或类似设备。本地接口709 可以包括(例如)伴随有地址/控制总线或其它总线结构的数据总线,如 可以了解的。
存储在存储器706中的是数据与可由处理器703执行的若干组件 两者。具体而言,存储在存储器706并且可由处理器703执行的是开 发者门户系统118、应用引入服务121、应用市场系统124、兼容性 评估服务127以及潜在的其它应用。也存储在存储器706中的可以是 数据存储115和其它数据。此外,操作系统可以存储在存储器706中 并且可由处理器703执行。
应理解,可能存在存储在存储器706中并且可由处理器703执行 的其它应用,如可以了解的。在本文所论述的任何组件是以软件形式 来实现的情况下,可以采用多种编程语言中的任何一种,例如像C、 C++、C#、Objective C、Perl、PHP、VisualRuby、或其它编程语言。
多个软件组件存储在存储器706中并且可由处理器703执行。在 这方面,术语“可执行的”意味着呈可以最终由处理器703运行的形式 的程序文件。可执行程序的实例可以是例如:编译程序,所述编译程 序可以翻译成机器码,所述机器码呈可以加载到存储器706的随机存 取部分中并且由处理器703运行的格式;源代码,所述源代码可以用 适当的格式来表达,如能够被加载到存储器706的随机存取部分中并 且由处理器703执行的目标代码;或源代码,所述源代码可以由另一 可执行程序解释以在存储器706的随机存取部分中生成指令以便由 处理器703执行;等等。可执行程序可以存储在存储器706的任何部 分或组件中,包括(例如)随机存取存储器(RAM)、只读存储器(ROM)、 硬盘驱动器、固态驱动器、USB闪存驱动器、存储卡、如压缩盘(CD) 或数字通用盘(DVD)的光盘、软盘、磁带或其它存储器组件。
存储器706在本文中被定义为包括易失性存储器和数据存储组 件与非易失性存储器和数据存储组件两者。易失性组件是在电力丧失 之后不保持数据值的那些组件。非易失性组件是在电力丧失之后保持 数据的那些组件。因此,存储器706可以包括(例如)随机存取存储器 (RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱 动器、经由存储卡读取器存取的存储卡、经由相关联的软盘驱动器存 取的软盘、经由光盘驱动器存取的光盘、经由适当的磁带驱动器存取 的磁带和/或其它存储器组件,或这些存储器组件中的任何两个或更 多个的组合。此外,RAM可以包括(例如)静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)或磁性随机存取存储器 (MRAM)以及其它这类设备。ROM可以包括(例如)可编程只读存储器 (PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读 存储器(EEPROM)或其它类似存储器设备。
另外,处理器703可以表示多个处理器703,并且存储器706可 以表示分别在并联的处理电路中操作的多个存储器706。在这种情况 下,本地接口709可以是促进多个处理器703中的任何两个之间、任 何处理器703与任何存储器706之间或存储器706中的任何两个之间 的通信的适当网络。本地接口709可以包括被设计来协调这种通信的 额外系统,所述协调包括(例如)进行负载平衡。处理器703可以具有 电气构造或某一其它可获得的构造。
虽然开发者门户系统118、应用引入服务121、应用市场系统124、 兼容性评估服务127、客户端应用160(图1)以及本文所描述的其它 各种系统可以如以上所论述体现为可由通用硬件执行的软件或代码, 但作为一个替代方案,以上系统还可以体现为专用硬件或软件/通用 硬件与专用硬件的组合。如果体现为专用硬件,那么每个系统可以实 现为采用多项技术中的任何一项或其组合的电路或状态机。这些技术 可以包括但不限于具有逻辑门以便在应用一个或多个数据信号时实 现各种逻辑功能的离散逻辑电路、具有适当的逻辑门的专用集成电路 或其它组件等。这类技术通常是本领域技术人员熟知的,并且因此在 本文中不进行详细描述。
图3至图6的流程图示出应用引入服务121、应用市场系统124 以及兼容性评估服务127的多个部分的实现方式的功能性和操作。如 果体现为软件,那么每个块可以表示包括用来实现规定的逻辑功能的 程序指令的一个代码模块、代码区段或代码部分。程序指令可以体现 为以下形式:源代码,所述源代码包括以编程语言编写的人类可读语 句;或机器码,所述机器码包括可由适合的执行系统(如计算机系统 或其它系统中的处理器703)辨别的数字指令。机器码可以从源代码等 转换而来。如果体现为硬件,那么每个块可以表示用来实现规定的逻 辑功能的一个电路或多个互连电路。
虽然图3至图6的流程图示出特定执行顺序,但应理解,执行顺 序可以不同于所描绘的顺序。例如,两个或更多个块的执行顺序可以 相对于所示顺序被打乱。此外,图3至图6中连续示出的两个或更多 个块可以同时执行或部分同时执行。此外,在一些实施方案中,可以 跳过或省略图3至图6中所示的块中的一个或多个。此外,为了增强 的效用、计帐、性能测量或提供疑难解答帮助等,可能将任何数量的 计数器、状态变量、警报信号量或消息添加到本文所描述的逻辑流程。 应理解,所有这类变化都在本公开的范围内。
另外,本文所描述的包括软件或代码的任何逻辑或应用均可以体 现在由指令执行系统(例如像计算机系统或其它系统中的处理器703) 使用或结合所述指令执行系统来使用的任何非暂时性计算机可读介 质中,所述逻辑或应用包括开发者门户系统118、应用引入服务121、 应用市场系统124、兼容性评估服务127以及客户端应用160。在这 个意义上,逻辑可以包括(例如)语句,所述语句包括可以从计算机可 读介质取出并且由指令执行系统执行的指令和声明。在本公开的情境 中,“计算机可读介质”可以是由指令执行系统使用或结合所述指令执 行系统来使用的可以含有、存储或维持本文所描述的逻辑或应用的任 何介质。
计算机可读介质可以包括许多物理介质中的任何一种,例如像磁 性介质、光学介质或半导体介质。适合的计算机可读介质的更特定实 例将包括但不限于:磁带、磁性软盘、磁性硬盘驱动器、存储卡、固 态驱动器、USB闪存驱动器或光盘。此外,计算机可读介质可以是 随机存取存储器(RAM),包括(例如)静态随机存取存储器(SRAM)和动 态随机存取存储器(DRAM)或磁性随机存取存储器(MRAM)。此外, 计算机可读介质可以是只读存储器(ROM)、可编程只读存储器 (PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读 存储器(EEPROM)或其它类型的存储器设备。
上文包括至少以下示例性条款;
1.一种体现可在计算设备中执行的程序的非暂时性计算机可读 介质,所述非暂时性计算机可读介质包括:从开发者获得移动应用的 代码;自动确定针对所述移动应用的多个应用要求的代码;从所述应 用要求生成兼容性表达式的代码;获得与移动设备相关联的能力集合 的代码;至少部分基于所述能力集合进行对所述兼容性表达式的评估 以产生评估结果的代码;根据所述评估结果确定所述移动应用与所述 移动设备是否兼容的代码;以及生成用户界面的代码,所述用户界面 促进用户获取所述移动应用以便安装在所述移动设备上。
2.如条款1所述的非暂时性计算机可读介质,其还包括缓存所 述评估结果的代码。
3.如条款1所述的非暂时性计算机可读介质,其中所述兼容性 表达式是后缀表达式,并且进行所述评估的所述代码被配置来使用堆 栈进行所述评估。
4.如条款1所述的非暂时性计算机可读介质,其还包括:从所 述移动设备获得能力集合识别符的代码;并且其中获得所述能力集合 的所述代码被配置来根据所述能力集合识别符从数据存储加载所述 能力集合。
5.一种系统,其包括:至少一个计算设备;以及可在所述至少 一个计算设备中执行的至少一个应用,所述至少一个应用包括:确定 应用集合的逻辑;过滤所述应用集合以排除与特定客户端不兼容的应 用的逻辑,进行过滤的所述逻辑被配置来:确定所述特定客户端的能 力集合;获得所述应用集合中的每个应用的对应兼容性表达式;并且 使用所述能力集合进行对所述对应兼容性表达式的评估以确定所述 应用集合中的每个应用与所述特定客户端是否兼容;以及返回已过滤 的应用集合的逻辑。
6.如条款5所述的系统,其中所述至少一个应用还包括生成用 户界面的逻辑,所述用户界面促进购买已过滤的所述应用集合中的任 一个应用,与所述特定客户端不兼容的应用将通过所述用户界面被排 除在选择之外。
7.如条款6所述的系统,其中与所述特定客户端不兼容的应用 不予呈现在所述用户界面中。
8.如条款5所述的系统,其中所述应用集合与移动应用集合对 应,并且所述客户端与移动设备对应。
9.如条款5所述的系统,其中所述至少一个应用还包括:获得 开发者提供的应用的逻辑;自动确定针对所述开发者提供的应用的多 个应用要求的逻辑;至少部分基于所述应用要求自动生成所述开发者 提供的应用的对应兼容性表达式的逻辑;以及存储与所述开发者提供 的应用相关联的所述对应兼容性表达式的逻辑。
10.如条款9所述的系统,其中自动生成所述对应兼容性表达式 的所述逻辑被配置来至少部分基于多个商业规则生成所述对应兼容 性表达式。
11.如条款5所述的系统,其中进行过滤的所述逻辑被配置来经 由网络向兼容性评估服务发送一批评估请求,所述兼容性评估服务被 配置来进行所述评估,所述评估请求中的每一个规定所述应用集合中 的各自应用的对应识别符以及所述能力集合的识别符。
12.如条款11所述的系统,其中所述至少一个应用还包括:缓 存对经由所述网络从所述兼容性评估服务获得的所述这批评估请求 的多个响应的逻辑;并且其中进行过滤的所述逻辑还被配置来利用所 述响应中的已针对另一评估缓存的至少一个响应来替代向所述兼容 性评估服务发送请求。
13.如条款5所述的系统,其中所述至少一个应用还包括:从所 述特定客户端获得所述能力集合的逻辑;确定所述能力集合与数据存 储中任何已存储的能力集合是否匹配的逻辑;响应于确定所述能力集 合与所述数据存储中任何已存储的能力集合不匹配而将所述能力集 合存储在所述数据存储中的逻辑;以及使所述能力集合的识别符与所 述特定客户端相关联的逻辑。
14.如条款5所述的系统,其中所述至少一个应用还包括从用户 获得搜索查询的逻辑,并且确定所述应用集合的所述逻辑被配置来至 少部分基于执行所述搜索查询来确定所述应用集合。
15.如条款5所述的系统,其中所述评估包括用来自所述能力集 合的各自常数替换每个对应兼容性表达式中多个操作数变量中的每 一个。
16.如条款5所述的系统,其中所述对应兼容性表达式是包括多 个项的后缀表达式,并且进行过滤的所述逻辑被配置来使用堆栈评估 所述后缀表达式。
17.如条款16所述的系统,其中所述对应兼容性表达式的所述 评估包括:针对所述后缀表达式中的所述项中的每一项:确定所述项 中的所述一项是运算符还是操作数;响应于确定所述项中的所述一项 是操作数而将所述操作数推入到所述堆栈中;响应于确定所述项中的 所述一项是运算符而从所述堆栈弹出多个操作数;通过将所述运算符 应用于所述多个操作数来产生结果;以及将所述结果推入到所述堆栈 中。
18.一种方法,其包括以下步骤:在客户端计算设备中向应用市 场系统发送对应用列表的请求,所述请求包括客户端识别符,所述客 户端识别符与向所述应用市场系统注册的客户端能力集合相关联;在 所述客户端计算设备中从所述应用市场系统获得应用列表,所述应用 列表被过滤以排除与所述客户端能力集合不兼容的应用;以及在所述 客户端计算设备中呈现用户界面,所述用户界面被配置来呈现已过滤 的所述应用列表。
19.如条款18所述的方法,其中所述请求还包括所述客户端计 算设备的至少一个可变能力特性。
20.如条款19所述的方法,其中所述至少一个可变能力特性包 括操作系统版本。
21.如条款19所述的方法,其中所述至少一个可变能力特性包 括所述客户端计算设备的当前无线运营商。
22.如条款18所述的方法,其还包括以下步骤:在所述客户端 计算设备中定期发现所述客户端计算设备的所述客户端能力集合;以 及在所述客户端计算设备中向所述应用市场系统注册已发现的所述 客户端能力集合。
23.如条款18所述的方法,其中所述用户界面被配置来促进获 取所述应用列表中的任一个应用以便安装在所述客户端计算设备中。
24.如条款18所述的方法,其中通过使用与所述客户端识别符 相关联的所述能力集合评估所述应用列表中的每个应用的对应兼容 性表达式来过滤所述应用列表。
25.如条款18所述的方法,其中所述请求包括搜索查询,所述 搜索查询在所述应用市场系统中被执行时产生所述应用列表。
26.如条款18所述的方法,其还包括以下步骤:
在所述客户端计算设备中缓存已过滤的所述应用列表;并且在所 述客户端计算设备中呈现另一用户界面,所述另一用户界面被配置来 呈现来自已缓存的所述应用列表中的至少一个应用。
应该强调的是,本公开的上述实施方案仅仅是为了清楚理解本公 开的原理而阐明的实现方式的可能实施例。在大致上不背离本公开的 精神和原理的情况下,可以对上述(多个)实施方案做出许多变化和修 改。所有这类修改和变化意欲在本文中包括于本公开的范围内并且受 所附权利要求保护。

评估应用兼容性.pdf_第1页
第1页 / 共23页
评估应用兼容性.pdf_第2页
第2页 / 共23页
评估应用兼容性.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《评估应用兼容性.pdf》由会员分享,可在线阅读,更多相关《评估应用兼容性.pdf(23页珍藏版)》请在专利查询网上搜索。

本文公开了用计算设备评估应用兼容性的各种实施方案。确定应用集合并且随后过滤所述应用集合以排除与特定客户端不兼容的那些应用。通过确定所述客户端的能力集合并且使用所述能力集合进行对每个应用的兼容性表达式的评估以确定每个应用是否与所述客户端兼容,从而进行所述过滤。返回经过滤的应用集合并且随后可以在与应用市场系统相关联的用户界面中使用所述经过滤的应用集合。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1