(57)【要約】【課題】モバイル端末におけるアプリケーションの処理速度を向上させることを課題とする。【解決手段】モバイル端末２０では、通信状況を測定し、複数のモバイル端末２０から収集された情報に基づいて作成されたモデルを用いて、測定された通信状況からスループットを予測する。そして、モバイル端末２０は、予測されたスループットに応じて、アプリケーションに関する処理を自装置または演算処理サーバ４０に実行させるか判断し、自装置または演算処理サーバ４０に処理を実行させるように制御する。【選択図】図２
2014164568.tif 000002
【特許請求の範囲】
【請求項１】
通信状況を測定する測定部と、
複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定部によって測定された通信状況からスループットを予測する予測部と、
前記予測部によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御部と、
を有することを特徴とする端末装置。
【請求項２】
複数の端末装置から収集された通信に関するデータを用いて、スループットを予測するためのモデルを生成する生成部と、
をさらに有することを特徴とする請求項１に記載の端末装置。
【請求項３】
前記生成部は、前記収集部によって通信に関するデータが収集されるごとに、該データを解析し、前記モデルを更新することを特徴とする請求項２に記載の端末装置。
【請求項４】
前記制御部は、前記予測部によって予測されたスループットを用いて、サーバ側で処理を実行した場合にかかる実行時間を算出し、算出したサーバ側で処理を実行した場合にかかる実行時間と自装置側で処理を実行した場合にかかる実行時間とを比較し、比較の結果に応じて、前記処理を自装置またはサーバに前記処理を実行させるように制御することを特徴とする請求項１〜３のいずれか一つに記載の端末装置。
【請求項５】
端末装置において実行される分散処理方法であって、
通信状況を測定する測定工程と、
複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定工程によって測定された通信状況からスループットを予測する予測工程と、
前記予測工程によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御工程と、
を含んだことを特徴とする分散処理方法。
【請求項６】
通信状況を測定する測定ステップと、
複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定ステップによって測定された通信状況からスループットを予測する予測ステップと、
前記予測ステップによって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御ステップと、
をコンピュータに実行させることを特徴とする分散処理プログラム。
【請求項７】
端末装置とサーバとを備える分散処理システムであって、
前記端末装置は、
通信状況を測定する測定部と、
複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定部によって測定された通信状況からスループットを予測する予測部と、
前記予測部によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御部と、を有し、
前記サーバは、
前記端末装置によってアプリケーションに関する処理をサーバに実行させると判断された場合には、該処理を実行し、前記端末装置に処理結果を送信する処理部を有することを特徴とする分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、分散処理方法、分散処理プログラムおよび分散処理システムに関する。
【背景技術】
【０００２】
近年、分散処理技術、通信技術、端末技術等のＩＴ技術の発展、普及により、時間、場所に拘らずに必要な場面で必要なリソースを利用することが可能となりつつある。例えば、画像認識や動画編集などの負荷の高い処理を行うアプリケーションでは、サーバと端末との実行環境の特性に応じて実行する処理を振分け、分散処理を行うことで結果的に処理の高速化を図ることができる。
【０００３】
このサーバと端末との実行環境の特性に応じて実行する処理について、処理の実行環境の振分けの指定は、アプリ開発時に設定されて固定されるため、処理速度が低下する場合があった。例えば、通信環境の悪化等の外部要因によっては処理の実行環境を変更した方が良い場合が生じることもあり、上記のように処理の振分けが固定的であると結果的に応答時間が長くなり、ユーザビリティが下がる場合があった。これに対して、電界強度などの通信状況の測定結果をもとに、処理の実行をサーバへ切替えるか判断して動的に切替制御を行う技術が知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】松岡宣、“作りながら覚えるAndroidプログラミング”、152ページ〜159ページ、ソフトバンク  クリエイティブ株式会社、2011年3月28日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した電界強度などの通信状況の測定結果をもとに、処理の実行をサーバへ切替えるか判断して制御する技術では、応答時間悪化の原因の所在がアプリケーション実行環境か通信環境かが不明であり、適切な実行環境の切替制御ができず、端末におけるアプリケーションの処理速度が低下する場合があるという課題があった。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、端末におけるアプリケーションの処理速度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る端末装置は、通信状況を測定する測定部と、複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定部によって測定された通信状況からスループットを予測する予測部と、前記予測部によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御部と、を有することを特徴とする。
【０００８】
また、本発明に係る分散処理方法は、端末装置において実行される分散処理方法であって、通信状況を測定する測定工程と、複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定工程によって測定された通信状況からスループットを予測する予測工程と、前記予測工程によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御工程と、を含んだことを特徴とする。
【０００９】
また、本発明に係る分散処理プログラムは、通信状況を測定する測定ステップと、複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定ステップによって測定された通信状況からスループットを予測する予測ステップと、前記予測ステップによって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御ステップと、をコンピュータに実行させることを特徴とする。
【００１０】
また、本発明に係る分散処理システムは、端末装置とサーバとを備える分散処理システムであって、前記端末装置は、通信状況を測定する測定部と、複数の端末装置から収集された情報に基づいて作成されたモデルを用いて、前記測定部によって測定された通信状況からスループットを予測する予測部と、前記予測部によって予測されたスループットに応じて、アプリケーションに関する処理を自装置またはサーバに実行させるか判断し、自装置またはサーバに前記処理を実行させるように制御する制御部と、を有し、前記サーバは、前記端末装置によってアプリケーションに関する処理をサーバに実行させると判断された場合には、該処理を実行し、前記端末装置に処理結果を送信する処理部を有することを特徴とする。
【発明の効果】
【００１１】
実施形態に係る端末装置、分散処理方法、分散処理プログラムおよび分散処理システムは、端末におけるアプリケーションの処理速度を向上させることとか可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、第一の実施形態に係るシステムの構成の一例を示す図である。
【図２】図２は、第一の実施形態に係るモバイル端末および各サーバの構成を説明するための図である。
【図３】図３は、モデルの生成処理について説明する図である。
【図４】図４は、スループットの分布について説明する図である。
【図５】図５は、スループットの分布と閾値の関係について説明する図である。
【図６】図６は、オフロード判断処理について説明する図である。
【図７】図７は、第一の実施形態に係るシステムの学習モデル生成処理の処理手順を示すシーケンス図である。
【図８】図８は、第一の実施形態に係るモバイル端末の分散処理の処理手順を示すフローチャートである。
【図９】図９は、分散処理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明に係る端末装置、分散処理方法、分散処理プログラムおよび分散処理システムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１４】
［第一の実施形態］
まず、図１を用いて、第一の実施の形態に係るシステムの概要について説明する。図１は、本実施形態に係るシステムの構成を示すブロック図である。同図に示すように、本実施形態に係るシステムは、ネットワーク１０、複数のモバイル端末２０および予測モデル生成サーバ３０、複数の演算処理サーバ４０を有する。また、各モバイル端末２０、予測モデル生成サーバ３０および演算処理サーバ４０は、ネットワーク１０を介して、それぞれ接続されている。ここでネットワーク１０とは、例えば、３Ｇ（3rd  Generation）や、ＬＴＥ（Long  Term  Evolution）、ＷｉＦｉ（Wireless  Fidelity）（登録商標）などである。なお、各モバイル端末２０および各サーバ３０、４０における通信は、無線通信に限定されるものではなく、有線通信であってもよい。なお、ここでは、各サーバ３０、４０と通信する装置として、モバイル端末２０を例にして説明するが、後述するように、各サーバ３０、４０と通信する装置は、モバイル端末２０に限定されるものではない。
【００１５】
また、以下の説明では、各モバイル端末２０が分散実行環境を有する各演算処理サーバ４０と協調してアプリケーションを実行するシステムについて説明するが、このシステムは、このような実施形態に限定されるものではない。例えば、モバイル端末２０同士や演算処理サーバ４０同士で協調してアプリケーションを実行するシステムであってもよい。また、このシステムでは、各モバイル端末２０および各演算処理サーバ４０等の実行環境の種類や、実行するアプリケーションの種別が同一であってもよい。
【００１６】
各モバイル端末２０は、各種アプリケーションを実行する情報処理装置である。各モバイル端末２０は、各サーバ４０と協調してアプリケーションを実行する。例えば、モバイル端末２０は、携帯電話、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ（Personal  Digital  Assistant）、タブレットＰＣ（Personal  Computer）等、インターネットに接続して、各サーバ３０、４０や他のユーザ端末との間で情報を送受信できるものであれば、任意の装置であってよい。また、モバイル端末に限定されず、家庭またはオフィスに設置されたコンピュータを使用してもよい。
【００１７】
モバイル端末２０は、通信状況を測定し、複数のモバイル端末２０から収集された情報に基づいて作成されたモデルを用いて、測定された通信状況からスループットを予測する。また、モバイル端末２０は、スループットを用いて、アプリに関する演算処理をモバイル端末２０から演算処理サーバ４０にオフロードするかどうかを判断し、アプリケーションに関する演算処理を自装置または演算処理サーバ４０に実行させるように制御する。
【００１８】
予測モデル生成サーバ３０は、複数のモバイル端末２０から通信に関するデータを収集し、スループットを予測するためのモデルを生成する。演算処理サーバ４０は、モバイル端末２０におけるアプリケーションに関する演算処理を実行し、モバイル端末２０に実行結果を送信する。
【００１９】
次に、図２を用いて、モバイル端末２０および各サーバ３０、４０の構成を説明する。図２は、第一の実施形態に係るモバイル端末および各サーバの構成を説明するための図である。
【００２０】
まず、予測モデル生成サーバ３０の構成について説明する。予測モデル生成サーバ３０は、データ収集部３１およびモデル生成部３２を有する。
【００２１】
データ収集部３１は、３Ｇや、ＬＴＥ、ＷｉＦｉなどのネットワーク１０を介して、複数のモバイル端末２０から通信に関するデータを収集する。例えば、データ収集部３１は、図３に示すように、複数のモバイル端末２０から通信に関するデータとして、無線通信状況パラメータである遅延や電界強度などのデータを収集する。
【００２２】
モデル生成部３２は、データ収集部３１によって収集された通信に関するデータを用いて、スループットを予測するためのモデルを生成する。また、モデル生成部３２は、データ収集部３１によって通信に関するデータが収集されるごとに、該データを解析し、モデルを更新する。例えば、モデル生成部３２は、データ収集部３１によって収集された通信に関するデータの平均や分散をもとめることで分析・学習し、モデルを生成する。例えば、ここで生成されるモデルとしては、Ａ（例えば、電界強度、ＲＴＴ（Round-Trip  Time））が分かれば、Ｂ（スループット）が分かる、ＡとＢの関係式である。そして、モデル生成部３２は、モデルを生成した後、図３に示すように、生成したモデルをモバイル端末２０に送信する。
【００２３】
ここで、学習および予測の方法についての一例を説明する。ここで説明する例としては、例えば、学習パラメータを、事前にモバイル端末２０から収集されたＮＷ種別（３Ｇや、ＬＴＥ、ＷｉＦｉなど）、電界強度、ＲＴＴや、スループットとし、説明変数（予測に利用するパラメータ）を、アプリケーションを実行する直前のモバイル端末２０のＮＷ種別（３Ｇや、ＬＴＥ、ＷｉＦｉなど）、電界強度やＲＴＴとし、目的変数（予測結果）を、アプリケーションを実行する直前のスループットとする。なお、学習・予測方法、学習パラメータ、説明変数、目的変数は適宜変更可能である。
【００２４】
各学習パラメータを収集し、説明変数｛ＮＷ種別、電界強度、ＲＴＴ｝がどのような状態の時に目的変数｛スループット｝がいくつになるかを回帰分析する。回帰分析した結果は、説明変数｛ＮＷ種別、電界強度、ＲＴＴ｝と目的変数｛スループット｝の関係式（モデル）として求められる。
【００２５】
また、学習のタイミングとしては、ストリーム処理、バッチ処理、またはストリーム処理とバッチ処理とを組み合わせた処理が考えられる。いずれを選択するかは、ユーザによって適宜変更設定することができる。このストリーム処理（Ｊｕｂａｔｕｓ（登録商標）等を使うリアルタイム分析）は、その時間に取得したデータを用いて機械学習を行うので、その時間の収集データ量が多い時に有効である。また、バッチ処理は、日、週、季節、年などの単位でデータを蓄積し、機械学習を行うので、周期ごとの傾向が分かり、長期的にデータが取得できる場合に有効であり、さらに、その時間の収集データ量が少なくても分析可能である。また、ストリーム処理とバッチ処理とを組み合わせた処理は、バッチ処理で周期毎の傾向を把握し、その瞬間のストリーム処理の結果と比較することで、異常検知が可能である、その時間の収集データ量が少なくてもよりよい精度で分析することが可能である。
【００２６】
また、後述するモバイル端末２０の予測部２２ｂは、アプリケーションを使おうとする時に、その場で目的変数｛ＮＷ種別、電界強度、ＲＴＴ｝を測定し、それらの値を関係式に当てはめることで、図４に例示するように、目的変数を測定した時から数分間先までの目的変数｛スループットの分布｝を予測するようにしてもよい。図４に示すように、演算処理サーバ４０へアプリケーションの処理をオフロードするかのオフロード判断を行った後、アプリケーションを使用している時間中は、時間の経過とともに、測定されるスループットが変化する。このため、モデル生成部３２は、ある時点のスループットを予測するモデルを生成するだけでなく、所定の時間中のスループットの分布を予測することができるモデルを生成するようにしてもよい。また、混雑した時間帯毎に学習することで、高い精度で予測できる。
【００２７】
図２の説明に戻って、モバイル端末２０について説明する。モバイル端末２０は、アプリケーション２１および該アプリの実行箇所を切り替えるアプリ実行箇所切替部２２を有する。アプリケーション２１は、演算処理を実行する演算処理部２１ａを有する。この演算処理部２１ａは、演算処理サーバ４０の演算処理部４１ａと同一のものである。演算処理部２１ａは、アプリを実行する際に、制御部２２ｃに対して、演算処理サーバ４０へアプリケーションの処理をオフロードするか否かを問い合わせる。
【００２８】
アプリ実行箇所切替部２２は、アプリケーションを実行するための演算処理をモバイル端末２０で実行するか演算処理サーバ４０で実行するかを判断して、切り替える。アプリ実行箇所切替部２２は、実行箇所を切り替える測定部２２ａ、予測部２２ｂおよび制御部２２ｃを有する。
【００２９】
測定部２２ａは、通信状況を測定する。具体的には、測定部２２ａは、アプリケーションを実行する直前に、通信状況に関する情報として、アプリケーション実行直前において利用されているＮＷ種別や、アプリケーション実行直前の電界強度およびＲＴＴを測定し、予測部２２ｂに通知する。
【００３０】
予測部２２ｂは、複数のモバイル端末２０から収集された情報に基づいて作成されたモデルを用いて、測定部２２ａによって測定された通信状況からスループットを予測する。例えば、予測部２２ｂは、測定部２２ａによって測定されたＡ｛ＮＷ種別、電界強度、ＲＴＴ｝をモデルに適用し、Ｂ｛スループット｝を予測する。
【００３１】
また、上記したように、アプリケーションを使っている間数分間のスループットを分布として予測してもよい。ある時点のスループットではなく、所定の時間帯のスループットの分布を予測することで、混んでいる時間帯などスループットの値の変動が大きいときの予測にも対応できる。つまり、図５に例示するように、混んでいる時間帯などスループットの値の変動が大きいときに、オフロードの判断が頻繁に切り替わることがないように、スループットの分布とオフロードを行うか否かの判断を行うためのスループットの閾値とを比較して、オフロードの成功確率（図５の例では、オフロード成功率８０％）を解析することができる。このように、所定の時間帯のスループットの分布を予測して閾値の設定した場合のオフロード成功率を求めておくことで、アプリケーション実行中に何度もスループットを予測する必要がなくなり、さらに閾値ごとに学習する必要がないというメリットがある。
【００３２】
制御部２２ｃは、予測部２２ｂによって予測されたスループットに応じて、アプリケーションに関する処理を自装置または演算処理サーバ４０に実行させるか判断し、自装置または演算処理サーバ４０に実行させるように制御する。
【００３３】
例えば、制御部２２ｃは、予測されたスループットを用いて、サーバ側で処理を実行した場合にかかる実行時間を算出し、算出したサーバ側で処理を実行した場合にかかる実行時間と自装置側で処理を実行した場合にかかる実行時間とを比較し、比較の結果に応じて、処理を自装置またはサーバに実行させるように制御する。
【００３４】
図６の例を用いて説明すると、制御部２２ｃは、モバイル端末側処理時間（ＥＣ）が、オーバーヘッド（ＯＶ）とサーバ処理時間（ＥＳ）とＮＷ通信時間（上り、下り）との合計時間よりも大きい場合には、演算処理サーバ４０へアプリケーションの処理をオフロードし、小さい場合には、自装置で処理を実行する。ここでオーバーヘッドとは、通信時間を求めるために必要な時間および説明変数を測定するために必要な時間であり事前に把握されている。また、モバイル端末側処理時間（ＥＣ）およびサーバ処理時間（ＥＳ）は、過去の実行時間から統計的に把握された時間である。また、制御部２２ｃは、ＮＷ通信時間（ＮＴ）については、下記（１）式を用いて算出する。
【００３５】
【数１】
2014164568.tif 000003
【００３６】
このように、演算処理サーバ４０で実行した方が実行時間が短ければ、アプリケーションに関する演算処理を演算処理サーバ４０へオフロードするので、アプリケーション処理の効率向上を目的とし、アプリケーション実行環境の切替制御を実現することが可能である。
【００３７】
また、例えば、制御部２２ｃは、予め実行するアプリケーションごとにかかる処理時間を基に設定された閾値が設定され、予測部２２ｂによって予測されたスループットが予め設定された閾値を超えている場合には、アプリケーションに関する処理を演算処理サーバ４０に実行させ、超えていない場合には、アプリケーションに関する処理を自装置に実行させるようにしてもよい。
【００３８】
また、上記したように処理時間をパラメータとしたオフロードの判断を行う場合の他に、電池消費量、アプリ要求精度（例えば、画像認識の精度）、各ＮＷにかかる料金を用いてオフロードの判断を行ってもよい。例えば、省電力を目的として、測定したスループットから演算処理サーバ４０で実行した場合の電池消費量を算出し、モバイル端末２０で実行した場合の電池消費量と演算処理サーバ４０で実行した場合の電池消費量との比較によりオフロードの判断を行うようにしてもよい。つまり、モバイル端末２０で実行した場合よりも演算処理サーバ４０で実行した方が、電池消費量が低い場合には、オフロードして演算処理サーバ４０に処理を実行させる。このスループットに対する電池消費量に関する情報は、アプリケーションを実行した場合に、どれくらいの時間でどれくらい電池を消費するかを測定することで取得できる。
【００３９】
また、アプリケーションの精度を重視する場合には、測定したスループットから演算処理サーバ４０で実行した場合のアプリ要求精度を算出し、アプリ要求精度に応じてオフロードの判断を行ってもよい。つまり、アプリ要求精度が低いようなアプリケーションを起動した場合には、オフロードして演算処理サーバ４０に処理を実行させる。このアプリ要求精度に関する情報は、予めユーザにより設定されているものとする。
【００４０】
また、料金を重視する場合には、測定したスループットから演算処理サーバ４０で実行した場合のＮＷにかかる料金を算出し、ＮＷにかかる料金に応じてオフロードの判断を行ってもよい。つまり、ＮＷにかかる料金が少なくて済むアプリケーションを起動した場合には、オフロードして演算処理サーバ４０に処理を実行させる。このＮＷにかかる料金に関する情報は、事前にユーザにより設定されているものとする。なお、上記した各種パラメータは、機械学習により最適化するようにしてもよい。
【００４１】
図２に戻って、演算処理サーバ４０は、アプリケーション４１を有する。アプリケーション４１の演算処理部４１ａは、モバイル端末２０によってアプリケーションに関する処理をサーバに実行させると判断された場合には、モバイル端末２０におけるアプリケーションに関する演算処理を実行し、モバイル端末２０に処理結果を送信する。
【００４２】
なお、例えば、大地震などが起こり、急激な通信状況の悪化を異常検知した場合には、スループット予測をせず、オフロードをしないと判断しないようにしてもよい。これにより、緊急時にはＮＷの利用を控え、安否確認に関係のないアプリによるＮＷの圧迫を防ぐことができる。また、異常値を利用しないので、通常のデータの過学習を防ぐことができる。
【００４３】
［システムによる学習モデル生成処理］
次に、図７を用いて、第一の実施形態に係るシステムによる処理を説明する。図７は、第一の実施形態に係るシステムの学習モデル生成処理の処理手順を示すシーケンス図である。
【００４４】
図７に示すように、各モバイル端末２０の測定部２２ａは、無線ネットワークに接続し、無線通信状況パラメータ（遅延、電界強度など）と、スループットを測定する（ステップＳ１０１）。そして、予測モデル生成サーバ３０のデータ収集部３１は、各モバイル端末２０に対して無線通信状況パラメータとスループットのデータ収集を要求する（ステップＳ１０２）。例えば、データ収集部３１は、一定間隔で、ＮＷ越しに自動送信するように要求することで、無線通信状況パラメータとスループットのデータを各モバイル端末２０に対して要求する。
【００４５】
そして、データ収集部３１は、無線通信状況パラメータとスループットのデータの各モバイル端末２０から取得し（ステップＳ１０３）、取得したデータを所定の記憶部に蓄積するとともに（ステップＳ１０４）、モデル生成部３２に取得したデータを通知する（ステップＳ１０５）。そして、モデル生成部３２は、収集したデータを学習し、モデルを生成して（ステップＳ１０６）、アプリを使用しているモバイル端末２０の予測部２２ｂに生成したモデルを通知する（ステップＳ１０７）。
【００４６】
［モバイル端末による分散処理］
次に、図８を用いて、モバイル端末の分散処理の一例について説明する。図８は、第一の実施形態に係るモバイル端末の分散処理の処理手順を示すフローチャートである。図８に示すように、モバイル端末２０の測定部２２ａは、アプリケーション使用の要求をユーザから受け付けると（ステップＳ２０１肯定）、電界強度およびＲＴＴを測定する（ステップＳ２０２）。
【００４７】
そして、モバイル端末２０の予測部２２ｂは、予測モデル生成サーバ３０により生成されたモデルを用いて、電界強度およびＲＴＴからスループットを予測する（ステップＳ２０３）。続いて、モバイル端末２０の制御部２２ｃは、スループットから演算処理サーバ４０側で実行した場合の実行時間を算出する（ステップＳ２０４）。
【００４８】
そして、制御部２２ｃは、演算処理サーバ４０側で実行した方がモバイル端末２０側で実行するより早いか判定する（ステップＳ２０５）。具体的には、制御部２２ｃは、予測されたスループットを用いて、サーバ側で処理を実行した場合にかかる実行時間を算出し、算出したサーバ側で処理を実行した場合にかかる実行時間と自装置側で処理を実行した場合にかかる実行時間とを比較し、比較の結果に応じて、処理を自装置またはサーバに実行させるように制御する。
【００４９】
この結果、制御部２２ｃは、演算処理サーバ４０側で実行した方がモバイル端末２０側で実行するより早い場合には（ステップＳ２０５肯定）、演算処理サーバ４０側でアプリケーションに関する演算処理を実行させる（ステップＳ２０６）。また、制御部２２ｃは、演算処理サーバ４０側で実行した方がモバイル端末２０側で実行するより遅い場合には（ステップＳ２０５否定）、モバイル端末２０側でアプリケーションに関する演算処理を実行させる（ステップＳ２０７）。
【００５０】
[第一の実施形態の効果]
上述してきたように、モバイル端末２０では、通信状況を測定し、複数のモバイル端末２０から収集された情報に基づいて作成されたモデルを用いて、測定された通信状況からスループットを予測し、予測されたスループットに応じて、アプリケーションに関する処理を自装置または演算処理サーバ４０に実行させるか判断し、自装置または演算処理サーバ４０に処理を実行させるように制御する。このため、モバイル端末２０は、他端末を含む通信環境の状況等も加味してより高い精度で適切なアプリケーション実行環境を選定し、シームレスな切替制御を自律的に実行することができ、モバイル端末２０におけるアプリケーションの処理速度を向上させることが可能である。
【００５１】
また、第一の実施形態によれば、柔軟にアプリケーションを実行する箇所を切り替えることで、処理速度を最適化した状態でアプリケーションを使うことができる。また、モバイル端末２０のスペックが悪く、通信状況がいい場合にはサーバで処理を行うことで処理を高速化できる。また、モバイル端末２０のスペックが良いのにもかかわらず演算処理サーバ側で処理を行っている場合には、モバイル端末２０で実行することによって、ＮＷを無駄に利用する必要がなくなり、帯域を圧迫しない。また、モバイル端末２０で取得できる情報だけでスループットの予測を行うため、通信事業者でない企業や個人でもスループットを把握することができる。また、短時間かつモバイル端末２０で取得できるパラメータを用いてスループットを予測し、予測した結果を元にアプリ実行箇所を柔軟に選択することができる。
【００５２】
また、第一の実施形態によれば、モバイル端末２０側で収集可能な情報を基に他端末の実行状況データも活用して機械学習で予測したスループットを用いて、通信環境の状況等も加味した適切なアプリケーション実行環境を選定し、シームレスな切替制御を自律的に実行することが可能である。また、複数台のモバイル端末からデータを収集してモデルを生成するので、一台で収集したデータだけではなく集合知としてのデータを利用するため、より精度の高い予測が可能となる。
【００５３】
［システム構成］
また、本実施形態において説明した各処理の内、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００５５】
また、例えば、予測モデル生成サーバ３０を設けずに、データ収集部およびモデル生成部をモバイル端末２０が備えるようにしてもよい。また、スループットの予測およびオフロードするか否かの判断する処理、または、スループットの予測処理を、モバイル端末２０ではなく外部のサーバ等に実行させるようにしてもよい。
【００５６】
［プログラム］
図９は、開示の技術に係る分散処理プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図９に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。コンピュータ１０００の各部はバス１０８０によって接続される。
【００５７】
メモリ１０１０は、図９に例示するように、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図９に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図９に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図９に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図９に例示するように、例えばディスプレイ１０６１に接続される。
【００５８】
ここで、図９に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、開示の技術に係る分散処理プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した制御部１２の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ１０３１に記憶される。
【００５９】
また、分散処理プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えばハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各種の手順を実行する。
【００６０】
なお、分散処理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られない。例えば、プログラムモジュール１０９３やプログラムデータ１０９４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ１０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、分散処理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ１０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【００６１】
［その他］
なお、本実施形態で説明した分散処理プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００６２】
１０  ネットワーク
２０  モバイル端末
２１、４１  アプリケーション
２２ａ  測定部
２２ｂ  予測部
２２ｃ  制御部
３０  予測モデル生成サーバ
３１  データ収集部
３２  モデル生成部
４０  演算処理サーバ
【図１】
2014164568.tif 000004
【図２】
2014164568.tif 000005
【図３】
2014164568.tif 000006
【図４】
2014164568.tif 000007
【図５】
2014164568.tif 000008
【図６】
2014164568.tif 000009
【図７】
2014164568.tif 000010
【図８】
2014164568.tif 000011
【図９】
2014164568.tif 000012