(57)【要約】【課題】機密情報を含むユーザデータを外部ネットワークに送出する必要がなく、しかも、利用者がアプリケーションを実行するための適切な環境を用意する必要製をなくする。【解決手段】ローカルサイト側仮想化プラットフォーム及びリモートサイト側仮想化プラットフォームを有し、前記ローカルサイト側仮想化プラットフォームは、前記クライアントマシンとの間、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間に別々に通信路を確立するネットワーク処理部と、ユーザデータに機密情報が含まれているか否かを判断し、その送信先を決定する機密データ制御部と、ユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側仮想化プラットフォームの仮想マシンをローカルサイト側仮想化プラットフォームにマイグレーションする仮想マシンサービス部とを有している。【選択図】図１
2010244515.tif 000002
【特許請求の範囲】
【請求項１】
クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理するウェブサービスシステムにおいて、
通信網で連繋されたローカルサイト側の仮想化プラットフォーム及びリモートサイト側の仮想化プラットフォームを有し、
前記ローカルサイト側の仮想化プラットフォームは、
前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立するネットワーク処理部と、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定する機密データ制御部と、
前記機密データ制御部がユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションする仮想マシンサービス部とを有することを特徴とするウェブサービスシステム。
【請求項２】
前記ユーザデータは、機密情報の有無を示す属性情報を有しており、
前記機密データ制御部は、ユーザデータの前記属性情報に基づいて機密情報が含まれているか否かを判断するものである請求項１に記載のウェブサービスシステム。
【請求項３】
前記ネットワーク処理部が、前記データの送信元のアドレス情報と仮想ネットワークの識別子を記憶している転送テーブルを有し、
前記機密データ制御部が、前記ウェブサーバが前記第１の仮想マシンシステム上にマイグレーションされている場合に、前記転送テーブルに、前記データの送信元と前記ウェブサーバが属する仮想ネットワークの識別子の組を記憶する機能を有する請求項１に記載のウェブサービスシステム。
【請求項４】
前記機密データ制御部が、前記ウェブサーバへの前記送信データからファイルを抽出して前記ファイルが機密情報を含んでいるかを示す属性情報の有無を判断すると共に、前記属性情報がある場合にこの属性情報を削除する機能を有する請求項１に記載のウェブサービスシステム。
【請求項５】
クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理するウェブサービス方法において、
通信網で連繋されたローカルサイト側の仮想化プラットフォーム及びリモートサイト側の仮想化プラットフォームを有し、
前記ローカルサイト側の仮想化プラットフォームが有するネットワーク処理部により、前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立し、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定し、
前記ユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションし、
前記マイグレーションした仮想マシンにより、機密情報を含むユーザデータをローカルサイト側で処理することを特徴とするウェブサービス方法。
【請求項６】
クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理する制御を行うプログラムであって、
リモートサイト側の仮想化プラットフォームと通信網で連繋されたローカルサイト側の仮想化プラットフォームを構築するコンピュータに、
前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立する機能と、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定する機能と、
前記ユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションする機能とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントマシンからウェブベースのアプリケーションソフトを利用することに関し、特に機密情報を含むユーザデータが外部ネットワークに送信されることによるリスクの回避に関する。
【背景技術】
【０００２】
企業活動において、各ユーザが多様なデータを処理するために、ユーザが各自でローカルネットワーク上のクライアントマシンにソフトウェアをインストールして利用していた。この場合、必要なソフトウェアのインストールや、それらのソフトウェアの利用に伴う様々なトラブルへの対処は、ユーザ各自の手間となる。近年、特にファイルの種類やデータの処理方法の多様化に伴い、多数のソフトウェアが必要となっているので、その手間も増大している。
【０００３】
そこで近年、ネットワーク回線の広帯域化と、ウェブサービスの進歩に伴い、ウェブインターフェイス経由でリモートサイトにあるソフトウェアをサービスとして利用するＳａａＳ（Software As A Service）のような形態が注目されている。
【０００４】
図１２は、ユーザがクライアントマシンからＳａａＳによって提供されるウェブベースのアプリケーションを使用する例を示す説明図である。図１２（ａ）は実際のデータ送信の流れを示し、図１２（ｂ）はユーザが実際に操作している状態を示す。なお、図１２において、実際のデータファイルおよび操作内容情報の送受信は、全てネットワーク（インターネット）を経由して行う。
【０００５】
図１２（ａ）に示すように、ユーザはクライアントマシン９００からウェブブラウザ９１０によって、インターネット９２０を経由してローカルマシン上にないウェブサーバを兼ねるアプリケーションサーバ（以後ＡＰサーバという）９３０にアクセスし、ワードプロセッサや表計算などのようなアプリケーション９１１ａを起動する。前記アプリケーションソフト９１１ａ上でユーザが使用するユーザデータ９０１は、クライアントマシン９００からＡＰサーバ９３０に送信される。
【０００６】
図１２（ａ）に示すように、ユーザがウェブブラウザ９１０によりＡＰサーバ９３０にアクセスしてアプリケーション９１１ａを起動させると、図１２（ｂ）に示す様に、クライアントマシン９００のディスプレイ９０２上にはウェブブラウザ９１０により、ＡＰサーバ９３０上で起動しているアプリケーション９１１ａ及びそのアプリケーション９１１ａに用いられるユーザデータ９０１が映し出され、ユーザがクライアントマシン９００上でＡＰサーバ９３０上のアプリケーション９１１ａを操作する仮想状態が構築される。
【０００７】
ＡＰサーバ９３０上で動作しているアプリケーション９１１ａは、クライアントマシン９００上のウェブブラウザ９１０から送られるユーザの操作内容に応じてユーザデータ９０１に対する処理を行うと同時に、その操作結果がクライアントマシン９００上のウェブブラウザ９１０の表示内容としてクライアントマシン９００のディスプレイ９０２上に映し出される。
【０００８】
このようにして、ユーザはクライアントマシン９００に新規にソフトウェアをインストールすることなく、ウェブブラウザ９１０を経由してＡＰサーバ９３０の提供するアプリケーション９１１ａを利用することができる。これによって、ユーザは各自のクライアントマシンへのソフトウェアの導入および保守にかかる手間から解放される。
【０００９】
これに関連する技術文献として、次の各特許文献がある。特許文献１には、クラスタシステム上の仮想マシンを第１のノードから第２のノードへマイグレーションするという技術が記載されている。特許文献２には、ウェブブラウザを経由して遠隔地のウェブサーバで動作するウェブアプリケーションを利用するシステムで、クライアントマシンがユーザから送信される特定の情報を変換してからウェブサーバに送信するという技術が記載されている。特許文献３には、クライアントマシンからウェブサーバに送信される情報を暗号化する技術の一例が記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−２４４４８１号公報
【特許文献２】特開２００８−１７７８２１号公報
【特許文献３】特表２００３−５０１７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
図１２で説明したように、ウェブベースのアプリケーションを利用してユーザデータを処理する場合には、ＡＰサーバに対してそのユーザデータを送信する必要がある。しかしながら、このユーザデータには企業活動における機密が含まれていることがある。特に、データ漏洩が起こる可能性がある状況においては、利用するＡＰサーバが信頼できるものとは言えない。
【００１２】
また、ＡＰサーバ自体が十分に信頼できるとしても、利用するネットワーク（インターネット）上では盗聴される恐れがある。ＡＰサーバに情報を送信する場合、普通はＳＳＬやＴＳＬなどのプロトコルを使用した暗号化通信を使用するが、近年の計算機の高速化・高性能化に伴って、特に暗号化の強度が十分ではない場合に、その通信が不正に解読されてしまう危険性があることを否定することができない。
【００１３】
ウェブベースのアプリケーションを利用することに対するこのような情報漏洩に対する懸念を解決するには、そもそも機密情報を含むユーザデータを、機密情報を扱うローカルサイトからリモートサイトへ送信しないようにすればよい。その方法の一つに、特許文献１に開示されたように、データを処理するためのアプリケーションをネットワーク経由でダウンロードして使用するという方法がある。こうすれば、機密情報を含むユーザデータを外部ネットワークに送信する必要は確かになくなる。
【００１４】
しかしながら、アプリケーションをネットワーク経由でダウンロードする方法は、利用者が機密を含まないデータを処理する場合であっても、アプリケーションをダウンロードする必要があるため、ダウンロード先のローカルサイト側の計算機資源を無駄に消費する点や、利用者がアプリケーションを実行するための適切な環境を用意しなければならない手間がある点などの問題がある。
【００１５】
前述の特許文献の中で、特許文献２および３に記載の技術では機密情報を含むデータを暗号化してからクライアントマシンからウェブサーバに送信しているが、機密情報を含むユーザデータをローカルサイト外部に送信しなくてもよいようにするものではない。
【００１６】
本発明の目的は、機密情報を含むユーザデータをネットワークに送出する必要がなく、しかも、利用者がアプリケーションを実行するための適切な環境を用意する必要がないウェブサービスシステム、ウェブサービス方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
前記目的を達成するため、本発明に係るウェブサービスシステムは、クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理するウェブサービスシステムにおいて、
通信網で連繋されたローカルサイト側の仮想化プラットフォーム及びリモートサイト側の仮想化プラットフォームを有し、
前記ローカルサイト側の仮想化プラットフォームは、
前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立するネットワーク処理部と、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定する機密データ制御部と、
前記機密データ制御部がユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションする仮想マシンサービス部とを有することを特徴とするものである。
【００１８】
本発明に係るウェブサービス方法は、クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理するウェブサービス方法において、
通信網で連繋されたローカルサイト側の仮想化プラットフォーム及びリモートサイト側の仮想化プラットフォームを有し、
前記ローカルサイト側の仮想化プラットフォームが有するネットワーク処理部により、前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立し、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定し、
前記ユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションし、
前記マイグレーションした仮想マシンにより、機密情報を含むユーザデータをローカルサイト側で処理することを特徴とするものである。
【００１９】
本発明に係るプログラムは、クライアントマシンから提供されるユーザデータをリモートサイト側の仮想マシンによって処理する制御を行うプログラムであって、
リモートサイト側の仮想化プラットフォームと通信網で連繋されたローカルサイト側の仮想化プラットフォームを構築するコンピュータに、
前記クライアントマシンとの間と、前記リモートサイト側の仮想化プラットフォームのネットワーク処理部との間とにおいて別々に通信路を確立する機能と、
前記ローカルサイト側の前記ネットワーク処理部に伝送されたユーザデータに機密情報が含まれているか否かを判断し、その判断結果に基づいて前記ユーザデータの送信先を決定する機能と、
前記ユーザデータに機密情報が含まれていると判断した結果を受けて、リモートサイト側の仮想化プラットフォームの仮想マシンをローカルサイト側の仮想化プラットフォームにマイグレーションする機能とを実行させることを特徴とするものである。
【発明の効果】
【００２０】
本発明は、クライアントマシンからリモートサイトへの通信形態を、クライアントマシンからローカルサイトへのセッションと、ローカルサイトからリモートサイトへのセッションを別々に確立して、通信を中継する形態として構築するため、クライアントからリモートサイトへ送出されるデータのチェックを行うことができる。
上述したように、データのチェックが可能であるため、機密情報を含むデータの場合、リモートサイトで動作している仮想マシンをローカルサイトにマイグレーションし、その仮想マシンを用いて前記データをローカルサイトで処理することができ、機密情報を含むデータがネットワークから外部へ漏出するのを防止することができ、しかも、機密情報を含むデータ処理の場合のみ、仮想マシンのマイグレーションを利用してデータ処理を行うことができ、ローカルサイトの計算機資源を無駄に消費することを解消できる。
さらに、クライアントマシンとローカルサイトとのセッションを確立するのみにより、利用者は、機密情報の有無に関係なく、仮想マシンを利用してデータを処理することができ、データ処理を実行するための適切な環境を用意する必要がなくなる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態におけるウェブサービスシステムとクライアントマシンの構成を示す説明図である。
【図２】本実施形態で利用する計算機プラットフォームを仮想的に実現するものである仮想マシンシステムの概念について示す説明図である。
【図３】ネットワークを介してサーバマシン外部から各仮想マシンを見た見かけ上の状態を示す説明図である。
【図４】サービス仮想マシンを含む仮想マシンシステムの概念について示す説明図である。
【図５】図２で説明したハイパーバイザ上で構築された仮想マシンが、別のハイパーバイザ上にマイグレーションされる様子を示す概念図であり、図５（Ａ）はマイグレーションされる前の状態を、図５（Ｂ）はその後の状態を各々示す。
【図６】図１で示したローカルサイト側のサービス仮想マシンの内部構成を示す説明図である。
【図７】図６に示した転送テーブルのデータ構成を示す説明図である。
【図８】図６に示す転送テーブルに記憶されているデータの構造を示す説明図である。
【図９】クライアントマシンからＡＰサーバへの通信をウェブプロキシが中継する際に、機密データ制御部が行う動作を示すフローチャートである。
【図１０】図１０（ａ）は、ユーザデータの属性情報が「公開」である場合におけるユーザデータの処理状態を説明する説明図、図１０（ｂ）はユーザデータの属性情報が「機密」である場合におけるユーザデータの処理状態を説明する説明図である。
【図１１】ＡＰサーバ（仮想マシン）がローカルサイト側にマイグレーションされた際の、仮想マシンシステム内の仮想ネットワークについて示す説明図である。
【図１２】ユーザがクライアントマシンからＳａａＳによって提供されるウェブベースのアプリケーションソフトを使用する例を示す説明図であり、図１２（ａ）は実際のデータ送信の流れを示す図、図１２（ｂ）はユーザが操作するクライアントのディスプレイの表示状態を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図に基づいて詳細に説明する。
一般にウェブプロキシは、ファイアウォールによってインターネットへの通信を制限している環境である例えば社内ネットワーク等の内部ネットワーク（イントラネット）に配置され、イントラネットに含まれるクライアントマシンが外部ネットワークのサーバ等にアクセスする場合に、そのアクセスを中継して代行する機能を有している。
クライアントマシンから外部のサーバ等に通信を行う場合にＳＳＬ（Secure Socket Layer）又はＴＬＳ（Transport Layer Security）のプロトコルを使用して暗号化を行うセキュアな通信では、前記ウェブプロキシは、前記暗号化されたデータをチェックすることなく、その通信を単純にパススルー（リレー）するだけで、クライアントマシンと外部サーバ等との間にセッションが確立する。
したがって、ウェブプロキシでは、ＳＳＬやＴＬＳのプロトコルを使用して暗号化されたデータの内容をチェックすることなく、その暗号化されたデータを外部に送出するため、そのデータが通信途中で解読される可能性がある。
本発明の実施形態は、前記ウェブプロキシが有する脆弱性を改善すると共に、仮想マシンシステムを利用してウェブサービスシステムを構築したものである。以下に、本発明の実施形態を具体的に説明する。
【００２３】
本発明の実施形態に係るウェブサービスシステム１は図１に示す様に、ローカルサイト側に配置した仮想化プラットフォーム１００と、リモートサイト側に配置した仮想化プラットフォーム４００と、ローカルサイト側に配置したクライアントマシン８００とを有している。これらの仮想化プラットフォーム１００，４００は、ルータ７２，７３及びインターネット７１により連繋されている。ローカルサイト側の仮想化プラットフォーム１００は、クライアント８００がローカルサイト側でアクセスするためのものであり、ローカルサイト側の仮想化プラットフーム１００に接続されたルータ７２には、ファイアウォールの機能が組み込まれている。
【００２４】
前記ローカルサイト側の仮想化プラットフォーム１００は図１に示す様に、仮想マシンシステムを実現するサービス仮想マシン３００と、ハイパーバイザ２００とを有している。前記リモートサイト側の仮想化プラットフォーム４００は図１に示す様に、仮想マシンシステムを実現するサービス仮想システム６００と、ハイパーバイザ５００とを有している。また、前記リモートサイト側の仮想化プラットフォーム４００は図１に示す様に、クライアント８００が提供するデータが機密情報を含むものである場合に前記仮想化プラットフォーム１００側からの要求に基づいてマイグレーションするためのＡＰサーバ（仮想マシン）７００を有している。前記ＡＰサーバ７００は、クライアントマシン８００から提供されるユーザデータを処理するためのアプリケーションを実行するウェブサービス機能を備えた仮想マシンである。
【００２５】
上述した本発明の実施形態に用いるローカルサイト側の仮想化プラットフォーム１００とリモートサイト側の仮想化プラットフォーム４００を図１〜図５に基づいて説明する。
【００２６】
ローカルサイト側の仮想化プラットフォーム１００とリモートサイト側の仮想化プラットフォーム４００とは図２に示す様に、物理的な計算機上に仮想的に構築されるものである。以下では、クライアントマシン８００が提供するユーザデータを処理するための仮想マシン（ＡＰサーバ７００）に着目して説明する。図２で説明する仮想マシンは図１に示した仮想的に構築したＡＰサーバ７００に対応するものである。図１では、ＡＰサーバ７００を１台図示しているが、ＡＰサーバ７００に相当する仮想マシンは１以上存在しており、ユーザデータを処理する種々のアプリケーションは、１つの仮想マシンに複数組み込まれている場合も在るし、或いは２以上の仮想マシンに分散して組み込まれている場合もある。
【００２７】
前記計算機は、物理的なＣＰＵ（Central Processing Unit）と、物理的なＲＡＭ（Random Access Memory）と、物理的なＨＤＤ（Hard Disk Drive）と、物理的なＮＩＣ（Network Interface Card）などの物理的なコンピュータ資源を有しており、ＯＳ（Operating System）とアプリケーションとを組み合わせたソフトウェアを実行する構成になっている。上述した物理的な計算機を用いることにより、ローカルサイト側の仮想化プラットフォーム１００とリモートサイト側の仮想化プラットフォーム４００とを構築している。
なお、ローカルサイト側の仮想化プラットフォーム１００とリモートサイト側の仮想化プラットフォーム４００とは、仮想マシンがマイグレーションされる点が異なるものであり、その他の構成は同様な構成であるから、図１及び図２に基づいて、リモートサイト側の仮想化プラットフォーム４００について説明する。
【００２８】
図２に示す様に、物理的な計算機１０は、ＣＰＵ１０ａ，ＲＡＭ１０ｂ，ＨＤＤ１０ｃ等の物理的なコンピュータ資源を有している。前記計算機１０には図１及び図２に示す様に、計算機の物理的環境を仮想マシンとして実現するためのソフトウェア或いはファームウェアであるハイパーバイザ５００が組み込まれている。ハイパーバイザ５００はＶＭＭ（Virtual Machine Manager）或いは仮想マシンモニタと呼ばれることもある。
【００２９】
前記ハイパーバイザ５００は、計算機１０上のＣＰＵ１０ａ，ＲＡＭ１０ｂ，ＨＤＤ１０ｃなどのコンピュータ資源を、時分割或いは空間分割などの手法によって仮想マシンに割り当てる。以下の説明では、仮想マシンとして２以上の仮想マシン１＃（１〜ｎ）を用いる場合を例にとって説明するが、仮想マシンの台数は、これに限られるものではない。
具体的に説明すると、前記ハイパーバイザ５００は図２に示す様に、前記物理的なコンピュータ資源を第１番目から第ｎ番目のｎ台の仮想マシン１＃（＃＝１〜ｎ）に割り当てるとともに、第１番目の仮想マシンとして割り当てた仮想マシン１１（＃＝１）に、仮想ＣＰＵ（Central Processing Unit）１１（＃＝１）ａ、仮想ＲＡＭ（Random Access Memory）１１（＃＝１）ｂ、仮想ＨＤＤ（Hard Disk Drive）１１（＃＝１）ｃ、仮想ＮＩＣ（Network Interface Card）１１（＃＝１）ｄなどの仮想的なコンピュータ資源を割り当て、それ以降の仮想マシンにも同様に仮想ＣＰＵ（Central Processing Unit）、仮想ＲＡＭ（Random Access Memory），仮想ＨＤＤ（Hard Disk Drive），仮想ＮＩＣ（Network Interface Card）などの仮想的なコンピュータ資源を割り当てる。
図２では、第１番目の仮想マシン１１（＃＝１）と第ｎ番目の仮想マシン１ｎ（＃＝ｎ）とを図示し、第１番目の仮想マシン１１（＃＝１）に、仮想ＣＰＵ（Central Processing Unit）１１（＃＝１）ａ、仮想ＲＡＭ（Random Access Memory）１１（＃＝１）ｂ，仮想ＨＤＤ（Hard Disk Drive）１１（＃＝１）ｃ，仮想ＮＩＣ（Network Interface Card）１１（＃＝１）ｄなどの仮想的なコンピュータ資源が割り当てられ、第ｎ番目の仮想マシン１ｎ（＃＝ｎ）に、仮想ＣＰＵ（Central Processing Unit）１ｎ（＃＝ｎ）ａ、仮想ＲＡＭ（Random Access Memory）１ｎ（＃＝ｎ）ｂ，仮想ＨＤＤ（Hard Disk Drive）１ｎ（＃＝ｎ）ｃ，仮想ＮＩＣ（Network Interface Card）１ｎ（＃＝ｎ）ｄなどの仮想的なコンピュータ資源が割り当てられている状態を示している。図２には、図示していない第１番目の次の第２番目の仮想マシンから第ｎ−１番目の仮想マシンについても同様に、仮想ＣＰＵ（Central Processing Unit）、仮想ＲＡＭ（Random Access Memory），仮想ＨＤＤ（Hard Disk Drive），仮想ＮＩＣ（Network Interface Card）などの仮想的なコンピュータ資源が前記ハイパーバイザ５００によって割り当てられている。
【００３０】
前記ハイパーバイザ５００は上述した様に１以上の仮想マシン１＃（＃＝１〜ｎ）を仮想的に構築すると共に、仮想した仮想マシン１１（＃＝１）〜１ｎ（＃＝ｎ）に仮想ＣＰＵ１１（＃＝１）ａ〜１ｎ（＃＝ｎ）ａを割り当てるためのＣＰＵ管理機能２１と、仮想した仮想マシン１１（＃＝１）〜１ｎ（＃＝ｎ）に仮想ＲＡＭ１１（＃＝１）ｂ〜１ｎ（＃＝ｎ）ｂを割り当てるためのメモリ管理機能２２とを実行するようになっている。
【００３１】
前記ハイパーバイザ５００によって仮想的に構築された仮想マシン１＃（＃＝１〜ｎ）は、前記ハイパーバイザ５００の制御の下に、ＯＳ及びアプリケーション１＃（＃＝１〜ｎ）ｅをそれぞれ個々に実行することとなる。前記アプリケーション１＃（＃＝１〜ｎ）ｅは、利用者がクライアントマシン８００を操作してユーザデータを処理するためのアプリケーションに相当するものである。
【００３２】
図２に示す１以上の仮想マシン１＃（＃＝１〜ｎ）をリモートサイト内のネットワーク３１側から見ると、図３に示す様に、見かけ上の状態では、１以上の仮想マシン１１〜１ｎは、物理的なコンピュータと全く変わらない。
なお、以上の説明は、リモートサイト側における仮想化プラットフォーム４００の仮想マシン（ＡＰサーバ７００）について説明したが、ローカルサイト側の仮想化プラットフォーム１００におけるハイパーバイザ２００はリモートサイト側のハイパーバイザ５００と同様に機能して、ローカルサイト側における仮想化プラットフォーム１００に図２に示した１以上の仮想マシン１＃（＃＝１〜ｎ）を仮想的に構築するものである。なお、図１では、リモートサイト側の仮想マシン（ＡＰサーバ７００）をマイグレーションする前の状態を示している。
【００３３】
以上の説明では、クライアントマシン８００が提供するユーザデータを処理するための仮想マシン（ＡＰサーバ７００）に着目したが、リモートサイト側の仮想化プラットフォーム４００には図１に示す様に、サービス仮想マシン６００が仮想的に構築されるものである。次に、前記サービス仮想マシン６００を図４に基づいて説明する。図４では、図１に示すサービス仮想マシン６００をサービス仮想マシン４１として表記している。
【００３４】
前記ハイパーバイザ５００は図４に示す様に、物理的な計算機１０のＣＰＵ１０ａ，ＲＡＭ１０ｂ，ＨＤＤ１０ｃ等のコンピュータ資源を、時分割或いは空間分割などによってサービス仮想マシン４１に割り当てる。具体的に説明すると、前記ハイパーバイザ５００は図４に示す様に、前記物理的なコンピュータ資源をサービス仮想マシン４１に割り当てるとともに、そのサービス仮想マシン４１に、仮想ＣＰＵ（Central Processing Unit）４１ａ、仮想ＲＡＭ（Random Access Memory）４１ｂの仮想的なコンピュータ資源を割り当てる。上述した仮想的なコンピュータ資源をの割当は、前記ハーパバイザ５００がＣＰＵ管理機能２１及びメモリ管理機能２２を実行することにより行われる。
【００３５】
さらに、前記ハイパーバイザ５００は図４に示す様に、仮想した仮想マシン１１（＃＝１）〜１ｎ（＃＝ｎ）及びサービス仮想マシン４１に仮想ＨＤＤ１１（＃＝１）ｃ〜１ｎ（＃＝ｎ）ｃを割り当てるためのディスク管理機能２３と、仮想した仮想マシン１＃（＃＝１〜ｎ）に仮想ＮＩＣ１１（＃＝１）ｄ〜１ｎ（＃＝ｎ）ｄを割り当てると共に、仮想ネットワーク２４ａを構築し、それらの仮想ＮＩＣが仮想ネットワーク２４ａ及び物理的なＮＩＣ１０ｄを介して物理的なネットワーク３１に接続するのを管理するためのネットワーク管理機能２４と、前記仮想マシンの相互間における管理インターフェイスや前記仮想マシンを構成する他の部分と協力して仮想マシンのマイグレーション等のサービスを実現するための仮想マシン制御機能２５とを実行するようになっている。前記仮想マシン制御機能２５には、仮想マシンを運用するのに必要な管理を実行するための各種機能が含まれている。なお、前記仮想マシン制御機能２５を仮想マシンサービス部６２０（３２０）で実行するようにしてもよいものである。
前記ネットワーク管理機能２４は図１に示すネットワーク処理部６１０に相当するものであり、図１において、前記ディスク管理機能２３は図１の仮想マシンサービス部６２０と別体のディスク制御部として構築される。前記ディスク制御部は本発明の特徴ではないため、図１では図示するのを省略している。
なお、前記ハイパーバイザ５００は、仮想マシンが２以上存在する場合に、それらの仮想マシンに対して仮想ネットワーク２４ａに対して共通に構築する、或いは前記２以上の仮想マシンの個々に対して専用の仮想ネットワークとして構築してもよいものである。
【００３６】
次に、クライアントマシン８００が提供するユーザデータが機密情報を含むデータである場合に行われるマイグレーションを図１及び図５に基づいて説明する。図１及び図５（ａ）に示す様に、リモートサイト側の仮想化プラットフォーム４００上で、例えば仮想マシン１２が動作している最中に、機密情報を含むユーザデータを仮想マシン１２によって処理する状態が生じたとする。
機密情報を含むユーザデータを仮想マシン１２によって処理する状態が生じた場合、後述のローカルサイト側のネットワーク処理部３１０がユーザデータに機密情報が含まれていることを検出したとき、その検出信号をローカルサイト側の仮想マシンサービス部３２０に出力すると、前記仮想マシンサービス部３２０は、マイグレーションを行うべき旨の連絡をネットワーク処理部３１０及びインターネット７１を介してリモートサイト側のネットワーク処理部６１０に通知する。
前記通知を受け取ったリモートサイト側のネットワーク処理部６１０は、リモートサイト側の仮想マシンサービス部６２０に前記通知を伝送する。
前記仮想マシンサービス部６２０は、前記通知が伝送されたことにより、現在動作している仮想マシン１２の動作状態に関する情報をリモートサイト側のネットワーク処理部６１０及びローカルサイト側のネットワーク処理部３１０を介してローカルサイト側の仮想マシンサービス部３２０に伝送する。
前記ローカルサイト側の仮想マシンサービス部３２０はリモートサイト側の仮想マシンサービス部６２０と協同して、リモートサイト側で動作している仮想マシン１２の動作状態に関する情報を前記仮想マシンサービス部６２０から受け取ると、その情報をローカルサイト側のハイパーバイザ２００に渡す。
前記ローカルサイト側のハイパーバイザ２００は、前記情報を受け取ると、図５（ｂ）に示す様に、その情報に基づいてローカルサイト側の仮想マシン１２にリモートサイト側の仮想マシン１２の動作状態をマイグレーションさせる。このマイグレーションによって、ローカルサイト側の仮想化プラットフォーム４００には、リモートサイト側の仮想プラットフォーム４００上で動作している仮想マシン１２が構築される。
このマイグレーションによって、クライアントマシン８００が提供する、機密情報を含むユーザデータを、リモートサイト側の仮想マシン１２に代わって、ローカルサイト側の仮想マシン１２上で処理することが可能になる。
【００３７】
サービス仮想マシン４１を含む仮想マシンシステムでは、ＨＤＤやネットワークなどのＩ／Ｏデバイス関連の機能を、サービス仮想マシン４１に移管させることが多い。このようなサービス仮想マシン４１を利用する目的は、既存のソフトウェアを再利用することでハイパーバイザの開発に係る負荷を削減すること、ハイパーバイザがソフトウェアとして膨大になりすぎるのを防ぐこと、セキュリティを高めることなどにある。
また、以上の説明では、仮想化プラットフォーム１００及び４００上での前記仮想マシン及び前記サービス仮想マシンの動作を制御する仮想マシン管理部２００及び５００としてハイパーバイザ２００及び５００を使用したが、ハイパーバイザ２００及び５００以外の構成を用いても良いものである。例えば、ハイパーバイザ２００及び５００に変えて、ＯＳの機能の一部やアプリケーションにより、仮想マシン管理部２００及び５００を構築するようにしてもよいものである。
なお、サービス仮想マシン４１を無くして、このサービス仮想マシン４１の機能をハイパーバイザ５００（２００）が実行するようにしてもよいものである。
【００３８】
次に、ローカルサイト側のネットワーク処理部３１０と仮想マシンサービス部３２０を図１，図６及び図７に基づいて説明する。
【００３９】
図１に示す様に、ローカルサイト側には、このローカルサイト側の仮想化プラットフォーム１００にアクセスするクライアントマシン８００が配置されている。前記クライアントマシン８００は、一般的なコンピュータ装置、または携帯電話端末やＰＤＡ（Personal Digital Assistant）などであり、仮想化プラットフォーム１００と同様にＣＰＵ８０１と、ＲＡＭ８０２と、ＨＤＤ８０３と、ＮＩＣ８０４等の物理的なコンピュータ資源を備えている。さらに、クライアントマシン８００は、ユーザによる操作を受け付け、その操作の結果をユーザに提示する入出力部８０５を有している。前記クライアントマシン８００は、ローカルサイト内のネットワーク３１を介してローカルサイト側の仮想化プラットフォーム１００にアクセスする。
【００４０】
前記クライアントマシン８００のウェブブラウザ８１０は、ＣＰＵ８０１上で動作するプログラムであり、リモートサイト側の仮想化プラットフォーム４００の仮想マシン（ＡＰサーバ７００）、或いはリモートサイト側の仮想化プラットフォーム４００からローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサービス７００）から送信されたデータをウェブコンテンツとして表示する。前記ウェブブラウザ８１０は入出力部８０５からの操作によって動作し、その操作の結果を入出力部８０５に表示する。ＨＤＤ８０３には、リモートサイト側の仮想化プラットフォーム４００の仮想マシン（ＡＰサーバ７００）、或いはリモートサイト側の仮想化プラットフォーム４００からローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサービス７００）によって扱われるデータファイルであるユーザデータ８２０が記憶されている。ユーザデータ８２０の構成については後述する。また、ユーザデータ８２０はＨＤＤ８０３以外に格納されている場合もある。
【００４１】
なお、仮想化プラットフォーム１００および４００を仮想的に構築するためのコンピュータ、及びクライアントマシン８００を構築するコンピュータは、ＣＰＵ、ＲＡＭ、ＨＤＤ、ＮＩＣ、入出力装置以外にも多くのデバイスが使用されているが、本明細書では本発明の実施形態を説明する上で特に必要であるデバイスについてのみ説明している。
【００４２】
図６に示すローカルサイト側の仮想マシンサービス部３２０は、図４に示した仮想マシンサービス部４１（図１に示すリモートサイト側の仮想マシンサービス部６２０に相当する）の構成と同様である。
本発明の実施形態におけるローカルサイト側のネットワーク処理部３１０は、リモートサイト側のネットワーク処理部６１０の構成と相違している。以下に具体的に説明する。
【００４３】
本発明の実施形態におけるローカルサイト側のサービス仮想マシン３００が有するネットワーク処理部３１０は図６に示す様に、機密データ制御部３３１と、プロキシ通信部３３２と、転送テーブル３４０とを有している。前記転送テーブル３４０は、ローカルサイト側の仮想化プラットフォーム１００を構築する計算機のメモリに記憶されている。
【００４４】
前記ネットワーク処理部３１０は汎用のウェブプロキシの機能を有すると共に、図７に示す様に、クライアントマシン８００との間、及びリモートサイト側の仮想化プラットフォーム６００のネットワーク処理部６１０との間に、それぞれ通信路８１，８２を個別に確立する機能を有している。具体的には、前記ネットワーク処理部３１０は、ＳＳＬ（Secure Sockets Layer）もしくはＴＬＳ（Transport Layer Security）のプロトコルを使用することにより、クライアントマシン８００との間に第１のＳＳＬ通信路８１を確立し、リモートサイト側の仮想化プラットフォーム６００のネットワーク処理部６１０との間に第２のＳＳＬ通信路８２を確立している。なお、前記ネットワーク処理部３１０は、前記第１のＳＳＬ通信路８１と前記第２のＳＳＬ通信路８２とを別々に確立させる、例えば第１のＳＳＬ通信路８１を確立した後に第２のＳＳＬ通信路８２を、時間差等をもって別々に確立させる。
したがって、前記ネットワーク処理部３１０は、クライアントマシン８００から提供されるＳＳＬあるいはＴＬＳのプロトコルを使用して暗号化されたユーザデータを受け取っても、その暗号化されたデータをクライアントマシン８００からリモートサイト側の仮想化プラットフォーム４００にパススルーすることはない。
前記汎用のウェブプロキシの機能は、例えばＳＳＬ或いはＴＬＳのプロトコルを使用して暗号化されたデータとＨＴＭＬのデータとのデータの種類のみを判断し、それらのデータの内容をチェックすることなく、ＨＴＭＬデータである場合にクライアントマシン８００からリモートサイト側の仮想化プラットフォーム４００へのアクセスを代行する機能を意味している。
【００４５】
前記転送テーブル３４０は、ユーザデータの送信元であるクライアントマシンのアドレス情報と、リモートサイト側仮想化プラットフォーム４００の仮想マシン（ＡＰサーバ７００）が属する仮想ネットワーク２４ａを識別するための識別子と、リモートサイト側からローカルサイト側にマイグレーションされた仮想マシン（ＡＰサーバ７００）が属する仮想ネットワーク２４ａを識別するための識別子とを対応させて記憶している。転送テーブル３４０は、後述の機密データ制御部３３１によって必要に応じて記憶データが書き換えられる。そのデータ構成については後述する。
【００４６】
前記機密データ制御部３３１は、前記ネットワーク処理部３１０がクライアントマシン８００との間の第１のＳＳＬ通信路８１とリモートサイト側のネットワーク処理部６１０との間の第２のＳＳＬ通信路８２とを別々に確立させてパススルーの通信路を絶つことにより、前記ネットワーク処理部３１０が保持しているクライアントマシン８００からのユーザデータを受け取って、そのユーザデータに機密情報が含まれているか否かを判断して、ユーザデータの送信先を決定する。前記機密データ制御部３３１は、その判断結果に基づいて、ユーザデータに機密情報が含まれていた場合に、そのユーザデータの送信先を、ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）に決定する。前記機密データ制御部３３１は、その判断結果に基づいて、ユーザデータに機密情報が含まれていない場合に、そのユーザデータの送信先を、リモートサイト側のネットワーク処理部６１０に決定する。
ここで、クライアントマシン８００が提供するユーザデータには、機密情報を含むか否かを示す属性情報が添付されているため、前記機密データ制御部３３１は、ユーザデータから前記属性情報を抽出して、その属性情報に基づいて機密情報が含まれているか否かを判断する。
【００４７】
前記プロキシ通信部３３２は、前記機密データ制御部３３１が決定したユーザデータの送信先へユーザデータを伝送する。具体的には、前記プロキシ通信部３３２は、前記機密データ制御部３３１がユーザデータに機密情報が含まれていることによって送信先を決定した場合に、そのユーザデータを、ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）に伝送する。
【００４８】
図８は、図６に示す転送テーブル３４０に記憶されているデータの構造を示す説明図である。転送テーブル３４０は、クライアントマシン８００上で動作するウェブブラウザ８１０と通信を行っているＡＰサーバ（仮想マシン）７００が、リモートサイト側の仮想化プラットフォーム４００からローカルサイト側の仮想化プラットフォーム１００にマイグレーションされているか否かを示すテーブルである。転送テーブル３４０は、ローカルサイト側の仮想化プラットフォームを構築するコンピュータのＲＡＭ上に作成されるデータである。
【００４９】
リモートサイト側仮想化プラットフォーム４００上の仮想マシン（ＡＰサーバ７００）がローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた場合には、機密データ制御部３３１によって、転送テーブル３４０に、ユーザデータの送信元（クライアントマシン８００）のＩＰアドレス３４１ａとクライアントマシン８００のポート番号３４１ｂの組と、あて先（ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされたＡＰサーバ（仮想マシン）７００）にアクセスするための仮想ネットワーク識別子３４２ａとが登録される。
したがって、ローカルサイト側ネットワーク処理部３１０のプロキシ通信部３３２は転送テーブル３４０に記憶されている前記転送先情報に基づいて、ユーザデータを、ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）に伝送する。このことからして、転送テーブル３４０に記憶されている前記転送先情報には、ユーザデータの転送先が１つ記憶されるものであって、１つのユーザデータに対して２以上の転送先が存在することはない。
ＡＰサーバ（仮想マシン）７００がローカルサイト側の仮想化プラットフォーム１００にマイグレーションされていない場合には、転送テーブル３４０には、ユーザデータを、ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）へ転送するための記憶データが存在しない。この場合、ユーザデータに含まれる送信情報をプロキシ通信部３３２が解読してリモートサイト側の仮想化プラットフォーム４００に伝送する。
なお、前記仮想ネットワーク識別子３４２ａは、ローカルサイト側の仮想化プラットフォーム１００にマイグレーションされたＡＰサーバ（仮想マシン）７００にアクセスするために仮想的に構築される仮想ネットワーク２４ａを識別するためのものである。
【００５０】
図７に示す様に、本実施形態で使用されるデータファイルであるユーザデータ８２０は、そのデータの機密性が「公開」であるか「機密」であるかを示す属性情報８２１と、データ本体８２２とからなる。ユーザデータ８２０のデータ本体８２２が機密情報を含むものである場合に、その属性情報８２１は「機密」を示すこととなり、ユーザデータ８２０のデータ本体８２２が機密情報を含まないものである場合に、その属性情報８２１は「公開」を示すこととなる。
ローカルサイト側ネットワーク処理部３１０の機密データ制御部３３１は、この属性情報８２１によって以降の動作を決定する。
【００５１】
属性情報８２１は、予めユーザデータ８２０の各々に付与されている。図７に示された例では、属性情報８２１がデータ本体８２２の先頭部に付与されているが、必ずしもこの通りである必要はない。また、この属性情報８２１を付与および編集する手段、方法、およびタイミングなどについては、本実施形態では特に問題とはされない。
ローカルサイト側ネットワーク処理部３１０のプロキシ通信部３３２は、クライアントマシン８００のウェブブラウザ８１０とリモートサイト側の仮想化プラットフォーム４００のＡＰサービス７１０（仮想マシン）との間の通信を中継して代行する際、ユーザデータ８２０に含まれている属性情報８２１を削除してデータ本体８２２のみを転送する。
【００５２】
図９は、ウェブブラウザ８１０からＡＰサービス７１０への通信をローカルサイト側のネットワーク処理部３１０が中継する際に、機密データ制御部３３１が行う動作を示すフローチャートである。
【００５３】
機密データ制御部３３１は、ローカルサイト内のネットワーク３１を介して仮想化プラットフォーム１００にアクセスしたクライアントマシン８００のウェブブラウザ８１０からの通信データにデータファイルが含まれているか否か、即ちユーザデータ８２０の送信であるか否かを判定する（ステップＳ１０１）。機密データ制御部３３１は、ユーザデータ８２０の送信でなければ、処理を後述のステップＳ１１０に進める。
【００５４】
機密データ制御部３３１は、ユーザデータの送信であれば、ユーザデータ８２０を通信データから取り出し（ステップＳ１０２）、取り出されたファイルであるユーザデータ８２０に属性情報８２１が含まれているかどうかを判定する（ステップＳ１０３）。機密データ制御部３３１は、前記属性情報８２１が含まれていなければ、ウェブブラウザ８１０に対して「データの機密性が不明である」旨のエラーを返すというエラー処理（ステップＳ１１１）を実行して、処理を終了させる。
【００５５】
ステップＳ１０３に続いて機密データ制御部３３１は前記属性情報８２１が含まれている場合、ユーザデータ８２０に含まれる属性情報８２１の内容が「機密」であるか「公開」であるかについて判断する（ステップＳ１０４）。機密データ制御部３３１は、前記属性情報８２１が「公開」であれば、後述のステップＳ１０９に処理を進める。
【００５６】
機密データ制御部３３１は、前記属性情報８２１の内容が「機密」であれば、その判断結果に基づいて、ユーザデータ８２０の送信先を、リモートサイト側の仮想プラットフォーム４００からローカルサイト側仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）に決定する（ステップＳ１０５）。
【００５７】
ユーザデータ８２０の送信先を決定する際、機密データ制御部３３１は転送テーブル３４０の内容を参照し、転送テーブル３４０に送信元（クライアントマシン８００）のＩＰアドレス３４１ａとポート番号３４１ｂの組と、ローカルサイト側仮想化プラットフォーム１００にマイグレーションされた仮想マシン（ＡＰサーバ７００）に繋がる仮想ネットワーク識別子３４２とを参照して送信先を決定する。
【００５８】
機密データ制御部３３１は、ユーザデータの属性情報８２１が「機密」である場合、ローカルサイト側の仮想マシンサービス部３２０に、ＡＰサーバ（仮想マシン）７００をローカルサイト側へマイグレーションさせるように依頼する。依頼を受けた仮想マシンサービス部３２０は、リモートサイト側の仮想マシンサービス部６２０と連携して、リモートサイト側仮想化プラットフォーム４００のＡＰサーバ（仮想マシン）７００をローカルサイト側仮想化プラットフォーム１００にマイグレーションさせる（ステップＳ１０６）。
【００５９】
機密データ制御部３３１は、前記仮想マシンサービス部３２０によるマイグレーション処理が成功したか否かを判断し（ステップＳ１０７）、成功したら送信元のＩＰアドレス３４１ａとポート番号３４１ｂを転送テーブル３４０に登録する（ステップＳ１０８）。そして、機密データ制御部３３１は、ウェブブラウザ８１０のＩＰアドレス３４１ａ、ポート番号３４１ｂからの通信の相手を、ローカルサイト側プラットフォーム１００にマイグレーションされたＡＰサーバ７００（仮想マシン）に決定する。
【００６０】
以上の判断および処理を経て、機密データ制御部３３１は、ユーザデータ８２０から属性情報８２１を削除し、データ本体８２２のみに再構成する（ステップＳ１０９）。そして、機密データ制御部３３１は、プロキシ通信部３３２に通信データを転送させる（ステップＳ１１０）。この時、ウェブブラウザ８１０のＩＰアドレス３４１ａとポート番号３４１ｂのエントリが転送テーブル３４０に登録されていれば、データ本体８２２の転送先はローカルサイト側プラットフォーム１００にマイグレーションされたＡＰサーバ７００（仮想マシン）となり、転送テーブル３４０に登録されていなければ、転送先はリモートサイト側となる。
【００６１】
図１０は、図９で示したクライアントマシン８００のウェブブラウザ８１０からＡＰサーバ（仮想マシン）７００への通信の動作例を示す説明図である。図１０（ａ）はユーザデータ８２０の属性情報８２１が「公開」の場合、図１０（ｂ）は属性情報８２１が「機密」の場合を各々示す。図１０では、ローカルサイト側およびリモートサイト側の仮想化プラットフォーム１００および４００について、各々の動作を説明するのに必要な機能部のみを示し、図１〜図５で説明したような構成については、特に必要な場合を除いて図示するのを省略している。
【００６２】
図１０（ａ）に示す様にユーザデータ８２０の属性情報８２１が「公開」の場合、ローカルサイト側ネットワーク処理部３１０の機密データ制御部３３２は、ユーザデータ８２０の送信先をリモートサイト側仮想プラットフォーム４００のネットワーク処理部６１０に決定する。そして、機密データ制御部３３２は、ユーザデータ８２０から属性情報８２１を削除して、そのユーザデータ８２０をプロキシ通信部３３２に伝送する。プロキシ通信部３３２は、前記ユーザデータ８２０を、インターネット７１を介してリモートサイト側のネットワーク処理部６１０に伝送する。
そして、リモートサイト側に伝送されたユーザデータ８２０は、リモートサイト側仮想化プラットフォーム４００上に仮想的に構築されたＡＰサーバ（仮想マシン）７００によって処理される。その処理後のユーザデータはクライアントマシン８００に伝送される。
【００６３】
図１０（ｂ）に示す様にユーザデータ８２０の属性情報８２１が「機密」の場合、機密データ制御部３３１は、ユーザデータ８２０が機密情報を含むものであるとして判断し、そのユーザデータ８２０の送信先をローカルサイト側仮想化プラットフォーム１００にマイグレーションされたＡＰサーバ（仮想マシン）７００に決定する。機密データ制御部３３１によってユーザデータ８２０から属性情報８２１が取り除かれたデータ本体８２２は、仮想マシンサービス部３２０のマイグレーション機能によってローカルサイト側仮想化プラットフォーム１００にマイグレーションされたＡＰサーバ７００に、プロキシ通信部３３２によって伝送される。即ち、属性情報８２１が「機密」であれば、データ本体８２２がリモートサイト側に送信されることはないので、情報漏洩のリスクはなくなる。
【００６４】
図１１は、ＡＰサーバ（仮想マシン）７００がローカルサイト側仮想化プラットフォーム１００にマイグレーションされた際の、ウェブサービスシステム１の仮想ネットワークについて示す説明図である。
【００６５】
マイグレーションされる前のＡＰサーバ（仮想マシン）７００は、リモートサイト側仮想化プラットフォーム４００上にハイパーバイザ５００によって仮想的に構築された仮想ネットワーク３５２（仮想ネットワーク２４ａに相当する）に接続されている。
【００６６】
図５及び図１１に示す様に、リモートサイト側仮想化プラットフォーム４００のＡＰサーバ（仮想マシン）７００が、ローカルサイト側仮想化プラットフォーム１００にマイグレーションされると、ローカルサイト側のハイパーバイザ２００によって、マイグレーションされたＡＰサーバ（仮想マシン）７００にアクセスするための仮想ネットワーク３５１（仮想ネットワーク２４ａに相当する）が仮想的に構築され、その仮想ネットワーク３５１に対して識別するための仮想ネットワーク識別子３４２ａが付される。前記仮想ネットワーク識別子３４２ａは機密データ制御部３３１によって転送テーブル３４０に書き込まれる。
【００６７】
マイグレーションされたＡＰサーバ（仮想マシン）７００は、仮想ネットワーク３５１に接続される。この仮想ネットワーク３５１には、ローカルサイト側ネットワーク処理部３１０の制御の下で、ローカルサイト側のネットワーク３１を介してローカルサイト側仮想化プラットフォーム１００にアクセスしたクライアントマシン８００が接続されることとなり、クライアントマシン８００のウェブブラウザ８１０は、ローカルサイト側プロキシ通信部３３２の制御の下で、ローカルサイト側ネットワーク３１及びローカルサイト側仮想ネットワーク３５１を介して、ローカルサイト側仮想化プラットフォーム１００上にマイグレーションされたＡＰサーバ（仮想マシン）７００にアクセスすることとなる。
【００６８】
なお、ローカルサイト側仮想化プラットフォーム１００にマイグレーションしたＡＰサーバ（仮想マシン）７００により、機密情報を含むユーザデータを処理したのに引き続いて、機密情報を含まないユーザデータを処理する場合、ローカルサイト側仮想化プラットフォーム１００にマイグレーションしたＡＰサーバ（仮想マシン）７００を用いてユーザデータを処理するようにしてもよいものである。
【００６９】
（実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本発明の実施形態に係るウェブサービスシステムを用いてウェブサービス方法を実施する場合について説明する。まずウェブサービスへの送信データ（ユーザデータ８２０）が機密情報を含んでいるか否かを機密データ制御部３３１が判断し（図９：ステップＳ１０４〜１０５）、ユーザデータ８２０が機密情報を含んでいれば、機密データ制御部３３１が、ＡＰサービス７１０が稼働する仮想マシンであるＡＰサーバ（仮想マシン）７００をサーバマシン１００の仮想マシンシステム上にマイグレーションさせて仮想マシンシステム上に組み込む（図９：ステップＳ１０６）。
【００７０】
ここで、ＡＰサーバ（仮想マシン）７００がローカルサイト側仮想化プラットフォーム１００上にマイグレーションされている場合には、機密データ制御部３３１は、データの送信元と、前記ＡＰサーバ（仮想マシン）７００へアクセスするための仮想ネットワークにアクセスするための仮想ネットワーク識別子との組を転送テーブル３４０に記憶させる（図９：ステップＳ１０８）。
【００７１】
さらに、ユーザデータ８２０からファイルを抽出してファイルが機密情報を含んでいるかを示す属性情報を含んでいるか否かを機密データ制御部３３１が判断し（図９：ステップＳ１０１〜１０３）、属性情報を含んでいる場合に機密データ制御部３３１がこの属性情報を削除する（図９：ステップＳ１０９）。
【００７２】
以上の説明では、本発明の実施形態をハードウェアとして構築した場合を説明したが、図１〜図７に示すハードウェアの構成をソフトウェア上で実現するプログラムとして構築しても良いものである。この場合、前記プログラムは、記録媒体に記録されて商取引の対象となる。
【００７３】
以上説明したように本発明の実施形態によれば、クライアントマシンからリモートサイトへの通信形態を、クライアントマシンからローカルサイトへのセッションと、ローカルサイトからリモートサイトへのセッションを別々に確立して、通信を中継する形態として構築するため、クライアントからリモートサイトへ送出されるデータのチェックを行うことができる。
【００７４】
上述したように、データのチェックが可能であるため、機密情報を含むデータの場合、リモートサイトで動作している仮想マシンをローカルサイトにマイグレーションし、その仮想マシンを用いて前記データをローカルサイトで処理することができ、機密情報を含むデータがネットワークから外部へ漏出するのを防止することができ、しかも、機密情報を含むデータ処理の場合のみ、仮想マシンのマイグレーションを利用してデータ処理を行うことができ、ローカルサイトの計算機資源を無駄に消費することを解消できる。
【００７５】
さらに、クライアントマシンとローカルサイトとのセッションを確立するのみにより、利用者は、機密情報の有無に関係なく、仮想マシンを利用してデータを処理することができ、データ処理を実行するための適切な環境を用意する必要がなくなる。
【００７６】
本実施形態では、ユーザデータ８２０の属性情報８２１が正しく設定されていれば、属性情報８２１が「機密」であるユーザデータ８２０を、インターネット１１を介してローカルサイト外部に送信することはない。従って、情報漏洩のリスクをそもそも発生させることがない。それでいてユーザは、各自のクライアントマシンへのソフトウェアの導入および保守にかかる手間から解放されるという、ウェブベースアプリケーションを利用することによるメリットをそのまま享受することができる。
【００７７】
（本実施形態の変形例）
ここで、上述の第１の実施形態にはいくつかの変形が存在する。以下、それらの変形例について説明する。上述した実施形態では、サービス仮想マシンシステムを利用するものとして説明したが、サービス仮想マシンシステムを利用せずにハイパーバイザのみで同様の構成とすることもできる。これは仮想化システムを実現する実装方式の違いに過ぎないので、ネットワークからの見かけ上の違いは特にないからである。また、ハイパーバイザを用いず、ＯＳの機能の一部やアプリケーションとしてこれを実現する場合もある。
【００７８】
また、上述した実施形態では、属性情報は「機密」と「公開」の２種類のみが存在したが、これに３段階以上の機密性を設定することが考えられる。この場合、本発明のウェブプロキシを持つ仮想マシンシステムを多段構成として、設定された機密性に応じてＡＰサーバ（仮想マシン）をマイグレーションさせる仮想マシンシステムの位置を変更するように構成すればよい。
【００７９】
また、上述した実施形態では、ユーザデータに付与された属性情報によってデータの機密性を判定するものとしたが、これをデータ本体の内容そのものによって判定するようにしてもよい。この場合、たとえばデータを直接走査してキーワードとの一致により機密性を判定する方法、データを直接走査して他のデータとの間の依存関係から機密性を推定する方法などが考えられる。他にも、データの機密性の判定には、当業者が適用可能な任意の方法を使用することができる。
【００８０】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００８１】
本発明は、ウェブベースアプリケーションを利用するシステムにおいて幅広く利用することができる。
【符号の説明】
【００８２】
１  ウェブサービスシステム
７１  インターネット
７２  ルータ
７３  ルータ
８１、８２  ＳＳＬ（ＴＬＳ）通信路
１００、４００  仮想化プラットフォーム
２００、５００  ハイパーバイザ
３００、６００  サービス仮想マシン
３１０、６１０  ネットワーク処理部
３２０、６２０  仮想マシンサービス部
３３１  機密データ制御部
３３２  プロキシ通信部
３４０  転送テーブル
７００  ＡＰサーバ（仮想マシン）
８００  クライアントマシン
８０５  入出力部
８１０  ウェブブラウザ
８２０  ユーザデータ
８２１  属性情報
８２２  データ本体
【図１】
2010244515.tif 000003
【図２】
2010244515.tif 000004
【図３】
2010244515.tif 000005
【図４】
2010244515.tif 000006
【図５】
2010244515.tif 000007
【図６】
2010244515.tif 000008
【図７】
2010244515.tif 000009
【図８】
2010244515.tif 000010
【図９】
2010244515.tif 000011
【図１０】
2010244515.tif 000012
【図１１】
2010244515.tif 000013
【図１２】
2010244515.tif 000014