数字内容消费的同步的制作方法

文档序号:24502419发布日期:2021-03-30 21:32阅读:75来源:国知局
数字内容消费的同步的制作方法

本公开总体上涉及在虚拟现实中消费数字内容。

背景

传统上,想要消费诸如电影或电视节目之类的数字内容的用户将被限制在诸如电话、个人计算机(例如,膝上型电脑或台式电脑)或电视机之类的传统显示设备上观看该内容。由于与这些设备相关联的屏幕的小尺寸和有限的显示能力,这些传统的显示设备通常仅适用于个人或小规模用户群体。在某些情况下,用户可能聚集在电影院或朋友家以获得更具社交性的观看体验,但在所有情况下,观看体验都受限于物理环境(例如,电影院、起居室等)。

为了解决这些限制中的一些限制,已经开发了在虚拟现实(vr)环境中消费数字内容的方法。vr设备允许用户在任何虚拟环境中消费数字内容,可以向用户提供更加身临其境和多样化的观看体验。例如,用户可以在海洋上的虚拟影院观看电影,而不是在起居室的电视机上观看电影。但是传统的vr设备具有明显的缺点,即它们是孤立的设备。因为vr设备通常是旨在仅为一个用户提供视觉和听觉体验的头戴式装置(headset),所以通过vr的典型内容观看体验缺乏vr环境中用户之间的社交互动(例如,每个用户将独自观看电影)。

特定实施例概述

本发明的实施例涉及允许虚拟现实设备的多个用户共同观看(co-watch)数字内容。应当理解,“共同观看”可意味着数字内容的任何同步消费,而不一定意味着仅仅是视觉内容的同步共同消费。相反,共同观看可以包括基于视觉、听觉、嗅觉、触觉或味觉的内容的同步消费。此外,应当理解,本申请中描述的涉及虚拟现实设备的实施例也可以涉及任何其他类型的个人计算设备,包括电话、电视、台式计算机或膝上型计算机、游戏设备或能够向用户呈现数字内容的任何其他设备。

在一些实施例中,多个用户可以共享虚拟环境中的空间。这些用户可希望共同消费数字内容,例如电影、音乐或电视节目。在一些实施例中,单个服务器可以托管数字内容,并且直接、同时地将其流式传输(stream)到虚拟空间的每个用户的用户设备。这些实施例可以跟踪哪些用户设备应该被包括在观看会话中,并且跟踪每个用户设备上内容的回放。一些实施例可以允许对每个流的回放进行直接控制,并且可以允许在任何一个设备上操作的回放控件影响所有剩余设备上的回放。然而,这些实施例要求虚拟空间的运营商对正在流式传输的数字内容具有直接访问权和权利。这可能需要花费大量的时间和金钱来完成,并且缺乏可扩展性。因此,本发明的其他实施例可以允许共享的虚拟空间中的多个用户无缝地且同时地消费数字内容,其中每个用户直接从第三方内容应用独立地流式传输该内容。以这种方式,本发明的实施例可以允许多个用户(每个用户运行他们自己的第三方内容应用的实例)共同消费相同的数字内容,并享受虚拟现实内的社交共同观看体验。

在一些实施例中,多个用户可以使用第三方内容应用来将内容直接流式传输到这些用户的虚拟现实设备。一些实施例可以从多个用户中的每个用户将与第三方内容提供商相关联的第三方应用下载到相应的多个虚拟现实设备上时开始。第三方应用可以与第三方内容提供商通信,以将内容流式传输给用户,并通过虚拟现实设备来启用和控制回放。在一些实施例中,内容可以在虚拟现实设备的整个屏幕上播放。在其他实施例中,内容可以被重新投影到虚拟环境内的虚拟屏幕上。重新投影是一种技术,其可以允许将第三方内容从第三方内容应用直接共享到虚拟现实设备,并直接投射到虚拟现实设备上的虚拟现实环境中。在一些实施例中,这可以包括将来自第三方内容应用的内容重新投影到vr环境中的虚拟电视或电影院屏幕上。在一些实施例中,用户可以由虚拟环境内的化身(avatar)来表示。化身可以被表示为人类角色,并且可以一起坐在沙发上、电影院或任何其他适当的场所或位置。用户对所呈现内容的反应可以由化身实时反映,从而向用户提供社交共同观看体验。

