(57)【要約】【課題】分散システムの処理効率を確実に向上させる。【解決手段】複数のノードとモジュール配置装置１５０がネットワーク１６０を介して接続されてなる分散システムにおいて、モジュール配置装置１５０における通信監視部１５２は、各注目モジュールの通信を監視し、履歴記憶部１５４は、通信監視部１５２の監視結果を履歴として記憶する。利用度算出部１５６は、履歴記憶部１５４に記憶された履歴を参照し、各注目モジュールの単位時間当たりの通信量を、通信先のモジュール毎に利用度として算出する。再配置部１５８は、注目モジュールと、該注目モジュールに対して通信量算出部により算出された各利用度のうちの最も大きい利用度を有する通信先のモジュールとが、同一のノードで稼働するようにモジュールの再配置を行う。【選択図】図２
2009169473.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを有する分散システムで稼動する複数のモジュールのうちの各注目モジュールに対して、該注目モジュールの単位時間当たりの通信量を、通信先のモジュール毎に算出する通信量算出部と、
前記注目モジュールと、該注目モジュールに対して前記通信量算出部により算出された各前記通信量のうちの最も大きい通信量を有する前記通信先のモジュールとが、同一のノードで稼働するようにモジュールの再配置を行う再配置部とを備えることを特徴とするモジュール配置装置。
【請求項２】
前記注目モジュールは、移動可能なモジュールであり、
前記再配置部は、再配置に際して、前記通信先のモジュールが稼動するノードに前記注目モジュールを移動することを特徴とする請求項１に記載のモジュール配置装置。
【請求項３】
複数のノードを有する分散システムで稼動する複数のモジュールのうちの各注目モジュールに対して、該注目モジュールの単位時間当たりの通信量を、通信先のモジュール毎に算出し、
前記注目モジュールと、該注目モジュールに対して算出された各前記通信量のうちの最も大きい通信量を有する前記通信先のモジュールとが、同一のノードで稼働するようにモジュールの再配置を行うことを特徴とするモジュール配置方法。
【請求項４】
前記注目モジュールは、移動可能なモジュールであり、
再配置に際して、前記通信先のモジュールが稼動するノードに前記注目モジュールを移動することを特徴とする請求項３に記載のモジュール配置方法。
【請求項５】
複数のノードを有する分散システムで稼動する複数のモジュールのうちの各注目モジュールに対して、該注目モジュールの単位時間当たりの通信量を、通信先のモジュール毎に算出し、
前記注目モジュールと、該注目モジュールに対して算出された各前記通信量のうちの最も大きい通信量を有する前記通信先のモジュールとが、同一のノードで稼働するようにモジュールの再配置を行う処理をコンピュータに実行せしめることを特徴とするプログラム。
【請求項６】
前記注目モジュールは、移動可能なモジュールであり、
再配置に際して、前記通信先のモジュールが稼動するノードに前記注目モジュールを移動することをコンピュータに実行せしめることを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モジュールの配置、具体的には分散システム上で稼働する複数のモジュールを配置する技術に関する。
【背景技術】
【０００２】
ネットワークに接続された複数のノードを利用して複雑な処理を行う分散コンピューティングが利用されている。図７は、典型的な分散コンピュータを行うシステム（以下分散システムという）１の模式図である。
【０００３】
図７に示すように、分散システム１において、ネットワーク５０を介して複数のノード（図示の例では、ノード１０、ノード２０、ノード３０、ノード４０の４つ）が接続されている。各ノードには１つ以上のモジュールが稼動している。
【０００４】
１つのモジュールは、他のモジュールを呼び出して使うことができ、自分と同一のノードにあるモジュール（以下ローカルモジュールという）については呼出しを直接に行い、他のノードにあるモジュール（以下リモートモジュールという）についてはネットワーク５０を介して呼出しを行う。例えば、ノード１０には、２つのモジュール（モジュール１１とモジュール１２）があり、モジュール１１にとって、モジュール１２はローカルモジュールであり、モジュール２１、モジュール３１、モジュール４１はリモートモジュールである。
【０００５】
このように、分散システム１の各ノードにおけるモジュールは、互いに呼び出して使用することができ、１つのシステムとして協働する。
【０００６】
分散システムは、１つの処理を複数の部分処理に分けてそれぞれのノードに実行させるため、リモートモジュールの呼出しが必ず発生する。リモートモジュールの呼出しが頻繁に起きると、ネットワークの負荷が増加し、分散システムの処理効率を下げてしまうという問題がある。
【０００７】
特許文献１（「００４３」、「００４４」）には、サービスを共有するシステムにおいて、効率アップを図る手法が開示されている。なお、特許文献１における「サービス」は、本明細書におけるモジュールに該当すると考えられるが、特許文献１の手法の説明に際しては、「サービス」の名称を使う。
【０００８】
この手法は、遠隔地のクライアントが当該サービスを利用した回数をカウントし、カウントした回数が所定の閾値に達したときに、サービスのコピーを当該クライアントに配備する。
【０００９】
この手法を図７に示す分散システム１に利用できると考えられる。例えば、モジュール１１によるモジュール２１の呼出回数が閾値に達したときに、モジュール２１をノード１０にコピーする。その後、モジュール２１がモジュール１１のローカルモジュールになり、モジュール１１がモジュール２１を呼び出す際に、ネットワークを経由しなくて済む。こうすることにより、ネットワークの負荷の減少ひいてはシステムの処理効率の向上を図る。
【特許文献１】特表２００４−５３３６８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、ネットワークの負荷の多少は、リモートモジュールの呼出回数にのみ依存するとは限らない。
【００１１】
一方、特許文献１の手法を分散システム１に適用した場合、リモートモジュールをコピーするか否かの判定は、システム管理者などにより設定された呼出回数の閾値に基づき、この閾値に達していなければ、リモートモジュールの当該ノードへのコピーがなされない。例えば、閾値が１００に設定されている場合、モジュール１１が短時間内でモジュール２１の呼出しを５０回行って、ネットワークに大きな負担をかけているとしても、モジュール１１にとってモジュール２１が相変わらずリモートモジュールであり、モジュール１１によるモジュール２１の呼出しは、引続きネットワークを経由する。このような場合、システムの効率向上を図ることができない。
【課題を解決するための手段】
【００１２】
本発明の一つの態様は、モジュール配置装置である。この装置は、通信量算出部と、再配置部を備える。
通信量算出部は、複数のノードを有する分散システムで稼動する複数のモジュールのうちの各注目モジュールに対して、該注目モジュールの単位時間当たりの通信量を、通信先のモジュール毎に算出する。
【００１３】
再配置部は、注目モジュールと、該注目モジュールに対して通信量算出部により算出された各通信量のうちの最も大きい通信量を有する通信先のモジュールとが、同一のノードで稼働するようにモジュールの再配置を行う。
【００１４】
なお、上記態様の装置を方法やプログラムとして置き換えて表現したものの、本発明の態様としては有効である。
【発明の効果】
【００１５】
本発明にかかる技術によれば、分散システムの処理効率を確実に向上させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。
図１は、本発明の実施の形態にかかる分散システム１００を示す。分散システム１００は、ノード１１０、ノード１２０、ノード１３０、ノード１４０、モジュール配置装置１５０を備え、各ノードとモジュール配置装置１５０はネットワーク１６０を介して接続されている。
【００１７】
ノード１１０にはモジュール１１１とモジュール１１２が稼動しており、ノード１２０にはモジュール１２１が稼動しており、ノード１３０にはモジュール１３１が稼動しており、ノード１４０にはモジュール１４１が稼動している。なお、図１において、４つのノードを示しているが、ノードの数、およびそれぞれのノードで稼動するモジュールの数は、図１が示す例に限られるものではない。
【００１８】
モジュール配置装置１５０は、分散システム１００における各ノードで稼動するモジュールの配置を調整するものであり、図２は、その構成を示す。
モジュール配置装置１５０は、ネットワークインタフェース１５１、通信監視部１５２、履歴記憶部１５４、利用度算出部１５６、再配置部１５８を有する。図２において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、プロセッサ、メモリ、そのほかの回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１９】
ネットワークインタフェース１５１は、モジュール配置装置１５０がネットワーク１６０に接続するためのインタフェースである。
【００２０】
通信監視部１５２は、ネットワークインタフェース１５１を介して、ネットワーク１６０上に各ノードで稼働するモジュールの通信状況を監視する。本実施の形態において、通信監視部１５２は、ノード間での移動が許可されたモジュールの通信状況のみを監視するものである。なお、ノード間での移動が許可されていないモジュールは、本実施の形態において、固定フラグが付加されている。また、例として、分散システム１００において、固定フラグが付加されていないモジュールは、モジュール１１２とモジュール１２１のみである。
【００２１】
通信監視部１５２は、稼動中のモジュールのうちの、固定フラグが付加されたモジュールに注目し、該モジュールが他のモジュールにより呼び出される度に、呼出しを行ったモジュール、呼出しを行ったモジュールが稼動するノード、呼出時刻、および該呼出しに伴った通信量を取得して、履歴記憶部１５４に出力して格納させる。なお、以下の説明において、呼出しを行ったモジュールと、呼出しがなされたモジュールをそれぞれ「呼出元モジュール」と「呼出先モジュール」という。
【００２２】
図３は、履歴記憶部１５４に記憶されたデータの例を示す。図示のように、時刻Ｔ１において、ノード１１０で稼働するモジュール１１２は、ノード１３０で稼働するモジュール１３１により呼び出され、呼出しに伴った両モジュール間の通信量がＰ１である。なお、モジュール１１２に対してモジュール１３１がリモートモジュールであるため、この呼出しに伴った通信はネットワーク１６０を介したものである。
【００２３】
また、時刻Ｔ２において、モジュール１１２は、同じくノード１１０で稼働するモジュール１１１により呼び出され、呼出しに伴った両モジュール間の通信量がＰ２である。なお、モジュール１１２に対してモジュール１１１がローカルモジュールであるため、この呼出しに伴った通信は、ネットワーク１６０を介さず、分散システム１００内部で行われたものである。
【００２４】
図４は、通信監視部１５２の処理を示すフローチャートである。通信監視部１５２は、分散システム１００におけるいずれかのモジュールが稼動すると（Ｓ１０）、該モジュールに固定フラグが付加されているか否かを確認する（Ｓ２０）。固定フラグが付加されたモジュールであれば、通信監視部１５２は、それについての監視を行わない（Ｓ１２：Ｙｅｓ）。一方、固定フラグが付加されていないモジュールであれば、通信監視部１５２は、それの通信を監視すると共に、監視結果を履歴記憶部１５４に出力する。これにより、履歴記憶部１５４に格納された履歴の追加がなされる（Ｓ１６）。
【００２５】
モジュール配置装置１５０の利用度算出部１５６は、履歴記憶部１５４に格納された図３に示す履歴を参照して、モジュール１１２とモジュール１２１のそれぞれの単位時間当たりの通信量を、呼出元モジュール毎に算出する。この単位時間当たりの通信量を、以下「利用度」という。
【００２６】
例えば、時刻Ｔ１から時刻Ｔ５の期間において、モジュール１１２に対するモジュール１３１の利用度は、「（Ｐ１＋Ｐ３＋Ｐ５）／（Ｔ５−Ｔ１）」であり、モジュール１１２に対するモジュール１１１の利用度は「Ｐ２／（Ｔ５−Ｔ１）」である。また、モジュール１２１に対するモジュール１４１の利用度が「Ｐ４／（Ｔ５−Ｔ１）」である。この期間において、呼出しを行っていない他のモジュールは、モジュール１１２とモジュール１２１の利用度がいずれも０となる。
【００２７】
なお、本実施の形態において、利用度算出部１５６が現在の時刻からどこまで履歴を遡って参照するかについては、設定可能であり、利用度算出部１５６は、設定された期間内において、注目モジュール、すなわちモジュール１１２とモジュール１２１について、呼出元モジュール毎の利用度を算出する。
【００２８】
再配置部１５８は、利用度算出部１５６が算出した利用度に基づいて、注目モジュールと、注目モジュールに対して最大の利用度を有するモジュールとが、同一のノードで稼働するように注目モジュールを移動する。
【００２９】
図３の例を用いて説明する。例えば、時刻Ｔ１と時刻Ｔ５間に、モジュール１１２に対して、モジュール１２１と、モジュール１３１と、モジュール１４１の利用度が「０」であるため、モジュール１１１の利用度がモジュール１３１の利用度より大きい場合、モジュール１１１の利用度が最大となる。この場合、モジュール１１２とモジュール１１１は同じくノード１１０で稼働するモジュールであるため、再配置部１５８は、モジュール１１２を移動しない。
【００３０】
一方、モジュール１３１の利用度がモジュール１１１の利用度より大きい場合、モジュール１３１の利用度が最大となる。この場合、再配置部１５８は、モジュール１３１が稼動するノード１３０にモジュール１１２を移動する。
図５は、モジュール１１２の移動後の分散システム１００を示す。図示のように、モジュール１１２がノード１３０に移動されている。
【００３１】
図６は、利用度算出部１５６と再配置部１５８の処理を示すフローチャートである。利用度算出部１５６は、履歴記憶部１５４に格納された履歴を参照して、注目モジュール毎に、各呼出元モジュールの利用度を算出して再配置部１５８に出力する（Ｓ２０）。再配置部１５８は、注目モジュール毎に、該注目モジュールに対する利用度が最も大きい呼出元モジュールを選出して、該呼出元モジュールと、注目モジュールとが同一ノードで稼働するかを確認する（Ｓ２２、Ｓ２４）。ノードが異なれば、再配置部１５８は、当該注目モジュールを、ステップＳ２２において選出した呼出元モジュールが稼動するノードに移動する（Ｓ２４：Ｎｏ、Ｓ２６）。一方、ステップＳ２２において選出した呼出元モジュールと、注目モジュールが同一のノードで稼働するものであれば（Ｓ２２：Ｙｅｓ）、再配置部１５８は、当該注目モジュールの移動をしない。
【００３２】
このように、本実施の形態の分散システム１００において、モジュール配置装置１５０は、移動が許可された呼出先モジュール毎に、各呼出元モジュールとの単位時間当たりの通信量である利用度を算出し、利用度が最も大きい呼出元モジュールと、当該呼出先モジュールとが異なるノードで稼働する場合に該呼出先モジュールを、利用度が最も大きい呼出元モジュールが稼動するノードに移動する。こうすることによって、ネットワークへの負荷に応じたモジュールの再配置ができるので、システムの処理効率を確実に高めることができる。
【００３３】
また、特許文献１の手法を分散システムに適用した場合に、呼出先モジュールを呼出元モジュールにコピーしている。このような手法では、分散システム上に元の呼出先モジュールと、コピーした呼出先モジュールとが稼動することになり、無駄が多い。それに対して、本実施の形態の分散システム１００におけるモジュール配置装置１５０は、再配置に際して呼出先モジュールを呼出元モジュールのノードに移動するようにしているので、上記無駄を省くことができる。
【００３４】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００３５】
例えば、本実施の形態において、他のモジュールにより呼び出されるモジュール、すなわち呼出先モジュールのみが移動可能な場合を例にしているが、移動が許可された呼出元モジュールがある分散システムに適用することができる。さらに、この場合、再配置に際して、呼出先モジュールと呼出元モジュールとが同一のノードで稼働するようになればよく、例えば呼出元モジュールを呼出先モジュールのノードに移動するようにしてもよい。
【００３６】
また、本実施の形態において、例として、モジュール１１２とモジュール１３１のような一対のモジュールが、片方が呼出先モジュールであり、他方が呼出モジュールであるようになっている。例えば、ＡモジュールとＢモジュールの１対のモジュールは互いに呼出しが生じうるシステムの場合には、ＡモジュールとＢモジュール間の通信は、ＡモジュールがＢモジュールを呼び出すときと、ＢモジュールがＡモジュールを呼び出すときのいずれにも発生する。本発明の技術は、このような場合にも適用することができ、どちらのモジュールの呼出しに起因する通信かに関係なく、ＡモジュールとＢモジュール間の通信を監視し、単位時間当たりの通信量をＡモジュールとＢモジュールの互いの利用度として算出すればよい。
【００３７】
また、本実施の形態において、モジュール配置装置１５０は、モジュールが稼動するノードとは別に設けられているが、モジュール配置装置１５０の機能をいずれかのノードに設け、該ノードによりモジュール配置装置１５０を兼ねるようにしてもよい。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態にかかる分散システムを示す図である。
【図２】図１に示す分散システムにおけるモジュール配置装置を示す図である。
【図３】図１に示す分散システムにおける履歴記憶部により記憶された履歴の例を示す図である。
【図４】図１に示す分散システムにおける通信監視部の処理を示すフローチャートである。
【図５】図２に示すモジュール配置装置による再配置後の分散システムを示す図である。
【図６】図２に示すモジュール配置装置の処理を示すフローチャートである。
【図７】典型的な分散システムの模式図である。
【符号の説明】
【００３９】
１  分散システム  １０  ノード
１１  モジュール  １２  モジュール
２０  ノード  ２１  モジュール
３０  ノード  ３１  モジュール
４０  ノード  ４１  モジュール
５０  ネットワーク  １００  分散システム
１１０  ノード  １１１  モジュール
１１２  モジュール  １２０  ノード
１２１  モジュール  １３０  ノード
１３１  モジュール  １４０  ノード
１４１  モジュール  １５０  モジュール配置装置
１５１  ネットワークインタフェース  １５２  通信監視部
１５４  履歴記憶部  １５６  利用度算出部
１５８  再配置部  １６０  ネットワーク
【図１】
2009169473.tif 000003
【図２】
2009169473.tif 000004
【図３】
2009169473.tif 000005
【図４】
2009169473.tif 000006
【図５】
2009169473.tif 000007
【図６】
2009169473.tif 000008
【図７】
2009169473.tif 000009