(57)【特許請求の範囲】
【請求項１】
データ記憶装置のためのコンピュータ実行方法であって、
ストレージサービスを含み、実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で、
第１のコンピューティングシステムの複数のデータファイルを監視するステップと、
前記第１のコンピューティングシステムが複数の前記データファイルのうちの第１データファイルを保存する第１保存イベントと前記第１のコンピューティングシステムとは異なる第２のコンピューティングシステムが複数の前記データファイルのうちの前記第１データファイルを保存する第２保存イベントとに基づいて、１つまたは複数のデータファイルの重要度を決定するステップと、
前記重要度に基づいて前記１つまたは複数のデータファイルからの前記データファイルのセットの更新をストレージサービスに送ることを選択的に決定するステップと
第２のコンピューティングシステムでの前記データファイルのセットの利用性のために前記データファイルのセットの更新を前記ストレージサービスにアップロードさせるステップと、を備えるコンピュータ実行方法。
【請求項２】
前記データファイルの重要度を決定するステップは、前記データファイルを記述したメタデータに基づいて重要度を計算するステップを更に含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項３】
前記メタデータは、文書の種類、文書へのアクセス履歴、キーワード、または制作者の情報を含むことを特徴とする請求項２に記載のコンピュータ実行方法。
【請求項４】
前記データファイルの重要度を決定するステップは、前記第１のコンピューティングシステムにインストールされた１つまたは複数のアプリケーションとの関係に基づいて、重要度を計算するステップを更に含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項５】
前記第１のコンピューティングシステムのユーザインターフェイスは、前記第２のコンピューティングシステムにストリーミングできる請求項１に記載のコンピュータ実行方法。
【請求項６】
前記ストレージサービスのアカウントに登録された前記第２のコンピューティングシステムへの前記データファイルのセットの更新の送信を可能にするために、前記第２のコンピューティングシステムのアドレスを受信するステップを更に備えたことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項７】
前記データファイルのセットを前記ストレージサービスによって格納させるステップを更に備えたことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項８】
前記データファイルのセットの検索を可能にするために、前記データファイルのセットを索引付けするステップを更に備えたことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項９】
前記データファイルのセットをアップロードさせるステップは、前記データファイルのセットが前記ストレージサービスに暗号化された形式で格納されるように、前記データファイルのセットを暗号化するステップを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項１０】
ファイルイベントまたはファイル属性に基づいて、前記データファイルのセットから少なくとも１つのファイルの重要度を決定するステップを更に備えたことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項１１】
データ記憶のためのコンピュータシステムであって、
１つまたは複数のプロセッサによって実行されると、１つまたは複数の前記プロセッサに少なくとも、
データファイルの内部分析及びデータファイルの決定された重要度に基づいて、ストレージサービスに送信するデータ構造内のデータファイルのセットの更新を選択的に決定するように構成された第１のコンピューティングシステムのアプリケーションと、
前記ストレージサービスから前記データファイルのセットの更新を受信するように構成された第２のコンピューティングシステムのアプリケーションと、
前記第１のコンピューティングシステムと前記第２のコンピューティングシステムとの間での前記データファイルのセットの更新の同期を管理するように構成される前記ストレージサービスと、を実行させ、
前記重要度は、第１のコンピューティングシステムのアプリケーション及び前記第２のコンピューティングシステムのアプリケーションで保存される前記データファイルに基づいて決定される、コンピュータシステム。
【請求項１２】
前記第１のコンピューティングシステムは、更に、ファイル構造を収容するボリュームを備え、前記データ構造はファイル構造であることを特徴とする請求項１１に記載のコンピュータシステム。
【請求項１３】
前記ストレージサービスは、更に、前記データファイルのセットを格納する記憶装置を備えることを特徴とする請求項１１のコンピュータシステム。
【請求項１４】
前記ストレージサービスは、更に、前記ストレージによって格納される前記データファイルのセットからの少なくとも１つのデータファイルのためのエディタを提供するＷｅｂアプリケーションを含むことを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
更に、前記ストレージによって格納される前記ファイルのセットを索引付けする検索サービスを含み、検索インターフェイスを提供することを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１６】
前記第２のコンピューティングシステムにアップロードされた前記データファイルのセットを同期させるステップと、
前記アップロードされたデータファイルのセットが同期した後、前記ストレージサービスから前記アップロードされたデータファイルの少なくとも一部を削除するステップと、を備える請求項１に記載のコンピュータ実行方法。
【発明の詳細な説明】
【背景技術】
【０００１】
文書は、ワークフローの重要な一部となっており、これらは、追跡、報告、教育や支払い機能など様々な機能を果たす。例えば、子供と教師が配布資料やレポートに取り組んでいる。別の例では、整備士が修理中に部品、労働及び完了を追跡する。これらの文書を使用すると、ワークフローの状態が文書に反映され得るため、ワークフローが継続することを可能にする。
【０００２】
文書やコンテンツが構築されると、人々はますます検討し、様々なデバイス上にコンテンツを編集する。例えば、自身のスマートフォン上のスプレッドシートを検討することができるように、主要なビジネス指標を伴う最新のスプレッドシートを幹部は自分自身へ電子メールする。別の例では、弁護士の秘書はＵＳＢドライブ上にファイルを置き、旅行中にノートパソコンで確認できるよう、弁護士に与える。更に別の例では、アーティストはリモートサーバへ変更を同期させる予め確認されたフォルダに資産や取り組み中の作業を保存する。
【図面の簡単な説明】
【０００３】
本発明による様々な実施形態が図面を参照して説明されるが、図において、
【図１】少なくとも１つの実施形態による予測ストレージサービスの説明に役立つ実例を示す図である。
【図２】少なくとも１つの実施形態によるファイル構造を使用して予測ストレージサービスの説明に役立つ実例を示す図である。
【図３】少なくとも一実施形態による予測ストレージサービスにファイルを同期させるために使用することができるプロセスの説明に役立つ実例を示す図である。
【図４】少なくとも一実施形態による予測ストレージサービスで選択するファイルを決定するために使用されるプロセスの説明に役立つ実例を示す図である。
【図５】少なくとも一実施形態による予測ストレージサービスで選択するファイルを決定するために使用されるプロセスの説明に役立つ実例を示す図である。
【図６】少なくとも一実施形態による予測ストレージサービスでファイルを同期させるために使用することができるプロセスの説明に役立つ実例を示す図である。
【図７】少なくとも一実施形態による予測ストレージサービスにファイルを格納するために使用され得るプロセスの説明に役立つ実例を示す図である。
【図８】少なくとも一実施形態によるデータセンタ組織の説明に役立つ実例を示す図である。
【図９】種々の実施形態が実装される環境を説明する。
【発明を実施するための形態】
【０００４】
以下の記述では、様々な実施形態を説明する。説明の目的のために、特定の構成及び詳細が実施形態の完全な理解を提供するために記載されている。しかし、実施形態は特定の詳細なしに実施できることも当業者には明らかであろう。また、記述されている実施形態を不明瞭にしないために、周知の特徴は省略または簡略化してもよい。
【０００５】
ここに記載され推奨される技術は、別の場所で使用するために利用可能なファイルを作成するファイル構造からストレージサービスに送信するファイルを選択的に決定することを含んでいる。例えば、ユーザは、デスクトップコンピュータやモバイルデバイスなどのコンピューティングシステムをアカウントに登録してもよい。ユーザは、デスクトップコンピュータ及び／またはモバイルデバイスに、これらの登録されたコンピューティングシステム上でアクティビティを監視する予測ストレージアプリケーションをインストールさせることができる。
【０００６】
説明に役立つ実施例として、予測ストレージアプリケーションは、ユーザがラップトップコンピュータ上でダウンロードし、ＰＤＦファイルを開いたことを判断することができる。ＰＤＦファイルがラップトップコンピュータ上で開いている間は、予測ストレージアプリケーションは、ユーザがワードプロセッシング文書も開いたという通知を受け取ることができる。そして、予測ストレージアプリケーションは、ウィンドウフォーカスがラップトップコンピュータ上でＰＤＦとワードプロセッシング文書との間で複数回シフトするイベントを受け取る場合がある。ワードプロセッシング文書のためのイベントを保存すると、ユーザがファイルと対話し、ＰＤＦとワードプロセッシング文書が予測ストレージサービスに送信されるようになるという事実に少なくとも部分的に基づいて十分な重要性をＰＤＦとワードプロセッシング文書が持っていることを予測ストレージアプリケーションが決定してもよい。一度予測ストレージサービスに入ると、ＰＤＦやワードプロセッシング文書は存続し、或いは登録携帯電話に送信することができる。ラップトップコンピュータ上でのＰＤＦまたはワードプロセッシング文書のいずれかに行った任意の更なる変更も、予測ストレージアプリケーション及び／または携帯電話に同期させることができる。ユーザがラップトップコンピュータをシャットダウンすると、ユーザは携帯電話上でＰＤＦを検討し、ワードプロセッシング文書の編集を続けることができる。
【０００７】
予測ストレージアプリケーションは、コンピューティングシステムのファイル構造を監視することができる。一実施形態では、サービスとして提供する仮想デスクトップには、ファイルシステムを監視する予測ストレージアプリケーションが含まれている。ファイルシステムは、ボリューム、オブジェクト記憶装置または他のデータコンテナに基づいてもよい。監視情報は、イベント、通知、ポーリングまたは他のプッシュ或いはプルベースの情報またはそれらの組合せを介して決定することができる。監視情報は、アプリケーション、オペレーティングシステム、ハイパーバイザー、プラグイン及び／またはそれらの組合せの監視情報の他のソースから受信することができる。例えば、アプリケーションは、一連のファイルタイプからのファイルが開かれ、閉じられ、作成され、修正され、及び／または破壊されたときに、通知を受信することをオペレーションシステムに登録することができる。別の実施例では、アプリケーションは、プラグインをワードプロセッサに含ませることができ、ファイルが開かれ、閉じられ、保存され、自動保存され及び／または保存オファーが拒否されると、アプリケーションに通知する。更に別の実施例では、アプリケーションは、ファイル構造に格納されている修正された、開いた、作成または他の日付及び情報に対する最近の変更のために、ボリューム内のファイル構造を定期的にスキャンすることができる。スキャンの間、他のファイルのメタデータは、著者、タイトル、主題、タグ、カテゴリ、最後に保存したユーザ名、リビジョン番号、バージョン番号、アプリケーション名、作成日、最後に保存した日付、最後に印刷した日付、最後にアクセスした日付、持ち込まれた日付、取得した日付、著作権、寸法、幅、高さ、解像度、圧縮、カメラ、ＩＳＯ速度、シリアル番号、ファイル構造パス、ページ、単語、文字、線、段落及び／またはサイズのようなものを収集することが可能である。
【０００８】
予測ストレージアプリケーションは、定量化されたデータの推論アルゴリズムに少なくとも部分的に基づいて、どのファイルをアップロードするかを決定することができる。アルゴリズムは、ファイルをアップロードすることの重要度を決定するために、経験則のような重要度の指標を使用することが可能である。どのファイルをアップロードするのが重要であるかを決定することによって、アップロード帯域幅及びストレージリソースをより効率的に使用することができるようになる。例えば、ファイル構造の全体（またはその一部）をアップロードする代わりに、特定されたファイルだけがアップロードされる。この選択的なアップロードは、ユーザがフォルダ内のすべてのものを強制的に保存する代わりに、予測ストレージアプリケーションを、測定された重要度を持つファイルの同期に集中させることが可能となる。また、この選択的なアップロードは、当座のまたは管理のファイルとして有用ではないかもしれないドキュメントのアップロードを避けることができる。ファイル構造内のファイルの構造及び／またはファイルについて収集された情報を使用して、予測ストレージアプリケーションは、重要度の指標に基づいて、ストレージサービスにどのファイルをアップロードするかを決定することができる。例えば、重要度の指標は、ユーザが時間をかけてファイルと相互作用した回数であってもよい。アルゴリズムは、重要度の指標に応じてファイルを評価するために使用することができる。アプリケーションは、ファイルの上位Ｘパーセント（ここでＸは構成可能な変数である）をサービスにアップロードするように構成することができる。別の構成では、アルゴリズムは、その全体的な評価を調整するために、ファイルをランク付けし、各ファイルの格付けを重み付けすることができる。ファイルの重要度の格付けを計算する重要度の指標を決定するために、監視プログラムは、例えば、ドキュメントタイプ、ファイルオープニングリーセンシー、ファイルが開いていた時間の長さ、それが開かれたときから閉じられたときまでのファイル全体のサイズの変化、キーワードや著者情報を使用することができる。マシンログインとマッチングする著者によって最近開かれた、ワードプロセッシングタイプを有するファイルは、より高い重要度格付けを受けることができる。アップロードスケジュールも、決定した重要度によって優先順位付けすることができる。別の実施例では、決定された重要度は、コンピューティングシステムにインストールされたアプリケーションに少なくとも部分的に基づいてもよい。一実施形態では、ファイルは、もしアイコンがファイルのファイルタイプに関連付けられている場合、インストールされたアプリケーションとの関係を有するように決定されてもよい。例えば、「ｔｘｔ」ファイル拡張子は、すべての「ｔｘｔ」拡張子ファイルのためにアイコンを提供するワードプロセッシングプログラムに起因して、アイコンとの関連を有していてもよい。コンピューティングシステムがインストールされたワードプロセッサを有しているが、しかしスプレッドシートを持っていない場合は、ワードプロセッシングに関連するファイルは重要度の高い格付けを得るが、スプレッドシートに関連するファイルは重要度の格付けが低下する可能性がある。
【０００９】
一実施形態では、予測ストレージサービスがファイルを格納している。予測ストレージサービスは、登録されたコンピューティングシステム上の予測ストレージアプリケーションとの通信を介してのように、登録コンピューティングシステムからファイルを受信することができる。登録されたコンピューティングシステムは、顧客のアカウントに関連付けられたコンピューティングシステムであってもよい。一実施形態では、クライアントは、顧客のアカウントに関連するファイルを受信するために、予測ストレージサービスに登録してもよい。例えば、顧客は、コンピューティングシステムにソフトウェアクライアントをインストールすることができる。インストールの一部として、ソフトウェアクライアントは、ユーザ名とパスワード或いはキーなどのアカウント情報を要求し、予測ストレージサービスに登録してもよい。その後、予測ストレージサービスは、将来の接続でソフトウェアクライアントを識別するために使用することができるソフトウェアクライアントに識別子またはキーを提供することができる。別の実施形態では、予測ストレージサービスは、仮想デスクトップサービスと連携させることができる。仮想デスクトップサービスの顧客は、サービスのプロバイダにアカウントを作成することができる。ソフトウェアクライアントを備えたオペレーティングシステムを含む仮想マシンは、仮想デスクトップサービスによってプロビジョニングすることができ、オペレーティングシステムによって作成されたグラフィカルユーザインターフェイスをクライアントデバイスにストリーミングすることができる。この構成では、ソフトウェアクライアントは、予測ストレージサービスと通信することを可能にするためのアカウント情報を事前にプロビジョニングすることができる。
【００１０】
予測ストレージサービスは、その後にファイルを格納してもよい。一実施形態では、予測ストレージサービスは、ファイルに関連する他のサービスを提供してもよい。例えば、ストレージサービスは、ファイル及び／またはファイル内の情報を見付けるため検索が実行され得るように、ファイルにインデックスを付けてもよい。検索は、検索した情報の前と後の双方で、コンテンツを有するファイルからスニペットを返還することがある。別の実施形態では、予測ストレージサービスは、暗号化したファイルを受信して保存する。ファイルは送信装置によって暗号化されているので、予測ストレージサービスはファイルを保存し、ファイルを復号化することができる他の登録コンピューティングシステムにファイルを中継して送ることができる。侵入工作のリスクは、ストレージサービスがデータへのアクセスを持っておらず、唯一、暗号化されたペイロードを格納するだけという事実によって軽減することができる。別の実施形態では、暗号化されたペイロードが格納されている場合にハイブリッドアプローチが採られるが、予測ストレージサービスも暗号化キーを有している。別のハイブリッドアプローチでは、暗号化されたペイロードは、暗号化されたペイロードにインデックスと共に格納される。
【００１１】
いくつかの実施形態では、格納されたファイルは、予測ファイルサービスから削除されてもよい。削除は、現在における決定された重要度、使用、空間及び／または時間に基づいてもよい。例えば、ファイルは、時間切れモデルに排除してもよい。保存されたファイルが一定の時間に亘って登録されたコンピューティングシステム上でアクセスされていない場合、ファイルは、予測ストレージサービスから削除されてもよい。別の実施例では、ファイルは、最低使用頻度（ＬＲＵ）モデルに追いやってもよい。予測ストレージサービスは、ファイルがストレージから削除されなければならないと判断した場合、予測ストレージサービスは、それがアクセスされて以来、最も長い時間が経過している削除すべきファイルを選択することができる。他の実施形態では、予測ストレージサービスは、予測ストレージサービスに保存されたファイルのために、登録されたデバイスから重要度の格付け及び／または重要度の指標を受信したり要求したりすることができる。これらの格付けは、重要度の格付けを有し、閾値をパスしないファイルや、重要度の格付け分布の統計的解析からの低い外れ値のファイルのようなものがもしあるならば、どのファイルをストレージサービスから削除するかを判断することができる。
【００１２】
いくつかの実施形態では、予測ストレージサービスは、登録されたデバイスにファイルを中継する。予測ストレージサービスは、ファイルを配布するための媒介として作用してもよい。一実施形態では、登録されたデバイスがファイルを受信しながら、予測ストレージサービスは一時的にファイルを格納することができる。一実施形態では、デバイスが互いにファイルを送信し、予測ストレージサービスがファイルを格納しないように、予測ストレージサービスはピア接続を容易にする。
【００１３】
次に図１を検討するが、少なくとも１つの実施形態による予測ストレージサービス１００の例示的な実施例が示されている。図示された実施形態では、第１のコンピューティングシステム上でアクセスされたファイル１０２は、ユーザによる更なるアクセスのために予測ストレージサービス１００によって促進されるよう第２のコンピューティングシステムに転送される。予測ストレージサービス１００は、どのファイルを転送するかを決定するために重要度の指標を用いることができる。例えば、ユーザは、デスクトップコンピュータ１０４上でアクセスされる、ワードプロセッシングファイルのようなファイル１０２にアクセスする。デスクトップコンピュータ１０４上の予測ストレージアプリケーションレジデントは、ファイルへの最近のアクセスが重要度の指標であり得るため、アクセスされたファイル１０２はユーザにとって重要であると判断する。いくつかの実施形態では、重要度は、いくつかの測定値を用いたアルゴリズムまたはヒューリスティックによって計算される一連の重要度インジケータから算出されたものである。測定は上述のように監視情報、及び／またはファイルのメタデータを含んでもよい。ファイル１０２は、十分に高く決定された重要度を有しているので、予測ストレージサービス１１０に接触してよいことになる。いくつかの実施形態では、ファイルをインターネット１０８経由で予測ストレージサービス１１０に送信してもよい。１つまたは複数のサーバ１１２を使用して、予測ストレージサービス１１０はファイル１０２を格納することができる。いくつかの実施形態では、予測ストレージサービス１１０は次にモバイルデバイス１０６との接触を試み、プッシュ通知や他のプッシュ技法を介するなどして、ファイル１０２をモバイルデバイスに送信することが可能である。他の実施形態では、モバイルデバイス１０６は予測ストレージサービス１１０と接触することができ、ファイル１０２を受け取るために予測ストレージサービス１１０からの更新を要求してもよい。モバイルデバイス１０６からの更新のためのこの要求は、モバイルデバイス１０６上で予測ストレージアプリケーションの立ち上げ、モバイルデバイス１０６からの定期的なポーリング要求、モバイルデバイス１０６上のイベント、或いは他のプル技法によるものである。
【００１４】
他の実施形態では、予測ストレージサービス１１０は、ファイル１０２をモバイルデバイス１０６に直接送信するように準備してもよい。一実施形態では、登録されたデバイスは、予測ストレージサービス１１０と接触したままであってもよい。例えば、重要なファイルが他のコンピュータシステムと共有されるべきと判断されたとき、デスクトップシステム１０４は予測ストレージサービス１１０に接触して、モバイルデバイス１０６のような他のコンピューティングシステムのために接触情報を取り出すことができる。構成に応じて、デスクトップシステム１０４は直接モバイルデバイス１０６に接続することができ、モバイルデバイス１０６は直接デスクトップシステム１０４に接続することができ、予測ストレージサービス１１０は、デスクトップシステム１０４とモバイルデバイス１０６との間のプロキシまたは他の接続が開設されるように機能してもよい。接続を利用して、デスクトップシステム１０４はファイル１０２をモバイルデバイス１０６に送信することができる。
【００１５】
デスクトップ及び／またはモバイルデバイス１０６は、予測ストレージサービス１１０に登録することが可能である。一実施形態では、顧客は予測ストレージサービス１１０でアカウントを作成する。次に、顧客は、デスクトップコンピュータ１０４やモバイルデバイス１０６のようなコンピューティングシステムの各々にアプリケーションをインストールすることができる。アプリケーションは、コンピューティングシステムを予測ストレージサービス１１０に登録して、顧客のアカウントとコンピューティングシステムを関連付けることができる。
【００１６】
別の実施形態では、予測ストレージサービス１１０は、仮想デスクトップサービス１１４と連携して動作することも可能である。例えば、仮想デスクトップサービス１１４を操作するサービスプロバイダは、ユーザのためにオペレーティングシステムを備える仮想マシンを起動することができる。オペレーティングシステムのためのユーザインターフェイス１１８は、ユーザによって操作されるコンピューティングシステムにストリーミングすることができる。仮想デスクトップサービス１１４は１つまたは複数の物理マシン１１６を備えていてもよく、仮想マシンでプログラムを実行すると共にオペレーティングシステムのためのユーザインターフェイス１１８をクライアントにストリーミングする１つまたは複数の仮想マシンを物理マシンが提供する。ユーザインターフェイス１１８からの入力は、デスクトップサービス１１４にストリーミングすることができる。例えば、仮想マシンは、オペレーティングシステムのグラフィカルユーザインターフェイスを遠隔のラップトップにエクスポートすることができ、遠隔のラップトップからキーボードやマウスの入力を受け取ることができる。データセンタ内での仮想マシンの構成の一例を、図８に見ることができる。仮想デスクトップサービス１１４は、ユーザインターフェイス１１８で使用可能なファイル１０２を作成するために、ネットワーまたはインターネットを介して、予測ストレージサービス１１０と通信することができる。一実施形態では、仮想デスクトップ環境は、ファイル１０２にアクセス及び／またはファイル１０２を修正する仮想マシンでプログラムを実行することができる。仮想デスクトップサービス１１４のディスプレイは、クライアントコンピューティングリソース上に表示するためにエクスポートされてもよく、一方、ファイル１０２の処理とデスクトップ環境プログラムの実行は、デスクトップサービス１１４内で行われる。マウス、タッチ及び／またはキーボードのような入力は、ユーザインターフェイス１１８から仮想デスクトップサービス１１４に伝えられてもよい。
【００１７】
いくつかの実施形態では、予測ストレージサービス１１０は、Ｗｅｂインターフェイスを介してファイル１０２へのアクセスを提供する。一実施形態では、Ｗｅｂインターフェイスは、重要なファイルをダウンロードするためのダウンロード機能が含まれている。別の実施形態では、Ｗｅｂインターフェイスは、Ｗｅｂインターフェイスを介してファイルを編集する編集機能を備えている。例えば、ワードプロセッシング文書は、Ｗｅｂインターフェイスを介して利用できるワードプロセッシングＷｅｂアプリケーションに起因したＷｅｂインターフェイスを介して編集することができる。スプレッドシートファイルタイプのためのスプレッドシートＷｅｂアプリケーションまたはオーディオファイルタイプのためのオーディオプレーヤーのように、他のファイルタイプ及びアプリケーションもまた、利用できるようにすることが可能である。いくつかの実施形態において、使いやすさを促進する目的で、あるファイル形式から別の種類のファイル形式に変換するための変換器も使用することができる。例えば、オーディオファイルは、あまりサポートされていないファイルタイプからより広く一般的なファイルタイプまたはクライアントブラウザによってサポートされているファイルタイプに変換することができる。
【００１８】
次に図２を検討するが、図にはファイル構造２０６を使用する少なくとも１つの実施形態に従った予測ストレージサービスの例示的な実施例が示されている。ファイル構造２０６は、監視情報及びファイルメタデータを介して識別され得る重要なファイル２１２のために監視されることが可能である。他のファイル２１０は、あまり重要でないと見なされてもよい。例えば、コンピューティングシステム２０２上の予測ストレージアプリケーションは、コンピューティングシステム２０２に接続された記憶装置２０４を監視することができる。図示の実施形態では、記憶装置２０４は、階層的な性質を有するファイル構造２０６を備えている。フォルダ２０８は、他のフォルダ２０８及び／またはファイル２１０及び／または２１２を包含していてもよい。予測ストレージアプリケーションは、ファイルイベントが通知されるように随時ファイル構造２０６を登録及び／またはスキャンすることができる。
【００１９】
例えば、予測ストレージアプリケーションは、バックグラウンドサービスとして動作するコンピューティングシステム２０２にインストールすることができる。予測ストレージアプリケーションは、上述のように情報やファイルメタデータを監視するため、ハードドライブなどの記憶装置２０４を監視することができる。予測ストレージアプリケーションは、スキャン及び／またはファイルのイベントから調製した重要度の指標に基づいた特定のファイルのために重要度の格付けを決定することができる。重要度の格付けを用いて、一連２１４の重要なファイル２１２が確定され、予測ストレージサービスに送信される。一実施例では、２４時間が経過すると１ポイントがマイナスされる、５ポイントから始まって減少する重要度指標スコアが与えられる。編集可能なファイルには２ポイントが与えられる一方で、テキストを含んだ文書に対しては１ポイントが与えられている。６ポイントまたはそれ以上の重要度スコアを有するファイルは重要であると判断され、５ポイントまたはそれ以下のスコアでは予測ストレージサービスに送信されない場合がある。
【００２０】
いくつかの実施形態では、ファイルが暗号化される。一実施形態では、ファイルは、ＴＬＳ／ＳＳＬを介して送信される。他の実施形態では、ファイルは、暗号化されたファイルとして保存するためにコンピューティングシステム２０２を離れる前に暗号化される。ファイルを暗号化することにより、予測ストレージアプリケーションは、傍受及び／または機密情報の漏洩の危険性を低減することができる。
【００２１】
予測ストレージアプリケーションは、ファイル、ファイルタイプ、フォルダ、監視情報及びファイルメタデータを含むように及び／または排除するために、ユーザ及び／または管理者によって構成してもよい。一実施形態では、管理者は、一連のビジネスコンピューティングシステムのために予測ストレージアプリケーションを構成することができる。重要なファイルは、少なくとも他のチームメンバーに関係すると判断された最新の情報をチームメンバーが閲覧することができるように、チームメンバーのコンピューティングシステムに送信されてもよい。
【００２２】
次に図３を検討するが、この図には少なくとも一実施形態に従ってファイルを予測ストレージサービスと同期させるために使用され得るプロセス３００の例示的な実施例が示されている。プロセス３００は、デスクトップコンピュータシステム１０４、モバイルデバイス１０６、ファイル１０２、予測ストレージサービス１１０、インターネット１０８及びサーバ１１２のような図１に見られる１つまたは複数のコンピューティングリソースを使用することによって達成することができる。予測ストレージアプリケーションは、コンピューティングシステムにインストール３０２してもよい。コンピューティングシステムは、予測ストレージサービスに登録３０４することもできる。例えば、インストールの一部として、ソフトウェアクライアントは、予測ストレージサービスに接触して、クライアントが顧客のアカウントに関連付けられていることを識別するために使用することができるユーザ名とパスワードまたはデジタルキーなどの資格証明書を提供することができる。ソフトウェアクライアントは、予測ストレージサービスによって、クライアントの識別に使用するキーのような一連の資格情報を与えられてもよい。他の実施形態では、ＭＡＣアドレス、システムに関する１つまたは複数の識別情報或いはその他の識別情報のハッシュは、予測ストレージサービスに登録し、クライアントを識別するために使用することができる。オペレーティングシステムに適したアプリケーションをインストールすること及び予測ストレージサービスにデバイスを登録することによって、他のシステムを追加することができる。予測ストレージアプリケーション（複数可）は、ファイルの潜在的な重要度を示すものとして判断される測定及び／またはイベントのためにファイル３０８を監視することができる。いくつかの実施形態では、イベントは、ファイルとのユーザ相互作用を測定するために使用することができる。もし重要度の高いファイル３１０が発見されない場合、そして新規なシステムを登録する必要がない場合、ファイルは監視３０８し続けてもよい。潜在的に重要なファイルが検出３１０された場合、ファイルの重要度を計算３１２することができる。例えば、ワードプロセッシングファイルが保存されたイベントを予測ストレージアプリケーションが受け取った場合、予測ストレージアプリケーションが反応し、ファイルの重要度の格付けを判断することができる。もし格付けがファイルは十分に重要であると示した場合３１４は、ファイルは予測ストレージサービスに送られ３１６、他の登録されたデバイスに送信することができる。次いで、プロセスはブロック３０８から始まる繰り返しをしてもよい。しかし、ファイルが十分に重要でない３１４場合は、プロセスはブロック３０８から始まる繰り返しをしてもよい。事後を含む、種々の時点で他のデバイスを追加してもよいことに留意すべきである。
【００２３】
プロセス３００（または本明細書に記載の任意の他のプロセス、またはその変形及び／またはそれらの組合せ）のいくつか或いは全部は、実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で実行されてもよいし、ハードウェアまたはそれらの組合せにより、１つまたは複数のプロセッサ上で一括して実行するコード（例えば、実行可能な命令、１つまたは複数のコンピュータプログラム、或いは１つまたは複数のアプリケーション）として実施することができる。コードは、例えば、１つまたは複数のプロセッサによって実行可能な複数の命令からなるコンピュータプログラムの形で、コンピュータ読み取り可能な記憶媒体に格納してもよい。コンピュータ可読記憶媒体は、非一時的なものであってもよい。
【００２４】
プロセスの特定の実施例が示されているが、プロセス操作の一部は直列の代わりに並列に実行されてもよいことに留意すべきである。例えば、サービスへファイルを送信３１６し、登録されたデバイスに送信する操作は並列に実行することができる。別の実施例では、アプリケーションのインストール３０２と、コンピューティングシステムの登録３０４は、別のコンピューティングシステム上で並行して実行することができる。
【００２５】
別の実施例では、第１のデバイスが第１のファイルは重要であると判断し、第２のデバイスが第２のファイルは重要であると判断してもよい。第１のデバイスは、第１のファイルを予測ストレージサービス及び／または第２のデバイスに同期させることができる。そして第２のデバイスは、第２のファイルを予測ストレージサービス及び／または第１のデバイスに同期させることができる。その結果、第１のファイル及び第２のファイルは、予測ストレージサービス及び／または第１と第２のデバイスの双方に格納することが可能となる。
【００２６】
コンピューティングシステム上での予測ストレージアプリケーションの責任は、どのファイルを予測ストレージサービスまたは他のデバイス上のようなコンピューティングシステムの外側で使用可能なものにするべきかを確定することである。図４は、少なくとも一実施形態による予測ストレージサービスで選択するファイルを決定するために使用されるプロセス４００の例示的な実施例を示している。プロセス４００は、デスクトップコンピュータシステム１０４、モバイルデバイス１０６、ファイル１０２、予測ストレージサービス１１０、インターネット１０８及びサーバ１１２のような図１に見られる１つまたは複数の計算リソースを使用することによって達成することができる。予測ストレージアプリケーションは、コンピューティングシステム上に存在する。予測ストレージアプリケーションは、ファイルがコンピューティングシステムの外側で共有されるべきと表示するためにファイル構造を監視４０２する。ファイルのメタデータのような監視及び／または他の情報に基づくアルゴリズム及び／または経験則を使用して、予測ストレージアプリケーションは、どのファイルを予測ストレージサービスに送信するかを選択的に決定４０４することができる。例えば、重要度の格付けは、ファイルが最近開かれた、最近保存された、ワードプロセッシング拡張機能を有しているなどの属性によって増加させることができる。重要度の格付けが十分に高い場合、ファイルは、予測ストレージサービスに送信するように選択することができる。選択されると、ファイルは予測ストレージサービス４０６にアップロードすることができる。例えば、予測ストレージアプリケーションは、ＴＬＳ／ＳＳＬなどのセキュア通信チャネルを使用して予測ストレージサービスへのアプリケーションプログラミングインターフェイス呼び出しを行うことができる。いくつかの実施形態では、ファイルは、予測ストレージサービスに送信する前に、予測ストレージアプリケーションによってコンピューティングシステム上で暗号化することが可能である。
【００２７】
図５に示した一実施形態では、モニタリングはイベントベースの監視を含んでもよい。プロセス５００は、デスクトップコンピュータシステム１０４、モバイルデバイス１０６、ファイル１０２、予測ストレージサービス１１０、インターネット１０８及びサーバ１１２のような図１に示した１つまたは複数の計算リソースを使用することによって達成することができる。予測ストレージアプリケーションは、ファイル操作に関連するファイルの重要度決定をトリガーするファイル操作のイベント通知を受信５０２することができる。決定がなされる前に、ファイルに関する情報を収集してもよい。図示の実施形態では、他のデバイス間でのファイルの使用は、ファイルを開く、保存する或いは削除することで確定５０４することができる。ファイルタイプは、判断５０６することが可能である。いくつかの実施形態では、ワードプロセッシング文書、スプレッドシート、画像及び／または文書のように共用されているファイルは、構成ファイル、バックアップファイル及び／または実行可能ファイルのように、通常使用されていないファイルより高い重要度が与えられてもよい。ファイルに関連するイベントの履歴は確定５０８することができる。例えば、ファイルが最後の日に複数の保存をして、複数のオープニングイベント及び／または閾値を超えるアクティブなウィンドウの継続時間を持った場合、その後、ファイルの重要度の格付けは増加させることができる。他のアプリケーションと連携してファイルを使用することも決定５１０される。例えば、ファイルの重要度の格付けは、ファイルが別の重要なファイルと連携して開かれているときに向上させることができる。別の実施例では、既に決定された重要度を有するファイルと審査中のファイルとの間でフォーカスを変更すると、審査中ファイルの重要度格付けを増大させることができる。操作５０４から５１０で収集されたこの情報は潜在的な情報収集の実施例であるので、他の考察も用いることができる。収集した情報を用いて、ファイルの重要度格付けを決定することができる５１２。もし十分に重要であると決定した場合は５１４、ファイルはサービス５１６に送信され、その後、プロセスは操作５０２で繰り返される。もしファイルが十分な重要度を有しない場合５１４、予測ストレージアプリケーションは戻され、操作５０２で新しいイベントを待つことになる。
【００２８】
いくつかの実施形態では、重要度の格付けは、クライアントのニーズに合わせることができる。一実施形態では、予測ストレージシステムはユーザと一体になって使用されてもよい。ユーザは、フォルダ（システムフォルダなど）が含まれるように、または除外するように文書を構成し、ＵＳＢドライブなどの一時的なボリュームを含めるかどうかを決定することができる。同様に、重要度の格付け計算も構成することができまる。例えば、写真家は文書よりも画像により興味がある可能性があり、一方で弁理士は画像よりも文書や技術的な図面に興味がある可能性がある。予測ストレージアプリケーションは、デフォルトの構成を含んでいてもよい。
【００２９】
別の実施形態では、予測ストレージシステムは、企業環境またはチーム環境で管理者と共に使用することができる。予測ストレージサービスにアップロードされたファイルは、ファイルのユーザに与えられたファイルのアクセス権を尊重することできる。例えば、チームには読み取り専用であるが、重要であると判断されたファイルは、読み取り専用状態のままであってもよい。ワードプロセッシング文書を一連の画像に変換するように、ファイルは必要に応じて、文書を受け取るデバイス上で読み取り専用の条件を順守する形式に変換することができる。別の実施例では、アクセス許可は、文書を閲覧／または編集する権限を持っているチームメンバーに重要と見なされるファイルを配布するだけの予測ストレージサービスによって順守され得る。
【００３０】
いくつかの実施形態では、予測ストレージサービスは、ファイルのレポジトリとして動作するより、むしろデバイス間でのファイル伝達を促進することができる。図６には、少なくとも一実施形態による予測ストレージサービスでファイルを同期させるために使用することができるプロセス６００の例示的な実施例が示されている。プロセス６００は、デスクトップコンピュータシステム１０４、モバイルデバイス１０６、ファイル１０２、予測ストレージサービス１１０、インターネット１０８及びサーバ１１２のような図１に示した１つまたは複数の計算リソースを使用することによって達成することができる。予測ストレージサービスは、アカウントを顧客に登録することができる６０２。クライアントはアカウントを参照し、コンピューティングシステムを登録６０４することができる。それ以上のコンピューティングシステムが利用可能である場合、登録プロセスは複数のデバイスで複数回実行することができるので、それらもまた登録しても構わない。予測ストレージシステムは、他の登録されているシステムと同期するファイルを受け取る６０６ことができる。いくつかの実施形態では、登録されたシステム上で動作している予測ストレージアプリケーションからファイルを受け取ることができる。一実施形態では、受信されたファイルが暗号化されている。別の実施形態では、暗号鍵が登録システムに知られているが、予測ストレージサービスには知られていない。
【００３１】
ファイルを受信６０６した後、１つ以上の登録されたデバイスまたはシステムはファイルを同期６０８させることができる。いくつかの実施形態では、予測ストレージサービスは、成功が達成されるまでファイルを同期化しようと試みてもよい。他の登録されたシステムも同期させることができる。すべてのシステムが同期されると、ファイルをサービスから除去する６１０ことができる。一実施形態では、予測ストレージサービスは実際にはファイルを保存しないが、デバイスとの間で同期が発生するよう動作する。例えば、第１のコンピューティングシステムは、ファイルを同期させる第２のコンピューティングシステムのアドレスを受信することができる。このようにして、予測ストレージシステムは、同期のためのアドレス帳としての役割を果たす。いくつかの実施形態では、登録されたコンピューティングシステムは、ネットワークを変更するか或いはファイアウォールの背後にあるので、コンピューティングシステム上の予測ストレージアプリケーションは、接触した箇所のアドレスを定期的に更新すること可能となる。
【００３２】
いくつかの実施形態では、予測ストレージサービスは、登録されたコンピューティングシステムによって検索されるファイルのレポジトリとして機能してもよい。図７には、少なくとも一実施形態による予測ストレージサービスにファイルを格納するために使用され得るプロセス７００の例示的な実施例が示されている。プロセス７００は、デスクトップコンピュータシステム１０４、モバイルデバイス１０６、ファイル１０２、予測ストレージサービス１１０、インターネット１０８及びサーバ１１２のような図１に見られる１つ以上の計算リソースを使用することによって達成することができる。予測ストレージサービスは、アカウントを顧客に登録７０２することができる。クライアントはアカウントを参照し、コンピューティングシステムを登録する７０４ことができる。もし、それ以上のコンピューティングシステムが利用可能である場合、それらもまた、登録してもよい。予測ストレージシステムは、格納するために登録されたコンピューティングシステムからファイルを受信する７０６ことができる。予測ストレージサービスは、ファイルを同期７０８させるべき１つまたは複数の登録されたコンピューティングシステムを選択することができ、必要に応じて、成功するまでファイルを同期化しようと試みてもよい。いくつかの実施形態では、複数のデバイスの同期を並行して行うことができる。ファイルがもはや重要でないと判断されるまでは、ファイルを予測ファイルストレージサービスに格納する７１０ことができる。
【００３３】
いくつかの実施形態では、ファイルは、本実施形態の構成に応じて、予測ストレージサービスから抹消しても構わない。ＬＲＵアルゴリズムは、サイズ、ファイルの数、或いはストレージの他の測定値のようなストレージクォータに基づいて、最も古くアクセスされたファイルを抹消する。他の実施形態では、登録されたデバイスは、格納されたファイルの重要度の格付けのために照会することができる。重要度の閾値未満に低下したファイルは、予測ストレージサービスから抹消することができる。一実施形態では、重要度の格付けは、予測ストレージサービスによってアクセスされたことと保持された時間とによって決定することができる。
【００３４】
いくつかの実施形態では、ファイルは、発信デバイスを除いて、同期デバイスから除去することができる。例えば、同期化したファイルは、仮フォルダに格納してもよい。ファイルのオリジナルは、コンピューティングシステムのファイル構造に存在していてもよい。デバイス要件に応じて、仮フォルダは、予測ストレージサービスとは異なる時間と方法でファイルを抹消することができる。いくつかの実施形態では、仮フォルダからファイルを抹消することは、デバイス上で動作する予測ストレージアプリケーションの重要度格付け及び／またはコンフィギュレーションに基づいてもよい。他の実施形態では、仮フォルダからのファイルの抹消は、予測ストレージサービスによって制御することができる。
【００３５】
他の実施形態では、予測ストレージサービスは他のサービスを提供する。例えば、予測ストレージサービスは、受信したファイルにインデックスを付ける検索サービスを提供することが可能である。要求に応じて、インデックスは格納されたファイルの中から検索するために参考にすることができる。別の実施例では、予測ストレージサービスは、ダウンロードやＷｅｂアプリケーションを介してのように、ファイルへのアクセスを提供してもよい。例えば、ワードプロセッシングＷｅｂアプリケーションは、ファイルへの編集アクセスを提供することができる。
【００３６】
一実施形態では、予測ストレージサービスは、重要なファイルのバージョンを含むことができる。例えば、ユーザが深夜にモバイルデバイス上でファイルを編集することができる。翌朝、ユーザは深夜に行った変更を後悔することがあり得る。ドロップダウンボックスでは、ユーザはコンピューティングシステムに同期させる先行のバージョンを選択し、この先行バージョンを受信することもできる。ファイルが削除された場合、先行バージョンは、ファイルを復元するために使用することができる。別の実施形態では、バージョンは、アプリケーションの自動保存機能を介して取得することができる。例えば、ユーザは数時間に亘ってファイルに取り組んでもよい。差分ファイルのような自動保存ファイルは、他のコンピューティングシステム上で使用するために予測ストレージサービスにアップロードすることができる。ユーザがコンピューティングシステムをスリープ状態にさせ、その後、第２のコンピューティングシステムに移動したとき、前のコンピューティングシステム上のアプリケーションによってファイルが技術的に保存されなかった場合でも、ユーザは最後の自動保存から編集を続行することができる。一実施形態では、前の自動保存は先行のバージョンとして選択することができる。コンピューティングシステムと自動保存に応じて、予測ストレージサービスは、選択したバージョンの正確な再生を提示するために、オリジナルファイルと自動保存ファイルを使用することが可能である。
【００３７】
いくつかの実施形態では、予測ストレージサービスは、既存ファイルの新しいコピーを作成するのではなく、予測ストレージサービスによって格納された既存のファイルを更新することを決定する。予測ストレージサービスは、ファイルの内部分析を利用してもよいし、ファイル分析のためのクライアントエージェントに依頼してもよい。１つの内部分析の実施形態では、ローカルコンピューティングデバイスの予測ストレージアプリケーションは、ファイルが十分な重要度格付けを有しており、予測ストレージサービスにファイルをアップロードすることを前もって決定した。その後、予測ストレージアプリケーションは、ファイルが予測ストレージサービスによって格納されたファイルのバージョンと比較して分析する必要があることを決定してもよい。ファイル形式を理解している事実を利用して、ファイルが現在のものか変更されたものか、或いは古いバージョンであるかどうかを決定するために、予測ストレージアプリケーションはファイル内のデータを分析し、解釈することができる。変更された場合、予測ストレージアプリケーションは、予測ストレージサービス内のファイルの更新を準備することができる。アップデートを送信することで全部のファイルは送信する必要がなくなり、帯域幅を節約することとなる。
【００３８】
クライアントエージェントの実施形態では、ローカルコンピューティングデバイス上の予測ストレージアプリケーションは、ファイルが十分な重要度の格付け有していると判断し、クライアントエージェントからの一意識別子と共にファイルを予測ストレージサービスに前もってアップロードしている。その後、予測ストレージアプリケーションは、予測ストレージサービスによって格納されたファイルのバージョンと比較してファイルを分析する必要があることを決定してもよい。この決定は、ローカル保存イベントまたは予測ストレージサービスでのファイルのアップロードイベントのような周期的スキャンまたはイベントに基づいてもよい。予測ストレージアプリケーションは、ファイルの分析を実行しているクライアントエージェントから一意識別子を受け取ることができる。一意識別子は、予測ストレージサービスが、ファイルが新しいバージョンか、現在のバージョンか、或いはファイルの古いバージョンであるかどうかを決定することを可能にするために、予測ストレージサービスに送信することが可能である。新しいバージョンである場合には、予測ストレージアプリケーションは、ファイルを予測ストレージサービスにアップロードすることができる。古いバージョンである場合は、予測ストレージサービスは、ファイルの現在のバージョンを要求することができる。
【００３９】
ファイルの更新されたバージョンは、予測ファイルサービスによって保存することができる。いくつかの実施形態では、ファイルの更新バージョンが他のバージョン及び／またはバージョンの分岐でツリー構造に格納される。他の実施形態では、新しいバージョンが古いバージョンを上書きする。ファイルのバージョンも一意識別子のメタデータを含むことができる。一意識別子メタデータは、ファイルのバージョンが、予測ファイルサービスによって格納されたバージョンと比較して、古いか新しいか或いは最新のものであるか否かについての情報を提供してもよい。例えば、一意識別子は、自動でインクリメントされた値、タイムスタンプ及び変更制作者識別子を含むことが可能である。この実施例では、最新バージョンは、自動インクリメント値によって決定してもよい。一意識別子が同じである場合、ファイルは最新のものと見倣すことが可能である。しかし、自動インクリメント値が同じであっても、他のフィールドが一致しない場合には、矛盾する編集が存在する可能性がある。
【００４０】
図８は、予測ストレージサービス及び／またはストリーミングデスクトップサービスをサポートするために使用することができるデータセンタ環境８００の態様を示している。データセンタ８００は、共有コンピューティングリソース及び／または共有インフラストラクチャのコレクションを含むことができる。例えば、図５に示すように、データセンタ８００は、仮想マシンスロット８０４、物理ホスト８０２、電源８０６、ルータ８０８、分離領域８１０及び地理的な場所８１２を含んでいる。物理ホスト８０２は複数の仮想マシンスロット８０４によって共有されてもよく、各スロット８０４は、ゲストオペレーティングシステムを含む仮想マシンをホストするために使用することが可能である。複数の物理ホスト８０４は、サーバラックに設けられた電源８０６のように、電源８０６を共有することができる。ルータ８０８は、いくつかの電源装置８０６に亘って複数の物理ホスト８０４をルートネットワークトラフィックに提供することが可能である。隔離区域８１０は、多数のルータ８０８を提供することできると共に、隔離区域８１０は、バックアップ発電機のような冗長性によって提供されているコンピューティングリソースのグループである。複数の隔離領域８１０は、データセンタ８００のような地理的位置８１２に存在していてもよい。１つまたは複数のプロビジョニングサーバ８１４は、ユーザデータを分析するための命令で構成されたメモリとプロセッサを含むことができ、決定した役割及び／または共有するリソース／計算のインフラストラクチャを使用して利用可能な実装リソースを格付けすることができる。プロビジョニングサーバ８１４はまた、コンピューティングリソースのプロビジョニング及びプロビジョニング解除のためのワークフローも管理すると同時に、コンピューティングリソースの健康状態及び／または故障を検出することができる。
【００４１】
一実施形態では、ストリーミングデスクトップが、使用可能なスロット８０４における仮想マシンとしてインスタンス化することができる。プロビジョニングプロセスの一部として、スロット８０４はまた、予測ストレージサービス及び／または予測ストレージサービスのアカウントにリンクすることができる。予測ストレージサービスに格納されたファイルは、ブロックストレージ、オブジェクトストレージ、及び／または他の高または低レイテンシのデータストアなど、他のストレージサービスに加えて或いは代わりに、ストリーミングデスクトップサービスで利用可能にすることができる。オペレーティングシステムの表示出力は、物理ホスト８０４及びルータ８０８を介して外部のコンピューティングシステムにルーティングされてもよい。入力は、ホスト８０２にルーティングされ、仮想マシンの内部にルーティングされ、オペレーティングシステムに提供することができる。
【００４２】
本発明の実施形態は、以下の文節を考慮して説明することができる。
１．データを提供するためのコンピュータ実行方法であって、
実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で、
サービスプロバイダの顧客のためのマルチテナント環境内のオペレーティングシステムを含む仮想マシンをサービスプロバイダによって実行し、
オペレーティングシステムのファイル構造内のデータファイルへのアクセスのためのオペレーティングシステムを監視し、
ファイル構造内のデータファイルの少なくとも一部のために重要度指標を決定し、各重要度指標はファイル構造内のそれぞれのデータファイルへの最近のアクセスに少なくとも部分的に基づいており、そして
アップロードされたデータファイルが他のコンピューティングデバイスへ配布するためにサーバにキャッシュされているように、重要度指標に少なくとも部分的に基づいて、ファイル構造からデータファイルの少なくとも一部をストレージサービスにアップロードすることからなる方法。
２．重要度指標がブルームフィルタに少なくとも部分的に基づいている、文節１に記載のコンピュータ実行方法。
３．更に、アップロードされたデータファイルの複数のバージョンを第２のコンピューティングシステム上で利用できるようにさせることを含む、文節１に記載のコンピュータ実行方法。
４．更に、アップロードされたデータファイルのうちの１つまたは複数の重要度指標の第２の決定に少なくとも部分的に基づいて、サーバ上のアップロードされたデータファイルのうちの１つまたは複数を除去するようにさせることを含む、文節１の記載のコンピュータ実行方法。
５．更に、アップロードされたデータファイルを、サーバにキャッシュされるべきアップロードされたデータファイルでサポートするように補足データファイルを促すことを含む、文節１に記載のコンピュータ実行方法。
６．更に
アップロードされたデータファイルへ１つまたは複数の変更のために仮想マシンを監視し、
データファイルの新しいバージョンを形成するため、第１のコンピューティングシステムからデータファイルへの１つまたは複数の前記変更をアップロードすることからなる、文節１に記載の実行方法。
７．データ記憶のためのコンピュータ実行方法であって、
実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で、
第１のコンピューティングシステムのデータファイルを監視し、
少なくとも定量化データ推論アルゴリズムに部分的に基づいて１つまたは複数のデータファイルの重要度を決定し、
一連のデータファイルの決定された重要性に少なくとも部分的に基づいて、ストレージサービスに送るべき１つまたは複数のデータファイルから一連のデータファイルを選択的に決定し、そして
他のコンピューティングデバイス上での一連のデータファイルの可用性のために、一連のデータファイルをアップロードさせるようにすることからなる実行方法。
８．更に、１つまたは複数のデータファイルの重要度を決定することは、データファイルを記述するメタデータに少なくとも部分的に基づいて重要度の格付けを計算することを含む、文節７に記載のコンピュータ実行方法。
９．メタデータは、文書の種類、文書のアクセス履歴、文書の編集履歴、キーワード、または制作者の情報を含む、文節８に記載のコンピュータ実行方法。
１０．更に、１つまたは複数のデータファイルの重要度を決定することは、第１のコンピューティングシステムにインストールされた１つまたは複数のアプリケーションとの関係に少なくとも部分的に基づいて重要度格付けを計算することを含む、文節７に記載のコンピュータ実行方法。
１１．定量データ推論アルゴリズムは、１つ以上のデータファイルからの１つのデータファイルとのユーザの相互作用に少なくとも部分的に基づいている、文節７に記載のコンピュータ実行方法。
１２．更に、第２のコンピューティングデバイスへの一連のデータファイルの送信を可能にするために、ストレージサービスのアカウントに登録された第２のコンピューティングデバイスのアドレスを受信することを含む、文節７に記載のコンピュータ実行方法。
１３．更に、一連のデータファイルがストレージサービスによって格納されるようにすることを含む、文節７に記載のコンピュータ実行方法。
１４．更に、一連のデータファイルの検索を可能にするために、一連のデータファイルを索引付けることを含む、文節１３に記載のコンピュータ実行方法。
１５．一連のデータファイルをアップロードされるようにすることは、一連のデータファイルがストレージサービスに暗号化された形式で格納されるように、一連のデータファイルを暗号化することを更に含む、文節１３に記載のコンピュータ実行方法。
１６．更に、ファイルイベントまたはファイル属性に少なくとも部分的に基づいて、一連のデータファイルから少なくとも１つのファイルの重要度格付けを決定することを含む、文節７に記載のコンピュータ実行方法。
１７．データ記憶のためのコンピュータシステムであって、
１つまたは複数のプロセッサによって実行されたとき、１つまたは複数のプロセッサに少なくとも、    データファイルの決定された重要度に基づいて、ストレージサービスに送信するデータ構造内の一連のデータファイルを選択的に決定するように構成された第１のコンピューティングシステムのアプリケーションと、
ストレージサービスからデータファイルを受信するように構成された第２のコンピューティングシステムのアプリケーションと、及び
第１のコンピューティングシステムと第２のコンピューティングシステムとの間でのデータファイルの同期を管理するように構成されるストレージサービスと、
を実行させる実行可能な命令を含む１つまたは複数のプロセッサとメモリを有する１つまたは複数のコンピューティングリソースからなるコンピュータシステム。
１８．第２のコンピューティングシステムは、携帯電話である、文節１７記載のコンピュータシステム。
１９．第１のコンピューティングシステムは更に、ファイル構造を収容するボリュームを備え、データ構造はファイル構造である、文節１７に記載のコンピュータシステム。
２０．ストレージサービスは更に、一連のデータファイルを格納するための記憶装置を備える、文節１７に記載のコンピュータシステム。
２１．ストレージサービスは更に、記憶装置によって格納される一連のデータファイルからの少なくとも１つのデータファイルのためにエディタを提供するＷｅｂアプリケーションを含む、文節２０に記載のコンピュータシステム。
２２．更に、記憶装置に格納された一連のファイルに索引を付け、検索インターフェイスを提供する検索サービスを含む、文節２０に記載のコンピュータシステム。
２３．１つまたは複数のプロセッサによって実行されたとき、コンピュータシステムに少なくとも、
第１のコンピューティングシステムのデータファイルの重要度を決定させ、
一連のデータファイルの決定された重要度に少なくとも部分的に基づいて、ストレージサービスに送信する一連のデータファイルを第１のコンピューティングシステムから選択的に決定させ、そして
第１のコンピューティングシステムと第２のコンピューティングシステムを関連付け、第２のコンピューティングシステムにアップロードされたファイルを送信するように構成されたシステムへ一連のデータファイルをアップロードさせる、
実行可能な命令を集合的に格納してある１つまたは複数のコンピュータ可読記憶媒体。
２４．命令は更に、実行されたとき、コンピュータシステムに少なくとも一時的に一連のファイルを格納させる命令を含み、そして
一連のデータファイルをアップロードすることは、一連のデータファイルを第２のコンピューティングシステムへ配布することを含む、文節２３に記載のコンピュータ可読記憶媒体。
２５．命令は更に、実行されたとき、第２のコンピューティングシステムのユーザに付与されたアクセス権に少なくとも部分的に基づいて、コンピュータシステムに一連のファイルを一連のファイルの部分集合へ少なくとも限定させる命令を含む、文節２３に記載のコンピュータ可読記憶媒体
２６．決定された重要度は、一連のデータファイル内の各データファイルへのアクセスのリーセンシーに少なくとも部分的に基づいている、文節２３に記載のコンピュータ可読記憶媒体。
２７．決定された重要度が第１のコンピューティングシステムにインストールされた一連のアプリケーションに少なくとも部分的に基づいている、文節２３に記載のコンピュータ可読記憶媒体。
２８．一連の前記データファイルは、第２のコンピューティングシステムに送るべきと決定されたデータファイルのリストであり、及び    
一連のデータファイルをアップロードすることは、第１のコンピューティングシステムによって第２のコンピューティングシステムへの一連のファイルの直接通信を容易にするために第２のコンピューティングシステムのアドレスを受信することを含む、文節２３に記載のコンピュータ可読記憶媒体。
２９．一連のデータファイルは、部分集合の外側にあるフォルダ内の一連のデータファイルからの少なくとも１つのファイルと共に、フォルダ内の一連のデータファイルの部分集合を含む、文節２３に記載のコンピュータ可読記憶媒体。
【００４３】
図９は、様々な実施形態に従った態様を実装するための例示的環境９００の態様を示す。認識されるように、Ｗｅｂベースの環境が説明の目的のために使用されているが、様々な実施形態を実現するためには、適宜、異なる環境を使用することができる。環境は、電子クライアントデバイス９０２を含み、電子クライアントデバイス９０２は、適切なネットワーク９０４経由でリクエスト、メッセージまたは情報を送信して受け取り、情報をデバイスのユーザに返して伝達するよう動作可能な任意の適切な装置を含み得る。このようなクライアントデバイスの例として、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージング装置、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子ブックリーダーなどが挙げられる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークまたはそれらの組合せを含む任意の適切なネットワークを含んでいてもよい。このようなシステムに使用されるコンポーネントは、選択したネットワーク及び／または環境のタイプに少なくとも部分的に依存することが可能である。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは周知であり、本明細書では詳細には論じない。ネットワークを介した通信は、有線または無線接続、或いはこれらの組合せで有効にすることができる。この実施例では、当業者には明らかであるように、他のネットワークのためには類似の目的を果たす代替的なデバイスを使用できるが、要求を受信しそれに応答してコンテンツを提供するためのＷｅｂサーバ９０６を環境が備えているので、ネットワークはインターネットを含む。
【００４４】
例示的な環境は、少なくとも１つのアプリケーションサーバ９０８とデータストア９１０を含んでいる。いくつものアプリケーションサーバ、レイヤー、または他のエレメント、プロセスまたはコンポーネントが存在し、それが連鎖され或いは別の方法で構成され、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することが可能なことは理解されるべきである。本明細書で使用する用語「データストア」は、データを格納し、アクセスしてデータ検索することが可能な任意の機器または機器の組合せを指し、データサーバ、データベース、データ記憶装置及び任意の標準の、分布された或いはクラスタ化された環境のデータ記憶媒体の任意の組合せ及び任意の数を含む。アプリケーションサーバは、アプリケーションのためのデータアクセス、ビジネスロジックの大部分を処理するクライアントデバイスのために１つ以上のアプリケーションの態様を実行するのに必要に応じて、データストアと統合するための任意の適切なハードウェア及びソフトウェアを含むことができる。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び／またはビデオなどのコンテンツを生成することができ、この実施例では、これらはハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、または別の適切な構造化言語の形態でＷｅｂサーバによりユーザに提供することができる。すべての要求と応答、並びにクライアントデバイス９０２とアプリケーションサーバ９０８との間のコンテンツの配信操作は、Ｗｅｂサーバによって処理することが可能である。本明細書で述べられた構造化されたコードは、他の箇所で説明するように、任意の適切なデバイスまたはホストマシン上で実行することができるので、Ｗｅｂ及びアプリケーションサーバが必要とされず、これらは単に例示的コンポーネントであることが理解されるべきである。
【００４５】
データストア９１０は、特定の態様に関連するデータを格納するためのいくつかの別個のデータテーブル、データベースまたは他のデータ記憶機構及び媒体を含むことができる。例えば、図示したデータストアは、生産データ９１２とユーザ情報９１６を記憶するための機構を含み、これらは生産側へコンテンツを提供するために使用することができる。データストアはまた、ログデータ９１４を格納するための機構を含むように示されており、報告、分析、または他のそのような目的のために使用すること可能である。例えば、ページ画像情報のため及び適切な情報にアクセスするため、データストアに格納する必要があるかもしれない多くの他の態様であってもよいし、これらは上述の列記されたメカニズムのいずれかに、データストア９１０内の適切な或いは追加の機構として格納することが可能であることは理解されるべきである。データストア９１０は、アプリケーションサーバ９０８からの命令を受信するために、それに関連するロジックを介して動作可能であり、それに応答してデータを取得し、アップデートし、或いは別の方法で処理する。一実施例では、ユーザは、アイテムのある型に関して検索要求を送信するかもしれない。この場合、データストアはユーザの身元を確認するためにユーザ情報にアクセスする可能性があり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。その後、情報は、例えば、ユーザがユーザデバイス９０２上でブラウザを介して見ることができるＷｅｂページ上の結果リストの中で、ユーザに返すことができる。関心のある特定のアイテムの情報は、専用ページまたはブラウザのウィンドウを開いて見ることができる。
【００４６】
各サーバには、典型的には、そのサーバの全般的な管理及び動作のための実行可能なプログラム命令を提供するオペレーティングシステムが含まれ、サーバのプロセッサによって実行されたとき、サーバにその意図された機能を実行させる命令を格納したコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ等の）が典型的には含まれることになろう。サーバのオペレーティングシステムと一般的な機能性のための適切な実装は知られているかまたは市販され、特に本明細書の開示に照らして、当該技術分野において通常の技術を有する者によって容易に実装されている。
【００４７】
一実施形態における環境は、１つまたは複数のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互に接続されているいくつかのコンピュータシステム及びコンポーネントを利用する分散コンピューティング環境である。しかしながら、このようなシステムは、図９に示されるものよりも少ない或いは多数のコンポーネントを有するシステムで等しく良好に動作することが可能であることが当業者によって理解されるであろう。それ故に、図９におけるシステム９００の図解は、実際には例示的なものであって、本発明の範囲を限定するものではないと解釈されるべきである。
【００４８】
種々の実施形態は、更に、多種多様な動作環境に実装することができ、いくつかの場合では、多数のアプリケーションのうちのいずれかを操作するために使用することができる１つまたは複数のユーザコンピュータ、コンピューティングデバイスまたは処理装置を含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータなど数々の汎用パーソナルコンピュータ、並びにモバイルソフトウェアを実行して多数のネットワークキング及びメッセージングプロトコルをサポートすることができる携帯電話、携帯無線や携帯デバイスのいずれかを含むことが可能である。このようなシステムはまた、商業的に入手可能な様々なオペレーティングシステムと、開発及びデータベース管理などの目的のための他の公知のアプリケーションのいずれかを実行する数々のワークステーションを含むことができる。これらのデバイスは、ネットワークを介して通信することができるダミー端子、シンクライアント、ゲームシステムや他の装置等の他の電子デバイスを含むことができる。
【００４９】
殆どの実施形態は、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、オープンシステムインターコネクション（「ＯＳＩ」）、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、共通インターネットファイルシステム（「ＣＩＦＳ」）及びＡｐｐｌｅＴａｌｋのような商業的に利用可能な種々のプロトコルで任意のものを使用して通信をサポートするための、当業者によく知られているであろう少なくとも一つのネットワークを活用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆切り替え電話網、赤外線ネットワーク、無線ネットワーク、及びこれらの任意の組合せとなり得る。
【００５０】
Ｗｅｂサーバを利用する実施形態では、Ｗｅｂサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、コモン・ゲートウェイ・インターフェイス（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）「ＣＧＩ」）サーバ、データサーバ、Ｊａｖａ（登録商標）サーバ及びビジネスアプリケーションサーバなどを含む種々豊富なサーバまたはミッドティアアプリケーションのうち任意のものを実行することができる。これらのサーバ（複数可）は、ユーザデバイスからの要求に応答して、１つまたは複数のＷｅｂアプリケーションを実行することでプログラムまたはスクリプトを実行することが可能であり、Ｗｅｂアプリケーションは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃またはＣ＋＋、或いはＰｅｒｌ（登録商標）、Ｐｙｔｈｏｎ（登録商標）またはＴＣＬ、並びにそれらの組合せなどのような任意のプログラミング言語で書かれた１つまたは複数のスクリプトまたはプログラムとして実装することができる。同様にして、サーバ（複数可）もＯｒａｃｌｅ（登録商標）、マイクロソフト（登録商標）、Ｓｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）から市販されているものを含むデータベース・サーバを備えることが可能であるががこれらに限定されない。
【００５１】
上述のように、環境は、多様なデータストアと他のメモリや記憶媒体を含むことができる。これらは、ネットワーク経由でコンピュータのいずれかから或いはすべてから１つまたは複数のコンピュータかリモートに対する（及び／または内部に備えられた）ローカル記憶媒体上のように、様々な場所に存在してもよい。特定の実施形態では、情報は、当業者によく知られているストレージエリアネットワーク（「ＳＡＮ」）内に常駐することが可能である。同様に、コンピュータ、サーバまたは他のネットワークデバイスに起因する機能を実行するための任意の必要なファイルは、必要に応じてローカル及び／またはリモートに格納されてもよい。システムがコンピュータ化したデバイスを含む場合、そのような各デバイスは、例えば、少なくとも１つの中央処理装置（「ＣＰＵ」）、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド）、及び少なくとも１つの出力装置（例えば、表示装置、プリンタまたはスピーカ）を含む要素とバスを介して電気的に結合することができるハードウェア要素を含んでもよい。同様に、このようなシステムはまた、ディスクドライブ、光学記憶装置、及びランダムアクセスメモリ（「ＲＡＭ」）または読み出し専用メモリ（「ＲＯＭ」）のような固体記憶装置のような１つまたは複数の記憶装置を含むか、またはメモリカード、フラッシュカードなどのようなリムーバブルメディアデバイスを含んでもよい。
【００５２】
このような装置は、上述したようにコンピュータ可読記憶媒体読取装置、通信装置（例えば、モデム、ネットワークカード（無線または有線の）、赤外線通信装置など）及び作業メモリを備えることが可能である。コンピュータ可読記憶媒体読取装置は、遠隔の、ローカルの、固定及び／または取り外し可能な記憶装置を意味するコンピュータ読み取り可能な記憶媒体、並びに一時的に及び／またはより永続的にコンピュータ読み取り可能な情報を収容し、格納し、送信し及び検索するための記憶媒体に接続され、或いはこれらの媒体を受け取るように構成することができる。また、システム及び様々なデバイスは、典型的には、クライアントアプリケーションやＷｅｂブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも１つの作業メモリ装置内に位置する多数のソフトウェアアプリケーション、モジュール、サービスまたは他のエレメントを含むことになろう。代替的な実施形態として、上述のものから多数の変形を有し得ることが理解されるべきである。例えば、カスタマイズされたハードウェアも使用され得るし、及び／または特定のエレメントがハードウェア、ソフトウェア（例えば、アプレットのようなポータブルソフトウェアを含む）、或いは両方に実装されるかもしれない。更に、ネットワーク入力／出力装置などの他のコンピューティングデバイスへの接続を使用することができる。
【００５３】
コードまたはコードの一部を収容するための記憶媒体とコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読み取り専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュまたは他のメモリ技術、コンパクトディスク読み出し専用メモリ（「ＣＤ-ＲＯＭ」）、デジタル多用途ディスク（ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望する情報を格納するために使用することができシステムのデバイスによってアクセスすることができる他の任意の媒体を含むコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータのような情報の記憶及び／または伝送のために、任意の方法または技術で実装される、揮発性及び不揮発性、リムーバブル及び非リムーバブルなどの記憶媒体及び通信媒体を含む、当技術分野では公知で使用されている適切な任意の媒体を含むことになるが、これらに限定されるものではない。本明細書で提供される開示及び教示に基づき、当業者は、様々な実施形態を実施する他の手段及び／または方法を認識するであろう。
【００５４】
従って、明細書及び図面は、限定的な意味ではなく例示と見なされるべきである。しかしながら、様々な修正及び変更を特許請求の範囲に記載された本発明のより広い主旨及び範囲から逸脱することなく行うことができることは明らかであろう。
【００５５】
他の変形例は、本発明の主旨の範囲内である。このように、開示された技術は様々な修正及び代替構成が可能でありながら、例示した特定の実施形態は、図面に示して詳細に上述されている。しかし、本発明を特定の形態または開示された形態に限定する意図がなく、逆に、その意図するところは、添付の特許請求の範囲に定義されるように、本発明の主旨及び範囲内に入るすべての修正、代替構成及び均等物を包含するものであることは理解されるべきである。
【００５６】
開示された実施形態を説明する文脈（特に以下の特許請求の範囲の文脈において）における「ａ」及び「ａｎ」並びに「ｔｈｅ」なる用語の使用、及び類似の指示物は、本明細書で特に明記しない限り或いは文脈に明らかに矛盾しない限り、単数及び複数の両方をカバーすると解釈されるべきである。「備える」、「有する」、「含む」及び「収容する」という用語は、特に断りのない限り制限のない用語（すなわち、「含むが、これらに限定されない」を意味する）として解釈されるべきである。「接続される」という用語は、結合されるようなものの介在があっても、部分的にまたは完全にそのものの内に収容され、そのものに取り付けられ、或いは一緒に接続されたものと解釈されるべきである。本明細書における値の範囲の列挙は、本明細書で他に示されない限り、範囲内に入るそれぞれ別個の値に個々に言及する省略表現方法としての役目を果たすように単に意図され、それぞれ別個の値は、それが個々に本明細書に記載されているかのように本明細書に組み込まれるものである。本明細書に示され、またはそうでなければ文脈により明らかに矛盾しない限り、本明細書に記載のすべての方法は、任意の適切な順序で行うことができる。任意の及びすべての実施例、または本明細書での例示的な文言（例えば、「のような」）の使用は、単に本発明の実施形態をよりよく解明するように意図され、別に特許請求がない限り、本発明の範囲を限定するものではない。明細書中の用語は、本発明の実施に不可欠として、特許請求しない任意の要素を示すものと解釈されるべきではない。
【００５７】
本開示の好ましい実施形態は、発明を実施するために発明者に知られている最良の形態を含んで本明細書中に記載されている。これらの好ましい実施形態の変形は、前述の説明を読むことにより当業者にとって明らかになるであろう。本発明者らは、当業者が適宜このような変形を採用することを期待し、そして本発明者らは、本発明が本明細書に具体的に記載した以外の方法で実施されることを意図している。従って、本発明は、適用法によって許容されるように、添付の特許請求の範囲に記載の主題のすべての修正及び均等物を含んでいる。また、本明細書に示されていないか、そうでなければ文脈に明らかに矛盾しない限り、すべての可能な変形における上述した要素の任意の組合せが本発明に包含される。
【００５８】
各文献が個々にかつ具体的に参照により本明細書に組み込まれるべきであると示され、全体がここに記載されたかのように、刊行物、特許出願及び特許を含む本明細書で引用したすべての参考文献は、参照により同程度までここに組み込まれる。
【図１】
0006482602.tif 000002
【図２】
0006482602.tif 000003
【図３】
0006482602.tif 000004
【図４】
0006482602.tif 000005
【図５】
0006482602.tif 000006
【図６】
0006482602.tif 000007
【図７】
0006482602.tif 000008
【図８】
0006482602.tif 000009
【図９】
0006482602.tif 000010