(57)【特許請求の範囲】
【請求項１】
クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムであって、
前記マシンの各々が、
前記マシンの環境に関する環境情報を取得する情報取得部と、
前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出部と、
前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定部と、
前記リスク判定部により前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御部と、
を備えることを特徴とする分散処理システム。
【請求項２】
前記リスク算出部は、自マシンの前記環境情報と他マシンの前記環境情報とを比較することで、前記リスクを算出する、ことを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記情報取得部は、前記タスクの実行を開始するたびまたは定期的に、前記環境情報を取得する、ことを特徴とする請求項１または２に記載の分散処理システム。
【請求項４】
前記環境情報は、前記マシンの実行環境に関する実行環境情報および当該マシンに対して所定の近接条件を満たす近接マシンの環境に関する近接環境情報を含む、ことを特徴とする請求項１〜３のいずれか1項に記載の分散処理システム。
【請求項５】
前記実行環境情報は、セキュリティポリシーに関する情報を含む、ことを特徴とする請求項４に記載の分散処理システム。
【請求項６】
クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムにおける分散処理方法であって、
前記マシンの各々が、
前記マシンの環境に関する環境情報を取得する情報取得ステップと、
前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出ステップと、
前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定ステップと、
前記リスク判定ステップにおいて前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御ステップと、
を含むことを特徴とする分散処理方法。
【請求項７】
請求項６に記載の各ステップをコンピュータに実行させるための分散処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、分散処理方法および分散処理プログラムに関する。
【背景技術】
【０００２】
下記特許文献１には、クラウドコンピューティングによる仮想マシンを利用した分散処理システムが開示されている。分散処理システムで仮想マシンを利用することで、一時的に大量の処理が発生する場合であっても、自社内のマシンを増強することなく、クラウド事業者によって提供されるリソースを必要に応じて拡張することで、柔軟に対処することが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０７６５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、分散処理システムの中には、分散処理を行うマシンをマスターとスレーブとに区別するものがある。このような分散処理システムでは、一つのマスターがバッチ処理を分割し、分割した処理を複数のスレーブに依頼する。したがって、クラウド事業者が提供する仮想マシンをスレーブに設定した場合には、タスクが仮想マシン上で分散して実行されることになる。
【０００５】
一般に、クラウド事業者が提供する仮想マシンのサービスは、データーセンターに大量のマシンを設け、それらを自動的に割り当てている。クラウド事業者の中には、世界中のデーターセンターに大量のマシンを設けることもある。したがって、分散処理システムの管理者は、どのマシンで処理が実行されているのかを把握することはできない。企業では、セキュリティポリシーを規定したり、サービスレベルの契約を締結する等して、機密の漏洩を防止している。しかしながら、仮想マシンをスレーブに設定すると、管理者が意図しないマシンで処理が実行されることが起こり得るため、セキュリティポリシーや契約に違反する事態も起こり得る。
【０００６】
特許文献１に記載の分散処理システムでは、仮想マシンを利用するため、管理者が意図しないマシンで処理が実行されることも起こり得る。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、管理者が意図しないマシンで処理が実行されることを回避できる分散処理システム、分散処理方法および分散処理プログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００８】
本発明の一態様である分散処理システムは、クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムであって、前記マシンの各々が、前記マシンの環境に関する環境情報を取得する情報取得部と、前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出部と、前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定部と、前記リスク判定部により前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御部と、を備える。
【０００９】
本発明の一態様である分散処理方法は、クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムにおける分散処理方法であって、前記マシンの各々が、前記マシンの環境に関する環境情報を取得する情報取得ステップと、前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出ステップと、前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定ステップと、前記リスク判定ステップにおいて前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御ステップと、を含む。
【００１０】
本発明の一態様である分散処理プログラムは、上記分散処理方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、管理者が意図しないマシンで処理が実行されることを回避できる。
【図面の簡単な説明】
【００１２】
【図１】実施形態における分散処理システムの構成を例示する図である。
【図２】基本情報のデータ構成を例示する図である。
【図３】マスター用マシンの実行環境情報のデータ構成を例示する図である。
【図４】スレーブ用マシンの実行環境情報のデータ構成を例示する図である。
【図５】マスター用マシンの近接環境情報のデータ構成を例示する図である。
【図６】スレーブ用マシンの近接環境情報のデータ構成を例示する図である。
【図７】スレーブ用マシンの近接環境情報のデータ構成を例示する図である。
【図８】スレーブ用マシンの近接環境情報のデータ構成を例示する図である。
【図９】アドミン用マシンの機能構成を例示する図である。
【図１０】マスター用およびスレーブ用マシンの機能構成を例示する図である。
【図１１】ポリシーエージェント情報のデータ構成を例示する図である。
【図１２】分散処理システムで分散処理を実行する際の手順を説明するためのフローチャートである。
【図１３】分散処理システムで分散処理を実行する際の手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本発明に係る分散処理システム、分散処理方法および分散処理プログラムの好適な実施形態について説明する。
【００１４】
まず、図１を参照して、実施形態における分散処理システムの構成について説明する。分散処理システム１００は、インターネット１０３を介して相互に接続可能な社内側システム１０１とクラウド側システム１０２とを有する。
【００１５】
社内側システム１０１は、物理的なコンピュータである物理マシン１〜３を有する。クラウド側システム１０２は、クラウドコンピューティングとして提供される論理的なコンピュータである仮想マシン４〜９を有する。なお、各マシン１〜９は、物理マシンまたは仮想マシンのいずれかであればよく、任意に構築することができる。また、スレーブに設定するマシンの数は、任意に設定することができる。また、各マシン１〜９のハードウェアやＯＳ（Operating System）は、任意である。
【００１６】
各マシン１〜９には、分散処理を実行するためのミドルウェアとして、分散実行基盤がインストールされ、動作している。分散実行基盤には、アドミニストレータ（以下、「アドミン」という。）用、マスター用およびスレーブ用の三種類の分散実行基盤がある。
【００１７】
図１では、例示的に、マシン１に、アドミン用の分散実行基盤をインストールし、マシン２に、マスター用の分散実行基盤をインストールし、マシン３〜９に、スレーブ用の分散実行基盤をインストールしている。以下では、マシン１をアドミン用マシン１とも記載し、マシン２をマスター用マシン２とも記載し、マシン３〜９をスレーブ用マシン３〜９とも記載する。
【００１８】
アドミン用分散実行基盤１ａは、マスター用およびスレーブ用の全ての分散実行基盤２ａ〜９ａの情報を保持するとともに、各分散実行基盤を制御する。
【００１９】
マスター用分散実行基盤２ａは、バッチ処理に含まれる複数のタスクを処理する。また、マスター用分散実行基盤２ａは、一つのバッチ処理に含まれる複数のタスクを分割し、複数のスレーブ用分散実行基盤３ａ〜９ａに分配して実行させる。
【００２０】
スレーブ用分散実行基盤３ａ〜９ａは、マスター用分散実行基盤２ａから受け取ったタスクを処理する。
【００２１】
各マシン１〜９には、分散実行基盤１ａ〜９ａと連携して分散処理を実行するためのソフトウェアとして、ポリシーアドミン１ｂまたはポリシーエージェント２ｂ〜９ｂがインストールされ、動作している。ポリシーアドミン１ｂおよびポリシーエージェント２ｂ〜９ｂは、分散実行基盤と連携する機能や、分散実行基盤の情報を取得する機能、分散実行基盤の動作を制御する機能等を有する。
【００２２】
ポリシーアドミン１ｂは、ポリシーエージェント２ｂ〜９ｂがリスクを分析するための基本情報を保持する。ポリシーアドミン１ｂは、管理者が任意に設定した基本情報を各ポリシーエージェント２ｂ〜９ｂに配布する。これにより、ポリシーエージェント２ｂ〜９ｂの動作を制御することができる。図２に、基本情報の一例を示す。基本情報は、データ項目として、例えば、ポリシーアドミン項目、マスター用分散基盤項目、実行環境情報項目、近接環境情報項目、近接条件項目、リスク分析式項目、実行タイミング項目、リスク係数の閾値項目、および例外情報項目を有する。
【００２３】
ポリシーアドミン項目は、ポリシーアドミンが動作するマシンに関する情報を格納する。マスター用分散実行基盤項目は、マスター用分散実行基盤が動作するマシンに関する情報を格納する。実行環境情報項目は、マスター用マシンおよびスレーブ用マシンで管理する実行環境情報のデータ項目に関する情報を格納する。実行環境情報は、マシンの実行環境に関する情報であり、その詳細は後述する。
【００２４】
近接環境情報項目は、マスター用マシンおよびスレーブ用マシンで管理する近接環境情報のデータ項目に関する情報を格納する。近接環境情報は、近接条件を満たす近接マシンの環境に関する情報であり、その詳細は後述する。近接条件項目は、近接マシンを特定するための条件である。近接条件としては、例えば、“ＩＰアドレスの上位１６ｂｉｔが同じ”という条件が該当する。
【００２５】
リスク分析式項目は、各マシンのリスクを分析する際に用いる式を格納する。リスク分析式は、管理者が任意に設定することができ、リスクの内容に応じて複数のリスク分析式を設定することもできる。リスク分析式の具体例を、以下の式１に例示する。
【００２６】
リスク係数＝ＣＰＵ×０．１＋ＯＳ×０．８＋ＩＰアドレス（上位１６ｂｉｔ）×０．５＋ＲＴＴ×１０＋ホップ数×５  …  式１
【００２７】
上記式１のＣＰＵ（Central Processing Unit）、ＯＳ、ＩＰアドレス（上位１６ｂｉｔ）、ＲＴＴ（Round Trip Time）およびホップ数は、リスク係数のパラメータであり、実行環境情報および近接環境情報に含まれるデータ項目の中から任意に設定することができる。式１の０．１、０．８、０．５、１０、５は、各パラメータの重み係数である。
【００２８】
実行環境情報および近接環境情報に含まれるデータ項目の中から、管理者が検出したいリスクに関連するパラメータを選択し、各パラメータの重み係数を設定することで、検出対象のリスクに応じたリスク係数を算出することができる。
【００２９】
リスク分析式を用いて、以下のようにリスク係数を算出する。最初に、パラメータに設定したデータ項目の内容を、自マシンと他マシンとでパラメータごとに比較する。データ項目の内容が一致していればパラメータの値を０とし、内容が相違するほどパラメータの値を大きくする。各パラメータの値を算出したら、それぞれ重み係数を乗算し、乗算後の各値の総和を算出する。これにより、リスク係数を算出できる。
【００３０】
このようなリスク分析式を用いてリスク係数を算出することで、パラメータの内容が相違するほど、大きなリスク係数が得られ、さらに、重み係数の大きなパラメータの内容が相違するほど、大きなリスク係数が得られることになる。つまり、大きなリスク係数が得られるほど、自マシンの環境と他マシンの環境とがかけ離れていると判断することができる。したがって、リスクのある実行環境を検出して制御することが可能となる。
【００３１】
基本情報に含まれる実行タイミング項目は、実行環境情報または近接環境情報を取得するタイミングや、リスク分析を実行するタイミングを格納する。リスク係数の閾値項目は、リスク分析式を用いて算出されたリスク係数によってリスクが高いと判断する際の閾値を格納する。つまり、リスク係数が、この閾値以上である場合には、リスクがあると判断できる。例外情報項目は、リスクがあると判断される場合であってもリスクがないと決定する等の例外規定に関する情報を格納する。
【００３２】
図１に示すポリシーアドミン１ｂは、各ポリシーエージェント２ｂ〜９ｂが保持する実行環境情報や近接環境情報等の各種情報を取得して保持するとともに、各ポリシーエージェント２ｂ〜９ｂを制御する。
【００３３】
ポリシーエージェント２ｂ〜９ｂは、分散実行基盤２ａ〜９ａにおけるタスクの実行を制御する。したがって、分散実行基盤は、ポリシーエージェントの許可を受けてからタスクを実行することになる。ポリシーエージェント２ｂ〜９ｂは、自マシンの実行環境情報や近接環境情報を取得する。
【００３４】
ポリシーエージェント２ｂ〜９ｂは、他のポリシーエージェントとの間で通信を行い、実行環境情報や近接環境情報等の各種情報を交換する。ポリシーエージェント２ｂ〜９ｂは、基本情報、実行環境情報および近接環境情報を用いてリスクを分析する。
【００３５】
図３および図４に、実行環境情報の一例を示す。図３は、マスター用マシン２の実行環境情報の一例であり、図４は、スレーブ用マシン４の実行環境情報の一例である。実行環境情報は、データ項目として、例えば、日時項目、ハードウェア（Ｈ／Ｗ）項目、ＯＳ項目、ネットワーク（Ｎ／Ｗ）項目、セキュリティポリシー項目を有する。
【００３６】
日時項目は、実行環境情報を取得した日時を格納する。Ｈ／Ｗ項目は、例えばＣＰＵ、メモリ、ＨＤＤ（Hard Disk Drive）、仮想マシン／物理マシンのいずれかを示す情報等のハードウェアに関する情報を格納する。ＯＳ項目は、例えばＯＳ、バージョン、リビジョン等のＯＳに関する情報を格納する。Ｎ／Ｗ項目は、例えばＩＰアドレス、ＭＡＣ、ドメイン等のネットワークに関する情報を格納する。
【００３７】
セキュリティポリシー項目は、例えば提供者、リージョン、契約等のセキュリティポリシーに関する情報を格納する。提供者には、例えば、自社名やクラウド事業者名等を格納する。リージョンには、例えば日本や米国等のように、物理マシンが設置されている地域を格納する。契約には、クラウド事業者との間で締結した契約の内容に関する情報を格納する。契約の内容としては、例えばセキュリティが確保されたプレミアムサービスや、セキュリティが確保されていないディスカウントサービス等が該当する。
【００３８】
図５〜図８に、近接環境情報の一例を示す。図５は、スレーブ用マシン４が取得する自マシンの近接環境情報の一例であり、図６〜図８は、スレーブ用マシン４、５、９から他のマシンが取得する近接環境情報の一例である。図６〜図８の近接環境情報は、各マシンに蓄積されている近接環境情報のうち、取得日時が最新の近接環境情報のみとなる。近接環境情報は、データ項目として、例えば、日時項目、ポリシーアドミン項目、マスター用分散実行基盤項目、近接ポリシーエージェント項目、近接実行タスク項目、ＲＴＴ項目を有する。
【００３９】
日時項目は、近接環境情報を取得した日時を格納する。ポリシーアドミン項目は、例えば、アドミン用マシンとの間のホップ数、アドミン用マシンとの間の平均ＲＴＴ等のポリシーアドミンとの配置関係に関する情報を格納する。マスター用分散実行基盤項目は、例えば、マスター用マシンのポリシーエージェント名、マスター用マシンとの間のホップ数、マスター用マシンとの間の平均ＲＴＴ、マスター用分散実行基盤のバージョン、マスター用分散実行基盤が実行するタスク等のマスター用分散実行基盤に関する情報を格納する。
【００４０】
近接ポリシーエージェント項目は、近接マシンのポリシーエージェントに関する情報を格納する。近接実行タスク項目は、近接ポリシーエージェントが実行するタスクに関する情報を格納する。ＲＴＴ項目は、近接マシンとの間のＲＴＴを格納する。
【００４１】
図１に示すように、アドミン用マシン１には、アドミン用分散実行基盤１ａおよびポリシーアドミン１ｂが、インストールされている。マスター用マシン２には、マスター用分散実行基盤２ａおよびポリシーエージェント２ｂが、インストールされている。スレーブ用マシン３〜９には、スレーブ用分散処理基盤３ａ〜９ａおよびポリシーエージェント３ｂ〜９ｂが、インストールされている。
【００４２】
マスター用マシン２は、バッチ処理を複数のタスクに分割し、分割したタスクをスレーブ用マシン３〜９に分配する。スレーブ用マシン４〜９は、分配されたタスクを実行する。
【００４３】
次に、マシンの機能構成について説明する。マシンの機能構成は、アドミン用マシン１と、マスター用マシン２およびスレーブ用マシン４〜９とで異なる。図９に、アドミン用マシン１の機能構成を例示し、図１０に、マスター用マシン２およびスレーブ用マシン４〜９の機能構成を例示する。
【００４４】
図９に示すように、アドミン用マシン１は、機能的には、例えば、管理部２０１と、通信部２０２と、記憶部２０３とを有する。
【００４５】
管理部２０１は、自マシンの分散実行基盤１ａおよびポリシーアドミン１ｂを管理する。通信部２０２は、他マシンのポリシーエージェントと通信を行い、各種の情報を交換する。記憶部２０３は、基本情報、アドミン用、マスター用およびスレーブ用分散実行基盤の情報、ならびにポリシーエージェントの情報を記憶する。
【００４６】
図１０に示すように、マスター用マシン２およびスレーブ用マシン３〜９は、機能的には、例えば、管理部３０１と、通信部３０２と、情報取得部３０３と、記憶部３０４と、リスク算出部３０５と、リスク判定部３０６と、実行制御部３０７とを有する。
【００４７】
管理部３０１は、自マシンの分散実行基盤およびポリシーエージェントを管理する。管理部３０１は、例えば、基本情報に基づいて、実行環境情報の取得間隔や、近接環境情報の交換方法等を制御する。
【００４８】
通信部３０２は、ポリシーアドミンや他マシンのポリシーエージェントと通信を行う。通信部３０２は、ブロードキャストやマルチキャスト等を利用して、近くに存在するポリシーエージェントを探索したり、ポリシーアドミンから情報を取得する。通信部３０２は、他マシンのポリシーエージェントの実行環境情報や近接環境情報を取得する。
【００４９】
情報取得部３０３は、自マシンの実行環境情報および近接環境情報を収集する。情報取得部３０３は、基本情報に含まれる実行タイミングに応じて、自マシンおよび他マシンの実行環境情報および近接環境情報を取得する。
【００５０】
記憶部３０４は、基本情報、実行環境情報および近接環境情報等の各種情報を記憶する。自マシンの実行環境情報および近接環境情報は、基本情報に基づいて随時生成され、日時情報ごとに履歴情報として蓄積される。記憶部３０４は、自マシンの実行環境情報および近接環境情報と、他マシンの実行環境情報および近接環境情報とに基づいて生成されるポリシーエージェント情報を記憶する。図１１に、ポリシーエージェント情報の一例を示す。
【００５１】
図１０に示すリスク算出部３０５は、記憶部３０４に記憶されている基本情報、実行環境情報および近接環境情報に基づいて、自マシンでタスクを実行した場合のリスクを算出する。
【００５２】
リスク算出部３０５は、自マシンの実行環境情報および近接環境情報と他マシンの実行環境情報および近接環境情報とを比較することで、リスクを算出する。具体的に、リスク算出部３０５は、以下のようにリスクを算出する。
【００５３】
リスク算出部３０５は、基本情報に含まれるリスク分析式と、自マシンの実行環境情報および近接環境情報と、いずれか一つの他マシンの実行環境情報および近接環境情報とを用い、リスク係数を算出する。リスク算出部３０５は、このリスク係数の算出を、他マシンの数だけ行う。リスク算出部３０５は、リスク係数の平均値を算出し、リスク係数の平均値を算出する。このリスク係数の平均値が、リスクとなる。
【００５４】
例えば、上記式１に示すリスク分析式と、図１１に示すポリシーエージェント情報とを用いてリスク係数の平均値を算出する場合について説明する。この場合、ＩＰアドレスの上位１６ｂｉｔを近接条件にして、ポリシーエージェント４ｂ〜ポリシーエージェント９ｂによる近接マシングループが形成される。リスク分析式のパラメータは、ＣＰＵ、ＯＳ、ＩＰアドレス（上位１６ｂｉｔ）、ＲＴＴおよびホップ数となる。
【００５５】
図１１を参照すると、リスク分析式のパラメータのうち、ＣＰＵとＯＳとＩＰアドレス（上位１６ｂｉｔ）とは、各ポリシーエージェント４ｂ〜９ｂでそれぞれ一致している。しかしながら、一部の平均ＲＴＴとホップ数とに相違がある。
【００５６】
具体的には、ポリシーエージェント９ｂの平均ＲＴＴが“１００ｍｓ”であり、ホップ数が“１０”であるのに対し、ポリシーエージェント９ｂ以外のポリシーエージェント４ｂ、５ｂ…の平均ＲＴＴは“１０ｍｓ”であり、ホップ数は“５”である。
【００５７】
これは、同一クラウド事業者内の仮想マシン４〜９の中で、仮想マシン９の設定に誤りがあり、他の仮想マシン４、５…と異なる実行環境で動作していることが一つの要因として考えられる。
【００５８】
この例では、仮想マシン９のリスク算出部３０５が算出するリスク係数の平均値が大きくなるのに対し、仮想マシン４、５…のリスク算出部３０５が算出するリスク係数の平均値は小さくなる。
【００５９】
図１０に示すリスク判定部３０６は、リスク算出部３０５によって算出されたリスク係数の平均値が、基本情報に含まれるリスク係数の閾値以上であるか否かを判定する。
【００６０】
実行制御部３０７は、リスク係数の平均値が閾値以上であると判定された場合に、自マシンの分散実行基盤にタスクの実行を停止するように指示する。一方、実行制御部３０７は、リスク係数の平均値が閾値未満であると判定された場合に、自マシンの分散実行基盤にタスクの実行を許可する。
【００６１】
次に、図１２および図１３を参照して、分散処理システムで分散処理を実行する際の手順について説明する。
【００６２】
最初に、ポリシーアドミン１ｂは、アドミン用分散実行基盤１ａにアクセスし、マスター用分散実行基盤２ａおよびスレーブ用分散実行基盤３ａ〜９ａのマシン情報を取得する（ステップＳ１０１）。
【００６３】
続いて、ポリシーアドミン１ｂは、取得したマシン情報を用いてマスター用マシン２およびスレーブ用マシン３〜９に接続し、基本情報を配布する（ステップＳ１０２）。
【００６４】
続いて、マスター用マシン２およびスレーブ用マシン３〜９の管理部３０１は、受信した基本情報を記憶部３０４に格納し、その基本情報に基づいてポリシーエージェント２ｂ〜９ｂを起動する（ステップＳ１０３）。
【００６５】
続いて、マスター用マシン２およびスレーブ用マシン３〜９の管理部３０１は、基本情報に含まれる実行タイミングであるか否かを判定する（ステップＳ１０４）。この判定がＮＯである場合（ステップＳ１０４；ＮＯ）には、実行タイミングになるまで待機する。
【００６６】
一方、上記ステップＳ１０４の判定で実行タイミングであると判定された場合（ステップＳ１０４；ＹＥＳ）に、この判定に該当するマシン（以下、「該当マシン」という。）の情報取得部３０３は、自マシンの実行環境情報および近接環境情報を取得し、記憶部３０４に格納する（ステップＳ１０５）。情報取得部３０３が取得する実行環境情報および近接環境情報のデータ項目は、基本情報に設定されているデータ項目となる。
【００６７】
続いて、該当マシンの通信部３０２は、基本情報に含まれる近接条件を満たす近接マシンから実行環境情報および近接環境情報を取得し、記憶部３０４に格納する（ステップＳ１０６）。通信部３０２が取得する実行環境情報および近接環境情報のデータ項目は、基本情報に設定されているデータ項目となる。
【００６８】
続いて、該当マシンのリスク算出部３０５は、上記ステップＳ１０５およびステップＳ１０６で取得した実行環境情報および近接環境情報に基づいて生成されるポリシーエージェント情報と、基本情報に含まれるリスク分析式とを用い、リスク係数を算出する（ステップＳ１０７）。
【００６９】
続いて、該当マシンのリスク判定部３０６は、リスク係数が、基本情報に含まれるリスク係数の閾値以上であるか否かを判定する（ステップＳ１０８）。この判定がＮＯである場合（ステップＳ１０８；ＮＯ）に、該当マシンの実行制御部３０７は、自マシンの分散実行基盤にタスクの実行を許可する（ステップＳ１０９）。そして、処理を上記ステップＳ１０４に移行する。
【００７０】
一方、上記ステップＳ１０８の判定でリスク係数が閾値以上であると判定された場合（ステップＳ１０８；ＹＥＳ）に、該当マシンの実行制御部３０７は、自マシンの分散実行基盤にタスクの実行を停止するように指示する（ステップＳ１１０）。
【００７１】
続いて、該当マシンの通信部３０２は、アドミン用マシン１にリスク係数が高い旨を通知する（ステップＳ１１１）。
【００７２】
続いて、アドミン用マシン１は、マスター用マシン２に、リスク係数の高いスレーブ用マシンの分散実行基盤を、スレーブ用分散実行基盤群から除外するように指示する（ステップＳ１１２）。
【００７３】
続いて、マスター用マシン２の分散実行基盤２ａは、指示されたスレーブ用分散実行基盤を除外し、残りのスレーブ用分散実行基盤群を用いて分散処理を継続する（ステップＳ１１３）。
【００７４】
続いて、アドミン用マシン１は、スレーブ用分散実行基盤を除外した旨を管理者に通知する（ステップＳ１１４）。
【００７５】
ここで、通知を受け取った管理者は、分散実行基盤の状況を確認し、問題がある場合には、設定情報を修正する等し、スレーブの除外を許可する指示をアドミン用マシン１に入力する。一方、問題がない場合に、管理者は、基本情報に含まれる例外情報に、例えば除外対象のスレーブ用分散実行基盤をそのまま使用する旨の情報を登録し、スレーブの除外を不許可とする指示をアドミン用マシン１に入力する。
【００７６】
続いて、管理者からの入力指示が除外許可である場合（ステップＳ１１５；ＹＥＳ）には、処理を上記ステップＳ１０４に移行する。
【００７７】
一方、管理者からの入力指示が除外不許可である場合（ステップＳ１１５；ＮＯ）に、アドミン用マシン１は、例外情報をマスター用マシン２に送信する（ステップＳ１１６）。
【００７８】
続いて、マスター用マシン２の分散実行基盤２ａは、例外情報に設定されたスレーブ用分散実行基盤をスレーブ用分散実行基盤群に追加し、分散処理を継続する（ステップＳ１１７）。そして、処理を上記ステップＳ１０４に移行する。
【００７９】
上述したように、実施形態における分散処理システム１００によれば、実行環境や近接環境を動的にチェックし、リスクのある実行環境を検出した場合に、リスクのある実行環境を切り離し、分散したタスクの実行を禁止することで、意図しないデータの流出やセキュリティポリシー違反を防止することが可能となる。
【００８０】
また、リスク分析式のパラメータとして、リージョンや契約を設定することで、例えば、大量のマシンを利用する場合や、設定ミス・バグ等で不正な実行環境が追加された場合であっても、リスクのある実行環境を検出して制御することが可能となる。
【００８１】
また、リスク分析式をタスクやセキュリティポリシーごとに設定することができるため、複数のタスクや複数のセキュリティポリシーが存在する場合であっても、リスクのある実行環境を検出して制御することが可能となる。
【００８２】
また、実行環境情報や近接環境情報を定期的に取得して比較することができるため、ライブマイグレーションなどで割当マシンが動的に変更される可能性のある仮想マシンを用いた場合であっても、リスクのある実行環境を検出して制御することが可能となる。
【００８３】
また、タスクの開始時にリスクを分析することができるため、複数のタスクを含むバッチ処理を実行する場合であっても、タスクごとにリスクのある実行環境を検出して制御することが可能となる。
【００８４】
また、マシンごとにリスクを分析することができるため、大量のマシンを使用する環境であっても、効率的にリスクを分析することが可能となる。
【００８５】
また、リスクの高いマシンのみを除外し、リスクの低いマシン群で分散処理を継続することができるため、分散処理を効率良く実行していくことが可能となる。
【００８６】
また、近接条件を満たす近接マシンを対象にしてリスクを分析することで、ある程度均質なグループ内でリスク係数を算出することができるため、リスク分析の精度を向上させることが可能となる。
【００８７】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００８８】
例えば、上述した実施形態では、リスク分析式を用いてリスク係数を計算しているが、リスク分析式で、例外条件や絶対条件等の条件を定義することとしてもよい。例えば、リスク分析をする前に条件として、“リージョン＝日本”を設定してもよい。この場合、自マシンのリージョンが日本以外であれば、直ちに動作を停止するようにしてもよい。
【００８９】
また、上述した実施形態では、リスク分析ごとに実行環境情報や近接情報環境を取得してリスク分析を行っているが、実行環境情報や近接情報環境の履歴を用いて、リスク分析を行ってもよい。例えば、過去に、リスクが低いとしてタスクを実行したときの各種情報を保持しておき、その時の各種情報から変更がなければ、リスクが少ないと判断してタスクを実行してもよい。この場合、履歴情報がないときには、リスクが少ないと判断しても、管理者に必ず問い合わせを行うこととしてもよい。
【００９０】
また、上述した実施形態では、一定の時間ごとにリスク分析を行っているが、任意のタイミングでリスク分析を行ってもよい。例えば、新しいタスクが分配されたときや、ライブマイグレーションで動作環境が変化したことを検出したとき等、管理者がチェックしたい任意のタイミングでリスク分析を実行することができる。
【００９１】
また、リスク分析は、タスク単位で行ってもよい。例えば、リスクの少ないタスクでは、リスク係数の閾値を高くしてもよい。外部に漏れてはいけないタスクでは、リスク分析を実行する前に、実行環境を外部では動作できないように設定してもよい。
【００９２】
また、リスク分析として統計処理を行い、標準偏差や誤差等を用いてもよい。
【００９３】
上述した実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下のように限定するものではない。
【００９４】
（付記１）  クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムであって、前記マシンの各々が、前記マシンの環境に関する環境情報を取得する情報取得部と、前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出部と、前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定部と、前記リスク判定部により前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御部と、を備えることを特徴とする分散処理システム。
【００９５】
（付記２）  前記リスク算出部は、自マシンの前記環境情報と他マシンの前記環境情報とを比較することで、前記リスクを算出する、ことを特徴とする付記１に記載の分散処理システム。
【００９６】
（付記３）  前記情報取得部は、前記タスクの実行を開始するたびまたは定期的に、前記環境情報を取得する、ことを特徴とする付記１または２に記載の分散処理システム。
【００９７】
（付記４）  前記環境情報は、前記マシンの実行環境に関する実行環境情報および当該マシンに対して所定の近接条件を満たす近接マシンの環境に関する近接環境情報を含む、ことを特徴とする付記１〜３のいずれかに記載の分散処理システム。
【００９８】
（付記５）  前記実行環境情報は、セキュリティポリシーに関する情報を含む、ことを特徴とする付記４に記載の分散処理システム。
【００９９】
（付記６）  クラウドコンピューティングによる仮想マシンを含む複数のマシンで分散してタスクを実行する分散処理システムにおける分散処理方法であって、前記マシンの各々が、前記マシンの環境に関する環境情報を取得する情報取得ステップと、前記取得した前記環境情報に基づいて自マシンで前記タスクを実行した場合のリスクを算出するリスク算出ステップと、前記算出した前記リスクが所定の閾値以上であるか否かを判定するリスク判定ステップと、前記リスク判定ステップにおいて前記リスクが所定の閾値以上であると判定された場合に、自マシンでの前記タスクの実行を停止させる実行制御ステップと、を含むことを特徴とする分散処理方法。
【０１００】
（付記７）  付記６に記載の各ステップをコンピュータに実行させるための分散処理プログラム。
【符号の説明】
【０１０１】
１    アドミン用マシン
１ａ  アドミン用分散実行基盤
１ｂ  ポリシーアドミン
２    マスター用マシン
２ａ  マスター用分散実行基盤
２ｂ〜９ｂ  ポリシーエージェント
３〜９      スレーブ用マシン
３ａ〜９ａ  スレーブ用分散実行基盤
１００      分散処理システム
１０１      社内側システム
１０２      クラウド側システム
１０３      インターネット
２０１      管理部
２０２      通信部
２０３      記憶部
３０１      管理部
３０２      通信部
３０３      情報取得部
３０４      記憶部
３０５      リスク算出部
３０６      リスク判定部
３０７      実行制御部
【図１】
0005828285.tif 000002
【図２】
0005828285.tif 000003
【図３】
0005828285.tif 000004
【図４】
0005828285.tif 000005
【図５】
0005828285.tif 000006
【図６】
0005828285.tif 000007
【図７】
0005828285.tif 000008
【図８】
0005828285.tif 000009
【図９】
0005828285.tif 000010
【図１０】
0005828285.tif 000011
【図１１】
0005828285.tif 000012
【図１２】
0005828285.tif 000013
【図１３】
0005828285.tif 000014