IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ラティスワーク・インコーポレイテッドの特許一覧

特許7374996ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド
<>
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図1A
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図1B
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図1C
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図2
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図3
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図4
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図5
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図6A
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図6B
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図6C
  • 特許-ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-27
(45)【発行日】2023-11-07
(54)【発明の名称】ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド
(51)【国際特許分類】
   G06F 21/31 20130101AFI20231030BHJP
   G06F 21/62 20130101ALI20231030BHJP
【FI】
G06F21/31
G06F21/62 318
【請求項の数】 16
(21)【出願番号】P 2021510936
(86)(22)【出願日】2019-06-14
(65)【公表番号】
(43)【公表日】2021-12-27
(86)【国際出願番号】 US2019037126
(87)【国際公開番号】W WO2020046440
(87)【国際公開日】2020-03-05
【審査請求日】2022-06-03
(31)【優先権主張番号】62/725,955
(32)【優先日】2018-08-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/272,388
(32)【優先日】2019-02-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517399516
【氏名又は名称】ラティスワーク・インコーポレイテッド
【氏名又は名称原語表記】LATTICEWORK, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】スタージャ,パンタス
【審査官】吉田 歩
(56)【参考文献】
【文献】特表2017-523508(JP,A)
【文献】特開2008-186338(JP,A)
【文献】特開2014-146297(JP,A)
【文献】特表2017-530448(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
命令を記憶する1つまたは複数の非一時的機械可読媒体であって、前記命令は1つまたは複数のプロセッサによって実行されると、
パブリッククラウドサービスを使用するためのユーザのパブリッククラウドユーザアカウントを識別することと、
パブリッククラウドサービスからのアプリケーションによって、パーソナルクラウドデバイスを使用するために前記ユーザの(a)前記パブリッククラウドユーザアカウントと(b)パーソナルクラウドユーザアカウントとをバインドするための事前承認を示す情報を取得することと、
前記アプリケーションによって、前記パーソナルクラウドデバイスに、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとをバインドする要求を送信することとを行わせる命令を有し、前記バインドの要求は、前記パブリッククラウドユーザアカウントと関連付けられる識別子を含み、前記命令はさらに、
前記アプリケーションによって、前記バインドの要求に応答して、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントの間のバインドが生成されたことを示す確認を取得することとを行わせる命令を有し、
前記バインドは、前記パブリッククラウドサービスを使用するために、前記パブリッククラウドユーザアカウントから第2のユーザの第2のパブリッククラウドユーザアカウントに、(a)前記パーソナルクラウドデバイスに記憶され、(b)前記パーソナルクラウドユーザアカウントと関連付けられる、データを共有するための基準である、1つまたは複数の非一時的機械可読媒体。
【請求項2】
前記1つまたは複数のプロセッサによって実行されると、
前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとをバインドするための前記事前承認を示す前記情報の取得に応答して、前記アプリケーションによって、前記パーソナルクラウドユーザアカウントと関連付けられるユーザ名を提示することを行わせる命令をさらに記憶する、請求項1に記載の1つまたは複数の媒体。
【請求項3】
前記パブリッククラウドサービスから前記アプリケーションによって取得され、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとをバインドするための前記事前承認を示す前記情報が、前記パブリッククラウドサービスと関連付けられるデータリポジトリに記憶される事前承認リストに基づいて決定される、請求項1に記載の1つまたは複数の媒体。
【請求項4】
(a)前記パブリッククラウドユーザアカウントおよび前記パーソナルクラウドユーザアカウントが、前記パブリッククラウドサービスに記憶されている第1の事前承認リストに基づいてバインドされることを承認されていることを、前記パブリッククラウドサービスが判定すること、および(b)前記パブリッククラウドユーザアカウントおよび前記パーソナルクラウドユーザアカウントが、前記パーソナルクラウドデバイスに記憶されている第2の事前承認リストに基づいてバインドされることを承認されていることを、前記パーソナルクラウドデバイスが判定することが、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間の前記バインドを生成するための基準である、請求項1に記載の1つまたは複数の媒体。
【請求項5】
前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間の前記バインドの生成は、
前記パブリッククラウドサービスと関連付けられる第1のデータリポジトリ上に、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間の前記バインドを示す第1の情報セットを記憶することと、
前記パーソナルクラウドデバイスと関連付けられる第2のデータリポジトリ上に、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間の前記バインドを示す第2の情報セットを記憶することとを含む、請求項1に記載の1つまたは複数の媒体。
【請求項6】
前記1つまたは複数のプロセッサによって実行されると、
前記アプリケーションによって、前記パーソナルクラウドユーザアカウントに対応する新しい鍵の要求を提示することと、
前記アプリケーションによって、前記パーソナルクラウドユーザアカウントに対応する前記新しい鍵を受信することと、
前記アプリケーションによって前記パーソナルクラウドデバイスに、前記新しい鍵を送信することとを行わせる命令をさらに記憶し、
前記パーソナルクラウドデバイスは、前記パーソナルクラウドユーザアカウントにログインするための検証情報として前記新しい鍵を記憶する、請求項1に記載の1つまたは複数の媒体。
【請求項7】
前記バインドは、(a)前記パーソナルクラウドユーザアカウントと関連付けて記憶され、(b)前記パーソナルクラウドデバイスに記憶される、前記パブリッククラウドユーザアカウントにデータをエクスポートするためのさらなる基準である、請求項1に記載の1つまたは複数の媒体。
【請求項8】
命令を記憶する1つまたは複数の非一時的機械可読媒体であって、前記命令は1つまたは複数のプロセッサによって実行されると、
パブリッククラウドサービスを使用するためのユーザのパブリッククラウドユーザアカウントを識別することと、
前記パブリッククラウドユーザアカウントが、パーソナルクラウドデバイスを使用するための前記ユーザのパーソナルクラウドユーザアカウントとバインドすることを事前承認されていることを判定することと、
第1の認証情報を生成することと、
(a)前記パブリッククラウドユーザアカウントが、前記パーソナルクラウドユーザアカウントとバインドすることを事前承認されていることを示す情報、および(b)前記第1の認証情報を、クライアントデバイスに送信することと、
(a)前記パブリッククラウドユーザアカウントが、前記パーソナルクラウドユーザアカウントとバインドすることを事前承認されていることの検証、および(b)第2の認証情報を、前記パーソナルクラウドデバイスから受信することと、
前記第1の認証情報と前記第2の認証情報との間に一致があるか否かを判定することと、
前記第1の認証情報と前記第2の認証情報との間に前記一致があるという判定に応答して、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントの間のバインドを示す情報を記憶することとを行わせる命令を有し、
前記バインドは、前記パブリッククラウドサービスを使用するために、前記パブリッククラウドユーザアカウントから第2のユーザの第2のパブリッククラウドユーザアカウントに、(a)前記パーソナルクラウドデバイスに記憶され、(b)前記パーソナルクラウドユーザアカウントと関連付けられる、データを共有するための基準である、1つまたは複数の非一時的機械可読媒体。
【請求項9】
(a)前記パブリッククラウドユーザアカウントが前記パーソナルクラウドユーザアカウントとバインドすることを事前承認されていることを判定することは、前記パブリッククラウドサービスに記憶された事前承認リストに基づく、および/または、
(b)前記パーソナルクラウドデバイスから受信される、前記パブリッククラウドユーザアカウントが前記パーソナルクラウドユーザアカウントとバインドすることを事前承認されていることの前記検証は、前記パーソナルクラウドデバイスに記憶された事前承認リストに基づく、請求項8に記載の1つまたは複数の媒体。
【請求項10】
命令を記憶する1つまたは複数の非一時的機械可読媒体であって、前記命令は1つまたは複数のプロセッサによって実行されると、
パブリッククラウドサービスを使用するためのパブリッククラウドユーザアカウントと、パーソナルクラウドデバイスを使用するためのパーソナルクラウドユーザアカウントとをバインドする第1の要求を受信することと、
前記パブリッククラウドユーザアカウントが前記パーソナルクラウドユーザアカウントとバインドすることを承認されていることの判定に応答して、前記パブリッククラウドサービスに、前記パブリッククラウドユーザアカウントおよび前記パーソナルクラウドユーザアカウントがバインドすることを承認されていることを示す検証を送信することと、
前記パブリッククラウドサービスが前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間のバインドを示す第1の情報セットを記憶していることを示す確認を、前記パブリッククラウドサービスから取得することに応答して、前記パブリッククラウドユーザアカウントと前記パーソナルクラウドユーザアカウントとの間の前記バインドを示す第2の情報セットを、前記パーソナルクラウドデバイスと関連付けられるデータリポジトリ上に記憶することとを行わせる命令を有し、
前記バインドは、前記パブリッククラウドサービスを使用するために、前記パブリッククラウドユーザアカウントから第2のユーザの第2のパブリッククラウドユーザアカウントに、(a)前記パーソナルクラウドデバイスに記憶され、(b)前記パーソナルクラウドユーザアカウントと関連付けられる、データを共有するための基準である、1つまたは複数の非一時的機械可読媒体。
【請求項11】
前記パブリッククラウドユーザアカウントが前記パーソナルクラウドユーザアカウントとバインドすることを承認されていることを判定することは、(a)前記パーソナルクラウドデバイスと関連付けられる前記データリポジトリに記憶された事前承認リスト、および(b)前記パブリッククラウドサービスと関連付けられる第2のデータリポジトリに記憶されている第2の事前承認リスト、のうちの1つ以上に基づく、請求項10に記載の1つまたは複数の媒体。
【請求項12】
1つまたは複数のプロセッサによって実行されると、
パーソナルクラウドデバイスを使用するためのユーザのパーソナルクラウドユーザアカウントを識別することと、
前記パーソナルクラウドデバイスに記憶され、前記パーソナルクラウドユーザアカウントと関連付けられるデータを、パブリッククラウドサービスを使用するための前記ユーザのパブリッククラウドユーザアカウントにエクスポートする要求を受信することと、
前記パーソナルクラウドユーザアカウントと前記パブリッククラウドユーザアカウントとの間にバインドがあるか否かを判定することと、
前記パーソナルクラウドユーザアカウントと前記パブリッククラウドユーザアカウントとの間にバインドがあることの判定に応答して、前記パーソナルクラウドデバイスに記憶されている前記データが前記パブリッククラウドユーザアカウントにエクスポートされることを承認されていることを示す情報を送信することとを行わせる命令を記憶している、1つまたは複数の非一時的機械可読媒体。
【請求項13】
前記パーソナルクラウドユーザアカウントと前記パブリッククラウドユーザアカウントとの間に前記バインドがあるか否かを判定することは、(a)前記パーソナルクラウドデバイスと関連付けられるデータリポジトリに記憶されたバインドリスト、および(b)前記パブリッククラウドサービスと関連付けられる第2のデータリポジトリに記憶されている第2のバインドリストのうちの1つ以上に基づく、請求項12に記載の1つまたは複数の媒体。
【請求項14】
前記1つまたは複数のプロセッサによって実行されると、
(a)前記パーソナルクラウドデバイスに記憶されている前記データを前記パブリッククラウドユーザアカウントにとってアクセス可能にすることを行わせる命令、および、
(b)前記パブリッククラウドユーザアカウントを使用して前記パーソナルクラウドデバイスに記憶されている前記データにアクセスすることを行わせる命令のうちの1つ以上をさらに記憶する、請求項12に記載の1つまたは複数の媒体。
【請求項15】
1つまたは複数のプロセッサによって実行されると、
パーソナルクラウドデバイスを使用するための第1のユーザのパーソナルクラウドユーザアカウントを識別することと、
記パーソナルクラウドデバイスに記憶され、前記パーソナルクラウドユーザアカウントと関連付けられるデータを、パブリッククラウドサービスを使用するための第2のユーザの第1のパブリッククラウドユーザアカウントに共有する要求を受信することとであって、前記第1のユーザと前記第2のユーザとは異なる、受信することと、
前記パーソナルクラウドユーザアカウントが第2のパブリッククラウドユーザアカウントにバインドされることの判定に応答して、前記パーソナルクラウドデバイスに記憶されている前記データを前記第1のパブリッククラウドユーザアカウントに共有するために前記第2のパブリッククラウドユーザアカウントを使用する要求を、前記パブリッククラウドサービスに送信することとを行わせる命令を記憶している、1つまたは複数の非一時的機械可読媒体。
【請求項16】
前記1つまたは複数のプロセッサによって実行されると、
(a)前記パブリッククラウドサービスによって、前記パーソナルクラウドデバイス上に記憶されており、かつ前記パーソナルクラウドユーザアカウントと関連付けられる前記データが前記第2のパブリッククラウドユーザアカウントにエクスポートされていることを判定することを行わせる命令、および、
(b)前記パーソナルクラウドデバイス上に記憶されている前記データが前記第2のパブリッククラウドユーザアカウントから前記第1のパブリッククラウドユーザアカウントに共有されていることを示す情報を、クライアントデバイスに送信することを行わせる命令のうちの1つ以上をさらに記憶する、請求項15に記載の1つまたは複数の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
以下の各出願が、参照により本明細書に援用される。2018年8月31日に出願された米国仮特許出願第62/725,955号、2019年2月11日に出願された米国非仮特許出願第16/272,388号。
【0002】
出願人は、本明細書により、親出願(複数可)の特許請求項の範囲またはその審査履歴の一切の免責事項を取り消し、本出願の特許請求項が親出願(複数可)の任意の特許請求項よりも広い可能性があることを米国特許商標庁に通知する。
【0003】
技術分野
本開示は、ハイブリッドクラウド環境に関する。特に、本開示は、ハイブリッドクラウド環境のためのパブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントのバインド(紐付け)に関する。
【背景技術】
【0004】
背景
コンピュータネットワークは、ノードのセット間の接続を提供する。ノードは、クライアントプロセスおよび/またはサーバプロセスを実行し得る。クライアントプロセスは、コンピュータネットワークを介してコンピューティングサービス(特定のアプリケーションの実行、および/または特定の量のデータの記憶など)を要求する。サーバプロセスは、要求されたサービスを実行すること、および/または、コンピュータネットワークを介して対応するデータを返すことによって応答する。
【0005】
クラウド環境では、サーバプロセスを実行するネットワークリソースが複数のクライアント間で共有される。クライアントは、互いに独立してコンピュータネットワークにコンピューティングサービスを要求することができる。ネットワークリソースは、オンデマンドで要求および/またはクライアントに動的に割り当てることができる。
【0006】
パーソナルクラウドにおいては、1つまたは複数のパーソナルクラウドデバイスが使用されて、サーバプロセスが実行される。パーソナルクラウドデバイスは、1つまたは複数のエンティティ(企業、組織、個人など)の特定のグループによる排他的使用のために提供される。一般に、パーソナルクラウドを使用しているエンティティは、ネットワーク接続の維持、ユーザアカウントの維持、セキュリティの維持を含む、パーソナルクラウドの管理を担当する。パーソナルクラウドデバイスは、パーソナルクラウドを使用するエンティティによって維持されるファイアウォールによって保護することができる。パーソナルクラウドデバイスは、パーソナルクラウドを使用するエンティティの施設内に配置することができる。
【0007】
パブリッククラウドにおいては、パブリッククラウドデバイスのセットが、互いに独立している複数のエンティティ(クラウドサービスの「テナント」または「顧客」とも呼ばれる)向けにクラウドサービスを実装する。異なるテナントのクライアントが、同じネットワークリソースにアクセスして、クラウドサービスを要求する場合がある。通常、クラウドサービスプロバイダがパブリッククラウドを管理する。テナントは、パブリッククラウドの管理を担当する必要はない。テナントは、クラウドサービスプロバイダが提供するアプリケーションプログラミングインターフェース(API)を使用して、クラウドサービスを要求する。APIを介して、テナントはパブリッククラウド上で特定のアプリケーションの実行を要求することができる。付加的または代替的に、テナントは、パブリッククラウド上の特定のデータセットの記憶および/または取り出しを要求する場合がある。テナント分離技法を使用して、同じパブリッククラウドデバイスによって処理されるテナントデータのセキュリティを確保することができる。
【0008】
ハイブリッドクラウドは、パーソナルクラウドとパブリッククラウドの両方を含む。パーソナルクラウドとパブリッククラウドとの間のインターフェースにより、データおよびアプリケーションの移植性が可能になる。プライベートクラウドに記憶されているデータとパブリッククラウドに記憶されているデータとは、インターフェースを介して交換することができる。プライベートクラウドにおいて実装されているアプリケーションとパブリッククラウドにおいて実装されているアプリケーションは、相互に依存し得る。プライベートクラウドのアプリケーションからパブリッククラウドのアプリケーションへの呼び出し(およびその逆)は、インターフェースを介して実行することができる。
【発明の概要】
【発明が解決しようとする課題】
【0009】
ハイブリッドクラウドの使用を所望するユーザは、パーソナルクラウドとパブリッククラウドの両方に対して認証される必要がある。このような認証プロセスは、ユーザにとって非常に面倒な場合がある。さらに、ユーザは通常、インターネットを介してパブリッククラウドサービスに接続することができるが、パーソナルクラウドデバイスとの接続を確立するには、ユーザは複雑なプロセスを実行する必要がある場合がある。例として、ユーザは、パーソナルクラウドデバイスと関連付けられるファイアウォール設定が、ユーザがパーソナルクラウドデバイスと通信することを可能にすることを保証する必要があり得る。
【課題を解決するための手段】
【0010】
このセクションで説明されているアプローチは、達成することができるアプローチであるが、必ずしも以前に考案または達成されたアプローチであるとは限らない。したがって、特に明記しない限り、このセクションにおいて説明されているアプローチのいずれかが、単にこのセクションに含まれているという理由だけで従来技術として適格であると想定されるべきではない。
【0011】
図面の簡単な説明
実施形態は、添付の図面の図における限定としてではなく、例として示されている。本開示における「一(an)」実施形態または「1つの(one)」実施形態への言及は、必ずしも同じ実施形態への言及ではなく、それらは少なくとも1つを意味することに留意されたい。
【図面の簡単な説明】
【0012】
図1A】1つまたは複数の実施形態による、例示的なハイブリッドクラウドシステムを示す図である。
図1B】1つまたは複数の実施形態による、例示的なハイブリッドクラウドシステムを示す図である。
図1C】1つまたは複数の実施形態による、例示的なハイブリッドクラウドシステムを示す図である。
図2】1つまたは複数の実施形態による、パブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントを手動でバインドするための工程の例示的なセットを示す図である。
図3】1つまたは複数の実施形態による、事前承認に基づいてパブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントをバインドするための工程の例示的なセットを示す図である。
図4】1つまたは複数の実施形態による、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムをパブリッククラウドユーザアカウントにエクスポートするための工程の例示的なセットを示す図である。
図5】1つまたは複数の実施形態による、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムを、パブリッククラウドユーザアカウントを使用して共有するための工程の例示的なセットを示す図である。
図6A】1つまたは複数の実施形態による、クライアントデバイスと関連付けられる例示的なユーザインターフェースを示す図である。
図6B】1つまたは複数の実施形態による、クライアントデバイスと関連付けられる例示的なユーザインターフェースを示す図である。
図6C】1つまたは複数の実施形態による、クライアントデバイスと関連付けられる例示的なユーザインターフェースを示す図である。
図7】1つまたは複数の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0013】
詳細な説明
以下の説明では、説明の目的で、完全な理解を提供するために多くの具体的な詳細が記載されている。これらの特定の詳細なしで、1つまたは複数の実施形態を実施することができる。1つの実施形態において説明されている機能は、別の実施形態で説明されている機能と組み合わせることができる。いくつかの例では、本発明を不必要に曖昧にすることを回避するために、ブロック図の形式を参照して、周知の構造およびデバイスが説明されている。
【0014】
1.一般的な概説
2.ハイブリッドクラウドシステムアーキテクチャ
3.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの手動バインド
4.事前承認に基づくパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド
5.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの間のバインドに基づくコンテンツアイテムのエクスポート
6.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの間のバインドに基づくコンテンツアイテムの共有
7.例示的な実施形態
8.コンピュータネットワークおよびクラウドネットワーク
9.ハードウェアの概説
10.その他、拡張機能
1.一般的な概説
1つまたは複数の実施形態は、ハイブリッドクラウド環境を含む。ハイブリッドクラウド環境は、パブリッククラウドサービス、パーソナルクラウドデバイス、および、パブリッククラウドサービスとパーソナルクラウドデバイスの両方にアクセスするクライアントデバイスを含む。パーソナルクラウドデバイスを使用するためのパーソナルクラウドアカウントと、パブリッククラウドサービスを使用するためのパブリッククラウドアカウントとをバインドして、パーソナルクラウドデバイスとパブリッククラウドサービスの両方による通信を容易にし、それによってより統合されたハイブリッドクラウド環境を作成することができる。
【0015】
1つまたは複数の実施形態は、ハイブリッドクラウド環境のためにパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとをバインドすることを含む。パーソナルクラウドデバイスの管理者は、事前承認リストを作成する。これは、いずれのパブリッククラウドユーザアカウントがいずれのパーソナルクラウドユーザアカウントとバインドされることを事前承認されているかを示す。事前承認リストのコピーがパーソナルクラウドデバイスに記憶され、事前承認リストのもう1つのコピーがパブリッククラウドサービスに記憶される。
【0016】
ユーザは、クライアントデバイスを介してユーザのパブリッククラウドアカウントにログインする。パブリッククラウドサービスは、パブリッククラウドサービスと関連付けられるデータリポジトリに記憶されている事前承認リストにアクセスする。事前承認リストに基づいて、パブリッククラウドサービスは、ユーザのパブリッククラウドユーザアカウントが、特定のパーソナルユーザデバイス上の特定のパーソナルクラウドユーザアカウントとバインドされることを事前承認されていることを判定する。特定のパーソナルクラウドユーザアカウントは、同じユーザに関連付けられる。パブリッククラウドサービスが認証情報を生成する。パブリッククラウドサービスは、(a)ユーザのパブリッククラウドユーザアカウントがユーザのパーソナルクラウドユーザアカウントとバインドされることを事前承認されていることを示す情報、および(b)認証情報をクライアントデバイスに送信する。
【0017】
任意選択的に、クライアントデバイスは、ユーザインターフェースを使用して、ユーザのパーソナルクラウドユーザアカウントに対応する新しい鍵の要求を提示する。クライアントデバイスは、ユーザインターフェースを使用して、ユーザ入力として鍵を受信する。クライアントデバイスは、特定のパーソナルクラウドデバイスとの接続を確立する(これは、パブリッククラウドサービスの支援を受けて実施することができる)。クライアントデバイスは、特定のパーソナルクラウドデバイスに、ユーザのパブリッククラウドユーザアカウントとユーザのパーソナルクラウドユーザアカウントとをバインドする要求を送信する。要求は、(a)ユーザインターフェースを介して入力された鍵、および(b)パブリッククラウドサービスから受信されている認証情報を含む。
【0018】
パーソナルクラウドデバイスは、ユーザが後で鍵を使用してパーソナルクラウドアカウントにログインすることができるように、パーソナルクラウドアカウントと関連付けて鍵を記憶する。
【0019】
さらに、パーソナルクラウドデバイスは、パーソナルクラウドデバイスと関連付けられるデータリポジトリに記憶されている事前承認リストにアクセスする。事前承認リストに基づいて、パーソナルクラウドデバイスは、ユーザのパブリッククラウドユーザアカウントがユーザのパーソナルクラウドユーザアカウントとバインドされることを事前承認されていることを検証する。パーソナルクラウドデバイスは、(a)ユーザのパブリッククラウドユーザアカウントとユーザのパーソナルクラウドユーザアカウントとがバインドされることを承認されていることを示す検証、および(b)クライアントデバイスから受信されている認証情報をパブリッククラウドサービスに送信する。
【0020】
パブリッククラウドサービスは、パーソナルクラウドデバイスから受信されている認証情報が、パブリッククラウドサービスによって以前に生成された認証情報と同じであることを検証する。検証されると、パブリッククラウドサービスは、ユーザのパブリッククラウドユーザアカウントとユーザのパーソナルクラウドユーザアカウントとの間のバインドを記憶する。バインドは、パブリッククラウドサービスと関連付けられるデータリポジトリに記憶される。パブリッククラウドサービスは、バインドの確認をパーソナルクラウドデバイスに送信する。
【0021】
確認を受信すると、パーソナルクラウドデバイスは、ユーザのパブリッククラウドユーザアカウントとユーザのパーソナルクラウドユーザアカウントとの間のバインドを記憶する。バインドは、パーソナルクラウドデバイスと関連付けられるデータリポジトリに記憶される。したがって、パブリッククラウドアカウントとパーソナルクラウドアカウントとがともにバインドされる。
【0022】
1つまたは複数の実施形態は、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムをパブリッククラウドユーザアカウントにエクスポートすることを含む。エクスポートは、ユーザのパーソナルクラウドコンテンツアイテムをユーザのパブリッククラウドユーザアカウントにとってアクセス可能にすることを含む。パーソナルクラウドデバイスは、ユーザのパーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムをエクスポートする要求を受信する。パーソナルクラウドデバイスはバインドリストにアクセスする。バインドリストに基づいて、パーソナルクラウドデバイスは、ユーザのパーソナルクラウドユーザアカウントと特定のパブリッククラウドユーザアカウントとの間にバインドが存在することを検証する。特定のパブリッククラウドユーザアカウントは、同じユーザと関連付けられる。パーソナルクラウドデバイスは、コンテンツアイテムがユーザのパブリッククラウドユーザアカウントへのエクスポートが承認されていることを示す情報をパブリッククラウドサービスに送信する。コンテンツアイテムがエクスポートされると、ユーザはユーザのパブリッククラウドユーザアカウントからコンテンツアイテムを見ることおよび/またはアクセスすることができる。
【0023】
1つまたは複数の実施形態は、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムを、パブリッククラウドユーザアカウントを使用して共有することを含む。共有は、ユーザのパーソナルクラウドコンテンツアイテムを別のユーザのパブリッククラウドユーザアカウントにとってアクセス可能にすることを含む。パーソナルクラウドデバイスは、発信元ユーザのパーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムを共有する要求を受信する。要求は、コンテンツアイテムを受信者ユーザのパブリッククラウドユーザアカウントと共有する必要があることを示している。パーソナルクラウドデバイスはバインドリストにアクセスする。バインドリストに基づいて、パーソナルクラウドデバイスは、発信元ユーザのパーソナルクラウドユーザアカウントと特定のパブリッククラウドユーザアカウントとの間にバインドが存在することを判定する。特定のパブリッククラウドユーザアカウントは、同じ発信元ユーザと関連付けられる。パーソナルクラウドデバイスは、発信元ユーザのパブリッククラウドユーザアカウントを使用してコンテンツアイテムを受信者ユーザのパブリッククラウドユーザアカウントと共有する要求をパブリッククラウドサービスに送信する。パブリッククラウドデバイスは、コンテンツアイテムが発信元ユーザのパブリッククラウドアカウントにエクスポートされたことを確認する。パブリッククラウドデバイスは、コンテンツアイテムを、受信者ユーザのパブリッククラウドアカウントにとってアクセス可能にする。受信者ユーザは、その後、コンテンツアイテムが発信元ユーザのパブリッククラウドユーザアカウントから共有されたという通知を受信することができる。受信者ユーザは、受信者ユーザのパブリッククラウドユーザアカウントからコンテンツアイテムを見ることおよび/またはアクセスすることができる。
【0024】
本明細書に記載されているおよび/または特許請求の範囲に記載されている1つまたは複数の実施形態は、この一般的な概説のセクションに含まれていない場合がある。
【0025】
2.ハイブリッドクラウドシステムアーキテクチャ
図1Aは、1つまたは複数の実施形態による、ハイブリッドクラウドシステムを示す。図1に示されるように、システム100は、パブリッククラウドサービス102、1つまたは複数のクライアントデバイス108a~c、および1つまたは複数のパーソナルクラウドデバイス110a~cを含む。1つまたは複数の実施形態では、システム100は、図1に示されている構成要素よりも多いまたは少ない構成要素を含んでもよい。図1に示されている構成要素は、互いにローカルであってもよく、またはリモートであってもよい。図1に示されている構成要素は、ソフトウェアおよび/またはハードウェアにおいて実装することができる。各構成要素は、複数のアプリケーションおよび/またはマシンにわたって分散させることができる。複数の構成要素を1つのアプリケーションおよび/またはマシンに組み合わせることができる。ある構成要素に関して説明されている工程は、代わりに別の構成要素によって実行されてもよい。
【0026】
1つまたは複数の実施形態では、パブリッククラウドサービス102は、1つまたは複数のエンティティ(本明細書では「テナント」としても参照される)によって使用されるクラウド環境である。テナントは、例えば、法人、組織、企業、個人、または他のエンティティであってもよい。テナントは互いに独立している。テナントの事業または運営は互いに分離されている。
【0027】
パブリッククラウドサービス102のテナントは、パブリッククラウドサービス102のハードウェア、ソフトウェア、および他のサポートインフラストラクチャの管理に関与する場合があるが、必ずしも関与するとは限らない。むしろ、パブリッククラウドサービスプロバイダが、パブリッククラウドサービス102のハードウェア、ソフトウェア、および他のサポートインフラストラクチャを管理する。パブリッククラウドサービスプロバイダは、テナント分離技法を実装することができる。テナント分離は、テナントがテナント自身のデータのみにアクセスすることができる(かつ、他のテナントのデータにはアクセスすることができない)ことを保証すること、異なるテナントのデータが相互作用しないことを保証すること、および/または、1つのテナントのリソース要求の、別のテナントのサービス品質に対する影響を最小限に抑えることを含むことができる。(パブリッククラウドサービス102が1つまたは複数のパーソンクラウドデバイスと組み合わせて使用されてハイブリッドクラウド環境が提供される場合、パブリッククラウドサービスプロバイダは「ハイブリッドクラウドサービスプロバイダ」として参照される場合がある。)
パブリッククラウドサービス102は、パブリッククラウドマネージャ104およびデータリポジトリ106を含む。パブリッククラウドサービス102に関するさらなる詳細は、図1Bを参照して以下に説明される。
【0028】
1つまたは複数の実施形態では、パーソナルクラウドデバイス(パーソナルクラウドデバイス110a~cのいずれかなど)は、パーソナルクラウドを単一のエンティティ(または関連するエンティティの単一のグループ)に提供する。エンティティ自体が、パーソナルクラウドデバイスのハードウェア、ソフトウェア、およびその他のサポートインフラストラクチャを管理する。パーソナルクラウドデバイスに関するさらなる詳細は、図1Cを参照して以下に説明される。
【0029】
1つまたは複数の実施形態では、パブリッククラウドサービス102および1つまたは複数のパーソナルクラウドデバイス(パーソナルクラウドデバイス110a~cのいずれかなど)がともに、ハイブリッドクラウド環境を提供する。エンティティは、(a)パブリッククラウドサービス102のテナントであるとともに、(b)パーソナルクラウドデバイスの所有者、管理者、および/またはユーザでもある。エンティティと関連付けられるデータは、パブリッククラウドサービス102および/またはパーソナルクラウドデバイスに記憶され得る。
【0030】
コンピュータネットワークに関連する追加の実施形態および/または例は、以下の「コンピュータネットワークおよびクラウドネットワーク」と題されたセクション8に記載されている。
【0031】
1つまたは複数の実施形態では、クライアントデバイス(クライアントデバイス108a~cのいずれかなど)は、パブリッククラウドサービス102および/またはパーソナルクラウドデバイス(パーソナルクラウドデバイス110a~cのいずれかなど)からサービスを要求する。
【0032】
パブリッククラウドサービス102のテナントと関連付けられるクライアントデバイスは、パブリッククラウドサービス102にアクセスすることができる。クライアントデバイスは、テナントが管理するハードウェアおよび/またはソフトウェアを含むことができる。付加的または代替的に、クライアントデバイスは、テナントと関連付けられる人(テナントの従業員、またはテナントの製品もしくはサービスの登録ユーザなど)によって使用されてもよい。
【0033】
パーソナルクラウドデバイスを管理するエンティティと関連付けられるクライアントデバイスは、パーソナルクラウドデバイスにアクセスすることができる。クライアントデバイスは、エンティティが管理するハードウェアおよび/またはソフトウェアを含むことができる。付加的または代替的に、クライアントデバイスは、エンティティと関連付けられる人(エンティティの従業員、またはエンティティの家族など)によって使用されてもよい。
【0034】
一例として、クライアントデバイス108aは、パブリッククラウドサービス102のテナントと関連付けられるアプリケーションを実行することができる。クライアントデバイス108bは、パブリッククラウドサービス102の別のテナントと関連付けられるアプリケーションを実行することができる。クライアントデバイス108cは、パブリッククラウドサービス102の別のテナントと関連付けられるアプリケーションを実行することができる。したがって、図示のように、クライアントデバイス108a~cの各々が、パブリッククラウドサービス102にアクセスすることができる。
【0035】
引き続きこの例において、Daddy Joeがパーソナルクラウドデバイス110aを管理することができる。Daddy Joeは、Little Johnny(Daddy Joeの息子)にパーソナルクラウドデバイス110aへのアクセスを許可することができる。一方、Little Johnnyはパーソナルクラウドデバイス110bを管理することができる。Justinは、パーソナルクラウドデバイス110cを管理することができる。
【0036】
Daddy Joeはパーソナルクラウドデバイス110aの管理者であるため、Daddy Joeのクライアントデバイス108aはパーソナルクラウドデバイス110aにアクセスすることができる。さらに、パパジョーがLittle Johnnyにアクセスを許可したため、Little Johnnyのクライアントデバイス108bは、パーソナルクラウドデバイス110aにアクセスすることができる。Justinのクライアントデバイス108cは、パーソナルクラウドデバイス110aにアクセスすることができない。
【0037】
Little Johnnyはパーソナルクラウドデバイス110bの管理者であるため、Little Johnnyのクライアントデバイス108bはパーソナルクラウドデバイス110bにアクセスすることができる。クライアントデバイス108aおよび108cは、パーソナルクラウドデバイス110bにアクセスすることができない。
【0038】
Justinはパーソナルクラウドデバイス110cの管理者であるため、Justinのクライアントデバイス108cはパーソナルクラウドデバイス110cにアクセスすることができる。クライアントデバイス108a~bは、パーソナルクラウドデバイス110cにアクセスすることができない。
【0039】
したがって、図示のように、クライアントデバイス108a~bは、パーソナルクラウドデバイス110aにアクセスすることができる。クライアントデバイス108bは、パーソナルクラウドデバイス110bにアクセスすることができる。クライアントデバイス108cは、パーソナルクラウドデバイス110cにアクセスすることができる。
【0040】
1つまたは複数の実施形態では、クライアントデバイスは、パブリッククラウドサービス102および/またはパーソナルクラウドデバイスの両方と相互作用するためのインターフェースを実行する。クライアントデバイスは、パブリッククラウドサービス102および/またはパーソナルクラウドデバイスにコンテンツアイテムを記憶することを要求することができる。クライアントデバイスは、パブリッククラウドサービス102および/またはパーソナルクラウドデバイスからコンテンツアイテムを取り出すことを要求することができる。パブリッククラウドサービス102と関連付けられるデータリポジトリに記憶されたコンテンツアイテムは、本明細書においては「パブリッククラウドコンテンツアイテム」として参照される場合がある。パーソナルクラウドデバイスと関連付けられるデータリポジトリに記憶されたコンテンツアイテムは、本明細書においては「パーソナルクラウドコンテンツアイテム」として参照される場合がある。
【0041】
図1Bは、1つまたは複数の実施形態による、パブリッククラウドマネージャおよびパブリッククラウドサービスのデータリポジトリを示している。図1A図1Cの同じ番号のラベルは、同様の構成要素を指す。
【0042】
1つまたは複数の実施形態では、データリポジトリ106は、データを記憶するための任意のタイプの記憶ユニットおよび/またはデバイス(例えば、ファイルシステム、データベース、テーブルの集合、または任意の他の記憶メカニズム)である。さらに、データリポジトリ106は、複数の異なる記憶ユニットおよび/またはデバイスを含んでもよい。複数の異なる記憶ユニットおよび/またはデバイスは、同じタイプであってもよく、もしくはそうでなくてもよく、または、同じ物理的な場所に位置してもよく、もしくは、そうでなくてもよい。さらに、データリポジトリ106は、パブリッククラウドマネージャ104と同じコンピューティングシステム上で実装または実行されてもよい。代替的または付加的に、データリポジトリ106は、パブリッククラウドマネージャ104とは別個のコンピューティングシステム上で実装または実行されてもよい。データリポジトリ106は、直接接続またはネットワークを介してパブリッククラウドマネージャ104に通信可能に結合することができる。
【0043】
1つまたは複数の実施形態では、パブリッククラウドサービス102と関連付けられるデータリポジトリ106は、1つまたは複数のパブリッククラウドコンテンツアイテム124を記憶する。パブリッククラウドコンテンツアイテム124は、パブリッククラウドサービス102のテナントと関連付けられるコンテンツアイテムである。
【0044】
1つまたは複数の実施形態では、パブリッククラウドマネージャ104は、パブリッククラウドサービス102を管理するように構成されたハードウェアおよび/またはソフトウェアを指す。パブリッククラウドマネージャ104は、1つまたは複数のパブリッククラウドユーザアカウント112a~b、事前承認リスト120、およびバインドリスト122を管理する。
【0045】
1つまたは複数の実施形態では、パブリッククラウドユーザアカウント(パブリッククラウドユーザアカウント112a~bのいずれかなど)は、パブリッククラウドサービス102のサービスを要求するためにユーザがログインするユーザアカウントである。各パブリッククラウドユーザアカウント(本明細書においては「パブリッククラウドアカウント」としても参照される)は、一意の識別子(ユーザ名など)と関連付けられる。ユーザは、ユーザ名および鍵を入力して、ユーザのパブリッククラウドユーザアカウントにログインすることができる。
【0046】
各パブリッククラウドユーザアカウントは、1つまたは複数のパブリッククラウドコンテンツアイテム識別子(ID)、1つまたは複数のエクスポートパーソナルクラウドコンテンツアイテムID、および1つまたは複数の共有コンテンツアイテムIDと関連付けることができる。図示のように、パブリッククラウドアカウント112aは、パブリッククラウドコンテンツアイテムID114a、エクスポートパーソナルクラウドコンテンツアイテムID116a、および共有コンテンツアイテムID118aと関連付けられる。パブリッククラウドアカウント112bは、パブリッククラウドコンテンツアイテムID114b、エクスポートパーソナルクラウドコンテンツアイテムID116b、および共有コンテンツアイテムID118bと関連付けられる。
【0047】
特定のパブリッククラウドユーザアカウントと関連付けられるコンテンツアイテムIDは、特定のパブリッククラウドユーザアカウントにとってアクセス可能であるコンテンツアイテムを識別する。一例として、パブリッククラウドアカウント112aにログインしたユーザは、パブリッククラウドコンテンツアイテムID114a、エクスポートパーソナルクラウドコンテンツアイテムID116a、および/または共有コンテンツアイテムID118aによって識別される任意のコンテンツアイテム(複数可)にアクセスすることができる。
【0048】
特定のパブリッククラウドユーザアカウントと関連付けられるパブリッククラウドコンテンツアイテムIDは、(a)パブリッククラウドサービス102と関連付けられるデータリポジトリ106に記憶されており、(b)特定のパブリッククラウドユーザアカウントによって所有および/または管理されているパブリッククラウドコンテンツアイテム124を識別する。例として、Maryは写真をパブリッククラウドサービスにアップロードすることができる。パブリッククラウドサービスに記憶されている写真は、パブリッククラウドコンテンツアイテムID、ID#PUB123と関連付けることができる。Maryのパブリッククラウドユーザアカウントは、ID#PUB123との関連付けを示すように更新することができる。
【0049】
特定のパブリッククラウドユーザアカウントと関連付けられるエクスポートクラウドコンテンツアイテムIDは、(a)パーソナルクラウドデバイス(パーソナルクラウドデバイス110a~cのいずれかなど)と関連付けられるデータリポジトリに記憶されており、(b)特定のパブリッククラウドユーザアカウントにエクスポートされているパーソナルクラウドコンテンツアイテムを識別する。例として、Maryはパーソナルクラウドデバイスに写真を記憶することができる。パーソナルクラウドデバイスに記憶されている写真は、パーソナルクラウドコンテンツアイテムID、ID #PER456と関連付けることができる。Maryは、写真をMary自身のパブリッククラウドユーザアカウントにエクスポートすることができる。Maryのパブリッククラウドユーザアカウントは、ID #PER456と関連付けられて記憶される。エクスポートに関するさらなる詳細は、図4を参照して以下に説明される。
【0050】
特定のパブリッククラウドユーザアカウントと関連付けられる共有コンテンツアイテムIDは、別のパブリッククラウドユーザアカウントから共有されたコンテンツアイテムを識別する。一例として、パブリッククラウドアカウント112aと関連付けられる共有コンテンツアイテムID118aは、パブリッククラウドアカウント112bから共有されたコンテンツアイテムと関連付けることができる。共有コンテンツアイテムは、パブリッククラウドサービス102と関連付けられるデータリポジトリ106に記憶されたパブリッククラウドコンテンツアイテム124であり得る。代替的に、共有コンテンツアイテムは、パーソナルクラウドデバイス(パーソナルクラウドデバイス110a~cのいずれかなど)と関連付けられるデータリポジトリに記憶されたパーソナルクラウドコンテンツアイテムであってもよい。共有に関するさらなる詳細は、図5を参照して以下に説明される。
【0051】
1つまたは複数の実施形態では、事前承認リスト120は、いずれのパブリッククラウドユーザアカウント112a~bおよびいずれのパーソナルクラウドユーザアカウント126a~bが互いとバインドすることを承認されているかを識別する。事前承認リスト120は、(a)パーソナルクラウドユーザアカウントの識別子および(b)パーソナルクラウドユーザアカウントと関連付けられるパーソナルクラウドデバイスの識別子を使用することによって、パーソナルクラウドユーザアカウントを識別することができる。事前承認リスト120は、任意のデータ構造に記憶することができ、これは、リストであってもよいが、必ずしもそうであるとは限らない。
【0052】
一例として、Johnのパーソナルクラウドデバイスは、一意の識別子ID#321と関連付けることができる。Johnのパーソナルクラウドデバイスは、2つのパーソナルクラウドユーザアカウントと関連付けられ得る。1つのアカウントは、John自身のユーザ名「JohnMe」を有し得る。別のアカウントは、Johnの父親のユーザ名「Daddy」を有し得る。
【0053】
この例を続けると、Maryのパーソナルクラウドデバイスは一意の識別子ID#654と関連付けることができる。Maryのパーソナルクラウドデバイスは、2つのパーソナルクラウドユーザアカウントと関連付けられ得る。1つのアカウントは、Mary自身のユーザ名「IAmMary」を有し得る。別のアカウントは、Maryの父親のユーザ名「Daddy」を有し得る。
【0054】
この例を続けると、John、Johnの父親、Mary、およびMaryの父親は各々、パブリッククラウドサービスを利用することができる。Johnのパブリッククラウドユーザアカウントは、ユーザ名「John.Smith」を有することができる。Johnの父親のパブリッククラウドユーザアカウントは、ユーザ名「David.Smith」を有することができる。Maryのパブリッククラウドユーザアカウントは、ユーザ名「Mary123」を有することができる。Maryの父親のパブリッククラウドユーザアカウントは、ユーザ名「Frank.Ho」を有することができる。
【0055】
この例を続けると、パブリッククラウドサービスと関連付けられる事前承認リストは、以下を示すことができる。
【0056】
【表1】
【0057】
上記の例では、事前承認リストは、パブリッククラウドアカウント「David.Smith」とパーソナルクラウドデバイスID#321のパーソナルクラウドアカウント「Daddy」とがともにバインドされることが承認されていることを示している。事前承認リストは、パブリッククラウドアカウント「Frank.Ho」とパーソナルクラウドデバイスID#654のパーソナルクラウドアカウント「Daddy」とがともにバインドされることが承認されていることをさらに示している。
【0058】
1つまたは複数の実施形態では、バインドリスト122が、いずれのパブリッククラウドユーザアカウント112a~bおよびいずれのパーソナルクラウドユーザアカウント126a~bがともにバインドされるかを識別する。バインドリスト122は、(a)パーソナルクラウドユーザアカウントの識別子および(b)パーソナルクラウドユーザアカウントと関連付けられるパーソナルクラウドデバイスの識別子を使用することによって、パーソナルクラウドユーザアカウントを識別することができる。バインドリスト122は、任意のデータ構造に記憶することができ、これは、リストであってもよいが、必ずしもそうであるとは限らない。
【0059】
1つまたは複数の実施形態では、事前承認リスト120は、パーソナルクラウドデバイスの管理者によって提供されるバインドの承認に基づいて生成および/または更新される。対照的に、バインドリスト122は、ユーザのパーソナルクラウドアカウントとユーザのパブリッククラウドアカウントとをバインドすることを所望するユーザから送信されるバインドの要求に基づいて生成および/または更新される。事前承認リスト120に示されるようにバインドが承認された場合、2つのアカウント間のバインドが生成され、バインドリスト122に記憶される。
【0060】
1つまたは複数の実施形態では、パブリッククラウドマネージャ104は、パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとをバインドし、コンテンツアイテムをエクスポートし、および/またはコンテンツアイテムを共有するための、本明細書に記載の工程を実行するように構成される。パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド、コンテンツアイテムのエクスポート、および/またはコンテンツアイテムの共有の工程の例を、図2図5を参照して以下に説明する。
【0061】
図1Cは、1つまたは複数の実施形態による、パーソナルクラウドデバイスを示す。図1A図1Cの同じ番号のラベルは、同様の構成要素を指す。
【0062】
1つまたは複数の実施形態では、パーソナルクラウドデバイス110は、1つまたは複数のパーソナルクラウドコンテンツアイテム134を記憶するデータリポジトリと関連付けられる。パーソナルクラウドデバイス110および関連するデータリポジトリは、同じコンピューティングシステム上で実装または実行され得る。代替的にまたは付加的に、パーソナルクラウドデバイス110および関連するデータリポジトリは、別個のコンピューティングシステム上で実装または実行されてもよい。
【0063】
1つまたは複数の実施形態では、パーソナルクラウドデバイス110は、1つまたは複数のパーソナルクラウドユーザアカウント126a~b、事前承認リスト130、およびバインドリスト132を管理する。
【0064】
1つまたは複数の実施形態では、パーソナルクラウドユーザアカウント(パーソナルクラウドユーザアカウント126a~bのいずれかなど)は、パーソナルクラウドデバイス110のサービスを要求するためにユーザがログインするユーザアカウントである。パーソナルクラウドデバイス110の各パーソナルクラウドユーザアカウント(本明細書においては「パーソナルクラウドアカウント」としても参照される)は、パーソナルクラウドデバイス110に対して一意である識別子(ユーザ名など)と関連付けられる。ただし、異なるパーソナルクラウドデバイスのパーソナルクラウドユーザアカウントが、同じ識別子を有してもよい。ユーザは、ユーザ名および鍵を入力して、ユーザのパーソナルクラウドユーザアカウントにログインすることができる。
【0065】
1つまたは複数の実施形態では、パーソナルクラウドデバイス110のパーソナルクラウドユーザアカウント126a~bは、1人または複数の管理者(特別な特権を有するパーソナルデバイス110のユーザ)によって維持される。一実施形態では、管理者は、例えば、各パーソナルクラウドユーザアカウントのユーザ名および/または鍵を提供することを含め、各パーソナルクラウドユーザアカウントを設定する。別の実施形態では、ユーザが、パーソナルクラウドユーザアカウントを要求することができる。管理者は、要求を承認するか否かを判定することができる。承認されると、ユーザは、ユーザのパーソナルクラウドユーザアカウントのユーザ名および/または鍵を設定することを許可され得る。パーソナルクラウドデバイス110のパーソナルクラウドユーザアカウント126a~bと関連付けられる情報(ユーザ名、識別子、鍵、プロファイルなど)は、パーソナルクラウドデバイス110と関連付けられるデータリポジトリに記憶される。
【0066】
各パーソナルクラウドユーザアカウントは、1つまたは複数のパーソナルクラウドコンテンツアイテムIDと関連付けられる。図示のように、パーソナルクラウドアカウント126aは、パーソナルクラウドコンテンツアイテムID128aと関連付けられる。パーソナルクラウドアカウント126bは、パーソナルクラウドコンテンツアイテムID128bと関連付けられる。
【0067】
特定のパーソナルクラウドユーザアカウントと関連付けられるパーソナルクラウドコンテンツアイテムIDは、(a)パーソナルクラウドデバイス110と関連付けられるデータリポジトリに記憶されており、(b)特定のパーソナルクラウドユーザアカウントによって所有され、管理され、および/または他の様態でアクセス可能であるパーソナルクラウドコンテンツアイテム134を識別する。例として、Maryはパーソナルクラウドデバイスに写真を記憶することができる。パーソナルクラウドデバイスに記憶されている写真は、パーソナルクラウドコンテンツアイテムID、ID #PER456と関連付けることができる。Maryのパーソナルクラウドユーザアカウントは、ID#PER456との関連付けを示すように更新することができる。
【0068】
1つまたは複数の実施形態では、事前承認リスト130は、図1Bを参照して上記で説明した事前承認リスト120と同様である。事前承認リスト130は、パーソナルクラウドデバイス110と関連付けられるデータリポジトリに記憶され、一方、事前承認リスト120は、パブリッククラウドサービス102と関連付けられるデータリポジトリに記憶される。パーソナルクラウドデバイス110は、検証を実行するために(事前承認リスト120ではなく)事前承認リスト130にアクセスすることができる。パブリッククラウドサービス102は、検証を実行するために(事前承認リスト130ではなく)事前承認リスト120にアクセスすることができる。バインドは、バインドの承認が双方(パーソナルクラウドデバイス110およびパブリッククラウドサービス102)によって検証された場合にのみ生成される。
【0069】
1つまたは複数の実施形態では、バインドリスト132は、図1Bを参照して上記で説明したバインドリスト122と同様である。バインドリスト132は、パーソナルクラウドデバイス110と関連付けられるデータリポジトリに記憶され、一方、バインドリスト122は、パブリッククラウドサービス102と関連付けられるデータリポジトリに記憶される。パーソナルクラウドデバイス110は、検証を実行するために(バインドリスト122ではなく)バインドリスト132にアクセスすることができる。パブリッククラウドサービス102は、検証を実行するために(バインドリスト132ではなく)バインドリスト122にアクセスすることができる。パブリッククラウドアカウントおよびパーソナルクラウドアカウントと関連付けられる特定の動作(エクスポートまたは共有など)は、2つのアカウントのバインドが双方(パーソナルクラウドデバイス110およびパブリッククラウドサービス102)によって検証された場合にのみ実行される。
【0070】
一実施形態では、パブリッククラウドマネージャ104、パーソナルクラウドデバイス110、および/またはクライアントデバイスは、1つまたは複数のデジタルデバイス上に実装される。「デジタルデバイス」という用語は、一般に、プロセッサを含む任意のハードウェアデバイスを指す。デジタルデバイスは、アプリケーションまたは仮想マシンを実行する物理デバイスを指す場合がある。デジタルデバイスの例は、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシサーバ、プロキシサーバ、汎用マシン、特定の機能のためのハードウェアデバイス、メインフレーム、テレビ、コンテンツレシーバ、セットトップボックス、プリンタ、携帯電話、スマートフォン、および/または個人情報端末(PDA)を含む。
【0071】
3.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの手動バインド
図2は、1つまたは複数の実施形態による、パブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントを手動でバインドするための工程の例示的なセットを示す。図2に示されている1つまたは複数の工程は、ともに変更、再構成、または省略されてもよい。したがって、図2に示される工程の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
【0072】
クライアントデバイス208は、図1のクライアントデバイス108a~cのいずれかと同様である。パブリッククラウドサービス202は、図1の同様のパブリッククラウドサービス102である。パーソナルクラウドデバイス210は、図1のパーソナルクラウドデバイス110a~cのいずれかと同様である。
【0073】
1つまたは複数の実施形態では、クライアントデバイス208は、パーソナルクラウドデバイス210との安全な接続を生成する(工程242)。パーソナルクラウドデバイス210に応じて、安全な接続を作成することは、クライアントデバイス208のユーザおよび/またはパーソナルクラウドデバイス210の管理者にとって複雑および/または面倒なプロセスを含み得る。一例として、パーソナルクラウドデバイス210の管理者は、ファイアウォール設定を変更して、ユーザのクライアントデバイス208がパーソナルクラウドデバイス210にアクセスすることを可能にする必要がある場合がある。さらに、ユーザは、パーソナルクラウドデバイス210と関連付けられるファイアウォールを克服するために、クライアントデバイス208に特定の構成を提供する必要がある場合がある。別の例として、パーソナルクラウドデバイス210の管理者は、ユーザのクライアントデバイス208がパーソナルクラウドデバイス210にアクセスするための特定のポートを指定する必要がある場合がある。さらに、ユーザは、パーソナルクラウドデバイス210の特定のポートと通信するようにクライアントデバイス208を構成する必要がある場合がある。
【0074】
1つまたは複数の実施形態では、クライアントデバイス208は、パーソナルクラウドデバイス210と関連付けられるパーソナルクラウドアカウントにログインする(工程244)。クライアントデバイス208は、パーソナルクラウドアカウントのユーザ名(または他の識別子)を要求するプロンプトをユーザインターフェース上に提示する。クライアントデバイス208はまた、パーソナルクラウドアカウントにログインするための鍵も要求することができる。クライアントデバイス208は、ユーザインターフェースを介してユーザ名および鍵を受信する。クライアントデバイス208は、この情報をパーソナルクラウドデバイス210に送信する。パーソナルクラウドデバイス210は、受信した情報を、パーソナルクラウドデバイス210と関連付けられるデータリポジトリに記憶されたパーソナルクラウドユーザアカウント情報と照合して検証する。パーソナルクラウドデバイス210が、パーソナルクラウドアカウントに対して提供された鍵が正しいことを判定した場合、パーソナルクラウドデバイス210は、ユーザがパーソナルクラウドアカウントにログインすることを可能にする。クライアントデバイス208は、パーソナルクラウドアカウントがログインされたことの確認を受信することができる。
【0075】
1つまたは複数の実施形態では、クライアントデバイス208は、特定のパブリッククラウドアカウントとバインドする要求を送信する(工程246)。クライアントデバイスは、パーソナルクラウドアカウントとバインドされる、パブリッククラウドサービス202と関連付けられるパブリッククラウドアカウントのユーザ名(または他の識別子)を示すユーザ入力を受信する。ユーザ入力に応答して、クライアントデバイス208は、パーソナルクラウドアカウントをパブリッククラウドアカウントとバインドする要求を送信する。要求は、パーソナルクラウドデバイス210に送信される。
【0076】
1つまたは複数の実施形態では、クライアントデバイス208は、パブリッククラウドアカウントの鍵を送信する(工程248)。クライアントデバイス208はまた、パブリッククラウドアカウントにログインするための鍵を示すユーザ入力を受信する。クライアントデバイス208は、パブリッククラウドアカウントの鍵をパーソナルクラウドデバイス210に送信する。
【0077】
1つまたは複数の実施形態では、パーソナルクラウドデバイス210は、パーソナルクラウドアカウントとパブリッククラウドアカウントとをバインドする要求を送信する(工程250)。要求は、パブリッククラウドアカウントの鍵を含む。
【0078】
1つまたは複数の実施形態では、パブリッククラウドサービス202は、パブリッククラウドアカウントの鍵を検証する(工程252)。鍵が正しいことの検証に応答して、パブリッククラウドサービス202は、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを記憶する(工程254)。パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを示す情報は、パブリッククラウドサービス202と関連付けられるデータリポジトリに記憶される。バインドを示す情報は、図1Bのバインドリスト122などのバインドリストに記憶され得る。記憶される情報は、(a)パーソナルクラウドアカウントのユーザ名、(b)パーソナルクラウドデバイス210の識別子、および(c)パブリッククラウドアカウントのユーザ名を含むことができる。
【0079】
1つまたは複数の実施形態では、パブリッククラウドサービス202は、バインドの確認をパーソナルクラウドデバイス210に送信する(工程210)。確認の受信に応答して、パーソナルクラウドデバイス210は、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを記憶する(工程258)。バインドは、パーソナルクラウドデバイス210と関連付けられるデータリポジトリに記憶される。パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを示す情報は、図1Cのバインドリスト132などのバインドリストに記憶され得る。記憶される情報は、(a)パーソナルクラウドアカウントのユーザ名、および(b)パブリッククラウドアカウントのユーザ名を含むことができる。バインドを示す情報がパーソナルクラウドデバイス210とパブリッククラウドサービス202の両方に記憶されると、パブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドが生成される。
【0080】
図2の工程に基づいて、事前承認リストを使用せずに、パブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドが生成される。クライアントデバイス208のユーザは、(a)パーソナルクラウドデバイス210と接続するようにクライアントデバイス208を構成し、(b)パーソナルクラウドアカウントのユーザ名および鍵を入力し、(c)パブリッククラウドアカウントのユーザ名および鍵を入力する必要がある。
【0081】
4.事前承認に基づくパブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとのバインド
図3は、1つまたは複数の実施形態による、事前承認に基づいてパブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントをバインドするための工程の例示的なセットを示す。図3に示されている1つまたは複数の工程は、ともに変更、再構成、または省略されてもよい。したがって、図3に示される工程の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
【0082】
クライアントデバイス308は、図1のクライアントデバイス108a~cのいずれかと同様である。パブリッククラウドサービス302は、図1の同様のパブリッククラウドサービス102である。パーソナルクラウドデバイス310は、図1のパーソナルクラウドデバイス110a~cのいずれかと同様である。
【0083】
図3の工程を実行する前に、事前承認リストが生成される。パーソナルクラウドデバイス310の管理者は、パーソナルクラウドデバイス310と関連付けられるインターフェースを使用して事前承認リストを入力することができる。管理者は、パーソナルクラウドデバイス310にログインする。管理者は、パーソナルクラウドアカウントが特定のユーザ向けに作成されることを可能にする情報を入力する。さらに、管理者は、パーソナルクラウドアカウントと特定のパブリッククラウドアカウントとの間にバインドが生成されることを可能にする情報を入力する。管理者は、パブリッククラウドアカウントと関連付けられるユーザ名(または他の識別子)によってパブリッククラウドアカウントを識別することができる。パーソナルクラウドデバイス310は、事前承認リストのコピーを、パーソナルクラウドデバイス310と関連付けられるデータリポジトリに記憶する。さらに、パーソナルクラウドデバイス310は、事前承認リストをパブリッククラウドサービス302に送信する。パブリッククラウドサービス302は、事前承認リストの別個のコピーを、パブリッククラウドサービス302と関連付けられるデータリポジトリに記憶する。任意選択的に、パブリッククラウドサービス302は、複数の異なるパーソナルクラウドデバイスの事前承認リストに示される情報を、パブリッククラウドサービス302によって維持される1つの事前承認リストに統合することができる。任意選択的に、パーソナルクラウドデバイス310は、ユーザのパーソナルクラウドアカウントおよびパブリッククラウドアカウントがバインドについて事前承認されていることを通知するために、特定のユーザに通知(電子メールなど)を送信することができる。
【0084】
1つまたは複数の実施形態では、クライアントデバイス308は、パブリッククラウドサービス302のパブリッククラウドアカウントにログインする(工程342)。クライアントデバイス308は、パブリッククラウドアカウントのユーザ名(または他の識別子)を要求するプロンプトをユーザインターフェース上に提示する。クライアントデバイス308はまた、パブリッククラウドアカウントにログインするための鍵も要求することができる。ユーザインターフェースは、例えば、パブリッククラウドサービス302にアクセスするためのウェブインターフェースであり得る。クライアントデバイス308は、ユーザインターフェースを介してユーザ名および鍵を受信する。クライアントデバイス308は、この情報をパブリッククラウドサービス302に送信する。パブリッククラウドサービス302は、この情報を検証し、ユーザがパブリッククラウドアカウントにログインすることを可能にする。クライアントデバイス308は、パブリッククラウドアカウントがログインされたことの確認を受信することができる。
【0085】
1つまたは複数の実施形態では、パブリッククラウドサービス302は、パブリッククラウドアカウントが特定のパーソナルクラウドアカウントとバインドすることを事前承認されていることを判定する(工程344)。パブリッククラウドサービス302は、パブリッククラウドサービス302と関連付けられるデータリポジトリから事前承認リストを取得する。事前承認リストは、例えば、図1Bの事前承認リスト120であり得る。パブリッククラウドサービス302は、パブリッククラウドアカウントのユーザ名を使用して事前承認リストに対して検索を実行する。パブリッククラウドサービス302は、パブリッククラウドアカウントのユーザ名と関連付けられる、事前承認リスト内のエントリを見つける。事前承認リストのエントリは、(a)パブリッククラウドアカウントのユーザ名、(b)パーソナルクラウドアカウントのユーザ名(または他の識別子)、および(c)パーソナルクラウドデバイス310の識別子を含む。上記の情報に基づいて、パブリッククラウドサービス302は、パブリッククラウドアカウントが、パーソナルクラウドデバイス310と関連付けられるパーソナルクラウドアカウントとバインドすることを事前承認されていることを判定する。
【0086】
1つまたは複数の実施形態では、パブリッククラウドサービス302は、一時的な認証情報を生成する(工程346)。パブリッククラウドサービス302は、例えば、乱数発生器および/または疑似乱数発生器を使用することなど、任意の手段によって、一時的な認証情報を生成することができる。パブリッククラウドサービス302は、パブリッククラウドサービス302と関連付けられるデータリポジトリに一時的な認証情報を記憶する。
【0087】
1つまたは複数の実施形態では、パブリッククラウドサービス302は、パーソナルクラウドアカウント識別子および一時的な認証情報をクライアントデバイス308に送信する(工程348)。パーソナルクラウドアカウント識別子は、(a)パーソナルクラウドアカウントのユーザ名、および(b)パーソナルクラウドデバイス310の識別子を含む。
【0088】
1つまたは複数の実施形態では、クライアントデバイス308は、ユーザインターフェース上で、パーソナルクラウドアカウントにログインするための鍵の要求を提示する(工程350)。これは、パーソナルクラウドアカウントとパブリッククラウドアカウントとをバインドする過程で実行される任意選択の工程である。クライアントデバイス308は、ユーザインターフェース上にパーソナルクラウドアカウントのユーザ名を提示することができる。クライアントデバイス308は、パーソナルクラウドアカウントにログインするための鍵を受信するように構成されたテキストボックスを提示することができる。クライアントデバイス308は、ユーザインターフェースを介したユーザ入力として鍵を受信する。
【0089】
一実施形態では、クライアントデバイス308のユーザインターフェースは、パーソナルクラウドアカウントにログインするために、ユーザ自身によって選択および/または選出された新しい鍵を要求する。ユーザは、パブリッククラウドアカウントにログインすることによってすでに認証されているため、クライアントデバイス308は、ユーザに、ユーザのパーソナルクラウドアカウントへの鍵を作成する能力を提供する。その後、ユーザは同じ鍵を使用してユーザのパーソナルクラウドアカウントにログインすることができる。したがって、ユーザは、クライアントデバイス308との単一の相互作用プロセスにおいて、2つの動作、すなわち、(a)パーソナルクラウドアカウントのパスワードの作成、および(b)パーソナルクラウドアカウントのパブリッククラウドアカウントへのバインドを実行することができる。
【0090】
一実施形態では、クライアントデバイス308のユーザインターフェースは、パーソナルクラウドアカウントにログインするために既存の鍵を要求する。例として、既存の鍵は、パーソナルクラウドデバイスの管理者によって以前に設定されている場合がある。既存の鍵は、電子メール、テキストメッセージング、または電話による口頭などの任意の手段を使用して、管理者からユーザに伝達することができる。別の例として、既存の鍵は、ユーザ自身によって以前に設定されている場合がある。ユーザは、パーソナルクラウドデバイスへの直接的なインターフェースを介して、ユーザのパーソナルクラウドアカウントに対する鍵を設定することができる。既存の鍵は、パーソナルクラウドデバイス310がユーザを認証するための追加の情報片(一時的な認証情報に加えて)として使用することができる。
【0091】
1つまたは複数の実施形態では、クライアントデバイス308は、パブリッククラウドサービス302を介してパーソナルクラウドデバイス310との安全な接続を生成する(工程352)。クライアントデバイス308とパーソナルクラウドデバイス310との間の接続は、「直接接続」または「トンネル接続」であってもよい。
【0092】
一実施形態では、パブリッククラウドサービス302は、クライアントデバイス308とパーソナルクラウドデバイス310との間の直接接続の確立を容易にする。クライアントデバイス308は、パーソナルクラウドデバイス310との直接接続を確立する要求をパブリッククラウドサービス302に送信する。パブリッククラウドサービス302は、接続を確立するために使用される情報をクライアントデバイス308およびパーソナルクラウドデバイス310に送信する。
【0093】
パブリッククラウドサービス302から送信される情報は、例えば、パーソナルクラウドデバイス310と接続するようにクライアントデバイス308を構成するための構成情報を含んでもよい。構成情報は、例えば、パーソナルクラウドデバイス310のアドレス、クライアントデバイス308との通信に使用されるパーソナルクラウドデバイス310のポート、および/またはパーソナルクラウドデバイス310によって使用されるプロトコルを含んでもよい。
【0094】
さらに、パブリッククラウドサービス302から送信される情報は、例えば、認証トークンを含んでもよい。パーソナルクラウドデバイス310は、パーソナルクラウドデバイス310がパブリッククラウドサービス302から受信した認証トークンと一致する認証トークンをクライアントデバイス308が所有していることを検証することによって、クライアントデバイス308を認証することができる。したがって、認証された直接接続が、クライアントデバイス308とパーソナルクラウドデバイス310との間に確立される。
【0095】
一実施形態では、パブリッククラウドサービス302は、クライアントデバイス308とパーソナルクラウドデバイス310との間の通信をトンネリングするように機能する。パブリッククラウドサービス302は、パーソナルクラウドデバイス310との持続的な接続を維持する。(a)クライアントデバイス308とパブリッククラウドサービス302との間の直接接続、および(b)パブリッククラウドサービス302とパーソナルクラウドデバイス310との間の持続的な接続を使用して、クライアントデバイス308からパーソナルクラウドデバイス310に通信を送達することができる。
【0096】
1つまたは複数の実施形態では、クライアントデバイス308は、パブリッククラウドアカウントとパーソナルクラウドアカウントとをバインドする要求を送信する(工程354)。工程348において受信されたパーソナルクラウドデバイス310の識別子に基づいて、クライアントデバイス308は、バインドの要求の受信者としてパーソナルクラウドデバイス310を識別する。バインドの要求は、工程352を参照して前述したような、クライアントデバイス308とパーソナルクラウドデバイス310との間の直接接続またはトンネル接続を使用して送信される。バインドの要求は、工程348においてパブリッククラウドサービス302から受信されている一時的な認証情報を含む。任意選択的に、バインドの要求は、工程350においてユーザインターフェースを介して受信されている、パーソナルクラウドアカウントにログインするための鍵をさらに含む。
【0097】
1つまたは複数の実施形態では、パーソナルクラウドデバイス310は、パブリッククラウドアカウントをパーソナルクラウドアカウントとバインドするための事前承認を検証する(工程356)。
【0098】
パーソナルクラウドデバイス310は、パーソナルクラウドデバイス310と関連付けられるデータリポジトリに記憶されている事前承認リストを取得する。事前承認リストは、例えば、図1Cの事前承認リスト130であり得る。パーソナルクラウドデバイス310は、事前承認リストに対して検索を実行して、パブリッククラウドアカウントのユーザ名およびパーソナルクラウドアカウントのユーザ名と関連付けられるエントリを見つける。エントリを見つけると、パーソナルクラウドデバイス310は、パブリッククラウドアカウントが、パーソナルクラウドデバイス310と関連付けられるパーソナルクラウドアカウントとバインドすることを事前承認されていることを検証する。
【0099】
一実施形態では、クライアントデバイス308は、工程350においてユーザのパーソナルクラウドアカウントの既存の鍵を受信している。パーソナルクラウドデバイス310は、パーソナルクラウドデバイス310と関連付けられるデータリポジトリに記憶されたパーソナルクラウドユーザアカウント情報を取得する。記憶されているパーソナルクラウドユーザアカウント情報は、ユーザ名および鍵のペアを含む。記憶されているパーソナルクラウドアカウント情報に基づいて、パーソナルクラウドデバイス310は、パーソナルクラウドアカウントの鍵を決定する。パーソナルクラウドデバイス310は、パーソナルクラウドアカウントの鍵が、クライアントデバイス308から受信された鍵(ユーザ入力として受信された)と一致するか否かを検証する。2つの鍵の間の一致に基づいて、パーソナルクラウドデバイス310は、クライアントデバイス308から受信された鍵が正しいことを検証する。
【0100】
一実施形態では、クライアントデバイス308は、工程350においてユーザのパーソナルクラウドアカウントの新しい鍵を受信している。パーソナルクラウドデバイス310は、ユーザが後で鍵を使用してパーソナルクラウドアカウントにログインすることができるように、ユーザのパーソナルクラウドアカウントと関連付けて鍵を記憶する。新しい鍵の記憶に関するさらなる説明は、工程366に関して以下に含まれている。
【0101】
1つまたは複数の実施形態では、パーソナルクラウドデバイス310は、パブリッククラウドサービス302に、(a)事前承認の検証、および(b)クライアントデバイス308から受信されている一時的な認証情報を送信する(工程358)。事前承認の検証は、パーソナルクラウドデバイス310と関連付けられる事前承認リストが、パーソナルクラウドアカウントとパブリッククラウドアカウントとが互いにバインドすることを承認されていることを示していることを示している。一時的な認証情報は、パーソナルクラウドデバイス310が、クライアントデバイス308からバインドの要求を受信したか否かを判定するために使用される。
【0102】
1つまたは複数の実施形態では、パブリッククラウドサービス302は、工程358においてパーソナルクラウドデバイス310から受信されている一時的な認証情報が、工程346においてパブリッククラウドサービス302によって生成された一時的な認証情報と一致するか否かを検証する(工程360)。一時的な認証情報間の一致を判定することに応答して、パブリッククラウドサービス302は、パブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドを記憶する(工程362)。パブリッククラウドサービスと関連付けられるデータリポジトリ上にパブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドを記憶するための例示的なステップは、工程254を参照して上記で説明されている。
【0103】
1つまたは複数の実施形態では、パブリッククラウドサービス302は、バインドの確認をパーソナルクラウドデバイス310に送信する(工程364)。確認の受信に応答して、パーソナルクラウドデバイス310は、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを記憶する(工程366)。パーソナルクラウドデバイスと関連付けられるデータリポジトリ上にパブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドを記憶するための例示的なステップは、工程210を参照して上記で説明されている。
【0104】
一実施形態では、クライアントデバイス308は、工程350においてユーザのパーソナルクラウドアカウントの新しい鍵を受信している。パーソナルクラウドデバイス310は、ユーザが後で鍵を使用してパーソナルクラウドアカウントにログインすることができるように、ユーザのパーソナルクラウドアカウントと関連付けて鍵を記憶する。一例として、パーソナルクラウドデバイス310と関連付けられるデータリポジトリは、ユーザ名および鍵のペアを記憶することができる。バインドプロセスの一部として、パーソナルクラウドデバイス310は、パーソナルクラウドアカウントの新しい鍵を受信することができる。パーソナルクラウドデバイス310は、ユーザのパーソナルクラウドアカウントのユーザ名と関連付けられる新しい鍵を記憶することができる。
【0105】
図3の工程に基づいて、パブリッククラウドアカウントとパーソナルクラウドアカウントとの間のバインドが事前承認リストに基づいて生成される。バインドを生成するための基準は、(a)パブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントが、パブリッククラウドサービスに記憶されている事前承認リストに基づいてバインドされることを承認されていることを、パブリッククラウドサービスが判定すること、および(b)パブリッククラウドユーザアカウントおよびパーソナルクラウドユーザアカウントが、パーソナルクラウドデバイスに記憶されている事前承認リストに基づいてバインドされることを承認されていることを、パーソナルクラウドデバイスが判定することを含む。
【0106】
クライアントデバイス308のユーザは、パーソナルクラウドデバイス310と接続するようにクライアントデバイス308を構成する必要はない。むしろ、パブリッククラウドサービス302は、クライアントデバイス308とパーソナルクラウドデバイス310との間の直接接続またはトンネル接続の確立を容易にする。さらに、クライアントデバイス308のユーザは、パーソナルクラウドアカウントのユーザ名を入力する必要がない。パブリッククラウドアカウントにログインした後、パブリッククラウドサービス302は、事前承認リストに対して検索を実行して、パブリッククラウドアカウントがパーソナルクラウドアカウントとバインドすることを事前承認されていることを判定する。これにより、パブリッククラウドサービス302は、ユーザがパーソナルクラウドアカウントを指定することなく、パブリッククラウドアカウントとバインドされるパーソナルクラウドアカウントを識別する。
【0107】
5.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの間のバインドに基づくコンテンツアイテムのエクスポート
図4は、1つまたは複数の実施形態による、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムをパブリッククラウドユーザアカウントにエクスポートするための工程の例示的なセットを示す。図4に示されている1つまたは複数の工程は、ともに変更、再構成、または省略されてもよい。したがって、図4に示される工程の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。図4は、コンテンツアイテムのエクスポートの例を示している。パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの間のバインドに基づいてコンテンツアイテムをエクスポートする追加および/または代替の方法を使用することができる。
【0108】
クライアントデバイス408は、図1のクライアントデバイス108a~cのいずれかと同様である。パブリッククラウドサービス402は、図1の同様のパブリッククラウドサービス102である。パーソナルクラウドデバイス410は、図1のパーソナルクラウドデバイス110a~cのいずれかと同様である。
【0109】
1つまたは複数の実施形態では、ユーザが、パーソナルクラウドデバイス410と関連付けられるパーソナルクラウドアカウントにログインする(工程442)。パーソナルクラウドデバイス410のインターフェースが、パーソナルクラウドアカウントのユーザ名(または他の識別子)を要求するプロンプトを提示する。パーソナルクラウドデバイスのインターフェースは、パーソナルクラウドアカウントにログインするための鍵も要求する。インターフェースはユーザ名および鍵を受信する。パーソナルクラウドデバイス410は、この情報を検証し、ユーザがパーソナルクラウドアカウントにログインすることを可能にする。
【0110】
代替の実施形態では、ユーザは、代替の手段を使用してパーソナルクラウドアカウントにログインすることができる。一例として、ユーザは、クライアントデバイス408を使用して、パーソナルクラウドアカウントにログインすることができる。
【0111】
1つまたは複数の実施形態では、パーソナルクラウドデバイス410は、パーソナルクラウドコンテンツアイテム(フォルダXなど)をパブリッククラウドアカウントにエクスポートする要求を受信する(工程444)。パーソナルクラウドデバイス410のインターフェースは、フォルダXをエクスポートする要求を示すユーザ入力を受信する。
【0112】
代替の実施形態では、ユーザは、代替的な手段を使用してコンテンツアイテムをエクスポートする要求を送信することができる。一例として、ユーザは、クライアントデバイス408を使用して、パーソナルクラウドコンテンツアイテムをエクスポートする要求を入力および送信することができる。
【0113】
1つまたは複数の実施形態では、パーソナルクラウドデバイス410は、パーソナルクラウドアカウントと任意のパブリッククラウドアカウントとの間とバインドがあるか否かを判定する(工程446)。パーソナルクラウドデバイス410は、パーソナルクラウドデバイス410と関連付けられるデータリポジトリからバインドリストを取得する。バインドリストは、例えば、図1Cのバインドリスト132であり得る。パーソナルクラウドデバイス410は、パーソナルクラウドアカウントのユーザ名を使用して、バインドリストに対して検索を実行する。パーソナルクラウドデバイス410は、パーソナルクラウドアカウントのユーザ名と関連付けられる、バインドリスト内のエントリを見つける。バインドリストのエントリは、(a)パーソナルクラウドアカウントのユーザ名、および(b)パブリッククラウドアカウントのユーザ名を含む。上記の情報に基づいて、パーソナルクラウドデバイス410は、パーソナルクラウドアカウントがパブリッククラウドアカウントとバインドされていることを判定する。
【0114】
1つまたは複数の実施形態では、パーソナルクラウドデバイス410は、フォルダXをパブリッククラウドアカウントにエクスポートする要求を送信する(工程448)。要求は、パブリッククラウドサービス402に送信される。要求は、パーソナルクラウドアカウントのユーザ名およびパブリッククラウドアカウントのユーザ名を含む。
【0115】
1つまたは複数の実施形態では、パブリッククラウドサービス402は、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを検証する(工程450)。パブリッククラウドサービス402は、パブリッククラウドサービス402と関連付けられるデータリポジトリからバインドリストを取得する。バインドリストは、例えば、図1Bのバインドリスト122であり得る。パブリッククラウドサービス402は、バインドリストに対して検索を実行する。パブリッククラウドサービス402は、(a)パーソナルクラウドアカウントのユーザ名、および(b)パブリッククラウドアカウントのユーザ名を含む、バインドリスト内のエントリを見つける。パブリッククラウドサービス402は、パーソナルクラウドアカウントがパブリッククラウドアカウントとバインドされていることを検証する。
【0116】
1つまたは複数の実施形態では、パブリッククラウドサービス402は、フォルダXをエクスポートされるコンテンツアイテムとして分類する(工程452)。パブリッククラウドサービス402は、パブリッククラウドアカウントとフォルダXのコンテンツアイテムIDとの間の関連付けを記憶する。フォルダXのコンテンツアイテムIDは、パブリッククラウドアカウントと関連付けられる「エクスポートコンテンツアイテムID」として記憶され得る。パブリッククラウドサービス402は、フォルダXの記憶場所へのポインタ(または他の基準)を記憶することができ、記憶場所は、パーソナルクラウドデバイス410と関連付けられるデータリポジトリ内にある。したがって、ユーザがパブリッククラウドアカウントを使用してフォルダXへのアクセスを要求した場合、パブリッククラウドサービス402は、ポインタによって示される記憶場所に基づいてフォルダXにアクセスすることができる。パブリッククラウドサービス402は、パブリッククラウドサービス402と関連付けられるデータリポジトリ上にフォルダX(およびその内容)の複製コピーを作成することができるが、必ずしもそうする必要はない。
【0117】
1つまたは複数の実施形態では、クライアントデバイス408は、パブリッククラウドアカウントのエクスポートされるコンテンツアイテムの要求を送信する(工程454)。ユーザは、クライアントデバイス408を使用してパブリッククラウドアカウントにログインする。ユーザはさらに、パブリッククラウドアカウントのエクスポートされるコンテンツアイテムの要求を送信する。エクスポートされるコンテンツアイテムの要求をユーザから受信することに応答して、クライアントデバイス408は、エクスポートされるコンテンツアイテムの要求をパブリッククラウドサービス402に送信する。
【0118】
1つまたは複数の実施形態では、パブリッククラウドサービス402は、フォルダXを含む、エクスポートされるコンテンツアイテムを識別する情報をクライアントデバイス408に送信する(工程456)。パブリッククラウドサービス402は、エクスポートされるコンテンツアイテムの名前、エクスポートされるコンテンツアイテムのタイプ(例えば、フォルダまたはファイル、拡張子タイプなど)、エクスポートされるコンテンツアイテムのサイズ、エクスポートされるコンテンツアイテムのセキュリティレベル(読み取り専用、書き込み許可、共有許可など)、および/または他の情報を送信することができる。
【0119】
1つまたは複数の実施形態では、クライアントデバイス408は、フォルダXを含むエクスポートされるコンテンツアイテムをユーザインターフェース上に表示する(工程458)。クライアントデバイス408は、エクスポートされるコンテンツアイテムの名前、エクスポートされるコンテンツアイテムのタイプ、エクスポートされるコンテンツアイテムのサイズ、および/またはエクスポートされるコンテンツアイテムのセキュリティレベルなどの、パブリッククラウドサービス402から受信される情報を表示することができる。
【0120】
エクスポートされるコンテンツアイテムと関連付けられる各アイコンは、エクスポートされるコンテンツアイテムにハイパーリンクすることができる。クライアントデバイス408のユーザがアイコンをクリックすると、クライアントデバイス408は、エクスポートされるコンテンツアイテムを開くおよび/またはダウンロードする要求をパブリッククラウドサービス402に送信する。パブリッククラウドサービス402は、エクスポートされるコンテンツアイテムへのポインタを取得する。パブリッククラウドサービス402は、ポインタによって示される記憶場所からエクスポートされるコンテンツアイテムを取得し、記憶場所は、パーソナルクラウドデバイス410と関連付けられるデータリポジトリ内にある。
【0121】
図4の工程に基づいて、パーソナルクラウドアカウントと関連付けられるパーソナルクラウドコンテンツアイテムが、パーソナルクラウドデバイス410とパブリッククラウドサービス402の両方によるバインドの検証後にのみ、パブリッククラウドアカウントにエクスポートされる。パーソナルクラウドデバイス410は、パーソナルクラウドデバイス410と関連付けられるデータリポジトリに記憶されたバインドリストに基づいて、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを検証する。パブリッククラウドサービス402は、パブリッククラウドサービス402と関連付けられるデータリポジトリに記憶されたバインドリストに基づいて、パーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインドを検証する。したがって、パブリッククラウドアカウントとパーソナルクラウドアカウントの間のバインドは、パーソナルクラウドユーザアカウントに関連付けて記憶されているコンテンツアイテムをパブリッククラウドユーザアカウントにエクスポートするための基準である。パーソナルクラウドコンテンツアイテムがパブリッククラウドアカウントにエクスポートされた後、ユーザは、パーソナルクラウドアカウントにログインせずに、パブリッククラウドアカウントを使用してパーソナルクラウドコンテンツアイテムにアクセスすることができる。
【0122】
6.パブリッククラウドユーザアカウントとパーソナルクラウドユーザアカウントとの間のバインドに基づくコンテンツアイテムの共有
図5は、1つまたは複数の実施形態による、2つのアカウント間のバインドに基づいて、パーソナルクラウドユーザアカウントと関連付けられるコンテンツアイテムを、パブリッククラウドユーザアカウントを使用して共有するための工程の例示的なセットを示す。図5に示されている1つまたは複数の工程は、ともに変更、再構成、または省略されてもよい。したがって、図5に示される工程の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
【0123】
クライアントデバイス508は、図1のクライアントデバイス108a~cのいずれかと同様である。パブリッククラウドサービス502は、図1の同様のパブリッククラウドサービス102である。パーソナルクラウドデバイス510は、図1のパーソナルクラウドデバイス110a~cのいずれかと同様である。
【0124】
1つまたは複数の実施形態では、クライアントデバイス508は、パーソナルクラウドデバイス510と関連付けられるパーソナルクラウドアカウントにログインする(工程542)。クライアントデバイスからパーソナルクラウドアカウントにログインするための例示的なステップは、図2の工程244を参照して上記で説明されている。
【0125】
1つまたは複数の実施形態では、クライアントデバイス508は、パーソナルクラウドコンテンツアイテム(ファイルYなど)を共有する要求を、パブリッククラウドサービス502と関連付けられる受信者パブリッククラウドアカウントに送信する(工程544)。クライアントデバイス508は、ファイルYを共有する要求を示すユーザ入力を受信する。ユーザ入力は、ファイルYを特定のパブリッククラウドアカウント(本明細書においては「受信者パブリッククラウドアカウント」として参照される)と共有することを要求する。ユーザ入力の受信に応答して、クライアントデバイス508は、ファイルYを共有する要求をパーソナルクラウドデバイス510に送信する。
【0126】
代替の実施形態では、ユーザは、代替的な手段を使用してコンテンツアイテムを共有する要求を送信することができる。一例として、ユーザは、(クライアントデバイス508ではなく)パーソナルクラウドデバイスのインターフェースを使用して、パーソナルクラウドコンテンツアイテムを共有する要求を入力および送信することができる。
【0127】
1つまたは複数の実施形態では、パーソナルクラウドデバイス510は、パーソナルクラウドアカウントと任意のパブリッククラウドアカウントとの間とバインドがあるか否かを判定する(工程546)。バインドがあるか否かを判定するための例示的なステップは、図4の工程446を参照して上記で説明されている。パーソナルクラウドデバイスと関連付けられるデータリポジトリに記憶されたバインドリストに基づいて、パーソナルクラウドデバイス510は、パーソナルクラウドアカウントが特定のパブリッククラウドアカウントとバインドされていることを判定する。
【0128】
1つまたは複数の実施形態では、パーソナルクラウドデバイス510は、ファイルYを共有する要求を送信する(工程548)。共有の要求は、特定のパブリッククラウドアカウントを使用して、受信者パブリッククラウドアカウントとファイルYを共有することを指定する。要求は、パブリッククラウドサービス502に送信される。
【0129】
1つまたは複数の実施形態では、パブリッククラウドサービス502は、ファイルYが特定のパブリッククラウドアカウントにエクスポートされているか否かを判定する(工程550)。パブリッククラウドサービス502は、特定のパブリッククラウドアカウントを使用してファイルYを共有する要求を受信する。パブリッククラウドサービス502は、特定のパブリッククラウドアカウントと関連付けて記憶されたエクスポートコンテンツアイテムIDを取得する。パブリッククラウドサービス502は、ファイルYのコンテンツアイテムIDが、特定のパブリッククラウドアカウントと関連付けられるエクスポートコンテンツアイテムIDの1つであることを判定する。付加的または代替的に、パブリッククラウドサービス502は、ファイルYが別のコンテンツアイテム(フォルダXなど)内にあること、および、フォルダXのコンテンツアイテムIDが特定のパブリッククラウドアカウントと関連付けられるエクスポートコンテンツアイテムIDの1つであることを判定する。したがって、パブリッククラウドサービス502は、ファイルYが特定のパブリッククラウドアカウントにエクスポートされていることを判定する。
【0130】
1つまたは複数の実施形態では、パブリッククラウドサービス502は、ファイルYを受信者パブリッククラウドアカウントにとってアクセス可能にする(工程562)。パブリッククラウドサービス502は、受信者パブリッククラウドアカウントとファイルYのコンテンツアイテムIDとの間の関連付けを記憶する。ファイルYのコンテンツアイテムIDは、受信者パブリッククラウドアカウントと関連付けられる「共有コンテンツアイテムID」として記憶され得る。パブリッククラウドサービス502は、ファイルYの記憶場所へのポインタ(または他の基準)を記憶することができ、記憶場所は、パーソナルクラウドデバイス510と関連付けられるデータリポジトリ内にある。したがって、ユーザが受信者パブリッククラウドアカウントを使用してファイルYへのアクセスを要求した場合、パブリッククラウドサービス402は、ポインタによって示される記憶場所に基づいてファイルYにアクセスすることができる。パブリッククラウドサービス502は、パブリッククラウドサービス502と関連付けられるデータリポジトリ上にファイルYの複製コピーを作成することができるが、必ずしもそうする必要はない。
【0131】
パブリッククラウドサービス502は、ファイルYが特定のパブリッククラウドアカウントから共有されたことを示す通知を、受信者パブリッククラウドアカウントのユーザに提供することができる。パブリッククラウドサービス502は、ファイルYと関連付けられるパーソナルクラウドアカウントのユーザ名を受信者パブリッククラウドアカウントに提供する必要はない。
【0132】
受信者パブリッククラウドアカウントのユーザは、クライアントデバイスを使用して受信者パブリッククラウドアカウントにログインすることができる。クライアントデバイスは、受信者パブリッククラウドアカウントと共有されているコンテンツアイテムを示す情報を提示することができる。提示される情報は、ファイルYが特定のパブリッククラウドアカウントから共有されたことを示す情報を含むことができる。提示される情報は、ファイルYと関連付けられるパーソナルクラウドアカウントのユーザ名を含む必要はない。
【0133】
図5の工程に基づいて、特定のユーザのパーソナルクラウドアカウントと関連付けられるパーソナルクラウドコンテンツアイテムが、特定のユーザ(「発信元ユーザ」としても参照される)のパブリッククラウドユーザアカウントから共有される。パーソナルクラウドコンテンツアイテムは、別のユーザ(「受信者ユーザ」としても参照される)のパブリッククラウドアカウントと共有される。共有は、(a)発信元ユーザのパーソナルクラウドアカウントとパブリッククラウドアカウントとがバインドされていることを検証し、(b)パーソナルクラウドコンテンツアイテムが発信元ユーザのパブリッククラウドアカウントにエクスポートされていることを検証した後にのみ実行される。したがって、(a)発信元ユーザのパーソナルクラウドアカウントとパブリッククラウドアカウントとの間のバインド、および(b)パーソナルクラウドアカウントからパブリッククラウドアカウントへのコンテンツアイテムのエクスポートは、発信元ユーザのパブリッククラウドユーザアカウントを使用してコンテンツアイテムを共有するための基準である。パーソナルクラウドコンテンツアイテムが受信者ユーザのパブリッククラウドアカウントと共有された後、受信者ユーザは、受信者ユーザのパブリッククラウドアカウントを使用してパーソナルクラウドコンテンツアイテムにアクセスすることができる。受信者ユーザは、発信元ユーザのパーソナルクラウドアカウントを知っている必要はない。
【0134】
7.例示的な実施形態
わかりやすくするために、詳細な例を以下に説明する。以下に説明する構成要素および/または工程は、特定の実施形態に適用することができない可能性がある特定の例として理解されるべきである。したがって、以下に説明する構成要素および/または工程は、請求項のいずれかの範囲を限定するものとして解釈されるべきではない。
【0135】
一例では、ハイブリッドクラウドサービスには、(a)ハイブリッドクラウドサービスプロバイダによって実行されるパブリッククラウドサービス、および(b)様々なユーザが所有するパーソナルクラウドデバイスを含む。ハイブリッドクラウドサービスは、様々なクライアントデバイスによってアクセスされる。
【0136】
パーソナルクラウドデバイスPの管理者および/または所有者は、パーソナルクラウドデバイス上で追加のユーザ、John Smithを有効化することを所望する。管理者は、Johnの識別子bestieと関連付けられる新しいアカウントの確立に進む。管理者は、パーソナルクラウドデバイスPにログインする。管理者は、(a)ローカルユーザアカウントbestieを作成することを可能にするための、識別子john.smith@exampleemail.comと関連付けられるクラウドユーザアカウントのユーザ、および(b)グローバルアクセスおよび共有を目的として、クラウドユーザアカウントjohn.smith@exampleemail.comとバインドすることを可能にするためのローカルユーザアカウントbestieのユーザを事前承認するためのユーザ入力を入力する。
【0137】
上記の要求の結果として、(a)クラウドユーザアカウントjohn.smith@exampleemail.comとローカルユーザアカウントbestieとをバインドするための事前承認のレコードが作成され、そのレコードがパーソナルクラウドデバイスPに記憶され、(b)クラウドユーザアカウントjohn.smith@exampleemail.comと、パーソナルクラウドデバイスPと関連付けられるローカルユーザアカウントbestieとをバインドするための事前承認のレコードが作成され、そのレコードがパブリッククラウドに記憶される。
【0138】
任意選択的に、パブリッククラウド(またはパーソナルクラウドデバイス)により、通知(電子メールなど)がJohnに送信される(例えば、クラウドユーザアカウントと関連付けられる電子メールアドレスjohn.smith@exampleemail.comを使用して)。
【0139】
通知を受信すると、JohnはJohnのクライアントデバイス(スマートフォンまたはラップトップなど)のクライアントアプリケーションを使用して、Johnのクラウドユーザアカウントjohn.smith@exampleemail.comにログインする。(代替的に、Johnのクラウドユーザアカウントがまだ作成されていない場合、Johnはクラウドユーザアカウントを作成してからログインする。)
クライアントアプリケーションは、パブリッククラウドサービスに問い合わせて、Johnのクラウドユーザアカウントjohn.smith@exampleemail.comと任意のローカルユーザアカウントとの間に事前承認されたバインドがあるか否かを判定する。
【0140】
クライアントアプリケーションは、パーソナルクラウドデバイスPと関連付けられるローカルアカウントアカウントbestieが、クラウドユーザアカウントjohn.smith@exampleemail.comへのバインドを含むローカルユーザアカウントセットアップの完了を待機していることをパブリッククラウドサービスが示している情報を受信する。
【0141】
クライアントアプリケーションは、パーソナルクラウドデバイスPに接続する。パブリッククラウドサービスは、(リレーチャネルまたはピアツーピア接続のいずれかを介して)接続を容易にする。
【0142】
クライアントアプリケーションは、一時的な認証情報の保有者がクラウドユーザアカウントjohn.smith@exampleemail.comのアイデンティティを有することを検証する目的で、パブリッククラウドサービスから一時的な認証情報を要求する。
【0143】
クライアントアプリケーションは、(上記の確立された接続を介して)パーソナルクラウドデバイスPに、ローカルユーザアカウントbestieのセットアップを完了する要求を行う。クライアントアプリケーションは、クラウドユーザアカウントjohn.smith@exampleemail.comを使用し、クライアントアプリケーションのアイデンティティの証明として一時的な認証情報をパーソナルクラウドデバイスに送信するものとして自身を識別する。
【0144】
パーソナルクラウドデバイスは、パーソナルクラウドデバイス自身のレコードと照合して、ローカルユーザアカウントbestieがセットアップされ、かつクラウドユーザアカウントjohn.smith@exampleemail.comとバインドされることを確認する。パーソナルクラウドデバイスはさらに、クライアントアプリケーションから受信されている一時的な認証情報をパブリッククラウドサービスのレコードと照合してチェックして、一時的な認証情報がクラウドユーザアカウントjohn.smith@exampleemail.comによって所有されていることを検証する。
【0145】
一時的な認証情報がクラウドユーザアカウントjohn.smith@exampleemail.comによって所有されていることを検証すると、パーソナルクラウドデバイスは、(a)クライアントアプリケーションを介してJohn Smithが入力するローカルユーザアカウントbestieの新しいパスワード情報を受け入れること、および(b)パブリッククラウドサービスに最終要求を送信して、クラウドユーザアカウントjohn.smith@exampleemail.comがパーソナルクラウドデバイスPのローカルユーザアカウントbestieとバインドされていることを確認することを実施する。
【0146】
次に、パブリッククラウドおよびパーソナルクラウドデバイスPの各々が、クラウドユーザアカウントjohn.smith@exampleemail.comとパーソナルクラウドデバイスPのローカルユーザアカウントbestieとの間のバインドを示す情報を記録する。
【0147】
任意選択的に、セットアップを完了するための追加の工程を実行することができる。例えば、ローカルユーザアカウントbestieのデフォルトフォルダを、クラウドユーザアカウントjohn.smith@exampleemail.comにエクスポートすることができる。クラウドユーザアカウントjohn.smith@exampleemail.comがローカルユーザアカウントbestieのセットアップおよびバインドのプロセスを完了したことを示す最終通知が、パーソナルクラウドデバイスPの管理者に送信され得る。
【0148】
図6A図6Cは、1つまたは複数の実施形態による、クライアントデバイス600と関連付けられる例示的なユーザインターフェースを示す。
【0149】
図6Aを参照すると、クライアントデバイス600のユーザインターフェース602は、パブリッククラウドユーザアカウントskyride35にログインしているユーザに提示され得る。
【0150】
ユーザは、パブリッククラウドサービスを使用するために、パブリッククラウドアカウントskyride35にログインする。パブリッククラウドサービスは、パブリッククラウドアカウントskyride35が、特定のパーソナルクラウドデバイスを使用するために、特定のパーソナルクラウドアカウントdaddyとバインドすることを事前承認されていることを判定する。パブリッククラウドサービスは、クライアントデバイス600に、(a)パーソナルクラウドアカウントの識別子、および(b)パブリッククラウドサービスによって生成された一時的な認証情報を送信する。パブリッククラウドアカウントへのユーザのログインに基づいて、パブリッククラウドアカウントとパーソナルクラウドアカウントとのバインドは、ユーザがそれ以上関与することなく完了することができる。
【0151】
任意選択的に、クライアントデバイス600は、パーソナルクラウドアカウントの新しい鍵を要求するためのユーザインターフェース602を提示する。ユーザインターフェース602は、パブリッククラウドアカウント名604、skyride35を含む。ユーザインターフェース602はまた、パーソナルクラウドアカウント名606、daddyも含む。ユーザインターフェース602はまた、パーソナルクラウドアカウントdaddyの新しい鍵を受信するように構成されたテキストボックス608を含む。任意選択的に、クライアントデバイス600は、新しい鍵をパーソナルクラウドデバイスに送信する(以下に説明する、バインドの要求とともに)。パーソナルクラウドデバイスは、ユーザが後で同じ鍵を使用してパーソナルクラウドアカウントdaddyにログインすることができるように、パーソナルクラウドアカウントdaddyと関連付けて新しい鍵を記憶する。したがって、ユーザは、パーソナルクラウドアカウントdaddyとパブリッククラウドアカウントskyride35とのバインドプロセスを実行すると同時に、パーソナルクラウドアカウントdaddyのパスワードを作成することができる。
【0152】
(a)パーソナルクラウドアカウントの識別子および(b)一時的な認証情報を受信した後、クライアントデバイス600は、パーソナルクラウドデバイスとバインドする要求を送信する。バインドの要求は、パブリッククラウドサービスから受信されている一時的な認証情報を含む。パーソナルクラウドデバイスは、パブリッククラウドアカウントskyride35とパーソナルクラウドアカウントdaddyとがバインドについて事前承認されていることを検証する。パーソナルクラウドデバイスは、パブリッククラウドサービスに、(a)事前承認の検証、および(b)クライアントデバイス600から受信されている一時的な認証情報を送信する。
【0153】
パブリッククラウドサービスは、パーソナルクラウドデバイスから受信されている一時的な認証情報が正しいことを検証する。検証されると、パブリッククラウドサービスは、パブリッククラウドアカウントskyride35とパーソナルクラウドアカウントdaddyとの間のバインドを記憶する。パブリッククラウドサービスは、確認をパーソナルクラウドデバイスに送信する。パーソナルクラウドデバイスは、パブリッククラウドアカウントskyride35とパーソナルクラウドアカウントdaddyとの間のバインドを記憶する。したがって、パブリッククラウドサービスおよびパーソナルクラウドデバイスの各々は、パブリッククラウドアカウントskyride35とパーソナルクラウドアカウントdaddyとの間のバインドを示す情報を記憶する。
【0154】
図6Bを参照すると、クライアントデバイス600のユーザインターフェース610が、パブリッククラウドユーザアカウントskyride35と関連付けられるエクスポートファイルを示すように提示されている。
【0155】
ユーザインターフェース610は、パブリッククラウドアカウント名612、skyride35を含む。ユーザインターフェース610はまた、ファイルディレクトリに配置されたコンテンツアイテムも示す。1つのディレクトリは、「エクスポートされているが共有されていない」とラベル付けされる。別のディレクトリは「エクスポートおよび共有されている」とラベル付けされる。
【0156】
「エクスポートされているが共有されていない」の下には、パーソナルクラウドアカウントからパブリッククラウドアカウントskyride35にエクスポートされたファイルがある。エクスポートされるファイルは、納税申告ファイル、医療レポートファイル、およびホテル確認ファイルを含む。エクスポートされるファイルは、1つまたは複数のパーソナルクラウドデバイスに記憶される。エクスポートされるファイルには、パブリッククラウドアカウントskyride35を使用してアクセスすることができる。
【0157】
「エクスポートおよび共有されている」の下には、「joejoe3」および「marysmith」の2つのサブディレクトリがある。「joejoe3」の下には、パブリッククラウドユーザアカウントjoejoe3と共有されているファイルがある。共有ファイルは家族写真ファイルを含む。「marysmith」の下には、パブリッククラウドユーザアカウントmarysmithと共有されているファイルがある。共有ファイルは、旅程ファイルを含む。ファイルは、パブリッククラウドアカウントskyride35を使用して共有される。
【0158】
パブリッククラウドアカウントskyride35のユーザが、パブリッククラウドアカウントmarysmithのユーザとの旅行を計画している。パブリッククラウドアカウントskyride35のユーザは、すでに旅程ファイルをmarysmithと共有している。パブリッククラウドアカウントskyride35のユーザは、今や、ホテル確認ファイルをmarysmithと共有するように要求する。
【0159】
ユーザは、パーソナルクラウドデバイスを使用するために、ユーザのパーソナルクラウドアカウントhoneyにログインする。ユーザは、ホテル確認ファイルをmarysmithと共有する要求をパーソナルクラウドデバイスに送信する。パーソナルクラウドデバイスは、ホテル確認ファイルがhoneyと関連付けてパーソナルクラウドデバイスに記憶されていることを判定する。パーソナルクラウドデバイスは、パーソナルクラウドアカウントhoneyがパブリッククラウドアカウントskyride35とバインドされていることを判定する。パーソナルクラウドデバイスは、skyride35を使用してホテル確認ファイルをmarysmithと共有する要求を送信する。要求はパブリッククラウドサービスに送信される。
【0160】
パブリッククラウドサービスは、ホテル確認ファイルがskyride35のエクスポートファイルであることを判定する。パブリッククラウドサービスにより、ホテル確認ファイルがmarysmithにとってアクセス可能にされる。marysmithのユーザは、ホテル確認ファイルがhoneyではなくskyride35から共有されていることを確認する。
【0161】
図6Bを参照すると、クライアントデバイス600のユーザインターフェース610が、パブリッククラウドユーザアカウントskyride35と関連付けられるエクスポートファイルを示すように提示されている。ユーザインターフェース614は、パブリッククラウドアカウント名616、skyride35を含む。skyride35のユーザがホテル確認ファイルの共有を要求した後、ホテル確認ファイルがここで「エクスポートおよび共有されている」の下の「marysmith」の下に現れる。パブリッククラウドアカウント名616およびユーザインターフェース614によって提示される他の情報に基づいて、ユーザインターフェース614は、ホテル確認ファイルがパブリッククラウドアカウントskyride35を使用してmarysmithと共有されたことを示す。
【0162】
8.コンピュータネットワークおよびクラウドネットワーク
1つまたは複数の実施形態では、コンピュータネットワークは、ノードのセット間の接続を提供する。ノードは、互いにローカルおよび/またはリモートである可能性がある。ノードはリンクのセットによって接続されている。リンクの例は、同軸ケーブル、シールドなしツイストケーブル、銅ケーブル、光ファイバ、および仮想リンクを含む。
【0163】
ノードのサブセットが、コンピュータネットワークを実装する。このようなノードの例は、スイッチ、ルータ、ファイアウォール、およびネットワークアドレス変換器(NAT)を含む。ノードの別のサブセットは、コンピュータネットワークを使用する。このようなノード(「ホスト」としても参照される)は、クライアントプロセスおよび/またはサーバプロセスを実行することができる。クライアントプロセスは、コンピューティングサービス(特定のアプリケーションの実行、および/または特定の量のデータの記憶など)を要求する。サーバプロセスは、要求されたサービスを実行すること、および/または、対応するデータを返すことによって応答する。
【0164】
コンピュータネットワークは、物理リンクによって接続された物理ノードを含む物理ネットワークであり得る。物理ノードは任意のデジタルデバイスである。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、ハードウェアNATなどの機能固有のハードウェアデバイスであり得る。付加的にまたは代替的に、物理ノードは、それぞれの機能を実行する様々な仮想マシンおよび/またはアプリケーションを実行するように構成された汎用マシンであり得る。物理リンクは、2つ以上の物理ノードを接続する物理媒体である。リンクの例は、同軸ケーブル、シールドなしツイストケーブル、銅ケーブル、および光ファイバを含む。
【0165】
コンピュータネットワークは、オーバーレイネットワークであり得る。オーバーレイネットワークは、別のネットワーク(物理ネットワークなど)の上に実装された論理ネットワークである。オーバーレイネットワークの各ノードは、基盤となるネットワークのそれぞれのノードに対応する。したがって、オーバーレイネットワーク内の各ノードは、オーバーレイアドレス(オーバーレイノードにアドレス指定するため)とアンダーレイアドレス(オーバーレイノードを実装するアンダーレイノードにアドレス指定するため)の両方に関連付けられる。オーバーレイノードは、デジタルデバイスおよび/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、またはスレッドなど)であってもよい。オーバーレイノードを接続するリンクは、基礎となるネットワークを通るトンネルとして実装される。トンネルの両端にあるオーバーレイノードは、それらの間の基礎となるマルチホップパスを単一の論理リンクとして扱う。トンネリングは、カプセル化およびカプセル化解除によって実行される。
【0166】
一実施形態では、クライアントは、コンピュータネットワークに対してローカルおよび/またはリモートであり得る。クライアントは、プライベートネットワークまたはインターネットなどの他のコンピュータネットワークを介してコンピュータネットワークにアクセスすることができる。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを使用してコンピュータネットワークに要求を通信することができる。要求は、クライアントインターフェース(ウェブブラウザなど)、プログラムインターフェース、またはアプリケーションプログラミングインターフェース(API)などのインターフェースを介して通信される。
【0167】
一実施形態では、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションを含む。ネットワークリソースは、複数のクライアント間で共有される。クライアントは、互いに独立してコンピュータネットワークにコンピューティングサービスを要求する。ネットワークリソースは、オンデマンドで要求および/またはクライアントに動的に割り当てられる。各要求および/またはクライアントに割り当てられるネットワークリソースは、例えば、(a)特定のクライアントによって要求されるコンピューティングサービス、(b)特定のテナントによって要求される集約コンピューティングサービス、および/または(c)コンピュータネットワークの要求されている集約コンピューティングサービスに基づいてスケールアップまたはダウンされ得る。このようなコンピュータネットワークは、「クラウドネットワーク」として参照される場合がある。
【0168】
一実施形態では、サービスプロバイダは、1人または複数のエンドユーザにクラウドネットワークを提供する。限定ではないがサービス型ソフトウェア(SaaS)、サービス型プラットフォーム(PaaS)、およびサービス型インフラストラクチャ(IaaS)を含む、様々なサービスモデルをクラウドネットワークによって実装することができる。SaaSでは、サービスプロバイダは、ネットワークリソース上で実行されているサービスプロバイダのアプリケーションを使用する能力をエンドユーザに提供する。PaaSでは、サービスプロバイダは、カスタムアプリケーションをネットワークリソースに展開する能力をエンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダがサポートするプログラミング言語、ライブラリ、サービス、およびツールを使用して作成することができる。IaaSでは、サービスプロバイダは、ネットワークリソースによって提供される処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを提供する能力をエンドユーザに提供する。オペレーティングシステムを含む任意のアプリケーションをネットワークリソース上で展開することができる。
【0169】
一実施形態では、限定ではないが、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含む、コンピュータネットワークによって様々な展開モデルを実装することができる。プライベートクラウドでは、ネットワークリソースは、1つまたは複数のエンティティの特定のグループによる排他的使用のために提供される(本明細書において使用される「エンティティ」という用語は、企業、組織、個人、または他のエンティティを指す)。ネットワークリソースは、特定のエンティティグループの施設に対してローカルおよび/またはリモートである可能性がある。パブリッククラウドでは、クラウドリソースは、互いに独立している複数のエンティティ(「テナント」または「顧客」としても参照される)に提供される。コンピュータネットワークおよびそのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」として参照される場合がある。複数のテナントが、同じ特定のネットワークリソースを異なる時間に、および/または同時に使用する場合がある。ネットワークリソースは、テナントの施設に対してローカルおよび/またはリモートであってもよい。ハイブリッドクラウドでは、コンピュータネットワークはプライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェースにより、データおよびアプリケーションの移植性が可能になる。プライベートクラウドに記憶されているデータとパブリッククラウドに記憶されているデータとは、インターフェースを介して交換することができる。プライベートクラウドにおいて実装されているアプリケーションとパブリッククラウドにおいて実装されているアプリケーションは、相互に依存し得る。プライベートクラウドのアプリケーションからパブリッククラウドのアプリケーションへの呼び出し(およびその逆)は、インターフェースを介して実行することができる。
【0170】
一実施形態では、マルチテナントコンピュータネットワークのテナントは、互いに独立している。例えば、あるテナントの事業または運営は、別のテナントの事業または運営とは別個であり得る。異なるテナントは、コンピュータネットワークに異なるネットワーク要件を要求し得る。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、パフォーマンス要件、スループット要件、遅延要件、回復力要件、サービス品質(QoS)要件、テナント分離、および/または一貫性を含む。同じコンピュータネットワークが、異なるテナントによって要求される異なるネットワーク要件を実装する必要がある場合がある。
【0171】
1つまたは複数の実施形態では、マルチテナントコンピュータネットワークにおいて、異なるテナントのアプリケーションおよび/またはデータが互いに共有されないことを保証するために、テナント分離が実装される。様々なテナント分離アプローチを使用することができる。
【0172】
一実施形態では、各テナントは、テナントIDと関連付けられる。マルチテナントコンピュータネットワークの各ネットワークリソースは、テナントIDをタグ付けされている。テナントおよび特定のネットワークリソースが同じテナントIDと関連付けられる場合にのみ、テナントは特定のネットワークリソースへのアクセスを許可される。
【0173】
一実施形態では、各テナントは、テナントIDと関連付けられる。コンピュータネットワークによって実装される各アプリケーションは、テナントIDによってタグ付けされる。付加的または代替的に、コンピュータネットワークによって記憶された各データ構造および/またはデータセットは、テナントIDによってタグ付けされる。テナントおよび特定のアプリケーション、データ構造、および/またはデータセットが同じテナントIDと関連付けられる場合にのみ、テナントは特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許可される。
【0174】
一例として、マルチテナントコンピュータネットワークによって実装される各データベースは、テナントIDによってタグ付けされ得る。対応するテナントIDと関連付けられるテナントのみが、特定のデータベースのデータにアクセスすることができる。別の例として、マルチテナントコンピュータネットワークによって実装されるデータベース内の各エントリは、テナントIDによってタグ付けされ得る。対応するテナントIDと関連付けられるテナントのみが、特定のエントリのデータにアクセスすることができる。ただし、データベースは複数のテナントによって共有される場合がある。
【0175】
一実施形態では、サブスクリプションリストが、いずれのテナントがいずれのアプリケーションにアクセスする権限を有するかを示す。アプリケーションごとに、アプリケーションへのアクセスを許可されたテナントのテナントIDのリストが記憶される。テナントのテナントIDが特定のアプリケーションに対応するサブスクリプションリストに含まれている場合にのみ、テナントは特定のアプリケーションへのアクセスを許可される。
【0176】
一実施形態では、異なるテナントに対応するネットワークリソース(デジタルデバイス、仮想マシン、アプリケーションインスタンス、およびスレッドなど)は、マルチテナントコンピュータネットワークによって維持されるテナント固有のオーバーレイネットワークに対して分離される。例として、テナントオーバーレイネットワーク内の任意のソースデバイスからのパケットは、同じテナントオーバーレイネットワーク内の他のデバイスにのみ送信することができる。カプセル化トンネルが、テナントオーバーレイネットワーク上のソースデバイスから他のテナントオーバーレイネットワーク内のデバイスへの送信を禁止するために使用される。具体的には、ソースデバイスから受信されているパケットは、外側パケット内にカプセル化される。外側パケットは、第1のカプセル化トンネルエンドポイント(テナントオーバーレイネットワーク内のソースデバイスと通信する)から第2のカプセル化トンネルエンドポイント(テナントオーバーレイネットワーク内の宛先デバイスと通信する)に送信される。第2のカプセル化トンネルエンドポイントは、外側パケットのカプセル化を解除して、ソースデバイスによって送信された元のパケットを取得する。元のパケットは、第2のカプセル化トンネルエンドポイントから同じ特定のオーバーレイネットワーク内の宛先デバイスに送信される。
【0177】
9.ハードウェアの概説
1つの実施形態によれば、本明細書に記載の技法は、1つまたは複数の専用コンピューティングデバイスによって実装される。専用コンピューティングデバイスは、当該技法を実行するために配線接続されてもよく、または、当該技法を実行するように永続的にプログラムされている1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはネットワーク処理ユニット(NPU)などのデジタル電子デバイスを含んでもよく、または、ファームウェア、メモリ、他のストレージ、またはそれらの組み合わせにおいてプログラム命令に従って当該技法を実行するようにプログラムされた1つまたは複数の汎用ハードウェアプロセッサを含んでもよい。このような専用コンピューティングデバイスは、カスタム配線接続論理、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせて、本技法を実現することもできる。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、または本技法を実装するための配線接続および/またはプログラムロジックを組み込んだ任意の他のデバイスであってもよい。
【0178】
例えば、図7は、本発明の実施形態を実装することができるコンピュータシステム700を示すブロック図である。コンピュータシステム700は、情報を通信するためのバス702または他の通信メカニズムと、情報を処理するためにバス702と結合されたハードウェアプロセッサ704とを含む。ハードウェアプロセッサ704は、例えば、汎用マイクロプロセッサであってもよい。
【0179】
コンピュータシステム700はまた、プロセッサ704によって実行される情報および命令を記憶するためにバス702と結合された、ランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ706を含む。メインメモリ706はまた、プロセッサ704によって実行される命令の実行中に一時変数または他の中間情報を記憶するために使用され得る。そのような命令は、プロセッサ704にとってアクセス可能な非一時的な記憶媒体に記憶されると、コンピュータシステム700を、命令において指定される工程を実行するようにカスタマイズされた専用マシンにレンダリングする。
【0180】
コンピュータシステム700は、プロセッサ704のための静的情報および命令を記憶するためにバス702と結合された読み出し専用メモリ(ROM)708または他の静的記憶装置をさらに含む。磁気ディスクまたは光ディスクなどの記憶装置710が提供され、情報および命令を記憶するためにバス702と結合される。
【0181】
コンピュータシステム700は、コンピュータユーザに情報を表示するために、バス702を介して、陰極線管(CRT)などのディスプレイ712と結合され得る。英数字および他の鍵を含む入力デバイス714が、情報およびコマンド選択をプロセッサ704に通信するためにバス702と結合される。別のタイプのユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ704に伝達し、ディスプレイ712上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御手段716である。この入力デバイスは、通常、デバイスが平面内の位置を指定することを可能にする、第1の軸(xなど)および第2の軸(yなど)の2つの軸内の2自由度を有する。
【0182】
コンピュータシステム700は、カスタマイズされた配線接続論理、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラム論理を使用して本明細書に記載の技術を実装することができ、これらはコンピュータシステムと組み合わせてコンピュータシステム700を専用マシンにするかまたはそのようにプログラムする。1つの実施形態によれば、本明細書の技法は、プロセッサ704が、メインメモリ706に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行するのに応答して、コンピュータシステム700によって実行される。そのような命令は、記憶装置710などの別の記憶媒体からメインメモリ706に読み出すことができる。メインメモリ706に含まれる命令のシーケンスの実行により、プロセッサ704は、本明細書に記載のプロセスステップを実行する。代替の実施形態では、配線接続回路を、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用することができる。
【0183】
本明細書において使用される「記憶媒体」という用語は、機械を特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、例えば、記憶装置710などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ706などの動的メモリを含む。記憶媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光学データ記憶媒体、穴のパターンを有する任意の物理媒体、RAM、PROM、およびEPROM、FLASH(登録商標)-EPROM、NVRAM、任意の他のメモリチップまたはカートリッジ、連想メモリ(CAM)、および三値連想メモリ(TCAM)を含む。
【0184】
記憶媒体は、伝送媒体とは異なるが、伝送媒体と組み合わせて使用されてもよい。伝送媒体は、記憶媒体間の情報転送に参加する。例えば、伝送媒体は、バス702を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、無線波および赤外線データ通信中に生成されるものなど、音響波または光波の形をとることもできる。
【0185】
様々な形態の媒体が、実行のためのプロセッサ704への1つまたは複数の命令の1つまたは複数のシーケンスの搬送に関与し得る。例えば、命令は、最初は、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で実行され得る。リモートコンピュータは、命令を動的メモリにロードし、モデムを使用して電話回線を介して命令を送信することができる。コンピュータシステム700にローカルなモデムが、電話回線上でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器が、赤外線信号内で搬送されるデータを受信することができ、適切な回路が、データをバス702上に配置することができる。バス702は、データをメインメモリ706に搬送し、そこからプロセッサ704が命令を取り出して実行する。メインメモリ706によって受信された命令は、任意選択的に、プロセッサ704による実行の前または後のいずれかで、記憶装置710に記憶されてもよい。
【0186】
コンピュータシステム700はまた、バス702と結合された通信インターフェース718を含む。通信インターフェース718は、ローカルネットワーク722に接続されているネットワークリンク720と結合する双方向データ通信を提供する。例えば、通信インターフェース718は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線へのデータ通信接続を提供するためのモデムであってもよい。別の例として、通信インターフェース718は、互換性のあるLANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであってもよい。無線リンクも実装することができる。そのような任意の実施態様において、通信インターフェース718は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁気信号、または光信号を送受信する。
【0187】
ネットワークリンク720は、通常、1つまたは複数のネットワークを介して他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク720は、ローカルネットワーク722を介して、ホストコンピュータ724またはインターネットサービスプロバイダ(ISP)726によって操作されるデータ機器への接続を提供することができる。次に、ISP726は、現在一般に「インターネット」728として参照されている世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク722およびインターネット728は両方とも、デジタルデータストリームを搬送する電気信号、電磁気信号、または光信号を使用する。様々なネットワークを介した信号、および、ネットワークリンク720上の、コンピュータシステム700との間でデジタルデータを搬送する通信インターフェース718を介した信号は、伝送媒体の例示的な形態である。
【0188】
コンピュータシステム700は、ネットワーク、ネットワークリンク720、および通信インターフェース718を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ730が、インターネット728、ISP726、ローカルネットワーク722、および通信インターフェース718を介して、アプリケーションプログラムの要求されるコードを送信することができる。
【0189】
受信されたコードは、受信時にプロセッサ704によって実行され、および/または後で実行するために記憶装置710または他の不揮発性記憶装置に記憶され得る。
【0190】
10.その他、拡張機能
実施形態は、ハードウェアプロセッサを含み、本明細書に記載されたおよび/または添付の請求項のいずれかに記載された工程のいずれかを実行するように構成された1つまたは複数のデバイスを備えたシステムを対象とする。
【0191】
一実施形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載および/または請求項のいずれかに記載の工程のいずれかを実行させる命令を含む。
【0192】
本明細書に記載の特徴および機能の任意の組み合わせを、1つまたは複数の実施形態に従って使用することができる。前述の明細書では、実施形態は、実施態様ごとに異なる可能性がある多数の特定の詳細を参照して説明されてきた。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味において考察されるべきである。本発明の範囲の唯一かつ排他的な指標、および出願人が発明の範囲とすることを意図しているものは、任意の後続の補正を含む、特定の形式における、本出願から発行する特許請求の範囲の文字通りの同等の範囲である。
図1A
図1B
図1C
図2
図3
図4
図5
図6A
図6B
図6C
図7