减少时延的制作方法

文档序号:11181538阅读:462来源:国知局
减少时延的制造方法与工艺



背景技术:

互联网促进全球的用户之间的信息和事务的交换。这种信息交换使得数据提供者向各种用户提供数据。可以响应于从客户端设备接收的多个请求提供数据。然而,每一请求要求计算资源的使用(例如,服务器和存储器存储设备)以及网络资源(例如,路由器、交换机和网络带宽)以用所请求的数据进行响应。此外,每一请求花费数据提供者一定时间来识别适当的数据并且通过网络将数据发送给客户端设备。



技术实现要素:

本说明书描述与减少网络通信和数据呈现中的时延有关的技术。

通常,本说明书中描述的主题的一个创新方面可以体现在方法中,所述方法包括动作:基于通过给定用户的客户端设备提交的数据,将给定用户认证为给定在线账户的授权用户;响应于认证,对给定用户发起将与账户有关的数据呈现给用户的用户会话,账户可由具有访问账户的证书的多个用户访问;基于(i)在先前用户会话期间给定用户与账户的用户界面中呈现的用户界面元素的交互和其他用户与用户界面元素的其他交互之间的相似度或(ii)在先前用户会话期间给定用户请求的至少一种数据类型与由其他用户请求的至少一种数据类型之间的相似度,来识别给定用户被指派到的用户组;基于给定用户被指派到的用户组,选择与账户有关的第一数据集,所述第一数据集是至少基于(i)在先前用户会话期间由给定用户请求的数据类型和(ii)先前用户会话期间给定用户交互的用户界面元素来选择的;基于由用户组中除所述给定用户外的至少一个用户先前请求的数据类型,选择与账户有关的第二数据集;更新用于账户的用户界面以在用于账户的初始账户视图中呈现第一数据集的至少一部分,初始账户视图呈现被组合成单一呈现并且提供账户的概览的多个不同类型的数据;以及当在所述客户端设备处呈现所述第一数据集或第二数据集的附加部分时,通过在从客户端设备接收对第二数据集的请求前向客户端设备提供第二数据集,减少更新用于账户的用户界面的时延,其中第二数据集被高速缓存在客户端设备处并且在初始账户视图中不呈现。所述方面的其他实施例包括对应的系统、装置和计算机程序,其被配置成执行编码在计算机存储设备上的方法的动作。

这些和其他实施例能分别可选地包括下述特征中的一个或多个。在一些方面,使用创建多个用户组并且将用户指派到多个用户组的机器学习过程,将给定用户和其他用户指派到用户组。在一些方面中,附加地基于以下中的至少一个来将所述给定用户指派到所述用户组:(i)在先前用户会话中由给定用户请求的数据的时间范围;(ii)由用户修改的数据;或(iii)给定用户访问与账户有关的数据的频率。

在一些方面中,基于以下中的至少一个来选择所述第二数据集的至少一部分:(i)在先前用户会话中由给定用户请求的数据类型;(ii)在先前用户会话中由给定用户请求的数据的时间范围;或(iii)在先前用户会话中给定用户请求数据的地理区域。在一些方面中,基于由多个不同用户的每一个请求的数据类型,为多个用户的每一个提供不同的初始账户视图。

一些方面能包括对为给定用户发起的每一给定用户会话,利用指定在给定用户会话期间给定用户交互的用户界面元素和在用户会话期间给定用户请求的数据类型的数据,更新用于给定用户的用户简档;以及基于更新,修改用于给定用户的初始账户视图。

一些方面能包括基于用于更新高速缓存的数据成本小于阈值成本,确定在用户设备处更新第二数据集的高速缓存;以及响应于确定更新高速缓存,向用户设备提供经更新的数据集。一些方面能包括识别所述账户的两个或更多个活动,所述账户的两个或更多个活动具有至少一个相同特性和对两个或更多个活动中的每一个不同的至少一个特性;以及提供数据,所述数据以高亮两个或更多个活动中的每一个的至少一个特性的方式呈现所述两个或更多个活动中的每一个的数据。

另一方面能够被体现在系统中,所述系统包括存储处理器可读指令的存储器;以及一个或多个处理器,所述一个或多个处理器被布置成读取和执行在所述存储器中存储的指令;第一前端服务器,所述第一前端服务器基于通过给定用户的客户端设备提交的数据,将给定用户认证为给定在线账户的授权用户;响应于认证,对给定用户发起将与账户有关的数据呈现给用户的用户会话,账户可由具有访问账户的证书的多个用户访问;数据选择器,所述数据选择器基于(i)在先前用户会话期间给定用户与账户的用户界面中呈现的用户界面元素的交互和其他用户与用户界面元素的其他交互之间的相似度或(ii)在先前用户会话期间给定用户请求的至少一种数据类型与由其他用户请求的至少一种数据类型之间的相似度,来识别给定用户被指派到的用户组;基于给定用户被指派到用户组,选择与账户有关的第一数据集,所述第一数据集是至少基于(i)在先前用户会话期间由给定用户请求的数据类型和(ii)在先前用户会话期间给定用户交互的用户界面元素来选择的;基于由用户组中各种其他用户先前请求的数据类型,选择与账户有关的第二数据集;用户界面生成器,所述用户界面生成器更新用于账户的用户界面以在用于账户的初始账户视图中呈现第一数据集的至少一部分,初始账户视图呈现被组合成单一呈现并且提供账户的概览的多个不同类型的数据;以及第二前端服务器,所述第二前端服务器当在客户端设备处呈现第一数据集或第二数据集的附加部分时,通过在从客户端设备接收对第二数据集的请求前向客户端设备提供第二数据集,减少更新用于账户的用户界面的时延,其中第二数据集被高速缓存在第二前端服务器或客户端设备处并且在初始账户视图中不呈现。结合系统,实现在第一方面的场境中所述的特征。

能实现本说明书中所述的主题的具体实施例,以便实现以下中的一个或多个优点。通过在用户设备处预缓存用户可能请求但还未请求的数据,减少将数据呈现给用户的时延。通过预缓存所述数据,能减少通过网络提交的请求数目,由此减少用来响应于请求加在网络和计算资源上的需求量。通过增加资源响应于请求的速度和最小化由过载资源引起的误差和性能退化,加在网络和计算资源上的需求的减少能提高网络和计算资源的性能。通过检索所请求的数据和用于同时预缓存的附加数据,而不是多次查询数据源,也能减少加在计算资源上的需求。因此,实施例解决了与如何提供用于在设备处预缓存的适当数据相关联的问题,例如,允许在设备处高速缓存数据集,由于改进选择待高速缓存的数据,提供与高速缓存的数据的较大集类似的优点。

用户可能请求的预缓存数据还允许客户端设备更快速地呈现所请求的数据,因为客户端设备不必等待遍历网络的请求,服务器识别所请求的数据,使所请求的数据到达客户端设备。此外,通过在无需响应于用户提交的请求的网络连接性的情况下呈现数据,减少用户受挫。通过有选择地确定何时更新在高速缓存中存储的数据,还能减少加在网络和计算资源上的需求。

在附图和下述描述中,阐述在本说明书中描述的主题的一个或多个实施例的细节。本主题的其他特征、方面和优点从描述、附图和权利要求将变得显而易见。

附图说明

图1是预缓存系统提供用于在客户端设备处缓存的数据的示例环境。

图2是账户管理系统管理账户数据并且提供呈现账户数据的用户接口的示例环境。

图3是呈现账户数据的示例用户界面的屏幕截图。

图4是用于减少呈现账户数据的时延的示例过程的流程图。

图5是用于更新高速缓存的示例过程的流程图。

图6是用于向给定用户指派用户组并且基于所述用户组,识别提供给所述给定用户的数据的示例过程的流程图。

图7是用于生成呈现用于多个活动的账户数据的可视化的示例过程的流程图。

各个图中相同的参考编号和名称指示相同的元件。

具体实施方式

系统能通过在客户端设备提交对数据的请求前,通过将数据发送到客户端设备并且在客户端设备缓存所述数据,减少呈现数据的时延。然而,能缓存的数据量通常小于可用数据量。因此,系统对不同用户确定缓存哪些数据,使得能实现由缓存数据提供的好处(例如,更快用户界面更新和/或与用户界面实时交互)。所述系统能基于用户与呈现所述数据的用户界面的先前交互,选择提供给客户端设备的数据。例如,如果用户在特定时间段内多次请求过特定数据(例如,上周内的数据),所述系统可以在用户真正提交对所述数据的请求前,提供那一时间段内的所述特定数据。如果用户稍后提交对所述数据的请求,在用户设备处缓存所述数据并且比客户端设备必须例如通过网络从远程系统请求所述数据相比,更快地获取和呈现所述数据。还能由远程系统缓存附加数据,用于更快速地递送给客户端设备。

当用户访问由所述系统管理的账户时,所述系统能发送用于向用户呈现的数据和用于在用户设备处缓存的数据。例如,当用户登录所述账户时,所述系统能提供包括在仪表板内的初始账户视图和在用户设备处缓存的附加数据的用户界面。所述仪表板能包括账户的概览,所述账户的概览包括基于用户与由所述系统提供的用户界面的先前交互,对所述用户选择的数据的概述。还能基于用户与由所述系统提供的用户界面的先前交互,选择呈现数据的方式。这些用户交互能包括例如用户查看、选择或交互过的特定用户界面元素(例如,控件、显示卡等)、用户请求或修改的数据的类型、和/或数据的维度(例如,在特定时间段内或与特定地理位置有关的数据)。然后,用户能与仪表板的用户界面元素交互来查看不同数据或查看不同类型的数据呈现。作为响应,能从缓存的数据获取或从维护所述数据的系统请求适当的数据。

能基于用户被指派的用户组,选择在初始账户视图中呈现的数据和/或为在客户端设备处缓存提供的数据。例如,特定用户组可以请求类似类型的数据和/或与类似类型的用户界面元素交互。在特定示例中,具有类似角色但处于不同组织中的用户可以请求和查看类似类型的数据和类似维度内的数据。在一些实施方式中,能基于由所述组中的其他用户执行的动作,选择对给定用户缓存的数据,即使当所述给定用户未执行那些动作时。

图1是预缓存系统110提供用于在客户端设备130处缓存的数据的示例环境100。预缓存系统110能响应于从客户端设备130接收的数据请求140,提供来自数据存储设备115的数据。客户端设备130通过数据通信网络120(例如,局域网(lan)、广域网(wan)、互联网或其组合),提供数据请求140。每一数据请求140能指定用户使用客户端设备130请求的特定数据。

响应于每一数据请求140,预缓存系统110能从数据存储设备115获取所请求的数据并且将所请求的数据142提供给客户端设备130。例如,预缓存系统110可以在一个或多个数据分组的一次或多次传输中,将所请求的数据142发送到客户端设备130。预缓存系统110还能选择和提供数据请求140未请求的附加数据144。例如,客户端设备130的用户可能未请求附加数据144。附加数据144能在客户端设备130处被缓存,使得如果用户请求附加数据144,能快速提供附加数据144且无需通过网络120提交另一个数据请求。例如,附加数据144能被存储在客户端设备130的高速缓存135中。高速缓存135能包括安装在客户端设备130上并且存储附加数据144的高速存储器设备。

在一些实施方式中,预缓存系统110基于客户端设备130的用户,选择附加数据144。例如,预缓存系统110可以基于用户与向用户呈现数据的一个或多个用户界面(例如,由预缓存系统110提供的一个或多个用户界面)的先前交互,选择附加数据144。预缓存系统110用来选择附加数据144的用户交互能包括例如用户交互的用户界面元素(例如,控件、显示卡、图类型等)、用户请求的数据的类型(例如,关键字、性能度量、出价等)、用户请求的实际数据(例如,特定活动、特定关键字、特定内容项等)、用户请求的数据的维度(例如,特定时间段、特定地理位置、特定值范围等)、用户多久访问一次所述账户和/或用户选择的偏好。例如,如果用户先前用户会话期间请求用于特定内容递送活动的上周的闪现数据,预缓存系统110可以在用户请求所述数据前,将用于特定活动的上周的闪现数据提供为用于当前用户会话的附加数据。

在一些实施方式中,一些数据请求140可以是常见的或隐含地请求而不是对特定数据的特定请求。例如,预缓存系统110可以生成和提供用户界面,例如,仪表板,所述仪表板具有响应于用户登录或访问所述账户而提供账户概览的初始账户视图。能响应于用户登录所述账户而不是对包括在所述概览中的数据的特定请求,选择数据的所述概述。预缓存系统110还能选择和提供用户查看仪表板后可能请求的附加数据。

在一些实施方式中,预缓存系统110还可以在预缓存系统110处缓存附加数据。以这种方式,预缓存系统能响应于指定附加数据的数据请求,更快速地提供数据。能以与发送到客户端设备130的附加数据144类似的方式,选择所述附加数据。例如,预缓存系统110可以选择附加数据集以供预缓存。预缓存系统110可以将附加数据的子集发送到客户端设备130以在客户端设备处缓存。预缓存系统110还可以在预缓存系统110处缓存所述附加数据的子集。例如,预缓存系统110可以从附加数据集识别用户最可能选择的数据并且将那一数据提供给客户端设备130。可以在预缓存系统110处缓存所述附加数据集中的剩余数据。在预缓存系统110处缓存能减少将数据提供给客户端设备130的时延,因为响应于对所述数据的请求,从数据存储设备115获取数据会花费时间并且增加对用来获取所述数据的计算资源的需求。

图2是账户管理系统210管理在线账户数据并且提供呈现账户数据的用户界面的示例环境200。账户管理系统210能包括位于一个或多个数据中心处的一个或多个服务器。一个或多个服务器能通过数据通信网络250(例如,lan、wan、互联网或其组合)接收对在线账户数据的请求。例如,账户管理系统210能包括通过网络250接收对在线数据的请求并且将所请求的数据提供给客户端设备262和272的一个或多个前端服务器240。账户管理系统210还能包括一个或多个后端服务器,所述一个或多个后端服务器从前端服务器接收请求、基于请求获取适当的账户数据、并且将获取的数据提供给前端服务器240。

账户管理系统210能管理多个不同账户持有者的多个不同账户的在线账户数据。例如,账户管理系统210能管理用于多个不同组织(例如,账户持有者260和270)的账户数据。虽然在图2中示出了两个账户持有者260和270,但账户管理系统210能管理用于其他数目的账户持有者的账户数据。下文所述的系统和技术还能应用于各种其他类型的数据。

由账户管理系统210管理的账户数据能包括与账户有关的任何数据,诸如内容项的性能数据(例如,闪现数目、点击率、转化率等)、用于账户持有者的预算信息和/或内容项分发标准。用于每一账户持有者的账户数据被存储在账户数据存储设备227中,其可以包括位于一个或多个数据中心中的多个数据存储设备。可以单独和保密地存储用于每一账户持有者的账户数据,使得用于一个账户持有者的账户数据不会被提供给不同账户持有者的用户。

每一账户持有者260和270能具有被授权来查看与账户持有者的账户有关的数据的一个或多个授权用户。例如,组织可以具有被授权来管理账户管理系统210维护账户数据的活动的多个用户。被授权访问账户持有者260的账户数据的每一用户能使用客户端设备262-1至262-n来访问账户数据。类似地,被授权以访问账户持有者270的账户数据的每一用户能使用客户端设备272-1至272-n来访问账户数据。在准许访问账户数据前,可以提示用户输入证书(例如,用户名和密码)。

客户端设备是能够通过网络250请求和接收电子资源和其他数据的电子设备。示例客户端设备包括个人计算机、移动通信设备(例如,智能电话、平板计算设备和/或智能手表),以及能通过网络250发送和接收数据的其他设备。客户端设备通常包括用户应用(诸如web浏览器),以促进通过网络250发送和接收数据。web浏览器能使用户与通常位于网站的网页上的文本、图像、视频、音乐和其他信息交互。客户端设备能包括其他应用,例如,为特定类型的设备或特定平台开发的本原应用(nativeapplication)。

每一客户端设备262和272能包括高速缓存264和账户查看器266。账户查看器266是向客户端设备的用户呈现账户数据的应用。账户查看器266可以是从账户管理系统210请求账户数据并且使用一个或多个用户界面呈现账户数据的web浏览器或本原应用,如下文更详细所述。

高速缓存264包括存储可以由账户查看器266呈现的账户数据的高速存储器设备。例如,高速缓存264可以包括随机存取存储器(sram)和/或固态存储器设备。高速缓存264可以存储客户端设备的用户未请求过的账户数据。当用户请求在高速缓存264中存储的账户数据时,账户查看器266能从高速缓存264快速地获取所述账户数据,无需通过网络250提交对所述账户数据的请求。对数据的所述预缓存减少呈现账户数据的时延并且减少对网络250以及账户管理系统210的计算资源的需求。

在一些实施方式中,账户查看器266能被配置成响应于对账户数据的请求,检查高速缓存264。如果在高速缓存264中找到所请求的账户数据,账户查看器266能从高速缓存264获取所述账户数据并且将所述账户数据呈现给用户。如果所请求的账户数据不在高速缓存中,账户查看器266能例如通过通过网络250提交请求,从账户管理系统210请求账户数据。

账户管理系统210包括数据传输子系统220、交互记录器230和用户组引擎235。数据传输子系统220接收和响应于对账户数据的请求。数据请求可以包括对特定账户数据的特定请求。特定请求的示例是对特定活动并且在特定时间段期间的性能数据的请求。账户管理系统210还能响应于常见或隐含请求,提供账户数据。常见或隐含请求的示例是用户登录到用户被授权访问的账户。在所述示例中,数据传输子系统220可以选择数据的概述以在所述用户的初始账户视图中提供。

数据传输子系统220包括数据选择器221和用户界面生成器229。数据选择器221响应于从客户端设备接收的数据请求(例如,特定、常见或隐含请求),识别要提供的账户数据。例如,数据选择器221可以访问账户数据存储设备227来获取由特定数据请求指定的特定数据。对常见或隐含数据请求,数据选择器221能基于做出请求的特定用户,选择账户数据的子集。账户数据的所述子集是用户被授权以访问的账户的账户数据的子集。例如,如下文更详细所述,数据选择器221可以基于用户与由账户管理系统210提供的用户界面的先前交互,选择要提供的账户数据的子集。

用户界面生成器229能生成呈现账户数据的各种用户界面。用户界面能包括仪表板,所述仪表板包括使用户请求并且以各种格式(例如,图、图表、表等)查看各种数据的用户界面元素(例如,控件、显示卡、菜单等)。每次用户初始地访问账户(例如响应于用户登录到账户时),仪表板可以呈现初始账户视图。所述初始账户视图能包括例如提供账户的概览并且适合于访问所述账户的用户的账户数据的子集。如下文更详细所述,账户数据的概述能包括基于与由账户管理系统210提供的用户界面的用户的先前交互而选择的数据。

用户界面能包括一个或多个显示卡用户界面元素。每一显示卡能以特定方式呈现特定类型的数据。例如,第一显示卡可以呈现用于表中的内容项的闪现数据,而第二显示卡可以呈现用于使用条形图分发内容项的多个关键字的点击率。在一些实施方式中,用户界面生成器229基于与显示卡或其他用户界面元素的用户的先前交互,选择要在初始账户视图中提供的显示卡。例如,如果用户选择查看特定显示卡至少阈值多次,用户界面生成器229可以在初始账户视图中提供特定显示卡。在另一示例中,用户界面生成器229可以将用户选择以最大频率查看的一个或多个显示卡包括在初始账户视图中。如下文更详细所述,用户界面生成器229还可以基于用户被指派的用户组,选择以包含在初始账户视图中的显示卡。在图3中示出示例用户界面并且在下文描述。

交互记录器230记录描述用户与由账户管理系统210提供和/或由账户查看器226呈现的用户界面的交互的数据。如下文更详细所述,所述交互数据被用来选择被提供给用户的账户数据。例如,每一用户可以登录他们的账户来查看账户数据和/或对用户被授权查看并且进行改变的账户进行变更。当用户登录时,在用户的许可下,交互记录器230能接收描述用户与用户界面交互的数据并且将所述数据存储在安全交互日志232中。例如,账户查看器266可以包括获取用于每一交互的数据并且将所述数据提供给交互记录器230的嵌入式脚本。描述在交互日志232中存储的用户的交互的数据能包括例如用户交互的用户界面元素(例如,控件、显示卡、图类型等)、用户请求的数据的类型(例如,关键字、性能度量、出价等)、用户请求的实际数据(例如,特定活动、特定关键字、特定内容项等)、用户请求的数据的维度(例如,特定时间段、特定地理位置、特定值范围等)、用户多久访问一次所述账户、用户选择的偏好和/或其他适当的交互数据。

在一些实施方式中,交互记录器230对每一用户,生成包括登录数据的用户简档。在用于用户的用户简档中,交互记录器230可以包括识别用户交互的每一用户交互元素的数据、用户与用户界面元素交互的次数,和/或用户与用户界面元素交互的频率。用于用户的用户简档还可以包括识别用户请求的每种数据的数据、用户请求每种数据的次数、以及用户请求每种数据的频率。对用户请求的实际数据的每一特定部分,能存储相同识别和频率数据。对每种类型的数据和/或对用户请求的数据的每一特定部分,用户简档能包括用于所述数据的维度。例如,如果用户在特定时间段期间请求特定内容项的性能,用户简档将包括指定用于该类型的数据(性能数据)和用于实际数据(特定内容项的性能)的特定时间段的数据。在用户访问在线账户的每一用户会话中,用户交互记录器230能更新用户简档以描述在所述用户会话期间,用户与数据和用户界面元素的交互。

用户组引擎235能基于与由账户管理系统210提供的用户界面的他们的交互,将用户指派到用户组。例如,用户组引擎235可以基于他们的用户简档之间的相似度,将用户指派到用户组。用户组能基于他们的用户简档,将与所述组中的每一其他用户具有至少阈值相似度的用户包括为所述用户组的成员。例如,基于在两个用户的简档中存储的数据之间的相似度,对每一用户对,确定相似度分数。如果相似度分数满足阈值(例如,通过满足或超出阈值),两个用户可以被一起包括用户组中。相似度分数能基于两个用户之间的多个匹配特性。例如,如果两个用户请求相同类型的数据和/或选择相同的用户界面元素,两个用户可以比两个用户未请求过相同类型的数据或未选择过相同的用户界面元素的情况具有更高的相似度分数。用户组能被用来识别账户数据和用户界面元素以提供给组成员,如下文更详细所述。

在一些实施方式中,用户组基于组织中的特定角色。例如,用户组引擎235可以创建和填充用于产品管理者的用户组和用于会计员的另一用户组。用于特定角色的用户组能包括具有与用于特定角色的简档匹配或类似的用户简档的用户。例如,特定角色的用户可以访问类似数据维度上的类似类型的数据和/或查看相同或类似的用户界面元素。

用户组能包括用于多个不同账户持有者的用户。例如,用于产品管理者的用户组可以包括用于多个不同组织的产品管理者。以这种方式,来自不同组织的用户交互的模式能被用来识别更可能由具有相同或者类似角色的用户请求的数据类型。在图6中示出将用户指派到用户组的示例过程并且在下文描述。

如上所述,数据选择器221能基于用户与由账户管理系统210提供的用户界面的先前交互,选择数据以提供给用户。特别地,数据选择器221可以基于用户与由账户管理系统210提供的用户界面的先前交互,以针对所述用户选择在初始账户视图中提供的数据。例如,当用户访问账户管理系统210处的账户时,数据选择器221可以响应于用户访问所述账户,选择账户数据的第一数据集以在初始账户视图中提供,并且由客户端设备缓存潜在数据,即使该数据不用于初始账户视图中。

数据选择器221可以基于用户请求或查看特定数据的频率、用户请求或查看特定类型的数据的频率、用户与特定用户界面元素交互的频率,和/或包括在用户简档中的其他数据,选择用于包含在第一数据集中的数据。例如,初始账户视图可以包括例如由用户界面生成器229选择的特定数目个卡。数据选择器221能选择第一数据集以填充数据卡。所述第一数据集可以包括更频繁请求的数据和/或更频繁选择的数据类型以包括在显示卡中。

数据选择器221可以基于用户请求的数据维度,选择第一数据集。例如,第一数据集可以包括用于用户先前请求数据的特定时间段的数据。在特定示例中,用户仅对最新数据(例如,用于在上周发生的事件的数据)感兴趣。在所述示例中,用户通常请求上周的数据,而不请求更早的数据。在用户登录前,数据选择器221可以为所述用户提供包括与本周中发生的事件有关的数据的第一数据集以在初始账户视图中呈现。数据选择器221可以确定不向所述用户提供更早数据直到用户请求所述数据为止,导致通过网络提供以及在客户端设备处存储更少数据。

还可以基于频率,选择用在选择第一数据集中的数据维度。例如,用户可以请求用于不同时间段或不同地理位置的数据。数据选择器221可以基于最频繁请求的时间段或地理位置,选择第一数据集。

数据选择器221可以基于将针对用户在初始账户视图中呈现的数据类型,选择用于初始账户视图的第一数据集。例如,特定显示卡可以呈现特定类型的数据。如果对初始账户视图选择特定卡,那么数据选择器221可以选择用于填充特定显示卡的适当数据以包括在第一数据集中。

在一些实施方式中,数据选择器221还能基于用户被指派的用户组或角色,选择第一数据集。例如,所述组中或具有相同角色的其他用户请求特定类型的数据或与特定用户界面元素(例如,特定显示卡)交互。数据选择器221可以将所述组中(或被指派相同角色)的其他用户请求的数据类型包括在第一数据集中,当用户对这些类型的数据感兴趣或查找这些类型的数据时有用。当然,来自其他账户的实际数据将不包括在第一数据集中。相反,数据选择器221可以识别用户被授权访问的账户内,所述组中的其他用户请求过的相同类型的账户数据。

数据选择器221基于组中的其他用户请求或查看数据类型的频率,选择由所述用户组中的其他人请求的数据的类型以包括在第一数据集中。例如,如果所述组作为整体最频繁请求或查看特定类型的数据,那一特定类型的数据可以被包括在第一数据集中。数据选择器221还能基于请求或查看数据的类型的其他用户的数目,选择由所述用户组中的其他用户请求的数据的类型以包括在第一数据集中。例如,可以将由大多数用户(或至少阈值数目的用户)请求或查看过的特定类型的数据可以包括在第一数据集中。

类似地,用户界面生成器229能基于所述用户组中的其他用户选择或查看过的用户界面元素,选择用户界面元素,例如显示卡以包括在初始账户视图中。例如,用户界面生成器229可以基于用户组中的用户选择或查看用户界面元素的次数和/或选择或查看用户界面元素的组中的用户数目,选择用于初始账户视图的用户界面元素。

通过基于用户与由账户管理系统210提供的用户界面的先前交互和/或基于包括在组中的其他用户与所述用户的交互,选择用户界面元素和数据以包括在用于用户的初始账户视图中,账户管理系统210能提供可能对用户最有用的数据的概述,由此提高数据的概述的有效性。这会导致更大用户满意度以及减少对由用户提交的附加数据的请求数目。由此,所述选择过程能减少对网络施加的需求以及由网络引起的时延。

数据选择器221包括预缓存引擎223和活动分组器225。预缓存引擎223能响应于对账户数据的请求,选择一个或多个第二数据集以提供给客户端设备。预缓存引擎223能响应于对特定数据的特定请求和/或对数据的常见或隐含请求(例如,用户登录到账户),选择第二数据集。预缓存引擎223能在接收对包括在第二数据集中的数据的请求前,选择和提供第二数据集。例如,第二数据集能是在特定请求中指定的或未选择以包括在为初始账户视图提供的第一数据集中的数据。

预缓存引擎223能将响应于特定请求获取的账户数据,或与第一数据集一起将第二数据集发送到客户端设备。或者,在其他数据被发送到客户端设备后,预缓存引擎223能提供第二数据集。客户端设备能将第二数据集存储在高速缓存264中。以这种方式,在用户请求这种数据的情况下,能将第二数据集的账户数据更快速地呈现给用户。

预缓存引擎223能基于用户与由账户管理系统210提供的用户界面的先前交互和/或用户被指派的用户组或角色,选择数据以包括在用于用户的第二数据集中。用来选择第一数据集的类似标准能被用来选择第二数据集。例如,预缓存引擎223能基于用户请求或查看特定数据的频率、用户请求或查看特定类型的数据的频率、用户与特定用户界面元素交互的频率、用户请求的数据维度、用户组中的其他用户请求或查看数据类型的频率、请求或查看数据类型的用户组中的其他用户的数目和/或与用户与用户界面的交互有关的其他适当数据和与其他用户与用户界面的交互有关的数据,选择用于包括在第二数据集中的数据。

在一些实施方式中,基于用户与用户界面的先前交互,选择第一数据集,同时基于用户组中的其他用户或用户被指派的角色的交互,选择第二数据集。在一些实施方式中,均基于用户与由账户管理系统210提供的用户界面的先前交互和用户组中的其他用户或用户被指派的角色的交互的组合,选择第一数据集和第二数据集。在所述示例中,使用户的交互加权高于用户组中的其他用户或用户被指派的角色的交互。

在一些实施方式中,预缓存引擎223可以将第二数据集、第二数据集的一部分或不同的第三数据集存储在前端服务器240的高速缓存245中。例如,前端服务器240可以包括或耦合到包括诸如sram和/或固态存储器设备的高速存储器的高速缓存245。在一些实施方式中,第二数据集可以存储在账户管理系统210的高速缓存245中,而不是客户端设备的高速缓存中。在一些实施方式中,第二数据集的一部分被存储在账户管理系统210的高速缓存245中,以及在客户端设备处缓存第二数据集的一部分。

在一些实施方式中,第二数据集可以被存储在客户端设备的高速缓存中,以及第三数据集可以被存储在账户管理系统210的高速缓存245中。以与第二数据集类似的方式,选择第三数据集。通过将附加数据存储在前端服务器处,能减少响应于对附加数据的请求,呈现附加数据的时延,因为消除从账户数据存储设备227识别和检索数据所需的时间。

活动分组器225能识别类似,但具有所有活动不同的特定特性的活动组(或其他信息组)。例如,账户持有者可以具有用于使用相同关键字和内容项的相同产品或服务的多个不同活动。然而,每一活动可以针对不同状态。在所述示例中,对每一活动,内容项分发标准可以相同,除能分发用于每一活动的内容项的状态外。活动分组器225能识别这些活动并且将其添加到活动组。

用户界面生成器229能对每一活动组,生成高亮活动之间的区别以及基于所述区别的活动性能的任何差别的可视化。继续前一示例,用户界面生成器229可以生成包括第五状态的地图的可视化。在所述图上,可视化可以高亮每一状态中的活动的性能,例如,使用性能编号、图示性能颜色,或高亮不同状态的活动之间的差异的另一视觉效果。

在另一示例中,用户界面生成器229可以生成高亮基于对所述活动提供内容项的星期几不同的相同或类似活动的性能的差异的可视化。例如,热图可以被用来示出所述周的不同时间的活动的相对性能。在又一示例中,多个活动可以仅基于关键字类型的匹配(例如,精确匹配、宽泛匹配等)不同。在所述示例中,用户界面可以呈现用于每种类型的关键字匹配的活动的性能。

图3是呈现账户数据的示例用户界面310的屏幕截图300。示例用户界面310包括在用于所述账户的仪表板中显示的账户的初始账户视图。例如,基于在用户访问账户的先前用户会话期间给定用户与用户界面的交互,针对给定用户生成初始账户视图。

用户界面310包括菜单320和显示卡集330。菜单310能提供用户能选择以查看的其他显示卡的列表。用户界面310还能提供用户能选择以查看的数据列表。响应于对菜单320中的项的选择,用户界面310能使呈现用户界面310的客户端设备请求所选择显示卡或所选择数据。例如,客户端设备可以首先访问客户端设备的缓存以确定所选择数据(或将在所选择显示卡中呈现的数据)是否存储在缓存中。如果是,客户端设备能从缓存获取数据并且在用户界面310中呈现数据。如果数据未存储在缓存中,客户端设备能从远程系统(例如图2的账户管理系统210)请求数据。

每一显示卡能以特定方式呈现特定类型的数据。例如,显示卡331呈现性能数据(例如,转化数目、点击数目和闪现数目)以及用于活动的成本数据。显示卡331以数值格式呈现所述数据以及还包括呈现性能和/或成本数据的一部分的线图。

显示卡333以表格的形式呈现用于若干活动的性能和成本数据。类似地,显示卡337以表格的形式呈现用于被用来分发内容项的若干关键字的性能和成本数据。另一显示卡335呈现图示用于呈现用于活动的内容项的不同类型的设备的性能和成本数据的条形图。又一显示卡339呈现随时间图示活动度量(例如,性能度量、成本度量等)的热图。例如,热图中的每一方形的深色可以基于用于对应时间的度量的值改变。能通过选择显示卡339的顶部的“天”、“天&小时”或“小时”,调整用于热图的时间范围。

如上所述,基于用户与用户界面的先前交互和/或用户被指派的用户组,选择包括在初始账户视图中的显示卡和/或数据。例如,可以基于在与账户的先前用户会话期间用户选择显示卡331-339,选择显示卡331-339和由显示卡331-339呈现的数据。此外,可以基于用户先前请求与这些活动有关的数据,选择包括在显示卡333中的活动。类似地,可以基于用户请求与这些关键字有关的数据,选择包括在显示卡337中的关键字。在另一示例中,可以基于用户先前与显示卡339(或另一显示卡)交互,选择在显示卡339中呈现的时间范围以查看那一时间段的数据。

在用户请求附加卡前,具有附加数据的附加卡能被提供给客户端设备并且在客户端设备处缓存。例如,用户界面310包括五个显示卡331-339。然而,用户通常查看9个不同的显示卡。当用户登录所述账户时,在用户界面中呈现的五个显示卡和其他四个显示卡(连同在显示卡中呈现的数据)能被提供给客户端设备。以这种方式,当用户选择4个显示卡中的一个时,能在无需通过网络提交另一请求的情况下将所选择的显示卡快速地呈现给用户。

另一示例显示卡能示出在用户设备处显示特定内容项的方式。例如,可以基于以下各项以不同的方式呈现内容项:呈现内容项的客户端设备的类型(例如,可以在智能电话上,与台式计算机不同地呈现内容项)、呈现内容项的资源的位置(例如,可以与在网页的一侧上不同地在网页的顶部呈现内容项)或呈现内容项的资源的类型(例如,可以与博客不同地在搜索结果页上呈现内容项)。对所述显示卡,用户界面生成器229能做出关于对内容项的每一闪现如何显示内容项的概率性确定以及显示如何呈现内容项的表示。例如,用户界面生成器229可以基于呈现内容项的设备的类型、呈现内容项的资源的位置、呈现内容项的资源的类型和/或能影响内容项的呈现的其他适当数据,对特定闪现做出概率性确定。

显示卡能呈现确定呈现内容项的方式的子集。例如,用户界面生成器229可以针对对内容项的每一闪现,做出如何显示内容项的概率性确定。用户界面生成器229可以基于概率性确定,计数用于呈现内容项的每一方式的闪现数目。然后,用户界面生成器229生成描绘用于具有最多闪现的方式的内容项的表示的显示卡。例如,可以在显示卡中呈现基于闪现的前4个表示。以这种方式,用户能快速地看到内容项有多大可能被呈现给用户。

图4是用于减少呈现账户数据的时延的示例过程400的流程图。例如,通过数据处理装置,诸如图2的账户管理系统210,实现过程400的操作。还能通过在计算机存储介质上存储的指令,实现过程400,通过数据处理装置执行所述指令使得数据处理装置执行过程400的操作。

对在线账户授权给定用户(402)。在线账户可以是用户具有访问的账户。例如,用户可以是账户管理系统管理组织的账户数据的组织的雇员。多个不同用户有权访问所述账户。例如,组织可以具有不同角色(例如,产品管理者、品牌管理者、活动管理者等)的不同雇员,所述不同雇员分别有权访问在线账户以查看和/或修改与所述雇员有关的数据。

基于通过给定用户的客户端设备提交的数据,认证给定用户。例如,用户可以提供唯一用户名和密码来访问在线账户。如果由给定用户提供的用户名和密码与对所述给定用户存储的用户名和密码匹配,对所述在线账户认证所述用户。

响应于认证用户,对所述给定用户发起用户会话(404)。用户会话允许用户查看用于在线账户的账户数据。能使用一个或多个用户界面,将账户数据呈现给用户。例如,可以将仪表板呈现给用户。所述仪表板能包括具有账户的概览的初始账户视图。此外,仪表板可以包括使用户请求附加数据或选择给定用户感兴趣的其他显示卡的链接或其他用户界面控件。

识别给定用户被指派到的用户组(406)。例如,基于在先前用户会话期间给定用户与在所述账户的用户界面中呈现的用户界面元素的交互与其他用户与所述用户界面元素的其他交互之间的相似度,将给定用户指派到一个或多个用户组。基于在先前用户会话期间由给定用户请求的至少一种数据类型与由其他用户请求的至少一种数据类型之间的相似度,将给定用户指派到用户组。在图6中示出用于将用户指派到用户组的示例过程,并且在下文描述。

选择与在线账户有关的第一数据集(408)。第一数据集包括认证用户以访问的在线账户的账户数据。例如,第一数据集可以包括用于以初始账户视图呈现、向给定用户提供在线账户的概览的账户数据。初始账户视图可以对给定用户定制并且基于对用户界面元素(例如,特定显示卡、控件、图等)的用户先前请求和/或交互、对数据或数据类型的给定用户的请求或修改、特定数据维度(例如,时间段、地理位置等)的给定用户的请求或查看、用户多久访问所述在线账户一次、给定用户选择的偏好、给定用户被指派的用户组和/或其他适当数据。初始账户视图可以呈现被组合到单个呈现并且将在线账户的概览提供给给定用户的多个不同类型的数据。

在一些实施方式中,基于用户与在给定用户的先前用户会话中呈现的用户界面的先前交互和/或给定用户被指派的用户组,可以从用于在线账户的账户数据的数据储存器,选择用于在初始账户视图中呈现的第一数据集。例如,可以基于在先前用户会话期间由给定用户请求的数据类型和/或在给定用户的先前用户会话期间给定用户交互的用户界面元素,选择第一数据集。还可以基于由给定用户指派的用户组中的其他用户请求的数据类型和/或其他用户交互的用户界面元素,选择第一数据集。

选择与在线账户有关的第二数据集(410)。第二数据集能包括在初始账户视图中未呈现的数据。相反,第二数据集可以被发送到用户的客户端设备,用于在所述客户端设备处缓存。以这种方式,如果给定用户请求以查看在初始账户视图中未示出,但包括在第二数据集中的附加数据,能在无需从远程设备请求所述附加数据的情况下将附加数据呈现给给定用户。由此,能减少呈现附加数据的时延。

通常,第二数据集可以包括很可能与给定用户相关,但可能不像第一数据集中的数据一样相关的数据。还能基于用户与在给定用户的先前用户会话中呈现的用户界面的先前交互和/或给定用户被指派的用户组,选择第二数据集。例如,第二数据集可以是由给定用户被指派的用户组中的至少阈值数目的其他用户请求或用户组中的其他用户至少阈值次数请求的数据。

更新用于账户的用户界面以呈现第一数据集的至少一部分(412)。例如,能更新给定用户提交认证数据的用户界面以呈现用于给定用户的账户的初始账户视图。向给定用户提供在线账户的概览的初始账户视图能包括第一数据集的至少一部分。

通过在从客户端设备接收对第二数据集的请求前,通过将第二数据集提供给客户端设备,减少当在客户端设备处呈现第一数据集或第二数据集的附加部分时,更新用户界面的时延(414)。例如,第二数据集能与第一数据集一起,被发送到客户端设备。在另一示例中,在第一数据集被发送到客户端设备后,但在接收到对第二数据集的请求前,将第二数据集发送到客户端设备。第二数据集(和第一数据集)能被存储在客户端设备的高速缓存中以减少当在客户端设备请求时,呈现高速缓存的数据的时延。

在每一用户会话后,基于在用户会话期间给定用户与数据和用户界面元素的交互,更新给定用户的简档。基于对简档的更新,可以更新用于所述用户的初始账户视图。例如,可以更新初始账户视图以呈现在用户会话期间用户请求的显示卡和/或用户会话期间用户请求或修改的数据。基于对给定用户的简档的更新,可以更新在第一数据集和/或第二数据集中包括的数据。

例如,如果数据已经改变或数据在高速缓存中被存储达至少阈值时间量,可以利用经更新的数据,刷新客户端设备的高速缓存。然而,存在与更新高速缓存相关联的成本。例如,需要跨网络获取和传送大量数据。由此,预缓存引擎,例如图2的预缓存引擎223能基于那些成本,确定是否更新高速缓存和与更新高速缓存相关的好处。

图5是用于更新高速缓存的示例过程500的流程图。例如通过数据处理装置(诸如图2的账户管理系统210),实现过程500的操作。还能通过在计算机存储介质上存储的指令,实现过程500,其中,数据处理装置执行指令使得所述数据处理装置执行过程500的操作。

识别触发器,用于更新客户端设备的高速缓存(502)。在一些实施方式中,触发器可以基于自将数据传送到客户端设备以在高速缓存中存储以来流逝的时间量。触发器还能基于在高速缓存中存储的数据是否通过在高速缓存中存储的值改变。例如,由于在利用包括用于内容项的转化量的数据填充高速缓存后发生的新转化事件,增加内容项的转化数目。触发器能基于自数据被传送到客户端设备以在高速缓存中存储以来改变的多个数据项。例如,如果至少阈值多个数据项已经改变,可以触发高速缓存更新。触发器还能基于对账户数据的用户修改。

响应于识别触发器,确定是否更新高速缓存(504)。确定能基于与更新高速缓存相关联的成本和与更新高速缓存相关联的好处。例如,更新高速缓存要求计算资源和网络资源的使用以获取经更新的数据并且将经更新的数据传送到客户端设备。另一成本是利用经更新的数据更新高速缓存花费的时间量。

好处包括呈现最新数据而不是旧数据。如果客户端设备响应于对查看所述数据的用户请求,请求经更新的数据,好处还可以包括减少呈现经更新的数据的时延。然而,对用户而言最新的数据的好处可以取决于数据的类型。例如,用于前一年的闪现数据不太可能改变以及任何改变可能最小。由此,通过更新具有历史时间段的数据的高速缓存的好处可以具有很少好处。然而,更新当天的性能数据的好处对用户更有利。

在一些实施方式中,是否更新高速缓存的确定基于在高速缓存中存储的数据类型和/或数据量。例如,一些类型的数据会花费更长时间来通过网络获取和提供和/或包括必须传送的更多数据。在一些实施方式中,确定是否更新高速缓存基于与在高速缓存中存储的数据类型和/或数据量相关的历史数据。例如,可以基于用于先前查询模式的先前时延数的分析。

如果做出了不更新高速缓存确定,则不更新所述高速缓存。相反,过程500可以等待直到识别另一触发器为止,并且在那时,确定是否更新高速缓存。如果做出了更新所述高速缓存的确定,对在所述高速缓存中存储的一部分数据,获取经更新的数据(506)。例如,可以更新所有经高速缓存的数据。在另一示例中,可以仅更新自在所述客户端设备处高速缓存的数据以改变数据。

将经更新的数据传送到客户端设备(508)。例如,可以使用一个或多个数据分组的一次或多次数据传输,通过网络将经更新的数据传送到客户端设备。一旦接收到,客户端设备可以用经更新的数据替换先前高速缓存的数据。

图6是用于将给定用户指派到用户组并且基于所述用户组识别提供给所述给定用户的数据的示例过程600的流程图。例如,可以通过数据处理装置(诸如图2的账户管理系统210)实现过程600的操作。过程600还可以通过在计算机存储介质上存储的指令实现,其中,数据处理装置执行指令使得所述数据处理装置实现过程600的操作。

对给定用户,获取用户简档(602)。用于所述给定用户的用户简档能包括描述与呈现账户数据的用户界面的先前用户交互的数据。例如,如上所述,用于给定用户的用户简档可以包括识别与所述给定用户交互的每一用户界面元素的数据、给定用户与所述用户界面元素交互的次数、和/或给定用户与用户界面元素交互的频率。用于给定用户的用户简档还可以包括识别给定用户请求或修改的每种类型的数据、给定用户请求或修改每种类型数据的次数、以及给定用户请求或修改每种类型数据的频率。对由给定用户请求或修改的实际数据的每一特定部分,存储相同识别和频率数据。对每种类型数据和/或对给定用户请求的数据的每一特定部分,用户简档能包括数据的维度(例如,用于所述数据的时间段或地理位置)。

