(57)【要約】【課題】アプリケーションソフトウェアの実行結果を適切に得られるようにする。【解決手段】通信端末１は、通信回線を介して、仮想化環境を提供するサーバ２にアクセスする通信端末であって、実行するアプリケーションソフトウェアを決定する決定部１５６と、決定部１５６が決定したアプリケーションソフトウェアの種類に基づいて、サーバ２の仮想化環境でアプリケーションソフトウェアを実行するか、通信端末１の仮想化環境でアプリケーションソフトウェアを実行するかを制御する実行制御部１５８と、を有する。【選択図】図２
2017173964.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して、仮想化環境を提供するサーバにアクセスする通信端末であって、
実行するアプリケーションソフトウェアを決定する決定部と、
前記決定部が決定した前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御する実行制御部と、
を有する通信端末。
【請求項２】
前記実行制御部は、ネットワークを介してデータを送受信するか否かによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替える、
請求項１に記載の通信端末。
【請求項３】
前記実行制御部は、前記アプリケーションソフトウェアの実行中にユーザの操作を受け付ける操作受付部が前記操作を受け付けてから、前記操作に応じた動作の実行が完了するまでに許容される時間の長さによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替える、
請求項１又は２に記載の通信端末。
【請求項４】
前記実行制御部は、前記アプリケーションソフトウェアが、前記通信端末が有するハードウェアを用いて動作するかどうかによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替える、
請求項１から３のいずれか１項に記載の通信端末。
【請求項５】
前記アプリケーションソフトウェアを特定するための情報と、前記アプリケーションソフトウェアを実行することが望ましい仮想化環境の種類とが関連付けられたアプリケーション属性情報を記憶する記憶部をさらに有し、
前記実行制御部は、前記アプリケーション属性情報が、前記通信端末の仮想化環境で実行することが望ましい前記アプリケーションソフトウェアの数が所定の閾値以上であることを示している場合に、前記通信端末で実行可能な全ての前記アプリケーションソフトウェアを前記通信端末の仮想化環境で実行する、
請求項１から４のいずれか１項に記載の通信端末。
【請求項６】
前記実行制御部は、前記サーバの仮想化環境で第１アプリケーションソフトウェアを実行中に、ユーザの操作を受け付ける操作受付部が、前記通信端末の仮想化環境で実行することが望ましい第２アプリケーションソフトウェアの選択を受け付けた場合、前記サーバの仮想化環境を前記通信端末に転送させ、前記通信端末の仮想化環境で前記第１アプリケーションソフトウェアを実行する、
請求項１から５のいずれか１項に記載の通信端末。
【請求項７】
前記実行制御部は、前記アプリケーションソフトウェアが前記通信回線を利用する場合、前記通信回線の品質に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを決定する、
請求項１から６のいずれか１項に記載の通信端末。
【請求項８】
仮想化環境を提供するサーバと、
通信回線を介して前記サーバにアクセスする通信端末と、
を備える通信システムであって、
前記通信端末は、
実行するアプリケーションソフトウェアを決定する決定部と、
前記決定部が決定した前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御する実行制御部と、
を有する通信システム。
【請求項９】
前記サーバは、複数のアプリケーションソフトウェアを実行可能な複数の仮想化環境を有し、
前記通信端末の前記実行制御部は、前記アプリケーションソフトウェアを前記通信端末の仮想化環境で実行する場合に、前記サーバが有する前記複数の仮想化環境のうちの１つの仮想化環境を取得し、取得した前記仮想化環境で前記アプリケーションソフトウェアを実行する、
請求項８に記載の通信システム。
【請求項１０】
前記サーバは、前記通信端末から、新たなアプリケーションソフトウェアを起動させる通知を受けたことに応じて新たな仮想化環境の動作を開始する、
請求項８又は９に記載の通信システム。
【請求項１１】
通信回線を介して、仮想化環境を提供するサーバにアクセスする通信端末が実行する、
実行するアプリケーションソフトウェアを選択するステップと、
選択を受け付けた前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御するステップと、
を有する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末、通信システム及び制御方法に関する。
【背景技術】
【０００２】
仮想化環境が構築されたサーバに端末がアクセスすることにより、サーバがアプリケーションソフトウェアを実行した結果を端末で出力する技術が知られている。特許文献１には、仮想化環境が構築されたサーバの画面を、ＬＡＮ（Local Area Network）で接続された端末に表示させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２０３８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ユーザが端末で結果を閲覧するアプリケーションソフトウェアをサーバに実行させることにより、ハードウェア性能が低い端末を用いて、複雑な処理が必要なアプリケーションソフトウェアを実行することが可能になる。また、大きな電力を消費する処理をサーバに実行させることで、端末の消費電力を低減させることもできる。
【０００５】
しかしながら、端末のハードウェアリソースを用いるアプリケーションソフトウェアやリアルタイム性を要するアプリケーションソフトウェア等のように、端末において実行する方が望ましい種類のアプリケーションソフトウェアもある。これらのアプリケーションソフトウェアをサーバで実行すると、所望の結果を得られないという問題があった。
【０００６】
そこで、本発明はこれらの点に鑑みてなされたものであり、アプリケーションソフトウェアの実行結果を適切に得られるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様の通信端末は、通信回線を介して、仮想化環境を提供するサーバにアクセスする通信端末であって、実行するアプリケーションソフトウェアを決定する決定部と、前記決定部が決定した前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御する実行制御部と、を有する。
【０００８】
前記実行制御部は、例えば、ネットワークを介してデータを送受信するか否かによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替える。
【０００９】
前記実行制御部は、前記アプリケーションソフトウェアの実行中にユーザの操作を受け付ける操作受付部が前記操作を受け付けてから、前記操作に応じた動作の実行が完了するまでに許容される時間の長さによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替えてもよい。
【００１０】
また、前記実行制御部は、前記アプリケーションソフトウェアが、前記通信端末が有するハードウェアを用いて動作するかどうかによって定められる前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを切り替えてもよい。
【００１１】
前記通信端末は、前記アプリケーションソフトウェアを特定するための情報と、前記アプリケーションソフトウェアを実行することが望ましい仮想化環境の種類とが関連付けられたアプリケーション属性情報を記憶する記憶部をさらに有し、前記実行制御部は、前記アプリケーション属性情報が、前記通信端末の仮想化環境で実行することが望ましい前記アプリケーションソフトウェアの数が所定の閾値以上であることを示している場合に、前記通信端末で実行可能な全ての前記アプリケーションソフトウェアを前記通信端末の仮想化環境で実行してもよい。
【００１２】
前記実行制御部は、前記サーバの仮想化環境で第１アプリケーションソフトウェアを実行中に、ユーザの操作を受け付ける操作受付部が、前記通信端末の仮想化環境で実行することが望ましい第２アプリケーションソフトウェアの選択を受け付けた場合、前記サーバの仮想化環境を前記通信端末に転送させ、前記通信端末の仮想化環境で前記第１アプリケーションソフトウェアを実行してもよい。
【００１３】
前記実行制御部は、前記アプリケーションソフトウェアが前記通信回線を利用する場合、前記通信回線の品質に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを決定してもよい。
【００１４】
本発明の第２の態様の通信システムは、仮想化環境を提供するサーバと、通信回線を介して前記サーバにアクセスする通信端末と、を備える通信システムであって、前記通信端末は、実行するアプリケーションソフトウェアを決定する決定部と、前記決定部が決定した前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御する実行制御部と、を有する。
【００１５】
前記サーバは、例えば、複数のアプリケーションソフトウェアを実行可能な複数の仮想化環境を有し、前記通信端末の前記実行制御部は、前記アプリケーションソフトウェアを前記通信端末の仮想化環境で実行する場合に、前記サーバが有する前記複数の仮想化環境のうちの１つの仮想化環境を取得し、取得した前記仮想化環境で前記アプリケーションソフトウェアを実行する。
【００１６】
前記サーバは、前記通信端末から、新たなアプリケーションソフトウェアを起動させる通知を受けたことに応じて新たな仮想化環境の動作を開始してもよい。
【００１７】
本発明の第３の態様の制御方法は、通信回線を介して、仮想化環境を提供するサーバにアクセスする通信端末が実行する、実行するアプリケーションソフトウェアを選択するステップと、選択を受け付けた前記アプリケーションソフトウェアの種類に基づいて、前記サーバの仮想化環境で前記アプリケーションソフトウェアを実行するか、前記通信端末の仮想化環境で前記アプリケーションソフトウェアを実行するかを制御するステップと、を有する。
【発明の効果】
【００１８】
本発明によれば、アプリケーションソフトウェアの実行結果を適切に得られるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態の通信システムの構成を示す図である。
【図２】通信端末の構成を示す図である。
【図３】記憶部が記憶しているアプリケーション属性テーブルを示す図である。
【図４】記憶部が記憶しているアプリケーションソフトウェア実行場所テーブルを示す図である。
【図５】通信品質レベルについて説明するための図である。
【図６】サーバの構成を示す図である。
【図７】通信端末とサーバとの間の通信シーケンスを示す図である。
【図８】変形例におけるアプリケーション属性テーブルを示す図である。
【図９】変形例のフローチャートである。
【図１０】第２の実施形態の通信システムの構成を示す図である。
【発明を実施するための形態】
【００２０】
＜第１の実施形態＞
［通信システムＳの概要］
図１は、第１の実施形態の通信システムＳの構成を示す図である。通信システムＳは、通信端末１と、サーバ２とを有する。通信端末１とサーバ２とは、無線通信回線Ｗ及びネットワークＮを介してデータを送受信することができる。
【００２１】
通信端末１は、スマートフォン、タブレット又はパーソナルコンピュータ等のように、情報を表示する画面を有する端末である。通信端末１は、ＬＴＥ（Long Term Evolution）若しくはＷｉ−Ｆｉ（登録商標）等の無線通信回線Ｗ、又はＬＡＮ（Local Area Network）等の有線通信回線（不図示）を介してサーバ２にアクセスし、サーバ２との間でデータを送受信する。通信端末１は、ユーザの操作に応じて、サーバ２が有する仮想化環境を用いてアプリケーションソフトウェアを実行させ、サーバ２がアプリケーションソフトウェアを実行した結果を示す画面を表示する。すなわち、通信端末１及びサーバ２は、ＶＤＩ（Virtual Desktop Infrastructure）により、通信端末１がサーバ２でアプリケーションソフトウェアを実行した結果を表示することができる。
【００２２】
サーバ２は、仮想化環境を有しており、仮想化環境でアプリケーションソフトウェアを実行する。仮想化環境は、コンピュータ上に構築された仮想マシンであり、サーバ２が有する仮想化環境は、通信端末１のＯＳ（例えばAndroid）や通信端末１で動作可能なアプリケーションソフトウェアを動作させるための資源を有している。図１（ａ）に示すように、サーバ２は、仮想化環境によりアプリケーションソフトウェアを実行し、実行した結果を通信端末１に表示させるための画面データを生成する。サーバ２は、生成した画面データを、ネットワークＮ及び無線通信回線Ｗを介して通信端末１に提供する。
【００２３】
このように、通信端末１は、サーバ２の仮想化環境でアプリケーションソフトウェアを実行させることにより、通信端末１の消費電力を抑えつつ、コンピュータに高い処理能力が必要なアプリケーションソフトウェアを実行することにより得られる結果を示す画面データを表示することができる。
【００２４】
しかしながら、アプリケーションソフトウェアの種類によっては、サーバ２の仮想化環境で実行することが適さない場合がある。例えば、ゲームのアプリケーションソフトウェアのように、通信端末１のユーザが操作に応じてリアルタイムで画面が変化することが求められる場合、サーバ２から画面データが伝送される際の遅延時間が問題になる。本実施形態の通信システムＳにおいては、このようなアプリケーションソフトウェアを実行する際は、図１（ｂ）に示すように、サーバ２の仮想化環境でアプリケーションソフトウェアを実行せず、通信端末１がアプリケーションソフトウェアを実行することを特徴としている。
【００２５】
［通信端末１の構成］
図２は、通信端末１の構成を示す図である。通信端末１は、通信部１１と、操作部１２と、表示部１３と、記憶部１４と、制御部１５とを有する。制御部１５は、品質推定部１５１と、送信部１５２と、受信部１５３と、表示制御部１５５と、決定部１５６と、実行部１５７と、実行制御部１５８とを有する。
【００２６】
通信部１１は、無線通信ユニットであり、携帯電話網の基地局から無線チャネルの割り当てを受けて、無線通信回線Ｗ及びネットワークＮを介して、サーバ２との間でデータを送受信する。通信部１１は、受信した電波の強度を示す受信信号強度情報（ＲＳＳＩ：Received Signal Strength Indicator）を生成して、ＲＳＳＩを品質推定部１５１に入力する。また、通信部１１は、受信した電波に重畳されたデータを抽出し、抽出したデータを受信部１５３に入力する。さらに、通信部１１は、送信部１５２から受信した送信用のデータを電波に乗せて送信する。
【００２７】
操作部１２は、ユーザからの操作を受け付ける。操作部１２は、例えば表示部１３に重ねて設けられたタッチパネルである。
表示部１３は、情報を表示するディスプレイである。操作部１２及び表示部１３は、一体となったタッチスクリーンであってもよい。
【００２８】
記憶部１４は、ＲＯＭ（Read Only Memory）又はＲＡＭ（Random Access Memory）等の記憶媒体である。記憶部１４は、制御部１５が実行するプログラムをＲＯＭに記憶している。また、記憶部１４は、アプリケーションソフトウェアを通信端末１で実行するかサーバ２で実行するか実行制御部１５８が判定するために必要な情報を記憶している。例えば、記憶部１４は、アプリケーションソフトウェアを特定するための情報と、アプリケーションソフトウェアを実行することが望ましい仮想化環境とが関連付けられたアプリケーションソフトウェアの属性情報を記憶する。
【００２９】
図３は、記憶部１４が記憶しているアプリケーション属性テーブルを示す図である。アプリケーション属性テーブルにおいては、アプリケーションソフトウェアの名称に、各アプリケーションソフトウェアが、ネットワークを利用してデータ送受信をするかどうか、ユーザの操作に対する高い応答性が必要かどうか、通信端末１のハードウェア資源を利用するかどうか等の属性情報が関連付けられている。
【００３０】
図４は、記憶部１４が記憶しているアプリケーションソフトウェア実行場所テーブルを示す図である。アプリケーションソフトウェア実行場所テーブルにおいては、アプリケーションソフトウェアの属性に、通信端末１で実行する必要があるか、サーバ２で実行する必要があるかを示す情報が関連付けられている。図４における○は、アプリケーションソフトウェアを実行することが望ましい場所を示している。
【００３１】
図２に戻って、制御部１５は、例えばＣＰＵ（Central Processing Unit）である。制御部１５は、記憶部１４に記憶されたプログラムを実行することにより、品質推定部１５１、送信部１５２、受信部１５３、操作受付部１５４、表示制御部１５５、決定部１５６、実行部１５７及び実行制御部１５８として機能する。
【００３２】
品質推定部１５１は、通信部１１から入力されたＲＳＳＩ又は通信時のフレームエラー率等に基づいて、無線通信回線Ｗの通信品質を推定する。品質推定部１５１は、例えば、ＲＳＳＩを所定の閾値と比較して、ＲＳＳＩが、複数の通信品質レベルのうちどの通信品質レベルに該当するかを特定する。
【００３３】
図５は、通信品質レベルについて説明するための図である。図５に示すように、本実施形態において、品質推定部１５１は、ＲＳＳＩの値を第１閾値〜第４閾値と比較して、ＲＳＳＩが第１レベル〜第５レベルまでのどの通信品質レベルであるかを特定する。品質推定部１５１は、特定した通信品質レベルを示す情報を実行制御部１５８に通知する。なお、図５においては、第１レベルを最も通信品質が悪いレベルとしており、第５レベルを最も通信品質が良いレベルとしている。
【００３４】
第１レベルは、通信端末１とサーバ２との間で安定してデータの送受信をできない状態に相当するレベルである。第２レベルは、データの送受信は可能であるが、短時間のうちに第１レベルに遷移する可能性が高いというレベルである。第３レベルは、短時間のうちに第２レベル又は第４レベルに遷移する可能性があるというレベルである。第４レベルは、短時間のうちに第５レベルに遷移する可能性が高いというレベルである。第５レベルは、良好にデータの送受信が可能であり、短時間のうちに第１レベル又は第２レベルに遷移する可能性が低いというレベルである。
【００３５】
送信部１５２は、実行制御部１５８の指示に基づいて、サーバ２に対してメッセージを送信する。送信部１５２は、例えば、サーバ２の仮想化環境でアプリケーションソフトウェアを実行することを指示するアプリ実行要求を送信する。アプリ実行要求には、アプリケーションソフトウェアの種類を特定する情報が含まれている。
【００３６】
受信部１５３は、通信部１１から入力されたデータから、ペイロード部分を取り出して、取り出したペイロードを記憶部１４に格納する。受信部１５３は、例えば、サーバ２がアプリケーションソフトウェアを実行することによって得られた結果を含む画面データを受信する。受信部１５３は、受信した画面データを、表示制御部１５５を介して表示部１３に表示させる。
【００３７】
操作受付部１５４は、ユーザが操作部１２において入力した操作内容を特定し、特定した操作内容を実行制御部１５８に通知する。操作受付部１５４は、例えば、サーバ２から仮想化環境の転送を受けるか否かを実行制御部１５８が判定するために用いる閾値を設定する操作を受け付けて、実行制御部１５８に通知する。
【００３８】
表示制御部１５５は、実行部１５７の制御に基づいて、ユーザに提示する情報を表示部１３に入力する。表示制御部１５５は、例えば、実行部１５７が仮想化環境でアプリケーションソフトウェアを実行した場合、アプリケーションソフトウェアを実行したことによって得られる結果を実行部１５７から取得して、取得した結果を表示部１３に表示させる。
【００３９】
決定部１５６は、通信端末１又はサーバ２のいずれかで実行するアプリケーションソフトウェアを決定する。決定部１５６は、通信端末１の外部から入力された情報に基づいて、又は通信端末１の内部の状態に基づいて、実行するアプリケーションソフトウェアを決定する。例えば、決定部１５６は、ユーザが操作部１２において選択したアプリケーションソフトウェアを、実行するアプリケーションソフトウェアに決定する。決定部１５６は、所定の時刻になった時点で、当該時刻に関連付けて記憶部１４に予め登録されているアプリケーションソフトウェアを実行することに決定してもよい。決定部１５６は、実行することに決定したアプリケーションソフトウェアを特定するための実行アプリ情報を実行制御部１５８に通知する。
【００４０】
実行部１５７は、実行制御部１５８の制御に基づいて、記憶部１４に記憶された仮想化環境でアプリケーションソフトウェアを実行し、実行した結果を含む画面データを生成して表示部１３に表示する。実行部１５７は、サーバ２が仮想化環境でアプリケーションソフトウェアを実行中には、サーバ２から受信する画面データを、表示制御部１５５を介して表示部１３に表示する。
【００４１】
実行制御部１５８は、決定部１５６が実行することを決定したアプリケーションソフトウェアの種類に基づいて、サーバ２の仮想化環境でアプリケーションソフトウェアを実行するか、通信端末１の仮想化環境でアプリケーションソフトウェアを実行するかを制御する。実行制御部１５８は、まず、図３に示したアプリケーション属性テーブルを参照することにより、実行するアプリケーションソフトウェアの属性を特定する。続いて、実行制御部１５８は、図４に示したアプリケーションソフトウェア実行場所テーブルを参照することにより、特定した属性を有するアプリケーションソフトウェアを通信端末１で実行するかサーバ２で実行するかを決定する。
【００４２】
例えば、実行制御部１５８は、ネットワークを介してデータを送受信するか否かによって定められるアプリケーションソフトウェアの種類に基づいて、アプリケーションソフトウェアを実行する場所を制御する。実行制御部１５８は、図３におけるアプリＡのように、ネットワークを利用するという属性を有するアプリケーションソフトウェアを実行する場合、サーバ２でアプリケーションソフトウェアを実行することに決定する。この場合、実行制御部１５８は、サーバ２に対して、アプリＡを実行することを要求するとともに、実行部１５７に対して、サーバ２から受信する画面データを表示させるように指示する。
【００４３】
また、実行制御部１５８は、アプリケーションソフトウェアの実行中にユーザの操作を受け付ける操作受付部１５４が操作を受け付けてから、操作に応じた動作の実行が完了するまでに許容される時間の長さによって定められるアプリケーションソフトウェアの種類に基づいて、アプリケーションソフトウェアを実行する場所を制御する。図３におけるアプリＢ（例えば、ゲームアプリ）のように、ユーザの操作に対して速やかに画面を切り替えるような応答性が求められる場合、実行制御部１５８は、通信端末１でアプリケーションソフトウェアを実行することに決定する。この場合、実行制御部１５８は、実行部１５７に対して、アプリＢを実行するように指示する。
【００４４】
また、実行制御部１５８は、アプリケーションソフトウェアが、通信端末が有するハードウェアを用いて動作するかどうかによって定められるアプリケーションソフトウェアの種類に基づいて、アプリケーションソフトウェアを実行する場所を制御する。図３におけるアプリＣ（例えば、通信端末１のカメラ機能を使用するアプリケーションソフトウェア）のように、通信端末１が有するカメラやセンサー等のハードウェア資源を使用する場合、実行制御部１５８は、通信端末１でアプリケーションソフトウェアを実行することに決定する。この場合、実行制御部１５８は、実行部１５７に対して、アプリＣを実行するように指示する。
【００４５】
実行制御部１５８は、実行するアプリケーションソフトウェアが、通信端末１での実行に適した属性とサーバ２での実行に適した属性の両方を有している場合、予め定められたルールに基づいて、アプリケーションソフトウェアを実行する場所を決定する。例えば、図３のアプリＤのように、ネットワークと通信端末１のハードウェア資源の両方を使用する属性を有する場合、通信端末１で実行することに決定する。
【００４６】
ただし、実行制御部１５８は、アプリケーションソフトウェアが使用するハードウェア資源の種類によって、通信端末１で実行するかサーバ２で実行するかを決定してもよい。例えば、実行制御部１５８は、ハードウェア資源から出力されるデータ量が閾値よりも大きい場合に、ネットワークを介してデータを伝送することによる処理遅延を防ぐために、通信端末１で実行することにする。
【００４７】
実行制御部１５８は、図３に示すアプリＥのように、実行する場所に影響する属性を有しない場合は、他の要素に基づいて実行場所を決定してもよい。例えば、実行制御部１５８は、品質推定部１５１が推定した通信品質が所定の閾値よりも高い場合は、サーバ２で実行すると決定し、通信品質が所定の閾値未満である場合は、通信端末１で実行すると決定する。
【００４８】
また、実行制御部１５８は、アプリケーション属性テーブルに登録されている複数のアプリケーションソフトウェアの属性を確認し、通信端末１の仮想化環境で実行することが望ましいアプリケーションソフトウェアの数が所定の閾値以上であることを示している場合に、通信端末１で実行可能な全てのアプリケーションソフトウェアを通信端末１の仮想化環境で実行するものとしてもよい。このようにすることで、実行するアプリケーションソフトウェアが切り替わるたびに、実行制御部１５８が頻繁にアプリケーションソフトウェアを実行する仮想化環境が切り替わることを防止できる。
【００４９】
また、実行制御部１５８は、サーバ２の仮想化環境で第１アプリケーションソフトウェアを実行中に、操作受付部１５４が、通信端末１の仮想化環境で実行することが望ましい第２アプリケーションソフトウェアの選択を受け付けた場合、サーバ２の仮想化環境を通信端末１に転送させ、通信端末１の仮想化環境で第１アプリケーションソフトウェアを実行するようにしてもよい。例えば、通信端末１で実行してもサーバ２で実行してもよいメールのアプリケーションソフトウェアをサーバ２で実行中に、通信端末１で実行する必要があるゲームのアプリケーションソフトウェアが起動されたとする。この場合、メールのアプリケーションソフトウェアを実行中のサーバ２の仮想化環境を用いてゲームのアプリケーションソフトウェアを実行させると、応答速度が遅いので使い勝手が悪い。
【００５０】
そこで、実行制御部１５８は、サーバ２に対して、仮想化環境を転送することを要求し、通信端末１の仮想化環境を、サーバ２でメールのアプリケーションソフトウェアを実行中の仮想化環境と同期化する。この際、実行制御部１５８は、通信端末１の仮想化環境とサーバ２の仮想化環境との差分の情報のみを受信することにより同期化してもよい。実行制御部１５８は、仮想化環境の同期化が終了すると、メールのアプリケーションソフトウェアをサーバ２から引き継いで実行させるとともに、ゲームのアプリケーションソフトウェアの実行を開始させるように実行部１５７に指示する。このようにすることで、通信端末１は、属性が異なる複数のアプリケーションソフトウェアを適切に実行することができる。
【００５１】
［サーバ２の構成］
図６は、サーバ２の構成を示す図である。サーバ２は、通信部２１と、記憶部２２と、制御部２３とを有する。通信部２１は、ネットワークＮを介して通信端末１との間でデータを送受信するための通信ユニットであり、例えばＬＡＮコントローラを有する。
【００５２】
記憶部２２は、ＲＯＭ、ＲＡＭ及びハードディスク等の記憶媒体である。記憶部２２は、制御部２３が実行するプログラムをＲＯＭに記憶している。また、記憶部２２は、通信端末１で実行可能なアプリケーションソフトウェア、及び当該アプリケーションソフトウェアを実行するための仮想化環境をＲＡＭに記憶する。
【００５３】
制御部２３は、例えばＣＰＵである。制御部２３は、記憶部２２に記憶されたプログラムを実行することにより、受信部２３１、送信部２３２及び実行部２３３として機能する。
【００５４】
受信部２３１は、ネットワークＮを介して、通信端末１が送信したデータを受信する。受信部２３１は、例えば、サーバ２で実行中の仮想化環境を転送する指示を通信端末１から受けたり、通信端末１で実行中の仮想化環境を受信したりする。
送信部２３２は、ネットワークＮを介して、通信端末１にデータを送信する。送信部２３２は、例えば、サーバ２で実行中の仮想化環境を転送する指示を受信部２３１が受けたことに応じて、通信端末１に対して仮想化環境を送信する。
【００５５】
実行部２３３は、記憶部２２に記憶された仮想化環境でアプリケーションソフトウェアを実行する。実行部２３３は、送信部２３２を介して、アプリケーションソフトウェアの実行結果を含む画面データを通信端末１に送信する。
【００５６】
［通信シーケンス］
図７は、通信端末１とサーバ２との間の通信シーケンスを示す図である。まず、通信端末１は、決定部１５６において、実行するアプリケーションソフトウェアを決定する（Ｓ１１）。続いて、実行制御部１５８は、実行するアプリケーションソフトウェアの種類を特定し（Ｓ１２）、判定した結果に基づいて、アプリケーションソフトウェアを通信端末１で実行するかサーバ２で実行するかを判定する（Ｓ１３）。
【００５７】
実行制御部１５８が、アプリケーションソフトウェアを通信端末１で実行すると決定した場合（Ｓ１３においてＹＥＳ）、実行部１５７は、実行制御部１５８の指示に基づいてアプリケーションソフトウェアを実行する（Ｓ１４）。他方で、実行制御部１５８が、アプリケーションソフトウェアをサーバ２で実行すると決定した場合（Ｓ１３においてＮＯ）、実行制御部１５８は、送信部１５２を介して、サーバ２にアプリケーションソフトウェアを実行することを要求する。サーバ２は、実行制御部１５８からの要求に応じてアプリケーションソフトウェアを実行する（Ｓ２１）。
【００５８】
［変形例１］
以上の説明において、実行制御部１５８は、図３に示したアプリケーション属性テーブルに基づいて、アプリケーションソフトウェアを通信端末１で実行するかサーバ２で実行するかを決定したが、アプリケーションソフトウェアごとに、各属性の重要度が異なる場合がある。例えば、ネットワークを利用するアプリケーションソフトウェアであっても、ネットワークと接続できないと全く動作しないアプリケーションソフトウェアもあれば、一時的にネットワークと接続できるだけでよいアプリケーションソフトウェアもある。そこで、実行制御部１５８は、アプリケーションソフトウェアにおける各属性の重要度に基づいて、アプリケーションソフトウェアをどこで実行するかを決定してもよい。
【００５９】
図８は、本変形例におけるアプリケーション属性テーブルを示す図である。図８に示すアプリケーション属性テーブルにおいては、各属性の重要度が数値により表されている。数値が大きいほど重要度が大きく、数値が小さいほど重要度が小さい。例えば、アプリＡは、ネットワークを利用できることが重要であり、通信端末１のハードウェア資源は全く使わない。アプリＣは、ネットワークも利用するが、ハードウェア資源を使用することの重要度は、ネットワークを利用することの重要度よりも大きい。
【００６０】
実行制御部１５８は、ネットワークの利用に関する属性の数値と、応答性及びハードウェア資源の利用に関する数値の合計値とを比較し、前者が大きい場合はサーバ２でアプリケーションソフトウェアを実行することに決定し、後者が大きい場合は通信端末１でアプリケーションソフトウェアを実行することに決定する。このようにすることで、実行制御部１５８は、複数の属性を有するアプリケーションソフトウェアをどこで実行するかを適切に決定することができる。
【００６１】
［変形例２］
以上の説明において、実行制御部１５８は、アプリケーション属性テーブルに基づいて、アプリケーションソフトウェアを実行する場所を決定したが、無線通信回線Ｗの状況によっては、属性によらず、サーバ２でアプリケーションソフトウェアを実行することが望ましくない場合がある。通信端末１が、無線通信回線Ｗを介してサーバ２がアプリケーションソフトウェアを実行した結果を含む画面データを受信する場合、無線通信回線Ｗの状態が悪いと、通信端末１では、アプリケーションソフトウェアの実行結果を得ることができない。
【００６２】
そこで、実行制御部１５８は、アプリケーションソフトウェアの属性に基づいて、サーバ２でアプリケーションソフトウェアを実行すると決定した場合であっても、品質推定部１５１が推定した通信品質が所定の閾値未満である場合は、通信端末１でアプリケーションソフトウェアを実行すると決定してもよい。
【００６３】
図９は、本変形例のフローチャートである。図９におけるＳ１１〜Ｓ１４は、図７に示したＳ１１〜Ｓ１４と同じであるので、説明を省略する。実行制御部１５８は、ステップＳ１３においてＮＯと判定した場合、品質推定部１５１が推定した通信品質が良好であるか否かを判定する（Ｓ１５）。実行制御部１５８は、通信品質が良好である場合は、サーバ２に対して、アプリケーションソフトウェアを実行するように指示する（Ｓ１６）。実行制御部１５８は、通信品質が良好でない場合は、ステップＳ１４に進み、実行部１５７に対して、アプリケーションソフトウェアを実行するように指示する。
【００６４】
この際、実行制御部１５８は、アプリケーションソフトウェアが、ネットワークを利用することが不可欠である場合、表示部１３に、ネットワークの状態が悪いのでアプリケーションソフトウェアを実行できない旨を表示して、アプリケーションソフトウェアの実行を中止してもよい。
【００６５】
［第１の実施形態における効果］
以上説明したように、本実施形態の通信端末１は、実行制御部１５８が、アプリケーションソフトウェアの種類に基づいて、サーバ２の仮想化環境でアプリケーションソフトウェアを実行するか、通信端末１の仮想化環境でアプリケーションソフトウェアを実行するかを制御する。このようにすることで、アプリケーションソフトウェアが機能を十分に発揮できるので、ユーザは、アプリケーションソフトウェアの実行結果を適切に得ることができる。
【００６６】
また、実行制御部１５８は、アプリケーションソフトウェアの種類に基づいて、サーバ２でアプリケーションソフトウェアを実行することが好ましいと判定した場合であっても、無線通信回線Ｗの通信品質が所定の条件を満たさない場合には通信端末１でアプリケーションソフトウェアを実行することに決定する。このようにすることで、サーバ２でアプリケーションソフトウェアを実行することにより、アプリケーションソフトウェアの実行結果を良好に得られなくなることを防止できる。
【００６７】
＜第２の実施形態＞
第１の実施形態においては、サーバ２が一つの仮想化環境を有する場合について説明したが、第２の実施形態においては、サーバ２が複数の仮想化環境を使用することができる点で第１の実施形態と異なる。
【００６８】
図１０は、第２の実施形態の通信システムＳの構成を示す図である。サーバ２は、通信端末１から、新たなアプリケーションソフトウェアを起動させる通知を受けたことに応じて新たな仮想化環境の動作を開始することができる。図１０（ａ）においては、仮想化環境１及び仮想化環境２の２つが動作しており、サーバ２がアプリＡ及びアプリＤを実行している。
【００６９】
この状態で、アプリＤにおいて通信端末１のハードウェア資源を使用する動作モードに切り替わった場合に、図１０（ｂ）に示すように、サーバ２は、アプリＤを実行していた仮想化環境２を通信端末１に転送し、実行制御部１５８は、アプリＤを実行部１５７に実行させる。例えば、サーバ２は、アプリＤを通信端末１で実行することが望ましい動作モードに切り替えたことを検出すると、実行制御部１５８に対して、仮想化環境２を転送することを通知する。実行制御部１５８は、仮想化環境２の転送を受けると、仮想化環境２を記憶部１４に記憶させる。その後、実行制御部１５８は、実行部１５７に指示をして、仮想化環境２でアプリＤを実行させる。
【００７０】
このようにすることで、通信システムＳは、通信端末１で実行することが望ましいアプリケーションソフトウェアとサーバ２で実行することが望ましいアプリケーションソフトウェアとを同時に実行する場合に、それぞれのアプリケーションソフトウェアを最適な場所で実行することができる。
【００７１】
以上、本発明をいくつかの実施の形態をもとに説明した。これらの任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００７２】
また、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００７３】
例えば、上記の実施形態において、通信端末１が無線通信回線Ｗを介してサーバ２と通信する例について説明したが、通信端末１が無線通信機能を有しておらず、有線通信回線を介してサーバ２と通信してもよい。
【符号の説明】
【００７４】
１  通信端末
２  サーバ
１１  通信部
１２  操作部
１３  表示部
１４  記憶部
１５  制御部
２１  通信部
２２  記憶部
２３  制御部
１５１  品質推定部
１５２  送信部
１５３  受信部
１５４  操作受付部
１５５  表示制御部
１５６  決定部
１５７  実行部
１５８  実行制御部
２３１  受信部
２３２  送信部
２３３  実行部
Ｎ  ネットワーク
Ｓ  通信システム
Ｗ  無線通信回線
【図１】
2017173964.tif 000003
【図２】
2017173964.tif 000004
【図３】
2017173964.tif 000005
【図４】
2017173964.tif 000006
【図５】
2017173964.tif 000007
【図６】
2017173964.tif 000008
【図７】
2017173964.tif 000009
【図８】
2017173964.tif 000010
【図９】
2017173964.tif 000011
【図１０】
2017173964.tif 000012