(57)【特許請求の範囲】
【請求項１】
所定間隔の同期通信を用いてデバイスと接続する通信方法において、
第１のアプリ、及び第２のアプリを保持し、
前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記デバイスとの接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、
処理をコンピュータが実行することを特徴とする通信方法。
【請求項２】
前記接続設定は、同期通信の通信間隔の値とする、
ことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記接続設定は、同期通信において前記デバイス側の無通信が許される回数を示すスレーブレイテンシの値とする、
ことを特徴とする請求項１または２に記載の通信方法。
【請求項４】
前記処理を行う端末の電池残量が規定値よりも大きい場合に前記スレーブレイテンシの値を通常の設定値よりも大きい値に設定する、
ことを特徴とする請求項３に記載の通信方法。
【請求項５】
アドバタイズデータのスキャンを行い、前記デバイスと同じデバイス名を所定数を超えて検出した場合に、前記スレーブレイテンシの値を通常の設定値よりも小さい値に設定する、
ことを特徴とする請求項３または４に記載の通信方法。
【請求項６】
前記デバイスからの応答遅延を検出した場合に、前記同期通信の通信間隔を現在の設定値よりも大きくする、
ことを特徴とする請求項１乃至５のいずれか一項に記載の通信方法。
【請求項７】
所定間隔の同期通信を用いてデバイスと接続する通信において、
第１のアプリ、及び第２のアプリを保持し、
前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記デバイスとの接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、
処理をコンピュータに実行させる通信プログラム。
【請求項８】
所定間隔の同期通信を用いてデバイスと接続する装置において、
第１のアプリ、及び第２のアプリを保持手段と、
前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記デバイスとの接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする手段と、
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法、通信プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
近年、様々な機器が無線機能を備えてネットワークに接続可能になってきており、物のインターネット化（Internet of Things）ということがよく言われるようになってきている。ホスト機器となる端末（ＰＣ、スマートフォン、タブレット等）と周辺機器（例えば、キーボード、マウス、プリンタ等）を無線で接続する手段としては、無線ＬＡＮ、Bluetooth（登録商標）、ＮＦＣ（Near Field Communication）等がよく使われている（特許文献１〜４等を参照。）。
【０００３】
無線通信においては、有線通信のような物理的な信号線がないため、端末と周辺機器の間で通信に使用する周波数と時間を互いに合わせ、そこにデータを流すことによって通信が可能となる。この通信が可能な状態は無線接続状態と呼ばれる。例えば、Bluetoothの最新規格であるＢＬＥ（Bluetooth Low Energy）におけるデバイス間の接続では、送受信するデータの有無にかかわらず、両者が通信に使う周波数を変えながら所定間隔で同期通信を行っている（同期型接続と呼ばれる）。
【０００４】
同期の設定はMaster（端末）側が決定することができるが、Slave（周辺機器）側から設定することはできない。設定パラメータは、通信間隔（connection interval）、Slave側の無通信が許される回数（connection slave latency）、接続断とみなすタイムアウト時間（connection supervision timeout）の３種類がある。データの送受信は同期のタイミングでしか行えないため、これらのパラメータを調整することで、通信速度（スループット）やデバイスの消費電力が変わる。通信間隔（同期間隔）を長くすれば電力消費が少なくなるが、通信遅延が発生しやすくなる（省電力優先）。一方、通信間隔を短くすれば、通信遅延が抑えられるが、電力消費が増えることになる（通信速度優先）。設定の複雑さを避けるため、アプリケーション（アプリ）からは優先度の指定だけを行えるようにしていることも多い。例えば、Android（登録商標）OSを搭載した端末の場合、アプリは次の３つのモード、
・High：通信速度優先→通信間隔を短く設定
・Low：省電力優先→通信間隔を長く設定
・Balanced：通信速度も消費電力も中程度→通信間隔を中程度に設定
のいずれかを接続時に選択することができる。
【０００５】
図１は従来における端末とＢＬＥデバイスの例を示す図であり、端末のアプリ＃１、＃２のＢＬＥ接続部から実行環境のＢＬＥ  ＦＷ（Frame Work）を介してＢＬＥデバイスに接続する場合を示している。
【０００６】
図２は通信間隔のモードとデータ送信の例を示す図であり、図２（ａ）はモード「High」、図２（ｂ）はモード「Low」の場合のデータ送受信の例を示している。モード「High」の場合、通信間隔が短いためデータ送受信に要する時間は短くて済むが、送受信するデータがなくても相手確認のための通信が通信間隔の都度に発生するため消費電力が増えることになる。また、モード「Low」の場合、通信間隔が長いためデータ送受信に要する時間は長くかかるが、相手確認のための通信の頻度が少ないため消費電力は小さくなる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２５０２４１号公報
【特許文献２】特開２００６−３５２５２２号公報
【特許文献３】特開２００６−１７３６７８号公報
【特許文献４】特開２００１−１８９６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、アプリは自己の特性を考慮してＢＬＥデバイスに対して優先度を設定することができるが、一つのＢＬＥデバイスに対して優先度は一つしか設定できない。そのため、端末上で動作している複数のアプリからＢＬＥデバイスに接続するとき、優先度の競合が発生してしまう。例えば、一方のアプリが通信速度優先と設定した後、もう一方のアプリが省電力優先と設定すると、優先度が上書きされてしまい、最初のアプリは十分な速度でデータ送受信できなくなってしまう。
【０００９】
図３はアプリにより通信間隔のモードが続いて変更された場合のデータ送信の例を示す図である。先にアプリ＃１がモード「High」で接続すると通信間隔は短く設定されるが、その後にアプリ＃２がモード「Low」で接続すると通信間隔は長く設定され、アプリ＃１がその後にデータ送信を行う場合に期待した通信速度が出せなくなる。
【００１０】
なお、ＢＬＥデバイスについて説明してきたが、同期型接続を行い、パラメータを設定可能な無線デバイスについては同様の問題がある。
【００１１】
そこで、開示の形態は、一側面では、複数のアプリ間で接続設定を調停し、デバイスとの通信を適切化することを目的とする。
【課題を解決するための手段】
【００１２】
開示の形態は、所定間隔の同期通信を用いてデバイスと接続する通信方法において第１のアプリ、及び第２のアプリを保持し、前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記デバイスとの接続設定を省電力を優先するモードとし、前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、処理をコンピュータが実行する。
【発明の効果】
【００１３】
開示の形態は、複数のアプリ間で接続設定を調停し、デバイスとの通信を適切化することができる。
【図面の簡単な説明】
【００１４】
【図１】従来における端末とＢＬＥデバイスの例を示す図である。
【図２】通信間隔のモードとデータ送信の例を示す図である。
【図３】アプリにより通信間隔のモードが続いて変更された場合のデータ送信の例を示す図である。
【図４】一実施形態にかかる端末と無線デバイスのソフトウェア構成例を示す図である。
【図５】接続中アプリ状態テーブルの例を示す図である。
【図６】端末状態テーブルの例を示す図である。
【図７】端末のハードウェア構成例を示す図である。
【図８】状態の遷移の例を示す図である。
【図９】アプリにより通信間隔のモードが続いて変更された場合のデータ送信の例を示す図である。
【図１０】デバイス接続の処理例を示すフローチャートである。
【図１１】データ送受信の処理例を示すフローチャートである。
【図１２】デバイス切断の処理例を示すフローチャートである。
【図１３】通信間隔に代えてスレーブレイテンシを変更する場合のデータ送信の例を示す図である。
【図１４】バッテリ状態による接続状態変更の処理例を示すフローチャートである。
【図１５】電波状態による接続状態変更の処理例を示すフローチャートである。
【図１６】アドバタイズスキャンの例を示す図である。
【図１７】デバイス状態による接続状態変更の処理例を示すフローチャートである。
【図１８】データ送信中の接続状態変更の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施形態につき説明する。
【００１６】
＜構成＞
図４は一実施形態にかかる端末１と無線デバイス２のソフトウェア構成例を示す図である。図４において、スマートフォン等の端末１が、マウス等の無線デバイス２を使用することを想定している。端末１は、複数のアプリ１０１、１０２、・・と、通信処理部１０５と、端末状態管理部１１４および端末状態データベース１１５とを備えている。アプリ１０１、１０２、・・には、無線デバイス２を用いた処理を行うデバイス処理部１０３、１０４、・・が設けられている。通信処理部１０５は、無線デバイス２を制御するためのフレームワークである。端末状態管理部１１４および端末状態データベース１１５は、端末１のＯＳ（Operating System）が備える機能であり、端末状態管理部１１４は端末１の電池残量等の端末状態を端末状態データベース１１５に記録して管理する。
【００１７】
通信処理部１０５は、要求受付部１０６と要求解析部１０７と接続設定判定部１０８とアプリ管理部１０９と接続中アプリ状態データベース１１０と接続設定管理部１１１とスキャン処理部１１２と接続処理部１１３とを備えている。
【００１８】
要求受付部１０６は、アプリ１０１、１０２、・・からの無線デバイス２に対する処理要求を受信し、処理要求に応じてデバイスにアクセスした結果を返信する機能を有している。要求解析部１０７は、要求受付部１０６で受信した処理要求を解析し、無線デバイス２に対する処理内容を決定する機能を有している。接続設定判定部１０８は、無線デバイス２へのアクセスに応じて現在の接続設定とアプリ１０１、１０２、・・の接続状態と端末状態とを参照し、適切な接続設定を決定する機能を有している。アプリ管理部１０９は、無線デバイス２へ接続中のアプリの状態を接続中アプリ状態データベース１１０に保持して管理する機能を有している。接続設定管理部１１１は、現在の接続設定を保持・管理する機能を有している。
【００１９】
スキャン処理部１１２は、無線の電波状況をスキャン・管理する機能を有している。接続処理部１１３は、接続設定判定部１０８の判定結果に基づいて無線デバイス２へのアクセスを行う機能を有している。
【００２０】
無線デバイス２は、接続処理部２１とデバイス制御部２２とを備えている。接続処理部２１は、端末１との間の接続等の処理を行う機能を有している。デバイス制御部２２は、無線デバイス２の本来の処理（例えば、マウスであればＸ・Ｙ方向の移動量やクリック等の信号の出力）を行う機能を有している。
【００２１】
図５は接続中アプリ状態データベース１１０に保持される接続中アプリ状態テーブルの例を示す図であり、「アプリＩＤ」「接続モード」「データ送受信」「画面状態」「操作状態」等の項目を有している。「アプリＩＤ」は、接続中のアプリを一意に識別する情報である。「接続モード」は、アプリの要求する接続モード（優先度に対応）であり、「Low」は通信間隔が長い省電力優先、「High」は通信間隔が短い通信速度優先である。「データ送受信」は、アプリが送受信中である（「true」）か、送受信中でない（「false」）かを示す情報（フラグ）である。「画面状態」は、アプリの画面が前面にある（「Ｆ」）か、前面にない（「Ｂ」）かを示す情報である。「操作状態」は、アプリに対するユーザの操作の状態を示す情報である。
【００２２】
図６は端末状態データベース１１５に保持される端末状態テーブルの例を示す図であり、「電池残量」「電波状態」等の項目を有している。
【００２３】
図７は端末１のハードウェア構成例を示す図である。図７において、端末１は、電源システム１００１と、プロセッサ１００３、メモリコントローラ１００４、周辺インタフェース１００５を含むメインシステム１００２と、記憶部１００６とを備えている。また、端末１は、外部ポート１００７と、高周波回路１００８と、アンテナ１００９と、オーディオ回路１０１０と、スピーカ１０１１と、マイク１０１２と、近接センサ１０１３と、ＧＰＳ（Global Positioning System）回路１０１４とを備えている。また、端末１は、ディスプレイコントローラ１０１６、光学センサコントローラ１０１７、入力コントローラ１０１８を含むＩ／Ｏ（Input/Output）サブシステム１０１５と、タッチ反応型ディスプレイシステム１０１９と、光学センサ１０２０と、入力部１０２１とを備えている。
【００２４】
図４で説明した端末１の機能は、プロセッサ１００３において所定のプログラムが実行されることで実現される。プログラムは、記録媒体を経由して取得されるものでもよいし、ネットワークを経由して取得されるものでもよい。
【００２５】
＜動作＞
図８は端末１における無線デバイス２との接続に関する状態の遷移の例を示す図である。図８において、無線デバイス２との「接続なし」状態から「Low」モードを要求するアプリの接続が行われると（ステップＳ１）、「Lowモード」状態となる。「接続なし」状態から「High」モードを要求するアプリの接続が行われると（ステップＳ２）、「Highモード」状態となる。なお、複数のアプリが接続された場合、「Low」モードを要求するアプリが一つでもあれば、データ送受信時を除いて「Lowモード」状態となる。また、「Low」モードを要求するアプリが一もなければ、「Highモード」状態となる。
【００２６】
「Lowモード」状態から「High」モードのアプリのデータ送受信が開始すると（ステップＳ３）、「Highモード」状態となる。「Highモード」状態で「High」モードのアプリのデータ送受信が終了すると（ステップＳ４）、「Lowモード」状態となる。
【００２７】
「Lowモード」状態からすべてのアプリが接続を切断すると（ステップＳ５）、「接続なし」状態となる。「Highモード」状態からすべてのアプリが接続を切断すると（ステップＳ６）、「接続なし」状態となる。
【００２８】
図９はアプリにより通信間隔のモードが続いて変更された場合のデータ送信の例を示す図である。図９において、「接続なし」状態でアプリ＃１が「High」モードで接続すると、無線デバイス２は通信間隔が小さい「High」モードとなる。その後、アプリ＃１は「High」モードでデータ送信を行う。
【００２９】
アプリ＃１のデータ送信中にアプリ＃２が「Low」モードで接続すると、アプリ＃１がデータ送信中であるため、無線デバイス２は「High」モードを維持し、アプリ＃１のデータ送信が完了した時点で無線デバイス２は「Low」モードに変わる。
【００３０】
また、無線デバイス２が「Low」モードの時に「High」モードのアプリ＃１がデータ送信を開始すると、無線デバイス２は「High」モードに変わる。アプリ＃１のデータ送信が完了した時点で無線デバイス２は「Low」モードに変わる。
【００３１】
図１０はデバイス接続の処理例を示すフローチャートである。要求受付部１０６がアプリ（１０１、１０２、・・）からデバイス接続要求を受信すると、要求解析部１０７は接続設定判定部１０８に接続設定を決定するよう要求する。図１０において、接続設定判定部１０８は、まず要求元のアプリがどの接続モードで接続を要求しているかをチェックする（ステップＳ１０１）。
【００３２】
要求接続モードが「High」の場合（ステップＳ１０１のモード＝High）、接続設定判定部１０８は、その時点で無線デバイス２に接続中のアプリ一覧（接続中アプリ状態テーブル）をアプリ管理部１０９から取得する（ステップＳ１０２）。
【００３３】
そして、接続設定判定部１０８は、他の接続中のアプリがあるかどうかチェックし（ステップＳ１０３）、接続中のアプリがなく（ステップＳ１０３のＮｏ）、その無線デバイス２への初めての接続であれば、接続処理部１１３により無線デバイス２に接続し（ステップＳ１０５）、通信間隔を小に設定する（ステップＳ１０６）。すなわち、通信速度優先で接続する。同時に接続設定判定部１０８は、接続設定管理部１１１に現在の無線デバイス２への通信間隔を記録する。
【００３４】
もし、接続中のアプリがあった時（ステップＳ１０３のＹｅｓ）は、接続設定判定部１０８は、接続中アプリ状態テーブルを参照してデータ送受信中のアプリがあるかどうかチェックする（ステップＳ１０４）。データ送受信中のアプリがある場合（ステップＳ１０４のＹｅｓ）は、接続中のアプリがない時と同様に、接続処理部１１３により無線デバイス２に接続し（ステップＳ１０５）、通信間隔を小に設定する（ステップＳ１０６）。すなわち、データ送受信中のアプリの接続モードが「High」だったら、そのまま「High」モード（通信速度優先）が維持されるし、データ送受信中のアプリの接続モードが「Low」だったら、そのアプリのデータ送受信が「High」モード（通信速度優先）に変更される。
【００３５】
もし、データ送受信中のアプリがない場合（ステップＳ１０４のＮｏ）は、現在の通信間隔をそのまま引き継いで、接続処理部１１３により無線デバイス２に接続する（ステップＳ１０７）。
【００３６】
接続が完了すると、接続設定判定部１０８は、アプリ管理部１０９に対して、そのアプリのＩＤと状態を接続中アプリ状態テーブルに登録する（ステップＳ１０８）。
【００３７】
アプリの要求接続モードが「Low」の場合（ステップＳ１０１のモード＝Low）、接続設定判定部１０８は、その時点で無線デバイス２に接続中のアプリ一覧（接続中アプリ状態テーブル）をアプリ管理部１０９から取得する（ステップＳ１０９）。
【００３８】
そして、接続設定判定部１０８は、他の接続中のアプリがあるかどうかチェックし（ステップＳ１１０）、接続中のアプリがなく（ステップＳ１１０のＮｏ）、その無線デバイス２への初めての接続であれば、接続処理部１１３により無線デバイス２に接続し（ステップＳ１１３）、通信間隔を大に設定する（ステップＳ１１４）。すなわち、省電力優先で接続する。同時に接続設定判定部１０８は、接続設定管理部１１１に現在の無線デバイス２への通信間隔を記録する。
【００３９】
もし、接続中のアプリがあった時（ステップＳ１１０のＹｅｓ）は、接続中アプリ状態テーブルを参照してデータ送受信中のアプリがあるかどうかチェックする（ステップＳ１１１）。データ送受信中のアプリがない場合（ステップＳ１１１のＮｏ）は、接続中のアプリがない時と同様に、接続処理部１１３により無線デバイス２に接続し（ステップＳ１１３）、通信間隔を大に設定する（ステップＳ１１４）。
【００４０】
もし、データ送受信中のアプリがある場合（ステップＳ１１１のＹｅｓ）は、接続設定判定部１０８は、現在の通信間隔をそのまま引き継いで、接続処理部１１３により無線デバイス２に接続する（ステップＳ１１２）。すなわち、通信速度優先状態なら通信速度優先を維持し、省電力優先なら省電力優先を維持して接続する。
【００４１】
接続が完了すると、接続設定判定部１０８は、アプリ管理部１０９に対して、そのアプリのＩＤと状態を接続中アプリ状態テーブルに登録する（ステップＳ１１５）。
【００４２】
図１１はデータ送受信の処理例を示すフローチャートである。要求受付部１０６がアプリ（１０１、１０２、・・）からデータ送受信要求を受信すると、要求解析部１０７は接続設定判定部１０８に接続設定を決定するよう要求する。図１１において、接続設定判定部１０８は、まず要求元のアプリがどの接続モードで接続を要求しているかをチェックする（ステップＳ２０１）。
【００４３】
要求元アプリの接続モードが「High」の場合（ステップＳ２０１のモード＝High）、接続設定判定部１０８は、データ送受信を通信速度優先で処理するために、現在の状態にかかわらず、通信間隔を小に設定する（ステップＳ２０２）。要求元アプリの接続モードが「Low」の場合（ステップＳ２０１のモード＝Low）は、現在の通信間隔を変更しない。
【００４４】
その後、接続設定判定部１０８は、アプリ管理部１０９により接続中アプリ状態テーブル内の当該アプリの状態をデータ送受信中に設定する（ステップＳ２０３）。
【００４５】
そして、アプリはデータ送受信を開始する（ステップＳ２０４）。この時、通信間隔を変更する場合は最初のデータ送受信通信のときに無線デバイス２に対して通信間隔変更要求も送信する。これによって以後のデータ送受信中（ステップＳ２０５）は定常通信時と異なる通信間隔で通信することになる。
【００４６】
そして、当該アプリのデータ送受信が完了すると（ステップＳ２０６）、要求解析部１０７は、再び接続設定判定部１０８に接続設定を決定するよう要求する。接続設定判定部１０８は、アプリ管理部１０９を経由して接続中アプリ状態テーブルの無線デバイス２のデータ送受信状態を通常状態に変更する（ステップＳ２０７）。さらに、その時点で他にデータ送受信中のアプリがあるかどうかをチェックする（ステップＳ２０８）。
【００４７】
他にデータ送受信中のアプリがなく（ステップＳ２０８のＮｏ）、かつ、接続中アプリの中に一つでも「Low」モードのアプリがある場合（ステップＳ２０９のＹｅｓ）は、通信間隔を大に設定し（ステップＳ２１０）、当該無線デバイス２に通信間隔変更要求を送信する。それ以外の場合は、何もせず（通信間隔を変更せず）に処理を終了する。
【００４８】
なお、通信間隔変更のタイミングはデータ送受信開始時に限定しなくてもよく、アプリの操作状態が変化したタイミングで行ってもよい。例えば、あるアプリが画面上に表示されたり、画面タップなどのユーザ操作を受け付けたりしたときに、データ通信が発生する可能性が高いと判断し、そのタイミングで通信間隔を変更することができる。この場合、アプリの画面状態やユーザ操作状態は接続中アプリ状態テーブルに登録して参照するようにする。また、このような場合は、すぐに無線デバイス２にアクセスが発生しないかもしれないので、上記のイベントを検知してから一定時間経過すると再び元の通信間隔に戻してもよい。
【００４９】
図１２はデバイス切断の処理例を示すフローチャートである。要求受付部１０６がアプリからデバイス切断要求を受信すると、要求解析部１０７は接続設定判定部１０８に接続設定を決定するよう要求する。図１２において、接続設定判定部１０８は、まずアプリ管理部１０９を経由して接続中アプリ状態テーブルから要求元アプリのエントリを削除する（ステップＳ３０１）。
【００５０】
その後、接続設定判定部１０８は、他の接続中アプリがあるかどうかチェックし（ステップＳ３０２）、他に接続中のアプリがなければ（ステップＳ３０２のＮｏ）、無線デバイス２と端末１との接続を切断する（ステップＳ３０３）。
【００５１】
もし、他の接続中アプリがあり（ステップＳ３０２のＹｅｓ）、かつ、データ送受信中状態のアプリがある場合（ステップＳ３０４のＹｅｓ）は、通信間隔を変更せずに当該アプリの切断処理を行う（ステップＳ３０５）。
【００５２】
他の接続中アプリがなく（ステップＳ３０４のＮｏ）、かつ、その中に一つでも接続モードが「Low」モードのアプリがある場合（ステップＳ３０６のＹｅｓ）は、通信間隔を大に設定し（ステップＳ３０７）、当該アプリの切断処理を行う（ステップＳ３０８）とともに、通信間隔変更要求を無線デバイス２に送信する。
【００５３】
他の接続中アプリがなく（ステップＳ３０４のＮｏ）、かつ、その接続モードがすべて「High」モードの場合（ステップＳ３０６のＮｏ）は、通信間隔を小に設定し（ステップＳ３０９）、当該アプリの切断処理を行う（ステップＳ３１０）とともに、通信間隔変更要求を無線デバイス２に送信する。
【００５４】
上記の切断の処理フローはアプリからの要求に対するものであるが、無線デバイス２との切断はアプリからの要求がなくても無線デバイス２と端末１の間の距離が離れたり、無線デバイス２の電源供給が途絶えたりすることで接続が切れる場合がある。この場合は、接続処理部１１３が無線デバイス２との接続が切れたことを検知し、当該無線デバイス２の接続中アプリ状態テーブルを削除（または、すべてのデータをクリア）するとともに、接続中アプリに対して、要求受付部１０６経由で無線デバイス２が切断されたことを通知する。
【００５５】
＜変形・拡張例＞
ここまでの説明では通信間隔の変更のみによる接続調停の例を示したが、通信間隔の変更の代わりにスレーブレイテンシ（Slave Latency）の値を変更することによって接続調停を行ってもよい。すなわち、通信間隔を小に設定する場面ではスレーブレイテンシを小さな値に、通信間隔を大に設定する場面ではスレーブレイテンシを大きな値にすることによって同様の効果が得られる。スレーブレイテンシは、本来、無線デバイス２側の省電力のために無線デバイス２毎に値を変更するものであるが、同一の無線デバイス２に対して値を変更することで、通信速度優先の動作時に無線デバイス２側の電力消費を抑えることができ、かつ、データ送受信開始時の遅延を小さくすることができる。
【００５６】
図１３は通信間隔に代えてスレーブレイテンシを変更する場合のデータ送信の例を示す図である。図１３において、「接続なし」状態でアプリ＃１が「High」モードで接続すると、無線デバイス２はスレーブレイテンシが小さい「High」モードとなる。
【００５７】
その後、アプリ＃２が「Low」モードで接続すると、アプリ＃１はデータ送信中でないため、スレーブレイテンシが大きい「Low」モードとなる。
【００５８】
無線デバイス２が「Low」モードの時に「High」モードのアプリ＃１がデータ送信を開始すると、無線デバイス２はスレーブレイテンシが小さい「High」モードに変わる。アプリ＃１のデータ送信が完了した時点で無線デバイス２は「Low」モードに変わる。
【００５９】
図１４はバッテリ状態による接続状態変更の処理例を示すフローチャートであり、端末１の電池残量を考慮してスレーブレイテンシの調整を行うようにしている。前述したフローチャートにおいて通信間隔を大に設定する処理（図１０のステップＳ１１４、図１１のステップＳ２１０、図１２のステップＳ３０７等）に置き換わるものである。
【００６０】
図１４において、まず、接続設定判定部１０８は、端末状態管理部１１４を経由して端末１の電池残量を取得する（ステップＳ４０１）。
【００６１】
そして、取得した値が規定値より小さいとき、すなわち、電池残量が少ないとき（ステップＳ４０２のＮｏ）は、これまでと同様に通信間隔を大に設定する（ステップＳ４０３）。
【００６２】
取得した値が規定値より大きいとき、すなわち、電池残量が十分にあるとき（ステップＳ４０２のＹｅｓ）は、スレーブレイテンシ（ＳＬ）を通常の設定値よりも大きい値に設定する（ステップＳ４０４）。
【００６３】
このようにすることで、端末１の消費電力は接続モードが「High」のときと同じだが、無線デバイス２側の消費電力が少なくて済む。また、通信間隔が短いままなので、データ送受信要求が発生したときに、データ送受信開始までの遅延が小さくなる効果がある。
【００６４】
スレーブレイテンシの値を大きくする場合は、無線デバイス２からの端末１への通信が減るため、無線デバイス２から端末１への通信が失敗したときのペナルティが大きくなる。例えば、電波状況が悪い状態で実施すると、無線デバイス２から端末１への通信が失敗しやすくなり、端末１側は無線デバイス２からの応答が長時間ないと判断し、接続が切断されたと誤検出してしまう可能性が高くなる。特に、ＢＬＥデバイスは接続に使用可能な通信チャネル数が３７チャネルと少ない（ClassicなBluetoothデバイスの約半分）ため、複数の無線デバイス２が同じ場所に存在すると、同じチャネルを選択する確率が高くなる。例えば、４つデバイスがあれば、理論上１／９の確率で通信が失敗する。そこで、周辺の電波の混雑状況を推定し、それに応じてスレーブレイテンシの値を調整する手段を追加するものとする。
【００６５】
通常は、無線デバイス２と端末１の間の接続に使用する通信チャネルの混雑状況を端末１が把握することは困難であるため、端末１が把握可能な異なるチャネルの状況から通信チャネルの混雑度を推定する。例えば、ＢＬＥデバイスの場合は接続に使用する通信チャネルとは別にアドバタイズ用チャネルという帯域があり、これはスキャン処理部１１２により常に状況を把握可能である。アドバタイズ用チャネルには、未接続のＢＬＥデバイスが常にアドバタイズデータを送信している。
【００６６】
図１５は電波状態による接続状態変更の処理例を示すフローチャートであり、前述したスレーブレイテンシを大きな値に設定する場面（図１４のステップＳ４０４等）に置き換わるものである。
【００６７】
図１５において、接続設定判定部１０８は、スキャン処理部１１２に対してアドバタイズデータのスキャンを要求してスキャンを行わせる（ステップＳ５０１）。
【００６８】
接続設定判定部１０８は、スキャン処理部１１２が得たスキャン結果から、現在接続中の無線デバイス２と同じデバイス名を持つデバイスの個数をカウントし、一定数を検知したかどうか判断する（ステップＳ５０２）。その個数が多いということは、周辺に同じ使われ方をする無線デバイスが多いということを意味し、それらの無線デバイスは他の端末からも同様の使われ方をされることが想定される。すなわち、無線デバイス２との接続に使用するチャネルの使用率が上がり、通信失敗の確率が上がると推定することができる。他の名前のデバイスはアドバタイズだけを発信しているのか、無線デバイス２と同様に接続チャネルも使用するのか判断がつかないため、混雑度判定の個数にはカウントしないが、デバイス名と接続チャネル使用の有無の対応表を持っている場合は、混雑度判定の個数に他の無線デバイスもカウントしてもよい。
【００６９】
図１６はアドバタイズスキャンの例を示す図である。図１６（ａ）で端末１と接続している無線デバイス２のデバイス名が「Ａ」であるとして、その周辺に同じデバイス名「Ａ」のデバイスが２個ある。図１６（ｂ）はスキャン結果を示しており、デバイス名「Ａ」は３個、デバイス名「Ｂ」は１個、デバイス名「Ｃ」は１個となっている。
【００７０】
図１５に戻り、無線デバイス２と同じデバイス名を持つデバイスの個数が一定数を超えていた場合（ステップＳ５０２のＹｅｓ）、スレーブレイテンシ（ＳＬ）の値を通常より小さな値に設定する（ステップＳ５０３）。一定数を超えていない場合（ステップＳ５０２のＮｏ）、スレーブレイテンシの値を通常の値に設定する（ステップＳ５０４）。
【００７１】
このようにすることで、通常の処理よりは無線デバイス２の消費電力が増えるが、通信失敗による切断誤検出の可能性が低くなるので、より安定した通信状態を維持することが可能になる。
【００７２】
さらにデバイス側の処理能力に応じて通信間隔（スレーブレイテンシについても同様）をきめ細かく調整してもよい。例えば、プリンタのようなデバイスはメーカや種類によって性能差が激しいため、デバイス毎に通信間隔の設定値を変えた方がよいが、これはデバイス名と通信間隔の設定値の対応表を持つことで解決することができる。それに加えて、一つのデバイスに対しても、デバイスの負荷が大きいときは通信間隔を短くしてもすぐに応答できないため、通信間隔をより長くすることで通信速度を保ったまま、より省電力に動作させることができる。
【００７３】
図１７はデバイス状態による接続状態変更の処理例を示すフローチャートであり、データ送受信中において追加される処理である。
【００７４】
図１７において、接続処理部１１３は、データ送受信時に無線デバイス２からの応答遅延を時系列で記録する（ステップＳ６０１）。具体的には、あるデータを送信し、その応答までに何サイクルかかったかを記録する。デバイス毎に通信間隔が決まっているため、定常利用時の応答サイクルもほぼ一定である。しかし、デバイスの負荷が大きくなると応答遅延が発生するため、応答サイクルが大きくなる。
【００７５】
その応答サイクルが規定値より大きくなった場合（ステップＳ６０２のＹｅｓ）、通信間隔を例えば倍の値に設定する（ステップＳ６０３）。
【００７６】
これによってデータ送受信に寄与しない通信が減るため、通信速度を保ったまま、より省電力にすることができる。また、上記の例では応答遅延が一度でも規定値を超えた場合に通信間隔を変更したが、応答遅延の判断の精度を上げるため、一定時間内に規定値を超えた回数を採取し、その回数が一定数を超えたときに通信間隔を変更してもよい。また、空通信（データ送受信に寄与しない通信）が一定数以下になれば、再び元の通信間隔に戻す。このようにすることでデバイスの処理能力の範囲内でデータ送受信の速度をできるだけ高く保ったまま、より省電力に処理することが可能になる。
【００７７】
図１８はデータ送信中の接続状態変更の例を示す図である。図１８において、端末１のアプリ＃１から無線デバイス２にデータ送信を行っている際に、時刻ｔ１で応答が１サイクル遅れていることを検出するが、偶然の応答エラーの可能性があるため、この時点では応答遅延が発生していると判断しない。しかし、時刻ｔ２で再び１サイクル遅れていることを検出した場合、応答遅延が発生していると判断し、次のデータ送信の時刻ｔ３に合わせて通信間隔を大きくする。これにより、時刻ｔ４において無線デバイス２からの応答は遅れがなくなり、無駄な通信を減らすことができる。
【００７８】
＜総括＞
以上説明したように、本実施形態によれば、複数のアプリ間で接続設定を調停し、デバイスとの通信を適切化することができる。
【００７９】
以上、好適な実施の形態により説明した。ここでは特定の具体例を示して説明したが、特許請求の範囲に定義された広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により限定されるものと解釈してはならない。
【００８０】
無線デバイス２は「デバイス」の一例である。通信間隔またはスレーブレイテンシは「接続設定」の一例である。
【００８１】
以上の説明に関し、更に以下の項を開示する。
（付記１）  所定間隔の同期通信を用いてデバイスと接続する通信方法において、
複数のアプリを保持し、
保持する第１のアプリからの要求に応じて前記デバイスに対する処理を決定し、
決定した処理に対応する接続設定で前記デバイスと接続をして、要求をした前記第１のアプリによる通信を実行し、
保持する複数のアプリのうち通信している前記第１のアプリとは異なる第２のアプリから前記デバイスに対する新たな要求があった場合、前記第１のアプリの前記デバイスに対する通信状態に応じて前記第２のアプリの前記デバイスに対する処理および接続設定を決定し、
決定した接続設定で前記第２のアプリによる通信を実行する、
処理をコンピュータが実行することを特徴とする通信方法。
（付記２）  前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、
ことを特徴とする付記１に記載の通信方法。
（付記３）  前記接続設定は、同期通信の通信間隔の値とする、
ことを特徴とする付記１または２に記載の通信方法。
（付記４）  前記接続設定は、同期通信において前記デバイス側の無通信が許される回数を示すスレーブレイテンシの値とする、
ことを特徴とする付記１乃至３のいずれか一項に記載の通信方法。
（付記５）  前記処理を行う端末の電池残量が規定値よりも大きい場合に前記スレーブレイテンシの値を通常の設定値よりも大きい値に設定する、
ことを特徴とする付記４に記載の通信方法。
（付記６）  アドバタイズデータのスキャンを行い、前記デバイスと同じデバイス名を所定数を超えて検出した場合に、前記スレーブレイテンシの値を通常の設定値よりも小さい値に設定する、
ことを特徴とする付記４または５に記載の通信方法。
（付記７）  前記デバイスからの応答遅延を検出した場合に、前記接続設定の通信間隔を現在の設定値よりも大きくする、
ことを特徴とする付記１乃至６のいずれか一項に記載の通信方法。
（付記８）  所定間隔の同期通信を用いてデバイスと接続する通信において、
複数のアプリを保持し、
保持する第１のアプリからの要求に応じて前記デバイスに対する処理を決定し、
決定した処理に対応する接続設定で前記デバイスと接続をして、要求をした前記第１のアプリによる通信を実行し、
保持する複数のアプリのうち通信している前記第１のアプリとは異なる第２のアプリから前記デバイスに対する新たな要求があった場合、前記第１のアプリの前記デバイスに対する通信状態に応じて前記第２のアプリの前記デバイスに対する処理および接続設定を決定し、
決定した接続設定で前記第２のアプリによる通信を実行する、
処理をコンピュータに実行させる通信プログラム。
（付記９）  前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、
付記８に記載の通信プログラム。
（付記１０）  前記接続設定は、同期通信の通信間隔の値とする、
付記８または９に記載の通信プログラム。
（付記１１）  前記接続設定は、同期通信において前記デバイス側の無通信が許される回数を示すスレーブレイテンシの値とする、
付記８乃至１０のいずれか一項に記載の通信プログラム。
（付記１２）  前記処理を行う端末の電池残量が規定値よりも大きい場合に前記スレーブレイテンシの値を通常の設定値よりも大きい値に設定する、
付記１１に記載の通信プログラム。
（付記１３）  アドバタイズデータのスキャンを行い、前記デバイスと同じデバイス名を所定数を超えて検出した場合に、前記スレーブレイテンシの値を通常の設定値よりも小さい値に設定する、
付記１１または１２に記載の通信プログラム。
（付記１４）  前記デバイスからの応答遅延を検出した場合に、前記接続設定を現在の設定値よりも大きくする、
付記８乃至１３のいずれか一項に記載の通信プログラム。
（付記１５）  所定間隔の同期通信を用いてデバイスと接続する装置において、
複数のアプリを保持する手段と、
保持する第１のアプリからの要求に応じて前記デバイスに対する処理を決定する手段と、
決定した処理に対応する接続設定で前記デバイスと接続をして、要求をした前記第１のアプリによる通信を実行する手段と、
保持する複数のアプリのうち通信している前記第１のアプリとは異なる第２のアプリから前記デバイスに対する新たな要求があった場合、前記第１のアプリの前記デバイスに対する通信状態に応じて前記第２のアプリの前記デバイスに対する処理および接続設定を決定する手段と、
決定した接続設定で前記第２のアプリによる通信を実行する手段と、
を備えたことを特徴とする情報処理装置。
（付記１６）  前記第１のアプリと前記第２のアプリのいずれかが省電力を優先するモードで接続要求を行った場合、データ送受信中を除いて前記接続設定を省電力を優先するモードとし、
前記第１のアプリと前記第２のアプリのうち速度を優先するモードで接続要求を行ったアプリがデータ送受信を行う場合に前記接続設定を速度を優先するモードとし、データ送受信の完了により前記接続設定を省電力を優先するモードとする、
ことを特徴とする付記１５に記載の情報処理装置。
（付記１７）  前記接続設定は、同期通信の通信間隔の値とする、
ことを特徴とする付記１５または１６に記載の情報処理装置。
（付記１８）  前記接続設定は、同期通信において前記デバイス側の無通信が許される回数を示すスレーブレイテンシの値とする、
ことを特徴とする付記１５乃至１７のいずれか一項に記載の情報処理装置。
（付記１９）  前記処理を行う端末の電池残量が規定値よりも大きい場合に前記スレーブレイテンシの値を通常の設定値よりも大きい値に設定する、
ことを特徴とする付記１８に記載の情報処理装置。
（付記２０）  アドバタイズデータのスキャンを行い、前記デバイスと同じデバイス名を所定数を超えて検出した場合に、前記スレーブレイテンシの値を通常の設定値よりも小さい値に設定する、
ことを特徴とする付記１８または１９に記載の情報処理装置。
（付記２１）  前記デバイスからの応答遅延を検出した場合に、前記接続設定を現在の設定値よりも大きくする、
ことを特徴とする付記１５乃至２０のいずれか一項に記載の情報処理装置。
【符号の説明】
【００８２】
１                  端末
１０１、１０２      アプリ
１０３、１０４      デバイス処理部
１０５              通信処理部
１０６              要求受付部
１０７              要求解析部
１０８              接続設定判定部
１０９              アプリ管理部
１１０              接続中アプリ状態データベース
１１１              接続設定管理部
１１２              スキャン処理部
１１３              接続処理部
１１４              端末状態管理部
１１５              端末状態データベース
２                  無線デバイス
２１                接続処理部
２２                デバイス制御部
【図１】
0006531593.tif 000002
【図２】
0006531593.tif 000003
【図３】
0006531593.tif 000004
【図４】
0006531593.tif 000005
【図５】
0006531593.tif 000006
【図６】
0006531593.tif 000007
【図７】
0006531593.tif 000008
【図８】
0006531593.tif 000009
【図９】
0006531593.tif 000010
【図１０】
0006531593.tif 000011
【図１１】
0006531593.tif 000012
【図１２】
0006531593.tif 000013
【図１３】
0006531593.tif 000014
【図１４】
0006531593.tif 000015
【図１５】
0006531593.tif 000016
【図１６】
0006531593.tif 000017
【図１７】
0006531593.tif 000018
【図１８】
0006531593.tif 000019