一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于隐私保护的加性和减性噪声的制作方法

2022-08-21 19:35:34 来源:中国专利 TAG:

用于隐私保护的加性和减性噪声
1.相关申请的交叉引用
2.本技术要求2020年9月29日提交的il申请no.277642的优先权。前述申请的全部内容在此以引用方式全文并入。


背景技术:

3.本说明书一般涉及数据处理以及在分析用户数据以改善用户体验时使用加性和减性噪声来保护用户的隐私。
4.差分隐私是许多隐私保护工作的基础,并且由于它提供许多理论保证,因此近年来变得流行。一般来说,差分隐私涉及用于共享有关数据集的有用信息,同时保护数据集内的个人隐私的技术。


技术实现要素:

5.本说明书描述在分析用户数据以改善用户体验时与保护用户隐私相关的技术。一般来说,本说明书中所描述的主题的一个创造性方面可以在方法中实施,所述方法包括获得真实用户组标识符的第一集,所述真实用户组标识符识别包括用户作为成员的用户组。基于真实用户组标识符的第一集,生成用户的用户组标识符的第二集。生成包括从用户组标识符的第一集中去除零个或多个真实用户组标识符,以生成用户组标识符的第二集。将不包括用户作为成员的用户组的一个或多个虚假用户组标识符添加到用户组标识符的第二集。基于用户组标识符的第二集生成概率数据结构。将概率数据结构传输到接收方计算系统。接收指示数字组件的集的数据,所述数字组件的集包括基于概率数据结构选择的至少一个数字组件。从所述数字组件的集中选择给定的数字组件。呈现给定的数字组件。此方面的其它实现方式包括被配置成执行方法的方面的对应设备、系统和计算机存储装置上编码的计算机程序。
6.这些和其它实现方式可以各自任选地包括以下特征中的一个或多个。在一些方面中,从用户组标识符的第一集中去除零个或多个真实用户组标识符包括从用户组标识符的第一集中去除多个真实用户组标识符。在一些方面中,所述数字组件的集包括不基于概率数据结构选择的一个或多个附加数字组件。
7.在一些方面中,从所述数字组件的集中选择给定的数字组件包括通过从所述数字组件的集中过滤不具有与真实用户标识符中的一个匹配的对应用户组标识符的一个或多个数字组件来生成过滤的数字组件的子集;以及从所述过滤的数字组件的子集中选择所述给定的数字组件。
8.在一些方面中,从所述数字组件的集中过滤不具有与真实用户组标识符中的一个匹配的对应用户组标识符的一个或多个数字组件可以包括在指示所述数字组件的集的数据中识别用于所述数字组件的一个或多个对应用户组标识符,每个对应用户标识符是用于选择包含在所述数字组件的集中的数字组件的用户组标识符。一些方面可以包括将每个对应用户标识符与用户组标识符的第一集中的真实用户组标识符相比较;以及从所述数字组
件的集中去除不具有与用户组标识符的第一集中的一个真实用户组标识符匹配的对应用户组标识符的每个数字组件。
9.在一些方面中,指示所述数字组件的集的数据包括识别各自具有一个或多个对应用户组标识符的第一数字组件的数据,以及识别不具有任何对应用户组标识符的一个或多个第二数字组件的数据。从所述数字组件的集中选择给定的数字组件可以包括从所述数字组件的集中去除每个第一数字组件,其中第一数字组件的对应用户组标识符中没有一个与真实用户组标识符匹配。
10.在一些方面中,从所述数字组件的集中选择给定的数字组件包括当从所述数字组件的集中去除所有第一数字组件时,选择第二数字组件。
11.在一些方面中,接收方计算系统基于概率数据结构从多个用户组中选择用户组的子集,并且选择与用户组的子集相对应的数字组件的集。在一些方面中,概率数据结构包括布隆过滤器或布谷鸟过滤器。
12.在一些方面中,从用户组标识符的第一集中去除一个或多个真实用户组标识符包括随机地或伪随机地选择一个或多个真实用户组标识符,并且将一个或多个虚假用户组标识符添加到组标识符的第二集包括随机地或伪随机地选择一个或多个虚假用户组标识符。
13.在一些方面中,每个真实用户标识符基于以下项的组合:(i)创建由真实用户组标识符识别的用户组的实体的域,以及(ii)由真实用户组标识符识别的用户组的唯一标识符。
14.在一些方面中,每个真实用户组标识符是基于域和唯一标识符的组合生成的消息认证码。
15.在一些方面中,基于组标识符的第二集生成概率数据结构包括:生成每个用户组标识符的散列输出,所述散列输出具有跨越所有用户组标识符的均匀分布;以及生成概率数据结构,所述概率数据结构包括在组标识符的第二集中的每个用户组标识符的散列输出。
16.一般来说,当内容平台基于用户的组成员资格数据提供数字组件或其它内容时,用户体验会得到改善。例如,响应于用户和与特定类别相关的电子资源交互,可以将用户添加到所述类别的用户组,从而将与所述类别相关的数字组件提供给用户。此信息可以存储在用户的装置处,以保护用户在组成员资格方面的隐私。在此信息不可用的情况下,内容平台必须评估不包括用户作为成员的用户组的数字组件。例如,内容平台可以评估所有其用户组的数字组件,并且为这些组中的至少一些组提供数字组件,而不知道用户是否实际上是其中任何一个组的成员。用户装置处的应用可以评估每个接收到的数字组件,以确定它是否与其中用户为成员的用户组相关联,并且忽略不具有此关联性的数字组件。为了减轻评估与用户的组成员资格无关的数字组件的浪费计算负担,可以将用户的组成员资格提供给内容平台。然而,此成员资格数据通常对用户来说是私有的,并且将使内容平台能够通过使用在每个请求中发送的成员资格数据作为用户指纹来跟踪用户。
17.可以在特定实施例中实施在本说明书中描述的主题,以便实现以下优点中的一个或多个。对于由用户的客户端装置发送的多个请求,应用可以修改用户的组成员资格列表以添加和删除用户组标识符,使得提供给内容平台的修改列表对于多个请求不同,由此提供防止内容平台通过使用与用户指纹相同的列表来跟踪用户的差分隐私。通过提供数据,
所述数据识别包括用户作为成员的用户组,基于用户的组成员资格为用户选择数字组件的内容平台可以节省计算资源,否则这些计算资源将被浪费在评估不包括用户作为成员的用户组的数字组件上。客户端装置的计算资源还通过也不必评估不包括用户作为成员的用户组的数字组件而得到保存。通过使实际的用户组成员资格信息可用并且添加和减去用于差分隐私的用户组标识符,用于匹配用户组标识符的搜索空间小得多,从而节省内容平台处的计算并减少通过网络传输并且存储在客户端装置上的数字组件。
18.可以将识别用户的用户组标识符的数据编码在概率数据结构中,所述概率数据结构通过不共享用户的所有用户组标识符的明文值来保护用户隐私,并导致更小的数据大小。这种较小的数据大小减少网络带宽的消耗,提高传输速度,减少接收和处理数据所需的计算资源,并且降低存储用户组成员资格数据的数据存储需求。通过将概率数据结构的参数配置为具有小的(例如1%)的假阳性率,不包括用户作为成员且内容平台评估的用户组的数目也小,从而导致在内容平台、客户端装置处的计算节省,并且减少通过发送不包括用户作为成员的用户组的数字组件而消耗的带宽量。本文档中描述的系统和技术能够在不识别请求者的情况下请求和分发数字组件,从而使系统更加安全。例如,这可以防止请求者成为目标,因为他们的身份未知。
19.下文关于附图描述前述主题的各个特征和优点。附加的特征和优点从本文所描述的主题和权利要求书中显而易见。
附图说明
20.图1是其中将内容分发给客户端装置的环境的框图。
21.图2是用于将用户与用户组相关联的示例过程的泳道图。
22.图3是用于基于用户组请求和接收数字组件的示例过程的泳道图。
23.图4是说明生成概率数据结构的示例过程的流程图。
24.图5是示例计算机系统的框图。
25.在各个附图中的相似参考数字和标号指示相似的元件。
具体实施方式
26.一般来说,本文档涉及在分析用户数据以改善用户体验时保护用户隐私。这使得能够使用差分隐私技术将机密信息共享给内容平台,从而保持用户的匿名性,同时减少平台在评估不包括用户作为成员的用户组的数字组件时所承受的计算负担。
27.图1是其中将内容分发给客户端装置110的环境100的框图。示例环境100包括数据通信网络105,例如局域网(lan)、广域网(wan)、因特网、移动网络,或它们的组合。网络105连接客户端装置110、需求方平台(dsp)150、供应方平台(ssp)170、发布者140和网站142。示例环境100可以包括许多不同的客户端装置110、dsp 150、ssp 170、发布者140和网站142。
28.客户端装置110是能够通过网络105通信的电子装置。示例客户端装置110包括个人计算机、例如智能电话的移动通信装置,以及可以通过网络105发送和接收数据的其它装置。客户端装置还可以包括数字助理装置,所述数字助理装置通过麦克风接受音频输入并且通过扬声器输出音频输出。当数字助理检测到激活麦克风以接受音频输入的“热词”或“热短语”时,可以将数字助理置于收听模式(例如,准备好接受音频输入)。数字助理装置还
可以包括相机和/或显示器以捕获图像并且视觉地呈现信息。数字助理可以用不同形式的硬件装置实施,包括可穿戴装置(例如手表或眼镜)、智能电话、扬声器装置、平板装置,或另一硬件装置。客户端装置还可以包括数字媒体装置,例如插入到电视机或其它显示器以将视频流式传输到电视机的流式传输装置。
29.客户端装置110通常包括例如网络浏览器和/或本机应用的应用112,以促进通过网络105发送和接收数据。本机应用是为特定平台或特定装置(例如,具有特定操作系统的移动装置)开发的应用。发布者140可以开发并向客户端装置110提供例如可供下载的本机应用。例如,响应于客户端装置110的用户在网络浏览器的地址栏中输入资源145的资源地址或选择引用资源地址的链接,网络浏览器可以从托管发布者140的网站142的网络服务器请求资源145。类似地,本机应用可以从发布者的远程服务器请求应用内容。
30.一些资源、应用页面或其它应用内容可以包括用于利用资源145或应用页面呈现数字组件的数字组件槽。数字组件槽可以是嵌入在资源中的数字组件标签,并且所述数字组件标签包括用于请求数字组件的计算机可读代码。如整个本文档中使用,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件可以作为单个文件电子地存储在物理存储器装置中或电子地存储在文件集合中,并且数字组件可以采用视频文件、音频文件、多媒体文件、图像文件或文本文件的形式并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件可以是旨在补充由应用112呈现的网页或其它资源的内容的内容。更具体来说,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以和与网页内容相同的主题,或相关主题相关)。因此,提供数字组件可以补充并通常增强网页或应用内容。
31.当应用112加载包括一个或多个数字组件槽的资源(或应用内容)时,应用112可以请求每个槽的数字组件。在一些实现方式中,数字组件槽可以包括使应用112请求数字组件以呈现给客户端装置110的用户的代码(例如,脚本)。
32.一些发布者140使用ssp 170来管理获得用于其资源和/或应用的数字组件槽的数字组件的过程。ssp 170是在硬件和/或软件中实施的技术平台,所述技术平台将获取资源和/或应用的数字组件的过程自动化。ssp 170可以与一个或多个dsp 150交互,以获得可以用于选择数字组件槽的数字组件的信息。如下文更详细地描述,此信息可以包括选择参数,所述选择参数表示数字组件提供者160愿意提供给发布者140以呈现数字组件提供者160的数字组件的数量。每个发布者140可以具有对应ssp 170或多个ssp 170。多个发布者140可以使用相同ssp 170。
33.数字组件提供者160可以创建(或以其他方式发布)在发布者的资源和应用的数字组件槽中呈现的数字组件。数字组件提供者160可以使用dsp 150来管理其数字组件的供应,以在数字组件槽中呈现。dsp 150是在硬件和/或软件中实施的技术平台,所述技术平台将分发用于利用资源和/或应用的呈现的数字组件的过程自动化。dsp 150可以代表数字组件提供者160与多个ssp 170交互,以提供用于利用多个不同的发布者140的资源和/或应用的呈现的数字组件。一般来说,dsp 150可以(例如,直接或通过交换从ssp 170)接收对数字组件的请求,基于请求生成(或选择)由一个或多个数字组件提供者创建的一个或多个数字组件的选择参数,并且将与数字组件相关的数据(例如,数字组件本身)和选择参数提供到ssp170。
34.在一些情况下,接收与网页、应用页面或用户先前访问和/或先前与用户交互的其它电子资源相关的数字组件对用户是有益的。为了将此类数字组件分发给用户,可以在用户访问特定资源或在资源处执行特定动作(例如,与网页上呈现的特定项目交互或将项目添加到虚拟购物车)时将用户分配到用户组。例如,如果装置的用户搜索鞋子并且访问不同鞋厂的多个网页,浏览器可以将用户添加到例如“鞋子”的用户组,并且将用户组“鞋子”的对应用户组标识符存储在客户端装置上。因此,用户组可以表示用户的兴趣。用户组可以由数字组件提供者160生成并且由用户组标识符识别。也就是说,当用户访问数字组件提供者160的电子资源时,每个数字组件提供者160可以将用户分配到他们的用户组。例如,如果用户将鞋子添加到在线零售商的购物车,则零售商可以将用户添加到鞋子用户组。可以将用户分配给多个不同数字组件提供者的多个用户组。
35.为了保护用户隐私,可以在用户的客户端装置110处例如由应用112中的一个或客户端装置110的操作系统,而不是由数字组件提供者160、内容平台或另一方维持用户的组成员资格。在特定示例中,应用112可以为用户维护用户组标识符的列表(“用户组列表”)114。用户组列表114可以包括已将用户添加到的每个用户组的组标识符。创建用户组的数字组件提供者160可以为他们的用户组指定用户组标识符。用户组的用户组标识符可以描述组(例如,园艺组)或表示组的代码(例如,非描述性的字母数字序列)。用户的用户组列表114可以存储在客户端装置110处的安全存储中和/或可以在存储时进行加密。
36.将用户实际分配到的用户组标识符称为真实组标识符。在一些实现方式中,每个用户组标识符基于以下项的组合:(i)创建和/或管理由用户组标识符识别的用户组的实体(例如,数字组件提供者160或dsp 150)的资源定位符(例如,域、url或etld 1),以及(ii)由用户组标识符识别的用户组的唯一标识符。例如,数字组件提供者可能具有网站example.com和具有标识符“鞋子”的鞋子用户组。在此示例中,例如由应用112、ssp 170和dsp 150在环境100中使用的用户组标识符可以是“example.com”和“鞋子”的组合或基于此组合。
37.如上文所提及,实体的资源定位符可以是创建或管理用户组的实体域的etld 1。etld 1是有效顶级域(etld)加上比公共后缀多一个级别。示例etld 1是“example.com”,其中“.com”是顶级域。
38.在具有多个数字组件提供者160的环境中,每个数字组件提供者160可以访问或维护多个用户组并且每个用户可以是多个用户组的成员。例如,服装经销商可以具有用于每种类型的服装的用户组,并且用户可以是服装经销商的一个或多个服装组的成员,也可以是家居装饰公司的园艺组的成员。在一些实现方式中,散列函数可以用于为(i)创建用户组的实体(例如,数字组件提供者)的资源定位符和(ii)由实体识别的用户组的唯一标识符生成散列输出。此散列函数的结果可以是在环境100中使用的组的用户组标识符。在其它示例中,可以使用特定于创建用户组的实体的其它信息来代替资源定位符。
39.例如,假设“example.com”是数字组件提供者的域,并且ug_id是由数字组件提供者160识别的特定用户组的唯一组标识符。应用112可以使用密码函数来基于资源定位符和唯一组标识符生成用户组标识符。函数可以是伪随机函数,例如使用安全散列算法(sha256)实施以生成散列的256位(32字节)输出的密钥散列消息验证码(hmac),所述安全散列算法是具有256位的摘要长度的加密散列函数。在此示例中,hmac(ug_id、
example.com)生成用户组的256位唯一标识符作为用户组标识符。
40.通过使用散列函数来确定用户组标识符,在没有附加信息的情况下,用户组标识符的接收方在计算上不可能找出创建/管理用户组的实体的身份或用户组的唯一标识符。因此,如果另一实体接收用户的用户组标识符,则散列函数方法保护实体的机密信息(例如,开始、停止、正在进行的数字组件活动的数量等)。散列函数还通过阻止此类实体确定用户的完整组成员资格来保护用户隐私。
41.当应用112呈现与数字组件提供者160或网站142上的网页相关的资源或应用内容时,资源可以请求应用112将一个或多个用户组标识符添加到用户的用户组列表。作为响应,应用112可以将一个或多个用户组标识符添加到用户组列表114并且安全地存储用户组列表。这参考图2进一步解释。
42.为了获得例如在数字组件槽中的用于利用发布者140的电子资源的呈现的数字组件,应用112可以向ssp 170提交针对发布者140的请求。此请求可以包括用户的用户组标识符,例如包括在用户组列表114中的用户组标识符。在一些实现方式中,应用112可以发送用户组标识符的明文值。然而,这将为列表的接收方提供用户的整个用户组成员资格,并使接收方能够基于对用户的多个请求来跟踪用户。
43.为了保护用户隐私,在将用户组标识符提供到ssp 170之前,应用112可以将噪声(例如,差分隐私噪声)应用于用户的用户组标识符。如下文所描述,这可以包括为用户实际上是其成员的用户组去除一个或多个真实用户组标识符。这还可以包括添加一个或多个虚假用户组标识符,所述虚假用户组标识符可能不表示任何实际用户组(例如,仅随机标识符)或者可以是用户不是成员的实际用户组的标识符。这通过防止接收方知道用户的整个组成员资格数据来保护用户隐私,并且如果添加到提供给ssp170的列表和从所述列表中删除的用户组标识符对于不同的请求不同,则可以防止接收方基于用户的组成员资格跟踪用户,因为他们收到的列表会有所不同。
44.另外,应用112可以基于用户组列表114中的用户组标识符生成概率数据结构,例如布隆过滤器或布谷鸟过滤器。例如,在将差分隐私技术应用于用户组列表114之后,应用112可以基于用户标识符列表生成概率数据结构。这通过防止接收方获得用户的整个组成员资格数据来保护用户隐私,并且减小用户组数据的数据大小,从而提供性能优势,如上文所描述。
45.ssp 170可以接收请求并且将请求提交到一个或多个dsp 150。发送到dsp 150的这些请求还可以包括用户的用户组标识符。dsp 150可以基于用户的一个或多个用户组选择用户的一个或多个数字组件,并且将数字组件的选择参数提供到ssp 170。选择参数表示数字组件提供者160愿意提供给发布者140以呈现数字组件提供者160的数字组件的数量。ssp 170可以代表发布者140应用一些排除并且基于选择参数向应用112提供数字组件列表。应用112可以从列表中选择数字组件并且利用发布者140的电子资源呈现数字组件。在图3中说明并且在下文描述用于获得数字组件的示例过程。
46.在一些实现方式中,应用112可以提供使用户能够管理用户被分配到的用户组的用户界面。例如,用户界面可以使用户能够去除用户组标识符,防止所有或特定资源145、发布者140、数字组件提供者160、数字组件交换和/或dsp 150将用户添加到用户组(例如,防止实体将用户组标识符添加到由应用112维护的用户组标识符的列表)。这为用户提供更好
的透明性和控制。
47.除了贯穿本文档的描述之外,用户可以配备有控件,所述控件允许用户选择是否以及何时本文所描述的系统、程序或特征可以实现用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户偏好或用户当前位置的信息)的收集,以及用户是否从服务器发送内容或通信。另外,某些数据可以在存储或使用之前通过一种或多种方式加以处理,使得去除个人身份信息。例如,可以处理用户的身份,使得无法确定用户的个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置进行概括(例如,城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用所述信息,以及向用户提供什么信息。
48.图2是说明用于将一个或多个用户组标识符添加到用户的用户组列表114的示例过程200的泳道图。过程200的操作可以例如由客户端装置110实施。过程200的操作也可以作为存储在可以是非暂时性的一个或多个计算机可读介质上的指令实施,并且指令由一个或多个数据处理设备的执行可以使一个或多个数据处理设备执行过程200的操作。尽管根据下载网页的网络浏览器描述此过程200,但是可以在类似过程中使用本机应用。
49.在此示例中,客户端装置110的用户使用例如网络浏览器的应用112来访问托管在网络服务器上的数字组件提供者160的网站142。为了访问网站142,客户端装置110可以发起对网站142的请求,并且托管网站142的网络服务器可以通过发送计算机可执行指令和/或数据对请求作出响应,所述计算机可执行指令和/或数据发起在客户端装置110处呈现网页(或其它电子资源)。
50.网页可以包括例如脚本的计算机可执行代码,所述计算机可执行代码提示客户端装置110的网络浏览器请求加入给定用户组,例如与网页内容相关的用户组,或用户与网页或网站142的交互。例如,假设网站142是鞋类电子商务网站。在导航到网站142之后,从网站142下载的网页可以提示客户端装置110的用户请求加入用户组“鞋子”。网络浏览器的用户界面可以进一步使用户能够对提示作出响应,并且允许用户接受或拒绝加入用户组“鞋子”的请求。在客户端装置110的用户接受加入用户组的请求的情形下,网络浏览器将对应的用户组标识符存储在客户端装置110上。在另一示例中,例如如果用户启用此功能,则网络浏览器可以将用户添加到用户组,而不提示用户。下文进一步解释示例过程200。
51.在此示例中,基于用户组成员资格提供用于利用其他发布者的资源的呈现的数字组件的数字组件提供者160也是网站的发布者。例如,数字组件提供者160可以具有包括与其产品或服务相关的内容的网站,并且还希望在具有其他内容的网站(例如,新闻网站)上呈现与其产品或服务相关的数字组件。
52.客户端装置110的用户导航到数字组件提供者160的网络142(202)。例如,客户端装置110的用户可以通过指定参考(例如url)来使用浏览器访问网站142。在另一示例中,客户端装置110的用户使用网络浏览器向搜索系统提交搜索查询,所述搜索系统通过对网站进行爬网和索引(例如,基于网站的爬网内容进行索引)来识别网站。作为响应,搜索系统以搜索结果的形式识别网站,并且在搜索结果页面中将搜索结果返回到客户端装置110。搜索结果是由搜索系统生成的数据,所述数据识别响应于特定搜索查询(例如,与特定搜索查询相关)的网站,并且包括活动链接(例如,超文本链接),所述活动链接使客户端装置110响应于与搜索结果的用户交互而从例如网络服务器的指定位置请求数据。示例搜索结果可以包
括网站标题、从网站提取的文本片段或图像的一部分,以及网站的url。在查看搜索结果之后,客户端装置110的用户可以选择和/或点击对应于网站142的搜索结果。
53.客户端装置110生成对网站142的内容的请求并且通过网络105将请求传输到网络服务器(204)。例如,在客户端装置110的用户点击和/或选择对应于网站142的搜索结果,或通过使用参考(例如,url)直接指定网站142之后,在客户端装置110上运行的网络浏览器生成对数字内容(例如,网站142的网页)的请求并且通过网络105将所述数字内容传输到网络服务器。
54.可以例如通过分组网络传输对数字内容的请求,并且可以将内容请求本身格式化为具有标头和有效载荷数据的分组数据。标头可以指定数据包的目的地,而有效载荷数据可以包括上面讨论的任何信息。
55.网络服务器以网站142的内容(例如,网页)作出响应(206)。例如,在从客户端装置110接收对数字内容(即,网站142)的请求之后,托管网站142的网络服务器通过传输发起在客户端装置110处呈现网页的机器可执行指令来作出响应。响应可以包括与例如通过分组网络传输的网页相关的数据,并且可以将内容本身格式化为分组数据。
56.客户端装置110呈现内容以呈现给用户(208)。在从网络服务器接收数字内容(例如,网页)之后,网络浏览器呈现内容以呈现给用户。例如,网络浏览器可以使用客户端装置110的显示器将网页呈现给用户。
57.数字组件提供者160请求客户端装置110的网络浏览器将用户添加到用户组(210)。例如,在传输发起呈现与网站142相关的数据的计算机可执行指令之后,数字组件提供者160(例如,数字组件提供者160的网络服务器)可以提示客户端装置110的用户加入用户组。在另一示例中,网页可以包括例如脚本的计算机可执行代码,所述计算机可执行代码调用网络浏览器的应用程序编程接口(api)以请求网络浏览器将用户添加到用户组。
58.在一些实现方式中,数字组件提供者160从由数字组件提供者160已知和/或管理的多个可用用户组中选择用户组。在当前示例中,网站142是用于购买鞋子的电子商务网站。托管网站142的网络服务器可以提示客户端装置110的用户请求加入用户组“鞋子”。网络浏览器的用户界面可以进一步使用户能够对提示作出响应,并且允许用户接受或拒绝加入用户组“鞋子”的请求。
59.在一些实现方式中,应用112(例如,网络浏览器)可以向客户端装置110的用户提供可配置的选项,使得可以在没有用户干预的情况下自主地处理用户组的接受和拒绝。例如,客户端装置110的用户可以配置应用112的某些选项,使得应用112可以在发布者140提示时自动接受用户组。
60.用户组标识符存储在客户端装置110上(212)。如前所述,通过由发布者140确定的用户组标识符识别每个用户组。在接受加入特定用户组的请求之后,网络浏览器将与特定用户组相对应的用户组标识符存储在客户端装置110上。例如,如果客户端装置110的用户接受加入用户组“鞋子”的请求,则在由内容提供者提示之后,网络浏览器将用户组“鞋子”的用户组标识符存储在客户端装置110上。如上所述,用户组标识符可以存储在客户端装置110处的安全存储中。
61.在某些情况下,当应用112加载包括一个或多个数字组件槽的资源(或应用内容)时,应用112可以请求每个槽的数字组件。在一些实现方式中,数字组件槽可以包括使应用
112从数字组件分配系统请求数字组件的代码(例如,脚本),所述数字组件分配系统选择数字组件并且将所述数字组件提供给应用112以呈现给客户端装置110的用户。
62.图3是说明用于请求和接收数字组件的示例过程300的泳道图。过程300的操作可以例如由客户端装置110、ssp 170、一个或多个dsp 150和发布者140实施。过程300的操作也可以作为存储在可以是非暂时性的一个或多个计算机可读介质上的指令实施,并且指令由一个或多个数据处理设备的执行可以使一个或多个数据处理设备执行过程300的操作。
63.在此示例中,客户端装置110的用户使用例如网络浏览器或本机应用的应用112来访问电子资源(例如,网页或应用页),所述电子资源包括数字组件槽。
64.在加载包括数字组件槽的网页之后,应用112基于客户端装置110的用户被分配到的一个或多个用户组向数字组件提供者发送对数字组件的请求。在一些实现方式中,将对数字组件的请求发送到供应方平台(ssp)170,所述ssp是将获得应用的数字组件的过程自动化的硬件和/或软件。
65.对数字组件的请求包括由应用112或客户端装置的操作系统使用存储在客户端装置110中的用户组标识符的第一集生成的概率数据结构,例如布隆过滤器或布谷鸟过滤器。例如,用户组标识符的第一集可以是存储在客户端装置110上的用户组列表114中的用户组标识符。在一些实现方式中,概率数据结构基于组标识符的第二集,所述组标识符的第二集通过从用户组标识符的第一集中去除一个或多个真实组标识符并且通过添加不在组标识符的第一集中的一个或多个虚假组标识符而从组标识符的第一集生成。概率数据结构可以基于随机散列函数,所述随机散列函数生成每个用户组标识符的散列输出,使得散列输出具有跨越所有用户组标识符的均匀分布。
66.在接收到对数字组件的请求后,ssp 170可以与一个或多个数字组件提供者和/或一个或多个dsp 150交互,所述dsp是一种以硬件和/或软件实现的技术平台,所述技术平台可以将分发用于利用应用的呈现的过程自动化。在一些实现方式中,ssp 170可以将概率数据结构传输到dsp 150。
67.通过滤除不具有与概率数据结构所表示的用户组标识符中的一个匹配的对应用户组标识符的数字组件,dsp 150从可用数字组件的集中选择一个或多个数字组件。在一些实现方式中,dsp 150可以使用与应用112相同的散列函数为与每个可用数字组件相关的每个用户组标识符生成散列输出。在此种实现方式中,在概率数据结构内搜索散列输出,并且从选择过程中过滤不具有用户组标识符的对应散列值的数字组件。
68.dsp 150可以通过对一个或多个所选择数字组件中的每一个进行分析和评分来进一步选择数字组件(例如,前n个数字组件)。dsp 150随后将所选择数字组件传输到ssp。在从dsp 150接收到所选择数字组件之后,在基于由发布者140设置的标准和/或条件支持被提供用于在客户端装置上呈现的数字组件之前,ssp 170可以审查和选择数字组件的集(例如,前k个数字组件)。例如,ssp 170可以审查数字组件的内容和格式以确保它满足各种标准,例如,不包括特定类型的内容、满足数据和/或显示尺寸要求等。将所述数字组件的集发送到在客户端装置110上运行的应用112。
69.通过从所述数字组件的集滤除不具有与用户组标识符的第一集(例如,用户组列表114中的用户组标识符)中的一个真实用户标识符匹配的对应用户组标识符的一个或多个数字组件,在客户端装置110上执行的应用112在接收到所述数字组件的集之后可以选择
数字组件的过滤的子集。为了从所述数字组件的集滤除一个或多个数字组件,应用112识别所述数字组件的集中(例如,数字组件的元数据中)的每个数字组件的一个或多个对应用户组标识符。在识别之后,应用112将每个数字组件的每个用户组标识符与用户组标识符的第一集中的真实用户组标识符相比较,以去除不具有与用户组标识符的第一集中的一个真实用户组标识符匹配的对应用户组标识符的数字组件。
70.最后,对数字组件的过滤的子集中的数字组件进行分析,以选择给定的数字组件。在选择之后,给定的数字组件被呈现在客户端装置上(例如,被呈现在数字组件槽中)。
71.使用应用112的客户端装置110的用户导航到电子资源(302)。例如,客户端装置110的用户可以通过指定参考(例如url)来使用浏览器访问网站142。在另一示例中,客户端装置110的用户可以使用网络浏览器向搜索系统提交搜索查询,所述搜索系统通过对网站进行爬网和索引(例如,基于网站的爬网内容进行索引)来识别网站。作为响应,搜索系统以搜索结果的形式识别网站,并且在搜索结果页面中将搜索结果返回到客户端装置110。在查看搜索结果之后,客户端装置110的用户可以选择和/或点击对应于网站142的搜索结果。在又另一示例中,用户可以启动从应用的发布者140请求内容的本机应用。
72.客户端装置110生成对内容的请求并且通过网络105将请求传输到网络服务器(304)。例如,在客户端装置110的用户点击和/或选择对应于网站142的搜索结果,或通过使用参考(例如,url)直接指定网站142之后,应用112,即在客户端装置110上运行的网络浏览器生成对数字内容(即,网站142)的请求并且通过网络105将所述数字内容传输到网络服务器。
73.可以例如通过分组网络105传输对数字内容的请求,并且可以将内容请求本身格式化为具有标头和有效载荷数据的分组数据。标头可以指定数据包的目的地,而有效载荷数据可以包括上面讨论的任何信息。
74.发布者140,例如发布者140的网络服务器或内容服务器以内容作出响应(306)。例如,在从客户端装置110接收对内容的请求(即,对网站142的请求)之后,服务器可以通过传输发起在客户端装置110处呈现网页的计算机可执行指令和数据来作出响应。响应可以包括与例如通过分组网络105传输的网页相关的数据,并且可以将内容本身格式化为分组数据。
75.客户端装置110识别电子资源中的数字组件的标签(308)。在从发布者140接收电子资源或电子资源的内容之后,应用112可以识别一个或多个标签,例如,用于电子资源的数字组件槽的一个或多个标签。例如,网络浏览器可以识别网页中的一个或多个数字组件槽。
76.客户端装置110生成概率数据结构(310)。如前所述,概率数据结构可以基于组标识符的第二集,所述组标识符的第二集通过随机地(或伪随机地)从用户组标识符的第一集中去除真实组标识符并且通过随机地(或伪随机地)添加不在用户组标识符的第一集的真实用户组标识符中的虚假组标识符而从组标识符的第一集生成。概率数据结构基于随机散列函数,所述随机散列函数生成每个用户组标识符的散列输出,使得散列输出具有跨越所有用户组标识符的均匀分布。示例概率数据结构包括布隆过滤器或布谷鸟过滤器。下文参考图4描述用于生成概率数据结构的示例过程。
77.客户端装置110将对数字组件的请求传输到ssp 170(312)。客户端装置110可以将
请求发送到ssp 170的计算系统,所述计算系统还可以称为接收方计算系统。例如,应用112可以基于一个或多个数字组件槽生成对数字组件的一个或多个请求。在特定示例中,网络浏览器可以基于标签生成对数字组件的请求,并且通过网络105将请求传输到ssp 170。
78.在一些实现方式中,对数字组件的请求可以包括由客户端装置110生成的概率数据结构(参考图4解释)。例如,网络浏览器应用112生成对包括概率数据结构的数字组件的请求。概率数据结构表示用户组标识符的第二集,所述用户组标识符的第二集基于与客户端装置110的用户相关联的用户组列表114中的用户组标识符,并且概率数据结构将对数字组件的请求传输到ssp 170。
79.在一些实现方式中,对数字组件的请求还可以包括附加数据,例如上下文数据。上下文数据可以包括例如资源的资源定位符,例如网页的通用资源定位符(url)或应用内容的通用资源标识符(uri)、语言(例如,由呈现内容的应用呈现的内容所使用的语言)和/或指示客户端装置110的粗略位置的粗略地理位置信息。
80.可以例如通过分组网络105传输对数字组件的请求,并且可以将组件请求本身格式化为具有标头和有效载荷数据的分组数据。标头可以指定数据包的目的地,而有效载荷数据可以包括上面讨论的任何信息。
81.ssp 170将对数字组件的请求传输到一个或多个dsp 150(314)。如上所述,数字组件提供者160可以使用一个或多个dsp 150以将分发用于利用应用的呈现的数字组件的过程自动化。在接收到请求之后,ssp 170可以与一个或多个dsp交互,并且传输对数字组件的对应请求,所述数字组件包括概率数据结构以及任选地上下文数据。
82.dsp 150基于概率数据结构过滤数字组件(316)。在一些实现方式中,通过滤除不具有与概率数据结构中的用户组标识符中的一个匹配的对应用户组标识符的数字组件,dsp 150从数字组件的集中选择一个或多个数字组件。在此类实现方式中,dsp 150可以为dsp 150已知的每个用户组标识符使用与客户端装置110相同的散列函数生成散列输出。在此类实现方式中,dsp 150可以在概率数据结构内的散列输出中搜索由dsp 150已知或管理的每个用户组标识符。dsp 150可以从用于响应于请求提供的候选数字组件的集中过滤不具有对应用户组标识符的每个数字组件,所述对应用户组标识符的散列输出在概率数据结构中未找到。例如,由dsp 150分发的数字组件的至少一部分可以具有与数字组件相关的用户组的一个或多个用户组标识符。在特定示例中,具有关于特定一双鞋的内容的数字组件可以具有“鞋”组、“服装”组和“鞋类”组的标识符作为对应的用户组标识符。
83.此种实现方式可以利用概率数据结构的假阳性率。如在本文档中使用,短语“假阳性率”是指标识与概率数据结构相关联的预期假阳性率或假阳性数的值。例如,假阳性率可以是为概率数据结构选择的算法和参数以及概率数据结构的大小的函数。因此,可以调整这些参数来调整假阳性率。
84.例如,假设概率数据结构是假阳性率为1%的布隆过滤器。还假设dsp 150了解并且管理为一百万个用户组提供数字组件。还假设用户是这种用户组中的十个用户组的成员。此假阳性率可以将dsp 150已知的所有用户组标识符的池缩小到用户组标识符的大约1%,从而导致在过滤之后留在选择过程中的候选数字组件的数量相应地减少。例如,可能存在一万个假阳性用户组标识符和十个真阳性用户组标识符。这可以为dsp 150产生更好的计算性能并且产生更快的响应时间,从而改善用户体验,因为dsp 150不必浪费时间和计
算资源来评估一百万个用户组的数字组件。
85.在基于概率数据结构滤除数字组件之后,dsp 150选择一个或多个数字组件(318)。在一些实现方式中,dsp 150可以通过对一个或多个所选择数字组件中的每一个进行分析和评分来进一步选择数字组件(例如,前n个数字组件)。例如,此评分可以基于上下文数据、数字组件的预期性能,和/或附加信息。
86.dsp 150将一个或多个所选择数字组件的数据传输到ssp 170(320)。例如,通过传输一个或多个所选择数字组件或识别数字组件的数据(例如,包括用于呈现数字组件的指令的创意元素),dsp 150可以对针对ssp 170的数字组件的请求作出响应。对于每个数字组件,dsp 150还可以生成或选择数字组件的选择参数。然后,dsp 150可以将数字组件的选择参数和数据传输到ssp 170。每个数字组件(或其数据)可以包括附加数据,例如指示对应于数字组件的用户组标识符的元数据。
87.在一些实现方式中,dsp 150还可以基于上下文数据选择一个或多个数字组件,所述上下文数据独立于概率数据结构且因此独立于用户的组成员资格。这些数字组件还可以称为上下文数字组件。
88.ssp 170选择数字组件的集(322)。例如,在从dsp 150接收一个或多个所选择数字组件的数据之后,ssp 170可以审查和选择数字组件的集(例如,前k个数字组件)。例如,ssp 170可以审查数字组件的内容和格式以确保它满足各种标准,例如,不包括特定类型的内容、满足数据和/或显示尺寸要求等。
89.在一些实现方式中,ssp 170至少部分地基于从dsp 150接收的选择参数而选择数字组件。在此类实现方式中,ssp 170可以在从dsp 150接收的选择参数中选择具有最高选择参数的数字组件。
90.ssp 170将数字组件的集传输到客户端装置110(324)。例如,在选择所述数字组件的集(例如,前k个数字组件)之后,ssp 170通过网络105将所述数字组件的集(或数字组件的数据)传输到在客户端装置110上执行的应用112。在一些实现方式中,ssp 170可以连同所述数字组件的集一起传输选择参数的集。
91.在一些实现方式中,可以基于选择参数对由ssp 170传输的数字组件列表进行排序。这使得应用112能够在不知道实际选择参数的情况下选择数字组件。对于每个数字组件,数字组件列表还可以包括指示对应于数字组件的用户组标识符的数据。这使得应用112能够滤出用户不是其成员的用户组的数字组件。
92.在一些实现方式中,此列表包括基于概率数据结构选择的数字组件和至少一个上下文数字组件。在特定实现方式中,列表可以包括基于概率数据结构按照基于选择参数的顺序(例如从高到低)选择的数字组件,以及在列表末尾的一个上下文数字组件(例如,在从dsp 150接收的所有上下文数字组件中具有最高选择参数的上下文数字组件)。以此方式,如果基于概率数据结构选择的数字组件中没有一个具有与用户的真实用户组标识符匹配的用户组标识符,则上下文数字组件可以由应用112加以选择和呈现。
93.在客户端装置110上运行的应用112选择数字组件的过滤的子集(326)。通过从所述数字组件的集滤除不具有与用户组标识符的第一集中的一个真实用户标识符匹配的对应用户组标识符的一个或多个数字组件,在客户端装置上执行的应用112在从ssp 170接收所述数字组件的集之后可以选择数字组件的过滤的子集。例如,为了从所述数字组件的集
滤除一个或多个数字组件,应用112将数字组件的每个用户组标识符与例如存储在客户端装置110处的用户组列表114中的用户的真实用户组标识符相比较。
94.对于每个数字组件,应用112可以将数字组件的一个或多个用户组标识符与用户的真实用户组标识符相比较。如果没有用户组标识符匹配,则应用112可以从所述数字组件的集中过滤数字组件。如果至少一个用户组标识符匹配,则应用112可以将数字组件保持在所述数字组件的集中。此过滤可能导致识别所述数字组件的集中不具有与一个真实用户组标识符匹配的对应用户组标识符的一个或多个数字组件。然后通过从所述数字组件的集中去除所识别的一个或多个数字组件,由应用112生成数字组件的过滤的子集。
95.客户端装置110从数字组件的过滤的子集中选择给定的数字组件(328)。在一些实现方式中,应用112可以基于选择参数选择给定的数字组件以呈现在数字组件槽中。例如,网站142具有一个数字组件槽。选择过程可以包括选择具有最高选择参数的数字组件。在一些实现方式中,应用112可以基于不共享的用户偏好而选择给定的数字组件。例如,网络浏览器应用112的用户可以向应用112提供用户策划的主题列表。在此种情况下,应用112可以基于选择参数和策划列表中的主题的组合而选择给定的数字组件。在一些实现方式中,当使用有序列表时,应用112选择在列表中过滤的幸存的顶部剩余数字组件。
96.应用112呈现给定的数字组件(330)。例如,应用112可以利用发布者140的电子资源呈现给定的数字组件。
97.图4是说明基于与客户端装置的用户相关联的一个或多个用户组生成概率数据结构的过程400的流程图。过程400的操作可以例如由客户端装置110实施。过程400的操作也可以作为存储在可以是非暂时性的一个或多个计算机可读介质上的指令实施,并且指令由一个或多个数据处理设备的执行可以使一个或多个数据处理设备执行过程400的操作。
98.获得识别用户是其成员的用户组的真实用户组标识符的第一集(410)。如上文参考图2所述,客户端装置110的用户可以与一个或多个用户组相关联。换句话说,客户端装置110的用户可以是一个或多个用户组的成员。每个用户组由存储在客户端装置110上的用户组标识符识别,以维持用户的隐私。例如,例如网络浏览器的应用112可以维持包括一个或多个用户组标识符的用户组列表114,并且将所述用户组列表存储在客户端装置上。这一个或多个用户组标识符形成用户实际上是其成员的真实用户组标识符的第一集。
99.从用户组标识符的第一集中去除零个或多个真实用户组标识符,以生成用户组标识符的第二集(420)。在一些实现方式中,应用随机地或伪随机地选择真实用户组标识符中的一个或多个,以从用户组标识符的第一集中去除。例如,假设由应用112维持的用户组列表114包括五个用户组标识符s1、s2、s3、s4和s5。还假设随机地选择和去除s2和s5。在此情形中,用户组标识符的第二集包括s1、s3和s4。在一些实现方式中,应用112可以例如取决于目标隐私级别而不去除任何真实用户组标识符。
100.将用户不是其成员的用户组的一个或多个虚假用户组标识符添加到用户组标识符的第二集(430)。在一些实现方式中,应用112随机地或伪随机地选择一个或多个虚假用户组以添加到用户组标识符的第二集。虚假用户组标识符用于用户不是其成员的用户组。例如,假设所选择的两个或更多个虚假用户组标识符包括s23和s27并且用户不是对应于这些用户组标识符的组的成员。在此情形中,用户组标识符的第二集将包括s1、s3、s4、s23和s27。
101.在一些实现方式中,虚假用户组标识符实际上根本不表示用户组。例如,应用112可能不知道由dsp 150管理的每个用户组。应用112可以生成可以仅为随机字母数字序列的虚假用户组标识符,而不是从用户不是其成员的用户组中选择。通过以此方式添加和去除用户组标识符,应用112可以实现每个用户的差分隐私。
102.为用户组标识符的第二集中的每个用户组标识符生成散列输出(440)。可以生成散列,使得散列输出具有跨越所有用户组标识符的均匀分布。如前所述,散列函数可以用于生成用户组标识符的第二集中的每个用户组标识符的散列输出。例如,应用112使用密钥散列消息验证码(hmac)(所述hmac使用安全散列算法(sha256)加以实施),以生成用户组标识符的第二集中的每个用户组标识符的散列的256位(32字节)输出,所述安全散列算法是具有256位的摘要长度的加密散列函数。
103.生成概率数据结构(450),所述概率数据结构包括组标识符的第二集中的每个用户组标识符的散列输出。在一些实现方式中,例如布隆过滤器或布谷鸟过滤器的概率数据结构用于生成空间有效的数据结构,所述空间有效的数据结构可以用于将关于用户组标识符的信息从客户端装置110传输到ssp 170。例如,假设由应用112维持的用户组列表114包括200个用户组标识符。使用hmac-sha256的单个用户组标识符的散列输出大小将为256位。在此情况下,用户组列表114中的所有200个用户组标识符的散列输出的总大小将为51,200位(即,6.4kb)。当使用具有1%假阳性概率的布隆过滤器时,每个用户组标识符可以由少于10个位表示。在此情况下,用户组列表114中的200个用户组标识符可以使用2000位(即,250字节)表示。
104.在一些实现方式中,针对应用112发送的对数字组件的每个请求,应用112生成新的概率数据结构。以此方式,基于随机地或伪随机地添加和去除的用户组标识符,数据结构针对每个请求不同。这样防止dsp 150基于用户组成员资格跟踪用户。由于在一些情况下可能去除dsp 150的用户组标识符,因此通过改变概率数据结构,dsp 150的用户组标识符可能会在至少一个概率数据结构中加以表示。在一些实现方式中,应用112为应用112所访问的每个域生成新的概率数据结构,但将相同概率数据结构用于来自相同域的多个请求。
105.图5是可以用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储装置530,以及输入/输出装置540。组件510、520、530和540中的每一个可以例如使用系统总线550互连。处理器510能够处理指令以在系统500内执行。在一些实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储装置530上的指令。
106.存储器520将信息存储在系统500内。在一个实现方式中,存储器520是计算机可读介质。在一些实现方式中,存储器520是易失性存储器单元。在另一实现方式中,存储器520是非易失性存储器单元。
107.存储装置530能够为系统500提供大容量存储。在一些实现方式中,存储装置530是计算机可读介质。在各种不同的实现方式中,存储装置530可以包括例如硬盘装置、光盘装置、由多个计算装置在网络上共享的存储装置(例如,云存储装置),或一些其它大容量存储装置。
108.输入/输出装置540提供系统500的输入/输出操作。在一些实现方式中,输入/输出装置540可以包括网络接口装置中的一个或多个,例如以太网卡、例如串行通信装置,以及
rs-232端口,和/或例如无线接口装置,以及802.11卡。在另一实现方式中,输入/输出装置可以包括驱动器装置,所述驱动器装置被配置成接收输入数据并将输出数据发送到外部装置560,例如键盘、打印机和显示装置。然而,还可以使用其它实现方式,例如移动计算装置、移动通信装置、机顶盒电视客户端装置等。
109.尽管已在图5中描述示例处理系统,但是本说明书中描述的主题和功能操作的实现方式可以在其它类型的数字电子电路,或在计算机软件、固件或硬件,包括本说明书中所公开的结构以及其结构等效物,或在其中的一者或多者的组合中实施。
110.本说明书中描述的主题和操作的实施例可以在数字电子电路,或在计算机软件、固件或硬件,包括本说明书中所公开的结构以及其结构等效物,或在其中的一者或多者的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即在一个或多个计算机存储介质上编码以供数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一个或多个模块。替代地或另外,程序指令可以在例如机器产生的电信号、光信号或电磁信号等人为产生的传播信号上编码,产生所述人为产生的传播信号以对传输到合适接收器设备以供数据处理设备执行的信息进行编码。计算机存储介质可以是计算机可读存储装置、计算机可读存储衬底、随机或串行接入存储器阵列或装置,或其中的一者或多者的组合,或可以包括在计算机可读存储装置、计算机可读存储衬底、随机或串行接入存储器阵列或装置,或其中的一者或多者的组合中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是在人为产生的传播信号中编码的计算机程序指令的源或目标。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其它存储装置),或可以包括在一个或多个单独的物理组件或介质中。
111.本说明书中描述的操作可以实施为由数据处理设备对存储于一个或多个计算机可读存储装置上或从其它源接收的数据执行的操作。
112.术语“数据处理设备”涵盖用于处理数据的所有种类的设备、装置和机器,包括例如可编程处理器、计算机、片上系统,或多个片上系统,或前述项的组合。设备可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机,或其中的一者或多者的组合的代码。设备和执行环境可以实现各种不同的计算模型基础结构,例如,网络服务、分布式计算基础结构和网格计算基础结构。
113.计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程性语言,并且所述计算机程序可以用任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境中的其它单元。计算机程序可以,但未必对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所讨论的程序的单个文件中,或多个协调文件(例如,存储一个或多个模块、子程序或代码的一部分的文件)中。计算机程序可以被部署为在一个计算机上或在多个计算机上加以执行,所述多个计算机位于一个位置处或跨越多个位置分布并且通过通信网络互连。
114.本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过在输入数据上操作并且产生输出来执行动作。过程和逻辑流
还可以通过专用逻辑电路执行并且设备还可以实施为所述专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
115.举例来说,适用于执行计算机程序的处理器包括通用微处理器和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器,以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或可操作地耦合以从所述一个或多个大容量存储装置接收数据或将数据传递到所述一个或多个大容量存储装置,或两者。然而,计算机不需要具有此类装置。此外,计算机可以嵌入另一装置中,例如,仅举几例,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储装置(例如,通用串行总线(usb)闪存驱动器)。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如半导体存储器装置,例如eprom、eeprom和闪存存储器装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
116.为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示装置,例如,crt(阴极射线管)或lcd(液晶显示器)监视器的计算机上实施,以将信息显示给用户以及键盘和指向装置,例如鼠标或轨迹球,用户可以通过所述指向装置将输入提供到计算机。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及来自用户的输入可以用任何形式接收,包括声音、语音或触觉输入。另外,通过将文档发送到用户使用的装置以及从所述装置接收文档;例如,通过响应于从网络浏览器接收的请求而将网页发送到用户的客户端装置上的网络浏览器,计算机可以与用户交互。
117.本说明书中描述的主题的实施例可以在计算系统中实施,所述计算系统包括后端组件,例如作为数据服务器,或包括中间件组件,例如应用服务器,或包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过所述图形用户界面或网络浏览器与本说明书中描述的主题的实现方式交互,或一个或多个此后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,因特网)和对等网络(例如,特定的对等网络)。
118.计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行以及彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器将数据(例如,html页)传输到客户端装置(例如,出于将数据显示给与客户端装置交互的用户以及从所述用户接收用户输入的目的)。可以从服务器处的客户端装置接收在客户端装置处产生的数据(例如,用户交互的结果)。
119.尽管本说明书含有许多特定实现方式细节,但是这些细节不应解释为限制任何发明或可以主张的内容的范围,而是对特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各个特征也可以单独地在多个实施例中或在任何合适的子
组合中实施。此外,尽管特征可以在上文描述为在某些组合中起作用且甚至初始地如此主张,但是来自所主张组合的一个或多个特征在一些情况下可以从所述组合中删除,并且所主张组合可以针对子组合或子组合的变形。
120.类似地,尽管在图中以特定次序描绘操作,但是这不应理解为需要按所示的特定次序或按顺序次序执行此类操作,或执行所有所说明的操作以实现所需要的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各个系统组件的分离不应理解为在所有实施例中需要此种分离,并且应理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装成多个软件产品。
121.因此,已描述主题的特定实施例。其它实施例在所附权利要求书的范围内。在一些情况下,权利要求书中叙述的动作可以按不同次序执行并且仍实现所需要的结果。另外,附图中描绘的过程不一定需要按所示的特定次序或按顺序次序以实现所需要的结果。在某些实现方式中,多任务和并行处理可以是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献