一些实施例可以利用至少三种模型中的一种来同步数字内容。这些模型被称为“主机-客户机(host-guest)”模型、“服务器”模型和“omni”模型。每种模型可以在虚拟现实设备如何进行连接和通信方面以及任何一个设备对剩余设备的控制级别方面有所不同。这三种模型中的每一种都将在下面更详细描述。

本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的组件、元件、特征、功能、操作或步骤中的全部、一些或没有一个被包括。根据本发明的实施例在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中被具体公开,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。

附图简述

图1示出了其中多个用户计算设备呈现相同数字内容的实施例。

图2示出了其中多个用户计算设备的用户共同观看由第三方应用的实例提供的内容的示例实施例。

图3示出了利用“主机-客户机”模型的示例实施例。

图4示出了利用“服务器”模型的示例实施例。

图5示出了利用“每个人”模型的示例实施例。

图6示出了用于在多个用户计算设备上呈现并同步数字内容的示例方法。

图7示出了与社交网络系统相关联的示例网络环境700。

图8示出了示例计算机系统。

示例实施例的描述

在一些实施例中,多个用户计算设备的用户可以寻求共同观看相同的数字内容。例如,两个或更多个用户可能被地理距离分开,但是可能仍然希望共同观看相同的内容。作为另一个示例,两个或更多个用户可能在同一地理位置,但是可能只能访问或者可能另外希望使用最适合单个用户使用的用户计算设备(例如,虚拟现实头戴式装置)。在这样的实施例中,这两个或更多个用户可能期望一种方法,使用该方法,他们可以共同观看数字内容,使得数字内容在两个或更多个用户计算设备之间同步。

在一些实施例中,多个用户计算设备的用户可以在内容不同步的情况下消费相同的数字内容。图1示出了其中多个用户计算设备呈现相同数字内容的实施例。在该实施例中,用户计算设备101和102各自呈现来自电影“大白鲨(jaws)”的数字内容。在一些实施例中,设备可以从设备的本地存储装置获取内容。在其他实施例中,内容可以通过流式传输服务(包括第三方内容提供商的流式传输服务)而获得。用户计算设备101和102可以是虚拟现实设备。在一些实施例中,用户计算设备也可以是任何其他类型的用户计算设备,包括蜂窝电话、电视、桌面监视器(desktopmonitor)、膝上型电脑或能够向一个或更多个用户呈现数字内容的任何其他设备。在一些实施例中,用户计算设备101可能正在呈现电影的帧103,而用户计算设备102可能正在呈现帧104。在一些实施例中,用户计算设备的用户可以通过选择相似或相同的观看设置(屏幕尺寸、音量、回放速度等)并在同一时间选择播放按钮105和106来尝试在多个用户计算设备之间同步内容的回放。尽管有这些努力,在一些实施例中,在两个设备上呈现的内容仍可能不同步(例如,帧104可能在帧103之前或之后很短的时间)。例如,计算设备102可能在计算设备101显示鲨鱼的头部(帧103)的同一时间点已经显示了游过的鲨鱼的头部,并且可能显示鲨鱼的尾部(帧104)。该时间差异可以由许多种原因引起,包括例如在每个用户计算设备上选择播放按钮105和106时的微小差异、或者由于设备之间的网络连接、缓冲或回放速度的差异而引起的微小差异。包括基于软件或硬件的原因(例如,软件版本或硬件型号的差异)在内的许多另外原因也可能导致设备之间的回放差异。

图2示出了示例实施例,其中多个用户计算设备的用户共同观看由第三方应用的实例提供的内容。在一些实施例中,用户208和209可以通过观看应用201和202与他们各自的用户计算设备进行交互。在一些实施例中,这些应用可以是虚拟现实应用、共同观看应用或用户计算设备上用户可以与之交互的任何其他应用。这些用户计算设备可以包括能够呈现数字内容的任何用户计算设备。在一些实施例中,同一第三方应用的实例203和204可以托管用户208和209期望在他们各自的用户计算设备上共同观看的数字内容。第三方应用的每个实例203和204可以与用户计算设备201和202来回地(backandforth)共享信息。该信息可以包括要在用户计算设备上呈现的数字内容、与数字内容相关的回放和其他控制、以及与用户计算设备上数字内容的回放相关的状态信息。每个实例203和204可以从每个第三方内容提供商210和211接收作为数字流的内容。在一些实施例中,第三方内容提供商210和211可以是同一第三方内容提供商。在其他实施例中,第三方内容提供商210和211可以是不同的第三方内容提供商。在其中210和211是不同的第三方内容提供商的一些实施例中,第三方内容提供商可以各自提供相同的数字内容以显示给用户208和209。在一些实施例中,被传递的信息可以通过软件从第三方应用的实例203和204传递,该软件使用由第三方应用的每个实例实现的软件开发工具包(sdk)205和206来编写。在一些实施例中,基于sdk的软件205和206可以通过生成广播意图并将该广播意图发送到在用户计算设备上运行的相应观看应用来与用户计算设备通信(例如,基于sdk的软件205可以与201通信,基于sdk的软件206可以与202通信)。在一些实施例中,第三方应用203和204可以包含两个或更多个状态,其中至少一个状态指向向用户计算设备发送信息,而一个状态指向从用户计算设备接收信息。在一些实施例中,正在传递的信息可以包括状态信息,该状态信息包括与一段数字内容相关联的时间戳(例如,电影或电视节目的当前回放时间)、与一段数字内容相关的识别信息(例如,电影或电视节目的名称)、播放或暂停状态信息、音量、亮度、色彩或回放速度信息、或者与一段数字内容或广告是否正在用户计算设备201和202上呈现相关的信息。

