分布式、分散式数据聚合的制作方法

文档序号:15307367发布日期:2018-08-31 21:13阅读:215来源:国知局

本申请要求johnryancaldwell的2016年5月27日提交的题为“distributed,decentralizeddataaggregation”的美国专利申请号15/167,650、johnryancaldwell的2015年11月12日提交的题为“distributeddataaggregation”的美国临时专利申请号62/254,708、以及ryancaldwell的2016年1月18日提交的题为“distributed,decentralizeddataaggregation”的美国临时专利申请号62/280,070权益,藉此通过引用的方式将其中的每一个整体并入本文中。

本发明涉及用户数据的所有权和收集,并且更具体地涉及来自与用户相关联的硬件设备的多个用户的数据的分布式和/或分散式聚合。



背景技术:

随着越来越多的用户数据移动到云中,用户越来越难以控制、下载和/或使用用户自己的个人数据。用户从服务提供商的围墙花园导出数据可能特别困难,服务提供商可能采取多种技术措施来防止用户访问服务提供商的生态系统之外的用户数据。即使第三方具有用户的授权和登录凭证,服务提供商也可以阻止第三方的一个或多个互联网协议(ip)地址(例如,聚合器服务)访问来自服务提供商的用户数据。



技术实现要素:

提出了一种用于分布式和/或分散式数据聚合的方法。在一个实施例中,方法包括确定用于多个第三方服务提供商的用户的电子凭证。在另一个实施例中,方法包括使用用户的确定的电子凭证,通过与所述用户相关联的硬件设备访问所述第三方服务提供商中的每个,以从所述第三方服务提供商下载与所述用户相关联的数据。在某些实施例中,方法包括对来自所述第三方服务提供商的下载的数据进行聚合,并基于聚合的下载的数据在所述硬件设备上向所述用户提供一个或多个通信信息。

提出了一种用于分布式和/或分散式数据聚合的系统。在一个实施例中,多个聚合模块位于不同用户的硬件设备上。在某些实施例中,所述多个聚合模块从所述不同用户接收用于多个不同的第三方服务提供商的电子凭证。在一个实施例中,所述多个聚合模块使用接收到的电子凭证从所述不同的第三方服务提供商下载与所述不同用户相关联的数据。在另一个实施例中,后端服务器从所述不同的第三方服务提供商接收与所述不同用户相关联的下载的数据。在某些实施例中,后端服务器对来自所述多个不同的第三方服务提供商的所述不同用户中的每个的数据分离地聚合。在一个实施例中,后端服务器通过一个或多个通信信道,将基于分离聚合的数据的一个或多个通信信息单独地提供给所述不同用户。

提出了一种用于分布式和/或分散式数据聚合的设备。在一个实施例中,认证模块被配置为在用户的硬件设备上确定用于第三方服务提供商的所述用户的电子凭证。在某些实施例中,直接访问模块被配置为使用所述用户的电子凭证,通过所述用户的硬件设备访问所述第三方服务提供商的服务器。在另一个实施例中,直接访问模块被配置为将与所述用户相关联的数据从所述第三方服务提供商的服务器下载到所述用户的硬件设备。在一个实施例中,接口模块被配置为将来自所述用户的硬件设备的下载的数据打包给独立于所述第三方服务提供商的远程设备。在另一个实施例中,接口模块被配置为将下载的数据提供给所述远程设备。

在另一个实施例中,一种设备包括用于执行根据所公开的方法、装置和系统描述的各种步骤和操作的装置。提出了包括计算机可读存储介质的计算机程序产品。在某些实施例中,计算机可读存储介质存储计算机可用程序代码,可执行该计算机可用程序代码以执行根据所公开的方法、装置和系统描述的一个或多个操作。

附图说明

为了容易理解本发明的优点,将通过参考在附图中示出的具体实施例来提出上面简要描述的本发明的更具体描述。应当理解,这些附图仅描述了本发明的典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图来描述和解释本发明的附加的特征和细节,其中:

图1是示出用于分布式/分散式数据聚合的系统的一个实施例的示意性框图;

图2是聚合模块的一个实施例的示意性框图;

图3是聚合模块的另一个实施例的示意性框图;

图4a是示出分布式/分散式数据聚合的系统的附加实施例的示意性框图;

图4b是示出分布式/分散式数据聚合的系统的又一个实施例的示意性框图;

图4c是示出分布式/分散式数据聚合的系统的某个实施例的示意性框图;

图5a是示出用户接口的一个实施例的示意性框图;

图5b是示出用户接口的另一实施例的示意性框图;

图6是示出用于分布式/分散式数据聚合的方法的一个实施例的示意流程图;

图7是示出用于分布式/分散式数据聚合的方法的另一个实施例的示意性流程图;以及

图8是示出用于分布式/分散式数据聚合的方法的又一个实施例的示意流程图。

具体实施方式

在本说明书中,提到的“一个实施例”,“实施例”或类似语言表示结合该实施例描述的特定特征、结构或特性包括在至少一个实施例中。因此,在整个说明书中出现的短语“在一个实施例中”,“在实施例中”以及类似的语言可以但不一定都指代相同的实施例,除非另有明确规定,其指“一个或多个但不是全部的实施例”。除非另有明确说明,否则术语“包括”、“包含”、“具有”及其变型表示“包括但不限于”。除非另有明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥和/或相互包含的。除非另有明确规定,否则术语“一”,“一个”和“该”也指“一个或多个”。

此外,所描述的实施例的特征、优点和特性可以以任何合适的方式组合。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实施这些实施例。在其他情况下,在某些实施例中可以意识到可能不存在于所有实施例中的附加特征和优点。

根据以下描述和所附的权利要求,实施例的这些特征和优点将变得更加显而易见,或者可以通过实施如下所述的实施例来了解这些特征和优点。如本领域技术人员将理解的,本发明的各方面可以体现为系统、方法和/或计算机程序产品。因此,本发明的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,在此通常将软件和硬件方面称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采取体现在其上包含有程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。

