(57)【特許請求の範囲】
【請求項１】
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバと、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末とを備え、
前記仮想マシンシステムは、サービス対応仮想ネットワークスイッチ処理手段を前記仮想マシンのＩＰアドレス毎に生成し、
前記サービス対応仮想ネットワークスイッチ処理手段は、ネットワークスイッチのスイッチ処理を仮想化し、前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化したグループと前記サービスとの組のそれぞれに対応する前記仮想マシンに、前記ネットワークフレームを転送する
ことを特徴とするサービス提供システム。
【請求項２】
前記仮想マシンシステムは、前記仮想マシンのＩＰアドレスとポート番号の組を前記サービス毎に定義したサービス定義リストと、前記グループ毎に利用可能な前記サービスを定義したグループ定義リストとに基づいて、前記サービス対応仮想ネットワークスイッチ処理手段を生成し、
前記サービス対応仮想ネットワークスイッチ処理手段は、
前記サービスと前記グループの組毎に転送先の前記仮想マシンを定めたサービス転送管理テーブルに基づいて前記ネットワークフレームを所定の前記仮想マシンに転送する
ことを特徴とする請求項１に記載のサービス提供システム。
【請求項３】
前記サービス対応仮想ネットワークスイッチ処理は、
前記サービス定義リストを参照し、前記ネットワークフレームに含まれる宛先ＩＰアドレス及びポート番号の組と、前記サービス定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するサービスを特定し、
前記グループ定義リストを参照し、前記ネットワークフレームに含まれる送信元ＩＰアドレス及びポート番号の組と、前記グループ定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するグループを特定し、
特定した前記サービスと前記グループの組と、前記サービス転送管理テーブルのサービス及びグループの組とを比較し、転送先仮想マシンを特定する
ことを特徴とする請求項２に記載のサービス提供システム。
【請求項４】
前記仮想マシンシステムは、仮想マシンの生成及び削除を行う仮想マシン管理手段を備え、
前記サービス定義リストは、前記サービス毎に、当該サービスを提供する前記仮想マシンの起動コマンドを定義し、
前記サービス対応仮想ネットワークスイッチ処理は、
特定した前記サービスと前記グループの組と適合する前記仮想マシンが前記サービス転送管理テーブルにない場合に、前記サービスの前記起動コマンドを前記仮想マシン管理手段に実行させる
ことを特徴とする請求項２又は請求項３に記載のサービス提供システム。
【請求項５】
前記仮想マシンシステムは、
前記仮想マシン管理手段が前記仮想マシンを起動した場合に、当該仮想マシンと、対応する前記サービス対応仮想ネットワークスイッチ処理手段とを接続し、
対応する前記サービス対応仮想ネットワークスイッチ処理手段が含む前記サービス転送管理テーブルに、当該仮想マシンについての情報を追加する
ことを特徴とする請求項４に記載のサービス提供システム。
【請求項６】
前記サービス転送管理テーブルは、前記仮想マシンによるＭＡＣアドレスを保持し、
前記サービス対応仮想ネットワークスイッチ処理は、前記ネットワークフレームに対して、ＭＡＣアドレス変換を行って、所定の前記仮想マシンに当該ネットワークフレームを転送する
ことを特徴とする請求項２から請求項５の何れか１項に記載のサービス提供システム。
【請求項７】
ＭＡＣアドレス変換に代えて、リバースプロキシを使用することを特徴とする請求項６に記載のサービス提供システム。
【請求項８】
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバであって、
前記仮想マシンシステムは、サービス対応仮想ネットワークスイッチ処理手段を前記仮想マシンのＩＰアドレス毎に生成し、
前記サービス対応仮想ネットワークスイッチ処理手段は、ネットワークスイッチのスイッチ処理を仮想化し、前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化したグループと前記サービスとの組のそれぞれに対応する前記仮想マシンに、前記ネットワークフレームを転送する
ことを特徴とする仮想マシンサーバ。
【請求項９】
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供方法であって、
前記仮想マシンシステムは、前記仮想マシンのＩＰアドレス毎に、
ネットワークスイッチのスイッチ処理を仮想化し、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、
グループ化された前記グループと前記サービスとの組のそれぞれに対応する前記仮想マシンに、前記ネットワークフレームを転送する
ことを特徴とするサービス提供方法。
【請求項１０】
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供プログラムであって、
前記仮想マシンサーバに、前記仮想マシンのＩＰアドレス毎に、
ネットワークスイッチのスイッチ処理を仮想化し、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、
グループ化された前記グループと前記サービスとの組のそれぞれに対応する前記仮想マシンに、前記ネットワークフレームを転送する処理を、実行させる
ことを特徴とするサービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンシステムを用いたサービス提供システムに関し、提供するサービスに応じて仮想マシンを効率的に稼働させるサービス提供システム、仮想マシンサーバ、サービス提供方法及びプログアラムに関する。
【背景技術】
【０００２】
近年のＰＣ（Ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）サーバマシンの高性能化に伴い、ＰＣサーバの世界でも、計算機を仮想化した仮想マシンを実行する仮想マシンシステムの普及が急速に進んでいる。
【０００３】
仮想マシンシステムは、物理マシン上で稼働し、複数の仮想マシンを動作させるプラットフォームとなる。
【０００４】
仮想マシンは、大型計算機では古くからあり、計算機資源を集約して有効活用することが主な目的となる。この場合、複数台の計算機の代わりに、一台の計算機上で仮想マシンシステムを動作させ、仮想マシンシステム上で複数台の仮想マシンを動作させる構成となる。
【０００５】
ＰＣサーバでの仮想マシンシステムについても、計算機資源の集約として利用されることが多い。加えて、近年のＰＣサーバでの仮想マシンシステムでは、ある仮想マシンシステム上で稼働中の仮想マシンを稼働したまま別の仮想マシンシステムに移動させる仮想マシンのマイグレーションという方式が使われ始めている。この仮想マシンのマイグレーションは、計算機資源の適正化等を行うために使用されている。
【０００６】
仮想マシンのマイグレーションは、サービス環境の柔軟性を高めるために便利である。例えば、サービスを提供する途中で、セキュリティ上の考慮が必要となった場合などに、該サービスを提供する仮想マシンをよりセキュアな場所にマイグレーションすることが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２６５８９４号公報
【特許文献２】特開平５−０８８９２２号公報
【特許文献３】特表２００７−５０６１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一方で、仮想マシンのマイグレーションは、仮想マシンを利用しているクライアントに対して、マイグレーション後でも引き続きサービスを提供できなければならないという制限があり、これがより柔軟性を高める上での課題となるだろうと考えられる。
【０００９】
例えば、複数のクライアントにサービスを提供している場合、マイグレーション先は、セキュリティ上の理由から、特定のクライアントからのみ
アクセス可能な位置とする、というようなことができないという課題がある。
【００１０】
（発明の目的）
本発明の目的は、上述した課題を解決し、仮想マシンのマイグレーションの柔軟性を高めることを可能とするサービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１のサービス提供システムは、所定のサービスを提供する１つ以上の仮想マシンと仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバと、仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末とを備え、仮想マシンサーバが、クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、グループ毎にサービスを提供する仮想マシンを区別する手段を備える。
【００１２】
本発明の第１の仮想マシンサーバは、所定のサービスを提供する１つ以上の仮想マシンと仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバであって、仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、グループ毎にサービスを提供する仮想マシンを区別する手段を備える。
【００１３】
本発明の第１のサービス提供方法は、所定のサービスを提供する１つ以上の仮想マシンと仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供方法であって、仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、グループ毎にサービスを提供する仮想マシンを区別する。
【００１４】
本発明の第１のサービス提供プログラムは、所定のサービスを提供する１つ以上の仮想マシンと仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供プログラムであって、仮想マシンサーバに、仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、グループ毎にサービスを提供する仮想マシンを区別する処理を、実行させる。
【発明の効果】
【００１５】
本発明によれば、仮想マシンのマイグレーションの柔軟性を高めることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施の形態によるサービス提供システムの構成を示すブロック図である。
【図２】第１の実施の形態によるサービス定義リストの構成例を示す図である。
【図３】第１の実施の形態によるグループ定義リストの構成例を示す図である。
【図４】第１の実施の形態によるサービス転送管理テーブルの構成例を示す図である。
【図５】第１の実施の形態によるネットワークフレームに対する仮想マシンシサーバ２０の処理の動作を示すフローチャートである。
【図６】本発明の第１の実施例によるサービス提供システムの構成を示すブロック図である。
【図７】本発明の仮想マシンサーバのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
次に、本発明の実施の形態について、図面を参照して詳細に説明する。なお、すべての図面において、同様な構成要素には同様の符号を付し，適宜説明を省略する。
【００１８】
（第１の実施の形態）
まず、本発明の第１の実施の形態について、図面を参照して詳細に説明する。以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００１９】
図１を参照すると、本実施の形態によるサービス提供システム１００は、仮想マシンサーバ２０と、１つ以上のクライアント端末１０＃１〜＃Ｌから構成される。１つ以上のクライアント端末１０＃１〜＃Ｌと仮想マシンサーバ２０とはネットワークを介して互いに接続されている。
【００２０】
ここで、Ｌは１以上の任意の自然数であり、＃１・・・＃Ｌは、クライアント端末１０の数を示している。
【００２１】
仮想マシンサーバ２０は、仮想的な計算機である１つ以上の仮想マシン３００＃１〜３００＃Ｍと、計算機ハードウェアである仮想マシンサーバ２０を制御すると同時に、仮想マシン３００を動作させるプラットフォームである仮想マシンシステム２００と、ネットワークに接続するための装置であるＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１１０から構成される。
【００２２】
ここで、Ｍは１以上の任意の自然数であり、＃１・・・＃Ｍは、仮想マシン３００の数を示している。
【００２３】
仮想マシンサーバ２０は、一般的な計算機ハードウェアであり、ＣＰＵやメモリなどの基盤部分と、ディスクなどのＩ／Ｏ装置から成るが、ここでは便宜上ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１１０以外は図示していない。
【００２４】
仮想マシンシステム２００は、仮想マシンサーバ２０を制御する機能を有する。仮想マシンシステム２００は、仮想マシンサーバ２０の制御に関し、オペレーティングシステム（ＯＳ）と同様の機能を有する。
【００２５】
また、仮想マシンシステム２００は、仮想マシン３００＃１〜３００＃Ｍを動作させるプラットフォームとしての機能を有する。
【００２６】
仮想マシンシステム２００は、仮想マシン３００＃Ｍの生成や解放、起動や停止、監視、スケジュール管理等を行う仮想マシン管理部２１０と、仮想マシン３００＃Ｍのための仮想ネットワーク機能を実現する仮想ネットワーク処理部２２０とを備える。
【００２７】
また、仮想マシンシステム２００は、図１では省略しているが、他にも、仮想マシン３００＃Ｍのためのメモリ管理機能や、仮想マシン３００＃Ｍのためのストレージ管理機能を備える。メモリ管理機能やストレージ管理機能については、本発明の技術分野における当業者にとってよく知られており、本発明とは直接的には関係しないため、その詳細については省略する。
【００２８】
仮想マシン３００＃Ｍは、仮想的な計算機であり、一般的に、仮想ＣＰＵや仮想メモリ、仮想ＮＩＣや仮想ディスク等により構成される。
【００２９】
仮想マシン３００＃Ｍは、自マシン上で動作して何らかの機能を提供するソフトウェアであるサーバプログラム３１０＃Ｍと、仮想的なネットワークカードである仮想ＮＩＣ３２０＃Ｍとを備える。
【００３０】
仮想ネットワーク処理部２２０は、仮想マシン３００＃Ｍのための仮想ネットワーク機能を有する。
【００３１】
仮想ネットワーク処理部２２０は、仮想ネットワークスイッチ２２１と、サービス定義リスト２２４と、１つ以上のサービス対応仮想ネットワークスイッチ処理部２２２＃１〜２２２＃Ｎと、サービス対応ネットワークスイッチ管理手段２２３と、グループ管理手段２２５と、グループ定義リスト２２６とを備える。
【００３２】
ここで、Ｎは１以上の任意の自然数であり、＃１・・・＃Ｎは、サービス対応仮想ネットワークスイッチ処理部２２２の数を示している。
【００３３】
仮想ネットワークスイッチ処理部２２１は、ネットワークスイッチの処理を仮想化して処理を行う機能を有する。仮想ネットワークスイッチ処理手段２２１は既存の技術を用いることもできる。なお、仮想ネットワーク処理部２２０において、仮想ネットワークスイッチ処理手段２２１以外の部分は、本発明特有の要素である。
【００３４】
サービス定義リスト２２４は、サービスを区分するための定義を示したリストである。ここで、図２に、サービス定義リスト２２４の構成例を示す。図２を参照すると、サービス定義リスト２２４は、サービス識別名毎に、ＩＰアドレスと、ポート番号一覧と、仮想マシン起動コマンドとを定義した構成である。サービス定義リスト２２４は不揮発性で、管理者や管理ツール等により作成され、図示しないディスク等に保存される。
【００３５】
図２の例では、３つのサービス（Ｓｅｒｖｉｃｅ＿ａ、Ｓｅｒｖｉｃｅ＿ｂ１、Ｓｅｒｖｉｃｅ＿ｂ２）が定義されている。すなわち、仮想マシンモニタ３００＃１〜３００＃Ｍは、該３つのサービスの何れかを提供する。
【００３６】
サービス識別名は、提供するサービスを一意に識別する名称である。
【００３７】
ＩＰアドレスとポート番号一覧は、組み合わせて、サービスを一意に区分するための自サーバ（仮想マシンサーバ２０）側のネットワークアドレス情報を示している。
【００３８】
すなわち、クライアント端末１０＃Ｌは、利用したいサービスに対応するＩＰアドレスとポート番号の組を宛先として仮想マシンサーバ２０へ送信し、仮想マシンサーバ２０は、該宛先とサービス定義リスト２２４とを用いてクライアント端末１０＃Ｌの要求サービスを認識する。
【００３９】
仮想マシン起動コマンドは、対応するサービスを提供するサーバプログラム３１０＃Ｍを持つ仮想マシン３００＃Ｍを起動するコマンドである。
【００４０】
グループ定義リスト２２６は、グループを区分するための定義を示したリストである。ここで、図３に、グループ定義リスト２２６の構成例を示す。図３を参照すると、グループ定義リスト２２６は、グループ識別名毎に、ＩＰアドレス一覧と、ポート番号一覧と、対応サービス一覧とを定義した構成である。グループ定義リスト２２６は不揮発性で、管理者や管理ツール等により作成され、図示しないディスク等に保存される。
【００４１】
グループ識別名は、クライアント端末１０＃Ｌが属するグループを一意に識別する名称である。
【００４２】
ＩＰアドレス一覧は、クライアント端末１０＃Ｌが使用するＩＰアドレスの情報であり、ポート番号一覧は、クライアント端末１０＃Ｌが使用するポート番号の情報である。ＩＰアドレス一覧とポート番号一覧の組は、クライアント端末１０＃Ｌのグループを一意に区分するための情報となる。
【００４３】
対応サービス一覧は、該グループが利用可能なサービス識別名の一覧である。
【００４４】
サービス対応仮想ネットワークスイッチ処理部２２２＃Ｎは、サービス定義リスト２２４にて定義されているサービス毎に、ネットワークスイッチのスイッチ処理を仮想化して処理を行う機能を有する。
【００４５】
サービス対応仮想ネットワークスイッチ処理部２２２＃Ｎは、後述するサービス対応ネットワークスイッチ管理手段２２３によって生成又は終了される。
【００４６】
また、サービス対応ネットワークスイッチ処理部２２２＃Ｎは、サービス転送管理テーブル２２２１＃Ｎと、サービス転送手段２２２２＃Ｎとを含む。
【００４７】
サービス転送管理テーブル２２２１＃Ｎは、クライアント端末１０＃Ｌからのネットワークフレームに対し、要求されたサービス識別名とクライアント端末１０＃Ｌの属するグループ識別名とから、転送先仮想マシン３００＃Ｍを決定するために使用テーブルである。
【００４８】
ここで、サービス転送管理テーブル２２２１＃Ｎの構成例を図４に示す。図４を参照すると、サービス転送管理テーブル２２２１＃Ｎは、サービス識別名と、グループ識別名と、仮想マシン識別名と、ＭＡＣアドレスとからなる構成である。サービス転送管理テーブル２２２１＃Ｎは、サービス識別名とグループ識別名との組に対して、対応する仮想マシンの識別名とＭＡＣアドレスを保持した構成である。
【００４９】
サービス転送管理テーブル２２２１＃Ｎの各エントリは、仮想マシン３００＃Ｍの起動、終了に対応して、サービス対応ネットワークスイッチ管理手段２２３により追加、削除される。
【００５０】
サービス転送手段２２２２＃Ｎは、サービス転送管理テーブル２２２１＃Ｎに基づいてネットワークフレームの転送を行う機能を有する。
【００５１】
サービス転送手段２２２２＃Ｎは、サービス定義リスト２２４を参照して、クライアント端末１０＃Ｌからのネットワークフレームに含まれる宛先アドレス（ＩＰアドレス及びポート番号）と、サービス定義リスト２２４のＩＰアドレスとポート番号一覧の組とを比較し、サービス定義リスト２２４に適合するエントリがあるか調べる。
【００５２】
サービス定義リスト２２４に適合するエントリがある場合、サービス転送手段２２２２＃Ｎは、該エントリのサービス識別名を、クライアント端末１０＃Ｌが要求したサービスのサービス識別名と特定する。
【００５３】
また、サービス転送手段２２２２＃Ｎは、グループ定義リスト２２６を参照して、クライアント端末１０＃Ｌからのネットワークフレームに含まれる送信元アドレス（ＩＰアドレス及びポート番号）と、グループ定義リスト２２６のＩＰアドレス一覧及びポート番号一覧の組とを比較し、グループ定義リスト２２６に適合するエントリがあるか調べる。
【００５４】
グループ定義リスト２２６に適合するエントリがある場合、サービス転送手段２２２２＃Ｎは、該エントリのグループ識別名を、クライアント端末１０＃Ｌが属するグループのグループ名と特定する。
【００５５】
また、サービス転送手段２２２２＃Ｎは、クライアント端末１０＃Ｌからのネットワークフレームに対してサービス識別名とグループ識別名を特定した後、サービス転送管理テーブル２２２１＃Ｎを参照して、特定したサービス識別名とグループ識別名の組と、サービス転送管理テーブル２２２１＃Ｎのサービス識別名とグループ識別名の組とを比較し、適合するエントリがあるか調べる。
【００５６】
適合するエントリがない場合、サービス転送手段２２２２は、サービス定義リスト２２４を参照して、特定したサービス識別名に対応する仮想マシン起動コマンドを特定し、該仮想マシン起動コマンドを仮想マシン管理部２１０に実行させる要求を行う。
【００５７】
また、サービス転送手段２２２２＃Ｎは、ネットワークフレームに対して、ＭＡＣアドレス変換（ＭＡＴ）を行って、適切な仮想マシン３００＃Ｍに該ネットワークフレームの転送を行う。また、ＩＰアドレスに対するＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）処理を行う。
【００５８】
なお、本実施の形態ではＭＡＣアドレス変換（ＭＡＴ）を使用しているが、ＭＡＣアドレス変換に代えて、リバースプロキシを使用するようにしても良い。
【００５９】
この場合、仮想マシン３００＃１〜３００＃Ｍはそれぞれ別個のＩＰアドレスを持ち、それに合わせて、サービス転送管理テーブル２２２１＃Ｎの仮想マシン３００＃Ｍに対するＭＡＣアドレス欄は、ＩＰアドレス欄に変更する。
【００６０】
サービス対応ネットワークスイッチ管理手段２２３は、サービス対応仮想ネットワークスイッチ処理部２２２＃Ｎの生成や終了などを管理する機能を有する。
【００６１】
サービス対応ネットワークスイッチ管理手段２２３は、サービス定義リスト２２４に格納されているＩＰアドレス毎に、該ＩＰアドレスに対応するサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎを生成する。
【００６２】
また、サービス対応ネットワークスイッチ管理手段２２３は、仮想マシン３００＃Ｍが新たに起動すると、該仮想マシン３００＃Ｍと、対応するサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎとを接続する。
【００６３】
また、サービス対応ネットワークスイッチ管理手段２２３は、サービス転送管理テーブル２２２１＃Ｎに、新しいエントリを追加又はエントリの削除を行う機能を有する。
【００６４】
グループ管理手段２２５は、利用者をグループとして区分して管理するための機能を有する。グループ管理手段２２５は、グループ定義リスト２２６の更新等を行う。
【００６５】
次に、ネットワーク構成について説明する。ネットワーク構成では、仮想マシンサーバ２０のＮＩＣ１１０は、実ネットワークに接続され、クライアント端末１０＃Ｌとネットワークフレームの送受信が可能となっている。
【００６６】
仮想ネットワークスイッチ処理部２２１は、ＮＩＣ１１０及びサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎと接続されている。
【００６７】
サービス対応仮想ネットワークスイッチ処理部２２２＃Ｎは、仮想マシン３００＃Ｍと接続されており、クライアント端末１０＃Ｌからのサービス要求に対して、仮想マシン３００＃Ｎのサーバプログラム３１０＃Ｎが、要求されたサービスを提供する仕組みとなっている。
【００６８】
（第１の実施の形態の動作の説明）
次に、本実施の形態によるサービス提供システム１００の動作について、図面を参照して詳細に説明する。
【００６９】
クライアント端末１０＃Ｌからのネットワークフレームに対する仮想マシンシサーバ２０の処理の動作について、図５を参照して詳細に説明する。図５は、クライアント端末１０＃Ｌからのネットワークフレームに対する仮想マシンシサーバ２０の処理の動作を示したフローチャートである。
【００７０】
まず、クライアント端末１０＃Ｌからネットワークフレームを受信する（ステップＳ５０１）と、仮想ネットワークスイッチ処理部２２１が、ネットワークフレームに含まれるパケットの宛先ＩＰアドレスを参照して、ＩＰアドレスが一致するサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎへネットワークフレームを転送する（ステップＳ５０２）。
【００７１】
次いで、該ネットワークフレームを受け取ったサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎでは、サービス転送手段２２２２＃Ｎが、サービス定義リスト２２４を参照し、該ネットワークフレームに含まれる宛先アドレス（ＩＰアドレス及びポート番号）と、サービス定義リスト２２４のＩＰアドレスとポート番号一覧の組とを比較し、サービス定義リスト２２４に適合するエントリがあるか調べる（ステップＳ５０３）。
【００７２】
適合するエントリがある場合（ステップＳ５０４”ＹＥＳ”）、サービス転送手段２２２２＃Ｎは、該エントリのサービス識別名を、クライアント端末１０＃Ｌが要求したサービスのサービス識別名と特定する（ステップＳ５０５）。
【００７３】
なお、適合するエントリがない場合（ステップＳ５０４”ＮＯ”）は、クライアント端末１０＃Ｌが要求したサービスが存在しないため、エラー処理を行い終了する（ステップＳ５１６）。
【００７４】
サービス識別名を特定した後、次いで、サービス転送手段２２２２＃Ｎは、グループ定義リスト２２６を参照して、該ネットワークフレームに含まれるパケットの送信元アドレス（ＩＰアドレス及びポート番号）と、グループ定義リスト２２６のＩＰアドレス一覧及びポート番号一覧の組とを比較し、グループ定義リスト２２６に適合するエントリがあるか調べる（ステップＳ５０６）。
【００７５】
適合するエントリがある場合（ステップＳ５０７”ＹＥＳ”）、サービス転送手段２２２２＃Ｎは、該エントリのグループ識別名を、クライアント端末１０＃Ｌが属するグループのグループ名と特定する（ステップＳ５０８）。
【００７６】
なお、適合するエントリがない場合（ステップＳ５０７”ＮＯ”）は、クライアント端末１０＃Ｌはグループ定義リスト２２６の何れのグループにも属していないため、エラー処理を行い終了する（ステップＳ５１６）。
【００７７】
次いで、サービス転送手段２２２２＃Ｎは、サービス転送管理テーブル２２２１を参照し、特定したサービス識別名とグループ識別名の組と、サービス転送管理テーブル２２２１＃Ｎのサービス識別名とグループ識別名の組とを比較し、適合するエントリがあるか調べる（ステップＳ５０９）。
【００７８】
適合するエントリがない場合（ステップＳ５１０”ＮＯ”）、サービス転送手段２２２２＃Ｎは、サービス定義リスト２２４を参照して、特定したサービス識別名に対応する仮想マシン起動コマンドを特定し、該仮想マシン起動コマンドを仮想マシン管理部２１０に実行させる要求を行い、仮想マシンを起動させる（ステップＳ５１１）。なお、ステップＳ５１０がＮＯの場合とは、クライアント端末１０＃Ｌが要求するサービスを提供するサーバプログラム３０１＃Ｍを含む仮想マシン３００は、存在していなかったという状況である。
【００７９】
仮想マシン３００＃Ｍが起動されると、次いで、サービス対応仮想ネットワークスイッチ管理手段２２３が、起動した該仮想マシン３００＃Ｍと、仮想マシンの起動を要求したサービス転送手段２２２２＃Ｎを含むサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎとを接続する（ステップＳ５１２）。
【００８０】
さらに、サービス対応仮想ネットワークス位置管理手段２２３は、起動した仮想マシン３００＃Ｍの識別名と、仮想マシン３００＃Ｍの仮想ＮＩＣ３２０＃ＭのＭＡＣアドレスとを関連付けて、サービス転送管理テーブル２２２１＃Ｎに、新しいエントリを追加する（ステップＳ５１３）。このとき、サービス識別名及びグループ識別名は、仮想マシン３００＃Ｍ起動のトリガとなったネットワークフレームで特定されたサービス識別名及びグループ識別名を用いる。
【００８１】
サービス転送管理テーブル２２２１＃Ｎに適合するエントリがあった後（ステップＳ５１０”ＹＥＳ”）、若しくはサービス転送管理テーブル２２２１＃Ｎに新しいエントリを追加した後（ステップＳ５１３）、次いで、サービス転送手段２２２２＃Ｎは、適合するエントリ或いは追加したエントリを参照して、ネットワークフレームに含まれる宛先ＭＡＣアドレスを、該エントリのＭＡＣアドレスに置き換える（ステップＳ５１４）。
【００８２】
なお、逆に仮想マシン３００＃Ｍ からのネットワークフレームについては、送信元ＭＡＣアドレスを、サービス対応仮想ネットワークスイッチ処理部２２２＃ＮのＭＡＣアドレスに変換する。これは、ＭＡＣアドレス変換（ＭＡＴ）に相当する。
【００８３】
次いで、サービス転送手段２２２２＃Ｎは、該ネットワークフレームを適切な仮想マシン３００＃Ｍへ転送する（ステップＳ５１５）。
【００８４】
なお、仮想マシン３００＃Ｍからのネットワークフレームについての動作は本発明とは直接的には関係しないため、また、本発明の技術分野における当業者によれば容易に想到できるため、その詳細については省略する。
【実施例１】
【００８５】
次に、具体的な実施例を用いて本実施の形態を説明する。
【００８６】
図６を参照すると、図６は、本実施例によるサービス提供システム１００の構成を示すブロック図である。なお、仮想マシンサーバ２０については説明の便宜上ネットワーク接続に関する部分のみ図示ししておりその他は省略しているが、構成そのものは図１に示す仮想マシンサーバ２０と同様である。
【００８７】
本実施例では、クライアント端末１０＃１〜＃６の６台構成とし、クライアント端末１０＃１とクライアント端末１０＃２、クライアント端末１０＃３とクライアント端末１０＃４、クライアント端末１０＃５とクライアント端末１０＃６が、それぞれＧｒｏｕｐ＿ｘ、Ｇｒｏｕｐ＿ｙ１、Ｇｒｏｕｐ＿ｙ２を構成する。
【００８８】
クライアント端末１０＃１はＩＰアドレスが「２２．３３．４４．５０」であり、クライアント端末１０＃２はＩＰアドレスが「２２．３３．４４．５１」である。
【００８９】
Ｇｒｏｕｐ＿ｙ１とＧｒｏｕｐ＿ｙ２は、プロキシサーバ３０経由で通信を行っており、ＩＰアドレスはプロキシサーバ３０のものが使用される。そして、プロキシサーバ３０の側で、Ｇｒｏｕｐ＿ｙ１からの通信をプロキシする場合は、ポート番号１００１−２０００を、Ｇｒｏｕｐ＿ｙ２からの通信をプロキシする場合は、ポート番号２００１−３０００を自側アドレスに使用してプロキシ接続を行っている。グループ管理手段２２５は、該ＩＰアドレス及びポート番号に基づき、グループ定義リスト２２６を参照して、グループの識別を行っている。
【００９０】
また、本実施例においては、図２のサービス定義リスト２２４、図３のサービス転送管理テーブル、及び図４のグループ定義リスト２２６の構成例をそのまま利用する。
【００９１】
ここで、図６は、Ｓｅｒｖｉｃｅ＿ａを提供する仮想マシン３００＃１（ＶＭ１）と、同じくＳｅｒｖｉｃｅ＿ａを提供する仮想マシン３００＃２（ＶＭ２）と、Ｓｅｒｖｉｃｅ＿ｂ１を提供する仮想マシン３００＃３（ＶＭ３）と、Ｓｅｒｖｉｃｅ＿ｂ２を提供する仮想マシン３００＃４（ＶＭ４）が起動している。なお、仮想マシン３００＃１〜＃４については、説明の便宜上本実施例においては以下ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４と称す。
【００９２】
サービス対応仮想ネットワークスイッチ処理部２２１＃１及び＃２は、サービス対応仮想ネットワークスイッチ管理手段２２３が、サービス定義リスト２２４のＩＰアドレス毎に生成したものである。図２に示すサービス定義リスト２２４を参照すると、サービス定義リストには、ＩＰアドレス「１１．２２．３３．４４」と、「１１．２２．３３．５５」の２つが存在するため、サービス対応仮想ネットワークスイッチ処理部２２２＃１及び２２２＃２の２つが生成されており、それぞれ対応するＩＰアドレスを持つ。
【００９３】
ＶＭ１〜４は、 以降で説明するように、 サービス定義リスト２２４のサービス識別名を単位として、
必要な場合に存在する。ネットワーク構成としては、ＶＭ１〜３は、サービス対応仮想ネットワークスイッチ処理部２２２＃１に接続され、ＶＭ４は、サービス対応仮想ネットワークスイッチ処理部２２２＃２に接続されている。
【００９４】
図２のサービス定義リスト２２４を参照すると、Ｓｅｒｖｉｃｅ＿ａ及びＳｅｒｖｉｃｅ＿ｂ１はＩＰアドレス「１１．２２．３３．４４」に対応しており、Ｓｅｒｖｉｅ＿ｂ２はＩＰアドレス「１１．２２．３３．５５」に対応しているため、図６では、Ｓｅｒｖｉｃｅ＿ａ又はＳｅｒｖｉｃｅ＿ｂ１を提供するＶＭ１〜３は、ＩＰアドレス「１１．２２．３３．４４」を持つサービス対応仮想ネットワークスイッチ処理部２２２＃１と接続されている。また、Ｓｅｒｖｉｃｅ＿ｂ２を提供するＶＭ４は、ＩＰアドレス「１１．２２．３３．５５」を持つサービス対応仮想ネットワークスイッチ処理部２２２＃２と接続されている。
【００９５】
なお、ＶＭ１〜４は、実際の利用者が現れてから、サービス転送手段２２２２＃１又は２２２２＃２がサービス定義リスト２２４の適応する仮想マシン起動コマンドを使用して生成する。仮想マシン３００＃Ｍは生成されると仮想マシンを識別する情報（図６ではＶＭ１〜４）が付与される。
【００９６】
ここで、ＶＭ１〜４は、接続されるサービス対応仮想ネットワークスイッチ処理部２２２＃Ｎと、同じＩＰアドレスとなる。図６においては、ＶＭ１〜４のＩＰアドレスの記載は省略しているが、ＶＭ１〜３はＩＰアドレス「１１．２２．３３．４４」を持ち、ＶＭ４はＩＰアドレス「１１．２２．３３．５５」を持つ。
【００９７】
また、サービス対応仮想ネットワークスイッチ処理部２２２＃１又は２２２＃２と、それに接続されているＶＭ１〜３或いはＶＭ４は、別個のＭＡＣアドレスを持つ。該ＭＡＣアドレスは、仮想マシンシステム２００の機能或いは管理者により割り当てられる。
【００９８】
例えば、図６においては、サービス対応仮想ネットワークスイッチ処理部２２２＃１がＭＡＣアドレス「１０：２０：３０：４０：５０：６０」を持つのに対し、サービス対応仮想ネットワークスイッチ処理部２２２＃１に接続されているＶＭ１〜ＶＭ３は、それぞれＭＡＣアドレス「１０：２０：３０：４０：５０：７０」、「１０：２０：３０：４０：５０：７１」、「１０：２０：３０：４０：５０：７２」を持つ。
【００９９】
図４に示すサービス転送管理テーブル２２２１＃１及び２２２１＃２を参照すると、図６においては、Ｓｅｒｖｉｃｅ＿ａは、Ｇｒｏｕｐ＿ｘに対してはＶＭ１が提供し、Ｇｒｏｕｐ＿ｙ１に対してはＶＭ２が提供している。また、Ｓｅｒｖｉｃｅ＿ｂ１は、Ｇｒｏｕｐ＿ｘに対してＶＭ３が提供している。そして、Ｓｅｒｖｉｃｅ＿ｂ２は、Ｇｒｏｕｐ＿ｙ２に対してＶＭ４が提供している。
【０１００】
なお、図３ に示すグループ定義リスト２２６では、Ｓｅｒｖｉｃｅ＿ｂ１は、Ｇｒｏｕｐ＿ｙ１も利用可能となっているが、図４及び図６を参照すると、本実施例では対応する仮想マシン３００＃Ｍは起動しておらず、Ｇｒｏｕｐ＿ｙ１では、クライアント端末１０＃５及び１０＃６の何れもＳｅｒｖｉｃｅ＿ｂ１の提供を受けていないことを示している。
【０１０１】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。
【０１０２】
本実施の形態によれば、所定のサービスを提供する仮想マシンについて、該所定のサービスを利用するクライアント端末をグループ化して、クライアント端末のグループ毎に該所定のサービスを提供する仮想マシンを分けることで、その仮想マシンをマイグレーションする対象の仮想マシンシステムの位置に柔軟性を持たせることが可能となる。
【０１０３】
なお、本実施の形態では、サービスの利用者が現れてから、そのサービスを提供するサーバプログラム３１０＃Ｍを持つ仮想マシン３００＃Ｍを起動していたが、仮想マシン３００＃Ｍをあらかじめ起動した状態としておいても良い。
【０１０４】
次に、本発明の仮想マシンサーバ２０のハードウェア構成例について、図７を参照して説明する。図７は仮想マシンサーバ２０のハードウェア構成例を示すブロック図である。
【０１０５】
図７を参照すると、仮想マシンサーバ２０は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部８０２、ネットワークを介してデータの送受信を行う通信部８０３、入力装置８０５や出力装置８０６及び記憶装置８０７と接続してデータの送受信を行う入出力インタフェース部８０４、上記各構成要素を相互に接続するシステムバス８０８を備えている。記憶装置８０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【０１０６】
本発明の仮想マシンサーバ２０の仮想マシンシステム２００は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置８０７に格納し、そのプログラムを主記憶部８０２にロードしてＣＰＵ８０１で実行することにより、ソフトウェア的に実現することも可能である。
【０１０７】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０１０８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【０１０９】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１１０】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【０１１１】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【０１１２】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【０１１３】
（付記１）
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバと、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末とを備え、
前記仮想マシンサーバが、前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に前記サービスを提供する前記仮想マシンを区別する手段を備えることを特徴とするサービス提供システム。
【０１１４】
（付記２）
前記仮想マシンシステムは、
前記仮想マシンのＩＰアドレスとポート番号の組を前記サービス毎に定義したサービス定義リストと、
前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に利用可能な前記サービスを定義したグループ定義リストと、
前記サービス定義リストのＩＰアドレス毎に、ネットワークスイッチのスイッチ処理を仮想化して処理を行うサービス対応仮想ネットワークスイッチ処理手段を生成するサービス対応仮想ネットワークスイッチ管理手段を備え、
前記サービス対応仮想ネットワークスイッチ処理手段は、
前記サービスと前記グループの組毎に転送先の前記仮想マシンを定めたサービス転送管理テーブルと、
前記サービス転送管理テーブルに従い前記ネットワークフレームを所定の前記仮想マシンに転送するサービス転送手段とを備えることを特徴とする付記１に記載のサービス提供システム。
【０１１５】
（付記３）
前記サービス転送手段は、
前記サービス定義リストを参照し、前記ネットワークフレームに含まれる宛先ＩＰアドレス及びポート番号の組と、前記サービス定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するサービスを特定し、
前記グループ定義リストを参照し、前記ネットワークフレームに含まれる送信元ＩＰアドレス及びポート番号の組と、前記グループ定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するグループを特定し、
特定した前記サービスと前記グループの組と、前記サービス転送管理テーブルのサービス及びグループの組とを比較し、転送先仮想マシンを特定することを特徴とする付記２に記載のサービス提供システム。
【０１１６】
（付記４）
前記仮想マシンシステムは、仮想マシンの生成及び削除を行う仮想マシン管理手段を備え、
前記サービス定義リストは、前記サービス毎に、当該サービスを提供する前記仮想マシンの起動コマンドを定義し、
前記サービス転送手段は、
特定した前記サービスと前記グループの組と適合する前記仮想マシンが前記サービス転送管理テーブルにない場合に、前記サービスの前記起動コマンドを前記仮想マシン管理手段に実行させることを特徴とする付記２又は付記３に記載のサービス提供システム。
【０１１７】
（付記５）
前記サービス対応仮想ネットワークスイッチ管理手段は、
前記仮想マシン管理手段が前記仮想マシンを起動した場合に、当該仮想マシンと、対応する前記サービス対応仮想ネットワークスイッチ処理手段とを接続し、
対応する前記サービス対応仮想ネットワークスイッチ処理手段が含む前記サービス転送管理テーブルに、当該仮想マシンについての情報を追加することを特徴とする付記４に記載のサービス提供システム。
【０１１８】
（付記６）
前記サービス転送管理テーブルは、前記仮想マシン毎のＭＡＣアドレスを保持し、
前記サービス転送手段は、前記ネットワークフレームに対して、ＭＡＣアドレス変換を行って、所定の前記仮想マシンに当該ネットワークフレームを転送することを特徴とする付記２から付記５の何れかに記載のサービス提供システム。
【０１１９】
（付記７）
ＭＡＣアドレス変換に代えて、リバースプロシキを使用することを特徴とする付記６に記載のサービス提供システム。
【０１２０】
（付記８）
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバであって、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に前記サービスを提供する前記仮想マシンを区別する手段を備えることを特徴とする仮想マシンサーバ。
【０１２１】
（付記９）
前記仮想マシンシステムは、
前記仮想マシンのＩＰアドレスとポート番号の組を前記サービス毎に定義したサービス定義リストと、
前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に利用可能な前記サービスを定義したグループ定義リストと、
前記サービス定義リストのＩＰアドレス毎に、ネットワークスイッチのスイッチ処理を仮想化して処理を行うサービス対応仮想ネットワークスイッチ処理手段を生成するサービス対応仮想ネットワークスイッチ管理手段を備え、
前記サービス対応仮想ネットワークスイッチ処理手段は、
前記サービスと前記グループの組毎に転送先の前記仮想マシンを定めたサービス転送管理テーブルと、
前記サービス転送管理テーブルに従い前記ネットワークフレームを所定の前記仮想マシンに転送するサービス転送手段とを備えることを特徴とする付記８に記載の仮想マシンサーバ。
【０１２２】
（付記１０）
前記サービス転送手段は、
前記サービス定義リストを参照し、前記ネットワークフレームに含まれる宛先ＩＰアドレス及びポート番号の組と、前記サービス定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するサービスを特定し、
前記グループ定義リストを参照し、前記ネットワークフレームに含まれる送信元ＩＰアドレス及びポート番号の組と、前記グループ定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するグループを特定し、
特定した前記サービスと前記グループの組と、前記サービス転送管理テーブルのサービス及びグループの組とを比較し、転送先仮想マシンを特定することを特徴とする付記９に記載の仮想マシンサーバ。
【０１２３】
（付記１１）
前記仮想マシンシステムは、仮想マシンの生成及び削除を行う仮想マシン管理手段を備え、
前記サービス定義リストは、前記サービス毎に、当該サービスを提供する前記仮想マシンの起動コマンドを定義し、
前記サービス転送手段は、
特定した前記サービスと前記グループの組と適合する前記仮想マシンが前記サービス転送管理テーブルにない場合に、前記サービスの前記起動コマンドを前記仮想マシン管理手段に実行させることを特徴とする付記９又は付記１０に記載の仮想マシンサーバ。
【０１２４】
（付記１２）
前記サービス対応仮想ネットワークスイッチ管理手段は、
前記仮想マシン管理手段が前記仮想マシンを起動した場合に、当該仮想マシンと、対応する前記サービス対応仮想ネットワークスイッチ処理手段とを接続し、
対応する前記サービス対応仮想ネットワークスイッチ処理手段が含む前記サービス転送管理テーブルに、当該仮想マシンについての情報を追加することを特徴とする付記１１に記載の仮想マシンサーバ。
【０１２５】
（付記１３）
前記サービス転送管理テーブルは、前記仮想マシン毎のＭＡＣアドレスを保持し、
前記サービス転送手段は、前記ネットワークフレームに対して、ＭＡＣアドレス変換を行って、所定の前記仮想マシンに当該ネットワークフレームを転送することを特徴とする付記９から付記１２の何れかに記載の仮想マシンサーバ。
【０１２６】
（付記１４）
ＭＡＣアドレス変換に代えて、リバースプロシキを使用することを特徴とする付記１３に記載の仮想マシンサーバ。
【０１２７】
（付記１５）
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供方法であって、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に前記サービスを提供する前記仮想マシンを区別することを特徴とするサービス提供方法。
【０１２８】
（付記１６）
前記仮想マシンシステムは、
前記仮想マシンのＩＰアドレスとポート番号の組を前記サービス毎に定義したサービス定義リストと、
前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に利用可能な前記サービスを定義したグループ定義リストとを含み、
前記サービス定義リストのＩＰアドレス毎に、ネットワークスイッチのスイッチ処理を仮想化して処理を行うサービス対応仮想ネットワークスイッチ処理であって、前記サービスと前記グループの組毎に転送先の前記仮想マシンを定めたサービス転送管理テーブルに従い前記ネットワークフレームを所定の前記仮想マシンに転送するサービス転送処理を行うサービス対応仮想ネットワークスイッチ処理を行うことを特徴とする付記１５に記載のサービス提供方法。
【０１２９】
（付記１７）
前記サービス転送処理は、
前記サービス定義リストを参照し、前記ネットワークフレームに含まれる宛先ＩＰアドレス及びポート番号の組と、前記サービス定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するサービスを特定し、
前記グループ定義リストを参照し、前記ネットワークフレームに含まれる送信元ＩＰアドレス及びポート番号の組と、前記グループ定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するグループを特定し、
特定した前記サービスと前記グループの組と、前記サービス転送管理テーブルのサービス及びグループの組とを比較し、転送先仮想マシンを特定することを特徴とする付記１６に記載のサービス提供方法。
【０１３０】
（付記１８）
前記仮想マシンシステムは、仮想マシンの生成及び削除を行う仮想マシン管理を行い、
前記サービス定義リストは、前記サービス毎に、当該サービスを提供する前記仮想マシンの起動コマンドを定義し、
前記サービス転送処理は、
特定した前記サービスと前記グループの組と適合する前記仮想マシンが前記サービス転送管理テーブルにない場合に、前記サービスの前記起動コマンドを前記仮想マシン管理処理に実行させることを特徴とする付記１６又は付記１７に記載のサービス提供方法。
【０１３１】
（付記１９）
前記サービス対応仮想ネットワークスイッチ管理処理は、
前記仮想マシン管理手段が前記仮想マシンを起動した場合に、当該仮想マシンと、対応する前記サービス対応仮想ネットワークスイッチ処理手段とを接続し、
対応する前記サービス対応仮想ネットワークスイッチ処理手段が含む前記サービス転送管理テーブルに、当該仮想マシンについての情報を追加することを特徴とする付記１８に記載のサービス提供方法。
【０１３２】
（付記２０）
前記サービス転送管理テーブルは、前記仮想マシン毎のＭＡＣアドレスを保持し、
前記サービス転送処理は、前記ネットワークフレームに対して、ＭＡＣアドレス変換を行って、所定の前記仮想マシンに当該ネットワークフレームを転送することを特徴とする付記１６から付記１９の何れかに記載のサービス提供方法。
【０１３３】
（付記２１）
ＭＡＣアドレス変換に代えて、リバースプロシキを使用することを特徴とする付記２０に記載のサービス提供方法。
【０１３４】
（付記２２）
所定のサービスを提供する１つ以上の仮想マシンと前記仮想マシンを制御する仮想マシンシステムを備える仮想マシンサーバのサービス提供プログラムであって、
前記仮想マシンサーバに、
前記仮想マシンにネットワークフレームによるサービス要求を行う１つ以上のクライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に前記サービスを提供する前記仮想マシンを区別する処理を、実行させることを特徴とするサービス提供プログラム。
【０１３５】
（付記２３）
前記仮想マシンシステムは、
前記仮想マシンのＩＰアドレスとポート番号の組を前記サービス毎に定義したサービス定義リストと、
前記クライアント端末をＩＰアドレス及びポート番号の組でグループ化し、前記グループ毎に利用可能な前記サービスを定義したグループ定義リストとを含み、
前記仮想マシンシステムに、
前記サービス定義リストのＩＰアドレス毎に、ネットワークスイッチのスイッチ処理を仮想化して処理を行うサービス対応仮想ネットワークスイッチ処理であって、前記サービスと前記グループの組毎に転送先の前記仮想マシンを定めたサービス転送管理テーブルに従い前記ネットワークフレームを所定の前記仮想マシンに転送するサービス転送処理を行うサービス対応仮想ネットワークスイッチ処理を、実行させることを特徴とする付記２２に記載のサービス提供プログラム。
【０１３６】
（付記２４）
前記サービス転送処理は、
前記サービス定義リストを参照し、前記ネットワークフレームに含まれる宛先ＩＰアドレス及びポート番号の組と、前記サービス定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するサービスを特定し、
前記グループ定義リストを参照し、前記ネットワークフレームに含まれる送信元ＩＰアドレス及びポート番号の組と、前記グループ定義リストのＩＰアドレス及びポート番号の組とを比較し、適合するグループを特定し、
特定した前記サービスと前記グループの組と、前記サービス転送管理テーブルのサービス及びグループの組とを比較し、転送先仮想マシンを特定することを特徴とする付記２３に記載のサービス提供プログラム。
【０１３７】
（付記２５）
前記仮想マシンシステムに、仮想マシンの生成及び削除を行う仮想マシン管理を実行させ、
前記サービス定義リストは、前記サービス毎に、当該サービスを提供する前記仮想マシンの起動コマンドを定義し、
前記サービス転送処理は、
特定した前記サービスと前記グループの組と適合する前記仮想マシンが前記サービス転送管理テーブルにない場合に、前記サービスの前記起動コマンドを前記仮想マシン管理処理に実行させることを特徴とする付記２３又は付記２４に記載のサービス提供プログラム。
【０１３８】
（付記２６）
前記サービス対応仮想ネットワークスイッチ管理処理は、
前記仮想マシン管理手段が前記仮想マシンを起動した場合に、当該仮想マシンと、対応する前記サービス対応仮想ネットワークスイッチ処理手段とを接続し、
対応する前記サービス対応仮想ネットワークスイッチ処理手段が含む前記サービス転送管理テーブルに、当該仮想マシンについての情報を追加することを特徴とする付記２５に記載のサービス提供プログラム。
【０１３９】
（付記２７）
前記サービス転送管理テーブルは、前記仮想マシン毎のＭＡＣアドレスを保持し、
前記サービス転送処理は、前記ネットワークフレームに対して、ＭＡＣアドレス変換を行って、所定の前記仮想マシンに当該ネットワークフレームを転送することを特徴とする付記２３から付記２６の何れかに記載のサービス提供プログラム。
【０１４０】
（付記２８）
ＭＡＣアドレス変換に代えて、リバースプロシキを使用することを特徴とする付記２７に記載のサービス提供プログラム。
【符号の説明】
【０１４１】
１００：サービス提供システム
１０：クライアント端末
２０：仮想マシンサーバ
１１０：ＮＩＣ
２００：仮想マシンシステム
２１０：仮想マシン管理部
２２０：仮想ネットワーク処理部
２２１：仮想ネットワークスイッチ処理部
２２２：サービス対応仮想ネットワークスイッチ処理部
２２２１：サービス転送管理テーブル
２２２２：サービス転送手段
２２３：サービス対応仮想ネットワークスイッチ管理手段
２２４：サービス定義リスト
２２５：グループ管理手段
２２６：グループ定義リスト
３００：仮想マシン
３１０：サーバプログラム
３２０：仮想ＮＩＣ
８０１：ＣＰＵ
８０２：主記憶部
８０３：通信部
８０４：入出力インタフェース部
８０５：入力装置
８０６：出力装置
８０７：記憶装置
８０８：システムバス
【図１】
0005644150.tif 000002
【図２】
0005644150.tif 000003
【図３】
0005644150.tif 000004
【図４】
0005644150.tif 000005
【図５】
0005644150.tif 000006
【図６】
0005644150.tif 000007
【図７】
0005644150.tif 000008