JP7065221B2 - パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現 - Google Patents

パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現 Download PDF

Info

Publication number
JP7065221B2
JP7065221B2 JP2021028736A JP2021028736A JP7065221B2 JP 7065221 B2 JP7065221 B2 JP 7065221B2 JP 2021028736 A JP2021028736 A JP 2021028736A JP 2021028736 A JP2021028736 A JP 2021028736A JP 7065221 B2 JP7065221 B2 JP 7065221B2
Authority
JP
Japan
Prior art keywords
personal user
data distribution
user device
content item
distribution device
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
JP2021028736A
Other languages
English (en)
Other versions
JP2021093198A (ja
Inventor
スタージャ,パンタス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Latticework Inc
Original Assignee
Latticework Inc
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 Latticework Inc filed Critical Latticework Inc
Publication of JP2021093198A publication Critical patent/JP2021093198A/ja
Application granted granted Critical
Publication of JP7065221B2 publication Critical patent/JP7065221B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Description

利点の主張;引用による援用
本願は、2016年2月17日に提出された米国仮特許出願第62/296,478号と、2016年2月17日に提出された米国仮特許出願第62/296,478号の利点を主張している2017年2月14日に提出された米国非仮特許出願第15/432,785号との利点を主張するものであって、その各々が引用によりここに援用されている。
技術分野
本開示は、ストレージシステムに関する。特に、本開示は、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現することに関する。
背景
ストレージシステムは、さまざまなストレージアーキテクチャに応じた内容項目を格納する。ストレージアーキテクチャの例には、オブジェクトストレージ、ファイルシステム、ブロックストレージ、および/または、データベースが含まれる。「内容項目(content item)」という語はデータファイル自体を指すために用いられることもある。付加的または代替的には、「内容項目」という語は、データファイルの一断片または一部分を指すために用いられることもある。
ストレージシステムを実現するためにさまざまなタイプのストレージデバイスが用いられ得る。ストレージデバイスの例として、パーソナルユーザデバイスおよびデータ分配デバイスが含まれる。パーソナルユーザデバイスは、個人的なユーザのグループおよび/または私的なユーザのグループの内容項目を格納するために構成されたストレージデバイスである。1つ以上のパーソナルユーザデバイスがプライベートクラウドインフラストラクチャ内に含まれていてもよい。データ分配デバイスは、複数の独立したエンティティの内容項目を格納するために構成されたストレージデバイスである。1つ以上のデータ分配デバイスがパブリッククラウドインフラストラクチャ内に含まれていてもよい。パブリッククラウドを用いるエンティティは「テナント」と称されてもよい。
このセクションで説明される手法は、遂行可能な手法であるが、必ずしも過去に想到または遂行された手法ではない。したがって、特に明示されない限り、このセクションで説明される手法のうちのいずれも、このセクションに含まれているというだけで先行技術とみなされるべきではない。
図面の簡単な説明
実施形態は、添付の図面のそれぞれの図において例示の目的で示されるものであって、限定の目的で示されるものではない。この開示において「或る」または「1つの」実施形態と言及する場合、これは必ずしも同じ実施形態である必要はなく、少なくとも1つを意味している。
1つ以上の実施形態に従ったストレージシステムの例を示す図である。 1つ以上の実施形態に従ったストレージシステムの例を示す図である。 1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための例示的な1セットの動作を示す図である。 1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための例示的な1セットの動作を示す図である。 1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。 1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。 1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す図である。 1つ以上の実施形態に従ったコンピュータシステムを示すブロック図である。
詳細な説明
以下の記載では、説明を目的として、完全な理解をもたらすように多数の具体的な詳細が記載されている。1つ以上の実施形態はこれらの具体的な詳細なしでも実施され得る。一実施形態に記載された特徴は別の実施形態に記載された特徴と組合わされてもよい。いくつかの例においては、本発明を不必要に曖昧にするのを避けるために、周知の構造および装置がブロック図に関連付けて記載されている。
1.全体的な概要
2.ストレージシステムアーキテクチャ
3.パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
4.実施形態の例
5.コンピュータネットワークおよびクラウドネットワーク
6.その他;付記
7.ハードウェア概要
1.全体的な概要
1つ以上の実施形態は、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現することを含む。パーソナルユーザデバイスは、1セットの内容項目を格納する。パーソナルユーザデバイスは、当該1セットの内容項目のうち、格納すべき少なくとも特定の内容項目をデータ分配デバイスに送信する。クライアントデバイスは、特定の内容項目についての要求をパーソナルユーザデバイスに送信する。パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイス、要求および/または特定の内容項目に関連付けられた特性を決定する。当該特性に基づいて、パーソナルユーザデバイスは、特定の内容項目を供給するべきか、または、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかどうかを決定する。
リダイレクトを決定する際に用いられる特性の例は、パーソナルユーザデバイスおよび/またはデータ分配デバイスの帯域幅;パーソナルユーザデバイスおよび/またはデータ分配デバイスの負荷;パーソナルユーザデバイスおよび/またはデータ分配デバイスが要求を供給し得る際の速度;要求および/またはクライアントデバイスに関連付けられたプライオリティレベル;パーソナルユーザデバイス、データ分配デバイスおよび/またはクライアントデバイスの地理的位置および/またはネットワーク;ならびに、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうか;を含む。
パーソナルユーザデバイスがクライアントデバイスをデータ分配デバイスにリダイレクトすれば、クライアントデバイスは特定の内容項目についての要求をデータ分配デバイスに送信する。要求に応じて、データ分配デバイスは特定の内容項目をクライアントデバイスに送信する。
この明細書および/または添付の特許請求の範囲に記載された1つ以上の実施形態は、この全体的な概要の段落には含まれていない可能性もある。
2.ストレージシステムアーキテクチャ
図1Aおよび図1Bは、1つ以上の実施形態に従ったストレージシステムの例を示す。図1Aおよび図1Bに示されるように、システム100は、パーソナルユーザデバイス102、1つ以上のデータ分配デバイス106a~106b、およびクライアントデバイス108を含む。1つ以上の実施形態においては、システム100が含み得る構成要素は、図1Aおよび図1Bに示される構成要素よりも多くてもよく、または少なくてもよい。図1Aおよび図1Bに示される構成要素は、互いに対してローカルであってもよくまたはリモートであってもよい。図1Aおよび図1Bに示される構成要素は、ソフトウェアおよび/またはハードウェアにおいて実現され得る。各々の構成要素は複数のアプリケーションおよび/またはマシンにわたって分散されていてもよい。複数の構成要素は、1つのアプリケーションおよび/またはマシンに組合わされてもよい。1つの構成要素に関して記載される動作は、代わりに、別の構成要素によって実行されてもよい。
1つ以上の実施形態においては、パーソナルユーザデバイス102は、個人的なユーザのグループおよび/または私的なユーザのグループの内容項目110aを格納するために構成されたストレージデバイスである。1つ以上のパーソナルユーザデバイス102はプライベートクラウドインフラストラクチャ内に含まれていてもよい。一例として、パーソナルユーザデバイスは家族メンバのグループによって用いられてもよい。別の例として、パーソナルユーザデバイスは企業および/または部署の社員によって用いられてもよい。場合によっては、パーソナルユーザデバイス102は自宅またはオフィスのローカルエリアネットワークに接続されてもよい。クライアントデバイス108は、ローカルエリアネットワーク内から、またはローカルエリアネットワーク外から、パーソナルユーザデバイス102にアクセスし得る。クライアントデバイス108は、インターネットなどの別のネットワーク120を介してローカルエリアネットワークに接続することにより、ローカルエリアネットワーク外からパーソナルユーザデバイス102にアクセスする。
1つ以上の実施形態においては、(データ分配デバイス106a~106bなどの)データ分配デバイスは、会社、組織、エンタープライズおよび/または個人などの複数の独立したエンティティの(内容項目110b~110cなどの)内容項目を格納するために構成されたストレージデバイスである。1つ以上のデータ分配デバイスはパブリッククラウドインフラストラクチャ104内に含まれていてもよい。パブリッククラウドを用いるエンティティは「テナント」と称されてもよい。各々のテナントは互いから独立している。1つのテナントのビジネスまたは動作は別のテナントのビジネスまたは動作とは別個である。テナントのための共有コンピューティングリソースであるデータ分配デバイスは、各々のテナントのデータについてのプライバシーおよび/またはセキュリティを保証するためにテナントの分離を実現してもよい。クライアントデバイスは、インターネットなどのパブリックネットワーク120を介してデータ分配デバイスにアクセスする。
クラウドネットワークに関する付加的な実施形態および/または例は、「コンピュータネットワークおよびクラウドネットワーク」と題された以下のセクション5に記載されている。
一実施形態においては、パーソナルユーザデバイス102および/またはデータ分配デバイスは1つ以上のデジタルデバイス上で実現される。「デジタルデバイス」という語は、一般に、プロセッサを含むいずれのハードウェアデバイスをも指している。デジタルデバイスの例は、ハードドライブ、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、特定機能のハードウェアデバイス、メインフレーム、テレビ、コンテンツレシーバ、セットトップボックス、プリンタ、携帯用ハンドセット、スマートフォン、および/または、携帯情報端末(personal digital assistant:PDA)を含む。
1つ以上の実施形態においては、(内容項目110a~110cなどの)内容項目は規定された1セットのデータである。内容項目は、データファイルであり得るか、またはデータファイルの一断片または一部分であり得る。内容項目は、テキスト、音声、映像および/または他のフォーマットのデータを含み得る。内容項目は、オブジェクト、ファイル、データブロックまたはデータベースエントリなどのさまざまなデータ構造として格納されてもよい。内容項目は、パーソナルユーザデバイス102またはデータ分配デバイスからダウンロードおよび/または配信されてもよい。
1つ以上の実施形態においては、クライアントデバイス108は、パーソナルユーザデバイス102および/またはデータ分配デバイスに内容項目を要求するデバイスである。クライアントデバイス108は、パーソナルユーザデバイス102および/またはデータ分配デバイスから内容項目をダウンロードおよび/または配信してもよい。クライアントデバイス108はネットワーク120を介してパーソナルユーザデバイス102および/またはデータ分配デバイスに接続する。ネットワーク120はたとえばインターネットであってもよい。クライアントデバイスは1つ以上のデジタルデバイス上において実現される。
1つ以上の実施形態においては、ネットワーク120は、パーソナルユーザデバイス102、データ分配デバイスおよび/またはクライアントデバイス108の間に接続をもたらす。デバイスは、パケットの形態でネットワーク120を介して(コマンドおよび/または内容項目などの)情報を送信してもよい。各々のパケットは特定の宛先にアドレス指定されている。一例として、パーソナルユーザデバイス108は、データ分配デバイスにアドレス指定されているパケットを送信してもよい。ネットワーク120は、パケットによって示された宛先アドレスに基づいてパケットを転送してもよい。最後に、データ分配デバイスはネットワーク120からパケットを受取ってもよい。この例においては、パケットは、「直接接続」を介してパーソナルユーザデバイス102からデータ分配デバイスに送信される。
付加的または代替的には、デバイスは、セッションを確立することによってネットワーク120を介してパケットのストリームを送信してもよい。セッションは、ネットワーク120を介するデータ送信の精度を向上させるおよび/または確実にする1つ以上のプロトコルを実現し得る。1つのこのようなプロトコルは転送制御プロトコル(Transmission
Control Protocol:TCP)である。セッションは、特定の一連のハンドシェイクおよ
び/またはメッセージを介して確立される。当該セッションは、別の特定の一連のハンドシェイクおよび/またはメッセージによって終了する。代替的には、当該セッションはタイムアウトにより終了する。タイムアウトは、パケットがセッション中にしきい値期間よりも長く送信されていない場合に、発生する。付加的または代替的には、当該のセッションはセキュリティの目的で認証および/または暗号化されてもよい。認証は1つ以上のトークンを用いて実行されてもよい。
図1Aを参照すると、クライアントデバイス108は、パーソナルユーザデバイス102との直接接続122を確立し得る。付加的または代替的には、クライアントデバイス108は、パブリッククラウドインフラストラクチャ104および/またはそのデータ分配デバイスとの直接接続124を確立してもよい。直接接続122および/または直接接続124は、TCPセッションおよび/または認証されたセッションなどのセッションによって確立されてもよい。クライアントデバイス108は、直接接続122および/または直接接続124を介して内容項目についての要求を送信してもよい。クライアントデバイス108は、直接接続122および/または直接接続124を介して内容項目を受取ってもよい。
一実施形態においては、クライアントデバイス108とパーソナルユーザデバイス102との間の直接接続122が認証され得る。データ分配デバイスは、クライアントデバイス108とパーソナルユーザデバイス102との間の認証を容易にする。クライアントデバイス108は、認証済みの直接接続124をデータ分配デバイスとの間に確立するようにとの要求を最初にデータ分配デバイスに送信する。クライアントデバイス108を認証した後、データ分配デバイスは、データ分配デバイスを含まない認証済み直接接続122をクライアントデバイス108およびパーソナルユーザデバイス102に確立させるための情報をクライアントデバイス108およびパーソナルユーザデバイス102に送信する。一例として、データ分配デバイスは、クライアントデバイス108およびパーソナルユーザデバイス102に1つ以上の認証トークンを送信してもよい。パーソナルユーザデバイス102は、パーソナルユーザデバイス102がデータ分配デバイスから受取った認証トークンと一致する認証トークンをクライアントデバイス108が所有していることを確認することによって、クライアントデバイス108を認証してもよい。クライアントデバイス108およびパーソナルユーザデバイス102が認証済みの直接接続122を確立している間、クライアントデバイス108は、内容項目についての要求をデータ分配デバイスに送信してもよい。要求に応じて、データ分配デバイスは、内容項目についての要求を供給し、直接接続124を介してクライアントデバイス108に内容項目を送信してもよい。クライアントデバイス108とパーソナルユーザデバイス102との間に直接接続122が確立された後、クライアントデバイス108は、各々の内容項目を得るために、データ分配デバイスとの直接接続124またはパーソナルユーザデバイス102との直接接続122のいずれかを用いてもよい。クライアントデバイスは、パーソナルユーザデバイス102からのリダイレクト命令、ならびに/または、パーソナルユーザデバイス102、データ分配デバイス、クライアントデバイス108および/もしくは要求されている内容項目に関連付けられた特性などのさまざまな要因に基づいて、直接接続124を用いるべきかまたは直接接続122を用いるべきかを判断し得る。
図1Bを参照すると、パーソナルユーザデバイス102は、パブリッククラウドインフラストラクチャ104および/またはそのデータ分配デバイスとの直接接続を確立し得る。任意には、直接接続は永続接続126として確立されてもよい。永続接続126は、複数の要求および/または応答を送信するために用いられるシングルセッションである。永続接続126は、タイムアウトによる終了を伴わないセッションを用いて確立されてもよい。代替的には、永続接続126は、セッションがタイムアウトしないように、セッションを介してキープアライブ・メッセージを送信することによって維持されてもよい。クライアントデバイス108は、(a)クライアントデバイス108とデータ分配デバイスとの間の直接接続124および(b)データ分配デバイスとパーソナルユーザデバイス102との間の永続接続126を介して、内容項目についての要求をパーソナルユーザデバイス102に送信してもよい。データ分配デバイスを介してパーソナルユーザデバイス102にメッセージを送信するこの方法は、「トンネリング」と称され得る。パーソナルユーザデバイス102は、永続接続126を介してデータ分配デバイスに内容項目を送信してもよい。
1つ以上の実施形態においては、アップロードマネージャ112は、格納すべき内容項目を選択してデータ分配デバイスにアップロードするために、この明細書中に記載された動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指している。アップロードマネージャ112(および/またはその構成要素もしくはモジュール)は、パーソナルユーザデバイス102によって実現および/または実行される。格納すべき内容項目を選択してデータ分配デバイスにアップロードするための動作の例が、図2Aを参照しつつ以下に記載される。
1つ以上の実施形態においては、リダイレクトマネージャ114は、内容項目を得るためにクライアントデバイス108をデータ分配デバイスにリダイレクトするための、この明細書中に記載された動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指している。リダイレクトマネージャ114(および/またはその構成要素もしくはモジュール)はパーソナルユーザデバイス102によって実現および/または実行される。内容項目を得るためにクライアントデバイス108をデータ分配デバイスにリダイレクトするための動作の例が、図2Aを参照しつつ以下に記載される。
1つ以上の実施形態においては、ソースセレクタ109は、内容項目を得るために(a)パーソナルユーザデバイス102および(b)データ分配デバイスのうちの1つまたはこれら両方を選択するための、この明細書中に記載された動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指している。ソースセレクタ109(および/またはその構成要素もしくはモジュール)は、クライアントデバイス108によって実現および/または実行される。内容項目を得るためにソースを選択するための動作の例が、図2Bを参照しつつ以下に記載される。
3.パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
図2Aは、1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための1セットの動作の例を示す。図2Aに示される1つ以上の動作は変更されてもよく、再配置されてもよく、またはすべて省略されてもよい。したがって、図2Aに示される動作の特定のシーケンスは1つ以上の実施形態の範囲を限定するものとして解釈されるべきでない。
1つ以上の実施形態は1セットの1つ以上の内容項目(動作202)を格納することを含む。パーソナルユーザデバイスは、ユーザインターフェイスおよび/または別のデジタルデバイスから当該1セットの内容項目を格納するようにとの命令を受取る。命令を受取ったことに応じて、パーソナルユーザデバイスは内容項目を格納する。一実施形態においては、内容項目は、プライベートクラウドインフラストラクチャ内に含まれている1つ以上のストレージデバイスにわたって格納されていてもよい。
1つ以上の実施形態は、当該1セットの内容項目のうち少なくとも特定の内容項目をデータ分配デバイスに送信することを含む(動作204)。パーソナルユーザデバイス(および/またはそのアップロードマネージャ)は、当該1セットの内容項目のうち、データ分配デバイスに送信してそこに格納すべき1つ以上の内容項目を選択する。この選択はさまざまな基準に基づいてなされてもよい。
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目が共有されていたかどうかに基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。内容項目は、内容項目の作成者および/または発信者以外のユーザが内容項目にアクセスすることが許可されていれば、「共有される」。特定の内容項目が共有されている場合、パ
ーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
一例として、ユーザであるジョン・ドウ(John Doe:姓名不詳者)は、パーソナルユーザデバイスに、特定の映像を格納させるための要求を、ユーザインターフェイスを介して提出し得る。ユーザであるジョン・ドウは、ユーザであるメアリー・スミスと特定の映像を共有するようにとの命令を提出してもよい。共有命令に基づいて、ユーザであるメアリー・スミスは、特定の映像にアクセスすることが許可され得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき特定の映像を選択してもよい。
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目が共有されていたユーザの数に基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目が、当該1セットの内容項目内の他の内容項目と比べて、より多くのユーザと共有されていれば、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、結婚式で撮影された10枚の写真を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。新婦の写真および新郎の写真は、各々、他の10人のユーザと共有されている。結婚指輪の写真は他の5人のユーザと共有されている。結婚指輪を運んでいる人の写真は他の2人のユーザと共有されている。残りの6枚の写真は、他のどのユーザとも共有されていない。パーソナルユーザデバイスは、他の7枚の写真と比べて、新婦の写真、新郎の写真および結婚指輪の写真が大多数のユーザと共有されていると判断し得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき新婦の写真、新郎の写真および結婚指輪の写真を選択してもよい。
一実施形態においては、パーソナルユーザデバイスは、特定の内容項目へのリモートアクセスが許可されたかどうかに基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目へのリモートアクセスが許可された場合、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配に送信する。
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに特定の画像を格納させるための要求をラップトップを介して提出してもよい。ラップトップおよびパーソナルユーザデバイスは自宅のローカルエリアネットワークに接続されていてもよい。ユーザであるジョン・ドウは、ローカルエリアネットワーク外から特定の画像へのアクセスを認可するようにとの命令を提出してもよい。したがって、ユーザであるジョン・ドウは、彼のラップトップまたは別のデジタルデバイスを用いて、家屋外から特定の画像にアクセスし得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき特定の画像を選択してもよい。
一実施形態においては、パーソナルユーザデバイスは、当該1セットの内容項目間の類似性および/または当該1セットの内容項目の品質に基づいて、データ分配デバイスに送信すべき特定の内容項目を選択する。特定の内容項目が、他の同様の内容項目と比べて高品質であれば、パーソナルユーザデバイスは、格納すべき特定の内容項目をデータ分配デバイスに送信する。
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、赤ん坊についての20枚の画像を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。20枚の画像は連続して撮影されていた可能性もある。パーソナルユーザデバイスは、画像に関連付けられた類似性のレベルを判断するために画像を分析してもよい。
パーソナルユーザデバイスは、類似性のレベルが指定されたしきい値を上回っていると判断するかもしれない。類似性のレベルに基づいて、パーソナルユーザデバイスは、何枚かの画像のうち30%だけが重要であると判断するかもしれない。パーソナルユーザデバイスは、各々の画像の品質を判断するために画像を分析してもよい。品質は、画像の鮮明度、輝度、コントラスト、飽和度および/または他の属性によって定義されてもよい。パーソナルユーザデバイスは、20枚の画像のうち30%(すなわち、20枚の画像のうち6枚の画像)を最高品質を有するものと特定し得る。パーソナルユーザデバイスは、データ分配デバイスに送信すべき6枚の画像を選択してもよい。
付加的および/または代替的な基準は、当該1セットの内容項目のうち、データ分配デバイスに送信して格納すべき少なくとも特定の内容項目を選択するために用いられてもよい。
パーソナルユーザデバイスは、複数のデータ分配デバイスのうち1つ以上に特定の内容項目を送信するオプションを有する。複数のデータ分配デバイスは、パブリッククラウドインフラストラクチャ内に含まれていてもよい。パーソナルユーザデバイスは、さまざまな基準に基づいて、複数のデータ分配デバイスから、特定の内容項目を格納するためのデータ分配デバイスを選択する。
一実施形態においては、パーソナルユーザデバイスは、データ分配デバイスと特定の内容項目にアクセスするユーザとの間の地理的な近接性に基づいて、特定の内容項目を格納するためのデータ分配デバイスを選択する。パーソナルユーザデバイスは、各々のデータ分配デバイスの位置を決定する。パーソナルユーザデバイスは、特定の内容項目にアクセスする各々のユーザの位置を決定する。パーソナルユーザデバイスは、特定の内容項目にアクセスするユーザに最も近接しているデータ分配デバイスを選択する。
一例として、ユーザであるジョン・ドウは、パーソナルユーザデバイスに、特定の映像を格納させるための要求を、ユーザインターフェイスを介して提出してもよい。ユーザであるジョン・ドウは、ユーザであるメアリー・スミスと特定の映像を共有するようにとの命令を提出してもよい。パーソナルユーザデバイスは、ユーザであるメアリー・スミスがニューヨークに居住していると判断するかもしれない。パーソナルユーザデバイスは、パブリッククラウドインフラストラクチャがカリフォルニアにあるサーバとニューヨークにあるサーバとを含むと判断するかもしれない。パーソナルユーザデバイスは、ニューヨークのサーバがユーザであるメアリー・スミスに最も近接していると判断するかもしれない。パーソナルユーザデバイスは、格納すべき特定の映像をニューヨークのサーバに送信してもよい。
一実施形態においては、パーソナルユーザデバイスは、データ分配デバイスの残存容量に基づいて特定の内容項目を格納するためのデータ分配デバイスを選択する。パーソナルユーザデバイスは、特定の内容項目を格納するための、最大の残存容量を有するデータ分配デバイスを選択する。
特定の内容項目を格納するためのデータ分配デバイスを複数のデータ分配デバイスから選択するために、付加的および/または代替的な基準が用いられてもよい。
パーソナルユーザデバイスは、データ分配デバイスの内容および/または容量を監視する。データ分配デバイスが最大容量に到達しているのに新しい内容項目を格納する必要がある場合、パーソナルユーザデバイスは、データ分配デバイスから削除されるべき1つ以上の内容項目を選択する。パーソナルユーザデバイスは、特定の内容項目がデータ分配デバイス上に格納された状態で、削除されるべく選択された内容項目を上書きするようにと
の命令をデータ分配デバイスに送信する。データ分配デバイス上に格納されており削除および/または上書されるべき内容項目を選択するために、さまざまな基準が用いられてもよい。
一実施形態においては、パーソナルユーザデバイスは、内容項目についての共有履歴に基づいて、データ分配デバイスから削除されるべき内容項目を選択する。パーソナルユーザデバイスは、データ分配デバイスに送信された各々の内容項目の共有履歴の記録を維持する。パーソナルユーザデバイスは、或る内容項目を、削除するべき最も古い「最後に共有された日付」で特定する。パーソナルユーザデバイスは、最も古い「最後に共有された日付」の付いた内容項目をデータ分配デバイスから削除するようにとの命令をデータ分配デバイスに送信する。
付加的および/または代替的な基準は、データ分配デバイスから削除されるべき内容項目を選択するために用いられてもよい。
パーソナルユーザデバイスは、特定の内容項目に関連付けられたメタデータを削除してから、格納すべき特定の内容項目をデータ分配デバイスに送信する。パーソナルユーザデバイスは、特定の内容項目の作成者、作成日、内容項目タイプおよび/または内容項目名などの情報を削除する。パーソナルユーザデバイスは、データ分配デバイスによって用いられるべき特定の内容項目についての新しい識別子を生成する。パーソナルユーザデバイスは、新しい識別子と共に特定の内容項目をデータ分配デバイスに送信する。メタデータを削除することによって、データ分配デバイスは、特定の内容項目の属性に関する情報を持たない特定の内容項目を格納する。パーソナルユーザデバイスだけが特定の内容項目の属性に関する情報を有しているので、特定の内容項目のプライバシーが維持される。
1つ以上の実施形態は、特定の内容項目についての要求をクライアントデバイスから受取ることを含む(動作206)。クライアントデバイスは、パーソナルユーザデバイスに特定の内容項目についての要求を送信する。一実施形態においては、特定の内容項目がクライアントデバイスのユーザと共有されていた。ユーザは、特定の内容項目が共有されていたという通知を受取る。ユーザは、特定の内容項目を要求するようにとの命令を、クライアントデバイスを介して提出する。パーソナルユーザデバイスは、特定の内容項目についての要求を受取る。
クライアントデバイスは、パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して特定の内容項目についての要求を送信してもよい。クライアントデバイスは、当該要求を含む1つ以上のパケットをパーソナルユーザデバイスにアドレス指定することによって、直接接続を介して当該要求を送信する。インターネットなどのネットワークは、宛先アドレスに基づいてパケットをパーソナルユーザデバイスに転送する。パーソナルユーザデバイスは、要求を含むパケットを受取る。
代替的には、クライアントデバイスは、(a)クライアントデバイスとデータ分配デバイスとの間の直接接続、および(b)パーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して、特定の内容項目についての要求を送信してもよい。データ分配デバイスを介してパーソナルユーザデバイスにメッセージを送信するこの方法は、「トンネリング」と称され得る。永続接続は、図1Bの永続接続126を参照して上述されたように、パーソナルユーザデバイスとデータ分配デバイスとの間に確立される。クライアントデバイスは、直接接続を介して要求を送信する試みに失敗した後、トンネルを介して要求を送信してもよい。クライアントデバイスは、要求を含む1つ以上のパケットをデータ分配デバイスにアドレス指定する。インターネットなどのネットワークは、宛先アドレスに基づいてパーソナルユーザデバイスにパケットを転送する。データ分配デバイスは、パ
ケットを受取り、これらパケットを永続接続を介してパーソナルユーザデバイスに転送する。パーソナルユーザデバイスは、要求を含むパケットを受取る。
1つ以上の実施形態は、要求の伝達が、(a)パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して行なわれたか、または(b)パーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して行なわれたかを判断することを含む(動作208)。パーソナルユーザデバイスは、特定の内容項目についての要求を含むパケットを受取る。パーソナルユーザデバイスは、これらパケットがクライアントデバイスによって直接送信されたか、またはデータ分配デバイスによって転送されたかどうかを判断するために、これらパケットを分析する。一例として、パーソナルユーザデバイスは、パケットに関連付けられたソースアドレスを決定してもよい。ソースアドレスがクライアントデバイスのアドレスであれば、要求は、クライアントデバイスとパーソナルユーザデバイスとの間の直接接続を介して受取られていた。ソースアドレスがデータ分配デバイスのアドレスであれば、要求は、データ分配デバイスとパーソナルユーザデバイスとの間の永続接続によって確立されたトンネルを介して受取られていた。別の例として、パーソナルユーザデバイスは、パケットを受取るために用いられるセッションを識別してもよい。パケットを受取るために用いられるセッションがパーソナルユーザデバイスとデータ分配デバイスとの間の永続接続である場合、要求は永続接続を介して受取られていた。他の場合、当該要求は、パーソナルユーザデバイスとクライアントデバイスとの間の直接接続を介して受取られていた。
1つ以上の実施形態は、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイス要求および/または特定の内容項目に関連付けられた1つ以上の特性を決定することを含む(動作210)。リダイレクトの決定に用いられる特性の例は、パーソナルユーザデバイスおよび/またはデータ分配デバイスの帯域幅;パーソナルユーザデバイスおよび/またはデータ分配デバイスの負荷;パーソナルユーザデバイスおよび/またはデータ分配デバイスが要求を供給し得る際の速度;要求および/またはクライアントデバイスに関連付けられたプライオリティレベル;パーソナルユーザデバイス、データ分配デバイスおよび/またはクライアントデバイスの地理的位置および/またはネットワーク;ならびに、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうか;を含む。付加的および/または代替的な特性が用いられてもよい。
一例として、パーソナルユーザデバイスは、特定の内容項目についての要求を供給するためにパーソナルユーザデバイスの帯域幅を決定してもよい。パーソナルユーザデバイスは、45Mbpsのダウンロード速度および6Mbpsのアップロード速度を有する家庭用ネットワークに接続されてもよい。パーソナルユーザデバイスは2つの他の要求を同時に供給してもよい。パーソナルユーザデバイスは、付加的な要求を供給するには帯域幅が不十分であると判断するかもしれない。この例に示されるように、パーソナルユーザデバイスは、パーソナルユーザデバイスに関連付けられた特性を決定する。
別の例として、パーソナルユーザデバイスは、データ分配デバイスの負荷を決定してもよい。パーソナルユーザデバイスは、データ分配デバイスの負荷についての要求をデータ分配デバイスに送信してもよい。データ分配デバイスは、供給されている要求の数、供給されている内容項目のサイズ、供給されているクライアントデバイスの数、および/または、他の情報に基づいて負荷を決定してもよい。データ分配デバイスはパーソナルユーザデバイスに負荷情報を送信してもよい。パーソナルユーザデバイスは、別の要求を供給するのに十分なリソースをデータ分配デバイスが有していると判断するかもしれない。この例に示されるように、パーソナルユーザデバイスは、データ分配デバイスに関連付けられた特性を決定する。
別の例として、パーソナルユーザデバイスは、特定の内容項目についての要求に関連付けられたプライオリティレベルを判断してもよい。パーソナルユーザデバイスは、要求がいずれかの高プライオリティフラグに関連付けられているかどうかを判断してもよい。この例に示されるように、パーソナルユーザデバイスは、要求に関連付けられた特性を決定する。
別の例として、パーソナルユーザデバイスは、特定の内容項目についての要求を送信したクライアントデバイスの地理的位置を判断してもよい。パーソナルユーザデバイスは、クライアントデバイスの地理的位置を判断するようにとの要求に関連付けられたインターネットプロトコル(Internet Protocol:IP)アドレスを分析してもよい。この例に示
されるように、パーソナルユーザデバイスは、クライアントデバイスに関連付けられた特性を決定する。
別の例として、パーソナルユーザデバイスは、特定の内容項目に関連付けられた機密性レベルを決定してもよい。パーソナルユーザデバイスは、特定の内容項目が、高い機密性レベルに関連付けられているかまたは低い機密性レベルに関連付けられているかを判断し得る。高い機密性レベルは、特定の内容項目の機密性を維持することが非常に重要であることを示している。低い機密性レベルは、特定の内容項目の機密性を維持することがそれほど重要ではないことを示している。この例に示されるように、パーソナルユーザデバイスは、特定の内容項目に関連付けられた特性を決定する。
別の例として、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納しているかどうかを判断してもよい。パーソナルユーザデバイスは、パーソナルユーザデバイス上に格納されている特定の内容項目のコピーの「最終修正日」を判断し得る。付加的には、パーソナルユーザデバイスは、パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目のコピーを最後に送信した日付を判断してもよい。パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目のコピーを最後に送信した後に特定の内容項目が変更された場合、データ分配デバイスは最新バージョンの特定の内容項目を格納しない。
1つ以上の実施形態は、特性に基づいて、(a)特定の内容項目を供給するべきか、または、(b)特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかを判断することを含む(動作212)。パーソナルユーザデバイス(および/または、そのリダイレクトマネージャ)は、動作210において決定された特性に基づいて、特定の内容項目自体を供給するべきか、またはクライアントデバイスをリダイレクトするべきかを判断する。いくつかの実施形態においては、パーソナルユーザデバイスは、データファイル全体を供給してもよく、または、データファイル全体を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。他の実施形態においては、パーソナルユーザデバイスは、データファイルの一部を供給し得るが、その間、データファイルの別の部分を得るためにデータ分配デバイスにクライアントデバイスをリダイレクトし得る。
一例として、パーソナルユーザデバイスは、特定の内容項目についての要求を供給するのに十分な帯域幅をパーソナルユーザデバイスが有していると判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
逆に、パーソナルユーザデバイスは、パーソナルユーザデバイスが有する帯域幅が特定の内容項目についての要求を供給するのに不十分であると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、データ分配デバイスの負荷が最大容量に到達したと判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
逆に、パーソナルユーザデバイスは、データ分配デバイスが要求を供給するのに十分な容量を有していると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイスが要求を供給し得る速度が指定されたしきい値を上回っていると判断するかもしれない。パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。
逆に、パーソナルユーザデバイスは、パーソナルユーザデバイスが要求を供給し得る速度が指定されたしきい値未満であると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、クライアントデバイスは、しきい値期間内で特定の内容項目を受取る必要があると判断するかもしれない。クライアントデバイスは、データ分配デバイスが、時間要件内で特定の内容項目を供給するための帯域幅を有していないと判断するかもしれない。クライアントデバイスは、データ分配デバイスおよびパーソナルユーザデバイスがともに、時間要件を満たすために、特定の内容項目のうち異なる部分を同時に供給する必要があると判断するかもしれない。クライアントデバイスは、特定の内容項目についての要求を高プライオリティフラグと共に、パーソナルユーザデバイスに送信してもよい。パーソナルユーザデバイスは、要求が高プライオリティフラグに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、高プライオリティフラグに基づいて、特定の内容項目の一部分を供給してもよく、特定の内容項目の別の部分を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。高プライオリティフラグに加えて、または高プライオリティフラグの代わりに、クライアントデバイスは、クライアントデバイスが特定の内容項目を1つ以上の特有のソースに要求していることを示すために他のインジケータを用いてもよい。(データ分配デバイスなどの)特有のソースに対する特定の内容項目についてのクライアントデバイスからの要求は、パーソナルユーザデバイスによってなされていたであろう如何なるリダイレクトの決定をも無効にする。
別の例として、パーソナルユーザデバイスは、要求、クライアントデバイスおよび/またはクライアントデバイスのユーザが高プライオリティに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、パーソナルユーザデバイスの帯域幅とデータ分配デバイスの帯域幅とを比較してもよい。パーソナルユーザデバイスの帯域幅がより高い場合、パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を供給してもよい。逆に、データ分配デバイスの帯域幅がより高い場合、パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスの地理的位置を判断し得る。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスよりもパーソナルユーザデバイスにより近接していると判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。逆に、パーソナルユーザデバイスは、クライアントデバイスがパーソナルユーザデバイスよりもデータ分配デバイスにより近接して
いると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスに関連付けられたネットワークを判断してもよい。パーソナルユーザデバイスは、クライアントデバイスがパーソナルユーザデバイスのネットワークからデータを受取ることは許可されているが、データ分配デバイスのネットワークからデータを受取ることは許可されていないと判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。逆に、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスのネットワークからデータを受取ることは許可されているが、パーソナルユーザデバイスのネットワークからデータを受取ることは許可されていないと判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、特定の内容項目が高い機密性レベルに関連付けられていると判断するかもしれない。高い機密性レベルに基づけば、特定の内容項目は、データ分配デバイスに関連付けられたネットワークを介して送信されるべきではない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。
逆に、パーソナルユーザデバイスは、特定の内容項目が低い機密性レベルに関連付けられていると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納していないと判断するかもしれない。パーソナルユーザデバイスは、クライアントデバイスに特定の内容項目を供給してもよい。
逆に、パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の内容項目を格納していると判断するかもしれない。パーソナルユーザデバイスは、特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
別の例として、特定のデータファイルは複数の断片を含んでもよい。パーソナルユーザデバイスは、格納すべき特定のデータファイルをデータ分配デバイスに送信してもよい。その後、特定のデータファイルの特定の断片がパーソナルユーザデバイス上で更新されてもよい。パーソナルユーザデバイスは、特定のデータファイルについての要求を受取るかもしれない。パーソナルユーザデバイスは、データ分配デバイスが最新バージョンの特定の断片を格納していないが、特定のデータファイルのうち最新バージョンの他の断片を格納していると判断するかもしれない。パーソナルユーザデバイスは、特定のデータファイルの特定の断片をクライアントデバイスに供給してもよい。付加的には、パーソナルユーザデバイスは、特定のデータファイルの他の断片を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトしてもよい。
パーソナルユーザデバイスは、付加的および/または代替的な方法で動作210において判断された特性を用いて、特定の内容項目を供給するべきか、または特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするべきかどうかを判断し得る。
パーソナルユーザデバイスが特定の内容項目を供給すると判断した場合、パーソナルユーザデバイスはクライアントデバイスに特定の内容項目を送信する(動作214)。パーソナルユーザデバイスは、クライアントデバイスが特定の内容項目をダウンロードするかまたは配信することを可能にし得る。
パーソナルユーザデバイスが特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトすると判断した場合、パーソナルユーザデバイスは、データ分配デバイスから特定の内容項目を得るようにとの命令をクライアントデバイスに送信する(動作216)。パーソナルユーザデバイスは、パーソナルユーザデバイスによって格納されている特定の内容項目をクライアントデバイスに供給することはない。
パーソナルユーザデバイスは、データ分配デバイスの識別子またはアドレスをクライアントデバイスに送信する。クライアントデバイスは、特定の内容項目についての要求をデータ分配デバイスに送信する。データ分配デバイスは、クライアントデバイスに特定の内容項目を送信する。データ分配デバイスは、クライアントデバイスが特定の内容項目をダウンロードするかまたは配信することを可能にし得る。
付加的または代替的には、パーソナルユーザデバイスは、データ分配デバイス上の第1の内容項目の識別子またはアドレスをクライアントデバイスに送信する。クライアントデバイスは、識別子またはアドレスを用いて、データ分配デバイスから特定の内容項目を検索する。クライアントデバイスは、データ分配デバイスから特定の内容項目を得る。クライアントデバイスは特定の内容項目をダウンロードまたは配信してもよい。
いくつかの実施形態においては、上述のとおり、パーソナルユーザデバイスは、データファイルの一部分を供給し得るが、その間、データファイルの別の部分を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトし得る。クライアントデバイスは、パーソナルユーザデバイスから一部分をダウンロードし、データ分配デバイスから別の部分をダウンロードする。クライアントデバイスは、データファイルを得るために異なる部分同士を組合わせる。付加的または代替的には、クライアントデバイスは、一部分をパーソナルユーザデバイスから配信し、別の部分をデータ分配デバイスから配信する。クライアントデバイスは、データファイルからなる単一の連続ストリームを得るために異なる部分同士を組合わせる。
こうして、クライアントデバイスは、上述の動作に基づいて、少なくとも2つの目的のために或る要求をデータ分配デバイスに送信し得る。まず、動作206を参照して上述したとおり、クライアントデバイスは、データ分配デバイスとパーソナルユーザデバイスとの間の永続接続によってパーソナルユーザデバイスに要求に送り込むために、データ分配デバイスに要求を送信し得る。第二に、動作216を参照して上述したとおり、クライアントデバイスは、データ分配デバイス自体から特定の内容項目を得るために、データ分配デバイスに要求を送信し得る。これらの2つのタイプの要求の内容、フォーマット、構造および/または他の特性は異なっていてもよい。データ分配デバイスが要求を受取ると、データ分配デバイスは、内容、フォーマット、構造および/または他の特性に基づいて要求のタイプを決定してもよい。次いで、要求のタイプに応じて、データ分配デバイスは、永続接続によってパーソナルユーザデバイスに要求を転送してもよく、または要求自体を供給してもよい。
動作208に戻り、要求がパーソナルユーザデバイスとデータ分配デバイスとの間の永続接続を介して伝達された場合、パーソナルユーザデバイスは、特定の内容項目をクライアントデバイスに提供するようにとの命令をデータ分配デバイスに送信する(動作218)。パーソナルユーザデバイスは、永続して一貫的にデータ分配デバイスに要求を送信し
得る。データ分配デバイスは、命令に応答して、クライアントデバイスに特定の内容項目を送信する。
図2Bは、1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現するための1セットの動作の別の例を示す。図2Bに例示される1つ以上の動作は、変更されてもよいし、再配置されてもよいし、すべて省略されてもよい。したがって、図2Bに例示される動作の特定のシーケンスは、1つ以上の実施形態の範囲を限定するものとして解釈されるべきでない。
1つ以上の実施形態は、特定の内容項目を得るようにとの要求をパーソナルユーザデバイスに送信することを含む(動作222)。クライアントデバイスはパーソナルユーザデバイスに要求を送信する。パーソナルユーザデバイスは、特定の内容項目のコピーを格納する。内容項目についての要求をパーソナルユーザデバイスに送信することに関するさらなる説明は、動作202に関する上述の記載に含まれている。
1つ以上の実施形態は、特定の内容項目のうちどの部分がデータ分配デバイスから得られ得るかを示すメッセージをパーソナルユーザデバイスから受取ることを含む(動作224)。特定の内容項目についての要求を受取った後、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを可能にするべきかどうかを判断する。パーソナルユーザデバイスは、さまざまな要因に基づいてこの判断を行ない得る。
一例として、パーソナルユーザデバイスは、データ分配が最新バージョンの特定の内容項目を格納しているかどうかを判断し得る。パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目を送信しなかった場合、データ分配デバイスは、最新バージョンの特定の内容項目を格納していない。他の場合には、パーソナルユーザデバイスがデータ分配デバイスに特定の内容項目を送信したが、パーソナルユーザデバイス上の特定の内容項目のコピーが送信後に更新されていた場合、データ分配デバイスは最新バージョンの特定の内容項目をしない。データ分配が最新バージョンの特定の内容項目を格納していない場合、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを許可しない。
別の例として、パーソナルユーザデバイスは、データ分配デバイスが特定の内容項目のうち最新バージョンの各部分を格納しているかどうかを判断してもよい。パーソナルユーザデバイスは、クライアントデバイスが、特定の内容項目のうちデータ分配デバイス上で最新である部分だけをデータ分配デバイスから得ることを許可にする。
別の例として、パーソナルユーザデバイスは、クライアントデバイスのセキュリティクレデンシャルを決定してもよい。クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを認可されていない場合、パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから特定の内容項目を得ることを許可しない。
パーソナルユーザデバイスは、特定の内容項目のうちどの部分がデータ分配デバイスから得られ得るかを示すメッセージを特定の内容項目に送信する。メッセージは、(a)クライアントデバイスがデータ分配デバイスから特定の内容項目全体を取得し得ること、(b)クライアントデバイスが、データ分配デバイスから特定の内容項目のうち1つ以上の部分だけを取得し得ること、または、(c)クライアントデバイスがデータ分配デバイスから特定の内容項目を全く取得し得ないことを、を示し得る。クライアントデバイスはパーソナルユーザデバイスからメッセージを受取る。
一実施形態においては、パーソナルユーザデバイスからクライアントデバイスによって受取られたメッセージは、データ分配デバイスの識別子またはアドレスを含む。クライアントデバイスは、データ分配デバイスに特定の内容項目を要求するための識別子を用いてもよい。
一例として、クライアントデバイスは、赤ん坊の写真についての第1の要求をパーソナルユーザデバイスに送信してもよい。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから赤ん坊の写真を取得し得ることを示す第1のメッセージをクライアントデバイスに送信してもよい。第1のメッセージは、データ分配デバイスの識別子を含み得る。クライアントデバイスは、データ分配デバイスに赤ん坊の写真を要求するための識別子を用いてもよい。続いて、クライアントデバイスは、赤ん坊の写真についての第2の要求を送信してもよい。クライアントデバイスがデータ分配デバイスの識別子を既に有しているので、クライアントデバイスは、識別子が既知であることを第2の要求において示してもよい。パーソナルユーザデバイスは、クライアントデバイスがデータ分配デバイスから赤ん坊の写真を取得し得ることを示している第2のメッセージをクライアントデバイスに送信してもよい。しかしながら、クライアントデバイスが既に識別子を有していることをクライアントデバイスが示していたので、第2のメッセージはデータ分配デバイスの識別子を含んでいない。
1つ以上の実施形態は、パーソナルユーザデバイス、データ分配デバイス、クライアントデバイスおよび/または特定の内容項目に関連付けられた1つ以上の特性を決定することを含む(動作226)。特定の内容項目についてのソースを選択するために用いられる特性の例は、パーソナルユーザデバイスおよび/またはデータ分配デバイスの帯域幅;パーソナルユーザデバイスおよび/またはデータ分配デバイスの負荷;パーソナルユーザデバイスおよび/またはデータ分配デバイスが要求を供給し得る際の速度;クライアントデバイスに関連付けられたプライオリティレベル;ならびに、パーソナルユーザデバイス、データ分配デバイスおよび/またはクライアントデバイスの地理的位置および/またはネットワーク;を含む。付加的および/または代替的な特性が用いられてもよい。
一例として、クライアントデバイスは、パーソナルユーザデバイスから特定の内容項目を配信してもよい。クライアントデバイスは、パーソナルユーザデバイスがサービス品質基準を満たす態様で特定の内容項目を供給し損じていると判断するかもしれない。サービス品質基準は、たとえば、特定の内容項目がジッタリングなしでクライアントデバイスにおいて表示されることを必要とするかもしれない。別のサービス品質基準は、たとえば、特定の内容項目が、標準モードではなく、高解像度(high-definition:HD)モードで
クライアントデバイスにおいて表示されることを必要とするかもしれない。別のサービス品質基準は、たとえば、クライアントデバイスのストリーミングバッファの排出レートが指定されたしきい値未満であることを必要とするかもしれない。別のサービス品質基準は、たとえば、クライアントデバイスのストリーミングバッファによって格納されたデータ量が指定されたしきい値を上回っていることを必要とするかもしれない。サービス品質基準が満たされていなければ、クライアントデバイスは、特定の内容項目を供給するための帯域幅がパーソナルユーザデバイス上で不十分であると判断するかもしれない。この例に示されるように、クライアントデバイスは、パーソナルユーザデバイスに関連付けられた特性を決定する。
1セットの特性の決定に関するさらなる説明は、動作210に関する上述の記載に含まれている。動作210に関連付けられたいくつかの例において、当該1セットの特性を決定するパーソナルユーザデバイスを説明しているが、如何なる構成要素および/またはモジュール(クライアントデバイスなど)が当該1セットの特性を決定してもよい。
1つ以上の実施形態は、特性に基づいて、特定の内容項目の各部分を得るためのソースとしてパーソナルユーザデバイスまたはデータ分配デバイスを選択することを含む(動作228)。クライアントデバイスは、動作226において決定された特性に基づいて、パーソナルユーザデバイスまたはデータ分配デバイスをソースとして選択する。いくつかの実施形態においては、クライアントデバイスは、全データファイルを得るためにパーソナルユーザデバイスを選択してもよく、または全データファイルを得るためにデータ分配デバイスを選択してもよい。他の実施形態においては、クライアントデバイスは、データファイルの一部を得るためにパーソナルユーザデバイスを選択し得る一方で、データファイルの別の部分を得るためにデータ分配デバイスを選択し得る。
一例として、クライアントデバイスは、特定の内容項目についての要求を供給するための十分な帯域幅をパーソナルユーザデバイスが有していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてパーソナルユーザデバイスを選択してもよい。
逆に、クライアントデバイスは、パーソナルユーザデバイスが有する帯域幅が特定の内容項目についての要求を供給するには不十分であると判断するかもしれない。上述のとおり、クライアントデバイスは、パーソナルユーザデバイスが有する帯域幅が不十分であると判断するかもしれない。なぜなら、クライアントデバイスが、サービス品質基準を満たす態様でパーソナルユーザデバイスから特定の内容項目の部分を受取り損なっているからである。クライアントデバイスは、特定の内容項目のうち残余部分を受取るためにデータ分配デバイスに切換えてもよい。代替的には、クライアントデバイスは、特定の内容項目の別々の部分をパーソナルユーザデバイスおよびデータ分配デバイスの両方から同時に得るかもしれない。クライアントデバイスの目的は、最大スループットを得ることであり、最小限の時間量で特定の内容項目を得ることであり得る。
別の例として、クライアントデバイスは、パーソナルユーザデバイス、データ分配デバイスおよびクライアントデバイスの地理的位置を判断し得る。クライアントデバイスは、クライアントデバイスがデータ分配デバイスよりもパーソナルユーザデバイスにより近接していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてパーソナルユーザデバイスを選択してもよい。逆に、クライアントデバイスは、クライアントデバイスがパーソナルユーザデバイスよりもデータ分配デバイスにより近接していると判断するかもしれない。クライアントデバイスは、特定の内容項目を得るためのソースとしてデータ分配デバイスを選択してもよい。
当該1セットの特性に基づいて内容項目を得るためのソースを選択することに関するさらなる説明は、動作212に関する上述の記載に含まれている。動作212において、パーソナルユーザデバイスは、(a)特定の内容項目を供給するか、または、(b)特定の内容項目を得るためにクライアントデバイスをデータ分配デバイスにリダイレクトするかどうかを判断する。特定の内容項目を供給すると判断することは、特定の内容項目についてのソースとしてパーソナルユーザデバイスを選択することと同等であり得る。クライアントデバイスをデータ分配デバイスにリダイレクトするとの判断は、特定の内容項目についてのソースとしてデータ分配デバイスを選択することと同等であり得る。動作212に関連付けられたいくつかの例において、パーソナルユーザデバイスが内容項目を得るためのソースを選択することが記載されているが、如何なる構成要素および/またはモジュール(クライアントデバイスなど)が内容項目を得るためのソースを選択してもよい。
1つ以上の実施形態は、パーソナルユーザデバイスおよび/またはデータ分配デバイスが選択されたかどうかを判断することを含む(動作230)。上述のとおり、いくつかの実施形態においては、クライアントデバイスは、全データファイルを得るためにパーソナ
ルユーザデバイスを選択してもよく、または全データファイルを得るためにデータ分配デバイスを選択してもよい。他の実施形態においては、クライアントデバイスは、データファイルの一部を得るためにパーソナルユーザデバイスを選択し得る一方で、データファイルの別の部分を得るためにデータ分配デバイスを選択し得る。
パーソナルユーザデバイスが選択されていた場合、クライアントデバイスは、パーソナルユーザデバイスから特定の内容項目のうち少なくとも一部についての要求を送信する(動作232)。クライアントデバイスは、特定の内容項目のうち要求された部分をパーソナルユーザデバイスから受取る(動作234)。
データ分配デバイスが選択されていた場合、クライアントデバイスは、特定の内容項目のうち少なくとも一部についての要求をデータ分配デバイスから送信する(動作236)。クライアントデバイスは、特定の内容項目のうち要求された部分をデータ分配デバイスから受取る(動作238)。
一実施形態においては、クライアントデバイスは、動作236および動作238を実行せずに動作232および動作234を実行する。代替的には、クライアントデバイスは、動作232および動作234を実行せずに動作236および動作238を実行する。代替的には、クライアントデバイスは、特定の内容項目の一部に対して動作232および動作234を実行し、特定の内容項目のうち別の部分に対して動作236および動作238を実行する。
4.実施形態の例
明瞭にする目的で詳細な例を以下に説明する。以下に記載される構成要素および/または動作は、いくつかの実施形態に適用可能となり得ない1つの特定の例として理解されるべきである。したがって、以下に記載される構成要素および/または動作は添付の特許請求の範囲を限定するものとして解釈されるべきでない。
図3A~図3Cは、1つ以上の実施形態に従った、パーソナルユーザデバイスおよびデータ分配デバイスを用いてストレージシステムを実現する例を示す。図3A~図3Cの各々は、パーソナルユーザデバイス302、データ分配デバイス306およびクライアントデバイス308を含む。
図3Aは、クライアントデバイス308に内容項目を供給することをパーソナルユーザデバイス302が決定する例を示す。
ユーザであるジョン・ドウは、ユーザインターフェイスを介して、赤ん坊の写真を格納するようにとの命令をパーソナルユーザデバイス302に提出する。パーソナルユーザデバイスは赤ん坊の写真を格納する。
ユーザであるジョン・ドウはユーザであるメアリー・スミスと赤ん坊の写真を共有する。パーソナルユーザデバイス302は共有決定312を実行する。パーソナルユーザデバイス302は、赤ん坊の写真が別のユーザと共有されたと判断する。
赤ん坊の写真を共有したことに基づいて、パーソナルユーザデバイス302は、アップロード要求314をデータ分配デバイス306に送信する。パーソナルユーザデバイス302は、データ分配デバイス306に格納すべき赤ん坊の写真をデータ分配デバイス306に送信する。データ分配デバイス306は赤ん坊の写真を格納する。
ユーザであるメアリー・スミスは、赤ん坊の写真がユーザであるメアリー・スミスと共
有されたという通知を受取る。ユーザであるメアリー・スミスは、赤ん坊の写真を得るようにとの命令をクライアントデバイス308を介して提出する。クライアントデバイス308は、検索要求316をパーソナルユーザデバイス302に送信する。検索要求316は赤ん坊の写真についての要求である。
パーソナルユーザデバイス302はリダイレクト決定318を実行する。パーソナルユーザデバイス302は、パーソナルユーザデバイス302に関連付けられた特性を決定する。パーソナルユーザデバイス302は、赤ん坊の写真を供給するために十分な帯域幅をパーソナルユーザデバイス302が有していると判断する。パーソナルユーザデバイス302は、クライアントデバイス308に赤ん坊の写真を供給することを決定する。
赤ん坊の写真を供給するとの決定に基づいて、パーソナルユーザデバイス302は、クライアントデバイス308に赤ん坊の写真を送信する(図3Aにおける「内容項目送信320」と称される)。クライアントデバイス308はパーソナルユーザデバイス302から赤ん坊の写真を受取る。
図3Bは、内容項目を得るためにクライアントデバイス308をデータ分配デバイス306にリダイレクトすることをパーソナルユーザデバイス302が決定する例を示す。
図3Aに示される例と同様に、パーソナルユーザデバイス302は、共有決定312を実行し、アップロード要求314を送信し、検索要求316を受取る。
パーソナルユーザデバイス302はリダイレクト決定318を実行する。パーソナルユーザデバイス302は、パーソナルユーザデバイス302に関連付けられた特性を決定する。パーソナルユーザデバイス302は、パーソナルユーザデバイス302が有する帯域幅が赤ん坊の写真を供給するには不十分であると判断する。パーソナルユーザデバイス302は、赤ん坊の写真を得るためにクライアントデバイス308をデータ分配デバイス306にリダイレクトすることを決定する。
パーソナルユーザデバイス302はクライアントデバイス308にリダイレクト命令322を送信する。リダイレクト命令322は、赤ん坊の写真を格納するデータ分配デバイス306のアドレスを含む。
リダイレクト命令322に応答して、クライアントデバイス308は検索要求324をデータ分配デバイス306に送信する。検索要求324は赤ん坊の写真についての要求である。
検索要求324に応答して、データ分配デバイス306は、クライアントデバイス308に赤ん坊の写真を送信する(図3Bにおいて「内容項目送信326」と称される)。クライアントデバイス308はデータ分配デバイス306から赤ん坊の写真を受取る。
別の例(図示されない)においては、図3Aおよび図3Bに示される動作の組合せが実行される。
ユーザであるジョン・ドウは、結婚式の映像を格納するようにとの命令を、ユーザインターフェイスを介してパーソナルユーザデバイス302に提出する。パーソナルユーザデバイスは結婚式の映像を格納する。
ユーザであるジョン・ドウはユーザであるメアリー・スミスと結婚式の映像を共有する。パーソナルユーザデバイス302は共有決定312を実行する。パーソナルユーザデバ
イス302は、結婚式の映像が別のユーザと共有されたと判断する。
結婚式の映像が共有されていることに基づいて、パーソナルユーザデバイス302は、データ分配デバイス306にアップロード要求314を送信する。パーソナルユーザデバイス302は、データ分配デバイス306に格納すべき結婚式の映像をデータ分配デバイス306に送信する。データ分配デバイス306は結婚式の映像を格納する。
ユーザであるジョン・ドウは、結婚式の映像を更新する。特に、ユーザであるジョン・ドウは、「クリスティーナ&ジェーソン(2016年2月1日)」とのタイトルキャプションを結婚式の映像の冒頭セグメントに追加する。
ユーザであるメアリー・スミスは、結婚式の映像がユーザであるメアリー・スミスと共有されたという通知を受取る。ユーザであるメアリー・スミスは、結婚式の映像を得るようにとの命令をクライアントデバイス308を介して提出する。クライアントデバイス308はパーソナルユーザデバイス302に検索要求316を送信する。検索要求316は結婚式の映像についての要求である。
パーソナルユーザデバイス302はリダイレクト決定318を実行する。パーソナルユーザデバイス302は、パーソナルユーザデバイス302が有する帯域幅が結婚式の映像を供給するには不十分であると判断する。パーソナルユーザデバイス302は、データ分配デバイス306が最新バージョンの結婚式の映像の冒頭セグメントを格納していないと判断する。しかしながら、データ分配デバイス306が格納している結婚式の映像のうち残り部分は最新バージョンである。パーソナルユーザデバイス302は、結婚式の映像の冒頭セグメントをクライアントデバイス308に供給する一方で、結婚式の映像の残りの部分のためにクライアントデバイス308をデータ分配デバイス306にリダイレクトすることを決定する。
パーソナルユーザデバイス302は、結婚式の映像の冒頭セグメントをクライアントデバイス308に送信する(図3Aにおける「内容項目送信320」と同様である)。
クライアントデバイス308は、パーソナルユーザデバイス302から結婚式の映像の冒頭セグメントを得る。クライアントデバイス308は、パーソナルユーザデバイス302から結婚式の映像の冒頭セグメントを配信してもよい。
付加的には、パーソナルユーザデバイス302は、クライアントデバイス308にリダイレクト命令を送信する(図3Bにおける「リダイレクト命令322」と同様である)。リダイレクト命令は、データ分配デバイスのアドレスを含む。リダイレクト命令は、データ分配デバイス306から結婚式の映像の残りを得るようにクライアントデバイス308に命令する。
リダイレクト命令に応答して、クライアントデバイス308は、結婚式の映像の残りについての検索要求をデータ分配デバイス306に送信する(図3Bにおける「検索要求324」と同様である)。
検索要求に応答して、データ分配デバイス306は、結婚式の映像の残りをクライアントデバイスに送信する(図3Bにおける「内容項目送信326」と同様である)。
クライアントデバイス308は、結婚式の映像の残りをデータ分配デバイス306から得る。クライアントデバイス308は、データ分配デバイス306から結婚式の映像の残りを配信してもよい。
図3Cは、パーソナルユーザデバイス302が、パーソナルユーザデバイス302とデータ分配デバイス306との間の永続接続によって確立されたトンネルを介して、クライアントデバイス308から、内容項目についての要求を受取る例を示す。
図3Aに示される例と同様に、パーソナルユーザデバイス302は共有決定312を実行し、アップロード要求314を送信する。
ユーザであるメアリー・スミスは、赤ん坊の写真がユーザであるメアリー・スミスと共有されたという通知を受取る。ユーザであるメアリー・スミスは、赤ん坊の写真を得るようにとの命令をクライアントデバイス308を介して提出する。クライアントデバイス308は、パーソナルユーザデバイス302に検索要求316を送信するよう試みる。しかしながら、クライアントデバイス308は、パーソナルユーザデバイス302との直接接続を確立することができない。パーソナルユーザデバイス302は、クライアントデバイス308との直接接続を妨げるファイアウォールによって保護されているかもしれない。
クライアントデバイス308は、次いで、パーソナルユーザデバイス302とデータ分配デバイス306との間の永続接続によって確立されたトンネルを介して、赤ん坊の写真についての検索要求328を送信するよう試みる。クライアントデバイス308は、データ分配デバイス306との直接接続を確立する。クライアントデバイス308は検索要求328をデータ分配デバイス306にアドレス指定する。
データ分配デバイス306は、検索要求328を受取り、永続接続を介して検索要求330をパーソナルユーザデバイス302に転送する。
パーソナルユーザデバイス302は検索要求330を受取る。パーソナルユーザデバイス302は、検索要求330が、クライアントデバイス308から直接にではなく、データ分配デバイス306との永続接続を介して伝達されたと判断する。パーソナルユーザデバイス302はデータ分配デバイス306に送信要求332を送信する。送信要求332は、クライアントデバイス308に赤ん坊の写真を提供するようにとのデータ分配デバイス306に対する要求である。
送信要求332に応答して、データ分配デバイス306は、クライアントデバイス308に赤ん坊の写真を送信する(図3Cにおける「内容項目送信334」と称される)。クライアントデバイス308はデータ分配デバイス306から赤ん坊の写真を受取る。
5.コンピュータネットワークおよびクラウドネットワーク
1つ以上の実施形態においては、コンピュータネットワークは1セットのノード間に接続性を提供する。ノードは互いに対してローカルであってもよく、および/またはリモートであってもよい。ノードは1セットのリンクによって接続されている。リンクの例として、同軸ケーブル、非シールドより対ケーブル、銅ケーブル、光ファイバおよび仮想リンクが含まれる。
ノードのサブセットはコンピュータネットワークを実現する。このようなノードの例は、スイッチ、ルータ、ファイアウォールおよびネットワーク・アドレス・トランスレータ(network address translator:NAT)を含む。ノードの別のサブセットはコンピュータネットワークを用いる。このようなノード(「ホスト」とも称される)は、クライアントプロセスおよび/またはサーバプロセスを実行し得る。クライアントプロセスは、(特定のアプリケーションの実行および/または特定のデータ量の格納などの)コンピューティングサービスについての要求を行なう。サーバプロセスは、要求されたサービスを実行
することおよび/または対応するデータを戻すことによって応答する。
コンピュータネットワークは、物理リンクによって接続された物理ノードを含む物理ネットワークであってもよい。物理ノードは如何なるデジタルデバイスであってもよい。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォールおよびハードウェアNATなどの特定機能のハードウェアデバイスであってもよい。付加的または代替的には、物理ノードは、それぞれの機能を実行するさまざまな仮想マシンおよび/またはアプリケーションを実行するように構成された一般的なマシンであってもよい。物理リンクは2つ以上の物理ノードを接続する物理的媒体である。リンクの例として、同軸ケーブル、非シールドより対ケーブル、銅ケーブルおよび光ファイバが含まれる。
コンピュータネットワークはオーバーレイ・ネットワークであってもよい。オーバーレイ・ネットワークは、(物理ネットワークなどの)別のネットワーク上において実現される論理的ネットワークである。オーバーレイ・ネットワークにおける各ノードは、下層にあるネットワークにおけるそれぞれのノードに対応する。したがって、オーバーレイ・ネットワークにおける各ノードは、(オーバーレイ・ノードにアドレス指定するための)オーバーレイ・アドレス、および(オーバーレイ・ノードを実現するアンダーレイ・ノードをアドレス指定するための)アンダーレイ・アドレスの両方に関連付けられている。オーバーレイ・ノードは、デジタルデバイスおよび/またはソフトウェアプロセス(仮想マシン、アプリケーション・インスタンスまたはスレッドなど)であってもよい。オーバーレイ・ノードを接続するリンクは、下層にあるネットワークを介するトンネルとして実現される。トンネルのどちらの端部にもあるこれらオーバーレイ・ノードは、それらの間の下層にあるマルチホップ経路を単一の論理リンクとして処理する。トンネリングはカプセル化および非カプセル化によって実行される。
一実施形態においては、クライアントはコンピュータネットワークに対してローカルであってもよく、および/またはリモートであってもよい。クライアントは、プライベートネットワークまたはインターネットなどの他のコンピュータネットワークを介してコンピュータネットワークにアクセスしてもよい。クライアントは、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)などの通信プロトコルを用いて、コ
ンピュータネットワークに要求を伝達してもよい。これらの要求は、クライアント・インターフェイス(ウェブ・ブラウザなど)、プログラムインターフェイスまたはアプリケーションプログラムインターフェイス(application programming interface:API)な
どのインターフェイスを介して伝達される。
一実施形態においては、コンピュータネットワークは、クライアントとネットワークリソースとの間に接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナおよび/またはソフトウェアアプリケーションを含む。ネットワークリソースは複数のクライアント間で共有される。クライアントは、互いからは独立してコンピュータネットワークにコンピューティングサービスを要求する。ネットワークリソースは、オン・デマンドで要求および/またはクライアントに動的に割当てられている。各々の要求および/またはクライアントに割当てられたネットワークリソースは、たとえば、(a)特定のクライアントによって要求されたコンピューティングサービス;(b)特定のテナントによって要求された集約型コンピューティングサービス;および/または(c)コンピュータネットワークによって要求された集約型コンピューティングサービス;に基づいて、スケールアップまたはスケールダウンされ得る。このようなコンピュータネットワークは「クラウドネットワーク」と称されてもよい。
一実施形態においては、サービスプロバイダは1つ以上のエンドユーザにクラウドネットワークを提供する。さまざまなサービスモデルは、ソフトウェア・アズ・ア・サービス(Software-as-a-Service:SaaS)、プラットフォーム・アズ・ア・サービス(Platform-as-a-Service:PaaS)およびインフラストラクチャ・アズ・ア・サービス(Infrastructure-as-a-Service:IaaS)を含むがこれらに限定されないクラウドネットワ
ークによって実現され得る。SaaSにおいては、サービスプロバイダは、ネットワークリソース上で実行されているサービスプロバイダのアプリケーションを用いるための能力をエンドユーザに提供する。PaaSにおいては、サービスプロバイダは、ネットワークリソース上にカスタムアプリケーションをデプロイするための能力をエンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダによってサポートされるプログラミング言語、ライブラリ、サービスおよびツールを用いて作成されてもよい。IaaSにおいては、サービスプロバイダは、ネットワークリソースによって提供される処理、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースを準備するための能力をエンドユーザに提供する。オペレーティングシステムを含む如何なる任意のアプリケーションがネットワークリソース上においてデプロイされてもよい。
一実施形態においては、さまざまなデプロイメントモデルが、プライベートクラウド、パブリッククラウドおよびハイブリッドクラウドを含むがこれらに限定されないコンピュータネットワークによって実現されてもよい。プライベートクラウドにおいては、ネットワークリソースは、1つ以上のエンティティ(この明細書中において使用される「エンティティ」という語は会社、団体、人または他のエンティティを指している)の特定グループ専用に準備されている。ネットワークリソースは、エンティティからなる特定グループのプレミスに対してローカルであってもよく、および/または、リモートであってもよい。パブリッククラウドにおいては、クラウドリソースは、互いから独立した複数のエンティティ(「テナント」または「顧客」とも称される)のために準備される。コンピュータネットワークおよびそのネットワークリソースは異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは「マルチテナント・コンピュータネットワーク」と称されてもよい。いくつかのテナントは、別々の時間および/または同じ時間に、同じ特定のネットワークリソースを用いてもよい。ネットワークリソースは、テナントのプレミスに対してローカルであってもよく、および/または、リモートであってもよい。ハイブリッドクラウドにおいては、コンピュータネットワーはプライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェイスはデータおよびアプリケーションの可搬性を可能にする。プライベートクラウドに格納されたデータ、およびパブリッククラウドに格納されたデータは、インターフェイスを介してやり取りされてもよい。プライベートクラウドにおいて実現されるアプリケーションと、パブリッククラウドにおいて実現されるアプリケーションとは、互いに対する依存性を有する可能性がある。プライベートクラウドにおけるアプリケーションからパブリッククラウドにおけるアプリケーションへの(逆の場合も有り得る)呼出しは、インターフェイスを介して実行されてもよい。
一実施形態においては、マルチテナントコンピュータネットワークのテナントは互いから独立している。たとえば、1つのテナントのビジネスまたは動作は、別のテナントのビジネスまたは動作と別個であり得る。別々のテナントは、コンピュータネットワークについての別々のネットワーク要件を要求し得る。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、性能要件、スループット要件、レイテンシ要件、レジリエンシ要件、サービス品質(Quality of Service:QoS)要件、テナント分離、および/または一貫性を含む。同じコンピュータネットワークは、異なるテナントによって要求される異なるネットワーク要件を実現する必要があるかもしれない。
1つ以上の実施形態においては、マルチテナントコンピュータネットワークにおいては、テナント分離を実現することにより、異なるテナントのアプリケーションおよび/またはデータが確実に互いに共有されないようにする。さまざまなテナント分離アプローチが用いられてもよい。
一実施形態においては、各々のテナントにはテナントIDが関連付けられている。マルチテナントコンピュータネットワークの各ネットワークリソースにはテナントIDがタグ付けされている。テナントは、テナントおよび特定のネットワークリソースに同じテナントIDが関連付けられている場合にだけ、特定のネットワークリソースへのアクセスが許可される。
一実施形態においては、各々のテナントにはテナントIDが関連付けられている。コンピュータネットワークによって実現される各々のアプリケーションにはテナントIDがタグ付けされている。付加的または代替的には、コンピュータネットワークによって格納された各々のデータ構造および/またはデータセットにはテナントIDがタグ付けされている。テナントは、テナントおよび特定のアプリケーション、データ構造および/またはデータセットに同じテナントIDが関連付けられている場合にのみ、特定のアプリケーション、データ構造および/またはデータセットにアクセスすることが許可される。
一例として、マルチテナントコンピュータネットワークによって実現される各々のデータベースにはテナントIDがタグ付けされてもよい。対応するテナントIDに関連付けられたテナントだけが特定のデータベースのデータにアクセスし得る。別の例として、マルチテナントコンピュータネットワークによって実現されるデータベースにおける各々のエントリにはテナントIDがタグ付けされていてもよい。対応するテナントIDに関連付けられたテナントだけが特定のエントリのデータにアクセスし得る。しかしながら、データベースは複数のテナントによって共有されていてもよい。
一実施形態においては、サブスクリプションリストは、どのテナントが、どのアプリケーションにアクセスする認可を得ているかを示している。各アプリケーションごとに、アプリケーションにアクセスすることが認可されたテナントのテナントIDのリストが格納されている。テナントは、テナントのテナントIDが特定のアプリケーションに対応するサブスクリプションリストに含まれている場合にのみ、特定のアプリケーションにアクセスすることが許可される。
一実施形態においては、異なるテナントに対応するネットワークリソース(デジタルデバイス、仮想マシン、アプリケーション・インスタンスおよびスレッドなど)が、マルチテナント・コンピュータネットワークによって維持されているテナント特有のオーバーレイ・ネットワークに分離される。一例として、テナント・オーバーレイ・ネットワークにおけるいずれのソースデバイスからのパケットも、同じテナント・オーバーレイ・ネットワーク内で他のデバイスに送信されるだけであるかもしれない。カプセル化トンネルは、テナント・オーバーレイ・ネットワーク上のソースデバイスから他のテナント・オーバーレイ・ネットワークにおけるデバイスへの如何なる送信をも禁止するために用いられる。具体的には、ソースデバイスから受取られたパケットは、外部パケット内でカプセル化される。外部パケットは、(テナント・オーバーレイ・ネットワークにおけるソースデバイスと通信する)第1のカプセル化トンネル・エンドポイントから(テナント・オーバーレイ・ネットワークにおける宛先デバイスと通信する)第2のカプセル化トンネル・エンドポイントに送信される。第2のカプセル化トンネル・エンドポイントは、ソースデバイスによって送信された元のパケットを得るために外部パケットを非カプセル化する。元のパケットは、第2のカプセル化トンネル・エンドポイントから同じ特定のオーバーレイ・ネットワークにおける宛先デバイスに送信される。
7.その他;付記
実施形態が対象としているシステムが備える1つ以上のデバイスは、ハードウェアプロセッサを含むとともに、この明細書中に記載される動作および/または添付の特許請求の範囲のいずれかに記載される動作のいずれかを実行するように構成されている。
一実施形態においては、非一時的なコンピュータ読取り可能記憶媒体は、1つ以上のハードウェアプロセッサによって実行されると、この明細書中に記載される動作および/または添付の特許請求の範囲のいずれかに記載される動作のいずれかを実行させる命令を含む。
この明細書中に記載された特徴および機能の如何なる組合せも1つ以上の実施形態に従って用いられてもよい。上述の明細書においては、実施形態は、実現例ごとに異なり得る多数の特定の詳細を参照しながら説明されてきた。このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。発明の範囲の唯一かつ排他的な指標および出願人が意図する発明の範囲は、本願に由来する一組の請求項の、このような請求項の元になる特定の形式の、後の任意の修正が含まれる、文言上のかつ均等物の範囲である。
8.ハードウェア概要
一実施形態に従うと、この明細書中に記載された技術は、1つ以上の専用コンピューティングデバイスによって実現される。専用コンピューティングデバイスは、ハードウェアによって技術を実装し得るか、または、技術を実行するように永続的にプログラミングされた1つ以上の特定用途向け集積回路(application-specific integrated circuit:A
SIC)、フィールドプログラマブルゲートアレイ(field programmable gate array:
FPGA)もしくはネットワーク処理ユニット(network processing unit:NPU)な
どのデジタル電子装置を含み得るか、または、ファームウェア、メモリ、他のストレージ、もしくは組合せにおけるプログラム命令に従って技術を実行するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含み得る。このような専用コンピューティングデバイスは、技術を達成するために、カスタムプログラミングにカスタムハードワイヤードロジック、ASIC、FPGA、またはNPUを組合わせてもよい。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯用デバイス、ネットワーキングデバイス、または、技術を実装するためにハードワイヤードロジックおよび/もしくはプログラムロジックを組込んだ任意の他の装置であってもよい。
たとえば、図4は、本発明の実施形態が実装され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、バス402または情報を通信するための他の通信機構と、情報を処理するためにバス402に結合されたハードウェアプロセッサ404とを含む。ハードウェアプロセッサ404は、たとえば、汎用マイクロプロセッサであってもよい。
コンピュータシステム400は、情報およびプロセッサ404によって実行される命令を格納するためにバス402に結合された、ランダムアクセスメモリ(random access memory:RAM)または他の動的ストレージデバイスなどのメインメモリ406も含む。メインメモリ406は、プロセッサ404によって実行される命令の実行中に一時変数または他の中間情報を格納するためにも使用され得る。このような命令が、プロセッサ404にアクセス可能な非一時的なストレージ媒体に格納されると、コンピュータシステム400が、命令において指定された動作を行なうようにカスタマイズされた専用マシンとなる。
コンピュータシステム400は、プロセッサ404のための静的情報および命令を格納するためにバス402に結合された読出し専用メモリ(read only memory:ROM)408または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどのストレージデバイス410が設けられ、情報および命令を格納するためにバス402に結合される。
コンピュータシステム400は、コンピュータのユーザに対して情報を表示するための陰極線管(cathode ray tube:CRT)などのディスプレイ412にバス402を介して結合され得る。英数字および他のキーを含む入力装置414は、プロセッサ404に対して情報およびコマンド選択を伝えるためにバス402に結合される。別のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ404に伝えるための、およびディスプレイ412上でのカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御416である。この入力装置は、典型的には、第1の軸(たとえばx)および第2の軸(たとえばy)という2つの軸において2つの自由度を有し、これによって面における位置をこの装置が指定することを可能にする。
コンピュータシステム400は、本明細書に記載される技術を、コンピュータシステムと組合わされてコンピュータシステム400を専用マシンとするかまたは専用マシンとなるようにプログラミングする、カスタマイズされたハードワイヤードロジック、1つ以上のASICもしくはFPGA、ファームウェアおよび/またはプログラムロジックを用いて実現してもよい。ある実施形態によると、ここに記載される技術は、メインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスをプロセッサ404が実行することに応答して、コンピュータシステム400によって行なわれる。このような命令は、ストレージデバイス410などの別のストレージ媒体からメインメモリ406に読込まれ得る。メインメモリ406に含まれる命令のシーケンスを実行することにより、本明細書に記載の処理ステップがプロセッサ404によって実行される。代替的な実施形態において、ハードワイヤード回路を、ソフトウェア命令の代わりにまたはソフトウェア命令と組合わせて使用してもよい。
本明細書において使用される「ストレージ媒体」という語は、特定の方法でマシンを動作させるデータおよび/または命令を格納する任意の非一時的な媒体を指している。このようなストレージ媒体は、不揮発性の媒体および/または揮発性の媒体を含み得る。不揮発性の媒体は、たとえば、ストレージデバイス410などの光ディスクまたは磁気ディスクを含む。揮発性の媒体は、メインメモリ406などの動的メモリを含む。ストレージ媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープもしくは任意の他の磁気データストレージ媒体、CD-ROM、任意の他の光データストレージ媒体、穴のパターンを伴う任意の物理媒体、RAM、PROM、およびEPROM、FLASH-EPROM、NVRAM、任意の他のメモリチップもしくはカートリッジ、連想メモリ(content-addressable memory:CAM)、ならびに、三値連想メモリ(ternary content-addressable memory:TCAM)を含む。
ストレージ媒体は、伝送媒体とは異なるが、伝送媒体と併せて使用され得る。伝送媒体は、ストレージ媒体間の情報の転送に関わる。たとえば、伝送媒体は、バス402を包含するワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、電波および赤外線データ通信時に生成されるような音波または光波の形式を取り得る。
さまざまな形式の媒体は、プロセッサ404に1つ以上の命令の1つ以上のシーケンスを搬送して実行させることに関わり得る。たとえば、命令は、最初は、リモートコンピュ
ータの磁気ディスクまたはソリッドステートドライブ上に担持され得る。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを用いて電話回線を介して命令を送ることができる。コンピュータシステム400内のモデムは、電話回線上のデータを受け、赤外線送信器を使用してデータを赤外線信号に変換することができる。赤外線検知器は、赤外線信号で運ばれたデータを受けることができ、適切な回路によってこのデータをバス402上に置くことができる。バス402はデータをメインメモリ406に送り、このメインメモリ406からプロセッサ404は命令を取出して実行する。メインメモリ406が受けた命令は、任意には、プロセッサ404による実行の前または後にストレージデバイス410上に格納され得る。
コンピュータシステム400は、バス402に結合された通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420に結合する双方向データ通信を提供する。たとえば、通信インターフェイス418は、対応するタイプの電話回線へのデータ通信接続を提供するための統合サービスデジタル網(integrated services digital network:ISDN)カード、ケー
ブルモデム、衛星モデム、またはモデムであり得る。別の例として、通信インターフェイス418は、対応のLANへのデータ通信接続を提供するためのローカルエリアネットワーク(local area network:LAN)カードであり得る。無線リンクも実装され得る。このような任意の実装例において、通信インターフェイス418は、さまざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。
ネットワークリンク420は、典型的には、1つ以上のネットワークを介して他のデータ装置とのデータ通信を提供する。たとえば、ネットワークリンク420は、ローカルネットワーク422を介し、ホストコンピュータ424へ、または、インターネットサービスプロバイダ(Internet Service Provider:ISP)426によって運営されるデータ
機器へ、接続を提供し得る。さらに、ISP426は、現在一般的に「インターネット」428と呼ばれている全世界パケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク422およびインターネット428はいずれも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。コンピュータシステム400との間でデジタルデータを搬送する、さまざまなネットワークを介する信号、および、ネットワークリンク420上の、通信インターフェイス418を介する信号は、伝送媒体の形態の例である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420、および通信インターフェイス418を介して、メッセージの送信、およびプログラムコードを含むデータの受信を行ない得る。インターネットの例において、サーバ430は、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェイス418を介してアプリケーションプログラムのための要求されたコードを送信し得る。
受信されたコードは、受信され次第プロセッサ404によって実行されてもよく、および/または、ストレージデバイス410もしくは後で実行するために他の不揮発性ストレージデバイスに格納されてもよい。
上記明細書では、実装毎に異なり得る多数の具体的な詳細を参照しながら本発明の実施形態を説明している。このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。発明の範囲の唯一かつ排他的な指標および出願人が意図する発明の範囲は、本願に由来する一組の請求項の、このような請求項の元になる特定の形式の、後の任意の修正が含まれる、文言上のかつ同等の範囲である。

