(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-18
(45)【発行日】2023-10-26
(54)【発明の名称】ワークロード・プロビジョニングにおけるデータ・プライバシー・アウェアネス
(51)【国際特許分類】
G06F 21/62 20130101AFI20231019BHJP
G06F 21/60 20130101ALI20231019BHJP
G06F 21/30 20130101ALI20231019BHJP
【FI】
G06F21/62 345
G06F21/60
G06F21/30
(21)【出願番号】P 2020572936
(86)(22)【出願日】2019-06-18
(86)【国際出願番号】 IB2019055079
(87)【国際公開番号】W WO2020012270
(87)【国際公開日】2020-01-16
【審査請求日】2022-05-06
(32)【優先日】2018-07-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521173926
【氏名又は名称】グリーン・マーケット・スクエア・リミテッド
【氏名又は名称原語表記】GREEN MARKET SQUARE LIMITED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】ベルガ、セルジオ
(72)【発明者】
【氏名】ボルプ、ヨルゲン、エミル
(72)【発明者】
【氏名】ロッタ、チアゴ、セザール
(72)【発明者】
【氏名】ステルマー、ネット、マルコ、アウレリオ
(72)【発明者】
【氏名】ブロンダル、クリス
【審査官】吉田 歩
(56)【参考文献】
【文献】特表2016-515746(JP,A)
【文献】特開2015-035061(JP,A)
【文献】特開2012-194868(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/60
G06F 21/30
(57)【特許請求の範囲】
【請求項1】
第1の場所にプロビジョニングされた第1のワークロードによってホストされている特定のデータに関連するデータ・プライバシー情報を受け取ることと、
前記第1のワークロードを監視することとを含み、前記第1のワークロードを前記監視することは、
前記第1のワークロードが第2のワークロードによってアクセスされるか否かを判断することと、
前記第1のワークロードが前記第2のワークロードによってアクセスされるとの判断に応答して、前記データ・プライバシー情報において、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることが許可されているものとして示されているか否かを判断することと、
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることを許可されているものとして示されていないとの判断に応答して、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるか否かを判断することと、
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるとの判断に応答して、プロセッサを使用して、前記データ・プライバシー情報に基づいて、前記第1のワークロードのプロビジョニングが可能な第2の場所に前記第1のワークロードを自動的にプロビジョニングすることとを含む方法。
【請求項2】
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるとの判断に応答して、前記第2のワークロードを特定する情報と、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスした方式とを記憶することをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のワークロードによってホストされている前記データに前記第2のワークロードがアクセスすることができるとの判断に応答して、前記第1のワークロードが無許可のワークロードによってアクセスされたことを示す通知をシステムまたは法令順守管理者に自動的に伝達することをさらに含み、前記通知は前記第2のワークロードを特定す
る情報と、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスした方式とを含む、請求項1に記載の方法。
【請求項4】
前記第1のワークロードを前記監視することは、
前記データ・プライバシー情報に基づいて、前記第1の場所が前記ワークロードがプロビジョニングされることができる場所であるか否かを判断することをさらに含み、
前記第1のワークロードのプロビジョニングが可能な前記第2の場所に前記第1のワークロードを前記自動的にプロビジョニングすることは、前記第1の場所が前記ワークロードがプロビジョニングされることができる場所ではないとの判断にさらに応答する、請求項1に記載の方法。
【請求項5】
前記第1のワークロードが、前記ワークロードがプロビジョニングされることができる場所ではない場所にプロビジョニングされていることを示す通知を、システムまたは法令順守管理者に自動的に伝達することをさらに含む、請求項4に記載の方法。
【請求項6】
前記第1のワークロードについてのワークロード仕様を受け取ることであって、前記ワークロードについての前記ワークロード仕様は、前記ワークロードがプロビジョニングされ得るシステムの資源要件を指定する、前記第1のワークロードの前記ワークロード仕様を受け取ることと、
前記第2の場所が前記ワークロードについての前記ワークロード仕様を満たすのに適合する少なくとも1つのシステムを有すると判断することとをさらに含み、
前記第1のワークロードを前記第2の場所に前記自動的にプロビジョニングすることは、前記第2の場所が前記ワークロードについての前記ワークロード仕様を満たすのに適合する前記少なくとも1つのシステムを有するとの判断にさらに応答する、請求項1に記載の方法。
【請求項7】
前記特定のデータに関連する前記データ・プライバシー情報をデータ・プライバシー・アドバイザ・アプリケーションに伝達することと、
前記特定のデータに関連する前記データ・プライバシー情報を前記データ・プライバシー・アドバイザ・アプリケーションに前記伝達することに応答して、前記データ・プライバシー・アドバイザ・アプリケーションから許可場所情報を受け取り、前記許可場所情報で示されている場所を候補場所として特定することと、
前記候補場所から前記第2の場所を選択することとをさらに含む、請求項1に記載の方法。
【請求項8】
実行可能操作を開始するようにプログラムされたプロセッサを含むシステムであって、
前記実行可能操作は、
第1の場所にプロビジョニングされた第1のワークロードによってホストされている特定のデータに関連するデータ・プライバシー情報を受け取ることと、
前記第1のワークロードを監視することとを含み、前記第1のワークロードを前記監視することは、
前記第1のワークロードが第2のワークロードによってアクセスされるか否かを判断することと、
前記第1のワークロードが前記第2のワークロードによってアクセスされるとの判断に応答して、前記データ・プライバシー情報において、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることが許可されているものとして示されているか否かを判断することと、
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることを許可されているものとして示されていないとの判断に応答して、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるか否かを判断することと、
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるとの判断に応答して、前記データ・プライバシー情報に基づいて、前記第1のワークロードのプロビジョニングが可能な第2の場所に前記第1のワークロードを自動的にプロビジョニングすることとを含むシステム。
【請求項9】
前記実行可能操作は、
前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスすることができるとの判断に応答して、前記第2のワークロードを特定する情報と、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスした方式とを記憶することをさらに含む、請求項8に記載のシステム。
【請求項10】
前記実行可能操作は、
前記第1のワークロードによってホストされている前記データに前記第2のワークロードがアクセスすることができるとの判断に応答して、前記第1のワークロードが無許可のワークロードによってアクセスされたことを示す通知をシステムまたは法令順守管理者に自動的に伝達することをさらに含み、前記通知は前記第2のワークロードを特定す
る情報と、前記第1のワークロードによってホストされている前記特定のデータに前記第2のワークロードがアクセスした方式とを含む、請求項8に記載のシステム。
【請求項11】
前記第1のワークロードを前記監視することは、
前記データ・プライバシー情報に基づいて、前記第1の場所が前記ワークロードがプロビジョニングされることができる場所であるか否かを判断することをさらに含み、
前前記第1のワークロードのプロビジョニングが可能な前記第2の場所に記第1のワークロードを前記自動的にプロビジョニングすることは、前記第1の場所が前記ワークロードがプロビジョニングされることができる場所ではないとの判断にさらに応答する、請求項8に記載のシステム。
【請求項12】
前記実行可能操作は、
前記第1のワークロードが、前記ワークロードがプロビジョニングされることができる場所ではない場所にプロビジョニングされていることを示す通知を、システムまたは法令順守管理者に自動的に伝達することをさらに含む、請求項11に記載のシステム。
【請求項13】
前記実行可能操作は、
前記第1のワークロードについてのワークロード仕様を受け取ることであって、前記ワークロードについての前記ワークロード仕様は前記ワークロードがプロビジョニングされ得るシステムの資源要件を指定する、前記第1のワークロードの前記ワークロード仕様を受け取ることと、
前記第2の場所が前記ワークロードについての前記ワークロード仕様を満たすのに適合する少なくとも1つのシステムを有すると判断することとをさらに含み、
前記第1のワークロードを前記第2の場所に前記自動的にプロビジョニングすることは、前記第2の場所が前記ワークロードについての前記ワークロード仕様を満たすのに適合する前記少なくとも1つのシステムを有するとの判断にさらに応答する、請求項8に記載のシステム。
【請求項14】
前記実行可能操作は、
前記特定のデータに関連する前記データ・プライバシー情報をデータ・プライバシー・アドバイザ・アプリケーションに伝達することと、
前記特定のデータに関連する前記データ・プライバシー情報を前記データ・プライバシー・アドバイザ・アプリケーションに前記伝達することに応答して、前記データ・プライバシー・アドバイザ・アプリケーションから許可場所情報を受け取り、前記許可場所情報で示されている場所を候補場所として特定することと、
前記候補場所から前記第2の場所を選択することとをさらに含む、請求項8に記載のシステム。
【請求項15】
請求項1ないし7のいずれかで特許請求されている方法を開始するようにデータ処理システムによって実行可能なプログラム・コードが記憶されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理に関し、より詳細には、分散コンピューティング環境におけるワークロードをプロビジョニングすることに関する。
【背景技術】
【0002】
データ・プライバシーは、ほとんどの情報技術(IT)組織に関わる問題である。契約上の義務のためにデータ・プライバシー要件を有する組織もある。また、法律や法規に基づくデータ・プライバシー要件を規定している国もある。しかし、IT資産のグローバル化が進むにつれて、組織はますますその本拠地外でデータを配備することが多くなっている。そのようなデータを安全に管理することには一定の課題がある。
【発明の概要】
【0003】
本発明によると、第1の場所にプロビジョニングされた第1のワークロードによってホストされている特定のデータに関連するデータ・プライバシー情報を受け取ることと、第1のワークロードを監視することとを含み、第1のワークロードを監視することは、第1のワークロードが第2のワークロードによってアクセスされるか否かを判断することと、第1のワークロードが第2のワークロードによってアクセスされるとの判断に応答して、データ・プライバシー情報において、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることが許可されているものとして示されているか否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることを許可されているものとして示されていないとの判断に応答して、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができる(has access to)か否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができるとの判断に応答して、プロセッサを使用して、データ・プライバシー情報に基づいて第1のワークロードのプロビジョニングが可能な第2の場所に、第1のワークロードを自動的にプロビジョニングすることとを含む方法がここに提供される。
【0004】
本発明を別の観点から見ると、実行可能操作を開始するようにプログラムされたプロセッサを含むシステムであって、実行可能操作は、第1の場所にプロビジョニングされた第1のワークロードによってホストされている特定のデータに関連するデータ・プライバシー情報を受け取ることと、第1のワークロードを監視することとを含み、第1のワークロードを監視することは、第1のワークロードが第2のワークロードによってアクセスされるか否かを判断することと、第1のワークロードが第2のワークロードによってアクセスされるとの判断に応答して、データ・プライバシー情報において、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることが許可されているものとして示されているか否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることを許可されているものとして示されていないとの判断に応答して、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができるか否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができるとの判断に応答して、データ・プライバシー情報に基づいて第1のワークロードのプロビジョニングが可能な第2の場所に第1のワークロードを自動的にプロビジョニングすることとを含むシステムがここに提供される。
【0005】
本発明をさらに別の観点から見ると、操作を開始するようにデータ処理システムによって実行可能なプログラム・コードが記憶されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、操作は、第1の場所にプロビジョニングされた第1のワークロードによってホストされている特定のデータに関連するデータ・プライバシー情報を受け取ることと、第1のワークロードを監視することとを含み、第1のワークロードを監視することは、第1のワークロードが第2のワークロードによってアクセスされるか否かを判断することと、第1のワークロードが第2のワークロードによってアクセスされるとの判断に応答して、データ・プライバシー情報において、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることが許可されているものとして示されているか否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることを許可されているものとして示されていないとの判断に応答して、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができるか否かを判断することと、第1のワークロードによってホストされている特定のデータに第2のワークロードがアクセスすることができるとの判断に応答して、データ・プライバシー情報に基づいて第1のワークロードのプロビジョニングが可能な第2の場所に、第1のワークロードを自動的にプロビジョニングすることとを含むコンピュータ・プログラム製品がここに提供される。
【図面の簡単な説明】
【0006】
【
図1】本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。
【
図2】本発明の一実施形態による抽象化モデル層を示す図である。
【
図3】データ処理システムの例示のアーキテクチャを示すブロック図である。
【
図4】セキュリティ・アプリケーションの例示のアーキテクチャを示す図である。
【
図5】データ・プライバシー・アウェアネスおよび保護を提供する方法の一例を示すフローチャートである。
【
図6】ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードを監視する方法の一例を示すフローチャートである。
【
図7】ワークロードにデータ・プライバシーに関する問題があるか否かを判断するために、ワークロードを監視する方法の別の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
本発明は、データ処理に関し、より詳細には、分散コンピューティング環境におけるワークロードをプロビジョニングすることに関する。
【0008】
ワークロードを管理するプロビジョニング、オーケストレータおよびブローカ・サービスは、一般に、ワークロードが、契約、法律または法規に従わずに機密データを扱っている時期を特定する機能を持たない。その結果として、そのようなワークロードを管理する責任のある組織にとって、処罰および罰金が課されることを含めて、リスクが高くなる。本明細書で記載するこの構成はそのようなリスクを低減する。
【0009】
本発明によると、機密データをホストするワークロードを、ワークロードを実行する容量を有するだけでなく、そのデータをホストするためのデータ・プライバシー・ポリシーの要件も満たす場所にプロビジョニングすることができる。その際、データに関連するデータ・プライバシー情報を処理して、データ・プライバシー・ポリシーの要件を満たすとともにワークロードのために指定されたワークロード仕様を満たす容量を有する場所を特定することができる。したがって、本発明は、データ・プライバシー・ポリシーに準拠した方式でワークロードを積極的にプロビジョニングするプロセスを提供する。
【0010】
ユーザは、何らかの理由でワークロードを現在の場所から新たな場所に移動することがある。そのユーザは、データ・プライバシー・ポリシーを完全には認識していない可能性がある。しかし、本発明によると、ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードを監視することができる。また、当初、本明細書に記載のプロセスを使用してプロビジョニングされていなかったワークロードを監視し、ワークロードにデータ・プライバシーに関する問題があるか否かを判断することもできる。上記のような問題がある場合、データ・プライバシー・ポリシーに基づいて、ワークロードをホストすることができる場所にワークロードをリアル・タイムで自動的に移動することができる。そのような場所は、データ・プライバシー・ポリシーを満たすことができ、したがってデータ・プライバシー・ポリシーの違反が軽減される。また、問題を示す通知を自動的に生成し、適切な人物、例えばシステム管理者または法令順守管理者に通知することができる。このような情報を有することにより、システム管理者または法令順守管理者は、そのような問題が再発するリスクを低減するための手段を講じることができる。
【0011】
本明細書全体を通して適用されるいくつかの定義を以下に示す。
【0012】
本明細書における定義では、「ワークロード」という用語は、デバイスまたはシステムによって実行される作業(例えば処理または記憶操作あるいはその両方)の量を意味する。
【0013】
本明細書における定義では、「ワークロードをプロビジョニングする」という用語は、ワークロードを処理するためのハードウェア資源およびソフトウェア資源を提供し、それらのハードウェア資源およびソフトウェア資源にワークロードを割り当てることを意味する。
【0014】
本明細書における定義では、「場所」という用語は、地理的場所を意味する。地理的場所は、所在地番地、建物名、市名、郡名、州名または省名、国名、郵便番号、グローバル・ポジショニング・システム(GPS)座標によって示すことができるか、または任意のその他の適切な方式で示すことができるか、あるいはこれら両方で行うことができる。
【0015】
本明細書における定義では、「応答して」という用語は、動作もしくはイベントに敏速に(readily)応答または反応することを意味する。したがって、第1の動作「に応答して」第2の動作が行われる場合、第1の動作の生起と第2の動作の生起との間に因果関係があり、「応答して」という用語はそのような因果関係を示す。
【0016】
本明細書における定義では、「コンピュータ可読記憶媒体」という用語は、命令実行システム、装置もしくはデバイスによって、またはこれらに関連して使用するためのプログラム・コードを含むかまたは記憶する記憶媒体を意味する。本明細書における定義では、「コンピュータ可読記憶媒体」は、一過性の伝播信号自体ではない。
【0017】
本明細書における定義では、「データ処理システム」という用語は、各ハードウェア・システムが、実行可能操作を開始するようにプログラムされた少なくとも1つのプロセッサとメモリとを含む、データを処理するように構成された1つまたは複数のハードウェア・システムを意味する。
【0018】
本明細書における定義では、「プロセッサ」という用語は、プログラム・コードに含まれる命令を実行するように構成された少なくとも1つのハードウェア回路(例えば集積回路)を意味する。プロセッサの例には、中央処理装置(CPU)、アレイ・プロセッサ、ベクトル・プロセッサ、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・アレイ(PLA)、特定用途向け集積回路(ASIC)、プログラマブル・ロジック回路、およびコントローラが含まれるが、これらには限定されない。
【0019】
本明細書における定義では、「サーバ」という用語は、1つまたは複数の他のデータ処理システムとサービスを共用するように構成されたデータ処理システムを意味する。
【0020】
本明細書における定義では、「リアル・タイム」という用語は、ユーザまたはシステムが特定のプロセスまたは行う判断にとって十分に即時的であると感じるか、またはプロセッサが何らかの外部プロセスに遅れずに対応することを可能にする、処理応答性のレベルを意味する。
【0021】
本明細書における定義では、「自動的に」という用語は、ユーザの介入がないことを意味する。
【0022】
本明細書における定義では、「ユーザ」という用語は、人(すなわち人間)を意味する。
【0023】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装は、クラウド・コンピューティング環境には限定されないことが理解される。むしろ、本発明の実施形態は、現在知られているかまたは今後開発される任意のその他の種類のコンピューティング環境とともに実装可能である。
【0024】
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互作用で迅速にプロビジョニングすることができ、解放することができる、構成可能なコンピューティング資源(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含み得る。
【0025】
特徴は以下の通りである。
【0026】
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの間で人間の介在を必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
【0027】
広帯域ネットワーク・アクセス:ネットワークを介して機能が利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスすることができる。
【0028】
資源プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所(例えば、国、州、またはデータ・センター)を指定することが可能な場合があるという点で、位置独立感がある。
【0029】
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
【0030】
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと消費者の両方に与えることができる。
【0031】
サービス・モデルは以下の通りである。
【0032】
ソフトウェア・アズ・ア・サービス(Software as a Service:Saas):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である(例えばウェブ・ベースのEメール)。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
【0033】
プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
【0034】
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS):消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアを配備し、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行うことができる。
【0035】
配備モデルは以下の通りである。
【0036】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理されることができ、オンプレミスまたはオフプレミスに存在可能である。
【0037】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件ポリシー、および法令順守事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
【0038】
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
【0039】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
【0040】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的な相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0041】
次に
図1を参照すると、クラウド・コンピューティング環境50が図示されている。図のように、クラウド・コンピューティング環境50は、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはこれらの組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信することができる。ノードは、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドあるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはこれらの組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、
図1に示すコンピューティング・デバイス54Aないし54Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワークまたはネットワーク・アドレス指定可能接続あるいはその両方を介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【0042】
次に、
図2を参照すると、クラウド・コンピューティング環境50(
図1)によって提供される1組の機能抽象化層が示されている。なお、
図2に示すコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
【0043】
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、縮小命令セット・コンピュータ(Reduced Instruction Set Computer:RISC)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、およびネットワークおよびネットワーキング・コンポーネント66がある。いくつかの実施例によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0044】
仮想化層70は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75である。
【0045】
一実施例では、管理層80は、以下に記載の機能を提供することができる。資源プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング82は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一実施例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれ得る。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement:SLA)計画および履行85は、SLAに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。セキュリティ86は、クラウド消費者およびタスクのための本人検証と、データ・プライバシー・アウェアネスおよび保護を含むデータおよびその他の資源の保護とを行う。
【0046】
ワークロード層90は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、およびトランザクション処理95が含まれる。
【0047】
図3は、データ処理システム300のブロック図である。データ処理システム300は、
図1のクラウド・コンピューティング環境、例えば
図2のハードウェアおよびソフトウェア層60において配備可能である。例として、データ処理システム300は、RISCベースのサーバ62、サーバ63、またはブレード・サーバ64として実装可能である。
【0048】
データ処理システム300は、システム・バス315またはその他の適合する回路を介して記憶素子310に結合された少なくとも1つのプロセッサ305(例えば中央処理装置)を含み得る。したがって、データ処理システム300は、記憶素子310内にプログラム・コードを記憶することができる。プロセッサ305は、システム・バス315を介して記憶素子310からアクセスされるプログラム・コードを実行することができる。データ処理システム300は、本明細書に記載の機能または操作あるいはその両方を実行可能な、プロセッサとメモリとを含む任意のシステムの形態で実装可能であることを理解されたい。
【0049】
記憶素子310は、1つまたは複数のコンピュータ可読記憶媒体を含み得る。コンピュータ可読記憶媒体は、例えばローカル・メモリ320および1つまたは複数のバルク・ストレージ・デバイス325などの物理メモリ・デバイスとすることができる。ローカル・メモリ320は、プログラム・コードの実際の実行時に一般的に使用されるランダム・アクセス・メモリ(RAM)またはその他の非永続メモリ・デバイスを指す。バルク・ストレージ・デバイス325は、ハード・ディスク・ドライブ(HDD)、ソリッド・ステート・デバイス(SSD)、またはその他の永続データ・ストレージ・デバイスとして実装され得る。バルク・ストレージ・デバイス325は、データ処理システム300のストレージ・システムによって維持可能である。バルク・ストレージ・デバイス325は、例えば、データ処理システム300に通信可能に連結されたストレージ・システムのコンポーネントとして、データ処理システムの外部にあってもよい。記憶素子310は、プログラム・コードが実行中にバルク・ストレージ・デバイス325から取り出される必要がある回数を減らすために、少なくとも一部のプログラム・コードの一時的ストレージを提供する、1つまたは複数のキャッシュ・メモリ330も含み得る。
【0050】
データ処理システム300には、ディスプレイ335およびその他の外部デバイス340(例えば、ポインティング・デバイス、キーボードなど)などの入力/出力(I/O)デバイスを結合することができる。I/Oデバイスは、直接、または介在するI/Oインターフェース345を介してデータ処理システム300に結合可能である。例えば、ディスプレイ335は、プロセッサ305のコンポーネントまたは個別デバイスとすることができるグラフィカル・プロセッシング・ユニット(GPU)を介してデータ処理システム300に結合することができる。データ処理システム300が、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、他のシステム、コンピュータ・システム、リモート・プリンタまたはリモートストレージ・デバイスあるいはこれらの組合せに結合された状態になることができるように、1つまたは複数のネットワーク・アダプタ350もデータ処理システム300に結合可能である。モデム、ケーブル・モデム、送受信器およびEthernet(登録商標)カードが、データ処理システム300とともに使用可能なネットワーク・アダプタ350の様々な種類の例である。
【0051】
図3に示すように、記憶素子310は、データ処理システム300のコンポーネント、例えば、本明細書に記載の実施形態のプロセスまたは方法あるいはその両方を実施するように構成された1つまたは複数のコンピュータ・プログラム・モジュール360を含む、少なくとも1つのコンピュータ・プログラムまたはユーティリティ(以下「プログラム/ユーティリティ」)355を記憶することができる。プログラム/ユーティリティ355は、例えばセキュリティ86を与えるための
図2の管理層80のコンポーネントとすることができる。実行可能プログラム・コードの形態で実装されているので、プログラム/ユーティリティ355はデータ処理システム300によって実行可能であり、したがってデータ処理システム300の一部とみなすことができる。また、プログラム/ユーティリティ355は、データ処理システム300の一部として採用されると機能を付与する機能データ構造(例えばコンピュータ・プログラム・モジュール360)を含む。
【0052】
図4に、データ・プライバシー・アウェアネスおよび保護を含むセキュリティ86(
図2)を提供するプログラム/ユーティリティ355のための例示のアーキテクチャ400を示す。前述のように、プログラム/ユーティリティ355は、コンピュータ・プログラム・モジュール360、例えばデータ・インターフェース402と、場所選択部404と、ワークロード・プロビジョニング部406と、場所および容量監視部408と、ワークロード監視部410と、データ・プライバシー問題通知部412と、データ・プライバシー制約データ414とを含み得る。
【0053】
アーキテクチャ400は、データ・プライバシー・アドバイザ・アプリケーション420とハイパーバイザ422とをさらに含み得る。ハイパーバイザ422(当技術分野では仮想マシン・モニタとも知られている)は、仮想マシンを作成し、稼働させるコンピュータ・ソフトウェア、ファームウェア、またはハードウェアである。ハイパーバイザが1つまたは複数の仮想マシンを稼働させるデータ処理システムは、ホスト・マシンと呼ばれ、各仮想マシンはゲスト・マシンと呼ばれる。プログラム/ユーティリティ355は、ゲスト・マシン上で実行可能であるが、本構成はこの点については限定されない。プログラム/ユーティリティ355は、プログラム/ユーティリティ355が実行されていないホスト・マシンと1つまたは複数の通信ネットワークを介して通信することができる。
【0054】
一構成では、データ・プライバシー・アドバイザ・アプリケーション420は、プログラム/ユーティリティ355のコンポーネントとすることができる。他の構成では、データ・プライバシー・アドバイザ・アプリケーション420は、プログラム/ユーティリティ355の外部にあってよいが、プログラム/ユーティリティ355は、例えば1つまたは複数の通信ネットワークまたはシステム・バスを介してデータ・プライバシー・アドバイザ・アプリケーション420に通信可能にリンクすることができる。例えば、データ・プライバシー・アドバイザ・アプリケーション420は、プログラム/ユーティリティ355が実行されているのと同じデータ処理システム上で(例えば同じゲスト・マシンまたは異なるゲスト・マシン上で)、または、プログラム/ユーティリティ355が実行されるデータ処理システムとは異なる1つまたは複数のデータ処理システム上で実行可能である。
【0055】
データ・インターフェース402は、データ・プライバシーおよびワークロード仕様入力情報430を受け取るように構成される。一構成では、データ・インターフェース402は、例えば、ユーザが対話してデータ・プライバシーおよびワークロード仕様入力情報430を入力するために使用するユーザ・インターフェース(例えばグラフィカル・ユーザ・インターフェース)とすることができる。別の構成では、データ・インターフェース402は、1つまたは複数のデータ源から、例えば1つもしくは複数のデータ・テーブルまたは1つもしくは複数のデータ・ファイルあるいはその両方から、データ・プライバシーおよびワークロード仕様入力情報430にアクセスするように構成されたインターフェースとすることができる。データ・プライバシーおよびワークロード仕様入力情報430は、データ・プライバシー情報432とワークロード仕様434とを含み得る。
【0056】
データ・プライバシー情報432は、プログラム/ユーティリティ355によってプロビジョニングされたワークロードによって処理されるデータのデータ・プライバシー要件を示す属性を含み得る。例示として、データ・プライバシー情報432は、例えばラベル、注釈、またはメタデータあるいはこれらの組合せを使用して、データのデータ・プライバシー分類を指定することができる。プライバシー分類の例には、「機密データ」、「非機密データ」、「極秘データ」、「部外秘データ」、「個人データ」、「機密技術」、または、「パスポート・データ」、「社会保障番号データ」、「郵送先住所データ」、「口座番号データ」、「Eメール・アドレス・データ」、「電話番号データ」、「パスワード・データ」、「ログイン・データ」などのより低いレベルが含まれるが、これらには限定されない。
【0057】
ワークロード仕様434は、データをホストするワークロードのプロビジョニング先となり得るシステムの要件を示す属性を含み得る。例示として、ワークロード仕様434は、ワークロードをプロビジョニングするために使用されるハードウェアまたはソフトウェアあるいはその両方を示すことができる。一構成では、ワークロード仕様434は、必要なハードウェア資源またはソフトウェア資源あるいはその両方を指定する属性を含み得る。例えば、ユーザがハードウェア資源要件またはソフトウェア資源要件あるいはその両方を入力してもよい。別の構成では、ワークロード仕様434は、ワークロードまたはデータあるいはその両方に適用可能なSLAを指定する属性を含み得る。このような構成では、場所選択部404が、ワークロード仕様434で指定されているSLAを特定し、適切なデータ記憶場所からSLAにアクセスし、SLAにあるハードウェア資源またはソフトウェア資源あるいはその両方の適用可能な要件を特定することができる。
【0058】
ハードウェア資源要件の例には、プロセッサ数、プロセッサ・コア数、最小プロセッサ周波数、1クロック・サイクル当たりの最少命令数、毎秒最少演算数、ローカル・メモリ量、バルク・ストレージ量、キャッシュ・メモリ量などが含まれるが、これらには限定されない。ソフトウェア資源要件の例には、オペレーティング・システムの種類、特定のオペレーティング・システム、オペレーティング・システムの特定のバージョン、1つもしくは複数の必要なプログラム(例えば、アプリケーション)、またはユーティリティあるいはその両方、1つもしくは複数の必要なプログラムまたはユーティリティあるいはその両方の必要なバージョンなどが含まれるが、これらには限定されない。
【0059】
データ・プライバシー情報およびワークロード仕様入力情報430を受け取ることに応答して、場所選択部404は、場所および容量監視部408にワークロード仕様434を示す要求を伝達することができる。この要求に応答して、場所および容量監視部408は、ハイパーバイザ422と通信して、ハイパーバイザ422の場所と、ハイパーバイザ422が稼働し、ワークロード仕様434を満たすシステム(例えばデータ処理システムまたはストレージ・システムあるいはその両方)の利用可能なワークロード容量とを示す、場所および容量情報436を監視または捕捉することができる。場所および容量情報436は、システムに配備可能なワークロードの種類も示すことができる。場所および容量監視部408は、場所および容量情報436を場所選択部404に伝達することができる。
【0060】
場所選択部404は、データ・プライバシー・アドバイザ・アプリケーション420にデータ・プライバシー情報432を伝達することもできる。データ・プライバシー・アドバイザ・アプリケーション420は、データ・プライバシー情報432を解析し、その解析に基づいて、データの処理または記憶あるいはその両方を行うことになるワークロードをプロビジョニングすることができる場所を判断することができる。解析は、データ・プライバシー・ポリシーにアクセスすることと、データ・プライバシー・ポリシーをデータ・プライバシー情報432に適用することとを含み得る。
【0061】
データ・プライバシー・ポリシーは、データ・プライバシー法、データ・プライバシー法規、またはその他の定められ得る可能なデータ・プライバシー規則あるいはこれらの組合せに基づくことができる。データ・プライバシー・ポリシーは、どのような分類のデータを、所定の供給源から、ワークロードをプロビジョニングすることが可能な様々な場所に転送することが可能か不可能かを指定することができる。例えば、特定の場所について、データ・プライバシー・ポリシーは、その場所でプロビジョニングされているワークロードによってホスト可能な様々な供給源からのデータのクラスを指定することができ、その場所でプロビジョニングされているワークロードによってホストすることができない様々な供給源からのデータのクラスを指定することができる。例示として、データ・ポリシーは、「極秘データ」としてラベル付けされたデータが特定の国でプロビジョニングされているか、または特定のセキュリティ要件を満たすデータ・センターでプロビジョニングされているか、あるいはその両方であるワークロードによってのみホストされることが許されることを示すことができる。データ・ポリシーは、「個人データ」としてラベル付けされたデータが、特定のセキュリティ要件を満たすデータ・センターでプロビジョニングされているワークロードによってのみホストされることが許されることを示すこともできる。また、データ・ポリシーは、「非機密」データとしてラベル付けされたデータが、最低限のレベルのセキュリティ要件を満たすデータ・センターでプロビジョニングされているワークロードによってホストされることが許されることを示すことができる。ただし、本構成はこれらの例には限定されない。
【0062】
データ・プライバシー・ポリシーは、機械学習モデルを適用することによりポリシー文書を統計的に解析して構造化データを生成するとともに、ポリシーに基づいて動作を許可または拒絶するためにプロセスでさらに検討される必要のある、非構造化データのうちの重要な部分/要素として定義された事前定義済みのスキーマに基づき、リレーショナル・ナレッジ・データベースにデータを格納する、ポリシー・システム(図示せず)によって維持することができる。ポリシー・システムでは、自然言語の複数の文書を解析し、どのような種類のデータを所定の供給源から宛先に転送することが可能かまたは可能でないかの規則を使用して事前定義済みナレッジ・データベースを作成するための要素を見つけることができる。データベースは、ポリシー文書がデジタル的に転送可能もしくは不能なデータまたは情報に関して言及していることの重要な部分である実体または要素を保持することができる。データベースには、様々な手段によってアクセスすることができ、その中で文書がまだ処理されていないポリシーの細かい変更がある場合に手動で更新することも可能である。また、データベースは、サイバー・セキュリティを実施するために政府との共同作業で作成することができる。
【0063】
データ・プライバシー・アドバイザ・アプリケーション420は、決定された場所に基づいて、データをホストするためのデータ・プライバシー・ポリシーの要件を満たすと判断された場所を示す許可場所情報438を生成することができる。データ・プライバシー・アドバイザ・アプリケーション420は、許可場所情報438を場所選択部404に伝達することができる。データ・プライバシー・アドバイザ・アプリケーション420または場所選択部404は、許可場所情報をワークロード監視部410に伝達することができる。許可場所情報438から、場所選択部404は、データをホストするためにワークロードのプロビジョニングが可能な場所を候補場所として特定することができる。
【0064】
場所選択部404は、許可場所情報438と場所および容量情報436とに基づいて、データをホストするためにワークロードをプロビジョニングする少なくとも1つの場所を候補場所から自動的に選択することができる。選択される場所は、場所および容量情報436に基づいて、データをホストするためのデータ・プライバシー・ポリシーの要件を満たすと判断される場所であって、ワークロードを実行するために利用可能な容量を有するとともにワークロード仕様434を満たす少なくとも1つのシステム(例えばデータ処理システムまたはストレージ・システムあるいはその両方)を有する、許可場所情報438で示されている場所とすることができる。場所選択部404は、選択された場所を特定するとともに選択された場所で1つまたは複数のワークロードがプロビジョニングされることを要求する、プロビジョニング要求440を、ワークロード・プロビジョニング部406に伝達することができる。例えば、プロビジョニング要求440は、ワークロードをプロビジョニングする選択された場所における1つまたは複数のハイパーバイザ422を示すことができる。
【0065】
プロビジョニング要求440に応答して、ワークロード・プロビジョニング部406は、選択された場所における1つまたは複数のシステムにワークロードを自動的にプロビジョニングすることができる。例えば、ワークロード・プロビジョニング部406は、プロビジョニングされるワークロードに関連する情報をハイパーバイザ422に伝達することができる。これに応答して、ハイパーバイザ422は、データをホストするための1つまたは複数のワークロードを自動的に作成することができる。例えば、ハイパーバイザ422は、ワークロードのために1つまたは複数の仮想マシン(例えばゲスト・マシン)、またはマイクロサービス、またはコンテナ、あるいはこれらの組合せを作成することができる。ワークロード・プロビジョニング部406は、ワークロードに関連する場所およびデータ・プライバシー制限情報442を、例えばデータ・プライバシー制約データ414としてデータベースに記憶することもできる。データベースはプログラム/ユーティリティ355の内部に存在することができるが、必ずしもその必要はない。
【0066】
ワークロードのプロビジョニングに加えて、プログラム/ユーティリティ355(例えばワークロード監視部410)は、ワークロードのライフサイクル中にワークロードが確実にデータ・プライバシー・ポリシーに従って維持されるように、ワークロードを監視することもできる。例示として、ワークロード450が、プロビジョニングされたワークロードに相当し得る。前述のように、ワークロード監視部410は、データ・プライバシー・アドバイザ・アプリケーション420からワークロード450のための許可場所情報438を受け取ることができ、データ・プライバシー・アドバイザ・アプリケーション420に対して許可場所情報438の更新を定期的に要求することができる。また、ワークロード監視部410は、場所選択部404またはデータ・プライバシー・アドバイザ・アプリケーション420あるいはその両方からデータ・プライバシー情報432を受け取ることができ、そのような情報の更新を定期的に要求することができる。
【0067】
ワークロード監視プロセス中、各ワークロード450について、ワークロード監視部410は、ワークロード450にデータ・プライバシーに関する問題があるか否かを判断することができる。例えば、ワークロード監視部410は、データ・プライバシー情報432で示されているかまたはデータ・プライバシー情報432に基づいてデータに適用可能なデータ・プライバシー・ポリシーに示されているか、あるいはその両方である所定の基準に従って、必要なデータ・プライバシー・ポリシーが順守されているか否かを判断することができる。
【0068】
例示として、ワークロード監視部410は、ワークロード450が別のワークロードによってアクセスされるか否かを判断し、アクセスされる場合は、データ・プライバシー情報432において、そのような他のワークロードが、ワークロード450によってホストされている特定のデータ(例えば機密データ)にアクセスすることを許可されているものとして示されているか否かを判断することもできる。当該他のワークロードが、ワークロード450によってホストされている特定のデータにアクセスすることを許可されていないとの判断に応答して、ワークロード監視部410は、当該他のワークロードがワークロード450によってホストされているその特定のデータにアクセスすることができる(has access to)か否かを判断することができる。ワークロード監視部410は、ワークロード450にアクセスするために実装されているプロトコルを調べること、ワークロード450に対するオープン・データ・ベース・コネクティビティ(ODBC)呼出しを特定すること、ワークロード450に対するクエリを特定すること、ワークロード450にアクセスするマーケティング手段を特定することなどによって、この判断を行うことができる。当該他のワークロードがワークロード450によってホストされているその特定のデータにアクセスすることができ、そのようなアクセスを行うことができることを許可されていない場合、ワークロード監視部410は、ワークロード450にデータ・プライバシーに関する問題があると判断することができる。
【0069】
当該他のワークロードによるその特定のデータへのアクセスに基づいてワークロード450にデータ・プライバシーに関する問題があるとの判断に応答して、ワークロード監視部410は、ワークロード450にアクセスすることができる当該他のワークロードを特定する情報、当該他のワークロードがワークロード450によってホストされているその特定のデータにアクセスした方式などを含む、ワークロード450に関する情報を記憶することができる。ワークロード監視部410は、この情報を適切なデータ・ストレージ、例えばプログラム/ユーティリティ355に存在するデータベースに記憶することができる。ワークロード監視部410は、さらに、ワークロード450が無許可のワークロードによってアクセスされたことを示す通知(例えばアラート、テキスト・メッセージ、Eメールなど)をシステムまたは法令順守管理者460に自動的に伝達するために、データ・プライバシー問題通知部412を起動することができ、その通知に当該他のワークロードに関する情報や、当該他のワークロードがワークロード450によってホストされているその特定のデータにアクセスした方式などを含めることができる。また、ワークロード監視部410は、ワークロード450をプロビジョニングする対象である新しい場所を選択するように場所選択部404に要求をリアル・タイムで伝達することができる。これに応答して、プログラム/ユーティリティ355が、上述のプロセスを実行して、ワークロード450がプロビジョニングされることができる新しい場所にワークロード450をリアル・タイムで自動的にプロビジョニングすることができる。
【0070】
また、ワークロード監視部410は、ワークロード450が許可された場所で継続してプロビジョニングされるか否かを判断することができる。例示として、ワークロード監視部410は、ワークロード450が、許可場所情報438で示されている許可された場所ではない場所に現在プロビジョニングされているか否かを判断することができる。例えば、ワークロード450は、その元の場所から移動されていることがあり、またはワークロード450がすでに配備された後で監視プロセスが開始されていることがある。ワークロード450がすでに配備された後で監視プロセスが開始された場合、ワークロード450のためにデータ・プライバシーおよびワークロード仕様入力情報430をデータ・インターフェース402が受け取ることができ、場所選択部404とデータ・プライバシー・アドバイザ・アプリケーション420とが前述のプロセスを実行して許可場所情報438を生成することができ、それをデータ・プライバシー・アドバイザ・アプリケーション420または場所選択部404がワークロード監視部410に伝達することができる。しかし、ワークロード450が許可場所情報438で示されている許可された場所ではない場所に現在プロビジョニングされているとの判断に応答して、ワークロード監視部410は、ワークロード450にデータ・プライバシーに関する問題があると判断することができる。
【0071】
ワークロード450が許可された場所でプロビジョニングされていないことに基づく、ワークロード450にデータ・プライバシーに関する問題があるとの判断に応答して、ワークロード監視部410は、ワークロード450がプロビジョニングされている場所を示す情報、データ・プライバシー情報432の違反を示す情報などを含む、ワークロード450に関する情報を記憶することができる。ワークロード監視部410は、この情報を適切なデータ・ストレージ、例えばプログラム/ユーティリティ355内にあるデータベースに記憶することができる。また、ワークロード監視部410は、ワークロード450がそのワークロードがプロビジョニングされることができる場所ではない場所にプロビジョニングされたことを示す通知(例えばアラート、テキスト・メッセージ、Eメールなど)をシステムまたは法令順守管理者460に自動的に伝達するために、データ・プライバシー問題通知部412を起動することができ、その通知に、ワークロード450がプロビジョニングされている場所を示す情報、データ・プライバシー情報432の違反を示す情報などを含めることができる。また、ワークロード監視部410は、ワークロード450がプロビジョニングされる新しい場所を選択する要求を場所選択部404にリアル・タイムで伝達することができる。これに応答して、プログラム/ユーティリティ355が上述のプロセスを実行して、ワークロード450がプロビジョニングされることができる新しい場所にワークロード450をリアル・タイムでプロビジョニングすることができる。
【0072】
図5は、データ・プライバシー・アウェアネスおよび保護を提供する方法500の一例を示すフローチャートである。ステップ502で、プログラム/ユーティリティ355が、ワークロードによってホストされることになる特定のデータに関連するデータ・プライバシー情報を受け取ることができる。プログラム/ユーティリティ355は、そのワークロードのワークロード仕様を受け取ることもできる。
【0073】
ステップ504で、プログラム/ユーティリティ355は、ワークロードをプロビジョニングするために利用可能な容量を特定することができる。例えば、プログラム/ユーティリティ355は、利用可能な容量を有するシステム上で稼働し、ワークロード仕様を満たす、ハイパーバイザを特定することができる。ステップ506で、プログラム/ユーティリティ355は、利用可能な容量の場所を判断することができる。例えば、プログラム/ユーティリティ355は、利用可能な容量を有するシステム上で稼働し、ワークロード仕様を満たすハイパーバイザの場所を特定することができる。
【0074】
ステップ508で、プログラム/ユーティリティ355は、ワークロードのプロビジョニングのために許可された場所を特定することができる。例えば、プログラム/ユーティリティ355は、データ・プライバシー・アドバイザ・アプリケーション420とインターフェースして、ワークロードのプロビジョニングのために許可された場所を候補場所として特定することができる。ステップ510で、プログラム/ユーティリティ355は、利用可能な容量を有する特定された場所のうちの1つまたは複数の場所にワークロードをプロビジョニングすることができる。例えば、プログラム/ユーティリティ355は、候補場所のうちのいずれの場所が、ワークロードをプロビジョニングするために利用可能な容量を有するとともにワークロード仕様を満たす場所であるか否かを判断することができ、それらの場所のうちの1つまたは複数の場所を選択することができる。
【0075】
ステップ512で、プログラム/ユーティリティ355は、場所、データ・プライバシーおよびワークロード情報を記憶することができる。例えば、プログラム/ユーティリティ355は、このような情報をデータ・プライバシー制約データとして記憶することができる。ステップ514で、プログラム/ユーティリティ355は、ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードを監視することができる。
【0076】
図6は、ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードを監視する方法600の一例を示すフローチャートである。ステップ602で、プログラム/ユーティリティ355は、ワークロードが別のワークロードによってアクセスされるか否かを判断することができる。ステップ604で、ワークロードが他のワークロードによってアクセスされるとの判断に応答して、プログラム/ユーティリティ355は、データ・プライバシー情報において、当該他のワークロードが、ワークロードによってホストされている特定のデータにアクセスすることを許可されているものとして示されているか否かを判断することができる。ステップ606で、当該他のワークロードが、ワークロードによってホストされている特定のデータにアクセスすることを許可されているものとして示されていないとの判断に応答して、プログラム/ユーティリティ355は、当該他のワークロードがワークロードによってホストされているその特定のデータにアクセスすることができるか否かを判断することができる。ステップ608で、当該他のワークロードがワークロードによってホストされているその特定のデータにアクセスすることができるとの判断に応答して、プログラム/ユーティリティ355は、ワークロードにデータ・プライバシーに関する問題があると判断することができる。
【0077】
図7は、ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードを監視する方法700の別の例を示すフローチャートである。
【0078】
ステップ702で、プログラム/ユーティリティ355は、データ・プライバシー情報に基づいて、ワークロードがプロビジョニングされている場所が、ワークロードがプロビジョニングされることができる場所であるか否かを判断することができる。ステップ704で、ワークロードがプロビジョニングされている場所が、ワークロードがプロビジョニングされることができない場所であるとの判断に応答して、プログラム/ユーティリティ355は、ワークロードにデータ・プライバシーに関する問題があると判断することができる。
【0079】
図5に戻り、次に決定ボックス516を参照する。決定ボックス516で、ワークロードにデータ・プライバシーに関する問題が特定されない場合、プロセスはステップ514に戻ることができ、プログラム/ユーティリティ355は、ワークロードにデータ・プライバシーに関する問題があるか否かを判断するためにワークロードの監視を続けることができる。しかし、データ・プライバシーに関する問題が特定された場合、ステップ518でプログラム/ユーティリティ355は、例えば前述のようにその問題に関連する情報を記憶することができる。ステップ520で、プログラム/ユーティリティ355は、例えば前述のように、問題通知をリアル・タイムで自動的に生成し、伝達することができる。ステップ522で、プログラム/ユーティリティ355は、例えば前述のように、ワークロードを新しい場所にリアル・タイムで自動的にプロビジョニングすることができる。
【0080】
本開示は、新規な機能を定義する特許請求の範囲で終わるが、本明細書に記載の様々な特徴は、本説明を図面とともに検討すればよりよく理解されると考えられる。本開示に記載されているプロセス、マシン、製造物、およびこれらの任意の変形は、例示を目的として示すものである。記載されているいずれの具体的な構造および機能の詳細も限定するものものと解釈すべきではなく、単に、特許請求の範囲の基礎として、および、当業者に実質的に任意の適切な詳細構造で記載されている特徴を様々に採用することを教示するための代表的な基礎として解釈すべきである。また、本開示で使用されている用語および語句は、限定することを意図しておらず、むしろ記載されている特徴を理解できるように説明することを意図したものである。
【0081】
図を簡単にし、明確にするために、図面に示す要素は必ずしも一律の縮尺で描かれていない。例えば、明確にするために、要素のうちの一部の要素の寸法が他の要素に対して相対的に誇張されている場合がある。また、適切と考えられる場合には、対応するか、類似しているか、または同様の特徴を示すために、参照番号が図面間で繰り返し使用されている。
【0082】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0083】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピィ(登録商標)ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【0084】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0085】
本発明の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、もしくは同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でもしくは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。いくつかの実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0086】
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【0087】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【0088】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の操作ステップが実行されてコンピュータ実装プロセスを実現するようにすることもできる。
【0089】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および操作を示す。この場合、フローチャートまたはブロック図の各ブロックは、指定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。別の一部の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行するかまたは専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェア・ベースのシステムによって実装可能であることも留意されよう。
【0090】
本明細書で使用されている用語は、特定の実施形態について説明することのみを目的としており、本発明を限定することを意図していない。本明細書で使用されている単数形の「a」、「an」および「the」は、文脈が明確に別の解釈を示していない限り複数形も含むことが意図されている。また、「含んでいる(includes)」、「含む(including)」、「含んでいる(comprises)」、または「含む(comprising)」という用語あるいはこれらの組合せは、本開示で使用されている場合、記載されている特徴、整数、ステップ、操作、要素、またはコンポーネントあるいはこれらの組合せを指定するが、1つまたは複数の他の特徴、整数、ステップ、操作、要素、コンポーネントあるいはこれらの組合せの存在または追加を排除しないことがさらにわかるであろう。
【0091】
本開示全体を通して、「一実施形態」、「ある実施形態」、「一構成」、「ある構成」、「一態様」、「ある態様」または同様の表現の言及がある場合、その実施形態に関連して記載されている特定の特徴、構造または特性が、本開示で記載されている少なくとも1つの実施形態に含まれることを意味する。したがって、本開示全体を通して「一実施形態」、「ある実施形態」、「一構成」、「ある構成」、「一態様」、「ある態様」という語句または同様の表現の記載は、すべて同じ実施形態を指す場合があるが、必ずしもそうであるとは限らない。
【0092】
本明細書で使用されている「複数の」という用語は、2つ以上であるものと定義される。本明細書で使用されている「別の」という用語は、少なくとも第2またはそれ以上のものであると定義される。本明細書で使用されている「結合されている」という用語は、他の指示がない限り、介在要素のない直接的な接続であるか、または1つもしくは複数の介在要素による間接的な接続であるかを問わず、接続されているものと定義される。また、2つの要素は、機械的に、電気的に結合されることができ、または通信チャネル、経路、ネットワークもしくはシステムを介して通信可能に連結されていてもよい。本明細書で使用されている「...または...あるいはその両方(組合せ)」という用語は、関連する列挙項目のうちの1つまたは複数の項目の任意のあらゆる可能な組合せを指し、包含する。また、本明細書では様々な要素を説明するために第1、第2などの用語が使用されている場合があるが、特に明記されていない限り、または文脈が別の解釈を示していない限り、これらの用語は1つの要素を別の要素から区別するためにのみ使用されているため、これらの要素はこれらの用語によって限定されるべきではないことはわかるであろう。
【0093】
「場合」という用語は、文脈に応じて、「...であるとき」、または「...時」、または「...との判断に応答して」、または「...の検出に応答して」を意味するものと解釈され得る。同様に、「...と判断された場合」または「[記載の条件またはイベント]が検出された場合」という語句は、文脈に応じて、「...との判断時」または「...との判断に応答して」または「[記載の条件またはイベント]の検出時」または「[記載の条件またはイベント]の検出に応答して」を意味するものと解釈され得る。
【0094】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明かであろう。本明細書で使用されている用語は、実施形態の原理、市場に見られる技術の実際の適用、もしくはそれに優る技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。