JP6674532B2 - 複数構内でのデジタルコンテンツアイテムのホスティングにおけるコンテンツアイテムブロック複製プロトコル - Google Patents

複数構内でのデジタルコンテンツアイテムのホスティングにおけるコンテンツアイテムブロック複製プロトコル Download PDF

Info

Publication number
JP6674532B2
JP6674532B2 JP2018504710A JP2018504710A JP6674532B2 JP 6674532 B2 JP6674532 B2 JP 6674532B2 JP 2018504710 A JP2018504710 A JP 2018504710A JP 2018504710 A JP2018504710 A JP 2018504710A JP 6674532 B2 JP6674532 B2 JP 6674532B2
Authority
JP
Japan
Prior art keywords
content item
server
block
block server
premises
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
JP2018504710A
Other languages
English (en)
Other versions
JP2019506644A (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
Application filed by ドロップボックス, インコーポレイテッド, ドロップボックス, インコーポレイテッド filed Critical ドロップボックス, インコーポレイテッド
Publication of JP2019506644A publication Critical patent/JP2019506644A/ja
Application granted granted Critical
Publication of JP6674532B2 publication Critical patent/JP6674532B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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/172Caching, prefetching or hoarding of files
    • 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/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/196Integration of transport layer protocols, e.g. TCP and UDP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/457Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Description

[0001]本出願は、デジタルコンテンツアイテムの管理に関するものである。より詳細には、本発明の実施形態は、オンラインコンテンツ管理サービスでホスト(host)されるデジタルコンテンツアイテムの管理に関して以下で説明される。
[0002]従来、企業において、それらのデジタルコンテンツアイテム(例えば、ドキュメント、ファイル、及び他のデジタル情報)は、自身で所有し運用するネットワークファイルサーバ上に格納されている。そのようなファイルサーバは従来、ファイルサーバへの未認証のネットワークアクセスを防ぐネットワークファイアウォール内の構内に配置される。この配置は、とりわけファイルサーバへのネットワークアクセスが、例えばファイルサーバと同一のローカルエリアネットワーク(LAN)へ接続されるようなネットワークファイアウォール内のコンピュータによる場合に上手く作用する。場合によっては、ファイアウォール外部からのファイルサーバへのネットワークアクセス(例えば、インターネットを介した)は、仮想プライベートネットワーク(VPN)によって容易になる。VPNは実際、ファイアウォール外部のコンピュータがファイアウォール内に存在するかのようにファイルサーバに見える。
[0003]しかし、今日では、労働力はよりグローバル化し、よりモバイル化している。これは、ブロードバンドインターネット接続の広範囲での利用と、また比較的に安価で強力な例えばモバイルフォン、ラップトップコンピュータ及びタブレットコンピュータなどの携帯型パーソナルコンピューティングデバイスの利用により、大いに加速している。結果として、従業員は事実上どこでも働くことができ、彼らの仕事を行うオフィスに物理的に存在する必要はない(例えば、彼らは遠隔で働くことができる)。
[0004]最近、オンラインコンテンツ管理サービスは、コンテンツアイテムを、インターネット又は他のネットワークでアクセス可能な”オンライン”で格納することについて利用可能となっている。企業では、サービスにより運用されるサーバ上でそれらのコンテンツアイテムを”ホスト”するのにオンラインコンテンツ管理サービスを使用することができる。オンラインコンテンツ管理サービスの例には、カリフォルニア州、サンフランシスコのDropbox, Inc.により提供されている”Dropbox”サービスがある。
[0005]コンテンツアイテムのオンラインストレージは企業やそれらの従業員に対して同様に多くの利益をもたらすことができる。例えば、Dropboxは、同期の能力をオファーし、複数のデバイス及びユーザの中で、ホストされるコンテンツアイテムを共有する。この柔軟性は、エンドユーザデバイスとDropboxサーバの両方でコンテンツアイテムを保存することに起因し、種々の異なる場所で、かつ、遠隔の勤務形態をサポートし、従業員への利便性と、雇用者に対する向上した従業員生産性とを提供する。
[0006]企業によって生成されるデジタル情報量が増加することを考えると、オンラインコンテンツ管理サービスを利用している企業によるコンテンツアイテムのホスティングは増加するのみと予想されうる。しかしながら、いくつかのホストされる情報の機密性に起因して、ビジネスユーザを含むそのようなサービスのユーザは、サービスによりホストするコンテンツアイテムに対するより大きなレベルの制御を提供するサービスへの改善を評価するであろう。さらに、ブロードバンドインターネット接続が今日の企業間で広がっており、インターネットを介してコンテンツアイテムをアップロードすることやダウンロードすることはユーザが期待又は望むよりもまだ時間の掛かるものである。
[0007]ここで説明した上記アプローチは、さらに追及しうるアプローチであって、既に着想され、追及されたアプローチではない。したがって、特に示唆しない限り、ここで説明した任意のアプローチが、ここに組み込まれることにより単に先行技術として認識されることが想定されるべきではない。
[0008]本発明の例示の実施形態が、限定するのではなく一例として説明され、添付図面の各図において、同様の参照番号は同様の要素を示す。
[0009]図1は、本発明のいくつかの実施形態が実装される、例示のシステム環境のブロック図である。 [0010]図2は、本発明のいくつかの実施形態が実装される、例示のシステム環境のブロック図である。 [0011]図3は、本発明のいくつかの実施形態に係る、コンテンツアイテムブロックの複製メタデータのブロック図である。 [0012]図4は、本発明のいくつかの実施形態に係る、コンテンツアイテムサーバジャーナルのブロック図である。 [0013]図5は、本発明のいくつかの実施形態に係る、コンテンツアイテムブロックの複製ログのブロック図である。 [0014]図6は、本発明のいくつかの実施形態に係る、構内のブロックサーバへコンテンツアイテムブロックの複製タスクを提供するための処理のフローチャートである。 [0015]図7A乃至図7Cは、本発明のいくつかの実施形態に係る、構内ブロックサーバに格納される複製ログで特定される複製タスクの処理において、構内ブロックサーバでのブロックエージェントの動作を示す単一のフローチャートである。 [0016]図8は、本発明のいくつかの実施形態を具現化しうるコンピューティングデバイスのごく一般的なブロック図を示す。 [0017]図9は、コンピューティングデバイスの動作を制御するための基本的なソフトウェアシステムのブロック図である。
[0018]以下の詳細な説明において、本発明の実施形態の十分な理解を提供するために、説明の目的で多くの特定事例を記載する。しかしながら、本例示の実施形態がそれらの特定事例なしで実行されうるということが明らかであろう。他の例では、本例示の実施形態を不必要に不明りょうにすることを避けるために、既知の構成やデバイスがブロック図の形式で示される。
[0019]本例示の実施形態を以下の概要に従って説明する。
1.0 実施例
2.0 例示のシステム環境
3.0 コンテンツアイテムブロックの複製
3.1 複製メタデータ
3.2 サーバジャーナル
3.3 複製ログ
3.4 複製タスクの提供
3.5 複製タスクの処理
4.0 コンテンツアイテムブロックの削除
5.0 割り当ての際のコンテンツアイテムブロックの複製
6.0 ベーシックコンピューティングハードウェア及びソフトウェア
6.1 ベーシックコンピューティングデバイス
6.2 ベーシックソフトウェアシステム
7.0 拡張及び代替例。
<1.0 実施例>
[0020]本発明の例示の実施形態は、オンラインコンテンツ管理サービスのユーザに対して、彼らのコンテンツアイテムがそのようなサービスでホストされる、より詳細な制御を提供する。以下では、多くのコンピュータで実施する処理及びインターネットインタラクションについて説明する。それらの処理及びネットワークインタラクションを説明するために、いくつかの例示のユーザを紹介する。本例示は、本発明のいくつかの実施形態の特徴を説明するために使用され、本発明のいくつかの実施形態の所定の特徴を説明するために使用される。本例示は、限定することを意図しておらず、単に説明のために提供されるものである。
[0021]第1の例示のユーザは、”Corporation Alpha”として参照される。第1例として、Corporation Alphaは、彼らのワークコンピュータに格納されるコンテンツアイテムを、当該サービスによって運用されるインターネット上のサーバに格納されるコンテンツアイテムと同期するオンラインコンテンツ管理サービスを使用する多くの従業員を有している。Corporation Alphaでは、コンテンツアイテムが彼らのワークコンピュータに格納されるため、従業員は、彼らのワークコンピュータがインターネットへ接続していない場合でもコンテンツアイテムへのアクセスを有することが好まれている。同時に、Corporation Alphaではまた、コンテンツアイテムがバックアップと共有目的でオンラインコンテンツ管理サービスのサーバに同期されることが好まれている。Corporation Alphaはまた、可能な場合、従業員のワークコンピュータ間でコンテンツアイテムの変更を同期するために必要とする時間を低減することを望んでいる。
[0022]第2例として、Corporation Alphaの従業員は地理的に分散してもよい。例えば、Corporation Alphaの本部は、サンフランシスコにあってもよいが、ニューヨーク、オースティン、及びシアトルのサテライトオフィスを有してもよい。Corporation Alpha内のチームはまた、地理的に分散してもよい。例えば、サンフランシスコの従業員とオースティンのオフィスとがプロジェクトを共に協働して行ってもよい。Corporation Alphaは、チームが協働するコンテンツアイテムへの変更がサンフランシスコとオースティンのオフィスのコンピュータ間で素早く同期されることを望むであろう。
[0023]第3の例として、サンフランシスコとオースティンのCorporation Alphaの従業員が協働して行うプロジェクトが非常に機密性(例えば、コンフィデンシャル)の高いものであってもよい。この場合、Corporation Alphaは、プロジェクトに関連付けられるコンテンツアイテム上でより高い制御と監視を維持することを望んでもよい。例えば、Corporation Alphaは、プロジェクトのコンテンツアイテムが構内にのみ格納され、オンラインコンテンツ管理サービスによって運用されるサーバ上には格納されないことを望んでもよい。
[0024]本発明の特徴を利用すると、Corporation Alphaなどのユーザや他のユーザは、オンラインコンテンツ管理サービスによって管理されるコンテンツアイテムがどこでホストされるかを制御することができる。特に、例示の実施形態は、ユーザが、彼らのコンテンツアイテムを構内でのみ、構外でのみ、又は、構内及び構内の両方でホストすることを許容する。構内でコンテンツアイテムをホストする場合、ユーザは彼ら自身のストレージハードウェアを使用することができる(いくつかの例示の実施形態では構内でのコンテンツアイテムのストレージハードウェアを提供するオンラインコンテンツ管理サービスを含むが)。例示の実施形態は、エンドユーザのデバイスが、エンドユーザのデバイスで行われたコンテンツアイテムへの変更を構内のストレージに、構外のストレージに、又は、構内のストレージ及び構外のストレージの両方に、同期することを許容する。例示の実施形態はまた、エンドユーザのデバイスが、他のエンドユーザのデバイスによって行われたコンテンツアイテムへの変更を、構内のストレージから、構外のストレージから、又は、構内のストレージ及び構外のストレージの両方から、同期することを許容する。
[0025]これらの実施例は、本発明のいくつかの実施形態の特徴を説明するために以下の説明の一部と関連して利用される。
<2.0 例示のシステム環境>
[0026]本発明のいくつかの実施形態の特徴について、本発明の例示の実施形態が実施される例示のシステム環境100のブロック図である図1を参照して説明する。図示するように、ユーザ(例えば、102−1)は、パーソナルコンピューティングデバイス(例えば、110−1)を有するか又は使用しうる。パーソナルコンピューティングデバイスは、ローカルストレージ(例えば、112−1)とコンテンツアイテム同期エージェント(例えば、114−1)とを有しうる。パーソナルコンピューティングデバイスのローカルストレージは1以上のコンテンツアイテム113を格納しうる。構内のブロックサーバ120は、ブロックサービス122、ブロックストレージ124、及びブロック管理エージェント126から構成されうる。ブロックストレージ124は複数のコンテンツアイテムブロック125を格納しうる。オンラインコンテンツ管理サービスは制御プレーン、ストレージプレーン、及びデータプレーンから構成されうる。制御プレーンは通知サーバ140、メタデータサーバ150、及びウェブサイト170を含みうる。ストレージプレーンは構内のブロックサーバ130を含みうる。構内のブロックサーバ130は、ブロックサービス132、及びブロックストレージ134から構成されうる。構内のブロックサーバ130のブロックストレージ124は1以上のコンテンツアイテムブロック125を格納しうる。バックエンドデータバスは、サーバ130、140、150、170を含む制御プレーン及びストレージプレーン内で、及び、制御プレーンとストレージプレーンとの間でのデータのネットワーク通信及び移動を容易にする、コンピューティングデバイス、ネットワーク、及びネットワークデバイスの集合から構成されうる。バックエンドデータバスはまた、サーバ130、140、150、170を含む制御プレーン及びストレージプレーンによって、メタデータプレーン180へのアクセスを容易にすることができる。データプレーン180は、データを読み出したり格納したりするための、1以上の揮発性又は不揮発性メモリベースの分散型のデータシステムを含んで構成されうる(例えば、memcache、RDBMS、分散key-valueストアなど)。
[0027]図1の例において、システム環境100は、それぞれパーソナルコンピューティングデバイス110−1及びパーソナルコンピューティングデバイス110−2を含む又は用いるユーザ102−1及びユーザ102−2を含む。パーソナルコンピューティングデバイス110−1は、ローカルストレージ112−1とコンテンツアイテム同期エージェント114−1とを有する。パーソナルコンピューティングデバイス110−2はまた、ローカルストレージ112−2とコンテンツアイテム同期エージェント114−2とを有する。図1において簡潔な説明を提供すべく、システム環境100において二人のユーザ(102−1、102−2)及び2つのパーソナルコンピューティングデバイス(110−1、110−2)のみを示しているが、システム環境100は二人のユーザより多くを含み、及び、それぞれがローカルストレージとコンテンツアイテム同期エージェントを含む二つのパーソナルコンピューティングデバイスより多くを含んでもよいことが理解されるべきである。例えば、システム環境100は、何百、何千、何百万のユーザ、又は何百、何千、何百万のパーソナルコンピューティングデバイスを含んでもよい。さらに、ユーザとパーソナルコンピューティングデバイスが一対一で対応する必要性はない。例えば、単一のパーソナルコンピューティングデバイスが複数のユーザによって使用されてもよく、単一のユーザが複数のパーソナルコンピューティングデバイスを有するか又は使用してもよい。
[0028]本発明のいくつかの例示の実施形態に従って、ユーザ102−1は、パーソナルコンピューティングデバイス110−1のローカルストレージ112−1にコンテンツアイテム113を追加するか又はコンテンツアイテム113を変更するために、パーソナルコンピューティングデバイス110−1を使用することができる。パーソナルコンピューティングデバイス110−1のコンテンツアイテム同期エージェント114−1はその後、ローカルストレージ112−1へのコンテンツアイテム113の追加又は変更を自動的に検出し、構内ブロックサーバ120又は構外ブロックサーバ130へコンテンツアイテム113をアップロードする。いくつかの例示の実施形態によれば、以下でより詳細に説明するように、上記アップロードは、コンテンツアイテム同期プロトコルに従って、コンテンツアイテム同期エージェント114−1とメタデータサーバ150との間のネットワーク通信によって容易に行われる。
[0029]本発明のいくつかの例示の実施形態に従って、他のパーソナルコンピューティングデバイス110−2は、追加又は変更されたコンテンツアイテム113を、パーソナルコンピューティングデバイス112−2のローカルストレージ112−2へ自動的にダウンロードする。最初に、通知サーバ140は、パーソナルコンピューティングデバイス112−2のコンテンツアイテム同期エージェント114−2に対して、コンテンツアイテム113の新たなバージョンが利用可能であることを通知する。その後、コンテンツアイテム同期プロトコルに従って同期エージェント114−2とメタデータサーバ150との間の直接的なネットワーク通信によって、コンテンツアイテム同期エージェント114−2は、構内ブロックサーバ120又は構外ブロックサーバ130からコンテンツアイテム113の新たなバージョンをダウンロードする。ダウンロード後、コンテンツアイテム113の新たなバージョンは、ローカルストレージ112−2においてユーザ102−2に利用可能となる。
[0030]パーソナルコンピューティングデバイス(例えば、110−1又は110−2)は、固定型の又は携帯型のパーソナルコンピューティングデバイスであってもよい。例えば、パーソナルコンピューティングデバイスは、デスクトップコンピュータ、ワークステーションコンピュータ、モバイル電話機、ラップトップコンピュータ、タブレットコンピュータ、又は、他の固定型の若しくは携帯型のパーソナルコンピューティングデバイスであってもよい。パーソナルコンピューティングデバイスは、例えば図8を参照して以下で説明されるベーシックコンピューティングデバイス800などの1以上のベーシックハードウェアコンポーネントを含んで構成されてもよい。パーソナルコンピューティングデバイスはまた、例えば図9を参照して以下で説明されるソフトウェアシステム900などの1以上のベーシックソフトウェアシステムで構成されてもよい。
[0031]ローカルストレージ(例えば、112−1又は112−2)は、物理ホストインタフェース(シリアル接続SCSI、シリアルATA、PCI Express、ファイバーチャネル、USBなど)によってパーソナルコンピューティングデバイス110のバスへ接続される電子、磁気又は光学のデータストレージ機構であってもよい。例えば、データストレージ機構は、パーソナルコンピューティングデバイスのハードディスク、半導体ドライブ、又は光学ドライブであってもよい。代替的に、ローカルストレージは、パーソナルコンピューティングデバイス上に”マウントされた”ローカルエリアネットワーク(LAN)上の例えばネットワークデータストレージデバイスなどのネットワークドライブであってもよい。ネットワークドライブをマウントすることによって、ネットワークドライブに格納されたデータは、ネットワークドライブがデバイスから離れてネットワークを介して物理的に配置される場合であっても、ユーザや、パーソナルコンピューティングデバイスに格納されるパーソナルコンピューティングデバイス上で実行するアプリケーションに見えるようになる。一度マウントされると、パーソナルコンピューティングデバイスは、通常、UNIX用のネットワークファイルシステムプロトコル(NFS)又はWINDOWS用のサーバメッセージブロック(SMB)などのネットワークファイルシステムブロックに従ってネットワークドライブからデータを読み出し、ネットワークドライブへデータを書き込む。
[0032]パーソナルコンピューティングデバイスのローカルストレージはコンテンツアイテム113を格納してもよい。”コンテンツアイテム”はデジタル情報の集合である。ローカルストレージに格納されると、コンテンツアイテムはファイルシステムのファイルに対応しうる。例えば、コンテンツアイテムは、ドキュメントファイル(例えば、ワード処理ドキュメント、プレゼンテーションドキュメント、スプレッドシートドキュメント、又は他のタイプのドキュメント)、画像ファイル(例えば、.jpg、.tiff、.gif、又は他のタイプの画像ファイル)、音声ファイル(例えば、.mp3、.aiff、.mp4、wav、又は他のタイプの音声ファイル)、ビデオファイル(例えば、.mov、.mp4、.m4v、又は他のタイプのビデオファイル)、ウェブページファイル(例えば、.htm、.html、又は他のタイプのウェブページファイル)、テキストファイル又はリッチテキストファイル(例えば、.txt、.rtf、又は他のタイプのテキスト若しくはリッチテキストファイル)、又は他のタイプのファイルであってもよい。ローカルストレージに格納されると、コンテンツアイテムは、ファイルシステムのファイルフォルダ階層内のファイルシステムパスを有しうる。例えば、ローカルストレージに格納されるコンテンツアイテムについてのファイルシステムパスは、文字列として”C:\folder1\folder2\my.file”で表され、ここで、“C:\”は、ファイルシステムのルートを示し、“folder1”はファイルシステムのルートでのファイルシステムフォルダを示し、“folder2”はファイルシステムフォルダ“folder1”内のファイルシステムフォルダを示し、“my.file”はコンテンツアイテムに対応するファイルシステムフォルダ“folder2”内のファイルを示す。文字“\”は、異なるファイルシステムフォルダや文字列表現のファイルリファレンスを描く文字列表現において使用される。
[0033]パーソナルコンピューティングデバイス110−1及び110−2と、構内ブロックサーバ120とは、ローカルエリアネットワーク(LAN)160へ接続されてもよい。例えば、LAN160は、限定はしないが、IEEE802.3又はIEEE802.11ベースのネットワークを含むIEEE802ベースのネットワーク、又は複数のそのようなネットワークの組み合わせであってもよい。LAN160は、ネットワークファイアウォールによってワイドエリアネットワーク(WAN)190から保護されてもよい。一実施形態において、WAN190は、インターネット又は他の公衆ネットワークである。特に、ネットワークファイアウォールは、サーバ130、140、150及び170を含む、WAN190へ接続されるデバイスが、パーソナルコンピューティングデバイス110−1及び110−2と構内ブロックサーバ120とを含む、LAN160へ接続されるデバイスとのネットワーク接続の開始を禁止することができる。しかしながら、ネットワークファイアウォールは、サーバ130、140、150及び170を含む、WAN190へ接続されるデバイスと確立される、パーソナルコンピューティングデバイス110−1及び110−2と、構内ブロックサーバ120とを含む、LAN160へ接続されるデバイスを起点とする所定のタイプのネットワーク接続を許容するように構成されうる。通常、LAN160は、WAN190と比較して、短いネットワーク待ち時間と、広いネットワーク帯域幅とを有するが、所与の実装においてこれが必須である必要はない。
[0034]構内ブロックサーバ120、構外ブロックサーバ130、通知サーバ140、メタデータサーバ150、ウェブサイト170及びメタデータプレーン180の何れか又は全ては、例えば図8を参照して以下で説明するベーシックコンピューティングデバイス800などの1以上のベーシックハードウェアコンポーネントを含んで構成され、かつ、例えば図9を用いて以下で説明するソフトウェアシステム900などのベーシックソフトウェアシステムで構成される、1以上のサーバコンピューティングデバイスによって実装されてもよい。複数のサーバコンピューティングデバイスによって実装される場合、それらのサーバコンピューティングデバイスは、負荷分散型、クラスタ型、または他の分散型のコンピューティング構成で構成されてもよい。
[0035]コンテンツアイテム同期エージェント、ブロックサービス122、ブロックエージェント126、ブロックサービス132、通知サーバ140、メタデータサーバ150、ウェブサイト170、及びメタデータプレーン180のそれぞれについて、ここで説明する機能は、1以上のコンピューティングデバイスによって実行される際に、当該機能を実行するための命令を含む1以上のコンピュータプログラムとして実装されてもよい。しかしながら、当該機能は、ハードウェア(例えば、1以上の特定用途向け集積回路(ASICS)又は1以上のフィールド・プログラマブル・ゲート・アレイ(FPGAs))、又は、手近な特定の実装の要件に応じたハードウェアとソフトウェアの組み合わせで実装されてもよい。
[0036]図1の例示は簡潔な例示を提供する目的で単一の構内ブロックサーバ120のみを示しているが、本システム環境100は、オンラインコンテンツ管理サービスのユーザの関連グループの数に従って、何十、何百、何千、何百万又はそれ以上の構内ブロックサーバを含んでもよい。例えば、オンラインコンテンツ管理サービスは、種々の異なる組織、企業、団体、学校、大学、他のグループに属する何百万又はそれ以上のユーザをサポートしてもよい。それらの組織、企業、団体、学校、大学及び他のグループのそれぞれは、1以上の構内ブロックサーバを有するか、又は使用してもよい。
[0037]ここで使用する用語”構内(on-premises)”は、1以上のパーソナルコンピューティングデバイス及びコンテンツ管理サービス、特に、オンラインコンテンツ管理サービスの構外ブロックサーバ130に関連することを意図している。構内ブロックサーバ(例えば、120)は、パーソナルコンピューティングデバイスと同じ施設又は同じ建物内に配置されるが、そうである必要はない。また、パーソナルコンピューティングデバイスと同じローカルエリアネットワーク(例えば、160)に構内ブロックサーバを接続する必要はないが、そのようにしてもよい。従って、ここでの”構内”ブロックサーバという参照は、構外ブロックサーバ130から所定のパーソナルコンピューティングデバイスまでよりも、当該ブロックサーバが地理的な及び/又はネットワークに関して所定のパーソナルコンピューティングデバイスにより近いことを意味する。構内ブロックサーバへのパーソナルコンピューティングデバイスのネットワーク接続が一般的に、構外ブロックサーバ130へのパーソナルコンピューティングデバイスのネットワーク接続よりも短いネットワーク待ち時間及び/又は広いネットワーク帯域幅の性能を提供する場合、パーソナルコンピューティングデバイスは、ネットワーク上において構外ブロックサーバ130よりも構内ブロックサーバにより近いといえる。
[0038]パーソナルコンピューティングデバイスは、例えば、構内ブロックサーバ120、構外ブロックサーバ130、メタデータサーバ150、及びウェブサイト170を含む種々のサーバのネットワーク要求、又は単に”要求”を行うことができる。そして、サーバ120、130、150及び170は、パーソナルコンピューティングデバイスからの要求に対して、ネットワーク応答、又は単に”応答”を返すことができる。上記要求は、通常、ヘッダとペイロードを含む。上記要求のヘッダは、通常、当該要求を受信するサーバへ、当該要求のペイロードの内容を提供する。要求への上記応答もまた、通常、ヘッダとペイロードを含む。応答の上記ヘッダは、通常、当該応答を受信するパーソナルコンピューティングデバイスへ、当該応答のペイロードの内容を提供する。パーソナルコンピューティングデバイスからの要求と、サーバによってそれらに返される応答とは、1以上のネットワーク(例えば、160及び190)を介して送信され、例えばハイパー・テキスト・トランスファープロトコル(HTTP)などの要求−応答ネットワークプロトコルに従って行われてもよい。要求とそれらへの応答とは、例えば、送信制御プロトコル(TCP)などの接続指向ネットワークプロトコルに従ってパーソナルコンピューティングデバイスとサーバとによって確立されたネットワーク接続を介して送信されてもよい。ネットワーク接続は、2以上の要求及び応答のペアが当該ネットワーク接続を介して送信されるという意味で長寿命であってもよい。ネットワーク接続はまた、例えば、トランポート・レイヤ・セキュリティ(TLS)又はセキュア・ソケット・レイヤ(SSL)などの暗号ネットワークプロトコルに従って暗号化されてもよい。しかしながら、特定のネットワークプロトコル又はネットワークプロトコルの特定の組合せが、例示の実施形態によって必要とされず、HTTP、TCP、TLS又はSSL以外のプロトコルが手近な特定の実装の要件に従って使用されてもよい。
<3.0 コンテンツアイテムブロックの複製>
[0039]本発明の種々の実施形態によれば、コンテンツアイテムネームスペースは、2つ以上のブロックサーバに割り当てることができる。例えば、コンテンツアイテムネームスペースは、1以上の構内ブロックサーバと構外ブロックサーバ、又は2以上の構内ブロックサーバへ割り当てられてもよい。そのようなコンテンツアイテムネームスペースに属する新たなコンテンツアイテムがオンラインコンテンツ管理サービスに委託されると、新たなコンテンツアイテムの新たなコンテンツアイテムブロックがコンテンツアイテムネームスペースが割り当てられた1以上のブロックサーバへアップロードされる。しかしながら、パーソナルコンピューティングデバイスのコンテンツアイテム同期エージェントは、新たなコンテンツアイテムブロックがアップロードされたものとは異なる、割り当てられたブロックサーバから新たなコンテンツアイテムの欠落したコンテンツアイテムブロックをダウンロードすることを選択することができる。例えば、コンテンツアイテム同期エージェントは、欠落したコンテンツアイテムブロックがダウンロードされるブロックサーバよりもネットワーク上でより近い、割り当てられたブロックサーバを選択することができる。
[0040]本発明のいくつかの例示の実施形態によれば、コンテンツアイテムネームスペースが割り当てされたブロックサーバにおいてコンテンツアイテムブロックの利用可能性を増大させるために、構内ブロックサーバ(例えば、120)のブロックエージェント(例えば、126)は、オンラインコンテンツ管理サービスと協働して、コンテンツアイテムブロックの複製プロトコルを実行する。コンテンツアイテムブロックの複製プロトコルによれば、新たなコンテンツアイテムの新たなコンテンツアイテムブロックが構内ブロックサーバへアップロードされると、構内ブロックサーバは、新たなコンテンツアイテムブロックを、新たなコンテンツアイテムが属するコンテンツアイテムネームスペースへ割り当てられた他のブロックサーバに複製することができる。また、コンテンツアイテムブロックの複製プロトコルによれば、新たなコンテンツアイテムの新たなコンテンツアイテムブロックが構外ブロックサーバへアップロードされると、構外ブロックサーバは、新たなコンテンツアイテムブロックを、新たなコンテンツアイテムが属するコンテンツアイテムネームスペースへも割り当てられた任意の構内ブロックサーバに複製することができる。この方法で、ブロックサーバへアップロードされた新たなコンテンツアイテムの新たなコンテンツアイテムブロックは、新たなコンテンツアイテムが属するコンテンツアイテムネームスペースに割り当てられたすべてのブロックサーバで利用可能となる。
[0041]例えば、図2を参照し、所定のコンテンツアイテムネームスペース”ABC123”が構内ブロックサーバ120−1、構内ブロックサーバ120−2、及び構外ブロックサーバ130に割り当てられていることを想定する。構内ブロックサーバ120−1と構内ブロックサーバ120−2は、同一のローカルエリアネットワーク又は異なるローカルエリアネットワークへ接続されてもよい。図2の例において、構内ブロックサーバ120−1と構内ブロックサーバ120−2とは、異なるローカルエリアネットワーク、特に、LAN160−1及びLAN160−2のそれぞれに接続されてもよい。構内ブロックサーバ120−1及び120−2と、割り当てられたLAN160−1及び160−2は、地理的に分散されてもよく、同一の地理的エリアに存在する必要はない。例えば、構内ブロックサーバ120−1とLAN160−1は、会社のサンブランシステムの本部に配置されてもよく、一方で、構内ブロックサーバ120−2とLAN160−2は、会社のニューヨークのオフィスに配置されてもよい。代替的に、構内ブロックサーバ120−1及び120−2と、LAN160−1及び160−2は、異なる企業又は団体によって所有されるか又は運用されてもよい。例えば、コンテンツアイテムネームスペース”ABC123”は、会社Alphaと会社Betaと協働で使用する共有フォルダを表してもよい。構内ブロックサーバ120−1及び120−2と、LAN160−1及び160−2が同一の又は異なる会社によって所有又は運用されるかどうかに関わらず、コンテンツアイテムブロックの複製プロトコルについて、パーソナルコンピューティングデバイス110−1によって構内ブロックサーバ120−1へアップロードされたコンテンツアイテムネームスペース”ABC123”の新たなコンテンツアイテムについての新たなコンテンツアイテムブロックは、自動的に、構内ブロックサーバ120−2及び構外ブロックサーバ130からパーソナルコンピューティングデバイス110−2によってダウンロード可能となる。同様に、パーソナルコンピューティングデバイス110−2によって構内ブロックサーバ120−2へアップロードされたコンテンツアイテムネームスペース”ABC123”の新たなコンテンツアイテムについての新たなコンテンツアイテムブロックは、自動的に、構内ブロックサーバ120−1及び構外ブロックサーバ130からパーソナルコンピューティングデバイス110−1によってダウンロード可能となる。さらに、パーソナルコンピューティングデバイス110−1又はパーソナルコンピューティングデバイス110−2の何れかによって構外ブロックサーバ130へアップロードされたコンテンツアイテムネームスペース”ABC123”の新たなコンテンツアイテムについての新たなコンテンツアイテムブロックは、自動的に、構内ブロックサーバ120−1及び構内ブロックサーバ120−2からダウンロード可能となる。
[0042]高レベルでは、コンテンツアイテムブロックの複製プロトコルの動作は、以下のように処理される。各構内ブロックサーバのブロックエージェントは、構内ブロックサーバへ割り当てられた各コンテンツアイテムネームスペースについての現在のクライアントカーソル値を保持する。コンテンツアイテムネームスペースについての現在のクライアントカーソル値は、コンテンツアイテムネームスペースに対する何れのサーバジャーナルエントリを構内ブロックサーバが既に知っているかを表す。コンテンツアイテムネームスペースについての現在のクライアントジャーナルカーソル値は、構内ブロックサーバに格納されたコンテンツアイテムネームスペースにおけるコンテンツアイテムのどのコンテンツアイテムブロックが他のブロックサーバへオファーされるべきかと、構外ブロックサーバに格納されたコンテンツアイテムネームスペースにおけるコンテンツアイテムのどのコンテンツアイテムブロックが構内ブロックサーバへダウンロードされるべきかとを判定するために、構内ブロックサーバのブロックエージェントによって使用される。
[0043]各構内のブロックサーバのブロックエージェントは、オンラインコンテンツ管理サービスの通知サーバ(例えば、140)へのロングポーリング接続を維持してもよい。構内ブロックサーバへ割り当てられたコンテンツアイテムネームスペースの新たなコンテンツアイテムがオンラインコンテンツ管理サービスに委託されると、新たなコンテンツアイテムの新たなコンテンツアイテムブロックが構内ブロックサーバ又は構外ブロックサーバへアップロードされていれば、ロングポーリング接続上でピンメッセージ(ping message)が構内ブロックサーバへ送信されうる。例えば、コンテンツアイテムネームスペース”ABC123”に属している新たなコンテンツアイテムの新たなコンテンツアイテムブロックが構内ブロックサーバ120−1又は構外ブロックサーバ130へアップロードされていれば、構内ブロックサーバ120−1は、通知サーバ140からピンメッセージを受信してもよい。
[0044]通知サーバからのピンメッセージを受信することに応じて、構内ブロックサーバは、オンラインコンテンツ管理サービスのメタデータサーバ(例えば、150)に”ブロックサーバリスト”要求を行ってもよい。ブロックサーバ要求は、構内ブロックサーバへ割り当てられた各コンテンツアイテムネームスペースについての現在のクライアントカーソル値を特定しうる。ブロックサーバリストの要求は、ブロックサーバリストの要求を送信する構内ブロックサーバブロックサーバ識別子などの他の情報を含んでもよい。
[0045]構内ブロックサーバからのブロックサーバの要求を受信したことに応じて、メタデータサーバは、ブロックサーバリストの要求に応じて構内ブロックサーバへ送信する1以上のより新しいサーバジャーナルエントリを判定してもよい。各新しいサーバジャーナルエントリは、構内ブロックサーバに割り当てられ、かつ、ブロックサーバリストの要求に特定されるコンテンツアイテムネームスペースの1つに対応する。コンテンツアイテムネームスペースについての各新しいサーバジャーナルエントリは、ブロックサーバリストの要求のコンテンツアイテムネームスペースについて構内ブロックサーバによって特定された現在のクライアントカーソル値よりも大きいサーバジャーナルカーソル値を有する。コンテンツアイテムネームスペースについての各新しいサーバジャーナルエントリは、a)構内ブロックサーバがコンテンツアイテムネームスペースへ割り当てられる他のブロックサーバへオファーすることができるように構内ブロックサーバへアップロードされるコンテンツアイテムブロック、又は、b)構内ブロックサーバが構外ブロックサーバからダウンロードすることができるように構外ブロックサーバへアップロードされるコンテンツアイテムブロックの何れかに対応する。ここでは、新しいサーバジャーナルエントリの前者のタイプa)は、”オファー”新サーバジャーナルエントリとして参照される。ここでは、新しいサーバジャーナルエントリの後者のタイプb)は、”ダウンロード”新サーバジャーナルエントリとして参照される。構内ブロックサーバによる、オファー新サーバジャーナルエントリ及びダウンロード新サーバジャーナルエントリの処理について、以下でより詳細に説明する。
<3.1 複製メタデータ>
[0046]次に、図3を参照し、構内ブロックサーバにおけるブロックエージェントによって保持されうるコンテンツアイテムブロックの複製メタデータ300のブロック図について説明する。メタデータ300は、1以上の割り当てられたコンテンツアイテムネームスペースエントリ302−1、302−2、・・・、302−Nを含んでもよい。各エントリ302は、構内ブロックサーバへ割り当てられるコンテンツアイテムネームスペースを表す。
[0047]エントリ302は、構内ブロックサーバに割り当てられるコンテンツアイテムネームスペースの識別子314を含んでもよい。エントリ302はまた、構内ブロックサーバに割り当てられるコンテンツアイテムネームスペースについての現在のクライアントカーソル値317を含んでもよい。現在のクライアントカーソル値317は、構内ブロックサーバがコンテンツアイテムブロックの複製目的について既に知っている、オンラインコンテンツ管理サービスへ委託されるコンテンツアイテムネームスペースのコンテンツアイテムへの変更を表す。エントリ302はまた、1以上の割り当てられたブロックサーバ識別子313−1、313−2、・・・、313−Nを含んでもよい。割り当てられるブロックサーバ識別子313は、コンテンツアイテムネームスペースへ割り当てられるブロックサーバを識別する。
[0048]構内ブロックサーバのブロックエージェントは、以下で詳細に説明するように、コンテンツアイテムブロックの複製プロトコルの一部として保持されるメタデータ300を使用してもよい。
<3.2 サーバジャーナル>
[0049]次に、図4を参照して、メタデータサーバによってオンラインコンテンツ管理サービスのメタデータプレーンで保持されうるコンテンツアイテムサーバジャーナル410のブロック図について説明する。サーバジャーナル410は、1以上のサーバジャーナルエントリ412−1、412−2、・・・、412−Nを含む。各サーバジャーナルエントリ412は、オンラインコンテンツ管理サービスへ委託される新たなコンテンツアイテムを表す。例えば、サーバジャーナルエントリ412は、アップロード処理200及び1000に関して上述したように、第2の委託要求を受信することに応じて、メタデータサーバ150によってコンテンツアイテムサーバジャーナル410へ追加されうる。
[0050]サーバジャーナルエントリ412は、サーバジャーナルエントリ412によって表される新たなコンテンツアイテムが属するコンテンツアイテムネームスペースの識別子414を含んでもよい。サーバジャーナルエントリ412はまた、新たなコンテンツアイテムの新たなコンテンツアイテムブロックがアップロードされたターゲットブロックサーバの識別子413を含んでもよい。ターゲットブロックサーバ識別子413は、例えば、アップロード処理200のステップ226、及びアップロード処理1000のステップ1028の一部として、コンテンツアイテムの同期エージェントからの第2の委託要求で特定されてもよい。サーバジャーナルエントリ412はまた、新たなコンテンツアイテムについての相対パス415を含んでもよい。サーバジャーナルエントリ412はまた、新たなコンテンツアイテムを作成するコンテンツアイテムブロックを識別する新たなコンテンツアイテムについてのコンテンツアイテムブロックリストを含んでもよい。サーバジャーナルエントリ412はまた、サーバジャーナルカーソル値417を含んでもよい。サーバジャーナルカーソル値417は、エントリ412のコンテンツアイテムネームスペース識別子414に特定されうる。或いは、サーバジャーナルカーソル値417は、エントリ412のコンテンツアイテムネームスペースとターゲットブロックサーバ識別子(それぞれ2214、及び413)の組み合わせに特定されうる。
<3.3 複製ログ>
[0051]本発明のいくつかの実施形態によれば、構内ブロックサーバは、構内ブロックサーバのローカルストレージ(例えば、124−1)にコンテンツアイテムブロックの複製ログを保持する。複製ログは、1以上の複製ログエントリを格納する。各ログエントリは、構内ブロックサーバのブロックサーバについての複製タスクを表す。複製タスクは、a)1以上の他のブロックサーバへ1以上のコンテンツアイテムブロックの送信をオファーすること、又は、b)構外ブロックサーバから1以上のコンテンツアイテムブロックをダウンロードすることを含むことができる。
[0052]次に、図5を参照し、構内ブロックサーバにローカルに格納されうるコンテンツアイテムブロックの複製ログ500のブロック図について説明する。複製ログ500は、1以上の複製ログエントリ502を含む。各複製ログエントリ502は、メタデータサーバ150によって決定される、オファー新サーバジャーナルエントリ、又は、ダウンロード新サーバジャーナルエントリの何れかに対応する。ブロックエージェントは、新しいサーバジャーナルエントリと、メタデータサーバ150から受信したダウンロード新ジャーナルエントリとについての複製ログ500へ複製ログエントリ502を追加してもよい。
[0053]複製ログエントリ502は、複製ログエントリのタイプ識別子518、コンテンツアイテムネームスペース識別子514、コンテンツアイテムブロックリスト516、及び1以上のブロックサーバタスクエントリ519を含んでもよい。複製ログエントリのタイプ識別子518は、対応する新サーバジャーナルエントリ412がオファータイプの新サーバジャーナルエントリであるか、又はダウンロードタイプの新サーバジャーナルエントリであるかどうかを示す。コンテンツアイテムネームスペースの識別子514は、対応する新サーバジャーナルエントリ412のコンテンツアイテムネームスペースの識別子414に対応する。コンテンツアイテムのブロックリスト516は、対応する新サーバジャーナルエントリ412のコンテンツアイテムブロックリスト416に対応する。各ブロックサーバタスクエントリ519は、コンテンツアイテムネームスペースに割り当てられる他のブロックサーバとともに、構内ブロックサーバのブロックエージェントによって実行されるべき複製タスクを表わす。
[0054]ブロックサーバタスクエントリ519は、コンテンツアイテムネームスペースに割り当てられる他のブロックサーバを識別することができ(513)、タスクエントリ519によって表される複製タスクのパフォーマンスに関連するタスクメタデータ520を含む。タスクメタデータ520は、複製タスクが完了したかどうかを示す。タスクメタデータ520は、既に行われている複製タスクの試みの失敗数と、失敗の試みに関連するエラーコード及びエラーメッセージと、複製タスクの実行を反映するログメッセージとなどの他の情報を含んでもよい。
[0055]いくつかの実施形態において構内ブロックサーバのみが複製ログを保持する一方で、構内ブロックサーバが複製ログを保持するのに追加して又は代わりに、他の実施形態において、構外ブロックサーバ130が複製ログを保持する。この場合、構外ブロックサーバによって保持される複製ログのログエントリは、a)1以上のコンテンツアイテムブロックを1以上の構外ブロックサーバへ送信するようにオファーし、オファーを受け付ける構外ブロックサーバへ1以上のコンテンツアイテムブロックを送信する構外ブロックサーバ130における複製タスク、又は、b)構外ブロックサーバから1以上のコンテンツアイテムブロックをダウンロードすることの何れかを表すことができる。
<3.4 複製タスクの提供>
[0056]図6は、複製タスクを構内ブロックサーバ(例えば、120−1又は120−2)へ提供する処理600のフローチャートである。処理600の各ステップを以下に示す。ステップ602で、構内ブロックサーバのブロックエージェント(例えば、126−1又は126−2)は、構内ブロックサーバに割り当てられる各コンテンツアイテムネームスペースについての現在のクライアントカーソル値(例えば、317)を判定する。前述したように、この情報は、構内ブロックサーバに格納されるコンテンツアイテムブロックの複製メタデータ(例えば、300)の一部として格納されうる。ステップ604で、構内ブロックサーバのブロックエージェントは、オンラインコンテンツ管理サービスのメタデータサーバ(例えば、150)へブロックサーバリスト要求を送信する。ブロックサーバリスト要求は、それらが属するコンテンツアイテムネームスペースの識別子(例えば、314)に関連して、ステップ602で判定された現在のクライアントカーソル値を含む。ブロックサーバリスト要求はまた、認証が成功しているユーザアカウントを識別するユーザアカウント識別子(例えば、312)と、ブロックサーバリスト要求を行う構内ブロックサーバを識別するブロックサーバ識別子とを含んでもよい。
[0057]ステップ606で、オンラインコンテンツ管理サービスのメタデータサーバは、ブロックサーバリスト要求を受信し、それを認証する。これは、ブロックサーバリスト要求で識別されるユーザアカウントがブロックサーバリスト要求で識別される構内ブロックサーバに対してブロックサーバリスト要求を行うために認証されたことを検証するために、メタデータプレーン(例えば、180)のデータにアクセスすることを含んでもよい。そうでない場合、メタデータサーバはブロックサーバリスト要求を否定してもよく、これにより処理600を終了する。要求を認証することはまた、ブロックサーバリスト要求で識別されるコンテンツアイテムネームスペースが当該要求で識別されるブロックサーバに割り当てられるものであることを検証することを含んでもよい。処理600の残りの処理に関し、メタデータサーバは、構内ブロックサーバへ現在割り当てられていない、ブロックサーバリスト要求で識別される任意のコンテンツアイテムネームスペースを無視してもよい。
[0058]ステップ608において、メタデータサーバは、ブロックサーバリスト要求で識別される各コンテンツアイテムネームスペースについての任意の新しいサーバジャーナルエントリを判定するために、メタデータプレーンのサーバジャーナル(例えば、410)にアクセスする。この判定は、全ての”条件を満たす(qualifying)”新しいサーバジャーナルエントリが各コンテンツアイテムネームスペースについて収集されるまで、最新のサーバジャーナルエントリから開始してサーバジャーナルをスキャンし、サーバジャーナルを遡ってスキャンすることを含む。いくつかの実施形態によれば、条件を満たす新しいサーバジャーナルエントリは、以下のプロパティの全て、それらのサブセット(部分集合)、又はスーパーセット(上位集合)を有するものである。
[0059]サーバジャーナルエントリ(例えば、412−2)で識別される(例えば、414)コンテンツアイテムネームスペースは、ブロックサーバリスト要求で識別されるコンテンツアイテムネームスペースの1つである。
[0060]1以上のブロックサーバがコンテンツアイテムネームスペースへ割り当てられる。
[0061]サーバジャーナルエントリで識別される(例えば、413)ブロックサーバは、ブロックサーバリスト要求を行うブロックサーバ、又は、オンラインコンテンツ管理サーバの構外ブロックサーバ(例えば、130)を識別する。
[0062]サーバジャーナルエントリのサーバジャーナルカーソル値(例えば、417)は、ブロックサーバリスト要求で特定されるコンテンツアイテムネームスペースについての現在のクライアントカーソル値より大きい。
[0063]ステップ610で、メタデータサーバは、構内ブロックサーバのブロックエージェントへブロックサーバリスト要求への応答を返す。当該応答は、ステップ608で識別したそれぞれ条件を満たす新しいサーバジャーナルエントリからの情報を含んでもよい。特に、それぞれ条件を満たす新しいサーバジャーナルエントリに対して返される情報は、以下の情報、又は、それらのサブセット、又は、スーパーセットを含んでもよい。
[0064]条件を満たす新しいサーバジャーナルエントリのコンテンツアイテムネームスペースの識別子。
[0065]条件を満たす新しいサーバジャーナルエントリのターゲットブロックサーバ識別子に依存して変わるエントリについての複製タスクのタイプ指標。特に、条件を満たすエントリのターゲットブロックサーバの識別子がブロックサーバリスト要求を行ったブロックサーバを識別する場合、その結果、複製タスクのタイプ指標は、エントリについての複製タスクがオファータイプの複製タスクであることを示す。一方、条件を満たすエントリのターゲットブロックサーバの識別子が構外ブロックサーバを識別する場合、その結果、複製タスクのタイプ指標は、エントリについての複製タスクがダウンロードタイプの複製タスクであることを示す。
[0066]条件を満たすエントリのコンテンツアイテムブロックリスト(例えば、416)、又は、
[0067]条件を満たすエントリのサーバジャーナルカーソル値。
[0068]ステップ612で、構内ブロックサーバのブロックエージェントは、メタデータサーバからのブロックサーバリスト要求への応答を受信し、構内ブロックサーバで複製ログ(例えば、500)の1以上の複製ログエントリ(例えば、502−2)を格納する。特に、当該応答で返されるそれぞれ条件を満たす新しいサーバジャーナルエントリについての情報は、複製ログの対応する複製ログエントリを格納するために使用される。各コンテンツアイテムネームスペースについて、条件を満たす新しいサーバジャーナルエントリについての情報は、それらのサーバジャーナルカーソル値の昇順で処理されうる。それぞれ条件を満たす新しいサーバジャーナルエントリについて、条件を満たす新しいサーバジャーナルエントリについての複製タスクのタイプエントリに基づくログエントリタイプ(例えば、518)、条件を満たすエントリのコンテンツアイテムネームスペースの識別子に基づくコンテンツアイテムネーム識別子(例えば、514)、条件を満たすエントリのコンテンツアイテムブロックリストであるコンテンツアイテムブロックリスト(例えば、516)、1以上のブロックサーバタスクエントリ(例えば、519−2)。
[0069]ブロックサーバタスクエントリは、ログエントリで識別されるコンテンツアイテムネームスペースに割り当てられる、他のブロックサーバのそれぞれに対して作成されうる。ダウンロード複製タスクタイプのログエントリの場合、構外ブロックサーバについてのただ1つのブロックサーバタスクエントリであってもよい。オファー複製タスクタイプのログエントリの場合、ブロックサーバタスクエントリは、コンテンツアイテムネームスペースに割り当てられる他のブロックサーバのそれぞれについて作成されてもよい。
[0070]ブロックサーバタスクエントリのタスクメタデータ(例えば、520)は、複製タスクがまだ完了していないことを示すように最初に設定される。複製ログエントリが複製ログに追加されると、構内ブロックサーバの対応の割り当てられたコンテンツアイテムネームスペースエントリ(例えば、302−2)におけるログエントリのコンテンツアイテムネームスペースについての現在のクライアントカーソル値(例えば、317)は、対応の条件を満たすエントリのサーバジャーナルカーソル値と等しくなるように設定される。そうすることにより、ブロックエージェントは、ブロックエージェントによって行われる次のブロックサーバリスト要求に応じて再び条件を満たすエントリについての情報を受信することはない。
<3.5 複製タスクの処理>
[0071]図7A乃至図7Cは、構内ブロックサーバに格納される(例えば、ストレージ124−1に)複製ログ(例えば、530)で特定される複製タスクの処理において、構内ブロックサーバ(例えば、120−1)のブロックエージェント(例えば、126−1)の動作を示すフローチャート700を含む。ステップ702で、ブロックエージェントは、複製ログから複製ログエントリ(例えば、502−2)を取得する。例えば、ブロックエージェントは、保留している複製ログエントリについての複製ログを定期的にスキャンしてもよい。
[0072]複製ログエントリは、複製ログエントリのブロックサーバタスクエントリ(例えば、519−2)の少なくとも1つが保留されている場合に保留であってもよい。ブロックサーバタスクエントリは、そのタスクメタデータ(例えば、520)によってそう示される場合に保留であってもよい。ブロックサーバタスクエントリのタスクメタデータは、ブロックサーバタスクエントリが多くの種々の方法で保留されていることを示してもよい。例えば、タスクメタデータは、ブロックサーバタスクエントリが保留されている、又は完了していないことを示す値、又は値の集合を含んでもよい。いくつかの実施形態によれば、タスクメタデータは、ブロックエージェントがブロックサーバタスクエントリを完了するために既に行った多数の試みを反映する値を含む。当該数値が閾値以下の場合、その結果、ブロックサーバタスクエントリは保留される。当該数値が閾値を超える場合、その結果、ブロックサーバタスクエントリは保留されない。以前の失敗が発生した場合に、ブロックサーバタスクエントリを完了するために複数回試みることによって、より高い復元力(resiliency)と対故障性(fault tolerance)が提供される。
[0073]ステップ704で、ブロックエージェントは、保留ログエントリの複製タスクタイプ(例えば、518)を判定する。複製タスクタイプは、”ダウンロード”又は”オファー”の1つであってもよい。構内ブロックサーバに格納されない(つまり、構内ブロックサーバで欠落している)、構外ブロックサーバ(例えば、130)へアップロードされたコンテンツアイテムブロックをダウンロードするように、ダウンロード複製タスクタイプがブロックエージェントによって実行される。”オファー側(offeror)”の構内ブロックサーバへアップロードされるコンテンツアイテムブロックを、1以上の他の”被オファー側(offeree)”のブロックサーバへ送信するようにオファーし、当該オファーを受け付ける他のブロックサーバへそれらを送信するように、オファー複製タスクタイプが、ブロックエージェントによって実行される。
[0074]構内ブロックサーバは、ピアリング関係を有する他の構内ブロックサーバとのみ、オファー複製タスクを実行することができる。2つの構内ブロックサーバ間のピアリング関係は、2つの構内ブロックサーバのブロックエージェント間でネットワーク接続を確立することが可能な場合に存在する。2つの構内ブロックサーバ間のネットワーク上に介在したネットワークファイアウォールのため、或いは、単に、2つの構内ブロックサーバを接続するネットワークがないため、2つの構内ブロックサーバ間でネットワーク接続を確立できない可能性がある。例えば、図2を簡単に参照すると、ネットワークファイアウォール165−1、又はファイアウォール165−2は、構内ブロックサーバ120−1と構内ブロックサーバ120−2とがWAN160−3又はインターネット190を介してそれらの間のネットワーク接続を確立することを妨げうる。或いは、ネットワークファイアウォール165−1及び165−2は、ブロックエージェント126−1及び126−2が、インターネット190ではなく、WAN160−3を介してそれらの間のネットワーク接続を確立することを許容してもよい。他のネットワークファイアウォールの構成が可能である。例えば、ネットワークファイアウォール165−1及び165−2は、ブロックエージェント126−1及び126−2が、WAN160−3又はインターネット190を介してそれらの間のネットワーク接続を確立することを許容してもよい。構内ブロックサーバのペアの両方が当該構内ブロックサーバ間のネットワーク接続の確立を開始することができる構内ブロックサーバ間のペア間でピアリング関係が存在する必要はないことに注意されるべきである。例えば、ネットワークファイアウォール165−1及び165−2は、構内ブロックサーバ120−1のブロックエージェント126−1がWAN160−3を介して構内ブロックサーバ120−1のブロックエージェント126−2とHTTPS接続の確立を開始することを許容してもよいが、その逆はない。
[0075]いくつかの実施形態によれば、構内ブロックサーバAが構内ブロックサーバBとピアリング関係を有していない場合、その結果、構内ブロックサーバAは、複製ログにおけるオファータイプの複製ログエントリを格納する際にその複製ログに、構内ブロックサーバBについてのブロックサーバタスクエントリを格納することができない。これは、ピアリング関係の欠如で、構内ブロックサーバAが、構内ブロックサーバBへ任意のコンテンツアイテムブロックをオファーすることができないためである。オファータイプ複製ログエントリは、複製ログエントリのブロックサーバタスクエントリの全てが構内ブロックサーバAがピアリング関係を有しない構内ブロックサーバに対するものであれば、全体的に複製ログから省略されうる。これは、ピアリングの欠如で、構内ブロックサーバAがピアリング関係を有していない任意の他の構内ブロックサーバへそのコンテンツアイテムブロックのいずれかをオファーすることができないためである。或いは、ピアリング関係の欠如で、ブロックサーバタスクエントリ又は複製ログエントリを省略する代わりに、構内ブロックサーバに対するブロックサーバタスクエントリは、ブロックサーバタスクエントリで識別される構内ブロックサーバとピアリング関係がないことを示すタスクメタデータとともに複製ログエントリの一部として格納されうる。
[0076]ステップ704で、保留複製ログエントリがダウンロードタイプ複製ログエントリであるとブロックサーバエージェントが判定すると、その結果、処理700は、ステップ706へ進む(図7B)。ダウンロードタイプ複製ログエントリは、オンラインコンテンツ管理サービスの構外ブロックサーバを識別する単一のブロックサーバタスクエントリを含んでもよい。ステップ706で、ブロックエージェントは、ダウンロードタイプ複製ログエントリで識別される、任意の欠落したコンテンツアイテムブロックを判定する。この判定は、当該エントリのコンテンツアイテムブロックリスト(例えば、516)に基づくことができる。ステップ708で、ブロックエージェントは、構外ブロックサーバから任意の欠落したコンテンツアイテムブロックをダウンロードする。ステップ710で、欠落したコンテンツアイテムブロックのダウンロードが成功したかどうかに従って、ブロックエージェントは、ブロックサーバタスクエントリのタスクメタデータを更新する。例えば、コンテンツアイテムブロックの全てがダウンロードすることができない場合、その結果、ブロックエージェントは、そのように示すタスクメタデータを更新してもよい。例えば、ブロックエージェントは、欠落したコンテンツアイテムブロックの全てをダウンロードすることに成功するために行う試みの回数を追跡する試みカウンタをインクリメントさせてもよい。一方で、ブロックエージェントが欠落したコンテンツアイテムブロックの全てのダウンロードに成功した場合、その結果、タスクメタデータは、ブロックサーバタスクエントリがもう保留されていないことを示すように更新されうる。ステップ710の後、処理700は、次の保留複製ログエントリを処理するためにステップ702へ処理を戻してもよい。
[0077]一方、ステップ704で、保留複製ログエントリがオファータイプ複製ログエントリであるとブロックサーバエージェントが判定すると、その結果、処理700は、ステップ712へ進む(図7C)。ステップ712で、ブロックエージェントは、保留複製ログエントリで識別されたコンテンツアイテムブロックのうちいずれが構内ブロックサーバが保持している(即ち、構内ブロックサーバに格納されている)かを判定する。この判定は、ログエントリのコンテンツアイテムブロックリストに基づくことができる。ログエントリのコンテンツアイテムブロックリストで識別される全てのコンテンツアイテムブロックは、コンテンツアイテムブロックの一部又は全てが構内ブロックサーバから削除又は移動されていない限り、構内ブロックサーバに格納されるべきである。例えば、コンテンツアイテムブロックは、最近使用されていない方法(例えば、最近ダウンロードされていない又は最近更新されていないこと)に従って、構内ブロックサーバから削除又は移動されてもよい。
[0078]ステップ714で、ブロックエージェントは、オファー側の構内ブロックサーバがピアリング関係を有する保留複製ログエントリの保留ブロックサーバタスクエントリで識別される他のブロックサーバのそれぞれへオファー要求を送信する。オファー側構内ブロックサーバが構外ブロックサーバとのピアリング関係を有するいくつかの実施形態が想定されうる。当該オファー要求は、オファーされるコンテンツアイテムブロックを識別することができる。特に、オファー要求は、オファー側構内ブロックサーバが保持する保留複製ログエントリで識別されるコンテンツアイテムブロックのコンテンツアイテムブロックハッシュ値を含んでもよい。オファー要求は、オファー側構内ブロックサーバのブロックエージェントと被オファー側ブロックサーバのブロックエージェントとの間で確立されるネットワーク接続(例えば、HTTPS接続)を介して送信されうる。
[0079]ステップ716で、オファー側構内ブロックサーバのブロックエージェントは、オファー側構内ブロックサーバからのオファー要求を受信することに応じて被オファー側ブロックサーバによって送信される任意の受領応答を受信する。被オファー側ブロックサーバからの各受領応答は、被オファー側ブロックサーバで現在格納されていない(即ち、被オファー側ブロックサーバで欠落している)オファーされたコンテンツアイテムブロックの1以上を識別することができる。任意の欠落したコンテンツアイテムブロックは、当該欠落したコンテンツアイテムブロックのコンテンツアイテムブロックハッシュ値によって受領応答において識別されうる。被オファー側ブロックサーバからの受領応答はまた、オファーされたコンテンツアイテムブロックが被オファー側ブロックサーバにおいて欠落していないことを示してもよい。
[0080]ステップ718で、オファー側構内ブロックサーバのブロックエージェントは、被オファー側ブロックサーバの任意の欠落したコンテンツアイテムブロックを送信(アップロード)する。特に、被オファー側ブロックサーバからの所定の受領応答に関し、オファー側ブロックサーバのブロックエージェントは、被オファー側ブロックサーバからの受領応答で識別される任意の欠落したコンテンツアイテムブロックを送信(アップロード)する。
[0081]ステップ720で、オファー側構内ブロックサーバのブロックエージェントは、保留ログエントリの保留ブロックサーバタスクエントリのタスクメタデータを更新する。特に、受領応答がブロックサーバタスクエントリに対応する被オファー側ブロックサーバから受信された場合、その結果、全ての欠落したコンテンツアイテムブロックの被オファー側ブロックサーバへの送信が成功したかどうかに従って、又は、受領応答が被オファー側ブロックサーバでコンテンツアイテムブロックが欠落していないことを示すがどうかに従って、ブロックサーバタスクエントリのタスクメタデータが更新される。何れかの場合、タスクメタデータは、ブロックサーバタスクエントリがもう保留でないことを示すように更新されうる。一方、受領応答が受信されていない場合、又は、被オファー側ブロックサーバへの欠落したコンテンツアイテムブロックの送信(アップロード)で失敗した場合、その結果、ブロックサーバタスクエントリが保留されている場合には、タスクメタデータの試みカウンタがインクリメントされうる。ステップ720の後、処理700は、次の保留複製ログエントリを処理するためにステップ702に処理を戻してもよい。
<4.0 コンテンツアイテムブロックの削除>
[0082]一般的に、要件ではないが、構内ブロックサーバ(例えば、120)は、構外ブロックサーバ(例えば、130)がそのローカルストレージ(例えば、134)に有するものよりも非常に少ない、そのローカルストレージ(例えば、124)のローカルデータストレージスペースが予測される。例えば、構内ブロックサーバにおけるトータルのローカルストレージが数テラバイトのオーダである一方で、構外ブロックサーバにおけるトータルのローカルストレージはエイト(8)ゼタバイトのオーダとなる場合がある。このように、構外ブロックサーバは、所定の構内ブロックサーバよりも最大で10億倍ものストレージスペースを有する可能性がある。所定の構内ブロックサーバに割り当てられるコンテンツアイテムネームスペースの数が構外ブロックサーバよりも少ない場合であっても、構内ブロックサーバは、構内ブロックサーバに割り当てられる全てのコンテンツアイテムネームスペースに、全てのコンテンツアイテムの全てのコンテンツアイテムブロックを格納するには、依然として十分なローカルストレージを有していないかもしれない。
[0083]いくつかの例示の実施形態において、構内ブロックサーバにローカルに格納されたコンテンツアイテムブロックは、他のコンテンツアイテムブロックに利用可能な構内ブロックサーバのローカルストレージスペースを作り出すために、当該ローカルストレージから削除または移動される。例えば、他のコンテンツアイテムブロックは、アップロード中若しくはアップロード間近である、又は、構内ブロックサーバーにアップロードされる予定のコンテンツアイテムブロックであるかもしれない。
[0084]いずれのコンテンツアイテムブロックを削除又は移動させるかを判定する種々のアプローチが採用されうる。いくつかの例示の実施形態によれば、最も長い時間未使用(LRU)のアプローチが採用される。LRUアプローチによれば、コンテンツアイテムブロックによって私用される構内ブロックサーバのローカルストレージスペースの量が閾値を満足しない場合に、その結果、最も長い時間未使用のコンテンツアイテムブロックがローカルストレージから削除または移動される。当該閾値は、構内ブロックサーバのコンテンツアイテムブロックについてトータルのローカルストレージスペースの割合に基づくものであってもよい。ここで、トータルのローカルストレージスペースは、そのストレージスペースの一部または全てがコンテンツアイテムブロックを記憶するために現在使用されているかどうかにかかわらず、コンテンツアイテムブロックを格納するために利用可能なストレージスペースの現在の最大のトータル量を示す。現在の使用量が上記割合より大きい場合に、その結果、現在の使用量は閾値を満足しない。代わりに、閾値は、ローカルストレージに格納されたコンテンツアイテムブロックによって現在使用されているストレージスペースの量を差し引いた後に残る、現在の最大のローカルストレージスペースの量に基づくこともできる。この場合、現在の使用量を計算した後に残るローカルストレージスペースが閾値量より少ない場合、その結果、現在の使用量は閾値を満足しない。
[0085]現在の使用量が閾値を満足するか否かの判定は、種々の異なる時刻に行われうる。1つの可能性のある時刻は、1以上のコンテンツアイテムブロックが構内ブロックサーバにアップロードされるときである。特に、ローカルストレージに格納されたアップロードされたコンテンツアイテムの現在の使用量が閾値を満足しない場合、その結果、1以上のコンテンツアイテムブロックがLRUアプローチに従ってローカルストレージから削除又は移動されてもよい。
[0086]ローカルストレージに格納されるコンテンツアイテムブロックは、その最近のアップロード時刻、及び/又は、その最近のダウントード時刻に基づいて最も長く使用されていないかが考慮されてもよい。コンテンツアイテムブロックの最近アップロードされた時刻は、コンテンツアイテムが構内ブロックサーバに最近アップロードされた時刻を反映する。例えば、コンテンツアイテムブロックの最近のアップロード時刻に従って、構内ブロックサーバに最も長くアップロードされていなかったローカルストレージに格納されるコンテンツアイテムブロックが削除又は移動されてもよい。コンテンツアイテムブロックの最近ダウンロードされた時刻は、コンテンツアイテムが構内ブロックサーバから最近ダウンロードされた時刻を反映する。例えば、コンテンツアイテムブロックの最近のダウンロード時刻に従って、構内ブロックサーバから最も長くダウンロードされていなかったローカルストレージに格納されるコンテンツアイテムブロックが削除又は移動されてもよい。構内ブロックサーバは、構内ブロックサーバに格納されるコンテンツアイテムブロックについての最近のアップロード時刻及びダウンロード時刻を反映するメタデータを格納して、保持してもよい。
[0087]いくつかの例示の実施形態によれば、制限されたLRUアプローチが使用される。制限されたLRUアプローチによれば、上述したLRUアプローチに従った削除又は移動を制限するコンテンツアイテムブロックは追加の条件が満たされない限り、削除又は移動されない。
[0088]1つの可能性のある追加の条件は、削除又は移動の候補であるコンテンツアイテムブロックが、構外ブロックサーバ、1以上の他の構内ブロックサーバ、又は、1以上の他の構内ブロックサーバ及び構外ブロックサーバの何れかである1以上の他のブロックサーバに格納されることである。候補のコンテンツアイテムブロックが削除又は移動の候補である構内ブロックサーバのみに格納される場合、その結果、コンテンツアイテムブロックは、潜在的に唯一のコンテンツアイテムブロックを保存するために、削除又は移動されない。
[0089]他の可能性のある条件は、削除又は移動の候補となるコンテンツアイテムブロックが、削除の候補であるコンテンツアイテムブロックの構内ブロックサーバに加えて、少なくとも1つの他のブロックサーバに割り当てられたコンテンツアイテムネームスペースに属するコンテンツアイテムに含まれることである。コンテンツアイテムネームスペースが削除又は移動の候補であるコンテンツアイテムブロックの構内ブロックサーバのみに割り当てられている場合、その結果、コンテンツアイテムブロックは、潜在的に唯一のコンテンツアイテムブロックを保存するために、削除又は移動されない。
[0090]他の可能性のある条件は、コンテンツアイテムブロックが”固定された(sticky:スティッキー)”コンテンツアイテムブロックとして特別にマークされている場合である。固定されたコンテンツアイテムブロックは、全ての固定されていないコンテンツアイテムブロックが削除又は移動されるまで、削除又は移動されない。スティッキーとしてコンテンツアイテムブロックを指定することは、重要である、又は、比較的将来ダウンロードされそうなコンテンツアイテムブロックの削除又は移動を防ぐ助けとなりうる。コンテンツアイテムブロックは、関連付けられるコンテンツアイテネームスペースに基づいて、スティッキーとして指定されてもよい。特に、コンテンツアイテムネームスペースは、オンラインコンテンツ管理サービスによって提供されるグラフィカルユーザインタフェースを通じて(例えば、ウェブサイト170を介して)、オンラインコンテンツ管理サービスのユーザによってスティッキーとして指定されてもよい。代替的に、コンテンツアイテムネームスペースは、コンテンツアイテムネームスペースの特性及び使用に基づいて、スティッキーとして自動的に指定されてもよい。例えば、コンテンツアイテムネームスペースが多数のユーザ(例えば10以上)間で共有されている場合、結果、コンテンツアイテムネームスペースはスティッキーとして自動的に指定されうる。これは、多数のユーザ間で供給されるコンテンツアイテムブロックの削除又は移動を防ぐのに有用である。いくつかの例示の実施形態において、共有されるコンテンツアイテムネームスペースは、当該コンテンツアイテムネームスペースでの最近のユーザアクティビティがある場合にのみスティッキーとして指定される。これは、最近使用されていないコンテンツアイテムブロックを保持し続けることを防止するのに有用である。最近のアクティビティは、最近(例えば、過去1日、1週間、1か月又は1年以内)のコンテンツアイテムネームスペースに属するコンテンツアイテムのダウンロード、アップロード、又はアクセスを含んでもよい。最初にスティッキーとして指定されたコンテンツアイテムネームスペースは、当該コンテンツアイテムネームスペースをスティッキーとして指定するための条件がもはや存在しない場合、後の2回目においてはもはやスティッキーとして自動的に指定されなくてもよい。例えば、最初に最近のアクティビティに基づいてスティッキーとしてされたコンテンツアイテムネームスペースが後の2回目においてもはや最近のアクティビティを有していない場合、その後、2回目以降において、当該コンテンツアイテムネームスペースはもはやスティッキーとして指定されなくてもよい。構内ブロックサーバは、ローカルに格納されたコンテンツアイテムブロック、及び/又は、割り当てされたコンテンツアイテムネームスペースがスティッキーとして指定されていることを示すメタデータを格納して保持してもよい。
[0091]いくつかの実施形態によれば、スティッキー性(stickiness)には複数のレベルがあり、スティッキー性のそれらのレベル順に、制限されたLRUアプローチに従って、コンテンツアイテムブロックが削除又は移動される。例えば、スティッキー性A、B、及びCの3つのレベルがあり、レベルCはレベルBより低く、レベルBはレベルAより低い。この場合、レベルCの最初のコンテンツアイテムブロックが削除又は移動される前に、任意のスティッキー性のレベルが指定されていないコンテンツアイテムブロックが削除又は移動される。レベルBの最初のコンテンツアイテムブロックが削除又は移動される前に、レベルCのコンテンツアイテムブロックが削除又は移動される。レベルAの最初のコンテンツアイテムブロックが削除又は移動される前に、レベルBのコンテンツアイテムブロックが削除又は移動される。
<5.0 割り当ての際のコンテンツアイテムブロックの複製>
[0092]コンテンツアイテムネームスペースは、現在割り当てられていないブロックサーバに割り当てることができる。例えば、コンテンツアイテムネームスペースは、構外ブロックサーバ130にのみ割り当てられてもよい。その後、後のタイミングで、当該コンテンツアイテムネームスペースは、構外ブロックサーバ130と、構内ブロックサーバ120−1に割り当てられてもよい。その後、さらに後のタイミングで、当該コンテンツアイテムネームスペースは、構外ブロックサーバ130と、構内ブロックサーバ120−1と、構内ブロックサーバ120−2に割り当てられてもよい。他の実施形態において、コンテンツアイテムネームスペースは、構内ブロックサーバ120−1に割り当てられ、その後、構内ブロックサーバ120−1及び構外ブロックサーバ130へ割り当てられてもよい。このように、コンテンツアイテムネームスペースにあるときに割り当てられるブロックサーバの組合せは、コンテンツアイテムネームスペースに他のときに割り当てられるブロックサーバの組合せと異なってもよい。
[0093]コンテンツアイテムネームスペースが新たなブロックサーバに割り当てられると、ブロックサーバは、当該コンテンツアイテムネームスペースに属するコンテンツアイテムを構成するコンテンツアイテムの一部のみを格納するか、又は全く格納しなくてもよい。結果として、パーソナルコンピューティングデバイスのコンテンツアイテム同期エージェントは、コンテンツアイテムネームスペースのコンテンツアイテムのコンテンツアイテムブロックを当該ブロックサーバからダウンロードすることができないかもしれない。
[0094]本発明のいくつかの例示の実施形態によれば、コンテンツアイテムネームスペースが当該コンテンツアイテムネームスペースが1以上の他のブロックサーバに現在割り当てられている状況で、新たなブロックサーバに割り当てられる場合、当該コンテンツアイテムネームスペースのコンテンツアイテムのコンテンツアイテムブロックは、当該他のブロックサーバから新たなブロックサーバに複製される。例えば、コンテンツアイテムネームスペース”ABC123”が構外ブロックサーバ130に割り当てられ、その後構内ブロックサーバ120−1に割り当てられる場合、結果、構内ブロックサーバ120−1は、”ABC123”のコンテンツアイテムネームスペースのコンテンツアイテムを構成するコンテンツアイテムブロックを構外ブロックサーバ130からダウンロードすることができる。他の形態において、コンテンツアイテムネームスペース”DEF456”が構内ブロックサーバ120−1に割り当てられ、その後構内ブロックサーバ120−2に割り当てられる場合、結果、構内ブロックサーバ120−1は、”DEF456”のコンテンツアイテムネームスペースのコンテンツアイテムを構成するコンテンツアイテムブロックを構内ブロックサーバ120−2へオファーして提供することができる。
[0095]いくつかの例示の実施形態によれば、1以上のブロックサーバに現在割り当てられているコンテンツアイテムネームスペース新たなブロックサーバに割り当てられる場合、コンテンツアイテムブロックは、上述のコンテンツアイテムブロックの複製プロトコルに従って、現在割り当てられているブロックサーバから新たなブロックサーバに複製される。特に、新たなブロックサーバのブロックサーバ識別子が、現在割り当てられている構内ブロックサーバと新たなブロックサーバのそれぞれにおいて保持されるコンテンツアイテムブロックの複製メタデータ300において、コンテンツアイテムネームスペースにおける割当コンテンツアイテムネームスペースエントリ302に、割当ブロックサーバ識別子313として追加される。例えば、現在割り当てられている構内ブロックサーバと新たなブロックサーバのそれぞれにおいてブロックエージェントは、メタデータサーバ150から受信する情報に基づいて、当該情報をローカルに格納するコンテンツアイテムブロックの複製メタデータ300に追加してもよい。例えば、現在割り当てられている構内ブロックサーバ及び新たなブロックサーバのブロックエージェントは、ブロックサーバリストの要求に応じて、メタデータサーバ150から当該情報を受信してもよい。例えば、コンテンツアイテムネームスペースが新たなブロックサーバに割り当てられた後に、通知サーバ140は、ピンメッセージを現在割り当てられている構内ブロックサーバ及び新たなブロックサーバのそれぞれのブロックエージェントに送信してもよい。当該ピンメッセージの受信に応じて、現在割り当てられている構内ブロックサーバ及び新たなブロックサーバのブロックエージェントは、ブロックサーバリストの要求をメタデータサーバ150へ送信し、コンテンツアイテムネームスペースが新たなブロックサーバに割り当てられるブロックサーバリストの要求に応答して、メタデータサーバ150から受信してもよい。
[0096]現在割り当てられている構内ブロックサーバのそれぞれにおけるブロックエージェントはその後、オファータイプのログエントリ502についてのその複製ログ500を、新たなブロックサーバに新たに割り当てられたコンテンツアイテムネームスペースの識別子と一致するコンテンツアイテムネームスペース識別子514と、ダウンロードタイプのログエントリとは対照的にログエントリがオファータイプであることを示すログエントリタイプ518とでスキャンすることができる。新たなブロックサーバタスクエントリ519は、そのようなオファータイプのログエントリのそれぞれに追加される。新たなブロックサーバタスクエントリは、新たなブロックサーバを識別するブロックサーバ識別子513と、複製タスクがまだ完了していないことを示すタスクメタデータ520とを有する。現在割り当てられている構内ブロックサーバのそれぞれのブロックエージェントはその後、上述したコンテンツアイテムブロックの複製処理700に従って、新たなブロックサーバで所有される、当該コンテンツアイテムネームスペースのコンテンツアイテムブロックをオファーすることができる。
[0097]また、新たなブロックサーバのブロックエージェントは、新たなブロックサーバに割り当てられたコンテンツアイテムネームスペースの任意のコンテンツアイテムブロックを、構外ブロックサーバからダウンロードするために、上述したコンテンツアイテムブロックの複製処理600及び700を実行する。
<6.0 ベーシックコンピューティングハードウェア及びソフトウェア>
<6.1 ベーシックコンピューティングデバイス>
[0098]図8は、本発明の例示の実施形態を具現化しうるベーシックコンピューティングデバイス800を示すブロック図である。コンピューティングデバイス800、及びそれらの接続、関係、及び機能を含むそのコンポーネントは、単なる一例であって、例示の実施形態の実装に限定する意図はない。例示の実施形態を実施するのに適切な他のコンピューティングデバイスは、異なる接続、関係及び機能を有するコンポーネントを含む異なるコンポーネントを含みうる。
[0099]コンピューティングデバイス800は、メインメモリ806をアドレス解決し、かつ、コンピューティングデバイス800の種々のコンポーネント間で及び種々のコンポーネントの中でデータを転送するための、バス802又は他の通信機構を含みうる。
[0100]コンピューティングデバイス800はまた、情報を処理するためのバス802と結合した1以上のハードウェアプロセッサ804を含みうる。ハードウェアプロセッサ804は、一般用途マイクロプロセッサ、システム・オン・チップ(SoC)、又は他のプロセッサであってもよい。
[0101]ランダムアクセスメモリ(RAM)又は他の動的ストレージデバイスなどのメインメモリ806はまた、情報やプロセッサ804によって実行されるソフトウェア命令を格納するためのバス802に結合されうる。メインメモリ806はまた、プロセッサ804によって実行されるべきソフトウェア命令の実行中に一時変数又は他の中間情報を格納するために使用されうる。
[0102]プロセッサ804へアクセス可能な記憶媒体に格納される場合、ソフトウェア命令は、コンピューティングデバイス800を当該ソフトウェア命令で指定された動作を実行するようにカスタマイズされた特定用途のコンピューティングデバイスへ変換する。用語”ソフトウェア”、”ソフトウェア命令”、”コンピュータプログラム”、”コンピュータで実行可能な命令”、及び”プロセッサで実行可能な命令”は、人間が読取可能かどうかにかかわらず、特定の動作を実行するようにコンピューティングデバイスに命令するための、任意の機械可読情報をカバーするように、広く解釈されるべきであり、限定はしないが、アプリケーションソフトウェア、デスクトップアプリケーション、スクリプト、バイナリ、オペレーティングシステム、デバイスドライバ、ブートローダ、シェル、ユーティリティ、システムソフトウェア、JAVASCRIPT、ウェブページ、ウェブアプリケーション、プラグイン、組み込みソフトウェア、マイクロコード、コンパイラ、デバッガ、インタプリタ、仮想マシン、リンカー、及びテキストエディタを含む。
[0103]コンピューティングデバイス800はまた、静的情報及びプロセッサ804へのソフトウェア命令を格納するためにバス802に結合された読み取り専用メモリ(ROM)808又は他の静的ストレージデバイスを含みうる。
[0104]1以上の大容量ストレージデバイス810は、磁性式メモリ、光学式メモリ、半導体メモリ、光磁気メモリ、フラッシュメモリ、又は大容量ストレージ技術を利用可能な他のものなどの固定媒体若しくは取り外し可能な媒体に、情報及びソフトウェア命令を永続的に格納するためのバス802に結合されうる。大容量ストレージデバイスは、ネットワーク上で共有されえ、或いは、専用の大容量ストレージでありうる。通常、大容量ストレージデバイス810(例えば、デバイスに対するメインハードディスク)の少なくとも1つは、オペレーティングシステム、ユーザアプリケーションプログラム、ドライバ、他のサポートファイル、及び全ての種類の他のデータファイルを含む、コンピュータデバイスの動作を方向付けるためのプログラム本体とデータを格納する。
[0105]コンピューティングデバイス800は、バス802を介して、情報をコンピュータユーザに表示するための液晶ディスプレイ(LCD)又は他の電子的な視覚ディスプレイなどのディスプレイ812へ結合されうる。いくつかの構成において、タッチ検出技術(例えば、抵抗性、容量性など)を組み込むタッチセンサ式サーフェイスが、プロセッサ804へタッチジェスチャ(例えば指又はスタイラス)入力をやり取りするためのタッチセンサー式ディスプレイの形式でディスプレイ812上に敷かれてもよい。
[0106]アルファベットキー及び他のキーを含む入力デバイス814は、情報及びコマンドの選択をプロセッサ804へ通知するためのバス802へ結合されうる。英数字キーや他のキーに追加して、或いは、代わりに、入力デバイス814は、例えば、電源(On/Off)ボタン、”ホーム”ボタン、音量制御ボタンなどの1以上の物理的なボタン又はスイッチを含むことができる。
[0107]ユーザ入力デバイスの他のタイプは、プロセッサ804へ方向情報やコマンドの選択を通知し、ディスプレイ812上でのカーソルの移動を制御するためのマウス、トラックボール、又はカーソル方向キーなどのカーソル制御816でありうる。当該入力デバイスは、典型的に、デバイスが平面上の位置を特定できるようにする第1軸(例えば、x)と第2軸(例えば、y)の二軸の2つの自由度を有する。
[0108]図8に示される構成などのいくつかの構成において、1以上のディスプレイ812、入力デバイス814、及びカーソル制御816がコンピューティングデバイス800の外部コンポーネント(即ち、周辺デバイス)である一方で、ディスプレイ812、入力デバイス814、及びカーソル制御816のいくつか又は全ては、他の構成において、コンピューティングデバイス800のフォームファクタの一部として統合されてもよい。
[0109]開示のシステム、方法及びモジュールの機能は、メインメモリ806に含まれる1以上のソフトウェア命令の1以上のプログラムを実行するプロセッサ804に応じて、コンピューティングデバイス800によって実行されうる。そのようなソフトウェア命令は、ストレージデバイス810などの他の記憶媒体からメインメモリ806へと読み込まれてもよい。メインメモリ806に含まれるソフトウェア命令の実行は、プロセッサ804に例示の実施形態の機能を実行させる。
[0110]例示の実施形態の機能及び動作がソフトウェア命令で全体的に実装されうる一方で、コンピューティングデバイス800のハード・ワイヤード又はプログラマブル回路(例えば、ASIC、FPGAなど)は、手近な特定の実装の要件に従って、機能を実行するためにソフトウェア命令の一部として又は組み合わせて他の実施形態において使用されうる。
[0111]ここで使用される用語“記憶媒体”は、コンピューティングデバイスを特定の様式で動作させるデータ及びソフトウェア命令の少なくとも1つを格納する非一時的な媒体として参照される。そのようなストレージ媒体は、不揮発性の媒体及び/又は揮発性の媒体を備えうる。不揮発性媒体は、ストレージデバイス810などの、例えば、不揮発性のランダムアクセスメモリ(NVRAM)、フラッシュメモリ、光学ディスク、磁性ディスク、又は半導体ドライバを含む。揮発性媒体はメインメモリ806などの動的メモリを含む。記憶媒体の一般的な形式は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁性テープ、若しくは任意の他の時期的データ記憶媒体、CD-ROM、若しくは穴のパターンを伴う任意の他の光学的データ記憶媒体、RAM、PROM、及びEPROM、FLASH-EPROM、NVRAM、フラッシュメモリ、任意の他のメモリチップ又はカートリッジを含む。
[0112]記憶媒体は、送信媒体とは区別されるものの、当該送信媒体と連結して使用されうる。送信媒体は、ストレージ媒体間で情報を転送することに使用されてもよい。例えば、送信媒体は、バス802を備える有線を含む同軸ケーブル、銅線、及び光ファイバーを含む。送信媒体はまた、電波及び赤外データ通信中に生成されるものなどの、音波又は光波の形式をとることもできる。
[0113]媒体の様々な形式は、実行のためにプロセッサ804へ1つ以上のソフトウェア命令の1つ以上のシーケンスを運ぶことに含まれうる。例えば、ソフトウェア命令は、リモートコンピュータの磁性ディスク又は半導体ドライバ上でまず実行されうる。リモートコンピュータは、その動的メモリへソフトウェア命令をロードし、モデムを用いて電話線を介してソフトウェア命令を送信することができる。コンピューティングデバイス800のローカルなモデムは、電話回線でデータを受信し、データを赤外線信号に変換するための赤外線送信機を用いることができる。赤外線検出機は赤外線信号で運搬されたデータを受信することができ、適切な回路がそのデータをバス802に乗せる。バス802は、プロセッサ804がソフトウェア命令を読み出して実行するメインメモリ806にデータを運搬する。メインメモリ806によって受信される本ソフトウェア命令は、プロセッサ804によって実行される前又は実行された後の何れかにストレージデバイス810に選択的に格納されうる。
[0114]コンピューティングデバイス800はまた、バス802へ結合される1以上の通信インタフェース818を含みうる。通信インタフェース818は、ローカルネットワーク822(例えば、イーサネットネットワーク、無線ローカルエリアネットワーク、セルラー電話ネットワーク、Bluetooth無線ネットワーク、又は同様のもの)へ接続された、有線又は無線のネットワークリンク820へ結合する2つの方法のデータ通信を提供する。通信インタフェース818は、種々のタイプの情報を表すデジタルデータストリームを伝達する電気信号、電磁信号、又は光信号を送受信する。例えば、通信インタフェース818は、有線のネットワークインタフェースカード、一体化された無線アンテナを有する無線ネットワークインタフェースカード、又はモデム(例えば、ISDN、DSL、又はケーブルモデム)でありうる。
[0115]ネットワークリンク820は、通常、1以上のネットワークを通じて、他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク820は、ローカルネットワーク822を通じて、ホストコンピュータ824への又はインターネットサービスプロバイダ(ISP)826によって運用されるデータ装置への接続を提供しうる。ISP826は順に、”Internet”828として通常参照されるワールド・ワイド・パケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク822及びInternet828は、デジタルデータストリームを伝達する電気信号、磁性信号、又は光信号を使用する。コンピューティングデバイス800への及びコンピューティングデバイス800からのデジタルデータを伝達する、種々のネットワークを通じた信号、及び、ネットワークリンク820上の、及び通信インタフェース818を通じた信号は、送信媒体の例示の形式である。
[0116]コンピューティングデバイス800は、ネットワーク、ネットワークリンク820、及び通信インタフェース818を通じて、プログラムコードを含む、メッセージを送信し、データを受信することができる。例えば、サーバ830は、インターネット828、ISP826、ローカルネットワーク822、及び通信インタフェース818を通じて、アプリケーションプログラムに対して要求されるコードを送信しうる。
[0117]受信コードは、受信した際にプロセッサ804によって実行されえ、及び/又は、後の実行のためにストレージデバイス810又は他の不揮発性のストレージに格納されうる。
<6.2 ベーシックソフトウェアシステム>
[0118]図9は、コンピューティングデバイス800の動作を制御するために使用されうるベーシックソフトウェアシステム900を示す概略図である。ソフトウェアシステム900、及びそれらの接続、関係、及び機能を含むそのコンポーネントは、単なる一例であって、例示の実施形態の実装に限定する意図はない。例示の実施形態を実施するのに適切な他のソフトウェアシステムは、異なる接続、関係及び機能を有するコンポーネントを含む異なるコンポーネントを含んでもよい。
[0119]ソフトウェアシステム900は、コンピューティングデバイス800の動作を方向付けるために提供される。システムメモリ(RAM)806及び固定ストレージ(例えば、ハードディスク、又はフラッシュメモリ)810に格納されるソフトウェアシステム900はカーネル又はオペレーティングシステム(OS)910を含む。
[0120]OS910は、プロセス、メモリ配置、ファイル入力及び出力(I/O)、及びデバイスI/Oの実行を管理することを含む、コンピュータ動作のローレベルの態様を管理する。902A、902B、902C・・・902Nとして表される、1以上のアプリケーションプログラムは、システム900による実行のために”ロードされ”うる(例えば、固定ストレージ810からメモリ806へ転送される)。アプリケーション又はデバイス900上での使用を意図した他のソフトウェアはまた、ダウンロード可能で、コンピュータで実行可能な命令のトークンのセットとして、例えば、インターネット上の記憶場所から(例えば、ウェブサーバ、アプリストア、又は他のオンラインサービスから)ダウンロード及びインストールするために格納されうる。
[0121]ソフトウェアシステム900は、グラフィカルな(例えば、”ポイント・アンド・クリック”又は”タッチジェスチャ”)形式で、ユーザコマンド及びデータを受信するためのグラフィカルユーザインタフェース(GUI)915を含む。これらの入力は順に、オペレーティングシステム910及びアプリケーション902の少なくとも1つからの命令に従ってシステム900によって作動されうる。GUI915はまた、ユーザが追加の入力を供給したり、又は、セッションを終了させたりする(例えば、ログオフする)とすぐに、OS910及びアプリケーション902からの動作結果を表示するように務める。
[0122]OS910は、デバイス800のベアハードウェア920(例えば、プロセッサ804)上で直接的に実行することができる。代替的に、ハイパーバイザ又は仮想マシンモニタ(VMM)930は、ベアハードウェア920及びOS910の間に割り込んで設けられてもよい。この構成において、VMM930はグデバイス800のOS910及びベアハードウェア920の間のソフトウェア”クッション”又は仮想レイヤとして作動する。
[0123]VMM930は、1以上の仮想マシンインスタンス(”ゲストマシン”)を作成し実行する。各ゲストマシンは、OS910などの”ゲスト”オペレーティングシステムと、ゲストオペレーティングシステム上で実行するように設計された、アプリケーション902などの1以上のアプリケーションを含む。VMM930は、仮想オペレーティングプラットフォームを有するゲストオペレーティングシステムを提示し、ゲストオペレーティングシステムの実行を管理する。
[0124]いくつかの例において、VMM930は、デバイス800のベアハードウェア920上で直接実行されているかのように、ゲストオペレーティングシステムを実行することを許容することができる。これらの例において、ベアハードウェア920上で実行するように構成されたゲストオペレーティングシステムの同一のバージョンはまた、修正又は再構成なしにVMM930上で実行されうる。言い換えれば、VMM930は、いくつかの例において、ゲストオペレーティングシステムへ完全なハードウェアと、CPU仮想化を提供することができる。
[0125]他の例において、ゲストオペレーティングシステムは、効率的にVMM930上で実行されるように特別に設計されるか、又は、構成されうる。それらの例において、ゲストオペレーティングシステムは、仮想マシンモニタ上で実行する”aware”であってもよい。言い換えれば、VMM930は、いくつかの例において、ゲストオペレーティングシステムへ準仮想化を提供することができる。
[0126]上述のベーシックコンピュータハードウェア及びソフトウェアは、本実施形態を実施するために採用されうる基本的な下層のコンピュータコンポーネントを示す目的で提示される。しかしながら、例示の実施形態は、任意の特定のコンピューティング環境又はコンピューティングデバイス構成に限定されない。代わりに、実施形態が本開示の分野の当業者がここで提示した実施形態の特徴及び機能をサポートできることができるものとして理解するであろう、任意の種別のシステムアーキテクチャ又は処理環境で実装されうる。
<7.0拡張及び代替例>
[0127]前述の明細書において、本発明の例示の実施形態は、多数の特定の詳細を参照して説明した。しかしながら、これらの詳細は、特定の実装の要件に従って実装ごとに変化することができる。例示の実施形態は、従って、限定的な意味というよりはむしろ例示とみなされるものである。