Claims (15)

  1. 方法であって、
    パーソナルユーザデバイスによって、1セットの1つ以上の内容項目を格納することと、
    前記1セットの1つ以上の内容項目のうち少なくとも第1の内容項目をデータ分配デバイスに格納させるために、前記パーソナルユーザデバイスによって前記データ分配デバイスに送信することと、
    前記パーソナルユーザデバイスによって、前記第1の内容項目についての第1の要求をクライアントデバイスから受取ることと、
    前記パーソナルユーザデバイスと前記クライアントデバイスとの間で、(a)前記パーソナルユーザデバイスと前記クライアントデバイスとの間の直接接続を介して、または、(b)前記データ分配デバイスによって容易にされるトンネル接続を介して、前記第1の要求が受取られるかどうかを判断することと、
    少なくとも前記第1の要求が前記トンネル接続を介して受取られると判断することに応じて、
    前記パーソナルユーザデバイスによって、前記データ分配デバイスについての第2の要求を前記データ分配デバイスに送信して、前記第1の内容項目を前記データ分配デバイスに格納されるものとして前記クライアントデバイスに送信することと、
    前記パーソナルユーザデバイスによって、前記1セットの1つ以上の内容項目のうち第2の内容項目についての第3の要求を前記クライアントデバイスから受取ることと、
    前記パーソナルユーザデバイスと前記クライアントデバイスとの間で、(a)前記パーソナルユーザデバイスと前記クライアントデバイスとの間の前記直接接続を介して、または、(b)前記データ分配デバイスによって容易にされる前記トンネル接続を介して、前記第3の要求が受取られるかどうかを判断することと、
    少なくとも前記第3の要求が前記直接接続を介して受取られると判断することに応じて、
    前記パーソナルユーザデバイスによって前記第2の内容項目を前記クライアントデバイスに送信することとを含む、方法。
  2. 前記第1の内容項目を前記パーソナルユーザデバイスから前記データ分配デバイスに送信することは、前記第1の要求が前記トンネル接続を介して受取られると判断することに応じて実行されない、請求項1に記載の方法。
  3. 前記第1の内容項目を前記パーソナルユーザデバイスから前記データ分配デバイスに送信することは、前記第1の要求を受取ることに応じて実行されない、請求項1に記載の方法。
  4. 前記トンネル接続は、(a)前記クライアントデバイスと前記データ分配デバイスとの間の直接接続と、(b)前記データ分配デバイスと前記パーソナルユーザデバイスとの間の永続接続とを含む、請求項1~3のいずれかに記載の方法。
  5. 前記パーソナルユーザデバイスと前記クライアントデバイスとの間の前記直接接続は、前記データ分配デバイスを介する送信を含まない、請求項1~4のいずれかに記載の方法。
  6. 前記パーソナルユーザデバイスと前記クライアントデバイスとの間の前記直接接続は、前記データ分配デバイスによって実行される少なくとも1つの動作に基づいて確立されていた、請求項1~4のいずれかに記載の方法。
  7. 前記パーソナルユーザデバイスと前記クライアントデバイスとの間で、(a)前記パーソナルユーザデバイスと前記クライアントデバイスとの間の前記直接接続を介して、または、(b)前記データ分配デバイスによって容易にされる前記トンネル接続を介して、前記第1の要求が受取られるかどうかを判断する動作は、少なくとも前記第1の要求に関連付けられたソースアドレスに基づいている、請求項1~6のいずれかに記載の方法。
  8. 前記第1の要求は、前記データ分配デバイスと前記パーソナルユーザデバイスとの間で永続接続を介して送信される、請求項1~7のいずれかに記載の方法。
  9. 前記1セットの1つ以上の内容項目のうち前記第1の内容項目を前記データ分配デバイスに格納させるために、前記パーソナルユーザデバイスによって前記データ分配デバイスに送信することは、前記第1の内容項目が第1のユーザによって第2のユーザと共有されていたと判断することに応じて行われる、請求項1~8のいずれかに記載の方法。
  10. 前記第1の要求は前記クライアントデバイスの第1のユーザから送信され、前記第1の内容項目は前記パーソナルユーザデバイスの第2のユーザに属している、請求項1~のいずれかに記載の方法。
  11. 前記パーソナルユーザデバイス、前記データ分配デバイス、前記クライアントデバイス、前記第3の要求、および前記第2の内容項目のうち1つ以上に関連付けられた1セットの1つ以上の特性を識別することと、
    前記1セットの1つ以上の特性に基づいて、前記第3の要求が前記パーソナルユーザデバイスまたは前記データ分配デバイスによって供給されるべきかどうかを判断することとさらに含み、
    前記パーソナルユーザデバイスによって前記第2の内容項目を前記クライアントデバイスに送信することは、前記第3の要求が前記パーソナルユーザデバイスによって供給されるべきであると判断することに応じて行われる、請求項1~10のいずれかに記載の方法。
  12. 前記パーソナルユーザデバイスによって、前記1セットの1つ以上の内容項目のうち第3の内容項目についての第4の要求を前記クライアントデバイスから受取ることと、
    前記パーソナルユーザデバイスと前記クライアントデバイスとの間で、(a)前記パーソナルユーザデバイスと前記クライアントデバイスとの間の前記直接接続を介して、または、(b)前記データ分配デバイスによって容易にされる前記トンネル接続を介して、前記第4の要求が受取られるかどうかを判断することと、
    少なくとも前記第4の要求が前記直接接続を介して受取られると判断することに応じて、
    前記パーソナルユーザデバイス、前記データ分配デバイス、前記クライアントデバイス、前記第4の要求、および前記第3の内容項目のうち1つ以上に関連付けられた1セットの1つ以上の特性に基づいて、前記第4の要求が前記パーソナルユーザデバイスまたは前記データ分配デバイスによって供給されるべきかどうかを判断することと、
    前記第4の要求が前記データ分配デバイスによって供給されるべきと判断することに応じて、
    前記パーソナルユーザデバイスによって、前記第3の内容項目を得るために前記クライアントデバイスを前記データ分配デバイスにリダイレクトすることとをさらに含む、請求項1~11のいずれかに記載の方法。
  13. 前記1セットの1つ以上の特性は、
    前記パーソナルユーザデバイスまたは前記データ分配デバイスの帯域幅、
    前記パーソナルユーザデバイスまたは前記データ分配デバイスの負荷、
    前記パーソナルユーザデバイスまたは前記データ分配デバイスが前記第4の要求を供給し得る速度、
    前記第4の要求または前記クライアントデバイスに関連付けられたプライオリティレベル、
    前記パーソナルユーザデバイス、前記データ分配デバイスまたは前記クライアントデバイスの地理的位置またはネットワーク、ならびに、
    前記データ分配デバイスが最新バージョンの前記第3の内容項目を格納しているかどうか、
    のうち少なくとも1つを含む、請求項12に記載の方法。
  14. 請求項1から13のいずれか1項に記載の方法をコンピュータに実行させる、プログラム。
  15. 請求項14に記載のプログラムを格納したメモリと、
    前記プログラムを実行するための1または複数のプロセッサとを備える、システム。
