(57)【要約】【課題】ネットワークに接続された多数のノード上に分散するサービス処理要素プログラムが、並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する適応型分散処理システムに関し、各ノードの負荷率を均等化し、また、ノード間の通信量を削減し、処理効率の向上を図る。【解決手段】ネットワークＮ上の各ノードＡ，Ｂ，Ｃ，…に、サービス処理要素プログラムＰ１，Ｐ２，…が分散配置され、各ノードＡ，Ｂ，Ｃ，…は、自ノードの処理負荷を収集し、上限値を越えたことを検知する手段１−１と、管理ノードＭから他ノードの情報を受け取る手段１−２と、自ノード内の処理負荷情報を他ノードへ通知する手段１−３と、該処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値を参照して、処理を受け入れることの可否を応答する手段１−４と、他ノードへサービス処理要素プログラムを移動して実行させる手段１−５とを備える。【選択図】      図１
2005004676.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、
ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、
自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、
を備えたことを特徴とする適応型分散処理システム。
【請求項２】
ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの負荷情報を収集する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、
ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
【請求項３】
ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、
該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、
ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続された多数のノード（情報処理装置）上に分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムに係り、効率的なサービス処理機能を実現する適応型分散処理システムに関する。
【０００２】
【従来の技術】
図２７に従来の分散処理システムを示す。分散処理システムは、ネットワークＮに接続された複数のノードＡ，Ｂ，Ｃ…上に、利用者に対する各種サービスを提供するためのサービス処理要素プログラムＰ１，Ｐ２，Ｐ３…を分散配置し、それらが相互に情報交換して並列に動作することにより、サービス要求への応答時間の短縮を図る処理システムである。
【０００３】
例えば、同図に示すように、利用者のサービスの要求１は、ノードＡのサービス処理要素プログラムＰ１→ノードＢのサービス処理要素プログラムＰ５，Ｐ６→ノードＣのサービス処理要素プログラムＰ８により分散処理される。また、利用者のサービスの要求２は、ノードＡのサービス処理要素プログラムＰ２により処理される。また、利用者のサービスの要求３は、ノードＢのサービス処理要素プログラムＰ５，Ｐ６→ノードＣのサービス処理要素プログラムＰ８により分散処理される。
【０００４】
効率的なサービス処理機能の実現のためには、各ノード間の負荷率の偏りにより負荷率の高いノードでの処理待ちが生じるのを避けるため、各ノードの負荷率を均等化することが必要である。また、処理の並列化によるノード間の通信のため、ネットワークの負荷が大きくなるが、それを抑制するためには、ノード間通信量を削減することが求められる。そのためには、ノード間における負荷の偏り及び通信量がより少なくなるように、各ノードＡ，Ｂ，Ｃ…にサービス処理要素プログラムＰ１，Ｐ２，Ｐ３…配置することが重要である。
【０００５】
しかし、利用者がサービスをどのように利用するかを予測するのは困難な場合が多く、また、利用するサービスの傾向が変化することもあり、各サービス処理要素プログラムの適切な配置を決めることは難しい。更に、ノード構成やサービス処理要素プログラムの変更もそれに影響を与える。
【０００６】
そのため、各サービス処理要素プログラムの配置が固定している場合に、ノード間に負荷率の偏りが生じ、サービスの実行効率が悪くなり、サービスの応答の遅れを引き起こすことがある。また、非効率的なノード間通信により、ネットワークの負荷が増大することがある。
【０００７】
本発明に関連する先行技術文献として、「分散システムの負荷平準化方法」に関して特許文献１に、「アプリケーションプログラム移動位置決定方法及びデータファイル移動位置決定方法並びにその装置」に関して特許文献２に、また、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」に関して非特許文献１に記載されている。
【０００８】
【特許文献１】
特開２０００−４７９９６号公報
【特許文献２】
特開平１１−１４３８３６号公報
【非特許文献１】
沢野  泰淳、張  勇兵、高木  英明、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」、電子情報通信学会論文誌  Ｄ−Ｉ  Ｖｏｌ．Ｊ８４−Ｄ−Ｉ  Ｎｏ．９ｐｐ．１４５０−１４５３  ２００１年９月
【０００９】
【発明が解決しようとする課題】
本発明は、前述の分散処理システムにおいて、サービスの利用傾向の変化、システム構成の変更に適応して、ノードの負荷率の均等化を図り、またノード間の通信量を削減し、処理時間の増大を抑えつつ利用者のサービスの要求に対する応答時間を短縮し、効率の良いシステム構築することができる適応型分散処理システムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の適応型分散処理システムは、（１）ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたものである。
【００１１】
また、（２）ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの負荷情報を収集する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、を備えたものである。
【００１２】
また、（３）ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、を備えたものである。
【００１３】
【発明の実施の形態】
図１に本発明の第１の実施形態（過負荷に対する移動制御）を示す。適応型分散処理システムは、ネットワークＮに接続され、サービス処理要素プログラムＰ１，Ｐ２，…が配置される複数の処理ノードＡ，Ｂ，Ｃ，…と管理ノードＭとから構成される。図１に示す実施形態は、過負荷に対しサービス処理要素プログラムＰ１，Ｐ２，…の移動制御を行う実施形態である。なお、本明細書及び図面において、「サービス処理要素プログラム」及び「処理ノード」を簡潔化のためにそれぞれ単に「処理要素プログラム」及び「ノード」と記している。
【００１４】
ここで、各ノードＡ，Ｂ，Ｃ，…には、自ノードの処理負荷を収集し、該処理負荷が自ノードの上限値を越えたことを検知する処理負荷収集・上限値超過検出手段１−１と、全てのノード情報が登録されている管理ノードＭから、他ノードの情報を受け取る他ノード情報受信手段１−２と、ノード内のサービス処理要素プログラムの処理負荷情報を他ノードへ通知する処理負荷情報の他ノードへの通知手段１−３と、該他ノードの処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値と比較して、それを受け入れることの可否を応答する処理負荷受け入れ可否判断・応答手段１−４と、他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段１−５とをそれぞれ備える。
【００１５】
各ノードは、処理負荷収集・上限値超過検出手段１−１により、自ノードの処理負荷が上限値を越えたことを検知すると、処理負荷情報の他ノードへの通知手段１−３と、他ノードの処理負荷受け入れ可否判断・応答手段１−４とにより、他ノードと交渉し、処理能力に余裕がある他ノードへ、処理要素プログラム移動手段１−５によりサービス処理要素プログラムを移動させる。これにより、各ノード間で負荷率を均等化する方向に迅速にシステム構成を制御することができる。
【００１６】
図２は、本発明の第２及び第３の実施形態（過負荷に対する移動制御）を示す。各ノードＡ，Ｂ，Ｃ，…の構成は図１に示したものと同様である。第２の実施形態において、管理ノードＭには、各ノードＡ，Ｂ，Ｃ，…の処理負荷の上限値を含むノード情報を登録する手段２−３を備える。また、各ノードノードＡ，Ｂ，Ｃ，…から処理負荷の現在値を受信する手段２−１と、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノードを抽出する手段２−２とを備える。
【００１７】
各ノードＡ，Ｂ，Ｃ，…に、処理負荷収集・上限値超過検出手段１−１と、他ノード情報受信手段１−２と、処理負荷情報の他ノードへの通知手段１−３と、処理負荷受け入れ可否判断・応答手段１−４と、処理要素プログラム移動手段１−５とを備える。
【００１８】
今、例としてノードＡにおいて、処理負荷収集・上限値超過検出手段１−１により、自ノードの処理負荷が上限値を越えたことを検知した場合、それを管理ノードＭに通知し、管理ノードＭは、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノード（即ち、処理能力に余裕があるノード、例えばノードＢ）を通知し、ノードＡは通知されたノードＢと交渉し、実際に処理能力に余裕があれば、サービス処理要素プログラムをノードＢ移動させることによって、迅速に負荷率を均等化する方向にシステムを制御することができる。
【００１９】
なお、管理ノードＭに各ノードの処理負荷の上限値を登録しておくのではなく、第３の実施形態として、管理ノードＭは各ノードから上限値を受信し、その差が一定以上のノードを抽出する手段を備えることにより、各ノードＡ，Ｂ，Ｃ，…で処理負荷の上限値が変化するシステムに対応する構成とすることができる。
【００２０】
図３は、本発明の第４の実施形態（過負荷に対する移動制御）を示す。基本になる構成は図１又は図２に示した構成と同様であり、図３はそれへの追加部分だけを示している。管理ノードＭに、ノード間の通信に必要な時間を示すデータを保持する手段３−２を備え、また、各ノードから通信履歴を受け取って、処理負荷の上限値と現在値との差が一定以上のノードの中から、通信履歴に基づく通信相手ノードとの通信時間が短いものを抽出する手段３−１を備え、管理ノードＭが処理能力に余裕があるノードを選択する際に、その中から通信時間が短いノードを選択することにより、利用者への応答時間を短縮化することが可能になる。
【００２１】
図４は、本発明の第５の実施形態（過負荷に対する移動制御）を示す。基本になる構成は図１〜図３に示したものと同様であり、図４はそれへの追加部分だけを示している。サービス処理要素プログラムの移動元のノード（例えばノードＡ）に、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを検出した場合に、移動先ノード（例えばノードＢ）にその旨を通知する手段４−１を備え、サービス処理要素プログラムを移動先ノードＢから処理要素プログラム移動手段１−５により、自ノードＡにサービス処理要素プログラム（例えばＰ１）を再移動することにより、自ノードＡの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合に、その配置を復元することができる。
【００２２】
図５は、本発明の第６の実施形態（過負荷に対する移動制御）を示す。基本的な構成は図１〜図３に示した構成と同様であり、図５はそれへの追加部分だけを示している。サービス処理要素プログラムの他ノード（例えばノードＢ）への移動後において、移動先ノードＢは、移動元ノード（例えばノードＡ）に負荷情報を問い合わせる手段５−１を備え、移動元ノードＡの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取った場合、サービス処理要素プログラムを、処理要素プログラム移動手段１−５により移動元ノードＡに再移動することにより、ノードの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合、その配置を復元することができる。
【００２３】
図６は、本発明の第７の実施形態（過負荷に対する移動制御）の説明図である。基本になる構成は図２と同様であり、図６はそれへの追加部分だけを示している。サービス処理要素プログラムの移動後、移動元ノードから処理負荷情報を管理ノードＭに通知し、管理ノードＭは、移動元ノードの処理負荷の現在値と上限値との差が一定値以上に増えたことを検出すると、その旨を移動先ノードに通知する手段６−１を備え、移動先ノードの処理要素プログラム移動手段１−５により、サービス処理要素プログラムを移動元ノードに再移動させ、ノードの過負荷が一時的な現象であって、基本的には元々のサービス処理要素プログラムの配置が最適である場合、その配置を復元することができる。
【００２４】
図７は、本発明の第８の実施形態（負荷率の偏りに対する移動制御）の説明図である。この実施形態の適応型分散処理システムは、ネットワークＮに接続され、サービス処理要素プログラムＰ１，Ｐ２，…が配置される複数の処理ノードＡ，Ｂ，Ｃ，…と管理ノードＭとから構成され、各ノードの負荷率の偏りに対応して移動制御を行う実施形態である。
【００２５】
各ノードＡ，Ｂ，Ｃ…に、自ノードの負荷情報を収集する処理負荷収集手段７−１と、全てのノードが登録されている管理ノードＭから他のノードの情報を受け取る他ノード情報受信手段７−２と、他ノードへ処理負荷の上限値及び現在値を問い合わせる他ノード処理負荷問い合わせ手段７−３と、サービス処理要素プログラムを他ノードに移動した場合の自ノード、他ノードそれぞれの負荷率を計算する負荷率計算手段７−４と、自ノードと他ノードの負荷率が均等に近づくようならば、自ノードから他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段７−５とを備える。この構成により、ノード間で負荷情報を交換し、負荷率を均等化する方向にサービス処理要素プログラムを移動させるよう制御を行うことができる。
【００２６】
図８は、本発明の第９及び第１０の実施形態（負荷率の偏りに対する移動制御）の説明図である。基本的なシステム構成は図７の構成と同様である。第９の実施形態は、管理ノードＭに、各ノードの処理負荷の上限値を登録する手段８−４と、各ノードから通知される処理負荷の現在値を受信する手段８−１と、それらの情報を基にノードの負荷率の偏りを計算する手段８−２と、その偏りの値が許容範囲を越えた場合、負荷率が高いノード内のサービス処理要素プログラムを負荷率の低いノードに移動したときの負荷率の偏りを計算する手段８−３とを備え、サービス処理要素プログラムの移動により負荷率の偏りが小さくなる場合、その旨を該当するノードに通知し、該当するノードの処理要素プログラム移動手段７−５によりサービス処理要素プログラムを移動させることにより、管理ノードＭがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御することができる。
【００２７】
なお、第１０の実施形態（負荷率の偏りに対する移動制御）として、管理ノードＭに各ノードの処理負荷の上限値を登録しておくのではなく、各ノードからそれぞれの上限値を受信することにより、各ノードの負荷の上限値が変化する場合にも、管理ノードＭがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動制御を行うことができる。
【００２８】
次に第１１の実施形態（過負荷及び負荷率の偏りに対する移動制御）として、以上に述べた図１〜図６に示した過負荷に対する処理要素プログラム移動手段と、図７及び図８に示した負荷率の偏りに対する処理要素プログラム移動手段とを併用することにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化する方向にシステムを制御するとともに、あるノードにおける急激な過負荷の発生にも対応することができる。
【００２９】
図９は本発明の第１２の実施形態（管理ノード不設置）を示す。この実施形態は、前述の図１〜図８に示した管理ノードＭに具備した各手段を、各処理ノードだけに設けて構成したものである。図９には、処理ノードに追加する追加部分だけを示している。
【００３０】
各ノードには、全てのノードの情報を登録する手段９−１と、負荷情報及び負荷の上限値の情報を全てのノードと相互に交換する手段９−２と、それによって得た情報を登録する手段９−３とを備えることにより、各ノードが全ノードの負荷情報及び負荷の上限値の情報を保持し、その情報に基づいてサービス処理要素プログラムの移動を決定することにより、各ノードが管理ノードＭから他のノード情報を得たり、管理ノードＭでシステム全体の負荷情報から移動するサービス処理要素プログラムを決定したりする必要がなくなる。
【００３１】
図１０は本発明の第１３の実施形態（通信量削減のための移動制御）を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードＡ，Ｂ，Ｃ…に、それぞれ配置されている各サービス処理要素プログラムＰ１，Ｐ２，Ｐ３…の通信履歴を収集する通信履歴収集手段１０−１と、あるサービス処理要素プログラムの通信履歴から、特定の他ノードとの通信量と自ノード内の他の処理要素プログラムとの通信量を比較する通信量比較手段１０−２と、特定の他ノードとの通信量が自ノード内の他の処理要素プログラムとの通信量に対して多い場合、サービス処理要素プログラムをその特定他ノードに移動させる処理要素プログラム移動手段１０−３とを備えることにより、相互の通信量の多いサービス処理要素プログラムを同一ノードに置き、ノード間の通信量を減少させる方向にシステムを制御することができる。
【００３２】
図１１は本発明の第１４の実施形態（通信量削減のための移動制御）を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードに、他ノードとの通信に必要な時間を示すデータを保持する手段１１−１と、配置されているサービス処理要素プログラムの通信履歴を取り、他ノードとの通信量と通信時間から評価値を計算する手段１１−２と、他ノードの通信履歴を受け取り、他ノードのサービス処理要素プログラムが自ノードにあった場合の、他ノードとの通信量と通信時間から評価値を計算する手段１１−３と、通信量と通信時間から計算された評価値を他ノードに通知する手段１１−４と、自ノードのサービス処理要素プログラムが他ノードにあった場合の評価値が自ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他ノードに移動させる手段１１−５とを備えることにより、他ノードとの通信時間を考慮に入れた上で、相互の通信量の多いサービス処理要素プログラムを同一ノードに配置し、ノード間の通信量を減少させる方向にシステムを制御することができる。
【００３３】
次に、第１５の実施形態（過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御）として、以上に説明した図１〜図９に示す過負荷又は負荷率の偏りに対する手段と、図１０及び図１１に示す通信量削減のための手段とを併用することにより、急激なノードの過負荷の発生、及び負荷率の偏りの変動に適応して負荷率の均等化を図るとともに、ノード間の通信量の削減を図ることができる。
【００３４】
【実施例】
本発明による適応型分散処理システムの実施例を図１２〜図１８に示す。これらの図において、管理ノードＭ、ノードＡ，Ｂ，Ｃ…はネットワークを介して結合されているものとする。また、分散したサービス処理要素プログラム間で、配置されているノードに依存しない位置透過性のある通信機能を提供するとともに、サービス処理要素プログラムをノード間で移動して実行する機能を提供する分散プラットフォームソフトウェアが実装されているものとする。
【００３５】
図１２は、前述の第１の実施形態（過負荷に対する移動制御）の一実施例を示す。ノードＡ，Ｂ，Ｃ…には、ノード管理プログラム１２−１と、各サービス処理要素プログラムＰ１，Ｐ２，Ｐ３，…が配置されている。サービス処理要素プログラムは、サービス要求に応じて必要なものが並列に動作し、相互に情報交換を行うことにより、連携して所定の機能を実現するためのプログラムである。
【００３６】
サービス処理要素プログラムは、各ノード内に複数個配置されることもあり、また、１つも配置されていない場合もある（例えば、新規に追加されたノードの場合など）。また、各ノードの負荷の上限値、負荷の現在値を示すデータ、及び負荷の測定に用いるカウンタ１２−２が設けられている。
【００３７】
管理ノードＭには、システム管理プログラム１２−３と、ノード情報（ノード管理プログラムにアクセスするための情報）保持手段１２−４とが配置されている。ここで、例えばサービス要求１に対してはサービス処理要素プログラムＰ１，Ｐ２を、サービス要求２に対してはサービス処理要素プログラムＰ４，Ｐ５を実行することで対応することができるものとし、大多数の利用者からの要求はサービス要求１であったとすると、ノードＡの負荷ばかりが増加することになる。
【００３８】
このとき、第１の実施形態によれば、ノードＡのノード管理プログラム１２−１ａは、処理要求の発生数などを基にノードＡの処理負荷を測定し、それが上限値を越えたとき、管理ノードＭのシステム管理プログラム１２−３に他ノードの紹介を依頼し、他ノード情報（この場合はノードＢ）を受け取る。
【００３９】
そして、ノードＢにサービス処理要素プログラムＰ１の処理負荷情報を通知してプログラムの移動可否を問い合わせ、ノードＢのノード管理プログラム１２−１ｂは、それを受け取ると、自ノードの負荷情報及び負荷上限値を参照してサービス処理要素プログラムＰ１をノードＢに移動することが可能か否かの応答を返送する。
【００４０】
移動可という応答であれば、ノードＡのノード管理プログラム１２−１ａは、サービス処理要素プログラムＰ１をノードＢに移動する。その際、ノードＡのノード管理プログラム１２−１ａが受け取っているサービス処理要素プログラムＰ１に向けた処理要求も、いるサービス処理要素プログラムＰ１と同時にノードＢへ移す。
【００４１】
なお、ノードＢからの応答が移動不可であれば、同様に他のノードへの移動を試みる。これにより、ノードＡの負荷が上限値を越えた場合、処理能力に余裕があるノードへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【００４２】
図１３は、本発明の第２の実施形態（過負荷に対する移動制御）の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は図１２とほぼ同様であり、同一の構成要素には同一の符号を付して重複した説明は省略するが、管理ノードＭに、各ノードの負荷の上限値を登録する手段１３−２を備え、また、システム管理プログラム１３−１は、各ノードＡ，Ｂ，Ｃ…のノード管理プログラム１２−１から負荷の現在値を定期的に受信し、上限値との差が一定以上のノードを抽出する機能を備える。
【００４３】
ここで、例えばノードＡの処理負荷が上限値を越えたとすると、ノードＡのノード管理プログラム１２−１ａは、管理ノードＭのシステム管理プログラム１３−１に他ノードの紹介を依頼し、管理ノードＭから、負荷の現在値と上限値の差が一定以上のノードとして、他ノード情報（この場合はノードＢ）を受け取る。
【００４４】
以下は図１２に示した実施例と同様に、ノードＡのノード管理プログラム１２−１ａは、ノードＢのノード管理プログラム１２−１ｂと交渉し、ノードＢでサービス処理要素プログラムＰ１を実行可能であれば、ノードＢへ移動させる。これにより、ノードＡの負荷が上限値を越えた場合、負荷情報と負荷の上限値から処理能力に余裕があると予想されるノードＢへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【００４５】
なお、図１３に示す実施例において、第３の実施形態（過負荷に対する移動制御）のように、管理ノードＭに各ノードの上限値を登録しておくのでなく、各ノードの上限値も負荷情報と同様に各ノードＡ，Ｂ，Ｃ…から定期的に受信する構成とすることもできる。この構成により、各ノードの負荷の上限値が変化する場合にも、最適なノードへサービス処理要素プログラムを移動させることができる。
【００４６】
図１４は、本発明の第４の実施形態（過負荷に対する移動制御）の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は、図１３の実施例と略同様であるが、図１３の実施例の手段に加えて、管理ノードＭにノード間の通信に必要な時間を示すデータの保持手段１４−１を備え、また、各ノードにおいて、ノード管理プログラム１２−１が相手ノードと通信回数を記録した通信履歴を保持する手段１４−２とを備える。
【００４７】
今、ノードＡの処理負荷が上限値を越えると、ノードＡのノード管理プログラム１２−１ａは、システム管理プログラム１３−１に通信履歴を付して他ノードの紹介を依頼する。システム管理プログラム１３−１は、図１３の実施例と同様に、負荷の現在値と上限値との差が一定以上のノードを抽出し、更にノード間通信時間のデータを参照して、受け取った通信履歴に基づき、サービス処理要素プログラム移動後の通信時間が短いと予想されるノード（この例ではノードＢ）をその中から選択して応答する。
【００４８】
以下は図１２の実施例と同様に、ノードＡのノード管理プログラム１２−１ａは、ノードＢのノード管理プログラム１２−１ｂと交渉し、サービス処理要素プログラムＰ１を可能であればノードＢへ移動させる。この構成により、サービス処理要素プログラムの移動先ノードとして、処理能力に余裕があり、かつ、移動後の通信時間が短いと予想されるものを選択することができる。
【００４９】
図１２〜図１４の実施例において、第５の実施形態（過負荷に対する移動制御）として述べたように、ノードＡのノード管理プログラム１２−１ａは、サービス処理要素プログラムＰ１の移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増えたときに、ノードＢのノード管理プログラム１２−１ｂにその旨を通知し、ノードＢのノード管理プログラム１２−１ｂはその通知を受け取ると、サービス処理要素プログラムＰ１をノードＡに再移動する手段を備えることにより、ノードＡの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【００５０】
図１２〜図１４の実施例において、第６の実施形態（過負荷に対する移動制御）として述べたように、ノードＢのノード管理プログラム１２−１ｂが、サービス処理要素プログラムＰ１の移動後、ノードＡのノード管理プログラム１２−１ａに負荷情報を問い合わせ、処理負荷の現在値と上限値との差が一定値以上に増えたことを示す応答が返されたとき、サービス処理要素プログラムＰ１をノードＡに再移動する手段を備えることにより、ノードＡの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【００５１】
図１３及び図１４の実施例において、第７の実施形態（過負荷に対する移動制御）として述べたように、管理ノードＭのシステム管理プログラム１３−１は、サービス処理要素プログラムＰ１の移動後、ノードＡのノード管理プログラム１２−１ａから得た情報により、ノードＡの処理負荷の現在値と上限値との差が一定値以上に増えたことを検知すると、それをノードＢに通知し、ノードＢはサービス処理要素プログラムＰ１を元のノードＡに再移動させることにより、ノードＡの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【００５２】
図１５は本発明の第８の実施形態（負荷率の偏りに対する移動制御）の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図１２の実施例と同様である。ここで、各ノードのノード管理プログラム１２−１（例えばノードＡのノード管理プログラム１２−１ａ）は、システム管理プログラム１２−３から他ノード情報（例えばノードＢ）を受け取り、その処理負荷の現在値及び上限値を問い合わせる。
【００５３】
ノードＢのノード管理プログラム１２−１ｂがそれに応答すると、ノードＡのノード管理プログラム１２−１ａは、ノードＢ及び自ノードの処理負荷情報及び負荷の上限値を基に、現在のノードＡ及びノードＢの負荷率と、サービス処理要素プログラムＰ１をノードＢに移動した場合のノードＡ及びノードＢの負荷率を計算する。そして、移動した場合の方が両負荷率が均等に近づく場合に、サービス処理要素プログラムＰ１をノードＢへ移動させる。この構成により、ノード間での負荷率を均等化する方向にサービス処理要素プログラムを移動させる。
【００５４】
図１６は第９及び第１０の実施形態（負荷率の偏りに対する移動制御）の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図１５の実施例とほぼ同様であるが、管理ノードＭには、各ノードの処理負荷の上限値及び現在値を保持するテーブル１６−１が設けられている。各ノードのノード管理プログラム１２−１は、各ノードのサービス処理要素プログラム毎の処理負荷の現在値を管理ノードＭのシステム管理プログラム１２−１に定期的に通知する。
【００５５】
処理負荷の上限値は、第９の実施形態のように、管理ノードＭに予め登録しておく形態と、また第１０の実施形態（負荷率の偏りに対する移動制御）のように、各ノード管理プログラム１２−１から定期的に通知する形態とがある。システム管理プログラム１２−１は、受け取った処理負荷の現在値及び上限値から各ノードの負荷率を計算し、負荷率の偏り（例えば分散）を求める。
【００５６】
負荷率の偏りが或る許容範囲を越えている場合、負荷率の高いノード及び低いノード（あるいは負荷に余裕のあるノード）を抽出して、前者に配置されているサービス処理要素プログラムを後者に移動した場合の負荷率の偏りを求め、それが現在の偏りより小さくなるならば、ノード管理プログラム１２−１にサービス処理要素プログラムの移動を指示する。
【００５７】
例えば、図１６の実施例では、ノードＡのノード管理プログラム１２−１ａに、サービス処理要素プログラムＰ１をノードＢに移動することを指示している。ノードＡのノード管理プログラム１２−１ａは、それを受けてノードＢのノード管理プログラム１２−１ｂと交渉し、移動可であればサービス処理要素プログラムＰ１をノードＢへ移動させる。このようにして、管理ノードＭがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動を指示し、負荷率の均等化を図る。
【００５８】
システム管理プログラム１２−３とノード管理プログラム１２−１には、図１２〜図１４の実施例における過負荷に対応したサービス処理要素プログラムの移動機能と、図１５及び図１６の実施例における負荷均等化のためのサービス処理要素プログラムの移動機能とを、第１１の実施形態（過負荷及び負荷率の偏りに対する移動制御）として示したように、同時に実装することが可能である。それにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化するようにサービス処理要素プログラムを移動するとともに、急激なノードの過負荷の発生にも対応することができる。
【００５９】
以上図１２〜図１６に示した実施例において、管理ノードＭは、ノード情報のほか負荷情報及び負荷の上限値のデータを保持している。しかし、第１２の実施形態（管理ノード不設置）のように、各ノードに全てのノード情報を登録し、各ノード管理プログラムが他の全てのノードのノード管理プログラムと、負荷情報や負荷の上限値を交換することができるように構成することにより、管理ノードＭへの他ノードの情報を問い合わせる構成は不要になり、また管理ノードＭで行っている移動先ノードの選択処理を、各処理ノードが独自に行う構成とすることができる。この構成によれば、管理ノードＭを設けることなく、ピアツーピア型のシステム構成で実現することができる。
【００６０】
図１７は、第１３の実施形態（通信量削減のための移動制御）の一実施例である。ノードＡ，Ｂ，Ｃ…には、ノード管理プログラム１２−１と、サービス処理要素プログラムＰ１，Ｐ２，Ｐ３…が配置されている。また、各ノードには、サービス処理要素プログラム毎の通信先ノード及び通信回数を記録するためのテーブル１７−１が設けられ、該テーブル１７−１は定期的に新しい情報を収集して更新される。
【００６１】
ノード管理プログラム１２−１は、特定の他ノードとの通信量が自ノード内の他のサービス処理要素プログラムとの通信量に対して多いサービス処理要素プログラムを移動候補として検出する。例えば、ノードＡのノード管理プログラム１２−１ａがノードＢへの移動候補のサービス処理要素プログラムＰ１を検出すると、ノードＢのノード管理プログラム１２−１ｂと交渉し、移動可であればサービス処理要素プログラムＰ１をノードＢへ移動させる。このようにして、ノード間の通信量を減少させるように制御する。
【００６２】
図１８は、第１４の実施形態（通信量削減のための移動制御）の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は、図１７の実施例と略同様であるが、図１７の実施例に加えて、各ノードに他ノードとの通信に要する時間を示すデータを保持する手段１８−１備える。
【００６３】
ノードＡのノード管理プログラム１２−１ａは、各サービス処理要素プログラムについて、他ノードとの通信量と通信時間から評価値（例えば、“１／（通信量と通信時間の積）”）を計算する。そして評価値の低いサービス処理要素プログラムＰ１を移動候補として、その通信履歴を通信回数の多い他ノードＢに通知する。
【００６４】
それを受け取ったノードＢのノード管理プログラム１２−１ｂは、移動の可否、及び移動可の場合はサービス処理要素プログラムがノードＢにあったとしたときの評価値を、ノードＢからの通信時間を用いて計算し、その結果をノードＡのノード管理プログラムに返す。
【００６５】
ノードＡのノード管理プログラム１２−１ａは、サービス処理要素プログラムＰ１がノードＢにあった場合の評価値と、ノードＡでの評価値と比較し、前者が高い場合は、サービス処理要素プログラムＰ１をノードＢに移動させる。これにより、通信量を減少させる方向へのサービス処理要素プログラムの移動を、利用者への応答時間及びノード間の通信時間が減少するように制御することができる。
【００６６】
例えば、ノードＡに配置されたサービス処理要素プログラムＰ１が、ノードＡ内よりノードＢとの通信量が多い場合であったとしても、その他のノードＣ，Ｄ，…との通信量と通信時間に関して、ノードＢに移動したときの不利益が大きい場合は移動しないといった制御を行う。
【００６７】
最後に第１５の実施形態（過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御）のように、図１２〜図１６の実施例と図１７及び図１８の実施例とを併用する構成例について説明する。例えば、通信量を減少させるためのサービス処理要素プログラムの移動を随時行うのと並行して、定期的に負荷率均等化のためのサービス処理要素プログラムの移動を制御する。但し、移動記録を保存しておき、同じサービス処理要素プログラムの反復的な移動を避けるように制御する。それにより、負荷率の均等化と通信量の削減を統合した制御を行うことができる。
【００６８】
図１９及び図２０にサービス処理要素プログラムの移動による最適な配置の手順の例を示す。同図に示すように、ノードＡとノードＢとに、サービス処理要素プログラムＰ１〜Ｐ８が配置され、各サービス処理要素プログラムＰ１〜Ｐ８は、それぞれ実線で結合された各サービス処理要素プログラムと通信を行って情報を交換を行いながら処理を実行しているものとする。
【００６９】
今、図１９の（ａ）に示す状態から、通信量の削減のため、サービス処理要素プログラムＰ３をノードＡからノードＢへ移動した状態を図１９の（ｂ）に示す。更に、図１９の（ｂ）の状態から、負荷均等化のため、サービス処理要素プログラムＰ７をノードＢからノードＡへ移動した状態を図１９の（ｃ）に示す。
【００７０】
図１９の（ｃ）と図２０の（ｃ）は同じ状態を示しているが、この状態から、更に、通信量の削減のため、サービス処理要素プログラムＰ８をノードＢからノードＡへ移動した状態を図２０の（ｄ）に示す。更に、図２０の（ｄ）の状態から、負荷均等化のため、サービス処理要素プログラムＰ１をノードＡからノードＢへ移動した状態を図２０の（ｅ）に示している。
【００７１】
図２１は、これから広く利用されるようになると予想される分散処理によるサービス連携システムの具体的な事例を示している。インターネットなどのネットワーク上の処理ノードに分散配置された多数のサービス処理要素プログラムが連携して動作する具体例について以下に説明する。
【００７２】
ネットワーク上の分散したノードＡ，Ｂ，Ｃには、多くの行楽情報を提供するサーバ（行楽情報サーバ）を有し、該サーバにより映画館、美術館、ウオーキング、サッカー、釣り、音楽会、登山、公園、天気予報に関する情報サービスを、ユーザからの要求に従って提供する。
【００７３】
ノードＢの行楽案内サーバは、ユーザからの要求を受けると、個別の行楽情報サーバからユーザの求める行楽情報を収集し、ユーザに提供する。例えば、或るユーザが展覧会の情報を要求すると、美術館１、美術館２、美術館３の行楽情報サーバから情報を集めてユーザに情報サービスを提供する。また、ウオーキング、登山、公園など野外の行楽に関する情報が要求された場合には、それらの各行楽情報サーバに問い合わせを行うと同時に、天気予報の情報サーバにも問い合わせを行い、両者のサーバから得られた情報を合わせてユーザに提供する。
【００７４】
このサービス連携システムは、外部的な要因によりノード間の負荷率に偏りが生じて効率の悪い処理動作となったり、或いはノード間の通信が予想外に増大したりすることがある。例えば、サッカーの試合が有れば、図２２に太線で示すように、サッカーに関する情報の要求が大量に発生することがあり得る。その場合、他のノードの負荷率は低いにも拘らずノードＢの負荷率だけが高く、サービス処理が滞る可能性がある。
【００７５】
なお、以下の図２２〜図２６において、線の太さはサービス処理要素プログラム（サーバプログラム）の処理負荷、及び各サービス処理要素プログラム（サーバプログラム）間の通信量を示し、点線は移動により消滅したサービス処理要素プログラム（サーバプログラム）であることを示している。
【００７６】
また、行楽シーズンであれば、図２３に太線で示すように、ウオーキング、登山、公園など野外の行楽に関する情報の要求が増えることがあり得る。それらの要求は皆、天気予報へのアクセスを伴うので、ノードＢ、Ｃ間の通信量が急増する可能性がある。本発明によれば、このような問題を、ノード間でサーバのプログラムを適応的に移動させることによって解決することができる。
【００７７】
図２４、図２５は、サッカーに関する情報の要求が大量に発生した場合の問題を解決する例である。図２４は、ノードＢの負荷率が上がり、上限値を越えたことを検出した場合、ノードＡにサービス処理要素プログラムの移動可否を問い合わせ、その結果、ノードＡに余裕があり負荷受け入れ可能との応答が得られ、一例としてサッカーのサービス処理要素プログラムをノードＡに移動させることにより、負荷を減少させる例を示している。
【００７８】
図２５は、負荷率の上がったノードＢが、ノードＡの負荷情報を得て自ノードと比較し、サービス処理要素プログラムを移動させることによって負荷を均等に近付けることができると判断した結果、一例として釣りと音楽会のサービス処理要素プログラムをノードＡに移動させる例を示している。
【００７９】
図２６は、野外の行楽に関する情報の要求が増えた場合の問題を解決する例である。ノードＣは、通信履歴から天気予報サーバの通信先の多くがノードＢであることを検出し、それをノードＢに移動させることにより、ノードＢ，Ｃ間の通信量増加を防ぐ例を示している。
【００８０】
（付記１）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、
ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、
自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、
を備えたことを特徴とする適応型分散処理システム。
（付記２）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
各処理ノードの処理負荷の上限値が登録された管理ノードに、各処理ノードより処理負荷の現在値を受信して上限値との差が一定以上の処理ノードを抽出する手段を備え、
各処理ノードに、前記抽出された処理ノードの情報を管理ノードから受け取る手段と、処理負荷を収集し、上限値を越えたことを検知する手段と、処理ノード内のサービス処理要素プログラムの処理負荷情報を他処理ノードへ通知する手段と、前記処理負荷情報を受け取り、自分の処理負荷の上限値及び現在値と比較して、他ノードのサービス処理要素プログラムを受け入れることの可否を応答する手段と、他処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたことを特徴とする適応型分散処理システム。
（付記３）  前記管理ノードに、各処理ノードから処理負荷の現在値と上限値とを受信し、その差が一定以上の処理ノードを抽出する手段を備えたことを特徴とする付記２に記載の適応型分散処理システム。
（付記４）  前記管理ノードに、処理ノード間の通信に必要な時間を示すデータを保持する手段を備え、また、各処理ノードから通信履歴を受け取り、処理負荷の上限値と現在値との差が一定以上の処理ノードの中から、通信履歴に基づく通信相手処理ノードとの通信時間がより短いものを抽出する手段を備えることを特徴とする付記２又は３に記載の適応型分散処理システム。
（付記５）  前記サービス処理要素プログラムの移動元の処理ノードに、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したときに該サービス処理要素プログラムの移動先の処理ノードに通知し、該サービス処理要素プログラムを該移動先の処理ノードから自処理ノードに再移動する手段を備えたことを特徴とする付記１乃至４の何れかに記載の適応型分散処理システム。
（付記６）  前記サービス処理要素プログラムの移動先の処理ノードに、サービス処理要素プログラムの移動後、該サービス処理要素プログラムの移動元の処理ノードに負荷情報を問い合わせ、該移動元の処理ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取ると、サービス処理要素プログラムを移動元の処理ノードに再移動する手段を備えたことを特徴とする付記１乃至４の何れかに記載の適応型分散処理システム。
（付記７）  前記管理ノードに、サービス処理要素プログラムの移動後、移動元の処理ノードからの処理負荷情報の通知により、処理負荷の現在値と上限値との差が一定値以上に増えたことが分かると、それを移動先の処理ノードに通知し、移動先の処理ノードに、サービス処理要素プログラムを移動元の処理ノードに再移動させる手段を備えたことを特徴とする付記２乃至４の何れかに記載の適応型分散処理システム。
（付記８）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの負荷情報を収集する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、
ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
（付記９）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードの処理負荷の上限値を登録する手段と、各処理ノードから通知される処理負荷の現在値を受信する手段と、それらの情報を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなる場合に、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
（付記１０）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードから通知される処理負荷の現在値と上限値とを受け取る手段と、それらの値を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなるならば、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
（付記１１）  付記１乃至７の何れかに記載の適応型分散処理システムにおける各手段と、付記８乃至１０の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの各手段を併用することを特徴とする適応型分散処理システム。
（付記１２）  付記１乃至１１の何れかに記載の適応型分散処理システムにおいて、管理ノードを設ける代わりに、各処理ノードに、全ての処理ノードの情報を登録する手段と、負荷情報及び負荷の上限値を全ての処理ノードと相互に交換する手段と、それによって得た情報を登録する手段と、を備えたことを特徴とする適応型分散処理システム。
（付記１３）  ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、
該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、
ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
（付記１４）  ネットワークに接続された多数の処理ノード上に分散するサービス処理要素プログラムが、並列に動作し、相互に情報交換し、連携して所定の機能を実現する分散処理システムにおいて、各処理ノードに、
他処理ノードとの通信に必要な時間を示すデータを保持する手段と、
配置されているサービス処理要素プログラムの通信履歴を取り、他処理ノードとの通信量と通信時間から評価値を計算する手段と、
他処理ノードの通信履歴を受け取り、他処理ノードのサービス処理要素プログラムが自処理ノードに有った場合の他処理ノードとの通信量と通信時間から評価値を計算する手段と、
通信量と通信時間から計算された評価値を他処理ノードに通知する手段と、
自処理ノードのサービス処理要素プログラムが他処理ノードに有った場合の評価値が自処理ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
（付記１５）  付記１乃至１２の何れかに記載の適応型分散処理システムにおける各手段と、付記１３又は１４の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの手段を併用する構成を有することを特徴とする適応型分散処理システム。
【００８１】
【発明の効果】
以上説明したように、本発明によれば、ネットワーク上の複数のノードにサービス処理要素プログラムが分散配置された分散処理システムにおいて、短期的なサービス利用傾向や環境の変動によるノードの過負荷又はノード間の負荷率の偏りに対して、ノード間でサービス処理要素プログラムを移動することにより、ノードの負荷率の均等化及びノード間の通信量の削減を行い、特定ノードの負荷率上昇、負荷率の偏りによる処理時間の増大を抑えつつ通信量を減少させ、ネットワークの負荷を軽減することができる。それにより、利用者の要求に対するサービス情報の応答時間を短縮し、効率の良い経済的な分散処理システムを構築することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態（過負荷に対する移動制御）の説明図である。
【図２】本発明の第２及び第３の実施形態（過負荷に対する移動制御）の説明図である。
【図３】本発明の第４の実施形態（過負荷に対する移動制御）の説明図である。
【図４】本発明の第５の実施形態（過負荷に対する移動制御）の説明図である。
【図５】本発明の第６の実施形態（過負荷に対する移動制御）の説明図である。
【図６】本発明の第７の実施形態（過負荷に対する移動制御）の説明図である。
【図７】本発明の第８の実施形態（負荷率の偏りに対する移動制御）の説明図である。
【図８】本発明の第９及び第１０の実施形態（負荷率の偏りに対する移動制御）の説明図である。
【図９】本発明の第１２の実施形態（管理ノード不設置）の説明図である。
【図１０】本発明の第１３の実施形態（通信量削減のための移動制御）の説明図である。
【図１１】本発明の第１４の実施形態（通信量削減のための移動制御）の説明図である。
【図１２】本発明の第１の実施形態（過負荷に対する移動制御）の一実施例の説明図である。
【図１３】本発明の第２の実施形態（過負荷に対する移動制御）の一実施例の説明図である。
【図１４】本発明の第４の実施形態（過負荷に対する移動制御）の一実施例の説明図である。
【図１５】本発明の第８の実施形態（負荷率の偏りに対する移動制御）の一実施例の説明図である。
【図１６】本発明の第９及び第１０の実施形態（負荷率の偏りに対する移動制御）の一実施例の説明図である。
【図１７】本発明の第１３の実施形態（通信量削減のための移動制御）の一実施例の説明図である。
【図１８】本発明の第１４の実施形態（通信量削減のための移動制御）の一実施例の説明図である。
【図１９】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図２０】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図２１】サービス連携分散処理システムの例を示す図である。
【図２２】サービス連携分散処理システムにおける負荷率上昇の例を示す図である。
【図２３】サービス連携分散処理システムにおける通信量増加の例を示す図である。
【図２４】サービス連携分散処理システムにおける負荷率の減少の例を示す図である。
【図２５】サービス連携分散処理システムにおける負荷率均等化の例を示す図である。
【図２６】サービス連携分散処理システムにおける通信量増加の防止の例を示す図である。
【図２７】従来の分散処理システムを示す図である。
【符号の説明】
１−１  処理負荷収集・上限値超過検出手段
１−２  他ノード情報受信手段
１−３  処理負荷情報の他ノードへの通知手段
１−４  処理負荷受け入れ可否判断・応答手段
１−５  処理要素プログラム移動手段
Ａ，Ｂ，Ｃ  処理ノード
Ｍ  管理ノード
Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ８  サービス処理要素プログラム
【図１】
2005004676.tif 000003
【図２】
2005004676.tif 000004
【図３】
2005004676.tif 000005
【図４】
2005004676.tif 000006
【図５】
2005004676.tif 000007
【図６】
2005004676.tif 000008
【図７】
2005004676.tif 000009
【図８】
2005004676.tif 000010
【図９】
2005004676.tif 000011
【図１０】
2005004676.tif 000012
【図１１】
2005004676.tif 000013
【図１２】
2005004676.tif 000014
【図１３】
2005004676.tif 000015
【図１４】
2005004676.tif 000016
【図１５】
2005004676.tif 000017
【図１６】
2005004676.tif 000018
【図１７】
2005004676.tif 000019
【図１８】
2005004676.tif 000020
【図１９】
2005004676.tif 000021
【図２０】
2005004676.tif 000022
【図２１】
2005004676.tif 000023
【図２２】
2005004676.tif 000024
【図２３】
2005004676.tif 000025
【図２４】
2005004676.tif 000026
【図２５】
2005004676.tif 000027
【図２６】
2005004676.tif 000028
【図２７】
2005004676.tif 000029