(57)【特許請求の範囲】
【請求項１】
動的なストレージ管理を促進する装置であって、
コンピューティングデバイスと、前記コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出するコンテキストアウェア検出管理ロジックと、
前記コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視するストレージ割り当てロジックと
を備え、
前記ストレージ割り当てロジックはさらに、前記コンテキストアウェアデータと、前記領域の前記監視の複数の結果とに基づいて前記ローカルストレージにおける前記領域の複数の部分を動的に割り当て、
前記動的に割り当てることは、第２コンテンツを前記ローカルストレージから１または複数の遠隔ストレージデバイスに移動させることで第１コンテンツに前記領域の第１の部分を提供することを含む、装置。
【請求項２】
検出された前記コンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、前記コンピューティングデバイスまたは前記ユーザのアクティビティの変更とのうちの１または複数を評価するプレディクタビリテイロジックをさらに備え、
前記プレディクタビリテイロジックは、前記評価に基づいて、前記コンピューティングデバイスの将来の使用挙動をさらに予測する、請求項１に記載の装置。
【請求項３】
前記複数の部分を動的に割り当てることは、予測された前記使用挙動にさらに基づく、請求項２に記載の装置。
【請求項４】
前記１または複数の遠隔ストレージデバイスは、
サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、
前記第２コンテンツは、クラウドネットワークを含んだネットワークを介して前記クラウドベースの遠隔ストレージデバイスに移動される、請求項１に記載の装置。
【請求項５】
前記１または複数の遠隔ストレージデバイスは、当該装置に結合されたデバイスベースの遠隔ストレージデバイスを有し、
前記第２コンテンツは、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を含んだ近接ネットワークを介して前記デバイスベースの遠隔ストレージデバイスに移動される、請求項１に記載の装置。
【請求項６】
デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、前記第１コンテンツおよび前記第２コンテンツの間のコンフリクトを解消するコンフリクト解消ロジックをさらに備え、
前記ユーザ提供のコンフリクト解消ポリシーは、前記デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、請求項１に記載の装置。
【請求項７】
前記第１および第２コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする１または複数のデータファイルのうちの１または複数を含む、請求項６に記載の装置。
【請求項８】
動的なストレージ管理を促進する装置であって、
クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスを含む当該装置に結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求を当該装置で受信する受付／認証ロジックと、
前記クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューするコンテキストアウェアデータ管理ロジックと、
前記コンテキストアウェアデータに基づいて前記遠隔クラウドストレージデバイスで前記コンテンツを格納する遠隔ストレージロジックと、
を備える装置。
【請求項９】
複数のコンテキストアウェアデータを管理するデバイス／コンテキスト管理ロジックであって、前記コンテキストアウェアデータ管理ロジックに前記コンテキストアウェアデータを提供する前に、管理している前記複数のコンテキストアウェアデータから前記クライアントコンピューティングデバイスに関連する前記コンテキストアウェアデータを抽出するデバイス／コンテキスト管理ロジックをさらに備える、請求項８に記載の装置。
【請求項１０】
ネットワークを介して、前記遠隔クラウドストレージデバイスまたは前記クライアントコンピューティングデバイスにおける前記ローカルストレージに格納されている前記コンテンツに関連する通知を通信する通信／互換性ロジックをさらに備え、
前記ネットワークはクラウドネットワークを有する、請求項８に記載の装置。
【請求項１１】
前記遠隔ストレージロジックはさらに、取得リクエストに応じて、使用およびプレディクタビリテイに基づき、前記遠隔クラウドストレージデバイスから前記コンテンツを取得し、
取得された前記コンテンツは前記クライアントコンピューティングデバイスにおける前記ローカルストレージに通信されて戻される、請求項８に記載の装置。
【請求項１２】
動的なストレージ管理の促進方法であって、
コンピューティングデバイスと、前記コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出する段階と、
前記コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視する段階と、
前記コンテキストアウェアデータおよび前記領域の前記監視の複数の結果に基づいて前記ローカルストレージにおける前記領域の複数の部分を動的に割り当てる段階と、
を備え、
前記動的に割り当てる段階は、第２コンテンツを前記ローカルストレージから１または複数の遠隔ストレージデバイスに移動させることで第１コンテンツに前記領域の第１の部分を提供する段階を含む方法。
【請求項１３】
検出された前記コンテキストアウェアデータに基づいて１または複数のコンテキストを決定する段階と、
検出された前記コンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、前記コンピューティングデバイスまたは前記ユーザのアクティビティの変更とのうちの前記１または複数のコンテキストを評価する段階と、
前記評価に基づいて前記コンピューティングデバイスの使用挙動を予測する段階と、
をさらに備え、
前記複数の部分を動的に割り当てる段階はさらに、予測された前記使用挙動に基づく、請求項１２に記載の方法。
【請求項１４】
前記１または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、
前記第２コンテンツは、クラウドネットワークを含んだネットワークを介して前記クラウドベースの遠隔ストレージデバイスに移動され、
前記１または複数の遠隔ストレージデバイスは、クライアントコンピューティングデバイスに結合されたデバイスベースの遠隔ストレージデバイスを有し、
前記第２コンテンツは、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を含んだ近接ネットワークを介して前記デバイスベースの遠隔ストレージデバイスに移動される、請求項１２に記載の方法。
【請求項１５】
デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、前記第１コンテンツおよび前記第２コンテンツの間のコンフリクトを解消する段階をさらに備え、
前記ユーザ提供のコンフリクト解消ポリシーは、前記デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持し、
前記第１および第２コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイル、および、ストレージを必要とする１または複数のデータファイルのうちの１または複数を有する、請求項１２に記載の方法。
【請求項１６】
動的なストレージ管理の促進方法であって、
クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求を前記サーバコンピューティングデバイスで受信する段階と、
前記クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューする段階と、
前記コンテキストアウェアデータに基づいて前記遠隔クラウドストレージデバイスで前記コンテンツを格納する段階と、
を備える方法。
【請求項１７】
複数のコンテキストアウェアデータを管理する段階と、
前記コンテキストアウェアデータをレビューする前に、管理している前記複数のコンテキストアウェアデータから前記クライアントコンピューティングデバイスに関連する前記コンテキストアウェアデータを抽出する段階をさらに備える、請求項１６に記載の方法。
【請求項１８】
クラウドネットワークを含むネットワークを介して、前記遠隔クラウドストレージデバイスに格納されている前記コンテンツに関連する通知を、前記クライアントコンピューティングデバイスに通信する段階と、
取得リクエストに応じて前記遠隔クラウドストレージデバイスから前記コンテンツを取得する段階と、
をさらに備え、
取得された前記コンテンツは、前記クライアントコンピューティングデバイスにおける前記ローカルストレージに通信されて戻される、請求項１６に記載の方法。
【請求項１９】
コンピューティングデバイスに請求項１２から１５の何れか１項に記載の方法を実行させるプログラム。
【請求項２０】
コンピューティングデバイスに請求項１６から１８の何れか１項に記載の方法を実行させるプログラム。
【請求項２１】
請求項１９または２０に記載のプログラムを格納するコンピュータ可読記録媒体。
【請求項２２】
請求項１２から１５の何れか１項に記載の方法による複数のオペレーションを実行するメカニズムを備えるシステム。
【請求項２３】
請求項１６から１８の何れか１項に記載の方法による複数のオペレーションを実行するメカニズムを備えるシステム。
【請求項２４】
請求項１２から１５の何れか１項に記載の方法による複数のオペレーションを実行する手段を備える装置。
【請求項２５】
請求項１６から１８の何れか１項に記載の方法による複数のオペレーションを実行する手段を備える装置。
【請求項２６】
請求項１２から１５の何れか１項に記載の方法による複数のオペレーションを実行するコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において説明される複数の実施形態は、概してコンピュータプログラミングに関する。より具体的には、複数の実施形態は、複数のモバイルコンピューティングデバイスのための動的なストレージ管理の促進メカニズムに関する。
【背景技術】
【０００２】
コンピューティングデバイス（例えば複数のモバイルコンピューティングデバイス）のための技術の進歩、さらにはクラウドコンピューティングの導入にもかかわらず、ほとんどのコンピューティングデバイス、具体的にはモバイルデバイスに対し、ストレージの管理は、マニュアルの処理であり続けている。複数のモバイルデバイスは、設計により、より小さいストレージ領域を有しており、ほとんどのユーザはクラウドストレージにコンテンツのほとんどを保持させることを好むが、接続を失うと（例えば、スマートフォンが機内モードに置かれたとき、または、込み合ったエリアにあるときなど）、クラウドに格納されたコンテンツへの全てのアクセスを即座に失ってしまう。これは、現在のストレージ管理技術が静的であり、インテリジェンスおよび効率性を欠くためである。
【図面の簡単な説明】
【０００３】
複数の実施形態が複数の添付図面の図中に、限定的なものではなく、例示的なものとして示されており、添付図面において同様の参照符号は同様の要素を指す。
【図１】一実施形態に係るコンピューティングデバイスで採用された、複数のコンピューティングデバイスのための動的なストレージ管理の促進メカニズムを図示する。
【図２】一実施形態に係る複数のコンピューティングデバイスのための動的なストレージ管理の促進メカニズムを図示する。
【図３】一実施形態に係る複数のコンピューティングデバイスのための動的なストレージ管理の促進方法を図示する。
【図４】一実施形態に係る、本開示の複数の実施形態を実装するのに好適なコンピュータシステムを図示する。
【発明を実施するための形態】
【０００４】
以下の説明では、多数の具体的な詳細が記載される。しかしながら、本明細書において説明される複数の実施形態は、これらの具体的な詳細なしに実施されてよい。他の複数の例において、本明細書の理解を妨げないようにするべく、周知の複数の回路、構造、および技術を詳細に示していない。
【０００５】
複数の実施形態は、任意の数の要素、例えば合計のローカルストレージ領域、利用可能なローカルストレージ領域、および、様々なコンテキストベクトル、例えばユーザの現在および前の、コンピューティングデバイスとのインタラクション、位置、時刻、曜日、ユーザのアクティビティなどに基づいて、複数のコンピューティングデバイス（例えば、スマートフォン、複数のタブレットコンピュータなどの複数のモバイルコンピューティングデバイス）におけるストレージの動的で効率のよい管理を提供する。さらに、上の複数の要素を用いて、複数の実施形態は、コンピューティングデバイス、１または複数のアプリケーション、特定のコンテキスト、サービスなどに特有でありうるクラウドにおけるストレージの、エラスティックな量およびタイプと共に、動的な増加を提供する。複数の実施形態はさらに、モバイルデバイス上の制限されたローカルストレージの、最適化された使用を促進すべく、ユーザのモバイルデバイス上にローカルに存在するユーザの複数のアプリケーションおよび他のコンテンツ（例えば複数の写真、音楽など）の動的でコンテキストアウェアな態様の更新を提供する。
【０００６】
例えば一実施形態において、様々なコンテキストアウェア、ロケーションアウェア、プレディクタビリテイ、コネクティビティ、プロキシミティ、および、位置管理の技術（例えば、インテル（登録商標）のＣｏｍｍｏｎ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  Ｆｒａｍｅｗｏｒｋ（ＣＣＦ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー（ＢＬＥ）またはＢｌｕｅｔｏｏｔｈ（登録商標）  Ｓｍａｒｔ、ＷｉＦｉ  ｐｒｏｘｉｍｉｔｙ、無線周波数識別（ＲＦＩＤ）、ジオフェンシング、位置ベースサービス（ＬＢＳ）、バーチャルプライベートネットワーク（ＶＰＮ）など）が使用され適切なものとして適用されてよく、かつ、例えば、ユーザおよび／またはデバイスの複数のアクティビティおよび挙動、ユーザおよび／またはデバイスの複数のアクティビティおよび挙動の履歴、アクティビティ／挙動における変化の性質および周波数、デバイスのタイプ（例えば、スマートフォン対ダムフォン、デスクトップコンピュータ対ラップトップコンピュータなど）、複数のデバイスの間の近接度／距離（例えば、少数フィート対、数千マイルなど）などに基づいてよい。複数の実施形態は任意の特定の技術または解決法には限定されないことに留意されたい。「Ｃｏｍｍｏｎ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  Ｆｒａｍｅｗｏｒｋ」、「ＣＣＦ」、「Ｂｌｕｅｔｏｏｔｈ（登録商標）」などの特定の名前または用語の使用は実施形態を、製品内またはこの文書の外部の印刷物内にそのラベルを持つソフトウェアまたはデバイスに制限するように読まれるべきではないことにさらに留意されたい。
【０００７】
図１は、一実施形態に係るコンピューティングデバイス１００で採用された、複数のコンピューティングデバイス１１０のための動的なストレージ管理の促進メカニズムを図示する。コンピューティングデバイス１００は、複数のコンピューティングデバイスの動的なストレージ管理を促進するホストマシン（「ストレージ管理メカニズム」）として機能する。コンピューティングデバイス１００は、例えば、複数のスマートフォンを含む複数のセルラーフォン（例えば、Ａｐｐｌｅ（登録商標）によるｉＰｈｏｎｅ（登録商標）、Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ（登録商標）によるＢｌａｃｋＢｅｒｒｙ（登録商標）など）、複数のパーソナルデジタルアシスタント（複数のＰＤＡ）、複数のタブレットコンピュータ（例えば、Ａｐｐｌｅ（登録商標）によるｉＰａｄ（登録商標）、Ｓａｍｓｕｎｇ（登録商標）によるＧａｌａｘｙ（登録商標）３など）、複数のラップトップコンピュータ（例えばノートブック、ネットブック、ＵｌｔｒａｂｏｏｋTMなど）、複数の電子書籍リーダ（例えば、Ａｍａｚｏｎ（登録商標）によるＫｉｎｄｌｅ（登録商標）、Ｂａｒｎｅｓ  ａｎｄ  Ｎｏｂｌｅｓ（登録商標）によるＮｏｏｋ（登録商標）など）などの複数のモバイルコンピューティングデバイスを含んでよい。コンピューティングデバイス１００はさらに、複数のセットトップボックス（例えばインターネットベースのケーブルテレビの複数のセットトップボックスなど）、および、例えば複数のデスクトップコンピュータ、複数のサーバコンピュータなどの、より大きな複数のコンピューティングデバイスを含んでよい。
【０００８】
コンピューティングデバイス１００は、任意のハードウェアまたはコンピュータデバイス１００の複数の物理リソースと、ユーザとの間のインターフェースとして機能するオペレーティングシステム（ＯＳ）１０６を有する。コンピューティングデバイス１００はさらに、複数のタッチスクリーン、複数のタッチパネル、複数のタッチパッド、複数のバーチャルのまたは通常のキーボード、複数のバーチャルのまたは通常のマウスなどの複数の入力／出力（Ｉ／Ｏ）資源１０８だけでなく、１または複数のプロセッサ１０２、複数のメモリデバイス１０４、複数のネットワークデバイス、複数のドライバなどを有する。「コンピューティングデバイス」、「ノード」、「コンピューティングノード」、「ホスト」、「サーバ」、「メモリサーバ」、「マシン」、「デバイス」、「コンピューティングデバイス」、「コンピュータ」、「コンピューティングシステム」および同様のもののような複数の用語はこの文書にわたって互換的に使用されうることに留意されたい。
【０００９】
図２は、一実施形態に係る複数のコンピューティングデバイス１１０のための動的なストレージ管理の促進メカニズムを図示する。一実施形態において、ストレージ管理メカニズム１１０は、受付／認証ロジック２０２、コンテキストアウェアデータ管理ロジック２０６、遠隔ストレージロジック２０８、および通信／互換性ロジック２１０などの多数のコンポーネントを含む。ストレージ管理メカニズム１１０はホストマシン、例えば図１のコンピューティングデバイス１００によりホスティングされてよく、また、ネットワーク２２０（例えばクラウドネットワーク、インターネットなど）などの１または複数のネットワークを介して、遠隔ストレージデバイス２８０などの１または複数のストレージデバイス、および、コンピューティングデバイス２３０（例えば、スマートフォン、タブレットコンピュータなどのモバイルコンピューティングデバイス）などの１または複数のコンピューティングデバイスと通信を行ってよい。
【００１０】
コンピューティングデバイス２３０は、コンテキストアウェア検出管理ロジック２４２、プレディクタビリテイロジック２４４、コンフリクト解消ロジック２４５、ストレージ割り当てロジック２４６、通信ロジック２４８およびユーザインターフェース２４９などの１または複数のコンポーネントを有する動的なストレージ管理アプリケーション２４０を使用してよい。コンピューティングデバイス２３０は、ローカルストレージ２５０を含み、例えば近接ネットワーク（例えばＢｌｕｅｔｏｏｔｈ（登録商標）、ＢＬＥまたはＢｌｕｅｔｏｏｔｈ（登録商標）  Ｓｍａｒｔ、ＷｉＦｉ  ｐｒｏｘｉｍｉｔｙ、ＲＦＩＤなど）および／またはネットワーク２２０などの１または複数のネットワークを介して遠隔デバイスストレージ２７０などの１または複数の遠隔ストレージデバイスへのアクセスを有してよい。コンピューティングデバイス２３０はまた、ネットワーク２２０を介し、ストレージ管理メカニズム１１０を経由して、遠隔クラウドストレージ２８０などの他の複数の遠隔ストレージデバイスへのアクセスを有してよい。一実施形態において、遠隔デバイスストレージ２７０は、スタンドアロンのストレージデバイスを含むか、コンピューティングデバイス２３０のユーザに属しうる別のコンピューティングデバイス、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォンなどの一部であってよい。いくつかの実施形態においては、任意の数およびタイプのクラウドベースの遠隔ストレージが採用されて直接的にまたは間接的にコンピューティングデバイス２３０と通信する状態に置かれうること、および、複数の実施形態は図示された単一の遠隔クラウドストレージデバイス２８０に限定されないことが意図される。同様に、任意の数およびタイプの、遠隔デバイスストレージ２７０などのデバイスベースのストレージデバイスと、コンピューティングデバイス２３０などの複数のコンピューティングデバイスとが採用されて、互いに通信する状態に置かれうる。
【００１１】
一実施形態においては、受付／認証ロジック２０２は、遠隔ストレージ２８０の使用と、ストレージ管理メカニズム１１０の様々なコンポーネント２０４―２１０により実行されることが可能な他の複数のタスクとについての要求をコンピューティングデバイス２３０から受信してよい。要求を受信すると、コンピューティングデバイス２３０および／またはそのユーザは、任意の数およびタイプの認証技術およびデータ、例えばユーザ識別子（ｕｓｅｒＩＤ）、パスワード、シークレットな複数の質問、パブリック／プライベートな複数のキー、暗号、複数のインターネットプロトコル（ＩＰ）アドレスなどを用いて受付／認証ロジック２０２により認証される。一度、認証処理が完了すると、ストレージ管理メカニズム１１０およびストレージ管理アプリケーション２４０は、任意の数およびタイプの同期技術を用いて、通信および同期状態に置かれてよい。いくつかの実施形態において、コンピューティングデバイス２３０は、コンピューティングデバイス２３０および遠隔ストレージ２７０、２８０の間でデータを直接的に通信するべく、（例えば、インターネットプロトコル（ＩＰ）通信によって）遠隔クラウドストレージ２８０および／または遠隔デバイスストレージ２７０と直接通信してよい。
【００１２】
コンピューティングデバイス２３０は、ローカルストレージ２５０に格納された任意の数およびタイプのアプリケーション（例えば複数のニュースアプリケーション、複数のソーシャルネットワーキングアプリケーション、複数のゲームなど）および他のコンテンツ（例えば複数の写真、複数の動画、音楽など）を有するスマートフォンを含んでよい。ローカルストレージ２５０に領域を形成するべくユーザがコンテンツのいくつかを妥協する（例えば複数の写真、音楽、複数のアプリケーションなどを削除する）ことなく、限定された量のローカルストレージ２５０が全てのコンテンツを保持するのに十分ではないかも知れないことが意図される。いくつかの実施形態において、コンピューティングデバイス２３０のユーザは、任意の量およびタイプのコンテンツを、ネットワーク２２０を介して遠隔クラウドストレージ２８０にバックアップすることを選択してよい。これは、例えば、ストレージ管理アプリケーション２４０のストレージ割り当てロジック２４６からの要求をストレージ管理メカニズム１１０の受付／認証ロジック２０２に向けることで実現されうる。しかしながら、前に言及したように、コンピューティングデバイス２３０は遠隔ストレージ２７０、２８０と直接的に通信してよく、さらにコンピューティングデバイス２３０は遠隔ストレージ２７０、２８０のタイプごとに異なる認証メカニズムを活用してよい。承認および適切な認証が行われると、要求は次に遠隔ストレージロジック２０８に転送されてよい。遠隔ストレージロジック２０８は、指定されたコンテンツを、ネットワーク２２０を介してローカルストレージ２５０からインポートし、遠隔クラウドストレージ２８０で格納されるようにそれを転送する。
【００１３】
バックアップされたコンテンツは、次にデバイス／コンテンツ管理ロジック２０４により管理されてよい。例えば、デバイス／コンテンツ管理ロジック２０４は、ストレージ管理メカニズム１１０と通信する、コンピューティングデバイス２３０を含んだ様々なデバイスと、遠隔クラウドストレージ２８０に格納されたそれらのコンテンツそれぞれとを管理して監視してよい。同様に、コンテキストアウェアデータ管理ロジック２０６は、これら複数のデバイス、それらの複数のユーザ、および、複数のバックアップされたコンテンツに関連するコンテキストアウェアデータを管理して監視してよい。一実施形態においては、例えば、遠隔クラウドストレージ２８０での選択的なコンテンツのバックアップのトランザクションが完了すると、またはその一部として、ストレージ管理メカニズム１１０およびストレージ管理アプリケーション２４０は次に同期され、その結果、遠隔クラウドストレージ２８０でバックアップされたコンテンツに関連する、コンテキストアウェアデータなどの任意のデータはまた、コンテキストアウェアデータ管理ロジック２０６を介してストレージ管理メカニズム１１０で受信され管理されてよい。
【００１４】
一実施形態において、コンテキストアウェア検出管理ロジック（コンテキストアウェアロジック）２４２は、コンピューティングデバイス２３０のデバイス使用のコンテキストを検出および定義するのに使用されてよい。例えば、コンテキストは任意の数の要素、例えばユーザ定義の複数のコンテキストのセット（例えば、月曜から金曜のＡＭ９時からＰＭ５時までＦａｃｅｂｏｏｋ（登録商標）のアプリケーションを使用せず、写真／動画ファイルを日曜夜に編集するなど）、コンテキストアウェアロジック２４２により検出されるような、自動的に検出される複数のコンテキストのセット（例えば、電話のアクティビティが平日のＰＭ１０時よりも後および週末の深夜に減少し、読書のアクティビティが晩に増加するなど）、空港への到着後に増加した電子書籍（例えばｉＢｏｏｋ、Ｋｉｎｄｌｅ（登録商標）など）のアプリケーションの使用など、に基づいて導出または定義されてよい。複数のコンテキストが、任意の数およびタイプのユーザおよび／またはデバイスの複数のアクティビティに関連付けられてよいことが意図される。これらのアクティビティは、永久的から習慣的、頻繁、時折などまでの範囲でありうる。
【００１５】
更に、ファイルの移動および管理の性質は論理的に、いくつかの時間を消費するオペレーション（例えば、通信、あちこちへのデータのコピーなど）を含みうるので、プレディクタビリテイロジック２４４は、いくつかの時間消費タスクが効率的で、かつ、予想通りに事前に実行されうるように、コンテキストをその発生前に予測するのに使用されてよい。例えば、飛行機への搭乗前に空港にいるときに、または、（例えばＧＰＳルーティング、カレンダーエントリ、ルーチンのトラベルなどによって予測／決定されるように）ユーザが空港に向かっているときでさえ、ユーザが短時間の間、接続を失いそうであることが予測され得、従って、特定の複数の時間消費タスク（例えば、飛行の間に本を読むべく電子図書館を検索するなど）はユーザが接続を失う前に実行されてよい。一実施形態において、プレディクタビリテイロジック２４４は各コンテキストおよびその周波数を監視してよく、この情報および他の関連データを用いて、プレディクタビリテイロジック２４４はユーザ／デバイス挙動を予測してよい。プレディクタビリテイロジック２４４によるユーザ／デバイス挙動の予測は次に、適宜、ストレージ領域の割り当て、または割り当て要求を行うべくストレージ割り当てロジック２４６により使用されてよい。例えば、ユーザにより定義される（およびユーザインターフェース２４９によって入力される）ように、または、コンテキストアウェアロジック２４２により検出され導出されるように、ユーザは平日の勤務時間の間にニュースおよび／または仕事関係のアプリケーションにアクセスするが、これらの時間にソーシャルネットワーキングの複数のアプリケーションまたは複数のゲームのいずれにもアクセスしないことが知られる。
【００１６】
同様に、改めてユーザにより定義される（およびユーザインターフェース２４９によって入力される）ように、または、コンテキストアウェアロジック２４２により検出され導出されるように、ユーザは晩（例えば、家族とくつろいでいるとき）に様々なソーシャルネットワーキングの複数のアプリケーションおよび複数のゲームにアクセスするが、ニュースおよび／または仕事関係のアプリケーションのいずれにもアクセスしないことが知られる。
【００１７】
一実施形態において、この挙動またはプリファレンスの情報がユーザによって提供されない場合には、コンテキストアウェアロジック２４２はユーザの挙動と、対応するコンピューティングデバイス２３０の使用とを適応的に学んでよい。これは次に、ストレージ割り当てロジック２４６がストレージを割り当てるのを促進するべく、適宜、プレディクタビリテイロジック２４４によりデバイス使用を予測するのに使用される。例えば、勤務時間の間は、ソーシャルネットワーキングの複数のアプリケーションおよび複数のゲームは近接ネットワーク２６０を介して遠隔デバイスストレージ２７０に移動され、または、ネットワーク２２０を介して遠隔クラウドストレージ２８０にバックアップされてよい。同様に、晩の数時間の間はソーシャルネットワークの複数のアプリケーションおよび複数のゲームはローカルストレージ２５０に格納されてよく、ローカルストレージ２５０のニュースおよび仕事関係の複数のアプリケーションは遠隔デバイスストレージ２７０および／または遠隔クラウドストレージ２８０に移動されてよい。
【００１８】
このパターンおよびプレディクタビリテイは、明示的に前提データまたはパターンを上書きするなどにより、ユーザがプリファレンスを変化させるか、或いは、ユーザ／デバイス挙動における変化がコンテキストアウェアロジック２４２による変更として検出されて定義されるまで続いてよい。例えば、ユーザは習慣的に平日の毎夜ＰＭ１０時に就寝してよく（例えば、コンピューティングデバイス２３０がオフにされる）、または、定期的に平日の毎日ＡＭ１０時にビジネスミーティングに出席してよく（例えば、コンピューティングデバイス２３０が機内モードに置かれる）。しかし、これらの信頼できる予測可能パターンでさえ、例えば、ユーザが休みに入る場合、病気になる場合、転職する場合などには、変化可能である。いくつかの変化、例えば休暇に入ること、または、病気になることなどは、ストレージ割り当てに一時的な複数の修正を引き起こす（例えば、休暇中に、ユーザは複数のソーシャルネットワーキングアプリケーションへの一日中のアクセスを望みうるなど）一時的なものであってよいが、特定の他の複数の変化、例えば転職は、より長く続いてよい。例えば、新しい仕事でユーザはＡＭ１０時の代わりにＰＭ２時に通常のミーティングに出席してよく、この挙動の変化はユーザインターフェース２４９によってユーザから提供されるか、コンテキストアウェアロジック２４２により検出され、プレディクタビリテイロジック２４４により残業と解釈されその次に予測されるか、のいずれであってもよく、次に、ストレージをコンピューティングデバイス２３０の様々なアプリケーションおよびコンテンツに適切に割り当てるべくストレージ割り当てロジック２４６により使用される。さらに、例えば、ユーザはユーザインターフェース２４９を用いていくつかの設定を一度に変更してよく、例えばユーザが休みであるときには、たとえ通常の勤務時間中であっても、コンテキストは週末と同様であることができ、また、挙動は適宜、クラスタ化することができ、ユーザがコンテキストを変化させいくつかのポリシーに一度に作用することを可能にする。
【００１９】
いくつかの実施形態において、アクセスされる領域について競合しコンピューティングデバイス２３０で使用される２つの異なるアプリケーションなど、２またはそれ以上のアプリケーションの間の如何なるコンフリクトも、コンフリクト解消ロジック２４５に報告され、コンフリクト解消ロジック２４５により解消されてよい。一実施形態において、ユーザはユーザインターフェース２４９によって、コンフリクト解消ポリシーを定義して提供することを選択してよく、これは次に、将来の全てのコンフリクトの解消のために、ローカルストレージ２５０に格納され、コンテキストアウェアロジック２４０により管理される。ユーザはコンフリクト解消ポリシーを「ファミリータイムが仕事よりも上である」として定義してよく、その結果、仕事関係の一切のアクティビティ（例えば、仕事の電子メール）はファミリータイム中などに受信されず、または実行されないが、「仕事が通常のカジュアル／遊び時間よりも上である」の結果、仕事関係の電話呼び出し、通知、電子メールなどのためにゲームを中断する。例えば、音楽アプリケーションがローカルストレージ２５０に多数の歌をキャッシュしている場合にユーザが音楽を聴いているのと同一の時間にユーザの会社ベースのアプリケーション（例えば電子メール）がローカルストレージ２５０においてローカルに多数の電子メールをダウンロードすることを試みているようなコンフリクトが有る場合には、コンフリクト解消ポリシーを用いることにより、ユーザが「ファミリータイム」中に音楽を聴いている場合には、ファミリータイムが終了するのを電子メールは待機しなくてはならないが、「カジュアル／遊び時間」である場合には、電子メールは、それらがダウンロードされるまで音楽を中断してよい。
【００２０】
別の実施形態においては、ユーザ定義のコンフリクト解消ポリシーが存在しない場合には、コンフリクト解消ロジック２４５は、タイブレーカー（ｔｉｅ−ｂｒｅａｋｅｒ）として機能する他の複数の要素、例えば、コンフリクトにおけるコンテンツのタイプ、ユーザ位置、またはユーザフィードバックなどでさえも用いてよい。例えば、デフォルトで仕事が音楽よりも高い優先度を持つと、上の例を用いれば、電子メールはダウンロードされることが許可されうる。さらに、コンフリクト解消ロジック２４５は、自動的および動的に、ユーザ位置、時刻など、他の複数の要素に基づいて特定の複数の調整を作成してよい。例えば、ファミリータイム中または、ユーザが休みのときに、コンフリクト解消ロジック２４５は、ストレージ割り当てロジック２４６にローカルストレージを仕事の電子メールのダウンロードに割り当てるよう要求する前に、多数の歌（例えば５個の歌、１０個の歌など）がキャッシュされるのを許可してよい。さらに、コンフリクト解消ロジック２４５は自動的および動的に最高の優先度またはタイブレーカーを、特定の緊急または非常に重要な複数のアプリケーション／複数のコンテンツ、例えば病院、警察、消防署、子供の学校などに割り当ててよい。
【００２１】
一実施形態において、ローカルストレージ２５０によって提供される限定された領域の使用は、コンテキストアウェアデータ、複数のコンフリクト解消ポリシーなどに基づいてローカルストレージ２５０におけるローカルストレージを他の複数の用途のために解放するべく、動的におよびインテリジェントに特定の複数のアプリケーションまたは複数のコンテンツを、遠隔デバイスストレージ２７０および／または遠隔クラウドストレージ２８０など、任意の数およびタイプの遠隔ストレージデバイスの１または複数に移動することで、一時的に完全に最適化される。遠隔ストレージ２７０、２８０へのアクセスが（１）コンテンツまたは複数のアプリケーション（例えばニュースコンテンツ（例えばＮＹ  Ｔｉｍｅｓ、Ｗａｌｌ  Ｓｔｒｅｅｔ  Ｊｏｕｒｎａｌなど）が使用に基づいて平日のＡＭ５時にローカルストレージ２５０にダウンロードされるが、次に、一旦ユーザがそれを読んだら、またはユーザがオフィスに着いたら、または特定の時刻（例えばＡＭ１１時）でそれが自動的に削除される）など、（２）コンテキスト（例えば、ストレージの優先度はユーザの移動に伴い動的に変更されてよく、例えばユーザが学校のキャンパスにいるときには、遠隔ストレージの優先度はエンタープライズサーバに関連するストレージにスイッチされ、ユーザがシャトルバスにいるときには遠隔デバイスストレージ２７０にスイッチされ、仕事のときには仕事関係の複数のアプリケーションおよび複数のコンテンツのための仕事サーバにスイッチされる）など、（３）サービスごと（例えば、どのアプリケーションが使用するかに関係なく、Ｙａｈｏｏ（登録商標）からニュース、電子メールなどを取得するなど）などに基づいて、割り当てまたは取得されうることが意図される。
【００２２】
一実施形態において、通信ロジック２４８は、コンピューティングデバイス２３０と、ストレージ管理メカニズム１００、遠隔デバイスストレージ２７０、および、任意の数およびタイプの他のコンピューティングデバイス、アプリケーション、データベース、遠隔ストレージデバイスなどとの間の接続または通信を促進するのに使用されてよい。一実施形態において、デバイス／コンテンツ管理２０４およびコンテキストアウェアデータ管理２０６は、コンテキストアウェアデータ、コンフリクトの解消データ、および他の関連データ（例えばコンピューティングデバイス２３０およびそのユーザに関連する任意のデータ）などを管理するよう機能してよく、また、ストレージ管理アプリケーション２４０をアシストし、および／または、直接的に例えばストレージの管理および割り当て、コンフリクトの解消、挙動および複数のコンテキストの解釈、通信の促進などの様々な処理に参加してよい。
【００２３】
通信／互換性ロジック２１０は、例えば、図１のホストマシン１００、コンピューティングデバイス２３０（例えばモバイルコンピューティングデバイス）など、遠隔クラウドストレージ２８０および遠隔デバイスストレージ２７０などの複数のデータベースおよび複数のストレージデバイス、例えばネットワーク２２０（例えばクラウドネットワーク、インターネットなど）および近接ネットワーク２６０（Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＢＬＥ、ＷｉＦｉ  ｐｒｏｘｉｍｉｔｙなど）の複数のネットワーク、複数のソフトウェアアプリケーション／複数のウェブサイト（例えば、Ｆａｃｅｂｏｏｋ（登録商標）、Ｌｉｎｋｅｄｌｎ（登録商標）、Ｇｏｏｇｌｅ＋（登録商標）などの複数のソーシャルネットワーキングウェブサイト、複数のビジネスアプリケーション、複数のゲーム、および他の複数の娯楽アプリケーションなど）、複数のプログラミング言語など、様々なコンピューティングデバイスの間の動的な通信および互換性を促進するのに使用されてよく、一方で、技術、パラメータ、プロトコル、規格などの変更を伴う互換性を確保する。
【００２４】
特定の特徴を追加、除去および／または向上させることを含む様々な実施形態を容易化するべく、任意の数およびタイプのコンポーネントが、ストレージ管理メカニズム１１０およびストレージ管理アプリケーション２４０に追加、および／または、これらから除去されてよいことが意図される。ストレージ管理メカニズム１１０およびストレージ管理アプリケーション２４０の簡潔さ、明確性および容易な理解の目的で、標準および／または既知のコンポーネント、例えばコンピューティングデバイスのものなど、の多くは本明細書で示されず、または説明されない。本明細書において説明されるような実施形態は、いずれかの特定の技術、トポロジー、システム、アーキテクチャ、および／または規格に限定されず、任意の将来の変更を採用し、これに適合するのに十分に動的であることが意図される。
【００２５】
図３は、一実施形態に係る複数のコンピューティングデバイスのための動的なストレージ管理の促進方法３００を図示する。方法３００は、ハードウェア（例えば回路、専用ロジック、プログラム可能ロジックなど）、ソフトウェア（例えば処理デバイス上で実行される複数の命令）、またはそれらの組み合わせを有してよい処理ロジックにより実行されてよい。一実施形態において、方法３００は、図２のストレージ管理メカニズム１１０および／またはストレージ管理アプリケーション２４０により実行されてよい。
【００２６】
方法３００は、ブロック３０２、３０４および３０６の何れか１または複数で開始してよい。例えば、ブロック３０２で、ユーザ定義およびユーザ入力のデータプリファレンス（例えば、複数のコンテキスト、複数のアプリケーション優先度、複数のコンフリクトポリシーなど）は、コンピューティングデバイス（例えば、モバイルコンピューティングデバイスなどのクライアントコンピューティングデバイス）にアップロードされる。ブロック３０４で、デバイス検出されたコンテキストアウェアデータ（例えば、学習された複数のコンテキスト、使用挙動、ユーザプロファイル、複数のポリシー、複数の優先順位づけなど）を参照する。ブロック３０６で、コンピューティングデバイスのローカルストレージのディスク領域を監視する。ブロック３０８で、ユーザ提供の複数のプリファレンス、ディスク検出されたコンテキストアウェアデータ、および、監視されたローカルディスク領域に関連するデータなどのデータ／要素を処理して、他の複数の用途および／または複数のコンテンツへの現在および将来のストレージ割り当てを決定する。
【００２７】
ブロック３１０で、ユーザによりコンピューティングデバイスでアクセスされることが要求されている他の複数の用途および／または複数のコンテンツのための現在および／または将来のストレージ割り当てに適合させるのに十分な利用可能なディスク領域がローカルストレージにあるか否かに関する決定が行われる。十分な量の利用可能なディスク領域がある場合には、処理はブロック３１２で終了する。結果が否定的な場合には、ブロック３１４で、処理された複数の要素（例えば、ユーザ提供の複数のプリファレンス、ディスク検出されたコンテキストアウェアデータ、および、監視されたローカルディスク領域）が評価され（例えば、仕事関係の複数のアプリケーション／複数のコンテンツが勤務時間にはより大きく重み付けされるなど、特定の複数の要素が他の複数の要素よりも高い重要度に割り当てられる）、その結果、適切で効率のよいストレージ割り当てが実現されうる。ブロック３１６で、評価に基づいて、１または複数のアプリケーションおよび／または特定のコンテンツが選択（ｃｈｏｓｅｎ）／選択（ｓｅｌｅｃｔｅｄ）され、例えば、クラウドネットワークを介してサーバコンピュータに関連付けられたクラウドベースの遠隔ストレージデバイス、および／または、近接ネットワークを介して別のコンピューティングデバイス（例えばモバイルコンピューティングデバイス）に関連付けられたデバイスベースのストレージデバイスなど、１または複数の遠隔ストレージデバイスへ移動、および／または、から受信されるよう要求される。ブロック３１８で、選択された複数のアプリケーション／コンテンツは１または複数の遠隔ストレージデバイスへ移動、および／または、から受信される。処理はブロック３１２で終了する。
【００２８】
図４は、コンピューティングシステム４００の実施形態を図示する。コンピューティングシステム４００は、例えば、複数のデスクトップコンピューティングシステム、複数のラップトップコンピューティングシステム、複数の携帯電話、移動体通信可能な複数のＰＤＡを含む複数のパーソナルデジタルアシスタント（ＰＤＡ）、複数のセットトップボックス、複数のスマートフォン、複数のタブレットなどを含む、様々なコンピューティングおよび電子デバイス（有線または無線）を表す。代替の複数のコンピューティングシステムは、より多い、より少ない、および／または異なる複数のコンポーネントを含み得る。
【００２９】
コンピューティングデバイス４００は、図１のストレージ管理メカニズム１１０を用いたホストマシン１００、および／または、図２のストレージ管理アプリケーション２４０を用いたクライアントコンピューティングデバイス２５０と同一または類似、または、これを含む。
【００３０】
コンピューティングシステム４００は、バス４０５（または情報を通信するリンク、相互接続、または他のタイプの通信デバイスもしくはインターフェース）、および情報を処理し得る、バス４０５に結合されたプロセッサ４１０を含む。コンピューティングシステム４００は、単一のプロセッサと共に図示されるが、電子システム４００は、複数のマルチプロセッサ、複数のグラフィックスプロセッサ、および複数の物理プロセッサ等のうちの１または複数など、複数のプロセッサおよび／またはコプロセッサを含み得る。
【００３１】
コンピューティングシステム４００は、バス４０５に結合されたランダムアクセスメモリ（ＲＡＭ）または他のダイナミック型ストレージデバイス４２０（メインメモリと呼ばれる）をさらに含んでよく、プロセッサ４１０により実行され得る情報および命令を格納してよい。また、メインメモリ４２０を用いて、プロセッサ４１０による命令の実行中に一時変数または他の中間情報を格納してもよい。
【００３２】
コンピューティングシステム４００は、プロセッサ４１０の静的情報および複数の命令を格納し得る、バス４０５に結合された読み取り専用メモリ（ＲＯＭ）および／または他のストレージデバイス４３０も含み得る。データストレージデバイス４４０は、情報および複数の命令を格納するべくバス４０５に結合され得る。磁気ディスクまたは光ディスク、および対応するドライブ等のデータストレージデバイス４４０は、コンピューティングシステム４００に結合され得る。
【００３３】
また、コンピューティングシステム４００は、バス４０５を介してブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、または有機発光ダイオード（ＯＬＥＤ）アレイ等のディスプレイデバイス４５０に結合し、ユーザに情報を表示し得る。英数字および他の複数のキーを含むユーザ入力デバイス４６０は、バス４０５に結合し、プロセッサ４１０に情報および複数のコマンド選択を通信し得る。他のタイプのユーザ入力デバイス４６０は、マウス、トラックボール、タッチスクリーン、タッチパッド、またはカーソル方向キー等のカーソル制御器４７０であり、方向情報および複数のコマンド選択をプロセッサ４１０に通信し、ディスプレイ４５０上でカーソル移動を制御する。コンピュータシステム４００のカメラおよびマイクの複数のアレイ４９０は、ジェスチャを観察し、音声および動画を記録し、視覚および音声コマンドを受信および送信するべく、バス４０５に結合され得る。
【００３４】
コンピューティングシステム４００は、ネットワークインターフェース４８０をさらに含み、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、クラウドネットワーク、モバイルネットワーク（例えば第３世代移動通信システム（３Ｇ）等）、イントラネット、インターネット等のネットワークへのアクセスを提供し得る。ネットワークインターフェース４８０は、例えば、アンテナ４８５を有する無線ネットワークインターフェースを含んでよく、アンテナ４８５は、１または複数のアンテナを表し得る。また、ネットワークインターフェース４８０は、例えば、ネットワークケーブル４８７を介して複数の遠隔デバイスと通信する有線ネットワークインターフェースを含んでよく、ネットワークケーブル４８７は、例えば、イーサネット（登録商標）ケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、またはパラレルケーブルであり得る。
【００３５】
ネットワークインターフェース４８０は、例えば、ＩＥＥＥ８０２．１  ｌｂおよび／またはＩＥＥＥ８０２．１  ｌｇ規格に適合することによりＬＡＮへのアクセスを提供し、および／または無線ネットワークインターフェースは、例えば、複数のＢｌｕｅｔｏｏｔｈ（登録商標）規格に適合することによりパーソナルエリアネットワークへのアクセスを提供し得る。前および後のバージョンの規格を含む他の複数の無線ネットワークインターフェースおよび／またはプロトコルもサポートされ得る。
【００３６】
複数の無線ＬＡＮ規格による通信に加えて、またはこれの代わりに、ネットワークインターフェース４８０は、例えば、時間分割多重アクセス（ＴＤＭＡ）プロトコル、モバイル通信用グローバルシステム（ＧＳＭ（登録商標））プロトコル、コード分割多重アクセス（ＣＤＭＡ）プロトコル、および／またはその他のタイプの複数の無線通信プロトコルを用いる無線通信を提供し得る。
【００３７】
ネットワークインターフェース４８０は、例えば、モデム、ネットワークインタフェースカード、または例えばＬＡＮまたはＷＡＮをサポートするべく通信リンクを提供する目的で、イーサネット（登録商標）、トークンリング、または他のタイプの複数の物理的な有線もしくは無線アタッチメントに結合するために用いられるもの等、他の複数の周知のインターフェースデバイスの１または複数の通信インターフェースを含み得る。このように、コンピュータシステムは、例えば、イントラネットまたはインターネットを含む従来のネットワークインフラストラクチャを介して多くの周辺機器、クライアント、コントロールサーフェス、コンソールまたはサーバにも結合され得る。
【００３８】
上記の例よりも少ないか、または多い装備システムが特定の複数の実装例には好ましい場合があることを理解されたい。従って、コンピューティングシステム４００の構成は、価格の制約、性能要件、技術的改善、または他の条件等の様々な要素に応じて実装例毎に異なり得る。電子デバイスまたはコンピュータシステム４００の例としては、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、一般消費者向け電子機器、プログラマブル一般消費者向け電子機器、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センタ、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはこれらの組み合わせが挙げられ得るが、これらに限定されない。
【００３９】
複数の実施形態は、親基板を使用して相互接続される１または複数のマイクロチップまたは集積回路、ハードワイヤによるロジック、メモリデバイスにより格納され、マイクロプロセッサ、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）により実行されるソフトウェアのいずれかまたは組み合わせとして実装され得る。「ロジック」という用語は、例として、ソフトウェアもしくはハードウェア、および／またはソフトウェアおよびハードウェアの組み合わせを含み得る。
【００４０】
複数の実施形態は、例えば、コンピュータ、複数のコンピュータのネットワーク、または他の複数の電子デバイス等の１または複数の機械により実行されると、本実施形態で説明される実施形態による複数のオペレーションを実行する１または複数の機械をもたらし得る機械実行可能な複数の命令を格納した１または複数の機械可読媒体を含み得るコンピュータプログラム製品として提供され得る。機械可読媒体としては、フロッピー（登録商標）ディスケット、光ディスク、ＣＤ−ＲＯＭ（コンパクトディスク読み取り専用メモリ）、ならびに光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ（消去可能プログラマブル読み取り専用メモリ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブル読み取り専用メモリ）、磁気もしくは光カード、フラッシュメモリ、または機械実行可能な複数の命令を格納するのに好適な他のタイプの媒体／機械可読媒体が挙げられ得るが、これらに限定されない。
【００４１】
更に、複数の実施形態は、コンピュータプログラム製品としてダウンロードされ、プログラムは、搬送波において実施され、および／またはこれにより変調される１または複数のデータ信号または通信リンク（例えば、モデムおよび／またはネットワーク接続）を介する他の伝播媒体により、遠隔コンピュータ（例えば、サーバ）から要求元コンピュータ（例えば、クライアント）に送信され得る。
【００４２】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」等に参照することにより、そのように説明する実施形態が特定の複数の特徴、構造、または特性を備え得ることを示すが、全ての実施形態は、特定の複数の特徴、構造、または特性を必ずしも備えるものではない。さらに、いくつかの実施形態は、複数の他の実施形態について説明した複数の特徴のいくつか、もしくは全てを備え、またはそれらを全く備えないこともある。
【００４３】
以下の説明および特許請求の範囲において、「結合された」という用語は、その複数の派生語と共に使用され得る。「結合された」は、２またはそれ以上の要素が互いに共働またはインタラクトすることを示すべく用いられるが、その間に介在する物理的または電気的な複数のコンポーネントを有することもあり、有しないこともある。
【００４４】
特許請求の範囲において使用するように、別途指定しない限り、共通の要素を説明するべく序数形容詞「第１の」、「第２の」、「第３の」等を使用しても、同様の複数の要素の異なる例を参照することを単に示すのみであり、そのように説明する複数の要素が時間的、空間的、順位、またはその他の様式のいずれかにおいて所与の順序でなければならないことの示唆を意図するものではない。
【００４５】
以下の複数の節および／または例は、更なる複数の実施形態または例に関する。  これらの例における具体的事柄は、１または複数の実施形態のいずれかの箇所で使用され得る。異なる実施形態または例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされ、他の特徴は、様々な異なる用途に適するように除外されてもよい。いくつかの実施形態は方法であって、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出する段階と、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視する段階と、コンテキストアウェアデータおよび領域の監視の複数の結果に基づいてローカルストレージにおける領域の複数の部分を動的に割り当てる段階と、を備え、動的に割り当てる段階は、第２コンテンツをローカルストレージから１または複数の遠隔ストレージデバイスに移動させることで第１コンテンツに領域の第１の部分を提供する段階を含む方法に関する。
【００４６】
複数の実施形態および例は、検出されたコンテキストアウェアデータに基づいて１または複数のコンテキストを決定する段階と、検出されたコンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、コンピューティングデバイスまたはユーザのアクティビティの変更とのうちの１または複数のコンテキストを評価する段階と、評価に基づいて第１コンピューティングデバイスの使用挙動を予測する段階と、をさらに備え、動的に割り当てることはさらに、予測された使用挙動に基づく、複数の上記の方法の何れかを含む。
【００４７】
複数の実施形態および例は、１または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第２コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動され、１または複数の遠隔ストレージデバイスは、クライアントコンピューティングデバイスに結合されたデバイスベースの遠隔ストレージデバイスを有し、第２コンテンツはＢｌｕｅｔｏｏｔｈ（登録商標）接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、複数の上記の方法の何れかを含む。
【００４８】
複数の実施形態および例は、デフォルトのコンフリクトの解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、第１コンテンツおよび第２コンテンツの間のコンフリクトを解消する段階をさらに備え、ユーザ提供のコンフリクト解消ポリシーは、デフォルトのコンフリクトの解消ポリシーよりも高い優先度を保持し、第１および第２コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイル、および、ストレージを必要とする１または複数のデータファイルのうちの１または複数を有する、複数の上記の方法の何れかを含む。
【００４９】
いくつかの実施形態は、方法であって、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求をサーバコンピューティングデバイスで受信する段階と、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューする段階と、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納する段階と、を備える方法に関する。
【００５０】
複数の実施形態および例は、コンテキストアウェアデータをコンテキストアウェアデータ管理ロジックに提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出する段階をさらに備える、複数の上記の方法の何れかを含む。
【００５１】
複数の実施形態および例は、クラウドネットワークを含むネットワークを介して、遠隔クラウドストレージに格納されているコンテンツに関連する通知を、クライアントコンピューティングデバイスに通信する段階と、取得リクエストに応じて遠隔クラウドストレージデバイスからコンテンツを取得する段階と、をさらに備え、取得されたコンテンツは、クライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、複数の上記の方法の何れかを含む。
【００５２】
別の実施形態または例は、上で言及した複数の方法の何れかによるオペレーションを実行する装置を含む。
【００５３】
別の実施形態または例において、装置は、上で言及した複数の方法の何れかによるオペレーションを実行する手段を含む。
【００５４】
更に別の実施形態または例において、コンピューティングデバイスは、上述の方法のいずれかによるオペレーションを実行するように構成される。
【００５５】
一実施形態または例において、システムは、上で言及した複数の方法の何れかによるオペレーションを実行するメカニズムを含む。
【００５６】
さらに別の実施形態または例において、少なくとも１つの機械可読記憶媒体は、コンピューティングデバイスで実行されることに応じて、上で言及された複数の方法の何れかによるオペレーションをコンピューティングデバイスに実行させる複数の命令を含む。
【００５７】
さらに別の実施形態または例において、少なくとも１つの非一時的または有形の機械可読記憶媒体は、コンピューティングデバイスで実行されることに応じて、上で言及された複数の方法の何れかによるオペレーションをコンピューティングデバイスに実行させる複数の命令を含む。
【００５８】
いくつかの実施形態は、装置であって、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出するコンテキストアウェア検出管理ロジックと、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視するストレージ割り当てロジックとを備え、ストレージ割り当てロジックはさらに、コンテキストアウェアデータと、領域の監視の複数の結果とに基づいてローカルストレージにおける領域の複数の部分を動的に割り当て、動的に割り当てることは、第２コンテンツをローカルストレージから１または複数の遠隔ストレージデバイスに移動させることで第１コンテンツに領域の第１の部分を提供することを含む、装置に関する。
【００５９】
複数の実施形態および例は、検出されたコンテキストアウェアデータと、ユーザ提供の複数のコンテキストと、コンピューティングデバイスまたはユーザのアクティビティの変更とのうちの１または複数を評価するプレディクタビリテイロジックをさらに備え、プレディクタビリテイロジックは、評価に基づいて、第１コンピューティングデバイスの将来の使用挙動をさらに予測する、上記の装置を含む。
【００６０】
複数の実施形態および例は、動的に割り当てることは、予測された使用挙動にさらに基づく、上記の装置を含む。
【００６１】
複数の実施形態および例は、１または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第２コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動される、上記の装置を含む。
【００６２】
複数の実施形態および例は、１または複数の遠隔ストレージデバイスは、当該装置に結合されたデバイスベースの遠隔ストレージデバイスを有し、
第２コンテンツは、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、上記の装置を含む。
【００６３】
複数の実施形態および例は、デフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて、第１コンテンツおよび第２コンテンツの間のコンフリクトを解消するコンフリクト解消ロジックをさらに備え、
ユーザ提供のコンフリクト解消ポリシーは、デフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、上記の装置を含む。
【００６４】
複数の実施形態および例は、第１および第２コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする１または複数のデータファイルのうちの１または複数を含む、上記の装置を含む。
【００６５】
いくつかの実施形態は、装置であって、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求を当該装置で受信する受付／認証ロジックと、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューするコンテキストアウェアデータ管理ロジックと、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納する遠隔ストレージロジックと、を備える装置に関する。
【００６６】
複数の実施形態および例は、コンテキストアウェアデータ管理ロジックにコンテキストアウェアデータを提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出するデバイス／コンテキスト管理ロジックをさらに備える、上記の装置を含む。
【００６７】
複数の実施形態および例は、ネットワークを介して、遠隔クラウドストレージまたはローカルストレージに格納されているコンテンツに関連する通知をクライアントコンピューティングデバイスに通信する通信／互換性ロジックをさらに備え、ネットワークはクラウドネットワークを有する、上記の装置を含む。
【００６８】
複数の実施形態および例は、遠隔ストレージロジックはさらに、取得リクエストに応じて、使用およびプレディクタビリテイに基づき、遠隔クラウドストレージデバイスからコンテンツを取得し、取得されたコンテンツはクライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、上記の装置を含む。
【００６９】
いくつかの実施形態は、複数の命令を格納するメモリ、および、複数の命令を実行する処理デバイスを有するコンピューティングデバイスであって、１または複数のオペレーションを行うメカニズムをさらに有するコンピューティングデバイスを備えるシステムに関する。１または複数のオペレーションは、コンピューティングデバイスと、コンピューティングデバイスに関連付けられたユーザとに関連するコンテキストアウェアデータを検出することと、コンピューティングデバイスのローカルストレージにおける利用可能な領域を監視することと、コンテキストアウェアデータおよび領域の監視の複数の結果に基づいてローカルストレージにおける領域の複数の部分を動的に割り当てることと、を備え、動的に割り当てることは、第２コンテンツをローカルストレージから１または複数の遠隔ストレージデバイスに移動させることで第１コンテンツに領域の第１の部分を提供することを含む。
【００７０】
複数の実施形態および例は、１または複数のオペレーションが、検出されたコンテキストアウェアデータ、ユーザ提供のコンテキストおよびコンピューティングデバイスまたはユーザのアクティビティの変更のうちの１または複数を評価することと、評価に基づいて第１コンピューティングデバイスの使用挙動を予測することとをさらに含む、上記のシステムを含む。
【００７１】
複数の実施形態および例は、動的に割り当てることが予測された使用挙動にさらに基づく、上記のシステムを含む。
【００７２】
複数の実施形態および例は、１または複数の遠隔ストレージデバイスは、サーバコンピューティングデバイスに結合されたクラウドベースの遠隔ストレージデバイスを有し、第２コンテンツは、クラウドネットワークを含んだネットワークを介してクラウドベースの遠隔ストレージデバイスに移動される、上記のシステムを含む。
【００７３】
複数の実施形態および例は、１または複数の遠隔ストレージデバイスは、クライアントコンピューティングデバイスに結合されたデバイスベースの遠隔ストレージデバイスを有し、第２コンテンツは、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を含んだ近接ネットワークを介してデバイスベースの遠隔ストレージデバイスに移動される、上記のシステムを含む。
【００７４】
複数の実施形態および例は、１または複数のオペレーションがデフォルトのコンフリクト解消ポリシーまたはユーザ提供のコンフリクト解消ポリシーに基づいて第１コンテンツおよび第２コンテンツの間のコンフリクトを解消することをさらに含み、ユーザ提供のコンフリクト解消ポリシーはデフォルトのコンフリクト解消ポリシーよりも高い優先度を保持する、上記のシステムを含む。
【００７５】
複数の実施形態および例は、第１および第２コンテンツは、複数のソフトウェアアプリケーション、複数の写真、複数の動画、複数のテキストファイル、複数の音楽ファイルおよび、ストレージを必要とする１または複数のデータファイルのうちの１または複数を含む、上記のシステムを含む。
【００７６】
いくつかの実施形態は、複数の命令を格納するメモリ、および、複数の命令を実行する処理デバイスを有するコンピューティングデバイスであって、１または複数のオペレーションを行うメカニズムをさらに有するコンピューティングデバイスを備えるシステムに関する。１または複数のオペレーションは、クライアントコンピューティングデバイスのローカルストレージから、サーバコンピューティングデバイスに結合された遠隔クラウドストレージデバイスにコンテンツを移動するための要求をサーバコンピューティングデバイスで受信することと、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータをレビューすることと、コンテキストアウェアデータに基づいて遠隔クラウドストレージデバイスでコンテンツを格納することと、を含む。
【００７７】
複数の実施形態および例は、１または複数のオペレーションはコンテキストアウェアデータをコンテキストアウェアデータ管理ロジックに提供する前に、クライアントコンピューティングデバイスに関連するコンテキストアウェアデータを抽出することをさらに備える、上記のシステムを含む。
【００７８】
複数の実施形態および例は、１または複数のオペレーションが遠隔クラウドストレージに格納されているコンテンツに関連する通知を、ネットワークを介してクライアントコンピューティングデバイスに通信することをさらに含み、ネットワークはクラウドネットワークを含む、上記のシステムを含む。
【００７９】
複数の実施形態および例は、１または複数のオペレーションが取得リクエストに応じ、遠隔クラウドストレージデバイスからコンテンツを取得することをさらに含み、取得されたコンテンツはクライアントコンピューティングデバイスにおけるローカルストレージに通信されて戻される、上記のシステムを含む。
【００８０】
複数の図面および上記の説明は、複数の実施形態の例を与える。当業者は、説明した要素の１または複数を組み合わせて単一の機能要素にし得ることを理解するであろう。あるいは、特定の複数の要素は、複数の機能要素に分割してもよい。一実施形態の複数の要素は、別の実施形態に付加してもよい。例えば、本明細書において説明する処理の順序を変更し得るが、本明細書において説明する様式には限定されない。更に、いずれかの流れ図のアクションを、示す順序で実装する必要はなく、動作の全ては、必ずしも実行する必要はない。また、他の動作に依存しない動作を他の動作と並行に実行してもよい。複数の実施形態の範囲は、これらの具体的な例によって限定されるものではない。構造における差異、寸法、および材料の使用等、様々な変形形態は、明細書において明示的に与えられているか否かに関わらず、可能である。複数の実施形態の範囲は、少なくとも、以下の特許請求の範囲により与えられるのと同程度に広範である。
【図１】
0006259920.tif 000002
【図２】
0006259920.tif 000003
【図３】
0006259920.tif 000004
【図４】
0006259920.tif 000005