JP2021028736A 2016-02-17 2021-02-25 パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現 Active JP7065221B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662296478P 2016-02-17 2016-02-17
US62/296,478 2016-02-17
US15/432,785 2017-02-14
US15/432,785 US10412168B2 (en) 2016-02-17 2017-02-14 Implementing a storage system using a personal user device and a data distribution device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017560605A Division JP6858328B2 (ja) 2016-02-17 2017-02-16 パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現

Publications (2)

Publication Number Publication Date
JP2021093198A JP2021093198A (ja) 2021-06-17
JP7065221B2 true JP7065221B2 (ja) 2022-05-11

Family

ID=59562317

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017560605A Active JP6858328B2 (ja) 2016-02-17 2017-02-16 パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
JP2021028736A Active JP7065221B2 (ja) 2016-02-17 2021-02-25 パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017560605A Active JP6858328B2 (ja) 2016-02-17 2017-02-16 パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現

Country Status (4)

Country Link
US (2) US10412168B2 (ja)
EP (1) EP3417367B1 (ja)
JP (2) JP6858328B2 (ja)
WO (1) WO2017143002A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412168B2 (en) * 2016-02-17 2019-09-10 Latticework, Inc. Implementing a storage system using a personal user device and a data distribution device
US10289310B2 (en) * 2017-06-27 2019-05-14 Western Digital Technologies, Inc. Hybrid data storage system with private storage cloud and public storage cloud
US11146657B2 (en) * 2018-08-31 2021-10-12 Latticework, Inc. Binding a public cloud user account and a personal cloud user account for a hybrid cloud environment
WO2020190021A1 (en) * 2019-03-18 2020-09-24 Samsung Electronics Co., Ltd. Method and device for storing a data file in a cloud-based storage
CN114944952B (zh) * 2022-05-20 2023-11-07 深信服科技股份有限公司 一种数据处理方法、装置、系统、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018712A1 (en) 2001-07-06 2003-01-23 Intel Corporation Method and apparatus for peer-to-peer services
JP2006229747A (ja) 2005-02-18 2006-08-31 Fuji Xerox Co Ltd データ提供サーバ、データ提供プログラム、データ提供方法
JP2013503390A (ja) 2009-08-28 2013-01-31 アップル インコーポレイテッド コンテンツ配信ネットワーク上のチャンク形式ダウンロード
JP2014112911A (ja) 2014-01-28 2014-06-19 Mixi Inc 動画配信システム及び動画配信方法

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161767A1 (en) * 2001-04-30 2002-10-31 Shapiro Aaron M. System and method for updating content on a plurality of content server computers over a network
DE10250201B4 (de) * 2002-10-28 2005-05-25 Siemens Ag Verfahren und Vorrichtung zum Austausch von Daten mittels einer Tunnelverbindung
EP1723763A1 (en) * 2004-03-12 2006-11-22 THOMSON Licensing Cache server network and method of scheduling the distribution of content files
US10200504B2 (en) * 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US9015324B2 (en) * 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US8041824B1 (en) * 2005-04-14 2011-10-18 Strauss Acquisitions, L.L.C. System, device, method and software for providing a visitor access to a public network
US8028325B2 (en) * 2005-08-08 2011-09-27 AOL, Inc. Invocation of a third party's service
US20150052258A1 (en) * 2014-09-29 2015-02-19 Weaved, Inc. Direct map proxy system and protocol
KR100862192B1 (ko) * 2006-12-11 2008-10-09 한국전자통신연구원 무선 네트워크 시스템 및 그의 ip 핸드오프 처리 방법
US8353012B2 (en) * 2008-02-26 2013-01-08 Alejandro Emilio Del Real Internet-based group website technology for content management and exchange (system and methods)
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US9037692B2 (en) * 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US8433749B2 (en) * 2009-04-15 2013-04-30 Accenture Global Services Limited Method and system for client-side scaling of web server farm architectures in a cloud data center
WO2010127610A1 (zh) * 2009-05-04 2010-11-11 成都市华为赛门铁克科技有限公司 一种虚拟专用网节点信息的处理方法、设备及系统
CN103096294B (zh) * 2009-06-10 2015-09-23 华为技术有限公司 控制隧道标识分配的方法、装置和系统
US8688816B2 (en) * 2009-11-19 2014-04-01 Oracle International Corporation High availability by letting application session processing occur independent of protocol servers
US8301718B2 (en) * 2009-11-25 2012-10-30 Red Hat, Inc. Architecture, system and method for a messaging hub in a real-time web application framework
US8387136B2 (en) * 2010-01-05 2013-02-26 Red Hat, Inc. Role-based access control utilizing token profiles
US8826001B2 (en) * 2010-04-27 2014-09-02 International Business Machines Corporation Securing information within a cloud computing environment
CN101917439A (zh) * 2010-08-24 2010-12-15 杭州华三通信技术有限公司 一种数据的传输方法和设备
US9015493B2 (en) * 2010-09-16 2015-04-21 Microsoft Technology Licensing, Llc Multitenant-aware protection service
GB2485783A (en) * 2010-11-23 2012-05-30 Kube Partners Ltd Method for anonymising personal information
US8589558B2 (en) 2010-11-29 2013-11-19 Radware, Ltd. Method and system for efficient deployment of web applications in a multi-datacenter system
EP2458548A1 (en) * 2010-11-30 2012-05-30 France Telecom System and method for implementing dynamic access control rules to personal cloud information
CN103392321B (zh) * 2010-12-29 2016-11-02 思杰系统有限公司 用于基于策略集成横向部署的wan优化设备的系统和方法
US9311135B2 (en) * 2011-01-18 2016-04-12 Scality, S.A. Method for generating universal objects identifiers in distributed multi-purpose storage systems
US9276929B2 (en) * 2013-03-15 2016-03-01 Salesforce.Com, Inc. Method and apparatus for multi-domain authentication
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
CN102769883A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于tcp的永远在线业务传输心跳数据包的方法及设备
CN103650426B (zh) 2011-05-06 2016-10-05 思杰系统有限公司 用于在公共云与私有云之间进行云桥接的系统和方法
US8977754B2 (en) * 2011-05-09 2015-03-10 Metacloud Inc. Composite public cloud, method and system
US20140053234A1 (en) * 2011-10-11 2014-02-20 Citrix Systems, Inc. Policy-Based Application Management
KR101762876B1 (ko) * 2011-12-05 2017-07-31 인텔렉추얼디스커버리 주식회사 클라우드 컴퓨팅 서비스에서의 보안 시스템
BR112014014608A2 (pt) * 2011-12-16 2017-06-13 Illinois Tool Works marcação de recursos para distribuição de conteúdo em um sistema de gerenciamento de empresa
AU2013207269A1 (en) * 2012-01-06 2014-07-24 Optio Labs, LLC Systems and methods for enforcing security in mobile computing
US9787681B2 (en) * 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US9674258B2 (en) * 2012-02-23 2017-06-06 Yottaa Inc. System and method for context specific website optimization
WO2014160479A1 (en) * 2013-03-13 2014-10-02 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona, Acting For And On Behalf Of Arizone State University Systems and apparatuses for a secure mobile cloud framework for mobile computing and communication
US9842002B2 (en) * 2012-05-01 2017-12-12 Red Hat, Inc. Node selection for a new application in a multi-tenant cloud hosting environment
US20140019583A1 (en) * 2012-07-13 2014-01-16 Ittiam Systems (P) Ltd. Ingest bandwidth reduction for cloud based media services
US9189645B2 (en) * 2012-10-12 2015-11-17 Citrix Systems, Inc. Sharing content across applications and devices having multiple operation modes in an orchestration framework for connected devices
US9424437B1 (en) 2012-10-12 2016-08-23 Egnyte, Inc. Systems and methods for providing file access in a hybrid cloud storage system
US9774658B2 (en) * 2012-10-12 2017-09-26 Citrix Systems, Inc. Orchestration framework for connected devices
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
EP2909716B1 (en) * 2012-10-16 2021-02-17 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
CN102882885B (zh) * 2012-10-17 2015-07-01 北京卓微天成科技咨询有限公司 一种提高云计算数据安全的方法及系统
CN103795768B (zh) * 2012-11-05 2019-03-01 华为技术有限公司 远程访问的方法及设备
GB201220692D0 (en) * 2012-11-16 2013-01-02 Overnet Data Man Ltd Software deployment and control method and system
US9317223B2 (en) * 2012-12-17 2016-04-19 International Business Machines Corporation Method and apparatus for automated migration of data among storage centers
US9942601B2 (en) * 2013-01-24 2018-04-10 Saturn Licensing Llc Storing non-real time content
US9036616B2 (en) * 2013-01-25 2015-05-19 Qualcomm Incorporated Synchronizing generation and transmission of keep-alive messages
US9825890B2 (en) * 2013-06-12 2017-11-21 Cloudon Ltd. Systems and methods for supporting social productivity using thresholding
US10158579B2 (en) * 2013-06-21 2018-12-18 Amazon Technologies, Inc. Resource silos at network-accessible services
US9892177B2 (en) * 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
CN103441997B (zh) * 2013-08-20 2017-02-22 华为技术有限公司 一种内容共享方法、装置和系统
CN105518649A (zh) * 2013-09-04 2016-04-20 慧与发展有限责任合伙企业 在多租户环境下提供递归式生成实例化的计算资源
JP6245949B2 (ja) * 2013-11-11 2017-12-13 キヤノン株式会社 認可サーバーシステム、その制御方法、およびそのプログラム。
US10296761B2 (en) * 2013-11-22 2019-05-21 The Trustees Of Columbia University In The City Of New York Database privacy protection devices, methods, and systems
JP6000231B2 (ja) * 2013-11-27 2016-09-28 シャープ株式会社 ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム
US20150163179A1 (en) * 2013-12-09 2015-06-11 Hewlett-Packard Development Company, L.P. Execution of a workflow that involves applications or services of data centers
US20150188949A1 (en) * 2013-12-31 2015-07-02 Lookout, Inc. Cloud-based network security
WO2015108539A1 (en) * 2014-01-20 2015-07-23 Hewlett-Packard Development Company, L.P. Determining a permission of a first tenant with respect to a second tenant
WO2015126409A1 (en) * 2014-02-21 2015-08-27 Hewlett-Packard Development Company, L.P. Migrating cloud resources
US10268492B2 (en) * 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
US11100420B2 (en) * 2014-06-30 2021-08-24 Amazon Technologies, Inc. Input processing for machine learning
GB2528473B (en) * 2014-07-23 2016-06-22 Ibm Effective roaming for software-as-a-service infrastructure
WO2016018410A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, Lp Encapsulation packet with class of service encoding
US10324702B2 (en) * 2014-09-12 2019-06-18 Microsoft Israel Research And Development (2002) Ltd. Cloud suffix proxy and a method thereof
US9826045B2 (en) * 2014-09-26 2017-11-21 Oracle International Corporation Efficient means to test server generated applications on mobile device
US10250584B2 (en) * 2014-10-15 2019-04-02 Zuora, Inc. System and method for single sign-on technical support access to tenant accounts and data in a multi-tenant platform
US9985953B2 (en) * 2014-11-10 2018-05-29 Amazon Technologies, Inc. Desktop application fulfillment platform with multiple authentication mechanisms
US10182103B2 (en) * 2014-10-16 2019-01-15 Amazon Technologies, Inc. On-demand delivery of applications to virtual desktops
US10152211B2 (en) * 2014-11-11 2018-12-11 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
US10296952B2 (en) * 2014-11-03 2019-05-21 Hewlett Packard Enterprise Development Lp Fulfillment of cloud service using marketplace system
US11119745B2 (en) * 2014-11-10 2021-09-14 Amazon Technologies, Inc. Automated deployment of applications
US10057331B2 (en) * 2014-12-11 2018-08-21 International Business Machines Corporation Automatic abstraction of flow of control in a distributed virtualization platform
US9699167B1 (en) * 2015-01-06 2017-07-04 Shoretel, Inc. Distributed authentication
US9692734B2 (en) * 2015-01-07 2017-06-27 Anchorfree Inc. Secure personal server system and method
US10114966B2 (en) * 2015-03-19 2018-10-30 Netskope, Inc. Systems and methods of per-document encryption of enterprise information stored on a cloud computing service (CCS)
US20160330707A1 (en) * 2015-05-08 2016-11-10 Federated Wireless, Inc. Methods and systems for clock synchronization in a network
US10178098B2 (en) * 2015-05-11 2019-01-08 Adobe Systems Incorporated Controlling user access to content
US9881144B2 (en) * 2015-06-15 2018-01-30 International Business Machines Corporation Identifying usage of code
US10050934B2 (en) * 2015-07-31 2018-08-14 Citrix Systems, Inc. Redirector for secure web browsing
US9667657B2 (en) * 2015-08-04 2017-05-30 AO Kaspersky Lab System and method of utilizing a dedicated computer security service
US10242209B2 (en) * 2015-08-27 2019-03-26 International Business Machines Corporation Task scheduling on hybrid clouds using anonymization
US10268493B2 (en) * 2015-09-22 2019-04-23 Amazon Technologies, Inc. Connection-based resource management for virtual desktop instances
WO2017053303A1 (en) * 2015-09-23 2017-03-30 Google Inc. Systems and methods for mobility management in a distributed software defined network packet core system
US10356206B2 (en) * 2015-11-08 2019-07-16 Vmware, Inc. Deploying an application in multiple cloud computing environments
US10652313B2 (en) * 2015-11-08 2020-05-12 Vmware, Inc. Deploying an application in a hybrid cloud computing environment
US10037221B2 (en) * 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10506262B2 (en) * 2015-12-29 2019-12-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for optimized media delivery
US10892942B2 (en) * 2016-01-22 2021-01-12 Equinix, Inc. Container-based cloud exchange disaster recovery
US10412168B2 (en) * 2016-02-17 2019-09-10 Latticework, Inc. Implementing a storage system using a personal user device and a data distribution device
US10952176B2 (en) * 2017-03-17 2021-03-16 Samsung Electronics Co., Ltd. AF influenced PDU session management and subscription procedures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018712A1 (en) 2001-07-06 2003-01-23 Intel Corporation Method and apparatus for peer-to-peer services
JP2006229747A (ja) 2005-02-18 2006-08-31 Fuji Xerox Co Ltd データ提供サーバ、データ提供プログラム、データ提供方法
JP2013503390A (ja) 2009-08-28 2013-01-31 アップル インコーポレイテッド コンテンツ配信ネットワーク上のチャンク形式ダウンロード
JP2014112911A (ja) 2014-01-28 2014-06-19 Mixi Inc 動画配信システム及び動画配信方法

