(57)【要約】  分散処理システムにおいて複数の処理移送方法が利用できる場合に、分散システムの状況に応じて、処理移送方法を効率的に選択する方法を提供する。このために、プロセス等をコンピュータに移送して処理を行わせる複数の移送方法を実行する第１の処理送信部、第２の処理送信部と、前記複数の移送方法の選択に用いる情報を記憶する選択用情報記憶部と、を備えた第１のコンピュータを提供する。また、前記複数の移送方法を実行する第１の処理受信部を備えた第２のコンピュータを提供する。第１のコンピュータは、選択用情報記憶部から、第２のコンピュータが実行可能な移送方法を選択するための情報を検出し、検出結果に応じて第１の処理送信部を選択する移送指示部を備え、移送指示部が選択した第１の処理送信部が、プロセス等を第２のコンピュータの第１の処理受信部に移送する。
2010035480.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する分散処理システムであって、
前記第１の情報処理装置は、
前記処理実態の２つの種類に応じた少なくとも２種類の移送方法に対応する、前記処理実体の移送処理を行う少なくとも２つの第１の移送部と、
前記移送方法の選択に用いる情報を記憶する移送方法選択情報記憶部と、
前記移送方法選択情報記憶部を参照して前記第２の情報処理装置が実行可能な移送方法を判定し、前記第１の移送部の一つを選択する移送方法選択部と、
外部からの要求を受け、前記選択された第１の移送部に対して前記処理実態の移送を指示する制御部とを具備し、
前記第２の情報処理装置は、
前記選択された第１の移送部から移送される前記処理実体に対して、前記移送方法の少なくとも１つによって移送処理を行う第２の移送部を備える。 
【請求項２】
前記移送方法選択情報記憶部が、前記複数の移送方法を識別する移送方法識別情報を記憶し、
前記移送方法選択部は、前記移送方法選択情報記憶部から、前記第２の移送部が実行する移送方法の移送方法識別情報に一致する移送方法識別情報を検出する請求項１に記載の分散処理システム。
【請求項３】
前記第２の情報処理装置は、複数存在し、
前記移送方法選択情報記憶部は、前記第２の情報処理装置を識別する所定の情報処理装置識別情報と、前記第２の情報処理装置が実行可能な移送方法を選択するための情報と、を対応させて記憶し、
前記移送方法選択部は、前記移送先の第２の情報処理装置の前記情報処理装置識別情報と、当該第２の情報処理装置の前記移送方法を選択するための情報と、が前記移送方法選択情報記憶部に入力された場合、前記移送方法選択情報記憶部から前記情報処理装置識別情報に対応する前記移送方法を選択するための情報を検出し、検出した前記移送方法を選択するための情報に応じて、移送方法を実行する第１の移送部を選択する、
請求項１または請求項２記載の分散処理システム。
【請求項４】
前記処理実体は、プロセス、及び仮想マシンを含み、
前記第１の移送部は、プロセスマイグレーションと、仮想マシンマイグレーションと、を実行し、
前記第２の移送部は、プロセスマイグレーション若しくは仮想マシンマイグレーションのうち少なくとも１つを実行する
請求項１からの請求項３のいずれか１つに記載の分散処理システム。 
【請求項５】
前記処理実体は、プロセス、及び仮想マシンを含み、
前記第１の移送部と前記第２の移送部は、少なくともプロセスマイグレーションと仮想マシンマイグレーションを実行可能であり、
前記移送方法選択情報記憶部は、前記第２の情報処理装置にて処理されているプロセスの情報を受信して記憶し、
前記移送方法選択部は、前記処理実体の移送に際し、前記移送方法選択情報記憶部から前記第２の情報処理装置にて処理されているプロセスの情報を検出し、前記検出したプロセスの情報に対応するプロセスを実行する場合の制約に応じて、移送方法を判定し、前記第１の移送部の一つを選択する、
請求項１に記載の分散処理システム。 
【請求項６】
少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する、分散処理システムにおける分散処理方法であって、
前記第１の情報処理装置において、外部からの要求に基づいて、予め記憶部に記憶され、かつ、前記処理実態の２つの種類に応じた少なくとも２種類の移送方法の選択に用いられる情報を参照するステップと、
前記第１の情報処理装置において、前記第２の情報処理装置が実行可能な移送方法を判定するステップと、
前記第１の情報処理装置において、前記判定された移送方法に従い、移送を行うステップと、
前記第２の情報処理装置において、前記処理実体に対して、前記移送方法の少なくとも１つによって移送処理を行うステップと、を具備する分散処理方法。 
【請求項７】
少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する、分散処理システムにおける前記第１の情報処理装置のコンピュータに、
外部からの要求に基づいて、予め記憶部に記憶され、かつ、前記処理実態の２つの種類に応じた少なくとも２種類の移送方法の選択に用いられる情報を参照するステップと、
前記第２の情報処理装置が実行可能な移送方法を判定するステップと、
前記判定された移送方法に従い、移送を行うステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、分散処理システム、分散処理方法および分散処理プログラムに関する。
本願は、２００８年９月２６日に、日本に出願された特願２００８−２４７７０６号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
一般に、通信ネットワークに接続された一台一台のコンピュータをコンピュータノードと呼ぶ。また、複数のコンピュータノード（以下、ノードと称する）をネットワークで接続したシステムを分散システム、あるいは、クラスタシステムと呼ぶ。クラスタシステムでは、コンピュータ資源の効率的利用や高信頼性の実現のために、あるコンピュータ上の処理実体（コンピュータで実行中のプログラム）を別のコンピュータに移す、処理移送技術が利用されている。【０００３】
処理移送技術の代表的なものとして、プロセスマイグレーションが知られている。プロセスマイグレーションとは、あるノードで動作中のプログラム（以下、プロセスと称する）を、実行状態を保持したまま、他のコンピュータ上に移動させ、元のコンピュータで実行されていたのと同じ状態で実行を継続させる技術である。すなわち、プロセスマイグレーションとは、プロセスという処理の単位で、コンピュータの上の処理を移送する技術である。プロセスマイグレーションの具体的な手順は、まず、プロセスのメモリ状態やレジスタの状態などのスナップショットを作成する。更に、そのスナップショットを他のコンピュータに送信し、送信先の他のコンピュータでスナップショットからプロセスの状態を復元させる（特許文献１参照）。スナップショットとは、データを特定のタイミングで抜き出したものの総称である。プロセスマイグレーションのスナップショットは、ファイルに出力される場合と、メモリ上に一時的に作られる場合と、がある。【０００４】
また近年では、処理移送をプロセス単位ではなく、仮想マシン単位で行う仮想マシンマイグレーションも知られている。プロセスマイグレーションとの違いは、仮想マシンマイグレーションでは移送の対象がプロセスから仮想マシンになっただけである。仮想マシンマイグレーションにおいても、メモリ状態やレジスタ状態のスナップショットを作成して、他のコンピュータに送信し、送信先の他のコンピュータで復元するという手順は、プロセスマイグレーションとほぼ同様である。ここで、仮想マシンとは、1台のコンピュータを複数台の仮想的なコンピュータに分割したものであり、仮想的なコンピュータそれぞれにおいて別のＯＳやアプリケーションソフトを動作させることができる。仮想マシンを提供するソフトウェアは、一般に、仮想マシンモニタと呼ばれ、特定のコンピュータ資源を、あたかも複数のコンピュータ資源として利用する機能を有する。仮想マシンモニタとしては、ＶＭｗａｒｅやＸｅｎなどが知られている。これらの仮想マシンモニタは、仮想マシン単位の処理移送機能として、それぞれ、ＶＭｏｔｉｏｎとＸｅｎＭｏｔｉｏｎを備えている（特許文献２、非特許文献１、非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−７８４６５号公報
【特許文献２】特開２００６−２４４４８１号公報
【非特許文献】
【０００６】
【非特許文献１】“Citrix XenServer 特徴とベネフィット”、［online］、Citrix、［平成20年8月21日検索］、インターネット〈URL：http://www.citrix.co.jp/products/xenser/benefit.html〉
【非特許文献２】“VMware VMotion”、［online］、VMware、［平成20年8月21日検索］、インターネット〈URL：http://www.vmware.com/jp/products/vi/vc/vmotion.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の分散処理システムでは、プロセスマイグレーションを提供するシステムはプロセスの移送のみが可能であり、仮想マシンマイグレーションを提供するシステムでは仮想マシンの移送のみが可能というように、これらの処理移送方法が独立して制御されている。このため、プロセスマイグレーションまたは仮想マシンマイグレーションのどちらを選択するかについて、効率的な選択方法がないという問題点があった。【０００８】
本発明は、上記の課題認識に基づいて行なわれたものである。本発明は、プロセスマイグレーションと仮想マシンマイグレーションのように、分散処理システムにおいて複数の処理移送方法が利用できる場合に、分散システムの状況に応じて、処理移送方法を効率的に選択する方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するためになされたものである。本発明の一つの側面は、少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する分散処理システムであって、前記第１の情報処理装置は、前記処理実態の２つの種類に応じた少なくとも２種類の移送方法に対応する、前記処理実体の移送処理を行う少なくとも２つの第１の移送部と、前記移送方法の選択に用いる情報を記憶する移送方法選択情報記憶部と、前記移送方法選択情報記憶部を参照して前記第２の情報処理装置が実行可能な移送方法を判定し、前記第１の移送部の一つを選択する移送方法選択部と、外部からの要求を受け、前記選択された第１の移送部に対して前記処理実態の移送を指示する制御部とを具備し、前記第２の情報処理装置は、前記選択された第１の移送部から移送される前記処理実体に対して、前記移送方法の少なくとも１つによって移送処理を行う第２の移送部を備える。【００１０】
また本発明の第２の側面は、上記分散処理システムであって、前記移送方法選択情報記憶部が、前記複数の移送方法を識別する移送方法識別情報を記憶し、前記移送方法選択部は、前記移送方法選択情報記憶部から、前記第２の移送部が実行する移送方法の移送方法識別情報に一致する移送方法識別情報を検出する。【００１１】
また本発明の第３の側面は、上記分散処理システムであって、前記第２の情報処理装置は、複数存在し、前記移送方法選択情報記憶部は、前記第２の情報処理装置を識別する所定の情報処理装置識別情報と、前記第２の情報処理装置が実行可能な移送方法を選択するための情報と、を対応させて記憶し、前記移送方法選択部は、前記移送先の第２の情報処理装置の前記情報処理装置識別情報と、当該第２の情報処理装置の前記移送方法を選択するための情報と、が前記移送方法選択情報記憶部に入力された場合、前記移送方法選択情報記憶部から前記情報処理装置識別情報に対応する前記移送方法を選択するための情報を検出し、検出した前記移送方法を選択するための情報に応じて、移送方法を実行する第１の移送部を選択する。【００１２】
また本発明の第４の側面は、上記分散処理システムであって、前記処理実体は、プロセス、及び仮想マシンを含み、前記第１の移送部は、プロセスマイグレーションと、仮想マシンマイグレーションと、を実行し、前記第２の移送部は、プロセスマイグレーション若しくは仮想マシンマイグレーションのうち少なくとも１つを実行する。【００１３】
また本発明の第５の側面は、上記分散処理システムであって、前記処理実体は、プロセス、及び仮想マシンを含み、前記第１の移送部と前記第２の移送部は、少なくともプロセスマイグレーションと仮想マシンマイグレーションを実行可能であり、前記移送方法選択情報記憶部は、前記第２の情報処理装置にて処理されているプロセスの情報を受信して記憶し、前記移送方法選択部は、前記処理実体の移送に際し、前記移送方法選択情報記憶部から前記第２の情報処理装置にて処理されているプロセスの情報を検出し、前記検出したプロセスの情報に対応するプロセスを実行する場合の制約に応じて、移送方法を判定し、前記第１の移送部の一つを選択する。【００１４】
また本発明の第６の側面は、少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する、分散処理システムにおける分散処理方法であって、前記第１の情報処理装置において、外部からの要求に基づいて、予め記憶部に記憶され、かつ、前記処理実態の２つの種類に応じた少なくとも２種類の移送方法の選択に用いられる情報を参照するステップと、前記第１の情報処理装置において、前記第２の情報処理装置が実行可能な移送方法を判定するステップと、前記第１の情報処理装置において、前記判定された移送方法に従い、移送を行うステップと、前記第２の情報処理装置において、前記処理実体に対して、前記移送方法の少なくとも１つによって移送処理を行うステップと、を具備する。【００１５】
また本発明の第７の側面は、少なくとも２種類の処理実体のうちの一つを、第１の情報処理装置から第２の情報処理装置へ移送する、分散処理システムにおける前記第１の情報処理装置のコンピュータに、外部からの要求に基づいて、予め記憶部に記憶され、かつ、前記処理実態の２つの種類に応じた少なくとも２種類の移送方法の選択に用いられる情報を参照するステップと、前記第２の情報処理装置が実行可能な移送方法を判定するステップと、前記判定された移送方法に従い、移送を行うステップと、を実行させる。
【発明の効果】
【００１６】
本発明によれば、分散システムにおいて複数の処理移送方法が利用可能な場合に、移送先の情報処理装置が受け入れ可能な処理移送方法を選択するように構成されている。このため、本発明によれば、管理者や管理プログラムの煩雑な作業を必要とせず処理移送方法が選択でき、処理移送方法の選択に関する判断が効率化される。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態による分散システムの構成図
【図２】本発明の第１の実施形態による移送処理方法判断のフローチャート
【図３】本発明の第１の実施形態による分散システムの構成図
【図４Ａ】本発明の第１の実施形態によるノード構成情報と移送関数情報のファイル形式を示す図
【図４Ｂ】本発明の第１の実施形態によるノード構成情報と移送関数情報のファイル形式を示す図
【図５】本発明の第２の実施形態における分散システムの構成図
【図６】本発明の第２の実施形態による移送処理方法判断のフローチャート
【発明を実施するための形態】
【００１８】
[第１の実施の形態]
以下、本発明を実施するための一実施形態について説明する。
図１は、本発明の一実施形態における分散システムの構成図である。図１は、プログラム等により制御される情報処理装置（以下、コンピュータと称する）であるコンピュータ１００と、コンピュータ１１０と、コンピュータ１２０と、ネットワーク４００を含む。コンピュータ１００は、移送指示部１０１と、処理移送方法の種類の判別に必要な情報が格納された選択用情報記憶部１０２と、第１の処理移送方法を実行する第１の処理送信部１０３と、第２の処理移送方法を実行する第２の処理送信部１０４と、処理移送方法記憶部１０７と、を備える。また、コンピュータ１１０は、第１の処理移送方法を実行する第１の処理受信部１０５を有する。さらに、コンピュータ１２０は、第２の処理移送方法を実行する第２の処理受信部１０６を有する。
【００１９】
移送指示部１０１は、選択用情報記憶部１０２と処理移送方法記憶部１０７に記憶された情報を読み出し、当該読み出した情報に基づいて第１の処理移送方法と第２の処理移送方法のうち、どちらの移送方法を用いて処理移送を行うかを選択する。移送指示部１０１は、第１の処理送信部１０３または第２の処理送信部１０４に処理移送を指示する。例えば、第１の処理移送方法としてプロセスマイグレーション、第２の処理移送方法として仮想マシンマイグレーションという組み合わせが考えられる。
【００２０】
なお、移送指示部１０１は、管理者が端末からコマンドを入力することで処理移送を指示するために、あるいは管理プログラムが処理移送を指示するために用いる管理用ＯＳの提供するコマンドやライブラリ関数、システムコールとして実現することができる。ここで、管理用ＯＳとは、コンピュータ１００全体を管理するためのＯＳを指す。また、管理者が端末からコマンドを入力することで移送指示部１０１を呼び出す場合、あるいは管理プログラムが移送指示部１０１を呼び出す場合には、少なくとも移送対象の処理実体を示す識別子（以下、移送対象処理識別子と称する）と、移送先のコンピュータを示すノード識別子が移送指示部１０１に入力される。これにより、コンピュータ１００で実行されている移送対象処理実体と、当該移送対象の処理実体を、どのノードに移送するのかが特定される。ここで、処理実体とは、コンピュータで実行中のプログラムであって、例えば、プロセス若しくは仮想マシンを含む。
【００２１】
選択用情報記憶部１０２は、移送指示部１０１による処理移送方法の選択に必要な情報を記憶する。ここで処理移送方法の選択に必要な情報とは、少なくとも、処理移送先のコンピュータを特定するためのノード識別子と、当該処理移送先のコンピュータが受け入れ可能な処理移送方法を示す識別子（以下、処理移送方法識別子と称する）を含む。
【００２２】
図１の構成の場合、例えば、コンピュータ１１０を示すノード識別子を“Ｃｏｍｐ１”、コンピュータ１２０を示すノード識別子を“Ｃｏｍｐ２”とし、第１の処理移送方法を示す処理移送方法識別子を、例えば“Ｐｒｏｃｅｓｓ”、第２の処理移送方法を示す処理移送方法識別子を“ＶＭ”と記述する。このとき、コンピュータ１１０が第１の処理移送方法“Ｐｒｏｃｅｓｓ”を受け入れ可能であることは、“Ｃｏｍｐ１，[Ｐｒｏｃｅｓｓ]” と表すことができる。コンピュータ１２０が前記第２の処理移送方法“ＶＭ”を受け入れ可能であることは、“Ｃｏｍｐ２，[ＶＭ]”と表すことができる。
【００２３】
処理移送方法記憶部１０７は、移送方法を表す識別子と、当該移送方法を呼び出すための関数と、を記憶する。例えば、第１の処理移送方法”Ｐｒｏｃｅｓｓ”を呼び出すための関数を”ｍｉｇ＿ｐｒｏｃｅｓｓ”とすれば”Ｐｒｏｃｅｓｓ，ｍｉｇ＿ｐｒｏｃｅｓｓ”という組み合わせの表現を、処理移送方法記憶部１０７は、格納する。第２の処理移送方法”ＶＭ”を呼び出すための関数を”ｍｉｇ＿ｖｍ”とすれば”ＶＭ，ｍｉｇ＿ｖｍ”という組み合わせの表現を、処理移送方法記憶部１０７は、格納する。ここで、ｍｉｇ＿ｐｒｏｃｅｓｓ関数により、第１の処理移送方法を備えた第１の処理送信部１０３が呼び出される。ｍｉｇ＿ｖｍ関数により、第２の処理移送方法を備えた第２の処理送信部１０４が呼び出される。
【００２４】
第１の処理送信部１０３は、移送対象処理のスナップショットを作成する。第１の処理送信部１０３は、移送先として指定されたコンピュータの第１の処理受信部に、第１の処理移送方法を用いて当該スナップショットを送信する。第２の処理送信部１０４は、移送対象処理のスナップショットを作成する。第２の処理送信部１０４は、移送先として指定されたコンピュータの第２の処理受信部に、第２の処理移送方法を用いて当該スナップショットを送信する。
なお、第１の処理送信部１０３と第２の処理送信部１０４には、移送指示部１０１から、少なくとも、移送対象処理識別子と、移送先のコンピュータを示すノード識別子が渡される。また、移送指示部１０１に入力される移送対象処理識別子と、第１の処理送信部１０３に渡される移送対象処理識別子の表現形式と、第２の処理送信部１０４に渡される移送対象処理識別子の表現形式と、が異なる場合もあり得る。このような場合、移送指示部１０１が第１の処理送信部１０３と第２の処理送信部１０４を呼び出す際に、移送対象処理識別子の表現形式を一致させる変換操作を追加して実行してもよい。
【００２５】
例えば、第１の処理移送方法がプロセスマイグレーション、第２の処理移送方法が仮想マシンマイグレーションであり、“ＳｅｒｖｉｃｅＡ”というプログラム名が移送指示部１０１に入力された場合を想定する。この場合には、“ＳｅｒｖｉｃｅＡ”というプログラム名を、プロセスを示す番号である整数値に変換してから、第１の処理移送方法（プロセスマイグレーション）を呼び出す、あるいはＶＭを示す番号である整数値に変換してから、第２の処理移送方法（仮想マシンマイグレーション）を呼び出す、というように呼び出す関数のパラメータの表現形式に合うように変換してもよい。
【００２６】
第１の処理受信部１０５は、第１の処理送信部１０３が送信した移送対象の処理実体のスナップショットを受信し、当該スナップショットを基に処理実体の実行状態を復元する。第２の処理受信部１０６は、第２の処理送信部１０４が送信した移送対象の処理実体のスナップショットを受信し、当該スナップショットを基に処理実体の実行状態を復元する。
【００２７】
図２は、移送処理方法の選択判断のフローチャートである。図２を用いて処理移送動作を説明する。管理者が端末から処理移送指示コマンドを入力することで移送指示部１０１を起動する。あるいは管理用プログラムが、処理移送指示コマンドにより、移送指示部１０１を起動する。移送指示部１０１は、呼び出し時に指定された処理移送先のコンピュータを示すノード識別子、及び、該ノード（処理移送先のコンピュータ）が受け入れることができる処理移送方法の両方が登録された選択用情報の登録事項（以下、エントリと称する）を、選択用情報記憶部１０２から取得する。
【００２８】
例えば、前述した例と同様に、“Ｃｏｍｐ１，[Ｐｒｏｃｅｓｓ]”と“Ｃｏｍｐ２，[ＶＭ]”というエントリが選択用情報記憶部１０２に含まれる場合、移送指示部１０１は、処理移送指示コマンドに含まれるノード識別子が“Ｃｏｍｐ１”であった場合は、“Ｃｏｍｐ１，［Ｐｒｏｃｅｓｓ］”というエントリを選択用情報記憶部１０２から読み出す。一方、“Ｃｏｍｐ２”であった場合は、移送指示部１０１は、“Ｃｏｍｐ２，［ＶＭ］”というエントリを、選択用情報記憶部１０２から読み出す（ステップＳ１）。
【００２９】
さらに、移送指示部１０１は取得した選択用情報のエントリから、処理移送方法に関する情報を読み出す。移送指示部１０１は、当該処理移送方法に関する情報が、第１の処理送信部１０３が対応している第１の処理移送方法を示す識別子と一致するか否かを比較する。すなわち、移送指示部１０１は、処理移送先のコンピュータが、第１の処理送信部１０３から送信する第１の処理移送方法を受け入れ可能かどうかを判定する。
【００３０】
例えば、コンピュータ１００からコンピュータ１１０に処理実体を移送しようとする場合は、“Ｃｏｍｐ１，[Ｐｒｏｃｅｓｓ]”のエントリから、“Ｐｒｏｃｅｓｓ”という処理移送方法識別子が取り出される。該処理移送方法識別子“Ｐｒｏｃｅｓｓ”が、第１の処理送信部１０３が対応している第１の処理移送方法を示す識別子“Ｐｒｏｃｅｓｓ”と比較される（ステップＳ２）。
【００３１】
ステップＳ１で取得された処理移送方法に関する情報が、第１の処理移送方法を示す識別子と一致する場合（ステップＳ２のＹＥＳ）は、移送指示部１０１は、処理移送方法記憶部１０７を参照し、第１の処理移送方法を示す識別子に対応する関数により、第１の処理送信部１０３に処理移送の指示を出す。
【００３２】
例えば、前述した例と同様に、第１の処理移送方法に関するエントリが”Ｐｒｏｃｅｓｓ，ｍｉｇ＿ｐｒｏｃｅｓｓ”と表されている場合、“ｍｉｇ＿ｐｒｏｃｅｓｓ”関数が呼び出される。該指示により第１の処理送信部１０３は、コンピュータ１００上で実行されている移送対象の処理実体のスナップショットを作成する。第１の処理送信部１０３は、移送先として指定されたコンピュータ１１０の第１の処理受信部１０５に、第１の処理移送方法を用いて当該スナップショットを送信する（ステップＳ３）。
【００３３】
一方、当該処理移送方法に関する情報が、第１の処理送信部１０３の対応する第１の処理移送方法を示す識別子と一致しなかった場合（ステップＳ２のＮＯ）、移送指示部１０１は、当該処理移送方法に関する情報が、第２の処理移送方法を示す識別子と一致するか否かを比較する（ステップＳ４）。
【００３４】
当該処理移送方法に関する情報が、第２の処理移送方法と一致する場合（ステップＳ４のＹＥＳ）、移送指示部１０１は、処理移送方法記憶部１０７を参照し、第２の処理移送方法を示す識別子に対応する関数により、第２の処理送信部１０４に処理移送の指示を出す。
【００３５】
例えば、前述した例と同様に、第１の処理移送方法に関するエントリが”ＶＭ，ｍｉｇ＿ｖｍ”と表されている場合、“ｍｉｇ＿ｖｍ”関数が呼び出される。第２の処理送信部１０４は、コンピュータ１００上で実行されている移送対象の処理実体のスナップショットを作成する。第２の処理送信部１０４は、移送先として指定されたコンピュータ１２０の第２の処理受信部１０６に、第２の処理移送方法を用いて当該スナップショットを送信する（ステップＳ５）。当該処理移送方法に関する情報が、第２の処理移送方法とも一致しない場合は（ステップＳ４のＮＯ）、処理移送が行われない。
【００３６】
コンピュータ１１０が有する第１の処理受信部１０５が、移送対象処理のスナップショットを受信し、当該スナップショットを基に処理実体の実行状態を復元する。このような処理により、コンピュータ１１０は、コンピュータ１００上で実行されていた処理実体を、コンピュータ１１０上で再開する。同様に、コンピュータ１２０が有する第２の処理受信部１０６が、移送対象の処理実体のスナップショットを受信する。当該スナップショットを基に処理実体の実行状態を復元することで、コンピュータ１２０は、コンピュータ１００上で実行されていた処理実体を、コンピュータ１２０上で再開する。
【００３７】
図３は、本発明の第１の実施の形態による分散システムの構成図である。本実施例において分散システムは、コンピュータ１０００と、コンピュータ１１００と、コンピュータ１２００と、ネットワーク３０００と、により構成される。それぞれのコンピュータは、少なくとも中央処理装置（以下、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と称する）、一次記憶装置（以下、メモリと称する）、二次記憶装置（ハードディスクやフラッシュメモリなど）を有する。
【００３８】
図１における、移送指示部１０１、第１の処理送信部１０３、第２の処理送信部１０４、第１の処理受信部１０５、第２の処理受信部１０６は、図３では、いずれもハードディスクなどの二次記憶装置にプログラムとして記憶されている。これらの構成要素は、二次記憶装置からメモリに読み出されて、ＣＰＵで実行されることで実現される。また、図１における選択用情報記憶部１０２は、ハードディスクなどの二次記憶装置に記憶されており、二次記憶装置からメモリに読み出されて、ＣＰＵが参照する。
【００３９】
コンピュータ１０００上では、仮想マシンモニタ１０３０が動作し、仮想マシンモニタ１０３０の管理の下で、管理ＯＳ１０１０とゲストＯＳ１０２０が動作する。
【００４０】
管理ＯＳ１０１０は、処理移送指示コマンド１０１１と設定ファイル１０１２を備える。処理移送指示コマンド１０１１は、図１における移送指示部１０１に対応する。設定ファイルは、図１における選択用情報記憶部１０２と処理移送方法記憶部１０７と、に対応する。
【００４１】
ゲストＯＳ１０２０は、プロセスマイグレーション機能１０２２を備える。仮想マシンモニタ１０３０は、仮想マシンマイグレーション機能１０３１を備える。プロセスマイグレーション機能１０２２は、管理ＯＳ１０１０の処理移送指示コマンド１０１１によりプロセスマイグレーション関数を実行することで呼び出される。仮想マシンマイグレーション機能１０３１は、管理ＯＳ１０１０の処理移送指示コマンド１０１１により仮想マシンマイグレーション関数を実行することで呼び出される。プロセスマイグレーション機能１０２２は、図１における第1の処理送信部１０５に対応する。仮想マシンマイグレーション機能１０３１は、図１における第２の処理送信部１０６に対応する。
【００４２】
さらに、管理ＯＳ１０１０とゲストＯＳ１０２０は、仮想ネットワークを介して通信をする。ここで仮想ネットワークとは、仮想マシンモニタ１０３０が提供する仮想的なネットワークである。管理ＯＳの制御の下で実行されたプロセスマイグレーション関数は、この仮想ネットワークを通じてゲストＯＳ１０２０と通信し、プロセスマイグレーション機能１０２０を起動する。
【００４３】
一方、管理ＯＳの制御の下で実行された仮想マシンマイグレーション関数は、仮想マシンモニタが提供するハイパーコールを使って、仮想マシンマイグレーション機能１２１１を起動する。ここでハイパーコールとは、仮想マシンモニタが提供する機能を呼び出すためのインターフェースであり、仮想マシンモニタ上で動作する管理ＯＳ１０１０やゲストＯＳ１０２０から呼び出すことができる。
【００４４】
コンピュータ１１００では、コンピュータ１０００上で動作しているゲストＯＳ１０２０と同構成を備えるゲストＯＳ１１１０が動作する。一方、コンピュータ１２００では、コンピュータ１０００上で動作している仮想マシンモニタ１０３０と同構成を備える仮想マシンモニタ１２１０が動作する。すなわち、コンピュータ１０００からコンピュータ１１００に対して、プロセスマイグレーションはできるが、仮想マシンマイグレーションはできない。一方、コンピュータ１０００からコンピュータ１２００に対して、仮想マシンマイグレーションはできるが、プロセスマイグレーションはできない。
【００４５】
さらに、コンピュータ１０００上で動作しているゲストＯＳ１０２０上では、プロセス１０２１が動作しており、プログラム名を用いることで、当該サービスを提供しているプロセスを特定できる。ここで、プロセス１０２１のプログラム名を“ＳｅｒｖｉｃｅＡ”とする。
【００４６】
また、コンピュータ１１００のノード識別子を“Ｃｏｍｐ１”、コンピュータ１２００のノード識別子を“Ｃｏｍｐ２”とする。さらに、ゲストＯＳ１０２０が提供するプロセスマイグレーションを表す処理移送方法識別子を“Ｐｒｏｃｅｓｓ”とする。仮想マシンモニタが提供する仮想マシンマイグレーションを表す処理移送方法識別子を“ＶＭ”とする。
【００４７】
また、プロセスマイグレーション機能１０２２を呼び出すための関数は“ｍｉｇ＿ｐｒｏｃｅｓｓ”とする。仮想マシンマイグレーション機能１０３１を呼び出すための関数は、“ｍｉｇ＿ｖｍ”とする。さらに、コンピュータのノード識別子と、当該コンピュータが受け入れることができる処理移送方法の識別子の対応情報（以下、ノード構成情報と称する）は、図４Ａに示すようにテキスト形式で表される。処理移送方法の識別子と処理移送方法を呼び出す関数との対応情報（以下、移送関数情報と称する）は、図４Ｂに示すようにテキスト形式で表される。ノード構成情報と、移送関数情報は、設定ファイル１０１２に記憶される。
【００４８】
ここで、図３において、管理者が端末から処理移送指示コマンドを入力する、あるいは管理プログラムから処理移送指示コマンドが実行された場合を想定する。このとき、管理ＯＳ１０１０に、パラメータとしてプログラム名“ＳｅｒｖｉｃｅＡ”と、ノード識別子“Ｃｏｍｐ１”が与えられたと想定する。即ち、“ＳｅｒｖｉｃｅＡ”という名前のプログラムを実行しているプロセスが移送対象の処理実体として指定されたと想定する。
【００４９】
管理ＯＳ１０１０は、処理移送指示コマンドにより、設定ファイル１０１２を読み込み、図４Ａのノード構成情報に記憶されているノード識別子と、処理移送指示コマンドのパラメータとして渡されたノード識別子“Ｃｏｍｐ１”を比較する（図２ステップＳ２）。ここで、“Ｃｏｍｐ１”という文字列との比較が行われ、図４Ａのノード構成情報の１行目が適合する。次に、管理ＯＳ１０１０は、処理移送指示コマンドにより、適合した１行目の後半の項目を取り出す。すなわち、処理移送方法識別子“Ｐｒｏｃｅｓｓ”という文字列を取り出すことで、“Ｃｏｍｐ１”がプロセスマイグレーションを受け入れ可能であることを検出する（ステップＳ２）。
【００５０】
次に、管理ＯＳ１０１０は、図４Ｂの移送関数情報に記憶されている処理移送方法識別子と、ステップＳ２までに確定した処理移送方法識別子“Ｐｒｏｃｅｓｓ”との比較を行う。その結果、処理移送方法識別子“Ｐｒｏｃｅｓｓ”に対応する関数が“ｍｉｇ＿ｐｒｏｃｅｓｓ”であることを検出し、“ｍｉｇ＿ｐｒｏｃｅｓｓ”関数を実行して、ゲストＯＳ１０２０のプロセスマイグレーション機能１０２２を呼び出す。“ｍｉｇ＿ｐｒｏｃｅｓｓ”関数のパラメータとしては、プロセスを特定する識別子（以下、プロセス識別子と称する）と、ノード識別子“Ｃｏｍｐ１”が指定される。ここで、プロセス識別子はプログラム名から変換されるものとする。例えば、ゲストＯＳ１０２０が提供するコマンドによりプロセスの一覧を取得し、その一覧から該プログラム名が含まれる行を取り出し、そこから該プログラム名に対応するプロセス識別子を得ることができる。
【００５１】
その後、ゲストＯＳ１０２０が提供するプロセスマイグレーション機能１０２２により、前述した図２のフローチャートのプロセスマイグレーション動作を行うことで、移送対象として指定されたプロセス１０２１がコンピュータ１１００に移送され（図２ステップＳ３）、ゲストＯＳ１０２０は、コンピュータ１０００で実行されていたプロセス１０２１を、コンピュータ１１００上で再開する。
【００５２】
一方、図３において、管理者が端末から処理移送指示コマンドを入力することで、あるいは管理プログラムから処理移送指示コマンドが実行され、管理ＯＳ１０１０に、パラメータとしてプロセス１０２１のプログラム名“ＳｅｒｖｉｃｅＡ”と、ノード識別子“Ｃｏｍｐ２”が与えられ、“ＳｅｒｖｉｃｅＡ”を提供しているプロセスが移送対象の処理実体として指定されたとする。
【００５３】
管理ＯＳ１０１０は、処理移送指示コマンドにより、設定ファイル１０１２を読み込み、図４Ａのノード構成情報に記憶されているノード識別子と、処理移送指示コマンドのパラメータとして通知されたノード識別子“Ｃｏｍｐ２”を比較する（図２ステップＳ２）。ここで、“Ｃｏｍｐ２”という文字列との比較が行われ、図４Ａのノード構成情報の２行目が適合する。次に、管理ＯＳ１０１０は、処理移送指示コマンドにより、適合した２行目の後半の項目を取り出す。すなわち、処理移送方法識別子“ＶＭ”という文字列を読み出すことで、Ｃｏｍｐ２が仮想マシンマイグレーションを受け入れ可能であることを検出する（ステップＳ４）。
【００５４】
さらに、管理ＯＳ１０１０は、図４Ｂの移送関数情報に記憶されている処理移送方法識別子と、ステップＳ４までに確定した処理移送方法識別子“ＶＭ”との比較を行う。
その結果、処理移送方法識別子“ＶＭ”に対応する関数が“ｍｉｇ＿ｖｍ”であることを検出し、“ｍｉｇ＿ｖｍ”関数を実行して、仮想マシンモニタ１０３０の仮想マシンマイグレーション機能１０３１を呼び出す。“ｍｉｇ＿ｐｒｏｃｅｓｓ”関数のパラメータとしては、仮想マシンを特定するための仮想マシン識別子と、ノード識別子“Ｃｏｍｐ２”が指定される。ここで、仮想マシン識別子はプログラム名から変換されるものとする。例えば、ゲストＯＳ１０２０が提供するコマンドによりプロセスの一覧を取得し、その一覧に該プログラム名が含まれる場合は、次に、仮想マシンモニタ１０３０が提供するコマンドにより、ゲストＯＳ１０２０が動作する仮想マシンの仮想マシンＩＤを得ることができる。
【００５５】
その後、仮想マシンモニタ１０３０が提供する仮想マシンマイグレーション機能１０３１により、前述した図２のフローチャートの仮想マシンマイグレーション動作を行うことで、移送対象として指定されたサービスが実行されている仮想マシンが、移送先であるコンピュータ１２００に移送され（図２ステップＳ５）、仮想マシンモニタ１０３０は、コンピュータ１０００で実行されていた仮想マシンを、コンピュータ１２００上で再開する。
【００５６】
本発明の第１の実施形態では、分散システムにおいて複数の処理移送方法が利用可能な場合に、移送先のコンピュータが受け入れ可能な処理移送方法に合わせた処理移送方法を選択するように構成されているため、処理移送方法を選択する際は、管理者や管理プログラムの煩雑な作業を必要とせず、処理移送方法が選択可能である。これにより処理移送方法の選択判断が効率化される。なお、複数の処理移送方法とは、第１の処理移送方法、第２の処理移送方法に限られるものではなく、さらに多くの処理移送方法がある場合でも、本発明の要旨を逸脱しない範囲で適用できる。
【００５７】
[第２の実施の形態]
次に、本発明の第２の実施形態について説明する。本実施形態は、本発明の第１の実施形態と異なり、移送先のノードの状態を移送前に調査してから、当該移送方法を決定する。
【００５８】
図５は、本発明の第２の実施形態における分散システムの構成図である。図５において、プログラム制御等により動作するコンピュータ２００と、コンピュータ２１０と、ネットワーク３００と、により分散システムが構成されている。また、コンピュータ２００は、第２の移送指示部２０１と、移送指示に必要な情報を選択するための選択用情報取得部２０２と、処理移送方法に係るプロセス送信部２０３と、処理移送方法に係る仮想マシン送信部２０４と、を備える。また、コンピュータ２１０は、移送指示に必要な情報を選択するための選択用情報収集部２０５と、処理移送方法に係るプロセス受信部２０６と、処理移送方法に係る仮想マシン受信部２０７と、を備える。
【００５９】
第２の移送指示部２０１は、プロセス送信部２０３と仮想マシン送信部２０４のそれぞれが備える処理移送方法を記憶する。また、第２の移送指示部２０１は、選択用情報取得部２０２から移送方法選択の判断に必要な情報を取得する。また、当該情報に基づき、第２の移送指示部２０１は、処理移送先のコンピュータ２１０に対し、プロセスマイグレーションを行うか、仮想マシンマイグレーションを使用するか否かを判断する。
【００６０】
第２の移送指示部２０１は、管理者が端末からコマンドを入力する、あるいは管理プログラムが処理移送を指示するために用いる管理用ＯＳ上のコマンドやライブラリ関数、システムコールとして実現することができる。ここで、管理用ＯＳとは、コンピュータ２００全体を管理するためのＯＳを指す。第２の移送指示部２０１が呼び出される時には、少なくとも、移送対象処理識別子と移送先のコンピュータを示すノード識別子が第２の移送指示部２０１に渡されることで、コンピュータ２００で実行されている移送対象の処理実体をコンピュータ２１０に移送することが特定される。
【００６１】
また、第２の移送指示部２０１は、プロセス送信部２０３を呼び出す。あるいは、第２の移送指示部２０１は、仮想マシン送信部２０４を呼び出す。
【００６２】
選択用情報取得部２０２は、第２の移送指示部２０１が処理移送方法を選択するために必要な情報を、コンピュータ２１０の選択用情報収集部２０５から取得して記憶する。当該処理移送方法を選択するために必要な情報には少なくとも、前記プロセス識別子が含まれ、コンピュータ２１０上で実行ができないプロセスを識別することができる。すなわち、処理移送先のコンピュータ２１０において、例えば、同一コンピュータ上で、同時に複数個実行できないプロセスが実行されていて、これと同種のプロセスが移送対象の処理実体である場合には、プロセスマイグレーションではなく、代わりに仮想マシンマイグレーションを選択することができる。なお、プロセス識別子は、数字やファイル名で表現されてもよい。
【００６３】
ここで、コンピュータ２１０を示すノード識別子を、例えば“Ｃｏｍｐ１”とし、コンピュータ２１０上で同時に複数個実行できないプロセスが実行されているなどの理由によって受け入れることができないプロセスを、例えば“ＰｒｏｃｅｓｓＡ” , “ＰｒｏｃｅｓｓＢ”, “ＰｒｏｃｅｓｓＣ”とすれば、選択用情報収集部２０５が記憶する選択用情報は、例えば“Ｃｏｍｐ１，[ＰｒｏｃｅｓｓＡ,ＰｒｏｃｅｓｓＢ,ＰｒｏｃｅｓｓＣ]”と表現される。これら、ノード識別子とプロセス識別子の組み合わせは、１つあるいは複数の登録事項（エントリ）として、選択用情報取得部２０２に記憶される。
【００６４】
プロセス送信部２０３は、移送対象の処理実体として指定されたプロセスのスナップショットを作成し、移送先として指定されたコンピュータの、プロセスマイグレーションに対応したプロセス受信部に、プロセスマイグレーションを用いて、当該スナップショットを送信する。
【００６５】
仮想マシン送信部２０４は、処理実体を移送すると指定されたコンピュータ上の仮想マシンのスナップショットを作成し、移送先として指定されたコンピュータの、仮想マシンマイグレーションに対応した仮想マシン受信部に、仮想マシンマイグレーションを用いて、当該スナップショットを送信する。
【００６６】
選択用情報収集部２０５は、コンピュータ２１０上で同時に複数個実行できないプロセスが実行されているなどの理由によって受け入れることができないプロセスに関する情報を集め、当該情報を定常的に、あるいはコンピュータ２１０の選択用情報取得部２０２から要求があった場合に、選択用情報取得部２０２に送信する。ここで、コンピュータ２１０が受け入れできないプロセスに関する情報には、少なくとも前記プロセス識別子が含まれる。
【００６７】
プロセス受信部２０６は、プロセスマイグレーションにより送られてきた移送対象の処理実体のスナップショットを受信する。また、当該スナップショットを基にプロセスを復元する。
【００６８】
仮想マシン受信部２０７は、仮想マシンマイグレーションにより送られてきた移送対象処理のスナップショットを受信する。また、当該スナップショットを基に仮想マシンを復元する。
【００６９】
図６は移送処理方法判断のフローチャートである。図６を用いて、移送処理動作を説明する。管理者が端末からコマンドを入力することで、あるいは管理用プログラムは、処理移送先であるコンピュータと、移送対象の処理実体を指定して、第２の移送指示部２０１を呼び出す（ステップＳ１１）。第２の移送指示部２０１は、該呼び出し時に指定された、処理移送先であるコンピュータ２１０のノード識別子に対応する選択用情報として、ノード識別子とプロセス識別子、の組み合わせ登録事項を、選択用情報取得部２０２から取得する（ステップＳ１２）。
【００７０】
第２の移送指示部２０１は、管理者が端末からコマンドを入力することで指定した移送対象の処理実体、あるいは管理用プログラムが指定した移送対象の処理実体について、選択用情報取得部２０２から取得した、ノード識別子とプロセス識別子、の組み合わせ登録事項に含まれるプロセス識別子と、管理者や管理プログラムから指定された移送対象処理識別子を比較して、一致するものがあるかどうかを調べる。
【００７１】
すなわち、第２の移送指示部２０１は、管理者が端末からコマンドを入力することで指定した移送対象処理識別子、あるいは管理プログラムから指定された移送対象処理識別子、により特定される移送対象の処理実体を移送しようとするが、ノード識別子とプロセス識別子、の組み合わせ登録事項に含まれるプロセス識別子が移送対象の処理実体と一致する場合（ステップＳ１３のＹＥＳ）、第２の移送指示部２０１は、プロセスマイグレーションが使えないと判断し、仮想マシンマイグレーションを用いると判断する。第２の移送指示部２０１は、仮想マシン送信部２０４に処理移送の指示を出す。仮想マシン送信部２０４は、指定された移送対象の処理実体のスナップショットを作成し、移送先として指定されたコンピュータ２１０に、スナップショットを送信する（ステップＳ１５）。
【００７２】
次に、コンピュータ２１０の仮想マシン受信部２０７は、仮想マシンマイグレーションにより送られてきた処理のスナップショットを受信し、当該スナップショットを基にデータを再構成することで、コンピュータ２１０は、コンピュータ２００において実行されていた処理を、コンピュータ２１０上で再開する。
【００７３】
第２の移送指示部２０１は、管理者が端末からコマンドを入力することで指定した移送対象処理識別子、あるいは管理プログラムから指定された移送対象処理識別子、により特定される移送対象の処理実体を移送しようとするが、ノード識別子とプロセス識別子、の組み合わせ登録事項に含まれるプロセス識別子が移送対象の処理実体と一致しない場合（ステップＳ１３のＮＯ）、第２の移送指示部２０１は、プロセスマイグレーションを用いると判断する。第２の移送指示部２０１は、プロセスマイグレーションに対応したプロセス送信部２０３に処理移送の指示を出す。プロセス送信部２０３は指定された移送対象の処理実体のスナップショットを作成し、移送先として指定されたコンピュータ２１０に、当該スナップショットを送信する（ステップＳ１４）。
【００７４】
次に、コンピュータ２１０のプロセス受信部２０６は、プロセスマイグレーションにより送られてきた処理実体のスナップショットを受信し、当該スナップショットを基にプロセスを復元する。コンピュータ２１０は、コンピュータ２００において実行されていた処理実体を、コンピュータ２１０上で再開する。
【００７５】
以上、本発明の実施の形態により、分散システムにおいて複数の処理移送方法（例えば、プロセスマイグレーション、仮想マシンマイグレーション）が利用可能な場合に、移送先のコンピュータは、受け入れ可能なプロセスを通知する。また、移送元のコンピュータは処理移送方法を選択するように構成されているため、プロセスの種類により受け入れ可否が変動する場合でも、管理者や管理プログラムの煩雑な作業を必要とせず処理移送方法が選択され、処理移送方法の選択に関する判断が効率化される。
【００７６】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００７７】
また、本発明に記載の移送方法選択情報記憶部は、選択用情報記憶部１０２と、選択用情報取得部２０２と、に対応し、第１の移送部は、第１の処理送信部１０３と、第２の処理送信部１０４と、に対応し、第２の移送部は、第１の処理受信部１０５と、第２の処理受信部１０６と、に対応し、移送方法選択部は、移送指示部１０１と、第２の移送指示部２０１と、に対応する。
【００７８】
また、図２、図６に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、通信端末の実行処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものであってもよい。
【００７９】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００８０】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【産業上の利用可能性】
【００８１】
上記の実施形態により、分散システムの状況に応じて、処理移送方法を効率的に選択するコンピュータシステムを提供することが出来る。
【符号の説明】
【００８２】
１００…コンピュータ
１０１…移送指示部
１０２…選択用情報記憶部
１０３…第１の処理送信部
１０４…第２の処理送信部
１０５…第１の処理受信部
１０６…第２の処理受信部
１０７…処理移送方法記憶部
１１０…コンピュータ
１２０…コンピュータ
２００…コンピュータ
２０１…第２の移送指示部
２０２…選択用情報取得部
２０３…プロセス送信部
２０４…仮想マシン送信部
２０５…選択用情報収集部
２０６…プロセス受信部
２０７…仮想マシン受信部
２１０…コンピュータ
３００…ネットワーク
４００…ネットワーク
１０００…コンピュータ
１０１０…管理ＯＳ
１０１１…仮想マシンモニタ管理プログラム
１０１２…設定ファイル
１０２０…ゲストＯＳ
１０２１…プロセス
１０２２…プロセスマイグレーション機能
１０３０…仮想マシンモニタ
１０３１…仮想マシンマイグレーション機能
１１００…コンピュータ
１１１０…ゲストＯＳ
１１１１…プロセスマイグレーション機能
１２００…コンピュータ
１２１０…仮想マシンモニタ
１２１１…仮想マシンマイグレーション機能
３０００…ネットワーク
【図１】
2010035480.tif 000003
【図２】
2010035480.tif 000004
【図３】
2010035480.tif 000005
【図４Ａ】
2010035480.tif 000006
【図４Ｂ】
2010035480.tif 000007
【図５】
2010035480.tif 000008
【図６】
2010035480.tif 000009
【国際調査報告】
2010035480.tif 000010
2010035480.tif 000011
2010035480.tif 000012
2010035480.tif 000013