JP2005004676A - 適応型分散処理システム - Google Patents
適応型分散処理システム Download PDFInfo
- Publication number
- JP2005004676A JP2005004676A JP2003170331A JP2003170331A JP2005004676A JP 2005004676 A JP2005004676 A JP 2005004676A JP 2003170331 A JP2003170331 A JP 2003170331A JP 2003170331 A JP2003170331 A JP 2003170331A JP 2005004676 A JP2005004676 A JP 2005004676A
- Authority
- JP
- Japan
- Prior art keywords
- node
- processing
- load
- nodes
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】ネットワークに接続された多数のノード上に分散するサービス処理要素プログラムが、並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する適応型分散処理システムに関し、各ノードの負荷率を均等化し、また、ノード間の通信量を削減し、処理効率の向上を図る。
【解決手段】ネットワークN上の各ノードA,B,C,…に、サービス処理要素プログラムP1,P2,…が分散配置され、各ノードA,B,C,…は、自ノードの処理負荷を収集し、上限値を越えたことを検知する手段1−1と、管理ノードMから他ノードの情報を受け取る手段1−2と、自ノード内の処理負荷情報を他ノードへ通知する手段1−3と、該処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値を参照して、処理を受け入れることの可否を応答する手段1−4と、他ノードへサービス処理要素プログラムを移動して実行させる手段1−5とを備える。
【選択図】 図1
【解決手段】ネットワークN上の各ノードA,B,C,…に、サービス処理要素プログラムP1,P2,…が分散配置され、各ノードA,B,C,…は、自ノードの処理負荷を収集し、上限値を越えたことを検知する手段1−1と、管理ノードMから他ノードの情報を受け取る手段1−2と、自ノード内の処理負荷情報を他ノードへ通知する手段1−3と、該処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値を参照して、処理を受け入れることの可否を応答する手段1−4と、他ノードへサービス処理要素プログラムを移動して実行させる手段1−5とを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワークに接続された多数のノード(情報処理装置)上に分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムに係り、効率的なサービス処理機能を実現する適応型分散処理システムに関する。
【0002】
【従来の技術】
図27に従来の分散処理システムを示す。分散処理システムは、ネットワークNに接続された複数のノードA,B,C…上に、利用者に対する各種サービスを提供するためのサービス処理要素プログラムP1,P2,P3…を分散配置し、それらが相互に情報交換して並列に動作することにより、サービス要求への応答時間の短縮を図る処理システムである。
【0003】
例えば、同図に示すように、利用者のサービスの要求1は、ノードAのサービス処理要素プログラムP1→ノードBのサービス処理要素プログラムP5,P6→ノードCのサービス処理要素プログラムP8により分散処理される。また、利用者のサービスの要求2は、ノードAのサービス処理要素プログラムP2により処理される。また、利用者のサービスの要求3は、ノードBのサービス処理要素プログラムP5,P6→ノードCのサービス処理要素プログラムP8により分散処理される。
【0004】
効率的なサービス処理機能の実現のためには、各ノード間の負荷率の偏りにより負荷率の高いノードでの処理待ちが生じるのを避けるため、各ノードの負荷率を均等化することが必要である。また、処理の並列化によるノード間の通信のため、ネットワークの負荷が大きくなるが、それを抑制するためには、ノード間通信量を削減することが求められる。そのためには、ノード間における負荷の偏り及び通信量がより少なくなるように、各ノードA,B,C…にサービス処理要素プログラムP1,P2,P3…配置することが重要である。
【0005】
しかし、利用者がサービスをどのように利用するかを予測するのは困難な場合が多く、また、利用するサービスの傾向が変化することもあり、各サービス処理要素プログラムの適切な配置を決めることは難しい。更に、ノード構成やサービス処理要素プログラムの変更もそれに影響を与える。
【0006】
そのため、各サービス処理要素プログラムの配置が固定している場合に、ノード間に負荷率の偏りが生じ、サービスの実行効率が悪くなり、サービスの応答の遅れを引き起こすことがある。また、非効率的なノード間通信により、ネットワークの負荷が増大することがある。
【0007】
本発明に関連する先行技術文献として、「分散システムの負荷平準化方法」に関して特許文献1に、「アプリケーションプログラム移動位置決定方法及びデータファイル移動位置決定方法並びにその装置」に関して特許文献2に、また、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」に関して非特許文献1に記載されている。
【0008】
【特許文献1】
特開2000−47996号公報
【特許文献2】
特開平11−143836号公報
【非特許文献1】
沢野 泰淳、張 勇兵、高木 英明、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」、電子情報通信学会論文誌 D−I Vol.J84−D−I No.9pp.1450−1453 2001年9月
【0009】
【発明が解決しようとする課題】
本発明は、前述の分散処理システムにおいて、サービスの利用傾向の変化、システム構成の変更に適応して、ノードの負荷率の均等化を図り、またノード間の通信量を削減し、処理時間の増大を抑えつつ利用者のサービスの要求に対する応答時間を短縮し、効率の良いシステム構築することができる適応型分散処理システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の適応型分散処理システムは、(1)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたものである。
【0011】
また、(2)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの負荷情報を収集する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、を備えたものである。
【0012】
また、(3)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、を備えたものである。
【0013】
【発明の実施の形態】
図1に本発明の第1の実施形態(過負荷に対する移動制御)を示す。適応型分散処理システムは、ネットワークNに接続され、サービス処理要素プログラムP1,P2,…が配置される複数の処理ノードA,B,C,…と管理ノードMとから構成される。図1に示す実施形態は、過負荷に対しサービス処理要素プログラムP1,P2,…の移動制御を行う実施形態である。なお、本明細書及び図面において、「サービス処理要素プログラム」及び「処理ノード」を簡潔化のためにそれぞれ単に「処理要素プログラム」及び「ノード」と記している。
【0014】
ここで、各ノードA,B,C,…には、自ノードの処理負荷を収集し、該処理負荷が自ノードの上限値を越えたことを検知する処理負荷収集・上限値超過検出手段1−1と、全てのノード情報が登録されている管理ノードMから、他ノードの情報を受け取る他ノード情報受信手段1−2と、ノード内のサービス処理要素プログラムの処理負荷情報を他ノードへ通知する処理負荷情報の他ノードへの通知手段1−3と、該他ノードの処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値と比較して、それを受け入れることの可否を応答する処理負荷受け入れ可否判断・応答手段1−4と、他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段1−5とをそれぞれ備える。
【0015】
各ノードは、処理負荷収集・上限値超過検出手段1−1により、自ノードの処理負荷が上限値を越えたことを検知すると、処理負荷情報の他ノードへの通知手段1−3と、他ノードの処理負荷受け入れ可否判断・応答手段1−4とにより、他ノードと交渉し、処理能力に余裕がある他ノードへ、処理要素プログラム移動手段1−5によりサービス処理要素プログラムを移動させる。これにより、各ノード間で負荷率を均等化する方向に迅速にシステム構成を制御することができる。
【0016】
図2は、本発明の第2及び第3の実施形態(過負荷に対する移動制御)を示す。各ノードA,B,C,…の構成は図1に示したものと同様である。第2の実施形態において、管理ノードMには、各ノードA,B,C,…の処理負荷の上限値を含むノード情報を登録する手段2−3を備える。また、各ノードノードA,B,C,…から処理負荷の現在値を受信する手段2−1と、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノードを抽出する手段2−2とを備える。
【0017】
各ノードA,B,C,…に、処理負荷収集・上限値超過検出手段1−1と、他ノード情報受信手段1−2と、処理負荷情報の他ノードへの通知手段1−3と、処理負荷受け入れ可否判断・応答手段1−4と、処理要素プログラム移動手段1−5とを備える。
【0018】
今、例としてノードAにおいて、処理負荷収集・上限値超過検出手段1−1により、自ノードの処理負荷が上限値を越えたことを検知した場合、それを管理ノードMに通知し、管理ノードMは、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノード(即ち、処理能力に余裕があるノード、例えばノードB)を通知し、ノードAは通知されたノードBと交渉し、実際に処理能力に余裕があれば、サービス処理要素プログラムをノードB移動させることによって、迅速に負荷率を均等化する方向にシステムを制御することができる。
【0019】
なお、管理ノードMに各ノードの処理負荷の上限値を登録しておくのではなく、第3の実施形態として、管理ノードMは各ノードから上限値を受信し、その差が一定以上のノードを抽出する手段を備えることにより、各ノードA,B,C,…で処理負荷の上限値が変化するシステムに対応する構成とすることができる。
【0020】
図3は、本発明の第4の実施形態(過負荷に対する移動制御)を示す。基本になる構成は図1又は図2に示した構成と同様であり、図3はそれへの追加部分だけを示している。管理ノードMに、ノード間の通信に必要な時間を示すデータを保持する手段3−2を備え、また、各ノードから通信履歴を受け取って、処理負荷の上限値と現在値との差が一定以上のノードの中から、通信履歴に基づく通信相手ノードとの通信時間が短いものを抽出する手段3−1を備え、管理ノードMが処理能力に余裕があるノードを選択する際に、その中から通信時間が短いノードを選択することにより、利用者への応答時間を短縮化することが可能になる。
【0021】
図4は、本発明の第5の実施形態(過負荷に対する移動制御)を示す。基本になる構成は図1〜図3に示したものと同様であり、図4はそれへの追加部分だけを示している。サービス処理要素プログラムの移動元のノード(例えばノードA)に、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを検出した場合に、移動先ノード(例えばノードB)にその旨を通知する手段4−1を備え、サービス処理要素プログラムを移動先ノードBから処理要素プログラム移動手段1−5により、自ノードAにサービス処理要素プログラム(例えばP1)を再移動することにより、自ノードAの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合に、その配置を復元することができる。
【0022】
図5は、本発明の第6の実施形態(過負荷に対する移動制御)を示す。基本的な構成は図1〜図3に示した構成と同様であり、図5はそれへの追加部分だけを示している。サービス処理要素プログラムの他ノード(例えばノードB)への移動後において、移動先ノードBは、移動元ノード(例えばノードA)に負荷情報を問い合わせる手段5−1を備え、移動元ノードAの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取った場合、サービス処理要素プログラムを、処理要素プログラム移動手段1−5により移動元ノードAに再移動することにより、ノードの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合、その配置を復元することができる。
【0023】
図6は、本発明の第7の実施形態(過負荷に対する移動制御)の説明図である。基本になる構成は図2と同様であり、図6はそれへの追加部分だけを示している。サービス処理要素プログラムの移動後、移動元ノードから処理負荷情報を管理ノードMに通知し、管理ノードMは、移動元ノードの処理負荷の現在値と上限値との差が一定値以上に増えたことを検出すると、その旨を移動先ノードに通知する手段6−1を備え、移動先ノードの処理要素プログラム移動手段1−5により、サービス処理要素プログラムを移動元ノードに再移動させ、ノードの過負荷が一時的な現象であって、基本的には元々のサービス処理要素プログラムの配置が最適である場合、その配置を復元することができる。
【0024】
図7は、本発明の第8の実施形態(負荷率の偏りに対する移動制御)の説明図である。この実施形態の適応型分散処理システムは、ネットワークNに接続され、サービス処理要素プログラムP1,P2,…が配置される複数の処理ノードA,B,C,…と管理ノードMとから構成され、各ノードの負荷率の偏りに対応して移動制御を行う実施形態である。
【0025】
各ノードA,B,C…に、自ノードの負荷情報を収集する処理負荷収集手段7−1と、全てのノードが登録されている管理ノードMから他のノードの情報を受け取る他ノード情報受信手段7−2と、他ノードへ処理負荷の上限値及び現在値を問い合わせる他ノード処理負荷問い合わせ手段7−3と、サービス処理要素プログラムを他ノードに移動した場合の自ノード、他ノードそれぞれの負荷率を計算する負荷率計算手段7−4と、自ノードと他ノードの負荷率が均等に近づくようならば、自ノードから他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段7−5とを備える。この構成により、ノード間で負荷情報を交換し、負荷率を均等化する方向にサービス処理要素プログラムを移動させるよう制御を行うことができる。
【0026】
図8は、本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の説明図である。基本的なシステム構成は図7の構成と同様である。第9の実施形態は、管理ノードMに、各ノードの処理負荷の上限値を登録する手段8−4と、各ノードから通知される処理負荷の現在値を受信する手段8−1と、それらの情報を基にノードの負荷率の偏りを計算する手段8−2と、その偏りの値が許容範囲を越えた場合、負荷率が高いノード内のサービス処理要素プログラムを負荷率の低いノードに移動したときの負荷率の偏りを計算する手段8−3とを備え、サービス処理要素プログラムの移動により負荷率の偏りが小さくなる場合、その旨を該当するノードに通知し、該当するノードの処理要素プログラム移動手段7−5によりサービス処理要素プログラムを移動させることにより、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御することができる。
【0027】
なお、第10の実施形態(負荷率の偏りに対する移動制御)として、管理ノードMに各ノードの処理負荷の上限値を登録しておくのではなく、各ノードからそれぞれの上限値を受信することにより、各ノードの負荷の上限値が変化する場合にも、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動制御を行うことができる。
【0028】
次に第11の実施形態(過負荷及び負荷率の偏りに対する移動制御)として、以上に述べた図1〜図6に示した過負荷に対する処理要素プログラム移動手段と、図7及び図8に示した負荷率の偏りに対する処理要素プログラム移動手段とを併用することにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化する方向にシステムを制御するとともに、あるノードにおける急激な過負荷の発生にも対応することができる。
【0029】
図9は本発明の第12の実施形態(管理ノード不設置)を示す。この実施形態は、前述の図1〜図8に示した管理ノードMに具備した各手段を、各処理ノードだけに設けて構成したものである。図9には、処理ノードに追加する追加部分だけを示している。
【0030】
各ノードには、全てのノードの情報を登録する手段9−1と、負荷情報及び負荷の上限値の情報を全てのノードと相互に交換する手段9−2と、それによって得た情報を登録する手段9−3とを備えることにより、各ノードが全ノードの負荷情報及び負荷の上限値の情報を保持し、その情報に基づいてサービス処理要素プログラムの移動を決定することにより、各ノードが管理ノードMから他のノード情報を得たり、管理ノードMでシステム全体の負荷情報から移動するサービス処理要素プログラムを決定したりする必要がなくなる。
【0031】
図10は本発明の第13の実施形態(通信量削減のための移動制御)を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードA,B,C…に、それぞれ配置されている各サービス処理要素プログラムP1,P2,P3…の通信履歴を収集する通信履歴収集手段10−1と、あるサービス処理要素プログラムの通信履歴から、特定の他ノードとの通信量と自ノード内の他の処理要素プログラムとの通信量を比較する通信量比較手段10−2と、特定の他ノードとの通信量が自ノード内の他の処理要素プログラムとの通信量に対して多い場合、サービス処理要素プログラムをその特定他ノードに移動させる処理要素プログラム移動手段10−3とを備えることにより、相互の通信量の多いサービス処理要素プログラムを同一ノードに置き、ノード間の通信量を減少させる方向にシステムを制御することができる。
【0032】
図11は本発明の第14の実施形態(通信量削減のための移動制御)を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードに、他ノードとの通信に必要な時間を示すデータを保持する手段11−1と、配置されているサービス処理要素プログラムの通信履歴を取り、他ノードとの通信量と通信時間から評価値を計算する手段11−2と、他ノードの通信履歴を受け取り、他ノードのサービス処理要素プログラムが自ノードにあった場合の、他ノードとの通信量と通信時間から評価値を計算する手段11−3と、通信量と通信時間から計算された評価値を他ノードに通知する手段11−4と、自ノードのサービス処理要素プログラムが他ノードにあった場合の評価値が自ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他ノードに移動させる手段11−5とを備えることにより、他ノードとの通信時間を考慮に入れた上で、相互の通信量の多いサービス処理要素プログラムを同一ノードに配置し、ノード間の通信量を減少させる方向にシステムを制御することができる。
【0033】
次に、第15の実施形態(過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御)として、以上に説明した図1〜図9に示す過負荷又は負荷率の偏りに対する手段と、図10及び図11に示す通信量削減のための手段とを併用することにより、急激なノードの過負荷の発生、及び負荷率の偏りの変動に適応して負荷率の均等化を図るとともに、ノード間の通信量の削減を図ることができる。
【0034】
【実施例】
本発明による適応型分散処理システムの実施例を図12〜図18に示す。これらの図において、管理ノードM、ノードA,B,C…はネットワークを介して結合されているものとする。また、分散したサービス処理要素プログラム間で、配置されているノードに依存しない位置透過性のある通信機能を提供するとともに、サービス処理要素プログラムをノード間で移動して実行する機能を提供する分散プラットフォームソフトウェアが実装されているものとする。
【0035】
図12は、前述の第1の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードA,B,C…には、ノード管理プログラム12−1と、各サービス処理要素プログラムP1,P2,P3,…が配置されている。サービス処理要素プログラムは、サービス要求に応じて必要なものが並列に動作し、相互に情報交換を行うことにより、連携して所定の機能を実現するためのプログラムである。
【0036】
サービス処理要素プログラムは、各ノード内に複数個配置されることもあり、また、1つも配置されていない場合もある(例えば、新規に追加されたノードの場合など)。また、各ノードの負荷の上限値、負荷の現在値を示すデータ、及び負荷の測定に用いるカウンタ12−2が設けられている。
【0037】
管理ノードMには、システム管理プログラム12−3と、ノード情報(ノード管理プログラムにアクセスするための情報)保持手段12−4とが配置されている。ここで、例えばサービス要求1に対してはサービス処理要素プログラムP1,P2を、サービス要求2に対してはサービス処理要素プログラムP4,P5を実行することで対応することができるものとし、大多数の利用者からの要求はサービス要求1であったとすると、ノードAの負荷ばかりが増加することになる。
【0038】
このとき、第1の実施形態によれば、ノードAのノード管理プログラム12−1aは、処理要求の発生数などを基にノードAの処理負荷を測定し、それが上限値を越えたとき、管理ノードMのシステム管理プログラム12−3に他ノードの紹介を依頼し、他ノード情報(この場合はノードB)を受け取る。
【0039】
そして、ノードBにサービス処理要素プログラムP1の処理負荷情報を通知してプログラムの移動可否を問い合わせ、ノードBのノード管理プログラム12−1bは、それを受け取ると、自ノードの負荷情報及び負荷上限値を参照してサービス処理要素プログラムP1をノードBに移動することが可能か否かの応答を返送する。
【0040】
移動可という応答であれば、ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1をノードBに移動する。その際、ノードAのノード管理プログラム12−1aが受け取っているサービス処理要素プログラムP1に向けた処理要求も、いるサービス処理要素プログラムP1と同時にノードBへ移す。
【0041】
なお、ノードBからの応答が移動不可であれば、同様に他のノードへの移動を試みる。これにより、ノードAの負荷が上限値を越えた場合、処理能力に余裕があるノードへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【0042】
図13は、本発明の第2の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は図12とほぼ同様であり、同一の構成要素には同一の符号を付して重複した説明は省略するが、管理ノードMに、各ノードの負荷の上限値を登録する手段13−2を備え、また、システム管理プログラム13−1は、各ノードA,B,C…のノード管理プログラム12−1から負荷の現在値を定期的に受信し、上限値との差が一定以上のノードを抽出する機能を備える。
【0043】
ここで、例えばノードAの処理負荷が上限値を越えたとすると、ノードAのノード管理プログラム12−1aは、管理ノードMのシステム管理プログラム13−1に他ノードの紹介を依頼し、管理ノードMから、負荷の現在値と上限値の差が一定以上のノードとして、他ノード情報(この場合はノードB)を受け取る。
【0044】
以下は図12に示した実施例と同様に、ノードAのノード管理プログラム12−1aは、ノードBのノード管理プログラム12−1bと交渉し、ノードBでサービス処理要素プログラムP1を実行可能であれば、ノードBへ移動させる。これにより、ノードAの負荷が上限値を越えた場合、負荷情報と負荷の上限値から処理能力に余裕があると予想されるノードBへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【0045】
なお、図13に示す実施例において、第3の実施形態(過負荷に対する移動制御)のように、管理ノードMに各ノードの上限値を登録しておくのでなく、各ノードの上限値も負荷情報と同様に各ノードA,B,C…から定期的に受信する構成とすることもできる。この構成により、各ノードの負荷の上限値が変化する場合にも、最適なノードへサービス処理要素プログラムを移動させることができる。
【0046】
図14は、本発明の第4の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は、図13の実施例と略同様であるが、図13の実施例の手段に加えて、管理ノードMにノード間の通信に必要な時間を示すデータの保持手段14−1を備え、また、各ノードにおいて、ノード管理プログラム12−1が相手ノードと通信回数を記録した通信履歴を保持する手段14−2とを備える。
【0047】
今、ノードAの処理負荷が上限値を越えると、ノードAのノード管理プログラム12−1aは、システム管理プログラム13−1に通信履歴を付して他ノードの紹介を依頼する。システム管理プログラム13−1は、図13の実施例と同様に、負荷の現在値と上限値との差が一定以上のノードを抽出し、更にノード間通信時間のデータを参照して、受け取った通信履歴に基づき、サービス処理要素プログラム移動後の通信時間が短いと予想されるノード(この例ではノードB)をその中から選択して応答する。
【0048】
以下は図12の実施例と同様に、ノードAのノード管理プログラム12−1aは、ノードBのノード管理プログラム12−1bと交渉し、サービス処理要素プログラムP1を可能であればノードBへ移動させる。この構成により、サービス処理要素プログラムの移動先ノードとして、処理能力に余裕があり、かつ、移動後の通信時間が短いと予想されるものを選択することができる。
【0049】
図12〜図14の実施例において、第5の実施形態(過負荷に対する移動制御)として述べたように、ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1の移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増えたときに、ノードBのノード管理プログラム12−1bにその旨を通知し、ノードBのノード管理プログラム12−1bはその通知を受け取ると、サービス処理要素プログラムP1をノードAに再移動する手段を備えることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0050】
図12〜図14の実施例において、第6の実施形態(過負荷に対する移動制御)として述べたように、ノードBのノード管理プログラム12−1bが、サービス処理要素プログラムP1の移動後、ノードAのノード管理プログラム12−1aに負荷情報を問い合わせ、処理負荷の現在値と上限値との差が一定値以上に増えたことを示す応答が返されたとき、サービス処理要素プログラムP1をノードAに再移動する手段を備えることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0051】
図13及び図14の実施例において、第7の実施形態(過負荷に対する移動制御)として述べたように、管理ノードMのシステム管理プログラム13−1は、サービス処理要素プログラムP1の移動後、ノードAのノード管理プログラム12−1aから得た情報により、ノードAの処理負荷の現在値と上限値との差が一定値以上に増えたことを検知すると、それをノードBに通知し、ノードBはサービス処理要素プログラムP1を元のノードAに再移動させることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0052】
図15は本発明の第8の実施形態(負荷率の偏りに対する移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図12の実施例と同様である。ここで、各ノードのノード管理プログラム12−1(例えばノードAのノード管理プログラム12−1a)は、システム管理プログラム12−3から他ノード情報(例えばノードB)を受け取り、その処理負荷の現在値及び上限値を問い合わせる。
【0053】
ノードBのノード管理プログラム12−1bがそれに応答すると、ノードAのノード管理プログラム12−1aは、ノードB及び自ノードの処理負荷情報及び負荷の上限値を基に、現在のノードA及びノードBの負荷率と、サービス処理要素プログラムP1をノードBに移動した場合のノードA及びノードBの負荷率を計算する。そして、移動した場合の方が両負荷率が均等に近づく場合に、サービス処理要素プログラムP1をノードBへ移動させる。この構成により、ノード間での負荷率を均等化する方向にサービス処理要素プログラムを移動させる。
【0054】
図16は第9及び第10の実施形態(負荷率の偏りに対する移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図15の実施例とほぼ同様であるが、管理ノードMには、各ノードの処理負荷の上限値及び現在値を保持するテーブル16−1が設けられている。各ノードのノード管理プログラム12−1は、各ノードのサービス処理要素プログラム毎の処理負荷の現在値を管理ノードMのシステム管理プログラム12−1に定期的に通知する。
【0055】
処理負荷の上限値は、第9の実施形態のように、管理ノードMに予め登録しておく形態と、また第10の実施形態(負荷率の偏りに対する移動制御)のように、各ノード管理プログラム12−1から定期的に通知する形態とがある。システム管理プログラム12−1は、受け取った処理負荷の現在値及び上限値から各ノードの負荷率を計算し、負荷率の偏り(例えば分散)を求める。
【0056】
負荷率の偏りが或る許容範囲を越えている場合、負荷率の高いノード及び低いノード(あるいは負荷に余裕のあるノード)を抽出して、前者に配置されているサービス処理要素プログラムを後者に移動した場合の負荷率の偏りを求め、それが現在の偏りより小さくなるならば、ノード管理プログラム12−1にサービス処理要素プログラムの移動を指示する。
【0057】
例えば、図16の実施例では、ノードAのノード管理プログラム12−1aに、サービス処理要素プログラムP1をノードBに移動することを指示している。ノードAのノード管理プログラム12−1aは、それを受けてノードBのノード管理プログラム12−1bと交渉し、移動可であればサービス処理要素プログラムP1をノードBへ移動させる。このようにして、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動を指示し、負荷率の均等化を図る。
【0058】
システム管理プログラム12−3とノード管理プログラム12−1には、図12〜図14の実施例における過負荷に対応したサービス処理要素プログラムの移動機能と、図15及び図16の実施例における負荷均等化のためのサービス処理要素プログラムの移動機能とを、第11の実施形態(過負荷及び負荷率の偏りに対する移動制御)として示したように、同時に実装することが可能である。それにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化するようにサービス処理要素プログラムを移動するとともに、急激なノードの過負荷の発生にも対応することができる。
【0059】
以上図12〜図16に示した実施例において、管理ノードMは、ノード情報のほか負荷情報及び負荷の上限値のデータを保持している。しかし、第12の実施形態(管理ノード不設置)のように、各ノードに全てのノード情報を登録し、各ノード管理プログラムが他の全てのノードのノード管理プログラムと、負荷情報や負荷の上限値を交換することができるように構成することにより、管理ノードMへの他ノードの情報を問い合わせる構成は不要になり、また管理ノードMで行っている移動先ノードの選択処理を、各処理ノードが独自に行う構成とすることができる。この構成によれば、管理ノードMを設けることなく、ピアツーピア型のシステム構成で実現することができる。
【0060】
図17は、第13の実施形態(通信量削減のための移動制御)の一実施例である。ノードA,B,C…には、ノード管理プログラム12−1と、サービス処理要素プログラムP1,P2,P3…が配置されている。また、各ノードには、サービス処理要素プログラム毎の通信先ノード及び通信回数を記録するためのテーブル17−1が設けられ、該テーブル17−1は定期的に新しい情報を収集して更新される。
【0061】
ノード管理プログラム12−1は、特定の他ノードとの通信量が自ノード内の他のサービス処理要素プログラムとの通信量に対して多いサービス処理要素プログラムを移動候補として検出する。例えば、ノードAのノード管理プログラム12−1aがノードBへの移動候補のサービス処理要素プログラムP1を検出すると、ノードBのノード管理プログラム12−1bと交渉し、移動可であればサービス処理要素プログラムP1をノードBへ移動させる。このようにして、ノード間の通信量を減少させるように制御する。
【0062】
図18は、第14の実施形態(通信量削減のための移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は、図17の実施例と略同様であるが、図17の実施例に加えて、各ノードに他ノードとの通信に要する時間を示すデータを保持する手段18−1備える。
【0063】
ノードAのノード管理プログラム12−1aは、各サービス処理要素プログラムについて、他ノードとの通信量と通信時間から評価値(例えば、“1/(通信量と通信時間の積)”)を計算する。そして評価値の低いサービス処理要素プログラムP1を移動候補として、その通信履歴を通信回数の多い他ノードBに通知する。
【0064】
それを受け取ったノードBのノード管理プログラム12−1bは、移動の可否、及び移動可の場合はサービス処理要素プログラムがノードBにあったとしたときの評価値を、ノードBからの通信時間を用いて計算し、その結果をノードAのノード管理プログラムに返す。
【0065】
ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1がノードBにあった場合の評価値と、ノードAでの評価値と比較し、前者が高い場合は、サービス処理要素プログラムP1をノードBに移動させる。これにより、通信量を減少させる方向へのサービス処理要素プログラムの移動を、利用者への応答時間及びノード間の通信時間が減少するように制御することができる。
【0066】
例えば、ノードAに配置されたサービス処理要素プログラムP1が、ノードA内よりノードBとの通信量が多い場合であったとしても、その他のノードC,D,…との通信量と通信時間に関して、ノードBに移動したときの不利益が大きい場合は移動しないといった制御を行う。
【0067】
最後に第15の実施形態(過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御)のように、図12〜図16の実施例と図17及び図18の実施例とを併用する構成例について説明する。例えば、通信量を減少させるためのサービス処理要素プログラムの移動を随時行うのと並行して、定期的に負荷率均等化のためのサービス処理要素プログラムの移動を制御する。但し、移動記録を保存しておき、同じサービス処理要素プログラムの反復的な移動を避けるように制御する。それにより、負荷率の均等化と通信量の削減を統合した制御を行うことができる。
【0068】
図19及び図20にサービス処理要素プログラムの移動による最適な配置の手順の例を示す。同図に示すように、ノードAとノードBとに、サービス処理要素プログラムP1〜P8が配置され、各サービス処理要素プログラムP1〜P8は、それぞれ実線で結合された各サービス処理要素プログラムと通信を行って情報を交換を行いながら処理を実行しているものとする。
【0069】
今、図19の(a)に示す状態から、通信量の削減のため、サービス処理要素プログラムP3をノードAからノードBへ移動した状態を図19の(b)に示す。更に、図19の(b)の状態から、負荷均等化のため、サービス処理要素プログラムP7をノードBからノードAへ移動した状態を図19の(c)に示す。
【0070】
図19の(c)と図20の(c)は同じ状態を示しているが、この状態から、更に、通信量の削減のため、サービス処理要素プログラムP8をノードBからノードAへ移動した状態を図20の(d)に示す。更に、図20の(d)の状態から、負荷均等化のため、サービス処理要素プログラムP1をノードAからノードBへ移動した状態を図20の(e)に示している。
【0071】
図21は、これから広く利用されるようになると予想される分散処理によるサービス連携システムの具体的な事例を示している。インターネットなどのネットワーク上の処理ノードに分散配置された多数のサービス処理要素プログラムが連携して動作する具体例について以下に説明する。
【0072】
ネットワーク上の分散したノードA,B,Cには、多くの行楽情報を提供するサーバ(行楽情報サーバ)を有し、該サーバにより映画館、美術館、ウオーキング、サッカー、釣り、音楽会、登山、公園、天気予報に関する情報サービスを、ユーザからの要求に従って提供する。
【0073】
ノードBの行楽案内サーバは、ユーザからの要求を受けると、個別の行楽情報サーバからユーザの求める行楽情報を収集し、ユーザに提供する。例えば、或るユーザが展覧会の情報を要求すると、美術館1、美術館2、美術館3の行楽情報サーバから情報を集めてユーザに情報サービスを提供する。また、ウオーキング、登山、公園など野外の行楽に関する情報が要求された場合には、それらの各行楽情報サーバに問い合わせを行うと同時に、天気予報の情報サーバにも問い合わせを行い、両者のサーバから得られた情報を合わせてユーザに提供する。
【0074】
このサービス連携システムは、外部的な要因によりノード間の負荷率に偏りが生じて効率の悪い処理動作となったり、或いはノード間の通信が予想外に増大したりすることがある。例えば、サッカーの試合が有れば、図22に太線で示すように、サッカーに関する情報の要求が大量に発生することがあり得る。その場合、他のノードの負荷率は低いにも拘らずノードBの負荷率だけが高く、サービス処理が滞る可能性がある。
【0075】
なお、以下の図22〜図26において、線の太さはサービス処理要素プログラム(サーバプログラム)の処理負荷、及び各サービス処理要素プログラム(サーバプログラム)間の通信量を示し、点線は移動により消滅したサービス処理要素プログラム(サーバプログラム)であることを示している。
【0076】
また、行楽シーズンであれば、図23に太線で示すように、ウオーキング、登山、公園など野外の行楽に関する情報の要求が増えることがあり得る。それらの要求は皆、天気予報へのアクセスを伴うので、ノードB、C間の通信量が急増する可能性がある。本発明によれば、このような問題を、ノード間でサーバのプログラムを適応的に移動させることによって解決することができる。
【0077】
図24、図25は、サッカーに関する情報の要求が大量に発生した場合の問題を解決する例である。図24は、ノードBの負荷率が上がり、上限値を越えたことを検出した場合、ノードAにサービス処理要素プログラムの移動可否を問い合わせ、その結果、ノードAに余裕があり負荷受け入れ可能との応答が得られ、一例としてサッカーのサービス処理要素プログラムをノードAに移動させることにより、負荷を減少させる例を示している。
【0078】
図25は、負荷率の上がったノードBが、ノードAの負荷情報を得て自ノードと比較し、サービス処理要素プログラムを移動させることによって負荷を均等に近付けることができると判断した結果、一例として釣りと音楽会のサービス処理要素プログラムをノードAに移動させる例を示している。
【0079】
図26は、野外の行楽に関する情報の要求が増えた場合の問題を解決する例である。ノードCは、通信履歴から天気予報サーバの通信先の多くがノードBであることを検出し、それをノードBに移動させることにより、ノードB,C間の通信量増加を防ぐ例を示している。
【0080】
(付記1) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、
ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、
自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記2) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
各処理ノードの処理負荷の上限値が登録された管理ノードに、各処理ノードより処理負荷の現在値を受信して上限値との差が一定以上の処理ノードを抽出する手段を備え、
各処理ノードに、前記抽出された処理ノードの情報を管理ノードから受け取る手段と、処理負荷を収集し、上限値を越えたことを検知する手段と、処理ノード内のサービス処理要素プログラムの処理負荷情報を他処理ノードへ通知する手段と、前記処理負荷情報を受け取り、自分の処理負荷の上限値及び現在値と比較して、他ノードのサービス処理要素プログラムを受け入れることの可否を応答する手段と、他処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたことを特徴とする適応型分散処理システム。
(付記3) 前記管理ノードに、各処理ノードから処理負荷の現在値と上限値とを受信し、その差が一定以上の処理ノードを抽出する手段を備えたことを特徴とする付記2に記載の適応型分散処理システム。
(付記4) 前記管理ノードに、処理ノード間の通信に必要な時間を示すデータを保持する手段を備え、また、各処理ノードから通信履歴を受け取り、処理負荷の上限値と現在値との差が一定以上の処理ノードの中から、通信履歴に基づく通信相手処理ノードとの通信時間がより短いものを抽出する手段を備えることを特徴とする付記2又は3に記載の適応型分散処理システム。
(付記5) 前記サービス処理要素プログラムの移動元の処理ノードに、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したときに該サービス処理要素プログラムの移動先の処理ノードに通知し、該サービス処理要素プログラムを該移動先の処理ノードから自処理ノードに再移動する手段を備えたことを特徴とする付記1乃至4の何れかに記載の適応型分散処理システム。
(付記6) 前記サービス処理要素プログラムの移動先の処理ノードに、サービス処理要素プログラムの移動後、該サービス処理要素プログラムの移動元の処理ノードに負荷情報を問い合わせ、該移動元の処理ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取ると、サービス処理要素プログラムを移動元の処理ノードに再移動する手段を備えたことを特徴とする付記1乃至4の何れかに記載の適応型分散処理システム。
(付記7) 前記管理ノードに、サービス処理要素プログラムの移動後、移動元の処理ノードからの処理負荷情報の通知により、処理負荷の現在値と上限値との差が一定値以上に増えたことが分かると、それを移動先の処理ノードに通知し、移動先の処理ノードに、サービス処理要素プログラムを移動元の処理ノードに再移動させる手段を備えたことを特徴とする付記2乃至4の何れかに記載の適応型分散処理システム。
(付記8) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの負荷情報を収集する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、
ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記9) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードの処理負荷の上限値を登録する手段と、各処理ノードから通知される処理負荷の現在値を受信する手段と、それらの情報を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなる場合に、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
(付記10) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードから通知される処理負荷の現在値と上限値とを受け取る手段と、それらの値を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなるならば、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
(付記11) 付記1乃至7の何れかに記載の適応型分散処理システムにおける各手段と、付記8乃至10の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの各手段を併用することを特徴とする適応型分散処理システム。
(付記12) 付記1乃至11の何れかに記載の適応型分散処理システムにおいて、管理ノードを設ける代わりに、各処理ノードに、全ての処理ノードの情報を登録する手段と、負荷情報及び負荷の上限値を全ての処理ノードと相互に交換する手段と、それによって得た情報を登録する手段と、を備えたことを特徴とする適応型分散処理システム。
(付記13) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、
該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、
ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記14) ネットワークに接続された多数の処理ノード上に分散するサービス処理要素プログラムが、並列に動作し、相互に情報交換し、連携して所定の機能を実現する分散処理システムにおいて、各処理ノードに、
他処理ノードとの通信に必要な時間を示すデータを保持する手段と、
配置されているサービス処理要素プログラムの通信履歴を取り、他処理ノードとの通信量と通信時間から評価値を計算する手段と、
他処理ノードの通信履歴を受け取り、他処理ノードのサービス処理要素プログラムが自処理ノードに有った場合の他処理ノードとの通信量と通信時間から評価値を計算する手段と、
通信量と通信時間から計算された評価値を他処理ノードに通知する手段と、
自処理ノードのサービス処理要素プログラムが他処理ノードに有った場合の評価値が自処理ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記15) 付記1乃至12の何れかに記載の適応型分散処理システムにおける各手段と、付記13又は14の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの手段を併用する構成を有することを特徴とする適応型分散処理システム。
【0081】
【発明の効果】
以上説明したように、本発明によれば、ネットワーク上の複数のノードにサービス処理要素プログラムが分散配置された分散処理システムにおいて、短期的なサービス利用傾向や環境の変動によるノードの過負荷又はノード間の負荷率の偏りに対して、ノード間でサービス処理要素プログラムを移動することにより、ノードの負荷率の均等化及びノード間の通信量の削減を行い、特定ノードの負荷率上昇、負荷率の偏りによる処理時間の増大を抑えつつ通信量を減少させ、ネットワークの負荷を軽減することができる。それにより、利用者の要求に対するサービス情報の応答時間を短縮し、効率の良い経済的な分散処理システムを構築することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態(過負荷に対する移動制御)の説明図である。
【図2】本発明の第2及び第3の実施形態(過負荷に対する移動制御)の説明図である。
【図3】本発明の第4の実施形態(過負荷に対する移動制御)の説明図である。
【図4】本発明の第5の実施形態(過負荷に対する移動制御)の説明図である。
【図5】本発明の第6の実施形態(過負荷に対する移動制御)の説明図である。
【図6】本発明の第7の実施形態(過負荷に対する移動制御)の説明図である。
【図7】本発明の第8の実施形態(負荷率の偏りに対する移動制御)の説明図である。
【図8】本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の説明図である。
【図9】本発明の第12の実施形態(管理ノード不設置)の説明図である。
【図10】本発明の第13の実施形態(通信量削減のための移動制御)の説明図である。
【図11】本発明の第14の実施形態(通信量削減のための移動制御)の説明図である。
【図12】本発明の第1の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図13】本発明の第2の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図14】本発明の第4の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図15】本発明の第8の実施形態(負荷率の偏りに対する移動制御)の一実施例の説明図である。
【図16】本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の一実施例の説明図である。
【図17】本発明の第13の実施形態(通信量削減のための移動制御)の一実施例の説明図である。
【図18】本発明の第14の実施形態(通信量削減のための移動制御)の一実施例の説明図である。
【図19】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図20】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図21】サービス連携分散処理システムの例を示す図である。
【図22】サービス連携分散処理システムにおける負荷率上昇の例を示す図である。
【図23】サービス連携分散処理システムにおける通信量増加の例を示す図である。
【図24】サービス連携分散処理システムにおける負荷率の減少の例を示す図である。
【図25】サービス連携分散処理システムにおける負荷率均等化の例を示す図である。
【図26】サービス連携分散処理システムにおける通信量増加の防止の例を示す図である。
【図27】従来の分散処理システムを示す図である。
【符号の説明】
1−1 処理負荷収集・上限値超過検出手段
1−2 他ノード情報受信手段
1−3 処理負荷情報の他ノードへの通知手段
1−4 処理負荷受け入れ可否判断・応答手段
1−5 処理要素プログラム移動手段
A,B,C 処理ノード
M 管理ノード
P1,P2,P3,P4,P5,P6,P7,P8 サービス処理要素プログラム
【発明の属する技術分野】
本発明は、ネットワークに接続された多数のノード(情報処理装置)上に分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムに係り、効率的なサービス処理機能を実現する適応型分散処理システムに関する。
【0002】
【従来の技術】
図27に従来の分散処理システムを示す。分散処理システムは、ネットワークNに接続された複数のノードA,B,C…上に、利用者に対する各種サービスを提供するためのサービス処理要素プログラムP1,P2,P3…を分散配置し、それらが相互に情報交換して並列に動作することにより、サービス要求への応答時間の短縮を図る処理システムである。
【0003】
例えば、同図に示すように、利用者のサービスの要求1は、ノードAのサービス処理要素プログラムP1→ノードBのサービス処理要素プログラムP5,P6→ノードCのサービス処理要素プログラムP8により分散処理される。また、利用者のサービスの要求2は、ノードAのサービス処理要素プログラムP2により処理される。また、利用者のサービスの要求3は、ノードBのサービス処理要素プログラムP5,P6→ノードCのサービス処理要素プログラムP8により分散処理される。
【0004】
効率的なサービス処理機能の実現のためには、各ノード間の負荷率の偏りにより負荷率の高いノードでの処理待ちが生じるのを避けるため、各ノードの負荷率を均等化することが必要である。また、処理の並列化によるノード間の通信のため、ネットワークの負荷が大きくなるが、それを抑制するためには、ノード間通信量を削減することが求められる。そのためには、ノード間における負荷の偏り及び通信量がより少なくなるように、各ノードA,B,C…にサービス処理要素プログラムP1,P2,P3…配置することが重要である。
【0005】
しかし、利用者がサービスをどのように利用するかを予測するのは困難な場合が多く、また、利用するサービスの傾向が変化することもあり、各サービス処理要素プログラムの適切な配置を決めることは難しい。更に、ノード構成やサービス処理要素プログラムの変更もそれに影響を与える。
【0006】
そのため、各サービス処理要素プログラムの配置が固定している場合に、ノード間に負荷率の偏りが生じ、サービスの実行効率が悪くなり、サービスの応答の遅れを引き起こすことがある。また、非効率的なノード間通信により、ネットワークの負荷が増大することがある。
【0007】
本発明に関連する先行技術文献として、「分散システムの負荷平準化方法」に関して特許文献1に、「アプリケーションプログラム移動位置決定方法及びデータファイル移動位置決定方法並びにその装置」に関して特許文献2に、また、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」に関して非特許文献1に記載されている。
【0008】
【特許文献1】
特開2000−47996号公報
【特許文献2】
特開平11−143836号公報
【非特許文献1】
沢野 泰淳、張 勇兵、高木 英明、「移動エージェントを用いたネットワーク負荷分散システムの構築とその評価」、電子情報通信学会論文誌 D−I Vol.J84−D−I No.9pp.1450−1453 2001年9月
【0009】
【発明が解決しようとする課題】
本発明は、前述の分散処理システムにおいて、サービスの利用傾向の変化、システム構成の変更に適応して、ノードの負荷率の均等化を図り、またノード間の通信量を削減し、処理時間の増大を抑えつつ利用者のサービスの要求に対する応答時間を短縮し、効率の良いシステム構築することができる適応型分散処理システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の適応型分散処理システムは、(1)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたものである。
【0011】
また、(2)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードの負荷情報を収集する手段と、ネットワーク上の他の処理ノードの情報を受け取る手段と、ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、を備えたものである。
【0012】
また、(3)ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、を備えたものである。
【0013】
【発明の実施の形態】
図1に本発明の第1の実施形態(過負荷に対する移動制御)を示す。適応型分散処理システムは、ネットワークNに接続され、サービス処理要素プログラムP1,P2,…が配置される複数の処理ノードA,B,C,…と管理ノードMとから構成される。図1に示す実施形態は、過負荷に対しサービス処理要素プログラムP1,P2,…の移動制御を行う実施形態である。なお、本明細書及び図面において、「サービス処理要素プログラム」及び「処理ノード」を簡潔化のためにそれぞれ単に「処理要素プログラム」及び「ノード」と記している。
【0014】
ここで、各ノードA,B,C,…には、自ノードの処理負荷を収集し、該処理負荷が自ノードの上限値を越えたことを検知する処理負荷収集・上限値超過検出手段1−1と、全てのノード情報が登録されている管理ノードMから、他ノードの情報を受け取る他ノード情報受信手段1−2と、ノード内のサービス処理要素プログラムの処理負荷情報を他ノードへ通知する処理負荷情報の他ノードへの通知手段1−3と、該他ノードの処理負荷情報を受け取り、自ノードの処理負荷の上限値及び現在値と比較して、それを受け入れることの可否を応答する処理負荷受け入れ可否判断・応答手段1−4と、他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段1−5とをそれぞれ備える。
【0015】
各ノードは、処理負荷収集・上限値超過検出手段1−1により、自ノードの処理負荷が上限値を越えたことを検知すると、処理負荷情報の他ノードへの通知手段1−3と、他ノードの処理負荷受け入れ可否判断・応答手段1−4とにより、他ノードと交渉し、処理能力に余裕がある他ノードへ、処理要素プログラム移動手段1−5によりサービス処理要素プログラムを移動させる。これにより、各ノード間で負荷率を均等化する方向に迅速にシステム構成を制御することができる。
【0016】
図2は、本発明の第2及び第3の実施形態(過負荷に対する移動制御)を示す。各ノードA,B,C,…の構成は図1に示したものと同様である。第2の実施形態において、管理ノードMには、各ノードA,B,C,…の処理負荷の上限値を含むノード情報を登録する手段2−3を備える。また、各ノードノードA,B,C,…から処理負荷の現在値を受信する手段2−1と、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノードを抽出する手段2−2とを備える。
【0017】
各ノードA,B,C,…に、処理負荷収集・上限値超過検出手段1−1と、他ノード情報受信手段1−2と、処理負荷情報の他ノードへの通知手段1−3と、処理負荷受け入れ可否判断・応答手段1−4と、処理要素プログラム移動手段1−5とを備える。
【0018】
今、例としてノードAにおいて、処理負荷収集・上限値超過検出手段1−1により、自ノードの処理負荷が上限値を越えたことを検知した場合、それを管理ノードMに通知し、管理ノードMは、各ノードから受信した処理負荷の現在値と登録されている上限値との差が一定以上のノード(即ち、処理能力に余裕があるノード、例えばノードB)を通知し、ノードAは通知されたノードBと交渉し、実際に処理能力に余裕があれば、サービス処理要素プログラムをノードB移動させることによって、迅速に負荷率を均等化する方向にシステムを制御することができる。
【0019】
なお、管理ノードMに各ノードの処理負荷の上限値を登録しておくのではなく、第3の実施形態として、管理ノードMは各ノードから上限値を受信し、その差が一定以上のノードを抽出する手段を備えることにより、各ノードA,B,C,…で処理負荷の上限値が変化するシステムに対応する構成とすることができる。
【0020】
図3は、本発明の第4の実施形態(過負荷に対する移動制御)を示す。基本になる構成は図1又は図2に示した構成と同様であり、図3はそれへの追加部分だけを示している。管理ノードMに、ノード間の通信に必要な時間を示すデータを保持する手段3−2を備え、また、各ノードから通信履歴を受け取って、処理負荷の上限値と現在値との差が一定以上のノードの中から、通信履歴に基づく通信相手ノードとの通信時間が短いものを抽出する手段3−1を備え、管理ノードMが処理能力に余裕があるノードを選択する際に、その中から通信時間が短いノードを選択することにより、利用者への応答時間を短縮化することが可能になる。
【0021】
図4は、本発明の第5の実施形態(過負荷に対する移動制御)を示す。基本になる構成は図1〜図3に示したものと同様であり、図4はそれへの追加部分だけを示している。サービス処理要素プログラムの移動元のノード(例えばノードA)に、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを検出した場合に、移動先ノード(例えばノードB)にその旨を通知する手段4−1を備え、サービス処理要素プログラムを移動先ノードBから処理要素プログラム移動手段1−5により、自ノードAにサービス処理要素プログラム(例えばP1)を再移動することにより、自ノードAの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合に、その配置を復元することができる。
【0022】
図5は、本発明の第6の実施形態(過負荷に対する移動制御)を示す。基本的な構成は図1〜図3に示した構成と同様であり、図5はそれへの追加部分だけを示している。サービス処理要素プログラムの他ノード(例えばノードB)への移動後において、移動先ノードBは、移動元ノード(例えばノードA)に負荷情報を問い合わせる手段5−1を備え、移動元ノードAの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取った場合、サービス処理要素プログラムを、処理要素プログラム移動手段1−5により移動元ノードAに再移動することにより、ノードの過負荷が一時的な現象であって、元々のサービス処理要素プログラムの配置が基本的に最適である場合、その配置を復元することができる。
【0023】
図6は、本発明の第7の実施形態(過負荷に対する移動制御)の説明図である。基本になる構成は図2と同様であり、図6はそれへの追加部分だけを示している。サービス処理要素プログラムの移動後、移動元ノードから処理負荷情報を管理ノードMに通知し、管理ノードMは、移動元ノードの処理負荷の現在値と上限値との差が一定値以上に増えたことを検出すると、その旨を移動先ノードに通知する手段6−1を備え、移動先ノードの処理要素プログラム移動手段1−5により、サービス処理要素プログラムを移動元ノードに再移動させ、ノードの過負荷が一時的な現象であって、基本的には元々のサービス処理要素プログラムの配置が最適である場合、その配置を復元することができる。
【0024】
図7は、本発明の第8の実施形態(負荷率の偏りに対する移動制御)の説明図である。この実施形態の適応型分散処理システムは、ネットワークNに接続され、サービス処理要素プログラムP1,P2,…が配置される複数の処理ノードA,B,C,…と管理ノードMとから構成され、各ノードの負荷率の偏りに対応して移動制御を行う実施形態である。
【0025】
各ノードA,B,C…に、自ノードの負荷情報を収集する処理負荷収集手段7−1と、全てのノードが登録されている管理ノードMから他のノードの情報を受け取る他ノード情報受信手段7−2と、他ノードへ処理負荷の上限値及び現在値を問い合わせる他ノード処理負荷問い合わせ手段7−3と、サービス処理要素プログラムを他ノードに移動した場合の自ノード、他ノードそれぞれの負荷率を計算する負荷率計算手段7−4と、自ノードと他ノードの負荷率が均等に近づくようならば、自ノードから他ノードへサービス処理要素プログラムを移動させる処理要素プログラム移動手段7−5とを備える。この構成により、ノード間で負荷情報を交換し、負荷率を均等化する方向にサービス処理要素プログラムを移動させるよう制御を行うことができる。
【0026】
図8は、本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の説明図である。基本的なシステム構成は図7の構成と同様である。第9の実施形態は、管理ノードMに、各ノードの処理負荷の上限値を登録する手段8−4と、各ノードから通知される処理負荷の現在値を受信する手段8−1と、それらの情報を基にノードの負荷率の偏りを計算する手段8−2と、その偏りの値が許容範囲を越えた場合、負荷率が高いノード内のサービス処理要素プログラムを負荷率の低いノードに移動したときの負荷率の偏りを計算する手段8−3とを備え、サービス処理要素プログラムの移動により負荷率の偏りが小さくなる場合、その旨を該当するノードに通知し、該当するノードの処理要素プログラム移動手段7−5によりサービス処理要素プログラムを移動させることにより、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御することができる。
【0027】
なお、第10の実施形態(負荷率の偏りに対する移動制御)として、管理ノードMに各ノードの処理負荷の上限値を登録しておくのではなく、各ノードからそれぞれの上限値を受信することにより、各ノードの負荷の上限値が変化する場合にも、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動制御を行うことができる。
【0028】
次に第11の実施形態(過負荷及び負荷率の偏りに対する移動制御)として、以上に述べた図1〜図6に示した過負荷に対する処理要素プログラム移動手段と、図7及び図8に示した負荷率の偏りに対する処理要素プログラム移動手段とを併用することにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化する方向にシステムを制御するとともに、あるノードにおける急激な過負荷の発生にも対応することができる。
【0029】
図9は本発明の第12の実施形態(管理ノード不設置)を示す。この実施形態は、前述の図1〜図8に示した管理ノードMに具備した各手段を、各処理ノードだけに設けて構成したものである。図9には、処理ノードに追加する追加部分だけを示している。
【0030】
各ノードには、全てのノードの情報を登録する手段9−1と、負荷情報及び負荷の上限値の情報を全てのノードと相互に交換する手段9−2と、それによって得た情報を登録する手段9−3とを備えることにより、各ノードが全ノードの負荷情報及び負荷の上限値の情報を保持し、その情報に基づいてサービス処理要素プログラムの移動を決定することにより、各ノードが管理ノードMから他のノード情報を得たり、管理ノードMでシステム全体の負荷情報から移動するサービス処理要素プログラムを決定したりする必要がなくなる。
【0031】
図10は本発明の第13の実施形態(通信量削減のための移動制御)を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードA,B,C…に、それぞれ配置されている各サービス処理要素プログラムP1,P2,P3…の通信履歴を収集する通信履歴収集手段10−1と、あるサービス処理要素プログラムの通信履歴から、特定の他ノードとの通信量と自ノード内の他の処理要素プログラムとの通信量を比較する通信量比較手段10−2と、特定の他ノードとの通信量が自ノード内の他の処理要素プログラムとの通信量に対して多い場合、サービス処理要素プログラムをその特定他ノードに移動させる処理要素プログラム移動手段10−3とを備えることにより、相互の通信量の多いサービス処理要素プログラムを同一ノードに置き、ノード間の通信量を減少させる方向にシステムを制御することができる。
【0032】
図11は本発明の第14の実施形態(通信量削減のための移動制御)を示す。この実施形態は各ノード間の通信量削減のための移動制御を行う実施形態である。各ノードに、他ノードとの通信に必要な時間を示すデータを保持する手段11−1と、配置されているサービス処理要素プログラムの通信履歴を取り、他ノードとの通信量と通信時間から評価値を計算する手段11−2と、他ノードの通信履歴を受け取り、他ノードのサービス処理要素プログラムが自ノードにあった場合の、他ノードとの通信量と通信時間から評価値を計算する手段11−3と、通信量と通信時間から計算された評価値を他ノードに通知する手段11−4と、自ノードのサービス処理要素プログラムが他ノードにあった場合の評価値が自ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他ノードに移動させる手段11−5とを備えることにより、他ノードとの通信時間を考慮に入れた上で、相互の通信量の多いサービス処理要素プログラムを同一ノードに配置し、ノード間の通信量を減少させる方向にシステムを制御することができる。
【0033】
次に、第15の実施形態(過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御)として、以上に説明した図1〜図9に示す過負荷又は負荷率の偏りに対する手段と、図10及び図11に示す通信量削減のための手段とを併用することにより、急激なノードの過負荷の発生、及び負荷率の偏りの変動に適応して負荷率の均等化を図るとともに、ノード間の通信量の削減を図ることができる。
【0034】
【実施例】
本発明による適応型分散処理システムの実施例を図12〜図18に示す。これらの図において、管理ノードM、ノードA,B,C…はネットワークを介して結合されているものとする。また、分散したサービス処理要素プログラム間で、配置されているノードに依存しない位置透過性のある通信機能を提供するとともに、サービス処理要素プログラムをノード間で移動して実行する機能を提供する分散プラットフォームソフトウェアが実装されているものとする。
【0035】
図12は、前述の第1の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードA,B,C…には、ノード管理プログラム12−1と、各サービス処理要素プログラムP1,P2,P3,…が配置されている。サービス処理要素プログラムは、サービス要求に応じて必要なものが並列に動作し、相互に情報交換を行うことにより、連携して所定の機能を実現するためのプログラムである。
【0036】
サービス処理要素プログラムは、各ノード内に複数個配置されることもあり、また、1つも配置されていない場合もある(例えば、新規に追加されたノードの場合など)。また、各ノードの負荷の上限値、負荷の現在値を示すデータ、及び負荷の測定に用いるカウンタ12−2が設けられている。
【0037】
管理ノードMには、システム管理プログラム12−3と、ノード情報(ノード管理プログラムにアクセスするための情報)保持手段12−4とが配置されている。ここで、例えばサービス要求1に対してはサービス処理要素プログラムP1,P2を、サービス要求2に対してはサービス処理要素プログラムP4,P5を実行することで対応することができるものとし、大多数の利用者からの要求はサービス要求1であったとすると、ノードAの負荷ばかりが増加することになる。
【0038】
このとき、第1の実施形態によれば、ノードAのノード管理プログラム12−1aは、処理要求の発生数などを基にノードAの処理負荷を測定し、それが上限値を越えたとき、管理ノードMのシステム管理プログラム12−3に他ノードの紹介を依頼し、他ノード情報(この場合はノードB)を受け取る。
【0039】
そして、ノードBにサービス処理要素プログラムP1の処理負荷情報を通知してプログラムの移動可否を問い合わせ、ノードBのノード管理プログラム12−1bは、それを受け取ると、自ノードの負荷情報及び負荷上限値を参照してサービス処理要素プログラムP1をノードBに移動することが可能か否かの応答を返送する。
【0040】
移動可という応答であれば、ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1をノードBに移動する。その際、ノードAのノード管理プログラム12−1aが受け取っているサービス処理要素プログラムP1に向けた処理要求も、いるサービス処理要素プログラムP1と同時にノードBへ移す。
【0041】
なお、ノードBからの応答が移動不可であれば、同様に他のノードへの移動を試みる。これにより、ノードAの負荷が上限値を越えた場合、処理能力に余裕があるノードへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【0042】
図13は、本発明の第2の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は図12とほぼ同様であり、同一の構成要素には同一の符号を付して重複した説明は省略するが、管理ノードMに、各ノードの負荷の上限値を登録する手段13−2を備え、また、システム管理プログラム13−1は、各ノードA,B,C…のノード管理プログラム12−1から負荷の現在値を定期的に受信し、上限値との差が一定以上のノードを抽出する機能を備える。
【0043】
ここで、例えばノードAの処理負荷が上限値を越えたとすると、ノードAのノード管理プログラム12−1aは、管理ノードMのシステム管理プログラム13−1に他ノードの紹介を依頼し、管理ノードMから、負荷の現在値と上限値の差が一定以上のノードとして、他ノード情報(この場合はノードB)を受け取る。
【0044】
以下は図12に示した実施例と同様に、ノードAのノード管理プログラム12−1aは、ノードBのノード管理プログラム12−1bと交渉し、ノードBでサービス処理要素プログラムP1を実行可能であれば、ノードBへ移動させる。これにより、ノードAの負荷が上限値を越えた場合、負荷情報と負荷の上限値から処理能力に余裕があると予想されるノードBへサービス処理要素プログラムを移動させ、負荷率を均等化する方向にシステムを制御する。
【0045】
なお、図13に示す実施例において、第3の実施形態(過負荷に対する移動制御)のように、管理ノードMに各ノードの上限値を登録しておくのでなく、各ノードの上限値も負荷情報と同様に各ノードA,B,C…から定期的に受信する構成とすることもできる。この構成により、各ノードの負荷の上限値が変化する場合にも、最適なノードへサービス処理要素プログラムを移動させることができる。
【0046】
図14は、本発明の第4の実施形態(過負荷に対する移動制御)の一実施例を示す。ノードの構成並びに各ノード内のプログラム及びデータの配置は、図13の実施例と略同様であるが、図13の実施例の手段に加えて、管理ノードMにノード間の通信に必要な時間を示すデータの保持手段14−1を備え、また、各ノードにおいて、ノード管理プログラム12−1が相手ノードと通信回数を記録した通信履歴を保持する手段14−2とを備える。
【0047】
今、ノードAの処理負荷が上限値を越えると、ノードAのノード管理プログラム12−1aは、システム管理プログラム13−1に通信履歴を付して他ノードの紹介を依頼する。システム管理プログラム13−1は、図13の実施例と同様に、負荷の現在値と上限値との差が一定以上のノードを抽出し、更にノード間通信時間のデータを参照して、受け取った通信履歴に基づき、サービス処理要素プログラム移動後の通信時間が短いと予想されるノード(この例ではノードB)をその中から選択して応答する。
【0048】
以下は図12の実施例と同様に、ノードAのノード管理プログラム12−1aは、ノードBのノード管理プログラム12−1bと交渉し、サービス処理要素プログラムP1を可能であればノードBへ移動させる。この構成により、サービス処理要素プログラムの移動先ノードとして、処理能力に余裕があり、かつ、移動後の通信時間が短いと予想されるものを選択することができる。
【0049】
図12〜図14の実施例において、第5の実施形態(過負荷に対する移動制御)として述べたように、ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1の移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増えたときに、ノードBのノード管理プログラム12−1bにその旨を通知し、ノードBのノード管理プログラム12−1bはその通知を受け取ると、サービス処理要素プログラムP1をノードAに再移動する手段を備えることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0050】
図12〜図14の実施例において、第6の実施形態(過負荷に対する移動制御)として述べたように、ノードBのノード管理プログラム12−1bが、サービス処理要素プログラムP1の移動後、ノードAのノード管理プログラム12−1aに負荷情報を問い合わせ、処理負荷の現在値と上限値との差が一定値以上に増えたことを示す応答が返されたとき、サービス処理要素プログラムP1をノードAに再移動する手段を備えることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0051】
図13及び図14の実施例において、第7の実施形態(過負荷に対する移動制御)として述べたように、管理ノードMのシステム管理プログラム13−1は、サービス処理要素プログラムP1の移動後、ノードAのノード管理プログラム12−1aから得た情報により、ノードAの処理負荷の現在値と上限値との差が一定値以上に増えたことを検知すると、それをノードBに通知し、ノードBはサービス処理要素プログラムP1を元のノードAに再移動させることにより、ノードAの処理負荷が上限値を越える前のプログラム配置に戻すことができる。
【0052】
図15は本発明の第8の実施形態(負荷率の偏りに対する移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図12の実施例と同様である。ここで、各ノードのノード管理プログラム12−1(例えばノードAのノード管理プログラム12−1a)は、システム管理プログラム12−3から他ノード情報(例えばノードB)を受け取り、その処理負荷の現在値及び上限値を問い合わせる。
【0053】
ノードBのノード管理プログラム12−1bがそれに応答すると、ノードAのノード管理プログラム12−1aは、ノードB及び自ノードの処理負荷情報及び負荷の上限値を基に、現在のノードA及びノードBの負荷率と、サービス処理要素プログラムP1をノードBに移動した場合のノードA及びノードBの負荷率を計算する。そして、移動した場合の方が両負荷率が均等に近づく場合に、サービス処理要素プログラムP1をノードBへ移動させる。この構成により、ノード間での負荷率を均等化する方向にサービス処理要素プログラムを移動させる。
【0054】
図16は第9及び第10の実施形態(負荷率の偏りに対する移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は図15の実施例とほぼ同様であるが、管理ノードMには、各ノードの処理負荷の上限値及び現在値を保持するテーブル16−1が設けられている。各ノードのノード管理プログラム12−1は、各ノードのサービス処理要素プログラム毎の処理負荷の現在値を管理ノードMのシステム管理プログラム12−1に定期的に通知する。
【0055】
処理負荷の上限値は、第9の実施形態のように、管理ノードMに予め登録しておく形態と、また第10の実施形態(負荷率の偏りに対する移動制御)のように、各ノード管理プログラム12−1から定期的に通知する形態とがある。システム管理プログラム12−1は、受け取った処理負荷の現在値及び上限値から各ノードの負荷率を計算し、負荷率の偏り(例えば分散)を求める。
【0056】
負荷率の偏りが或る許容範囲を越えている場合、負荷率の高いノード及び低いノード(あるいは負荷に余裕のあるノード)を抽出して、前者に配置されているサービス処理要素プログラムを後者に移動した場合の負荷率の偏りを求め、それが現在の偏りより小さくなるならば、ノード管理プログラム12−1にサービス処理要素プログラムの移動を指示する。
【0057】
例えば、図16の実施例では、ノードAのノード管理プログラム12−1aに、サービス処理要素プログラムP1をノードBに移動することを指示している。ノードAのノード管理プログラム12−1aは、それを受けてノードBのノード管理プログラム12−1bと交渉し、移動可であればサービス処理要素プログラムP1をノードBへ移動させる。このようにして、管理ノードMがシステム全体のノード間の負荷率の偏りに応じて適切なサービス処理要素プログラムの移動を指示し、負荷率の均等化を図る。
【0058】
システム管理プログラム12−3とノード管理プログラム12−1には、図12〜図14の実施例における過負荷に対応したサービス処理要素プログラムの移動機能と、図15及び図16の実施例における負荷均等化のためのサービス処理要素プログラムの移動機能とを、第11の実施形態(過負荷及び負荷率の偏りに対する移動制御)として示したように、同時に実装することが可能である。それにより、常時、負荷率の偏りの変動に適応して、負荷率を均等化するようにサービス処理要素プログラムを移動するとともに、急激なノードの過負荷の発生にも対応することができる。
【0059】
以上図12〜図16に示した実施例において、管理ノードMは、ノード情報のほか負荷情報及び負荷の上限値のデータを保持している。しかし、第12の実施形態(管理ノード不設置)のように、各ノードに全てのノード情報を登録し、各ノード管理プログラムが他の全てのノードのノード管理プログラムと、負荷情報や負荷の上限値を交換することができるように構成することにより、管理ノードMへの他ノードの情報を問い合わせる構成は不要になり、また管理ノードMで行っている移動先ノードの選択処理を、各処理ノードが独自に行う構成とすることができる。この構成によれば、管理ノードMを設けることなく、ピアツーピア型のシステム構成で実現することができる。
【0060】
図17は、第13の実施形態(通信量削減のための移動制御)の一実施例である。ノードA,B,C…には、ノード管理プログラム12−1と、サービス処理要素プログラムP1,P2,P3…が配置されている。また、各ノードには、サービス処理要素プログラム毎の通信先ノード及び通信回数を記録するためのテーブル17−1が設けられ、該テーブル17−1は定期的に新しい情報を収集して更新される。
【0061】
ノード管理プログラム12−1は、特定の他ノードとの通信量が自ノード内の他のサービス処理要素プログラムとの通信量に対して多いサービス処理要素プログラムを移動候補として検出する。例えば、ノードAのノード管理プログラム12−1aがノードBへの移動候補のサービス処理要素プログラムP1を検出すると、ノードBのノード管理プログラム12−1bと交渉し、移動可であればサービス処理要素プログラムP1をノードBへ移動させる。このようにして、ノード間の通信量を減少させるように制御する。
【0062】
図18は、第14の実施形態(通信量削減のための移動制御)の一実施例である。ノードの構成並びにノード内のプログラム及びデータの配置は、図17の実施例と略同様であるが、図17の実施例に加えて、各ノードに他ノードとの通信に要する時間を示すデータを保持する手段18−1備える。
【0063】
ノードAのノード管理プログラム12−1aは、各サービス処理要素プログラムについて、他ノードとの通信量と通信時間から評価値(例えば、“1/(通信量と通信時間の積)”)を計算する。そして評価値の低いサービス処理要素プログラムP1を移動候補として、その通信履歴を通信回数の多い他ノードBに通知する。
【0064】
それを受け取ったノードBのノード管理プログラム12−1bは、移動の可否、及び移動可の場合はサービス処理要素プログラムがノードBにあったとしたときの評価値を、ノードBからの通信時間を用いて計算し、その結果をノードAのノード管理プログラムに返す。
【0065】
ノードAのノード管理プログラム12−1aは、サービス処理要素プログラムP1がノードBにあった場合の評価値と、ノードAでの評価値と比較し、前者が高い場合は、サービス処理要素プログラムP1をノードBに移動させる。これにより、通信量を減少させる方向へのサービス処理要素プログラムの移動を、利用者への応答時間及びノード間の通信時間が減少するように制御することができる。
【0066】
例えば、ノードAに配置されたサービス処理要素プログラムP1が、ノードA内よりノードBとの通信量が多い場合であったとしても、その他のノードC,D,…との通信量と通信時間に関して、ノードBに移動したときの不利益が大きい場合は移動しないといった制御を行う。
【0067】
最後に第15の実施形態(過負荷及び負荷率の偏りに対する移動制御並びに通信量削減のための移動制御)のように、図12〜図16の実施例と図17及び図18の実施例とを併用する構成例について説明する。例えば、通信量を減少させるためのサービス処理要素プログラムの移動を随時行うのと並行して、定期的に負荷率均等化のためのサービス処理要素プログラムの移動を制御する。但し、移動記録を保存しておき、同じサービス処理要素プログラムの反復的な移動を避けるように制御する。それにより、負荷率の均等化と通信量の削減を統合した制御を行うことができる。
【0068】
図19及び図20にサービス処理要素プログラムの移動による最適な配置の手順の例を示す。同図に示すように、ノードAとノードBとに、サービス処理要素プログラムP1〜P8が配置され、各サービス処理要素プログラムP1〜P8は、それぞれ実線で結合された各サービス処理要素プログラムと通信を行って情報を交換を行いながら処理を実行しているものとする。
【0069】
今、図19の(a)に示す状態から、通信量の削減のため、サービス処理要素プログラムP3をノードAからノードBへ移動した状態を図19の(b)に示す。更に、図19の(b)の状態から、負荷均等化のため、サービス処理要素プログラムP7をノードBからノードAへ移動した状態を図19の(c)に示す。
【0070】
図19の(c)と図20の(c)は同じ状態を示しているが、この状態から、更に、通信量の削減のため、サービス処理要素プログラムP8をノードBからノードAへ移動した状態を図20の(d)に示す。更に、図20の(d)の状態から、負荷均等化のため、サービス処理要素プログラムP1をノードAからノードBへ移動した状態を図20の(e)に示している。
【0071】
図21は、これから広く利用されるようになると予想される分散処理によるサービス連携システムの具体的な事例を示している。インターネットなどのネットワーク上の処理ノードに分散配置された多数のサービス処理要素プログラムが連携して動作する具体例について以下に説明する。
【0072】
ネットワーク上の分散したノードA,B,Cには、多くの行楽情報を提供するサーバ(行楽情報サーバ)を有し、該サーバにより映画館、美術館、ウオーキング、サッカー、釣り、音楽会、登山、公園、天気予報に関する情報サービスを、ユーザからの要求に従って提供する。
【0073】
ノードBの行楽案内サーバは、ユーザからの要求を受けると、個別の行楽情報サーバからユーザの求める行楽情報を収集し、ユーザに提供する。例えば、或るユーザが展覧会の情報を要求すると、美術館1、美術館2、美術館3の行楽情報サーバから情報を集めてユーザに情報サービスを提供する。また、ウオーキング、登山、公園など野外の行楽に関する情報が要求された場合には、それらの各行楽情報サーバに問い合わせを行うと同時に、天気予報の情報サーバにも問い合わせを行い、両者のサーバから得られた情報を合わせてユーザに提供する。
【0074】
このサービス連携システムは、外部的な要因によりノード間の負荷率に偏りが生じて効率の悪い処理動作となったり、或いはノード間の通信が予想外に増大したりすることがある。例えば、サッカーの試合が有れば、図22に太線で示すように、サッカーに関する情報の要求が大量に発生することがあり得る。その場合、他のノードの負荷率は低いにも拘らずノードBの負荷率だけが高く、サービス処理が滞る可能性がある。
【0075】
なお、以下の図22〜図26において、線の太さはサービス処理要素プログラム(サーバプログラム)の処理負荷、及び各サービス処理要素プログラム(サーバプログラム)間の通信量を示し、点線は移動により消滅したサービス処理要素プログラム(サーバプログラム)であることを示している。
【0076】
また、行楽シーズンであれば、図23に太線で示すように、ウオーキング、登山、公園など野外の行楽に関する情報の要求が増えることがあり得る。それらの要求は皆、天気予報へのアクセスを伴うので、ノードB、C間の通信量が急増する可能性がある。本発明によれば、このような問題を、ノード間でサーバのプログラムを適応的に移動させることによって解決することができる。
【0077】
図24、図25は、サッカーに関する情報の要求が大量に発生した場合の問題を解決する例である。図24は、ノードBの負荷率が上がり、上限値を越えたことを検出した場合、ノードAにサービス処理要素プログラムの移動可否を問い合わせ、その結果、ノードAに余裕があり負荷受け入れ可能との応答が得られ、一例としてサッカーのサービス処理要素プログラムをノードAに移動させることにより、負荷を減少させる例を示している。
【0078】
図25は、負荷率の上がったノードBが、ノードAの負荷情報を得て自ノードと比較し、サービス処理要素プログラムを移動させることによって負荷を均等に近付けることができると判断した結果、一例として釣りと音楽会のサービス処理要素プログラムをノードAに移動させる例を示している。
【0079】
図26は、野外の行楽に関する情報の要求が増えた場合の問題を解決する例である。ノードCは、通信履歴から天気予報サーバの通信先の多くがノードBであることを検出し、それをノードBに移動させることにより、ノードB,C間の通信量増加を防ぐ例を示している。
【0080】
(付記1) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、
ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、
自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記2) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
各処理ノードの処理負荷の上限値が登録された管理ノードに、各処理ノードより処理負荷の現在値を受信して上限値との差が一定以上の処理ノードを抽出する手段を備え、
各処理ノードに、前記抽出された処理ノードの情報を管理ノードから受け取る手段と、処理負荷を収集し、上限値を越えたことを検知する手段と、処理ノード内のサービス処理要素プログラムの処理負荷情報を他処理ノードへ通知する手段と、前記処理負荷情報を受け取り、自分の処理負荷の上限値及び現在値と比較して、他ノードのサービス処理要素プログラムを受け入れることの可否を応答する手段と、他処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、を備えたことを特徴とする適応型分散処理システム。
(付記3) 前記管理ノードに、各処理ノードから処理負荷の現在値と上限値とを受信し、その差が一定以上の処理ノードを抽出する手段を備えたことを特徴とする付記2に記載の適応型分散処理システム。
(付記4) 前記管理ノードに、処理ノード間の通信に必要な時間を示すデータを保持する手段を備え、また、各処理ノードから通信履歴を受け取り、処理負荷の上限値と現在値との差が一定以上の処理ノードの中から、通信履歴に基づく通信相手処理ノードとの通信時間がより短いものを抽出する手段を備えることを特徴とする付記2又は3に記載の適応型分散処理システム。
(付記5) 前記サービス処理要素プログラムの移動元の処理ノードに、サービス処理要素プログラムの移動後、自ノードの処理負荷の現在値と上限値との差が一定値以上に増加したときに該サービス処理要素プログラムの移動先の処理ノードに通知し、該サービス処理要素プログラムを該移動先の処理ノードから自処理ノードに再移動する手段を備えたことを特徴とする付記1乃至4の何れかに記載の適応型分散処理システム。
(付記6) 前記サービス処理要素プログラムの移動先の処理ノードに、サービス処理要素プログラムの移動後、該サービス処理要素プログラムの移動元の処理ノードに負荷情報を問い合わせ、該移動元の処理ノードの処理負荷の現在値と上限値との差が一定値以上に増加したことを示す応答を受け取ると、サービス処理要素プログラムを移動元の処理ノードに再移動する手段を備えたことを特徴とする付記1乃至4の何れかに記載の適応型分散処理システム。
(付記7) 前記管理ノードに、サービス処理要素プログラムの移動後、移動元の処理ノードからの処理負荷情報の通知により、処理負荷の現在値と上限値との差が一定値以上に増えたことが分かると、それを移動先の処理ノードに通知し、移動先の処理ノードに、サービス処理要素プログラムを移動元の処理ノードに再移動させる手段を備えたことを特徴とする付記2乃至4の何れかに記載の適応型分散処理システム。
(付記8) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの負荷情報を収集する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、
ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記9) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードの処理負荷の上限値を登録する手段と、各処理ノードから通知される処理負荷の現在値を受信する手段と、それらの情報を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなる場合に、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
(付記10) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、
管理ノードに、各処理ノードから通知される処理負荷の現在値と上限値とを受け取る手段と、それらの値を基に処理ノードの負荷率の偏りを計算し、その値が許容範囲を越えた場合、負荷率が高い処理ノード内のサービス処理要素プログラムを負荷率の低い処理ノードに移動すると負荷率の偏りが小さくなるならば、そのようにサービス処理要素プログラムを移動させる手段とを備えたことを特徴とする適応型分散処理システム。
(付記11) 付記1乃至7の何れかに記載の適応型分散処理システムにおける各手段と、付記8乃至10の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの各手段を併用することを特徴とする適応型分散処理システム。
(付記12) 付記1乃至11の何れかに記載の適応型分散処理システムにおいて、管理ノードを設ける代わりに、各処理ノードに、全ての処理ノードの情報を登録する手段と、負荷情報及び負荷の上限値を全ての処理ノードと相互に交換する手段と、それによって得た情報を登録する手段と、を備えたことを特徴とする適応型分散処理システム。
(付記13) ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、
該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、
ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記14) ネットワークに接続された多数の処理ノード上に分散するサービス処理要素プログラムが、並列に動作し、相互に情報交換し、連携して所定の機能を実現する分散処理システムにおいて、各処理ノードに、
他処理ノードとの通信に必要な時間を示すデータを保持する手段と、
配置されているサービス処理要素プログラムの通信履歴を取り、他処理ノードとの通信量と通信時間から評価値を計算する手段と、
他処理ノードの通信履歴を受け取り、他処理ノードのサービス処理要素プログラムが自処理ノードに有った場合の他処理ノードとの通信量と通信時間から評価値を計算する手段と、
通信量と通信時間から計算された評価値を他処理ノードに通知する手段と、
自処理ノードのサービス処理要素プログラムが他処理ノードに有った場合の評価値が自処理ノードにおける評価値に比べて高い場合、そのサービス処理要素プログラムを他処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
(付記15) 付記1乃至12の何れかに記載の適応型分散処理システムにおける各手段と、付記13又は14の何れかに記載の適応型分散処理システムにおける各手段とを具備し、それらの手段を併用する構成を有することを特徴とする適応型分散処理システム。
【0081】
【発明の効果】
以上説明したように、本発明によれば、ネットワーク上の複数のノードにサービス処理要素プログラムが分散配置された分散処理システムにおいて、短期的なサービス利用傾向や環境の変動によるノードの過負荷又はノード間の負荷率の偏りに対して、ノード間でサービス処理要素プログラムを移動することにより、ノードの負荷率の均等化及びノード間の通信量の削減を行い、特定ノードの負荷率上昇、負荷率の偏りによる処理時間の増大を抑えつつ通信量を減少させ、ネットワークの負荷を軽減することができる。それにより、利用者の要求に対するサービス情報の応答時間を短縮し、効率の良い経済的な分散処理システムを構築することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態(過負荷に対する移動制御)の説明図である。
【図2】本発明の第2及び第3の実施形態(過負荷に対する移動制御)の説明図である。
【図3】本発明の第4の実施形態(過負荷に対する移動制御)の説明図である。
【図4】本発明の第5の実施形態(過負荷に対する移動制御)の説明図である。
【図5】本発明の第6の実施形態(過負荷に対する移動制御)の説明図である。
【図6】本発明の第7の実施形態(過負荷に対する移動制御)の説明図である。
【図7】本発明の第8の実施形態(負荷率の偏りに対する移動制御)の説明図である。
【図8】本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の説明図である。
【図9】本発明の第12の実施形態(管理ノード不設置)の説明図である。
【図10】本発明の第13の実施形態(通信量削減のための移動制御)の説明図である。
【図11】本発明の第14の実施形態(通信量削減のための移動制御)の説明図である。
【図12】本発明の第1の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図13】本発明の第2の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図14】本発明の第4の実施形態(過負荷に対する移動制御)の一実施例の説明図である。
【図15】本発明の第8の実施形態(負荷率の偏りに対する移動制御)の一実施例の説明図である。
【図16】本発明の第9及び第10の実施形態(負荷率の偏りに対する移動制御)の一実施例の説明図である。
【図17】本発明の第13の実施形態(通信量削減のための移動制御)の一実施例の説明図である。
【図18】本発明の第14の実施形態(通信量削減のための移動制御)の一実施例の説明図である。
【図19】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図20】本発明によるサービス処理要素プログラムの移動による最適な配置の手順の例を示す図である。
【図21】サービス連携分散処理システムの例を示す図である。
【図22】サービス連携分散処理システムにおける負荷率上昇の例を示す図である。
【図23】サービス連携分散処理システムにおける通信量増加の例を示す図である。
【図24】サービス連携分散処理システムにおける負荷率の減少の例を示す図である。
【図25】サービス連携分散処理システムにおける負荷率均等化の例を示す図である。
【図26】サービス連携分散処理システムにおける通信量増加の防止の例を示す図である。
【図27】従来の分散処理システムを示す図である。
【符号の説明】
1−1 処理負荷収集・上限値超過検出手段
1−2 他ノード情報受信手段
1−3 処理負荷情報の他ノードへの通知手段
1−4 処理負荷受け入れ可否判断・応答手段
1−5 処理要素プログラム移動手段
A,B,C 処理ノード
M 管理ノード
P1,P2,P3,P4,P5,P6,P7,P8 サービス処理要素プログラム
Claims (3)
- ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定のサービス機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの処理負荷を収集し、該処理負荷が上限値を越えたことを検知する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
自処理ノード内のサービス処理要素プログラムの処理負荷情報をネットワーク上の他の処理ノードへ通知する手段と、
ネットワーク上の他の処理ノードの処理負荷情報を受け取り、自処理ノードの処理負荷の上限値及び現在値を参照して、他の処理ノードのサービス処理要素プログラムが受け入れ可能か否かを判断してその応答を送出する手段と、
自処理ノードの処理負荷が上限値を越え、かつ、ネットワーク上の他の処理ノードがサービス処理要素プログラムを受け入れ可能である場合に、該他の処理ノードへサービス処理要素プログラムを移動させて実行させる手段と、
を備えたことを特徴とする適応型分散処理システム。 - ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードの負荷情報を収集する手段と、
ネットワーク上の他の処理ノードの情報を受け取る手段と、
ネットワーク上の他の処理ノードへ処理負荷の上限値及び現在値を問い合わせる手段と、
ネットワーク上の他の処理ノードへサービス処理要素プログラムを移動させた場合の自処理ノード及び該他の処理ノードそれぞれの負荷率を計算し、自処理ノード及び該他の処理ノードの負荷率が均等に近づく場合に、自処理ノードから他の処理ノードへサービス処理要素プログラムを移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。 - ネットワーク上の複数の処理ノードに分散配置されたサービス処理要素プログラムがそれぞれ並列に動作し、相互に情報交換し、連携して所定の機能を実行する分散処理システムにおいて、各処理ノードに、
自処理ノードに配置されている各サービス処理要素プログラムの通信履歴を保存する手段と、
該サービス処理要素プログラムの通信履歴を基に、ネットワーク上の他の処理ノードとの間で行われた通信の量と、自処理ノード内の他の処理要素プログラムとの間で行われた通信の量とを比較する手段と、
ネットワーク上の他の処理ノードとの間で行われた通信の量が、自処理ノード内の他の処理要素プログラムとの通信量より多い場合に、該サービス処理要素プログラムを該他の処理ノードに移動させる手段と、
を備えたことを特徴とする適応型分散処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003170331A JP2005004676A (ja) | 2003-06-16 | 2003-06-16 | 適応型分散処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003170331A JP2005004676A (ja) | 2003-06-16 | 2003-06-16 | 適応型分散処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005004676A true JP2005004676A (ja) | 2005-01-06 |
Family
ID=34095154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003170331A Withdrawn JP2005004676A (ja) | 2003-06-16 | 2003-06-16 | 適応型分散処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005004676A (ja) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007126044A (ja) * | 2005-11-04 | 2007-05-24 | Toyota Motor Corp | 車載分散処理システム |
JP2008097603A (ja) * | 2006-10-05 | 2008-04-24 | Palo Alto Research Center Inc | コードをデータ生産装置に転送するシステムおよび方法 |
JP2008226177A (ja) * | 2007-03-15 | 2008-09-25 | Fujitsu Ltd | 分散処理プログラム、システムおよび方法 |
JP2009187115A (ja) * | 2008-02-04 | 2009-08-20 | Internatl Business Mach Corp <Ibm> | マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム |
JP2009545043A (ja) * | 2006-07-27 | 2009-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム |
JP2010134518A (ja) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | 計算機システムの構成管理方法、計算機システム及び構成管理プログラム |
JP2010257056A (ja) * | 2009-04-22 | 2010-11-11 | Fujitsu Ltd | 並列処理装置、並列処理方法及び並列処理プログラム |
DE102010032300A1 (de) | 2009-08-28 | 2011-06-22 | Fujitsu Ltd., Kanagawa | Simulator des Typs mit verteilter Verarbeitung |
JP2011192049A (ja) * | 2010-03-15 | 2011-09-29 | Nec Corp | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム |
JP2012137865A (ja) * | 2010-12-24 | 2012-07-19 | Toshiba Corp | サービス提供システム、装置及びプログラム |
JP2013114626A (ja) * | 2011-11-30 | 2013-06-10 | Fujitsu Ltd | 配置装置、配置プログラムおよび配置方法 |
KR101276340B1 (ko) | 2009-09-22 | 2013-06-18 | 한국전자통신연구원 | 병렬 처리 시스템 및 그 방법 |
JP2013175133A (ja) * | 2012-02-27 | 2013-09-05 | Fujitsu Ltd | イベント収集方法、イベント収集プログラム及び情報処理装置 |
JP2013178682A (ja) * | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークシステムおよび配置制御方法 |
WO2014024612A1 (ja) * | 2012-08-06 | 2014-02-13 | 日本電気株式会社 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
US8751660B2 (en) | 2011-06-02 | 2014-06-10 | Kabushiki Kaisha Toshiba | Apparatus and a method for distributing load, and a non-transitory computer readable medium thereof |
JPWO2013038547A1 (ja) * | 2011-09-15 | 2015-03-23 | 富士通株式会社 | 仮想マシン管理装置、仮想マシン移動制御プログラムおよび仮想マシン移動制御方法 |
JP2015162034A (ja) * | 2014-02-27 | 2015-09-07 | コニカミノルタ株式会社 | 画像形成システム、中継サーバー、通信制御方法及びプログラム |
US9244468B2 (en) | 2011-12-28 | 2016-01-26 | Kabushiki Kaisha Toshiba | Smoothing device, smoothing system, and computer program product |
US9250617B2 (en) | 2011-12-28 | 2016-02-02 | Kabushiki Kaisha Toshiba | Smoothing device, smoothing system, and computer program product |
JP2016024500A (ja) * | 2014-07-16 | 2016-02-08 | 富士通株式会社 | 分散処理プログラム、分散処理管理装置及び分散処理方法 |
JP2016522946A (ja) * | 2013-05-20 | 2016-08-04 | パックサイズ,エルエルシー | ローカルまたは分散型コンピュータ・システムにおける柔軟なノード構成方法およびシステム |
JP2017107353A (ja) * | 2015-12-09 | 2017-06-15 | 日本電信電話株式会社 | 負荷分散装置および負荷分散方法 |
JP2017146679A (ja) * | 2016-02-15 | 2017-08-24 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | リスト作成装置、処理装置、リソース情報取得システム、分散処理システム、リスト作成方法及び分散処理方法 |
JP2018032346A (ja) * | 2016-08-26 | 2018-03-01 | 日本電信電話株式会社 | 分散同期処理システム及びその方法 |
US10165045B2 (en) | 2015-05-20 | 2018-12-25 | Fujitsu Limited | Information processing apparatus, system, method, and computer readable medium |
JP2021012561A (ja) * | 2019-07-08 | 2021-02-04 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
US11055146B2 (en) | 2018-03-29 | 2021-07-06 | Fujitsu Limited | Distribution process system and distribution process method |
CN114138490A (zh) * | 2021-12-04 | 2022-03-04 | 北京朗维计算机应用技术开发有限公司 | 一种基于分布式云平台的云边管理方法及系统 |
-
2003
- 2003-06-16 JP JP2003170331A patent/JP2005004676A/ja not_active Withdrawn
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007126044A (ja) * | 2005-11-04 | 2007-05-24 | Toyota Motor Corp | 車載分散処理システム |
JP2009545043A (ja) * | 2006-07-27 | 2009-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム |
US8392577B2 (en) | 2006-07-27 | 2013-03-05 | International Business Machines Corporation | Reduction of message flow between bus-connected consumers and producers |
US8364818B2 (en) | 2006-07-27 | 2013-01-29 | International Business Machines Corporation | Reduction of message flow between bus-connected consumers and producers |
JP2008097603A (ja) * | 2006-10-05 | 2008-04-24 | Palo Alto Research Center Inc | コードをデータ生産装置に転送するシステムおよび方法 |
KR101389290B1 (ko) | 2006-10-05 | 2014-04-25 | 팔로 알토 리서치 센터 인코포레이티드 | 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법 |
JP2008226177A (ja) * | 2007-03-15 | 2008-09-25 | Fujitsu Ltd | 分散処理プログラム、システムおよび方法 |
JP2009187115A (ja) * | 2008-02-04 | 2009-08-20 | Internatl Business Mach Corp <Ibm> | マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム |
JP2010134518A (ja) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | 計算機システムの構成管理方法、計算機システム及び構成管理プログラム |
JP2010257056A (ja) * | 2009-04-22 | 2010-11-11 | Fujitsu Ltd | 並列処理装置、並列処理方法及び並列処理プログラム |
DE102010032300A1 (de) | 2009-08-28 | 2011-06-22 | Fujitsu Ltd., Kanagawa | Simulator des Typs mit verteilter Verarbeitung |
US8280706B2 (en) | 2009-08-28 | 2012-10-02 | Fujitsu Limited | Distributed processing-type simulator |
KR101276340B1 (ko) | 2009-09-22 | 2013-06-18 | 한국전자통신연구원 | 병렬 처리 시스템 및 그 방법 |
JP2011192049A (ja) * | 2010-03-15 | 2011-09-29 | Nec Corp | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム |
JP2012137865A (ja) * | 2010-12-24 | 2012-07-19 | Toshiba Corp | サービス提供システム、装置及びプログラム |
US8751660B2 (en) | 2011-06-02 | 2014-06-10 | Kabushiki Kaisha Toshiba | Apparatus and a method for distributing load, and a non-transitory computer readable medium thereof |
JPWO2013038547A1 (ja) * | 2011-09-15 | 2015-03-23 | 富士通株式会社 | 仮想マシン管理装置、仮想マシン移動制御プログラムおよび仮想マシン移動制御方法 |
US9268603B2 (en) | 2011-09-15 | 2016-02-23 | Fujitsu Limited | Virtual machine management device, and virtual machine move control method |
US9141677B2 (en) | 2011-11-30 | 2015-09-22 | Fujitsu Limited | Apparatus and method for arranging query |
JP2013114626A (ja) * | 2011-11-30 | 2013-06-10 | Fujitsu Ltd | 配置装置、配置プログラムおよび配置方法 |
US9250617B2 (en) | 2011-12-28 | 2016-02-02 | Kabushiki Kaisha Toshiba | Smoothing device, smoothing system, and computer program product |
US9244468B2 (en) | 2011-12-28 | 2016-01-26 | Kabushiki Kaisha Toshiba | Smoothing device, smoothing system, and computer program product |
JP2013175133A (ja) * | 2012-02-27 | 2013-09-05 | Fujitsu Ltd | イベント収集方法、イベント収集プログラム及び情報処理装置 |
JP2013178682A (ja) * | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークシステムおよび配置制御方法 |
WO2014024612A1 (ja) * | 2012-08-06 | 2014-02-13 | 日本電気株式会社 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
US9712609B2 (en) | 2012-08-06 | 2017-07-18 | Nec Corporation | Computer network system and method of determining necessity of transferring load in computer network system |
JP2016522946A (ja) * | 2013-05-20 | 2016-08-04 | パックサイズ,エルエルシー | ローカルまたは分散型コンピュータ・システムにおける柔軟なノード構成方法およびシステム |
US10491687B2 (en) | 2013-05-20 | 2019-11-26 | Packsize Llc | Method and system for flexible node composition on local or distributed computer systems |
JP2015162034A (ja) * | 2014-02-27 | 2015-09-07 | コニカミノルタ株式会社 | 画像形成システム、中継サーバー、通信制御方法及びプログラム |
JP2016024500A (ja) * | 2014-07-16 | 2016-02-08 | 富士通株式会社 | 分散処理プログラム、分散処理管理装置及び分散処理方法 |
US10165045B2 (en) | 2015-05-20 | 2018-12-25 | Fujitsu Limited | Information processing apparatus, system, method, and computer readable medium |
JP2017107353A (ja) * | 2015-12-09 | 2017-06-15 | 日本電信電話株式会社 | 負荷分散装置および負荷分散方法 |
JP2017146679A (ja) * | 2016-02-15 | 2017-08-24 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | リスト作成装置、処理装置、リソース情報取得システム、分散処理システム、リスト作成方法及び分散処理方法 |
JP2018032346A (ja) * | 2016-08-26 | 2018-03-01 | 日本電信電話株式会社 | 分散同期処理システム及びその方法 |
US11055146B2 (en) | 2018-03-29 | 2021-07-06 | Fujitsu Limited | Distribution process system and distribution process method |
JP2021012561A (ja) * | 2019-07-08 | 2021-02-04 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
JP7310378B2 (ja) | 2019-07-08 | 2023-07-19 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
CN114138490A (zh) * | 2021-12-04 | 2022-03-04 | 北京朗维计算机应用技术开发有限公司 | 一种基于分布式云平台的云边管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005004676A (ja) | 適応型分散処理システム | |
Sundararaj | Optimal task assignment in mobile cloud computing by queue based ant-bee algorithm | |
CN107517228B (zh) | 一种内容分发网络中的动态加速方法及装置 | |
KR101634409B1 (ko) | 데이터 센터들에 걸친 리소스 위치 확인 및 마이그레이션 기법 | |
US20170310596A1 (en) | Load distribution in data networks | |
WO2018000993A1 (zh) | 一种分布式存储的方法和系统 | |
US8479215B2 (en) | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system | |
US8914501B2 (en) | Method, apparatus, and system for scheduling distributed buffer resources | |
JP5970541B2 (ja) | 情報処理システム、管理サーバ群、および、サーバ管理プログラム | |
EP3087722B1 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
CN102970379A (zh) | 在多个服务器之间实现负载均衡的方法 | |
CN103001892B (zh) | 基于云计算的网络资源分配方法及系统 | |
EP1063831B1 (en) | Network status server, information distribution system, control method, and storage medium for storing control program | |
WO2006062623A1 (en) | Determining highest workloads for nodes in an overlay network | |
Yang et al. | A reinforcement learning based data storage and traffic management in information-centric data center networks | |
Tiwary et al. | CPS: a dynamic and distributed pricing policy in cyber foraging systems for fixed state cloudlets | |
JP2005092862A (ja) | 負荷分散方法及びクライアント・サーバシステム | |
US7835286B2 (en) | Dynamic multi-objective grid resources access | |
RU2586598C2 (ru) | Тиражирование данных | |
JP2009122981A (ja) | キャッシュ配置方法 | |
CN109617989A (zh) | 用于负载分配的方法、装置、系统和计算机可读介质 | |
CN104184673B (zh) | 基于即时通信业务的负载均衡方法和系统 | |
Ho et al. | Mobile intercloud system and objects transfer mechanism | |
Fu et al. | Data replica placement policy based on load balance in cloud storage system | |
Gupta et al. | A perusal of replication in content delivery network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |