本明細書に記載の様々な実施形態は、クラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層を組み込んだ多層ストレージインフラストラクチャ内でのデータ処理技術に関する。様々な実施形態は、多層ストレージインフラストラクチャ内でファイルデータを分散(distribute)し、保護する技術を提供する。様々な実施形態は、認証済みの要求の受信時に、分散され保護されたファイルデータを復元するための技術をさらに提供する。様々な実施形態は、データビンを組み込んだデータバックアップ技術をさらに提供する。様々な実施形態に関連して、多層ストレージインフラストラクチャのクラウドコンピューティング層は、クラウドコンピューティング環境に関連するマネージドサービスドメインを含む。クラウドコンピューティング環境は、1つ以上のコンピューティング機能がサービスとして利用可能な仮想化環境である。本明細書に記載の様々な実施形態に関連するデータ分散・セキュリティ技術を実装するように構成されたクラウドサーバシステムは、機械学習知識モデル、具体的にはアンサンブル学習モデル(ensemble learning model)の人工知能機能、およびそのようなモデルに関連するナレッジベースの情報を利用することができる。
様々な実施形態は、従来の技術に対する利点を有することができる。従来のサービスとしてのソフトウェア技術では、例えば、データセンタもしくはネットワークインフラストラクチャまたはその両方に対する攻撃があった場合に、リモートデータがセキュリティ攻撃もしくはプライバシー侵害またはその両方に対して脆弱なままになる可能性がある。様々な実施形態は、多層ストレージインフラストラクチャの複数の層にわたるファイルデータの分散を容易にすることによって、コンピュータ技術を改善し、その結果、権限のないユーザがファイルデータ全体にアクセスすることをより困難にする。様々な実施形態に従って、データはストレージ層間で分割されるため、層間のすべてのファイルデータを復元するためには、すべての層へのアクセスが必要となる。したがって、権限のないユーザは、すべての層にわたるファイルデータ全体にアクセスすることなく、ファイルデータの使用可能なバージョンを傍受することができない。さらに、様々な実施形態は、多層ストレージインフラストラクチャのローカルストレージ層にデータビンを含めることを容易にし、したがって、ファイルデータが1つ以上のストレージ層において失われた場合に、許可されたユーザは完全なデータを回復することができる。様々な実施形態の中には、そのような利点をすべて含まないものもあり、そのような利点は必ずしもすべての実施形態に要求されるわけではない。
以下、本発明の様々な実施形態を参照する。ただし、本発明は、特定の記載された実施形態に限定されないことを理解されたい。むしろ、異なる実施形態に関係しているか否かにかかわらず、以下の特徴および要素の任意の組み合せによって本発明が実装および実施されることが企図される。さらに、各実施形態は、その他の可能な解決手段もしくは従来技術またはその両方を上回る利点を実現し得るが、特定の利点が所与の実施形態によって実現されるか否かによって本発明が限定されることはない。したがって、以下の態様、特徴、実施形態および利点は、単なる例示であり、1つ以上の請求項において明示的に述べられている場合を除いて、添付の特許請求の範囲の要素または限定事項とはみなされない。同様に、「本発明」と述べていても、本明細書に開示する発明的主題を一般化したものとして解釈すべきではなく、1つ以上の請求項において明示的に述べられている場合を除いて、添付の特許請求の範囲の要素または限定事項とはみなされないものとする。
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、一例として、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたはこれらの適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、消去可能プログラマブルROM(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化されたデバイス、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスへダウンロードすることができる。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくは無線ネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部ストレージデバイスへダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピューティングデバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
これらのコンピュータ可読プログラム命令は、機械を生産するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他のデバイスにロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、1つの工程として達成されてもよいし、同時もしくは略同時に実行されてもよいし、部分的もしくは全体的に時間的に重複した態様で実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
特定の実施形態では、多層ストレージインフラストラクチャにおけるデータ分散およびセキュリティに関する技術について説明する。ただし、本明細書に記載の技術は、本明細書で具体的に記載したものに加えて、様々な目的に適合させてもよい。したがって、特定の実施形態の説明は、例示であって本発明を限定するものではない。
本明細書に記載の様々な実施形態は、クラウドコンピューティングインフラストラクチャを通じてエンドユーザに提供することができる。本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載する教示の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本明細書に記載の様々な実施形態は、現在公知のまたは後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
クラウドコンピューティングは、設定可能なコンピューティングリソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)の共有プールへの簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。したがって、クラウドコンピューティングは、コンピューティングリソースを提供するために使用される基礎となる物理システム(またはこれらシステムの場所)にかかわらず、ユーザがクラウド内の仮想コンピューティングリソース(例えば、ストレージ、データ、アプリケーション、さらには完全な仮想化コンピューティングシステム)にアクセスすることを可能にする。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスのプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、パーソナルデジタルアシスタント(PDA))による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
サービスの測定:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの計量機能(metering capability)を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
図1は、1つ以上の実施形態に係る例示的なクラウドコンピューティング環境50を示す図である。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含むことができる。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタントもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図1に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
図2は、1つ以上の実施形態に係る、クラウドコンピューティング環境50によって提供される機能的抽象化レイヤのセットを示す図である。図2に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本明細書に記載の様々な実施形態はこれらに限定されない。図示するように、様々なレイヤおよび対応する機能が提供される。具体的には、ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66を含むことができる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含むことができる。仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境50内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にすることができる。計量および価格設定82は、クラウドコンピューティング環境50内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にすることができる。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでもよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供することができる。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にすることができる。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にすることができる。
ワークロードレイヤ90は、クラウドコンピューティング環境50の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、データ分散および復元96が含まれる。データ分散および復元96は、本明細書に記載の様々な実施形態に従って、ストレージ層間でファイルデータを分散すること、および認証済みの要求に応じてそのようなファイルデータを復元することを可能にしてもよい。
図3は、クラウドコンピューティング環境50内のマネージドサービスドメイン(managed services domain)300を示す図である。データ分散および復元96ならびに他のワークロード/機能に関係する機能は、マネージドサービスドメイン300において実施されてもよい。マネージドサービスドメイン300は、クラウドサーバシステム310を含む。一実施形態において、クラウドサーバシステム310は、クラウドサーバアプリケーション315を含む。クラウドサーバアプリケーション315は、本明細書に記載の様々な実施形態に従って、データ分散および復元を可能にする、もしくは容易にする、またはその両方を実行するように構成される。クラウドサーバアプリケーション315は、単一のアプリケーションまたは複数のアプリケーションを表す。クラウドサーバアプリケーション315は、アンサンブル学習モデル320を含むか、またはアンサンブル学習モデル320と動作可能に結合される。さらに、一実施形態において、マネージドサービスドメイン300は、クラウドコンピューティングインタフェース330、データベースシステム340、ディレクトリサーバシステム350、および複数のアプリケーションサーバクラスタ3601~360nのうちの1つ以上を含む。クラウドコンピューティングインタフェース330は、クラウドサーバシステム310と、マネージドサービスドメイン300と対話する1つ以上のクライアントシステムとの間の通信を可能にする。図4を参照して詳述するように、クラウドコンピューティングインタフェース330は、フォグサーバシステム、ローカルマシン、もしくはマネージドサービスドメイン300と連携する他のコンポーネントまたはその組み合わせとの通信を可能にする。さらに、一実施形態において、クラウドサーバシステム310は、データベースシステム340、ディレクトリサーバシステム350、もしくはアプリケーションサーバクラスタ3601~360nまたはその組み合わせと通信するように構成される。さらに、アプリケーションサーバクラスタ3601~360n内のアプリケーションサーバは、互いに通信するか、他のドメイン内のサーバと通信するか、もしくはマネージドサービスドメイン300と連携する他のコンポーネントと通信するか、またはその組み合わせを行うように構成されてもよい。
データベースシステム340は、任意の態様として、アンサンブル学習モデル320のナレッジベース(knowledge base)を調整および管理する。アンサンブル学習モデル320に関連するナレッジベースは、任意の態様として、モデルおよびそれに関連するデータ処理に関連するすべてのリポジトリ、オントロジー、ファイル、もしくはドキュメントまたはその組み合わせを含む。データベースシステム340は、1つ以上のデータベースサーバを含むことができ、これらのサーバは、ナレッジベースの様々な要素を調整もしくは管理またはその両方を行うことができる。データベースシステム340は、アンサンブル学習モデル320、複数のアプリケーションサーバクラスタ3601~360n、およびナレッジベースの間の関係を記憶する。一実施形態において、データベースシステム340は、データベース管理システム(DBMS)、任意の態様としてリレーショナルデータベース管理システム(RDBMS)を介して管理される。さらなる実施形態において、データベースシステム340は、1つ以上のデータベースを含み、その一部または全部がリレーショナルデータベースであってもよい。さらなる実施形態において、データベースシステム340は、1つ以上のオントロジーツリーまたは他のオントロジー構造を含む。
ディレクトリサーバシステム350は、アプリケーションサーバクラスタ3601~360nのうちの1つ以上に関するクライアント認証(client authentication)を含む、マネージドサービスドメイン300内のクライアント認証を容易にする。マネージドサービスドメイン300内の複数のアプリケーションのうちの1つ以上に関する認証のために、クライアントは、このようなアプリケーションに関係する環境詳細および認証情報を提供することができる。アプリケーションサーバクラスタ3601~360nは、様々なアプリケーションの要素を記憶するとともに、1つ以上のクライアントシステムにアプリケーションサービスを提供する。クラウドサーバアプリケーション315、およびマネージドサービスドメイン300の他のデータ収集コンポーネントは、あらゆるユーザコンテキストデータの収集に関して適切な通知を提供するように構成される。マネージドサービスドメイン300の1つ以上の態様はさらに、ユーザに、このようなユーザコンテキストデータの収集をいつでもオプトイン(opt in)またはオプトアウト(opt out)するオプションを提供するように構成される。任意の態様として、マネージドサービスドメイン300の1つ以上の要素はさらに、ユーザによる指定に基づいて(例えば、定期的に、またはそのようなユーザコンテキストデータの収集が発生するたびに)、影響を受けるユーザに少なくとも1つの通知を送信するように構成される。
図4は、クラウドコンピューティング層403(すなわち、クラウド層)、フォグコンピューティング層413(すなわち、フォグ層)、およびローカルコンピューティング層423(すなわち、ローカル層)を含む多層ストレージインフラストラクチャ400を示す図である。多層ストレージインフラストラクチャ400のクラウド層403は、クラウドサーバシステム310およびマネージドサービスドメイン300の他の要素を含むか、これらに動作可能に結合されるか、もしくは通信可能に結合されるか、またはそれらを組み合わせた態様を取る。クラウドサーバシステム310は、クラウド層データ405を記憶する。クラウド層データ405は、任意の態様として、本明細書に記載の様々な実施形態に従って分散されたファイルデータを含む。クラウドサーバシステム310は、マネージドサービスドメイン300に関連する1つ以上のストレージコンポーネントもしくはデータベースコンポーネントまたはその両方内(例えば、図3に関して説明した1つ以上のコンポーネント内、もしくは任意の態様としてクラウド層403内で仮想化された1つ以上の他のハードウェアベースのストレージまたはデータベースコンポーネント内)に、クラウド層データを記憶するか、または記憶を容易にする。多層ストレージインフラストラクチャ400のフォグ層413は、フォグサーバシステム4101~410nを含む。フォグサーバシステム4101~410nはそれぞれ、例えば、フォグサーバシステム4101~410nにそれぞれ関連付けられた1つ以上のハードウェアベースのストレージまたはデータベースコンポーネント内に、フォグサーバデータ4151~415nを記憶する。このようなハードウェアベースのストレージまたはデータベースコンポーネントは、任意の態様として、フォグ層413内で仮想化される。代替の構成として、フォグ層413は、要素4101~410nのうちの1つまたはその組み合わせに対応する単一のフォグサーバシステムを含み、このシステムは、要素4151~415nのうちの1つまたはその組み合わせに対応するフォグ層データを記憶する。本明細書に記載の様々な実施形態に関連して、フォグ層内のフォグコンピューティング、具体的には図4で説明するフォグ層413は、クラウドリソースとローカルリソースとの間に位置する、クラウドコンピューティング環境の周辺にある1つ以上のデバイスまたはシステムを含む分散コンピューティングを指す。このようなフォグ層に関連するフォグコンピューティングは、クラウド層、具体的には図4で説明するクラウド層403に関連するリモートクラウドコンピューティングと、ローカル層、具体的には図4で説明するローカル層423に位置するローカルコンピューティングデバイスまたはシステムとの間の分散型仲介(decentralized intermediary)として機能することができる。フォグコンピューティングは、複数のデバイスに関連するデータを、領域的接続性(regional connectivity)を有するストレージノードに集約することを可能にする。
多層ストレージインフラストラクチャ400のローカル層423は、ローカルマシン4201~420nを含む。ローカルマシン4201~420nの各々は、少なくとも1つのハードウェアコンポーネントを組み込んだ少なくとも1つのデバイスもしくはシステムまたはその両方を表すか、またはそれを含む。ローカルマシン4201~420nはそれぞれ、、例えば、ローカルマシン4201~420nにそれぞれ関連付けられた1つ以上のハードウェアベースのストレージまたはデータベースコンポーネント内に、ローカル層データ4251~425nを記憶する。さらに、ローカルマシン4201~420nはそれぞれ、ローカルマシン4201~420nにそれぞれ関連付けられた1つ以上のハードウェアベースのストレージまたはデータベースコンポーネント内に、データビン4351~435nを含む。フォグサーバシステム4101~410nの各々は、任意の態様として、1つ以上のローカルマシン4201~420nに領域的接続性もしくはデータ集約機能またはその両方を提供する。代替の構成として、ローカル層423は、要素4201~420nのうちの1つまたはその組み合わせに対応する単一のローカルマシンを含み、このローカルマシンは、要素4251~425nのうちの1つに対応するローカル層データを記憶するとともに、要素4351~435nのうちの1つまたはその組み合わせに対応するデータビンを含む(またはこれと動作可能に結合される)。
代替の構成として、多層ストレージインフラストラクチャ400は、上記の3層に加えてさらなる中間層、例えば、クラウド層403とフォグ層413との間の中間層、もしくはフォグ層413とローカル層423との間の中間層、またはその両方を含む。このような中間層は、任意の態様として、クラウド層403、フォグ層413、もしくはローカル層423またはその組み合わせ間での伝送用にデータをバッファする。これに加えて、またはこれに代えて、このような中間層は隣接する層の特性を含む。例えば、クラウド層403とフォグ層413の間の中間層は、任意の態様として、クラウド層403とフォグ層413の両方の特定の要素を組み込む。別の例において、フォグ層413とローカル層423との間の中間層は、フォグ層413とローカル層423の両方の特定の要素を組み込む。
一実施形態において、マネージドサービスドメイン300は、少なくとも1つのネットワーク接続を介して多層ストレージインフラストラクチャ400のフォグ層413に通信可能に結合されるハイブリッドクラウドインタフェースである。このような実施形態によれば、マネージドサービスドメイン300はさらに、少なくとも1つのネットワーク接続を介して、任意の態様としてフォグ層413を介して、多層ストレージインフラストラクチャ400のローカル層423においてユーザに関連付けられた少なくとも1つのローカルマシン(例えば、ローカルマシン4201~420nのうちの少なくとも1つ)に通信可能に結合される。このような実施形態において、フォグ層413は、任意の態様として、ハイブリッドクラウド環境内の仮想プライベートクラウドのコンポーネントであり、構成可能なリソースのオンデマンドプールが1つ以上の指定ユーザに割り当てられる。追加的な実施形態において、少なくとも1つのローカルマシンは、クラウド接続を容易にするアプリケーションプログラミングインタフェース(API)を介して、マネージドサービスドメイン300(具体的には、その1つ以上のコンポーネント)に通信可能に結合される。さらなる実施形態において、ローカルマシン4201~420nのうちの少なくとも1つと、マネージドサービスドメイン300の1つ以上のコンポーネントとは、JavaScript Object Notation(JSON)またはExtensible Markup Language(XML)などのデータ交換フォーマットを介して通信する。さらなる実施形態において、ローカルマシン4201~420nのうちの少なくとも1つは、エッジコンピューティングデバイスである。このようなさらなる実施形態によれば、様々な実施形態に従って処理されるファイルデータが、例えば、モノのインターネット(IoT)インフラストラクチャに関連して、センサまたは分散したコンピューティング場所から収集されるデータに関する場合、このようなローカルマシンは、エッジコンピューティングデバイスを介してクラウド層403もしくはフォグ層413またはその両方と連携することができる。ローカルマシン4201~420nのうちの少なくとも1つをエッジコンピューティングデバイスとして含めることにより、多層ストレージインフラストラクチャ400内でフォグ-エッジコンピューティングのハイブリッド実装が可能になり、エッジコンピューティングが持つローカルシステムの利点と、フォグコンピューティングが持つ相互接続性および集約機能とが提供される。
図5は、ファイルデータを処理する方法500を示す図である。具体的には、方法500は、ファイルデータを暗号化して多層ストレージインフラストラクチャ(例えば、多層ストレージインフラストラクチャ400)のストレージ層間で分散させることに関し、さらに、認証済みのデータアクセス要求を受信したことに応じてファイルデータを復号化して復元することに関する。一実施形態において、方法500に関連する1つ以上のステップは、コンピューティング能力がサービスとして提供される環境(例えば、クラウドコンピューティング環境50)において実施される。このような実施形態によれば、方法500に関連する1つ以上のステップは、環境内のマネージドサービスドメイン(例えば、マネージドサービスドメイン300)において実行される。任意の態様として、この環境はハイブリッドクラウド環境である。さらなる実施形態において、方法500に関連する1つ以上のステップは、クライアントサーバネットワーク環境またはピアツーピアネットワーク環境など、1つ以上の他の環境で実行される。マネージドサービスドメイン内の集中型クラウドサーバシステム(例えば、マネージドサービスドメイン300内のクラウドサーバシステム310)は、方法500および本明細書でさらに説明する他の方法による処理を容易にすることができる。より具体的には、クラウドサーバシステム内のクラウドサーバアプリケーション(例えば、クラウドサーバアプリケーション315)は、方法500および本明細書に記載の他の方法の1つ以上のステップを実行する、または実行を容易にすることができる。マネージドサービスドメイン内のクラウドサーバシステムを介して容易化される、あるいは実行されるデータ処理技術は、上記環境によって提供される機能的抽象化レイヤのうちのワークロードレイヤ内のデータ分散および復元ワークロード(例えば、クラウドコンピューティング環境50のワークロードレイヤ90内のデータ分散および復元96)に関連付けることができる。さらなる実施形態において、クラウドサーバアプリケーションは、高レベルプログラミング言語(例えば、Python、C、C++、もしくはC#またはその組み合わせ)を介してエンコードされた1つ以上のプログラミング命令を介して、方法500および本明細書に記載の他の方法の1つ以上のステップを実行する。
方法500はまずステップ505にて、クラウドサーバアプリケーションが、マネージドサービスドメインに記憶するために、ユーザに関連するファイルデータを受信する。任意の態様として、受信したファイルデータは、ユーザまたは関連するエンティティが、プライバシー、アクセシビリティ、もしくはセキュリティまたはその組み合わせを目的として、多層ストレージインフラストラクチャ内に記憶しようとするデータである。一実施形態において、受信したファイルデータは、単一のファイルからのデータである。あるいは、受信したファイルデータは、複数のファイルからのデータである。一実施形態において、クラウドサーバアプリケーションは、任意の態様としてクラウドコンピューティングインタフェース(例えば、クラウドコンピューティングインタフェース330)を介して、マネージドサービスドメイン内でファイルデータを受信する。このような実施形態によれば、クラウドサーバアプリケーションは、受信したファイルデータをクラウドサーバシステム内で受信し、続けて処理する。さらなる実施形態において、クラウドサーバアプリケーションは、ステップ505にて、ユーザに関連するクライアントインタフェースを介してファイルデータを受信する。このようなさらなる実施形態、および本明細書に記載の他の実施形態によれば、クライアントインタフェースは、多層ストレージインフラストラクチャ内のユーザシステムまたはデバイス(例えば、多層ストレージインフラストラクチャ400内のローカルマシン4201~420nのうちの1つ)にインストールされるかもしくは他の方法でこれにアクセス可能な少なくとも1つのクライアントアプリケーションを介して提示されるか、または多層ストレージインフラストラクチャに動作可能/通信可能に結合された、グラフィカルユーザインタフェース(GUI)もしくはコマンドラインインタフェース(CLI)またはその両方の形態のユーザインタフェースである。
ステップ510にて、クラウドサーバアプリケーションは、アンサンブル学習モデル(例えば、アンサンブル学習モデル320)を適用して、ユーザに関連するコンテキスト情報に基づいて、ファイルデータのデータ分散技術(data distribution technique)を考案する。本明細書に記載の様々な実施形態との関連では、アンサンブル学習モデルは、ファイルデータに関連するトピックもしくはトピック群またはその両方を識別し、このようなトピック識別に基づいてファイルデータを分類するために、機械学習技術および必要に応じてディープラーニング技術を含む複数の人工知能技術を組み込み、協働させる。複数の人工知能技術は、1つ以上の自然言語処理(NLP)モデルもしくは1つ以上のマルチクラス分類技術またはその両方を含んでもよい。本明細書に記載の様々な実施形態との関連では、データ分散技術は、ファイルデータを多層ストレージインフラストラクチャのストレージ層間で分割し、さらに、ファイルデータの復元もしくは転送またはその両方に必要な依存関係(dependencies)を保持するために、冗長データ(redundant data)をストレージ層間で分散させる。クラウドサーバアプリケーションは、アンサンブル学習モデルを介して得られたトピック識別および分類に基づいて、データ分散技術を考案する。データ分散技術は、ファイルデータの部分またはそのサブ部分をそれぞれのストレージ層に割り当てる。本明細書でさらに説明するように、それぞれのストレージ層は、任意の態様として、クラウドサーバアプリケーションがファイルデータを分割することによって形成されるデータバケット(data buckets)と相関する。本明細書に記載の様々な実施形態との関連では、データバケットは、分散データを記憶するように構成されたデータ構造である。データバケットは、任意の態様として、コンテナまたはバッファであるか、あるいはコンテナまたはバッファを含む。
ステップ510でのアンサンブル学習モデルの適用中、クラウドサーバアプリケーションは、ユーザに関連するコンテキスト情報を考慮して、受信したファイルデータをトピック分析する。一実施形態において、ユーザに関連するコンテキスト情報は、アプリケーションアクセスおよびデータアクセスの過去のユーザパターンもしくは現在観察されているユーザパターンまたはその両方、ならびにユーザに関連する様々な属性に基づく。このような実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、アンサンブル学習モデルを適用して、複数のユーザコンテキスト要因(user contextual factors)のうちの1つ以上に少なくとも部分的に基づいて、データ分散技術を考案する。複数のユーザコンテキスト要因は、任意の態様として、ユーザのデータ使用頻度、ユーザのアプリケーション使用頻度、ユーザのシステム構成、ユーザのファイル記憶パターン、ユーザの属性(例えば、ユーザの職業、ユーザに関連する組織、ユーザの個人もしくは業務上の連絡先)、もしくは、過去に、最近、もしくは現在使用されているアプリケーションもしくはファイルに関連するユーザのデータコンテンツ(例えば、ユーザのデータファイルタイプおよび/もしくはサイズ)、またはその組み合わせを含む。ステップ510でのアンサンブル学習モデルの適用に関する方法は、図6を参照して説明する。
ステップ515にて、クラウドサーバアプリケーションはファイルデータを暗号化する。クラウドサーバアプリケーションは、ステップ510で考案されたデータ分散技術の実行準備として、ファイルデータを暗号化する。一実施形態において、クラウドサーバアプリケーションは、ユーザコンテキスト情報に基づいて、例えば、このような情報に関連するセキュリティもしくはプライバシー設定またはその両方に基づいて、1つ以上の暗号化技術を組み込んだ暗号化戦略を考案する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ファイルデータもしくはファイルデータの部分またはその両方に関連するデータタイプまたはデータサイズに基づいて、暗号化戦略を考案する。追加的な実施形態において、クラウドサーバアプリケーションは、データ傍受に関連するセキュリティリスク、例えば、中間者(MitM:man in the middle)攻撃を回避するためのさらなるファイルデータ処理の前に、ステップ515に従って暗号化を完了する。このような追加的な実施形態において、クラウドサーバアプリケーションは、考案したデータ分散技術に従ってファイルデータを分割する前に、ファイルデータを暗号化する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ハッシュ変換を実行する前にファイルデータを暗号化する。さらなる実施形態において、クラウドサーバアプリケーションは、ファイルデータ全体に対して暗号化の1回目の反復を適用し、次いで、アンサンブル学習モデルを介して決定されたように多層ストレージインフラストラクチャの層間で分散されたそれぞれのファイルデータ部分に対して、暗号化の1つ以上の以後の反復を適用する。さらなる実施形態において、暗号化戦略に関連する1つ以上の暗号化技術は、TDES(Triple Data Encryption Algorithm)やAES(Advanced Encryption Standard algorithm)などの対称鍵アルゴリズムを含む。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、TDESを適用してファイルデータを暗号化する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、任意の態様として、AESを適用してファイルデータを暗号化する。さらなる実施形態において、1つ以上の暗号化技術は、RSA(Rivest-Shamir-Adleman)などの非対称鍵アルゴリズムを含む。さらなる実施形態において、クラウドサーバアプリケーションは、セキュリティもしくはプライバシーまたはその両方を強化するために、ファイルデータのすべてまたは特定の部分に複数の暗号化アルゴリズムを適用する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、非機密データではなく機密データとしてマークされるか、あるいは機密データに関連しているファイルデータもしくはファイルデータの部分またはその両方に対して、比較的強力な暗号化アルゴリズムもしくはより多数の暗号化アルゴリズムまたはその両方を適用する。
ステップ520にて、クラウドサーバアプリケーションは、ステップ510で考案されたデータ分散技術に基づいて、ステップ515で暗号化されたファイルデータを分割し、多層ストレージインフラストラクチャのストレージ層間に分散して記憶する。ステップ520に従って、クラウドサーバアプリケーションはデータ分散技術を実行する。一実施形態において、クラウドサーバアプリケーションは、多層ストレージインフラストラクチャのクラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層(例えば、多層ストレージインフラストラクチャ400のクラウド層403、フォグ層413、およびローカル層423)の間でファイルデータを分割する。代替的な実施形態において、クラウドサーバアプリケーションは、クラウド層、フォグ層、およびローカル層に加えて、1つ以上の中間層の間でファイルデータを分割する。このような1つ以上の中間層は、クラウド層とフォグ層との間の中間層であって、クラウド層とフォグ層の両方の特定の要素を任意の態様として取り込んだ中間層を含んでもよい。これに加えて、またはこれに代えて、このような1つ以上の中間層は、フォグ層とローカル層との間の中間層であって、フォグ層とローカル層の両方の特定の要素を任意の態様として組み込んだ中間層を含んでもよい。ファイルデータをストレージ層の間で分割することにより、クラウドサーバアプリケーションは、考案したデータ分散技術によるファイルデータの各部分の分散を完了する。
ステップ520に従ってファイルデータを分割する場合において、クラウドサーバアプリケーションは、ハッシュ変換(hash transformation)を実行し、少なくとも1つの巡回誤り訂正符号(cyclic error correcting code)を適用する。クラウドサーバアプリケーションは、1つ以上の暗号ハッシュ関数(cryptographic hash functions)の適用を通じてハッシュ変換を実行する。一実施形態において、クラウドサーバアプリケーションは、MD5メッセージダイジェストアルゴリズム(MD5)を適用することによってハッシュ変換を実行する。追加的な実施形態において、クラウドサーバアプリケーションは、セキュアハッシュアルゴリズム2(SHA-2)を適用することによってハッシュ変換を実行する。さらなる実施形態において、クラウドサーバアプリケーションは、複数の暗号ハッシュ関数(例えば、MD5とSHA-2の共同適用)を適用することによってハッシュ変換を実行する。クラウドサーバアプリケーションは、これら1つ以上の暗号ハッシュ関数を適用して、ビット配列形式のハッシュ値を生成する。さらなる実施形態において、クラウドサーバアプリケーションは、ハッシュ値を生成する前に、ハッシュされるファイルデータ文字列にランダムな文字列、すなわちソルト(salt)を追加して、このようなハッシュ値をランダム化することにより、ハッシュ値を生成する場合にさらなるセキュリティを追加する。さらなる実施形態において、クラウドサーバアプリケーションは、多層ストレージインフラストラクチャの各ストレージ層間で分割されたファイルデータを別々にハッシュ化することによって、ハッシュ変換を実行する。この場合、ストレージ層間で分散されたファイルデータ部分の文字列に対してそれぞれ別のハッシュ値が生成される。具体的には、クラウドサーバアプリケーションは、任意の態様として、クラウドコンピューティング層に分散されたファイルデータに対する第1のハッシュ値のセット、フォグコンピューティング層に分散されたファイルデータに対する第2のハッシュ値のセット、およびローカルコンピューティング層に分散されたファイルデータに対する第3のハッシュ値のセットを生成する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、それぞれのコンピューティング層における異なるセキュリティ要件に応じて、それぞれ異なる暗号ハッシュ関数を適用してそれぞれのハッシュ値セットを生成する。さらなる実施形態において、クラウドサーバアプリケーションは、ハッシュ変換および誤り訂正符号を単一のアルゴリズムまたは手順に統合する。さらなる実施形態において、クラウドサーバアプリケーションは、BCH(Bose-Chaudhuri-Hocquenghem)誤り訂正符号のクラスのうちの少なくとも1つの誤り訂正符号を適用することによって、すなわち、少なくとも1つのBCH誤り訂正符号を適用することによって、少なくとも1つの巡回誤り訂正符号を適用する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、BCH誤り訂正符号のReed-Solomonサブセットを適用する。ステップ520に従ったファイルデータの分割に関する方法は、図10を参照して説明する。
一実施形態において、クラウドサーバは、方法ステップに関連する一連のタスクおよびサブタスクを含むbashスクリプトを実行することによって、ステップ510~520に従って、アンサンブル学習モデルを適用し、ファイルデータを暗号化し、もしくはファイルデータをストレージ層間で分割し、またはその組み合わせを実行する。より具体的には、クラウドサーバアプリケーションは、アンサンブル学習モデルの出力に基づいてこのようなbashスクリプトを実行することによって、ファイルデータを暗号化する。様々な実施形態との関連では、bashスクリプトは、コマンドラインプログラムの実行を容易にするための一連のコマンドを含むファイルである。このような実施形態によれば、bashスクリプトにより、アンサンブル学習プロセスのすべての要素を暗号化およびファイルデータ分割と組み合わせた自動化技術の実行が容易になる。したがって、クラウドサーバアプリケーションは、任意の態様として、様々な実施形態のうちの1つ以上に関連して、プロセスフローを自動化するためにbashスクリプトを実行する。追加的な実施形態において、クラウドサーバアプリケーションはさらに、ユーザのローカルマシンに関連付けられたハードウェアベースのまたは仮想化されたデータビン(例えば、多層ストレージインフラストラクチャ400内のローカルマシン4201~420nのうちの1つに関連付けられたデータビン4351~435nのうちの1つ)に、ファイルデータ全体を非分割状態で記憶する。このような実施形態によれば、クラウドサーバアプリケーションは、分割されたファイルデータが多層ストレージインフラストラクチャの1つ以上の層間で失われたと判断した場合に、データビンを介してファイルデータを復元することができる。
ステップ525にて、クラウドサーバアプリケーションは、ファイルデータに関連するデータアクセス要求を受信する。一実施形態において、クラウドサーバアプリケーションは、ユーザに関連付けられたクライアントインタフェースを介してデータアクセス要求を受信する。クライアントインタフェースは、任意の態様として、ステップ505でファイルデータが受信されたのと同じインターフェースであるか、あるいは別のクライアントインタフェースである。ステップ530にて、クラウドサーバアプリケーションは、データアクセス要求を認証する。クラウドサーバアプリケーションは、任意の態様として、マネージドサービスドメインに関連付けられたディレクトリサーバシステム(例えば、ディレクトリサーバシステム350)を利用して認証を行う。一実施形態において、クラウドサーバアプリケーションは、(任意の態様として、ステップ520にてファイルデータを分割する場合に1つ以上の暗号ハッシュ関数を適用したのと類似の方法で)1つ以上の暗号ハッシュ関数を適用することによって、データアクセス要求を認証する。任意の態様としてで、データアクセス要求の認証に失敗した場合、クラウドサーバアプリケーションは、ステップ530を繰り返すか、または方法500の最後に進む。ステップ530に従ったデータアクセス要求の認証に関する方法は、図11を参照して説明する。
ステップ535にて、クラウドサーバアプリケーションは、復号化を介してファイルデータを復元する。一実施形態において、クラウドサーバアプリケーションは、多層ストレージインフラストラクチャのストレージ層間で分割されたファイルデータを、元々構築されたのと同じフォーマットで復元する。あるいは、クラウドサーバアプリケーションは、ユーザの好みに応じて変更されたフォーマット(例えば、圧縮フォーマットもしくは暗号化フォーマットまたはその両方)でファイルデータを復元する。一実施形態において、鍵の使用を通じて、クラウドサーバアプリケーションは、ステップ515で適用した1つ以上の暗号化技術に対応する1つ以上の復号化技術を適用することによって、ファイルデータを復号化する。さらなる実施形態において、(例えば、ストレージ層のうちの1つ以上におけるデータ要素の破損に起因して)ファイルデータが1つ以上のストレージ層間で失われたと判断した場合に、クラウドサーバアプリケーションは、ファイルデータが未分割の形態で記憶されているデータビンにアクセスすることによって、ファイルデータ全体を復元する。さらなる実施形態において、クラウドサーバアプリケーションは、ステップ505~520とは別個の手順において、ステップ525~535のうちの1つ以上を実行する。
図6は、アンサンブル学習モデルを適用する方法600を示す図である。方法600は、1つ以上の実施形態に従って、方法500のステップ510におけるサブステップを提供するものである。方法600はまずステップ605にて、クラウドサーバアプリケーションが、ユーザに関連するコンテキスト情報にNLPを適用することによって、トピックコンテキストデータ(topical context data)を導出する。ステップ605に従って、クラウドサーバアプリケーションは、トピックコンテキストデータを導出するために、NLPをユーザコンテキスト情報に適用する。クラウドサーバアプリケーションは、トピックコンテキストデータを導出するために、1つ以上のNLPモデル/アルゴリズムをユーザコンテキスト情報に適用する。導出したトピックコンテキストデータは、ユーザコンテキスト情報に関連するトピックもしくはトピック群またはその両方を含む。このようなトピック/トピック群は、任意の態様として、複数のユーザコンテキスト要因のうちの1つ以上に関連するトピック、例えば、ユーザのアプリケーションアクティビティに関連するトピック、ユーザのデータアクティビティに関連するトピック、ユーザのリソース使用またはユーザの記憶パターンに関連するトピック、もしくは、ユーザ属性(ユーザの職業、ユーザの関連組織、ユーザの連絡先など)に関連するトピック、またはその組み合わせを含む。任意の態様として、導出したトピックコンテキストデータはさらに、ユーザとトピック/トピック群との間の関連付け、もしくは、トピック/トピック群間の関連付け、またはその両方を記述するトピックメタデータ(topical metadata)を含む。具体的には、トピックメタデータは、トピック/トピック群のそれぞれと、ユーザデータ、ユーザアプリケーション、もしくはユーザ属性またはその組み合わせとの間の関係情報、例えば、セキュリティ関連のトピックに関係するユーザデータに関する日付/時間情報またはアクセス情報を記述することができる。
クラウドサーバアプリケーションは、ユーザコンテキスト情報内のトピックパターンを識別するために、NLPを介して、アンサンブル学習モデルの教師なし学習(unsupervised learning)機能をユーザコンテキスト情報内で識別されたユーザコンテキスト要素(user context aspects)に適用する。一実施形態において、ユーザコンテキスト要素は、複数のユーザコンテキスト要因のうちの1つ以上から解析または他の方法で取得されたデータ要素を含む。一実施形態において、クラウドサーバアプリケーションは、任意の態様として、少なくとも1つの自然言語理解(NLU)技術を組み込むことによって、ユーザコンテキスト情報にNLPを適用する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、少なくとも1つの自動音声認識(ASR)技術を組み込むことによって、ユーザコンテキスト情報にNLPを適用する。さらなる実施形態において、クラウドサーバアプリケーションは、NLPを適用するユーザコンテキスト要素を識別するために、ユーザコンテキスト情報のテキスト要素からテキストを解析する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ユーザコンテキスト情報のオーディオビジュアル要素にオーディオビジュアル処理を適用することによって、NLP分析を目的としてユーザコンテキスト要素を識別する。ユーザに関連する音声(例えば、ユーザまたは関連する連絡相手の音声発話)を識別すると、クラウドサーバアプリケーションは、任意の態様として、当該音声からテキストベースの要素を導出するために音声認識(例えば、音声テキスト変換)を適用し、その後、当該テキストベースの要素にNLPを適用する。これに加えて、またはこれに代えて、ユーザに関連する視覚イメージ(例えば、ユーザのアクティビティまたは関連する連絡相手のアクティビティの静止画もしくは動画またはその両方)を識別すると、クラウドサーバアプリケーションは、任意の態様として、当該視覚イメージからテキストベースの要素を導出するために動画認識(例えば、動画テキスト変換)を適用し、その後、当該テキストベースの要素にNLPを適用する。クラウドサーバアプリケーションは、任意の態様として、さらなるユーザコンテキスト要素を識別するために、ユーザコンテキスト情報内の音声もしくは視覚イメージまたはその両方に1つ以上の他の形式のオーディオビジュアル処理を適用する。さらなる実施形態において、クラウドサーバアプリケーションは、ユーザに関連して収集されたモニタリングデータ(例えば、ユーザに取り付けられたか、ユーザに関連するデバイスに取り付けられたか、もしくはユーザに関連する環境内に設置されたか、またはその組み合わせである複数のモニタリングセンサから、モノのインターネット(IoT)センサデータの収集に起因して収集されたモニタリングデータ)を分析することによって、NLP分析を目的としてユーザコンテキスト要素を導出する。クラウドサーバアプリケーションは、任意の態様として、センサデータもしくはセンサメタデータまたはその両方から導出されるテキスト要素にNLPを適用する。
一実施形態において、クラウドサーバアプリケーションは、各トピックもしくは各トピック群またはその両方にそれぞれのユーザコンテキストスコアを割り当てることによって、導出したトピックコンテキストデータ間のトピックの関連性を定量化する。ユーザコンテキストスコアは、ファイルストレージアクセスの観点から、ユーザに対する各トピックもしくは各トピック群またはその両方の相対的な重要性を示す。クラウドサーバアプリケーションは、任意の態様として、ユーザアクセスを比較的高速化するために、比較的高いユーザコンテキストスコアを有するトピックもしくはトピック群またはその両方に関連するデータの記憶を優先する。逆に、クラウドサーバアプリケーションは、任意の態様として、例えば、比較的低いユーザコンテキストスコアを有するトピックもしくはトピック群またはその両方に関連するデータについて、記憶コストが比較的低いがアクセスレイテンシが比較的高くなる場所への記憶を許可することによって、このようなデータのより柔軟な記憶を許可する。このような実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、所定の数値スケール、例えば、0~100までの整数スケールで、それぞれのユーザコンテキストスコアを割り当てる。
本明細書でさらに説明するように、任意の態様として、クラウドサーバアプリケーションは、ユーザコンテキスト情報内で識別されたトピックパターンに基づいて特徴ベクトルを符号化し、符号化した特徴ベクトルの処理に基づいて、例えば、少なくとも1つのクラスタリングアルゴリズムの適用を介して、トピックコンテキストデータを導出する。様々な実施形態との関連では、特徴ベクトルは、データポイントのそれぞれの特徴を数値形式で記述するデータポイントのn次元表現である。様々な実施形態との関連では、データポイントは、データ内で表現されるエンティティであり、例えば、個人、組織、またはアプリケーション要素である。様々な実施形態との関連では、特徴は、データポイントに関連する測定可能な特性または特徴である。ステップ605に従ったトピックコンテキストデータの導出に関する方法は、図7を参照して説明する。
ステップ610にて、クラウドサーバアプリケーションは、ステップ605で導出したトピックコンテキストデータに基づいてファイルデータにNLPを適用することによって、複数のファイルデータ部分(file data portions)を導出する。ステップ610によれば、複数のファイルデータ部分を導出するために、クラウドサーバアプリケーションは、導出したトピックコンテキストデータに基づいてファイルデータにNLPを適用する。ユーザコンテキスト情報に関連するトピック/トピック群を含む導出したトピックコンテキストデータを入力として使用して、クラウドサーバアプリケーションは、ファイルデータ間のトピックパターンを識別するために、NLPを介して、アンサンブル学習モデルの教師なし学習機能をファイルデータ要素(file data aspects)に適用する。一実施形態において、クラウドサーバアプリケーションは、任意の態様として、少なくとも1つのNLU技術を組み込むことによって、ファイルデータにNLPを適用する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、少なくとも1つのASR技術を組み込むことによって、ファイルデータにNLPを適用する。さらなる実施形態において、クラウドサーバアプリケーションは、NLPを適用するファイルデータ要素を識別するために、ファイルデータのテキスト要素からテキストを解析する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ファイルデータ内のオーディオビジュアル要素にオーディオビジュアル処理を適用することによって、NLP分析を目的としてファイルデータ要素を識別する。ファイルデータ内の音声(例えば、音声発話または他の音声)を識別すると、クラウドサーバアプリケーションは、任意の態様として、当該音声からテキストベースの要素を識別するために音声認識(例えば、音声テキスト変換)を適用し、その後、当該テキストベースの要素にNLPを適用する。ファイルデータ内の視覚イメージ(例えば、静止画もしくは動画またはその両方)を識別すると、クラウドサーバアプリケーションは、任意の態様として、当該視覚イメージからテキストベースの要素を識別するために動画認識(例えば、動画テキスト変換)を適用し、その後、当該テキストベースの要素にNLPを適用する。クラウドサーバアプリケーションは、任意の態様として、さらなるファイルデータ要素を識別するために、ファイルデータ内の音声もしくは視覚イメージまたはその両方に1つ以上の他の形式のオーディオビジュアル処理を適用する。
本明細書でさらに説明するように、ファイルデータ間で識別されたトピックパターンに基づいて、クラウドサーバアプリケーションは、任意の態様として、複数のファイルデータ部分を作成し、例えば、少なくとも1つのクラスタリングアルゴリズムの適用を介して、ファイルデータ内のデータポイントを複数のファイルデータ部分に割り当てる。ステップ610に従って複数のファイルデータ部分を導出することに関する方法は、図9を参照して説明する。
ステップ615にて、クラウドサーバアプリケーションは、ステップ610で導出した複数のファイルデータ部分に少なくとも1つのマルチクラス分類(multi-class classification)技術を適用する。ステップ615に従って、クラウドサーバアプリケーションは、導出したファイルデータ部分もしくはそのそれぞれのサブ部分またはその両方を、複数のクラスのうちの1つ以上のクラスに関連付ける。ステップ605~610において適用したNLPを介して決定したトピックラベリングに基づいて、クラウドサーバアプリケーションは、導出したファイルデータ部分またはそのそれぞれのサブ部分を複数のクラスのうちの1つ以上のクラスに関連付けるために、アンサンブル学習モデルの教師あり学習(supervised learning)機能を適用する。一実施形態において、クラウドサーバアプリケーションは、ランダムフォレスト分類器(RFC:random forest classifier)決定木アンサンブルを適用する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、サポートベクタマシン(SVM)モデル(任意の態様としてSVMアンサンブルモデル)を適用する。クラウドサーバアプリケーションは、導出したファイルデータ部分を入力として使用して、教師あり学習を達成する。少なくとも1つ分類技術の1つ以上に関連するそれぞれの決定木ノードでの処理に基づいて、クラウドサーバアプリケーションは、それぞれのファイルデータ部分と複数のクラスのうちの1つ以上との間の関連付けを識別する情報を含む出力を生成する。関連する実施形態において、出力は、それぞれのファイルデータ部分またはそのサブ部分について、複数のクラスのうちの1つ以上の特定のクラスに対応するか、または他の形でこれを参照する数値出力(例えば、整数、バイナリ、もしくはワンホット符号化ベクトル出力(one-hot encoded vector output)またはその組み合わせ)を含む。追加的な関連する実施形態において、出力は、複数のクラスに基づくファイルデータ部分の分布に関係するデータ、例えば、複数のクラスとそれぞれのファイルデータ部分またはそのサブ部分との間の関係に関連する統計データもしくはメタデータまたはその両方を含む。
クラウドサーバアプリケーションは、ステップ615に従って、ファイルデータ部分もしくはそのそれぞれのサブ部分またはその両方を、ユーザコンテキスト情報の1つ以上の特定の要素に基づいて、例えば、複数のユーザコンテキスト要因のうちの1つ以上に基づいて、複数のクラスのうちの1つ以上に関連付ける。一実施形態において、クラウドサーバアプリケーションは、複数のユーザコンテキスト要素を組み込むことによって、ファイルデータ部分を分類する。ユーザコンテキスト要素には、データの使用頻度、データの関連性、データタイプ、データサイズ、データの複雑さ、データの機密性、もしくは特定のユーザタスクに関連したデータの優先順位またはその組み合わせに関係する1つ以上の要素が含まれる。さらなる実施形態において、クラウドサーバアプリケーションは、それぞれのデータタイプとの関連性に基づいてファイルデータ部分を分類する。具体的には、クラウドサーバアプリケーションは、任意の態様として、最も頻繁に使用されるデータタイプを有する(または最も頻繁に使用されるアプリケーションに関連するデータを有する)ファイルデータ部分を、ローカル層に関連付けられた1つ以上のクラスに分類し、より使用頻度の低いデータタイプに関係するファイルデータ部分を、フォグ層に関連付けられた1つ以上のクラスに分類し、最も使用頻度の低いデータタイプに関係するファイルデータ部分を、クラウド層に関連付けられた1つ以上のクラスに分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、データの関連性に基づいてファイルデータ部分を分類する。具体的には、クラウドサーバアプリケーションは、任意の態様として、ユーザのアクティビティに最も関連すると判定されたデータを有するファイルデータ部分を、ローカル層に関連付けられた1つ以上のクラスに分類し、より関連性の低いデータを有するファイルデータ部分を、フォグ層に関連付けられた1つ以上のクラスに分類し、最も関連性の低いデータを有するファイルデータ部分を、クラウド層に関連付けられた1つ以上のクラスに分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、アプリケーションの関連性に基づいてファイルデータ部分を分類する。具体的には、クラウドサーバアプリケーションは、任意の態様として、ユーザのアクティビティ中に最も頻繁に使用されるアプリケーションに関係するファイルデータ部分を、ローカル層に関連付けられた1つ以上のクラスに分類し、ユーザのアクティビティ中に比較的頻繁に使用されないアプリケーションに関係するファイルデータ部分を、フォグ層に関連付けられた1つ以上のクラスに分類し、ユーザのアクティビティ中に最も頻繁に使用されないアプリケーションに関係するファイルデータ部分を、クラウド層に関連付けられた1つ以上のクラスに分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ファイルサイズに基づいてファイルデータ部分を分類する。具体的には、クラウドサーバアプリケーションは、任意の態様として、より大きなユーザファイルに関係するファイルデータ部分を、クラウド層に関連付けられた1つ以上のクラスに分類し、よりコンパクトなユーザファイルに関係するファイルデータ部分を、フォグ層に関連付けられた1つ以上のクラスに分類し、最もコンパクトなユーザファイルに関係するファイルデータ部分を、ローカル層に関連付けられた1つ以上のクラスに分類する。
追加的な実施形態において、クラウドサーバアプリケーションは、より関連性が低い、よりコンパクトでない、もしくはより使用頻度が低い、またはその組み合わせであるファイルデータ部分またはそのサブ部分を、クラウド層に関連付けられた1つ以上のクラスに分類し、より関連性が高い、よりコンパクトである、もしくはより使用頻度が高い、またはその組み合わせであるファイルデータ部分またはそのサブ部分を、フォグ層に関連付けられた1つ以上のクラスに分類し、最も関連性が高い、最もコンパクトである、もしくは最も使用頻度が高いファイルデータ部分またはそのサブ部分を、ローカル層に関連付けられた1つ以上のクラスに分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、より複雑な、もしくはより機密性の高い、またはその両方であるファイルデータ部分を、アクセスのしやすさを目的として、クラウド層に関連付けられた1つ以上のクラスに分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ユーザタスクとの関連で相対的な優先順位が最も高いファイルデータ部分を、すべてのストレージ層に関連付けられたクラスに分類し、どのようなデータストレージシナリオにおいても、ユーザがこのようなファイルデータ部分にアクセスできるようにする。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、リモートデータ処理に必要であるか、もしくはリモートデータアクセスの可用性に関連するか、またはその両方であるファイルデータ部分またはそのサブ部分を、クラウド層に関連付けられた1つ以上のクラス、もしくはフォグ層に関連付けられた1つ以上のクラス、またはその両方に分類する。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、ローカルリソースに関連するファイルデータ部分またはそのサブ部分を、ローカル層に関連付けられた1つ以上のクラスに分類する。
さらなる実施形態において、クラウドサーバアプリケーションは、導出したトピックコンテキストデータのうちの各トピックまたはトピック群に割り当てられたそれぞれのユーザコンテキストスコアに少なくとも部分的に基づいて、ステップ615に従って、それぞれのファイルデータ部分もしくはそのサブ部分またはその両方を、複数のクラスのうちの1つ以上に分類する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、比較的高速なユーザアクセスを容易にするために、比較的高いユーザコンテキストスコアを有するトピックもしくはトピック群またはその両方に関連するそれぞれのファイルデータ部分またはそのサブ部分を、比較的高いストレージ優先度に相関する複数のクラスのうちの1つ以上に割り当てる。逆に、クラウドサーバアプリケーションは、任意の態様として、比較的低いユーザコンテキストスコアを有するトピックもしくはトピック群またはその両方に関連するそれぞれのファイルデータ部分またはそのサブ部分を、より柔軟なストレージ設定に相関する複数のクラスのうちの1つ以上に割り当てる。
クラウドサーバアプリケーションは、1つ以上の分類技術に基づいて、ステップ615に従って、各ファイルデータ部分を複数のクラスのうちの1つ以上に分類する。一実施形態において、1つ以上の分類技術は、多層ストレージインフラストラクチャに関連するストレージ層、例えば、クラウド層、フォグ層、およびローカル層に関して分類を行う。第1の分類技術によれば、複数のクラスの各々は、ストレージ層のうちの1つのみに関連付けられる。具体的には、第1のクラスはクラウド層に関連付けられ、第2のクラスはフォグ層に関連付けられ、第3のクラスはローカル層に関連付けられる。この第1の分類技術に従って、クラウドサーバアプリケーションは、ストレージ層のうちの特定の層にその全体が分散されるファイルデータ部分を、当該特定の層に関連付けられた単一のクラス(すなわち、クラウド層クラス、フォグ層クラス、またはローカル層クラス)に関連付ける。例えば、クラウドサーバアプリケーションは、クラウド層に全体が分散されるファイルデータ部分を、クラウド層クラスに関連付けることができる。逆に、クラウドサーバアプリケーションは、層分散に基づいて、複数の層間に分散されるファイルデータ部分を、複数のクラスのうちの複数のクラスに関連付ける。この場合、クラウドサーバアプリケーションは、関連付けられたクラスに基づいて、当該ファイルデータ部分をそれぞれのサブ部分に細分化してもよい。例えば、クラウドサーバアプリケーションは、クラウド層とフォグ層の間で分散されるファイルデータ部分を、クラウド層クラスとフォグ層クラスの両方に関連付けることができる。この場合、クラウドサーバアプリケーションは、クラウド層クラスとの関連付けに基づいて、当該ファイルデータ部分のうちのクラウド層サブ部分を識別することができ、さらに、フォグ層クラスとの関連付けに基づいて、当該ファイルデータ部分のうちのフォグ層サブ部分を識別することができる。
第2の分類技術によれば、複数のクラスの各々は、任意の態様として、ストレージ層のうちの1つまたはそれらの組み合わせに関連付けられる。具体的には、第1のクラスはクラウド層に関連付けられ、第2のクラスはフォグ層に関連付けられ、第3のクラスはローカル層に関連付けられ、第4のクラスは任意の態様としてクラウド層とフォグ層の両方に関連付けられ、第5のクラスは任意の態様としてクラウド層とローカル層の両方に関連付けられ、第6のクラスは任意の態様としてフォグ層とローカル層の両方に関連付けられ、第7のクラスは任意の態様としてクラウド層、フォグ層およびローカル層の全てに関連付けられる。第2の分類技術に従って、クラウドサーバアプリケーションは、第1の分類技術と同様に、ストレージ層のうちの特定の層にその全体が分散されるファイルデータ部分を、当該特定の層に関連付けられた単一のクラス(すなわち、クラウド層クラス、フォグ層クラス、またはローカル層クラス)に関連付ける。逆に、クラウドサーバアプリケーションは、複数の層間に分散されるファイルデータ部分を、当該複数の層の各々を反映するクラスに関連付ける。例えば、クラウドサーバアプリケーションは、クラウド層とフォグ層の間で分散されるファイルデータ部分を、クラウド層とフォグ層の両方に関連付けられたクラスに関連付けることができる。
一実施形態において、クラウドサーバアプリケーションは、1つ以上の数値クラス値(numerical class values)を複数のファイルデータ部分もしくはそのそれぞれのサブ部分またはその両方の各々に関連付ける。このような実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、1つ以上の数値クラス値を複数のファイルデータ部分もしくはそのそれぞれのサブ部分またはその両方のうちのそれぞれのファイルデータ部分に関連付ける数値データを含む、符号化特徴ベクトルを作成する。代替の実施形態において、1つ以上の分類技術に従って、クラウドサーバアプリケーションは、クラウド層、フォグ層、およびローカル層に加えて、多層ストレージインフラストラクチャに関連する中間層に関して分類を行う。このような代替の実施形態において、1つ以上の分類技術は、クラウド層とフォグ層との間の中間層もしくはフォグ層とローカル層との間の中間層またはその組み合わせに関連付けられたそれぞれのクラスを含む。
ステップ620にて、クラウドサーバアプリケーションは、少なくとも1つのマルチクラス分類技術の適用に基づいて、複数のファイルデータ部分についての分散計画(distribution plan)を決定する。ステップ620にて決定される分散計画は、ステップ510で考案したデータ分散技術の実行である。一実施形態において、クラウドサーバアプリケーションは、少なくとも1つのマルチクラス分類技術を介したファイルデータ部分の分類に基づいて、分散計画を決定する。前述した計算知能に基づいて、クラウドサーバアプリケーションは、多層ストレージインフラストラクチャのそれぞれの層(例えば、クラウド層、フォグ層、およびローカル層)に記憶されたファイルデータの分散比率を計算する。クラウドサーバアプリケーションは、任意の態様として、複数のクラスへのファイルデータ部分の分類に基づいて分散比率を計算する。追加的な実施形態において、クラウドサーバアプリケーションは、ファイルデータをクラウド層、フォグ層、およびローカル層内のそれぞれのバケットに分散するための手順を分散計画に含める。このような追加的な実施形態において、クラウドサーバアプリケーションは、任意の態様として、ファイルデータをどの順序でそれぞれのバケットに分散するかを指定する分散順序を指定する。分散順序の1つのバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にクラウド層のバケットに分散し、続いてフォグ層のバケットに分散し、続いてローカル層のバケットに分散してもよい。分散順序の別のバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にクラウド層のバケットに分散し、続いてローカル層のバケットに分散し、続いてフォグ層のバケットに分散してもよい。分散順序のさらに別のバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にフォグ層のバケットに分散し、続いてクラウド層のバケットに分散し、続いてローカル層のバケットに分散してもよい。分散順序のさらに別のバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にフォグ層のバケットに分散し、続いてローカル層のバケットに分散し、続いてクラウド層のバケットに分散してもよい。分散順序のさらに別のバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にローカル層のバケットに分散し、続いてクラウド層のバケットに分散し、続いてフォグ層のバケットに分散してもよい。分散順序のさらに別のバリエーションによれば、クラウドサーバアプリケーションは、ファイルデータを最初にローカル層のバケットに分散し、続いてフォグ層のバケットに分散し、続いてクラウド層のバケットに分散してもよい。多層ストレージインフラストラクチャが中間層を含む場合、分散順序は、任意の態様として、クラウド層のバケット、フォグ層のバケット、およびローカル層のバケットに加えて、中間層内のそれぞれのバケットを組み込む。さらなる実施形態において、クラウドサーバアプリケーションは、ステップ605~615で適用したNLPおよびマルチクラス分類に基づいて、アンサンブル学習メタデータをファイルデータに付加する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、アンサンブル学習メタデータを利用して、多層ストレージインフラクチャの層間の分散比率を決定する。アンサンブル学習メタデータは、任意の態様として、ステップ610で導出したファイルデータ部分に関係する情報を組み込む。アンサンブル学習メタデータに任意の態様として組み込まれる、それぞれのファイルデータ部分に関係する情報には、ファイルデータ部分のサイズ、ファイルデータ部分に関連するデータタイプ、ファイルデータ部分に関連するアプリケーション、ファイルデータ部分に関連するトピック分類、もしくはファイルデータ部分に関連するクラスまたはその組み合わせが含まれる。
ステップ625にて、クラウドサーバアプリケーションは、ステップ605~615にて適用したNLPおよびマルチクラス分類に基づいて、アンサンブル学習モデルを訓練する。ステップ625に従って、クラウドサーバアプリケーションは、モデルを適用した結果導出された、もしくは決定された、またはその両方として得られた要素に基づいて、アンサンブル学習モデルを更新する。一実施形態において、クラウドサーバアプリケーションは、上記ユーザ、もしくは同様のデータ使用特性および/もしくはアプリケーション使用特性を有するユーザ、またはその両方に関する将来の分析用に、ステップ605で導出したトピックコンテキストデータに基づく1つ以上のトピックコンテキストデータ要素を記憶する。このような実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、1つ以上のトピックコンテキストデータ要素を分析し、このような分析に基づいて、トピックコンテキストデータパターン(例えば、複数のユーザコンテキスト要因のうちの1つ以上に基づくトピックパターン)を識別し、記憶する。クラウドサーバアプリケーションは、任意の態様として、記憶したトピックコンテキストデータパターンを利用して、将来のトピックコンテキストデータ処理を容易にする。一実施形態において、クラウドサーバアプリケーションは、上記ユーザ、または同様のデータ使用特性もしくはアプリケーション使用特性またはその両方を有するユーザに関連するファイルデータ部分の将来の編成を容易にするために、ステップ610で導出した複数のファイルデータ部分に基づく1つ以上のファイルデータ要素を記憶する。このような追加の実施形態において、クラウドサーバアプリケーションは、任意の態様として、1つ以上のファイルデータ要素を分析し、このような分析に基づいて、ファイルデータパターン(例えば、ファイルデータ間のトピックパターンまたは他のファイルデータパターン)を識別し、記憶する。クラウドサーバアプリケーションは、任意の態様として、将来のファイルデータ処理を容易にするために、記憶したファイルデータパターンを利用する。さらなる実施形態において、クラウドサーバアプリケーションは、導出した複数のファイルデータ部分に関して、ステップ615で決定した1つ以上の分類要素を記憶する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、1つ以上の分類要素を分析し、このような分析に基づいて、複数のファイルデータ部分もしくはそのサブ部分またはその両方のうちのそれぞれのファイルデータ部分に1つ以上のクラスを関連付ける分類パターンを識別し、記憶する。具体的には、クラウドサーバアプリケーションは、任意の態様として、複数のファイルデータ部分もしくはそのサブ部分またはその両方のうちのそれぞれのファイルデータ部分に数値クラス値を関連付ける、符号化特徴ベクトルを記憶する。クラウドサーバアプリケーションは、任意の態様として、記憶した分類パターンを利用して、将来のマルチクラス分類処理を容易にする。さらなる実施形態において、クラウドサーバアプリケーションは、作成したアンサンブル学習メタデータに基づいて、もしくは方法600に関連して決定したパターンに基づいて、またはその両方に基づいて、アンサンブル学習モデルを訓練し、かつ、任意の態様として、このようなアンサンブル学習メタデータもしくはパターンまたはその両方を、アンサンブル学習モデルに関連するナレッジベースに記憶する。
以上をまとめると、方法600に従ってアンサンブル学習モデルを適用することは、ユーザに関連するコンテキスト情報にNLPを適用することによってトピックコンテキストデータを導出することと、当該トピックコンテキストデータに基づいてファイルデータにNLPを適用することによって複数のファイルデータ部分を導出することと、当該複数のファイルデータ部分に少なくとも1つのマルチクラス分類技術を適用することと、当該少なくとも1つのマルチクラス分類技術の適用に基づいて当該複数のファイルデータ部分についての分散計画を決定することと、適用した当該NLPおよび適用した当該少なくとも1つのマルチクラス分類技術に基づいてアンサンブル学習モデルを訓練することと、を含む。
図7は、トピックコンテキストデータを導出する方法700を示す図である。方法700は、1つ以上の実施形態に従って、方法600のステップ605におけるサブステップを提供するものである。方法700はまずステップ705にて、クラウドサーバアプリケーションが、ユーザに関連する生データ(raw data)に少なくとも1つのNLPモデルを適用することによって、複数の符号化特徴ベクトルを作成する。ステップ705によれば、クラウドサーバアプリケーションは、複数の符号化特徴ベクトルを作成するために、ユーザに関連する生データに少なくとも1つのNLPモデルを適用する。クラウドサーバアプリケーションは、生データのうちで識別されたトピックパターンに基づいて、複数の符号化特徴ベクトルを作成する。ユーザに関連する生データは、任意の態様として、NLP処理されていないユーザコンテキスト情報のうちの非構造化データ(unstructured data)または構造化データ(structured data)を含む。一実施形態において、ステップ705にて少なくとも1つNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、固有表現認識(NER:named entity recognition)モデルをユーザコンテキスト要素に適用する。このようなNERモデルは、トピックに基づいて、生データのうちの生テキスト(raw text)におけるエンティティを識別および分類することによって、ユーザコンテキスト情報を処理する。NERモデルの適用により、少なくとも1つの符号化されたトピック割り当てベクトル(topic assignment vector)が得られる。追加的な実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、テキスト内のトピックおよび関係を識別するために、ユーザコンテキスト要素に潜在ディリクレ配分法(LDA:latent Dirichlet allocation)を適用する。このような追加的な実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、生テキスト内で表現されるデータポイントをトピック分類するために、生データのうちの生テキストにLDAモデリングを適用する。LDAモデルの適用により、少なくとも1つの符号化されたトピック割り当てベクトルが得られる。さらなる実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、Bidirectional Encoder Representations from Transformers(BERT)をユーザコンテキスト要素に適用する。BERTを適用する際、クラウドサーバアプリケーションは、生データのうちの生テキストに、ニューラルネットワークアテンション(neural network attention)技術を利用するトランスフォーマベースのNLP(transformer-based NLP)を適用する。ニューラルネットワークアテンションを利用することにより、クラウドサーバアプリケーションは、生テキスト入力に関して文埋め込み(sentence embedding)を実行するために、生テキスト入力のうちの重要な要素に対するフォーカスを強化する。BERTモデルの適用により、文埋め込みに基づく少なくとも1つの符号化された実数ベクトル(real number vector)が得られる。様々な実施形態に関連して、文埋め込みは、文を実数ベクトルにマッピングするための一連の技術を包含する。
さらなる実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、ユーザコンテキスト情報に関連する連続するデータポイント間で機械学習(深層学習)ベースの接続を確立するために、リカレントニューラルネットワーク(RNN:recurrent neural network)モデルをユーザコンテキスト要素に適用する。RNNモデルの適用により、少なくとも1つの符号化特徴ベクトルがトピックと時系列の組み合わせを反映するようになる。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、生データに関連するテキスト要素またはより全般的なユーザコンテキスト情報に関して時系列パターンデータを記憶するように構成された長短期記憶リカレントニューラルネットワーク(LSTM-RNN:long short-term memory recurrent neural network)アーキテクチャを利用する。クラウドサーバアプリケーションは、時系列パターンデータを記憶する目的で、任意の態様としてLSTM-RNNモデリングを適用する。LSTM-RNNモデリングに関連して、クラウドサーバアプリケーションは、少なくとも1つのNLPモデルのうちの1つ以上に対する入力として使用可能な各ユーザコンテキスト要素について、時間に応じた使用特性を記憶する。経時的なユーザコンテキスト要素に関する使用特性に基づいて、クラウドサーバアプリケーションは、任意の態様として、LSTM-RNNデータを使用して、ユーザコンテキスト要素間のパターンを決定する。ユーザコンテキスト要素間で決定したパターンは、任意の態様として、1つ以上の以前に使用された(例えば、直近に使用された、または所定の期間内に最近使用された)アプリケーション、データタイプ、またはシステムリソースの経時的なユーザ使用状況を反映する。具体的には、LSTM-RNNモデリングを使用して、クラウドサーバアプリケーションは、任意の態様として、ユーザコンテキスト要素のうちの1つ以上に関する少なくとも1つのタイムスタンプ付きパターン(timestamped pattern)を導出し、したがって、タイムスタンプに基づいて、キャプチャしたデータ使用パターン、キャプチャしたアプリケーション使用パターン、もしくはキャプチャしたシステムリソース使用パターンまたはその組み合わせを識別する。LSTMモデルの適用により、符号化時系列パターンベクトルが得られ、さらに、LSTM-RNNモデリングの適用により、トピックと時系列の両方を反映した符号化特徴ベクトル情報が得られる。さらなる実施形態において、クラウドサーバアプリケーションは、生データのうちのユーザコンテキスト要素またはより全般的なユーザコンテキスト情報に対して、ゲート付きリカレントユニット(GRU:gated recurrent unit)アーキテクチャと併用してNLPを適用する。GRUの適用により、LSTMよりも少ないパラメータに基づく符号化時系列パターンベクトルが得られる。任意の態様として、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、上述した1つ以上のモデルのうちの1つ以上の特徴を組み合わせる。
さらなる実施形態において、クラウドサーバアプリケーションは、ステップ705で少なくとも1つのNLPモデルのうちのそれぞれのNLPモデルを適用して作成した特徴ベクトルの相対的な重要度を指定するために、複数の符号化特徴ベクトルの各々に重み値を割り当てる。例えば、クラウドサーバアプリケーションは、特定のシナリオにおいて、LDAモデルの適用よりもNEPモデルの適用の方が相対的な重要度が高いことを示すために、NEPに関連する符号化特徴ベクトルに相対的に高い重み値を割り当て、LDAに関連する符号化特徴ベクトルに相対的に低い重み値を割り当ててもよい。さらなる実施形態において、クラウドサーバアプリケーションは、ユーザによってアクセスされるアプリケーションタイプもしくはデータタイプ、ユーザによるアプリケーションアクセスもしくはデータアクセスの頻度、ユーザによるアプリケーションアクセスもしくはデータアクセスに関係するコンピューティングリソース使用量、もしくはユーザによるアプリケーションアクセスもしくはデータアクセスに関係する記憶パターン、またはその組み合わせに関連するデータ表現を導出することによって、複数の符号化特徴ベクトルを作成する。ステップ705に従って複数の符号化特徴ベクトルを作成することに関する方法は、図8を参照して説明する。
ステップ710にて、クラウドサーバアプリケーションは、ステップ705で作成した複数の符号化特徴ベクトルに少なくとも1つのクラスタリングアルゴリズムを適用することによって、数値トピック出力(numerical topical output)を取得する。ステップ710によれば、クラウドサーバアプリケーションは、数値トピック出力を得るために、複数の符号化特徴ベクトルに少なくとも1つのクラスタリングアルゴリズムを適用する。ステップ705で作成した複数の符号化特徴ベクトル、またはその要素は、少なくとも1つのクラスタリングアルゴリズムへの入力である。一実施形態において、クラウドサーバアプリケーションは、少なくとも1つのクラスタリングアルゴリズムを適用する前に、複数の符号化特徴ベクトルのうちの1つ以上を連結(concatenate)する。追加的な実施形態において、クラウドサーバアプリケーションは、少なくとも1つのクラスタリングアルゴリズムを適用した結果、それぞれの特徴について得られた数値トピック出力に基づいて、複数の符号化特徴ベクトルのうちの1つのそれぞれの特徴をそれぞれのトピックに関連付ける。例えば、クラウドサーバアプリケーションは、数値トピック出力値「1」が得られたそれぞれの特徴を、セキュリティ関連のトピックに関連付けることができ、数値トピック出力値「2」が得られたそれぞれの特徴をクライアントエンゲージメント(client engagement)関連のトピックに関連付けることができ、数値トピック出力値「3」が得られたそれぞれの特徴を量子コンピューティング関連のトピックに関連付けることができる。このような追加的な実施形態によれば、クラウドサーバアプリケーションは、ステップ705で作成したようなデータポイントを表す符号化特徴ベクトル内で表されるデータポイント特徴のトピック関連付けに基づいて、ユーザに関連する生データのうちのデータポイントを1つ以上のそれぞれのトピックに関連付ける。例えば、クラウドサーバアプリケーションは、生データのうちの一のデータポイントを、当該データポイントがセキュリティ関連のトピックおよびクライアントエンゲージメント関連のトピックに関連する特徴を有する(これは、このような特徴について得られたそれぞれの数値トピック出力値によって決定される)ことに基づいて、セキュリティ関連のトピックおよびクライアントエンゲージメント関連のトピックに関連付けることができる。このような追加的な実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、データポイントのそれぞれの特徴のそれぞれの数値トピック出力値を連結または他の方法で処理することによって、ステップ710に従って、生データのうちの一のデータポイントの数値トピック出力値を導出する。このようなデータポイントの数値トピック出力値は、任意の態様として、特徴ベクトル、すなわち、ステップ705で作成したデータポイントを表す符号化特徴ベクトルに対するクラスタリング由来の補足(clustering-derived supplement)として表される。さらなる実施形態において、クラウドサーバアプリケーションは、任意の態様として、数値トピック出力のそれぞれの値を、バイナリ形式またはワンホット符号化形式で符号化する。さらなる実施形態において、ステップ710に関連して適用される少なくとも1つのクラスタリングアルゴリズムは、k平均クラスタリングアルゴリズムを含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、期待値最大化(expectation-maximization)アルゴリズムを含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、階層的クラスタリングアルゴリズム、例えば、凝縮型階層的クラスタリング(agglomerative hierarchical clustering)を含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、平均シフトクラスタリング(mean shift clustering)アルゴリズムを含む。ステップ705~710ごとの符号化およびクラスタリングに従って、クラウドサーバアプリケーションは、ユーザコンテキスト情報のうちの特徴を数値トピック情報に関連付ける。そして、クラウドサーバアプリケーションは、このような数値トピック情報を利用して、ユーザから受信したファイルデータを処理および分類することができる。
以上をまとめると、方法700に従ってトピックコンテキストデータを導出することは、ユーザに関連する生データに少なくとも1つのNLPモデルを適用することによって、複数の符号化特徴ベクトルを作成することと、当該複数の符号化特徴ベクトルに少なくとも1つのクラスタリングアルゴリズムを適用することによって、数値トピック出力を得ることと、を含む。
図8は、複数の符号化特徴ベクトルを作成する方法800を示す図である。方法800は、1つ以上の実施形態に従って、方法700のステップ705におけるサブステップを提供するものである。方法800はまずステップ805にて、クラウドサーバアプリケーションが、ユーザによってアクセスされるアプリケーションタイプまたはデータタイプに基づいて、少なくとも1つのデータ表現を導出する。一実施形態において、符号化ベクトル表現は、符号化特徴ベクトルセットを含む。符号化特徴ベクトルセットは、1つ以上の符号化特徴ベクトルを含む。任意の態様として、クラウドサーバアプリケーションは、ワンホット符号化を介して、アプリケーションアクセス履歴に基づいてバイナリベクトル(例えば、ビット配列)を導出することによって、符号化特徴ベクトルセットを導出する。このような実施形態によれば、ワンホット符号化は、バイナリベクトル形式でのカテゴリ変数(categorical variables)の表現を可能にする。これに加えて、またはこれに代えて、クラウドサーバアプリケーションは、単語埋め込み(word embedding)を介して符号化特徴セットを導出する。様々な実施形態に関連して、単語埋め込みとは、比較的関連性の高い単語のそれぞれの数値が、比較的関連性の低い単語のそれぞれの数値よりも互いに値が近くなるように、コンテキストに基づいてテキスト単語にそれぞれの数値を割り当てることを指す。関連する実施形態において、クラウドサーバアプリケーションは、単語埋め込みを適用して、実数値ベクトル(real-valued vector)内で互いにより近い比較的関連性の高い単語を表す符号化特徴セットを導出する。関連する追加的な実施形態において、クラウドサーバアプリケーションは、単語埋め込みを適用して、ユーザコンテキスト情報に関連する、実数値ベクトル内で互いにより近い比較的関連性の高いデータタイプを表す符号化特徴セットを導出する。さらなる実施形態において、クラウドサーバアプリケーションは、データポイントを属性-値ペア形式(attribute-value pair format)のデータタイプに関連付ける。
ステップ810にて、クラウドサーバアプリケーションは、ユーザによるアプリケーションアクセスまたはデータアクセスの頻度に関連する少なくとも1つのデータ表現を導出する。一実施形態において、クラウドサーバアプリケーションは、特定のアプリケーションまたは特定のデータポイントに関するユーザのアクセスを、属性-値ペア形式で符号化する。このような属性-値ペア形式は、特定のアプリケーション/データポイントを、アプリケーション/データ使用の頻度、アプリケーション/データ使用の日付/時間、もしくはアプリケーション/データ使用の他の要素、またはその組み合わせ記述するメタデータスカラー値またはベクトル値に関連付けることができる。さらなる実施形態において、クラウドサーバアプリケーションは、特定のデータタイプに関するユーザアクセスを、属性-値ペア形式で符号化する。このような属性-値ペア形式は、特定のデータタイプを、データタイプ使用の頻度、データタイプ使用の日付/時間、もしくはデータタイプ使用の他の要素、またはその組み合わせを記述するメタデータベクトル値に関連付けることができる。
ステップ815にて、クラウドサーバアプリケーションは、ユーザによるアプリケーションアクセスもしくはデータアクセスに関係するコンピューティングリソース使用、もしくは、ユーザによるアプリケーションアクセスもしくはデータアクセスに関係する記憶パターン、またはその両方に関連する少なくとも1つのデータ表現を導出する。一実施形態において、クラウドサーバアプリケーションは、ユーザによるデータアクセスに関する過去の記憶パターンに関連する情報を収集する。例えば、クラウドサーバは、すべてのストレージ層にわたって頻繁に使用されるユーザアプリケーションデータの記憶を反映した記憶パターンを記録することができる。クラウドサーバアプリケーションは、任意の態様として、このようなリソース使用情報もしくは記憶パターン情報またはその両方を、標準化された符号化形式、例えば、バイナリベクタ形式もしくは属性-値ペア形式またはその両方で記憶する。クラウドサーバアプリケーションは、ステップ805~815で導出したデータ表現、またはその要素を、複数の符号化特徴ベクトルのうちの1つ以上に組み込む。様々な実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、ステップ805~815のサブセットを実行し、もしくは、任意の態様として、ステップ805~815を任意の順序で実行し、またはその両方を実行する。
以上をまとめると、方法800に従って複数の符号化特徴ベクトルを作成することは、ユーザによってアクセスされるアプリケーションタイプまたはデータタイプに基づいて少なくとも1つのデータ表現を導出することと、ユーザによるアプリケーションアクセスまたはデータアクセスの頻度に関連する少なくとも1つのデータ表現を導出することと、ユーザによるアプリケーションアクセスまたはデータアクセスに関係するコンピューティングリソース使用または記憶パターンに関連する少なくとも1つのデータ表現を導出することと、を含む。
図9は、複数のファイルデータ部分を導出する方法900を示す図である。方法900は、1つ以上の実施形態に従って、方法600のステップ610におけるサブステップを提供するものである。方法900はまずステップ905にて、クラウドサーバアプリケーションが、ステップ605に従って導出したトピックコンテキストデータを考慮して少なくとも1つのNLPモデルを適用することによって、ファイルデータ内のデータポイント間のトピックパターンを識別する。ステップ905に従って、クラウドサーバアプリケーションは、トピックパターンを識別するために、トピックコンテキストデータを考慮して少なくとも1つのNLPモデルを適用する。一実施形態において、クラウドサーバアプリケーションは、トピックコンテキストデータを考慮して、ファイルデータに関連するトピック情報を導出する。このような一実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、ファイルデータ内のデータポイントをトピックコンテキストデータ内のトピックまたはトピック群に関連付けることによって、ファイルデータ部分を識別する。具体的には、トピックコンテキストデータに基づいて、クラウドサーバアプリケーションは、ファイルデータ内のデータポイント間のトピックパターンを決定するために、少なくとも1つのNLPモデルをファイルデータに適用する。関連する実施形態において、クラウドサーバアプリケーションは、識別したトピックパターンに基づいて、ファイルデータのデータポイントのそれぞれの特徴をそれぞれのトピックに関連付ける。例えば、クラウドサーバアプリケーションは、ファイルデータのデータポイントの特徴と、セキュリティ関連トピックに関連するトピックコンテキストデータ内の対応する特徴との間にパターンを識別したことに応じて、このような特徴をこのようなセキュリティ関連トピックに関連付けることができる。このような関連する実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、ファイルデータのデータポイントを、このようなデータポイントの特徴のトピック関連付けに基づいて、それぞれのトピックに関連付ける。例えば、識別したトピックパターンに基づいて、それぞれのファイルデータのデータポイントの特徴がセキュリティ関連トピックおよびクライアントエンゲージメント関連トピックに関連付けられると決定したことに応じて、クラウドサーバアプリケーションは、それぞれのファイルデータのデータポイントをセキュリティ関連トピックおよびクライアントエンゲージメント関連トピックに関連付けることができる。
一実施形態において、ステップ905で少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、ファイルデータのうちのファイルデータ要素にNERモデルを適用する。このようなNERモデルは、トピックに基づいてエンティティを識別および分類することによって、トピックコンテキストデータを考慮してファイルデータから情報を抽出する。NERモデルを介したトピック識別に基づいて、クラウドサーバアプリケーションは、任意の態様として、ファイルデータに関係するトピックコンテキストデータ内のすべてのデータポイントまたはデータポイントのサブセットを識別する。さらなる実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、LDAを適用して、ファイルデータ内のテキスト間のトピックおよび関係を識別する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、ファイルデータ内で表現されるデータポイントをトピック分類するために、トピックコンテキストデータを考慮してファイルデータ要素にLDAモデリングを適用する。さらなる実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、トピックコンテキストデータを考慮して、ファイルデータ要素にBERTを適用する。BERTを適用する際、クラウドサーバアプリケーションは、ファイルデータ内のテキストに、ニューラルネットワークアテンション技術を利用するトランスフォーマベースのNLPを適用する。ニューラルネットワークアテンションを利用することにより、クラウドサーバアプリケーションは、生テキスト入力に関して文埋め込みを実行するために、生テキスト入力のうちの重要な要素に対するフォーカスを強化する。
さらなる実施形態において、少なくとも1つのNLPモデルを適用することに関連して、クラウドサーバアプリケーションは、トピックコンテキストデータを考慮して、ファイルデータに関連する連続するデータポイント間で機械学習ベースの接続を確立するために、RNNモデルを適用する。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、ファイルデータ要素に関して時系列パターンデータを記憶するように構成されたLSTM-RNNアーキテクチャを利用する。クラウドサーバアプリケーションは、時系列パターンデータを記憶する目的で、任意の態様としてLSTM-RNNモデリングを適用する。LSTM-RNNモデリングに関連して、クラウドサーバアプリケーションは、少なくとも1つのNLPモデルのうちの1つ以上に対する入力として使用可能な各ファイルデータ要素について、時間に応じた使用特性を記憶する。経時的なファイルデータ要素に関する使用特性に基づいて、クラウドサーバアプリケーションは、任意の態様として、LSTM-RNNデータを使用して、ファイルデータ要素間のパターン(例えば、ファイルデータパターンとユーザ使用パターンとの間で時間の経過とともに決定された関係)を予測する。具体的には、LSTM-RNNモデリングを使用して、クラウドサーバアプリケーションは、任意の態様として、ファイルデータ要素のうちの1つ以上に関する少なくとも1つのタイムスタンプ付きパターンを導出する。クラウドサーバアプリケーションは、任意の態様として、ファイルデータ要素のうちの1つ以上と、1つ以上の以前に使用されたアプリケーション、データポイント、またはシステムリソースとの間の関係を識別し、したがって、このような1つ以上のファイルデータ要素を、1つ以上の以前に使用されたアプリケーション、データポイント、またはシステムリソースに関して記録された経時的な使用パターンに関連付けることができる。したがって、ファイルデータ部分を導出することに関連して、クラウドサーバアプリケーションは、このような使用パターンに少なくとも部分的に基づいて、このような1つ以上のファイルデータ要素を1つ以上のファイルデータ部分に関連付けることができる。例えば、ファイルデータ要素が、ユーザによって以前に使用された(例えば、直近に使用された、または所定の時間内に最近使用された)アプリケーションに関連付けられることを決定したことに応じて、クラウドサーバアプリケーションは、このようなファイルデータ要素を、このような以前に使用されたアプリケーションとの互換性(compatibility)または他の関連付けを反映する1つ以上のファイルデータ部分に関連付けることができる。さらなる実施形態において、クラウドサーバアプリケーションは、GRUアーキテクチャと併用して、トピックコンテキストデータを考慮してファイルデータ要素にNLPを適用する。クラウドサーバアプリケーションは、任意の態様として、NLP技術の適用時に、上述したモデルのうちの1つ以上の特徴を組み合わせる。トピックコンテキストデータを考慮して少なくとも1つのNLPモデルを適用することに基づいて、クラウドサーバアプリケーションは、ファイルデータ内の各データポイントを1つ以上の識別したトピックパターンに関連付ける。
ステップ910にて、クラウドサーバアプリケーションは、ステップ905で識別したトピックパターンに基づいて少なくとも1つのクラスタリングアルゴリズムを適用することによって、ファイルデータ内のデータポイントを複数のファイルデータ部分に割り当てる。ステップ910によれば、クラウドサーバアプリケーションは、ファイルデータ内のデータポイントを複数のファイルデータ部分に割り当てるために、識別したトピックパターンに基づいて少なくとも1つのクラスタリングアルゴリズムを適用する。ファイルデータ内のデータポイントに関連する識別したトピックパターン(任意の態様として、符号化特徴ベクトル形式で表される)に基づいて、クラウドサーバアプリケーションは、データポイント間のトピックパターン相関関係に基づいてデータポイントを複数のファイルデータ部分に割り当てるために、少なくとも1つのクラスタリングアルゴリズムを適用する。クラウドサーバアプリケーションは、任意の態様として、各ファイルデータ部分内のそれぞれのデータポイントが、少なくとも1つのクラスタリングアルゴリズムを介して決定された特定のトピックパターン相関関係を有するように、各ファイルデータ部分を編成する。一実施形態において、ステップ910に関連して適用される少なくとも1つのクラスタリングアルゴリズムは、k平均クラスタリングアルゴリズムを含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、期待値最大化アルゴリズムを含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、階層的クラスタリングアルゴリズム、例えば、凝縮型階層的クラスタリングを含む。これに加えて、またはこれに代えて、少なくとも1つのクラスタリングアルゴリズムは、平均シフトクラスタリングアルゴリズムを含む。さらなる実施形態において、クラウドサーバアプリケーションは、複数のファイルデータ部分の各々に、数値(例えば、整数値、バイナリ値、またはワンホット符号化値)を割り当てる。任意の態様として、クラウドサーバアプリケーションは、ステップ605で導出したトピックコンテキストデータ内の対応する要素に関連するそれぞれの数値に基づいて、複数のファイルデータ部分の各々に数値を割り当てる。例えば、ステップ710に関して説明した上記の例に基づいて、クラウドサーバアプリケーションは、セキュリティに関係するファイルデータのデータポイントおよびその特徴を含むファイルデータ部分に数値「1」を割り当ててもよく、クライアントエンゲージメントに関係するデータポイントおよびその特徴を含むファイルデータ部分に数値「2」を割り当ててもよく、量子コンピューティングに関係するデータポイントおよびその特徴を含むファイルデータ部分に数値「3」を割り当ててもよい。それぞれのファイルデータ部分が複数のトピックに関係するファイルデータのデータポイントおよびその特徴を含むと決定したことに応じて、クラウドサーバアプリケーションは、任意の態様として、複数のトピックに対応する複数の数値をこのようなファイルデータ部分に割り当てるか、あるいは、複数のトピックのうち最も関連性の高いトピックに対応する単一の数値をこのようなファイルデータ部分に割り当てる。
以上をまとめると、方法900に従って複数のファイルデータ部分を導出することは、トピックコンテキストデータを考慮して少なくとも1つのNLPモデルを適用することによって、ファイルデータ内のデータポイント間のトピックパターンを識別することと、識別したトピックパターンに基づいて少なくとも1つのクラスタリングアルゴリズムを適用することによって、ファイルデータ内の当該データポイントを複数のファイルデータ部分に割り当てることと、を含む。
図10は、ファイルデータを分割する方法1000を示す図である。方法1000は、1つ以上の実施形態に従って、方法500のステップ520におけるサブステップを提供するものである。方法1000はまずステップ1005にて、クラウドサーバアプリケーションが、ファイルデータの別々の部分を、多層ストレージインフラストラクチャのクラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層の間で記憶する。様々な実施形態に関連して、別々の部分を記憶することは、冗長でない部分(non-redundant parts)を記憶することを意味する。一実施形態において、クラウドサーバアプリケーションは、ストレージ層間で分割されたデータをそれぞれのストレージ層においてバケットに記憶する。このような実施形態によれば、クラウドサーバアプリケーションは、クラウド層のクラウドサーババケットにクラウドデータを記憶し、フォグ層のフォグサーババケットにフォグデータを記憶し、ローカル層のローカルマシンバケットにローカルデータを記憶する。任意の態様として、クラウドサーバアプリケーションは、バケットキー値(bucket key value)に基づいてそれぞれのバケットにインデックスを付け、同じバケットキー値を有するファイルデータ部分またはサブ部分が単一のバケットに記憶されるようにする。それぞれのバケットのバケットキー値は、任意の態様として、ファイルデータ部分またはサブ部分に割り当てられたクラス値に対応するか、または他の方法で関係する。クラウドサーバアプリケーションは、任意の態様として、各バケットに関するアクセス制御データを指定または取得する。バケットのアクセス制御は、それぞれのアクセス制御リスト(ACL:access control list)を介してバケットに対して指定してもよい。さらなる実施形態において、クラウドサーバのバケットは、プライマリバケット、すなわち、ステップ510で考案したデータ分散技術に従ってクラウドサーバアプリケーションがファイルデータの分割を開始する場所である。このようなさらなる実施形態によれば、クラウドサーバアプリケーションは、ファイルデータの別々の部分を他のストレージ層に対応するバケットに記憶するために、プライマリバケットに位置するファイルデータに対してそれぞれの分割を実行する。クラウドサーバアプリケーションは、任意の態様として、それぞれの分割を連続して実行するか、あるいはそれぞれの分割を同時に実行する。代替の実施形態において、クラウドサーバアプリケーションは、ステップ1005にて、クラウド層、フォグ層、およびローカル層に加えて、多層ストレージインフラストラクチャの1つ以上の中間層間でファイルデータの別々の部分を記憶する。このような代替の実施形態によれば、クラウドサーバアプリケーションは、任意の態様として、中間層に記憶するように分類されたデータを、当該中間層に関連付けられた中間バケットに記憶する。
ステップ1010にて、クラウドサーバアプリケーションは、多層ストレージインフラストラクチャのクラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層のそれぞれの間の冗長依存関係(redundant dependencies)を記憶する。層間で記憶される冗長依存関係は、ファイルデータまたはその部分/サブ部分の実行に関係するライブラリを含む。これに加えて、またはこれに代えて、冗長依存関係は、ファイルデータまたはその部分/サブ部分に関連するアプリケーションパッケージを含む。これに加えて、またはこれに代えて、冗長依存関係は、例えばファイルデータの復元または転送を容易にするために、それぞれのファイルデータ部分またはサブ部分をリンクする情報を含む。代替の実施形態において、ステップ1010にて、クラウドサーバアプリケーションは、クラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層に加えて、多層ストレージインフラストラクチャの1つ以上の中間層間の冗長依存関係を記憶する。
以上をまとめると、方法1000に従ってファイルデータを分割することは、クラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層の間でファイルデータの別々の部分を記憶することと、クラウドコンピューティング層、フォグコンピューティング層、およびローカルコンピューティング層のそれぞれの間の冗長依存関係を記憶することと、を含む。
図11は、データアクセス要求を認証する方法1100を示す図である。方法1100は、1つ以上の実施形態に従って、方法500のステップ530におけるサブステップを提供するものである。方法1100はまずステップ1105にて、クラウドサーバアプリケーションが、データアクセス要求から識別情報およびパスワードを解析する。ステップ1110にて、クラウドサーバアプリケーションは、ステップ1105で解析した識別情報に基づいて、ユーザに予め関連付けられた記憶されたハッシュ値をフェッチする。一実施形態において、クラウドサーバアプリケーションは、マネージドサービスドメインに関連付けられたディレクトリサーバシステムと連携することによって、記憶されたハッシュ値を検索して取得する。ステップ1115にて、クラウドサーバアプリケーションは、解析したパスワードに対して、記憶されたハッシュ値に対応する1つ以上の暗号ハッシュ関数を適用することによって、ステップ1105で解析したパスワードをハッシュする。一実施形態において、クラウドサーバアプリケーションは、ディレクトリサーバシステムと通信して、1つ以上の暗号ハッシュ関数の適用を容易にする。ステップ1120にて、クラウドサーバアプリケーションは、パスワードハッシュの結果が記憶されたハッシュ値と一致するかどうかを判定する。パスワードハッシュの結果が、記憶されたハッシュ値と一致すると判定したことに応じて、クラウドサーバアプリケーションはステップ1125にて、データアクセス要求の認証を完了する。逆に、パスワードハッシュの結果が記憶されたハッシュ値と一致しないと判定したことに応じて、クラウドサーバアプリケーションは、データアクセス要求の認証を完了することなく、方法1100の最後に進む。
以上をまとめると、方法1100に従ってデータアクセス要求を認証することは、データアクセス要求から識別情報およびパスワードを解析することと、解析した当該識別情報に基づいて、ユーザに予め関連付けられた記憶されたハッシュ値をフェッチすることと、当該記憶されたハッシュ値に対応する1つ以上の暗号ハッシュ関数を当該解析したパスワードに適用することによって、当該パスワードをハッシュすることと、当該パスワードハッシュの結果が当該記憶されたハッシュ値と一致すると判定した場合に、データアクセス要求の認証を完了することと、を含む。
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、開示した実施形態に限定することを意図したものではない。記載した実施形態に対するあらゆる種類の変更および均等な構成が、本発明の保護範囲内に含まれるべきである。したがって、本発明の範囲は、発明を実施するための形態に関連して、以下に続く特許請求の範囲に従って最も広く説明されるべきであり、すべての可能性のある均等な変形および均等な構成を包含するべきである。当業者には明らかなように、記載した各実施形態の範囲から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、各実施形態の原理、実際の用途、もしくは市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に記載する各実施形態を理解できるように選択されたものである。