CN105051686A - 用于集成的推荐的系统和方法 - Google Patents

用于集成的推荐的系统和方法 Download PDF

Info

Publication number
CN105051686A
CN105051686A CN201480017347.5A CN201480017347A CN105051686A CN 105051686 A CN105051686 A CN 105051686A CN 201480017347 A CN201480017347 A CN 201480017347A CN 105051686 A CN105051686 A CN 105051686A
Authority
CN
China
Prior art keywords
recommendation
application
platform
customers end
recommend
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480017347.5A
Other languages
English (en)
Other versions
CN105051686B (zh
Inventor
A·鲍尔克
B·麦查多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sweetlabs Inc
Original Assignee
Sweetlabs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sweetlabs Inc filed Critical Sweetlabs Inc
Publication of CN105051686A publication Critical patent/CN105051686A/zh
Application granted granted Critical
Publication of CN105051686B publication Critical patent/CN105051686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开涉及用于集成的推荐的系统和方法。示出了用于在计算设备上利用推荐客户端呈现推荐的系统和方法,其中推荐客户端可以在由应用平台应用提供的运行时环境内和/或在web浏览器应用内非原生地执行。在一种实施例中,用于呈现推荐应用的方法包括利用推荐客户端发送应用推荐请求数据,基于发送的应用推荐请求数据利用推荐客户端获得应用推荐数据,在由推荐客户端的操作系统生成的计算环境内呈现应用推荐数据,利用推荐客户端接收指示与应用推荐数据的至少一个交互的交互数据,基于接收到的交互数据利用推荐客户端记录结果信息,及利用推荐客户端发送记录的结果信息。

Description

用于集成的推荐的系统和方法
技术领域
本发明一般涉及软件应用,并且更具体地,涉及在远程服务器上托管的、可以在本地计算设备上被下载以供在由应用平台应用提供的运行时环境(runtimeenvironment)内非原生(non-native)执行的推荐客户端。
背景技术
运行时环境可以允许应用被集成到计算设备的计算环境中。通常地,运行时环境由操作系统提供给在计算设备上要被原生实现(即编译为应用在其上驻留的计算设备的机器代码)的应用。但是,其它的运行时环境可以提供给要在计算设备上非原生实现的应用,诸如,可以在由计算设备上原生操作的web浏览器提供的虚拟机内操作的web应用(由于其用虚拟机的字节码而不是计算设备的机器代码来编写)。
Web浏览器是通常通过网络检索和呈现在由内容服务器维护的网页上找到的信息的应用。网页通常被存储为用浏览器支持的格式格式化的、可以被web浏览器显示的一个或多个文本文件,其中浏览器支持的格式诸如,但不限于,标记语言(诸如,但不限于,如由万维网联盟所定义的超文本标记语言(HyperTextMarkupLanguage,HTML))、脚本(诸如,但不限于,JavaScript和/或结合如由Mozilla基金会的ECMATC-39委员会所定义的ECMAScript的其它脚本)和样式表(诸如,但不限于,如由万维网联盟所定义的级联样式表(CSS))。
发明内容
示出了用于在计算设备上利用推荐客户端呈现推荐的系统和方法,其中推荐客户端可以在由应用平台应用提供的运行时环境内和/或在web浏览器应用内非原生地执行。在一种实施例中,用于呈现推荐应用的方法包括利用推荐客户端发送应用推荐请求数据,其中应用推荐请求数据包括描述对应于推荐客户端的计算设备的种类的元数据、基于发送的应用推荐请求数据利用推荐客户端获得应用推荐数据,其中应用推荐数据包括对至少一个托管的应用的引用、利用推荐客户端在由推荐客户端的操作系统生成的计算环境内呈现应用推荐数据,其中推荐客户端被配置为利用包括集成层和渲染层的应用平台应用呈现应用数据、利用推荐客户端接收指示与应用推荐数据的至少一个交互的交互数据、基于接收到的交互数据利用推荐客户端记录结果信息、及利用推荐客户端发送记录的结果信息。
附图说明
图1是根据本发明实施例的示出由推荐客户端配置的多个计算设备的网络示图,其中推荐客户端在由应用平台应用提供的运行时环境内执行。
图2A根据本发明实施例概念性地示出了其中推荐客户端可以作为跨平台应用的一部分执行的软件栈。
图2B根据本发明实施例概念性地示出了其中推荐客户端可以作为应用平台应用的一部分执行的软件栈。
图2C根据本发明实施例概念性地示出了其中推荐客户端可以利用渲染引擎执行的软件栈。
图3是根据本发明实施例示出用于生成优先级化的推荐列表(prioritizedrecommendationlist)的过程的流程图。
图4是根据本发明实施例示出用于生成结果信息的过程的流程图。
图5是根据本发明实施例示出用于呈现推荐的过程的流程图。
图6是根据本发明实施例示出用于响应于接收到推荐列表请求而返回推荐列表的过程的流程图。
图7是根据本发明实施例的、其中来自推荐客户端的推荐在应用平台应用的用户界面内被呈现的屏幕截图。
图8根据本发明实施例的、其中来自推荐客户端的推荐是利用渲染引擎呈现的屏幕截图。
具体实施方式
现在转到附图,其示出了用于在计算设备上利用推荐客户端呈现推荐的系统和方法。在许多实施例中,推荐是由推荐客户端应用呈现的,其中推荐客户端可以在由应用平台应用提供的运行时环境内和/或在web浏览器应用内非原生地执行。推荐是当在用户界面中呈现时提供关于产品或服务的信息的信息并且包括推荐资源,推荐资源可以被推荐客户端利用以执行响应于接受的动作和/或响应于所呈现推荐的动作。推荐资源可以包括,但不限于,统一资源定位符(URL),其允许推荐客户端请求履行推荐和/或可以被推荐客户端用来在计算设备的计算环境内生成的用户界面内显示推荐的内容(例如,文本、图像、音频、视频和/或识别远程存储的内容的URL)。在几个实施例中,计算环境是利用计算设备上安装的操作系统(与应用平台应用分离)创建的。在许多实施例中,推荐客户端被托管在远程服务器上并且被下载用于在计算设备上执行。在多个实施例中,推荐数据由推荐服务器以批处理的方式准备并且推荐客户端检索推荐数据并将其过滤以在计算设备的计算环境内显示相关的推荐。在几个实施例中,推荐的相关性是基于相关性分值确定的,相关性分值是基于对推荐的履行率(fulfillmentrate)计算的。在多个实施例中,履行率考虑与特定计算设备相关联的简档信息。
在几个实施例中,推荐客户端在其内执行的应用平台应用提供了至少部分原生实现的运行时环境,同时提供了与由计算设备的操作系统创建的计算环境集成的直观用户界面。应用平台应用可以向用户提供访问来组织和发现应用,包括可以在运行时环境内执行的跨平台应用。运行时环境还提供了通过其跨平台应用可以与包括操作系统进程的原生进程通信的机制。在许多实施例中,跨平台应用不是原生实现的,而是非原生实现的并且被配置为由应用平台应用执行。在几个实施例中,跨平台应用是利用web技术实现的,web技术包括,但不限于,超文本标记语言(HTML)、JavaScript和/或层叠样式表(CSS)。应用平台应用还有助于跨平台应用与桌面计算环境的集成。例如,跨平台应用可以在计算环境内具有启动点(例如桌面图标、任务栏图标和/或计算环境的任何其它交互元素),并且可以以,包括但不限于,通过将徽标应用到图标来更新桌面或任务栏图标的方式提供通知。启动点是计算设备的计算环境的特征,其允许用户启动跨平台应用或将跨平台应用的用户界面带到前台。在许多实施例中,跨平台应用被连续地在应用平台应用的运行时环境内执行并且计算环境内的启动点为用户提供了将跨平台应用的用户界面带到前台和/或促使跨平台应用提供通知的机制。
在许多实施例中,应用平台应用包括渲染引擎层和集成层。渲染引擎层包括各种解析器和与支持的特定web技术相关联的虚拟机,支持的特定web技术包括,但不限于,HTML、JavaScript和CSS。渲染引擎层能够执行web浏览器的渲染引擎的所有功能,从而以类似于其中原生应用在计算环境内执行的方式,即,无需启动web浏览器应用来执行跨平台应用,提供使得利用web技术实现的跨平台应用的执行。但是,不以web应用通常局限于特定web浏览器实例的方式限制跨平台应用。集成层暴露了可以被跨平台应用调用以对计算环境做出修改的多个API。在几个实施例中,集成层API是可以被在由应用平台应用创建的运行时环境内运行的跨平台应用调用的JavaScriptAPI。响应于API调用,集成层可以与操作系统和/或其它原生实现的进程通信来修改计算环境。集成层有助于跨平台应用与桌面计算环境的集成和与原生实现的进程的通信,以提供包括(但不限于)桌面启动点和基于由应用从远程服务器推送的数据的通知的功能。尽管跨平台应用和应用平台应用根据本发明的实施例可以被实现为使得跨平台应用利用类似于那些被web浏览器使用的技术来实现,但是由应用平台应用创建的运行时环境可以允许创建和执行利用各种技术中任一种构建的跨平台应用并且不限于被web应用使用的适于本发明特定实施例要求的技术。可以创建其中非原生实现的跨平台应用可以执行的运行时环境的各种应用平台应用在于2011年6月20日提交的标题为“SystemsandMethodsforIntegrationofanApplicationRuntimeEnvironmentintoaUserComputingEnvironment”的美国申请No.13/164,740中进行了讨论,其公开内容通过引用被完整地结合于此。
在许多实施例中,推荐客户端可以利用由应用平台应用提供的运行时环境执行,以经由计算设备显示的用户界面向用户呈现推荐。推荐(例如,应用推荐数据)包括当在用户界面中呈现时提供关于产品或服务的细节的信息,并且包括推荐资源,推荐资源可以被推荐客户端利用以执行响应于所呈现推荐的接受(或与所呈现推荐的任何其它交互)和/或所呈现推荐的呈现的动作。推荐客户端可以以各种方式利用由应用平台应用提供的运行时环境,所述方式诸如,但不限于,通过被执行为利用应用平台应用的运行时环境的跨平台应用的一部分间接地利用,或者通过利用由应用平台应用提供的运行时环境用于在应用平台应用的用户界面内显示而直接地利用。在某些实施例中,推荐客户端也可以通过执行为跨平台应用直接地利用运行时环境,该跨平台应用配置为向用户呈现从远程服务器下载的或从高速缓存中检索的推荐。在各种实施例中,高速缓存是利用计算设备上的本地存储(例如,存储器)实现的,使得推荐可以被检索和显示而无需与远程服务器通信。在特定的实施例中,推荐客户端可以通过利用渲染引擎来执行,该渲染引擎能够用Java虚拟机执行web浏览器的渲染引擎功能。在几个实施例中,推荐客户端可以被实现为指令,该指令可以被编译为利用由应用平台应用的渲染引擎层提供的虚拟机执行。
在几个实施例中,推荐客户端可以发送推荐列表请求到推荐服务器。推荐服务器可以处理推荐列表请求并查询推荐数据库来根据至少一个推荐列表选择规则检索推荐列表。在某些实施例中,推荐列表请求包括对特定推荐列表的请求,连同关于提供该请求的计算设备的、可以被推荐服务器利用来查询、检索和返回合适推荐列表的附加信息。在各种实施例中,推荐列表请求可以包括关于做出该请求的计算设备的信息,诸如,但不限于,推荐客户端在其上执行的计算设备的地理位置和计算设备的型号或库存量单位标识符(StockKeepingUnit,SKU)。此外,可以提供对特定推荐列表的请求,诸如,但不限于,用于可以被应用平台应用(诸如被特定型号或SKU的计算设备)安装和运行的应用的推荐的推荐列表,或者用于特定产品或服务的推荐的推荐列表。在各种实施例中,除了对特定推荐列表(诸如但不限于,用于可以被特定硬件配置的计算设备安装和运行,或与计算设备上可用的输入设备的硬件配置或类型兼容的应用的推荐的推荐列表)的请求之外,推荐列表请求也可以包括关于做出该请求的、推荐客户端在其上执行的计算设备的硬件配置的信息,诸如但不限于,计算设备的硬件能力,包括特定类型输入设备的存在,其中输入设备诸如键盘、触摸屏和其它触觉输入设备、3D相机和其它运动跟踪设备、以及语音和音频识别设备。在各种实施例中,推荐列表请求还可以包括关于做出该请求的计算设备的物理方位的信息,诸如但不限于,计算设备的某些输入或输出设备是处于横向还是纵向模式,或者它们是平放还是直立。在其它实施例中,推荐列表请求还可以包括关于做出该请求的计算设备的某些输入或输出设备是否可用或在使用的信息,诸如但不限于,计算设备的键盘是否被连接、可用、被启用或在使用。在几个实施例中,推荐服务器可以利用推荐列表选择规则来处理推荐列表请求以返回一个或多个针对一类计算设备,或者针对计算设备的特定硬件配置、计算设备物理方位或计算设备上可用或被启用的特定输入或输出设备的推荐列表,使得推荐客户端可以利用推荐列表来提供关于推荐客户端在其上执行的计算设备、或硬件配置、或计算设备的物理方位、或计算设备上可用或被启用的输入或输出设备的相关推荐。
在许多实施例中,推荐列表是一组数据,其包括与至少一个推荐相关联的推荐资源。在某些实施例中,推荐列表未被优先级化并且不以任何优先级呈现与推荐关联的推荐资源。在特定的实施例中,推荐列表是利用用于为推荐客户端呈现相关推荐的推荐资源生成的,其中推荐客户端是在特定种类计算设备上执行的或者在具有特定硬件配置或物理方位的计算设备上执行的、或者在具有计算设备上可用或被启用的特定输入或输出设备的计算设备上执行的。推荐资源可以包括但不限于,可以被推荐客户端利用以生成优先级化的推荐列表的推荐选择资源(诸如,但不限于,关于特定推荐与计算设备硬件配置或物理方位的兼容性、或与计算设备上可用或被启用的输入或输出设备的兼容性、或对于特定推荐在用户中的履行率或流行程度的结果信息)、可以被推荐客户端利用来呈现推荐的推荐呈现资源(诸如,但不限于,用于构成所呈现推荐的图片、文本、视频数据和音频数据)、及由推荐客户端使用以有助于履行所接受推荐的推荐履行资源,诸如,但不限于,URL链接或用于推荐履行的访问码。在其中推荐是用于跨平台应用的某些实施例中,推荐选择资源可以包括关于跨平台应用的流行程度、跨平台应用是否收集使用费和从关于对跨平台应用的推荐的历史履行的结果信息中得到的统计的信息。推荐呈现资源可以包括可以在呈现对跨平台应用的推荐中显示的任何文本、图片、音频、视频、和任何其它内容。推荐履行资源可以包括当对跨平台应用的推荐被接受时可以被利用的URL。
在多个实施例中,推荐客户端可以按照至少一个推荐列表优先级规则根据从推荐服务器接收到的推荐列表生成优先级化的推荐列表。利用推荐列表优先级规则的推荐客户端可以执行任何过程来生成优先级化的推荐列表,包括,但不限于,通过过滤之前履行的推荐(或过滤不能与计算设备的硬件配置或物理方位或与在计算设备上可用或被启用的输入或输出设备兼容的推荐)并给每个剩余的推荐分配优先级。在某些实施例中,分配给推荐的优先级可以被随机化和/或基于与推荐相关联的推荐资源按照推荐列表优先级规则进行定期地更新。在特定的实施例中,推荐履行可以响应于经由在计算设备的计算环境内呈现的用户界面接收到指令而发生。推荐履行可以包括接受推荐、拒绝推荐和禁用推荐。但是,根据本发明的实施例,也可以利用与履行推荐有关的任何其它动作。在某些实施例中,每个剩余的推荐都通过利用与每个剩余推荐相关联的推荐资源(诸如,但不限于,推荐选择资源)按照推荐优先级规则被优先级化,以产生优先级化的推荐列表,诸如,但不限于,当根据在相关联的推荐选择资源中找到的信息被推荐客户端呈现时,优先级化具有较多数量的被履行的实例的推荐。
在许多实施例中,推荐客户端可以经由推荐客户端在其上执行的计算设备显示的用户界面按照至少一个推荐呈现规则向用户呈现来自优先级化的推荐列表中的推荐。推荐呈现规则可以指示如何呈现推荐,诸如,但不限于,在给定时间有多少推荐可以被呈现在用户界面中、呈现的推荐在用户界面上的配置和可以被呈现的推荐的类型。在某些实施例中,推荐客户端可以利用与推荐相关联的推荐呈现资源呈现来自优先级化的推荐列表中的推荐。推荐客户端可以通过利用具有各种解析器的应用平台应用的渲染引擎层和与支持的特定web技术相关联的虚拟机在用户界面中呈现推荐,其中支持的特定web技术包括,但不限于,HTML、JavaScript和CSS。在某些实施例中,每个呈现的推荐都被配置为当经由推荐客户端在其上执行的计算设备显示的用户界面接受和/或选择推荐时,利用与要被履行的推荐相关联的推荐履行资源来履行。
在各种实施例中,推荐客户端可以监视用户与呈现的推荐的交互来生成关于用户与呈现的推荐交互的结果信息。结果信息可以是与呈现的推荐的交互有关的任何信息,诸如,但不限于,特定推荐的履行和/或推荐的呈现频率。结果信息可以被发送到推荐服务器,推荐服务器配置为基于结果信息更新与推荐相关联的推荐选择资源。
在许多实施例中,推荐客户端由远程推荐服务器托管并且被下载到本地计算设备上用于执行。推荐客户端的最新版本可以被定期地或当发生由当前执行的推荐客户端(即,之前的版本)的逻辑确定的特定触发事件时从推荐服务器下载,推荐服务器将更新的可用性传送给当前执行的推荐客户端和/或应用平台应用。推荐客户端可以被本地存储在由用于跨平台应用的应用平台应用提供的或由跨平台应用提供的高速缓存内。在某些实施例中,刷新推荐客户端包括用由远程推荐服务器维护的推荐客户端的版本代替高速缓存的推荐客户端。
应当指出,本文描述的任何各种系统和过程都可以按顺序、按交替的顺序和/或并行地(例如在不同的计算设备上)执行,以便用更适于本发明特定应用要求的方式实现类似的结果。下面将进一步讨论根据本发明实施例的推荐客户端。
系统体系架构
根据本发明许多实施例的推荐客户端在连接到网络的计算设备上非原生地执行并且基于由推荐服务器生成和基于计算设备的特性、硬件配置或物理方位或基于在计算设备上可用或被启用的输入或输出设备呈现给推荐客户端的推荐在计算设备的计算环境内呈现推荐。推荐可以被推荐服务器和/或推荐客户端过滤以适于本发明特定实施例的要求。在几个实施例中,推荐客户端可以借鉴由推荐服务器提供的资源,诸如,但不限于,推荐列表和允许推荐客户端在计算设备的计算环境内显示的用户界面中呈现推荐的其它资源。在某些实施例中,推荐客户端被托管在推荐服务器上并且计算设备可以定期地检查更新和下载推荐客户端的当前版本。在几个实施例中,推荐服务器是推荐服务器系统的一部分,推荐服务器系统包括至少一个推荐服务器,其通过向推荐客户端提供推荐数据服务于推荐客户端,其中推荐客户端可以利用应用平台应用格式化推荐数据以供在计算设备的计算环境内显示。
图1示出了根据本发明实施例的示出利用推荐客户端配置的本地计算设备的网络示图。网络100包括通过诸如(但不限于)因特网的网络108连接到推荐服务器系统104的推荐服务器的多个本地计算设备102。本地计算设备也被配置为与一个或多个推荐履行服务器系统110通信。推荐客户端在由每个本地计算设备102上的操作系统创建的计算环境内执行。某些计算设备可以包括在由计算设备的计算环境内执行的应用平台应用(包括渲染引擎层和集成层)提供的运行时环境内执行的推荐客户端。应用平台应用的执行在每个本地计算设备102上创建了运行时环境,其中一个或多个推荐客户端可以被初始地从推荐服务器系统104的推荐服务器加载,以被高速缓存在计算设备上并且被执行。在许多实施例中,推荐客户端获得可以经计算设备102的计算环境内的用户界面来呈现的推荐数据。推荐数据可以识别推荐客户端可以响应于用户接受经计算设备102的计算环境内的用户界面显示的推荐而与其交互的推荐履行服务器系统110。在许多实施例中,推荐履行服务器系统是web服务器,从中推荐客户端可以请求与在URL中识别的网页相关联的文本文件,其中URL包含在接受的推荐的推荐数据内。在许多实施例中,推荐履行服务器系统是应用服务器,从中推荐客户端可以请求由URL识别的跨平台应用或原生应用,其中URL包含在接受的推荐的推荐数据内。虽然以上讨论了特定的推荐和推荐履行服务器系统,但是根据本发明的实施例,各种推荐中任意推荐都可以被推荐客户端显示和/或各种合适的推荐履行服务器系统都可以被用来履行显示的推荐。
在几个实施例中,推荐客户端可以利用由应用平台应用提供的运行时环境向用户提供推荐。在某些实施例中,跨平台应用是利用web技术实现的,web技术包括,但不限于,HTML、JavaScript和/或CSS。跨平台应用可以利用包含跨平台应用的所有逻辑的背景页来实现。背景页可以是可包括HTML、JavaScript和/或CSS的文本文件(相对于二进制可执行文件),该文本文件可以被应用平台应用的渲染引擎层以类似于其中当在计算设备上提供web应用时web浏览器应用的渲染引擎解析常规网页的方式来解析以实现其中包含的逻辑。除了背景页之外,跨平台应用还可以包括一个或多个弹出页,其类似于常规网页并且可以呈现给用户以实现用户界面、通知和/或推荐。应用平台应用实现在背景页内包含的逻辑以经由各种弹出页提供用户界面、通知和/或推荐。此外,由应用平台应用暴露的API可以允许背景页或弹出页内的逻辑修改和响应在用户界面处的交互。推荐客户端可以被集成在背景页的逻辑内,以利用由应用平台应用提供的功能生成呈现为弹出页的推荐。在特定的实施例中,推荐客户端可以被集成在弹出页的逻辑内,其中可以加载附加的弹出页以向用户呈现推荐。在某些实施例中,推荐客户端可以被集成在在web浏览器应用内运行的网页的逻辑内。在许多实施例中,推荐客户端可以被实现为可在跨平台应用的初始化时从远处推荐服务器动态加载的和/或从计算设备的高速缓存中连同跨平台应用的逻辑一起加载的JavaScript。推荐客户端也可以被托管在推荐服务器上并且推荐客户端可以被下载和在计算设备上存在的应用平台应用内非原生地执行。推荐客户端的下载可以基于由托管推荐服务器维护的推荐客户端的版本通过推荐客户端、跨平台应用或推荐服务器的逻辑来指示。在某些实施例中,推荐客户端也可以通过作为跨平台应用执行来利用由应用平台应用提供的运行时环境,其中该跨平台应用配置为向用户呈现推荐。在特定的实施例中,作为跨平台应用执行的推荐客户端可以被其它跨平台应用调用来呈现推荐。
图2A示出了根据本发明实施例的、其中推荐客户端可以作为跨平台应用的一部分执行的软件栈的概念性示图。软件栈包括跨平台应用202,它是利用与可用来实现web应用相同的技术创建的,包括但不限于,HTML、JavaScript和/或CSS。推荐客户端204可以作为跨平台应用202的一部分执行,以将推荐呈现为在由计算设备显示的用户界面中呈现的弹出页。跨平台应用202被包括渲染引擎层208和集成层210的应用平台应用206执行。应用平台应用206是至少部分原生实现的,使得它可以与由计算设备的操作系统212生成的计算环境集成,从而允许跨平台应用202与操作系统进程和/或其它原生实现的进程通信。
在几个实施例中,推荐客户端可以在应用平台应用的执行过程中被应用平台应用调用。应用平台应用可以通过应用平台应用的逻辑进行配置,以将来自推荐客户端的推荐呈现为由应用平台应用生成的用户界面的一部分。在某些实施例中,类似于跨平台应用的实现,由应用平台应用生成的用户界面可以利用web技术来实现,web技术包括,但不限于,HTML、JavaScript和/或CSS。图2B示出了根据本发明实施例的、其中推荐客户端可以作为应用平台应用的一部分执行的软件栈的概念性示图。软件栈包括为应用平台应用232实现用户界面的逻辑。推荐客户端236可以被集成到应用平台应用中,以在应用平台应用232的用户界面中呈现推荐。应用平台应用232包括渲染引擎层238和集成层240,其能够为跨平台应用提供运行时环境并且可以用来支持用于显示应用平台应用的用户界面的应用平台应用的逻辑。应用平台应用232可以是至少部分原生实现的,以被集成在由计算设备的操作系统242生成的计算环境内。此外,多个跨平台应用可以利用由应用平台应用232提供的运行时环境执行。
在许多实施例中,推荐客户端236使渲染引擎呈现推荐。推荐客户端可以利用web技术来实现,web技术诸如,但不限于,JavaScript,并且可以被集成在可包含HTML,JavaScript和/或CSS的文本文件内,使得渲染引擎可以以类似于当在计算设备上提供web应用时解析常规网页的方式解析文本文件以实现在文本文件内包含的逻辑。在某些实施例中,推荐客户端可以作为在常规web浏览器内运行的常规网页的文本的一部分执行。图2C示出了根据本发明实施例的、其中推荐客户端可以作为跨平台应用的一部分执行的软件栈的概念性示图。软件栈包括推荐客户端262,其可以通过利用在由计算设备的操作系统266生成的计算环境内集成的渲染引擎264在由计算设备显示的用户界面内呈现推荐。
虽然以上讨论了利用推荐客户端在应用平台应用内呈现推荐的特定系统,但是根据本发明的实施例,使用推荐客户端在应用平台应用内呈现推荐的系统可以以任何适于特定应用要求的方式来实现。下面将描述根据本发明实施例的用于利用推荐客户端呈现推荐的过程。
推荐的呈现
根据本发明许多实施例的推荐客户端可以执行各种过程以在由计算设备显示的用户界面上提供推荐的呈现。在几个实施例中,推荐客户端被配置为向推荐服务器发送推荐列表请求。推荐列表请求包括对来自推荐服务器的推荐列表的请求连同关于做出该请求的计算设备的、可以被推荐服务器利用来查询、检索和返回合适推荐列表的信息。推荐列表请求可以包括对特定推荐列表的请求连同关于做出该请求的计算设备的信息,诸如但不限于,推荐客户端在其上执行的计算设备的地理位置、硬件配置和物理方位、推荐客户端在其上执行的计算设备上可用或被启用的特定输入或输出设备、请求的推荐列表的类型、关于计算设备上运行的软件的信息和具有为计算设备优化或优选的推荐的推荐列表的类型、计算设备的硬件配置或物理方位、或在计算设备上可用或被启用的特定输入或输出设备。在各种实施例中,配置信息识别与推荐设备相关联的计算设备的种类。计算设备的种类可以包括描述计算设备的硬件能力的信息,诸如屏幕分辨率、屏幕方位、可用的输入设备(鼠标、键盘、相机、触摸传感器、陀螺仪、高度计、诸如全球定位系统(GPS)接收器的位置感测设备、相机组,等等)、操作系统版本、总存储、可用存储、及在计算设备上安装的适于本发明特定实施例要求的任何其它硬件设备或软件。推荐服务器可以按照将推荐服务器配置为处理在推荐列表请求内提供的信息的至少一个推荐列表选择规则处理推荐列表请求以查询推荐数据库来检索推荐列表。在几个实施例中,推荐服务器可以利用推荐列表选择规则来处理推荐列表请求以返回针对一类计算设备、计算设备的硬件配置或物理方位、或在计算设备上可用或被启用的特定输入或输出设备的推荐列表,使得推荐客户端可以利用推荐列表来提供关于推荐客户端在其上执行的计算设备的种类、计算设备的硬件配置或物理方位、或在计算设备上可用或被启用的特定输入或输出设备的相关推荐。在几个实施例中,识别计算设备的用户的信息可以被用来裁剪给特定用户的推荐列表。这种用户信息可以包括人类统计信息、位置信息、关于之前推荐的应用的信息、关于由用户所获得的、安装的和/或卸载的应用的信息、及与用户相关联的计算设备连同适于本发明特定实施例要求的任何其它用户信息。
在许多实施例中,推荐列表是一组数据,其包括与至少一个推荐相关联的推荐资源。推荐列表可以存储在对处理推荐列表请求的推荐服务器可以访问的推荐数据库中。从推荐列表请求得到的元数据可以被用来识别推荐列表。推荐服务器可以利用元数据来查询和检索(或以其它方式生成)合适的推荐列表。推荐列表可以从推荐服务器发送到提供该推荐列表请求的推荐客户端。在某些实施例中,推荐列表未被优先级化并且不以任何优先级次序呈现与推荐关联的推荐资源。由此,推荐客户端可以按照至少一个推荐列表优先级规则对推荐列表进行优先级化以产生优先级化的推荐列表。推荐列表优先级规则可以以各种方式指示推荐客户端生成优先级化的推荐列表,包括但不限于,通过过滤掉履行的推荐并按照推荐选择资源向每个剩余的推荐分配优先级(诸如,但不限于,当被推荐客户端呈现时,给具有较多数量被履行的实例的推荐较高的优先级)。在许多实施例中,不同的推荐客户端可以应用适于执行推荐客户端的特定计算设备和/或计算设备的用户的不同的推荐列表优先级规则。在几个实施例中,由推荐客户端呈现的推荐以随机的方式进行选择,诸如(但不限于),利用加权随机化算法,其中权重是基于包括(但不限于)相关性的因素来应用的。推荐列表可以包括与至少一个推荐相关联的推荐资源,包括但不限于,可以被推荐客户端利用来生成优先级化的推荐列表的推荐选择资源、可以被推荐客户端利用来呈现推荐的推荐呈现资源和被推荐客户端使用以有助于履行接受的推荐的推荐履行资源。推荐选择资源可以包括可以被推荐客户端在根据至少一个推荐列表优选级规则优先级化推荐时利用的任何资源,诸如但不限于,由推荐客户端基于与呈现的推荐的交互生成的结果信息、对推荐的流行程度的评分、与推荐有关的识别信息(诸如,但不限于,应用是否具有某个识别码)、推荐与计算设备的硬件配置或物理方位的兼容性、推荐与在计算设备上可用或被启用的输入或输出设备的兼容性、及推荐是否要求对所推荐产品的履行收费。推荐呈现资源可以包括任何呈现资源,诸如,但不限于,可以用来构成呈现的推荐的图片、文本、视频、音频和/或脚本。推荐履行资源可以包括可以被用来履行接受的推荐的任何资源,诸如,但不限于,URL链接和/或可用来检索接受的推荐的访问码。在其中推荐是用于产品(诸如,但不限于,可以通过网络购买的应用或物理对象)的某些实施例中,推荐选择资源可以包括关于产品的流行程度、产品是否收取使用费、及从关于对那个产品的推荐的历史履行的结果信息得到的统计的信息。推荐呈现资源可以包括可以在对该产品的推荐的呈现中显示的任何文本和图片。推荐履行资源可以包括当对该产品的推荐被接受时可以被利用的URL。
虽然以上讨论了用于检索推荐列表的推荐客户端的各种配置,但是,根据本发明的实施例,推荐客户端可以被配置为以适于特定应用要求的任何方式检索推荐列表。下面将根据本发明实施例描述生成优先级化的推荐列表。
生成优先级化的推荐列表
在许多实施例中,优先级化的推荐列表是其中推荐已按照至少一个推荐列表优先级规则被分配优先级的推荐列表,该至少一个推荐列表优先级规则可以被推荐客户端在选择一个或多个推荐用于呈现时利用。在某些实施例中,优先级化的推荐列表中的优先级可以利用至少一个推荐呈现规则进行解释,使得具有较高优先级的推荐首先被呈现,并且具有较低优先级的推荐在具有较高优先级的推荐被呈现之后呈现。
在许多实施例中,推荐客户端可以按照至少一个推荐列表优先级规则根据从推荐服务器接收到的推荐列表生成优先级化的推荐列表。利用推荐列表优先级规则的推荐客户端可以执行任何过程来生成优先级化的推荐列表,包括,但不限于,通过过滤由计算设备履行的、与计算设备的硬件配置或物理方位不兼容的、或与计算设备上可用或被启用的输入或输出设备不兼容的推荐,并给每个剩余的推荐分配优先级。每个剩余的推荐都可以通过利用与每个剩余推荐相关联的推荐资源按照推荐优先级规则被优先级化以生成优先级化的推荐列表。在某些实施例中,推荐优先级规则可以给具有如由推荐选择资源确定的特定特性的推荐较高的优先级,诸如,但不限于,当被推荐客户端呈现时,优先级化具有较多数量被履行的实例的推荐。在特定的实施例中,推荐优先级规则可以在生成优先级化的推荐列表时在为推荐确定优先级时考虑任何推荐资源,诸如,但不限于,与推荐呈现资源(诸如,但不限于,基于推荐的呈现为特定的推荐分配优先级)和/或与推荐履行资源(诸如,但不限于,为免费产品的推荐分配优先级)相结合的推荐选择资源。在各种实施例中,分配给推荐的优先级可以被随机化和/或基于与推荐相关联的推荐资源按照推荐列表优先级规则被定期地更新。图3示出了根据本发明实施例的用于生成优先级化的推荐列表的过程的流程图。过程300包括在推荐客户端处从推荐服务器接收(302)推荐列表。之前已被推荐客户端履行的推荐从推荐列表中被过滤掉(304),剩余的推荐按照至少一个推荐列表优先级规则被优先级化(306)。
在许多实施例中,推荐客户端可以利用由渲染引擎提供的资源经由推荐客户端在其上执行的计算设备显示的用户界面按照至少一个推荐呈现规则向用户呈现来自优先级化的推荐列表的推荐。推荐呈现规则可以指示推荐如何被呈现,诸如,但不限于,分配给呈现的推荐的优先级水平,在给定时间有多少推荐可以被呈现在用户界面中、呈现的推荐在用户界面上的配置和可以被呈现的推荐的类型。在某些实施例中,推荐客户端可以利用与推荐相关联的推荐呈现资源呈现来自优先级化的推荐列表中的推荐。在特定的实施例中,推荐客户端可以通过利用具有各种解析器的应用平台应用的渲染引擎层和与支持的特定web技术相关联的虚拟机在用户界面中呈现推荐,其中支持的特定web技术包括,但不限于,HTML、JavaScript和CSS。在许多实施例中,每个呈现的推荐都被配置为当经由推荐客户端在其上执行的计算设备显示的用户界面接受和/或选择推荐时,利用与要被履行的推荐相关联的推荐履行资源来履行。
虽然以上讨论了用于呈现来自优先级化的推荐列表中的推荐的推荐客户端的各种配置,但是根据本发明的实施例,推荐客户端可以被配置为以适于特定应用要求的任何方式呈现来自优先级化的推荐列表中的推荐。下面将描述根据本发明实施例的结果信息生成。
生成结果信息
在多个实施例中,结果信息可以通过监视用户与呈现的推荐的交互从推荐客户端来生成。结果信息可以是与呈现的推荐的交互有关的任何信息,诸如,但不限于,特定推荐的履行、推荐的多种表达(例如呈现),和/或推荐的呈现频率。结果信息也可以包括对生成推荐选择资源有用的信息,诸如,但不限于,特定接受的推荐的地理位置、接受的推荐是免费还是需要费用来使用、与呈现的推荐相关联的呈现ID、和/或关于其上呈现推荐的计算设备的信息,包括特定接受的推荐的计算设备的硬件配置或物理方位。结果信息可以被发送到配置为基于结果信息更新推荐选择资源的推荐服务器。
图4示出了根据本发明实施例的用于利用推荐客户端生成结果信息的过程的流程图。过程400包括利用推荐呈现资源并按照至少一个推荐呈现规则利用推荐客户端呈现(402)推荐。可以做出关于呈现的推荐是否被接受的决定(404)。呈现的推荐可以通过利用由计算设备提供的用户界面以任何方式被接受,包括但不限于,在呈现推荐的用户界面上确认性选择接受或安装按钮。如果呈现的推荐被接受或安装,则被接受或安装的推荐可以利用推荐履行资源来履行(406)并且关于所接受的推荐的结果信息可以被记录。如果呈现的推荐未被接受或安装,则关于与呈现的推荐交互的结果信息可以被记录(408)。结果信息可以被发送(410)到推荐服务器来更新推荐选择资源。
虽然以上讨论了用于生成结果信息的推荐客户端的各种配置,但是根据本发明的实施例,推荐客户端可以被配置为以适于特定应用要求的任何方式生成结果信息。下面将描述根据本发明实施例的、在推荐服务器上托管的用于在计算设备上下载并在应用平台应用内非原生执行的推荐客户端的各方面。
托管的推荐客户端
在许多实施例中,尽管推荐客户端在本地计算设备上执行,但是是被远程推荐服务器通过网络托管的。推荐客户端可以在计算设备上被刷新到存储在推荐服务器上的推荐客户端的版本。推荐客户端可以以任何方式被下载,包括但不限于,被定期地下载和/或当发生由推荐客户端、托管推荐客户端的远程服务器、应用平台应用、跨平台应用或推荐客户端在其内运行的网页的逻辑确定的特定触发事件时。推荐客户端可以本地存储在计算设备上的高速缓存内,同时被远程推荐服务器托管,以利用从托管推荐客户端的远程推荐服务器接收到的资源进行下载。在某些实施例中,下载推荐客户端包括用由托管推荐客户端的远程推荐服务器维护的推荐客户端的版本代替高速缓存的推荐客户端。
图5示出了根据本发明实施例的用于呈现推荐的过程的流程图。过程500包括推荐客户端发送(502)推荐列表请求。在许多实施例中,推荐列表请求包括发送到推荐服务器的推荐列表请求数据。推荐客户端可以从推荐服务器接收(504)推荐列表并利用接收到的推荐列表和从推荐服务器接收到的相关联的推荐资源按照至少一个推荐列表优先级规则生成(506)优先级化的推荐列表。推荐客户端可以利用与优先级化的推荐列表内的推荐相关联的推荐呈现资源按照至少一个推荐呈现规则呈现(508)推荐。关于与呈现的推荐交互的结果信息可以由推荐客户端生成(510)并且发送到推荐服务器来更新推荐选择资源。推荐客户端也可以被配置为通过下载在推荐服务器上托管的推荐客户端的更新版本来刷新(512)自身。
图6示出了根据本发明实施例的用于响应于接收到推荐列表请求而返回推荐列表的过程的流程图。过程600包括在推荐服务器从推荐客户端接收(602)结果信息。接收到的结果信息可以被用来更新(604)推荐选择资源。推荐服务器可以从推荐客户端接收(606)推荐列表请求。推荐列表请求可以按照利用包含在推荐列表请求中的、关于做出该请求的计算设备的信息的至少一个推荐列表选择规则进行处理(608),以从推荐数据库中查询和检索(610)合适的推荐列表。在几个实施例中,推荐服务器可以利用推荐列表选择规则来处理推荐列表请求以返回针对一类计算设备的推荐列表,使得推荐客户端可以利用该推荐列表来提供关于推荐客户端在其上执行的计算设备的相关推荐。推荐列表可以被返回(612)到将推荐列表请求发送给推荐服务器的推荐客户端。
虽然以上讨论了在推荐服务器上托管的并且可以被下载以供在计算设备上执行的推荐客户端的各种配置,但是根据本发明的实施例,推荐客户端可以被配置为以适于特定应用要求的任何方式呈现推荐。下面将描述根据本发明实施例的利用推荐客户端在由计算设备显示的用户界面中呈现推荐。
用户界面
根据本发明许多实施例的推荐客户端可以在计算设备的计算环境内显示的用户界面中呈现推荐。推荐客户端可以以任何配置和在计算环境内的任何位置呈现推荐,诸如,但不限于,在分配给跨平台应用、应用平台应用的用户界面的一部分内和/或在利用web浏览器打开的网页的窗口内。
图7中示出了根据本发明实施例概念性地示出在由Redmond,Washington的微软公司发布的Windows8操作系统创建的计算环境内,在由应用平台应用生成的用户界面内被渲染的来自推荐客户端的推荐的屏幕截图。屏幕截图700示出了为计算设备702带到用户界面前台的应用平台应用的用户界面704。应用平台应用704的用户界面包括其中推荐被呈现并接受的部分706。图8中概念性地示出了利用在web浏览器应用内执行的推荐客户端显示推荐。屏幕截图800概念性地示出了呈现网页的web浏览器的用户界面802。以网页为特征的web浏览器的用户界面包括其中呈现推荐的部分804。在许多实施例中,当推荐客户端利用web技术或任何其它跨平台技术实现时,实现相同逻辑的推荐客户端可以在跨平台应用内执行和利用web浏览器执行来向用户呈现相同的推荐。
虽然以上讨论了其中推荐可以被推荐客户端呈现的用户界面,但是根据本发明的实施例,推荐客户端可以以适于特定应用要求的任何方式利用任何用户界面来呈现推荐。下面将描述根据本发明实施例的应用平台应用的具体实现。
应用平台应用
在几个实施例中,能够在由应用平台应用提供的运行时环境内执行的应用包括利用web技术实现的跨平台应用,其中web技术包括但不限于,HTML、JavaScript和/或CSS。能够为跨平台应用提供运行时环境的应用平台应用可以利用渲染引擎层和集成层的组合来实现。渲染引擎层能够执行web浏览器的渲染引擎的所有功能,从而允许利用web技术实现的跨平台应用的执行方式类似于其中原生应用在计算环境内执行的方式,即,无需启动web浏览器应用来执行跨平台应用。在多个实施例中,渲染引擎层包括各种解析器和与支持的特定web技术相关联的虚拟机,支持的特定web技术包括但不限于,HTML、JavaScript和CSS。应用平台应用的渲染引擎层可以以类似于其中web浏览器的渲染引擎促进web应用的执行的方式解释跨平台应用。实际上,本发明的许多实施例利用为在web浏览器中使用而开发的渲染引擎的修改版本。例如,根据本发明的实施例,WebKit或WebKit2渲染引擎的修改版本可以用来实现渲染引擎层。在多个实施例中,应用平台应用包括脚本语言的指令,其使得在远程推荐服务器上托管的推荐客户端被下载或者在本地高速缓存的推荐服务器被加载到存储器中。在几个实施例中,推荐客户端包括用可以在应用平台应用的渲染引擎进程内被执行的脚本语言实现的逻辑。在几个实施例中,推荐客户端从推荐服务器中检索推荐数据并利用以上所述的任何技术过滤推荐数据。推荐数据然后可以提供给应用平台应用,应用平台应用可以将数据格式化到用户界面模板中以供被渲染引擎进程在计算设备的计算环境内呈现。在许多实施例,以跨平台方式实现推荐客户端允许推荐客户端从应用平台应用内、跨平台应用内和/或由web浏览器应用渲染的网页内进行加载。下面将进一步讨论跨平台应用和其中跨平台应用可以结合对推荐客户端的调用的方式。
不以web应用通常局限于特定web浏览器实例的方式限制跨平台应用。集成层有助于跨平台应用与计算环境的集成和与原生实现的进程的通信,以提供包括(但不限于)桌面启动点和基于由跨平台应用从远程服务器推送的数据在计算环境内提醒的功能。在许多实施例中,集成层用于允许利用web技术开发的跨平台应用在计算环境内表现为就好像它是常规的桌面应用一样。在几个实施例中,集成层暴露了多个可以被跨平台应用调用以对计算环境做出修改的API,包括允许跨平台应用向应用平台应用提供应用平台应用可用来呈现提醒的信息的API。在几个实施例中,集成层API是JavaScriptAPI,其可以被运行在由应用平台应用创建的应用运行时环境内的各种跨平台应用调用。响应于API调用,集成层可以与操作系统和/或原生实现的进程通信以从计算环境中检索信息和修改计算环境。在几个实施例中,操作系统提供有助于本地文件系统搜索和/或浏览的API。
在许多实施例中,应用平台应用通过暴露多个可以被调用的API允许将跨平台应用集成到用户设备的计算环境中,以对计算环境做出修改和/或与操作系统进程(或其它原生进程)通信。在个人计算机的情况下,计算环境可以包括在个人计算机上安装的、允许跨平台应用修改桌面计算环境的应用平台应用。应用平台应用也可以被实现用于安装在其它种类的设备上,诸如(但不限于)移动电话、平板计算机、游戏控制台、连接到互联网的电视机和/或不使用桌面计算环境的消费电子设备。
在许多实施例中,每个跨平台应用都是连续活动的(例如,运行在计算环境的后台中)并且当应用平台应用在运行时可以自动地(即按需)经由诸如互联网的网络与远程服务器通信以获得用于提醒的附加信息。利用与由应用平台应用提供的计算环境的集成,跨平台应用可以基于从远程服务器检索到的信息和/或利用与跨平台应用集成的推荐客户端的推荐连续地提供提醒。以这种方式,跨平台应用可以用来将web应用和web服务扩展到计算环境。此外,跨平台应用可以包括脚本语言的指令,其使得在由应用平台应用创建的运行时环境内执行推荐客户端。在许多实施例中,跨平台应用内的指令使得从远程推荐服务器中下载推荐客户端或者将推荐客户端从计算设备上维护的高速缓存中加载到存储器中。推荐客户端本身可以利用与用来实现跨平台应用相同的脚本语言来实现。
桌面计算环境通常包括桌面快捷方式、收藏夹、任务栏图标和/或开始菜单,其有助于,包括但不限于,桌面应用的启动和由桌面应用提供提醒的功能。在许多实施例中,应用平台应用允许跨平台应用在计算环境内表现为就好像它是常规原生实现的桌面应用一样。例如,应用平台应用可以为跨平台应用提供要包括在计算环境的任务栏和/或开始菜单中的图标。应用平台应用也可以向图标应用徽标或提醒。在许多实施例中,应用平台应用还允许跨平台应用创建桌面快捷方式来启动跨平台应用、利用集成的应用客户端呈现推荐和可以为提供跨平台应用的跨平台应用或与跨平台应用相关联的、要与特定文件类型相关联的web应用提供壳(shell)支持。在几个实施例中,由于应用平台应用提供通过其跨平台应用可以与操作系统和/或其它原生实现的进程通信的机制,因此跨平台应用能够表现为就好像它是常规原生实现的桌面应用一样。如上所述,应用平台应用还可以在由应用平台应用生成的用户界面内为原生实现的应用提供启动点。
在各种实施例中,当跨平台应用利用与用来实现web应用相同的技术来实现时,跨平台应用可以利用包含跨平台应用所有逻辑的背景页来实现。如同常规的网页,背景页是文本文件(相对于二进制可执行文件),其可以包括应用平台应用的渲染引擎层解析以实现其中包含的逻辑的HTML、JavaScript和/或CSS。在各种实施例中,该过程执行的方式类似于其中当在用户设备上渲染web应用时web浏览器应用的渲染引擎解析常规网页的方式。在某些实施例中,发起执行推荐客户端的指令可以在跨平台应用的背景页内提供以在跨平台应用的执行过程中向用户提供推荐。
除了背景页之外,跨平台应用还可以包括一个或多个弹出页,其类似于常规网页并且可以被呈现给用户来实现提醒和/或用户界面。在许多实施例中,跨平台应用包括存储在计算设备上的背景页和至少一个弹出页。应用平台应用实现在背景页内包含的逻辑并且可以经各种弹出页提供用户界面和/或提醒。在几个实施例中,背景页从远程服务器系统检索信息并且响应于检索到的信息通过对应用平台应用的API调用生成提醒。在许多实施例中,跨平台应用向应用平台应用提供的内容包括(但不限于)音频、视频、图像和/或文本,应用平台应用使用该内容来生成提醒弹出页。在几个实施例中,跨平台应用提供应用平台应用使用以确定其中用户可以与提醒弹出页交互的方式的诸如(但不限于)JavaScript的脚本语言的指令。在各种实施例中,虽然用户交互包括响应鼠标悬停和/或选择,但是可以使用适于本发明特定实施例要求的任何用户交互。在几个实施例中,本地存储的弹出页和/或根据从远程服务器检索到的内容检索或得出的弹出页内的脚本语言指令可以用来发起推荐客户端的执行并在由弹出页创建的用户界面内显示推荐。在许多实施例中,指令使得从推荐服务器下载推荐客户端或从本地存储的高速缓存中将推荐客户端加载到存储器中。由应用平台应用暴露的API在背景页和/或弹出页内呈现逻辑,以修改和响应与启动点的交互,启动点诸如(但不限于)在计算环境内的图标。例如,这些API可以允许与跨平台应用相关联的任何页通过响应来自用户在跨平台应用的图标上的悬停或点击的提醒请求而通过呈现与那个跨平台应用相关联的最近提醒或跨所有应用的特定提醒来提供提醒。类似地,这些API可以允许与跨平台应用相关联的任何页通过响应来自用户在用于接受或安装推荐的图标上的悬停或点击的交互来履行呈现的推荐。
虽然与跨平台应用相关联的每个页面都被应用平台应用独立地进行处理并且不一定共享文档对象模型(DOM)或JavaScript上下文,但是这些页可以利用包括在应用平台应用API中的远程过程调用(RPC)方法彼此通信并利用统一的本地存储共享数据。这使得减少了重复的数据传送和处理,并且可以用来通过高速缓存数据增强跨平台应用的性能。
虽然以上讨论了支持跨平台推荐客户端的执行以识别用于经计算设备的计算环境内的用户界面显示的相关推荐数据的应用平台应用的特定实现,但是应用平台应用可以以适于本发明实施例中特定应用的任何方式进行配置。
虽然本发明已在某些特定方面进行了描述,但是对本领域技术人员来说,许多其它的修改和变化将是显而易见的。因此,应当理解,在不背离本发明范围和精神的情况下,本发明可以以不同于特定描述的方式来实践。因此,本发明的实施例在所有方面都应当被认为是说明性的而不是限制性的。因此,本发明的范围不应当由图示的实施例来确定,而是由所附权利要求及其等效物来确定。

Claims (1)

1.一种用于呈现推荐应用的方法,包括:
利用推荐客户端发送应用推荐请求数据,其中应用推荐请求数据包括描述对应于推荐客户端的计算设备的种类的元数据;
利用推荐客户端基于所发送的应用推荐请求数据获得应用推荐数据,其中应用推荐数据包括对至少一个被托管应用的引用;
利用推荐客户端在由推荐客户端的操作系统生成的计算环境内呈现应用推荐数据,其中推荐客户端被配置为利用包含集成层和渲染层的应用平台应用呈现应用数据;
利用推荐客户端接收交互数据,所述交互数据指示与应用推荐数据的至少一个交互;
利用推荐客户端基于接收到的交互数据记录结果信息;及
利用推荐客户端发送记录的结果信息。
CN201480017347.5A 2013-02-21 2014-02-21 用于集成的推荐的系统和方法 Active CN105051686B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361767535P 2013-02-21 2013-02-21
US61/767,535 2013-02-21
PCT/US2014/017806 WO2014130875A1 (en) 2013-02-21 2014-02-21 Systems and methods for integrated recommendations

Publications (2)

Publication Number Publication Date
CN105051686A true CN105051686A (zh) 2015-11-11
CN105051686B CN105051686B (zh) 2019-07-05

Family

ID=51351974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480017347.5A Active CN105051686B (zh) 2013-02-21 2014-02-21 用于集成的推荐的系统和方法

Country Status (6)

Country Link
US (2) US20140236756A1 (zh)
EP (2) EP2959381A4 (zh)
CN (1) CN105051686B (zh)
HK (1) HK1218968A1 (zh)
IL (1) IL240621A0 (zh)
WO (1) WO2014130875A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106303604A (zh) * 2016-08-15 2017-01-04 深圳Tcl数字技术有限公司 智能电视的游戏应用推送方法及装置
CN107861666A (zh) * 2017-11-24 2018-03-30 北京小米移动软件有限公司 桌面应用安装方法及装置
US10084878B2 (en) 2013-12-31 2018-09-25 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10430502B2 (en) 2012-08-28 2019-10-01 Sweetlabs, Inc. Systems and methods for hosted applications
US11256491B2 (en) 2010-06-18 2022-02-22 Sweetlabs, Inc. System and methods for integration of an application runtime environment into a user computing environment
CN114247138A (zh) * 2022-02-25 2022-03-29 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备及存储介质
CN116302366A (zh) * 2023-05-26 2023-06-23 阿里巴巴(中国)有限公司 面向终端开发的xr应用开发系统与方法、设备及介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
US11538005B2 (en) * 2013-12-16 2022-12-27 Mx Technologies, Inc. Long string pattern matching of aggregated account data
US9753990B2 (en) * 2014-03-28 2017-09-05 Microsoft Technology Licensing, Llc Building user trust in profile creation and recommendations based on managed interaction with user
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
IN2015CH01317A (zh) * 2015-03-18 2015-04-10 Wipro Ltd
WO2017056194A1 (ja) * 2015-09-29 2017-04-06 株式会社 東芝 情報機器または情報通信端末および、情報処理方法
CN105828122A (zh) * 2016-03-28 2016-08-03 乐视控股(北京)有限公司 一种视频信息的获取方法及装置
US10629089B2 (en) 2017-05-10 2020-04-21 International Business Machines Corporation Adaptive presentation of educational content via templates
WO2019072194A1 (en) * 2017-10-13 2019-04-18 Midea Group Co., Ltd. METHOD AND SYSTEM FOR PROVIDING PERSONALIZED INFORMATION EXCHANGE ON SITE
US11170067B2 (en) * 2017-12-13 2021-11-09 Google Llc Methods, systems, and media for updating a webpage rendered with cached content
US11044077B2 (en) * 2018-09-25 2021-06-22 Mcafee, Llc Modifiable client-side encrypted data in the cloud
CN109800359B (zh) * 2018-12-20 2021-08-17 北京百度网讯科技有限公司 信息推荐处理方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100233996A1 (en) * 2009-03-16 2010-09-16 Scott Herz Capability model for mobile devices
US20110314389A1 (en) * 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US20120084292A1 (en) * 2010-09-15 2012-04-05 Jisheng Liang Recommending mobile device activities
CN102567511A (zh) * 2011-12-27 2012-07-11 奇智软件(北京)有限公司 一种应用自动推荐的方法及装置
CN102685565A (zh) * 2012-05-18 2012-09-19 合一网络技术(北京)有限公司 一种点击反馈式个性化推荐系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110185354A1 (en) * 2010-01-26 2011-07-28 Emdigo Inc. Mobile Application Delivery Management System
US8140570B2 (en) * 2010-03-11 2012-03-20 Apple Inc. Automatic discovery of metadata
US8396759B2 (en) * 2010-06-18 2013-03-12 Google Inc. Context-influenced application recommendations
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
WO2012154838A2 (en) * 2011-05-09 2012-11-15 Google Inc. Generating application recommendations based on user installed applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100233996A1 (en) * 2009-03-16 2010-09-16 Scott Herz Capability model for mobile devices
US20110314389A1 (en) * 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US20120084292A1 (en) * 2010-09-15 2012-04-05 Jisheng Liang Recommending mobile device activities
CN102567511A (zh) * 2011-12-27 2012-07-11 奇智软件(北京)有限公司 一种应用自动推荐的方法及装置
CN102685565A (zh) * 2012-05-18 2012-09-19 合一网络技术(北京)有限公司 一种点击反馈式个性化推荐系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256491B2 (en) 2010-06-18 2022-02-22 Sweetlabs, Inc. System and methods for integration of an application runtime environment into a user computing environment
US11829186B2 (en) 2010-06-18 2023-11-28 Sweetlabs, Inc. System and methods for integration of an application runtime environment into a user computing environment
US10430502B2 (en) 2012-08-28 2019-10-01 Sweetlabs, Inc. Systems and methods for hosted applications
US11010538B2 (en) 2012-08-28 2021-05-18 Sweetlabs, Inc. Systems and methods for hosted applications
US11347826B2 (en) 2012-08-28 2022-05-31 Sweetlabs, Inc. Systems and methods for hosted applications
US11741183B2 (en) 2012-08-28 2023-08-29 Sweetlabs, Inc. Systems and methods for hosted applications
US10084878B2 (en) 2013-12-31 2018-09-25 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
CN106303604A (zh) * 2016-08-15 2017-01-04 深圳Tcl数字技术有限公司 智能电视的游戏应用推送方法及装置
CN107861666B (zh) * 2017-11-24 2020-09-01 北京小米移动软件有限公司 桌面应用安装方法及装置
CN107861666A (zh) * 2017-11-24 2018-03-30 北京小米移动软件有限公司 桌面应用安装方法及装置
CN114247138A (zh) * 2022-02-25 2022-03-29 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备及存储介质
CN116302366A (zh) * 2023-05-26 2023-06-23 阿里巴巴(中国)有限公司 面向终端开发的xr应用开发系统与方法、设备及介质
CN116302366B (zh) * 2023-05-26 2023-10-20 阿里巴巴(中国)有限公司 面向终端开发的xr应用开发系统与方法、设备及介质

Also Published As

Publication number Publication date
EP2959381A4 (en) 2016-09-14
WO2014130875A1 (en) 2014-08-28
US20200020019A1 (en) 2020-01-16
HK1218968A1 (zh) 2017-03-17
CN105051686B (zh) 2019-07-05
EP3742378A1 (en) 2020-11-25
EP2959381A1 (en) 2015-12-30
US20140236756A1 (en) 2014-08-21
IL240621A0 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
CN105051686A (zh) 用于集成的推荐的系统和方法
US10091628B2 (en) Message based application state and card sharing methods for user devices
US8775917B2 (en) Systems and methods for alert management
EP2815311B1 (en) Using an application cache to update resources of installed applications
CN101176079B (zh) 在服务器和客户机之间分配计算的方法以及分布式计算机系统
TWI450107B (zh) 用於網路資料使用平臺之方法及電腦可讀儲存媒體
US20110258575A1 (en) Displaying large datasets in a browser environment
CN103685528A (zh) 信息展示方法和装置
US10084878B2 (en) Systems and methods for hosted application marketplaces
US8856685B2 (en) Method and system for providing web content on a mobile device
CN102971705A (zh) 包括多个体验模块的应用
US8775554B2 (en) Cloud-based web page applications for extending functionality
CN107408065B (zh) 监视应用加载
US20120226676A1 (en) System and methods thereof for adaptation of a free text query to a customized query set
CN105453077A (zh) 用于应用启动的搜索结果上下文
US20160124614A1 (en) Content delivery based on real-time browsing activity
US10809956B1 (en) Supplemental content items
CN108319474B (zh) 一种页面信息生成方法、装置和设备
CN104919448A (zh) 用于显示数字版本的设备、方法和系统
US10725797B2 (en) Service-driven dynamic user interface technology
US10956529B1 (en) Content presentation
US10452222B2 (en) Coordination of system readiness tasks
US11438402B2 (en) Systems and methods for providing a web application to a computing device
WO2015100455A1 (en) Dynamically sharing intents
CN115905742A (zh) 一种数据展示方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant