用于基于优先级的数字内容下载的系统和方法

文档序号:10540902阅读:477来源:国知局
用于基于优先级的数字内容下载的系统和方法
【专利摘要】本文提供的技术所实现的系统和方法可改善由客户端设备对来自在线内容源的内容项的访问。根据一些实施方式,当内容通过网络从在线内容源(例如,内容服务器)流向客户端设备时,在客户端设备上实现中间内容流式系统以用于在客户端设备上本地缓存数字内容。此外,根据一些实施方式,在客户端设备上实现基于优先级的内容下载系统,以便促进在诸如,通过社交网络新闻馈送向客户端设备上的用户呈现对内容项的访问之前,基于优先级将内容项预下载至客户端设备。
【专利说明】
用于基于优先级的数字内容下载的系统和方法
技术领域
[0001 ]本申请涉及数字内容,并且具体地,涉及下载从服务器流传输到客户端的数字内 容。
【背景技术】
[0002] 通过社交网络的各种特征,社交网络提供对包括多媒体内容(包含例如,文本、视 频、音频、展示或图像)的各种数字内容的访问。数字内容(下文中,被称为"内容")的这些和 其他形式允许社交网络用户例如,通过电子消息、聊天室、帖子以及消息板与彼此通信。用 户通常通过在客户端设备(诸如,台式计算机、膝上型电脑、平板计算设备或数据使能移动 电话)上运行的独立应用程序(例如,专用于社交网络的移动应用程序或能够访问社交网络 的网页的网络浏览器)来访问社交网络及其相关内容。
[0003] 通常,当用户请求访问由社交网络提供的内容时,独立应用程序整体或部分地将 请求的内容下载至客户端设备,以便促进通过独立应用程序对内容的访问。部分地由于社 交网络通常依赖计算机网络来将它们的内容数据传送至客户端设备的事实,所以基于计算 机网络状况(例如,客户端设备的网络连接速度)对内容的访问可延迟或无效。随着内容流 向客户端设备,当在客户端设备上访问内容时,这可能是特别麻烦的。

【发明内容】

