【実施例1】
【0011】
[全体構成]
図1は、実施例1に係るシステムの全体構成例を示す図である。
図1に示すように、このシステムは、移動体端末10とサーバ50とがモバイル回線網1および無線LAN網2各々を介して相互に通信可能に接続される。なお、モバイル回線網1の例としてはLTE網や3G網などがあり、無線LAN網2の例としてはWi−FiやWiMAX(Worldwide Interoperability for Microwave Access)などである。また、各装置の台数等は、一例であり、限定するものではない。なお、実施例では、Wi−FiとLTEとを用いた例で説明する。
【0012】
移動体端末10は、アプリケーションを実行してサーバ50と通信を実行する端末であり、例えばスマートフォン、携帯電話、ノートパソコンなどである。この移動体端末10は、各通信網に対するアンテナを有し、各通信網を同時に用いて通信することができる。サーバ50は、移動体端末10に各種サービスを提供するサーバであり、例えばWebサーバやアプリケーションサーバなどである。
【0013】
このような状態で、移動体端末10は、Wi−Fiの無線品質である第1の無線品質を測定し、LTEの無線品質である第2の無線品質を測定する。そして、移動体端末10は、第1の無線品質または第2の無線品質に基づいて、Wi−Fiに使用する第1のソケットの数と、LTEに使用する第2のソケットの数との割合を決定する。その後、移動体端末10は、決定部によって決定された割合で、第1のソケットと第2のソケットとを生成し、生成された各ソケットを用いてデータを送信する。
【0014】
例えば、移動体端末10は、Wi−FiとLTEとの割合を3:7と決定したとする。この場合、移動体端末10は、アプリケーションAに使用する10ソケットのうち、Wi−Fiを経由する経路で3ソケットを送信し、LTEを経由する経路で7ソケットを送信する。
【0015】
つまり、移動体端末10は、Wi−Fi用のIP(Internet Protocol)とアプリケーションAが使用するポート番号、および、サーバ50側のWi−Fi用のIPアドレスとアプリケーションAが使用するポート番号を用いて、Wi−Fi網にコネクションを確立する。その後、移動体端末10は、ソケットをオープンしてソケットにデータを書込み、サーバ50側でデータがリードされる。サーバ50は移動体端末10からの要求を返信し、移動体端末10は同ソケットを使用してデータを受信する。移動体とサーバとの通信が完了すると、ソケットをクローズする。移動体端末10は、全10ソケットのうち、このWi−Fiにおけるソケット通信を3回実行して、データを送信する。
【0016】
一方で、移動体端末10は、LTE用のIPアドレスとアプリケーションAが使用するポート番号、および、サーバ50側のLTE用のIPアドレスとアプリケーションAが使用するポート番号を用いて、LTE網にコネクションを確立する。その後、移動体端末10は、ソケットをオープンしてソケットにデータを書込み、サーバ50側でデータがリードされる。サーバ50は移動体端末10からの要求を返信し、移動体端末10は同ソケットを使用してデータを受信する。移動体とサーバとの通信が完了すると、ソケットをクローズする。移動体端末10は、全10ソケットのうち、このLTEにおけるソケット通信を7回実行して、データ送信を実行する。
【0017】
このように、移動体端末10は、アプリデータを送信する際、Wi−Fiが安定するまでWi−Fiソケット数を増やしていき、Wi−FiソケットとLTEソケットとを同時に用いて通信することで、網切替時に通信断を抑制し、ユーザの利便性を向上させる。
【0018】
[ハードウェア構成]
図2は、実施例1に係る移動体端末のハードウェア構成例を示す図である。
図2に示すように、移動体端末10は、Wi−Fi送受信部11、モバイル送受信部12、表示装置13、マイク14、スピーカ15、文字入力装置16、記憶装置17、CPU(Central Processing Unit)18を有する。
【0019】
Wi−Fi送受信部11は、アンテナ10aを用いて、Wi−Fiなどの無線LAN網2を介して通信を実行する。このWi−Fi送受信部11には、Wi−Fi用のIPアドレスが設定されている。Wi−Fi送受信部11は、このIPアドレスを用いて、サーバ50とコネクションを確立して、データの送受信を実行する。
【0020】
モバイル送受信部12は、アンテナ10bを用いて、LTEなどのモバイル回線網1を介して通信を実行する。このモバイル送受信部12には、LTE用のIPアドレスが設定されている。モバイル送受信部12は、このIPアドレスを用いて、サーバ50とコネクションを確立して、データの送受信を実行する。
【0021】
表示装置13は、タッチパネルやディスプレイなどの表示装置であり、各種情報を表示する。マイク14は、音声を集音してCPU18に入力する。スピーカ15は、CPU18から入力された音声を出力する。
【0022】
文字入力装置16は、キーボードやタッチパネルを利用した入力デバイスであり、ユーザから各種入力を受け付けてCPU18に出力する。記憶装置17は、メモリやハードディスクなどの記憶装置であり、CPU18が実行するプログラム、CPU18が実行するプログラム等によって生成された処理結果、各種テーブル等を記憶する。
【0023】
CPU18は、移動体端末10全体の処理を司る処理部であり、記憶装置17からプログラムを読み出してプロセスを実行する。例えば、CPU18は、
図3以降で説明する処理を実行するプロセスを動作させる。また、CPU18は、2つ以上で構成されていてもよい。
【0024】
[機能構成]
図3は、実施例1に係る移動体端末が有する機能構成を示す機能ブロック図である。
図3に示すように、移動体端末10は、対象アプリケーションリストDB20、割合状況DB21、エラー情報DB22、アプリ実行部23、Wi−Fi送受信部24、モバイル送受信部25を有する。また、移動体端末10は、Wi−Fi品質測定部26、モバイル品質測定部27、割合決定部28、ソケット割振部29を有する。
【0025】
なお、対象アプリケーションリストDB20、割合状況DB21、エラー情報DB22は、
図2の記憶装置17等に格納されるデータベースである。また、アプリ実行部23、Wi−Fi品質測定部26、モバイル品質測定部27、割合決定部28、ソケット割振部29等は、CPU18が実行するプロセス等の一例である。
【0026】
対象アプリケーションリストDB20は、2つの通信網を同時に用いて通信するアプリケーションのリストを記憶するデータベースである。つまり、対象アプリケーションリストDB20に記憶されるアプリケーションが、本実施例で説明する処理の対象とする。なお、ここで記憶される情報は、ユーザ等によって予め設定される。
【0027】
割合状況DB21は、アプリケーションごとに、現在の割合状況を記憶するデータベースである。具体的には、割合状況DB21は、実行中のアプリケーションについて、Wi−Fi用のソケットとLTE用のソケットとの割合として遷移レベルを記憶する。
【0028】
レベル1の場合、Wi−Fi:LTE=1:9であり、レベル2の場合、Wi−Fi:LTE=2:8であり、レベル3の場合、Wi−Fi:LTE=3:7であり、レベル4の場合、Wi−Fi:LTE=4:6である。また、レベル5の場合、Wi−Fi:LTE=5:5であり、レベル6の場合、Wi−Fi:LTE=6:4であり、レベル7の場合、Wi−Fi:LTE=7:3である。また、レベル8の場合、Wi−Fi:LTE=8:2であり、レベル9の場合、Wi−Fi:LTE=9:1であり、レベル10の場合、Wi−Fi:LTE=10:0である。
【0029】
つまり、レベル値が2の場合、アプリケーションが使用するソケット10のうち、Wi−Fiを経由するソケット数が2つであり、LTEを経由するソケット数が8つとなる。また、レベル値が10の場合、アプリケーションのデータがすべてWi−Fiを経由するソケットで送信される。なお、ここで記憶される情報は、後述する割合決定部28によって更新される。
【0030】
エラー情報DB22は、ソケット通信で送信されたデータのエラー情報を記憶するデータベースである。具体的には、エラー情報DB22は、アプリケーションごとに、エラーが発生したソケットの情報とデータの情報とを対応付けて記憶する。なお、ソケットの情報としては、例えばソケットを識別する識別子等であり、データの情報としては、データを特定する情報などである。
【0031】
アプリ実行部23は、アプリケーションを実行する処理部である。具体的には、アプリ実行部23は、ユーザの指示操作にしたがって、ユーザが所望するアプリケーションのプルグラムを記憶装置17等から読み出してメモリに展開し、アプリケーションを実行する。
【0032】
Wi−Fi送受信部24は、Wi−Fiに用いるソケットを生成し、Wi−Fiを用いてデータを送受信する処理部である。具体的には、Wi−Fi送受信部24は、Wi−Fi網上でサーバ50とコネクションを確立して、ソケットを使用してデータをサーバ50に送信する。
【0033】
例えば、Wi−Fi送受信部24は、サーバ50との間で確立したコネクションを用いて、ソケットへのデータ書込みを実行し、サーバ50側でデータがリードされる。サーバ50は移動体端末10からの要求を返信し、移動体端末10は同ソケットを使用してデータを受信する。移動体とサーバとの通信が完了すると、ソケットをクローズする。また、Wi−Fi送受信部24は、サーバ50との間で確立したコネクションを用いて、サーバ50側からソケットへのデータ書込みが実行される。サーバ50は移動体端末10からの要求を返信し、移動体端末10は同ソケットを使用してデータを受信する。移動体とサーバとの通信が完了すると、当該ソケットからデータを読み込む。このようにして、Wi−Fi送受信部24は、Wi−Fiを経由するソケット通信によって、データの送受信を実行する。
【0034】
モバイル送受信部25は、LTEに用いるソケットを生成し、LTEを用いてデータを送受信する処理部である。具体的には、モバイル送受信部25は、LTE網上でサーバ50とコネクションを確立して、ソケットを使用してデータをサーバ50に送信する。
【0035】
例えば、モバイル送受信部25は、サーバ50との間で確立したコネクションを用いて、ソケットへのデータ書込みを実行し、サーバ50側でデータがリードされる。サーバ50は移動体端末10からの要求を返信し、移動体端末10は同ソケットを使用してデータを受信する。移動体とサーバとの通信が完了すると、ソケットをクローズする。また、モバイル送受信部25は、サーバ50との間で確立したコネクションを用いて、サーバ50側からソケットへのデータ書込みが実行されると、当該ソケットからデータを読み込む。このようにして、モバイル送受信部25は、LTEを経由するソケット通信によって、データの送受信を実行する。
【0036】
Wi−Fi品質測定部26は、Wi−Fiの無線品質を測定する処理部である。具体的には、Wi−Fi品質測定部26は、Wi−Fiを用いたソケット通信から、実測スループット、無線電波強度(RSSI:Received Signal Strength Indication)、スループット上限値であるリンクスピード、ソケット単位の送受信量、使用されているSSID(Service Set Identifier)などを取得する。
【0037】
例えば、Wi−Fi品質測定部26は、ソケット毎のデータ容量と送信時間とから、単位時間当たりの通信量として実測スループット(bps)を算出する。Wi−Fi品質測定部26は、受信信号から無線信号強度を測定する。シグナルレベルの強弱と通信速度とは弱い関係があり、無線信号強度が強いほど通信速度が速くなることが期待できる。
【0038】
Wi−Fi品質測定部26は、使用されているWi−Fiの種別からリンクスピードを特定する。リンクスピードは、現在Wi−Fi接続しているアクセスポイントとの理論速度であり、接続状況によって変化する。実測スループットは、リンクスピードを超えることはない。
【0039】
Wi−Fi品質測定部26は、Wi−Fiで使用されたソケット毎に、read()やwrite()などの入出力関数でやり取りを行ったデータ量の総計を、ソケット単位の送受信量として算出する。また、Wi−Fi品質測定部26は、Wi−Fiの無線通信に含まれる識別子から、SSIDを抽出する。
【0040】
なお、Wi−Fi品質測定部26は、実測スループットやリンクスピード等の値によってスループットレベルを判定する。
図4は、スループットレベルを説明する図である。
図4に示すように、スループットレベル値は、スループット実測値によって特定することができる。
図4の場合、スループット値が「0からX1」の範囲内の場合には、スループットレベル値が「RL1」と特定されることを示し、スループット値が「X8からX9」の範囲内の場合には、スループットレベル値が「RL5」と特定されることを示す。
【0041】
モバイル品質測定部27は、モバイル回線網1の無線品質を測定する処理部である。具体的には、モバイル品質測定部27は、モバイル網1を用いたソケット通信から、実測スループット、無線電波強度、ネットワーク種別、ソケット単位の送受信量などを取得する。
【0042】
例えば、モバイル品質測定部27は、ソケット毎のデータ容量と送信時間とから、単位時間当たりの通信量として実測スループット(bps)を算出する。モバイル品質測定部27は、受信信号から無線信号強度を測定する。モバイル品質測定部27は、使用されているモバイル通信回線の種別から通信規格を特定し、ネットワーク種別がLTEか3Gかを特定する。モバイル品質測定部27は、モバイル回線で使用されたソケット毎に、read()やwrite()などの入出力関数でやり取りを行ったデータ量の総計を、ソケット単位の送受信量として算出する。
【0043】
なお、モバイル品質測定部27についても、
図4と同様、実測スループットの値によってスループットレベルを判定する。なお、Wi−Fiのスループットレベルやモバイル回線のスループットレベルについては、レベル分けするスループット値等は任意に変更することができる。
【0044】
割合決定部28は、Wi−Fiの無線品質またはLTEの無線品質に基づいて、Wi−Fiに使用するソケットの数と、LTEに使用するソケットの数との割合を決定する処理部である。具体的には、割合決定部28は、いずれの無線品質が向上しているかによって、割合率を示すレベル値を決定し、割合状況DB21に格納する。すなわち、割合決定部28は、1つのアプリケーションのデータを、ソケット単位でWi−FiまたはLTEに振分ける振分率を決定する。
【0045】
例えば、割合決定部28は、対象アプリケーションリストDB20に登録されるアプリケーションの通信が発生した場合に、Wi−Fiの無線品質が向上するにしたがって、Wi−Fiのソケット率を増やしていく。そして、割合決定部28は、Wi−Fiの無線品質が高品質で安定した場合に、LTEのソケットをなくして、すべてのデータをWi−Fiのソケットで送信する。
【0046】
一例を挙げると、割合決定部28は、無線電波強度が高い状態を保っている場合には、安定した通信が期待できる度合いが高いので、LTEからWi−Fiへの遷移時間を短くするために、遷移レベルを1ずつではなく2以上の所定数ずつ遷移させる。また、割合決定部28は、無線電波強度が低い状態を保っている場合や一定ではない場合には、通信が不安定になる可能性が高いので、LTEからWi−Fiへの遷移時間を長くするために、遷移レベルを1ずつ遷移させる。
【0047】
ここで、
図5を用いて遷移レベルの変化とソケットの生成割合の変化との関係を説明する。
図5は、遷移レベルの変化例を説明する図である。
図5では、一例として、Wi−Fiの無線品質が変化し、LTEの無線品質が一定である状態で、Wi−Fiの無線品質に応じて遷移レベルが1つずつ変化する例で説明する。
【0048】
図5に示すように、割合決定部28は、アプリケーションが開始されると、遷移レベル0から開始し、LTEのソケット率を100%にする。続いて、割合決定部28は、次にタイミングで、Wi−Fiの品質が向上した場合、遷移レベル1に上昇させ、Wi−Fiのソケット率を10%、LTEのソケット率を90%に変化させる。
【0049】
遷移レベル1の状態で、割合決定部28は、次のタイミングにおいてWi−Fiの品質がさらに向上した場合、遷移レベル2に上昇させ、Wi−Fiのソケット率を20%、LTEのソケット率を80%に変化させる。一方で、割合決定部28は、Wi−Fiの品質が低下した場合、遷移レベル0に下降させ、Wi−Fiのソケット率を0%、LTEのソケット率を100%に変化させる。
【0050】
遷移レベル2の状態で、割合決定部28は、次のタイミングにおいてWi−Fiの品質がさらに向上した場合、遷移レベル3に上昇させ、Wi−Fiのソケット率を30%、LTEのソケット率を70%に変化させる。一方で、割合決定部28は、Wi−Fiの品質が低下した場合には、遷移レベル1に下降させ、Wi−Fiのソケット率を10%、LTEのソケット率を90%に変化させる。
【0051】
このように、割合決定部28は、各遷移レベルにおいてWi−Fiの品質を測定し、Wi−Fiの品質が向上している場合には、遷移レベルを上げて、Wi−Fiのソケット数を増やし、LTEのソケット数を減らす。一方、割合決定部28は、Wi−Fiの品質が低下した場合には、遷移レベルを下げて、Wi−Fiのソケット数を減らし、LTEのソケット数を増やす。
【0052】
また、Wi−Fiの無線品質が一定であり、LTEの無線品質が変化する状態でも、同様に遷移レベルを遷移させて、ソケット率を変化させることができる。例えば、割合決定部28は、各遷移レベルにおいてLTEの品質を測定し、LTEの品質が向上している場合には、遷移レベルを下げて、LTEのソケット数を増やし、LTEのソケット数を増やす。一方、割合決定部28は、LTEの品質が低下した場合には、遷移レベルを上げて、Wi−Fiのソケット数を増やし、LTEのソケット数を減らす。
【0053】
ソケット割振部29は、割合決定部28が決定した割合でソケットを振分ける処理部である。具体的には、ソケット割振部29は、割合状況DB21を参照し、通信を実行するアプリケーションの現在の割振り状況を示す遷移レベルを特定する。そして、ソケット割振部29は、特定した遷移レベルに応じた割合で、各送受信部にソケットを割振る。
【0054】
図6は、ソケットの生成例を説明する図である。
図6は、割合比率の遷移レベルが3である場合の割り振り例を示す図である。すなわち、Wi−Fiのソケット数:LTEのソケット数=3:7の例である。
【0055】
図6に示すように、ソケット割振部29は、1つのアプリケーションデータを10個のソケットで送信する場合、モバイル送受信部25に、LTEのソケットであるソケットMを7個割振る。また、ソケット割振部29は、Wi−Fi送受信部24に、Wi−FiのソケットであるソケットWを3個割振る。
【0056】
なお、各ソケットで送信されるデータは、必ずしも同じ容量とはならない。すなわち、ソケットで送信するデータ量を同一にする必要はない。例えば、ソケット割振部29は、アプリケーションデータの構成によって各ソケットを割振るので、ソケットには依存せず、アプリケーションに依存してソケットが生成される。
【0057】
また、ソケット割振部29は、どのような順番でどの回線用のソケットを割振るかは任意に設定できる。例えば、ソケット割振部29は、ラウンドロビン方式を用いて、回線に対して1:1で割振ることもできる。また、ソケット割振部29は、遷移レベル毎に、どのような順番で割振るかを予め決定しておくこともできる。
【0058】
また、ソケット割振部29は、ラウンドロビン方式を応用して、設定された振分率に応じて、順次振り分けることもできる。例えば、ソケット割振部29は、遷移レベル7の場合、「1、3、4、6、7、8、10番目のデータ」をWi−Fi送受信部に割振り、「2、5、9番目のデータ」をモバイル送受信部25に割振ることもできる。
【0059】
このように、ソケット割振部29は、1つのアプリケーションを2つの経路、すなわち2種類のソケットに割振って、データを送信させる。
【0060】
[全体的な処理の流れ]
図7は、移動体端末が実行する処理の流れを示すフローチャートである。
図7に示すように、移動体端末10の割合決定部28は、端末が起動されると(S101:Yes)、同時通信OFF状態に遷移する(S102)。つまり、移動体端末10は、LTE通信のみを用いた状態となる。
【0061】
その後、割合決定部28は、LTEとWi−Fiの両方がIP接続状態になると(S103:Yes)、同時通信ON状態に遷移する(S104)。つまり、割合決定部28は、LTEのIPアドレスとWi−FiのIPアドレスとが割振られると、LTEとWi−Fiの同時振分を開始する。
【0062】
そして、割合決定部28は、アプリケーションがソケット通信を要求すると(S105:Yes)、要求元のアプリケーションが対象アプリケーションリストDB20に登録されているかを判定する(S106)。
【0063】
その後、割合決定部28は、要求元のアプリケーションが対象アプリケーションリストDB20に登録されている場合(S106:Yes)、
図8で説明する振分処理を実行する(S107)。一方、割合決定部28は、要求元のアプリケーションが対象アプリケーションリストDB20に登録されていない場合(S106:No)、品質のよい回線のみを用いてデータ送信を実行する(S108)。また、割合決定部28は、要求元のアプリケーションが使用する回線が予め設定されている場合には、設定されている回線のみを用いてデータ送信を実行する。
【0064】
[振分処理の流れ]
図8は、移動体端末が実行する振分処理の流れを示すフローチャートである。
図8に示すように、移動体端末10の割合決定部28は、振分処理が開始されると(S201:Yes)、通信対象のソケット数を決定する(S202)。具体的には、割合決定部28は、アプリケーションが要求されるデータ量に基づいて、当該データに用いる全ソケット数を決定する。
【0065】
続いて、Wi−Fi品質測定部26は、前回のWi−Fi通信等から、Wi−Fiの回線状況を取得し(S203)、同様に、モバイル品質測定部27は、前回のモバイル通信等から、LTEなどのモバイル回線の状況を取得する(S204)。
【0066】
その後、割合決定部28は、割合状況DB21に記憶される情報を参照し、当該アプリケーションの現在の遷移レベルを取得する(S205)。
【0067】
そして、割合決定部28は、今回取得されたWi−Fiの回線状況が前回より好転している場合(S206:Yes)、Wi−Fiの遷移レベルを上げる(S207)。すなわち、割合決定部28は、Wi−Fiのソケット数が多くなるようにレベルを上げる。
【0068】
一方、割合決定部28は、今回取得されたWi−Fiの回線状況が前回より悪くなっているまたは変化がない場合(S206:No)、Wi−Fiの遷移レベルを下げる(S208)。すなわち、割合決定部28は、Wi−Fiのソケット数が少なくなるように遷移レベルを下げる。
【0069】
そして、割合決定部28は、S207またはS208によって決定された遷移レベルにしたがって、Wi−Fiのソケット数とLTEのソケット数との割合を決定する(S209)。
【0070】
その後、ソケット割振部29または各送受信部は、割合決定部28によって決定された割合でソケットを生成する(S210)。そして、生成されたソケットに対応する送受信部が、ソケットを用いてデータを送受信する(S211)。例えば、ソケット割振部29がレベルに応じてアプリケーションのデータをいずれかの送受信部に割振り、割振られた送受信部がサーバ50との間でコネクションを確立してソケットによってデータを送信する。
【0071】
そして、当該ソケットによるデータ送信が正常に完了すると(S212:Yes)、ソケット割振部29または各送受信部は、全ソケット通信が完了したかを判定する(S213)。
【0072】
全ソケット通信が完了した場合(S213:Yes)、割合決定部28は、アプリケーションが終了したか否かを判定する(S214)。アプリケーションが終了した場合(S214:Yes)、割合決定部28は、振分処理を終了する。一方、割合決定部28は、アプリケーションが継続している場合には(S214:No)、S202に戻って次のアプリケーションデータについて同様の処理を実行する。また、割合決定部28は、未処理のソケット通信がある場合(S213:No)、S211に戻って次のソケットについて処理を実行する。
【0073】
また、S212において、各送受信部は、ソケットによるデータ送信が正常に完了しない場合(S212:No)、エラー情報をエラー情報DB22に格納したり、エラー情報をディスプレイ等に表示したりするエラー通知を実行する(S215)。
【0074】
そして、エラーを検知した送受信部は、当該エラーが発生したデータの通信を他方の送受信部に要求し、要求された送受信部が、エラー情報DB22からエラーが発生したデータを特定して再送する(S216)。すなわち、エラーが発生したデータは、エラーが発生した網とは異なる網のソケット通信によって再送される。なお、この再送は、S202によって決定された全ソケット通信完了後に実行してもよく、任意のタイミングで実行することができる。
【0075】
[状態遷移]
次に、移動体端末10がソケット通信において遷移する状態について説明する。
図9は、移動体端末の状態遷移を説明する図である。
図9に示すように、移動体端末10は、Wi−Fi接続確認中、公衆Wi−Fi接続中、Wi−Fi遷移中、負荷分散中、Wi−Fi接続中、Wi−Fi遮断中の各状態を、Wi−Fiの無線状態やLTEの無線状態に応じて遷移する。ここで各状態および遷移条件等について説明する。
【0076】
(Wi−Fi接続確認中)
Wi−Fi接続確認中の状態は、移動体端末10が起動してから遷移する状態であり(S30)、対象アプリケーションリストのアプリケーションの通信をすべてLTE回線へ振分ける状態である。すなわち、この状態は、Wi−Fiのソケット数:LTEのソケット数=0:10の状態である。
【0077】
この状態の場合、移動体端末10は、Wi−Fi回線の情報が取得できているか、Wi−Fiの品質が許容範囲内であるか、接続されたWi−Fiが公衆Wi−FIか否かを確認する。そして、移動体端末10は、上記状態が確認されるまでWi−Fi接続確認中を維持する。
【0078】
そして、移動体端末10は、アクセスポイントのSSID等により、公衆Wi−Fiに接続されたことを検出すると、「公衆Wi−Fi接続中」状態に遷移する(S31)。また、移動体端末10は、接続されたWi−Fiが一般的なWi−Fiであり、当該Wi−Fiの品質が下限値以上であることを検出すると、「Wi−Fi遷移中」状態に遷移する(S32)。
【0079】
(公衆Wi−Fi接続中)
公衆Wi−Fi接続中の状態は、移動体端末10が公衆Wi−Fiへ接続している状態であり、Wi−Fiの遷移レベルを1から開始して最終的に10まで上昇させる。すなわち、この状態は、上述したWi−Fiの回線品質の向上に伴って、レベルを上げていき、Wi−Fiのソケット数を増やしていく状態である。
【0080】
移動体端末10は、ある遷移レベルの振分を例えば10回繰り返した場合に、一段上の遷移レベルの振分を実施し、遷移レベルを上昇させている間に品質が低下した場合は、遷移レベルを一段下に下げる(S33)。
【0081】
また、移動体端末10は、公衆Wi−Fiの品質が下限値を下回った場合は、「Wi−Fi遮断中」状態に遷移する(S34)。また、移動体端末10は、遷移レベルを上昇させている間に品質が低下した場合は、遷移レベルを一段下に下げるが、公衆Wi−Fiの品質が一定秒間の間にスループットが所定値以上低下した場合には、「Wi−Fi接続確認中」に遷移する(S35)。
【0082】
(Wi−Fi遷移中)
Wi−Fi接続中の状態は、Wi−Fi回線へ完全に接続するまで、徐々にWi−Fi使用率を上げていく状態であり、Wi−Fiの遷移レベルを1から開始して最終的に10まで上昇させる。すなわち、この状態は、上述したWi−Fiの回線品質の向上に伴って、遷移レベルを上げていき、Wi−Fiのソケット数を増やしていく状態である。
【0083】
移動体端末10は、ある遷移レベルの振分を例えば10回繰り返した場合に、一段上の遷移レベルの振分を実施する(S36)。通常、移動体端末10は、10ソケットごとにWi−Fi回線の品質を判断し、遷移レベルを1ずつ上げていくが、Wi−Fiの無線電波強度およびリンクスピードが所定値以上を超える場合、一気にレベルを2または3上げることもできる。つまり、移動体端末10は、遷移レベルが低い状態にも関わらず、Wi−Fi品質が非常に高品質の場合には、すばやくWi−Fiに切り替えるため、遷移レベルを一気に上げる。
【0084】
一方、移動体端末10は、遷移レベルを上昇させている間に品質が低下した場合は、遷移レベルを一段下に下げるが、Wi−Fi回線の品質が一定秒間の間にスループットが所定値以上低下した場合には、「Wi−Fi接続確認中」に遷移する(S37)。例えば、移動体端末10は、
図4に示したスループットのレベル値RLX(X=1〜10)が一気に4レベル以上下がった場合に、「Wi−Fi接続確認中」に遷移する。この状態遷移は、例えばWi−Fiが圏外になった場合などが該当する。
【0085】
また、移動体端末10は、Wi−Fiのソケットを用いて所定値以上の容量を有するデータ送信が実行された場合には、「負荷分散中」状態に遷移する(S38)。例えば、移動体端末10は、1ソケットで3Mbyteの通信がWI−Fiで発生した場合に、Wi−Fiの回線使用率を低下させて、輻輳の発生を抑制する。
【0086】
(Wi−Fi接続中)
Wi−Fi接続中状態は、対象アプリケーションリストのアプリケーションの通信をすべてWi−Fiに振分ける状態である。この状態は、完全にWi−Fiへ接続している状態であり、常にオフロード率(Wi−Fi使用率)100%で通信する。すなわち、この状態は、Wi−Fiのソケット数:LTEのソケット数=10:0の状態である。
【0087】
この状態で、移動体端末10は、Wi−Fiのソケットを用いて所定値以上の容量を有するデータ送信が実行された場合には、「負荷分散中」状態に遷移する(S39)。例えば、移動体端末10は、1ソケットで3Mbyteの通信がWI−Fiで発生した場合に、Wi−Fiの回線使用率を低下させて、輻輳の発生を抑制する。
【0088】
また、移動体端末10は、Wi−Fi回線のスループットやリンクスピードが所定値を下回った場合や、一定秒間の間にスループットが所定値以上低下した場合には、「Wi−Fi接続確認中」に遷移する(S40)。例えば、移動体端末10は、Wi−Fi回線のスループットが
図4に示したレベル値がRL3以下になった場合、リンクスピードがRL5以下になった場合に、「Wi−Fi接続確認中」に遷移する。また、移動体端末10は、一気に4レベル以上下がるなど、Wi−Fiが圏外になった場合にも、「Wi−Fi接続確認中」に遷移する。
【0089】
また、移動体端末10は、Wi−Fiアクセスポイントからサーバ間のバックボーンの回線速度が十分出ない場合は、「Wi−Fi遮断中」状態に遷移する(S41)。すなわち、移動体端末10は、Wi−Fi回線速度が十分得られない場合には、Wi−Fiを遮断する。
【0090】
(負荷分散中)
負荷分散中の状態は、Wi−Fiの通信の一部をLTEなどのモバイル通信に送信して、Wi−Fiの負荷を分散させている状態である。すなわち、この状態は、Wi−Fiのあるソケット通信において大容量のデータが送信されたことで、Wi−Fiが輻輳を起こしている状態である。
【0091】
この状態は、Wi−Fiのソケット数:LTEのソケット数=0:10の状態である。すなわち、移動体端末10は、輻輳の原因となったデータ以降のデータには、Wi−Fiに割り与えられたソケットであっても、モバイル回線のソケットで送信する。
【0092】
また、移動体端末10は、「負荷分散中」の状態に遷移したタイミングで、当該移動体端末10がLTEではなく3G回線をモバイル回線として使用している場合には、「Wi−Fi接続確認中」の状態に遷移する(S42)。
【0093】
また、移動体端末10は、「Wi−Fi遷移中」の状態から「負荷分散中」の状態に遷移した後、輻輳が解除されたことを検出した場合には、「Wi−Fi遷移中」の状態に再度遷移する(S43)。このとき、移動体端末10は、遷移前のレベルに再度戻ってもよく、遷移レベル1からやり直してもよい。
【0094】
同様に、移動体端末10は、「Wi−Fi接続中」の状態から「負荷分散中」の状態に遷移した後、輻輳が解除されたことを検出した場合には、「Wi−Fi接続中」の状態に再度遷移する(S44)。このとき、移動体端末10は、遷移前のレベルに再度戻ってもよく、遷移レベル1からやり直してもよい。
【0095】
(Wi−Fi遮断中)
Wi−Fi遮断中の状態は、アプリケーションの新規ソケットをWi−Fiへ振分けることを抑止する状態である。この状態は、Wi−Fiアクセスポイントからサーバ間のバックボーンの回線速度が十分出ない場合や速度が低下した場合に遷移する状態であり、対象アプリケーションリストに登録されるアプリケーションの通信であっても、Wi−Fiを利用せず、モバイル回線でデータ送信される。すなわち、この状態に遷移すると、移動体端末10は、振分率(遷移レベル)に関係なく、モバイル回線のソケットでデータ送信を実行する。
【0096】
また、移動体端末10は、対象アプリケーションリストに登録されているアプリケーション以外のアプリケーションのWi−Fiを用いたデータ送信のスループットを監視し、Wi−Fiの速度回復を監視する。なお、移動体端末10は、モバイル回線のスループットも監視し、Wi−Fiよりも速度が遅くならないことを監視する。
【0097】
そして、移動体端末10は、Wi−Fiよりも速度が下限値以上となって遮断が解除された場合や、当該移動体端末10がLTEではなく3G回線をモバイル回線として使用している場合には、「Wi−Fi接続確認中」の状態に遷移する(S45)。
【0098】
[遷移イベント]
次に、移動体端末10が、上述した状態遷移を行うために、端末内で発生させるイベントについて説明する。
図10は、移動体端末の状態遷移とイベントとの関係を説明する図である。
【0099】
(Wi−Fi確認完了イベント)
図10に示すように、この「Wi−Fi確認完了」イベントは、Wi−Fiが使用可能と確認された場合に発行されるイベントである。移動体端末10は、Wi−Fiの品質が所定のレベル以上であり、許容範囲内であると確認できた場合に、このイベントを発行する。移動体端末10は、「Wi−Fi回線確認中」の状態で、「Wi−Fi確認完了」イベントが発生すると、「Wi−Fi遷移中」の状態に遷移する。
【0100】
(公衆Wi−Fi確認完了イベント)
この「公衆Wi−Fi接続中」は、使用可能と判定されたWi−Fiの接続先のアクセスポイントが公衆Wi−Fi用である場合に発行されるイベントである。移動体端末10は、Wi−Fiの品質が所定のレベル以上であって許容範囲内と判定した場合、かつ、接続されるWi−Fiが公衆Wi−Fiであった場合に、このイベントを発行する。
【0101】
また、移動体端末10は、「Wi−Fi回線確認中」の状態で、「公衆Wi−Fi確認完了」イベントが発生すると、「公衆Wi−Fi接続中」の状態に遷移する。なお、公衆Wi−Fiか否かは、アクセスポイントのSSID等で判断できる。
【0102】
(Wi−Fi遷移完了イベント)
この「Wi−Fi遷移完了」イベントは、遷移レベルが1〜9の状態から、遷移レベルが最大となった場合に発行されるイベントである。移動体端末10は、「Wi−Fi遷移中」の状態で、このイベントが発行された場合に、「Wi−Fi接続中」の状態に遷移し、Wi−Fiのソケットのみを用いてデータ送信を実行する。
【0103】
(Wi−Fi回線輻輳イベント)
この「Wi−Fi回線輻輳」イベントは、Wi−Fi遷移中の状態もしくはWi−Fi接続中の状態で、Wi−Fiのソケット単位の実測スループットが下限値を下回った場合に発行されるイベントである。
【0104】
移動体端末10は、「Wi−Fi遷移中」または「Wi−Fi接続中」の状態で、「Wi−Fi回線輻輳」イベントが発行されると、「負荷分散中」の状態に遷移する。また、移動体端末10は、公衆Wi−Fiに接続中の場合、状態をリセットしてWi−Fiの遷移レベルを上昇させていく自己遷移を実行する。
【0105】
(Wi−Fi輻輳解消イベント)
この「Wi−Fi輻輳解消」イベントは、「負荷分散中」の状態で、Wi−Fiのソケット単位の実測スループットが下限値を上回った場合に発行されるイベントである。移動体端末10は、「負荷分散中」の状態で、このイベントが発行された場合、Wi−Fi回線の飽和状態が緩和されたとみなし、「Wi−Fi遷移中」の状態に遷移する。
【0106】
(Wi−Fi回線品質劣化イベント)
このイベントは、全状態において定期的に確認されるWi−Fiの品質が許容値を下回った場合に発行されるイベントである。また、このイベントは、Wi−Fiの品質が急激に下回った場合にも発行される。
【0107】
移動体端末10は、「Wi−Fi遷移中」、「Wi−Fi接続中」、「負荷分散中」、「公衆Wi−Fi接続中」の各状態でこのイベントが発行された場合、Wi−Fiの品質が使用できない程劣化したと判定して、「Wi−Fi回線確認中」の状態に遷移する。
【0108】
(Mobile回線品質劣化イベント)
このイベントは、定期的に確認されるモバイル回線の品質が許容値を下回った場合に発行されるイベントである。
【0109】
移動体端末10は、「Wi−Fi遷移中」または「負荷分散中」の各状態でこのイベントが発行された場合、モバイル回線が利用不能と判定して、「Wi−Fi接続中」の状態に遷移して、Wi−Fiのみを用いてソケット通信を実行する。
【0110】
(Mobile回線輻輳イベント)
このイベントは、モバイル回線でソケットの占有を検知した場合に発行されるイベントである。移動体端末10は、このイベントが発行された場合、Wi−Fi遷移中のWi−Fiの遷移レベルを上昇させる。また、Wi−Fi遷移レベルが上昇するので、結果的にWi−Fiへ遷移する速度が上がる。
【0111】
(Mobile輻輳解消イベント)
このイベントは、モバイル回線を占有するソケットが解放された場合に発行されるイベントである。移動体端末10は、このイベントが発行された場合は、特に状態遷移を実行しない。
【0112】
(Wi−Fi速度低下イベント)
このイベントは、Wi−Fi回線の実効スループットが所定値を下回った場合に発行されるイベントである。例えば、3G回線の以前のローレンジでは150kbps、3.5G回線のミドルレンジでは200kbps、LTEなどのハイレンジでは250Kbpsが所定値となる。また、このイベントは、回線レンジごとに一定時間中の所定量の通信を決め、この閾値を下回ったことを検出することで発行される。
【0113】
移動体端末10は、「Wi−Fi遷移中」、「Wi−Fi接続中」、「公衆Wi−Fi接続中」の各状態で、このイベントが発行された場合に、「Wi−Fi遮断中」の状態に遷移する。
【0114】
(Wi−Fi速度回復イベント)
このイベントは、Wi−Fiの実効スループットが所定値を上回った場合に発行されるイベントである。例えば、3G回線の以前のローレンジでは350kbps、3.5G回線のミドルレンジでは400kbps、LTEなどのハイレンジでは450Kbpsが所定値となる。
【0115】
また、このイベントは、Wi−Fi遮断中へ遷移するときのWi−Fiの実測スループットを保持しておき、その値よりモバイル回線のスループットが下回った場合にも発行される。移動体端末10は、「Wi−Fi遮断中」の状態で、このイベントが発行された場合に、「Wi−Fi回線確認中」の状態に遷移する。
【0116】
(Wi−FiAP切替イベント)
このイベントは、Wi−Fiを接続しているアクセスポイントが切り替わった場合に発行されるイベントである。移動体端末10は、このイベントが発行されると、いずれの状態であっても「Wi−Fi回線確認中」の状態に遷移する。
【0117】
[効果]
このように、スマートフォン等の移動体端末は、既に2つ以上のネットワークに接続する手段を備えており、同時に複数のネットワークと接続することは可能である。上述したように、移動体端末10に単一又は複数からなる通信アプリケーションからの通信データをソケット単位で振り分ける機能を実装し、通信アプリケーションからの通信発生時、ソケット単位で各ネットワーク上に送受信を行う。
【0118】
移動体端末10は、早く応答があったネットワークに次のソケット通信を割り当てていく。データ送信後、一定時間、応答がないネットワークに対しては、送信処理を中断し、別のネットワークを使ってデータの再送を行う。ここでアプリケーション毎に各ネットワークでのソケットの振り分け割合を変更してもよい。特定の通信が1つのソケットで一定のデータ量の通信を継続して行う場合は、別のネットワークで通信を行ってもよい。
【0119】
これらのように、移動体端末10は、ソケット単位で各ネットワークへの通信の振り分けを行うことで、ユーザにとっては、複数回線を最大限活用し、通信経路の切替えに伴うストレスもなく、シームレスに切替えを提供できる。したがって、ユーザ利便性を向上させることができる。