Claims (15)

  1. 1以上のデータネットワークによって、メタデータサーバ及び第2のコンテンツアイテムブロックサーバと動作可能に連結された第1のコンテンツアイテムブロックサーバによって実行される方法であって、前記第1のコンテンツアイテムブロックサーバは、1以上のプロセッサと、該方法を実行する前記1以上のプロセッサによって実行される命令を格納する記憶媒体とを備え、前記方法は、
    複数のコンテンツアイテムブロックの識別子を前記メタデータサーバから受信することであって、コンテンツアイテムは前記複数のコンテンツアイテムブロックを含む、ことと、
    前記受信した識別子の少なくとも一部に基づいて、複製タスクログに複製ログエントリを格納することであって、前記複製ログエントリは複数のコンテンツアイテムブロックの前記識別子と、前記第2のコンテンツアイテムブロックサーバの識別子とを含む、ことと、
    前記複製ログエントリの処理の少なくとも一部に基づいて、前記複製ログエントリにおいて識別される前記第2のコンテンツアイテムブロックサーバへ、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの少なくとも1つのコンテンツアイテムブロックを、前記複製ログエントリにおいて識別される前記第2のコンテンツアイテムブロックサーバへ送信するオファーを送信することと、
    前記第2のコンテンツアイテムブロックサーバから、前記少なくとも1つのコンテンツアイテムブロックを送信する前記オファーの承認を受信することと、
    前記受信した承認の少なくとも一部に基づいて、前記少なくとも1つのコンテンツアイテムブロックを前記第2のコンテンツアイテムブロックサーバに送信することと
    を含み、
    前記方法は、さらに、
    前記複製ログエントリを処理する前に、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの少なくとも1つを、前記第2のコンテンツアイテムブロックサーバではない第3のコンテンツアイテムブロックサーバからダウンロードすることを含むことを特徴とする方法。
  2. 請求項1に記載の方法であって、さらに、
    前記複製ログエントリの前記処理の完了の少なくとも一部に基づいて、前記複製ログエントリが完了したことを示すように前記複製ログエントリを更新することを含むことを特徴とする方法。
  3. 請求項1に記載の方法であって、
    前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの全てが前記複製ログエントリで識別される前記第2のコンテンツアイテムブロックサーバへオファーされることを特徴とする方法。
  4. 請求項1に記載の方法であって、
    前記承認は、送信するために、前記コンテンツアイテムが構成される前記複数のコンテンツアイテムブロックのうち、1以上のコンテンツアイテムブロックを識別し、
    前記識別された1以上のコンテンツアイテムブロックは前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの全てを含むのではなく、
    前記方法は、さらに、
    前記識別された1以上のコンテンツアイテムブロックを前記第2のコンテンツアイテムブロックサーバへ送信することを含むことを特徴とする方法。
  5. 請求項1に記載の方法であって、さらに、
    コンテンツアイテムネームスペースに関連付けられる現在のクライアントジャーナルカーソル値を判定することと、
    前記現在のクライアントジャーナルカーソル値と、前記関連付けられたコンテンツアイテムネームスペースの識別子とを前記メタデータサーバへ送信することと、を含み、
    前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの前記受信した識別子は、前記送信された現在のクライアントジャーナルカーソル値と、前記コンテンツアイテムネームスペースの識別子との少なくとも一部に基づくことを特徴とする方法。
  6. 請求項1に記載の方法であって、さらに、
    コンテンツアイテムネームスペースが前記第2のコンテンツアイテムブロックサーバへ割り当てられるかを判定することであって、前記コンテンツアイテムは前記コンテンツアイテムネームスペースに属する、ことを含み、
    前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの前記少なくとも1つのコンテンツアイテムを前記第2のコンテンツアイテムブロックサーバへ送信する前記オファーは、前記コンテンツアイテムネームスペースが前記第2のコンテンツアイテムブロックサーバに割り当てられるかの判定の少なくとも一部に基づくことを特徴とする方法。
  7. 請求項1に記載の方法であって、
    前記複製ログエントリは、前記第2のコンテンツアイテムブロックサーバではない第3のコンテンツアイテムブロックサーバの識別子を含み、
    前記方法は、さらに、
    前記複製ログエントリの前記処理の少なくとも一部に基づいて、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの前記少なくとも1つのコンテンツアイテムブロックを前記複製ログエントリで識別される前記第3のコンテンツアイテムブロックサーバに送信することをオファーすることを含むことを特徴とする方法。
  8. 請求項1に記載の方法であって、
    前記コンテンツアイテムはコンテンツアイテムネームスペースに属し、
    前記方法は、さらに、
    前記コンテンツアイテムネームスペースが割り当てられた前記第2のコンテンツアイテムブロックサーバではない第3のコンテンツアイテムブロックサーバを判定することと、
    前記第1のコンテンツアイテムブロックサーバと前記第3のコンテンツアイテムブロックサーバとの間でペアリングの関係が存在しないかを判定することと、
    前記ペアリングの関係が存在しないことの判定の少なくとも一部に基づき、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの何れかを、前記第3のコンテンツアイテムブロックサーバへ送信することをオファーしないかを判定することと、を含み、
    前記複製ログエントリは前記第3のコンテンツアイテムブロックサーバを識別しないことを特徴とする方法。
  9. 請求項1に記載の方法であって、
    前記方法は、さらに、最長時間未使用の(LRU)基準に従った削除のために、前記第1のコンテンツアイテムブロックサーバにローカルに格納される1以上のコンテンツアイテムブロックを識別することを含み、
    前記LRU基準は、コンテンツアイテムブロックのダウンロード時刻、コンテンツアイテムブロックのアップロード時刻、又は、コンテンツアイテムブロックのダウンロード時刻及びコンテンツアイテムブロックのアップロード時刻、に基づくことを特徴とする方法。
  10. 請求項1に記載の方法であって、
    前記メタデータサーバから、前記コンテンツアイテムを構成する複数のコンテンツアイテムの前記識別子を受信することは、前記第2のコンテンツアイテムブロックサーバへのコンテンツアイテムネームスペースの割り当てに少なくとも部分的に基づくことを特徴とする方法。
  11. 1以上のデータネットワークによって、メタデータサーバ及び構外コンテンツアイテムブロックサーバと動作可能に連結された構内コンテンツアイテムブロックサーバによって実行される方法であって、前記構内コンテンツアイテムブロックサーバは、1以上のプロセッサと、該方法を実行する前記1以上のプロセッサによって実行される命令を格納する記憶媒体とを備え、前記方法は、
    複数のコンテンツアイテムブロックの識別子を前記メタデータサーバから受信することであって、コンテンツアイテムは前記複数のコンテンツアイテムブロックを含む、ことと、
    前記受信した識別子の少なくとも一部に基づいて、複製ログに複製ログエントリを格納することであって、前記複製ログのエントリは複数のコンテンツアイテムブロックの前記識別子と、コンテンツ管理サービスの前記構外コンテンツアイテムブロックサーバの識別子とを含む、ことと、
    前記複製ログのエントリの処理の少なくとも一部に基づいて、前記複製ログのエントリにおいて識別される前記構外コンテンツアイテムブロックサーバから、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックのうち少なくとも1つのコンテンツアイテムブロックをダウンロードすることと
    を含むことを特徴とする方法。
  12. 請求項11に記載の方法であって、
    前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの全てが前記構外コンテンツアイテムブロックサーバからダウンロードされることを特徴とする方法。
  13. 請求項11に記載の方法であって、さらに、
    前記複製ログのエントリの前記処理の完了の少なくとも一部に基づき、前記コンテンツアイテムを構成する前記複数のコンテンツアイテムブロックの全てをダウンロードした後に、前記複製ログのエントリが完了したことを示すように更新することをさらに含むことを特徴とする方法。
  14. 1つ以上のプロセッサによって実行されると、請求項1乃至13のいずれか1項に記載の方法の動作を行わせる命令を格納した1つ以上のコンピュータで読取可能な記憶媒体。
  15. システムであって、
    1以上のプロセッサと、
    1つ以上のプロセッサによって実行されると、請求項1乃至13のいずれか1項に記載の方法の動作を行わせる命令を格納した1つ以上の記憶媒体と
    を備えることを特徴とするシステム。