作为其中两个用户正在共同观看内容的示例,第一用户208可能期望快进内容。用户可以在他的用户计算设备上选择快进控制,使得快进命令经由观看应用201通过基于sdk的软件205传递到第三方应用203的第一用户实例。第三方应用转而可以从第三方内容提供商210请求第三方内容。同时,第一用户的观看应用可以向第二用户209的观看应用202发送快进命令,第二用户209的观看应用202转而可以通过第三方应用204将命令传递给第三方内容提供商211。

在一些实施例中,每个用户计算设备的用户可以保留对与数字内容的呈现相关的一些方面或设置的单独或个性化控制。在其他实施例中,所有设置可以由用户集体控制。在一些实施例中,单个用户可以对包括音量和字幕的方面或设置进行单独控制。作为示例,用户208可以使用用户计算设备201,用户计算设备201具有比来自用户209的用户计算设备202的音频更响的本机音频。例如,这可能是因为用户计算设备201可以是扬声器非常靠近用户208的耳朵的虚拟现实头戴式装置,而用户计算设备202可以是安装在远离用户209的墙上的电视。

在一些实施例中,可以向每个用户208和209呈现相同的视频内容但不同的音频内容。例如,用户208和209可以都讲英语来彼此交流,但是以他们的母语收听体育评论可能更舒适,对于用户208,其母语可能是西班牙语,而对于用户209,其母语可能是俄语。在该实施例中,可以向用户208呈现与用户209相同但是具有西班牙语音频内容的视频内容,同时可以向用户209呈现具有俄语音频内容的该视频内容。在一些实施例中,可以向每个用户呈现个人化或个性化的视频内容,该视频内容可以因用户而异。例如,在一些实施例中,可以向用户208呈现足球比赛,其使用标准视角和由其他用户对足球比赛的评论组成的聊天窗口,同时可以向用户209呈现该比赛的鸟瞰视图但没有聊天窗口。作为另一个示例,每个用户的呈现选项和数字环境可以不同于任何其他用户。例如,每个用户可以单独控制他们正在其中观看数字内容的虚拟现实环境内的照明。类似地,每个用户可以单独控制屏幕的位置、设置或屏幕在虚拟现实环境中所处的背景(例如,每个用户可以独立选择在对应于电影院、家庭起居室、床上平板电脑等中的一个的虚拟现实环境中观看内容)。应当理解,这些仅仅是示例,并且视频、音频或其他数字内容的个性化、个人化或定制可以采取任何形式。

由于每个用户计算设备201和202与第三方应用203和204的每个实例独立地通信,因此它们可以通过通信方法207来这样做。在一些实施例中,通信方法207可以是用户计算设备之间的直接通信,例如低功耗蓝牙(bluetoothlowenergy)或红外技术。在其他实施例中,207可以是通过与观看应用201和202相关联的服务器或与观看应用201和202相关联的某个其他计算设备的间接通信。在下面的附图中描述了关于通信方法的附加细节。

