(57)【要約】【課題】プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを実現する。【解決手段】計算機システムは、通信路を介して接続された第一の計算機と第二の計算機を含み、第二の計算機上で実行されていたプログラムを第一の計算機に移送して前記プログラムのマイグレーションを行うマイグレーション機能を有する計算機システムである。第一の計算機は、第一の記憶媒体と、プログラムがアクセスするデータ領域を有する計算機を示す計算機識別子が記憶される第一の管理表と、管理部とを有する。【選択図】  図１０
2004246702.tif 000002
【特許請求の範囲】
【請求項１】
通信路を介して接続され、それぞれ記憶媒体を備える複数の計算機と、プログラム本体、該プログラム本体がアクセス可能なデータ領域とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備えた計算機システムにおいて、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システム。
【請求項２】
前記プログラム本体が前記第一の計算機の記憶媒体の前記データ領域のデータに対して更新動作を行う場合に、前記管理部は、
前記第一の計算機の記憶媒体の前記データ領域の内容を更新するとともに、
前記管理表の前記データ領域に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換えることを特徴とする請求項１記載の計算機システム。
【請求項３】
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込むことを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項１から請求項３のいずれかに記載の計算機システム。
【請求項５】
通信路を介して他の計算機装置と接続される計算機装置であって、
自己の計算機装置を示す計算機識別情報を格納する格納手段と、
データを記憶する記憶媒体と、
マイグレーション手段と、
実行されていた前記他の計算機装置から前記マイグレーション手段によって移動されたものであって、プログラム本体、該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報と前記データ領域を有する計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部を有するプログラム部とを備え、
前記マイグレーション手段によって移動された前記プログラム部の前記プログラム本体がデータの参照動作を行う場合に、
前記管理部は、前記管理表に基いて参照するデータを有する計算機を示す計算機識別情報を得て、該得られた計算機識別情報が前記他の計算機装置を示すときは、該得られた計算機識別情報が示す前記他の計算機装置の前記データ領域からデータを取得して前記記憶媒体に記憶すると共に、前記管理表の前記データ領域を示すデータ領域情報に対応させて前記格納手段に格納された前記計算機識別情報を追加することを特徴とする計算機装置。
【請求項６】
前記マイグレーション手段によって移動された前記プログラム部の前記プログラム本体がデータの更新動作を行う場合に、前記管理部は、
前記計算機装置の前記記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記計算機装置の計算機識別情報に書き換えることを特徴とする請求項５記載の計算機装置。
【請求項７】
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別子として記憶されている全ての前記計算機識別情報を削除し、前記計算機装置の計算機識別情報を書き込むことを特徴とする請求項６に記載の計算機装置。
【請求項８】
前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記計算機以外の複数の計算機を示すときは、前記通信路を介する前記計算機装置との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項５から請求項７のいずれかに記載の計算機装置。
【請求項９】
通信路を介して接続され、それぞれ記憶媒体と固有の計算機識別情報とを備える複数の計算機と、プログラム本体、及び該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報と前記データ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備えた計算機システムにおけるデータアクセス方法であって、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索し、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システムにおけるデータアクセス方法。
【請求項１０】
前記プログラム本体が前記データ領域のデータに対して更新動作を行う場合に、前記第一の計算機の記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換えることを特徴とする請求項９に記載の計算機システムにおけるデータアクセス方法。
【請求項１１】
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込むことを特徴とする請求項１０に記載の計算機システムにおけるデータアクセス方法。
【請求項１２】
前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項９から請求項１１のいずれかに記載の計算機システムにおけるデータアクセス方法。
【請求項１３】
通信路を介して接続されそれぞれ記憶媒体と固有の計算機識別情報とを備える複数の計算機と、マイグレーション機能とを備えた計算機システムにおいて、該マイグレーション機能によって前記複数の計算機の一計算機に移動され該一計算機上で動作するプログラムであって、
所定の処理を行うプログラム本体と、
該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表と、該管理表を管理する管理部とを備え、
前記管理部に含まれるものであって、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索する機能と、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加する機能とを、
前記第一の計算機装置で実行されるようにしたプログラム。
【請求項１４】
前記プログラム本体が前記データ領域のデータに対して更新動作を行う場合に、前記第一の計算機の記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換える機能とをさらにコンピュータに実現させることを特徴とする請求項１３記載のプログラム。
【請求項１５】
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込む機能とを、さらにコンピュータに実現させることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得する機能とを、さらに前記コンピュータに実現させることを特徴とする請求項１３から請求項１５のいずれかに記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関し、特に、複数の計算機間でソフトウエアプログラムのマイグレーションが行われる計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関する。
【０００２】
【従来の技術】
互いに通信が可能な複数の計算機で構成される計算機システムにおいて、ソフトウエアプログラム（以下、プログラムという）を計算機間で移送するマイグレーション技術がある。
【０００３】
プログラムのマイグレーション技術は、動作中のプログラムの実行状態であるコンテキストを保存し、そのコンテキストを他の計算機に移送し、移送先の計算機においてその実行状態を復元することにより、プログラムを継続実行させるための技術である。プログラムのコンテキストとは、一般に、中央演算装置（以下、ＣＰＵともいう）のレジスタ値や、プログラムが使用しているメモリ領域の内容、外部との通信状態をいう。
【０００４】
そのマイグレーション技術は、複数の計算機によって構成される計算機システムの高信頼化や負荷分散のために利用される。例えば、計算機が故障した場合、故障した計算機上で動作しているプログラムを、マイグレーション技術によってシステム内の正常な計算機に移送し、実行を継続することによってシステムの高信頼化が図られる。あるいは、システム内の特定の計算機に負荷が集中している場合、負荷が集中している計算機上のプログラムを、マイグレーション技術によってシステム内の負荷の低い計算機に移送し、実行を継続することによってシステムの負荷分散が実現される。
【０００５】
プログラムのマイグレーションの代表的な手法は、種々開示されている（例えば、非特許文献１参照）。
【０００６】
マイグレーション技術を使用する場合に、マイグレーション前後において、マイグレーション先の計算機において実行されるプログラムが、マイグレーション先の計算機が備える記憶媒体上のデータに対して継続してアクセスを行う必要がある場合がある。このような場合、プログラムのマイグレーション時に、プログラムのコンテキストに加えて、記憶媒体上のデータの内容も移送先の計算機が備える記憶媒体上に複製し、移送後のデータアクセスが移送先の計算機上で行われるようにすることによってマイグレーション前後での継続したデータアクセスが可能となる。このように、記憶媒体上のデータの内容複製を行ってしまえば、それ以降のデータアクセスは、高速に行うことができる。
【０００７】
これに対し、マイグレーション先の計算機への記憶媒体上のデータの複製を行わずにマイグレーション前後で継続して記憶媒体上のデータに対してアクセスを行うために、ネットワークファイルシステムを用いることが多い。ネットワークファイルシステムの代表的なものとしては、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）がある。ＮＦＳの技術は、種々の文献に開示されている（例えば、非特許文献２参照）。
【０００８】
ネットワークファイルシステムを用いると、計算機システムを構成するどの計算機からも同じように記憶媒体上のデータに対してアクセスを行うことが可能となる。ネットワークファイルシステムは、データアクセスの際に、データの実体が格納されている計算機と通信を行うことによって、所望のデータを取得したり、更新したりすることができるようにする技術である。
【０００９】
ネットワークファイルシステムを用いれば、マイグレーション元の計算機上で実行していたプログラムが使用していた記憶媒体上のデータは、マイグレーション先の計算機からも使用できるようになる。このように、マイグレーション対象のプログラムが使用している記憶媒体上のデータを、ネットワークファイルシステム上に格納し、各計算機から見えるデータを同一にする手法を利用して、マイグレーション時に記憶媒体上のデータの転送を行わないようにする場合が多い。
【００１０】
但し、このネットワークファイルシステムを用いる計算機システムの形態は、そのシステムを構成する計算機間が高速なネットワークによって接続されていることを前提としている。これは、データに対する読み出しあるいは書き込みの際に、データの実体が格納されている計算機との間で参照あるいは更新のためのネットワーク通信が発生するため、低速なネットワーク接続が混在するような環境では、データの読み書きが非常に遅くなってしまうからである。一般に、データの読み出し及び書き込み性能は、プログラムの実行速度に大きな影響を与える。
【００１１】
【非特許文献１】
エス・エー・バターフィールドとジー・ジェイ・ポペック（Ｂｕｔｔｅｒｆｉｅｌｄ，Ｓ．Ａ．  ａｎｄ  Ｐｏｐｅｃ，Ｇ．Ｊ）著、「地域分散ＵＮＩＸシステムにおけるネットワークタスキング（Ｎｅｔｗｏｒｋ  Ｔａｓｋｉｎｇ  ｉｎ  ｔｈｅ  Ｌｏｃｕｓ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｕｎｉｘ  Ｓｙｓｔｅｍ）」、ユーズニックス夏８４年（Ｕｓｅｎｉｘ  Ｓｕｍｍｅｒ  ’８４）、ｐｐ．６２−７１（１９８４）
【００１２】
【非特許文献２】
ブレント・コーラガン（Ｃａｌｌａｇｈａｎ，  Ｂｒｅｎｔ）著、ＮＦＳ  イラストレイテッド（ＮＦＳ  Ｉｌｌｕｓｔｒａｔｅｄ）、ＩＳＢＮ：０−２０１−３２５７０−５、アディソン・ワイズレイ社（Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ）
【００１３】
【発明が解決しようとする課題】
しかし、プログラムのマイグレーション時に記憶媒体上のデータの複製を行う場合、複製すべきデータが巨大であると、データの複製のためのネットワーク通信に時間がかかり、その結果、プログラムの移送にかかる時間が増大してしまう。その結果、プログラムのマイグレーション中はプログラムを停止させる必要があるため、プログラムのマイグレーションに時間がかかると、プログラムの停止時間が長くなってしまうという問題があった。
【００１４】
一方、プログラムのマイグレーション時にデータの複製を行わずに、ネットワークファイルシステムを用いて記憶媒体上のデータを計算機間で共有するシステムを用いる場合は、マイグレーション先の計算機のプログラムがデータにアクセスする度に、データの実態を格納する計算機との間でネットワーク通信が発生するめに、データアクセスの速度が低下してしまうという問題があった。
【００１５】
そこで、本発明は、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
本発明の計算機システムは、通信路を介して接続され、それぞれ記憶媒体を備える複数の計算機と、プログラム本体、該プログラム本体がアクセス可能なデータ領域とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備える。マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加する。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【００１８】
まず図１に基づき、本実施の形態に係わる計算機システムの構成を説明する。図１は、本実施の形態に係わる計算機システムの構成を示す構成図である。
【００１９】
図１において、１００は計算機システムであり、計算機１０１、計算機１１１及び計算機１２１を含む。各計算機は、通信路１３１によって接続されている。１１０は、計算機１０１と通信路１３１とを接続するため通信路であり、１２０は、計算機１１１と通信路１３１とを接続するため通信路であり、１３０は、計算機１２１と通信路１３１とを接続するため通信路である。なお、各通信路間は、図示しない接続装置を介して接続されている。
【００２０】
計算機１０１は、プログラム部１０２を含む。プログラム部１０２は、後述するようにマイグレーションされるプログラム本体１０２ａと、位置管理部１０３と、位置管理表１０４を含む。計算機１０１は、さらに、入出力部１０５と、ハードディスク等の記憶媒体１０６と、プログラム送受信部１０７と、通信装置１０９を含む。
【００２１】
入出力部１０５は、プログラム部１０２からの指令に応じて、記憶媒体１０６に対するデータ入出力を行うプログラムである。プログラム送受信部１０７は、プログラムのマイグレーションと、移動すなわち移送されたプログラムの生成を行うプログラムである。プログラム送受信部１０７は、プログラム部１０２のマイグレーションのためのコンテキスト１０８を含み、コンテキスト１０８を管理する。通信装置１０９は、通信路１３１を介して、他の計算機とデータ通信を行う。
【００２２】
計算機１０１は、プログラム本体１０２ａがアクセスするデータの位置情報を管理する位置管理部１０３と位置管理表１０４とを有し、プログラム本体１０２ａからのデータ入出力の要求をその位置管理部１０３を通して入出力部１０５へ供給している。位置管理部１０３は、プログラム部１０２の一部であり、プログラム本体１０２ａが使用するデータがどの計算機にあるかを示す位置データを格納する位置管理表１０４を管理する。なお、位置管理表１０４は、プログラム部１０２が使用するメモリ内にあり、コンテキスト１０８に含まれる。
【００２３】
例えば、プログラム本体１０２ａが入出力部１０５を介してデータを記憶媒体１０６上のあるデータ領域に書き込むときは、位置管理部１０３を介して、入出力部１０５へ書込要求のアクセスのデータを供給し、書込要求を受けた入出力部１０５が記憶媒体１０６上のそのデータ領域への書き込みを行う。
【００２４】
計算機１１１は、入出力部１１５と、ハードディスク等の記憶媒体１１６と、プログラム送受信部１１７と、通信装置１１９を含む。入出力部１１５は、入出力部１０５と同様に、記憶媒体１１６に対してデータ入出力を行うプログラムである。プログラム送受信部１１７は、プログラム送受信部１０７と同様に、プログラム部１０２のマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部１１７は、プログラム部１０２のコンテキストを管理する。通信装置１１９は、通信装置１０９と同様に、通信路１３１を介して、他の計算機とデータ通信を行う。
【００２５】
計算機１２１は、入出力部１２５と、ハードディスク等の記憶媒体１２６、プログラム送受信部１２７と、通信装置１２９を含む。入出力部１２５は、入出力部１０５と同様に、記憶媒体１２６に対してデータ入出力を行うプログラムである。プログラム送受信部１２７は、プログラム送受信部１０７と同様に、プログラムのマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部１２７は、プログラム部１０２のコンテキストを管理する。通信装置１２９は、通信装置１０９と同様に、通信路１３１を介して、他の計算機とデータ通信を行う。
【００２６】
このように、各計算機はプログラム送受信部を有するので、計算機システム１００は、計算機間でプログラムのマイグレーションを行う機能を有する。従って、計算機システム１００において、複数の計算機１０１、１１１及び１２１間において、プログラム部１０２が移送されながら、プログラム本体１０２ａは動作することができる。
【００２７】
計算機１０１、１１１及び１２１には、それぞれ固有の計算機識別情報である識別子が予め付けられており、各計算機は、その識別子によって特定が可能である。各計算機は、図示しないデータ格納手段であるメモリ装置に自己の計算機を示す計算機識別子のデータを格納している。位置管理部１０３は、プログラム部１０２を実行している計算機の識別子を取得することができる。計算機の識別子は、計算機のホスト名やＩＰアドレスなどを用いればよいが、計算機毎に固有であればその種類は問わない。
【００２８】
位置管理部１０３は、プログラム本体１０２ａが入出力部１０５に対して行ったアクセスの内容をモニタすることによって、記憶媒体１０６中のデータが書込みされる領域の情報を得る。位置管理部１０３は、プログラム本体１０２ａによってアクセスされたデータ領域の情報と、プログラム本体１０２ａを実行している計算機１０１の識別子の組み合わせを、位置管理表１０４に記憶して管理する。
【００２９】
位置管理表１０４には、位置データとして、プログラム本体１０２ａによってアクセスされるデータ領域を示すデータ領域情報と、そのデータ領域のデータを格納している計算機の識別子の対応が記録されている。図２は、位置管理表１０４の例を示す図である。位置管理表１０４は、データ領域を示すデータ領域情報毎に、そのデータ領域に対応するエントリに、そのデータ領域を有する特定の計算機を示す計算機の識別子が記録されている。この例では、領域Ａのデータは計算機１１１が有していることを表している。同様に、領域Ｂのデータは計算機１１１および計算機１２１が有し、領域Ｃのデータは計算機１０１が有していることを表している。計算機１０１の有する位置管理表１０４において、計算機１１１と１２１の識別子が存在するのは、過去にプログラム本体１０２ａが計算機１１１と１２１上で動作して、データを更新したことを表している。なお、表の更新方法については後述する。位置管理表１０４の各データ領域に対応するエントリすなわちデータ登録領域に記録できる計算機の識別子の数は規定しておらず、１つ以上であれば何個でもよく、さらに最新の数個の識別子を残すなど制限を設けるようにしてもよい。
【００３０】
位置管理部１０３が管理する位置管理表１０４は、後述するように、プログラム部１０２が他の計算機へ移送されるときに、プログラム部１０２のコンテキストの一部として他の計算機へ転送される。
【００３１】
通信路１１０、１２０、１３０及び１３１として、それぞれイーサネット（Ｒ）、無線ＬＡＮ等を使用することが考えられるが、計算機間で相互に通信が行えればよく、特に種類は問わない。各通信路の通信速度の情報は、例えば、図３に示すような表形式データとして、各計算機に保持される。図３は、各通信路の速度を記録する速度管理表の例を示す図である。この例では、通信路１３１、１２０及び１３０の速度が１００Ｍｂｐｓの高速通信路であり、通信路１１０の速度が１０Ｍｂｐｓの低速通信路であることを示している。各計算機は、この速度管理表を参照することにより、計算機１０１と計算機１１１の間、及び計算機１０１と計算機１２１の間の通信速度が１０Ｍｂｐｓの低速で、計算機１１１と計算機１２１の間の通信速度は１００Ｍｂｐｓの高速であることを判断することができる。この表の管理方法は、各計算機がこの表を参照できればよく、特に規定されない。
【００３２】
なお、本実施の形態においては、プログラムのマイグレーションの方法は、特に制限はない。マイグレーション処理は従来のマイグレーションと同様の方法を用いて、プログラムの実行コンテキストであるＣＰＵのレジスタ値、プログラムが使用しているメモリの内容を計算機間で転送することによって実現できるので、マイグレーション処理の内容については説明を省略する。また、計算機１１１、１２１のプログラム送受信部を用いて、複数の計算機１０１、１１１、１２１の間で相互にプログラムのマイグレーションが可能であるが、これについても従来と同様の方法でマイグレーション処理ができるので説明は省略する。
【００３３】
まず、本実施の形態によって、図１の計算機システム１００において、プログラムが移送されていくときに、プログラムによってアクセスされたデータ領域のデータが、複数の計算機間でどのように分散して多重に複製されて格納されていくかを具体的な例を用いて説明する。
【００３４】
図４から図７は、プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【００３５】
図４に示すように、初期状態において、計算機１０１上でプログラム部１０２が動作しており、データ領域Ａ、Ｂ及びＣのデータは、計算機１０１が備えた記憶媒体１０６に格納され、プログラム部１０２は、記憶媒体１０６内のデータ領域Ａ、Ｂ及びＣにアクセスしていたとする。ここで、プログラム部１０２に含まれる位置管理表１０４において、データ領域Ａ、Ｂ及びＣに対応する計算機識別子は、それぞれ「１０１」のみであるとする。
【００３６】
図４の初期状態から、プログラム部１０２が転送されて計算機１１１にマイグレーションされ、マイグレーション先の計算機１１１においてプログラム部１０２が継続して実行されたとする。計算機１１１上で動作するプログラム部１０２がその実行中にデータ領域Ａのデータを書き込みすなわち更新するためのアクセスをすると、図５に示すように記録媒体１０６に更新データが、データ領域Ａ（更新データ領域）のデータとして記録媒体１１６に記憶すなわち書き込まれる。従って、計算機１１１上で動作するプログラム部１０２は、その後データ領域Ａにアクセスするときは、記録媒体１１６にアクセスする。このとき、図５に示すように、データ領域Ａのデータは、計算機１１１の記録媒体１１６にのみ存在し、マイグレーション元の計算機１０１の記録媒体１０６に記録されたデータ領域Ａのデータは無効とされる。
【００３７】
よって、マイグレーションされたプログラム部１０２によるデータの更新動作は、プログラム部１０２が動作する計算機が備える記憶媒体に書き込むため、通信路を介する通信処理を伴わないので、高速に行い得る。
【００３８】
そして、マイグレーションされた計算機１１１のプログラム部１０２が、データ領域Ｂのデータを参照、すなわち更新を行わずに単に読み出すためのアクセスをしたとすると、計算機１０１（参照データ保持計算機）から記録媒体１０６のデータ領域Ｂ（参照データ領域）のデータが取得され、図６に示すように、計算機１１１の記録媒体１１６に複製される。従って、その後、計算機１１１上で動作するプログラム部１０２がデータ領域Ｂのデータを参照するときは、記録媒体１１６に対してアクセスし、通信路を介する通信処理を行わないので、データの参照動作は高速に行い得る。
【００３９】
次に、計算機１１１のプログラム部１０２が、計算機１２１に移送されたとする。そして、計算機１２１のプログラム部１０２がデータ領域Ｂのデータを参照すると、図６と同様に、計算機１２１は、計算機１０１との通信速度よりも速い計算機１１１から、データ領域Ｂ（参照データ領域）のデータを取得し、図７に示すように、参照データ領域のデータとして計算機１２１の記録媒体１２６に複製される。計算機１０１と計算機１１１は、共にデータ領域Ｂのデータを有する参照データ保持計算機であるが、通信路１１０の通信速度が１０Ｍｂｐｓで、通信路１２０の通信速度が１００Ｍｂｐｓであるので、計算機１２１は、計算機１１１からデータ転送を行う方が、計算機１０１からデータ転送を行うよりも効率的だからである。その後、計算機１２１のプログラム部１０２がデータ領域Ｂのデータを参照するときは、記録媒体１２６に対してアクセスする。
【００４０】
このように、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって更新される場合、その更新データ領域のデータは、マイグレーション先の計算機が有する記憶媒体に記憶すなわち書き込まれ、かつマイグレーション元の計算機の対応するデータ領域のデータは無効とされる。また、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって参照される場合、その参照データ領域のデータは、マイグレーション先の計算機に転送され複製データが生成される。
【００４１】
このような動作を行うことによって、マイグレーションされたプログラムがアクセスする記憶媒体上のデータ領域のデータが、複数の計算機上に分散して多重に格納されていく。さらに、後述するように、プログラムによるデータの参照動作の場合、参照データ領域のデータが複数の計算機（参照データ保持計算機）に多重に格納されているため、複数の参照データ保持計算機の中から、最も高速にデータ転送を行える計算機から参照データ領域のデータの転送を行うことによって、効率的なデータアクセスを行えるようになる。
【００４２】
次に、上述した図４から図７に示すように、計算機システム上でプログラムが移送されていく過程を例にして、データ更新動作とデータ参照動作の処理を、図８、図９及び図１０を用いて説明する。図８は、データ参照の場合の位置管理部１０３の処理の流れの例を示すフローチャートである。図９は、データ更新の場合の位置管理部１０３の処理の流れの例を示すフローチャートである。図１０は、プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【００４３】
図４の状態では、図２の位置管理表において、領域Ａ、Ｂ及びＣの計算機識別子は、全て「１０１」であり、「１０１」以外の他の計算機識別子はないとする。これは、プログラム部１０２が計算機１１１へ移送される前は、プログラム部１０２は、記録媒体１０６の領域Ａ，Ｂ及びＣに対してデータアクセスを行っているからである。
【００４４】
まず、計算機１０１上で動作するプログラム部１０２が、記憶媒体１０６上のデータ領域に対してデータの参照及び更新を行う場合の位置管理部１０３の処理の流れについて説明する。始めにデータの参照動作の処理について図８を用いて説明する。
【００４５】
計算機１０１上で動作するプログラム本体１０２ａが位置管理部１０３に対して、データ領域Ｂのデータの参照要求を出すと、位置管理部１０３はその参照要求を受信する（ステップ４０１）。次に、位置管理部１０３は、位置管理表１０４に基いて、参照要求における参照されるデータ領域（参照データ領域）が、自己の計算機にあるか否かを判断する（ステップ４０２）。言い換えると、位置管理部１０３は、位置管理表１０４のデータ領域Ｂに対応するエントリに計算機１０１の識別子が存在するか否かをチェックする。図４の場合は計算機１０１の識別子が位置管理表１０４のデータ領域Ｂに対応するエントリにある、すなわち計算機１０１はデータ領域Ｂのデータを有する計算機（参照データ保持計算機）であるので、ステップ４０２でＹＥＳとなり、位置管理部１０３は、入出力部１０５を介して、自己の記憶媒体１０６からそのデータを読み出す（ステップ４０３）。そして、位置管理部１０３は、入出力部１０５から受信したデータを、プログラム本体１０２ａへ供給する（ステップ４０８）。
【００４６】
次に、データの書込動作すなわち更新動作の処理について図９を用いて説明する。計算機１０１上で動作するプログラム部１０２が、書込データと共に書き込み要求、すなわち更新要求を発行すると、位置管理部１０３は、その更新要求を受信する（ステップ５０１）。位置管理部１０３は、位置管理表１０４に基いて、更新要求があったデータ領域（更新データ領域）は、自己以外の計算機に属するかを判断する（ステップ５０２）。例えば、プログラム本体１０２ａがデータ領域Ａのデータを更新する場合、位置管理部１０３は、位置管理表１０４の領域Ａに対応するエントリに計算機１０１以外の計算機の識別子が存在するかをチェックする。
【００４７】
図４の場合、データ領域Ａのエントリに計算機１０１以外の計算機の識別子が存在しないので、処理は、ステップ５０５へ進み、自己の記憶媒体１０６に、データ領域Ａのデータとして書込データを書き込む（ステップ５０５）。
【００４８】
図４の場合、位置管理表１０４中の各データ領域に対応する計算機識別子は、全て「１０１」となっているので、計算機識別子のデータが「１０１」のデータ領域に対する更新動作において、処理は、ステップ５０２でＮＯとなり、位置管理部１０３は、入出力部１０５に対して更新要求を転送し、入出力部１０５は、記憶媒体１０６に、更新すべきデータ領域の書込データを書き込む（ステップ５０５）。
【００４９】
以上が、上述した初期状態における、計算機１０１上で動作するプログラム部１０２が、データを参照及び更新するときの位置管理部１０３の処理の流れである。なお、ステップ５０２から５０４と、ステップ５０５とは、処理の順序に制約はなく、どちらを先に行っても、あるいは同時に行ってもよい。
【００５０】
プログラム部１０２が計算機１０１上で動作して、計算機１０１の記憶媒体１０６のデータにアクセスしているときは、図１０のステップ６１１の状態であり、そのとき位置管理表１０４の内容は、６０１で示す状態である。
【００５１】
次に、図１０のステップ６１２に示すように、計算機１０１から計算機１１１へのプログラム部１０２のマイグレーションを行ったとする。このとき、プログラム部１０２は、計算機１１１へ移送されるので、位置管理部１０３及び位置管理表１０４も一緒に計算機１１１へ転送される。移送されたプログラム部１０２は、計算機１１１によって復元されて再実行される。
【００５２】
プログラム１０２のマイグレーション後、プログラム部１０２が再実行されると、プログラム本体１０２ａは、位置管理部１０３を介して入出力部に対してデータアクセスを行うが、そのとき、位置管理部１０３は、図８と図９の処理を実行する。
【００５３】
まず、計算機１１１上で動作するプログラム本体１０２ａが、データ領域Ａのデータの更新をする場合の位置管理部１０３の処理の流れについて説明する。図９において、プログラム本体１０２ａが、書込データと共にデータの書き込み要求、すなわち更新要求を発行すると、位置管理部１０３は、その更新要求を受信する（ステップ５０１）。位置管理部１０３は、位置管理表１０４に基いて、更新要求があったデータ領域（更新データ領域）は、自己以外の計算機に属するか、すなわちマイグレーション先の計算機１１１の記録媒体１１６以外にあるかを判断する（ステップ５０２）。
【００５４】
プログラム部１０２は、計算機１０１から移送され、各データ領域のデータに対するアクセスを未だ行っていないのであれば、位置管理表１０４中の各データ領域に対応する計算機識別子は、全て「１０１」となっている。よって、ステップ５０２でＹＥＳとなり、データ領域Ａに対応する、自己以外の計算機識別子である計算機識別子データ「１０１」を削除され（ステップ５０３）、記憶媒体１０６上のデータは無効とされる。次に、位置管理表１０４において、更新要求のあったデータ領域Ａに対応する計算機識別子として、自己の計算機の計算機識別子「１１１」を書き込む（ステップ５０４）。そして、更新要求に従って、入出力部１１５に対して更新要求を転送し、入出力部１１５は、自己の記憶媒体１１５に、データ領域Ａの書込データを書き込む（ステップ５０５）。
【００５５】
次に、計算機１１１上で動作するプログラム本体１０２ａが、データ領域Ｂのデータの参照をする場合の位置管理部１０３の処理の流れについて説明する。
【００５６】
プログラム本体１０２ａが位置管理部１０３に対してデータ領域Ｂのデータの参照要求を出すと、位置管理部１０３は、その参照要求を受信する（ステップ４０１）。位置管理部１０３は位置管理表１０４のデータ領域Ｂ（参照データ領域）に対応するエントリに計算機１１１の識別子が存在するかどうかをチェックする（ステップ４０２）。参照要求に係るデータ領域Ｂについては、自己の計算機である計算機１１１の識別子が位置管理表１０４にまだ存在せず、その代わりに計算機１０１の識別子が存在するので、ステップ４０２でＮＯとなり、処理は、ステップ４０４へ進む。
【００５７】
ステップ４０４では、参照データ領域であるデータ領域Ｂのエントリに存在する計算機の識別子を調べ、複数の識別子がある場合はその中から計算機１１１ともっとも高速にデータの転送を行うことができる計算機を選択して参照要求をその計算機へ出力する。ここでは、位置管理表１０４のデータ領域Ｂのエントリには計算機１０１のみの識別子が存在しているので、計算機１０１からデータを転送するしかないので、計算機１０１（参照データ保持計算機）が選択される。位置管理部１０３は、通信装置１１９、通信路１２０、１３１、１１０、通信装置１０９、入出力部１０５を通して、記憶媒体１０６からデータ領域Ｂのデータを読み込む（ステップ４０５）。位置管理部１０３は、入出力部１１５を介して、記憶媒体１１６に取得したデータ領域Ｂのデータを書き込む（ステップ４０６）。位置管理部１０３は位置管理表１０４のデータ領域Ｂに対応するエントリに、自己の計算機識別子である計算機１１１の識別子を追加する（ステップ４０７）。そして、ステップ４０５で取得したデータを、プログラム本体１０２ａに供給する（ステップ４０８）。
【００５８】
従って、プログラム部１０２が計算機１０１から計算機１１１へ移送された後、マイグレーション先の計算機１１１が、データ更新を行うと、更新されたデータは計算機１１１の記憶媒体１１６に記憶され、同時に計算機１０１の記憶媒体１０６上のデータは無効とされ、マイグレーション先の計算機１１１がデータ参照を行うと、参照されたデータの複製が記憶媒体１１６に記憶される（図６参照）。
【００５９】
以上のように、マイグレーション先の計算機１１１において、プログラム本体１０２ａが入出力部１１５を介して記憶媒体１１６上のデータを参照した場合、位置管理部１０３は、入出力部１１５へのアクセス内容を監視しているので、参照されたデータ領域のデータがどの計算機に格納されているのかを、位置管理部１０３が管理する位置管理表１０４を用いて検索する。次に、検索で見つかったデータを保持する計算機（参照データ保持計算機）の一覧の中から、現在プログラムを実行している計算機１１１に、もっとも高速にデータを転送可能な計算機を選択し、その計算機の記憶媒体からデータを読み込む。
【００６０】
さらに、プログラム本体１０２ａがデータ領域のデータを参照するために他の計算機からそのデータを取得した場合、プログラムを実行している計算機１１１が備える記憶媒体１１６にもそのデータを複製し、位置管理部１０３が管理する位置管理表１０４の、参照したデータ領域に対応するエントリに計算機１１１の識別子を追加する。これにより、システムを構成する複数の計算機上にデータが分散して多重に格納され、以後、このデータ領域に対する参照が起きた場合、計算機１１１の記憶媒体も参照先として用いることが可能となる。
【００６１】
以上のように、計算機１１１上で動作するプログラム本体１０２ａがデータ領域Ａのデータを更新し、さらにデータ領域Ｂのデータを参照する（ステップ６１３）と、位置管理表１０４の内容は、６０２で示す状態となる。
【００６２】
さらに、計算機１１１から計算機１２１へプログラム部１０２が移送されたとする（ステップ６１４）。プログラム部１０２は、計算機１２１へ移送されるので、位置管理部１０３及び位置管理表１０４も一緒に計算機１２１へ転送される。移送されたプログラム部１０２は、計算機１２１において復元されて再実行される。
【００６３】
プログラム部１０２のマイグレーション後、プログラム部１０２が再実行されると、プログラム本体１０２ａは、計算機１２１における位置管理部１０３を介して入出力部１２５に対してデータアクセスを行う。
【００６４】
まず、計算機１２１上で動作するプログラム本体１０２ａが、領域Ｂのデータの参照をする場合の位置管理部１０３の処理の流れについて説明する。プログラム本体１０２ａが位置管理部１０３を介してデータの参照をする場合、プログラム本体１０２ａが位置管理部１０３に対してデータ領域Ｂのデータの参照要求を出す。位置管理部１０３は、その参照要求を受信する（ステップ４０１）。位置管理部１０３は位置管理表１０４のデータ領域Ｂに対応するエントリに計算機１２１の識別子が存在するかどうかをチェックする（ステップ４０２）。このとき、計算機１２１の識別子は、未だ位置管理表１０４のデータ領域Ｂのエントリに存在しないので、ステップ４０２でＮＯとなって、計算機１２１ともっとも高速にデータの転送を行うことができる計算機（参照データ保持計算機）を、図３の速度管理表のデータに基いて抽出し、その最も転送速度が速い計算機に参照要求を送信する（ステップ４０４）。
【００６５】
データ領域Ｂに対応する計算機識別子は、位置管理表１０４によれば、計算機１０１と計算機１１１（共に参照データ保持計算機）の識別子になっているので、計算機１０１又は計算機１１１からデータ領域Ｂのデータの転送をしてもらわなければならない。そこで、位置管理部１０３は、図３の各通信路の速度データに基いて、計算機１０１と計算機１１１のいずれから転送を受けた方がデータを早く参照できるかを決定する。例えば、計算機１２１と計算機１０１との間では、通信路１３０、１３１及び１１０を経由するので、一番遅い通信路１１０の速度、１０Ｍｂｐｓとなる。一方、計算機１２１と計算機１１１との間では、通信路１３０、１３１及び１２０を経由するので、全て同じ通信速度なので、１００Ｍｂｐｓとなる。よって、計算機１０１が接続されている通信路１１０が通信速度は通信路１１０、１３０、１３１よりも遅く、計算機１１１からデータを転送したほうが高速なので、位置管理部１０３は計算機１１１を選択する。位置管理部１０３は、計算機１１１からデータ領域Ｂのデータを転送するために、最も転送速度が速い計算機１１１へ参照要求を送信する（ステップ４０４）。
【００６６】
位置管理部１０３は、通信装置１２９、通信路１３０、１３１、１２０、通信装置１１９、入出力部１１５を通して、記憶媒体１１６からデータ領域Ｂのデータを読み込む（ステップ４０５）。位置管理部１０３は入出力部１２５を通して、読み出して取得したデータ領域Ｂのデータを記憶媒体１２６に書き込む（ステップ４０６）。位置管理部１０３は位置管理表１０４のデータ領域Ｂに対応するエントリに計算機１２１の識別子を追加する（ステップ４０７）。ステップ４０５で取得したデータを、プログラム本体１０２ａに出力する（ステップ４０８）。その結果、ここまでの参照動作によって、各記憶媒体上のデータは、図７に示すようになる。
【００６７】
なお、ステップ４０４から４０６と、ステップ４０７に順序の制約はなく、どちらを先に行っても、同時に行ってもよい。
【００６８】
さらに、計算機１２１上のプログラム本体１０２ａが、データ領域Ａのデータを更新しようとすると、図９の処理が実行される。
【００６９】
プログラム本体１０２ａは、計算機１１１においてデータ領域Ａのデータを更新したので、位置管理表１０４中のデータ領域Ａに対応する計算機識別子は、「１１１」となっている。よって、ステップ５０２でＹＥＳとなり、データ領域Ａに対応する計算機識別子データ「１１１」を削除する（ステップ５０３）。次に、位置管理表１０４において、更新要求のあったデータ領域Ａ（更新データ領域）に対応する計算機識別子として、自己の計算機の計算機識別子「１２１」を書き込む（ステップ５０４）。そして、更新要求に従って、入出力部１２５に対して更新要求を転送し、入出力部１２５は、記憶媒体１２６に、データ領域Ａのデータとして書込データを書き込む（ステップ５０５）。その結果、データ領域Ａのデータは、計算機１２１の記憶媒体１２６に書き込まれ、計算機１１１の記憶媒体１１６上のデータ領域Ａのデータは無効とされる。
【００７０】
以上のように、プログラム本体１０２ａがデータ領域Ｂのデータを参照し、さらに領域Ａのデータを更新する（ステップ６１５）と、位置管理表１０４の内容は、６０３で示す状態である。
【００７１】
そして、さらに、計算機１２１から計算機１０１へプログラム部１０２のマイグレーションが行われたとする（ステップ６１６）。そして、計算機１０１上のプログラム本体１０２ａがデータ領域Ｂのデータを参照したとすると、位置管理表１０４において、データ領域Ｂに対応するエントリには計算機１０１の識別子も含まれているので、位置管理部１０３は、ステップ４０２でＹＥＳとなって、ステップ４０３において、記憶媒体１０６から参照すべきデータ領域Ｂのデータが読み出される。
【００７２】
以上のように、プログラム本体１０２ａがデータ領域Ｂのデータを参照する（ステップ６１７）と、位置管理表１０４の内容は、６０４で示す状態である。
【００７３】
よって、プログラム部１０２が計算機１０１、１１１、１２１の間でマイグレーションしながら、以上のデータアクセス方法を用いることによって、データの複製が複数の計算機上に分散して多重に格納されていく。その結果、システム内の計算機間で多重化して配置されるデータが増加し、データが必要になったときに、データを格納している計算機のうち、もっとも高速にデータ通信を行える計算機からデータを取得することで効率的な参照アクセスを実現する。また、更新アクセスも、プログラムが動作する計算機が備える記憶媒体に対して行うため、高速に行うことができる。
【００７４】
以上説明したように、プログラムが計算機システムを構成する計算機間で移送され、そのプログラムがデータの更新をすると、そのマイグレーション先の計算機の記憶媒体上にデータが格納される。また、マイグレーション先の計算機上のプログラムがデータの参照をすると、そのマイグレーション先の計算機の記憶媒体上にデータが複製され、かつその複製を生成するとき、分散して記憶されているデータを格納している複数の参照データ保持計算機の中から、もっとも高速にデータを転送できる計算機を選択して参照することによって、データの転送を高速に行えるので、効率的な参照アクセスを実現することができる。
【００７５】
なお、以上の説明では、プログラム本体１０２ａがデータを参照する場合について説明したが、データの先読み等の目的で、位置管理部１０３がデータを参照する場合に、上述した参照処理を行うようにしてもよい。
【００７６】
また、上述したように、本実施の形態におけるプログラムのマイグレーションの方法は、従来のマイグレーションの方法と同様に、プログラムのコンテキストを他の計算機に移送し、マイグレーション先の計算機でプログラムの実行状態を復元する方法を用いる。その場合のコンテキストの保存や転送の手法は、どのような方法でもよく、その方法は限定されない。
【００７７】
さらに、マイグレーションされるプログラムは、通常のアプリケーションプログラムでも、オペレーティングシステムのプログラム等でもよい。
【００７８】
さらに、上述した説明では、プログラムによってアクセスされるデータ領域は、計算機に備えられた記憶媒体にあるとして説明したが、計算機上で動作するプログラムからはファイルとして扱われる場合もあるので、記憶媒体にはファイルも含まれるものとする。その場合は、プログラムによってアクセスされるデータ領域は、ファイル内を分割したデータ領域である。
【００７９】
さらにまた、本実施の形態では、位置管理部又は位置管理表は、プログラムの一部としても説明したが、マイグレーションされるプログラムに含まれないようにしてもよい。その場合、位置管理部又は位置管理表は、マイグレーション元の計算機から、マイグレーションの対象であるプログラムとは別にマイグレーション先の計算機へ送信されるようにしてもよいし、あるいは位置管理表のみ計算機間で通信し、位置管理部は予め計算機に組み入れておいてもよい。
【００８０】
また、データの参照をする場合、マイグレーション先の計算機がそのデータを他の計算機から取得するタイミングは、上述した実施の形態では、プログラムがデータを参照したときに行っているが、その取得のタイミングは、プログラムがデータを参照したとき以外でもよい。例えば、プログラムからの参照要求に先立って位置管理部が他の計算機からのデータ読み込みを行うという、いわゆるデータの先読みキャッシュ等のときでもよい。すなわち、プログラムがデータを参照するとき以外にも、データの参照動作をする前に、先読みなどのために事前にデータを参照する場合にも上述した方法を適用することができる。
【００８１】
以上のように、本実施の形態によれば、プログラムのマイグレーション時に、記憶媒体上のデータを移送先の計算機の記憶媒体への複製を行う必要がないので、高速にマイグレーションを行うことができ、プログラムの停止時間を短く抑えることが可能になる。
【００８２】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、以上、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００８３】
なお、以上説明した動作を実行するプログラムは、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の計算機システムを実現することができる。
【００８４】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【００８５】
【発明の効果】
以上説明したように、本発明によれば、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係わる計算機システムの構成を示す構成図である。
【図２】本発明の実施の形態に係わる位置管理表の例を示す図である。
【図３】本発明の実施の形態に係わる速度管理表の例を示す図である。
【図４】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図５】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図６】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図７】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図８】本発明の実施の形態に係わる、データ参照の場合の位置管理部の処理の流れを示すフローチャートである。
【図９】本発明の実施の形態に係わる、データ更新の場合の位置管理部の処理の流れの例を示すフローチャートである。
【図１０】プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【符号の説明】
１００・・・計算機システム、１０１、１１１、１２１・・・計算機、１１０、１２０、１３０、１３１・・・通信路、１０６、１１６、１２６・・・記憶媒体
【図１】
2004246702.tif 000003
【図２】
2004246702.tif 000004
【図３】
2004246702.tif 000005
【図４】
2004246702.tif 000006
【図５】
2004246702.tif 000007
【図６】
2004246702.tif 000008
【図７】
2004246702.tif 000009
【図８】
2004246702.tif 000010
【図９】
2004246702.tif 000011
【図１０】
2004246702.tif 000012