(57)【要約】【課題】ファイルの無許可再構築を防ぐファイルを記憶する方法及び装置を提供する。【解決手段】ファイルの無許可再構築を防ぐようにするファイルの記憶が、ファイルのインデックスを生成するステップと、ファイルを複数のチャンクに分割するステップとを含み、ファイルのインデックスは、複数のチャンクの各々について割り当てられたルーティング経路を含み、この記憶は、割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングするステップをさらに含む。キーワードは、分割及びインデックスを含む。【選択図】図１
2019169196.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの無許可再構築を防ぐように前記ファイルを記憶する方法であって、
前記ファイルのインデックスを生成するステップと、
前記ファイルを複数のチャンクに分割するステップと、
を含み、前記ファイルの前記インデックスは、前記複数のチャンクの各々について割り当てられたルーティング経路を含み、前記方法は、
前記割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングするステップをさらに含む、
ことを特徴とする方法。
【請求項２】
前記ファイルの前記インデックスを前記インデックスのチャンクに分割するステップをさらに含む、
請求項１に記載の方法。
【請求項３】
前記インデックスの前記チャンクのインデックス付き要素を生成するステップと、
前記インデックス付き要素に従って、前記インデックスの前記チャンクを割り当てられたストレージプロバイダにルーティングするステップと、
をさらに含む請求項２に記載の方法。
【請求項４】
前記ファイルの前記インデックスは、割り当てられた属性及びルーティング情報を含む、
請求項１に記載の方法。
【請求項５】
前記ファイルの前記インデックスは、クライアントが指定した鍵を用いて暗号化される、
請求項１に記載の方法。
【請求項６】
前記ファイルの前記複数のチャンクを記憶するために使用されるストレージプロバイダの総数は２よりも多い、
請求項１に記載の方法。
【請求項７】
前記複数のチャンクに対して暗号化及びチェックサムを実行するステップをさらに含む、
請求項１に記載の方法。
【請求項８】
各チャンクは、前記ファイル内に開始位置及び停止位置を有する、
請求項１に記載の方法。
【請求項９】
インデックスを用いてファイルを取り出す方法であって、
前記ファイルの複数のチャンクがどこに記憶されているかを含む前記インデックスを検索するステップと、
前記複数のチャンクを複数のストレージプロバイダから取り出すステップと、
前記複数のチャンクを再構築して前記ファイルを復元するステップと、
を含むことを特徴とする方法。
【請求項１０】
前記複数のチャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項９に記載の方法。
【請求項１１】
前記ファイルの前記複数のチャンクを取り出すために使用されるストレージプロバイダの総数は２よりも多い、
請求項９に記載の方法。
【請求項１２】
ファイルの無許可再構築を防ぐように前記ファイルを記憶する装置であって、
前記ファイルのインデックスを生成する手段と、
前記ファイルを複数のチャンクに分割する手段と、
を備え、前記ファイルの前記インデックスは、前記複数のチャンクの各々について割り当てられたルーティング経路を含み、前記装置は、
前記割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングする手段をさらに備える、
ことを特徴とする装置。
【請求項１３】
前記ファイルの前記インデックスを前記インデックスのチャンクに分割する手段をさらに備える、
請求項１２に記載の装置。
【請求項１４】
前記インデックスの前記チャンクのインデックス付き要素を生成する手段と、
前記インデックス付き要素に従って、前記インデックスの前記チャンクを割り当てられたストレージプロバイダにルーティングする手段と、
をさらに備える請求項１３に記載の装置。
【請求項１５】
前記複数のチャンクに対して暗号化及びチェックサムを実行する手段をさらに含む、
請求項１２に記載の装置。
【請求項１６】
インデックスを用いてファイルをストリーミングする方法であって、
前記ファイルの複数のチャンクがどこに記憶されているかを含む、前記ファイルのプロキシファイルの前記インデックスを検索するステップと、
前記プロキシファイルの前記複数のチャンクを複数のストレージプロバイダから取り出すステップと、
前記プロキシファイルの前記複数のチャンクを再構築してストリーミングするステップと、
を含むことを特徴とする方法。
【請求項１７】
前記複数のチャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項１６に記載の方法。
【請求項１８】
前記プロキシファイルの前記複数のチャンクを取り出すために使用されるストレージプロバイダの総数は２よりも多い、
請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトルーティングに関し、具体的には、分散型オブジェクトルーティングに関する。
【背景技術】
【０００２】
デジタルデータ及びデジタルファイルは、遠隔的に配置されたコンピュータネットワーク及び通信ネットワークを通じてアクセスし、分散して、再生、記憶、伝送及び／又はコピーすることができる。その基盤技術には多くの合法かつ有用な用途があるにも関わらず、これらはしばしばデジタルデータ及びデジタルファイルの違法コピーを作成するために使用され、その結果これらのコピーがインターネットを介して配信されることがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明は、ファイルを複数のストレージプロバイダにわたって暗号化ブロックとして分散させることによってファイルの無許可再構築を防ぐデータストレージを提供する。分散ルールは、あらゆるストレージプロバイダがファイルを再構築するのに十分なブロックを有することを防ぐ。
【０００４】
１つの実装では、ファイルの無許可再構築を防ぐようにファイルを記憶する方法を開示する。この方法は、ファイルのインデックスを生成するステップと、ファイルを複数のチャンクに分割するステップとを含み、ファイルのインデックスは、複数のチャンクの各々について割り当てられたルーティング経路を含み、この方法は、割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングするステップをさらに含む。
【０００５】
別の実装では、インデックスを用いてファイルを取り出す方法を開示する。この方法は、ファイルの複数のチャンクがどこに記憶されているかを含むインデックスを検索するステップと、複数のチャンクを複数のストレージプロバイダから取り出すステップと、複数のチャンクを再構築してファイルを復元するステップとを含む。
【０００６】
別の実装では、ファイルの無許可再構築を防ぐようにファイルを記憶する装置を開示する。この装置は、ファイルのインデックスを生成する手段と、ファイルを複数のチャンクに分割する手段とを含み、ファイルのインデックスは、複数のチャンクの各々について割り当てられたルーティング経路を含み、この装置は、割り当てられたルーティング経路を通じて、各チャンクを割り当てられたストレージプロバイダにルーティングする手段をさらに含む。
【０００７】
別の実装では、インデックスを用いてファイルをストリーミングする方法を開示する。この方法は、ファイルの複数のチャンクがどこに記憶されているかを含む、ファイルのプロキシファイルのインデックスを検索するステップと、プロキシファイルの複数のチャンクを複数のストレージプロバイダから取り出すステップと、プロキシファイルの複数のチャンクを再構築してストリーミングするステップとを含む。
【０００８】
本発明の態様を一例として示す本説明からは、本発明の他の特徴及び利点が明らかになるはずである。
【０００９】
同じ部分を同じ参照数字によって示す添付のさらなる図面を検討することにより、本開示の詳細を、その構造及び動作の両方に関して部分的に収集することができる。
【図面の簡単な説明】
【００１０】
【図１】本開示の１つの実装による分散型データストレージ及びルーティングシステムの機能ブロック図である。
【図２】本開示の１つの実装によるクライアントストリームパーサの機能図例である。
【図３】本開示の１つの実装による、ファイルの無許可再構築を防ぐようにファイル（又はデータ）を記憶する方法を示すフロー図である。
【図４】本開示の１つの実装による、「分散的に」記憶されたファイル（又はデータ）を取り出す方法を示すフロー図である。
【図５】本開示の１つの実装による、「分散的に」記憶されたファイル（又はデータ）をストリーミングする方法を示すフロー図である。
【図６】複数のストレージプロバイダにわたるチャンクの分散例を示す図である。
【図７】強力な暗号鍵を用いてインデックスファイルを暗号化する暗号鍵管理戦略を示す図である。
【発明を実施するための形態】
【００１１】
本明細書に開示するいくつかの実装は、ファイルを複数の記憶位置にわたって暗号化ブロック又はチャンクとして拡散させることによってファイルの無許可再構築を防ぐようにデジタルデータの記憶及び分散を図るものである。分散ルールは、あらゆる記憶位置がファイルを再構築するのに十分なブロックを有することを防ぐ。１つの実装は、ビデオ制作のためのビデオ及び資産のストレージを提供する。さらに、様々なセキュリティ機構を使用することもできる（鍵戦略、透かしなど）。コンテンツ配信ネットワーク（ＣＤＮ）、エッジサーバ、クライアントサーバ及び／又はピアツーピア機構を含む、ローカルストレージとリモートストレージの様々な組み合わせを使用することができる。実装は、１つの（又は規定数の）ストレージプロバイダが完全なファイルを再形成できるリスクを排除（又は少なくとも実質的に軽減）するセキュアな分散型ストレージを提供すること、ファイルストレージにさらなる耐久性を与えること、プロキシストリーミングを可能にするように、チャンク化されたメディアのトランスコードを可能にすること、を含む１又は２以上の利点をもたらすことができる。
【００１２】
１つの実装は、ネットワークリソース上に記憶されたファイルのセキュリティを高めるシステム及び方法を含む。この実装では、映画を記憶した暗号化ファイルなどのファイルをブロック又はチャンクに分割し、これらのブロック／チャンクを、インターネットに接続されて異なるストレージプロバイダ（「ＳＰ」）によって運営されるストレージサーバなどの異なる記憶位置に記憶する。記憶位置は、１又は２以上のブロックを有することができるが、ストレージプロバイダは、いずれもファイルにフルアクセスすることができず、或いは完全なファイルを再構築することができない。この拡散は、ハッカー又はその他のエンティティによるコンテンツへのアクセスに対してさらなるハードルをもたらす。１つの実装では、分散したブロックを用いて、トランスコードされたファイルの作成及びストリーミングを保護する。
【００１３】
さらなる実装では、各ストレージプロバイダが、クラウドデータセンタ（例えば、ＡＷＳ、Ａｚｕｒｅ、Ｒａｃｋｓｐａｃｅ）においてホストされる。これとは別に、又はこれに加えて、少なくともいくつかのブロックに業務用データストレージを使用することもできる。１つの実装例では、ストレージが、少なくとも３つのＳＰにわたってストライプ化される。他の実装は、異なる最小数及び最大数のＳＰを使用することができる。インデックスファイルが、ブロック／チャンクの場所を示す。実装例では、完全なファイル復元に少なくとも２つのＳＰが必要である。個々のＳＰは、いずれも完全なファイル復元が可能なほどの十分な情報を有さない。同様に、１つのトランスコーディングの実装では、トランスコードされたチャンクが、ファイルストレージ機構と同様の分散方法で分散される。さらなる実装では、追加のセキュリティ対策が、ＳＰ及び／又はクライアント鍵を用いてブロック及びインデックスファイルを暗号化し、ブロックの誤り訂正及びチェックサムを提供し、少なくとも２つのＳＰにわたってブロックを記憶することを含む。
【００１４】
１つの特定の実装では、医療記録、患者データ及び／又は画像を記憶する医療資産ストレージシステムを開示する。この実装では、複数のストレージプロバイダ（ＳＰ）にわたってファイルを分散させることによってデータにセキュリティ及び耐久性をもたらす。さらに、（鍵戦略などの）異なるセキュリティ機構が、異なる資産又はデータに様々なタイプ又はレベルのセキュリティをもたらすことができる。例えば、病院、医師、保険業者及び患者によって使用される全てのデータを、様々なストレージ及び鍵戦略を用いて分散システムに記憶して、様々なレベルのデータアクセス及びセキュリティをもたらしながら、全ての資産を共通の識別子に関連付けて体系化することができる。このように、１つのＳＰがファイル全てにアクセスできないだけでなく、複合システム内の１参加者（例えば、保険業者）しかシステム内の特定の患者／被保険者の適切な資産にアクセスできないようにすることができる。
【００１５】
図１は、本開示の１つの実装による、分散型データストレージ及びルーティングシステム１００の機能ブロック図である。分散型データストレージ及びルーティングシステム１００は、ネットワークリソース上に記憶されたデータ／ファイル１０２のセキュリティを高めるように構成される。特定の実装では、システム１００が、１又は２以上のストレージプロバイダが完全なファイルを再形成できるリスクを実質的に軽減する分散型ストレージを提供する。
【００１６】
図１に示す実装では、分散型データストレージ及びルーティングシステム１００が、クライアントストリームパーサ１１０と、複数のゲートウェイ１２２、１２４、１２６、１２８と、対応する複数のストレージプロバイダ１３２、１３４、１３６、１３８とを含む。クライアントストリームパーサ１１０は、映画を記憶した暗号化ファイルなどのファイルを受け取り、ファイルを異なる記憶位置に記憶すべくブロック又はチャンクに分割するように構成される。次に、分割されたブロック又はチャンクは、ネットワーク（例えば、インターネット）を通じて複数のゲートウェイ１２２、１２４、１２６、１２８に分散され、複数のストレージプロバイダ１３２、１３４、１３６、１３８によって記憶される。記憶される全てのオブジェクト（例えば、ブロック／チャンク）は、ストレージプロバイダ暗号化を通じて暗号化され、クライアントが指定した鍵に基づいて暗号化することもできる。チャンクの場所は、インデックスファイル内に保存され、このファイルも、クライアントが指定した鍵を用いて暗号化することができる。
【００１７】
複数のストレージプロバイダ１３２、１３４、１３６、１３８は、様々な誤り訂正チェックを行うことによってデータ／ファイルの完全性及び可用性を保証する。例えば、各ストレージプロバイダ１３２、１３４、１３６又は１３８は、チェックサムなどの誤り訂正チェックを行ってチャンクの完全性を検証する。別の例では、分散型データストレージ及びルーティングシステム１００が、少なくとも２つのストレージプロバイダにわたってデータのパリティを提供する一方で（チャンク化されたファイル当たり最大ｍ個のコピー）、各ストレージプロバイダが、耐久性のための独自の機構を提供する。この耐久性評価は、耐久性が最も低いストレージプロバイダの評価の少なくとも２倍になる。
【００１８】
システム１００は、プロキシストリーミングを可能にするようにチャンク化データのトランスコーディングも可能にする。さらに、分散型データストレージ及びルーティングシステム１００は、ファイルを（メタデータ及び／又は属性と共に）記憶し、ファイルを取り出し、又はファイルをストリーミングすることを含む、主要エンドユーザとファイルとの間の様々な相互作用も提供する。これらの各相互作用については、図３、図４及び図５にそれぞれ示すフローチャート３００、４００、５００において詳細に説明する。
【００１９】
図２は、本開示の１つの実装によるクライアントストリームパーサ１１０の機能図例である。図２に示す実装では、ファイルが（１〜１０で示す）１０個のチャンク化要素に分割される。クライアントストリームパーサ１１０は、セキュアな、追跡可能な、ランダム化されたインデックス作成を行う。例えば、各チャンク化要素は、所与のファイル（図示せず）内にインデックス付きの開始位置及び停止位置を有する。
【００２０】
１つの実装では、チャンク化要素当たり最大ｍ個のコピーが作成され、これらのコピーは、最大ｎ個のストレージプロバイダにわたって配置される。図示の例では、各チャンク化要素の２つのコピー（ｍ＝２）が３つのストレージプロバイダ２１０、２１２、２１４（ｎ＝３）にわたって配置されている。例えば、チャンク化要素１は、ストレージプロバイダ１及び２に配置される。他のチャンク化要素については、チャンク化要素２がＳＰ２及び３に配置され、チャンク化要素３がＳＰ１及び３に配置され、チャンク化要素４がＳＰ３及び２に配置され、チャンク化要素５がＳＰ１及び２に配置され、チャンク化要素６がＳＰ３及び２に配置され、チャンク化要素７がＳＰ３及び２に配置され、チャンク化要素８がＳＰ３及び１に配置され、チャンク化要素９がＳＰ１及び２に配置され、チャンク化要素１０がＳＰ２及び３に配置される。クライアントストリームパーサ１１０は、どのチャンク化要素（並びに開始位置及び停止位置）がどのストレージプロバイダに記憶されているかなどの情報を含むインデックスファイルを生成する。１つの実装では、インデックスファイルが、アクセスするために２つの鍵を必要とする暗号化を通じて保護される。一方の鍵はシステム１００によって保持され、他方の鍵はクライアントによって保持される。インデックスファイルは、上述したようなデータ／ファイルの解析及び分散と同様に解析し、複数のストレージプロバイダにわたって分散することができる。例えば、処理は、インデックスファイルをインデックスのチャンクに分割するステップと、インデックスのチャンクのインデックス付き要素を生成するステップと、インデックス付き要素に従って、割り当てられたストレージプロバイダにインデックスのチャンクをルーティングするステップとを含むことができる。
【００２１】
図３は、本開示の１つの実装による、ファイルの無許可再構築を防ぐようにファイル（又はデータ）を記憶する方法を示すフロー図３００である。１つの実装では、この方法が、ファイルを複数の記憶位置にわたって暗号化ブロック又はチャンクとして拡散させることによって実現される。
【００２２】
図３に示す実装では、方法が、ステップ３１０においてファイルを受け取り、割り当てられた属性及びルーティング情報を用いてインデックスを作成するステップを含む。ステップ３２０において、ファイルに対してファイルタイプチェック、ウィルススキャン及びチェックサムを実行する。次に、ステップ３３０においてファイルをチャンクに分割する。１つの実装では、インデックスもチャンクに分割される。ステップ３４０において、チャンクに対して暗号化、チェックサム及び他の準備を実行する。ステップ３５０において、準備の整ったチャンクにルーティング経路を割り当て、ステップ３６０において、割り当てられたストレージプロバイダにチャンクをルーティングする。１つの実装では、システム１００内のストレージプロバイダの総数（ｎ）が２よりも大きくなければならない。
【００２３】
図４は、本開示の１つの実装による、「分散的に」記憶されたファイル（又はデータ）を取り出す方法を示すフロー図４００である。図４に示す実装では、方法が、ステップ４１０において、チャンク化されたインデックスを検索するステップと、ステップ４２０において、ストレージプロバイダ固有の暗号化スキームに基づいてチャンクを復号するステップとを含む。次に、ステップ４３０において、復号されたチャンクを再構築し、ステップ４４０において、ファイルの取り出し処理を可能にする。１つの実装では、ファイルの完全な復元に少なくともｍ個のストレージプロバイダが必要であり、この場合のｍは、１よりも大きい（すなわち、ストレージプロバイダは、いずれもファイルの完全な復元が可能なほど十分な情報を含まない）が、ｎ−１以下である（ｎは、ストレージプロバイダの総数である）。このことは、１＜ｍ≦ｎ−１として表すことができる。
【００２４】
図５は、本開示の１つの実装による、「分散的に」記憶されたファイル（又はデータ）をストリーミングする方法を示すフロー図５００である。図５に示す実装では、方法が、ステップ５１０において、ファイルのプロキシファイルのチャンク化されたインデックスを検索するステップと、ステップ５２０において、チャンクを取り出し、ストレージプロバイダ固有の暗号化スキームに基づいて復号するステップとを含む。次に、ステップ５３０において、復号したチャンクを再構築し、ステップ５４０において、ファイルストリーミング処理を可能にする。
【００２５】
図６に、複数のストレージプロバイダにわたるチャンクの分散例６００を示す。後述の例では、（１）ストレージプロバイダの総数（ｎ）、（２）ファイルを取り出すために必要なストレージプロバイダの最低数（ｍ）、（３）チャンク毎に作成する必要がある最小コピー数（ｐ）、（４）ファイルの完全な復元を行っている間に存在しなくてもよいストレージプロバイダの数（ｑ）、という定義を適用する。
【００２６】
例１では、１０個のチャンクが３つのストレージプロバイダにわたって分散し、ｎ＝３、ｐ＝２、ｍ＝２及びｑ＝１である。この例では、ＳＰ１がチャンク１、２、４、６、７、８、９を記憶し、ＳＰ２がチャンク３、４、５、７、８、９、１０を記憶し、ＳＰ３がチャンク１、２、３、５、６、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１とＳＰ２、ＳＰ１とＳＰ３、又はＳＰ２とＳＰ３の組み合わせが必要である。従って、これらの３つの２ストレージプロバイダペアの各々は、１つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で３つのストレージプロバイダが存在し（すなわち、ｎ＝３）、各チャンクの２つのコピーが作成され（すなわち、ｐ＝２）、ファイルを取り出すために少なくとも２つのストレージプロバイダが必要であり（すなわち、ｍ＝２）、少なくとも１つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝１）ことが分かる。
【００２７】
例２では、１０個のチャンクが４つのストレージプロバイダにわたって分散し、ｎ＝４、ｐ＝３、ｍ＝３及びｑ＝１である。この例では、ＳＰ１がチャンク１、４、７、８、９を記憶し、ＳＰ２がチャンク２、３、５、９、１０を記憶し、ＳＰ３がチャンク１、５、６、７、８を記憶し、ＳＰ４がチャンク２、３、４、６、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１／ＳＰ２／ＳＰ３、ＳＰ１／ＳＰ２／ＳＰ４、ＳＰ１／ＳＰ３／ＳＰ４、又はＳＰ２／ＳＰ３／ＳＰ４の組み合わせが必要である。従って、これらの４つの３ＳＰの組み合わせの各々は、１つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で４つのストレージプロバイダが存在し（すなわち、ｎ＝４）、各チャンクの３つのコピーが作成され（すなわち、ｐ＝３）、ファイルを取り出すために少なくとも３つのストレージプロバイダが必要であり（すなわち、ｍ＝３）、少なくとも１つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝１）ことが分かる。
【００２８】
例３では、１０個のチャンクが５つのストレージプロバイダにわたって分散し、ｎ＝５、ｐ＝２、ｍ＝４及びｑ＝１である。この例では、ＳＰ１がチャンク１、２、５、６を記憶し、ＳＰ２がチャンク１、３、４、８を記憶し、ＳＰ３がチャンク２、３、４、７を記憶し、ＳＰ４がチャンク６、８、９、１を記憶し、ＳＰ５がチャンク５、７、９、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１／ＳＰ２／ＳＰ３／ＳＰ４、ＳＰ１／ＳＰ２／ＳＰ３／ＳＰ５、ＳＰ１／ＳＰ２／ＳＰ４／ＳＰ５、ＳＰ１／ＳＰ３／ＳＰ４／ＳＰ５、又はＳＰ２／ＳＰ３／ＳＰ４／ＳＰ５の組み合わせが必要である。従って、これらの５つの４ＳＰの組み合わせの各々は、１つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で５つのストレージプロバイダが存在し（すなわち、ｎ＝５）、各チャンクの２つのコピーが作成され（すなわち、ｐ＝２）、ファイルを取り出すために少なくとも４つのストレージプロバイダが必要であり（すなわち、ｍ＝４）、少なくとも１つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝１）ことが分かる。
【００２９】
例４では、１０個のチャンクが５つのストレージプロバイダにわたって分散し、ｎ＝５、ｐ＝３、ｍ＝３及びｑ＝２である。この例では、ＳＰ１がチャンク１、２、５、６、７、８、９を記憶し、ＳＰ２がチャンク３、４、６、７、８、１０を記憶し、ＳＰ３がチャンク２、５、６、８、９、１０を記憶し、ＳＰ４がチャンク１、２、３、４、５、７を記憶し、ＳＰ５がチャンク１、３、４、８、９、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１／ＳＰ２／ＳＰ３、ＳＰ１／ＳＰ２／ＳＰ４、ＳＰ１／ＳＰ２／ＳＰ５、ＳＰ１／ＳＰ３／ＳＰ４、ＳＰ１／ＳＰ３／ＳＰ５、ＳＰ１／ＳＰ４／ＳＰ５、ＳＰ２／ＳＰ３／ＳＰ４、ＳＰ２／ＳＰ３／ＳＰ５、ＳＰ２／ＳＰ４／ＳＰ５、又はＳＰ３／ＳＰ４／ＳＰ５の組み合わせが必要である。従って、これらの１０個の３ＳＰの組み合わせの各々は、２つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で５つのストレージプロバイダが存在し（すなわち、ｎ＝５）、各チャンクの３つのコピーが作成され（すなわち、ｐ＝３）、ファイルを取り出すために少なくとも３つのストレージプロバイダが必要であり（すなわち、ｍ＝３）、少なくとも２つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝２）ことが分かる。
【００３０】
例５では、１０個のチャンクが６つのストレージプロバイダにわたって分散し、ｎ＝６、ｐ＝３、ｍ＝４及びｑ＝２である。この例では、ＳＰ１がチャンク１、２、３、４、１０を記憶し、ＳＰ２がチャンク１、２、３、６、１０を記憶し、ＳＰ３がチャンク２、３、４、５、９を記憶し、ＳＰ４がチャンク４、５、６、７、８を記憶し、ＳＰ５がチャンク５，６、７、８、９を記憶し、ＳＰ６がチャンク１、７、８、９、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１／ＳＰ２／ＳＰ３／ＳＰ４、ＳＰ１／ＳＰ２／ＳＰ３／ＳＰ５、ＳＰ１／ＳＰ２／ＳＰ３／ＳＰ６、ＳＰ１／ＳＰ３／ＳＰ４／ＳＰ５、ＳＰ１／ＳＰ３／ＳＰ４／ＳＰ６、ＳＰ１／ＳＰ４／ＳＰ５／ＳＰ６、ＳＰ２／ＳＰ３／ＳＰ４／ＳＰ５、ＳＰ２／ＳＰ３／ＳＰ４／ＳＰ６、ＳＰ２／ＳＰ４／ＳＰ５／ＳＰ６、ＳＰ２／ＳＰ３／ＳＰ５／ＳＰ６、ＳＰ３／ＳＰ４／ＳＰ５／ＳＰ６、ＳＰ１／ＳＰ２／ＳＰ４／ＳＰ５、ＳＰ１／ＳＰ２／ＳＰ４／ＳＰ６、ＳＰ１／ＳＰ２／ＳＰ５／ＳＰ６、又はＳＰ１／ＳＰ３／ＳＰ５／ＳＰ６の組み合わせが必要である。従って、これらの１５個の４ＳＰの組み合わせの各々は、２つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で６つのストレージプロバイダが存在し（すなわち、ｎ＝６）、各チャンクの３つのコピーが作成され（すなわち、ｐ＝３）、ファイルを取り出すために少なくとも４つのストレージプロバイダが必要であり（すなわち、ｍ＝４）、少なくとも２つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝２）ことが分かる。
【００３１】
例６では、１０個のチャンクが６つのストレージプロバイダにわたって分散し、ｎ＝６、ｐ＝４、ｍ＝３及びｑ＝３である。この例では、ＳＰ１がチャンク１、２、３、４、５、６、１０を記憶し、ＳＰ２がチャンク１、２、３、４、６、１０を記憶し、ＳＰ３がチャンク２、３、４、５、７、８、９を記憶し、ＳＰ４がチャンク１、４、５、６、７、８、９を記憶し、ＳＰ５がチャンク２、５、６、７、８、９、１０を記憶し、ＳＰ６がチャンク１、３、７、８、９、１０を記憶する。完全な１０個のチャンクファイルを復元するには、ＳＰ１／ＳＰ２／ＳＰ３、ＳＰ１／ＳＰ２／ＳＰ４、ＳＰ１／ＳＰ２／ＳＰ５、ＳＰ１／ＳＰ２／ＳＰ６、ＳＰ１／ＳＰ３／ＳＰ４、ＳＰ１／ＳＰ３／ＳＰ５、ＳＰ１／ＳＰ３／ＳＰ６、ＳＰ１／ＳＰ４／ＳＰ５、ＳＰ１／ＳＰ４／ＳＰ６、ＳＰ１／ＳＰ５／ＳＰ６、ＳＰ２／ＳＰ３／ＳＰ４、ＳＰ２／ＳＰ３／ＳＰ５、ＳＰ２／ＳＰ３／ＳＰ６、ＳＰ２／ＳＰ４／ＳＰ５、ＳＰ２／ＳＰ４／ＳＰ６、ＳＰ２／ＳＰ５／ＳＰ６、ＳＰ３／ＳＰ４／ＳＰ５、ＳＰ３／ＳＰ４／ＳＰ６、又はＳＰ４／ＳＰ５／ＳＰ６の組み合わせが必要である。従って、これらの１９個の３ＳＰの組み合わせの各々は、３つのストレージプロバイダが存在しなくてもよいことを示す。従って、全部で６つのストレージプロバイダが存在し（すなわち、ｎ＝６）、各チャンクの４つのコピーが作成され（すなわち、ｐ＝４）、ファイルを取り出すために少なくとも３つのストレージプロバイダが必要であり（すなわち、ｍ＝３）、少なくとも３つのストレージプロバイダが存在しなくてもファイルの完全な復元が行われる（すなわち、ｑ＝３）ことが分かる。
【００３２】
図７に、強力な暗号鍵を用いてインデックスファイルを暗号化する暗号鍵管理戦略を示す。図示の実装では、各ユーザについて一意のインデックス暗号鍵７００が生成される。インデックス暗号鍵７００は、ユーザが管理するパスワードを用いて暗号化される。従って、ユーザは、ファイルのアップロード又はダウンロードを行う際には常に自身のパスワードを提供する。
【００３３】
上述した方法、装置、及び関連する非一時的記憶媒体は、様々に変形が可能である。また、明確かつ簡潔な説明のために、方法、装置及び非一時的記憶媒体についての多くの説明を簡略化した。多くの説明では、一定の標準規格の専門用語及び構造を使用している。しかしながら、開示した方法、装置及び非一時的記憶媒体は、さらに広い適用が可能である。
【００３４】
当業者であれば、本明細書に開示した実装に関連して説明した様々な例示的な論理ブロック、モジュール、ユニット及びアルゴリズムステップは、多くの場合、電子ハードウェア、コンピュータソフトウェア、又はこれらの両方の組み合わせとして実装することができると理解するであろう。このハードウェアとソフトウェアの互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール及びステップについて、一般にこれらの機能面から説明した。このような機能をハードウェア又はソフトウェアのいずれとして実装するかは、システム全体に課せられる特定の制約に依存する。当業者であれば、説明した機能を各特定のシステムのために様々な方法で実装することができるが、このような実装の決定を、本発明の範囲からの逸脱を引き起こすものとして解釈すべきではない。また、ユニット、モジュール、ブロック又はステップ内の機能のグループ化は、説明を容易にするためのものである。本発明から逸脱することなく、１つのユニット、モジュール又はブロックから特定の機能又はステップを移行させることもできる。
【００３５】
本明細書に開示する実装に関連して説明した方法のステップ及びブロック又はモジュールの処理は、ハードウェアにおいて直接具体化することも、プロセッサによって実行されるソフトウェアモジュールにおいて具体化することも、又はこれらの組み合わせにおいて具体化することもできる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、又は他のいずれかの形態の記憶媒体に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体との間で情報を読み書きできるようにプロセッサに結合することができる。別の方法では、記憶媒体をプロセッサに統合することができる。プロセッサ及び記憶媒体は、ＡＳＩＣ内に存在することができる。また、結合されるものとして説明した装置、ブロック又はモジュールは、中間の装置、ブロック又はモジュールを介して結合することができる。
【００３６】
上記の開示した実装の説明は、当業者が本開示を実施又は利用できるように行ったものである。当業者には、これらの実装の様々な修正が容易に明らかになると思われ、また本明細書で説明した一般的原理は、本発明の趣旨又は範囲から逸脱することなく他の実装にも適用することができる。例えば、ファイルの代わりに、又はこれに加えて、ゲームオブジェクト又はその他のタイプの仮想オブジェクトを使用することもできる。従って、これらの技術は、上述した特定の例に限定されるものではない。従って、本明細書で提示した説明及び図面は、本発明の現在のところ好ましい実装を表すものであり、従って本発明が広く意図する主題を表すものであると理解されたい。さらに、本発明の範囲は、当業者にとって明らかになり得る他の実装を完全に含み、従って添付の特許請求の範囲以外のものによって限定されるものではないと理解されたい。
【符号の説明】
【００３７】
１００  分散型データストレージ及びルーティングシステム
１０２  データ／ファイル
１１０  クライアントストリームパーサ
１２２  ゲートウェイ（ＳＰ１）
１２４  ゲートウェイ（ＳＰ２）
１２６  ゲートウェイ（ＳＰ３）
１２８  ゲートウェイ（ＳＰｎ）
１３２  ストレージプロバイダ１
１３４  ストレージプロバイダ２
１３６  ストレージプロバイダ３
１３８  ストレージプロバイダｎ
【図１】
2019169196.tif 000003
【図２】
2019169196.tif 000004
【図３】
2019169196.tif 000005
【図４】
2019169196.tif 000006
【図５】
2019169196.tif 000007
【図６】
2019169196.tif 000008
【図７】
2019169196.tif 000009
【手続補正書】
【提出日】令和1年7月4日(2019.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
インデックスを用いてファイルを取り出す方法であって、
前記ファイルの複数のチャンクがどこに記憶されているかを含む前記インデックスを検索するステップと、
前記複数のチャンクを複数のストレージプロバイダから取り出すステップと、
前記複数のチャンクを再構築して前記ファイルを復元するステップと、
を含むことを特徴とする方法。
【請求項２】
前記複数のチャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項１に記載の方法。
【請求項３】
前記ファイルの前記複数のチャンクを取り出すために使用されるストレージプロバイダの総数は２よりも多い、
請求項１に記載の方法。
【請求項４】
インデックスを用いてファイルをストリーミングする方法であって、
前記ファイルの複数のチャンクがどこに記憶されているかを含む、前記ファイルのプロキシファイルの前記インデックスを検索するステップと、
前記プロキシファイルの前記複数のチャンクを複数のストレージプロバイダから取り出すステップと、
前記プロキシファイルの前記複数のチャンクを再構築してストリーミングするステップと、
を含むことを特徴とする方法。
【請求項５】
前記複数のチャンクをストレージプロバイダ固有の暗号化スキームに基づいて復号するステップをさらに含む、
請求項４に記載の方法。
【請求項６】
前記プロキシファイルの前記複数のチャンクを取り出すために使用されるストレージプロバイダの総数は２よりも多い、
請求項４に記載の方法。
【外国語明細書】
2019169196000001.pdf