(57)【特許請求の範囲】
【請求項１】
ｉ）それぞれが一意に割り当てられた識別子を有するスライスにそれぞれ分離されたデータファイルを、および、ｉｉ）前記一意の識別子にそれぞれ関連付けられたマップを記憶および処理する方法であって、
前記マップはクライアントのデータセンタとストレージノードネットワークに記憶され、
データミクサアルゴリズム（ＤＭＡ）を適用する少なくとも１つのプロセッサを使用して、サイズＬ＝｜Ｆ｜のオブジェクトＦを、それぞれのサイズがＬ／ｍ（ｍ＜ｎ）のｎ個の認識できない部分Ｆ１、Ｆ２、…Ｆｎにコード化することを含み、
任意のｍ個の部分のコレクションから復元でき、
前記オブジェクトＦにおいてｍ個の部分より少ないものから明示的に復元できるデータはなく、
前記ＤＭＡの少なくとも一部は順方向エラー訂正コード（ＦＥＣ）を含み、
前記ＦＥＣからの出力は入力記号を包含せず、
さらに、前記ＦＥＣからの出力は、ｍ個の記号のメッセージをｎ個の記号のより長いメッセージに変換して、元のメッセージが長さｍの前記ｎ個の記号のサブセットから回復できるようにする、方法。
【請求項２】
少なくとも１つのプロセッサを使用して、実行される時に、プロセッサが、データを前記スライスに、一部は前記認識できない部分に、および、一部は前記認識できない部分から物理的に離れたロケーションに再構成可能にする少なくともコードの一部を記憶することをさらに含む、請求項１に記載の方法。
【請求項３】
前記スライスを前記認識できない部分にコード化することは、複数の分散されたロケーションで生じさせる、請求項１に記載の方法。
【請求項４】
少なくとも１つのプロセッサを使用して、複数のストレージユニットの間で前記認識できない部分を分散することであって、前記データファイルのうちの任意の１つを復元するのに十分なデータを有するストレージユニットは１つもない、分散することをさらに含む、請求項１に記載の方法。
【請求項５】
少なくとも１つのプロセッサを使用して、オブジェクトＦを、それぞれのサイズがＬ／ｍのｍ個のスライスＳ１、Ｓ２、…Ｓｍに分けることであって、前記ｍ個のスライスは、
（Ｓ１、Ｓ２、…Ｓｍ）・Ｇｍ×ｎ＝（Ｆ１、Ｆ２、…Ｆｎ）
のように、ｍ−ｏｆ−ｎミクサコードを使用してｎ個の認識できない部分Ｆ１、Ｆ２、…Ｆｎにコード化される、分けることをさらに含み、式中、Ｇｍ×ｎは前記ミクサコードのジェネレータ行列であり、以下の条件：
１）Ｇｍ×ｎのいずれのカラムもｍ×ｍ恒等行列のいずれのカラムにも等しくない、
２）Ｇｍ×ｎの任意のｍ個のカラムはｍ×ｍ正則行列を形成する、および、
３）そのジェネレータ行列Ｇｍ×ｎの任意の正方部分行列は正則である、を満たす、請求項１に記載の方法。
【請求項６】
１）ジェネレータ行列がＧｍ×（ｍ＋ｎ）＝（Ｃｍ×ｍ｜Ｄｍ×ｎ）である、任意のｍ−ｏｆ−（ｍ＋ｎ）ミクサコードを選ぶこと、
２）ジェネレータ行列が
【数１】
0006296316.tif 000007
であるｍ−ｏｆ−ｎミクサコードを採用するように前記ＤＭＡを構築することによって、任意のｍ−ｏｆ−（ｍ＋ｎ）ミクサコードから強力な機密性によって前記データミクサアルゴリズムを構築することをさらに含む、請求項１に記載の方法。
【請求項７】
前記ジェネレータ行列はコーシー行列またはヴァンデルモンド行列である、請求項６に記載の方法。
【請求項８】
請求項１に記載のステップを行うように動作する１つまたは複数のプロセッサを含む、請求項１に記載のステップを行うためのストレージおよび処理システム。
【請求項９】
前記１つまたは複数のプロセッサは請求項２に記載のステップを行うように動作する、請求項８に記載のシステム。
【請求項１０】
前記１つまたは複数のプロセッサは請求項３に記載のステップを行うように動作する、請求項８に記載のシステム。
【請求項１１】
前記１つまたは複数のプロセッサは請求項４に記載のステップを行うように動作する、請求項８に記載のシステム。
【請求項１２】
前記１つまたは複数のプロセッサは請求項５に記載のステップを行うように動作する、請求項８に記載のシステム。
【請求項１３】
前記１つまたは複数のプロセッサは請求項６に記載のステップを行うように動作する、請求項８に記載のシステム。
【請求項１４】
前記１つまたは複数のプロセッサは請求項７に記載のステップを行うように動作する、請求項１３に記載のシステム。
【請求項１５】
メディアコンテンツを処理する方法であって、
前記メディアコンテンツを複数のファイルスライスに分離するステップと、
前記ファイルスライスからメディアコンテンツを再構成するために第１のメタデータを生成して、クライアントのデータセンタとストレージノードネットワークに記憶されるステップと、
前記ファイルスライスを消失訂正符号化するステップであって、前記消失訂正符号化にはデータミクサアルゴリズム（ＤＭＡ）が用いられ、前記ＤＭＡの少なくとも一部は順方向エラー訂正コード（ＦＥＣ）を含み、前記ＦＥＣからの出力は入力記号を包含せず、前記スライスは別個のファイルスライスフラグメントに分けられ、さらに、前記メディアコンテンツは前記消失訂正符号化されたファイルスライスフラグメントから認識できない、消失訂正符号化するステップと、
前記ファイルスライスフラグメントから前記ファイルスライスを再構成するために第２のメタデータを生成して、ストレージノードネットワークに記憶されるステップと、
前記ファイルスライスフラグメントを複数の分散型ネットワーク化ストレージノードに送るステップであって、前記ノードから、前記メディアコンテンツが前記第２のメタデータを使用して取り出されかつ復元可能である、送るステップと、
クライアントデコーダにおいて、前記ネットワーク化ストレージノードから前記ファイルスライスフラグメントを受信するステップと、
前記第１及び第２のメタデータに従って前記メディアコンテンツを復元するステップと、を含み、
前記メディアコンテンツを復元するステップは前記メディアコンテンツの再生中に同時に行われる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
この非仮出願は、２０１４年５月１３日に出願した「データストレージのための方法」という名称の米国仮特許出願第６１／９９２，２８６号、および、２０１４年９月２２日に出願した「メディアストリーミングのための方法」という名称の米国仮特許出願第６２／０５３，２５５号の優先権を主張するものである。米国仮特許出願第６１／９９２，２８６号および第６２／０５３，２５５号の開示は、それら開示全体が参照により本明細書に組み込まれる。
【０００２】
本開示の主題は、一般的に、セキュリティ保護データストレージおよび送信に関し、より詳細には、分散型セキュリティ保護データストレージ、ならびに、メディアストリーミングおよび他のアプリケーションで使用するための送信に関する。
【背景技術】
【０００３】
クラウドコンピューティングが情報技術（ＩＴ）インフラの状況に革命をもたらす将来性は、企業自体のデータセンタまたはローカルネットワーク内でかねてより維持されるハードウェアリソースおよびソフトウェアリソースの両方がサードパーティによってインターネット上でホストされるクラウドサーバのネットワークを通して利用可能とすることで、企業が、自身の複雑なＩＴインフラおよびデータセンタを所有しかつ管理する必要性を軽減することができることに基づく。しかしながら、企業のデータストレージおよびコンピューティング要件をこのようなサードパーティの「クラウド」サーバ（複数可）に移行するように企業を納得させるために、クラウドサーバは、顧客の必要性およびセキュリティ上の懸念を満足させるようにするある程度の性能、データセキュリティ、スループット、および有用性基準を提供する必要がある。例えば、ストレージリソースには、エンタープライズ空間におけるクラウドコンピューティングの全面的な採用というボトルネックが残されている。現在のクラウドベースストレージリソースは、危険なセキュリティの脆弱性、可用性の不確定要素、および過剰な費用を含む深刻な性能上の懸念に苦しむ可能性がある。クラウドベースストレージまたはサービス型ストレージ（ＳｔＡＡＳ）は、エンタープライズのデータセンタにおいて見出される現在の組織内ストレージ容量に匹敵する可能性があるクラウドにおける仮想「ストレージデバイス」を作成しなければならない。
【０００４】
ファイルおよびファイルのグループ全体が１つの物理的なサーバロケーションに記憶される現在のクラウドベースストレージソルーションの大部分は、従来のファイルストレージ（ＣＩＦＳ、ＮＦＳ）技術に基づくことが多い。このアプローチは、インターネット上で見出される典型的な通信条件下で受け入れ可能なデータ転送レートを供給できない。待ち時間は満足のいくものではなく、エンドユーザまたはコンシューマは、最良に設計されたクラウドアプリケーションにおいても性能上の障壁を知る。さらに、大量のデータの転送には法外な時間がかかる可能性があり、実際的ではない。例えば、現在の技術を使用したクラウドによる１Ｔｂのデータ転送は、完了するには数週間を必要とする。
【０００５】
完全なファイルが単一のロケーションに記憶されるクラウドストレージはまた、機密の企業情報を危険にさらすことに関心があるハッカーにとって興味をかき立てる対象となっている。エンタープライズのデータセンタにおけるセキュリティ手順の設計に対する全ての尽力は、インターネット上で攻撃する腹積もりの１ハッカーによって消滅する可能性がある。従って、クラウドベースストレージシステムのセキュリティを高めることは非常に望ましい。
【０００６】
クラウドストレージソルーションはまた、エンタープライズクライアントとそのクラウドストレージサーバとの間のインターネット通信の混乱から生じる場合がある「停止状態」に対して非常に脆弱である。これらの停止状態は、継続時間が可変的である可能性があり、例えば、サービス妨害（ＤＯＳ）攻撃発生時に非常に長くなる可能性がある。エンタープライズは、これらの停止状態中に業務を停止せざるを得ない場合、重大な損害を被る可能性がある。
【０００７】
１つのサーバのロケーションにファイル全てを記憶することに基づくクラウドストレージソルーションはまた、そのサーバロケーションが危険にさらされる場合、障害回復を潜在的に危険にする。レプリケーションおよびバックアップも同じ物理的サーバロケーションにおいて対応される場合、不具合および障害回復の問題は、エンタープライズに対して大量のデータ損失という真の危険性をもたらす可能性がある。
【０００８】
現在の技術によるクラウドストレージソルーションは、記憶されたエンタープライズデータの安全性を徹底する完全なレプリケーションおよびバックアップのストレージオーバーヘッドを必要とする。典型的な現在のクラウドストレージ技術セットアップにおいて、これには、記憶されるデータの８００％までの冗長性を必要とする可能性がある。この大量の必要とされるデータ冗長性には、クラウドにおいてストレージ容量を維持するための費用にとてつもないオーバーヘッドが付加される。このような冗長性の必要性には、費用を増加させるだけでなく、データセキュリティに関する新しい問題が持ち込まれる。加えて、この冗長性全てによって、クラウドサーバが全てのサーバのデータトランザクションにおいてレプリケーションを常に使用する際の性能の低下ももたらされる。
【０００９】
インターネット接続は、データの高いスループットに対応する能力が改善されているため、メディアストリーミングは、悪徳なコピーの危険性を低減するように、ビデオおよび音楽などのメディアコンテンツを提供する非常に一般向けのやり方になっている。クラウドストレージは、多くのメディアコンテンツストリーミング方式における重要な役割を果たす。典型的には、メディアコンテンツは企業のウェブサーバ上にある。ユーザによって要求される時、メディアコンテンツは、メディアファイルの次のセグメントを表示するのに間に合うようにクライアントによって受信される連続するデータセグメントの一様のストリームでインターネット上でストリームされ、その結果、ユーザに対してオーディオまたはビデオのシームレスな再生らしきものが生じる。
【００１０】
現在、メディアストリーミング技術は、連続的な再生を提供するように、メディアファイルの次のセグメントを再生するのに間に合わせてクライアントによって受信されるデータのセグメント化されたストリームとして、圧縮形式で、ウェブサーバを通してメディアファイルを転送する概念に基づく。場合によっては、データ転送のレートは、データが再生されるレートを超え、追加のデータは将来的な使用のためにバッファに入れられる。データ転送のレートがデータ再生のレートより遅い場合、クライアントがメディアの次のセグメントを再生するために必要とされるデータを収集する間提示は停止することになる。ストリーミングメディア技術の利点は、クライアントが大型のメディアファイル全体（例えば、ノーカットの映画）をダウンロードするのを待つ必要がないこと、および、オンデマンドのダウンロードの特質がクライアントによってメディアコンテンツの不正コピーから保護するデジタル著作権管理（ＤＲＭ）方式で処理するのに適していることにある。
【００１１】
現在のメディアストリーミング技術は、データのストリームを受信するためにクライアントが接続するウェブまたはメディアサーバ上に全メディアファイルの完全なコピーを記憶する。送信プロセス中のデータ損失は、転送プロセスに容易に割り込み、かつ、クライアントにおけるメディアコンテンツの再生を中断させる可能性がある。このような問題を回避するために、先行技術では、多くの場合、同じメディアファイルを複数のサーバノードに置くようにし、複数のデータはパブリックであろうとプライベートであろうと世界を通じて集まるため、ユーザはそれらデータ近くのサーバノードに接続することができる。これには、接続性の問題によるデータパケット損失に直面して必要とされる一様のデータ転送レートを保証する必要があり、同じファイルの複数のコピーを世界を通じて多くのサーバ上に展開することは、ストリーミングメディアプロバイダに大きな負担を課す。
【００１２】
本開示の主題は、上で説明した問題の１つまたは複数を軽減するおよび／または克服すること、および、よりセキュリティ保護されたデータストレージおよび送信方法を提供することに関し、より詳細には、メディアストリーミングおよび他のアプリケーションで使用するためのよりセキュリティ保護されたデータストレージおよび送信方法を提供することに関する。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
とりわけ、ストリーミングメディアの必要性に適した分散型データストレージをセキュリティ保護するための方法およびシステムが開示される。
【課題を解決するための手段】
【００１４】
特定のデータストレージの実施形態は、メディアデータファイルを複数の別個の部分に分離すること、これらの別個の部分を消失訂正符号化すること、および、複数のストレージユニットの間でそれら部分を分散することを含み、この場合、データファイルを復元するのに十分なデータを有するストレージユニットは１つもない。データファイルの別個の部分のそれぞれがどのストレージユニットに記憶されるかを示すマップが生成される。特に、それぞれの別個の部分に一意の識別子が割り当てられ、一意の識別子のマップは、データファイルの再構成を容易にするために使用される。
【００１５】
別の実施形態では、本明細書に開示されるデータストレージ技法は、データファイルをスライスに分離すること、一意の識別子をそれぞれのスライスに割り当てること、再構成を容易にするために一意の識別子のマップを作成すること、それぞれのスライスを別個のスライスフラグメントにフラグメント化すること、スライスフラグメントを消失訂正符号化すること、データファイルを復元するのに十分なデータを有するストレージユニットは１つもない複数のストレージユニットの間で該フラグメントを分散すること、および、どのストレージユニットが何のフラグメントを収容しているかについてのマップを生成することを含む。
【００１６】
開示される消失訂正符号化プロセスによって、データセキュリティおよびパケット損失軽減という改善法が達成される。最初に、データは消失訂正符号化プロセス中に認識できない部分にコード化されることで高度のセキュリティを提供する。次に、消失訂正符号化されたデータは、データ損失発生時のエラー訂正を提供する。消失訂正符号化がデータ量を増加させる一方、データサイズの増加より少ないデータ損失を適応させかつ回復させることができる。特に、好ましい実施形態に従って記憶される、処理されかつ消失訂正符号化されたデータは、元のデータのいずれのレプリケーションも含まないため、セキュリティがかなり高まる。
【００１７】
一実施形態では、ストリーミングメディアコンテンツを記憶するための方法は、デジタルメディアコンテンツファイルを別個の部分またはフラグメントに分離することと、別個の部分を消失訂正符号化することと、別個の部分を複数のストレージユニットの間で分散することとを含み、メディアコンテンツを復元するのに十分なデータを有するストレージユニットは１つもない。好ましい実施形態では、別個の部分のそれぞれがどのストレージユニットに記憶されるかを明示するマップが生成される。メディアコンテンツのそれぞれの別個の部分に一意の識別子が割り当てられ、一意の識別子のマップは、メディアコンテンツの再構成を容易にするために使用される。例えば、マップは、メディアファイルを復元し、かつ、ブラウザまたはその他で、クライアントデバイス上のメディアコンテンツの再生を可能にするために、クライアントデバイスによって使用可能である。
【００１８】
別の実施形態では、データストレージの方法は、データファイルをスライスに分離するステップと、一意の識別子をそれぞれのスライスに割り当てるステップと、一意の識別子のマップを作成するステップと、スライスを別個の部分またはフラグメントにフラグメント化するステップと、別個の部分を消失訂正符号化するステップと、別個の部分を複数のストレージユニットの間で分散するステップであって、データファイルを復元するのに十分なデータを有するストレージユニットはない、分散するステップと、別個の部分のそれぞれがどのストレージユニットに記憶されるかを示すマップを生成するステップと、を含む。クライアントデバイス上で、マップを使用してストリームされたメディアファイルの再生および／またはさらなる記憶を可能にすることによって、復号が行われる。
【００１９】
本開示の前述の要約、好ましい実施形態、および他の態様は、添付の図面と併せて読むと、特有の実施形態の以下の詳細な説明を参照して最も良く理解されるであろう。
【図面の簡単な説明】
【００２０】
【図１】例示のストレージシステムの３つの層の概略図である。
【図２】例示の実施形態によるファイル処理のさまざまな段階を示す図である。
【図３−１】例示の実施形態によるファイル処理中に行われるさまざまなステップを略述する表である。
【図３−２】例示の実施形態によるファイル処理中に行われるさまざまなステップを略述する表である。
【図４Ａ】例示の実施形態によるファイル処理の第１のセクションの図である。
【図４Ｂ】例示の実施形態による、分散させるためにスライスフラグメントを作り出すためのファイルスライスの消失訂正符号化の図である。
【図５】例示の実施形態による、データストレージノードに対するファイルのアップロードプロセスの詳細な図である。
【図６−１】例示の実施形態による、データストレージからクライアントへのデータのダウンロードプロセス中に行われるさまざまな詳細なステップの表である。
【図６−２】例示の実施形態による、データストレージからクライアントへのデータのダウンロードプロセス中に行われるさまざまな詳細なステップの表である。
【図７Ａ】例示の実施形態による、ＣＳＰに対してなされるクライアントダウンロード要求の図である。
【図７Ｂ】例示の実施形態によるスライスフラグメントについての要求の図である。
【図８】ファイルダウンロードプロセス中のＣＳＰ、ＦＥＤＰ、およびＳＮＮの間の対話の詳細な図である。
【図９】一実施形態によるデータガベージコレクションプロセスの図である。
【発明を実施するための形態】
【００２１】
さまざまな図面における同様の参照符号および名称は同様の要素を示す。
【００２２】
それぞれのデータファイルを、一連のクラウドサーバおいて記憶されるファイルスライスフラグメントに分解し、該フラグメントが好ましくは種々の地理的ロケーションの間で分散されるストリーミングメディアファイルのためのクラウドストレージ技術が本明細書に開示される。一実施形態では、クライアントエンタープライズメディアデータは、オブジェクトストレージ技術を使用してファイルスライスフラグメントに逆アセンブルされる。結果として生じるファイルスライスフラグメントの全ては暗号化され、かつ、一連のクラウドサーバに対する分散の前に、消失訂正符号化を使用してエラー訂正のために最適化される。これによってクラウドにおいて仮想「データデバイス」を作成する。クラウドにおけるデータストレージのために使用されるサーバは、データスループットの速度、ならびにデータセキュリティおよび信頼性両方に向けて最適化するためにクライアントによって選択可能である。取り出しのために、暗号化されかつ分散させたファイルスライスフラグメントは、取り出され、かつ、クライアントの要求時に元のファイルにリビルドされる。この分散アプローチは、メディアファイルが単一の物理的デバイスに記憶されるのではなく、クラウドにおいて、それぞれがファイルの暗号化された「フラグメント」のみを包含する一連の物理的デバイスの間で広がる、「仮想ハードドライブ」デバイスをもたらす。ファイルを移動させる、削除する、読み出す、または編集する目的のためのファイルへのアクセスは、ファイルフラグメントをリアルタイムで迅速に再構成することによって達成される。このアプローチによって、データ転送およびアクセスの速度、データセキュリティ、ならびにデータ可用性における多数の改善がもたらされる。該アプローチはまた、既存のハードウェアおよびソフトウェアインフラを活用することができ、ストレージ技術の分野における実質的な費用削減をもたらす。
【００２３】
クラウドサーバにおいて、特にストリーミングメディアデータを含むデータの分散型ストレージは１つのとりわけ有用なアプリケーションであるが、同技術は、ＬＡＮまたはＷＡＮなどのいずれの可能な通信技術によっても接続できる複数のストレージデバイスにデータが記憶できる構成に応用可能である。開示された技術の速度およびセキュリティのメリットは、最終ストレージデバイスが複数の物理的ハードディスクまたは複数の仮想ハードディスクである、情報技術（ＩＴ）データセンタのデバイス内に存続させることが可能である。ＩＴユーザは、本開示の技術が実装される高速度のＬＡＮによって接続される企業全体を通して利用可能な全てのストレージデバイスを使用することを選んでよい。複数のストレージデバイスは、サイバースペースにおける複数の個々のユーザにわたって広がってもよく、ファイルは、そのネットワークにおいて利用可能である複数の物理的または仮想ハードディスクに記憶される。それぞれの場合では、システムにおけるデータ転送の速度およびデータストレージのセキュリティは大幅に向上される。
【００２４】
開示された主題の使用は、バックアップまたは障害回復の目的のための二次データストレージを含む。開示された主題はまた、サーバ側の処理なしでファイルにアクセスする場合のプライマリーストレージの必要性に応用可能である。ある特定の実施形態では、これは、制限なくインターネットを通してストリームするのに利用可能とできるビデオまたはオーディオコンテンツを含むメディアコンテンツのストレージを含む。
【００２５】
データストレージの利点
開示されたストレージ技術は、既存のシステムにわたって多数の利点を提示する。これら利点の中には以下のものがある。
【００２６】
Ａ．データ転送レート
既存のクラウドストレージ技術と比較すると、開示された実施形態は、典型的なインターネット通信条件下で、データ転送速度の実質的な改善を可能にする。３００ｍｂｐｓまでの速度が実証されており、このことは、例えば、いくつかの既存のシステムを使用すると１か月かかる可能性がある１Ｔｂのファイルの転送が１０時間で完了できることを意味することになる。この速度の改善は数個の要因から生じる。
【００２７】
ファイルを復元する際に、それに伴う「部分」は複数のサーバ間で並列に転送され、その結果、実質的にスループットが改善される。これは、今日使用される一般向けのダウンロードアクセラレータ技術のいくつかにたとえることができ、これによってまた、ファイルを部分でダウンロードするための複数のチャネルがオープンし、その結果、実質的にダウンロードレートが増大する。クラウドサーバの１つへの転送接続のうちの１つにおいて生じる場合がある待ち時間のボトルネックによって、通常の待ち時間の条件下で動作している他のサーバへの転送の速度は上昇し続ける。
【００２８】
分散型ストレージから生じるデータセキュリティおよび信頼性の固有の改善によって、レプリケーションによってデータの読み書きの連続的なミラーリングの必要性を排除し、その結果、スループットに対する速度がさらに改善される。
【００２９】
典型的には、データの最もリソース集約的な処理は、クラウドサーバストレージサイトおよびクライアントサイト両方に対する速度および接続性について最適化される、クラウドにおける１つまたは複数の非常に高い性能のサーバ上のサーバ側で生じる。
【００３０】
特に、ある特定の実施形態における消失訂正符号化は、例えば、本明細書にさらに記載されるように、複数のデータ処理サーバ上で、サーバ側で行われる。これらのサーバは、消失訂正符号化プロセスが典型的には中央処理装置（ＣＰＵ）に集約するタスクであるため、高い処理性能を有するように選定されてよい。これによって、消失訂正符号化を効率的に行うためのハードウェアおよびソフトウェアインフラがない場合があるクライアント側で、または、単一のサーバ上で行われる消失訂正符号化と比較すると性能が改善されることになる。かかる処理を最適化されたサーバ群に移すことによって、既存の設計と比較して、クライアント側の負荷および性能要件が減少する。
【００３１】
Ｂ．データセキュリティ
開示された「仮想デバイス」ストレージは、以前の設計に対するデータセキュリティに関して大幅に改善されている。それぞれのメディアファイルを多くのファイルスライスフラグメントに分解し、かつ、該ファイルスライスフラグメントを、好ましくは地理的に分散したロケーションにおける多くのクラウドストレージロケーション上で分散させることによって、ハッカーは、ファイルをその元の形式に再構成することが極めて困難であることがわかるであろう。さらに、ファイルスライスフラグメントは、ある特定の実施形態において全て暗号化されて、将来的に可能性のあるハッカーをまごつかせるためにデータセキュリティの別の層を付加する。クラウドストレージロケーションのうちの１つへのハッキングの成功は、ハッカーが全メディアファイルを再構成できることにはならない。これは、以前の設計に対するデータセキュリティにおける大幅な改善である。
【００３２】
ある特定の実施形態では、ファイルスライスフラグメントの処理およびストレージ両方に使用されるサーバは、複数のクライアントによって共有されてよく、ハッカーは、該フラグメントがどのクライアントに属し得るかをデータスライスから識別することはできない。これによって、ハッカーにとって、この技術を使用して記憶されたファイルデータのセキュリティを危険にさらすことがより一層困難になる。ファイルスライスフラグメントは、種々のクラウドストレージサーバにランダムに分散させることができ、データストレージのセキュリティをさらに向上させる。ある特定の実施形態では、ファイルスライスフラグメント全てが直接分散されているロケーションをクライアントさえ正確に知ることができない。また、ファイルスライスフラグメントを再構成する、および／または、ファイルスライスフラグメントを解読するためのキー全てが記憶される場所は１つもない。最後に、データセキュリティをさらに向上させるために、メタデータストレージの２次元モデルが使用可能であり、ここで、データを復元するために必要とされるメタデータは、クライアント側およびリモートクラウドストレージサーバの両方で記憶される。
【００３３】
Ｃ．データ可用性
開示された「仮想デバイス」ストレージではまた、先行技術のストレージ技術と比較してデータの可用性が改善されている。ファイルを、いくつかの種々のクラウドサーバに記憶される複数のファイルスライスフラグメントに分割することによって、クライアントロケーションと物理的クラウドロケーションのうちの１つとの間の通信上の問題は、他のデータロケーションとの通常の通信および該ロケーションにおける待ち時間が少ないことによって補うことが可能である。ファイルフラグメントを複数のロケーションの間で分散させることによる全体的効果は、サイトのうちの１つにおける通信断絶による停止状態からシステム全体を隔離することである。
【００３４】
好ましくは、後述される中間サーバ処理ノードは、全て高性能プロセッサで構成され、待ち時間が少ない。これによって、データ転送についてクライアントに対する可用性が高くなる。
【００３５】
好ましくは、中間サーバ処理ノードは、クライアントが該ノードのサービスを要求する待ち時間を最小限に抑えるようにそれぞれのクライアント要求に応答して、動的に選ばれてよい。クライアントはまた、ファイルスライスフラグメントを記憶するために使用されるクラウドストレージサーバのリストから選択してよく、自身の地理的ロケーションおよびこれらのサーバの可用性に基づいてこのリストを最適化することができる。これによって、それぞれの転送要求時にそれぞれのクライアントに対するデータ可用性がさらに最大化される。
【００３６】
Ｄ．データ信頼性
開示された「仮想デバイス」ストレージではまた、クラウドデータストレージシステムの信頼性において先行技術に対して改善されている。それぞれのファイルをファイルスライスフラグメントに分離することは、ハードウェアもしくはソフトウェアの不具合、または、物理的クラウドストレージロケーションのうちの１つにおけるエラーが、ある特定のかねてより存在するシステムにおいてみられるような、ファイル全体が１つの物理的ロケーションに記憶される場合のように、ファイルへのアクセスを妨げるようなことにならないことを意味する。また、本明細書において論じられる消失訂正符号化技術の使用は、システムにおける高品質のエラー訂正能力を保証して、データセキュリティおよび信頼性両方共を向上させる。本明細書で使用されるファイルスライスフラグメントおよび消失訂正符号化技法の組み合わせは、クラウド技術のエンタープライズによる採用を促すような信頼性を大きく進展させる。
【００３７】
Ｅ．既存のクラウドインフラリソースの使用
開示された主題の要素は、パブリックリソースおよびプライベートリソース両方によって、既存のクラウドサーバインフラを活用することができる。現在のクラウドプロバイダは、開示された方法論による使用のために該プロバイダの既存のハードウェアおよびソフトウェアインフラによるセットアップを行うことができる。従って、本明細書に開示される技術によってもたらされる向上の大部分は、修正することなくまたは最小限の修正によって現在存在するクラウドリソースを使用できるため、最小限の投資で利用可能とすることができる。
【００３８】
Ｆ．インフラ費用の削減
ある特定の実施形態は、既存のクラウドストレージ技術ソルーションと比較して、必要とされる待ち時間ははるかに少ない。上記のように、先のストレージシステムは、ミラーリングおよびレプリケーションに当てられるストレージは、さらに５００％必要とする可能性がある。本明細書に開示される実施形態は、固有の信頼性がより高いため、元のファイルサイズにわたって３０％の冗長性のみでうまく動作することができる。３０％の冗長性だけでも、既存のシステムよりも高いレベルの信頼性が達成できる。高い冗長性に対する必要性を低減することで、クラウドストレージ能力に対する費用は低下することになる。年々見られるエンタープライズデータおよびストレージの必要性における急激な増加によって、この冗長性の低減は、そのローカルデータセンタと完全に置き換えるためにエンタープライズにとってクラウドソルーションを経済的に実行可能にする重要な要因である。
【００３９】
本明細書にさらに開示されるように、開示された「仮想デバイス」ストレージ技術の実施形態は、ファイルを、最終的に所定の数のクラウドストレージロケーションに転送されることになるファイルスライスおよびファイルスライスフラグメントに分割すること；ファイルがどのように分割され、かつ、どのクラウドロケーションにおいてファイルスライスフラグメント群が記憶されるかを記述してクライアントによるファイルの再構成を可能にする、ファイルスライスおよびファイルスライスフラグメントのマップを作成すること；追加のデータセキュリティを提供するためにファイルスライスおよびファイルスライスフラグメントを暗号化すること；エラーチェックおよび回復のために部分的に消失訂正符号化情報を付加すること；および、適正に書き込まれなかったおよび逆アセンブルされなかった、または、読み出されなかったおよび再構成されなかった、取り残されたファイルスライスフラグメントのガベージコレクションを行うことといった、ある特定のタスクを達成する。
【００４０】
図１に示されるように、例示のシステムの実施形態の基本的構造は、３つの層を含むものとして視覚化されてよい。第１の層は、クライアントのバックオフィスまたはデータセンタに位置することができるクライアント側プロセッサ（ＣＳＰ）である。（ブラウザにおいて実行しているウェブアプリなどの）クライアントアプリケーションは、ＣＳＰにアクセスして、アプリケーションパラメータを設定し、かつ、クライアントのデータセンタからストレージノードネットワークへのファイルのアップロード、および、ストレージノードネットワークからクライアントのデータセンタへのファイルのダウンロードを開始することができる。図において、「スライス」は全般的にファイルスライスに言及するために使用され、「ａｔｏｍ」は全般的にファイルスライスフラグメントに言及するために使用される。
【００４１】
例示のシステムの第２の層は、中間データ処理を行うフロントエンドデータプロセッサ（ＦＥＤＰ）を含む。ＦＥＤＰは、クラウドにおける複数の分散されたロケーションに位置してよい。複数のＦＥＤＰサーバは、それぞれのクライアントに対して利用可能であってよく、それぞれのＦＥＤＰサーバは、高い処理性能、および、クライアントのロケーションに対する接続の高い可用性を提供する。
【００４２】
例示のシステムの実施形態の第３の層は、ストレージノードネットワーク（ＳＮＮ）である。ＳＮＮは、民間のクラウドリソースプロバイダによって動作可能であるさまざまなクラウドストレージセンタを含むことができる。ＳＮＮにおけるストレージノードの数および識別は、クライアントのロケーションからの最良の平均待ち時間および可用性を呈するストレージノードを選ぶことによってストレージ構成の待ち時間およびセキュリティを最適化するためにクライアントによって自身のクライアントアプリケーションを使用してオプションで選択できる。
【００４３】
図１は、ＣＳＰ、ＦＥＤＰおよびＳＮＮの間の相互関係を示す概略図である。
【００４４】
これらの３つの層によって果たされる基本的機能は、以下のように説明できる。ＣＳＰは、クライアントアプリからＳＮＮへのファイルのアップロードについての要求を受信しかつ開始できる。最初のステップとして、ファイルをそれぞれが一定のサイズを有するいくつかのスライスに分割する。スライスの数およびサイズは、クライアントアプリに対して利用可能なパラメータによって変化させてよい。それぞれのスライスは、クライアントキーで暗号化でき、一意の識別子が割り当てられる。ＣＳＰはまた、スライスを、元の完全なファイルに再構成できるようにするためにマッピングするメタデータファイルを作り出すことになる。このメタデータファイルは、クライアントのデータセンタに記憶されてよく、ＳＮＮに暗号化されかつコピーされてもよい。例示の実施形態では、ＣＳＰはその後、さらなる処理のために、スライスされたファイルを次の層であるフロントエンドデータプロセッサ（ＦＥＤＰ）に送ることができる。
【００４５】
ＦＥＤＰは、スライスされたファイルをＣＳＰから受信でき、それぞれのスライスをさらに処理することができる。この処理は、それぞれのスライスを一連のファイルスライスフラグメントに分けることができる。例えば、あるデータが送信プロセス中に損失される場合にエラー訂正されるように消失訂正符号化が行われる。消失訂正符号化は、本明細書にさらに説明されるように、エラー訂正を行うために、それぞれのファイルスライスフラグメントのサイズを大きくするようにする。ＦＥＤＰはまた、自身の暗号化キーを使用してファイルスライスフラグメントを暗号化することができる。ＦＥＤＰは、ファイルスライスフラグメントの全てをそれらの元のスライスにマッピングし戻し、かつ、ストレージノードネットワーク（ＳＮＮ）サーバがそのファイルスライスフラグメントを記憶するために使用されるものとすることを記録する別のメタデータファイルを作成することになる。この中間処理が行われると、ＦＥＤＰはファイルスライスフラグメント群をクラウドにおけるそれらの指定されたＳＮＮサーバへ送り、かつ、作成されるメタデータファイルのコピーをそれぞれのＳＮＮサーバへ送る。
【００４６】
第３の層において、ＳＮＮサーバはここで、ファイルのダウンロードについてシステムを通して将来的な要求を受信することを待つように、通常利用可能なクラウドホスティングサーバにおけるクラウドにおいて処理されたファイルスライスフラグメントをホストとして処理することになる。ダウンロードプロセスは、基本的に、３つの処理層において上記ステップを逆転することによって、ＣＳＰにおいて元のファイルまたはファイルスライスを復元する。
【００４７】
図２は、例示の実施形態による、ＳＮＮへのファイルのアップロード中に、ＣＳＰ、ＦＥＤＰ、およびＳＮＮのそれぞれについて上述されるファイル処理のさまざまな段階を示す。図３は、例示の実施形態に従って行われるファイルアップロードプロセスに含まれてよい詳細なステップの表である。
【００４８】
ファイルのアップロード
図４Ａおよび図４Ｂはそれぞれ、ＣＳＰからＦＥＤＰへ、次いでＳＮＮへのファイルのアップロードプロセス中の２つの基本的処理段階：ＣＳＰにおけるファイルのファイルスライスへの処理、および、ＦＥＤＰにおける、ＳＮＮへの分散のためにファイル              スライスフラグメントを作成するためのファイルスライスの処理を示す。図５は、中間ステップのいくつかを示す、段階的に行われるアップロードプロセスの別の例証である。
【００４９】
ファイルのダウンロード
先にＳＮＮにアップロードされているファイルをダウンロードするプロセスは、アップロードプロセスにおいて使用されるステップの逆転を含む。多くのＳＮＮにわたって記憶されるスライスフラグメントは、スライスフラグメントがどのようにスライスに再構成されるかをマッピングする第２のメタデータファイルを使用してファイルスライスに再構成されなければならない。これはＦＥＤＰによって行われる。そのように生成されるファイルスライスは、クライアントのデータセンタに送出するためにスライスがファイル全体にどのように再構成されるかをマッピングする第１のメタデータを使用して、ＣＳＰによって完全なファイルに再構成されなければならない。第２のメタデータファイルは、ファイルを記憶するために使用されるＳＮＮのそれぞれに冗長的に記憶され、第１のメタデータファイルはクライアントのデータセンタに、および同様にそれぞれのＳＮＮに記憶される。
【００５０】
図６は、ダウンロードプロセスに含まれてよい詳細なステップの表である。
【００５１】
図７Ａは、ＣＳＰとＦＥＤＰとの間でなされる要求、およびＦＥＤＰとＳＮＮとの間の要求を示す３つの層の間のダウンロードプロセスを示す。図７Ｂは、ＦＥＤＰがＳＮＮからスライスフラグメントを要求して、要求されたファイルスライスを第２のメタデータファイルを使用して再構成する時に含まれるステップを示す。
【００５２】
図８は、ダウンロードプロセス中にＣＳＰ、ＦＥＤＰおよびＳＮＮの間の対話の詳細なステップを示す。
【００５３】
技術の最適化
上述されるように、開示された方法およびシステムは、データスループット、データ可用性、データ信頼性、およびデータセキュリティにおいて大きく改善されている。
【００５４】
システムにおいて使用される倍の数のアップロードおよびダウンロードノードによってアップロードおよびダウンロード両方が加速されることになる。ＣＳＰとＦＥＤＰとの間の待ち時間を最適化し、かつ、利用可能な最良の現時点の待ち時間によるＦＥＤＰを選ぶことによって、スループットのさらなる加速が得られてよい。ＦＥＤＰが、ＳＮＮに対する待ち時間を自動的に最小限に抑えるように設計される高性能高可用性のサーバとしてセットアップされるため、ＦＥＤＰとＳＮＮとの間の待ち時間を最適化する必要はない。複数のノードを使用することによってまた、１つの特定のサーバ経路が待ち時間が長いことに苦しむ場合に見られるパフォーマンスヒットを減少させる。
【００５５】
ファイルスライスフラグメントを記憶するための多くのストレージノードを使用することは、クライアントデータのストレージに利用可能なセキュリティを著しく増加させる。ハッカーが、多数のＳＮＮにおける異種のスライスフラグメント全てと接触し、かつ、それらを使用可能なファイルに再構成するために必要な情報を見つけ出すタスクは非常に厄介である。
【００５６】
スライスフラグメントの分散のために消失訂正符号化を使用することは、システムが、固有のパフォーマンスヒットおよびセキュリティリスクと共に、複数のデータレプリケーションに対する必要性を不要にすることができるようにする、固有のエラーチェック／訂正によって追加の信頼性の層を加える。
【００５７】
さらなる問題
前に述べたように、非常にリソース集約的なままの一領域は、非常にＣＰＵ集約的である消失訂正符号化プロセスである。この問題に対処するために、非常に高性能のＦＥＤＰハードウェアは、これらのＦＥＤＰサーバにおいて使用されるＣＰＵ（または仮想ＣＰＵ）がシステムの性能上の必要性を満たすことを保証する。さらに、ソフトウェアパッケージ全体は、ＦＥＤＰサーバを含む「Ｇｏ」言語で符号化されてよい。「Ｇｏ」言語によって生成されるネイティブコードオブジェクトは、とりわけ、消失訂正符号化が主要なＣＰＵリソースを取り入れるＦＥＤＰサーバにおいて、システム性能全体を改善するのに役立つ。
【００５８】
クライアントアプリは、クライアントのオペレーティングシステム（ＯＳ）プラットフォームで実行することができる任意のクライアントエージェントであってよい。オプションとして、クライアントアプリは、ブラウザにおいて実行させるためにジャバスクリプトで書き込まれてよい。これは、多種多様の物理的デバイスにわたってかかるクライアントアプリを利用可能にする際に役立つ。
【００５９】
上記のデータストレージ技法は、全体を通して仮想化サーバを使用するように設計できる。例えば、性能を改善させかつハードウェア非依存を保証するために、１つの実際のハードウェアサーバの代わりに、並列の３つの仮想サーバが使用可能である。現在のシステムは、いずれの特定のファイル構造にも関係なく、データを参照されるかたまりとして扱うオブジェクトストレージ技術に基づく。その目的は、データストレージにおける現在の仮想化標準に合うように、ブロックストレージ内に転送できるシステムを作成することであった。現在のオブジェクトモデルは、将来的にブロックストレージへ容易にマッピングできる。
【００６０】
ある特定の実施形態では、消失訂正符号化によるエラー訂正は、リードソロモン符号化を使用してＦＥＤＰ上で行われる。ＦＥＤＰおよびＳＮＮの間の読み書きが不完全である場合、ＦＥＤＰにおいてガベージコレクションシステムも用いられる。
【００６１】
図９は、ストレージノードに不完全に記憶されたオブジェクト、すなわち、マスクカーディナリティがｋ未満であるオブジェクトを削除する必要があるガベージコレクションプロセスのステップを示す。このようなオブジェクトは、何らかの理由で、ｎ〜ｋ個以上のデータブロックがアップロードに失敗し、かつ、アプリケーションが不意に終了した場合にシステムにまれに現れる場合がある。該フローは４つのステップから成る。
１．不完全なものをリストする：（構成可能な値であってよい）一定期間ごとに、メタデータストレージのＬＩＳＴ＿ＩＮＣＯＭＰＬＥＴＥ関数を使用して不完全なオブジェクトのリストを取り出す。
２．ＵＩＤを取り出す：ＧＥＴ関数を使用して対応するデータブロックＵＩＤを取り出す（テーブル２を参照）。
３．データを削除する：これらのＵＩＤからストレージノードＩＤおよびデータブロックＩＤを抽出し、かつ、ＤＥＬＥＴＥ関数を使用してストレージノードから対応するデータブロックを削除する（テーブル１を参照）。
４．メタデータを削除する：削除されたオブジェクト記録を、ＤＥＬＥＴＥ関数を使用してメタデータストレージから除去する。
【００６２】
アプリケーション
企業のデータセンタからクラウド内へのエンタープライズデータの移送
開示された技術の著しく向上させたデータ転送速度、セキュリティ、信頼性、および可用性によって、エンタープライズが、特に、その企業のデータセンタからそのストリーミングメディアコンテンツを含むそのデータの大半をクラウドへ移送することを可能にする。これによって、その企業のデータは、社内および社外両方ではるかに幅広いデータコンシューマに対して利用可能となる。
【００６３】
開示された技術は、現在十分に活用されていないエンタープライズ全体のデータストレージリソースが、その後、セキュリティ保護されたストレージノードとして使用するために利用可能となることを可能にする。これによって、エンタープライズのストレージ費用が大幅に低減でき、かつ、セキュリティ保護された分散型ストレージネットワークを、データ構造全体を通して拡大させることを可能とすることができる。
【００６４】
最終的に、この、十分活用されていないデータストレージリソースの同使用は、十分に活用されていないストレージデバイスの集まりを有するコンピュータ所有者の母集団にたどり着くことができる。膨大な分散型ストレージネットワークは、ＢｉｔＴｏｒｒｅｎｔの背景にあるより古い概念を取り入れ、かつ、それを、大いに改善された速度およびセキュリティを加えることによって増やすようにアセンブルできる。コンピュータ技術におけるモバイルデバイスの改革全ては、クラウドにおけるデータの可用性を前提としている。以前のシステムでは、この必要性は、クラウドストレージリソースにおける速度およびセキュリティの欠如によって、これらの結び付けられた技術において関連は弱いものになっている。このことは、より多くのプライベートおよびエンタープライズクライアントが、特にストリーミングメディアアプリケーションについてモバイルデバイスを通してデータにアクセスしていることが、とりわけここで必要とされる。デスクトップおよびより少ないモバイルラップトップを犠牲にして、モバイルデバイスの乱用へ向かうコンピュータ使用を前にして、ユーザに対するデータの可用性は、クラウドへのデータの大規模な移送を必要とする。開示された技術は、この移送を可能にする助けとなる。
【００６５】
デジタルメディアストリーミング
開示された技術は、デジタルメディアストリーミング技術の必要性に自然に適するものになる。速度およびセキュリティにおける開示された改善、および、利用可能なストレージリソースをより多く利用することによって、今日の通信プロトコルおよび技術を使用してストリーミングレートをより大きくすることができる。ビデオ、オーディオ、および他のメタデータのストレージに必要とされる膨大な量のストレージスペースは、本明細書に開示された例示の実施形態に従って、既存のリソースおよびインフラの向上させた可用性ならびに利用をさらに生かすことができる。
【００６６】
衛星ＴＶ
衛星ＴＶ技術に組み込まれる大型ハードドライブは、衛星ＴＶユーザの一般大衆の間で高速でセキュリティ保護された分散型ストレージネットワークを確立するために開示された技術を使用するように適応できる。このリソースは、衛星ＴＶネットワークの価値を著しく向上させ、かつ、新しい商機を全面的に市場開放することができる。
【００６７】
本開示によるある特定の実施形態では、高度にセキュリティ保護される消失訂正符号化アルゴリズムは、何らかのデータが送信プロセス時のエラーによって損失される場合にデータ回復をもたらすようにファイルフラグメントを符号化するために使用される。
【００６８】
特に、サイズＬ＝｜Ｆ｜のオブジェクトＦを、それぞれのサイズがＬ／ｍ（ｍ＜ｎ）のｎ個の認識できない部分Ｆ１、Ｆ２、…Ｆｎにコード化するデータミクサアルゴリズム（ＤＭＡ）が用いられることで、元のオブジェクトＦは任意のｍ個の部分から復元できる。ＤＭＡの核心はｍ−ｏｆ−ｎミクサコードである。ＤＭＡによって処理されたフラグメントにおけるデータは機密とされ、これは、元のオブジェクトＦにおいてｍ個の部分より少ないものから明示的に復元できるデータはないことを意味する。ＤＭＡの詳細な演算の例示の実施形態をここで説明する。
【００６９】
ｍ−ｏｆ−ｎミクサコードは順方向エラー訂正コード（ＦＥＣ）であり、その出力はいずれの入力記号も包含せず、該コードは、ｍ個の記号のメッセージをｎ個の記号のより長いメッセージに変換して、元のメッセージが長さｍのｎ個の記号のサブセットから回復できるようにする。
【００７０】
元のオブジェクトＦは、最初に、それぞれのサイズがＬ／ｍであるｍ個のセグメントＳ１、Ｓ２、…Ｓｍに分けられる。次いで、ｍ個のセグメントは、例えば、
（Ｓ１、Ｓ２、…Ｓｍ）・Ｇｍ×ｎ＝（Ｆ１、Ｆ２、…Ｆｎ）
のように、ｍ−ｏｆ−ｎミクサコードを使用してｎ個の認識できない部分Ｆ１、Ｆ２、…Ｆｎにコード化される。式中、Ｇｍ×ｎはミクサコードのジェネレータ行列であり、以下の条件を満たす。
１）Ｇｍ×ｎのいずれのカラムもｍ×ｍ恒等行列のいずれのカラムにも等しくない
２）Ｇｍ×ｎの任意のｍ個のカラムはｍ×ｍ正則行列を形成する
３）そのジェネレータ行列Ｇｍ×ｎの任意の正方部分行列は正則である
第１の条件は、符号化によってｎ個の認識できない部分が確実に生じるようにする。第２の条件は、元のオブジェクトＦが、ｍ＜ｎである任意のｍ個の部分から確実に復元できるようにし、第３の条件は、ＤＭＡが強力な機密性を確実に有するようにする。
【００７１】
任意のｍ−ｏｆ−（ｍ＋ｎ）ミクサコードから強力な機密性によってＤＭＡを構築する効果的なやり方は次になる。
１）任意のｍ−ｏｆ−（ｍ＋ｎ）ミクサコードを選ぶ。そのジェネレータ行列はＧｍ×（ｍ＋ｎ）＝（Ｃｍ×ｍ｜Ｄｍ×ｎ）である。
２）ジェネレータ行列が下記の数式１で表されるｍ−ｏｆ−ｎミクサコードを採用するＤＭＡを構築する。
【００７２】
【数１】
0006296316.tif 000002
【００７３】
例えば、ジェネレータ行列は下記の数式２で示されるコーシー行列であってよい。
【００７４】
コーシー行列の任意の正方部分行列は下記の数式２で示される。数式２中、ｘ１、…、ｘｎ、ｙ１、…、ｙｎ∈Ｚｐ、ｘｉ＋ｙｊ≠０；ｉ≠ｊ＝＞ｘｉ≠ｘｊおよびｙｉ≠ｙｊは正則である。よって、この行列に基づくミクサコードは強力な機密性を有する。
【００７５】
【数２】
0006296316.tif 000003
【００７６】
別の例として、ジェネレータコードはヴァンデルモンド行列とすることができる。
【００７７】
ジェネレータ行列がヴァンデルモンド行列であるミクサコードから強力な機密性によるＤＭＡを構築するために、下記の数式３で表されるジェネレータ行列を有するｍ−ｏｆ−（ｍ＋ｎ）ミクサコードを選ぶ。式中、ａ１、ａ２、…ａｍ＋ｎは異なっている。
【００７８】
【数３】
0006296316.tif 000004
【００７９】
次いで、強力な機密性によるＤＭＡは復元でき、ここで対応するジェネレータ行列は下記の数式４で表される。
【００８０】
【数４】
0006296316.tif 000005
【００８１】
コード化の例
サイズがＬ＝｜Ｆ｜のオブジェクトＦを有すると仮定する。その例では、Ｌ＝１０４８５７６（１Ｍｂファイル）である。それをコード化するために、以下のステップが行われる。
１．ｍおよびｎを選ぶ（上の説明を参照）。例えば、ｍ＝４、ｎ＝６である。
２．ワードサイズｗを選ぶ（通常、８、１６、３２であり、この例では８になる）。算術全てはＧＦ（２ｗ）に対して行われることになる。
３．パケットサイズｚを選ぶ（コンピュータのワードサイズの倍数でなければならず、この例では２５６になる）。
４．ｍの倍数ともする符号化ブロックサイズＺ＝ｗ・ｚを計算する。この例では、Ｚ＝８・２５６＝２０４８（バイト）であり、４の倍数である。
５．元のオブジェクトＦを乱数のバイトでパディング処理して、サイズをＬからＬ’へ増大させるため、Ｌ’はＺの倍数になる。
６．オブジェクトＦをサイズＺの部分に分割する。以下のステップは全てこれらの部分に対して行われるが、それらは依然Ｆで示されることになる。
７．ＦをシーケンスＦ＝（ｂ１、…ｂｍ）、（ｂｍ＋１、…ｂ２ｍ）にセグメント化する。ここで、ｂｉはｗビットの長さの文字である。この例では、ほんの１バイトである。便宜上、Ｓ１＝（ｂ１、…ｂｍ、）などと示す。
８．ミキシング方式を適用する：
Ｆｉ＝ｃｉ１、ｃｉ２、…、ｃｉｎ、ここで
ｃｉｋ＝ａｉ・Ｓｋ＝ａｉ１・ｂ（ｋ−１）ｍ＋１＋…＋ａｉｍ・ｂｋｍであり、
式中、ａｉｊはｎ×ｍコーシー行列の要素である（上記参照）
ＦｉのサイズはＬｉ＝Ｌ／ｍであり、今回の例ではこれは２５０ｋｂ（１６２１４４バイト）である。
【００８２】
復号例
ここで、サイズＬｉのｍ個のオブジェクト部分Ｆｉを有すると仮定する。今回の例では、Ｆ２およびＦ４が送信エラーによって損失されたと仮定して、ｉ＝１、３、５、６である。元のオブジェクトＦを復号しかつ復元するために、以下のステップを行う：
１．数がｉの行を除く行全てを除去することによってコード化するために使用されるｎ×ｍコーシー行列からｍ×ｍ行列Ａを構築する。今回の例では、行２および４は除去される。
２．行列Ａを反転させ、それぞれのセグメントＳ１＝（ｂ１、…ｂｍ、）、などについて、下記の数式５で表される非ミキシング方式を適用する。
【００８３】
【数５】
0006296316.tif 000006
【００８４】
３．セグメントＳｉを加えて元のＺ長の部分Ｆにする。
４．Ｚ長のブロックを共に合わせて、元のパディング処理されたオブジェクトＦを形成する。
５．Ｆからパディングを除去してサイズＬに適合させる。
【００８５】
例示の実施形態では、元のデータを認識できないようにする分散型ストレージおよび消失訂正符号化のためにデータを処理する前述の方法論は、ストリーミングメディアコンテンツを処理するために使用される。上で説明されるように、コンテンツプロバイダのメディアファイルは、二段階プロセスで小ファイルスライスフラグメントに分解される。第１のステップは、（圧縮されているか圧縮されていない場合がある）ファイル全体を一連のファイルスライスに分解する。これらのファイルスライスは、暗号化されてよく、該スライスを元のファイルにどのようにアセンブルするかをマッピングするメタデータファイルが作成される。
【００８６】
第２のステップは、それぞれのファイルスライスを取り入れて、該スライスを、元のデータを認識できないようにするために前述の技法に従って消失訂正符号化されるより小さいデータフラグメントに分解する。消失訂正符号化は、高性能ファイルサーバのセットによって行われてよく、それぞれの別々のサーバはそのファイルスライス（複数可）に対して消失訂正符号化を行う。これは、ｎ個の消失訂正符号化サーバユニットにわたって分散された仮想消失訂正符号化のシステムを表す。消失訂正符号化は、あらかじめ定められたレベルの冗長性をデータコレクションに付加し、その後一連のファイルフラグメントストレージノードに分散される一連のファイルスライスフラグメントを作成する。このプロセスにおいて使用される消失訂正符号化には、３０％以上の最適な冗長性が望まれる。メディアファイルに頻繁にアクセスする場合、システムは、特定のスライスのファイルオブジェクト冗長性を増大させることができる。
【００８７】
本明細書に開示される消失訂正符号化技法は、パケット損失に関わらず、ストリームされたメディアファイルに対してクライアントが正しいデータパケットを受信することを保証する自動エラー訂正の高性能システムを加える。それぞれのデータフラグメントは、消失訂正符号化のプロセスにおいて暗号化されてもよい。第２のメタデータファイルは、ファイルスライスフラグメントを正しいストリームされたメディアパケットに再構成するために必要とされるプロセスをマッピングする。典型的には、ストリーミングのためにデータをうまく処理するために最低５ノードが必要とされる場合がある（が、ノードの数はシステムロードおよび他のパラメータに応じる）。これらのノードは、ストリームされたデータを受信することになるクライアントの近くに全て位置する必要はないが、幅広い地理的サービス領域上に位置してよい。
【００８８】
ストリーミングメディアコンテンツを再生するために、クライアントはサーバノードから、その後適正な順序で再構成される、必要とされるデータフラグメントをダウンロードする。該再構成は、データフラグメントが作成されたプロセスを逆転する。データフラグメントはファイルスライスに再構成され、ファイルスライスは次いで元のメディアファイルの少なくとも一部分に再構成される。全てのストリーミング技術におけるように、データフラグメントをダウンロードし処理するレートは、メディアを再生するのに現時点で必要とされるデータパケットの時間通りの処理を可能にするのに十分早いものでなければならない。ストリームされたメディアを再生することができる任意のデバイスを含むことができるクライアントアプリケーションは、ストリームされたメディアファイルの再生を始める適正な順序でファイルスライスフラグメントを取り出す。
【００８９】
ストリームされたメディアでは、データフラグメント全ては、メディアを開始から終了まで見るまたは聞くために適正な順序で順次再構成されることが不可欠である。クライアントデバイスは、メタデータファイルからのマップデータを使用することによってデータフラグメントを再構成して、フラグメントをそれらの適正なシーケンスで適正に得る。現在のストリーミング技術と同様に、ダウンロードレートがメディアデータの次のパケットを表示するために必要とされる時間より速い場合、読み手は、メディアプレーヤがその時間セグメントに達する時に使用するためにバッファに記憶される未来時のフラグメントをダウンロードしかつアセンブルすることになる。ファイルフラグメントは、実際には元のメディアファイルにこれまでにアセンブルされなくてよく、単に適正な時間に再生され、かつデータフラグメントとして記憶されてよい。これによって、ユーザがメディアファイルに対して法的権利を有さない場合、再生されているデジタルメディアのセキュリティが高められる。当然ながら、ユーザが元のメディアファイルに対する法的権利を有する場合、フラグメントは、フラグメント全てがダウンロードされると、完全な元のメディアファイルの形式でクライアントのデバイス上でアセンブルできる。メディアファイルが複数のノードから送信されるため、ファイルダウンロードレートは、先行技術に見られる典型的なレートをはるかに超えることになる。好ましくは、目下、データフラグメントのダウンロードのためにクライアントに対する最良の接続性を有するノードが用いられる。ノードにおけるデータが冗長的であるため、ストリームされたデータを読み出す時のクライアントソフトウェアは、ダウンロード時に使用するためのデータ転送の最高レートのノードを優先的に選ぶことができる。
【００９０】
この技術は、クライアントデバイスの全タイプ：デスクトップ、ラップトップ、タブレット、スマートフォンなどに応用可能である。該技術は、現在のストリーミング技術ソフトウェアに取って代わる必要はなく、要求されるデータフラグメントを適正な順序で再構成するためにマップファイルを使用するために上にもう１つ層を単に加えることができる。
【００９１】
以前のシステムに勝る利点
開示された分散型ストレージおよび消失訂正符号化ベースのストリーミング技術は、先行技術のストリーミング技術において上述される制限に対して実質的な改善をもたらす。
【００９２】
Ａ．データ転送の速度
上述される理由のために、開示された実施形態は、先行技術のストリーミング技術と比較して、典型的なインターネット通信条件に対して、データ転送の速度における実質的な改善をもたらす。
【００９３】
メディアコンテンツプロバイダは、クラウドにおいて高性能のサーバにデータフラグメントを分散することを選ぶことができ、また、該データフラグメントを、任意の他のタイプのネットワークにおいて接続される複数のストレージデバイスに記憶することを選ぶこともできる。メディアファイルを復元する時、その「部分」は、複数のサーバの間で並列に転送可能であり、その結果、実質的にスループットが改善されることになる。これは、今日使用される一般向けのダウンロードアクセラレータ技術にたとえることができ、これによって、ファイルのダウンロード部分に対して複数のチャネルをオープンし、その結果、実質的にダウンロードレートが増大する。ノードサーバのうちの１つへの転送接続のうちの１つにおける待ち時間のボトルネックは、通常の待ち時間の条件下で動作している他のサーバへの転送の速度を上げ続けることになる。データ転送の速度が上がることによって、大型の圧縮されていないメディアファイルをリアルタイムで再生することができるため、ストリーミングメディアに対する高忠実度の再現をもたらす。
【００９４】
クライアント側のソフトウェア技術は、そのロケーションで特定のクライアントに最高の現時点のスループットをもたらすようなノードから優先的にダウンロードすることを選ぶことができ、その結果、スループットに対する速度の改善がさらにもたらされる。利用可能なノードの全世界のプールから、各クライアントアプリケーションは、その時点で最高のスループットをもたらすようなノードからメディアストリームからの読み出しを選ぶことができる。消失訂正符号化の冗長性はまた、１つ以上のノードが次の必要とされるフラグメントを包含することを意味し、クライアントは、利用可能な最高のスループットノードを選ぶことができる。
【００９５】
データストレージノードへのデータフラグメントの分散はまた、現時点のスループット条件に基づいて最適化できる。最良の接続性を有するノードを、大量のデータフラグメントを記憶するために選ぶことができるため、分散プロセス中にデータ転送の最大速度を利用可能なストレージノードが最適化される。
【００９６】
具体的には、該技術で使用される消失訂正符号化は、消失訂正符号化がＣＰＵに集約するタスクとすることができるため、高性能について選んだサーバに対してサーバ側で行われてよい。
【００９７】
Ｂ．データセキュリティ
上述されるように、本明細書に開示される分散型「仮想消失訂正符号化」ストリーミング技法は、単一の物理的クラウドストレージロケーションにおいてファイル全てを記憶する先行技術のストリーミング技術に対してデータセキュリティの大幅な改善をもたらす。
【００９８】
さらに、ファイルスライスフラグメントの処理およびストレージ両方に使用されるサーバは複数のクライアントによって共有されてよく、ハッカーは、該フラグメントがどのクライアントに属するかをスライスから識別することはできない。これによって、ハッカーにとって、この技術を使用して記憶されたメディアファイルデータのセキュリティを危険にさらすことがより一層困難になる。
【００９９】
Ｃ．データ可用性
上述されるように、本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技法はまた、先行技術のストリーミング技術と比較して、データの可用性が改善されている。ファイルを、好ましくは種々のロケーションに位置するいくつかの物理的ノードに記憶される複数のファイルスライスフラグメントに分割することによって、クライアントロケーションと物理的ノードのうちの１つとの間の通信問題は、他のデータロケーションとの通常の通信によってオフセットされてよい。複数のロケーションを有する効果全体は、サイトのうちの１つにおける通信断絶による停止状態からシステムを隔離することである。
【０１００】
元のデータを認識できなくする消失訂正符号化、および冗長的なデータによる複数のノードの使用は、高性能でセキュリティ保護されたエラー訂正技術を加える。先行技術のストリーミング技術を悩ますパケット損失問題は、もはや検討事項に該当しない。先行技術のストリーミング技術は、しばしば、各クライアントが再生したいデータストリームを記憶するサーバへの良好な接続性を確実に有するようにするために、地理的サービス領域を通して多くのサーバで同じメディアファイルの複数のコピーを処理しなければならない。開示されたストリーミング技術は、サービス領域を通して複数のサーバでの元のメディアファイルの完全な冗長性を有するコピーの必要性を排除する。
【０１０１】
Ｄ．データ信頼性
本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技術はまた、先行技術に対するストリーミングメディアの信頼性における大幅な改善をもたらす。各ファイルをファイルスライスフラグメントに分離することは、物理的サーバストレージロケーションのうちの１つにおけるハードウェアまたはソフトウェアの不具合またはエラーが、先行技術におけるように、全ファイルが１つの物理的ロケーションに記憶される場合のように、ファイルへのアクセスを排除することはないことを意味する。元のデータを認識できないようにするための消失訂正符号化技術は、高品質のエラー訂正能力を保証し、メディアコンテンツのセキュリティを向上させる。
【０１０２】
Ｅ．デジタル著作権管理セキュリティ
デジタル著作権の保護（ＤＲＭ）は、ストリーミングメディアファイルにおけるとりわけ重要な問題である。ストリーミングメディアにおけるＤＲＭ保護方式を回避できる多くのサードパーティ製品が利用可能である。開示された技術がデータストリームを、暗号化できるデータフラグメントに分解し、それぞれが元のデータを認識できないようにすることができる消失訂正符号化で処理されるため、ＤＲＭ保護方式は著しく向上される。ストリーミングデータを要求するクライアントがそのファイル自体に対する権利を有さず、ファイルを再生する権利のみ有する場合、暗号化されかつ消失訂正符号化されたデータフラグメントは、再生中でもクライアントデバイスにおいて実際のメディアファイルに物理的にアセンブルされる必要はない。このことは、今日使用される際に普通のサードパーティ技術によって容易に回避できないはるかに強力なＤＲＭ方式を誘引する。
【０１０３】
要約すると、例示の実施形態では、本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技術は、以下の基本的なタスクを達成する。
１）認識できない部分をもたらすために分散型消失訂正符号化サーバにおいて消失訂正符号化されるファイルフラグメントに最終的にさらに分解されることになる部分またはファイルスライスへのコンテンツプロバイダのメディアファイルスライスの分割。
２）クライアントにおいてデータの再構成を可能にするためにファイルがどのように分割されたかを記述する、ファイルスライスのマップの作成。このマップはメタデータファイルに記憶される。
３）追加のデータセキュリティのためのファイルスライスのオプションの暗号化。
４）データストレージのサイズを縮小し、かつ、転送速度を改善するためのファイルスライスのオプションの圧縮。
５）エラー訂正およびデータ回復の向上を可能にするためのファイルスライスの消失訂正符号化。スライスは消失訂正符号化プロセスによってファイルスライスフラグメントに分けられる。
６）ファイルスライスフラグメントをファイルスライスに再構成するために必要とされる、該フラグメントのマップの作成。このマップは第２のメタデータファイルに記憶される。
７）追加のデータセキュリティのためのファイルスライスフラグメントのオプションの暗号化。
８）ストレージ空間要件を低減し、かつ、転送速度を改善するためのファイルスライスフラグメントのオプションの圧縮。
９）クライアントデバイスにおけるファイルスライスフラグメントの復号、および、クライアントメディアプレーヤ（またはブラウザ）において再生するために、ファイルスライスへ、次いでメディアファイル全体への再構成。フラグメントは、適正な順序でスライスにアセンブルされなければならず、該スライスは、適正な順序でファイル全体にアセンブルされなければならない。クライアントソフトウェアは、２つのメタデータファイルによって提供されるマッピング情報を使用してこれらの２つの段階においてメディアファイルを再構成する。
【０１０４】
この技術の基本構造は以下の４つの層によって実装されるように視覚化されてよい。
【０１０５】
１．ＣＳＰ（図１を参照）は、コンテンツプロバイダのメディアファイルを、ファイルスライスにスライス処理し、オプションで該スライスを暗号化し、スライスが元のメディアファイルにどのように再構成できるかについてのマップでメタデータファイルを生成する。メタデータファイルはまた、それぞれのファイルスライスが、該スライスを適正な順序でアセンブルするために必要とされる順序についての情報を維持する。
【０１０６】
２．ＦＥＤＰ（図１を参照）は、認識できない部分を作り出す消失訂正符号化を使用して、それぞれのファイルスライスをファイルスライスフラグメントに分解する。例示の実施形態では、消失訂正符号化はデータ冗長性の３０％を加える。第２のメタデータファイルは、ファイルスライスフラグメントがファイルスライスにどのように再構成されるかをマッピングする。第２のメタデータファイルはまた、クライアントデバイスにおけるフラグメントの再生中、スライスを適正な順序でアセンブルするために必要とされる各フラグメントの順序についての情報を維持する。
【０１０７】
３．ＳＮＮ（図１を参照）は、データフラグメントを分散させるために使用されるさまざまなストレージノードである。ストレージノードは、必ずしもクラウドにおける全サーバではない。該ノードは、データセンタ、コンピュータにおけるハードディスク、モバイルデバイス、または、データストレージ可能な何らかの他のマルチメディアデバイスであってよい。これらのストレージノードの数および識別は、最も低い平均待ち時間および最良の可用性を有するノードによってストレージ構成の待ち時間およびセキュリティを最適化するためにコンテンツプロバイダによって選択できる。
【０１０８】
４．現在の技術のストリーミングメディアプレーヤソフトウェアより優位に立って実装できるエンドユーザクライアントデコーダ（ＥＣＤ）。この第４の層は、コンテンツプロバイダにストリーミングメディアに対する要求を開始し、次いで、層（１）および（２）に形成される２つのメタデータファイルから導出されるマッピングファイルを受信し、それら層より上で、メディアファイルの再生またはストレージのために、ＥＣＤはファイルスライスフラグメントをスライスに、かつ、該スライスを元のメディアファイルにアセンブルできる。明らかなように、メディアファイルは要求に応じてメディアコンテンツを再生するために必要とされる適正な順序でアセンブルされなければならない。クライアントが完全なファイルをダウンロードするためのストリームされたメディアに対する購入権を有する場合、ＥＣＤは、元のメディアファイルを、完全にダウンロードすると再生およびアセンブル両方を行うことになる。クライアントがメディアファイルを再生する権利しか有さない場合、ＥＣＤは適正な順序でメディアファイルの再生のみを行い、ファイルスライスフラグメントを完全なファイルにこれまでにアセンブルすることなく可能とされる再生のために該フラグメントを記憶することになる。ＥＣＤはまた、ほとんどの場合生じるに違いないが、ダウンロードレートがメディア再生レートを超える場合、データフラグメントをクライアントデバイスにおけるストレージのバッファに入れることになる。ＥＣＤはまた、現時点のメディアファイル再生の前または後に位置するメディアファイルセグメントに対する要求を受信しかつ処理するために、メディアプレーヤと対話することもできる。
【０１０９】
追加の性能上の検討事項
特定のメディアファイルについて複数のクライアントからの需要が多い場合、高まる需要を満たすために取ることができる２つの主要なアプローチがある。
【０１１０】
第１に、多数のフラグメントストレージノードは消失訂正符号化されたデータフラグメントの分散のために用いられてよい。需要が主に１つの地理的領域から生じる場合、その領域におけるクライアントにとって最良のデータスループットレートで分散させるためのノードを選ぶことが可能である。
【０１１１】
第２に、消失訂正符号化ステップのためのより高いレベルの冗長性を選ぶことができる。例えば、３０％の冗長性の代わりに、より高いレベルの冗長性が負荷をかけられた状態で確実に大幅に利用可能になるようにするのに役立つことになる。
【０１１２】
これら２つのステップは、リアルタイムで生じる際に特定的な需要および負荷要件を満たすために動的に行われてよい。
【０１１３】
さらに、ある特定のスライスまたはフラグメントは、可用性を改善するためにより高いレベルの冗長性について選び出されてよい。具体的には、メディアファイルの第１のセグメントは、高まる需要の必要性を満たすために最も高いレベルの冗長性を与えることが可能とされる。
【０１１４】
開示された主題はそのある特定の例示の実施形態に関して説明されかつ示されているが、開示された実施形態の特徴は、本開示の範囲内で追加の実施形態を作り出すために、組み合わせ、再構成および修正が可能であり、本発明の趣旨および範囲を逸脱することなく、本明細書に対して、さまざまな他の変更、省略、および追加がなされてよいことは、当業者によって理解されるべきである。
【図１】
0006296316.tif 000008
【図２】
0006296316.tif 000009
【図３−１】
0006296316.tif 000010
【図３−２】
0006296316.tif 000011
【図４Ａ】
0006296316.tif 000012
【図４Ｂ】
0006296316.tif 000013
【図５】
0006296316.tif 000014
【図６−１】
0006296316.tif 000015
【図６−２】
0006296316.tif 000016
【図７Ａ】
0006296316.tif 000017
【図７Ｂ】
0006296316.tif 000018
【図８】
0006296316.tif 000019
【図９】
0006296316.tif 000020