已经将本说明书中描述的许多功能单元标记为模块,以更特别强调它们的实施独立性。例如,模块可以实现为包括定制vlsi电路或门阵列、现成半导体(例如,逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编程硬件设备中实现。

模块还可以用软件来实现以供各种类型的处理器执行。程序代码的识别模块例如可以包括计算机指令的一个或多个物理或逻辑块,可以将该物理或逻辑块组织为例如对象、过程或功能。尽管如此,识别模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上连接在一起时构成模块并实现模块的所述目的。

实际上,程序代码模块可以是单个指令或多个指令,并且甚至可以分布在几个不同的代码段上,在不同的程序之间以及在几个存储器设备上。类似地,可以在模块内识别和示出操作数据,并且操作数据可以以任何合适的形式来体现并且可以被组织在任何适当类型的数据结构内。可以将操作数据收集为单个数据集,或者操作数据可以分布在包括不同存储设备的不同位置上,并且操作数据可以至少部分地仅作为系统或网络上的电子信号而存在。在以软件实现模块或模块的一部分的情况下,可以将程序代码存储和/或传送到一个或多个计算机可读介质中。

计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。

计算机可读存储介质可以是可以保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何适当组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(“ram”)、只读存储器(“rom”)、可擦除可编程只读存储器(“eprom”或闪存)、静态随机存取存储器(“sram”)、便携式光盘只读存储器(“cd-rom”)、数字多功能盘(“dvd”)、记忆棒、软盘、机械编码的装置(例如,在其上记录有指令的凹槽中的穿孔卡或凸起结构)以及前述的任何适当组合。不应将这里使用的计算机可读存储介质解释为暂时信号本身,例如,无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。

这里描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输装置、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、与机器相关的指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如smalltalk、c++等的面向对象的编程语言以及诸如“c”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行,可以部分在用户的计算机上执行,作为独立的软件包,可以部分在用户的计算机上、部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过使用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便于执行本发明的各个方面。

在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应该理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机可读程序指令来实现。

可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该指令可以指示计算机、可编程数据处理装置和/或其他设备以特定方式运行,这样其中存储有指令的计算机可读存储介质包括制品,制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。

还可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以生成计算机实现的过程,这样在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。

已经将本说明书中描述的许多功能单元标记为模块,以更特别强调它们的实现独立性。例如,模块可以实现为包括定制vlsi电路或门阵列、现成半导体(例如,逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编程硬件设备中实现。

模块还可以用软件来实现以供各种类型的处理器执行。程序指令的识别模块例如可以包括计算机指令的一个或多个物理或逻辑块,可以将该物理或逻辑块组织为例如对象、过程或功能。尽管如此,识别模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上连接在一起时构成模块并实现模块的所述目的。

附图中的示意性流程图和/或示意性框图示出了根据本发明的各种实施例的装置、系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,示意性流程图和/或示意性框图中的每个框可以表示包括用于实现特定逻辑功能的程序代码的一个或多个可执行指令的代码的模块、段或部分。

还应该注意的是,在一些替代实施方式中,框中指出的功能可以不按照附图中指出的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果上等同于示出的附图的一个或多个块或其部分的其他步骤和方法。

尽管在流程图和/或框图中可以采用各种箭头类型和线型,但是将它们理解为不限制相应实施例的范围。实际上,一些箭头或其他连接符可用于仅指示描述的实施例的逻辑流程。例如,箭头可以指示所示实施例的列举的步骤之间的未指定持续时间的等待或监视时段。还将注意到,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行特定功能或动作的基于专用硬件的系统来实现,或由专用硬件和程序代码的组合来实现。

图1示出了用于分布式和/或分散式数据聚合的系统100的一个实施例。在一个实施例中,系统100包括一个或多个硬件设备102、一个或多个聚合模块104(例如,后端聚合模块104b和/或设置在一个或多个硬件设备102上的多个聚合模块104a)、一个或多个数据网络106或其他通信信道、一个或多个第三方服务提供商108(例如,一个或多个服务提供商108的一个或多个服务器108;一个或多个云或网络服务提供商等)、和/或一个或多个后端服务器110。在某些实施例中,即使在图1中描述了特定数量的硬件设备102、聚合模块104、数据网络106、第三方服务提供商108和/或后端服务器110,但是本领域的技术人员根据本公开的教导将认识到,任何数量的硬件设备102、聚合模块104、数据网络106、第三方服务提供商108和/或后端服务器110都可以包括在用于分布式数据聚合的系统100中。

在一个实施例中,系统100包括一个或多个硬件设备102。硬件设备102(例如,计算设备、信息处理设备等)可以包括台式计算机、膝上型计算机、移动设备、平板电脑、智能电话、机顶盒、游戏机、智能电视、智能手表、健身手环、光学头戴式显示器(例如,虚拟现实头盔、智能眼镜等)、hdmi或其他电子显示软件狗、个人数字助理和/或另外的计算设备中的一个或多个,该另外的计算设备包括处理器(例如,中央处理单元(cpu))、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另外的半导体集成电路器件)、易失性存储器和/或非易失性存储介质。在某些实施例中,如下所述,硬件设备102经由数据网络106与一个或多个第三方服务提供商108的一个或多个服务器108和/或一个或多个后端服务器110通信。在另一个实施例中,硬件设备102能够执行各种程序、程序代码、应用程序、指令、功能等。

在一个实施例中,聚合模块104被配置为从一个或多个第三方服务提供商108确定和/或接收用户的电子凭证(例如,用户名和密码、指纹扫描、视网膜扫描、数字证书、个人身份号码(pin)、质询响应、安全令牌、硬件令牌、软件令牌、dna序列、签名、面部识别、语音模式识别、生物电信号、双因素认证凭证等)。在某些实施例中,聚合模块104使用用户的电子凭证访问第三方服务提供商108的服务器108,以从服务器108下载与用户相关的数据,例如用户的照片、用户的社交媒体帖子、用户的医疗记录、用户的金融交易记录或其他金融数据、和/或与用户相关和/或由用户拥有但由第三方服务提供商的服务器108存储的其他数据108(例如,由硬件存储但不由用户拥有、维护和/或控制的数据)。在各种实施例中,聚合模块104可以在本地向用户提供下载的数据(例如,在硬件设备102的电子显示器上显示数据);可将来自用户的硬件设备102的下载数据提供给和/或将该数据打包发送给可以独立于第三方服务提供商108的远程服务器110(例如,后端聚合模块104b)或其他远程设备(例如,用户的另一硬件设备102、不同用户的硬件设备102等);可以基于下载的数据向用户(例如,在硬件设备102上)提供一个或多个警报、消息、广告或其他通信消息;等等。

在某些实施例中,系统100包括设置/位于多个不同用户的硬件设备102(例如,包括一个或多个硬件设备102的硬件和/或运行在一个或多个硬件设备102上的可执行代码)上的多个聚合模块104。多个聚合模块104可以充当分布式和/或分散式系统100,在地理上分散并且使用不同ip地址的多个硬件设备102上执行该多个聚合模块104,每个聚合模块104分别以分布式和/或分散式的方式下载和/或聚合数据(例如,照片、社交媒体帖子、医疗记录、金融交易记录、其他金融数据和/或其他用户数据)。尽管第三方服务提供商108(例如,金融机构、银行、信用合作社和/或其他在线银行提供商;社交媒体网站;医疗提供商;照片托管站点等)可以阻止数据聚合服务或阻止其他实体从单个位置(例如,单个ip地址、单个ip地址块等)访问多个用户的数据,但是在某些实施例中,许多聚合模块104的分布式和/或分散式群集对于第三方服务提供商108来说可能更难以阻止。

在一个实施例中,硬件设备102可以包括和/或执行互联网浏览器,用户可以使用该浏览器来访问第三方服务提供商108的服务器108(例如,通过在互联网浏览器中加载第三方服务提供商108的网页)。在某些实施例中,至少一部分聚合模块104可以包括用户的个人硬件设备102的互联网浏览器的插件和/或扩展,以使得第三方服务提供商108可以不阻止聚合模块104访问第三方服务提供商108的服务器108,也不阻止用户自身使用互联网浏览器访问服务器108。例如,当用户通过互联网浏览器访问第三方服务提供商108的服务器108时,聚合模块104可以使用和用户相同的cookie、ip地址、保存的凭证等。在某些实施例中,聚合模块104可以支持与多种不同类型的互联网浏览器的集成(例如,在不同的硬件设备102上)。

在某些实施例中,聚合模块104可以模仿或复制用户在访问第三方服务提供商108的服务器108时的行为模式,以降低第三方服务提供商108可以区分聚合模块104访问服务器108和用户访问服务器108的可能性。例如,即使聚合模块104不打算从一个或多个位置中的每一个下载数据,聚合模块104也可以访问第三方服务提供商108的服务器108的一个或多个位置(例如,网页),可以在访问不同位置之间等待某个延迟时间,可以使用某个滚动模式,等等,以掩饰聚合模块104下载和/或聚合用户的数据,从而减少被第三方服务提供商108检测到和/或阻止的机会。

在一个实施例中,至少一部分聚合模块104可以与在硬件设备102上执行的另一个应用程序集成或者作为该另一个应用程序的一部分,例如,该另一个应用程序为个人财务管理应用程序(例如,用于显示用户在多个金融机构的金融交易、确定和/或显示用户的财务预算和/或财务目标、确定和/或显示用户的账户余额、确定和/或显示用户的资产净值等的计算机可执行代码)、照片查看器、医疗应用程序、保险应用程序、会计应用程序、社交媒体应用程序等,该另一个应用程序可以使用聚合模块104从第三方服务提供商108的服务器108下载的数据。

在一个实施例中,聚合模块104a包括分布式系统100,其中聚合模块104a和/或相关的硬件设备102基本上独立地下载和/或聚合数据(例如,同时或不同时下载数据,没有全局时钟,具有组件的独立的成功和/或故障)。分布式聚合模块104a可以将消息传递给彼此和/或传递给后端聚合模块104b,以协调它们的对用户的数据的分布式聚合。在一个实施例中,聚合模块104a是分散的(例如,与用户相关的硬件设备102执行一个或多个聚合功能(例如,下载数据)),而不是仅依靠中央服务器或其他设备来执行一个或多个聚合功能。

在分布式和/或分散式系统100中,中央实体(例如,后端聚合模块104b和/或后端服务器110)在某些实施例中仍然可以向一个或多个聚合模块104a提供一个或多个包括使用用户凭证等访问第三方服务提供商108的服务器108的指令的消息。例如,后端聚合模块104b可以向一个或多个硬件设备102的一个或多个聚合模块104a提供用于访问第三方服务提供商108的服务器108的一组或多组指令,例如,用于输入用户的电子凭证的位置(例如,文本框、字段、标签、坐标等),用于提交用户的电子凭证的指令(例如,按压按钮、点击链接等),与用户相关的数据的一个或多个位置(例如,表格或图表中的行、表格或图表中的列、统一资源定位符(url)或其他地址、坐标、标签等),和/或其他指令或信息,聚合模块104a可以使用它们访问和下载用户的数据。

在又一个实施例中,一个或多个聚合模块104a可以以点对点的方式将消息传递给彼此,例如,用于使用用户的凭证等访问第三方服务提供商108的服务器108的指令。在另一个实施例中,中央实体(例如,后端聚合模块104b)可以最初将用于使用用户的凭证访问第三方服务提供商108的服务器108的一组或多组指令发送给一个或多个聚合模块104a,并且一个或多个聚合模块104a可以将该一组或多组指令发送到其他聚合模块104a。

然而,在某些实施例中,用于访问用户数据的指令可以随时间改变,可以随第三方服务提供商108的不同用户而变化,等等(例如,由于升级、针对不同用户的不同服务级别或服务器108、不同的第三方服务提供商108的获取和/或整合等),导致某些指令随着时间和/或针对某些用户而失败,从而阻止聚合模块104访问和下载用户的数据。在一个实施例中,后端聚合模块104b可以向一个或多个聚合模块104a提供已知使得能够从第三方服务提供商108的服务器108访问用户数据的多组指令的层级列表。硬件设备102上的聚合模块104a可以以层级的顺序尝试不同组的指令,直到聚合模块104a能够访问用户的数据。

在某些实施例中,聚合模块104可以向用户提供接口,该接口通过图形化地标识用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等,允许用户修复或修改用于访问用户数据的失败的指令。在一个实施例中,聚合模块104可以高亮显示或以其他方式建议(例如,粗体、上色、图示直观的注释或标签等)对聚合模块104已经确定用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等的估计。例如,聚合模块104可以处理第三方服务提供商108的服务器108的网页(例如,解析和/或搜索超文本标记语言(html)文件)以估计用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等。

在某些实施例中,聚合模块104可以为用户提供高级接口以图形化地修复用于从第三方服务提供商108的服务器108访问用户数据的中断的和/或失败的指令,该高级接口允许用户查看网页(例如,html等)的代码以及在网页的代码内识别用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等。在一个实施例中,聚合模块104可以为用户提供基本接口,以通过在服务器108的网页或其他位置上叠加基本接口来图形化地修复从第三方服务提供商108的服务器108访问用户的数据的中断的和/或失败的指令,其中,用户可以图形化地识别用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等(例如,不需要用户查看网页的html或其他代码)。在某些实施例中,聚合模块104可以提供包括中断和/或丢失的指令、位置等的可选列表的接口,并且可以响应于用户从列表中选择项目而高亮显示和/或图形化地显示建议。

在一个实施例中,聚合模块104可以在允许每个聚合模块104a使用所提供的指令之前测试由用户提供的指令(例如,使用测试集)(例如,以防止滥用用户提供虚假或不正确的指令)。聚合模块104可以基于用户的提供的指令的成功率对用户进行评分或评价,并且可以加快(例如,提供给更多数量的聚合模块104a和/或用户)使用来自评分或评价较高的用户的指令。在某些实施例中,聚合模块104的分布式网络可以自我修复和/或自我测试,以在即使访问指令改变或中断的情况下,仍然允许通过一个或多个第三方服务提供商108继续访问和/或聚合用户的数据。

在某些实施例中,一个或多个聚合模块104可以提供用于将下载的和/或聚合的用户数据从一个或多个第三方服务提供商的服务器108提供到一个或多个其他实体(例如,独立于第三方服务提供商108的远程服务器110或其他硬件设备102、后端聚合模块104b等)的接口(例如,应用程序编程接口(api))。在一个实施例中,该接口包括用户硬件设备102的聚合模块104a与一个或多个后端聚合模块104b之间的专用接口。例如,这可以使得即使下载数据的用户的硬件设备102关闭、电池没电、没有连接到数据网络106等,后端聚合模块104b也能够向用户提供访问以在多个位置、在多个硬件设备102上、通过多个信道等下载和/或聚合用户数据。在另一个实施例中,接口包括安全的公共和/或开放接口,允许用户将从聚合模块104下载的用户数据共享到一个或多个其他工具、服务设备和/或其他实体以存储、处理和/或以其他方式使用数据。

在各种实施例中,聚合模块104可以体现为硬件、软件或者硬件和软件的某种组合。在一个实施例中,聚合模块104可以包括存储在非暂时性计算机可读存储介质上的可执行程序代码,该可执行程序代码在硬件设备102、后端服务器110等的处理器上执行。例如,聚合模块104可以体现为在硬件设备102、后端服务器110、一个或多个前述的组合等中的一个或多个上执行的可执行程序代码。在该实施例中,执行聚合模块104的操作的各个模块(如下所述)可位于硬件设备102、后端服务器110、上述两者的组合等上。

在各种实施例中,聚合模块104可以体现为可以安装或部署在后端服务器110上、用户的硬件设备102上(例如,用于电话102或平板电脑102的加密狗、保护壳,保护壳包括位于壳体内的一个或多个半导体集成电路设备,其与电话102或平板电脑102无线地和/或通过诸如usb或专用通信端口或另一外围设备的数据端口进行通信)、或者在数据网络106上和/或与用户的硬件设备102并置。在某些实施例中,聚合模块104可以包括硬件设备,例如,安全硬件加密狗或其他硬件应用设备(例如,机顶盒、网络设备,等等),其通过有线连接(例如,usb连接)或无线连接(例如,近场通信(nfc)等)附接到另一硬件设备102(例如,膝上型计算机、服务器、平板电脑、智能电话等);其附接到电子显示设备(例如,使用hdmi端口、displayport端口、minidisplayport端口、vga端口、dvi端口等的电视机或监视器);其在数据网络106上基本上独立地操作;等等。聚合模块104的硬件设备可以包括电源接口、有线和/或无线网络接口、输出到显示设备的图形接口(例如,具有一个或多个显示端口的图形卡和/或gpu)和/或如下所述的半导体集成电路器件,其被配置为执行本文描述的有关聚合模块104的功能。

在该实施例中,聚合模块104可以包括半导体集成电路设备(例如,一个或多个芯片、裸片或其他分立逻辑硬件)等,例如,现场可编程门阵列(fpga)或其他可编程逻辑、用于fpga或其他可编程逻辑的固件、在微控制器上执行的微码、专用集成电路(asic)、处理器,处理器内核等。在一个实施例中,聚合模块104可以安装在具有一个或多个电线或连接(例如,连接到易失性存储器、非易失性存储介质、网络接口、外围设备、图形/显示接口)的印刷电路板上。硬件设备可以包括被配置为发送和接收数据(例如,与印刷电路板等的一个或多个电线通信)的一个或多个引脚、焊盘或其他电连接,以及被配置为执行聚合模块104的各种功能的一个或多个硬件电路和/或其他电路。

在某些实施例中,聚合模块104的半导体集成电路设备或其他硬件应用包括和/或通信地耦合到一个或多个易失性存储介质,该易失性存储介质可以包括但不限于:随机存取存储器(ram)、动态ram(dram)、高速缓存等。在一个实施例中,聚合模块104的半导体集成电路设备或其他硬件设备包括和/或通信地耦合到一个或多个非易失性存储介质,该非易失性存储介质可以包括但不限于:nand闪存、nor闪存存储器、纳米随机存取存储器(纳米ram或nram)、基于纳米晶体线的存储器、基于氧化硅的亚10纳米工艺存储器、石墨烯存储器、硅氧氮化物氧化物硅(sonos)、电阻式(rram)、可编程金属化单元(pmc)、导电桥接ram(cbram)、磁阻ram(mram)、动态ram(dram)、相变ram(pram或pcm)、磁存储介质(例如,硬盘、带)、光存储介质等。

在一个实施例中,数据网络106包括传输数字通信的数字通信网络。数据网络106可以包括诸如无线蜂窝网络的无线网络,诸如wi-fi网络、网络、近场通信(nfc)网络、自组织网络等的本地无线网络,和/或类似网络。数据网络106可以包括广域网(wan)、存储区域网络(san)、局域网(lan)、光纤网络、因特网或其他数字通信网络。数据网络106可以包括两个或更多个网络。数据网络106可以包括一个或多个服务器、路由器、交换机和/或其他网络设备。数据网络106还可以包括一个或多个计算机可读存储介质,例如,硬盘驱动器、光驱、非易失性存储器、ram等。

在一个实施例中,一个或多个第三方服务提供商108可以包括一个或多个网络可访问计算系统,例如,托管一个或多个网站的一个或多个网络服务器、企业内联网系统、应用服务器、应用程序编程接口(api)服务器、认证服务器等。一个或多个第三方服务提供商108可以包括与各种机构或组织有关的系统。例如,第三方服务提供商108可以包括向金融机构、大学、政府机构、公用事业公司、电子邮件提供商、社交媒体网站、照片共享网站、视频共享网站、数据存储网站、医疗提供商或存储与用户相关的数据的另一实体提供电子访问的系统。第三方服务提供商108可以允许用户创建用户账户以上传、查看、创建和/或修改与用户相关的数据。因此,第三方服务提商108可以包括授权系统,例如,网站、应用程序或类似前端的登录元素或页面,其中用户可以提供凭证(例如,用户名/密码组合)以访问用户的数据。

在一个实施例中,一个或多个后端服务器110和/或一个或多个后端聚合模块104b提供对联网群集的聚合模块104a的集中管理。例如,一个或多个后端聚合模块104b和/或后端服务器110可以集中地存储通过聚合模块104a的下载的用户数据,可以向聚合模块104a提供指令以使用用户凭证从一个或多个第三方服务提供商108访问用户数据,等等。后端服务器110可以包括位于远离硬件设备102和/或一个或多个第三方服务提供商108的一个或多个服务器。后端服务器110可以包括下面针对图2和图3的聚合模块104描述的模块或子模块的至少一部分,可以包括聚合模块104的硬件、可以将聚合模块104的可执行程序代码存储在一个或多个非暂时性计算机可读存储介质中、和/或可以以其他方式执行本文描述的聚合模块104的各种操作中的一个或多个操作以便以分布式的方式从一个或多个第三方服务提供商聚合用户数据。

图2示出了聚合模块104的一个实施例。在示出的实施例中,聚合模块104包括认证模块202、直接访问模块204和接口模块206。

在一个实施例中,认证模块202在用户的硬件设备102上从用户接收用于第三方服务提供商108的用户的电子凭证。在另一个实施例中,认证模块202可以接收不同用户的电子凭证(例如,来自不同硬件设备102、来自后端聚合模块104等),可以对不同用户的电子凭证进行加密和/或以其他方式加以保护,以使得直接访问模块204可以下载不同用户的数据(例如,从单个用户的硬件设备102下载多个用户的数据)。

例如,在分布式/分散式系统100中,如果一个用户的硬件设备102关闭、休眠、电池耗尽、被第三方服务提供商108阻止等,则在某些实施例中,不同用户的硬件设备102上和/或后端服务器110上的聚合模块202可以使用一个用户的电子凭证下载该一个用户的数据,并且可以将该数据发送给该一个用户的硬件设备102,可以将警报和/或推送通知发送到该一个用户的硬件设备102等。在一个实施例中,通过这种方式,即使用户自己的硬件设备102被阻止、不可用等,用户也可以继续聚合数据、接收警报和/或推送通知等。在某些实施例中,通过与一个或多个认证模块202合作,聚合模块104a,104b可以使用安全和/或加密协议彼此通信,和/或可以以安全和/或加密方式存储电子凭证,以使得用户可以看不到和/或可以不用访问另一用户的电子凭证、下载的数据或其他私人和/或敏感数据。

在聚合模块104包括硬件(例如,诸如fpga,asic等的半导体集成电路设备)的实施例中,认证模块202可以包括用于存储和/或处理电子凭证、下载的数据和/或其他敏感和/或私人数据的专用安全硬件,例如,不将解密数据输出到不安全的总线或存储器且存储加密密钥的安全密码处理器(例如,芯片上的专用计算机或嵌入在具有一种或多种物理安全措施的封装中的微处理器),安全存储设备;诸如tpm芯片和/或tpm安全设备的可信平台模块(tpm);安全启动rom或其他类型的rom;认证芯片;等等。在另一个实施例中,认证模块202可以使用用户现有的硬件设备102的软件和/或硬件以安全和/或加密的方式存储和/或处理电子凭证、下载的数据和/或其他敏感数据(例如,ram、nand和/或其他通用存储器中的加密数据),其中硬件设备102具有或不具有专用安全硬件。在某些实施例中,认证模块202可以对与第一用户相关但由第二(例如,不同的)用户的硬件设备102(例如,通过数据网络106等从第一用户的硬件设备102)接收、处理和/或存储的数据(例如,电子凭证、下载的数据)进行加密和/或保护,以防止第二用户访问第一用户的数据,同时仍允许从不同用户的硬件设备102下载和/或聚合第一用户的数据。

在一个实施例中,如上所述,电子凭证可以包括用户名和密码、指纹扫描、视网膜扫描、数字证书、个人身份号码(pin)、质询响应、安全令牌、硬件令牌、软件令牌、dna序列、签名、面部识别、语音模式识别、生物电信号、双因素认证凭证或其他信息中的一个或多个,由此认证模块202可以认证和/或验证用户的身份和/或授权。

在某些实施例中,认证模块202可以从用户接收用户在不同的第三方服务提供商108(例如,不同的社交网络、不同的照片共享网站、不同的金融机构)的不同账户的不同凭证,使得聚合模块104可以从多个不同的第三方服务提供商108下载、聚合和/或组合用户的数据。在一个实施例中,如下面针对图3的密码管理器模块306所描述的,代替和/或除了从用户接收一个或多个密码或其他电子凭证之外的认证模块202还可以为一个或多个第三方服务提供商108管理和/或确定用户的一个或多个密码或其他电子凭证。例如,在某些实施例中,认证模块202可以从用户接收该用户在第三方服务提供商108的账户的一组初始电子凭证(例如,用户名和密码),并且认证模块202可以使用该组初始电子凭证来访问用户在该第三方服务提供商108的账户以设置认证模块确定的新密码202。在一个实施例中,认证模块202可以确定比通常由用户创建和/或用户可存储的那些密码或电子凭证更安全的密码或其他电子凭证(例如,更长、更多数字、大写字母和小写字母之间的更大变化、更频繁地改变,等等)。

在一个实施例中,直接访问模块204使用来自认证模块202的用户的电子凭证(例如,与硬件设备102相关联的用户的电子凭证、不同用户的电子凭证等),通过用户的硬件设备102和/或后端服务器110访问一个或多个第三方服务提供商108的一个或多个服务器108。在某些实施例中,直接访问模块204不将数据直接下载到用户的硬件设备102或者除了将数据直接下载到用户的硬件设备102之外(例如,基于用户的硬件设备102的可用性,为了在第二个位置备份数据,等),直接访问模块204还将与用户相关的数据(例如,用户的社交媒体帖子、用户的照片、用户的金融交易等)从一个或多个第三方服务提供商108的一个或多个服务器108下载到用户的硬件设备102(例如,与下载的数据相关的用户的硬件设备102;不同用户的硬件设备102,其将下载的数据处理和/或传送到与下载的数据相关的用户的硬件设备102)和/或下载到与直接访问模块204相关的后端服务器110。

在某些实施例中,直接访问模块204可以使用第三方服务提供商108的服务器108的网页接口,利用用户的电子凭证来访问服务器108和/或下载与用户相关的数据。例如,在某些实施例中,直接访问模块204可以从第三方服务提供商108的服务器108下载/加载网页,将用户的用户名和密码或其他电子凭证输入到网页上的表单中的文本框,使用网页的提交按钮或其他接口元素提交用户名和密码或其他电子凭证,和/或使用网站以其他方式提交电子凭证以获得对与用户相关联的服务器108上的数据的访问的授权。如下所述,模式模块308可以接收和/或提供使得直接访问模块204能够访问服务器108(例如,提交电子证书的位置或方法等)的指令。

响应于使用用户的电子凭证成功认证并访问第三方服务提供商108的服务器108,直接访问模块204可以从服务器108将与用户相关的数据(例如,从用户的账户等)下载到与用户相关的硬件设备102、后端服务器110、代表该用户下载数据的另一个用户的硬件设备102等。如下所述,在某些实施例中,模式模块308可以接收和/或提供使直接访问模块204能够从第三方服务提供商108的服务器108下载与用户相关的数据的指令(例如,指示数据的位置的url或其他链接、用于在一个或多个网页或其他数据结构内定位数据的标签或其他标识符,等等)。在某些实施例中,直接访问模块204可以按照模式模块308的指令,以屏幕抓取方式认证和/或访问来自服务器108的一个或多个网页的数据,以通过解析一个或多个网页来定位输入位置和/或提交电子凭证;定位、下载和/或提取与用户相关的数据;等等。

在一个实施例中,直接访问模块204使用第三方服务提供商108的服务器108的api或其他访问协议发送或以其他方式提交电子凭证和/或接收或以其他方式下载数据。例如,直接访问模块204可以以第三方服务提供商108的服务器108(例如,api服务器108)指定和/或与服务器108兼容的格式发送请求。发送的请求可以包括用户的电子凭证或其一部分(例如,用户名和/或密码),后续请求可以包括用户的电子凭证或其一部分(例如,响应于从服务器108接收到的针对第一请求的确认,等等),和/或直接访问模块204可以使用服务器108的不同访问协议。

响应于来自直接访问模块204的对数据的请求(例如,响应于直接访问模块204使用服务器108的访问协议对用户进行了认证),第三方服务提供商108的服务器108可以发送和/或返回与用户相关的数据(例如,在一个或多个消息、分组、有效载荷中的数据,作为指向直接访问模块204可从中获得数据的位置的url或其他指针,等等)。在各种实施例中,直接访问模块204可以通过数据网络106直接从第三方服务提供商108的服务器108接收与用户相关的数据;可以从第三方服务提供商108的服务器108接收指向与用户相关的数据的位置的指针、url或其他链接;可以从数据网络106上的另一实体接收与用户相关的数据(例如,响应于第三方服务提供商108的服务器108对其他实体的请求等);或者可以以其他方式根据第三方服务提供商108的访问协议接收与用户相关的数据。

在一个实施例中,第三方服务提供商108向直接访问模块204提供api或其他访问协议。在另一个实施例中,直接访问模块204可以充当第三方服务提供商108的应用程序(例如,移动应用程序)的包装和/或插件或扩展,并且该应用程序可以访问第三方服务提供商108的api或其他访问协议。在另一个实施例中,直接访问模块204可以被配置为通过观察第三方服务提供商108的应用程序等以与第三方服务提供商108的应用程序(例如,移动应用程序)相同的方式使用api或其他访问协议。在某些实施例中,直接访问模块204可以与第三方服务提供商108的应用程序、用户通过其访问第三方服务提供商108的服务的web浏览器等合作以访问与用户相关的数据(例如,访问应用程序和/或用户已经下载的数据、访问应用程序和/或网络浏览器的数据库或其他数据存储、当用户访问网页时扫描和/或屏幕抓取第三方服务提供商108的网页,等等)。

在某些实施例中,直接访问模块204可以以不同方式访问不同的第三方服务提供商108。例如,第一第三方服务提供商108可以授权直接访问模块204访问api或其他访问协议,而直接访问模块204可以使用网页接口(例如,屏幕抓取)来从第二第三方服务提供商108访问和下载数据,等等。在一个实施例中,远程后端服务器110可以与第一方服务提供商110(例如,聚合模块104的供应商和/或提供商)相关联,并且直接访问模块204可以从第一方服务提供商110和一个或多个第三方服务提供商108下载与用户相关的数据,将数据聚合在一起,以使得用户可以在单个接口和/或应用程序中访问数据。例如,如下面针对接口模块206所描述的,接口模块206可以向用户提供在单个照片应用程序内通过多个第三方云存储提供商108对用户照片的访问,可以向用户提供在单个个人财务管理应用程序和/或在线银行应用程序内对用户的个人财务信息的访问,可以向用户提供在单个社交网络应用程序内对多个社交网络的帖子的访问,等等。

在某些实施例中,直接访问模块204可以独立于一个或多个第三方服务提供商108存储下载的和/或聚合的数据。例如,直接访问模块204可以在用户的硬件设备102上、在用户可以访问的后端服务器110上存储用户下载的和/或聚合的数据,等等。通过这种方式,在某些实施例中,即使第三方服务提供商108关闭或不可用,用户也可以控制和/或访问用户的数据,即使第三方服务提供商108不支持使用,用户也可以以用户期望的任何方式使用用户的数据,等等。

在一个实施例中,除了和/或代替从一个或多个第三方服务提供商108下载数据之外,直接访问模块204还可以响应于用户输入等而向一个或多个第三方服务提供商108上传数据和/或改变一个或多个第三方服务提供商108的一个或多个设置。例如,在数据包括照片的实施例中,直接访问模块204可以将来自用户的硬件设备102的照片上传到一个或多个第三方服务提供商110(例如,用户已经在硬件设备102上编辑的下载的照片等)。在数据包括社交媒体帖子或其他内容的实施例中,直接访问模块204可以从用户接收输入(例如,照片、文本帖子、一个或多个表情符号、视频、文档或其他文件,等等),并将接收到的输入上传到一个或多个第三方服务提供商108(例如,社交媒体网站等)。在数据包括金融交易或其他金融数据的实施例中,直接访问模块204可以安排账单支付或其他支付或资金转账,远程存入支票(例如,通过上传支票的正面和/或背面的照片,等等),和/或执行另一个动作。

直接访问模块204可以利用第三方服务提供商108更新或改变用户的账户信息,例如,账户类型或计划、信用卡或与账户相关联的其他支付信息、电话号码或地址或与账户相关联的其他信息、账户的密码或其他电子凭证、和/或用户对于第三方服务提供商108的其他账户信息。直接访问模块204可以以与本文描述的下载数据基本类似地方式更新和/或上传数据(例如,确定针对第三方服务提供商108的用户的电子凭证、访问第三方服务提供商108的服务器108、向第三方服务提供商108上传和/或提供数据,等等)。

在一个实施例中,接口模块206将直接访问模块204下载的用户数据从用户的硬件设备102(例如,与下载数据相关的用户的硬件设备102,、不同用户的硬件设备102)提供给另一个用户实体,例如,与下载的数据相关的用户的硬件设备102(例如,响应于不同用户的硬件设备102将数据从用户的一个硬件设备102提供到同一个用户的另一个硬件设备102),不依赖于(例如,不属于、不由其操作、不由其控制,等等)从其下载数据的第三方服务提供商108的远程服务器110或其他远程设备102,等等。例如,接口模块206可以提供api或其他接口以向用户的硬件设备102、后端聚合模块104b、后端服务器110、不同的第三方服务提供商108、用户的不同的/第二硬件设备102等提供用户的下载和/或聚合数据。

在某些实施例中,哪个硬件设备102,110已经下载了与用户相关的数据对于用户来说可以是透明的和/或基本上透明的(例如,不明显)。例如,接口模块206可以将下载的与用户相关的数据从用户的一个硬件设备102提供给用户的另一个硬件设备102、从用户的硬件设备102提供到后端服务器110(例如,用户可以使用网络浏览器、应用程序等来通过后端服务器110访问数据)、从后端服务器110提供给用户的硬件设备102,等等,从而允许用户从与下载数据的位置不同的位置访问数据。

在某些实施例中,接口模块206在用户的硬件设备102上提供图形用户接口(gui),并且通过gui向用户提供下载的与用户相关的数据(例如,允许用户直接查看数据、基于该数据向用户提供一个或多个通知和/或推荐、基于该数据向用户提供一个或多个表格或图表、提供与该数据有关的概要或一个或多个统计数据,等等)。在各种实施例中,接口模块206可以在与下载数据的硬件设备102相同的硬件设备102上向用户提供gui,可以在与下载数据的硬件设备102,110不同的硬件设备102上向用户提供gui,等等。

例如,在一个实施例中,在与用户相关的数据包括照片的情况下,接口模块206可以提供照片管理接口、照片编辑接口等,其中用户可以观看和/或以其他方式访问用户的下载和/或聚合照片。在另一个实施例中,在与用户相关的数据包括用户的金融交易历史(例如,从一个或多个金融机构108(例如,银行、信用社、贷方等)下载的购买和/或其他金融交易)的情况下,接口模块206可以提供个人财务管理接口,其具有交易列表、一个或多个预算、一个或多个财务目标、债务管理接口、净值接口和/或另一个个人财务管理接口,其中用户可以查看用户的下载和/或聚合的金融交易历史记录和/或基于该金融交易历史记录的警报或推荐。在另一个实施例中,在与用户相关的数据包括社交媒体帖子的情况下,接口模块206可以提供包括社交媒体帖子的信息流、动态和/或墙帖的gui以供用户查看(例如,从多个社交网络108、从用户的不同联系人或朋友等下载的和/或聚合的社交媒体帖子)。

在某些实施例中,接口模块206可以向用户提供一个或多个访问控制,以允许用户定义哪些设备102、用户、第三方服务提供商110等可以访问哪些数据。例如,接口模块206可以为用户提供接口以允许和/或限制某些移动应用程序、用于第三方服务的某些api、某些插件或扩展、某些用户、某些硬件设备102、和/或一个或多个其他实体访问从一个或多个第三方服务提供商108下载的数据(例如,通过第三方服务提供商108或其他数据源、通过数据类型、通过请求访问的实体、和/或另一个粒度来进行访问控制)。通过这种方式,在某些实施例中,聚合模块104可以包括聚合数据的本地存储库,其中一个或多个其他设备102和/或服务可以在用户的许可下访问和使用该本地存储库。

图3示出了聚合模块104的另一个实施例。在该示出的实施例中,聚合模块104包括认证模块202、直接访问模块204和接口模块206,并且还包括路由模块314、频率模块316和测试模块318。在示出的实施例中,认证模块202包括本地认证模块302、网络认证模块304和密码管理器模块306。在示出的实施例中,直接存取模块204包括模式模块308、访问修复模块310和层级模块312。

在一个实施例中,本地认证模块302对用户对用户的硬件设备102上的、传送到用户的硬件设备102的和/或从用户的硬件设备102传送等等的下载的数据、存储的密码和/或其他数据的访问进行认证和/或确保其安全。例如,本地认证模块302可以与用户的硬件设备102的一个或多个安全和/或认证系统协作(例如,pin、密码、指纹认证、面部识别或用户使用的其他电子凭证)以获得对硬件设备102的访问。在另一个实施例中,本地认证模块302可以在允许接口模块206向用户提供对下载/聚合的数据和/或警报或其他消息的访问之前对用户进行认证。例如,本地认证模块302可以为用户管理和/或访问与聚合模块104相关联的电子凭证,并且可以响应于用户访问聚合模块104的应用和/或服务来对用户进行认证。

在某些实施例中,本地认证模块302可以在用户的硬件设备102上加密和/或以其他方式保护与不同用户相关联的电子凭证和/或下载的数据,以使得用户可以不访问与不同的用户相关的数据,但是一旦将该数据发送到不同用户的硬件设备102、后端服务器110等,不同的用户就可以访问该数据。不同硬件设备102,110的本地认证模块302可以协作以通过数据网络106将数据(例如,一个或多个电子凭证、下载的数据等)从一个硬件设备102,110安全地传输到另一个硬件设备102,110。在另一个实施例中,本地认证模块302可以确保用户的电子凭证和/或下载的数据保持在单个硬件设备102上(例如,不在数据网络106上传输),保持在安全存储库中等,并且不存储在和/或不可访问后端服务器110、另一个用户的硬件设备102上,等等。

在一个实施例中,网络认证模块304在用户的硬件设备102上、在后端服务器110等上接收和/或存储用于一个或多个第三方服务提供商108的用户的电子凭证。在各种实施例中,网络认证模块304可以从用户、从用户的硬件设备102、从后端服务器110等接收用户的电子凭证。网络认证模块304可以与直接访问模块204协作以向第三方服务提供商108的服务器108提供用户的电子凭证(例如,网络认证模块304可以向直接访问模块204提供电子凭证以将其提供给服务器108,网络认证模块304可以将电子凭证直接提供给服务器108,等等)。

在某些实施例中,网络认证模块304可以与本地认证模块302协作,以在用户的硬件设备102上、在数据网络106上、在不同用户的硬件设备102上、在后端服务器110上对用于一个或多个第三方服务提供商108的用户的电子凭证进行加密和/或以其他方式进行保护,同时将用户的电子凭证提供给第三方服务提供商108的服务器108等。在另一个实施例中,网络认证模块304确保用户的电子凭证仅存储在用户的硬件设备102上并且将其从用户的硬件设备102发送到第三方服务提供商108的服务器108,并且不在后端服务器110上、不同用户的硬件设备102上等存储用户的电子凭证。在另一个实施例中,网络认证模块304可以在后端服务器110上、在不同用户的硬件设备102上等安全地存储(例如,使用安全加密)用于第三方服务提供商108的用户的电子凭证,以使得如下面针对路由模块314所描述的,即使用户的硬件设备102不可用、被阻止等,直接访问模块204也可以访问和/或下载与用户相关的数据。在某些实施例中,网络认证模块304和/或本地认证模块302是否允许将电子凭证发送到不同用户的硬件设备102、后端服务器110等和/或由不同用户的硬件设备102、后端服务器110等存储可以基于根据用户输入而定义的设置,以便用户可以决定安全级别等。

在一个实施例中,密码管理器模块306可以管理和/或存储用于多个第三方服务提供商108的用户的电子凭证,以使得直接访问模块204可以从多个第三方服务提供商108中的每一个访问和/或下载与用户相关的数据。在某些实施例中,密码管理器模块306可以生成和/或以其他方式管理用于多个第三方服务提供商108中的每一个的不同的安全的凭证。

在一个实施例中,密码管理器模块306可以在用户的硬件设备102上安全地存储生成的用户的凭证,以使得用户不必记住和输入生成的电子凭证。例如,除了允许直接访问模块204使用生成的电子凭证访问第三方服务提供商108之外,密码管理器模块306可以响应于用户在网络浏览器中访问网页等,将电子凭证(例如,用户名、密码)自动填写到接口网页上的表单的一个或多个接口元素,而无需用户手动输入电子凭证。在某些实施例中,密码管理器模块306可以响应于用户的请求、响应于第三方服务提供商108的请求、和/或在另一时间段或响应于另一个周期性触发,而周期性地更新(例如,重新生成不同的凭证(例如,不同的密码),并且利用重新生成的不同凭证更新用户在第三方服务提供商108的账户)用户的电子凭证,例如,每周、每月、每两个月、每三个月、每四个月、每五个月、每六个月、每年、每两年。

在一个实施例中,密码管理器模块306可以在用户的不同硬件设备102、网页浏览器等中同步用户的电子凭证(例如,由用户提供的电子凭证、由密码管理器模块306生成的电子凭证,等等)。例如,响应于密码管理器模块306和/或用户更新或以其他方式改变电子凭证,密码管理器模块306可以将该更新/改变传播到用户的不同硬件设备102上的一个或多个其他密码管理器模块306等。

在一个实施例中,模式模块308确定第三方服务提供商108的一个或多个服务器108上的供直接访问模块204访问该服务器的多个位置(例如,其可以包括除了存储和/或访问用户的数据位置之外的位置)的有序列表(例如,模式、脚本等),供直接访问模块204在访问服务器108上的不同位置之间等待的一个或多个延迟,和/或访问服务器的数据的访问模式的其他部分。在某些实施例中,位置包括第三方服务提供商108的一个或多个服务器提供的独立可寻址和/或可访问的内容和/或资产,等等,例如,网页、网页的一部分、图像或其他数据文件、数据库或其他数据存储器、移动应用程序的页面或其一部分,等等。在一个实施例中,模式模块308确定包含一个或多个位置和/或延迟的模式/有序列表,这些位置和/或延迟对于直接访问模块204访问或使用服务器以下载所需数据来说不是必需的,其实,模式/有序列表可能使第三方服务提供商108难以或不可能将访问第三方服务提供商108的服务器的直接访问模块204和访问第三方服务提供商的服务器的用户区分开来。

在一个实施例中,模式模块308可以基于在使用网络浏览器、移动应用程序等访问第三方服务提供商108的多个用户的行为中识别出的或者基于上述行为识别出的平均模式或组合模式,确定和/或选择多个位置和/或一个或多个延迟(例如,模式/有序列表)。在一个实施例中,模式模块308可以在一个或多个用户访问第三方服务提供商108的服务器时对该一个或多个用户进行监视(例如,预定的时间段等),跟踪一个或多个用户访问了哪些链接、数据、网页和/或其他位置,一个或多个用户访问不同位置用了多长时间,一个或多个用户访问多个位置的顺序等。在某些实施例中,一个或多个受监视的用户可以是已经向模式模块308提供授权以临时或永久地监视用户的访问的志愿者,以便为直接访问模块204提供更实际的访问模式以用于访问第三方服务提供商108的服务器。

在另一个实施例中,模式模块308基于在与其上设有模式模块308的硬件设备102相关联的用户的行为中识别出的模式来确定和/或选择多个位置和/或访问不同位置之间的一个或多个延迟,用户的行为包括使用用户的硬件设备102的web浏览器、移动或桌面应用或其他接口来访问第三方服务。例如,模式模块308可以包括用户的硬件设备102的网络硬件(例如,与数据网络106通信以监视与第三方服务提供商108的服务器的数据和/或交互的网络访问卡和/或芯片、处理器、fpga、asic等)、网络浏览器插件或扩展程序、在用户的硬件设备102的处理器上执行的移动和/或桌面应用程序等。模式模块308可以向用户请求并获得用户的授权以监视通过用户的硬件设备102对一个或多个第三方服务提供商108的一个或多个服务器作出的用户活动。

在某些实施例中,模式模块308可以基于检测到的一个或多个用户的访问模式的变化等而随时间更新模式/有序列表。在一个实施例中,模式模块308可以与如下所述的访问修复模块310协调和/或协作,以响应于对第三方服务提供商108的服务器108和/或与用户相关的数据变得中断和/或无法访问而更新模式/有序列表。

在一个实施例中,访问修复模块310检测到对第三方服务108的服务器108的访问和/或与用户相关的数据中断和/或变得不可访问。在某些实施例中,访问修复模块310向用户提供接口,以允许用户以图形方式识别用户电子凭证的输入位置、与用户相关的数据的位置等。例如,访问修复模块310可以提供gui、命令行接口(cli)、api和/或允许终端用户识别电子凭证的输入位置、提交电子凭证的动作、数据的位置等的另一接口。在一个实施例中,访问修复模块310在用户的硬件设备102上向用户提供接口。

在某些实施例中,例如,如下面根据图5a-5b更详细描述的,访问修复模块310可以将接口叠加在用户的硬件设备102的电子显示屏上的第三方服务提供商108的网站的一个或多个页面上。访问修复模块310可以向多个用户提供一个或多个接口(例如,gui、cli、api、叠加等),以允许多个用户对用于访问第三方服务提供商108的服务器(例如,通过不同的硬件设备102或者网络106上的类似物以分布式和/或分散式的方式访问等)的修复和/或更新进行定义。

在某些实施例中,访问修复模块310可以确定和/或显示针对用户的一个或多个建议504和/或推荐504,用户可以对其进行确认或更改/修正(例如,在基本接口、标准接口、初始用户接口中,等等)。例如,访问修复模块310可以显示一个或多个接口元素,其具有供用户输入用户名的建议位置、供用户输入密码的建议位置、建议的凭证提交动作、建议的与以用户有关的数据的位置和/或允许用户以图形方式识别第三方服务提供商108的网站内的一个或多个位置的一个或多个其他接口元素。

在某些实施例中,访问修复模块310处理服务器108上的一个或多个页面和/或其他位置(例如,一个或多个网站、网络应用程序等)以确定对用户电子凭证的输入位置、提交用户的电子凭证的动作、与用户相关的数据的位置等的估计和/或预测。在一个实施例中,访问修复模块310可以估计一个或多个位置和/或动作(例如,通过扫描和/或解析网站的一个或多个页面,基于来自访问网站的一个或多个页面的其他用户的输入,基于用户与网站的一个或多个页面的先前交互,使用网站的机器学习和/或人工智能分析进行的预测,基于对网站和/或一个或多个类似网站的一个或多个页面的历史变化的统计分析,等等)。访问修复模块310可以在接口中向用户显示对于用户的电子凭证的输入位置、与用户相关联的数据的位置等的估计和/或预测,以使得用户可以使用该接口确认估计和/或预测是否正确。

访问修复模块310可以使用指向位置的箭头或其他指向指示符;位置的链接或其他标识符;围绕位置的框或其他高亮显示;通过改变位置的文本标签来使文本变成粗体、斜体和/或加下划线等等,来指示一个或多个估计的位置和/或动作。在某些实施例中,用户可以点击、选择或以其他方式识别位置以确认或改变/校正访问修复模块310建议的位置。例如,用户可以点击或以其他方式选择与位置和/或动作相关的接口元素,并且可以点击或以其他方式选择该位置和/或执行该动作,访问修复模块310可以对上述操作进行记录(例如,自动填写标识位置和/或动作的文本字段、记录供不同用户使用的在没有用户的情况下可自动重复的动作的宏等等)。

在某些实施例中,替代或除了标准、基本或初始用户接口之外,访问修复模块310可以为有经验的用户等提供高级接口,其具有网站的源代码和/或网站的其他细节。例如,在一个实施例中,高级访问修复接口可以允许一个或多个高级用户识别网站的源代码内的一个或多个位置和/或动作,其在网站本身中可能不可见和/或不明显。在某些实施例中,访问修复模块310可以提供用户接口元素,其允许用户在标准用户接口或视图与高级用户接口或视图之间选择和/或切换接口。

在一个实施例中,测试模块318与访问修复模块310协作以验证从用户接收到的一个或多个位置和/或指令是否准确(例如,可用于访问第三方服务提供商108的服务器的数据)。在某些实施例中,测试模块318试图基于访问修复模块310从单个用户接收到的标识,使用不同用户的电子凭证等访问用于多个不同用户(例如,样本组或测试集)的第三方服务提供商108的服务器108。

在某些实施例中,测试模块318确定是否可以使用单个用户的标识访问与不同用户(例如,样本组或测试集)相关的数据。测试模块318可以使用访问修复模块310从不同用户接收到的标识(例如,在不同的硬件设备102上,并通过数据网络106发送到单个硬件设备102上的测试模块318、通过数据网络106发送到不同硬件设备102上的多个测试模块318、发送到中央后端服务器110上的测试模块318,等等),重复尝试访问第三方服务提供商108的数据。

在一个实施例中,测试模块318将来自用户的一个或多个标识提供给直接访问模块204的其他实例(例如,其他测试模块318),以响应于满足阈值的不同用户(例如,样本组或测试集)的数量而访问第三方服务提供商108的服务器108,其中,该多个不同用户可使用单个用户的标识访问服务器108的数据。例如,如果单个用户的标识成功地允许预定数量的其他测试用户(例如,2个用户、10个用户、100个用户、1000个用户、50%的测试用户、75%的测试用户和/或另一个预定阈值数量的测试用户)通过第三方服务提供商108访问她们的数据,则测试模块318可以基于该标识向更多用户(例如,全部或基本上所有用户等)提供指令。

在某些实施例中,测试模块318可以逐步地增加包括多个用户的测试范围,其中,测试模块318向多个用户提供使用单个用户的标识从第三方服务提供商108访问她们的数据的指令(例如,从一个或多个测试用户开始,增加到两个或更多个、三个或更多个、四个或更多个、五个或更多个、十个或更多个、二十或更多个、三十或更多个、四十或更多个、五十或更多个、一百或更多个、五百或更多个、一千或更多个、五千或更多个、一万或更多个、十万或更多个、百万或更多个、和/或其他逐步增加的测试用户数量)。在一个实施例中,如下面根据层级模块312所更具体的描述的,测试模块318包括基于单个用户的标识的指令,该指令在用于访问第三方服务提供商108的服务器108的多个不同的指令组的有序列表中。

在某些实施例中,测试模块318被配置为基于一个或多个用户的一个或多个信任因子(例如,分数等)对一个或多个用户的标识进行优先级排序。在一个实施例中,信任因子可以包括指示用户标识正确的可能性的分数或其他元数据。例如,在各种实施例中,信任因子可以包括和/或基于用户的先前标识的历史(例如,正确或不正确),用户与一个或多个聚合模块104的提供商(例如,创建者、卖主、所有者、销售者、转售者、制造商、后端服务器110等)的密切关系,来自其他用户的积极和/或消指示(例如,投票、喜欢、使用、反馈、星号评价、认可等等),和/或用户标识是否可能是正确的其他指示。测试模块318可以基于与用户相关的一个或多个信任因子来确定有多少其他用户提供用户的标识(例如,响应于较高的信任因子而加快向其他用户提供用户标识的速率,响应于较低的信任因子而降低向其他用户提供用户标识的速率,等等)

测试模块318可以提供叠加接口,其允许管理员、调节者用户等移除标识、调整和/或叠加标识、调整和/或叠加用户的信任因子、禁止用户提供标识、和/或以其他方式叠加用户或用户的标识。在各种实施例中,测试模块318可以向管理员和/或调节者提供如gui,api,cli等的叠加接口。

在某些实施例中,当测试模块318测试并使用最有效的解决方案等(例如,基于来自一个或多个用户的指示的多组指令)时,测试模块318使一个或多个聚合模块104及其聚合服务自我修复、自测试和/或自递增部署。

在一个实施例中,层级模块312向直接访问模块204提供多个不同的指令组的有序列表,该多个不同的指令组用于使用用户的电子凭证访问第三方服务提供商108的服务器108、用于下载与用户相关的数据等。在某些实施例中,每个不同的一组指令包括输入用户的电子凭证的位置、提交用户的电子凭证的指令、与用户相关的数据的一个或多个位置等。

在一个实施例中,层级模块312可以从后端服务器110(例如,后端服务器110的后端聚合模块104b)、以点对点方式从另一个用户硬件设备102(例如,用户硬件设备102的聚合模块104a)、从测试模块318等接收一组或多组指令。在某些实施例中,层级模块312可基于不同用户硬件设备102和/或用户等对多个不同的指令组的成功和/或不成功使用的历史记录,接收已经存在于有序列表(例如,全局分级次序)中的多个不同的指令组。在一个实施例中,层级模块312可以基于用户(例如,通过用户的一个或多个硬件设备102)对多个不同的指令组的成功和/或不成功使用的历史记录,从多个不同的指令组中为单个用户确定层级和/或创建有序列表(例如,定制或个性化层级)。

在一个实施例中,直接访问模块104可以按照列表的顺序遍历用于访问第三方服务提供商108的服务器108的多组指令的有序列表,直到其中一组指令是成功的并且直接访问模块104能够从第三方服务提供商108访问和/或下载数据。在一个实施例中,层级模块312可以将最近最成功使用的一组指令放置在顶部(例如,作为尝试的第一组指令)。例如,用户的硬件设备102的层级模块312可以响应于直接访问模块204使用一组指令成功从第三方服务提供商108访问和/或下载数据而将该组用于访问第三方服务提供商108的指令放置在列表的顶部(例如,随着时间调整列表的顺序)。在某些实施例中,层级模块312可以接收以第一顺序(例如,全局顺序)排列的用于访问第三方服务提供商108的服务器108的多个不同的指令组的有序列表,并且可以基于单个用户/硬件设备102的使用而随着时间推移动态地调整和/或重新排列多个不同的指令组(例如,如果使用一组指令进行访问对于用户/硬件设备102来说是成功的,则将该组指令在列表中向上移动,如果使用一组指令进行访问对于用户/硬件设备102来说是不成功的,则将该组指令在列表中向下移动)。

在某些实施例中,层级模块312可以被配置为通过数据网络106与另一个用户的硬件设备102的层级模块312共享一组或多组指令、多组指令的有序列表等(例如,以点对点的方式和另一个用户的硬件设备102直接共享,以后端服务器110的后端聚合模块104b的方式间接共享)。在各种实施例中,由于不同的账户类型、不同的账户设置、不同的源系统(例如,由于公司收购等,同一第三方服务提供商108的不同用户可能具有一个或多个不同的设置,不同的访问方法等),系统改变或升级,和/或同一第三方服务提供商108的不同用户的账户、服务等的其他差异,多个不同的指令组对于不同的用户来说可能会成功,也可能会失败。

在一个实施例中,路由模块314确定用户的硬件设备102是否可用于直接访问模块204从第三方服务提供商108的服务器108下载与用户相关的数据。在某些实施例中,路由模块314可以响应于路由模块314确定用户的硬件设备102不可用,而使用用户的电子凭证通过远程后端服务器110访问第三方服务提供商108的服务器108以将与用户相关的数据从服务器108下载到远程后端服务器110。在一个实施例中,路由模块314基于下载到远程后端服务器110的与用户相关的数据,在用户的硬件设备102上向用户提供一个或多个警报(例如,从第三方服务提供商108下载的数据、基于来自第三方服务提供商108的数据而确定的推荐或建议、基于在来自第三方服务提供商108的数据中检测到的事件或其他触发而发出的通知或其他警报,等等)。

在某些实施例中,路由模块314保持和/或存储与单个用户和/或账户相关联的多个硬件设备102的列表。响应于确定与用户和/或账户相关联的一个硬件设备102不可用(例如,断电、处于飞行模式、未连接到数据网络106等),路由模块314可以通过用户和/或账户的不同的可用硬件设备102访问第三方服务提供商108的服务器108,可以在不同的可用硬件设备102上提供一个或多个通知或其他警报等。在下面根据图4a-4c所描述的各种实施例中,路由模块314可以以安全的方式在多个硬件设备之间向用户动态地路由从第三方服务提供商108下载的数据,例如,该多个硬件设备是用户的一个或多个硬件设备102、不同用户的一个或多个硬件设备102、一个或多个后端服务器110和/或另一个硬件设备。

在一个实施例中,路由模块314可以在用于为同一用户周期性地从第三方服务提供商108下载数据的多个硬件设备102,110(例如,同一用户、不同用户的硬件设备,等等)之间交替或循环。例如,对从其下载数据的设备102,110进行循环和/或交替可以降低下载被错误解读为欺诈或不适当的可能性。在另一个实施例中,路由模块314可以从相同的设备102,110(例如,用户的主硬件设备102、后端服务器110等)下载数据,该设备可以被第三方服务提供商108授权和/或标识为可信设备,等等。

在一个实施例中,频率模块316设置直接访问模块204访问第三方服务提供商108的服务器108的频率。在某些实施例中,频率模块316基于来自可独立于被访问的第三方服务提供商108的远程后端服务器110的输入来确定频率,以使得远程后端服务器110(例如,在远程后端服务器110上执行的频率模块316)确定用于不同用户和/或不同硬件设备102的多个直接访问模块204的频率。例如,频率模块316可以限制单个用户和/或硬件设备102在一段时间内访问相同的第三方服务提供商108的次数不超过允许的阈值次数(例如,每十分钟一次、每半小时一次、每小时一次、一天两次、一天三次、一天四次等)。在某些实施例中,频率模块316限制访问频率以防止第三方服务提供商108无意拒绝服务等。

在某些实施例中,频率模块316可以随着时间动态地调整用户和/或硬件设备102可以访问第三方服务提供商108的频率。例如,频率模块316可以监视多个用户(例如,所有用户、可用用户、活跃用户等)的访问和/或下载以限定或限制对不同的第三方服务提供商108中的每一个的总访问和/或下载带宽(例如,以免过度使用任何单个第三方服务提供商108等)。在一个实施例中,通过这种方式,当较少的其他用户和/或硬件设备102正在访问和/或下载数据时(例如,低峰时间),用户和/或硬件设备102可以以更高的频率访问和/或下载数据,但是当较多其他用户和/或硬件设备102正在访问和/或下载数据时(例如,高峰时间),可以将用户和/或硬件设备102限制为较低的上限或访问频率。

在另外的实施例中,频率模块316基于用户的输入来确定频率,以允许用户独立于其他用户和/或后端服务器110来设置访问频率。频率模块316可以提供用户接口(例如gui,cli,api等),该接口允许用户设置和/或调整使用一个或多个硬件设备102从一个或多个第三方服务提供商108下载数据的访问频率(例如,提供不同的设置,以允许用户为不同的第三方服务提供商108、用户的不同硬件设备102等设置不同的访问频率)。

图4a示出了分布式/分散式数据聚合的系统400的一个实施例。在所示的实施例中,系统400包括具有聚合模块104a的单个用户硬件设备102。在某些实施例中,聚合模块104a的认证模块202可以在用户的硬件设备102上本地存储和/或管理用户的电子凭证,直接访问模块204可以直接从用户的硬件设备102(例如,通过数据网络106)访问一个或多个第三方服务提供商108以将与该用户相关的数据下载到用户的硬件设备102,接口模块206可以基于来自用户的硬件设备102的数据向用户提供数据和/或一个或多个警报/消息,等等。在示出的系统400中,聚合模块104a可以在用户的硬件设备102上为用户创建来自一个或多个第三方服务提供商108的数据的本地存储库,而无需将用户的凭证、用户的数据等提供给不同用户的硬件设备、后端服务器110等。

图4b示出了分布式/分散式数据聚合的系统402的一个实施例。在所示的实施例中,系统402包括与不同用户相关联的具有聚合模块104a的多个用户硬件设备102。在某些实施例中,第一聚合模块104a(例如,第一聚合模块104a的认证模块202)可以通过数据网络106等将加密的第一用户的用户凭证从第一用户的硬件设备102a安全地提供给第二聚合模块104a(例如,第二聚合模块104a的认证模块202),以使得第二聚合模块104a的直接访问模块204可以通过第二用户的硬件设备102b访问一个或多个第三方服务提供商108(例如,通过数据网络106)以下载与第一用户相关的数据。

例如,第二用户的硬件设备102b可以响应于如由路线模块314等所确定的第一用户的硬件设备102a断电、休眠、被阻止访问一个或多个第三方服务提供商108等,而为第一用户下载数据。第二聚合模块104a的接口模块206可以基于下载的数据向第一用户提供一个或多个警报/消息,和/或可以将下载的数据提供给第一用户(例如,响应于第一用户的硬件设备102a变为可用,而将其提供给与第一用户相关联的不同硬件设备102,提供给第一用户可以访问的后端服务器110等)。如上所述,在某些实施例中,认证模块202、直接访问模块204、接口模块206和/或路由模块314可以加密和/或以其他方式保护第一用户的数据(例如,第一用户的电子凭证、下载的与第一用户相关的数据、针对第一用户的警报/消息),以使得第二用户难以或不可能访问第一用户的数据,从而防止和/或最小化对第一用户的数据的未经授权的访问,同时可以在下载第一用户的数据的设备102和/或位置中提供更大的灵活性。

图4c示出了分布式/分散式数据聚合系统404的一个实施例。在所示的实施例中,系统404包括具有一个或多个聚合模块104a的一个或多个用户硬件设备102以及包括一个或多个后端聚合模块104b的一个或多个后端服务器110。在某些实施例中,聚合模块104a的认证模块202可以通过数据网络106等将用户的加密用户凭证从用户的硬件设备102安全地提供给后端服务器110上的后端聚合模块104b(例如,后端聚合模块104b的认证模块202),以使得后端聚合模块104b的直接访问模块204可以通过后端服务器110访问一个或多个第三方服务提供商108(例如,通过数据网络106)以下载与用户相关的数据。

例如,后端服务器110可以响应于如由路由模块314等确定的用户的硬件设备102a断电、休眠、被阻止访问一个或多个第三方服务提供商108等而下载用户的数据。后端聚合模块104b的接口模块206可以基于下载的数据向用户提供一个或多个警报/消息,和/或可以向用户提供下载的数据(例如,响应于用户的硬件设备102a变得可用,而直接从作为网页的后端服务器110和/或通过专用应用程序等等,提供给与第一用户相关联的不同硬件设备102)。

图5a示出了用户接口500的一个实施例。在某些实施例中,接口500由访问修复模块310在硬件设备102的电子显示屏幕上提供给用户,以允许用户图形地识别用户凭证的一个或多个输入位置(例如,用户名的位置、密码的位置等)、用于发送和/或提交用户的凭证的方法(例如,api规范、提交按钮的位置等)、与用户相关的数据的位置(例如,url或其他链接;链接的网页上的位置;网页506的纯文本和/或源代码内的标签、标记或其他标识符;等等)和/或以图形方式识别用于从第三方服务提供商108访问与用户相关的数据的一个或多个其他指令。

在所示的实施例中,访问修复模块310将接口502叠加在用户的硬件设备102的电子显示屏幕上的第三方服务提供商108的网站506的一个或多个页面上。如上所述,在各种实施例中,访问修复模块310可以包括在互联网浏览器内提供接口502的浏览器插件和/或扩展、可以包括在访问修复模块310的应用程序内的嵌入式浏览器、或者可以以其他方式与互联网浏览器集成和/或与通信。

在所示的实施例中,访问修复模块310确定和/或显示对用户的一个或多个建议504和/或推荐504,用户可以确认或改变/修正该建议504和/或推荐504。例如,访问修复模块310可以显示具有供用户输入用户名的建议位置的接口元素504a、具有供用户输入密码的建议位置的接口元素504b、具有建议的凭证提交动作的接口元素504c、具有与用户相关的数据的建议位置的接口元素504d、和/或允许用户图形地识别第三方服务提供商108的网站506内的一个或多个位置的一个或多个其他接口元素。

在一个实施例中,接口元素504可以包括访问修复模块310已经确定(例如,通过扫描和/或解析网站506的一个或多个页面、基于来自访问网站506的一个或多个页面的其他用户的输入、基于用户与网站506的一个或多个页面的先前的交互、使用对网站506的机器学习和/或人工智能分析进行的预测,基于对网站506和/或一个或多个类似网站的一个或多个页面的历史改变的统计分析,等等)的估计位置和/或动作的一个或多个标识符,例如,指向位置的箭头或其他指向指示符;位置的链接或其他标识符;围绕位置的框或其他高亮显示;改变位置的文本标签来使文本变成粗体、斜体和/或加下划线;等等。在某些实施例中,用户可以点击、选择或以其他方式识别位置以确认或改变/校正访问修复模块310建议的位置。例如,用户可以点击或以其他方式选择与位置和/或动作相关的接口元素504(例如,以激活选择的接口元素504),并且可以点击或以其他方式选择该位置和/或执行该动作,访问修复模块310可以对上述操作进行记录(例如,例如,自动填写标识位置和/或动作的文本字段、记录允许在没有用户情况下动作自动重复的宏等等)。

在一个实施例中,用户可以与网站506交互以便定位和/或识别一个或多个位置,执行一个或多个动作等。例如,在某些实施例中,用户可以导航到网站506内的一个或多个不同页面,可以使用用于网站506的用户的电子凭证登录到网站506,可以导航到不同网站506,可以导航到网站506和/或从网站506下载与用户相关的数据,可以以通常的方式使用网站506等。如上面针对模式模块308所描述的,在一个实施例中,模式模块308可以监视用户对网站506的访问模式,以允许直接访问模块204在访问网站、从网站506下载与用户相关的数据等时至少部分地模拟用户的访问模式506。在所示出的实施例中,访问修复模块310(和/或相关联的浏览器)显示网站506的浏览器视图,其中的文本、图像和/或其他元素显示了互联网浏览器实质上将如何显示网站506,外加将在网站506上显示的接口502添加到网站506的一侧,等等。

图5b示出了用户接口510的一个实施例。虽然以上描述的用户接口500包括网站506的一个或多个页面的渲染的浏览器视图,但是在图5b的接口510的一个实施例中,访问修复模块310(和/或相关联的浏览器)显示的是网站506的源代码516。例如,在一个实施例中,用户接口500可以包括标准访问修复接口,并且用户接口510可以包括高级访问修复接口,以允许一个或多个高级用户识别网站506的源代码516内的一个或多个位置和/或动作,这在网站506自身中可能不可见和/或不明显。在某些实施例中,用户可以在标准用户接口500或视图与高级用户接口510或视图之间进行选择和/或切换。

在所示的实施例中,访问修复模块310在显示的源代码516上方和/或与显示的源代码516相邻地显示用户接口512,其中基本上如上所述,一个或多个接口元素514a-d允许用户识别一个或多个位置、动作等。在所示的实施例中,访问修复模块310显示对位置和/或动作的一个或多个建议和/或估计,用户可以对其进行确认和/或改变/修正。在各种实施例中,用户可以通过选择和/或激活接口元素514并选择一部分源代码516,通过拖动一部分源代码516并将该部分源代码516放到接口元素514上,通过将一部分源代码516切割并粘贴到接口元素514中,和/或以其他方式基于源代码516识别位置和/或动作接口来识别源代码516中的位置和/或动作。

在某些实施例中,响应于用户识别一个或多个位置和/或动作(例如,用于输入、提交和/或发送电子凭证;用于定位和/或下载数据等),访问修复模块310可以与测试模块318协作以对所识别的一个或多个位置和/或动作执行现场和/或实时测试,以确定所识别的一个或多个位置的有效性和/或可行性,同时接口500,510对用户可见和/或由用户使用,以允许用户在同一会话期间改变和/或校正所提供的信息。例如,访问修复模块310可以向用户显示测试按钮或其他用户接口元素,用户可以选择和/或激活该测试按钮或其他用户接口元素以启动测试。在另一个实施例中,访问修复模块310可以响应于用户提供位置和/或动作而自动执行测试,其中用户不需要选择和/或激活测试按钮或其他用户接口元素。在另外的实施例中,测试模块318可以独立于访问修复模块310执行一个或多个测试,测试模块318具有或不具有访问修复模块310的功能。

图6示出了用于分布式数据聚合的方法600的一个实施例。方法600开始于认证模块202在用户的硬件设备102上从用户接收602用于第三方服务提供商108的用户的电子凭证。直接访问模块204使用用户的电子凭证通过用户的硬件设备102访问604第三方服务提供商108的服务器108。直接访问模块204将与用户相关的数据从第三方服务提供商108的服务器108下载606到用户的硬件设备102。

图7示出了用于分布式和/或分散式数据聚合的方法700的一个实施例。方法700开始于认证模块202确定702用于多个第三方服务提供商108的用户的电子凭证。直接访问模块204使用所确定702的电子凭证来访问704多个第三方服务提供商108的服务器。直接访问模块204通过多个第三方服务提供商108的被访问704的服务器下载706与用户相关的数据。

直接访问模块204对从多个不同的第三方服务提供商108下载706的数据进行聚合708。接口模块206将聚合708的数据提供710给用户(例如,在用户的硬件设备102上显示数据,向用户的硬件设备102发送警报或其他消息,将该数据发送到用户可以使用web接口和/或api等来访问的独立于第三方服务提供商108的远程后端服务器110,等等),方法700结束。

图8示出了用于分布式和/或分散式数据聚合的方法800的另一个实施例。方法800开始于网络认证模块304接收802用于一个或多个第三方服务提供商108的用户的电子凭证。密码管理器模块306生成804用于一个或多个第三方服务提供商108的新的和/或不同的电子凭证并利用生成804的电子凭证更新用户在一个或多个第三方服务提供商108的账户。

访问修复模块310确定806对一个或多个第三方服务提供商108的访问是否存在改变(例如,访问是否中断或不可用、访问是否是一部分或者不完整、访问带宽是否比先前确定的慢、和/或是否在访问中发生了另一次改变)。如果访问修复模块310确定806第三方服务提供商108的访问已改变,则访问修复模块310向用户提供808图形用户接口500,510。访问修复模块310通过提供808的图形用户接口500,510接收810用于认证用户和/或从第三方服务提供商108下载数据的一个或多个位置和/或动作的标识。测试模块318使用接收810的一个或多个位置和/或动作的标识来测试812对第三方服务提供商108的访问。响应于测试模块318的成功测试812,测试模块318和/或模式模块308将用于基于接收810的一个或多个位置和/或动作的标识来访问第三方服务提供商108和/或从第三方服务提供商108下载数据的指令提供814给与一个或多个不同用户相关联的一个或多个直接访问模块204。

路由模块314确定816与用户相关联的硬件设备102是否可用。响应于路由模块314确定816与用户相关联的硬件设备102可用,直接访问模块204通过与用户相关联的可用硬件设备102从与一个或多个第三方服务提供商108下载818与用户相关的数据。

响应于路由模块314确定816与用户相关联的硬件设备102不可用,不同设备(例如,不同用户的硬件设备102、后端服务器110等)的直接访问模块204通过不同设备从一个或多个第三方服务提供商108下载820与用户相关的数据。路由模块314(例如,在不同的设备102,110上的路由模块)基于下载820的数据确定822警报或其他消息是否对于用户可用,并且响应于确定822警报或其他消息可用而将警报或其他消息推送824和/或以其他方式发送到与用户相关联的设备(例如,不可用的设备102)。例如,在一个实施例中,用户的硬件设备102可能不可用于下载数据(例如,断电、离线、休眠、使用移动数据而不是wi-fi等),但可以接收推送824的警报或其他消息(例如,通过不同的方式,例如文本消息、语音邮件、电子邮件、推送通知等)和/或响应于在稍后的时间变得可用而可以接收推送824的警报或其他消息。

接口模块206向用户提供826下载818,820的数据和/或推送824的警报(例如,在用户的硬件设备102上显示数据、在用户的硬件设备102上显示推送/发送824的警报或其他消息、将该数据发送到用户可以使用web接口和/或api等来访问的独立于第三方服务提供商108的远程后端服务器110)。在某些实施例中,方法800继续周期性地确定806对第三方服务提供商108的访问是否存在改变、确定816用户的硬件设备102是否可用、下载818,820与用户相关的数据、和/或向用户提供826下载的数据和/或推送824的警报或其他消息等。

在各种实施例中,一种用于在用户的硬件设备102上确定用于第三方服务提供商108的用户的电子凭证的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、认证模块202、本地认证模块302、网络认证模块304、密码管理器模块306、聚合模块104、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于在用户的硬件设备102上确定用于第三方服务提供商108确定用户的电子凭证的类似或等同装置。

在各种实施例中,用于使用用户的电子凭证通过用户的硬件设备102访问第三方服务提供商108的服务器108的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、直接访问模块204、模式模块308、访问修复模块310、层级模块312、聚合模块104、网络接口、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于使用用户的电子凭证通过用户的硬件设备102访问第三方服务提供商108的服务器108的类似或等同装置。

在各种实施例中,用于将与用户相关的数据从第三方服务提供商108的服务器108下载到用户的硬件设备102的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、直接访问模块204、模式模块308、访问修复模块310、层级模块312、聚合模块104、网络接口、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于将与用户相关的数据从第三方服务提供商108的服务器108下载到用户的硬件设备102的类似或等同装置。

在各种实施例中,一种用于对从独立于从其下载数据的第三方服务提供商108的远程设备110,102的用户的硬件设备102下载的数据进行打包的装置可包括以下中的一个或多个:硬件设备102、后端服务器110、接口模块206、聚合模块104、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于对从独立于从其下载数据的第三方服务提供商108的远程设备110,102的用户的硬件设备102下载的数据进行打包的类似或等同装置。

在各种实施例中,一种用于将下载的数据从用户的硬件设备102提供到独立于从其下载数据的第三方服务提供商108的远程设备110,102的装置可以包括以下中的一个或多个:硬件设备102、后端服务器110、接口模块206、聚合模块104、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于将下载的数据从用户的硬件设备102提供到独立于从其下载数据的第三方服务提供商108的远程设备110,102的类似或等同装置。

在各种实施例中,一种用于执行本文描述的其他方法步骤的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、认证模块202、本地认证模块302、网络认证模块304、密码管理器模块306、直接访问模块204、模式模块308、访问修复模块310、层级模块312、接口模块206、路由模块314、频率模块316、测试模块318、聚合模块104、网络接口、处理器(例如,中央处理单元(cpu)、处理器内核、现场可编程门阵列(fpga)或其他可编程逻辑、专用集成电路(asic)、控制器、微控制器和/或另一个半导体集成电路设备)、hdmi或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于执行本文描述的其他方法步骤的类似或等同装置。

在不脱离本发明的精神或基本特征的情况下,可以以其他具体形式来实施本发明。所描述的实施例在所有方面仅被认为是示例性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来表示。在权利要求的等同物的含义和范围内的所有变化都将包含在其范围内。

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