JP2018504710A 2015-10-29 2016-10-11 複数構内でのデジタルコンテンツアイテムのホスティングにおけるコンテンツアイテムブロック複製プロトコル Active JP6674532B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562248085P 2015-10-29 2015-10-29
US14/979,268 US9697269B2 (en) 2015-10-29 2015-12-22 Content item block replication protocol for multi-premises hosting of digital content items
US14/979,268 2015-12-22
PCT/US2016/056349 WO2017112032A1 (en) 2015-10-29 2016-10-11 Content item block replication protocol for multi-premises hosting of digital content items

Publications (2)

Publication Number Publication Date
JP2019506644A JP2019506644A (ja) 2019-03-07
JP6674532B2 true JP6674532B2 (ja) 2020-04-01

Family

ID=57136473

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2018504696A Active JP6426325B1 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル
JP2018504708A Active JP6518002B2 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスにおけるホスティングのための選択的な同期及び分散化コンテンツアイテムブロックのキャッシュ
JP2018504710A Active JP6674532B2 (ja) 2015-10-29 2016-10-11 複数構内でのデジタルコンテンツアイテムのホスティングにおけるコンテンツアイテムブロック複製プロトコル
JP2018504711A Active JP6581717B2 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスホスティングのためのピアツーピア同期プロトコル

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2018504696A Active JP6426325B1 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル
JP2018504708A Active JP6518002B2 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスにおけるホスティングのための選択的な同期及び分散化コンテンツアイテムブロックのキャッシュ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018504711A Active JP6581717B2 (ja) 2015-10-29 2016-10-11 デジタルコンテンツアイテムのマルチプレミスホスティングのためのピアツーピア同期プロトコル

