(57)【要約】  本発明の技術は、複数のパートナー・コンピューティング装置からのファイルに対する結合ファイル空間を提供する。各パートナー・コンピューティング装置に関連する個々のキャッシュ・ポリシーにより、結合ファイル空間内のファイルをそれぞれのパートナー・コンピューティング装置に対してフィルタリングする方法を判定する。ローカルに格納されているコンテンツをもたないファイルデータは、結合ファイル空間にローカルに格納されたそのファイルに関連するメタデータをもつ。
2010519637.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピューティング装置上のファイルを管理するためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体であって、前記コンピューター実行可能な命令は、実行時に、
複数のパートナー・コンピューティング装置（１０２〜１１０）を識別するアカウントを作成するステップ（６０４）であって、前記複数のパートナー・コンピューティング装置は、ローカル・パートナー・コンピューティング装置（２１０）と少なくとも１つのリモート・パートナー・コンピューティング装置（２０４）とを含むステップと、
少なくとも１つのリモート・パートナー・コンピューティング装置から１つまたは複数のファイル（１１６）を特定する、ローカル・コンピューティング装置上の結合ファイル空間（１１４）を提供するステップと、
基準が満たされる場合（７０６）、前記リモート・コンピューティング装置にある前記ファイルのコンテンツを前記結合ファイル空間にキャッシュするステップ（７１４）と、
前記基準が満たされない場合、前記ファイルに関連するメタデータを前記結合ファイル空間に格納するステップ（７１８）と
を含む方法を実施することを特徴とするコンピューター読み取り可能な媒体。
【請求項２】
前記基準は、前記ファイルの前記コンテンツをキャッシュすべきかどうかを判定する少なくとも１つのキャッシュ・ポリシー・フィルタを備えることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項３】
前記結合ファイル空間は、前記複数のパートナー・コンピューティング装置の各々に関連するサブフォルダを伴うルートフォルダとして編成されることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項４】
前記ローカル・パートナー・コンピューティング装置に関連する前記サブフォルダは、前記ローカル・パートナー・コンピューティング装置上のローカルフォルダから別名をつけられるファイルを含むことを特徴とする請求項３に記載のコンピューター読み取り可能な媒体。
【請求項５】
前記基準は、前記結合ファイル空間に関連する使用可能な記憶容量に基づくことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項６】
前記アカウントを作成するステップは、前記パートナー・コンピューティング装置のいずれかにあるアカウントにログインするために使用されるアカウントに名前を関連付けるステップを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項７】
前記アカウントを作成するステップはさらに、フォルダのリストと、前記リスト内の各フォルダに対してそれぞれマップされた位置とを特定するステップを含むことを特徴とする請求項６に記載のコンピューター読取可能媒体。
【請求項８】
前記アカウントを作成するステップはさらに、前記ファイルのメタデータまたはコンテンツのどちらが格納されるかを判定するために適用される複数のキャッシュ・ポリシー・フィルタの優先順位リストを作成するステップを含むことを特徴とする請求項７に記載のコンピューター読み取り可能な媒体。
【請求項９】
パートナーシップ・コンピューティング装置のいずれかによりアクセスするための、前記アカウントに関連するパートナーシップ・データを保存するステップをさらに備えることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１０】
前記パートナー・コンピューティング装置がオンラインになったときに、前記パートナー・コンピューティング装置の１つに対するユーザーデータを同期するステップをさらに備えることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１１】
複数のパートナー・コンピューティング装置間でファイルを同期するコンピューター実装型の方法であって、
リモート・コンピューティング装置（１１０）からのファイルにフィルタを適用するステップ（７０６）であって、前記リモート・コンピューティング装置は、前記複数のパートナー・コンピューティング装置（１０２〜１１０）の１つであるステップと、
前記ファイルが前記ローカル・コンピューティング装置に関連するキャッシュ・ポリシー・フィルタ（７０６）を通った場合（７０８）に、前記ファイルをローカル・コンピューティング装置（１０２）の結合ファイル空間（１０２）にキャッシュするステップ（８１０）であって、前記ローカル・コンピューティング装置は、前記複数のパートナー・コンピューティング装置の１つであるステップと、
前記ファイルが前記キャッシュ・ポリシーを満たさない場合、前記ファイルに関連するメタデータを前記結合ファイル空間に格納するステップ（７１８）と
を含むことを特徴とする方法。
【請求項１２】
前記メタデータは前記ファイルに関する一組の情報を含み、前記ローカル・コンピューティング装置がオフラインであるとき、前記メタデータにより前記ファイルに関する詳細を検索中に取得できることを特徴とする請求項１１に記載のコンピューター実装型の方法。
【請求項１３】
前記ファイルを開く要求を受け取ったとき、前記メタデータを前記ファイルのコンテンツで置換するステップをさらに含むことを特徴とする請求項１１に記載のコンピューター実装型の方法。
【請求項１４】
前記キャッシュ・ポリシーは、キャッシュ・ポリシー・フィルタの優先順位リストを備え、前記ファイルが前記キャッシュ・ポリシー・フィルタのいずれか１つを通った場合に前記ファイルは前記キャッシュ・ポリシーを満たすことを特徴とする請求項１１に記載のコンピューター実装型の方法。
【請求項１５】
より高いキャッシュ優先順位をもつ別のファイルをキャッシュするための十分な空間が前記結合ファイル空間にない場合、前記ファイルを前記結合ファイル空間から除去し、前記ファイルに関連するメタデータで前記ファイルを置換するステップをさらに含むことを特徴とする請求項１１に記載のコンピューター実装型の方法。
【請求項１６】
複数のパートナー・コンピューティング装置間でユーザーデータを同期するように構成されたコンピューティング装置であって、
プロセッサ（１１０２）と、
メモリ（１１０４）であって、前記メモリから結合ファイル空間（１１２）を割り当て、前記メモリに複数の命令（１１２２）をロードし、前記複数の命令は、
前記結合ファイル空間内の複数のファイルの各々に関連する複数の動作を監視するように構成されたファイルシステムモニタ（４０４）と、
前記結合ファイル空間内でどのファイルをキャッシュし、およびどのファイルをゴーストとするかを判定するように構成されたキャッシュマネージャ（４０８）と、
前記キャッシュマネージャが前記１つのファイルをキャッシュすべきと判定した場合は、前記ファイルの１つに関連するコンテンツをリモート・コンピューティング装置から取り出し、前記キャッシュマネージャが前記１つのファイルをゴーストとすべきと判定した場合は、前記１つのファイルに関連するメタデータを前記リモート・コンピューティング装置から取り出すように構成された同期マネージャ（４０６）であって、前記リモート・コンピューティング装置が前記複数のパートナー・コンピューティング装置の１つである同期マネージャと、
を備える、メモリと
を備えることを特徴とするコンピューティング装置。
【請求項１７】
前記キャッシュマネージャは、キャッシュ・ポリシー・フィルタの優先順位リストを利用して、前記１つのファイルをキャッシュすべきかゴーストとすべきかを判定することを特徴とする請求項１６に記載のコンピューティング装置。
【請求項１８】
前記動作がゴーストファイルを開く要求を示す場合、前記同期マネージャは前記ゴーストファイルに対するコンテンツを関連するリモート・コンピューティング装置から取り出し、前記ゴーストファイルを前記コンテンツで置換することを特徴とする請求項１６に記載のコンピューティング装置。
【請求項１９】
前記結合ファイル空間は、階層型組織構造を有することを特徴とする請求項１６に記載のコンピューティング装置。
【請求項２０】
前記階層型組織構造は、前記パートナー・コンピューティング装置の各々に対して別々のサブフォルダを備えることを特徴とする請求項１９に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピューティング装置上のファイル管理に関する。
【背景技術】
【０００２】
多くの種類のコンピューティング装置が使用および所有されている。これらのコンピューティング装置の範囲は、モバイル装置から従来のデスクトップ・コンピューティング装置にまで渡る。一般に、個人は幾つかの異なる種類のコンピューティング装置を日々使用することがある。例えば、個人はデスクトップ・コンピューティング装置を職場で使用して仕事関係の情報を作成および格納することができる。その人が職場から離れているときには、その人はラップトップコンピューターおよび／またはパーソナル・デジタル・アシスタントを使用して仕事関係の情報を参照することもできる。
【０００３】
複数のコンピューティング装置を使用することに関する問題の１つは、各コンピューティング装置上に存在するデータの管理である。個人がこれらのファイルを手動で管理する場合、各コンピューティング装置が複製データファイルをもつことがある。そして、これらの複製データファイルは個々に更新されることがあり、その結果、バージョンの衝突が生じる。そうすると、その人はこれらのバージョンの衝突を手動で解決しなければならない。したがって、ユーザーデータをこのようなやり方で管理すると、面倒で時間がかかってしまう。
【０００４】
複数のコンピューティング装置上のユーザーデータを管理するための代替的なアプローチは、複数のコンピューティング装置の各々にある一組のフォルダをリンクして、各コンピューティング装置の各組にあるファイルを複製するものである。しかし、モバイル装置は、一般にデスクトップ・コンピューティング装置ほど強力ではなく、一般にメモリも少ないので、これらのコンピューティング装置には、リンクした組のフォルダにある全てのファイルを複製するのに十分な記憶空間がないことがある。これが生じると、個人はあるファイルにアクセスできないことに気付かなくなる。さらに、このアプローチでは、リンクした組のフォルダ内でファイルをどのように編成すべきかを、個人が慎重に計画する必要がある。
【０００５】
したがって、複数のコンピューティング装置上のデータを管理するこれらの現在の技術は理想的ではない。今日まで、当業者は適切な技術を見つけられていなかった。
【発明の概要】
【０００６】
本明細書では、とりわけ、複数のコンピューティング装置上のファイルを管理する様々な技術および技法の実装形態を説明する。これらの実装形態では、結合ファイル空間を使用して、パートナー・コンピューティング装置（partner computing device）として指定されている複数のコンピューティング装置からのファイルを参照する。各パートナー・コンピューティング装置に関連する個々のキャッシュ・ポリシーにより、結合ファイル空間内のファイルをそれぞれのパートナー・コンピューティング装置に対してフィルタリングする方法を判定する。結合ファイル空間にローカルに格納されたコンテンツをもたないファイルは、結合ファイル空間にローカルに格納されたファイルに関連するメタデータをもつ。
【０００７】
本概要は、以下の発明の詳細な説明でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の限定として使用することを目的とするものでもない。
【図面の簡単な説明】
【０００８】
本発明の技術に付随する利点の多くは、以下の発明の詳細を参照することでより容易に、より良く理解されよう。ここで各図面を簡潔に説明する。
【図１】複数のパートナー・コンピューティング装置がそれぞれの結合ファイル空間を利用してパートナー・コンピューティング装置からのファイルを管理する動作環境をグラフィカルに示す図である。
【図２】図１に示すパートナー・コンピューティング装置内で使用される結合ファイル空間に対する組織構造の例を示す図である。
【図３】図１に示す結合ファイル空間内のファイルおよびフォルダに関連付けることができる幾つかの状態の例を示す表である。
【図４】図１に示す１つまたは複数のパートナー・コンピューティング装置に常駐することができ、複数のパートナー・コンピューティング装置間の共有ファイルを管理する、幾つかのファイル管理コンポーネントを一般的に示す機能ブロック図である。
【図５】どの状態を結合ファイル空間内のファイルに関連付けるべきかを判定することを支援する、キャッシュ・ポリシー・フィルタの幾つかの例を示す図である。
【図６】図１に示すパートナー・コンピューティング装置の１つに対して、図４に示すパートナーシップ・データを作成するプロセスの一実施形態を示すフロー図である。
【図７】キャッシュ・ポリシー・フィルタを適用して、１つのパートナー・コンピューティング装置により共有されるものとして指定されるファイルを別のパートナー・コンピューティング装置上の結合ファイル空間に追加する方法を判定するプロセスの一実施形態を示す動作フロー図である。
【図８】図１に示す結合ファイル空間の１つにファイルを追加または更新するプロセスの一実施形態を示す動作フロー図である。
【図９】図１に示す結合ファイル空間の１つからファイルを削除するプロセスの一実施形態を示す動作フロー図である。
【図１０】結合ファイル空間内のファイルを開くプロセスの一実施形態を示す動作フロー図である。
【図１１】複数のパートナー・コンピューティング装置上のファイルを管理するための図４に示すファイル管理コンポーネントを実装できるパートナー・コンピューティング装置の機能ブロック図である。
【０００９】
複数のパートナー・コンピューティング装置上にあるファイルを管理する本発明のインフラおよび技術の実施形態を、添付の図面を参照してここで詳細に説明する。図面全体を通じて、同様の数字は同様の要素を表す。
【発明を実施するための形態】
【００１０】
以下の解説では、まず、結合ファイル空間を利用して、パートナー・コンピューティング装置として構成される複数のコンピューティング装置からのファイルを管理する動作環境を説明する。次に、１つまたは複数のパートナー・コンピューティング装置に常駐でき、各パートナー・コンピューティング装置の結合ファイル空間内のファイルを管理するように構成される、ファイル管理コンポーネントに絞って解説する。次に、ファイル管理コンポーネントを実装するのに適した幾つかのプロセスの例を説明する。最後に、パートナー・コンピューティング装置に対する一実施形態を説明する。
【００１１】
しかし、上の項目を説明する前に、様々な実施形態が添付図面を参照して以下で完全に説明されており、当該添付図面は、その様々な実施形態の一部を形成し、様々な実施形態を実施するための具体的な実装形態を示すことに留意することが重要である。他の実施形態を多数の異なる形態で実装してもよく、本明細書で説明する実施形態に限定されるとして解釈すべきではない。むしろ、これらの実施形態は、本開示が徹底的で完全となるように提供されている。実施形態を方法、システムまたは装置として実施することができる。したがって、実施形態はハードウェアによる実装形態、完全にソフトウェアによる実装形態、またはソフトウェアとハードウェアとの態様を組み合わせた実装形態を取ることができる。したがって、以下の詳細な説明を限定的な意味で捉えるべきではない。
【００１２】
様々な実施形態において、論理的な動作を（１）コンピューター装置上で実行している一連のコンピューター実装型のステップとして、および／または（２）コンピューティング装置内部で相互接続されたマシンモジュール（すなわち、コンポーネント）として実装することができる。実装形態は、本実施形態を実装するコンピューティング装置の性能要件に依存した選択上の問題である。したがって、本明細書で説明する実施形態を構成する論理動作を、代替的に動作、ステップ、またはモジュールと称する。
【００１３】
（複数のパートナー・コンピューティング装置に対する動作環境）
図１は、複数のパートナー・コンピューティング装置１０２〜１１０が、様々なパートナー・コンピューティング装置からのファイルをそれぞれの結合ファイル空間（例えば、結合ファイル空間１１２）を介して管理するように構成される、動作環境１００をグラフィカルに示したものである。以降、短縮した用語「パートナー」を、用語「パートナー・コンピューティング装置」と同じ意味で使用することがある。用語「ローカル」を使用してパートナー・コンピューティング装置（すなわち、ローカル・パートナー・コンピューティング装置）、および結合ファイル空間（すなわち、ローカル結合ファイル空間）を修飾し、パートナー・コンピューティング装置がその特定の結合ファイル空間と関連付けられていることを示す。
【００１４】
各パートナー・コンピューティング装置１０２〜１１０は、それぞれの結合ファイル空間を含む。簡潔にするため、図１ではパートナー・コンピューティング装置１０２および１０４に対する結合ファイル空間のみを示してある。パートナー・コンピューティング装置１０２は結合ファイル空間１１２を含み、パートナー・コンピューティング装置１０４は結合ファイル空間１１４を含む。
【００１５】
概要として、結合ファイル空間に対して割り当てた記憶空間がパートナー間で異なることがある。例えば、デスクトップ・コンピューティング装置に関連する結合ファイル空間は、パーソナル・デジタル・アシスタントの結合ファイル空間より大きいことがある。しかし、パートナー・コンピューティング装置の各々にある結合ファイル空間により、各パートナーからの一組の共有ファイルが特定される。したがって、各パートナー上の結合ファイル空間は、いずれのパートナー・コンピューティング装置上のいずれの結合ファイル空間内の共有ファイルも同じ表示を提供する。有限の空間をもつ結合ファイル空間内の共有ファイルの同じ表示を提供するため、結合ファイル空間は、関連するファイルに対する実際のコンテンツ（例えば、コンテンツ１１８）の代わりに「ゴーストファイル」（例えば、ゴーストファイル１１６）を含むことができる。以下で図２に関連してさらに詳細に説明するように、結合ファイル空間内の各ファイルは、幾つかの状態の１つとすることができる。これらの状態の１つは、ゴースト状態とすることができる。「ゴースト」状態である結合ファイル空間内のファイルを「ゴーストファイル」と称する。ゴーストファイルは、ローカル結合ファイル空間に格納されるファイルのコンテンツはもたず、ローカル・パートナー・コンピューティング装置上のローカル結合ファイル空間に格納されるファイルに関連するメタデータをもつ。このメタデータにより、ユーザーは、ローカル・パートナー・コンピューティング装置がオフラインであるときでも、コンテンツがローカルに格納されていないファイルを検索することができる。しかし、ゴーストファイルに対するコンテンツは、ローカル・パートナー・コンピューティング装置がオンラインになり、そのコンテンツが他のパートナー・コンピューティング装置の１つから使用可能となるまで使用できない。
【００１６】
パートナー・コンピューティング装置は、ローカルエリアネットワーク、無線ネットワーク、広域ネットワーク、セルラーネットワーク、インターネット、等のネットワーク１２０を介して通信することができる。各パートナー・コンピューティング装置は、パートナー・コンピューティング装置を特定のアカウント（図示せず）に対するパートナーとして識別する、一意な識別子をもつことができる。当該一意な識別子は分かりやすい名前（例えば、「ＨｏｍｅＣｏｍｐｕｔｅｒ」）、ＧＵＩＤ、またはパートナー・コンピューティング装置を一意に識別する他の任意の機構であってもよい。アカウントを、１人のコンピューターユーザー、１つの関連するコンピューターユーザーのグループ、等に関連付けることができる。ローカルまたはインターネット指向の探索および認証機構を使用して、パートナー・コンピューティング装置を認証し、当該アカウントに関連する他のパートナーを探索することができる。
【００１７】
図２に、図１に示したパートナー・コンピューティング装置内で結合ファイル空間を実装するために使用できる組織構造の例を示す。この実装形態の例では、結合ファイル空間を、ユーザーのログイン・ルート・フォルダなどの、所定の位置に配置したフォルダ２０２により表す。所定の位置をレジストリから、または所定の位置を指定する他の任意の手段を通して取得することができる。パートナーのサブフォルダ（例えば、サブフォルダ２０４〜２０８）は、ローカル・パートナー以外の各パートナーに関連付けられる。パートナーのサブフォルダは、各パートナーのファイル空間のルートを表す。ローカルサブフォルダ（例えば、ローカルサブフォルダ２１０）は、ローカル・パートナー・コンピューティング装置上のローカルなファイル空間と関連付けられる。マウント・ポイント２１２は、結合ファイル空間に対するローカルフォルダの別名である。当業者に周知であるように、マウント・ポイント２１２は、ディレクトリを参照するためにドライブ名のみを使用するという制限を克服し、より論理的なファイルおよびフォルダの編成を可能する機構を提供する。マウント・ポイントを、既知のローカルフォルダの別名として自動的に作成することができ、またはローカルフォルダもしくはネットワーク上のリモート・フォルダの別名としてユーザーが作成することができる。一実施形態では、各パートナーに対するサブフォルダのデフォルト・セット２２０を作成することができる。デフォルト・セット２２０は、ユーザーのファイル空間内の既知のフォルダを特定することができ、オペレーティングシステム固有とすることができる。
【００１８】
図３は、図１に示した結合ファイル空間内のファイルおよびフォルダに関連付けることができる、幾つかの状態の例を示す表である。本例では、通常フォルダ状態３０４、別名フォルダ状態３０６、および代理フォルダ状態３０８の３つのフォルダの状態３０２がある。通常フォルダ状態３０４は、ローカル・パートナー・コンピューティング装置上のローカルフォルダを指す。別名フォルダ状態３０６は、結合ファイル空間外にあるローカル・パートナー・コンピューティング装置上のフォルダを指す。結合フォルダ空間内の別名フォルダは、ローカル・パートナー・コンピューティング装置上の実際のフォルダに対するマウント・ポイントである。代理フォルダ状態３０８は、図１のネットワーク１２０を介してローカル・パートナー・コンピューティング装置にアクセスできるコンピューティング装置上の実際のフォルダを表す、結合ファイル空間内のフォルダを指す。以降、ローカル・パートナー・コンピューティング装置にアクセスできるコンピューティング装置をリモート・コンピューティング装置と称する。代理フォルダ状態により、ユーザーが所有しないパブリック・サーバーにあるファイルを特定することができる。フォルダを代理フォルダとすることにより、ファイルをローカル・パートナー・コンピューティング装置上のユーザーの結合ファイル空間に含めることができる。一実施形態では、代理フォルダ状態を、無線ネットワークなどの一定の接続性をもたないリモート・コンピューティング装置上のフォルダと関連付けることはできない。さらに、さらなる改良版では、ファイルシステムオブジェクトが追加、削除、または修正された時点を特定できるように、リモート・コンピューティング装置上のオペレーティングシステムのファイルシステムによって変更通知をサポートすることができる。これにより、結合ファイル空間内で更新の必要がありうる共有ファイルの特定を支援する。
【００１９】
これらのファイルおよびフォルダの状態の例について説明を続けると、結合ファイル空間内のファイルは、キャッシュファイル状態３１２、ゴーストファイル状態３１４、およびマスタファイル状態３１６の３つのファイル状態３１０の１つとすることができる。マスタファイル状態３１６は、ローカル・パートナー・コンピューティング装置上に存在する実際のファイルを指す。キャッシュファイル状態３１２は、コンテンツがローカル・パートナー・コンピューティング装置にローカルにキャッシュされたリモート・パートナー・コンピューティング装置上のマスタファイルを表す。ゴーストファイル状態３１４は、コンテンツがローカル・パートナー・コンピューティング装置上にローカルにキャッシュされていないが、当該ローカル・パートナー・コンピューティング装置上にローカルに格納されたマスタファイルに関連するメタデータをもつ、リモート・パートナー・コンピューティング装置上のマスタファイルを表す。ゴースト・スタブはマスタファイルに関連するメタデータを含むことができる。
【００２０】
通常フォルダ３０４は、キャッシュファイル状態３１２、ゴーストファイル状態３１４、およびマスタファイル状態３１６の３つのファイル状態のいずれかであるファイルを有することができる。別名フォルダ３０６および代理フォルダ３０８は、マスタファイル状態３１６のファイルを有することができる。便宜上、当該３つのファイル状態の１つにあるファイルをその状態によって呼ぶことがある。例えば、ゴーストファイル状態にあるファイルを「ゴースト」ファイルと称することがある。一実施形態では、結合ファイル空間内の全てのファイルは、パートナー・コンピューティング装置の１つにある１つのマスタコピー（すなわち、ローカルファイル）を有し、場合によっては異なるリモート・コンピューティング装置に渡って複数のキャッシュコピーを有する。アカウントに関連する各パートナー・コンピューティング装置に対して、ローカルなファイル空間内にあるファイルがマスタファイルであり、結合ファイル空間内の他のフォルダにあるファイルはキャッシュファイルかまたはゴーストファイルのいずれかである。
【００２１】
（パートナー・コンピューティング装置の１つに対するコンポーネント）
図４は、図１に示した１つまたは複数のパートナー・コンピューティング装置に常駐することができ、および複数のパートナー・コンピューティング装置上の共有ファイルを管理する、幾つかのファイル管理コンポーネントを一般的に示す機能ブロック図である。ファイル管理コンポーネント４００は、結合ファイル空間リダイレクタ（redirector）４０２、ファイルシステムモニタ４０４、同期マネージャ４０６、キャッシュマネージャ４０８、およびキャッシュ・ポリシー・フィルタ４１０を含む。コンポーネントの任意の１つにより実行される処理ステップを別のコンポーネントにより実行してもよいことは当業者には理解されよう。したがって、図４は、複数のパートナー・コンピューティング装置間でファイルを管理するファイル管理コンポーネントの１つの可能な構成を示している。
【００２２】
概要として、結合ファイル空間リダイレクタ４０２は、複数のコンピューティング装置からのファイルに対して結合ファイル空間を提供する。ファイルシステムモニタ４０４は、結合ファイル空間内のファイルに対する、ファイル作成、ファイル削除、ファイルの名前変更、等のような動作を監視する。ファイルシステムモニタが動作を検出すると、当該ファイルシステムモニタは、動作イベントを同期マネージャ４０６に送る。同期マネージャ４０６は、結合ファイル空間内のそれぞれのファイルのファイル状態を更新し、全てのパートナー・コンピューティング装置に渡って同じファイルのファイル状態を追跡する。同期マネージャは、パートナー・コンピューティング装置と通信して、ファイルの変更を他のパートナー・コンピューティング装置に伝播する役割も担う。
【００２３】
キャッシュマネージャは、どのファイルをローカルにキャッシュし、どのファイルを「ゴースト」にするかを判定する。上述のように、ゴーストファイルは、ローカルに格納されたコンテンツをもたず、その代わり結合ファイル空間内にローカルに格納されたファイルに関連するメタデータをもつファイルである。メタデータには、ファイル名、ファイルサイズ、作成者、タイトル、作成日付、最終更新日付、等の任意数の項目を含めることができる。メタデータをゴースト・スタブに格納してもよく、そのゴースト・スタブは次いで結合ファイル空間に格納される。メタデータは、結合ファイル空間でのファイルのオフライン検索をサポートする。ファイルには、データファイルの形で格納したユーザーまたはアプリケーションの状態（例えば、レジストリ）、ＵＲＬファイルとして格納したお気に入りのウェブリンク、アプリケーションデータファイル、プログラムファイル、等の任意の種類のファイルを含めることができる。
【００２４】
ファイル管理コンポーネント４００はさらに、結合ファイル空間を使用するパートナー・コンピューティング装置を構成するパートナーシップ・ウィザード４１２を含むことができる。パートナーシップ・ウィザード・コンポーネント４１２により作成された構成データは、パートナーシップ・データ４１４として格納される。
【００２５】
図５に、結合ファイル空間内のファイルにどの状態を関連付けるかを判定することを支援するキャッシュ・ポリシー・フィルタの幾つかの例を示す。キャッシュ・ポリシー・フィルタは、データ構造、テキスト、等の様々な形態を取ることができる。異なるパートナー・コンピューティング装置が、異なるキャッシュ・ポリシー・フィルタをもつ可能性が高いことに留意されたい。これは一つには、異なるパートナー・コンピューティング装置が異なる記憶能力をもつことがあることに起因する。どのようなパートナー・コンピューティング装置上でも、結合ファイル空間内の全てのファイルをローカルにキャッシュすることは困難である。図４に示すキャッシュ・ポリシー・フィルタ４１０は、複数のキャッシュ・ポリシー・フィルタとキャッシュ・ポリシー優先順位リストを含む。
【００２６】
キャッシュ・ポリシー・フィルタの例に対して、各キャッシュ・ポリシー・フィルタは、フィルタ名５１０、ファイルリスト５１２、およびフィルタ規則５１４を含むことができる。フィルタ名５１０は、キャッシュ・ポリシー・フィルタの１つを一意に識別する。ファイルリスト５１２は、キャッシュ・ポリシー・フィルタが適用されるファイルを含む１つまたは複数のフォルダを識別する。フィルタ規則５１４は、ファイルをフィルタリングする基準を識別する。フィルタ規則は、ファイルタイプ、時間規則、ファイルサイズ、等の幾つかのカテゴリによるものとすることができる。例えば、フィルタ規則に、「ファイルの修正日付が過去１年以内である」、「ファイルのアクセス日付が過去３ケ月以内である」、等を含めることができる。ファイルの各々をローカルに格納することが望ましい場合は、フィルタ規則５１４を「なし」として指定することもできる。さらなる改良版では、各ポリシー・フィルタに、ファイルに対して行うある動作を特定する専用動作５１６を含めてもよい。例えば、当該専用動作は、大規模なメディアファイルを大規模な記憶容量をもたないパートナーのモバイル・コンピューティング装置にキャッシュするために有用な「トランスコード・ダウン（transcode down）」であってもよい。以上のフィルタ規則は幾つかのフィルタ規則の例を示すものであって、包括的なものではない。他の多くのフィルタ規則がキャッシュ・ポリシー・フィルタとして想定されている。
【００２７】
さらに、ユーザー定義のキャッシュ・ポリシー・フィルタに対して一組の組込みのキャッシュ・ポリシー・フィルタを提供することができる。当該ユーザー定義のキャッシュ・ポリシー・フィルタおよび一組の組込みのキャッシュ・ポリシー・フィルタを優先順位リストへと優先順位を付けることができる。図５に示したポリシー・フィルタの例５０２〜５０６を用いると、優先順位リストは次のように、１）最近の仕事用ファイル、２）過去６ケ月に購入したお気に入りの音楽、および３）モバイル形式の最近のホームビデオ、することができる。後で説明するように、各キャッシュ・ポリシー・フィルタに対して、キャッシュマネージャは結合した作業空間にフィルタ規則を適用して、フィルタリングされたファイルリストを生成する。次に複数のファイルリストを優先順位に基づいて連結し、そのファイルリストを使用して、割り当てた記憶容量までローカル結合ファイル空間を埋めることができる。記憶容量に収まらない低優先順位のファイルは、ゴーストになる。
【００２８】
別の実施形態では、キャッシュマネージャにより、第三者がフィルタ規則に対するプラグインを登録することを可能とし、特定の第三者のファイルに対して規則を作成できるようにすることができる。例えば、第三者は以下の２つのフィルタ規則、すなわち、１）ファイルタイプがＭＩＤＩであり、およびＭＩＤＩ形式はタイプ１であること、ならびに２）ファイルタイプがＰＤＦであり、かつ作成者がＴｏｍ  Ｄｏｅであること、を登録することができるかもしれない。
【００２９】
（コンポーネントの実装に適したプロセスの例）
以下のフロー図は、図４に示したファイル管理コンポーネントを実装するために使用できるプロセスの例を提供する。これらのフロー図における動作の順序は、説明したものと異なってもよく、図示したもの以外の追加の処理を含んでもよい。さらに、複数のコンピューティング装置からのファイルを管理するための一実施形態を実装するめに、フロー図に示した全ての処理を実行する必要はない。
【００３０】
図６は、パートナー・コンピューティング装置をアカウントに追加するときに生じるパートナーシップ・データを作成するプロセス６００の一実施形態を示すフロー図である。プロセス６００は判定ブロック６０２で始まり、ブロック６０２で、パートナー・コンピューティング装置が既にアカウントに関連付けられているかどうかを判定する。パートナー・コンピューティング装置の特定のユーザーのために特定のパートナー・コンピューティング装置に対してプロセス６００を初めて実行したとき、処理はブロック６０４に続く。
【００３１】
ブロック６０４でアカウントを作成する。アカウントは、他の識別されたパートナー・コンピューティング装置との間でファイルを共有したい各パートナー・コンピューティング装置を識別する。各アカウントは、各パートナー・コンピューティング装置に対するパートナーシップ・データを含み、当該パートナーシップ・データは構成データおよびキャッシュ・ポリシー・フィルタを含む。処理はブロック６０６に続く。
【００３２】
ブロック６０６で、パートナーシップ・データを、プロセス６００を開始したパートナー・コンピューティング装置に対して作成する。一実施形態では、パートナーシップ・データを入力するためのユーザーインターフェース要素を表示することができる。しかし、様々な機構を使用して、パートナーシップ・データを生成することができる。ブロック６０８で、パートナー・コンピューティング装置を識別する名前を入力することができる。当該名前は、分かりやすい名前、ＧＵＩＤ、等とすることができる。ブロック６１０で、ローカルフォルダのリストを識別することができる。当該リストは、結合ファイル空間に含めるべき（すなわち、「共有すべき」）フォルダおよびその対応するマッピングされた位置を識別する。デフォルトでは、フォルダのリストに、パートナー・コンピューティング装置に存在する既知のフォルダを自動的に含めることができる。例えば、「ドキュメント」、「ミュージック」、「ピクチャ」、および「ビデオ」を自動的に結合ファイル空間へとマッピングすることができる。これらの既知のフォルダはパートナー・コンピューティング装置上で実行しているオペレーティングシステムに依存してもよく、オペレーティングシステム間で異なってもよいことは当業者には理解されよう。
【００３３】
ブロック６１２で、１つまたは複数のキャッシュ・ポリシー・フィルタを作成または修正することができる。ローカル・パートナー・コンピューティング装置に関連するキャッシュ・ポリシー・フィルタは、一組の組込みのキヤッシュ・ポリシー・フィルタを含むことができる。さらに、高度な技術を有するユーザーは独自の追加のキャッシュ・ポリシー・フィルタを作成することができる。プロセス６００は、キャッシュ・ポリシー・フィルタを作成するためのユーザーインターフェースを提供することができ、ファイルを読んでキャッシュ・ポリシー・フィルタを作成することができ、またはキャッシュ・ポリシー・フィルタを作成するための他の任意の機構を提供することができる。
【００３４】
ブロック６１４で、キャッシュ・ポリシー・フィルタの優先順位リストを識別することができる。優先順位リストは、ポリシー・フィルタのランキングである。ユーザーは、リスト内のポリシー・フィルタを追加または削除することができるだけでなく、フィルタの優先順序も再構成することができる。ブロック６１６で、結合ファイル空間の最大記憶容量を設定することができる。最大記憶容量を、ローカル・パートナー・コンピューティング装置のユーザーにより設定するか、１つまたは複数の基準に基づいて自動的に設定することができる。例えば、最大記憶容量を、パートナー・コンピューティング装置上で使用可能な空き記憶容量の合計に基づいて計算することができる。さらに、最大記憶サイズを判定するため、他の基準に基づく他の自動型の技術を想定している。最大記憶容量により、結合ファイル空間のサイズが判定される。処理はブロック６１８に続く。
【００３５】
ブロック６１８で、ローカル・パートナー・コンピューティング装置に対するサブフォルダを作成する。一実施形態では、当該サブフォルダをユーザーのログイン・ルート・フォルダに作成することができる（例えば、ｃ：＼Ｕｓｅｒｓ＼ｓｏｍｅｂｏｄｙ＼ＭｙＳｔｕｆｆまたはｃ：＼Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ＼ｓｏｍｅｂｏｄｙ＼ＭｙＳｔｕｆｆ）。ユーザーのログイン・ルート・フォルダは、コンピューティング装置のオペレーティングシステムに依存することに留意されたい。別の実施形態では、サブフォルダの位置を指定するために所定の位置を作成してもよい。そうすると、当該所定の位置を使用して、パートナー・コンピューティング装置の各々に対してサブフォルダを追加する位置を判定することができる。処理はブロック６２０に続く。
【００３６】
ブロック６２０で、構成データおよびローカル・キャッシュ・ポリシーを保存する。一実施形態では、構成データおよびキャッシュ・ポリシー・フィルタは、ローカルにオンラインで保存される。さらに、構成データおよびキャッシュ・ポリシー・フィルタを複製し、アカウントに関連する各パートナー・コンピューティング装置に保存することができる。
【００３７】
アカウントが既に存在しユーザーが新たなパートナー・コンピューティング装置をアカウントに追加したい場合、処理は判定ブロック６０２からブロック６３０へ続く。ブロック６３０で、アカウントに関連するパートナーに対するパートナーシップ・データをダウンロードする。ブロック６３２で、ダウンロードしたパートナーシップ・データ中で識別した各パートナーに対して、サブフォルダを作成する。ブロック６３４で、ローカル・キャッシュ・ポリシーを設定するためにブロック６１４で使用される、パートナー・コンピューティング装置により保存したユーザー定義のキャッシュ・ポリシー・フィルタをダウンロードすることができる。次に処理は上術のようにブロック６０６に続く。ブロック６１２で、ダウンロードしたユーザー定義のキャッシュ・ポリシー・フィルタを追加して、ローカル・パートナー・コンピューティング装置に対するキャッシュ・ポリシーを作成できることに留意されたい。
【００３８】
プロセス６００は、パートナーの削除、ローカルマシンのキャッシュ・ポリシーの変更、ローカル結合ファイル空間内のマッピングの追加もしくは削除、または結合ファイル空間の記憶容量の変更などの、パートナーシップの保守タスクも含むことができる。図６ではこれらの保守タスクを個別に示していないが、図６に示したブロックを単独で実行してもよいことは当業者には理解されよう。例えば、ブロック６１２を単独で実行してローカル・キャッシュ・ポリシー・フィルタを修正することができ、およびブロック６１６を単独で実行してローカル結合ファイル空間の最大記憶容量を修正することができる。
【００３９】
図７は、キャッシュ・ポリシー・フィルタを適用して、共有と指定したファイルをパートナー・コンピューティング装置上の結合ファイル空間に追加する方法を判定するプロセス７００の、一実施形態を示す動作フロー図である。プロセス７００は、ローカル・パートナー・コンピューティング装置が別のパートナーとしてアカウントに追加されるときに起こることができる。さらに、プロセス７００を、ある期間オフラインであった後にオンラインになったとき、パートナー・コンピューティング装置により実行してもよい。オンラインになったパートナー・コンピューティング装置は、アカウントに関連する各パートナー・コンピューティング装置に対してファイルの列挙を要求することができる。プロセス７００はブロック７０２で始まり、ブロック７０２で、パートナーのローカルなファイル空間に対するファイル列挙要求を受け取る。処理はブロック７０４に続く。
【００４０】
ブロック７０４で、変更されたか新規のものである各列挙されたファイルに対してブロック７０６〜７１８を実行する。ブロック７０６で、キャッシュ・ポリシー・フィルタを、前述のキャッシュ・フィルタの優先順位リストに基づいて選択し、列挙されたファイルに適用する。判定ブロック７０８で、ファイルをキャッシュ・ポリシー・フィルタに基づいて追加／更新すべきかどうか判定する。ファイルを追加／更新すべきでないと判定された場合、処理は判定ブロック７１０に続く。
【００４１】
判定ブロック７１０で、キャッシュ・ポリシー・フィルタがフィルタ優先順位リスト内にまだあるかどうか判定する。別のキャッシュ・ポリシー・フィルタがある場合、処理はブロック７１２に続き、そこで次のキャッシュ・ポリシー・フィルタを取得する。処理は次に一巡してブロック７０６に戻り、上述のように続く。判定ブロック７１０で全てのキャッシュ・ポリシー・フィルタが適用済みである場合、処理はブロック７１６に続き、ブロック７１６でファイルをゴーストファイルとして追加／更新する。ファイルをゴーストファイルとして追加／更新することには、ファイルに関するメタデータを取得し、ファイルのコンテンツを結合ファイル空間に格納する代わりに、当該メタデータを結合ファイル空間に格納すること（ブロック７１８）が関与する。
【００４２】
判定ブロック７０８で、ファイルを追加／更新すべきと判定された場合、処理はブロック７１４に続く。ファイルを結合ファイル空間に追加／更新するプロセスを図８に示す。
【００４３】
図８は、ファイルを結合ファイル空間に追加または更新するプロセス８００の一実施形態を示す動作フロー図である。プロセス８００はブロック８０２で始まり、ブロック８０２で、追加／更新すべきファイルを取得する。処理は判定ブロック８０４に続く。
【００４４】
判定ブロック８０４で、ファイルを追加／更新すると結合ファイル空間の記憶空間を超過するかどうか判定する。ユーザーが記憶空間のサイズを設定できること、またはローカル・コンピューティング装置のリソースに基づいて計算できるデフォルトのサイズをユーザーが受け入れることができることに留意されたい。ファイルの追加／更新により最大記憶空間を超過しない場合、処理はブロック８１０に続き、ブロック８１０で、ファイルのコンテンツのコピーをローカル結合ファイル空間に格納する。そうすると、ファイルを追加／更新する処理は完了する。
【００４５】
ここでブロック８０４に戻り、ファイルの追加／更新により結合ファイル空間の記憶容量を超過すると判定された場合、処理はブロック８０６に続き、ブロック８０６で、結合ファイルのリストを分析して、優先順位が最も低いキャッシュ・ポリシーをもつ１つまたは複数のファイルを判定する。次にこの１つまたは複数のファイルを選択して、ゴーストとすることができる。別の実施形態では、結合すると合計で所定の容量となる複数のファイルを選択することができる。複数のファイルを選択することにより、ブロック８０６に関連するオーバヘッドを最小化することができる。処理はブロック８０８に続く。
【００４６】
ブロック８０８で、選択したファイル（単数または複数）をゴーストにする。上述のように、ファイルをゴーストにすると、ファイルのコンテンツを結合ファイル空間に格納する代わりに、メタデータが当該ファイル用の結合ファイル空間に格納される。次に、ブロック８１０で、追加または更新すべきファイルのコンテンツのコピーを、ローカル結合ファイル空間に格納する。そうすると、プロセス８００は完了する。
【００４７】
図９は、結合ファイル空間内のファイルを削除するプロセス９００の一実施形態を示す動作フロー図である。プロセス９００はブロック９０２で始まり、ブロック９０２でファイルの状態をチェックする。上述のように、ファイルには、キャッシュ、ゴースト、およびマスタの３つの状態がある。処理は判定ブロック９０４に続く。
【００４８】
判定ブロック９０４で、ファイルがマスタファイルであるかどうか判定する。ファイルがマスタファイルである場合、処理はブロック９０６に続き、ブロック９０６でファイルを破棄する。一実施形態では、ファイルをローカルなごみ箱に移動することにより破棄することができる。そうすると、処理が完了する。ファイルがマスタファイルでない場合、処理は判定ブロック９０８に続く。
【００４９】
判定ブロック９０８で、ファイルがキャッシュファイルかどうか判定する。ファイルがキャッシュファイルである場合、処理はブロック９１０および９１２に続く。ブロック９１０で、キャッシュファイルをゴーストにする。ブロック９１２で、ゴーストファイルを破棄する。そうすると、キャッシュファイルに対する処理は完了する。ファイルがキャッシュファイルでない場合、ファイルはゴーストファイルであり、処理は上述のようにブロック９１２に続く。
【００５０】
以上のプロセスにより、不慮の削除からファイルを回復できるが、それでも結合ファイルシステム内の不要な空間が消費されないことに留意されたい。
【００５１】
図１０は、結合ファイル空間においてファイルを開くプロセス１０００の一実施形態を示す動作フロー図である。プロセス１０００はブロック１００２で始まり、ブロック１００２でファイルの状態をチェックする。ここでも、ファイルにはキャッシュ、ゴースト、およびマスタの３つの状態がある。キャッシュおよびマスタのファイル状態をもつファイルは、それ自体のファイルコンテンツをローカルに格納している。処理は判定ブロック１００４に続く。
【００５２】
判定ブロック１００４で、ファイルのコンテンツがローカルに格納されているかどうか判定する。コンテンツがローカルに格納されている場合、処理はブロック１００６に続き、ブロック１００６で、ファイルにアクセスしてファイルを開く。そうすると、プロセス１０００はこのファイルに対して完了する。ファイルのコンテンツがローカルに存在しない場合、処理はブロック１００８に続く。
【００５３】
ブロック１００８で、ファイルのコンテンツを取得する。一実施形態では、これを、ファイルのコンテンツを得るためのＳｅｎｄＦｉｌｅ要求をパートナー・コンピューティング装置に送ることで達成する。処理はブロック１０１０に続く。
【００５４】
ブロック１０１０で、結合ファイル空間に格納したメタデータをコンテンツで置換し、ファイルの状態をキャッシュに変更する。次に、ブロック１０１２でファイルにアクセスできる。そうすると、処理はこのファイルに対して完了する。
【００５５】
（パートナー・コンピューティング装置に対する一実施形態）
図１１は、ファイル管理コンポーネント１１２２の一実施形態を実装できるパートナー・コンピューティング装置１１００の機能ブロック図である。パートナー・コンピューティング装置１１００は、１つの基本構成では、少なくとも処理装置１１０２とメモリ１１０４とを含む。コンピューティング装置の正確な構成と種類に応じて、メモリ１１０４は（ＲＡＭ等の）揮発性、（ＲＯＭ、フラッシュメモリ、等の）不揮発性、またはその２つの何らかの組合せとすることができる。システムメモリ１１０４は、一般にオペレーティングシステム１１２０、１つまたは複数のアプリケーション１１２４を含み、プログラムデータ（図示せず）を含んでもよい。メモリ１１０４は、ファイル管理コンポーネント１１２２も含む。この基本構成を点線１１０６により図１１に示す。
【００５６】
さらに、コンピューティング装置１１００は、他の特徴および機能性を含んでもよい。例えば、コンピューティング装置１１００は、（取り外し可能および／または取り外し不可能な）追加の記憶装置を含んでもよい。この記憶装置には、磁気ディスクもしくは光ディスクまたは磁気テープもしくは光テープが含まれるが、これらに限定されない。図１１では、このような追加の記憶装置を取り外し可能な記憶装置１１０８および取り外し不可能な記憶装置１１１０により示してある。コンピューター読み取り可能な記憶媒体には、コンピューター読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータ等の情報を記憶するための任意の方法または技術で実装した揮発性および不揮発性媒体、取り外し可能および取り外し不可能な媒体の両方が含まれる。メモリ１１０４、取り外し可能な記憶装置１１０８および取り外し不可能な記憶装置１１１０は、すべてコンピューター読み取り可能な記憶媒体の例である。コンピューター読み取り可能な記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望の情報を記憶するために使用でき、かつコンピューティング装置１１００によってアクセスすることができる他の任意の媒体が含まれるが、これらに限定されない。このような任意のコンピューター読み取り可能な記憶媒体は、コンピューティング装置１１００の一部とすることができる。
【００５７】
コンピューティング装置１１００は、コンピューティング装置１１００が１つまたは複数のコンピューターおよび／またはアプリケーション１１１８と通信することを可能とする１つまたは複数の通信接続１１１６を含む。装置１１００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、等の入力装置（単数または複数）１１１４も含むことができる。モニタ、スピーカ、プリンタ、ＰＤＡ、携帯電話、および他種のデジタルディスプレイ装置等の出力装置（単数または複数）１１１２を含んでもよい。これらの装置は当技術分野で周知であり、ここでは詳細に説明する必要はない。
【００５８】
上述のプロセスを、ソフトウェアまたはファームウェアでのコンピューター実行可能な命令を用いて実装することができるが、プログラム可能なロジック、電子回路、等の他の方法で実装してもよい。幾つかの代替実施形態では、動作のうちある特定のものを人間の限定的な介入により実行してもよい。さらに、本プロセスは他の実施形態を排除するものとして解釈すべきではなく、例示としてのみ提供されている。
【００５９】
本発明の主題事項を構造的特徴および／または方法論的動作に固有の言語で説明したが、添付の特許請求の範囲で定義される本発明の主題事項は、必ずしも説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および動作は、添付の特許請求の範囲を実装する形態の例として開示されている。
【図１】
2010519637.tif 000003
【図２】
2010519637.tif 000004
【図３】
2010519637.tif 000005
【図４】
2010519637.tif 000006
【図５】
2010519637.tif 000007
【図６】
2010519637.tif 000008
【図７】
2010519637.tif 000009
【図８】
2010519637.tif 000010
【図９】
2010519637.tif 000011
【図１０】
2010519637.tif 000012
【図１１】
2010519637.tif 000013
【国際調査報告】
2010519637.tif 000014
2010519637.tif 000015