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

委托分析收集的系统和方法与流程

2022-12-10 00:12:22 来源:中国专利 TAG:

委托分析收集的系统和方法


背景技术:

1.分析系统能够确定关于来自客户端设备的数据的信息是有帮助的,诸如有多少设备与特定内容项进行了交互。为此,通常在聚合器处收集数据,然后转发给分析服务。然而,将数据从客户端设备转发到聚合器到分析服务会引入时间延迟。此外,如果聚合器变得不可用(例如,客户端设备不能向聚合器发送数据),则分析服务将不会接收数据,并且不会产生结果。


技术实现要素:

2.本公开的一个实现方案涉及一种方法,该方法包括:响应于用户与移动设备上的移动应用的特征进行交互,将移动应用的特征标记为事件生成器;生成具有事件类型的事件;由交互测量软件开发工具包(sdk)基于事件类型向移动应用请求与用户与移动应用的交互相关联的交互数据;以及由交互测量sdk将交互数据安全地传输到由交互测量sdk指示的第一计算设备。
3.在一些实现方案中,交互测量sdk捆绑来自一定数量的事件的交互数据,并且响应于阈值传输捆绑的交互数据。在一些实现方案中,阈值是阈值时间段或阈值数量的事件。在一些实现方案中,交互sdk使用散列算法生成交互数据的签名,并且其中第一计算设备使用该签名来验证交互数据的真实性。在一些实现方案中,该方法还包括将交互数据安全地传输到与移动应用相关联的第二计算设备,并且其中交互sdk在将交互数据安全地传输到第一计算设备之前从交互数据中移除个人识别符。在一些实现方案中,交互数据包括中间识别符,并且其中该方法还包括由第二计算设备使用中间识别符来识别补充数据,由第二计算设备将补充数据传输到第一计算设备,以及由第一计算设备将交互数据与补充数据相关。在一些实现方案中,第一计算设备不具有个人识别信息的访问权。在一些实现方案中,该方法还包括由第一计算设备至少分析交互数据以生成实时描述移动应用的使用的数据。在一些实现方案中,至少分析交互数据包括识别没有使用移动应用执行的用户的先前交互。
4.本公开的另一实现方案涉及一种用于使来自不同实体的数据相关的系统,所述不同实体包括客户端设备、第一计算设备和第二计算设备,其中客户端设备包括具有一个或多个处理器的处理电路和存储器,存储器上存储有指令,当由一个或多个处理器执行时,该指令使得处理电路响应于用户与移动应用的特征的交互,将移动应用中的特征标记为事件生成器,生成具有事件类型的事件,基于事件类型请求与用户与移动应用的交互相关联的交互数据,并且将交互数据安全地传输到第一计算设备,并且其中指令构成软件开发工具包(sdk)。
5.在一些实现方案中,其中所述指令使得所述一个或多个处理器捆绑来自一定数量的事件的交互数据,并且响应于阈值传输捆绑的交互数据。在一些实现方案中,阈值是阈值时间段或阈值数量的事件。在一些实现方案中,指令使得一个或多个处理器使用散列算法生成交互数据的签名,并且其中第一计算设备使用该签名来验证交互数据的真实性。在一
些实现方案中,指令还使得一个或多个处理器将交互数据安全地传输到第二计算设备,并且在将交互数据安全地传输到第一计算设备之前从交互数据中移除个人识别符。在一些实现方案中,其中交互数据包括中间识别符,其中第二计算设备使用中间识别符来识别补充数据,其中第二计算设备将补充数据传输到第一计算设备,并且其中第一计算设备将交互数据与补充数据相关。在一些实现方案中,第一计算设备不具有个人识别信息的访问权。在一些实现方案中,第一计算设备至少分析交互数据以生成实时描述移动应用的使用的数据。在一些实现方案中,至少分析交互数据包括识别没有使用移动应用执行的用户的先前交互。
6.本公开的另一实现方案涉及一种计算机可读介质,其上存储有构成用于移动设备的软件开发工具包(sdk)的指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器响应于用户与移动设备上的移动应用的特征进行交互,将移动应用的特征标记为事件生成器,生成具有事件类型的事件,基于所述事件类型,从所述移动设备请求与所述用户与移动应用的交互相关联的交互数据,并且将所述交互数据安全地传输到第一计算设备。
7.在一些实现方案中,其中sdk捆绑来自一定数量的事件的交互数据,并且响应于阈值传输捆绑的交互数据,其中阈值是阈值时间段或阈值数量的事件,其中交互sdk使用散列算法生成交互数据的签名,并且其中第一计算设备使用该签名来验证交互数据的真实性。在一些实现方案中,指令还使得一个或多个处理器将交互数据安全地传输到第二计算设备,并且在将交互数据安全地传输到第一计算设备之前从交互数据中移除个人识别符。
8.各个方面和实现方案可以在适当的时候进行组合。
附图说明
9.图1是示出根据说明性实现方案的各种实体通过网络交互的图。
10.图2是示出根据一个实现方案的用于数据传送和相关的架构的图。
11.图3是示出根据说明性实现方案的使用图2的架构生成和传输事件数据的方法的流程图。
12.图4是示出根据说明性实现方案的使用图2的架构确定补充数据的方法的流程图。
13.图5是示出根据说明性实现方案的使用图2的架构生成分析结果的方法的流程图。
14.图6是根据说明性实现方案的计算系统的框图。
具体实施方式
15.以下是关于以及时和冗余的方式收集事件数据同时保护隐私的方法、装置和系统的各种相关概念和实现方案的更详细描述。由于所描述的概念不限于任何特定的实现方案,因此上面介绍的和下面更详细讨论的各种概念可以以多种方式中的任何一种来实现。
16.在许多领域中,可能希望从移动设备收集事件数据。例如,在发生故障(例如,软件崩溃、硬件故障等)的情况下,通常希望收集诸如设备设置、操作参数等事件数据,以便诊断和修复故障。在其他领域中,可能希望第三方内容的提供商确定与该第三方内容的交互速率。
17.本公开的系统和方法总体上涉及报告移动设备事件数据。更具体地,本公开的系统和方法涉及从移动设备收集事件数据和使事件数据相关的独特的软件开发工具包(sdk)
和计算机架构方法。
18.通常,来自移动设备的事件数据被发送到单个端点(例如,聚合器等)然后转发给分析系统进行分析(例如,相关性等)。例如,由第一移动应用生成的事件数据可以被传输到由第一移动应用的开发者控制的服务器,该服务器可以收集数据并将其转发给分析系统,分析系统确定与事件数据相关联的聚合统计。然而,单个端点可能并不总是可用的。例如,端点可能经历意外故障或例行维护,这使得它无法从移动设备接收数据和/或将数据转发给分析系统。希望有一种即使在第一端点变得不可用的情况下也便于事件数据分析的鲁棒的架构。因此,需要一种独特的sdk和计算机架构方法,以便于将事件数据直接传输到分析系统。
19.如上所述,来自移动设备的事件数据通常被发送到单个端点(例如,聚合器等)然后转发给分析系统进行分析。例如,开发者可以接收事件数据并将事件数据发送给第三方进行分析(例如,因为分析事件数据对开发者来说极其困难、复杂和/或昂贵,等等)。然而,将事件数据从客户端设备传输到聚合器,然后传输到分析系统会引入时间延迟。引入时间延迟可能是不希望的。例如,可以使用分析系统来识别应用12中的缺陷,例如链接无效。将数据从客户端设备转发到聚合器然后到分析系统所引入的时间延迟可能会使用可以更高效地部署在别处的额外的系统和网络资源,并且可能会增加识别应用12中的缺陷所花费的时间量。例如,分析系统可以在失效(例如,停止正常工作等)几天后检测到失效的超链接。因此,需要一种独特的sdk和计算机架构方法来便于对应用事件的及时分析。
20.本公开的各方面提供了改进的数据报告和分析路径以及计算机架构。这些路径和架构可用于以防止将pii暴露给第三方的鲁棒且及时的方式报告和分析移动设备事件数据。
21.为了确保针对端点故障的鲁棒性,本公开的系统和方法引入了便于向第二端点发送数据的sdk。一个非限制性的示例实现方案如下:使用台式设备的用户可以观看第一内容项。第一计算系统可以登记用户观看了第一内容项。使用移动应用的用户然后可以与第二内容项交互,从而使得移动应用将与交互相关联的事件数据传输到第一计算设备。嵌入在移动应用中的sdk可以登记用户与第二内容项进行了交互,并且可以准备与该交互相关联的事件数据用于传输。例如,事件数据可以包括内容项、时间和内容项的来源(例如,网站等)。sdk可以从事件数据中移除任何个人识别符,诸如移动设备识别符。sdk然后可以将事件数据安全地传输到第二计算设备。第一计算设备可以识别用户并准备与用户与第二内容项的交互相关联的补充数据。例如,第一计算设备可以识别对应于用户与第一内容项的交互的数据。第一计算设备可以从补充数据中移除任何个人识别符,并将补充数据传输到第二计算设备。第二计算设备可以将事件数据与补充数据相关以确定结果。
22.在各种实施例中,本公开的sdk在将事件数据传输到分析系统之前从事件数据中移除识别符。在各种实施例中,本公开的sdk通过中间识别符便于数据的相关。例如,本公开的sdk可以将具有中间识别符(例如,事件识别符等)的事件数据传输到第一端点(例如,聚合器等)和分析系统。第一端点可以与应用(例如,由应用的开发者维护的服务器等)相关联。在一些实现方案中,第一端点可以独立地维护用户信息,诸如与应用的用户账户相关联的账户余额。第一端点可以识别补充数据。例如,第一端点可以维护具有交互数据的数据库,并且可以在数据库中搜索与用户相关联的交互数据。补充数据可以包括中间识别符。第
一端点可以向分析系统传输补充数据,分析系统可以使用中间识别符将补充数据与事件数据相关,从而保护pii。
23.现在参考图1,根据说明性实现方案,示出了用于从移动设备收集事件数据的系统100。系统100包括客户端设备10、第一数据处理系统200和第二数据处理系统300。在各种实现方案中,系统100的组件通过网络60通信。网络60可以包括计算机网络,诸如因特网、局域网、广域网、城域网或其他局域网、内部网、卫星网络、其他计算机网络,诸如语音或数据移动电话通信网络、其组合,或者任何其他类型的电子通信网络。网络60可以包括或构成显示网络(例如,在因特网上可用的信息资源的子集,其与内容放置或搜索引擎结果系统相关联或者有资格包括第三方内容项作为内容项放置活动的一部分)。在各种实现方案中,网络60便于系统100的组件之间的安全通信。作为非限制性示例,网络60可以实现传输层安全性(tls)、安全套接字层(ssl)、安全超文本传输协议(https)和/或任何其他安全通信协议。
24.客户端设备10可以是移动计算设备、智能手机、平板电脑或被配置成便于接收、显示以及与内容(例如,网页、移动应用等)交互的任何其他设备。客户端设备10可以包括应用20,以接收和显示在线内容,并接收用户与在线内容的交互。例如,应用20可以是web浏览器。附加地或替代地,应用20可以是与特定商家相关联的移动应用。
25.在各种实现方案中,应用20与内容发布者交互以接收在线内容。例如,应用20可以从内容发布者接收信息资源。信息资源可以包括基于web的内容项,诸如网页或其他在线文档。信息资源可以包括指令(例如,脚本、可执行代码等),当由应用20解释时,该指令使应用20向用户显示图形用户界面,诸如可交互的网页。
26.应用20被示为包括软件开发工具包20,其具有事件电路22、捆绑电路24、加密电路26和报告电路28。软件开发工具包(sdk)20可以包括包含在包中的软件开发工具的合集。sdk 20可以包括应用编程接口(api)。在一些实现方案中,sdk 20包括一个或多个具有与特定系统软件(例如,ios、android等)接口连接的可重用功能的库。sdk 20可以便于在应用12中嵌入功能性。例如,每当特定类型的事件发生在应用12上时,开发者可以使用sdk 20来自动传输事件数据。作为进一步的示例,sdk 20可以包括被配置为收集和报告设备分析的可重用功能,并且开发者可以将可重用功能插入到应用12的指令中,以使得可重用功能在应用12的特定动作期间被调用。在一些实现方案中,事件电路22、构建电路24、加密电路26和/或报告电路28是由sdk 20提供的功能性(例如,可重用功能等)。
27.事件电路22可以检测应用12内的事件。在各种实现方案中,事件电路22可以被配置为基于检测到特定事件(例如,交易、app内购买、在app内游戏中达到特定级别、执行特定数量的动作、花费特定时间量与应用交互等)来触发其他功能性。例如,事件电路22可以在检测到应用12内的事件时触发捆绑电路24。在各种实现方案中,sdk 20包括嵌入在应用12中以触发事件电路22的功能。例如,开发者可以在应用12的交易确认功能性中包括skd 20的功能,该功能使得事件电路22检测确认的交易。应当理解,事件可以包括应用内对开发者重要的任何动作,并且不限于这里明确构想的示例。在各种实现方案中,事件电路22被配置为区分不同类型的事件。例如,事件电路22可以基于第一类型的检测到的事件触发第一动作集合,并且可以基于第二类型的检测到的事件触发第二动作集合。在各种实现方案中,事件电路22被配置为收集与检测到的事件相关联的事件数据,并将收集到的事件数据传输到捆绑电路24。
28.捆绑电路24可以捆绑(例如,聚合等)事件数据。在各种实现方案中,捆绑电路24从事件电路22接收与检测到的事件相关联的事件数据。捆绑电路24可以从一个或多个事件中收集事件数据,并且捆绑事件数据用于传输。例如,捆绑电路24可以从十个事件中收集事件数据,并将事件数据组合成单个捆绑。事件数据可以包括事件的时间戳、事件的名称和/或事件的参数(例如,购买的项、价格、货币、折扣、订阅信息等)。在一些实现方案中,捆绑电路24将捆绑传输到加密电路26。附加地或替代地,捆绑电路24可以将捆绑传输到报告电路28。在各种实现方案中,捆绑电路24生成数据捆绑。数据捆绑可以包括捆绑索引、捆绑时间戳、捆绑数据和捆绑签名。在各种实现方案中,捆绑签名由加密电路26生成,如下所述。在一些实现中,捆绑索引指定特定事件数据在捆绑数据中的位置。例如,捆绑数据可以包括字节数组,捆绑索引可以包括字节数组的索引。
29.加密电路26可以对数据进行加密以产生加密数据。例如,加密电路26可以加密捆绑的事件数据。附加地或替代地,加密电路26可以对接收的数据执行各种删除功能。例如,加密电路26可以移除识别符(例如,ip地址、设备识别符等)、分割事件数据、添加噪声或执行其他功能来对数据进行匿名化。在各种实现方案中,加密电路26实现不对称加密。例如,加密电路26可以实现rivest-shamir-adleman(rsa)密码系统。在各种实现方案中,加密电路26可以从第一数据处理系统200接收公钥,并使用该公钥来加密接收的数据。附加地或替代地,加密电路26可以生成与接收的数据相关联的签名。例如,加密电路26可以生成从捆绑电路24接收的捆绑的事件数据的散列。可以使用一个或多个散列功能。例如,加密电路26可以实现sha-2、scrypt、ballon和/或argon2散列功能。
30.报告电路28可以将捆绑的事件数据传输到第一数据处理系统200和/或第二数据处理系统300。在各种实现方案中,报告电路28通过网络60传输数据。报告电路28可以确认数据的传输。例如,报告电路28可以将捆绑的事件数据传输到第一数据处理系统200,并接收捆绑的事件数据被成功接收的确认。在一些实现方案中,报告电路28首先尝试将捆绑的事件数据传输到第一数据处理系统200,如果失败,则尝试将捆绑的事件数据传输到第二数据处理系统300。附加地或替代地,报告电路28可以并行地向第一数据处理系统200和第二数据处理系统300传输数据。在一些实现方案中,报告电路28向第一数据处理系统200和第二数据处理系统300传输不同的数据。例如,报告电路28可以向第一数据处理系统200传输具有设备识别符的加密事件数据,并且可以向第二数据处理系统300传输没有设备识别符的未加密事件数据。附加地或替代地,报告电路28可以向第一数据处理系统200和第二数据处理系统300传输相同的数据。
31.在各种实现方案中,报告电路28周期性地传输数据。例如,报告电路28可以在预定时间传输数据。作为另一个示例,报告电路28可以以一定间隔(例如,每十分钟、每十小时等)传输数据。附加地或替代地,报告电路28可以响应于阈值传输数据。例如,报告电路28可以响应于捆绑电路从事件接收到阈值数量的事件数据(例如,十个事件、一百个事件等)来传输数据。在一些实现方案中,报告电路28动态地传输数据。例如,报告电路28可以响应于客户端设备10连接到充电源而传输数据。作为另一个示例,报告电路28可以响应于传输捆绑达到指定的数据大小而传输数据。
32.在各种实现方案中,报告电路28报告度量。例如,报告电路28可以与每个数据捆绑一起传输度量。度量可以包括数据捆绑的大小、数据捆绑的传输和/或生成的时间戳、数据
捆绑索引、sdk识别符和/或数据捆绑的签名。在各种实现方案中,sdk识别符包括与sdk 20相关联的信息。例如,sdk识别符可以包括sdk 20的版本号。如上文参考加密电路26所讨论的,数据捆绑的签名可以包括数据捆绑内容的散列。
33.第一数据处理系统200可以从sdk 20接收事件数据和/或生成补充数据。在各种实现方案中,第一数据处理系统200从sdk 20接收数据捆绑,基于数据捆绑的内容识别补充数据,并将补充数据传输到第二数据处理系统300。在一些实现方案中,第一数据处理系统200在传输到第二数据处理系统300之前对补充数据进行匿名化。例如,第一数据处理系统200可以在传输到第二数据处理系统300之前从补充数据中移除个人识别符。第一数据处理系统200可以是服务器、分布式处理集群、云处理系统或任何其他计算设备。第一数据处理系统200可以包括或执行至少一个计算机程序或至少一个脚本。在一些实现方案中,第一数据处理系统200包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。
34.第一数据处理系统200被示为包括数据库210和处理电路220。数据库210可以存储补充数据。例如,数据库210可以包括与先前的内容交互相关联的信息。作为另外的示例,使用台式计算机的用户可以导航到网站并与内容项交互。第一数据处理系统200可以接收与用户与内容项的交互相关联的信息,并将该信息存储在数据库210中。补充数据可以包括内容识别符、设备识别符、用户识别符、点击流等。数据库210可以包括一个或多个存储介质。存储介质可以包括但不限于磁存储装置、光存储装置、闪存和/或ram。第一数据处理系统200可以实现或便于各种api来执行数据库功能(即,管理存储在数据库210中的数据)。api可以是但不限于sql、odbc、jdbc和/或任何其他数据存储装置和操控api。
35.处理电路220可以包括处理器222和存储器224。存储器224上可以存储有指令,当由处理器222执行时,这些指令使得处理电路220执行这里描述的各种操作。这里描述的操作可以使用软件、硬件或其组合来实现。处理器222可以包括微处理器、asic、fpga等或它们的组合。在许多实现方案中,处理器222可以是多核处理器或处理器阵列。存储器224可以包括但不限于电子、光学、磁性或能够向处理器222提供程序指令的任何其他存储设备。存储器224可以包括软盘、cd-rom、dvd、磁盘、存储器芯片、rom、ram、eeprom、eprom、闪存、光学介质或处理器222可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,该语言诸如是但不限于c、c 、c#、java、javascript、perl、html、xml、python和visual basic。
36.存储器224可以包括数据聚合电路226。数据聚合电路226可以从数据库210中识别补充数据。在各种实施例中,数据聚合电路226从sdk 20接收数据捆绑,并分析数据捆绑的内容以识别补充数据。例如,聚合电路226可以接收包括与第一设备识别符相关联的事件的数据捆绑,可以识别包括与设备识别符相关联的先前内容交互的补充数据,并且可以将补充数据传输到第二数据处理系统300。在各种实现方案中,补充数据与数据捆绑的内容相关联。例如,补充数据可以通过中间识别符与数据捆绑中包括的事件的事件数据相关。在一些实现方案中,数据聚合电路226验证接收的数据捆绑的内容。例如,数据聚合电路226可以验证数据捆绑中包括的签名。附加地或替代地,数据聚合电路226可以解密数据捆绑的内容。例如,数据聚合电路226可以接收非对称加密的数据捆绑,并使用私钥解密该非对称加密的数据捆绑。
37.第二数据处理系统300可以从sdk 20接收事件数据,并且便于对接收的数据执行分析以生成信息。例如,第二数据处理系统300可以接收包括来自sdk 20的事件数据和来自第一数据处理系统200的补充数据的数据捆绑,并且安全地将接收的数据相关以生成信息。作为另一个示例,第二数据处理系统300可以从sdk 20接收与交易相关联的第一数据,并且从第一数据处理系统200接收与用户与内容项的交互相关联的第二数据,并且将第一数据和第二数据相关。
38.在各种实施例中,第二数据处理系统300生成聚合信息。例如,第二数据处理系统300可以确定多少用户在与内容项交互之后完成了交易。聚合信息可以描述在线交互(例如,与一定数量的内容项的交互)的数量或分组。附加地或替代地,聚合信息可以描述单独在线交互(例如,与单个内容项的单个交互)。聚合信息可以包括独特识别符。在一些实现方案中,识别符识别营销活动。附加地或替代地,识别符可以独特地识别每个在线交互。在一些实现方案中,聚合信息描述了与内容项相关联的一个或多个交互。例如,聚合信息可以包括在线交互的时间、日期和/或位置。由匿名交互数据描述的交互可以包括查看内容项(例如,导航到呈现内容项的网页和/或确定该项或该项的一部分呈现在网页被查看的设备的视口内,等等),选择/点击内容项,悬停在内容项上,和/或与内容项的其他交互。
39.第二数据处理系统300可以是服务器、分布式处理集群、云处理系统或任何其他计算设备。第二数据处理系统300可以包括或执行至少一个计算机程序或至少一个脚本。在一些实现方案中,第二数据处理系统300包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。
40.第二数据处理系统300被示为包括数据库310和处理电路320。数据库310可以存储接收的数据。例如,数据库310可以存储从sdk 20接收的事件数据和/或从第一数据处理系统200接收的补充数据。在一些实现方案中,数据库310存储识别符。例如,数据库310可以存储共享中间识别符的事件数据和补充数据。该识别符可以在以后用于匿名交互数据的相关。数据库310可以包括一个或多个存储介质。存储介质可以包括但不限于磁存储装置、光存储装置、闪存和/或ram。第二数据处理系统300可以实现或便于各种api来执行数据库功能(即,管理存储在数据库310中的数据)。api可以是但不限于sql、odbc、jdbc和/或任何其他数据存储设备和操控api。
41.处理电路320包括处理器322和存储器324。存储器324上可以存储有指令,当由处理器322执行时,这些指令使得处理电路320执行这里描述的各种操作。这里描述的操作可以使用软件、硬件或其组合来实现。处理器322可以包括微处理器、asic、fpga等或它们的组合。在许多实现方案中,处理器322可以是多核处理器或处理器阵列。存储器324可以包括但不限于电子、光学、磁性存储设备或能够向处理器322提供程序指令的任何其他存储设备。存储器324可以包括软盘、cd-rom、dvd、磁盘、存储器芯片、rom、ram、eeprom、eprom、闪存、光学介质或处理器322可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,诸如但不限于c、c 、c#、java、javascript、perl、html、xml、python和visual basic。
42.存储器324可以包括验证电路326和分析电路328。验证电路326可以验证从sdk 20接收的数据捆绑。在各种实现方案中,验证电路326通过验证数据捆绑中包括的签名来验证数据捆绑。例如,签名可以包括数据捆绑和/或事件数据的内容的散列,并且验证电路326可
以对数据捆绑的内容进行散列化,并且将生成的散列与接收到的签名进行比较,以确定数据捆绑的内容是否已经被修改。在一些实现方案中,如果验证电路326确定数据捆绑(或数据捆绑中包括的特定事件数据)无效,则它丢弃无效数据。附加地或替代地,验证电路326可以将数据标记为无效,这可以被后面的系统用来生成与分析结果相关联的置信度度量。
43.分析电路328可以接收数据并产生关于该数据的信息。在各种实现方案中,分析电路328对接收的数据执行统计操作,以产生描述接收的数据的统计测量。例如,分析电路328可以确定与营销活动相关联的交互率。在一些实现方案中,分析电路328生成人口统计信息(例如,用户分布等)、地理结果(例如,位置分布等)和/或受众(例如,基于一个或多个参数的目标用户群,例如购买超过阈值量的用户等)。在一些实现方案中,分析电路328将事件数据与补充数据相关。例如,分析电路328可以使用中间识别符将与事件相关联的事件数据和与内容交互相关联的补充数据相关,以确定内容交互对引起事件的影响。在各种实现方案中,分析电路328生成信息。该信息可以包括交互率、描述应用12的操作的数据等。
44.现在参考图2,根据说明性实现方案,示出了用于安全地传输和关联来自移动设备的数据的改进的计算机架构。简而言之,开发者可以利用sdk 20的可重用功能来响应于事件而生成事件数据并将事件数据从客户端设备10传输到第一数据处理系统200和第二数据处理系统300。例如,嵌入在移动应用(例如,应用12等)中的sdk 20的功能可以使客户端设备10响应于用户确认交易、选择菜单选项、查看内容项等,收集和传输与客户端设备10相关联的数据。响应于检测到事件,sdk 20可以收集、捆绑数据和将数据传输到第一数据处理系统200和第二数据处理系统300用于分析。
45.在各种实现方案中,第一数据处理系统200可以存储附加或补充数据。例如,第一数据处理系统200可以存储与过去的顾客相关联的数据(例如,用户偏好等)。作为另外的示例,第一数据处理系统200可以存储与先前用户与内容的交互相关联的数据。第一数据处理系统200可以基于从客户端设备10接收的数据来识别补充数据,并且可以将补充数据传输到第二数据处理系统300。补充数据可以包括先前的用户交互(例如,用户观看诸如视频的内容项的记录、先前的交易等)、用户人口统计信息、用户偏好和/或任何其他数据。应当理解,补充数据可以包括开发者可以访问的与用户相关联的任何数据,并且不限于此处明确构想的特定示例。在各种实现方案中,第二数据处理系统300将来自客户端设备和第一数据处理系统200的数据相关,以确定结果。附加地或替代地,第二数据处理系统300可以分析从客户端设备10接收的数据以确定结果。作为非限制性示例,被展示视频的用户可以点击该视频。提供视频的内容提供商(例如,第一数据处理系统200等)可能希望知道有多少用户点击了该视频。在一些实现方案中,作为用户与第一内容项交互的结果,用户可以与内容提供商提供的其他内容进行交互。例如,被展示视频的用户可以稍后访问由内容提供商维护的网站来购买视频中展示的项。在一些实现方案中,交互是在线转换或者与在线转换相关联。sdk 20可以便于对用户与在线内容的交互的鲁棒报告和分析,同时保护pii。
46.图2示出了用于传输和分析来自移动设备的事件数据的系统110。在各种实现方案中,客户端设备10实现sdk 20来便于事件数据的收集和传输。例如,开发者可以将sdk 20的可重用功能嵌入到客户端设备10上的应用12中,以使得客户端设备10传输与特定事件相关的数据。在各种实现方案中,sdk 20便于报告事件数据时的冗余。例如,sdk 20可以启用回退路径来报告事件数据。在各种实现方案中,应用12可以向第一数据处理系统200本地报告
应用数据。sdk 20可以便于冗余地和/或并行地向第二数据处理系统300传输事件数据。
47.在各种实现方案中,嵌入在客户端设备10上的应用12中的sdk20生成事件数据。例如,使用应用12的用户可以更新通知偏好,并且sdk 20可以检测偏好的变化并生成事件数据。事件数据可以包括设备设置(例如,软件版本、硬件设置、配置等)、用户账户设置(例如,偏好、活动等)、动作序列(例如,点击流等)、与特定事件相关的数据,诸如改变的通知偏好等。在一些实现方案中,事件数据描述了用户做出的引起购买的一系列动作(例如,点击)以及关于购买本身的信息(例如,价格、购买的项等)。在各种实现方案中,sdk 20捆绑来自一定数量的事件的事件数据。例如,sdk 20可以捆绑来自10个事件的事件数据,以减少与单独传输每个事件相关联的功耗。
48.在步骤404,sdk 20和/或应用12可以将捆绑的事件数据传输到第一数据处理系统200。在一些实现方案中,传输到第一数据处理系统200的事件数据包括识别符。在各种实现方案中,传输到第一数据处理系统200的事件数据被加密(例如,不对称加密等)。在一些实现方案中,sdk 20可以确定第一数据处理系统200是否成功接收了捆绑的事件数据。在一些实现方案中,如果sdk 20确定第一数据处理系统200没有成功地接收捆绑的事件数据,则sdk 20将捆绑的事件数据传输到第二数据处理系统300。附加地或替代地,sdk 20可以并行地将捆绑的事件数据传输到第二数据处理系统300(步骤402)。在各种实现方案中,sdk 20在传输到第二数据处理系统300之前从捆绑的事件数据中移除个人识别符。例如,sdk 20可以在将捆绑的事件数据传输到第二数据处理系统300之前移除设备识别符和/或用户识别符。
49.在各种实现方案中,第一数据处理系统200基于接收的捆绑的事件数据来识别补充数据。例如,第一数据处理系统200可以识别与捆绑的事件数据中包括的用户识别符所识别的用户相关联的先前交互数据。在步骤406,第一数据处理系统200可以将补充数据传输到第二数据处理系统300。在各种实现方案中,第一数据处理系统200在将补充数据传输到第二数据处理系统300之前移除个人识别符。例如,第一数据处理系统200可以在将补充数据传输到第二数据处理系统300之前移除设备识别符和/或用户识别符。
50.第二数据处理系统300可以从客户端设备10接收事件数据(例如,经由sdk 20等)和/或从第一数据处理系统200接收补充数据。在各种实现方案中,第二数据处理系统300分析事件数据和/或补充数据(例如,对其执行各种相关和/或统计操作等)以生成结果。例如,第二数据处理系统300可以使用中间识别符将包括在补充数据中的先前交互数据与包括在事件数据中的交易相关联,以确定转换率。
51.现在参考图3,示出了根据一个实现方案的报告事件数据的方法500。简而言之,sdk 20和/或应用12响应于与用户相关联的交互(例如,应用内交互等)生成事件数据并且sdk 20向端点报告事件数据。在各种实现方案中,sdk 20执行方法500。在步骤502,sdk 20确定到第一数据处理系统200的连接不可用。例如,sdk 20可以查验第一数据处理系统200以确定它是否在线。在一些实现方案中,sdk 20确定第一数据处理系统200是否确认了数据包(例如,先前事件数据等)的接收。在一些实现方案中,步骤502是可选的。
52.在步骤504,sdk 20检测到事件。sdk 20可以包括由开发者嵌入到应用12中的各种可重用功能。当应用12执行特定操作时,可以调用sdk 20的可重用功能,从而使得sdk 20执行各种动作。例如,sdk20的可重用功能可以嵌入在应用12的结账过程中,并且在结账完成
时可以使sdk 20报告事件数据(例如,与交易相关联的数据等)。附加地或替代地,sdk 20可以通过监听来自应用12的各种指示来检测事件。例如,当应用事件发生时,应用12可以生成标记,并且sdk 20可以检测该标记以识别事件的发生。
53.在步骤506,sdk 20可以从应用12和/或客户端设备10收集事件数据。例如,sdk 20可以收集与事件相关联的交易相关的数据。在步骤508,sdk 20捆绑事件数据。步骤508可以包括将来自一定数量的事件的事件数据组合成单个数据包。例如,来自100个事件的事件数据可以被组合成捆绑的事件数据。在一些实现方案中,sdk 20捆绑来自在指定时间段内发生的事件的事件数据。例如,sdk 20可以捆绑来自每天(例如,24小时周期等)的事件。应当理解,各种捆绑技术是可能的,并且sdk 20不限于这里明确列举的特定技术。在各种实现方案中,sdk 20标记事件数据。例如,sdk 20可以用事件类型来标记事件数据。事件类型可以对应于事件数据的来源。例如,sdk 20可以确定对应于应用内交易的第一事件数据是“交易”类型,而对应于访问网页的第二事件数据是“内容交互”类型。在各种实现方案中,sdk 20基于事件类型生成不同的事件数据。例如,sdk 20可以生成包括“交易”事件的项价格和数量的事件数据,并且可以生成包括“内容交互”类型数据的内容识别符的事件数据。应当理解,许多事件类型是可能的,并且不限于这里明确设想的类型。
54.在步骤510,sdk 20可以准备和加密事件数据。在各种实现方案中,步骤510包括移除识别符。例如,sdk 20可以从捆绑的事件数据中移除个人识别符(例如,设备识别符、用户识别符等)。附加地或替代地,sdk 20可以对捆绑的事件数据进行加密。例如,sdk 20可以使用从第一数据处理系统200接收的公钥对捆绑的事件数据不对称地进行加密。在一些实现方案中,sdk 20从传输到第二数据处理系统300的捆绑的事件数据中移除识别符。在一些实现方案中,sdk 20对传输到第一数据处理系统200的捆绑的事件数据进行加密。在一些实现方案中,步骤510包括生成捆绑的事件数据的签名。例如,sdk 20可以通过对捆绑的事件数据进行散列化来生成签名。在一些实现方案中,步骤510是可选的。
55.在步骤512,sdk 20将事件数据安全地传输到第二数据处理系统300。在一些实现方案中,响应于确定第一数据处理系统200不可用(例如,基于步骤502等),sdk 20将事件数据传输到第二数据处理系统300。在各种实现方案中,sdk 20将没有个人识别符的事件数据传输到第二数据处理系统300,从而保护pii。在一些实现方案中,sdk 20响应于阈值将捆绑的事件数据传输到第二数据处理系统300。例如,sdk 20可以响应于阈值数量的事件被包括在事件数据包中,将捆绑的事件数据传输到第二数据处理系统300。在各种实现方案中,sdk 20便于指定目的地(例如,第二数据处理系统300等)。例如,sdk 20可以便于接收第二数据处理系统300的url和/或ip地址,该url和/或ip地址指定将事件数据传输到哪里。
56.在步骤514,sdk 20可以将加密的事件数据安全地传输到第一数据处理系统300。在各种实现方案中,sdk 20将包括一个或多个识别符的加密的事件数据传输到第一数据处理系统200。在一些实现方案中,步骤514是可选的。
57.现在参考图4,根据一个实现方案,示出了识别补充数据的方法600。在一些实现方案中,第一数据处理系统200执行方法600。在一些实现方案中,第一数据处理系统200响应于从客户端设备10和/或sdk 20接收事件数据而执行方法600。在步骤602,第一数据处理系统200从客户端设备10接收事件数据。在各种实现方案中,第一数据处理系统200接收包括识别符的事件数据。例如,第一数据处理系统200可以接收包括设备识别符的事件数据。附
加地或替代地,第一数据处理系统200可以接收加密的事件数据。
58.在步骤602,第一数据处理系统200可以对事件数据进行解密。在各种实现方案中,步骤602包括使用第一数据处理系统200持有的私钥对事件数据不对称地进行解密,以产生未加密的事件数据。在步骤606,第一数据处理系统200可以使用事件数据从存储的数据中选择补充数据。在各种实现方案中,步骤606包括使用事件数据中包括的识别符来识别补充数据。在各种实现方案中,第一数据处理系统200搜索数据库210。数据库210可以包括与先前内容交互相关联的数据。例如,第一数据处理系统200可以识别与用户相关联的先前内容交互。作为另外的示例,第一数据处理系统200可以识别用户先前观看的视频。
59.在步骤608,第一数据处理系统200可以准备补充数据。例如,第一数据处理系统200可以移除与补充数据相关联的个人识别符。在一些实现方案中,第一数据处理系统200移除与补充数据相关联的ip地址、用户识别符和/或设备识别符。附加地或替代地,第一数据处理系统200可以对补充数据执行各种删除功能。例如,第一数据处理系统200可以分割补充数据、添加噪声或执行其他功能来对数据进行匿名化。在步骤610,第一数据处理系统200可以将补充数据安全地传输到第二数据处理系统300。在一些实现方案中,第一数据处理系统200响应于信号将补充数据传输到第二数据处理系统300。例如,第二数据处理系统300可以向第一数据处理系统200发送对补充数据的请求。
60.现在参考图5,根据一个实现方案,示出了分析事件数据和/或补充数据的方法700。在各种实现方案中,第二数据处理系统300执行方法700。在一些实现方案中,第二数据处理系统300响应于从客户端设备10接收到数据而执行方法700。附加地或替代地,第二数据处理系统300可以响应于从外部系统(例如,第一数据处理系统200等)接收到对结果的请求来执行方法700。
61.在步骤702,第二数据处理系统300可以从客户端设备10接收事件数据(例如,经由sdk 20等)。在各种实现方案中,事件数据是捆绑的事件数据。在各种实现方案中,事件数据不包括个人识别符。在步骤704,第二数据处理系统300可以验证接收到的事件数据。在各种实现方案中,事件数据包括签名。第二数据处理系统300可以使用签名来验证事件数据。例如,第二数据处理系统300可以生成接收到的事件数据的散列,并将生成的散列与事件数据中包括的签名进行比较。在一些实现方案中,步骤704是可选的。
62.在步骤706,第二数据处理系统300可以从第一数据处理系统200接收补充数据。在一些实现方案中,第二数据处理系统300从其他来源接收补充数据。在各种实现方案中,补充数据包括与事件数据相关联的交互数据。例如,补充数据可以包括与事件数据的事件共享中间识别符的内容交互。作为另一个示例,补充数据可以包括可以与事件数据中包括的交易相关的内容项识别符。在一些实现方案中,步骤706是可选的。例如,在一些实现方案中,第一数据处理系统200不将补充数据传输到第二数据处理系统300。
63.在步骤708,第二数据处理系统300可以将事件数据与补充数据相关。例如,第二数据处理系统300可以将内容项的识别符与事件数据的中间识别符进行匹配,以确定用户已经与内容项进行了交互。作为另外的示例,第二数据处理系统300可以确定内容项的url与事件数据中包括的网站url相匹配。在一些实现方案中,步骤708是可选的。例如,第二数据处理系统300可以不接收对应于事件数据中每个事件的补充数据。
64.在步骤710,第二数据处理系统300可以分析数据以生成结果。在各种实现方案中,
第二数据处理系统300分析事件数据。附加地或替代地,第二数据处理系统300可以分析补充数据。在各种实现方案中,第二数据处理系统300执行各种分析操作以产生结果。在各种实现方案中,结果包括共享第一特性的交互和/或事件数据的数量的计数。附加地或替代地,结果可以包括交互的总和(例如,交易、点击、电话呼叫等)、与每个交互相关联的价值的总和(例如,美元金额)和/或元数据。在各种实现方案中,结果是聚合信息。例如,结果可以包括与来自一定数量的事件的事件数据相关联的统计信息。在一些实现方案中,结果被保存在数据库310中。在各种实现方案中,结果包括实时描述应用12的使用的数据。例如,结果可以包括当前观看特定内容项的用户数量的计数。附加地或替代地,第二数据处理系统300可以识别用户的没有使用应用12执行的先前交互(例如,跨平台属性等)。例如,第二数据处理系统300可以将补充数据中包括的内容交互与事件数据相关,以确定用户先前在不同于客户端设备10的设备上与内容交互。
65.在步骤712,第二数据处理系统300可以将结果安全地传输到第一数据处理系统200。附加地或替代地,第二数据处理系统300可以将结果安全地传输到不同的目的地。在一些实现方案中,步骤712是可选的。
66.图6示出了计算系统800的描述,该计算系统800可以用于例如实现在本公开中描述的任何说明性系统(例如,系统110等)。计算系统800包括用于传递信息的总线805或其他通信组件,以及耦合到总线805用于处理信息的处理器810。计算系统800还包括耦合到总线805用于存储信息的诸如随机存取存储器(“ram”)或其他动态存储设备的主存储器815和要由处理器810执行的指令。主存储器815还可以用于在处理器810执行指令期间存储位置信息、临时变量或其他中间信息。计算系统800还可以包括耦合到总线805的只读存储器(“rom”)820或其他静态存储设备,用于为处理器810存储静态信息和指令。诸如固态设备、磁盘或光盘的存储设备825耦合到总线805,用于永久存储信息和指令。
67.计算系统800可以经由总线805耦合到显示器835,诸如液晶显示器或有源矩阵显示器,用于向用户显示信息。诸如包括字母数字键和其他键的键盘的输入设备830可以耦合到总线805,用于向处理器810传送信息和命令选择。在另一实现方案中,输入设备830具有触摸屏显示器835。输入设备830可以包括诸如鼠标、轨迹球或光标方向键的光标控件,用于向处理器810传送方向信息和命令选择,以及用于控制显示器835上的光标移动。
68.在一些实现方案中,计算系统800可以包括通信适配器840,诸如联网适配器。通信适配器840可以耦合到总线805,并且可以被配置成实现与计算或通信网络845和/或其他计算系统的通信。在各种说明性实现方案中,可以使用通信适配器840来实现任何类型的联网配置,诸如有线(例如,经由以太网)、无线(例如,经由wifi、蓝牙等)、预配置、自组织、lan、wan等。
69.根据各种实现方案,实现本文描述的说明性实现方案的过程可以由计算系统800响应于处理器810执行包含在主存储器815中的指令布置来实现。这样的指令可以从诸如存储设备825的另一个计算机可读介质读取到主存储器815中。包含在主存储器815中的指令布置的执行使得计算系统800执行这里描述的说明性过程。多处理布置中的一个或多个处理器也可以用于执行包含在主存储器815中的指令。在替代实现方案中,可以使用硬连线电路来代替软件指令或者与软件指令相结合来实现说明性实现方案。因此,实现方案不限于硬件电路和软件的任何特定组合。
70.尽管已经在图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方案可以使用其他类型的数字电子电路来实现,或者在计算机软件、固件或硬件中实现,所述计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实现。
71.除了上面的描述之外,可以向用户提供控件,允许用户选择是否以及何时这里描述的系统、程序或特征能够收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息),以及是否从服务器向用户发送内容或通信。此外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行处理,以便删除个人身份信息。例如,可以处理用户的身份,从而不能确定用户的个人身份信息,或者可以在获得位置信息的情况下概括用户的地理位置(诸如城市、zip或州级),从而不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。在这里描述的系统收集关于用户或安装在用户设备上的应用的个人信息或者利用个人信息的情况下,向用户提供了控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户偏好或用户当前位置的信息)的机会。附加地或替代地,在存储或使用某些数据之前,可以用一种或多种方式对其进行处理,从而移除个人信息。
72.本公开的系统和方法提供了优于现有系统的许多益处。通常,来自客户端设备应用的数据在被转发到分析系统进行分析之前,由诸如与应用的操作相关联的服务器之类的聚合器来收集。然而,客户端设备和聚合器之间的连接并不总是可靠的。例如,客户端设备可能无法向聚合器传输数据和/或聚合器可能变得不可用(例如,离线维护等)。这里描述的新颖的sdk和计算机架构方便了用于报告事件数据的冗余路径。具体而言,本公开的sdk便于响应于向聚合器传输数据的失败而向单独的端点传输事件数据。因此,本公开的sdk通过便于事件数据的冗余报告并由此减少丢失的数据来改进现有系统。
73.此外,传统系统在客户端设备生成事件数据的时间和分析系统接收事件数据的时间之间引入了时间延迟。如前所述,通常客户端设备将事件数据传输到聚合器,聚合器将数据转发到分析系统。然而,在聚合器接收到数据的时间和分析系统接收到数据的时间之间可能存在时间延迟。这种时间延迟可能会降低应用对变化的响应性。例如,如果应用具有导致交易过早失败的软件缺陷,传统系统可能需要一些时间来检测软件缺陷。然而,这里描述的新颖的sdk和计算机架构便于将事件数据直接传输到分析系统。具体而言,本公开的sdk通过减少客户端设备生成数据和分析系统接收到数据之间的时间延迟便于提高应用事件(例如,崩溃、缺陷等)的响应能力。
74.此外,通常将来自不同实体的数据相关的系统使用识别符来匹配数据。例如,系统可以使用用户识别符将用户的交互与用户的交易相匹配。这里描述的新颖的sdk和计算机架构便于来自不同实体的数据的相关,而不揭露pii。具体而言,本公开的sdk和计算机架构便于使用不揭露pii的中间识别符来使来自不同实体的数据相关。此外,内容提供商(例如,应用开发者等)可以改善分析结果,而不必将敏感数据传输到分析系统。例如,内容提供商可以从他们自己的数据库中识别补充数据,并在将数据传输到分析系统之前移除敏感识别符(例如,个人识别符等)。
75.本说明书中描述的主题和操作的实现方案可以使用数字电子电路来实现,或者在包含在包括本说明书中公开的结构及其结构等同物的有形介质、固件或硬件上的计算机软
件,或者它们中的一个或多个的组合中实现。本说明书中描述的主题的实现方案可以被实现为一个或多个计算机程序,即一个或多个计算机程序指令模块,其被编码在一个或多个计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机可读存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的来源或目的地。计算机存储介质也可以是一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备)或被包括在一个或多个单独的组件或介质中。计算机存储介质可以是有形的和/或非暂时性的。
76.本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
77.术语“数据处理装置”或“计算设备”包含用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或多个或前述的组合。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
78.计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机或位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
79.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。这里使用的电路可以使用硬件电路(例如,fpga、asic等)、软件(存储在一个或多个计算机可读存储介质上并可由一个或多个处理器执行的指令)或其任意组合来实现。
80.举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘)或可操作地耦合到一个或多个用于存储数据
的大容量存储设备,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一个设备中,例如,移动电话、个人数字助理(“pda”)、移动音频或视频播放器、游戏控制台、全球定位系统(“gps”)接收器或便携式存储设备(例如,通用串行总线(“usb”)闪存驱动器),仅举几个示例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及cd-rom核dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
81.为了提供与用户的交互,本说明书中描述的主题的实现方案可以使用计算机来执行,该计算机具有用于向用户显示信息的诸如crt(阴极射线管)或lcd(液晶显示器)监视器的显示设备以及用户可以用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求,向用户的客户端设备上的web浏览器发送网页。
82.本说明书中描述的主题的实现方案可以使用计算系统来实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现方案进行交互,或者一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
83.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在一些实现方案中,服务器将数据(例如,html页面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
84.虽然本说明书包含许多具体的实施细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实现方案所特有的特征的描述。本说明书中在独立实现方案的上下文中描述的某些特征也可以组合地或在单个实现方案中实现。相反,在单个实现方案的上下文中描述的各种特征也可以在多个实现方案中、单独地或以任何合适的子组合来实现。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。此外,针对特定标题描述的特征可以针对在其他标题下描述的说明性实现方案和/或与其结合使用;标题(如果提供的话)仅出于可读性的目的而被包括在内,并且不应被解释为限制关于这些标题所提供的任何特征。
85.类似地,虽然在附图中以特定的次序描述了操作,但是这不应该被理解为要求这
些操作以所示的特定次序或顺序执行,或者要求所有示出的操作都被执行,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实现方案中的各种系统组件的分离不应该被理解为在所有实现方案中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者打包成在有形介质上实现的多个软件产品。
86.因此,已经描述了主题的特定实现方案。其他实现方式在所附权利要求的范围内。在某些情况下,权利要求中所述的动作可以以不同的次序执行,并且仍能获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定次序或顺序来实现期望的结果。在某些实现方案中,多任务和并行处理可能是有利的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献