Country Status (5)

Country Link
US (7) US9571573B1 (ja)
EP (5) EP3362911A1 (ja)
JP (4) JP6426325B1 (ja)
AU (4) AU2016346890B2 (ja)
WO (4) WO2017074698A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
JP5988447B2 (ja) * 2014-08-28 2016-09-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ログメッセージのフォーマットを推定する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9852147B2 (en) 2015-04-01 2017-12-26 Dropbox, Inc. Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items
JP2016212656A (ja) * 2015-05-11 2016-12-15 キヤノン株式会社 情報処理装置、端末、情報処理装置と端末を有するシステム、情報処理方法及びプログラム
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US10198355B2 (en) * 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9537952B1 (en) * 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10251022B2 (en) * 2016-02-18 2019-04-02 Comcast Cable Communications, Llc Systems and methods for low energy beacon management
US10165397B2 (en) 2016-02-18 2018-12-25 Comcast Cable Communications, Llc Proximity detection and targeted communications
GB201604070D0 (en) * 2016-03-09 2016-04-20 Ibm On-premise and off-premise communication
EP3440819B1 (en) * 2016-04-06 2020-10-21 Karamba Security Centralized controller management and anomaly detection
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US9934303B2 (en) * 2016-04-25 2018-04-03 Dropbox, Inc. Storage constrained synchronization engine
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US10402375B2 (en) * 2016-07-18 2019-09-03 Microsoft Technology Licensing, Llc Cloud content states framework
EP3494686B1 (en) * 2016-08-05 2020-12-30 Telefonaktiebolaget LM Ericsson (publ) Transport protocol server relocation
US10346366B1 (en) 2016-09-23 2019-07-09 Amazon Technologies, Inc. Management of a data processing pipeline
US10805238B1 (en) 2016-09-23 2020-10-13 Amazon Technologies, Inc. Management of alternative resources
US10666569B1 (en) * 2016-09-23 2020-05-26 Amazon Technologies, Inc. Journal service with named clients
US10423459B1 (en) 2016-09-23 2019-09-24 Amazon Technologies, Inc. Resource manager
US10594770B2 (en) 2016-11-01 2020-03-17 International Business Machines Corporation On-premises and off-premises communication
US10579265B2 (en) * 2017-10-18 2020-03-03 Adobe Inc. Cloud-synchronized local storage management
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11323530B2 (en) * 2018-06-06 2022-05-03 International Business Machines Corporation Proxy agents and proxy ledgers on a blockchain
US11269816B2 (en) * 2019-03-25 2022-03-08 Parallels International Gmbh Recent file synchronization and aggregation methods and systems
US11169855B2 (en) * 2019-12-03 2021-11-09 Sap Se Resource allocation using application-generated notifications
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US20220083510A1 (en) * 2020-09-15 2022-03-17 Open Text Holdings, Inc. Connector for content repositories
US11604769B2 (en) * 2020-10-19 2023-03-14 Dropbox, Inc. Synchronizing an external location
CN113568871A (zh) * 2021-06-10 2021-10-29 山东蓓明医疗科技有限公司 一种医疗边缘设备电力管理实时自动同步的方法

