特許第6296316号(P6296316)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クロード クラウディング コーポレイションの特許一覧

特許6296316分散型セキュリティ保護データストレージ、およびストリーミングメディアコンテンツの送信
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6296316
(24)【登録日】2018年3月2日
(45)【発行日】2018年3月20日
(54)【発明の名称】分散型セキュリティ保護データストレージ、およびストリーミングメディアコンテンツの送信
(51)【国際特許分類】
   G06F 13/00 20060101AFI20180312BHJP
   H03M 13/17 20060101ALI20180312BHJP
   H04L 1/00 20060101ALI20180312BHJP
【FI】
   G06F13/00 520B
   G06F13/00 520D
   H03M13/17
   H04L1/00 B
【請求項の数】15
【全頁数】26
(21)【出願番号】特願2016-565386(P2016-565386)
(86)(22)【出願日】2015年5月11日
(65)【公表番号】特表2017-523493(P2017-523493A)
(43)【公表日】2017年8月17日
(86)【国際出願番号】US2015030163
(87)【国際公開番号】WO2015175411
(87)【国際公開日】20151119
【審査請求日】2016年12月28日
(31)【優先権主張番号】62/053,255
(32)【優先日】2014年9月22日
(33)【優先権主張国】US
(31)【優先権主張番号】61/992,286
(32)【優先日】2014年5月13日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】516323781
【氏名又は名称】クロード クラウディング コーポレイション
(74)【代理人】
【識別番号】100091683
【弁理士】
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【弁理士】
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】ヤノブスキー,デイヴィット
(72)【発明者】
【氏名】ナモレイゼ,テイムラズ
【審査官】 安藤 一道
(56)【参考文献】
【文献】 米国特許出願公開第2010/0094957(US,A1)
【文献】 特開2008−311948(JP,A)
【文献】 国際公開第2013/106400(WO,A1)
【文献】 Mingqiang LI,On the Confidentiality of Information Dispersal Algorithms and Their Erasure Codes,arXiv.org [online],2013年 3月13日,version 2,pp.1-4,[2017年8月22日検索],URL,https://arxiv.org/pdf/1206.4123v2.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
H03M 13/17
H04L 1/00
(57)【特許請求の範囲】
【請求項1】
i)それぞれが一意に割り当てられた識別子を有するスライスにそれぞれ分離されたデータファイルを、および、ii)前記一意の識別子にそれぞれ関連付けられたマップを記憶および処理する方法であって、
前記マップはクライアントのデータセンタとストレージノードネットワークに記憶され、
データミクサアルゴリズム(DMA)を適用する少なくとも1つのプロセッサを使用して、サイズL=|F|のオブジェクトFを、それぞれのサイズがL/m(m<n)のn個の認識できない部分F、F、…Fにコード化することを含み、
任意のm個の部分のコレクションから復元でき、
前記オブジェクトFにおいてm個の部分より少ないものから明示的に復元できるデータはなく、
前記DMAの少なくとも一部は順方向エラー訂正コード(FEC)を含み、
前記FECからの出力は入力記号を包含せず、
さらに、前記FECからの出力は、m個の記号のメッセージをn個の記号のより長いメッセージに変換して、元のメッセージが長さmの前記n個の記号のサブセットから回復できるようにする、方法。
【請求項2】
少なくとも1つのプロセッサを使用して、実行される時に、プロセッサが、データを前記スライスに、一部は前記認識できない部分に、および、一部は前記認識できない部分から物理的に離れたロケーションに再構成可能にする少なくともコードの一部を記憶することをさらに含む、請求項1に記載の方法。
【請求項3】
前記スライスを前記認識できない部分にコード化することは、複数の分散されたロケーションで生じさせる、請求項1に記載の方法。
【請求項4】
少なくとも1つのプロセッサを使用して、複数のストレージユニットの間で前記認識できない部分を分散することであって、前記データファイルのうちの任意の1つを復元するのに十分なデータを有するストレージユニットは1つもない、分散することをさらに含む、請求項1に記載の方法。
【請求項5】
少なくとも1つのプロセッサを使用して、オブジェクトFを、それぞれのサイズがL/mのm個のスライスS、S、…Sに分けることであって、前記m個のスライスは、
(S、S、…S)・Gm×n=(F、F、…F
のように、m−of−nミクサコードを使用してn個の認識できない部分F、F、…Fにコード化される、分けることをさらに含み、式中、Gm×nは前記ミクサコードのジェネレータ行列であり、以下の条件:
1)Gm×nのいずれのカラムもm×m恒等行列のいずれのカラムにも等しくない、
2)Gm×nの任意のm個のカラムはm×m正則行列を形成する、および、
3)そのジェネレータ行列Gm×nの任意の正方部分行列は正則である、を満たす、請求項1に記載の方法。
【請求項6】
1)ジェネレータ行列がGm×(m+n)=(Cm×m|Dm×n)である、任意のm−of−(m+n)ミクサコードを選ぶこと、
2)ジェネレータ行列が
【数1】
であるm−of−nミクサコードを採用するように前記DMAを構築することによって、任意のm−of−(m+n)ミクサコードから強力な機密性によって前記データミクサアルゴリズムを構築することをさらに含む、請求項1に記載の方法。
【請求項7】
前記ジェネレータ行列はコーシー行列またはヴァンデルモンド行列である、請求項6に記載の方法。
【請求項8】
請求項1に記載のステップを行うように動作する1つまたは複数のプロセッサを含む、請求項1に記載のステップを行うためのストレージおよび処理システム。
【請求項9】
前記1つまたは複数のプロセッサは請求項2に記載のステップを行うように動作する、請求項8に記載のシステム。
【請求項10】
前記1つまたは複数のプロセッサは請求項3に記載のステップを行うように動作する、請求項8に記載のシステム。
【請求項11】
前記1つまたは複数のプロセッサは請求項4に記載のステップを行うように動作する、請求項8に記載のシステム。
【請求項12】
前記1つまたは複数のプロセッサは請求項5に記載のステップを行うように動作する、請求項8に記載のシステム。
【請求項13】
前記1つまたは複数のプロセッサは請求項6に記載のステップを行うように動作する、請求項8に記載のシステム。
【請求項14】
前記1つまたは複数のプロセッサは請求項7に記載のステップを行うように動作する、請求項13に記載のシステム。
【請求項15】
メディアコンテンツを処理する方法であって、
前記メディアコンテンツを複数のファイルスライスに分離するステップと、
前記ファイルスライスからメディアコンテンツを再構成するために第1のメタデータを生成して、クライアントのデータセンタとストレージノードネットワークに記憶されるステップと、
前記ファイルスライスを消失訂正符号化するステップであって、前記消失訂正符号化にはデータミクサアルゴリズム(DMA)が用いられ、前記DMAの少なくとも一部は順方向エラー訂正コード(FEC)を含み、前記FECからの出力は入力記号を包含せず、前記スライスは別個のファイルスライスフラグメントに分けられ、さらに、前記メディアコンテンツは前記消失訂正符号化されたファイルスライスフラグメントから認識できない、消失訂正符号化するステップと、
前記ファイルスライスフラグメントから前記ファイルスライスを再構成するために第2のメタデータを生成して、ストレージノードネットワークに記憶されるステップと、
前記ファイルスライスフラグメントを複数の分散型ネットワーク化ストレージノードに送るステップであって、前記ノードから、前記メディアコンテンツが前記第2のメタデータを使用して取り出されかつ復元可能である、送るステップと、
クライアントデコーダにおいて、前記ネットワーク化ストレージノードから前記ファイルスライスフラグメントを受信するステップと、
前記第1及び第2のメタデータに従って前記メディアコンテンツを復元するステップと、を含み、
前記メディアコンテンツを復元するステップは前記メディアコンテンツの再生中に同時に行われる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この非仮出願は、2014年5月13日に出願した「データストレージのための方法」という名称の米国仮特許出願第61/992,286号、および、2014年9月22日に出願した「メディアストリーミングのための方法」という名称の米国仮特許出願第62/053,255号の優先権を主張するものである。米国仮特許出願第61/992,286号および第62/053,255号の開示は、それら開示全体が参照により本明細書に組み込まれる。
【0002】
本開示の主題は、一般的に、セキュリティ保護データストレージおよび送信に関し、より詳細には、分散型セキュリティ保護データストレージ、ならびに、メディアストリーミングおよび他のアプリケーションで使用するための送信に関する。
【背景技術】
【0003】
クラウドコンピューティングが情報技術(IT)インフラの状況に革命をもたらす将来性は、企業自体のデータセンタまたはローカルネットワーク内でかねてより維持されるハードウェアリソースおよびソフトウェアリソースの両方がサードパーティによってインターネット上でホストされるクラウドサーバのネットワークを通して利用可能とすることで、企業が、自身の複雑なITインフラおよびデータセンタを所有しかつ管理する必要性を軽減することができることに基づく。しかしながら、企業のデータストレージおよびコンピューティング要件をこのようなサードパーティの「クラウド」サーバ(複数可)に移行するように企業を納得させるために、クラウドサーバは、顧客の必要性およびセキュリティ上の懸念を満足させるようにするある程度の性能、データセキュリティ、スループット、および有用性基準を提供する必要がある。例えば、ストレージリソースには、エンタープライズ空間におけるクラウドコンピューティングの全面的な採用というボトルネックが残されている。現在のクラウドベースストレージリソースは、危険なセキュリティの脆弱性、可用性の不確定要素、および過剰な費用を含む深刻な性能上の懸念に苦しむ可能性がある。クラウドベースストレージまたはサービス型ストレージ(StAAS)は、エンタープライズのデータセンタにおいて見出される現在の組織内ストレージ容量に匹敵する可能性があるクラウドにおける仮想「ストレージデバイス」を作成しなければならない。
【0004】
ファイルおよびファイルのグループ全体が1つの物理的なサーバロケーションに記憶される現在のクラウドベースストレージソルーションの大部分は、従来のファイルストレージ(CIFS、NFS)技術に基づくことが多い。このアプローチは、インターネット上で見出される典型的な通信条件下で受け入れ可能なデータ転送レートを供給できない。待ち時間は満足のいくものではなく、エンドユーザまたはコンシューマは、最良に設計されたクラウドアプリケーションにおいても性能上の障壁を知る。さらに、大量のデータの転送には法外な時間がかかる可能性があり、実際的ではない。例えば、現在の技術を使用したクラウドによる1Tbのデータ転送は、完了するには数週間を必要とする。
【0005】
完全なファイルが単一のロケーションに記憶されるクラウドストレージはまた、機密の企業情報を危険にさらすことに関心があるハッカーにとって興味をかき立てる対象となっている。エンタープライズのデータセンタにおけるセキュリティ手順の設計に対する全ての尽力は、インターネット上で攻撃する腹積もりの1ハッカーによって消滅する可能性がある。従って、クラウドベースストレージシステムのセキュリティを高めることは非常に望ましい。
【0006】
クラウドストレージソルーションはまた、エンタープライズクライアントとそのクラウドストレージサーバとの間のインターネット通信の混乱から生じる場合がある「停止状態」に対して非常に脆弱である。これらの停止状態は、継続時間が可変的である可能性があり、例えば、サービス妨害(DOS)攻撃発生時に非常に長くなる可能性がある。エンタープライズは、これらの停止状態中に業務を停止せざるを得ない場合、重大な損害を被る可能性がある。
【0007】
1つのサーバのロケーションにファイル全てを記憶することに基づくクラウドストレージソルーションはまた、そのサーバロケーションが危険にさらされる場合、障害回復を潜在的に危険にする。レプリケーションおよびバックアップも同じ物理的サーバロケーションにおいて対応される場合、不具合および障害回復の問題は、エンタープライズに対して大量のデータ損失という真の危険性をもたらす可能性がある。
【0008】
現在の技術によるクラウドストレージソルーションは、記憶されたエンタープライズデータの安全性を徹底する完全なレプリケーションおよびバックアップのストレージオーバーヘッドを必要とする。典型的な現在のクラウドストレージ技術セットアップにおいて、これには、記憶されるデータの800%までの冗長性を必要とする可能性がある。この大量の必要とされるデータ冗長性には、クラウドにおいてストレージ容量を維持するための費用にとてつもないオーバーヘッドが付加される。このような冗長性の必要性には、費用を増加させるだけでなく、データセキュリティに関する新しい問題が持ち込まれる。加えて、この冗長性全てによって、クラウドサーバが全てのサーバのデータトランザクションにおいてレプリケーションを常に使用する際の性能の低下ももたらされる。
【0009】
インターネット接続は、データの高いスループットに対応する能力が改善されているため、メディアストリーミングは、悪徳なコピーの危険性を低減するように、ビデオおよび音楽などのメディアコンテンツを提供する非常に一般向けのやり方になっている。クラウドストレージは、多くのメディアコンテンツストリーミング方式における重要な役割を果たす。典型的には、メディアコンテンツは企業のウェブサーバ上にある。ユーザによって要求される時、メディアコンテンツは、メディアファイルの次のセグメントを表示するのに間に合うようにクライアントによって受信される連続するデータセグメントの一様のストリームでインターネット上でストリームされ、その結果、ユーザに対してオーディオまたはビデオのシームレスな再生らしきものが生じる。
【0010】
現在、メディアストリーミング技術は、連続的な再生を提供するように、メディアファイルの次のセグメントを再生するのに間に合わせてクライアントによって受信されるデータのセグメント化されたストリームとして、圧縮形式で、ウェブサーバを通してメディアファイルを転送する概念に基づく。場合によっては、データ転送のレートは、データが再生されるレートを超え、追加のデータは将来的な使用のためにバッファに入れられる。データ転送のレートがデータ再生のレートより遅い場合、クライアントがメディアの次のセグメントを再生するために必要とされるデータを収集する間提示は停止することになる。ストリーミングメディア技術の利点は、クライアントが大型のメディアファイル全体(例えば、ノーカットの映画)をダウンロードするのを待つ必要がないこと、および、オンデマンドのダウンロードの特質がクライアントによってメディアコンテンツの不正コピーから保護するデジタル著作権管理(DRM)方式で処理するのに適していることにある。
【0011】
現在のメディアストリーミング技術は、データのストリームを受信するためにクライアントが接続するウェブまたはメディアサーバ上に全メディアファイルの完全なコピーを記憶する。送信プロセス中のデータ損失は、転送プロセスに容易に割り込み、かつ、クライアントにおけるメディアコンテンツの再生を中断させる可能性がある。このような問題を回避するために、先行技術では、多くの場合、同じメディアファイルを複数のサーバノードに置くようにし、複数のデータはパブリックであろうとプライベートであろうと世界を通じて集まるため、ユーザはそれらデータ近くのサーバノードに接続することができる。これには、接続性の問題によるデータパケット損失に直面して必要とされる一様のデータ転送レートを保証する必要があり、同じファイルの複数のコピーを世界を通じて多くのサーバ上に展開することは、ストリーミングメディアプロバイダに大きな負担を課す。
【0012】
本開示の主題は、上で説明した問題の1つまたは複数を軽減するおよび/または克服すること、および、よりセキュリティ保護されたデータストレージおよび送信方法を提供することに関し、より詳細には、メディアストリーミングおよび他のアプリケーションで使用するためのよりセキュリティ保護されたデータストレージおよび送信方法を提供することに関する。
【発明の概要】
【発明が解決しようとする課題】
【0013】
とりわけ、ストリーミングメディアの必要性に適した分散型データストレージをセキュリティ保護するための方法およびシステムが開示される。
【課題を解決するための手段】
【0014】
特定のデータストレージの実施形態は、メディアデータファイルを複数の別個の部分に分離すること、これらの別個の部分を消失訂正符号化すること、および、複数のストレージユニットの間でそれら部分を分散することを含み、この場合、データファイルを復元するのに十分なデータを有するストレージユニットは1つもない。データファイルの別個の部分のそれぞれがどのストレージユニットに記憶されるかを示すマップが生成される。特に、それぞれの別個の部分に一意の識別子が割り当てられ、一意の識別子のマップは、データファイルの再構成を容易にするために使用される。
【0015】
別の実施形態では、本明細書に開示されるデータストレージ技法は、データファイルをスライスに分離すること、一意の識別子をそれぞれのスライスに割り当てること、再構成を容易にするために一意の識別子のマップを作成すること、それぞれのスライスを別個のスライスフラグメントにフラグメント化すること、スライスフラグメントを消失訂正符号化すること、データファイルを復元するのに十分なデータを有するストレージユニットは1つもない複数のストレージユニットの間で該フラグメントを分散すること、および、どのストレージユニットが何のフラグメントを収容しているかについてのマップを生成することを含む。
【0016】
開示される消失訂正符号化プロセスによって、データセキュリティおよびパケット損失軽減という改善法が達成される。最初に、データは消失訂正符号化プロセス中に認識できない部分にコード化されることで高度のセキュリティを提供する。次に、消失訂正符号化されたデータは、データ損失発生時のエラー訂正を提供する。消失訂正符号化がデータ量を増加させる一方、データサイズの増加より少ないデータ損失を適応させかつ回復させることができる。特に、好ましい実施形態に従って記憶される、処理されかつ消失訂正符号化されたデータは、元のデータのいずれのレプリケーションも含まないため、セキュリティがかなり高まる。
【0017】
一実施形態では、ストリーミングメディアコンテンツを記憶するための方法は、デジタルメディアコンテンツファイルを別個の部分またはフラグメントに分離することと、別個の部分を消失訂正符号化することと、別個の部分を複数のストレージユニットの間で分散することとを含み、メディアコンテンツを復元するのに十分なデータを有するストレージユニットは1つもない。好ましい実施形態では、別個の部分のそれぞれがどのストレージユニットに記憶されるかを明示するマップが生成される。メディアコンテンツのそれぞれの別個の部分に一意の識別子が割り当てられ、一意の識別子のマップは、メディアコンテンツの再構成を容易にするために使用される。例えば、マップは、メディアファイルを復元し、かつ、ブラウザまたはその他で、クライアントデバイス上のメディアコンテンツの再生を可能にするために、クライアントデバイスによって使用可能である。
【0018】
別の実施形態では、データストレージの方法は、データファイルをスライスに分離するステップと、一意の識別子をそれぞれのスライスに割り当てるステップと、一意の識別子のマップを作成するステップと、スライスを別個の部分またはフラグメントにフラグメント化するステップと、別個の部分を消失訂正符号化するステップと、別個の部分を複数のストレージユニットの間で分散するステップであって、データファイルを復元するのに十分なデータを有するストレージユニットはない、分散するステップと、別個の部分のそれぞれがどのストレージユニットに記憶されるかを示すマップを生成するステップと、を含む。クライアントデバイス上で、マップを使用してストリームされたメディアファイルの再生および/またはさらなる記憶を可能にすることによって、復号が行われる。
【0019】
本開示の前述の要約、好ましい実施形態、および他の態様は、添付の図面と併せて読むと、特有の実施形態の以下の詳細な説明を参照して最も良く理解されるであろう。
【図面の簡単な説明】
【0020】
図1】例示のストレージシステムの3つの層の概略図である。
図2】例示の実施形態によるファイル処理のさまざまな段階を示す図である。
図3-1】例示の実施形態によるファイル処理中に行われるさまざまなステップを略述する表である。
図3-2】例示の実施形態によるファイル処理中に行われるさまざまなステップを略述する表である。
図4A】例示の実施形態によるファイル処理の第1のセクションの図である。
図4B】例示の実施形態による、分散させるためにスライスフラグメントを作り出すためのファイルスライスの消失訂正符号化の図である。
図5】例示の実施形態による、データストレージノードに対するファイルのアップロードプロセスの詳細な図である。
図6-1】例示の実施形態による、データストレージからクライアントへのデータのダウンロードプロセス中に行われるさまざまな詳細なステップの表である。
図6-2】例示の実施形態による、データストレージからクライアントへのデータのダウンロードプロセス中に行われるさまざまな詳細なステップの表である。
図7A】例示の実施形態による、CSPに対してなされるクライアントダウンロード要求の図である。
図7B】例示の実施形態によるスライスフラグメントについての要求の図である。
図8】ファイルダウンロードプロセス中のCSP、FEDP、およびSNNの間の対話の詳細な図である。
図9】一実施形態によるデータガベージコレクションプロセスの図である。
【発明を実施するための形態】
【0021】
さまざまな図面における同様の参照符号および名称は同様の要素を示す。
【0022】
それぞれのデータファイルを、一連のクラウドサーバおいて記憶されるファイルスライスフラグメントに分解し、該フラグメントが好ましくは種々の地理的ロケーションの間で分散されるストリーミングメディアファイルのためのクラウドストレージ技術が本明細書に開示される。一実施形態では、クライアントエンタープライズメディアデータは、オブジェクトストレージ技術を使用してファイルスライスフラグメントに逆アセンブルされる。結果として生じるファイルスライスフラグメントの全ては暗号化され、かつ、一連のクラウドサーバに対する分散の前に、消失訂正符号化を使用してエラー訂正のために最適化される。これによってクラウドにおいて仮想「データデバイス」を作成する。クラウドにおけるデータストレージのために使用されるサーバは、データスループットの速度、ならびにデータセキュリティおよび信頼性両方に向けて最適化するためにクライアントによって選択可能である。取り出しのために、暗号化されかつ分散させたファイルスライスフラグメントは、取り出され、かつ、クライアントの要求時に元のファイルにリビルドされる。この分散アプローチは、メディアファイルが単一の物理的デバイスに記憶されるのではなく、クラウドにおいて、それぞれがファイルの暗号化された「フラグメント」のみを包含する一連の物理的デバイスの間で広がる、「仮想ハードドライブ」デバイスをもたらす。ファイルを移動させる、削除する、読み出す、または編集する目的のためのファイルへのアクセスは、ファイルフラグメントをリアルタイムで迅速に再構成することによって達成される。このアプローチによって、データ転送およびアクセスの速度、データセキュリティ、ならびにデータ可用性における多数の改善がもたらされる。該アプローチはまた、既存のハードウェアおよびソフトウェアインフラを活用することができ、ストレージ技術の分野における実質的な費用削減をもたらす。
【0023】
クラウドサーバにおいて、特にストリーミングメディアデータを含むデータの分散型ストレージは1つのとりわけ有用なアプリケーションであるが、同技術は、LANまたはWANなどのいずれの可能な通信技術によっても接続できる複数のストレージデバイスにデータが記憶できる構成に応用可能である。開示された技術の速度およびセキュリティのメリットは、最終ストレージデバイスが複数の物理的ハードディスクまたは複数の仮想ハードディスクである、情報技術(IT)データセンタのデバイス内に存続させることが可能である。ITユーザは、本開示の技術が実装される高速度のLANによって接続される企業全体を通して利用可能な全てのストレージデバイスを使用することを選んでよい。複数のストレージデバイスは、サイバースペースにおける複数の個々のユーザにわたって広がってもよく、ファイルは、そのネットワークにおいて利用可能である複数の物理的または仮想ハードディスクに記憶される。それぞれの場合では、システムにおけるデータ転送の速度およびデータストレージのセキュリティは大幅に向上される。
【0024】
開示された主題の使用は、バックアップまたは障害回復の目的のための二次データストレージを含む。開示された主題はまた、サーバ側の処理なしでファイルにアクセスする場合のプライマリーストレージの必要性に応用可能である。ある特定の実施形態では、これは、制限なくインターネットを通してストリームするのに利用可能とできるビデオまたはオーディオコンテンツを含むメディアコンテンツのストレージを含む。
【0025】
データストレージの利点
開示されたストレージ技術は、既存のシステムにわたって多数の利点を提示する。これら利点の中には以下のものがある。
【0026】
A.データ転送レート
既存のクラウドストレージ技術と比較すると、開示された実施形態は、典型的なインターネット通信条件下で、データ転送速度の実質的な改善を可能にする。300mbpsまでの速度が実証されており、このことは、例えば、いくつかの既存のシステムを使用すると1か月かかる可能性がある1Tbのファイルの転送が10時間で完了できることを意味することになる。この速度の改善は数個の要因から生じる。
【0027】
ファイルを復元する際に、それに伴う「部分」は複数のサーバ間で並列に転送され、その結果、実質的にスループットが改善される。これは、今日使用される一般向けのダウンロードアクセラレータ技術のいくつかにたとえることができ、これによってまた、ファイルを部分でダウンロードするための複数のチャネルがオープンし、その結果、実質的にダウンロードレートが増大する。クラウドサーバの1つへの転送接続のうちの1つにおいて生じる場合がある待ち時間のボトルネックによって、通常の待ち時間の条件下で動作している他のサーバへの転送の速度は上昇し続ける。
【0028】
分散型ストレージから生じるデータセキュリティおよび信頼性の固有の改善によって、レプリケーションによってデータの読み書きの連続的なミラーリングの必要性を排除し、その結果、スループットに対する速度がさらに改善される。
【0029】
典型的には、データの最もリソース集約的な処理は、クラウドサーバストレージサイトおよびクライアントサイト両方に対する速度および接続性について最適化される、クラウドにおける1つまたは複数の非常に高い性能のサーバ上のサーバ側で生じる。
【0030】
特に、ある特定の実施形態における消失訂正符号化は、例えば、本明細書にさらに記載されるように、複数のデータ処理サーバ上で、サーバ側で行われる。これらのサーバは、消失訂正符号化プロセスが典型的には中央処理装置(CPU)に集約するタスクであるため、高い処理性能を有するように選定されてよい。これによって、消失訂正符号化を効率的に行うためのハードウェアおよびソフトウェアインフラがない場合があるクライアント側で、または、単一のサーバ上で行われる消失訂正符号化と比較すると性能が改善されることになる。かかる処理を最適化されたサーバ群に移すことによって、既存の設計と比較して、クライアント側の負荷および性能要件が減少する。
【0031】
B.データセキュリティ
開示された「仮想デバイス」ストレージは、以前の設計に対するデータセキュリティに関して大幅に改善されている。それぞれのメディアファイルを多くのファイルスライスフラグメントに分解し、かつ、該ファイルスライスフラグメントを、好ましくは地理的に分散したロケーションにおける多くのクラウドストレージロケーション上で分散させることによって、ハッカーは、ファイルをその元の形式に再構成することが極めて困難であることがわかるであろう。さらに、ファイルスライスフラグメントは、ある特定の実施形態において全て暗号化されて、将来的に可能性のあるハッカーをまごつかせるためにデータセキュリティの別の層を付加する。クラウドストレージロケーションのうちの1つへのハッキングの成功は、ハッカーが全メディアファイルを再構成できることにはならない。これは、以前の設計に対するデータセキュリティにおける大幅な改善である。
【0032】
ある特定の実施形態では、ファイルスライスフラグメントの処理およびストレージ両方に使用されるサーバは、複数のクライアントによって共有されてよく、ハッカーは、該フラグメントがどのクライアントに属し得るかをデータスライスから識別することはできない。これによって、ハッカーにとって、この技術を使用して記憶されたファイルデータのセキュリティを危険にさらすことがより一層困難になる。ファイルスライスフラグメントは、種々のクラウドストレージサーバにランダムに分散させることができ、データストレージのセキュリティをさらに向上させる。ある特定の実施形態では、ファイルスライスフラグメント全てが直接分散されているロケーションをクライアントさえ正確に知ることができない。また、ファイルスライスフラグメントを再構成する、および/または、ファイルスライスフラグメントを解読するためのキー全てが記憶される場所は1つもない。最後に、データセキュリティをさらに向上させるために、メタデータストレージの2次元モデルが使用可能であり、ここで、データを復元するために必要とされるメタデータは、クライアント側およびリモートクラウドストレージサーバの両方で記憶される。
【0033】
C.データ可用性
開示された「仮想デバイス」ストレージではまた、先行技術のストレージ技術と比較してデータの可用性が改善されている。ファイルを、いくつかの種々のクラウドサーバに記憶される複数のファイルスライスフラグメントに分割することによって、クライアントロケーションと物理的クラウドロケーションのうちの1つとの間の通信上の問題は、他のデータロケーションとの通常の通信および該ロケーションにおける待ち時間が少ないことによって補うことが可能である。ファイルフラグメントを複数のロケーションの間で分散させることによる全体的効果は、サイトのうちの1つにおける通信断絶による停止状態からシステム全体を隔離することである。
【0034】
好ましくは、後述される中間サーバ処理ノードは、全て高性能プロセッサで構成され、待ち時間が少ない。これによって、データ転送についてクライアントに対する可用性が高くなる。
【0035】
好ましくは、中間サーバ処理ノードは、クライアントが該ノードのサービスを要求する待ち時間を最小限に抑えるようにそれぞれのクライアント要求に応答して、動的に選ばれてよい。クライアントはまた、ファイルスライスフラグメントを記憶するために使用されるクラウドストレージサーバのリストから選択してよく、自身の地理的ロケーションおよびこれらのサーバの可用性に基づいてこのリストを最適化することができる。これによって、それぞれの転送要求時にそれぞれのクライアントに対するデータ可用性がさらに最大化される。
【0036】
D.データ信頼性
開示された「仮想デバイス」ストレージではまた、クラウドデータストレージシステムの信頼性において先行技術に対して改善されている。それぞれのファイルをファイルスライスフラグメントに分離することは、ハードウェアもしくはソフトウェアの不具合、または、物理的クラウドストレージロケーションのうちの1つにおけるエラーが、ある特定のかねてより存在するシステムにおいてみられるような、ファイル全体が1つの物理的ロケーションに記憶される場合のように、ファイルへのアクセスを妨げるようなことにならないことを意味する。また、本明細書において論じられる消失訂正符号化技術の使用は、システムにおける高品質のエラー訂正能力を保証して、データセキュリティおよび信頼性両方共を向上させる。本明細書で使用されるファイルスライスフラグメントおよび消失訂正符号化技法の組み合わせは、クラウド技術のエンタープライズによる採用を促すような信頼性を大きく進展させる。
【0037】
E.既存のクラウドインフラリソースの使用
開示された主題の要素は、パブリックリソースおよびプライベートリソース両方によって、既存のクラウドサーバインフラを活用することができる。現在のクラウドプロバイダは、開示された方法論による使用のために該プロバイダの既存のハードウェアおよびソフトウェアインフラによるセットアップを行うことができる。従って、本明細書に開示される技術によってもたらされる向上の大部分は、修正することなくまたは最小限の修正によって現在存在するクラウドリソースを使用できるため、最小限の投資で利用可能とすることができる。
【0038】
F.インフラ費用の削減
ある特定の実施形態は、既存のクラウドストレージ技術ソルーションと比較して、必要とされる待ち時間ははるかに少ない。上記のように、先のストレージシステムは、ミラーリングおよびレプリケーションに当てられるストレージは、さらに500%必要とする可能性がある。本明細書に開示される実施形態は、固有の信頼性がより高いため、元のファイルサイズにわたって30%の冗長性のみでうまく動作することができる。30%の冗長性だけでも、既存のシステムよりも高いレベルの信頼性が達成できる。高い冗長性に対する必要性を低減することで、クラウドストレージ能力に対する費用は低下することになる。年々見られるエンタープライズデータおよびストレージの必要性における急激な増加によって、この冗長性の低減は、そのローカルデータセンタと完全に置き換えるためにエンタープライズにとってクラウドソルーションを経済的に実行可能にする重要な要因である。
【0039】
本明細書にさらに開示されるように、開示された「仮想デバイス」ストレージ技術の実施形態は、ファイルを、最終的に所定の数のクラウドストレージロケーションに転送されることになるファイルスライスおよびファイルスライスフラグメントに分割すること;ファイルがどのように分割され、かつ、どのクラウドロケーションにおいてファイルスライスフラグメント群が記憶されるかを記述してクライアントによるファイルの再構成を可能にする、ファイルスライスおよびファイルスライスフラグメントのマップを作成すること;追加のデータセキュリティを提供するためにファイルスライスおよびファイルスライスフラグメントを暗号化すること;エラーチェックおよび回復のために部分的に消失訂正符号化情報を付加すること;および、適正に書き込まれなかったおよび逆アセンブルされなかった、または、読み出されなかったおよび再構成されなかった、取り残されたファイルスライスフラグメントのガベージコレクションを行うことといった、ある特定のタスクを達成する。
【0040】
図1に示されるように、例示のシステムの実施形態の基本的構造は、3つの層を含むものとして視覚化されてよい。第1の層は、クライアントのバックオフィスまたはデータセンタに位置することができるクライアント側プロセッサ(CSP)である。(ブラウザにおいて実行しているウェブアプリなどの)クライアントアプリケーションは、CSPにアクセスして、アプリケーションパラメータを設定し、かつ、クライアントのデータセンタからストレージノードネットワークへのファイルのアップロード、および、ストレージノードネットワークからクライアントのデータセンタへのファイルのダウンロードを開始することができる。図において、「スライス」は全般的にファイルスライスに言及するために使用され、「atom」は全般的にファイルスライスフラグメントに言及するために使用される。
【0041】
例示のシステムの第2の層は、中間データ処理を行うフロントエンドデータプロセッサ(FEDP)を含む。FEDPは、クラウドにおける複数の分散されたロケーションに位置してよい。複数のFEDPサーバは、それぞれのクライアントに対して利用可能であってよく、それぞれのFEDPサーバは、高い処理性能、および、クライアントのロケーションに対する接続の高い可用性を提供する。
【0042】
例示のシステムの実施形態の第3の層は、ストレージノードネットワーク(SNN)である。SNNは、民間のクラウドリソースプロバイダによって動作可能であるさまざまなクラウドストレージセンタを含むことができる。SNNにおけるストレージノードの数および識別は、クライアントのロケーションからの最良の平均待ち時間および可用性を呈するストレージノードを選ぶことによってストレージ構成の待ち時間およびセキュリティを最適化するためにクライアントによって自身のクライアントアプリケーションを使用してオプションで選択できる。
【0043】
図1は、CSP、FEDPおよびSNNの間の相互関係を示す概略図である。
【0044】
これらの3つの層によって果たされる基本的機能は、以下のように説明できる。CSPは、クライアントアプリからSNNへのファイルのアップロードについての要求を受信しかつ開始できる。最初のステップとして、ファイルをそれぞれが一定のサイズを有するいくつかのスライスに分割する。スライスの数およびサイズは、クライアントアプリに対して利用可能なパラメータによって変化させてよい。それぞれのスライスは、クライアントキーで暗号化でき、一意の識別子が割り当てられる。CSPはまた、スライスを、元の完全なファイルに再構成できるようにするためにマッピングするメタデータファイルを作り出すことになる。このメタデータファイルは、クライアントのデータセンタに記憶されてよく、SNNに暗号化されかつコピーされてもよい。例示の実施形態では、CSPはその後、さらなる処理のために、スライスされたファイルを次の層であるフロントエンドデータプロセッサ(FEDP)に送ることができる。
【0045】
FEDPは、スライスされたファイルをCSPから受信でき、それぞれのスライスをさらに処理することができる。この処理は、それぞれのスライスを一連のファイルスライスフラグメントに分けることができる。例えば、あるデータが送信プロセス中に損失される場合にエラー訂正されるように消失訂正符号化が行われる。消失訂正符号化は、本明細書にさらに説明されるように、エラー訂正を行うために、それぞれのファイルスライスフラグメントのサイズを大きくするようにする。FEDPはまた、自身の暗号化キーを使用してファイルスライスフラグメントを暗号化することができる。FEDPは、ファイルスライスフラグメントの全てをそれらの元のスライスにマッピングし戻し、かつ、ストレージノードネットワーク(SNN)サーバがそのファイルスライスフラグメントを記憶するために使用されるものとすることを記録する別のメタデータファイルを作成することになる。この中間処理が行われると、FEDPはファイルスライスフラグメント群をクラウドにおけるそれらの指定されたSNNサーバへ送り、かつ、作成されるメタデータファイルのコピーをそれぞれのSNNサーバへ送る。
【0046】
第3の層において、SNNサーバはここで、ファイルのダウンロードについてシステムを通して将来的な要求を受信することを待つように、通常利用可能なクラウドホスティングサーバにおけるクラウドにおいて処理されたファイルスライスフラグメントをホストとして処理することになる。ダウンロードプロセスは、基本的に、3つの処理層において上記ステップを逆転することによって、CSPにおいて元のファイルまたはファイルスライスを復元する。
【0047】
図2は、例示の実施形態による、SNNへのファイルのアップロード中に、CSP、FEDP、およびSNNのそれぞれについて上述されるファイル処理のさまざまな段階を示す。図3は、例示の実施形態に従って行われるファイルアップロードプロセスに含まれてよい詳細なステップの表である。
【0048】
ファイルのアップロード
図4Aおよび図4Bはそれぞれ、CSPからFEDPへ、次いでSNNへのファイルのアップロードプロセス中の2つの基本的処理段階:CSPにおけるファイルのファイルスライスへの処理、および、FEDPにおける、SNNへの分散のためにファイル スライスフラグメントを作成するためのファイルスライスの処理を示す。図5は、中間ステップのいくつかを示す、段階的に行われるアップロードプロセスの別の例証である。
【0049】
ファイルのダウンロード
先にSNNにアップロードされているファイルをダウンロードするプロセスは、アップロードプロセスにおいて使用されるステップの逆転を含む。多くのSNNにわたって記憶されるスライスフラグメントは、スライスフラグメントがどのようにスライスに再構成されるかをマッピングする第2のメタデータファイルを使用してファイルスライスに再構成されなければならない。これはFEDPによって行われる。そのように生成されるファイルスライスは、クライアントのデータセンタに送出するためにスライスがファイル全体にどのように再構成されるかをマッピングする第1のメタデータを使用して、CSPによって完全なファイルに再構成されなければならない。第2のメタデータファイルは、ファイルを記憶するために使用されるSNNのそれぞれに冗長的に記憶され、第1のメタデータファイルはクライアントのデータセンタに、および同様にそれぞれのSNNに記憶される。
【0050】
図6は、ダウンロードプロセスに含まれてよい詳細なステップの表である。
【0051】
図7Aは、CSPとFEDPとの間でなされる要求、およびFEDPとSNNとの間の要求を示す3つの層の間のダウンロードプロセスを示す。図7Bは、FEDPがSNNからスライスフラグメントを要求して、要求されたファイルスライスを第2のメタデータファイルを使用して再構成する時に含まれるステップを示す。
【0052】
図8は、ダウンロードプロセス中にCSP、FEDPおよびSNNの間の対話の詳細なステップを示す。
【0053】
技術の最適化
上述されるように、開示された方法およびシステムは、データスループット、データ可用性、データ信頼性、およびデータセキュリティにおいて大きく改善されている。
【0054】
システムにおいて使用される倍の数のアップロードおよびダウンロードノードによってアップロードおよびダウンロード両方が加速されることになる。CSPとFEDPとの間の待ち時間を最適化し、かつ、利用可能な最良の現時点の待ち時間によるFEDPを選ぶことによって、スループットのさらなる加速が得られてよい。FEDPが、SNNに対する待ち時間を自動的に最小限に抑えるように設計される高性能高可用性のサーバとしてセットアップされるため、FEDPとSNNとの間の待ち時間を最適化する必要はない。複数のノードを使用することによってまた、1つの特定のサーバ経路が待ち時間が長いことに苦しむ場合に見られるパフォーマンスヒットを減少させる。
【0055】
ファイルスライスフラグメントを記憶するための多くのストレージノードを使用することは、クライアントデータのストレージに利用可能なセキュリティを著しく増加させる。ハッカーが、多数のSNNにおける異種のスライスフラグメント全てと接触し、かつ、それらを使用可能なファイルに再構成するために必要な情報を見つけ出すタスクは非常に厄介である。
【0056】
スライスフラグメントの分散のために消失訂正符号化を使用することは、システムが、固有のパフォーマンスヒットおよびセキュリティリスクと共に、複数のデータレプリケーションに対する必要性を不要にすることができるようにする、固有のエラーチェック/訂正によって追加の信頼性の層を加える。
【0057】
さらなる問題
前に述べたように、非常にリソース集約的なままの一領域は、非常にCPU集約的である消失訂正符号化プロセスである。この問題に対処するために、非常に高性能のFEDPハードウェアは、これらのFEDPサーバにおいて使用されるCPU(または仮想CPU)がシステムの性能上の必要性を満たすことを保証する。さらに、ソフトウェアパッケージ全体は、FEDPサーバを含む「Go」言語で符号化されてよい。「Go」言語によって生成されるネイティブコードオブジェクトは、とりわけ、消失訂正符号化が主要なCPUリソースを取り入れるFEDPサーバにおいて、システム性能全体を改善するのに役立つ。
【0058】
クライアントアプリは、クライアントのオペレーティングシステム(OS)プラットフォームで実行することができる任意のクライアントエージェントであってよい。オプションとして、クライアントアプリは、ブラウザにおいて実行させるためにジャバスクリプトで書き込まれてよい。これは、多種多様の物理的デバイスにわたってかかるクライアントアプリを利用可能にする際に役立つ。
【0059】
上記のデータストレージ技法は、全体を通して仮想化サーバを使用するように設計できる。例えば、性能を改善させかつハードウェア非依存を保証するために、1つの実際のハードウェアサーバの代わりに、並列の3つの仮想サーバが使用可能である。現在のシステムは、いずれの特定のファイル構造にも関係なく、データを参照されるかたまりとして扱うオブジェクトストレージ技術に基づく。その目的は、データストレージにおける現在の仮想化標準に合うように、ブロックストレージ内に転送できるシステムを作成することであった。現在のオブジェクトモデルは、将来的にブロックストレージへ容易にマッピングできる。
【0060】
ある特定の実施形態では、消失訂正符号化によるエラー訂正は、リードソロモン符号化を使用してFEDP上で行われる。FEDPおよびSNNの間の読み書きが不完全である場合、FEDPにおいてガベージコレクションシステムも用いられる。
【0061】
図9は、ストレージノードに不完全に記憶されたオブジェクト、すなわち、マスクカーディナリティがk未満であるオブジェクトを削除する必要があるガベージコレクションプロセスのステップを示す。このようなオブジェクトは、何らかの理由で、n〜k個以上のデータブロックがアップロードに失敗し、かつ、アプリケーションが不意に終了した場合にシステムにまれに現れる場合がある。該フローは4つのステップから成る。
1.不完全なものをリストする:(構成可能な値であってよい)一定期間ごとに、メタデータストレージのLIST_INCOMPLETE関数を使用して不完全なオブジェクトのリストを取り出す。
2.UIDを取り出す:GET関数を使用して対応するデータブロックUIDを取り出す(テーブル2を参照)。
3.データを削除する:これらのUIDからストレージノードIDおよびデータブロックIDを抽出し、かつ、DELETE関数を使用してストレージノードから対応するデータブロックを削除する(テーブル1を参照)。
4.メタデータを削除する:削除されたオブジェクト記録を、DELETE関数を使用してメタデータストレージから除去する。
【0062】
アプリケーション
企業のデータセンタからクラウド内へのエンタープライズデータの移送
開示された技術の著しく向上させたデータ転送速度、セキュリティ、信頼性、および可用性によって、エンタープライズが、特に、その企業のデータセンタからそのストリーミングメディアコンテンツを含むそのデータの大半をクラウドへ移送することを可能にする。これによって、その企業のデータは、社内および社外両方ではるかに幅広いデータコンシューマに対して利用可能となる。
【0063】
開示された技術は、現在十分に活用されていないエンタープライズ全体のデータストレージリソースが、その後、セキュリティ保護されたストレージノードとして使用するために利用可能となることを可能にする。これによって、エンタープライズのストレージ費用が大幅に低減でき、かつ、セキュリティ保護された分散型ストレージネットワークを、データ構造全体を通して拡大させることを可能とすることができる。
【0064】
最終的に、この、十分活用されていないデータストレージリソースの同使用は、十分に活用されていないストレージデバイスの集まりを有するコンピュータ所有者の母集団にたどり着くことができる。膨大な分散型ストレージネットワークは、BitTorrentの背景にあるより古い概念を取り入れ、かつ、それを、大いに改善された速度およびセキュリティを加えることによって増やすようにアセンブルできる。コンピュータ技術におけるモバイルデバイスの改革全ては、クラウドにおけるデータの可用性を前提としている。以前のシステムでは、この必要性は、クラウドストレージリソースにおける速度およびセキュリティの欠如によって、これらの結び付けられた技術において関連は弱いものになっている。このことは、より多くのプライベートおよびエンタープライズクライアントが、特にストリーミングメディアアプリケーションについてモバイルデバイスを通してデータにアクセスしていることが、とりわけここで必要とされる。デスクトップおよびより少ないモバイルラップトップを犠牲にして、モバイルデバイスの乱用へ向かうコンピュータ使用を前にして、ユーザに対するデータの可用性は、クラウドへのデータの大規模な移送を必要とする。開示された技術は、この移送を可能にする助けとなる。
【0065】
デジタルメディアストリーミング
開示された技術は、デジタルメディアストリーミング技術の必要性に自然に適するものになる。速度およびセキュリティにおける開示された改善、および、利用可能なストレージリソースをより多く利用することによって、今日の通信プロトコルおよび技術を使用してストリーミングレートをより大きくすることができる。ビデオ、オーディオ、および他のメタデータのストレージに必要とされる膨大な量のストレージスペースは、本明細書に開示された例示の実施形態に従って、既存のリソースおよびインフラの向上させた可用性ならびに利用をさらに生かすことができる。
【0066】
衛星TV
衛星TV技術に組み込まれる大型ハードドライブは、衛星TVユーザの一般大衆の間で高速でセキュリティ保護された分散型ストレージネットワークを確立するために開示された技術を使用するように適応できる。このリソースは、衛星TVネットワークの価値を著しく向上させ、かつ、新しい商機を全面的に市場開放することができる。
【0067】
本開示によるある特定の実施形態では、高度にセキュリティ保護される消失訂正符号化アルゴリズムは、何らかのデータが送信プロセス時のエラーによって損失される場合にデータ回復をもたらすようにファイルフラグメントを符号化するために使用される。
【0068】
特に、サイズL=|F|のオブジェクトFを、それぞれのサイズがL/m(m<n)のn個の認識できない部分F、F、…Fにコード化するデータミクサアルゴリズム(DMA)が用いられることで、元のオブジェクトFは任意のm個の部分から復元できる。DMAの核心はm−of−nミクサコードである。DMAによって処理されたフラグメントにおけるデータは機密とされ、これは、元のオブジェクトFにおいてm個の部分より少ないものから明示的に復元できるデータはないことを意味する。DMAの詳細な演算の例示の実施形態をここで説明する。
【0069】
m−of−nミクサコードは順方向エラー訂正コード(FEC)であり、その出力はいずれの入力記号も包含せず、該コードは、m個の記号のメッセージをn個の記号のより長いメッセージに変換して、元のメッセージが長さmのn個の記号のサブセットから回復できるようにする。
【0070】
元のオブジェクトFは、最初に、それぞれのサイズがL/mであるm個のセグメントS、S、…Sに分けられる。次いで、m個のセグメントは、例えば、
(S、S、…S)・Gm×n=(F、F、…F
のように、m−of−nミクサコードを使用してn個の認識できない部分F、F、…Fにコード化される。式中、Gm×nはミクサコードのジェネレータ行列であり、以下の条件を満たす。
1)Gm×nのいずれのカラムもm×m恒等行列のいずれのカラムにも等しくない
2)Gm×nの任意のm個のカラムはm×m正則行列を形成する
3)そのジェネレータ行列Gm×nの任意の正方部分行列は正則である
第1の条件は、符号化によってn個の認識できない部分が確実に生じるようにする。第2の条件は、元のオブジェクトFが、m<nである任意のm個の部分から確実に復元できるようにし、第3の条件は、DMAが強力な機密性を確実に有するようにする。
【0071】
任意のm−of−(m+n)ミクサコードから強力な機密性によってDMAを構築する効果的なやり方は次になる。
1)任意のm−of−(m+n)ミクサコードを選ぶ。そのジェネレータ行列はGm×(m+n)=(Cm×m|Dm×n)である。
2)ジェネレータ行列が下記の数式1で表されるm−of−nミクサコードを採用するDMAを構築する。
【0072】
【数1】
【0073】
例えば、ジェネレータ行列は下記の数式2で示されるコーシー行列であってよい。
【0074】
コーシー行列の任意の正方部分行列は下記の数式2で示される。数式2中、x、…、x、y、…、y∈Z、x+y≠0;i≠j=>x≠xおよびy≠yは正則である。よって、この行列に基づくミクサコードは強力な機密性を有する。
【0075】
【数2】
【0076】
別の例として、ジェネレータコードはヴァンデルモンド行列とすることができる。
【0077】
ジェネレータ行列がヴァンデルモンド行列であるミクサコードから強力な機密性によるDMAを構築するために、下記の数式3で表されるジェネレータ行列を有するm−of−(m+n)ミクサコードを選ぶ。式中、a、a、…am+nは異なっている。
【0078】
【数3】
【0079】
次いで、強力な機密性によるDMAは復元でき、ここで対応するジェネレータ行列は下記の数式4で表される。
【0080】
【数4】
【0081】
コード化の例
サイズがL=|F|のオブジェクトFを有すると仮定する。その例では、L=1048576(1Mbファイル)である。それをコード化するために、以下のステップが行われる。
1.mおよびnを選ぶ(上の説明を参照)。例えば、m=4、n=6である。
2.ワードサイズwを選ぶ(通常、8、16、32であり、この例では8になる)。算術全てはGF(2)に対して行われることになる。
3.パケットサイズzを選ぶ(コンピュータのワードサイズの倍数でなければならず、この例では256になる)。
4.mの倍数ともする符号化ブロックサイズZ=w・zを計算する。この例では、Z=8・256=2048(バイト)であり、4の倍数である。
5.元のオブジェクトFを乱数のバイトでパディング処理して、サイズをLからL’へ増大させるため、L’はZの倍数になる。
6.オブジェクトFをサイズZの部分に分割する。以下のステップは全てこれらの部分に対して行われるが、それらは依然Fで示されることになる。
7.FをシーケンスF=(b、…b)、(bm+1、…b2m)にセグメント化する。ここで、bはwビットの長さの文字である。この例では、ほんの1バイトである。便宜上、S=(b、…b、)などと示す。
8.ミキシング方式を適用する:
=ci1、ci2、…、cin、ここで
ik=a・S=ai1・b(k−1)m+1+…+aim・bkmであり、
式中、aijはn×mコーシー行列の要素である(上記参照)
のサイズはL=L/mであり、今回の例ではこれは250kb(162144バイト)である。
【0082】
復号例
ここで、サイズLのm個のオブジェクト部分Fを有すると仮定する。今回の例では、FおよびFが送信エラーによって損失されたと仮定して、i=1、3、5、6である。元のオブジェクトFを復号しかつ復元するために、以下のステップを行う:
1.数がiの行を除く行全てを除去することによってコード化するために使用されるn×mコーシー行列からm×m行列Aを構築する。今回の例では、行2および4は除去される。
2.行列Aを反転させ、それぞれのセグメントS=(b、…b、)、などについて、下記の数式5で表される非ミキシング方式を適用する。
【0083】
【数5】
【0084】
3.セグメントSを加えて元のZ長の部分Fにする。
4.Z長のブロックを共に合わせて、元のパディング処理されたオブジェクトFを形成する。
5.Fからパディングを除去してサイズLに適合させる。
【0085】
例示の実施形態では、元のデータを認識できないようにする分散型ストレージおよび消失訂正符号化のためにデータを処理する前述の方法論は、ストリーミングメディアコンテンツを処理するために使用される。上で説明されるように、コンテンツプロバイダのメディアファイルは、二段階プロセスで小ファイルスライスフラグメントに分解される。第1のステップは、(圧縮されているか圧縮されていない場合がある)ファイル全体を一連のファイルスライスに分解する。これらのファイルスライスは、暗号化されてよく、該スライスを元のファイルにどのようにアセンブルするかをマッピングするメタデータファイルが作成される。
【0086】
第2のステップは、それぞれのファイルスライスを取り入れて、該スライスを、元のデータを認識できないようにするために前述の技法に従って消失訂正符号化されるより小さいデータフラグメントに分解する。消失訂正符号化は、高性能ファイルサーバのセットによって行われてよく、それぞれの別々のサーバはそのファイルスライス(複数可)に対して消失訂正符号化を行う。これは、n個の消失訂正符号化サーバユニットにわたって分散された仮想消失訂正符号化のシステムを表す。消失訂正符号化は、あらかじめ定められたレベルの冗長性をデータコレクションに付加し、その後一連のファイルフラグメントストレージノードに分散される一連のファイルスライスフラグメントを作成する。このプロセスにおいて使用される消失訂正符号化には、30%以上の最適な冗長性が望まれる。メディアファイルに頻繁にアクセスする場合、システムは、特定のスライスのファイルオブジェクト冗長性を増大させることができる。
【0087】
本明細書に開示される消失訂正符号化技法は、パケット損失に関わらず、ストリームされたメディアファイルに対してクライアントが正しいデータパケットを受信することを保証する自動エラー訂正の高性能システムを加える。それぞれのデータフラグメントは、消失訂正符号化のプロセスにおいて暗号化されてもよい。第2のメタデータファイルは、ファイルスライスフラグメントを正しいストリームされたメディアパケットに再構成するために必要とされるプロセスをマッピングする。典型的には、ストリーミングのためにデータをうまく処理するために最低5ノードが必要とされる場合がある(が、ノードの数はシステムロードおよび他のパラメータに応じる)。これらのノードは、ストリームされたデータを受信することになるクライアントの近くに全て位置する必要はないが、幅広い地理的サービス領域上に位置してよい。
【0088】
ストリーミングメディアコンテンツを再生するために、クライアントはサーバノードから、その後適正な順序で再構成される、必要とされるデータフラグメントをダウンロードする。該再構成は、データフラグメントが作成されたプロセスを逆転する。データフラグメントはファイルスライスに再構成され、ファイルスライスは次いで元のメディアファイルの少なくとも一部分に再構成される。全てのストリーミング技術におけるように、データフラグメントをダウンロードし処理するレートは、メディアを再生するのに現時点で必要とされるデータパケットの時間通りの処理を可能にするのに十分早いものでなければならない。ストリームされたメディアを再生することができる任意のデバイスを含むことができるクライアントアプリケーションは、ストリームされたメディアファイルの再生を始める適正な順序でファイルスライスフラグメントを取り出す。
【0089】
ストリームされたメディアでは、データフラグメント全ては、メディアを開始から終了まで見るまたは聞くために適正な順序で順次再構成されることが不可欠である。クライアントデバイスは、メタデータファイルからのマップデータを使用することによってデータフラグメントを再構成して、フラグメントをそれらの適正なシーケンスで適正に得る。現在のストリーミング技術と同様に、ダウンロードレートがメディアデータの次のパケットを表示するために必要とされる時間より速い場合、読み手は、メディアプレーヤがその時間セグメントに達する時に使用するためにバッファに記憶される未来時のフラグメントをダウンロードしかつアセンブルすることになる。ファイルフラグメントは、実際には元のメディアファイルにこれまでにアセンブルされなくてよく、単に適正な時間に再生され、かつデータフラグメントとして記憶されてよい。これによって、ユーザがメディアファイルに対して法的権利を有さない場合、再生されているデジタルメディアのセキュリティが高められる。当然ながら、ユーザが元のメディアファイルに対する法的権利を有する場合、フラグメントは、フラグメント全てがダウンロードされると、完全な元のメディアファイルの形式でクライアントのデバイス上でアセンブルできる。メディアファイルが複数のノードから送信されるため、ファイルダウンロードレートは、先行技術に見られる典型的なレートをはるかに超えることになる。好ましくは、目下、データフラグメントのダウンロードのためにクライアントに対する最良の接続性を有するノードが用いられる。ノードにおけるデータが冗長的であるため、ストリームされたデータを読み出す時のクライアントソフトウェアは、ダウンロード時に使用するためのデータ転送の最高レートのノードを優先的に選ぶことができる。
【0090】
この技術は、クライアントデバイスの全タイプ:デスクトップ、ラップトップ、タブレット、スマートフォンなどに応用可能である。該技術は、現在のストリーミング技術ソフトウェアに取って代わる必要はなく、要求されるデータフラグメントを適正な順序で再構成するためにマップファイルを使用するために上にもう1つ層を単に加えることができる。
【0091】
以前のシステムに勝る利点
開示された分散型ストレージおよび消失訂正符号化ベースのストリーミング技術は、先行技術のストリーミング技術において上述される制限に対して実質的な改善をもたらす。
【0092】
A.データ転送の速度
上述される理由のために、開示された実施形態は、先行技術のストリーミング技術と比較して、典型的なインターネット通信条件に対して、データ転送の速度における実質的な改善をもたらす。
【0093】
メディアコンテンツプロバイダは、クラウドにおいて高性能のサーバにデータフラグメントを分散することを選ぶことができ、また、該データフラグメントを、任意の他のタイプのネットワークにおいて接続される複数のストレージデバイスに記憶することを選ぶこともできる。メディアファイルを復元する時、その「部分」は、複数のサーバの間で並列に転送可能であり、その結果、実質的にスループットが改善されることになる。これは、今日使用される一般向けのダウンロードアクセラレータ技術にたとえることができ、これによって、ファイルのダウンロード部分に対して複数のチャネルをオープンし、その結果、実質的にダウンロードレートが増大する。ノードサーバのうちの1つへの転送接続のうちの1つにおける待ち時間のボトルネックは、通常の待ち時間の条件下で動作している他のサーバへの転送の速度を上げ続けることになる。データ転送の速度が上がることによって、大型の圧縮されていないメディアファイルをリアルタイムで再生することができるため、ストリーミングメディアに対する高忠実度の再現をもたらす。
【0094】
クライアント側のソフトウェア技術は、そのロケーションで特定のクライアントに最高の現時点のスループットをもたらすようなノードから優先的にダウンロードすることを選ぶことができ、その結果、スループットに対する速度の改善がさらにもたらされる。利用可能なノードの全世界のプールから、各クライアントアプリケーションは、その時点で最高のスループットをもたらすようなノードからメディアストリームからの読み出しを選ぶことができる。消失訂正符号化の冗長性はまた、1つ以上のノードが次の必要とされるフラグメントを包含することを意味し、クライアントは、利用可能な最高のスループットノードを選ぶことができる。
【0095】
データストレージノードへのデータフラグメントの分散はまた、現時点のスループット条件に基づいて最適化できる。最良の接続性を有するノードを、大量のデータフラグメントを記憶するために選ぶことができるため、分散プロセス中にデータ転送の最大速度を利用可能なストレージノードが最適化される。
【0096】
具体的には、該技術で使用される消失訂正符号化は、消失訂正符号化がCPUに集約するタスクとすることができるため、高性能について選んだサーバに対してサーバ側で行われてよい。
【0097】
B.データセキュリティ
上述されるように、本明細書に開示される分散型「仮想消失訂正符号化」ストリーミング技法は、単一の物理的クラウドストレージロケーションにおいてファイル全てを記憶する先行技術のストリーミング技術に対してデータセキュリティの大幅な改善をもたらす。
【0098】
さらに、ファイルスライスフラグメントの処理およびストレージ両方に使用されるサーバは複数のクライアントによって共有されてよく、ハッカーは、該フラグメントがどのクライアントに属するかをスライスから識別することはできない。これによって、ハッカーにとって、この技術を使用して記憶されたメディアファイルデータのセキュリティを危険にさらすことがより一層困難になる。
【0099】
C.データ可用性
上述されるように、本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技法はまた、先行技術のストリーミング技術と比較して、データの可用性が改善されている。ファイルを、好ましくは種々のロケーションに位置するいくつかの物理的ノードに記憶される複数のファイルスライスフラグメントに分割することによって、クライアントロケーションと物理的ノードのうちの1つとの間の通信問題は、他のデータロケーションとの通常の通信によってオフセットされてよい。複数のロケーションを有する効果全体は、サイトのうちの1つにおける通信断絶による停止状態からシステムを隔離することである。
【0100】
元のデータを認識できなくする消失訂正符号化、および冗長的なデータによる複数のノードの使用は、高性能でセキュリティ保護されたエラー訂正技術を加える。先行技術のストリーミング技術を悩ますパケット損失問題は、もはや検討事項に該当しない。先行技術のストリーミング技術は、しばしば、各クライアントが再生したいデータストリームを記憶するサーバへの良好な接続性を確実に有するようにするために、地理的サービス領域を通して多くのサーバで同じメディアファイルの複数のコピーを処理しなければならない。開示されたストリーミング技術は、サービス領域を通して複数のサーバでの元のメディアファイルの完全な冗長性を有するコピーの必要性を排除する。
【0101】
D.データ信頼性
本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技術はまた、先行技術に対するストリーミングメディアの信頼性における大幅な改善をもたらす。各ファイルをファイルスライスフラグメントに分離することは、物理的サーバストレージロケーションのうちの1つにおけるハードウェアまたはソフトウェアの不具合またはエラーが、先行技術におけるように、全ファイルが1つの物理的ロケーションに記憶される場合のように、ファイルへのアクセスを排除することはないことを意味する。元のデータを認識できないようにするための消失訂正符号化技術は、高品質のエラー訂正能力を保証し、メディアコンテンツのセキュリティを向上させる。
【0102】
E.デジタル著作権管理セキュリティ
デジタル著作権の保護(DRM)は、ストリーミングメディアファイルにおけるとりわけ重要な問題である。ストリーミングメディアにおけるDRM保護方式を回避できる多くのサードパーティ製品が利用可能である。開示された技術がデータストリームを、暗号化できるデータフラグメントに分解し、それぞれが元のデータを認識できないようにすることができる消失訂正符号化で処理されるため、DRM保護方式は著しく向上される。ストリーミングデータを要求するクライアントがそのファイル自体に対する権利を有さず、ファイルを再生する権利のみ有する場合、暗号化されかつ消失訂正符号化されたデータフラグメントは、再生中でもクライアントデバイスにおいて実際のメディアファイルに物理的にアセンブルされる必要はない。このことは、今日使用される際に普通のサードパーティ技術によって容易に回避できないはるかに強力なDRM方式を誘引する。
【0103】
要約すると、例示の実施形態では、本明細書に開示される分散型ストレージおよび「仮想消失訂正符号化」ストリーミング技術は、以下の基本的なタスクを達成する。
1)認識できない部分をもたらすために分散型消失訂正符号化サーバにおいて消失訂正符号化されるファイルフラグメントに最終的にさらに分解されることになる部分またはファイルスライスへのコンテンツプロバイダのメディアファイルスライスの分割。
2)クライアントにおいてデータの再構成を可能にするためにファイルがどのように分割されたかを記述する、ファイルスライスのマップの作成。このマップはメタデータファイルに記憶される。
3)追加のデータセキュリティのためのファイルスライスのオプションの暗号化。
4)データストレージのサイズを縮小し、かつ、転送速度を改善するためのファイルスライスのオプションの圧縮。
5)エラー訂正およびデータ回復の向上を可能にするためのファイルスライスの消失訂正符号化。スライスは消失訂正符号化プロセスによってファイルスライスフラグメントに分けられる。
6)ファイルスライスフラグメントをファイルスライスに再構成するために必要とされる、該フラグメントのマップの作成。このマップは第2のメタデータファイルに記憶される。
7)追加のデータセキュリティのためのファイルスライスフラグメントのオプションの暗号化。
8)ストレージ空間要件を低減し、かつ、転送速度を改善するためのファイルスライスフラグメントのオプションの圧縮。
9)クライアントデバイスにおけるファイルスライスフラグメントの復号、および、クライアントメディアプレーヤ(またはブラウザ)において再生するために、ファイルスライスへ、次いでメディアファイル全体への再構成。フラグメントは、適正な順序でスライスにアセンブルされなければならず、該スライスは、適正な順序でファイル全体にアセンブルされなければならない。クライアントソフトウェアは、2つのメタデータファイルによって提供されるマッピング情報を使用してこれらの2つの段階においてメディアファイルを再構成する。
【0104】
この技術の基本構造は以下の4つの層によって実装されるように視覚化されてよい。
【0105】
1.CSP(図1を参照)は、コンテンツプロバイダのメディアファイルを、ファイルスライスにスライス処理し、オプションで該スライスを暗号化し、スライスが元のメディアファイルにどのように再構成できるかについてのマップでメタデータファイルを生成する。メタデータファイルはまた、それぞれのファイルスライスが、該スライスを適正な順序でアセンブルするために必要とされる順序についての情報を維持する。
【0106】
2.FEDP(図1を参照)は、認識できない部分を作り出す消失訂正符号化を使用して、それぞれのファイルスライスをファイルスライスフラグメントに分解する。例示の実施形態では、消失訂正符号化はデータ冗長性の30%を加える。第2のメタデータファイルは、ファイルスライスフラグメントがファイルスライスにどのように再構成されるかをマッピングする。第2のメタデータファイルはまた、クライアントデバイスにおけるフラグメントの再生中、スライスを適正な順序でアセンブルするために必要とされる各フラグメントの順序についての情報を維持する。
【0107】
3.SNN(図1を参照)は、データフラグメントを分散させるために使用されるさまざまなストレージノードである。ストレージノードは、必ずしもクラウドにおける全サーバではない。該ノードは、データセンタ、コンピュータにおけるハードディスク、モバイルデバイス、または、データストレージ可能な何らかの他のマルチメディアデバイスであってよい。これらのストレージノードの数および識別は、最も低い平均待ち時間および最良の可用性を有するノードによってストレージ構成の待ち時間およびセキュリティを最適化するためにコンテンツプロバイダによって選択できる。
【0108】
4.現在の技術のストリーミングメディアプレーヤソフトウェアより優位に立って実装できるエンドユーザクライアントデコーダ(ECD)。この第4の層は、コンテンツプロバイダにストリーミングメディアに対する要求を開始し、次いで、層(1)および(2)に形成される2つのメタデータファイルから導出されるマッピングファイルを受信し、それら層より上で、メディアファイルの再生またはストレージのために、ECDはファイルスライスフラグメントをスライスに、かつ、該スライスを元のメディアファイルにアセンブルできる。明らかなように、メディアファイルは要求に応じてメディアコンテンツを再生するために必要とされる適正な順序でアセンブルされなければならない。クライアントが完全なファイルをダウンロードするためのストリームされたメディアに対する購入権を有する場合、ECDは、元のメディアファイルを、完全にダウンロードすると再生およびアセンブル両方を行うことになる。クライアントがメディアファイルを再生する権利しか有さない場合、ECDは適正な順序でメディアファイルの再生のみを行い、ファイルスライスフラグメントを完全なファイルにこれまでにアセンブルすることなく可能とされる再生のために該フラグメントを記憶することになる。ECDはまた、ほとんどの場合生じるに違いないが、ダウンロードレートがメディア再生レートを超える場合、データフラグメントをクライアントデバイスにおけるストレージのバッファに入れることになる。ECDはまた、現時点のメディアファイル再生の前または後に位置するメディアファイルセグメントに対する要求を受信しかつ処理するために、メディアプレーヤと対話することもできる。
【0109】
追加の性能上の検討事項
特定のメディアファイルについて複数のクライアントからの需要が多い場合、高まる需要を満たすために取ることができる2つの主要なアプローチがある。
【0110】
第1に、多数のフラグメントストレージノードは消失訂正符号化されたデータフラグメントの分散のために用いられてよい。需要が主に1つの地理的領域から生じる場合、その領域におけるクライアントにとって最良のデータスループットレートで分散させるためのノードを選ぶことが可能である。
【0111】
第2に、消失訂正符号化ステップのためのより高いレベルの冗長性を選ぶことができる。例えば、30%の冗長性の代わりに、より高いレベルの冗長性が負荷をかけられた状態で確実に大幅に利用可能になるようにするのに役立つことになる。
【0112】
これら2つのステップは、リアルタイムで生じる際に特定的な需要および負荷要件を満たすために動的に行われてよい。
【0113】
さらに、ある特定のスライスまたはフラグメントは、可用性を改善するためにより高いレベルの冗長性について選び出されてよい。具体的には、メディアファイルの第1のセグメントは、高まる需要の必要性を満たすために最も高いレベルの冗長性を与えることが可能とされる。
【0114】
開示された主題はそのある特定の例示の実施形態に関して説明されかつ示されているが、開示された実施形態の特徴は、本開示の範囲内で追加の実施形態を作り出すために、組み合わせ、再構成および修正が可能であり、本発明の趣旨および範囲を逸脱することなく、本明細書に対して、さまざまな他の変更、省略、および追加がなされてよいことは、当業者によって理解されるべきである。
図1
図2
図3-1】
図3-2】
図4A
図4B
図5
図6-1】
図6-2】
図7A
図7B
図8
図9