图3示出了利用“主机-客户机”模型的示例实施例。主机-客户机模型可以允许第一用户计算设备301被识别为主机,并且所有其他用户(例如302和303)可以被识别为客户机。在一些实施例中,主机可以直接控制数字内容(例如,内容的选择、音量、内容的回放等),而客户机可能对数字内容没有任何控制权。在这些实施例中,可以将在主机用户计算设备301上做出的回放选择从主机用户计算设备301传送到一个或更多个客户机用户计算设备302和303。例如,在电影“大白鲨”中的特定场景期间,在所有三个用户计算设备暂停的情况下,可以选择主机用户计算设备301上的播放按钮,并且电影的内容可以在所有三个用户计算设备301、302和303上以同步的方式开始播放。在一些实施例中,只有主机用户计算设备可以具有与数字内容的回放相关联的可见控制特征。例如,在图3中,只有主机用户计算设备301具有播放按钮304,而客户机用户计算设备302和303没有。在其他实施例中,所有用户计算设备可以显示相同的回放功能,但是只有主机的控制特征可以是可操作的。

在一些实施例中,客户机用户计算设备302和303可以将它们的回放状态和其他信息传送给主机计算设备301。基于从客户机用户计算设备接收的时间戳信息和其他回放信息,主机用户计算设备301可以向客户机用户计算设备302和303发送采取动作的指令,使得它们与主机用户计算设备以及与彼此保持在同步的呈现状态。该动作可以包括暂停数字内容或更改数字内容的时间戳,使得回放向前或向后跳转。在一些实施例中,该动作还可以包括加快或减慢数字内容的回放,使得所有设备上的内容回放重新获得同步,而不需要用户计算设备完全暂停或向前跳转,从而跳过先前未观看的内容。在一些实施例中,主机用户计算设备301可以将其回放状态中继给客户机用户计算设备302和303中的每一个,使得客户机用户计算设备可以同步内容的回放。在其他实施例中,客户机用户计算设备302和303可以将它们的状态中继到主机用户计算设备301,主机用户计算设备301可以在确定应该采取哪个动作(例如,什么同步来同步所有设备上的内容回放)时考虑所有客户机用户计算设备的状态。应当理解,本申请中描述的用来同步内容的这些动作和所有其他可能的动作可以由本发明的所有实施例来执行,并且不必仅与主机-客户机模型或其中描述的任何其他模型相关联。

图4示出了利用“服务器”模型的示例实施例。服务器模型可以允许与观看应用相关联的服务器或与观看应用相关联的某个其他计算设备跟踪所有用户计算设备上的数字内容的呈现,并且可以被配置成使用户在其消费中保持同步。在一些实施例中,服务器401可以发送和接收与所有用户计算设备402、403和404相关联的回放信息。在一些实施例中,所有用户计算设备可以包括回放控件(例如播放/暂停按钮405),这些控件可以允许任何一个用户计算设备的用户控制所有用户计算设备上的回放。在一些实施例中,服务器401可以是用户的用户计算设备中的一个。在其他实施例中,服务器401可以是独立的设备,不同于在其上呈现内容的用户计算设备。在一些实施例中,该独立的设备可以是一个用户的设备,或者它可以是由用户计算设备经由网络(例如互联网)访问的远程服务器。

在服务器模型中,服务器可以跟踪所有用户计算设备上的内容的回放,并采用规则来保持内容的回放同步。在一些实施例中,任何用户(从0到所有)可以完全控制数字内容。在一些实施例中,服务器可以维护独立运行的时钟,该时钟可以确定应该向用户设备呈现数字内容的速度。如果任何一个用户或用户子集领先或落后于独立的时钟,则用户可被迫使跳过或重新观看内容,以便回到与时钟相同的速度。在一些实施例中,用于保持所有用户计算设备上的内容同步的规则可以由用户计算设备、由第三方内容应用预设,或者可以由用户计算设备的用户中的一个或更多个用户确定。在一些实施例中,规则可以是基于用户计算设备的用户的先前行为的行为规则。例如,如果在一个会话中,用户计算设备402上的数字内容的回放已经落后于用户计算设备403和404上的数字内容的回放两次或更多次,并且每次,用户计算设备402的用户都选择了向前跳转,从而跳过内容但是重新获得与其他用户计算设备的同步,则用于用户计算设备402的规则可以自适应为每当用户计算设备402在内容的呈现中落后时,自动向前跳转。这些规则可以在每个会话、每个用户、每个内容项、或生命周期的基础上或在任何其他基础上进行行为学习。

