(57)【要約】【課題】ネットワーク負荷及び計算機負荷の両面を考慮し、分散を動的に行う分散オブジェクトの動的配置制御方法及び管理法、それを実現するシステムを提供する。【解決手段】１つ以上のアプリケーション、プログラム及び処理に必要なデータ若しくはデータベースを持つ、に対し、それぞれの機能を実現するために必要な部品を受け取り可能な計算機がネットワークにより接続された環境で、アプリケーションの通信量と計算機負荷を測定し、指定時間毎に、アプリケーションを選択し、計算機リソースの割り当て変更又は新しく複製を適当な場所に配置又は不必要ならば削除し又は複製元との整合性を取り、計算機負荷及びネットワーク負荷を均等化する。制御システムはネットワーク通信処理部、ネットワーク負荷測定部、計算プログラム、データ若しくはデータベース、バージョン管理部、近傍アプリケーション情報管理部、計算負荷測定部及び制御部を持つ。【選択図】　図１
2004126896.tif 000002
【特許請求の範囲】
【請求項１】
プログラム及び処理に必要なデータ若しくはデータベースを持つ１つ以上のアプリケーションに対し、それぞれの機能を実現するために必要な部品を受け取り可能な計算機がネットワークにより接続された環境で、アプリケーションの通信量と計算機負荷を測定し、指定時間毎に、アプリケーションを選択し、必要であれば新しく複製を適当な場所に配置又は不必要ならば自身の削除を行い又は複製元との整合性を取り、自律的に計算機負荷及びネットワーク負荷を均等化することを特徴とする方法。
【請求項２】
クライアント若しくは他のアプリケーションとの通信を処理制御を行うネットワーク通信処理部、ネットワーク通信処理部を監視して負荷を測定し閾値を越えた場合に制御部に通知するネットワーク負荷測定部、クライアントからの要求を満たして計算する計算プログラム、計算処理に必要なデータ若しくはデータベース、自身のバージョンを管理して配置制御要求時に複製もとのバージョンと比較して異なる場合には調整をするバージョン管理部、自身の複製元又は複製先の近傍のアプリケーションに関する情報を扱う近傍アプリケーション情報管理部、計算機のリソースを監視し、アプリケーション毎の計算に使用される　ＣＰＵ　の負荷、記憶装置の使用量などを測定し、閾値を越えた場合に制御部に通知する計算負荷測定部及び一定時間毎若しくは配置制御要求を受けて動的にアプリケーションの複製、削除、使用リソース割り当ての変更を行う制御部を持つことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークにつながれたアプリケーションの導入が可能な複数の計算機が存在し、アプリケーションに対してクライアントが要求を出す環境において、計算機とネットワークの負荷を自律分散させるための手法及びそれを実現するシステムに関する。
【０００２】
【従来の技術】
複数のオブジェクトを複数の計算機に最適分散するという手法は特開２０００−２６８００４「分散計算機環境におけるオブジェクトの最適分散配置方法」で開示されているが、集中管理の形式を取るために管理するための機器又はサーバーが必要になる。またその為小さいオブジェクトが大量に通信を行う環境では性能が十分に発揮できない可能性がある。
アプリケーションをネットワーク上の機器に分散配置し、負荷を減らすという方法としては、特開２０００−２４２６０９「分散オブジェクト動的配置制御方法及び装置」に開示されている。この手法では計算機の負荷は　ＣＰＵのみを対象とし、動的に配置するものもアプリケーションの一部としている。その為に計算機の負荷の判定やアプリケーション実行時の余計な通信によるネットワーク負荷が起き、十分に性能が得られない可能性がある。またオブジェクト自身の更新に関して何ら考慮されていないことからオブジェクトの整合性が得られない可能性がある。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、ネットワークでつながる計算機を利用し、計算機の負荷の分散とネットワークの負荷を軽減するために、整合性の取れたバージョンのアプリケーションの自律複製分散を行うことが可能な手法及びシステムを提供することにある。
【０００４】
【課題を解決するための手段】
本発明のアプリケーション自律分散配置方法は、プログラム及び処理に必要なデータ若しくはデータベースを持つ１つ以上のアプリケーションに対し、それぞれの機能を実現するために必要なアプリケーションの部品を受け取り可能な計算機がネットワークにより接続された環境で、アプリケーションの通信量と計算機負荷を測定し、指定時間毎に、アプリケーションを選択し、必要であれば新しく複製を適当な場所に配置又は不必要ならば自身の削除を行い又は複製元との整合性を取り、自律的に計算機負荷及びネットワーク負荷を均等化することを特徴とする。
本発明手法を用いると、Ｊａｖａ　などのマルチプラットフォームで動作可能なプログラミング言語若しくはオブジェクトの受け渡しが可能なプラットフォームで開発されたアプリケーションプログラムを　ＯＳ　非依存で計算機に分散させることが可能であり、ネットワークの負荷及び計算機負荷の軽減させ、遊休リソースを有効に活用することが実現可能である。
本発明のアプリケーション自律分散配置システムは、クライアント若しくは他のアプリケーションと通信を処理制御を行うネットワーク通信処理部、ネットワーク通信処理部を監視して負荷を測定し閾値を越えた場合に制御部に通知するネットワーク負荷測定部、クライアントからの要求を満たして計算する計算プログラム、計算処理に必要なデータ若しくはデータベース、自身のバージョンを管理して配置制御要求時に複製もとのバージョンと比較して異なる場合には調整するバージョン管理部、自身の複製元又は複製先の近傍のアプリケーションに関する情報を扱う近傍アプリケーション情報管理部、計算機のリソースを監視し、アプリケーション毎の計算に使用される　ＣＰＵ　の負荷、記憶装置の使用量などを測定し、閾値を越えた場合に制御部に通知する計算負荷測定部及び一定時間毎若しくは配置制御要求を受けて動的にアプリケーションの複製、削除、使用リソース割り当ての変更を行う制御部を持つ。
本発明システムは、バージョン管理を行うことにより、ある複製若しくは複製元のアプリケーションが更新を受けた場合には全ての複製又は複製元アプリケーションに反映することが可能である。
本発明システムはアプリケーションの削除も行うために複製が不必要になった場合にそれを削除して、計算機のリソースを開放することが可能である。
本発明手法は近傍のアプリケーションの情報を持つだけで動作可能であり、集中管理を行う為の余計なネットワークトラフィック及び計算機負荷を軽減することが可能である。
【０００５】
【発明の実施の形態】
以下、本発明の実施の１形態を図面を用いて説明する。尚簡略のために、本明細書中では以下に述べる発明の実施形態に対して単に「本実施例」と呼び、本発明のアプリケーション自律分散配置システムを単に「本システム」と呼ぶことにする。
図１、図２、図３と図４を用いて本実施例の概略を説明する。
図１は本実施例での本システムのブロック概要図であり、１にはアプリケーションが格納され、２においてアプリケーションへの要求の受け付け又は返信更にネットワーク負荷測定を行い外部との通信量が閾値を超えて過負荷になった場合制御部７へ通知を行い、３の部分は４のＯＳが提供する計算機リソースの情報を得て計算機の負荷測定を行い過負荷になった場合には制御部７へ通知を行い、５は６の情報を元にアプリケーションの複製元を対象にアプリケーションのバージョンの管理を行い、７は本システムの制御を行う。
図２は本実施例の本システムの制御部のフローチャートで、本システム制御部は呼び出された形態判定し（ステップＳ１）、待機時間変更命令の場合には待機時間の設定を変更し、待機状態に戻る。
待機時間終了の形態に判定された場合、次にアプリケーションのバージョンを自身の複製元であるアプリケーションのバージョンと比較し判定を行う（ステップＳ２）。複製元が自身のアプリケーションよりも上位のバージョンであった場合は複製元から複製し、アプリケーションのバージョンを上げる。複製元が自身のアプリケーションよりも下位のバージョンであった場合は複製元へ自身を複製し、複製元のアプリケーションのバージョンを上げる。
次に負荷超過状態の判定を行い（ステップＳ５）、計算機負荷超過の場合は最も計算機のリソースを使用したアプリケーションを制御対象として選択し（ステップＳ７）、ネットワーク負荷超過の場合には最もネットワーク通信量の多いアプリケーションを制御の対象として選択し（ステップＳ８）、負荷超過を起こしていない場合はネットワークと計算機に対する負荷の下限閾値を超えたアプリケーションを探索する。
負荷超過した場合には次に選択アプリケーションのネットワーク通信量の分布を調べ、最も通信を密にした計算機を複製先対象として選択する（ステップＳ９）。更に選択対象の計算機がアプリケーションの複製元であるかを判定し（ステップＳ１１）、もし複製元以外の計算機であった場合は選択アプリケーションを選択計算機に複製配置し（ステップＳ１３）、選択計算機が複製元計算機だった場合は自身のアプリケーションを削除を行い（ステップＳ１４）、本システムの制御部は待機状態に移る。
ネットワークと計算機の負荷下限閾値を越えたアプリケーションが存在した場合、近傍に選択したアプリケーションと同じ複製物が存在する数をカウントする（ステップＳ１２）。数が１だった場合には現在のアプリケーションを破棄し、本システムの制御部は待機状態に移る（ステップＳ１４）。数が２つ以上、若しくは０であった場合はそのまま本システム制御部はアプリケーション制御を行わずに待機状態に移る。
ネットワークと計算機の負荷の上限、下限双方の閾値を越えたアプリケーションが存在しなかった場合は本システム制御部はアプリケーション制御動作を行わずに待機状態に移る。
図３は本実施例でシステムの動作をさせるネットワーク構成図であり、その説明をする。このネットワークは８つの計算機Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈから構成されている。各計算機は共にアプリケーションを受け入れるシステムが搭載されており、アプリケーションサーバーとしてだけではなく、クライアントとしても動作する。各計算機の能力は一定する。計算機のリソースは　ＣＰＵ　と記憶装置で計算機を作動させる以外の能力をそれぞれ１００として換算する。またネットワークの回線も全て同性能とし、その転送能力を１００とする。各能力値に対して閾値は下限が２０、上限が９０とする。
図３の各計算機の中に表記されているａ１、ａ２、ａ３　は本実施例ではそれぞれ個別のアプリケーションを示す。本実施例の図３では計算機Ｃにａ１が、Ｄにａ１とａ２が、Ｅにａ３が導入されている。各アプリケーションが計算機、負荷の表記は「ＣＰＵ負荷／記憶装置負荷」とする、とネットワークに対する負荷はそれぞれａ１が　５／５と２０、ａ２が　１０／１５　と５、ａ３が２０／１０と５とする。また各アプリケーションのバージョンの変更は成されていないものとする。
本実施例の図において矢印とその下の表記はそのネットワークの回線を通り、単位時間にどのアプリケーションに何回要求が送られたかをあらわしている。計算機ＡとＣとのエッジでは単位時間にａ１アプリケーションを１回、ａ２アプリケーションを２回呼んでいることを示す。
本実施例の図において計算機間のエッジはネットワークを表し、（）で囲われた値はそのエッジにかかるネットワーク負荷の値を表す。また各計算機の下に表記される（）で囲われた値は本実施例のアプリケーションが計算機にかかっている負荷の値を表す。
次に図３の本実施例の制御動作を説明する。計算機Ａからアプリケーションを実行することにより計算機ＡＣ間とＣＤ間とＤＥ間のネットワーク、計算機ＣとＥに負荷をかけることになる。同様に計算機Ｂは計算機ＢＣ間とＣＤ間とＤＥ間のネットワーク、計算機ＤとＥに負荷をかけ、計算機Ｆは計算機ＥＦ間のネットワークと計算機Ｅに負荷をかけ、計算機Ｇは計算機ＥＧ間とＤＥ間のネットワークと計算機ＤとＥに負荷をかけ、計算機Ｈは計算機ＥＨ間とＤＥ間のネットワークと計算機ＤとＥに負荷をかけることになる。
計算機Ｃでの動作はアプリケーションａ１にバージョンの更新が成されていないことネットワークとリソースに対しても過負荷なアプリケーションは存在しない。アプリケーションａ１は負荷閾値の下限を越え、計算機Ｄにのみ複製をもっている。このことから計算機Ｃはアプリケーションａ１を削除して待機状態に入る。
計算機Ｄでの動作はアプリケーションａ１、ａ２ともにバージョンの更新が成されていないことから負荷超過の確認に移る。まず計算機負荷の超過が起こっており、アプリケーションａ２が（６０／６０）の負荷をかけ、計算機Ｃの経路から最も良く呼び出されていることからアプリケーションａ２を計算機Ｃに複製配置する。また計算機ＤＥ間のネットワークの負荷超過が起こっているおり、アプリケーションａ１が８０で最も負荷をかけていることからアプリケーションａ１を計算機Ｅに複製配置する。
計算機Ｅでの動作はアプリケーションａ３にバージョンの更新が成されていないことから負荷超過の確認に移る。まず計算機負荷の超過が起こっており、アプリケーションａ３が（１００／５０）の負荷をかけ、計算機ＤとＦから最も良く呼び出されていることから計算機ＤとＦにアプリケーションａ３の複製配置を行う。また計算機ＤＥ間のネットワーク負荷が（９５）で閾値を超えているが、アプリケーションａ３によるものではないので操作は行わない。計算機ＥとＦＧＨ間でのネットワーク負荷も超過していおり、アプリケーションａ３を最も呼び出しているのは計算機Ｆであるが、既に複製が行われているので再度複製は行わない。
図４に本システムの動作後の分散配置図を示す。この図で示すように本発明により再分散されたことによりネットワーク、計算機ともに負荷が軽減し、負荷が均等化している。計算機Ｆはネットワークを介さずともアプリケーションａ３を実行できるためにネットワークに負荷をかけず、自身の計算機リソースを消費して要求を満たしている。
【０００６】
【発明の効果】
本発明によれば、実行場所を問わないアプリケーションを本システムの実行環境を用意した計算機のネットワークの中に分散配置を行い、その分散配置はネットワークと計算機の負荷を均等化するように自律して行われ、ネットワークと計算機のリソースを有効に利用し、ネットワークに繋がれたシステム全体としてアプリケーション実行性能を向上させることができる。
【図面の簡単な説明】
【図１】実施形態の分散処理を行うシステムの構成図である。
【図２】実施形態のシステムの処理の流れを示すフローチャートである。
【図３】実施形態の説明を行うためのネットワーク構成例を示す図である。
【図４】図３のネットワーク構成からアプリケーション分散配置が行われた後の構成を示す図である。
【符号の説明】
Ａ〜Ｈ　　　　計算機
ａ１〜ａ３　　アプリケーション
（ｘｘ）　　ネットワークの負荷値
（ｘｘ／ｙｙ）　　計算機の負荷値
ａｘ：ｙ　アプリケーションａｘの呼び出し回数　ｙ。
【図１】
2004126896.tif 000003
【図２】
2004126896.tif 000004
【図３】
2004126896.tif 000005
【図４】
2004126896.tif 000006