以下に、本願の開示するデータ移動制御方法、制御装置、データ移動制御プログラムおよびデータ移動制御システムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、クラウドコンピューティングに適用した場合について説明するが、実施例によりこの発明が限定されるものではない。また、以下の実施例では、コンテンツ、各種ファイルおよびアプリケーションプログラム等を、データの一例として取り扱う。
[実施例1に係るコンテンツ移動制御システムの構成]
図1は、実施例1に係るコンテンツ移動制御システム9の構成を示す機能ブロック図である。図1に示すように、コンテンツ移動制御システム9は、制御装置1と、複数の仮想マシン(VM:Virtual Machine)2A、2Bとを有する。実施例1に係るコンテンツ移動制御システム9は、1個のクラウド内で国を跨る移動に制限のあるコンテンツの移動を制御する。すなわち、コンテンツ移動制御システム9は、例えばコンテンツが国外に流出することを禁止する法律等の規則を有する国がある場合、クラウド内で国を跨るコンテンツの移動を制御する。なお、コンテンツ移動制御システム9は、データ移動制御システムの一例である。また、コンテンツとは、以降、ファイルやアプリケーションと同義であるものとして説明する。
制御装置1は、複数のVM2A、2Bとネットワークで接続する。VM2A、2Bは、それぞれのインターネットデータセンタ(IDC:Internet Data Center)3A、3Bに備えられたサーバで動作する仮想的なマシンであり、1個のIDCに1個のVMが存在しても良いし、1個のIDCに複数のVMが存在しても良い。また、IDC3A、3Bは、クラウド内に複数個設置されているものとする。
制御装置1は、IDC間のコンテンツの移動を制御する。さらに、制御装置1は、記憶部11および制御部12を有する。
記憶部11は、場所認証管理テーブル111、VM管理テーブル112およびコンテンツID管理テーブル113を有する。場所認証管理テーブル111は、IDCが設置された場所を管理するテーブルである。VM管理テーブル112は、VMを管理し、VMが属するIDCを記憶するテーブルである。コンテンツID管理テーブル113は、VM内のコンテンツを管理し、コンテンツ毎にコンテンツの特徴素およびコンテンツの移動が許可された領域の範囲を記憶する。これら場所認証管理テーブル111、VM管理テーブル112およびコンテンツID管理テーブル113の詳細な説明については、後述するものとする。なお、記憶部11は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
制御部12は、通信制御部121、場所認証管理部122、VM管理部123、コンテンツ移動制御部124およびコンテンツ類似度判定部125を有する。なお、制御部12の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現することができ、また、所定のプログラムがCPU(Central Processing Unit)を機能させることで実現することができる。
通信制御部121は、制御装置1とVM2A、2Bとの各種通信を制御する。
場所認証管理部122は、IDCが設置されている場所をIDCに問い合わせ、問い合わせた結果である所在地を場所認証管理テーブル111に格納する。ここで、場所認証管理テーブル111のデータ構造について、図2を参照しながら説明する。図2は、場所認証管理テーブル111のデータ構造の一例を示す図である。図2に示すように、場所認証管理テーブル111は、IDC−No111aおよび所在地111bを対応付けて記憶する。IDC−No111aは、IDCの識別番号を示す。所在地111bは、IDCが設置されている所在地を示す。例えば、「IDC−a」の識別番号で示されるIDCは、「Japan、Tokyo」で示される所在地と対応付けられる。
図1に戻って、VM管理部123は、VMを起動したり、起動したVMの起動場所を管理したりする。例えば、VM管理部123は、新たにVMをIDCに対し起動する場合に、場所認証管理テーブル111からIDCの所在地を取得し、取得した所在地にあるIDCに対し通信制御部121を介して新たなVMを起動する。このとき、VM管理部123は、起動したVMに後述するコンテンツ操作検出部222等を設定したり、中身が空のコンテンツID管理テーブル211を生成したりする。そして、VM管理部123は、起動したVMの識別番号およびIDCの識別番号を対応付けてVM管理テーブル112に格納する。
ここで、VM管理テーブル112のデータ構造について、図3を参照しながら説明する。図3は、VM管理テーブル112のデータ構造の一例を示す図である。図3に示すように、VM管理テーブル112は、VM−No112aおよびIDC112bを対応付けて記憶する。VM−No112aは、VMの識別番号を示す。IDC112bは、IDCの識別番号を示す。例えば、「VMa」の識別番号で示されるVMは、「IDC−a」の識別番号で示されるIDCと対応付けられる。
図1に戻って、コンテンツ移動制御部124は、移動元のVMから移動先のVMへコンテンツを移動する場合に、コンテンツID管理テーブル113から、移動するコンテンツの特徴素と共通する特徴素を有するコンテンツの移動許可範囲を取得する。そして、コンテンツ移動制御部124は、取得した移動許可範囲および移動先のVMの所在地に基づいて、移動するコンテンツの移動を制御する。例えば、コンテンツ移動制御部124は、IDCが異なるVM間でコンテンツ212を移動する場合に、移動するコンテンツの移動元のVMが動作しているIDCをVM管理テーブル112から取得する。そして、コンテンツ移動制御部124は、取得したIDCの所在地を場所認証管理テーブル111から取得する。また、コンテンツ移動制御部124は、移動するコンテンツの移動先のVMが動作しているIDCをVM管理テーブル112から取得する。そして、コンテンツ移動制御部124は、取得したIDCの所在地を場所認証管理テーブル111から取得する。
また、コンテンツ移動制御部124は、移動元のIDCの所在地が移動先のIDCの所在地と一致しているか否かを判定する。そして、コンテンツ移動制御部124は、一致していないと判定する場合、移動元のVMにあるコンテンツID管理テーブル211を取得し、取得したコンテンツID管理テーブル211をコンテンツID管理テーブル113にコピーする。そして、コンテンツ移動制御部124は、コンテンツID管理テーブル113から、移動するコンテンツの特徴素と共通する特徴素を持つコンテンツの移動許可範囲を取得し、移動するコンテンツの移動許可範囲とする。
一例として、コンテンツ移動制御部124は、移動するコンテンツのハッシュ値を算出する。そして、コンテンツ移動制御部124は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがコンテンツID管理テーブル113にあるか否かを判定する。そして、コンテンツ移動制御部124は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがあると判定した場合、このコンテンツのフィンガプリントおよび移動許可範囲を、移動するコンテンツのフィンガプリントおよび移動許可範囲とする。一方、コンテンツ移動制御部124は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがないと判定した場合、同一のコンテンツでないと判断し、移動するコンテンツのフィンガプリントを生成する。なお、フィンガプリントの生成方法の一例は、後述する。また、移動するコンテンツと同一のハッシュ値を持つコンテンツがコンテンツID管理テーブル113にない場合とは、例えば、移動するコンテンツがVM2A内で操作の途中であるような場合をいう。
そして、コンテンツ移動制御部124は、生成したフィンガプリントと共通性を有するフィンガプリントがコンテンツID管理テーブル113にあるか否かを判定する。かかるフィンガプリント間の共通性の判定は、後述するコンテンツ類似度判定部125によって実行される。そして、コンテンツ移動制御部124は、共通性を有するフィンガプリントがあると判定された場合、共通性を有すると判定されたコンテンツの移動許可範囲の積集合を、移動するコンテンツの移動許可範囲として決定する。一方、コンテンツ移動制御部124は、共通性を有するフィンガプリントがないと判定された場合、予めデフォルトで規定された移動許可範囲を、移動するコンテンツの移動許可範囲として決定する。
さらに、コンテンツ移動制御部124は、移動先の所在地が移動するコンテンツの移動許可範囲に含まれるか否かを判定する。そして、コンテンツ移動制御部124は、含まれると判定する場合、移動先の所在地が移動許可の範囲内であると判断し、移動するコンテンツを移動元から移動先へ移動する。一方、コンテンツ移動制御部124は、含まれないと判定する場合、移動先の所在地が移動許可の範囲外であると判断し、移動するコンテンツの移動をブロックする。
ここで、コンテンツID管理テーブル113のデータ構造について、図4を参照しながら説明する。図4は、コンテンツID管理テーブル113のデータ構造の一例を示す図である。図4に示すように、コンテンツID管理テーブル113は、No113a、ファイル名113b、ハッシュ値113c、フィンガプリント113dおよび移動許可範囲113eを対応付けて記憶する。No113aは、コンテンツの識別番号を示す。ファイル名113bは、コンテンツの一例であるファイルに関する名称を示す。
ハッシュ値113cは、ファイル名113bで示されるコンテンツのハッシュ値を示す。例えば、ハッシュ値113cは、コンテンツからハッシュ関数を示すSHA(Secure Hash Algorithm)1を用いて自動計算される。なお、ハッシュ値113cは、コンテンツのビット列としての同一性の判定に用いられる。
フィンガプリント113dは、ファイル名113bで示されるコンテンツの特徴素を示すシグネチャを示す。例えば、フィンガプリント113dは、特開2010−231766では、コンテンツ内の複数のキーワードの関係を示す関係情報をシグネチャとする。具体的には、フィンガプリント113dは、コンテンツの所定文字数の範囲内に出現する複数のキーワードの対をそれぞれのキーワードの出現位置の前後情報に対応付けて組み合わせた特徴素行列を1次元データに変換した情報をいう。フィンガプリント113dの生成方法の例として、コンテンツの所定文字数の範囲(例えば100文字)内に「A」(出現位置28、ハッシュ値3)と「B」(出現位置33、ハッシュ値8)が含まれている場合について説明する。このような場合、生成部は、出現位置が前である「A」のハッシュ値「3」を行列の列に、出現位置が後である「B」のハッシュ値「8」を行列の行に対応付けた行列要素(8、3)に「1」を設定する。同様に、生成部は、コンテンツの所定文字数の範囲内にキーワードの対が出現する場合には、出現するキーワードの対をそれぞれのキーワードの出現位置の前後に対応付けた行列要素に「1」を設定し、これらを組み合わせた特徴素行列を生成する。そして、生成部は、生成した特徴素行列を1次元データに変換し、変換した1次元データをフィンガプリントとして生成するのである。なお、フィンガプリント113dは、コンテンツが他のコンテンツから部分コピーされたか否かの判定に用いられる。また、フィンガプリント113dは、コンテンツ移動制御部124や後述するコンテンツID管理部223によって生成され、コンテンツ類似度判定部125、224によって用いられる。なお、フィンガプリント113dは、特徴素の一例である。
移動許可範囲113eは、ファイル名113bで示されるコンテンツが移動を許可される領域の範囲を示す。例えば、ファイル名113bが「file_name02」であるコンテンツは、ハッシュ値113cが「203489AB」、フィンガプリント113dが「KDFE112」、移動許可範囲113eが「China、Japan」を示す。なお、コンテンツID管理テーブル113は、記憶部の一例である。
コンテンツ類似度判定部125は、コンテンツ同士の類似度をコンテンツの特徴素に基づいて判定する。すなわち、コンテンツ類似度判定部125は、コンテンツがそれぞれ有するフィンガプリント間の共通性を判定し、コンテンツ同士の類似度を判定する。例えば、コンテンツ類似度判定部125は、コンテンツ移動制御部124から判定対象のコンテンツのフィンガプリントを取得する。そして、コンテンツ類似度判定部125は、取得したフィンガプリントと、コンテンツID管理テーブル113に記憶されたコンテンツのフィンガプリントとの類似度を算出する。類似度の算出方法の一例として、特開2010−231766を参照して説明する。この一例では、フィンガプリントは、コンテンツ内の複数のキーワードの関係を示す関係情報(特徴素行列を1次元データに変換した情報)となる。このような場合には、コンテンツ類似度判定部125は、判定対象のコンテンツのフィンガプリントおよび判定対象と異なるコンテンツのフィンガプリントをそれぞれ特徴素行列に変換し、変換したそれぞれの特徴素行列の積(共通行列)を算出する。そして、コンテンツ類似度判定部125は、算出した結果の共通行列に含まれる「1」の行列要素の個数を算出し、算出した個数が所定値以上である場合に、類似の可能性がある、すなわち共通性があると判定する。一方、コンテンツ類似度判定部125は、算出した個数が所定値未満である場合に、類似の可能性がない、すなわち共通性がないと判定する。なお、類似度の算出方法の一例として、特開2010−231766号公報を参照したが、これに限定されるものではない。
図1に戻って、VM2Aは、自己の仮想マシン内でファイルが新規作成されたり、ファイルが更新されたりした場合、当該ファイルの特徴素と共通する特徴素を持つファイルの移動許可範囲を当該ファイルの移動許可範囲とする。そして、VM2Aは、当該ファイルの移動許可範囲をコンテンツID管理テーブル211に反映する。さらに、VM2Aは、記憶部21および制御部22を有する。なお、VM2Bは、VM2Aと同様の構成であるので、説明を省略する。
記憶部21は、コンテンツID管理テーブル211および各種コンテンツ212を有する。コンテンツID管理テーブル211は、VM2A内のコンテンツを管理するテーブルであり、コンテンツID管理テーブル211と同様に図4に示したコンテンツの特徴素およびコンテンツの移動許可範囲を記憶する。コンテンツ212は、VM2A内にあるコンテンツであって移動する可能性のあるコンテンツとなる。なお、記憶部21は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子等の記憶装置である。また、コンテンツID管理テーブル211は、制御装置1内の記憶部11に記憶されたコンテンツID管理テーブル113と同一構造であるので、この説明を省略する。
制御部22は、通信制御部221、コンテンツ操作検出部222、コンテンツID管理部223およびコンテンツ類似度判定部224を有する。なお、制御部22は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。
通信制御部221は、制御装置1との各種通信を制御する。
コンテンツ操作検出部222は、VM2A内のコンテンツの新規作成、更新および削除等の操作を検出する。例えば、コンテンツ操作検出部222は、VM2A内のコンテンツのコピーや別のVMからのコンテンツの移動でコンテンツが新規作成された場合に、コンテンツの新規作成があったことを検出する。また、コンテンツ操作検出部222は、VM2A内のコンテンツの中身が変更された場合に、コンテンツが更新されたことを検出する。また、コンテンツ操作検出部222は、VM2A内のコンテンツが削除された場合に、コンテンツが削除されたことを検出する。そして、コンテンツ操作検出部222は、VM2A内のコンテンツの各種操作を検出すると、当該コンテンツの特徴素をコンテンツID管理テーブル211に反映させるべく、コンテンツの各種操作を検出した旨をコンテンツID管理部223に通知する。
コンテンツID管理部223は、VM2A内のコンテンツの特徴素および移動許可範囲を管理する。例えば、コンテンツID管理部223は、コンテンツが作成されたとき、作成されたコンテンツの特徴素を算出し、コンテンツID管理テーブル113に、算出した特徴素と共通する特徴素を有するデータがあるか否かを判定する。そして、コンテンツID管理部223は、算出した特徴素と共通する特徴素を有するコンテンツがあると判定する場合に、共通する特徴素を有するコンテンツの移動許可範囲に基づいて、作成されたコンテンツの移動許可範囲を決定する。そして、コンテンツID管理部223は、決定した移動許可範囲および算出した特徴素を、作成されたコンテンツに対応付けてコンテンツID管理テーブル113に格納する。なお、コンテンツが作成された場合には、例えば、コンテンツが新規作成された場合やコンテンツが更新された場合がある。
一例として、コンテンツID管理部223は、コンテンツ操作検出部222からコンテンツの新規作成を検出した旨の通知を取得すると、新規作成があったコンテンツのハッシュ値を算出する。また、コンテンツID管理部223は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがコンテンツID管理テーブル211にあるか否かを判定する。そして、コンテンツID管理部223は、同一のハッシュ値を持つコンテンツがあると判定された場合、このコンテンツのフィンガプリントおよび移動許可範囲を、新規作成があったコンテンツのものとしてコンテンツID管理テーブル211に登録する。一方、コンテンツID管理部223は、同一のハッシュ値を持つコンテンツがないと判定された場合、新規作成があったコンテンツのフィンガプリントを生成する。なお、フィンガプリントの生成方法の一例は、図4に示したコンテンツID管理テーブル113のフィンガプリント113dの説明で詳述したので、この説明を省略する。
そして、コンテンツID管理部223は、生成したフィンガプリントと共通性を有するフィンガプリントがコンテンツID管理テーブル211にあるか否かを判定する。かかるフィンガプリント間の共通性の判定は、後述するコンテンツ類似度判定部224によって実行される。そして、コンテンツID管理部223は、共通性を有するフィンガプリントがあると判定された場合、共通性を有すると判定されたコンテンツの移動許可範囲の積集合を、新規作成があったコンテンツの移動許可範囲として決定する。そして、コンテンツID管理部223は、決定した移動許可範囲を、新規作成があったコンテンツの移動許可範囲としてコンテンツID管理テーブル211に登録する。一方、コンテンツID管理部223は、共通性を有するフィンガプリントがないと判定された場合、予めデフォルトで規定された移動許可範囲を、新規作成があったコンテンツの移動許可範囲としてコンテンツID管理テーブル211に登録する。なお、コンテンツID管理部223は、コンテンツ操作検出部222からコンテンツの削除を検出した旨の通知を取得した場合には、削除されたコンテンツに関する情報をコンテンツID管理テーブル211から削除しないで保持しておいても良い。これは、削除されたコンテンツの移動許可範囲を利用するためである。
コンテンツ類似度判定部224は、コンテンツ同士の類似度をコンテンツの特徴素に基づいて判定する。すなわち、コンテンツ類似度判定部224は、コンテンツがそれぞれ有するフィンガプリント間の共通性を判定し、コンテンツ同士の類似度を判定する。なお、コンテンツ類似度判定部224の処理は、コンテンツ類似度判定部125と同様であるので、この説明を省略する。
[実施例1に係るコンテンツ移動制御の手順]
次に、実施例1に係るコンテンツ移動制御の手順を、図5を参照して説明する。図5は、実施例1に係るコンテンツ移動制御の手順を示すフローチャートである。なお、以下のコンテンツ移動制御の手順では、VM2A(VMa)にあるコンテンツをVM2B(VMb)へ移動する場合について説明する。
まず、コンテンツ移動制御部124は、コンテンツの移動要求があるか否かを判定する(ステップS11)。そして、コンテンツの移動要求がないと判定された場合には(ステップS11;No)、コンテンツ移動制御部124は、コンテンツの移動要求があるまで待つ。一方、コンテンツの移動要求があると判定された場合には(ステップS11;Yes)、コンテンツ移動制御部124は、移動するコンテンツの移動元のVMaが動作しているIDCをVM管理テーブル112から取得する(ステップS12)。そして、コンテンツ移動制御部124は、取得したIDCの所在地を場所認証管理テーブル111から取得する(ステップS13)。ここでは、コンテンツ移動制御部124は、VMaが動作しているIDCをIDC−aとして取得し、取得したIDC−aの所在地をPaとして取得する。
次に、コンテンツ移動制御部124は、移動するコンテンツの移動先のVMbが動作しているIDCをVM管理テーブル112から取得する(ステップS14)。そして、コンテンツ移動制御部124は、取得したIDCの所在地を場所認証管理テーブル111から取得する(ステップS15)。ここでは、コンテンツ移動制御部124は、VMbが動作しているIDCをIDC−bとして取得し、取得したIDC−bの所在地をPbとして取得する。
続いて、コンテンツ移動制御部124は、移動元のIDC−aの所在地Paが移動先のIDC−bの所在地Pbと一致しているか否かを判定する(ステップS16)。そして、移動元のIDC−aの所在地Paが移動先のIDC−bの所在地Pbと一致していないと判定された場合(ステップS16;No)、コンテンツ移動制御部124は、移動元のVMaのコンテンツID管理テーブル211を取得する(ステップS17)。ここでは、コンテンツ移動制御部124は、移動元のVMaのコンテンツID管理テーブル211としてTaを取得する。
さらに、コンテンツ移動制御部124は、移動要求があったコンテンツのハッシュ値を算出する(ステップS18)。そして、コンテンツ移動制御部124は、算出したハッシュ値と同一のハッシュ値がコンテンツID管理テーブル113にあるか否かを判定する(ステップS19)。同一のハッシュ値がコンテンツID管理テーブル113にある場合(ステップS19;Yes)、コンテンツ移動制御部124は、同一のハッシュ値を持つコンテンツの移動許可範囲を、移動要求があったコンテンツの移動許可範囲とする(ステップS20)。そして、コンテンツ移動制御部124は、ステップS25に移行する。
一方、同一のハッシュ値がコンテンツID管理テーブル113にない場合(ステップS19;No)、コンテンツ移動制御部124は、移動要求があったコンテンツのフィンガプリント(シグネチャ)値を生成する(ステップS21)。そして、コンテンツ移動制御部124は、生成したフィンガプリント値と共通するフィンガプリント値がコンテンツID管理テーブル113にあるか否かを判定する(ステップS22)。かかる判定処理は、コンテンツ類似度判定部125によって実行される。
コンテンツ類似度判定部125によって共通するフィンガプリント値があると判定された場合(ステップS22;Yes)、コンテンツ移動制御部124は、共通するフィンガプリント値があると判定されたコンテンツの移動許可範囲の積集合を算出する。そして、コンテンツ移動制御部124は、算出した積集合を、移動要求があったコンテンツの移動許可範囲とする(ステップS23)。一方、共通するフィンガプリント値がないと判定された場合(ステップS22;No)、コンテンツ移動制御部124は、予めデフォルトで規定された移動許可範囲を、移動要求があったコンテンツの移動許可範囲とする(ステップS24)。そして、コンテンツ移動制御部124は、ステップS25に移行する。
続いて、コンテンツ移動制御部124は、移動先のIDC−bの所在地Pbが、移動要求があったコンテンツの移動許可範囲に含まれているか否かを判定する(ステップS25)。そして、移動先の所在地が移動要求のあったコンテンツの移動許可範囲に含まれる場合(ステップS25;Yes)、コンテンツ移動制御部124は移動先の所在地が許可範囲内と判断する。また、移動元の所在地が移動先の所在地と一致する場合(ステップS16;Yes)、コンテンツ移動制御部124は移動先の所在地が許可範囲内と判断する。そして、コンテンツ移動制御部124は、移動要求があったコンテンツの移動を移動元のVMaに許可すべく(ステップS26)、移動要求があったコンテンツを移動元のVMaから移動先のVMbへ移動する。そして、コンテンツ移動制御部124は、処理を終了する。
一方、移動先の所在地が移動要求があったコンテンツの移動許可範囲に含まれない場合(ステップS25;No)、コンテンツ移動制御部124は、移動先の所在地が許可範囲外として、移動要求があったコンテンツの移動をブロックする(ステップS27)。そして、コンテンツ移動制御部124は、処理を終了する。
[実施例1に係るコンテンツID管理テーブルの新規作成の手順]
次に、制御装置1によるVMに係るコンテンツID管理テーブル211の新規作成の手順を、図6を参照して説明する。図6は、実施例1に係るコンテンツID管理テーブルの新規作成の手順を示すフローチャートである。
まず、VM管理部123は、新しいVMの起動要求があったか否かを判定する(ステップS31)。新しいVMの起動要求がないと判定された場合には(ステップS31;No)、VM管理部123は、新しいVMの起動要求があるまで待つ。一方、新しいVMの起動要求があると判定された場合には(ステップS31;Yes)、場所認証管理部122は、起動要求があったVMのIDCが場所認証管理テーブル111にあるか否かを判定する(ステップS32)。起動要求があったVMのIDCが場所認証管理テーブル111にない場合には(ステップS32;No)、VM管理部123は、場所認証管理部122にIDCの場所の認証を依頼する。依頼を受けた場所認証管理部122は、IDCに設置場所の所在地を問い合せ、問い合せた結果の所在地を場所認証管理テーブル111に登録し(ステップS33)、ステップS34に移行する。
一方、起動要求があったVMのIDCが場所認証管理テーブル111にある場合(ステップS32;Yes)またはIDCの所在地を登録した場合に、VM管理部123は、場所認証管理テーブル111からIDCの所在地を取得する。そして、VM管理部123は、取得したIDCの所在地に対し、通信制御部121を介してVMを起動する(ステップS34)。
続いて、VM管理部123は、起動したVMの識別番号およびIDCの識別番号を対応付けてVM管理テーブル112に新規追加する(ステップS35)。さらに、VM管理部123は、起動した新規のVMにコンテンツ操作検出部222、コンテンツID管理部223およびコンテンツ類似度判定部224をインストールする(ステップS36)。加えて、VM管理部123は、中身が空のコンテンツID管理テーブル211を作成する(ステップS37)。
[実施例1に係るコンテンツID管理テーブルの作成(ファイル新規作成の場合)の手順]
次に、VM2AによるコンテンツID管理テーブル211の作成(ファイル新規作成の場合)の手順を、図7を参照して説明する。図7は、実施例1に係るコンテンツID管理テーブルの作成(ファイル新規作成の場合)の手順を示すフローチャートである。
まず、コンテンツ操作検出部222は、VM2A内のファイルについて、新規作成の操作を検出したか否かを判定する(ステップS41)。新規作成の操作を検出していないと判定された場合には(ステップS41;No)、コンテンツ操作検出部222は、新規作成の操作を検出するまで待つ。一方、新規作成の操作を検出したと判定された場合には(ステップS41;Yes)、コンテンツ操作検出部222は、ファイルの新規作成の操作を検出した旨をコンテンツID管理部223に通知する。
続いて、コンテンツID管理部223は、新規作成があったファイルのハッシュ値を算出する(ステップS42)。そして、コンテンツID管理部223は、算出したハッシュ値と同一のハッシュ値がコンテンツID管理テーブル211にあるか否かを判定する(ステップS43)。同一のハッシュ値がコンテンツID管理テーブル211にある場合(ステップS43;Yes)、コンテンツID管理部223は、同一のハッシュ値を持つコンテンツの移動許可範囲を、新規作成があったコンテンツの移動許可範囲とする(ステップS44)。そして、コンテンツID管理部223は、ステップS49に移行する。
一方、同一のハッシュ値がコンテンツID管理テーブル211にない場合(ステップS43;No)、コンテンツID管理部223は、新規作成があったファイルのフィンガプリント(シグネチャ)値を生成する(ステップS45)。そして、コンテンツID管理部223は、生成したフィンガプリント値と共通するフィンガプリント値がコンテンツID管理テーブル211にあるか否かを判定する(ステップS46)。かかる判定処理は、コンテンツ類似度判定部224によって実行される。
コンテンツ類似度判定部224によって共通するフィンガプリント値があると判定された場合(ステップS46;Yes)、コンテンツID管理部223は、共通するフィンガプリント値があると判定されたコンテンツの移動許可範囲の積集合を算出する。そして、コンテンツID管理部223は、算出した積集合を、新規作成があったファイルの移動許可範囲とする(ステップS47)。一方、共通するフィンガプリント値がないと判定された場合(ステップS46;No)、コンテンツID管理部223は、予めデフォルトで規定された移動許可範囲を、新規作成があったファイルの移動許可範囲とする(ステップS48)。そして、コンテンツID管理部223は、ステップS49に移行する。
その後、コンテンツID管理部223は、求めた移動許可範囲を、新規作成があったファイルのファイル名で、コンテンツID管理テーブル211に追加する(ステップS49)。このとき、コンテンツID管理部223は、新規作成があったファイルのファイル名を、算出したハッシュ値、生成したフィンガプリント値および求めた移動許可範囲と対応付けてコンテンツID管理テーブル211に登録する。
[実施例1に係るコンテンツID管理テーブルの作成(ファイル更新の場合)の手順]
次に、VM2AによるコンテンツID管理テーブル211の作成(ファイル更新の場合)の手順を、図8を参照して説明する。図8は、実施例1に係るコンテンツID管理テーブルの作成(ファイル更新の場合)の手順を示すフローチャートである。
まず、コンテンツ操作検出部222は、VM2A内のファイルについて、更新の操作を検出したか否かを判定する(ステップS51)。更新の操作を検出していないと判定された場合には(ステップS51;No)、コンテンツ操作検出部222は、更新の操作を検出するまで待つ。一方、更新の操作を検出したと判定された場合には(ステップS51;Yes)、コンテンツ操作検出部222は、ファイルの更新の操作を検出した旨をコンテンツID管理部223に通知する。
続いて、コンテンツID管理部223は、更新があったファイルのハッシュ値を算出する(ステップS52)。そして、コンテンツID管理部223は、算出したハッシュ値をコンテンツID管理テーブル211に更新する(ステップS53)。さらに、コンテンツID管理部223は、更新があったファイルのフィンガプリント(シグネチャ)値を生成する(ステップS54)。そして、コンテンツID管理部223は、生成したフィンガプリント値をコンテンツID管理テーブル211に更新する(ステップS55)。
そして、コンテンツID管理部223は、生成したフィンガプリント値と共通するフィンガプリント値がコンテンツID管理テーブル211にあるか否かを判定する(ステップS56)。かかる判定処理は、コンテンツ類似度判定部224によって実行される。
コンテンツ類似度判定部224によって共通するフィンガプリント値があると判定された場合(ステップS56;Yes)、コンテンツID管理部223は、共通するフィンガプリント値があると判定されたコンテンツの移動許可範囲の積集合を算出する。そして、コンテンツID管理部223は、算出した積集合を、更新があったファイルの移動許可範囲とし、コンテンツID管理テーブル211に更新する(ステップS57)。そして、コンテンツID管理部223は、処理を終了する。
一方、共通するフィンガプリント値がないと判定された場合(ステップS56;No)、コンテンツID管理部223は、更新前のファイルの移動許可範囲を、更新があったファイルの移動許可範囲とする(ステップS58)。そして、コンテンツID管理部223は、処理を終了する。
[実施例1に係るコンテンツ移動制御の具体例]
次に、実施例1に係るコンテンツ移動制御の具体例について、図9を参照しながら説明する。図9は、実施例1に係るコンテンツ移動制御の具体例を説明する図である。図9では、VMa2A内で動作中のアプリケーションc1およびデータc2をVMb2Bへ移動する場合について説明する。なお、VMa2AのコンテンツID管理テーブル211には、File_01〜03の3個のファイルの情報が記憶されているが、VMa内で動作中のアプリケーションc1およびデータc2と同一のハッシュ値は含まれていないものとする。
まず、制御装置1のコンテンツ移動制御部124は、アプリケーションc1およびデータc2について、VMa2AからVMb2Bへの移動要求を取得する。すると、コンテンツ移動制御部124は、移動元のVMa2Aと移動先のVMb2Bのそれぞれの動作場所(IDCの所在地)を場所認証管理テーブル111およびVM管理テーブル112に基づいて取得する(ステップS200)。ここでは、コンテンツ移動制御部124は、移動元のVMa2Aについて、VM管理テーブル112を基に「IDC−a」を取得し、取得した「IDC−a」の所在地として場所認証管理テーブル111を基に「Japan」を取得する。また、コンテンツ移動制御部124は、移動元のVMb2Bについて、VM管理テーブル112を基に「IDC−b」を取得し、取得した「IDC−b」の所在地として、場所認証管理テーブル111を基に「China」を取得する。
そして、コンテンツ移動制御部124は、移動元のIDC−aの所在地が移動先のIDC−bの所在地と一致するか否かを判定する。ここでは、コンテンツ移動制御部124は、IDC−aの所在地「Japan」がIDC−bの所在地「China」と一致しないと判定し、所在地が異なるものである。
そこで、コンテンツ移動制御部124は、移動元のVMa2Aと移動先のVMb2Bの動作場所が異なるため、VMa2Aの移動許可範囲を算出する(ステップS201)。まず、コンテンツ移動制御部124は、VMa2AのコンテンツID管理テーブル211を制御装置1内のコンテンツID管理テーブル113にコピーする。そして、コンテンツ移動制御部124は、コンテンツID管理テーブル113に基づいて、コンテンツID管理テーブル113内の各ファイルと、アプリケーションc1およびデータc2との同一性を判定する。ここでは、コンテンツ移動制御部124は、アプリケーションc1およびデータc2の各ハッシュ値を算出し、算出した各ハッシュ値がコンテンツID管理テーブル113に含まれていないので、テーブル内の各ファイルと同一のコンテンツでないと判定する。
さらに、コンテンツ移動制御部124は、コンテンツID管理テーブル113に基づいて、コンテンツID管理テーブル113内の各ファイルと、アプリケーションc1およびデータc2との共通性を判定する。ここでは、コンテンツ移動制御部124は、アプリケーションc1およびデータc2の各フィンガプリントを生成する。そして、例えば、コンテンツ移動制御部124は、生成した各フィンガプリントがテーブル内のFile_01〜03の各フィンガプリントと共通するものとする。
すると、コンテンツ移動制御部124は、共通すると判定した各ファイルの移動許可範囲の積集合を算出し、算出した積集合を、移動要求があったアプリケーションc1およびデータc2の移動許可範囲とする。ここでは、コンテンツ移動制御部124は、File_01〜03の各フィンガプリントと共通するので、共通すると判定したFile_01〜03の各移動許可範囲の積集合を「Japan」と算出する。そしてコンテンツ移動制御部124は、「Japan」を移動要求があったアプリケーションc1およびデータc2の移動許可範囲とする。
そして、コンテンツ移動制御部124は、移動先のIDC−bの所在地が、移動要求があったアプリケーションc1およびデータc2の移動許可範囲に含まれているか否かを判定する。ここでは、コンテンツ移動制御部124は、移動先のIDC−bの所在地が「China」であるので、当該所在地が、移動要求があったアプリケーションc1およびデータc2の移動許可範囲「Japan」に含まれないと判定する。したがって、コンテンツ移動制御部124は、移動先の所在地「China」が移動許可範囲外として、移動要求があったアプリケーションc1およびデータc2の移動をブロックする(ステップS202)。
[実施例1の効果]
上記実施例1によれば、コンテンツID管理テーブル113は、コンテンツ毎にコンテンツのフィンガプリントおよびコンテンツの移動許可範囲を記憶する。そして、制御装置1は、移動元から移動先へコンテンツを移動する場合に、コンテンツID管理テーブル113から、移動するコンテンツのフィンガプリントと共通する移動許可範囲および移動先の所在位置に基づいて、移動するコンテンツの移動を制御する。かかる構成によれば、制御装置1は、移動するコンテンツのフィンガプリントと共通する移動許可範囲および移動先の所在位置を用いて移動するコンテンツの移動を制御するので、移動するコンテンツについて適切な移動制御を行うことができる。すなわち、制御装置1は、移動するコンテンツが一部流用されたコンテンツであっても、移動許可されていない移動先に移動することを制限できる。
また、上記実施例1によれば、制御装置1は、移動するコンテンツの移動許可範囲を、当該コンテンツのフィンガプリントと共通するフィンガプリントを有するコンテンツの移動許可範囲の積集合に決定する。そして、制御装置1は、決定した移動許可範囲に基づいて、移動するコンテンツの移動を制御する。かかる構成によれば、制御装置1は、仮に移動するコンテンツが一部流用されたものであっても、当該コンテンツの移動許可範囲が流用元の移動許可範囲と共通することとなるので、共通する移動許可範囲外の許可されていない移動先への移動を適切に制限できる。
ところで、実施例1のコンテンツ移動制御システム9では、1個のクラウド内で国を跨る移動に制限のあるコンテンツの移動を制御する場合について説明した。しかしながら、コンテンツ移動制御システム9は、これに限定されるものではなく、複数のクラウド間で国を跨る移動に制限のあるコンテンツの移動を制御しても良い。
そこで、実施例2では、コンテンツ移動制御システム9Aが、複数のクラウド間で国を跨る移動に制限のあるコンテンツの移動を制御する場合を説明する。
[実施例2に係るコンテンツ移動制御システムの構成]
図10は、実施例2に係るコンテンツ移動制御システム9Aの構成を示す機能ブロック図である。なお、図1に示すコンテンツ移動制御システム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例1と実施例2とが異なるところは、複数のクラウドA、Bを接続するゲートウェイ4A、4BをそれぞれクラウドA、B内に追加した点にある。ゲートウェイ4Aは、コンテンツの移動元のクラウドAのゲートウェイを示し、記憶部41および制御部42を有する。また、ゲートウェイ4Bは、コンテンツの移動先のクラウドBのゲートウェイを示し、制御部52を有する。また、実施例1と実施例2とが異なるところは、コンテンツの移動先のクラウドBに係る制御装置1Bの場所認証管理部122Bを変更した点にある。
ゲートウェイ4Aの記憶部41は、コンテンツID管理テーブル411を有する。コンテンツID管理テーブル411は、VM2A内のコンテンツを管理するテーブルであり、コンテンツの特徴素およびコンテンツの移動許可範囲の範囲を記憶する。なお、記憶部41は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子等の記憶装置である。また、コンテンツID管理テーブル411は、制御装置1内の記憶部11に記憶されたコンテンツID管理テーブル113と同一構造であるので、この説明を省略する。
ゲートウェイ4Aの制御部42は、通信制御部421、コンテンツ移動制御部422、コンテンツ類似度判定部423および移動先問合せ部424を有する。なお、制御部42は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。
通信制御部421は、自己のゲートウェイ4Aと他のゲートウェイ4Bとの通信を制御する。また、通信制御部421は、自己のゲートウェイ4Aと同一クラウドA内のVM2A、2Bとの各種通信を制御する。
コンテンツ移動制御部422は、移動元のVMから移動先のVMへ移動元および移動先のそれぞれのゲートウェイ4A、4Bを介してコンテンツを移動する場合に、移動先のゲートウェイ4Bに対して、移動先のVMが動作しているIDCの所在地を問い合わせる。そして、コンテンツ移動制御部422は、移動先のゲートウェイ4Bの応答により取得した移動先のIDCの所在地に基づいて、移動するコンテンツの移動を制御する。
例えば、コンテンツ移動制御部422は、クラウドが異なるVM間でコンテンツ212を移動する場合に、移動するコンテンツ212のハッシュ値を算出する。また、コンテンツ移動制御部422は、移動元のVMのコンテンツID管理テーブル211を取得し、取得したコンテンツID管理テーブル211をコンテンツID管理テーブル411にコピーする。また、コンテンツ移動制御部422は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがコンテンツID管理テーブル411にあるか否かを判定する。
そして、コンテンツ移動制御部422は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがあると判定した場合、このコンテンツの移動許可範囲の値で移動の可否をチェックする。一方、コンテンツ移動制御部422は、算出したハッシュ値と同一のハッシュ値を持つコンテンツがないと判定した場合、同一のコンテンツでないと判断し、移動するコンテンツのフィンガプリントを生成する。なお、フィンガプリントの生成方法の一例は、図4に示したコンテンツID管理テーブル113のフィンガプリント113dの説明で詳述したので、この説明を省略する。
そして、コンテンツ移動制御部422は、生成したフィンガプリントと共通性を有するフィンガプリントがコンテンツID管理テーブル411にあるか否かを判定する。かかるフィンガプリント間の共通性の判定は、後述するコンテンツ類似度判定部423によって実行される。そして、コンテンツ移動制御部422は、共通性を有するフィンガプリントがあると判定された場合、共通性を有すると判定されたコンテンツの移動許可範囲の積集合を、移動するコンテンツの移動許可範囲として決定する。一方、コンテンツ移動制御部422は、共通性を有するフィンガプリントがないと判定された場合、予めデフォルトで規定された移動許可範囲を、移動するコンテンツの移動許可範囲として決定する。そして、コンテンツ移動制御部422は、決定した移動許可範囲の値でコンテンツの移動の可否をチェックする。
コンテンツの移動の可否のチェック処理の一例として、コンテンツ移動制御部422は、後述する移動先問合せ部424により移動先のゲートウェイ4Bに対して、移動先のVMが動作しているIDCの所在地を問い合わせる。そして、コンテンツ移動制御部422は、移動するコンテンツの移動許可範囲が、問い合わせの応答により取得した移動先のIDCの所在地に含まれているか否かを判定する。そして、コンテンツ移動制御部422は、含まれていると判定した場合には、移動許可とする。一方、コンテンツ移動制御部422は、含まれていないと判定した場合には、移動許否とする。
そして、コンテンツ移動制御部422は、移動許可とした場合、移動先の所在地が移動許可の範囲内であると判断し、ゲートウェイを介して、移動するコンテンツを移動元のVMから移動先のVMへ移動する。また、コンテンツ移動制御部422は、移動拒否とした場合には、移動先の所在地が移動許可の範囲外であると判断し、移動するコンテンツの移動をブロックする。
コンテンツ類似度判定部423は、コンテンツ同士の類似度をコンテンツの特徴素に基づいて判定する。すなわち、コンテンツ類似度判定部423は、コンテンツがそれぞれ有するフィンガプリント間の共通性を判定し、コンテンツ同士の類似度を判定する。なお、コンテンツ類似度判定部423の処理は、図1に示したコンテンツ類似度判定部125と同様であるので、この説明を省略する。
移動先問合せ部424は、移動先のゲートウェイ4Bに対して、移動先のVMが動作しているIDCの所在地を問い合わせる。例えば、移動先問合せ部424は、コンテンツ移動制御部422から移動先のVMが動作しているIDCを取得し、取得したIDCの所在地を自クラウドと異なるクラウドのゲートウェイ4Bに対して問い合わせる。そして、移動先問合せ部424は、移動先のゲートウェイ4Bの応答によりIDCの所在地を取得し、取得した所在地をコンテンツ移動制御部422に引き渡す。
ゲートウェイ4Bの制御部52は、通信制御部521および場所取得部522を有する。なお、制御部52は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。
通信制御部521は、自己のゲートウェイ4Bと他のゲートウェイ4Aとの通信を制御する。また、通信制御部521は、自己のゲートウェイ4Bと同一クラウドB内の制御装置1BやVM2Cとの各種通信を制御する。
場所取得部522は、他のゲートウェイ4AからIDCの所在地の問い合わせを取得し、問い合わせのあったIDCの所在地を制御装置1Bに問い合わせる。そして、場所取得部522は、問い合わせた結果であるIDCの所在地を、問い合わせ元のゲートウェイ4Aに対して送信する。
制御部12Bの場所認証管理部122Bは、ゲートウェイ4Bから問い合わせのあったIDCの所在地を場所認証管理テーブル111に基づいて取得する。そして、場所認証管理部122Bは、取得した所在地をゲートウェイ4Bに引き渡す。
[実施例2に係るコンテンツ移動制御の手順]
次に、実施例2に係るコンテンツ移動制御の手順を、図11を参照して説明する。図11は、実施例2に係るコンテンツ移動制御の手順を示すフローチャートである。
まず、コンテンツ移動制御部422は、外部処理ファイルの移動要求があるか否かを判定する(ステップS61)。ここで、外部処理ファイルとは、自己のクラウドAと別のクラウドB内のVMで処理されるべきファイルを意味する。すなわち、外部処理ファイルは、自己のクラウドA内のVMから別のクラウドB内のVMへ移動するファイルを示す。
そして、外部処理ファイルの移動要求がないと判定された場合には(ステップS61;No)、コンテンツ移動制御部422は、外部処理ファイルの移動要求があるまで待つ。一方、外部処理ファイルの移動要求があると判定された場合には(ステップS61;Yes)、コンテンツ移動制御部422は、外部処理ファイルのハッシュ値を算出する(ステップS62)。
そして、コンテンツ移動制御部422は、算出したハッシュ値と同一のハッシュ値がコンテンツID管理テーブル411にあるか否かを判定する(ステップS63)。同一のハッシュ値がコンテンツID管理テーブル411にある場合(ステップS63;Yes)、コンテンツ移動制御部422は、同一のハッシュ値を持つコンテンツの移動許可範囲を、外部処理ファイルの移動許可範囲とする(ステップS64)。そして、コンテンツ移動制御部422は、ステップS69に移行する。
一方、同一のハッシュ値がコンテンツID管理テーブル411にない場合(ステップS63;No)、コンテンツ移動制御部422は、外部処理ファイルのフィンガプリント(シグネチャ)値を生成する(ステップS65)。そして、コンテンツ移動制御部422は、生成したフィンガプリント値と共通するフィンガプリント値がコンテンツID管理テーブル411にあるか否かを判定する(ステップS66)。かかる判定処理は、コンテンツ類似度判定部423によって実行される。
コンテンツ類似度判定部423によって共通するフィンガプリント値があると判定された場合(ステップS66;Yes)、コンテンツ移動制御部422は、共通するフィンガプリント値があると判定されたコンテンツの移動許可範囲の積集合を算出する。そして、コンテンツ移動制御部422は、算出した積集合を、外部処理ファイルの移動許可範囲とする(ステップS67)。一方、共通するフィンガプリント値がないと判定された場合(ステップS66;No)、コンテンツ移動制御部422は、予めデフォルトで規定された移動許可範囲を、外部処理ファイルの移動許可範囲とする(ステップS68)。
続いて、コンテンツ移動制御部422は、外部処理ファイルの移動許可範囲の値で外部処理ファイルの移動可否をチェックする(ステップS69)。そして、コンテンツ移動制御部422は、外部処理ファイルが移動許可とされたか否かを判定する(ステップS70)。外部処理ファイルが移動許可とされたと判定された場合(ステップS70;Yes)、コンテンツ移動制御部422は、外部処理ファイルの外部処理に関して制限しない(ステップS71)。すなわち、コンテンツ移動制御部422は、移動先の所在地が移動許可の範囲内であると判断し、ゲートウェイを介して、外部処理ファイルを移動元のVMから移動先のVMへ移動する。
一方、外部処理ファイルが移動拒否とされたと判定された場合(ステップS70;No)、コンテンツ移動制御部422は、外部処理ファイルの外部処理に関して許可範囲外として処理をブロックする(ステップS72)。すなわち、コンテンツ移動制御部422は、移動先の所在地が移動許可の範囲外であると判断し、外部処理ファイルの移動をブロックする。
[移動可否のチェック処理の手順]
次に、図11に示す移動可否のチェックをするS69の処理手順について、図12を用いて説明する。図12は、実施例2に係る移動可否のチェック処理の手順を示すフローチャートである。
まず、コンテンツ移動制御部422は、移動先問合せ部424により移動先のクラウドのゲートウェイ4Bに対して、移動先のVMが動作しているIDCの所在位置を問い合わせる(ステップS81)。ここで、所在位置とは、地域や国を含むものである。そして、コンテンツ移動制御部422は、外部処理ファイルの移動許可範囲が、問い合わせの応答により取得した所在位置に含まれているか否かを判定する(ステップS82)。
外部処理ファイルの移動許可範囲が、問い合わせの応答により取得した所在位置に含まれていると判定された場合(ステップS82;Yes)、コンテンツ移動制御部422は、ゲートウェイ4Aで移動許可とする(ステップS83)。一方、外部処理ファイルの移動許可範囲が、問い合わせの応答により取得した所在位置に含まれていないと判定された場合(ステップS82;No)、コンテンツ移動制御部422は、ゲートウェイ4Aで移動拒否とする(ステップS84)。
[実施例2に係るコンテンツ移動制御の具体例]
次に、実施例2に係るコンテンツ移動制御の具体例について、図13を参照しながら説明する。図13は、実施例2に係るコンテンツ移動制御の具体例を説明する図である。図13では、コンテンツc3をクラウドAのIDC−aからクラウドBのIDC−mへ移動する場合について説明する。なお、ゲートウェイ4AのコンテンツID管理テーブル411には、IDC−aに記憶されたコンテンツID管理テーブル211(図示せず)の内容がコピーされているものとする。そして、コンテンツID管理テーブル411には、File_100〜101の2個のファイルを含む情報が記憶されているが、コンテンツc3と同一のハッシュ値は含まれていないものとする。
まず、ゲートウェイ4Aは、クラウドAのIDC−aにあるコンテンツc3について、クラウドAからクラウドBへの移動要求を取得する(ステップS100)。ここでは、ゲートウェイ4Aは、移動するコンテンツc3のコピーを受け取ることにより移動要求を取得する。
そして、ゲートウェイ4Aは、コンテンツID管理テーブル411に基づいて、コンテンツID管理テーブル411内の各ファイルとコンテンツc3との同一性を判定する。ここでは、ゲートウェイ4Aは、コンテンツID管理テーブル411にはコンテンツc3と同一のハッシュ値が含まれていないので、同一のコンテンツはないと判定する。
また、ゲートウェイ4Aは、コンテンツID管理テーブル411に基づいて、コンテンツID管理テーブル411内の各ファイルとコンテンツc3との共通性を判定し、コンテンツc3の移動許可範囲を求める。ここでは、ゲートウェイ4Aは、コンテンツc3のフィンガプリントがコンテンツID管理テーブル411内のFile_100、101の各フィンガプリントと共通するものとする。すると、ゲートウェイ4Aは、共通すると判定した各File_100、101の各移動許可範囲の積集合を算出し、算出した積集合をコンテンツc3の移動許可範囲とする。この結果、ゲートウェイ4Aは、「Japan」をコンテンツc3の移動許可範囲とする。
さらに、ゲートウェイ4Aは、移動先のクラウドBのゲートウェイ4Bに移動先のIDC−mの所在地を問い合わせ、問い合わせの応答を取得する(ステップS101)。ここでは、クラウドBのゲートウェイ4Bは、ゲートウェイ4AからIDC−mの所在地の問い合わせに対し、クラウドB内の場所認証管理テーブル111に基づいてIDC−mの所在地「China、北京」を取得する(ステップS102)。そして、ゲートウェイ4Bは、取得した所在地「China、北京」をゲートウェイ4Aに引き渡す。
そして、ゲートウェイ4Aは、コンテンツc3の移動許可範囲が、問い合わせの応答により取得した所在地に含まれているか否かを判定する。ここでは、ゲートウェイ4Aは、移動先のIDC−mの所在地が「China、北京」であるので、当該所在地が、コンテンツc3の移動許可範囲「Japan」に含まれないと判定する。したがって、ゲートウェイ4Aは、移動先のIDC−mの所在地「China、北京」が移動許可範囲外として、コンテンツc3の移動をブロックする(ステップS103)。
[実施例2の効果]
上記実施例2によれば、ゲートウェイ4Aは、移動元から移動先へ移動元および移動先のそれぞれのゲートウェイ4A、4Bを介してコンテンツを移動する場合に、移動先のゲートウェイ4Bに対して、移動先のIDCの所在地を問い合わせる。そして、ゲートウェイ4Aは、移動先のゲートウェイ4Bの応答により取得した移動先のIDCの所在地に基づいて、移動するコンテンツの移動を制御する。かかる構成によれば、ゲートウェイ4Aは、移動先のゲートウェイ4Bに対して、移動先のIDCの所在地を問い合わせ、応答により取得した所在地を用いて移動するコンテンツの移動を制御するので、移動するコンテンツについて適切な移動制御を行うことができる。すなわち、ゲートウェイ4Aは、移動するコンテンツがゲートウェイを介して移動するような場合であっても、移動するコンテンツが移動許可されていない所在地に移動することを制限できる。特に、ゲートウェイ4Aは、移動するコンテンツが法的に許可されていない国に移動しないように適切に制御できる。
また、上記実施例2によれば、ゲートウェイ4Aは、移動するコンテンツの移動許可範囲を、当該コンテンツのフィンガプリントと共通するフィンガプリントを有するコンテンツの移動許可範囲の積集合に決定する。そして、ゲートウェイ4Aは、決定した移動許可範囲に基づいて、移動するコンテンツの移動を制御する。かかる構成によれば、ゲートウェイ4Aは、仮に移動するコンテンツが一部流用されたものであっても、当該コンテンツの移動許可範囲が流用元の移動許可範囲と共通することとなるので、共通する移動許可範囲外の許可されていない移動先への移動を適切に制限できる。特に、ゲートウェイ4Aは、移動するコンテンツが一部流用されたものであっても、移動するコンテンツが法的に許可されていない国に移動しないように適切に制御できる。
なお、実施例1および実施例2では、コンテンツID管理テーブル113、211、411は、VM単位にコンテンツを管理し、コンテンツ毎にコンテンツの特徴素およびコンテンツの移動が許可された領域の範囲を記憶するものとして説明した。しかしながら、コンテンツID管理テーブル113、211、411は、これに限定されるものではなく、IDC単位にコンテンツを管理しても良いし、所定のグループ単位にコンテンツを管理しても良い。IDC単位にコンテンツを管理する場合には、例えば、コンテンツID管理テーブル113のデータ構造にコンテンツが存在するVMの名称が追加されるようにすれば良い。また、所定のグループ単位にコンテンツを管理する場合には、例えば、コンテンツID管理テーブル113のデータ構造にコンテンツが存在するグループの名称、IDCの名称およびVMの名称が追加されるようにすれば良い。
また、実施例2では、移動先問合せ部424は、移動先のゲートウェイ4Bに対して、コンテンツ移動制御部422から移動先のVMが動作しているIDCを取得し、取得したIDCの所在地を問い合わせるものとして説明した。しかしながら、移動先問合せ部424は、移動先のゲートウェイ4Bに対して、コンテンツ移動制御部422から移動先のVMを取得し、取得したVMが動作しているIDCの所在地を問い合わせるものとしても良い。この場合、ゲートウェイ4Bの場所取得部522は、他のゲートウェイ4AからVMが動作しているIDCの所在地の問い合わせを取得し、問い合わせのあった、VMが動作しているIDCの所在地を制御装置1Bに問い合わせる。そして、制御部12Bの場所認証管理部122Bは、ゲートウェイ4BからVMが動作しているIDCの所在地の問い合わせを取得し、取得した問い合わせのあった、VMが動作しているIDCをVM管理テーブル112から取得する。さらに、場所認証管理部122Bは、取得したIDCの所在地を、場所認証管理テーブル111から取得する。そして、場所認証管理部122Bは、取得した所在地をゲートウェイ4Bに引き渡すようにすれば良い。
また、実施例1および実施例2では、コンテンツの移動として、国を跨るコンテンツの移動を一例として挙げたが、これに限定されることなく、地域を跨るコンテンツの移動であっても良いし、組織を跨るコンテンツの移動であっても良い。
[プログラム等]
なお、制御装置1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した記憶部11および制御部12等の各機能を搭載することによって実現することができる。また、VM2Aは、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した記憶部21および制御部22等の各機能を搭載することによって実現することができる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、コンテンツ移動制御部124とコンテンツ類似度判定部125とを1個の部として統合しても良いし、コンテンツID管理部223とコンテンツ類似度判定部224とを1個の部として統合しても良い。一方、コンテンツ移動制御部124は、移動コンテンツとコンテンツID管理テーブル113内のコンテンツとの同一性を判定する判定部と移動コンテンツとコンテンツID管理テーブル113内のコンテンツとの共通性を判定する判定部とに分散しても良い。また、場所認証管理テーブル111やVM管理テーブル112等の記憶部11を制御装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図14を用いて、図1に示した制御装置1の制御部12と同様の機能を有するコンテンツ移動制御プログラムを実行するコンピュータの一例を説明する。
図14は、コンテンツ移動制御プログラムを実行するコンピュータを示す図である。図14に示すように、コンピュータ1000は、RAM1010と、ネットワークインタフェース装置1020と、HDD1030と、CPU1040、媒体読取装置1050およびバス1060とを有する。RAM1010、ネットワークインタフェース装置1020、HDD1030、CPU1040、媒体読取装置1050は、バス1060によって接続されている。
そして、HDD1030には、図1に示した制御部12と同様の機能を有するコンテンツ移動制御プログラム1031が記憶される。また、HDD1030には、図1に示した場所認証管理テーブル111、VM管理テーブル112およびコンテンツID管理テーブル113に対応するコンテンツ移動制御処理関連情報1032が記憶される。
そして、CPU1040がコンテンツ移動制御プログラム1031をHDD1030から読み出してRAM1010に展開することにより、コンテンツ移動制御プログラム1031は、コンテンツ移動制御プロセス1011として機能するようになる。そして、コンテンツ移動制御プロセス1011は、コンテンツ移動制御処理関連情報1032から読み出した情報等を適宜RAM1010上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
媒体読取装置1050は、コンテンツ移動制御プログラム1031がHDD1030に記憶されていない場合であっても、コンテンツ移動制御プログラム1031を記憶する媒体等からコンテンツ移動制御プログラム1031を読み取る。媒体読取装置1050には、例えばCD−ROMや光ディスク装置がある。
ネットワークインタフェース装置1020は、外部装置とネットワーク経由で接続する装置であり、有線に対応するものであっても、無線に対応するものであっても良い。
なお、上記のコンテンツ移動制御プログラム1031は、公衆回線、インターネット、LAN、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等に記憶されるようにしても良い。この場合には、コンピュータ1000がネットワークインタフェース装置1020を介して他のコンピュータ等からコンテンツ移動制御プログラム1031を読み出して実行する。
以上の実施例1〜2を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)移動元のサーバ装置から移動先のサーバ装置へデータの移動を制御する制御装置によって実行されるデータ移動制御方法であって、
前記移動元のサーバ装置から前記移動先のサーバ装置へデータを移動する場合に、データ毎にデータの特徴素およびデータの移動許可領域を記憶する記憶部から、移動するデータの特徴素と共通する特徴素を有するデータの移動許可領域を取得し、
該取得した移動許可領域および前記移動先のサーバ装置の所在位置に基づいて、移動するデータの移動を制御する
処理を含むことを特徴とするデータ移動制御方法。
(付記2)データが作成されたとき、作成されたデータの特徴素を算出し、前記記憶部に、算出した特徴素と共通する特徴素を有するデータがあるか否かを判定し、
該判定の結果、算出した特徴素と共通する特徴素を有するデータがあると判定する場合に、作成されたデータの移動許可領域を、共通する特徴素を有するデータの移動許可領域に基づいて決定し、
該決定した移動許可領域および算出した特徴素を、作成されたデータに対応付けて前記記憶部に格納する
処理をさらに含むことを特徴とする付記1に記載のデータ移動制御方法。
(付記3)前記移動元のサーバ装置から前記移動先のサーバ装置へ前記移動元および前記移動先のそれぞれのゲートウェイを介してデータを移動する場合に、前記移動先のゲートウェイに対して、前記移動先のサーバ装置の所在位置を問い合せ、
前記制御する処理は、前記移動先のゲートウェイの応答により取得した前記移動先のサーバ装置の所在位置に基づいて、移動するデータの移動を制御する
処理を含むことを特徴とする付記1に記載のデータ移動制御方法。
(付記4)前記制御する処理は、作成されたデータまたは移動するデータの移動許可領域を、当該データの特徴素と共通する特徴素を有するデータの移動許可領域の積集合に決定し、
該決定した移動許可領域に基づいて、移動するデータの移動を制御する
処理を含むことを特徴とする付記2または付記3に記載のデータ移動制御方法。
(付記5)データ毎にデータの特徴素およびデータの移動許可範囲を記憶する記憶部と、
移動元のサーバ装置から移動先のサーバ装置へデータを移動する場合に、前記記憶部から、移動するデータの特徴素と共通する特徴素を有するデータの移動許可領域を取得し、取得した移動許可領域および前記移動先のサーバ装置の所在位置に基づいて、移動するデータの移動を制御する移動制御部と
を有することを特徴とする制御装置。
(付記6)前記移動元のサーバ装置から前記移動先のサーバ装置へ前記移動元および前記移動先のそれぞれのゲートウェイを介してデータを移動する場合に、前記移動先のゲートウェイに対して、前記移動先のサーバ装置の所在位置を問い合せる問合せ部を有することを特徴とする付記5に記載の制御装置。
(付記7)コンピュータに、
移動元のサーバ装置から移動先のサーバ装置へデータを移動する場合に、データ毎にデータの特徴素およびデータの移動許可領域を記憶する記憶部から、移動するデータの特徴素と共通する特徴素を有するデータの移動許可領域を取得し、
該取得した移動許可領域および前記移動先のサーバ装置の所在位置に基づいて、移動するデータの移動を制御する
処理を実行させるデータ移動制御プログラム。
(付記8)前記移動元のサーバ装置から前記移動先のサーバ装置へ前記移動元および前記移動先のそれぞれのゲートウェイを介してデータを移動する場合に、前記移動先のゲートウェイに対して、前記移動先のサーバ装置の所在位置を問い合せる
処理を実行させる付記7に記載のデータ移動制御プログラム。
(付記9)移動元のサーバ装置と、移動先のサーバ装置と、前記移動元のサーバ装置から前記移動先のサーバ装置へデータの移動を制御する制御装置を含むデータ移動制御システムであって、
前記制御装置は、
データ毎にデータの特徴素およびデータの移動許可範囲を記憶する記憶部と、
前記移動元のサーバ装置から前記移動先のサーバ装置へデータを移動する場合に、前記記憶部から、移動するデータの特徴素と共通する特徴素を有するデータの移動許可領域を取得し、取得した移動許可領域および前記移動先のサーバ装置の所在位置に基づいて、移動するデータの移動を制御する移動制御部と
を有することを特徴とするデータ移動制御システム。