Also Published As

Publication number Publication date
US20190349430A1 (en) 2019-11-14
US10412168B2 (en) 2019-09-10
WO2017143002A1 (en) 2017-08-24
EP3417367B1 (en) 2023-04-12
JP2019508755A (ja) 2019-03-28
WO2017143002A9 (en) 2017-11-30
US20170237812A1 (en) 2017-08-17
US10893104B2 (en) 2021-01-12
EP3417367A1 (en) 2018-12-26
JP6858328B2 (ja) 2021-04-14
JP2021093198A (ja) 2021-06-17

Similar Documents

Publication Publication Date Title
JP7065221B2 (ja) パーソナルユーザデバイスおよびデータ分配デバイスを用いたストレージシステムの実現
US10484279B2 (en) Executing multiple virtual private network (VPN) endpoints associated with an endpoint pool address
US9871850B1 (en) Enhanced browsing using CDN routing capabilities
US10440161B2 (en) Auto-configurable transport stack
EP3230885B1 (en) Method for content retrieval from remote network regions
US10523493B2 (en) Cross-cloud operation management
US20160182626A1 (en) System and method for discovering a lan synchronization candidate for a synchronized content management system
US10999370B1 (en) Syncing and sharing data across systems
EP2993593A1 (en) System and method for a reliable content exchange of a ccn pipeline stream
US11558185B2 (en) Stream-based key management
US11792113B2 (en) Information centric network dynamic compute orchestration
JP2017034666A (ja) コンテンツ指向型ネットワークのスタックにおける状態の転送
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
US20220012110A1 (en) Networking-related system call interception and modification
EP3125495A1 (en) Content negotiation in a content centric network
US20130054691A1 (en) Flexible rule based multi-protocol peer-to-peer caching
US20160050235A1 (en) Flexible Server Architecture With Ability To Dynamically Change Gateway Communication Channels
US11528206B2 (en) Identifying and mapping applications to devices in a network
CN117837135A (zh) 虚拟化网络中的共享缓存

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220310

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220425

R150 Certificate of patent or registration of utility model

Ref document number: 7065221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150