图5示出了利用“omni”模型的示例实施例。omni模型可以允许每个用户的设备跟踪每个其他用户的设备并与每个其他用户的设备同步。例如,在omni模型下,每个用户设备可以与连接的每个其他用户设备单独地传送回放状态或与特定用户设备上内容的回放相关的其他信息(例如,回放控制选择)。在一些实施例中,用户设备501、502和503都可以彼此通信,并且都可以提供同等的回放控制(由504表示)。例如,用户计算设备501、502、503的每个用户可以各自被呈现相同的回放控制选项。如果任何一个用户选择了回放控制选项(例如快进),则该选项可以被传送给每个其他用户计算设备。在一些实施例中,任何用户然后可以停止快进、暂停或倒回内容,而不管任何其他用户选择的回放控制选项。在一些实施例中,当用户计算设备501的用户做出快进内容的选择时,该选择可以被传送给其他用户计算设备502和503。然后,每个用户计算设备可以将该选择传递给观看应用,接着传递给第三方内容应用的实例,并且除此之外,传递给第三方内容提供商,第三方内容提供商付费提供正确的、快进的内容。应当理解,504和回放控制的任何其他表示可以包括与内容或用户计算设备相关联的任何可变的、可控制的信息或设置。

像服务器模型一样,omni模型可以允许实现各种规则,以确保所有用户计算设备在其数字内容的呈现中是同步的。可以在用户消费内容时将这些规则作为选择呈现给用户。例如,如果两个用户不同步,其中一个用户领先于另一个用户,则可以向用户呈现选项以:例如,1)让较慢的用户向前跳过,2)迫使较快的用户向后跳转并重新观看,或者等待直到较慢的用户赶上,或者3)什么也不做。作为另一个示例,如果有三个或更多个用户正在共同观看内容,其中每个用户的设备上的内容的回放与所有其他用户不同步,则可以向用户呈现选项以:1)向前跳到最快的用户,2)跳回到最慢的用户,3)平均所有设备上的回放时间,并跳转到平均回放时间。可以利用任意数量的附加规则选项。在一些实施例中,用户计算设备的用户可以选择用户计算设备必定处于不同步从而要利用规则或策略的阈值。在其他实施例中,可以基于过去的用户选择来学习阈值。类似地,在一些实施例中,选项的选择可以被选择为默认值,或者可以基于用户选择历史来学习。

图6示出了用于在多个用户计算设备上呈现并同步数字内容的示例方法600。该方法可以在步骤610开始,在步骤610,第一用户计算设备与至少一个其他用户计算设备连接,该至少一个其他用户计算设备与第一用户计算设备处于同步呈现会话中。在一些实施例中,步骤610可以包括确定其他用户计算设备是否在范围内,是否正在呈现相同的内容,或者是否可以以其他方式被识别为与第一用户计算设备处于同步呈现会话中。作为示例,在一些实施例中,如果第一用户期望与第二用户共同观看内容,则第一用户和第二用户可以登录或以其他方式激活他们各自的用户计算设备上的应用。一旦登录,用户可以选择加入同步呈现会话,使得应用可以开始搜索并连接第一用户和第二用户的用户计算设备。在步骤620,第一用户计算设备可以通过第三方应用的实例呈现数字内容。在一些实施例中,在第一用户计算设备通过第三方应用的实例呈现数字内容的同时,一个或更多个其他用户计算设备也可以通过第三方应用的另一个实例呈现相同的数字内容。在步骤630,可以做出关于是否要将同步消息发送给与第一用户计算设备处于同一呈现会话中的一个或更多个附加用户计算设备的确定。如果用户计算设备在它们的数字内容呈现中都是同步的,则可以不发送同步消息。然而,如果一个或更多个用户计算设备不同步,或者如果基于某个其他确定(例如,每单位时间自动地,每当用户选择回放控制选项时,每当来自一段数字内容的新情节或场景开始时等)应该发送同步消息,则该方法将进行到步骤640。在步骤640,可以基于正在由第一用户计算设备呈现的数字内容的状态,生成同步消息。例如,如果第一用户计算设备上的数字内容的回放比第二用户计算设备上的相同内容的回放领先两秒,则消息可以包括用于将第一用户计算设备上的数字内容的呈现暂停两秒或者倒回两秒的指令。在步骤650,同步消息可以被发送到至少一个其他用户计算设备或者发送到与至少一个其他用户计算设备相关联的服务器。同步消息可以被配置成使其他用户计算设备对数字内容的呈现与第一用户计算设备对数字内容的呈现同步。在适当的情况下,特定实施例可以重复图6的方法的一个或更多个步骤。尽管本公开将图6的方法的特定步骤描述和示出为以特定的顺序发生,但是本公开设想了图6的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了包括图6的方法的特定步骤的用于在多个用户计算设备上呈现并同步数字内容的示例方法,但是本公开设想了包括任何合适的步骤的用于在多个用户计算设备上呈现并同步数字内容的任何合适的方法,在适当的情况下,这些合适的步骤可以包括图6的方法的全部、一些步骤或不包括图6的方法的步骤。此外,尽管本公开描述并示出了执行图6的方法的特定步骤的特定组件、设备或系统,但是本公开设想了执行图6的方法的任何合适步骤的任何合适的组件、设备或系统的任何合适组合。

