(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-27
(45)【発行日】2023-10-05
(54)【発明の名称】分散された、非集中化されたデータ集約
(51)【国際特許分類】
H04L 67/53 20220101AFI20230928BHJP
G06F 21/31 20130101ALI20230928BHJP
H04L 67/02 20220101ALI20230928BHJP
H04L 67/2869 20220101ALI20230928BHJP
【FI】
H04L67/53
G06F21/31
H04L67/02
H04L67/2869
(21)【出願番号】P 2022021337
(22)【出願日】2022-02-15
(62)【分割の表示】P 2020053909の分割
【原出願日】2016-11-14
【審査請求日】2022-02-15
(32)【優先日】2015-11-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-01-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-05-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515080102
【氏名又は名称】エムエックス・テクノロジーズ・インコーポレーテッド
【氏名又は名称原語表記】MX Technologies, Inc.
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】コードウェル,ジョン・ライアン
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特開2005-284507(JP,A)
【文献】特開2008-283330(JP,A)
【文献】特開平10-240687(JP,A)
【文献】特開2004-264984(JP,A)
【文献】特開2013-211842(JP,A)
【文献】特開2002-149519(JP,A)
【文献】特開2015-075932(JP,A)
【文献】特開2006-277697(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/53
G06F 21/31
H04L 67/02
H04L 67/2869
(57)【特許請求の範囲】
【請求項1】
集約モジュールが、第3者のサービスプロバイダのサーバにアクセスするための頻度を、前記第3者のサービスプロバイダに加入していないリモートデバイスからの入力に基づいて
設定するステップであって、前記頻度は、前記リモートデバイス
によって、
前記第3者のサービスプロバイダの前記サーバにアクセスする複数の異なるユーザ及び
複数の異なるハードウェアデバイスについて
決定された複数の頻度
のうちの1つである、ステップと、
前記集約モジュールが、前記第3者のサービスプロバイダの前記サーバに、あるユーザの前記ハードウェアデバイスから、前記ユーザの電子認証情報を使用して、設定された前記頻度に従ってアクセスするステップと、
前記集約モジュールが、前記ユーザに関連付けられたデータを前記第3者のサービスプロバイダの前記サーバから前記ユーザの前記ハードウェアデバイスにダウンロードするステップと
を含む方法。
【請求項2】
請求項1に記載の方法であって、前記第3者のサービスプロバイダについての前記ユーザの電子認証情報を前記ユーザの前記ハードウェアデバイス上で決定するステップを更に含む方法。
【請求項3】
請求項1に記載の方法であって、前記第3者のサービスプロバイダの前記サーバに、前記ユーザの前記ハードウェアデバイスから、前記ユーザの電子認証情報を使用してアクセスするステップを更に含む方法。
【請求項4】
請求項1に記載の方法であって、
前記集約モジュールが、ダウンロードされた前記データを、前記ユーザの前記ハードウェアデバイスから、前記第3者のサービスプロバイダに加入していないリモートデバイスのために集約するステップと、
前記集約モジュールが、ダウンロードされた前記データを前記リモートデバイスに提供するステップとの1つ又は複数を更に含む方法。
【請求項5】
請求項1に記載の方法であって、前記頻度は、前記ユーザの前記ハードウェアデバイス上で受ける前記ユーザからの入力に基づき更に決定される、方法。
【請求項6】
請求項5に記載の方法であって、前記ユーザから受ける前記頻度は、他のユーザとバックエンドサーバとの1つ又は複数とは独立して設定される、方法。
【請求項7】
請求項5に記載の方法であって、
前記集約モジュールが、前記ユーザから入力される前記頻度を受けるためのユーザインターフェースを前記ユーザに提供するステップを更に含む方法。
【請求項8】
請求項1に記載の方法であって、
前記集約モジュールが、異なる第3者のサービスプロバイダと前記ユーザの異なるハードウェアデバイスとの1つ又は複数について異なるアクセス頻度を設定するステップを更に含む方法。
【請求項9】
請求項1に記載の方法であって、
前記集約モジュールが、前記ユーザと前記ユーザの前記ハードウェアデバイスとの1つ又は複数が、前記頻度から決定されるある時間期間内に許容された閾値回数を超えて前記第3者のサービスプロバイダにアクセスすることを制限するステップを更に含む方法。
【請求項10】
請求項1に記載の方法であって、
前記集約モジュールが、経時的に、前記ユーザと前記ユーザの前記ハードウェアデバイスとの1つ又は複数が前記第3者のサービスプロバイダにアクセスする前記頻度を動的に調節するステップを更に含む方法。
【請求項11】
請求項8に記載の方法であって、
前記集約モジュールが、経時的に、前記複数の異なるユーザによる前記第3者のサービスプロバイダについてのアクセスとダウンロードとの1つ又は複数を監視するステップと、
前記集約モジュールが、前記第3者のサービスプロバイダについての総アクセスと総ダウンロード帯域幅との1つ又は複数を、監視された前記アクセスと監視された前記ダウンロードとの1つ又は複数に基づいて制限するステップと
を更に含む方法。
【請求項12】
あるユーザのハードウェアデバイスであって、
頻度モジュールであって、
該頻度モジュールは、第3者のサービスプロバイダのサーバにアクセスするための頻度を、前記第3者のサービスプロバイダに加入していないリモートデバイスからの入力に基づいて
設定するように構成され、前記頻度は、前記リモートデバイス
により、
前記第3者のサービスプロバイダの前記サーバにアクセスする複数の異なるユーザ及び
複数の異なるハードウェアデバイスについて
決定された複数の頻度
のうちの1つである、頻度モジュールと、
直接アクセスモジュールであって、
前記第3者のサービスプロバイダの前記サーバに、
前記ユーザの前記ハードウェアデバイスから、前記ユーザの電子認証情報を使用して、設定された前記頻度に従ってアクセスし、
前記ユーザに関連付けられたデータを前記第3者のサービスプロバイダの前記サーバから前記ユーザの前記ハードウェアデバイスにダウンロードする
ように構成された直接アクセスモジュールと
を含む
ハードウェアデバイス。
【請求項13】
請求項12に記載の
ハードウェアデバイスであって、前記第3者のサービスプロバイダについての前記ユーザの電子認証情報を前記ユーザの前記ハードウェアデバイス上で決定するように構成された認証モジュールを更に備えた
ハードウェアデバイス。
【請求項14】
請求項12に記載の
ハードウェアデバイスであって、前記直接アクセスモジュールは、前記第3者のサービスプロバイダの前記サーバに、前記
あるユーザの前記ハードウェアデバイスから、前記ユーザの電子認証情報を使用してアクセスするように更に構成された、
ハードウェアデバイス。
【請求項15】
請求項12に記載の
ハードウェアデバイスであって、ダウンロードされた前記データを、前記ユーザの前記ハードウェアデバイスから、前記第3者のサービスプロバイダに加入していないリモートデバイスのために集約することと、ダウンロードされた前記データを前記リモートデバイスに提供することとの1つ又は複数を行うように構成されたインターフェースモジュールを更に含む
ハードウェアデバイス。
【請求項16】
請求項12に記載の
ハードウェアデバイスであって、前記頻度は、前記ユーザの前記ハードウェアデバイス上で受ける前記ユーザからの入力に基づいて更に決定される、
ハードウェアデバイス。
【請求項17】
請求項16に記載の
ハードウェアデバイスであって、前記ユーザから受ける前記頻度は、他のユーザとバックエンドサーバとの1つ又は複数とは独立して設定される、
ハードウェアデバイス。
【請求項18】
請求項16に記載の
ハードウェアデバイスであって、前記頻度モジュールは、前記ユーザから入力される前記頻度を受けるためのユーザインターフェースを前記ユーザに提供するように更に構成された、
ハードウェアデバイス。
【請求項19】
請求項12に記載の
ハードウェアデバイスであって、前記頻度モジュールは、異なる第3者のサービスプロバイダと前記ユーザの異なるハードウェアデバイスとの1つ又は複数について異なるアクセス頻度を設定するように更に構成された、
ハードウェアデバイス。
【請求項20】
第3者のサービスプロバイダのサーバにアクセスするための頻度を、前記第3者のサービスプロバイダに加入していないリモートデバイスからの入力に基づいて
設定するための手段であって、前記頻度は、前記リモートデバイス
によって、
前記第3者のサービスプロバイダの前記サーバにアクセスする複数の異なるユーザ及び
複数の異なるハードウェアデバイスについて
決定された複数の頻度
のうちの1つである、手段と、
前記第3者のサービスプロバイダの前記サーバに、あるユーザの前記ハードウェアデバイスから、前記ユーザの電子認証情報を使用して、設定された前記頻度に従ってアクセスするための手段と、
前記ユーザに関連付けられたデータを前記第3者のサービスプロバイダの前記サーバから前記ユーザの前記ハードウェアデバイスにダウンロードするための手段と
を含む装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、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号の利益を主張し、これらのそれぞれは、全体としてすべての目的に関して参照により本明細書に組み込まれる。
【0002】
[0002]本発明は、ユーザのデータの所有および収集に関し、より詳細には、ユーザと関連付けられたハードウェアデバイスからの、複数のユーザのデータの、分散されたおよび/または非集中化された集約に関する。
【背景技術】
【0003】
[0003]ますます多くのユーザのデータがクラウドに移動するにつれ、ユーザ自身の個人的なデータを、ユーザが制御、ダウンロード、および/または使用することが次第に困難になってきた。
【発明の概要】
【発明が解決しようとする課題】
【0004】
サービスプロバイダのエコシステムの外側にあるユーザのデータに、ユーザがアクセスするのを防ぐ複数の技術的な措置をとることがあるサービスプロバイダのウォールドガーデンから、ユーザがデータをエクスポートするのが特に困難なことがある。たとえ第3者がユーザの権限およびログイン認証情報を有していても、アグリゲータサービスなどの第3者の1つまたは複数のインターネットプロトコル(IP)アドレスが、サービスプロバイダからユーザのデータにアクセスするのを、サービスプロバイダはブロックすることがある。
【課題を解決するための手段】
【0005】
[0004]分散されたおよび/または非集中化されたデータ集約のために、方法が提案される。1つの実施形態において、方法は、複数の第3者のサービスプロバイダに対するユーザの電子認証情報を決定することを含む。さらなる実施形態において、方法は、ユーザと関連付けられたデータを第3者のサービスプロバイダからダウンロードするために、ユーザの電子認証情報を使用して、ユーザと関連付けられたハードウェアデバイスから第3者のサービスプロバイダにアクセスすることを含む。一定の実施形態において、方法は、第3者のサービスプロバイダからのダウンロードデータを集約し、集約されたダウンロードデータに基づいて、ハードウェアデバイス上で1つまたは複数の通信をユーザに提供することを含む。
【0006】
[0005]分散されたおよび/または非集中化されたデータ集約のために、システムが提案される。1つの実施形態において、複数の集約モジュールは、異なるユーザのハードウェアデバイス上に配置される。一定の実施形態において、複数の集約モジュールは、複数の
異なる第3者のサービスプロバイダに対する異なるユーザからの電子認証情報を受信する。1つの実施形態において、複数の集約モジュールは、受信された電子認証情報を使用して、異なる第3者のサービスプロバイダから異なるユーザと関連付けられたデータをダウンロードする。さらなる実施形態において、バックエンドサーバは、異なる第3者のサービスプロバイダからの異なるユーザと関連付けられたダウンロードデータを受信する。一定の実施形態において、バックエンドサーバは、複数の異なる第3者のサービスプロバイダからの異なるユーザのデータを別々に集約する。1つの実施形態において、バックエンドサーバは、別々に集約されたデータに基づいて、1つまたは複数の通信チャネルを通じて1つまたは複数の通信を異なるユーザに個別に提供する。
【0007】
[0006]分散されたおよび/または非集中化されたデータ集約のために、装置が提案される。1つの実施形態において、認証モジュールは、ユーザのハードウェアデバイス上で、第3者のサービスプロバイダに対するユーザの電子認証情報を決定するように構成される。一定の実施形態において、直接アクセスモジュールは、ユーザの電子認証情報を使用して、ユーザのハードウェアデバイスから第3者のサービスプロバイダのサーバにアクセスするように構成される。さらなる実施形態において、直接アクセスモジュールは、第3者のサービスプロバイダのサーバからユーザのハードウェアデバイスにユーザと関連付けられたデータをダウンロードするように構成される。1つの実施形態において、インターフェースモジュールは、第3者のサービスプロバイダに加入していないリモートデバイスのために、ユーザのハードウェアデバイスからのダウンロードデータをパッケージにするように構成される。さらなる実施形態において、インターフェースモジュールは、ダウンロードデータをリモートデバイスに提供するように構成される。
【0008】
[0007]別の実施形態において、装置は、開示の方法、装置、およびシステムに関して説明される様々なステップおよびオペレーションを実施する手段を含む。コンピュータ可読ストレージ媒体を含むコンピュータプログラム製品が提案される。一定の実施形態において、コンピュータ可読ストレージ媒体は、開示の方法、装置、およびシステムに関して説明されるオペレーションの1つまたは複数を実施することを実行可能なコンピュータ使用可能プログラムコードを格納する。
【0009】
[0008]本発明の利点が容易に理解されるように、上記で簡単に説明された本発明のより多くの特別な説明は、添付の図面に示された具体的な実施形態を参照することによって表現される。これらの図面は本発明の典型的な実施形態のみを描写し、したがって、その範囲を限定するものとみなされるべきではないことを理解して、本発明は、添付の図面の使用を通じて、追加の特殊性および詳細と共に説明され、解説される。
【図面の簡単な説明】
【0010】
【
図1】[0009]分散された/非集中化されたデータ集約のためのシステムの1つの実施形態を示す概略ブロック図である。
【
図2】[0010]集約モジュールの1つの実施形態の概略ブロック図である。
【
図3】[0011]集約モジュールの別の実施形態の概略ブロック図である。
【
図4A】[0012]分散された/非集中化されたデータ集約のためのシステムの追加の実施形態を示す概略ブロック図である。
【
図4B】[0013]分散された/非集中化されたデータ集約のためのシステムのさらなる実施形態を示す概略ブロック図である。
【
図4C】[0014]分散された/非集中化されたデータ集約のためのシステムの一定の実施形態を示す概略ブロック図である。
【
図5A】[0015]ユーザインターフェースの1つの実施形態を示す概略ブロック図である。
【
図5B】[0016]ユーザインターフェースの別の実施形態を示す概略ブロック図である。
【
図6】[0017]分散された/非集中化されたデータ集約のための方法の1つの実施形態を示す概略流れ図である。
【
図7】[0018]分散された/非集中化されたデータ集約のための方法のさらなる実施形態を示す概略流れ図である。
【
図8】[0019]分散された/非集中化されたデータ集約のための方法の別の実施形態を示す概略流れ図である。
【発明を実施するための形態】
【0011】
[0020]「1つの実施形態」、「実施形態」、または類似の言葉への本明細書の全体を通じた参照は、実施形態に関連して説明される特別な特性、構造、または特徴が、少なくとも1つの実施形態に含まれることを意味する。このように、句「1つの実施形態において」、「実施形態において」、および類似の言葉の、本明細書の全体を通じた出現は、すべて同じ実施形態を指してよいが、必ずしも指なくてもよく、明確に明示されない限り、「1つまたは複数の実施形態だが、すべての実施形態というわけではない」を意味する。用語「含む」、「備える」、「有する」、およびこれらの変形は、明確に明示されない限り、「含むが限定されない」を意味する。項目の列挙された一覧は、明確に明示されない限り、項目のいずれかまたはすべてが、相互に排他的および/または相互に包括的であることを含意しない。用語「a」、「an」、および「the」は、明確に明示されない限り、「1つまたは複数」も指す。
【0012】
[0021]その上、実施形態の説明される特性、利点、および特徴は、任意の適切な手法で組み合わされてよい。特別な実施形態の具体的な特性または利点の1つまたは複数を伴わずに、実施形態が実践されてよいことを、当業者は認識するであろう。他の例において、追加の特性および利点は、すべての実施形態において提案されることがない一定の実施形態において認識されることがある。
【0013】
[0022]実施形態のこれらの特性および利点は、以下の説明および添付の特許請求の範囲からより十分に明らかになり、または以下に示されるような実施形態の実践によって確かめられることがある。当業者によって理解されるように、本発明の態様は、システム、方法、および/またはコンピュータプログラム製品として具体化されてよい。それに応じて、本発明の態様は、全面的にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコード、他を含む)全面的にソフトウェアの実施形態、または本明細書で「回路」、「モジュール」、もしくは「システム」と、すべて全体的に呼ばれることがあるソフトウェアの態様とハードウェアの態様を組み合わせる実施形態の形をとってよい。その上、本発明の態様は、1つまたは複数のコンピュータ可読媒体上で具体化されるプログラムコードを有する1つまたは複数のコンピュータ可読媒体の中で具体化されるコンピュータプログラム製品の形をとってよい。
【0014】
[0023]本明細書において説明される機能ユニットの多くは、その実装形態の独立性をより特別に強調するために、モジュールとしてラベル付けされた。例えば、モジュールは、カスタムVLSI回路もしくはゲートアレイ、ロジックチップ、トランジスタなどの市販の半導体、または他のばらばらな構成要素を含むハードウェア回路として実装されてよい。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブル論理回路、または同様のものなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0015】
[0024]モジュールは、様々なタイプのプロセッサによる実行のためにソフトウェアの中に実装されてもよい。例えば、プログラムコードの識別されたモジュールは、例えば、オブジェクト、手続き、または関数として編成されることがあるコンピュータ命令の1つま
たは複数の物理ブロックまたは論理ブロックを含んでよい。それにもかかわらず、識別されたモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に一緒に結合されたとき、モジュールを含み、モジュールに対する決められた目的を実現する、異なる場所に格納された完全に異なる命令を含んでよい。
【0016】
[0025]事実として、プログラムコードのモジュールは、単一の命令または多くの命令であってよく、いくつかの異なるコードのセグメントにわたって、異なるプログラムの間に、およびいくつかのメモリデバイスを跨いで分散されたとしてもよい。同様に、オペレーション上のデータは、本明細書においてモジュール内部で識別され、図示されてよく、任意の適切な形で具体化され、任意の適切なタイプのデータ構造の内部で編成されてよい。オペレーション上のデータは、単一のデータセットとして収集されてよく、または異なるストレージデバイスにわたることを含む異なる場所にわたって分散されてよく、少なくともある程度は、システムまたはネットワーク上の電子信号として単に存在してよい。モジュールまたはモジュールの一部が、ソフトウェアに実装される場合、プログラムコードは、1つまたは複数のコンピュータ可読媒体に格納され、および/または伝播され続けてよい。
【0017】
[0026]コンピュータプログラム製品は、本発明の態様をプロセッサに遂行させるために、その上にコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでよい。
【0018】
[0027]コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持し、格納できる有形のデバイスであってよい。例えば、コンピュータ可読ストレージ媒体は、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、または前述の任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体の、より具体的な例の、完全に網羅されていないリストは、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、消去可能プログラマブルリードオンリメモリ(「EPROM」またはフラッシュメモリ)、スタティックランダムアクセスメモリ(「SRAM」)、ポータブルコンパクトディスクリードオンリメモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、メモリスティック、フロッピーディスク、パンチカードまたはそこに記録された命令を有する溝の中に起こされた構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。本明細書で使用されるように、コンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、一時的な信号自体として解釈されるべきではない。
【0019】
[0028]本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティングデバイス/処理デバイスにダウンロードされてよく、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、および/またはワイヤレスネットワークを介して、外部コンピュータまたは外部ストレージデバイスにダウンロードされてよい。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含んでよい。それぞれのコンピューティングデバイス/処理デバイスの中のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個々のコンピューティングデバイス/処理デバイスの内部のコンピュータ可読ストレージ媒体に格納するために、コンピュータ可読プログラム命令を転送する。
【0020】
[0029]本発明のオペレーションを遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクションセットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来型の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのどちらかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全面的に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、およびリモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で全面的に実行してよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、または(例えば、インターネットサービスプロバイダを使用して、インターネットを通じて)外部コンピュータに対して接続が行われてよい。いくつかの実施形態において、例えば、プログラマブル論理回路機器、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理回路アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個人専用にすることによって、コンピュータ可読プログラム命令を実行してよい。
【0021】
[0030]本発明の態様は、本発明の実施形態による、方法、装置(システム)、およびコンピュータプログラム製品の流れ図および/またはブロック図を参照しながら本明細書で説明される。流れ図および/またはブロック図のそれぞれのブロック、ならびに流れ図および/またはブロック図におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装されてよいことが理解されよう。
【0022】
[0031]これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特殊用途のコンピュータ、または機械を生み出す他のプログラマブルデータ処理装置のプロセッサに提供されてよく、その結果、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、流れ図および/またはブロック図のブロックまたは複数のブロック内で明示された機能/作用を実装するための手段を作成する。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、および/または特別な手法で機能する他のデバイスに指図できるコンピュータ可読ストレージ媒体に格納されてもよく、その結果、そこに格納された命令を有するコンピュータ可読ストレージ媒体は、流れ図および/またはブロック図のブロックまたは複数のブロック内で明示された機能/作用の態様を実装する命令を含む製造品を含む。
【0023】
[0032]コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で実施されることになる一連のオペレーション上のステップに、コンピュータで実装される処理を生み出すことを行わせ、その結果、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令は、流れ図および/またはブロック図のブロックまたは複数のブロック内で明示された機能/作用を実装する。
【0024】
[0033]本明細書において説明される機能ユニットの多くは、その実装形態の独立性をより特別に強調するために、モジュールとしてラベル付けされた。例えば、モジュールは、カスタムVLSI回路もしくはゲートアレイ、ロジックチップ、トランジスタなどの市販の半導体、または他のばらばらな構成要素を含む、ハードウェア回路として実装されてよい。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジ
ック、プログラマブル論理回路、または同様のものなどの、プログラマブルハードウェアデバイスに実装されてもよい。
【0025】
[0034]モジュールは、様々なタイプのプロセッサによる実行のためにソフトウェアに実装されてもよい。例えば、プログラム命令の識別されたモジュールは、例えば、オブジェクト、手続き、または関数として編成されることがあるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含んでよい。それにもかかわらず、識別されたモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に一緒に結合されたとき、モジュールを含み、モジュールに対する決められた目的を実現する、異なる場所に格納された完全に異なる命令を含んでよい。
【0026】
[0035]図における概略流れ図および/または概略ブロック図は、本発明の様々な実施形態による、アーキテクチャ、機能性、ならびに装置、システム、方法、およびコンピュータプログラム製品の可能な実装形態の動作を示す。この点については、概略流れ図および/または概略ブロック図におけるそれぞれのブロックは、明示された論理機能を実装するために、プログラムコードの1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表してよい。
【0027】
[0036]いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序を外れて発生してよいことにも留意されたい。例えば、連続して示された2つのブロックは、実際は、実質的に並行に実行されてよく、またはブロックは、時として、逆の順序で実行されてよく、関与する機能性に依存する。他のステップおよび方法は、示された図の1つまたは複数のブロックまたはその一部と、機能、ロジック、または効果が同じであると想像され得る。
【0028】
[0037]様々な矢印のタイプおよび線のタイプが、流れ図および/またはブロック図で用いられることがあるが、これらは、対応する実施形態の範囲を限定しないことが理解される。事実として、いくつかの矢印または他のコネクタは、描写された実施形態の論理フローを示すためだけに使用されることがある。例えば、矢印は、描写された実施形態の列挙されたステップ間の明示されていない継続時間の待機期間または監視期間を示してよい。ブロック図および/または流れ図のそれぞれのブロック、ならびにブロック図および/または流れ図におけるブロックの組合せは、明示された機能もしくは作用を実施する特殊用途のハードウェアベースのシステムによって、または特殊用途のハードウェアとプログラムコードの組合せによって実装されてよいことも記される。
【0029】
[0038]
図1は、分散されたおよび/または非集中化されたデータ集約のためのシステム100の1つの実施形態を描写する。1つの実施形態において、システム100は、1つまたは複数のハードウェアデバイス102、1つまたは複数の集約モジュール104(例えば、バックエンド集約モジュール104b、および/または1つもしくは複数のハードウェアデバイス102上に据え付けられた複数の集約モジュール104a)、1つまたは複数のデータネットワーク106または他の通信チャネル、1つまたは複数の第3者のサービスプロバイダ108(例えば、1つもしくは複数のサービスプロバイダ108の1つもしくは複数のサーバ108、1つもしくは複数のクラウドもしくはネットワークサービスプロバイダ、または同様のもの)、ならびに/あるいは1つまたは複数のバックエンドサーバ110を含む。一定の実施形態において、たとえ具体的な数のハードウェアデバイス102、集約モジュール104、データネットワーク106、第3者のサービスプロバイダ108、および/またはバックエンドサーバ110が、
図1に描写されるとしても、任意の数のハードウェアデバイス102、集約モジュール104、データネットワーク106、第3者のサービスプロバイダ108、および/またはバックエンドサーバ110が、分散されたデータ集約のためのシステム100に含まれてよいことを、本開示の観点から当業者は認識するであろう。
【0030】
[0039]1つの実施形態において、システム100は、1つまたは複数のハードウェアデバイス102を含む。ハードウェアデバイス102(例えば、コンピューティングデバイス、情報処理デバイス、または同様のもの)は、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、タブレット型コンピュータ、スマートフォン、セットトップボックス、ゲーム機、スマートTV、スマートウォッチ、フィットネスバンド、光ヘッドマウントディスプレイ(例えば、仮想現実ヘッドセット、スマートグラス、または同様のもの)、HDMI(登録商標)または他の電子ディスプレイドングル、パーソナルデジタルアシスタント、ならびに/あるいは、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/もしくは別の半導体集積回路デバイス)、揮発性メモリ、ならびに/または不揮発性ストレージ媒体を含む別のコンピューティングデバイスの1つまたは複数を含んでよい。一定の実施形態において、ハードウェアデバイス102は、下記に説明されるデータネットワーク106を介して、1つもしくは複数の第3者のサービスプロバイダ108の1つもしくは複数のサーバ108、および/または1つもしくは複数のバックエンドサーバ110と通信状態にある。さらなる実施形態において、ハードウェアデバイス102は、様々なプログラム、プログラムコード、アプリケーション、命令、機能、または同様のものを実行することができる。
【0031】
[0040]1つの実施形態において、集約モジュール104は、1つまたは複数の第3者のサービスプロバイダ108に対するユーザの電子認証情報(例えば、ユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジレスポンス、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNA配列、署名、顔認識、音声パターン認識、生体電気信号、2要素認証の認証情報、または同様のもの)を決定および/または受信するように構成される。一定の実施形態において、集約モジュール104は、ユーザの電子認証情報を使用して第3者のサービスプロバイダ108のサーバ108にアクセスし、ユーザの写真、ユーザのソーシャルメディアの投稿、ユーザの医療記録、ユーザの金融取引記録もしくは他の金融データ、ならびに/またはユーザと関連付けられ、および/もしくはユーザによって所有されるが、第3者のサービスプロバイダ108のサーバ108によって格納される(例えば、ユーザによって所有されず、維持されず、および/もしくは制御されないハードウェアによって格納される)他のデータなどの、ユーザと関連付けられたデータをサーバ108からダウンロードする。様々な実施形態において、集約モジュール104は、(例えば、ハードウェアデバイス102の電子ディスプレイにデータを表示して)ダウンロードデータをユーザにローカルに提供すること、ユーザのハードウェアデバイス102からのダウンロードデータを、リモートサーバ110(例えば、バックエンド集約モジュール104b)もしくは第3者のサービスプロバイダ108に加入していないことがある他のリモートデバイス(例えば、ユーザの別のハードウェアデバイス102、異なるユーザのハードウェアデバイス102、もしくは同様のもの)に提供し、および/またはこれらのリモートサーバ110もしくは他のリモートデバイスのためにデータをパッケージにすること、ダウンロードデータに基づいて、(例えば、ハードウェアデバイス102上で)1つまたは複数のアラート、メッセージ、広告、または他の通信をユーザに提供すること、あるいは同様のことを行ってよい。
【0032】
[0041]一定の実施形態において、システム100は、(例えば、1つもしくは複数のハードウェアデバイス102のハードウェア、および/または1つもしくは複数のハードウェアデバイス102上で動く実行コードを含む)複数の異なるユーザのハードウェアデバイス102上に据え付けられた/配置された複数の集約モジュール104を含む。複数の集約モジュール104は、分散されたおよび/または非集中化されたシステム100として作用してよく、地理的に拡散され、異なるIPアドレスを使用する複数のハードウェアデバイス102に跨って実行し、それぞれは、分散されたおよび/または非集中化された手法で、データ(例えば、写真、ソーシャルメディアの投稿、医療記録、金融取引記録、他の金融データ、および/または他のユーザデータ)を別々にダウンロードし、および/または集約する。第3者のサービスプロバイダ108(例えば、金融機関、銀行、信用組合、および/もしくは他のオンライン銀行取引プロバイダ、またはソーシャルメディアサイト、または医療提供者、または写真ホスティングサイト、または同様のもの)は、単一の場所(例えば、単一のIPアドレス、IPアドレスの単一のブロック、または同様のもの)から複数のユーザのデータに、データ集約サービスまたは他のエンティティがアクセスするのをブロックすることがあるが、一定の実施形態において、分散されたおよび/または非集中化された大量の多くの集約モジュール104は、第3者のサービスプロバイダ108にとってブロックするのがより一層困難なことがある。
【0033】
[0042]1つの実施形態において、ハードウェアデバイス102は、インターネットブラウザを含みおよび/または実行してよく、(例えば、インターネットブラウザ内で第3者のサービスプロバイダ108のウェブページをロードすることによって)第3者のサービスプロバイダ108のサーバ108にアクセスするために、ユーザはインターネットブラウザを使用してよい。一定の実施形態において、集約モジュール104の少なくとも一部は、ユーザの個人的なハードウェアデバイス102のインターネットブラウザに対するプラグインおよび/またはインターネットブラウザの拡張を含むことがあり、その結果、第3者のサービスプロバイダ108は、第3者のサービスプロバイダ108のサーバ108に集約モジュール104がアクセスするのをブロックすることはなく、インターネットブラウザを使用してサーバ108にユーザ自身がアクセスするのをブロックすることもない。例えば、ユーザがインターネットブラウザを通じて第3者のサービスプロバイダ108のサーバ108にアクセスするときに使用するであろうものと同じクッキー、IPアドレス、保存された認証情報、または同様のものを、集約モジュール104は使用してよい。一定の実施形態において、集約モジュール104は、(例えば、異なるハードウェアデバイス102上の)複数の異なるタイプのインターネットブラウザとの統合をサポートしてよい。
【0034】
[0043]一定の実施形態において、集約モジュール104は、集約モジュール104によるサーバ108へのアクセスと、ユーザによるサーバ108へのアクセスを、第3者のサービスプロバイダ108が区別し得るという可能性を低減させるために、第3者のサービスプロバイダ108のサーバ108にアクセスする際に、ユーザの行動パターンを模倣またはコピーしてよい。例えば、集約モジュール104は、たとえ1つまたは複数の場所のそれぞれからデータをダウンロードすることを集約モジュール104が意図しなくても、第3者のサービスプロバイダ108のサーバ108の1つもしくは複数の場所(例えば、ウェブページ)を訪れること、異なる場所をアクセスする間に一定の遅延時間、待機すること、一定のスクロールパターンを使用すること、または同様のことを行ってよく、ユーザのデータを集約モジュール104がダウンロードすることおよび/または集約することを隠し、第3者のサービスプロバイダ108によって検出され、および/またはブロックされる機会を低減させる。
【0035】
[0044]1つの実施形態において、集約モジュール104の少なくとも一部は、個人的な財務管理アプリケーション(例えば、複数の金融機関からのユーザの金融取引を表示すること、ユーザの財務予算および/もしくは財政目標を決定および/もしくは表示すること、ユーザの勘定残高を決定および/もしくは表示すること、ユーザの純資産を決定および/もしくは表示すること、または同様のことを行うためのコンピュータの実行コード)、写真ビューア、医療アプリケーション、保険アプリケーション、会計アプリケーション、ソーシャルメディアアプリケーション、あるいは同様のものなどの、ハードウェアデバイス102上で実行する別のアプリケーションと統合されるか、またはそうでなければ、別のアプリケーションの一部であってよく、これらのアプリケーションは、第3者のサービスプロバイダ108のサーバ108から集約モジュール104がダウンロードするデータを使用してよい。
【0036】
[0045]1つの実施形態において、集約モジュール104aは、分散されたシステム100を含み、集約モジュール104aおよび/または関連付けられたハードウェアデバイス102は、実質的に非従属的にデータをダウンロードすることおよび/または集約すること(例えば、構成要素の独立の成功および/または失敗によって、グローバルクロックがない状態で、並行または非並行にデータをダウンロードすること)を行う。分散された集約モジュール104aは、互いにおよび/またはバックエンド集約モジュール104bにメッセージを渡し、ユーザのデータのこれらの分散集約を調和させる。1つの実施形態において、集約モジュール104aは、1つまたは複数の集約機能を実施する集中型サーバまたは他のデバイスに排他的に依存するのではなく、非集中化される(例えば、ユーザと関連付けられたハードウェアデバイス102は、データをダウンロードすることなどの1つまたは複数の集約機能を実施する)。
【0037】
[0046]一定の実施形態において、分散されたおよび/または非集中化されたシステム100において、バックエンド集約モジュール104bおよび/またはバックエンドサーバ110などの中心エンティティは、ユーザの認証情報を使用して第3者のサービスプロバイダ108のサーバ108にアクセスするための命令を含む1つもしくは複数のメッセージ、または同様のものを、1つまたは複数の集約モジュール104aにさらに提供することがある。例えば、バックエンド集約モジュール104bは、ユーザの電子認証情報をエンターする(entering;入力する)ための場所(例えば、テキストボックス、フィールド、ラベル、座標、もしくは同様のもの)、ユーザの電子認証情報をサブミットする(submitting;提示する、送信する)ための命令(例えば、押すボタン、クリックするリンク、もしくは同様のもの)、ユーザと関連付けられたデータの1つもしくは複数の場所(例えば、テーブルもしくはチャートの行、テーブルもしくはチャートの列、ユニフォームリソースロケータ(URL)もしくは他のアドレス、座標、ラベル、または同様のもの)、および/あるいは他の命令または情報などの、第3者のサービス108のサーバ108にアクセスするための命令の1つまたは複数のセットを、1つまたは複数のハードウェアデバイス102の1つまたは複数の集約モジュール104aに提供し、これらを使用して、集約モジュール104aは、ユーザのデータにアクセスし、ダウンロードしてよい。
【0038】
[0047]さらなる実施形態において、1つまたは複数の集約モジュール104aは、ピアツーピアの手法で互いに、ユーザの認証情報を使用して第3者のサービスプロバイダ108のサーバ108にアクセスするための命令、または同様のものなどの、メッセージを渡してよい。別の実施形態において、バックエンド集約モジュール104bなどの中心エンティティは、初めに、ユーザの認証情報を使用して第3者のサービスプロバイダ108のサーバ108にアクセスするための命令の1つまたは複数のセットを、1つまたは複数の集約モジュール104aにまいてよく、1つまたは複数の集約モジュール104aは、命令の1つまたは複数のセットを他の集約モジュール104aに送信してよい。
【0039】
[0048]しかし、一定の実施形態において、ユーザのデータにアクセスするための命令は、(例えば、アップグレード、異なるユーザに対する異なるサービスレベルもしくはサーバ108、異なる第3者のサービスプロバイダ108の買収および/もしくは合併、または同様のものにより)時とともに変更させること、第3者のサービスプロバイダ108の異なるユーザによって変化させること、あるいは同様のことを行ってよく、時とともにおよび/または一定のユーザに対して一定の命令を失敗させ、集約モジュール104がユーザのデータにアクセスし、ダウンロードするのを防ぐ。1つの実施形態において、バックエンド集約モジュール104bは、命令の複数のセットの階層リストを1つまたは複数の集約モジュール104aに提供してよく、第3者のサービスプロバイダ108のサーバ108からユーザのデータにアクセスできるようになったことが知らされる。集約モジュール104aがユーザのデータにアクセスできるまで、ハードウェアデバイス102上の集約モジュール104aは階層順に命令の異なるセットを試行してよい。
【0040】
[0049]一定の実施形態において、集約モジュール104は、ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの場所、または同様のものをグラフィカルに識別することによって、ユーザのデータにアクセスするための失敗した命令を、ユーザが修復することまたは直すことを可能にするインターフェースをユーザに提供してよい。1つの実施形態において、集約モジュール104は、ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの場所、または同様のものについて、集約モジュール104が決定した推定を、強調またはそうでなければ示唆すること(例えば、太字にすること、色を付けること、視覚コメントもしくはラベルを描写すること、または同様のこと)を行ってよい。例えば、集約モジュール104は、第3者のサービスプロバイダ108のサーバ108のウェブページを処理すること(例えば、ハイパーテキストマークアップランゲージ(HTML)ファイルを解析することおよび/または調査すること)を行い、ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの場所、または同様のものを推定してよい。
【0041】
[0050]一定の実施形態において、集約モジュール104は、第3者のサービスプロバイダ108のサーバ108からユーザのデータにアクセスするための壊れたおよび/または失敗した命令をグラフィカルに修復するために、先進的なインターフェースをユーザに提供してよく、これはウェブページのコード(例えば、HTMLまたは同様のもの)を閲覧し、ウェブページのコードの内部で、ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの場所、または同様のものを識別することを、ユーザが行うことを可能にする。1つの実施形態において、集約モジュール104は、サーバ108のウェブページまたは他の場所に基本的なインターフェースを被せることによって、第3者のサービスプロバイダ108のサーバ108からユーザのデータにアクセスするための壊れたおよび/または失敗した命令をグラフィカルに修復するために、基本的なインターフェースをユーザに提供してよく、(例えば、ウェブページのHTMLまたは他のコードを閲覧することをユーザに要求することなく)ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの場所、または同様のものを、ユーザはグラフィカルに識別する。一定の実施形態において、集約モジュール104は、壊れたおよび/または欠落した命令、場所、または同様のものの選択可能なリストを含むインターフェースを提供してよく、リストから項目をユーザが選択するのに応答して、候補をグラフィカルに強調および/または表示してよい。
【0042】
[0051]1つの実施形態において、集約モジュール104は、(例えば、不正ユーザが間違ったまたは正しくない命令を発行するのを防ぐために)発行された命令を使用することを集約モジュール104aのそれぞれが可能にする前に、(例えば、テストセットを使用して)ユーザによって発行された命令をテストしてよい。集約モジュール104は、ユーザが提供した命令の成功率に基づいてユーザを採点または評価してよく、より高い採点または評価を伴うユーザからの命令の使用を促進すること(例えば、より多くの集約モジュール104aおよび/またはユーザに提供すること)を行ってよい。一定の実施形態において、集約モジュール104の分散ネットワークは、それによって、自己解決および/または自己テストを行ってよく、たとえアクセス命令が変わるか、または壊れた状態になるとしても、1つまたは複数の第3者のサービスプロバイダ108からユーザのデータへの継続アクセスおよび/または集約を可能にする。
【0043】
[0052]一定の実施形態において、1つまたは複数の集約モジュール104は、1つまたは複数の他のエンティティ(例えば、第3者のサービスプロバイダ108に加入していないリモートサーバ110もしくは他のハードウェアデバイス102、バックエンド集約モジュール104b、または同様のもの)に、1つまたは複数の第3者のサービスプロバイダ108のサーバ108からのダウンロードされたおよび/または集約されたユーザデータを提供するために、インターフェース(例えば、アプリケーションプログラミングインターフェース(API))を提供してよい。1つの実施形態において、インターフェースは、ユーザのハードウェアデバイス102の集約モジュール104aと、1つまたは複数のバックエンド集約モジュール104bとの間のプライベートインターフェースを含む。例えば、これは、たとえデータをダウンロードしたユーザのハードウェアデバイス102が切られている、電池切れ、データネットワーク106に接続されていない、または同様の状態だとしても、複数の場所で、複数のハードウェアデバイス102上に、複数のチャネルを通じて、または同様のもので、ダウンロードされたおよび/または集約されたユーザデータへのアクセスを、バックエンド集約モジュール104bがユーザに提供することを可能にすることがある。別の実施形態において、インターフェースは、公的なおよび/またはオープンなインターフェースを含み、これはセキュアにされることがあり、データを格納、処理、および/またはそうでなければ使用するために、集約モジュール104からのユーザのダウンロードされたデータを1つまたは複数の他のツール、サービス、および/または他のエンティティに、ユーザが配ることを可能にする。
【0044】
[0053]様々な実施形態において、集約モジュール104は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアのいくつかの組合せとして具体化されてよい。1つの実施形態において、集約モジュール104は、ハードウェアデバイス102、バックエンドサーバ110、または同様のもののプロセッサ上での実行のために、非一時的コンピュータ可読ストレージ媒体上に格納される実行可能プログラムコードを含んでよい。例えば、集約モジュール104は、ハードウェアデバイス102、バックエンドサーバ110、前述の1つもしくは複数の組合せ、または同様のものの1つまたは複数上で実行する実行可能プログラムコードとして具体化されてよい。このような実施形態において、下記に説明されるような、集約モジュール104のオペレーションを実施する様々なモジュールは、ハードウェアデバイス102、バックエンドサーバ110、この2つの組合せ、および/または同様のものの上に配置されてよい。
【0045】
[0054]様々な実施形態において、集約モジュール104は、バックエンドサーバ110上に、ユーザのハードウェアデバイス102(例えば、ドングル、ワイヤレスでおよび/もしくはUSBもしくは固有の通信ポートなどのデータポートで電話102もしくはタブレット102と通信状態にあるケース内部の1つもしくは複数の半導体集積回路デバイスを含む電話102もしくはタブレット102の保護ケース、または別の周辺デバイス)上に、あるいはデータネットワーク106上のおよび/またはユーザのハードウェアデバイス102とコロケートされた他の場所にインストールまたは配置されることがある、ハードウェア機器として具体化されてよい。一定の実施形態において、集約モジュール104は、有線接続(例えば、USB接続)もしくはワイヤレス接続(例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、近距離無線通信(NFC:near-field communication)、もしくは同様のもの)のどちらかによって、ラップトップコンピュータ、サーバ、タブレット型コンピュータ、スマートフォン、もしくは同様のものなどの別のハードウェアデバイス102に付随する状態、電子ディスプレイデバイス(例えば、HDMIポート、DisplayPortポート、MiniDisplayPortポート、VGAポート、DVIポート、もしくは同様のものを使用するテレビもしくはモニタ)に付随する状態、データネットワーク106上で実質的に非従属的に動作する状態、または同様の状態にある、セキュアなハードウェアドングルまたは他のハードウェア機器デバイス(例えば、セットトップボックス、ネットワーク機器、または同様のもの)などのハードウェアデバイスを含んでよい。集約モジュール104のハードウェア機器は、電力インターフェース、有線および/またはワイヤレスネットワークインターフェース、ディスプレイデバイスに出力するグラフィカルインターフェース(例えば、1つもしくは複数のディスプレイポートを有するグラフィックカードおよび/もしくはGPU)、ならびに/または下記に説明されるような半導体集積回路デバイスを含んでよく、集約モジュール104に関して本明細書で説明される機能を実施するように構成される。
【0046】
[0055]このような実施形態において、集約モジュール104は、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、FPGAもしくは他のプログラマブル論理回路のためのファームウェア、マイクロコントローラ上での実行のためのマイクロコード、特定用途向け集積回路(ASIC)、プロセッサ、プロセッサコア、または同様のものなどの、半導体集積回路デバイス(例えば、1つもしくは複数のチップ、ダイ、もしくは他のばらばらのロジックハードウェア)または同様のものを含んでよい。1つの実施形態において、集約モジュール104は、(例えば、揮発性メモリ、不揮発性ストレージ媒体、ネットワークインターフェース、周辺デバイス、グラフィカルインターフェース/ディスプレイインターフェースへの、1つまたは複数の電気回線または電気接続を有するプリント回路基板上にマウントされてよい。ハードウェア機器は、(例えば、プリント回路基板または同様のものの1つまたは複数の電気回線と通信状態にある)データを送信および受信するように構成された1つまたは複数のピン、パッド、または他の電気接続を含んでよく、1つまたは複数のハードウェア回路および/または他の電気回路は、集約モジュール104の様々な機能を実施するように構成される。
【0047】
[0056]一定の実施形態において、集約モジュール104の半導体集積回路デバイスまたは他のハードウェア機器は、1つまたは複数の揮発性メモリ媒体を含みおよび/またはこれらに通信連結され、1つまたは複数の揮発性メモリ媒体は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、キャッシュ、または同様のものを含んでよいがこれらに限定されない。1つの実施形態において、集約モジュール104の半導体集積回路デバイスまたは他のハードウェア機器は、1つまたは複数の不揮発性メモリ媒体を含みおよび/またはこれらに通信連結され、1つまたは複数の不揮発性メモリ媒体は、NANDフラッシュメモリ、NORフラッシュメモリ、ナノランダムアクセスメモリ(ナノRAMもしくはNRAM)、ナノ結晶ワイヤベースのメモリ(nanocrystal wire-based memory)、酸化ケイ素ベースのサブ10ナノメートルプロセスメモリ(silicon-oxide based sub-10 nanometer process memory)、グラフェンメモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS:Silicon-Oxide-Nitride-Oxide-Silicon)、抵抗変化型RAM(RRAM(登録商標):resistive RAM)、プログラマブルメタライゼーションセル(PMC:programmable metallization cell)、導電性ブリッジRAM(CBRAM:conductive-bridging RAM)、磁気抵抗性RAM(MRAM:magneto-resistive RAM)、ダイナミックRAM(DRAM)、相変化RAM(PRAM(phase change RAM)、もしくはPCM)、磁気ストレージ媒体(例えば、ハードディスク、テープ)、光ストレージ媒体、または同様のものを含んでよいがこれらに限定されない。
【0048】
[0057]1つの実施形態において、データネットワーク106は、デジタル通信を伝送す
るデジタル通信ネットワークを含む。データネットワーク106は、ワイヤレスセルラーネットワークなどのワイヤレスネットワーク、および/またはWi-Fiネットワーク、Bluetooth(登録商標)ネットワーク、近距離無線通信(NFC)ネットワーク、アドホックネットワークなどのローカルワイヤレスネットワーク、および/または同様のものを含んでよい。データネットワーク106は、広域ネットワーク(WAN)、ストレージエリアネットワーク(SAN)、ローカルエリアネットワーク(LAN)、光ファイバネットワーク、インターネット、または他のデジタル通信ネットワークを含んでよい。データネットワーク106は、2つ以上のネットワークを含んでよい。データネットワーク106は、1つまたは複数のサーバ、ルータ、スイッチ、および/または他のネットワーク機器を含んでよい。データネットワーク106は、ハードディスクドライブ、光学ドライブ、不揮発性メモリ、RAM、または同様のものなどの1つまたは複数のコンピュータ可読ストレージ媒体を含んでもよい。
【0049】
[0058]1つの実施形態において、1つまたは複数の第3者のサービスプロバイダ108は、1つまたは複数のウェブサイトをホストする1つまたは複数のウェブサーバ、企業イントラネットシステム、アプリケーションサーバ、アプリケーションプログラミングインターフェース(API)サーバ、認証サーバ、または同様のものなどの、1つまたは複数のネットワークアクセス可能なコンピューティングシステムを含んでよい。1つまたは複数の第3者のサービスプロバイダ108は、様々な機関または組織に関連したシステムを含んでよい。例えば、第3者のサービスプロバイダ108は、金融機関、大学、政府機関、公益事業会社、電子メールプロバイダ、ソーシャルメディアサイト、写真共有サイト、動画共有サイト、データストレージサイト、医療提供者、またはユーザと関連付けられたデータを格納する別のエンティティへの電子アクセスを提供するシステムを含んでよい。第3者のサービスプロバイダ108は、ユーザと関連付けられたデータをアップロード、閲覧、作成、および/または修正するためのユーザアカウントを、ユーザが作成するのを可能にすることがある。それに応じて、第3者のサービスプロバイダ108は、ウェブサイト、アプリケーション、または類似のフロントエンドのログインエレメントまたはページなどの権限付与システムを含んでよく、ここで、ユーザのデータにアクセスするために、ユーザはユーザ名/パスワードの組合せなどの認証情報を提供できる。
【0050】
[0059]1つの実施形態において、1つまたは複数のバックエンドサーバ110および/または1つまたは複数のバックエンド集約モジュール104bは、ネットワーク化された大量の集約モジュール104aの中央管理を提供する。例えば、1つまたは複数のバックエンド集約モジュール104bおよび/またはバックエンドサーバ110は、集約モジュール104aからのダウンロードされたユーザデータを中心に格納すること、ユーザ認証情報を使用して1つまたは複数の第3者のサービスプロバイダ108からのユーザデータに、集約モジュール104aがアクセスするための命令を提供すること、または同様のことを行ってよい。バックエンドサーバ110は、ハードウェアデバイス102および/または1つもしくは複数の第3者のサービスプロバイダ108からリモートに配置された1つまたは複数のサーバを含んでよい。バックエンドサーバ110は、
図2および
図3の集約モジュール104に関して下記に説明されるモジュールもしくはサブモジュールの少なくとも一部を含むこと、集約モジュール104のハードウェアを含むこと、1つもしくは複数の非一時的なコンピュータ可読ストレージ媒体に集約モジュール104の実行可能プログラムコードを格納すること、ならびに/またはそうでなければ、分散された手法で、1つもしくは複数の第3者のサービスプロバイダからのユーザデータを集約するために、本明細書で説明される集約モジュール104の様々なオペレーションの1つまたは複数を実施することを行ってよい。
【0051】
[0060]
図2は、集約モジュール104の1つの実施形態を描写する。描写された実施形態において、集約モジュール104は、認証モジュール202、直接アクセスモジュール
204、およびインターフェースモジュール206を含む。
【0052】
[0061]1つの実施形態において、認証モジュール202は、ユーザのハードウェアデバイス102上で、第3者のサービスプロバイダ108に対するユーザの電子認証情報をユーザから受信する。さらなる実施形態において、認証モジュール202は、(例えば、異なるハードウェアデバイス102から、バックエンド集約モジュール104から、または同様のものから)異なるユーザの電子認証情報を受信してよく、これは、暗号化され、および/またはそうでなければセキュアにされることがあり、その結果、直接アクセスモジュール204は、異なるユーザのデータをダウンロードしてよい(例えば、単一のユーザのハードウェアデバイス102から複数のユーザのデータをダウンロードする)。
【0053】
[0062]例えば、分散された/非集中化されたシステム100において、1つのユーザのハードウェアデバイス102が、切られている、スリープ中、電池切れ、第3者のサービスプロバイダ108によってブロックされている、または同様の状態である場合、一定の実施形態において、異なるユーザのハードウェアデバイス102上のおよび/またはバックエンドサーバ110上の集約モジュール202は、1つのユーザの電子認証情報を使用して1つのユーザのデータをダウンロードしてよく、1つのユーザのハードウェアデバイス102にデータを送信すること、1つのユーザのハードウェアデバイス102にアラートおよび/もしくはプッシュ通知を送信すること、または同様のことを行ってよい。この手法で、1つの実施形態において、ユーザは、たとえユーザ自身のハードウェアデバイス102がブロックされている、利用不可能である、または同様の状態であるとしても、データを集約すること、アラートおよび/もしくはプッシュ通知を受信すること、または同様のことを継続してよい。一定の実施形態において、1つまたは複数の認証モジュール202と協働して、集約モジュール104a、104bは、セキュアなおよび/もしくは暗号化されたプロトコルを使用して互いに通信してよく、ならびに/またはセキュアなおよび/もしくは暗号化された手法で電子認証情報を格納してよく、その結果、別のユーザの電子認証情報、ダウンロードデータ、または他のプライベートデータおよび/もしくは機密データを見ることおよび/またはこれらにアクセスすることを、ユーザが行うことはない。
【0054】
[0063]集約モジュール104がハードウェア(例えば、FPGA、ASIC、または同様のものなどの半導体集積回路デバイス)を含む場合の実施形態において、認証モジュール202は、セキュアでないバス、もしくは暗号キーを格納するストレージに、解読されたデータを出力しないセキュアクリプトプロセッサ(例えば、1つもしくは複数の物理的なセキュリティ対策のあるパッケージに埋め込まれたチップもしくはマイクロプロセッサ上の専用コンピュータ)、セキュアストレージデバイスなどの、電子認証情報、ダウンロードデータ、ならびに/または他の機密データおよび/もしくはプライベートデータを格納および/または処理するための専用のセキュリティハードウェア、あるいはTPMチップおよび/またはTPMセキュリティデバイスなどのトラステッドプラットフォームモジュール(TPM)、あるいはセキュアブートROMまたは他のタイプのROM、あるいは認証チップ、あるいは同様のものを含んでよい。別の実施形態において、認証モジュール202は、専用のセキュリティハードウェアを用いてまたは用いずに、(例えば、RAM、NAND、および/または他の汎用ストレージ内のデータを暗号化する)ユーザの既存のハードウェアデバイス102のソフトウェアおよび/またはハードウェアを使用して、セキュアなおよび/または暗号化された方式で、電子認証情報、ダウンロードデータ、および/または他の機密データを格納および/または処理してよい。一定の実施形態において、認証モジュール202は、(例えば、データネットワーク106または同様のもので、第1のユーザのハードウェアデバイス102から)第2(例えば、異なる)ユーザのハードウェアデバイス102によって受信され、処理され、および/または格納される、第1のユーザと関連付けられたデータ(例えば、電子認証情報、ダウンロードデータ)を暗号化しおよび/またはセキュアにしてよく、第1のユーザのデータが、異なるユーザのハードウェアデバイス102からダウンロードされおよび/または集約されることをさらに可能にしながら、第2のユーザが第1のユーザのデータにアクセスするのを防ぐ。
【0055】
[0064]1つの実施形態において、上述のように、電子認証情報は、ユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジレスポンス、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNA配列、署名、顔認識、音声パターン認識、生体電気信号、2要素認証の認証情報、またはユーザのアイデンティティおよび/もしくはユーザの権限を、認証モジュール202が認証および/または検査し得る他の情報の1つまたは複数を含んでよい。
【0056】
[0065]一定の実施形態において、認証モジュール202は、複数の異なる第3者のサービスプロバイダ108からユーザのデータを、集約モジュール104がダウンロードし、集約し、および/または組み合わせることができるように、異なる第3者のサービスプロバイダ108(例えば、異なるソーシャルネットワーク、異なる写真共有サイト、異なる金融機関)を用いて、ユーザの異なるアカウントに対するユーザからの異なる認証情報を受信してよい。1つの実施形態において、
図3のパスワードマネージャモジュール306に関して下記に説明されるように、ユーザから1つまたは複数のパスワードまたは他の電子認証情報を受信することの代わりにおよび/またはこれらに加えて、認証モジュール202は、1つまたは複数の第3者のサービスプロバイダ108に対するユーザの1つまたは複数のパスワードまたは他の電子認証情報を管理および/または決定してよい。例えば、一定の実施形態において、認証モジュール202は、第3者のサービスプロバイダ108を用いて、ユーザのアカウントに対するユーザからの電子認証情報の初期セット(例えば、ユーザ名およびパスワード)を受信してよく、認証モジュール202は、電子認証情報の初期セットを使用して、第3者のサービスプロバイダ108を用いてユーザのアカウントにアクセスし、認証モジュール202によって決定された新しいパスワードをセットしてよい。1つの実施形態において、認証モジュール202は、ユーザによって典型的に作成されるおよび/またはユーザに記憶しやすいパスワードまたは他の電子認証情報よりセキュア(例えば、より長い、より多くの数字、大文字と小文字のより多くのバリエーション、より頻繁に変わった、または同様のもの)である、パスワードまたは他の電子認証情報を決定してよい。
【0057】
[0066]1つの実施形態において、直接アクセスモジュール204は、(例えば、ハードウェアデバイス102と関連付けられたユーザに関する、異なるユーザに関する、または同様のものに関する)認証モジュール202からのユーザの電子認証情報を使用して、ユーザのハードウェアデバイス102から、および/またはバックエンドサーバ110から、1つまたは複数の第3者のサービスプロバイダ108の1つまたは複数のサーバ108にアクセスする。一定の実施形態において、直接アクセスモジュール204は、1つまたは複数の第3者のサービスプロバイダ108の1つまたは複数のサーバ108から、ユーザと関連付けられたデータ(例えば、ユーザのソーシャルメディアの投稿、ユーザの写真、ユーザの金融取引、または同様のもの)を、(例えば、ダウンロードデータと関連付けられたユーザの、またはダウンロードデータを処理するために、および/もしくはダウンロードデータと関連付けられたユーザのハードウェアデバイス102に伝達するために異なるユーザの、または同様のものの)ユーザのハードウェアデバイス102に、ならびに/あるいは(例えば、ユーザのハードウェアデバイス102の可用性に基づいて、または第2の場所にデータをバックアップするために、または同様のもののために)ユーザのハードウェアデバイス102に、データを直接ダウンロードすることの代わりにまたはこれらに加えて、直接アクセスモジュール204と関連付けられたバックエンドサーバ110に、ダウンロードする。
【0058】
[0067]一定の実施形態において、直接アクセスモジュール204は、第3者のサービスプロバイダ108のサーバ108のウェブページのインターフェースを使用し、ユーザの電子認証情報を使用してサーバ108にアクセスすること、および/またはユーザと関連付けられたデータをダウンロードすることを行ってよい。一定の実施形態において、例えば、直接アクセスモジュール204は、第3者のサービスプロバイダ108のサーバ108からウェブページをダウンロード/ロードすること、ウェブページ上のフォーム内のテキストボックスに、ユーザのユーザ名およびパスワードもしくは他の電子認証情報をエンターすること、サブミットボタンもしくはウェブページの他のインターフェースエレメントを使用して、ユーザ名およびパスワードもしくは他の電子認証情報をサブミットすること、ならびに/またはそうでなければ、サーバ108上のユーザと関連付けられたデータへの権限付与されたアクセスを得るためにウェブサイトを使用して電子認証情報をサブミットすることを行ってよい。下記に説明されるように、パターンモジュール308は、直接アクセスモジュール204がサーバ108にアクセスするのを可能にする命令(例えば、電子認証情報をサブミットするための場所もしくは方法、または同様のもの)を受信および/または提供してよい。
【0059】
[0068]ユーザの電子認証情報で第3者のサービスプロバイダ108のサーバ108を用いて正常に認証すること、およびユーザの電子認証情報で第3者のサービスプロバイダ108のサーバ108に正常にアクセスすることに応答して、直接アクセスモジュール204は、ユーザと関連付けられたハードウェアデバイス102に、バックエンドサーバ110に、ユーザの代理でデータをダウンロードする別のユーザのハードウェアデバイス102に、または同様のものに、(例えば、ユーザのアカウントまたは同様のものからの)ユーザと関連付けられたデータを、サーバ108からダウンロードしてよい。一定の実施形態において、下記に説明されるように、パターンモジュール308は、第3者のサービスプロバイダ108のサーバ108からユーザと関連付けられたデータを、直接アクセスモジュール204がダウンロードすることを可能にする命令(例えば、URLもしくはデータの場所への他のリンク、1つもしくは複数のウェブページもしくは他のデータ構造の内部にデータを配置するためのラベルもしくは他の識別子、または同様のもの)を受信および/または提供してよい。一定の実施形態において、直接アクセスモジュール204は、パターンモジュール308からの命令に従い、スクリーンスクレイピングの手法で、サーバ108からの1つまたは複数のウェブページからデータを認証しおよび/またはアクセスしてよく、1つまたは複数のウェブページを解析してエントリ場所を配置することおよび/もしくは電子認証情報をサブミットすること、ユーザと関連付けられたデータを検索、ダウンロード、および/もしくは抽出すること、または同様のことを行う。
【0060】
[0069]1つの実施形態において、直接アクセスモジュール204は、電子認証情報を送信もしくはそうでなければサブミットし、および/または第3者のサービスプロバイダ108のサーバ108のAPIもしくは他のアクセスプロトコルを使用して、データを受信しまたはそうでなければダウンロードする。例えば、直接アクセスモジュール204は、第3者のサービスプロバイダ108のサーバ108(例えば、APIサーバ108)によって明示された、および/またはサーバ108と互換性のあるフォーマットでリクエストを送信してよい。送信されたリクエストは、ユーザの電子認証情報もしくはその一部(例えば、ユーザ名および/もしくはパスワード)を含んでよく、後続のリクエストは、(例えば、第1のリクエストに対するサーバ108からの肯定応答を受信すること、もしくは同様のものに応答して)ユーザの電子認証情報もしくはその一部を含んでよく、ならびに/または直接アクセスモジュール204は、サーバ108の異なるアクセスプロトコルを使用してよい。
【0061】
[0070]直接アクセスモジュール204からのデータのリクエストに応答して(例えば、直接アクセスモジュール204が、サーバ108のアクセスプロトコルを使用してユーザ
を認証するのに応答して)、第3者のサービスプロバイダ108のサーバ108は、(例えば、1つもしくは複数のメッセージ、パケット、ペイロードの中で、または直接アクセスモジュール204がデータを取り出してよい場所へのURLもしくは他のポインタとして、または同様のもので)ユーザと関連付けられたデータを送信および/または返送してよい。様々な実施形態において、直接アクセスモジュール204は、データネットワーク106で第3者のサービスプロバイダ108のサーバ108から、ユーザと関連付けられたデータを直接的に受信してよく、第3者のサービスプロバイダ108のサーバ108から、ユーザと関連付けられたデータの場所へのポインタ、URL、もしくは他のリンクを受信してよく、(例えば、第3者のサービスプロバイダ108のサーバ108から他のエンティティもしくは同様のものへのリクエストに応答して)データネットワーク106上の別のエンティティから、ユーザと関連付けられたデータを受信してよく、またはそうでなければ第3者のサービスプロバイダ108のアクセスプロトコルに従って、ユーザと関連付けられたデータを受信してよい。
【0062】
[0071]1つの実施形態において、第3者のサービスプロバイダ108は、直接アクセスモジュール204にAPIまたは他のアクセスプロトコルを提供する。さらなる実施形態において、直接アクセスモジュール204は、第3者のサービスプロバイダ108のアプリケーション(例えば、モバイルアプリケーション)のためのラッパー、および/またはアプリケーションのプラグインもしくは拡張として作用することがあり、アプリケーションは、第3者のサービスプロバイダ108のAPIまたは他のアクセスプロトコルにアクセスできることがある。別の実施形態において、直接アクセスモジュール204は、第3者のサービスプロバイダ108のアプリケーションまたは同様のものの観察を通じて、第3者のサービスプロバイダ108のアプリケーション(例えば、モバイルアプリケーション)として、同じ手法で、APIまたは他のアクセスプロトコルを使用するように構成されてよい。一定の実施形態において、直接アクセスモジュール204は、第3者のサービスプロバイダ108のアプリケーション、第3者のサービスプロバイダ108のサービスにユーザがアクセスするウェブブラウザ、または同様のものと協働して、(例えば、アプリケーションおよび/もしくはユーザによって既にダウンロードされたデータにアクセスすること、アプリケーションおよび/もしくはウェブブラウザのデータベースもしくは他のデータストアにアクセスすること、ユーザがウェブページにアクセスするように第3者のサービスプロバイダ108のウェブページをスキャンおよび/もしくはスクリーンスクレイピングすること、または同様のことを行って)ユーザと関連付けられたデータにアクセスしてよい。
【0063】
[0072]一定の実施形態において、直接アクセスモジュール204は、異なる手法で、異なる第3者のサービスプロバイダ108にアクセスしてよい。例えば、第1の第3者のサービスプロバイダ108は、直接アクセスモジュール204にAPIまたは他のアクセスプロトコルへのアクセスを認めることがある一方、ウェブページのインターフェース(例えば、スクリーンスクレイピング)を使用して、第2の第3者のサービスプロバイダ108からのデータに、直接アクセスモジュール204がアクセスし、ダウンロードすること、または同様のことを行うことがある。1つの実施形態において、リモートバックエンドサーバ110は、第1者のサービスプロバイダ110(例えば、集約モジュール104のベンダおよび/またはプロバイダ)と関連付けられてよく、直接アクセスモジュール204は、第1者のサービスプロバイダ110と1つまたは複数の第3者のサービスプロバイダ108の両方から、ユーザと関連付けられたデータをダウンロードしてよく、単一のインターフェースおよび/またはアプリケーション内で、ユーザがデータにアクセスできるようにデータを一緒に集約する。例えば、インターフェースモジュール206に関して下記に説明されるように、インターフェースモジュール206は、単一の写真アプリケーションの内部で複数の第3者のクラウドストレージプロバイダ108からのユーザの写真へのアクセスをユーザに提供すること、単一の個人的な財務管理アプリケーションおよび/もしくはオンライン銀行取引アプリケーションの内部でユーザの個人的な財務情報へのアクセスをユーザに提供すること、単一のソーシャルネットワーキングアプリケーションの内部で複数のソーシャルネットワークからの投稿へのアクセスをユーザに提供すること、または同様のことを行ってよい。
【0064】
[0073]一定の実施形態において、直接アクセスモジュール204は、1つまたは複数の第3者のサービスプロバイダ108からのダウンロードされたおよび/または集約されたデータを非従属的に格納してよい。例えば、直接アクセスモジュール204は、ユーザのハードウェアデバイス102、ユーザによってアクセス可能なバックエンドサーバ110、または同様のものに、ユーザのダウンロードされたおよび/または集約されたデータを格納してよい。一定の実施形態において、この手法で、たとえ第3者のサービスプロバイダ108が閉鎖しているか、もしくは利用可能でなくても、ユーザのデータを制御することおよび/もしくはユーザのデータにアクセスすること、またはたとえ第3者のサービスプロバイダ108によって使用がサポートされていなくても、ユーザよって望まれるあらゆる手法でユーザのデータを使用すること、または同様のことを、ユーザは行ってよい。
【0065】
[0074]1つの実施形態において、1つまたは複数の第3者のサービスプロバイダ108からデータをダウンロードすることに加えておよび/またはこの代わりに、直接アクセスモジュール204は、ユーザ入力または同様のものに応答して、1つまたは複数の第3者のサービスプロバイダ108の1つまたは複数の環境にデータをアップロードし、および/または環境を変更してよい。例えば、データが写真を含む実施形態において、直接アクセスモジュール204は、ユーザのハードウェアデバイス102から1つまたは複数の第3者のサービスプロバイダ110に、写真(例えば、ハードウェアデバイス102または同様のものでユーザが編集したダウンロードされた写真)をアップロードしてよい。データがソーシャルメディアの投稿または他のコンテンツを含む実施形態において、直接アクセスモジュール204は、ユーザからの入力(例えば、写真、テキストの投稿、1つもしくは複数の絵文字、ビデオ、ドキュメントもしくは他のファイル、または同様のもの)を受信し、1つまたは複数の第3者のサービスプロバイダ108(例えば、ソーシャルメディアサイトまたは同様のもの)に受信された入力をアップロードしてよい。データが金融取引または他の金融のデータを含む実施形態において、直接アクセスモジュール204は、請求書の支払いもしくは他の支払いもしくは資金移動をスケジュールすること、(例えば、小切手の前面および/もしくは裏面の写真をアップロードすること、または同様のことを行うことによって)小切手をリモートに預金すること、ならびに/あるいは別のアクションを実施することを行ってよい。
【0066】
[0075]直接アクセスモジュール204は、アカウントタイプもしくは計画、クレジットカードもしくはアカウントと関連付けられた他の支払情報、アカウントと関連付けられた電話番号もしくは住所もしくは他の連絡先情報、アカウントのパスワードもしくは他の電子認証情報、および/または第3者のサービスプロバイダ108に対するユーザの他のアカウント情報などの、第3者のサービスプロバイダ108に関するユーザのアカウント情報を更新または変更してよい。直接アクセスモジュール204は、(例えば、第3者のサービスプロバイダ108に対するユーザの電子認証情報を決定すること、第3者のサービスプロバイダ108のサーバ108にアクセスすること、第3者のサービスプロバイダ108にデータをアップロードおよび/もしくは提供すること、または同様のことを行う、)データをダウンロードするために本明細書で説明される手法に実質的に類似の手法で、データを更新および/またはアップロードしてよい。
【0067】
[0076]1つの実施形態において、インターフェースモジュール206は、(例えば、異なるユーザのハードウェアデバイス102によって、ユーザの1つのハードウェアデバイス102から同じユーザの別のハードウェアデバイス102に、データがダウンロードさ
れることに応答して)ダウンロードデータと関連付けられたユーザのハードウェアデバイス102、またはデータがダウンロードされた第3者のサービスプロバイダ108に加入していない(例えば、第3者のサービスプロバイダ108によって所有されていない、運用されていない、制御されていない、もしくは同様の状態にある)リモートサーバ110もしくは他のリモートデバイス102、または同様のものなどの別のエンティティに、ユーザの(例えば、ダウンロードデータと関連付けられたユーザの、異なるユーザの)ハードウェアデバイス102から、直接アクセスモジュール204によってダウンロードされたユーザのデータを提供する。例えば、ユーザのハードウェアデバイス102、バックエンド集約モジュール104b、バックエンドサーバ110、異なる第3者のサービスプロバイダ108、ユーザの異なる/第2のハードウェアデバイス102、または同様のものに、ユーザのダウンロードされたおよび/または集約されたデータを提供するために、インターフェースモジュール206はAPIまたは他のインターフェースを提供してよい。
【0068】
[0077]一定の実施形態において、どのハードウェアデバイス102、110がユーザと関連付けられたデータをダウンロードしたかは、(例えば、明らかでない)ユーザに対して明白および/または実質的に明白であってよい。例えば、インターフェースモジュール206は、ユーザの1つのハードウェアデバイス102からユーザの別のハードウェアデバイス102に、またはユーザのハードウェアデバイス102から(例えば、ウェブブラウザ、アプリケーション、もしくは同様のものを使用して、ユーザがデータにアクセスすることがある)バックエンドサーバ110に、またはバックエンドサーバ110からユーザのハードウェアデバイス102に、または同様に、ユーザと関連付けられたダウンロードデータを提供してよく、データがダウンロードされた先の場所とは異なる場所から、ユーザがデータにアクセスするのを可能にする。
【0069】
[0078]一定の実施形態において、インターフェースモジュール206は、ユーザのハードウェアデバイス102上にグラフィカルユーザインターフェース(GUI)を提供し、(例えば、ユーザがデータを直接閲覧することを可能にすること、データに基づいて1つもしくは複数の通知および/もしくは推奨をユーザに提供すること、データに基づいて1つもしくは複数のテーブルもしくはチャートをユーザに提供すること、データに関連した1つもしくは複数の統計情報の概要もしくはデータに関連した1つもしくは複数の統計情報を提供すること、または同様のことを行い、)GUIを通じてユーザと関連付けられたダウンロードデータをユーザに提供する。様々な実施形態において、インターフェースモジュール206は、データがダウンロードされた先の同じハードウェアデバイス102から、またはデータがダウンロードされた先のハードウェアデバイス102、110とは異なるハードウェアデバイス102上で、または同様のもので、GUIをユーザに提供してよい。
【0070】
[0079]例えば、1つの実施形態において、ユーザと関連付けられたデータが写真を含む場合、インターフェースモジュール206は、写真管理インターフェース、写真編集インターフェース、または同様のものを提供してよく、ユーザは、ユーザのダウンロードされたおよび/または集約された写真を閲覧しおよび/またはそうでなければこれらにアクセスしてよい。さらなる実施形態において、ユーザと関連付けられたデータが、ユーザの金融取引履歴(例えば、銀行、信用組合、金貸し、または同様のものなどの、1つまたは複数の金融機関108からダウンロードされた購入品および/または他の金融取引)を含む場合、インターフェースモジュール206は、取引のリスト、1つもしくは複数の予算、1つもしくは複数の財政目標、負債管理インターフェース、純資産インターフェース、ならびに/あるいはユーザのダウンロードされたおよび/もしくは集約された金融取引履歴、および/またはそれらに基づくアラートもしくは推奨を、ユーザが閲覧し得る別の個人的な財務管理インターフェースを、個人的な財務管理インターフェースに提供してよい。別の実施形態において、ユーザと関連付けられたデータがソーシャルメディアの投稿を含む場合、インターフェースモジュール206は、(例えば、複数のソーシャルネットワーク108から、ユーザの異なる連絡先または友人から、または同様のものからの、ダウンロードされたおよび/または集約されたソーシャルメディアの投稿を)ユーザが閲覧するために、ストリーム、フィード、および/またはソーシャルメディアの投稿のウォールを含むGUIをユーザに提供してよい。
【0071】
[0080]一定の実施形態において、インターフェースモジュール206は、1つまたは複数のアクセス制御をユーザに提供してよく、どのデバイス102、ユーザ、第3者のサービスプロバイダ110、または同様のものが、どのデータにアクセスしてよいかを、ユーザが規定するのを可能にする。例えば、インターフェースモジュール206は、一定のモバイルアプリケーション、第3者のサービスのための一定のAPI、一定のプラグインもしくは拡張、一定のユーザ、一定のハードウェアデバイス102、ならびに/あるいは(例えば、第3者のサービスプロバイダ108もしくは他のデータソースによる、データタイプによる、アクセスをリクエストするエンティティによる、および/または別の粒度でのアクセス制御によって)1つまたは複数の第3者のサービスプロバイダ108からユーザのためにダウンロードされたデータにアクセスするための1つまたは複数の他のエンティティを、許容および/または制約するためにインターフェースをユーザに提供してよい。この手法で、一定の実施形態において、集約モジュール104は、1つまたは複数の他のデバイス102および/またはサービスが、ユーザの許可によってアクセスおよび使用してよい、集約されたデータのローカルリポジトリを含んでよい。
【0072】
[0081]
図3は、集約モジュール104の別の実施形態を描写する。描写された実施形態において、集約モジュール104は、認証モジュール202、直接アクセスモジュール204、およびインターフェースモジュール206を含み、ルートモジュール314、頻度モジュール316、およびテストモジュール318をさらに含む。描写された実施形態において、認証モジュール202は、ローカル認証モジュール302、ネットワーク認証モジュール304、およびパスワードマネージャモジュール306を含む。描写された実施形態において、直接アクセスモジュール204は、パターンモジュール308、アクセス修復モジュール310、および階層モジュール312を含む。
【0073】
[0082]1つの実施形態において、ローカル認証モジュール302は、ダウンロードデータ、格納されたパスワード、ならびに/あるいはユーザのハードウェアデバイス102に伝達されたおよび/もしくはユーザのハードウェアデバイス102から伝達されたユーザのハードウェアデバイス102上の他のデータ、または同様のものへのユーザのアクセスをセキュアにしおよび/または認証する。例えば、ローカル認証モジュール302は、PIN、パスワード、指紋認証、顔認識、またはハードウェアデバイス102にアクセスするためにユーザによって使用される他の電子認証情報などの、ユーザのハードウェアデバイス102の1つまたは複数のセキュリティおよび/または認証システムと協働してよい。さらなる実施形態において、ローカル認証モジュール302は、ダウンロードされた/集約されたデータおよび/またはアラートもしくは他のメッセージへのユーザアクセスを、インターフェースモジュール206が提供するのを許容する前に、ユーザを認証してよい。例えば、ローカル認証モジュール302は、集約モジュール104と関連付けられた、ユーザの電子認証情報を管理し、および/またはアクセスしてよく、集約モジュール104のアプリケーションおよび/またはサービスにユーザがアクセスするのに応答してユーザを認証してよい。
【0074】
[0083]一定の実施形態において、ローカル認証モジュール302は、異なるユーザと関連付けられた電子認証情報および/またはダウンロードデータを、ユーザのハードウェアデバイス102上で暗号化および/またはそうでなければセキュアにしてよく、その結果、異なるユーザと関連付けられたデータにユーザがアクセスすることはなく、一旦、異なるユーザのハードウェアデバイス102、バックエンドサーバ110、または同様のものにデータが伝送されると、異なるユーザはデータにアクセスしてよい。異なるハードウェアデバイス102、110のローカル認証モジュール302は、1つのハードウェアデバイス102、110から別のハードウェアデバイス102、110に、データ(例えば、1つもしくは複数の電子認証情報、ダウンロードデータ、または同様のもの)をデータネットワーク106でセキュアに伝達するために協働してよい。さらなる実施形態において、ローカル認証モジュール302は、ユーザの電子認証情報および/またはダウンロードデータが、単一のハードウェアデバイス102上に残っていて(例えば、データネットワーク106上で伝送されておらず)セキュアなリポジトリまたは同様のものにあること、ならびにバックエンドサーバ110、別のユーザのハードウェアデバイス102、または同様のものに格納されておらずおよび/またはこれらにアクセス可能ではないことを保証してよい。
【0075】
[0084]1つの実施形態において、ネットワーク認証モジュール304は、ユーザのハードウェアデバイス102、バックエンドサーバ110、または同様のもので、1つまたは複数の第3者のサービスプロバイダ108に対するユーザの電子認証情報を受信および/または格納する。様々な実施形態において、ネットワーク認証モジュール304は、ユーザ、ユーザのハードウェアデバイス102、バックエンドサーバ110、または同様のものから、ユーザの電子認証情報を受信してよい。ネットワーク認証モジュール304は、直接アクセスモジュール204と協働して、ユーザの電子認証情報を第3者のサービスプロバイダ108のサーバ108に提供してよい(例えば、ネットワーク認証モジュール304は、サーバ108に提供するために、電子認証情報を直接アクセスモジュール204に提供してよい、ネットワーク認証モジュール304は、電子認証情報をサーバ108に直接提供してよい、または同様のもの)。
【0076】
[0085]一定の実施形態において、ネットワーク認証モジュール304は、第3者のサービスプロバイダ108のサーバ108、または同様のものに提供されている間、ローカル認証モジュール302と協働して、ユーザのハードウェアデバイス102上で、データネットワーク106上で、異なるユーザのハードウェアデバイス102上で、バックエンドサーバ110上で、1つまたは複数の第3者のサービスプロバイダ108に対するユーザの電子認証情報を暗号化および/またはそうでなければセキュアにしてよい。さらなる実施形態において、ネットワーク認証モジュール304は、ユーザの電子認証情報が、ユーザのハードウェアデバイス102に格納され、ユーザのハードウェアデバイス102から第3者のサービスプロバイダ108のサーバ108に送信されるだけであること、およびバックエンドサーバ110、異なるユーザのハードウェアデバイス102、または同様のものに、ユーザの電子認証情報を格納しないことを保証する。別の実施形態において、ネットワーク認証モジュール304は、バックエンドサーバ110、異なるユーザのハードウェアデバイス102、または同様のものに、第3者のサービスプロバイダ108に対するユーザの電子認証情報を(例えば、セキュア暗号化を使用して)セキュアに格納してよく、その結果、ルートモジュール314に関して下記に説明されるように、たとえユーザのハードウェアデバイス102が利用不可能である、ブロックされている、または同様の状態であっても、直接アクセスモジュール204は、ユーザと関連付けられたデータにアクセスし、および/またはダウンロードしてよい。一定の実施形態において、異なるユーザのハードウェアデバイス102、バックエンドサーバ110、または同様のものに、電子認証情報が送信されることおよび/またはこれらよって格納されることを、ネットワーク認証モジュール304および/またはローカル認証モジュール302が許容するかどうかは、ユーザ入力に基づいて規定される環境に基づいてよく、その結果、ユーザは、セキュリティのレベル、または同様のものを判定してよい。
【0077】
[0086]1つの実施形態において、パスワードマネージャモジュール306は、複数の第
3者のサービスプロバイダ108に対するユーザの電子認証情報を管理および/または格納してよく、その結果、直接アクセスモジュール204は、複数の第3者のサービスプロバイダ108のそれぞれからユーザと関連付けられたデータに、アクセスしおよび/またはダウンロードしてよい。一定の実施形態において、パスワードマネージャモジュール306は、複数の第3者のサービスプロバイダ108のそれぞれに対する異なるセキュアな認証情報を、生成および/またはそうでなければ管理してよい。
【0078】
[0087]1つの実施形態において、パスワードマネージャモジュール306は、ユーザのハードウェアデバイス102上にユーザの生成された認証情報をセキュアに格納してよく、その結果、ユーザは、生成された電子認証情報を覚えて、エンターする必要はない。例えば、生成された電子認証情報を使用して、直接アクセスモジュール204が第3者のサービスプロバイダ108にアクセスすることを許容することに加えて、パスワードマネージャモジュール306は、電子認証情報をユーザが手動でエンターすることなく、ウェブブラウザ内のウェブページまたは同様のものをユーザが訪れるのに応答して、ウェブページ上のフォームの1つまたは複数のインターフェースエレメントに、ユーザの電子認証情報(例えば、ユーザ名、パスワード)を自動的にポピュレートしてよい。一定の実施形態において、パスワードマネージャモジュール306は、ユーザリクエストに応答して、第3者のサービスプロバイダ108からのリクエストに応答して、および/または別の時間周期で、もしくは別の周期的なトリガに応答して、毎週、毎月、2か月毎、3か月毎、4か月毎、5か月毎、6か月毎、毎年、2年毎など、ユーザの電子認証情報を周期的に更新してよい(例えば、異なるパスワードなどの異なる認証情報を再生成し、第3者のサービスプロバイダ108に関するユーザのアカウントを、再生成された異なる認証情報で更新してよい)。
【0079】
[0088]1つの実施形態において、パスワードマネージャモジュール306は、ユーザの異なるハードウェアデバイス102、ウェブブラウザ、または同様のものを跨って、(例えば、ユーザによって提供された、パスワードマネージャモジュール306によって生成された、または同様のものによる)ユーザの電子認証情報を同期してよい。例えば、パスワードマネージャモジュール306に応答して、および/またはユーザが電子認証情報を更新またはそうでなければ変更させることに応答して、パスワードマネージャモジュール306は、1つもしくは複数の他のパスワードマネージャモジュール306に、ユーザの異なるハードウェアデバイス102上に、または同様のものに、更新/変更を伝播させてよい。
【0080】
[0089]1つの実施形態において、パターンモジュール308は、(例えば、ユーザのデータが格納されるおよび/もしくはアクセス可能なところ以外の場所を含み得る)サーバに、直接アクセスモジュール204がアクセスするための、第3者のサービスプロバイダ108の1つもしくは複数のサーバ108の複数の場所の順序付きリスト(例えば、パターン、スクリプト、もしくは同様のもの)、ならびに/またはサーバ108上の場所にアクセスする間に、直接アクセスモジュール204が待機するための1つもしくは複数の遅延、ならびに/またはサーバのデータにアクセスするためのアクセスパターンの他の構成要素を決定する。一定の実施形態において、場所は、ウェブページ、ウェブページの一部、画像もしくは他のデータファイル、データベースもしくは他のデータストア、モバイルアプリケーションのページもしくはセクション、または同様のものなどの、第3者のサービスプロバイダ108の1つもしくは複数のサーバ、または同様のものによって提供される、対処可能なおよび/またはアクセス可能な、コンテンツおよび/または資産を非従属的に含む。1つの実施形態において、パターンモジュール308は、所望のデータをダウンロードするために、直接アクセスモジュール204がアクセスまたは使用する必要がない1つまたは複数の場所および/または遅延を収めるパターン/順序付きリストを決定するが、その代わり、パターン/順序付きリストは、第3者のサービスプロバイダ108のサーバにアクセスする直接アクセスモジュール204と、第3者のサービスプロバイダのサーバにアクセスするユーザを、第3者のサービスプロバイダ108が区別するのを、困難または不可能にすることがある。
【0081】
[0090]1つの実施形態において、パターンモジュール308は、ウェブブラウザ、モバイルアプリケーション、または同様のものを使用して、第3者のサービスプロバイダ108にアクセスする複数のユーザの行動の中でまたは行動に基づいて識別された平均パターンまたは組み合わされたパターンに基づいて、複数の場所および/または1つもしくは複数の遅延(例えば、パターン/順序付きリスト)を、決定および/または選択してよい。1つの実施形態において、パターンモジュール308は、1人または複数のユーザが第3者のサービスプロバイダ108のサーバにアクセスするときに、(例えば、所定の時間帯または同様のものの間、)1人または複数のユーザを監視してよく、どのリンク、データ、ウェブページ、および/もしくは他の場所を1人もしくは複数のユーザがアクセスするか、どの程度長く1人もしくは複数のユーザが異なる場所にアクセスするか、1人もしくは複数のユーザが場所をアクセスする順序、または同様のものを追跡する。一定の実施形態において、1人または複数の監視されるユーザは、第3者のサービスプロバイダ108のサーバにアクセスするのに使用するために、より現実的なアクセスパターンを直接アクセスモジュール204に提供するために、ユーザのアクセスを一時的にまたは永久に監視する権限をパターンモジュール308に提供したボランティアであってよい。
【0082】
[0091]さらなる実施形態において、パターンモジュール308は、ウェブブラウザ、モバイルアプリケーションもしくはデスクトップアプリケーション、またはユーザのハードウェアデバイス102の他のインターフェースを使用して第3者のサービスにアクセスする、パターンモジュール308が据え付けられたハードウェアデバイス102と関連付けられたユーザの行動の中で識別されたパターンに基づいて、複数の場所および/または異なる場所にアクセスする間の1つまたは複数の遅延を決定および/または選択する。例えば、パターンモジュール308は、ユーザのハードウェアデバイス102のネットワークハードウェア(例えば、データおよび/または第3者のサービスプロバイダ108のサーバとの対話を監視するために、データネットワーク106と通信状態にある、ネットワークアクセスカードおよび/もしくはチップ、プロセッサ、FPGA、ASIC、または同様のもの)、ウェブブラウザのプラグインまたは拡張、ユーザのハードウェアデバイス102のプロセッサ上で実行させるモバイルアプリケーションおよび/またはデスクトップアプリケーション、あるいは同様のものを含んでよい。ユーザのハードウェアデバイス102から、1つまたは複数の第3者のサービスプロバイダ108の1つまたは複数のサーバに関してユーザの活動を監視するために、パターンモジュール308は、ユーザから権限をリクエストおよび受信してよい。
【0083】
[0092]一定の実施形態において、パターンモジュール308は、1人または複数のユーザまたは同様のもののアクセスパターンの検出された変更に基づいて、パターン/順序付きリストを時とともに更新してよい。1つの実施形態において、パターンモジュール308は、下記に説明されるアクセス修復モジュール310と協調および/または協働して、第3者のサービスプロバイダ108のサーバ108および/またはユーザと関連付けられたデータが、壊れた状態になるおよび/またはアクセス不能になることに応答して、パターン/順序付きリストを更新してよい。
【0084】
[0093]1つの実施形態において、アクセス修復モジュール310は、第3者のサービス108のサーバ108および/またはユーザと関連付けられたデータへのアクセスが、壊れているおよび/またはアクセス不能になることを検出する。一定の実施形態において、アクセス修復モジュール310は、インターフェースをユーザに提供し、ユーザの電子認証情報の入力場所、ユーザと関連付けられたデータの場所、または同様のものを、ユーザ
がグラフィカルに識別することを可能にする。例えば、アクセス修復モジュール310は、GUI、コマンドラインインターフェース(CLI)、API、および/もしくは電子認証情報の入力場所、電子認証情報をサブミットするためのアクション、データの場所、または同様のものを、エンドユーザが識別することを可能にする別のインターフェースを提供してよい。1つの実施形態において、アクセス修復モジュール310は、ユーザのハードウェアデバイス102上でユーザにインターフェースを提供する。
【0085】
[0094]例えば、一定の実施形態において、アクセス修復モジュール310は、
図5A~
図5Bに関して以下により詳細に説明されるように、ユーザのハードウェアデバイス102の電子ディスプレイ画面上の、第3者のサービスプロバイダ108のウェブサイトの1つまたは複数のページにインターフェースを被せてよい。アクセス修復モジュール310は、1つまたは複数のインターフェース(例えば、GUI、CLI、API、オーバレイ、または同様のもの)を複数のユーザに提供してよく、(例えば、分散されたおよび/または非集中化された手法で、異なるハードウェアデバイス102または同様のものから、ネットワーク106で)第3者のサービスプロバイダ108のサーバへのアクセスに対する修復および/または更新を、複数のユーザが規定することを可能にする。
【0086】
[0095]一定の実施形態において、アクセス修復モジュール310は、(例えば、基本的なインターフェース、標準的なインターフェース、冒頭のユーザインターフェース、または同様のものにおいて)確認または変更/訂正のどちらかをユーザが行ってよい、ユーザに対する1つまたは複数の候補504および/または推奨504を、決定および/または表示してよい。例えば、アクセス修復モジュール310は、ユーザがユーザ名をエンターする示唆された場所、ユーザがパスワードをエンターする示唆された場所、示唆された認証情報サブミットアクション、ユーザと関連付けられたデータの示唆された場所を伴う1つもしくは複数のインターフェースエレメント、および/または第3者のサービスプロバイダ108のウェブサイトの内部の1つもしくは複数の場所を、ユーザがグラフィカルに識別することを可能にする1つまたは複数の他のインターフェースエレメントを表示してよい。
【0087】
[0096]一定の実施形態において、アクセス修復モジュール310は、サーバ108の1つまたは複数のページおよび/またはサーバ108上の他の場所(例えば、1つもしくは複数のウェブサイト、ウェブアプリ、または同様のもの)を処理し、ユーザの電子認証情報の入力場所、ユーザの電子認証情報をサブミットするためのアクション、ユーザと関連付けられたデータの場所、または同様のものの推定および/または予測を決定する。1つの実施形態において、アクセス修復モジュール310は、(例えば、ウェブサイトの1つもしくは複数のページにアクセスする他のユーザからの入力に基づいて、ウェブサイトの1つもしくは複数のページとのユーザの以前の対話、ウェブサイトの機械学習および/もしくは人工知能分析を使用してなされた予測に基づいて、ウェブサイトのおよび/または1つもしくは複数の類似のウェブサイトの1つまたは複数のページに対する履歴上の変更の統計的解析に基づいて、あるいは同様のものに基づいて、ウェブサイトの1つまたは複数のページをスキャンすることおよび/または解析することによって)1つまたは複数の場所および/またはアクションを推定してよい。アクセス修復モジュール310は、インターフェースを使用して推定および/または予測が正しいかどうかをユーザが確認できるように、ユーザの電子認証情報の入力場所、ユーザと関連付けられたデータの場所、または同様のものの、推定および/または予測をインターフェース内でユーザに表示してよい。
【0088】
[0097]アクセス修復モジュール310は、場所への矢印もしくは他のポインタで、場所のリンクもしくは他の識別子で、ボックスもしくは場所周辺の他の強調で、テキストを太字、イタリック体、および/もしくは下線付きにして場所に対するテキストのラベル付け
を変えることによって、または同様のもので、1つまたは複数の推定される場所および/またはアクションを示してよい。一定の実施形態において、ユーザは、場所をクリック、選択、またはそうでなければ識別して、アクセス修復モジュール310によって示唆された場所を確認または変更/訂正のどちらかを行ってよい。例えば、ユーザは、場所および/またはアクションと関連付けられたインターフェースエレメントをクリックまたはそうでなければ選択することがあり、ならびに場所をクリックもしくはそうでなければ選択し、および/またはアクションを実施することがあり、これらをアクセス修復モジュール310は、(例えば、異なるユーザのために、場所および/またはアクションを識別するテキストフィールドを自動的にポピュレートすること、ユーザなしにアクションが自動的に繰り返されるのを可能にするマクロを記録すること、または同様のことを行って)記録してよい。
【0089】
[0098]一定の実施形態において、標準的な、基本的な、または冒頭のユーザインターフェースの代わりにまたはこれらに加えて、アクセス修復モジュール310は、ウェブサイトのソースコードおよび/またはウェブサイトの他の詳細を伴う先進的なインターフェースを、熟練したユーザまたは同様のものに提供してよい。例えば、1つの実施形態において、先進的なアクセス修復インターフェースは、ウェブサイト自体の中の、可視でなくおよび/または容易に明らかでない、ウェブサイトのソースコードの内部で1つまたは複数の場所および/またはアクションを、1つまたは複数の先進的なユーザが識別することを可能にしてよい。一定の実施形態において、アクセス修復モジュール310は、標準的なユーザインターフェースまたはビューか、先進的なユーザインターフェースまたはビューかを、ユーザが選択することおよび/または切り替えることを可能にするユーザインターフェースエレメントを提供してよい。
【0090】
[0099]1つの実施形態において、テストモジュール318は、アクセス修復モジュール310と協働して、ユーザからの1つまたは複数の受信された場所および/または命令が正確であるかどうか(例えば、第3者のサービスプロバイダ108のサーバからデータにアクセスするのに使用できるかどうか)を照合する。一定の実施形態において、テストモジュール318は、異なるユーザまたは同様のものの電子認証情報を使用して、アクセス修復モジュール310が単一のユーザから受信した識別に基づいて、複数の異なるユーザ(例えば、サンプルグループまたはテストセット)に対して、第3者のサービスプロバイダ108のサーバ108にアクセスしようと試みる。
【0091】
[0100]一定の実施形態において、テストモジュール318は、単一のユーザからの識別を使用して異なるユーザ(例えば、サンプルグループまたはテストセット)と関連付けられたデータが、アクセス可能であるかどうかを決定する。アクセス修復モジュール310が(例えば、異なるハードウェアデバイス102上で)異なるユーザから受信した(および、データネットワーク106で単一のハードウェアデバイス102上のテストモジュール318に送信された、データネットワーク106で異なるハードウェアデバイス102上の複数のテストモジュール318に送信された、中心のバックエンドサーバ110上のテストモジュール318に送信された、または同様のものの)識別を使用して、テストモジュール318は、第3者のサービスプロバイダ108からのデータに繰り返しアクセスしようと試みることがある。
【0092】
[0101]1つの実施形態において、テストモジュール318は、単一のユーザからの識別を使用してデータがアクセス可能である、かなりの量の異なるユーザ(例えば、サンプルグループまたはテストセット)が閾値を満足することに応答して、第3者のサービスプロバイダ108のサーバ108にアクセスするために、ユーザからの1つまたは複数の識別を直接アクセスモジュール204の他のインスタンス(例えば、他のテストモジュール318)に提供する。例えば、事前定義された数の他のテストユーザ(例えば、2ユーザ、10ユーザ、100ユーザ、1000ユーザ、テストユーザの50%、テストユーザの75%、および/または別の事前定義された閾値の数のテストユーザ)が第3者のサービスプロバイダ108からテストユーザのデータにアクセスすることを、単一のユーザからの識別が正常に可能にする場合、テストモジュール318は、より多くのユーザ(例えば、すべての、もしくは実質的にすべてのユーザ、または同様のもの)に対する識別に基づいて、命令を提供してよい。
【0093】
[0102]一定の実施形態において、テストモジュール318は、単一のユーザからの識別を使用して、第3者のサービスプロバイダ108からユーザのデータにアクセスするための命令を、テストモジュール318が提供する多くのユーザを含むテストサイズを連続的に増加させてよい(例えば、1つまたは複数のテストユーザで開始し、2以上、3以上、4以上、5以上、10以上、20以上、30以上、40以上、50以上、100以上、500以上、1000以上、5000以上、10000以上、100000以上、1000000以上、および/または他の連続的に増加する数のテストユーザに増加させる)。1つの実施形態において、テストモジュール318は、階層モジュール312に関して下記でより詳細に説明されるように、第3者のサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付きリスト内の単一のユーザからの識別に基づく命令を含む。
【0094】
[0103]一定の実施形態において、テストモジュール318は、1人または複数のユーザの1つまたは複数の信頼ファクタ(例えば、採点または同様のもの)に基づいて、1人または複数のユーザからの識別に優先順位をつけるように構成される。1つの実施形態において、信頼ファクタは、ユーザの識別が正しいという可能性を示す採点または他のメタデータを含んでよい。例えば、様々な実施形態において、信頼ファクタは、(例えば、正しいもしくは正しくない)ユーザの以前の識別の履歴、1つもしくは複数の集約モジュール104のプロバイダ(例えば、製作者、ベンダ、所有者、売り手、転売人、製造業者、バックエンドサーバ110、もしくは同様のもの)へのユーザの加入、他のユーザからの肯定的な指標および/もしくは否定的な指標(例えば、投票、いいね!、使用、フィードバック、星、支持、もしくは同様のもの)、ならびに/またはユーザの識別が正しいと思われるかどうかの他の指標の1つまたは複数を含んでよくおよび/またはこれらに基づいてよい。テストモジュール318は、ユーザと関連付けられた1つまたは複数の信頼ファクタに基づいて、ユーザの識別をどれだけの他のユーザに提供するかを決定してよい(例えば、より高い信頼ファクタに応じて、ユーザの識別が他のユーザに提供される割合を上げること、より低い信頼ファクタに応じて、ユーザの識別が他のユーザに提供される割合を下げること、または同様のことを行う)。
【0095】
[0104]テストモジュール318は、オーバーライドインターフェースを提供し、アドミニストレータ、モデレータユーザ、または同様のものが、識別を削除すること、識別を調節および/もしくはオーバーライドすること、ユーザの信頼ファクタを調節および/もしくはオーバーライドすること、ユーザが識別を提供するのを禁止すること、ならびに/またはそうでなければユーザもしくはユーザの識別をオーバーライドすることを可能にする。様々な実施形態において、テストモジュール318は、アドミニストレータおよび/またはモデレータに、オーバーライドインターフェースをGUI、API、CLI、または同様のものとして提供してよい。
【0096】
[0105]一定の実施形態において、テストモジュール318は、最も効果的なソリューション、または同様のもの(例えば、1人または複数のユーザからの指示に基づく命令のセット)をテストし、使用するように、1つまたは複数の集約モジュール104およびこれらの集約サービスに、自己解決、自己テスト、および/または漸増的に自己配置することを行わせる。
【0097】
[0106]1つの実施形態において、階層モジュール312は、ユーザと関連付けられたデータ、または同様のものをダウンロードするために、ユーザの電子認証情報を使用して第3者のサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付きリストを、直接アクセスモジュール204に提供する。一定の実施形態において、命令のそれぞれの異なるセットは、ユーザの電子認証情報をエンターする場所、ユーザの電子認証情報をサブミットするための命令、ユーザと関連付けられたデータの1つもしくは複数の場所、または同様のものを含む。
【0098】
[0107]1つの実施形態において、階層モジュール312は、バックエンドサーバ110(例えば、バックエンドサーバ110のバックエンド集約モジュール104b)から、ピアツーピアの手法で別のユーザハードウェアデバイス102(例えば、ユーザハードウェアデバイス102の集約モジュール104a)から、テストモジュール318から、または同様のものから、命令の1つまたは複数のセットを受信してよい。一定の実施形態において、階層モジュール312は、異なるユーザハードウェアデバイス102および/もしくはユーザによる命令の異なるセットの成功および/もしくは不成功の使用の履歴、または同様のものに基づいて、順序付きリスト(例えば、グローバルな階層順)に既にある命令の複数の異なるセットを受信してよい。1つの実施形態において、階層モジュール312は、(例えば、ユーザの1つまたは複数のハードウェアデバイス102からの)ユーザによる命令の異なるセットの成功および/または不成功の使用の履歴に基づいて、単一のユーザに対する命令の複数の異なるセットから、順序付きリストの階層(例えば、カスタムのまたは特色のある階層)を決定しおよび/または順序付きリスト作成してよい。
【0099】
[0108]1つの実施形態において、直接アクセスモジュール104は、命令のセットの1つが成功であり、直接アクセスモジュール104が第3者のサービスプロバイダ108からデータにアクセスし、および/またはダウンロードできるまで、第3者のサービスプロバイダ108のサーバ108にアクセスするための命令の複数のセットの順序付きリストを通じて、リストの順序で反復してよい。1つの実施形態において、階層モジュール312は、命令の最近正常に使用されたセットを(例えば、試行すべき第1のセットとして)最上位に置いてよい。例えば、直接アクセスモジュール204が、命令のセットを使用して第3者のサービスプロバイダ108からデータに正常にアクセスし、および/またはダウンロードすることに応答して、ユーザのハードウェアデバイス102の階層モジュール312は、(例えば、時とともにリストの順序を調節して)第3者のサービスプロバイダ108にアクセスするための命令のセットをリストの最上位に置いてよい。一定の実施形態において、階層モジュール312は、第3者のサービスプロバイダ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付きリストを、第1の順序(例えば、グローバルな順序)で受信してよく、(例えば、ユーザ/ハードウェアデバイス102に対して、命令のセットを使用するアクセスが成功である場合、リスト内で命令のセットを上に移動させること、ユーザ/ハードウェアデバイス102に対して、命令のセットを使用するアクセスが不成功である場合、リスト内で命令のセットを下に移動させること、または同様のことを行って)単一のユーザの/ハードウェアデバイス102の使用に基づいて、命令の異なるセットを時とともに動的に調節および/または再配列してよい。
【0100】
[0109]一定の実施形態において、階層モジュール312は、(例えば、ピアツーピアの手法で他のユーザのハードウェアデバイス102に対して直接的に、バックエンドサーバ110のバックエンド集約モジュール104bで間接的に、または同様のもので)データネットワーク106で、別のユーザのハードウェアデバイス102の階層モジュール312によって、命令の1つまたは複数のセット、命令の複数のセットの順序付きリスト、または同様のものを共有するように構成されてよい。様々な実施形態において、異なるアカウントタイプ、異なるアカウント設定、異なる発信システム(例えば、企業買収もしくは同様のもののために、同じ第3者のサービスプロバイダ108の異なるユーザは、1つもしくは複数の異なる設定、異なるアクセス方法、もしくは同様のものを有することがある)、システム変更もしくはアップグレード、および/または同じ第3者のサービスプロバイダ108の異なるユーザのアカウント、サービス、もしくは同様のものにおける別の相違のために、命令の異なるセットは、異なるユーザに対して成功または不成功であってよい。
【0101】
[0110]1つの実施形態において、ルートモジュール314は、第3者のサービスプロバイダ108のサーバ108から、ユーザと関連付けられたデータをダウンロードするために、ユーザのハードウェアデバイス102が直接アクセスモジュール204に対して利用可能であるかどうかを決定する。一定の実施形態において、ユーザのハードウェアデバイス102が利用不可能であることをルートモジュール314が決定することに応答して、ルートモジュール314は、ユーザの電子認証情報を使用してリモートバックエンドサーバ110から第3者のサービスプロバイダ108のサーバ108にアクセスし、サーバ108からリモートバックエンドサーバ110にユーザと関連付けられたデータをダウンロードしてよい。1つの実施形態において、ルートモジュール314は、リモートバックエンドサーバ110にダウンロードされたユーザと関連付けられたデータに基づいて、ユーザのハードウェアデバイス102上で、1つまたは複数のアラート(例えば、第3者のサービスプロバイダ108からのダウンロードデータ、第3者のサービスプロバイダ108からのデータに基づいて決定された推奨もしくは候補、第3者のサービスプロバイダ108からのデータ内で検出されたイベントもしくは他のトリガに基づく通知もしくは他のアラート、または同様のもの)をユーザに提供する。
【0102】
[0111]一定の実施形態において、ルートモジュール314は、単一のユーザおよび/またはアカウントと関連付けられた複数のハードウェアデバイス102のリストを維持および/または格納する。ユーザおよび/またはアカウントと関連付けられた1つのハードウェアデバイス102が利用不可能(例えば、電源が切られている、機内モード、データネットワーク106に接続されていない、または同様の状態)であることを決定することに応答して、ルートモジュール314は、ユーザおよび/またはアカウントの異なる利用可能なハードウェアデバイス102から、第3者のサービスプロバイダ108のサーバ108にアクセスすること、異なる利用可能なハードウェアデバイス102上で1つもしくは複数の通知もしくは他のアラートを提供すること、または同様のことを行ってよい。様々な実施形態において、
図4A~
図4Cに関して下記に説明されるように、ルートモジュール314は、ユーザの1つもしくは複数のハードウェアデバイス102、異なるユーザの1つもしくは複数のハードウェアデバイス102、1つもしくは複数のバックエンドサーバ110、および/または別のハードウェアデバイスなどの複数のハードウェアデバイス間で、第3者のサービスプロバイダ108からユーザのデータをダウンロードするルートを、セキュアな手法で動的に指定してよい。
【0103】
[0112]1つの実施形態において、ルートモジュール314は、第3者のサービスプロバイダ108から同じユーザのデータを周期的にダウンロードするために、(例えば、同じユーザの、異なるユーザの、または同様のものの)複数のハードウェアデバイス102、110の間で代替または交替させてよい。例えば、データがダウンロードされる元のデバイス102、110を交替および/または代替させることは、詐欺的または不法なものとしてダウンロードすることが誤って解釈される可能性を減少させることがある。別の実施形態において、ルートモジュール314は、同じデバイス102、110(例えば、ユーザの主要なハードウェアデバイス102、バックエンドサーバ110、または同様のもの)からデータをダウンロードしてよく、同じデバイス102、110は、信頼されるデバイス、または同様のものとして、第3者のサービスプロバイダ108によって権限付与され、および/または識別されてよい。
【0104】
[0113]1つの実施形態において、頻度モジュール316は、直接アクセスモジュール204が第3者のサービスプロバイダ108のサーバ108にアクセスする頻度をセットする。一定の実施形態において、頻度モジュール316は、アクセスされる第3者のサービスプロバイダ108に加入していないことがあるリモートバックエンドサーバ110からの入力に基づいて頻度を決定し、その結果、リモートバックエンドサーバ110(例えば、リモートバックエンドサーバ110上で実行する頻度モジュール316)は、異なるユーザおよび/または異なるハードウェアデバイス102に対する複数の直接アクセスモジュール204のための頻度を決定する。例えば、頻度モジュール316は、ある時間周期内に許容された回数の閾値(例えば、10分毎に1回、30分毎に1回、1時間毎に1回、1日2回、1日3回、1日4回、または同様のもの)以上、単一のユーザおよび/またはハードウェアデバイス102が同じ第3者のサービスプロバイダ108にアクセスするのを制限してよい。一定の実施形態において、頻度モジュール316は、第3者のサービスプロバイダ108、または同様のものによる、サービスの不注意による拒否を防ぐために、アクセス頻度を制限する。
【0105】
[0114]一定の実施形態において、頻度モジュール316は、第3者のサービスプロバイダ108にユーザおよび/またはハードウェアデバイス102がアクセスしてよい頻度を、時とともに動的に調節してよい。例えば、頻度モジュール316は、複数のユーザ(例えば、すべてのユーザ、利用可能なユーザ、アクティブユーザ、または同様のもの)によるアクセスおよび/またはダウンロードを監視し、(例えば、いずれの単一の第3者のサービスプロバイダ108または同様のものも圧倒しないように)異なる第3者のサービスプロバイダ108のそれぞれに対して、トータルアクセスおよび/またはダウンロード帯域幅に、上限を定めるかまたは制限してよい。1つの実施形態において、この手法で、ユーザおよび/またはハードウェアデバイス102は、より少ない他のユーザおよび/またはハードウェアデバイス102がデータに、アクセスしおよび/またはダウンロードしているとき(例えば、低いピーク時)に、より高い頻度でデータにアクセスしおよび/またはダウンロードしてよいが、より多くの他のユーザおよび/またはハードウェアデバイス102が、データにアクセスしおよび/またはダウンロードしているとき(例えば、高いピーク時)に、より低い上限またはアクセス頻度に制限されてよい。
【0106】
[0115]さらなる実施形態において、頻度モジュール316は、ユーザからの入力に基づいて頻度を決定し、他のユーザおよび/またはバックエンドサーバ110のアクセス頻度を、ユーザが非従属的にセットすることを可能にする。頻度モジュール316は、1つまたは複数のハードウェアデバイス102を使用して、1つまたは複数の第3者のサービスプロバイダ108からデータをダウンロードするために、ユーザがアクセス頻度をセットおよび/または調節することを可能にする(例えば、異なる第3者のサービスプロバイダ108、ユーザの異なるハードウェアデバイス102、または同様のものに対して、ユーザが異なるアクセス頻度をセットすることを可能にする異なる設定を提供する)、ユーザインターフェース(例えば、GUI、CLI、API、または同様のもの)を提供してよい。
【0107】
[0116]
図4は、分散された/非集中化されたデータ集約のためのシステム400の1つの実施形態を描写する。描写された実施形態において、システム400は、集約モジュール104aを有する単一のユーザハードウェアデバイス102を含む。一定の実施形態において、集約モジュール104aの認証モジュール202は、ユーザのハードウェアデバイス102上で、電子ユーザ認証情報をローカルに格納しおよび/もしくは管理してよく、直接アクセスモジュール204は、(例えば、データネットワーク106で)ユーザのハードウェアデバイス102から1つまたは複数の第3者のサービスプロバイダ108に直接アクセスし、ユーザと関連付けられたデータをユーザのハードウェアデバイス102にダウンロードしてよく、インターフェースモジュール206は、ユーザのハードウェアデバイス102からのデータおよび/もしくはデータに基づく1つもしくは複数のアラート/メッセージをユーザに提供してよく、または同様のことを行ってよい。描写されたシステム400において、集約モジュール104aは、ユーザの認証情報、ユーザのデータ、または同様のものを、異なるユーザのハードウェアデバイス、バックエンドサーバ110、または同様のものに提供することなく、ユーザのハードウェアデバイス102上で1つまたは複数の第3者のサービスプロバイダ108からのユーザのデータのローカルリポジトリを作成してよい。
【0108】
[0117]
図4Bは、分散された/非集中化されたデータ集約のためのシステム402の1つの実施形態を描写する。描写された実施形態において、システム402は、異なるユーザと関連付けられた、集約モジュール104aを有する複数のユーザハードウェアデバイス102を含む。一定の実施形態において、第1の集約モジュール104a(例えば、第1の集約モジュール104aの認証モジュール202)は、データネットワーク106または同様のもので、第1のユーザのハードウェアデバイス102aからの第1のユーザの暗号化されたユーザ認証情報を第2の集約モジュール104a(例えば、第2の集約モジュール104aの認証モジュール202)にセキュアに提供してよく、その結果、第2の集約モジュール104aの直接アクセスモジュール204は、(例えば、データネットワーク106で)第2のユーザのハードウェアデバイス102bから1つまたは複数の第3者のサービスプロバイダ108にアクセスし、第1のユーザと関連付けられたデータをダウンロードしてよい。
【0109】
[0118]例えば、第2のユーザのハードウェアデバイス102bは、ルートモジュール314、または同様のものによって決定されるように、第1のユーザのハードウェアデバイス102aが、電源を切られている、スリープ中である、1つもしくは複数の第3者のサービスプロバイダ108にアクセスするのをブロックされている、または同様の状態であることに応答して、第1のユーザのデータをダウンロードしてよい。第2の集約モジュール104aのインターフェースモジュール206は、ダウンロードデータに基づいて、1つもしくは複数のアラート/メッセージを第1のユーザに提供してよく、および/またはダウンロードデータを第1のユーザに(例えば、第1のユーザのハードウェアデバイス102aが利用可能になるのに応答して、第1のユーザと関連付けられた異なるハードウェアデバイス102に、第1のユーザがアクセスしたバックエンドサーバ110に、もしくは同様のものに)提供してよい。上述のように、一定の実施形態において、認証モジュール202、直接アクセスモジュール204、インターフェースモジュール206、および/またはルートモジュール314は、第1のユーザのデータ(例えば、第1のユーザの電子認証情報、第1のユーザと関連付けられたダウンロードデータ、第1のユーザに対するアラート/メッセージ)を暗号化し、および/またはそうでなければセキュアにしてよく、その結果、第2のユーザが第1のユーザのデータにアクセスすることが困難または不可能になり、それによって第1のユーザのデータへの無許可アクセスを防ぎおよび/または最小化する一方、第1のユーザのデータがダウンロードされる元のデバイス102および/または場所により大きな柔軟性を提供する。
【0110】
[0119]
図4Cは、分散された/非集中化されたデータ集約のためのシステム404の1つの実施形態を描写する。描写された実施形態において、システム404は、1つまたは複数の集約モジュール104aを有する1つまたは複数のユーザハードウェアデバイス102を含み、1つまたは複数のバックエンドサーバ110は、1つまたは複数のバックエンド集約モジュール104bを含む。一定の実施形態において、集約モジュール104aの認証モジュール202は、データネットワーク106または同様のもので、バックエンドサーバ110上でバックエンド集約モジュール104b(例えば、バックエンド集約モジュール104bの認証モジュール202)に、ユーザのハードウェアデバイス102からのユーザの暗号化されたユーザ認証情報をセキュアに提供してよく、その結果、バックエンド集約モジュール104bの直接アクセスモジュール204は、(例えば、データネットワーク106で)バックエンドサーバ110から1つまたは複数の第3者のサービスプロバイダ108にアクセスし、ユーザと関連付けられたデータをダウンロードしてよい。
【0111】
[0120]例えば、バックエンドサーバ110は、ルートモジュール314または同様のものによって決定されるように、ユーザのハードウェアデバイス102aが、電源を切られている、スリープ中である、1つもしくは複数の第3者のサービスプロバイダ108にアクセスするのをブロックされている、または同様の状態であることに応答して、ユーザのデータをダウンロードしてよい。バックエンド集約モジュール104bのインターフェースモジュール206は、ダウンロードデータに基づいて、1つもしくは複数のアラート/メッセージをユーザに提供してよく、ならびに/あるいはユーザに(例えば、ユーザのハードウェアデバイス102aが利用可能になるのに応答して、第1のユーザと関連付けられた異なるハードウェアデバイス102に、ウェブページとしておよび/もしくは専用のアプリケーションを通じてバックエンドサーバ110から直接的に、または同様にして)ダウンロードデータを提供してよい。
【0112】
[0121]
図5Aは、ユーザインターフェース500の1つの実施形態を描写する。一定の実施形態において、インターフェース500は、ハードウェアデバイス102の電子ディスプレイ画面上に、アクセス修復モジュール310によってユーザに提供され、ユーザの認証情報の1つまたは複数の入力場所(例えば、ユーザ名の場所、パスワードの場所、または同様のもの)、ユーザの認証情報を送信および/またはサブミットするための方法(例えば、API仕様、サブミットボタンの場所、または同様のもの)、ユーザと関連付けられたデータの場所(例えば、URLもしくは他のリンク、リンクにおけるウェブページ上の場所、平易なテキストおよび/もしくはウェブページ506のソースコード内部のラベル、タグ、もしくは他の識別子、または同様のもの)をグラフィカルに識別すること、ならびに/あるいは第3者のサービスプロバイダ108からユーザと関連付けられたデータにアクセスするための1つまたは複数の他の命令をグラフィカルに識別することを、ユーザが行うことを可能にする。
【0113】
[0122]描写された実施形態において、アクセス修復モジュール310は、ユーザのハードウェアデバイス102の電子ディスプレイ画面上で、第3者のサービスプロバイダ108のウェブサイト506の1つまたは複数のページにインターフェース502を被せる。上述のように、様々な実施形態において、アクセス修復モジュール310は、インターネットブラウザの内部にインターフェース502を提供するブラウザのプラグインおよび/もしくは拡張を含んでよく、アクセス修復モジュール310のアプリケーションの内部に埋め込まれたブラウザを含んでよく、またはそうでなければ、インターネットブラウザと統合されるかおよび/もしくは通信状態になってよい。
【0114】
[0123]描写された実施形態において、アクセス修復モジュール310は、ユーザが確認または変更/訂正のどちらかを行ってよい、ユーザに対する1つまたは複数の候補504および/または推奨504を決定および/または表示してよい。例えば、アクセス修復モジュール310は、ユーザがユーザ名をエンターするための示唆された場所を有するインターフェースエレメント504a、ユーザがパスワードをエンターするための示唆された場所を有するインターフェースエレメント504b、示唆された認証情報サブミットアクションを有するインターフェースエレメント504c、ユーザと関連付けられたデータの示唆された場所を有するインターフェースエレメント504d、および/または第3者のサービスプロバイダ108のウェブサイト506の内部の1つまたは複数の場所をユーザがグラフィカルに識別することを可能にする1つまたは複数の他のインターフェースエレ
メントを表示してよい。
【0115】
[0124]1つの実施形態において、インターフェースエレメント504は、場所への矢印もしくは他のポインタ、場所のリンクもしくは他の識別子、ボックスもしくは場所周辺の他の強調、テキストを太字、イタリック体、および/もしくは下線付きにするために場所に対するテキストのラベル付けを変えること、または同様のものなどの、(例えば、ウェブサイト506の1つまたは複数のページにアクセスする他のユーザからの入力に基づいて、ウェブサイト506の1つまたは複数のページとのユーザの以前の対話、ウェブサイト506の機械学習および/または人工知能分析を使用してなされた予測に基づいて、ウェブサイト506のおよび/または1つもしくは複数の類似のウェブサイトの1つまたは複数のページに対する履歴上の変更の統計的解析に基づいて、あるいは同様のものに基づいて、ウェブサイト506の1つまたは複数のページをスキャンおよび/または解析することによって)アクセス修復モジュール310が決定した推定される場所および/またはアクションの1つまたは複数の識別子を含んでよい。一定の実施形態において、ユーザは、アクセス修復モジュール310によって示唆された場所を、確認または変更/訂正のどちらかを行うために場所を、クリック、選択、またはそうでなければ識別してよい。例えば、ユーザは、(例えば、選択されたインターフェースエレメント504を活性化するために)場所および/またはアクションと関連付けられたインターフェースエレメント504をクリックまたはそうでなければ選択してよく、この場所をクリックもしくはそうでなければ選択しおよび/またはこのアクションを実施してよく、これをアクセス修復モジュール310は記録してよい(例えば、この場所および/もしくはアクションを識別するテキストフィールドを自動的にポピュレートし、ユーザなしにアクションが自動的に繰り返されることを可能にするマクロを記録し、または同様のことを行う)。
【0116】
[0125]1つの実施形態において、1つもしくは複数の場所を検索および/もしくは識別すること、1つもしくは複数のアクションを実施すること、または同様のことを行うために、ユーザはウェブサイト506と対話してよい。例えば、一定の実施形態において、ユーザは、ウェブサイト506の内部の1つもしくは複数の異なるページにナビゲートすること、ウェブサイト506に対するユーザの電子認証情報を使用してウェブサイト506にログインすること、異なるウェブサイト506にナビゲートすること、ウェブサイト506にナビゲートすることおよび/もしくはウェブサイト506からユーザと関連付けられたデータをダウンロードすること、いつもの手法でウェブサイト506を使用すること、または同様のことを行ってよい。パターンモジュール308に関して上記に説明されたように、1つの実施形態において、パターンモジュール308は、ウェブサイト506に対するユーザのアクセスパターンを監視してよく、ウェブサイト506にアクセスする際、ウェブサイト506からユーザと関連付けられたデータをダウンロードする際、または同様の際に、直接アクセスモジュール204がユーザのアクセスパターンを少なくともある程度はエミュレートすることを可能にする。描写された実施形態において、アクセス修復モジュール310(および/または関連付けられたブラウザ)は、ウェブサイト506の片側または同様のものに、ウェブサイト506の上に表示されるインターフェース502を追加し、インターネットブラウザがウェブサイト506を表示するであろう方法を実質的に表示した、テキスト、画像、および/または他のエレメントと共に、ウェブサイト506のブラウザビューを表示する。
【0117】
[0126]
図5Bは、ユーザインターフェース510の1つの実施形態を描写する。
図5Bのインターフェース510の1つの実施形態において、上述のユーザインターフェース500が、ウェブサイト506の1つまたは複数のページの表現されたブラウザビューを含むと同時に、アクセス修復モジュール310(および/または関連付けられたブラウザ)は、ウェブサイト506のソースコード516を表示する。例えば、1つの実施形態において、ユーザインターフェース500は、標準的なアクセス修復インターフェースを含んでよく、ユーザインターフェース510は、先進的なアクセス修復インターフェースを含んでよく、ウェブサイト506自体の中で可視におよび/または容易に明らかにできない、ウェブサイト506のソースコード516内部の1つまたは複数の場所および/またはアクションを、1つまたは複数の先進的なユーザが識別するのを可能にする。一定の実施形態において、ユーザは、標準的なユーザインターフェース500またはビューか、先進的なユーザインターフェース510またはビューかを、選択しおよび/または切り替えてよい。
【0118】
[0127]描写された実施形態において、アクセス修復モジュール310は、上述のように、1つまたは複数の場所、アクション、または同様のものを、ユーザが実質的に識別するのを可能にする1つまたは複数のインターフェースエレメント514a~514dと共に、表示されたソースコード516の上におよび/またはその隣にユーザインターフェース512を表示する。描写された実施形態において、アクセス修復モジュール310は、ユーザが確認および/または変更/訂正することができる場所および/またはアクションの1つまたは複数の候補および/または推定を表示する。様々な実施形態において、ユーザは、インターフェースエレメント514を選択および/または活性化させ、ソースコード516の一部を選択することによって、ソースコード516の一部をドラッグし、その部分をインターフェースエレメント514上にドロップすることによって、ソースコード516の一部をインターフェースエレメント514にカットおよびペーストすることによって、ならびに/またはそうでなければ、ソースコード516に基づいて場所および/もしくはアクションを識別することによって、ソースコード516内の場所および/またはアクションを識別してよい。
【0119】
[0128]一定の実施形態において、(例えば、電子認証情報をエンターするため、サブミットするため、および/もしくは送信するために、データを検索および/もしくはダウンロードするために、または同様のもののために)1つまたは複数の場所および/またはアクションをユーザが識別することに応答して、アクセス修復モジュール310は、インターフェース500、510が可視でありおよび/またはユーザによって使用中である間に、識別された1つまたは複数の場所および/またはアクションの妥当性および/または有効性を決定するために、テストモジュール318と協働して、識別された1つまたは複数の場所および/またはアクションの、ライブのおよび/またはリアルタイムのテストを実施してよく、提供された情報を、同じセッション中にユーザが変更および/または訂正することを可能にする。例えば、アクセス修復モジュール310は、テストボタンまたは他のユーザインターフェースエレメントをユーザに表示し、ユーザはこれを選択および/または活性化し、テストに着手してよい。別の実施形態において、アクセス修復モジュール310は、テストボタンまたは他のユーザインターフェースエレメントを、ユーザが選択することおよび/または活性化させることなく、ユーザが場所および/またはアクションを提供することに応答して、テストを自動的に実施してよい。さらなる実施形態において、テストモジュール318は、アクセス修復モジュール310の機能性を、テストしながら、またはテストせずに、アクセス修復モジュール310から独立した1つまたは複数のテストを実施してよい。
【0120】
[0129]
図6は、分散されたデータ集約のための方法600の1つの実施形態を描写する。方法600は始まり、認証モジュール202は、ユーザのハードウェアデバイス102上で、ユーザから、第3者のサービスプロバイダ108に対するユーザの電子認証情報を602で受信する。直接アクセスモジュール204は、ユーザの電子認証情報を使用して、ユーザのハードウェアデバイス102から、第3者のサービスプロバイダ108のサーバ108に604でアクセスする。直接アクセスモジュール204は、第3者のサービスプロバイダ108のサーバ108からユーザのハードウェアデバイス102に、ユーザと関連付けられたデータを606でダウンロードする。
【0121】
[0130]
図7は、分散されたおよび/または非集中化されたデータ集約のための方法700の1つの実施形態を描写する。方法700は始まり、認証モジュール202は、複数の第3者のサービスプロバイダ108に対するユーザの電子認証情報を702で決定する。直接アクセスモジュール204は、702で決定された電子認証情報を使用して、複数の第3者のサービスプロバイダ108のサーバに704でアクセスする。直接アクセスモジュール204は、複数の第3者のサービスプロバイダ108の704でアクセスされたサーバから、ユーザと関連付けられたデータを706でダウンロードする。
【0122】
[0131]直接アクセスモジュール204は、複数の異なる第3者のサービスプロバイダ108からの706でダウンロードされたデータを708で集約する。インターフェースモジュール206は、(例えば、ユーザのハードウェアデバイス102上にデータを表示すること、アラートもしくは他のメッセージをユーザのハードウェアデバイス102に送信すること、ウェブインターフェースおよび/もしくはAPIを使用してユーザがアクセスできる、第3者のサービスプロバイダ108に加入していないリモートバックエンドサーバ110にデータを送信すること、または同様のことを行って)708で集約されたデータをユーザに710で提供し、方法700は終了する。
【0123】
[0132]
図8は、分散されたおよび/または非集中化されたデータ集約のための方法800の別の実施形態を描写する。方法800は始まり、ネットワーク認証モジュール304は、1つまたは複数の第3者のサービスプロバイダ108に対するユーザの電子認証情報を802で受信する。パスワードマネージャモジュール306は、1つまたは複数の第3者のサービスプロバイダ108に対する新しいおよび/または異なる電子認証情報を804で生成し、1つまたは複数の第3者のサービスプロバイダ108に関するユーザのアカウントを、804で生成された電子認証情報で更新する。
【0124】
[0133]アクセス修復モジュール310は、1つまたは複数の第3者のサービスプロバイダ108に対するアクセスに変更があるかどうか(例えば、アクセスが途切れ途切れであるかもしくは利用不可能であるかどうか、アクセスが部分的であるかもしくは不完全であるかどうか、アクセス帯域幅が以前に決定されたものより遅いかどうか、および/またはアクセスに別の変更が発生したかどうか)を806で決定する。第3者のサービスプロバイダ108に対するアクセスが変更したことをアクセス修復モジュール310が806で決定する場合、アクセス修復モジュール310は、グラフィカルユーザインターフェース500、510をユーザに808で提供する。ユーザを認証し、および/または第3者のサービスプロバイダ108からデータをダウンロードするために、アクセス修復モジュール310は、提供された808のグラフィカルユーザインターフェース500、510を通じて、1つまたは複数の場所および/またはアクションの識別を810で受信する。テストモジュール318は、1つまたは複数の場所および/またはアクションの810で受信された識別を使用して、第3者のサービスプロバイダ108へのアクセスを812でテストする。テストモジュール318によって812でテストが成功したことに応答して、テストモジュール318および/またはパターンモジュール308は、1つまたは複数の場所および/またはアクションの810で受信された識別に基づいて、1つまたは複数の異なるユーザと関連付けられた1つまたは複数の直接アクセスモジュール204に、第3者のサービスプロバイダ108からのデータにアクセスしおよび/またはダウンロードするための命令を814で提供する。
【0125】
[0134]ルートモジュール314は、ユーザと関連付けられたハードウェアデバイス102が利用可能であるかどうかを816で決定する。ユーザと関連付けられたハードウェアデバイス102が利用可能であることを、ルートモジュール314が816で決定することに応答して、直接アクセスモジュール204は、ユーザと関連付けられた利用可能なハードウェアデバイス102から、1つまたは複数の第3者のサービスプロバイダ108からのユーザと関連付けられたデータを818でダウンロードする。
【0126】
[0135]ユーザと関連付けられたハードウェアデバイス102が利用可能ではないことをルートモジュール314が816で決定することに応答して、異なるデバイス(例えば、異なるユーザのハードウェアデバイス102、バックエンドサーバ110、または同様のもの)の直接アクセスモジュール204は、異なるデバイスから、1つまたは複数の第3者のサービスプロバイダ108からユーザと関連付けられたデータを820でダウンロードする。(例えば、異なるデバイス102、110上の)ルートモジュール314は、820でダウンロードされたデータに基づいて、アラートまたは他のメッセージがユーザに利用可能であるかどうかを822で決定し、アラートまたは他のメッセージが利用可能であることを822で決定したことに応答して、ユーザと関連付けられたデバイス102(例えば、利用不可能なデバイス102)に、アラートまたは他のメッセージを824でプッシュしおよび/またはそうでなければ送信する。例えば、1つの実施形態において、ユーザのハードウェアデバイス102は、データをダウンロードするために利用不可能(例えば、電源が切られている、オフライン、スリープ中、Wi-Fiの代わりにモバイルデータを使用している、または同様のもの)であってよいが、(例えば、異なるチャネルで、テキストメッセージ、ボイスメール、電子メール、プッシュ通知、もしくは同様のものなどの、)824でプッシュされたアラートもしくは他のメッセージをいずれにしても受信してよく、および/またはその後になって利用可能になったことに応答して、824でプッシュされたアラートもしくは他のメッセージを受信してよい。
【0127】
[0136]インターフェースモジュール206は、(例えば、ユーザのハードウェアデバイス102上にデータを表示すること、ユーザのハードウェアデバイス102上に824でプッシュ/送信されたアラートもしくは他のメッセージを表示すること、ウェブインターフェースおよび/もしくはAPIを使用してユーザがアクセスできる、第3者のサービスプロバイダ108に加入していないリモートバックエンドサーバ110にデータを送信すること、または同様のことを行って)818、820でダウンロードされたデータおよび/または824でプッシュされたアラートをユーザに826で提供する。一定の実施形態において、方法800は、第3者のサービスプロバイダ108に対するアクセスに変更があるかどうかを806で決定すること、ユーザのハードウェアデバイス102が利用可能であるかどうかを816で決定すること、ユーザと関連付けられたデータを818、820でダウンロードすること、ならびに/またはダウンロードデータおよび/もしくは824でプッシュされたアラートもしくは他のメッセージをユーザに826で提供すること、または同様のことを周期的に継続する。
【0128】
[0137]様々な実施形態において、ユーザのハードウェアデバイス102上で第3者のサービスプロバイダ108に対するユーザの電子認証情報を決定する手段は、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、集約モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、ユーザのハードウェアデバイス102上で第3者のサービスプロバイダ108に対するユーザの電子認証情報を決定する類似のまたは同等の手段を含んでよい。
【0129】
[0138]様々な実施形態において、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102から第3者のサービスプロバイダ108のサーバ108にアクセスする手段は、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、集約モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102から第3者のサービスプロバイダ108のサーバ108にアクセスする類似のまたは同等の手段を含んでよい。
【0130】
[0139]様々な実施形態において、ユーザと関連付けられたデータを第3者のサービスプロバイダ108のサーバ108からユーザのハードウェアデバイス102にダウンロードする手段は、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、集約モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、ユーザと関連付けられたデータを第3者のサービスプロバイダ108のサーバ108からユーザのハードウェアデバイス102にダウンロードする類似のまたは同等の手段を含んでよい。
【0131】
[0140]様々な実施形態において、データがダウンロードされた元の第3者のサービスプロバイダ108に加入していないリモートデバイス110、102のために、ユーザのハードウェアデバイス102からのダウンロードデータをパッケージにする手段は、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、集約モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、データがダウンロードされた元の第3者のサービスプロバイダ108に加入していないリモートデバイス110、102のために、ユーザのハードウェアデバイス102からのダウンロードデータをパッケージにする類似のまたは同等の手段を含んでよい。
【0132】
[0141]様々な実施形態において、データがダウンロードされた元の第3者のサービスプロバイダ108に加入していないリモートデバイス110、102に、ユーザのハードウェアデバイス102からのダウンロードデータを提供する手段は、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、集約モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、データがダウンロードされた元の第3者のサービスプロバイダ108に加入していないリモートデバイス110、102に、ユーザのハードウェアデバイス102からのダウンロードデータを提供する類似のまたは同等の手段を含んでよい。
【0133】
[0142]様々な実施形態において、本明細書で説明された他の方法ステップを実施する手段は、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、インターフェースモジュール206、ルートモジュール314、頻度モジュール316、テストモジュール318、集約モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、HDMIまたは他の電子ディスプレイドングル、ハードウェア機器または他のハードウェアデバイス、他のロジックハードウェア、ならびに/あるいはコンピュータ可読ストレージ媒体上に格納される他の実行コードの1つまたは複数を含んでよい。他の実施形態は、本明細書で説明された方法ステップの1つまたは複数を実施する類似のまたは同等の手段を含んでよい。
【0134】
[0143]本発明は、本発明の精神または本質的な特徴から逸脱することなく、他の具体的な形で具体化されてよい。説明された実施形態は、すべての点において、単に例証的なものとしてかつ限定的ではないものとして考えられるべきである。したがって、本発明の範囲は、前述の説明によってではなく添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲に入るすべての変更は、これらの範囲の中に受容されるべきである。