【実施例1】
【0015】
図1は、本実施例における通信制御装置のハードウェア構成例を示す図である。通信制御装置は、通信機能とディスプレイと操作手段を持った電子機器であり、例えばスマートフォンやPCである。
図1において、1は通信制御装置、2は制御部、3はメモリ、4は記憶部、5は操作情報取得部、6は通信部、7はディスプレイ、8はネットワークである。
【0016】
制御部2は、記憶部4に格納されたプログラムをメモリ3に展開し、展開したプログラムを実行することで各種プログラムに応じた機能を実現するものである。
【0017】
記憶部4には、ブラウザなどのアプリケーションや、アプリケーションを制御するためのプログラムや設定情報などが記録されている。操作情報取得部5は、タッチパネルやキーボードなどにより利用者の操作情報を取得することができる。通信部6は、モバイル回線や無線LAN(Local Area Network)と接続し、ネットワーク8に接続された他の通信端末やサーバとの通信を行う。ディスプレイ7は、通信制御装置1のアプリケーション画面等を表示する。ネットワーク8は、他の通信端末と通信するためのネットワークであり、例えばインターネットである。
【0018】
図2は、
図1における通信制御装置1の記憶部4から読み出されてメモリ3に展開されたプログラムの一具体例を示す図である。
図2において、201はアプリケーション制御プログラム、202は通信制御プログラム、203は設定管理プログラム、204と205と206はアプリケーションである。201、202、203は、通信制御装置のOSの一部を構成するプログラムである。なお、ここではプログラムの数を6種類記載しているが、その数に限定するものではない。以下、例としてあげたプログラムによる処理を説明する。
【0019】
アプリケーション制御プログラム201は、ブラウザや画像閲覧アプリケーションなどの多様なアプリケーションのフォアグランド状態とバックグラウンド状態の切り替え操作や起動状態などを管理するためのプログラムである。通信制御プログラム202は、アプリケーションの状態に応じて通信速度に制限を加えたり、制限を解除したりするためのプログラムである。設定管理プログラム203は、通信制御プログラムでの制御に必要な設定情報を書き換えたり、通信会社のサーバから設定情報を取得したりするためのプログラムである。
【0020】
アプリケーション(ブラウザ)204はウェブページを閲覧するためのブラウザ、アプリケーション(画像閲覧)205は写真などの画像を閲覧するためのアプリケーション、アプリケーション(ドキュメント作成)206はドキュメント作成のためのアプリケーションである。アプリケーションの種別は例であり、ここに記載されたものに限定するものではない。
【0021】
これらのプログラムにより、通信制御装置1では、ブラウザでウェブページを閲覧したり、カメラで撮影した画像を閲覧したり、ドキュメントの作成などを行うことできる。また、それらのアプリケーションを同時に起動したり、アプリケーション画面を切り替えたりすることができる。
【0022】
図3は、
図1における通信制御装置1の記憶部4に格納されている設定テーブルの一具体例を示す図である。
図3において、301は回線制御設定テーブル、302は時間帯別帯域制御設定テーブル、303はアプリケーション制御設定テーブル、304は通信帯域別制御設定テーブルである。各テーブルは、通信制御プログラム202が制御を行う際の条件判定などに用いる情報であり、設定管理プログラム203によって内容の書き込み、読み取り、更新、削除が行われる。
【0023】
回線制御設定テーブル301は、接続中の回線に応じて制御内容を決定するための設定情報である。時間帯別帯域制御設定テーブル302は、曜日や時間帯に応じて割り当てる通信帯域を決定するための設定情報である。アプリケーション制御設定テーブル303は、制御対象となるアプリケーションに応じて制御内容を決定するための設定情報である。通信帯域別制御設定テーブル304は、接続中の回線の通信帯域幅に応じて制御内容を決定するための設定情報である。
【0024】
図4は、
図1における通信制御装置1の記憶部4に格納されている回線制御設定テーブル301の一具体例を示す図である。通信制御装置1は、複数の通信回線を切り替えて通信を行うことができる。例えば、LTE(Long Term Evolution)の回線や、自宅の無線LAN回線、モバイルルータの無線LAN回線などである。回線制御設定テーブル301は、それらの回線ごとに通信帯域の制限をどのように行うかを設定した回線条件情報である。回線条件情報は、通信回線上のサーバから取得しても良い。回線制御設定テーブル301には、項目として「回線種別」および「回線詳細」、「バックグラウンドの通信帯域制限」、「制限値」の情報が含まれる。
【0025】
「回線種別」は、該当回線の種別を表すもので、例えばLTEまたは3Gや無線LANがある。「回線詳細」は、その回線に接続するための情報であり、例えばLTEまたは3Gであれば、どの基地局に接続しているかを示す識別子であり、例えば無線LANであれば、SSID(Service Set Identifier)や暗号化キーである。「バックグラウンドの通信帯域制限」は、その回線でバックグラウンドのアプリケーションの通信帯域の制限を行うかどうかの情報である。
【0026】
「制限値」は、通信帯域の制限値を示す情報である。制限値は例えば次のように使用する。通信制御装置1の通信帯域を仮想的にフォアグラウンド用とバックグラウンド用に分け、バックグラウンド用に使える通信帯域をこの制限値の値とする。制限値は、128キロbps(bit per sec)といったデータ転送速度による指定方法のほかに、パーセンテージで指定することも可能とする。
【0027】
制限値は0としても良いが、バックグラウンドの通信を一律に遮断してしまうと、それまで通信を行っていたアプリケーションがエラー判定してしまう可能性がある。このため通信は完全に遮断せずに、通信帯域を絞って制限することを可能とする。
【0028】
図5は、通信制御装置1における通信制御の処理手順の一具体例を示すフローチャートである。
図5を用いて、バックグラウンドのアプリケーションの通信帯域を制限する処理を説明する。なお、フローチャート上の各処理は、通信制御プログラムが行う。
【0029】
図5は、通信制御装置が起動した後、通信回線に接続してからの状態を想定している。まず、通信制御プログラムは、接続中の通信回線が帯域制限の必要な回線かを、回線制御設定テーブル301を用いて判定する(S1001)。S1001の判定がNoで帯域制限が不要な回線であれば、接続する通信回線を変更するまで待機する(S1002)。既に通信帯域を制限している状態でS1002の処理に入った場合は、制限をすべて解除し、通信回線を別の回線に変更するまで待機する。
【0030】
S1001の判定がYesで帯域制限が必要な回線だった場合、通信制御プログラムは、その時点でバックグラウンドのアプリケーションの通信帯域を制限する(S1003)。バックグラウンドで動作中のアプリケーションとして何があるかは、アプリケーション制御プログラムから取得する。通信帯域の制限値は、回線制御設定テーブル301から取得する。
【0031】
通信帯域の制限方法としては色々な方法を採りうるが、たとえばひとつのCPU(Central Processing Unit)を用いてマルチタスクを実現するためのタイムシェアリングという方法と同じやり方で実現できる。タイムシェアリングとは、CPUの処理時間を短い時間に区切って、タスク間でCPUの処理時間を分配することで、あたかも同時に複数のタスクを実行できるようにするものである。通信帯域を制限する場合は、通信部6の処理時間を同様に分配するが、バックグラウンドのアプリケーションに対しては、その割り当てを少なくする。
【0032】
次に、バックグラウンドのアプリケーションを新たに起動したかどうかの判定を行う(S1004)。アプリケーションは、通信制御装置の利用者が操作を行って起動する以外に、決まった時刻に自動的に起動する場合もある。たとえば、毎日決まった時刻にファイルのバックアップを行うようなアプリケーションである。このようなアプリケーションは、通信制御装置の画面利用に影響を与えないように、バックグラウンドで処理されることが多い。バックグラウンドのアプリケーションが起動した場合は、新たに起動したバックグランドのアプリケーションの通信帯域を制限する(S1003)。
【0033】
次に、フォアグラウンドのアプリケーションの状態を変更したか確認する(S1005)。状態の変更とは利用者が、アプリケーションを起動してフォアグラウンドとなった場合や、フォアグラウンドのアプリケーションをバックグラウンドに変更した場合や、バックグラウンドのアプリケーションをフォアグラウンドに変更した場合を指す。フォアグラウンドのアプリケーションの状態を変更した場合、新たにフォアグラウンドになったアプリケーションの通信帯域制限を解除する(S1006)。次に、S1003の処理を行うが、処理内容はすでに説明済みであるため省略する。
【0034】
次に、通信回線を変更したかどうかを確認する(S1007)。通信回線の変更とは例えば、通信制御装置が接続中のLTEの回線から無線LANの回線に切替えた場合などである。
【0035】
通信回線を変更した場合は、S1001に戻って制限が必要な回線かどうかを確認する。通信回線を変更していない場合は、S1004に戻る。以上の処理を、通信制御装置の電源をオフにするまで繰り返し行う。
【0036】
ここまでの説明において、通信帯域の制御である通信帯域の制限および制限の解除は、フォアグラウンドとバックグラウンドの変更を検出したタイミングで行うこととしている。しかし、同じアプリケーションで頻繁にフォアグラウンドとバックグラウンドの変更を繰り返した場合、通信帯域を制限したり解除したりを繰り返すことになるため、その処理によって通信制御装置1の負荷が大きくなったり、通信が不安定になったりすることが想定される。このため、フォアグラウンドとバックグラウンドの変更を検出してから、一定時間が経過した後に通信帯域の制御(S1003やS1006の処理)を行うようにしても良い。ここでの一定時間とは、数秒から数十秒程度を想定している。
【0037】
また、通信帯域の制限を開始してから、一定時間が経過したらそのアプリケーションの通信を遮断するようにしても良い。ここでの一定時間とは、例えば数分から数十分程度を想定している。遮断する理由は、バックグラウンドの通信帯域を制限したとしても、その通信が長時間継続した場合、制限する意味がないケースがあるためである。例えば、1ギガバイトのファイルをバックアップする処理の通信速度を1メガbpsに制限したとすると、2時間半程度通信を続ければファイルをすべて転送することができる。2時間半が経過する前に、月間最大通信量の制限のない回線に切り替えることができれば、バックグラウンドの通信帯域を制限する意味があるが、そうでない場合は制限してもしなくても通信量が変わらないため制限の意味がなくなってしまう。
【0038】
このような状況を回避するため、一定時間が経過したらそのアプリケーションの通信を遮断する。時間経過のカウントは、制限を解除したらリセットし、再度制限を開始した時点からカウントを開始する。これはバックグラウンドでの通信状況をフォアグラウンドに切替えて確認するケースも考慮したものである。
【0039】
なお、本実施例では、「利用者の意識外の通信=バックグラウンドのアプリケーションによる通信」として説明してきたが、変形例として「利用者の意識外の通信=利用者の操作によらず自動的に起動したバックグラウンドのアプリケーション」に限定しても良い。例えば、所定時刻にニュース情報を取得するために起動するアプリケーション等である。この場合は、アプリケーション制御プログラムが、自動的に起動したバックグラウンドのアプリケーションであるかの情報を保持しておき、
図5のフローチャートのS1003において、通信制御プログラムがアプリケーション制御プログラムから、バックグラウンドのアプリケーションとして何があるかの情報を取得する際に、自動で起動したアプリケーションのみ取得できるようにすれば良い。
【0040】
また、通信回線変更後に利用者の操作によって、一度でもフォアグラウンドになったアプリケーションは制限の対象外としても良い。この場合も、アプリケーション制御プログラムが、一度もフォアグラウンドとなっていないアプケーションの情報を保持しておき、S1003において、該当アプリケーションのみ制御の対象とするようにすれば良い。
【0041】
以上のように、本実施例は、通信回線を通じてアプリケーションによる通信が可能な通信制御装置に用いる通信制御方法であって、複数のアプリケーションをフォアグラウンド状態とバックグラウンド状態に切り替えるアプリケーション制御ステップと、アプリケーション制御ステップにより切り替えられたアプリケーションがフォアグラウンド状態かバックグラウンド状態かに応じて、アプリケーションの通信帯域の制御として通信帯域の割り当て量を変更する通信制御ステップとを有する構成とする。
【0042】
また、通信制御ステップは、アプリケーションがバックグラウンド状態の場合に、アプリケーションの通信帯域を制限する。
【0043】
これにより、利用者の意図しないところで通信量が増加することを防ぐことができ、通信速度制限を受けにくくなるという効果がある。
【実施例2】
【0044】
本実施例は、モバイル回線利用時に、基地局の通信帯域を圧迫しないようにする方法について説明する。モバイル回線の利用時には同じ基地局に接続している通信端末が多かったり、接続中の各通信端末の利用帯域が大きかったりすると、その基地局の提供する回線の帯域が圧迫され、各通信端末の通信速度が低下してしまう。
【0045】
このようなケースにおいても、実施例1と同様にバックグラウンドの通信帯域を制限することで、その基地局の通信量が抑えられるため、各通信端末が利用できる通信帯域が大きくなり、利用者の快適性を向上させることができる。
【0046】
その際、通信帯域の制限値は、その基地局の混雑状況に応じて決定する。制限値は、その基地局を保有する通信会社のサーバから各通信制御装置に配信する。または、通信制御装置が定期的にサーバから取得する。
【0047】
ただし、制限値の配信や取得のための通信によって、通信帯域を圧迫する可能性もある。また、ある基地局の混雑状況は、曜日や時間帯によってほぼ同じ傾向があるものと思われる。例えば、平日の昼間は混雑しないが夜間は混雑するといったものである。このため、曜日や時間帯に応じた制限値を設定した情報を、あらかじめ各通信制御装置が保持しておくようにすれば、リアルタイムに制限値を配信したり取得したりする必要がなくなる。
【0048】
図6は、通信制御装置1の記憶部4に格納されている時間帯別帯域制御設定テーブル302の一具体例を示す図である。時間帯別帯域制御設定テーブル302は、時間帯ごとに通信帯域の制限値を設定した時間帯条件情報であり、曜日及び時間帯ごとの通信帯域の制限値を記述したものである。なお、
図6においては、制限値をデータ転送速度で示しているが、パーセンテージで指定しても良い。この時間帯別帯域制御設定テーブル302は、
図4における回線制御設定テーブル301の「制御値」の代わりに使用する。使用するタイミングは、実施例1で説明した
図5のフローチャートのS1003における、バックグラウンドの通信帯域を制限するときである。
【0049】
本実施例においては、時間帯別帯域制御設定テーブル302を有しているので、予めまとめて送信しておけばよいので、リアルタイムに制限値を配信する必要がない。そのため、モバイル回線の基地局の混雑状況を解消するために、リアルタイムに制限値を配信することなく通信帯域の制限を行うことで、各通信端末の利用可能な帯域幅が向上し、利用者の快適性を向上させることができる。特に、モバイル回線の帯域の圧迫については、各基地局に接続した通信端末のうち、上記通信制御を行う端末が多いほどその効果が大きくなる。
【実施例3】
【0050】
本実施例では、バックグラウンドの通信によって、フォアグラウンドの通信が阻害されないようにする方法について説明する。ここでの課題は、例えばバックグラウンドのアプリケーションが多数あり、それらが通信制御装置の通信帯域を大きく使用してしまうと、フォアグラウンドのアプリケーションが利用できる通信帯域が狭くなり、通信速度が低下してしまうことである。
【0051】
本実施例の内容は、実施例1とは以下の三つの差異を除いて同じであるため、共通部分については説明を省略する。
【0052】
三つの差異の一つ目は、回線ごとに通信制御の内容を切り替えるのではなく、利用可能な通信帯域に応じて通信制御の内容を切り替える点である。二つ目は、フォアグラウンドのアプリケーションが使用する通信帯域が余っている場合は、その分をバックグラウンドのアプリケーションが使用しても良い点である。三つ目は、バックグラウンドのアプリケーションの通信の制限を開始してから一定時間が経過したあとでも通信を遮断しない点である。以下、これら三点について詳細に説明する。
【0053】
一つ目の特徴である通信制御の内容の切換方法について、以下説明する。本実施例において通信制御装置は、現在利用中の通信帯域の大きさによって、バックグラウンドの通信制限を行うかどうかを決定する。例えば、通信帯域が狭く、複数のアプリケーションが同時に通信を行うと、フォアグラウンドのアプリケーションでの通信速度が極めて遅くなり、利用者の快適性を損なう場合は、バックグラウンドの通信帯域を狭めて、フォアグラウンドの通信帯域を広く割り当てるといった制御を行う。逆に、通信帯域が極めて広く、複数のアプリケーションが同時に通信を行っても、フォアグラウンドのアプリケーションの通信速度に影響が無い場合は通信帯域の割り当て制御を行わない。
【0054】
通信制御を行うかどうかの判定は、記憶部4に格納されている通信帯域別制御設定テーブル304と、現在利用中の通信回線の通信帯域の値を用いて行う。
図7は、通信帯域別制御設定テーブル304の一具体例を示す図である。
図7において、通信帯域別制御設定テーブル304は、通信帯域ごとに通信帯域の制限の実施有無を設定した通信帯域条件情報であり、項目として「帯域閾値」、「バックグラウンドの通信帯域制限」、「バックグラウンドの優先度」がある。通信帯域条件情報は、通信回線上のサーバから取得しても良い。「帯域閾値」は例えば1ギガbpsや10メガbpsといった情報である。「バックグラウンドの通信帯域制限」は、利用中の回線の帯域幅が「帯域閾値」の値を下回るときに、バックグラウンドのアプリケーションの通信帯域の割り当て制御を行うかどうかの情報である。「バックグラウンドの優先度」は、バックグラウンドのアプリケーションに割り当てる通信帯域の優先度を指定する情報である。
【0055】
優先度は、例えば10段階で指定する。ここではフォアグラウンドのアプケーションの優先度を最高の10とする。例えば、「バックグラウンドの優先度」を1とした場合で、利用中の通信回線の帯域が11メガbpsの場合は、フォアグラウンドのアプリケーションが10メガbps分を使用し、バックグラウンドのアプリケーションが1メガbpsを使用する。
【0056】
二つ目の特徴では、フォアグラウンドのアプリケーションが通信を行っていない場合や、通信相手との通信が遅く10メガbpsに到達しない場合は、その余剰分がバックグラウンドのアプリケーションに割り当てられる。この動作については、PC用のOS等でプロセスの優先度を設定できる機能と同様である。以上のように、二つ目の特徴は優先度とフォアグラウンドの通信帯域の利用状況に応じた処理によって実現する。
【0057】
三つ目の特徴であるバックグラウンドの通信を一定時間経過後に遮断しない点については、想定している課題が異なるため、本実施例では遮断することによるメリットがないためである。本実施例で解決する問題は、バックグラウンドの通信によって発生する通信量の増加ではなく、バックグラウンドの通信によって発生するフォアグラウンドの通信帯域の圧迫であるため、通信の遮断まで行う必要がない。
【0058】
以上のように、フォアグラウンドとバックグラウンドで優先度をつけて、それぞれが利用する通信帯域をそれぞれの割り当てで制御することで、フォアグラウンドの通信が優先的に通信速度を確保して通信を行うことができる。
【実施例4】
【0059】
本実施例では、アプリケーションごとに通信帯域の制限の有無を設定可能とする方法について説明する。これまでの説明では、バックグラウンドのアプリケーションは一律に通信帯域を制限することとしていたが、それでは不都合が生じる場合もある。例えば、電子書籍を購読するためのアプリケーションで、サーバ上のファイルをダウンロードする際に、バックグラウンドで処理させるが、なるべく早くダウンロードしたい場合などである。
【0060】
アプリケーションごとに通信帯域の制限有無を設定するためには、その情報を含めた設定テーブルが必要である。
【0061】
図8は、通信制御装置1の記憶部4に格納されているアプリケーション制御設定テーブル303の一具体例を示す図である。アプリケーション制御設定テーブル303は、アプリケーションごとに通信帯域の制限の実施有無を設定したアプリケーション条件情報であり、項目として「アプリケーション名」および「通信帯域の制限有無」、「制限値」の情報がある。アプリケーション条件情報は、通信回線上のサーバから取得しても良い。
【0062】
「アプリケーション名」は、アプリケーションを識別するために用いる情報であり、図に示したように例えばブラウザや画像閲覧、ドキュメント作成がある。「通信帯域の制限有無」は、該当アプリケーションの通信帯域の制限を行うかどうかを指定する情報である。「制限値」は、該当アプリケーションの通信帯域の制限を行う場合の制限値を指示する情報である。なお、
図8では“回線の制限値を使用”というパラメータがあるが、これは回線制御設定テーブル301の「制限値」を使用するという意味である。
【0063】
アプリケーション制御設定テーブル303は、実施例1で説明した
図5のフローチャートのS1003における、バックグラウンドのアプリケーションの通信帯域を制限するときに参照する。S1003において、バックグラウンドのアプリケーション名がアプリケーション制御設定テーブル303に含まれる場合は、テーブルの各項目の指示にしたがって制限を行う。そのほかの処理については実施例1と同様であるため説明を省略する。
【0064】
以上により、アプリケーションごとに通信帯域の制限を行うことができる。
【0065】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであって、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の一部について、他の構成の追加・削除・置換をすることが可能である。