Family Cites Families (294)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5581765A (en) 1994-08-30 1996-12-03 International Business Machines Corporation System for combining a global object identifier with a local object address in a single object pointer
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5940394A (en) 1996-08-08 1999-08-17 At&T Corp Transferring messages in networks made up of subnetworks with different namespaces
JPH1063555A (ja) * 1996-08-19 1998-03-06 Hitachi Ltd ファイル管理方法
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6335927B1 (en) 1996-11-18 2002-01-01 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
US5907848A (en) * 1997-03-14 1999-05-25 Lakeview Technology, Inc. Method and system for defining transactions from a database log
US6061743A (en) * 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6065018A (en) * 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6336173B1 (en) * 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
US6623151B2 (en) 1999-08-04 2003-09-23 911Ep, Inc. LED double light bar and warning light signal
US6834284B2 (en) 1999-08-12 2004-12-21 International Business Machines Corporation Process and system for providing name service scoping behavior in java object-oriented environment
US6728723B1 (en) * 1999-10-12 2004-04-27 Cisco Technology, Inc. Method and system for verifying configuration transactions managed by a centralized database
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7327761B2 (en) 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US6470329B1 (en) 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US6732125B1 (en) 2000-09-08 2004-05-04 Storage Technology Corporation Self archiving log structured volume with intrinsic data protection
US6560591B1 (en) * 2000-09-29 2003-05-06 Intel Corporation System, method, and apparatus for managing multiple data providers
US7660453B2 (en) 2000-10-11 2010-02-09 Imaging Therapeutics, Inc. Methods and devices for analysis of x-ray images
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7171475B2 (en) 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US7509322B2 (en) * 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
WO2002056181A2 (en) * 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system
US7383288B2 (en) * 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US7035847B2 (en) 2001-03-16 2006-04-25 Novell, Inc. Server for synchronization of files
US6912645B2 (en) 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
JP2003030026A (ja) 2001-07-19 2003-01-31 Dainippon Printing Co Ltd データ管理装置
JP3971642B2 (ja) * 2002-04-23 2007-09-05 日本電信電話株式会社 コンテンツダウンロード方法および装置
US6947940B2 (en) * 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
US7051053B2 (en) 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US7437405B1 (en) 2002-10-01 2008-10-14 Danger, Inc. System and method for managing data objects in a wireless device
US6993714B2 (en) 2002-10-03 2006-01-31 Microsoft Corporation Grouping and nesting hierarchical namespaces
US20040068523A1 (en) 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US20040162900A1 (en) 2002-12-17 2004-08-19 Tim Bucher Distributed content management system
US7117303B1 (en) * 2003-03-14 2006-10-03 Network Appliance, Inc. Efficient, robust file handle invalidation
US7308545B1 (en) 2003-05-12 2007-12-11 Symantec Operating Corporation Method and system of providing replication
US7577960B2 (en) * 2003-06-19 2009-08-18 Microsoft Corporation System and method for managing cached objects using notifications bonds
US7340723B2 (en) 2003-07-02 2008-03-04 Scaleform Corporation Identifier implementation mapping and methods of using namespaces
US20050015461A1 (en) * 2003-07-17 2005-01-20 Bruno Richard Distributed file system
US7512638B2 (en) 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7734690B2 (en) 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US20050071336A1 (en) * 2003-09-30 2005-03-31 Microsoft Corporation Systems and methods for logging and recovering updates to data structures
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
JP4464656B2 (ja) 2003-11-06 2010-05-19 国立大学法人東京工業大学 コンテンツ蓄積システムおよびその方法
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7318134B1 (en) * 2004-03-16 2008-01-08 Emc Corporation Continuous data backup using distributed journaling
US7395446B2 (en) 2004-05-03 2008-07-01 Microsoft Corporation Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system
US7774378B2 (en) 2004-06-04 2010-08-10 Icentera Corporation System and method for providing intelligence centers
JP4490743B2 (ja) * 2004-06-24 2010-06-30 株式会社日立製作所 ファイル共有システム、ファイル共有用管理サーバおよびクライアント装置
US20060041844A1 (en) 2004-08-19 2006-02-23 Homiller Daniel P Methods, devices, systems and computer program products for providing availability data associated with data files to users of a presence service
US7702730B2 (en) 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
US20060064467A1 (en) 2004-09-17 2006-03-23 Libby Michael L System and method for partial web page caching and cache versioning
US7613703B2 (en) 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7844691B2 (en) * 2004-12-30 2010-11-30 Xstor Systems, Inc. Scalable distributed storage and delivery
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
US7483929B2 (en) * 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
US7506010B2 (en) * 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US7984018B2 (en) * 2005-04-18 2011-07-19 Microsoft Corporation Efficient point-to-multipoint data reconciliation
US7607582B2 (en) * 2005-04-22 2009-10-27 Microsoft Corporation Aggregation and synchronization of nearby media
US8055702B2 (en) 2005-04-25 2011-11-08 Netapp, Inc. System and method for caching network file systems
JP4729987B2 (ja) 2005-06-02 2011-07-20 富士ゼロックス株式会社 データ管理システム及びデータサーバ
US8832697B2 (en) * 2005-06-29 2014-09-09 Cisco Technology, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
WO2007052285A2 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
WO2007014296A2 (en) * 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
US20070028215A1 (en) * 2005-07-26 2007-02-01 Invensys Systems, Inc. Method and system for hierarchical namespace synchronization
US7401089B2 (en) * 2005-08-17 2008-07-15 Microsoft Corporation Storage reports file system scanner
EP1925162A1 (en) 2005-08-26 2008-05-28 Thomson Licensing On demand system and method using dynamic broadcast scheduling
US20070055703A1 (en) * 2005-09-07 2007-03-08 Eyal Zimran Namespace server using referral protocols
US8131689B2 (en) * 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US7574579B2 (en) * 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
DE602006021217D1 (de) 2005-10-12 2011-05-19 Datacastle Corp Verfahren und system zur datensicherung
US20070100829A1 (en) 2005-10-26 2007-05-03 Allen J V Content manager system and method
CA2632935C (en) * 2005-12-19 2014-02-04 Commvault Systems, Inc. Systems and methods for performing data replication
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
JP5210886B2 (ja) 2006-01-09 2013-06-12 トムソン ライセンシング マルチメディア・コンテンツを配信する方法及びシステム
US8015491B2 (en) 2006-02-28 2011-09-06 Maven Networks, Inc. Systems and methods for a single development tool of unified online and offline content providing a similar viewing experience
US20070214497A1 (en) 2006-03-10 2007-09-13 Axalto Inc. System and method for providing a hierarchical role-based access control
US8171251B2 (en) 2006-03-16 2012-05-01 Sandisk Il Ltd. Data storage management method and device
WO2007109047A2 (en) * 2006-03-18 2007-09-27 Peter Lankford Content-aware routing of subscriptions for streaming and static data
US7890646B2 (en) 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US8370423B2 (en) * 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US20080005195A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Versioning synchronization for mass p2p file sharing
US7953785B2 (en) 2006-06-30 2011-05-31 Microsoft Corporation Content synchronization in a file sharing environment
US20080046218A1 (en) 2006-08-16 2008-02-21 Microsoft Corporation Visual summarization of activity data of a computing session
US8082231B1 (en) * 2006-09-22 2011-12-20 Emc Corporation Techniques using identifiers and signatures with data operations
US7685171B1 (en) * 2006-09-22 2010-03-23 Emc Corporation Techniques for performing a restoration operation using device scanning
DE102006051187A1 (de) 2006-10-30 2008-05-08 Siemens Ag Verteilte Taskflow-Architektur
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US7865571B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
EP1944944A1 (en) 2007-01-12 2008-07-16 Thomson Licensing System and method for combining pull and push modes
US7930270B2 (en) 2007-02-26 2011-04-19 Microsoft Corporation Managing files on multiple computing devices
US8312046B1 (en) 2007-02-28 2012-11-13 Netapp, Inc. System and method for enabling a data container to appear in a plurality of locations in a super-namespace
US7933296B2 (en) * 2007-03-02 2011-04-26 Microsoft Corporation Services for data sharing and synchronization
US7937686B2 (en) 2007-04-17 2011-05-03 Microsoft Corporation Name-based identifiers of model elements
US7900203B2 (en) * 2007-04-24 2011-03-01 Microsoft Corporation Data sharing and synchronization with relay endpoint and sync data element
WO2008147973A2 (en) * 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
JP4865642B2 (ja) 2007-06-08 2012-02-01 富士通株式会社 アクセス権設定装置、アクセス権設定方法、及びアクセス権設定プログラム
WO2009005747A1 (en) 2007-06-28 2009-01-08 The Trustees Of Columbia University In The City Of New York Set-top box peer-assisted video-on-demand
US8180720B1 (en) * 2007-07-19 2012-05-15 Akamai Technologies, Inc. Content delivery network (CDN) cold content handling
US8073922B2 (en) 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
CN101409706B (zh) 2007-10-09 2011-11-23 华为技术有限公司 一种边缘网络中的数据分发方法、数据分发系统及相关设备
US8438611B2 (en) 2007-10-11 2013-05-07 Varonis Systems Inc. Visualization of access permission status
US20090313353A1 (en) 2007-10-15 2009-12-17 University Of Southern California Copyrighted content delivery over p2p file-sharing networks
JP5000457B2 (ja) * 2007-10-31 2012-08-15 株式会社日立製作所 ファイル共有システム及びファイル共有方法
FR2924244B1 (fr) 2007-11-22 2010-04-23 Canon Kk Procede et dispositif d'encodage et de decodage d'information
US20090192845A1 (en) 2008-01-30 2009-07-30 Microsoft Corporation Integrated real time collaboration experiences with online workspace
US8301618B2 (en) 2008-02-26 2012-10-30 Microsoft Corporation Techniques to consume content and metadata
US9824333B2 (en) 2008-02-29 2017-11-21 Microsoft Technology Licensing, Llc Collaborative management of activities occurring during the lifecycle of a meeting
US8019900B1 (en) * 2008-03-25 2011-09-13 SugarSync, Inc. Opportunistic peer-to-peer synchronization in a synchronization system
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
WO2009132261A1 (en) 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8185601B2 (en) 2008-05-11 2012-05-22 Nokia Corporation Sharing information between devices
US8195608B2 (en) * 2008-06-02 2012-06-05 International Business Machines Corporation File synchronization between multiple nodes
US8341532B2 (en) 2008-06-10 2012-12-25 Microsoft Corporation Automated set-up of a collaborative workspace
US20090327405A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Enhanced Client And Server Systems for Operating Collaboratively Within Shared Workspaces
US9727628B2 (en) 2008-08-11 2017-08-08 Innography, Inc. System and method of applying globally unique identifiers to relate distributed data sources
JP2010074604A (ja) 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム
US8214747B1 (en) 2008-10-10 2012-07-03 Adobe Systems Incorporated Role based state and dynamic feature enablement for collaborative and non-collaborative workspaces and imbeded applications
US8140473B2 (en) 2008-11-07 2012-03-20 International Business Machines Corporation Real-time file synchronization
US9239767B2 (en) 2008-12-22 2016-01-19 Rpx Clearinghouse Llc Selective database replication
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US8296338B2 (en) 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
US20100293147A1 (en) * 2009-05-12 2010-11-18 Harvey Snow System and method for providing automated electronic information backup, storage and recovery
CN101582920B (zh) 2009-06-09 2012-09-05 中兴通讯股份有限公司 一种分布式文件系统中校验和同步数据块的方法及装置
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8825597B1 (en) 2009-08-13 2014-09-02 Dropbox, Inc. Network folder synchronization
JP5061166B2 (ja) 2009-09-04 2012-10-31 Kii株式会社 データ同期システムおよびデータ同期方法
US8112505B1 (en) 2009-10-20 2012-02-07 Wanova Technologies, Ltd. On-demand block-level file system streaming to remote desktops
US9684785B2 (en) 2009-12-17 2017-06-20 Red Hat, Inc. Providing multiple isolated execution environments for securely accessing untrusted content
US8503984B2 (en) 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8527549B2 (en) 2010-02-22 2013-09-03 Sookasa Inc. Cloud based operating and virtual file system
US8458299B2 (en) 2010-03-17 2013-06-04 Hitachi, Ltd. Metadata management method for NAS global namespace design
EP2550629A4 (en) 2010-03-23 2017-01-11 Nokia Technologies Oy Method and apparatus for managing files in an online account
US9043484B2 (en) 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
US9170892B2 (en) * 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US9852150B2 (en) 2010-05-03 2017-12-26 Panzura, Inc. Avoiding client timeouts in a distributed filesystem
US8650159B1 (en) 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
JP5328739B2 (ja) 2010-09-30 2013-10-30 ヤフー株式会社 アイコン表示プログラム、方法及びシステム
JP5289407B2 (ja) 2010-09-30 2013-09-11 ヤフー株式会社 ファイル同期システム、方法及びプログラム
JP5677029B2 (ja) 2010-10-26 2015-02-25 キヤノン株式会社 データ移行システム、データ移行方法、プログラム
CN102567042B (zh) 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US8924354B2 (en) * 2011-02-01 2014-12-30 Ca, Inc. Block level data replication
TWI424322B (zh) 2011-02-08 2014-01-21 Kinghood Technology Co Ltd 提供大量資料流存取的資料流管理系統
US8880538B1 (en) * 2011-02-08 2014-11-04 Google Inc. Electronic document encoding
US9639540B2 (en) * 2011-02-25 2017-05-02 Hewlett Packard Enterprise Development Lp Retention management in a worm storage system
US9721033B2 (en) 2011-02-28 2017-08-01 Micro Focus Software Inc. Social networking content management
JP2012182292A (ja) 2011-03-01 2012-09-20 Mitsubishi Paper Mills Ltd 樹脂開口方法
US9563681B1 (en) * 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9213709B2 (en) * 2012-08-08 2015-12-15 Amazon Technologies, Inc. Archival data identification
US9201742B2 (en) * 2011-04-26 2015-12-01 Brian J. Bulkowski Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
US9021471B2 (en) * 2011-05-03 2015-04-28 International Business Machines Corporation Managing change-set delivery
US9357004B2 (en) * 2011-05-13 2016-05-31 Simplivity Corp. Reference count propagation
EP2710510A4 (en) * 2011-05-14 2015-05-06 Bitcasa Inc CLOUD FILE SYSTEM WITH SERVER DEPLOYMENT OF USER UNKNOWN ENCRYPTED FILES
US9037797B2 (en) 2011-05-24 2015-05-19 International Business Machines Corporation Intelligent caching
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US8959607B2 (en) 2011-08-03 2015-02-17 Cisco Technology, Inc. Group key management and authentication schemes for mesh networks
US9710535B2 (en) * 2011-08-12 2017-07-18 Nexenta Systems, Inc. Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
US9552367B2 (en) * 2011-09-16 2017-01-24 Ca, Inc. System and method for network file system server replication using reverse path lookup
US8301597B1 (en) * 2011-09-16 2012-10-30 Ca, Inc. System and method for network file system server replication using reverse path lookup
US9521214B2 (en) 2011-09-20 2016-12-13 Instart Logic, Inc. Application acceleration with partial file caching
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8949208B1 (en) * 2011-09-30 2015-02-03 Emc Corporation System and method for bulk data movement between storage tiers
KR20140073588A (ko) 2011-10-13 2014-06-16 인터디지탈 패튼 홀딩스, 인크 콘텐츠 배달 네트워크들 간의 인터페이싱을 제공하는 방법 및 장치
GB2500152A (en) * 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US20130135608A1 (en) 2011-11-30 2013-05-30 Reflectronics, Inc. Apparatus and method for improved processing of food products
US8813172B2 (en) 2011-12-16 2014-08-19 Microsoft Corporation Protection of data in a mixed use device
US9164997B2 (en) 2012-01-19 2015-10-20 Microsoft Technology Licensing, Llc Recognizing cloud content
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9307009B2 (en) 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US20130218837A1 (en) 2012-02-16 2013-08-22 Verizon Patent And Licensing Inc. Cloud data synchronization with local data
KR102039028B1 (ko) 2012-02-24 2019-10-31 삼성전자 주식회사 휴대단말기의 데이터 공유 장치 및 방법
JP2013182292A (ja) 2012-02-29 2013-09-12 Keepdata Ltd クラウドシステム
US20140208220A1 (en) 2012-03-01 2014-07-24 Aditya Watal System and Method for Contextual and Collaborative Knowledge Generation and Management Through an Integrated Online-Offline Workspace
US9355120B1 (en) * 2012-03-02 2016-05-31 Netapp, Inc. Systems and methods for managing files in a content storage system
US9043567B1 (en) 2012-03-28 2015-05-26 Netapp, Inc. Methods and systems for replicating an expandable storage volume
US8874799B1 (en) * 2012-03-31 2014-10-28 Emc Corporation System and method for improving cache performance
US20130268480A1 (en) 2012-04-05 2013-10-10 Box, Inc. Method and apparatus for selective subfolder synchronization in a cloud-based environment
US9307006B2 (en) 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US9594686B2 (en) 2012-05-05 2017-03-14 Google Inc. File handling within a cloud-based file system
US9479548B2 (en) 2012-05-23 2016-10-25 Haworth, Inc. Collaboration system with whiteboard access to global collaboration data
US9218353B2 (en) * 2012-05-25 2015-12-22 Netapp, Inc. Method and system for name space propagation and file caching to remote nodes in a storage system
KR101694288B1 (ko) 2012-06-08 2017-01-09 한국전자통신연구원 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
US9575978B2 (en) 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment
CN103533006B (zh) * 2012-07-06 2019-09-24 中兴通讯股份有限公司 一种联合云盘客户端、服务器、系统和联合云盘服务方法
US9037856B2 (en) 2012-07-18 2015-05-19 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9547774B2 (en) 2012-07-18 2017-01-17 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US8805793B2 (en) * 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US8959067B1 (en) * 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
CN103577503A (zh) 2012-08-10 2014-02-12 鸿富锦精密工业(深圳)有限公司 云端文件存储系统及方法
US8984582B2 (en) 2012-08-14 2015-03-17 Confidela Ltd. System and method for secure synchronization of data across multiple computing devices
JP2014038569A (ja) 2012-08-20 2014-02-27 Hitachi Maxell Ltd ディスク記録内容バックアップシステムおよびディスク記録内容バックアップ方法
US9087191B2 (en) 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9075954B2 (en) 2012-08-29 2015-07-07 Dropbox, Inc. Requesting modification rights to a linked file set
US20140074783A1 (en) 2012-09-09 2014-03-13 Apple Inc. Synchronizing metadata across devices
US20140074663A1 (en) 2012-09-09 2014-03-13 Apple Inc. Integrating purchase history and metadata across devices
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US20140101310A1 (en) 2012-10-04 2014-04-10 Box, Inc. Seamless access, editing, and creation of files in a web interface or mobile interface to a collaborative cloud platform
EP2744169B1 (en) 2012-10-22 2016-01-13 Huawei Device Co., Ltd. Method and apparatus for playing streaming media files
US8819587B1 (en) 2012-10-30 2014-08-26 Google Inc. Methods of managing items in a shared workspace
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9037556B2 (en) * 2012-12-03 2015-05-19 Vmware, Inc. Distributed, transactional key-value store
US20140172783A1 (en) 2012-12-17 2014-06-19 Prowess Consulting, Llc System and method for providing computing environment delivery service with offline operations
US9143568B2 (en) 2012-12-18 2015-09-22 Microsoft Technology Licensing, Llc. Peer-to-peer sharing of cloud-based content
US9253075B2 (en) * 2012-12-19 2016-02-02 Palo Alto Research Center Incorporated Dynamic routing protocols using database synchronization
US9298391B2 (en) 2012-12-19 2016-03-29 Dropbox, Inc. Application programming interfaces for data synchronization with online storage systems
US10198140B2 (en) 2012-12-20 2019-02-05 Dropbox, Inc. Systems and methods for facilitating communication between users of a content management service
US9678978B2 (en) * 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
US9614907B2 (en) 2013-01-04 2017-04-04 Bittorrent, Inc. Expediting content retrieval using peer-to-peer networks
US9294485B2 (en) 2013-01-27 2016-03-22 Dropbox, Inc. Controlling access to shared content in an online content management system
US20150046557A1 (en) 2013-02-10 2015-02-12 Einar Rosenberg System, method and apparatus for using a virtual bucket to transfer electronic data
US9310981B2 (en) 2013-02-13 2016-04-12 Dropbox, Inc. Seamless editing and saving of online content items using applications
CN104009926B (zh) 2013-02-26 2017-04-12 杭州华三通信技术有限公司 Evi网络中的组播方法及边缘设备ed
US9020893B2 (en) * 2013-03-01 2015-04-28 Datadirect Networks, Inc. Asynchronous namespace maintenance
US9794760B2 (en) 2013-03-14 2017-10-17 Cisco Technology, Inc. Collaborative group and content management utilizing user activated collaboration threads
US10341275B2 (en) 2013-04-03 2019-07-02 Dropbox, Inc. Shared content item commenting
US20140304384A1 (en) 2013-04-04 2014-10-09 Dropbox, Inc. Uploading large content items
KR101451194B1 (ko) 2013-04-11 2014-10-16 (주)씨디네트웍스 콘텐츠 전송 네트워크에서의 거리 계산 방법 및 장치
US9218350B2 (en) 2013-04-30 2015-12-22 Microsoft Technology Licensing, Llc Searching and placeholders
US9552363B2 (en) * 2013-04-30 2017-01-24 Microsoft Technology Licensing, Llc File management with placeholders
US9166866B2 (en) 2013-04-30 2015-10-20 Microsoft Technology Licensing, Llc Hydration and dehydration with placeholders
US9405767B2 (en) 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
JP6507486B2 (ja) * 2013-05-10 2019-05-08 株式会社リコー 情報処理装置、プログラム、情報管理方法及び情報処理システム
US9189533B2 (en) 2013-05-29 2015-11-17 Microsoft Technology Licensing, Llc Sync framework extensibility
US20140359465A1 (en) 2013-05-31 2014-12-04 Nubo Software Ltd. Method and Apparatus for Annotated Electronic File Sharing
EP3005200A2 (en) 2013-06-03 2016-04-13 Good Start Genetics, Inc. Methods and systems for storing sequence read data
US20140365432A1 (en) 2013-06-10 2014-12-11 Dropbox, Inc. Dropsite for shared content
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US20150006475A1 (en) 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
US20150006146A1 (en) 2013-06-28 2015-01-01 Google Inc. Omega names: name generation and derivation
US9282169B1 (en) 2013-07-12 2016-03-08 Oxygen Cloud, Inc. Real-time user interaction-based alterations to the scope of data synchronization between client and remote devices
US20150019432A1 (en) 2013-07-12 2015-01-15 Qualcomm Incorporated Mobile payments using proximity-based peer-to-peer communication and an intent-to-pay gesture
JP6062551B2 (ja) * 2013-07-26 2017-01-18 株式会社日立製作所 差分データ転送システム及び方法
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
JP6183092B2 (ja) 2013-09-19 2017-08-23 セイコーエプソン株式会社 画像記録装置
US9098413B2 (en) 2013-10-18 2015-08-04 International Business Machines Corporation Read and write requests to partially cached files
US9692840B2 (en) 2013-11-11 2017-06-27 Dropbox, Inc. Systems and methods for monitoring and applying statistical data related to shareable links associated with content items stored in an online content management service
US20150142765A1 (en) 2013-11-17 2015-05-21 Zhen-Chao HONG System and method for enabling remote file access via a reference file stored at a local device that references the content of the file
US9544373B2 (en) 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US9304657B2 (en) 2013-12-31 2016-04-05 Abbyy Development Llc Audio tagging
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
US9547706B2 (en) * 2014-03-10 2017-01-17 Dropbox, Inc. Using colocation hints to facilitate accessing a distributed data storage system
AU2015241457B2 (en) 2014-03-31 2019-10-10 Cirata, Inc. Geographically-distributed file system using coordinated namespace replication
US9294558B1 (en) * 2014-03-31 2016-03-22 Amazon Technologies, Inc. Connection re-balancing in distributed storage systems
US9473576B2 (en) * 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US10075521B2 (en) * 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9680891B2 (en) 2014-04-18 2017-06-13 You42 Radio, Inc. System, method and network device for streaming data from a network
US10831380B2 (en) * 2014-05-28 2020-11-10 Hitachi Vantara Llc System and method of collision management in a namespace of a storage system
EP3149606B1 (en) * 2014-05-30 2019-05-08 Hitachi Vantara Corporation Metadata favored replication in active topologies
US10387451B2 (en) 2014-05-30 2019-08-20 Apple Inc. Synchronization system for multiple client devices
US10198452B2 (en) 2014-05-30 2019-02-05 Apple Inc. Document tracking for safe save operations
US10523723B2 (en) 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
US9729616B2 (en) * 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9729662B2 (en) * 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503402B2 (en) 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
US9984110B2 (en) * 2014-08-21 2018-05-29 Dropbox, Inc. Multi-user search system with methodology for personalized search query autocomplete
US10565293B2 (en) 2014-08-26 2020-02-18 Adobe Inc. Synchronizing DOM element references
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10296163B2 (en) 2014-09-25 2019-05-21 Oracle International Corporation Electronic presentation repository and interface
US9727470B1 (en) 2014-09-30 2017-08-08 EMC IP Holding Company LLC Using a local cache to store, access and modify files tiered to cloud storage
US9286102B1 (en) 2014-11-05 2016-03-15 Vmware, Inc. Desktop image management for hosted hypervisor environments
US9866650B2 (en) 2014-12-03 2018-01-09 Verizon Digital Media Services Inc. Stream monitoring across a distributed platform
US10116732B1 (en) * 2014-12-08 2018-10-30 Amazon Technologies, Inc. Automated management of resource attributes across network-based services
US10387794B2 (en) 2015-01-22 2019-08-20 Preferred Networks, Inc. Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
US9384226B1 (en) * 2015-01-30 2016-07-05 Dropbox, Inc. Personal content item searching system and method
US9185164B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9413824B1 (en) * 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US10831715B2 (en) * 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9183303B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Personal content item searching system and method
US9361349B1 (en) * 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US9852147B2 (en) 2015-04-01 2017-12-26 Dropbox, Inc. Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items
US11144510B2 (en) * 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US10803020B1 (en) * 2015-06-30 2020-10-13 EMC IP Holding Company LLC Data deduplication on a distributed file system
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9479578B1 (en) 2015-12-31 2016-10-25 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US20170208125A1 (en) 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data prefetch in cloud based storage system
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication

Also Published As

Publication number Publication date
EP3362911A1 (en) 2018-08-22
US20170126782A1 (en) 2017-05-04
EP3357217A1 (en) 2018-08-08
US9697269B2 (en) 2017-07-04
AU2016346893A1 (en) 2018-02-15
US10685038B2 (en) 2020-06-16
US20170126800A1 (en) 2017-05-04
JP2018537740A (ja) 2018-12-20
AU2016346890A1 (en) 2018-02-22
WO2017074695A1 (en) 2017-05-04
US10133804B2 (en) 2018-11-20
AU2016346891B2 (en) 2018-03-15
AU2016375909B2 (en) 2018-11-29
WO2017074696A1 (en) 2017-05-04
JP2019506644A (ja) 2019-03-07
EP3693870A1 (en) 2020-08-12
AU2016375909A1 (en) 2018-02-15
EP3356962A1 (en) 2018-08-08
EP3357217B1 (en) 2021-03-24
AU2016375909C1 (en) 2019-05-02
US20170126802A1 (en) 2017-05-04
JP6426325B1 (ja) 2018-11-21
US9571573B1 (en) 2017-02-14
US9479567B1 (en) 2016-10-25
US11144573B2 (en) 2021-10-12
WO2017112032A1 (en) 2017-06-29
US20170255687A1 (en) 2017-09-07
JP2018533776A (ja) 2018-11-15
US10740350B2 (en) 2020-08-11
AU2016346890B2 (en) 2018-03-29
EP3353994B1 (en) 2021-04-28
JP2018537741A (ja) 2018-12-20
AU2016346891A1 (en) 2018-02-22
AU2016346893C1 (en) 2019-05-02
WO2017074698A1 (en) 2017-05-04
US20200293548A1 (en) 2020-09-17
AU2016346893B2 (en) 2018-11-29
EP3353994A1 (en) 2018-08-01
JP6581717B2 (ja) 2019-09-25
JP6518002B2 (ja) 2019-05-22

Similar Documents

Publication Publication Date Title
JP6674532B2 (ja) 複数構内でのデジタルコンテンツアイテムのホスティングにおけるコンテンツアイテムブロック複製プロトコル
JP6603791B2 (ja) デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル
US9852147B2 (en) Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

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: 20200207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200306

R150 Certificate of patent or registration of utility model

Ref document number: 6674532

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