(58)【調査した分野】(Int.Cl.,DB名)
検出された前記コンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、前記コンピューティングデバイスまたは前記ユーザのアクティビティの変更とのうちの1または複数を評価するプレディクタビリテイロジックをさらに備え、
前記プレディクタビリテイロジックは、前記評価に基づいて、前記コンピューティングデバイスの将来の使用挙動をさらに予測する、請求項1に記載の装置。
デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、前記第1コンテンツおよび前記第2コンテンツの間のコンフリクトを解消するコンフリクト解消ロジックをさらに備え、
前記ユーザ提供のコンフリクト解消ポリシーは、前記デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、請求項1に記載の装置。
前記第1および第2コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする1または複数のデータファイルのうちの1または複数を含む、請求項6に記載の装置。
ネットワークを介して、前記遠隔クラウドストレージデバイスまたは前記クライアントコンピューティングデバイスにおける前記ローカルストレージに格納されている前記コンテンツに関連する通知を通信する通信/互換性ロジックをさらに備え、
前記ネットワークはクラウドネットワークを有する、請求項8に記載の装置。
前記遠隔ストレージロジックはさらに、取得リクエストに応じて、使用およびプレディクタビリテイに基づき、前記遠隔クラウドストレージデバイスから前記コンテンツを取得し、
取得された前記コンテンツは前記クライアントコンピューティングデバイスにおける前記ローカルストレージに通信されて戻される、請求項8に記載の装置。
デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、前記第1コンテンツおよび前記第2コンテンツの間のコンフリクトを解消する段階をさらに備え、
前記ユーザ提供のコンフリクト解消ポリシーは、前記デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持し、
前記第1および第2コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイル、および、ストレージを必要とする1または複数のデータファイルのうちの1または複数を有する、請求項12に記載の方法。
クラウドネットワークを含むネットワークを介して、前記遠隔クラウドストレージデバイスに格納されている前記コンテンツに関連する通知を、前記クライアントコンピューティングデバイスに通信する段階と、
取得リクエストに応じて前記遠隔クラウドストレージデバイスから前記コンテンツを取得する段階と、
をさらに備え、
取得された前記コンテンツは、前記クライアントコンピューティングデバイスにおける前記ローカルストレージに通信されて戻される、請求項16に記載の方法。
【発明を実施するための形態】
【0004】
以下の説明では、多数の具体的な詳細が記載される。しかしながら、本明細書において説明される複数の実施形態は、これらの具体的な詳細なしに実施されてよい。他の複数の例において、本明細書の理解を妨げないようにするべく、周知の複数の回路、構造、および技術を詳細に示していない。
【0005】
複数の実施形態は、任意の数の要素、例えば合計のローカルストレージ領域、利用可能なローカルストレージ領域、および、様々なコンテキストベクトル、例えばユーザの現在および前の、コンピューティングデバイスとのインタラクション、位置、時刻、曜日、ユーザのアクティビティなどに基づいて、複数のコンピューティングデバイス(例えば、スマートフォン、複数のタブレットコンピュータなどの複数のモバイルコンピューティングデバイス)におけるストレージの動的で効率のよい管理を提供する。さらに、上の複数の要素を用いて、複数の実施形態は、コンピューティングデバイス、1または複数のアプリケーション、特定のコンテキスト、サービスなどに特有でありうるクラウドにおけるストレージの、エラスティックな量およびタイプと共に、動的な増加を提供する。複数の実施形態はさらに、モバイルデバイス上の制限されたローカルストレージの、最適化された使用を促進すべく、ユーザのモバイルデバイス上にローカルに存在するユーザの複数のアプリケーションおよび他のコンテンツ(例えば複数の写真、音楽など)の動的でコンテキストアウェアな態様の更新を提供する。
【0006】
例えば一実施形態において、様々なコンテキストアウェア、ロケーションアウェア、プレディクタビリテイ、コネクティビティ、プロキシミティ、および、位置管理の技術(例えば、インテル(登録商標)のCommon Connectivity Framework(CCF)、Bluetooth(登録商標)、Bluetooth(登録商標)低エネルギー(BLE)またはBluetooth(登録商標) Smart、WiFi proximity、無線周波数識別(RFID)、ジオフェンシング、位置ベースサービス(LBS)、バーチャルプライベートネットワーク(VPN)など)が使用され適切なものとして適用されてよく、かつ、例えば、ユーザおよび/またはデバイスの複数のアクティビティおよび挙動、ユーザおよび/またはデバイスの複数のアクティビティおよび挙動の履歴、アクティビティ/挙動における変化の性質および周波数、デバイスのタイプ(例えば、スマートフォン対ダムフォン、デスクトップコンピュータ対ラップトップコンピュータなど)、複数のデバイスの間の近接度/距離(例えば、少数フィート対、数千マイルなど)などに基づいてよい。複数の実施形態は任意の特定の技術または解決法には限定されないことに留意されたい。「Common Connectivity Framework」、「CCF」、「Bluetooth(登録商標)」などの特定の名前または用語の使用は実施形態を、製品内またはこの文書の外部の印刷物内にそのラベルを持つソフトウェアまたはデバイスに制限するように読まれるべきではないことにさらに留意されたい。
【0007】
図1は、一実施形態に係るコンピューティングデバイス100で採用された、複数のコンピューティングデバイス110のための動的なストレージ管理の促進メカニズムを図示する。コンピューティングデバイス100は、複数のコンピューティングデバイスの動的なストレージ管理を促進するホストマシン(「ストレージ管理メカニズム」)として機能する。コンピューティングデバイス100は、例えば、複数のスマートフォンを含む複数のセルラーフォン(例えば、Apple(登録商標)によるiPhone(登録商標)、Research in Motion(登録商標)によるBlackBerry(登録商標)など)、複数のパーソナルデジタルアシスタント(複数のPDA)、複数のタブレットコンピュータ(例えば、Apple(登録商標)によるiPad(登録商標)、Samsung(登録商標)によるGalaxy(登録商標)3など)、複数のラップトップコンピュータ(例えばノートブック、ネットブック、Ultrabook
TMなど)、複数の電子書籍リーダ(例えば、Amazon(登録商標)によるKindle(登録商標)、Barnes and Nobles(登録商標)によるNook(登録商標)など)などの複数のモバイルコンピューティングデバイスを含んでよい。コンピューティングデバイス100はさらに、複数のセットトップボックス(例えばインターネットベースのケーブルテレビの複数のセットトップボックスなど)、および、例えば複数のデスクトップコンピュータ、複数のサーバコンピュータなどの、より大きな複数のコンピューティングデバイスを含んでよい。
【0008】
コンピューティングデバイス100は、任意のハードウェアまたはコンピュータデバイス100の複数の物理リソースと、ユーザとの間のインターフェースとして機能するオペレーティングシステム(OS)106を有する。コンピューティングデバイス100はさらに、複数のタッチスクリーン、複数のタッチパネル、複数のタッチパッド、複数のバーチャルのまたは通常のキーボード、複数のバーチャルのまたは通常のマウスなどの複数の入力/出力(I/O)資源108だけでなく、1または複数のプロセッサ102、複数のメモリデバイス104、複数のネットワークデバイス、複数のドライバなどを有する。「コンピューティングデバイス」、「ノード」、「コンピューティングノード」、「ホスト」、「サーバ」、「メモリサーバ」、「マシン」、「デバイス」、「コンピューティングデバイス」、「コンピュータ」、「コンピューティングシステム」および同様のもののような複数の用語はこの文書にわたって互換的に使用されうることに留意されたい。
【0009】
図2は、一実施形態に係る複数のコンピューティングデバイス110のための動的なストレージ管理の促進メカニズムを図示する。一実施形態において、ストレージ管理メカニズム110は、受付/認証ロジック202、コンテキストアウェアデータ管理ロジック206、遠隔ストレージロジック208、および通信/互換性ロジック210などの多数のコンポーネントを含む。ストレージ管理メカニズム110はホストマシン、例えば
図1のコンピューティングデバイス100によりホスティングされてよく、また、ネットワーク220(例えばクラウドネットワーク、インターネットなど)などの1または複数のネットワークを介して、遠隔ストレージデバイス280などの1または複数のストレージデバイス、および、コンピューティングデバイス230(例えば、スマートフォン、タブレットコンピュータなどのモバイルコンピューティングデバイス)などの1または複数のコンピューティングデバイスと通信を行ってよい。
【0010】
コンピューティングデバイス230は、コンテキストアウェア検出管理ロジック242、プレディクタビリテイロジック244、コンフリクト解消ロジック245、ストレージ割り当てロジック246、通信ロジック248およびユーザインターフェース249などの1または複数のコンポーネントを有する動的なストレージ管理アプリケーション240を使用してよい。コンピューティングデバイス230は、ローカルストレージ250を含み、例えば近接ネットワーク(例えばBluetooth(登録商標)、BLEまたはBluetooth(登録商標) Smart、WiFi proximity、RFIDなど)および/またはネットワーク220などの1または複数のネットワークを介して遠隔デバイスストレージ270などの1または複数の遠隔ストレージデバイスへのアクセスを有してよい。コンピューティングデバイス230はまた、ネットワーク220を介し、ストレージ管理メカニズム110を経由して、遠隔クラウドストレージ280などの他の複数の遠隔ストレージデバイスへのアクセスを有してよい。一実施形態において、遠隔デバイスストレージ270は、スタンドアロンのストレージデバイスを含むか、コンピューティングデバイス230のユーザに属しうる別のコンピューティングデバイス、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォンなどの一部であってよい。いくつかの実施形態においては、任意の数およびタイプのクラウドベースの遠隔ストレージが採用されて直接的にまたは間接的にコンピューティングデバイス230と通信する状態に置かれうること、および、複数の実施形態は図示された単一の遠隔クラウドストレージデバイス280に限定されないことが意図される。同様に、任意の数およびタイプの、遠隔デバイスストレージ270などのデバイスベースのストレージデバイスと、コンピューティングデバイス230などの複数のコンピューティングデバイスとが採用されて、互いに通信する状態に置かれうる。
【0011】
一実施形態においては、受付/認証ロジック202は、遠隔ストレージ280の使用と、ストレージ管理メカニズム110の様々なコンポーネント204―210により実行されることが可能な他の複数のタスクとについての要求をコンピューティングデバイス230から受信してよい。要求を受信すると、コンピューティングデバイス230および/またはそのユーザは、任意の数およびタイプの認証技術およびデータ、例えばユーザ識別子(userID)、パスワード、シークレットな複数の質問、パブリック/プライベートな複数のキー、暗号、複数のインターネットプロトコル(IP)アドレスなどを用いて受付/認証ロジック202により認証される。一度、認証処理が完了すると、ストレージ管理メカニズム110およびストレージ管理アプリケーション240は、任意の数およびタイプの同期技術を用いて、通信および同期状態に置かれてよい。いくつかの実施形態において、コンピューティングデバイス230は、コンピューティングデバイス230および遠隔ストレージ270、280の間でデータを直接的に通信するべく、(例えば、インターネットプロトコル(IP)通信によって)遠隔クラウドストレージ280および/または遠隔デバイスストレージ270と直接通信してよい。
【0012】
コンピューティングデバイス230は、ローカルストレージ250に格納された任意の数およびタイプのアプリケーション(例えば複数のニュースアプリケーション、複数のソーシャルネットワーキングアプリケーション、複数のゲームなど)および他のコンテンツ(例えば複数の写真、複数の動画、音楽など)を有するスマートフォンを含んでよい。ローカルストレージ250に領域を形成するべくユーザがコンテンツのいくつかを妥協する(例えば複数の写真、音楽、複数のアプリケーションなどを削除する)ことなく、限定された量のローカルストレージ250が全てのコンテンツを保持するのに十分ではないかも知れないことが意図される。いくつかの実施形態において、コンピューティングデバイス230のユーザは、任意の量およびタイプのコンテンツを、ネットワーク220を介して遠隔クラウドストレージ280にバックアップすることを選択してよい。これは、例えば、ストレージ管理アプリケーション240のストレージ割り当てロジック246からの要求をストレージ管理メカニズム110の受付/認証ロジック202に向けることで実現されうる。しかしながら、前に言及したように、コンピューティングデバイス230は遠隔ストレージ270、280と直接的に通信してよく、さらにコンピューティングデバイス230は遠隔ストレージ270、280のタイプごとに異なる認証メカニズムを活用してよい。承認および適切な認証が行われると、要求は次に遠隔ストレージロジック208に転送されてよい。遠隔ストレージロジック208は、指定されたコンテンツを、ネットワーク220を介してローカルストレージ250からインポートし、遠隔クラウドストレージ280で格納されるようにそれを転送する。
【0013】
バックアップされたコンテンツは、次にデバイス/コンテンツ管理ロジック204により管理されてよい。例えば、デバイス/コンテンツ管理ロジック204は、ストレージ管理メカニズム110と通信する、コンピューティングデバイス230を含んだ様々なデバイスと、遠隔クラウドストレージ280に格納されたそれらのコンテンツそれぞれとを管理して監視してよい。同様に、コンテキストアウェアデータ管理ロジック206は、これら複数のデバイス、それらの複数のユーザ、および、複数のバックアップされたコンテンツに関連するコンテキストアウェアデータを管理して監視してよい。一実施形態においては、例えば、遠隔クラウドストレージ280での選択的なコンテンツのバックアップのトランザクションが完了すると、またはその一部として、ストレージ管理メカニズム110およびストレージ管理アプリケーション240は次に同期され、その結果、遠隔クラウドストレージ280でバックアップされたコンテンツに関連する、コンテキストアウェアデータなどの任意のデータはまた、コンテキストアウェアデータ管理ロジック206を介してストレージ管理メカニズム110で受信され管理されてよい。
【0014】
一実施形態において、コンテキストアウェア検出管理ロジック(コンテキストアウェアロジック)242は、コンピューティングデバイス230のデバイス使用のコンテキストを検出および定義するのに使用されてよい。例えば、コンテキストは任意の数の要素、例えばユーザ定義の複数のコンテキストのセット(例えば、月曜から金曜のAM9時からPM5時までFacebook(登録商標)のアプリケーションを使用せず、写真/動画ファイルを日曜夜に編集するなど)、コンテキストアウェアロジック242により検出されるような、自動的に検出される複数のコンテキストのセット(例えば、電話のアクティビティが平日のPM10時よりも後および週末の深夜に減少し、読書のアクティビティが晩に増加するなど)、空港への到着後に増加した電子書籍(例えばiBook、Kindle(登録商標)など)のアプリケーションの使用など、に基づいて導出または定義されてよい。複数のコンテキストが、任意の数およびタイプのユーザおよび/またはデバイスの複数のアクティビティに関連付けられてよいことが意図される。これらのアクティビティは、永久的から習慣的、頻繁、時折などまでの範囲でありうる。
【0015】
更に、ファイルの移動および管理の性質は論理的に、いくつかの時間を消費するオペレーション(例えば、通信、あちこちへのデータのコピーなど)を含みうるので、プレディクタビリテイロジック244は、いくつかの時間消費タスクが効率的で、かつ、予想通りに事前に実行されうるように、コンテキストをその発生前に予測するのに使用されてよい。例えば、飛行機への搭乗前に空港にいるときに、または、(例えばGPSルーティング、カレンダーエントリ、ルーチンのトラベルなどによって予測/決定されるように)ユーザが空港に向かっているときでさえ、ユーザが短時間の間、接続を失いそうであることが予測され得、従って、特定の複数の時間消費タスク(例えば、飛行の間に本を読むべく電子図書館を検索するなど)はユーザが接続を失う前に実行されてよい。一実施形態において、プレディクタビリテイロジック244は各コンテキストおよびその周波数を監視してよく、この情報および他の関連データを用いて、プレディクタビリテイロジック244はユーザ/デバイス挙動を予測してよい。プレディクタビリテイロジック244によるユーザ/デバイス挙動の予測は次に、適宜、ストレージ領域の割り当て、または割り当て要求を行うべくストレージ割り当てロジック246により使用されてよい。例えば、ユーザにより定義される(およびユーザインターフェース249によって入力される)ように、または、コンテキストアウェアロジック242により検出され導出されるように、ユーザは平日の勤務時間の間にニュースおよび/または仕事関係のアプリケーションにアクセスするが、これらの時間にソーシャルネットワーキングの複数のアプリケーションまたは複数のゲームのいずれにもアクセスしないことが知られる。
【0016】
同様に、改めてユーザにより定義される(およびユーザインターフェース249によって入力される)ように、または、コンテキストアウェアロジック242により検出され導出されるように、ユーザは晩(例えば、家族とくつろいでいるとき)に様々なソーシャルネットワーキングの複数のアプリケーションおよび複数のゲームにアクセスするが、ニュースおよび/または仕事関係のアプリケーションのいずれにもアクセスしないことが知られる。
【0017】
一実施形態において、この挙動またはプリファレンスの情報がユーザによって提供されない場合には、コンテキストアウェアロジック242はユーザの挙動と、対応するコンピューティングデバイス230の使用とを適応的に学んでよい。これは次に、ストレージ割り当てロジック246がストレージを割り当てるのを促進するべく、適宜、プレディクタビリテイロジック244によりデバイス使用を予測するのに使用される。例えば、勤務時間の間は、ソーシャルネットワーキングの複数のアプリケーションおよび複数のゲームは近接ネットワーク260を介して遠隔デバイスストレージ270に移動され、または、ネットワーク220を介して遠隔クラウドストレージ280にバックアップされてよい。同様に、晩の数時間の間はソーシャルネットワークの複数のアプリケーションおよび複数のゲームはローカルストレージ250に格納されてよく、ローカルストレージ250のニュースおよび仕事関係の複数のアプリケーションは遠隔デバイスストレージ270および/または遠隔クラウドストレージ280に移動されてよい。
【0018】
このパターンおよびプレディクタビリテイは、明示的に前提データまたはパターンを上書きするなどにより、ユーザがプリファレンスを変化させるか、或いは、ユーザ/デバイス挙動における変化がコンテキストアウェアロジック242による変更として検出されて定義されるまで続いてよい。例えば、ユーザは習慣的に平日の毎夜PM10時に就寝してよく(例えば、コンピューティングデバイス230がオフにされる)、または、定期的に平日の毎日AM10時にビジネスミーティングに出席してよく(例えば、コンピューティングデバイス230が機内モードに置かれる)。しかし、これらの信頼できる予測可能パターンでさえ、例えば、ユーザが休みに入る場合、病気になる場合、転職する場合などには、変化可能である。いくつかの変化、例えば休暇に入ること、または、病気になることなどは、ストレージ割り当てに一時的な複数の修正を引き起こす(例えば、休暇中に、ユーザは複数のソーシャルネットワーキングアプリケーションへの一日中のアクセスを望みうるなど)一時的なものであってよいが、特定の他の複数の変化、例えば転職は、より長く続いてよい。例えば、新しい仕事でユーザはAM10時の代わりにPM2時に通常のミーティングに出席してよく、この挙動の変化はユーザインターフェース249によってユーザから提供されるか、コンテキストアウェアロジック242により検出され、プレディクタビリテイロジック244により残業と解釈されその次に予測されるか、のいずれであってもよく、次に、ストレージをコンピューティングデバイス230の様々なアプリケーションおよびコンテンツに適切に割り当てるべくストレージ割り当てロジック246により使用される。さらに、例えば、ユーザはユーザインターフェース249を用いていくつかの設定を一度に変更してよく、例えばユーザが休みであるときには、たとえ通常の勤務時間中であっても、コンテキストは週末と同様であることができ、また、挙動は適宜、クラスタ化することができ、ユーザがコンテキストを変化させいくつかのポリシーに一度に作用することを可能にする。
【0019】
いくつかの実施形態において、アクセスされる領域について競合しコンピューティングデバイス230で使用される2つの異なるアプリケーションなど、2またはそれ以上のアプリケーションの間の如何なるコンフリクトも、コンフリクト解消ロジック245に報告され、コンフリクト解消ロジック245により解消されてよい。一実施形態において、ユーザはユーザインターフェース249によって、コンフリクト解消ポリシーを定義して提供することを選択してよく、これは次に、将来の全てのコンフリクトの解消のために、ローカルストレージ250に格納され、コンテキストアウェアロジック240により管理される。ユーザはコンフリクト解消ポリシーを「ファミリータイムが仕事よりも上である」として定義してよく、その結果、仕事関係の一切のアクティビティ(例えば、仕事の電子メール)はファミリータイム中などに受信されず、または実行されないが、「仕事が通常のカジュアル/遊び時間よりも上である」の結果、仕事関係の電話呼び出し、通知、電子メールなどのためにゲームを中断する。例えば、音楽アプリケーションがローカルストレージ250に多数の歌をキャッシュしている場合にユーザが音楽を聴いているのと同一の時間にユーザの会社ベースのアプリケーション(例えば電子メール)がローカルストレージ250においてローカルに多数の電子メールをダウンロードすることを試みているようなコンフリクトが有る場合には、コンフリクト解消ポリシーを用いることにより、ユーザが「ファミリータイム」中に音楽を聴いている場合には、ファミリータイムが終了するのを電子メールは待機しなくてはならないが、「カジュアル/遊び時間」である場合には、電子メールは、それらがダウンロードされるまで音楽を中断してよい。
【0020】
別の実施形態においては、ユーザ定義のコンフリクト解消ポリシーが存在しない場合には、コンフリクト解消ロジック245は、タイブレーカー(tie−breaker)として機能する他の複数の要素、例えば、コンフリクトにおけるコンテンツのタイプ、ユーザ位置、またはユーザフィードバックなどでさえも用いてよい。例えば、デフォルトで仕事が音楽よりも高い優先度を持つと、上の例を用いれば、電子メールはダウンロードされることが許可されうる。さらに、コンフリクト解消ロジック245は、自動的および動的に、ユーザ位置、時刻など、他の複数の要素に基づいて特定の複数の調整を作成してよい。例えば、ファミリータイム中または、ユーザが休みのときに、コンフリクト解消ロジック245は、ストレージ割り当てロジック246にローカルストレージを仕事の電子メールのダウンロードに割り当てるよう要求する前に、多数の歌(例えば5個の歌、10個の歌など)がキャッシュされるのを許可してよい。さらに、コンフリクト解消ロジック245は自動的および動的に最高の優先度またはタイブレーカーを、特定の緊急または非常に重要な複数のアプリケーション/複数のコンテンツ、例えば病院、警察、消防署、子供の学校などに割り当ててよい。
【0021】
一実施形態において、ローカルストレージ250によって提供される限定された領域の使用は、コンテキストアウェアデータ、複数のコンフリクト解消ポリシーなどに基づいてローカルストレージ250におけるローカルストレージを他の複数の用途のために解放するべく、動的におよびインテリジェントに特定の複数のアプリケーションまたは複数のコンテンツを、遠隔デバイスストレージ270および/または遠隔クラウドストレージ280など、任意の数およびタイプの遠隔ストレージデバイスの1または複数に移動することで、一時的に完全に最適化される。遠隔ストレージ270、280へのアクセスが(1)コンテンツまたは複数のアプリケーション(例えばニュースコンテンツ(例えばNY Times、Wall Street Journalなど)が使用に基づいて平日のAM5時にローカルストレージ250にダウンロードされるが、次に、一旦ユーザがそれを読んだら、またはユーザがオフィスに着いたら、または特定の時刻(例えばAM11時)でそれが自動的に削除される)など、(2)コンテキスト(例えば、ストレージの優先度はユーザの移動に伴い動的に変更されてよく、例えばユーザが学校のキャンパスにいるときには、遠隔ストレージの優先度はエンタープライズサーバに関連するストレージにスイッチされ、ユーザがシャトルバスにいるときには遠隔デバイスストレージ270にスイッチされ、仕事のときには仕事関係の複数のアプリケーションおよび複数のコンテンツのための仕事サーバにスイッチされる)など、(3)サービスごと(例えば、どのアプリケーションが使用するかに関係なく、Yahoo(登録商標)からニュース、電子メールなどを取得するなど)などに基づいて、割り当てまたは取得されうることが意図される。
【0022】
一実施形態において、通信ロジック248は、コンピューティングデバイス230と、ストレージ管理メカニズム100、遠隔デバイスストレージ270、および、任意の数およびタイプの他のコンピューティングデバイス、アプリケーション、データベース、遠隔ストレージデバイスなどとの間の接続または通信を促進するのに使用されてよい。一実施形態において、デバイス/コンテンツ管理204およびコンテキストアウェアデータ管理206は、コンテキストアウェアデータ、コンフリクトの解消データ、および他の関連データ(例えばコンピューティングデバイス230およびそのユーザに関連する任意のデータ)などを管理するよう機能してよく、また、ストレージ管理アプリケーション240をアシストし、および/または、直接的に例えばストレージの管理および割り当て、コンフリクトの解消、挙動および複数のコンテキストの解釈、通信の促進などの様々な処理に参加してよい。
【0023】
通信/互換性ロジック210は、例えば、
図1のホストマシン100、コンピューティングデバイス230(例えばモバイルコンピューティングデバイス)など、遠隔クラウドストレージ280および遠隔デバイスストレージ270などの複数のデータベースおよび複数のストレージデバイス、例えばネットワーク220(例えばクラウドネットワーク、インターネットなど)および近接ネットワーク260(Bluetooth(登録商標)、BLE、WiFi proximityなど)の複数のネットワーク、複数のソフトウェアアプリケーション/複数のウェブサイト(例えば、Facebook(登録商標)、Linkedln(登録商標)、Google+(登録商標)などの複数のソーシャルネットワーキングウェブサイト、複数のビジネスアプリケーション、複数のゲーム、および他の複数の娯楽アプリケーションなど)、複数のプログラミング言語など、様々なコンピューティングデバイスの間の動的な通信および互換性を促進するのに使用されてよく、一方で、技術、パラメータ、プロトコル、規格などの変更を伴う互換性を確保する。
【0024】
特定の特徴を追加、除去および/または向上させることを含む様々な実施形態を容易化するべく、任意の数およびタイプのコンポーネントが、ストレージ管理メカニズム110およびストレージ管理アプリケーション240に追加、および/または、これらから除去されてよいことが意図される。ストレージ管理メカニズム110およびストレージ管理アプリケーション240の簡潔さ、明確性および容易な理解の目的で、標準および/または既知のコンポーネント、例えばコンピューティングデバイスのものなど、の多くは本明細書で示されず、または説明されない。本明細書において説明されるような実施形態は、いずれかの特定の技術、トポロジー、システム、アーキテクチャ、および/または規格に限定されず、任意の将来の変更を採用し、これに適合するのに十分に動的であることが意図される。
【0025】
図3は、一実施形態に係る複数のコンピューティングデバイスのための動的なストレージ管理の促進方法300を図示する。方法300は、ハードウェア(例えば回路、専用ロジック、プログラム可能ロジックなど)、ソフトウェア(例えば処理デバイス上で実行される複数の命令)、またはそれらの組み合わせを有してよい処理ロジックにより実行されてよい。一実施形態において、方法300は、
図2のストレージ管理メカニズム110および/またはストレージ管理アプリケーション240により実行されてよい。
【0026】
方法300は、ブロック302、304および306の何れか1または複数で開始してよい。例えば、ブロック302で、ユーザ定義およびユーザ入力のデータプリファレンス(例えば、複数のコンテキスト、複数のアプリケーション優先度、複数のコンフリクトポリシーなど)は、コンピューティングデバイス(例えば、モバイルコンピューティングデバイスなどのクライアントコンピューティングデバイス)にアップロードされる。ブロック304で、デバイス検出されたコンテキストアウェアデータ(例えば、学習された複数のコンテキスト、使用挙動、ユーザプロファイル、複数のポリシー、複数の優先順位づけなど)を参照する。ブロック306で、コンピューティングデバイスのローカルストレージのディスク領域を監視する。ブロック308で、ユーザ提供の複数のプリファレンス、ディスク検出されたコンテキストアウェアデータ、および、監視されたローカルディスク領域に関連するデータなどのデータ/要素を処理して、他の複数の用途および/または複数のコンテンツへの現在および将来のストレージ割り当てを決定する。
【0027】
ブロック310で、ユーザによりコンピューティングデバイスでアクセスされることが要求されている他の複数の用途および/または複数のコンテンツのための現在および/または将来のストレージ割り当てに適合させるのに十分な利用可能なディスク領域がローカルストレージにあるか否かに関する決定が行われる。十分な量の利用可能なディスク領域がある場合には、処理はブロック312で終了する。結果が否定的な場合には、ブロック314で、処理された複数の要素(例えば、ユーザ提供の複数のプリファレンス、ディスク検出されたコンテキストアウェアデータ、および、監視されたローカルディスク領域)が評価され(例えば、仕事関係の複数のアプリケーション/複数のコンテンツが勤務時間にはより大きく重み付けされるなど、特定の複数の要素が他の複数の要素よりも高い重要度に割り当てられる)、その結果、適切で効率のよいストレージ割り当てが実現されうる。ブロック316で、評価に基づいて、1または複数のアプリケーションおよび/または特定のコンテンツが選択(chosen)/選択(selected)され、例えば、クラウドネットワークを介してサーバコンピュータに関連付けられたクラウドベースの遠隔ストレージデバイス、および/または、近接ネットワークを介して別のコンピューティングデバイス(例えばモバイルコンピューティングデバイス)に関連付けられたデバイスベースのストレージデバイスなど、1または複数の遠隔ストレージデバイスへ移動、および/または、から受信されるよう要求される。ブロック318で、選択された複数のアプリケーション/コンテンツは1または複数の遠隔ストレージデバイスへ移動、および/または、から受信される。処理はブロック312で終了する。
【0028】
図4は、コンピューティングシステム400の実施形態を図示する。コンピューティングシステム400は、例えば、複数のデスクトップコンピューティングシステム、複数のラップトップコンピューティングシステム、複数の携帯電話、移動体通信可能な複数のPDAを含む複数のパーソナルデジタルアシスタント(PDA)、複数のセットトップボックス、複数のスマートフォン、複数のタブレットなどを含む、様々なコンピューティングおよび電子デバイス(有線または無線)を表す。代替の複数のコンピューティングシステムは、より多い、より少ない、および/または異なる複数のコンポーネントを含み得る。
【0029】
コンピューティングデバイス400は、
図1のストレージ管理メカニズム110を用いたホストマシン100、および/または、
図2のストレージ管理アプリケーション240を用いたクライアントコンピューティングデバイス250と同一または類似、または、これを含む。
【0030】
コンピューティングシステム400は、バス405(または情報を通信するリンク、相互接続、または他のタイプの通信デバイスもしくはインターフェース)、および情報を処理し得る、バス405に結合されたプロセッサ410を含む。コンピューティングシステム400は、単一のプロセッサと共に図示されるが、電子システム400は、複数のマルチプロセッサ、複数のグラフィックスプロセッサ、および複数の物理プロセッサ等のうちの1または複数など、複数のプロセッサおよび/またはコプロセッサを含み得る。
【0031】
コンピューティングシステム400は、バス405に結合されたランダムアクセスメモリ(RAM)または他のダイナミック型ストレージデバイス420(メインメモリと呼ばれる)をさらに含んでよく、プロセッサ410により実行され得る情報および命令を格納してよい。また、メインメモリ420を用いて、プロセッサ410による命令の実行中に一時変数または他の中間情報を格納してもよい。
【0032】
コンピューティングシステム400は、プロセッサ410の静的情報および複数の命令を格納し得る、バス405に結合された読み取り専用メモリ(ROM)および/または他のストレージデバイス430も含み得る。データストレージデバイス440は、情報および複数の命令を格納するべくバス405に結合され得る。磁気ディスクまたは光ディスク、および対応するドライブ等のデータストレージデバイス440は、コンピューティングシステム400に結合され得る。
【0033】
また、コンピューティングシステム400は、バス405を介してブラウン管(CRT)、液晶ディスプレイ(LCD)、または有機発光ダイオード(OLED)アレイ等のディスプレイデバイス450に結合し、ユーザに情報を表示し得る。英数字および他の複数のキーを含むユーザ入力デバイス460は、バス405に結合し、プロセッサ410に情報および複数のコマンド選択を通信し得る。他のタイプのユーザ入力デバイス460は、マウス、トラックボール、タッチスクリーン、タッチパッド、またはカーソル方向キー等のカーソル制御器470であり、方向情報および複数のコマンド選択をプロセッサ410に通信し、ディスプレイ450上でカーソル移動を制御する。コンピュータシステム400のカメラおよびマイクの複数のアレイ490は、ジェスチャを観察し、音声および動画を記録し、視覚および音声コマンドを受信および送信するべく、バス405に結合され得る。
【0034】
コンピューティングシステム400は、ネットワークインターフェース480をさらに含み、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、パーソナルエリアネットワーク(PAN)、Bluetooth(登録商標)、クラウドネットワーク、モバイルネットワーク(例えば第3世代移動通信システム(3G)等)、イントラネット、インターネット等のネットワークへのアクセスを提供し得る。ネットワークインターフェース480は、例えば、アンテナ485を有する無線ネットワークインターフェースを含んでよく、アンテナ485は、1または複数のアンテナを表し得る。また、ネットワークインターフェース480は、例えば、ネットワークケーブル487を介して複数の遠隔デバイスと通信する有線ネットワークインターフェースを含んでよく、ネットワークケーブル487は、例えば、イーサネット(登録商標)ケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、またはパラレルケーブルであり得る。
【0035】
ネットワークインターフェース480は、例えば、IEEE802.1 lbおよび/またはIEEE802.1 lg規格に適合することによりLANへのアクセスを提供し、および/または無線ネットワークインターフェースは、例えば、複数のBluetooth(登録商標)規格に適合することによりパーソナルエリアネットワークへのアクセスを提供し得る。前および後のバージョンの規格を含む他の複数の無線ネットワークインターフェースおよび/またはプロトコルもサポートされ得る。
【0036】
複数の無線LAN規格による通信に加えて、またはこれの代わりに、ネットワークインターフェース480は、例えば、時間分割多重アクセス(TDMA)プロトコル、モバイル通信用グローバルシステム(GSM(登録商標))プロトコル、コード分割多重アクセス(CDMA)プロトコル、および/またはその他のタイプの複数の無線通信プロトコルを用いる無線通信を提供し得る。
【0037】
ネットワークインターフェース480は、例えば、モデム、ネットワークインタフェースカード、または例えばLANまたはWANをサポートするべく通信リンクを提供する目的で、イーサネット(登録商標)、トークンリング、または他のタイプの複数の物理的な有線もしくは無線アタッチメントに結合するために用いられるもの等、他の複数の周知のインターフェースデバイスの1または複数の通信インターフェースを含み得る。このように、コンピュータシステムは、例えば、イントラネットまたはインターネットを含む従来のネットワークインフラストラクチャを介して多くの周辺機器、クライアント、コントロールサーフェス、コンソールまたはサーバにも結合され得る。
【0038】
上記の例よりも少ないか、または多い装備システムが特定の複数の実装例には好ましい場合があることを理解されたい。従って、コンピューティングシステム400の構成は、価格の制約、性能要件、技術的改善、または他の条件等の様々な要素に応じて実装例毎に異なり得る。電子デバイスまたはコンピュータシステム400の例としては、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、一般消費者向け電子機器、プログラマブル一般消費者向け電子機器、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センタ、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはこれらの組み合わせが挙げられ得るが、これらに限定されない。
【0039】
複数の実施形態は、親基板を使用して相互接続される1または複数のマイクロチップまたは集積回路、ハードワイヤによるロジック、メモリデバイスにより格納され、マイクロプロセッサ、ファームウェア、特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)により実行されるソフトウェアのいずれかまたは組み合わせとして実装され得る。「ロジック」という用語は、例として、ソフトウェアもしくはハードウェア、および/またはソフトウェアおよびハードウェアの組み合わせを含み得る。
【0040】
複数の実施形態は、例えば、コンピュータ、複数のコンピュータのネットワーク、または他の複数の電子デバイス等の1または複数の機械により実行されると、本実施形態で説明される実施形態による複数のオペレーションを実行する1または複数の機械をもたらし得る機械実行可能な複数の命令を格納した1または複数の機械可読媒体を含み得るコンピュータプログラム製品として提供され得る。機械可読媒体としては、フロッピー(登録商標)ディスケット、光ディスク、CD−ROM(コンパクトディスク読み取り専用メモリ)、ならびに光磁気ディスク、ROM、RAM、EPROM(消去可能プログラマブル読み取り専用メモリ)、EEPROM(電気的に消去可能なプログラマブル読み取り専用メモリ)、磁気もしくは光カード、フラッシュメモリ、または機械実行可能な複数の命令を格納するのに好適な他のタイプの媒体/機械可読媒体が挙げられ得るが、これらに限定されない。
【0041】
更に、複数の実施形態は、コンピュータプログラム製品としてダウンロードされ、プログラムは、搬送波において実施され、および/またはこれにより変調される1または複数のデータ信号または通信リンク(例えば、モデムおよび/またはネットワーク接続)を介する他の伝播媒体により、遠隔コンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)に送信され得る。
【0042】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」等に参照することにより、そのように説明する実施形態が特定の複数の特徴、構造、または特性を備え得ることを示すが、全ての実施形態は、特定の複数の特徴、構造、または特性を必ずしも備えるものではない。さらに、いくつかの実施形態は、複数の他の実施形態について説明した複数の特徴のいくつか、もしくは全てを備え、またはそれらを全く備えないこともある。
【0043】
以下の説明および特許請求の範囲において、「結合された」という用語は、その複数の派生語と共に使用され得る。「結合された」は、2またはそれ以上の要素が互いに共働またはインタラクトすることを示すべく用いられるが、その間に介在する物理的または電気的な複数のコンポーネントを有することもあり、有しないこともある。
【0044】
特許請求の範囲において使用するように、別途指定しない限り、共通の要素を説明するべく序数形容詞「第1の」、「第2の」、「第3の」等を使用しても、同様の複数の要素の異なる例を参照することを単に示すのみであり、そのように説明する複数の要素が時間的、空間的、順位、またはその他の様式のいずれかにおいて所与の順序でなければならないことの示唆を意図するものではない。
【0045】
以下の複数の節および/または例は、更なる複数の実施形態または例に関する。 これらの例における具体的事柄は、1または複数の実施形態のいずれかの箇所で使用され得る。異なる実施形態または例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされ、他の特徴は、様々な異なる用途に適するように除外されてもよい。いくつかの実施形態は方法であって、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出する段階と、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視する段階と、コンテキストアウェアデータおよび領域の監視の複数の結果に基づいてローカルストレージにおける領域の複数の部分を動的に割り当てる段階と、を備え、動的に割り当てる段階は、第2コンテンツをローカルストレージから1または複数の遠隔ストレージデバイスに移動させることで第1コンテンツに領域の第1の部分を提供する段階を含む方法に関する。
【0046】
複数の実施形態および例は、検出されたコンテキストアウェアデータに基づいて1または複数のコンテキストを決定する段階と、検出されたコンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、コンピューティングデバイスまたはユーザのアクティビティの変更とのうちの1または複数のコンテキストを評価する段階と、評価に基づいて第1コンピューティングデバイスの使用挙動を予測する段階と、をさらに備え、動的に割り当てることはさらに、予測された使用挙動に基づく、複数の上記の方法の何れかを含む。
【0047】
複数の実施形態および例は、1または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第2コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動され、1または複数の遠隔ストレージデバイスは、クライアントコンピューティングデバイスに結合されたデバイスベースの遠隔ストレージデバイスを有し、第2コンテンツはBluetooth(登録商標)接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、複数の上記の方法の何れかを含む。
【0048】
複数の実施形態および例は、デフォルトのコンフリクトの解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、第1コンテンツおよび第2コンテンツの間のコンフリクトを解消する段階をさらに備え、ユーザ提供のコンフリクト解消ポリシーは、デフォルトのコンフリクトの解消ポリシーよりも高い優先度を保持し、第1および第2コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイル、および、ストレージを必要とする1または複数のデータファイルのうちの1または複数を有する、複数の上記の方法の何れかを含む。
【0049】
いくつかの実施形態は、方法であって、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求をサーバコンピューティングデバイスで受信する段階と、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューする段階と、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納する段階と、を備える方法に関する。
【0050】
複数の実施形態および例は、コンテキストアウェアデータをコンテキストアウェアデータ管理ロジックに提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出する段階をさらに備える、複数の上記の方法の何れかを含む。
【0051】
複数の実施形態および例は、クラウドネットワークを含むネットワークを介して、遠隔クラウドストレージに格納されているコンテンツに関連する通知を、クライアントコンピューティングデバイスに通信する段階と、取得リクエストに応じて遠隔クラウドストレージデバイスからコンテンツを取得する段階と、をさらに備え、取得されたコンテンツは、クライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、複数の上記の方法の何れかを含む。
【0052】
別の実施形態または例は、上で言及した複数の方法の何れかによるオペレーションを実行する装置を含む。
【0053】
別の実施形態または例において、装置は、上で言及した複数の方法の何れかによるオペレーションを実行する手段を含む。
【0054】
更に別の実施形態または例において、コンピューティングデバイスは、上述の方法のいずれかによるオペレーションを実行するように構成される。
【0055】
一実施形態または例において、システムは、上で言及した複数の方法の何れかによるオペレーションを実行するメカニズムを含む。
【0056】
さらに別の実施形態または例において、少なくとも1つの機械可読記憶媒体は、コンピューティングデバイスで実行されることに応じて、上で言及された複数の方法の何れかによるオペレーションをコンピューティングデバイスに実行させる複数の命令を含む。
【0057】
さらに別の実施形態または例において、少なくとも1つの非一時的または有形の機械可読記憶媒体は、コンピューティングデバイスで実行されることに応じて、上で言及された複数の方法の何れかによるオペレーションをコンピューティングデバイスに実行させる複数の命令を含む。
【0058】
いくつかの実施形態は、装置であって、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出するコンテキストアウェア検出管理ロジックと、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視するストレージ割り当てロジックとを備え、ストレージ割り当てロジックはさらに、コンテキストアウェアデータと、領域の監視の複数の結果とに基づいてローカルストレージにおける領域の複数の部分を動的に割り当て、動的に割り当てることは、第2コンテンツをローカルストレージから1または複数の遠隔ストレージデバイスに移動させることで第1コンテンツに領域の第1の部分を提供することを含む、装置に関する。
【0059】
複数の実施形態および例は、検出されたコンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、コンピューティングデバイスまたはユーザのアクティビティの変更とのうちの1または複数を評価するプレディクタビリテイロジックをさらに備え、プレディクタビリテイロジックは、評価に基づいて、第1コンピューティングデバイスの将来の使用挙動をさらに予測する、上記の装置を含む。
【0060】
複数の実施形態および例は、動的に割り当てることは、予測された使用挙動にさらに基づく、上記の装置を含む。
【0061】
複数の実施形態および例は、1または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第2コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動される、上記の装置を含む。
【0062】
複数の実施形態および例は、1または複数の遠隔ストレージデバイスは、当該装置に結合されたデバイスベースの遠隔ストレージデバイスを有し、
第2コンテンツは、Bluetooth(登録商標)接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、上記の装置を含む。
【0063】
複数の実施形態および例は、デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、第1コンテンツおよび第2コンテンツの間のコンフリクトを解消するコンフリクト解消ロジックをさらに備え、
ユーザ提供のコンフリクト解消ポリシーは、デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、上記の装置を含む。
【0064】
複数の実施形態および例は、第1および第2コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする1または複数のデータファイルのうちの1または複数を含む、上記の装置を含む。
【0065】
いくつかの実施形態は、装置であって、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求を当該装置で受信する受付/認証ロジックと、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューするコンテキストアウェアデータ管理ロジックと、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納する遠隔ストレージロジックと、を備える装置に関する。
【0066】
複数の実施形態および例は、コンテキストアウェアデータ管理ロジックにコンテキストアウェアデータを提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出するデバイス/コンテキスト管理ロジックをさらに備える、上記の装置を含む。
【0067】
複数の実施形態および例は、ネットワークを介して、遠隔クラウドストレージまたはローカルストレージに格納されているコンテンツに関連する通知をクライアントコンピューティングデバイスに通信する通信/互換性ロジックをさらに備え、ネットワークはクラウドネットワークを有する、上記の装置を含む。
【0068】
複数の実施形態および例は、遠隔ストレージロジックはさらに、取得リクエストに応じて、使用およびプレディクタビリテイに基づき、遠隔クラウドストレージデバイスからコンテンツを取得し、取得されたコンテンツはクライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、上記の装置を含む。
【0069】
いくつかの実施形態は、複数の命令を格納するメモリ、および、複数の命令を実行する処理デバイスを有するコンピューティングデバイスであって、1または複数のオペレーションを行うメカニズムをさらに有するコンピューティングデバイスを備えるシステムに関する。1または複数のオペレーションは、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出することと、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視することと、コンテキストアウェアデータおよび領域の監視の複数の結果に基づいてローカルストレージにおける領域の複数の部分を動的に割り当てることと、を備え、動的に割り当てることは、第2コンテンツをローカルストレージから1または複数の遠隔ストレージデバイスに移動させることで第1コンテンツに領域の第1の部分を提供することを含む。
【0070】
複数の実施形態および例は、1または複数のオペレーションが、検出されたコンテキストアウェアデータ、ユーザ提供のコンテキストおよびコンピューティングデバイスまたはユーザのアクティビティの変更のうちの1または複数を評価することと、評価に基づいて第1コンピューティングデバイスの使用挙動を予測することとをさらに含む、上記のシステムを含む。
【0071】
複数の実施形態および例は、動的に割り当てることが予測された使用挙動にさらに基づく、上記のシステムを含む。
【0072】
複数の実施形態および例は、1または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第2コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動される、上記のシステムを含む。
【0073】
複数の実施形態および例は、1または複数の遠隔ストレージデバイスは、クライアントコンピューティングデバイスに結合されたデバイスベースの遠隔ストレージデバイスを有し、第2コンテンツは、Bluetooth(登録商標)接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、上記のシステムを含む。
【0074】
複数の実施形態および例は、1または複数のオペレーションがデフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて第1コンテンツおよび第2コンテンツの間のコンフリクトを解消することをさらに含み、ユーザ提供のコンフリクト解消ポリシーはデフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、上記のシステムを含む。
【0075】
複数の実施形態および例は、第1および第2コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする1または複数のデータファイルのうちの1または複数を含む、上記のシステムを含む。
【0076】
いくつかの実施形態は、複数の命令を格納するメモリ、および、複数の命令を実行する処理デバイスを有するコンピューティングデバイスであって、1または複数のオペレーションを行うメカニズムをさらに有するコンピューティングデバイスを備えるシステムに関する。1または複数のオペレーションは、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求をサーバコンピューティングデバイスで受信することと、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューすることと、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納することと、を含む。
【0077】
複数の実施形態および例は、1または複数のオペレーションはコンテキストアウェアデータをコンテキストアウェアデータ管理ロジックに提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出することをさらに備える、上記のシステムを含む。
【0078】
複数の実施形態および例は、1または複数のオペレーションが遠隔クラウドストレージに格納されているコンテンツに関連する通知を、ネットワークを介してクライアントコンピューティングデバイスに通信することをさらに含み、ネットワークはクラウドネットワークを含む、上記のシステムを含む。
【0079】
複数の実施形態および例は、1または複数のオペレーションが取得リクエストに応じ、遠隔クラウドストレージデバイスからコンテンツを取得することをさらに含み、取得されたコンテンツはクライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、上記のシステムを含む。
【0080】
複数の図面および上記の説明は、複数の実施形態の例を与える。当業者は、説明した要素の1または複数を組み合わせて単一の機能要素にし得ることを理解するであろう。あるいは、特定の複数の要素は、複数の機能要素に分割してもよい。一実施形態の複数の要素は、別の実施形態に付加してもよい。例えば、本明細書において説明する処理の順序を変更し得るが、本明細書において説明する様式には限定されない。更に、いずれかの流れ図のアクションを、示す順序で実装する必要はなく、動作の全ては、必ずしも実行する必要はない。また、他の動作に依存しない動作を他の動作と並行に実行してもよい。複数の実施形態の範囲は、これらの具体的な例によって限定されるものではない。構造における差異、寸法、および材料の使用等、様々な変形形態は、明細書において明示的に与えられているか否かに関わらず、可能である。複数の実施形態の範囲は、少なくとも、以下の特許請求の範囲により与えられるのと同程度に広範である。