(57)【要約】ホストされたコンテンツアイテムに対する見かけ上のクラウドアクセス１つの実施形態では、例えば、ユーザエージェントを含むパーソナルコンピューティングデバイスにおいて実行される方法であって、該ユーザエージェントからコンテンツアイテムに対するブロックエージェント要求を受信することと、該コンテンツアイテムを構成するコンテンツアイテムブロックのコンテンツアイテムブロック識別子を決定することと、もしあれば、該コンテンツアイテムを構成するどのコンテンツアイテムブロックが該パーソナルコンピューティングデバイスのローカルストレージに格納されていないかを決定し、オンラインコンテンツ管理システムのブロックサーバから、該パーソナルコンピューティングデバイスのローカルストレージに格納されていないコンテンツアイテムブロックのいずれかをダウンロードすることと、該コンテンツアイテムを構成するコンテンツアイテムブロックのそれぞれのデータを、該ブロックエージェント要求に対する応答において、該ユーザエージェントに送信すること、を含む。【選択図】図１
2019505027.tif 000002
【特許請求の範囲】
【請求項１】
オンラインコンテンツ管理システムでホストされるコンテンツアイテムの見かけ上のクラウドアクセスのための方法であって、前記方法は、
コンピューティングデバイスにおいて、前記コンピューティングデバイスにおけるユーザエージェントからコンテンツアイテムに対する要求を受信することと、
前記コンテンツアイテムを構成するコンテンツアイテムブロックの識別子を識別することと、
前記コンピューティングデバイスのローカルストレージに格納されている１つ以上の前記コンテンツアイテムブロックを決定することと、
前記コンピューティングデバイスの前記ローカルストレージに格納されていない１つ以上の前記コンテンツアイテムブロックを、ネットワークを介して前記オンラインコンテンツ管理システムのサーバからダウンロードすることと、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックを前記ユーザエージェントへ送信すること、を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記要求は、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、前記要求における前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子に少なくとも部分的に基づく、方法。
【請求項３】
請求項１に記載の方法であって、さらに、
前記コンピューティングデバイスの前記ローカルストレージに格納されているメタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を読み取り、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、前記コンピューティングデバイスの前記ローカルストレージに格納されている前記メタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を読み取ることに、少なくとも部分的に基づく、方法。
【請求項４】
請求項１に記載の方法であって、さらに、 
前記コンテンツアイテムに対応するリンクを含むウェブページを前記ユーザエージェントへ送信することを含み、
前記コンテンツアイテムに対する前記要求を受信することは、前記コンピューティングデバイスにおける前記ウェブページの前記リンクのアクティベーションに少なくとも部分的に基づく、方法。
【請求項５】
請求項１に記載の方法であって、さらに、
前記オンラインコンテンツアイテム管理システムのサーバから、ネットワークを介して、前記コンピューティングデバイスの前記ローカルストレージに格納されていない前記１つ以上の前記コンテンツアイテムブロックの第２のコンテンツアイテムブロックを完全に受信する前に、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの第１のコンテンツアイテムブロックのストリーミングを、前記ユーザエージェントに開始することと、を含み、
前記ダウンロードすることは、前記完全に受信することに少なくとも部分的に基づき、
前記送信することは、前記ストリーミングを開始することに少なくとも部分的に基づく、方法。
【請求項６】
請求項５に記載の方法であって、前記第１のコンテンツアイテムブロックは、前記第２のコンテンツアイテムブロックではない、方法。
【請求項７】
請求項１に記載の方法であって、さらに、
前記オンラインコンテンツ管理システムのサーバから、ネットワークを介して、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を受信することを含み、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、ネットワークを介して、前記オンラインコンテンツ管理システムから前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を受信することに少なくとも部分的に基づく、方法。
【請求項８】
コンピューティングデバイスによって実行されると、請求項１乃至７の何れか１項に記載の方法を前記コンピューティングデバイスに実行させる命令を格納した１以上のコンピュータで読取可能な記憶媒体。
【請求項９】
コンピューティングデバイスであって、
１以上のプロセッサと、 
ローカルストレージと、
１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記コンピューティングデバイスにおけるユーザエージェントからコンテンツアイテムに対する要求を取得することと、
前記コンテンツアイテムを構成するコンテンツアイテムブロックの識別子を識別することと、
前記コンピューティングデバイスの前記ローカルストレージに格納された１つ以上の前記コンテンツアイテムブロックを決定することと、
オンラインコンテンツ管理システムから、前記コンピューティングデバイスの前記ローカルストレージに格納されていない１つ以上の前記コンテンツアイテムブロックを受信することと、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックを、ユーザエージェントにストリーミングすること、を実行させる命令を格納した１つ以上のコンピュータで読取可能な記憶媒体、
を備えるコンピューティングデバイス。
【請求項１０】
請求項９に記載のコンピューティングデバイスであって、前記要求は、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、前記要求において前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子に、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１１】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記コンピューティングデバイスの前記ローカルストレージに格納されているメタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を読み取ることを実行させ、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、前記コンピューティングデバイスの前記ローカルストレージに格納されている前記メタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を読み取ることに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１２】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記コンテンツアイテムに対応するリンクを含むウェブページを、前記ウェブブラウザに送信することを実行させ、
前記コンテンツアイテムに対する前記要求は、前記コンピューティングデバイスにおける前記リンクのアクティベーションに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１３】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記オンラインコンテンツ管理システムから、前記コンピューティングデバイスの前記ローカルストレージに格納されていない１つ以上の前記コンテンツアイテムの第２のコンテンツアイテムブロックを完全にダウンロードする前に、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの第１のコンテンツアイテムブロックを、前記ウェブブラウザへ送信することを開始することを実行させ、
前記受信することは、前記完全にダウンロードすることに、少なくとも部分的に基づき、
前記提供することは、前記送信を開始することに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１４】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を、前記オンラインコンテンツ管理システムから受信することを実行させ、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を識別することは、前記オンラインコンテンツ管理システムから前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの前記識別子を受信することに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１５】
請求項９に記載のコンピューティングデバイスであって、前記要求は、前記コンテンツアイテムが属するコンテンツアイテムネームスペースの識別子を含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックの識別子を識別することは、前記要求における前記コンテンツアイテムネームスペースの識別子に少なくとも部分的に基づく、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、オンラインコンテンツ管理システムに関する。より詳細には、本発明の実施形態は、オンラインコンテンツ管理サービスでホスト（host）されるコンテンツアイテムに対する見かけ上の（apparent）クラウドアクセスに関して以下で説明される。
【背景技術】
【０００２】
人々は、増え続けている量のデジタル「物（stuff）」を収集している。そのような物は、デジタル書類、スプレッドシート、プレゼンテーション、写真、ビデオ、音楽、および他のデジタル情報を含み得る。ごく最近まで、人々が全てのデジタル物を格納する主たる方法は、人々のパーソナルコンピューティングデバイス上であった。例えば、人のデジタル写真のコレクションは、それらのラップトップコンピュータのハードドライブ上でのみ格納されている。いくつかのケースでは、写真のコレクションは、パーソナルバックアップ記憶デバイス（例えば、外部のハードドライブ）にバックアップされている。
【０００３】
今日、高速のインターネット接続性の準偏在性および、モバイルコンピューティングの増加を伴い、人々は現在、それらのデジタル物をオンラインに記憶させるために、オンラインコンテンツサービスを利用している。この構成では、人々のデジタル情報は、オンライン管理サービスにより操作されるサーバ上に記憶され、インターネットまたは他のネットワークに接続される。デジタル情報を、オンラインデジタル管理サービスを用いて記憶することは、いくつかの利点がある。その一つは、ユーザが、パーソナルコンピューティングデバイス上で記憶させるよりも、多くの物を記憶させることができることである。例えば、オンラインコンテンツ管理差サービスは、テラバイト（ＴＢ）以上の記憶容量を提供することができる一方、ユーザのパーソナルコンピューティングデバイスのハードドライブが数百ギガバイト（ＧＢ）の余分な記憶容量しか持たない可能性がある。デジタル情報をオンライン管理サービスを用いて記憶することの別の利点は、パーソナルコンピューティングデバイスの紛失、盗難、または障害に対する回復力が提供されることである。例えば、ユーザは、自身のラップトップコンピュータが損失、盗難または破壊された場合に、重要な書類、写真等のコピーのみを失うことを知ることで安心することができる。デジタル情報を、コンテンツ管理サービスを用いて記憶することの更に別の利点は、ネットワークの接続性が存在するところはどこでも、情報が仮想的に利用可能であることである。例えば、ユーザは、自身の作業コンピュータから作業書類にアクセスし、自宅でラップトップまたはタブレットコンピュータを用いて当該書類で作業を継続することができる。
【０００４】
デジタル情報を、オンライン管理サービスを用いて記憶することの利点はまた、潜在的な欠点も含む。特に、ユーザは、ネットワークの接続性がない場合に（例えば、ユーザが飛行機にいる場合）、それらの情報にアクセスできないことである。ネットワークの接続性が利用可能であっても、オンラインコンテンツ管理サービスを用いて記憶されている情報へのアクセスは、低速、または、信頼性がなく、または、ユーザの期待にそぐわないものであり得る。
【０００５】
ここで説明した上記アプローチは、さらに追及しうるアプローチであって、既に着想され、追及されたアプローチではない。したがって、特に示唆しない限り、ここで説明した任意のアプローチが、ここに組み込まれることにより単に先行技術として認識されることが想定されるべきではない。
【図面の簡単な説明】
【０００６】
本発明の例示の実施形態が、限定するのではなく一例として説明され、添付図面の各図において、同様の参照番号は同様の要素を示す。
【図１】図１は、オンラインコンテンツ管理システムの環境を図示する。ここで、当該システムは、開示する実施形態に従って、ホストされたコンテンツアイテムに対する見かけ上のクラウドアクセスを実装するための構成要素を含む。
【図２】図２は、開示する実施形態に従う、オンラインコンテンツ管理システムのウェブサーバによりオンラインコンテンツ管理システムのクライアントに提供されるウェブページのグラフィカル表示を示す。
【図３】図３は、開示する実施形態に従う、ホストされたコンテンツいてむに対する見かけ上のクラウドアクセスに対するプロセスを示す。
【図４】図４は、本発明の例示の実施形態を具現化しうるコンピューティングデバイスのごく一般的なブロック図を示す。
【図５】図５は、コンピューティングデバイスの動作を制御するための基本的なソフトウェアシステムのブロック図である。
【発明を実施するための形態】
【０００７】
以下の詳細な説明において、本発明の実施形態の十分な理解を提供するために、説明の目的で多くの特定事例を記載する。しかしながら、本例示の実施形態がそれらの特定事例なしで実行されうるということが明らかであろう。他の例では、本例示の実施形態を不必要に不明りょうにすることを避けるために、既知の構成やデバイスがブロック図の形式で示される。
【０００８】
＜ホストされたコンテンツアイテムに対する見かけ上のクラウドアクセスの概要＞
クラウドにおいてホストされたコンテンツアイテムへの見かけ上のアクセスに対する、コンピュータ実装の技術を開示する。当該技術に従って、オンラインコンテンツ管理システムにより提供されたブロックエージェントがクライアント（例えば、パーソナルコンピューティングデバイス）にインストールされる。オンラインコンテンツ管理システムは、ウェブサーバおよびブロックサーバを有するオンラインコンテンツ管理システムを運用する。クライアントで動作する従来のユーザエージェント（例えば、従来のウェブブラウザアプリケーション）は、ウェブサーバからウェブページを検索する。ウェブページは、オンラインコンテンツ管理システムでホストされる１つ以上のコンテンツに対する１つ以上のリンクを含む。各リンクは、コンテンツアイテムのうち対応するものへのコンテンツアイテムアクセスアクションを行うために、ユーザによりアクティベートされうる。
【０００９】
本技術に従うと、１つのリンクがアクティベートされると、ユーザエージェントは、ブロックエージェント要求を、クライアントにおけるブロックエージェントに対して行う。ブロックエージェント要求は、アクティベートされたリンクに関連付けられたコンテンツアイテムに対するものである。ブロックエージェント要求を受信することに応じて、ブロックエージェントは、要求されたコンテンツアイテムを作り出す１つ以上のコンテンツアイテムブロックの１つ以上のコンテンツアイテムブロック識別子を決定する。１つ以上のブロック識別子を用いて、ブロックエージェントは、もしあれば、１つ以上のブロックのうち、どれが、クライアントにおいて既に記憶されているか、および、もしあれば、オンラインコンテンツ管理システムのブロックサーバからダウンロードされる必要があるかを判定する。ブロックエージェントは、ユーザエージェントからのブロックエージェント要求に対して、ブロックエージェント応答を返す。ブロックエージェント応答は、クライアントに既に記憶されている、要求されたコンテンツアイテムのいずれかのブロックまたは複数のブロック、または、ブロックサーバからダウンロードされる必要がある、要求されたコンテンツアイテムのいずれかのブロックまたは複数のブロックに基づきうる。ユーザエージェントのユーザには、アクセスされたコンテンツアイテムはオンラインコンテンツ管理システムから全体にダウンロードされると見えるかもしれない。しかしながら、実際には、コンテンツアイテムのいくつか、または全ては、クライアントにローカルに記憶されるブロックに基づいて、ブロックエージェントにより提供され得る。これは、オンラインコンテンツ管理システムからネットワークを介して全体のコンテンツアイテムをダウンロードする必要があることとは対照的である。このようにして、ブロックエージェントがユーザエージェントからブロックエージェント要求を受信した際に、コンテンツアイテムを構成する（make up）ブロックのいくつか、または全てがすでにクライアントに記憶されているならば、オンラインコンテンツ管理システムでホストされるコンテンツアイテムの全体を、ブロックエージェントを介して、より速くユーザに提供することができる。
【００１０】
本技術を、図面を参照して以下により詳細に説明する。
【００１１】
＜オンラインコンテンツ管理システムの環境＞
図１は、本発明の様々な実施の形態に従うオンラインコンテンツ管理システムの環境１００を示す。環境１００は、オンラインコンテンツ管理システム１０４のクライアント１０２の人間のユーザ１０８を含む。クライアント１０２とオンラインコンテンツ管理システム１０４は、ネットワーク１０４により接続される。クライアント１０２は、ユーザエージェント１１０、ブロックエージェント１１４、および、ローカルストレージ１１６とを有する。オプション的に、クライアント１０２は、クライアント１０２とオンラインコンテンツ管理システム１０４との間のコンテンツアイテムの同期を容易にするために、コンテンツアイテム同期エージェント１１２を有し得る。オンラインコンテンツ管理システム１０４は、ウェブサーバ１２２とブロックサーバ１２４とを有する。オプション的に、オンラインコンテンツ管理システム１０４は、クライアント１０２とオンラインコンテンツ管理システム１０４との間のコンテンツアイテムの同期を容易にするために、通知サーバ１１８とメタデータサーバ１２０とを有する。
【００１２】
＜クライアント＞
クライアント１０２は、固定的またはモバイルのパーソナルコンピューティングであり得る。例えば、パーソナルコンピュータ、デスクトップコンピュータ、ワークステーションコンピュータ、携帯電話、タブレットコンピュータ、ゲーミングコンソール、セットアップデバイス、またはコンピューティングデバイス等の他のものである。図１に示す構成要素に加えて、クライアント１０２は、例えば、以下に説明する図４のベーシックコンピューティングデバイス４００のハードウェア構成要素および以下に説明する図５のソフトウェアシステム５００等の他の構成要素を伴って構成され得る。
【００１３】
クライアント１０２は、ネットワーク１０６を介してオンラインコンテンツ管理システム１０４と接続および通信を行うためのネットワーク機能を有する。そのようなネットワーク機能は、例えば、ハイパーテキスト転送プロトコル（HTTP）またはハイパーテキスト転送プロトコルセキュア（HTTPS）等のアプリケーションレイヤープロトコルに従ってクライアント１０３とオンラインコンテンツ管理システム１０４との間のネットワーク通信をサポートするオンラインコンテンツ管理システム１０４へインターネットプロトコル（IP）パケットを送信および当該オンラインコンテンツ管理システム１０４から受信するための機能を含みうる。
【００１４】
クライアント１０２は、ローカルストレージ１１６も有する。ローカルストレージ１１６は、物理ホストインタフェース（シリアル接続ＳＣＳＩ、シリアルＡＴＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ファイバーチャネル、ＵＳＢなど）によってクライアント１０２のバスへ接続される電子、磁気又は光学のデータストレージ機構であってもよい。例えば、データストレージ機構は、パーソナルコンピューティングデバイスのハードディスク、半導体ドライブ、又は光学ドライブであってもよい。代替的に、ローカルストレージ１１６は、クライアント１０２上に“マウントされた”ローカルエリアネットワーク（LAN）上の例えばネットワークデータストレージデバイスなどのネットワークドライブであってもよい。ネットワークドライブをマウントすることによって、ネットワークドライブに格納されたデータは、ネットワークドライブがクライアント１０２から離れてネットワークを介して物理的に配置される場合であっても、ユーザ１０８や、クライアント１０２上で実行するアプリケーション（例えば、ユーザエージェント１１０とブロックエージェント１１４）には、クライアント（すなわち、デバイスの物理的なドライブ上）に格納されるように見えるようになる。一度マウントされると、クライアント１０２は、通常、UNIX用のネットワークファイルシステムプロトコル（NFS）又はWINDOWS用のサーバメッセージブロック（SMB）などのネットワークファイルシステムブロックに従ってネットワークドライブからデータを読み出し、ネットワークドライブへデータを書き込む。 
【００１５】
＜ユーザエージェント＞
クライアント１０２は、ユーザエージェント１１０で構成される。ユーザエージェント１１０は、従来のウェブブラウザアプリケーション、例えば、GOOGLE CHROME、FIREFOX、SAFARI、INTERNET EXPLORER、OPERA, ANDROID BROWSER、または、当業者によく知られている、現在利用可能または将来開発される他のウェブブラウザアプリケーション、でありうる。代替的に、ユーザエージェント１１０は、APPLE IOSベース、または、GOOGLE ANDROIDベースのモバイルコンピューティングデバイスに対するモバイルアプリケーション等の個別クライアントアプリケーションであり得る。
【００１６】
動作中に、ユーザ１０８は、オンラインコンテンツ管理システム１０４のウェブサーバ１２２からウェブページを取得するために、ユーザエージェント１１０を使用する。例えば、ユーザ１０８は、ユーザエージェント１１０のアドレスバーに、ウェブページのアドレスを入力するか、クライアント１０２のビデオディスプレイに表示されたウェブページへハイパーリンクをアクティベートしうる。ウェブページは、HTTPまたはHTTPSプロトコルに従って、ネットワーク１０６を介して、ウェブサーバ１２２からクライアント１０２へ提供されるウェブページのインストラクションから構成されうる。ウェブページのインストラクションは、１つ以上の異なる種類の、ウェブの規格ベースのインストラクションの組み合わせで構成されうる。例えば、ウェブページのインストラクションは、ハイパーテキストマークアップ言語（HTML）、階層式スタイルシート（CSS）、ジャバスクリプト、ジャバスクリプトオブジェクトノーテーション（JSON）、拡張可能マークアップ言語（XML）、または、当業者にはよく知られている、現在知られているまたは将来開発される他の種類のウェブ規格ベースのインストレクションのうちの１つ以上の組み合わせから構成されうる。
【００１７】
ユーザエージェント１１０により処理され、クライアント１０２のビデオディスプレイ上に表わせられる場合に、ウェブページは、オンラインコンテンツ管理システム１０４で保持されるユーザ１０８のユーザカウントに関連付けられた１つ以上のコンテンツアイテムのリストを提供する。「コンテンツアイテム」は、オンラインコンテンツ管理システム１０４の管理下のデジタル情報の論理的なコレクションとして定義されうる。クライアント１０２のローカルストレージ１１６に格納される場合、コンテンツアイテムは、ファイルシステムにおけるファイルとして格納されうる。したがって、コンテンツアイテムは、既知のファイルタイプに対応しうる。例えば、コンテンツアイテムは、ドキュメントファイルのタイプ（例えば、ワード処理ドキュメント、プレゼンテーションドキュメント、スプレッドシートドキュメント、又は他のタイプのドキュメント）、画像ファイルのタイプ（例えば、．ｊｐｇ、．ｔｉｆｆ、．ｇｉｆ、又は他のタイプの画像ファイル）、音声ファイルのタイプ（例えば、．ｍｐ３、．ａｉｆｆ、．ｍｐ４、ｗａｖ、又は他のタイプの音声ファイル）、ビデオファイルのタイプ（例えば、．ｍｏｖ、．ｍｐ４、．ｍ４ｖ、又は他のタイプのビデオファイル）、ウェブページファイルのタイプ（例えば、．ｈｔｍ、．ｈｔｍｌ、又は他のタイプのウェブページファイル）、テキストファイル又はリッチテキストファイルのタイプ（例えば、．ｔｘｔ、．ｒｔｆ、又は他のタイプのテキスト若しくはリッチテキストファイル）、又は他のタイプのファイルであってもよい。ローカルストレージ１１６に格納されると、コンテンツアイテムは、ファイルシステムのファイル−フォルダ階層内のファイルシステムパスを有しうる。例えば、ローカルストレージに格納されるコンテンツアイテムについてのファイルシステムパスは、文字列として “C:\folder1\folder2\my.file”で表され、ここで、“C:\” は、ファイルシステムのルートを示し、“folder1” はファイルシステムのルートでのファイルシステムフォルダを示し、“folder2”はファイルシステムフォルダ“folder1” 内のファイルシステムフォルダを示し、“my.file”はコンテンツアイテムに対応するファイルシステムフォルダ“folder2”内のファイルを示す。文字“\”は、異なるファイルシステムフォルダや文字列表現のファイルリファレンスを描く文字列表現において使用される。
【００１８】
＜ウェブページをリストするコンテンツアイテム＞
図２は、開示する実施形態に従う、オンラインコンテンツ管理システム１０４のウェブサーバ１２２により、オンラインコンテンツ管理システム１０４のクライアント１０２に提供された、ウェブページのグラフィカル表示２００を示す。例えば、ウェブページは、ユーザ１０８がユーザエージェント１１０を介して、オンラインコンテンツ管理システム１０４で認証に成功した後に、提供されうる。
【００１９】
示されるように、グラフィカル表示２００は、ユーザ１０８のアカウントに関連付けられたコンテンツアイテムのセットの、双方向のコンテンツアイテムのファイル−フォルダの階層を提供する。グラフィカル表示はまた、ユーザ１０８のアカウント名、この例では、“Jon Doe”を表示する。
【００２０】
グラフィカル表示２００はまた、コンテンツアイテムのフォルダと、コンテンツアイテムのファイル−フォルダの階層における現在のコンテンツアイテムのフォルダに対するコンテンツアイテムを表示する。コンテンツアイテムのファイル−フォルダの階層におけるコンテンツアイテムのフォルダは、当該コンテンツアイテムのファイル−フォルダの階層にもある、１つ以上の他のコンテンツアイテムのフォルダ、および／または、１つ以上のコンテンツアイテムに対する名前付きの論理的コンテナである。現在のコンテンツアイテムのフォルダは、グラフィカル表示２００により示される。この例では、現在のコンテンツアイテムのフォルダは、コンテンツアイテムのファイル−フォルダの階層における最高位の、または、最下位のコンテンツアイテムのフォルダである。したがって、現在のコンテンツアイテムのフォルダは、グラフィカル表示２００において“\”として示される（例のオンラインコンテンツ管理サービス名“Dropbox”の隣）。
【００２１】
ユーザ１０８のアカウントに関連付けられたコンテンツアイテム、および、現在のコンテンツアイテムのフォルダに含まれるコンテンツアイテムのフォルダは、以下の表におけるグラフィカル表示２００の現在のフォルダインジケーターにおいて示される。表は、３つの表示欄、すなわち、name（名前）欄、kind（種類）欄、およびModified（修正）欄を有する。欄の名前は、表の最初の列で示される。表の２番目とそれに続く列は、コンテンツアイテムのフォルダ、または、現在のコンテンツアイテムのフォルダにおけるコンテンツアイテムに対応する。name欄は、コンテンツアイテムのフォルダと現在のコンテンツアイテムのフォルダにおけるコンテンツアイテムの名前を含む。kind欄は、コンテンツアイテムのフォルダと現在のコンテンツアイテムのフォルダにおけるコンテンツアイテムの種類を含む。特に、kind欄における各コンテンツアイテムフォルダまたはコンテンツアイテムの種類は、表における対応する列がコンテンツアイテムのフォルダまたはコンテンツアイテムに対応するかを示し、もしコンテンツアイテムであれば、コンテンツアイテムのコンテンツの種類（例えば、Document（書類）、Image（画像）、Video（ビデオ）、Audio（音声））を示す。Modified欄は、オンラインコンテンツ管理システム１０４には既知である現在のフォルダにおける各コンテンツアイテムの最後の修正の日付を含む。
【００２２】
各コンテンツアイテムの名前はまた、対応するコンテンツアイテムに対するアクセスのアクションを実行するための実行可能なリンクでもある。ユーザ１０８は、コンテンツアイテムに対する実行可能なリンクをアクティベートし、ユーザエージェント１１０に、ウェブページのインストラクションに従うコンテンツアイテムに対するアクセスのアクションを実行させる。アクセスのアクションは、コンテンツアイテムの少なくとも一部をダウンロードまたはストリーミングすることを含む。クライアント１０２における提示であるならば、コンテンツアイテムのコンテンツのタイプに依存して、生じる提示は変化しうる。例えば、ユーザ１０８は、実行可能なリンク２０２を（例えば、マウスのクリックまたはタッチチジェスチャーで）アクティベートすると、ドキュメント“Some Document”のコンテンツがクライアント１０２のビデオディスプレイに表示されうる。同様に、ユーザ１０８は実行可能なリンク２０８をアクティベートする場合、“Some Image”の画像が、ビデオディスプレイに表示される。ユーザ１０８が実行可能なリンク２０４をアクティベートする場合、“Some Music”の音楽が、クライアント１０２のスピーカーデバイスを介して聞こえるように再生を開始する。ユーザ１０８が実行可能なリンク２０６をアクティベートする場合、“Some Video”のビデオが、ビデオディスプレイおよびスピーカーデバイスを介して、クライアント１０２において再生を開始する。
【００２３】
＜ブロックエージェント要求＞
いくつかの実施形態に従って、ユーザ１０８は、コンテンツアイテムに対応する実行可能なリンク（例えば、２０２，２０４、２０６、２０７）をアクティベートする際、ウェブページのインストラクションは、ユーザエージェント１１０に対して、ブロックエージェント要求をクライアント１０２におけるブロックエージェント１１４に送信するように命令する。ブロックエージェント要求は、HTTPまたはHTTPSプロトコルに従って、ブロックエージェント１１４に送信されうる。したがって、ブロックエージェント１１４は、ユーザエージェント１１０に対して、HTTPサーバまたはHTTPSサーバとして機能しうる。
【００２４】
ブロックエージェント要求は、要求されたコンテンツアイテムを識別する情報を含みうる。例えば、ブロックエージェント要求は、以下のものの１つ以上を識別する。
・コンテンツアイテムの識別子  −  要求されたコンテンツアイテムの固有の識別子。
・コンテンツアイテムネームスペースの識別子  −  これは、要求されたコンテンツアイテムが属するコンテンツアイテムのネームスペースの識別子でありうる。この場合、コンテンツアイテムの識別子もブロックエージェント要求において特定されているならば、コンテンツアイテムの識別子は、コンテンツアイテムネームスペース内でのみ固有でありうる。コンテンツアイテムのネームスペースは、典型的には共通のアクセス権限を有する、オンラインコンテンツ管理システム１０４の管理下の１つ以上の関連コンテンツアイテムのグループとして定義されうる。例えば、ユーザ１０８のアカウントにのみアクセス可能なコンテンツアイテムは、１つのコンテンツアイテムネームスペースに属し、複数のユーザのアカウント間で共有されるコンテンツアイテムのグループは、別のコンテンツアイテムネームスペースとなりうる。
・コンテンツアイテムのファイル−フォルダの階層パス  −コンテンツアイテムの  ファイルフォルダ階層におけるコンテンツアイテムへのパスと似たファイルシステム。例えば、グラフィカル表示２００におけるリストを参照すると、コンテンツアイテムのフォルダ“Some Folder\”における“myfile”と名前が付けられたコンテンツアイテムへのパスは、“\Some folder\myfile”であり、一方、コンテンツアイテム“Some Music\”へのパスは、“\Some music\”でありうる。
【００２５】
ブロックエージェント要求をブロックエージェント１１４に送信することに応答して、ユーザエージェント１１０は、ブロックエージェント１１４からブロックエージェント応答を受信する。ブロックエージェント応答は、ユーザエージェント１１０にダウンロードされた、または、ストリーミングされた、要求されたコンテンツアイテムを含みうる。
【００２６】
＜ブロックエージェント＞
ユーザエージェント１１０からの要求されたコンテンツアイテムに対するブロックエージェント要求を受信することに応答して、ブロックエージェント１１４は、要求されたコンテンツアイテムを構成するコンテンツアイテムブロックの識別子を決定する。コンテンツアイテムブロックは、コンテンツアイテムのアルゴリズムで決定された部分として定義されうる。例えば、最後のコンテンツアイテムを除いて全てのコンテンツアイテムが必然的に固定サイズとなるように、当該アルゴリズムは、バイト境界上のコンテンツアイテムを、固定ブロックサイズの転属的なコンテンツアイテムブロックに分割する。最後のコンテンツアイテムブロックは、固定サイズ、または、コンテンツアイテム全体のサイズに依存して、固定サイズよりも小さいサイズとなりうる。コンテンツアイテム全体のサイズが、固定サイズ以下である場合、単一のコンテンツアイテムブロックはコンテンツアイテムを構成する。
【００２７】
コンテンツアイテムブロックの識別子は、暗号ハッシュ関数をコンテンツアイテムブロックに適用することにより、生成されうる。暗号ハッシュ関数により出力されたコンテンツアイテムブロックのダイジェスト、またはその符号化は、コンテンツアイテムブロックに対するコンテンツアイテムブロックの識別子として使用されうる。暗号ハッシュ関数は、例えば、コンテンツアイテムブロックに適用された場合に、全て固有の２５６ビットのハッシュを生成する、セキュアハッシュアルゴリズム−２５６（SHA-256）とすることができる。現在開発されている、または将来開発される、他の既知のハッシュ関数（例えば、MD4、 MD5、 SHA-1、他のSHA-2関数）は、目前の特定の実施形態の要件に従って使用されうる。
【００２８】
コンテンツアイテムを構成する１つ以上のコンテンツアイテムブロックから生成された、一連の１つ以上のコンテンツアイテムブロックの識別子は、コンテンツアイテムに対するコンテンツアイテムブロックのリストをと称されうる。例えば、５メガバイトのサイズのコンテンツアイテムは、２つの連続するコンテンツアイテムブロックの識別子、B1、B2を有するコンテンツアイテムブロックのリストに関連付けられる。コンテンツアイテムブロックの識別子、B1は、最初の４メガバイトのコンテンツアイテムから暗号ハッシュ関数を適用することにより生成されうる。また、コンテンツアイテムの識別子、B2は、残る１メガバイトのコンテンツアイテムに暗号ハッシュ関数を適用することにより生成されうる。
【００２９】
＜コンテンツアイテムのメタデータ＞
１つの実施形態に従うと、要求されたコンテンツアイテムに対するユーザエージェント１１０からのブロックエージェント要求を受信することに応答して、要求されたコンテンツアイテムに対するコンテンツアイテムブロックのリストを決定するために、ブロックエージェント１１４は、クライアント１０２のローカルストレージ１１６に格納されているコンテンツアイテムメタデータを調べる（参考にする）。コンテンツアイテムメタデータは、コンテンツアイテムを、それらのコンテンツアイテムに対するコンテンツアイテムブロックリストにマッピングする。具体的には、コンテンツアイテムメタデータは、コンテンツアイテムに対するコンテンツアイテムブロックリストのインデックスとして機能する。コンテンツアイテムのメタデータにおける各コンテンツアイテムブロックリストは、そのコンテンツアイテムブロックリストに対する固有キーに関連付けられる。当該キーは、コンテンツアイテムの識別子、コンテンツアイテムネームスペースの識別子、キー付きのコンテンツアイテムブロックのリストに対応するコンテンツアイテムに対するコンテンツアイテムファイル−フォルダ階層パス、のうちの１つ以上に基づきうる。ブロックエージェント要求における情報（例えば、コンテンツアイテムの識別子、コンテンツアイテムネームスペースの識別子、および／または、キー付きのコンテンツアイテムブロックのリストに対応するコンテンツアイテムに対するコンテンツアイテムファイル−フォルダ階層パス）を用いて、ブロックエージェントは、コンテンツアイテムのメタデータにおいて要求されたコンテンツアイテムに対するコンテンツアイテムブロックのリストを検索する。
【００３０】
他の実施形態によれば、要求されたコンテンツアイテムに対するコンテンツアイテムブロックのリストは、ブロックエージェント１１４へのブロックエージェント要求において特定される。このケースでは、ブロックエージェント１１４は、要求されたコンテンツアイテムに対するコンテンツアイテムブロックのリストを決定するために、コンテンツアイテムメタデータを調べる必要がある。
【００３１】
＜不足しているコンテンツアイテムブロックの決定＞
要求されたコンテンツアイテムを構成するコンテンツアイテムブロックの全て、またはいくつかが、クライアント１０２におけるローカルストレージ１１６に格納されていないケースが起こり得る。このケースでは、ブロックエージェント１１４は、ローカルストレージ１１６から要求されたコンテンツアイテムの全体を提供することはできず、不足しているコンテンツアイテムブロックを、オンラインコンテンツ管理システム１０４のブロックサーバ１２４からダウンロードしなければならない。要求されたコンテンツアイテムのうち、どのコンテンツアイテムブロックが既にクライアント１０２のローカルストレージ１１６に格納されているかを決定するために、ブロックエージェント１１４は、要求されたコンテンツアイテムに対するコンテンツアイテムブロックにおけるコンテンツアイテムブロックの識別子を用いる。例えば、コンテンツアイテムブロックメタデータは、ローカルストレージ１１６に格納されうる。それは、ローカルストレージ１１６に現在格納されているコンテンツアイテムブロックのコンテンツアイテムブロック識別子を含む。
【００３２】
コンテンツアイテムブロックのメタデータは、ブロックエージェント１１４により、コンテンツアイテムブロックがローカルストレージ１１６に加えられる、または、コンテンツアイテムブロックがローカルストレージ１１６から除去されるように、更新されうる。例えば、ブロックエージェント１１４は、ブロックサーバ１２４からのコンテンツアイテムブロックのダウンロードに成功した後、コンテンツアイテムブロックのメタデータを更新する。この更新は、コンテンツアイテムブロックメタデータにおいて、ダウンロードされたコンテンツアイテムブロックのコンテンツアイテムブロック識別子を加えるまたは有効としてマークすることを含む。ブロックエージェント１１４はまた、ローカルストレージ１１６において、コンテンツアイテムブロックを除去または削除された後に、コンテンツアイテムブロックメタデータを更新しうる。この更新は、コンテンツアイテムブロックのメタデータにおいて、除去または削除されたコンテンツアイテムブロックのコンテンツアイテムブロック識別子を除去、削除、または無効としてマークすることを含みうる。
【００３３】
ブロックエージェント１１４は、ローカルストレージ１１６に格納されているコンテンツアイテムブロックを周期的に除去し、新しいコンテンツアイテムブロックまたは他のアプリケーションのために、ローカルストレージ１１６において利用可能なストレージスペースを解放しうる。例えば、ブロックエージェント１１４は、ローカルストレージ１１６に格納されている、アクセス頻度が最も低い１つ以上のコンテンツアイテムブロックを周期的に除去しうる。例えば、ブロックエージェント１１４は、コンテンツアイテムブロックにより使用されるローカルストレージの量がストレージの制約を満たさないことを検出したことを受けて、アクセス頻度が最も低い１つ以上のコンテンツアイテムブロックを除去しうる。ストレージの制約は、以下の全てまた、サブセット、または上位セットに基づきうる。
・すなわち、コンテンツアイテムブロックにより現在使用されているローカルストレージ１１６のストレージスペースの全体の量、
・コンテンツアイテムブロックにより現在使用されているローカルストレージ１１６のストレージスペースのパーセンテージの量、
・ローカルストレージ１１６において現在利用可能なストレージスペースの全体の量、および、
・ローカルストレージ１１６において現在利用可能なストレージスペースのパーセンテージの量、である。
【００３４】
コンテンツアイテムブロックのメタデータは、コンテンツアイテムブロックがコンテンツアイテム同期の一部として、ローカルストレージ１１６へ加えられる、またはローカルストレージ１１６から除去されるように、同期エージェント１１２により更新されうる。特に、同期エージェント１１２は、通知サーバ１１８へのロングポーリング接続を維持しうる。オンラインコンテンツ管理システム１０４がクライアント１０２に対するコンテンツアイテムを更新している場合、同期更新通知メッセージが、ロングポーリング接続を介して通知サーバ１１８により、同期エージェント１１２へ送信されうる。同期更新通知メッセージは、コンテンツアイテムの更新がオンラインコンテンツ管理システム１０４から利用可能であることを、同期エージェント１１２へ通知する働きをする。同期更新通知メッセージを受信することに応答して、同期エージェント１１２は、メタデータサーバ１２０に連絡し、クライアント１０２に対してどのようなコンテンツアイテムの更新が利用可能かを決定する。このプロセスでは、メタデータサーバ１２０は、同期サーバ１１２がブロックサーバ１２４からダウンロードすべき新しいコンテンツアイテムブロックのコンテンツアイテムブロック識別子を返しうる。これらのコンテンツアイテムブロックをブロックサーバ１２４からダウンロードすることに成功したことを受けて、同期エージェント１１２は、コンテンツアイテムブロックのメタデータを更新しうる。この更新は、コンテンツアイテムブロックのメタデータにおいて、ダウンロードされたコンテンツアイテムブロックのコンテンツアイテムブロック識別子を加える、または、有効としてマークすること含む。
【００３５】
同期エージェント１１２はまた、コンテンツアイテムおよびそれらを構成するコンテンツアイテムブロックは、コンテンツアイテムの同期の一部として、ローカルストレージ１１６から除去または削除される場合、コンテンツアイテムブロックのメタデータを更新しうる。このケースでは、同期エージェント１１２は、コンテンツアイテムの同期の一部として、ローカルストレージ１１６から除去または削除されたコンテンツアイテムブロックのコンテンツアイテムブロック識別子を除去、削除、または無効としてマークしうる。
【００３６】
同期エージェント１１２はまた、新しいコンテンツアイテムがローカルストレージに加えられた場合、または、ローカルストレージ１１６における現存のコンテンツアイテムが編集または修正された場合、コンテンツアイテムブロックのメタデータを更新しうる。このケースでは、同期エージェント１１２は、コンテンツアイテムブロックのメタデータにおいて、新しいコンテンツアイテムブロックのコンテンツアイテムブロック識別子を加える、または、有効としてマークしうる。新しいコンテンツアイテムのケースでは、新しいコンテンツアイテムの全てのコンテンツアイテムブロックが、新しいものでありうる。修正または編集されたコンテンツアイテムのケースでは、修正または編集されたコンテンツアイテムブロックのいくつかのコンテンツアイテムブロックのみが新しいものでありうる。
【００３７】
現在ローカルストレージ１１６に格納されているコンテンツアイテムブロックのコンテンツアイテムの識別子を含めることに加えて、コンテンツアイテムブロックのメタデータはまた、各コンテンツアイテムブロックの識別子に対して、識別されたコンテンツアイテムブロックが格納されているローカルストレージ１１６に、位置のアドレスを格納し得る。アドレスは、例えば、１つ以上のコンテンツアイテムブロックを含むファイルシステムにおけるファイルへのパスまたはファイルの識別子でありうる。
【００３８】
ファイルは、複数のコンテンツアイテムブロックを含み得るので（例えば、ファイルがコンテンツアイテムである場合）、コンテンツアイテムのメタデータにおけるコンテンツアイテムの識別子に関連付けられたアドレスは、バイトオフセット情報を特定しうる。バイトオフセット情報は、ファイルの始めに関連するファイル内の対応するコンテンツアイテムブロックの開始を識別しうる。
【００３９】
代わりとして、コンテンツアイテムのメタデータにおけるアドレスは、ファイルを識別し、コンテンツアイテムのメタデータにおいてコンテンツアイテムブロックのリストと関連付けられうる。この代替案において、コンテンツアイテムブロックのリストにおいて識別された特定のコンテンツアイテムブロックは、コンテンツアイテムブロックにおけるコンテンツアイテムブロックの識別子の順序に基づいて、また、コンテンツアイテムを連続的なコンテンツアイテムブロックに分割するために使用された同じアルゴリズムに基づいて、ファイル内に位置しうる。
【００４０】
＜不足しているコンテンツアイテムブロックのダウンロード＞
ブロックエージェント１１４が、要求されたコンテンツアイテムのコンテンツアイテムブロックがクライアント１０２におけるローカルストレージ１１６に現在格納されていないと決定した後、ブロックエージェント１１４は、ブロックサーバ１２４から、不足しているコンテンツアイテムブロックをダウンロードする。そのためには、ブロックエージェント１１４は、ダウンロードされるコンテンツアイテムブロックのコンテンツアイテムブロック識別子を特定するブロックサーバ１２４に対して、ブロックサーバ要求を送信しうる。
【００４１】
ブロックサーバ１２４からコンテンツアイテムブロックをダウンロードした後、ブロックエージェント１１４は、ローカルストレージ１１６に（例えば、ファイルの一部として）コンテンツアイテムブロックを格納しうる。ブロックエージェント１１４はまた、ユーザエージェント１１０からのブロックエージェント要求に対するブロックエージェント応答において、コンテンツアイテムブロックのデータを、ユーザエージェント１１０に送信しうる。ここで、要求されたコンテンツアイテムは、例えば、音声またはビデオ等のストリーミングデータのタイプであり、ブロックエージェント１１４は、ローカルストレージ１１６にダウンロードされたコンテンツアイテムブロックを保持することを見送る。代わりに、コンテンツアイテムブロックのデータがネットワーク１０６を介してブロックサーバ１２４から受信されるので、ブロックエージェント１１４は、データをローカルストレージ１１６に保持することなく、データをユーザエージェント１１０にストリーミングしうる。このようにして、要求されたコンテンツアイテムは、ブロックエージェント１１４を介してブロックサーバ１２４からユーザエージェント１１０へ効果的にストリーミングされる。
【００４２】
＜サンプル動作＞
以降の説明は、プロセッサの制御下でデバイスの動作を行わせる、コンピュータで実行可能な命令を用いて実施されうる方法のステップを示す。コンピュータで実行可能な命令は、ハードディスク、半導体ドライバ、ＣＤ、ＤＶＤ、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に格納されうる。コンピュータで実行可能な命令はまた、例えば、インターネット上の記憶場所（例えば、ウェブサーバ）からダウンロード及びインストールするための、ダウンロード可能で、コンピュータで実行可能な命令のトークンのセットとして格納されうる。
【００４３】
図３は、本発明のいくつかの例示の実施形態に従う、ホストされたコンテンツアイテムの見かけ上のクラウドアクセスに対する技術を実行する際の、ブロックエージェント１１４の動作３００を示すフローチャートである。動作は以下の通りである。
【００４４】
動作３０２において、ブロックエージェント１１４は、ユーザエージェント１１０からコンテンツアイテムに対するブロックエージェント要求を受信する。例えば、ブロックエージェント１１４は、ユーザ１０８が要求されたコンテンツアイテム上でコンテンツアイテムアクセスアクションを実行するためにリンクをアクティベートした後に、ユーザエージェント１１０からブロックエージェント要求を受信しうる。コンテンツアイテムアクセスアクションは、例えば、ユーザエージェント１１０へ要求されたコンテンツアイテムの少なくとも一部分をダウンロードすること、および／または、ユーザエージェント１１０に要求されたコンテンツアイテムの少なくとも一部を示すことでありうる。
【００４５】
ブロックエージェント要求は、様々な手法で要求されたコンテンツアイテムを識別しうる。１つの手法では、ブロックエージェント要求は、要求されたコンテンツアイテムの固有の識別子（すなわち、コンテンツアイテムの識別子）により、要求されたコンテンツアイテムを識別しうる。別の手法では、ブロックエージェント要求は、要求されたコンテンツアイテムが増加するコンテンツアイテムネームスペースのコンテンツアイテムネームスペース識別子とコンテンツアイテムのコンテンツアイテムファイル−フォルダ階層パスにより、要求されたコンテンツアイテムを識別しうる。要求されたコンテンツアイテムのコンテンツアイテムファイル−フォルダ階層パスは、相対パスでありうる。相対パスは、要求されたコンテンツアイテムが属するコンテンツアイテムのネームスペースに関連しうる。また、相対パスは、要求されたコンテンツアイテムが属するコンテンツアイテムネームスペースが入れ子にされる、ルートコンテンツアイテムネームスペースに関連しうる。例えば、コンテンツアイテム“my.file”は、‘ABC123’のコンテンツアイテムネームスペースの識別子を有するコンテンツアイテムネームスペースに属しうる。コンテンツアイテムネームスペース‘ABC123’は、パス‘\myfolder1\myfolder2\’におけるルートコンテンツアイテムネームスペース内で入れ子にされうる。このケースでは、コンテンツアイテムに対するブロックエージェント要求は、‘ABC123’のコンテンツアイテムネームスペースと、‘\myfolder1\myfolder2\my.file’のコンテンツアイテムファイル−フォルダ階層パス、または、‘\my.file’のパスを特定しうる。
【００４６】
動作３０４では、ブロックエージェント１１４は、要求されたコンテンツアイテムに対する現在のコンテンツアイテムブロックを決定する。いくつかの実装では、コンテンツアイテムブロックのリストは、ブロックエージェント要求において特定される。しかしながら、コンテンツアイテムブロックのリストがブロックエージェント要求において特定されない場合、ブロックエージェント１１４は、クライアント１０２におけるローカルストレージ１１６に格納されているコンテンツアイテムメタデータを調べる。そのようにして、ブロックエージェント１１４は、コンテンツアイテムの識別子、または、コンテンツアイテムネームスペースの識別子とコンテンツアイテムファイル−フォルダ階層パスとの組み合わせを、コンテンツアイテムメタデータへのインデックスとして用いる。インデックスは、要求されたコンテンツアイテムに対する現在のコンテンツアイテムブロックに、コンテンツアイテムメタデータにおいて関連付けられる。例えば、メタデータは、コンテンツアイテムネームスペースの識別子‘ABC123’とコンテンツアイテムファイル−フォルダ階層パス‘\myfolder1\myfolder2\my.file’との組み合わせを、[‘B1’, ‘B2’, ‘B3’]の要求されたコンテンツアイテムに対する現在のコンテンツアイテムブロックリストに関連付けうる。ここで、B1、B2、およびB3は、要求されたコンテンツアイテムを構成する３つのコンテンツアイテムブロックのコンテンツアイテムブロック識別子である。
【００４７】
動作３０６では、ブロックエージェント１１４は、要求されたコンテンツアイテムに対する現在のコンテンツアイテムブロックにおける第１のコンテンツアイテムブロックの識別子を取得する。
【００４８】
動作３０８では、ブロックエージェント１１４は、第１のコンテンツアイテムブロックの識別子により識別されるコンテンツアイテムブロックが、クライアント１１２におけるローカルストレージ１１６にローカルに格納されているかを判定（決定）する。この判定は、クライアント１１２におけるローカルストレージ１１６に格納されているコンテンツアイテムブロックのメタデータを調べるブロックエージェント１１４によりなされうる。コンテンツアイテムブロックメタデータは、クライアント１１２におけるローカルストレージ１１６にローカルに格納されているコンテンツアイテムブロックのコンテンツアイテムブロック識別子を含む。加えて、コンテンツアイテムブロックメタデータは、各コンテンツアイテムブロック識別子に対するローカルストレージ１１６における位置のアドレスを含む。ここで、コンテンツアイテムブロック識別子により識別されるコンテンツアイテムブロックはローカルストレージ１１６に格納される。例えば、アドレスは、１つ以上の識別されたコンテンツアイテムブロックを格納するファイルシステムにおけるファイルへのパスでありうる。
【００４９】
ブロックエージェント１１４が、動作３０８において、第１のコンテンツアイテムブロックがクライアント１０２におけるローカルストレージ１１６に格納されていないと判定した場合、ブロックエージェント１１４は、ブロックサーバ１２４から第１のコンテンツアイテムブロックをダウンロードする。一方、いくつかの実施形態では、ブロックサーバ１２４は、オンラインコンテンツ管理システム１０４の一部である。別の実施形態では、ブロックサーバ１２４は、構内に配置され、クライアント１０２と同一場所に配置される。例えば、ブロックサーバ１２４は、統合したファイルサーバ、または、同じローカルエリアネットワーク（LAN）によりクライアント１０２に接続されるピアコンピューティングデバイスでありうる。ブロックサーバ１２４から第１のコンテンツアイテムブロックをダウンロードするために、ブロックエージェントは、ブロックサーバ１２４へ送信されるブロックサーバ要求における、第１のコンテンツアイテムブロックのコンテンツアイテムブロック識別子を提供しうる。
【００５０】
第１のコンテンツアイテムブロックが既にクライアント１０２に格納されている場合、または、ブロックエージェント１１４がブロックサーバ１２４から第１のコンテンツアイテムブロックをダウンロードした後に、動作３１２において、ブロックエージェント１１４は、第１のコンテンツアイテムブロックのデータをユーザエージェント１１０に送信する。例えば、ブロックエージェント１１４は、ストリーミングを行い、それ以外では、第１のコンテンツアイテムブロックのデータを、ブロックエージェント要求に対するブロックエージェント応答において、ユーザエージェント１１０に提供しうる。
【００５１】
動作３１４では、要求されたコンテンツアイテムに対する現在のコンテンツアイテムブロックのリストにおいて、より多くのコンテンツアイテムブロックが存在する場合、動作３０６、３０８、３１２と、場合によっては、動作３１０が、コンテンツアイテムブロックのリストにおける次のコンテンツアイテムブロック識別子に対して、再度実行される。
【００５２】
動作３１２においダウンロードされたコンテンツアイテムブロックをユーザエージェント１１０に送信する前に、動作３１０においてブロックサーバ１２４からコンテンツアイテムブロックを全てダウンロードすることは、動作３００の必要要件ではない。例えば、ブロックエージェント１１４は、動作３１０でブロックサーバ１２４からデータがダウンロードされていることから、動作３１２でダウンロードされたコンテンツアイテムブロックのデータを送信しうる。
【００５３】
また、ブロックサーバ１２４から次のコンテンツアイテムブロックがダウンロードされる前に、動作３１２においてコンテンツアイテムブロックが全てユーザエージェント１１０に送信されることは、動作３００の必要要件ではない。例えば、ブロックエージェント１１４は、動作３１２においてコンテンツアイテムブロックのデータをユーザエージェントに送信している一方、動作３１０で次のコンテンツアイテムブロックのダウンロードも行う。
【００５４】
＜基本的なコンピューティングデバイス＞
図４は、本発明の例示の実施形態を具現化しうるベーシックコンピューティングデバイス４００を示すブロック図である。コンピューティングデバイス４００、及びそれらの接続、関係、及び機能を含むそのコンポーネントは、単なる一例であって、例示の実施形態の実装に限定する意図はない。例示の実施形態を実施するのに適切な他のコンピューティングデバイスは、異なる接続、関係及び機能を有するコンポーネントを含む異なるコンポーネントを含みうる。
【００５５】
コンピューティングデバイス４００は、メインメモリ４０７をアドレス解決し、かつ、コンピューティングデバイス４００の種々のコンポーネント間で及び種々のコンポーネントの中でデータを転送するための、バス４０２又は他の通信機構を含みうる。
【００５６】
コンピューティングデバイス４００はまた、情報を処理するためのバス４０２と結合した１以上のハードウェアプロセッサ４０４を含みうる。ハードウェアプロセッサ４０４は、一般用途マイクロプロセッサ、システム・オン・チップ（SoC）、又は他のプロセッサであってもよい。
【００５７】
ランダムアクセスメモリ（RAM）又は他の動的ストレージデバイスなどのメインメモリ４０６はまた、情報やプロセッサ４０４によって実行されるソフトウェア命令を格納するためのバス４０２に結合されうる。メインメモリ４０６はまた、プロセッサ４０４によって実行されるべきソフトウェア命令の実行中に一時変数又は他の中間情報を格納するために使用されうる。
【００５８】
プロセッサ４０４へアクセス可能な記憶媒体に格納される場合、ソフトウェア命令は、コンピューティングデバイス４００を当該ソフトウェア命令で指定された動作を実行するようにカスタマイズされた特定用途のコンピューティングデバイスへ変換する。用語“ソフトウェア”、“ソフトウェア命令”、“コンピュータプログラム”、“コンピュータで実行可能な命令”、及び“プロセッサで実行可能な命令”は、人間が読取可能かどうかにかかわらず、特定の動作を実行するようにコンピューティングデバイスに命令するための、任意の機械可読情報をカバーするように、広く解釈されるべきであり、限定はしないが、アプリケーションソフトウェア、デスクトップアプリケーション、スクリプト、バイナリ、オペレーティングシステム、デバイスドライバ、ブートローダ、シェル、ユーティリティ、システムソフトウェア、JAVASCRIPT、ウェブページ、ウェブアプリケーション、プラグイン、組み込みソフトウェア、マイクロコード、コンパイラ、デバッガ、インタプリタ、仮想マシン、リンカー、及びテキストエディタを含む。
【００５９】
コンピューティングデバイス４００はまた、静的情報及びプロセッサ４０４へのソフトウェア命令を格納するためにバス４０２に結合された読み取り専用メモリ（ROM）４０８又は他の静的ストレージデバイスを含みうる。
【００６０】
１以上の大容量ストレージデバイス４１０は、磁性式メモリ、光学式メモリ、半導体メモリ、光磁気メモリ、フラッシュメモリ、又は大容量ストレージ技術を利用可能な他のものなどの固定媒体若しくは取り外し可能な媒体に、情報及びソフトウェア命令を永続的に格納するためのバス４０２に結合されうる。大容量ストレージデバイスは、ネットワーク上で共有され、或いは、専用の大容量ストレージであってもよい。通常、大容量ストレージデバイス４１０（例えば、デバイスに対するメインハードディスク）の少なくとも１つは、オペレーティングシステム、ユーザプリケーションプログラム、ドライバ、他のサポートファイル、及び全ての種類の他のデータファイルを含む、コンピュータデバイスの動作を方向付けるためのプログラム本体とデータを格納する。
【００６１】
コンピューティングデバイス４００は、バス４０２を介して、情報をコンピュータユーザに表示するための液晶ディスプレイ（LCD）又は他の電子的な視覚ディスプレイなどのディスプレイ４１２へ結合されうる。いくつかの構成において、タッチ検出技術（例えば、抵抗性、容量性など）を組み込むタッチセンサ式サーフェイスが、プロセッサ４０４へタッチジェスチャ（例えば指又はスタイラス）入力をやり取りするためのタッチセンサ式ディスプレイの形式でディスプレイ４１２上に敷かれてもよい。
【００６２】
アルファベットキー及び他のキーを含む入力デバイス４１４は、情報及びコマンドの選択をプロセッサ４０４へ通知するためのバス４０２へ結合されうる。英数字キーや他のキーに追加して、或いは、代わりに、入力デバイス４１４は、例えば、電源（On/Off）ボタン、“ホーム”ボタン、音量制御ボタンなどの１以上の物理的なボタン又はスイッチを含むことができる。
【００６３】
ユーザ入力デバイスの他のタイプは、プロセッサ４０４へ方向情報やコマンドの選択を通知し、ディスプレイ４１２上でのカーソルの移動を制御するためのマウス、トラックボール、又はカーソル方向キーなどのカーソル制御４１６でありうる。この入力デバイスは、典型的に、デバイスが平面上の位置を特定できるようにする第１軸（例えば、ｘ）と第２軸（例えば、ｙ）の二軸の２つの自由度を有する。
【００６４】
図４に示される構成などのいくつかの構成において、１以上のディスプレイ４１２、入力デバイス４１４、及びカーソル制御４１６がコンピューティングデバイス４００の外部コンポーネント（即ち、周辺デバイス）である一方で、ディスプレイ４１２、入力デバイス４１４、及びカーソル制御４１６のいくつか又は全ては、他の構成において、コンピューティングデバイス４００のフォームファクタの一部として統合されてもよい。
【００６５】
開示のシステム、方法及びモジュールの機能は、メインメモリ４０６に含まれる１以上のソフトウェア命令の１以上のプログラムを実行するプロセッサ４０４に応じて、コンピューティングデバイス４００によって実行されうる。そのようなソフトウェア命令は、ストレージデバイス４１０などの他の記憶媒体からメインメモリ４０６へと読み込まれてもよい。メインメモリ４０６に含まれるソフトウェア命令の実行は、プロセッサ４０４に例示の実施形態の機能を実行させる。
【００６６】
例示の実施形態の機能及び動作がソフトウェア命令で全体的に実装されうる一方で、コンピューティングデバイス４００のハード・ワイヤード又はプログラマブル回路（例えば、ASIC、FPGAなど）は、手近な特定の実装の要件に従って、機能を実行するためにソフトウェア命令の一部として又は組み合わせて他の実施形態において使用されうる。
【００６７】
ここで使用される用語“記憶媒体”は、コンピューティングデバイスを特定の様式で動作させるデータ及びソフトウェア命令の少なくとも１つを格納する非一時的な媒体として参照される。そのような記憶媒体は、不揮発性の媒体及び揮発性の媒体の少なくとも１つを備えてもよい。不揮発性媒体は、ストレージデバイス４１０などの、例えば、不揮発性のランダムアクセスメモリ（NVRAM）、フラッシュメモリ、光学ディスク、磁性ディスク、又は半導体ドライバを含む。揮発性媒体はメインメモリ４０６などの動的メモリを含む。記憶媒体の一般的な形式は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁性テープ、若しくは任意の他の時期的データ記憶媒体、CD-ROM、若しくは穴のパターンを伴う任意の他の光学的データ記憶媒体、RAM、PROM、及びEPROM、FLASH-EPROM、NVRAM、フラッシュメモリ、任意の他のメモリチップ又はカートリッジを含む。
【００６８】
記憶媒体は、送信媒体とは区別されるものの、当該送信媒体と連結して使用されうる。送信媒体は、記憶媒体間で情報を転送することに使用されてもよい。例えば、送信媒体は、バス４０２を備える有線を含む同軸ケーブル、銅線、及び光ファイバーを含む。送信媒体はまた、電波及び赤外データ通信中に生成されるものなどの、音波又は光波の形式をとることもできる。
【００６９】
媒体の様々な形式は、実行のためにプロセッサ４０４へ１つ以上のソフトウェア命令の１つ以上のシーケンスを運ぶことに含まれうる。例えば、ソフトウェア命令は、リモートコンピュータの磁性ディスク又は半導体ドライバ上でまず実行されうる。リモートコンピュータは、その動的メモリへソフトウェア命令をロードし、モデムを用いて電話線を介してソフトウェア命令を送信することができる。コンピューティングデバイス４００のローカルなモデムは、電話回線でデータを受信し、データを赤外線信号に変換するための赤外線送信機を用いることができる。赤外線検出機は赤外線信号で運搬されたデータを受信することができ、適切な回路がそのデータをバス４０２に乗せる。バス４０２は、プロセッサ４０４がソフトウェア命令を読み出して実行するメインメモリ４０６にデータを運搬する。メインメモリ４０６によって受信される本ソフトウェア命令は、プロセッサ４０４によって実行される前又は実行された後の何れかにストレージデバイス４１０に選択的に格納されうる。
【００７０】
コンピューティングデバイス４００はまた、バス４０２へ結合される１以上の通信インタフェース４１８を含みうる。通信インタフェース４１８は、ローカルネットワーク４２２（例えば、イーサネットネットワーク、無線ローカルエリアネットワーク、セルラー電話ネットワーク、Ｂｌｕｅｔｏｏｔｈ無線ネットワーク、又は同様のもの）へ接続された、有線又は無線のネットワークリンク４２０へ結合する２つの方法のデータ通信を提供する。通信インタフェース４１８は、種々のタイプの情報を表すデジタルデータストリームを伝達する電気信号、電磁信号、又は光信号を送受信する。例えば、通信インタフェース４１８は、有線のネットワークインタフェースカード、一体化された無線アンテナを有する無線ネットワークインタフェースカード、又はモデム（例えば、ＩＳＤＮ、ＤＳＬ、又はケーブルモデム）であってもよい。
【００７１】
ネットワークリンク４２０は、通常、１以上のネットワークを通じて、他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク４２０は、ローカルネットワーク４２２を通じて、ホストコンピュータ４２４への又はインターネットサービスプロバイダ（ＩＳＰ）４２６によって運用されるデータ装置への接続を提供しうる。ＩＳＰ４２６は順に、“Ｉｎｔｅｒｎｅｔ”４２８として通常参照されるワールド・ワイド・パケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク４２２及びＩｎｔｅｒｎｅｔ４２８は、デジタルデータストリームを伝達する電気信号、磁性信号、又は光信号を使用する。コンピューティングデバイス４００への及びコンピューティングデバイス４００からのデジタルデータを伝達する、種々のネットワークを通じた信号、及び、ネットワークリンク４２０上の、及び通信インタフェース４１８を通じた信号は、送信媒体の例示の形式である。
【００７２】
コンピューティングデバイス４００は、ネットワーク、ネットワークリンク４２０、及び通信インタフェース４１８を通じて、プログラムコードを含む、メッセージを送信し、データを受信することができる。例えば、サーバ４３０は、インターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２、及び通信インタフェース４１８を通じて、アプリケーションプログラムに対して要求されるコードを送信しうる。
【００７３】
受信コードは、受信した際にプロセッサ４０４によって実行されてもよく、及び、後の実行のためにストレージデバイス４１０又は他の不揮発性のストレージに格納されてもよく、或いは、そのいずれもが行われてもよい。
【００７４】
＜基本的なソフトウェアシステム＞
図５は、コンピューティングデバイス４００の動作を制御するために使用されうる基本的なソフトウェアシステム５００を示す概略図である。ソフトウェアシステム５００、及びそれらの接続、関係、及び機能を含むそのコンポーネントは、単なる一例であって、例示の実施形態の実装に限定する意図はない。例示の実施形態を実施するのに適切な他のソフトウェアシステムは、異なる接続、関係及び機能を有するコンポーネントを含む異なるコンポーネントを含んでもよい。
【００７５】
ソフトウェアシステム５００は、コンピューティングデバイス４００の動作を方向付けるために提供される。システムメモリ（ＲＡＭ）４０６及び固定ストレージ（例えば、ハードディスク、又はフラッシュメモリ）４１０に格納されるソフトウェアシステム５００は、カーネル又はオペレーティングシステム（ＯＳ）５１０を含む。
【００７６】
ＯＳ５１０は、プロセス、メモリ配置、ファイル入力及び出力（Ｉ／Ｏ）、及びデバイスＩ／Ｏの実行を管理することを含む、コンピュータ動作のローレベルの態様を管理する。５０２Ａ、５０２Ｂ、５０２Ｃ・・・５０２Ｎとして表される、１以上のアプリケーションプログラムは、システム５００による実行のために“ロードされ”うる（例えば、固定ストレージ４１０からメモリ４０６へ転送される）。アプリケーション又はデバイス５００上での使用を意図した他のソフトウェアはまた、ダウンロード可能で、コンピュータで実行可能な命令のトークンのセットとして、例えば、インターネット上の記憶場所から（例えば、ウェブサーバ、アプリストア、又は他のオンラインサービスから）ダウンロード及びインストールするために格納されうる。いくつかの実施形態では、１つ以上のアプリケーションプログラム５０２は、オペレーティングシステム５１０上で実行するソフトウェアコンテナ（例えば、ＤＯＣＫＥＲコンテナ）内で実行しうる。
【００７７】
ソフトウェアシステム５００は、グラフィカルな（例えば、“ポイント・アンド・クリック”又は“タッチジェスチャ”）形式で、ユーザコマンド及びデータを受信するためのグラフィカルユーザインタフェース（ＧＵＩ）５１５を含む。これらの入力は順に、オペレーティングシステム５１０及びアプリケーション５０２の少なくとも１つからの命令に従ってシステム５００によって作動されうる。ＧＵＩ９１５はまた、ユーザが追加の入力を供給したり、又は、セッションを終了させたりする（例えば、ログオフする）とすぐに、ＯＳ５１０及びアプリケーション５０２からの動作結果を表示するように務める。
【００７８】
ＯＳ５１０は、デバイス４００のベアハードウェア５２０（例えば、プロセッサ４０４）上で直接的に実行することができる。代替的に、タイプ１またはタイプ２のハイパーバイザ又は仮想マシンモニタ（ＶＭＭ）５３０は、ベアハードウェア５２０及びＯＳ５１０の間に割り込んで設けられてもよい。この構成において、ＶＭＭ５３０はデバイス４００のＯＳ５１０及びベアハードウェア５２０の間のソフトウェア“クッション”又は仮想レイヤとして作動する。ＶＭＭ５３０がタイプ１の仮想マシンモニタである場合、ＶＭＭ５３０はベアハードウェア５２０上で直接実行しうる。一方、ＶＭＭ５３０がタイプ２の仮想マシンモニタである場合、ＶＭＭ５３０はベアハードウェア５２０上で直接実行するホストオペレーションシステム（不図示）上で実行しうる。
【００７９】
ＶＭＭ５３０は、１以上の仮想マシンインスタンス（“ゲストマシン”）を作成し実行する。各ゲストマシンは、ＯＳ５１０などの“ゲスト”オペレーティングシステムと、ゲストオペレーティングシステム上で実行するように設計された、アプリケーション５０２などの１以上のアプリケーションを含む。ＶＭＭ５３０は、仮想オペレーティングプラットフォームを有するゲストオペレーティングシステムを提示し、ゲストオペレーティングシステムの実行を管理する。
【００８０】
いくつかの例において、ＶＭＭ５３０は、デバイス４００のベアハードウェア５２０上で直接実行されているかのように、ゲストオペレーティングシステムを実行することを許容することができる。これらの例において、ベアハードウェア５２０上で実行するように構成されたゲストオペレーティングシステムの同一のバージョンはまた、修正又は再構成なしにＶＭＭ９３０上で実行されうる。言い換えれば、ＶＭＭ５３０は、いくつかの例において、ゲストオペレーティングシステムへ完全なハードウェアと、ＣＰＵ仮想化を提供してもよい。
【００８１】
他の例において、ゲストオペレーティングシステムは、効率的にＶＭＭ５３０上で実行されるように特別に設計されるか、又は、構成されてもよい。それらの例において、ゲストオペレーティングシステムは、仮想マシンモニタ上で実行する“aware”であってもよい。言い換えれば、ＶＭＭ５３０は、いくつかの例において、ゲストオペレーティングシステムへ準仮想化を提供することができる。
【００８２】
＜拡張及び代替例＞
前述の明細書において、本発明の例示の実施形態は、多数の特定の詳細を参照して説明した。しかしながら、これらの詳細は、身近な特定の実装の要件に従って実装ごとに変化することができる。例示の実施形態は、従って、限定的な意味というよりはむしろ例示とみなされるものである。
【図１】
2019505027.tif 000003
【図２】
2019505027.tif 000004
【図３】
2019505027.tif 000005
【図４】
2019505027.tif 000006
【図５】
2019505027.tif 000007
【手続補正書】
【提出日】平成30年6月26日(2018.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オンラインコンテンツ管理システムでホストされるコンテンツアイテムの見かけ上のクラウドアクセスのための方法であって、前記方法は、
コンピューティングデバイスにおいて、前記コンピューティングデバイスにおけるユーザエージェントからコンテンツアイテムに対する要求を受信することと、
前記コンテンツアイテムを構成するコンテンツアイテムブロックのセットの識別子のセットを決定することと、
前記コンテンツアイテムブロックのセットのいずれかが前記コンピューティングデバイスのローカルストレージに格納されているかを判定することと、
前記コンピューティングデバイスの前記ローカルストレージに格納されていない前記コンテンツアイテムブロックのセットの全てを、ネットワークを介して前記オンラインコンテンツ管理システムのサーバからダウンロードすることと、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットを前記ユーザエージェントへ送信すること、を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記要求は、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、前記要求における前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットに少なくとも部分的に基づく、方法。
【請求項３】
請求項１に記載の方法であって、さらに、
前記コンピューティングデバイスの前記ローカルストレージに格納されているメタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを読み取り、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、前記コンピューティングデバイスの前記ローカルストレージに格納されている前記メタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを読み取ることに、少なくとも部分的に基づく、方法。
【請求項４】
請求項１に記載の方法であって、さらに、 
前記コンテンツアイテムに対応するリンクを含むウェブページを前記ユーザエージェントへ送信することを含み、
前記コンテンツアイテムに対する前記要求を受信することは、前記コンピューティングデバイスにおける前記ウェブページの前記リンクのアクティベーションに少なくとも部分的に基づく、方法。
【請求項５】
請求項１に記載の方法であって、さらに、
前記オンラインコンテンツ管理システムのサーバから、ネットワークを介して、前記コンピューティングデバイスの前記ローカルストレージに格納されていない、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの第２のコンテンツアイテムブロックを完全に受信する前に、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの第１のコンテンツアイテムブロックのストリーミングを、前記ユーザエージェントに開始することと、を含み、
前記ダウンロードすることは、前記完全に受信することに少なくとも部分的に基づき、
前記送信することは、前記ストリーミングを開始することに少なくとも部分的に基づく、方法。
【請求項６】
請求項５に記載の方法であって、前記第１のコンテンツアイテムブロックは、前記第２のコンテンツアイテムブロックではない、方法。
【請求項７】
請求項１に記載の方法であって、さらに、
前記オンラインコンテンツ管理システムのサーバから、ネットワークを介して、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを受信することを含み、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、ネットワークを介して、前記オンラインコンテンツ管理システムから前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを受信することに少なくとも部分的に基づく、方法。
【請求項８】
コンピューティングデバイスによって実行されると、請求項１乃至７の何れか１項に記載の方法を前記コンピューティングデバイスに実行させる命令を格納した１以上のコンピュータで読取可能な記憶媒体。
【請求項９】
コンピューティングデバイスであって、
１以上のプロセッサと、 
ローカルストレージと、
１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記コンピューティングデバイスにおけるユーザエージェントからコンテンツアイテムに対する要求を取得することと、
前記コンテンツアイテムを構成するコンテンツアイテムブロックのセットの識別子のセットを決定することと、
前記コンテンツアイテムブロックのセットのいずれかが前記コンピューティングデバイスの前記ローカルストレージに格納されているかを判定することと、
オンラインコンテンツ管理システムから、前記コンピューティングデバイスの前記ローカルストレージに格納されていない前記コンテンツアイテムブロックのセットの全てを受信することと、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットを、ユーザエージェントにストリーミングすること、を実行させる命令を格納した１つ以上のコンピュータで読取可能な記憶媒体、
を備えるコンピューティングデバイス。
【請求項１０】
請求項９に記載のコンピューティングデバイスであって、前記要求は、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、前記要求において前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１１】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記コンピューティングデバイスの前記ローカルストレージに格納されているメタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを読み取ることを実行させ、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、前記コンピューティングデバイスの前記ローカルストレージに格納されている前記メタデータから、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを読み取ることに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１２】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
ウェブページを、前記コンテンツアイテムに対応するリンクを含む前記ユーザエージェントに送信することを実行させ、
前記コンテンツアイテムに対する前記要求は、前記コンピューティングデバイスにおける前記リンクのアクティベーションに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１３】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記オンラインコンテンツ管理システムから、前記コンピューティングデバイスの前記ローカルストレージに格納されていない、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの第２のコンテンツアイテムブロックを完全にダウンロードする前に、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの第１のコンテンツアイテムブロックを、前記ユーザエージェントへ送信することを開始することを実行させ、
前記受信することは、前記完全にダウンロードすることに、少なくとも部分的に基づき、
前記ストリーミングすることは、前記送信を開始することに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１４】
請求項９に記載のコンピューティングデバイスであって、前記命令は、前記１つ以上のプロセッサにより実行されると、前記１つ以上のプロセッサに更に、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを、前記オンラインコンテンツ管理システムから受信することを実行させ、
前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを決定することは、前記オンラインコンテンツ管理システムから前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの前記識別子のセットを受信することに、少なくとも部分的に基づく、コンピューティングデバイス。
【請求項１５】
請求項９に記載のコンピューティングデバイスであって、前記要求は、前記コンテンツアイテムが属するコンテンツアイテムネームスペースの識別子を含み、前記コンテンツアイテムを構成する前記コンテンツアイテムブロックのセットの識別子のセットを決定することは、前記要求における前記コンテンツアイテムネームスペースの前記識別子に少なくとも部分的に基づく、コンピューティングデバイス。
【国際調査報告】
2019505027.tif 000008
2019505027.tif 000009