(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって、
アプリケーションサーバを介して、サービスプロバイダから仮想コンテナの仕様を受信する工程であって、前記仕様は、分析構成要素と、データ入来パラメータと、構成情報と、を含み、前記アプリケーションサーバは、前記仮想コンテナから分離しており、前記構成情報は、ソフトウェア定義ネットワークレイアウトと、ストレージ必要条件と、を含む、工程と、
前記受信した仕様に基づき、前記分析構成要素を含む仮想コンテナを生成する工程であって、前記仮想コンテナは、前記データ入来パラメータに従ってデータにアクセスするように構成されており、前記仮想コンテナは、前記仕様に含まれる前記構成情報に従って更に構成されている、工程と、
前記サービスプロバイダに関連するサービスの第１の顧客を認証する工程と、
前記第１の顧客を認証する工程に応じて、前記仮想コンテナに、前記第１の顧客に関連する第１のデータリポジトリからデータを受信することを許可する工程であって、前記仮想コンテナは、無許可のシステムへのアクセス及び無許可のシステムからのアクセスを制限するように構成されており、その結果前記データは、前記仮想コンテナにそこでの分析のために受信され得るが、前記仮想コンテナから外へ送信することができない、工程と、を含む、方法。
【請求項２】
前記データ入来パラメータが、バッチデータ伝送又はストリーミングデータ伝送を指定する、請求項１に記載の方法。
【請求項３】
前記サービスプロバイダに関連するサービスの第２の顧客を認証する工程と、
前記第２の顧客を認証する工程に応じて、第２の仮想コンテナに、前記第２の顧客に関連する第２のデータリポジトリから第２のデータを受信することを許可する工程であって、前記第２の仮想コンテナは、前記第２のデータが前記第２の仮想コンテナにそこでの分析のために受信され得るが、前記第２の仮想コンテナと前記仮想コンテナとの間で移動できないように構成されている、工程と、を更に含む、請求項１に記載の方法。
【請求項４】
前記分析構成要素が、仮想マシンである、請求項１に記載の方法。
【請求項５】
前記構成情報が、前記分析構成要素間のネットワーク構成を含む、請求項１に記載の方法。
【請求項６】
前記仕様が、リソースを更に指定し、前記仮想コンテナは、前記指定されたリソースを含み、
前記仕様が、データを記憶する前記仮想コンテナ内部のリポジトリを含む、請求項１に記載の方法。
【請求項７】
前記仮想コンテナが、前記第１のデータリポジトリからデータを受信するように構成されているが、前記第１のデータリポジトリ内に記憶するために前記第１のデータリポジトリにデータを送信するように構成されていない、請求項１に記載の方法。
【請求項８】
命令を記憶する少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体であって、
前記命令は、少なくとも１つのプロセッサによって前記少なくとも１つの非一時的なコンピュータ読み取り可能記憶媒体から読み取り可能であり、したがって前記少なくとも１つのプロセッサに、
アプリケーションサーバを介して、サービスプロバイダから仮想コンテナの仕様を受信することであって、前記仕様は、分析構成要素と、データ入来パラメータと、構成情報と、を含み、前記アプリケーションサーバは、前記仮想コンテナから分離しており、前記構成情報は、ソフトウェア定義ネットワークレイアウトと、ストレージ必要条件と、を含む、ことと、
前記受信した仕様に基づき、前記分析構成要素を含む仮想コンテナを生成することであって、前記仮想コンテナは、前記データ入来パラメータに従ってデータにアクセスするように構成されており、前記仮想コンテナは、前記仕様に含まれる構成情報に従って更に構成されている、ことと、
前記サービスプロバイダに関連するサービスの第１の顧客を認証することと、
前記第１の顧客を認証することに応じて、前記仮想コンテナに、前記第１の顧客に関連する第１のデータリポジトリからデータを受信することを許可することであって、前記仮想コンテナは、無許可のシステムへのアクセス及び無許可のシステムからのアクセスを制限するように構成されており、その結果前記データは、前記仮想コンテナにそこでの分析のために受信され得るが、前記仮想コンテナから外へ送信することができない、ことと、を行うように動作させるように構成されている、命令と、を含む、少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項９】
前記データ入来パラメータが、バッチデータ伝送又はストリーミングデータ伝送を指定する、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１０】
前記命令が、前記少なくとも１つのプロセッサに、
前記サービスプロバイダに関連するサービスの第２の顧客を認証することと、
前記第２の顧客を認証する工程に応じて、第２の仮想コンテナに、前記第２の顧客に関連する第２のデータリポジトリから第２のデータを受信することを許可することであって、前記第２の仮想コンテナは、前記第２のデータが前記第２の仮想コンテナにそこでの分析のために受信され得るが、前記第２の仮想コンテナと前記仮想コンテナとの間で移動できないように構成されている、ことと、を行うように動作させるように更に構成されている、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１１】
前記分析構成要素が、仮想マシンである、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１２】
前記構成情報が、前記分析構成要素間のネットワーク構成を含む、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１３】
前記仕様が、リソースを更に指定し、前記仮想コンテナは、前記指定されたリソースを含む、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１４】
前記仕様が、データを記憶する前記仮想コンテナ内部のリポジトリを含む、請求項１３に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１５】
前記仮想コンテナが、前記第１のデータリポジトリからデータを受信するように構成されているが、前記第１のデータリポジトリ内に記憶するために前記第１のデータリポジトリにデータを送信するように構成されていない、請求項８に記載の少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本特許出願は、２０１５年１０月６日に出願された米国特許出願番号第１４／８７６，４０３号に対する優先権を主張し、それは、本明細書に全体にわたり参照により組み込まれる。
【技術分野】
【０００２】
本開示は、概ねデータ分析に関し、より具体的には仮想プライベートコンテナを生成するための技法に関する。
【背景技術】
【０００３】
データリポジトリが、複数のデータセットを中心に設計された中央サービスと共に次第に遠隔地に移動するにつれて、顧客らは、データのセキュリティについてますます関心を持つようになっている。データ漏洩は、前例のないことではなく、環境が、適切にサニタイズされず、保護されていない場合は、顧客データの意図しないアクセス及び悪意のあるアクセスの両方が、発生することがある。
【０００４】
これらの問題は、第三者機関による付加価値分析の存在で更に悪化する。様々なセキュリティ及び許可の混乱は、例えば、顧客が、特定のサードパーティのツールを利用して彼らのセキュアデータを分析したいと考える場合に生じることがある。データを引き出し、アクセスしてサードパーティに渡すこと、又は更に悪いことにサードパーティにデータリポジトリへのユーザの独自の許可証明書を提供することは、データ漏洩又は破損のリスクを大きく増大させ、それ自体に価値があり得る分析よりも問題に有利な状況を提供する恐れがある。
【０００５】
この理由により、サービスプロバイダは、データ環境を顧客のニーズに合わせるためにかなりの工数を費やす。これらのカスタム環境は、カスタム環境を作ることに関連した人件費のために高額であるだけでなく、カスタム環境におけるユーザエラーが悪用可能な脆弱性、つまりデータ漏洩の原因となるアクセスエラーをもたらさないという特別な保証はない。
【０００６】
上記の観点から、５つのオフサイトリポジトリに記憶されたデータへのカスタマイズされたアクセスについて、現在の技法に関連する重大な問題と欠点が起こり得ることが理解できるであろう。
【発明の概要】
【０００７】
仮想プライベートコンテナを生成する技法が開示される。一実施形態では、技法は、内蔵型ソフトウェア環境を定義する仮想コンテナとして実現されてもよく、仮想コンテナは、コンテナ内のデータ上で指定した分析機能を実行するように構成されている、コンテナの内蔵型ソフトウェア環境内で実行するために分離されている、１つ以上の分析構成要素と、特定のユーザを識別し、認証し、１つ以上の分析構成要素によって生成された分析結果を提供するように構成されているインタフェースと、仮想コンテナの外部の１つ以上のセキュアデータからデータを受信するように構成されており、１つ以上の分析構成要素が使用するために特定のユーザと関連しているゲートウェイと、を含む。
【０００８】
本実施形態の他の態様によれば、仮想コンテナは、無許可のシステムへのアクセス及び無許可のシステムからのアクセスを制限するように構成され得る。
【０００９】
本実施形態の他の態様によれば、１つ以上の分析構成要素は、仮想マシンであり得る。
【００１０】
本実施形態の他の態様によれば、インタフェースは、顧客に提供されるアプリケーションへデータを提供し得る。
【００１１】
本実施形態の他の態様によれば、仮想コンテナは、仮想コンテナテンプレートから生成され得る。仮想コンテナテンプレートは、顧客に対してデータ分析を提供するサードパーティサービスプロバイダによる仕様に基づいて生成され得る。テンプレートの仕様は、１つ以上の分析構成要素を含み得る。
【００１２】
本実施形態の更なる態様によれば、コンテナは、サードパーティサービスプロバイダからのデータ分析を使用するという顧客の決定に基づいて、仮想コンテナテンプレートから生成され得る。
【００１３】
別の実施形態によれば、技法は、サービスプロバイダから仮想コンテナの仕様を受信する工程であって、仕様は、分析構成要素と、データ入来パラメータと、構成情報と、を含む、工程と、受信した仕様に基づき、分析構成要素を含む仮想コンテナを生成する工程であって、仮想コンテナは、データ入来パラメータに従ってデータにアクセスするように構成され、仮想コンテナは、指定した構成情報に従って構成される、工程と、を含むコンピュータ生成方法として実現され得る。仮想コンテナは、無許可のシステムへのアクセス及び無許可のシステムからのアクセスを制限するように構成され得る。
【００１４】
本実施形態の他の態様によれば、データ入来パラメータは、ストリーミングデータ伝送を指定してもよいか、又はバッチデータ伝送を指定してもよい。
【００１５】
本実施形態の他の態様によれば、方法は、サービスプロバイダに関連するサービスの第１の顧客を認証する工程と、第１の顧客を認証する工程に応じて、仮想コンテナに、第１の顧客に関連するセキュアデータへのアクセスを許可する工程と、サービスプロバイダに関連するサービスの第２の顧客を認証する工程と、第２の顧客を認証する工程に応じて、仮想コンテナに、第２の顧客に関連するセキュアデータへのアクセスを許可する工程と、を更に含んでもよく、その結果仮想コンテナは、両方の顧客に関連するデータへのアクセスを有する。
【００１６】
本実施形態の他の態様によれば、分析構成要素は、仮想マシンであり得る。
【００１７】
本実施形態の他の態様によれば、構成情報は、分析構成要素間のネットワーク構成を含み得る。
【００１８】
本実施形態の他の態様によれば、仕様は、リソースを更に指定することができ、生成された仮想コンテナは、指定されたリソースを含む。
【００１９】
本実施形態の更なる態様によれば、仕様は、データを記憶する仮想コンテナ内部のリポジトリを含み得る。
【００２０】
別の実施形態によれば、技法は、少なくとも１つのプロセッサ読み取り可能な記憶媒体及び少なくとも１つの媒体上に記憶された命令を含む製造物品として実現され得る。命令は、少なくとも１つのプロセッサによって少なくとも１つの媒体から読み取り可能であり、したがって上述の方法の工程のうちいずれか及び全てを実行する（ｃａｒ）’ｏｕｔ）ように、少なくとも１つのプロセッサを動作させるように構成されていてもよい。
【００２１】
別の実施形態によれば、技法は、ネットワークに通信可能に連結された１つ以上のプロセッサを含むシステムとして実現されてもよく、１つ以上のプロセッサは、上記実施形態のいずれかに関して記載された工程のいずれか及び全てを実行するように構成される。
【００２２】
以下、添付の図面に示されるように、特定の実施形態を参照して本開示を更に詳細に説明する。本開示は特定の実施形態を参照して以下に説明されるが、本開示がそれに限定されないことを理解されたい。本明細書中の教示に接する機会のある当業者であれば、他の使用分野のみならず、追加的な実施、変形例、及び実施形態も認めるであろうし、それらは、本明細書中に記載される本開示の範囲に含まれ、本開示の重要な有用性に関するものである。
【図面の簡単な説明】
【００２３】
本開示のより完全な理解を促すために、添付の図面を参照されたい。同様の要素には、同様の数字が付される。これらの図面は、本開示を限定するものとして解釈するべきではなく、単に例示することだけを意図している。
【図１】本開示の実施形態によるネットワークアーキテクチャを示すブロック図である。
【図２】本開示の実施形態によるコンピュータシステムを示すブロック図である。
【図３】本開示の実施形態による仮想プライベートコンテナ（ＶＰＣ）生成モジュールを図示するブロック図である。
【図４】本開示の実施形態によるＶＰＣを示すブロック図である。
【図５】本開示の実施形態によるＶＰＣ生成の方法を示す。
【発明を実施するための形態】
【００２４】
本開示の実施形態は、機密のテレメトリックデータへの安全なカスタマイズされたアクセスを提供するための自動サービスを説明する。顧客データに基づいた分析を提供したいと考えるサービスプロバイダの場合、プロバイダは、サービスのデータ分析のための必要条件の全てを満たす仮想プライベートコンテナ（ＶＰＣ）についてデータアグリゲータに仕様を提出することができる。続けて、サービスを使用したいと考えるデータ提供者は、データアグリゲータに許可を提供することができ、ユーザのデータに対して安全にアクセスする要求された仕様によるＶＰＣをもたらす。それぞれの関連する顧客について、データはＶＰＣに入り、それが今度は結果を顧客に伝達する。ＶＰＣは、データアクセス制限をバイパスし、データをコピー又は再送する手段としてＶＰＣを不適切に使用することができないようなデータ流出上の制限を含む。
【００２５】
システムは、環境必要条件の完全なリストを含むアプリケーションの仕様を受信し、そのリストには、ソフトウェア定義ネットワークレイアウト、アプリケーションを作成する仮想マシン（ＶＭ）イメージのリスト、それぞれ必要なＶＭのＶＭメモリ及びＣＰＵ仕様、ストレージ必要条件（ダイレクト又はオブジェクトストレージ）、アプリケーションがこのデータへのストリーミングアクセス及び／又はバッチアクセスを必要とするかどうかと共に、アプリケーションがアクセスを必要とする特定のテレメトリックスキーマタイプの詳細リスト（例えば、ＦＷスキーマ、ＡＶスキーマ）が挙げられる。システムは、データ入来及び流出に関する非常に明確なルールによって定められた必要条件に適合する仮想プライベートコンテナのインスタンスを生成する。要求されたデータは、ＶＰＣにインポートされる予め決められた基準にマッチする必要があり、大量データのエクスポートは完全に禁止される。適切に認証されたユーザ及び／又はサービスが、安全な方法で分析結果を検索できるようにするＶＰＣから、事前定義されたインタフェースの特定のセットのみが露出することになる。データは、ＶＰＣの領域内で自由に操作され得るが、ＶＰＣ間でデータを移動させるための機構又は、ＶＰＣから大規模システムへ結果を再アップロードするための機構はない。したがって、それぞれのクライアントの分析能力は最大化し、一方でセキュリティに対する脅威は最小化する。
【００２６】
図１は、本開示の実施形態によるネットワークアーキテクチャ１００を示すブロック図である。図１は、ネットワークアーキテクチャ１００の簡略図であり、図中に示されていない付加的な要素を含んでもよい。ネットワークアーキテクチャ１００は、クライアントシステム１１０、１２０及び１３０、並びにサーバ１４０Ａ〜１４０Ｎ（これらの各々の１つ以上は図２に示すコンピュータシステム２００を用いて実装されてもよい）を含んでもよい。クライアントシステム１１０、１２０及び１３０は、ネットワーク１５０に通信可能に連結することができる。サーバ１４０Ａは、記憶装置１６０Ａ（１）〜（Ｎ）と通信可能に連結されてもよく、サーバ１４０Ｂは、記憶装置１６０Ｂ（１）〜（Ｎ）と通信可能に連結されてもよい。サーバ１４０Ａ及び１４０Ｂは、ＳＡＮ（ストレージエリアネットワーク）ファブリック１７０と通信可能に連結することができる。ＳＡＮファブリック１７０は、サーバ１４０Ａ及び１４０Ｂ、並びにネットワーク１５０を介しクライアントシステム１１０、１２０及び１３０により、記憶装置１８０（１）〜（Ｎ）へのアクセスをサポートすることができる。
【００２７】
図２のコンピュータシステム２００を参照すると、モデム２４７、ネットワークインタフェース２４８、又はいくつかの他の方法により、１つ若しくは複数のクライアントシステム１１０、１２０及び１３０からネットワーク１５０への接続を提供することができる。クライアントシステム１１０、１２０及び１３０は、例えば、ウェブブラウザ又はその他のクライアントソフトウェア（図示せず）により、サーバ１４０Ａ又は１４０Ｂの情報にアクセスすることもできる。このようなクライアントにより、クライアントシステム１１０、１２０及び１３０は、サーバ１４０Ａ若しくは１４０Ｂ、又は記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）、及び／若しくは１８０（１）〜（Ｎ）のいずれかによりホストされるデータにアクセスすることが可能になる。
【００２８】
ネットワーク１５０及び１９０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、セルラーネットワーク、衛星ネットワーク、又はクライアント１１０、１２０及び１３０、サーバ１４０、並びにネットワーク１５０及び１９０と通信可能に連結されるその他のデバイスとの間の通信を可能にするその他のネットワークであってもよい。ネットワーク１５０及び１９０は、スタンドアロンネットワークとして、又は互いに協働して作動する、１つ又は任意の数の、上述した例示的なタイプのネットワークを更に含むことができる。ネットワーク１５０及び１９０は、それらが通信可能に連結される１つ以上のクライアント又はサーバの１つ以上のプロトコルを利用することができる。ネットワーク１５０及び１９０は、ネットワークデバイスの１つ以上のプロトコルに、その他のプロトコルから又はその他のプロトコルへ変換することができる。ネットワーク１５０及び１９０は、それぞれ１つのネットワークとして示されているが、１つ以上の実施形態によれば、ネットワーク１５０及び１９０は、それぞれ相互接続された複数のネットワークを含んでもよいことを理解されたい。
【００２９】
記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）及び／又は１８０（１）〜（Ｎ）は、ネットワークアクセス可能なストレージであってもよく、サーバ１４０Ａ又は１４０Ｂに対しローカル、リモート又はこれらの組み合わせであってもよい。記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）及び／又は１８０（１）〜（Ｎ）は、レイド（「ＲＡＩＤ」）、磁気テープ、ディスク、ストレージエリアネットワーク（「ＳＡＮ」）、インターネットスモールコンピュータシステムインタフェース（「ｉＳＣＳＩ」）ＳＡＮ、ファイバチャネルＳＡＮ、コモンインターネットファイルシステム（「ＣＩＦＳ」）、ネットワークアタッチトストレージ（「ＮＡＳ」）、ネットワークファイルシステム（「ＮＦＳ」）、光ベースのストレージ、又はその他のコンピュータアクセス可能なストレージを利用することができる。記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）及び／又は１８０（１）〜（Ｎ）は、バックアップ又はアーカイブの目的で使用することができる。更に、記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）及び／又は１８０（１）〜（Ｎ）は、多層ストレージ環境の一部として実装され得る。
【００３０】
いくつかの実施形態によれば、クライアント１１０、１２０及び１３０は、ネットワーク１５０への無線又は有線接続を介して連結される、スマートフォン、ＰＤＡ、デスクトップコンピュータ、ノート型パソコン、サーバ、その他のコンピュータ、又はその他のデバイスであってもよい。クライアント１１０、１２０及び１３０は、ユーザ入力、データベース、ファイル、ウェブサービス及び／又はアプリケーションプログラミングインタフェースからデータを受信することができる。いくつかの実装では、クライアント１１０、１２０、及び１３０は、具体的には、スマートフォン又はタブレットなどのネットワーク対応モバイル装置であってもよい。
【００３１】
サーバ１４０Ａ及び１４０Ｂは、アプリケーションサーバ、アーカイブプラットフォーム、バックアップサーバ、ネットワーク記憶装置、メディアサーバ、電子メールサーバ、文書管理プラットフォーム、エンタープライズサーチサーバ、又はネットワーク１５０と通信可能に連結されたその他のデバイスであってもよい。サーバ１４０Ａ及び１４０Ｂは、記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）及び／又は１８０（１）〜（Ｎ）のいずれかをアプリケーションデータ、バックアップデータ又はその他のデータの記憶のため利用することができる。サーバ１４０Ａ及び１４０Ｂは、クライアント１１０、１２０及び１３０とバックアッププラットフォーム、バックアッププロセス及び／又は記憶装置との間で送受信されるデータを処理することができる、アプリケーションサーバなどのホストであってもよい。いくつかの実施形態によれば、サーバ１４０Ａ及び１４０Ｂは、データのバックアップ及び／又はアーカイブのために使用されるプラットフォームであってもよい。データの１つ以上の部分は、適用されたバックアップポリシー及び／又はアーカイブ、データソースに関連する属性、バックアップのために利用可能なスペース、データソースにおいて利用可能なスペース、又は他の要因に基づいて、バックアップ又はアーカイブされてもよい。
【００３２】
いくつかの実施形態によれば、ＶＰＣ生成モジュール１５６は、サーバ１４０Ａなどネットワークの中心の場所に存在し得る。例えば、サーバ１４０Ａは、サーバ、ファイアウォール、ゲートウェイ、又はシステム及びネットワークセキュリティ要素の管理を支援するために１つ以上のアクションを実行することができる、その他のネットワーク要素であってもよい。いくつかの実施形態によれば、ネットワーク１９０は、外部ネットワークであってもよく（例えば、インターネット）、サーバ１４０Ａは、１つ以上の内部構成要素とクライアントと外部ネットワークとの間のゲートウェイ又はファイアウォールであってもよい。いくつかの実施形態によれば、ＶＰＣ生成モジュール１５６及びそれにより生成された仮想プライベートコンテナを含むリソース参照の分析及び承認は、クラウドコンピューティング環境の一部として実装され得る。
【００３３】
図２は、本開示の実施形態によるコンピュータシステム２００のブロック図である。コンピュータシステム２００は、本開示に従って技術を実施するのに好適である。コンピュータシステム２００は、コンピュータシステム２００の主要なサブシステムを相互接続することができるバス２１２を含むことができ、主要なサブシステムには、中央処理装置２１４、システムメモリ２１７（例えば、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリーメモリ）、フラッシュＲＡＭなど）、入力／出力（Ｉ／Ｏ）コントローラ２１８、オーディオ出力インタフェース２２２を介するスピーカーシステム２２０などの外部オーディオ装置、ディスプレイアダプタ２２６を介するディスプレイ画面２２４などの外部装置、シリアルポート２２８及び２３０、キーボード２３２（キーボードコントローラ２３３を介してインタフェース接続される）、ストレージインタフェース２３４、印刷のためのデータ及び／又は画像を受信するために動作するプリンタ２３７、ファイバチャネルネットワーク２９０と接続するために動作するホストバスアダプタ（ＨＢＡ）インタフェースカード２３５Ａ、ＳＣＳＩバス２３９と接続するために動作するホストバスアダプタ（ＨＢＡ）インタフェースカード２３５Ｂ、並びに光ディスク２４２を受けるために動作する光ディスクドライブ２４０などが含まれる。同様に、マウス２４６（又はシリアルポート２２８を介してバス２１２に連結された他のポイントアンドクリックデバイス）、モデム２４７（シリアルポート２３０を介してバス２１２に連結される）、ネットワークインタフェース２４８（バス２１２に直接連結される）、電力管理部２５０、及びバッテリ２５２が含まれてもよい。
【００３４】
バス２１２によって、中央処理装置２１４と、上述したような、読出し専用メモリ（ＲＯＭ）又はフラッシュメモリ（どちらも図示なし）及びランダムアクセスメモリ（ＲＡＭ）（図示なし）を含んでもよい、システムメモリ２１７との間のデータ通信が可能になる。ＲＡＭは、オペレーティングシステム及びアプリケーションプログラムがロードされてもよいメインメモリであってもよい。ＲＯＭ又はフラッシュメモリは、他のコードと共に、周辺コンポーネンツとの相互作用などの基本的なハードウェアの動作を制御する、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）を含むことができる。コンピュータシステム２００に常駐するアプリケーションは、ハードディスクドライブ（例えば、固定ディスク２４４）、光学ドライブ（例えば、光学ドライブ２４０）、プリンタ２３７、取り外し可能なディスクユニット（例えば、ユニバーサルシリアルバスドライブ）、又はその他の記憶媒体などの、コンピュータ読み取り可能媒体上に格納されたり、それを介してアクセスしたりすることができる。いくつかの実施形態によれば、ＶＰＣ生成モジュール１５６は、システムメモリ２１７に常駐してもよい。
【００３５】
ストレージインタフェース２３４は、コンピュータシステム２００の他のストレージインタフェースと同様に、固定ディスクドライブ２４４など、情報の記憶及び／又は検索用の標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ２４４は、コンピュータシステム２００の一部であってもよく、又は独立したものであって、他のインタフェースシステムを通してアクセスされてもよい。モデム２４７は、電話回線を介してリモートサーバへの直接接続を提供してもよく、インターネットサービスプロバイダ（ＩＳＰ）経由でインターネットに接続してもよい。ネットワークインタフェース２４８は、ＰＯＰ（ポイントオブプレゼンス）を介したインターネットに対する直接ネットワークリンクを介して、リモートサーバに対する直接接続を提供してもよい。ネットワークインタフェース２４８は、デジタル携帯電話接続、セルラーデジタルパケットデータ（ＣＤＰＤ）接続、又はデジタル衛星データ接続などを含む無線技術を用いて、このような接続を提供してもよい。
【００３６】
他の多くのデバイス又はサブシステム（図示せず）も同様の方法で接続することができる（例えば、文書スキャナ、デジタルカメラなど）。逆に、図２に示されるデバイスの全てが、本開示を実施するために存在する必要はない。デバイス及びサブシステムは、図２に示されるものとは異なる手法で相互接続することができる。本開示を実施するコードは、システムメモリ２１７、固定ディスク２４４、又は光ディスク２４２のうち１つ以上など、コンピュータ読み取り可能記憶媒体に格納することができる。本開示を実施するためのコードは、１つ以上のインタフェースを介して受け取り、メモリに格納することもできる。コンピュータシステム２００に設けられたオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＯＳ  Ｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、又はその他の周知のオペレーティングシステムでもよい。
【００３７】
電力管理部２５０は、バッテリ２５２の電力レベルを監視することができる。電力管理部２５０は、電力レベル、コンピュータシステム２００のシャットダウン前残り時間窓、電力消費率、コンピュータシステムが主電源（例えば、ＡＣ電源）又はバッテリ電源のいずれを使用しているかの表示器、及びその他電力関連情報の判定を可能にするために、１つ以上のＡＰＩ（アプリケーションプログラミングインタフェース）を提供することができる。いくつかの実施形態によれば、電力管理部２５０のＡＰＩは、リモートアクセス可能であってもよい（例えば、ネットワーク接続を介して、リモートバックアップ管理モジュールにアクセス可能であってもよい）。いくつかの実施形態によれば、バッテリ２５２は、コンピュータシステム２００のローカル又はリモートのいずれかに位置する無停電電源装置（ＵＰＳ）であってもよい。このような実施形態では、電力管理部２５０は、ＵＰＳの電力レベルに関する情報を提供することができる。
【００３８】
図３は、指定された必要条件に従ってＶＰＣの生成を自動的に管理するように構成されたＶＰＣ生成モジュール１５６の例を図示する。ＶＰＣ生成モジュール１５６は、様々なＶＰＣの配置に関してユーザ又は他のコンピュータシステムから仕様及びインスタンス化の要求（それらの仕様の）を受信するユーザ及び自動要求管理モジュール３０２を含むことができる。ＶＰＣ生成モジュール１５６は、新しいＶＰＣの生成に関する要求を受信し得るが、必要に応じてＶＰＣを修正及び削除する要求も受信し得る。ＶＰＣ要求は、ユーザから手動の通信を通じて、生成モジュール１５６と相互接続された自動プロセスによって、及びＡＰＩ又は他の標準化された機能によって作成された自動要求として来る場合がある。
【００３９】
いくつかの実装では、ＶＰＣの仕様は、少なくともソフトウェア定義ネットワークレイアウト、アプリケーションを作成する仮想マシンイメージのリスト、それぞれ必要なＶＭのＶＭメモリ及びＣＰＵ仕様、ストレージ必要条件（ダイレクト又はオブジェクトストレージ）、アプリケーションがこのデータへのストリーミングアクセス又はバッチアクセスを必要とするかどうかと共に、アプリケーションがアクセスを必要とする特定のテレメトリックスキーマタイプの詳細リスト（例えば、ＦＷスキーマ、ＡＶスキーマ）が挙げられ得る。
【００４０】
いくつかの実装では、ＶＰＣ仕様は、サービスを顧客に販売することに興味があるサービスプロバイダから主に来る場合があることが予想され得る。サービスプロバイダからＶＰＣ仕様を受信すると、要求管理モジュール３０２は、プロバイダの仕様及びデータ管理システムのポリシに従って要求されたように、指定されたモジュールのインスタンスを生成し実行することになる。
【００４１】
ＶＰＣ生成モジュール３０４は、新しいＶＰＣをインスタンス化しスピンアップする要求によって指定されたネットワーク接続性、仮想マシン、及びストレージをプロビジョニングする。それぞれのＶＰＣインスタンスは、承認された仕様と関連している場合にのみ、許可され得る。
【００４２】
ＶＰＣが任意のデータへのアクセスを認められる（即ち、その点については、顧客のためにプロビジョニングされる）前に、顧客は、まずＶＰＣに関連するサードパーティサービスに申し込み、サードパーティサービスにデータアグリゲータによって保持されるデータの１つ以上のクラスへのアクセスを許可することに同意する必要がある。データアグリゲータによって操作される許可管理モジュール３０６は、顧客にサードパーティサービスへ申し込むように求めることになる。ひとたび、申し込みが完了すると、次にサードパーティサービスプロバイダによって提供される新しいＶＰＣインスタンスの（可能性のある）インスタンス化、及び申し込んでいる顧客のデータに新しい／既存ＶＰＣのアクセスのプロビジョニングがもたらされる。次にＶＰＣは、顧客がアクセスを許可したデータの特定のカテゴリにストリーミング及び／又はバッチアクセスする。
【００４３】
いくつかの実装では、新しい顧客によるそれぞれの許可の成功は、結果として新しいＶＰＣインスタンスが生成されることになり得る。新しいインスタンスは、許可する顧客に関連するデータに対してのみアクセスし得る。いくつかの実装では、新しい顧客による許可の成功は、既存ＶＰＣインスタンスが追加のデータアクセス権を許可されることになり、単一のＶＰＣインスタンスが、このインスタンスによってサービスを提供されている任意の以前の顧客に加えて、新しい顧客にサービスを提供できるようにする。
【００４４】
ＶＰＣは、独自のユーザインタフェースを介して（例えば、ＨＴＭＬを介して）、又はプログラム的ウェブサービス若しくは別の通信機構を介して、ＶＰＣの分析結果を描画する外部アプリケーションに分析の結果を提供し得る。例は、ＶＰＣ  ｏｖｅｒ  ＲＥＳＴウェブサービス（VPC over REST web services）と通信、分析データを取得して、ＨＴＭＬフロントエンドを介して表示するＪａｖａ（登録商標）  Ｓｗｉｎｇアプリケーションであり得る。
【００４５】
ＶＰＣインスタンスが生成されると、ＶＰＣ生成モジュール１５６のクライアントは、ＶＰＣに対するアイデンティティを提供する必要がある。次にＶＰＣは、このアイデンティティを全ての後続の要求と共に提供して、外部システム（例えば、ＨＤＦＳストア）からデータを取得する必要がある。これらの外部システムは、次に許可リストに対してこのアイデンティティをチェックして、ＶＰＣがアクセスを許可されているデータ（存在する場合）、したがってどのデータをＶＰＣに提供するべきかを判定する。同様に、新しいＶＰＣがインスタンス化されるたびに、ストリーミングテレメトリへのアクセスの必要性を示す場合、ＶＰＣのアイデンティティは、許容されるテレメトリが、ストリーミング方式でＶＰＣシステムに利用可能とされるようにストリーミングサブシステムと共に登録される。
【００４６】
リポジトリアクセスモジュール３０８は、所定のＶＰＣによって必要とされ得るデータを保持する全ての関連したリポジトリに対するアクセス制御ポリシを構成し得る。この構成は、ＶＰＣによって検索され得る特定のクラスのデータ（例えば、ファイアウォールデータ、アンチウイルスデータ）、並びにＶＰＣがアクセスを認められるべき顧客（例えば、Ｆｏｒｄ）及び管理ドメイン（例えば、ＵＳＡ−ＥＡＳＴ、ＵＳＡ−ＷＥＳＴ、ＥＭＥＡ、ＡＰＡＣ）を指定する。そのようにして例えば、リポジトリアクセスモジュール３０８は、リポジトリに接触し、（所定の事前にプロビジョニングされたアイデンティティを使用して）所定のＶＰＣに、ＵＳＡ−ＥＡＳＴ及びＥＭＥＡオフィスからのＦｏｒｄのファイアウォール及びアンチウイルステレメトリへのアクセスを認めるように指示することができる。ＶＰＣがリポジトリに要求する場合は、この特定の顧客（Ｆｏｒｄ）から、これらの特定の領域（ＵＳＡ−ＥＡＳＴ海岸、ＥＭＥＡ）から、この特定のデータのサブセット（ファイアウォール及びアンチウイルスデータ）を検索することが可能になる。その他全てのデータ（他の顧客、他の管理ドメイン、又は他のテレメトリクラスのものから）は、ＶＰＣには利用することができない。
【００４７】
図４は、本開示の実施形態により生成された例示の仮想プライベートコンテナ４００を示す。ＶＰＣ  ４００は、複数の仮想マシン４０２ａ、ｂを含み、そのそれぞれは受信したＶＰＣ要求仕様に従って生成される。顧客インタフェース４０４からの命令によって、データが操作され、結果が表示される。顧客インタフェース４０４は、ＶＰＣに接続する任意のクライアント装置１１０、１２０からＶＰＣへのアクセスを制御することができる。示されるように、クライアント１１０、１２０は、アプリケーションサーバと通信するクライアントアプリケーションによってＶＰＣに接続し得、アプリケーションサーバは次にＶＰＣと通信し得る。
【００４８】
いくつかの実装では、仮想マシン４０２の分析計算の結果と一致する出力のみが、インタフェース４０４を通じて顧客に出力として提供され得る。同様に、ユーザインタフェース４０４を通じて提出された明確なユーザ入力のみが、マシン４０２ａ、ｂに対する命令として伝えられ得る。いくつかの実装では、顧客インタフェース４０４は、ＶＰＣ  ４００との間のデータのアップロード又はダウンロードを許可しない場合がある。
【００４９】
仮想マシン４０２ａ、ｂは、コンテナ４００に割り当てられたメモリリソース４０８に記憶されたテレメトリデータ４０６を分析し、操作し、次に顧客インタフェース４０４を通じて顧客１１０、１２０、１３０に分析の結果を表示することができる。これらの分析に必要なデータは、リポジトリインタフェース４１０を通じてアクセスされ得る。いくつかの実装では、内部ストレージは存在しなくてもよく、ＶＰＣは、ストリーミングデータをリポジトリから受信してもよく、ユーザの要求で分析を提供する（つまり「オンデマンド」で提供される分析）だけの長さしかデータを保持しなくてもよい。
【００５０】
本開示のいくつかの実装では、リポジトリインタフェース４１０は、データリポジトリ４２０ａ〜ｃへのアクセスをＶＰＣ  ４００へインポートされることを明確に許可されているデータのみに制限し得る。いくつかの実装では、ＶＰＣがリポジトリ４２０ａ〜ｃにデータをアップロードする、又はそこに記憶されたデータを修正する機構を有しないため、リポジトリインタフェースと様々なデータリポジトリ４２０ａ〜ｃとの間の矢印は、一方向として示されている。データは、通常ＶＰＣ  ４００から外にではなくＶＰＣ  ４００の中へ流れ、結果は顧客インタフェース４０４を介して表示され得るが、ＶＰＣ  ４００からの大規模データのダウンロードは、通常許可されていない。
【００５１】
図５は、本開示のいくつかの実施形態に従ってＶＰＣを自動で生成し、管理するための方法５００を図示している。様々な方法が、説明されてきた範囲内で実行可能であり、以下の方法５００は、例示の目的のみで与えられることが理解されよう。記載された工程は、上述のＶＰＣ生成モジュール１５６などの任意の適切なリモート又はクラウドベースのシステムによって実施され得る。
【００５２】
ＶＰＣ仕様、（つまりＶＰＣテンプレートを定義するための要求）が受信される（５０２）。いくつかの実装では、ＶＰＣ仕様は、少なくともソフトウェア定義ネットワークレイアウト、アプリケーションを作成するＶＭイメージのリスト、それぞれ必要なＶＭのＶＭメモリ及びＣＰＵ仕様、ストレージ必要条件（ダイレクト又はオブジェクトストレージ）、ストリーミングアクセス又はバッチアクセスをそれぞれ必要とするかどうかと共に、仮想マシンがアクセスを必要とする特定のテレメトリックスキーマタイプの詳細リストが挙げられ得る。
【００５３】
ひとたびＶＰＣ仕様がアクセスされると、続けて、ＶＰＣの特定のインスタンスに対する要求が受信され、それを処理することができる（５０４）。インスタンスは、例えば、ＶＰＣ仕様に関連するサードパーティサービスを使用することを選択した顧客のために受信され得る。インスタンス要求は、顧客から直接来ない場合があり、いくつかの実装では、サードパーティによって制御された自動システムを通じて、又は次に顧客に提供されるアプリケーションを管理するアプリケーションサーバによって来てもよい。
【００５４】
より一般的には、ＶＰＣは、バルクデータのエクスポートが実行できないように構成され得る。つまりデータは、コンテナ自体の構造内部でのみアクセス可能である。分析が、既存の仮想マシンによって許可されたパラメータ外で実施される必要がある場合、ＶＰＣに対する適切な修正（又は異なるパラメータによる新しいＶＰＣの構成）がシステムから要求され得るが、コンテナ自体の制約は、意図的であり、恣意的に無視されるべきではない。システムは、表現されたセキュリティ制約を受ける仮想マシンを生成する。つまり、データを漏洩する能力又はコンテナ自体の外で任意の保存／書き込み機能を早期に暴露する能力を含まない。リソース上の制約などの他の制約も、仮想マシンの生成を制限するために適用され得る。
【００５５】
ＶＰＣインスタンスの生成（５０６）に加え、システムはまた、顧客を認証する（５０８）、及び顧客のデータに対応するアクセスをＶＰＣに設定する（５１０）こともできる。どのデータが利用されるか、及びどのような条件かは、ＶＰＣ仕様並びに特定の顧客によって確立された制約に依存し得る。
【００５６】
いくつかの実施形態では、それぞれ個別の顧客に新しいＶＰＣインスタンスが、要求されない又は必要とされないことが理解されよう。むしろ、複数の顧客は、サードパーティによって指定されたように単一のＶＰＣによってサービスを提供され得る。これらの実施形態では、新しい顧客は、更に新しいデータに対する許可プロセス及びアクセスにつながり得るが、新しいデータは、複数の顧客からのデータへのアクセスを含み得る既存のＶＰＣに対して提供されてもよい。
【００５７】
ひとたび適切なパラメータが考慮され、構成要素が生成されると、システムは、ＶＰＣインスタンスを、適切なリソース、インタフェース、及び仮想マシンと共に追加し、これを顧客又は顧客のためにデータを管理するサードパーティに提供する。いくつかの実装では、ＶＰＣの制約は、ＶＰＣを設計したサービスプロバイダが、ＶＰＣを使用して禁止されたデータにアクセスすること、中心のシステムリソースを独占すること、確立されたシステムの制約外で恣意的にデータをエクスポートすること、又は不注意で若しくは意図的に任意のリポジトリ、データを破損することを禁止する。更に、複数の顧客のために実行するＶＰＣは、それらの顧客が独自のシステム内でデータを共有されるリスクなしに、これらの複数の競合する顧客からテレメトリデータにアクセスする可能性がある。それぞれの生成されたＶＰＣは、その他全てのＶＰＣから、及び基本的なデータに対する任意の変更から意図的に分離されている。
【００５８】
ここで、上述した本開示によるＶＰＣ生成のための技法は、ある程度まで入力データの処理及び出力データの生成を含んでもよい点に留意する必要がある。この入力データ処理及び出力データ生成は、ハードウェア又はソフトウェアにより実施されてもよい。例えば、特定の電子部品は、クラウドコンピューティングシステム、仮想プライベートコンテナ、又は上述した本開示によるＶＰＣ生成と関係する機能を実現するための類似若しくは関連する回路において用いられてもよい。あるいは、命令に従って動作する１つ以上のプロセッサは、上述した本開示によるＶＰＣ生成と関係する機能を実現してもよい。かかる場合、このような命令が１つ又は複数の非一時的プロセッサ読み取り可能記憶媒体（例えば、磁気ディスク又は他の記憶媒体）に記憶されたり、あるいは１つ又は複数の搬送波中に具現化された１つ又は複数の信号を介して１つ又は複数のプロセッサに伝送されてもよいことは、本開示の範囲に含まれる。
【００５９】
本開示は、本明細書に示す特定の実施形態により範囲を限定されるものではない。実際、本明細書に記載されるものに加え、本開示の他の様々な実施形態及びその変更形態は、上述の説明及び添付の図面から、当業者には明らかとなろう。したがって、このような他の実施形態及びその変更形態は本開示の範囲内に含まれるものである。更に、本開示は少なくとも１つの特定の目的のための少なくとも１つの特定の環境における少なくとも１つの特定の実施の文脈で本明細書に記載されているが、その有用性はそれらに限定されず、本開示は任意の数の目的のために任意の数の環境において有益に実施され得ることが当業者には理解されよう。それに応じて、以下に記載する「特許請求の範囲」は、本明細書に記載された本開示の範囲の最大限の広さ及び趣旨を考慮して解釈されるべきである。
【図１】
0006576551.tif 000002
【図２】
0006576551.tif 000003
【図３】
0006576551.tif 000004
【図４】
0006576551.tif 000005
【図５】
0006576551.tif 000006