JP6574914B2 - 共有コンテンツアイテムのランダム化ピアツーピア同期 - Google Patents

共有コンテンツアイテムのランダム化ピアツーピア同期 Download PDF

Info

Publication number
JP6574914B2
JP6574914B2 JP2019050131A JP2019050131A JP6574914B2 JP 6574914 B2 JP6574914 B2 JP 6574914B2 JP 2019050131 A JP2019050131 A JP 2019050131A JP 2019050131 A JP2019050131 A JP 2019050131A JP 6574914 B2 JP6574914 B2 JP 6574914B2
Authority
JP
Japan
Prior art keywords
block
client device
readable program
computer
randomized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019050131A
Other languages
English (en)
Other versions
JP2019149170A (ja
Inventor
エリック スワンソン,
エリック スワンソン,
Original Assignee
ドロップボックス, インコーポレイテッド
ドロップボックス, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/985,974 external-priority patent/US9479578B1/en
Application filed by ドロップボックス, インコーポレイテッド, ドロップボックス, インコーポレイテッド filed Critical ドロップボックス, インコーポレイテッド
Publication of JP2019149170A publication Critical patent/JP2019149170A/ja
Application granted granted Critical
Publication of JP6574914B2 publication Critical patent/JP6574914B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願へのクロスリファレンス
[0001]本出願は、2015年12月31日出願の米国特許出願第14/985,974号と、2016年10月14日出願の米国特許出願15/294,641号の優先権を主張し、参照によりこれらの全体が組み込まれる。
[0002]本開示の実施形態は、一般的には、コンテンツアイテムの同期を提供するコンピュータシステムのパフォーマンスを改善することに関し、とりわけ、複数のクライアントデバイスがローカルエリアネットワークに接続される、複数のクライアントデバイスとコンテンツ管理システムとの間のコンテンツアイテムの同期を改善することに関する。
[0003]コンテンツ管理システムは、ユーザがあるクライアントから他のクライアントへコンテンツアイテムを共有することを可能にする。当該クライアントは、記憶及び他のクライアントとの同期のために、コンテンツアイテムをコンテンツ管理システムに提供するコンピューティングデバイスである。他のクライアントは、他のユーザによって操作されてもよく、同一のユーザによって登録又は管理されるデバイスであってもよい。ユーザは、いずれのコンテンツアイテムが、又は、コンテンツアイテムを含むいずれのディレクトリが他のユーザと共有されるのに利用できるか、即ち、そのようなユーザのクライアントデバイスと同期されるかを指定する。通常、コンテンツ管理システムは、当該コンテンツアイテムを共有するように設計されている全てのクライアントデバイスで所定のコンテンツを同期する。通常、他のクライアントデバイスとコンテンツアイテムを共有することは、第1のクライアントデバイスが共有コンテンツアイテム(又は、コンテンツアイテムを編集する)をコンテンツ管理システムのサーバへアップロードし、共有のコンテンツアイテムを第2のクライアントデバイスによってダウンロードすることによって達成される。
[0004]多くのクライアントデバイスが同じLAN上で互いに接続される、いくつかの実施形態において、クライアントデバイスは、サーバからの共有コンテンツアイテムを要求する代わりに、LAN上の複数のクライアントデバイスからの、新たな、かつ、更新された共有コンテンツアイテムを要求してもよい。
[0005]図1は、一実施形態に係る、LAN上のクライアントデバイス間でコンテンツアイテムを同期するコンテンツ管理システムについてのシステム環境を示す図である。 [0006]図2は、一実施形態に係る、クライアントデバイスのソフトウェアアーキテクチャを示す図である。 [0007]図3A乃至図3Eは、種々の実施形態と先行技術の方法とを比較する、互いに接続を維持するLAN上のクライアントデバイスの概念の例示である。 [0008]図4A及び図4Bは、一実施形態と先行技術の方法とを比較する、LAN上の他のクライアントデバイスからのコンテンツアイテムを要求するクライアントデバイスの概念の例示である。 [0009]図5A乃至図5Dは、通常のブロック要求シナリオの概念の例示である。 [0010]図6A乃至図6Dは、一実施形態に係る、ブロック要求方法の概念の例示である。 [0011]図7は、一実施形態に係る、コンテンツアイテムのランダム化ピアツーピア同期の方法のフローチャートである。
[0012]これらの図は説明の目的のためのみに本発明の様々な実施形態を図示するものである。当業者は、以下に示される構成及び方法の他の代替的な実施形態が以下に説明される発明の原理から乖離することなく用いられ得ることを以降の記載から容易に理解する。
<ランダム化ピアツーピア同期の機能概要>
[0013]コンテンツアイテム同期システムの一般的な機能概要と処理を以下で説明する。予備的条件として、ユーザがコンテンツアイテムをクライアントデバイスに格納し、コンテンツアイテムが他のクライアントデバイス上のコンテンツアイテムのインスタンスや、ホストシステム、概してコンテンツ管理システムと同期される。クライアントデバイスは、ローカルコンテンツディレクトリにコンテンツアイテムを格納する。ローカルコンテンツディレクトリに格納されたコンテンツアイテムは、コンテンツ管理システムと同期され、コンテンツアイテムのコピーを保持し、コンテンツアイテムを他のクライアントデバイスと同期する。各クライアントデバイスは、クライアントアプリケーションを実行し、ユーザがコンテンツ管理システムにアクセスすることを可能にする。
[0014]一形態において、コンテンツ管理システムと同期されたクライアントデバイスは、ローカルエリアネットワーク(LAN)上のピアクライアントデバイスと通信を行うことができる。LAN上で通信を行うクライアントデバイスのクライアントアプリケーションは、コンテンツ管理システムにおいてクライアントデバイスにコンテンツアイテムをダウンロードする効率を改善するピアクライアントデバイスを利用してもよい。各クライアントデバイスは、LAN上で複数のクライアントデバイスのサブセットと通信を行ってもよい。いくつかの実施形態において、クライアントデバイスのクライアントアプリケーションは、送受信を行うLAN上のクライアントデバイスの特定のサブセットをランダムに選択する。他の場合において、上記選択のランダム化は、好ましいネットワーク特性又は他の要望される特性を有する、クライアントデバイスに対して重み付けされる。その後、クライアントアプリケーションは、クライアントデバイス上で同期されるコンテンツアイテムの集合を示す(ネームスペースの形式で)、接続されるクライアントデバイスのそれぞれからのブロードキャストを受信する。
[0015]LAN上のクライアントデバイスのクライアントアプリケーションが新たなコンテンツアイテム又は既存のコンテンツアイテムの新たなバージョンをクライアントデバイスと同期して利用可能であることをコンテンツ管理システムによって通知されると、クライアントアプリケーションは、接続されるデバイスから受信したブロードキャストに基づいて、同じネームスペースと同期されるLAN上のクライアントデバイスの集合を決定する。クライアントアプリケーションはその後、新たなコンテンツアイテムについての要求を送信するために、共有ネームスペースを有する決定したクライアントデバイスの集合からランダムに複数のクライアントデバイスを選択してもよい。いくつかの実施形態において、クライアントアプリケーションは、好ましい現在のネットワーク特性又は性能特性を有するLAN上のクライアントデバイスに対して加重ランダム化を行ってもよい。
[0016]受領側のクライアントデバイスを決定すると、クライアントアプリケーションは、LAN上の受領側のクライアントデバイスのそれぞれに新たなコンテンツアイテムについての要求を送信する。当該要求は、同期されるコンテンツアイテムの新たな又は更新されたセクションを有する複数のブロック含む順序付けられたブロックリストの個々のブロックについて送信されてもよい。コンテンツアイテムが複数のブロックを含む場合にそれらのブロックが順序通りにダウンロードされないように、ブロックリストがランダム化される。受領側デバイスがランダム化されたブロックリストの第1のブロック(最初のブロック)の同期バージョンを含む場合、受領側デバイスは、要求側デバイスへ第1のブロックのコピーを転送する。当該転送が完了するとすぐに、当該デバイスは、ランダム化されたブロックリストの第2のブロック(2番目のブロック)についての第2の要求を行ってもよく、以後全てのブロックが転送されるまで行われる。受領側デバイスが要求されたブロックを含んでいなければ、要求側クライアントデバイスは、コンテンツ管理システムから直接的に当該ブロックをダウンロードするよう要求する。当該ダウンロードが完了するとすぐに、要求側クライアントデバイスは、受領側デバイスからランダム化されたブロックリストの要求ブロックを続ける。
[0017]いくつかの実施形態において、各要求は、要求側デバイスで同期されるべき全体のブロックリストを含む。この場合、受領側デバイスのクライアントアプリケーションは、ブロックリストの複数のブロックのそれぞれの同期バージョンがランダム化されたブロックリストの順序で受領側デバイスに存在するかどうかを判定する。任意の一致するブロックがランダム化されたブロックリストの順で要求側デバイスに転送される。当該転送が完了するとすぐに、更新されたブロックリストが受領側のデバイスへ次の要求において送信される。
<システムアーキテクチャの概要>
[0018]図1は、一実施形態に係るコンテンツ管理システムのシステムアーキテクチャを示す。各コンポーネントの詳細は後述するが、ランダム化ピアツーピア同期の説明を提供すべく、いくつかの要素についてはここで紹介する。さらに、当業者には明らかなように、ランダム化ピアツーピア同期に使用される動作および方法は、必然的にコンピュータを必要とし、いかなる実施形態においても、人間の動作による精神的ステップによっては実行されない。さらに、当該動作は情報の記憶及び検索、情報の送受信、又は情報の処理のためのコンピュータの容易さを利用する一方で、当業者は、このような動作が、ここで説明したアルゴリズムを用いて特別に定義したデータに関して特定の方法で実行され、従って、オペレーティングシステム及び標準アプリケーションだけでそのようなコンピュータをネイティブに供給する方法とは異なる方法でコンピュータを構成する必要があるため、単に一般的なコンピュータ動作ではないことを理解する。さらに、ここで開示される構成は、コンテンツアイテムがピアツーピア同期システムを使用してダウンロードされる際の効率の向上を可能とする。
[0019]LAN106を使用して互いに通信を行うクライアントデバイス100は、コンテンツ管理システム110から遠隔に位置するクライアントデバイス100間のインターネットワーキングを提供する任意の適切な通信手段となりうる、不図示の広域ネットワーク108を通じて、コンテンツ管理システム110と通信する。一般的には、インストールされたクライアントアプリケーション102Aを有するクライアントデバイス100Aは、コンテンツアイテムをコンテンツ管理システム110へ提供する。クライアントアプリケーション102Aは、ランダム化されたピアツーピア同期と関連する機能を実行するために、クライアントデバイス100Aに必要とされるプログラム及びプロトコルを含む。従って、クライアントデバイス100Aは、クライアントアプリケーション102Aによって要求されるアクションを頻繁に実行する。しかしながら、クライアントデバイス100A及びクライアントアプリケーション102Aが共に動作するため、説明を容易にするため、それらのいくつかの動作は、動作要素として、”クライアントデバイス100A”を用いて参照される。クライアントデバイス100Aのユーザは、例えば、同一のユーザによって管理されるその他のコンピュータ、又は異なるユーザによって操作されるコンピュータとなりうるクライアントデバイス100Bと共有すべき所定のコンテンツアイテムを指定している。コンテンツ管理システム110は、クライアントデバイス100Bに通知し、クライアントデバイス100Bに格納されるローカルコンテンツとしてクライアントデバイス100Aから受信した、指定されたコンテンツアイテムを同期する。クライアントデバイス100A及びクライアントデバイス100Bが同じLANで通信を行う場合、クライアントデバイス100Bは、ここで説明するように、ランダム化されたピアツーピア同期を使用してクライアントデバイス100Aから直接的にコンテンツアイテム要求してもよい。しかしながら、コンテンツ管理システムは、通常、クライアントデバイスに同期が必要であることを通知する責任がある。
[0020]コンテンツ管理システム110は、各コンテンツアイテムをコンテンツアイテムの集合に対応するネームスペースに関連付ける。ネームスペースは、所定のコンテンツアイテムが格納されるディレクトリ構造内のディレクトリ(又は、”フォルダ”)を指定する。コンテンツアイテムの特定のネームスペースへの関連付けは、ネームスペーステーブル122に格納される。コンテンツ管理システム110は、各クライアントを、各ネームスペースにおいてコンテンツアイテムへのアクセス、変更、及び削除を行う特定の権利の識別とともに、アクセスを有するネームスペースに関連付ける。クライアント100がネームスペースに同期されると、当該クライアントは、ネームスペースに関連付けられるコンテンツアイテムのローカルコピーを格納し、利用可能であればコンテンツの場所に従ってコンテンツアイテムを構造化(organize)する。ユーザは個別のクライアントデバイス100又は複数のクライアント100と関連付けられ、例えば、ユーザは、家庭用コンピュータ、作業用コンピュータ、ポータブルコンピュータ、スマートフォン、及びタブレットコンピュータを全て一緒に同期させることができる。コンテンツアイテムを共有するために、ユーザは、他のユーザ及び/又はクライアントと共有すべきネームスペースを指定する。コンテンツ管理システム110はその後、共有ネームスペースのコンテンツアイテムを、共有ネームスペースと関連するクライアントに渡って同期する。コンテンツ管理システム110に格納されるコンテンツアイテムは、ドキュメント、データ、映画、アプリケーション、コード、画像、音楽などを含む任意のタイプのコンテンツアイテムを含むことができる。コンテンツアイテムはまた、コレクション、プレイリスト、アルバム、ファイルアーカイブなどと共に、コンテンツアイテムをグループ化するフォルダまたは他のメカニズムであってもよい。
[0021]各ユーザは、コンテンツ管理システム110上でコンテンツアイテムを格納するために使用されるべきストレージの容量を特定する情報を含む、コンテンツ管理システム110上のアカウントに関連付けられる。
<コンテンツ管理システムの概要>
[0022]クライアントデバイス100A及び100B間でコンテンツ管理システム110を用いる同期の一方法は、図1によって示されるアーキテクチャを参照して説明されうる。ランダム化されたピアツーピア同期に使用されうる、多数の可能な同期方法の1つを以下で説明する。
[0023]コンテンツ管理システム110は、データストア118にコンテンツアイテムを格納する。コンテンツアイテムは、ブロックと呼ばれる固定サイズの部分に格納される。ブロックのサイズ実装に従って変化し、一実施形態においては、ブロックは4メガバイトのサイズである。従って、小さいサイズのコンテンツアイテムは、単一のブロックに格納される一方で、大きいサイズのコンテンツアイテムは、コンテンツ管理システム110のストレージについて、数十、数百、又はそれ以上のブロックに分割されて格納されうる。メタデータはコンテンツアイテムの複数のブロック及びコンテンツアイテムにおけるブロックの順序を定義するブロックリストを含む。
[0024]保留ブロックテーブル120は、コンテンツ管理システム110で受信されることが予期される保留ブロックのリストを保持する。保留ブロックテーブル120は、クライアント100から送信されるブロックと、それらのブロックが属するネームスペースとの間の関連を格納する。
[0025]ネームスペーステーブル122は、個別のコンテンツアイテムをネームスペースに関連付けるデータを格納し、各ネームスペースをクライアントに関連付けるデータを保持する。
[0026]メタデータサーバ112は、新たなコンテンツアイテムをコンテンツ管理システムへ追加する(委任する)クライアントからの要求を管理する責任を負う。メタデータサーバ112はまた、コンテンツアイテムを同期する要求をクライアントデバイス100から受信する。メタデータサーバ112は、クライアントデバイス100がコンテンツ管理システム110と同期された最新時刻の記録を保持する。クライアントデバイス100から同期する要求が受信されると、メタデータサーバ112は、最新の同期時刻スタンプ以後に、当該クライアントデバイス100へ同期されたネームスペースに委任されている任意のコンテンツアイテムを判定する。さらに、メタデータサーバ112は、最新の同期時刻スタンプ以後に、受信された任意の保留ブロックを判定する。
[0027]通知サーバ116は、クライアント100との通信を行い、特に、新たなデータが利用可能であることをクライアントへ通知する。通知サーバ116は、ネームスペーステーブル122で各ネームスペースに関連付けられるクライアント100のリストを保持する。通知サーバ116が、新たなブロックが所定のネームスペースについて利用可能であるというアラートをブロックサーバ114又はメタデータサーバ112から受信すると、当該通知サーバ116は、ネームスペーステーブル122から当該ネームスペースと関連付けられるクライアントを特定する。通知サーバ116は、ネームスペースに関連付けられたクライアント100に当該クライアント100を活動させるように通知し、新たなブロックが特定したネームスペースについて利用可能であることを示す。
[0028]複数のクライアントデバイスが同じLAN上で通信を行っている際に、2つのクライアント100、例えば、クライアントデバイス100A及びクライアントデバイス100Bの間の同期が以下のように発生する。まず、クライアントデバイス100Aが共有データに追加のコンテンツアイテムを追加する。クライアントデバイス100Aはその後、追加のコンテンツアイテムが共有データに存在することをコンテンツ管理システム110へ通知する。コンテンツ管理システム110はその後、追加のコンテンツアイテムが共有データにあることをクライアントデバイス100Bに通知し、クライアントデバイス100Bは、コンテンツ管理システム110から追加のコンテンツアイテムを取り出す準備を行う。コンテンツ管理システム110は、コンテンツアイテムと、保留ブロックテーブル120を用いてコンテンツ管理システム110で受信されることが予期される保留ブロックとのリストを保持し、クライアントデバイス100Aからコンテンツ管理システム110によって受信されるブロックとしてコンテンツアイテムに対応するブロックをダウンロードするようにクライアントデバイス100Bに通知する。保留ブロックは、コンテンツ管理システム110がクライアントデバイスAから受信することを期待する追加のコンテンツアイテムに対応するそれらのブロックであり、追加のコンテンツアイテムの全てがコンテンツ管理システム110に送信される前に、受信側のクライアントデバイス100Bに提供されうるブロックを特定するために使用される。
[0029]転送中のコンテンツアイテムを管理するために、コンテンツ管理システム110は、保留ブロックに関連付けられるネームスペースとともに、保留ブロックのリストを保有する。保留ブロックが受信されると、ネームスペースに関連付けられるクライアントに通知され、受信されたブロックについての転送を開始することができる。従って、アップロードするクライアント(新たなコンテンツアイテムを提供する)と、ダウンロードするクライアント(新たなコンテンツアイテムを受信する)は、コンテンツ管理システム110に対して非同期でブロックを転送する。
<クライアントデバイスの概要>
[0030]各クライアントデバイス100は、デスクトップ、ラップトップ、タブレット、モバイルデバイス、又は、コンテンツ管理システム110及びインストールされたクライアントアプリケーション102を用いる他のクライアントと同期される共有データのローカルコピーを保持する他のシステムなどのコンピューティングデバイスである。共有データは、単一のユーザに関連付けられるクライアントのみと同期されてもよく、複数のユーザと関連付けられるクライアントと同期されてもよい。クライアントデバイス100は、図2に関してさらに説明されるように、共有データを扱い、データを追加するためのモジュール及びアプリケーションを含む。
[0031]図2は、クライアントアプリケーション102のモジュールを示す。クライアントアプリケーション102は、種々のモジュールと、コンテンツ管理システム110とデータを同期するためのデータストアを含む。クライアントアプリケーション102は、コンテンツ同期モジュール210、ハッシュ(hashing)モジュール220、ダウンロードモジュール230、アップロードモジュール240、及びピアツーピア同期モジュール250を含む。さらに、クライアントアプリケーション102は、ファイルジャーナル260、共有データ264、ブロックキャッシュ270、及び階層ネットワークデータ272を含むデータストアを保持する。
[0032]共有データ264はコンテンツ管理システム110で同期されているデータであり、コンテンツ管理システム110から受信したコンテンツアイテムを含む。ユーザが共有データ264内のコンテンツアイテムを追加、変更又は削除すると、それらの変更はコンテンツ管理システム110と同期される。ハッシュモジュール220及びブロックキャッシュ270は、コンテンツ管理システム110へアップロードされるコンテンツアイテムを含むブロックを特定するように作動する。ハッシュモジュール220は、MD5又はSHA−1などの任意の適切なハッシュアルゴリズムを実行することによってブロック識別子を割り当てる。コンテンツ同期モジュール210はその後、ブロックキャッシュ270内に位置する常駐ブロックと、コンテンツ管理システム110によって保持されるブロックとを比較するために、それらの識別子を使用する。
[0033]クライアントアプリケーション102内において、ファイルジャーナル260は、クライアントアプリケーション102を使用してアカウントにアクセス可能な全てのコンテンツアイテムのメタデータをリストしたテーブルを格納する。メタデータは、リビジョン日時と、ネームスペースと、各コンテンツアイテムに対応するブロックリストとを含む。常駐していない又は同期していないコンテンツアイテムが、依然としてファイルジャーナル260に含まれている。
[0034]クライアントアプリケーション102内で、クライアントデバイス100上の共有データ264のデータが変更されるか又は共有データ264へデータが追加されると、共有データ264への変更は、アップロードモジュール240によってコンテンツ管理システム110へ送信される。アップロードデータは、変更ブロック又は追加ブロックについての関連するブロック識別子を含む。コンテンツ管理システム110はその後、新たなブロック又はブロックの新たなバージョンがアップロードされたことを、アップロードクライアントデバイス100と同じネームスペースを有する他のクライアントデバイスに通知する。当該通知は、ブロック識別子と、アップロードされる対応するコンテンツアイテムとを含んでもよい。クライアントデバイス100が通知を受信すると、クライアントデバイス100は、共有データ264への変更についてコンテンツ管理システム110に問い合わせる。共有データが変更されると、コンテンツ同期モジュール210は、クライアントデバイス100上で共有データを格納するためにコンテンツ管理システム110からの変更を要求する。当該要求は、新しい又は更新されたコンテンツアイテムを含む単一の要求であってもよく、或いは、クライアントデバイス100へのダウンロードのための単一のブロックを含む複数の要求がそれぞれ送信されてもよい。ダウンロードモジュール230はその後、ダウンロードブロックの新たなバージョンを反映するために、ファイルジャーナル260、共有データ264、及びブロックキャッシュ270を更新することによって、コンテンツ管理システム110からダウンロードされる任意のブロックを受信する。
<ピアツーピア同期>
[0035]ピアツーピア同期モジュール250は、ピアデバイスを用いてコンテンツアイテムを同期する追加のプロセスを利用する。明確にするために、ピアデバイスは、同じLANに接続される任意のクライアントデバイスであってもよい。ピアツーピア同期モジュール250は、クライアントデバイス100がLANに接続されているかどうかを識別することができる。クライアントデバイスがLANに接続されていると判定すると、ピアツーピア同期モジュール250は、図3乃至図7を参照して説明する、コンテンツアイテムを同期する代替の方法を行う。
[0036]クライアントデバイス100がLANに接続されていると判定された後、ピアツーピア同期モジュール250は、クライアントデバイス100と同じネームスペースと関連付けられる、ローカルエリアネットワーク上で通信するピアデバイスを識別する。ピアツーピア同期モジュール250は、クライアントアプリケーションがインストールされたLAN上のピアデバイスからブロードキャストを受信する。ブロードキャストは、通常、ユーザデータグラムプロトコル(UDP)を用いてLANを介して送信される。LAN上で通信を行うクライアントデバイス100は、当該LANに接続される任意のデバイスにUDPメッセージを送信する。ピアツーピア同期モジュール250は、ブロードキャストを送信するピアデバイスのIPアドレス、及び、当該ピアデバイスで同期されるネームスペースを判定するために各ブロードキャストを解析する。ピアツーピア同期モジュール250はその後、各ブロードキャストのネームスペースを、クライアントデバイス100上で同期されるネームスペースと比較する。それらのネームスペースが一致すれば、ピアツーピア同期モジュール250は、後でそれらのデバイスに接続するために、一致するネームスペースと共に当該ピアデバイスのIPアドレスを格納する。
[0037]図3Aは、ローカルエリアネットワーク106上で通信を行う、ネームスペースが一致するピアデバイスの通常グループの概念図である。ストライプの丸は、最近LANネットワークに参加し、接続を求めるピアデバイスを表す。黒の丸は、短いping、又は、高帯域、又は、任意の他の好適なネットワーク特性を有するような、好適な接続を有するピアデバイスを表す。白の丸は、平均の又は平凡なネットワーク特性を有するピアデバイスを表す。
[0038]ピアツーピア同期モジュール250は、コンテンツ管理システム110に関する通信及び一致するネームスペースを送受信するために、ピアデバイスのグループに接続する。クライアントデバイス100は、ネームスペースを共有するLAN上のピアデバイスのサブセットに接続してもよい。クライアントデバイス100が接続を維持するピアデバイスの数は、特定のクライアントデバイス100のネットワークに基づいてもよい。代替的に、ピアデバイスのサブセットのピアデバイスの数は、実装者の裁量で、LANに接続されたデバイスの総数、又はクライアントデバイス100のネームスペースを共有するデバイスの総数に比例してもよい。他の実施形態において、接続されるサブセットのピアデバイスにおけるピアデバイスの数は、実装者の裁量で、コンテンツ管理システム110についてのプリセットであってもよい。ピアデバイスのサブセットについて判定されたピアデバイスの数よりネームスペースを共有するピアデバイスが少ない場合、クライアントデバイス100は、LAN上のネームスペースを共有するデバイスの全てとの接続を維持してもよい。さらに、各クライアントデバイスにおける接続数は、ネームスペース上のコンテンツアイテムにおけるブロック数の平均、中間値、又はモードに基づいてもよい。例えば、各クライアントデバイス100の接続数は、ネームスペースの平均ブロック数の3倍に設定されてもよい。これは、コンテンツ管理システム110への要求を送信する前に、ブロックを要求する3つの機会を可能にする。
[0039]クライアントデバイス100は、非常に多くのピアデバイスへの接続がデバイスのネットワーク性能を低減するため、当該クライアントデバイス100とネームスペースを共有するピアデバイスの総数のサブセットに接続する。さらに、ピアデバイスのサブセットは、通常、LAN上で提示される所定のネームスペース上に格納されるコンテンツアイテムの大部分を代表するものであり、サブセットグループのサイズが大きければ、ネームスペースを共有するピアデバイスの数のかなりの部分であり、後述するような、許容されるアルゴリズムを用いて選択される。
[0040]送信制御プロトコル(TCP)、又は、ストリーム送信制御プロトコル(STCP)を用いて、接続が確立される。これは、共有データやメタデータを交換する安全なかつ信頼性のある接続を確立し、可能な限り迅速にコンテンツアイテムの同期を可能とすることによって、よりよいユーザ経験を提供する。
[0041]標準のピアツーピアシステムにおいて、各デバイスは、最も良好な現在の又は過去のネットワーク性能を有するピアデバイスとの接続を優先する。しかしながら、これは、新しいデバイスが、多くの他のデバイスに既に接続されるピアデバイスとの接続を形成する結果となりうる。同一のネームスペースを有するピアデバイスに渡ってコンテンツアイテムを同期する処理は、同期中にネットワークアクティビティがバーストする可能性があり、従って、非常に多くのデバイスが好ましいデバイス310との接続を形成する場合、その後ネットワークトラフィックが問題となりうる。この着想については図3B及び図3Cに示される。
[0042]図3Bは、デバイス300Aの接続を示す。デバイス300Aは、LANに接続し、多くのネームスペースを共有するピアデバイスからブロードキャストを受信する。当該シナリオ340において、デバイス300Aは、主にポジティブなネットワーク特性に基づいて接続を形成する。説明のため、デバイス300Aが行う接続数を8つの接続に制限すると仮定する。
[0043]シナリオ340において、デバイス300Aは、8つの好ましいピアデバイス310とのみ接続を開始する。デバイス300B及び300Cは、同じ形態に従い、同じの8つのデバイス310に接続する。図3Cは、シナリオ340の結果を示す。デバイス300A、300B、及び300Cは全て、同じ8つの好ましいピアデバイス310に接続される。これらのデバイスは過去のネットワーク特性に基づいて典型的なネットワークアクティブティ中に平均的なピアデバイス320に対して優れたネットワーク特性を有するものの、それらは実際には、デバイス300A,300B、及び300Cのそれぞれが同時刻にコンテンツアイテムの要求を行う場合には、悪化する可能性がある。性能は、好ましいデバイス310と、平均的なデバイス320との間の負荷をよりよく分散することによって改善されるかもしれない。
[0044]一実施形態において、ピアツーピア同期モジュール250は、クライアントデバイス100とネームスペースを共有するピアデバイスのランダムに選択されたサブセットからの接続を要求する。これは、他のピアデバイスより優先されるピアデバイスがなくなり、ネームスペースを共有するデバイス間で接続が均等に分散される可能性が最も高くなることを保証する。従って、同期中は、ネットワークトラフィックが抑制されない可能性がある。一方で、好ましい接続を有するデバイス310は、一般的には複数の接続を扱うことがより可能であるため、不十分に利用されている。
[0045]他の実施形態において、ピアツーピア同期モジュール250は、接続するピアデバイスを判定するために、加重ランダム化手法を使用する。この場合、好ましいデバイスには、過去の平均帯域幅、過去の平均待ち時間、接続成功率、過去のブロードキャスト頻度、過去の平均接続速度、又は、他の適切な尺度などの要因に基づいて、所定の優先順位が与えられる。いくつかの場合において、デバイスは、過去のネットワーク特性272に基づいて、それらの全体的な好感度を示すスコアを受け取ってもよい。当該スコアはその後、ほぼゼロに正規分布したランダムな整数によって修正される。正規分布の標準偏差は設計選択として調整されうる、或いは、任意の他の分布は、単一の目的を達成するために使用されうる。いくつかの実施形態において、分布のパラメータ(正規標準偏差の場合の標準偏差等)は、ピアデバイスのオリジナルのランキングに基づいて修正されてもよい。例えば、より高い標準偏差を有する分布に基づくランダム値は、少ない分散の分布が低くランク付けされたピアデバイスに対して使用される一方で、より高くランク付けされたデバイスのスコアに追加されうる。ランダム整数をランキングに追加することは、全てのクライアントデバイス100が同一のランキングに判定し、同じピアデバイス310に優先することを防ぐ。しかし、同時に、より適切なピアデバイス310がより高いスコアを受け取る可能性があり、従って、それらは接続について選択される可能性がある。当業者は、加重ランダム化やランキングの他の方法が同様の結果を達成するために使用されうることを理解するであろう。例えば、各ピアデバイスには”bin”内にピアデバイスを配置するスコアが与えられ、その後、各binのデバイスは当該bin内でランダム化されるが異なるbinに移動することはない。接続の際、クライアントデバイス100は、最初のいくつかのbinからデバイスを選択するであろう。
[0046]図3Dは、加重ランダム化された接続についてのシナリオを示す。このシナリオ350において、デバイス300Aは再び8つのデバイスに接続する。しかしながら、シナリオ350において、加重ランダム化が使用される。従って、デバイス300Aは、好ましいデバイス310と平均デバイス320との間の重み付けされた一部(split)に接続する。さらに、ランダム化のため、デバイス300B及び300Cは、接続する異なるデバイスのサブセットを選択する。図3Eは、シナリオ350において接続するデバイス300A、300B、及び300Cの結果を示す。例示の接続330は、ネームスペースを共有する全てのピアデバイスの間でよりいっそう分散される。したがって、新たに追加されたコンテンツアイテムの同期が発生すると、要求トラフィックは、より均一して分散され、従来の技術よりもより良い性能の結果をもたらす。
[0047]クライアントデバイス100が当該クライアントデバイス100とネームスペースを共有する選択されたピアデバイスのサブセットとの接続が開始すると、当該クライアントデバイスでは、接続したピアデバイスのサブセットにブロックの要求を送信する準備が行われる。ピアツーピア同期において、クライアントデバイス100が、ブロックがクライアントデバイス100と同期されるネームスペースにおいて追加され又は変更されたことの通知を受信すると、ピアツーピア同期モジュール250は、コンテンツ管理システム110へ要求を送信する前に、まず、接続されるピアデバイスに要求を送信する。この要求戦略は、同期時間を低減し、全体のシステム性能を改善することができる。これは、ピアデバイスが要求を満足することができる場合、コンテンツ管理システムへ要求が行われず、これにより、サーバレベルでのトラフィックを低減する。さらに、同じネットワーク上のデバイス間での接続時間がサーバと接続を開始するよりも非常に短いため、これはダウンロード時間より短くすることを可能とする。また、ピアツーピア要求は、少数のいくつかのピアデバイスがコンテンツ管理システム110から受信したデータをLAN上の他のデバイスに広げることを可能にすることによって、サーバの観点から冗長性を低減している。
[0048]2つのピアデバイス間でTCP接続が確立されると、ピアツーピア同期モジュール250は、接続されるピアデバイスからの特定のブロック、又は、コンテンツアイテムにおける全体のブロックリストを要求するHTTP要求を用いる。ピアツーピア同期モジュール250は、接続されるデバイスに、要求コンテンツアイテムのIDを通知する。それらの通知は、ピアデバイスからの他の要求をよりよく調整することができる。
[0049]通常のピアツーピア同期では、最初の要求は、通常、最初の利用可能な接続ピアデバイスに送信される。しかしながら、複数のピアデバイスが同時刻に新たなコンテンツアイテムをダウンロードしようと試みると、この戦略では、単一のピアデバイスが多数の他のデバイスへの短い待ち時間の接続を有する場合、複数のピアデバイスが、当該単一のデバイスに同じブロックを要求することになる。これは、単一のデバイスまわりのトラフィックが増大し、いくつかの場合において、当該デバイスに同じコンテンツアイテムに対する要求を繰り返し拒否する必要があり、性能を低減することになってしまう。
[0050]この性能面を改善するために、ピアツーピア同期モジュール250は、要求が送信される接続デバイスの順序をランダム化する。図4Aは、多数のクライアントデバイス100A、100C、100E、及び100Gの全てがその短い待ち時間に起因するクライアントデバイス100Bからの対象のコンテンツアイテムを最初に要求する場合について示す。クライアントデバイス100Bが当該コンテンツアイテムを有するため、当該クライアントデバイスはそれぞれの要求を順に受け付けるが、それらの要求のそれぞれを連続して扱わなければならず、これにより、性能が低下してしまう。図4Bは、要求を順序付ける別の方法を示す。いくつかの測定により最良の接続を有するピアデバイスへの要求を送信すること、又は、同時に複数の要求を送信してコンテンツアイテムをダウンロードするために最初の応答デバイスを用いることの代わりに、ピアツーピア同期モジュール250は、ピアデバイスに接続されるクライアントデバイス100に対する要求の順序をランダムに判定してもよい。図4Bに示すように、開始要求は、シナリオ420で複数のピアデバイス間でより均一に分散される。これは、単一のクライアントデバイスまわりのトラフィック量を低減することと、複数の要求側のクライアントデバイス100が要求ブロックを有していないピアデバイスへ要求を送信する機会を減少させることとの両方によって、性能を改善する。
[0051]要求の順序を単純にランダム化することに加えて、ピアツーピア同期モジュール250は、クライアントデバイスに対する要求順序を決定するために加重ランダム化手法を使用してもよい。この場合、ピアツーピア同期モジュール250は、各接続ピアデバイスについてのスコアを計算し、その後、図3D及び図3Eを参照して説明したように、分布に基づいてランダム化された変更(modifier)を適用する。この場合、各接続ピアデバイスのスコアは、デバイスの現在の帯域幅、どれくらいの要求が所定の時間期間内にデバイスで受信されるか、当該デバイス上でどれくらいのネームスペースが同期されるか、当該デバイスが広域ネットワークを介してコンテンツ管理システム110と現在通信しているかどうか、現在の待ち時間、又は、任意の他の適切なネットワーク特性を含む、デバイスの現在のネットワーク特性に基づいてもよい。
[0052]要求順を決定するために使用されることに加えて、接続ピアデバイスのスコアはまた、ピアデバイスとの各接続が終了されるか又は維持されるかを決定するために使用されてもよい。いくつかの実施形態において、接続ピアデバイスのスコアが閾値を下回る場合、当該デバイスとの接続は終了され、新たな接続が他のピアデバイスと確立される。
[0053]前述したように、接続ピアデバイスへの各要求は、コンテンツアイテムを含む単一のブロックについての要求を含んでもよく、或いは、コンテンツアイテムについての全体のブロックリストを含んでもよい。いずれの場合でも、ピアツーピア同期モジュール250は、個々のブロック要求の順序、又は、性能を改善するブロックリストの順序をランダム化してもよい。他の実施形態において、コンテンツアイテムを含むいくつかのブロックは、ダウンロードを完了する前にクライアントデバイス100上のアプリケーションがコンテンツアイテムを開くことを可能とするために、それらのオリジナルの順序で保持されてもよい。
[0054]図5A乃至図5Dは、クライアントデバイス100A、100B、及び100Cが、ブロック1〜5で構成される新たなコンテンツアイテムがクライアントデバイス100の共通のネームスペースに追加されたことを、コンテンツ管理システムによって通知される状況において、ブロックリストをランダム化しないピアツーピア同期システムを示す。図5に示されるシナリオを単純化するため、図5では3つのクライアントデバイスのみが示されるが、このケースで示される問題及び解決手段が多数のコンテンツアイテムへどのように拡張されるかは明確である。
[0055]図5Aは、クライアントデバイス100がブロック1〜5のいずれのブロックも格納していない状態から始める。これは、他の2つのクライアントデバイス100のそれぞれからのブロックリスト上の最初のブロック(第1のブロック)を要求するために、各クライアントデバイス上のピアツーピア同期モジュール250が始動される(各クライアントデバイス100からの2つの要求は同時には発生しないが、要求時刻の差分が1つのブロックについてのダウンロード時間よりも十分に長いため、2つの要求は、それらが同時に発生したかのように取り扱うことができる。)。明瞭に、当該クライアントデバイスのいずれもがブロック1を有していなければ、全ての要求が否定される。
[0056]図5Bは、2つのピアデバイスのいずれもがブロック1の配置に失敗し、クライアントデバイス100はコンテンツ管理システム110からの最初のブロックを要求することを示す。
[0057]図5Cは、最初のステップの繰り返しであり、最初のブロックのダウンロードが完了した後に、各クライアントデバイス100上のピアツーピア同期モジュール250が他のピアデバイスのそれぞれからのブロック2を要求する。クライアントデバイスのそれぞれは同じブロックリストの順序を有しているため、他のクライアントデバイスの何れもがダウンロードしたブロック2を有していない。
[0058]図5Dは、3つのクライアントデバイスの全てが、ピアデバイスからの2番目のブロック(第2のブロック)を受信できないため、コンテンツ管理システムからの2番目のブロックを要求する必要があることを示す。
[0059]図6A乃至図6Dは、図5A乃至図5Dと同様のシナリオを示すが、ブロックリストがランダム化されている。図6Aは、クライアントデバイスがいずれのブロックも有していない場合の最初のステップを示す。これは、多くの同じ方法を展開し、3つのクライアントデバイスの全てが図6Bに示されるように、コンテンツ管理システム110からの最初の要求ブロックを要求しなければならない。
[0060]図6Cにおいて、コンテンツ管理システム110から、クライアントデバイス100Aはブロック4をダウンロードし、クライアントデバイス100Bはブロック2をダウンロードし、クライアントデバイス100Cはブロック1をダウンロードする。各クライアントデバイスにおけるピアツーピア同期モジュール250はその後、ブロックリストの次のブロックに続く。クライアントデバイス100Aに関し、ブロック2はブロックリストの2番目のブロックであり、クライアントデバイス100Bがコンテンツ管理システム110からブロック2を既にダウンロードしているため、当該要求は成功する。ブロック2はクライアントデバイス100Bからクライアントデバイス100Aへ転送され、これにより、コンテンツ管理システムへの要求を防ぎ、WANのサーバによって提供されるよりも速いダウンロードを提供することができる。同様に、クライアントデバイス100Cはまた、ブロック4についてより効率的なピアツーピア転送を受信することができる。残念ながら、クライアントデバイス100Bはそのブロックリストの2番目のブロック3についてソースを発見できない。図6Dは、ランダム化ブロックリストの要求を示す。全てのブロックリストが互いに異なって順位付けされることを保証することによって、クライアントデバイス100は同じネットワーク内のピアデバイスとの間で要求が成功する可能性が高いため、ピアツーピア同期システムの効率化を改善する。これは、同時刻に多くのデバイスがコンテンツアイテムを要求する状況で、或いは、1つのデバイスが直近に当該LAN上のネームスペースに参加している状況で特に有用である。
[0061]図7は、一実施形態に係る、コンテンツアイテムのランダム化ピアツーピア同期の方法のフローチャートである。まず、700で、クライアントデバイス100は、ネームスペースと関連付けられる、1以上の同期コンテンツアイテムを格納する。その後、ピアツーピア同期モジュール250は、クライアントデバイス100がLAN上で通信を行うかを判定する。710で、ピアツーピア同期モジュール250は、クライアントアプリケーション102がインストールされた、当該LAN上の他のクライアントデバイスから複数のブロードキャストを受信する。各クライアントデバイスのピアツーピア同期モジュール250はその後、クライアントデバイス100と同じネームスペースに関連付けられるブロードキャストするクライアントデバイスを識別する。ピアツーピア同期モジュール250はその後、最初のクライアントデバイス100とネームスペースを共有する識別したクライアントデバイスのランダム化したサブセットを選択し、720で、選択したクライアントデバイスのそれぞれと接続する。いくつかの実施形態において、ランダム化は、好ましい過去のネットワーク特性を有するデバイスの方に重み付けされる。次に、730で、新たなコンテンツアイテムが当該ネームスペースで同期されたことを示すコンテンツ管理システム110からの通知を受信すると、740で、ピアツーピア同期モジュール250は、接続デバイスのサブセットへ要求を送信する。いくつかの実施形態において、各要求は、コンテンツアイテムの単一のブロックについての要求である。他の実施形態において、当該要求はブロックリストの全体を含む。各要求は、ランダム化された順序で接続デバイスのサブセットのそれぞれへ送信されてもよい。ランダム化された順序は、好ましい現在のネットワーク特性を有する接続デバイスへ要求を送信するように重み付けされうる。要求されるブロック(又は、ブロックリストのブロック)の順序もまたランダム化される。いくつかの実施形態において、アプリケーションが全てのブロックがクライアントデバイス100上に格納される前にコンテンツアイテムを開くことを可能とするように、あるブロックについてはそれらのオリジナルの位置を維持する。接続デバイスのサブセットのいずれもが要求ブロックの同期バージョンを有していない(又は、ブロックリストの要求ブロックの全てを有していない)との判定に応じて、760で、コンテンツ管理システム110からの最初の要求ブロックをダウンロードする(コンテンツ管理システム110から当該ブロックリストの利用可能でないブロックをダウンロードする。)。要求が個々のブロックについてのものである場合、当該ブロックリストの2番目のブロックがその後、接続クライアントデバイスのサブセットに送信される。接続クライアントデバイスのサブセットの1つが最初のブロック(又は、当該ブロックリストのいくつかのブロック)を有する場合、770で、クライアントデバイスは、2番目のブロック(又は、異なるコンテンツアイテムの新たなブロックリスト)についての要求を送信する前に、最初のブロック(又は、当該ブロックリストの一致するブロック)を当該クライアントデバイスへダウンロードする。
[0062]本発明の実施形態に係る前述の説明は、説明の目的で提示されており;本発明を網羅する又はここで開示される同一の形態に限定することを意図していない。当業者であれば、上記開示に照らして種々の変更及び変形が可能であることを理解することができる。
[0063]明細書において使用された言葉は主に可読性及び説明の目的のために選択されたものであり、本発明の主題の輪郭を描いたり制限を加えたりするために選択されたものではない。従って、本発明の範囲は、この詳細な説明によって限定されるのではなく、ここでの記載に基づく本出願で公表される任意の請求項によって限定されることが意図される。従って、本発明の実施形態の開示は説明のためを意図したものであって、以下の請求項において明らかにされる本発明の範囲を限定するものではない。

Claims (18)

  1. ローカルエリアネットワーク(LAN)上で通信し、かつ、前記LAN以外のネットワーク上にあるコンテンツ管理システムと通信する、複数のクライアントデバイスの第1のクライアントデバイスによって実行されると、該第1のクライアントデバイスに動作を実行させる命令を含む、コンピュータで読取可能なプログラムであって、前記動作は、
    前記コンテンツ管理システムから、前記第1のクライアントデバイスがコンテンツアイテムを同期することを示す同期通知を受信することを含み、前記コンテンツアイテムは複数のブロックを含み、前記同期は、
    ランダム化されたブロックリストの第1のブロックを、前記LAN上で通信を行う前記複数のクライアントデバイスから要求することであって、前記ランダム化されたブロックリストは前記複数のブロックのランダム化された順序を特定する、ことと、
    前記複数のクライアントデバイスの第2のクライアントデバイスが、前記ランダム化されたブロックリストで識別される前記要求された第1のブロックのコピーを有することを前記要求から判定することに応じて、前記第2のクライアントデバイスから前記第1のブロックをダウンロードすることと、
    前記複数のクライアントデバイスの第3のクライアントデバイスから前記第1のブロックの要求を受信することに応じて、前記第1のブロックを前記第3のクライアントデバイスへ送信することであって、前記第3のクライアントデバイスは前記複数のブロックの第2のランダム化された順序を特定する第2のランダム化されたブロックリストを含み、かつ、前記第2のランダム化されたブロックリスト内の前記第1のブロックに先行するブロックをダウンロードすることに応じて前記第1のブロックを要求するように構成される、ことと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  2. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記複数のクライアントデバイスのいずれもが前記要求された第1のブロックのコピーを有していないと前記要求から判定することに応じて、前記コンテンツ管理システムから前記要求された第1のブロックをダウンロードすることをさらに含むことを特徴とするコンピュータで読取可能なプログラム。
  3. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記コンテンツアイテムと、前記第1のクライアントデバイスとは、ネームスペースで関連付けられていることを特徴とするコンピュータで読取可能なプログラム。
  4. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記LAN上で通信を行う前記複数のクライアントデバイスから前記ブロックリストの第1のブロックを要求することは、
    前記LAN上で通信を行う1以上のクライアントデバイスのブロードキャストを受信することであって、各ブロードキャストは前記ブロードキャストするクライアントデバイスと関連付けられる1以上のネームスペースを識別する、ことと、
    前記受信されたブロードキャストから、前記第1のクライアントデバイスと関連付けられるネームスペースをブロードキャストする1以上のブロードキャストするクライアントデバイスのグループを識別することと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  5. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    同期を行うことは、さらに、
    前記LAN上で通信も行う1以上のクライアントデバイスのいずれもが前記第1のブロックのコピーを有していないとの判定に応じて、
    前記コンテンツ管理システムから前記第1のブロックをダウンロードすることと、
    前記LAN上で通信も行う1以上のクライアントデバイスのうちの第4のクライアントデバイスが前記ブロックリストで識別される第2のブロックのコピーを有しているとの判定に応じて、前記第4のクライアントデバイスから前記第2のブロックをダウンロードすることと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  6. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記LAN上で通信も行う1以上のクライアントデバイスのうちの前記第2のクライアントデバイスが前記ブロックリストで識別される前記第1のブロックのコピーを有しているかを判定することと、前記第2のクライアントデバイスから前記第1のブロックをダウンロードすることとは、さらに、
    前記第2のクライアントデバイスへ要求を送信することであって、該要求は前記ランダム化されたブロックリストを含む、ことと、
    前記ランダム化されたブロックリストの前記順序で前記第2のクライアントデバイス上に格納される前記ランダム化されたブロックリストからブロックをダウンロードすることと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  7. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記第1のクライアントデバイスが実行する動作は、さらに、
    前記LANのネットワーク特性に基づき、前記LAN上で通信を行う1以上のクライアントデバイスから前記第2のクライアントデバイスを選択することと、
    前記第2のクライアントデバイスへ要求を送信することであって、該要求は前記第1のブロックを要求する、ことと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  8. ローカルエリアネットワーク(LAN)上で通信し、かつ、前記LAN以外のネットワーク上にあるコンテンツ管理システムと通信する、複数のクライアントデバイスの第1のクライアントデバイスによって実行されると、該第1のクライアントデバイスに動作を実行させる命令を格納する、コンピュータで読取可能なプログラムであって、前記動作は、
    前記コンテンツ管理システムから、前記第1のクライアントデバイスがコンテンツアイテムを同期することを示す同期通知を受信することを含み、前記コンテンツアイテムは複数のブロックを含み、前記同期は、
    ランダム化されたブロックリストの第1のブロックを、前記LAN上で通信を行う前記複数のクライアントデバイスから要求することであって、前記ランダム化されたブロックリストは前記複数のブロックのランダム化された順序を特定する、ことと、
    前記要求された第1のブロックをダウンロードすることと、
    前記コンテンツアイテムにアクセスすることを認証された前記LAN上の第2のクライアントデバイスから、前記第1のブロックの要求を受信することに応じて、前記第1のブロックを前記第2のクライアントデバイスへ送信することであって、前記第2のクライアントデバイスは前記複数のブロックの第2のランダム化された順序を特定する第2のランダム化されたブロックリストを含み、かつ、前記第2のランダム化されたブロックリスト内の前記第1のブロックに先行するブロックをダウンロードすることに応じて前記第1のブロックを要求するように構成される、ことと
    を含むことを特徴とするコンピュータで読取可能なプログラム。
  9. 請求項8に記載のコンピュータで読取可能なプログラムであって、
    前記コンテンツアイテムと、前記第1のクライアントデバイスとは、同じネームスペースで関連付けられていることを特徴とするコンピュータで読取可能なプログラム。
  10. 請求項8に記載のコンピュータで読取可能なプログラムであって、
    前記第1のブロックをダウンロードすることは、さらに、
    前記コンテンツ管理システムから前記ブロックをダウンロードすることを含むことを特徴とするコンピュータで読取可能なプログラム。
  11. 請求項8に記載のコンピュータで読取可能なプログラムであって、
    前記ブロックリストで特定される前記第1のブロックをダウンロードすることは、さらに、
    前記第2のクライアントデバイスとは異なる、前記LAN上で通信を行う第3のクライアントデバイスから前記ブロックをダウンロードすることをさらに含むことを特徴とするコンピュータで読取可能なプログラム。
  12. 命令を格納するコンピュータで読取可能なプログラムであって、コンテンツ管理システムによって実行されると、該コンテンツ管理システムに動作を実行させ、前記動作は、
    ネームスペースのコンテンツアイテムに関連付けられる同期通知を、第1のクライアントデバイスと、第2のクライアントデバイスとへ送信することであって、前記コンテンツアイテムは複数のブロックを含み、前記第1のクライアントデバイスと前記第2のクライアントデバイスとは同じネームスペースと同じローカルエリアネットワーク(LAN)とに関連付けられる、ことと、
    前記第1のクライアントデバイスから第1の同期要求を受信することに応じて、第1のブロックを前記第1のクライアントデバイスへ送信することであって、前記第1の同期要求は前記複数のブロックの第1のランダム化された順序から前記第1のブロックを特定する、ことと、を含み、
    前記第1のクライアントデバイスは、前記第2のクライアントデバイスから前記第1のブロックの要求を受信することに応じて、前記第1のブロックを前記第2のクライアントデバイスへ送信するように構成され、前記第2のクライアントデバイスは、前記複数のブロックの第2のランダム化された順序を含み、かつ、前記第2のランダム化された順序内の前記第1のブロックに先行するブロックをダウンロードすることに応じて前記第1のブロックを要求するように構成されることを特徴とするコンピュータで読取可能なプログラム。
  13. 請求項12に記載のコンピュータで読取可能なプログラムであって、
    前記第1のランダム化された順序は、前記第2のランダム化された順序とは異なることを特徴とするコンピュータで読取可能なプログラム。
  14. 請求項13に記載のコンピュータで読取可能なプログラムであって、
    前記第1のブロックは、第2のブロックとは異なることを特徴とするコンピュータで読取可能なプログラム。
  15. 請求項12に記載のコンピュータで読取可能なプログラムであって、
    前記同期通知を送信することは、第3のクライアントデバイスが前記同じネームスペースへ前記コンテンツアイテムを追加することに応じて行われることを特徴とするコンピュータで読取可能なプログラム。
  16. 請求項12に記載のコンピュータで読取可能なプログラムであって、
    前記同期通知を送信することは、第3のクライアントデバイスが前記コンテンツアイテムを変更することに応じて行われることを特徴とするコンピュータで読取可能なプログラム。
  17. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記ランダム化されたブロックリストと、前記第2のランダム化されたブロックリストは、前記コンテンツ管理システムによって生成されることを特徴とするコンピュータで読取可能なプログラム。
  18. 請求項1に記載のコンピュータで読取可能なプログラムであって、
    前記第1のブロックの前記要求は、前記ランダム化されたブロックリストを含むことを特徴とするコンピュータで読取可能なプログラム。
JP2019050131A 2015-12-31 2019-03-18 共有コンテンツアイテムのランダム化ピアツーピア同期 Active JP6574914B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/985,974 US9479578B1 (en) 2015-12-31 2015-12-31 Randomized peer-to-peer synchronization of shared content items
US14/985,974 2015-12-31
US15/294,641 2016-10-14
US15/294,641 US10021184B2 (en) 2015-12-31 2016-10-14 Randomized peer-to-peer synchronization of shared content items

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018516411A Division JP6500166B2 (ja) 2015-12-31 2016-10-24 共有コンテンツアイテムのランダム化ピアツーピア同期

Publications (2)

Publication Number Publication Date
JP2019149170A JP2019149170A (ja) 2019-09-05
JP6574914B2 true JP6574914B2 (ja) 2019-09-11

Family

ID=57233802

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018516411A Active JP6500166B2 (ja) 2015-12-31 2016-10-24 共有コンテンツアイテムのランダム化ピアツーピア同期
JP2019050131A Active JP6574914B2 (ja) 2015-12-31 2019-03-18 共有コンテンツアイテムのランダム化ピアツーピア同期

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018516411A Active JP6500166B2 (ja) 2015-12-31 2016-10-24 共有コンテンツアイテムのランダム化ピアツーピア同期

Country Status (5)

Country Link
US (2) US10021184B2 (ja)
EP (1) EP3369008B1 (ja)
JP (2) JP6500166B2 (ja)
AU (1) AU2016381231B9 (ja)
WO (1) WO2017115164A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749949B2 (en) * 2018-11-19 2020-08-18 Palo Alto Research Center Incorporated Dynamic content distribution protocol for an enterprise environment
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
US11272006B2 (en) * 2020-06-03 2022-03-08 EMC IP Holding Company LLC Intelligently distributing retrieval of recovery data amongst peer-based and cloud-based storage sources
US20220312060A1 (en) * 2021-03-27 2022-09-29 Jio Platforms Limited System and method of facilitating peer to peer distribution network using set top boxes

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887167A (en) 1995-11-03 1999-03-23 Apple Computer, Inc. Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
US6424988B2 (en) * 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US10326798B2 (en) * 1998-07-16 2019-06-18 Grid7, LLC System and method for secure data transmission and storage
US6553409B1 (en) * 1999-07-09 2003-04-22 Microsoft Corporation Background cache synchronization
US20020065946A1 (en) 2000-10-17 2002-05-30 Shankar Narayan Synchronized computing with internet widgets
US20060041620A1 (en) * 2001-07-05 2006-02-23 Nandhra Ian R Method and system for co-joining computational spacecells in a networked environment
JP4088749B2 (ja) 2001-11-09 2008-05-21 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム
US8914429B2 (en) 2002-02-08 2014-12-16 Willaim Pitts Method for creating global distributed namespace
US7551629B2 (en) 2002-03-28 2009-06-23 Precache, Inc. Method and apparatus for propagating content filters for a publish-subscribe network
JP4409874B2 (ja) * 2002-07-02 2010-02-03 株式会社ソニー・ディスクアンドデジタルソリューションズ データ送信装置および方法、データ受信装置および方法、ならびに、データ分散システムおよび方法
US8311980B2 (en) 2002-12-09 2012-11-13 Hewlett-Packard Development Company, L.P. Namespace consistency for a wide-area file system
GB0303192D0 (en) 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
EP1606736B1 (en) 2003-03-24 2010-04-21 BRITISH TELECOMMUNICATIONS public limited company Announcement method in a publish-subscribe architecture
US7567987B2 (en) * 2003-10-24 2009-07-28 Microsoft Corporation File sharing in P2P group shared spaces
US7676481B2 (en) 2005-02-24 2010-03-09 Microsoft Corporation Serialization of file system item(s) and associated entity(ies)
EP1860649B8 (en) * 2005-02-24 2011-10-05 Panasonic Corporation Data reproduction device
US20060265508A1 (en) * 2005-05-02 2006-11-23 Angel Franklin J System for administering a multiplicity of namespaces containing state information and services
EP1802079B1 (en) 2005-12-22 2010-03-31 Microsoft Corporation Connection management in peer-to-peer content distribution clouds
US7640247B2 (en) * 2006-02-06 2009-12-29 Microsoft Corporation Distributed namespace aggregation
US7653761B2 (en) * 2006-03-15 2010-01-26 Microsoft Corporation Automatic delivery of personalized content to a portable media player with feedback
JP2007265341A (ja) * 2006-03-30 2007-10-11 Sony Corp コンテンツ利用方法、コンテンツ利用装置、コンテンツ記録方法、コンテンツ記録装置、コンテンツ提供システム、コンテンツ受信方法、コンテンツ受信装置およびコンテンツデータフォーマット
EP2014097A4 (en) 2006-05-03 2010-07-14 Ericsson Telefon Ab L M METHOD AND DEVICE FOR RECOVERING MEDIA FROM A MEDIA PRESENTATION
US8341397B2 (en) * 2006-06-26 2012-12-25 Mlr, Llc Security system for handheld wireless devices using-time variable encryption keys
US20090300673A1 (en) 2006-07-24 2009-12-03 Nds Limited Peer- to- peer set-top box system
US20080059656A1 (en) * 2006-08-31 2008-03-06 Saliba Bassam A Content synchronization among associated computing devices
US8775562B2 (en) 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
WO2008109889A1 (en) * 2007-03-08 2008-09-12 Slacker, Inc. System and method for personalizing playback content through interaction with a playback device
WO2008112944A1 (en) * 2007-03-14 2008-09-18 Samuel Pierce Baron Interaction in a virtual social environment
CN101026543A (zh) * 2007-03-28 2007-08-29 华为技术有限公司 点到点p2p内容共享的方法及系统
US8606846B2 (en) * 2007-10-15 2013-12-10 Nbcuniversal Media, Llc Accelerating peer-to-peer content distribution
WO2009114111A2 (en) * 2008-03-12 2009-09-17 Packetvideo Corp. System and method for reformatting digital broadcast multimedia for a mobile device
WO2009134772A2 (en) 2008-04-29 2009-11-05 Maxiscale, Inc Peer-to-peer redundant file server system and methods
US8122037B2 (en) * 2008-05-12 2012-02-21 Research In Motion Limited Auto-selection of media files
US8359643B2 (en) * 2008-09-18 2013-01-22 Apple Inc. Group formation using anonymous broadcast information
US20100094958A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Systems and methods for aggregating erasure-coded fragments
US20100185769A1 (en) 2009-01-16 2010-07-22 Amlogic Co., Ltd. Methods for Downloading a File to Consumer Electronic Devices via a Peer-to-peer Network
WO2010094561A2 (en) * 2009-02-17 2010-08-26 Thomson Licensing Method for providing incentive mechanisms for out-of-order download in communication networks dedicated to the distribution of video-on-demand content
US8280958B2 (en) 2009-07-13 2012-10-02 International Business Machines Corporation List passing in a background file sharing network
EP2467991B1 (en) * 2009-08-19 2018-06-13 Thomson Licensing Targeted advertising in a peer-to-peer network
US8949436B2 (en) 2009-12-18 2015-02-03 Alcatel Lucent System and method for controlling peer-to-peer connections
IT1397440B1 (it) 2009-12-30 2013-01-10 St Microelectronics Srl Procedimento e sistemi per la distribuzione di contenuti mediali e relativo prodotto informatico
US8483196B2 (en) * 2010-03-12 2013-07-09 Qualcomm Incorporated Methods and apparatus for supporting synchronization between groups of devices
US20120036263A1 (en) * 2010-05-21 2012-02-09 Open Subnet Inc. System and Method for Monitoring and Controlling Access to Web Content
US8560646B1 (en) 2010-09-28 2013-10-15 Amazon Technologies, Inc. Managing communications using alternative packet addressing
US8612386B2 (en) * 2011-02-11 2013-12-17 Alcatel Lucent Method and apparatus for peer-to-peer database synchronization in dynamic networks
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
US20130007218A1 (en) 2011-06-28 2013-01-03 Cisco Technology, Inc. Network Assisted Tracker for Better P2P Traffic Management
ITVI20120026A1 (it) 2012-01-27 2013-07-28 St Microelectronics Srl Metodi per la condivisione di files relativi al protocollo bit fountain
US9485794B2 (en) * 2012-05-23 2016-11-01 Qualcomm Incorporated Methods and apparatus for using device to device communications to support IMS based services
US8874908B2 (en) * 2012-11-07 2014-10-28 Wolfgang Raudaschl Process for storing data on a central server
US20140143553A1 (en) * 2012-11-20 2014-05-22 Cloudioh Inc. Method and Apparatus for Encapsulating and Encrypting Files in Computer Device
US8838681B2 (en) * 2012-12-21 2014-09-16 Dropbox, Inc. Systems and methods for adding digital content to content management service accounts
US9706237B2 (en) * 2013-03-12 2017-07-11 Time Warner Cable Enterprises Llc TV playlist
US9917886B2 (en) 2013-03-22 2018-03-13 Stmicroelectronics S.R.L. Method for distributing information contents, corresponding device and computer program product
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
JP6167879B2 (ja) * 2013-12-04 2017-07-26 富士ゼロックス株式会社 印刷システム、情報処理装置、プログラム
US9509747B2 (en) * 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
US9641488B2 (en) * 2014-02-28 2017-05-02 Dropbox, Inc. Advanced security protocol for broadcasting and synchronizing shared folders over local area network
US9898520B2 (en) * 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US20150312331A1 (en) * 2014-04-25 2015-10-29 Shinkuro, Inc. System and Method for Group Collaboration Using a Distributed Network File Repository
US20150347515A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Rule-based, preemptive download of digital media assets
US9928297B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Sample grouping signaling in file formats
US9665446B1 (en) * 2015-12-29 2017-05-30 International Business Machines Corporation Fully distributed intelligent rebuild

Also Published As

Publication number Publication date
JP2019149170A (ja) 2019-09-05
US20170195416A1 (en) 2017-07-06
JP2019502182A (ja) 2019-01-24
WO2017115164A1 (en) 2017-07-06
AU2016381231A9 (en) 2018-10-25
US10257272B2 (en) 2019-04-09
AU2016381231B9 (en) 2018-11-08
AU2016381231B2 (en) 2018-05-31
EP3369008B1 (en) 2020-07-15
EP3369008A1 (en) 2018-09-05
US10021184B2 (en) 2018-07-10
JP6500166B2 (ja) 2019-04-10
US20180302470A1 (en) 2018-10-18
AU2016381231A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
JP6574914B2 (ja) 共有コンテンツアイテムのランダム化ピアツーピア同期
US9479578B1 (en) Randomized peer-to-peer synchronization of shared content items
KR101752928B1 (ko) 객체 저장부들의 네트워크상의 스웜-기반의 동기화
EP1672490B1 (en) Method and system for downloading updates
US9697225B2 (en) Method for synchronizing file
US20160182494A1 (en) Distributed device management and directory resolution
US8019830B2 (en) Methods and apparatus for acquiring file segments
US20080154851A1 (en) Method and apparatus for sharing files over a network
US10701143B1 (en) Server-orchestrated peer-to-peer content sharing in CMS and sync-n-share applications
EP2852093B1 (en) Method, system, and device for sharing documents
US9438666B2 (en) Method and system for resource download
CN105830419A (zh) 优先化对象通过网络的传播的对等网络
US10331637B2 (en) Apparatus and method for transmitting and receiving files in general purpose device
KR101600717B1 (ko) P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치
CN114731297B (zh) 用于计算设备对等方匹配的消息限制的自组织网络组
US20100036935A1 (en) Method for reacting to the broadcast of a file in a p2p network
US20030076786A1 (en) Peer to peer network
KR100824030B1 (ko) 파일 전송 시스템과 그 전송 방법 및 이를 기록한 기록매체
CN117749816A (zh) 基于集合状态的数据信息同步方法及装置
US20170206220A1 (en) Method and apparatus for unified data access across networked computers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190426

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190426

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190819

R150 Certificate of patent or registration of utility model

Ref document number: 6574914

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250