发明人-范例从这里开始

图7示出了与社交网络系统相关联的示例网络环境700。网络环境700包括通过网络710连接到彼此的客户端系统730、社交网络系统760和第三方系统770。尽管图7示出了客户端系统730、社交网络系统760、第三方系统770和网络710的特定布置,但是本公开设想了客户端系统730、社交网络系统760、第三方系统770和网络710的任何合适的布置。作为示例而不是作为限制,客户端系统730、社交网络系统760和第三方系统770中的两个或更多个可以绕过网络710彼此直接连接。作为另一示例,客户端系统730、社交网络系统760和第三方系统770中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,尽管图7示出了特定数量的客户端系统730、社交网络系统760、第三方系统770和网络710,但是本公开设想了任何合适数量的客户端系统730、社交网络系统760、第三方系统770和网络710。作为示例而不是作为限制,网络环境700可以包括多个客户端系统730、社交网络系统760、第三方系统770和网络710。

本公开设想了任何合适的网络710。作为示例而不是作为限制,网络710的一个或更多个部分可以包括自组织(adhoc)网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公共交换电话网(pstn)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络710可以包括一个或更多个网络710。

链路750可以将客户端系统730、社交网络系统760和第三方系统770连接到通信网络710或连接到彼此。本公开设想了任何合适的链路750。在特定实施例中,一个或更多个链路750包括一个或更多个有线(例如数字用户线路(dsl)或基于电缆的数据服务接口规范(docsis))链路、无线(例如wi-fi或全球互通微波接入(wimax))链路、或光(例如同步光网络(sonet)或同步数字体系(sdh))链路。在特定实施例中,一个或更多个链路750各自包括自组织网络、内联网、外联网、vpn、lan、wlan、wan、wwan、man、互联网的一部分、pstn的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路750、或两个或更多个这种链路750的组合。链路750不需要在整个网络环境700中是相同的。一个或更多个第一链路750可以在一个或更多个方面上不同于一个或更多个第二链路750。

在特定实施例中,客户端系统730可以是电子设备,其包括硬件、软件或嵌入式逻辑组件、或两个或更多个这样的组件的组合,并且能够执行由客户端系统730实现或支持的适当功能。作为示例而不是作为限制,客户端系统730可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、gps设备、摄像机、个人数字助理(pda)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或其任何合适的组合。本公开设想了任何合适的客户端系统730。客户端系统730可以使在客户端系统730处的网络用户能够访问网络710。客户端系统730可以使它的用户能够与在其他客户端系统730处的其他用户进行通信。

在特定实施例中,客户端系统730可以包括web浏览器732,例如microsoftinternetexplorer、googlechrome或mozillafirefox,并且可以具有一个或更多个附加件(add-on)、插件(plug-in)或其他扩展件(extension),例如toolbar或yahootoolbar。在客户端系统730处的用户可以输入统一资源定位符(url)或将web浏览器732引导到特定的服务器(例如服务器762或与第三方系统770相关联的服务器)的其他地址,并且web浏览器732可以生成超文本传输协议(http)请求并将http请求传递到服务器。服务器可以接受http请求,并响应于http请求而向客户端系统730传递一个或更多个超文本标记语言(html)文件。客户端系统730可以基于来自服务器的html文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从html文件、可扩展超文本标记语言(xhtml)文件或可扩展标记语言(xml)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用javascript、java、microsoftsilverlight编写的脚本、标记语言和脚本的组合(例如ajax(异步javascript和xml))等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。

