(57)【要約】本発明は、サーバベースのファイル記憶システムに関し、より具体的には、インターネット等の広域ネットワークを経由してアクセスされ、異なるコンピュータ間でフォルダを共有するために使用される、サーバベースの記憶システムに関する。各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法が、提供される。本方法は、ピアツーピアベースでファイル転送を使用する。
2017520846.tif 000002
【特許請求の範囲】
【請求項１】
各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法であって、
前記標的コンピュータのそれぞれは、広域ネットワークに結合され、前記選択されたフォルダは、前記広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、前記サーバベースの記憶システムは、サーバに結合され、前記方法は、
前記サーバによって、各標的コンピュータに、同期プロトコルを有する同期プログラムを起動させるステップであって、前記プロトコルは、前記標的コンピュータの所与の１つにおいて、（ｉ）所与の標的コンピュータ上にローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、前記広域ネットワークを経由して、前記サーバに、フォルダ変更データを提供することと、（ｉｉ）前記サーバと相互作用することにより、前記変更を反映するように、前記選択されたネットワーク記憶フォルダを更新させることとを行うように構成される、ステップと、
前記標的コンピュータの所与の１つからのフォルダ変更データの前記サーバによる受信に応答して、前記サーバによって、前記標的コンピュータの所与の１つ上で起動する同期プログラムに、前記サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップと、
を含み、
前記プロトコルはさらに、前記所与の標的コンピュータに、前記少なくとも１つの宛先ＩＰアドレスを使用させることにより、ピアツーピアベースでの前記広域ネットワークを経由する前記他の標的コンピュータのうちの少なくとも１つとのファイル転送によって、前記所与の標的コンピュータのミラーフォルダを前記他の標的コンピュータのうちの少なくとも１つと同期させるように構成され、
したがって、前記選択されたフォルダの同期を維持することを目的とする前記サーバベースの記憶システムから前記広域ネットワークを経由する前記標的コンピュータへの前記サーバによるデータファイルの転送のいかなる必要性も、低減される、
方法。
【請求項２】
前記サーバによって、前記他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを前記サーバから伝送するステップは、前記他の標的コンピュータの全ての宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップを含む、請求項１に記載の方法。
【請求項３】
前記プロトコルはさらに、前記ピアツーピアベースでのファイル転送を、暗号化／復号化プロセスを使用して遂行させるように構成され、したがって、転送される各ファイルは、転送される前に暗号化され、転送された後に復号化される、請求項１に記載の方法。
【請求項４】
前記プロトコルはさらに、前記所与の標的コンピュータからのファイル転送を受信する前記標的コンピュータのそれぞれに、そのような標的コンピュータのミラーフォルダが前記所与の標的コンピュータのミラーフォルダの状態に合致すると、前記サーバへと同期完了通知を送信させるように構成される、請求項１に記載の方法。
【請求項５】
同期完了通知が前記所与の標的コンピュータ以外の前記標的コンピュータのそれぞれから受信されたかどうかを前記サーバによって判定するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記方法は、同期完了通知が前記サーバによって前記所与の標的コンピュータ以外の前記標的コンピュータのそれぞれから受信されていないが、同期完了通知が前記サーバによって前記標的コンピュータのうちの少なくとも１つから受信されたことが、前記サーバによって判定される場合、前記サーバに同期完了通知を送信した前記標的コンピュータのうちの少なくとも１つに、前記サーバへの同期完了通知の送信に失敗した前記標的コンピュータのうちの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記方法は、同期完了通知が前記サーバによって前記標的コンピュータのいずれかからも受信されていないことが、前記サーバによって判定される場合、前記選択されたネットワーク記憶フォルダを、前記広域ネットワークを経由して、前記他の標的コンピュータのうちの少なくとも１つと同期させるステップをさらに含む、請求項６に記載の方法。
【請求項８】
各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法であって、前記標的コンピュータのそれぞれは、広域ネットワークに結合され、前記選択されたフォルダは、前記広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、前記サーバベースの記憶システムは、サーバに結合され、前記方法は、
前記サーバによって、各標的コンピュータに、同期プロトコルを有する同期プログラムを起動させるステップであって、前記プロトコルは、（ｉ）ローカルに記憶される前記ミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、広域ネットワークを経由して、前記サーバに、フォルダ変更データを提供することと、（ｉｉ）前記サーバと相互作用することにより、前記変更を反映するように、前記選択されたネットワーク記憶フォルダを更新させることとを行うように構成される、ステップと、
前記広域ネットワークに結合される新しい標的コンピュータのセットと前記選択されたネットワーク記憶フォルダを共有させるための所与の標的コンピュータから前記サーバへの共有フォルダメッセージに応答して、前記新しい標的コンピュータのそれぞれに、前記同期プログラムを起動させ、前記サーバによって、前記標的コンピュータの所与の１つ上で起動する前記同期プログラムに、前記サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき前記新しい標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを送信するステップと、
を含み、
前記プロトコルはさらに、前記所与の標的コンピュータに、前記少なくとも１つの宛先ＩＰアドレスを使用させることにより、前記所与の標的コンピュータのミラーフォルダを、ピアツーピアベースでの前記広域ネットワークを経由する他の新しい標的コンピュータのうちの少なくとも１つとのファイル転送によって、前記他の新しい標的コンピュータのうちの少なくとも１つと同期させるように構成され、
したがって、前記選択されたフォルダの同期を維持することを目的とする前記サーバベースの記憶システムから前記広域ネットワークを経由する前記新しい標的コンピュータへの前記サーバによるデータファイルの転送のいかなる必要性も、低減される、方法。
【請求項９】
各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法であって、前記標的コンピュータのそれぞれは、広域ネットワークに結合され、前記選択されたフォルダは、前記広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、前記サーバベースの記憶システムは、サーバに結合され、前記方法は、
前記標的コンピュータの所与の１つ上で、同期プロトコルを有する、前記サーバから得られた同期プログラムを起動させるステップと、
前記プロトコルの同期の結果、（ｉ）所与の標的コンピュータ上にローカルに記憶される前記ミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、前記広域ネットワークを経由して、前記サーバに、フォルダ変更データを提供することと、（ｉｉ）前記サーバと相互作用することにより、前記変更を反映するように、前記選択されたネットワーク記憶フォルダを更新させることとを行うステップと、
前記標的コンピュータの所与の１つによって、前記サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを受信し、前記標的コンピュータの所与の１つによって、前記少なくとも１つの宛先ＩＰアドレスを使用して、前記標的コンピュータの所与の１つのミラーフォルダを、ピアツーピアベースでの前記広域ネットワークを経由する前記他の標的コンピュータのうちの少なくとも１つとのファイル転送によって、前記他の標的コンピュータのうちの少なくとも１つと同期させるステップと、
を含み、
したがって、前記選択されたフォルダの同期を維持することを目的とする前記サーバベースの記憶システムから前記広域ネットワークを経由する前記標的コンピュータへの前記サーバによるデータファイルの転送のいかなる必要性も、低減される、方法。
【請求項１０】
命令でエンコードされた非一過性デジタル記憶媒体であって、前記命令は、標的コンピュータのセットのそれぞれの中にロードされ、そこで起動し、前記標的コンピュータのそれぞれが、広域ネットワークに結合されると、各標的コンピュータ内に同期プログラムを確立し、前記同期プログラムは、同期プロトコルを有し、前記プロトコルは、各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法を実装するように構成され、前記選択されたフォルダは、前記広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、前記サーバベースの記憶システムは、サーバに結合され、前記プロトコルは、前記標的コンピュータの所与の１つにおいて、（ｉ）所与の標的コンピュータ上にローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、前記広域ネットワークを経由して、前記サーバに、フォルダ変更データを提供することと、（ｉｉ）前記サーバと相互作用することにより、前記変更を反映するように、前記選択されたネットワーク記憶フォルダを更新させることと、（ｉｉｉ）前記サーバからの前記標的コンピュータのセットにおける他の標的コンピュータのＩＰアドレスのセットの受信に応じて、前記宛先ＩＰアドレスのセットを使用して、前記標的コンピュータのミラーフォルダを、ピアツーピアベースでの前記広域ネットワークを経由する前記他の標的コンピュータとのファイル転送によって、前記他の標的コンピュータのものと同期させるように構成され、したがって、前記選択されたフォルダの同期を維持することを目的とする前記サーバベースの記憶システムから前記広域ネットワークを経由する前記標的コンピュータへの前記サーバによるデータファイルの転送のいかなる必要性も、低減される、命令でエンコードされた非一過性デジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本開示は、２０１４年７月２日に出願され、“Ｍｅｔｈｏｄ  ｏｆ  Ｒｅｄｕｃｉｎｇ  Ｂａｎｄｗｉｄｔｈ  Ｒｅｑｕｉｒｅｄ  ｆｏｒ  Ｓｈａｒｉｎｇ  ｏｆ  Ｆｉｌｅｓ  ｏｎ  ａ  Ｓｅｒｖｅｒ”と題された、米国出願第１４／３２２，４４７号に対する優先権を主張するものであり、該米国出願の全体は、参照により本明細書中に援用される。
【０００２】
本発明は、サーバベースのファイル記憶システムに関し、より具体的には、インターネット等の広域ネットワークを経由してアクセスされ、異なるコンピュータ間でフォルダを共有するために使用される、サーバベースの記憶システムに関する。
【背景技術】
【０００３】
インターネット等の広域ネットワークを経由してアクセスされ、異なるコンピュータ間でフォルダを共有するために使用される、サーバベースの記憶システムは、周知である。そのようなサーバベースの記憶の一実施例は、ＤｒｏｐｂｏｘＩｎｃ．（ＳａｎＦｒａｎｃｉｓｃｏ，  ＣＡ）によってサービスとして提供されている（ｗｗｗ．ｄｒｏｐｂｏｘ．ｃｏｍを参照）。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の第１の実施形態では、各標的コンピュータ上に、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法が提供される。本実施形態では、標的コンピュータのそれぞれは、広域ネットワークに結合され、選択されたフォルダは、広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、サーバベースの記憶システムは、サーバに結合される。
【０００５】
本実施形態では、本方法は、サーバによって、各標的コンピュータに、同期プロトコルを有する同期プログラムを起動させるステップを含む。プロトコルは、標的コンピュータの所与の１つにおいて、（ｉ）所与の標的コンピュータ上にローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、広域ネットワークを経由して、サーバに、フォルダ変更データを提供することと、（ｉｉ）サーバと相互作用することにより、変更を反映するように、選択されたネットワーク記憶フォルダを更新させることとを行うように構成される。
【０００６】
さらに、本実施形態によると、サーバによる標的コンピュータの所与の１つからのフォルダ変更データの受信に応答して、本方法は、加えて、サーバによって、標的コンピュータの所与の１つ上で起動する同期プログラムに、サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップを含む。プロトコルはさらに、所与の標的コンピュータに、少なくとも１つの宛先ＩＰアドレスを使用させることにより、ピアツーピアベースでの広域ネットワークを経由する他の標的コンピュータのうちの少なくとも１つとのファイル転送によって、該所与の標的コンピュータのミラーフォルダを該他の標的コンピュータのうちの少なくとも１つと同期させるように構成される。このように、選択されたフォルダの同期を維持することを目的とするサーバベースの記憶システムから広域ネットワークを経由する標的コンピュータへのサーバによるデータファイルの転送のいかなる必要性も低減される。
【０００７】
随意に、サーバによって、他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータをサーバから伝送するステップは、他の標的コンピュータの全ての宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップを含む。
【０００８】
また、随意に、プロトコルはさらに、ピアツーピアベースでのファイル転送を暗号化／復号化プロセスを使用して遂行させるように構成され、したがって、転送される各ファイルは、転送される前に暗号化され、転送された後に復号化される。
【０００９】
さらにまた、随意に、プロトコルはさらに、標的コンピュータのミラーフォルダが所与の標的コンピュータのミラーフォルダの状態に合致すると、所与の標的コンピュータからのファイル転送を受信する標的コンピュータのそれぞれに、サーバへと同期完了通知を送信させるように構成される。
【００１０】
関連実施形態は、加えて、同期完了通知が所与の標的コンピュータ以外の標的コンピュータのそれぞれから受信されたかどうかをサーバによって判定するステップを含む。さらなる関連実施形態はさらに、同期完了通知がサーバによって所与の標的コンピュータ以外の標的コンピュータのそれぞれから受信されていないが、同期完了通知がサーバによって標的コンピュータのうちの少なくとも１つから受信されたことが、サーバによって判定される場合、サーバに同期完了通知を送信した標的コンピュータのうちの少なくとも１つに、サーバへの同期完了通知の送信に失敗した標的コンピュータのうちの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを伝送するステップを含む。随意に、本方法はさらに、同期完了通知が標的コンピュータのいずれかからもサーバによって受信されていないことが、サーバによって判定される場合、選択されたネットワーク記憶フォルダを、広域ネットワークを経由して、他の標的コンピュータのうちの少なくとも１つと同期させるステップを含む。
【００１１】
別の実施形態は、選択されたネットワーク記憶フォルダを広域ネットワークに結合される新しい標的コンピュータのセットと共有させる、所与の標的コンピュータからサーバへの共有フォルダメッセージに応答して、類似構造を用いて動作する。本実施形態は、新しい標的コンピュータのそれぞれに、同期プログラムを起動させ、サーバによって、標的コンピュータの所与の１つ上で起動する同期プログラムに、サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき新しい標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを送信するステップを含む。本実施形態では、プロトコルはさらに、所与の標的コンピュータに、少なくとも１つの宛先ＩＰアドレスを使用させることにより、ピアツーピアベースでの広域ネットワークを経由する他の新しい標的コンピュータのうちの少なくとも１つとのファイル転送によって、該所与の標的コンピュータのミラーフォルダを該他の新しい標的コンピュータのうちの少なくとも１つと同期させるように構成される。このように、選択されたフォルダの同期を維持することを目的とするサーバベースの記憶システムから広域ネットワークを経由する新しい標的コンピュータへのサーバによるデータファイルの転送のいかなる必要性も低減される。
【００１２】
別の実施形態は、各標的コンピュータ上に、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法が提供され、標的コンピュータのそれぞれは、広域ネットワークに結合され、選択されたフォルダは、広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、サーバベースの記憶システムは、サーバに結合される。本実施形態では、本方法は、標的コンピュータの所与の１つ上で、同期プロトコルを有する、サーバから得られた同期プログラムを起動させるステップを含む。本方法はさらに、プロトコルの同期の結果、（ｉ）所与のコンピュータ上にローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、広域ネットワークを経由して、サーバに、フォルダ変更データを提供することと、（ｉｉ）サーバと相互作用することにより、変更を反映するように、選択されたネットワーク記憶フォルダを更新させることとを含む。最後に、本実施形態の方法は、標的コンピュータの所与の１つによって、サーバベースの記憶システムのサーバから、フォルダ同期のために使用されるべき他の標的コンピュータの少なくとも１つの宛先ＩＰアドレスを特徴付けるメタデータを受信し、標的コンピュータの所与の１つによって、少なくとも１つの宛先ＩＰアドレスを使用することにより、ピアツーピアベースでの広域ネットワークを経由する他の標的コンピュータのうちの少なくとも１つとのファイル転送によって、該標的コンピュータの該所与の１つのミラーフォルダを該他の標的コンピュータのうちの少なくとも１つと同期させるステップを含む。このように、標的コンピュータに選択されたフォルダの同期を維持することを目的とするサーバベースの記憶システムから広域ネットワークを経由するサーバによるデータファイルの転送のいかなる必要性も、低減される。
【００１３】
別の実施形態は、命令でエンコードされた非一過性デジタル記憶媒体を提供し、該命令は、標的コンピュータのセットのそれぞれの中にロードされ、そこで起動し、かつ標的コンピュータのそれぞれが、広域ネットワークに結合されると、各標的コンピュータ内で同期プログラムを確立する。同期プログラムは、同期プロトコルを有する。プロトコルは、各標的コンピュータ上で、選択されたフォルダに対応するミラーフォルダをローカルに記憶させるように、選択されたネットワーク記憶フォルダを標的コンピュータのセットと共有するために必要とされる帯域幅を低減する方法を実装するように構成される。選択されたフォルダは、広域ネットワークを経由してアクセス可能なサーバベースの記憶システム内に記憶され、サーバベースの記憶システムは、サーバに結合される。プロトコルは、標的コンピュータの所与の１つにおいて、（ｉ）所与の標的コンピュータ上にローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、広域ネットワークを経由して、サーバに、フォルダ変更データを提供することと、（ｉｉ）サーバと相互作用することにより、変更を反映するように、選択されたネットワーク記憶フォルダを更新させることと、（ｉｉｉ）サーバからの標的コンピュータのセットにおける他の標的コンピュータのＩＰアドレスのセットの受信に応じて、宛先ＩＰアドレスのセットを使用することにより、ピアツーピアベースでの広域ネットワークを経由する他の標的コンピュータとのファイル転送によって、該標的コンピュータのセットのミラーフォルダを該他の標的コンピュータのものと同期させるように構成される。このように、標的コンピュータに選択されたフォルダの同期を維持することを目的とするサーバベースの記憶システムから広域ネットワークを経由するサーバによるデータファイルの転送のいかなる必要性も低減される。
【図面の簡単な説明】
【００１４】
実施形態の前述の特徴は、付随の図面を参照して検討される、以下の発明を実施するための形態を参照することによって、より容易に理解されるであろう。
【００１５】
【図１】図１は、先行技術において実装されるような典型的クラウド記憶配列を示す、概略図である。
【００１６】
【図２】図２は、本発明の実施形態によって改良され、ピアツーピアファイル共有を採用する、クラウド記憶配列を示す、概略図である。
【００１７】
【図３】図３は、本発明のある実施形態による、サーバによって実施される論理フローを示す、ブロック図である。
【００１８】
【図４】図４は、本発明のさらなる実施形態による、サーバによって実施される論理フローを示す、ブロック図である。
【００１９】
【図５】図５は、図３の実施形態のブロック図であり、ここでは、サーバによる代わりに、所与の標的コンピュータによって実施される論理フローを示す。
【発明を実施するための形態】
【００２０】
定義。本説明および付随の請求項において使用されるように、以下の用語は、文脈によって別様に必要とされない限り、示される意味を有するものとする。
「セット」は、少なくとも１つの部材を有する。
フォルダは、フォルダが、標的コンピュータに直接結合される記憶内またはローカルエリアネットワークを経由して標的コンピュータに利用可能な記憶内に記憶されると、標的コンピュータと連動して「ローカルに記憶される」。
「サーバ」は、サーバインフラストラクチャを含む。
「ミラーフォルダ」は、別の記憶場所内の選択されたフォルダから複製される、フォルダである。
「コンピュータプロセス」は、ソフトウェアまたはファームウェアもしくはこれらのいずれかの組み合わせの制御下で動作し得る、もしくは、前述のいずれかの制御外で動作し得る、コンピュータハードウェア（プロセッサ、フィールドプログラマブルゲートアレイ、または他の電子組み合わせ論理、もしくは類似デバイス等）を使用して、コンピュータ内に記述された関数の実施である。記述された関数の全部または一部は、トランジスタもしくはレジスタ等の能動的または受動的電子構成要素によって行われてもよい。用語「コンピュータプロセス」を使用する際、必ずしも、スケジュール可能エンティティまたはコンピュータプログラムもしくはその一部の動作を要求しないが、いくつかの実施形態では、コンピュータプロセスは、そのようなスケジュール可能エンティティまたはコンピュータプログラムもしくはその一部の動作によって実装されてもよい。さらに、文脈によって別様に必要とされない限り、「プロセス」は、１つを上回るプロセッサまたは１つを上回る（単一プロセッサまたはマルチプロセッサの）コンピュータを使用して実装されてもよい。
【００２１】
図１は、先行技術において実装されるような典型的クラウド記憶配列を示す、概略図である。サーバベースのファイル記憶システム１１（図では、「クラウドプロバイダ」として識別される）が、インターネット等の広域ネットワークを経由して、アクセスされる。本実施例では、コンピュータ１２のユーザは、クラウドプロバイダを使用して、少なくとも１つのファイルフォルダを記憶し、ファイルフォルダを他のユーザのコンピュータ１３、１４、および１５と共有することを選定する。ファイルフォルダが、コンピュータ１２のユーザによって共有される度に、クラウドプロバイダは、サーバから、広域ネットワークを経由して、フォルダを共有しているコンピュータ１３、１４、および１５のそれぞれへとダウンロードさせなければならない。（コンピュータ間のファイル同期は、それらのそれぞれ上で起動するファイル同期プログラムを使用して達成される。）その結果、コンピュータ１２のユーザが、フォルダを２０人の他のユーザと共有させる場合、クラウドプロバイダは、フォルダをサーバにアップロードするための、そのサーバへの広域ネットワークを経由するトラフィックだけではなく、さらに、共有ファイルを受信する２０人の他のユーザのそれぞれのコンピュータにフォルダを合計２０回ダウンロードするための、広域ネットワークを経由するトラフィックも被る。したがって、クラウドプロバイダは、いったんサーバがフォルダコンテンツで更新されると、広域ネットワークを経由するそのサーバからのダウンロードを使用して、同期を行うことによって、フォルダを共有するコンピュータ間のフォルダの同期を達成する。ローカルエリアネットワーク（ＬＡＮ）を経由してファイル同期をローカルに達成することは、先行技術において公知であるが、共有コンピュータが、ＬＡＮの同一サブネットを経由して結合されると、本発明者に既知の先行技術は、同期を行うためのサーバから広域ネットワークを経由するダウンロードによる以外、広域ネットワークを経由してコンピュータ間で同期を達成するための機構を教示していない。
【００２２】
図２は、本発明の実施形態によって改良され、ピアツーピアファイル共有を採用する、クラウド記憶配列を示す、概略図である。図２の実施形態では、コンピュータ１２のユーザは、依然として、図１におけるように、ファイルフォルダを、広域ネットワーク１２を経由して、クラウドプロバイダ１１にアップロードする。しかしながら、そのシナリオは、コンピュータ１２のユーザがフォルダを他のユーザのコンピュータと共有することを所望するときに変わってくる。コンピュータ１２のユーザが、本発明の文脈におけるファイル共有機能性を呼び出すと、コンピュータ１２、１３、１４、および１５内で起動するファイル同期プログラムが、ピアツーピアベースでファイル共有を実装するための余剰機能性層を含むという点において、図１の実施形態において使用されるプログラムとは異なるように動作する。言い換えると、コンピュータ１２のユーザが、クラウドプロバイダ１１のサーバに、他のユーザのコンピュータ１３、１４、および１５が、コンピュータ１２のユーザがクラウドプロバイダ１１の広域ネットワークアクセス可能記憶システム内の記憶内に配置された選択されたフォルダのコピーを得るべきことを命令するとき、クラウドプロバイダ１１の記憶からの選択されたネットワーク記憶フォルダの自動ダウンロードは、存在しない。代わりに、コンピュータ１２上で起動するファイル同期プログラムが、呼び出され、フォルダをピアツーピアベースで他のコンピュータ１３、１４、および１５に転送する。ピアツーピアファイル転送が成功した場合、クラウドプロバイダとの唯一の実質的データトラフィックは、コンピュータ１２からのフォルダの初期アップロードとなるであろう。その後、残りのトラフィックは、ピアツーピアベースとなるであろう。（しかしながら、ファイル転送が行われたことを保証するためのメタデータに比較的に少量のトラフィックが存在するであろう。）
【００２３】
図３は、本発明のある実施形態による、サーバによって実施される論理フローを示す、ブロック図である。次に、クラウド記憶内（すなわち、広域ネットワークを経由してアクセスされるサーバ上）の選択されたファイルが標的コンピュータのセット間で共有されるべき場合を検討する。目標は、クラウド記憶内の選択されたフォルダが、標的コンピュータのそれぞれにおけるミラーフォルダ内に複製されることである。標的コンピュータの所与の１つにおけるミラーフォルダが変更された、例えば、少なくとも１つのファイルが、フォルダに追加された、またはそこで修正されたと仮定する。（フォルダは、１つまたはそれを上回るファイルを移動もしくは除去することによって等しく変更され得る。）
【００２４】
本実施例では、サーバは、プロセス３１において、コンピュータのそれぞれに、同期プログラムを起動させている。同期プログラムは、プロトコルを実装する。具体的には、所与のコンピュータ上のローカルに記憶されるミラーフォルダが、その中でのファイルの追加、除去、修正、または移動によって変更を被ると、プロトコルは、広域ネットワークを経由して、サーバに、フォルダ変更データを提供するように構成され、したがって、サーバメタデータは、ミラーフォルダのステータスを追跡することができる。加えて、プロトコルは、サーバと相互作用することにより、ミラーフォルダ内で生じている変更を反映するように、選択されたネットワーク記憶フォルダを更新させる。サーバによって被られるプロトコルのこれらのプロセスは、図３のプロセス３２として示される。
【００２５】
プロセス３２の終了によって、選択されたネットワーク記憶フォルダは、所与の標的コンピュータによって更新されるが、他の標的コンピュータは、更新された選択されたネットワーク記憶フォルダとまだ同期されていない。本時点で、サーバは、広域ネットワークを経由して、所与の標的コンピュータに、そのミラーフォルダ内で変更を被ったことのメタデータを伝送する。サーバのメタデータは、他の標的コンピュータのそれぞれのＩＰアドレスを含み、プロセス３３において、サーバは、所与の標的コンピュータに、他の標的コンピュータのそれぞれのＩＰアドレスを伝送する。次いで、所与の標的コンピュータ内で起動する同期プログラムによって実装されるプロトコルは、所与の標的コンピュータに、そのミラーフォルダを、ピアツーピアベースで、サーバから得られたメタデータ内のＩＰアドレスによって規定された標的コンピュータのそれぞれ内の他のミラーフォルダのそれぞれと同期させる。このように、サーバは、実質的データを、広域ネットワークを経由して、標的コンピュータに送信する必要性を回避する。
【００２６】
ピアツーピア同期の実装に関しては、例えば、公開番号第ＵＳ２０１３／０２９０２５６号を有する、公開された米国特許出願を参照されたい（筆者は、その発明の共同発明者である）。その出願は、全体として本明細書に組み込まれる。同期は、ＩＰアドレスの全てを所与の標的コンピュータに送信することによって実装されることができるが、例えば、サーバが、ＩＰアドレスの適切なサブセットを所与の標的コンピュータに送信し、次いで、別の標的コンピュータが所与の標的コンピュータと同期された後、新しく同期されたコンピュータが、ＩＰアドレスの互いに素なセットが与えられることができ、したがって、同期負荷が、複数の標的コンピュータ間で分割されることができることも、本発明の範囲内である。
【００２７】
図４は、本発明のさらなる実施形態による、サーバによって実施される論理フローを示す、ブロック図である。図４の実施形態は、図３のものに類似するが、図４は、標的コンピュータの全てが同期されたことを保証するためのいくつかの付加的プロセスを含む。本実施形態では、同期プログラムによって実装されるプロトコルの一部として、各標的コンピュータは、サーバに、同期が完了すると、通知を送信する。決定ブロック４１では、サーバは、同期されるべき全ての標的コンピュータから同期完了通知を受信したかどうかに応じて、条件付き分岐に到達する。回答が肯定である場合、処理は、停止する。しかしながら、回答が否定である場合、サーバは、サーバが同期されるべき任意の標的コンピュータから同期完了通知を受信したかどうかに応じて、アイテム４２において、別の条件付き分岐を有する。回答が肯定である場合、プロセス４３において、サーバは、ＩＰアドレスのセットを、実際にサーバに同期完了通知を送信した標的コンピュータにパスし、プロトコルは、受信標的コンピュータに、サーバによって送信されたＩＰアドレスによって識別されたそれらのコンピュータと同期させる。一方、アイテム４２における条件に対する回答が否定である場合、プロセス４４において、サーバは、広域ネットワークを経由して、少なくとも１つの他の標的コンピュータと同期する。プロセス４４または４３のいずれかの後、再び、サーバが他の標的コンピュータの全てから同期完了通知を得たかどうかに応じて、プロセス４１における分岐が継続される。
【００２８】
プロセスの類似セットは、選択されたネットワーク記憶フォルダを共有すべき新しい標的コンピュータが、標的コンピュータのセットに追加されると、呼び出される。新しい標的コンピュータは、同期プログラムを起動させられ、ピアツーピアファイル転送が利用可能であるとき、そのような転送によってフォルダを受信させられる。
【００２９】
図５は、図３の実施形態のブロック図であるが、ここでは、サーバによる代わりに、所与の標的コンピュータによって実施される、論理フローを示す。再び、標的コンピュータの所与の１つ内のミラーフォルダが変更された、例えば、少なくとも１つのファイルが、フォルダに追加された、またはそこで修正されたと仮定する。本実施例では、所与の標的コンピュータは、サーバが、他の標的コンピュータに同期プログラムを起動させたように、サーバによって、プロセス５１において、同期プログラムを起動させられている。
【００３０】
プロセス５２では、同期プログラムの結果として、所与の標的コンピュータは、変更データをサーバに送信し、選択されたネットワーク記憶フォルダを更新する。
【００３１】
プロセス５３では、他の標的コンピュータが、更新された選択されたネットワーク記憶フォルダと同期されるために、所与のコンピュータは、サーバから広域ネットワークを経由して、メタデータを受信する。サーバのメタデータは、他の標的コンピュータのそれぞれのＩＰアドレスを含む。また、プロセス５３において、所与の標的コンピュータ内で起動する同期プログラムによって実装されるプロトコルは、所与の標的コンピュータに、そのミラーフォルダを、ピアツーピアベースで、サーバから得られたメタデータ内のＩＰアドレスによって規定される標的コンピュータのそれぞれ内の他のミラーフォルダのそれぞれと同期させる。前述のように、このように、サーバは、広域ネットワークを経由して、標的コンピュータに、実質的データを送信する必要性を回避する。所与の標的コンピュータが、他の標的コンピュータの全てとの同期の達成に失敗する事態に対処するために、次いで、図４に関して説明されるようなプロセスのセットが、サーバによって、本プロセスを補強するために使用されることができる。
【００３２】
本発明は、プロセッサ（例えば、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、または汎用コンピュータ）とともに使用するためのコンピュータプログラム論理、プログラム可能論理デバイス（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のＰＬＤ）とともに使用するためのプログラム可能論理、離散構成要素、集積回路（例えば、特定用途向け集積回路（ＡＳＩＣ））、またはそれらの任意の組み合わせを含む任意の他の手段を含むが、決してそれらに限定されない、多くの異なる形態で具現化されてもよい。
【００３３】
本明細書で以前に説明されている機能性の全体または一部を実装するコンピュータプログラム論理は、ソースコード形態、コンピュータ実行可能形態、および種々の中間形態（例えば、アセンブラ、コンパイラ、ネットワーカ、またはロケータによって生成される形態）を含むが、決してそれらに限定されない、種々の形態で具現化されてもよい。ソースコードは、種々のオペレーティングシステムまたはオペレーティング環境とともに使用するための種々のプログラミング言語（例えば、オブジェクトコード、アセンブリ言語、またはＦｏｒｔｒａｎ、Ｃ、Ｃ＋＋、ＪＡＶＡ（登録商標）、あるいはＨＴＭＬ等の高レベル言語）のうちのいずれかで実装される、一連のコンピュータプログラム命令を含んでもよい。ソースコードは、種々のデータ構造および通信メッセージを定義し、使用してもよい。ソースコードは、（例えば、インタープリタを介した）コンピュータ実行可能形態であってもよく、またはソースコードは、（例えば、翻訳装置、アセンブラ、またはコンパイラを介して）コンピュータ実行可能形態に変換されてもよい。
【００３４】
コンピュータプログラムは、半導体メモリデバイス（例えば、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ、またはフラッシュプログラマブルＲＡＭ）、磁気メモリデバイス（例えば、ディスケットまたは固定ディスク）、光学メモリデバイス（例えば、ＣＤ−ＲＯＭ）、ＰＣカード（例えば、ＰＣＭＣＩＡカード）、または他のメモリデバイス等の、有形記憶媒体の中で永久的もしくは一時的に、任意の形態（例えば、ソースコード形態、コンピュータ実行可能形態、または中間形態）で固定されてもよい。コンピュータプログラムは、アナログ技術、デジタル技術、光学技術、無線技術、ネットワーキング技術、およびインターネットワーキング技術を含むが、決してそれらに限定されない、種々の通信技術のうちのいずれかを使用してコンピュータに伝送可能である信号の中で、任意の形態で固定されてもよい。コンピュータプログラムは、添付印刷または電子文書（例えば、収縮包装されたソフトウェアまたは磁気テープ）を伴う可撤性記憶媒体として任意の形態で配信され、（例えば、システムＲＯＭまたは固定ディスク上で）コンピュータシステムに事前搭載され、または通信システム（例えば、インターネットまたはワールドワイドウェブ）上でサーバまたは電子掲示板から配信されてもよい。
【００３５】
本明細書で以前に説明されている機能性の全体または一部を実装するハードウェア論理（プログラム可能論理デバイスとともに使用するためのプログラム可能論理を含む）は、従来の手動方法を使用して設計されてもよく、あるいは、コンピュータ支援設計（ＣＡＤ）、ハードウェア記述言語（例えば、ＶＨＤＬまたはＡＨＤＬ）、またはＰＬＤプログラミング言語（例えば、ＰＡＬＡＳＭ、ＡＢＥＬ、またはＣＵＰＬ）等の種々のツールを使用して、設計され、捕捉され、シミュレートされ、または電子的に文書化されてもよい。
【００３６】
本発明は、具体的実施形態を参照して具体的に示され、説明されているが、添付条項によって定義されるような本発明の精神および範囲から逸脱することなく、形態および詳細の種々の変更が行われてもよいことが、当業者によって理解されるであろう。本発明の実施形態は、以下の項によって無制限に説明されてもよい。これらの実施形態は、条項では過程ステップによって説明されているが、以下の条項における過程ステップを実行することが可能な関連ディスプレイを伴うコンピュータを備える装置も、本発明に含まれる。同様に、以下の条項における過程ステップを実行するためのコンピュータ実行可能命令を含み、コンピュータ可読媒体上に記憶される、コンピュータプログラム製品が、本発明内に含まれる。
【００３７】
前述の本発明の実施形態は、単に、例示的であることが意図される。多数の変形例および修正が、当業者に明白となるであろう。全そのような変形例および修正は、任意の添付の請求項に定義される本発明の範囲内であることが意図される。
【図１】
2017520846.tif 000003
【図２】
2017520846.tif 000004
【図３】
2017520846.tif 000005
【図４】
2017520846.tif 000006
【図５】
2017520846.tif 000007
【国際調査報告】
2017520846.tif 000008
2017520846.tif 000009
2017520846.tif 000010