以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下の説明では、開示の技術に係る端末装置の一例としてスマートデバイスを例に挙げて説明するが、開示の技術は、これに限定されるものではない。開示の技術は、例えば、パーソナル・コンピュータ、ゲーム機、カーナビゲーション装置、デジタルカメラ、又は電子辞書などの種々の端末装置に適用可能である。
[第1実施形態]
一例として図1に示すように、本第1実施形態に係るスマートデバイス10は、通信先切替装置13を含む。通信先切替装置13は、受信部12、測定部14、処理部16、切替部18、取得部20、記憶部22、及びアプリ24を備えている。
受信部12は、無線通信装置261、無線通信装置262、・・・・及び無線通信装置26n(以下、これらを区別して説明する必要がない場合は、「無線通信装置26」と称する)の各々から送信された電波を受信する。ここで、複数の無線通信装置26とは、例えば、スマートデバイス10によって通信先及び通信先候補として検出された複数のWi−Fiアクセスポイント(以下、「AP」という)及び3G(3rd Generation)基地局を指す。なお、通信先とは、スマートデバイス10と無線通信可能に接続されたAP又は3G基地局を指す。通信先候補とは、スマートデバイス10と無線通信可能なエリア内に存在する通信先以外のAP及び3G基地局を指す。
測定部14は、受信部12で受信された電波(受信電波)の強度を無線通信装置26毎に測定する。ここで、測定部14によって測定される電波の強度とは、例えば、RSSI(Received Signal Strength Indication)を指す。
アプリ24は、例えば、スマートデバイス10のユーザ(以下、「ユーザ」という)の指示に従ってインターネット経由でダウンロードされたアプリである。処理部16は、アプリ24を実行することにより複数の無線通信装置26のうちの通信先として定められた無線通信装置26と無線通信を行う。なお、処理部16の一例としては、通信ライブラリが例示できる。
切替部18は、処理部16が無線通信中でない場合、通信先としての無線通信装置26を、測定部14で測定された電波の強度の変動パターンに応じて切り替える。すなわち、処理部16が無線通信中でなく、且つ通信先として定められた無線通信装置26が電波不良型の無線通信装置26の場合に、通信先を電波不良型の無線通信装置26から電波良好型の無線通信装置26に切り替える。また、切替部18は、処理部16が無線通信中でない場合、測定部14で測定された電波の強度の変動パターンに応じた切り替えを抑制する。
ここで、電波不良型の無線通信装置26とは、測定部14で測定された電波の強度の経時変化が不良型となる電波を送信する無線通信装置26を指す。電波良好型の無線通信装置26とは、測定部14で測定された電波の強度の経時変化が良好型となる電波を送信する無線通信装置26を指す。不良型の経時変化とは、無線通信が不安定となる経時変化を意味し、例えば、後述の変動パターンA及び変動パターンB(図4A及び図4B参照)を指す。また、良好型の経時変化とは、無線通信が安定する経時変化を意味し、例えば、後述の変動パターンC(図4C参照)を指す。
取得部20は、スマートデバイス10の所在位置を示す位置情報(例えば、GPS(Global Positioning System)を利用して測定された緯度及び経度)を取得する。
記憶部22は、スマートデバイス10の過去の所在位置毎に、且つ測定部14による測定が行われた測定時間帯毎に、測定部14により測定された電波の強度の経時変化の型を示す類型情報を複数の無線通信装置26の各々と対応付けて記憶している。ここで、経時変化の型は、良好型と不良型とに分類される。また、類型情報とは、例えば、後述の変動パターンA、変動パターンB又は変動パターンC(図4A〜図4C参照)を指し、変動パターンA及び変動パターンBは不良型に属し、変動パターンCは良好型に属する。なお、以下では、説明の便宜上、変動パターンA及び変動パターンBを区別して説明する必要がない場合、不良型変動パターンと称し、変動パターンCを不良型変動パターンと対比して説明する必要がある場合、良好型変動パターンと称する。
切替部18は、現在時刻に対応する時刻を含む測定時間帯及び取得部20により取得された位置情報に対応する類型情報を取得する。そして、処理部16が無線通信中でない場合に、通信先としての無線通信装置を、取得した類型情報に応じて切り替える。例えば、取得した類型情報が良好型(例えば、変動パターンC(図4C参照))を示し、且つ、処理部16が無線通信中でない場合に、通信先を、取得した類型情報に対応する無線通信装置26に切り替える。
一例として図2に示すように、スマートデバイス10は、CPU30、一次記憶部32、及び二次記憶部34を備えている。一次記憶部32は、揮発性のメモリ(例えばRAM(Random Access Memory))である。二次記憶部34は、不揮発性のメモリ(例えばフラッシュメモリやHDD(Hard Disk Drive)など)である。CPU30、一次記憶部32及び二次記憶部34は、バス36を介して相互に接続されている。
二次記憶部34は、一例として図3に示すように、アプリ241、アプリ242、・・・及びアプリ24n(以下、これらを区別して説明する必要がない場合は、「アプリ24」と称する)を記憶している。複数のアプリ24は何れもCPU30によって実行されることによりCPU30が通信先と無線通信を行うことを含む処理を行うためのアプリである。
図3に示す複数のアプリ24の一例としては、ストリーミング系アプリ、リアルタイムコミュニケーション系アプリ、ラージデータ取得系アプリ、及び非同期通信系アプリが例示できる。ストリーミング系アプリとは、動画や音声などのデータをダウンロードしながら再生するためのアプリを指す。リアルタイムコミュニケーション系アプリとは、通話中に生成される受話音声データ及び送話音声データなどのリアルタイムデータを送受信するためのアプリを指す。ラージデータ取得系アプリとは、所謂ラージデータと称されるデータをhttp(hyper text transfer protocol)又はftp(file transfer protocol)でダウンロードするためのアプリを指す。非同期通信系アプリとは、検索エンジンによってインターネット経由で提供される地図のように、利用者による操作とは非同期的に通信を行うためのアプリを指す。
なお、本第1実施形態では、切替部18により無線通信中の通信先の切り替えが抑制されるが、開示の技術はこれに限定されるものではなく、同じアプリにおいて切り替え方法がカスタマイズされてもよい。例えば、リアルタイムコミュニケーション系アプリでは、音質が悪化してコミュニケーションが阻害されてしまう場合があるので、通信中でも切り替える。切り替え時期の判断は、パケットロス率や、遅延・ジッタの値を監視して行う。また、ダウンロード系でも、大きなデータのダウンロード中でも、ダウンロードの終盤であれば切り替えを行わず、ダウンロードの序盤であれば切り替えを行ってダウンロードをやり直すようにしてもよい。そのために、ダウンロードに先立ってデータサイズを把握し(URLを埋め込んだり、サイズを取得する等)、進行状況に応じて、切り替え要否を判断すればよい。
二次記憶部34は、変動パターン判定プログラム38、第1切替プログラム40、第2切替プログラム42、及び電波状態管理テーブル44を記憶している。なお、以下では、変動パターン判定プログラム38、第1切替プログラム40、及び第2切替プログラム42を区別して説明する必要がない場合、これらを総称して「プログラム」という。
CPU30は、二次記憶部34から変動パターン判定プログラム38を読み出して一次記憶部32に展開し、変動パターン判定プログラム38を実行する。
電波状態管理テーブル44は、一例として図5に示すように、スマートデバイス10の過去の所在位置(例えば、過去に取得された位置情報)毎に、且つ、電波強度の測定時間帯毎に、電波状態情報を記憶している。ここで、測定時間帯とは、一例として図5に示すように、10分刻みの年月日時分で規定される時間帯を指す。電波状態情報とは、識別情報と変動パターンとを対応付けた情報を指す。識別情報とは、スマートデバイス10によって検出された一例として図2に示すAP60や3G基地局62を識別可能な識別情報(例えば、SSID(Service Set Identifier))を指す。図5に示す例では、識別情報の一例として、“AAAA−xxxx”、“BBBB−yyyy”、及び“CCCC−zzzz”が例示されている。変動パターンとは、例えば、後述の通信インタフェース56によって受信された電波の強度(以下、「電波強度」という)の経時変化の型を指す。
なお、本第1実施形態において、変動パターンとは、一例として図4A〜図4Cに示すように、変動パターンA、変動パターンB、及び変動パターンCを指す。変動パターンA〜Cは、所定時間に測定された電波強度の平均値及び分散によって定められる。電波強度の平均値を「高」、「中」及び「低」に分類し、電波強度の分散を「大」及び「小」に分類すると、変動パターンAとは、電波強度の平均値が「低」で、且つ、電波強度の分散が「小」の変動パターンを意味する。また、変動パターンBとは、電波強度の平均値が「中」で、且つ、電波強度の分散が「大」の変動パターンを意味する。更に、変動パターンCとは、電波強度の平均値が「高」で、且つ、電波強度の分散が「小」の変動パターンを意味する。
CPU30は、二次記憶部34から第1切替プログラム40を読み出して一次記憶部32に展開し、第1切替プログラム40を実行する。CPU30は、第1切替プログラム40を実行することで、図1に示す測定部14、切替部18、及び取得部20として動作する。なお、第1切替プログラム40がCPU30によって実行されることにより図1に示す切替部18がCPU30で実現される場合、電波状態管理テーブル44を記憶する二次記憶部34は図1に示す記憶部22として用いられる。
CPU30は、二次記憶部34から第2切替プログラム42を読み出して一次記憶部32に展開し、第2切替プログラム42を実行する。CPU30は、第1切替プログラム42を実行することで、図1に示す測定部14及び切替部18として動作する。
なお、ここではプログラムを二次記憶部34から読み出す場合を例示したが、必ずしも最初から二次記憶部34に記憶させておく必要はない。例えば、スマートデバイス10に接続されて使用されるSSD(Solid State Drive)、DVDディスク、ICカード、光磁気ディスク、CD−ROMなどの任意の可搬型の記憶媒体に先ずはプログラムを記憶させておいてもよい。そして、CPU30がこれらの可搬型の記憶媒体からプログラムを取得して実行するようにしてもよい。また、通信回線を介してスマートデバイス10に接続されるコンピュータ又はサーバ装置等の外部電子計算機の記憶部にプログラムを記憶させておいてもよい。この場合、CPU30は外部電子計算機からプログラムを取得して実行する。
図2に戻って、スマートデバイス10は、受付部46及び表示部48を備えている。受付部46及び表示部48は、バス36に接続されている。受付部46は、タッチパネル及びタッチパネル外に設けられたキー(ハードキー)等を含み、スマートデバイス10の利用者からの指示を受け付ける。表示部48は、ディスプレイ(例えばタッチパネルに重ねられた液晶ディスプレイ)を含み、CPU30の制御下で、ディスプレイに各種情報を表示する。
スマートデバイス10は、リアルタイムクロック(以下、「RTC」という)50、GPS受信部52、及び外部インタフェース54を備えている。RTC50、GPS受信部52、及び外部インタフェース54は、バス36に接続されている。
RTC50は、現在時刻を刻む装置であり、CPU30からの要求に応じて現在時刻をCPU30へ出力する。なお、本第1実施形態に係るスマートデバイス10では、電源投入後、AP60又は3G基地局62を介して時刻を示す時刻情報が受信され、受信された時刻情報により示される時刻が現在時刻としてRTC50に上書きされる。これにより、バッテリ無し又はバッテリ放電後でもRTC50の現在時刻が高精度に計時される。
GPS受信部52は、CPU30からの指示に応じて複数のGPS衛星からの電波を受信し、受信結果を示す受信結果情報をCPU30に出力する。CPU30は、GPS受信部52から入力された受信結果情報に基づいてスマートデバイス10の所在位置を示す緯度及び経度を測定する。
外部インタフェース54は、外部装置(例えばパーソナル・コンピュータやUSBメモリ)が接続され、外部装置とCPU30との間の各種情報の送受信を司る。
スマートデバイス10は、通信インタフェース56を備えている。通信インタフェース56は、スマートデバイス10と外部装置とを通信可能に接続する。通信インタフェース56は、Wi−Fiインタフェース56A及び3Gインタフェース56Bを有し、Wi−Fiインタフェース56A及び3Gインタフェース56Bは、バス36に接続されている。Wi−Fiインタフェース56Aは、AP60を利用してスマートデバイス10と外部装置(例えば、インターネット回線64に接続されている通信装置)とを通信可能に接続する。3Gインタフェース56Bは、3G基地局62を利用してスマートデバイス10と外部装置(例えば、インターネット回線64又は3G回線66に接続されている通信装置)とを通信可能に接続する。
Wi−Fiインタフェース56A及び3Gインタフェース56Bは、例えば、無線通信プロセッサ(図示省略)、送受信回路(図示省略)及びアンテナ(図示省略)により実現される。無線通信プロセッサは、CPU30と情報の授受を行う。また、無線通信プロセッサは、CPU30の指示を受けて送受信回路及びアンテナを介して、図1に示す複数の無線通信装置26の一例であるAP601、AP602、・・・・AP60n、及び3G基地局62を通信先として選択的に設定する。なお、以下では、説明の便宜上、AP601、AP602、・・・・及びAP60nを区別して説明する必要がない場合、「AP60」と称する。また、以下では、説明の便宜上、AP60及び3G基地局62を区別して説明する必要がない場合、「無線基地局」と称する。
スマートデバイス10は、無線通信プロセッサによって何れかのAP60が通信先として設定された場合、Wi−Fiインタフェース56Aを介してAP60と無線通信を行うことが可能となる。また、スマートデバイス10は、無線通信プロセッサによって3G基地局62が通信先として設定された場合、3Gインタフェース56Bを介して3G基地局62と無線通信を行うことが可能となる。なお、スマートデバイス10では、無線通信プロセッサと特定の無線基地局(例えば、CPU30によって選択された無線基地局)との間でアソシエーションが行われて通信路が確立されることで、特定の無線基地局が通信先として設定される。
AP60は、インターネット回線64に接続されており、インターネット回線64には回線混雑度監視サーバ68が接続されている。また、3G基地局62は、3G回線66を介してインターネット回線64に接続されている。
一例として図6に示すように、AP60は、CPU70、一次記憶部72、二次記憶部74、第1通信インタフェース76、及び第2通信インタフェース78を備えている。CPU70、一次記憶部72、二次記憶部74、第1通信インタフェース76、及び第2通信インタフェース78は、バス80を介して相互に接続されている。なお、3G基地局62は、AP60と比べ、第1通信インタフェース76に代えて第1通信インタフェース84を有する点、及び第2通信インタフェース78に代えて第2通信インタフェース86を有する点が異なる。
一次記憶部72は、揮発性のメモリであり、二次記憶部74は、不揮発性のメモリである。二次記憶部74は、回線混雑度算出プログラム82を記憶している。CPU70は、二次記憶部74から回線混雑度算出プログラム82を読み出して一次記憶部72に展開し、回線混雑度算出プログラム82を実行する。
第1通信インタフェース76は、Wi−Fiの通信方式に従ってスマートデバイス10とAP60とを無線通信可能に接続する。第1通信インタフェース84は、3Gの通信方式に従ってスマートデバイス10と3G基地局62とを無線通信可能に接続する。
第2通信インタフェース78は、インターネット回線64に接続されており、インターネット回線64に接続されている外部装置(例えば、サーバ)とAP60とを通信可能に接続する。第2通信インタフェース86は、3G回線66に接続されており、インターネット回線64又は3G回線66に接続されている外部装置(例えば、サーバ)と3G基地局62とを通信可能に接続する。
一例として図7に示すように、回線混雑度監視サーバ68は、CPU88、一次記憶部90、二次記憶部92、及び通信インタフェース94を備えている。CPU88、一次記憶部90、二次記憶部92、及び通信インタフェース94は、バス96を介して相互に接続されている。
一次記憶部90は、揮発性のメモリであり、二次記憶部92は、不揮発性のメモリである。二次記憶部92は、回線混雑度収集プログラム98及び回線混雑度管理テーブル100を記憶している。CPU88は、二次記憶部92から回線混雑度収集プログラム98を読み出して一次記憶部90に展開し、回線混雑度収集プログラム98を実行することで、回線混雑度管理テーブル100に回線混雑度が識別情報毎に記憶される。ここで、回線混雑度とは、例えば、無線基地局における単位時間あたりのデータ転送量を指す。
通信インタフェース94は、インターネット回線64に接続されており、インターネット回線64又は3G回線66に接続されている外部装置(例えば、無線基地局)と回線混雑度監視サーバ68とを通信可能に接続する。
次に本第1実施形態の作用を説明する。先ず、スマートデバイス10の主電源がオンされてからCPU30によって所定時間毎(例えば、1秒毎)に変動パターン判定プログラム38が実行されることでスマートデバイス10によって行われる変動パターン判定処理について、図8を参照して説明する。
なお、以下では、説明の便宜上、スマートデバイス10の通信先として特定の無線基地局が既に設定されていることを前提にして説明する。また、以下では、説明の便宜上、スマートデバイス10と無線通信可能なエリア内に複数の無線基地局が存在していることを前提にして説明する。ここで、スマートデバイス10と無線通信可能なエリア内に存在する複数の無線基地局とは、例えば、スマートデバイス10と無線通信可能なエリア内に存在する複数のAP60及び3G基地局62を指す。また、以下の変動パターン判定処理の説明では、説明の便宜上、スマートデバイス10と無線通信可能なエリア内に存在する複数の無線基地局を「複数の無線基地局」と称する。
図8に示す変動パターン判定処理では、先ず、ステップ150で、CPU30は、GPS受信部52から受信結果情報を取得し、取得した受信結果情報に基づいて、スマートデバイス10の現在の所在位置を示す緯度及び経度を測定する。
次のステップ152で、CPU30は、ステップ150で取得した緯度及び経度に基づく位置情報を生成し、その後、ステップ154へ移行する。ここで、位置情報とは、例えば、ステップ150で取得した緯度及び経度の各々の小数第2位の値を四捨五入して得た緯度及び経度を指す。
ステップ154で、CPU30は、複数の無線基地局の各々の電波強度(ここでは一例として、通信インタフェース56により受信された電波の電波強度)を取得する。
次のステップ156で、CPU30は、ステップ154で取得した電波強度を、複数の無線基地局の各々の識別情報毎に、ステップ152で生成した位置情報及びRTC50から取得した現在時刻と対応付けて一次記憶部32に記憶する。
次のステップ158で、CPU30は、変動パターン判定処理の1回目の実行が開始された時点又は後述のステップ163の処理を終了した前回の時点から所定時間(例えば、10分)が経過したか否かを判定する。ステップ158において、変動パターン判定処理の1回目の実行が開始された時点又は後述のステップ163の処理を終了した前回の時点から所定時間が経過した場合は、判定が肯定されて、ステップ159へ移行する。ステップ158において、変動パターン判定処理の1回目の実行が開始された時点又は後述のステップ163の処理を終了した前回の時点から所定時間が経過していない場合は、判定が否定されて、ステップ164へ移行する。
ステップ159で、CPU30は、ステップ156で一次記憶部32に記憶された電波強度の所定時間内(例えば、過去の10分以内)における平均値及び分散を複数の無線基地局毎に算出し、その後、ステップ160へ移行する。
ステップ160で、CPU30は、複数の無線基地局のうちの未だに後述のステップ161及びステップ162の処理対象とされていない1つを注目無線基地局として設定し、その後、ステップ161へ移行する。
ステップ161で、CPU30は、注目無線基地局について、ステップ159で算出した平均値及び分散に基づいて、ステップ156で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れかに該当するか否かを判定する。ステップ161において、注目無線基地局について、ステップ156で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れかに該当する場合は、判定が肯定されて、ステップ162へ移行する。ステップ161において、注目無線基地局について、ステップ156で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れにも該当しない場合は、判定が否定されて、ステップ163へ移行する。
ステップ162で、CPU30は、ステップ161で特定した変動パターンを、注目無線基地局の識別情報、ステップ152で生成した位置情報、及びRTC50から取得した現在時刻(現在の年月日時分)と対応付けて電波状態管理テーブル44に記憶する。
次のステップ163で、CPU30は、複数の無線基地局の全てについてステップ160〜ステップ162の処理を終了したか否かを判定する。ステップ163において、複数の無線基地局の全てについてステップ160〜ステップ162の処理を終了した場合は、判定が肯定されて、ステップ164へ移行する。ステップ163において、複数の無線基地局の全てについてステップ160〜ステップ162の処理を終了していない場合は、判定が否定されて、ステップ160へ移行する。
ステップ164で、CPU30は、変動パターン判定処理の終了条件を満足しているか否かを判定する。変動パターン判定処理の終了条件としては、例えば、受付部46により終了指示が受け付けられたとの条件やスマートデバイス10のバッテリの残容量が5%を下回ったとの条件が挙げられる。ステップ164において、変動パターン判定処理の終了条件を満足していない場合は、判定が否定されて、ステップ150へ移行する。ステップ164において、変動パターン判定処理の終了条件を満足している場合は、判定が肯定されて、変動パターン判定処理を終了する。
次に、アプリ24の起動が完了した際にCPU30によって第1切替プログラム40が実行されることでスマートデバイス10によって行われる第1切替処理について、図9を参照して説明する。なお、以下では、説明の便宜上、複数のアプリ24が既にCPU30によって実行されていることを前提にして説明する。また、以下では、説明の便宜上、電波状態管理テーブル44に24時間分(1日分)の測定時間帯毎(ここでは一例として10分毎)の所在位置及び電波状態情報が記憶されていることを前提にして説明する。
図9に示す第1切替処理では、先ず、ステップ200で、切替部18は、アプリ24毎の通信状況情報を取得する。ここで、通信状況情報とは、例えば、アプリ24が処理部16を利用して無線通信を行っているか否かを示す無線通信有無情報、アプリ24のプロセスID、及び現在時刻(例えば、年月日時分)を含む情報を指す。
ステップ202で、切替部18は、起動が完了したアプリ24(以下、「起動アプリ24」という)のプロセスIDを取得し、その後、ステップ204へ移行する。
ステップ204で、切替部18は、ステップ200で取得したアプリ24毎の通信状況情報から、ステップ202で取得したプロセスIDにより特定される起動アプリ24の通信状況情報を取得し、その後、ステップ206へ移行する。
ステップ206で、切替部18は、処理部16が起動アプリ24を実行することにより無線通信中か否かを、ステップ204で取得した通信状況情報を参照して判定する。ステップ206において、処理部16が起動アプリ24を実行することにより無線通信中でない場合は、判定が否定されて、ステップ208へ移行する。ステップ206において、処理部16が起動アプリ24を実行することにより無線通信中の場合は、判定が肯定されて、第1切替処理を終了する。
ステップ208で、切替部18は、GPS受信部52から受信結果情報を取得し、取得した受信結果情報に基づいて、スマートデバイス10の現在の所在位置を示す緯度及び経度を測定し、その後、ステップ210へ移行する。
ステップ210で、切替部18は、ステップ208で取得した緯度及び経度に基づく位置情報を生成し、その後、ステップ212へ移行する。
ステップ212で、切替部18は、ステップ210で取得した位置情報及びRTC50から取得した現在時刻の時分に対応する電波状態情報を電波状態管理テーブル44から取得し、その後、ステップ214へ移行する。
ステップ214で、切替部18は、ステップ212で取得した電波状態情報に良好型変動パターンが含まれているか否かを判定する。ステップ214において、ステップ212で取得した電波状態情報に良好型変動パターンが含まれている場合は、判定が肯定されて、ステップ216へ移行する。ステップ214において、ステップ212で取得した電波状態情報に良好型変動パターンが含まれていない場合は、判定が否定されて、第1切替処理を終了する。
ステップ216で、切替部18は、処理部16の通信先として現在設定されている無線基地局は良好型変動パターンの無線基地局か否かを、ステップ212で取得した電波状態情報に含まれる識別情報を参照して判定する。ステップ216において、処理部16の通信先として現在設定されている無線基地局が良好型変動パターンの無線基地局の場合は、判定が肯定されて、第1切替処理を終了する。ステップ216において、処理部16の通信先として現在設定されている無線基地局が良好型変動パターンの無線基地局でない場合は、判定が否定されて、ステップ218へ移行する。
ステップ218で、切替部18は、処理部16の通信先として現在設定されている無線基地局を、ステップ212で取得した電波状態情報に含まれる良好型変動パターンに対応付けられた識別情報により特定される無線基地局に切り替える。そして、その後、第1切替処理を終了する。
次に、無線基地局の主電源がオンされてからCPU70によって回線混雑度算出プログラム82が実行されることで無線基地局によって行われる回線混雑度算出処理について、図10を参照して説明する。
図10に示す回線混雑度算出処理では、先ず、ステップ300で、CPU70は、無線基地局の回線混雑度を算出する時期として予め定められた時期(回線混雑度算出時期)が到来したか否かを判定する。ここで、回線混雑度とは、例えば、単位時間あたりのデータ転送量を指す。回線混雑度算出時期とは、例えば、回線混雑度算出処理の1回目の実行が開始された時点又は後述のステップ304の処理を終了した前回の時点から10秒が経過した時点を指す。
ステップ300において、回線混雑度算出時期が到来した場合は、判定が肯定されて、ステップ302へ移行する。ステップ300において、回線混雑度算出時期が到来していない場合は、判定が否定されて、ステップ306へ移行する。
ステップ302で、CPU70は、回線混雑度を算出し、その後、ステップ304へ移行する。
ステップ304で、CPU70は、ステップ302で算出した回線混雑度及び無線基地局のMACアドレスを回線混雑度監視サーバ68に送信し、その後、ステップ306へ移行する。
ステップ306で、CPU70は、回線混雑度算出処理の終了条件を満足しているか否かを判定する。回線混雑度算出処理の終了条件とは、例えば、無線基地局の管理者が回線混雑度算出処理の終了指示を無線基地局に与えたとの条件や無線基地局で重度の輻輳が生じているとの条件が挙げられる。ステップ306において、回線混雑度算出処理の終了条件を満足していない場合は、判定が否定されて、ステップ300へ移行する。ステップ306において、回線混雑度算出処理の終了条件を満足している場合は、判定が肯定されて、回線混雑度算出処理を終了する。
次に、回線混雑度監視サーバ68の主電源がオンされてからCPU88によって回線混雑度収集プログラム98が実行されることで回線混雑度監視サーバ68によって行われる回線混雑度収集処理について、図11を参照して説明する。
図11に示す回線混雑度収集処理では、先ず、ステップ350で、CPU88は、図10に示す回線混雑度算出処理におけるステップ304で送信された回線混雑度及びMACアドレスを受信したか否かを判定する。ステップ350において、図10に示す回線混雑度算出処理におけるステップ304で送信された回線混雑度及びMACアドレスを受信した場合は、判定が肯定されて、ステップ352へ移行する。ステップ350において、図10に示す回線混雑度算出処理におけるステップ304で送信された回線混雑度及びMACアドレスを受信していない場合は、判定が否定されて、ステップ354へ移行する。
ステップ352で、CPU88は、ステップ350で受信した回線混雑度とMACアドレスとを関連付けて回線混雑度管理テーブル100に記憶し、その後、ステップ354へ移行する。
ステップ354で、CPU88は、回線混雑度収集処理の終了条件を満足しているか否かを判定する。回線混雑度収集処理の終了条件とは、例えば、回線混雑度監視サーバ68の管理者が回線混雑度収集処理の終了指示を回線混雑度監視サーバ68に与えたとの条件や回線混雑度監視サーバ68で重度の輻輳が生じているとの条件が挙げられる。ステップ354において、回線混雑度収集処理の終了条件を満足していない場合は、判定が否定されて、ステップ350へ移行する。ステップ354において、回線混雑度収集処理の終了条件を満足している場合は、判定が肯定されて、回線混雑度収集処理を終了する。
次に、アプリ24が起動された際にCPU30によって第2切替プログラム42が実行されることでスマートデバイス10によって行われる第2切替処理について、図12A及び図12Bを参照して説明する。なお、ここで、起動されたアプリ24とは、フォアグラウンドで実行されているアプリ24(以下、「フォアグラウンドアプリ」という)を意味する。また、以下では、説明の便宜上、バックグラウンドで少なくとも1つのアプリ24が処理部16によって実行されていることを前提にして説明する。また、以下では、説明の便宜上、図12A及び図12Bを区別して説明する必要がない場合、図12と称する。
図12に示す第2切替処理では、先ず、ステップ400で、測定部14は、無線基地局毎の電波の電波強度を取得する時期として予め定められた時期(電波強度取得時期)が到来したか否かを判定する。電波強度取得時期とは、例えば、第2切替処理の1回目の実行が開始された時点又は後述のステップ402で電波強度を取得した前回の時点から1秒が経過した時点を指す。
ステップ400において、電波強度取得時期が到来した場合は、判定が肯定されて、ステップ402へ移行する。ステップ400において、電波強度取得時期が到来していない場合は、判定が否定されて、ステップ428へ移行する。
ステップ402で、測定部14は、スマートデバイス10と無線通信可能なエリア内に存在する複数の無線基地局の各々の電波強度(ここでは一例として、通信インタフェース56により受信された電波の電波強度)を取得する。なお、以下の第2切替処理の説明では、説明の便宜上、スマートデバイス10と無線通信可能なエリア内に存在する複数の無線基地局を「複数の無線基地局」と称する。
次のステップ404で、測定部14は、ステップ402で取得した電波強度を、複数の無線基地局の各々の識別情報毎に、RTC50から取得した現在時刻と対応付けて一次記憶部32に記憶し、その後、ステップ406へ移行する。
ステップ406で、切替部18は、第2切替処理の1回目の実行が開始された時点又は後述のステップ409で変動パターンを特定した前回の時点から所定時間(例えば、10分)が経過したか否かを判定する。ステップ406において、第2切替処理の1回目の実行が開始された時点又は後述のステップ409で変動パターンを特定した前回の時点から所定時間が経過した場合は、判定が肯定されて、ステップ408へ移行する。ステップ406において、第2切替処理の1回目の実行が開始された時点又は後述のステップ409で変動パターンを特定した前回の時点から所定時間が経過していない場合は、判定が否定されて、ステップ428へ移行する。
ステップ408で、切替部18は、ステップ404で一次記憶部32に記憶された電波強度の所定時間内(例えば、過去の10分以内)における平均値及び分散を複数の無線基地局毎に算出し、その後、ステップ409へ移行する。
ステップ409で、切替部18は、通信先の無線基地局について、ステップ408で算出した平均値及び分散に基づいて、ステップ404で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れかに該当するか否かを判定する。ここで、通信先の無線基地局とは、処理部16の通信先として現在設定されている無線基地局を指す。ステップ409において、通信先の無線基地局について、ステップ408で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れかに該当する場合は、判定が肯定されて、ステップ410へ移行する。ステップ409において、通信先の無線基地局について、ステップ404で一次記憶部32に記憶された電波強度の所定時間内の経時変化が変動パターンA〜Cの何れにも該当しない場合は、判定が否定されて、ステップ428へ移行する。
ステップ410で、切替部18は、通信先の無線基地局は3G基地局62か否かを判定する。ステップ410において、処理部16の通信先として現在設定されている無線基地局が3G基地局62の場合は、判定が肯定されて、ステップ412へ移行する。ステップ410において、処理部16の通信先として現在設定されている無線基地局が3G基地局62でない場合(AP60の場合)は、判定が否定されて、ステップ416へ移行する。
ステップ412で、切替部18は、ステップ409で特定した変動パターンに基づいて、処理部16の通信先として現在設定されている3G基地局62は良好型変動パターンの3G基地局62か否かを判定する。すなわち、切替部18は、ステップ409で特定した変動パターンが変動パターンA又は変動パターンBの場合、処理部16の通信先として現在設定されている3G基地局62が不良型変動パターンの3G基地局62であると判定する。また、ステップ409で特定した変動パターンが変動パターンCの場合、処理部16の通信先として現在設定されている3G基地局62が良好型変動パターンの3G基地局62であると判定する。
ステップ412において、処理部16の通信先として現在設定されている3G基地局62が不良型変動パターンの3G基地局62の場合は、判定が肯定されて、ステップ414へ移行する。ステップ412において、処理部16の通信先として現在設定されている3G基地局62が良好型変動パターンの3G基地局62の場合は、判定が否定されて、ステップ428へ移行する。
ステップ414で、切替部18は、複数の無線基地局の中に良好型変動パターンのAP60が存在しているか否かを、ステップ408で算出した平均値及び分散に基づいて判定する。ここで、良好型変動パターンのAP60とは、例えば、変動パターンCのAP60を指す。ステップ414において、複数の無線基地局の中に良好型変動パターンのAP60が存在している場合は、判定が肯定されて、ステップ419へ移行する。ステップ414において、複数の無線基地局の中に良好型変動パターンのAP60が存在していない場合は、判定が否定されて、ステップ428へ移行する。
ステップ416で、切替部18は、ステップ409で特定した変動パターンに基づいて、処理部16の通信先として現在設定されているAP60は良好型変動パターンのAP60か否かを判定する。すなわち、切替部18は、ステップ409で特定した変動パターンが変動パターンA又は変動パターンBの場合、処理部16の通信先として現在設定されているAP60が不良型変動パターンのAP60であると判定する。また、ステップ409で特定した変動パターンが変動パターンCの場合、処理部16の通信先として現在設定されているAP60が良好型変動パターンのAP60であると判定する。
ステップ416において、処理部16の通信先として現在設定されているAP60が不良型変動パターンのAP60の場合は、判定が肯定されて、ステップ418へ移行する。ステップ416において、処理部16の通信先として現在設定されているAP60が良好型変動パターンのAP60の場合は、判定が否定されて、ステップ428へ移行する。
ステップ418で、切替部18は、複数の無線基地局の中に良好型変動パターンのAP又は3G基地局が存在しているか否かを、ステップ408で算出した平均値及び分散に基づいて判定する。ここで、良好型変動パターンのAP又は3G基地局とは、例えば、変動パターンCの無線基地局を指す。ステップ418において、複数の無線基地局の中に良好型変動パターンのAP又は3G基地局が存在している場合は、判定が肯定されて、ステップ419へ移行する。ステップ418において、複数の無線基地局の中に良好型変動パターンのAP又は3G基地局が存在していない場合は、判定が否定されて、ステップ428へ移行する。
ステップ419で、切替部18は、アプリ24毎の通信状況情報を取得し、その後、ステップ422へ移行する。
ステップ422で、切替部18は、処理部16が無線通信中か否かを、ステップ419で取得した通信状況情報を参照して判定する。ここで、無線通信中とは、処理部16が複数のアプリ24のうちの少なくとも1つを実行することにより通信先と無線通信中であることを指す。ステップ422において、処理部16が無線通信中の場合は、判定が肯定されて、ステップ428へ移行する。ステップ422において、処理部16が無線通信中でない場合は、判定が否定されて、ステップ424へ移行する。
ステップ424で、切替部18は、通信インタフェース56を介して回線混雑度監視サーバ68と通信を行うことで、回線混雑度監視サーバ68から複数の無線基地局の各々の回線混雑度を取得する。すなわち、切替部18は、回線混雑度監視サーバ68に対して複数の無線基地局の各々の回線混雑度の提供を要求する。そして、回線混雑度監視サーバ68は、切替部18からの要求に応じて、回線混雑度管理テーブル100から複数の無線基地局の各々の回線混雑度を取得し、取得した回線混雑度を切替部18に提供する。
次にステップ425で、切替部18は、ステップ414において判定が肯定された場合、ステップ424で取得した無線基地局毎の回線混雑度を参照して、回線混雑度が所定条件を満たす良好型変動パターンのAP60が存在するか否かを判定する。ここで、所定条件とは、例えば、所定値未満であるとの条件を指す。所定値とは、通信先として現在設定されている無線基地局の回線混雑度を指す。ステップ425において、回線混雑度が所定条件を満たす良好型変動パターンのAP60が存在する場合は、判定が肯定されて、ステップ426へ移行する。ステップ425において、回線混雑度が所定条件を満たす良好型変動パターンのAP60が存在しない場合は、判定が否定されて、ステップ428へ移行する。
また、ステップ425で、切替部18は、ステップ418において判定が肯定された場合、ステップ424で取得した無線基地局毎の回線混雑度を参照して、回線混雑度が所定条件を満たす良好型変動パターンのAP又は3G基地局が存在するか否かを判定する。ステップ425において、回線混雑度が所定条件を満たす良好型変動パターンのAP又は3G基地局が存在する場合は、判定が肯定されて、ステップ426へ移行する。ステップ425において、回線混雑度が所定条件を満たす良好型変動パターンのAP又は3G基地局が存在しない場合は、判定が否定されて、ステップ428へ移行する。
次のステップ426で、切替部18は、ステップ414において判定が肯定された場合、通信先を、良好型変動パターンのAP60のうちのステップ424で取得した最小の回線混雑度のAP60に切り替え、その後、ステップ428へ移行する。
また、ステップ426で、切替部18は、ステップ418において判定が肯定された場合、通信先を、良好型変動パターンのAP又は3G基地局無線基地局のうちのステップ424で取得した最小の回線混雑度の無線基地局に切り替える。
次のステップ428で、切替部18は、第2切替処理の終了条件を満足しているか否かを判定する。第2切替処理の終了条件としては、例えば、受付部46により終了指示が受け付けられたとの条件やスマートデバイス10のバッテリの残容量が5%を下回ったとの条件が挙げられる。ステップ428において、第2切替処理の終了条件を満足していない場合は、判定が否定されて、ステップ400へ移行する。ステップ428において、第2切替処理の終了条件を満足している場合は、判定が肯定されて、第2切替処理を終了する。
以上説明したように、スマートデバイス10では、通信先の電波強度の変動パターン(経時変化)が不良型で、且つ、通信先候補の電波強度の変動パターンが良好型の場合に、通信先が、良好型変動パターンの無線基地局に切り替えられる。これにより、安定した無線通信に必要な電波が確保される。また、通信先の電波強度が閾値を超える度に通信先の無線基地局を切り替える場合と比べ、アプリ24の実行停滞が抑制されるので、無線通信の円滑な実行が可能となる。また、スマートデバイス10では、不良型変動パターンの無線基地局から良好型変動パターンの無線基地局への切り替えは、無線通信が行われていないときに行われる。また、スマートデバイス10では、無線通信中に、通信先の電波強度の変動パターンに応じた通信先としての無線基地局の切り替えが抑制される。これにより、無線通信中における通信先の切り替えに伴うアプリ24の実行停滞が抑制されるので、無線通信の円滑な実行が可能となる。このように、スマートデバイス10は、アプリ24の実行により行われる無線通信の円滑な実行を可能にする。
また、スマートデバイス10では、アプリ24の起動完了に伴って、電波状態管理テーブル44から現在時刻及び現在位置に応じた変動パターンが取得される。そして、取得された変動パターンが良好型で、且つ、処理部16が無線通信中でない場合に、通信先が良好型変動パターンの無線基地局に切り替えられる。これにより、スマートデバイス10は、アプリ24の起動完了時に電波不良の状態から無線通信が開始されることを抑制することができる。
また、スマートデバイス10では、通信先を不良型変動パターンの無線基地局から良好型変動パターンの無線基地局へ切り替えることが、良好型変動パターンの無線基地局の回線混雑度が所定条件を満たしたことを条件に行われる。これにより、スマートデバイス10は、通信先を良好型変動パターンの無線基地局に切り替えたにも拘らず円滑な無線通信が行われないという事態の発生を抑制することができる。
また、スマートデバイス10では、電波強度の変動パターンが、測定部14により測定された電波強度の平均値及び分散に基づいて特定される。これにより、スマートデバイス10は、変動パターンの高精度な特定を容易に行うことができる。
なお、上記第1実施形態では、アプリ24の起動完了に伴って、第1切替処理が行われる場合を例示したが、これに限らず、他のタイミングで第1切替処理が行われてもよい。他のタイミングとは、例えば、予め定められた条件を満たした場合を指す。予め定められた条件とは、例えば、受付部46で第1切替処理の実行指示が受け付けられたとの条件、又はアプリ24の起動完了から所定時間(例えば、1分)が経過したとの条件が挙げられる。このように、スマートデバイス10では、予め定められた条件を満たした場合に第1切替処理が行われることで、予め定められた条件を満たしたときに電波不良の状態から無線通信が開始されることを抑制することができる。
また、上記第1実施形態では、図8に示す変動パターン判定処理及び図9に示す第1切替処理において位置情報を利用する場合を例示したが、図8に示す変動パターン判定処理及び図9に示す第1切替処理において必ずしも位置情報を利用しなくてもよい。これは、スマートデバイス10が移動していない場合も想定でき、その場の電波状況を監視して、過去数時間程度の電波の変動パターンから切替先を判定するという使い方もできるからである。これを実現するには、例えば、図8に示す変動パターン判定処理からステップ150,152を無くし、かつ、ステップ156において位置とは無関係に電波強度を記憶し、ステップ162において位置とは無関係に変動パターンを記憶すればよい。また、図9に示す第1切替処理からステップ208,210を無くし、ステップ212において位置とは無関係に電波状態情報を取得する。なお、スマートデバイス10が携帯されて移動するという特性を考慮すると、上記第1実施形態で説明したような使い方が考えられ、より精度の良い切替を行うことが可能となる。また、上記第1実施形態では、図10に示す回線混雑度算出処理及び図11に示す回線混雑度収集処理を例示したが、図10に示す回線混雑度算出処理及び図11に示す回線混雑度収集処理は必ずしも行うことを要しない。この場合、図12bに示すステップ424,425は不要となり、ステップ426では、回線混雑度が加味されずに無線基地局が切り替えられる。
[第2実施形態]
上記第1実施形態では、処理部16がアプリ24を実行することにより無線通信を行う場合を例示したが、本第2実施形態では、処理部16がフォアグラウンドでアプリ24を実行することにより無線通信を行う場合について説明する。なお、本第2実施形態では、上記第1実施形態で説明した構成要素については、同一の符号を付し、説明を省略する。
一例として図1に示すように、第2実施形態に係るスマートデバイス11Aは、第1実施形態に係るスマートデバイス10と比べ、切替部18に代えて切替部19Aを有する点が異なる。切替部19Aは、処理部16がフォアグラウンドで無線通信中でなく、通信先として定められた無線通信装置26が電波不良型の無線通信装置26の場合に、通信先を電波不良型の無線通信装置26から電波良好型の無線通信装置26に切り替える。処理部16がフォアグラウンドで無線通信中とは、処理部16がフォアグラウンドでアプリ24を実行することにより通信先の無線通信装置26と無線通信していることを指す。
一例として図3に示すように、スマートデバイス11Aは、スマートデバイス10と比べ、二次記憶部34に第2切替プログラム42に代えて第2切替プログラム43が記憶されている点が異なる。CPU30は、第2切替プログラム43を実行することで、図1に示す切替部19Aとして動作する。
次に、アプリ24が起動された際にCPU30によって第2切替プログラム42が実行されることでスマートデバイス10によって行われる第2切替処理について、図13を参照して説明する。なお、図13に示すフローチャートは、図12に示すフローチャートと比べ、ステップ420及びステップ421を有する点が異なる。また、図13に示すフローチャートは、図12に示すフローチャートと比べ、ステップ422に代えてステップ422Aを有する点が異なる。そのため、図13には、図12Aに示すフローチャートの続きが示されている。
図13に示す第2切替処理では、ステップ419の処理が終了するとステップ420へ移行する。ステップ420で、切替部19Aは、処理部16によって実行されているアプリ24のうちフォアグラウンドアプリ(フォアグラウンドで実行されているアプリ)のプロセスIDを取得し、その後、ステップ421へ移行する。
ステップ421で、切替部19Aは、ステップ419で取得したアプリ24毎の通信状況情報から、ステップ420で取得したプロセスIDにより特定されるフォアグラウンドアプリの通信状況情報を取得し、その後、ステップ422Aへ移行する。
ステップ422Aで、切替部19Aは、ステップ421で取得した通信状況情報に基づいて、処理部16がフォアグラウンドアプリを実行することにより通信先と無線通信中か否かを判定する。ステップ422Aにおいて、処理部16がフォアグラウンドアプリを実行することにより通信先と無線通信中の場合は、判定が肯定されて、ステップ428へ移行する。ステップ422Aにおいて、処理部16がフォアグラウンドアプリを実行することにより通信先と無線通信中でない場合(フォアグラウンドアプリを用いて無線通信中でない場合)は、判定が否定されて、ステップ424へ移行する。
以上説明したように、スマートデバイス11Aでは、不良型変動パターンの無線基地局から良好型変動パターンの無線基地局への切り替えは、処理部16がフォアグラウンドアプリを用いて無線通信を行っていないときに行われる。すなわち、フォアグラウンドアプリの実行による無線通信中に通信先の切り替えは行われない。これにより、スマートデバイス11Aは、無線通信中にフォアグラウンドアプリの実行が滞ることを抑制することができる。また、スマートデバイス11Aでは、フォアグラウンドアプリの種別に応じて通信先の切り替えが制御されてもよい。例えば、ストリーミング系アプリであれば通信先の切り替えを行うが、ラージデータ系アプリであればセッションを切断してもダウンロードが早く終了するならば切り替えを行うようにしてもよい。なお、動作停滞の意味はフォアグラウンドアプリの種別に応じて異なる。よって、フォアグラウンドアプリの種別に応じて通信先の切り替えが制御されることで、無線通信中のフォアグラウンドアプリの種別特有の動作停滞に起因したユーザへの不快感を抑制することができる。例えば、リアルタイムコミュニケーション系アプリの場合、無線通信中に通信先を切り替えないために音質が悪くなり、コミュニケーションが阻害されてしまうという意味での動作停滞に起因したユーザへの不快感を抑制することができる。また、例えば、ラージデータ系アプリの場合、残り僅かでダウンロードが完了するにも拘らず、通信先を切り替えてしまうことによってダウンロードを最初からやり直さなければならないという意味での動作停滞に起因したユーザへの不快感を抑制することができる。
[第3実施形態]
上記第1及び第2実施形態では、データ通信中でなければ通信先を切り替えても問題が生じないアプリを対象にした場合を例示した。しかし、Webアプリで一連のトランザクションを実行している場合、同じIPアドレスからの通信であることを認識して処理を継続する場合があるので、データ通信をしていないという理由のみで通信先を切り替えることが好ましくない場合がある。そこで、第3実施形態では、ログイン・ログアウトのイベントを検出して、トランザクションの実行中か否かを判定し、通信先を切り替える場合について説明する。なお、本第3実施形態では、上記第2実施形態で説明した構成要素については、同一の符号を付し、説明を省略する。
一例として図14に示すように、本第3実施形態に係るスマートデバイス11Bは、図1に示すスマートデバイス11Aと比べ、通信先切替装置13Aに代えて通信先切替装置13Bを有する点が異なる。通信先切替装置13Bは、図1に示す通信先切替装置13Aと比べ、検出部502を有する点が異なる。検出部502は、アプリ24が処理部16によって実行されることでログインされる通信サービスからスマートデバイス11Bがログアウトされているか否かを検出する。また、本第3実施形態に係るスマートデバイス11Bは、図1に示す通信先切替装置13Aと比べ、切替部19Aに代えて切替部19Bを有する点が異なる。切替部19Bは、通信先を電波良好型の無線通信装置26に切り替えることを、スマートデバイス11Bが通信サービスからログアウトされていることを条件に行う。
一例として図15に示すように、インターネット回線64にはウェブサーバ503が接続されている。ウェブサーバ503は、スマートデバイス11Bを含む複数の端末装置が要求するWebサービス(開示の技術に係る通信サービスの一例)を提供するサーバである。
一例として図16に示すように、スマートデバイス11Bの二次記憶部34は、スマートデバイス11Aの二次記憶部34と比べ、第2切替プログラム43に代えて第2切替プログラム45を記憶している点が異なる。また、スマートデバイス11Bの二次記憶部34は、スマートデバイス11Aの二次記憶部34と比べ、アクセス検出判定プログラム504及び無アクセス検出判定プログラム505を記憶している点が異なる。また、スマートデバイス11Bの二次記憶部34は、スマートデバイス11Aの二次記憶部34と比べ、アプリ動作状況検出方法管理テーブル506、アプリ動作状況管理テーブル507、及び通信先切替ポリシ管理テーブル508を記憶している点が異なる。
CPU30は、二次記憶部34から第2切替プログラム45を読み出して一次記憶部32に展開し、第2切替プログラム45を実行する。CPU30は、第2切替プログラム45を実行することで、図14に示す切替部19Bとして動作する。
CPU30は、二次記憶部34からアクセス検出判定プログラム504を読み出して一次記憶部32に展開し、アクセス検出判定プログラム504を実行する。CPU30は、アクセス検出判定プログラム504を実行することで、図14に示す検出部502として動作する。
CPU30は、二次記憶部34から無アクセス検出判定プログラム505を読み出して一次記憶部32に展開し、無アクセス検出判定プログラム505を実行する。CPU30は、無アクセス検出判定プログラム505を実行することで、図14に示す検出部502として動作する。
一例として図17に示すように、アプリ動作状況検出方法管理テーブル506は、アプリ24の名称を示すアプリ名毎に検出方法が対応付けられており、Webサービス毎に意味が異なるURLを解釈するために用いられる。図17に示す例では、“Open(....)”というイベントが発生したら、サービスにログイン中という状態になったと判断するという、イベントをアプリの状態に解釈する方法を定義するテーブルである。“Open(....)”というイベントが発生するとは、例えば、ユーザがURLをブラウザで開くというアクションを起こしたことを意味する。
ここで、図17に示す“Open(http://xx.xx.xx.xx/login)”とは、“http://xx.xx.xx.xx”により特定されるWebサービス(以下、「サービス#1」という)にログインしていることを意味する。また、図17に示す“Open(http://xx.xx.xx.xx/logout)”とは、サービス#1からログアウトしていることを意味する。また、図17に示す“Open(http://yy.yy.yy.yy/login)”とは、“http://yy.yy.yy.yy”により特定されるWebサービス(以下、「サービス#2」という)にログインしていることを意味する。更に、図17に示す“No Access(http://yy.yy.yy.yy/,60)”とは、サービス#2にログインしてからサービス#2を60秒間利用していないときにログオフ(ログアウト)中という状態と判断する。
一例として図23に示すように、アプリ動作状況管理テーブル507は、アプリ動作状況検出方法管理テーブル506を使って判断したアプリの状態(動作状況)を管理するテーブルである。図23に示す例では、アプリ名毎に、サービス名及びアプリの動作状況が対応付けられている。
一例として図18に示すように、通信先切替ポリシ管理テーブル508には、アプリ名毎に、Webサービスの名称を示すサービス名及び通信先切替ポリシが対応付けられて記憶されている。通信先切替ポリシとは、処理部16がWebサービスにログイン中に通信先の無線基地局を切り替えることが可能か否かを規定した運用ルールを指す。通信先切替ポリシは、デフォルトで設定されてもよいし、受付部46で受け付けられた指示に従って設定されても良い。なお、図18に示す例では、通信先切替ポリシ管理テーブル508に、処理部16がブラウザAを用いてサービス#1にログインしている間は通信先の無線基地局を切り替えることができないことを示す通信先切替ポリシが記憶されている。また、図18に示す例では、通信先切替ポリシ管理テーブル508に、処理部16がブラウザBを用いてサービス#2にログインしている間は通信先の無線基地局を切り替えることができないことを示す通信先切替ポリシが記憶されている。
次に、スマートデバイス11Bの主電源がオンされてからCPU30によってアクセス検出判定プログラム504が実行されることでスマートデバイス11Bによって行われるアクセス検出判定処理について、図19を参照して説明する。
図19に示すアクセス検出判定処理では、先ず、ステップ550で、検出部502は、処理部16からフォアグラウンドで実行中のアプリ24のアプリ名及びイベント情報が通知されたかを判定する。ここで、イベント情報とは、例えば、ブラウザアプリの場合、リンクをクリックしたり、URLを入力したりしてWebページを開いたという事象に関する情報のこと(例えば、“Open....”や“No Access....”)を指す。処理部16は、フォアグラウンドでアプリ24が実行されている場合に受付部46によってイベント情報が受け付けられると、受け付けられたイベント情報及びフォアグラウンドで実行中のアプリ名を検出部502に通知する。
ステップ550において、処理部16からフォアグラウンドで実行中のアプリ24のアプリ名及びイベント情報が通知された場合は、判定が肯定されて、ステップ552へ移行する。ステップ550において、処理部16からフォアグラウンドで実行中のアプリ24のアプリ名及びイベント情報が通知されていない場合は、判定が否定されて、ステップ564へ移行する。
ステップ552で、検出部502は、ステップ550で処理部16から通知されたアプリ名及びイベント情報に対応する検出方法がアプリ動作状況検出方法管理テーブル506に記憶されているか否かを判定する。ステップ552において、ステップ550で処理部16から通知されたアプリ名及びイベント情報に対応する検出方法がアプリ動作状況検出方法管理テーブル506に記憶されている場合は、判定が肯定されて、ステップ554へ移行する。ステップ552において、ステップ550で処理部16から通知されたアプリ名及びイベント情報に対応する検出方法がアプリ動作状況検出方法管理テーブル506に記憶されていない場合は、判定が否定されて、ステップ564へ移行する。
ステップ554で、検出部502は、ステップ550で処理部16から通知されたイベント情報に含まれるURLと一致する無アクセス検出判定用URLがアプリ動作状況検出方法管理テーブル506に記憶されているか否かを判定する。ここで、無アクセス検出判定用URLとは、例えば、“No Access(http://yy.yy.yy.yy/,60)”に含まれる“http://yy.yy.yy.yy”を指す。
ステップ554において、ステップ550で処理部16から通知されたイベント情報に含まれるURLと一致する無アクセス検出判定用URLがアプリ動作状況検出方法管理テーブル506に記憶されている場合は、判定が肯定されて、ステップ556へ移行する。ステップ554において、ステップ550で処理部16から通知されたイベント情報に含まれるURLと一致する無アクセス検出判定用URLがアプリ動作状況検出方法管理テーブル506に記憶されていない場合は、判定が否定されて、ステップ562へ移行する。
ステップ556で、検出部502は、無アクセス検出判定用のタイマオブジェクト(以下、「タイマ」という)が存在しているか否かを判定する。無アクセス検出判定用のタイマとは、後述の無アクセス検出判定処理(図20参照)で用いられるタイマを指す。なお、無アクセス検出判定処理用のタイマは、後述のステップ560で作成される。
ステップ556において、無アクセス検出判定処理用のタイマが存在している場合は、判定が肯定されて、ステップ558へ移行する。ステップ556において、無アクセス検出判定処理用のタイマが存在していない場合は、判定が否定されて、ステップ560へ移行する。
ステップ558で、検出部502は、作動しているタイマをリセットし、その後、ステップ562へ移行する。
ステップ560において、検出部502は、タイマを作成し、作成したタイマを起動させ、その後、ステップ562へ移行する。
ステップ562で、検出部502は、ステップ550で処理部16から通知されたアプリ名及びステップ550で処理部16から通知されたイベント情報に対応するサービス名及び動作状況情報をアプリ動作状況管理テーブル507に記憶し、その後、ステップ564に移行する。なお、イベント情報に対応する動作状況情報とは、例えば、“ログイン中”又は“ログアウト中”を指す。
ステップ564で、検出部502は、アクセス検出判定処理の終了条件を満足しているか否かを判定する。アクセス検出判定処理の終了条件としては、例えば、受付部46により終了指示が受け付けられたとの条件やスマートデバイス11Bのバッテリの残容量が5%を下回ったとの条件が挙げられる。ステップ564において、アクセス検出判定処理の終了条件を満足していない場合は、判定が否定されて、ステップ550へ移行する。ステップ564において、アクセス検出判定処理の終了条件を満足している場合は、判定が肯定されて、アクセス検出判定処理を終了する。
次に、ステップ558でタイマがリセットされてから、又はステップ560でタイマが起動されてから、CPU30によって無アクセス検出判定プログラム505が実行されることでスマートデバイス11Bによって行われる無アクセス検出判定処理について、図20を参照して説明する。
図20に示す無アクセス検出判定処理では、先ず、ステップ600で、検出部502は、タイマが所定時間作動したか否かを判定する。ここで、所定時間とは、例えば、図17に示す“No Access(http://yy.yy.yy.yy/,60)”に含まれる“60”に対応する時間(例えば、60秒)を指す。ステップ600において、タイマが所定時間作動していない場合は、判定が否定されて、ステップ600の判定が再び行われる。ステップ600において、タイマが所定時間作動した場合は、判定が肯定されて、ステップ602へ移行する。
ステップ602で、検出部502は、処理部16がWebサービスからログアウトしていることを示す動作状況情報及びログアウトされたWebサービスのサービス名をアプリ動作状況管理テーブル507に記憶し、その後、無アクセス検出判定処理を終了する。
次に、アプリ24が起動された際にCPU30によって第2切替プログラム45が実行されることでスマートデバイス11Bによって行われる第2切替処理について、図21を参照して説明する。なお、図21に示すフローチャートは、図12Aに示すフローチャートと比べ、ステップ401A及びステップ401Bを有する点が異なる。
図21に示す第2切替処理では、ステップ400において、判定が肯定された場合、ステップ401Aへ移行する。ステップ401Aで、切替部19Bは、アプリ動作状況管理テーブル506からアプリ24毎に動作状況情報を取得し、その後、ステップ401Bへ移行する。
ステップ401Bで、切替部19Bは、ステップ401Aで取得した動作状況情報と通信先切替ポリシ管理テーブル508とを照合し、通信先切替ポリシで“切替不可”と規定されているアプリ24が処理部16によって現在実行されているか否かを判定する。ステップ401Bにおいて、通信先切替ポリシで“切替不可”と規定されているアプリ24が処理部16によって現在実行されていない場合は、判定が否定されて、ステップ402へ移行する。ステップ401Bにおいて、通信先切替ポリシで“切替不可”と規定されているアプリ24が処理部16によって現在実行されている場合は、判定が肯定されて、ステップ428(図12B参照)へ移行する。
以上説明したように、スマートデバイス11Bでは、不良型変動パターンの無線基地局から良好型変動パターンの無線基地局への切り替えは、処理部16がWebサービスからログアウトしていることを条件に行われる。すなわち、ログイン中に通信先の切り替えは行われない。これにより、スマートデバイス11Bは、ログイン中にアプリ24の実行が滞ることを抑制することができる。よって、ログイン中のアプリ24の動作停滞に伴ってWebサービスの利用が滞ることが原因でユーザに対して不快感を与えることを抑制することができる。
なお、上記第3実施形態では、通信先切替ポリシによりログイン中の“切替不可”が規定されている場合、通信先を切り替えるための諸条件を満足していても通信先を切り替えない例を挙げて説明したが、開示の技術はこれに限定されるものではない。例えば、通話中に、通信先を切り替えるための諸条件を満足した場合、ユーザに対して通信先の切り替えの許否を問い合わせ、問い合わせ後に受付部46で許可指示が受け付けられた場合に通信先の切り替えを行うようにしてもよい。
また、特定ブラウザの使用中に、通信先を切り替えるための諸条件を満足した場合、ユーザに対して通信先の切り替えの許否を問い合わせ、問い合わせ後に受付部46で許可指示が受け付けられた場合に通信先の切り替えを行うようにしてもよい。また、特定ブラウザの使用中に、通信先を切り替えるための諸条件を満足した場合、無線通信中か否かに拘らず、通信先を良好型変動パターンの無線基地局に切り替えるようにしてもよい。
通信先を切り替えるための諸条件を満足した場合に通信先を切り替えることを許可する許可条件は、上記以外にも様々な条件が考えられるが、何れにしても、通信先切替ポリシ管理テーブル508に通信先切替ポリシとして規定しておけばよい。また、通信先切替ポリシ管理テーブル508に記憶される通信先切替ポリシは、固定化されてもよいし、受付部46によって受け付けられた指示に従ってカスタマイズされてもよい。
上記各実施形態では、切替部18が、測定部14により測定された電波強度の変動パターンを電波強度の平均値及び分散に基づいて判定する場合を例示したが、開示の技術はこれに限定されるものではない。例えば、測定部14により測定された電波強度が閾値を超えた頻度又は割合(例えば、電波強度が閾値を超えた時間/測定時間帯)を利用して電波強度の変動パターンを判定してもよい。この場合、例えば、電波強度が閾値を超えた割合が70%以上の場合に電波強度の変動パターンを変動パターンCであると判定する。また、電波強度が閾値を超えた割合が30%未満の場合に電波強度の変動パターンを変動パターンAであると判定する。また、電波強度が閾値を超えた割合が30%以上70%未満の場合に電波強度の変動パターンを変動パターンBであると判定する。
また、一例として図22に示すように、理想的な変動パターンCの電波強度を示す第1基準値Shigh及び理想的な変動パターンAの電波強度を示す第2基準値Slowを予め設定しておき、数式(1)及び数式(2)に基づいて、変動パターンを判定してもよい。すなわち、数式(1)に示す大小関係が成立した場合に、電波強度の変動パターンが変動パターンCであると判定する。また、数式(2)に示す大小関係が成立した場合に、電波強度の変動パターンが変動パターンAであると判定する。また、数式(1)及び数式(2)に示す何れの大小関係も成立しない場合に、電波強度の変動パターンが変動パターンBであると判定する。なお、数式(1)及び数式(2)において、Siとは、測定部14により測定された電波強度の測定値を指す。また、ε0及びε1は、固定値であってもよいし、可変値であってもよい。
上記各実施形態では、複数のAP60と3G基地局62との間で通信先を切り替える例を挙げて説明したが、開示の技術はこれに限定されるものではない。例えば、複数のAP60と3G基地局62とLTE(4G)基地局との間で通信先を切り替えるようにしてもよい。また、複数のAP60の間で通信先を切り替えるようにしてもよい。また、複数のAP60とLTE基地局との間で通信先を切り替えるようにしてもよい。基地局間で通信先の切り替えが行われる場合、データフォワーディングなどが行われてセッションが維持されるが、セッション以外の準備処理(例えば、IPアドレスの更新)も必要となり、準備処理のたびにアプリの動作停滞を招き、円滑な無線通信が困難となる。しかし、上記開示の技術(アプリが通信していない場合に通信先を電波良好型の無線基地局に切り替え、アプリが通信している場合に切り替えを抑制する技術)を適用することで、準備処理に伴うアプリの動作停滞が抑制され、円滑な無線通信が可能となる。
上記各実施形態では、取得部20がGPSを利用して位置情報を取得する例を挙げて説明したが、開示の技術はこれに限定されるものではない。例えば、受付部46によって受け付けられた位置情報、外部インタフェース54を介して入力された位置情報、又は無線基地局から送信された位置情報が取得部20によって取得されるようにしてもよい。
上記各実施形態では、スマートデバイス10,11A,11Bの二次記憶部34の電波状態管理テーブル44に電波状態情報を記憶する例を挙げて説明したが、開示の技術はこれに限定されるものではない。例えば、インターネット回線64に接続されているサーバの記憶領域に電波状態情報を記憶し、必要に応じてサーバから電波状態情報がスマートデバイス10、11A,11Bに提供されるようにしてもよい。
上記各実施形態では、変動パターンA及び変動パターンBを不良型変動パターンとし、変動パターンCを良好型変動パターンとしたが、開示の技術はこれに限定されるものではない。例えば、3種類以上の変動パターンを不良型変動パターンとし、2種類以上の変動パターンを良好型変動パターンとしてもよい。
上記各実施形態では、回線混雑度監視サーバ68の二次記憶部92に回線混雑度管理テーブル100が記憶されている場合を例示したが、開示の技術はこれに限定されるものではない。例えば、スマートデバイス10,11A,11Bの二次記憶部34に回線混雑度管理テーブル100が記憶されていてもよい。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の無線通信装置の各々から送信された電波であって、受信部で受信された受信電波の強度を測定する測定部と、アプリケーションプログラムの実行により無線通信を行う処理部が無線通信中でない場合、通信先としての無線通信装置を、前記測定部で測定された受信電波の強度の変動パターンに応じて切り替え、前記処理部が無線通信中の場合、前記測定部で測定された受信電波の強度の変動パターンに応じた切り替えを抑制する切替部と、を含む通信先切替装置。
(付記2)
前記アプリケーションプログラムは、前記処理部によってフォアグラウンドで実行されるアプリケーションプログラムである付記1に記載の通信先切替装置。
(付記3)
前記切替部は、前記測定部で測定された受信電波の強度の変動パターンに応じた切り替えを、前記アプリケーションプログラムの種類に応じて行う付記2に記載の通信先切替装置。
(付記4)
前記切替部による切り替えは、異なる通信網に属する無線通信装置間での切り替えである付記1から付記3の何れか1つに記載の通信先切替装置。
(付記5)
所在位置を示す位置情報を取得する取得部を更に含み、前記切替部は、更に、過去の所在位置毎に、且つ前記測定部による測定が行われた過去の測定時間帯毎に、前記測定部で測定された受信電波の強度の変動パターンの型を示す類型情報が前記複数の無線通信装置の各々と対応付けられて記憶された記憶部から、現在時刻に対応する時刻を含む前記測定時間帯及び前記取得部で取得された位置情報に対応する類型情報を取得し、前記処理部が無線通信中でない場合に、通信先としての無線通信装置を、取得した前記類型情報に応じて切り替える付記1から付記4の何れか1つに記載の通信先切替装置。
(付記6)
前記切替部は、更に、前記アプリケーションプログラムの起動完了に伴って、現在時刻に対応する時刻を含む前記測定時間帯及び前記取得部で取得された位置情報に対応する前記類型情報を前記記憶部から取得し、前記処理部が無線通信中でない場合に、通信先としての無線通信装置を、取得した前記類型情報に対応する無線通信装置に切り替える付記5に記載の通信先切替装置。
(付記7)
前記切替部は、通信先としての無線通信装置を、前記測定部で測定された受信電波の強度の変動パターンに応じて切り替えることを、無線通信装置の回線混雑度が所定条件を満たしたことを条件に行う付記1から付記6の何れか1つに記載の通信先切替装置。
(付記8)
前記切替部は、前記通信先を、前記測定部で測定された受信電波の強度の変動パターンに応じて切り替えることを、前記アプリケーションプログラムの実行によりログインされる通信サービスからログアウトされていることを条件に行う付記1から付記6の何れか1つに記載の通信先切替装置。
(付記9)
前記切替部は、前記測定部で測定された前記複数の無線通信装置の各々についての受信電波の強度の変動パターンを、前記測定部で測定された受信電波の強度の平均値及び分散に基づいて特定する付記1から付記8の何れか1つに記載の通信先切替装置。
(付記10)
複数の無線通信装置の各々から送信された電波であって、受信部で受信された受信電波の強度を測定し、アプリケーションプログラムの実行により無線通信を行う処理部が無線通信中でない場合、通信先としての無線通信装置を、測定した受信電波の強度の変動パターンに応じて切り替え、前記処理部が無線通信中の場合、測定した受信電波の強度の変動パターンに応じた切り替えを抑制することを含む通信先切替方法。
(付記11)
前記アプリケーションプログラムは、前記処理部によってフォアグラウンドで実行されるアプリケーションプログラムである付記10に記載の通信先切替方法。
(付記12)
測定した受信電波の強度の変動パターンに応じた切り替えを、前記アプリケーションプログラムの種類に応じて行う付記11に記載の通信先切替方法。
(付記13)
前記切り替えは、異なる通信網に属する無線通信装置間での切り替えである付記10から付記12の何れか1つに記載の通信先切替方法。
(付記14)
コンピュータに、複数の無線通信装置の各々から送信された電波であって、受信部で受信された受信電波の強度を測定し、アプリケーションプログラムの実行により無線通信を行う処理部が無線通信中でない場合、通信先としての無線通信装置を、測定した受信電波の強度の変動パターンに応じて切り替え、前記処理部が無線通信中の場合、測定した受信電波の強度の変動パターンに応じた切り替えを抑制することを含む処理を実行させるための通信先切替プログラム。
(付記15)
前記アプリケーションプログラムは、前記処理部によってフォアグラウンドで実行されるアプリケーションプログラムである付記14に記載の通信先切替プログラム。
(付記16)
測定した受信電波の強度の変動パターンに応じた切り替えを、前記アプリケーションプログラムの種類に応じて行う付記15に記載の通信先切替プログラム。
(付記17)
前記切り替えは、異なる通信網に属する無線通信装置間での切り替えである付記14から付記16の何れか1つに記載の通信先切替プログラム。