在特定实施例中,社交网络系统760可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统760可以生成、存储、接收和发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统760可以由网络环境700的其他组件直接地或经由网络710来访问。作为示例而不是作为限制,客户端系统730可以使用web浏览器732或与社交网络系统760相关联的原生(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络710来访问社交网络系统760。在特定实施例中,社交网络系统760可以包括一个或更多个服务器762。每个服务器762可以是单一服务器(unitaryserver)或跨越多台计算机或多个数据中心的分布式服务器。服务器762可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器762可以包括用于执行由服务器762实现或支持的适当功能的硬件、软件或嵌入式逻辑组件、或两个或更多个这样的组件的组合。在特定实施例中,社交网络系统760可以包括一个或更多个数据储存器764。数据储存器764可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器764中的信息。在特定实施例中,每个数据储存器764可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统730、社交网络系统760或第三方系统770能够管理、检索、修改、添加或删除存储在数据储存器764中的信息的接口。

在特定实施例中,社交网络系统760可以在一个或更多个数据储存器764中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及连接节点的多条边。社交网络系统760可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由社交网络系统760加入在线社交网络,且然后添加与社交网络系统760中的他们想要关连到的多个其他用户的关连(connection)(例如,关系)。在本文,术语“朋友”可以指用户经由社交网络系统760与之形成关连、关联(association)或关系的社交网络系统760的任何其他用户。

在特定实施例中,社交网络系统760可以向用户提供对由社交网络系统760支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统760的用户可以属于的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在社交网络系统760中或者由第三方系统770的外部系统表示的任何事物进行交互,第三方系统770与社交网络系统760分离并且经由网络710耦合到社交网络系统760。

在特定实施例中,社交网络系统760能够链接各种实体。作为示例而不是作为限制,社交网络系统760可以使用户能够与彼此交互以及从第三方系统770或其他实体接收内容,或者允许用户通过应用编程接口(api)或其他通信渠道与这些实体交互。

在特定实施例中,第三方系统770可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于api)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的组件(例如,服务器可以与这些组件通信)。第三方系统770可以由与操作社交网络系统760的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统760和第三方系统770可以结合彼此来操作以向社交网络系统760或第三方系统770的用户提供社交网络服务。在这个意义上,社交网络系统760可以提供平台或骨干网(backbone),其他系统(例如第三方系统770)可以使用该平台或骨干网来在互联网上向用户提供社交网络服务和功能。

在特定实施例中,第三方系统770可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传送到客户端系统730的内容对象的一个或更多个源。作为示例而不是作为限制,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。

在特定实施例中,社交网络系统760还包括用户生成的内容对象,其可以增强用户与社交网络系统760的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统760的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统730传送到社交网络系统760。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如动态消息(newsfeed)或流)来添加到社交网络系统760。

在特定实施例中,社交网络系统760可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统760可以包括下列项中的一项或更多项:web服务器、动作记录器、api请求服务器、相关性和排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targetingmodule)、用户界面模块、用户简档储存器、关连储存器(connectionstore)、第三方内容储存器或位置储存器。社交网络系统760还可以包括合适的组件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件、或其任何合适的组合。在特定实施例中,社交网络系统760可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如,传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、亲和性或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“赞(like)”关于一种品牌的鞋的文章,则该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络710将社交网络系统760链接到一个或更多个客户端系统730或一个或更多个第三方系统770。web服务器可以包括邮件服务器或用于在社交网络系统760和一个或更多个客户端系统730之间接收并路由(routing)消息的其他消息传送功能。api请求服务器可以允许第三方系统770通过调用一个或更多个api来访问来自社交网络系统760的信息。动作记录器可以用于从web服务器接收关于用户在社交网络系统760上或之外的动作的通信。结合动作日志,可以维护用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统730提供关于内容对象的信息。信息可以作为通知被推送到客户端系统730,或者信息可以响应于从客户端系统730接收的请求而从客户端系统730中被拉取。授权服务器可以用于实施社交网络系统760的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被共享。授权服务器可以例如通过设置适当的隐私设置来允许用户选择加入或选择退出使他们的动作由社交网络系统760记录或者与其他系统(例如,第三方系统770)共享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统770)接收的内容对象。位置储存器可以用于存储从客户端系统730接收的与用户相关联的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。

图8示出了示例计算机系统800。在特定实施例中,一个或更多个计算机系统800执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统800提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统800上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统800的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。

