HK1254467B - Distributed, decentralized data aggregation - Google Patents
Distributed, decentralized data aggregation Download PDFInfo
- Publication number
- HK1254467B HK1254467B HK18113553.2A HK18113553A HK1254467B HK 1254467 B HK1254467 B HK 1254467B HK 18113553 A HK18113553 A HK 18113553A HK 1254467 B HK1254467 B HK 1254467B
- Authority
- HK
- Hong Kong
- Prior art keywords
- user
- party service
- data
- module
- service provider
- Prior art date
Links
Description
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求John Ryan Caldwell的2016年5月27日提交的题为“DISTRIBUTED,DECENTRALIZED DATA AGGREGATION”的美国专利申请号15/167,650、John Ryan Caldwell的2015年11月12日提交的题为“DISTRIBUTED DATA AGGREGATION”的美国临时专利申请号62/254,708、以及Ryan Caldwell的2016年1月18日提交的题为“DISTRIBUTED,DECENTRALIZED DATA AGGREGATION”的美国临时专利申请号62/280,070权益,藉此通过引用的方式将其中的每一个整体并入本文中。This application claims the benefit of U.S. patent application No. 15/167,650, filed on May 27, 2016, to John Ryan Caldwell, entitled “DISTRIBUTED, DECENTRALIZED DATA AGGREGATION,” U.S. Provisional Patent Application No. 62/254,708, filed on November 12, 2015, to John Ryan Caldwell, entitled “DISTRIBUTED DATA AGGREGATION,” and U.S. Provisional Patent Application No. 62/280,070, filed on January 18, 2016, to Ryan Caldwell, entitled “DISTRIBUTED, DECENTRALIZED DATA AGGREGATION,” each of which is hereby incorporated by reference herein in its entirety.
技术领域Technical Field
本发明涉及用户数据的所有权和收集,并且更具体地涉及来自与用户相关联的硬件设备的多个用户的数据的分布式和/或分散式聚合。The present invention relates to the ownership and collection of user data, and more particularly to the distributed and/or decentralized aggregation of data from multiple users of hardware devices associated with the users.
背景技术Background Art
随着越来越多的用户数据移动到云中,用户越来越难以控制、下载和/或使用用户自己的个人数据。用户从服务提供商的围墙花园导出数据可能特别困难,服务提供商可能采取多种技术措施来防止用户访问服务提供商的生态系统之外的用户数据。即使第三方具有用户的授权和登录凭证,服务提供商也可以阻止第三方的一个或多个互联网协议(IP)地址(例如,聚合器服务)访问来自服务提供商的用户数据。As more and more user data moves to the cloud, it becomes increasingly difficult for users to control, download, and/or use their own personal data. It can be particularly difficult for users to export data from a service provider's walled garden, as service providers may implement various technical measures to prevent users from accessing user data outside of the service provider's ecosystem. A service provider may block one or more Internet Protocol (IP) addresses of a third party (e.g., an aggregator service) from accessing user data from the service provider, even if the third party has the user's authorization and login credentials.
发明内容Summary of the Invention
提出了一种用于分布式和/或分散式数据聚合的方法。在一个实施例中,方法包括确定用于多个第三方服务提供商的用户的电子凭证。在另一个实施例中,方法包括使用用户的确定的电子凭证,通过与所述用户相关联的硬件设备访问所述第三方服务提供商中的每个,以从所述第三方服务提供商下载与所述用户相关联的数据。在某些实施例中,方法包括对来自所述第三方服务提供商的下载的数据进行聚合,并基于聚合的下载的数据在所述硬件设备上向所述用户提供一个或多个通信信息。A method for distributed and/or decentralized data aggregation is presented. In one embodiment, the method includes determining electronic credentials of a user for a plurality of third-party service providers. In another embodiment, the method includes using the user's determined electronic credentials to access each of the third-party service providers via a hardware device associated with the user to download data associated with the user from the third-party service providers. In certain embodiments, the method includes aggregating the downloaded data from the third-party service providers and providing one or more communications to the user on the hardware device based on the aggregated downloaded data.
提出了一种用于分布式和/或分散式数据聚合的系统。在一个实施例中,多个聚合模块位于不同用户的硬件设备上。在某些实施例中,所述多个聚合模块从所述不同用户接收用于多个不同的第三方服务提供商的电子凭证。在一个实施例中,所述多个聚合模块使用接收到的电子凭证从所述不同的第三方服务提供商下载与所述不同用户相关联的数据。在另一个实施例中,后端服务器从所述不同的第三方服务提供商接收与所述不同用户相关联的下载的数据。在某些实施例中,后端服务器对来自所述多个不同的第三方服务提供商的所述不同用户中的每个的数据分离地聚合。在一个实施例中,后端服务器通过一个或多个通信信道,将基于分离聚合的数据的一个或多个通信信息单独地提供给所述不同用户。A system for distributed and/or decentralized data aggregation is proposed. In one embodiment, multiple aggregation modules are located on hardware devices of different users. In some embodiments, the multiple aggregation modules receive electronic credentials for multiple different third-party service providers from the different users. In one embodiment, the multiple aggregation modules use the received electronic credentials to download data associated with the different users from the different third-party service providers. In another embodiment, a back-end server receives downloaded data associated with the different users from the different third-party service providers. In some embodiments, the back-end server separately aggregates data for each of the different users from the multiple different third-party service providers. In one embodiment, the back-end server separately provides one or more communication messages based on the separately aggregated data to the different users via one or more communication channels.
提出了一种用于分布式和/或分散式数据聚合的设备。在一个实施例中,认证模块被配置为在用户的硬件设备上确定用于第三方服务提供商的所述用户的电子凭证。在某些实施例中,直接访问模块被配置为使用所述用户的电子凭证,通过所述用户的硬件设备访问所述第三方服务提供商的服务器。在另一个实施例中,直接访问模块被配置为将与所述用户相关联的数据从所述第三方服务提供商的服务器下载到所述用户的硬件设备。在一个实施例中,接口模块被配置为将来自所述用户的硬件设备的下载的数据打包给独立于所述第三方服务提供商的远程设备。在另一个实施例中,接口模块被配置为将下载的数据提供给所述远程设备。A device for distributed and/or decentralized data aggregation is presented. In one embodiment, an authentication module is configured to determine an electronic credential of a user for a third-party service provider on a hardware device of the user. In some embodiments, a direct access module is configured to access a server of the third-party service provider through the hardware device of the user using the electronic credential of the user. In another embodiment, the direct access module is configured to download data associated with the user from the server of the third-party service provider to the hardware device of the user. In one embodiment, an interface module is configured to package the downloaded data from the hardware device of the user to a remote device independent of the third-party service provider. In another embodiment, the interface module is configured to provide the downloaded data to the remote device.
在另一个实施例中,一种设备包括用于执行根据所公开的方法、装置和系统描述的各种步骤和操作的装置。提出了包括计算机可读存储介质的计算机程序产品。在某些实施例中,计算机可读存储介质存储计算机可用程序代码,可执行该计算机可用程序代码以执行根据所公开的方法、装置和系统描述的一个或多个操作。In another embodiment, a device includes means for performing various steps and operations described in accordance with the disclosed methods, apparatus, and systems. A computer program product including a computer-readable storage medium is also provided. In certain embodiments, the computer-readable storage medium stores computer-usable program code that is executable to perform one or more operations described in accordance with the disclosed methods, apparatus, and systems.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了容易理解本发明的优点,将通过参考在附图中示出的具体实施例来提出上面简要描述的本发明的更具体描述。应当理解,这些附图仅描述了本发明的典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图来描述和解释本发明的附加的特征和细节,其中:In order that the advantages of the present invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof that are illustrated in the accompanying drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, additional features and details of the invention will be described and explained through the use of the accompanying drawings, in which:
图1是示出用于分布式/分散式数据聚合的系统的一个实施例的示意性框图;FIG1 is a schematic block diagram illustrating one embodiment of a system for distributed/decentralized data aggregation;
图2是聚合模块的一个实施例的示意性框图;FIG2 is a schematic block diagram of one embodiment of an aggregation module;
图3是聚合模块的另一个实施例的示意性框图;FIG3 is a schematic block diagram of another embodiment of an aggregation module;
图4A是示出分布式/分散式数据聚合的系统的附加实施例的示意性框图;FIG4A is a schematic block diagram illustrating an additional embodiment of a system for distributed/decentralized data aggregation;
图4B是示出分布式/分散式数据聚合的系统的又一个实施例的示意性框图;FIG4B is a schematic block diagram illustrating another embodiment of a system for distributed/decentralized data aggregation;
图4C是示出分布式/分散式数据聚合的系统的某个实施例的示意性框图;FIG4C is a schematic block diagram illustrating an embodiment of a system for distributed/decentralized data aggregation;
图5A是示出用户接口的一个实施例的示意性框图;FIG5A is a schematic block diagram illustrating one embodiment of a user interface;
图5B是示出用户接口的另一实施例的示意性框图;FIG5B is a schematic block diagram illustrating another embodiment of a user interface;
图6是示出用于分布式/分散式数据聚合的方法的一个实施例的示意流程图;FIG6 is a schematic flow chart illustrating one embodiment of a method for distributed/decentralized data aggregation;
图7是示出用于分布式/分散式数据聚合的方法的另一个实施例的示意性流程图;以及FIG7 is a schematic flow chart illustrating another embodiment of a method for distributed/decentralized data aggregation; and
图8是示出用于分布式/分散式数据聚合的方法的又一个实施例的示意流程图。FIG8 is a schematic flow chart illustrating yet another embodiment of a method for distributed/decentralized data aggregation.
具体实施方式DETAILED DESCRIPTION
在本说明书中,提到的“一个实施例”,“实施例”或类似语言表示结合该实施例描述的特定特征、结构或特性包括在至少一个实施例中。因此,在整个说明书中出现的短语“在一个实施例中”,“在实施例中”以及类似的语言可以但不一定都指代相同的实施例,除非另有明确规定,其指“一个或多个但不是全部的实施例”。除非另有明确说明,否则术语“包括”、“包含”、“具有”及其变型表示“包括但不限于”。除非另有明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥和/或相互包含的。除非另有明确规定,否则术语“一”,“一个”和“该”也指“一个或多个”。Throughout this specification, reference to "one embodiment," "an embodiment," or similar language indicates that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the phrases "in one embodiment," "in an embodiment," and similar language appearing throughout this specification may, but do not necessarily, refer to the same embodiment, and unless expressly specified otherwise, refer to "one or more but not all embodiments." Unless expressly specified otherwise, the terms "including," "comprising," "having," and variations thereof mean "including but not limited to." Unless expressly specified otherwise, an enumerated list of items does not mean that any or all items are mutually exclusive and/or mutually inclusive. Unless expressly specified otherwise, the terms "a," "an," and "the" also refer to "one or more."
此外,所描述的实施例的特征、优点和特性可以以任何合适的方式组合。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实施这些实施例。在其他情况下,在某些实施例中可以意识到可能不存在于所有实施例中的附加特征和优点。Furthermore, the features, advantages, and characteristics of the described embodiments may be combined in any suitable manner. Those skilled in the relevant art will recognize that the embodiments may be practiced without one or more of the specific features or advantages of a particular embodiment. In other cases, additional features and advantages may be realized in certain embodiments that may not be present in all embodiments.
根据以下描述和所附的权利要求,实施例的这些特征和优点将变得更加显而易见,或者可以通过实施如下所述的实施例来了解这些特征和优点。如本领域技术人员将理解的,本发明的各方面可以体现为系统、方法和/或计算机程序产品。因此,本发明的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,在此通常将软件和硬件方面称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采取体现在其上包含有程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。These features and advantages of the embodiments will become more apparent from the following description and the appended claims, or they can be understood by implementing the embodiments described below. As will be appreciated by those skilled in the art, aspects of the present invention may be embodied as systems, methods and/or computer program products. Therefore, aspects of the present invention may take the form of complete hardware embodiments, complete software embodiments (including firmware, resident software, microcode, etc.), or embodiments of combined software and hardware aspects, which are generally referred to herein as "circuits," "modules," or "systems." Additionally, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable media having program code thereon.
已经将本说明书中描述的许多功能单元标记为模块,以更特别强调它们的实施独立性。例如,模块可以实现为包括定制VLSI电路或门阵列、现成半导体(例如,逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编程硬件设备中实现。Many of the functional units described in this specification have been labeled as modules to more particularly emphasize their implementation independence. For example, a module can be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors (e.g., logic chips, transistors, or other discrete components). A module can also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, and the like.
模块还可以用软件来实现以供各种类型的处理器执行。程序代码的识别模块例如可以包括计算机指令的一个或多个物理或逻辑块,可以将该物理或逻辑块组织为例如对象、过程或功能。尽管如此,识别模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上连接在一起时构成模块并实现模块的所述目的。Modules can also be implemented in software for execution by various types of processors. An identified module of program code may, for example, comprise one or more physical or logical blocks of computer instructions, which may be organized, for example, into objects, procedures, or functions. Nevertheless, the executable files of an identified module need not be physically located together, but may comprise different instructions stored in different locations that, when logically connected together, constitute the module and achieve the stated purpose of the module.
实际上,程序代码模块可以是单个指令或多个指令,并且甚至可以分布在几个不同的代码段上,在不同的程序之间以及在几个存储器设备上。类似地,可以在模块内识别和示出操作数据,并且操作数据可以以任何合适的形式来体现并且可以被组织在任何适当类型的数据结构内。可以将操作数据收集为单个数据集,或者操作数据可以分布在包括不同存储设备的不同位置上,并且操作数据可以至少部分地仅作为系统或网络上的电子信号而存在。在以软件实现模块或模块的一部分的情况下,可以将程序代码存储和/或传送到一个或多个计算机可读介质中。In practice, a program code module can be a single instruction or multiple instructions, and can even be distributed across several different code segments, between different programs, and across several memory devices. Similarly, operational data can be identified and shown within a module, and the operational data can be embodied in any suitable form and can be organized within any appropriate type of data structure. The operational data can be collected as a single data set, or the operational data can be distributed across different locations including different storage devices, and the operational data can exist, at least in part, only as electronic signals on a system or network. Where a module or a portion of a module is implemented in software, the program code can be stored and/or transmitted to one or more computer-readable media.
计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon for causing a processor to perform aspects of the present invention.
计算机可读存储介质可以是可以保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何适当组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(“RAM”)、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”或闪存)、静态随机存取存储器(“SRAM”)、便携式光盘只读存储器(“CD-ROM”)、数字多功能盘(“DVD”)、记忆棒、软盘、机械编码的装置(例如,在其上记录有指令的凹槽中的穿孔卡或凸起结构)以及前述的任何适当组合。不应将这里使用的计算机可读存储介质解释为暂时信号本身,例如,无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory ("RAM"), a read-only memory ("ROM"), an erasable programmable read-only memory ("EPROM" or flash memory), a static random access memory ("SRAM"), a portable compact disc read-only memory ("CD-ROM"), a digital versatile disk ("DVD"), a memory stick, a floppy disk, a mechanically encoded device (e.g., a punched card or raised structure in a groove on which instructions are recorded), and any suitable combination of the foregoing. The computer-readable storage medium used herein should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
这里描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输装置、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing/processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and/or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmission devices, routers, firewalls, switches, gateway computers, and/or edge servers. The network adapter card or network interface in each computing/processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing/processing device.
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、与机器相关的指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如Smalltalk、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行,可以部分在用户的计算机上执行,作为独立的软件包,可以部分在用户的计算机上、部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过使用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便于执行本发明的各个方面。The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed completely on the user's computer, can be executed partly on the user's computer, as an independent software package, can be executed partly on the user's computer, partly on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In certain embodiments, the electronic circuit comprising, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute the computer-readable program instructions with personalized electronic circuits by using the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应该理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机可读程序指令来实现。Various aspects of the present invention are described herein with reference to flowcharts and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block in the flowcharts and/or block diagrams, and combinations of blocks in the flowcharts and/or block diagrams, can be implemented by computer-readable program instructions.
可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该指令可以指示计算机、可编程数据处理装置和/或其他设备以特定方式运行,这样其中存储有指令的计算机可读存储介质包括制品,制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions/actions specified in one or more blocks of the flowchart and/or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can instruct the computer, programmable data processing device, and/or other equipment to operate in a specific manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture, which includes instructions for implementing various aspects of the functions/actions specified in one or more blocks of the flowchart and/or block diagram.
还可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以生成计算机实现的过程,这样在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other device implement the functions/actions specified in one or more blocks of the flowchart and/or block diagram.
已经将本说明书中描述的许多功能单元标记为模块,以更特别强调它们的实现独立性。例如,模块可以实现为包括定制VLSI电路或门阵列、现成半导体(例如,逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编程硬件设备中实现。Many of the functional units described in this specification have been labeled as modules to more particularly emphasize their implementation independence. For example, a module can be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors (e.g., logic chips, transistors, or other discrete components). A module can also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, and the like.
模块还可以用软件来实现以供各种类型的处理器执行。程序指令的识别模块例如可以包括计算机指令的一个或多个物理或逻辑块,可以将该物理或逻辑块组织为例如对象、过程或功能。尽管如此,识别模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上连接在一起时构成模块并实现模块的所述目的。Modules can also be implemented in software for execution by various types of processors. An identification module of program instructions may, for example, comprise one or more physical or logical blocks of computer instructions, which may be organized into, for example, objects, procedures, or functions. Nevertheless, the executable files of the identification modules need not be physically located together, but may comprise different instructions stored in different locations that, when logically connected together, constitute the module and achieve the stated purpose of the module.
附图中的示意性流程图和/或示意性框图示出了根据本发明的各种实施例的装置、系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,示意性流程图和/或示意性框图中的每个框可以表示包括用于实现特定逻辑功能的程序代码的一个或多个可执行指令的代码的模块、段或部分。The schematic flow charts and/or schematic block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of the apparatus, system, method, and computer program product according to various embodiments of the present invention. In this regard, each block in the schematic flow charts and/or schematic block diagrams may represent a module, segment, or portion of code including one or more executable instructions of a program code for implementing a specific logical function.
还应该注意的是,在一些替代实施方式中,框中指出的功能可以不按照附图中指出的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果上等同于示出的附图的一个或多个块或其部分的其他步骤和方法。It should also be noted that, in some alternative implementations, the functions indicated in the blocks may occur out of the order indicated in the figures. For example, two blocks shown in succession may actually be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. Other steps and methods are contemplated that are equivalent in function, logic, or effect to one or more blocks, or portions thereof, of the figures shown.
尽管在流程图和/或框图中可以采用各种箭头类型和线型,但是将它们理解为不限制相应实施例的范围。实际上,一些箭头或其他连接符可用于仅指示描述的实施例的逻辑流程。例如,箭头可以指示所示实施例的列举的步骤之间的未指定持续时间的等待或监视时段。还将注意到,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行特定功能或动作的基于专用硬件的系统来实现,或由专用硬件和程序代码的组合来实现。Although various arrow types and line types may be employed in the flowcharts and/or block diagrams, they are to be understood as not limiting the scope of the corresponding embodiments. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the described embodiments. For example, arrows may indicate wait or monitoring periods of unspecified duration between enumerated steps of the illustrated embodiments. It will also be noted that each block in the block diagrams and/or flowcharts, and combinations of blocks in the block diagrams and/or flowcharts, may be implemented by a dedicated hardware-based system that performs a specific function or action, or by a combination of dedicated hardware and program code.
图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中。FIG1 illustrates one embodiment of a system 100 for distributed and/or decentralized data aggregation. In one embodiment, the system 100 includes one or more hardware devices 102, one or more aggregation modules 104 (e.g., a backend aggregation module 104b and/or multiple aggregation modules 104a disposed on one or more hardware devices 102), one or more data networks 106 or other communication channels, one or more third-party service providers 108 (e.g., one or more servers 108 of one or more service providers 108; one or more cloud or network service providers, etc.), and/or one or more backend servers 110. In some embodiments, even though a specific number of hardware devices 102, aggregation modules 104, data networks 106, third-party service providers 108, and/or backend servers 110 are depicted in FIG1 , those skilled in the art, based on the teachings of this disclosure, will recognize that any number of hardware devices 102, aggregation modules 104, data networks 106, third-party service providers 108, and/or backend servers 110 may be included in the system 100 for distributed data aggregation.
在一个实施例中,系统100包括一个或多个硬件设备102。硬件设备102(例如,计算设备、信息处理设备等)可以包括台式计算机、膝上型计算机、移动设备、平板电脑、智能电话、机顶盒、游戏机、智能电视、智能手表、健身手环、光学头戴式显示器(例如,虚拟现实头盔、智能眼镜等)、HDMI或其他电子显示软件狗、个人数字助理和/或另外的计算设备中的一个或多个,该另外的计算设备包括处理器(例如,中央处理单元(CPU))、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另外的半导体集成电路器件)、易失性存储器和/或非易失性存储介质。在某些实施例中,如下所述,硬件设备102经由数据网络106与一个或多个第三方服务提供商108的一个或多个服务器108和/或一个或多个后端服务器110通信。在另一个实施例中,硬件设备102能够执行各种程序、程序代码、应用程序、指令、功能等。In one embodiment, system 100 includes one or more hardware devices 102. Hardware devices 102 (e.g., computing devices, information processing devices, etc.) may include one or more of a desktop computer, a laptop computer, a mobile device, a tablet computer, a smartphone, a set-top box, a gaming console, a smart TV, a smartwatch, a fitness tracker, an optical head-mounted display (e.g., a virtual reality headset, smart glasses, etc.), an HDMI or other electronic display dongle, a personal digital assistant, and/or another computing device including a processor (e.g., a central processing unit (CPU)), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), volatile memory, and/or non-volatile storage media. In some embodiments, as described below, hardware devices 102 communicate with one or more servers 108 and/or one or more backend servers 110 of one or more third-party service providers 108 via a data network 106. In another embodiment, hardware devices 102 are capable of executing various programs, program codes, applications, instructions, functions, and the like.
在一个实施例中,聚合模块104被配置为从一个或多个第三方服务提供商108确定和/或接收用户的电子凭证(例如,用户名和密码、指纹扫描、视网膜扫描、数字证书、个人身份号码(PIN)、质询响应、安全令牌、硬件令牌、软件令牌、DNA序列、签名、面部识别、语音模式识别、生物电信号、双因素认证凭证等)。在某些实施例中,聚合模块104使用用户的电子凭证访问第三方服务提供商108的服务器108,以从服务器108下载与用户相关的数据,例如用户的照片、用户的社交媒体帖子、用户的医疗记录、用户的金融交易记录或其他金融数据、和/或与用户相关和/或由用户拥有但由第三方服务提供商的服务器108存储的其他数据108(例如,由硬件存储但不由用户拥有、维护和/或控制的数据)。在各种实施例中,聚合模块104可以在本地向用户提供下载的数据(例如,在硬件设备102的电子显示器上显示数据);可将来自用户的硬件设备102的下载数据提供给和/或将该数据打包发送给可以独立于第三方服务提供商108的远程服务器110(例如,后端聚合模块104b)或其他远程设备(例如,用户的另一硬件设备102、不同用户的硬件设备102等);可以基于下载的数据向用户(例如,在硬件设备102上)提供一个或多个警报、消息、广告或其他通信消息;等等。In one embodiment, the aggregation module 104 is configured to determine and/or receive the user's electronic credentials (e.g., a username and password, a fingerprint scan, a retinal scan, a digital certificate, a personal identification number (PIN), a challenge response, a security token, a hardware token, a software token, a DNA sequence, a signature, facial recognition, voice pattern recognition, bioelectric signals, two-factor authentication credentials, etc.) from one or more third-party service providers 108. In some embodiments, the aggregation module 104 uses the user's electronic credentials to access a server 108 of the third-party service provider 108 to download data related to the user from the server 108, such as the user's photos, the user's social media posts, the user's medical records, the user's financial transaction records or other financial data, and/or other data 108 related to and/or owned by the user but stored by the third-party service provider's server 108 (e.g., data stored by hardware but not owned, maintained, and/or controlled by the user). In various embodiments, the aggregation module 104 can provide the downloaded data locally to the user (e.g., display the data on an electronic display of the hardware device 102); can provide the downloaded data from the user's hardware device 102 and/or package the data and send it to a remote server 110 (e.g., the back-end aggregation module 104b) or other remote device (e.g., another hardware device 102 of the user, a hardware device 102 of a different user, etc.) that can be independent of the third-party service provider 108; can provide one or more alerts, messages, advertisements, or other communication messages to the user (e.g., on the hardware device 102) based on the downloaded data; and so on.
在某些实施例中,系统100包括设置/位于多个不同用户的硬件设备102(例如,包括一个或多个硬件设备102的硬件和/或运行在一个或多个硬件设备102上的可执行代码)上的多个聚合模块104。多个聚合模块104可以充当分布式和/或分散式系统100,在地理上分散并且使用不同IP地址的多个硬件设备102上执行该多个聚合模块104,每个聚合模块104分别以分布式和/或分散式的方式下载和/或聚合数据(例如,照片、社交媒体帖子、医疗记录、金融交易记录、其他金融数据和/或其他用户数据)。尽管第三方服务提供商108(例如,金融机构、银行、信用合作社和/或其他在线银行提供商;社交媒体网站;医疗提供商;照片托管站点等)可以阻止数据聚合服务或阻止其他实体从单个位置(例如,单个IP地址、单个IP地址块等)访问多个用户的数据,但是在某些实施例中,许多聚合模块104的分布式和/或分散式群集对于第三方服务提供商108来说可能更难以阻止。In certain embodiments, the system 100 includes multiple aggregation modules 104 disposed/located on hardware devices 102 of multiple different users (e.g., hardware comprising one or more hardware devices 102 and/or executable code running on one or more hardware devices 102). The multiple aggregation modules 104 can function as a distributed and/or decentralized system 100, executing on multiple hardware devices 102 that are geographically dispersed and utilize different IP addresses, each of which downloads and/or aggregates data (e.g., photos, social media posts, medical records, financial transaction records, other financial data, and/or other user data) in a distributed and/or decentralized manner. While third-party service providers 108 (e.g., financial institutions, banks, credit unions, and/or other online banking providers; social media websites; medical providers; photo hosting sites, etc.) can block data aggregation services or other entities from accessing data of multiple users from a single location (e.g., a single IP address, a single block of IP addresses, etc.), in certain embodiments, a distributed and/or decentralized cluster of many aggregation modules 104 can be more difficult for third-party service providers 108 to block.
在一个实施例中,硬件设备102可以包括和/或执行互联网浏览器,用户可以使用该浏览器来访问第三方服务提供商108的服务器108(例如,通过在互联网浏览器中加载第三方服务提供商108的网页)。在某些实施例中,至少一部分聚合模块104可以包括用户的个人硬件设备102的互联网浏览器的插件和/或扩展,以使得第三方服务提供商108可以不阻止聚合模块104访问第三方服务提供商108的服务器108,也不阻止用户自身使用互联网浏览器访问服务器108。例如,当用户通过互联网浏览器访问第三方服务提供商108的服务器108时,聚合模块104可以使用和用户相同的cookie、IP地址、保存的凭证等。在某些实施例中,聚合模块104可以支持与多种不同类型的互联网浏览器的集成(例如,在不同的硬件设备102上)。In one embodiment, the hardware device 102 may include and/or execute an internet browser that the user may use to access the servers 108 of the third-party service provider 108 (e.g., by loading a webpage of the third-party service provider 108 in the internet browser). In some embodiments, at least a portion of the aggregation module 104 may include a plug-in and/or extension for the internet browser of the user's personal hardware device 102, so that the third-party service provider 108 does not block the aggregation module 104 from accessing the servers 108 of the third-party service provider 108, nor does it block the user from accessing the servers 108 using the internet browser. For example, when the user accesses the servers 108 of the third-party service provider 108 through the internet browser, the aggregation module 104 may use the same cookies, IP address, saved credentials, etc. as the user. In some embodiments, the aggregation module 104 may support integration with multiple different types of internet browsers (e.g., on different hardware devices 102).
在某些实施例中,聚合模块104可以模仿或复制用户在访问第三方服务提供商108的服务器108时的行为模式,以降低第三方服务提供商108可以区分聚合模块104访问服务器108和用户访问服务器108的可能性。例如,即使聚合模块104不打算从一个或多个位置中的每一个下载数据,聚合模块104也可以访问第三方服务提供商108的服务器108的一个或多个位置(例如,网页),可以在访问不同位置之间等待某个延迟时间,可以使用某个滚动模式,等等,以掩饰聚合模块104下载和/或聚合用户的数据,从而减少被第三方服务提供商108检测到和/或阻止的机会。In some embodiments, the aggregation module 104 may mimic or replicate the behavior patterns of a user when accessing the server 108 of the third-party service provider 108 to reduce the likelihood that the third-party service provider 108 can distinguish between the aggregation module 104 accessing the server 108 and the user accessing the server 108. For example, the aggregation module 104 may access one or more locations (e.g., web pages) of the server 108 of the third-party service provider 108 even if the aggregation module 104 does not intend to download data from each of the one or more locations, may wait for a certain delay time between accessing different locations, may use a certain scrolling pattern, etc., to disguise that the aggregation module 104 is downloading and/or aggregating the user's data, thereby reducing the chance of being detected and/or blocked by the third-party service provider 108.
在一个实施例中,至少一部分聚合模块104可以与在硬件设备102上执行的另一个应用程序集成或者作为该另一个应用程序的一部分,例如,该另一个应用程序为个人财务管理应用程序(例如,用于显示用户在多个金融机构的金融交易、确定和/或显示用户的财务预算和/或财务目标、确定和/或显示用户的账户余额、确定和/或显示用户的资产净值等的计算机可执行代码)、照片查看器、医疗应用程序、保险应用程序、会计应用程序、社交媒体应用程序等,该另一个应用程序可以使用聚合模块104从第三方服务提供商108的服务器108下载的数据。In one embodiment, at least a portion of the aggregation module 104 can be integrated with or be part of another application executed on the hardware device 102, for example, the other application is a personal financial management application (e.g., computer executable code for displaying a user's financial transactions at multiple financial institutions, determining and/or displaying a user's financial budget and/or financial goals, determining and/or displaying a user's account balance, determining and/or displaying a user's net worth, etc.), a photo viewer, a medical application, an insurance application, an accounting application, a social media application, etc., and the other application can use the data downloaded by the aggregation module 104 from the server 108 of the third-party service provider 108.
在一个实施例中,聚合模块104a包括分布式系统100,其中聚合模块104a和/或相关的硬件设备102基本上独立地下载和/或聚合数据(例如,同时或不同时下载数据,没有全局时钟,具有组件的独立的成功和/或故障)。分布式聚合模块104a可以将消息传递给彼此和/或传递给后端聚合模块104b,以协调它们的对用户的数据的分布式聚合。在一个实施例中,聚合模块104a是分散的(例如,与用户相关的硬件设备102执行一个或多个聚合功能(例如,下载数据)),而不是仅依靠中央服务器或其他设备来执行一个或多个聚合功能。In one embodiment, the aggregation modules 104a comprise a distributed system 100 in which the aggregation modules 104a and/or associated hardware devices 102 download and/or aggregate data substantially independently (e.g., downloading data simultaneously or asynchronously, without a global clock, with independent success and/or failure of components). The distributed aggregation modules 104a can pass messages to each other and/or to a backend aggregation module 104b to coordinate their distributed aggregation of the user's data. In one embodiment, the aggregation modules 104a are decentralized (e.g., the hardware devices 102 associated with the user perform one or more aggregation functions (e.g., downloading data)), rather than relying solely on a central server or other device to perform one or more aggregation functions.
在分布式和/或分散式系统100中,中央实体(例如,后端聚合模块104b和/或后端服务器110)在某些实施例中仍然可以向一个或多个聚合模块104a提供一个或多个包括使用用户凭证等访问第三方服务提供商108的服务器108的指令的消息。例如,后端聚合模块104b可以向一个或多个硬件设备102的一个或多个聚合模块104a提供用于访问第三方服务提供商108的服务器108的一组或多组指令,例如,用于输入用户的电子凭证的位置(例如,文本框、字段、标签、坐标等),用于提交用户的电子凭证的指令(例如,按压按钮、点击链接等),与用户相关的数据的一个或多个位置(例如,表格或图表中的行、表格或图表中的列、统一资源定位符(URL)或其他地址、坐标、标签等),和/或其他指令或信息,聚合模块104a可以使用它们访问和下载用户的数据。In the distributed and/or decentralized system 100, the central entity (e.g., the backend aggregation module 104b and/or the backend server 110) may, in some embodiments, still provide one or more messages including instructions for accessing the server 108 of the third-party service provider 108 using the user's credentials, etc., to one or more aggregation modules 104a. For example, the backend aggregation module 104b may provide one or more sets of instructions for accessing the server 108 of the third-party service provider 108 to one or more aggregation modules 104a of one or more hardware devices 102, such as a location for entering the user's electronic credentials (e.g., a text box, field, label, coordinates, etc.), instructions for submitting the user's electronic credentials (e.g., pressing a button, clicking a link, etc.), one or more locations of data associated with the user (e.g., a row in a table or chart, a column in a table or chart, a uniform resource locator (URL) or other address, coordinates, label, etc.), and/or other instructions or information that the aggregation module 104a may use to access and download the user's data.
在又一个实施例中,一个或多个聚合模块104a可以以点对点的方式将消息传递给彼此,例如,用于使用用户的凭证等访问第三方服务提供商108的服务器108的指令。在另一个实施例中,中央实体(例如,后端聚合模块104b)可以最初将用于使用用户的凭证访问第三方服务提供商108的服务器108的一组或多组指令发送给一个或多个聚合模块104a,并且一个或多个聚合模块104a可以将该一组或多组指令发送到其他聚合模块104a。In yet another embodiment, one or more aggregation modules 104a may communicate messages to each other in a peer-to-peer manner, such as instructions for accessing the server 108 of the third-party service provider 108 using the user's credentials, etc. In another embodiment, a central entity (e.g., a backend aggregation module 104b) may initially send one or more sets of instructions for accessing the server 108 of the third-party service provider 108 using the user's credentials to one or more aggregation modules 104a, and one or more aggregation modules 104a may send the one or more sets of instructions to other aggregation modules 104a.
然而,在某些实施例中,用于访问用户数据的指令可以随时间改变,可以随第三方服务提供商108的不同用户而变化,等等(例如,由于升级、针对不同用户的不同服务级别或服务器108、不同的第三方服务提供商108的获取和/或整合等),导致某些指令随着时间和/或针对某些用户而失败,从而阻止聚合模块104访问和下载用户的数据。在一个实施例中,后端聚合模块104b可以向一个或多个聚合模块104a提供已知使得能够从第三方服务提供商108的服务器108访问用户数据的多组指令的层级列表。硬件设备102上的聚合模块104a可以以层级的顺序尝试不同组的指令,直到聚合模块104a能够访问用户的数据。However, in some embodiments, the instructions for accessing user data may change over time, may vary for different users of the third-party service provider 108, etc. (e.g., due to upgrades, different service levels for different users or servers 108, acquisition and/or integration of different third-party service providers 108, etc.), causing certain instructions to fail over time and/or for certain users, thereby preventing the aggregation module 104 from accessing and downloading the user's data. In one embodiment, the back-end aggregation module 104b may provide one or more aggregation modules 104a with a hierarchical list of multiple sets of instructions known to enable access to user data from the servers 108 of the third-party service provider 108. The aggregation module 104a on the hardware device 102 may try the different sets of instructions in a hierarchical order until the aggregation module 104a is able to access the user's data.
在某些实施例中,聚合模块104可以向用户提供接口,该接口通过图形化地标识用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等,允许用户修复或修改用于访问用户数据的失败的指令。在一个实施例中,聚合模块104可以高亮显示或以其他方式建议(例如,粗体、上色、图示直观的注释或标签等)对聚合模块104已经确定用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等的估计。例如,聚合模块104可以处理第三方服务提供商108的服务器108的网页(例如,解析和/或搜索超文本标记语言(HTML)文件)以估计用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等。In some embodiments, the aggregation module 104 may provide an interface to the user that allows the user to repair or modify failed instructions for accessing user data by graphically identifying the location where the user's electronic credentials were entered, instructions for submitting the user's electronic credentials, the location of data associated with the user, etc. In one embodiment, the aggregation module 104 may highlight or otherwise suggest (e.g., by bolding, coloring, illustrating intuitive annotations or labels, etc.) an estimate of where the aggregation module 104 has determined the user's electronic credentials were entered, the instructions for submitting the user's electronic credentials, the location of data associated with the user, etc. For example, the aggregation module 104 may process a web page on a server 108 of a third-party service provider 108 (e.g., by parsing and/or searching a hypertext markup language (HTML) file) to estimate the location where the user's electronic credentials were entered, the instructions for submitting the user's electronic credentials, the location of data associated with the user, etc.
在某些实施例中,聚合模块104可以为用户提供高级接口以图形化地修复用于从第三方服务提供商108的服务器108访问用户数据的中断的和/或失败的指令,该高级接口允许用户查看网页(例如,HTML等)的代码以及在网页的代码内识别用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等。在一个实施例中,聚合模块104可以为用户提供基本接口,以通过在服务器108的网页或其他位置上叠加基本接口来图形化地修复从第三方服务提供商108的服务器108访问用户的数据的中断的和/或失败的指令,其中,用户可以图形化地识别用户的电子凭证的输入位置、用于提交用户的电子凭证的指令、与用户相关的数据的位置等(例如,不需要用户查看网页的HTML或其他代码)。在某些实施例中,聚合模块104可以提供包括中断和/或丢失的指令、位置等的可选列表的接口,并且可以响应于用户从列表中选择项目而高亮显示和/或图形化地显示建议。In some embodiments, the aggregation module 104 may provide a user with an advanced interface to graphically repair interrupted and/or failed instructions for accessing user data from a server 108 of a third-party service provider 108, the advanced interface allowing the user to view the code of a webpage (e.g., HTML, etc.) and identify within the code of the webpage the location where the user's electronic credentials were entered, the instructions for submitting the user's electronic credentials, the location of data associated with the user, etc. In one embodiment, the aggregation module 104 may provide a basic interface to graphically repair interrupted and/or failed instructions for accessing user data from a server 108 of a third-party service provider 108 by overlaying the basic interface on a webpage or other location on the server 108, wherein the user may graphically identify the location where the user's electronic credentials were entered, the instructions for submitting the user's electronic credentials, the location of data associated with the user, etc. (e.g., without requiring the user to view the HTML or other code of the webpage). In some embodiments, the aggregation module 104 may provide an interface including a selectable list of interrupted and/or missing instructions, locations, etc., and may highlight and/or graphically display suggestions in response to the user selecting an item from the list.
在一个实施例中,聚合模块104可以在允许每个聚合模块104a使用所提供的指令之前测试由用户提供的指令(例如,使用测试集)(例如,以防止滥用用户提供虚假或不正确的指令)。聚合模块104可以基于用户的提供的指令的成功率对用户进行评分或评价,并且可以加快(例如,提供给更多数量的聚合模块104a和/或用户)使用来自评分或评价较高的用户的指令。在某些实施例中,聚合模块104的分布式网络可以自我修复和/或自我测试,以在即使访问指令改变或中断的情况下,仍然允许通过一个或多个第三方服务提供商108继续访问和/或聚合用户的数据。In one embodiment, the aggregation module 104 may test the instructions provided by the user (e.g., using a test set) before allowing each aggregation module 104a to use the provided instructions (e.g., to prevent abuse by users providing false or incorrect instructions). The aggregation module 104 may score or rate users based on the success rate of the instructions provided by the users, and may expedite (e.g., provide to a greater number of aggregation modules 104a and/or users) the use of instructions from users with higher scores or ratings. In certain embodiments, the distributed network of aggregation modules 104 may be self-healing and/or self-testing to allow continued access and/or aggregation of a user's data through one or more third-party service providers 108 even if access instructions change or are interrupted.
在某些实施例中,一个或多个聚合模块104可以提供用于将下载的和/或聚合的用户数据从一个或多个第三方服务提供商的服务器108提供到一个或多个其他实体(例如,独立于第三方服务提供商108的远程服务器110或其他硬件设备102、后端聚合模块104b等)的接口(例如,应用程序编程接口(API))。在一个实施例中,该接口包括用户硬件设备102的聚合模块104a与一个或多个后端聚合模块104b之间的专用接口。例如,这可以使得即使下载数据的用户的硬件设备102关闭、电池没电、没有连接到数据网络106等,后端聚合模块104b也能够向用户提供访问以在多个位置、在多个硬件设备102上、通过多个信道等下载和/或聚合用户数据。在另一个实施例中,接口包括安全的公共和/或开放接口,允许用户将从聚合模块104下载的用户数据共享到一个或多个其他工具、服务设备和/或其他实体以存储、处理和/或以其他方式使用数据。In certain embodiments, one or more aggregation modules 104 may provide an interface (e.g., an application programming interface (API)) for providing downloaded and/or aggregated user data from one or more third-party service provider servers 108 to one or more other entities (e.g., a remote server 110 independent of the third-party service provider 108 or other hardware devices 102, a back-end aggregation module 104b, etc.). In one embodiment, the interface comprises a dedicated interface between the aggregation module 104a of the user's hardware device 102 and the one or more back-end aggregation modules 104b. For example, this may enable the back-end aggregation module 104b to provide the user with access to download and/or aggregate user data in multiple locations, on multiple hardware devices 102, through multiple channels, etc., even if the user's hardware device 102 downloading the data is turned off, has a dead battery, is not connected to the data network 106, etc. In another embodiment, the interface comprises a secure, public, and/or open interface that allows the user to share the user data downloaded from the aggregation module 104 with one or more other tools, services, and/or other entities for storage, processing, and/or other use of the data.
在各种实施例中,聚合模块104可以体现为硬件、软件或者硬件和软件的某种组合。在一个实施例中,聚合模块104可以包括存储在非暂时性计算机可读存储介质上的可执行程序代码,该可执行程序代码在硬件设备102、后端服务器110等的处理器上执行。例如,聚合模块104可以体现为在硬件设备102、后端服务器110、一个或多个前述的组合等中的一个或多个上执行的可执行程序代码。在该实施例中,执行聚合模块104的操作的各个模块(如下所述)可位于硬件设备102、后端服务器110、上述两者的组合等上。In various embodiments, the aggregation module 104 may be embodied as hardware, software, or some combination of hardware and software. In one embodiment, the aggregation module 104 may include executable program code stored on a non-transitory computer-readable storage medium, which is executed on a processor of the hardware device 102, the backend server 110, or the like. For example, the aggregation module 104 may be embodied as executable program code that is executed on one or more of the hardware device 102, the backend server 110, one or more combinations of the foregoing, or the like. In this embodiment, the various modules (described below) that perform the operations of the aggregation module 104 may be located on the hardware device 102, the backend server 110, a combination of the foregoing, or the like.
在各种实施例中,聚合模块104可以体现为可以安装或部署在后端服务器110上、用户的硬件设备102上(例如,用于电话102或平板电脑102的加密狗、保护壳,保护壳包括位于壳体内的一个或多个半导体集成电路设备,其与电话102或平板电脑102无线地和/或通过诸如USB或专用通信端口或另一外围设备的数据端口进行通信)、或者在数据网络106上和/或与用户的硬件设备102并置。在某些实施例中,聚合模块104可以包括硬件设备,例如,安全硬件加密狗或其他硬件应用设备(例如,机顶盒、网络设备,等等),其通过有线连接(例如,USB连接)或无线连接(例如,近场通信(NFC)等)附接到另一硬件设备102(例如,膝上型计算机、服务器、平板电脑、智能电话等);其附接到电子显示设备(例如,使用HDMI端口、DisplayPort端口、Mini DisplayPort端口、VGA端口、DVI端口等的电视机或监视器);其在数据网络106上基本上独立地操作;等等。聚合模块104的硬件设备可以包括电源接口、有线和/或无线网络接口、输出到显示设备的图形接口(例如,具有一个或多个显示端口的图形卡和/或GPU)和/或如下所述的半导体集成电路器件,其被配置为执行本文描述的有关聚合模块104的功能。In various embodiments, the aggregation module 104 may be embodied as a device that may be installed or deployed on a backend server 110, on a user's hardware device 102 (e.g., a dongle for the phone 102 or tablet 102, a protective case comprising one or more semiconductor integrated circuit devices within the housing that communicate with the phone 102 or tablet 102 wirelessly and/or via a data port such as a USB or dedicated communication port or another peripheral device), or on a data network 106 and/or collocated with the user's hardware device 102. In some embodiments, the aggregation module 104 may include a hardware device, such as a secure hardware dongle or other hardware application device (e.g., a set-top box, a network device, etc.), which is attached to another hardware device 102 (e.g., a laptop, server, tablet, smartphone, etc.) via a wired connection (e.g., a USB connection) or a wireless connection (e.g., near field communication (NFC), etc.), which is attached to an electronic display device (e.g., a television or monitor using an HDMI port, a DisplayPort port, a Mini DisplayPort port, a VGA port, a DVI port, etc.), which operates substantially independently over the data network 106, etc. The hardware device of the aggregation module 104 may include a power interface, a wired and/or wireless network interface, a graphics interface for output to a display device (e.g., a graphics card and/or GPU having one or more display ports), and/or a semiconductor integrated circuit device as described below, which is configured to perform the functions described herein with respect to the aggregation module 104.
在该实施例中,聚合模块104可以包括半导体集成电路设备(例如,一个或多个芯片、裸片或其他分立逻辑硬件)等,例如,现场可编程门阵列(FPGA)或其他可编程逻辑、用于FPGA或其他可编程逻辑的固件、在微控制器上执行的微码、专用集成电路(ASIC)、处理器,处理器内核等。在一个实施例中,聚合模块104可以安装在具有一个或多个电线或连接(例如,连接到易失性存储器、非易失性存储介质、网络接口、外围设备、图形/显示接口)的印刷电路板上。硬件设备可以包括被配置为发送和接收数据(例如,与印刷电路板等的一个或多个电线通信)的一个或多个引脚、焊盘或其他电连接,以及被配置为执行聚合模块104的各种功能的一个或多个硬件电路和/或其他电路。In this embodiment, the aggregation module 104 may include a semiconductor integrated circuit device (e.g., one or more chips, dies, or other discrete logic hardware), such as a field programmable gate array (FPGA) or other programmable logic, firmware for the FPGA or other programmable logic, microcode executed on a microcontroller, an application specific integrated circuit (ASIC), a processor, a processor core, etc. In one embodiment, the aggregation module 104 may be mounted on a printed circuit board having one or more wires or connections (e.g., to volatile memory, non-volatile storage media, a network interface, peripheral devices, or a graphics/display interface). The hardware device may include one or more pins, pads, or other electrical connections configured to send and receive data (e.g., communicating with one or more wires on a printed circuit board), as well as one or more hardware circuits and/or other circuits configured to perform the various functions of the aggregation module 104.
在某些实施例中,聚合模块104的半导体集成电路设备或其他硬件应用包括和/或通信地耦合到一个或多个易失性存储介质,该易失性存储介质可以包括但不限于:随机存取存储器(RAM)、动态RAM(DRAM)、高速缓存等。在一个实施例中,聚合模块104的半导体集成电路设备或其他硬件设备包括和/或通信地耦合到一个或多个非易失性存储介质,该非易失性存储介质可以包括但不限于:NAND闪存、NOR闪存存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于氧化硅的亚10纳米工艺存储器、石墨烯存储器、硅氧氮化物氧化物硅(SONOS)、电阻式(RRAM)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、动态RAM(DRAM)、相变RAM(PRAM或PCM)、磁存储介质(例如,硬盘、带)、光存储介质等。In some embodiments, the semiconductor integrated circuit device or other hardware application of the aggregation module 104 includes and/or is communicatively coupled to one or more volatile storage media, which may include, but is not limited to, random access memory (RAM), dynamic RAM (DRAM), cache, etc. In one embodiment, the semiconductor integrated circuit device or other hardware device of the aggregation module 104 includes and/or is communicatively coupled to one or more non-volatile storage media, which may include, but is not limited to, NAND flash memory, NOR flash memory, nano random access memory (nanoRAM or NRAM), nanocrystal wire-based memory, silicon oxide-based sub-10 nm process memory, graphene memory, silicon oxynitride oxide silicon (SONOS), resistive (RRAM), programmable metallization cell (PMC), conductive bridging RAM (CBRAM), magnetoresistive RAM (MRAM), dynamic RAM (DRAM), phase change RAM (PRAM or PCM), magnetic storage media (e.g., hard disk, tape), optical storage media, etc.
在一个实施例中,数据网络106包括传输数字通信的数字通信网络。数据网络106可以包括诸如无线蜂窝网络的无线网络,诸如Wi-Fi网络、网络、近场通信(NFC)网络、自组织网络等的本地无线网络,和/或类似网络。数据网络106可以包括广域网(WAN)、存储区域网络(SAN)、局域网(LAN)、光纤网络、因特网或其他数字通信网络。数据网络106可以包括两个或更多个网络。数据网络106可以包括一个或多个服务器、路由器、交换机和/或其他网络设备。数据网络106还可以包括一个或多个计算机可读存储介质,例如,硬盘驱动器、光驱、非易失性存储器、RAM等。In one embodiment, the data network 106 comprises a digital communication network for transmitting digital communications. The data network 106 may include a wireless network such as a wireless cellular network, a local wireless network such as a Wi-Fi network, a network, a near field communication (NFC) network, an ad hoc network, and/or the like. The data network 106 may include a wide area network (WAN), a storage area network (SAN), a local area network (LAN), a fiber optic network, the Internet, or other digital communication network. The data network 106 may include two or more networks. The data network 106 may include one or more servers, routers, switches, and/or other network devices. The data network 106 may also include one or more computer-readable storage media, such as a hard drive, an optical drive, a non-volatile memory, RAM, and the like.
在一个实施例中,一个或多个第三方服务提供商108可以包括一个或多个网络可访问计算系统,例如,托管一个或多个网站的一个或多个网络服务器、企业内联网系统、应用服务器、应用程序编程接口(API)服务器、认证服务器等。一个或多个第三方服务提供商108可以包括与各种机构或组织有关的系统。例如,第三方服务提供商108可以包括向金融机构、大学、政府机构、公用事业公司、电子邮件提供商、社交媒体网站、照片共享网站、视频共享网站、数据存储网站、医疗提供商或存储与用户相关的数据的另一实体提供电子访问的系统。第三方服务提供商108可以允许用户创建用户账户以上传、查看、创建和/或修改与用户相关的数据。因此,第三方服务提商108可以包括授权系统,例如,网站、应用程序或类似前端的登录元素或页面,其中用户可以提供凭证(例如,用户名/密码组合)以访问用户的数据。In one embodiment, the one or more third-party service providers 108 may include one or more network-accessible computing systems, such as one or more web servers hosting one or more websites, corporate intranet systems, application servers, application programming interface (API) servers, authentication servers, and the like. The one or more third-party service providers 108 may include systems associated with various institutions or organizations. For example, the third-party service providers 108 may include systems that provide electronic access to a financial institution, a university, a government agency, a utility company, an email provider, a social media site, a photo sharing site, a video sharing site, a data storage site, a medical provider, or another entity storing data associated with a user. The third-party service provider 108 may allow a user to create a user account to upload, view, create, and/or modify data associated with the user. Thus, the third-party service provider 108 may include an authorization system, such as a login element or page on a website, application, or similar front-end, where a user may provide credentials (e.g., a username/password combination) to access the user's data.
在一个实施例中,一个或多个后端服务器110和/或一个或多个后端聚合模块104b提供对联网群集的聚合模块104a的集中管理。例如,一个或多个后端聚合模块104b和/或后端服务器110可以集中地存储通过聚合模块104a的下载的用户数据,可以向聚合模块104a提供指令以使用用户凭证从一个或多个第三方服务提供商108访问用户数据,等等。后端服务器110可以包括位于远离硬件设备102和/或一个或多个第三方服务提供商108的一个或多个服务器。后端服务器110可以包括下面针对图2和图3的聚合模块104描述的模块或子模块的至少一部分,可以包括聚合模块104的硬件、可以将聚合模块104的可执行程序代码存储在一个或多个非暂时性计算机可读存储介质中、和/或可以以其他方式执行本文描述的聚合模块104的各种操作中的一个或多个操作以便以分布式的方式从一个或多个第三方服务提供商聚合用户数据。In one embodiment, one or more backend servers 110 and/or one or more backend aggregation modules 104b provide centralized management of the aggregation modules 104a of the networked cluster. For example, one or more backend aggregation modules 104b and/or backend servers 110 may centrally store user data downloaded by the aggregation module 104a, may provide instructions to the aggregation module 104a to access user data from one or more third-party service providers 108 using user credentials, and so on. The backend servers 110 may include one or more servers located remotely from the hardware device 102 and/or the one or more third-party service providers 108. The backend servers 110 may include at least a portion of the modules or sub-modules described below with respect to the aggregation module 104 of Figures 2 and 3, may include the hardware of the aggregation module 104, may store executable program code of the aggregation module 104 in one or more non-transitory computer-readable storage media, and/or may otherwise perform one or more of the various operations of the aggregation module 104 described herein to aggregate user data from one or more third-party service providers in a distributed manner.
图2示出了聚合模块104的一个实施例。在示出的实施例中,聚合模块104包括认证模块202、直接访问模块204和接口模块206。2 illustrates one embodiment of the aggregation module 104. In the illustrated embodiment, the aggregation module 104 includes an authentication module 202, a direct access module 204, and an interface module 206.
在一个实施例中,认证模块202在用户的硬件设备102上从用户接收用于第三方服务提供商108的用户的电子凭证。在另一个实施例中,认证模块202可以接收不同用户的电子凭证(例如,来自不同硬件设备102、来自后端聚合模块104等),可以对不同用户的电子凭证进行加密和/或以其他方式加以保护,以使得直接访问模块204可以下载不同用户的数据(例如,从单个用户的硬件设备102下载多个用户的数据)。In one embodiment, the authentication module 202 receives the user's electronic credentials for the third-party service provider 108 from the user on the user's hardware device 102. In another embodiment, the authentication module 202 can receive electronic credentials of different users (e.g., from different hardware devices 102, from the backend aggregation module 104, etc.), and can encrypt and/or otherwise protect the electronic credentials of the different users so that the direct access module 204 can download data of different users (e.g., download data of multiple users from a single user's hardware device 102).
例如,在分布式/分散式系统100中,如果一个用户的硬件设备102关闭、休眠、电池耗尽、被第三方服务提供商108阻止等,则在某些实施例中,不同用户的硬件设备102上和/或后端服务器110上的聚合模块202可以使用一个用户的电子凭证下载该一个用户的数据,并且可以将该数据发送给该一个用户的硬件设备102,可以将警报和/或推送通知发送到该一个用户的硬件设备102等。在一个实施例中,通过这种方式,即使用户自己的硬件设备102被阻止、不可用等,用户也可以继续聚合数据、接收警报和/或推送通知等。在某些实施例中,通过与一个或多个认证模块202合作,聚合模块104a,104b可以使用安全和/或加密协议彼此通信,和/或可以以安全和/或加密方式存储电子凭证,以使得用户可以看不到和/或可以不用访问另一用户的电子凭证、下载的数据或其他私人和/或敏感数据。For example, in the distributed/decentralized system 100, if one user's hardware device 102 is turned off, in sleep mode, has a dead battery, is blocked by a third-party service provider 108, etc., then, in some embodiments, the aggregation module 202 on a different user's hardware device 102 and/or on the backend server 110 can download the one user's data using the one user's electronic credentials, and can send the data to the one user's hardware device 102, can send alerts and/or push notifications to the one user's hardware device 102, etc. In one embodiment, in this way, the user can continue to aggregate data, receive alerts and/or push notifications, etc., even if the user's own hardware device 102 is blocked, unavailable, etc. In some embodiments, in cooperation with one or more authentication modules 202, the aggregation modules 104a, 104b can communicate with each other using secure and/or encrypted protocols and/or can store electronic credentials in a secure and/or encrypted manner so that a user cannot see and/or have access to another user's electronic credentials, downloaded data, or other private and/or sensitive data.
在聚合模块104包括硬件(例如,诸如FPGA,ASIC等的半导体集成电路设备)的实施例中,认证模块202可以包括用于存储和/或处理电子凭证、下载的数据和/或其他敏感和/或私人数据的专用安全硬件,例如,不将解密数据输出到不安全的总线或存储器且存储加密密钥的安全密码处理器(例如,芯片上的专用计算机或嵌入在具有一种或多种物理安全措施的封装中的微处理器),安全存储设备;诸如TPM芯片和/或TPM安全设备的可信平台模块(TPM);安全启动ROM或其他类型的ROM;认证芯片;等等。在另一个实施例中,认证模块202可以使用用户现有的硬件设备102的软件和/或硬件以安全和/或加密的方式存储和/或处理电子凭证、下载的数据和/或其他敏感数据(例如,RAM、NAND和/或其他通用存储器中的加密数据),其中硬件设备102具有或不具有专用安全硬件。在某些实施例中,认证模块202可以对与第一用户相关但由第二(例如,不同的)用户的硬件设备102(例如,通过数据网络106等从第一用户的硬件设备102)接收、处理和/或存储的数据(例如,电子凭证、下载的数据)进行加密和/或保护,以防止第二用户访问第一用户的数据,同时仍允许从不同用户的硬件设备102下载和/或聚合第一用户的数据。In embodiments where the aggregation module 104 comprises hardware (e.g., a semiconductor integrated circuit device such as an FPGA, ASIC, etc.), the authentication module 202 may include dedicated secure hardware for storing and/or processing electronic credentials, downloaded data, and/or other sensitive and/or private data, such as a secure cryptographic processor (e.g., a dedicated computer on a chip or a microprocessor embedded in a package with one or more physical security measures) that does not output decrypted data to an unsecured bus or memory and stores encryption keys, a secure storage device; a Trusted Platform Module (TPM) such as a TPM chip and/or TPM security device; a secure boot ROM or other type of ROM; an authentication chip; etc. In another embodiment, the authentication module 202 may utilize software and/or hardware of the user's existing hardware device 102, with or without dedicated secure hardware, to store and/or process electronic credentials, downloaded data, and/or other sensitive data in a secure and/or encrypted manner (e.g., encrypted data in RAM, NAND, and/or other general-purpose memory). In some embodiments, the authentication module 202 can encrypt and/or protect data (e.g., electronic credentials, downloaded data) associated with a first user but received, processed, and/or stored by a second (e.g., different) user's hardware device 102 (e.g., from the first user's hardware device 102 via a data network 106, etc.) to prevent the second user from accessing the first user's data while still allowing the first user's data to be downloaded and/or aggregated from hardware devices 102 of different users.
在一个实施例中,如上所述,电子凭证可以包括用户名和密码、指纹扫描、视网膜扫描、数字证书、个人身份号码(PIN)、质询响应、安全令牌、硬件令牌、软件令牌、DNA序列、签名、面部识别、语音模式识别、生物电信号、双因素认证凭证或其他信息中的一个或多个,由此认证模块202可以认证和/或验证用户的身份和/或授权。In one embodiment, as described above, the electronic credential may include one or more of a username and password, a fingerprint scan, a retinal scan, a digital certificate, a personal identification number (PIN), a challenge response, a security token, a hardware token, a software token, a DNA sequence, a signature, facial recognition, voice pattern recognition, a bioelectric signal, a two-factor authentication credential, or other information, whereby the authentication module 202 may authenticate and/or verify the identity and/or authorization of the user.
在某些实施例中,认证模块202可以从用户接收用户在不同的第三方服务提供商108(例如,不同的社交网络、不同的照片共享网站、不同的金融机构)的不同账户的不同凭证,使得聚合模块104可以从多个不同的第三方服务提供商108下载、聚合和/或组合用户的数据。在一个实施例中,如下面针对图3的密码管理器模块306所描述的,代替和/或除了从用户接收一个或多个密码或其他电子凭证之外的认证模块202还可以为一个或多个第三方服务提供商108管理和/或确定用户的一个或多个密码或其他电子凭证。例如,在某些实施例中,认证模块202可以从用户接收该用户在第三方服务提供商108的账户的一组初始电子凭证(例如,用户名和密码),并且认证模块202可以使用该组初始电子凭证来访问用户在该第三方服务提供商108的账户以设置认证模块确定的新密码202。在一个实施例中,认证模块202可以确定比通常由用户创建和/或用户可存储的那些密码或电子凭证更安全的密码或其他电子凭证(例如,更长、更多数字、大写字母和小写字母之间的更大变化、更频繁地改变,等等)。In some embodiments, the authentication module 202 may receive from the user different credentials for different accounts of the user at different third-party service providers 108 (e.g., different social networks, different photo sharing websites, different financial institutions), so that the aggregation module 104 can download, aggregate, and/or combine the user's data from multiple different third-party service providers 108. In one embodiment, instead of and/or in addition to receiving one or more passwords or other electronic credentials from the user, the authentication module 202 may also manage and/or determine one or more passwords or other electronic credentials of the user for one or more third-party service providers 108, as described below with respect to the password manager module 306 of FIG3. For example, in some embodiments, the authentication module 202 may receive from the user a set of initial electronic credentials (e.g., a username and password) for the user's account at a third-party service provider 108, and the authentication module 202 may use the initial set of electronic credentials to access the user's account at the third-party service provider 108 to set a new password 202 determined by the authentication module. In one embodiment, the authentication module 202 can determine a password or other electronic credential that is more secure (e.g., longer, has more numbers, more variation between uppercase and lowercase letters, changes more frequently, etc.) than those typically created by a user and/or stored by a user.
在一个实施例中,直接访问模块204使用来自认证模块202的用户的电子凭证(例如,与硬件设备102相关联的用户的电子凭证、不同用户的电子凭证等),通过用户的硬件设备102和/或后端服务器110访问一个或多个第三方服务提供商108的一个或多个服务器108。在某些实施例中,直接访问模块204不将数据直接下载到用户的硬件设备102或者除了将数据直接下载到用户的硬件设备102之外(例如,基于用户的硬件设备102的可用性,为了在第二个位置备份数据,等),直接访问模块204还将与用户相关的数据(例如,用户的社交媒体帖子、用户的照片、用户的金融交易等)从一个或多个第三方服务提供商108的一个或多个服务器108下载到用户的硬件设备102(例如,与下载的数据相关的用户的硬件设备102;不同用户的硬件设备102,其将下载的数据处理和/或传送到与下载的数据相关的用户的硬件设备102)和/或下载到与直接访问模块204相关的后端服务器110。In one embodiment, the direct access module 204 uses the user's electronic credentials from the authentication module 202 (e.g., the electronic credentials of the user associated with the hardware device 102, the electronic credentials of a different user, etc.) to access one or more servers 108 of one or more third-party service providers 108 via the user's hardware device 102 and/or the backend server 110. In some embodiments, instead of downloading the data directly to the user's hardware device 102 or in addition to downloading the data directly to the user's hardware device 102 (e.g., based on the availability of the user's hardware device 102, to back up the data in a secondary location, etc.), the direct access module 204 also downloads data associated with the user (e.g., the user's social media posts, the user's photos, the user's financial transactions, etc.) from the one or more servers 108 of the one or more third-party service providers 108 to the user's hardware device 102 (e.g., the user's hardware device 102 associated with the downloaded data; a different user's hardware device 102 that processes and/or transmits the downloaded data to the user's hardware device 102 associated with the downloaded data) and/or to the backend server 110 associated with the direct access module 204.
在某些实施例中,直接访问模块204可以使用第三方服务提供商108的服务器108的网页接口,利用用户的电子凭证来访问服务器108和/或下载与用户相关的数据。例如,在某些实施例中,直接访问模块204可以从第三方服务提供商108的服务器108下载/加载网页,将用户的用户名和密码或其他电子凭证输入到网页上的表单中的文本框,使用网页的提交按钮或其他接口元素提交用户名和密码或其他电子凭证,和/或使用网站以其他方式提交电子凭证以获得对与用户相关联的服务器108上的数据的访问的授权。如下所述,模式模块308可以接收和/或提供使得直接访问模块204能够访问服务器108(例如,提交电子证书的位置或方法等)的指令。In some embodiments, the direct access module 204 can use a web page interface of the server 108 of the third-party service provider 108 to access the server 108 and/or download data associated with the user using the user's electronic credentials. For example, in some embodiments, the direct access module 204 can download/load a web page from the server 108 of the third-party service provider 108, enter the user's username and password or other electronic credentials into text boxes in a form on the web page, submit the username and password or other electronic credentials using a submit button or other interface element of the web page, and/or submit the electronic credentials in other ways using a website to obtain authorization to access data on the server 108 associated with the user. As described below, the mode module 308 can receive and/or provide instructions that enable the direct access module 204 to access the server 108 (e.g., the location or method for submitting the electronic credentials, etc.).
响应于使用用户的电子凭证成功认证并访问第三方服务提供商108的服务器108,直接访问模块204可以从服务器108将与用户相关的数据(例如,从用户的账户等)下载到与用户相关的硬件设备102、后端服务器110、代表该用户下载数据的另一个用户的硬件设备102等。如下所述,在某些实施例中,模式模块308可以接收和/或提供使直接访问模块204能够从第三方服务提供商108的服务器108下载与用户相关的数据的指令(例如,指示数据的位置的URL或其他链接、用于在一个或多个网页或其他数据结构内定位数据的标签或其他标识符,等等)。在某些实施例中,直接访问模块204可以按照模式模块308的指令,以屏幕抓取方式认证和/或访问来自服务器108的一个或多个网页的数据,以通过解析一个或多个网页来定位输入位置和/或提交电子凭证;定位、下载和/或提取与用户相关的数据;等等。In response to successfully authenticating and accessing the server 108 of the third-party service provider 108 using the user's electronic credentials, the direct access module 204 can download data associated with the user (e.g., from the user's account, etc.) from the server 108 to a hardware device 102 associated with the user, a backend server 110, another user's hardware device 102 downloading data on behalf of the user, etc. As described below, in some embodiments, the schema module 308 can receive and/or provide instructions (e.g., a URL or other link indicating the location of the data, a tag or other identifier for locating the data within one or more web pages or other data structures, etc.) that enable the direct access module 204 to download the data associated with the user from the server 108 of the third-party service provider 108. In some embodiments, the direct access module 204 can authenticate and/or access data from one or more web pages of the server 108 in a screen scraping manner, pursuant to the instructions of the schema module 308, to locate input locations and/or submit electronic credentials by parsing the one or more web pages; to locate, download, and/or extract data associated with the user; etc.
在一个实施例中,直接访问模块204使用第三方服务提供商108的服务器108的API或其他访问协议发送或以其他方式提交电子凭证和/或接收或以其他方式下载数据。例如,直接访问模块204可以以第三方服务提供商108的服务器108(例如,API服务器108)指定和/或与服务器108兼容的格式发送请求。发送的请求可以包括用户的电子凭证或其一部分(例如,用户名和/或密码),后续请求可以包括用户的电子凭证或其一部分(例如,响应于从服务器108接收到的针对第一请求的确认,等等),和/或直接访问模块204可以使用服务器108的不同访问协议。In one embodiment, the direct access module 204 sends or otherwise submits electronic credentials and/or receives or otherwise downloads data using an API or other access protocol of the server 108 of the third-party service provider 108. For example, the direct access module 204 may send a request in a format specified by and/or compatible with the server 108 of the third-party service provider 108 (e.g., the API server 108). The sent request may include the user's electronic credentials or a portion thereof (e.g., a username and/or password), subsequent requests may include the user's electronic credentials or a portion thereof (e.g., in response to a confirmation received from the server 108 for the first request, etc.), and/or the direct access module 204 may use a different access protocol of the server 108.
响应于来自直接访问模块204的对数据的请求(例如,响应于直接访问模块204使用服务器108的访问协议对用户进行了认证),第三方服务提供商108的服务器108可以发送和/或返回与用户相关的数据(例如,在一个或多个消息、分组、有效载荷中的数据,作为指向直接访问模块204可从中获得数据的位置的URL或其他指针,等等)。在各种实施例中,直接访问模块204可以通过数据网络106直接从第三方服务提供商108的服务器108接收与用户相关的数据;可以从第三方服务提供商108的服务器108接收指向与用户相关的数据的位置的指针、URL或其他链接;可以从数据网络106上的另一实体接收与用户相关的数据(例如,响应于第三方服务提供商108的服务器108对其他实体的请求等);或者可以以其他方式根据第三方服务提供商108的访问协议接收与用户相关的数据。In response to a request for data from the direct access module 204 (e.g., in response to the direct access module 204 authenticating the user using the server 108's access protocol), the server 108 of the third-party service provider 108 may send and/or return data related to the user (e.g., data in one or more messages, packets, payloads, as a URL or other pointer to a location from which the direct access module 204 can obtain the data, etc.). In various embodiments, the direct access module 204 may receive the data related to the user directly from the server 108 of the third-party service provider 108 over the data network 106; may receive a pointer, URL or other link to the location of the data related to the user from the server 108 of the third-party service provider 108; may receive the data related to the user from another entity on the data network 106 (e.g., in response to a request from the server 108 of the third-party service provider 108 to the other entity, etc.); or may otherwise receive the data related to the user in accordance with the access protocol of the third-party service provider 108.
在一个实施例中,第三方服务提供商108向直接访问模块204提供API或其他访问协议。在另一个实施例中,直接访问模块204可以充当第三方服务提供商108的应用程序(例如,移动应用程序)的包装和/或插件或扩展,并且该应用程序可以访问第三方服务提供商108的API或其他访问协议。在另一个实施例中,直接访问模块204可以被配置为通过观察第三方服务提供商108的应用程序等以与第三方服务提供商108的应用程序(例如,移动应用程序)相同的方式使用API或其他访问协议。在某些实施例中,直接访问模块204可以与第三方服务提供商108的应用程序、用户通过其访问第三方服务提供商108的服务的web浏览器等合作以访问与用户相关的数据(例如,访问应用程序和/或用户已经下载的数据、访问应用程序和/或网络浏览器的数据库或其他数据存储、当用户访问网页时扫描和/或屏幕抓取第三方服务提供商108的网页,等等)。In one embodiment, the third-party service provider 108 provides an API or other access protocol to the direct access module 204. In another embodiment, the direct access module 204 can act as a wrapper and/or plug-in or extension for an application (e.g., a mobile application) of the third-party service provider 108, and the application can access the API or other access protocol of the third-party service provider 108. In another embodiment, the direct access module 204 can be configured to use the API or other access protocol in the same manner as the application (e.g., mobile application) of the third-party service provider 108, by observing the application of the third-party service provider 108, etc. In some embodiments, the direct access module 204 can cooperate with the application of the third-party service provider 108, the web browser through which the user accesses the services of the third-party service provider 108, etc. to access data related to the user (e.g., access data that the application and/or user has downloaded, access a database or other data store of the application and/or web browser, scan and/or screen scrape the web pages of the third-party service provider 108 when the user accesses the web pages, etc.).
在某些实施例中,直接访问模块204可以以不同方式访问不同的第三方服务提供商108。例如,第一第三方服务提供商108可以授权直接访问模块204访问API或其他访问协议,而直接访问模块204可以使用网页接口(例如,屏幕抓取)来从第二第三方服务提供商108访问和下载数据,等等。在一个实施例中,远程后端服务器110可以与第一方服务提供商110(例如,聚合模块104的供应商和/或提供商)相关联,并且直接访问模块204可以从第一方服务提供商110和一个或多个第三方服务提供商108下载与用户相关的数据,将数据聚合在一起,以使得用户可以在单个接口和/或应用程序中访问数据。例如,如下面针对接口模块206所描述的,接口模块206可以向用户提供在单个照片应用程序内通过多个第三方云存储提供商108对用户照片的访问,可以向用户提供在单个个人财务管理应用程序和/或在线银行应用程序内对用户的个人财务信息的访问,可以向用户提供在单个社交网络应用程序内对多个社交网络的帖子的访问,等等。In some embodiments, the direct access module 204 can access different third-party service providers 108 in different ways. For example, a first third-party service provider 108 can grant the direct access module 204 access to an API or other access protocol, while the direct access module 204 can use a web interface (e.g., screen scraping) to access and download data from a second third-party service provider 108, and so on. In one embodiment, a remote backend server 110 can be associated with the first-party service provider 110 (e.g., a vendor and/or provider of the aggregation module 104), and the direct access module 204 can download data related to the user from the first-party service provider 110 and one or more third-party service providers 108, aggregating the data so that the user can access the data within a single interface and/or application. For example, as described below with respect to the interface module 206, the interface module 206 can provide the user with access to the user's photos across multiple third-party cloud storage providers 108 within a single photo application, can provide the user with access to the user's personal financial information within a single personal finance management application and/or online banking application, can provide the user with access to posts on multiple social networks within a single social networking application, and so on.
在某些实施例中,直接访问模块204可以独立于一个或多个第三方服务提供商108存储下载的和/或聚合的数据。例如,直接访问模块204可以在用户的硬件设备102上、在用户可以访问的后端服务器110上存储用户下载的和/或聚合的数据,等等。通过这种方式,在某些实施例中,即使第三方服务提供商108关闭或不可用,用户也可以控制和/或访问用户的数据,即使第三方服务提供商108不支持使用,用户也可以以用户期望的任何方式使用用户的数据,等等。In some embodiments, the direct access module 204 can store the downloaded and/or aggregated data independently of one or more third-party service providers 108. For example, the direct access module 204 can store the user's downloaded and/or aggregated data on the user's hardware device 102, on a backend server 110 accessible to the user, etc. In this manner, in some embodiments, the user can control and/or access the user's data even if the third-party service provider 108 is down or unavailable, the user can use the user's data in any manner the user desires even if the third-party service provider 108 does not support its use, etc.
在一个实施例中,除了和/或代替从一个或多个第三方服务提供商108下载数据之外,直接访问模块204还可以响应于用户输入等而向一个或多个第三方服务提供商108上传数据和/或改变一个或多个第三方服务提供商108的一个或多个设置。例如,在数据包括照片的实施例中,直接访问模块204可以将来自用户的硬件设备102的照片上传到一个或多个第三方服务提供商110(例如,用户已经在硬件设备102上编辑的下载的照片等)。在数据包括社交媒体帖子或其他内容的实施例中,直接访问模块204可以从用户接收输入(例如,照片、文本帖子、一个或多个表情符号、视频、文档或其他文件,等等),并将接收到的输入上传到一个或多个第三方服务提供商108(例如,社交媒体网站等)。在数据包括金融交易或其他金融数据的实施例中,直接访问模块204可以安排账单支付或其他支付或资金转账,远程存入支票(例如,通过上传支票的正面和/或背面的照片,等等),和/或执行另一个动作。In one embodiment, in addition to and/or in lieu of downloading data from one or more third-party service providers 108, direct access module 204 may also upload data to one or more third-party service providers 108 and/or change one or more settings of one or more third-party service providers 108 in response to user input, etc. For example, in embodiments where the data includes photos, direct access module 204 may upload photos from the user's hardware device 102 to one or more third-party service providers 110 (e.g., downloaded photos that the user has edited on hardware device 102, etc.). In embodiments where the data includes social media posts or other content, direct access module 204 may receive input from the user (e.g., a photo, a text post, one or more emoticons, a video, a document or other file, etc.) and upload the received input to one or more third-party service providers 108 (e.g., a social media website, etc.). In embodiments where the data includes financial transactions or other financial data, direct access module 204 may arrange for a bill payment or other payment or funds transfer, remotely deposit a check (e.g., by uploading photos of the front and/or back of the check, etc.), and/or perform another action.
直接访问模块204可以利用第三方服务提供商108更新或改变用户的账户信息,例如,账户类型或计划、信用卡或与账户相关联的其他支付信息、电话号码或地址或与账户相关联的其他信息、账户的密码或其他电子凭证、和/或用户对于第三方服务提供商108的其他账户信息。直接访问模块204可以以与本文描述的下载数据基本类似地方式更新和/或上传数据(例如,确定针对第三方服务提供商108的用户的电子凭证、访问第三方服务提供商108的服务器108、向第三方服务提供商108上传和/或提供数据,等等)。The direct access module 204 can update or change the user's account information with the third-party service provider 108, such as the account type or plan, credit card or other payment information associated with the account, phone number or address or other information associated with the account, a password or other electronic credentials for the account, and/or other account information of the user with the third-party service provider 108. The direct access module 204 can update and/or upload data in a manner substantially similar to that described herein for downloading data (e.g., determining the user's electronic credentials to the third-party service provider 108, accessing the server 108 of the third-party service provider 108, uploading and/or providing data to the third-party service provider 108, etc.).
在一个实施例中,接口模块206将直接访问模块204下载的用户数据从用户的硬件设备102(例如,与下载数据相关的用户的硬件设备102,、不同用户的硬件设备102)提供给另一个用户实体,例如,与下载的数据相关的用户的硬件设备102(例如,响应于不同用户的硬件设备102将数据从用户的一个硬件设备102提供到同一个用户的另一个硬件设备102),不依赖于(例如,不属于、不由其操作、不由其控制,等等)从其下载数据的第三方服务提供商108的远程服务器110或其他远程设备102,等等。例如,接口模块206可以提供API或其他接口以向用户的硬件设备102、后端聚合模块104b、后端服务器110、不同的第三方服务提供商108、用户的不同的/第二硬件设备102等提供用户的下载和/或聚合数据。In one embodiment, the interface module 206 provides the user data downloaded by the direct access module 204 from the user's hardware device 102 (e.g., the user's hardware device 102 associated with the downloaded data, a different user's hardware device 102) to another user entity, e.g., the user's hardware device 102 associated with the downloaded data (e.g., in response to a different user's hardware device 102 providing the data from one hardware device 102 of the user to another hardware device 102 of the same user), a remote server 110 or other remote device 102 that is not dependent on (e.g., not owned by, not operated by, not controlled by, etc.) the third-party service provider 108 from which the data was downloaded, etc. For example, the interface module 206 may provide an API or other interface to provide the user's downloaded and/or aggregated data to the user's hardware device 102, the backend aggregation module 104b, the backend server 110, a different third-party service provider 108, a different/second hardware device 102 of the user, etc.
在某些实施例中,哪个硬件设备102,110已经下载了与用户相关的数据对于用户来说可以是透明的和/或基本上透明的(例如,不明显)。例如,接口模块206可以将下载的与用户相关的数据从用户的一个硬件设备102提供给用户的另一个硬件设备102、从用户的硬件设备102提供到后端服务器110(例如,用户可以使用网络浏览器、应用程序等来通过后端服务器110访问数据)、从后端服务器110提供给用户的硬件设备102,等等,从而允许用户从与下载数据的位置不同的位置访问数据。In some embodiments, it can be transparent and/or substantially transparent (e.g., not obvious) to the user which hardware device 102, 110 has downloaded the data associated with the user. For example, the interface module 206 can provide the downloaded data associated with the user from one hardware device 102 of the user to another hardware device 102 of the user, from the user's hardware device 102 to the backend server 110 (e.g., the user can use a web browser, an application, etc. to access the data through the backend server 110), from the backend server 110 to the user's hardware device 102, etc., thereby allowing the user to access the data from a location different from the location from which the data was downloaded.
在某些实施例中,接口模块206在用户的硬件设备102上提供图形用户接口(GUI),并且通过GUI向用户提供下载的与用户相关的数据(例如,允许用户直接查看数据、基于该数据向用户提供一个或多个通知和/或推荐、基于该数据向用户提供一个或多个表格或图表、提供与该数据有关的概要或一个或多个统计数据,等等)。在各种实施例中,接口模块206可以在与下载数据的硬件设备102相同的硬件设备102上向用户提供GUI,可以在与下载数据的硬件设备102,110不同的硬件设备102上向用户提供GUI,等等。In some embodiments, the interface module 206 provides a graphical user interface (GUI) on the user's hardware device 102 and provides the downloaded data related to the user to the user through the GUI (e.g., allowing the user to directly view the data, providing the user with one or more notifications and/or recommendations based on the data, providing the user with one or more tables or charts based on the data, providing a summary or one or more statistics related to the data, etc.). In various embodiments, the interface module 206 can provide the GUI to the user on the same hardware device 102 as the hardware device 102 from which the data was downloaded, can provide the GUI to the user on a hardware device 102 different from the hardware device 102, 110 from which the data was downloaded, etc.
例如,在一个实施例中,在与用户相关的数据包括照片的情况下,接口模块206可以提供照片管理接口、照片编辑接口等,其中用户可以观看和/或以其他方式访问用户的下载和/或聚合照片。在另一个实施例中,在与用户相关的数据包括用户的金融交易历史(例如,从一个或多个金融机构108(例如,银行、信用社、贷方等)下载的购买和/或其他金融交易)的情况下,接口模块206可以提供个人财务管理接口,其具有交易列表、一个或多个预算、一个或多个财务目标、债务管理接口、净值接口和/或另一个个人财务管理接口,其中用户可以查看用户的下载和/或聚合的金融交易历史记录和/或基于该金融交易历史记录的警报或推荐。在另一个实施例中,在与用户相关的数据包括社交媒体帖子的情况下,接口模块206可以提供包括社交媒体帖子的信息流、动态和/或墙帖的GUI以供用户查看(例如,从多个社交网络108、从用户的不同联系人或朋友等下载的和/或聚合的社交媒体帖子)。For example, in one embodiment, where the data associated with the user includes photos, the interface module 206 may provide a photo management interface, a photo editing interface, etc., where the user can view and/or otherwise access the user's downloaded and/or aggregated photos. In another embodiment, where the data associated with the user includes the user's financial transaction history (e.g., purchases and/or other financial transactions downloaded from one or more financial institutions 108 (e.g., banks, credit unions, lenders, etc.), the interface module 206 may provide a personal financial management interface having a transaction list, one or more budgets, one or more financial goals, a debt management interface, a net worth interface, and/or another personal financial management interface, where the user can view the user's downloaded and/or aggregated financial transaction history and/or alerts or recommendations based on the financial transaction history. In another embodiment, where the data associated with the user includes social media posts, the interface module 206 may provide a GUI that includes a feed, feed, and/or wall post of social media posts for the user to view (e.g., downloaded and/or aggregated social media posts from multiple social networks 108, from the user's different contacts or friends, etc.).
在某些实施例中,接口模块206可以向用户提供一个或多个访问控制,以允许用户定义哪些设备102、用户、第三方服务提供商110等可以访问哪些数据。例如,接口模块206可以为用户提供接口以允许和/或限制某些移动应用程序、用于第三方服务的某些API、某些插件或扩展、某些用户、某些硬件设备102、和/或一个或多个其他实体访问从一个或多个第三方服务提供商108下载的数据(例如,通过第三方服务提供商108或其他数据源、通过数据类型、通过请求访问的实体、和/或另一个粒度来进行访问控制)。通过这种方式,在某些实施例中,聚合模块104可以包括聚合数据的本地存储库,其中一个或多个其他设备102和/或服务可以在用户的许可下访问和使用该本地存储库。In some embodiments, the interface module 206 can provide one or more access controls to the user to allow the user to define which devices 102, users, third-party service providers 110, etc. can access which data. For example, the interface module 206 can provide the user with an interface to allow and/or restrict certain mobile applications, certain APIs for third-party services, certain plug-ins or extensions, certain users, certain hardware devices 102, and/or one or more other entities from accessing data downloaded from one or more third-party service providers 108 (e.g., access control by third-party service provider 108 or other data source, by data type, by entity requesting access, and/or another granularity). In this way, in some embodiments, the aggregation module 104 can include a local repository of aggregated data, where one or more other devices 102 and/or services can access and use the local repository with the user's permission.
图3示出了聚合模块104的另一个实施例。在该示出的实施例中,聚合模块104包括认证模块202、直接访问模块204和接口模块206,并且还包括路由模块314、频率模块316和测试模块318。在示出的实施例中,认证模块202包括本地认证模块302、网络认证模块304和密码管理器模块306。在示出的实施例中,直接存取模块204包括模式模块308、访问修复模块310和层级模块312。3 illustrates another embodiment of the aggregation module 104. In the illustrated embodiment, the aggregation module 104 includes the authentication module 202, the direct access module 204, and the interface module 206, and also includes a routing module 314, a frequency module 316, and a testing module 318. In the illustrated embodiment, the authentication module 202 includes a local authentication module 302, a network authentication module 304, and a password manager module 306. In the illustrated embodiment, the direct access module 204 includes a mode module 308, an access repair module 310, and a hierarchy module 312.
在一个实施例中,本地认证模块302对用户对用户的硬件设备102上的、传送到用户的硬件设备102的和/或从用户的硬件设备102传送等等的下载的数据、存储的密码和/或其他数据的访问进行认证和/或确保其安全。例如,本地认证模块302可以与用户的硬件设备102的一个或多个安全和/或认证系统协作(例如,PIN、密码、指纹认证、面部识别或用户使用的其他电子凭证)以获得对硬件设备102的访问。在另一个实施例中,本地认证模块302可以在允许接口模块206向用户提供对下载/聚合的数据和/或警报或其他消息的访问之前对用户进行认证。例如,本地认证模块302可以为用户管理和/或访问与聚合模块104相关联的电子凭证,并且可以响应于用户访问聚合模块104的应用和/或服务来对用户进行认证。In one embodiment, the local authentication module 302 authenticates and/or secures a user's access to downloaded data, stored passwords, and/or other data on, transmitted to, and/or from the user's hardware device 102, and/or the like. For example, the local authentication module 302 can collaborate with one or more security and/or authentication systems of the user's hardware device 102 (e.g., a PIN, password, fingerprint authentication, facial recognition, or other electronic credentials used by the user) to gain access to the hardware device 102. In another embodiment, the local authentication module 302 can authenticate a user before allowing the interface module 206 to provide the user with access to downloaded/aggregated data and/or alerts or other messages. For example, the local authentication module 302 can manage and/or access electronic credentials associated with the aggregation module 104 for the user and can authenticate the user in response to the user accessing an application and/or service of the aggregation module 104.
在某些实施例中,本地认证模块302可以在用户的硬件设备102上加密和/或以其他方式保护与不同用户相关联的电子凭证和/或下载的数据,以使得用户可以不访问与不同的用户相关的数据,但是一旦将该数据发送到不同用户的硬件设备102、后端服务器110等,不同的用户就可以访问该数据。不同硬件设备102,110的本地认证模块302可以协作以通过数据网络106将数据(例如,一个或多个电子凭证、下载的数据等)从一个硬件设备102,110安全地传输到另一个硬件设备102,110。在另一个实施例中,本地认证模块302可以确保用户的电子凭证和/或下载的数据保持在单个硬件设备102上(例如,不在数据网络106上传输),保持在安全存储库中等,并且不存储在和/或不可访问后端服务器110、另一个用户的硬件设备102上,等等。In some embodiments, the local authentication module 302 can encrypt and/or otherwise protect electronic credentials and/or downloaded data associated with a different user on the user's hardware device 102 so that the user cannot access data related to the different user, but the different user can access the data once the data is sent to the different user's hardware device 102, backend server 110, etc. The local authentication modules 302 of different hardware devices 102, 110 can cooperate to securely transmit data (e.g., one or more electronic credentials, downloaded data, etc.) from one hardware device 102, 110 to another hardware device 102, 110 over the data network 106. In another embodiment, the local authentication module 302 can ensure that the user's electronic credentials and/or downloaded data remain on a single hardware device 102 (e.g., not transmitted over the data network 106), remain in a secure repository, etc., and are not stored on and/or inaccessible to the backend server 110, another user's hardware device 102, etc.
在一个实施例中,网络认证模块304在用户的硬件设备102上、在后端服务器110等上接收和/或存储用于一个或多个第三方服务提供商108的用户的电子凭证。在各种实施例中,网络认证模块304可以从用户、从用户的硬件设备102、从后端服务器110等接收用户的电子凭证。网络认证模块304可以与直接访问模块204协作以向第三方服务提供商108的服务器108提供用户的电子凭证(例如,网络认证模块304可以向直接访问模块204提供电子凭证以将其提供给服务器108,网络认证模块304可以将电子凭证直接提供给服务器108,等等)。In one embodiment, the network authentication module 304 receives and/or stores the user's electronic credentials for one or more third-party service providers 108 on the user's hardware device 102, on a backend server 110, etc. In various embodiments, the network authentication module 304 may receive the user's electronic credentials from the user, from the user's hardware device 102, from a backend server 110, etc. The network authentication module 304 may cooperate with the direct access module 204 to provide the user's electronic credentials to a server 108 of a third-party service provider 108 (e.g., the network authentication module 304 may provide the electronic credentials to the direct access module 204 to provide it to the server 108, the network authentication module 304 may provide the electronic credentials directly to the server 108, etc.).
在某些实施例中,网络认证模块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等存储可以基于根据用户输入而定义的设置,以便用户可以决定安全级别等。In some embodiments, the network authentication module 304 can cooperate with the local authentication module 302 to encrypt and/or otherwise protect the user's electronic credentials for one or more third-party service providers 108 on the user's hardware device 102, on the data network 106, on a different user's hardware device 102, on a backend server 110, while providing the user's electronic credentials to the servers 108 of the third-party service providers 108, etc. In another embodiment, the network authentication module 304 ensures that the user's electronic credentials are only stored on the user's hardware device 102 and sent from the user's hardware device 102 to the servers 108 of the third-party service providers 108, and does not store the user's electronic credentials on the backend server 110, on a different user's hardware device 102, etc. In another embodiment, the network authentication module 304 can securely store (e.g., using secure encryption) a user's electronic credentials for a third-party service provider 108 on a backend server 110, on a different user's hardware device 102, etc., so that, as described below with respect to the routing module 314, the direct access module 204 can access and/or download data associated with the user even if the user's hardware device 102 is unavailable, blocked, etc. In some embodiments, whether the network authentication module 304 and/or the local authentication module 302 allows the electronic credentials to be sent to and/or stored by a different user's hardware device 102, backend server 110, etc. can be based on settings defined based on user input so that the user can determine the security level, etc.
在一个实施例中,密码管理器模块306可以管理和/或存储用于多个第三方服务提供商108的用户的电子凭证,以使得直接访问模块204可以从多个第三方服务提供商108中的每一个访问和/或下载与用户相关的数据。在某些实施例中,密码管理器模块306可以生成和/或以其他方式管理用于多个第三方服务提供商108中的每一个的不同的安全的凭证。In one embodiment, the password manager module 306 can manage and/or store the user's electronic credentials for multiple third-party service providers 108 so that the direct access module 204 can access and/or download data related to the user from each of the multiple third-party service providers 108. In certain embodiments, the password manager module 306 can generate and/or otherwise manage different secure credentials for each of the multiple third-party service providers 108.
在一个实施例中,密码管理器模块306可以在用户的硬件设备102上安全地存储生成的用户的凭证,以使得用户不必记住和输入生成的电子凭证。例如,除了允许直接访问模块204使用生成的电子凭证访问第三方服务提供商108之外,密码管理器模块306可以响应于用户在网络浏览器中访问网页等,将电子凭证(例如,用户名、密码)自动填写到接口网页上的表单的一个或多个接口元素,而无需用户手动输入电子凭证。在某些实施例中,密码管理器模块306可以响应于用户的请求、响应于第三方服务提供商108的请求、和/或在另一时间段或响应于另一个周期性触发,而周期性地更新(例如,重新生成不同的凭证(例如,不同的密码),并且利用重新生成的不同凭证更新用户在第三方服务提供商108的账户)用户的电子凭证,例如,每周、每月、每两个月、每三个月、每四个月、每五个月、每六个月、每年、每两年。In one embodiment, the password manager module 306 can securely store the generated user's credentials on the user's hardware device 102 so that the user does not have to remember and enter the generated electronic credentials. For example, in addition to allowing the direct access module 204 to access the third-party service provider 108 using the generated electronic credentials, the password manager module 306 can automatically fill in the electronic credentials (e.g., username, password) into one or more interface elements of a form on the interface web page in response to the user accessing a web page in a web browser, etc., without requiring the user to manually enter the electronic credentials. In some embodiments, the password manager module 306 can periodically update (e.g., regenerate different credentials (e.g., different passwords) and update the user's account with the third-party service provider 108 using the regenerated different credentials) the user's electronic credentials, for example, weekly, monthly, every two months, every three months, every four months, every five months, every six months, every year, or every two years, in response to a request from the user, in response to a request from the third-party service provider 108, and/or at another time period or in response to another periodic trigger.
在一个实施例中,密码管理器模块306可以在用户的不同硬件设备102、网页浏览器等中同步用户的电子凭证(例如,由用户提供的电子凭证、由密码管理器模块306生成的电子凭证,等等)。例如,响应于密码管理器模块306和/或用户更新或以其他方式改变电子凭证,密码管理器模块306可以将该更新/改变传播到用户的不同硬件设备102上的一个或多个其他密码管理器模块306等。In one embodiment, the password manager module 306 can synchronize the user's electronic credentials (e.g., electronic credentials provided by the user, electronic credentials generated by the password manager module 306, etc.) across the user's different hardware devices 102, web browsers, etc. For example, in response to the password manager module 306 and/or the user updating or otherwise changing the electronic credentials, the password manager module 306 can propagate the update/change to one or more other password manager modules 306 on the user's different hardware devices 102, etc.
在一个实施例中,模式模块308确定第三方服务提供商108的一个或多个服务器108上的供直接访问模块204访问该服务器的多个位置(例如,其可以包括除了存储和/或访问用户的数据位置之外的位置)的有序列表(例如,模式、脚本等),供直接访问模块204在访问服务器108上的不同位置之间等待的一个或多个延迟,和/或访问服务器的数据的访问模式的其他部分。在某些实施例中,位置包括第三方服务提供商108的一个或多个服务器提供的独立可寻址和/或可访问的内容和/或资产,等等,例如,网页、网页的一部分、图像或其他数据文件、数据库或其他数据存储器、移动应用程序的页面或其一部分,等等。在一个实施例中,模式模块308确定包含一个或多个位置和/或延迟的模式/有序列表,这些位置和/或延迟对于直接访问模块204访问或使用服务器以下载所需数据来说不是必需的,其实,模式/有序列表可能使第三方服务提供商108难以或不可能将访问第三方服务提供商108的服务器的直接访问模块204和访问第三方服务提供商的服务器的用户区分开来。In one embodiment, the pattern module 308 determines an ordered list (e.g., a pattern, script, etc.) of multiple locations (e.g., which may include locations other than locations where data of a user is stored and/or accessed) on one or more servers of a third-party service provider 108 for the direct access module 204 to access the server, one or more delays for the direct access module 204 to wait between accessing different locations on the server 108, and/or other portions of an access pattern for accessing data from the server. In some embodiments, the locations include independently addressable and/or accessible content and/or assets provided by one or more servers of the third-party service provider 108, such as a web page, a portion of a web page, an image or other data file, a database or other data storage, a page or portion of a mobile application, and the like. In one embodiment, the pattern module 308 determines a pattern/ordered list that includes one or more locations and/or delays that are not necessary for the direct access module 204 to access or use the server to download the requested data, and in fact, the pattern/ordered list may make it difficult or impossible for the third-party service provider 108 to distinguish between the direct access module 204 accessing the server of the third-party service provider 108 and a user accessing the server of the third-party service provider.
在一个实施例中,模式模块308可以基于在使用网络浏览器、移动应用程序等访问第三方服务提供商108的多个用户的行为中识别出的或者基于上述行为识别出的平均模式或组合模式,确定和/或选择多个位置和/或一个或多个延迟(例如,模式/有序列表)。在一个实施例中,模式模块308可以在一个或多个用户访问第三方服务提供商108的服务器时对该一个或多个用户进行监视(例如,预定的时间段等),跟踪一个或多个用户访问了哪些链接、数据、网页和/或其他位置,一个或多个用户访问不同位置用了多长时间,一个或多个用户访问多个位置的顺序等。在某些实施例中,一个或多个受监视的用户可以是已经向模式模块308提供授权以临时或永久地监视用户的访问的志愿者,以便为直接访问模块204提供更实际的访问模式以用于访问第三方服务提供商108的服务器。In one embodiment, the pattern module 308 may determine and/or select a plurality of locations and/or one or more delays (e.g., a pattern/ordered list) based on an average or combined pattern identified from the behavior of a plurality of users accessing the third-party service provider 108 using a web browser, mobile application, or the like, or based on such behavior. In one embodiment, the pattern module 308 may monitor the one or more users as they access the servers of the third-party service provider 108 (e.g., for a predetermined period of time, etc.), tracking which links, data, web pages, and/or other locations the one or more users access, how long the one or more users take to access different locations, the order in which the one or more users access the multiple locations, etc. In some embodiments, the one or more monitored users may be volunteers who have provided authorization to the pattern module 308 to monitor the users' access, either temporarily or permanently, in order to provide the direct access module 204 with a more realistic access pattern for accessing the servers of the third-party service provider 108.
在另一个实施例中,模式模块308基于在与其上设有模式模块308的硬件设备102相关联的用户的行为中识别出的模式来确定和/或选择多个位置和/或访问不同位置之间的一个或多个延迟,用户的行为包括使用用户的硬件设备102的web浏览器、移动或桌面应用或其他接口来访问第三方服务。例如,模式模块308可以包括用户的硬件设备102的网络硬件(例如,与数据网络106通信以监视与第三方服务提供商108的服务器的数据和/或交互的网络访问卡和/或芯片、处理器、FPGA、ASIC等)、网络浏览器插件或扩展程序、在用户的硬件设备102的处理器上执行的移动和/或桌面应用程序等。模式模块308可以向用户请求并获得用户的授权以监视通过用户的硬件设备102对一个或多个第三方服务提供商108的一个或多个服务器作出的用户活动。In another embodiment, the pattern module 308 determines and/or selects multiple locations and/or one or more delays between visiting different locations based on patterns identified in the behavior of a user associated with the hardware device 102 on which the pattern module 308 is located, the user's behavior including accessing a third-party service using a web browser, mobile or desktop application, or other interface of the user's hardware device 102. For example, the pattern module 308 may include network hardware of the user's hardware device 102 (e.g., a network access card and/or chip, processor, FPGA, ASIC, etc. that communicates with the data network 106 to monitor data and/or interactions with servers of third-party service providers 108), a web browser plug-in or extension, a mobile and/or desktop application executed on a processor of the user's hardware device 102, etc. The pattern module 308 may request and obtain authorization from the user to monitor user activity made to one or more servers of one or more third-party service providers 108 via the user's hardware device 102.
在某些实施例中,模式模块308可以基于检测到的一个或多个用户的访问模式的变化等而随时间更新模式/有序列表。在一个实施例中,模式模块308可以与如下所述的访问修复模块310协调和/或协作,以响应于对第三方服务提供商108的服务器108和/或与用户相关的数据变得中断和/或无法访问而更新模式/有序列表。In certain embodiments, the pattern module 308 may update the pattern/ordered list over time based on detected changes in access patterns of one or more users, etc. In one embodiment, the pattern module 308 may coordinate and/or collaborate with the access repair module 310 , described below, to update the pattern/ordered list in response to a server 108 of a third-party service provider 108 and/or data associated with a user becoming disrupted and/or inaccessible.
在一个实施例中,访问修复模块310检测到对第三方服务108的服务器108的访问和/或与用户相关的数据中断和/或变得不可访问。在某些实施例中,访问修复模块310向用户提供接口,以允许用户以图形方式识别用户电子凭证的输入位置、与用户相关的数据的位置等。例如,访问修复模块310可以提供GUI、命令行接口(CLI)、API和/或允许终端用户识别电子凭证的输入位置、提交电子凭证的动作、数据的位置等的另一接口。在一个实施例中,访问修复模块310在用户的硬件设备102上向用户提供接口。In one embodiment, the access repair module 310 detects that access to a server 108 of a third-party service 108 and/or data associated with the user is interrupted and/or becomes inaccessible. In some embodiments, the access repair module 310 provides an interface to the user to allow the user to graphically identify the location where the user's electronic credentials were entered, the location of data associated with the user, etc. For example, the access repair module 310 may provide a GUI, a command line interface (CLI), an API, and/or another interface that allows the end user to identify the location where the electronic credentials were entered, the action of submitting the electronic credentials, the location of the data, etc. In one embodiment, the access repair module 310 provides the interface to the user on the user's hardware device 102.
在某些实施例中,例如,如下面根据图5A-5B更详细描述的,访问修复模块310可以将接口叠加在用户的硬件设备102的电子显示屏上的第三方服务提供商108的网站的一个或多个页面上。访问修复模块310可以向多个用户提供一个或多个接口(例如,GUI、CLI、API、叠加等),以允许多个用户对用于访问第三方服务提供商108的服务器(例如,通过不同的硬件设备102或者网络106上的类似物以分布式和/或分散式的方式访问等)的修复和/或更新进行定义。5A-5B , the access repair module 310 may overlay an interface on one or more pages of a website of the third-party service provider 108 on an electronic display screen of a user's hardware device 102. The access repair module 310 may provide one or more interfaces (e.g., a GUI, a CLI, an API, an overlay, etc.) to multiple users to allow the multiple users to define repairs and/or updates for accessing a server of the third-party service provider 108 (e.g., accessed in a distributed and/or decentralized manner across different hardware devices 102 or the like on the network 106, etc.).
在某些实施例中,访问修复模块310可以确定和/或显示针对用户的一个或多个建议504和/或推荐504,用户可以对其进行确认或更改/修正(例如,在基本接口、标准接口、初始用户接口中,等等)。例如,访问修复模块310可以显示一个或多个接口元素,其具有供用户输入用户名的建议位置、供用户输入密码的建议位置、建议的凭证提交动作、建议的与以用户有关的数据的位置和/或允许用户以图形方式识别第三方服务提供商108的网站内的一个或多个位置的一个或多个其他接口元素。In some embodiments, the access repair module 310 can determine and/or display one or more suggestions 504 and/or recommendations 504 for the user, which the user can confirm or change/revise (e.g., in a base interface, a standard interface, an initial user interface, etc.). For example, the access repair module 310 can display one or more interface elements having a suggested location for the user to enter a username, a suggested location for the user to enter a password, a suggested credential submission action, a suggested location for data related to the user, and/or one or more other interface elements that allow the user to graphically identify one or more locations within the website of the third-party service provider 108.
在某些实施例中,访问修复模块310处理服务器108上的一个或多个页面和/或其他位置(例如,一个或多个网站、网络应用程序等)以确定对用户电子凭证的输入位置、提交用户的电子凭证的动作、与用户相关的数据的位置等的估计和/或预测。在一个实施例中,访问修复模块310可以估计一个或多个位置和/或动作(例如,通过扫描和/或解析网站的一个或多个页面,基于来自访问网站的一个或多个页面的其他用户的输入,基于用户与网站的一个或多个页面的先前交互,使用网站的机器学习和/或人工智能分析进行的预测,基于对网站和/或一个或多个类似网站的一个或多个页面的历史变化的统计分析,等等)。访问修复模块310可以在接口中向用户显示对于用户的电子凭证的输入位置、与用户相关联的数据的位置等的估计和/或预测,以使得用户可以使用该接口确认估计和/或预测是否正确。In some embodiments, the access repair module 310 processes one or more pages and/or other locations on the server 108 (e.g., one or more websites, web applications, etc.) to determine estimates and/or predictions of the location where the user's electronic credentials were entered, the action of submitting the user's electronic credentials, the location of data associated with the user, etc. In one embodiment, the access repair module 310 may estimate the one or more locations and/or actions (e.g., by scanning and/or parsing one or more pages of the website, based on input from other users who visited one or more pages of the website, based on the user's previous interactions with one or more pages of the website, predictions made using machine learning and/or artificial intelligence analysis of the website, based on statistical analysis of historical changes to one or more pages of the website and/or one or more similar websites, etc.). The access repair module 310 may display the estimates and/or predictions of the location where the user's electronic credentials were entered, the location of data associated with the user, etc. to the user in an interface so that the user can use the interface to confirm whether the estimates and/or predictions are correct.
访问修复模块310可以使用指向位置的箭头或其他指向指示符;位置的链接或其他标识符;围绕位置的框或其他高亮显示;通过改变位置的文本标签来使文本变成粗体、斜体和/或加下划线等等,来指示一个或多个估计的位置和/或动作。在某些实施例中,用户可以点击、选择或以其他方式识别位置以确认或改变/校正访问修复模块310建议的位置。例如,用户可以点击或以其他方式选择与位置和/或动作相关的接口元素,并且可以点击或以其他方式选择该位置和/或执行该动作,访问修复模块310可以对上述操作进行记录(例如,自动填写标识位置和/或动作的文本字段、记录供不同用户使用的在没有用户的情况下可自动重复的动作的宏等等)。The access repair module 310 may indicate one or more estimated locations and/or actions using an arrow or other pointing indicator pointing to the location; a link or other identifier for the location; a box or other highlighting around the location; changing the location's text label to make the text bold, italic, and/or underlined, etc. In some embodiments, a user may click on, select, or otherwise identify a location to confirm or change/correct the location suggested by the access repair module 310. For example, a user may click on or otherwise select an interface element associated with a location and/or action, and may click on or otherwise select the location and/or perform the action, and the access repair module 310 may record the above actions (e.g., automatically fill in text fields identifying locations and/or actions, record macros of actions that can be automatically repeated without the user for use by different users, etc.).
在某些实施例中,替代或除了标准、基本或初始用户接口之外,访问修复模块310可以为有经验的用户等提供高级接口,其具有网站的源代码和/或网站的其他细节。例如,在一个实施例中,高级访问修复接口可以允许一个或多个高级用户识别网站的源代码内的一个或多个位置和/或动作,其在网站本身中可能不可见和/或不明显。在某些实施例中,访问修复模块310可以提供用户接口元素,其允许用户在标准用户接口或视图与高级用户接口或视图之间选择和/或切换接口。In some embodiments, instead of or in addition to the standard, basic, or initial user interface, the access repair module 310 can provide an advanced interface for experienced users and the like that has the source code of the website and/or other details of the website. For example, in one embodiment, the advanced access repair interface can allow one or more advanced users to identify one or more locations and/or actions within the source code of the website that may not be visible and/or obvious in the website itself. In some embodiments, the access repair module 310 can provide a user interface element that allows the user to select and/or switch the interface between a standard user interface or view and an advanced user interface or view.
在一个实施例中,测试模块318与访问修复模块310协作以验证从用户接收到的一个或多个位置和/或指令是否准确(例如,可用于访问第三方服务提供商108的服务器的数据)。在某些实施例中,测试模块318试图基于访问修复模块310从单个用户接收到的标识,使用不同用户的电子凭证等访问用于多个不同用户(例如,样本组或测试集)的第三方服务提供商108的服务器108。In one embodiment, the testing module 318 cooperates with the access repair module 310 to verify that one or more locations and/or instructions received from a user are accurate (e.g., data that can be used to access a server of a third-party service provider 108). In some embodiments, the testing module 318 attempts to access a server 108 of a third-party service provider 108 for multiple different users (e.g., a sample group or test set) using the different users' electronic credentials, etc., based on an identification received from a single user by the access repair module 310.
在某些实施例中,测试模块318确定是否可以使用单个用户的标识访问与不同用户(例如,样本组或测试集)相关的数据。测试模块318可以使用访问修复模块310从不同用户接收到的标识(例如,在不同的硬件设备102上,并通过数据网络106发送到单个硬件设备102上的测试模块318、通过数据网络106发送到不同硬件设备102上的多个测试模块318、发送到中央后端服务器110上的测试模块318,等等),重复尝试访问第三方服务提供商108的数据。In some embodiments, the testing module 318 determines whether data associated with different users (e.g., a sample group or test set) can be accessed using the identifier of a single user. The testing module 318 can repeatedly attempt to access data from the third-party service provider 108 using identifiers received from different users by the access repair module 310 (e.g., on different hardware devices 102 and sent over the data network 106 to a testing module 318 on a single hardware device 102, to multiple testing modules 318 on different hardware devices 102 over the data network 106, to a testing module 318 on a central backend server 110, etc.).
在一个实施例中,测试模块318将来自用户的一个或多个标识提供给直接访问模块204的其他实例(例如,其他测试模块318),以响应于满足阈值的不同用户(例如,样本组或测试集)的数量而访问第三方服务提供商108的服务器108,其中,该多个不同用户可使用单个用户的标识访问服务器108的数据。例如,如果单个用户的标识成功地允许预定数量的其他测试用户(例如,2个用户、10个用户、100个用户、1000个用户、50%的测试用户、75%的测试用户和/或另一个预定阈值数量的测试用户)通过第三方服务提供商108访问她们的数据,则测试模块318可以基于该标识向更多用户(例如,全部或基本上所有用户等)提供指令。In one embodiment, the testing module 318 provides one or more identifications from the user to other instances of the direct access module 204 (e.g., other testing modules 318) to access the server 108 of the third-party service provider 108 in response to a threshold number of different users (e.g., a sample group or test set) that can access data on the server 108 using the identification of the single user. For example, if the identification of the single user successfully allows a predetermined number of other test users (e.g., 2 users, 10 users, 100 users, 1000 users, 50% of the test users, 75% of the test users, and/or another predetermined threshold number of test users) to access their data through the third-party service provider 108, the testing module 318 can provide instructions to more users (e.g., all or substantially all users, etc.) based on the identification.
在某些实施例中,测试模块318可以逐步地增加包括多个用户的测试范围,其中,测试模块318向多个用户提供使用单个用户的标识从第三方服务提供商108访问她们的数据的指令(例如,从一个或多个测试用户开始,增加到两个或更多个、三个或更多个、四个或更多个、五个或更多个、十个或更多个、二十或更多个、三十或更多个、四十或更多个、五十或更多个、一百或更多个、五百或更多个、一千或更多个、五千或更多个、一万或更多个、十万或更多个、百万或更多个、和/或其他逐步增加的测试用户数量)。在一个实施例中,如下面根据层级模块312所更具体的描述的,测试模块318包括基于单个用户的标识的指令,该指令在用于访问第三方服务提供商108的服务器108的多个不同的指令组的有序列表中。In some embodiments, the testing module 318 can progressively increase the scope of the test to include multiple users, wherein the testing module 318 provides multiple users with instructions to access their data from the third-party service provider 108 using the identification of a single user (e.g., starting with one or more test users and increasing to two or more, three or more, four or more, five or more, ten or more, twenty or more, thirty or more, forty or more, fifty or more, one hundred or more, five hundred or more, one thousand or more, five thousand or more, ten thousand or more, one hundred thousand or more, one million or more, and/or other progressively increasing numbers of test users). In one embodiment, as described in more detail below with respect to the hierarchy module 312, the testing module 318 includes instructions based on the identification of a single user in an ordered list of a plurality of different instruction groups for accessing the server 108 of the third-party service provider 108.
在某些实施例中,测试模块318被配置为基于一个或多个用户的一个或多个信任因子(例如,分数等)对一个或多个用户的标识进行优先级排序。在一个实施例中,信任因子可以包括指示用户标识正确的可能性的分数或其他元数据。例如,在各种实施例中,信任因子可以包括和/或基于用户的先前标识的历史(例如,正确或不正确),用户与一个或多个聚合模块104的提供商(例如,创建者、卖主、所有者、销售者、转售者、制造商、后端服务器110等)的密切关系,来自其他用户的积极和/或消指示(例如,投票、喜欢、使用、反馈、星号评价、认可等等),和/或用户标识是否可能是正确的其他指示。测试模块318可以基于与用户相关的一个或多个信任因子来确定有多少其他用户提供用户的标识(例如,响应于较高的信任因子而加快向其他用户提供用户标识的速率,响应于较低的信任因子而降低向其他用户提供用户标识的速率,等等)In some embodiments, the testing module 318 is configured to prioritize the identification of one or more users based on one or more trust factors (e.g., scores, etc.) of the one or more users. In one embodiment, the trust factor may include a score or other metadata indicating the likelihood that the user's identification is correct. For example, in various embodiments, the trust factor may include and/or be based on the user's history of previous identifications (e.g., correct or incorrect), the user's close relationship with one or more providers of the aggregation module 104 (e.g., creator, vendor, owner, seller, reseller, manufacturer, backend server 110, etc.), positive and/or negative indications from other users (e.g., votes, likes, usage, feedback, star ratings, endorsements, etc.), and/or other indications of whether the user's identification is likely to be correct. The testing module 318 may determine how many other users provide the user's identification based on the one or more trust factors associated with the user (e.g., speed up the rate at which the user's identification is provided to other users in response to a higher trust factor, slow down the rate at which the user's identification is provided to other users in response to a lower trust factor, etc.)
测试模块318可以提供叠加接口,其允许管理员、调节者用户等移除标识、调整和/或叠加标识、调整和/或叠加用户的信任因子、禁止用户提供标识、和/或以其他方式叠加用户或用户的标识。在各种实施例中,测试模块318可以向管理员和/或调节者提供如GUI,API,CLI等的叠加接口。The testing module 318 may provide an overlay interface that allows an administrator, moderator user, or the like to remove identification, adjust and/or overlay identification, adjust and/or overlay a user's trust factor, prohibit a user from providing identification, and/or otherwise overlay a user or user's identification. In various embodiments, the testing module 318 may provide an overlay interface such as a GUI, an API, a CLI, or the like to the administrator and/or moderator.
在某些实施例中,当测试模块318测试并使用最有效的解决方案等(例如,基于来自一个或多个用户的指示的多组指令)时,测试模块318使一个或多个聚合模块104及其聚合服务自我修复、自测试和/或自递增部署。In certain embodiments, the testing module 318 enables one or more aggregation modules 104 and their aggregation services to self-heal, self-test, and/or self-incrementally deploy as the testing module 318 tests and uses the most effective solutions, etc. (e.g., based on multiple sets of instructions from one or more users).
在一个实施例中,层级模块312向直接访问模块204提供多个不同的指令组的有序列表,该多个不同的指令组用于使用用户的电子凭证访问第三方服务提供商108的服务器108、用于下载与用户相关的数据等。在某些实施例中,每个不同的一组指令包括输入用户的电子凭证的位置、提交用户的电子凭证的指令、与用户相关的数据的一个或多个位置等。In one embodiment, the hierarchy module 312 provides the direct access module 204 with an ordered list of a plurality of different sets of instructions for accessing a server 108 of a third-party service provider 108 using the user's electronic credentials, for downloading data associated with the user, etc. In some embodiments, each different set of instructions includes a location for entering the user's electronic credentials, instructions for submitting the user's electronic credentials, one or more locations for data associated with the user, etc.
在一个实施例中,层级模块312可以从后端服务器110(例如,后端服务器110的后端聚合模块104b)、以点对点方式从另一个用户硬件设备102(例如,用户硬件设备102的聚合模块104a)、从测试模块318等接收一组或多组指令。在某些实施例中,层级模块312可基于不同用户硬件设备102和/或用户等对多个不同的指令组的成功和/或不成功使用的历史记录,接收已经存在于有序列表(例如,全局分级次序)中的多个不同的指令组。在一个实施例中,层级模块312可以基于用户(例如,通过用户的一个或多个硬件设备102)对多个不同的指令组的成功和/或不成功使用的历史记录,从多个不同的指令组中为单个用户确定层级和/或创建有序列表(例如,定制或个性化层级)。In one embodiment, the hierarchy module 312 may receive one or more sets of instructions from a backend server 110 (e.g., the backend aggregation module 104b of the backend server 110), in a peer-to-peer manner from another user hardware device 102 (e.g., the aggregation module 104a of the user hardware device 102), from a testing module 318, etc. In some embodiments, the hierarchy module 312 may receive a plurality of different instruction groups that already exist in an ordered list (e.g., a global hierarchical order) based on a history of successful and/or unsuccessful use of the plurality of different instruction groups by different user hardware devices 102 and/or users, etc. In one embodiment, the hierarchy module 312 may determine a hierarchy and/or create an ordered list (e.g., a customized or personalized hierarchy) for a single user from the plurality of different instruction groups based on a history of successful and/or unsuccessful use of the plurality of different instruction groups by the user (e.g., via one or more of the user's hardware devices 102).
在一个实施例中,直接访问模块104可以按照列表的顺序遍历用于访问第三方服务提供商108的服务器108的多组指令的有序列表,直到其中一组指令是成功的并且直接访问模块104能够从第三方服务提供商108访问和/或下载数据。在一个实施例中,层级模块312可以将最近最成功使用的一组指令放置在顶部(例如,作为尝试的第一组指令)。例如,用户的硬件设备102的层级模块312可以响应于直接访问模块204使用一组指令成功从第三方服务提供商108访问和/或下载数据而将该组用于访问第三方服务提供商108的指令放置在列表的顶部(例如,随着时间调整列表的顺序)。在某些实施例中,层级模块312可以接收以第一顺序(例如,全局顺序)排列的用于访问第三方服务提供商108的服务器108的多个不同的指令组的有序列表,并且可以基于单个用户/硬件设备102的使用而随着时间推移动态地调整和/或重新排列多个不同的指令组(例如,如果使用一组指令进行访问对于用户/硬件设备102来说是成功的,则将该组指令在列表中向上移动,如果使用一组指令进行访问对于用户/硬件设备102来说是不成功的,则将该组指令在列表中向下移动)。In one embodiment, the direct access module 104 may traverse the ordered list of multiple sets of instructions for accessing the servers 108 of the third-party service providers 108 in the order of the list until one of the sets of instructions is successful and the direct access module 104 is able to access and/or download data from the third-party service provider 108. In one embodiment, the hierarchy module 312 may place the set of instructions that was most recently used successfully at the top (e.g., as the first set of instructions to be attempted). For example, the hierarchy module 312 of the user's hardware device 102 may place a set of instructions for accessing the third-party service provider 108 at the top of the list in response to the direct access module 204 successfully accessing and/or downloading data from the third-party service provider 108 using the set of instructions (e.g., adjusting the order of the list over time). In some embodiments, the hierarchy module 312 can receive an ordered list of multiple different instruction groups for accessing a server 108 of a third-party service provider 108 arranged in a first order (e.g., a global order), and can dynamically adjust and/or rearrange the multiple different instruction groups over time based on usage by a single user/hardware device 102 (e.g., if access using a set of instructions is successful for the user/hardware device 102, then move the set of instructions up in the list, and if access using a set of instructions is unsuccessful for the user/hardware device 102, then move the set of instructions down in the list).
在某些实施例中,层级模块312可以被配置为通过数据网络106与另一个用户的硬件设备102的层级模块312共享一组或多组指令、多组指令的有序列表等(例如,以点对点的方式和另一个用户的硬件设备102直接共享,以后端服务器110的后端聚合模块104b的方式间接共享)。在各种实施例中,由于不同的账户类型、不同的账户设置、不同的源系统(例如,由于公司收购等,同一第三方服务提供商108的不同用户可能具有一个或多个不同的设置,不同的访问方法等),系统改变或升级,和/或同一第三方服务提供商108的不同用户的账户、服务等的其他差异,多个不同的指令组对于不同的用户来说可能会成功,也可能会失败。In some embodiments, the hierarchy module 312 can be configured to share one or more sets of instructions, ordered lists of multiple sets of instructions, etc., with the hierarchy module 312 of another user's hardware device 102 via the data network 106 (e.g., directly with the hardware device 102 of another user in a peer-to-peer manner, or indirectly via the backend aggregation module 104b of the backend server 110). In various embodiments, multiple different sets of instructions may succeed or fail for different users due to different account types, different account settings, different source systems (e.g., different users of the same third-party service provider 108 may have one or more different settings, different access methods, etc. due to company acquisitions, etc.), system changes or upgrades, and/or other differences in accounts, services, etc., between different users of the same third-party service provider 108.
在一个实施例中,路由模块314确定用户的硬件设备102是否可用于直接访问模块204从第三方服务提供商108的服务器108下载与用户相关的数据。在某些实施例中,路由模块314可以响应于路由模块314确定用户的硬件设备102不可用,而使用用户的电子凭证通过远程后端服务器110访问第三方服务提供商108的服务器108以将与用户相关的数据从服务器108下载到远程后端服务器110。在一个实施例中,路由模块314基于下载到远程后端服务器110的与用户相关的数据,在用户的硬件设备102上向用户提供一个或多个警报(例如,从第三方服务提供商108下载的数据、基于来自第三方服务提供商108的数据而确定的推荐或建议、基于在来自第三方服务提供商108的数据中检测到的事件或其他触发而发出的通知或其他警报,等等)。In one embodiment, the routing module 314 determines whether the user's hardware device 102 is available for the direct access module 204 to download the data associated with the user from the server 108 of the third-party service provider 108. In some embodiments, the routing module 314 may, in response to the routing module 314 determining that the user's hardware device 102 is unavailable, use the user's electronic credentials to access the server 108 of the third-party service provider 108 through the remote backend server 110 to download the data associated with the user from the server 108 to the remote backend server 110. In one embodiment, the routing module 314 provides one or more alerts (e.g., data downloaded from the third-party service provider 108, recommendations or suggestions determined based on the data from the third-party service provider 108, notifications or other alerts based on events or other triggers detected in the data from the third-party service provider 108, etc.) to the user on the user's hardware device 102 based on the data associated with the user downloaded to the remote backend server 110.
在某些实施例中,路由模块314保持和/或存储与单个用户和/或账户相关联的多个硬件设备102的列表。响应于确定与用户和/或账户相关联的一个硬件设备102不可用(例如,断电、处于飞行模式、未连接到数据网络106等),路由模块314可以通过用户和/或账户的不同的可用硬件设备102访问第三方服务提供商108的服务器108,可以在不同的可用硬件设备102上提供一个或多个通知或其他警报等。在下面根据图4A-4C所描述的各种实施例中,路由模块314可以以安全的方式在多个硬件设备之间向用户动态地路由从第三方服务提供商108下载的数据,例如,该多个硬件设备是用户的一个或多个硬件设备102、不同用户的一个或多个硬件设备102、一个或多个后端服务器110和/或另一个硬件设备。In some embodiments, the routing module 314 maintains and/or stores a list of multiple hardware devices 102 associated with a single user and/or account. In response to determining that one hardware device 102 associated with the user and/or account is unavailable (e.g., powered off, in airplane mode, not connected to the data network 106, etc.), the routing module 314 can access the server 108 of the third-party service provider 108 through a different available hardware device 102 of the user and/or account, can provide one or more notifications or other alerts on the different available hardware device 102, etc. In various embodiments described below with respect to Figures 4A-4C, the routing module 314 can dynamically route data downloaded from the third-party service provider 108 to the user between multiple hardware devices in a secure manner, for example, one or more hardware devices 102 of the user, one or more hardware devices 102 of a different user, one or more backend servers 110, and/or another hardware device.
在一个实施例中,路由模块314可以在用于为同一用户周期性地从第三方服务提供商108下载数据的多个硬件设备102,110(例如,同一用户、不同用户的硬件设备,等等)之间交替或循环。例如,对从其下载数据的设备102,110进行循环和/或交替可以降低下载被错误解读为欺诈或不适当的可能性。在另一个实施例中,路由模块314可以从相同的设备102,110(例如,用户的主硬件设备102、后端服务器110等)下载数据,该设备可以被第三方服务提供商108授权和/或标识为可信设备,等等。In one embodiment, the routing module 314 can alternate or cycle between multiple hardware devices 102, 110 (e.g., hardware devices of the same user, different users, etc.) that are used to periodically download data from the third-party service provider 108 for the same user. For example, cycling and/or alternating the devices 102, 110 from which data is downloaded can reduce the likelihood that the downloads will be misinterpreted as fraudulent or inappropriate. In another embodiment, the routing module 314 can download data from the same device 102, 110 (e.g., the user's primary hardware device 102, the backend server 110, etc.), which can be authorized and/or identified as a trusted device by the third-party service provider 108, etc.
在一个实施例中,频率模块316设置直接访问模块204访问第三方服务提供商108的服务器108的频率。在某些实施例中,频率模块316基于来自可独立于被访问的第三方服务提供商108的远程后端服务器110的输入来确定频率,以使得远程后端服务器110(例如,在远程后端服务器110上执行的频率模块316)确定用于不同用户和/或不同硬件设备102的多个直接访问模块204的频率。例如,频率模块316可以限制单个用户和/或硬件设备102在一段时间内访问相同的第三方服务提供商108的次数不超过允许的阈值次数(例如,每十分钟一次、每半小时一次、每小时一次、一天两次、一天三次、一天四次等)。在某些实施例中,频率模块316限制访问频率以防止第三方服务提供商108无意拒绝服务等。In one embodiment, the frequency module 316 sets the frequency with which the direct access module 204 accesses the server 108 of the third-party service provider 108. In some embodiments, the frequency module 316 determines the frequency based on input from a remote backend server 110, which may be independent of the third-party service provider 108 being accessed, such that the remote backend server 110 (e.g., the frequency module 316 executing on the remote backend server 110) determines the frequency for multiple direct access modules 204 for different users and/or different hardware devices 102. For example, the frequency module 316 can limit a single user and/or hardware device 102 from accessing the same third-party service provider 108 to no more than a threshold number of times allowed within a period of time (e.g., once every ten minutes, once every half hour, once every hour, twice a day, three times a day, four times a day, etc.). In some embodiments, the frequency module 316 limits the access frequency to prevent the third-party service provider 108 from unintentionally denying service, etc.
在某些实施例中,频率模块316可以随着时间动态地调整用户和/或硬件设备102可以访问第三方服务提供商108的频率。例如,频率模块316可以监视多个用户(例如,所有用户、可用用户、活跃用户等)的访问和/或下载以限定或限制对不同的第三方服务提供商108中的每一个的总访问和/或下载带宽(例如,以免过度使用任何单个第三方服务提供商108等)。在一个实施例中,通过这种方式,当较少的其他用户和/或硬件设备102正在访问和/或下载数据时(例如,低峰时间),用户和/或硬件设备102可以以更高的频率访问和/或下载数据,但是当较多其他用户和/或硬件设备102正在访问和/或下载数据时(例如,高峰时间),可以将用户和/或硬件设备102限制为较低的上限或访问频率。In certain embodiments, the frequency module 316 can dynamically adjust the frequency with which a user and/or hardware device 102 can access a third-party service provider 108 over time. For example, the frequency module 316 can monitor the access and/or downloads of multiple users (e.g., all users, available users, active users, etc.) to limit or restrict the total access and/or download bandwidth to each of the different third-party service providers 108 (e.g., to avoid overusing any single third-party service provider 108, etc.). In one embodiment, in this manner, when fewer other users and/or hardware devices 102 are accessing and/or downloading data (e.g., during off-peak hours), the user and/or hardware device 102 can access and/or download data at a higher frequency, but when more other users and/or hardware devices 102 are accessing and/or downloading data (e.g., during peak hours), the user and/or hardware device 102 can be restricted to a lower cap or access frequency.
在另外的实施例中,频率模块316基于用户的输入来确定频率,以允许用户独立于其他用户和/或后端服务器110来设置访问频率。频率模块316可以提供用户接口(例如GUI,CLI,API等),该接口允许用户设置和/或调整使用一个或多个硬件设备102从一个或多个第三方服务提供商108下载数据的访问频率(例如,提供不同的设置,以允许用户为不同的第三方服务提供商108、用户的不同硬件设备102等设置不同的访问频率)。In another embodiment, the frequency module 316 determines the frequency based on user input to allow the user to set the access frequency independently of other users and/or the backend server 110. The frequency module 316 can provide a user interface (e.g., a GUI, a CLI, an API, etc.) that allows the user to set and/or adjust the access frequency for downloading data from one or more third-party service providers 108 using one or more hardware devices 102 (e.g., providing different settings to allow the user to set different access frequencies for different third-party service providers 108, different hardware devices 102 of the user, etc.).
图4A示出了分布式/分散式数据聚合的系统400的一个实施例。在所示的实施例中,系统400包括具有聚合模块104a的单个用户硬件设备102。在某些实施例中,聚合模块104a的认证模块202可以在用户的硬件设备102上本地存储和/或管理用户的电子凭证,直接访问模块204可以直接从用户的硬件设备102(例如,通过数据网络106)访问一个或多个第三方服务提供商108以将与该用户相关的数据下载到用户的硬件设备102,接口模块206可以基于来自用户的硬件设备102的数据向用户提供数据和/或一个或多个警报/消息,等等。在示出的系统400中,聚合模块104a可以在用户的硬件设备102上为用户创建来自一个或多个第三方服务提供商108的数据的本地存储库,而无需将用户的凭证、用户的数据等提供给不同用户的硬件设备、后端服务器110等。FIG4A illustrates one embodiment of a system 400 for distributed/decentralized data aggregation. In the illustrated embodiment, the system 400 includes a single user hardware device 102 having an aggregation module 104a. In certain embodiments, the authentication module 202 of the aggregation module 104a can locally store and/or manage the user's electronic credentials on the user's hardware device 102, the direct access module 204 can access one or more third-party service providers 108 directly from the user's hardware device 102 (e.g., via the data network 106) to download data related to the user to the user's hardware device 102, the interface module 206 can provide data and/or one or more alerts/messages to the user based on the data from the user's hardware device 102, and the like. In the illustrated system 400, the aggregation module 104a can create a local repository of data from one or more third-party service providers 108 for the user on the user's hardware device 102, without requiring the user's credentials, the user's data, etc. to be provided to different user hardware devices, backend servers 110, etc.
图4B示出了分布式/分散式数据聚合的系统402的一个实施例。在所示的实施例中,系统402包括与不同用户相关联的具有聚合模块104a的多个用户硬件设备102。在某些实施例中,第一聚合模块104a(例如,第一聚合模块104a的认证模块202)可以通过数据网络106等将加密的第一用户的用户凭证从第一用户的硬件设备102a安全地提供给第二聚合模块104a(例如,第二聚合模块104a的认证模块202),以使得第二聚合模块104a的直接访问模块204可以通过第二用户的硬件设备102b访问一个或多个第三方服务提供商108(例如,通过数据网络106)以下载与第一用户相关的数据。4B illustrates one embodiment of a system 402 for distributed/decentralized data aggregation. In the illustrated embodiment, the system 402 includes multiple user hardware devices 102 associated with different users each having an aggregation module 104a. In some embodiments, a first aggregation module 104a (e.g., the authentication module 202 of the first aggregation module 104a) may securely provide, via a data network 106 or the like, encrypted user credentials of a first user from the first user's hardware device 102a to a second aggregation module 104a (e.g., the authentication module 202 of the second aggregation module 104a), so that the direct access module 204 of the second aggregation module 104a may access, via the second user's hardware device 102b, one or more third-party service providers 108 (e.g., via the data network 106) to download data associated with the first user.
例如,第二用户的硬件设备102b可以响应于如由路线模块314等所确定的第一用户的硬件设备102a断电、休眠、被阻止访问一个或多个第三方服务提供商108等,而为第一用户下载数据。第二聚合模块104a的接口模块206可以基于下载的数据向第一用户提供一个或多个警报/消息,和/或可以将下载的数据提供给第一用户(例如,响应于第一用户的硬件设备102a变为可用,而将其提供给与第一用户相关联的不同硬件设备102,提供给第一用户可以访问的后端服务器110等)。如上所述,在某些实施例中,认证模块202、直接访问模块204、接口模块206和/或路由模块314可以加密和/或以其他方式保护第一用户的数据(例如,第一用户的电子凭证、下载的与第一用户相关的数据、针对第一用户的警报/消息),以使得第二用户难以或不可能访问第一用户的数据,从而防止和/或最小化对第一用户的数据的未经授权的访问,同时可以在下载第一用户的数据的设备102和/或位置中提供更大的灵活性。For example, the second user's hardware device 102b may download data for the first user in response to the first user's hardware device 102a being powered off, dormant, blocked from accessing one or more third-party service providers 108, etc., as determined by the routing module 314. The interface module 206 of the second aggregation module 104a may provide one or more alerts/messages to the first user based on the downloaded data, and/or may provide the downloaded data to the first user (e.g., to a different hardware device 102 associated with the first user in response to the first user's hardware device 102a becoming available, to a backend server 110 accessible to the first user, etc.). As described above, in some embodiments, the authentication module 202, the direct access module 204, the interface module 206, and/or the routing module 314 may encrypt and/or otherwise protect the first user's data (e.g., the first user's electronic credentials, downloaded data associated with the first user, alerts/messages for the first user) to make it difficult or impossible for the second user to access the first user's data, thereby preventing and/or minimizing unauthorized access to the first user's data, while also providing greater flexibility in the devices 102 and/or locations from which the first user's data is downloaded.
图4C示出了分布式/分散式数据聚合系统404的一个实施例。在所示的实施例中,系统404包括具有一个或多个聚合模块104a的一个或多个用户硬件设备102以及包括一个或多个后端聚合模块104b的一个或多个后端服务器110。在某些实施例中,聚合模块104a的认证模块202可以通过数据网络106等将用户的加密用户凭证从用户的硬件设备102安全地提供给后端服务器110上的后端聚合模块104b(例如,后端聚合模块104b的认证模块202),以使得后端聚合模块104b的直接访问模块204可以通过后端服务器110访问一个或多个第三方服务提供商108(例如,通过数据网络106)以下载与用户相关的数据。4C illustrates one embodiment of a distributed/decentralized data aggregation system 404. In the illustrated embodiment, the system 404 includes one or more user hardware devices 102 having one or more aggregation modules 104a and one or more backend servers 110 including one or more backend aggregation modules 104b. In some embodiments, the authentication module 202 of the aggregation module 104a can securely provide the encrypted user credentials of the user from the user's hardware device 102 to the backend aggregation module 104b (e.g., the authentication module 202 of the backend aggregation module 104b) on the backend server 110 via the data network 106, etc., so that the direct access module 204 of the backend aggregation module 104b can access one or more third-party service providers 108 (e.g., via the data network 106) through the backend server 110 to download data related to the user.
例如,后端服务器110可以响应于如由路由模块314等确定的用户的硬件设备102a断电、休眠、被阻止访问一个或多个第三方服务提供商108等而下载用户的数据。后端聚合模块104b的接口模块206可以基于下载的数据向用户提供一个或多个警报/消息,和/或可以向用户提供下载的数据(例如,响应于用户的硬件设备102a变得可用,而直接从作为网页的后端服务器110和/或通过专用应用程序等等,提供给与第一用户相关联的不同硬件设备102)。For example, the backend server 110 may download the user's data in response to the user's hardware device 102a being powered off, dormant, blocked from accessing one or more third-party service providers 108, etc., as determined by the routing module 314, etc. The interface module 206 of the backend aggregation module 104b may provide one or more alerts/messages to the user based on the downloaded data and/or may provide the downloaded data to the user (e.g., directly from the backend server 110 as a web page and/or through a dedicated application, etc., to a different hardware device 102 associated with the first user in response to the user's hardware device 102a becoming available).
图5A示出了用户接口500的一个实施例。在某些实施例中,接口500由访问修复模块310在硬件设备102的电子显示屏幕上提供给用户,以允许用户图形地识别用户凭证的一个或多个输入位置(例如,用户名的位置、密码的位置等)、用于发送和/或提交用户的凭证的方法(例如,API规范、提交按钮的位置等)、与用户相关的数据的位置(例如,URL或其他链接;链接的网页上的位置;网页506的纯文本和/或源代码内的标签、标记或其他标识符;等等)和/或以图形方式识别用于从第三方服务提供商108访问与用户相关的数据的一个或多个其他指令。5A illustrates one embodiment of a user interface 500. In some embodiments, the interface 500 is provided to a user by the access repair module 310 on an electronic display screen of the hardware device 102 to allow the user to graphically identify one or more input locations for user credentials (e.g., a location for a username, a location for a password, etc.), a method for sending and/or submitting the user's credentials (e.g., an API specification, a location of a submit button, etc.), a location of data associated with the user (e.g., a URL or other link; a location on a linked web page; a tag, markup, or other identifier within the plain text and/or source code of the web page 506; etc.), and/or graphically identify one or more other instructions for accessing data associated with the user from the third-party service provider 108.
在所示的实施例中,访问修复模块310将接口502叠加在用户的硬件设备102的电子显示屏幕上的第三方服务提供商108的网站506的一个或多个页面上。如上所述,在各种实施例中,访问修复模块310可以包括在互联网浏览器内提供接口502的浏览器插件和/或扩展、可以包括在访问修复模块310的应用程序内的嵌入式浏览器、或者可以以其他方式与互联网浏览器集成和/或与通信。In the illustrated embodiment, the access repair module 310 overlays the interface 502 on one or more pages of the third-party service provider's 108 website 506 on the electronic display screen of the user's hardware device 102. As described above, in various embodiments, the access repair module 310 may comprise a browser plug-in and/or extension that provides the interface 502 within an internet browser, may be an embedded browser included within an application of the access repair module 310, or may otherwise be integrated with and/or communicate with an internet browser.
在所示的实施例中,访问修复模块310确定和/或显示对用户的一个或多个建议504和/或推荐504,用户可以确认或改变/修正该建议504和/或推荐504。例如,访问修复模块310可以显示具有供用户输入用户名的建议位置的接口元素504a、具有供用户输入密码的建议位置的接口元素504b、具有建议的凭证提交动作的接口元素504c、具有与用户相关的数据的建议位置的接口元素504d、和/或允许用户图形地识别第三方服务提供商108的网站506内的一个或多个位置的一个或多个其他接口元素。In the illustrated embodiment, the access repair module 310 determines and/or displays one or more suggestions 504 and/or recommendations 504 to the user, which the user can confirm or change/revise. For example, the access repair module 310 can display an interface element 504a with a suggested location for the user to enter a username, an interface element 504b with a suggested location for the user to enter a password, an interface element 504c with a suggested credential submission action, an interface element 504d with a suggested location for data associated with the user, and/or one or more other interface elements that allow the user to graphically identify one or more locations within the website 506 of the third-party service provider 108.
在一个实施例中,接口元素504可以包括访问修复模块310已经确定(例如,通过扫描和/或解析网站506的一个或多个页面、基于来自访问网站506的一个或多个页面的其他用户的输入、基于用户与网站506的一个或多个页面的先前的交互、使用对网站506的机器学习和/或人工智能分析进行的预测,基于对网站506和/或一个或多个类似网站的一个或多个页面的历史改变的统计分析,等等)的估计位置和/或动作的一个或多个标识符,例如,指向位置的箭头或其他指向指示符;位置的链接或其他标识符;围绕位置的框或其他高亮显示;改变位置的文本标签来使文本变成粗体、斜体和/或加下划线;等等。在某些实施例中,用户可以点击、选择或以其他方式识别位置以确认或改变/校正访问修复模块310建议的位置。例如,用户可以点击或以其他方式选择与位置和/或动作相关的接口元素504(例如,以激活选择的接口元素504),并且可以点击或以其他方式选择该位置和/或执行该动作,访问修复模块310可以对上述操作进行记录(例如,例如,自动填写标识位置和/或动作的文本字段、记录允许在没有用户情况下动作自动重复的宏等等)。In one embodiment, interface element 504 may include one or more identifiers of an estimated location and/or action that access repair module 310 has determined (e.g., by scanning and/or parsing one or more pages of website 506, based on input from other users who have visited one or more pages of website 506, based on a user's previous interactions with one or more pages of website 506, predictions made using machine learning and/or artificial intelligence analysis of website 506, based on statistical analysis of historical changes to one or more pages of website 506 and/or one or more similar websites, etc.), such as an arrow or other pointing indicator pointing to the location; a link or other identifier of the location; a box or other highlighting around the location; changing the text label of the location to make the text bold, italic, and/or underlined; etc. In some embodiments, a user may click, select, or otherwise identify a location to confirm or change/correct the location suggested by access repair module 310. For example, a user may click or otherwise select an interface element 504 associated with a location and/or action (e.g., to activate the selected interface element 504), and may click or otherwise select the location and/or perform the action, and the access repair module 310 may record the above operations (e.g., automatically filling in text fields identifying the location and/or action, recording a macro that allows the action to be automatically repeated without the user, etc.).
在一个实施例中,用户可以与网站506交互以便定位和/或识别一个或多个位置,执行一个或多个动作等。例如,在某些实施例中,用户可以导航到网站506内的一个或多个不同页面,可以使用用于网站506的用户的电子凭证登录到网站506,可以导航到不同网站506,可以导航到网站506和/或从网站506下载与用户相关的数据,可以以通常的方式使用网站506等。如上面针对模式模块308所描述的,在一个实施例中,模式模块308可以监视用户对网站506的访问模式,以允许直接访问模块204在访问网站、从网站506下载与用户相关的数据等时至少部分地模拟用户的访问模式506。在所示出的实施例中,访问修复模块310(和/或相关联的浏览器)显示网站506的浏览器视图,其中的文本、图像和/或其他元素显示了互联网浏览器实质上将如何显示网站506,外加将在网站506上显示的接口502添加到网站506的一侧,等等。In one embodiment, a user can interact with the website 506 to locate and/or identify one or more locations, perform one or more actions, etc. For example, in some embodiments, the user can navigate to one or more different pages within the website 506, can log into the website 506 using the user's electronic credentials for the website 506, can navigate to different websites 506, can navigate to and/or download user-related data from the website 506, can use the website 506 in a typical manner, etc. As described above with respect to the pattern module 308, in one embodiment, the pattern module 308 can monitor the user's access patterns to the website 506 to allow the direct access module 204 to at least partially emulate the user's access patterns 506 when accessing the website, downloading user-related data from the website 506, etc. In the illustrated embodiment, the access repair module 310 (and/or an associated browser) displays a browser view of the website 506, wherein the text, images, and/or other elements show substantially how an internet browser would display the website 506, with the addition of the interface 502 displayed on the website 506 to the side of the website 506, etc.
图5B示出了用户接口510的一个实施例。虽然以上描述的用户接口500包括网站506的一个或多个页面的渲染的浏览器视图,但是在图5B的接口510的一个实施例中,访问修复模块310(和/或相关联的浏览器)显示的是网站506的源代码516。例如,在一个实施例中,用户接口500可以包括标准访问修复接口,并且用户接口510可以包括高级访问修复接口,以允许一个或多个高级用户识别网站506的源代码516内的一个或多个位置和/或动作,这在网站506自身中可能不可见和/或不明显。在某些实施例中,用户可以在标准用户接口500或视图与高级用户接口510或视图之间进行选择和/或切换。FIG5B illustrates one embodiment of a user interface 510. While the user interface 500 described above includes a rendered browser view of one or more pages of the website 506, in one embodiment of the interface 510 of FIG5B , the access repair module 310 (and/or associated browser) displays the source code 516 of the website 506. For example, in one embodiment, the user interface 500 may include a standard access repair interface, and the user interface 510 may include an advanced access repair interface to allow one or more advanced users to identify one or more locations and/or actions within the source code 516 of the website 506 that may not be visible and/or obvious within the website 506 itself. In some embodiments, a user may select and/or switch between the standard user interface 500 or view and the advanced user interface 510 or view.
在所示的实施例中,访问修复模块310在显示的源代码516上方和/或与显示的源代码516相邻地显示用户接口512,其中基本上如上所述,一个或多个接口元素514a-d允许用户识别一个或多个位置、动作等。在所示的实施例中,访问修复模块310显示对位置和/或动作的一个或多个建议和/或估计,用户可以对其进行确认和/或改变/修正。在各种实施例中,用户可以通过选择和/或激活接口元素514并选择一部分源代码516,通过拖动一部分源代码516并将该部分源代码516放到接口元素514上,通过将一部分源代码516切割并粘贴到接口元素514中,和/或以其他方式基于源代码516识别位置和/或动作接口来识别源代码516中的位置和/或动作。In the illustrated embodiment, the access and repair module 310 displays a user interface 512 above and/or adjacent to the displayed source code 516, wherein one or more interface elements 514a-d allow a user to identify one or more locations, actions, etc., substantially as described above. In the illustrated embodiment, the access and repair module 310 displays one or more suggestions and/or estimates of locations and/or actions, which the user can confirm and/or change/revise. In various embodiments, the user can identify locations and/or actions in the source code 516 by selecting and/or activating the interface element 514 and selecting a portion of the source code 516, by dragging a portion of the source code 516 and dropping it onto the interface element 514, by cutting and pasting a portion of the source code 516 into the interface element 514, and/or otherwise identifying locations and/or actions based on the source code 516.
在某些实施例中,响应于用户识别一个或多个位置和/或动作(例如,用于输入、提交和/或发送电子凭证;用于定位和/或下载数据等),访问修复模块310可以与测试模块318协作以对所识别的一个或多个位置和/或动作执行现场和/或实时测试,以确定所识别的一个或多个位置的有效性和/或可行性,同时接口500,510对用户可见和/或由用户使用,以允许用户在同一会话期间改变和/或校正所提供的信息。例如,访问修复模块310可以向用户显示测试按钮或其他用户接口元素,用户可以选择和/或激活该测试按钮或其他用户接口元素以启动测试。在另一个实施例中,访问修复模块310可以响应于用户提供位置和/或动作而自动执行测试,其中用户不需要选择和/或激活测试按钮或其他用户接口元素。在另外的实施例中,测试模块318可以独立于访问修复模块310执行一个或多个测试,测试模块318具有或不具有访问修复模块310的功能。In some embodiments, in response to a user identifying one or more locations and/or actions (e.g., for entering, submitting, and/or sending electronic credentials; for locating and/or downloading data, etc.), the access repair module 310 can collaborate with the testing module 318 to perform on-site and/or real-time testing of the identified one or more locations and/or actions to determine the validity and/or feasibility of the identified one or more locations, while the interfaces 500, 510 are visible to and/or used by the user to allow the user to change and/or correct the provided information during the same session. For example, the access repair module 310 can display a test button or other user interface element to the user, which the user can select and/or activate to initiate the test. In another embodiment, the access repair module 310 can automatically perform the test in response to the user providing the location and/or action, without the user needing to select and/or activate the test button or other user interface element. In yet other embodiments, the testing module 318 can perform one or more tests independently of the access repair module 310, with or without the functionality of the access repair module 310.
图6示出了用于分布式数据聚合的方法600的一个实施例。方法600开始于认证模块202在用户的硬件设备102上从用户接收602用于第三方服务提供商108的用户的电子凭证。直接访问模块204使用用户的电子凭证通过用户的硬件设备102访问604第三方服务提供商108的服务器108。直接访问模块204将与用户相关的数据从第三方服务提供商108的服务器108下载606到用户的硬件设备102。6 illustrates one embodiment of a method 600 for distributed data aggregation. The method 600 begins with the authentication module 202 receiving 602 the user's electronic credentials for a third-party service provider 108 from a user on the user's hardware device 102. The direct access module 204 uses the user's electronic credentials to access 604 the server 108 of the third-party service provider 108 through the user's hardware device 102. The direct access module 204 downloads 606 data associated with the user from the server 108 of the third-party service provider 108 to the user's hardware device 102.
图7示出了用于分布式和/或分散式数据聚合的方法700的一个实施例。方法700开始于认证模块202确定702用于多个第三方服务提供商108的用户的电子凭证。直接访问模块204使用所确定702的电子凭证来访问704多个第三方服务提供商108的服务器。直接访问模块204通过多个第三方服务提供商108的被访问704的服务器下载706与用户相关的数据。FIG7 illustrates one embodiment of a method 700 for distributed and/or decentralized data aggregation. The method 700 begins with the authentication module 202 determining 702 electronic credentials of a user for a plurality of third-party service providers 108. The direct access module 204 uses the determined 702 electronic credentials to access 704 servers of the plurality of third-party service providers 108. The direct access module 204 downloads 706 data associated with the user from the accessed 704 servers of the plurality of third-party service providers 108.
直接访问模块204对从多个不同的第三方服务提供商108下载706的数据进行聚合708。接口模块206将聚合708的数据提供710给用户(例如,在用户的硬件设备102上显示数据,向用户的硬件设备102发送警报或其他消息,将该数据发送到用户可以使用web接口和/或API等来访问的独立于第三方服务提供商108的远程后端服务器110,等等),方法700结束。The direct access module 204 aggregates 708 the data downloaded 706 from the plurality of different third-party service providers 108. The interface module 206 provides 710 the aggregated 708 data to the user (e.g., by displaying the data on the user's hardware device 102, sending an alert or other message to the user's hardware device 102, sending the data to a remote backend server 110 independent of the third-party service provider 108 that the user can access using a web interface and/or API, etc.), and the method 700 ends.
图8示出了用于分布式和/或分散式数据聚合的方法800的另一个实施例。方法800开始于网络认证模块304接收802用于一个或多个第三方服务提供商108的用户的电子凭证。密码管理器模块306生成804用于一个或多个第三方服务提供商108的新的和/或不同的电子凭证并利用生成804的电子凭证更新用户在一个或多个第三方服务提供商108的账户。8 illustrates another embodiment of a method 800 for distributed and/or decentralized data aggregation. The method 800 begins with the network authentication module 304 receiving 802 a user's electronic credentials for one or more third-party service providers 108. The password manager module 306 generates 804 new and/or different electronic credentials for the one or more third-party service providers 108 and updates the user's account with the one or more third-party service providers 108 using the generated 804 electronic credentials.
访问修复模块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。The access repair module 310 determines 806 whether there has been a change in access to one or more third-party service providers 108 (e.g., whether access is interrupted or unavailable, whether access is partial or incomplete, whether the access bandwidth is slower than previously determined, and/or whether another change in access has occurred). If the access repair module 310 determines 806 that access to the third-party service provider 108 has changed, the access repair module 310 provides 808 a graphical user interface 500, 510 to the user. The access repair module 310 receives 810 identification of one or more locations and/or actions for authenticating the user and/or downloading data from the third-party service provider 108 by providing 808 the graphical user interface 500, 510. The testing module 318 uses the identification of the one or more locations and/or actions received 810 to test 812 access to the third-party service provider 108. In response to a successful test 812 by the test module 318, the test module 318 and/or the mode module 308 provides 814 instructions to one or more direct access modules 204 associated with one or more different users for accessing the third-party service provider 108 and/or downloading data from the third-party service provider 108 based on the identification of one or more locations and/or actions received 810.
路由模块314确定816与用户相关联的硬件设备102是否可用。响应于路由模块314确定816与用户相关联的硬件设备102可用,直接访问模块204通过与用户相关联的可用硬件设备102从与一个或多个第三方服务提供商108下载818与用户相关的数据。The routing module 314 determines 816 whether the hardware device 102 associated with the user is available. In response to the routing module 314 determining 816 that the hardware device 102 associated with the user is available, the direct access module 204 downloads 818 data related to the user from one or more third-party service providers 108 via the available hardware device 102 associated with the user.
响应于路由模块314确定816与用户相关联的硬件设备102不可用,不同设备(例如,不同用户的硬件设备102、后端服务器110等)的直接访问模块204通过不同设备从一个或多个第三方服务提供商108下载820与用户相关的数据。路由模块314(例如,在不同的设备102,110上的路由模块)基于下载820的数据确定822警报或其他消息是否对于用户可用,并且响应于确定822警报或其他消息可用而将警报或其他消息推送824和/或以其他方式发送到与用户相关联的设备(例如,不可用的设备102)。例如,在一个实施例中,用户的硬件设备102可能不可用于下载数据(例如,断电、离线、休眠、使用移动数据而不是Wi-Fi等),但可以接收推送824的警报或其他消息(例如,通过不同的方式,例如文本消息、语音邮件、电子邮件、推送通知等)和/或响应于在稍后的时间变得可用而可以接收推送824的警报或其他消息。In response to the routing module 314 determining 816 that the hardware device 102 associated with the user is unavailable, the direct access module 204 of the different device (e.g., the hardware device 102 of the different user, the backend server 110, etc.) downloads 820 data related to the user from one or more third-party service providers 108 via the different device. The routing module 314 (e.g., the routing module on the different device 102, 110) determines 822 whether an alert or other message is available for the user based on the downloaded data 820, and pushes 824 and/or otherwise sends the alert or other message to the device associated with the user (e.g., the unavailable device 102) in response to determining 822 that the alert or other message is available. For example, in one embodiment, the user's hardware device 102 may be unavailable for downloading data (e.g., powered off, offline, dormant, using mobile data instead of Wi-Fi, etc.), but may receive the alert or other message pushed 824 (e.g., via different means, such as text message, voicemail, email, push notification, etc.) and/or may receive the alert or other message pushed 824 in response to becoming available at a later time.
接口模块206向用户提供826下载818,820的数据和/或推送824的警报(例如,在用户的硬件设备102上显示数据、在用户的硬件设备102上显示推送/发送824的警报或其他消息、将该数据发送到用户可以使用web接口和/或API等来访问的独立于第三方服务提供商108的远程后端服务器110)。在某些实施例中,方法800继续周期性地确定806对第三方服务提供商108的访问是否存在改变、确定816用户的硬件设备102是否可用、下载818,820与用户相关的数据、和/或向用户提供826下载的数据和/或推送824的警报或其他消息等。The interface module 206 provides 826 the user with the data downloaded 818, 820 and/or an alert pushed 824 (e.g., displays the data on the user's hardware device 102, displays an alert or other message pushed/sent 824 on the user's hardware device 102, sends the data to a remote backend server 110 independent of the third-party service provider 108 that the user can access using a web interface and/or API, etc.). In some embodiments, the method 800 continues to periodically determine 806 whether there is a change in access to the third-party service provider 108, determine 816 whether the user's hardware device 102 is available, download 818, 820 data related to the user, and/or provide 826 the user with the downloaded data and/or an alert or other message pushed 824, etc.
在各种实施例中,一种用于在用户的硬件设备102上确定用于第三方服务提供商108的用户的电子凭证的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、认证模块202、本地认证模块302、网络认证模块304、密码管理器模块306、聚合模块104、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于在用户的硬件设备102上确定用于第三方服务提供商108确定用户的电子凭证的类似或等同装置。In various embodiments, an apparatus for determining a user's electronic credentials for a third-party service provider 108 on a user's hardware device 102 may include one or more of the following: the hardware device 102, the backend server 110, the authentication module 202, the local authentication module 302, the network authentication module 304, the password manager module 306, the aggregation module 104, a processor (e.g., a central processing unit (CPU), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), an HDMI or other electronic display dongle, a hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent apparatus for determining a user's electronic credentials for a third-party service provider 108 on a user's hardware device 102.
在各种实施例中,用于使用用户的电子凭证通过用户的硬件设备102访问第三方服务提供商108的服务器108的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、直接访问模块204、模式模块308、访问修复模块310、层级模块312、聚合模块104、网络接口、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于使用用户的电子凭证通过用户的硬件设备102访问第三方服务提供商108的服务器108的类似或等同装置。In various embodiments, the apparatus for accessing the server 108 of the third-party service provider 108 through the user's hardware device 102 using the user's electronic credentials may include one or more of the following: the hardware device 102, the backend server 110, the direct access module 204, the mode module 308, the access repair module 310, the hierarchy module 312, the aggregation module 104, a network interface, a processor (e.g., a central processing unit (CPU), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), an HDMI or other electronic display dongle, a hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent apparatus for accessing the server 108 of the third-party service provider 108 through the user's hardware device 102 using the user's electronic credentials.
在各种实施例中,用于将与用户相关的数据从第三方服务提供商108的服务器108下载到用户的硬件设备102的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、直接访问模块204、模式模块308、访问修复模块310、层级模块312、聚合模块104、网络接口、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于将与用户相关的数据从第三方服务提供商108的服务器108下载到用户的硬件设备102的类似或等同装置。In various embodiments, the means for downloading data associated with a user from a server 108 of a third-party service provider 108 to a hardware device 102 of a user may include one or more of the following: the hardware device 102, the backend server 110, the direct access module 204, the mode module 308, the access repair module 310, the hierarchy module 312, the aggregation module 104, a network interface, a processor (e.g., a central processing unit (CPU), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), an HDMI or other electronic display dongle, a hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent means for downloading data associated with a user from a server 108 of a third-party service provider 108 to a hardware device 102 of a user.
在各种实施例中,一种用于对从独立于从其下载数据的第三方服务提供商108的远程设备110,102的用户的硬件设备102下载的数据进行打包的装置可包括以下中的一个或多个:硬件设备102、后端服务器110、接口模块206、聚合模块104、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于对从独立于从其下载数据的第三方服务提供商108的远程设备110,102的用户的硬件设备102下载的数据进行打包的类似或等同装置。In various embodiments, an apparatus for packaging data downloaded from a user's hardware device 102 of a remote device 110, 102 that is independent of a third-party service provider 108 from which the data is downloaded may include one or more of the following: the hardware device 102, the backend server 110, the interface module 206, the aggregation module 104, a processor (e.g., a central processing unit (CPU), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), an HDMI or other electronic display dongle, a hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent apparatus for packaging data downloaded from a user's hardware device 102 of a remote device 110, 102 that is independent of a third-party service provider 108 from which the data is downloaded.
在各种实施例中,一种用于将下载的数据从用户的硬件设备102提供到独立于从其下载数据的第三方服务提供商108的远程设备110,102的装置可以包括以下中的一个或多个:硬件设备102、后端服务器110、接口模块206、聚合模块104、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于将下载的数据从用户的硬件设备102提供到独立于从其下载数据的第三方服务提供商108的远程设备110,102的类似或等同装置。In various embodiments, an apparatus for providing downloaded data from a user's hardware device 102 to a remote device 110, 102 independent of a third-party service provider 108 from which the data was downloaded may include one or more of the following: the hardware device 102, the backend server 110, the interface module 206, the aggregation module 104, a processor (e.g., a central processing unit (CPU), a processor core, a field programmable gate array (FPGA) or other programmable logic, an application specific integrated circuit (ASIC), a controller, a microcontroller, and/or another semiconductor integrated circuit device), an HDMI or other electronic display dongle, a hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent apparatus for providing downloaded data from a user's hardware device 102 to a remote device 110, 102 independent of a third-party service provider 108 from which the data was downloaded.
在各种实施例中,一种用于执行本文描述的其他方法步骤的装置可以包括下述中的一个或多个:硬件设备102、后端服务器110、认证模块202、本地认证模块302、网络认证模块304、密码管理器模块306、直接访问模块204、模式模块308、访问修复模块310、层级模块312、接口模块206、路由模块314、频率模块316、测试模块318、聚合模块104、网络接口、处理器(例如,中央处理单元(CPU)、处理器内核、现场可编程门阵列(FPGA)或其他可编程逻辑、专用集成电路(ASIC)、控制器、微控制器和/或另一个半导体集成电路设备)、HDMI或其他电子显示电子狗、硬件应用或其他硬件设备、其他逻辑硬件、和/或存储在计算机可读存储介质上的其他可执行代码。其他实施例可以包括用于执行本文描述的其他方法步骤的类似或等同装置。In various embodiments, an apparatus for performing other method steps described herein may include one or more of the following: hardware device 102, backend server 110, authentication module 202, local authentication module 302, network authentication module 304, password manager module 306, direct access module 204, mode module 308, access repair module 310, hierarchy module 312, interface module 206, routing module 314, frequency module 316, testing module 318, aggregation module 104, network interface, processor (e.g., central processing unit (CPU), processor core, field programmable gate array (FPGA) or other programmable logic, application specific integrated circuit (ASIC), controller, microcontroller and/or another semiconductor integrated circuit device), HDMI or other electronic display dongle, hardware application or other hardware device, other logic hardware, and/or other executable code stored on a computer-readable storage medium. Other embodiments may include similar or equivalent apparatus for performing other method steps described herein.
在不脱离本发明的精神或基本特征的情况下,可以以其他具体形式来实施本发明。所描述的实施例在所有方面仅被认为是示例性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来表示。在权利要求的等同物的含义和范围内的所有变化都将包含在其范围内。The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics of the present invention. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the present invention is therefore indicated by the appended claims rather than by the foregoing description. All variations that come within the meaning and range of equivalents of the claims are intended to be embraced within their scope.
Claims (28)
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201562254708P | 2015-11-12 | 2015-11-12 | |
| US62/254,708 | 2015-11-12 | ||
| US201662280070P | 2016-01-18 | 2016-01-18 | |
| US62/280,070 | 2016-01-18 | ||
| US15/167,650 US9692815B2 (en) | 2015-11-12 | 2016-05-27 | Distributed, decentralized data aggregation |
| US15/167,650 | 2016-05-27 | ||
| PCT/US2016/061908 WO2017083861A1 (en) | 2015-11-12 | 2016-11-14 | Distributed, decentralized data aggregation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1254467A1 HK1254467A1 (en) | 2019-07-19 |
| HK1254467B true HK1254467B (en) | 2020-09-04 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7460669B2 (en) | Distributed, decentralized data aggregation | |
| JP7365317B2 (en) | Account verification | |
| AU2019204318B2 (en) | Data aggregation using a limited-use code | |
| HK40056950A (en) | Distributed, decentralized data aggregation | |
| HK1254467B (en) | Distributed, decentralized data aggregation |