(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-14
(45)【発行日】2022-01-14
(54)【発明の名称】分散型オブジェクトルーティング
(51)【国際特許分類】
G06F 16/182 20190101AFI20220106BHJP
G06F 16/13 20190101ALI20220106BHJP
G06F 21/62 20130101ALI20220106BHJP
【FI】
G06F16/182
G06F16/13
G06F21/62 318
【外国語出願】
(21)【出願番号】P 2019110780
(22)【出願日】2019-06-14
(62)【分割の表示】P 2018521200の分割
【原出願日】2016-07-15
【審査請求日】2019-07-04
(32)【優先日】2015-07-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(73)【特許権者】
【識別番号】518007751
【氏名又は名称】ソニー メディア クラウド サーヴィシーズ リミテッド ライアビリティ カンパニー
(74)【代理人】
【識別番号】100092093
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(72)【発明者】
【氏名】マセク ベン
(72)【発明者】
【氏名】ケイン ポール
(72)【発明者】
【氏名】ラスケ ブライアン
(72)【発明者】
【氏名】パーカー ジェフ
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】国際公開第2009/084314(WO,A1)
【文献】特表2013-525876(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
インデックスを用いてファイルを取り出す方法であって、
前記ファイルの無許可再構築を防ぐために、複数のチャンクに分割された前記ファイルを取り出しかつ再構築するステップを含み、ファイルの取り出し及び再構築は、
前記ファイルの複数のチャンクがどこに記憶されているかを含む前記ファイルのインデックスを取り出すステップと、
前記複数のチャンクを複数のストレージプロバイダから取り出すステップと、ここで、前記複数のチャンクの各チャンクは、ファイルの前記インデックスを用いて、前記複数の
ストレージプロバイダの総数よりも少ない数で再構築されるように、前記複数の
ストレージプロバイダのうち少なくとも2つに割り当てられかつ記憶され、
前記総数よりも少ない数の
ストレージプロバイダから取り出された前記チャンクで、前記複数のチャンクを再構築して前記ファイルを復元するステップと、
を含み、
前記複数のチャンクのうち複製されたチャンクは破棄されることを特徴とする方法。
【請求項2】
前記複数のチャンクのうちの各チャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項1に記載の方法。
【請求項3】
前記複数のファイルの前記複数のチャンクを取り出すために使用されるストレージプロバイダの前記総数は2よりも多い、
請求項1に記載の方法。
【請求項4】
インデックスを用いてファイルをストリーミングする方法であって、
前記ファイルの複数のチャンクがどこに記憶されているかを含む、前記ファイルのプロキシファイルの前記インデックスを取り出すステップと、
前記プロキシファイルの前記インデックスを用いて、前記ファイルの前記複数のチャンクを複数のストレージプロバイダから取り出しかつ復号するステップと、ここで、前記複数のチャンクの各チャンクは、前記複数の
ストレージプロバイダの総数よりも少ない数で再構築されるように前記複数の
ストレージプロバイダのうち少なくとも2つに割り当てられかつ記憶され、
前記複数の
ストレージプロバイダの前記総数よりも少ない数の取り出されたチャンクで、前記ファイルの前記複数のチャンクを再構築するステップと、
前記ファイルの前記複数のチャンクをストリーミングするステップと、
を含むことを特徴とする方法。
【請求項5】
前記複数のチャンクの各チャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項4に記載の方法。
【請求項6】
前記ファイルの前記複数のチャンクを取り出すために使用される前記複数のストレージプロバイダの前記総数は2よりも多い、
請求項4に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクトルーティングに関し、具体的には、分散型オブジェクトルーティングに関する。
【背景技術】
【0002】
デジタルデータ及びデジタルファイルは、遠隔的に配置されたコンピュータネットワーク及び通信ネットワークを通じてアクセスし、分散して、再生、記憶、伝送及び/又はコピーすることができる。その基盤技術には多くの合法かつ有用な用途があるにも関わらず、これらはしばしばデジタルデータ及びデジタルファイルの違法コピーを作成するために使用され、その結果これらのコピーがインターネットを介して配信されることがある。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明は、ファイルを複数のストレージプロバイダにわたって暗号化ブロックとして分散させることによってファイルの無許可再構築を防ぐデータストレージを提供する。分散ルールは、あらゆるストレージプロバイダがファイルを再構築するのに十分なブロックを有することを防ぐ。
【0004】
1つの実装では、ファイルの無許可再構築を防ぐようにファイルを記憶する方法を開示する。この方法は、ファイルのインデックスを生成するステップと、ファイルを複数のチャンクに分割するステップとを含み、ファイルのインデックスは、複数のチャンクの各々について割り当てられたルーティング経路を含み、この方法は、割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングするステップをさらに含む。
【0005】
別の実装では、インデックスを用いてファイルを取り出す方法を開示する。この方法は、ファイルの複数のチャンクがどこに記憶されているかを含むインデックスを検索するステップと、複数のチャンクを複数のストレージプロバイダから取り出すステップと、複数のチャンクを再構築してファイルを復元するステップとを含む。
【0006】
別の実装では、ファイルの無許可再構築を防ぐようにファイルを記憶する装置を開示する。この装置は、ファイルのインデックスを生成する手段と、ファイルを複数のチャンクに分割する手段とを含み、ファイルのインデックスは、複数のチャンクの各々について割り当てられたルーティング経路を含み、この装置は、割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングする手段をさらに含む。
【0007】
別の実装では、インデックスを用いてファイルをストリーミングする方法を開示する。この方法は、ファイルの複数のチャンクがどこに記憶されているかを含む、ファイルのプロキシファイルのインデックスを検索するステップと、プロキシファイルの複数のチャンクを複数のストレージプロバイダから取り出すステップと、プロキシファイルの複数のチャンクを再構築してストリーミングするステップとを含む。
【0008】
本発明の態様を一例として示す本説明からは、本発明の他の特徴及び利点が明らかになるはずである。
【0009】
同じ部分を同じ参照数字によって示す添付のさらなる図面を検討することにより、本開示の詳細を、その構造及び動作の両方に関して部分的に収集することができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の1つの実装による分散型データストレージ及びルーティングシステムの機能ブロック図である。
【
図2】本開示の1つの実装によるクライアントストリームパーサの機能図例である。
【
図3】本開示の1つの実装による、ファイルの無許可再構築を防ぐようにファイル(又はデータ)を記憶する方法を示すフロー図である。
【
図4】本開示の1つの実装による、「分散的に」記憶されたファイル(又はデータ)を取り出す方法を示すフロー図である。
【
図5】本開示の1つの実装による、「分散的に」記憶されたファイル(又はデータ)をストリーミングする方法を示すフロー図である。
【
図6】複数のストレージプロバイダにわたるチャンクの分散例を示す図である。
【
図7】強力な暗号鍵を用いてインデックスファイルを暗号化する暗号鍵管理戦略を示す図である。
【発明を実施するための形態】
【0011】
本明細書に開示するいくつかの実装は、ファイルを複数の記憶位置にわたって暗号化ブロック又はチャンクとして拡散させることによってファイルの無許可再構築を防ぐようにデジタルデータの記憶及び分散を図るものである。分散ルールは、あらゆる記憶位置がファイルを再構築するのに十分なブロックを有することを防ぐ。1つの実装は、ビデオ制作のためのビデオ及び資産のストレージを提供する。さらに、様々なセキュリティ機構を使用することもできる(鍵戦略、透かしなど)。コンテンツ配信ネットワーク(CDN)、エッジサーバ、クライアントサーバ及び/又はピアツーピア機構を含む、ローカルストレージとリモートストレージの様々な組み合わせを使用することができる。実装は、1つの(又は規定数の)ストレージプロバイダが完全なファイルを再形成できるリスクを排除(又は少なくとも実質的に軽減)するセキュアな分散型ストレージを提供すること、ファイルストレージにさらなる耐久性を与えること、プロキシストリーミングを可能にするように、チャンク化されたメディアのトランスコードを可能にすること、を含む1又は2以上の利点をもたらすことができる。
【0012】
1つの実装は、ネットワークリソース上に記憶されたファイルのセキュリティを高めるシステム及び方法を含む。この実装では、映画を記憶した暗号化ファイルなどのファイルをブロック又はチャンクに分割し、これらのブロック/チャンクを、インターネットに接続されて異なるストレージプロバイダ(「SP」)によって運営されるストレージサーバなどの異なる記憶位置に記憶する。記憶位置は、1又は2以上のブロックを有することができるが、ストレージプロバイダは、いずれもファイルにフルアクセスすることができず、或いは完全なファイルを再構築することができない。この拡散は、ハッカー又はその他のエンティティによるコンテンツへのアクセスに対してさらなるハードルをもたらす。1つの実装では、分散したブロックを用いて、トランスコードされたファイルの作成及びストリーミングを保護する。
【0013】
さらなる実装では、各ストレージプロバイダが、クラウドデータセンタ(例えば、AWS、Azure、Rackspace)においてホストされる。これとは別に、又はこれに加えて、少なくともいくつかのブロックに業務用データストレージを使用することもできる。1つの実装例では、ストレージが、少なくとも3つのSPにわたってストライプ化される。他の実装は、異なる最小数及び最大数のSPを使用することができる。インデックスファイルが、ブロック/チャンクの場所を示す。実装例では、完全なファイル復元に少なくとも2つのSPが必要である。個々のSPは、いずれも完全なファイル復元が可能なほどの十分な情報を有さない。同様に、1つのトランスコーディングの実装では、トランスコードされたチャンクが、ファイルストレージ機構と同様の分散方法で分散される。さらなる実装では、追加のセキュリティ対策が、SP及び/又はクライアント鍵を用いてブロック及びインデックスファイルを暗号化し、ブロックの誤り訂正及びチェックサムを提供し、少なくとも2つのSPにわたってブロックを記憶することを含む。
【0014】
1つの特定の実装では、医療記録、患者データ及び/又は画像を記憶する医療資産ストレージシステムを開示する。この実装では、複数のストレージプロバイダ(SP)にわたってファイルを分散させることによってデータにセキュリティ及び耐久性をもたらす。さらに、(鍵戦略などの)異なるセキュリティ機構が、異なる資産又はデータに様々なタイプ又はレベルのセキュリティをもたらすことができる。例えば、病院、医師、保険業者及び患者によって使用される全てのデータを、様々なストレージ及び鍵戦略を用いて分散システムに記憶して、様々なレベルのデータアクセス及びセキュリティをもたらしながら、全ての資産を共通の識別子に関連付けて体系化することができる。このように、1つのSPがファイル全てにアクセスできないだけでなく、複合システム内の1参加者(例えば、保険業者)しかシステム内の特定の患者/被保険者の適切な資産にアクセスできないようにすることができる。
【0015】
図1は、本開示の1つの実装による、分散型データストレージ及びルーティングシステム100の機能ブロック図である。分散型データストレージ及びルーティングシステム100は、ネットワークリソース上に記憶されたデータ/ファイル102のセキュリティを高めるように構成される。特定の実装では、システム100が、1又は2以上のストレージプロバイダが完全なファイルを再形成できるリスクを実質的に軽減する分散型ストレージを提供する。
【0016】
図1に示す実装では、分散型データストレージ及びルーティングシステム100が、クライアントストリームパーサ110と、複数のゲートウェイ122、124、126、128と、対応する複数のストレージプロバイダ132、134、136、138とを含む。クライアントストリームパーサ110は、映画を記憶した暗号化ファイルなどのファイルを受け取り、ファイルを異なる記憶位置に記憶すべくブロック又はチャンクに分割するように構成される。次に、分割されたブロック又はチャンクは、ネットワーク(例えば、インターネット)を通じて複数のゲートウェイ122、124、126、128に分散され、複数のストレージプロバイダ132、134、136、138によって記憶される。記憶される全てのオブジェクト(例えば、ブロック/チャンク)は、ストレージプロバイダ暗号化を通じて暗号化され、クライアントが指定した鍵に基づいて暗号化することもできる。チャンクの場所は、インデックスファイル内に保存され、このファイルも、クライアントが指定した鍵を用いて暗号化することができる。
【0017】
複数のストレージプロバイダ132、134、136、138は、様々な誤り訂正チェックを行うことによってデータ/ファイルの完全性及び可用性を保証する。例えば、各ストレージプロバイダ132、134、136又は138は、チェックサムなどの誤り訂正チェックを行ってチャンクの完全性を検証する。別の例では、分散型データストレージ及びルーティングシステム100が、少なくとも2つのストレージプロバイダにわたってデータのパリティを提供する一方で(チャンク化されたファイル当たり最大m個のコピー)、各ストレージプロバイダが、耐久性のための独自の機構を提供する。この耐久性評価は、耐久性が最も低いストレージプロバイダの評価の少なくとも2倍になる。
【0018】
システム100は、プロキシストリーミングを可能にするようにチャンク化データのトランスコーディングも可能にする。さらに、分散型データストレージ及びルーティングシステム100は、ファイルを(メタデータ及び/又は属性と共に)記憶し、ファイルを取り出し、又はファイルをストリーミングすることを含む、主要エンドユーザとファイルとの間の様々な相互作用も提供する。これらの各相互作用については、
図3、
図4及び
図5にそれぞれ示すフローチャート300、400、500において詳細に説明する。
【0019】
図2は、本開示の1つの実装によるクライアントストリームパーサ110の機能図例である。
図2に示す実装では、ファイルが(1~10で示す)10個のチャンク化要素に分割される。クライアントストリームパーサ110は、セキュアな、追跡可能な、ランダム化されたインデックス作成を行う。例えば、各チャンク化要素は、所与のファイル(図示せず)内にインデックス付きの開始位置及び停止位置を有する。
【0020】
1つの実装では、チャンク化要素当たり最大m個のコピーが作成され、これらのコピーは、最大n個のストレージプロバイダにわたって配置される。図示の例では、各チャンク化要素の2つのコピー(m=2)が3つのストレージプロバイダ210、212、214(n=3)にわたって配置されている。例えば、チャンク化要素1は、ストレージプロバイダ1及び2に配置される。他のチャンク化要素については、チャンク化要素2がSP2及び3に配置され、チャンク化要素3がSP1及び3に配置され、チャンク化要素4がSP3及び2に配置され、チャンク化要素5がSP1及び2に配置され、チャンク化要素6がSP3及び2に配置され、チャンク化要素7がSP3及び2に配置され、チャンク化要素8がSP3及び1に配置され、チャンク化要素9がSP1及び2に配置され、チャンク化要素10がSP2及び3に配置される。クライアントストリームパーサ110は、どのチャンク化要素(並びに開始位置及び停止位置)がどのストレージプロバイダに記憶されているかなどの情報を含むインデックスファイルを生成する。1つの実装では、インデックスファイルが、アクセスするために2つの鍵を必要とする暗号化を通じて保護される。一方の鍵はシステム100によって保持され、他方の鍵はクライアントによって保持される。インデックスファイルは、上述したようなデータ/ファイルの解析及び分散と同様に解析し、複数のストレージプロバイダにわたって分散することができる。例えば、処理は、インデックスファイルをインデックスのチャンクに分割するステップと、インデックスのチャンクのインデックス付き要素を生成するステップと、インデックス付き要素に従って、割り当てられたストレージプロバイダにインデックスのチャンクをルーティングするステップとを含むことができる。
【0021】
図3は、本開示の1つの実装による、ファイルの無許可再構築を防ぐようにファイル(又はデータ)を記憶する方法を示すフロー
図300である。1つの実装では、この方法が、ファイルを複数の記憶位置にわたって暗号化ブロック又はチャンクとして拡散させることによって実現される。
【0022】
図3に示す実装では、方法が、ステップ310においてファイルを受け取り、割り当てられた属性及びルーティング情報を用いてインデックスを作成するステップを含む。ステップ320において、ファイルに対してファイルタイプチェック、ウィルススキャン及びチェックサムを実行する。次に、ステップ330においてファイルをチャンクに分割する。1つの実装では、インデックスもチャンクに分割される。ステップ340において、チャンクに対して暗号化、チェックサム及び他の準備を実行する。ステップ350において、準備の整ったチャンクにルーティング経路を割り当て、ステップ360において、割り当てられたストレージプロバイダにチャンクをルーティングする。1つの実装では、システム100内のストレージプロバイダの総数(n)が2よりも大きくなければならない。
【0023】
図4は、本開示の1つの実装による、「分散的に」記憶されたファイル(又はデータ)を取り出す方法を示すフロー
図400である。
図4に示す実装では、方法が、ステップ410において、チャンク化されたインデックスを検索するステップと、ステップ420において、ストレージプロバイダ固有の暗号化スキームに基づいてチャンクを復号するステップとを含む。次に、ステップ430において、復号されたチャンクを再構築し、ステップ440において、ファイルの取り出し処理を可能にする。1つの実装では、ファイルの完全な復元に少なくともm個のストレージプロバイダが必要であり、この場合のmは、1よりも大きい(すなわち、ストレージプロバイダは、いずれもファイルの完全な復元が可能なほど十分な情報を含まない)が、n-1以下である(nは、ストレージプロバイダの総数である)。このことは、1<m≦n-1として表すことができる。
【0024】
図5は、本開示の1つの実装による、「分散的に」記憶されたファイル(又はデータ)をストリーミングする方法を示すフロー
図500である。
図5に示す実装では、方法が、ステップ510において、ファイルのプロキシファイルのチャンク化されたインデックスを検索するステップと、ステップ520において、チャンクを取り出し、ストレージプロバイダ固有の暗号化スキームに基づいて復号するステップとを含む。次に、ステップ530において、復号したチャンクを再構築し、ステップ540において、ファイルストリーミング処理を可能にする。
【0025】
図6に、複数のストレージプロバイダにわたるチャンクの分散例600を示す。後述の例では、(1)ストレージプロバイダの総数(n)、(2)ファイルを取り出すために必要なストレージプロバイダの最低数(m)、(3)チャンク毎に作成する必要がある最小コピー数(p)、(4)ファイルの完全な復元を行っている間に存在しなくてもよいストレージプロバイダの数(q)、という定義を適用する。
【0026】
例1では、10個のチャンクが3つのストレージプロバイダにわたって分散し、n=3、p=2、m=2及びq=1である。この例では、SP1がチャンク1、2、4、6、7、8、9を記憶し、SP2がチャンク3、4、5、7、8、9、10を記憶し、SP3がチャンク1、2、3、5、6、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1とSP2、SP1とSP3、又はSP2とSP3の組み合わせが必要である。従って、これらの3つの2ストレージプロバイダペアの各々は、1つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で3つのストレージプロバイダが存在し(すなわち、n=3)、各チャンクの2つのコピーが作成され(すなわち、p=2)、ファイルを取り出すために少なくとも2つのストレージプロバイダが必要であり(すなわち、m=2)、少なくとも1つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=1)ことが分かる。
【0027】
例2では、10個のチャンクが4つのストレージプロバイダにわたって分散し、n=4、p=3、m=3及びq=1である。この例では、SP1がチャンク1、4、7、8、9を記憶し、SP2がチャンク2、3、5、9、10を記憶し、SP3がチャンク1、5、6、7、8を記憶し、SP4がチャンク2、3、4、6、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1/SP2/SP3、SP1/SP2/SP4、SP1/SP3/SP4、又はSP2/SP3/SP4の組み合わせが必要である。従って、これらの4つの3SPの組み合わせの各々は、1つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で4つのストレージプロバイダが存在し(すなわち、n=4)、各チャンクの3つのコピーが作成され(すなわち、p=3)、ファイルを取り出すために少なくとも3つのストレージプロバイダが必要であり(すなわち、m=3)、少なくとも1つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=1)ことが分かる。
【0028】
例3では、10個のチャンクが5つのストレージプロバイダにわたって分散し、n=5、p=2、m=4及びq=1である。この例では、SP1がチャンク1、2、5、6を記憶し、SP2がチャンク1、3、4、8を記憶し、SP3がチャンク2、3、4、7を記憶し、SP4がチャンク6、8、9、1を記憶し、SP5がチャンク5、7、9、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1/SP2/SP3/SP4、SP1/SP2/SP3/SP5、SP1/SP2/SP4/SP5、SP1/SP3/SP4/SP5、又はSP2/SP3/SP4/SP5の組み合わせが必要である。従って、これらの5つの4SPの組み合わせの各々は、1つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で5つのストレージプロバイダが存在し(すなわち、n=5)、各チャンクの2つのコピーが作成され(すなわち、p=2)、ファイルを取り出すために少なくとも4つのストレージプロバイダが必要であり(すなわち、m=4)、少なくとも1つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=1)ことが分かる。
【0029】
例4では、10個のチャンクが5つのストレージプロバイダにわたって分散し、n=5、p=3、m=3及びq=2である。この例では、SP1がチャンク1、2、5、6、7、8、9を記憶し、SP2がチャンク3、4、6、7、8、10を記憶し、SP3がチャンク2、5、6、8、9、10を記憶し、SP4がチャンク1、2、3、4、5、7を記憶し、SP5がチャンク1、3、4、8、9、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1/SP2/SP3、SP1/SP2/SP4、SP1/SP2/SP5、SP1/SP3/SP4、SP1/SP3/SP5、SP1/SP4/SP5、SP2/SP3/SP4、SP2/SP3/SP5、SP2/SP4/SP5、又はSP3/SP4/SP5の組み合わせが必要である。従って、これらの10個の3SPの組み合わせの各々は、2つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で5つのストレージプロバイダが存在し(すなわち、n=5)、各チャンクの3つのコピーが作成され(すなわち、p=3)、ファイルを取り出すために少なくとも3つのストレージプロバイダが必要であり(すなわち、m=3)、少なくとも2つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=2)ことが分かる。
【0030】
例5では、10個のチャンクが6つのストレージプロバイダにわたって分散し、n=6、p=3、m=4及びq=2である。この例では、SP1がチャンク1、2、3、4、10を記憶し、SP2がチャンク1、2、3、6、10を記憶し、SP3がチャンク2、3、4、5、9を記憶し、SP4がチャンク4、5、6、7、8を記憶し、SP5がチャンク5,6、7、8、9を記憶し、SP6がチャンク1、7、8、9、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1/SP2/SP3/SP4、SP1/SP2/SP3/SP5、SP1/SP2/SP3/SP6、SP1/SP3/SP4/SP5、SP1/SP3/SP4/SP6、SP1/SP4/SP5/SP6、SP2/SP3/SP4/SP5、SP2/SP3/SP4/SP6、SP2/SP4/SP5/SP6、SP2/SP3/SP5/SP6、SP3/SP4/SP5/SP6、SP1/SP2/SP4/SP5、SP1/SP2/SP4/SP6、SP1/SP2/SP5/SP6、又はSP1/SP3/SP5/SP6の組み合わせが必要である。従って、これらの15個の4SPの組み合わせの各々は、2つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で6つのストレージプロバイダが存在し(すなわち、n=6)、各チャンクの3つのコピーが作成され(すなわち、p=3)、ファイルを取り出すために少なくとも4つのストレージプロバイダが必要であり(すなわち、m=4)、少なくとも2つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=2)ことが分かる。
【0031】
例6では、10個のチャンクが6つのストレージプロバイダにわたって分散し、n=6、p=4、m=3及びq=3である。この例では、SP1がチャンク1、2、3、4、5、6、10を記憶し、SP2がチャンク1、2、3、4、6、10を記憶し、SP3がチャンク2、3、4、5、7、8、9を記憶し、SP4がチャンク1、4、5、6、7、8、9を記憶し、SP5がチャンク2、5、6、7、8、9、10を記憶し、SP6がチャンク1、3、7、8、9、10を記憶する。完全な10個のチャンクファイルを復元するには、SP1/SP2/SP3、SP1/SP2/SP4、SP1/SP2/SP5、SP1/SP2/SP6、SP1/SP3/SP4、SP1/SP3/SP5、SP1/SP3/SP6、SP1/SP4/SP5、SP1/SP4/SP6、SP1/SP5/SP6、SP2/SP3/SP4、SP2/SP3/SP5、SP2/SP3/SP6、SP2/SP4/SP5、SP2/SP4/SP6、SP2/SP5/SP6、SP3/SP4/SP5、SP3/SP4/SP6、又はSP4/SP5/SP6の組み合わせが必要である。従って、これらの19個の3SPの組み合わせの各々は、3つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で6つのストレージプロバイダが存在し(すなわち、n=6)、各チャンクの4つのコピーが作成され(すなわち、p=4)、ファイルを取り出すために少なくとも3つのストレージプロバイダが必要であり(すなわち、m=3)、少なくとも3つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる(すなわち、q=3)ことが分かる。
【0032】
図7に、強力な暗号鍵を用いてインデックスファイルを暗号化する暗号鍵管理戦略を示す。図示の実装では、各ユーザについて一意のインデックス暗号鍵700が生成される。インデックス暗号鍵700は、ユーザが管理するパスワードを用いて暗号化される。従って、ユーザは、ファイルのアップロード又はダウンロードを行う際には常に自身のパスワードを提供する。
【0033】
上述した方法、装置、及び関連する非一時的記憶媒体は、様々に変形が可能である。また、明確かつ簡潔な説明のために、方法、装置及び非一時的記憶媒体についての多くの説明を簡略化した。多くの説明では、一定の標準規格の専門用語及び構造を使用している。しかしながら、開示した方法、装置及び非一時的記憶媒体は、さらに広い適用が可能である。
【0034】
当業者であれば、本明細書に開示した実装に関連して説明した様々な例示的な論理ブロック、モジュール、ユニット及びアルゴリズムステップは、多くの場合、電子ハードウェア、コンピュータソフトウェア、又はこれらの両方の組み合わせとして実装することができると理解するであろう。このハードウェアとソフトウェアの互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール及びステップについて、一般にこれらの機能面から説明した。このような機能をハードウェア又はソフトウェアのいずれとして実装するかは、システム全体に課せられる特定の制約に依存する。当業者であれば、説明した機能を各特定のシステムのために様々な方法で実装することができるが、このような実装の決定を、本発明の範囲からの逸脱を引き起こすものとして解釈すべきではない。また、ユニット、モジュール、ブロック又はステップ内の機能のグループ化は、説明を容易にするためのものである。本発明から逸脱することなく、1つのユニット、モジュール又はブロックから特定の機能又はステップを移行させることもできる。
【0035】
本明細書に開示する実装に関連して説明した方法のステップ及びブロック又はモジュールの処理は、ハードウェアにおいて直接具体化することも、プロセッサによって実行されるソフトウェアモジュールにおいて具体化することも、又はこれらの組み合わせにおいて具体化することもできる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、又は他のいずれかの形態の記憶媒体に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体との間で情報を読み書きできるようにプロセッサに結合することができる。別の方法では、記憶媒体をプロセッサに統合することができる。プロセッサ及び記憶媒体は、ASIC内に存在することができる。また、結合されるものとして説明した装置、ブロック又はモジュールは、中間の装置、ブロック又はモジュールを介して結合することができる。
【0036】
上記の開示した実装の説明は、当業者が本開示を実施又は利用できるように行ったものである。当業者には、これらの実装の様々な修正が容易に明らかになると思われ、また本明細書で説明した一般的原理は、本発明の趣旨又は範囲から逸脱することなく他の実装にも適用することができる。例えば、ファイルの代わりに、又はこれに加えて、ゲームオブジェクト又はその他のタイプの仮想オブジェクトを使用することもできる。従って、これらの技術は、上述した特定の例に限定されるものではない。従って、本明細書で提示した説明及び図面は、本発明の現在のところ好ましい実装を表すものであり、従って本発明が広く意図する主題を表すものであると理解されたい。さらに、本発明の範囲は、当業者にとって明らかになり得る他の実装を完全に含み、従って添付の特許請求の範囲以外のものによって限定されるものではないと理解されたい。
【符号の説明】
【0037】
100 分散型データストレージ及びルーティングシステム
102 データ/ファイル
110 クライアントストリームパーサ
122 ゲートウェイ(SP1)
124 ゲートウェイ(SP2)
126 ゲートウェイ(SP3)
128 ゲートウェイ(SPn)
132 ストレージプロバイダ1
134 ストレージプロバイダ2
136 ストレージプロバイダ3
138 ストレージプロバイダn