(57)【要約】  パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための技術が開示される。パーソナルユーザデバイスは、特定の内容項目を格納し、格納すべき特定の内容項目をデータ分配デバイスに送信する。クライアントデバイスは、パーソナルユーザデバイスに特定の内容項目についての要求を送信する。パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイスおよび／または特定の内容項目に関連付けられた特性を決定する。特性に基づいて、パーソナルユーザデバイスは、特定の内容項目を供給するべきか、または、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきどうかを判断する。クライアントデバイスがリダイレクトされる場合、クライアントデバイスは、特定の内容項目についての要求をデータ分配デバイスに送信する。データ分配デバイスは特定の内容項目をクライアントデバイスに送信する。
2019508755.tif 000002
【特許請求の範囲】
【請求項１】
命令を含む１つ以上の非一時的なコンピュータ読取り可能媒体であって、前記命令は、１つ以上のハードウェアプロセッサによって実行されると、以下の動作を実行させ、前記以下の動作は、
パーソナルユーザデバイスによって、１セットの１つ以上の内容項目を格納する動作と、
前記１セットの内容項目のうち少なくとも第１の内容項目を、前記パーソナルユーザデバイスによってデータ分配デバイスに送信する動作と、
前記第１の内容項目についての要求を前記パーソナルユーザデバイスによってクライアントデバイスから受取る動作と、
前記パーソナルユーザデバイス、前記データ分配デバイス、前記クライアントデバイス、前記要求および前記第１の内容項目のうち１つ以上に関連付けられた１セットの１つ以上の特性を識別する動作と、
前記１セットの特性に基づいて、前記要求が前記パーソナルユーザデバイスまたは前記データ分配デバイスによって供給されるべきかどうかを判断する動作と、
前記要求が前記パーソナルユーザデバイスによって供給されるべきであると判断することに応じて、
前記第１の内容項目を前記パーソナルユーザデバイスによって前記クライアントデバイスに送信する動作と、
前記要求が前記データ分配デバイスによって供給されるべきであると判断することに応じて、
前記第１の内容項目を得るために、前記パーソナルユーザデバイスによって、前記クライアントデバイスを前記データ分配デバイスにリダイレクトする動作とを含む、非一時的なコンピュータ読取り可能媒体。
【請求項２】
前記１セットの特性は、
前記パーソナルユーザデバイスまたは前記データ分配デバイスの帯域幅、
前記パーソナルユーザデバイスまたは前記データ分配デバイスの負荷、
前記パーソナルユーザデバイスまたは前記データ分配デバイスが前記要求を供給し得る速度、
前記要求または前記クライアントデバイスに関連付けられたプライオリティレベル、
前記パーソナルユーザデバイス、前記データ分配デバイスまたは前記クライアントデバイスの地理的位置またはネットワーク、ならびに、
前記データ分配デバイスが最新バージョンの前記第１の内容項目を格納しているかどうか、
のうち少なくとも１つを含む、請求項１に記載の媒体。
【請求項３】
前記データ分配デバイスに少なくとも前記第１の内容項目を送信する動作は、前記第１の内容項目へのアクセスが第１のユーザによって第２のユーザに許可されたと判断することに応じて行われる、請求項１に記載の媒体。
【請求項４】
前記以下の動作はさらに、
前記データ分配デバイスと前記第２のユーザとの間の地理的近接性に基づいて、前記第１の内容項目を送信するべき前記データ分配デバイスを複数のデータ分配デバイスから選択する動作を含む、請求項３に記載の媒体。
【請求項５】
（ａ）
少なくとも前記第１の内容項目を前記データ分配デバイスに送信する動作は、
前記１セットの内容項目にわたる類似性のレベルが指定されたしきい値を上回っていると判断することに応じて、
前記データ分配デバイスに送信すべき、前記１セットの内容項目のサブセットだけを選択する動作を含み、前記１セットの内容項目の前記サブセットは前記第１の内容項目を含み、
または、
（ｂ）
少なくとも前記第１の内容項目を前記データ分配デバイスに送信する動作は、前記第１の内容項目にアクセスすることが許可されているユーザの数に基づいている、請求項１に記載の媒体。
【請求項６】
前記クライアントデバイスを前記データ分配デバイスにリダイレクトする動作は、
（ａ）前記クライアントデバイスに対して、前記データ分配デバイスの識別子またはアドレスと、
（ｂ）前記クライアントデバイスに対して、前記データ分配デバイス上で、前記第１の内容項目の識別子またはアドレスと、
のうち少なくとも１つを送信する動作を含む、請求項１に記載の媒体。
【請求項７】
少なくとも前記第１の内容項目を前記データ分配デバイスに送信する動作は、
前記パーソナルユーザデバイスによって、前記データ分配デバイス上に格納された複数の内容項目を識別する動作と、
前記パーソナルユーザデバイスによって、前記複数の内容項目のうち第２の内容項目を選択する動作と、
前記パーソナルユーザデバイスによって、前記第２の内容項目を上書きするかまたは削除するようにとの命令を前記データ分配デバイスに送信する動作とを含む、請求項１に記載の媒体。
【請求項８】
前記複数の内容項目から前記第２の内容項目を選択する動作は、特定のユーザが、別のユーザによる前記第２の内容項目へのアクセスを許可した日付に基づいている、請求項７に記載の媒体。
【請求項９】
前記以下の動作はさらに、
（ａ）
前記パーソナルユーザデバイスによって、前記第１の内容項目および第２の内容項目を含むデータファイルについての要求を前記クライアントデバイスから受取る動作、
前記データファイルについての前記要求に応じて、
前記パーソナルユーザデバイスによって、前記第１の内容項目を前記クライアントデバイスに送信する動作、ならびに、
前記パーソナルユーザデバイスによって、前記第２の内容項目を得るために前記クライアントデバイスを前記データ分配デバイスにリダイレクトする動作、
または、
（ｂ）
前記データ分配デバイスによって、前記第１の内容項目についての前記要求を前記クライアントデバイスから受取る動作、ならびに、
前記データ分配デバイスによって、前記第１の内容項目を前記クライアントデバイスに送信する動作、
または、
（ｃ）
前記パーソナルユーザデバイスと前記データ分配デバイスとの間に永続接続を確立する動作、
前記パーソナルユーザデバイスによって、前記１セットの内容項目のうち第２の内容項目を前記データ分配デバイスに送信する動作、
前記パーソナルユーザデバイスによって、前記パーソナルユーザデバイスと前記データ分配デバイスとの間の前記永続接続を介して伝達される前記第２の内容項目についての要求を前記クライアントデバイスから受取る動作、ならびに、
前記パーソナルユーザデバイスによって、前記第２の内容項目を前記データ分配デバイスから前記クライアントデバイスに送信するようにとの要求を前記データ分配デバイスに送信する動作、
または、
（ｄ）
前記要求が前記データ分配デバイスによって供給されるべきであると判断することにさらに応じて、
前記パーソナルユーザデバイスによって格納された前記第１の内容項目を前記パーソナルユーザデバイスが供給するのを抑制する動作、を含む、請求項１に記載の媒体。
【請求項１０】
（ａ）前記パーソナルユーザデバイスがプライベートクラウドインフラストラクチャ内に含まれており、前記データ分配デバイスがパブリッククラウドインフラストラクチャ内に含まれており、
または、
（ｂ）前記第１の内容項目についての前記要求は、前記パーソナルユーザデバイスと前記クライアントデバイスとの間の直接接続を介して前記パーソナルユーザデバイスによって受取られる、請求項１に記載の媒体。
【請求項１１】
前記第１の内容項目についての前記要求は、前記クライアントデバイスが前記第１の内容項目についてのソースとして前記データ分配デバイスを選択することを示しているインジケータに関連付けられており、
前記以下の動作はさらに、少なくとも前記インジケータに基づいて、前記要求が前記データ分配デバイスによって供給されるべきであると判断する動作を含む、請求項１に記載の媒体。
【請求項１２】
命令を含む１つ以上の非一時的なコンピュータ読取り可能媒体であって、前記命令は、１つ以上のハードウェアプロセッサによって実行されると、以下の動作を実行させ、前記以下の動作は、
クライアントデバイスによって、第１の内容項目を得るようにとの第１の要求をパーソナルユーザデバイスに送信する動作を含み、前記パーソナルユーザデバイスは前記第１の内容項目を格納しており、前記以下の動作はさらに、
前記第１の内容項目のうち少なくとも第１の部分が前記データ分配デバイスから得られ得ることを示す第１のメッセージを前記クライアントデバイスによって、前記パーソナルユーザデバイスから受取る動作と、
前記クライアントデバイスによって、前記第１の内容項目のうち少なくとも前記第１の部分を得るために前記データ分配デバイスを選択する動作と、
前記クライアントデバイスによって、前記第１の内容項目のうち少なくとも前記第１の部分についての第２の要求を前記データ分配デバイスに送信する動作と、
前記クライアントデバイスによって、前記第１の内容項目のうち少なくとも前記第１の部分を前記データ分配デバイスから受取る動作とを含む、非一時的なコンピュータ読取り可能媒体。
【請求項１３】
（ａ）
前記第１の内容項目のうち少なくとも前記第１の部分を得るために前記データ分配デバイスを選択する動作は、前記第１の内容項目のうち第２の部分を前記パーソナルユーザデバイスから得るよう試み、サービス品質基準を満たす態様で前記第１の内容項目のうち前記第２の部分を受取り損じたことに応じて行われ、
または、
（ｂ）
前記クライアントデバイスは、前記パーソナルユーザデバイス、前記データ分配デバイス、前記クライアントデバイスおよび前記第１の内容項目のうち１つ以上に関連付けられた１セットの１つ以上の特性に基づいて前記第１の内容項目のうち少なくとも前記第１の部分を得るために前記データ分配デバイスを選択し、
または、
（ｃ）
前記パーソナルユーザデバイスは、前記データ分配デバイスが前記第１の内容項目のうち前記第１の部分の最新バージョンを格納していると判断したことに基づいて、前記第１の内容項目のうち前記第１の部分が前記データ分配デバイスから得られ得ると判断し、
または、
（ｄ）
前記以下の動作はさらに、
前記クライアントデバイスによって、前記第１の内容項目のうち第２の部分についての第３の要求を前記パーソナルユーザデバイスに送信する動作と、
前記クライアントデバイスによって、前記第１の内容項目のうち前記第２の部分を前記パーソナルユーザデバイスから受取る動作とを含む、請求項１２に記載の媒体。
【請求項１４】
命令を含む１つ以上の非一時的なコンピュータ読取り可能媒体であって、前記命令は、１つ以上のハードウェアプロセッサによって実行されると、以下の動作を実行させ、前記以下の動作は、
データ分配デバイスによって、パーソナルユーザデバイスから受取った内容項目を格納する動作と、
前記データ分配デバイスによって、前記内容項目を要求するクライアントデバイスを認証した後、
前記データ分配デバイスと前記クライアントデバイスとの間に第１の接続を確立する動作と、
前記データ分配デバイスを含まない直接接続を確立するために、前記データ分配デバイスによって、前記クライアントデバイスおよび前記パーソナルユーザデバイスについての情報を、前記第１の接続を介して、前記クライアントデバイスおよび前記パーソナルユーザデバイスに提供する動作と、
前記クライアントデバイスおよび前記パーソナルデバイスが前記データ分配デバイスを含まない前記直接接続を確立している間、前記データ分配デバイスによって、前記第１の接続を介して、前記内容項目のうち少なくとも第１の部分を前記クライアントデバイスに供給する動作と、
前記内容項目のうち少なくとも第２の部分を得るために、（ａ）前記データ分配デバイスとの前記第１の接続および（ｂ）前記パーソナルユーザデバイスとの前記直接接続を含むグループから、前記データ分配デバイスとの前記第１の接続を用いて前記クライアントデバイスに応答して、
前記データ分配デバイスによって、前記内容項目のうち前記第２の部分を、前記第１の接続を介して前記クライアントデバイスに供給する動作とを含む、非一時的なコンピュータ読取り可能媒体。
【請求項１５】
前記クライアントデバイスは、前記パーソナルユーザデバイスから前記内容項目のうち少なくとも第３の部分を得る、請求項１４に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
利点の主張；引用による援用
本願は、２０１６年２月１７日に提出された米国仮特許出願第６２／２９６，４７８号と、２０１６年２月１７日に提出された米国仮特許出願第６２／２９６，４７８号の利点を主張している２０１７年２月１４日に提出された米国非仮特許出願第１５／４３２，７８５号との利点を主張するものであって、その各々が引用によりここに援用されている。
【０００２】
技術分野
本開示は、ストレージシステムに関する。特に、本開示は、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現することに関する。
【背景技術】
【０００３】
背景
ストレージシステムは、さまざまなストレージアーキテクチャに応じた内容項目を格納する。ストレージアーキテクチャの例には、オブジェクトストレージ、ファイルシステム、ブロックストレージ、および／または、データベースが含まれる。「内容項目（content item）」という語はデータファイル自体を指すために用いられることもある。付加的または代替的には、「内容項目」という語は、データファイルの一断片または一部分を指すために用いられることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストレージシステムを実現するためにさまざまなタイプのストレージデバイスが用いられ得る。ストレージデバイスの例として、パーソナルユーザデバイスおよびデータ分配デバイスが含まれる。パーソナルユーザデバイスは、個人的なユーザのグループおよび／または私的なユーザのグループの内容項目を格納するために構成されたストレージデバイスである。１つ以上のパーソナルユーザデバイスがプライベートクラウドインフラストラクチャ内に含まれていてもよい。データ分配デバイスは、複数の独立したエンティティの内容項目を格納するために構成されたストレージデバイスである。１つ以上のデータ分配デバイスがパブリッククラウドインフラストラクチャ内に含まれていてもよい。パブリッククラウドを用いるエンティティは「テナント」と称されてもよい。
【０００５】
このセクションで説明される手法は、遂行可能な手法であるが、必ずしも過去に想到または遂行された手法ではない。したがって、特に明示されない限り、このセクションで説明される手法のうちのいずれも、このセクションに含まれているというだけで先行技術とみなされるべきではない。
【０００６】
図面の簡単な説明
実施形態は、添付の図面のそれぞれの図において例示の目的で示されるものであって、限定の目的で示されるものではない。この開示において「或る」または「１つの」実施形態と言及する場合、これは必ずしも同じ実施形態である必要はなく、少なくとも１つを意味している。
【図面の簡単な説明】
【０００７】
【図１Ａ】１つ以上の実施形態に従ったストレージシステムの例を示す図である。
【図１Ｂ】１つ以上の実施形態に従ったストレージシステムの例を示す図である。
【図２Ａ】１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための例示的な１セットの動作を示す図である。
【図２Ｂ】１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための例示的な１セットの動作を示す図である。
【図３Ａ】１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。
【図３Ｂ】１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。
【図３Ｃ】１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。
【図４】１つ以上の実施形態に従ったコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００８】
詳細な説明
以下の記載では、説明を目的として、完全な理解をもたらすように多数の具体的な詳細が記載されている。１つ以上の実施形態はこれらの具体的な詳細なしでも実施され得る。一実施形態に記載された特徴は別の実施形態に記載された特徴と組合わされてもよい。いくつかの例においては、本発明を不必要に曖昧にするのを避けるために、周知の構造および装置がブロック図に関連付けて記載されている。
【０００９】
１．全体的な概要
２．ストレージシステムアーキテクチャ
３．パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
４．実施形態の例
５．コンピュータネットワークおよびクラウドネットワーク
６．その他；付記
７．ハードウェア概要
１．全体的な概要
１つ以上の実施形態は、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現することを含む。パーソナルユーザデバイスは、１セットの内容項目を格納する。パーソナルユーザデバイスは、当該１セットの内容項目のうち、格納すべき少なくとも特定の内容項目をデータ分配デバイスに送信する。クライアントデバイスは、特定の内容項目についての要求をパーソナルユーザデバイスに送信する。パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイス、要求および／または特定の内容項目に関連付けられた特性を決定する。当該特性に基づいて、パーソナルユーザデバイスは、特定の内容項目を供給するべきか、または、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかどうかを決定する。
【００１０】
リダイレクトを決定する際に用いられる特性の例は、パーソナルユーザデバイスおよび／またはデータ分配デバイスの帯域幅；パーソナルユーザデバイスおよび／またはデータ分配デバイスの負荷；パーソナルユーザデバイスおよび／またはデータ分配デバイスが要求を供給し得る際の速度；要求および／またはクライアントデバイスに関連付けられたプライオリティレベル；パーソナルユーザデバイス、データ分配デバイスおよび／またはクライアントデバイスの地理的位置および／またはネットワーク；ならびに、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうか；を含む。
【００１１】
パーソナルユーザデバイスがクライアントデバイスをデータ分配デバイスにリダイレクトすれば、クライアントデバイスは特定の内容項目についての要求をデータ分配デバイスに送信する。要求に応じて、データ分配デバイスは特定の内容項目をクライアントデバイスに送信する。
【００１２】
この明細書および／または添付の特許請求の範囲に記載された１つ以上の実施形態は、この全体的な概要の段落には含まれていない可能性もある。
【００１３】
２．ストレージシステムアーキテクチャ
図１Ａおよび図１Ｂは、１つ以上の実施形態に従ったストレージシステムの例を示す。図１Ａおよび図１Ｂに示されるように、システム１００は、パーソナルユーザデバイス１０２、１つ以上のデータ分配デバイス１０６ａ〜１０６ｂ、およびクライアントデバイス１０８を含む。１つ以上の実施形態においては、システム１００が含み得る構成要素は、図１Ａおよび図１Ｂに示される構成要素よりも多くてもよく、または少なくてもよい。図１Ａおよび図１Ｂに示される構成要素は、互いに対してローカルであってもよくまたはリモートであってもよい。図１Ａおよび図１Ｂに示される構成要素は、ソフトウェアおよび／またはハードウェアにおいて実現され得る。各々の構成要素は複数のアプリケーションおよび／またはマシンにわたって分散されていてもよい。複数の構成要素は、１つのアプリケーションおよび／またはマシンに組合わされてもよい。１つの構成要素に関して記載される動作は、代わりに、別の構成要素によって実行されてもよい。
【００１４】
１つ以上の実施形態においては、パーソナルユーザデバイス１０２は、個人的なユーザのグループおよび／または私的なユーザのグループの内容項目１１０ａを格納するために構成されたストレージデバイスである。１つ以上のパーソナルユーザデバイス１０２はプライベートクラウドインフラストラクチャ内に含まれていてもよい。一例として、パーソナルユーザデバイスは家族メンバのグループによって用いられてもよい。別の例として、パーソナルユーザデバイスは企業および／または部署の社員によって用いられてもよい。場合によっては、パーソナルユーザデバイス１０２は自宅またはオフィスのローカルエリアネットワークに接続されてもよい。クライアントデバイス１０８は、ローカルエリアネットワーク内から、またはローカルエリアネットワーク外から、パーソナルユーザデバイス１０２にアクセスし得る。クライアントデバイス１０８は、インターネットなどの別のネットワーク１２０を介してローカルエリアネットワークに接続することにより、ローカルエリアネットワーク外からパーソナルユーザデバイス１０２にアクセスする。
【００１５】
１つ以上の実施形態においては、（データ分配デバイス１０６ａ〜１０６ｂなどの）データ分配デバイスは、会社、組織、エンタープライズおよび／または個人などの複数の独立したエンティティの（内容項目１１０ｂ〜１１０ｃなどの）内容項目を格納するために構成されたストレージデバイスである。１つ以上のデータ分配デバイスはパブリッククラウドインフラストラクチャ１０４内に含まれていてもよい。パブリッククラウドを用いるエンティティは「テナント」と称されてもよい。各々のテナントは互いから独立している。１つのテナントのビジネスまたは動作は別のテナントのビジネスまたは動作とは別個である。テナントのための共有コンピューティングリソースであるデータ分配デバイスは、各々のテナントのデータについてのプライバシーおよび／またはセキュリティを保証するためにテナントの分離を実現してもよい。クライアントデバイスは、インターネットなどのパブリックネットワーク１２０を介してデータ分配デバイスにアクセスする。
【００１６】
クラウドネットワークに関する付加的な実施形態および／または例は、「コンピュータネットワークおよびクラウドネットワーク」と題された以下のセクション５に記載されている。
【００１７】
一実施形態においては、パーソナルユーザデバイス１０２および／またはデータ分配デバイスは１つ以上のデジタルデバイス上で実現される。「デジタルデバイス」という語は、一般に、プロセッサを含むいずれのハードウェアデバイスをも指している。デジタルデバイスの例は、ハードドライブ、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、特定機能のハードウェアデバイス、メインフレーム、テレビ、コンテンツレシーバ、セットトップボックス、プリンタ、携帯用ハンドセット、スマートフォン、および／または、携帯情報端末（personal digital assistant：ＰＤＡ）を含む。
【００１８】
１つ以上の実施形態においては、（内容項目１１０ａ〜１１０ｃなどの）内容項目は規定された１セットのデータである。内容項目は、データファイルであり得るか、またはデータファイルの一断片または一部分であり得る。内容項目は、テキスト、音声、映像および／または他のフォーマットのデータを含み得る。内容項目は、オブジェクト、ファイル、データブロックまたはデータベースエントリなどのさまざまなデータ構造として格納されてもよい。内容項目は、パーソナルユーザデバイス１０２またはデータ分配デバイスからダウンロードおよび／または配信されてもよい。
【００１９】
１つ以上の実施形態においては、クライアントデバイス１０８は、パーソナルユーザデバイス１０２および／またはデータ分配デバイスに内容項目を要求するデバイスである。クライアントデバイス１０８は、パーソナルユーザデバイス１０２および／またはデータ分配デバイスから内容項目をダウンロードおよび／または配信してもよい。クライアントデバイス１０８はネットワーク１２０を介してパーソナルユーザデバイス１０２および／またはデータ分配デバイスに接続する。ネットワーク１２０はたとえばインターネットであってもよい。クライアントデバイスは１つ以上のデジタルデバイス上において実現される。
【００２０】
１つ以上の実施形態においては、ネットワーク１２０は、パーソナルユーザデバイス１０２、データ分配デバイスおよび／またはクライアントデバイス１０８の間に接続をもたらす。デバイスは、パケットの形態でネットワーク１２０を介して（コマンドおよび／または内容項目などの）情報を送信してもよい。各々のパケットは特定の宛先にアドレス指定されている。一例として、パーソナルユーザデバイス１０８は、データ分配デバイスにアドレス指定されているパケットを送信してもよい。ネットワーク１２０は、パケットによって示された宛先アドレスに基づいてパケットを転送してもよい。最後に、データ分配デバイスはネットワーク１２０からパケットを受取ってもよい。この例においては、パケットは、「直接接続」を介してパーソナルユーザデバイス１０２からデータ分配デバイスに送信される。
【００２１】
付加的または代替的には、デバイスは、セッションを確立することによってネットワーク１２０を介してパケットのストリームを送信してもよい。セッションは、ネットワーク１２０を介するデータ送信の精度を向上させるおよび／または確実にする１つ以上のプロトコルを実現し得る。１つのこのようなプロトコルは転送制御プロトコル（Transmission Control Protocol：ＴＣＰ）である。セッションは、特定の一連のハンドシェイクおよび／またはメッセージを介して確立される。当該セッションは、別の特定の一連のハンドシェイクおよび／またはメッセージによって終了する。代替的には、当該セッションはタイムアウトにより終了する。タイムアウトは、パケットがセッション中にしきい値期間よりも長く送信されていない場合に、発生する。付加的または代替的には、当該のセッションはセキュリティの目的で認証および／または暗号化されてもよい。認証は１つ以上のトークンを用いて実行されてもよい。
【００２２】
図１Ａを参照すると、クライアントデバイス１０８は、パーソナルユーザデバイス１０２との直接接続１２２を確立し得る。付加的または代替的には、クライアントデバイス１０８は、パブリッククラウドインフラストラクチャ１０４および／またはそのデータ分配デバイスとの直接接続１２４を確立してもよい。直接接続１２２および／または直接接続１２４は、ＴＣＰセッションおよび／または認証されたセッションなどのセッションによって確立されてもよい。クライアントデバイス１０８は、直接接続１２２および／または直接接続１２４を介して内容項目についての要求を送信してもよい。クライアントデバイス１０８は、直接接続１２２および／または直接接続１２４を介して内容項目を受取ってもよい。
【００２３】
一実施形態においては、クライアントデバイス１０８とパーソナルユーザデバイス１０２との間の直接接続１２２が認証され得る。データ分配デバイスは、クライアントデバイス１０８とパーソナルユーザデバイス１０２との間の認証を容易にする。クライアントデバイス１０８は、認証済みの直接接続１２４をデータ分配デバイスとの間に確立するようにとの要求を最初にデータ分配デバイスに送信する。クライアントデバイス１０８を認証した後、データ分配デバイスは、データ分配デバイスを含まない認証済み直接接続１２２をクライアントデバイス１０８およびパーソナルユーザデバイス１０２に確立させるための情報をクライアントデバイス１０８およびパーソナルユーザデバイス１０２に送信する。一例として、データ分配デバイスは、クライアントデバイス１０８およびパーソナルユーザデバイス１０２に１つ以上の認証トークンを送信してもよい。パーソナルユーザデバイス１０２は、パーソナルユーザデバイス１０２がデータ分配デバイスから受取った認証トークンと一致する認証トークンをクライアントデバイス１０８が所有していることを確認することによって、クライアントデバイス１０８を認証してもよい。クライアントデバイス１０８およびパーソナルユーザデバイス１０２が認証済みの直接接続１２２を確立している間、クライアントデバイス１０８は、内容項目についての要求をデータ分配デバイスに送信してもよい。要求に応じて、データ分配デバイスは、内容項目についての要求を供給し、直接接続１２４を介してクライアントデバイス１０８に内容項目を送信してもよい。クライアントデバイス１０８とパーソナルユーザデバイス１０２との間に直接接続１２２が確立された後、クライアントデバイス１０８は、各々の内容項目を得るために、データ分配デバイスとの直接接続１２４またはパーソナルユーザデバイス１０２との直接接続１２２のいずれかを用いてもよい。クライアントデバイスは、パーソナルユーザデバイス１０２からのリダイレクト命令、ならびに／または、パーソナルユーザデバイス１０２、データ分配デバイス、クライアントデバイス１０８および／もしくは要求されている内容項目に関連付けられた特性などのさまざまな要因に基づいて、直接接続１２４を用いるべきかまたは直接接続１２２を用いるべきかを判断し得る。
【００２４】
図１Ｂを参照すると、パーソナルユーザデバイス１０２は、パブリッククラウドインフラストラクチャ１０４および／またはそのデータ分配デバイスとの直接接続を確立し得る。任意には、直接接続は永続接続１２６として確立されてもよい。永続接続１２６は、複数の要求および／または応答を送信するために用いられるシングルセッションである。永続接続１２６は、タイムアウトによる終了を伴わないセッションを用いて確立されてもよい。代替的には、永続接続１２６は、セッションがタイムアウトしないように、セッションを介してキープアライブ・メッセージを送信することによって維持されてもよい。クライアントデバイス１０８は、（ａ）クライアントデバイス１０８とデータ分配デバイスとの間の直接接続１２４および（ｂ）データ分配デバイスとパーソナルユーザデバイス１０２との間の永続接続１２６を介して、内容項目についての要求をパーソナルユーザデバイス１０２に送信してもよい。データ分配デバイスを介してパーソナルユーザデバイス１０２にメッセージを送信するこの方法は、「トンネリング」と称され得る。パーソナルユーザデバイス１０２は、永続接続１２６を介してデータ分配デバイスに内容項目を送信してもよい。
【００２５】
１つ以上の実施形態においては、アップロードマネージャ１１２は、格納すべき内容項目を選択してデータ分配デバイスにアップロードするために、この明細書中に記載された動作を実行するように構成されたハードウェアおよび／またはソフトウェアを指している。アップロードマネージャ１１２（および／またはその構成要素もしくはモジュール）は、パーソナルユーザデバイス１０２によって実現および／または実行される。格納すべき内容項目を選択してデータ分配デバイスにアップロードするための動作の例が、図２Ａを参照しつつ以下に記載される。
【００２６】
１つ以上の実施形態においては、リダイレクトマネージャ１１４は、内容項目を得るためにクライアントデバイス１０８をデータ分配デバイスにリダイレクトするための、この明細書中に記載された動作を実行するように構成されたハードウェアおよび／またはソフトウェアを指している。リダイレクトマネージャ１１４（および／またはその構成要素もしくはモジュール）はパーソナルユーザデバイス１０２によって実現および／または実行される。内容項目を得るためにクライアントデバイス１０８をデータ分配デバイスにリダイレクトするための動作の例が、図２Ａを参照しつつ以下に記載される。
【００２７】
１つ以上の実施形態においては、ソースセレクタ１０９は、内容項目を得るために（ａ）パーソナルユーザデバイス１０２および（ｂ）データ分配デバイスのうちの１つまたはこれら両方を選択するための、この明細書中に記載された動作を実行するように構成されたハードウェアおよび／またはソフトウェアを指している。ソースセレクタ１０９（および／またはその構成要素もしくはモジュール）は、クライアントデバイス１０８によって実現および／または実行される。内容項目を得るためにソースを選択するための動作の例が、図２Ｂを参照しつつ以下に記載される。
【００２８】
３．パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
図２Ａは、１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための１セットの動作の例を示す。図２Ａに示される１つ以上の動作は変更されてもよく、再配置されてもよく、またはすべて省略されてもよい。したがって、図２Ａに示される動作の特定のシーケンスは１つ以上の実施形態の範囲を限定するものとして解釈されるべきでない。
【００２９】
１つ以上の実施形態は１セットの１つ以上の内容項目（動作２０２）を格納することを含む。パーソナルユーザデバイスは、ユーザインターフェイスおよび／または別のデジタルデバイスから当該１セットの内容項目を格納するようにとの命令を受取る。命令を受取ったことに応じて、パーソナルユーザデバイスは内容項目を格納する。一実施形態においては、内容項目は、プライベートクラウドインフラストラクチャ内に含まれている１つ以上のストレージデバイスにわたって格納されていてもよい。
【００３０】
１つ以上の実施形態は、当該１セットの内容項目のうち少なくとも特定の内容項目をデータ分配デバイスに送信することを含む（動作２０４）。パーソナルユーザデバイス（および／またはそのアップロードマネージャ）は、当該１セットの内容項目のうち、データ分配デバイスに送信してそこに格納すべき１つ以上の内容項目を選択する。この選択はさまざまな基準に基づいてなされてもよい。
【００３１】
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目が共有されていたかどうかに基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。内容項目は、内容項目の作成者および／または発信者以外のユーザが内容項目にアクセスすることが許可されていれば、「共有される」。特定の内容項目が共有されている場合、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
【００３２】
一例として、ユーザであるジョン・ドウ（John Doe：姓名不詳者）は、パーソナルユーザデバイスに、特定の映像を格納させるための要求を、ユーザインターフェイスを介して提出し得る。ユーザであるジョン・ドウは、ユーザであるメアリー・スミスと特定の映像を共有するようにとの命令を提出してもよい。共有命令に基づいて、ユーザであるメアリー・スミスは、特定の映像にアクセスすることが許可され得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき特定の映像を選択してもよい。
【００３３】
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目が共有されていたユーザの数に基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目が、当該１セットの内容項目内の他の内容項目と比べて、より多くのユーザと共有されていれば、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
【００３４】
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、結婚式で撮影された１０枚の写真を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。新婦の写真および新郎の写真は、各々、他の１０人のユーザと共有されている。結婚指輪の写真は他の５人のユーザと共有されている。結婚指輪を運んでいる人の写真は他の２人のユーザと共有されている。残りの６枚の写真は、他のどのユーザとも共有されていない。パーソナルユーザデバイスは、他の７枚の写真と比べて、新婦の写真、新郎の写真および結婚指輪の写真が大多数のユーザと共有されていると判断し得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき新婦の写真、新郎の写真および結婚指輪の写真を選択してもよい。
【００３５】
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目へのリモートアクセスが許可されたかどうかに基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目へのリモートアクセスが許可された場合、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配に送信する。
【００３６】
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに特定の画像を格納させるための要求をラップトップを介して提出してもよい。ラップトップおよびパーソナルユーザデバイスは自宅のローカルエリアネットワークに接続されていてもよい。ユーザであるジョン・ドウは、ローカルエリアネットワーク外から特定の画像へのアクセスを認可するようにとの命令を提出してもよい。したがって、ユーザであるジョン・ドウは、彼のラップトップまたは別のデジタルデバイスを用いて、家屋外から特定の画像にアクセスし得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき特定の画像を選択してもよい。
【００３７】
一実施形態においては、パーソナルユーザデバイスは、当該１セットの内容項目間の類似性および／または当該１セットの内容項目の品質に基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目が、他の同様の内容項目と比べて高品質であれば、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
【００３８】
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、赤ん坊についての２０枚の画像を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。２０枚の画像は連続して撮影されていた可能性もある。パーソナルユーザデバイスは、画像に関連付けられた類似性のレベルを判断するために画像を分析してもよい。パーソナルユーザデバイスは、類似性のレベルが指定されたしきい値を上回っていると判断するかもしれない。類似性のレベルに基づいて、パーソナルユーザデバイスは、何枚かの画像のうち３０％だけが重要であると判断するかもしれない。パーソナルユーザデバイスは、各々の画像の品質を判断するために画像を分析してもよい。品質は、画像の鮮明度、輝度、コントラスト、飽和度および／または他の属性によって定義されてもよい。パーソナルユーザデバイスは、２０枚の画像のうち３０％（すなわち、２０枚の画像のうち６枚の画像）を最高品質を有するものと特定し得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき６枚の画像を選択してもよい。
【００３９】
付加的および／または代替的な基準は、当該１セットの内容項目のうち、データ分配デバイスに送信して格納すべき少なくとも特定の内容項目を選択するために用いられてもよい。
【００４０】
パーソナルユーザデバイスは、複数のデータ分配デバイスのうち１つ以上に特定の内容項目を送信するオプションを有する。複数のデータ分配デバイスは、パブリッククラウドインフラストラクチャ内に含まれていてもよい。パーソナルユーザデバイスは、さまざまな基準に基づいて、複数のデータ分配デバイスから、特定の内容項目を格納するためのデータ分配デバイスを選択する。
【００４１】
一実施形態においては、パーソナルユーザデバイスは、データ分配デバイスと特定の内容項目にアクセスするユーザとの間の地理的な近接性に基づいて、特定の内容項目を格納するためのデータ分配デバイスを選択する。パーソナルユーザデバイスは、各々のデータ分配デバイスの位置を決定する。パーソナルユーザデバイスは、特定の内容項目にアクセスする各々のユーザの位置を決定する。パーソナルユーザデバイスは、特定の内容項目にアクセスするユーザに最も近接しているデータ分配デバイスを選択する。
【００４２】
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、特定の映像を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。ユーザであるジョン・ドウは、ユーザであるメアリー・スミスと特定の映像を共有するようにとの命令を提出してもよい。パーソナルユーザデバイスは、ユーザであるメアリー・スミスがニューヨークに居住していると判断するかもしれない。パーソナルユーザデバイスは、パブリッククラウドインフラストラクチャがカリフォルニアにあるサーバとニューヨークにあるサーバとを含むと判断するかもしれない。パーソナルユーザデバイスは、ニューヨークのサーバがユーザであるメアリー・スミスに最も近接していると判断するかもしれない。パーソナルユーザデバイスは、格納すべき特定の映像をニューヨークのサーバに送信してもよい。
【００４３】
一実施形態においては、パーソナルユーザデバイスは、データ分配デバイスの残存容量に基づいて特定の内容項目を格納するためのデータ分配デバイスを選択する。パーソナルユーザデバイスは、特定の内容項目を格納するための、最大の残存容量を有するデータ分配デバイスを選択する。
【００４４】
特定の内容項目を格納するためのデータ分配デバイスを複数のデータ分配デバイスから選択するために、付加的および／または代替的な基準が用いられてもよい。
【００４５】
パーソナルユーザデバイスは、データ分配デバイスの内容および／または容量を監視する。データ分配デバイスが最大容量に到達しているのに新しい内容項目を格納する必要がある場合、パーソナルユーザデバイスは、データ分配デバイスから削除されるべき１つ以上の内容項目を選択する。パーソナルユーザデバイスは、特定の内容項目がデータ分配デバイス上に格納された状態で、削除されるべく選択された内容項目を上書きするようにとの命令をデータ分配デバイスに送信する。データ分配デバイス上に格納されており削除および／または上書されるべき内容項目を選択するために、さまざまな基準が用いられてもよい。
【００４６】
一実施形態においては、パーソナルユーザデバイスは、内容項目についての共有履歴に基づいて、データ分配デバイスから削除されるべき内容項目を選択する。パーソナルユーザデバイスは、データ分配デバイスに送信された各々の内容項目の共有履歴の記録を維持する。パーソナルユーザデバイスは、或る内容項目を、削除するべき最も古い「最後に共有された日付」で特定する。パーソナルユーザデバイスは、最も古い「最後に共有された日付」の付いた内容項目をデータ分配デバイスから削除するようにとの命令をデータ分配デバイスに送信する。
【００４７】
付加的および／または代替的な基準は、データ分配デバイスから削除されるべき内容項目を選択するために用いられてもよい。
【００４８】
パーソナルユーザデバイスは、特定の内容項目に関連付けられたメタデータを削除してから、格納すべき特定の内容項目をデータ分配デバイスに送信する。パーソナルユーザデバイスは、特定の内容項目の作成者、作成日、内容項目タイプおよび／または内容項目名などの情報を削除する。パーソナルユーザデバイスは、データ分配デバイスによって用いられるべき特定の内容項目についての新しい識別子を生成する。パーソナルユーザデバイスは、新しい識別子と共に特定の内容項目をデータ分配デバイスに送信する。メタデータを削除することによって、データ分配デバイスは、特定の内容項目の属性に関する情報を持たない特定の内容項目を格納する。パーソナルユーザデバイスだけが特定の内容項目の属性に関する情報を有しているので、特定の内容項目のプライバシーが維持される。
【００４９】
１つ以上の実施形態は、特定の内容項目についての要求をクライアントデバイスから受取ることを含む（動作２０６）。クライアントデバイスは、パーソナルユーザデバイスに特定の内容項目についての要求を送信する。一実施形態においては、特定の内容項目がクライアントデバイスのユーザと共有されていた。ユーザは、特定の内容項目が共有されていたという通知を受取る。ユーザは、特定の内容項目を要求するようにとの命令を、クライアントデバイスを介して提出する。パーソナルユーザデバイスは、特定の内容項目についての要求を受取る。
【００５０】
クライアントデバイスは、パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して特定の内容項目についての要求を送信してもよい。クライアントデバイスは、当該要求を含む１つ以上のパケットをパーソナルユーザデバイスにアドレス指定することによって、直接接続を介して当該要求を送信する。インターネットなどのネットワークは、宛先アドレスに基づいてパケットをパーソナルユーザデバイスに転送する。パーソナルユーザデバイスは、要求を含むパケットを受取る。
【００５１】
代替的には、クライアントデバイスは、（ａ）クライアントデバイスとデータ分配デバイスとの間の直接接続、および（ｂ）パーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して、特定の内容項目についての要求を送信してもよい。データ分配デバイスを介してパーソナルユーザデバイスにメッセージを送信するこの方法は、「トンネリング」と称され得る。永続接続は、図１Ｂの永続接続１２６を参照して上述されたように、パーソナルユーザデバイスとデータ分配デバイスとの間に確立される。クライアントデバイスは、直接接続を介して要求を送信する試みに失敗した後、トンネルを介して要求を送信してもよい。クライアントデバイスは、要求を含む１つ以上のパケットをデータ分配デバイスにアドレス指定する。インターネットなどのネットワークは、宛先アドレスに基づいてパーソナルユーザデバイスにパケットを転送する。データ分配デバイスは、パケットを受取り、これらパケットを永続接続を介してパーソナルユーザデバイスに転送する。パーソナルユーザデバイスは、要求を含むパケットを受取る。
【００５２】
１つ以上の実施形態は、要求の伝達が、（ａ）パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して行なわれたか、または（ｂ）パーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して行なわれたかを判断することを含む（動作２０８）。パーソナルユーザデバイスは、特定の内容項目についての要求を含むパケットを受取る。パーソナルユーザデバイスは、これらパケットがクライアントデバイスによって直接送信されたか、またはデータ分配デバイスによって転送されたかどうかを判断するために、これらパケットを分析する。一例として、パーソナルユーザデバイスは、パケットに関連付けられたソースアドレスを決定してもよい。ソースアドレスがクライアントデバイスのアドレスであれば、要求は、クライアントデバイスとパーソナルユーザデバイスとの間の直接接続を介して受取られていた。ソースアドレスがデータ分配デバイスのアドレスであれば、要求は、データ分配デバイスとパーソナルユーザデバイスとの間の永続接続によって確立されたトンネルを介して受取られていた。別の例として、パーソナルユーザデバイスは、パケットを受取るために用いられるセッションを識別してもよい。パケットを受取るために用いられるセッションがパーソナルユーザデバイスとデータ分配デバイスとの間の永続接続である場合、要求は永続接続を介して受取られていた。他の場合、当該要求は、パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して受取られていた。
【００５３】
１つ以上の実施形態は、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイス要求および／または特定の内容項目に関連付けられた１つ以上の特性を決定することを含む（動作２１０）。リダイレクトの決定に用いられる特性の例は、パーソナルユーザデバイスおよび／またはデータ分配デバイスの帯域幅；パーソナルユーザデバイスおよび／またはデータ分配デバイスの負荷；パーソナルユーザデバイスおよび／またはデータ分配デバイスが要求を供給し得る際の速度；要求および／またはクライアントデバイスに関連付けられたプライオリティレベル；パーソナルユーザデバイス、データ分配デバイスおよび／またはクライアントデバイスの地理的位置および／またはネットワーク；ならびに、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうか；を含む。付加的および／または代替的な特性が用いられてもよい。
【００５４】
一例として、パーソナルユーザデバイスは、特定の内容項目についての要求を供給するためにパーソナルユーザデバイスの帯域幅を決定してもよい。パーソナルユーザデバイスは、４５Ｍｂｐｓのダウンロード速度および６Ｍｂｐｓのアップロード速度を有する家庭用ネットワークに接続されてもよい。パーソナルユーザデバイスは２つの他の要求を同時に供給してもよい。パーソナルユーザデバイスは、付加的な要求を供給するには帯域幅が不十分であると判断するかもしれない。この例に示されるように、パーソナルユーザデバイスは、パーソナルユーザデバイスに関連付けられた特性を決定する。
【００５５】
別の例として、パーソナルユーザデバイスは、データ分配デバイスの負荷を決定してもよい。パーソナルユーザデバイスは、データ分配デバイスの負荷についての要求をデータ分配デバイスに送信してもよい。データ分配デバイスは、供給されている要求の数、供給されている内容項目のサイズ、供給されているクライアントデバイスの数、および／または、他の情報に基づいて負荷を決定してもよい。データ分配デバイスはパーソナルユーザデバイスに負荷情報を送信してもよい。パーソナルユーザデバイスは、別の要求を供給するのに十分なリソースをデータ分配デバイスが有していると判断するかもしれない。この例に示されるように、パーソナルユーザデバイスは、データ分配デバイスに関連付けられた特性を決定する。
【００５６】
別の例として、パーソナルユーザデバイスは、特定の内容項目についての要求に関連付けられたプライオリティレベルを判断してもよい。パーソナルユーザデバイスは、要求がいずれかの高プライオリティフラグに関連付けられているかどうかを判断してもよい。この例に示されるように、パーソナルユーザデバイスは、要求に関連付けられた特性を決定する。
【００５７】
別の例として、パーソナルユーザデバイスは、特定の内容項目についての要求を送信したクライアントデバイスの地理的位置を判断してもよい。パーソナルユーザデバイスは、クライアントデバイスの地理的位置を判断するようにとの要求に関連付けられたインターネットプロトコル（Internet Protocol：ＩＰ）アドレスを分析してもよい。この例に示されるように、パーソナルユーザデバイスは、クライアントデバイスに関連付けられた特性を決定する。
【００５８】
別の例として、パーソナルユーザデバイスは、特定の内容項目に関連付けられた機密性レベルを決定してもよい。パーソナルユーザデバイスは、特定の内容項目が、高い機密性レベルに関連付けられているかまたは低い機密性レベルに関連付けられているかを判断し得る。高い機密性レベルは、特定の内容項目の機密性を維持することが非常に重要であることを示している。低い機密性レベルは、特定の内容項目の機密性を維持することがそれほど重要ではないことを示している。この例に示されるように、パーソナルユーザデバイスは、特定の内容項目に関連付けられた特性を決定する。
【００５９】
別の例として、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうかを判断してもよい。パーソナルユーザデバイスは、パーソナルユーザデバイス上に格納されている特定の内容項目のコピーの「最終修正日」を判断し得る。付加的には、パーソナルユーザデバイスは、パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目のコピーを最後に送信した日付を判断してもよい。パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目のコピーを最後に送信した後に特定の内容項目が変更された場合、データ分配デバイスは最新バージョンの特定の内容項目を格納しない。
【００６０】
１つ以上の実施形態は、特性に基づいて、（ａ）特定の内容項目を供給するべきか、または、（ｂ）特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかを判断することを含む（動作２１２）。パーソナルユーザデバイス（および／または、そのリダイレクトマネージャ）は、動作２１０において決定された特性に基づいて、特定の内容項目自体を供給するべきか、またはクライアントデバイスをリダイレクトするべきかを判断する。いくつかの実施形態においては、パーソナルユーザデバイスは、データファイル全体を供給してもよく、または、データファイル全体を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。他の実施形態においては、パーソナルユーザデバイスは、データファイルの一部を供給し得るが、その間、データファイルの別の部分を得るためにデータ分配デバイスにクライアントデバイスをリダイレクトし得る。
【００６１】
一例として、パーソナルユーザデバイスは、特定の内容項目についての要求を供給するのに十分な帯域幅をパーソナルユーザデバイスが有していると判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
【００６２】
逆に、パーソナルユーザデバイスは、パーソナルユーザデバイスが有する帯域幅が特定の内容項目についての要求を供給するのに不十分であると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００６３】
別の例として、パーソナルユーザデバイスは、データ分配デバイスの負荷が最大容量に到達したと判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
【００６４】
逆に、パーソナルユーザデバイスは、データ分配デバイスが要求を供給するのに十分な容量を有していると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００６５】
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイスが要求を供給し得る速度が指定されたしきい値を上回っていると判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
【００６６】
逆に、パーソナルユーザデバイスは、パーソナルユーザデバイスが要求を供給し得る速度が指定されたしきい値未満であると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００６７】
別の例として、クライアントデバイスは、しきい値期間内で特定の内容項目を受取る必要があると判断するかもしれない。クライアントデバイスは、データ分配デバイスが、時間要件内で特定の内容項目を供給するための帯域幅を有していないと判断するかもしれない。クライアントデバイスは、データ分配デバイスおよびパーソナルユーザデバイスがともに、時間要件を満たすために、特定の内容項目のうち異なる部分を同時に供給する必要があると判断するかもしれない。クライアントデバイスは、特定の内容項目についての要求を高プライオリティフラグと共に、パーソナルユーザデバイスに送信してもよい。パーソナルユーザデバイスは、要求が高プライオリティフラグに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、高プライオリティフラグに基づいて、特定の内容項目の一部分を供給してもよく、特定の内容項目の別の部分を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。高プライオリティフラグに加えて、または高プライオリティフラグの代わりに、クライアントデバイスは、クライアントデバイスが特定の内容項目を１つ以上の特有のソースに要求していることを示すために他のインジケータを用いてもよい。（データ分配デバイスなどの）特有のソースに対する特定の内容項目についてのクライアントデバイスからの要求は、パーソナルユーザデバイスによってなされていたであろう如何なるリダイレクトの決定をも無効にする。
【００６８】
別の例として、パーソナルユーザデバイスは、要求、クライアントデバイスおよび／またはクライアントデバイスのユーザが高プライオリティに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、パーソナルユーザデバイスの帯域幅とデータ分配デバイスの帯域幅とを比較してもよい。パーソナルユーザデバイスの帯域幅がより高い場合、パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。逆に、データ分配デバイスの帯域幅がより高い場合、パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００６９】
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスの地理的位置を判断し得る。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスよりもパーソナルユーザデバイスにより近接していると判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。逆に、パーソナルユーザデバイスは、クライアントデバイスがパーソナルユーザデバイスよりもデータ分配デバイスにより近接していると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００７０】
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスに関連付けられたネットワークを判断してもよい。パーソナルユーザデバイスは、クライアントデバイスがパーソナルユーザデバイスのネットワークからデータを受取ることは許可されているが、データ分配デバイスのネットワークからデータを受取ることは許可されていないと判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。逆に、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスのネットワークからデータを受取ることは許可されているが、パーソナルユーザデバイスのネットワークからデータを受取ることは許可されていないと判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００７１】
別の例として、パーソナルユーザデバイスは、特定の内容項目が高い機密性レベルに関連付けられていると判断するかもしれない。高い機密性レベルに基づけば、特定の内容項目は、データ分配デバイスに関連付けられたネットワークを介して送信されるべきではない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。
【００７２】
逆に、パーソナルユーザデバイスは、特定の内容項目が低い機密性レベルに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００７３】
別の例として、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納していないと判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。
【００７４】
逆に、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納していると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００７５】
別の例として、特定のデータファイルは複数の断片を含んでもよい。パーソナルユーザデバイスは、格納すべき特定のデータファイルをデータ分配デバイスに送信してもよい。その後、特定のデータファイルの特定の断片がパーソナルユーザデバイス上で更新されてもよい。パーソナルユーザデバイスは、特定のデータファイルについての要求を受取るかもしれない。パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の断片を格納していないが、特定のデータファイルのうち最新バージョンの他の断片を格納していると判断するかもしれない。パーソナルユーザデバイスは、特定のデータファイルの特定の断片をクライアントデバイスに供給してもよい。付加的には、パーソナルユーザデバイスは、特定のデータファイルの他の断片を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
【００７６】
パーソナルユーザデバイスは、付加的および／または代替的な方法で動作２１０において判断された特性を用いて、特定の内容項目を供給するべきか、または特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかどうかを判断し得る。
【００７７】
パーソナルユーザデバイスが特定の内容項目を供給すると判断した場合、パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を送信する（動作２１４）。パーソナルユーザデバイスは、クライアントデバイスが特定の内容項目をダウンロードするかまたは配信することを可能にし得る。
【００７８】
パーソナルユーザデバイスが特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトすると判断した場合、パーソナルユーザデバイスは、データ分配デバイスから特定の内容項目を得るようにとの命令をクライアントデバイスに送信する（動作２１６）。パーソナルユーザデバイスは、パーソナルユーザデバイスによって格納されている特定の内容項目をクライアントデバイスに供給することはない。
【００７９】
パーソナルユーザデバイスは、データ分配デバイスの識別子またはアドレスをクライアントデバイスに送信する。クライアントデバイスは、特定の内容項目についての要求をデータ分配デバイスに送信する。データ分配デバイスは、クライアントデバイスに特定の内容項目を送信する。データ分配デバイスは、クライアントデバイスが特定の内容項目をダウンロードするかまたは配信することを可能にし得る。
【００８０】
付加的または代替的には、パーソナルユーザデバイスは、データ分配デバイス上の第１の内容項目の識別子またはアドレスをクライアントデバイスに送信する。クライアントデバイスは、識別子またはアドレスを用いて、データ分配デバイスから特定の内容項目を検索する。クライアントデバイスは、データ分配デバイスから特定の内容項目を得る。クライアントデバイスは特定の内容項目をダウンロードまたは配信してもよい。
【００８１】
いくつかの実施形態においては、上述のとおり、パーソナルユーザデバイスは、データファイルの一部分を供給し得るが、その間、データファイルの別の部分を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトし得る。クライアントデバイスは、パーソナルユーザデバイスから一部分をダウンロードし、データ分配デバイスから別の部分をダウンロードする。クライアントデバイスは、データファイルを得るために異なる部分同士を組合わせる。付加的または代替的には、クライアントデバイスは、一部分をパーソナルユーザデバイスから配信し、別の部分をデータ分配デバイスから配信する。クライアントデバイスは、データファイルからなる単一の連続ストリームを得るために異なる部分同士を組合わせる。
【００８２】
こうして、クライアントデバイスは、上述の動作に基づいて、少なくとも２つの目的のために或る要求をデータ分配デバイスに送信し得る。まず、動作２０６を参照して上述したとおり、クライアントデバイスは、データ分配デバイスとパーソナルユーザデバイスとの間の永続接続によってパーソナルユーザデバイスに要求に送り込むために、データ分配デバイスに要求を送信し得る。第二に、動作２１６を参照して上述したとおり、クライアントデバイスは、データ分配デバイス自体から特定の内容項目を得るために、データ分配デバイスに要求を送信し得る。これらの２つのタイプの要求の内容、フォーマット、構造および／または他の特性は異なっていてもよい。データ分配デバイスが要求を受取ると、データ分配デバイスは、内容、フォーマット、構造および／または他の特性に基づいて要求のタイプを決定してもよい。次いで、要求のタイプに応じて、データ分配デバイスは、永続接続によってパーソナルユーザデバイスに要求を転送してもよく、または要求自体を供給してもよい。
【００８３】
動作２０８に戻り、要求がパーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して伝達された場合、パーソナルユーザデバイスは、特定の内容項目をクライアントデバイスに提供するようにとの命令をデータ分配デバイスに送信する（動作２１８）。パーソナルユーザデバイスは、永続して一貫的にデータ分配デバイスに要求を送信し得る。データ分配デバイスは、命令に応答して、クライアントデバイスに特定の内容項目を送信する。
【００８４】
図２Ｂは、１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための１セットの動作の別の例を示す。図２Ｂに例示される１つ以上の動作は、変更されてもよいし、再配置されてもよいし、すべて省略されてもよい。したがって、図２Ｂに例示される動作の特定のシーケンスは、１つ以上の実施形態の範囲を限定するものとして解釈されるべきでない。
【００８５】
１つ以上の実施形態は、特定の内容項目を得るようにとの要求をパーソナルユーザデバイスに送信することを含む（動作２２２）。クライアントデバイスはパーソナルユーザデバイスに要求を送信する。パーソナルユーザデバイスは、特定の内容項目のコピーを格納する。内容項目についての要求をパーソナルユーザデバイスに送信することに関するさらなる説明は、動作２０２に関する上述の記載に含まれている。
【００８６】
１つ以上の実施形態は、特定の内容項目のうちどの部分がデータ分配デバイスから得られ得るかを示すメッセージをパーソナルユーザデバイスから受取ることを含む（動作２２４）。特定の内容項目についての要求を受取った後、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを可能にするべきかどうかを判断する。パーソナルユーザデバイスは、さまざまな要因に基づいてこの判断を行ない得る。
【００８７】
一例として、パーソナルユーザデバイスは、データ分配が最新バージョンの特定の内容項目を格納しているかどうかを判断し得る。パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目を送信しなかった場合、データ分配デバイスは、最新バージョンの特定の内容項目を格納していない。他の場合には、パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目を送信したが、パーソナルユーザデバイス上の特定の内容項目のコピーが送信後に更新されていた場合、データ分配デバイスは最新バージョンの特定の内容項目をしない。データ分配が最新バージョンの特定の内容項目を格納していない場合、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを許可しない。
【００８８】
別の例として、パーソナルユーザデバイスは、データ分配デバイスが特定の内容項目のうち最新バージョンの各部分を格納しているかどうかを判断してもよい。パーソナルユーザデバイスは、クライアントデバイスが、特定の内容項目のうちデータ分配デバイス上で最新である部分だけをデータ分配デバイスから得ることを許可にする。
【００８９】
別の例として、パーソナルユーザデバイスは、クライアントデバイスのセキュリティクレデンシャルを決定してもよい。クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを認可されていない場合、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを許可しない。
【００９０】
パーソナルユーザデバイスは、特定の内容項目のうちどの部分がデータ分配デバイスから得られ得るかを示すメッセージを特定の内容項目に送信する。メッセージは、（ａ）クライアントデバイスがデータ分配デバイスから特定の内容項目全体を取得し得ること、（ｂ）クライアントデバイスが、データ分配デバイスから特定の内容項目のうち１つ以上の部分だけを取得し得ること、または、（ｃ）クライアントデバイスがデータ分配デバイスから特定の内容項目を全く取得し得ないことを、を示し得る。クライアントデバイスはパーソナルユーザデバイスからメッセージを受取る。
【００９１】
一実施形態においては、パーソナルユーザデバイスからクライアントデバイスによって受取られたメッセージは、データ分配デバイスの識別子またはアドレスを含む。クライアントデバイスは、データ分配デバイスに特定の内容項目を要求するための識別子を用いてもよい。
【００９２】
一例として、クライアントデバイスは、赤ん坊の写真についての第１の要求をパーソナルユーザデバイスに送信してもよい。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから赤ん坊の写真を取得し得ることを示す第１のメッセージをクライアントデバイスに送信してもよい。第１のメッセージは、データ分配デバイスの識別子を含み得る。クライアントデバイスは、データ分配デバイスに赤ん坊の写真を要求するための識別子を用いてもよい。続いて、クライアントデバイスは、赤ん坊の写真についての第２の要求を送信してもよい。クライアントデバイスがデータ分配デバイスの識別子を既に有しているので、クライアントデバイスは、識別子が既知であることを第２の要求において示してもよい。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから赤ん坊の写真を取得し得ることを示している第２のメッセージをクライアントデバイスに送信してもよい。しかしながら、クライアントデバイスが既に識別子を有していることをクライアントデバイスが示していたので、第２のメッセージはデータ分配デバイスの識別子を含んでいない。
【００９３】
１つ以上の実施形態は、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイスおよび／または特定の内容項目に関連付けられた１つ以上の特性を決定することを含む（動作２２６）。特定の内容項目についてのソースを選択するために用いられる特性の例は、パーソナルユーザデバイスおよび／またはデータ分配デバイスの帯域幅；パーソナルユーザデバイスおよび／またはデータ分配デバイスの負荷；パーソナルユーザデバイスおよび／またはデータ分配デバイスが要求を供給し得る際の速度；クライアントデバイスに関連付けられたプライオリティレベル；ならびに、パーソナルユーザデバイス、データ分配デバイスおよび／またはクライアントデバイスの地理的位置および／またはネットワーク；を含む。付加的および／または代替的な特性が用いられてもよい。
【００９４】
一例として、クライアントデバイスは、パーソナルユーザデバイスから特定の内容項目を配信してもよい。クライアントデバイスは、パーソナルユーザデバイスがサービス品質基準を満たす態様で特定の内容項目を供給し損じていると判断するかもしれない。サービス品質基準は、たとえば、特定の内容項目がジッタリングなしでクライアントデバイスにおいて表示されることを必要とするかもしれない。別のサービス品質基準は、たとえば、特定の内容項目が、標準モードではなく、高解像度（high-definition：ＨＤ）モードでクライアントデバイスにおいて表示されることを必要とするかもしれない。別のサービス品質基準は、たとえば、クライアントデバイスのストリーミングバッファの排出レートが指定されたしきい値未満であることを必要とするかもしれない。別のサービス品質基準は、たとえば、クライアントデバイスのストリーミングバッファによって格納されたデータ量が指定されたしきい値を上回っていることを必要とするかもしれない。サービス品質基準が満たされていなければ、クライアントデバイスは、特定の内容項目を供給するための帯域幅がパーソナルユーザデバイス上で不十分であると判断するかもしれない。この例に示されるように、クライアントデバイスは、パーソナルユーザデバイスに関連付けられた特性を決定する。
【００９５】
１セットの特性の決定に関するさらなる説明は、動作２１０に関する上述の記載に含まれている。動作２１０に関連付けられたいくつかの例において、当該１セットの特性を決定するパーソナルユーザデバイスを説明しているが、如何なる構成要素および／またはモジュール（クライアントデバイスなど）が当該１セットの特性を決定してもよい。
【００９６】
１つ以上の実施形態は、特性に基づいて、特定の内容項目の各部分を得るためのソースとしてパーソナルユーザデバイスまたはデータ分配デバイスを選択することを含む（動作２２８）。クライアントデバイスは、動作２２６において決定された特性に基づいて、パーソナルユーザデバイスまたはデータ分配デバイスをソースとして選択する。いくつかの実施形態においては、クライアントデバイスは、全データファイルを得るためにパーソナルユーザデバイスを選択してもよく、または全データファイルを得るためにデータ分配デバイスを選択してもよい。他の実施形態においては、クライアントデバイスは、データファイルの一部を得るためにパーソナルユーザデバイスを選択し得る一方で、データファイルの別の部分を得るためにデータ分配デバイスを選択し得る。
【００９７】
一例として、クライアントデバイスは、特定の内容項目についての要求を供給するための十分な帯域幅をパーソナルユーザデバイスが有していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてパーソナルユーザデバイスを選択してもよい。
【００９８】
逆に、クライアントデバイスは、パーソナルユーザデバイスが有する帯域幅が特定の内容項目についての要求を供給するには不十分であると判断するかもしれない。上述のとおり、クライアントデバイスは、パーソナルユーザデバイスが有する帯域幅が不十分であると判断するかもしれない。なぜなら、クライアントデバイスが、サービス品質基準を満たす態様でパーソナルユーザデバイスから特定の内容項目の部分を受取り損なっているからである。クライアントデバイスは、特定の内容項目のうち残余部分を受取るためにデータ分配デバイスに切換えてもよい。代替的には、クライアントデバイスは、特定の内容項目の別々の部分をパーソナルユーザデバイスおよびデータ分配デバイスの両方から同時に得るかもしれない。クライアントデバイスの目的は、最大スループットを得ることであり、最小限の時間量で特定の内容項目を得ることであり得る。
【００９９】
別の例として、クライアントデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスの地理的位置を判断し得る。クライアントデバイスは、クライアントデバイスがデータ分配デバイスよりもパーソナルユーザデバイスにより近接していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてパーソナルユーザデバイスを選択してもよい。逆に、クライアントデバイスは、クライアントデバイスがパーソナルユーザデバイスよりもデータ分配デバイスにより近接していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてデータ分配デバイスを選択してもよい。
【０１００】
当該１セットの特性に基づいて内容項目を得るためのソースを選択することに関するさらなる説明は、動作２１２に関する上述の記載に含まれている。動作２１２において、パーソナルユーザデバイスは、（ａ）特定の内容項目を供給するか、または、（ｂ）特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするかどうかを判断する。特定の内容項目を供給すると判断することは、特定の内容項目についてのソースとしてパーソナルユーザデバイスを選択することと同等であり得る。クライアントデバイスをデータ分配デバイスにリダイレクトするとの判断は、特定の内容項目についてのソースとしてデータ分配デバイスを選択することと同等であり得る。動作２１２に関連付けられたいくつかの例において、パーソナルユーザデバイスが内容項目を得るためのソースを選択することが記載されているが、如何なる構成要素および／またはモジュール（クライアントデバイスなど）が内容項目を得るためのソースを選択してもよい。
【０１０１】
１つ以上の実施形態は、パーソナルユーザデバイスおよび／またはデータ分配デバイスが選択されたかどうかを判断することを含む（動作２３０）。上述のとおり、いくつかの実施形態においては、クライアントデバイスは、全データファイルを得るためにパーソナルユーザデバイスを選択してもよく、または全データファイルを得るためにデータ分配デバイスを選択してもよい。他の実施形態においては、クライアントデバイスは、データファイルの一部を得るためにパーソナルユーザデバイスを選択し得る一方で、データファイルの別の部分を得るためにデータ分配デバイスを選択し得る。
【０１０２】
パーソナルユーザデバイスが選択されていた場合、クライアントデバイスは、パーソナルユーザデバイスから特定の内容項目のうち少なくとも一部についての要求を送信する（動作２３２）。クライアントデバイスは、特定の内容項目のうち要求された部分をパーソナルユーザデバイスから受取る（動作２３４）。
【０１０３】
データ分配デバイスが選択されていた場合、クライアントデバイスは、特定の内容項目のうち少なくとも一部についての要求をデータ分配デバイスから送信する（動作２３６）。クライアントデバイスは、特定の内容項目のうち要求された部分をデータ分配デバイスから受取る（動作２３８）。
【０１０４】
一実施形態においては、クライアントデバイスは、動作２３６および動作２３８を実行せずに動作２３２および動作２３４を実行する。代替的には、クライアントデバイスは、動作２３２および動作２３４を実行せずに動作２３６および動作２３８を実行する。代替的には、クライアントデバイスは、特定の内容項目の一部に対して動作２３２および動作２３４を実行し、特定の内容項目のうち別の部分に対して動作２３６および動作２３８を実行する。
【０１０５】
４．実施形態の例
明瞭にする目的で詳細な例を以下に説明する。以下に記載される構成要素および／または動作は、いくつかの実施形態に適用可能となり得ない１つの特定の例として理解されるべきである。したがって、以下に記載される構成要素および／または動作は添付の特許請求の範囲を限定するものとして解釈されるべきでない。
【０１０６】
図３Ａ〜図３Ｃは、１つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す。図３Ａ〜図３Ｃの各々は、パーソナルユーザデバイス３０２、データ分配デバイス３０６およびクライアントデバイス３０８を含む。
【０１０７】
図３Ａは、クライアントデバイス３０８に内容項目を供給することをパーソナルユーザデバイス３０２が決定する例を示す。
【０１０８】
ユーザであるジョン・ドウは、ユーザインターフェイスを介して、赤ん坊の写真を格納するようにとの命令をパーソナルユーザデバイス３０２に提出する。パーソナルユーザデバイスは赤ん坊の写真を格納する。
【０１０９】
ユーザであるジョン・ドウはユーザであるメアリー・スミスと赤ん坊の写真を共有する。パーソナルユーザデバイス３０２は共有決定３１２を実行する。パーソナルユーザデバイス３０２は、赤ん坊の写真が別のユーザと共有されたと判断する。
【０１１０】
赤ん坊の写真を共有したことに基づいて、パーソナルユーザデバイス３０２は、アップロード要求３１４をデータ分配デバイス３０６に送信する。パーソナルユーザデバイス３０２は、データ分配デバイス３０６に格納すべき赤ん坊の写真をデータ分配デバイス３０６に送信する。データ分配デバイス３０６は赤ん坊の写真を格納する。
【０１１１】
ユーザであるメアリー・スミスは、赤ん坊の写真がユーザであるメアリー・スミスと共有されたという通知を受取る。ユーザであるメアリー・スミスは、赤ん坊の写真を得るようにとの命令をクライアントデバイス３０８を介して提出する。クライアントデバイス３０８は、検索要求３１６をパーソナルユーザデバイス３０２に送信する。検索要求３１６は赤ん坊の写真についての要求である。
【０１１２】
パーソナルユーザデバイス３０２はリダイレクト決定３１８を実行する。パーソナルユーザデバイス３０２は、パーソナルユーザデバイス３０２に関連付けられた特性を決定する。パーソナルユーザデバイス３０２は、赤ん坊の写真を供給するために十分な帯域幅をパーソナルユーザデバイス３０２が有していると判断する。パーソナルユーザデバイス３０２は、クライアントデバイス３０８に赤ん坊の写真を供給することを決定する。
【０１１３】
赤ん坊の写真を供給するとの決定に基づいて、パーソナルユーザデバイス３０２は、クライアントデバイス３０８に赤ん坊の写真を送信する（図３Ａにおける「内容項目送信３２０」と称される）。クライアントデバイス３０８はパーソナルユーザデバイス３０２から赤ん坊の写真を受取る。
【０１１４】
図３Ｂは、内容項目を得るためにクライアントデバイス３０８をデータ分配デバイス３０６にリダイレクトすることをパーソナルユーザデバイス３０２が決定する例を示す。
【０１１５】
図３Ａに示される例と同様に、パーソナルユーザデバイス３０２は、共有決定３１２を実行し、アップロード要求３１４を送信し、検索要求３１６を受取る。
【０１１６】
パーソナルユーザデバイス３０２はリダイレクト決定３１８を実行する。パーソナルユーザデバイス３０２は、パーソナルユーザデバイス３０２に関連付けられた特性を決定する。パーソナルユーザデバイス３０２は、パーソナルユーザデバイス３０２が有する帯域幅が赤ん坊の写真を供給するには不十分であると判断する。パーソナルユーザデバイス３０２は、赤ん坊の写真を得るためにクライアントデバイス３０８をデータ分配デバイス３０６にリダイレクトすることを決定する。
【０１１７】
パーソナルユーザデバイス３０２はクライアントデバイス３０８にリダイレクト命令３２２を送信する。リダイレクト命令３２２は、赤ん坊の写真を格納するデータ分配デバイス３０６のアドレスを含む。
【０１１８】
リダイレクト命令３２２に応答して、クライアントデバイス３０８は検索要求３２４をデータ分配デバイス３０６に送信する。検索要求３２４は赤ん坊の写真についての要求である。
【０１１９】
検索要求３２４に応答して、データ分配デバイス３０６は、クライアントデバイス３０８に赤ん坊の写真を送信する（図３Ｂにおいて「内容項目送信３２６」と称される）。クライアントデバイス３０８はデータ分配デバイス３０６から赤ん坊の写真を受取る。
【０１２０】
別の例（図示されない）においては、図３Ａおよび図３Ｂに示される動作の組合せが実行される。
【０１２１】
ユーザであるジョン・ドウは、結婚式の映像を格納するようにとの命令を、ユーザインターフェイスを介してパーソナルユーザデバイス３０２に提出する。パーソナルユーザデバイスは結婚式の映像を格納する。
【０１２２】
ユーザであるジョン・ドウはユーザであるメアリー・スミスと結婚式の映像を共有する。パーソナルユーザデバイス３０２は共有決定３１２を実行する。パーソナルユーザデバイス３０２は、結婚式の映像が別のユーザと共有されたと判断する。
【０１２３】
結婚式の映像が共有されていることに基づいて、パーソナルユーザデバイス３０２は、データ分配デバイス３０６にアップロード要求３１４を送信する。パーソナルユーザデバイス３０２は、データ分配デバイス３０６に格納すべき結婚式の映像をデータ分配デバイス３０６に送信する。データ分配デバイス３０６は結婚式の映像を格納する。
【０１２４】
ユーザであるジョン・ドウは、結婚式の映像を更新する。特に、ユーザであるジョン・ドウは、「クリスティーナ＆ジェーソン（２０１６年２月１日）」とのタイトルキャプションを結婚式の映像の冒頭セグメントに追加する。
【０１２５】
ユーザであるメアリー・スミスは、結婚式の映像がユーザであるメアリー・スミスと共有されたという通知を受取る。ユーザであるメアリー・スミスは、結婚式の映像を得るようにとの命令をクライアントデバイス３０８を介して提出する。クライアントデバイス３０８はパーソナルユーザデバイス３０２に検索要求３１６を送信する。検索要求３１６は結婚式の映像についての要求である。
【０１２６】
パーソナルユーザデバイス３０２はリダイレクト決定３１８を実行する。パーソナルユーザデバイス３０２は、パーソナルユーザデバイス３０２が有する帯域幅が結婚式の映像を供給するには不十分であると判断する。パーソナルユーザデバイス３０２は、データ分配デバイス３０６が最新バージョンの結婚式の映像の冒頭セグメントを格納していないと判断する。しかしながら、データ分配デバイス３０６が格納している結婚式の映像のうち残り部分は最新バージョンである。パーソナルユーザデバイス３０２は、結婚式の映像の冒頭セグメントをクライアントデバイス３０８に供給する一方で、結婚式の映像の残りの部分のためにクライアントデバイス３０８をデータ分配デバイス３０６にリダイレクトすることを決定する。
【０１２７】
パーソナルユーザデバイス３０２は、結婚式の映像の冒頭セグメントをクライアントデバイス３０８に送信する（図３Ａにおける「内容項目送信３２０」と同様である）。
【０１２８】
クライアントデバイス３０８は、パーソナルユーザデバイス３０２から結婚式の映像の冒頭セグメントを得る。クライアントデバイス３０８は、パーソナルユーザデバイス３０２から結婚式の映像の冒頭セグメントを配信してもよい。
【０１２９】
付加的には、パーソナルユーザデバイス３０２は、クライアントデバイス３０８にリダイレクト命令を送信する（図３Ｂにおける「リダイレクト命令３２２」と同様である）。リダイレクト命令は、データ分配デバイスのアドレスを含む。リダイレクト命令は、データ分配デバイス３０６から結婚式の映像の残りを得るようにクライアントデバイス３０８に命令する。
【０１３０】
リダイレクト命令に応答して、クライアントデバイス３０８は、結婚式の映像の残りについての検索要求をデータ分配デバイス３０６に送信する（図３Ｂにおける「検索要求３２４」と同様である）。
【０１３１】
検索要求に応答して、データ分配デバイス３０６は、結婚式の映像の残りをクライアントデバイスに送信する（図３Ｂにおける「内容項目送信３２６」と同様である）。
【０１３２】
クライアントデバイス３０８は、結婚式の映像の残りをデータ分配デバイス３０６から得る。クライアントデバイス３０８は、データ分配デバイス３０６から結婚式の映像の残りを配信してもよい。
【０１３３】
図３Ｃは、パーソナルユーザデバイス３０２が、パーソナルユーザデバイス３０２とデータ分配デバイス３０６との間の永続接続によって確立されたトンネルを介して、クライアントデバイス３０８から、内容項目についての要求を受取る例を示す。
【０１３４】
図３Ａに示される例と同様に、パーソナルユーザデバイス３０２は共有決定３１２を実行し、アップロード要求３１４を送信する。
【０１３５】
ユーザであるメアリー・スミスは、赤ん坊の写真がユーザであるメアリー・スミスと共有されたという通知を受取る。ユーザであるメアリー・スミスは、赤ん坊の写真を得るようにとの命令をクライアントデバイス３０８を介して提出する。クライアントデバイス３０８は、パーソナルユーザデバイス３０２に検索要求３１６を送信するよう試みる。しかしながら、クライアントデバイス３０８は、パーソナルユーザデバイス３０２との直接接続を確立することができない。パーソナルユーザデバイス３０２は、クライアントデバイス３０８との直接接続を妨げるファイアウォールによって保護されているかもしれない。
【０１３６】
クライアントデバイス３０８は、次いで、パーソナルユーザデバイス３０２とデータ分配デバイス３０６との間の永続接続によって確立されたトンネルを介して、赤ん坊の写真についての検索要求３２８を送信するよう試みる。クライアントデバイス３０８は、データ分配デバイス３０６との直接接続を確立する。クライアントデバイス３０８は検索要求３２８をデータ分配デバイス３０６にアドレス指定する。
【０１３７】
データ分配デバイス３０６は、検索要求３２８を受取り、永続接続を介して検索要求３３０をパーソナルユーザデバイス３０２に転送する。
【０１３８】
パーソナルユーザデバイス３０２は検索要求３３０を受取る。パーソナルユーザデバイス３０２は、検索要求３３０が、クライアントデバイス３０８から直接にではなく、データ分配デバイス３０６との永続接続を介して伝達されたと判断する。パーソナルユーザデバイス３０２はデータ分配デバイス３０６に送信要求３３２を送信する。送信要求３３２は、クライアントデバイス３０８に赤ん坊の写真を提供するようにとのデータ分配デバイス３０６に対する要求である。
【０１３９】
送信要求３３２に応答して、データ分配デバイス３０６は、クライアントデバイス３０８に赤ん坊の写真を送信する（図３Ｃにおける「内容項目送信３３４」と称される）。クライアントデバイス３０８はデータ分配デバイス３０６から赤ん坊の写真を受取る。
【０１４０】
５．コンピュータネットワークおよびクラウドネットワーク
１つ以上の実施形態においては、コンピュータネットワークは１セットのノード間に接続性を提供する。ノードは互いに対してローカルであってもよく、および／またはリモートであってもよい。ノードは１セットのリンクによって接続されている。リンクの例として、同軸ケーブル、非シールドより対ケーブル、銅ケーブル、光ファイバおよび仮想リンクが含まれる。
【０１４１】
ノードのサブセットはコンピュータネットワークを実現する。このようなノードの例は、スイッチ、ルータ、ファイアウォールおよびネットワーク・アドレス・トランスレータ（network address translator：ＮＡＴ）を含む。ノードの別のサブセットはコンピュータネットワークを用いる。このようなノード（「ホスト」とも称される）は、クライアントプロセスおよび／またはサーバプロセスを実行し得る。クライアントプロセスは、（特定のアプリケーションの実行および／または特定のデータ量の格納などの）コンピューティングサービスについての要求を行なう。サーバプロセスは、要求されたサービスを実行することおよび／または対応するデータを戻すことによって応答する。
【０１４２】
コンピュータネットワークは、物理リンクによって接続された物理ノードを含む物理ネットワークであってもよい。物理ノードは如何なるデジタルデバイスであってもよい。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォールおよびハードウェアＮＡＴなどの特定機能のハードウェアデバイスであってもよい。付加的または代替的には、物理ノードは、それぞれの機能を実行するさまざまな仮想マシンおよび／またはアプリケーションを実行するように構成された一般的なマシンであってもよい。物理リンクは２つ以上の物理ノードを接続する物理的媒体である。リンクの例として、同軸ケーブル、非シールドより対ケーブル、銅ケーブルおよび光ファイバが含まれる。
【０１４３】
コンピュータネットワークはオーバーレイ・ネットワークであってもよい。オーバーレイ・ネットワークは、（物理ネットワークなどの）別のネットワーク上において実現される論理的ネットワークである。オーバーレイ・ネットワークにおける各ノードは、下層にあるネットワークにおけるそれぞれのノードに対応する。したがって、オーバーレイ・ネットワークにおける各ノードは、（オーバーレイ・ノードにアドレス指定するための）オーバーレイ・アドレス、および（オーバーレイ・ノードを実現するアンダーレイ・ノードをアドレス指定するための）アンダーレイ・アドレスの両方に関連付けられている。オーバーレイ・ノードは、デジタルデバイスおよび／またはソフトウェアプロセス（仮想マシン、アプリケーション・インスタンスまたはスレッドなど）であってもよい。オーバーレイ・ノードを接続するリンクは、下層にあるネットワークを介するトンネルとして実現される。トンネルのどちらの端部にもあるこれらオーバーレイ・ノードは、それらの間の下層にあるマルチホップ経路を単一の論理リンクとして処理する。トンネリングはカプセル化および非カプセル化によって実行される。
【０１４４】
一実施形態においては、クライアントはコンピュータネットワークに対してローカルであってもよく、および／またはリモートであってもよい。クライアントは、プライベートネットワークまたはインターネットなどの他のコンピュータネットワークを介してコンピュータネットワークにアクセスしてもよい。クライアントは、ハイパーテキスト転送プロトコル（Hypertext Transfer Protocol：ＨＴＴＰ）などの通信プロトコルを用いて、コンピュータネットワークに要求を伝達してもよい。これらの要求は、クライアント・インターフェイス（ウェブ・ブラウザなど）、プログラムインターフェイスまたはアプリケーションプログラムインターフェイス（application programming interface：ＡＰＩ）などのインターフェイスを介して伝達される。
【０１４５】
一実施形態においては、コンピュータネットワークは、クライアントとネットワークリソースとの間に接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび／またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナおよび／またはソフトウェアアプリケーションを含む。ネットワークリソースは複数のクライアント間で共有される。クライアントは、互いからは独立してコンピュータネットワークにコンピューティングサービスを要求する。ネットワークリソースは、オン・デマンドで要求および／またはクライアントに動的に割当てられている。各々の要求および／またはクライアントに割当てられたネットワークリソースは、たとえば、（ａ）特定のクライアントによって要求されたコンピューティングサービス；（ｂ）特定のテナントによって要求された集約型コンピューティングサービス；および／または（ｃ）コンピュータネットワークによって要求された集約型コンピューティングサービス；に基づいて、スケールアップまたはスケールダウンされ得る。このようなコンピュータネットワークは「クラウドネットワーク」と称されてもよい。
【０１４６】
一実施形態においては、サービスプロバイダは１つ以上のエンドユーザにクラウドネットワークを提供する。さまざまなサービスモデルは、ソフトウェア・アズ・ア・サービス（Software-as-a-Service：ＳａａＳ）、プラットフォーム・アズ・ア・サービス（Platform-as-a-Service：ＰａａＳ）およびインフラストラクチャ・アズ・ア・サービス（Infrastructure-as-a-Service：ＩａａＳ）を含むがこれらに限定されないクラウドネットワークによって実現され得る。ＳａａＳにおいては、サービスプロバイダは、ネットワークリソース上で実行されているサービスプロバイダのアプリケーションを用いるための能力をエンドユーザに提供する。ＰａａＳにおいては、サービスプロバイダは、ネットワークリソース上にカスタムアプリケーションをデプロイするための能力をエンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダによってサポートされるプログラミング言語、ライブラリ、サービスおよびツールを用いて作成されてもよい。ＩａａＳにおいては、サービスプロバイダは、ネットワークリソースによって提供される処理、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースを準備するための能力をエンドユーザに提供する。オペレーティングシステムを含む如何なる任意のアプリケーションがネットワークリソース上においてデプロイされてもよい。
【０１４７】
一実施形態においては、さまざまなデプロイメントモデルが、プライベートクラウド、パブリッククラウドおよびハイブリッドクラウドを含むがこれらに限定されないコンピュータネットワークによって実現されてもよい。プライベートクラウドにおいては、ネットワークリソースは、１つ以上のエンティティ（この明細書中において使用される「エンティティ」という語は会社、団体、人または他のエンティティを指している）の特定グループ専用に準備されている。ネットワークリソースは、エンティティからなる特定グループのプレミスに対してローカルであってもよく、および／または、リモートであってもよい。パブリッククラウドにおいては、クラウドリソースは、互いから独立した複数のエンティティ（「テナント」または「顧客」とも称される）のために準備される。コンピュータネットワークおよびそのネットワークリソースは異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは「マルチテナント・コンピュータネットワーク」と称されてもよい。いくつかのテナントは、別々の時間および／または同じ時間に、同じ特定のネットワークリソースを用いてもよい。ネットワークリソースは、テナントのプレミスに対してローカルであってもよく、および／または、リモートであってもよい。ハイブリッドクラウドにおいては、コンピュータネットワーはプライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェイスはデータおよびアプリケーションの可搬性を可能にする。プライベートクラウドに格納されたデータ、およびパブリッククラウドに格納されたデータは、インターフェイスを介してやり取りされてもよい。プライベートクラウドにおいて実現されるアプリケーションと、パブリッククラウドにおいて実現されるアプリケーションとは、互いに対する依存性を有する可能性がある。プライベートクラウドにおけるアプリケーションからパブリッククラウドにおけるアプリケーションへの（逆の場合も有り得る）呼出しは、インターフェイスを介して実行されてもよい。
【０１４８】
一実施形態においては、マルチテナントコンピュータネットワークのテナントは互いから独立している。たとえば、１つのテナントのビジネスまたは動作は、別のテナントのビジネスまたは動作と別個であり得る。別々のテナントは、コンピュータネットワークについての別々のネットワーク要件を要求し得る。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、性能要件、スループット要件、レイテンシ要件、レジリエンシ要件、サービス品質（Quality of Service：ＱｏＳ）要件、テナント分離、および／または一貫性を含む。同じコンピュータネットワークは、異なるテナントによって要求される異なるネットワーク要件を実現する必要があるかもしれない。
【０１４９】
１つ以上の実施形態においては、マルチテナントコンピュータネットワークにおいては、テナント分離を実現することにより、異なるテナントのアプリケーションおよび／またはデータが確実に互いに共有されないようにする。さまざまなテナント分離アプローチが用いられてもよい。
【０１５０】
一実施形態においては、各々のテナントにはテナントＩＤが関連付けられている。マルチテナントコンピュータネットワークの各ネットワークリソースにはテナントＩＤがタグ付けされている。テナントは、テナントおよび特定のネットワークリソースに同じテナントＩＤが関連付けられている場合にだけ、特定のネットワークリソースへのアクセスが許可される。
【０１５１】
一実施形態においては、各々のテナントにはテナントＩＤが関連付けられている。コンピュータネットワークによって実現される各々のアプリケーションにはテナントＩＤがタグ付けされている。付加的または代替的には、コンピュータネットワークによって格納された各々のデータ構造および／またはデータセットにはテナントＩＤがタグ付けされている。テナントは、テナントおよび特定のアプリケーション、データ構造および／またはデータセットに同じテナントＩＤが関連付けられている場合にのみ、特定のアプリケーション、データ構造および／またはデータセットにアクセスすることが許可される。
【０１５２】
一例として、マルチテナントコンピュータネットワークによって実現される各々のデータベースにはテナントＩＤがタグ付けされてもよい。対応するテナントＩＤに関連付けられたテナントだけが特定のデータベースのデータにアクセスし得る。別の例として、マルチテナントコンピュータネットワークによって実現されるデータベースにおける各々のエントリにはテナントＩＤがタグ付けされていてもよい。対応するテナントＩＤに関連付けられたテナントだけが特定のエントリのデータにアクセスし得る。しかしながら、データベースは複数のテナントによって共有されていてもよい。
【０１５３】
一実施形態においては、サブスクリプションリストは、どのテナントが、どのアプリケーションにアクセスする認可を得ているかを示している。各アプリケーションごとに、アプリケーションにアクセスすることが認可されたテナントのテナントＩＤのリストが格納されている。テナントは、テナントのテナントＩＤが特定のアプリケーションに対応するサブスクリプションリストに含まれている場合にのみ、特定のアプリケーションにアクセスすることが許可される。
【０１５４】
一実施形態においては、異なるテナントに対応するネットワークリソース（デジタルデバイス、仮想マシン、アプリケーション・インスタンスおよびスレッドなど）が、マルチテナント・コンピュータネットワークによって維持されているテナント特有のオーバーレイ・ネットワークに分離される。一例として、テナント・オーバーレイ・ネットワークにおけるいずれのソースデバイスからのパケットも、同じテナント・オーバーレイ・ネットワーク内で他のデバイスに送信されるだけであるかもしれない。カプセル化トンネルは、テナント・オーバーレイ・ネットワーク上のソースデバイスから他のテナント・オーバーレイ・ネットワークにおけるデバイスへの如何なる送信をも禁止するために用いられる。具体的には、ソースデバイスから受取られたパケットは、外部パケット内でカプセル化される。外部パケットは、（テナント・オーバーレイ・ネットワークにおけるソースデバイスと通信する）第１のカプセル化トンネル・エンドポイントから（テナント・オーバーレイ・ネットワークにおける宛先デバイスと通信する）第２のカプセル化トンネル・エンドポイントに送信される。第２のカプセル化トンネル・エンドポイントは、ソースデバイスによって送信された元のパケットを得るために外部パケットを非カプセル化する。元のパケットは、第２のカプセル化トンネル・エンドポイントから同じ特定のオーバーレイ・ネットワークにおける宛先デバイスに送信される。
【０１５５】
７．その他；付記
実施形態が対象としているシステムが備える１つ以上のデバイスは、ハードウェアプロセッサを含むとともに、この明細書中に記載される動作および／または添付の特許請求の範囲のいずれかに記載される動作のいずれかを実行するように構成されている。
【０１５６】
一実施形態においては、非一時的なコンピュータ読取り可能記憶媒体は、１つ以上のハードウェアプロセッサによって実行されると、この明細書中に記載される動作および／または添付の特許請求の範囲のいずれかに記載される動作のいずれかを実行させる命令を含む。
【０１５７】
この明細書中に記載された特徴および機能の如何なる組合せも１つ以上の実施形態に従って用いられてもよい。上述の明細書においては、実施形態は、実現例ごとに異なり得る多数の特定の詳細を参照しながら説明されてきた。このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。発明の範囲の唯一かつ排他的な指標および出願人が意図する発明の範囲は、本願に由来する一組の請求項の、このような請求項の元になる特定の形式の、後の任意の修正が含まれる、文言上のかつ均等物の範囲である。
【０１５８】
８．ハードウェア概要
一実施形態に従うと、この明細書中に記載された技術は、１つ以上の専用コンピューティングデバイスによって実現される。専用コンピューティングデバイスは、ハードウェアによって技術を実装し得るか、または、技術を実行するように永続的にプログラミングされた１つ以上の特定用途向け集積回路（application-specific integrated circuit：ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）もしくはネットワーク処理ユニット（network processing unit：ＮＰＵ）などのデジタル電子装置を含み得るか、または、ファームウェア、メモリ、他のストレージ、もしくは組合せにおけるプログラム命令に従って技術を実行するようにプログラムされた１つ以上の汎用ハードウェアプロセッサを含み得る。このような専用コンピューティングデバイスは、技術を達成するために、カスタムプログラミングにカスタムハードワイヤードロジック、ＡＳＩＣ、ＦＰＧＡ、またはＮＰＵを組合わせてもよい。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯用デバイス、ネットワーキングデバイス、または、技術を実装するためにハードワイヤードロジックおよび／もしくはプログラムロジックを組込んだ任意の他の装置であってもよい。
【０１５９】
たとえば、図４は、本発明の実施形態が実装され得るコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、バス４０２または情報を通信するための他の通信機構と、情報を処理するためにバス４０２に結合されたハードウェアプロセッサ４０４とを含む。ハードウェアプロセッサ４０４は、たとえば、汎用マイクロプロセッサであってもよい。
【０１６０】
コンピュータシステム４００は、情報およびプロセッサ４０４によって実行される命令を格納するためにバス４０２に結合された、ランダムアクセスメモリ（random access memory：ＲＡＭ）または他の動的ストレージデバイスなどのメインメモリ４０６も含む。メインメモリ４０６は、プロセッサ４０４によって実行される命令の実行中に一時変数または他の中間情報を格納するためにも使用され得る。このような命令が、プロセッサ４０４にアクセス可能な非一時的なストレージ媒体に格納されると、コンピュータシステム４００が、命令において指定された動作を行なうようにカスタマイズされた専用マシンとなる。
【０１６１】
コンピュータシステム４００は、プロセッサ４０４のための静的情報および命令を格納するためにバス４０２に結合された読出し専用メモリ（read only memory：ＲＯＭ）４０８または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどのストレージデバイス４１０が設けられ、情報および命令を格納するためにバス４０２に結合される。
【０１６２】
コンピュータシステム４００は、コンピュータのユーザに対して情報を表示するための陰極線管（cathode ray tube：ＣＲＴ）などのディスプレイ４１２にバス４０２を介して結合され得る。英数字および他のキーを含む入力装置４１４は、プロセッサ４０４に対して情報およびコマンド選択を伝えるためにバス４０２に結合される。別のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ４０４に伝えるための、およびディスプレイ４１２上でのカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御４１６である。この入力装置は、典型的には、第１の軸（たとえばｘ）および第２の軸（たとえばｙ）という２つの軸において２つの自由度を有し、これによって面における位置をこの装置が指定することを可能にする。
【０１６３】
コンピュータシステム４００は、本明細書に記載される技術を、コンピュータシステムと組合わされてコンピュータシステム４００を専用マシンとするかまたは専用マシンとなるようにプログラミングする、カスタマイズされたハードワイヤードロジック、１つ以上のＡＳＩＣもしくはＦＰＧＡ、ファームウェアおよび／またはプログラムロジックを用いて実現してもよい。ある実施形態によると、ここに記載される技術は、メインメモリ４０６に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ４０４が実行することに応答して、コンピュータシステム４００によって行なわれる。このような命令は、ストレージデバイス４１０などの別のストレージ媒体からメインメモリ４０６に読込まれ得る。メインメモリ４０６に含まれる命令のシーケンスを実行することにより、本明細書に記載の処理ステップがプロセッサ４０４によって実行される。代替的な実施形態において、ハードワイヤード回路を、ソフトウェア命令の代わりにまたはソフトウェア命令と組合わせて使用してもよい。
【０１６４】
本明細書において使用される「ストレージ媒体」という語は、特定の方法でマシンを動作させるデータおよび／または命令を格納する任意の非一時的な媒体を指している。このようなストレージ媒体は、不揮発性の媒体および／または揮発性の媒体を含み得る。不揮発性の媒体は、たとえば、ストレージデバイス４１０などの光ディスクまたは磁気ディスクを含む。揮発性の媒体は、メインメモリ４０６などの動的メモリを含む。ストレージ媒体の一般的な形態は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープもしくは任意の他の磁気データストレージ媒体、ＣＤ−ＲＯＭ、任意の他の光データストレージ媒体、穴のパターンを伴う任意の物理媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ、任意の他のメモリチップもしくはカートリッジ、連想メモリ（content-addressable memory：ＣＡＭ）、ならびに、三値連想メモリ（ternary content-addressable memory：ＴＣＡＭ）を含む。
【０１６５】
ストレージ媒体は、伝送媒体とは異なるが、伝送媒体と併せて使用され得る。伝送媒体は、ストレージ媒体間の情報の転送に関わる。たとえば、伝送媒体は、バス４０２を包含するワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、電波および赤外線データ通信時に生成されるような音波または光波の形式を取り得る。
【０１６６】
さまざまな形式の媒体は、プロセッサ４０４に１つ以上の命令の１つ以上のシーケンスを搬送して実行させることに関わり得る。たとえば、命令は、最初は、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上に担持され得る。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを用いて電話回線を介して命令を送ることができる。コンピュータシステム４００内のモデムは、電話回線上のデータを受け、赤外線送信器を使用してデータを赤外線信号に変換することができる。赤外線検知器は、赤外線信号で運ばれたデータを受けることができ、適切な回路によってこのデータをバス４０２上に置くことができる。バス４０２はデータをメインメモリ４０６に送り、このメインメモリ４０６からプロセッサ４０４は命令を取出して実行する。メインメモリ４０６が受けた命令は、任意には、プロセッサ４０４による実行の前または後にストレージデバイス４１０上に格納され得る。
【０１６７】
コンピュータシステム４００は、バス４０２に結合された通信インターフェイス４１８も含む。通信インターフェイス４１８は、ローカルネットワーク４２２に接続されたネットワークリンク４２０に結合する双方向データ通信を提供する。たとえば、通信インターフェイス４１８は、対応するタイプの電話回線へのデータ通信接続を提供するための統合サービスデジタル網（integrated services digital network：ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、またはモデムであり得る。別の例として、通信インターフェイス４１８は、対応のＬＡＮへのデータ通信接続を提供するためのローカルエリアネットワーク（local area network：ＬＡＮ）カードであり得る。無線リンクも実装され得る。このような任意の実装例において、通信インターフェイス４１８は、さまざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。
【０１６８】
ネットワークリンク４２０は、典型的には、１つ以上のネットワークを介して他のデータ装置とのデータ通信を提供する。たとえば、ネットワークリンク４２０は、ローカルネットワーク４２２を介し、ホストコンピュータ４２４へ、または、インターネットサービスプロバイダ（Internet Service Provider：ＩＳＰ）４２６によって運営されるデータ機器へ、接続を提供し得る。さらに、ＩＳＰ４２６は、現在一般的に「インターネット」４２８と呼ばれている全世界パケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク４２２およびインターネット４２８はいずれも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。コンピュータシステム４００との間でデジタルデータを搬送する、さまざまなネットワークを介する信号、および、ネットワークリンク４２０上の、通信インターフェイス４１８を介する信号は、伝送媒体の形態の例である。
【０１６９】
コンピュータシステム４００は、ネットワーク、ネットワークリンク４２０、および通信インターフェイス４１８を介して、メッセージの送信、およびプログラムコードを含むデータの受信を行ない得る。インターネットの例において、サーバ４３０は、インターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２、および通信インターフェイス４１８を介してアプリケーションプログラムのための要求されたコードを送信し得る。
【０１７０】
受信されたコードは、受信され次第プロセッサ４０４によって実行されてもよく、および／または、ストレージデバイス４１０もしくは後で実行するために他の不揮発性ストレージデバイスに格納されてもよい。
【０１７１】
上記明細書では、実装毎に異なり得る多数の具体的な詳細を参照しながら本発明の実施形態を説明している。このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。発明の範囲の唯一かつ排他的な指標および出願人が意図する発明の範囲は、本願に由来する一組の請求項の、このような請求項の元になる特定の形式の、後の任意の修正が含まれる、文言上のかつ同等の範囲である。
【図１Ａ】
2019508755.tif 000003
【図１Ｂ】
2019508755.tif 000004
【図２Ａ】
2019508755.tif 000005
【図２Ｂ】
2019508755.tif 000006
【図３Ａ】
2019508755.tif 000007
【図３Ｂ】
2019508755.tif 000008
【図３Ｃ】
2019508755.tif 000009
【図４】
2019508755.tif 000010
【国際調査報告】
2019508755.tif 000011
2019508755.tif 000012