(57)【要約】【課題】  各ノードの現況情報に応じて、処理実行ノードを動的に変更する分散処理システム等を提供すること。【解決手段】  各ノードにおいては、変化があった場合に常に現況情報の更新対象とするノードと、変化あった場合に変化の内容ではなく変化があったことのみを知らせる対象とするノードとを区別して、各ノードに関する現況情報を管理する。外部入力情報が入力された場合には、各ノードの現況情報に応じてその時々で最も適切な処理実行ノードを決定する。この決定においては、分散処理システムの通信量を最も削減し効率よく処理できるように、通信コストをその基準として用いる。【選択図】図１１
2006261949.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されそれぞれが所定の情報処理を実行する複数のノードを具備する分散処理システムであって、
前記複数のノードのそれぞれは、
前記複数のノード及び各ノード間を接続する前記ネットワークの構造に関する第１の情報と、自ノードの現況情報を配信する配信先の他ノードである現況情報配信先ノードの一覧、及び、自ノードに変化が発生した場合に変化があったことを知らせる変更フラグを配信する配信先の他ノードである変更フラグ配信先ノードの一覧を含む第２の情報と、他ノードの現況情報の有無、他ノードの現況情報、当該他ノードの現況情報の最新情報を受信した時刻を含む第３の情報と、を記憶する記憶手段と、
外部入力情報を受付ける受付手段と、
前記外部入力情報に対する処理を行う第１のノードの決定処理を自ノードで行うか他ノードで行うかを、前記第３の情報に基づいて判定する判定手段と、
前記第１のノードの前記決定処理を他ノードで行うと判定した場合には、前記第１の情報及び前記第２の情報を用いて、当該分散処理システムにおける通信負荷を定量的に示す指標である通信コストを各ノード毎に計算し、その計算値に基づいて、前記決定処理を実行する第２のノードを決定する第１の決定手段と、
前記ネットワークを介して、前記第２のノードに対して前記決定処理を依頼する依頼手段と、
前記第１のノードの前記決定処理を自ノードで行うと判定した場合には、前記第３の情報を用いて、前記第１のノードの前記決定処理を実行する第２の決定手段と、
を具備することを特徴とする分散処理システム。
【請求項２】
前記通信コストは、データサイズとノード間の通信帯域幅との商の合計を基準とした計算値であることを特徴とする請求項１記載の分散処理システム。
【請求項３】
前記第１の決定手段は、前記外部入力情報に基づいて前記複数のノードから少なくとも一つの候補ノードを選択し、当該少なくとも一つの候補ノード毎に前記通信コストを計算し、その計算値に基づいて前記決定処理を実行する第２のノードを決定することを特徴とする請求項１又は２記載の分散処理システム。
【請求項４】
前記第２の決定手段は、前記第３の情報に含まれるリソース情報に基づいて前記第１のノードの前記決定処理を実行することを特徴とする請求項１乃至３のうちいずれか一項記載の分散処理システム。
【請求項５】
分散処理システムに用いられるノードを構成し、他のノードとネットワークを介して接続され、所定の情報処理を実行する情報処理装置であって、
前記複数のノード及び各ノード間を接続する前記ネットワークの構造に関する第１の情報と、自ノードの現況情報を配信する配信先の他ノードである現況情報配信先ノードの一覧、及び、自ノードに変化が発生した場合に変化があったことを知らせる変更フラグを配信する配信先の他ノードである変更フラグ配信先ノードの一覧を含む第２の情報と、他ノードの現況情報の有無、他ノードの現況情報、当該他ノードの現況情報の最新情報を受信した時刻を含む第３の情報と、を記憶する記憶手段と、
外部入力情報を受付ける受付手段と、
前記外部入力情報に対する処理を行う第１のノードの決定処理を自ノードで行うか他ノードで行うかを、前記第３の情報に基づいて判定する判定手段と、
前記第１のノードの前記決定処理を他ノードで行うと判定した場合には、前記第１の情報及び前記第２の情報を用いて、当該分散処理システムにおける通信負荷を定量的に示す指標である通信コストを各ノード毎に計算し、その計算値に基づいて、前記決定処理を実行する第２のノードを決定する第１の決定手段と、
前記ネットワークを介して、前記第２のノードに対して前記決定処理を依頼する依頼手段と、
前記第１のノードの前記決定処理を自ノードで行うと判定した場合には、前記第３の情報を用いて、前記第１のノードの前記決定処理を実行する第２の決定手段と、
を具備することを特徴とする情報処理装置。
【請求項６】
前記通信コストは、データサイズとノード間の通信帯域幅との商の合計を基準とした計算値であることを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記第１の決定手段は、前記外部入力情報に基づいて前記複数のノードから少なくとも一つの候補ノードを選択し、当該少なくとも一つの候補ノード毎に前記通信コストを計算し、その計算値に基づいて前記決定処理を実行する第２のノードを決定することを特徴とする請求項５又は６記載の情報処理装置。
【請求項８】
前記第２の決定手段は、前記第３の情報に含まれるリソース情報に基づいて前記第１のノードの前記決定処理を実行することを特徴とする請求項５乃至７のうちいずれか一項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散システムにおいて、処理実行ノードを動的に変更するための手法に関する。
【背景技術】
【０００２】
分散処理システムとは、ネットワークによって接続された複数のノード（サーバ側やクライアント側の情報処理装置）で処理を分担し、その負荷を分散させるシステムである。この様な分散処理システムでは、システムの外部からの入力により、システム内のいずれかのノードで当該の外部入力情報に対応する処理を行う（以下、外部入力情報に対応した処理を行うノードを「処理実行ノード」と呼ぶ。）。
【０００３】
分散処理システムにおいて処理実行ノードとなることができるノードは、当該外部入力情報と、その入力情報の内容に対応したノードの現況情報を持つノードである。ここで、ノードの現況情報とは、現在の状況（最も新しい状況）において当該ノードが有する情報である。
【０００４】
ところで、全てのノードが、予め各ノードの現況情報を知っているシステムであれば、当該システムにおいては、外部入力情報を受取ったノード自身が処理実行ノードとなることができる。しかしながら、時々刻々と変化する各ノードの現況情報を全てのノードで更新するとすれば、通信量が多くなり、システム全体の効率を低下される恐れがある。この問題は、ネットワークにおける通信容量があまり多くないシステムにおいては、特に深刻である。
【０００５】
なお、本願に関連する公知文献としては、例えば次のようなものがある。
【特許文献１】特開２０００−１１２９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記事情を鑑みてなされたもので、時々刻々と変化する各ノードの現況情報を全てのノードで更新する必要性をなくすと共に、各ノードが把握している現況情報に応じて処理実行ノードを動的に変更させ、これによって通信における負荷を軽減させシステム全体の効率を上昇させる分散処理システム、及び分散処理システムにおいて使用される情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するため、次のような手段を講じている。
【０００８】
本発明の第１の視点は、
ネットワークを介して接続されそれぞれが所定の情報処理を実行する複数のノードを具備する分散処理システムであって、前記複数のノードのそれぞれは、前記複数のノード及び各ノード間を接続する前記ネットワークの構造に関する第１の情報と、自ノードの現況情報を配信する配信先の他ノードである現況情報配信先ノードの一覧、及び、自ノードに変化が発生した場合に変化があったことを知らせる変更フラグを配信する配信先の他ノードである変更フラグ配信先ノードの一覧を含む第２の情報と、他ノードの現況情報の有無、他ノードの現況情報、当該他ノードの現況情報の最新情報を受信した時刻を含む第３の情報と、を記憶する記憶手段と、外部入力情報を受付ける受付手段と、前記外部入力情報に対する処理を行う第１のノードの決定処理を自ノードで行うか他ノードで行うかを、前記第３の情報に基づいて判定する判定手段と、前記第１のノードの前記決定処理を他ノードで行うと判定した場合には、前記第１の情報及び前記第２の情報を用いて、当該分散処理システムにおける通信負荷を定量的に示す指標である通信コストを各ノード毎に計算し、その計算値に基づいて、前記決定処理を実行する第２のノードを決定する第１の決定手段と、前記ネットワークを介して、前記第２のノードに対して前記決定処理を依頼する依頼手段と、前記第１のノードの前記決定処理を自ノードで行うと判定した場合には、前記第３の情報を用いて、前記第１のノードの前記決定処理を実行する第２の決定手段と、を具備することを特徴とする分散処理システムである。
【０００９】
本発明の第２の視点は、分散処理システムに用いられるノードを構成し、他のノードとネットワークを介して接続され、所定の情報処理を実行する情報処理装置であって、前記複数のノード及び各ノード間を接続する前記ネットワークの構造に関する第１の情報と、自ノードの現況情報を配信する配信先の他ノードである現況情報配信先ノードの一覧、及び、自ノードに変化が発生した場合に変化があったことを知らせる変更フラグを配信する配信先の他ノードである変更フラグ配信先ノードの一覧を含む第２の情報と、他ノードの現況情報の有無、他ノードの現況情報、当該他ノードの現況情報の最新情報を受信した時刻を含む第３の情報と、を記憶する記憶手段と、外部入力情報を受付ける受付手段と、前記外部入力情報に対する処理を行う第１のノードの決定処理を自ノードで行うか他ノードで行うかを、前記第３の情報に基づいて判定する判定手段と、前記第１のノードの前記決定処理を他ノードで行うと判定した場合には、前記第１の情報及び前記第２の情報を用いて、当該分散処理システムにおける通信負荷を定量的に示す指標である通信コストを各ノード毎に計算し、その計算値に基づいて、前記決定処理を実行する第２のノードを決定する第１の決定手段と、前記ネットワークを介して、前記第２のノードに対して前記決定処理を依頼する依頼手段と、前記第１のノードの前記決定処理を自ノードで行うと判定した場合には、前記第３の情報を用いて、前記第１のノードの前記決定処理を実行する第２の決定手段と、を具備することを特徴とする情報処理装置である。
【発明の効果】
【００１０】
以上本発明によれば、時々刻々と変化する各ノードの現況情報を全てのノードで更新する必要性をなくすと共に、各ノードが把握している現況情報に応じて処理実行ノードを動的に変更させ、これによって通信における負荷を軽減させシステム全体の効率を上昇させる分散処理システム、及び分散処理システムにおいて使用される情報処理装置を実現することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の各実施形態を図面に従って説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１２】
（第１の実施形態）
図１は、本実施形態に係る分散処理システム１の構成を示した図である。同図に示すように、本分散処理システム１は、ネットワークによって接続されたノードＡ〜ノードＨまでの８個のノードによって構成されている。各ノードは、少なくとも一つの他のノードとネットワーク接続されており、自分以外のノードと直接的又は間接的にデータのやり取りが可能となっている。
【００１３】
なお、以下の説明においては、自分自身のノードを「自ノード」、自分以外のノードを「他ノード」とよぶ。また、各ノードは、予め本分散処理システム１のネットワーク構成を知っているものとする。さらに、ネットワーク構成が動的に変更された場合には、最新のネットワーク構成を取得できるものとする。
【００１４】
次に、各ノードの内部構成について説明する。各ノードは、おおよそ同一の構成を有するが、ここでは説明を具体的にするため、ノードＢの内部構成について説明する。
【００１５】
図２は、ノードＢの構成を示したブロック図である。同図が示すように、ノードＢは、現況情報配信ノード管理部１０、ノード構成管理部１２、ノード現況情報管理部１４、自ノード現況情報配信部１６、自ノード現況情報管理部１８、自ノード現況情報変更フラグ配信部２０、外部入力情報解析部２２、処理実行部２４、処理依頼部２６、他ノード現況情報変更フラグ処理部２８、他ノード現況情報取得部３０、通信インターフェイス部３２を具備している。
【００１６】
現況情報配信ノード管理部１０は、現況情報配信先一覧を記憶する。この現況情報配信先一覧は、各ノードが定期的に又は変化があった場合に、自身の現況情報を配信する現況情報配信先ノードの一覧（以下、単に「現況情報配信先ノード一覧」と呼ぶ。）と、変化が発生した場合に変化の内容ではなく変化があったことのみを知らせる変更フラグを配信する変更フラグ配信先ノードの一覧（以下、単に「変更フラグ配信先ノード一覧」と呼ぶ。）とを、ノード毎に定義したものである。図３に、現況情報配信ノード管理部１０が記憶する現況情報配信先一覧の一例を示す。
【００１７】
ノード構成管理部１２は、当該分散処理システムに接続されている各ノード対応範囲、直接的な接続先ノード（すなわち、他のノードを介さずに直接接続されているノード）を少なくとも含むノード構成情報を記憶し管理する。図４は、ノード構成管理部１２が記憶するノード構成情報の一例を示した図である。同図に示すように、ノード構成情報では、各ノードの対応範囲を座標空間上に表す各座標と、各ノードが直接的な接続先ノード（図１参照）が規定されている。
【００１８】
ノード現況情報管理部１４は、他のノードに関する所定の情報（例えば、残存電池量）の有無、当該所定の情報の最新情報を受信した時刻（タイムスタンプ）を含む他ノード現況情報を、ノード毎に記憶する。図５は、ノード現況情報管理部１４が記憶する他ノード現況情報の一例を示した図である。同図に示す例では、Ａ、Ｂ、Ｃ、Ｄ、Ｅの各ノードについては残存電池量、各残存電池量を受信した（更新した）時刻のタイムスタンプ、データ有の旨が、Ｆ、Ｇ、Ｈの各ノードについてはデータを受信していないため、データ無の旨がそれぞれ他ノード現況情報として記憶されている。
【００１９】
自ノード現況情報配信部１６は、ノード現況情報管理部１４を介して配信依頼を受けると、現況情報配信ノード管理部１０から現況情報配信先ノード一覧を入手し、現況情報を配信する。
【００２０】
自ノード現況情報管理部１８は、定期的に又は自ノードにおいて変化があった場合に、ノード現況情報管理部１４にある自ノードの現況情報を更新する。また、自ノード現況情報管理部１８は、自ノードの現況情報を更新した場合、自ノード現況情報変更フラグ配信部２０と自ノード現況情報配信部１６のそれぞれに配信依頼を行う。
【００２１】
自ノード現況情報変更フラグ配信部２０は、自ノード現況情報管理部１８から配信依頼を受けると、現況情報配信ノード管理部１０から変更フラグ配信先ノード一覧を入手し、現況情報変更フラグを配信する。
【００２２】
外部入力情報解析部２２は、通信インターフェイス部３２を介して外部から受け取った外部入力情報を用いて、システム上のノードＡ〜Ｈの中から候補ノードを決定する。
【００２３】
処理実行部２４は、後述する処理ノード決定処理、及びこれに関する他の構成要素の制御を行う。
【００２４】
処理依頼部２６は、ノード構成管理部１２が記憶するノード構成情報と、現況情報配信ノード管理部１０が記憶する現況情報配信先ノード一覧とに基づいて、後述する通信コストを計算する。また、処理依頼部２６は、後述する処理ノード決定処理において、当該通信コストの値に基づきどのノードに処理を依頼すれば通信負荷が最も少なくなるかを判定し、当該判定に従って他のノード、又は自身のノードにおける処理実行部２４に対して処理を依頼する。
【００２５】
他ノード現況情報変更フラグ処理部２８は、他ノードからの現況情報変更フラグを受取ると、ノード現況情報管理部３０に当該ノードの現況情報が格納されているか否かを確認する。現況情報が既にあった場合、ノード現況情報管理部３０の当該ノードのデータを削除し、タイムスタンプのみを格納する。現況情報がなかった場合、新たに現況情報を格納する。
【００２６】
図６は、他ノード現況情報変更フラグ処理部２８によって実行される処理の流れを示したフローチャートである。また、図７（ａ）、７（ｂ）は、図６のフローに従う処理によって得られるノード現況情報の変更例を示す。すなわち、図７（ａ）の状態でノードＤの現況情報変更フラグを受取り、当該ノードＤについてノード現況情報の変更があると、ノード現況情報は図７（ｂ）に示すように変更されることになる。各図を参考に、他ノード現況情報変更フラグ処理部２８の動作の一例を説明すると、次の様である。
【００２７】
すなわち、例えば図３に示す内容にて各ノードが現況情報及び現況情報変更フラグを配信しているものとする。係る場合、ノードＢはノードＤの現況情報は受け取らないが、現況情報変更フラグは受け取ることになる。以前の何からの処理の結果、ノードＢがノードＤの現況情報を取得していた場合、ノードＢのノード現況情報管理部１４のデータは、図７（ａ）の様になっている。つまり、ノードＢは、ノードＤの現況情報を持っている。
【００２８】
また、ノードＢがノードＤからの現況情報を取得してからノードＤの現況情報フラグを受け取るまでの期間は、ノードＢがノードＤの最新の現況情報を持っていることになる。この様に通常の状態で、あるノードの現況情報変更フラグは配信されるが、現況情報が配信されないノードにおいて、何らかの理由により現況情報を取得した場合、次の現況情報変更フラグを受け取るまで、そのノードは当該ノードの最新の現況情報を持っていることが保証される。これにより、一時的ではあるが、現況情報取得コストを削減することが可能となる。
【００２９】
他ノード現況情報取得部３０は、他ノードから配信された現況情報を受取った場合と、処理実行部２４からの要求により他ノードの現況情報を取得した場合にノード現況情報管理部１４の当該ノードの現況情報を更新する。ノード現況情報管理部１４は、更新された現況情報をその更新時のタイムスタンプと共に格納する。
【００３０】
通信インターフェイス部３２は、他のノードとの情報のやり取りを行い、各要素にその情報を送り出す。
【００３１】
（処理実行ノードの決定処理）
次に、本分散処理システムにおいて実行される処理実行ノードの決定処理について説明する。これは、各ノードの現況情報に応じてその時々で最も適切な処理実行ノードを決定するものである。この決定においては、本システムの通信量を最も削減し効率よく処理できるように、後述する通信コストと呼ばれる基準が用いられる。これにより、時々刻々と変化する各ノードの現況情報を全てのノードで更新する必要がなく、通信における負荷を軽減させシステム全体の効率を上昇させることができる。
【００３２】
図８は、本処理実行ノードの決定処理の流れを示したフローチャートである。なお、本実施形態においては、説明を具体的にするため、ノードＢが外部入力情報を取得し、当該外部入力情報をどのノードに処理させるかを決定するものとする。
【００３３】
図８に示すように、まず、ノードＢの通信インターフェイス部３２は、外部入力情報を取得するとこれを外部入力情報解析部２２に送り出す（ステップＳ１）。外部入力情報解析部２２は、受け取った外部入力情報を用いてシステム上のノードＡ〜Ｈの中から候補ノードを決定する（ステップＳ２）。この決定は、たとえば次のようにして実行される。
【００３４】
図９（ａ）、９（ｂ）は、候補ノードの選択処理の一例を説明するための図である。ノードＢが入力する外部入力情報には、例えば図９（ａ）に示すような位置座標(X,Y)が含まれている。外部入力情報解析部２２は、この位置座標と、図４に示した各ノードのノード構成情報とを図９（ｂ）に示すようにXY平面にプロットし（図９（ｂ）では、ノードＧの情報のみ図示）、入力した位置座標(X,Y)を含む対応範囲を有するノードを候補ノードとして選択する。なお、本実施形態では、図９（ａ）に示す位置座標を入力するため、図１０に示すように候補ノードとしてノードＦとノードＧとが選択されることになる。
【００３５】
なお、この候補ノードの選択処理は、処理実行部２４において実行することも可能である。
【００３６】
次に、候補ノードのそれぞれの現況情報（例えば、各ノードのリソース情報等）から通信コストを計算し、これに基づいて候補ノードから処理ノードを決定する（ステップＳ３）。
【００３７】
図１１は、ステップＳ３における処理ノードの決定処理の流れを示したフローチャートである。同図に示すように、まず、ノードＢの処理実行部２４は、候補ノードであるノードＦとノードＧの現況情報をノード現況情報管理部１４に問合せる（ステップＳ３０）。
【００３８】
処理実行部２４は、ノード現況情報管理部１４への問い合わせの結果に基づき、ノードＦとノードＧの現況情報が取得可能か否かを判定し（ステップＳ３１）、取得可能であると判定した場合には、自ノードにおいて、処理ノードを決定する（ステップＳ３２）。
【００３９】
一方、ノード現況情報管理部１４が持っているデータが例えば図５の内容である場合、ノードＦとノードＧのデータを持っていない。そこで処理実行部２４は、ステップＳ３１において取得不可能であると判定し、処理依頼部２６に対して処理ノードの決定処理を他ノードへ依頼する（ステップＳ３３）。
【００４０】
次に、処理依頼部２６は、現況情報配信ノード管理部１０とノード構成管理部１２のデータを検索し、各ノードにおける「必要な現況情報を取得するのに必要な通信コスト」、及び「自ノードから各ノードへ処理を依頼するのに必要な通信コスト」の２つの通信コスト、およびその合計を計算する（ステップＳ３４）。なお、通信コストとして、本実施形態では、次の式（１）を採用するものとする。
【数１】
2006261949.tif 000003
【００４１】
ここでＳはデータサイズ、Ｂｉは通信路ｉの帯域幅を表す。通信コストは、データサイズを各通信路の帯域幅で割ったものの合計となる。
【００４２】
例えば、今、各ノードの現況情報のデータサイズを１０、処理を依頼するのに必要なデータサイズを１５とする。また、各通信路の帯域幅は、全て１０とする。このとき、例えばノードＡに処理ノード決定を依頼する場合の通信コストは、次の２つの合計となる。
【００４３】
・ノードＡによるノードＦとノードＧの現況情報の取得コスト  
ノードＡは、ノードＦの現況情報を持っている。従って、ノードＧの現況情報のみを取得すればよい。ノードＧの現況情報は、ノードＧの他にノードＥとノードＨが持っている（図３参照）。ノードＡが、ノードＥ、ノードＨ又はノードＧのいずれかからノードＧの現況情報を取得する場合、それぞれの値は次のようになる。ノードEから取得する場合の通信コスト＝１０×(１／１０)＝１となる。ノードHから取得する場合の通信コスト＝１０×(１／１０ ＋ １／１０)＝２となる。ノードGから取得する場合の通信コスト＝１０×(１／１０ ＋ １／１０)＝２となる。よって、最も通信コストが少なくて済むのはノードＥである。従ってノードＡがノードＦとノードＧとの現況情報を取得するための通信コストは１となる。
【００４４】
・ノードＢがノードＡに依頼するための通信コスト  
ノードＢからノードＡへのパス数は２である（図１参照）。従って、ノードＢがノードＡに依頼するための通信コストは、１５×(１／１０ ＋ １／１０)となる。
【００４５】
以上の計算を各ノードについて示した結果を、図１２に示す。この結果より、ノードＥに依頼するとコストが一番少なくてすむのが定量的にわかる。
【００４６】
次に、処理依頼部２６は、計算された二つの通信コストの合計値（指標）に基づいて、いずれのノードを処理ノードとするかの処理ノード決定を、自ノードで行うか他ノードで行うかの判定を行う（ステップＳ３５）。当該ステップＳ３５において、自ノードで処理ノード決定を行うと判定をした場合には、処理依頼部２６は、自ノードの処理実行部２４に処理を依頼し（ステップＳ３６）、処理実行部２４において依頼が許諾されれば、自ノードで処理ノード決定を行うことを確定する（ステップＳ３２）。一方、当該ステップＳ３５において、他ノードで処理ノード決定を行うと判定をした場合には、処理依頼部２６は、計算された二つの通信コストの合計値が最も低いノードＥに処理ノード決定を依頼し、ノードＥの処理実行部２４において依頼が許諾されれば、ノードＥ（他ノード）において処理ノード決定を行うことが確定する（ステップＳ３７）。なお、ステップＳ３７の確定によって、ノードＢから当該処理ノードに対して通信コストが最も少なくなるような経路によって外部処理情報がノードＥに転送される。
【００４７】
次に、自ノード又は他ノードにおいて、処理ノードが決定される（ステップＳ３８）。この決定は、候補ノードに関する所定の基準、例えば、候補ノードのうち、それぞれのノードで持っている残存電池量で最大のノードを処理ノードと決定する。
【００４８】
なお、ノードＥにおいては、ステップＳ１〜ステップＳ３までの処理が実行され、その結果自身が処理ノードを決定する場合には、上記基準に基づく処理ノード決定が実行される。一方、ノードＥにおいてさらの他ノードにおける処理ノード決定となった場合には、処理ノードが決定されるまで、同様の処理を繰り返す。
【００４９】
次に、処理ノードが決定されると、当該処理ノードにおいて外部入力情報の処理が実行される（図８ステップＳ４）。
【００５０】
以上述べた構成によれば、以下の効果を得ることができる。
【００５１】
本分散処理システムによれば、各ノードにおいて、変化があった場合に常に現況情報の更新対象とするノードと、変化あった場合に変化の内容ではなく変化があったことのみを知らせる対象とするノードとを区別して、各ノードに関する現況情報を管理する。従って、各ノードにおいて、全ての他ノードの現況情報を把握する必要はなくなり、通信における負荷を軽減させシステム全体の効率を上昇させることができる。
【００５２】
また、本分散処理システムによれば、通信コストと呼ばれる基準に基づいて、通信量を最も削減し効率よく処理ノードが決定できるノードを動的に決定する。これにより、時々刻々と変化する各ノードの現況情報を全てのノードで更新する必要がなく、情報通信における負荷を軽減させシステム全体の効率を上昇させることができる。
【００５３】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態では、ツリー構造になっている分散処理システムに関するものである。係る場合においても、第１の実施形態と同様の構成を採用することは可能である。しかしながら、ここでは、第１の実施形態とは異なる、仮想ノードを用いた処理ノード決定手法について説明する。
【００５４】
図１３は、本実施形態に係る分散処理システムの構造（ツリー構造）を説明するための図である。同図に示すように、各ノードは、ノードＡを頂点としたツリー構造によって直接的又は間接的に接続されている。また、ノードＦ、ノードＧ、ノードＨは、まとめて一つの擬似的なノード（仮想ノード）Ｘを形成する。ここで、仮想ノードとは、ネットワーク通信において複数のノードをあたかも一つのノードとして扱うために、異なる複数のノードから構成される擬似的な（仮想的な）一つのノードである。以下、仮想ノードを構成する各ノードを構成ノードと呼ぶ。
【００５５】
仮想ノードは、本分散処理システムにおいて次のように取り扱われる。すなわち、各構成ノードＦ、Ｇ、Ｈに関する情報は、すべて仮想ノードＸの情報とされる。従って、図３に示した現況情報配信先一覧、図４に示したノード構成情報、図５に示した他ノード現況情報等におけるノードＦ、ノードＧ、ノードＨは、すべて仮想ノードＸに置き換わる。
【００５６】
こうして各構成ノードＦ、Ｇ、Ｈの情報が仮想ノードＸのものに置き換えられた本分散処理システムは、擬似的にノードＡ〜Ｅ、Ｘによって構成されるものと捉えることができる。この擬似的な分散処理システムにおいては、第１の実施形態において説明した処理実行ノードの決定処理を適用することができる。なお、当該決定処理において、仮に「仮想ノードＸにおいて処理ノードを決定する。」と判定された場合には、仮想ノードを一つの分散処理システムと見立て、これに対してさらに第１の実施形態において説明した処理実行ノードの決定処理を適用すればよい。
【００５７】
なお、仮想ノード内の各構成ノードの現況情報は、構成ノードのいずれか一つ、又は複数のノードで集中管理することが好ましい。これにより、仮想ノード外との通信量を削減することができる。
【００５８】
以上述べた構成によれば、仮想ノードを利用することにより、第１の実施形態にて説明した効果に加えて、現在のネットワークの位相構造に限定されることなく、必要に応じて流動的にネットワーク構造を変更することができる。この仮想ノードを用いた分散処理システムは、ツリー構造を有する場合に特に実益がある。しかしながら、ツリー構造を有する場合に限定する趣旨ではない。
【００５９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。具体的な変形例としては、例えば次のようなものがある。
【００６０】
（１）本実施形態に係る各機能は、当該処理を実行するプログラムをワークステーション等のコンピュータにインストールし、これらをメモリ上で展開することによっても実現することができる。このとき、コンピュータに当該手法を実行させることのできるプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することも可能である。
【００６１】
（２）上記各実施形態においては、自ノードが他ノードに処理ノード決定の処理依頼を行った場合、他ノード側（処理ノード決定被依頼側）によって行われた処理結果が、自ノード側（処理ノード決定依頼側）に戻っていない。従って、必要に応じて、処理ノード決定被依頼側による処理結果を処理ノード決定依頼側にフィードバックする構成であることが好ましい。係る場合、処理ノードの決定処理と同様に通信コストを用いて、処理結果を処理ノード決定依頼側に戻すコストをも加算するようにすることが好ましい。
【００６２】
（３）上記各実施形態においては、現況情報配信先ノード一覧（図３参照）として自ノードから１パス数のものを例示した。しかしながら、これに拘泥されず、２パス以上のノードを現況情報配信先としてもよいし、複数のパス数に対応する異なるノードを選択するようにしてもよい。いずれのノードを現況情報配信先とするかは、システムの特性によって任意に選択することが好ましい。この事情は、変更フラグ配信先ノードの選択についても同様である。
【００６３】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【００６４】
以上本発明によれば、時々刻々と変化する各ノードの現況情報を全てのノードで更新する必要性をなくすと共に各ノードの現況情報に応じて処理実行ノードを動的に変更させ、これによって通信における負荷を軽減させシステム全体の効率を上昇させる分散処理システム、及び分散処理システムにおいて使用される情報処理装置を実現することができる。
【図面の簡単な説明】
【００６５】
【図１】図１は、本実施形態に係る分散処理システム１の構成を示した図である。
【図２】図２は、各ノードの構成を示したブロック図である。
【図３】図３に、現況情報配信ノード管理部１０が記憶する現況情報配信先一覧の一例を示す。
【図４】図４は、ノード構成管理部１２が記憶するノード構成情報の一例を示した図である。
【図５】図５は、ノード現況情報管理１４が記憶する他ノード現況情報の一例を示した図である。
【図６】図６は、他ノード現況情報変更フラグ処理部２８によって実行される処理の流れを示したフローチャートである。
【図７】図７（ａ）、７（ｂ）は、ノード現況情報の変更を説明するための図である。
【図８】図８は、本処理実行ノードの決定処理の流れを示したフローチャートである。
【図９】図９（ａ）、９（ｂ）は、候補ノードの選択処理の一例を説明するための図である。
【図１０】図１０は、候補ノードの選択処理の一例を説明するための図である。
【図１１】図１１は、ステップＳ３における処理ノードの決定処理の流れを示したフローチャートである。
【図１２】図１２は、各ノードにおける必要な通信コストを示した図である。
【図１３】図１３は、第２の実施形態に係る分散処理システムの概略構造（ツリー構造）を示した図である。
【符号の説明】
【００６６】
Ａ〜Ｈ、Ｘ…ノード、１０…現況情報配信ノード管理部、１２…ノード構成管理部、１４…ノード現況情報管理、１６…自ノード現況情報配信部、１８…自ノード現況情報管理部、２０…自ノード現況情報変更フラグ配信部、２２…外部入力情報解析部、２４…処理実行部、２６…処理依頼部、２８…他ノード現況情報変更フラグ処理部、３０…他ノード現況情報取得部、３２…通信インターフェイス部
【図１】
2006261949.tif 000004
【図２】
2006261949.tif 000005
【図３】
2006261949.tif 000006
【図４】
2006261949.tif 000007
【図５】
2006261949.tif 000008
【図６】
2006261949.tif 000009
【図７】
2006261949.tif 000010
【図８】
2006261949.tif 000011
【図９】
2006261949.tif 000012
【図１０】
2006261949.tif 000013
【図１１】
2006261949.tif 000014
【図１２】
2006261949.tif 000015
【図１３】
2006261949.tif 000016