(57)【要約】【課題】分散処理システムにおいて、プロセス間の通信遅延が短くなるノードをプロセスの移動を伴わずに決定すること。【解決手段】通信遅延時間計測部６１は、コンピュータＡ（５０ａ）において動作するプログラムＡ（４０ａ）とコンピュータＢ（５０ｂ）において動作するプログラムＢ（４０ｂ）との間の通信遅延時間を第１の通信遅延時間として計測する。通信遅延時間取得部６２は、コンピュータＣ（５０ｃ）を介してプログラムＡ（４０ａ）とプログラムＢ（４０ｂ）との間で通信を行った場合におけるコンピュータＣ（５０ｃ）とコンピュータＢ（５０ｂ）との間の通信遅延時間をコンピュータＣ（５０ｃ）から第２の通信遅延時間として取得する。処理ノード変更部６３は、第１及び第２の通信遅延時間を比較して第２の通信遅延時間が第１の通信遅延時間よりも短い場合には、プログラムＡ（４０ａ）の移動先としてコンピュータＣ（５０ｃ）を選択する。【選択図】図１
2009258875.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータに設けた分散処理装置であって、
前記第１のコンピュータにおいて動作する第１のプログラムと前記第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測するように構成された通信遅延時間計測部と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得するように構成された通信遅延時間取得部と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択するように構成された処理ノード変更部と、を備えることを特徴とする分散処理装置。
【請求項２】
前記通信遅延時間取得部は、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得するように構成され、
前記処理ノード変更部は、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択するように構成されたことを特徴とする、請求項１に記載の分散処理装置。
【請求項３】
請求項１又は２に記載の分散処理装置を備えることを特徴とするコンピュータ。
【請求項４】
請求項３に記載のコンピュータを複数台備えることを特徴とする分散処理システム。
【請求項５】
第１のコンピュータによって、該第１のコンピュータにおいて動作する第１のプログラムと該第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測する通信遅延時間計測工程と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得する通信遅延時間取得工程と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択する処理ノード変更工程と、を含むことを特徴とする分散処理方法。
【請求項６】
前記通信遅延時間取得工程において、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得し、
前記処理ノード変更工程において、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択することを特徴とする、請求項５に記載の分散処理方法。
【請求項７】
第１のコンピュータにおいて動作する第１のプログラムと該第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測する通信遅延時間計測処理と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得する通信遅延時間取得処理と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択する処理ノード変更処理と、を前記第１のコンピュータに実行させることを特徴とする分散処理プログラム。
【請求項８】
前記通信遅延時間取得処理において、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得し、
前記処理ノード変更処理において、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択することを特徴とする、請求項７に記載の分散処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散処理装置、方法及びプログラムに関し、特に、複数のコンピュータに亘る分散処理における通信遅延を短縮する分散処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
クライアントとサーバとに処理が分散される分散システムにおいては、クライアント側の処理又はサーバ側の処理を適切なノード（分散システムを構成するコンピュータ）上に移動することによって分散処理の速度を向上させることができる。また、それによって分散システム全体としての消費電力を削減することもできる。
【０００３】
処理を行うノードを変更する方法として、移動（モバイル）エージェントやプロセスマイグレーションが知られている。移動エージェント又はプロセスマイグレーションに基づいて処理を移動させることにより、分散処理の速度を向上させ、又は、分散システム全体としての消費電力を削減する方法は次のとおりである。すなわち、任意のノードに対して処理を移動させて、元にいたノードよりも速度又は効率が向上した場合にはそのノードを選択し、向上しなかった場合には元のノードに処理を戻すという手順を繰り返す方法が用いられる。しかし、この方法では、処理の移動に伴うペナルティやコストが問題となる。移動エージェント又はプロセスマイグレーションの場合には、移動に伴う処理の停止時間、ＣＰＵ時間及び通信時間は、必ずしも短いとは限らない。したがって、処理を移動させる前に、予め適切なノードを選択する必要がある。
【０００４】
かかる問題に関連して、一例として、特許文献１において、処理を実行させるノードを効率良く選択することにより、ネットワーク上の通信量を大幅に削減し、分散処理システムの処理能力を高めることが可能な分散処理システムが記載されている。
【０００５】
従来の分散処理システムは次のように動作する。特許文献１の図１５を参照すると、情報処理装置１が、所定の探索条件を指定した移動エージェントを生成して情報処理装置２へ送信すると、移動エージェントは情報処理装置２が探索条件を満たすか否かを判定し、満たさない場合には更に情報処理装置３へ移動する。移動エージェントは、情報処理装置３が探索条件を満たすと判定した場合には、情報処理装置３の計算資源を予約した上で、情報処理装置１へ発見通知を送信する。それに対して情報処理装置１は、情報処理装置３を分散処理に使用する旨を通知し、続いてジョブを送信することにより情報処理装置３においてジョブが実行される。
【０００６】
【特許文献１】特開２００６−０４８２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明者によってなされたものである。上記特許文献１に記載の分散処理システムにおいては、移動エージェントを分散システム内の様々なノードに移動させて、各ノードの状態を調べることによって、処理を実行させるのに最適なノードを探す。
【０００８】
しかしながら、通信先との通信遅延（ターン・アラウンド・タイム、Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ、ＴＡＴ）を最小にすることによって処理の速度や効率を向上させる目的で、特許文献１に記載の移動エージェントを使うことができない場合が起こりうる。すなわち、特許文献１に記載の移動エージェントが目的とするノードと通信をすることができない場合が起こりうる。
【０００９】
なぜなら、分散システムにおいては、通信の方法や対象が限られているため、移動される処理自身は通信先のノードとやり取りができるものの、移動エージェントは通信を許可されない場合があるからである。通信の方法や対象が限られる例として、認証が必要とされる通信が挙げられる。認証が必要とされる通信において、通信するプログラム内で認証が行われる場合には、この通信するプログラムしか相手のノード上のプログラムと通信する権利が得られない。したがって、移動エージェントが相手のノードを特定することができたとしても、通信遅延を測定するためのテスト用パケットを相手のノードに送信することができない場合が生じうる。
【００１０】
そこで、分散処理システムにおいて、プロセス間の通信遅延が短くなるノードをプロセスの移動を伴わずに決定することができる分散処理装置、方法及びプログラムを提供することが課題となる。
【課題を解決するための手段】
【００１１】
本発明の第１の視点に係る分散処理装置は、
第１のコンピュータに設けた分散処理装置であって、
前記第１のコンピュータにおいて動作する第１のプログラムと前記第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測するように構成された通信遅延時間計測部と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得するように構成された通信遅延時間取得部と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択するように構成された処理ノード変更部と、を備えることを特徴とする。
【００１２】
第１の展開形態の分散処理装置は、
前記通信遅延時間取得部は、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得するように構成され、
前記処理ノード変更部は、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択するように構成されることが好ましい。
【００１３】
第２の展開形態のコンピュータは、
上記の分散処理装置を備えることが好ましい。
【００１４】
第３の展開形態の分散処理システムは、
上記のコンピュータを複数台備えることが好ましい。
【００１５】
本発明の第２の視点に係る分散処理方法は、
第１のコンピュータによって、該第１のコンピュータにおいて動作する第１のプログラムと該第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測する通信遅延時間計測工程と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得する通信遅延時間取得工程と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択する処理ノード変更工程と、を含むことを特徴とする。
【００１６】
第４の展開形態の分散処理方法は、
前記通信遅延時間取得工程において、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得し、
前記処理ノード変更工程において、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択することが好ましい。
【００１７】
本発明の第３の視点に係る分散処理プログラムは、
第１のコンピュータにおいて動作する第１のプログラムと該第１のコンピュータにネットワークを介して接続された第２のコンピュータにおいて動作する第２のプログラムとの間の通信遅延時間を第１の通信遅延時間として計測する通信遅延時間計測処理と、
前記第１及び第２のコンピュータに前記ネットワークを介して接続された第３のコンピュータを介して前記第１のプログラムと前記第２のプログラムとの間で通信を行った場合における該第３のコンピュータと前記第２のコンピュータとの間の通信遅延時間を該第３のコンピュータから第２の通信遅延時間として取得する通信遅延時間取得処理と、
前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間が前記第１の通信遅延時間よりも短い場合には、前記第１のプログラムの移動先として前記第３のコンピュータを選択する処理ノード変更処理と、を前記第１のコンピュータに実行させることを特徴とする。
【００１８】
第５の展開形態の分散処理プログラムは、
前記通信遅延時間取得処理において、２以上の第３のコンピュータのそれぞれについて前記第２の通信遅延時間を取得し、
前記処理ノード変更処理において、前記第１及び第２の通信遅延時間を比較して前記第２の通信遅延時間のうち前記第１の通信遅延時間よりも短いものがある場合には、前記第１のプログラムの移動先として前記第３のコンピュータのうち前記第２の通信遅延時間が最短であるものを選択することが好ましい。
【発明の効果】
【００１９】
本発明によって、分散処理システムにおいて、プロセス間の通信遅延が短くなるノードをプロセスの移動を伴わずに決定することができる。第１のコンピュータにおいて動作する第１のプログラムと、第２のコンピュータにおいて動作する第２のプログラムとの間の通信を、第１のコンピュータに第１のプログラムを保持したまま、第３のコンピュータを経由して行うことによって、プログラムの移動を伴うことなく、通信遅延が短くなるノードを探索することができるからである。また、本発明によって、認証などによる制限のため、通信することができるプログラムの組が制限されるような場合であっても、プロセス間の通信遅延が短くなるノードを決定することができる。
【発明を実施するための最良の形態】
【００２０】
（実施形態１）
本発明の第１の実施形態に係る分散処理装置について、図面を参照して説明する。図１は、本発明の第１の実施形態の構成を示すブロック図である。図１を参照すると、第１のコンピュータ５０ａに設けた分散処理装置６０は、通信遅延時間計測部６１、通信遅延時間取得部６２、処理ノード変更部６３を備える。
【００２１】
通信遅延時間計測部６１は、第１のコンピュータ５０ａにおいて動作する第１のプログラム４０ａと第１のコンピュータ５０ａにネットワーク３０を介して接続された第２のコンピュータ５０ｂにおいて動作する第２のプログラム４０ｂとの間の通信遅延時間を第１の通信遅延時間として計測する。
【００２２】
通信遅延時間取得部６２は、第１及び第２のコンピュータ５０ａ、５０ｂにネットワーク３０を介して接続された第３のコンピュータ５０ｃを介して第１のプログラム４０ａと第２のプログラム４０ｂとの間で通信を行った場合における第３のコンピュータ５０ｃと第２のコンピュータ５０ｂとの間の通信遅延時間を第３のコンピュータ５０ｃから第２の通信遅延時間として取得する。
【００２３】
処理ノード変更部６３は、第１及び第２の通信遅延時間を比較して第２の通信遅延時間が第１の通信遅延時間よりも短い場合には、第１のプログラム４０ａの移動先として第３のコンピュータ５０ｃを選択する。
【００２４】
（実施形態２）
本発明の第２の実施形態に係る分散処理システムについて図面を参照して説明する。図２は、本実施形態の分散処理システムの構成を示すブロック図である。図２を参照すると、本実施形態の分散処理システムは、少なくとも２台のノード（コンピュータ）１０−１〜１０−Ｎがネットワーク３０で接続され、それぞれのノード上で動作するプログラムが相互にデータをやり取りするような分散システムである。各ノード１０−ｉ（ｉ＝１〜Ｎ）は、通信部１１、通信転送部１２、通信先切替え部１３、ＴＡＴ測定部１４、ＴＡＴ記憶部１５及び処理移送先決定部１６を備える。
【００２５】
通信部１１は、自身のノードで動作するプロセス４０から渡されたデータを受け取り、通信相手のプログラムが動作する第２のノードにデータを送信する。さらに、通信部１１は、他のノードから転送されてきたデータを受信して、指定されたあて先に送信する。通信転送部１２は、データを受け取り、通信相手以外の第３のノードを経由して通信相手にデータを送信するために、データを第３のノードに転送する。通信先切替え部１３は、通信部１１と通信転送部１２のいずれを使うかを切替える。ＴＡＴ測定部１４は、通信部１１で行われるデータの送受信の通信遅延時間を測定し、データが他のノードの通信転送部１２によって転送されたものである場合は、そのノードの通信転送部１２に通信遅延時間を返答する。ＴＡＴ記憶部１５は、ＴＡＴ測定部１４が測定した通信遅延時間を記憶する。処理移送先決定部１６は、通信転送部１２が第３のノードから通信遅延時間を受け取った際に、ＴＡＴ記憶部１５に記憶された通信遅延時間と比較し、その比較結果に基づいてプロセス４０を前記第３のノードに移送するか否かを決定する。
【００２６】
このような構成を採用し、プロセス４０と第２のノード上のプロセスのとの間の通信遅延時間を短縮することにより、本発明の目的を達成することができる。すなわち、本発明によって、認証などの制限により通信することができるプログラムの組が限られる場合であっても、プログラム（処理）自体を移動させることなく、移動後に通信遅延が小さくなるノードを選択することができる。なぜなら、自身と相手のノードとの通信を、第３のノードを経由して相手のノードに送信するようにして、自身と相手のノードとの通信遅延よりも、第３のノードと相手のノードとの通信遅延のほうが小さい場合には、かかる第３のノードを処理の移動先の候補とすることができるからである。
【実施例１】
【００２７】
次に、発明の第１の実施例について図面を参照して詳細に説明する。図２を参照すると、本発明の第１の実施例は、プログラム制御により動作するノード（コンピュータ）１０−１〜１０−Ｎと、各ノード１０−１〜１０−Ｎを接続するネットワーク３０を備える。
【００２８】
ノード１０−１〜１０−Ｎは、それぞれ、プロセス４０、通信部１１、通信転送部１２、通信先切替え部１３、ＴＡＴ測定部１４、ＴＡＴ記憶部１５、及び、処理移送先決定部１６を備える。これらの各部は、次のように動作する。
【００２９】
第１のノードにおいて稼動するプロセス４０は、第２のノードで稼動するプロセスと通信を行いつつ処理を進める。プロセス４０は、一例として、第１のノードがファイルにアクセスするクライアントであって第２のノードがファイルサーバである場合における、両ノードの間でファイルのやり取りを行うプロセスであってもよい。
【００３０】
通信部１１は、ネットワーク３０を介してデータを送受信する。また、他のノードから転送されてきたデータを受信して、指定されたあて先に送信する。通信部１１において指定されるあて先は、第２のノードの識別子である。
【００３１】
通信転送部１２は、通信部１１を介して第２のノードに送信すべきデータを第３のノードに転送する。通信転送部１２は、予め定められたノード選択方法に基づいて、第３のノードを選択する。第３のノードの選択方法として、例えば、ランダムに選択する方法がある。なお、転送されるデータとともに、第２のノードの識別子及び転送元である第１のノードの識別子が送信される。ノードの識別子として、例えば、ＩＰアドレスやホスト名などを利用することができる。
【００３２】
通信転送部１２は、実際に送信を行った第３のノードによって第２のノードにデータが転送されたときの通信遅延時間と、実際に送信を行った第３のノードの識別子と、を転送結果として受け取る。通信転送部１２は、受け取った通信遅延時間及びノード識別子を処理移送先決定部１６に送信する。
【００３３】
通信先切替え部１３は、所定の条件に基づいて、データの送信部として、通信部１１又は通信転送部１２のいずれを使用するかを切替える。ここで、所定の条件は、通信遅延時間が所定の閾値をこえたとき、であってもよい。
【００３４】
ＴＡＴ測定部１４は、プロセス４０と別のノードのプロセス（非図示）との間の通信遅延時間を測定する。通信遅延時間を測定する方法として、例えば、ＴＣＰ／ＩＰ通信の送信と確認（ＡＣＫ）との間の期間を測定する方法や、ＨＴＴＰ通信のＧＥＴと応答との間の期間を測定する方法がある。また、ＴＡＴ測定部１４は、他のノードからデータが転送されてきた場合には、測定結果である通信遅延時間を自ノードの識別子とともに、転送元の通信転送部１２に送信する。
【００３５】
ＴＡＴ記憶部１５は、ＴＡＴ測定部１４によって出力された通信遅延時間を記憶する。記憶する内容には、プロセスの識別子と通信遅延時間とが含まれる。ここで、プロセスの識別子として、プロセス名、プロセス番号等を利用することができる。通信遅延時間は、計測された数値データである。
【００３６】
処理移送先決定部１６は、通信転送部１２から通信遅延時間を受信し、受信した通信遅延時間とＴＡＴ記憶部１５に記憶された通信遅延時間（すなわち、自ノードから送信した場合の通信遅延時間）とを比較し、プロセス４０を移送するか否かを決定する。決定する際の基準として、第３のノードと第２のノードとの通信遅延時間の方が短い場合には、プロセスを第３のノードに移送するようにしてもよい。移送先のノードを決定する際には、通信転送部１２から受信した、実際に送信を行った第３のノードの識別子の情報を参照する。
【００３７】
次に、図２のブロック図、及び、図３のフローチャートを参照して本実施例の動作のうち、転送元の第１のノードの動作について説明する。まず、通信先切替え部１３が通信方法を決定する（ステップＳ１０）。通信部１１によって通信をするように決定され、第２のノードに直接送信する場合（ステップＳ１１のＹｅｓ）、通信部１１はデータを送信し、応答を受信する（ステップＳ１２）。さらに、ＴＡＴ測定部１４は通信遅延時間を測定し（ステップＳ１３）、ＴＡＴ記憶部１５は通信遅延時間を記憶する（ステップＳ１４）。
【００３８】
一方、通信転送部１２によって通信をするように決定され、第２のノードに直接送信しない場合（ステップＳ１１のＮｏ）、通信転送部１２はデータを第３のノードに転送する（ステップＳ１５）。その後、通信転送部１２は、転送先の第３のノードから、第２のノードからの応答と、転送結果としての通信遅延時間とを受信する（ステップＳ１６）。処理移送先決定部１６は、受信した通信遅延時間に基づいて、プロセス４０を移送するか否かを決定する（ステップＳ１７）。
【００３９】
次に、図２のブロック図、及び、図４のフローチャートを参照して本実施例の動作のうち、上記のステップＳ１５において転送されたデータを受け取った第３のノードにおける動作について説明する。
【００４０】
通信部１１は転送されたデータを受信する（ステップＳ２０）。通信部１１は、受信したデータを指定されたあて先（第２のノード）に送信するとともに、応答を受信して第１のノードに送信する（ステップＳ２１）。ＴＡＴ測定部１４は通信遅延時間を計算する（ステップＳ２２）。ＴＡＴ測定部１４は通信遅延時間を転送元の第１のノードに送信する（ステップＳ２３）。
【００４１】
次に、本実施例の効果について説明する。本実施例では、通信するプロセスを移動させることなく、別のノード（第３のノード）を経由してデータを送受信することで、通信遅延時間が短くなるノードを決定するように構成されている。したがって、通信するプロセスの組が限られ、移動エージェントが使えない場合であっても、プロセス自身を移動させる方法よりも低いコストで、プロセスの移送先として適したノードを選択することができる。
【実施例２】
【００４２】
発明の第２の実施例に係る分散処理システムについて図面を参照して詳細に説明する。第１の実施例における処理移送先決定部１６は、通信転送部１２から受信した単一の通信遅延時間とＴＡＴ記憶部１５に記憶された通信遅延時間とに基づいて、プロセス４０を移送するか否かを決定する。一方、本実施例では、通信転送部１２から複数の通信遅延時間を受信した後、移送先を決定する。図５は、本発明の第２の実施例の構成を示すブロック図である。
【００４３】
図５を参照すると、本発明の第２の実施例に係る分散処理システムは、プログラム制御により動作するノード（コンピュータ）２０−１〜２０−Ｎと、これらのノード２０−１〜２０−Ｎを相互に接続するネットワーク３０を備える。
【００４４】
ノード２０−１〜２０−Ｎは、それぞれ、プロセス４０、通信部２１、通信転送部２２、通信先切替え部２３、ＴＡＴ測定部２４、ＴＡＴ記憶部２５及び処理移送先決定部２６を備える。これらの各部は、次のように動作する。なお、プロセス４０、通信部２１、通信先切替え部２３、ＴＡＴ測定部２４の動作は、第１の実施例における、プロセス４０、通信部１１、通信先切り替え部１３、ＴＡＴ測定部１４の動作と同様である。
【００４５】
通信転送部２２は、本来であれば通信部２１を通じて第２のノードに送信すべきデータを第３のノードに転送する。通信転送部２２は、予め定められたノード選択方法に基づいて、転送先のノード（第３のノード）を選択し、データを転送する。ノードの選択方法としては、例えば、ランダムに選択する方法がある。なお、転送されるデータとともに、転送先のノード（第２のノード）の識別子と転送元のノード（第１のノード）の識別子が送信される。さらに、通信転送部２２は、転送したデータが転送先の第３のノードによって第２のノードに送信されたときの通信遅延時間を受信する。受信した通信遅延時間は、ＴＡＴ記憶部２５に送信される。
【００４６】
ＴＡＴ記憶部２５は、ＴＡＴ測定部２４が出力する通信遅延時間を記憶する。さらに、ＴＡＴ記憶部２５は、通信転送部２２によって出力された通信遅延時間を記憶する。記憶される内容は、プロセスの識別子、実際に通信を行った第３のノードの識別子、通信遅延時間である。ここで、プロセスの識別子として、プロセス名やプロセス番号等を利用することができる。また、ノードの識別子として、ＩＰアドレスやホスト名等を利用することができる。通信遅延時間には、計測された数値データが使用される。
【００４７】
処理移送先決定部２６は、所定の条件に基づいて、ＴＡＴ記憶部２５を参照して、処理移送先の決定処理を開始する。所定の条件として、例えば、通信転送部２２からＴＡＴ記憶部２５に通信遅延時間とノードの識別子が一定数送信されたことを条件としてもよく、一定時間が経過したことを条件としてもよい。処理移送先決定部２６は、ＴＡＴ記憶部２５に記憶されたプロセスの識別子、ノードの識別子、通信遅延時間の組を参照し、プロセス４０に関する通信遅延時間を比較する。処理移送先決定部２６は、比較結果に基づいて、プロセス４０の移送先を決定する。決定する際の判断基準として、例えば、通信遅延時間が最も短いものを移送先とするようにしてもよい。移送する場合には、ＴＡＴ記憶部２５に記憶されたプロセスの識別子、ノードの識別子、通信遅延時間の組のうち、上記の判断基準によって選ばれた組のノードの識別子が参照される。
【００４８】
次に、図６のフローチャートを参照して本実施例の動作について説明する。まず、通信先切替え部２３は通信方法を決定する（ステップＳ３０）。通信部２１によって通信をするように決定された場合（ステップＳ３１のＹｅｓ）、通信部２１はデータを送信し、応答を受信する（ステップＳ３２）。さらに、ＴＡＴ測定部２４は通信遅延時間を測定する（ステップＳ３３）。ＴＡＴ記憶部２５は通信遅延時間と自ノードの識別子を記憶する（ステップＳ３４）。
【００４９】
一方、通信転送部２２によって通信をするように決定された場合（ステップＳ３１のＮｏ）、通信転送部２２は、データを第３のノードに転送する（ステップＳ３５）。その後、通信転送部２２は、転送先の第３のノードから、第２のノードからの応答と、転送結果としての通信遅延時間とを受信して、ＴＡＴ記憶部２５に送信する。ＴＡＴ記憶部２５は、受信した通信時間とノード識別子の組を記憶する（ステップＳ３６）。
【００５０】
上記のステップＳ３０からステップＳ３６を何回か繰り返した後、処理移送先決定部２６が呼び出される。処理移送先決定部２６はプロセスを移動させるか否かを決定し、移動させる場合には、いずれのノードに移動させるかを決定する(非図示)。
【００５１】
一方、本実施例において転送先の第３のノードの動作については上記第１の実施例におけるものと同様である。
【００５２】
次に、本実施例の効果について説明する。本実施例では、複数のノードに対する通信遅延時間を一斉に比較することで、通信遅延時間が短くなる都度ノードを移行させる上記第１の実施例と比較して、プロセスの移送回数を削減することができる。
【実施例３】
【００５３】
次に、本発明の第３の実施例について図面を参照して説明する。図７は、本実施例の構成を示すブロック図である。図７を参照すると、本実施例の分散処理システムは、ファイルサーバ７０、クライアント８０−１〜８０−７、これらを相互に接続するネットワーク３０を備える。なお、クライアントの台数は２台以上の任意の台数であってもよい。
【００５４】
上記第１の実施例はリモートファイルアクセスの機能を提供する本実施例の分散システムに適用することができる。本実施例において、各ノードはファイルをアクセス可能なクライアント８０−１〜８０−７として動作し、それとは別に存在するファイルサーバ７０上のファイルにリモートアクセスする。そして、各クライアント８０−１〜８０−７に本発明の第１の実施例が適用されているものとする。
【００５５】
このような分散システム環境において、クライアント８０−１上のプロセス４０がファイルサーバ７０内のファイルにアクセスしているとし、さらに、クライアント８０−２とファイルサーバ８０−１の通信遅延が大きいとすると、本発明によって、プロセス４０を動作させるのに適したクライアントが８０−１〜８０−７の中から決定される。なお、８０−１、８０−２、…、８０−７の順に通信遅延は小さくなるものとする。
【００５６】
まず、通信転送部１２によって、プロセス４０をクライアント８０−１に残したままの状態で、クライアント８０−２を経由してファイルサーバ７０との通信が行われる。その結果がクライアント８０−１に返信されることによって、クライアント８０−１において通信遅延時間の比較が行われる。その結果、プロセス４０はクライアント８０−２に移送することが決定される。さらに、同様の処理が繰り返されて、プロセス４０はクライアント８０−３、８０−４、…、８０−７と順に移送される。プロセス４０は、最終的にもっとも遅延時間が短いクライアント８０−７に移送される。
【００５７】
一方、上記の第２の実施例を、本実施例における分散システムに適用した場合は、次のように動作する。ここでは、処理移送先決定部２６によって、同時に比較することのできるノード数は最大４つとする。まず、クライアント８０−１上でプロセス４０が動作したままの状態で、クライアント８０−２を経由する通信が行われる。次に、クライアント８０−３、クライアント８０−４を経由する通信が行われる。これらの通信の結果、測定された通信遅延時間がクライアント８０−１に返され、記憶された後、クライアント８０−１での結果も含めて、４つの通信遅延時間の比較が行われ、その結果、クライアント８０−４が移送先として決定される。その後、同様にクライアント８０−４からクライアント８０−７までの４台でも、同じ移送先決定処理が行われ、最終的に、プロセス４０はクライアント８０−７に移送される。
【００５８】
以上のように、リモートファイルアクセス機能を提供する分散システムに本発明を適用することで、ファイルアクセスの処理時間を短縮することができる。
【産業上の利用可能性】
【００５９】
本発明によれば、クライアント・サーバ型の分散システムにおいて、処理速度を向上するための運用管理システムという用途に適用できる。また、クライアント・サーバ型の分散システムにおいて、消費電力を低減するための運用管理システムという用途に適用できる。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明の第２の実施形態の構成を示すブロック図である。
【図３】本発明の第１の実施例の動作を示すフローチャートである。
【図４】本発明の第１の実施例の動作を示すフローチャートである。
【図５】本発明の第２の実施例の構成を示すブロック図である。
【図６】本発明の第２の実施例の動作を示すフローチャートである。
【図７】本発明の第３の実施例の構成を示すブロック図である。
【符号の説明】
【００６１】
１０−１〜１０−Ｎ、２０−１〜２０−Ｎ  ノード（コンピュータ）
１１、２１  通信部
１２、２２  通信転送部
１３、２３  通信先切替え部
１４、２４  ＴＡＴ測定部
１５、２５  ＴＡＴ記憶部
１６、２６  処理移送先決定部
３０  ネットワーク
４０  プロセス
４０ａ、４０ｂ、４０ｃ  プログラム
５０ａ、５０ｂ、５０ｃ  コンピュータ
６０  分散処理装置
６１  通信遅延時間計測部
６２  通信遅延時間取得部
６３  処理ノード変更部
７０  ファイルサーバ
８０−１〜８０−７  クライアント
【図１】
2009258875.tif 000003
【図２】
2009258875.tif 000004
【図３】
2009258875.tif 000005
【図４】
2009258875.tif 000006
【図５】
2009258875.tif 000007
【図６】
2009258875.tif 000008
【図７】
2009258875.tif 000009