(57)【特許請求の範囲】
【請求項１】
データを管理するためのコンピューティングデバイスであって、
複数のセンサと、
１つ以上のメモリモジュールと、
通信モジュールと、
前記１つ以上のメモリモジュール、前記通信モジュール及び前記複数のセンサに結合されるデータエージェントであって、該データエージェントにより同時に受け取られる前記複数のセンサからのローカルデータに対する、当該コンピューティングデバイス上で実行している１つ以上のアプリケーションによるアクセスを、前記１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて制限するデータエージェントと、
を備え、
前記データエージェントが、アクセス管理の一部として、前記１つ以上のアプリケーションのうちの１つのアプリケーションによるアクセスを前記ローカルデータの一部のみに制限するとき、難読化されたバージョンのデータのみが前記１つ以上のアプリケーションのうちの前記１つのアプリケーションによりアクセス可能であり、
前記難読化されたバージョンのデータは、前記データエージェントにより、前記ローカルデータに基づいて生成され、前記難読化されたバージョンのデータは、前記ローカルデータのうち、アクセスが許可される前記一部のみを含み、前記ローカルデータのうち、アクセスが制限される他の部分は除外し、
前記ローカルデータのうち、前記アクセスが許可される一部のみは、前記１つ以上のアプリケーションのうちの前記１つのアプリケーションが、正しく動作するために必要とし、かつアクセスする許可を有する、前記ローカルデータの部分のみであり、
前記データエージェントは、当該コンピューティングデバイス上で実行している前記１つ以上のアプリケーションの代わりに、リモートの履歴データストア内のデータへのアクセスを要求し、前記リモートの履歴データストアが、当該コンピューティングデバイスのセンサ及び複数の他のコンピューティングデバイスによってキャプチャされる、分類済み又は相関済みのデータを含む、
コンピューティングデバイス。
【請求項２】
前記ローカルデータは、当該コンピューティングデバイスのバッファ内に格納され、前記データエージェントは更に、
所定の時間期間、
当該コンピューティングデバイスによるネットワーク接続の検出、
前記バッファが閾値サイズに到達したという決定、
ユーザによる手動のアクティブ化、又は
前記リモートの履歴データストアからのクエリ、
のうちの少なくとも１つに基づいて、前記ローカルデータのコピーを前記リモートの履歴データストアに伝送する、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記データエージェントは更に、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、１つのセンサからのデータを他のセンサのデータに相関させる、
請求項１又は２に記載のコンピューティングデバイス。
【請求項４】
前記データエージェントは、更なる処理のために１人以上の他のユーザに関連付けられるコンピューティングデバイスからのデータとともに分類又は相関されるように、前記複数のセンサからの前記ローカルデータのコピーを、前記通信モジュールを介して前記リモートの履歴データストアに周期的に伝送するように更に構成される、
請求項１乃至３のいずれか一項に記載のコンピューティングデバイス。
【請求項５】
前記データエージェントは、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部を派生するよう、生のデータである前記ローカルデータを処理し、
生のデータである前記ローカルデータの処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部のみが、前記１つ以上のアプリケーションのうちの前記１つのアプリケーションの正しい実行を引き起こす、
請求項１乃至４のいずれか一項に記載のコンピューティングデバイス。
【請求項６】
複数のコンピューティングデバイスのデータを相関させるために実施される方法において、
サーバにより、複数のユーザに関連付けられる対応する複数のコンピューティングデバイスからのデータを受け取る受信ステップであって：
前記複数のコンピューティングデバイスは前記サーバからリモートであり、前記複数のコンピューティングデバイスの第１のコンピューティングデバイスからのデータは、該第１のコンピューティングデバイスの複数のセンサによって同時にキャプチャされるデータを少なくとも含み、前記第１のコンピューティングデバイスのアプリケーションによる、前記センサによりキャプチャされたデータへのアクセスは、前記アプリケーションのアクセス権に基づいて制限され、
前記アプリケーションが、アクセス管理の一部として、前記センサによりキャプチャされたデータの一部に制限されるとき、難読化されたバージョンのデータのみが前記アプリケーションによりアクセス可能であり、前記難読化されたバージョンのデータは、前記センサによりキャプチャされたデータに基づいて生成され、前記難読化されたバージョンのデータは、前記センサによりキャプチャされたデータのうち、アクセスが許可される前記一部のみを含み、前記センサによりキャプチャされたデータのうち、アクセスが制限される他の部分は除外し、
前記難読化されたバージョンのデータに含まれる前記センサによりキャプチャされたデータの前記一部は、前記アプリケーションが、正しく動作するために必要とし、かつアクセスする許可を有する、前記センサによりキャプチャされたデータのサブセットのみを含む、
受信ステップと；
前記データを履歴データストアに格納するステップと；
前記サーバにより前記データを前記複数のユーザの間で管理するステップと；
を含む、方法。
【請求項７】
前記サーバにより、前記履歴データストア内のデータへのアクセスの要求を受け取るステップと、
前記サーバにより、前記要求に応答して、前記履歴データストア内の前記データのサブセットへのアクセスを提供するステップであって、前記サブセットは、前記要求に関連付けられるデータ取得権限によって決定される、ステップと、
を更に含む、請求項６に記載の方法。
【請求項８】
前記要求は少なくとも、前記複数のコンピューティングデバイスのうちの１つのローカルデータの一部を求め、当該方法は、
前記サーバにより、前記ローカルデータの前記一部を、前記履歴データストア内に含まれるデータから特定するステップ
を更に含む、請求項７に記載の方法。
【請求項９】
前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみを派生するよう、生のデータである前記センサによりキャプチャされたデータの前記一部を処理するステップを更に備え、
生のデータである前記センサによりキャプチャされたデータの前記一部の処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみが、前記アプリケーションの正しい実行を引き起こす、
請求項６乃至８のいずれか一項に記載の方法。
【請求項１０】
ユーザに関連付けられるコンピューティングデバイスによる実行に応答して、前記コンピューティングデバイスに、データエージェントを提供するコンピュータプログラムであって、前記データエージェントは、
前記コンピューティングデバイス上で実行している１つ以上のアプリケーションによる、前記コンピューティングデバイスの複数のセンサによって同時にキャプチャされるローカルデータへのアクセスを、該１つ以上のアプリケーションによる同時処理のために、該１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて制限し、
複数の他のユーザに関連付けられる対応する複数の他のコンピューティングデバイスからのデータとともに分類又は相関されるように、前記ローカルデータのコピーをリモートの履歴データストアに伝送する、
ように構成され、
前記データエージェントが前記１つ以上のアプリケーションのうちの１つのアプリケーションによるアクセスを前記ローカルデータの一部のみに制限するとき、難読化されたバージョンのデータのみが前記１つ以上のアプリケーションのうちの前記１つのアプリケーションによりアクセス可能であり、
前記難読化されたバージョンのデータは、前記データエージェントによって前記ローカルデータに基づいて生成され、前記難読化されたバージョンのデータは、前記ローカルデータのうち、アクセスが許可される前記一部のみを含み、前記ローカルデータのうち、アクセスが制限される他の部分は除外し、前記アクセスが許可される前記ローカルデータの一部のみは、前記１つ以上のアプリケーションのうちの前記１つのアプリケーションが、正しく動作するために必要とし、かつアクセスする権利を有する、前記ローカルデータの部分のみである、
コンピュータプログラム。
【請求項１１】
前記データエージェントは、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部を派生するよう、生のデータである前記ローカルデータを処理し、
生のデータである前記ローカルデータの処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部のみが、前記１つ以上のアプリケーションのうちの前記１つのアプリケーションの正しい実行を引き起こす、
請求項１０に記載のコンピュータプログラム。
【請求項１２】
サーバによる実行に応答して、該サーバに、
複数のユーザに関連付けられる対応する複数のコンピューティングデバイスからデータを受け取る受信動作であって：
前記複数のコンピューティングデバイスは前記サーバからリモートであり、前記複数のコンピューティングデバイスの第１のコンピューティングデバイスからの前記データは、該第１のコンピューティングデバイスの複数のセンサによって同時にキャプチャされるデータを少なくとも含み、前記第１のコンピューティングデバイスのアプリケーションによる、前記センサによりキャプチャされたデータへのアクセスは、前記アプリケーションのアクセス権に基づいて制限され、
前記アプリケーションが、アクセス管理の一部として、前記センサによりキャプチャされたデータの一部に制限されるとき、難読化されたバージョンのデータのみが前記アプリケーションによりアクセス可能であり、前記難読化されたバージョンのデータは、前記センサによりキャプチャされたデータに基づいて生成され、前記難読化されたバージョンのデータは、前記センサによりキャプチャされたデータのうち、アクセスが許可される前記一部のみを含み、前記センサによりキャプチャされたデータのうち、アクセスが制限される他の部分は除外し、
前記難読化されたバージョンのデータに含まれる前記センサによりキャプチャされたデータの前記一部は、前記アプリケーションが、正しく動作するために必要とし、かつアクセスの許可を有する、前記センサによりキャプチャされたデータのサブセットのみを含む、
受信動作と；
前記データを履歴データストアに格納する動作と；
前記履歴データストア内に格納されたデータを前記複数のユーザの間で管理する動作と；
を実行させる、コンピュータプログラム。
【請求項１３】
前記サーバによる実行に応答して、前記サーバに更に、前記履歴データストア内のデータへのアクセスの要求を受け取らせ、これに応答して、前記履歴データストア内の前記データのサブセットへのアクセスを提供させ、
前記サブセットは、前記要求に関連付けられるデータ取得権限によって決定される、
請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記要求は少なくとも、前記複数のコンピューティングデバイスのうちの１つのローカルデータの一部を求め、前記サーバによる実行に応答して、前記サーバに更に、前記ローカルデータの前記一部を前記履歴データストア内に含まれるデータから特定させる、
請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記サーバに更に、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみを派生するよう、生のデータである前記センサによりキャプチャされたデータの前記一部を処理させ、
生のデータである前記センサによりキャプチャされたデータの前記一部の処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみが、前記アプリケーションの正しい実行を引き起こす、
請求項１２乃至１４のいずれか一項に記載のコンピュータプログラム。
【請求項１６】
請求項６乃至９のいずれか一項に記載の方法を実行するための手段を備える、コンピューティングデバイス。
【請求項１７】
請求項１２乃至１５のいずれか一項に記載のコンピュータプログラムを格納する少なくとも１つのコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１３年３月１２日出願の「SENSOR  ASSOCIATED  DATA  OF  MULTIPLE  DEVICES  BASED  COMPUTING」という名称の米国特許出願第１３／７９７，９８１号の優先権を主張する。
【０００２】
本開示の実施形態は、データ処理の分野に関し、特に、複数デバイスに基づく演算のセンサ関連データに関する。
【背景技術】
【０００３】
コンピューティングデバイス上でデータを生成するセンサの数は、増加し続けている。これに応じて、コンピューティングデバイスによって処理されるデータの量も増加している。このデータの一部は、コンピューティングデバイス上で実行しているアプリケーションによって使用されることがあるが、データの他の部分は未使用となることがある。データが使用されるか否かに関わらず、最新の状況では、データは最終的に、そのデータが担持する大量の情報とともに破棄される。
【図面の簡単な説明】
【０００４】
【図１】本開示の一部の実施形態に係る例示のコンピューティングデバイスのコンポーネントの対話を示す図である。
【図２】本開示の一部の実施形態に係る例示のコンピューティング環境を示す図である。
【図３】本開示の一部の実施形態に係るコンピューティングデバイスのデータエージェントに関連付けられる例示の方法を示すフローチャートである。
【図４】図１のコンピューティング環境１００の履歴データストアサーバに関連付けられる例示の方法を示すフローチャートである。
【図５】履歴データストア内に格納されるデータの要求を受け取る履歴データストアに関連付けられる例示のプロセスを示すフローチャートである。
【図６】本開示の一部の実施形態に係る例示のコンピューティングデバイスを示す図である。
【図７】本開示の一部の実施形態に係る履歴データストアを提供する例示のサーバを示す図である。
【発明を実施するための形態】
【０００５】
本明細書では、他の実施形態の中でも特に、データエージェント及び履歴データストアに関連付けられるコンピューティングデバイスが説明される。実施形態において、コンピューティングデバイスは、複数のセンサ、１つ以上のメモリモジュール、通信モジュール及びデータエージェントを備え得る。データエージェントは、コンピューティングデバイス上で動作している１つ以上のアプリケーションに、複数のセンサから受け取ったデータへのアクセスを提供するように構成され得る。実施形態において、データエージェントは、複数のセンサからのデータのコピーをリモートの履歴データストアに周期的に伝送し、ここで、このコピーは、更なる処理のために、同じユーザ又は１以上の他のユーザに関連付けられる他のコンピューティングデバイスからのデータとともに分類及び／又は相関され得る。分類及び／又は相関されたデータは、更なる分析に利用可能なものとなり得る。例えばコンピューティングデバイスは、スマートフォンであってよく、センサはカメラであってよく、そして履歴データストアはデータベースであってよい。
【０００６】
以下の詳細な説明では、本出願の一部を形成する添付の図面への参照を行う。図面では、同様の参照番号はその全体を通じて同様の部分を指しており、図面には、実施され得る実施形態が例として示されている。本開示の範囲から逸脱することなく、他の実施形態が用いられてよく、構造的変更又は論理的変更が行われてよいことが理解されよう。したがって、以下の詳細な説明は、限定的意味で解釈されるべきではなく、実施形態の範囲は、添付の特許請求の範囲及びその均等物によって定義される。
【０００７】
様々な動作が、特許請求に係る主題の理解を最も良く助けるような方法で、複数の別個のアクション又は動作として説明され得る。しかしながら、説明される順序は、これらの動作が必ずしも順序に依存することを示唆するものとして解釈されるべきではない。具体的に、これらの動作は、提示の順序で実行されなくてもよい。説明される動作は、説明される実施形態とは異なる順序で実行されてもよい。更なる実施形態では、様々な追加の動作を実行してもよく、かつ／又は説明される動作を省略してもよい。
【０００８】
本開示の目的では、「Ａ及び／又はＢ」というフレーズは（Ａ）、（Ｂ）あるいは（Ａ及びＢ）を意味する。本開示の目的では、「Ａ、Ｂ及び／又はＣ」というフレーズは、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）、あるいは（Ａ、Ｂ及びＣ）を意味する。本説明は、「（１つの）実施形態において」、「（複数の）実施形態において」というフレーズを使用するが、これはそれぞれ、同じ実施形態又は異なる実施形態の１つ又は複数を指してよい。さらに、本開示の実施形態に関して使用されるとき、「備える」、「含む」、「有する」等という用語は同義語である。
【０００９】
図１は、本開示の一部の実施形態に係る例示のコンピューティングデバイス１００のコンポーネントの対話を示す。一部の実施形態において、コンピューティングデバイス１００は、複数のセンサ１０２〜１０６と、ローカルデータストア１１０と、データエージェント１１２と、通信モジュール１１４と、Ａｐｐ１及び／又はＡｐｐ２といった、コンピューティングデバイス上で動作し得る１つ以上のアプリケーションとを備えてよい。
【００１０】
センサ１０２〜１０６は、物理センサ及び／又は仮想／ソフトセンサを含め、任意のタイプのセンサ又は組合せであってよい。物理センサには、これらに限られないが、カメラ、マイクロフォン、タッチセンサ、グローバル位置決定システム（ＧＰＳ）、加速度計、ジャイロスコープ、高度計、圧力感知センサ又は赤外線、Bluetooth（登録商標）、ＷｉＦｉといった信号関連センサが含まれ得る。仮想／ソフトセンサは、部分的にユーザの挙動をモニタすることがあり、これらには限られないが、インストール及び／又は使用されるアプリケーション、ブラウザナビゲーション履歴、実行された検索、ネットワークアクティビティ、課金アクティビティ（charging  activity）、入力アクティビティ等をモニタするセンサを含み得る。仮想／ソフトセンサは、データを間接的に展開するセンサ、例えば地図情報及びＷｉＦｉのような無線ネットワーク信号のシグネチャの知識を、その信号の強度とともに用いてユーザの位置を決定するセンサも含むことがある。これらの例は網羅的なものではなく、単に、可能性のあるセンサの実例を提供するように意図される。コンピューティングデバイスによって使用され得るデータを生成することができる任意のセンサが考えられる。一部の実施形態において、各センサは、関連する形式のデータを収集して、格納のためにこのデータをローカルのデータストア１１０に提供し得る。
【００１１】
ローカルのデータストア１１０はワーキングデータを含んでよく、一部の実施形態において、ワーキングデータは、任意の所与の時点で又はある時間期間にコンピューティングデバイス上で利用可能なデータのスナップショットであってよい。一部の実施形態において、ワーキングデータは、センサ１０２〜１０６によって提供されるデータ、データの分析及び／又は融合から派生したデータ、あるいはセンサ１０２〜１０６によって提供されるデータ及び／又は他のデータの２つ以上のセンサからのデータのサブセットで構成され得る。
【００１２】
センサ１０２〜１０６によって提供されるデータの分析及び／又は融合から派生したデータは、センサ１０２〜１０６のうちのいずれか１つによって直接的に提供されない任意のデータであり得る。例えばコンピューティングデバイス１００のカメラから生成されるデータを処理して、コンピューティングデバイス１００の１以上のユーザの顔の表情を派生することがある。派生したデータの例には、これらに限られないが、顔の表情、ジェスチャ、眼の追跡、音声コマンド、ユーザが現在誰かと話しているかどうか、環境雑音、ユーザのアクティビティ、移送モード等が含まれ得る。この派生したデータは、一部の実施形態では、本明細書では示されないが、ミドルウェア処理から得られるものであってよく、データは、センサによって提供されるデータのローカルデータストア１１０への格納に先行して、あるいはこの格納と併せて処理されてよい。他の実施形態では、この派生データは、コンピューティングデバイス１００において動作する１つ以上のアプリケーションによって生成されてよい。２つ以上のセンサからの融合され得るデータの例は、デバイスの物理的な向きを表すデータであってよく、例えば加速度計と、ジャイロスコープと、コンパスからのデータの融合を用いることにより、このデータに到達し得る。
【００１３】
他のデータは、コンピューティングデバイスに利用可能な任意のデータであってよく、コンピューティングデバイス１００のセンサに関連せず、あるいはコンピューティングデバイス１００のセンサから得られないデータであってもよい。例えばこのデータは、ユーザのカレンダへのエントリや、ユーザにより送受信されるテキストメッセージ、あるいはユーザの電子メール等のようにコンピューティングデバイス１００により他の方法で受け取られるデータのように、ユーザによりコンピューティングデバイスに入力されてもよい。
【００１４】
ワーキングデータの少なくとも一部は、Ａｐｐ１及び／又はＡｐｐ２といったコンピューティングデバイス１００上で動作する１つ以上のアプリケーションによって、そのアプリケーションが正しく機能するのに必要とされることがある。例えばＡｐｐ１がジェスチャゲームであった場合、コンピューティングデバイス１００の１以上のユーザのジェスチャを決定して正しく機能するために、タッチセンサ又はコンピューティングデバイス１００のカメラによって提供されるデータにアクセスする必要があることがある。
【００１５】
ワーキングデータの一部は、アプリケーションが正しく機能するのに必要である可能性があるが、各アプリケーションによって要求されるデータは変化する可能性があり、かつ／又はワーキングデータの一部はセンシティブな性質である可能性がある。これらの懸念事項の観点から、各アプリケーションが有するアクセスを、ワーキングデータに制限する必要があり得る。一部の実施形態において、データエージェント１１２は部分的に、各アプリケーションが有するアクセスを、それぞれのアプリケーションに関連付けられるデータ取得権限に基づくデータに制限し得る。図２を参照して更に検討すると、データエージェント１１２は、更なる処理のために、ワーキングデータを、履歴データストアにアップロードするようにも動作し得る。
【００１６】
一部の実施形態において、このデータ制限は、データエージェント１１２を、ローカルデータストア１１０と、ローカルデータストア１１０内に含まれるワーキングデータへのアクセスを必要とし得るアプリケーションとの間のインターミディアリとして実装することにより、達成され得る。これらの実施形態において、データエージェント１１２は、各アプリケーションのそれぞれのデータ取得権限に関連付けられるデータへの各アプリケーションアクセスのみを許可することにより、ワーキングデータへのゲートキーパーとして機能し得る。他の実施形態において、データエージェント１１２は、それぞれ個々のセンサからデータストリームへの直接アクセスを有してもよく、アプリケーションのそれぞれのデータ取得権限に基づいて、各アプリケーションによる必要なデータストリームへの直接アクセスを許可することにより、フィルタとして機能してよい。データストリームへの直接アクセスを可能にすることは、アプリケーションの処理が時間にセンシティブである場合に有利であり得る。例えばナビゲーションアプリケーションにＧＰＳデータストリームへの直接アクセスを提供し、座標をできるだけ早く処理することを保証するのに有利であり、このことは、ユーザに、ナビゲーションアプリケーションによって生成される指示に応答するのに多くの時間を与えることができる。これらの実施形態において、データエージェント１１２は、依然として、コンピューティングデバイス１００上で動作しているアプリケーションと、ローカルデータストア１１０内に格納される任意のデータとの間のインターミディアリとして機能し得る。加えて、センサからのデータストリームは、更なる処理のためにローカルデータストア１１０に向けられてもよい。
【００１７】
一部の実施形態において、アプリケーションは、センサのうちの１つ以上によって提供されるデータのサブセットへのアクセスのみを必要とすることがある。これらの状況では、アプリケーションに、センサデータの一部、要約（summary）及び／又は難読化（obfuscation）を提供するという利点がある。センサデータの一部、要約及び／又は難読化のみへのアクセスを許可することの利点の一部には、ユーザのプライバシを守り、より価値があると考えられるデータ又は収集するのがより困難な可能性があるデータへのアクセスを制限することが含まれ得る。
【００１８】
一部の実施形態において、コンピューティングデバイス１００上で動作するアプリケーションは、センサによって提供されるデータの一部のみを必要とすることがある。例えばローカル化アプリケーション又はサービスといったアプリケーションは、マイクロフォンからの特定の範囲の周波数のみへのアクセスを必要とし得る。そのような例では、ローカル化アプリケーション又はサービスは、可聴範囲及び／又は音声範囲より上の周波数へのアクセスのみを必要とし、アプリケーションに関連付けられるデータ取得権限は、例えばアプリケーションがその範囲の周波数のみを受け取り、ユーザのプライバシを保護することを可能にし得る。これは、データエージェント１１２の内部のミドルウェア処理を通して、別のミドルウェアアプリケーションを通して、あるいは他の周波数をフィルタアウトするように機能し得るコンピューティングデバイス１００のハードウェア機構を通して達成され得る。
【００１９】
他の実施形態において、コンピューティングデバイス上で動作しているアプリケーションがデータの一部へのアクセスのみを必要とする場合、必要とされないデータを難読化する必要があることがある。例えばアプリケーションが、正しく機能するのに顔の表情を必要とする場合、アプリケーションのデータ取得権限は、顔の表情のみを含む、難読化されたバージョンのデータに制限され得る。これらの実施形態では、データエージェント１１２又は別のミドルウェアアプリケーションといったミドルウェアアプリケーションは、カメラからの１つ以上の画像を処理し得る。ミドルウェアは、画像内の顔の位置を決定し、１つ以上の画像内の残りの部分を難読化するように動作し得る。
【００２０】
更に他の実施形態では、コンピューティングデバイス上で動作しているアプリケーションが、センサからの生のデータへのアクセスは必要としないが、データの要約へのアクセスを必要とすることがある。例えばジェスチャがカメラを通して入力されるジェスチャベースのゲームの場合、アプリケーションは、ユーザのワイヤフレーム表現へのアクセスのみを必要とし、データ取得権限は、このワイヤフレーム表現へのアクセスを制限することがある。この例の下では、データエージェント１１２又は別のミドルウェアアプリケーションのようなミドルウェアアプリケーションは、カメラからの生のデータを処理して、ワイヤフレームのみをアプリケーションに提示し得る。
【００２１】
データ取得権限は、幾つかの方法で取得され得る。例えばデータエージェント１１２がコンピューティングデバイスプラットフォームのプロバイダによって提供され得る場合、データ取得権限は、データエージェント１１２のプロバイダと、データにアクセスする必要があるアプリケーションのプロバイダとの間でネゴシエートされ得る。これは、上述のように、アプリケーションが正しく動作するのに必要なデータのみに、そのアプリケーションが制限され得るように、アプリケーションが正しく動作するのに必要なデータに基づくものであってよい。他の実施形態において、アプリケーションのプロバイダは、利用可能なデータのメニューから選択することも可能である。
【００２２】
他の実施形態において、ユーザは、アプリケーションに対して利用可能なデータ取得権限を、データエージェント１１２を通して制御することができる。これは、それぞれのアプリケーションに関連付けられ得る、コンピューティングデバイスでの設定を通して達成され得る。この設定は、例えばアクセスを許可する際のユーザの利点に基づいて、そのユーザがアクセスを許可するか制限することを可能にし得る。例えばアプリケーションが、上述のように、ワイヤフレーム表現へのアクセスしか必要としないジェスチャベースのアプリケーションであった場合、画像を処理してワイヤフレームをアプリケーションに提供するのにミドルウェアを必要とする場合とは対照的に、アプリケーションがカメラからのデータストリームへアクセスを有する場合、アプリケーションのパフォーマンスは向上し得る。
【００２３】
データ取得権限は、一部の実施形態において、静的に定義されるのではなく、動的に決定され得る。これらの実施形態において、データ取得権限は、ユーザ及び／又はデバイスのコンテキストの変化に応じて変化し得る。例えばアプリケーションは、例えばデバイスがデータ取得権限により更に制限され得る場所であるユーザの家になければ、その場所のそのデバイスへのアクセスを有してよい。一部の実施形態において、データ取得権限は、例えば場所、期間、アクティビティ（例えばランニング、睡眠、ゴルフ等）又はアプリケーションの用途（例えばゲーム、ナビゲーション、コンテンツストリーミング等）に基づく特定のデリミタを通して決定されてよい。例えば特定のエクササイズアプリケーションは、ユーザがエクササイズをしている間にデータへのアクセスを必要とするだけであり、これは、例えばランニングのようなアクティビティ、例えばユーザがジムにいる間のようなユーザの位置、及び／又心拍数モニタのような別のアプリケーションが実行しているかどうか、に基づいて決定され得る。これらのデリミタは、データ取得権限において、上記デリミタのうちの任意の数のデリミタ又は組合せに基づいてデータ取得権限を決定するよう、ブール演算子を使用して定義されてよいことが認識されよう。
【００２４】
コンピューティングデバイス上で動作するアプリケーションは、任意の数の手段を通じてデータへのアクセスを可能にされ得る。例えばアプリケーションは、該アプリケーションのインストールがあると、データエージェント１１２に登録され得る。この登録プロセスは、一部の実施形態において、データエージェント１１２に、暗号化鍵を提供することを含むことがあり、暗号化鍵は、データエージェント１１２を通して必要なデータへのアクセスを許可するアプリケーションに組み込まれ得る。他の実施形態において、アプリケーションには、パスワード又はデータへのアクセスを可能にする別の認証機構が提供され得る。
【００２５】
ローカルデータストア１１０内のデータにアクセスすることに加えて、一部の実施形態では、コンピューティングデバイス１００上で動作するアプリケーションは、ローカルデータストア１１０にデータを提供し得る。例えばＡｐｐ２は、コンピューティングデバイス１００のカメラからの画像データにアクセスすることがあるが、その画像データを処理して、ローカルデータストア内に格納されるかコンピューティングデバイス１００上で動作している別のアプリケーションに直接提供され得る追加のデータを提供してもよい。一部の実施形態において、このデータは、他のアプリケーションの処理ニーズのために、他のアプリケーションに提供されてもよい。例えばＡｐｐ２によって提供される画像データの処理は、画像データの一部を、Ａｐｐ２によってローカル又はリモートからアクセスされる画像のストアと相関させてよく、これは次いで、Ａｐｐ１が処理するのに利用可能にされ得る。
【００２６】
一部の実施形態において、データエージェント１１２は、同じ又は他のユーザの他のデバイスからの同様の種類のデータとの分類及び／又は相関のために、ワーキングデータのコピーを、図２に図示されるようなリモートの履歴データストアに周期的に伝送し得る。データエージェント１１２は、通信モジュール１１４を使用して、この周期的伝送を達成し得る。一部の実施形態において、ワーキングデータは、履歴データストアによる他のワーキングデータとともに分類されて、相関されてよい。
【００２７】
２つのアプリケーションのみがコンピューティングデバイス１００上で動作するように図示されているが、任意の数のアプリケーションがコンピューティングデバイス１００上で実行され、データエージェント１１２と対話してもよい。さらに、スマートフォンとして図示されているが、コンピューティングデバイス１００は、本開示の範囲から逸脱することなく、任意のコンピューティングデバイスとすることができることが認識されよう。そのようなコンピューティングデバイスには、これらに限られないが、スマートフォン、タブレット、ラップトップ若しくはデスクトップコンピュータ、ビデオゲームシステム、スマートテレビジョン、スマート機器、又は本開示で詳細に説明される機能を実行することが可能な任意の他のコンピューティングデバイスが含まれる。
【００２８】
図２は、本開示の一部の実施形態による例示のコンピューティング環境を示す。コンピューティング環境２００は、ここではクラウドとして示される１つ以上のネットワークを通して履歴データストア２０２に結合される、複数のコンピューティングデバイス１００及び２０４〜２０８で構成され得る。
【００２９】
図１に関連して述べたように、コンピューティングデバイス１００のデータエージェントは、デバイス１００のワーキングデータ１１０を履歴データストア２０２に周期的に伝送するように動作し得る。履歴データストア２０２は、一部の実施形態では、コンピューティングデバイス１００からのワーキングデータ１１０を、それぞれコンピューティングデバイス２０４〜２０８のワーキングデータ２１０〜２１４、履歴データストア２０２に既に含まれている任意のワーキングデータとともに集約して格納してよい。一部の実施形態において、履歴データストア２０２は、ワーキングデータの異なるセットを相関させるか、及び／又は分類することがあり、これによりコンピューティングデバイスのワーキングデータ内の関係、例えば同じコンピューティングデバイスの異なるセンサによって収集されたデータ間の関係を識別し、さらに、コンピューティングデバイス間のワーキングデータの関係も識別することができる。相関及び／又は分類を通して識別され得る関係を用いて、個々のコンピューティングデバイス上で可能ではない可能性があるデータの更なる分析を実行してもよい。一部の実施形態において、更なる分析の結果は、コンピューティングデバイスによる更なる処理及び／又は利用のために、コンピューティングデバイスのローカルデータストアに戻すように伝送され得る。例えばデータ処理が時間センシティブではない場合、この処理は、履歴データストアにおいて、例えば履歴データストアで実行しているミドルウェアプロセスによって実行され得る。その後、処理の結果は、コンピューティングデバイスの要求があるとプルされ、あるいは履歴データストアによって、更なる処理又は出力のためにコンピューティングデバイスに戻すようにプッシュされ得る。
【００３０】
履歴データストア２０２は、一部の実施形態において、クライアントデバイス２０４〜２０８のうちの１つに格納されてよい。加えて、ハードディスク障害、あるいはクライアントデバイス上又はクラウドベース若しくはネットワークベースのストア内のデータに対する他の障害がある場合、クライアントデバイス２０４〜２０８のいずれかが、履歴データストア２０２のバックアップコピーとして機能し得る。
【００３１】
一部の実施形態において、履歴データストア２０２へのワーキングデータの周期的な伝送は、個々のデバイスについて指定される特定の時間に又は特定の時間間隔で起こり得る。例えばデータエージェントは、毎日、コンピューティングデバイスの使用に影響を与えない可能性が高い時間に、あるいは１２時間ごとの間隔で、ワーキングデータを伝送するよう試みることがある。一部の実施形態において、データエージェントは、コンピューティングデバイスが、ワーキングデータを履歴データストア２０２に伝送することができる接続を確立していると検出すると、ワーキングデータを転送してよい。他の実施形態では、データエージェントは、ワーキングデータのサイズが特定の閾値を超えるときはいつも、ワーキングデータを履歴データストア２０２に伝送するよう試みることがある。例えばワーキングデータはコンピューティングデバイスのバッファ内に格納され、バッファが設定サイズに到達すると、データエージェントは、ワーキングデータを履歴データストア２０２に伝送し始めるか、伝送するよう試みを開始することになる。更に他の実施形態では、履歴データストア２０２は、要求又はクエリをコンピューティングデバイスに送信することにより、ワーキングデータの転送を開始することも可能である。更なる実施形態では、ユーザが、履歴データストア２０２へのワーキングデータの伝送をトリガしてもよい。これらの実施形態は、任意の組合せで、併合的に又は個別に用いられてよい。
【００３２】
実施形態において、データエージェントは、ワーキングデータを履歴データストア２０２にセキュアな手法で伝送することがある。一部の実施形態において、セキュアな手法は、履歴データストア２０２へのワーキングデータの伝送に先立って、ワーキングデータの暗号化を要することがある。暗号化は、データジェージェント自体によって行われてもよく、別のハードウェア又はソフトウェアの暗号化機構を通して行われてもよい。一部の実施形態において、セキュアな手法は、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）又はハイパートランスファープトロコルセキュア（ＨＴＴＰＳ）といったセキュアプロトコルを用いることを必要とすることがある。一部の実施形態において、データエージェントは、ユーザ及び／又はコンピューティングデバイスの識別情報を確認するよう機能するデジタル署名を使用して伝送に署名をしてもよい。デジタル署名は、例えばユーザ及び／又はデバイスに関連付けられ得る秘密鍵に基づくものであってよく、秘密鍵は、例えばリモートの受信者によって保持される公開鍵によって検証され得る。本開示の範囲から逸脱することなく、ワーキングデータをセキュアに伝送する任意の手法が用いられてもよいことが認識されよう。
【００３３】
実施形態において、履歴データストア２０２は、各デバイスからのデータを、履歴データストア２０２に既に含まれているデータ、並びに他のコンピューティングデバイスから受け取ったデータと相関させることがある。一部の実施形態において、これは、ワーキングデータのためのタイムスタンプ及び／又は位置スタンプを含み、データが生成された時間及び／又はデータが生成された位置に基づいてデータを相互に関連付けることにより達成され得る。タイムスタンプ及び／又は位置スタンプは、コンピューティングデバイスのハードウェア及び／又はソフトウェア機構により、データレコードへ統合されてよく、必要な情報が伝達され得る限りにおいて、任意の形式を取ってよい。他の実施形態では、この相関は、データの分析に基づくものであってよい。例えばワーキングデータがオーディオデータを含む場合、次いでオーディオデータを分析して、履歴データストア２０２内の他のオーディオデータと比較して、オーディオデータに含まれるサウンド及び／又は音声を決定し、そしてこのサウンド及び／又は音声を、同じ又は同様の特性を有する他のデータと相互に関連付けてよい。一部の実施形態において、これらの相関方法は併せて使用されてよい。
【００３４】
分析を通した相関は、複数のデバイスからデータを収集し、単一のグループ経験を再作成する際に有益であり得る。例えばあるグループのユーザがビデオゲームをプレイしている場合、複数のコンピューティングデバイスが、センサデータを、コンピューティングデバイスのワーキングデータに記録していることがある。各コンピューティングデバイスは後に、このワーキングデータを履歴データストア２０２に伝送してよく、この場合、コンピューティングデバイスのオーディオセンサからのワーキングデータを使用して、各デバイスからのデータを、他のデバイスからのデータに相関させてよい。これは、同じ音声が他のデバイスのオーディオデータ内に存在し得ることを判断するオーディオデータの分析に基づくものであってよい。一部の実施形態において、タイムスタンプ及び／又は位置スタンプは、分析する必要があるデータセットを絞ることにより、この分析を助けるのに使用され得る。この例ではオーディオデータが使用され得るが、上記の相互関連付けを行うことができる全てのデータを使用してもよいことは明らかであろう。
【００３５】
実施形態において、履歴データストア２０２は、各デバイスから受け取ったワーキングデータを分類し得る。これは、データのタイプ及び／又はフォーマットに基づいてデータを分類することにより達成され得る。例えばオーディオデータを全て一緒に分類してもよい。一部の実施形態において、分類は、データを生成したセンサに基づくものであってよい。例えばコンピューティングデバイスのカメラからのデータを全て一緒に分類してもよい。更に他の実施形態において、データは、該データが生成された時点のデバイスのユーザに基づいて分類されてもよい。一部の実施形態において、データは、上述の分類方法のいずれかに基づいて、更にサブ分類されてもよい。例えばオーディオデータは、データのフォーマット（例えばＭＰ３、ＷＡＶ等）に基づくサブカテゴリを有することがある。
【００３６】
実施形態において、履歴データストア２０２は、分析のために、履歴データストア２０２内のデータのアクセスを要求者に提供することがある。要求者は、一部の実施形態では、コンピューティングデバイス上で実行しているアプリケーションのうちの１つのプロバイダであり得る。一部の実施形態において、この要求は、アプリケーションの使用についての追加の情報を得るために行われることがある。例えばプロバイダは、コンピューティングデバイス上のアプリケーションにアクセス可能なデータにおいて、そのプロバイダが更に調査したいと思うものに気付くことがある。例えばアプリケーションがジェスチャベースのゲームであり、プロバイダが、ゲームプレイ内の何らかの中断（pauses）があると気付いた場合、次いで、アプリケーションのプロバイダは、これらの中断と相関して何が起こっているかを知りたいことがある。これは、中断に何らかのコンテキストを提供し得る。別の例では、プロバイダは、アプリケーションに利用可能なデータを、該アプリケーションがコンピューティング上で行うことができる分析よりも更に詳細に分析して、例えばジェスチャベースのゲーム中のジェスチャの解釈を改善することを望むことがある。他の実施形態において、要求者は、コンピューティングデバイス上で動作するアプリケーションであってよく、アプリケーションの即時処理のニーズには必要ではないが、それでもやはり、アプリケーションにより何らかの手法で使用され得るデータへのアクセスを取得する。一部の実施形態において、要求者は、コンピューティングデバイスのプロバイダ又はコンピューティングデバイスの何らかの部分のプロバイダであってよく、要求されるデータは、コンピューティングデバイスの何らかの使用又は問題の更なる理解を助けるために用いられてもよい。例えばコンピューティングデバイスは障害に遭遇することがあり、コンピューティングデバイスのプロバイダは、その障害の周辺の何らかの追加の背景情報を収集することを望むことがある。一部の実施形態において、コンピューティングデバイス上のデータエージェントは、ローカルの要求者を提供するだけでなく、履歴データストアに関して上述したのと同様に、ローカルのデータストアにアクセスするリモートの要求者を提供することもある。任意の要求者が考えられ、上記の実施形態は説明の目的のみで意図されていることが認識されよう。
【００３７】
一部の実施形態において、要求者は、例えばコンピューティングデバイスのいずれか１つで動作しているアプリケーションを通してその要求者が以前にアクセスを有していたデータの一部又は断片を提供し得る。データのこの一部分を、履歴データストア２０２内のデータと相関させて、要求に適用可能なデータのサブセットを決定してもよい。データの要求は、データのこのサブセットで満たされ得る。
【００３８】
アクセスは、図１に関連して上述したものと同様のデータ取得権限に基づくものであってよい。一部の実施形態において、要求者は、コンピューティングデバイスの単一のセンサからのデータへのアクセス、あるいは上述のように相互に関連付けられた異なるコンピューティングデバイス上の同様のセンサからのデータへのアクセスのみを必要とすることがある。他の実施形態において、要求者は、履歴データストア２０２に含まれるデータのサブセット、要約又は難読化へのアクセスのみを必要とすることがある。これは、上述した手法と同様の手法で、データエージェントと同様のコンポーネントに、あるいは履歴データストア２０２のために実装される他のミドルウェアに提供され得る。
【００３９】
データ取得権限は、このデータ取得権限がローカルデータストア及び／又は履歴データストア２０２にアクセスするのに使用されるかどうかに関わらず、幾つかの方法で取得され得る。例えば履歴データストア２０２が第三者ベンダ又はコンピューティングデバイスプラットフォームのプロバイダによって提供され得る場合、データ取得権限は、プロバイダと、データへのアクセスを必要とする要求者との間でネゴシエートされ得る。他の実施形態では、ユーザは、要求者に利用可能なデータ取得権限を制御することができる。これは、例えばユーザに提示されるか、コンピュータアプリケーションのインストール時又はコンピューティングデバイスの購入時にユーザによって認証される認証要求、例えばデータの使用を許可するエンドユーザライセンスの同意を通じて達成され得る。実施形態において、データ取得権限は、要求がローカルデータストアのものであるか、履歴データストア２０２のものであるかに応じて変わることがある。したがって、要求者は、データソースのいずれか又は双方へのデータ取得権限を取得する必要があることがある。
【００４０】
図３は、本開示の一部の実施形態による、コンピューティングデバイスのデータエージェントに関連付けられる例示の方法を示すフローチャートである。処理はブロック３００で始まり、ここで、データエージェントは、図１のワーキングデータ１１０のようなワーキングデータへのアクセスを求める要求を受け取る。ブロック３０２において、データエージェントは、要求に関連付けられるデータ取得権限を識別して、どのデータアクセスが必要とされ得るかを決定する。これは、図１に関連して上記したように、パスワードや暗号化鍵のような認証情報を受け取ることによって達成されてよく、データエージェントは、このパスワードや暗号化鍵のような認証情報を使用して、関連する権限を識別する。一部の実施形態において、データ取得権限を、データエージェントが動作しているコンピューティングデバイス上に格納された情報から決定することができる。他の実施形態において、データエージェントは、データ取得権限を決定するのにリモートソースへのアクセスを必要とすることがある。データ取得権限を決定した後、データエージェントは、そのデータ取得権限に基づいてデータへのアクセスを許可する。図１に関連して上述したように、データ取得権限は、ワーキングデータのサブセット、ワーキングデータの要約又はワーキングデータの難読化にアクセスを制限するように機能することがある。ブロック３０６において、データエージェントは、上記で図２に関連して検討したように、ワーキングデータのコピーを履歴データストアに伝送し得る。ここでは、ワーキングデータの伝送は、ローカルデータストア内に含まれるデータの要求の後に生じるように説明されるが、履歴データストアへのローカルデータストアの伝送は、そのような要求に付随しなくてもよく、ローカルデータストアは、そのような要求が行われたかどうかに関わらず、履歴データストアに伝送されてよい。一部の実施形態において、ワーキングデータは、履歴データストアへの伝送の後に削除されてよい。他の実施形態において、ワーキングデータは、伝送後のある期間の間は残ってよい。上記で図２に関連して詳細に検討したように、伝送は、ワーキングデータを伝送するのに十分なデータ接続をデータエージェントが検出すると、ワーキングデータが所定の閾値サイズを超えると、履歴データストアからの要求があると、及び／又はコンピューティングデバイスのユーザの要求があると、特定の時間に又は特定の時間間隔で起こり得る。
【００４１】
図４は、図１のコンピューティング環境１００の履歴データストアに関連付けられる例示の処理を示すフローチャートである。処理はブロック４００で始まり、ここで、履歴データストアは、複数のコンピューティングデバイスからデータを受け取る。ブロック４０２において、受け取ったデータは、他のデバイスのデータ及び履歴データストアに既に含まれているデータとともに分類され得る。分類の処理は、図２に関連して上記で更に詳細に説明されている。ブロック４０４において、受け取ったデータは、図２に関連して上記で更に詳細に説明されるように、同じユーザ又は異なるユーザの他のデバイスのデータ及び履歴データストアに既に含まれているデータと相関され得る。
【００４２】
図５は、データの要求を受け取る履歴データストアに関連付けられる例示の処理を示すフローチャートである。処理はブロック５００で始まり、ここで、履歴データストアは、格納済みデータへのアクセスの要求を受け取る。ブロック５０２において、履歴データストアは、要求に関連付けられるデータ取得権限を識別し、どのデータアクセスが必要とされるかを決定し得る。これは、図１及び図２に関連して上記で検討したように、パスワードや暗号化鍵といった、履歴データストアが関連する権限を識別するのに使用し得る認証情報を受け取ることにより達成され得る。一部の実施形態において、データ取得権限を、履歴データストアに格納された情報から決定することが可能である。他の実施形態において、履歴データストアは、データ取得権限を決定するのにリモートソースにアクセスする必要があることがある。ブロック５０４において、データ取得権限を決定した後、履歴データストアは、データ取得権限に基づいてデータへのアクセスを許可する。ブロック５０６において、履歴データストアは、要求されたデータを要求側デバイスへ伝送し得る。図２に関連して上述したように、データ取得権限は、履歴データストアに格納されるデータのサブセット、履歴データストアに格納されるデータの要約及び／又は履歴データストアに格納されるデータの難読化へのアクセスを制限するように機能し得る。
【００４３】
図６は、本開示の一部の実施形態に係る例示のコンピューティングデバイス６００を示す。コンピューティングデバイス６００は、複数のセンサ６０２と、ネットワークインタフェースカードのような通信モジュール６０４と、メモリ６０８と、データエージェント６０６を含んでよく、これらは全てバス６１０を通してともに接続される。データエージェント６０６は、一部の実施形態において、１つ以上のコンピュータ読取可能記憶媒体に結合される１つ以上のプロセッサを備え得る。１つ以上のコンピュータ読取可能記憶媒体は、１つ以上のプロセッサによって実行されると、コンピューティングデバイス６００に、上述のコンピューティングデバイスの処理の１つ又は複数を実行させる命令を含み得る。他の実施形態において、データエージェント６０６は、コンピューティングデバイス６００に、上述のコンピューティングデバイスの処理の１つ又は複数を実行させる、任意の数のハードウェア及び／又はソフトウェアコンポーネントで構成されてもよい。１つ以上のプロセッサは、任意のタイプのシングルコア若しくはマルチコアプロセッサ又はこれらの任意の組合せであってよい。この開示は、プロセッサのタイプ及び／又は数に関わらず、等しく適用可能である。
【００４４】
図７は、本開示の一部の実施形態による、履歴データストアを提供する例示のサーバを示す。サーバ７００は、プロセッサ７０２、ネットワークインタフェースカード（ＮＩＣ）７０４、メモリ７０６及び履歴データストア７０８を備え得る。図７に図示される履歴データストア７０８は、受け取ったデータだけでなく、クライアントデバイスからデータを受け取ることに関連付けられる前述の動作を実行し、受け取ったデータを分類及び／又は相関し、分類及び／又は相関したデータの要求に応答するためのロジックも格納するためのストレージを含む。プロセッサ７０２、ＮＩＣ７０４、メモリ７０６及び履歴データストア７０８は全て、システムバス７１０を用いて一緒に結合され得る。
【００４５】
プロセッサ７０２は、一部の実施形態では、単一のプロセッサであってよく、他の実施形態では、複数のプロセッサで構成されてもよい。一部の実施形態において、複数のプロセッサは、同じタイプ、すなわち同種のものであってもよく、あるいは異なるタイプ、すなわち異種のものであってもよく、任意のタイプのシングルコア又はマルチコアプロセッサを含んでよい。この開示は、プロセッサのタイプ及び／又は数に関わらず、等しく適用可能である。実施形態において、ＮＩＣ７０４は、サーバ７００によって、図２に示されるような上記のネットワークにアクセスするのに使用され得る。実施形態において、ＮＩＣ７０４は、有線又は無線ネットワークにアクセスするのに使用されてよく、本開示は等しく適用可能である。実施形態において、メモリ７０６は、任意のタイプのコンピュータ読取可能記憶媒体であってよく、あるいは異なるタイプのコンピュータ読取可能記憶媒体の任意の組合せであってよい。例えば実施形態において、メモリ７０６は、これらに限定されないが、半導体ドライブ（ＳＳＤ）、磁気若しくは光ディスクハードドライブ、揮発性若しくは不揮発性、動的若しくは静的なランダムアクセスメモリ、フラッシュメモリ又はこれらの任意の複数若しくは組合せを含み得る。実施形態において、メモリ７０６は、プロセッサ７０２によって実行されると、サーバ７００に、履歴データストアに関連して上述した処理の１つ以上の動作を実行させる命令を格納し得る。
【００４６】
本開示の実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、又はハードウェアの要素とソフトウェアの要素の双方を含む実施形態の形を取ることができる。様々な実施形態において、ソフトウェアは、これらに限られないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含んでよい。さらに、本開示は、コンピュータ又は任意の命令実行システムにより又はこれらとともに使用するためにプログラムコードを提供するコンピュータ利用可能又はコンピュータ読取可能な媒体からアクセス可能な、コンピュータプログラム製品の形を取ることができる。本明細書で使用されるとき、モジュールは、ハードウェア、ソフトウェア又はハードウェアとソフトウェアの組合せを指すことがある。
【００４７】
この説明の目的では、コンピュータ利用可能又はコンピュータ読取可能な媒体は、命令実行システム、装置又はデバイスにより、又はこれらとともに使用するためのプログラムを包含、格納、通信、伝播又は伝達することができる任意の装置とすることができる。媒体は、電気、磁気、光学、電磁気、赤外線又は半導体システム（若しくは装置、デバイス）又は伝搬媒体とすることができる。コンピュータ読取可能記憶媒体の例には、半導体又は固体のメモリ、磁気テープ、着脱可能コンピュータディスケット、ＵＳＢドライブ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、剛性の磁気ディスク及び光ディスクが含まれる。光ディスクの現在の例には、コンパクトディスク読取専用メモリ（ＣＤ−ＲＡＭ）、コンパクトディスク読取／書込（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００４８】
本明細書では、具体的な実施形態を図示し、説明してきたが、本開示の実施形態の範囲から逸脱することなく、広範な代替及び／又は均等な実装が、図示及び説明される具体的な実施形態を代替してよいことが当業者には認識されよう。本出願は、本明細書で検討される実施形態の全ての適合又は変形を網羅するように意図される。したがって、本開示の実施形態は、特許請求の範囲及びその均等の範囲によってのみ限定されるように明確に意図される。
【００４９】
＜例＞
例１は、データを管理するためのコンピューティングデバイスであり：複数のセンサと；１つ以上のメモリモジュールと；通信モジュールと；１つ以上のメモリモジュール、通信モジュール及び複数のセンサに結合されるデータエージェントとを含み、該データエージェントは、複数のセンサからデータエージェントにより受け取られるデータへのアクセスを、当該コンピューティングデバイス上で実行している１つ以上のアプリケーションに提供し、当該コンピューティングデバイス上で実行している１つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求するように構成され、履歴データストアは、１つ以上の他のデバイスからの分類又は相関されたデータを含む。
【００５０】
例２は、例１に係る主題を含んでよく、複数のセンサからデータエージェントにより受け取られるデータへのアクセスは、データエージェントにより、複数のセンサから受け取られるデータのサブセットに制限され、データのサブセットは、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて決定される。
【００５１】
例３は、例１に係る主題を含んでよく、複数のセンサからデータエージェントにより受け取られるデータへのアクセスを提供することは、データエージェントにより、複数のセンサから受けられるデータの少なくともサブセットの難読化を更に含み、データのサブセットは、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて決定される。
【００５２】
例４は、例２又は例３に係る主題を含んでよく、１つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【００５３】
例５は、例１乃至例３のいずれか１つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、データエージェントは、所定の時間期間；コンピューティングデバイスによるネットワーク接続の検出；バッファが所定のサイズに到達したという決定；ユーザによる手動のアクティブ化；又はリモートの履歴データストアからのクエリ；のうちの少なくとも１つに基づいて、データのコピーをリモートの履歴データストアに伝送するように更に構成される。
【００５４】
例６は、例１乃至例３のいずれか１つに係る主題を含んでよく、データエージェントは、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、１つのセンサからのデータを他のセンサのデータに相関させるように更に構成される。
【００５５】
例７は、例１乃至例３のいずれか１つに係る主題を含んでよく、データエージェントは、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、データのコピーを暗号化するように更に構成される。
【００５６】
例８は、例１乃至例３のいずれか１つに係る主題を含んでよく、データエージェントは、更なる処理のために１人以上の他のユーザに関連付けられるコンピューティングデバイスからのデータとともに分類又は相関されるように、複数のセンサからのデータのコピーを、通信モジュールを介してリモートの履歴データストアに周期的に伝送するように更に構成される。
【００５７】
例９は、複数のコンピューティングデバイスのデータを相関させるためにコンピュータで実施される方法であって：サーバにより、複数のユーザに関連付けられる対応する複数のコンピューティングデバイスからのデータを受け取るステップであって、あるコンピューティングデバイスからのデータが、該コンピューティングデバイスの１つ以上のセンサからのデータを少なくとも含む、ステップと；データを履歴データストアに格納するステップと；サーバによりデータを相関させるステップとを含む。
【００５８】
例１０は、例９に係る主題を含んでよく、サーバによりデータを分類するステップを更に含む。
【００５９】
例１１は、例９に係る主題を含んでよく、相関は、データ内に含まれるタイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【００６０】
例１２は、例９乃至例１１のいずれか１つに係る主題を含んでよく、サーバにより、履歴データストア内のデータへのアクセスを求める要求を受け取るステップと；サーバにより、要求に応答して、履歴データストア内のデータのサブセットへのアクセスを提供するステップとを更に含み、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【００６１】
例１３は、例１２に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、方法は、更なる分析用に取り出すために、サーバにより、ローカルデータの一部を履歴データストア内に含まれるデータと相関させるステップを更に含む。
【００６２】
例１４は、例９乃至例１１のいずれか１つに係る主題を含んでよく、データの分類は、データに関連付けられるタイプ；コンピューティングデバイスに関連付けられるユーザ；又はデータを生成したセンサのタイプ；のうちの１つ以上に少なくとも部分的に基づく。
【００６３】
例１５は、複数のコンピューティングデバイスのデータを相関させるためにコンピューティング装置であって：複数のコンピューティングデバイスからデータを受け取る手段であって、あるコンピューティングデバイスからのデータが、該コンピューティングデバイスの１つ以上のセンサからのデータを少なくとも含む手段と；データを履歴データストアに格納する手段と；データを相関させる手段とを含む。
【００６４】
例１６は、例１５に係る主題を含んでよく、データを分類する手段を更に含む。
【００６５】
例１７は、例１５に係る主題を含んでよく、相関は、データ内に含まれるタイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【００６６】
例１８は、例１５乃至例１７のいずれか１つに係る主題を含んでよく、履歴データストア内のデータへのアクセスを求める要求を受け取る手段と；要求に応答して、履歴データストア内のデータのサブセットへのアクセスを提供する手段とを更に含み、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【００６７】
例１９は、例１８に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、更なる分析用に取り出すために、ローカルデータの一部を履歴データストア内に含まれるデータと相関させる手段を更に含む。
【００６８】
例２０は、例１５乃至例１７のいずれか１つに係る主題を含んでよく、データの分類は、データに関連付けられるタイプ；コンピューティングデバイスに関連付けられるユーザ；又はデータを生成したセンサのタイプ；のうちの１つ以上に少なくとも部分的に基づく。
【００６９】
例２１は、コンピューティングデバイスのローカルデータを管理するためのコンピューティング装置であって：コンピューティングデバイス上で実行している１つ以上のアプリケーションによる同時処理のために、ローカルデータへのアクセスをコンピューティングデバイス上で実行している１つ以上のアプリケーションに提供するための手段を備え、ローカルデータは、少なくとも部分的に、コンピューティングデバイスの１つ以上のセンサに関連付けられ；当該コンピューティング装置はまた、他のコンピューティングデバイスからのデータとともに分類又は相関させるために、ローカルデータのコピーをリモートの履歴データストアに伝送するための手段を備える。
【００７０】
例２２は、例２１に係る主題を含んでよく、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて、ローカルデータのアクセスをローカルデータのサブセットに制限する手段を更に含む。
【００７１】
例２３は、例２１に係る主題を含んでよく、ローカルデータのアクセスを提供するとき、ローカルデータの少なくとも一部への難読化のレベルを提供する手段を更に含み、難読化のレベルは、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づく。
【００７２】
例２４は、例２２又は例２３に係る主題を含んでよく、１つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【００７３】
例２５は、例２１乃至例２３のいずれか１つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、所定の時間期間；コンピューティングデバイスによるネットワーク接続の検出；バッファが所定のサイズに到達したという決定；ユーザによる手動のアクティブ化；又はリモートの履歴データストアからのクエリ；のうちの少なくとも１つに基づいて、データのコピーをリモートの履歴データストアに伝送する手段を更に含む。
【００７４】
例２６は、例２１乃至例２３のいずれか１つに係る主題を含んでよく、ローカルデータは、複数のセンサに関連付けられ、タイムスタンプ又は位置スタンプの少なくとも一方を含み、当該主題は、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、１つのセンサからのデータを他のセンサのデータに相関させる手段を更に含む。
【００７５】
例２７は、例２２に係る主題を含んでよく、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、ローカルデータのコピーを暗号化する手段を更に含む。
【００７６】
例２８は、例２１乃至例２３のいずれか１つに係る主題を含んでよく、コンピューティングデバイス上で実行している１つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求する手段を更に含む。
【００７７】
例２９は、命令を格納する少なくとも１つのコンピュータ読取可能記憶媒体であり、命令は、ユーザに関連付けられるコンピューティングデバイスによる実行に応答して、コンピューティングデバイスに：コンピューティングデバイス上で実行している１つ以上のアプリケーションによる同時処理のために、ローカルデータのアクセスをその１つ以上のアプリケーションに提供させ、ローカルデータは、少なくとも部分的に、コンピューティングデバイスの１つ以上のセンサに関連付けられ；他のコンピューティングデバイスからのデータとともに分類又は相関されるように、ローカルデータのコピーをリモートの履歴データストアに伝送させるように構成されるデータエージェント、を提供する。
【００７８】
例３０は、例２９に係る主題を含んでよく、データエージェントは、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて、ローカルデータのアクセスをローカルデータのサブセットに制限するように更に構成される。
【００７９】
例３１は、例２９に係る主題を含んでよく、データエージェントは、ローカルデータのアクセスを提供するとき、ローカルデータの少なくとも一部への難読化のレベルを提供するように更に構成され、難読化のレベルは、１つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づく。
【００８０】
例３２は、例３０又は例３１に係る主題を含んでよく、１つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【００８１】
例３３は、例２９乃至例３１のいずれか１つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、データエージェントは、所定の時間期間；コンピューティングデバイスによるネットワーク接続の検出；バッファが所定のサイズに到達したという決定；ユーザによる手動のアクティブ化；又はリモートの履歴データストアからのクエリ；のうちの少なくとも１つに基づいて、データのコピーをリモートの履歴データストアに伝送するように更に構成される。
【００８２】
例３４は、例２９乃至例３１のいずれか１つに係る主題を含んでよく、ローカルデータは、複数のセンサに関連付けられ、タイムスタンプ又は位置スタンプの少なくとも一方を含み、データエージェントは、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、１つのセンサからのデータを他のセンサのデータに相関させるように更に構成される。
【００８３】
例３５は、例２９乃至例３１のいずれか１つに係る主題を含んでよく、データエージェントは、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、ローカルデータのコピーを暗号化するように更に構成される。
【００８４】
例３６は、例２９乃至例３１のいずれか１つに係る主題を含んでよく、データエージェントは、コンピューティングデバイス上で実行している１つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求するように更に構成される。
【００８５】
例３７は、命令を格納する少なくとも１つのコンピュータ読取可能記憶媒体であって、命令は、サーバによる実行に応答して、該サーバに：複数のコンピューティングデバイスからデータを受け取らせ、あるコンピューティングデバイスからのデータは、該コンピューティングデバイスの１つ以上のセンサから収集されたデータを少なくとも含み；データを履歴データストアに格納させ；履歴データストア内のデータを分類して相関させる。
【００８６】
例３８は、例３７に係る主題を含んでよく、データは、タイムスタンプと位置スタンプの少なくとも一方を含み、データの相関は、タイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【００８７】
例３９は、例３７に係る主題を含んでよく、命令は、サーバによる実行に応答して、サーバに、履歴データストア内のデータへのアクセスの要求を受け取らせ、これに応答して、履歴データストア内のデータのサブセットへのアクセスを提供させ、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【００８８】
例４０は、例３９に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、命令は、サーバによる実行に応答して、サーバに、更なる分析用に取り出すために、ローカルデータの一部を履歴データストア内に含まれるデータと相関させる。
【００８９】
例４１は、例３７乃至例３９のいずれか１つに係る主題を含んでよく、分類は、データに関連付けられるタイプ；コンピューティングデバイスに関連付けられるユーザ；又はデータを生成したセンサのタイプ；のうちの１つ以上に少なくとも部分的に基づく。
【００９０】
例４２は、例９乃至１４のいずれか１つに係るコンピュータで実施される方法を実行するための手段を備える、コンピューティングデバイスである。
【００９１】
例４３は、コンピューティングデバイスによって実行されると、例９乃至１４のいずれか１つ係るコンピュータで実施される方法を、そのコンピューティングデバイスに実行させる命令を備えるコンピュータ読取可能記憶媒体である。
【図１】
0006388882.tif 000002
【図２】
0006388882.tif 000003
【図３】
0006388882.tif 000004
【図４】
0006388882.tif 000005
【図５】
0006388882.tif 000006
【図６】
0006388882.tif 000007
【図７】
0006388882.tif 000008