本公开设想了任何合适数量的计算机系统800。本公开设想了采取任何合适的物理形式的计算机系统800。作为示例而不是作为限制,计算机系统800可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如,模块上计算机(com)或模块上系统(som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(pda)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些中的两个或更多个的组合。在适当的情况下,计算机系统800可以包括一个或更多个计算机系统800;可以是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云组件。在适当的情况下,一个或更多个计算机系统800可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统800可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统800可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。

在特定实施例中,计算机系统800包括处理器802、存储器804、存储装置806、输入/输出(i/o)接口808、通信接口810和总线812。尽管本公开描述并示出了具有在特定布置中的特定数量的特定组件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适组件的任何合适的计算机系统。

在特定实施例中,处理器802包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器802可以从内部寄存器、内部高速缓存、存储器804或存储装置806中检索(或取回)指令;将这些指令解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器804或存储装置806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了包括任何合适数量的任何合适的内部高速缓存的处理器802。作为示例而不是作为限制,处理器802可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲区(tlb)。在指令高速缓存中的指令可以是在存储器804或存储装置806中的指令的副本,并且指令高速缓存可以加速处理器802对那些指令的检索。在数据高速缓存中的数据可以是:在存储器804或存储装置806中的数据的副本,用于供在处理器802处执行的指令操作;在处理器802处执行的先前指令的结果,用于由在处理器802处执行的后续指令访问或者用于写到存储器804或存储装置806;或其他合适的数据。数据高速缓存可以加速由处理器802进行的读或写操作。tlb可以加速关于处理器802的虚拟地址转译。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了包括任何合适数量的任何合适的内部寄存器的处理器802。在适当的情况下,处理器802可以包括一个或更多个算术逻辑单元(alu);可以是多核处理器;或者可以包括一个或更多个处理器802。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。

在特定实施例中,存储器804包括主存储器,其用于存储供处理器802执行的指令或供处理器802操作的数据。作为示例而不是作为限制,计算机系统800可以将指令从存储装置806或另一个源(例如,另一个计算机系统800)加载到存储器804。处理器802然后可以将指令从存储器804加载到内部寄存器或内部高速缓存。为了执行指令,处理器802可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器802可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器802然后可以将这些结果中的一个或更多个写到存储器804。在特定实施例中,处理器802仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器804(而不是存储装置806其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器804(而不是存储装置806或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器802耦合到存储器804。如下所述,总线812可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(mmu)驻留在处理器802和存储器804之间,并且便于由处理器802请求的对存储器804的访问。在特定实施例中,存储器804包括随机存取存储器(ram)。在适当的情况下,该ram可以是易失性存储器。在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口ram或多端口ram。本公开设想了任何合适的ram。在适当的情况下,存储器804可以包括一个或更多个存储器804。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。

在特定实施例中,存储装置806包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置806可以包括硬盘驱动器(hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(usb)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置806可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置806可以在计算机系统800的内部或外部。在特定实施例中,存储装置806是非易失性固态存储器。在特定实施例中,存储装置806包括只读存储器(rom)。在适当的情况下,该rom可以是掩模编程rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可变rom(earom)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置806。在适当的情况下,存储装置806可以包括便于在处理器802和存储装置806之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置806可以包括一个或更多个存储装置806。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。

在特定实施例中,i/o接口808包括为计算机系统800和一个或更多个i/o设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统800可以包括这些i/o设备中的一个或更多个。这些i/o设备中的一个或更多个可以实现在人和计算机系统800之间的通信。作为示例而不是作为限制,i/o设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的i/o设备、或这些中的两个或更多个的组合。i/o设备可以包括一个或更多个传感器。本公开设想了任何合适的i/o设备以及用于它们的任何合适的i/o接口808。在适当的情况下,i/o接口808可以包括使处理器802能够驱动这些i/o设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,i/o接口808可以包括一个或更多个i/o接口808。尽管本公开描述并示出了特定的i/o接口,但是本公开设想了任何合适的i/o接口。

在特定实施例中,通信接口810包括提供用于在计算机系统800和一个或更多个其他计算机系统800或一个或更多个网络之间的通信(例如,基于包(packet-based)的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口810可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(nic)或网络适配器,或者用于与无线网络(例如wi-fi网络)进行通信的无线nic(wnic)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口810。作为示例而不是作为限制,计算机系统800可以与自组织网络、个域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统800可以与无线pan(wpan)(例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统800可以包括用于这些网络中的任一个的任何合适的通信接口810。在适当的情况下,通信接口810可以包括一个或更多个通信接口810。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。

在特定实施例中,总线812包括将计算机系统800的组件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线812可以包括加速图形端口(agp)或其他图形总线、扩展工业标准体系结构(eisa)总线、前端总线(fsb)、hypertransport(ht)互连、工业标准体系结构(isa)总线、infiniband互连、低引脚数(lpc)总线、存储器总线,微通道体系结构(mca)总线、外围组件互连(pci)总线、pci-express(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线812可以包括一个或更多个总线812。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。

在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字(securedigital)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。

本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括性的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a或b”意指“a、b或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a和b”意指“a和b,联合地或各自地”。

本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示出为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

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