[0004] 根据一些实施方式,系统和方法以及计算机可读介质识别被调度为呈现在新闻馈 送上以用于由用户访问的第一内容项,其中,新闻馈送呈现在客户端设备的显示器上。系统 和方法可确定用于第一内容项的第一优先级。在第一内容项呈现在新闻馈送上以用于由用 户访问之前,该系统和方法可基于第一优先级将来自第一内容服务器的第一内容项中的至 少一些预下载至客户端设备。如本文使用的,被调度为呈现在新闻馈送上的内容项可以是 如下被包括在新闻项(下文中,"新闻帖子")中的一个:尚未被添加至新闻馈送、在先前从新 闻馈送移去之后尚未被添加回至新闻馈送、已被添加至新闻馈送但用户尚未浏览该新闻馈 送或者用户已至少一次浏览新闻馈送但是用户目前未在浏览。
[0005] 在一些实施方式中,在第一内容项中的至少一些预下载至客户端设备之后,系统 和方法在新闻馈送上呈现第一内容项。
[0006] 在一些实施方式中,系统和方法识别被调度为在新闻馈送上呈现以用于由用户访 问的第二内容项。系统和方法可确定用于第二内容项的第二优先级。在将来自第一内容服 务器的第一内容项中的至少一些预下载至客户端设备之前,系统和方法可基于第二优先级 将来自第二内容服务器的第二内容项中的至少一些预下载至客户端设备,第二优先级是高 于第一优先级的优先级。
[0007] 在一些实施方式中,系统和方法在新闻馈送上呈现第二内容项以用于由用户访 问。
[0008] 在一些实施方式中,基于当第一内容项对用户可见时是否自动播放来确定第一优 先级。
[0009] 在一些实施方式中,基于第一内容项是否与广告有关来确定第一优先级。
[0010] 在一些实施方式中,基于用户的偏好来确定第一优先级。
[0011] 在一些实施方式中,基于客户端设备的资源的可用性来确定第一优先级。
[0012] 在一些实施方式中,基于第一内容项的内容类型来确定第一优先级。
[0013] 在一些实施方式中,基于第一内容项的元数据来确定第一优先级。
[0014] 在一些实施方式中,基于与第一内容项有关的社交网络信息来确定第一优先级。 社交网络信息可包括由社交网络上的社交网络用户对第一内容项的点赞的量。社交网络信 息可包括由社交网络上的社交网络用户对第一内容项的分享的量。社交网络信息可包括由 社交网络上的社交网络用户做出的与第一内容项有关的评论的量。
[0015] 在一些实施方式中,社交网络信息识别在社交网络上对第一内容项点赞的一个或 多个社交网络用户。
[0016] 在一些实施方式中,社交网络信息识别在社交网络上分享第一内容项的一个或多 个社交网络用户。
[0017] 在一些实施方式中,社交网络信息识别在社交网络上评论第一内容项的一个或多 个社交网络用户。
[0018] 在一些实施方式中,新闻馈送涉及社交网络。
[0019] 从附图中并且从以下详细描述中,本发明的很多其他特征和实施方式将是显而易 见的。
【附图说明】
[0020] 图1示出根据本发明的实施方式的示例性中间内容流式系统和示例性基于优先级 的内容下载系统。
[0021 ]图2示出根据本发明的实施方式的示例性中间内容流式系统。
[0022] 图3示出根据本发明的实施方式的示例性基于优先级的内容下载系统。
[0023] 图4示出根据本发明的实施方式使用的示例性新闻馈送。
[0024] 图5示出根据本发明的实施方式的用于中间内容流的示例性过程。
[0025] 图6示出根据本发明的实施方式的用于基于优先级的内容下载的示例性过程。
[0026] 图7示出根据本发明的实施方式的用于社交网络环境中的中间内容流和基于优先 级的内容下载的网络示图的实例。
[0027] 图8示出根据本发明的实施方式的计算机系统的示图。
[0028] 附图仅为了说明性目的而描述本发明的各种实施方式,其中,附图使用相同参考 标号来标识相同元件。本领域的技术人员从以下讨论中容易认识到,在不背离本文描述的 本发明的原理的情况下,可采用在图中说明的结构和方法的替代实施方式。
【具体实施方式】
[0029] 社交网络用户或数字内容(或"内容")的提供商可能希望通过社交网络系统分配 数字内容。例如,广告商可希望向社交网络系统的用户分配具有数字内容项(或"内容项") 的广告,诸如视频或交互式展示。例如,电影制品厂可希望向社交网络系统的用户提供电影 预告片。类似地,音乐公司、图书出版商、视频游戏出版商以及其他人可希望制作可用于社 交网络系统的用户的一些形式的数字内容项。此外,社交网络系统的用户可在他们自己当 中分享数字内容项,诸如通过在他们的社交网络帖子中包括向流式视频的链接,或者通过 在社交网络帖子中嵌入流式音频内容。
[0030] 然而,通过社交网络系统分配数字内容可能难以完成。通常,数字内容项包括大量 数据。例如,出现在社交网络新闻馈送中的简单视频广告可包括用于每个静止图像帧的图 像数据、音频数据、交互式超链接以及其他内容数据。用户可尝试通过各类网络(包括 802.11Wi-Fi、第三代(3G)、第四代(4G)以及第五代(5G)网络)来访问社交网络系统,各类网 络中的每一个趋向于具有不同性能特性(例如,数据速度、带宽和吞吐量)。使数字内容项流 至接入无线网络的用户可向用户提供相比其他可能情况相对低质量版本的数字内容项,或 者可导致访问流式内容时的延迟(例如,抖动)。
[0031] 本文提供的技术所实现的系统和方法可改善由客户端设备对来自在线内容源的 内容项的访问。根据一些实施方式,当内容通过网络从在线内容源(例如,内容服务器)流向 客户端设备时,在客户端设备上实现中间内容流式系统以用于在客户端设备上本地缓存数 字内容。如本文使用的,内容项可包括一类或多类内容(包括例如,文本、音频、视频、图像、 展示等)。通过客户端设备上的中间内容流式系统,客户端设备上的内容访问应用程序(诸 如多媒体播放器)可请求并随后接收内容项(例如,视频)中一些或所有作为内容数据(例 如,视频数据)的流。具体地,中间内容流式系统可接收对由在线内容源提供的内容项的请 求,并且中间内容流式系统反过来可向内容访问应用程序提供内容项(例如,音频)中的一 些或所有作为内容数据(例如,音频数据)的流。这可通过中间内容流式系统代表内容访问 应用程序请求并获取来自在线内容源的内容数据来完成。来自在线内容源的内容数据可由 中间内容流式系统接收作为数据流。当用于请求的内容项的内容数据从在线内容源流向中 间内容流式系统时,中间内容流式系统可向内容访问应用程序提供内容数据。此外,当中间 内容流式系统接收来自在线内容源的流式内容数据时,它可在客户端设备上本地缓存流式 内容数据并且保持缓存的内容数据为了将来对于相同内容项的请求的益处。
[0032] 由中间内容流式系统接收的来自内容访问应用程序的请求可利用各类网络协议, 包括HTTP、FTP、RTP等。同样,从中间内容流式系统向在线内容源发送的请求可利用各类网 络协议。在一些实施方式中,从中间内容流式系统向在线内容源发送的请求可相似于或者 在格式上对应于中间内容流式系统从内容访问应用程序接收的请求。根据实施方式,中间 内容流式系统可实现为在客户端设备上本地运行的服务器进程。
[0033] 此后,当中间内容流式系统接收对于先前流过中间内容流式系统的内容项的请求 (例如,由与之前相同的内容访问应用程序或者客户端设备上的另一内容访问应用程序的 请求)时,中间内容流式系统可通过从本地缓存提供对应于内容项的先前由中间内容流式 系统接收的那些部分的内容数据而满足请求。中间内容流式系统也可通过从在线内容源请 求并随后向内容访问应用程序提供用于内容项的先前未由中间内容流式系统接收的那些 部分的内容数据而满足请求。以此方式,中间内容流式系统可使客户端设备上的独立内容 访问应用程序受益于在内容项的先前流式会话过程中已经本地缓存在客户端设备中的内 容数据。根据请求,中间内容流式系统可被配置为基于具体搜索时间(例如,晚于视频开始 的时间)向客户端设备上的内容访问应用程序提供用于内容项的内容数据,由此消除中间 服务器从开始或完全请求并接收内容项的必要。此外,根据实施方式,中间内容流式系统可 提供内容数据作为数据流,并且由中间内容流式系统提供的数据流可相似于(例如,在格式 或协议上)从在线内容源向中间内容流式系统提供内容数据的数据流。
[0034] 根据一些实施方式,缓存器是单独的并且与客户端设备上的内容访问应用程序 (例如,流式视频播放器)的缓冲器保持独立。当内容由内容访问应用程序流传输并访问时, 这种缓冲器通常由内容访问应用程序使用用于内容数据的临时数据存储。
[0035] 如本文使用的,内容访问应用程序可包括任意类型的多媒体播放器,诸如音频播 放器、视频播放器或展示播放器(例如,幻灯片放映或基于矢量的图形)。内容访问应用程序 也可包括各类内容编辑器,诸如多媒体编辑器(例如,音频或视频编辑器)或文件编辑器(例 如,单词处理应用程序)。此外,当访问与内容访问应用程序兼容的内容时,内容访问应用程 序可实现为可由其他独立应用程序(诸如,网络浏览器)利用的一个或多个软件模块。例如, 当访问嵌入在网页中的视频(例如,嵌入在帖子中的视频或呈现在社交网络的网页上的消 息)时,内容访问应用程序可包括由网络浏览器利用的独立视频播放器或视频播放器模块。 内容访问应用程序可限于访问一个或多个具体类型的内容。访问视觉内容可包括在客户端 设备的显示器上呈现视觉内容,诸如视频或展示内容。访问音频内容可包括通过客户端设 备的扬声器输出音频内容,诸如视频中的音频内容。
[0036] 如本文使用的,在线内容源可指代诸如服务器的被配置为通过网络连接向请求客 户端设备提供一个或多个内容项的计算机系统。在线内容源可被配置为提供内容作为数据 流,该数据流可使客户端设备访问内容项被接受到的部分(而不是必须等待直至内容项的 所有部分都被接收到客户端设备上)。
[0037] 根据实施方式,从内容访问应用程序向在线内容源的用于内容项的最初请求可被 定址至、转发至中间内容流式系统或者由中间内容流式系统拦截。例如,内容访问应用程序 可被配置为从在线内容源直接向中间流式内容系统发送对于内容项的请求。反过来,中间 流式内容系统可以以可用的程度从本地缓存向内容访问应用程序提供用于请求的内容项 的内容数据,可从在线内容源获得不存在于本地缓存中的内容数据并随后向内容访问应用 程序提供所获得的内容数据,或者这两者。
[0038] 根据一些实施方式,在客户端设备上实现基于优先级的内容下载系统,以便促进 在诸如,通过由社交网络系统提供的新闻馈送向客户端设备上的用户呈现对内容项的访问 之前,基于优先级将内容项(例如,流式内容项)预下载至客户端设备。例如,在用户遇到这 种帖子(例如,浏览这种帖子)之前,基于优先级的内容下载系统可将出现在张贴在社交网 络系统中的帖子中的视频(例如,嵌入在社交帖子中的在线视频)部分或完全地预下载至客 户端设备。用户可在社交网络新闻馈送中遇到这种帖子,其中,一个或多个新闻项(下文中, "新闻帖子")包括由内容服务器提供的一个或多个在线内容项(例如,在线视频)。当用户浏 览新闻馈送时,在一个或多个新闻帖子通过新闻馈送而使得用户可访问(例如,变得对客户 端设备上的用户可见)之前,包括在新闻馈送的这种新闻帖子中的内容项可整体或部分地 预下载至客户端设备。
[0039] 一旦内容项由基于优先级的内容下载系统预下载至客户端设备,它可存储至客户 端设备的本地缓存。根据一些实施方式,本文描述的基于优先级的内容下载系统利用的本 地缓存可与本文描述的中间内容流式系统利用的本地缓存相同。通过以此方式共享本地缓 存,客户端设备上的中间内容流式系统可与相同客户端设备上的基于优先级的内容下载系 统互操作。例如,在将内容项呈现在客户端设备上用于访问之前,基于优先级的内容下载系 统可将内容项中的至少一些预下载至与中间内容流式系统共享的本地缓存,并且在由中间 内容流式系统接收到对于内容项的请求之前,也这样做。随后,当由中间内容流式系统接收 到对于内容项的请求时,该请求可使用内容项的通过基于优先级的内容下载系统预下载至 本地缓存的部分由中间内容流式系统满足。
[0040] 内容预下载的优先顺序可基于各种因素,包括但不限于:该内容项是否是在用户 遇到时(例如,当视频通过用户的社交网络新闻馈送而进入他们的视线时)在社交网络新闻 馈送中自动播放的一种;多少社交网络点赞或评论是与该内容项有关的;与该内容项有关 的社交网络点赞或评论的质量(例如,谁在视频上点赞或评论);关于客户端设备的细节(例 如,硬件或软件规格);客户端设备中的可用计算资源(例如,内存);该内容项将被用户遇到 的概率(例如,视频将通过用户的社交网络帖子馈送而进入他们的视线的可能性);内容项 的主题(例如,广告或非广告);以及对于访问(例如,播放)该内容项的用户偏好。基于优先 级的内容下载系统可实现为在客户端设备上本地运行的服务器进程。
[0041] 图1示出根据本发明的实施方式的示例性中间内容流式系统106和示例性基于优 先级的内容下载系统108。如所示的,客户端设备100包括中间内容流式系统106、基于优先 级的内容下载系统108以及客户端应用程序模块110。尽管图1将客户端设备100描述为具有 中间内容流式系统106和基于优先级的内容下载系统108,但是对于一些实施方式,客户端 设备100只包括一个(例如,中间内容流式系统106)而并不包括另一个(基于优先级的内容 下载系统108)。
[0042] 另外,如所示的,客户端设备100通过网络102通信地耦接至内容服务器104。根据 实施方式,客户端设备100可以是能够通过网络102与内容服务器104交换数据(诸如内容数 据)的台式计算机、膝上型电脑、平板计算设备、数据使能移动电话或一些其他网络使能设 备。网络102可支持各种网络协议并且可包括诸如计算机网络的通信网络。网络102可包括 一个或多个有线或无线网络,包括各自提供不同的数据速度、带宽以及吞吐量的802. llWi-Fi、第三代(3G)、第四代(4G)网络以及第五代(5G)网络。网络102可将来自从内容服务器104 的内容项提供至一个或多个中间内容流式系统106和基于优先级的内容下载系统108。根据 实施方式,网络102可促进客户端设备100、中间内容流式系统106、基于优先级的内容下载 系统108以及内容服务器104中的一个或多个内的内部部件的耦接。
[0043] 在描述中间内容流式系统106和基于优先级的内容下载系统108时,有用的是,首 先描述客户端设备1〇〇的客户端应用程序模块110。根据一些实施方式,客户端应用程序模 块110是被配置为促进用户与客户端设备100之间的交互的基于软件的部件或独立应用程 序。例如,客户端应用程序模块110可以是被配置为在客户端设备100上运行并允许用户访 问社交网络系统并与其中提供的各种内容交互的独立应用程序。如本文更详细描述的,社 交网络系统可用于在一个或多个社交网络用户中分配或共享内容项。
[0044] 如所示的,客户端应用程序模块110包括内容访问模块112以便促进通过客户端应 用程序模块110对一类或多类内容项的访问。尽管在图1中内容访问模块112描述为被客户 端应用程序模块110包括,但是内容访问模块112可以是被配置为在客户端设备100上运行 并促进对一个或多个内容类型的访问的基于软件的部件或独立应用程序。例如,当客户端 设备100上的用户通过客户端应用程序模块110访问内容项时,内容访问模块112可以是客 户端应用程序模块110外部的且由客户端应用程序模块110采用的软件部件。例如,客户端 应用程序模块110可以是访问社交网络系统的网页的网络浏览器,并且客户端应用程序模 块110可利用诸如多媒体播放器的内容访问模块112来访问嵌入在网页中的多媒体内容项 (例如,音频或视频)。
[0045] 如本文使用的,访问内容项可包括打开内容项并读取、写入或编辑与内容项有关 的内容数据。例如,访问视频内容项可包括打开视频内容项、读取与视频内容项有关的视频 内容数据并且在耦接至客户端设备1〇〇的显示器中显示视频内容数据。用于访问内容项的 方法可根据内容类型改变。在内容项的位置远离客户端设备1〇〇(例如,位于内容服务器104 中)并且通过网络102接收(例如,从内容服务器104)该内容项时,内容访问模块112可经由 通过网络102传输的数据流(下文中,"内容数据流")的方式来访问内容项。内容访问模块 112可通过将通过相关联内容数据流接收的内容项中的至少一些存储(例如,提交)至内容 缓冲数据存储114,来促进对内容项的这种基于流的访问。例如,为了访问从内容服务器104 流至客户端设备100的内容项,从内容服务器104接收的内容数据流可首先存储至内容缓冲 数据存储114,并且内容访问模块112可访问存储至内容缓冲数据存储114的内容数据以便 访问内容项的对应于存储的内容数据的部分。如本文更详细描述的,内容访问模块112可通 过中间内容流式系统106、基于优先级的内容下载系统108或这两者的一些组合来接收数据 流。
[0046] 内容缓冲数据存储114可使内容访问模块112在被访问之前缓冲一定量的内容项, 由此促进客户端设备100上的用户更顺利地或更连续地访问内容项。例如,内容缓冲数据存 储114可使内容访问模块112在视频被访问(例如,播放)或对客户端设备100上的用户可访 问(例如,可播放)之前,缓冲流式视频的前1 〇秒。在内容访问模块112通过网络102访问来自 内容服务器104的内容项作为易受网络状况影响的内容数据流时,内容缓冲数据存储114可 能尤其有用,网络状况可导致内容数据流不一致(例如,数据包延迟、数据包误差、网络连接 的临时断开或网络速度的降低)。
[0047] 内容缓冲数据存储114可被配置为临时存储用于内容项的目前由用户通过内容访 问模块112访问的至少那些部分的内容数据。此外,内容缓冲数据存储114可被配置为临时 存储用于内容项的最近由用户通过内容访问模块112访问的那些部分的内容数据,由此能 够重新访问这些部分而不必重新从在线源(例如,内容服务器104)检索。
[0048]为了实现临时数据存储,内容缓冲数据存储114可基于存储限制、数据年龄、上次 访问时间、访问频率、内容数据类型、与内容项的部分的对应、内容数据对应的内容项的优 先级等,来移除(例如,清理)内容数据。例如,当目前存储在内容缓冲数据存储114上的总的 内容数据满足或超过存储限制时,内容数据可从内容缓冲数据存储114排出。在另一实例 中,基于内容数据何时被接收(例如,30秒前接收)或者内容数据何时对应于过去访问的内 容项的部分(例如,对应于超过30秒之前访问的部分),内容数据可从内容缓冲数据存储114 排出。
[0049]当用于内容项的内容数据通过网络102从内容服务器104流至客户端设备100时, 中间内容流式系统106可被配置为在客户端设备上本地缓存内容项。客户端设备100上的可 被包括在客户端应用程序模块110中的内容访问模块112可经由中间内容流式系统106从内 容服务器104请求内容项,并且中间内容流式系统106反过来可向内容访问模块112提供内 容项(例如,音频)中的一些或所有作为内容数据(例如,音频数据)的流。这可通过中间内容 流式系统106代表内容访问模块112通过网络102请求并获取来自内容服务器104的内容数 据来完成。来自内容服务器104的内容数据可由中间内容流式系统106接收作为数据流。当 用于请求的内容项的内容数据从内容服务器104流至中间内容流式系统106时,中间内容流 式系统106可向内容访问模块112提供内容数据。此外,当中间内容流式系统106从内容服务 器104接收流式内容数据时,它可在客户端设备100上本地缓存流式内容数据(例如,存储至 被系统106包括的内容缓存数据存储)并且保持缓存内容数据用于将来对于相同内容项的 请求的益处。在内容数据已被本地缓存在客户端设备100上之前或之后或者与内容数据被 本地缓存在客户端设备100上同时,中间内容流式系统106可向内容访问模块112提供流式 内容数据。当将用于请求的内容项的内容数据提供至内容访问模块112时,中间内容流式系 统106可提供内容数据作为数据流。此外,从中间内容流式系统106向内容访问模块112的数 据流可在格式或协议上相似于从内容服务器104向中间内容流式系统106提供用于请求的 内容项的内容数据的数据流。
[0050]根据一些实施方式,缓存的内容数据与保留在客户端设备100上的各种内容访问 模块的缓冲器中的内容数据独立保留。此外,根据一些实施方式,相比内容访问模块的缓冲 器保留内容数据的持续时间,缓存的内容数据保留的持续时间更长。根据实施方式,中间内 容流式系统106可实现为在客户端设备100上本地运行的服务器进程。
[0051 ]由中间内容流式系统106从内容访问模块112接收的请求可利用各类网络协议,包 括HTTP、FTP、RTP等。类似地,从中间内容流式系统106发送至内容服务器104的请求可利用 各类网络协议。对于一些实施方式,从中间内容流式系统106发送至内容服务器104的请求 可在格式上相似于或对应于中间内容流式系统106从用于内容项的内容访问模块112接收 的请求。
[0052]在接收的关于内容项的本地缓存内容数据从内容服务器104流至客户端设备100 之后,中间内容流式系统106可接收用于相同内容项的另一请求。该另一请求可来自客户端 设备100上的先前请求相同内容项的内容访问模块(例如,内容访问模块112)或者由客户端 设备100上的另一客户端访问模块。中间内容流式系统106可通过从本地缓存提供对应于内 容项的先前由中间内容流式系统106接收的那些部分的内容数据来满足请求。中间内容流 式系统106也可通过从内容服务器104请求并随后向请求内容访问模块(例如,内容访问模 块112)提供用于内容项的先前未由中间内容流式系统106接收的那些部分的内容数据来满 足请求。以此方式,中间内容流式系统106可使客户端设备100上的独立内容访问模块受益 于在内容项的先前流式会话过程中已本地缓存在客户端设备中的内容数据。
[0053]例如,用户可使用内容访问模块112通过客户端应用程序模块110选择预览由社交 网络系统提供的流式视频内容项。当用户预览流式视频内容项时,内容访问模块112可被配 置为提供流式视频内容项的小于全屏的视图。随后,用户可使用第二内容访问模块(未示 出)通过客户端应用程序模块110选择浏览流式视频内容项,该第二内容访问模块在客户端 设备100上提供流式视频内容项的全屏视图。当第二内容访问模块请求访问相同流式视频 内容项时,中间内容流式系统106可从其本地缓存向涉及流式视频内容项的客户端设备100 提供已经在先前流式会话过程中接收的流式视频内容项的那些部分。使用的部分可包括在 涉及预览内容访问模块112的先前会话的过程中接收的那些部分。
[0054] 根据请求,中间内容流式系统106可被配置为基于具体搜索时间(例如,晚于视频 开始的时间)向客户端设备1 〇〇上的内容访问模块(例如,内容访问模块112)提供用于内容 项的内容数据,由此消除中间服务器从开始或完全请求并接收内容项的必要。例如,基于用 户在客户端设备1〇〇上的选择,内容访问模块112可传输访问由内容服务器104提供的流式 视频内容项的具体部分的请求,其中,该部分对应于流式视频内容项中的具体时间位置(例 如,具体分钟和秒)。中间内容流式系统106可接收请求并基于请求识别什么内容数据需要 被提供至内容访问模块112来满足用于对应于具体时间位置的具体部分的请求。例如,基于 识别的内容数据,中间内容流式系统106可从其本地缓存向内容访问模块112提供内容数 据,从内容服务器104获得内容数据并随后向内容访问模块112提供获得的内容数据;或者 这两者。
[0055] 根据实施方式,用于内容项的从内容访问模块112向内容服务器104的最初请求可 定址至、转发至中间内容流式系统106或者由中间内容流式系统拦截。例如,内容访问应用 程序可被配置为直接向中间内容流式系统106发送用于由在线内容源(例如,内容服务器 104)提供的内容项的请求。中间内容流式系统106反过来可以以可用的程度从本地缓存向 内容访问模块112提供用于请求的内容项的内容数据,可从内容服务器104获得不存在于本 地缓存中的内容数据并随后向内容访问模块112提供所获得的内容数据,或者这两者。以此 方式,当满足内容访问模块的请求所需的内容数据未被本地缓存时,中间内容流式系统106 可代表客户端设备100上的内容访问模块112以及其他内容访问模块从内容服务器104请求 内容数据。
[0056] 基于优先级的内容下载系统108可被配置为在向客户端设备100上的用户呈现对 内容项的访问之前,促进基于优先级将内容项预下载至客户端设备1〇〇。例如,在客户端设 备100上的用户遇到这种帖子(例如,浏览这种帖子)之前,出现在张贴至社交网络系统的帖 子中的流式在线内容项(例如,视频内容项)可部分或完全地由基于优先级的内容下载系统 108预下载至客户端设备100。客户端设备100上的社交网络用户可在社交网络新闻馈送中 遇到这种帖子,其中,一个或多个新闻帖子包括一个或多个在线内容项。当用户通过客户端 应用程序模块110浏览新闻馈送时,在这种新闻帖子通过新闻馈送对用户(例如,新闻馈送 的用户)可访问之前,被包括在新闻馈送的一个或多个新闻帖子中的内容项可整体或部分 地预下载至客户端设备100。
[0057] 一旦内容项通过基于优先级的内容下载系统108预下载至客户端设备100,它可存 储至客户端设备100的本地缓存。根据一些实施方式,基于优先级的内容下载系统108利用 相同缓存作为中间内容流式系统106。通过以此方式共享本地缓存,中间内容流式系统106 可与基于优先级的内容下载系统108互操作。例如,在呈现内容项用于在客户端设备100上 访问之前,基于优先级的内容下载系统108可将内容项中的至少一些预下载至与中间内容 流式系统106共享的本地缓存,并且在由中间内容流式系统106接收到用于内容项的请求之 前,也这样做。随后,当用于内容项的请求由中间内容流式系统106接收时,该请求可使用内 容项的通过基于优先级的内容下载系统预下载至本地缓存的部分由中间内容流式系统满 足。
[0058]如本文更详细描述的,内容预下载的优先顺序可基于各种因素,包括但不限于:该 内容项是否是在客户端设备100上的用户遇到时在社交网络新闻馈送中自动播放的一种; 多少社交网络点赞或评论是与该内容项有关的;与该内容项有关的社交网络点赞或评论的 质量;关于客户端设备100的细节;客户端设备中的可用计算资源;该内容项将被客户端设 备100上的用户遇到的概率;内容项的主题;以及对于访问该内容项的用户偏好。基于优先 级的内容下载系统108可实现为在客户端设备100上本地运行的服务器进程。
[0059] 内容服务器104可通过网络102向客户端设备100提供内容项,诸如音频、视频或其 他多媒体内容项。如本文更详细描述的,内容项可包括文本、图像、音频、视频、交互式内容 项等。内容项可包括诸如音频或视频广告的广告,并且可包括由用户通常通过网络共享的 内容项,诸如在线音频或视频流。内容项也可嵌入其他内容项中,诸如,嵌入文本消息中的 视频。内容项也可包括向音乐文件、视频文件、文档等的超链接,该超链接可由内容服务器 104通过网络102提供至客户端设备100。以此方式,内容服务器104不需要提供实际内容项 (例如,音乐、视频、文档等),但是相反,可提供对在线内容资源可获得的内容项的网络位置 的链接,诸如基于云的服务或服务器。在一些实施方式中,包括向第二内容项内的第一内容 项的超链接导致第一内容项嵌入第二内容项中。
[0060] 内容项可包括传统下载的那些或者传统地流至客户端设备100的那些。例如,对在 线提供的多媒体文件的访问可经由向客户端设备的数据流促进,或者经由首先将多媒体文 件下载至客户端设备并随后促进对客户端设备上的下载的多媒体文件的访问。因此,在一 些实施方式中,内容项(例如,音频或视频文件)可由内容服务器104提供至客户端设备100 作为内容数据的流。如本文描述的,当从内容服务器104接收流式内容数据时,客户端设备 100可通过中间内容流式系统106、基于优先级的内容下载系统108或者这两者向内容访问 模块112提供流式内容数据。内容访问模块112反过来可将流式内容数据临时存储至内容缓 冲数据存储114,并且内容访问模块112可向客户端设备100上的用户提供对内容项的对应 于内容缓冲数据存储114中的数据的那些部分的访问。
[0061 ] 在一些实施方式中,内容服务器104被合并至如图7所示的社交网络环境700内。例 如,内容服务器104可由外部系统(诸如在图7中具有参考标号722的一个)实现。此外,中间 内容流式系统106、基于优先级的内容下载系统108或者这两者可分别以参考标号718和720 合并至如图7所示的社交网络环境700。
[0062] 图1中以及本文所有图中示出的部件仅是示例性的,并且其他实施方式可包括另 外的、更少的或不同的部件。如另一实例,将理解,一些实施方式可包括两个或多个客户端 设备或两个或多个内容服务器。此外,一些部件可能未在图1以及本文的其他图中示出,以 便不混淆相关细节。
[0063] 图2示出根据本发明的实施方式的中间内容流式系统106。在图2中,中间内容流式 系统106包括客户端内容请求模块200、内容缓存模块202、服务器内容请求模块204、内容流 式模块206、内容清理模块208以及内容缓存数据存储210。根据一些实施方式,内容缓存数 据存储210用作用于客户端设备(例如,客户端设备100)的由中间内容流式系统106服务的 本地缓存。对于一些实施方式,内容缓存数据存储210用作在本文描述的中间内容流式系统 106与基于优先级的内容下载系统之间共享的本地缓存。图2所示的部件可包括另外的、更 少的或不同的部件。此外,一些部件可能未在图2中示出,以便不混淆相关细节。
[0064] 客户端内容请求模块200可被配置为从客户端访问模块接收用于内容项的请求, 其中,内容项由内容服务器通过网络提供。根据实施方式,客户端内容请求模块200可经由 转发或经由拦截直接从客户端访问模块接收请求。接收的请求可以是包括各种网络协议 (包括HTTP、FTP和RTP)的一个。客户端内容请求模块200也可被配置为分析接收的请求并获 得可用来满足该请求的信息。例如,通过分析请求,客户端内容请求模块200可识别请求的 内容项,识别内容项所搜索的内容服务器,识别请求的类型,或者识别内容项的具体请求部 分(例如,内容项中的时间位置)。
[0065] 基于请求分析,客户端内容请求模块200可识别对应于内容项的存储在内容缓存 数据存储210上的一个或多个识别部分的第一组内容数据。在内容缓存数据存储210中的内 容数据不对应于内容项的识别部分时,第一组内容数据可以是空的或者可不生成第一组内 容数据。此外,基于请求分析,客户端内容请求模块200也可识别对应于内容项的未存储在 内容缓存数据存储210上(或从内容缓存数据存储丢失)的一个或多个识别部分的第二组内 容数据。在所有内容项已被接收并存储至内容缓存数据存储210 (例如,在先前的内容流式 会话过程中)时,第二组内容数据可以是空的或者可不生成第二组内容数据。
[0066] 识别第一组内容数据、第二组内容数据或者这两者可包括检查用于存储的对应于 请求的内容项的内容数据的内容缓存数据存储210,并且确定存储的内容数据是否对应于 由内容访问模块请求的具体部分。此外,识别第二组内容数据可包括将存储在内容缓存数 据存储中的内容数据与从由内容访问模块从其请求内容项的内容服务器中可获得的内容 数据相比较。
[0067] 内容缓存模块202可被配置为促进对内容缓存数据存储210的访问。例如,内容缓 存模块202可用于确定哪些内容数据存储在内容缓存数据存储210上,确定哪些内容数据从 内容缓存数据存储210丢失,促进内容数据存储至内容缓存数据存储210 (例如,当从内容服 务器104接收时),或者促进内容数据从内容缓存数据存储210移除(例如,由内容清理模块 208)。内容缓存模块202也可获得关于存储在内容缓存数据存储210上的内容数据的信息, 包括但不限于:内容数据年龄、上次访问的时间以及元数据等。内容缓存模块202可进一步 用于获得内容数据,并且向中间内容流式系统106提供响应于内容访问模块的请求而被提 供至内容访问模块的内容数据。
[0068] 服务器内容请求模块204可被配置为生成请求并向内容服务器提交对应于内容项 的从内容缓存数据存储210丢失的识别部分的第二组内容数据。根据一些实施方式,服务器 内容请求模块204提交对于第二组内容数据的请求,并且作为响应接收请求的第二组内容 数据中的一些或所有。通过服务器内容请求模块204提交的请求可在格式或协议上相似于 由客户端内容请求模块200从客户端设备的内容访问模块原始接收的请求。当从内容服务 器接收内容数据时,在该内容数据提供至请求内容项的内容访问模块(例如,经由内容流式 模块206)之前,服务器内容请求模块204可将接收的内容数据存储至内容缓存数据存储210 (例如,经由内容缓存模块202)。
[0069] 内容流式模块206可被配置为向请求内容项的内容访问模块提供在中间内容流式 系统106中接收的内容数据作为数据流。根据一些实施方式,内容流式模块206生成内容数 据流并随后提供该内容数据流,该内容数据流可在格式或协议上相似于响应于服务器内容 请求模块204的请求而从内容服务器接收的内容数据流。内容数据流可包括由内容缓存模 块202从内容缓存数据存储210提供的内容数据,由服务器内容请求模块204从提供请求的 内容项的内容服务器获得和提供的内容数据,或者这两者。根据一些实施方式,通过服务器 内容请求模块204获得的内容数据首先存储至内容缓存数据存储210 (例如,经由内容缓存 模块202 ),并且内容流式模块206生成来自存储至内容缓存数据存储210的内容数据的内容 数据流。
[0070] 内容清理模块208可被配置为存储在内容缓存数据存储210上的内容数据,大量因 素,包括但不限于:客户端设备的存储限制、内容数据的年龄、内容数据的上次访问时间、内 容数据的访问频率、内容数据的类型、与内容项的部分的对应、内容数据对应的内容项的优 先级等。根据一些实施方式,在清理对应于具有较高优先级的第二内容项的内容数据之前, 内容清理模块208清理对应于具有较低优先级的第一内容项的内容数据。本文描述关于确 定内容项的优先级的更多细节。
[0071] 图3示出根据本发明的实施方式的基于优先级的内容下载系统108。在图3中,基于 优先级的内容下载系统108包括新闻馈送监控模块300、内容优先级模块302、内容预下载模 块304、内容缓存模块306以及内容缓存数据存储308。根据一些实施方式,内容缓存数据存 储308用作用于客户端设备(例如,客户端设备100)的由基于优先级的内容下载系统108月艮 务的本地缓存。对于一些实施方式,内容缓存数据存储308用作在本文描述的基于优先级的 内容下载系统108与中间内容流式系统之间共享的本地缓存。图3所示的部件可包括另外 的、更少的或不同的部件。此外,一些部件可能未在图3中示出,以便不混淆相关细节。
[0072] 新闻馈送监控模块300可被配置为监控用于通过新闻馈送对用户可访问的一个或 多个内容项的新闻馈送。如本文更详细描述的,新闻馈送可包括一个或多个新闻帖子,其中 的每一个可包括一个或多个内容项。监控的新闻馈送可以是由社交网络系统提供的并且通 过独立应用程序(诸如访问社交网络网页的社交网络应用程序或网络浏览器)可访问的一 种。由新闻馈送监控模块300监控的内容项可以是目前通过新闻馈送对用户可见的那些(例 如,包括在目前对用户可见的新闻帖子中的一种),被调度为通过新闻馈送呈现的那些,或 者这两者。
[0073]在监控过程中,新闻馈送监控模块300可识别被调度为通过新闻馈送呈现至用户 的一个或多个内容项。如本文更详细描述的,被调度为通过新闻馈送呈现的内容项可以是 包括在被调度为呈现在新闻馈送上的新闻帖子中的一种。此外,被调度为呈现在新闻馈送 上的新闻帖子可以是:尚未被添加至新闻馈送的一种、在先前从新闻馈送移去之后尚未被 添加回至新闻馈送的一种、已被添加至新闻馈送但用户尚未浏览该新闻馈送的一种或者用 户已至少一次浏览新闻馈送但是用户目前未在浏览的一种。新闻馈送监控模块300可被配 置为周期性或连续地检测一个或多个内容项。在新闻馈送由社交网络系统提供时,新闻馈 送监控模块300可使用由社交网络系统保持的社交图谱数据来监控用于内容项的新闻馈 送。
[0074]内容优先级模块302可被配置为基于关于内容项的因素确定给定内容项的优先 级。根据实施方式,内容项的优先级可用于确定:预下载内容项的顺序(例如,首先预下载具 有较高优先级的内容项),本地缓存的内容数据应从客户端设备清理(例如,首先清理具有 较低优先级的用于内容项的内容数据)的顺序,或者内容项是否应被预下载(例如,基于内 容项的优先级是否满足用于预下载的阈值)。在一些实施方式中,优先级可相对于给定内容 项来确定其他操作。确定用于内容项的优先级可基于任意数量的因素,包括但不限于:内容 项对用户可见时是否自动播放;内容项是否与广告有关;用户的偏好;客户端设备的资源的 可用性(例如,内存、处理器速度、网络带宽等);内容项的内容类型(例如,流式视频、音频或 展示);第一内容项的元数据(例如,作者、出版商、主题、标题等);与内容项有关的社交网络 信息。对于一些实施方式,社交网络信息包括:由社交网络上的社交网络用户对内容项的点 赞的量(例如,由作为好友或亲密家庭成员的社交网络用户点赞的内容项的优先级较高)、 由社交网络上的社交网络用户对内容项的分享的量(例如,点赞越多,内容项越受欢迎,因 此优先级越高)或者由社交网络上的社交网络用户做出的与内容项有关的评论的量(例如, 评论越多,内容项越有趣,因此优先级越高)。社交网络信息可识别在社交网络上对第一内 容项点赞的一个或多个社交网络用户,识别在社交网络上分享第一内容项的一个或多个社 交网络用户,或者识别在社交网络上评论第一内容项的一个或多个社交网络用户。用于确 定内容项的优先级的社交信息可由被社交网络系统保持的社交图谱提供以支持其各种特 征。
[0075] 内容预下载模块304可被配置为将一个或多个内容项整体或部分地预下载至客户 端设备,其中,内容项被调度为呈现在由新闻馈送监控模块300监控的新闻馈送中。此外,内 容预下载模块304可被配置为在客户端设备上的客户端访问模块请求访问客户端项目之 前,将一个或多个内容项整体或部分地预下载至客户端设备。如本文更详细描述的,一旦内 容项的内容数据由内容预下载模块304预下载至客户端设备,它可存储至内容缓存数据存 储308。随后,可尽可能地向请求访问预下载的内容项的内容访问模块提供来自内容缓存数 据存储308的内容数据。以此方式,相比必须直接从内容服务器获得用于内容项的内容数 据,对内容项的至少预下载部分的访问可更快。在少于与内容项有关的所有内容数据的内 容数据被存储至内容缓存数据存储308时,内容访问模块可直接从内容服务器获得需要的 内容数据,通过本文描述的中间内容流式系统获得需要的内容数据,或者通过使用这两者 的一些组合。
[0076] 根据实施方式,由内容预下载模块304预下载的给定内容项的多少可取决于各种 因素,包括但不限于:用户偏好(例如,只预下载前30秒);系统偏好(例如,社交网络系统默 认设置);内容项的总大小、内容项的类型(例如,视频或音频内容项);内容项的优先级(例 如,由内容优先级模块302确定的);客户端设备的资源的可用性(例如,内存、处理器速度、 网络带宽等);与客户端设备上的用户的相关性;以及客户端设备上的用户感兴趣的可能 性。例如,相比具有低优先级的内容项,具有高优先级的内容项可具有被预下载的更多内容 数据。
[0077] 内容缓存模块306可被配置为促进对内容缓存数据存储308的访问。例如,内容缓 存模块306可用于确定哪些内容数据存储在内容缓存数据存储308上,确定哪些内容数据从 内容缓存数据存储308丢失,促进将内容数据存储至内容缓存数据存储308 (例如,如接收的 由内容预下载模块304预下载的)或者促进从内容缓存数据存储308移除内容数据。内容缓 存模块306也可获得关于存储在内容缓存数据存储308上的内容数据的信息,包括但不限 于:内容数据年龄、上次访问的时间、元数据等。
[0078] 尽管图3相对于新闻馈送描绘和描述,但是在一些实施方式中,基于优先级的内容 下载系统108与用于分配内容项(包括但不限于,通过独立应用程序提供的内容项或嵌入由 网络浏览器可视的网页的内容项)的其他方法一起使用。
[0079] 图4示出根据本发明的实施方式使用的示例性新闻馈送400。新闻馈送400可以是 由社交网络系统提供的一个,并且可被配置为提供一个或多个新闻项(下文中,"新闻帖 子"),该一个或多个新闻项中的每一个描述检测的一个或多个事件或发布至社交网络系统 的一个或多个事件。例如,新闻馈送400可包括基于支持社交网络系统的社交图谱数据的节 点、矢线或系数的一个或多个新闻帖子。
[0080] 如本文更详细描述的,社交网络系统可生成并保持包括由多条矢线互连的多个节 点的"社交图谱",其中,社交图谱中的每个节点可表示可影响另一节点和/或可被另一节点 影响的实体。社交图谱可包括各类节点,包括例如,可由社交网络系统中的对象表示的用 户、非人类实体、内容项、网页、群组、活动、消息、概念以及任意其他事物。此外,社交图谱可 包括反映社交图谱中的节点之间的路径的权重以及用作社交图谱中的节点之间的相关性 的测量(例如,基于权重,系数可指示相比与用户结交的另一人,用户与她最好的朋友更亲 近)的系数。因此,基于被包括在社交图谱数据中的节点、矢线或系数,根据关于社交网络系 统的社交图谱中的给定节点的一个或多个新闻帖子,新闻馈送400可填入有那些新闻帖子。 例如,新闻馈送400可以是相对于表示特定社交网络用户的节点生成的自定义社交网络新 闻馈送。
[0081 ] 如图4所示,新闻馈送400包括多个新闻帖子402-1、402-2、402-3、402-4以及402-5 (下文中,"新闻帖子402")。新闻馈送400可经由社交网络系统提供,并且通过独立应用程序 可访问,诸如访问社交网络网页的社交网络应用程序或网络浏览器。在图4中,新闻帖子P-1 和P-2可以是已经由用户通过客户端设备显示器404浏览的新闻帖子,同时新闻帖子P+1和P +2可以是被调度为通过客户端设备显示器404呈现以用于由客户端设备的用户访问的新闻 帖子。根据实施方式,新闻帖子402可根据它们发布在新闻馈送400中的顺序而被浏览。如本 文更详细使用的,被调度为呈现在新闻馈送上的新闻帖子或内容项可包括例如,尚未被添 加至新闻馈送的一种、在先前从新闻馈送移去之后尚未被添加回至新闻馈送的一种、已被 添加至新闻馈送但用户尚未浏览该新闻馈送的一种或者用户已至少一次浏览新闻馈送但 是用户目前未在浏览的一种。
[0082]根据实施方式,新闻帖子402中的每一个可包括一个或多个内容项。当包括内容项 时,新闻帖子402可包括经由超链接、经由将内容项嵌入新闻帖子的内容或者这两者的内容 项。在社交网络系统的情景下,新闻馈送400可基于各种因素(包括对支持社交网络系统的 社交图谱数据的一个或多个改变或者目前浏览新闻馈送400的社交网络用户的行为)与其 他新闻帖子一起更新。对社交图谱数据的改变可包括社交网络事件作为节点被添加至社交 图谱数据的时间。基于那些添加的节点与目前浏览新闻馈送400的用户的关系,新闻帖子可 被添加至新闻馈送400。
[0083]另外如图4所示,新闻馈送400相对于客户端设备显示器404定位,使得新闻馈送 400的某些部分通过客户端设备显示器404可见。如图4所示,新闻馈送400相对于客户端设 备显示器404的位置可使得通过客户端设备显示器404浏览新闻馈送400的用户只看新闻帖 子P0、新闻帖子P-1的底部以及帖子P+1的顶部。当用户相对于客户端设备显示器404垂直地 重新定位新闻馈送4 0 0 (例如,基于用户向客户端设备的输入,向上或向下滚动新闻馈送 400)时,新闻帖子402中的一些或所有对客户端设备显示器404上的用户的可见度可增加或 减少。此外,当用户相对于客户端设备显示器404垂直地重新定位新闻馈送400时,新闻馈送 400可自动填入有其他新闻帖子,将目前在新闻馈送400上的新闻帖子去掉,或者这两者。例 如,如果用户向下重新定位新闻馈送400使得新闻馈送400的新闻帖子P+2进入客户端设备 显示器404的视图,新闻帖子P-2可从新闻馈送400的顶部移除,并且新闻帖子P+3(未示出) 可被添加至新闻馈送400的底部。
[0084]如本文更详细描述的,相对于新闻馈送400,新闻帖子P+1和新闻帖子P+2可被视为 被调度为用于向用户最终呈现用于通过新闻馈送400访问的新闻帖子(当它们尚未由用户 通过客户端设备显示器404浏览时)。在一些实施方式中,新闻馈送400的各个方面(诸如行 为、方位、外观以及操作)可与在图4中描绘的或本文描述的不同。
[0085]通过新闻馈送400,包括在新闻帖子402的一个中的内容项可对客户端设备上的用 户可访问。例如,一旦包括在新闻馈送400中的新闻帖子变得通过客户端设备显示器404可 见,包括在新闻帖子中的任意内容项(例如,流式视频内容项)可对客户端设备上的用户可 访问。根据一些实施方式,在具有内容项的新闻帖子402中的一个变得通过新闻馈送400可 访问之前,基于优先级的内容下载系统可将内容项整体或部分地预下载至客户端设备。例 如,在用户相对于新闻馈送400重新定位客户端设备显示器404使得新闻帖子P+2通过客户 端设备显示器404变得可见(并且在浏览时,变得对用户可访问)之前,包括在新闻帖子P+2 中的任意内容项可被整体或部分地预下载至客户端设备。如此,新闻帖子P+2-进入客户端 设备显示器404的视图,包括在新闻帖子P+2中的内容项就将易于访问(例如,自动播放的视 频或音频)。根据一些实施方式,基于优先级的内容下载系统确定用于包括在新闻帖子P+1 中的第一内容项的第一优先级;确定用于包括在新闻帖子P+2中的第二内容项的第二优先 级;如果第一优先级高于(或等于)第二优先级,则在预下载第二内容项之前,将第一内容项 中的一些或所有预下载至客户端设备;并且如果第二优先级高于第一优先级,则在预下载 第一内容项之前,将第二内容项中的一些或所有预下载至客户端设备。
[0086]图5示出根据本发明的实施方式的用于中间内容流的示例性过程500。根据一些实 施方式,过程500可以是由客户端设备100上的中间内容流式系统106执行的一个。在方框 502中,可由内容访问应用程序从内容服务器接收用于内容项的请求。如本文更详细描述 的,内容访问应用程序可在客户端设备上运行,并且可由内容访问应用程序在相同客户端 设备上接收请求。根据实施方式,可经由直接接收、转发(例如,客户端设备上的部件被配置 为转发方框502的所有在线内容项请求用于处理)或拦截来接收请求。此外,请求可包括一 类或多类网络协议,包括但不限于,HTTP、FTP以及RTP。
[0087]在方框504中,可分析请求。通过分析请求,过程500可识别被请求的内容项,识别 从其搜索内容项的内容服务器,识别请求类型,或者识别内容项的具体请求部分(例如,内 容项中的时间位置)。
[0088]在方框506中,可识别请求的内容项的一个或多个部分。例如,过程500可利用由方 框504提供的请求分析来识别内容项的请求部分。
[0089]在方框508中,可识别第一组内容数据,由此,第一组内容数据对应于内容项的存 储在本地缓存上的一个或多个识别部分。在本地缓存中没有内容数据对应于内容项的识别 部分时,第一组内容数据可以是空的,可不生成第一组内容数据,或者可跳过方框508和510 中的一个或两个。对于一些实施方式,本地缓存所位于的客户端设备与在方框502中接收用 于内容项的请求并运行请求内容项的客户端访问应用程序的客户端设备相同。识别第一组 内容数据可包括:检查用于存储的对应于请求的内容项的内容数据的本地缓存,并且确定 存储的内容数据是否对应于由内容访问应用程序请求的具体部分。
[0090] 在方框510中,第一组内容数据中的至少一些从本地缓存提供至内容访问应用程 序。如本文更详细提及的,本地缓存所位于的客户端设备与在方框502中接收用于内容项的 请求并运行请求内容项的客户端访问应用程序的客户端设备相同。此外,内容数据可从本 地缓存提供至内容访问应用程序作为内容数据流。
[0091] 在方框512中,可识别第二组内容数据,由此,第二组内容数据对应于内容项的从 本地缓存丢失的一个或多个识别部分。在所有内容项已被接收并存储至本地缓存(例如,在 先前的内容流式会话过程中)时,第二组内容数据可以是空的,可不生成第二组内容数据, 或者可跳过方框512-520中的一个或多个。如本文更详细提及的,本地缓存所位于的客户端 设备与在方框502中接收用于内容项的请求并运行请求内容项的客户端访问应用程序的客 户端设备相同。此外,识别第二组内容数据可包括:检查用于存储的对应于请求的内容项的 内容数据的本地缓存,并且确定存储的内容数据是否对应于由内容访问应用程序请求的具 体部分。此外,识别第二组内容数据可包括:将存储在内容缓存中的内容数据与从由内容访 问应用程序从其请求内容项的内容服务器中可获得的内容数据相比较。
[0092] 在方框514中,可从内容服务器请求第二组内容数据中的至少一些,并且在方框 516中,从内容服务器接收来自内容服务器的内容数据。根据一些实施方式,过程500利用由 方框504提供的请求分析生成一请求,该请求向内容服务器请求第二组内容数据。基于分 析,过程500可生成向内容服务器的请求,该请求相似于(例如,形式或协议上)在方框502中 从内容访问应用程序接收的请求。在方框516中,可接收来自内容服务器的内容数据作为数 据流,并且该数据流可相似于如果内容服务器将内容数据直接提供至内容访问应用程序 (例如,如果中间内容流式系统106不包括在内容数据流中),从内容服务器提供至内容访问 应用程序的数据流。
[0093] 在方框518中,从内容服务器接收的第二组内容数据(例如,响应于方框514的请 求)可存储至本地缓存。如本文更详细提及的,本地缓存所位于的客户端设备与在方框502 中接收用于内容项的请求并运行请求内容项的客户端访问应用程序的客户端设备相同。
[0094] 在方框520中,第二组内容数据中的至少一些可从本地缓存提供至内容访问应用 程序。与方框510相似,内容数据可从本地缓存提供至内容访问应用程序作为内容数据流。 对于一些实施方式,由方框510、方框520中的任一个或两者提供至内容访问应用程序的数 据流可与在方框516中用于从内容服务器接收内容数据的数据流相似。
[0095] 根据实施方式,图5所示的操作可以以示出顺序以外的可替换顺序执行,并且一个 或多个操作可串行或大致并行地执行。例如,涉及第一组内容数据的方框508的操作可与涉 及第二组内容数据的一个或多个方框512、514、516和518的操作并行或大致并行地执行。在 另一实例中,方框518的操作与方框520的操作可并行或大致并行地执行。在又一实例中,方 框520的操作可在方框518的操作之前执行。对于一些实施方式,用于中间内容流的过程执 行比所示的那些操作更多或更少的操作。
[0096] 图6示出根据本发明的实施方式的用于基于优先级的内容下载的示例性过程600。 根据一些实施方式,过程600可以是由基于优先级的内容下载系统108执行的一个。在方框 602中,可监控客户端设备的显示器上的新闻馈送(例如,新闻馈送400)中的内容项。如本文 更详细描述的,被监控的内容项可以是目前通过新闻馈送对用户可见的那些,被调度为通 过新闻馈送呈现的那些,或者这两者。
[0097] 在方框604中,可识别被调度为通过新闻馈送呈现至用户的第一内容项。如本文更 详细描述的,被调度为通过新闻馈送呈现的内容项可以是包括在被调度为呈现在新闻馈送 上的新闻帖子中的一个。此外,被调度为呈现在新闻馈送上的新闻帖子可以是:尚未被添加 至新闻馈送的一个、在先前从新闻馈送移去之后尚未被添加回至新闻馈送的一个、已被添 加至新闻馈送但用户尚未浏览该新闻馈送的一个或者用户已至少一次浏览新闻馈送但是 用户目前未在浏览的一个。
[0098] 在方框606中,可确定用于第一内容项的第一优先级。如本文更详细描述的,确定 用于内容项的优先级可基于任意数量的因素,包括但不限于:内容项对用户可见时是否自 动播放;内容项是否与广告有关;用户的偏好;客户端设备的资源的可用性(例如,内存、处 理器速度、网络带宽等);内容项的内容类型(例如,流式视频、音频或展示);第一内容项的 元数据(例如,作者、出版商、主题、标题等);与内容项有关的社交网络信息。对于一些实施 方式,社交网络信息包括:由社交网络上的社交网络用户对内容项的点赞的量、由社交网络 上的社交网络用户对内容项的分享的量或者由社交网络上的社交网络用户做出的与内容 项有关的评论的量。社交网络信息可识别在社交网络上对第一内容项点赞的一个或多个社 交网络用户,识别在社交网络上分享第一内容项的一个或多个社交网络用户,或者识别在 社交网络上评论第一内容项的一个或多个社交网络用户。用于确定内容项的优先级的社交 信息可由被社交网络系统保持的社交图谱提供以支持其各种特征。
[0099] 在方框608中,可识别被调度为通过新闻馈送呈现至用户的第二内容项,并且在方 框610中,可确定用于第二内容项的第二优先级。可以以与在方框606中确定用于第一内容 项的第一优先级类似的方式确定用于第二内容项的第二优先级。
[0100] 在方框612中,基于考虑第二优先级的第一优先级,在第二内容项预下载至客户端 设备之前,第一内容项中的至少一些可预下载至客户端设备。例如,在比较第一优先级与第 二优先级并确定第一优先级高于第二优先级时,这可出现。当将内容项预下载至客户端设 备时,预下载的内容项的部分可存储在位于客户端设备上的本地缓存中。使用的本地缓存 可以是与本文描述的中间内容流式系统共享的一个。在一些实施方式中,内容项的预下载 可通过指示本文描述的中间内容流式系统代表过程600预下载内容来促进。
[0101] 在方框614中,基于考虑第一优先级的第二优先级,在第一内容项中的至少一些预 下载至客户端设备之后,第二内容项中的至少一些可预下载至客户端设备。根据一些实施 方式,在第一内容项开始预下载至客户端设备之后且在用于第一内容项的预下载完成之 前,第二内容项开始预下载至客户端设备。以此方式,如果可能,第一内容项和第二内容项 可大致并行地预下载至客户端设备。
[0102] 在方框616中,第一内容项可通过新闻馈送呈现至用户。此外,在方框618中,第二 内容项可通过新闻馈送呈现至用户。通过经由新闻馈送呈现内容项,内容项可变得通过新 闻馈送对用户可访问。在一些实施方式中,一旦内容项已被预下载至客户端设备并通过新 闻馈送呈现,当内容项处于用户的视线(例如,在客户端设备显示器404上)并被用户选择 (例如,用户选择播放内容项)时,该内容项被访问。在一些实施方式中,一旦内容项已被预 下载至客户端设备并通过新闻馈送呈现,当内容项进入用户的视线(例如,在客户端设备显 示器404上)时,自动访问(例如,自动播放)内容项。
[0103] 根据实施方式,图6所示的操作可以以所示顺序以外的可替换顺序执行,并且一个 或多个操作可串行或大致并行执行。此外,对于一些实施方式,用于基于优先级的内容下载 的过程执行比所示的操作更多或更少的操作。
[0104] 图7示出根据本发明的实施方式的用于社交网络环境700中的中间内容流和基于 优先级的内容下载的系统的网络示图的实例。社交网络环境700包括一个或多个用户设备 710、一个或多个外部系统722、社交网络系统730以及网络750。为了说明性目的,由图7示出 的社交网络环境700的实施方式包括单个外部系统722和单个用户设备710。然而,在其他实 施方式中,社交网络环境700可包括多个用户设备710和多个外部系统722。在某些实施方式 中,社交网络系统730由社交网络提供商操作,而外部系统722与社交网络系统730分开,这 是因为这些系统可由不同实体操作。然而,在各种实施方式中,社交网络系统730和外部系 统722共同操作,以将社交网络服务提供至社交网络系统730的用户(或成员)。在这个意义 上,社交网络系统730提供平台或支柱,其他系统(诸如,外部系统722)可使用该平台或支柱 来通过互联网将社交网络服务和功能提供至用户。
[0105] 用户设备710包括一个或多个计算设备,该一个或多个计算设备可从用户接收输 入并经由网络750传输和接收数据。在一个实施方式中,用户设备710是执行例如,微软视窗 兼容操作系统(0S)、苹果OS X和/或Linux分布的传统计算机系统。在另一实施方式中,用户 设备710可以是具有计算机功能的设备,诸如,智能电话、平板电脑、个人数字助理(PDA)、移 动电话等。用户设备710被配置为经由网络750通信。用户设备710可执行应用程序,例如,允 许用户设备710的用户与社交网络系统730交互的浏览器应用程序。在另一实施方式中,用 户设备710通过由用户设备710的本地操作系统(诸如,iOS和安卓)提供的应用程序编程接 口(API)与社交网络系统730交互。用户设备710被配置为使用有线和/或无线通信系统通过 可包括局域网和广域网的任意组合的网络750与外部系统722和社交网络系统730通信。
[0106] 在一个实施方式中,网络750使用标准通信技术和协议。因此,网络750可包括使用 诸如以太网、702.11、微波存取全球互通(111^乂)、36、46、〇)1^、6311、1^£、数字用户线路 (DSL)等技术的链路。同样,在网络750上使用的网络协议可包括多协议标签交换(MPLS )、传 输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮 件传输协议(SMTP)、文件传输协议(FTP)等。可使用包括超文本标记语言(HTML)和可扩展标 记语言(XML)的技术和/或格式表示通过网络750交换的数据。此外,可使用诸如安全套接层 (SSL)、传递层安全(TLS)以及互联网协议安全(IPsec)等传统的加密技术来将所有或一些 链路加密。
[0107] 在一个实施方式中,通过使用浏览器应用程序712处理从外部系统722以及从社交 网络系统730接收的标记语言文档714,用户设备710可显示来自外部系统722和/或来自社 交网络系统7 30的内容。标记语言文档714识别内容和一个或多个描述该内容的格式化或展 示的指令。通过执行包括在标记语言文档714中的指令,浏览器应用程序712使用由标记语 言文档714描述的格式化或展示来显示识别的内容。例如,标记语言文档714包括用于生成 和显示具有多个帧的网页的指令,这些帧包括从外部系统722和社交网络系统730检索的文 本和/或图像数据。在各种实施方式中,标记语言文档714包括数据文件,该数据文件包括可 扩展标记语言(XML)数据、可扩展超文本标记语言(XHTML)数据或其他标记语言数据。此外, 标记语言文档714可包括JavaScript对象表示法(JSON)数据、具有填充的JSON(JSONP)以及 JavaScript数据,用于在外部系统722与用户设备710之间促进数据交换。在用户设备710上 的浏览器应用程序712可使用JavaScript编译器来解码标记语言文档714。
[0108] 标记语言文档714也可包括或链接至应用程序或应用程序框架,诸如,FLASH?或 Unity?应用程序、SilverLight?应用程序框架等。
[0109] 在一个实施方式中,用户设备710也包括一个或多个cookie716,该一个或多个 cookie包括表示用户设备710的用户是否登录到社交网络系统730的数据,该cookie能够定 制从社交网络系统730通信至给用户设备710的数据。
[0110] 外部系统722包括一个或多个网络服务器,该网络服务器包括使用网络750通信至 用户设备710的一个或多个网页724a、724b。外部系统722与社交网络系统730分开。例如,外 部系统722与第一域相关,而社交网络系统730与单独的社交网络域相关。包括在外部系统 722中的网页724a、724b包括标记语言文档714,该标记语言文档识别内容并包括规定所识 别的内容的格式化或展示的指令。
[0111] 在一个实施方式中,用户设备710包括中间内容流式系统718,该中间内容流式系 统被配置为当用于内容项的内容数据通过网络750从内容服务器(诸如外部系统722)流至 用户设备710时,将内容项本地缓存在用户设备710中。通过用户设备710上的中间内容流式 系统718,用户设备710上的可访问由社交网络系统730提供的网页的浏览器应用程序712可 请求包括在网页中的内容项中的一些或所有内容项(例如,音频),但是由外部系统722提 供。一旦由中间内容流式系统718从外部系统722接收内容数据(例如,作为数据流),该内容 数据可由中间内容流式系统718提供至浏览器应用程序712(例如,浏览器应用程序712中的 内容访问插件)作为数据流。此外,由中间内容流式系统718从外部系统722接收的内容数据 可本地缓存在用户设备710中。用户设备710上的本地缓存可被保持,为了将来由用户设备 710请求相同内容项的益处。对于用于相同内容项的后续请求,中间内容流式系统718可从 用户设备710上的本地缓存提供内容项的先前从外部系统722接收的那些部分,并且从外部 系统722获得未本地缓存在用户设备710中的那些部分,并且由此提供那些获得的部分。
[0112] 在一个实施方式中,用户设备710包括基于优先级的内容下载系统720,该基于优 先级的内容下载系统被配置为在向用户设备710上的用户呈现对内容项的访问(诸如,通过 由社交网络系统730提供的且通过浏览器应用程序712可访问的社交网络新闻馈送)之前, 促进基于优先级将内容项预下载至用户设备710。例如,当用户通过浏览器应用程序712浏 览这种新闻馈送时,在新闻馈送的一个或多个新闻帖子通过新闻馈送对用户(例如,新闻馈 送的用户)可访问之前,包括这种新闻帖子中的内容项可整体或部分地预下载至用户设备 710〇
[0113] 社交网络系统730包括用于社交网络的一个或多个计算设备,社交网络包括多个 用户并且向社交网络的用户提供与社交网络的其他用户通信和交互的能力。如本文更详细 描述的,社交网络可由图形表示,即,数据结构包括矢线和节点。其他数据结构也可用于表 示社交网络,包括但不限于:数据库、对象、类别、元(meta)元素、文件或任意其他数据结构。
[0114] 用户可加入社交网络系统730,并且然后添加与社交网络系统730中的他们希望连 接的任意数量的其他用户的连接。如本文使用的,术语"好友"指社交网络系统730中的用户 经由社交网络系统730与其形成连接、关联或关系的任意其他用户。例如,在实施方式中,如 果社交网络系统730中的用户表示为社交图谱中的节点,那么术语"好友"可指在两个用户 节点之间形成的并直接连接两个用户节点的矢线。
[0115] 基于用户的共同特征(例如,作为相同教育机构的校友的用户),连接可由用户明 确添加或可由社交网络系统730自动创建。例如,第一用户特别选择特定的其他用户作为好 友。在社交网络系统730中的连接通常但不需要在两个方向上,因此,术语"用户"和"好友" 取决于参考架构。在社交网络系统730的用户之间的连接通常是双边("双向")的或"相互 的",但是连接也可是单向的或"单边的"。例如,如果鲍勃(Bob)和乔(Joe)都是社交网络系 统730的用户并彼此连接,那么鲍勃和乔均为彼此的连接。另一方面,如果鲍勃希望与乔连 接以查看乔通信至社交网络系统730的数据,但是乔不希望形成相互连接,那么可创建单边 连接。用户之间的连接可以是直接连接;然而,社交网络系统730的一些实施方式允许通过 一个或多个连接等级或分离程度的间接连接。
[0116] 除了在用户之间创建和保持连接并允许在用户之间交互以外,社交网络系统730 还向用户提供对由社交网络系统730支持的各类项目采取行动的能力。这些项目可包括社 交网络系统730的用户可能属于的群体或网络(即,人、实体和概念的社交网络)、用户可能 感兴趣的事件或日历条目、用户可经由社交网络系统730使用的以计算机为基础的应用程 序、允许用户经由由社交网络系统730提供的服务或者通过社交网络系统购买或出售项目 的交易以及用户可在社交网络系统730上执行的或离开社交网络系统执行的与广告的交 互。这些仅是用户可影响社交网络系统730的项目的几个实例,并且很多其他实例是可能 的。用户可与能够在社交网络系统730中或在外部系统722中表示的、与社交网络系统730分 开的或者通过网络750与社交网络系统730耦接的任何事物互动。
[0117] 社交网络系统730还能够链接各种实体。例如,社交网络系统730能够使用户通过 API、网络服务或其他通信信道彼此以及与外部系统722或其他实体互动。如本文讨论的,社 交网络系统730可生成并保持包括由多条矢线互连的多个节点的"社交图谱",其中,社交图 谱中的每个节点可表示可影响另一节点和/或可被另一节点影响的实体。社交图谱可包括 各类节点,包括例如,由社交网络系统730中的对象表示的用户、非人类实体、内容项、网页、 群组、活动、消息、概念以及任意其他事物。如本文更详细描述的,社交图谱中的两个节点之 间的矢线可表示具体类型的连接或两个节点之间的联系,其可由节点关系或由其他节点上 的节点中的一个执行的动作产生。如进一步讨论的,可权重节点之间的矢线,其中,矢线的 权重可表示与矢线有关的属性,诸如,节点之间的连接或联系的强度。不同类型矢线可设置 有不同权重。
[0118] 社交网络系统730还包括用户生成的内容,该内容增强用户与社交网络系统730的 互动。用户生成的内容可包括用户可添加、上传、发送或"发布"到社交网络系统730中的任 意内容。例如,用户将帖子从用户设备710通信至社交网络系统730。帖子可包括数据(例如, 状态更新或其他文本数据)、位置信息、图像(例如,照片)、视频、链接、音乐或其他相似数据 和/或媒体。第三方还可将内容添加至社交网络系统730。内容"项目"表示为社交网络系统 730中的对象。以此方式,鼓励社交网络系统730的用户通过各种通信信道发布文本和各种 媒体类型的内容项来彼此通信。这种通信增加用户彼此的互动,并且提高了用户与社交网 络系统730互动的频率。
[0119] 社交网络系统730包括网络服务器732、API请求服务器734、用户配置文件存储 736、连接存储738、动作记录器740、活动日志742以及授权服务器744。在本发明的实施方式 中,社交网络系统730可包括用于各种应用程序的额外的、更少的或不同的部件。未示出例 如,网络接口、安全机构、负载平衡器、故障切换服务器、管理和网络操作控制台等的其他部 件,以便不混淆系统细节。
[0120]用户配置文件存储736保持关于用户账户的信息,包括传记、人口或其他类型的描 述信息,例如,由用户声明的或由社交网络系统730推断的工作经历、学历、爱好或偏好、位 置等。将该信息存储在用户配置文件存储736中,以便独特地识别每个用户。社交网络系统 730还在连接存储738中存储描述不同用户之间的一个或多个连接的数据。连接信息可表示 具有相似或共同工作经历、组成员、爱好或学历的用户。此外,社交网络系统730包括在不同 用户之间的用户定义连接,允许用户规定他们与其他用户的关系。例如,用户定义连接允许 用户生成平行于用户的现实生活关系的与诸如好友、同事、伙伴等其他用户的关系。用户可 从预定的连接类型中选择,或根据需要定义他们自己的连接类型。还在连接存储738中存储 与社交网络系统730中的其他节点(例如,非人类实体、储存桶、聚类中心、图像、兴趣、页面、 外部系统、概念等)的连接。
[0121]社交网络系统730保持关于用户可与其交互的对象的数据。为了保持该数据,用户 配置文件存储736和连接存储738存储由社交网络系统730保持的相应类型的对象。每个对 象类型具有适于存储适合于对象类型的信息的信息字段。例如,用户配置文件存储736包括 具有适于描述用户账号以及与用户账号相关的信息的字段的数据结构。在创建特定类型的 新对象时,社交网络系统730初始化对应类型的新数据结构,将唯一对象标识符分配给该数 据结构,并且根据需要开始将数据添加至目标中。例如,在用户变成社交网络系统730的用 户时,可能发生这种情况,社交网络系统730在用户配置文件存储736中生成用户配置文件 的新实例,将唯一标识符分配给用户账户,并且开始使用由用户提供的信息填充用户账户 的字段。
[0122] 连接存储738包括适于描述用户与其他用户的连接、与外部系统722的连接或与其 他实体的连接的数据结构。连接存储7 38还可使连接类型与用户连接相关联,用户的连接可 与用户的隐私设置一起用于调节对关于用户的信息的访问。在本发明的实施方式中,用户 配置文件存储736和连接存储738可实现为联合数据库。
[0123] 存储在连接存储738、用户配置文件存储736以及活动日志742中的数据能够使社 交网络系统730生成使用节点来识别各种对象并且使用连接节点的矢线来识别不同对象之 间的关系的社交图谱。例如,如果在社交网络系统730中第一用户与第二用户创建连接,则 来自用户配置文件存储736的第一用户和第二用户的用户账号可用作社交图谱中的节点。 在由连接存储738储存的第一用户与第二用户之间的连接是在与第一用户和第二用户相关 联的节点之间的矢线。继续该实例,然后,第二用户可在社交网络系统730内向第一用户发 送消息。发送可被存储的消息的动作是社交图谱中表示第一用户与第二用户的两个节点之 间的另一矢线。此外,可在社交图谱中识别和包含消息本身,作为连接至表示第一用户和第 二用户的节点的另一节点。
[0124] 在另一实例中,第一用户可在由社交网络系统730保持的图像(或者替换地,在由 社交网络系统730外部的另一系统保持的图像)中标记第二用户。图像本身可表示作为社交 网络系统730中的节点。该标记动作可在第一用户与第二用户之间创建矢线并且在各个用 户与图像之间创建矢线,该图像也是社交图谱中的节点。在又一实例中,如果用户确认参加 一个事件,那么用户和事件是从用户配置文件存储736获得的节点,其中,事件的参加是在 可从活动日志742中检索的节点之间的矢线。通过生成并保持社交图谱,社交网络系统730 包括描述多种不同类型对象以及这些对象之间的交互和连接的数据,从而提供社交相关信 息的丰富来源。
[0125] 网络服务器732通过网络750链接社交网络系统730和一个或多个用户设备710和/ 或一个或多个外部系统722。网络服务器732为网页以及其他网页相关的内容(例如,Java、 JavaS Cript、Flash、XML等)服务。网络服务器732可包括邮件服务器或其他消息功能,用于 在社交网络系统730与一个或多个用户设备710之间接收和路由消息。该消息可以是即时消 息、队列消息(例如,电子邮件)、文本和SMS消息或任意其他合适的消息格式。
[0126] API请求服务器734允许一个或多个外部系统722和用户设备710通过调用一个或 多个API功能来从社交网络系统730调用访问信息。API请求服务器734还可允许外部系统 722通过调用API来将信息发送至社交网络系统730。在一个实施方式中,外部系统722通过 网络750将API请求发送至社交网络系统730,并且API请求服务器734接收API请求。通过调 用与API请求相关的API,API请求服务器734处理该请求,以生成合适的响应,API请求服务 器734通过网络750将该响应通信至外部系统722。例如,响应于API请求,API请求服务器734 收集与用户相关的数据(例如,登录外部系统722的用户连接),并且将收集的数据通信至外 部系统722。在另一实施方式中,用户设备710以与外部系统722相同的方式通过API与社交 网络系统730通信。
[0127] 动作记录器740能够从网络服务器732接收关于在社交网络系统730上或离开该社 交网络系统的用户活动的通信。动作记录器740使用关于用户活动的信息填充活动日志 742,能够使社交网络系统730发现由其用户在社交网络系统730内并且在社交网络系统730 外部采取的各种行动。特定用户相对于社交网络系统730上的另一节点采取的任何动作可 通过在活动日志742中或相似数据库中或其他数据存储库中保持的信息而与每个用户账号 相关联。所识别并存储的用户在社交网络系统730内采取的动作的实例可包括例如,添加与 另一用户的连接,将消息发送至另一用户,读取来自另一用户的消息,查看与另一用户相关 的内容,参加另一用户发布的事件,发布图像,尝试发布图像,或者与另一用户或另一对象 交互的其他动作。当用户在社交网络系统730内采取动作时,将动作记录在活动日志742中。 在一个实施方式中,社交网络系统730保持活动日志742作为条目的数据库。当在社交网络 系统730内采取动作时,将动作的条目添加至活动日志742。活动日志742可被称为动作日 VI、J、〇
[0128] 此外,用户动作可与在位于社交网络系统730的外部的实体(例如,与社交网络系 统730分开的外部系统722)内发生的概念和动作相关。例如,动作记录器740可从网络服务 器732接收描述用户与外部系统722交互的数据。在该实例中,外部系统722根据社交图谱中 的结构化动作和对象报告用户的交互。
[0129] 用户与外部系统722交互的动作的其他实例包括:用户表示对外部系统722或另一 实体的兴趣、用户发布对讨论外部系统722或外部系统722内的网页724a的社交网络系统 730的评论、用户向社交网络系统730发布与外部系统722有关的统一资源定位符(URL)或其 他标识符、用户参加与外部系统722有关的事件或者与外部系统722相关的用户的任意其他 动作。因此,活动日志742可包括描述在社交网络系统730的用户与和社交网络系统730分开 的外部系统722之间的交互的动作。
[0130] 授权服务器744执行社交网络系统730的用户的一个或多个隐私设置。用户的隐私 设置确定可分享与用户相关联的特定信息的方式。隐私设置包括与用户相关的特定信息的 规范以及可与其分享信息的一个或多个实体的规范。可与其分享信息的实体的实例可包括 其他用户、应用程序、外部系统722或者可潜在地访问该信息的任何实体。用户可分享的信 息包括用户账号信息(例如,配置文件照片、与用户相关联的电话号码、用户的连接)、用户 采取的动作(例如,添加连接、改变用户配置文件信息)等。
[0131] 可以以不同粒度级别提供隐私设置规范。例如,隐私设置可识别与其他用户共享 的特定信息;隐私设置识别工作电话号码或相关信息的特定组,诸如,包括配置文件照片、 住宅电话号码以及身份的个人信息。替换地,隐私设置可适用于与用户相关的所有信息。还 可以以各种粒度等级来规定可访问特定信息的这组实体的规范。可与其分享信息的各种组 的实体可包括例如,用户的所有好友、好友的所有好友、所有应用程序或所有外部系统722。 一个实施方式允许这组实体的规范包括实体的枚举。例如,用户可提供允许访问特定信息 的外部系统722的列表。另一实施方式允许规范包括一组实体以及不允许访问信息的例外。 例如,用户可允许所有外部系统722访问用户的工作信息,但是规定不被允许访问该工作信 息的外部系统722的列表。某些实施方式将不被允许访问某些信息的例外的列表称为"黑名 单"。阻止属于由用户规定的黑名单的外部系统722访问在隐私设置中规定的信息。信息的 规范的粒度以及与其分享信息的实体的规范的粒度的各种组合是可能的。例如,所有个人 信息可与好友分享,而所有工作信息可与好友的好友分享。
[0132] 授权服务器744包括逻辑以确定用户的好友、外部系统722和/或其他应用程序和 实体是否能够访问与用户相关联的某些信息。外部系统722可能需要来自授权服务器744的 授权以访问用户的更隐私且更敏感的信息,例如,用户的工作电话号码。基于用户的隐私设 置,授权服务器744确定是否允许另一用户、外部系统722、应用程序或另一实体访问与用户 相关的信息,包括关于用户采取的动作的信息。
[0133] 前述过程、系统和特征可由各种机器和计算机系统架构并且在各种网络和计算环 境中实现。图8示出可用于实现以上识别的一个或多个计算设备的计算机系统800的实例。 计算机系统800包括用于使计算机系统800执行本文讨论的过程和特征的指令组。计算机系 统800可连接(例如,联网)至其他机器。在网络部署中,计算机系统800可在客户端-服务器 网络环境中的服务器机器或客户端机器的能力中运行,或作为对等(或分布式)网络环境中 的对等机器运行。在本发明的实施方式中,计算机系统800可以是客户端设备100、社交网络 系统730中的一个,或者其部件。
[0134] 计算机系统800包括处理器802、高速缓存存储器804以及存储在计算机可读介质 上的针对本文描述的过程和特征的一个或多个可执行模块和驱动器。此外,计算机系统800 包括高性能输入/输出(I/O)总线806和标准I/O总线808。主桥810使处理器802与高性能I/O 总线806耦接,而I/O总线桥812使这两条总线806和808彼此耦接。系统存储器814和一个或 多个网络接口 816耦接至总线806。计算机系统800可进一步包括视频存储器以及耦接至视 频存储器的显示设备(未示出)。大容量存储介质818和I/O端口 820耦接至总线808。计算机 系统800可选地可包括耦接至总线808的键盘和点控设备、显示设备或其他输入/输出设备 (未示出)。共同地,这些元件旨在表示广泛类别的计算机硬件系统,包括但不限于,基于由 位于加利福尼亚的圣克拉拉的英特尔公司制造的x86兼容处理器以及由位于加利福尼亚的 森尼韦尔的超微半导体(Advanced Micro Devices) (AMD)公司制造的x86兼容处理器以及 任意其他合适处理器的计算机系统。
[0135] 操作系统管理并控制计算机系统800的操作,包括向软件应用程序(未示出)输入 数据以及从软件应用程序输出数据。操作系统提供在系统上执行的软件应用程序与系统的 硬件组件之间的接口。可使用任意合适的操作系统,诸如,LINUX操作系统;从位于加利福尼 亚的库比蒂诺的苹果电脑公司可获得的苹果麦金塔(Macintosh)操作系统;UNIX操作系统; Microsoft? Windows⑧操作系统;BSD操作系统;等。其他实现方式是可能的。
[0136] 下面将更详细地描述计算机系统800的元件。具体地,网络接口 816提供计算机系 统800与各种网络(诸如,以太网(例如,IEEE 802.3)网络、背板等)中的任一个之间的通信。 大容量存储介质818为数据和编程指令提供永久存储,以执行由以上识别的各自计算系统 实现的上述过程和特征,而在由处理器802执行时,系统存储器814(例如,DRAM)为数据和编 程指令提供暂时存储。1/0端口 820可以是提供额外的外围设备之间的通信的一个或多个串 联和/或并联的通信端口,这些外围设备可耦接至计算机系统800。
[0137] 计算机系统800可包括各种系统架构,并且计算机系统800的各种部件可被重新布 置。例如,缓存804可与处理器802在芯片上。替换地,缓存804和处理器802可共同封装为"处 理器模块",其中,处理器802被称为"处理器核心"。此外,本发明的某些实施方式可能既不 需要也不包括所有以上部件。例如,耦接至标准1/0总线808的外围设备可耦接至高性能1/0 总线806。此外,在一些实施方式中,只存在单个总线,其中,计算机系统800的部件耦接至该 单个总线。此外,计算机系统800可包括额外的部件,例如,额外的处理器、储存设备或存储 器。
[0138] 通常,本文描述的过程和特征可实现为操作系统或具体应用程序的部分、部件、程 序、对象、模块或被称为"程序"的一系列指令。例如,一个或多个程序可用于执行本文描述 的特定过程。程序通常包括计算机系统800中的各种存储器以及存储设备中的一个或多个 指令,在由一个或多个处理器读取和执行该一个或多个指令时,这些指令使计算机系统800 执行操作以执行本文描述的过程和特征。本文描述的过程和特征可实现在软件、固件、硬件 (例如,应用程序具体集成电路)或其任意组合。
[0139] 在一个实施方式中,本文描述的过程和特征被计算机系统800实现为单独或共同 地在分布式计算环境中运行的一系列可执行模块。上述模块可由硬件、存储在计算机可读 介质(或机器可读介质)上的可执行模块或两者的组合来实现。例如,模块可包括由硬件系 统中的处理器(诸如处理器802)执行的多个或一系列指令。最初,一系列指令可存储在存储 设备上,诸如大容量存储介质818。然而,该一系列指令可存储在任意合适的计算机可读存 储介质上。此外,该一系列指令不需要本地存储,可通过网络接口816从远程存储设备(例 如,网络上的服务器)接收。将指令从存储设备(例如,大容量存储介质818)复制到系统存储 器814内,然后由处理器802访问和执行。在各个实现方式中,一个或多个模块可由一个或多 个位置中的一个或多个处理器执行,例如,在并行处理环境中的多个服务器。
[0140] 计算机可读介质的实例包括但不限于可记录类型介质,诸如易失和非易失性存储 器设备;固态存储器;软盘和其他可移除磁盘;硬盘驱动;磁性介质;光盘(例如,光盘只读存 储器(CD ROM)、数字多用光盘(DVD));其他相似的非暂时性(或暂时性)、有形(或非有形)存 储介质;或者适于存储、编码或携带用于由计算机系统800执行以执行本文描述的过程和特 征中的任何一个或多个的一系列指令的任意类型的介质。
[0141]为了说明性目的,提出很多具体细节以提供描述的详尽理解。然而,对于本领域的 技术人员显而易见的是,可在没有这些具体细节的情况下,实践本公开的实施方式。在某些 情况下,通过方框图的形式示出模块、结构、过程、特征以及设备,以免描述晦涩难懂。在其 他情况下,示出功能方框图和流程图以表示数据和逻辑流。可通过除了本文明确描述和描 绘的方式以外的方式不同地组合、分开、去除、重新排列以及更换方框图和流程图的部件 (例如,模块、方框、结构、设备、特征等)。
[0142] 在本说明书中对"一个实施方式"、"实施方式"、"其他实施方式"、"一系列实施方 式"、"一些实施方式"、"各种实施方式"等的引用表示在本公开的至少一个实施方式中包括 结合这些实施方式描述的特定特点、设计、结构或特征。例如,说明书的各个位置中的短语 "在一个实施方式中"、"在实施方式中"或"在另一实施方式中"的出现不必要地都指代相同 实施方式,也不指代相互排除其他实施方式的单独或可替换实施方式。此外,不论是否存在 对"实施方式"等的表达引用,都描述各种特征,各种特征可不同地合并且包括在一些实施 方式中,但是在其他实施方式中也不同地省略。相似地,描述的各个特征可能是对于一些实 施方式而不是其他实施方式的偏好或需要。
[0143] 本文使用的语言主要出于可读性和指导性目的而选择,并且选择其不是为了划定 或限制发明主题。因此,其旨在本发明的范围不由该【具体实施方式】限定,而是由对基于本文 的应用提出的任何权利要求来限定。因此,本发明的实施方式的公开内容旨在说明而非限 制在以下权利要求中阐述的本发明的范围。
【主权项】
1. 一种计算机实现方法,包括: 识别被调度为在新闻馈送上呈现以用于由用户访问的第一内容项,所述新闻馈送呈现 在客户端设备的显示器上; 确定用于所述第一内容项的第一优先级;以及 在所述第一内容项呈现在所述新闻馈送上以用于由所述用户访问之前,基于所述第一 优先级将来自第一内容服务器的所述第一内容项中的至少一些预下载至所述客户端设备。2. 根据权利要求1所述的计算机实现方法,进一步包括:在所述第一内容项中的至少一 些预下载至所述客户端设备之后,在所述新闻馈送上呈现所述第一内容项。3. 根据权利要求1所述的计算机实现方法,进一步包括: 识别被调度为呈现在所述新闻馈送上以用于由所述用户访问的第二内容项; 确定用于所述第二内容项的第二优先级; 在将来自所述第一内容服务器的所述第一内容项中的至少一些预下载至所述客户端 设备之前,基于所述第二优先级将来自第二内容服务器的所述第二内容项中的至少一些预 下载至所述客户端设备,所述第二优先级是高于所述第一优先级的优先级。4. 根据权利要求3所述的计算机实现方法,进一步包括:在所述新闻馈送上呈现所述第 二内容项以用于由所述用户访问。5. 根据权利要求1所述的计算机实现方法,其中,基于当所述第一内容项对所述用户可 见时是否自动播放来确定所述第一优先级。6. 根据权利要求1所述的计算机实现方法,其中,基于所述第一内容项是否与广告有关 来确定所述第一优先级。7. 根据权利要求1所述的计算机实现方法,其中,基于所述用户的偏好来确定所述第一 优先级。8. 根据权利要求1所述的计算机实现方法,其中,基于所述客户端设备的资源的可用性 来确定所述第一优先级。9. 根据权利要求1所述的计算机实现方法,其中,基于所述第一内容项的内容类型来确 定所述第一优先级。10. 根据权利要求1所述的计算机实现方法,其中,基于所述第一内容项的元数据来确 定所述第一优先级。11. 根据权利要求1所述的计算机实现方法,其中,基于与所述第一内容项有关的社交 网络信息来确定所述第一优先级。12. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息包括由社交网络 上的社交网络用户对所述第一内容项的点赞的量。13. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息包括由所述社交 网络上的社交网络用户对所述第一内容项的分享的量。14. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息包括由社交网络 上的社交网络用户做出的与所述第一内容项有关的评论的量。15. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息识别在社交网络 上对所述第一内容项点赞的一个或多个社交网络用户。16. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息识别在社交网络 上分享所述第一内容项的一个或多个社交网络用户。17. 根据权利要求11所述的计算机实现方法,其中,所述社交网络信息识别在社交网络 上评论所述第一内容项的一个或多个社交网络用户。18. 根据权利要求1所述的计算机实现方法,其中,所述新闻馈送涉及社交网络。19. 一种计算机系统,包括: 至少一个处理器;以及 存储器,存储被配置为指示所述至少一个处理器执行如下的指令: 识别被调度为在新闻馈送上呈现以用于由用户访问的第一内容项,所述新闻馈送呈现 在客户端设备的显示器上; 确定用于所述第一内容项的第一优先级;以及 在所述第一内容项呈现在所述新闻馈送上以用于由所述用户访问之前,基于所述第一 优先级将来自第一内容服务器的所述第一内容项中的至少一些预下载至所述客户端设备。20. -种存储计算机可执行指令的计算机存储介质,在所述计算机可执行指令被执行 时,使计算机系统执行计算机实现方法,所述方法包括: 识别被调度为在新闻馈送上呈现以用于由用户访问的第一内容项,所述新闻馈送呈现 在客户端设备的显示器上; 确定用于所述第一内容项的第一优先级;以及 在所述第一内容项呈现在所述新闻馈送上以用于由所述用户访问之前,基于所述第一 优先级将来自第一内容服务器的所述第一内容项中的至少一些预下载至所述客户端设备。
【文档编号】G06Q50/10GK105900131SQ201480072987
【公开日】2016年8月24日
【申请日】2014年1月14日
【发明人】赫利俄斯·阿隆索·卡瓦尼利亚斯, 丹尼尔·沙卜泰, 贾斯廷·亚历山大·谢弗
【申请人】脸谱公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1