(57)【要約】【課題】複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行するパターンの変更回数を少なくする。【解決手段】現在のパターンにおいてモジュール群Ｚを実行するサーバ装置１でのメモリのリソース消費量が１０［ＭＢ］、モジュール群Ｙのみによるメモリのリソース消費量が３０［ＭＢ］の場合、サーバ装置１でモジュール群Ｙ、Ｚを実行するパターンでは、サーバ装置１でのメモリのリソース消費量は現在の１０［ＭＢ］よりも３０［ＭＢ］増え、４０［ＭＢ］になる。【選択図】図８
2016212765.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムにおいて、
１つの前記情報処理装置は、
現在の分散のパターンにおける前記各情報処理装置でのリソース消費量を取得する全体管理部と、
前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他のパターンにおける前記各情報処理装置のリソース消費量を計算するパターン判定部と
を備えることを特徴とする情報処理システム。
【請求項２】
前記パターン判定部は、
予め設定されたリソース消費量の条件を満たすパターンを選択し、前記複数のモジュール又はモジュール群を当該パターンで分散して実行させる
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
複数のモジュール又はモジュール群を分散して実行している各情報処理装置でのリソース消費量を取得する全体管理部と、
前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他の分散のパターンにおける前記各情報処理装置でのリソース消費量を計算するパターン判定部と
を備えることを特徴とする情報処理装置。
【請求項４】
複数の情報処理装置を備える情報処理システムの動作方法において、
１つの前記情報処理装置の全体管理部が、複数のモジュール又はモジュール群を分散して実行している前記各情報処理装置でのリソース消費量を取得し、
前記１つの情報処理装置のパターン判定部が、前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他の分散のパターンにおける前記各情報処理装置でのリソース消費量を計算する
ことを特徴とする情報処理システムの動作方法。
【請求項５】
前記パターン判定部が、予め設定されたリソース消費量の条件を満たすパターンを選択し、前記複数のモジュール又はモジュール群を当該パターンで分散して実行させる
ことを特徴とする請求項４記載の情報処理システムの動作方法。
【請求項６】
請求項１又は２記載の情報処理システムにおける前記１つの情報処理装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行するパターンの変更回数を少なくする技術に関する。
【背景技術】
【０００２】
従来においては、アプリケーションを構成する複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する情報処理システムが知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Messer, Greenberg, et.al, "Towards a Distributed Platform for Resource-Constrained Devices", Proceedings of the 22nd. International Conference on Distributed Computing Systems (ICDCS’02), 2002
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来の技術において情報処理装置は、自身のリソースのみを監視し、他の情報処理装置のリソースは監視しない。例えば、アプリケーションが実行されていて、ある情報処理装置でリソースが不足したとする。この場合、現在実行されているパターンが他のパターンに変更され、アプリケーションの実行が継続される。
【０００５】
しかし、そのパターンでも、リソースが不足する可能性がある。このようにして、パターンの変更回数が多くなるという問題がある。
【０００６】
本発明は、上記課題に鑑みなされたものであり、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行するパターンの変更回数を少なくする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、第１の本発明は、複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムにおいて、１つの前記情報処理装置は、現在の分散のパターンにおける前記各情報処理装置でのリソース消費量を取得する全体管理部と、前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他のパターンにおける前記各情報処理装置のリソース消費量を計算するパターン判定部とを備えることを特徴とする。
【０００８】
第２の本発明は、複数のモジュール又はモジュール群を分散して実行している各情報処理装置でのリソース消費量を取得する全体管理部と、前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他の分散のパターンにおける前記各情報処理装置でのリソース消費量を計算するパターン判定部とを備えることを特徴とする。
【０００９】
第３の本発明は、複数の情報処理装置を備える情報処理システムの動作方法において、１つの前記情報処理装置の全体管理部が、複数のモジュール又はモジュール群を分散して実行している前記各情報処理装置でのリソース消費量を取得し、前記１つの情報処理装置のパターン判定部が、前記各情報処理装置でのリソース消費量と前記各モジュール又はモジュール群のみによるリソース消費量とに基づいて、他の分散のパターンにおける前記各情報処理装置でのリソース消費量を計算することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行するパターンの変更回数を少なくできる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態に係わる情報処理システムの一例を示す図である。
【図２】アプリケーションの構成の一例を示す図である。
【図３】サーバ装置１の概略構成を示すブロック図である。
【図４】クライアント装置２の概略構成を示すブロック図である。
【図５】アプリＤＢ１８の内容の一例を示す図である。
【図６】パターン判定部１６に保持されるアプリケーション負荷表を示す図である。
【図７】全体管理部１５に保持されるスペック表を示す図である。
【図８】パターン判定部１６に保持されるパターン評価表を示す図である。
【図９】アプリケーション登録時のシーケンスを示す図である。
【図１０】アプリケーション実行後のシーケンスを示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
【００１３】
図１は、本実施の形態に係わる情報処理システムの一例を示す図である。
【００１４】
情報処理システムは、複数の情報処理装置を備え、図では、１つの情報処理装置としてサーバ装置１を示し、他の情報処理装置としてクライアント装置２を示す。なお、情報処理装置は３以上でもよく、この場合、情報処理システムは、例えば、１つのサーバ装置１と２以上のクライアント装置２を含む。サーバ装置１、クライアント装置２は互いに通信可能になっている。
【００１５】
本実施の形態では、アプリケーションを構成する複数のモジュール又はモジュール群（適宜、モジュール群と略記する）、ここではモジュール群Ｘ、Ｙ、Ｚを複数の情報処理装置、ここではサーバ装置１とクライアント装置２で分散して実行する場合について説明する。なお、モジュール群の数は３に限らず、また、情報処理装置の数は２に限らない。
【００１６】
図２は、アプリケーションの構成の一例を示す図である。
【００１７】
符号Ａ〜Ｋは、クラス、パッケージ又はモジュールを示す。符号Ｘ、Ｙ、Ｚはモジュール又はモジュール群を示す。Ｘ、Ｙ、Ｚは、１以上のクラス、パッケージ又はモジュールを含む。アプリケーションはＸ、Ｙ、Ｚのモジュール又はモジュール群で構成される。例えば，符号Ａ〜Ｋがモジュールを示す場合は，符号Ｘ、Ｙ、Ｚはモジュール群を示す。例えば、モジュールＡは、モジュールＢをインポートする。矢印は、そのような関係を示す。
【００１８】
図３は、サーバ装置１の概略構成を示すブロック図である。
【００１９】
サーバ装置１は、モジュール群の配信を受けるアプリ配信部１１、モジュール群を実行するアプリ実行部１２、リソース消費量を監視するリソース監視部１３、リソース消費量を通知するリソース通知部１４、サーバ装置全体を管理する全体管理部１５、パターンを切り替えるパターン判定部１６、アプリケーションを分割する分割部１７およびアプリケーションが記憶されるアプリＤＢ１８を備える。
【００２０】
図４は、クライアント装置２の概略構成を示すブロック図である。
【００２１】
クライアント装置２は、モジュール群の配信を受けるアプリ配信部２１、モジュール群を実行するアプリ実行部２２、リソース消費量を監視するリソース監視部２３およびリソース消費量を通知するリソース通知部２４を備える。
【００２２】
図５は、アプリＤＢ１８の内容の一例を示す図である。
【００２３】
アプリＤＢ１８には、モジュール群Ｘ、Ｙ、Ｚのバイナリやソースが記憶されている。
【００２４】
図６は、パターン判定部１６に保持されるアプリケーション負荷表を示す図である。
【００２５】
アプリケーション負荷表は、モジュール群Ｘのみによるメモリ、ＨＤＤ（ハードディスクドライブ）の２つのリソースのリソース消費量を記憶し、モジュール群Ｙ、Ｚについても同様にリソース消費量を記憶する。
【００２６】
図７は、全体管理部１５に保持されるスペック表を示す図である。
【００２７】
スペック表は、サーバ装置１のメモリ、ＨＤＤにつき、全体量と使用率とこれらの更新日を記憶する。また、全体管理部１５は、他の情報処理装置、つまり、本例ではクライアント装置２についてもスペック表を保持する。
【００２８】
図８は、パターン判定部１６に保持されるパターン評価表を示す図である。
【００２９】
パターン評価表は、モジュール群Ｘ、Ｙ、Ｚをサーバ装置１とクライアント装置２で分散して実行する６パターンにつき、サーバ装置１でどのモジュール群が実行されるか、クライアント装置２でどのモジュール群が実行されるか、サーバ装置１でのメモリ、ＨＤＤのリソース使用量、クライアント装置２でのメモリ、ＨＤＤのリソース使用量を記憶する。矢印は、モジュール群間での連携動作を示す。
【００３０】
図９は、アプリケーション登録時のシーケンスを示す図である。
【００３１】
アプリＤＢ１８にアプリケーションが登録される（Ｓ１）と、分割部１７は、アプリケーションを解析し、複数のモジュール群Ｘ、Ｙ、Ｚに分割した後、アプリＤＢ１８にモジュール群Ｘ、Ｙ、Ｚを登録する。
【００３２】
アプリＤＢ１８にモジュール群Ｘ、Ｙ、Ｚが登録されると、パターン判定部１６は、図８に示す６パターンをパターン評価表に登録する（Ｓ２）。
【００３３】
また、パターン判定部１６は、モジュール群Ｘ、Ｙ、Ｚにつき、１つモジュール群のみによるメモリ、ＨＤＤのリソース消費量を計算し、アプリケーション負荷表に記憶させる（Ｓ３）。
【００３４】
例えば、当初は、アプリケーションをパターン１で分散して実行する場合、分割部１７は、アプリＤＢ１８からモジュール群Ｘ、Ｙ、Ｚを取得した後、（Ｓ４）、パターン判定部１６に送信する（Ｓ５）。
【００３５】
パターン判定部１６は、アプリ配信部１１にモジュール群Ｚを、クライアント装置２のアプリ配信部２１にモジュール群Ｘ、Ｙをそれぞれ送信する（Ｓ６）。
【００３６】
アプリ配信部１１は、モジュール群Ｚを受信し、これをアプリ実行部１２が実行するように設定する（Ｓ７）。
【００３７】
アプリ配信部２１は、モジュール群Ｘ、Ｙを受信し、これをアプリ実行部２２が実行するように設定する（Ｓ８）。
【００３８】
図１０は、アプリケーション実行後のシーケンスを示す図である。
【００３９】
リソース監視部１３は、サーバ装置１におけるメモリ、ＨＤＤのリソース消費量をアプリ実行部１２から取得し（Ｓ１１）、リソース消費量をリソース通知部１４に定期的に通知する（Ｓ１３）。リソース通知部１４は、リソース消費量を全体管理部１５に通知する（Ｓ１５）。リソースが不足している場合、リソース消費量とともに、パターン変更依頼を送信する（Ｓ１５）。
【００４０】
リソース監視部２３は、クライアント装置２におけるメモリ、ＨＤＤのリソース消費量をアプリ実行部２２から取得し（Ｓ２１）、リソース消費量をリソース通知部２４に定期的に通知する（Ｓ２３）。リソース通知部２４は、リソース消費量をサーバ装置１の全体管理部１５に通知する（Ｓ２５）。リソースが不足している場合、リソース消費量とともに、パターン変更依頼を送信する（Ｓ２５）。
【００４１】
パターン判定部１６は、各リソース消費量を全体管理部１５から取得し（Ｓ１７）、パターン評価表における現在のパターンの場所に記憶させる（Ｓ３１）。
【００４２】
また、パターン判定部１６は、パターン変更依頼を全体管理部１５から取得し（Ｓ３２）、可能であれば，現在のパターン以外のパターンから１つを選択し（Ｓ３３）、分割部１７を介して、アプリＤＢ１８からモジュール群Ｘ、Ｙ、Ｚを取得する（Ｓ３５）。パターンの選択方法については後述する。
【００４３】
パターン判定部１６は、可能でなければ、全体管理部１５から各情報処理装置のスペック表を取得し，分割部１７に分割依頼を行う（Ｓ３５）。分割部１７はスペック表とアプリケーションを解析し，アプリケーションを現在とは別の構成のモジュール群Ｘ、Ｙ、Ｚに分割し（Ｓ３７）、アプリＤＢ１８にそのモジュール群を登録し、モジュール群をパターン判定部１６に送信する（Ｓ３９）。パターン判定部１６は、また、パターン評価表を更新する。
【００４４】
パターン判定部１６は、選択されたパターンに応じて、アプリ配信部１１，クライアント装置２のアプリ配信部２１にモジュール群を送信する（Ｓ４１）。
【００４５】
アプリ配信部１１は、モジュール群を受信し、これをアプリ実行部１２が実行するように設定する（Ｓ４３）。
【００４６】
アプリ配信部２１は、モジュール群を受信し、これをアプリ実行部２２が実行するように設定する（Ｓ２９）。
【００４７】
次に、パターンの選択について説明する。
【００４８】
パターン判定部１６は、まず、現在のパターン以外の各パターンにつき、パターンを実行した場合における、サーバ装置１とクライアント装置２でのメモリ、ＨＤＤのリソース消費量を計算し、パターン評価表に記憶させる。
【００４９】
例えば、現在のパターンにおいてモジュール群Ｚを実行するサーバ装置１でのメモリのリソース消費量が１０［ＭＢ］、モジュール群Ｙのみによるメモリのリソース消費量が３０［ＭＢ］の場合、サーバ装置１でモジュール群Ｙ、Ｚを実行するパターンでは、サーバ装置１でのメモリのリソース消費量は現在の１０［ＭＢ］よりも３０［ＭＢ］増え、４０［ＭＢ］になる。
【００５０】
パターン判定部１６は、このような計算を各パターン、サーバ装置１およびクライアント装置２、メモリおよびＨＤＤについて行い、パターン評価表に記憶させる。
【００５１】
このようにリソース消費量が各パターンについて計算されたなら、パターン判定部１６は、予め設定されたリソース消費量の条件を満たすパターンを選択する。
【００５２】
例えば、パターン判定部１６は、サーバ装置１におけるメモリのリソース消費量が３０［ＭＢ］以下、クライアント装置２におけるメモリのリソース消費量が６０［ＭＢ］以下、クライアント装置２におけるＨＤＤのリソース消費量が１０［ＭＢ］以下となるパターンを選択する。この条件を満たすパターンがあったなら、モジュール群Ｘ、Ｙ、Ｚは、現在のパターンとは別のパターンで実行されることとなる。
【００５３】
次に、パターンの切り替えの一例を説明する。
【００５４】
図８のパターン評価表において、現在のパターンはパターン１であるとする。
【００５５】
例えば、クライアント装置２でメモリ、ＨＤＤが不足し、パターン２〜６についてのリソース消費量が、図８のようにパターン評価表に記憶されたこととする。
【００５６】
サーバ装置１におけるメモリのリソース消費量が３０［ＭＢ］以下、クライアント装置２におけるメモリのリソース消費量が６０［ＭＢ］以下、ＨＤＤのリソース消費量が１０［ＭＢ］以下の条件を満たすパターンは、パターン３である。
【００５７】
例えば、ここで、パターン２や５を選択してしまうと、サーバ装置１でのメモリのリソース消費量が３０［ＭＢ］より多くなるので、サーバ装置１でメモリが不足する可能性が高い。すなわち、パターンの変更が再度必要となる可能性が高い。
【００５８】
しかし、本実施の形態では、パターン３が選択される。パターン３におけるサーバ装置１でのメモリのリソース消費量は、パターン２や５の場合のリソース消費量よりも少ないので、パターンの変更が再度必要となる可能性を低くすることができる。
【００５９】
以上のように、本実施の形態によれば、現在の分散のパターン以外のパターンにおける各情報処理装置のリソース消費量を計算するので、パターンの変更回数を少なくできる。
【００６０】
なお、本実施の形態ではサーバ装置１として例示した情報処理装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００６１】
１  サーバ装置
２  クライアント装置
１１、２１  アプリ配信部
１２、２２  アプリ実行部
１３、２３  リソース監視部
１４、２４  リソース通知部
１５  全体管理部
１６  パターン判定部
１７  分割部
１８  アプリＤＢ
Ｘ、Ｙ、Ｚ  モジュール又はモジュール群
【図１】
2016212765.tif 000003
【図２】
2016212765.tif 000004
【図３】
2016212765.tif 000005
【図４】
2016212765.tif 000006
【図５】
2016212765.tif 000007
【図６】
2016212765.tif 000008
【図７】
2016212765.tif 000009
【図８】
2016212765.tif 000010
【図９】
2016212765.tif 000011
【図１０】
2016212765.tif 000012