(58)【調査した分野】(Int.Cl.,DB名)
前記データエージェントは、更なる処理のために1人以上の他のユーザに関連付けられるコンピューティングデバイスからのデータとともに分類又は相関されるように、前記複数のセンサからの前記ローカルデータのコピーを、前記通信モジュールを介して前記リモートの履歴データストアに周期的に伝送するように更に構成される、
請求項1乃至3のいずれか一項に記載のコンピューティングデバイス。
前記データエージェントは、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部を派生するよう、生のデータである前記ローカルデータを処理し、
生のデータである前記ローカルデータの処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部のみが、前記1つ以上のアプリケーションのうちの前記1つのアプリケーションの正しい実行を引き起こす、
請求項1乃至4のいずれか一項に記載のコンピューティングデバイス。
前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみを派生するよう、生のデータである前記センサによりキャプチャされたデータの前記一部を処理するステップを更に備え、
生のデータである前記センサによりキャプチャされたデータの前記一部の処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみが、前記アプリケーションの正しい実行を引き起こす、
請求項6乃至8のいずれか一項に記載の方法。
前記データエージェントは、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部を派生するよう、生のデータである前記ローカルデータを処理し、
生のデータである前記ローカルデータの処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記ローカルデータの一部のみが、前記1つ以上のアプリケーションのうちの前記1つのアプリケーションの正しい実行を引き起こす、
請求項10に記載のコンピュータプログラム。
前記サーバによる実行に応答して、前記サーバに更に、前記履歴データストア内のデータへのアクセスの要求を受け取らせ、これに応答して、前記履歴データストア内の前記データのサブセットへのアクセスを提供させ、
前記サブセットは、前記要求に関連付けられるデータ取得権限によって決定される、
請求項12に記載のコンピュータプログラム。
前記要求は少なくとも、前記複数のコンピューティングデバイスのうちの1つのローカルデータの一部を求め、前記サーバによる実行に応答して、前記サーバに更に、前記ローカルデータの前記一部を前記履歴データストア内に含まれるデータから特定させる、
請求項13に記載のコンピュータプログラム。
前記サーバに更に、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみを派生するよう、生のデータである前記センサによりキャプチャされたデータの前記一部を処理させ、
生のデータである前記センサによりキャプチャされたデータの前記一部の処理に基づいて、前記難読化されたバージョンのデータ内に含まれる前記センサによりキャプチャされたデータの前記サブセットのみが、前記アプリケーションの正しい実行を引き起こす、
請求項12乃至14のいずれか一項に記載のコンピュータプログラム。
【発明を実施するための形態】
【0005】
本明細書では、他の実施形態の中でも特に、データエージェント及び履歴データストアに関連付けられるコンピューティングデバイスが説明される。実施形態において、コンピューティングデバイスは、複数のセンサ、1つ以上のメモリモジュール、通信モジュール及びデータエージェントを備え得る。データエージェントは、コンピューティングデバイス上で動作している1つ以上のアプリケーションに、複数のセンサから受け取ったデータへのアクセスを提供するように構成され得る。実施形態において、データエージェントは、複数のセンサからのデータのコピーをリモートの履歴データストアに周期的に伝送し、ここで、このコピーは、更なる処理のために、同じユーザ又は1以上の他のユーザに関連付けられる他のコンピューティングデバイスからのデータとともに分類及び/又は相関され得る。分類及び/又は相関されたデータは、更なる分析に利用可能なものとなり得る。例えばコンピューティングデバイスは、スマートフォンであってよく、センサはカメラであってよく、そして履歴データストアはデータベースであってよい。
【0006】
以下の詳細な説明では、本出願の一部を形成する添付の図面への参照を行う。図面では、同様の参照番号はその全体を通じて同様の部分を指しており、図面には、実施され得る実施形態が例として示されている。本開示の範囲から逸脱することなく、他の実施形態が用いられてよく、構造的変更又は論理的変更が行われてよいことが理解されよう。したがって、以下の詳細な説明は、限定的意味で解釈されるべきではなく、実施形態の範囲は、添付の特許請求の範囲及びその均等物によって定義される。
【0007】
様々な動作が、特許請求に係る主題の理解を最も良く助けるような方法で、複数の別個のアクション又は動作として説明され得る。しかしながら、説明される順序は、これらの動作が必ずしも順序に依存することを示唆するものとして解釈されるべきではない。具体的に、これらの動作は、提示の順序で実行されなくてもよい。説明される動作は、説明される実施形態とは異なる順序で実行されてもよい。更なる実施形態では、様々な追加の動作を実行してもよく、かつ/又は説明される動作を省略してもよい。
【0008】
本開示の目的では、「A及び/又はB」というフレーズは(A)、(B)あるいは(A及びB)を意味する。本開示の目的では、「A、B及び/又はC」というフレーズは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、あるいは(A、B及びC)を意味する。本説明は、「(1つの)実施形態において」、「(複数の)実施形態において」というフレーズを使用するが、これはそれぞれ、同じ実施形態又は異なる実施形態の1つ又は複数を指してよい。さらに、本開示の実施形態に関して使用されるとき、「備える」、「含む」、「有する」等という用語は同義語である。
【0009】
図1は、本開示の一部の実施形態に係る例示のコンピューティングデバイス100のコンポーネントの対話を示す。一部の実施形態において、コンピューティングデバイス100は、複数のセンサ102〜106と、ローカルデータストア110と、データエージェント112と、通信モジュール114と、App1及び/又はApp2といった、コンピューティングデバイス上で動作し得る1つ以上のアプリケーションとを備えてよい。
【0010】
センサ102〜106は、物理センサ及び/又は仮想/ソフトセンサを含め、任意のタイプのセンサ又は組合せであってよい。物理センサには、これらに限られないが、カメラ、マイクロフォン、タッチセンサ、グローバル位置決定システム(GPS)、加速度計、ジャイロスコープ、高度計、圧力感知センサ又は赤外線、Bluetooth(登録商標)、WiFiといった信号関連センサが含まれ得る。仮想/ソフトセンサは、部分的にユーザの挙動をモニタすることがあり、これらには限られないが、インストール及び/又は使用されるアプリケーション、ブラウザナビゲーション履歴、実行された検索、ネットワークアクティビティ、課金アクティビティ(charging activity)、入力アクティビティ等をモニタするセンサを含み得る。仮想/ソフトセンサは、データを間接的に展開するセンサ、例えば地図情報及びWiFiのような無線ネットワーク信号のシグネチャの知識を、その信号の強度とともに用いてユーザの位置を決定するセンサも含むことがある。これらの例は網羅的なものではなく、単に、可能性のあるセンサの実例を提供するように意図される。コンピューティングデバイスによって使用され得るデータを生成することができる任意のセンサが考えられる。一部の実施形態において、各センサは、関連する形式のデータを収集して、格納のためにこのデータをローカルのデータストア110に提供し得る。
【0011】
ローカルのデータストア110はワーキングデータを含んでよく、一部の実施形態において、ワーキングデータは、任意の所与の時点で又はある時間期間にコンピューティングデバイス上で利用可能なデータのスナップショットであってよい。一部の実施形態において、ワーキングデータは、センサ102〜106によって提供されるデータ、データの分析及び/又は融合から派生したデータ、あるいはセンサ102〜106によって提供されるデータ及び/又は他のデータの2つ以上のセンサからのデータのサブセットで構成され得る。
【0012】
センサ102〜106によって提供されるデータの分析及び/又は融合から派生したデータは、センサ102〜106のうちのいずれか1つによって直接的に提供されない任意のデータであり得る。例えばコンピューティングデバイス100のカメラから生成されるデータを処理して、コンピューティングデバイス100の1以上のユーザの顔の表情を派生することがある。派生したデータの例には、これらに限られないが、顔の表情、ジェスチャ、眼の追跡、音声コマンド、ユーザが現在誰かと話しているかどうか、環境雑音、ユーザのアクティビティ、移送モード等が含まれ得る。この派生したデータは、一部の実施形態では、本明細書では示されないが、ミドルウェア処理から得られるものであってよく、データは、センサによって提供されるデータのローカルデータストア110への格納に先行して、あるいはこの格納と併せて処理されてよい。他の実施形態では、この派生データは、コンピューティングデバイス100において動作する1つ以上のアプリケーションによって生成されてよい。2つ以上のセンサからの融合され得るデータの例は、デバイスの物理的な向きを表すデータであってよく、例えば加速度計と、ジャイロスコープと、コンパスからのデータの融合を用いることにより、このデータに到達し得る。
【0013】
他のデータは、コンピューティングデバイスに利用可能な任意のデータであってよく、コンピューティングデバイス100のセンサに関連せず、あるいはコンピューティングデバイス100のセンサから得られないデータであってもよい。例えばこのデータは、ユーザのカレンダへのエントリや、ユーザにより送受信されるテキストメッセージ、あるいはユーザの電子メール等のようにコンピューティングデバイス100により他の方法で受け取られるデータのように、ユーザによりコンピューティングデバイスに入力されてもよい。
【0014】
ワーキングデータの少なくとも一部は、App1及び/又はApp2といったコンピューティングデバイス100上で動作する1つ以上のアプリケーションによって、そのアプリケーションが正しく機能するのに必要とされることがある。例えばApp1がジェスチャゲームであった場合、コンピューティングデバイス100の1以上のユーザのジェスチャを決定して正しく機能するために、タッチセンサ又はコンピューティングデバイス100のカメラによって提供されるデータにアクセスする必要があることがある。
【0015】
ワーキングデータの一部は、アプリケーションが正しく機能するのに必要である可能性があるが、各アプリケーションによって要求されるデータは変化する可能性があり、かつ/又はワーキングデータの一部はセンシティブな性質である可能性がある。これらの懸念事項の観点から、各アプリケーションが有するアクセスを、ワーキングデータに制限する必要があり得る。一部の実施形態において、データエージェント112は部分的に、各アプリケーションが有するアクセスを、それぞれのアプリケーションに関連付けられるデータ取得権限に基づくデータに制限し得る。
図2を参照して更に検討すると、データエージェント112は、更なる処理のために、ワーキングデータを、履歴データストアにアップロードするようにも動作し得る。
【0016】
一部の実施形態において、このデータ制限は、データエージェント112を、ローカルデータストア110と、ローカルデータストア110内に含まれるワーキングデータへのアクセスを必要とし得るアプリケーションとの間のインターミディアリとして実装することにより、達成され得る。これらの実施形態において、データエージェント112は、各アプリケーションのそれぞれのデータ取得権限に関連付けられるデータへの各アプリケーションアクセスのみを許可することにより、ワーキングデータへのゲートキーパーとして機能し得る。他の実施形態において、データエージェント112は、それぞれ個々のセンサからデータストリームへの直接アクセスを有してもよく、アプリケーションのそれぞれのデータ取得権限に基づいて、各アプリケーションによる必要なデータストリームへの直接アクセスを許可することにより、フィルタとして機能してよい。データストリームへの直接アクセスを可能にすることは、アプリケーションの処理が時間にセンシティブである場合に有利であり得る。例えばナビゲーションアプリケーションにGPSデータストリームへの直接アクセスを提供し、座標をできるだけ早く処理することを保証するのに有利であり、このことは、ユーザに、ナビゲーションアプリケーションによって生成される指示に応答するのに多くの時間を与えることができる。これらの実施形態において、データエージェント112は、依然として、コンピューティングデバイス100上で動作しているアプリケーションと、ローカルデータストア110内に格納される任意のデータとの間のインターミディアリとして機能し得る。加えて、センサからのデータストリームは、更なる処理のためにローカルデータストア110に向けられてもよい。
【0017】
一部の実施形態において、アプリケーションは、センサのうちの1つ以上によって提供されるデータのサブセットへのアクセスのみを必要とすることがある。これらの状況では、アプリケーションに、センサデータの一部、要約(summary)及び/又は難読化(obfuscation)を提供するという利点がある。センサデータの一部、要約及び/又は難読化のみへのアクセスを許可することの利点の一部には、ユーザのプライバシを守り、より価値があると考えられるデータ又は収集するのがより困難な可能性があるデータへのアクセスを制限することが含まれ得る。
【0018】
一部の実施形態において、コンピューティングデバイス100上で動作するアプリケーションは、センサによって提供されるデータの一部のみを必要とすることがある。例えばローカル化アプリケーション又はサービスといったアプリケーションは、マイクロフォンからの特定の範囲の周波数のみへのアクセスを必要とし得る。そのような例では、ローカル化アプリケーション又はサービスは、可聴範囲及び/又は音声範囲より上の周波数へのアクセスのみを必要とし、アプリケーションに関連付けられるデータ取得権限は、例えばアプリケーションがその範囲の周波数のみを受け取り、ユーザのプライバシを保護することを可能にし得る。これは、データエージェント112の内部のミドルウェア処理を通して、別のミドルウェアアプリケーションを通して、あるいは他の周波数をフィルタアウトするように機能し得るコンピューティングデバイス100のハードウェア機構を通して達成され得る。
【0019】
他の実施形態において、コンピューティングデバイス上で動作しているアプリケーションがデータの一部へのアクセスのみを必要とする場合、必要とされないデータを難読化する必要があることがある。例えばアプリケーションが、正しく機能するのに顔の表情を必要とする場合、アプリケーションのデータ取得権限は、顔の表情のみを含む、難読化されたバージョンのデータに制限され得る。これらの実施形態では、データエージェント112又は別のミドルウェアアプリケーションといったミドルウェアアプリケーションは、カメラからの1つ以上の画像を処理し得る。ミドルウェアは、画像内の顔の位置を決定し、1つ以上の画像内の残りの部分を難読化するように動作し得る。
【0020】
更に他の実施形態では、コンピューティングデバイス上で動作しているアプリケーションが、センサからの生のデータへのアクセスは必要としないが、データの要約へのアクセスを必要とすることがある。例えばジェスチャがカメラを通して入力されるジェスチャベースのゲームの場合、アプリケーションは、ユーザのワイヤフレーム表現へのアクセスのみを必要とし、データ取得権限は、このワイヤフレーム表現へのアクセスを制限することがある。この例の下では、データエージェント112又は別のミドルウェアアプリケーションのようなミドルウェアアプリケーションは、カメラからの生のデータを処理して、ワイヤフレームのみをアプリケーションに提示し得る。
【0021】
データ取得権限は、幾つかの方法で取得され得る。例えばデータエージェント112がコンピューティングデバイスプラットフォームのプロバイダによって提供され得る場合、データ取得権限は、データエージェント112のプロバイダと、データにアクセスする必要があるアプリケーションのプロバイダとの間でネゴシエートされ得る。これは、上述のように、アプリケーションが正しく動作するのに必要なデータのみに、そのアプリケーションが制限され得るように、アプリケーションが正しく動作するのに必要なデータに基づくものであってよい。他の実施形態において、アプリケーションのプロバイダは、利用可能なデータのメニューから選択することも可能である。
【0022】
他の実施形態において、ユーザは、アプリケーションに対して利用可能なデータ取得権限を、データエージェント112を通して制御することができる。これは、それぞれのアプリケーションに関連付けられ得る、コンピューティングデバイスでの設定を通して達成され得る。この設定は、例えばアクセスを許可する際のユーザの利点に基づいて、そのユーザがアクセスを許可するか制限することを可能にし得る。例えばアプリケーションが、上述のように、ワイヤフレーム表現へのアクセスしか必要としないジェスチャベースのアプリケーションであった場合、画像を処理してワイヤフレームをアプリケーションに提供するのにミドルウェアを必要とする場合とは対照的に、アプリケーションがカメラからのデータストリームへアクセスを有する場合、アプリケーションのパフォーマンスは向上し得る。
【0023】
データ取得権限は、一部の実施形態において、静的に定義されるのではなく、動的に決定され得る。これらの実施形態において、データ取得権限は、ユーザ及び/又はデバイスのコンテキストの変化に応じて変化し得る。例えばアプリケーションは、例えばデバイスがデータ取得権限により更に制限され得る場所であるユーザの家になければ、その場所のそのデバイスへのアクセスを有してよい。一部の実施形態において、データ取得権限は、例えば場所、期間、アクティビティ(例えばランニング、睡眠、ゴルフ等)又はアプリケーションの用途(例えばゲーム、ナビゲーション、コンテンツストリーミング等)に基づく特定のデリミタを通して決定されてよい。例えば特定のエクササイズアプリケーションは、ユーザがエクササイズをしている間にデータへのアクセスを必要とするだけであり、これは、例えばランニングのようなアクティビティ、例えばユーザがジムにいる間のようなユーザの位置、及び/又心拍数モニタのような別のアプリケーションが実行しているかどうか、に基づいて決定され得る。これらのデリミタは、データ取得権限において、上記デリミタのうちの任意の数のデリミタ又は組合せに基づいてデータ取得権限を決定するよう、ブール演算子を使用して定義されてよいことが認識されよう。
【0024】
コンピューティングデバイス上で動作するアプリケーションは、任意の数の手段を通じてデータへのアクセスを可能にされ得る。例えばアプリケーションは、該アプリケーションのインストールがあると、データエージェント112に登録され得る。この登録プロセスは、一部の実施形態において、データエージェント112に、暗号化鍵を提供することを含むことがあり、暗号化鍵は、データエージェント112を通して必要なデータへのアクセスを許可するアプリケーションに組み込まれ得る。他の実施形態において、アプリケーションには、パスワード又はデータへのアクセスを可能にする別の認証機構が提供され得る。
【0025】
ローカルデータストア110内のデータにアクセスすることに加えて、一部の実施形態では、コンピューティングデバイス100上で動作するアプリケーションは、ローカルデータストア110にデータを提供し得る。例えばApp2は、コンピューティングデバイス100のカメラからの画像データにアクセスすることがあるが、その画像データを処理して、ローカルデータストア内に格納されるかコンピューティングデバイス100上で動作している別のアプリケーションに直接提供され得る追加のデータを提供してもよい。一部の実施形態において、このデータは、他のアプリケーションの処理ニーズのために、他のアプリケーションに提供されてもよい。例えばApp2によって提供される画像データの処理は、画像データの一部を、App2によってローカル又はリモートからアクセスされる画像のストアと相関させてよく、これは次いで、App1が処理するのに利用可能にされ得る。
【0026】
一部の実施形態において、データエージェント112は、同じ又は他のユーザの他のデバイスからの同様の種類のデータとの分類及び/又は相関のために、ワーキングデータのコピーを、
図2に図示されるようなリモートの履歴データストアに周期的に伝送し得る。データエージェント112は、通信モジュール114を使用して、この周期的伝送を達成し得る。一部の実施形態において、ワーキングデータは、履歴データストアによる他のワーキングデータとともに分類されて、相関されてよい。
【0027】
2つのアプリケーションのみがコンピューティングデバイス100上で動作するように図示されているが、任意の数のアプリケーションがコンピューティングデバイス100上で実行され、データエージェント112と対話してもよい。さらに、スマートフォンとして図示されているが、コンピューティングデバイス100は、本開示の範囲から逸脱することなく、任意のコンピューティングデバイスとすることができることが認識されよう。そのようなコンピューティングデバイスには、これらに限られないが、スマートフォン、タブレット、ラップトップ若しくはデスクトップコンピュータ、ビデオゲームシステム、スマートテレビジョン、スマート機器、又は本開示で詳細に説明される機能を実行することが可能な任意の他のコンピューティングデバイスが含まれる。
【0028】
図2は、本開示の一部の実施形態による例示のコンピューティング環境を示す。コンピューティング環境200は、ここではクラウドとして示される1つ以上のネットワークを通して履歴データストア202に結合される、複数のコンピューティングデバイス100及び204〜208で構成され得る。
【0029】
図1に関連して述べたように、コンピューティングデバイス100のデータエージェントは、デバイス100のワーキングデータ110を履歴データストア202に周期的に伝送するように動作し得る。履歴データストア202は、一部の実施形態では、コンピューティングデバイス100からのワーキングデータ110を、それぞれコンピューティングデバイス204〜208のワーキングデータ210〜214、履歴データストア202に既に含まれている任意のワーキングデータとともに集約して格納してよい。一部の実施形態において、履歴データストア202は、ワーキングデータの異なるセットを相関させるか、及び/又は分類することがあり、これによりコンピューティングデバイスのワーキングデータ内の関係、例えば同じコンピューティングデバイスの異なるセンサによって収集されたデータ間の関係を識別し、さらに、コンピューティングデバイス間のワーキングデータの関係も識別することができる。相関及び/又は分類を通して識別され得る関係を用いて、個々のコンピューティングデバイス上で可能ではない可能性があるデータの更なる分析を実行してもよい。一部の実施形態において、更なる分析の結果は、コンピューティングデバイスによる更なる処理及び/又は利用のために、コンピューティングデバイスのローカルデータストアに戻すように伝送され得る。例えばデータ処理が時間センシティブではない場合、この処理は、履歴データストアにおいて、例えば履歴データストアで実行しているミドルウェアプロセスによって実行され得る。その後、処理の結果は、コンピューティングデバイスの要求があるとプルされ、あるいは履歴データストアによって、更なる処理又は出力のためにコンピューティングデバイスに戻すようにプッシュされ得る。
【0030】
履歴データストア202は、一部の実施形態において、クライアントデバイス204〜208のうちの1つに格納されてよい。加えて、ハードディスク障害、あるいはクライアントデバイス上又はクラウドベース若しくはネットワークベースのストア内のデータに対する他の障害がある場合、クライアントデバイス204〜208のいずれかが、履歴データストア202のバックアップコピーとして機能し得る。
【0031】
一部の実施形態において、履歴データストア202へのワーキングデータの周期的な伝送は、個々のデバイスについて指定される特定の時間に又は特定の時間間隔で起こり得る。例えばデータエージェントは、毎日、コンピューティングデバイスの使用に影響を与えない可能性が高い時間に、あるいは12時間ごとの間隔で、ワーキングデータを伝送するよう試みることがある。一部の実施形態において、データエージェントは、コンピューティングデバイスが、ワーキングデータを履歴データストア202に伝送することができる接続を確立していると検出すると、ワーキングデータを転送してよい。他の実施形態では、データエージェントは、ワーキングデータのサイズが特定の閾値を超えるときはいつも、ワーキングデータを履歴データストア202に伝送するよう試みることがある。例えばワーキングデータはコンピューティングデバイスのバッファ内に格納され、バッファが設定サイズに到達すると、データエージェントは、ワーキングデータを履歴データストア202に伝送し始めるか、伝送するよう試みを開始することになる。更に他の実施形態では、履歴データストア202は、要求又はクエリをコンピューティングデバイスに送信することにより、ワーキングデータの転送を開始することも可能である。更なる実施形態では、ユーザが、履歴データストア202へのワーキングデータの伝送をトリガしてもよい。これらの実施形態は、任意の組合せで、併合的に又は個別に用いられてよい。
【0032】
実施形態において、データエージェントは、ワーキングデータを履歴データストア202にセキュアな手法で伝送することがある。一部の実施形態において、セキュアな手法は、履歴データストア202へのワーキングデータの伝送に先立って、ワーキングデータの暗号化を要することがある。暗号化は、データジェージェント自体によって行われてもよく、別のハードウェア又はソフトウェアの暗号化機構を通して行われてもよい。一部の実施形態において、セキュアな手法は、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)又はハイパートランスファープトロコルセキュア(HTTPS)といったセキュアプロトコルを用いることを必要とすることがある。一部の実施形態において、データエージェントは、ユーザ及び/又はコンピューティングデバイスの識別情報を確認するよう機能するデジタル署名を使用して伝送に署名をしてもよい。デジタル署名は、例えばユーザ及び/又はデバイスに関連付けられ得る秘密鍵に基づくものであってよく、秘密鍵は、例えばリモートの受信者によって保持される公開鍵によって検証され得る。本開示の範囲から逸脱することなく、ワーキングデータをセキュアに伝送する任意の手法が用いられてもよいことが認識されよう。
【0033】
実施形態において、履歴データストア202は、各デバイスからのデータを、履歴データストア202に既に含まれているデータ、並びに他のコンピューティングデバイスから受け取ったデータと相関させることがある。一部の実施形態において、これは、ワーキングデータのためのタイムスタンプ及び/又は位置スタンプを含み、データが生成された時間及び/又はデータが生成された位置に基づいてデータを相互に関連付けることにより達成され得る。タイムスタンプ及び/又は位置スタンプは、コンピューティングデバイスのハードウェア及び/又はソフトウェア機構により、データレコードへ統合されてよく、必要な情報が伝達され得る限りにおいて、任意の形式を取ってよい。他の実施形態では、この相関は、データの分析に基づくものであってよい。例えばワーキングデータがオーディオデータを含む場合、次いでオーディオデータを分析して、履歴データストア202内の他のオーディオデータと比較して、オーディオデータに含まれるサウンド及び/又は音声を決定し、そしてこのサウンド及び/又は音声を、同じ又は同様の特性を有する他のデータと相互に関連付けてよい。一部の実施形態において、これらの相関方法は併せて使用されてよい。
【0034】
分析を通した相関は、複数のデバイスからデータを収集し、単一のグループ経験を再作成する際に有益であり得る。例えばあるグループのユーザがビデオゲームをプレイしている場合、複数のコンピューティングデバイスが、センサデータを、コンピューティングデバイスのワーキングデータに記録していることがある。各コンピューティングデバイスは後に、このワーキングデータを履歴データストア202に伝送してよく、この場合、コンピューティングデバイスのオーディオセンサからのワーキングデータを使用して、各デバイスからのデータを、他のデバイスからのデータに相関させてよい。これは、同じ音声が他のデバイスのオーディオデータ内に存在し得ることを判断するオーディオデータの分析に基づくものであってよい。一部の実施形態において、タイムスタンプ及び/又は位置スタンプは、分析する必要があるデータセットを絞ることにより、この分析を助けるのに使用され得る。この例ではオーディオデータが使用され得るが、上記の相互関連付けを行うことができる全てのデータを使用してもよいことは明らかであろう。
【0035】
実施形態において、履歴データストア202は、各デバイスから受け取ったワーキングデータを分類し得る。これは、データのタイプ及び/又はフォーマットに基づいてデータを分類することにより達成され得る。例えばオーディオデータを全て一緒に分類してもよい。一部の実施形態において、分類は、データを生成したセンサに基づくものであってよい。例えばコンピューティングデバイスのカメラからのデータを全て一緒に分類してもよい。更に他の実施形態において、データは、該データが生成された時点のデバイスのユーザに基づいて分類されてもよい。一部の実施形態において、データは、上述の分類方法のいずれかに基づいて、更にサブ分類されてもよい。例えばオーディオデータは、データのフォーマット(例えばMP3、WAV等)に基づくサブカテゴリを有することがある。
【0036】
実施形態において、履歴データストア202は、分析のために、履歴データストア202内のデータのアクセスを要求者に提供することがある。要求者は、一部の実施形態では、コンピューティングデバイス上で実行しているアプリケーションのうちの1つのプロバイダであり得る。一部の実施形態において、この要求は、アプリケーションの使用についての追加の情報を得るために行われることがある。例えばプロバイダは、コンピューティングデバイス上のアプリケーションにアクセス可能なデータにおいて、そのプロバイダが更に調査したいと思うものに気付くことがある。例えばアプリケーションがジェスチャベースのゲームであり、プロバイダが、ゲームプレイ内の何らかの中断(pauses)があると気付いた場合、次いで、アプリケーションのプロバイダは、これらの中断と相関して何が起こっているかを知りたいことがある。これは、中断に何らかのコンテキストを提供し得る。別の例では、プロバイダは、アプリケーションに利用可能なデータを、該アプリケーションがコンピューティング上で行うことができる分析よりも更に詳細に分析して、例えばジェスチャベースのゲーム中のジェスチャの解釈を改善することを望むことがある。他の実施形態において、要求者は、コンピューティングデバイス上で動作するアプリケーションであってよく、アプリケーションの即時処理のニーズには必要ではないが、それでもやはり、アプリケーションにより何らかの手法で使用され得るデータへのアクセスを取得する。一部の実施形態において、要求者は、コンピューティングデバイスのプロバイダ又はコンピューティングデバイスの何らかの部分のプロバイダであってよく、要求されるデータは、コンピューティングデバイスの何らかの使用又は問題の更なる理解を助けるために用いられてもよい。例えばコンピューティングデバイスは障害に遭遇することがあり、コンピューティングデバイスのプロバイダは、その障害の周辺の何らかの追加の背景情報を収集することを望むことがある。一部の実施形態において、コンピューティングデバイス上のデータエージェントは、ローカルの要求者を提供するだけでなく、履歴データストアに関して上述したのと同様に、ローカルのデータストアにアクセスするリモートの要求者を提供することもある。任意の要求者が考えられ、上記の実施形態は説明の目的のみで意図されていることが認識されよう。
【0037】
一部の実施形態において、要求者は、例えばコンピューティングデバイスのいずれか1つで動作しているアプリケーションを通してその要求者が以前にアクセスを有していたデータの一部又は断片を提供し得る。データのこの一部分を、履歴データストア202内のデータと相関させて、要求に適用可能なデータのサブセットを決定してもよい。データの要求は、データのこのサブセットで満たされ得る。
【0038】
アクセスは、
図1に関連して上述したものと同様のデータ取得権限に基づくものであってよい。一部の実施形態において、要求者は、コンピューティングデバイスの単一のセンサからのデータへのアクセス、あるいは上述のように相互に関連付けられた異なるコンピューティングデバイス上の同様のセンサからのデータへのアクセスのみを必要とすることがある。他の実施形態において、要求者は、履歴データストア202に含まれるデータのサブセット、要約又は難読化へのアクセスのみを必要とすることがある。これは、上述した手法と同様の手法で、データエージェントと同様のコンポーネントに、あるいは履歴データストア202のために実装される他のミドルウェアに提供され得る。
【0039】
データ取得権限は、このデータ取得権限がローカルデータストア及び/又は履歴データストア202にアクセスするのに使用されるかどうかに関わらず、幾つかの方法で取得され得る。例えば履歴データストア202が第三者ベンダ又はコンピューティングデバイスプラットフォームのプロバイダによって提供され得る場合、データ取得権限は、プロバイダと、データへのアクセスを必要とする要求者との間でネゴシエートされ得る。他の実施形態では、ユーザは、要求者に利用可能なデータ取得権限を制御することができる。これは、例えばユーザに提示されるか、コンピュータアプリケーションのインストール時又はコンピューティングデバイスの購入時にユーザによって認証される認証要求、例えばデータの使用を許可するエンドユーザライセンスの同意を通じて達成され得る。実施形態において、データ取得権限は、要求がローカルデータストアのものであるか、履歴データストア202のものであるかに応じて変わることがある。したがって、要求者は、データソースのいずれか又は双方へのデータ取得権限を取得する必要があることがある。
【0040】
図3は、本開示の一部の実施形態による、コンピューティングデバイスのデータエージェントに関連付けられる例示の方法を示すフローチャートである。処理はブロック300で始まり、ここで、データエージェントは、
図1のワーキングデータ110のようなワーキングデータへのアクセスを求める要求を受け取る。ブロック302において、データエージェントは、要求に関連付けられるデータ取得権限を識別して、どのデータアクセスが必要とされ得るかを決定する。これは、
図1に関連して上記したように、パスワードや暗号化鍵のような認証情報を受け取ることによって達成されてよく、データエージェントは、このパスワードや暗号化鍵のような認証情報を使用して、関連する権限を識別する。一部の実施形態において、データ取得権限を、データエージェントが動作しているコンピューティングデバイス上に格納された情報から決定することができる。他の実施形態において、データエージェントは、データ取得権限を決定するのにリモートソースへのアクセスを必要とすることがある。データ取得権限を決定した後、データエージェントは、そのデータ取得権限に基づいてデータへのアクセスを許可する。
図1に関連して上述したように、データ取得権限は、ワーキングデータのサブセット、ワーキングデータの要約又はワーキングデータの難読化にアクセスを制限するように機能することがある。ブロック306において、データエージェントは、上記で
図2に関連して検討したように、ワーキングデータのコピーを履歴データストアに伝送し得る。ここでは、ワーキングデータの伝送は、ローカルデータストア内に含まれるデータの要求の後に生じるように説明されるが、履歴データストアへのローカルデータストアの伝送は、そのような要求に付随しなくてもよく、ローカルデータストアは、そのような要求が行われたかどうかに関わらず、履歴データストアに伝送されてよい。一部の実施形態において、ワーキングデータは、履歴データストアへの伝送の後に削除されてよい。他の実施形態において、ワーキングデータは、伝送後のある期間の間は残ってよい。上記で
図2に関連して詳細に検討したように、伝送は、ワーキングデータを伝送するのに十分なデータ接続をデータエージェントが検出すると、ワーキングデータが所定の閾値サイズを超えると、履歴データストアからの要求があると、及び/又はコンピューティングデバイスのユーザの要求があると、特定の時間に又は特定の時間間隔で起こり得る。
【0041】
図4は、
図1のコンピューティング環境100の履歴データストアに関連付けられる例示の処理を示すフローチャートである。処理はブロック400で始まり、ここで、履歴データストアは、複数のコンピューティングデバイスからデータを受け取る。ブロック402において、受け取ったデータは、他のデバイスのデータ及び履歴データストアに既に含まれているデータとともに分類され得る。分類の処理は、
図2に関連して上記で更に詳細に説明されている。ブロック404において、受け取ったデータは、
図2に関連して上記で更に詳細に説明されるように、同じユーザ又は異なるユーザの他のデバイスのデータ及び履歴データストアに既に含まれているデータと相関され得る。
【0042】
図5は、データの要求を受け取る履歴データストアに関連付けられる例示の処理を示すフローチャートである。処理はブロック500で始まり、ここで、履歴データストアは、格納済みデータへのアクセスの要求を受け取る。ブロック502において、履歴データストアは、要求に関連付けられるデータ取得権限を識別し、どのデータアクセスが必要とされるかを決定し得る。これは、
図1及び
図2に関連して上記で検討したように、パスワードや暗号化鍵といった、履歴データストアが関連する権限を識別するのに使用し得る認証情報を受け取ることにより達成され得る。一部の実施形態において、データ取得権限を、履歴データストアに格納された情報から決定することが可能である。他の実施形態において、履歴データストアは、データ取得権限を決定するのにリモートソースにアクセスする必要があることがある。ブロック504において、データ取得権限を決定した後、履歴データストアは、データ取得権限に基づいてデータへのアクセスを許可する。ブロック506において、履歴データストアは、要求されたデータを要求側デバイスへ伝送し得る。
図2に関連して上述したように、データ取得権限は、履歴データストアに格納されるデータのサブセット、履歴データストアに格納されるデータの要約及び/又は履歴データストアに格納されるデータの難読化へのアクセスを制限するように機能し得る。
【0043】
図6は、本開示の一部の実施形態に係る例示のコンピューティングデバイス600を示す。コンピューティングデバイス600は、複数のセンサ602と、ネットワークインタフェースカードのような通信モジュール604と、メモリ608と、データエージェント606を含んでよく、これらは全てバス610を通してともに接続される。データエージェント606は、一部の実施形態において、1つ以上のコンピュータ読取可能記憶媒体に結合される1つ以上のプロセッサを備え得る。1つ以上のコンピュータ読取可能記憶媒体は、1つ以上のプロセッサによって実行されると、コンピューティングデバイス600に、上述のコンピューティングデバイスの処理の1つ又は複数を実行させる命令を含み得る。他の実施形態において、データエージェント606は、コンピューティングデバイス600に、上述のコンピューティングデバイスの処理の1つ又は複数を実行させる、任意の数のハードウェア及び/又はソフトウェアコンポーネントで構成されてもよい。1つ以上のプロセッサは、任意のタイプのシングルコア若しくはマルチコアプロセッサ又はこれらの任意の組合せであってよい。この開示は、プロセッサのタイプ及び/又は数に関わらず、等しく適用可能である。
【0044】
図7は、本開示の一部の実施形態による、履歴データストアを提供する例示のサーバを示す。サーバ700は、プロセッサ702、ネットワークインタフェースカード(NIC)704、メモリ706及び履歴データストア708を備え得る。
図7に図示される履歴データストア708は、受け取ったデータだけでなく、クライアントデバイスからデータを受け取ることに関連付けられる前述の動作を実行し、受け取ったデータを分類及び/又は相関し、分類及び/又は相関したデータの要求に応答するためのロジックも格納するためのストレージを含む。プロセッサ702、NIC704、メモリ706及び履歴データストア708は全て、システムバス710を用いて一緒に結合され得る。
【0045】
プロセッサ702は、一部の実施形態では、単一のプロセッサであってよく、他の実施形態では、複数のプロセッサで構成されてもよい。一部の実施形態において、複数のプロセッサは、同じタイプ、すなわち同種のものであってもよく、あるいは異なるタイプ、すなわち異種のものであってもよく、任意のタイプのシングルコア又はマルチコアプロセッサを含んでよい。この開示は、プロセッサのタイプ及び/又は数に関わらず、等しく適用可能である。実施形態において、NIC704は、サーバ700によって、
図2に示されるような上記のネットワークにアクセスするのに使用され得る。実施形態において、NIC704は、有線又は無線ネットワークにアクセスするのに使用されてよく、本開示は等しく適用可能である。実施形態において、メモリ706は、任意のタイプのコンピュータ読取可能記憶媒体であってよく、あるいは異なるタイプのコンピュータ読取可能記憶媒体の任意の組合せであってよい。例えば実施形態において、メモリ706は、これらに限定されないが、半導体ドライブ(SSD)、磁気若しくは光ディスクハードドライブ、揮発性若しくは不揮発性、動的若しくは静的なランダムアクセスメモリ、フラッシュメモリ又はこれらの任意の複数若しくは組合せを含み得る。実施形態において、メモリ706は、プロセッサ702によって実行されると、サーバ700に、履歴データストアに関連して上述した処理の1つ以上の動作を実行させる命令を格納し得る。
【0046】
本開示の実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、又はハードウェアの要素とソフトウェアの要素の双方を含む実施形態の形を取ることができる。様々な実施形態において、ソフトウェアは、これらに限られないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含んでよい。さらに、本開示は、コンピュータ又は任意の命令実行システムにより又はこれらとともに使用するためにプログラムコードを提供するコンピュータ利用可能又はコンピュータ読取可能な媒体からアクセス可能な、コンピュータプログラム製品の形を取ることができる。本明細書で使用されるとき、モジュールは、ハードウェア、ソフトウェア又はハードウェアとソフトウェアの組合せを指すことがある。
【0047】
この説明の目的では、コンピュータ利用可能又はコンピュータ読取可能な媒体は、命令実行システム、装置又はデバイスにより、又はこれらとともに使用するためのプログラムを包含、格納、通信、伝播又は伝達することができる任意の装置とすることができる。媒体は、電気、磁気、光学、電磁気、赤外線又は半導体システム(若しくは装置、デバイス)又は伝搬媒体とすることができる。コンピュータ読取可能記憶媒体の例には、半導体又は固体のメモリ、磁気テープ、着脱可能コンピュータディスケット、USBドライブ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、剛性の磁気ディスク及び光ディスクが含まれる。光ディスクの現在の例には、コンパクトディスク読取専用メモリ(CD−RAM)、コンパクトディスク読取/書込(CD−R/W)及びDVDが含まれる。
【0048】
本明細書では、具体的な実施形態を図示し、説明してきたが、本開示の実施形態の範囲から逸脱することなく、広範な代替及び/又は均等な実装が、図示及び説明される具体的な実施形態を代替してよいことが当業者には認識されよう。本出願は、本明細書で検討される実施形態の全ての適合又は変形を網羅するように意図される。したがって、本開示の実施形態は、特許請求の範囲及びその均等の範囲によってのみ限定されるように明確に意図される。
【0049】
<例>
例1は、データを管理するためのコンピューティングデバイスであり:複数のセンサと;1つ以上のメモリモジュールと;通信モジュールと;1つ以上のメモリモジュール、通信モジュール及び複数のセンサに結合されるデータエージェントとを含み、該データエージェントは、複数のセンサからデータエージェントにより受け取られるデータへのアクセスを、当該コンピューティングデバイス上で実行している1つ以上のアプリケーションに提供し、当該コンピューティングデバイス上で実行している1つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求するように構成され、履歴データストアは、1つ以上の他のデバイスからの分類又は相関されたデータを含む。
【0050】
例2は、例1に係る主題を含んでよく、複数のセンサからデータエージェントにより受け取られるデータへのアクセスは、データエージェントにより、複数のセンサから受け取られるデータのサブセットに制限され、データのサブセットは、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて決定される。
【0051】
例3は、例1に係る主題を含んでよく、複数のセンサからデータエージェントにより受け取られるデータへのアクセスを提供することは、データエージェントにより、複数のセンサから受けられるデータの少なくともサブセットの難読化を更に含み、データのサブセットは、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて決定される。
【0052】
例4は、例2又は例3に係る主題を含んでよく、1つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【0053】
例5は、例1乃至例3のいずれか1つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、データエージェントは、所定の時間期間;コンピューティングデバイスによるネットワーク接続の検出;バッファが所定のサイズに到達したという決定;ユーザによる手動のアクティブ化;又はリモートの履歴データストアからのクエリ;のうちの少なくとも1つに基づいて、データのコピーをリモートの履歴データストアに伝送するように更に構成される。
【0054】
例6は、例1乃至例3のいずれか1つに係る主題を含んでよく、データエージェントは、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、1つのセンサからのデータを他のセンサのデータに相関させるように更に構成される。
【0055】
例7は、例1乃至例3のいずれか1つに係る主題を含んでよく、データエージェントは、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、データのコピーを暗号化するように更に構成される。
【0056】
例8は、例1乃至例3のいずれか1つに係る主題を含んでよく、データエージェントは、更なる処理のために1人以上の他のユーザに関連付けられるコンピューティングデバイスからのデータとともに分類又は相関されるように、複数のセンサからのデータのコピーを、通信モジュールを介してリモートの履歴データストアに周期的に伝送するように更に構成される。
【0057】
例9は、複数のコンピューティングデバイスのデータを相関させるためにコンピュータで実施される方法であって:サーバにより、複数のユーザに関連付けられる対応する複数のコンピューティングデバイスからのデータを受け取るステップであって、あるコンピューティングデバイスからのデータが、該コンピューティングデバイスの1つ以上のセンサからのデータを少なくとも含む、ステップと;データを履歴データストアに格納するステップと;サーバによりデータを相関させるステップとを含む。
【0058】
例10は、例9に係る主題を含んでよく、サーバによりデータを分類するステップを更に含む。
【0059】
例11は、例9に係る主題を含んでよく、相関は、データ内に含まれるタイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【0060】
例12は、例9乃至例11のいずれか1つに係る主題を含んでよく、サーバにより、履歴データストア内のデータへのアクセスを求める要求を受け取るステップと;サーバにより、要求に応答して、履歴データストア内のデータのサブセットへのアクセスを提供するステップとを更に含み、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【0061】
例13は、例12に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、方法は、更なる分析用に取り出すために、サーバにより、ローカルデータの一部を履歴データストア内に含まれるデータと相関させるステップを更に含む。
【0062】
例14は、例9乃至例11のいずれか1つに係る主題を含んでよく、データの分類は、データに関連付けられるタイプ;コンピューティングデバイスに関連付けられるユーザ;又はデータを生成したセンサのタイプ;のうちの1つ以上に少なくとも部分的に基づく。
【0063】
例15は、複数のコンピューティングデバイスのデータを相関させるためにコンピューティング装置であって:複数のコンピューティングデバイスからデータを受け取る手段であって、あるコンピューティングデバイスからのデータが、該コンピューティングデバイスの1つ以上のセンサからのデータを少なくとも含む手段と;データを履歴データストアに格納する手段と;データを相関させる手段とを含む。
【0064】
例16は、例15に係る主題を含んでよく、データを分類する手段を更に含む。
【0065】
例17は、例15に係る主題を含んでよく、相関は、データ内に含まれるタイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【0066】
例18は、例15乃至例17のいずれか1つに係る主題を含んでよく、履歴データストア内のデータへのアクセスを求める要求を受け取る手段と;要求に応答して、履歴データストア内のデータのサブセットへのアクセスを提供する手段とを更に含み、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【0067】
例19は、例18に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、更なる分析用に取り出すために、ローカルデータの一部を履歴データストア内に含まれるデータと相関させる手段を更に含む。
【0068】
例20は、例15乃至例17のいずれか1つに係る主題を含んでよく、データの分類は、データに関連付けられるタイプ;コンピューティングデバイスに関連付けられるユーザ;又はデータを生成したセンサのタイプ;のうちの1つ以上に少なくとも部分的に基づく。
【0069】
例21は、コンピューティングデバイスのローカルデータを管理するためのコンピューティング装置であって:コンピューティングデバイス上で実行している1つ以上のアプリケーションによる同時処理のために、ローカルデータへのアクセスをコンピューティングデバイス上で実行している1つ以上のアプリケーションに提供するための手段を備え、ローカルデータは、少なくとも部分的に、コンピューティングデバイスの1つ以上のセンサに関連付けられ;当該コンピューティング装置はまた、他のコンピューティングデバイスからのデータとともに分類又は相関させるために、ローカルデータのコピーをリモートの履歴データストアに伝送するための手段を備える。
【0070】
例22は、例21に係る主題を含んでよく、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて、ローカルデータのアクセスをローカルデータのサブセットに制限する手段を更に含む。
【0071】
例23は、例21に係る主題を含んでよく、ローカルデータのアクセスを提供するとき、ローカルデータの少なくとも一部への難読化のレベルを提供する手段を更に含み、難読化のレベルは、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づく。
【0072】
例24は、例22又は例23に係る主題を含んでよく、1つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【0073】
例25は、例21乃至例23のいずれか1つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、所定の時間期間;コンピューティングデバイスによるネットワーク接続の検出;バッファが所定のサイズに到達したという決定;ユーザによる手動のアクティブ化;又はリモートの履歴データストアからのクエリ;のうちの少なくとも1つに基づいて、データのコピーをリモートの履歴データストアに伝送する手段を更に含む。
【0074】
例26は、例21乃至例23のいずれか1つに係る主題を含んでよく、ローカルデータは、複数のセンサに関連付けられ、タイムスタンプ又は位置スタンプの少なくとも一方を含み、当該主題は、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、1つのセンサからのデータを他のセンサのデータに相関させる手段を更に含む。
【0075】
例27は、例22に係る主題を含んでよく、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、ローカルデータのコピーを暗号化する手段を更に含む。
【0076】
例28は、例21乃至例23のいずれか1つに係る主題を含んでよく、コンピューティングデバイス上で実行している1つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求する手段を更に含む。
【0077】
例29は、命令を格納する少なくとも1つのコンピュータ読取可能記憶媒体であり、命令は、ユーザに関連付けられるコンピューティングデバイスによる実行に応答して、コンピューティングデバイスに:コンピューティングデバイス上で実行している1つ以上のアプリケーションによる同時処理のために、ローカルデータのアクセスをその1つ以上のアプリケーションに提供させ、ローカルデータは、少なくとも部分的に、コンピューティングデバイスの1つ以上のセンサに関連付けられ;他のコンピューティングデバイスからのデータとともに分類又は相関されるように、ローカルデータのコピーをリモートの履歴データストアに伝送させるように構成されるデータエージェント、を提供する。
【0078】
例30は、例29に係る主題を含んでよく、データエージェントは、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づいて、ローカルデータのアクセスをローカルデータのサブセットに制限するように更に構成される。
【0079】
例31は、例29に係る主題を含んでよく、データエージェントは、ローカルデータのアクセスを提供するとき、ローカルデータの少なくとも一部への難読化のレベルを提供するように更に構成され、難読化のレベルは、1つ以上のアプリケーションに関連付けられるデータ取得権限に少なくとも部分的に基づく。
【0080】
例32は、例30又は例31に係る主題を含んでよく、1つ以上のアプリケーションは、様々なレベルのデータ取得権限に関連付けられる。
【0081】
例33は、例29乃至例31のいずれか1つに係る主題を含んでよく、ローカルデータは、コンピューティングデバイスのバッファ内に格納され、データエージェントは、所定の時間期間;コンピューティングデバイスによるネットワーク接続の検出;バッファが所定のサイズに到達したという決定;ユーザによる手動のアクティブ化;又はリモートの履歴データストアからのクエリ;のうちの少なくとも1つに基づいて、データのコピーをリモートの履歴データストアに伝送するように更に構成される。
【0082】
例34は、例29乃至例31のいずれか1つに係る主題を含んでよく、ローカルデータは、複数のセンサに関連付けられ、タイムスタンプ又は位置スタンプの少なくとも一方を含み、データエージェントは、タイムスタンプ及び位置スタンプに少なくとも部分的に基づいて、1つのセンサからのデータを他のセンサのデータに相関させるように更に構成される。
【0083】
例35は、例29乃至例31のいずれか1つに係る主題を含んでよく、データエージェントは、リモートの履歴データストアへのローカルデータのコピーの伝送に先立って、ローカルデータのコピーを暗号化するように更に構成される。
【0084】
例36は、例29乃至例31のいずれか1つに係る主題を含んでよく、データエージェントは、コンピューティングデバイス上で実行している1つ以上のアプリケーションの代わりに、履歴データストア内のデータへのアクセスを要求するように更に構成される。
【0085】
例37は、命令を格納する少なくとも1つのコンピュータ読取可能記憶媒体であって、命令は、サーバによる実行に応答して、該サーバに:複数のコンピューティングデバイスからデータを受け取らせ、あるコンピューティングデバイスからのデータは、該コンピューティングデバイスの1つ以上のセンサから収集されたデータを少なくとも含み;データを履歴データストアに格納させ;履歴データストア内のデータを分類して相関させる。
【0086】
例38は、例37に係る主題を含んでよく、データは、タイムスタンプと位置スタンプの少なくとも一方を含み、データの相関は、タイムスタンプ又は位置スタンプに少なくとも部分的に基づく。
【0087】
例39は、例37に係る主題を含んでよく、命令は、サーバによる実行に応答して、サーバに、履歴データストア内のデータへのアクセスの要求を受け取らせ、これに応答して、履歴データストア内のデータのサブセットへのアクセスを提供させ、サブセットは、要求に関連付けられるデータ取得権限によって決定される。
【0088】
例40は、例39に係る主題を含んでよく、要求は、コンピューティングデバイスからのローカルデータの一部を少なくとも含み、命令は、サーバによる実行に応答して、サーバに、更なる分析用に取り出すために、ローカルデータの一部を履歴データストア内に含まれるデータと相関させる。
【0089】
例41は、例37乃至例39のいずれか1つに係る主題を含んでよく、分類は、データに関連付けられるタイプ;コンピューティングデバイスに関連付けられるユーザ;又はデータを生成したセンサのタイプ;のうちの1つ以上に少なくとも部分的に基づく。
【0090】
例42は、例9乃至14のいずれか1つに係るコンピュータで実施される方法を実行するための手段を備える、コンピューティングデバイスである。
【0091】
例43は、コンピューティングデバイスによって実行されると、例9乃至14のいずれか1つ係るコンピュータで実施される方法を、そのコンピューティングデバイスに実行させる命令を備えるコンピュータ読取可能記憶媒体である。