[0018]本明細書全体を通じて、「一実施形態」、「ある実施形態」または同様の表現を言う場合、その実施形態に関連して記載されている特定の特徴、構造または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通じて「一実施形態において」、「ある実施形態において」という語句、および同様の表現はすべて同じ実施形態を指し得るが、必ずしもそうであるとは限らず、特に明記されていない限り、「1つまたは複数の実施形態であるがすべての実施形態ではない」ことを意味する。「含む」、「備える」、「有する」という用語およびこれらの用語の変形は、特に明記されていない限り、「含むがそれには限定されない」ことを意味する。項目の列挙は、特に明記されていない限り、それらの項目のいずれかまたは全部が相互に排他的および/または相互に包含的であることを含意しない。「a」、「an」および「the」という用語は、特に明記されていない限り、「1つまたは複数」も指す。
[0019]また、実施形態の記載されている特徴、利点および特性は、任意の適切な方式で組み合わせてもよい。当業者は、実施形態が特定の実施形態の特定の特徴または利点のうちの1つまたは複数の特徴または利点がなくても実施可能であることがわかるであろう。また、すべての実施形態には示されていない場合がある、特定の実施形態における追加の特徴および利点もわかるであろう。
[0020]実施形態のこれらの特徴および利点は、以下の説明および添付の特許請求の範囲からよりよく明らかになり、または以下に記載されている実施形態を実施することにより知ることができる。当業者にはわかるように、本発明の態様は、システム、方法、および/またはコンピュータプログラム製品として具現化可能である。したがって、本発明の態様は、本明細書ではすべて「回路」、「モジュール」または「システム」と総称されている場合がある、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェア態様とハードウェア態様との組合せの実施形態をとることができる。また、本発明の態様は、プログラムコードが具現化された1つまたは複数のコンピュータ可読媒体に具現化されたコンピュータプログラム製品の形態をとることができる。
[0021]本明細書に記載の機能ユニットの多くは、その実装の独立性をより具体的に強調するためにモジュールと称されている。例えば、モジュールは、カスタムVLSI回路またはゲートアレイ、ロジックチップなどの既製の半導体、トランジスタ、またはその他の個別構成要素を含むハードウェア回路として実装することができる。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイスなどのプログラマブルハードウェアデバイスとして実装することもできる。
[0022]モジュールは、様々な種類のプロセッサによる実行のためのソフトウェアとして実装することもできる。プログラムコードの識別されるモジュールは、例えば、オブジェクト、手続きまたは関数として編成されることができる、例えばコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを備え得る。上記にもかかわらず、識別されるモジュールの実行ファイルは、物理的にまとめて配置されている必要はなく、互いに論理的に結合されるとそのモジュールを構成し、そのモジュールの記載されている目的を達成する、異なるロケーションに記憶された別々の命令を備えていてもよい。
[0023]実際、プログラムコードのモジュールは、単一の命令であってもよく、または多くの命令であってもよく、いくつかの異なるコードセグメントにわたり、異なるプログラムにわたり、いくつかのメモリデバイスにわたって分散されていてもよい。同様に、本明細書ではモジュール内で動作データが識別され、示されている場合があり、任意の適切な形態で具現化されてよく、任意の適切な種類のデータ構造内で編成されてよい。動作データは、単一のデータセットとしてまとめられてよく、または異なるストレージデバイスにまたがることを含めて異なるロケーションにわたって分散されてよく、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として存在してもよい。モジュールまたはモジュールの一部がソフトウェアで実装される場合、プログラムコードは1つまたは複数のコンピュータ可読媒体に記憶され、および/または1つまたは複数のコンピュータ可読媒体で伝播させられてもよい。
[0024]コンピュータプログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
[0025]コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学式ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、またはこれらの任意の適合する組合せとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、可搬型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(「RAM」)、読み取り専用メモリ(「ROM」)、消去可能プログラマブル読み取り専用メモリ(「EPROM」またはフラッシュメモリ)、スタティックランダムアクセスメモリ(「SRAM」)、可搬型コンパクトディスク読み取り専用メモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、メモリスティック、フロッピィディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用するコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(例えば光ファイバケーブルを通る光パルス)、または配線で送信される電気信号などの、一過性の信号そのものであると解釈されるべきではない。
[0026]本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークなどのネットワークを介して外部コンピュータまたは外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを備え得る。それぞれのコンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
[0027]本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクションセットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードとすることができる。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部が遠隔コンピュータ上で、または全体が遠隔コンピュータまたはサーバ上で実行されてもよい。後者の場合、遠隔コンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
[0028]本明細書では、本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品を示すフローチャート図および/またはブロック図を参照しながら説明する。フローチャート図および/またはブロック図の各ブロックおよびフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
[0029]これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブルデータ処理装置のプロセッサにより実行される命令が、フローチャートおよび/またはブロック図のブロックで規定されている機能/動作を実装する手段を形成するように、マシンを作り出すように汎用コンピュータ、専用コンピュータ、またはその他のプログラマブルデータ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を備えるように、コンピュータ、プログラマブルデータ処理装置、および/またはその他の装置に対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
[0030]コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで規定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブルデータ処理装置、またはその他のデバイスにロードされてもよい。
[0031]図面中の概略フローチャート図および/または概略ブロック図は、本発明の様々な実施形態による装置、システム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。その際、概略フローチャート図および/または概略ブロック図の各ブロックは、規定されている論理関数を実装するためのプログラムコードの1つまたは複数の実行可能命令を含む、コードのモジュール、セグメント、または部分を表すことがある。
[0032]なお、一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよいことにも留意されたい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。示されている図の1つまたは複数のブロックまたはその一部の機能、論理または作用の点で同等であるその他のステップおよび方法も考えられ得る。
[0033]フローチャートおよび/またはブロック図では様々な種類の矢印および線種が採用されている場合があるが、それらは対応する実施形態の範囲を限定しないものと理解される。実際、一部の矢印またはその他の接続線は、図示されている実施形態の論理の流れを示すためにのみ使用されていることがある。例えば、矢印は、図示されている実施形態の列挙されているステップ間の明示されていない長さの待ち期間または監視期間を示している場合がある。なお、ブロック図および/またはフローチャート図の各ブロックと、ブロック図および/またはフローチャート図のブロックの組合せとは、示されている機能または動作を実行する専用ハードウェアベースのシステムまたは専用ハードウェアとプログラムコードの組合せによって実装可能であることに留意されたい。
[0034]図1に、問合せインターフェースのためのシステム100の一実施形態を示す。一実施形態では、システム100は、1つまたは複数のハードウェアデバイス102、1つまたは複数のアグリゲーションモジュール104(例えば、バックエンドアグリゲーションモジュール104b、および/または1つまたは複数のハードウェアデバイス102上に配置された複数のアグリゲーションモジュール104a)、1つまたは複数のデータネットワーク106またはその他の通信チャネル、1つまたは複数のサードパーティサービスプロバイダ108(例えば、1つまたは複数のサービスプロバイダ108の1つまたは複数のサーバ108、1つまたは複数のクラウドプロバイダまたはネットワークサービスプロバイダなど)、および/または、1つまたは複数のバックエンドサーバ110を含む。特定の実施形態では、図1には、特定の数のハードウェアデバイス102、アグリゲーションモジュール104、データネットワーク106、サードパーティサービスプロバイダ108、および/またはバックエンドサーバ110が図示されているが、当業者は、本開示に鑑みて、分散データアグリゲーションのためのシステム100に、任意の数のハードウェアデバイス102、アグリゲーションモジュール104、データネットワーク106、サードパーティサービスプロバイダ108、および/またはバックエンドサーバ110が含まれ得ることがわかるであろう。
[0035]一実施形態では、システム100は1つまたは複数のハードウェアデバイス102を含む。ハードウェアデバイス102(例えばコンピューティングデバイス、情報処理デバイスなど)は、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、タブレットコンピュータ、スマートフォン、セットトップボックス、ゲーム機、スマートTV、スマートウォッチ、フィットネスバンド、光学ヘッドマウントディスプレイ(例えばバーチャルリアリティヘッドセット、スマートグラスなど)、HDMI(登録商標)またはその他の電子ディスプレイドングル、パーソナルデジタルアシスタント、および/または、プロセッサ(例えば中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラおよび/または他の半導体集積回路デバイス)、揮発性メモリおよび/または不揮発性記憶媒体を備える、他のコンピューティングデバイスのうちの1つまたは複数を含み得る。特定の実施形態では、ハードウェアデバイス102は、後述のデータネットワーク106を介して1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバ108および/または1つまたは複数のバックエンドサーバ110と通信している。ハードウェアデバイス102は、さらなる実施形態では、様々なプログラム、プログラムコード、アプリケーション、命令、関数などを実行することができる。
[0036]一実施形態では、アグリゲーションモジュール104は、1つまたは複数のサードパーティサービスプロバイダ108のために、ユーザの電子認証情報(例えばユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証の認証情報など)を決定および/または受け取るように構成される。アグリゲーションモジュール104は、特定の実施形態では、ユーザに関連付けられ、および/またはユーザによって所有されているが、サードパーティサービスプロバイダ108のサーバ108によって記憶されている(例えばユーザによって所有、維持および/または制御されていないハードウェアによって記憶されている)、ユーザの写真、ユーザのソーシャルメディア書き込み、ユーザの医療記録、ユーザの金融トランザクション記録またはその他の金融データ、および/またはその他のデータなどの、ユーザに関連付けられたデータをサーバ108からダウンロードするために、ユーザの電子認証情報を使用してサードパーティサービスプロバイダ108のサーバ108にアクセスする。アグリゲーションモジュール104は、様々な実施形態において、ダウンロードされたデータをユーザにローカルで提供(例えばデータをハードウェアデバイス102の電子ディスプレイ上に表示)してよく、ダウンロードされたデータをユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108と系列関係になくてもよい遠隔サーバ110(例えばバックエンドアグリゲーションモジュール104b)または他の遠隔デバイス(例えばユーザの別のハードウェアデバイス102、異なるユーザのハードウェアデバイス102など)に提供すること、および/またはそのようなサーバまたは遠隔デバイスのためにパッケージ化することを行ってよく、ダウンロードされたデータに基づいて、ユーザに(例えばハードウェアデバイス102上で)1つまたは複数のアラート、メッセージ、広告、または他の通信を提供することなどを行ってよい。
[0037]特定の実施形態では、システム100は、複数の異なるユーザのハードウェアデバイス102上に配置/位置づけられた(例えば1つまたは複数のハードウェアデバイス102のハードウェア、および/またはそのようなハードウェアデバイス102上で稼働する実行可能コードを備えた)複数のアグリゲーションモジュール104を含む。複数のアグリゲーションモジュール104は、それぞれが別々にデータ(例えば写真、ソーシャルメディア書き込み、医療記録、金融トランザクション記録、その他の金融データおよび/またはその他のユーザデータ)を分散式および/または非集中式にダウンロードおよび/または集約する、地理的に分散され、異なるIPアドレスを使用する複数のハードウェアデバイス102にわたって実行される分散および/または非集中システム100として動作してよい。
[0038]一実施形態では、ハードウェアデバイス102はインターネットブラウザを含むこと、および/または実行することができ、ユーザがそのインターネットブラウザを使用して(例えばインターネットブラウザにサードパーティサービスプロバイダ108のウェブページをロードすることによって)サードパーティサービスプロバイダ108のサーバ108にアクセスしてよい。特定の実施形態では、サードパーティサービスプロバイダ108が、ユーザ自身がインターネットブラウザを使用してサーバ108にアクセスするのをブロックもせずに、アグリゲーションモジュール104がサードパーティサービスプロバイダ108のサーバ108にアクセスするのをブロックしなくてもよいように、アグリゲーションモジュール104の少なくとも一部がユーザの個人的ハードウェアデバイス102のインターネットブラウザのプラグインおよび/または拡張を備えてよい。例えば、アグリゲーションモジュール104は、ユーザがインターネットブラウザを介してサードパーティサービスプロバイダ108のサーバ108にアクセスする場合に使用するのと同じクッキー、IPアドレス、保存済み認証情報などを使用してもよい。特定の実施形態では、アグリゲーションモジュール104は、(例えば異なるハードウェアデバイス102上の)複数の異なる種類のインターネットブラウザとの統合をサポートしてもよい。
[0039]特定の実施形態では、サードパーティサービスプロバイダ108がアグリゲーションモジュール104によるサーバ108へのアクセスをユーザによるサーバ108へのアクセスから区別する可能性を低くするために、アグリゲーションモジュール104がサードパーティサービスプロバイダ108のサーバ108にアクセスする際のユーザの挙動パターンを模倣またはコピーすることができる。例えば、サードパーティサービスプロバイダ108によって検出および/またはブロックされる確率を低くするために、アグリゲーションモジュール104がユーザのデータをダウンロードおよび/または集約しているのを隠すため、アグリゲーションモジュール104はアグリゲーションモジュール104が1つまたは複数のロケーションのそれぞれからデータをダウンロードする意図がない場合であってもサードパーティサービスプロバイダ108のサーバ108の1つまたは複数のロケーション(例えばウェブページ)を訪れてよく、異なるロケーションへのアクセス間で特定の遅延時間だけ待ってよく、特定のスクロールパターンなどを使用してよい。
[0040]一実施形態では、アグリゲーションモジュール104の少なくとも一部が、個人金融管理アプリケーション(例えば、複数の金融機関からのユーザの金融トランザクションの表示、ユーザの金融予算および/または金融目標の決定および/または表示、ユーザのアカウント残高の決定および/または表示、ユーザの純資産の決定および/または表示などのためのコンピュータ実行可能コード)、フォトビューア、医療アプリケーション、保険アプリケーション、会計アプリケーション、ソーシャルメディアアプリケーションなど、ハードウェアデバイス102上で実行され、アグリゲーションモジュール104がサードパーティサービスプロバイダ108のサーバ108からダウンロードするデータを使用してよい別のアプリケーションに組み込まれるかまたは他の方法でその一部とされてもよい。
[0041]一実施形態では、アグリゲーションモジュール104aは、分散型システム100を備え、アグリゲーションモジュール104aおよび/または関連付けられたハードウェアデバイス102が、実質的に独立にデータのダウンロードおよび/または集約を行う(例えば、グローバルクロックなしに、構成要素の成功および/または失敗が独立した状態で、データを並行してまたは非並行的にダウンロードする)。分散アグリゲーションモジュール104aは、ユーザのためのデータの分散型アグリゲーションを協調させるために、互いに、および/またはバックエンドアグリゲーションモジュール104bに、メッセージを渡すことができる。一実施形態では、アグリゲーションモジュール104aは、1つまたは複数のアグリゲーション機能を実行するのに集中サーバまたは他のデバイスに排他的に依拠するのではなく、分散化される(例えば、ユーザに関連付けられたハードウェアデバイス102が、データのダウンロードなどの1つまたは複数のアグリゲーション機能を実行する)。
[0042]特定の実施形態では、分散型および/または非集中型システム100であってもバックエンドアグリゲーションモジュール104bおよび/またはバックエンドサーバ110などの中央エンティティが、1つまたは複数のアグリゲーションモジュール104aに、ユーザの認証情報などを使用してサードパーティサービスプロバイダ108のサーバ108にアクセスするための命令を備える1つまたは複数のメッセージを提供してよい。例えば、バックエンドアグリゲーションモジュール104bが、1つまたは複数のハードウェアデバイス102の1つまたは複数のアグリゲーションモジュール104aに、アグリゲーションモジュール104aがそれを使用してユーザのデータにアクセスしてダウンロードすることができる、ユーザの電子認証情報を入力するためのロケーション(例えば、テキストボックス、フィールド、ラベル、座標など)、ユーザの電子認証情報をサブミットするための命令(例えば、押すべきボタン、クリックすべきリンクなど)、ユーザに関連付けられたデータの1つまたは複数のロケーション(例えば、テーブルまたはチャートにおける行、テーブルまたはチャートにおける列、ユニフォームリソースロケータ(URL)またはその他のアドレス、座標、ラベルなど)、および/またはその他の命令もしくは情報などの、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の1つまたは複数のセットを提供してよい。
[0043]さらなる実施形態では、1つまたは複数のアグリゲーションモジュール104aが互いにピアツーピア式に、ユーザの認証情報などを使用してサードパーティサービスプロバイダ108のサーバ108にアクセスするための命令などのメッセージを渡してよい。別の実施形態では、バックエンドアグリゲーションモジュール104bなどの中央エンティティが、最初に、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の1つまたは複数のセットをユーザの認証情報を使用して1つまたは複数のアグリゲーションモジュール104aに送信し、その1つまたは複数のアグリゲーションモジュール104aがその命令の1つまたは複数のセットを他のアグリゲーションモジュール104aに送信してよい。
[0044]しかし、ユーザのデータにアクセスするための命令は、特定の実施形態では、時間の経過とともに変化することがあり、(例えば、アップグレード、異なるユーザのための異なるサービスレベルまたはサーバ108、異なるサードパーティサービスプロバイダ108の買収および/または合併などに起因して)サードパーティサービスプロバイダ108などの異なるユーザごとに異なることなどがあり、それによって、時間の経過とともに、および/または特定のユーザについて、特定の命令が失敗し、アグリゲーションモジュール104がユーザのデータにアクセスし、ダウンロードすることができなくなることがある。一実施形態では、バックエンドアグリゲーションモジュール104bが、サードパーティサービスプロバイダ108のサーバ108からユーザのデータにアクセスすることが可能としたことがわかっている命令の複数のセットの階層リストを1つまたは複数のアグリゲーションモジュール104aに提供してよい。ハードウェアデバイス102上のアグリゲーションモジュール104aは、アグリゲーションモジュール104aがユーザのデータにアクセスすることができるまで、階層的順序で命令の異なるセットを試行することができる。
[0045]特定の実施形態では、アグリゲーションモジュール104が、ユーザのデータにアクセスするための失敗した命令をユーザがユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどをグラフィックで識別することにより修復または修正することができるようにするインターフェースをユーザに提供してもよい。アグリゲーションモジュール104は、一実施形態では、アグリゲーションモジュール104が決定したユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどの推定を(例えば太字、色、視覚的コメントまたはラベルの図示などで)強調表示またはその他の方法で示唆してよい。例えば、アグリゲーションモジュール104は、サードパーティサービスプロバイダ108のサーバ108のウェブページを処理(例えば、ハイパーテキストマークアップ言語(HTML)ファイルの構文解析および/または検索)して、ユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを推定することができる。
[0046]アグリゲーションモジュール104は、特定の実施形態では、サードパーティサービスプロバイダ108のサーバ108からユーザのデータにアクセスするための壊れた命令および/または失敗した命令をユーザがグラフィックで修復するための高度なインターフェースを提供してもよく、それによってユーザがウェブページのコード(例えばHTMLなど)を見ることができるようにし、ウェブページのコード内でユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを識別することができるようにしてもよい。一実施形態では、アグリゲーションモジュール104は、サーバ108のウェブページまたはその他のロケーションに、ユーザがユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを(例えばウェブページのHTMLまたはその他のコードをユーザが見る必要なしに)グラフィックで識別することができる基本インターフェースを重ねることによって、サードパーティサービスプロバイダ108のサーバ108からユーザのデータにアクセスするための壊れた命令および/または失敗した命令をユーザがグラフィックで修復するための基本インターフェースを提供してよい。アグリゲーションモジュール104は、特定の実施形態では、壊れた命令および/または欠損した命令、ロケーションなどの選択可能なリストを含むインターフェースを提供してもよく、ユーザがそのリストから項目を選択したことに応答して示唆をグラフィックで強調および/または表示してもよい。
[0047]アグリゲーションモジュール104は、一実施形態では、(例えば、不正ユーザが不正または不適切な命令を提供するのを防ぐため)アグリゲーションモジュール104aのそれぞれが提供された命令を使用することができるようにする前に、ユーザによって提供された命令を(例えば試験セットを使用して)試験してもよい。アグリゲーションモジュール104は、ユーザの提供した命令の成功率に基づいてユーザに得点または格付けを与えて、より高い得点または格付けを有するユーザからの命令の使用を促進(例えば、より多数のアグリゲーションモジュール104aおよび/またはユーザに提供)してもよい。特定の実施形態では、アグリゲーションモジュール104の分散ネットワークは、これによって自己回復型および/または自己試験型となることができ、アクセス命令が変化または破損しても、1つまたは複数のサードパーティサービスプロバイダ108からユーザのデータへのアクセスおよび/またはユーザのデータの集約を継続して行うことが可能となる。
[0048]1つまたは複数のアグリゲーションモジュール104は、特定の実施形態では、1つまたは複数のサードパーティサービスプロバイダ108のサーバ108から1つまたは複数の他のエンティティ(例えば、サードパーティサービスプロバイダ108と系列関係にない遠隔サーバ110またはその他のハードウェアデバイス102、バックエンドアグリゲーションモジュール104bなど)に、ダウンロードおよび/または集約されたユーザデータを提供するためのインターフェース(例えばアプリケーションプログラミングインターフェース(API))を提供してよい。このインターフェースは、一実施形態では、ユーザのハードウェアデバイス102のアグリゲーションモジュール104aと1つまたは複数のバックエンドアグリゲーションモジュール104bとの間のプライベートインターフェースを含む。例えば、これにより、データをダウンロードしたユーザのハードウェアデバイス102がオフにされたり、バッテリが切れたり、データネットワーク106に接続されていなかったりなどした場合でも、バックエンドアグリゲーションモジュール104bが、ユーザに複数のチャネルなどを介して複数のロケーションにおいて、複数のハードウェアデバイス102上で、ダウンロードおよび/または集約されたユーザデータへのアクセスを提供することができるようにすることができる。別の実施形態では、インターフェースは、セキュリティ保護可能な、パブリックインターフェースおよび/またはオープンインターフェースを含み、それによってユーザはアグリゲーションモジュール104から1つまたは複数の他のツール、サービス、および/または他のエンティティに、ダウンロードされたユーザのデータをそのデータを記憶、処理および/またはその他の方法で使用するために共有することができる。
[0049]様々な実施形態において、アグリゲーションモジュール104は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの何らかの組合せとして具現化することができる。一実施形態では、アグリゲーションモジュール104は、ハードウェアデバイス102、バックエンドサーバ110などのプロセッサでの実行のために非一過性のコンピュータ可読記憶媒体に記憶された実行可能プログラムコードを備え得る。例えばアグリゲーションモジュール104は、ハードウェアデバイス102、バックエンドサーバ110、これらのうちの1つまたは複数の組合せなどのうちの1つまたは複数において実行される実行可能プログラムコードとして具現化されてよい。このような一実施形態では、後述するように、アグリゲーションモジュール104の動作を行う様々なモジュールが、ハードウェアデバイス102、バックエンドサーバ110、および/またはこの2つの組合せなどに配置されてよい。
[0050]様々な実施形態において、アグリゲーションモジュール104は、バックエンドサーバ110上、ユーザのハードウェアデバイス102(例えば、ドングル、電話102またはタブレット102と無線で、および/またはUSBまたはプロプライエタリ通信ポートなどのデータポートを介して通信しているケース内の1つまたは複数の半導体集積回路デバイスを含む電話102またはタブレット102の保護ケース、または他の周辺装置)上、またはデータネットワーク106上の他の場所に設置または配備、および/またはユーザのハードウェアデバイス102と併設されることができるハードウェア機器として具現化されてよい。特定の実施形態では、アグリゲーションモジュール104は、有線接続(例えばUSB接続)または無線接続(例えばBluetooth(R)、Wi-Fi(R)、近距離通信(NFC)などによって)ラップトップコンピュータ、サーバ、タブレットコンピュータ、スマートフォンなどの他のハードウェアデバイス102に接続するか、または電子ディスプレイデバイス(例えばHDMIポート、DisplayPortポート、Mini DisplayPortポート、VGAポート、DVIポートなどを使用してテレビまたはモニタ)に接続するか、またはデータネットワーク106上で実質的に独立して動作するなどの、セキュリティ保護されたハードウェアドングルまたはその他のハードウェア機器デバイス(例えばセットトップボックス、ネットワーク機器など)などのハードウェアデバイスを備え得る。アグリゲーションモジュール104のハードウェア機器は、電力インターフェース、有線および/または無線ネットワークインターフェース、ディスプレイデバイスに出力するグラフィカルインターフェース(例えば1つまたは複数のディスプレイポートを備えたグラフィクスカードおよび/またはGPU)、および/または、アグリゲーションモジュール104に関して本明細書に記載されている機能を実行するように構成された後述するような半導体集積回路デバイスを備え得る。
[0051]アグリゲーションモジュール104は、このような実施形態では、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、FPGAまたはその他のプログラマブルロジックのためのファームウェア、マイクロコントローラ上での実行のためのマイクロコード、特殊用途向け集積回路(ASIC)、プロセッサ、プロセッサコアなど、半導体集積回路デバイス(例えば1つまたは複数のチップ、ダイ、またはその他の個別ロジックハードウェア)などを備え得る。一実施形態では、アグリゲーションモジュール104は、1つまたは複数の電線または接続部を備えたプリント回路基板(例えば揮発性メモリ、不揮発性記憶媒体、ネットワークインターフェース、周辺デバイス、グラフィカル/ディスプレイインターフェース)上に実装されてよい。ハードウェア機器は、データを送受信するように構成された(例えば、プリント回路基板などの1つまたは複数の電線と通信している)1つまたは複数のピン、パッドまたはその他の電気接続部と、アグリゲーションモジュール104の様々な機能を実行するように構成された1つまたは複数のハードウェア回路および/またはその他の電気回路を含んでよい。
[0052]アグリゲーションモジュール104の半導体集積回路デバイスまたはその他のハードウェア機器は、特定の実施形態では、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、キャッシュなどを含み得るがこれらには限定されない1つまたは複数の揮発性メモリ媒体を備え、および/またはそのような1つまたは複数の揮発性メモリ媒体に通信可能に結合される。一実施形態では、アグリゲーションモジュール104の半導体集積回路デバイスまたはその他のハードウェア機器は、NANDフラッシュメモリ、NORフラッシュメモリ、ナノランダムアクセスメモリ(ナノRAMまたはNRAM)、ナノ結晶配線ベースのメモリ、シリコン酸化物ベースのサブ10ナノメートルプロセスメモリ、グラフェンメモリ、シリコン-酸化膜-窒化膜-酸化膜-シリコン(SONOS)、抵抗変化型RAM(RRAM(登録商標))、プログラマブルメタライゼーションセル(PMC)、導電性ブリッジRAM(CBRAM)、磁気抵抗RAM(MRAM)、ダイナミックRAM(DRAM)、相変化RAM(PRAMまたはPCM)、磁気記憶媒体(例えば、ハードディスク、テープ)、光記憶媒体、などを含み得るがこれらには限定されない1つまたは複数の不揮発性メモリ媒体を備え、および/またはそのようなメモリ媒体に通信可能に結合される。
[0053]データネットワーク106は、一実施形態では、デジタル通信を送信するデジタル通信ネットワークを含む。データネットワーク106は、無線セルラネットワークなどの無線ネットワーク、Wi-Fiネットワーク、Bluetooth(R)ネットワーク、近距離無線通信(NFC)ネットワーク、アドホックネットワークなどのローカル無線ネットワーク、および/またはそれに類するものを含んでよい。データネットワーク106は、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、ローカルエリアネットワーク(LAN)、光ファイバネットワーク、インターネット、またはその他のデジタル通信ネットワークを含み得る。データネットワーク106は、2つ以上のネットワークを含み得る。データネットワーク106は、1つまたは複数のサーバ、ルータ、スイッチ、および/またはその他のネットワーキング設備を含み得る。また、データネットワーク106は、ハードディスクドライブ、光ドライブ、不揮発性メモリ、RAMなどの1つまたは複数のコンピュータ可読記憶媒体を含み得る。
[0054]1つまたは複数のサードパーティサービスプロバイダ108は、一実施形態では、1つまたは複数のウェブサイトをホストする1つまたは複数のウェブサーバ、企業イントラネットシステム、アプリケーションサーバ、アプリケーションプログラミングインターフェース(API)サーバ、認証サーバなどの1つまたは複数のネットワークアクセス可能なコンピューティングシステムを含んでよい。1つまたは複数のサードパーティサービスプロバイダ108は、様々な機関または組織と関係するシステムを含み得る。例えば、サードパーティサービスプロバイダ108は、ユーザに関連付けられたデータを記憶する、金融機関、大学、政府機関、公益事業会社、電子メールプロバイダ、ソーシャルメディアサイト、写真共有サイト、ビデオ共有サイト、データストレージサイト、メディカルプロバイダ、またはその他のエンティティへの電子アクセスを提供するシステムを含み得る。サードパーティサービスプロバイダ108は、ユーザが、ユーザに関連付けられたデータのアップロード、閲覧、作成、および/または変更を行うためにユーザアカウントを作成することを可能にし得る。したがって、サードパーティサービスプロバイダ108は、ユーザが、ユーザのデータにアクセスするために、ユーザ名/パスワードの組合せなどの認証情報を提供することができるウェブサイト、アプリケーション、または類似したフロントエンドのログイン要素もしくはログインページなどの許可システムを含み得る。
[0055]一実施形態では、1つまたは複数のバックエンドサーバ110および/または、1つまたは複数のバックエンドアグリゲーションモジュール104bが、ネットワーク化された一群のアグリゲーションモジュール104aの中央管理を提供する。例えば、1つまたは複数のバックエンドアグリゲーションモジュール104b、および/またはバックエンドサーバ110は、アグリゲーションモジュール104aからのダウンロードされたユーザデータを一元的に記憶してよく、アグリゲーションモジュール104aがユーザ認証情報を使用して1つまたは複数のサードパーティサービスプロバイダ108からユーザデータにアクセスするための命令を提供してよく、またはそれに類することを行ってよい。バックエンドサーバ110が、ハードウェアデバイス102および/または1つまたは複数のサードパーティサービスプロバイダ108から遠隔に配置された、1つまたは複数のサーバを含んでよい。バックエンドサーバ110が、図2および図3のアグリゲーションモジュール104に関して後述するモジュールまたはサブモジュールの少なくとも一部を含んでよく、アグリゲーションモジュール104のハードウェアを備えてよく、1つまたは複数の非一過性のコンピュータ可読記憶媒体にアグリゲーションモジュール104の実行可能プログラムコードを記憶してよく、および/または、1つまたは複数のサードパーティサービスプロバイダから分散方式でユーザデータを集約するための本明細書に記載のアグリゲーションモジュール104の様々な動作のうちの1つまたは複数の動作をその他の方法で実行してよい。
[0056]特定の実施形態では、ハードウェアデバイス102からまたはバックエンドサーバ110などの中央ロケーションから、分散および/または非集中化方式で、アグリゲーションモジュール104が、(例えば1つまたは複数のサードパーティサービスプロバイダ108などに)問合せインターフェースを提供するように構成された問合せモジュール112を含んでよい。例えば、金融機関、雇用主、政府機関、教育機関、ローン会社、および/または他のサードパーティなどのサードパーティサービスプロバイダ108が、ユーザの金融状態、金融データ、身元などの1つまたは複数の側面を検証する理由を有する場合があり、ユーザは自分のプライバシーを保護したい場合がある。問合せモジュール112は、一実施形態では、ユーザのプライバシーを少なくとも部分的に保護し、例えばユーザの機密データを公開せず、その一方で、サードパーティ108によってサブミットされ、ユーザによって許可された1つまたは複数の問合せおよび/またはアサーションをセキュリティ保護された状態で妥当性確認する(validating)、問合せインターフェースを提供してよい。問合せモジュール112については、図7を参照しながら以下で詳述する。
[0057]図2に、アグリゲーションモジュール104の一実施形態を示す。図示されている実施形態では、アグリゲーションモジュール104は、問合せモジュール112と、認証モジュール202と、直接アクセスモジュール204と、インターフェースモジュール206とを含む。
[0058]一実施形態では、認証モジュール202は、ユーザのハードウェアデバイス102上でユーザからサードパーティサービスプロバイダ108のためのユーザの電子認証情報を受け取る。さらなる実施形態では、認証モジュール202は、直接アクセスモジュール204が、異なるユーザのためのデータをダウンロード(例えば、単一のユーザのハードウェアデバイス102から複数のユーザのためのデータをダウンロード)することができるように、暗号化および/またはその他の方法でセキュリティ保護されてよい異なるユーザの電子認証情報を(例えば、異なるハードウェアデバイス102から、バックエンドアグリゲーションモジュール104からなど)受け取ってよい。
[0059]例えば、分散/非集中システム100において、1人のユーザのハードウェアデバイス102がオフにされている、スリープ状態にある、バッテリが切れている、またはサードパーティサービスプロバイダ108によってブロックされているなどの場合、特定の実施形態では、異なるユーザのハードウェアデバイス102上および/またはバックエンドサーバ110上のアグリゲーションモジュール202が、その1人のユーザの電子認証情報を使用してその1人のユーザのためにデータをダウンロードしてよく、その1人のユーザのハードウェアデバイス102にデータを送信してよく、および/または、その1人のユーザのハードウェアデバイス102にアラートおよび/またはプッシュ通知を送信するなどしてよい。このようにして、一実施形態では、ユーザ自身のハードウェアデバイス102がブロックされる、利用不能であるなどの場合であっても、ユーザはデータの集約、アラートおよび/またはプッシュ通信の受信などを継続して行うことができる。特定の実施形態では、ユーザが別のユーザの電子認証情報、ダウンロードされたデータまたはその他の個人および/または機密データを見ること、および/またはアクセスすることができないように、1つまたは複数の認証モジュール202と協力して、アグリゲーションモジュール104a、104bがセキュリティ保護および/または暗号化されたプロトコルを使用して互いに通信してよく、および/または、電子認証情報をセキュリティ保護および/または暗号化された方式で記憶してよい。
[0060]アグリゲーションモジュール104がハードウェア(例えば、FPGA、ASICなどの半導体集積回路デバイス)を備える実施形態では、認証モジュール202は、暗号鍵を記憶する、セキュリティ保護されていないバスまたはストレージに復号データを出力しない、セキュリティ保護された暗号プロセッサ(例えば、チップ上の専用コンピュータまたは1つまたは複数の物理的セキュリティ手段を備えたパッケージングに内蔵されたマイクロプロセッサ)、セキュリティ保護されたストレージデバイス、TPMチップおよび/またはTPMセキュリティデバイスなどのトラステッドプラットフォームモジュール(TRM)、セキュリティ保護されたブートROMまたはその他の種類のROM、認証チップなど、電子認証情報、ダウンロードされたデータおよび/または機密および/または個人データを記憶および/または処理するための専用セキュリティハードウェアを備えてよい。別の実施形態では、認証モジュール202は、専用セキュリティハードウェアを備えた、または備えていないユーザの既存ハードウェアデバイス102のソフトウェアおよび/またはハードウェアを使用して(例えばRAM、NANDおよび/またはその他の汎用ストレージ内のデータを暗号化して)、電子認証情報、ダウンロードされたデータおよび/またはその他の機密データを、セキュリティ保護および/または暗号化された方式で記憶および/または処理してよい。特定の実施形態では、認証モジュール202は、第2の(例えば異なる)ユーザのハードウェアデバイス102によって(例えば第1のユーザのハードウェアデバイス102からデータネットワーク106などを介して)受信、処理および/または記憶される第1のユーザに関連付けられたデータ(例えば電子認証情報、ダウンロードされたデータ)を暗号化および/またはセキュリティ保護してよく、それによって、異なるユーザのハードウェアデバイス102から第1のユーザのデータがダウンロードおよび/または集約されることをそのまま可能にした状態で第2のユーザが第1のユーザのデータにアクセスするのを防止してよい。
[0061]一実施形態では、上述のように、電子認証情報は認証モジュール202がそれによってユーザの身元および/または許可を認証および/または妥当性確認する(validate)ことができる、ユーザ名とパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証の認証情報、またはその他の情報のうちの1つまたは複数を備えてよい。
[0062]認証モジュール202は、特定の実施形態では、アグリゲーションモジュール104が複数の異なるサードパーティサービスプロバイダ108からユーザのデータのダウンロード、集約および/または組合せを行うことができるように、異なるサードパーティサービスプロバイダ108(例えば異なるソーシャルネットワーク、異なる写真共有サイト、異なる金融機関)におけるユーザの異なるアカウントのために、ユーザから異なる認証情報を受け取ってよい。一実施形態では、図3のパスワードマネージャモジュール306に関して後述するように、認証モジュール202は、ユーザから1つまたは複数のパスワードまたはその他の電子認証情報を受け取る代わりに、および/またはそれに加えて、1つまたは複数のサードパーティサービスプロバイダ108のためのユーザの1つまたは複数のパスワードまたはその他の電子認証情報の管理および/または決定を行ってもよい。例えば、特定の実施形態では、認証モジュール202は、サードパーティサービスプロバイダ108におけるユーザのアカウントのための電子認証情報(例えばユーザ名およびパスワード)の初期セットをユーザから受け取ってよく、認証モジュール202は、認証モジュール202によって決定された新しいパスワードを設定すべくサードパーティサービスプロバイダ108におけるユーザのアカウントにアクセスするために、電子認証情報のその初期セットを使用してよい。認証モジュール202は、一実施形態では、ユーザによって典型的に作成される、および/またはユーザが記憶しやすいパスワードまたはその他の電子認証情報よりもより安全な(例えば、より長いか、より多くの数字であるか、または大文字と小文字のバリエーションがより大きいか、より頻繁に変更されるなど)パスワードまたはその他の電子認証情報を決定してよい。
[0063]一実施形態では、直接アクセスモジュール204は、認証モジュール202からの(ハードウェアデバイス102に関連付けられたユーザ、または異なるユーザなどの)ユーザの電子認証情報を使用して、ユーザのハードウェアデバイス102から、および/またはバックエンドサーバ110から1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバ108にアクセスする。直接アクセスモジュール204は、特定の実施形態では、ユーザのハードウェアデバイス102に直接データをダウンロードする代わりに、またはそれに加えて、(例えば、ユーザのハードウェアデバイス102の利用可能性に基づいて、またはデータを第2のロケーションでバックアップするためなど)1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバ108からユーザの(例えば、ダウンロードされたデータに関連付けられたユーザの、または処理のため、および/またはダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102への転送のために異なるユーザなどの)ハードウェアデバイス102に、および/または直接アクセスモジュール204に関連付けられたバックエンドサーバ110に、ユーザに関連付けられたデータ(例えばユーザのソーシャルメディア書き込み、ユーザの写真、ユーザの金融トランザクションなど)をダウンロードする。
[0064]直接アクセスモジュール204は、特定の実施形態では、ユーザの電子認証情報を使用してサーバ108にアクセスために、および/またはユーザに関連付けられたデータをダウンロードするために、サードパーティサービスプロバイダ108のサーバ108のウェブページインターフェースを使用してよい。例えば、特定の実施形態では、直接アクセスモジュール204は、ユーザに関連付けられたサーバ108上のデータへの許可されたアクセスを得るために、サードパーティサービスプロバイダ108のサーバ108からウェブページをダウンロード/ロードし、ユーザのユーザ名とパスワードまたはその他の電子認証情報をウェブページ上のフォーム内のテキストボックスに入力し、ウェブページのサブミットボタンまたはその他のインターフェース要素を使用してユーザ名とパスワードまたはその他の電子認証情報をサブミットし、および/またはその他の方法でウェブサイトを使用して電子認証情報をサブミットしてよい。後述するように、パターンモジュール308は、直接アクセスモジュール204がサーバ108にアクセスすることができるようにする命令(例えば電子認証情報をサブミットするためのロケーションまたは方法など)を受信および/または提供してよい。
[0065]ユーザの電子認証情報を用いて、サードパーティサービスプロバイダ108のサーバ108に対して認証を行うことに成功し、アクセスしたことに応答して、直接アクセスモジュール204は、サーバ108から、ユーザに関連付けられたデータを(例えばユーザのアカウントなどから)ユーザに関連付けられたハードウェアデバイス102に、バックエンドサーバ110に、またはユーザの代理としてデータをダウンロードする別のユーザのハードウェアデバイス102などにダウンロードしてよい。後述するように、特定の実施形態では、パターンモジュール308は、直接アクセスモジュール204がサードパーティサービスプロバイダ108のサーバ108からユーザに関連付けられたデータをダウンロードすることができるようにする命令(例えば、データのロケーションへのURLまたはその他のリンク、1つまたは複数のウェブページまたはその他のデータ構造内などでのデータを探索するためのラベルまたはその他の識別子)を受信および/または提供してよい。直接アクセスモジュール204は、特定の実施形態では、ユーザに関連付けられたデータの探索、ダウンロードおよび/または抽出などを行うべく、エントリロケーションを探索するため、および/または電子認証情報をサブミットするために1つまたは複数のウェブページを構文解析し、スクリーンスクレイピング方式でサーバ108からの1つまたは複数のウェブページからのデータの認証および/またはアクセスを行うように、パターンモジュール308からの命令に従ってよい。
[0066]一実施形態では、直接アクセスモジュール204は、サードパーティサービスプロバイダ108のサーバ108のAPIまたはその他のアクセスプロトコルを使用して、電子認証情報を送信またはその他の方法でのサブミット、および/または、データの受信またはその他の方法でのデータのダウンロードを行う。例えば、直接アクセスモジュール204は、サードパーティサービスプロバイダ108のサーバ108(例えばAPIサーバ108)によって指定された形式および/またはサーバ108に適合する形式で要求を送信してよい。送信される要求は、ユーザの電子認証情報またはその一部(例えばユーザ名および/またはパスワード)を含んでよく、(例えば、サーバ108から最初の要求の肯定応答を受け取ったことに応答するなど)後続の要求がユーザの電子認証情報またはその一部を含んでよく、および/または、直接アクセスモジュール204はサーバ108の異なるアクセスプロトコルを使用してよい。
[0067]直接アクセスモジュール204からのデータの要求に応答して(例えば、直接アクセスモジュール204がサーバ108のアクセスプロトコルを使用してユーザを認証したことに応答して)、サードパーティサービスプロバイダ108のサーバ108がユーザに関連付けられたデータの送信および/または返送を(例えば、1つまたは複数のメッセージ、パケット、ペイロードで、直接アクセスモジュール204がデータを取り出すことができるロケーションのURLまたはその他のポインタなどとして)行ってよい。直接アクセスモジュール204は、様々な実施形態において、データネットワーク106を介してサードパーティサービスプロバイダ108のサーバ108から、ユーザに関連付けられたデータを直接受け取ってよく、または、サードパーティサービスプロバイダ108のサーバ108から、ユーザに関連付けられたデータのロケーションへのポインタ、URLまたはその他のリンクを受け取ってよく、または(例えばサードパーティサービスプロバイダ108のサーバ108から他のエンティティへの要求に応答してなど)データネットワーク106上の別のエンティティから、ユーザに関連付けられたデータを受け取ってよく、またはサードパーティサービスプロバイダ108のアクセスプロトコルに従ってユーザに関連付けられたデータをその他の方法で受け取ってよい。
[0068]一実施形態では、サードパーティサービスプロバイダ108が、直接アクセスモジュール204にAPIまたはその他のアクセスプロトコルを提供する。さらなる実施形態では、直接アクセスモジュール204が、サードパーティサービスプロバイダ108のアプリケーション(例えばモバイルアプリケーション)のためのラッパおよび/またはプラグインまたは拡張機能の役割を果たしてよく、アプリケーションがサードパーティサービスプロバイダ108のAPIまたはその他のアクセスプロトコルにアクセス可能であってよい。別の実施形態では、直接アクセスモジュール204は、サードパーティサービスプロバイダ108のアプリケーションの観察などにより、サードパーティサービスプロバイダ108のアプリケーション(例えばモバイルアプリケーション)と同様にしてAPIまたはその他のアクセスプロトコルを使用するように構成されてよい。特定の実施形態では、直接アクセスモジュール204は、ユーザに関連付けられたデータにアクセスするために(例えば、アプリケーションおよび/またはユーザによってすでにダウンロードされているデータへのアクセス、アプリケーションおよび/またはウェブブラウザのデータベースまたはその他のデータストアへのアクセス、ユーザがウェブページにアクセスしている際のサードパーティサービスプロバイダ108のウェブページのスキャンおよび/またはスクリーンスクレイピングなど)、サードパーティサービスプロバイダ108のアプリケーション、またはユーザがサードパーティサービスプロバイダ108のサービスにアクセスするために使用するウェブブラウザなどと協働してよい。
[0069]直接アクセスモジュール204は、特定の実施形態では、異なるサードパーティサービスプロバイダ108に異なる方式でアクセスしてよい。例えば、第1のサードパーティサービスプロバイダ108が直接アクセスモジュール204にAPIまたはその他のアクセスプロトコルへのアクセスを許諾してよく、一方、直接アクセスモジュール204は、第2のサードパーティサービスプロバイダ108からのデータへのアクセスおよびダウンロードなどを行うために、ウェブページインターフェース(例えばスクリーンスクレイピング)を使用してよい。一実施形態では、遠隔バックエンドサーバ110が、ファーストパーティサービスプロバイダ110(例えば、アグリゲーションモジュール104のベンダおよび/またはプロバイダ)に関連付けられてよく、直接アクセスモジュール204がファーストパーティサービスプロバイダ110からと、1つまたは複数のサードパーティサービスプロバイダ108の両方から、ユーザに関連付けられたデータをダウンロードしてよく、ユーザが単一のインターフェースおよび/またはアプリケーションでデータにアクセスすることができるようにデータを集約してよい。例えば、インターフェースモジュール206に関して後述するように、インターフェースモジュール206は、単一の写真アプリケーション内で複数のサードパーティクラウドストレージプロバイダ108からのユーザの写真へのユーザアクセスを提供してよく、ユーザに単一の個人金融管理アプリケーションおよび/またはオンラインバンキングアプリケーション内でユーザの個人金融情報へのアクセスを提供してよく、ユーザに単一のソーシャルネットワーキングアプリケーション内で複数のソーシャルネットワークからの書き込みへのアクセスを提供するなどしてよい。
[0070]直接アクセスモジュール204は、特定の実施形態では、1つまたは複数のサードパーティサービスプロバイダ108から独立してダウンロードおよび/または集約されたデータを記憶してよい。例えば、直接アクセスモジュール204は、ユーザのダウンロードおよび/または集約されたデータをユーザのハードウェアデバイス102上、またはユーザによるアクセスが可能なバックエンドサーバ110上などに記憶してよい。このようにして、特定の実施形態では、サードパーティサービスプロバイダ108が閉鎖し、または利用できない場合であっても、ユーザはユーザのデータをコントロールおよび/またはアクセスすることができ、使用がサードパーティサービスプロバイダ108によってサポートされていないなどの場合であっても、ユーザはユーザが望む任意の方式でユーザのデータを使用することができる。
[0071]直接アクセスモジュール204は、一実施形態では、1つまたは複数のサードパーティサービスプロバイダ108からデータをダウンロードすることに加えて、および/またはそれに代えて、ユーザ入力などに応答して1つまたは複数のサードパーティサービスプロバイダ108にデータのアップロード、および/または1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数の設定の変更を行ってよい。例えば、データが写真を含む実施形態では、直接アクセスモジュール204はユーザのハードウェアデバイス102から1つまたは複数のサードパーティサービスプロバイダ108に写真(例えばユーザがハードウェアデバイス102上で編集したダウンロード写真など)をアップロードしてよい。データがソーシャルメディア書き込みまたはその他の内容を含む実施形態では、直接アクセスモジュール204は、ユーザから入力(例えば写真、テキスト書き込み、1つまたは複数の絵文字、ビデオ、文書ファイルまたはその他のファイルなど)を受け取ってよく、受け取った入力を1つまたは複数のサードパーティサービスプロバイダ108(例えばソーシャルメディアサイトなど)にアップロードしてよい。データが金融トランザクションまたはその他の金融データを含む実施形態では、直接アクセスモジュール204は、請求書支払いもしくはその他の支払いまたは資金振替をスケジュールすること、小切手を遠隔で(例えば小切手の表および/または裏の写真をアップロードするなどして)デポジットすること、および/または他のアクションを行ってよい。
[0072]直接アクセスモジュール204は、アカウントの種類またはアカウントのプラン、アカウントに関連付けられたクレジットカードまたはその他の支払情報、アカウントに関連付けられた電話番号もしくは住所またはその他の連絡先情報、アカウントのパスワードまたはその他の電子認証情報、および/またはサードパーティサービスプロバイダ108のためのその他のユーザのアカウント情報など、サードパーティサービスプロバイダ108についてのユーザのアカウント情報を更新または変更してよい。直接アクセスモジュール204は、データをダウンロードするために本明細書に記載の方式と実質的に同様にしてデータの更新および/またはアップロード(例えば、サードパーティサービスプロバイダ108のためのユーザの電子認証情報の決定、サードパーティサービスプロバイダ108のサーバ108へのアクセス、サードパーティサービスプロバイダ108へのデータのアップロードおよび/または提供など)を行ってよい。
[0073]一実施形態では、インターフェースモジュール206が、直接アクセスモジュール204によってダウンロードされたユーザのデータを、ユーザの(例えばダウンロードされたデータに関連付けられたユーザまたは異なるユーザの)ハードウェアデバイス102から、(例えば異なるユーザのハードウェアデバイス102によってユーザの1つのハードウェアデバイス102から同じユーザの別のハードウェアデバイス102にデータがダウンロードされたことに応答して)ダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102、または、データがそこからダウンロードされたサードパーティサービスプロバイダ108の系列ではない(例えば所有、運営、制御などが行われていない)遠隔サーバ110またはその他の遠隔デバイス102などの別のエンティティに提供する。例えば、インターフェースモジュール206は、ユーザのダウンロードおよび/または集約されたデータをユーザのハードウェアデバイス102に、またはバックエンドアグリゲーションモジュール104bに、またはバックエンドサーバ110に、または異なるサードパーティサービスプロバイダ108に、またはそのユーザの異なる/第2のハードウェアデバイス102などに提供するために、APIまたはその他のインターフェースを提供してよい。
[0074]特定の実施形態では、どのハードウェアデバイス102、110がユーザに関連付けられたデータをダウンロードしたかが、ユーザにとってトランスペアレントおよび/または実質的にトランスペアレント(例えばわからない)とすることができる。例えば、インターフェースモジュール206は、ユーザに関連付けられたダウンロードされたデータを、そのユーザの1つのハードウェアデバイス102からそのユーザの別のハードウェアデバイス102に、または、ユーザのハードウェアデバイス102から(例えば、ユーザがそこからウェブブラウザ、アプリケーションなどを使用してデータにアクセスすることができる)バックエンドサーバ110に、またはバックエンドサーバ110からユーザのハードウェアデバイス102に提供するなどしてよく、それによってユーザが、データがダウンロードされた先のロケーションとは異なるロケーションからデータにアクセスすることができるようにしてよい。
[0075]特定の実施形態では、インターフェースモジュール206は、ユーザのハードウェアデバイス102上でグラフィカルインターフェース(GUI)を提供し、ユーザに関連付けられたダウンロードされたデータをそのGUIを介してユーザに提供する(例えば、それによって、ユーザがデータを直接閲覧することができるようにし、そのデータに基づいてユーザに1つまたは複数の通知および/または推奨を提供し、そのデータに基づいてユーザに1つまたは複数のテーブルまたはチャートを提供し、そのデータに関連する1つまたは複数の統計の要約を提供するなどを行う)。インターフェースモジュール206は、様々な実施形態において、データがダウンロードされた同じハードウェアデバイス102から、データがダウンロードされたハードウェアデバイス102、110とは異なるハードウェアデバイス102上などで、ユーザにGUIを提供してよい。
[0076]例えば、ユーザに関連付けられたデータが写真を含む一実施形態では、インターフェースモジュール206は、ユーザがユーザのダウンロードおよび/または集約された写真を閲覧および/または他の方法でアクセスすることができる、写真管理インターフェース、写真編集インターフェースなどを提供してよい。ユーザに関連付けられたデータがユーザの金融トランザクション履歴(例えば、銀行、信用組合、ローン会社などの1つまたは複数の金融機関108からダウンロードされた購入および/またはその他の金融トランザクション)を含む他の実施形態では、インターフェースモジュール206は、個人金融管理インターフェースを、トランザクションのリスト、1つまたは複数の予算、1つまたは複数の金融目標、債務管理インターフェース、純資産インターフェース、および/または、ユーザがユーザのダウンロードおよび/または集約された金融トランザクション履歴および/またはそれに基づくアラートまたは推奨を閲覧することができる別の個人金融管理インターフェースとともに提供してよい。ユーザに関連付けられたデータがソーシャルメディア書き込みを含む別の実施形態では、インターフェースモジュール206は、ユーザが閲覧するためにソーシャルメディア書き込み(例えば、複数のソーシャルネットワーク108から、またはユーザの様々な連絡先または友人などからダウンロードおよび/または集約されたソーシャルメディア書き込み)のストリーム、フィードおよびまたはウォールを備えるGUIなどを提供してよい。
[0077]インターフェースモジュール206は、特定の実施形態では、1つまたは複数のアクセスコントロールをユーザに提供してよく、それによってユーザがどのデバイス102、ユーザ、サードパーティサービスプロバイダ108などがどのデータにアクセス可能であるかを定義することができるようにしてよい。例えば、インターフェースモジュール206は、ユーザが特定のモバイルアプリケーション、サードパーティサービスのための特定のAPI、特定のプラグインまたは拡張機能、特定のユーザ、特定のハードウェアデバイス102、および/または1つまたは複数の他のエンティティが、1つまたは複数のサードパーティサービスプロバイダ108からそのユーザのためにダウンロードされたデータにアクセスすることを(例えば、サードパーティサービスプロバイダ108またはその他のデータソース別、データタイプ別、アクセスを要求するエンティティ別、および/またはその他の詳細度によるアクセスコントロールを使用して)許可および/または制限するためのインターフェースを提供してよい。このようにして、アグリゲーションモジュール104は、特定の実施形態では、集約されたデータのローカルリポジトリを備えることができ、そのリポジトリに1つまたは複数の他のデバイス102および/またはサービスがユーザの許可によりアクセスし、使用することができる。
[0078]図3に、アグリゲーションモジュール104の別の実施形態を示す。図示されている実施形態では、アグリゲーションモジュール104は、問合せモジュール112と、認証モジュール202と、直接アクセスモジュール204と、インターフェースモジュール206とを含み、さらに、ルートモジュール314と、頻度モジュール316と、試験モジュール318とを含む。認証モジュール202は、図示されている実施形態では、ローカル認証モジュール302と、ネットワーク認証モジュール304と、パスワードマネージャモジュール306とを含む。直接アクセスモジュール204は、図示されている実施形態では、パターンモジュール308と、アクセス修復モジュール310と、階層モジュール312とを含む。
[0079]一実施形態では、ローカル認証モジュール302は、ユーザのハードウェアデバイス102に転送される、および/またはユーザのハードウェアデバイス102から転送されるなどする、ユーザのハードウェアデバイス102上のダウンロードされたデータ、記憶されたパスワードおよび/またはその他のデータへのユーザのアクセスをセキュリティ保護および/または認証する。例えば、ローカル認証モジュール302は、ハードウェアデバイス102へのアクセスを得るためにユーザによって使用される、PIN、パスワード、指紋認証、顔認証、またはその他の電子認証情報などの、ユーザのハードウェアデバイス102の1つまたは複数のセキュリティシステムおよび/または認証システムと協働してよい。さらなる実施形態では、ローカル認証モジュール302は、インターフェースモジュール206がダウンロード/集約されたデータおよび/またはアラートまたはその他のメッセージへのアクセスをユーザに提供することができるようにする前に、ユーザを認証してよい。例えば、ローカル認証モジュール302は、ユーザのためにアグリゲーションモジュール104に関連付けられた電子認証情報の管理および/またはアクセスを行ってよく、ユーザがアグリゲーションモジュール104のアプリケーションおよび/またはサービスにアクセスすることに応答して、ユーザを認証してよい。
[0080]特定の実施形態では、ローカル認証モジュール302は、ユーザが異なるユーザに関連付けられたデータにアクセスすることができないが、そのデータがその異なるユーザのハードウェアデバイス102またはバックエンドサーバ110などに送信された後はその異なるユーザがそのデータにアクセスすることができるように、ユーザのハードウェアデバイス102上で、異なるユーザに関連付けられた電子認証情報および/またはダウンロードされたデータを暗号化および/またはその他の方法でセキュリティ保護してよい。異なるハードウェアデバイス102、110のローカル認証モジュール302は、データネットワーク106を介して1つのハードウェアデバイス102、110から別のハードウェアデバイス102、110にデータ(例えば1つまたは複数の電子認証情報、ダウンロードされたデータなど)をセキュリティ保護された状態で転送するために協働してよい。さらなる実施形態では、ローカル認証モジュール302は、ユーザの電子認証情報および/またはダウンロードされたデータが単一のハードウェアデバイス102上で、セキュリティ保護されたリポジトリなどに確実に留まるように(例えばデータネットワーク106で送信されないように)し、バックエンドサーバ110、別のユーザのハードウェアデバイス102などに記憶および/またはアクセス可能とならないようにしてよい。
[0081]一実施形態では、ネットワーク認証モジュール304は、ユーザのハードウェアデバイス102上、バックエンドサーバ110上などで、1つまたは複数のサードパーティサービスプロバイダ108のためのユーザの電子認証情報を受け取ること、および/または記憶することを行う。ネットワーク認証モジュール304は、様々な実施形態において、ユーザから、またはユーザのハードウェアデバイス102から、またはバックエンドサーバ110などから、ユーザの電子認証情報を受け取ってよい。ネットワーク認証モジュール304は、ユーザの電子認証情報をサードパーティサービスプロバイダ108のサーバ108に提供するために直接アクセスモジュール204と協働してよい(例えば、ネットワーク認証モジュール304が、サーバ108に提供するために直接アクセスモジュール204に電子認証情報を提供してよく、ネットワーク認証モジュール304が電子認証情報をサーバ108に直接提供するなどしてよい)。
[0082]ネットワーク認証モジュール304は、特定の実施形態では、ユーザの電子認証情報がサードパーティサービスプロバイダ108のサーバ108などに提供される一方で、ユーザのハードウェアデバイス102上で、データネットワーク106上で、異なるユーザのハードウェアデバイス102上で、バックエンドサーバ110上で、1つまたは複数のサードパーティサービスプロバイダ108のためのユーザの電子認証情報を暗号化および/またはその他の方法でセキュリティ保護するために、ローカル認証モジュール302と協働してよい。さらなる実施形態では、ネットワーク認証モジュール304は、ユーザの電子認証情報が確実にユーザのハードウェアデバイス102上にのみ記憶され、ユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108に送信されるようにし、ユーザの電子認証情報をバックエンドサーバ110上、異なるユーザのハードウェアデバイス102上などには記憶しない。別の実施形態では、ネットワーク認証モジュール304は、ルートモジュール314に関連して後述するように、ユーザのハードウェアデバイス102が利用不能である、ブロックされているなどであっても、直接アクセスモジュール204がユーザに関連付けられたデータのアクセスおよび/またはダウンロードを行うことができるように、サードパーティサービスプロバイダ108のためのユーザの電子認証情報を、バックエンドサーバ110上、異なるユーザのハードウェアデバイス102上などに、(例えば安全な暗号化を使用して)セキュリティ保護された状態で記憶してよい。特定の実施形態では、ユーザがセキュリティのレベルなどを決定することができるように、ネットワーク認証モジュール304および/またはローカル認証モジュール302が、電子認証情報が異なるユーザのハードウェアデバイス102、またはバックエンドサーバ110などによって送信および/または記憶されることを可能にするか否かは、ユーザ入力に基づいて定義された設定に基づくことができる。
[0083]一実施形態では、パスワードマネージャモジュール306は、直接アクセスモジュール204が複数のサードパーティサービスプロバイダ108のそれぞれから、ユーザに関連付けられたデータのアクセスおよび/またはダウンロードを行うことができるように、複数のサードパーティサービスプロバイダ108のためのユーザの電子認証情報を管理および/または記憶してよい。パスワードマネージャモジュール306は、特定の実施形態では、複数のサードパーティサービスプロバイダ108のそれぞれのための異なるセキュリティ保護された認証情報を生成および/またはその他の方法で管理してよい。
[0084]パスワードマネージャモジュール306は、一実施形態では、生成された電子認証情報をユーザが覚えておき、入力する必要がないように、生成されたユーザの認証情報をセキュリティ保護された状態でユーザのハードウェアデバイス102上に記憶してよい。例えば、直接アクセスモジュール204が生成された電子認証情報を使用してサードパーティサービスプロバイダ108にアクセスすることを可能にすることに加えて、パスワードマネージャモジュール306は、ユーザがウェブブラウザにおいてウェブページを訪れることなどに応答して、ユーザが電子認証情報を手動で入力しなくても、ウェブページ上のフォームの1つまたは複数のインターフェース要素にユーザの電子認証情報(例えばユーザ名、パスワード)を自動的に入力してよい。パスワードマネージャモジュール306は、特定の実施形態では、ユーザの電子認証情報を、毎週、毎月、2カ月ごと、3カ月ごと、4カ月ごと、5カ月ごと、6カ月ごと、毎年、2年ごと、ユーザ要求に応答、サードパーティサービスプロバイダ108からの要求に応答、および/またはその他の期間ごとまたは別の周期的トリガに応答してなど、定期的に更新してよい(例えば、異なるパスワードなどの異なる認証情報を再生成し、サードパーティサービスプロバイダ108に対するユーザのアカウントを再生成された異なる認証情報で更新してよい)。
[0085]パスワードマネージャモジュール306は、一実施形態では、(例えば、ユーザによって提供されるか、またはパスワードマネージャモジュール306によって生成されるなどした)ユーザの電子認証情報を、ユーザの異なるハードウェアデバイス102、ウェブブラウザなどにわたって同期させてよい。例えば、パスワードマネージャモジュール306および/またはユーザが電子認証情報を更新またはその他の方法で変更したのに応答して、パスワードマネージャモジュール306は、その更新/変更をユーザの異なるハードウェアデバイス102上などの1つまたは複数の他のパスワードマネージャモジュール306に伝播させてもよい。
[0086]一実施形態では、パターンモジュール308は、直接アクセスモジュール204がサーバにアクセスするためのサードパーティサービスプロバイダ108の1つまたは複数のサーバ108上の複数のロケーション(例えばユーザのデータが記憶され、および/またはアクセス可能なロケーション以外のロケーションを含んでよい)、直接アクセスモジュール204がサーバ108上のロケーションにアクセスする合間に待つ1つまたは複数の遅延、および/または、サーバのデータにアクセスするためのアクセスパターンのその他の構成要素の、順序付けられたリスト(例えばパターン、スクリプトなど)を決定する。特定の実施形態では、ロケーションは、ウェブページ、ウェブページの一部、画像ファイルまたはその他のデータファイル、データベースまたはその他のデータストア、モバイルアプリケーションのページまたはセクションなど、サードパーティサービスプロバイダ108の1つまたは複数のサーバなどによって提供される、独立してアドレス可能および/またはアクセス可能なコンテンツおよび/または資産を含む。パターンモジュール308は、一実施形態では、所望のデータをダウンロードするために直接アクセスモジュール204がアクセスする必要も使用する必要もない1つまたは複数のロケーションおよび/または遅延を含むパターン/順序付けられたリストを決定するが、その代わりに、このパターン/順序付けられたリストは、直接アクセスモジュール204がサードパーティサービスプロバイダ108のサーバにアクセスすることと、ユーザがサードパーティサービスプロバイダのサーバにアクセスすることとをサードパーティサービスプロバイダ108が区別するのを困難または不可能にすることができる。
[0087]パターンモジュール308は、一実施形態では、ウェブブラウザ、モバイルアプリケーションなどを使用してサードパーティサービスプロバイダ108にアクセスする複数のユーザの挙動において識別されるかまたはそのような挙動に基づく平均的パターンまたは組み合わされたパターンに基づいて、複数のロケーションおよび/または1つまたは複数の遅延(例えばパターン/順序付けられたリスト)を決定および/または選択してよい。パターンモジュール308は、一実施形態では、1人または複数のユーザがサードパーティサービスプロバイダ108のサーバにアクセスするときに、(例えば所定期間など)その1人または複数のユーザを監視してよく、それによって、どのリンク、データ、ウェブページおよび/またはその他のロケーションにその1人または複数のユーザがアクセスするか、その1人または複数のユーザが異なるロケーションにどれだけの時間アクセスするか、その1人または複数のユーザがロケーションにアクセスする順序などを追跡してよい。特定の実施形態では、直接アクセスモジュール204がサードパーティサービスプロバイダ108のサーバにアクセスするために使用するより現実的なアクセスパターンを提供するために、1人または複数の監視されているユーザは、ユーザのアクセスを一時的または永続的に監視する許可をパターンモジュール308に与えたボランティアであってもよい。
[0088]他の実施形態では、パターンモジュール308は、ユーザのハードウェアデバイス102のウェブブラウザ、モバイルアプリケーションまたはデスクトップアプリケーション、またはその他のインターフェースを使用してサードパーティサービスにアクセスする、パターンモジュール308が配置されているハードウェアデバイス102に関連付けられたユーザの挙動において識別されたパターンに基づいて、複数のロケーション、および/または異なるロケーションにアクセスする合間の1つまたは複数の遅延を決定および/または選択する。例えば、パターンモジュール308は、ユーザのハードウェアデバイス102のネットワークハードウェア(例えば、データおよび/またはサードパーティサービスプロバイダ108のサーバとの対話を監視するためにデータネットワーク106と通信しているネットワークアクセスカードおよび/またはチップ、プロセッサ、FPGA、ASICなど)、ウェブブラウザプラグインまたは拡張機能、ユーザのハードウェアデバイス102のプロセッサ上で実行されるモバイルアプリケーションおよび/またはデスクトップアプリケーションなどを備えてよい。パターンモジュール308は、ユーザのハードウェアデバイス102からの1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバに関して、ユーザの活動を監視するために、ユーザに許可を要求し、受け取ってよい。
[0089]パターンモジュール308は、特定の実施形態では、1人または複数のユーザのアクセスパターンなどの検出された変化に基づいて、パターン/順序付けられたリストを経時的に更新してよい。一実施形態では、パターンモジュール308は、サードパーティサービスプロバイダ108のサーバ108および/またはユーザに関連付けられたデータが壊れていることおよび/またはアクセス不能になったことに応答して、パターン/順序付けられたリストを更新するために、後述するアクセス修復モジュール310と連係/およびまたは協働してよい。
[0090]一実施形態では、アクセス修復モジュール310は、サードパーティサービス108のサーバ108へのアクセス、および/またはユーザに関連付けられたデータが壊れていることおよび/またはアクセス不能になっていることを検出する。アクセス修復モジュール310は、特定の実施形態では、ユーザがユーザの電子認証情報の入力ロケーション、ユーザに関連付けられたデータのロケーションなどをグラフィックで識別することができるようにするインターフェースをユーザに提供する。例えば、アクセス修復モジュール310は、エンドユーザが電子認証情報の入力ロケーション、電子認証情報をサブミットするためのアクション、データのロケーションなどを識別することができるようにするGUI、コマンドラインインターフェース(CLI)、API、および/または他のインターフェースを提供してよい。アクセス修復モジュール310は、一実施形態では、ユーザのハードウェアデバイス102上でユーザにインターフェースを提供する。
[0091]特定の実施形態では、例えば、アクセス修復モジュール310は、ユーザのハードウェアデバイス102の電子ディスプレイ画面上でサードパーティサービスプロバイダ108のウェブサイトの1つまたは複数のページの上にインターフェースを重ねてもよい。アクセス修復モジュール310は、複数のユーザに1つまたは複数のインターフェース(例えば、GUI、CLI、API、オーバレイなど)を提供してよく、それによって複数のユーザが(例えば、異なるハードウェアデバイス102などからネットワーク106を介して分散および/または非集中方式で)サードパーティサービスプロバイダ108のサーバへのアクセスのための修復および/または更新を定義することができるようにする。
[0092]アクセス修復モジュール310は、特定の実施形態では、ユーザのために、(例えば、基本インターフェース、標準インターフェース、初歩ユーザインターフェースなどで)ユーザが確定(confirm)または変更/修正することができる1つまたは複数の示唆504および/または推奨504を決定および/または表示してよい。例えば、アクセス修復モジュール310は、ユーザが、ユーザ名を入力するための示唆されたロケーション、ユーザがパスワードを入力するための示唆されたロケーション、示唆された認証情報サブミットアクション、ユーザに関連付けられたデータの示唆されたロケーションを備えた1つまたは複数のインターフェース要素、および/または、ユーザがサードパーティサービスプロバイダ108のウェブサイト内の1つまたは複数のロケーションをグラフィックで識別することができるようにする1つまたは複数の他のインターフェース要素を表示してよい。
[0093]アクセス修復モジュール310は、特定の実施形態では、ユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするためのアクション、ユーザに関連付けられたデータのロケーションなどの推定および/または予測を決定するために、サーバ108上の1つまたは複数のページおよび/またはその他のロケーション(例えば1つまたは複数のウェブサイト、ウェブアプリなど)を処理する。一実施形態では、アクセス修復モジュール310は、(例えば、ウェブサイトの1つまたは複数のページをスキャンおよび/または構文解析することによって、ウェブサイトの1つまたは複数のページにアクセスする他のユーザからの入力に基づいて、ウェブサイトの1つまたは複数のページとのユーザの以前の対話に基づいて、ウェブサイトの機械学習および/または人工知能解析を使用して行った予測に基づいて、ウェブサイトの1つまたは複数のページおよび/または1つまたは複数の類似のウェブサイトの1つまたは複数のページに加えられた過去の変更の統計分析に基づくなどして)1つまたは複数のロケーションおよび/またはアクションを推定してよい。アクセス修復モジュール310は、ユーザがインターフェースを使用して推定および/または予測が正しいか否かを確定することができるように、ユーザの電子認証情報の入力ロケーション、ユーザに関連付けられたデータのロケーションなどの推定および/または予測をユーザに対してインターフェースで表示してよい。
[0094]アクセス修復モジュール310は、ロケーションを指す矢印またはその他のポインタ、ロケーションのリンクまたはその他の識別子、ロケーションを囲むボックスまたはその他の強調表示、テキストを太字、イタリックおよび/または下線付きにするようにロケーションのテキスト標識を変更するなどにより、1つまたは複数の推定されたロケーションおよび/またはアクションを示してもよい。ユーザは、特定の実施形態では、アクセス修復モジュール310によって示唆されたロケーションを確定するかまたは変更/修正するために、ロケーションをクリック、選択またはその他の方法で識別することができる。例えば、ユーザは、ロケーションおよび/またはアクションに関連付けられたインターフェース要素をクリックまたはその他の方法で選択することができ、ロケーションをクリックまたはその他の方法で選択し、および/またはアクションを実行することができ、それをアクセス修復モジュール310が記録してよい(例えば、ロケーションおよび/またはアクションを識別するテキストフィールドに自動的に入力すること、異なるユーザのためにアクションがユーザなしに自動的に繰り返されることができるようにするマクロを記録することなど)。
[0095]特定の実施形態では、標準インターフェース、基本インターフェースまたは初歩ユーザインターフェースに代えて、またはそれに加えて、アクセス修復モジュール310は、経験を積んだユーザなどのためにウェブサイトのソースコードおよび/またはウェブサイトのその他の詳細を備えた高度なインターフェースを提供してもよい。例えば、一実施形態では、高度なアクセス修復インターフェースは、1人または複数の上級ユーザが、ウェブサイト自体では見えないおよび/または容易にはわからない場合があるウェブサイトのソースコード内で1つまたは複数のロケーションおよび/またはアクションを識別することができるようにしてもよい。特定の実施形態では、アクセス修復モジュール310は、ユーザが、標準ユーザインターフェースまたはビューと、高度なユーザインターフェースまたはビューとの間で選択および/または切り換えを行うことができるようにするユーザインターフェース要素を提供してよい。
[0096]一実施形態では、試験モジュール318が、ユーザから受け取った1つまたは複数のロケーションおよび/または命令が正確であるか否か(例えば、サードパーティサービスプロバイダ108のサーバからデータにアクセスするために使用可能であるか)を検証するために、アクセス修復モジュール310と協働する。試験モジュール318は、特定の実施形態では、複数の異なるユーザの電子認証情報などを使用して、アクセス修復モジュール310が単一のユーザから受け取った識別情報に基づいて、複数の異なるユーザ(例えばサンプルグループまたは試験セット)のために、サードパーティサービスプロバイダ108のサーバ108にアクセスを試みる。
[0097]試験モジュール318は、特定の実施形態では、それらの異なるユーザ(例えばサンプルグループまたは試験セット)に関連付けられたデータが、その単一のユーザからの識別情報を使用してアクセス可能であるか否かを決定する。試験モジュール318は、(例えば、複数の異なるハードウェアデバイス102上で、およびデータネットワーク106を介して単一のハードウェアデバイス102上の試験モジュール318に送信されるか、またはデータネットワーク106を介して異なるハードウェアデバイス102上の複数の試験モジュール318に送信されるか、または中央バックエンドサーバ110上の試験モジュール318に送信されるなどして)アクセス修復モジュール310が異なるユーザから受け取った識別情報を使用してサードパーティサービスプロバイダ108からデータへのアクセスを繰り返し試みてもよい。
[0098]試験モジュール318は、一実施形態では、単一ユーザからの識別情報を使用してそのためにデータにアクセス可能な異なるユーザ(例えばサンプルグループまたは試験セット)の量が閾値を満たすことに応答して、サードパーティサービスプロバイダ108のサーバ108にアクセスするために、ユーザからの1つまたは複数の識別情報を直接アクセスモジュール204の他のインスタンス(例えば他の試験モジュール318)に提供してよい。例えば、単一のユーザからの識別情報が、所定数の他の試験ユーザ(例えば、2人のユーザ、10人のユーザ、100人のユーザ、1000人のユーザ、試験ユーザの50%、試験ユーザの75%、および/または他の所定の閾値数の試験ユーザ)がサードパーティサービスプロバイダ108からそれぞれのデータにアクセスするのを可能にすることに成功した場合、試験モジュール318は、その識別情報に基づく命令をより多くのユーザ(例えばすべてのユーザまたは実質的にすべてのユーザなど)に提供してよい。
[0099]特定の実施形態では、試験モジュール318は、試験モジュール318が単一ユーザからの識別情報を使用してサードパーティサービスプロバイダ108からそれぞれのデータにアクセスするための命令を提供するユーザの数を含む試験サイズを連続的に増加させてもよい(例えば、1人または複数の試験ユーザから始めて、2人以上、3人以上、4人以上、5人以上、10人以上、20人以上、30人以上、40人以上、50人以上、100人以上、500人以上、1000人以上、5000人以上、10,000人以上、100,000人以上、100万人以上、および/またはその他の連続的に増加する数の試験ユーザに増加させる)。試験モジュール318は、一実施形態では、階層モジュール312に関して以下で詳述するように、単一のユーザからの識別情報に基づく命令を、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストに含める。
[0100]試験モジュール318は、特定の実施形態では、1人または複数のユーザの1つまたは複数の信頼要因(例えば得点など)に基づいて1人または複数のユーザからの識別情報を優先順位付けするように構成される。信頼要因は、一実施形態では、ユーザの識別情報が正しい可能性を示す得点またはその他のメタデータを含んでよい。例えば、様々な実施形態において、信頼要因は、ユーザの過去の識別情報の履歴(例えば正しいか正しくないか)、1つまたは複数のアグリゲーションモジュール104のプロバイダとのユーザの提携関係(例えば、製作者、ベンダ、所有者、販売業者、再販業者、製造業者、バックエンドサーバ110など)、他のユーザからの肯定的および/または否定的な標示(例えば、投票、「いいね」、使用、フィードバック、星数、支持など)、および/またはユーザの識別情報が正しい可能性があるか否かを示すその他の標示のうちの1つまたは複数を含んでよく、および/または上記のうちの1つまたは複数に基づいてよい。試験モジュール318は、ユーザに関連付けられた1つまたは複数の信頼要因に基づいて、ユーザの識別情報を提供する他のユーザの数を決定してよい(例えば、より高い信頼要因に応答してユーザの識別情報が他のユーザに提供されるレートを加速させる、より低い信頼要因に応答してユーザの識別情報が他のユーザに提供されるレートを低下させるなど)。
[0101]試験モジュール318は、管理者、仲介者ユーザなどが識別情報の削除、識別情報の調整および/または無効化、ユーザの信頼要因の調整および/または無効化、ユーザが識別情報を提供するのを禁止、および/またはその他の方法でユーザまたはユーザの識別情報を無効化することができるようにする、オーバーライドインターフェースを含んでよい。様々な実施形態において、試験モジュール318は、管理者および/または仲介者にオーバーライドインターフェースをGUI、API、CLIなどとして提供してよい。
[0102]特定の実施形態では、試験モジュール318は最も効果的なソリューションなど(例えば1人または複数のユーザからの識別情報に基づく命令のセット)を試験し、使用するので、試験モジュール318は1つまたは複数のアグリゲーションモジュール104およびそのアグリゲーションサービスを自己回復型、自己試験型および/または自己増分展開型とならせる。
[0103]一実施形態では、階層モジュール312が直接アクセスモジュール204に、ユーザに関連付けられたデータなどをダウンロードするためにユーザの電子認証情報を使用してサードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストを提供する。命令のそれぞれの異なるセットは、特定の実施形態では、ユーザの電子認証情報を入力するためのロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータの1つまたは複数のロケーションなどを含む。
[0104]階層モジュール312は、一実施形態では、バックエンドサーバ110(例えば、バックエンドサーバ110のバックエンドアグリゲーションモジュール104b)から、またはピアツーピア方式で別のユーザハードウェアデバイス102(例えばユーザハードウェアデバイス102のアグリゲーションモジュール104a)から、または試験モジュール318からなど、命令の1つまたは複数のセットを受け取ってよい。階層モジュール312は、特定の実施形態では、異なるユーザハードウェアデバイス102および/またはユーザによる命令の異なるセットの使用の成功および/または不成功の履歴に基づく(例えばグローバル階層順序の)順序付けられたリストにすでにある命令の複数の異なるセットを受け取ることができる。一実施形態では、階層モジュール312は、(例えばユーザの1つまたは複数のハードウェアデバイス102からの)ユーザによる命令の異なるセットの使用の成功および/または不成功の履歴に基づいて、単一のユーザのための命令の複数の異なるセットから、順序付けられたリストの階層(例えば、カスタムの階層または個別化された階層)を決定すること、および/またはそのような命令の異なる複数のセットから順序付けられたリストを作成することを行ってよい。
[0105]直接アクセスモジュール204は、一実施形態では、命令のセットのうちの1つのセットが成功し、直接アクセスモジュール204がサードパーティサービスプロバイダ108にアクセスすること、および/またはサードパーティサービスプロバイダ108からデータをダウンロードすることができるまで、リストの順序で、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の複数のセットを1つずつ試みてよい。階層モジュール312は、一実施形態では、最近に使用に成功した命令のセットを(最初に試行するセットとして)最上位に置いてよい。例えば、ユーザのハードウェアデバイス102の階層モジュール312は、直接アクセスモジュール204が命令のセットを使用してサードパーティサービスプロバイダ108にアクセスすること、および/またはサードパーティサービスプロバイダ108からデータをダウンロードすることに成功したことに応答して、サードパーティサービスプロバイダ108にアクセスするためのその命令のセットをリストの最上位に(例えば、リストの順序を経時的に調整して)置いてよい。特定の実施形態では、階層モジュール312は、第1の順序(例えばグローバル順序)のサードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストを受け取ってよく、単一のユーザの使用および/またはハードウェアデバイス102の使用に基づいて、命令の異なるセットを経時的に動的に調整すること、および/または並べ替えることを行ってよい(例えば、ユーザ/ハードウェアデバイス102のために命令のセットを使用したアクセスが成功した場合、その命令のセットをリストの上方に移動し、ユーザ/ハードウェアデバイス102のために命令のセットを使用したアクセスが不成功の場合、その命令のセットをリストの下方に移動するなど)。
[0106]階層モジュール312は、特定の実施形態では、命令の1つまたは複数のセット、または命令の複数のセットの順序付けられたリストなどを、データネットワーク106を介して(例えば、ピアツーピア方式で他のユーザのハードウェアデバイス102に直接、またはバックエンドサーバ110のバックエンドアグリゲーションモジュール104bを経由して間接的になど)他のユーザのハードウェアデバイス102の階層モジュール312と共有するように構成されてよい。様々な実施形態において、異なるアカウントタイプ、異なるアカウント設定、異なる発信元システム(例えば、企業買収などに起因して、同じサードパーティサービスプロバイダ108の異なるユーザが1つまたは複数の異なる設定、異なるアクセス方法などを有することがある)、システム変更もしくは更新、および/または同じサードパーティサービスプロバイダ108の異なるユーザのアカウントまたはサービスなどのその他の相違に起因して、命令の異なるセットが異なるユーザにとって成功または不成功になる場合がある。
[0107]一実施形態では、ルートモジュール314が、サードパーティサービスプロバイダ108のサーバ108からユーザに関連付けられたデータをダウンロードするために、ユーザのハードウェアデバイス102が直接アクセスモジュール204にとって利用可能であるか否かを決定する。ルートモジュール314は、特定の実施形態では、ルートモジュール314がユーザのハードウェアデバイス102が利用不能であると決定することに応答して、ユーザに関連付けられたデータをサーバ108から遠隔バックエンドサーバ110にダウンロードするために、ユーザの電子認証情報を使用して遠隔バックエンドサーバ110からサードパーティサービスプロバイダ108のサーバ108にアクセスしてよい。ルートモジュール314は、一実施形態では、遠隔バックエンドサーバ110にダウンロードされたユーザに関連付けられたデータに基づいて、ユーザのハードウェアデバイス102上でユーザに1つまたは複数のアラート(例えば、サードパーティサービスプロバイダ108からダウンロードされたデータ、サードパーティサービスプロバイダ108からのデータに基づいて決定された推奨または示唆、サードパーティサービスプロバイダ108からのデータ中で検出されたイベントまたはその他のトリガに基づく通知またはその他のアラートなど)を提供する。
[0108]特定の実施形態では、ルートモジュール314は、単一のユーザおよび/またはアカウントに関連付けられた複数のハードウェアデバイス102のリストを維持および/または記憶する。ユーザおよび/またはアカウントに関連付けられた1つのハードウェアデバイス102が利用不能である(例えば、電源遮断、機内モード、データネットワーク106に接続されていないなど)との決定に応答して、ルートモジュール314は、そのユーザおよび/またはアカウントの異なる利用可能なハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108にアクセスしてよく、異なる利用可能なハードウェアデバイス102上などで1つまたは複数の通知またはその他のアラートを提供してよい。ルートモジュール314は、様々な実施形態において、ユーザの1つまたは複数のハードウェアデバイス102、異なるユーザの1つまたは複数のハードウェアデバイス102、1つまたは複数のバックエンドサーバ110、および/または別のハードウェアデバイスなどの複数のハードウェアデバイス間で、セキュリティ保護された方式でサードパーティサービスプロバイダ108からのユーザのためのデータのダウンロードを動的にルーティングしてよい。
[0109]ルートモジュール314は、一実施形態では、サードパーティサービスプロバイダ108からの同じユーザのためのデータのダウンロードのために、(例えば同じユーザまたは異なるユーザなどの)複数のハードウェアデバイス102、110間で周期的に交番または輪番させてよい。例えば、データがそこからダウンロードされるデバイス102、110の輪番および/または交番は、ダウンロードが不正または不適切であると誤って解釈される可能性を減らすことができる。別の実施形態では、ルートモジュール314は、サードパーティサービスプロバイダ108によって、信頼されるデバイスなどとして許可および/または識別され得る同じデバイス102、110(例えば、ユーザの一次ハードウェアデバイス102、バックエンドサーバ110など)からデータをダウンロードしてよい。
[0110]一実施形態では、頻度モジュール316が、直接アクセスモジュール204がサードパーティサービスプロバイダ108のサーバ108にアクセスする頻度を設定する。頻度モジュール316は、特定の実施形態では、遠隔バックエンドサーバ110(例えば、遠隔バックエンドサーバ110上で実行されている頻度モジュール316)が、異なるユーザおよび/または異なるハードウェアデバイス102のための複数の直接アクセスモジュール204について頻度を決定するように、アクセスされるサードパーティサービスプロバイダ108の系列でなくてよい遠隔バックエンドサーバ110からの入力に基づいて頻度を決定する。例えば、頻度モジュール316は、単一のユーザおよび/またはハードウェアデバイス102がある期間内に許される閾値回数(例えば、10分ごとに1回、半時間ごとに1回、1時間ごとに1回、1日に2回、1日に3回、1日に4回など)を超えて同じサードパーティサービスプロバイダ108にアクセスしないように制限してよい。頻度モジュール316は、特定の実施形態では、サードパーティサービスプロバイダ108などによる故意でないサービス拒否を防止するためにアクセス頻度を制限する。
[0111]頻度モジュール316は、特定の実施形態では、ユーザおよび/またはハードウェアデバイス102がサードパーティサービスプロバイダ108にアクセス可能な頻度を経時的に動的に調整してよい。例えば、頻度モジュール316は、異なるサードパーティサービスプロバイダ108のそれぞれの総アクセスおよび/またはダウンロード帯域幅に上限または制限を設けるために(例えば、いずれの単一のサードパーティサービスプロバイダ108などにも過負荷をかけないように)、複数のユーザ(すべてのユーザ、利用可能なユーザ、アクティブユーザなど)によるアクセスおよび/またはダウンロードを監視してよい。このようにして、一実施形態では、ユーザおよび/またはハードウェアデバイス102は、データをアクセスおよび/またはダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより少ないとき(例えば低ピーク時)により高い頻度でデータのアクセス/ダウンロードを行うことができ、データをアクセスおよび/またはダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより多いとき(例えば高ピーク時)により低い上限またはアクセス頻度までに制限され得る。
[0112]さらなる実施形態では、頻度モジュール316はユーザからの入力に基づいて頻度を決定し、それによってそのユーザが他のユーザおよび/またはバックエンドサーバ110とは独立してアクセス頻度を設定することができるようにする。頻度モジュール316は、1つまたは複数のハードウェアデバイス102を使用して1つまたは複数のサードパーティサービスプロバイダ108からデータをダウンロードするためのアクセス頻度をユーザが設定および/または調整することができるようにする(例えば、ユーザが、異なるサードパーティサービスプロバイダ108またはユーザの異なるハードウェアデバイス102などのために異なるアクセス頻度を設定することができるようにする、異なる設定を提供する)ユーザインターフェース(例えば、GUI、CLI、APIなど)を提供してよい。
[0113]図4に分散データアグリゲーションのための方法600の一実施形態を示す。方法600が開始し、認証モジュール202がユーザのハードウェアデバイス102上でユーザからサードパーティサービスプロバイダ108のためのユーザの電子認証情報を受け取る602。直接アクセスモジュール204が、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108にアクセスする604。直接アクセスモジュール204が、ユーザに関連付けられたデータをサードパーティサービスプロバイダ108のサーバ108からユーザのハードウェアデバイス102にダウンロードする606。
[0114]図5に、問合せインターフェースのための方法700の一実施形態を示す。方法700が開始し、認証モジュール202が、複数のサードパーティサービスプロバイダ108のためのユーザの電子認証情報を決定する702。直接アクセスモジュール204が、決定された702電子認証情報を使用して複数のサードパーティサービスプロバイダ108のサーバにアクセスする704。直接アクセスモジュール204が、複数のサードパーティサービスプロバイダ108のアクセスされた704サーバからユーザに関連付けられたデータをダウンロードする706。
[0115]直接アクセスモジュール204が、複数の異なるサードパーティサービスプロバイダ108からダウンロードされた706データを集約する708。インターフェースモジュール206が(例えば、ユーザのハードウェアデバイス102上にデータを表示すること、ユーザのハードウェアデバイス102にアラートまたはその他のメッセージを送信すること、ユーザがウェブインターフェースおよび/またはAPIなどを使用してアクセスすることができるサードパーティサービスプロバイダ108と系列関係にない遠隔バックエンドサーバ110にデータを送信することなどにより)、集約された708データをユーザに提供し710、方法700は終了する。
[0116]図6に、問合せインターフェースのための方法800の別の一実施形態を示す。方法800が開始し、ネットワーク認証モジュール304が、1つまたは複数のサードパーティサービスプロバイダ108のためのユーザの電子認証情報を受信する802。パスワードマネージャモジュール306が、その1つまたは複数のサードパーティサービスプロバイダ108のための新たな、および/または異なる電子認証情報を生成し804、その1つまたは複数のサードパーティサービスプロバイダ108におけるユーザのアカウントを、生成された804電子認証情報で更新する。
[0117]アクセス修復モジュール310が、上記1つまたは複数のサードパーティサービスプロバイダ108のためのアクセスに変化があるか否か(例えば、アクセスが破損状態または利用不能であるか否か、アクセスが部分的であるか不完全であるか、アクセス帯域幅が以前に決定されたよりも遅いか否か、および/または、アクセスに他の変化が発生したか否か)を決定する806。アクセス修復モジュール310が、サードパーティサービスプロバイダ108のためのアクセスが変化したと決定した場合806、アクセス修復モジュール310は、ユーザにグラフィカルユーザインターフェース500、510を提供する808。アクセス修復モジュール310は、提供した808グラフィカルユーザインターフェース500、510を介して、ユーザを認証するため、および/または、サードパーティサービスプロバイダ108からデータをダウンロードするための、1つまたは複数のロケーションおよび/またはアクションの識別情報を受け取る810。試験モジュール318が、受け取った810、1つまたは複数のロケーションおよび/またはアクションの識別情報を使用して、サードパーティサービスプロバイダ108へのアクセスを試験する812。試験モジュール318による試験が成功したことに応答して、試験モジュール318および/またはパターンモジュール308が、受け取った810、1つまたは複数のロケーションおよび/またはアクションの識別情報に基づいて、サードパーティサービスプロバイダ108からのデータにアクセスおよび/またはダウンロードするための命令を、1人または複数の異なるユーザに関連付けられた1つまたは複数の直接アクセスモジュール204に提供する814。
[0118]ルートモジュール314が、ユーザに関連付けられたハードウェアデバイス102が利用可能であるか否かを決定する816。ルートモジュール314がユーザに関連付けられたハードウェアデバイス102が利用可能であると決定したこと816に応答して、直接アクセスモジュール204が、ユーザに関連付けられた利用可能なハードウェアデバイス102から、1つまたは複数のサードパーティサービスプロバイダ108からユーザに関連付けられたデータをダウンロードする818。
[0119]ルートモジュール314がユーザに関連付けられたハードウェアデバイス102が利用可能でないと決定したこと816に応答して、異なるデバイス(異なるユーザのハードウェアデバイス102、バックエンドサーバ110など)の直接アクセスモジュール204が、その異なるデバイスから、1つまたは複数のサードパーティサービスプロバイダ108からユーザに関連付けられたデータをダウンロードする820。(例えば異なるデバイス102、110上の)ルートモジュール314が、ダウンロード820されたデータに基づいて、ユーザのためにアラートまたはその他のメッセージが利用可能であるか否かを決定し822、アラートまたはその他のメッセージが利用可能であるとの決定822に応答して、そのアラートまたはその他のメッセージを、ユーザに関連付けられたデバイス102(例えば利用不能なデバイス102)にプッシュ824および/またはその他の方法で送信する。例えば、一実施形態では、ユーザのハードウェアデバイス102がデータをダウンロードするために利用できない(例えば、電源遮断、オフライン、スリープ状態、Wi-Fiではなくモバイルデータを使用しているなど)ことがあるが、プッシュされた824アラートまたはその他のメッセージを、何らかの方法で(例えば、テキストメッセージ、ボイスメール、電子メール、プッシュ通知などといった異なるチャネルを介して)受信してよく、および/またはプッシュされた824アラートまたはその他のメッセージを、後で利用可能になったのに応答して受信してよい。
[0120]インターフェースモジュール206が、ダウンロードされた818、820データおよび/またはプッシュされた824アラートをユーザに提供する826(例えば、データをユーザのハードウェアデバイス102に表示する、プッシュ/送信824されたアラートまたはその他のメッセージをユーザのハードウェアデバイス102に表示する、ユーザがウェブインターフェースおよび/またはAPIを使用してアクセスすることができる、サードパーティサービスプロバイダ108と系列関係にない遠隔バックエンドサーバ110にデータを送信するなど)。方法800は、特定の実施形態では、サードパーティサービスプロバイダ108のためのアクセスに変化があるか否かを定期的に決定すること806、ユーザのハードウェアデバイス102が利用可能であるか否かを決定すること816、ユーザに関連付けられたデータをダウンロードすること818、820、および/または、ダウンロードされたデータおよび/またはプッシュされた824アラートまたはその他のメッセージをユーザに提供すること826などを継続する。
[0121]図7は、問合せインターフェースのためのアグリゲーションモジュール104の一実施形態を示す概略ブロック図である。一実施形態では、アグリゲーションモジュール104は、問合せモジュール112のインスタンスを含む。問合せモジュール112は、様々な実施形態において、問合せ受信モジュール902と、問合せ解析モジュール904と、検証モジュール906と、検証応答モジュール908と、プライバシーモジュール910と、許可モジュール912と、問合せ翻訳モジュール914の、1つまたは複数のインスタンスを含み、これらについて以下で詳述する。
[0122]一実施形態では、問合せ受信モジュール902は、ユーザに関連付けられた機密データを検証するためのサードパーティからの問合せを受け取るように構成される。問合せ受信モジュール902は、特定の実施形態では、サードパーティが問合せをサブミットするための問合せインターフェースを提供する。問合せ受信モジュール902は、例えば、ウェブインターフェース、アプリケーションプログラミングインターフェース(API)、コマンドラインインターフェース(CLI)、グラフィカルユーザインターフェース(GUI)(例えば、アプリケーションを介してローカルで、またはブラウザを介して遠隔でなど)、問合せ言語インターフェース、合否インターフェース(例えば、アサーションおよびその他のサブミットを受け付け/通過させるかまたは拒否/失敗させるブールインターフェースなど)、および/または、他のコンピュータインターフェースとして、問合せインターフェースを、コンピューティングデバイス102、108、110上でローカルで、またはデータネットワーク106を介するなどして提供してよい。サードパーティ108は、問合せインターフェースを使用して1つまたは複数の要求(例えばアサーション、問合せなど)を問合せ受信モジュール902にサブミットしてよく、問合せインターフェースを介して、後述の検証応答モジュール908から1つまたは複数の応答を受信してよい。
[0123]特定の実施形態では、問合せは、ユーザが公開したくないかまたはサードパーティユーザに公開することが違法である、身元情報、金融情報、雇用情報、健康情報、および/またはその他の個人または機密情報など、ユーザに関連付けられた機密情報の検証、確定、および/または妥当性確認などを行うことを意図したものである。例えば、金融機関、雇用主、政府機関、教育機関、ローン会社および/または他のサードパーティなどのサードパーティサービスプロバイダ108が、ユーザの金融状態、金融データ、身元などの1つまたは複数の側面を検証する理由を有する場合があり、ユーザは自分のプライバシーを保護したい場合がある。問合せ受信モジュール902は、一実施形態では、ユーザのプライバシーを少なくとも部分的に保護する一方、サードパーティ108によってサブミットされ、ユーザによって許可された1つまたは複数の問合せおよび/またはアサーションを、それがユーザの機密情報に関係しているためにセキュリティ保護された状態で妥当性確認する、問合せインターフェースを提供してよい。
[0124]一実施形態では、問合せ解析モジュール904は、検証するユーザの機密データの種類を識別するために問合せを解析するように構成される。特定の実施形態では、問合せ解析モジュール904は、(例えば、異なるアサーション、異なるデータなどの検証および/または問合せなどのための)複数種類の要求に対応する。
[0125]例えば、問合せ解析モジュール904は、ユーザの身元、金融アカウント残高(例えば、当座残高、利用可能残高、明細書記載残高、前日残高、総合残高、未払いローン残高、および/または特定の時間枠/範囲の過去残高など)、金融アカウントの種類、金融アカウント状況、アカウント利率、借入時融資金額、融資種類、融資期間、融資満期日、最終支払金額、最終支払日、最低支払額、延滞額、次期支払額、自動引落とし状況、支払額、エスクロー残高、受取利息、納税または課税額(例えば、固定資産剤、所得税、および/または給与税など)、ユーザの支払履歴、取引の種類/カテゴリ、取引額、取引日、取引状況、売買業者名、売買業者住所、小切手金額、小切手番号、報酬額、報酬支払日、投資額、投資情報、投資の種類、平均投資原価基準、投資株式数、投資市場価格、投資の種類、ユーザの金融機関会員権の検証、支払および/または未払保険料などの、検証および/または問合せの要求に対応してよい。
[0126]問合せ解析モジュール904は、様々な実施形態において、コマンドの種類(例えば、異なる種類の要求のための異なるコマンド)によって、または(例えば、要求の引数などとして送信される)要求識別子、またはGUIにおけるユーザ選択などによって、要求の種類を識別することができる。特定の実施形態では、問合せ解析モジュール904は、機械学習を使用して集約トランザクションデータを解析して要求の種類、および/またはサードパーティが検証したい機密情報などを決定する。本明細書では、機械学習とは、統計技法を使用してコンピュータシステムに、明示的にプログラミングされることなくデータから「学習する」(例えば、特定のタスクに関するパフォーマンスを漸進的に向上させる)能力を与える人工知能の一分野を指す。解析モジュール904は、問合せの種類、および/または、問合せの対象であるユーザなどの予想、予測、見積り、推定などのために、様々な機械学習機能、方法、プロセス、アルゴリズムなどを使用してよい。
[0127]機械学習機能は、教師あり学習(入力を出力にマッピングする一般的規則を学習することを目的として、例題入力とその望ましい出力とが与えられる)アルゴリズムと教師なし学習(学習アルゴリズムにラベルが与えられず、アルゴリズムにその入力における構造を自力で見つけさせる)アルゴリズムの両方を含み得る。様々な機械学習アルゴリズムの例には、決定木学習、相関ルール学習、深層学習、帰納論理プログラミング、サポートベクタマシン、クラスタリング、ベイジアンネットワーク、表現学習、遺伝的アルゴリズム、ルールベース学習、および/または深層学習などが含まれ得る。機械学習機能は、集約トランザクションデータを処理するために1つまたは複数の機械学習アルゴリズムが共働する人工ニューラルネットワークの一部であってもよい。また、問合せ解析モジュール904は、機械学習集合体、例えば、問合せを処理する複数の異なる機械学習アルゴリズムのセットを形成してよい。
[0128]したがって、一実施形態では、問合せ解析モジュール904は、トレーニングおよび/または推論のために、過去の問合せ、例示の問合せ、および/またはトレーニング用問合せなどを1つまたは複数の機械学習アルゴリズムに提供してよい。機械学習がトレーニングされ、例えば、トレーニング用問合せにより機械学習モデルが生成され、トレーニングされると、問合せ解析モジュール904は、問合せの種類、および/または検証するユーザの機密データの種類などの識別または予想などのために問合せを処理するように、より最近の問合せ、および/またはリアルタイムの問合せなどを機械学習に提供することができる。このようにして、問合せ解析モジュール904は、リアルタイムで、サブミットされた問合せのために最新の正確な機械学習結果を生成することができる。
[0129]一実施形態では、問合せはユーザの識別子を含み、問合せ解析モジュール904はこの識別子を、自然言語処理、正規表現、および/または機械学習などを使用して問合せを構文解析することによって識別する。特定の実施形態では、識別子は、検証する機密データの種類に関連するユーザの機密データにアクセスするために使用される。ユーザ識別子は、名前、ユーザ名、電子メールアドレス、トークン、デジタル証明書、ソーシャルメディア名、および/またはアカウント番号などを含み得る。
[0130]特定の実施形態では、問合せ解析モジュール904は、問合せが、ユーザの機密情報を公開することになる種類のものであるか否か、例えば検証問合せまたはアサーション問合せ(例えばブール問合せ)ではないか否かを決定する。例えば、「ユーザの預金アカウントの残高はいくらか」のような問合せの結果は、ユーザの貯金アカウントの残高を公開することになり、問合せインターフェースはこれを非公開にしておくことが意図されている。したがって、このような実施形態では、問合せ解析モジュール904はその問合せの拒否、問合せの実行の阻止、および/または問合せのサブミットをしないなどを行う。
[0131]一実施形態では、問合せ解析モジュール904は、問合せがユーザの機密データを公開することになること、および/または、問合せが無効であることなどを伝えるメッセージを提供してもよく、元の問合せに基づいて1つまたは複数の問合せ提案または代替案を生成し、提供してもよい。例えば、上記の例で続けると、問合せ解析モジュール904は、「ユーザの預金アカウント残高が100,000ドルを超えるか」、「ユーザの預金アカウント残高が50,000ドルと150,000ドルの間であるか」、および/または、「ユーザは自分の預金アカウントに残高があるか」などの提案問合せを生成してよい。GUI問合せインターフェースが、これらの提案を、ユーザが選択し、サブミットするようにユーザに対して表示してもよい。
[0132]一実施形態では、検証モジュール906は、ユーザのデータ、例えばユーザの集約データに対する問合せを実行するように構成され、これらのデータにはユーザのための機密情報が含まれ得る。検証モジュール906は、例えば、事前に記憶されたユーザの電子認証情報を使用して、サードパーティシステム、例えばデータ集約者システム、金融システム、および/またはソーシャルメディアプラットフォームなどにおけるユーザの少なくとも1つのアカウントにログインしてよい。事前に記憶された電子認証情報は、ユーザ名/パスワード、PIN、パスフレーズ、チャレンジ質問に対する回答、生体情報(例えば、指紋スキャン、および/または顔認証など)、無線署名、および/または、トークン(例えば、他の認証情報を使用してサードパーティへのログインに成功したことに応答して生成され、その後、ユーザのデータにアクセスするために使用されるデジタルトークンまたは電子トークン)などを含み得る。
[0133]一実施形態では、検証モジュール906は、ユーザの機密データにアクセスし、データに対して問合せを実行して問合せ結果を決定するように構成される。例えば、問合せは、「ユーザに少なくともNドルの資産があるか」、「ユーザに少なくともNドルの負債があるか」(例えば負債総額、または所定の種類の負債など)、「ユーザは金融機関Xに金融アカウントを持っているか」、「ユーザは住所Yに居住しているか」、「ユーザは雇用主Zから月々の振込みを受け取っているか」、「ユーザの自動車ローンの金利はNパーセントを超えるか」、「ユーザは売買業者XとY日にトランザクションを行ったか」、「ユーザは最近1/3/6カ月に住宅ローンを有していたか」、「ユーザは延滞料を課されたことがあるか」、「ユーザは現在、延滞料を負っているか」、「ユーザの信用度スコアは500/600/700を超えるか」、「ユーザは毎月300ドルの支払いに対応するのに十分な可処分所得があるか」、および/または、その他のブール問合せなどの、yes/no問合せを含んでよい。
[0134]このような実施形態では、検証モジュール906は、検証応答モジュール908が問合せに対する検証応答を返すために使用可能な結果のデータセットを生成するために、ユーザのデータに対して、問合せをそのまま実行してよく、および/または、サブミットされた問合せを問合せ言語(後述)に翻訳するなどしてよい。
[0135]検証応答モジュール908は、一実施形態では、ユーザの機密データをサードパーティに公開することなく検証する機密データの種類に関連するユーザの機密データを検証することに基づいて、問合せに対する検証応答を生成するように構成される。例えば、問合せが、「ユーザに少なくとも250,000ドルの負債があるか」のようなブール問合せである場合、検証モジュール906は、ユーザの負債情報を解析し、ユーザのアカウントからアクセスまたは集約されたユーザの負債のリスト、合計、または総額などを返してよい。検証応答モジュール908は、検証モジュール906が返すユーザの負債額に基づいて、問合せに対する応答、この場合は真/偽、yes/no、通過/失敗または1/0などのブール応答を決定する。その他の応答には、問合せ要求のアサーションを検証または否定する、一般化範囲または閾値などが含まれ得る。
[0136]このようにして、問合せモジュール112は、問合せインターフェースを介したユーザの機密データへの直接アクセスを提供せず、ユーザのプライバシーの1つまたは複数の要素を維持する。一部の実施形態では、問合せモジュール112による妥当性確認(validation)および/または検証は、身元、資産、またはアカウントなどの妥当性確認のための1つまたは複数の政府および/または業界基準または要件を満たし得る。
[0137]プライバシーモジュール910は、一実施形態では、ユーザの機密データにアクセスするためのカスタマイズされたプライバシー設定を受け取り、設定するように構成される。プライバシー設定は、問合せインターフェースを介して、API、ウェブインターフェース、アプリケーション設定、および/またはコマンドラインインターフェースなどを介して、受け取られ、ユーザのために設定されてよい。本明細書では、プライバシー設定は、誰がユーザのデータにアクセスすることができるか、および/または、どのユーザデータにアクセス可能か、などを定義してよい。
[0138]ユーザは、問合せの実行対象として許されるユーザのアカウント、問合せの実行対象として許されるトランザクションの種類(例えば、購入、ローン支払い、アカウント残高など)、問合せをサブミットすることが許可されるサードパーティ、および/または、問合せをサブミットすることが阻止されているサードパーティ、実行の対象として許される問合せの種類、問合せの対象として許されるトランザクション限度額、問合せ可能なユーザデータの日付範囲、問合せ可能な範囲の大きさ、要求に応答してユーザのデータに関連して使用されることが許される1つまたは複数の閾値、データを問い合わせることができる回数、問合せが許される個人情報(例えば、名前、住所、電子メール、ロケーション、または年齢など)、ソーシャルメディアデータ(例えば、ツイート、書き込み、「いいね」、および/または友人など)、雇用情報、税金情報、保険情報、健康情報、および/またはその他のコマンドなどのうちの少なくとも1つを含むプライバシー設定を指定してよい。一部の実施形態では、ユーザはプライバシー設定を、アカウントごとに(例えば、異なるユーザアカウントのための異なる設定)、および/または、問合せをサブミットするサードパーティごとに(例えば、異なるサードパーティのための異なる設定)などで設定することができる。
[0139]一実施形態では、許可モジュール912は、問合せの受信に応答して問合せを処理することを許可するようにユーザに促すように構成される。問合せが問合せインターフェースを介してサブミットされたのに応答して、許可モジュール912は、ユーザが問合せのサブミットを許可または拒否するように、ユーザにプロンプト、通知、またはメッセージなどを、送信、提示、または表示するなどすることができる。例えば、許可モジュール912は、ユーザに、電子メール、プッシュ通知、テキストメッセージ、インスタントメッセージ、ソーシャルメディアメッセージ、および/または、認証アプリケーションを介した認証の要求などを送信してよい。ユーザは、プライバシーモジュール910が確立するプライバシー設定の一部として認証設定を確立してよい。ユーザは、例えば、問合せサブミットを通知されるか否か、問合せのサブミットの前に許可を必要とするか否か、および/または、通知の方式などを選択してよい。
[0140]一実施形態では、問合せ翻訳モジュール914は、受け取った問合せを、ユーザの機密データのデータストアにアクセスするために使用される問合せ言語に翻訳するように構成される。問合せは、一部の実施形態では、例えば「ユーザは現在雇用されているか」のように、英語、スペイン語、またはフランス語などのネイティブ言語で受け取られてよい。問合せ翻訳モジュール914は、問合せ解析モジュール904の一部であるかまたは問合せ解析モジュール904と通信していることができてよく、自然言語処理および/または機械学習などを使用して問合せを解析して問合せの種類(例えばユーザの雇用情報)を決定し、問合せを、構造化照会言語(SQL)、および/または拡張マークアップ言語(XML)など、ユーザのデータが保存されるデータストアに問い合わせるために使用される問合せ言語に翻訳してよい。
[0141]図8は、問合せインターフェースのための方法1000の一実施形態を示す概略フローチャート図である。一実施形態では、方法1000が開始し、問合せ受信モジュール902が問合せインターフェースを介してサードパーティからユーザに関連付けられた機密データを検証する問合せを受け取る1002。さらなる実施形態では、問合せ解析モジュール904が、検証するユーザの機密データの種類を識別するために問合せを解析する1004。一部の実施形態では、検証応答モジュール908が、ユーザの機密データをサードパーティに公開することなく検証する機密データの種類に関連するユーザの機密データを検証することに基づいて、問合せに対する検証応答を生成し1006、この方法1000は終了する。
[0142]図9は、問合せインターフェースのための方法1100の一実施形態を示す概略フローチャート図である。一実施形態では、方法1100が開始し、問合せ受信モジュール902が問合せインターフェースを介してサードパーティからユーザに関連付けられた機密データを検証する問合せを受け取る1102。さらなる実施形態では、問合せ解析モジュール904が、検証するユーザの機密データの種類を識別するために問合せを解析する1104。
[0143]一部の実施形態では、検証モジュール906が、問合せの受信および解析に応答して、ユーザの事前に記憶された電子認証情報を使用してサードパーティシステムにおける少なくとも1つのユーザアカウントにログインする1106。一部の実施形態では、検証モジュール906は、サードパーティアカウントからユーザの機密データにアクセスし1108、問合せに対する検証応答を生成するためにアクセスした機密データを解析する1110。さらなる実施形態では、検証応答モジュール908は、ユーザの機密データをサードパーティに公開することなく検証する機密データの種類に関連するユーザの機密データを検証することに基づいて、問合せに対する検証応答を生成し1112、方法1100は終了する。
[0144]図10は、問合せインターフェースのための方法1200の一実施形態を示す概略フローチャート図である。一実施形態では、方法1200が開始し、プライバシーモジュール910が、ユーザからプライバシー設定を受け取り1202、ユーザのデータのために(例えば、1つまたは複数のアカウント、データタイプ、および/またはトランザクションなどのために)そのプライバシー設定を設定する。さらなる実施形態では、問合せ受信モジュール902が、問合せインターフェースを介してサードパーティからユーザに関連付けられた機密データを検証する問合せを受け取る1204。さらなる実施形態では、問合せ解析モジュール904が、検証するユーザの機密データの種類を識別するために問合せを解析する1206。
[0145]特定の実施形態では、問合せ解析モジュール904および/または検証モジュール906が、プライバシー設定に基づいて問合せが許されるか否かを決定する1208。許されない場合、問合せ解析モジュール904および/または検証モジュール906はその問合せを拒否し1210、方法1200は終了する。許される場合、問合せ解析モジュール904および/または検証モジュール906は、問合せインターフェースを介して問合せをサブミットし1212、方法1200は終了する。
[0146]ユーザのハードウェアデバイス102上でサードパーティサービスプロバイダ108のためのユーザの電子認証情報を決定する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザのハードウェアデバイス102上でサードパーティサービスプロバイダ108のためのユーザの電子認証情報を決定する同様または同等の手段を含んでよい。
[0147]ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108にアクセスする手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、アグリゲーションモジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108にアクセスする同様または同等の手段を含んでよい。
[0148]サードパーティサービスプロバイダ108のサーバ108からユーザに関連付けられたデータをユーザのハードウェアデバイス102にダウンロードする手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、アグリゲーションモジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザに関連付けられたデータをサードパーティサービスプロバイダ108のサーバ108からユーザのハードウェアデバイス102にダウンロードする同様または同等の手段を含んでよい。
[0149]データがそこからダウンロードされたサードパーティサービスプロバイダ108と系列関係にない遠隔デバイス110、102のためにユーザのハードウェアデバイス102から、ダウンロードされたデータをパッケージ化する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、データがそこからダウンロードされたサードパーティサービスプロバイダ108と系列関係にない遠隔デバイス110、102のためにユーザのハードウェアデバイス102から、ダウンロードされたデータをパッケージ化する同様または同等の手段を含んでよい。
[0150]ダウンロードされたデータをユーザのハードウェアデバイス102から、データがそこからダウンロードされたサードパーティサービスプロバイダ108の系列にない遠隔デバイス110、102に提供する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ダウンロードされたデータをユーザのハードウェアデバイス102から、データがそこからダウンロードされたサードパーティサービスプロバイダ108の系列にない遠隔デバイス110、102に提供する同様または同等の手段を含んでよい。
[0151]問合せインターフェースを介してサードパーティからユーザに関連付けられた機密データを検証する問合せを受け取る手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、問合せ受信モジュール902,問合せモジュール112、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含み得る。他の実施形態は、問合せインターフェースを介してサードパーティから、ユーザに関連付けられた機密データを検証する問合せを受け取るための類似または同等の手段を含んでよい。
[0152]検証するユーザの機密データの種類を識別するために問合せを解析する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、問合せ解析モジュール904、問合せモジュール112、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、検証するユーザの機密データの種類を識別するために問合せを解析する類似または同等の手段を含んでよい。
[0153]ユーザの機密データをサードパーティに公開することなく、検証する機密データの種類に関連するユーザの機密データを検証することに基づいて、問合せに対する検証応答を生成する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、検証応答モジュール908、問合せモジュール112、アグリゲーションモジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザの機密データをサードパーティに公開することなく、検証する機密データの種類に関連するユーザの機密データを検証することに基づいて、問合せに対する検証応答を生成する類似または同等の手段を含み得る。
[0154]本明細書に記載のその他の方法ステップを実行する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、インターフェースモジュール206、ルートモジュール314、頻度モジュール316、試験モジュール318、問合せ受信モジュール902、問合せ解析モジュール904、検証モジュール906、検証応答モジュール908、プライバシーモジュール910、許可モジュール912、問合せ翻訳モジュール914、問合せモジュール112、アグリゲーションモジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、本明細書に記載の方法ステップのうちの1つまたは複数を実行する同様または同等の手段を含んでよい。
[0155]本発明は、本発明の趣旨または本質的特徴から逸脱することなく、他の特定の形態で具現化されてもよい。記載されている実施形態は、あらゆる点において、例示的であるに過ぎず、限定的ではないものとみなされるべきである。したがって、本発明の範囲は、上記の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲内に含まれるあらゆる変更が、特許請求の範囲に包含されるものとする。