基于用于给定用户的用户简档,将给定用户指派给用户组(604)。在一些实施方式中,基于给定用户的简档和其他用户的简档之间的相似度,将给定用户指派到用户组。例如,将给定用户指派到具有类似用户简档的其他用户的用户组。特别地,基于与先前用户会话期间在给定用户与用于用户的账户的用户界面中呈现的用户界面元素(例如,控件)的交互和其他用户与在用户界面中的用户界面元素的其他交互之间的相似度,将给定用户指派到用户组。还可以基于给定用户请求的数据类型与其他用户请求的数据类型之间的相似度和/或给定用户和其他用户请求的数据维度之间的相似度,将给定用户指派到用户组。

在一些实施方式中,基于用户的用户简档之间的相似度,机器学习过程被用来生成和填充用户组。例如,机器学习过程可以基于决策树、神经网络、深度学习和/或聚类技术。

基于给定用户被指派的用户组,对给定用户识别数据类型和用户界面元素。例如,为给定用户提供由组中的其他用户请求的数据类型和/或由组中的其他用户选择或查看的用户界面元素。在特定示例中,可以为给定用户提供由用户组中的至少阈值数目的用户请求的数据类型或由用户组中的用户最频繁请求的数据类型。类似地,可以为给定用户提供由组中的至少阈值数目的用户选择或查看的用户界面元素和/或由用户组中的用户最频繁选择或查看的用户界面元素。

图7是生成呈现用于多个活动的账户数据的可视化的示例过程700的流程图。例如,通过数据处理装置(诸如图21的账户管理系统210)实现过程700的操作。还能通过在计算机存储介质上存储的指令,实现过程700,其中,数据处理装置执行指令使得数据处理装置实现过程700的操作。

识别账户持有者的多个活动(702)。例如,账户持有者可以具有多个不同内容递送活动。在特定示例中,账户持有者可以具有用于产品或服务的多个不同活动。账户持有者还可以具有用于其他产品或服务的活动。

识别账户持有者的类似活动集(704)。类似活动集能包括类似的,但具有所有活动不同的特定特性的活动。例如,账户持有者可以具有用于特定产品和具有相同分发标准,但具有对每一活动分发的不同内容项的多个不同活动。这些不同活动能包括在用于特定产品的活动集中。

对活动集,生成可视化(706)。例如,可视化可以高亮用于活动集中的活动的数据差异。继续前一示例,可视化可以对活动集中的每一活动,高亮每一内容项的性能。可以在用于在账户持有者的用户的客户端设备处呈现的显示卡中,自动地生成和提供可视化。例如,可以响应于识别类似活动集,自动地生成可视化,并且以这种方式,高亮一个不同特性。

尽管上文参考内容递送管理系统描述了本主题,但将意识到在将数据提供给用户的替选系统中,本主题也是适用的,而不限于内容递送管理。

继续上述描述,可以为用户提供控制以允许用户选择本文所述的系统、程序或特征是否或者何时使能用户信息(例如,与用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置有关的信息)的收集,或是否从服务器向用户发送内容或通信。另外,在被存储或使用之前,某些数据可以以一种或多种方式来处理,使得移除个人可识别信息。例如,可以处理用户的身份,使得不能确定用户的个人可识别的信息,或者在获取位置信息(例如,城市、邮政编码或州级别)的地方,用户的地理位置可以被泛化,使得不能确定用户的特定位置。因此,用户可以控制收集与用户有关的何种信息、如何使用该信息和将什么信息提供给用户。

在本说明书中描述的主题和操作的实施例可以在数字电子电路中、或在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件、或者一个或更多的组合中实现。在本说明书中描述的主题的实施例可以实现为,在计算机存储介质上编码的用于由数据处理装置执行或控制数据处理装置的操作的一个或多个计算机程序,即,计算机程序指令的一个或多个模块。替选地或另外地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基质、随机或串行存取存储器阵列或设备,或它们中的一个或多个的组合,或被包括在其中。此外,虽然计算机存储介质不是传播的信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是,或者被包括在,一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其他存储设备)中。

在本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。

术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,包括举例来说可编程处理器、计算机、片上系统或者上述的多个或组合。所述装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,所述装置还可以包括创建用于所讨论的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型的基础架构,诸如web服务、分布式计算和网格计算基础架构。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释型语言、说明性或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必与文件系统中的文件相对应。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所讨论的程序的单个文件中,或在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。所述过程和逻辑流程也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))来执行,并且装置也可以被实现为专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。

适合于执行计算机程序的处理器包括,举例来说,通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括,例如磁盘、磁光盘或光盘的用于存储数据的一个或多个大容量存储设备,或可操作地耦合以从其接收数据或向其传送数据,或两者。然而,计算机不必具有这样的设备。此外,计算机可以嵌入在另一设备中,仅举几个例子,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘和cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有例如crt(阴极射线管)或lcd(液晶显示器)监视器的用于向用户显示信息的显示设备,以及用户可以通过其向计算机提供输入的键盘和例如鼠标或轨迹球的指针设备的计算机上实现。其他类型的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,响应于从web浏览器接收到的请求将web页面发送到用户的客户端设备上的web浏览器。

在本说明书中描述的主题的实施例可以在包括例如作为数据服务器的后端组件,或包括例如应用服务器的中间件组件,或包括例如具有用户可以通过其与本说明书中描述的主题的实现交互的图形用户界面或web浏览器的客户端计算机的前端组件,或者一个或多个这样的后端、中间件或前端组件的组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,互联网)和对等网络(例如,对等点对点网络)。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而发生。在一些实施例中,服务器向客户端设备发送数据(例如,html页面)(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

尽管本说明书包含许多具体实施细节,但是这些不应被解释为对任何发明或权利要求的范围的限制,而是被解释为对特定发明的特定实施例特定的特征的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中以组合的形式实现。相反,在单个实施例的场境中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合的形式来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求,但是在一些情况中要求保护的组合中的一个或多个特征可以从组合中去除,并且要求保护的组合可以涉及子组合或子组合的变体。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者执行所有所示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解到,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品内。

因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的顺序执行并且仍然获取期望的结果。另外,附图中描绘的过程不一定需要所示的特定次序或顺序的次序以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

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