(57)【要約】【課題】複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する場合の処理時間を短くする。【解決手段】現在の分散のパターンがパターン１の場合、各パターン２〜６について、そのパターンにおける情報処理装置間でのネットワーク遅延値を計算し、最小のネットワーク遅延値「４」に対応するパターン６でモジュール群Ｘ、Ｙ、Ｚを実行させる。【選択図】図７
2016212764.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムにおいて、
１つの前記情報処理装置は、
現在の分散のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させるパターン判定部
を備えることを特徴とする情報処理システム。
【請求項２】
前記ネットワーク遅延値は、
【数１】
2016212764.tif 000008
のＬである
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記ネットワーク遅延値は、
【数２】
2016212764.tif 000009
のＬである
ことを特徴とする請求項１記載の情報処理システム。
【請求項４】
前記ネットワーク遅延値は、
【数３】
2016212764.tif 000010
のＬである
ことを特徴とする請求項１記載の情報処理システム。
【請求項５】
前記ネットワーク遅延値は、
【数４】
2016212764.tif 000011
のＬである
ことを特徴とする請求項１記載の情報処理システム。
【請求項６】
複数の情報処理装置が複数のモジュール又はモジュール群を分散して実行する現在のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させるパターン判定部
を備えることを特徴とする情報処理装置。
【請求項７】
複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムの動作方法であって、
１つの前記情報処理装置が、現在の分散のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させる
ことを特徴とする情報処理システムの動作方法。
【請求項８】
請求項１ないし５のいずれかに記載の情報処理システムにおける前記１つの情報処理装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する場合の処理時間を短くする技術に関する。
【背景技術】
【０００２】
従来においては、アプリケーションを構成する複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する情報処理システムが知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Towards a Distributed Platform for Resource-Constrained DevicesAlan Messer, Ira Greenberg, Philippe Bernadat, Dejan Milojicic, Deqing Chen, T.J. Giuli,
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術においては、情報処理装置間のネットワーク遅延を考慮しておらず、処理時間が長くなることが問題であった。
【０００５】
本発明は、上記課題に鑑みなされたものであり、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する場合の処理時間を短くする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、第１の本発明は、複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムにおいて、１つの前記情報処理装置は、
現在の分散のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させるパターン判定部を備えることを特徴とする。
【０００７】
第２の本発明は、複数の情報処理装置が複数のモジュール又はモジュール群を分散して実行する現在のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させるパターン判定部を備えることを特徴とする。
【０００８】
第３の本発明は、複数のモジュール又はモジュール群を分散して実行する複数の情報処理装置を備える情報処理システムの動作方法であって、１つの前記情報処理装置が、現在の分散のパターン以外の各パターンについて、当該パターンにおける情報処理装置間でのネットワーク遅延値を計算し、前記複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のモジュール又はモジュール群を複数の情報処理装置で分散して実行する場合の処理時間を短くできる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態に係わる情報処理システムの一例を示す図である。
【図２】アプリケーションの構成の一例を示す図である。
【図３】サーバ装置１の概略構成を示すブロック図である。
【図４】クライアント装置２の概略構成を示すブロック図である。
【図５】アプリＤＢ１７の内容の一例を示す図である。
【図６】パターン判定部１５に保持されるアプリケーション負荷表を示す図である。
【図７】パターン判定部１５に保持されるパターン評価表を示す図である。
【図８】アプリケーション登録時のシーケンスを示す図である。
【図９】アプリケーション実行後のシーケンスを示す図である。
【図１０】メソッドの呼び出しの一例を示す図である。
【図１１】ネットワーク遅延値の計算方法３、４の説明補足図である。
【図１２】パターンを選択する条件による選択結果の違いを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。
【００１２】
図１は、本実施の形態に係わる情報処理システムの一例を示す図である。
【００１３】
情報処理システムは、複数の情報処理装置を備え、図では、１つの情報処理装置としてサーバ装置１を示し、他の情報処理装置としてクライアント装置２を示す。なお、情報処理装置は３以上でもよく、この場合、情報処理システムは、例えば、１つのサーバ装置１と２以上のクライアント装置２を含む。サーバ装置１、クライアント装置２は互いに通信可能になっている。
【００１４】
本実施の形態では、アプリケーションを構成する複数のモジュール又はモジュール群（適宜、モジュール群と略記する）、ここではモジュール群Ｘ、Ｙ、Ｚを複数の情報処理装置、ここではサーバ装置１とクライアント装置２で、又は、サーバ装置１とクライアント装置２と図示しない別のクライアント装置で分散して実行する場合について説明する。なお、モジュール群の数は３に限らず、また、情報処理装置の数は２、３に限らない。
【００１５】
図２は、アプリケーションの構成の一例を示す図である。
【００１６】
符号Ａ〜Ｋは、クラス、パッケージ又はモジュールを示す。符号Ｘ、Ｙ、Ｚはモジュール又はモジュール群を示す。Ｘ、Ｙ、Ｚは、１以上のクラス、パッケージ又はモジュールを含む。アプリケーションはＸ、Ｙ、Ｚのモジュール又はモジュール群で構成される。例えば，符号Ａ〜Ｋがモジュールを示す場合は，符号Ｘ、Ｙ、Ｚはモジュール群を示す。例えば、モジュールＡは、モジュールＢをインポートする。矢印は、そのような関係を示す。
【００１７】
図３は、サーバ装置１の概略構成を示すブロック図である。
【００１８】
サーバ装置１は、モジュール群の配信を受けるアプリ配信部１１、モジュール群を実行するアプリ実行部１２、リソース消費量を監視するリソース監視部１３、パターン変更依頼を送信するパターン変更依頼部１４、パターンを切り替えるパターン判定部１５、アプリケーションを分割する分割部１６およびアプリケーションが記憶されるアプリＤＢ１７を備える。
【００１９】
図４は、クライアント装置２の概略構成を示すブロック図である。後述のクライアント装置３も同様の構成である。
【００２０】
クライアント装置２は、モジュール群の配信を受けるアプリ配信部２１、モジュール群を実行するアプリ実行部２２、リソース消費量を監視するリソース監視部２３およびパターン変更依頼を送信するパターン変更依頼部２４を備える。
【００２１】
図５は、アプリＤＢ１７の内容の一例を示す図である。
【００２２】
アプリＤＢ１７には、モジュール群Ｘ、Ｙ、Ｚのバイナリやソースが記憶されている。
【００２３】
図６は、パターン判定部１５に保持されるアプリケーション負荷表を示す図である。
【００２４】
アプリケーション負荷表は、モジュール群Ｘのみによるメモリ、ＨＤＤ（ハードディスクドライブ）の２つのリソースのリソース消費量を記憶し、モジュール群Ｙ、Ｚについても同様にリソース消費量を記憶する。
【００２５】
図７は、パターン判定部１５に保持されるパターン評価表を示す図である。
【００２６】
パターン評価表は、モジュール群Ａ、Ｂ、Ｃをサーバ装置１とクライアント装置２で分散して実行する６パターンにつき、サーバ装置１でどのモジュール群が実行されるか、クライアント装置２でどのモジュール群が実行されるか、サーバ装置１でのメモリ、ＨＤＤのリソース使用量、クライアント装置２でのメモリ、ＨＤＤのリソース使用量、ネットワーク遅延値を記憶する。矢印は、モジュール群間での呼び出しを示す。
【００２７】
図８は、アプリケーション登録時のシーケンスを示す図である。
【００２８】
アプリＤＢ１７にアプリケーションが登録される（Ｓ１）と、分割部１６は、アプリケーションを解析し、複数のモジュール群Ｘ、Ｙ、Ｚに分割した後、アプリＤＢ１７にモジュール群Ｘ、Ｙ、Ｚを登録する。
【００２９】
アプリＤＢ１７にモジュール群Ｘ、Ｙ、Ｚが登録されると、パターン判定部１５は、図７に示す６パターンをパターン評価表に登録する（Ｓ２）。
【００３０】
また、パターン判定部１５は、モジュール群Ｘ、Ｙ、Ｚにつき、１つモジュール群のみによるメモリ、ＨＤＤのリソース消費量を計算し、アプリケーション負荷表に記憶させる（Ｓ３）。
【００３１】
例えば、当初は、アプリケーションをパターン１で分散して実行する場合、分割部１６は、アプリＤＢ１７からモジュール群Ｘ、Ｙ、Ｚを取得した後、（Ｓ４）、パターン判定部１５に送信する（Ｓ５）。
【００３２】
パターン判定部１５は、アプリ配信部１１にモジュール群Ｚを、クライアント装置２のアプリ配信部２１にモジュール群Ｘ、Ｙをそれぞれ送信する（Ｓ６）。
【００３３】
アプリ配信部１１は、モジュール群Ｚを受信し、これをアプリ実行部１２が実行するように設定する（Ｓ７）。
【００３４】
アプリ配信部２１は、モジュール群Ｘ、Ｙを受信し、これをアプリ実行部２２が実行するように設定する（Ｓ８）。
【００３５】
図９は、アプリケーション実行後のシーケンスを示す図である。
【００３６】
リソース監視部１３は、サーバ装置１におけるメモリ、ＨＤＤのリソース消費量をアプリ実行部１２から取得し（Ｓ１１）、リソース消費量をパターン変更依頼部１４に通知する（Ｓ１３）。パターン変更依頼部１４は、リソースが不足している場合、パターン判定部１５にパターン変更依頼を送信する（Ｓ１５）。
【００３７】
リソース監視部２３は、クライアント装置２におけるメモリ、ＨＤＤのリソース消費量をアプリ実行部２２から取得し（Ｓ２１）、リソース消費量をパターン変更依頼部２４に通知する（Ｓ２３）。パターン変更依頼部２４は、リソースが不足している場合、サーバ装置１のパターン判定部１５にパターン変更依頼を送信する（Ｓ２５）。
【００３８】
場合により、パターン変更依頼部２４は、クライアント装置２以外のクライアント装置やサーバ装置、すなわち他の情報処理装置毎に、その情報処理装置との間の往復遅延時間(Round Trip Time)、その平均値と標準偏差を計測し、パターン判定部１５に通知する（Ｓ２７）。
【００３９】
パターン判定部１５は、各リソース消費量をパターン評価表の現在のパターンの場所に記憶させる（Ｓ３１）。
【００４０】
また、パターン判定部１５は、パターン変更依頼を受信した場合、可能であれば、可能であれば，現在のパターン以外のパターンから１つを選択し（Ｓ３３）、分割部１６を介して、アプリＤＢ１７からモジュール群Ｘ、Ｙ、Ｚを取得する（Ｓ３５）。パターンの選択方法については後述する。
【００４１】
パターン判定部１５は、可能でなければ、分割部１６に分割依頼を行う（Ｓ３５）。分割部１６はアプリケーションを解析し，アプリケーションを現在とは別の構成のモジュール群Ｘ、Ｙ、Ｚに分割し（Ｓ３７）、アプリＤＢ１７にそのモジュール群を登録し、モジュール群をパターン判定部１５に送信する（Ｓ３９）。パターン判定部１５は、また、パターン評価表を更新する。
【００４２】
パターン判定部１５は、選択されたパターンに応じて、アプリ配信部１１，クライアント装置２のアプリ配信部２１にモジュール群を送信する（Ｓ４１）。
【００４３】
アプリ配信部１１は、モジュール群を受信し、これをアプリ実行部１２が実行するように設定する（Ｓ４３）。
【００４４】
アプリ配信部２１は、モジュール群を受信し、これをアプリ実行部２２が実行するように設定する（Ｓ２９）。
【００４５】
次に、パターンの選択方法について説明する。
【００４６】
パターン判定部１５は、まず、現在のパターン以外の各パターンにつき、パターンを実行した場合における、サーバ装置１とクライアント装置２でのメモリ、ＨＤＤのリソース消費量を計算し、パターン評価表に記憶させる。
【００４７】
例えば、現在のパターンにおいえモジュール群Ｚを実行するサーバ装置１でのメモリのリソース消費量が５０［ＭＢ］、モジュール群Ｙのみによるメモリのリソース消費量が３０［ＭＢ］の場合、サーバ装置１でモジュール群Ｙ、Ｚを実行するパターンでは、サーバ装置１でのメモリのリソース消費量は現在の５０［ＭＢ］よりも３０［ＭＢ］増え、８０［ＭＢ］になる。
【００４８】
パターン判定部１５は、このような計算を各パターン、サーバ装置１およびクライアント装置２、メモリおよびＨＤＤについて行い、パターン評価表に記憶させる。
【００４９】
また、パターン判定部１５は、現在のパターン以外の各パターンにつき、パターンを実行した場合におけるネットワーク遅延値を計算し、パターン評価表に記憶させる。
（ネットワーク遅延値の計算方法１）
例えば、java（登録商標）では、プリミティブ型は値渡し、配列・オブジェクトは参照渡しと決まっていまる。よって、引数の渡し方は、自動的に判断可能である。
【００５０】
具体的には、計算方法１のネットワーク遅延値は、
【００５１】
【数１】
2016212764.tif 000003
のＬである。
【００５２】
図１０は、メソッドの呼び出しの一例を示す図である。
【００５３】
モジュール群Ｘ、Ｙ間では、３回の呼び出し１０１、１０２、１０３が実行され、モジュール群Ｙ、Ｚ間では、２回の呼び出し１０４、１０５が実行される。
【００５４】
モジュール群Ｘ、Ｙ間での１回目の呼び出し１０１でのメソッドの種類がストリーム型、引数の渡し方が直列化を用いる値渡し型であり、２回目の呼び出し１０２でのメソッドの種類がメッセージ型、引数の渡し方が直列化を用いる値渡し型であり、３回目の呼び出し１０３でのメソッドの種類がストリーム型であるとする。
【００５５】
また、モジュール群Ｙ、Ｚ間での１回目の呼び出し１０４でのメソッドの種類がストリーム型、引数の渡し方が直列化を用いない値渡し型であり、２回目の呼び出し１０５でのメソッドの種類がストリーム型、引数の渡し方が参照渡し型であるとする。
【００５６】
また、メッセージ型（メソッドの種類）の重みα１を０．５、ストリーム型（メソッドの種類）の重みα２を１、直列化を用いない値渡し型（引数の渡し方）の重みβ１を１、直列化を用いる値渡し型（引数の渡し方）の重みβ２を２、参照渡し型（引数の渡し方）の重みβ３を３とする。
【００５７】
この場合、モジュール群Ｘ、Ｙの組のＬｉｍｏｄは、
α２×β２＋α１×β２＋α２×β３＝１×２＋０．５×２＋１×３＝６
モジュール群Ｙ、Ｚの組のＬｉｍｏｄは、
α２×β１＋α２×β３＝１×１＋１×３＝４であり、
モジュール群Ｘ、Ｚの組のＬｉｍｏｄは、０である。
【００５８】
よって、ネットワーク遅延値Ｌは、１０（＝６＋４＋０）である。
【００５９】
ネットワーク遅延値は、以下に示す別の方法で計算してもよい。
（ネットワーク遅延値の計算方法２）
計算方法２のネットワーク遅延値は、
【００６０】
【数２】
2016212764.tif 000004
のＬである。
【００６１】
優先度は、例えば、ユーザインターフェースに関する処理を行うモジュール群の組については高く、そうでないモジュール群の組については低く設定する。
【００６２】
ネットワーク遅延値の計算方法１では、モジュール群Ｘ、Ｙの組のＬｉｍｏｄは６であり、モジュール群Ｙ、Ｚの組のＬｉｍｏｄは４であり、モジュール群Ｘ、Ｚの組のＬｉｍｏｄは０であると例示した。
【００６３】
例えば、モジュール群Ｘ、Ｙの組の優先度を３、モジュール群Ｙ、Ｚの組の優先度を２、モジュール群Ｘ、Ｚの組の優先度を１とすると、ネットワーク遅延値Ｌは、２０（＝３×６＋２×４＋１×０）である。
（ネットワーク遅延値の計算方法３）
計算方法３のネットワーク遅延値は、
【００６４】
【数３】
2016212764.tif 000005
のＬである。
【００６５】
例えば、δｊは、以下の式で計算される。
【００６６】
δｊ＝ＲＴＴｊ／ＲＴＴｍａｘ
ただし、ＲＴＴｊは、ｊについての往復遅延時間、
ＲＴＴｍａｘは、ＲＴＴ１，ＲＴＴ２,…,ＲＴＴｌの中の最大値である。
【００６７】
つまり、δｊは、ＲＴＴｊを正規化した値である。
（ネットワーク遅延値の計算方法４）
ネットワーク遅延値は、
【００６８】
【数４】
2016212764.tif 000006
のＬである、
ＣＶｊは、以下の式で計算される。
【００６９】
【数５】
2016212764.tif 000007
図１１は、ネットワーク遅延値の計算方法３、４の説明補足図である。
【００７０】
ここでは、サーバ装置１、クライアント装置２、３でモジュール群Ｘ、Ｙ、Ｚを分散して実行することとする。
【００７１】
モジュール群Ｘ、Ｙ、Ｚにおいて、２つのモジュール群の組ｉの総数ｍは、
ｍ＝３Ｃ２＝３である。
【００７２】
３つの情報処理装置（サーバ装置１、クライアント装置２、３）において、２つの情報処理装置の組ｊの総数ｌは、
ｌ＝３Ｃ２＝３である。
【００７３】
計算方法３では、サーバ装置１とクライアント装置２の組（ｊ＝１）についてδ１、クライアント装置２とクライアント装置３の組（ｊ＝２）についてδ２、サーバ装置１とクライアント装置３の組（ｊ＝３）についてδ３が計算される。
【００７４】
計算方法４では、サーバ装置１とクライアント装置２の組（ｊ＝１）についてＣＶ１、クライアント装置２とクライアント装置３の組（ｊ＝２）についてＣＶ２、サーバ装置１とクライアント装置３の組（ｊ＝３）についてＣＶ３が計算される。
【００７５】
このようにネットワーク遅延値が各パターンについて計算されたなら、パターン判定部１５は、例えば、サーバ装置１におけるメモリのリソース消費量が４０［ＭＢ］以下、サーバ装置１におけるＨＤＤのリソース消費量が２０［ＭＢ］以下となるパターンに絞りこむ。該当のパターンが無ければ、分割依頼（Ｓ３５）は行われない。なお、このようなパターンの絞り込みは不要としてもよい。
【００７６】
パターン判定部１５は、選択候補のパターンから、最小のネットワーク遅延値に対応するパターンを選択する。これにより、モジュール群Ｘ、Ｙ、Ｚは、現在のパターンとは別のパターンで実行されることとなる。
【００７７】
次に、パターンの切り替えの一例を説明する。
【００７８】
図７のパターン評価表において、現在のパターンはパターン１であるとする。
【００７９】
例えば、サーバ装置１でメモリ、ＨＤＤが不足し、パターン２〜６についてのリソース消費量が、図７のようにパターン評価表に記憶されたこととする。
【００８０】
図１１に示すように、サーバ装置１におけるメモリのリソース消費量が４０［ＭＢ］以下、サーバ装置１におけるＨＤＤのリソース消費量が２０［ＭＢ］以下となるパターンは、パターン３、４、６である。
【００８１】
例えば、ここで、パターン３を選択してしまうと、ネットワーク遅延値が１０であるから、アプリケーション（モジュール群Ｘ、Ｙ、Ｚ）の処理時間は比較的長くなってしまう。
【００８２】
しかし、本実施の形態では、パターン３、４、６から、最小のネットワーク遅延値（＝４）に対応するパターン６が選択される。よって、アプリケーション（モジュール群Ｘ、Ｙ、Ｚ）の処理時間を短くすることができる。
【００８３】
以上のように、本実施の形態によれば、ネットワーク遅延値を計算し、複数のモジュール又はモジュール群を最小のネットワーク遅延値に対応するパターンで実行させるので、複数のモジュール又はモジュール群（アプリケーション）の処理時間を短くすることができる。
【００８４】
なお、本実施の形態ではサーバ装置１として例示した情報処理装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００８５】
１  サーバ装置
２  クライアント装置
１１、２１  アプリ配信部
１２、２２  アプリ実行部
１３、２３  リソース監視部
１４、２４  パターン変更依頼部
１５  パターン判定部
１６  分割部
１７  アプリＤＢ
Ｘ、Ｙ、Ｚ  モジュール又はモジュール群
Ｌ  ネットワーク遅延値
【図１】
2016212764.tif 000012
【図２】
2016212764.tif 000013
【図３】
2016212764.tif 000014
【図４】
2016212764.tif 000015
【図５】
2016212764.tif 000016
【図６】
2016212764.tif 000017
【図７】
2016212764.tif 000018
【図８】
2016212764.tif 000019
【図９】
2016212764.tif 000020
【図１０】
2016212764.tif 000021
【図１１】
2016212764.tif 000022
【図１２】
2016212764.tif 000023