説明

通信端末及びアプリケーション制御方法

【課題】サスペンド操作による不必要な通信の切断を防止し、アプリケーション操作の利便性、快適性を向上させる
【解決手段】通信端末100は、アプリケーション106の実行を制御するアプリケーション制御部103と、通信部105を制御して通信ネットワークNとの通信を確立する通信制御部104と、アプリケーションをサスペンドする要因となる端末動作を検知すると、アプリケーション制御部103に対して起動中のアプリケーションをサスペンドさせるサスペンド指令を送信するサスペンド制御部102と、を備え、サスペンド制御部102が、検知した端末動作に応じて、通信部105による通信ネットワークNとの通信接続を切断することなく、サスペンド指令をアプリケーション制御部103に送信するキープアライブ状態を選択可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信端末及びこの通信端末で実行されるアプリケーション制御方法に関する。
【背景技術】
【0002】
近年、携帯電話やPDAなどの通信端末において、例えばオンラインゲームなどのように、通信機能を備え移動体通信網などのネットワークと通信接続しながら利用するアプリケーションが多く提供されている。このようなアプリケーションは、ネットワーク接続中に、例えば音声着信やユーザのキー操作などの動作を優先させるべく端末からサスペンド状態への遷移を要求された場合、ネットワークとの通信を切断した上でサスペンド状態となる(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−250010号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載される、全てのネットワーク接続を切断した上でアプリケーションをサスペンド状態に遷移させる技術では、次のような問題があった。例えば、オンライン通信(ゲームなど)を実行中に、誤ったオンフックキー押下や短時間の音声通話などにてアプリケーションがサスペンドした場合には、TCPセッションやUDP通信などが切断されてしまうため、本来通信が継続されてほしいにも関わらず、通信が途切れてしまう。
【0005】
このように、サスペンド操作により意図しない不必要な通信切断が行われると、通信の再開には再接続操作が必要となる。この再接続操作の処理には時間が掛かるため、アプリケーションを利用している通信端末のユーザの利便性や快適性を失うおそれがあった。
【0006】
本発明は、上記の問題を解決するためになされたものであり、サスペンド操作による不必要な通信の切断を防止し、アプリケーション操作の利便性、快適性を向上させることができる通信端末及びアプリケーション制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係る通信端末は、アプリケーションの実行を制御するアプリケーション制御手段と、前記アプリケーション制御手段により通信機能を含むアプリケーションが実行されると、通信手段を制御して通信ネットワークとの通信を確立し、該アプリケーションの通信機能を実行する通信制御手段と、前記アプリケーションをサスペンドする要因となる端末動作を検知すると、前記アプリケーション制御手段に対して起動中のアプリケーションをサスペンドさせるサスペンド指令を送信するサスペンド制御手段と、を備え、前記サスペンド制御手段が、前記端末動作に応じて、前記通信手段による前記通信ネットワークとの通信接続を切断することなく、前記通信機能を含むアプリケーションをサスペンドさせるサスペンド指令を前記アプリケーション制御手段に送信するキープアライブ状態を選択可能であることを特徴とする。
【0008】
同様に、上記課題を解決するため、本発明に係るアプリケーション制御方法は、アプリケーションの実行を制御するアプリケーション制御手段と、前記アプリケーション制御手段により通信機能を含むアプリケーションが実行されると、通信手段を制御して通信ネットワークとの通信を確立し、該アプリケーションの通信機能を実行する通信制御手段と、前記アプリケーションをサスペンドする要因となる端末動作を検知すると、前記アプリケーション制御手段に対して起動中のアプリケーションをサスペンドさせるサスペンド指令を送信するサスペンド制御手段と、を有する通信端末において実行されるアプリケーション制御方法であって、前記サスペンド制御手段が、前記端末動作を検知する検知ステップと、前記検知ステップにおいて前記端末動作が検知されると、前記サスペンド制御手段が、前記通信機能を含むアプリケーションをサスペンドさせるサスペンド指令を前記アプリケーション制御手段に送信する送信ステップと、前記サスペンド制御手段が、前記検知ステップにおいて検知された前記端末動作に応じて、前記通信手段による前記通信ネットワークとの通信接続を切断せずにその接続状態を保持するキープアライブ状態を選択する選択ステップと、を含むことを特徴とする。
【0009】
このような通信端末及びアプリケーション制御方法によれば、アプリケーションをサスペンドする要因となる動作に応じて、通信手段による通信ネットワークとの通信接続を切断せずに保持するキープアライブ状態を選択することができる。このため、アプリケーションによるオンライン通信実行中に、誤ったオンフックキー押下や短時間の音声通話などによりアプリケーションがサスペンドした場合にも、意図しない不必要な通信切断が行われるのを回避することが可能となり、アプリケーションをサスペンドから回復するときに、時間のかかる再接続操作が不要となり、この結果、ユーザの利便性、快適性を向上させることができる。また、アプリケーションがサスペンドされても通信手段による通信ネットワークとの通信が保持されるので、サスペンド時に通信ネットワークを介して当該通信端末と通信中だった対向機器からは、一切変更が無く通信が継続しているように見え、対向機器との円滑な通信継続が可能となる。
【0010】
また、本発明に係る通信端末において、前記サスペンド制御手段が、前記アプリケーションをサスペンドさせる要因となる端末動作の終了を検知すると、前記アプリケーション制御手段に対してサスペンド中の前記アプリケーションをレジュームさせるレジューム指令を送信し、前記アプリケーション制御手段が、前記サスペンド指令に応じてサスペンドさせた前記アプリケーションを、前記レジューム指令の受信に応じてレジュームさせることが好適である。
【0011】
また、前記アプリケーション制御手段が、前記レジューム指令の受信に応じて前記アプリケーションをレジュームさせたときに、前記アプリケーションをレジュームさせたことを示すレジューム通知を前記通信制御手段に送信し、前記通信制御手段は、前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行中であり、前記アプリケーションがサスペンドされている間に、該アプリケーションの通信機能に関するデータを前記通信手段を介して前記通信ネットワークから受信すると、この受信したデータを保持しておき、前記アプリケーション制御手段からの前記レジューム通知の受信に応じて、保持していたデータを前記アプリケーション制御手段に送信し、前記アプリケーション制御手段が、前記通信制御手段から受信したデータを前記アプリケーションの前記通信機能に送信することが好適である。
【0012】
この構成により、外部の通信ネットワークからサスペンド中のアプリケーションに対して送信されたデータを受信し保持することができるため、サスペンド中でも受信データを洩れなく取得することが可能となり、ユーザの利便性、快適性をより一層向上させることができる。また、サスペンド中のアプリケーションへのデータ送信が可能となるため、通信ネットワークを介して当該通信端末と通信中だった対向機器からは、一切変更が無く通信が継続しているように見え、対向機器との円滑な通信継続が可能となる。
【0013】
また、前記アプリケーションがサスペンドされている間に該通信端末が圏外に遷移したときには、前記通信手段による前記通信ネットワークとの通信の接続状態を維持するプリザベーション状態とすることが好適である。
【0014】
この構成により、通信端末が圏外に遷移した場合にも、通信手段による通信ネットワークとの通信の接続状態を維持するプリザベーション状態とすることができるので、例えばトンネル通過時など短時間の圏外遷移でも通信が途切れてしまうことを回避することができ、ユーザの利便性、快適性をさらに向上させることができる。
【0015】
また、前記通信制御手段は、前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行中であり、前記アプリケーションがサスペンドされている間に、前記通信手段による前記通信ネットワークとの通信が切断された場合には、通信が切断された旨を示す切断通知を保持しておき、サスペンドした前記アプリケーションがレジュームする際に、前記アプリケーション制御手段を介して前記アプリケーションの前記通信機能に前記切断通知を送信することが好適である。
【0016】
この構成により、通信機能を実行中にサスペンドしたアプリケーションをレジュームしたときに、即座に通信ネットワークとの通信が切断された旨を当該通信端末のユーザに報知することが可能となり、ユーザの利便性、快適性をさらに向上させることができる。
【0017】
また、前記通信制御手段は、前記アプリケーションがサスペンドされている間に前記通信手段による前記通信ネットワークとの通信が切断される前に、該アプリケーションの通信機能に関するデータを前記通信手段を介して前記通信ネットワークから受信していた場合には、切断通知を保持せずにこの受信したデータを保持しておき、サスペンドした前記アプリケーションがレジュームする際に、前記アプリケーション制御手段を介して前記アプリケーションに前記データを送信することが好適である。
【0018】
この構成により、外部の通信ネットワークとの通信が切断される前までに、通信ネットワークからサスペンド中のアプリケーションに対して送信されたデータを受信し保持することができるため、サスペンド中でも受信データを取得することが可能となり、ユーザの利便性、快適性をより一層向上させることができる。
【0019】
また、前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行されておらず、前記アプリケーションがサスペンドされている間に、前記通信手段による前記通信ネットワークとの通信が切断された場合には、前記通信手段は、通信が切断された旨を保持しておき、サスペンドした前記アプリケーションがレジュームされた後に前記通信機能が実行されたときに、前記通信制御手段及び前記アプリケーション制御手段を介して前記アプリケーションの前記通信機能に通信が切断された旨を示す切断通知を送信することが好適である。
【0020】
この構成により、サスペンド中に通信ネットワークとの通信が切断されても、レジューム後にアプリケーションの通信機能がはじめて使われたときに、通信ネットワークとの通信が切断された旨を当該通信端末のユーザに報知することができるため、アプリケーションがレジュームしたときに余計な情報をユーザに報知することがなくなり、ユーザの利便性、快適性をさらに向上させることができる。
【発明の効果】
【0021】
本発明に係る通信端末及びアプリケーション制御方法によれば、サスペンド操作による不必要な通信の切断を防止し、アプリケーション操作の利便性、快適性を向上させることができる。
【図面の簡単な説明】
【0022】
【図1】本発明の一実施形態に係る通信端末100の機能ブロック図である。
【図2】通信端末100のハードウェア構成図である。
【図3】サスペンド要因となる端末動作と、これらの動作ごとにキープアライブ状態とするか否かの定義の一例を示す表である。
【図4】本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理を示すシーケンス図である。
【図5】本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、ネットワーク接続が切断されたときの処理を示すシーケンス図である。
【図6】本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、送出したリクエストに応じてレスポンスを受信した後にネットワーク接続が切断されたときの処理を示すシーケンス図である。
【図7】本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、通信APIを呼び出していないときにアプリケーションをサスペンドし、さらにキープアライブ時にネットワークとの通信接続が切断されたときの処理を示すシーケンス図である。
【発明を実施するための形態】
【0023】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【0024】
図1は、本発明の一実施形態に係る通信端末100の機能ブロック図である。通信端末100は、携帯電話、PDA(Personal Digital Assistant:個人情報端末)などの、通信機能を有する装置を含むものである。図1に示すように、通信端末100は、移動体通信網又はWWWなどのインターネット網などによって構成される通信ネットワークNを介して、図示しない他の通信端末やサーバと相互にデータ通信が可能な状態で接続されている。
【0025】
また、通信端末100は、端末内に保持される1または複数のアプリケーション106を実行して、種々のサービスを利用可能である。アプリケーション106により提供されるサービスとは、例えばオンラインゲームであり、この場合、通信機能、セーブデータ保存機能、取得コンテンツ(音楽、アイテムなど)保存機能などがアプリケーション106に含まれる。これらの機能は、具体的には、例えばAPI(Application Program Interface)により実現される。
【0026】
図2は、通信端末100のハードウェア構成図である。通信端末100は、物理的には、CPU(Central Processing Unit)111、主記憶装置であるRAM(Random Access Memory)112及びROM(Read Only Memory)113、入力デバイスである入力キー等の操作部114、ディスプレイ115、無線通信部116などを有する端末装置として構成されている。図1に示され後述される通信端末100の各機能は、CPU111、RAM112等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU111の制御のもとで操作部114、ディスプレイ115、無線通信部116を動作させるとともに、RAM112やROM113におけるデータの読み出し及び書き込みを行うことで実現される。
【0027】
ここで、本実施形態において、「ネイティブアプリケーション」107とは、端末100のCPU111が直接解釈し実行できる形式のアプリケーションプログラムのことを意味し、「アプリケーション」106とは、例えばJava(登録商標)アプリケーションなどの非ネイティブなアプリケーションプログラムを意味する。
【0028】
図1に戻り、通信端末100の各機能ブロックについて説明する。通信端末100は、操作入力部101、サスペンド制御部(サスペンド制御手段)102、アプリケーション制御部(アプリケーション制御手段)103、通信制御部(通信制御手段)104、通信部(通信手段)105を備えて構成される。
【0029】
操作入力部101は、通信端末100のユーザによるボタン押下やタッチパネル入力などの入力操作を受け付ける。具体的には、図2に示すハードウェア構成のうち操作部114により実現される。操作入力部101は、ユーザの入力操作を検知すると、この旨をサスペンド制御部102に送信する。
【0030】
サスペンド制御部102は、通信端末100の動作状況に応じて、アプリケーション106のサスペンド(停止)/レジューム(再開)を制御し、さらに、起動中のアプリケーションをサスペンドする際には、当該アプリケーションによるネットワークとの通信接続をキープアライブ状態とするか、切断するかを決定する。ここで、「キープアライブ」状態とは、本実施形態では、アプリケーションのサスペンド遷移時に、下位のネットワークIF層では通信(送受信)を継続する状態のことを意味するものであり、具体的には、TCPセッションやUDP通信などを切断しないでおくことで実現される。
【0031】
より詳細には、サスペンド制御部102は、第1に、操作入力部101から通信端末100のユーザの入力操作を検知した旨の情報を受信したとき、または、ネイティブアプリケーション107からの指令(音声通話の開始など)を受信したときに、実行中のアプリケーションの扱いを選択決定する。サスペンド制御部102は、具体的には、起動中のアプリケーションをサスペンドするか否か、また、サスペンドに応じて、通信機能のAPIを実行している場合には、通信部によるネットワークとの接続状態を保持するか否か、すなわちキープアライブ状態とするか否かを決定する。
【0032】
特に本実施形態では、通信機能のAPIを利用して通信部105を介してネットワークNと通信するアプリケーション106を実行中に、この実行中のアプリケーションをサスペンドすることを決定した場合に、このアプリケーションが利用している通信機能APIによって通信部105を介してネットワークと接続されている状態を保持し、キープアライブ状態とするか否かを決定する。
【0033】
サスペンド及びキープアライブを判断するために、サスペンド制御部102は、操作入力部101及びネイティブアプリ107による端末動作に応じて、アプリケーションの扱い(サスペンド及びキープアライブの有無)を予め定義付けて保持している。図3は、サスペンド要因となる端末動作と、これらの動作ごとにキープアライブ状態とするか否かの定義の一例を示す表である。図3に示すように、サスペンド要因となる端末動作が、音声着信、メソッド呼び出し(カメラ、DTV(Digital Television)他)、イヤホンマイクによる発信、またはハンズフリー通信である場合、アプリケーションはサスペンドされると共に、キープアライブ状態となる。一方、サスペンド要因となる端末動作が、低電圧アラーム、テレビ電話着信(応答した契機)、端末性能上継続できない場合のマルチタスク及び位置情報提供の起動である場合、アプリケーションはサスペンドされると共に、ネットワークNとの通信接続を切断される。
【0034】
サスペンド制御部102は、アプリケーションをサスペンドすることを決定すると、サスペンド指令をアプリケーション制御部に送信すると共に、図3に示すサスペンド要因動作と関連付けられたキープアライブ可否が「切断」であり、キープアライブ状態にしないと決定した場合には、ネットワークとの通信接続を切断するための切断指令を通信部105に送信する。また、サスペンド前から無通信の監視タイマを継続しておき、監視タイマ満了時にも、切断指令を通信部105に送信する。一方、サスペンド制御部102は、図3に示すサスペンド要因動作と関連付けられたキープアライブ可否が「キープアライブする」であり、キープアライブ状態にすると決定した場合には、通信部105によるネットワークとの通信接続を切断せずに保持すべく、切断通知を通信部105に送信しない。
【0035】
サスペンド制御部102は、第2に、サスペンドしたアプリケーションをレジュームするか否かを決定する。より詳細には、サスペンド要因となる動作が終了すると、サスペンドしているアプリケーションをレジュームするレジューム指令をアプリケーション制御部に送信する。
【0036】
アプリケーション制御部103は、端末100内に保持されているアプリケーション106の起動、実行、終了、サスペンド、レジュームを制御する。より詳細には、アプリケーション制御部103は、サスペンド指令/レジューム指令をサスペンド制御部102から受信すると、アプリケーション106をサスペンド/レジュームする。
【0037】
アプリケーション106をサスペンドした場合には、アプリケーション制御部103は、通信制御部104にアプリケーション106がサスペンドされたことを示す「サスペンド通知」を送信する。
【0038】
アプリケーション106をレジュームした場合には、アプリケーション制御部103は、通信制御部104にアプリケーション106がレジュームされたことを示す「レジューム通知」を送信すると共に、サスペンド制御部102にもアプリケーション106のレジューム処理が完了したことを示す通知を送信する。そして、通信制御部104にレジューム通知を送信するのに応じて、通信端末100がサスペンド(キープアライブ)中に、リクエストに対するレスポンスなどのデータをネットワークNから受信していた場合には、通信制御部104からこのデータを受信し、アプリケーション106に渡す。より詳細には、サスペンド時に呼び出していた通信機能に関するAPI(以下、「通信API」とよぶ)を継続し、この通信APIに受信したデータを返す。
【0039】
また、通信制御部104にレジューム通知を送信するのに応じて、サスペンド(キープアライブ)中に、ネットワークNとの通信接続が切断されていた場合には、アプリケーション制御部103は、後述する通信部105から通信制御部104を介して、ネットワークNとの通信接続が切断されたことを示す「切断通知」を受信し、アプリケーション106に渡し、アプリケーション106を介して端末100のユーザに提示する。ここで、ネットワークNとの通信接続が切断される要因としては、ネットワークN側の何らかのエラー発生、端末内の無通信監視タイマ(無通信状態が所定時間経過を検知する)の満了、サスペンド制御部102による切断指令、などが挙げられる。
【0040】
アプリケーション制御部103は、Java VM(Java Vertual Machine)により実装される。
【0041】
通信制御部104は、通信部105によるネットワークNとのデータ通信接続を制御する。より詳細には、通信制御部104は、サスペンド通知をアプリケーション制御部103から受信し、かつ、通信部105から切断通知を受信しない場合には、サスペンドするアプリケーションがキープアライブ状態となると判断し、通信部105による通信セッションを継続する。そして、キープアライブ状態中に、レスポンスなど通信部105が受信したデータが通信部105から渡されると、これを保持する。保持するデータは、アプリケーション制御部103からレジューム通知を受信するのに応じて、アプリケーション制御部103へ送信する。
【0042】
また、通信制御部104は、キープアライブ状態中に、端末100内の無通信監視タイマの満了に伴い通信部105によるネットワーク接続を切断した場合、または、通信部105がネットワークとの接続を切断したことを示す「切断通知」を通信部105から受信した場合、これを保持しておき、アプリケーション制御部103からレジューム通知を受信するのに応じて、アプリケーション制御部103へ送信する。
【0043】
また、通信制御部104は、アプリケーション制御部103によりアプリケーション106が新たに起動され、このアプリケーション106が通信APIを利用するものである場合には、通信部105に対してネットワークNとの通信を接続させる旨の指令(接続指令)を送信する。
【0044】
通信制御部104は、Java VM(Java Vertual Machine)により実装される。
【0045】
通信部105は、ネットワークNとのデータ通信を実行する。通信部105は、具体的には、図2に示すハードウェアの無線通信部116により実現される。
【0046】
より詳細には、通信部105は、通信制御部104からの制御指令(接続指令、切断指令)に応じてネットワークNとの接続の確立/切断を行う。また、サスペンド制御部102からの切断指令に応じてネットワークNとの通信接続の切断を行う。
【0047】
また、通信部105は、レスポンスなどのデータをネットワークNから受信した場合には、通信制御部104に送信する。
【0048】
また、通信部105は、ネットワークNと通信接続中に、通信端末100が圏外に移動したときには、プリザベーション(Preservation)状態とする。「プリザベーション」とは、電波が途絶え、圏外となった場合にIPアドレスなどを確保するなど内部的な状態として接続状態を継続しておくことである。なお、プリザベーションの詳細は、3GPPで定義されている。
【0049】
また、通信部105は、ネットワーク側の何らかのエラー発生、端末内の無通信監視タイマの満了、サスペンド制御部102及び通信制御部104からの切断指令の受信などによって、ネットワークNとの接続が切断された場合には、切断通知を通信制御部104に送信する。ただし、送出したリクエストに対してレスポンスを受信した後に、ネットワーク接続が切断された場合には、リクエストに関する一連の通信セッションが終了しているため、切断通知を通信制御部に送信しないでおく。そして、アプリケーション106が新たに通信APIを呼び出してネットワークと通信を行うため、リクエストなどのデータ送信の指令をアプリケーション106から受信したときに、切断通知を通信制御部104に送信する。
【0050】
次に、図4〜8を参照して、本実施形態の通信端末100において実行される処理を説明すると共に、本実施形態に係るアプリケーション制御方法について説明する。
【0051】
図4は、本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理を示すシーケンス図である。
【0052】
まず、起動中のアプリケーション106において呼び出されている通信APIにより、例えばリクエストなどのデータがアプリケーション制御部103、通信制御部104及び通信部105を介してネットワークNへ送信される(S101)。
【0053】
次に、サスペンド制御部102により、操作入力部101またはネイティブアプリケーション107で検知された端末動作の内容に基づき、サスペンド要因となる動作が発生したか否かが判定される(S102:検知ステップ)。サスペンド要因となる端末動作の一例は図3に示すとおりである。
【0054】
サスペンド要因となる動作が発生していると判定された場合には、サスペンド制御部102により、当該端末動作に応じてアプリケーション106をサスペンドすると共に、キープアライブ状態とするか否かが判定される(S103:選択ステップ)。例えば、サスペンド制御部102は、図3に示すように、サスペンド要因となる端末動作ごとに、キープアライブするか、またはネットワーク接続を切断するかを予め定義しておき、これらの定義に基づき判定を行う。
【0055】
そして、サスペンド制御部102により、サスペンド要因となる動作が発生し、かつ、この動作がキープアライブ対象であると判定された場合には、起動中のアプリケーション106をサスペンドさせる旨のサスペンド指令がアプリケーション制御部103に送信される(S104:送信ステップ)。なお、図4〜8では、サスペンド要因となる動作がキープアライブ対象であった場合を例示しているので、このときサスペンド制御部102から通信部105へは何の指令も送信されてないが、サスペンド要因となる動作が、キープアライブ対象ではなく、ネットワーク切断を行うように設定されている場合には、サスペンド指令の送信と共に、通信部105にネットワークとの通信接続を切断させる旨の切断指令が送信される。
【0056】
次に、アプリケーション制御部103により、サスペンド指令の受信に応じて、起動中のアプリケーション106がサスペンドされ(S105)、この旨のサスペンド通知が通信制御部104に送信される(S106)。このようなステップS102〜S106の処理を経て、アプリケーション106のサスペンド遷移時に、ネットワークNとの通信接続を継続するキープアライブ状態となる。
【0057】
なお、キープアライブ状態中に、通信端末100が圏外に移動した場合には、通信部105により、IPアドレスなどを確保するなど内部的な状態として接続状態を継続しておくプリザベーション(Preservation)状態となり、通信端末100が再び圏内に戻ると通信接続が復旧される(S107)。
【0058】
キープアライブ状態中に、通信部105により、送出したリクエストに対するレスポンスなどのデータがネットワークNから受信されると、この受信したデータが通信制御部104に送信され(S108)、通信制御部104によりこのデータが保持される(S109)。
【0059】
サスペンド制御部102により、サスペンド要因となる動作が終了したことが検知されると(S110)、サスペンド中のアプリケーションをレジュームさせる旨のレジューム通知がアプリケーション制御部103に送信される(S111)。
【0060】
アプリケーション制御部103により、レジューム指令の受信に応じて、サスペンド中のアプリケーション106がレジュームされ(S112)、サスペンド時に呼び出していた通信APIが再び呼び出されると共に、この旨のレジューム通知が通信制御部104に送信される(S113)
【0061】
そして、通信制御部104により、レジューム通知の受信に応じて、キープアライブ状態時に保持していたネットワークNからの受信データ(レスポンスなど)がアプリケーション制御部103を介して、アプリケーション106の通信APIに渡される(S114)
【0062】
図5は、本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、ネットワーク接続が切断されたときの処理を示すシーケンス図である。図5に示すステップS201〜S206は、図4を参照して説明したステップS101〜S106と同様の処理なので、説明を省略する。つまり、ステップS201〜S206を経て、アプリケーションのサスペンド遷移時に、ネットワークNとの通信接続を継続するキープアライブ状態となっている。
【0063】
そして、キープアライブ状態中に、ネットワーク側の何らかのエラー発生、端末内の無通信監視タイマの満了、サスペンド制御部102及び通信制御部104からの切断指令の受信などによって、ネットワークとの接続が切断された場合(S207)には、通信部105により切断通知が通信制御部104に送信される(S208)。なお、通信部105は、ステップS201においてリクエストを送出していた場合には、このリクエストに対応するレスポンスが未受信であることを記憶してあり、この状態でネットワーク接続が切断された場合に、切断通知を通信制御部104へ送信する。
【0064】
通信制御部104では、通信部105から受信した切断通知が、キープアライブ状態中保持されている(S209)。
【0065】
次に、ステップS210〜S213(図4のステップS110〜S113と同一なので説明を省略)を経て、サスペンド中のアプリケーション106がレジュームされ、サスペンド時に呼び出していた通信APIが再び呼び出されると共に、レジューム通知が通信制御部104に送信される。
【0066】
そして、通信制御部104により、レジューム通知の受信に応じて、キープアライブ状態時に保持していた切断通知がアプリケーション制御部103を介して、アプリケーション106の通信APIに渡され(S214)、アプリケーション106を介して端末100のユーザにネットワークNとの通信接続が切断された旨が提示される。
【0067】
図6は、本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、送出したリクエストに応じてレスポンスを受信した後にネットワーク接続が切断されたときの処理を示すシーケンス図である。図6に示すステップS301〜S306は、図4を参照して説明したステップS101〜S106と同様の処理なので、説明を省略する。つまり、ステップS301〜S306を経て、アプリケーションのサスペンド遷移時に、ネットワークNとの通信接続を継続するキープアライブ状態となっている。
【0068】
キープアライブ状態中に、通信部105により、送出したリクエストに対するレスポンスをネットワークから受信すると、この受信したレスポンスが通信制御部104に送信され(S307)、通信制御部104によりこのレスポンスが保持される(S308)。なお、このとき、通信部105は、ステップS301において送出したリクエストに対応するレスポンスが受信され、一連の通信セッションが終了している旨を記憶しておく。
【0069】
そして、キープアライブ状態中に、ネットワークとの接続が切断された場合(S309)には、通信部105は、上述のように、ステップS301で送出したリクエストに関する一連の通信セッションが終了しており、また、既に通信制御部104にレスポンスが保持されているため、切断通知を通信制御部104に送信せずに保持しておく。
【0070】
次に、ステップS310〜S313(図4のステップS110〜S113と同一)を経て、サスペンド中のアプリケーションがレジュームされ、サスペンド時に呼び出していた通信APIが再び呼び出されると共に、レジューム通知が通信制御部104に送信される。
【0071】
そして、通信制御部104により、レジューム通知の受信に応じて、キープアライブ状態時に保持していたネットワークNからの受信レスポンスがアプリケーション制御部103を介して、アプリケーション106の通信APIに渡される(S314)。
【0072】
さらに、アプリケーション106が新たに通信APIを呼び出し、ネットワークNと通信を行うべくリクエストの送信指令を送出すると(S315)、通信部105により、ステップS309において通信部105に保持されていた切断通知が、通信制御部104及びアプリケーション制御部103を介して、アプリケーション106の通信APIに渡され(S316)、アプリケーション106を介して端末100のユーザにネットワークとの通信接続が切断された旨が提示される。
【0073】
図7は、本実施形態の通信端末100において実行される、アプリケーションのサスペンドからレジュームへの一連の処理において、通信APIを呼び出していないときにアプリケーションをサスペンドし、さらにキープアライブ時にネットワークとの通信接続が切断されたときの処理を示すシーケンス図である。
【0074】
図7に示すシーケンス開始時のアプリケーションの状態は、通信APIを呼び出していない状態、すなわち通信を伴わないAPIを呼び出している状態またはAPIを呼び出していない状態である。つまり、アプリケーションは、ネットワークとデータ通信を実行していない。このような状態において、ステップS401〜S405(図4のステップS102〜S106と同じ)を経て、アプリケーションのサスペンド遷移時に、ネットワークNとの通信接続を継続するキープアライブ状態となっている。そして、キープアライブ状態中にネットワークとの接続が切断される(S406)。このとき、アプリケーションは、ネットワークとデータ通信を実行していない状態なので、通信部105は切断通知を通信制御部104に送信せずに保持しておく。
【0075】
次に、ステップS407〜S410(図4のステップS110〜S113と同一)を経て、サスペンド中のアプリケーション106がレジュームされ、サスペンド時のAPIの呼び出し状態が復旧されると共に、レジューム通知が通信制御部104に送信される。ここでは、通信制御部104には何のデータや通知も保持されていないため、アプリケーション106に情報が渡されることなくアプリケーション106がレジュームされる。
【0076】
そして、アプリケーション106が新たに通信APIを呼び出し、ネットワークNと通信を行うべくリクエストの送信指令を送出すると(S411)、通信部105により、ステップS406において通信部105に保持されていた切断通知が、通信制御部104及びアプリケーション制御部103を介して、アプリケーション106の通信APIに渡され(S412)、アプリケーション106を介して端末100のユーザにネットワークとの通信接続が切断された旨が提示される。
【0077】
以上に説明した本実施形態に係る通信端末100において実施される動作は、以下のとおりである。
(1)サスペンド時
・サスペンド時にTCPセッションやUDP通信などが存在する場合は、それらを切断しない
・サスペンド時に呼び出し中のAPIは失敗させない
(2)キープアライブ中
・下位のネットワークIF層では通信(送受信)を継続する
・サスペンド前から無通信監視タイマを継続する。監視タイマ満了時は通信を切断する
(3)レジューム時
(3−1)キープアライブ中に通信が切断しなかった場合
・通信セッションを継続する
・サスペンド時に呼び出していた通信APIも継続する
・ネットワークからレスポンスを受信するAPIを呼び出し中にサスペンドし、キープアライブ中にネットワークからレスポンスを受信していた場合は、レジューム時に呼び出していたAPIに受信したレスポンスを返す
(3−2)キープアライブ中に何らかの要因により通信が切断された場合
・通信セッションは切断のままとする
・サスペンド時に通信APIを呼び出していた場合、切断例外が入る(切断通知を送信する)
・サスペンド時に通信APIを呼び出していなかった場合(APIを呼び出していない、または通信を伴わないAPIを呼び出していた場合の両方を含む)は、切断例外は発生せず、特別な通知を行わない。この場合、レジューム後に新たに通信APIを呼び出したときに、切断通知が送信される
・ネットワークからレスポンスを受信するAPIを呼び出し中にサスペンドし、キープアライブ中にネットワークからレスポンスを受信していた場合は、レジューム時に呼び出していたAPIに受信したレスポンスを返す
【0078】
次に、本実施形態に係る通信端末100及びアプリケーション制御方法による作用・効果を説明する。このような通信端末100及びアプリケーション制御方法によれば、サスペンド制御部102が、起動中のアプリケーション106をサスペンドする要因となる端末動作を検知すると、このアプリケーション106をサスペンドさせるサスペンド指令をアプリケーション制御部103に送信すると共に、検知した端末動作に応じて、通信部105による通信ネットワークNとの通信接続を切断せずに保持するキープアライブ状態を選択可能である。
【0079】
このため、アプリケーション106によるオンライン通信実行中に、誤ったオンフックキー押下や短時間の音声通話などによりアプリケーション106がサスペンドした場合にも、意図しない不必要な通信切断が行われるのを回避することが可能となり、アプリケーション106をサスペンドから回復するときに、時間のかかる再接続操作が不要となり、この結果、ユーザの利便性、快適性を向上させることができる。また、アプリケーション106がサスペンドされても通信部105による通信ネットワークNとの通信が保持されるので、サスペンド時に通信ネットワークNを介して当該通信端末100と通信中だった対向機器からは、一切変更が無く通信が継続しているように見え、対向機器との円滑な通信継続が可能となる。
【0080】
また、サスペンド制御部102が、アプリケーション106をサスペンドさせる要因となる端末動作の終了を検知すると、アプリケーション制御部103に対してサスペンド中のアプリケーション106をレジュームさせるレジューム指令を送信し、アプリケーション制御部103が、サスペンド指令に応じてサスペンドさせたアプリケーション106を、レジューム指令の受信に応じてレジュームさせる。
【0081】
また、アプリケーション制御部103が、レジューム指令の受信に応じてアプリケーション106をレジュームさせたときに、アプリケーション106をレジュームさせたことを示すレジューム通知を通信制御部104に送信し、通信制御部104は、アプリケーション106がサスペンドされた時にアプリケーション106の通信APIが実行中であり、アプリケーション106がサスペンドされている間に、該アプリケーションの通信APIに関するデータを通信部105を介して通信ネットワークNから受信すると、この受信したデータを保持しておき、アプリケーション制御部103からのレジューム通知の受信に応じて、保持していたデータをアプリケーション制御部103に送信し、アプリケーション制御部103が、通信制御部104から受信したデータをアプリケーション106の通信APIに送信する。
【0082】
このため、外部の通信ネットワークNからサスペンド中のアプリケーション106に対して送信されたデータを受信し保持することができるため、サスペンド中でも受信データを洩れなく取得することが可能となり、ユーザの利便性、快適性をより一層向上させることができる。また、サスペンド中のアプリケーション106へのデータ送信が可能となるため、通信ネットワークNを介して当該通信端末100と通信中だった対向機器からは、一切変更が無く通信が継続しているように見え、対向機器との円滑な通信継続が可能となる。
【0083】
また、アプリケーション106がサスペンドされている間に該通信端末100が圏外に遷移したときには、通信部105による通信ネットワークNとの通信の接続状態を維持するプリザベーション状態とするため、例えばトンネル通過時など短時間の圏外遷移でも通信が途切れてしまうことを回避することができ、ユーザの利便性、快適性をさらに向上させることができる。
【0084】
また、通信制御部104は、アプリケーション106がサスペンドされた時にアプリケーション106の通信APIが実行中であり、アプリケーション106がサスペンドされている間に、通信部105による通信ネットワークNとの通信が切断された場合には、通信が切断された旨を示す切断通知を保持しておき、サスペンドしたアプリケーション106がレジュームする際に、アプリケーション制御部103を介してアプリケーション106の通信APIに切断通知を送信する。このため、通信機能を実行中にサスペンドしたアプリケーションをレジュームしたときに、即座に通信ネットワークとの通信が切断された旨を当該通信端末のユーザに報知することが可能となり、ユーザの利便性、快適性をさらに向上させることができる。
【0085】
また、通信制御部104は、アプリケーション106がサスペンドされている間に通信部105による通信ネットワークNとの通信が切断される前に、該アプリケーション106の通信APIに関するデータを通信部105を介して通信ネットワークNから受信していた場合には、切断通知を保持せずにこの受信したデータを保持しておき、サスペンドしたアプリケーション106がレジュームする際に、アプリケーション制御部103を介してアプリケーション106にデータを送信する。
【0086】
このため、外部の通信ネットワークNとの通信が切断される前までに、通信ネットワークNからサスペンド中のアプリケーション106に対して送信されたデータを受信し保持することができるため、サスペンド中でも受信データを取得することが可能となり、ユーザの利便性、快適性をより一層向上させることができる。
【0087】
また、通信部105は、アプリケーション106がサスペンドされた時にアプリケーション106の通信APIが実行されておらず、アプリケーション106がサスペンドされている間に、通信部105による通信ネットワークNとの通信が切断された場合には、通信が切断された旨を保持しておき、サスペンドしたアプリケーション106がレジュームされた後に通信APIが実行されたときに、通信制御部104及びアプリケーション制御部103を介してアプリケーション106の通信APIに通信が切断された旨を示す切断通知を送信する。
【0088】
このため、サスペンド中に通信ネットワークNとの通信が切断されても、レジューム後にアプリケーション106の通信APIがはじめて使われたときに、通信ネットワークNとの通信が切断された旨を当該通信端末100のユーザに報知することができるため、アプリケーション106がレジュームしたときに余計な情報をユーザに報知することがなくなり、ユーザの利便性、快適性をさらに向上させることができる。
【0089】
以上、本発明に係る通信端末100及びアプリケーション制御方法について好適な実施形態を挙げて説明したが、本発明は上記実施形態に限られるものではない。通信部105によるネットワークNとの通信接続が切断されるバリエーションとしては、異常通信(従量課金ユーザが一定量を超える通信を行っている状態など)を検知した場合に切断するよう構成してもよい。
【0090】
また、上記実施形態では、キープアライブ動作が行われる例として分かりやすさの観点から主にリクエスト/レスポンスの通信を例示したが、この他、通信端末100がデータを送信または受信するのみの通信でも、キープアライブ動作が行われた場合には本発明を適用可能である。さらに、データ送信中または受信中にサスペンド要因が発生してキープアライブ状態となった場合にも、本発明を適用可能である。
【符号の説明】
【0091】
100…通信端末、102…サスペンド制御部(サスペンド制御手段)、103…アプリケーション制御部(アプリケーション制御手段)、104…通信制御部(通信制御手段)、105…通信部(通信手段)、106…アプリケーション、N…通信ネットワーク。


【特許請求の範囲】
【請求項1】
アプリケーションの実行を制御するアプリケーション制御手段と、
前記アプリケーション制御手段により通信機能を含むアプリケーションが実行されると、通信手段を制御して通信ネットワークとの通信を確立し、該アプリケーションの通信機能を実行する通信制御手段と、
前記アプリケーションをサスペンドする要因となる端末動作を検知すると、前記アプリケーション制御手段に対して起動中のアプリケーションをサスペンドさせるサスペンド指令を送信するサスペンド制御手段と、を備え、
前記サスペンド制御手段が、前記端末動作に応じて、前記通信手段による前記通信ネットワークとの通信接続を切断することなく、前記通信機能を含むアプリケーションをサスペンドさせるサスペンド指令を前記アプリケーション制御手段に送信するキープアライブ状態を選択可能であることを特徴とする、
通信端末。
【請求項2】
前記サスペンド制御手段が、前記アプリケーションをサスペンドさせる要因となる端末動作の終了を検知すると、前記アプリケーション制御手段に対してサスペンド中の前記アプリケーションをレジュームさせるレジューム指令を送信し、
前記アプリケーション制御手段が、前記サスペンド指令に応じてサスペンドさせた前記アプリケーションを、前記レジューム指令の受信に応じてレジュームさせることを特徴とする、請求項1に記載の通信端末。
【請求項3】
前記アプリケーション制御手段が、前記レジューム指令の受信に応じて前記アプリケーションをレジュームさせたときに、前記アプリケーションをレジュームさせたことを示すレジューム通知を前記通信制御手段に送信し、
前記通信制御手段は、前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行中であり、前記アプリケーションがサスペンドされている間に、該アプリケーションの通信機能に関するデータを前記通信手段を介して前記通信ネットワークから受信すると、この受信したデータを保持しておき、前記アプリケーション制御手段からの前記レジューム通知の受信に応じて、保持していたデータを前記アプリケーション制御手段に送信し、
前記アプリケーション制御手段が、前記通信制御手段から受信したデータを前記アプリケーションの前記通信機能に送信することを特徴とする、請求項2に記載の通信端末。
【請求項4】
前記アプリケーションがサスペンドされている間に該通信端末が圏外に遷移したときには、前記通信手段による前記通信ネットワークとの通信の接続状態を維持するプリザベーション状態とすることを特徴とする、請求項1または2に記載の通信端末。
【請求項5】
前記通信制御手段は、前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行中であり、前記アプリケーションがサスペンドされている間に、前記通信手段による前記通信ネットワークとの通信が切断された場合には、通信が切断された旨を示す切断通知を保持しておき、サスペンドした前記アプリケーションがレジュームする際に、前記アプリケーション制御手段を介して前記アプリケーションの前記通信機能に前記切断通知を送信することを特徴とする、請求項1または2に記載の通信端末。
【請求項6】
前記通信制御手段は、前記アプリケーションがサスペンドされている間に前記通信手段による前記通信ネットワークとの通信が切断される前に、該アプリケーションの通信機能に関するデータを前記通信手段を介して前記通信ネットワークから受信していた場合には、前記切断通知を保持せずにこの受信したデータを保持しておき、サスペンドした前記アプリケーションがレジュームする際に、前記アプリケーション制御手段を介して前記アプリケーションに前記データを送信することを特徴とする、請求項5に記載の通信端末。
【請求項7】
前記アプリケーションがサスペンドされた時に前記アプリケーションの前記通信機能が実行されておらず、前記アプリケーションがサスペンドされている間に、前記通信手段による前記通信ネットワークとの通信が切断された場合には、前記通信手段は、通信が切断された旨を保持しておき、サスペンドした前記アプリケーションがレジュームされた後に前記通信機能が実行されたときに、前記通信制御手段及び前記アプリケーション制御手段を介して前記アプリケーションの前記通信機能に通信が切断された旨を示す切断通知を送信することを特徴とする、請求項1または2に記載の通信端末。
【請求項8】
アプリケーションの実行を制御するアプリケーション制御手段と、前記アプリケーション制御手段により通信機能を含むアプリケーションが実行と、通信手段を制御して通信ネットワークとの通信を確立し、該アプリケーションの通信機能を実行する通信制御手段と、前記アプリケーションをサスペンドする要因となる端末動作を検知すると、前記アプリケーション制御手段に対して起動中のアプリケーションをサスペンドさせるサスペンド指令を送信するサスペンド制御手段と、を有する通信端末において実行されるアプリケーション制御方法であって、
前記サスペンド制御手段が、前記端末動作を検知する検知ステップと、
前記検知ステップにおいて前記端末動作が検知されると、前記サスペンド制御手段が、前記通信機能を含むアプリケーションをサスペンドさせるサスペンド指令を前記アプリケーション制御手段に送信する送信ステップと、
前記サスペンド制御手段が、前記検知ステップにおいて検知された前記端末動作に応じて、前記通信手段による前記通信ネットワークとの通信接続を切断せずにその接続状態を保持するキープアライブ状態を選択する選択ステップと、
を含むことを特徴とするアプリケーション制御方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−233979(P2011−233979A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−100184(P2010−100184)
【出願日】平成22年4月23日(2010.4.23)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】