(58)【調査した分野】(Int.Cl.,DB名)
前記特定手段は、いずれかの機器の利用希望を示す特定の操作がユーザからなされた場合に前記接続先機器を特定する、ことを特徴とする請求項1に記載の情報処理装置。
前記特定手段は、前記第1領域内に、前記試行結果が前記ネットワーク経由で通信可能であることを示す通信可能機器と、前記試行結果が前記ネットワーク経由で通信不可であることを示す通信不可機器との両方が存在する場合、前記通信可能機器のなかから前記接続先機器を特定する、ことを特徴とする請求項2に記載の情報処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、ユーザの携帯する情報処理装置が機器のネットワーク上でのアドレスを取得できた場合、情報処理装置がそのアドレスを用いてそのネットワーク経由でその機器に対して処理の指示を行うことができる。ただし、そのときその機器がそのネットワークに接続されていない場合には、情報処理装置から送った指示はその機器に届かない。情報処理装置は、指示を送ってからある程度待っても(タイムアウトしても)その機器から応答がない場合、そのネットワーク経由ではその機器と通信できないと判断する。この場合、情報処理装置は、WiFi Direct等の直接無線接続方式でその機器に接続した上で指示を送信することも考えられる。
【0009】
しかし、直接無線接続方式で接続するための処理にはある程度時間がかかる上、直接無線接続に切り替えると判断するまでに時間がかかる(ネットワーク経由での指示に対するタイムアウト待ち)ため、ユーザの待ち時間は長いものとなる。
【0010】
本発明は、接続先の機器が特定された時点でその機器とのネットワーク経由での通信が可能か否かを判定して接続方法を決定する場合と比べて、接続方法をより早く決定可能とすることを目的とする。
【課題を解決するための手段】
【0011】
請求項1に係る発明は、
情報処理装置であって、各機器から当該機器のネットワーク上のアドレスを取得する取得手段と、
前記機器が前記情報処理装置に対して所定距離以内に近づく前に、前記機器の前記アドレスに前記ネットワーク経由で通信を試行し試行結果を記憶する試行手段と、前記機器の中から接続先機器を特定する特定手段と、前記接続先機器
が前記情報処理装置に対して前記所定距離以内に近づいたときに、前記試行結果において前記通信が不可である場合には、直接無線接続で前記接続先機器に接続する接続手段と、を有する情報処理装置である。
【0012】
請求項2に係る発明は、前記取得手段は、前記各機器から無線通信により前記アドレスを受信し、前記特定手段は、自装置からみて前記無線通信の通信可能範囲より内側の第1領域内にある機器の中から前記接続先機器を特定する、ことを特徴とする請求項1に記載の情報処理装置である。
【0013】
請求項3に係る発明は、前記特定手段は、いずれかの機器の利用希望を示す特定の操作がユーザからなされた場合に前記接続先機器を特定する、ことを特徴とする請求項1に記載の情報処理装置である。
【0014】
請求項4に係る発明は、前記特定手段は、自装置から最も近い機器を前記接続先機器と判定することを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置である。
【0015】
請求項5に係る発明は、前記接続手段は、前記
情報処理装置から最も近い機器についての前記試行結果が前記ネットワーク経由で通信可能であることを示す場合、前記試行結果が前記ネットワーク経由で通信不可であることを示す前記機器のうち前記
情報処理装置から最も近い機器に対して直接無線接続を確立する、ことを特徴とする請求項4に記載の情報処理装置である。
【0016】
請求項6に係る発明は、処理指示の入力を受け付ける手段、を更に有し、前記特定手段は、入力された前記処理指示を実行可能な能力を持つ機器の中から前記接続先機器を特定する、ことを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置である。
【0017】
請求項7に係る発明は、自装置から利用した機器の履歴を記憶する手段を更に備え、前記特定手段は、利用した履歴が新しい機器ほど優先して前記接続先機器に選ぶ、ことを特徴とする請求項1〜6のいずれか1項に記載の情報処理装置である。
【0018】
請求項8に係る発明は、前記特定手段は、前記第1領域内に、前記試行結果が前記ネットワーク経由で通信可能であることを示す通信可能機器と、前記試行結果が前記ネットワーク経由で通信不可であることを示す通信不可機器との両方が存在する場合、前記通信可能機器のなかから前記接続先機器を特定する、ことを特徴とする請求項2に記載の情報処理装置である。
【0019】
請求項9に係る発明は、ユーザを前記接続先機器に対して誘導するための処理を実行する誘導処理手段、を更に有する請求項1〜8のいずれか1項に記載の情報処理装置である。
【0020】
請求項10に係る発明は、処理指示の入力を受け付ける受付手段と、前記接続先機器に対して、前記受付手段が受付済みの前記処理指示を送信する手段と、を更に備える請求項9に記載の情報処理装置である。
【0021】
請求項11に係る発明は、処理指示の入力を受け付ける受付手段と、前記接続先機器が自装置からみて前記第1領域より内側の近接領域内に入った場合に、その接続先機器に対して、前記受付手段が受付済みの前記処理指示を送信する手段と、を更に備える請求項2に記載の情報処理装置である。
【0022】
請求項12に係る発明は、処理指示の入力を受け付ける受付手段と、前記接続先機器を近距離無線通信により検知した場合に、その接続先機器に対して、前記受付手段が受付済みの前記処理指示を送信する手段と、を更に備える請求項1に記載の情報処理装置である。
【0023】
請求項13に係る発明は、コンピュータを、各機器から当該機器のネットワーク上のアドレスを取得する取得手段、
前記機器が前記コンピュータに対して所定距離以内に近づく前に、前記機器の前記アドレスに前記ネットワーク経由で通信を試行し試行結果を記憶する試行手段、前記機器の中から接続先機器を特定する特定手段、前記接続先機器
が前記コンピュータに対して前記所定距離以内に近づいたときに、前記試行結果において前記通信が不可である場合には、直接無線接続で前記接続先機器に接続する接続手段、として機能させるためのプログラムである。
【発明の効果】
【0024】
請求項1又は13に係る発明によれば、接続先の機器が特定された時点でその機器とのネットワーク経由での通信が可能か否かを判定して接続方法を決定する場合と比べて、接続方法をより早く決定できる。
【0025】
請求項2に係る発明によれば、情報処理装置を携帯するユーザから遠い機器が接続先機器に選ばれることを防ぐことができる。
【0026】
請求項3に係る発明によれば、ユーザが機器を利用するつもりがないときに情報処理装置が機器に接続するための処理を実行することを低減することができる。
【0027】
請求項4に係る発明によれば、ユーザから使用する可能性が高い機器に対して情報処理装置を通信接続させることができる。
【0028】
請求項5に係る発明によれば、ユーザの移動に伴い、ユーザから最も近い機器が、ネットワーク経由で通信可能な第1の機器からそうでない第2の機器に切り替わった場合に、第2の機器に対する直接無線接続が確立できるまでの時間を短くすることができる。
【0029】
請求項6に係る発明によれば、ユーザの処理指示が実行できない機器に接続を行う無駄をなくすことができる。
【0030】
請求項7に係る発明によれば、ユーザが利用する可能性が高い機器に接続を行うことができる。
【0031】
請求項8に係る発明によれば、ネットワーク経由で通信不可の機器を接続先とした場合に必要となる直接無線接続の確立のための処理を実行しなくて済むようにできる。
【0032】
請求項9に係る発明によれば、接続先機器にユーザを誘導することができる。
【0033】
請求項10に係る発明によれば、誘導した接続先機器にユーザが到達したときには、接続先機器は、処理指示に関する情報の少なくとも一部の受信を完了している。
【0034】
請求項11に係る発明によれば、ユーザが使用したい機器に近づいていく過程で、処理指示に関する情報を情報処理装置から機器に送信することができる。
【0035】
請求項12に係る発明によれば、ユーザが情報処理装置を機器にタップして近距離無線通信(NFC)を行うと、事前にユーザが入力した処理指示に関する情報が機器に伝達される。
【発明を実施するための形態】
【0037】
オフィスや店舗等の施設内に設置された複合機(プリンタ、スキャナ、コピー機、ファクシミリ等の機能を併せ持つ装置)等の機器は、その施設に設けられたLAN(ローカルエリアネットワーク)等のネットワークに接続されていることが一般的である。また、施設内のLANには無線AP(アクセスポイント)が設けられることも少なくない。ユーザが携帯する携帯端末から無線AP経由で施設内のネットワークに接続し、ネットワーク上の機器を携帯端末から制御(例えば印刷の指示)することも行われている。
【0038】
また、近年、Wi-Fi Direct(登録商標)等のように装置同士が直接的に無線LAN接続を行う機能が普及しており、この機能を搭載した機器や端末も増えてきている。また他の直接無線接続方法として、Bluetooth(登録商標)を搭載した機器や端末も少なくない。最近では、BLE(Bluetooth Low Energy(登録商標))という低消費電力のBluetooth技術が普及しつつある。
【0039】
このように近年の複合機等の機器は、LAN等のネットワーク経由に加え、Wi-Fi DirectやBLE等の直接無線接続等、複数の接続方法でユーザの端末(例えば携帯端末)と通信接続可能なものが増えている。
【0040】
以下、本実施形態では、ユーザが携帯端末を持って施設内の機器に近づいていき、(無線APを介した)ネットワーク経由、又はWi-Fi Direct等の直接無線接続で携帯端末から機器に接続し、指示を行う場合の接続制御を説明する。
【0041】
<システム構成の例>
図1に示すように、本実施形態では、例えばBLEの距離推定機能を用いてユーザの携帯端末100と各機器200との間の距離をそれぞれ推定する。この例では、携帯端末100及び各機器200はBLE機能を搭載しているものとする。
【0042】
図1に示すように、本実施形態では、携帯端末100から近い順に領域1及び2という2つの距離範囲を定めている。領域1は、携帯端末100を中心とする半径R1の円形領域である。領域2は、携帯端末100を中心とする半径R2(R2>R1)の円形から領域1を除いたドーナツ状の領域である。携帯端末100からみて領域1は領域2の内側に位置する。本実施形態では、BLEの距離推定機能により、各機器200が領域1内にあるか、領域2内にあるか、及び領域2の外にあるかを判定する。BLEで推定する距離は、電波環境等により変化し得るものであり、光学的な計測手段や物差し等で計測される正確な値とは必ずしも一致しないが、距離の目安としては十分に実用的である。
【0043】
領域1の半径R1は、ユーザが機器200から距離R1に近づいた時点でそのユーザの携帯端末100と機器200との間で直接無線接続のための処理を始めても、ユーザが機器200に歩いて到達するまでにその処理が完了するのに十分な大きさに定められる。具体例としては、R1は1〜5m程度である。一方、領域2の半径R2は、R1より大きい値に定められ、例えば十〜十数m程度である。この半径R2は、例えば、ユーザが機器200から距離R2に近づいた時点でそのユーザの携帯端末100から機器200にネットワーク経由で到達できるか確認する処理を開始しても、ユーザが機器200から距離R1(領域1)に達するまでにその処理が完了するのに十分な大きさに定められる。領域2については上述のように半径R2を定める代わりに、携帯端末100が機器200とBLEで通信できるようになった場合に、その機器200が領域2内にあると判定してもよい。
【0044】
本実施形態では、携帯端末100は領域2内に新たな機器200を検知すると、携帯端末100から機器200へのネットワーク到達性を検査する。ネットワーク到達性とは、機器200が設置された施設内のネットワーク(例えばLAN)を介して携帯端末100からその機器200に到達できるか否かである。ネットワーク到達性は、携帯端末100から機器200に例えばPingコマンドのパケットを送信し、これに対する返信があるか否かにより判定する。携帯端末100は、ネットワーク到達性の検査結果を記憶する。そしてその後その機器200が領域1に入った時点で、先に記憶した検査結果から携帯端末100がその機器200にネットワーク経由で到達できないことが分かれば、Wi-Fi Direct等の直接無線接続で携帯端末100とその機器200との通信接続を行う。この仕組みでは、機器200が領域1に入った時点で、既にネットワーク到達性の検査結果が記憶されているので、もし携帯端末100が機器200にネットワーク到達性がない場合には、その時点ですぐに直接無線接続のための処理を開始できる。
【0045】
図2を参照して、本実施形態の携帯端末100の機能構成を説明する。
【0046】
携帯端末100は、スマートフォンやタブレット端末等、携帯可能な情報処理装置である。
図2に示すように、携帯端末100は、機器利用アプリ110、Bluetoothモジュール130及びWi-Fiモジュール140を有する。機器利用アプリ110は、機器200を利用するための各種制御処理を実行するアプリケーションである。機器利用アプリ110は、以下に説明する機器利用アプリ110の各機能を表すプログラムを、携帯端末100が内蔵するコンピュータにて実行することにより実現される。携帯端末100が内蔵するコンピュータは、一般的なノイマン型のものでよい。
【0047】
Bluetoothモジュール130は、Bluetooth規格に準拠した無線通信を行う装置であり、その通信を実行するためのハードウエア回路及びソフトウエアを有する。この例のBluetoothモジュール130はBLEをサポートしており、距離推定機能を有する。この距離推定機能は、機器200のBluetoothモジュール210(後述)が定期的に発するアドバタイジングパケットに含まれる距離推定情報と、そのパケットの受信電波強度から、機器200の携帯端末100に対する相対距離を推定する。ここで用いる距離推定情報は、例えば受信電波強度ごとの距離を示すテーブルである。
【0048】
Wi-Fiモジュール140は、Wi-Fi規格に準拠した無線LAN通信を行う装置であり、その通信を実行するためのハードウエア回路及びソフトウエアを有する。Wi-Fiモジュール140は、無線APを介して施設内のネットワークに接続するインフラストラクチャモードでの無線接続機能を有する。またWi-Fiモジュール140は、アドホック(AdHoc)モードでの相手装置との直接無線接続をサポートしていてもよい。またWi-Fiモジュール140は、Wi-Fi Directによる相手装置との直接無線接続をサポートしていてもよい。
【0049】
機器利用アプリ110について更に詳しく説明する。
【0050】
機器利用アプリ110は、UI部112、監視部114、事前接続判定部116、事前接続制御部118、接続先判定部120を有する。
【0051】
UI(ユーザインタフェース)部112は、機器200の制御のためのユーザインタフェース処理を行う。例えばUI部112は、機器200が提供する機能(例えば印刷、スキャン、ファクシミリ送信等)を選択するためのメニュー画面や、選択した機能についての処理パラメータ(例えば印刷する文書、印刷部数、スキャン結果のデータ形式、宛先ファクシミリ番号等)を入力する画面等を表示し、それら画面についてのユーザの選択や入力を受け付ける。この実施形態では、施設内にある複数の機器200が、UI部112が提供する共通のUIに対応している。したがって、ユーザは、利用する機器200を最終決定する前に、UI部112に対して、使用する機能の選択や処理パラメータの入力を行うことができる。そして、ある機器200を利用することが決定した段階で、UI部112は、その入力内容に対応する処理指示を、施設のネットワーク経由又は直接無線接続でその機器200に伝達することができる。
【0052】
監視部114は、各機器200の携帯端末100に対する相対距離が領域2内、領域1内(あるいは領域2の外)のいずれにあるかを監視する。この監視は、Bluetoothモジュール130がBLEの距離推定機能により推定した機器200の相対距離に基づいて行われる。
【0053】
事前接続判定部116は、監視部114が新たに領域2に入った機器200を検知した際に、その機器200に対するネットワーク到達性を判定する。この判定は、その機器200から受信したBLEのアドバタイジングパケットに含まれる、その機器200のIP(Internet Protocol)アドレスに対してPingコマンドのパケットを送信することにより行う。そして、そのパケットに対して応答があった場合、その機器200は(携帯端末100から)ネットワーク到達「可能」であると判定する。一方、予め定めたタイムアウト時間(例えば1〜数秒)だけ待っても応答が得られない場合は、その機器200はネットワーク到達「不可」であると判定する。例えば、機器200が施設内のネットワークに接続されていない場合や、携帯端末100がそのネットワーク上の無線APに対してインフラストラクチャー接続されていない場合等には、ネットワーク到達「不可」と判定される。事前接続判定部116は、その判定結果を機器監視DB(データベース)122に登録する。
【0054】
事前接続制御部118は、領域1内にある機器200のうち接続先判定部120により接続先に選ばれた機器200と通信接続するための処理を行う。例えば事前接続制御部118は、選ばれた機器200が携帯端末100からネットワーク到達不可である場合に、機器200との間でWi-Fi Direct等による直接無線接続を確立する。ネットワーク到達可能であれば、携帯端末100はネットワーク経由でその機器200と通信できるので、直接無線接続を確立する必要はない。
【0055】
接続先判定部120は、領域1内にある機器200の中から携帯端末100の接続先とする機器(以下「接続先機器」と呼ぶ)を判定する。
【0056】
一つの例では、接続先判定部120は、領域1内の機器200のうち携帯端末100に最も近い機器200(以下「最近傍機器」と呼ぶ)を接続先機器に選ぶ。
【0057】
別の例では、領域1内にある各機器200の能力を考慮して接続先機器を判定する。先に説明したとおり、UI部112は利用する機器200が決定される前に、使用する機能の選択や処理パラメータの入力を受付可能であるが、この例では、領域1内にある機器200のうち、それら事前に受け付けた機能及び処理パラメータを実行できる機器200を接続先機器として選ぶ。
【0058】
機器監視DB122は、監視部114が検知した各機器200についての、通信接続の制御のための情報を保持、管理するデータベースである。機器監視DB122に登録されているデータの例を
図3に示す。この例では、機器監視DB122には、機器200ごとに、その機器200の識別情報(例えば機器200からBLEで受信した当該機器200のIPアドレス等)に対応付けて、存在領域、最近傍フラグ、到達性フラグ、接続方法、距離、の各情報項目が登録される。
【0059】
「存在領域」は、当該機器200が領域1及び2のいずれに位置しているかを示す項目である。機器200が領域2の外側に出た場合、その機器200についての情報は機器監視DB122から削除する。ただしこれは一例に過ぎず、この代わりに、機器200が領域2の外側に出た場合でも例えば一定期間はその機器200についての情報(例えば到達性や接続方法)を機器監視DB122に残しておいてもよい。この場合、存在領域の項目には、当該機器20が領域1、領域2、及び領域2の外、のいずれにあるかを示す値が登録される。
【0060】
最近傍フラグは、当該機器200が携帯端末100から最も近いか否かを示すフラグである。
図3の例では、機器Bが携帯端末100からみて最近傍の機器200である。最近傍の機器200は、領域1内にある機器200の中から特定される。
【0061】
到達性フラグは、当該機器200に対する携帯端末100からのネットワーク到達性、すなわち携帯端末100から施設内のネットワーク経由でその機器200に到達できるか(通信できるか)否か、を示す。到達性フラグには、事前接続判定部116によるネットワーク到達性の判定結果の値が設定される。図示例では、機器Aは携帯端末100からネットワーク経由で通信が可能であるが、機器Bは不可能である。
【0062】
「接続方法」は、携帯端末100が当該機器200と直接無線接続する際に用いた接続方法の識別情報である。この実施形態では、各機器200は、BLEによる直接無線接続機能を有していることが前提であり、その他にWi-Fiのアドホック接続、Wi-Fi Direct等の他の直接無線接続方式をサポートしている場合がある。携帯端末100は、機器200と直接無線接続することとなった場合、その機器200がサポートしている1以上の直接無線接続方式を順に試行し、最初に接続が確立できた方式で通信を行う。この接続が確立できた直接無線接続方式の識別情報が、「接続方法」の項目に登録される。
【0063】
「距離」は、Bluetoothモジュール130がBLE機能により推定された、携帯端末100からみた当該機器200の推定距離である。
【0064】
以上、機器利用アプリ110が持つ機能のうち、この実施形態の接続制御に関連する部分を説明した。機器利用アプリ110は、以上に説明した機能のほかにUI部112に対してユーザが入力した指示や制御パラメータを機器200に送る機能等、機器200を利用するための様々な機能を有しているが、これらは従来技術と同様でよいので説明は省略する。
【0065】
次に、
図4を参照して、機器200の機能構成の例を説明する。
図4には、機器200が持つ各種機能のうちこの実施形態の接続制御に関連する部分を示す。機器200は、図示した機能モジュールの他に、その機器200がユーザに提供するサービス機能(例えば印刷、スキャン)を実行する機能モジュール、UIや機器200全体の制御を行う機能モジュール等の各種機能モジュールが存在するが、これらは従来のものと同様でよいので、説明は省略する。
【0066】
図4に例示した機器200は、Bluetoothモジュール210、Wi-Fiモジュール220、操作パネル230、通知処理部240を有する。
【0067】
Bluetoothモジュール210は、Bluetooth規格に準拠した無線通信を行う装置であり、その通信を実行するためのハードウエア回路及びソフトウエアを有する。この例のBluetoothモジュール210はBLEをサポートしており、定期的にアドバタイジングパケットを発信する機能を有する(すなわちBLEのペリフェラルとして機能)。このアドバタイジングパケットには、機器200の距離の推定に用いられる距離推定情報(上述)と、施設内のネットワークにおける当該機器200のIPアドレスの情報とが含まれる。また、Bluetoothモジュール210は、GATT(Generic Attribute Profile)212と呼ばれるBLEのプロファイル情報を管理しており、BLEの通信相手(例えば携帯端末100)からの要求に応じてそのGATTの情報を応答する機能を有する。
【0068】
図5に、Bluetoothモジュール210が管理しているGATT212のデータ構造を例示する。
図5の例は、機器200がプリンタである場合のGATTプロファイルの例である。
図5に示すように、機器200のGATTプロファイルには、Bluetoothモジュール210がBLEの通信相手(例えば携帯端末100)に提供する各サービスの情報が含まれる。この実施形態では、Bluetoothモジュール210がBLEの通信相手に提供するサービスには、当該機器200がサポートしている直接無線接続方法に必要な情報を提供するサービス(「プリンタ接続サービス」)や、その機器200(プリンタ)の能力(性能)の情報を提供するサービス(「プリンタ性能サービス」)等が含まれる。機器200が複数の直接無線接続方法をサポートしている場合、それら個々の直接無線接続方法がそれぞれ別々の「プリント接続サービス」として定義される。
図5の例では、機器200は、アドホックモード、Wi-Fi Direct、及びBLEの3種類の直接無線接続方法をサポートしている。
【0069】
個々のサービスの情報には、そのサービス(Service)の識別情報であるUUID(Universally Unique IDentifier)と、そのサービスのための各種のユーザデータである0個以上のキャラクタリスティック(Characteristic)とが含まれる。個々のキャラクタリスティックには、そのキャラクタリスティックのUUIDと値が含まれる。例えば、アドホックモードでのWi-Fi接続のための情報を提供する「プリンタ接続サービス(AdHoc)」には、SSID(Service Set )、PIN(Personal Identification Number)コード、モデル名称というアドホック接続に必要な3つのキャラクタリスティックと、当該機器200がサポートしている3つの直接無線接続方法の中での当該方法(アドホックモード)の優先順位を示すキャラクタリスティックとが含まれる。各接続方法の優先順位は、例えば、当該機器200の管理者が、例えば各接続方法での通信速度等を参考に定める。また、「プリンタ性能サービス」には、フルカラー印刷に対応しているか否かを示す「カラー」、両面印刷ユニットを搭載しているか否かを示す「両面ユニット」、ステープル機能の有無を示す「ステープル」、パンチ機能の有無を示す「パンチ」等のキャラクタリスティックが含まれる。例えば機器200が複合機である場合、GATTプロファイルには、「プリンタ性能サービス」の他に、「スキャナ性能サービス」や「ファクシミリ性能サービス」等の他の装置機能についての情報も含まれることになる。
【0070】
図4の説明に戻ると、Wi-Fiモジュール220は、Wi-Fi規格に準拠した無線LAN通信を行う装置であり、その通信を実行するためのハードウエア回路及びソフトウエアを有する。機器200が施設内のネットワークに対して無線APを介して接続される場合は、Wi-Fiモジュール220はインフラストラクチャモードでの無線接続機能を有する。なお、機器200は、施設内のネットワークに有線で接続されていてもよい。また、Wi-Fiモジュール220は、アドホック(AdHoc)モード、またはWi-Fi Direct、それらの両方をサポートするものであってもよい。
【0071】
操作パネル230は、機器200をユーザが操作する際のUI画面を表示する表示パネルである。操作パネル230には、例えばメニュー画面や処理パラメータの入力画面等、複合機等が提供する各種画面が表示される。また、1つの例では、当該機器200が携帯端末100からの接続先に選ばれた場合に、操作パネル230に特別な表示を行わせることで、当該機器200が接続先であることをユーザに報知する。この特別な表示としては、例えば操作パネル230の画面を点滅させる方式や、「Aさん、印刷を実行します」(「A」は接続元の携帯端末100のオーナー名)等、接続先となったことを示すメッセージを画面に表示する方式等がある。
【0072】
通知処理部240は、当該機器200が携帯端末100からの接続先に選ばれた場合に、ユーザに対してその旨を通知する処理を行う。この通知は、例えば、操作パネル230に画面点滅等の予め定めた特別な表示(前述)を行わせたり、機器200が有するスピーカ(図示省略)から音声を出力させたりすることで行う。
【0073】
<領域2進入時の処理の例>
次に、
図6を参照して、機器200が領域2(外側の領域。
図1参照)内に入ったことを検知した場合の携帯端末100の処理手順を説明する。
【0074】
Bluetoothモジュール130は、各機器200がそれぞれ定期的に発するアドバタイジングパケットを随時受信し、そのパケットに含まれる情報を用いて機器200の距離を推定している。推定した機器200の距離の情報は、監視部114に渡される。
図6は、「機器A」のアドバタイジングパケットを受信した際の処理を代表例にとった場合の例である。携帯端末100は、アドバタイジングパケットを受信した機器200ごとに、
図6の処理を実行する。
【0075】
監視部114は、Bluetoothモジュール130から受け取った機器Aの距離の情報から、機器Aが領域2内にあるか否かを判定する(S10)。機器Aの推定距離が、R1以上かつR2以下(
図1参照)であれば、S10の判定結果はYesとなる。S10の判定結果がNoの場合、監視部114は、機器Aからの次のアドバタイジングパケットの受信を待って再びS10の判定を行う。
【0076】
S10の判定結果がYesの場合、監視部114は、機器監視DB122内に機器Aの情報が登録されているかどうかを判定する(S12)。機器Aの情報が既に登録済みの場合、監視部114は、機器監視DB122内の機器Aの距離の値を、今回Bluetoothモジュール130が推定した距離へと更新し、機器Aからの次のアドバタイジングパケットの受信を待つ。
【0077】
S12で、機器監視DB122内に機器Aの情報が登録されていないことが分かった場合、監視部114は、機器監視DB122内に機器Aのエントリを作成する。このエントリには、「存在領域」に「2」(領域2)、最近傍フラグに「No」、到達性フラグ及び「接続方法」に未定、「距離」にBluetoothモジュール130による推定距離が、それぞれ登録される。S10及びS12で機器Aが新たに領域2内に入ったことが分かる直前の機器監視DB122のデータ内容が例えば
図7の(a)に示すものであった場合、S12の処理で機器Aについてのエントリを新たに登録した時点での機器監視DB122のデータ内容は
図7の(b)に示すものとなる。このあと監視部114は、事前接続判定部116を起動し(S14)、機器Aのネットワーク到達性の判定を依頼する。
【0078】
事前接続判定部116は、機器Aのアドバタイジングパケットから機器AのIPアドレスを取得し(S16)、そのIPアドレスを宛先としてPingコマンドを発することで、そのIPアドレスに対するネットワーク到達性があるか否かを判定する(S18)。タイムアウトするまでにPingコマンドに対する応答が宛先から返ってくれば機器Aは到達可能と判定され、そうでなければ到達不可と判定される。到達可能と判定した場合には機器監視DB122に機器Aが到達可能である旨を記録し(S20)、到達不可と判定した場合には機器監視DB122に機器Aが到達不可である旨を記録し(S22)、機器監視DB122のデータ内容をそれら到達性の記録を反映したものに更新する(S22)。S12の実行直後の機器監視DB122のデータ内容が例えば
図7の(b)に示すものであり、その後機器Aが到達可能であると判定された場合、S22の状態更新により機器監視DB122のデータ内容は
図7(c)に示すものとなる。
【0079】
<領域1進入時の処理の例>
次に、
図8を参照して、機器200が領域1(内側の領域)に入ったことを検知した場合の携帯端末100の処理手順を説明する。
【0080】
監視部114は、Bluetoothモジュール130から受け取ったある機器Aの距離の情報から、機器Aが領域1内にあるか否かを判定する(S30)。機器Aの推定距離が、R1以下(
図1参照)であれば、S30の判定結果はYesとなる。S30の判定結果がNoの場合、監視部114は、機器Aからの次のアドバタイジングパケットの受信を待って再びS30の判定を行う。
【0081】
S30の判定結果がYesの場合、監視部114は事前接続制御部118を起動し、S30で領域1内と判定した機器Aについての接続制御を依頼する(S32)。事前接続制御部118は接続先判定部120を起動し、機器Aを接続先とするか否かの判定を依頼する(S34)。接続先判定部120は、この例では、携帯端末100から最近傍の機器を接続先と判定する。したがって、この例では、機器Aが最近傍であるか否かを判定する(S36)。S30で検知した機器Aの距離が、機器監視DB122に登録されている「存在領域」が「1」であるどの機器の「距離」よりも小さければ、S36の判定結果はYesとなる。領域1内の機器200が機器Aのみである場合は、S36の判定結果はYesとなる。
【0082】
S36の判定結果がNoの場合、接続先判定部120は機器監視DB122内の機器Aについての情報を、S30での検出結果に応じて更新する(S44)。このときの機器監視DB122のデータ内容は、例えば
図9の(a)に示すものであったとする。この例では、機器Cが携帯端末100からみた最近傍の機器であり、接続先に選択されているので、機器Aは接続先に選択されない。なお、
図9の(a)の例では、最近傍の機器Cは携帯端末100からネットワーク経由で到達可能なので、直接無線接続は不要であり、このため「接続方法」の欄は空欄となっている。
【0083】
S36の判定結果がYesの場合、事前接続制御部118は、最近傍と判定された機器Aを接続先に選ぶ。
図8の手順では、最初に領域1に入った機器200(すなわちその時点では領域1内に他の機器はない)は必ず接続先として特定される。その後、他の機器200も領域1内に入り、その「他の機器」が最近傍になると、接続先はその「他の機器」に切り替わる。
【0084】
S36でその機器Aが領域1内の最近傍の機器であると判定した場合、事前接続制御部118は、機器Aの到達性フラグの値を機器監視DB122から取得し、その値が「Yes(到達可能)」であるか判定する(S38)。機器Aが「到達可能」であれば、携帯端末100は、Wi-Fiモジュール220のインフラストラクチャー接続により、施設内のネットワーク経由で機器Aと通信可能なので、機器Aとの直接無線接続を確立する必要がない。そこで、この場合事前接続制御部118は処理を終了する。
【0085】
S38の判定結果がNo(到達不可)であれば、事前接続制御部118は、接続先に選ばれた機器Aとの間で直接無線接続を確立するための処理を実行する。この処理では、まずBluetoothモジュール130により機器AとBLEで通信し(S40)、機器AのGATT212からプリンタ接続サービス(
図5参照)のプロファイルを取得する(S42)。機器Aが複数のプリンタ接続サービスに対応している場合には、それら複数のサービスのプロファイルを取得する。取得した各プロファイルには、機器識別情報(SSID、MACアドレス等)や接続のためのネットワーク情報(PINコード等)が含まれている。
【0086】
事前接続制御部118は、取得したプリンタ接続サービスを優先度の高い順に試行し、直接無線接続を確立する(S44)。
図5の例では、まず優先順位が最高のWi-Fiのアドホック接続を試み、接続が確立できなければ、次位のWi-Fi Direct接続を試みる。Wi-Fi Directでも接続できなければ、BLEで機器Aと通信する。BLEでの通信接続は既に確立されている(S40)ので、通信速度がより速いアドホック接続やWi-Fi Directが利用できない場合でも、BLEにより携帯端末100と機器Aとの間でデータのやりとりが可能になる。
【0087】
そして、機器監視DB122に対し、機器Aの「接続方法」に、S44で確立できた直接無線接続方法の識別情報を登録する(S46)。機器AとWi-Fi Directで接続できた場合、機器監視DB122のデータ内容は
図9の(b)に示すようなものとなる。この例では、機器Aが領域1内の最近傍の機器であり、ネットワーク到達性がないため、直接無線接続が試みられ、結果としてWi-Fi Direct(WFD)の接続が確立されている。
【0088】
なお、事前接続制御部118は、直接無線接続を行っていた領域1から出たことが監視部114の監視により分かった場合、その直接無線接続(及びBLE接続を行っていればこれも)を切断する。
【0089】
また事前接続制御部118は、いったん直接無線接続を確立した機器200が領域1から出てその接続を切った後、再び領域1内に入り最近傍となった場合には、機器監視DB122に記憶されている「接続方法」(
図6の機器Bの場合は「AdHoc」)を用いて再度直接無線接続を確立するようにしてもよい。このとき、その機器200からBLE接続により得たGATT情報中のその「接続方法」よりも優先順位の高い他のプリント接続サービスによる接続の試行を省略することで接続の高速化を図ってもよい。またその機器200からのGATT情報の取得、あるいはその機器200に対するBLE接続の確立自体を省略し、機器監視DB122に記憶しているその「接続方法」の情報を用いてその機器200に再接続してもよい。
【0090】
以上、
図6及び
図8を参照して説明した処理により、携帯端末100は、領域1内の最近傍の機器200と、ネットワーク経由、またはいずれかの直接無線接続方法で通信接続がなされる。このあと、ユーザは、接続が確立された機器200に対して、携帯端末100から処理の実行指示を送る等が可能になる。
【0091】
<接続先決定の具体例>
次に
図10に示す具体例を参照して、この実施形態における接続先の決定の流れを説明する。
【0092】
ユーザ(携帯端末100)が2つの機器(プリンタ)a及びbの方へ近づいているとする。(a)に示す時点では、機器aが領域2に入ったが、機器bは領域2の外にある。このとき、事前接続判定部116は、機器aから受信したアドバタイジングパケットからIPアドレス「aa.bb.cc.dd」を取得し、そのIPアドレスに対してPingコマンド等により通信を試行することで、そのIPアドレスが到達(通信)可能か判定する。この例では機器aのIPアドレス「aa.bb.cc.dd」が到達不可(“Unreachable”)と判定され、その旨が機器監視DB122に登録される。
【0093】
少し時間が経った(b)の時点では、機器aが領域1に入り、機器bが領域2に入っている。このとき機器aは、領域1内にあり、携帯端末100から最近傍の機器なので接続先に選ばれる。これにより携帯端末100は機器aとBLEの接続を確立してGATT情報を取得し、GATT情報中のプリンタ接続サービスの情報を用いて機器aと直接無線接続を確立する。この例では、Wi-Fi Directによる接続が確立されている。したがって、この時点では携帯端末100は機器aとBLE及びWi-Fi Directで接続された状態(“connected”)となっている。また、機器bについては、アドバタイジングパケットから得たIPアドレス「ee.ff.gg.hh」に対する到達性が判定がされ、到達不可(“Unreachable”)という判定結果が得られている。
【0094】
更にユーザが移動した結果、(c)の時点では、機器bが領域1に入り、携帯端末100の最近傍となったとする。まだこの時点では携帯端末100は、直前に最近傍であった機器aとWi-Fi Direct接続を行っているが、新たに最近傍になった機器bに直接無線接続の接続先を切り替えるために、機器aとのBLE接続を切り(“disconnect”)、新たに機器bとBLE接続を確立して(“connected”)GATT情報を取得する。
【0095】
そして、携帯端末100は、機器aとのWi-Fi Direct接続を切り、機器bのGATT情報中のプリント接続サービスの情報を用いて機器bと直接無線接続を確立する。この例では、機器bとはWi-Fi Direct接続が確立される。(d)はこの時点での状態を示している。この例では、携帯端末100がアドホック接続またはWi-Fi Direct接続できるのは1台の機器200のみなので、このような接続の切替を行う。
【0096】
<実施形態のまとめ>
以上に説明した実施形態では、機器200が領域2に入ると、携帯端末100からその機器200へのネットワーク到達性が検査され、その検査結果が機器監視DB122に記録される。したがって、その後その機器200が領域1に入った時点では、その機器200のネットワーク到達性の検査結果が機器監視DB122に記憶されている。このため、その機器200へのネットワーク到達性がない場合には、機器200が領域1に進入した時点(領域1内に他の機器200がある場合には最近傍になった時点)ですぐに(すなわちその時点でネットワーク到達性を検査する必要なく)直接無線接続のための処理が開始される。
【0097】
また上記実施形態では、機器200が領域1に入った時点(領域1内に他の機器200がある場合には最近傍になった時点)で直接無線接続の処理を開始する。このため、ユーザがその機器200のところに到着した時点では、直接無線接続が確立済みであるか、あるいは少なくとも直接無線接続のための処理のいくらかの部分が既に済んでいる。従って、ユーザが携帯端末100を機器200にタップしてNFCによりネットワーク情報を受け渡すことで直接無線接続の処理を開始する方式よりも、携帯端末100が直接無線接続経由で機器200を制御できるようになるまでのユーザの待ち時間が少ない。
【0098】
<領域1進入時の処理の別の例>
次に、
図11を参照して、機器200が領域1に入ったことを検知した場合の携帯端末100の処理手順の別の例を説明する。
【0099】
上述の
図8の例では、携帯端末100に最も近い第1の機器200が「到達可能」である場合その機器200は接続先に選ばれ、その次に近い領域1内の第2の機器200が「到達不可」であっても、第2の機器200に対する直接無線接続は行われない。これに対して、
図11の例では、そのような第2の機器200対する直接無線接続が行われるようにする。すなわち、この例では、領域1内にある「到達不可」の機器200のうち携帯端末100に最も近いものに対して直接無線接続を確立する。こうすることで、ユーザがその「到達不可」の機器200を使用すると決定した場合に、すでに直接無線接続が確立されており(あるいは少なくとも直接無線接続のための処理が開始されており)、機器200が機器200と通信できるまでのユーザの待ち時間が短い。
【0100】
図11の手順では、監視部114は、Bluetoothモジュール130から受け取ったある機器Aの距離の情報から、機器Aが領域1内にあるか否かを判定する(S50)。S50の判定結果がNoの場合、監視部114は、機器Aからの次のアドバタイジングパケットの受信を待って再びS50の判定を行う。
【0101】
S50の判定結果がYesの場合、監視部114は事前接続制御部118を起動する(S52)。事前接続制御部118は、機器監視DB122に機器Aの到達性を問合せ、得られた到達性の値が到達可能か否かを判定する(S54)。
【0102】
S54で到達可能と判定した場合、事前接続制御部118は、機器監視DB122内の機器Aの距離の値を、S50でBluetoothモジュール130から受け取った距離へと更新し(S66)、「存在領域」の値を「1」に設定して今回の処理を終了する。
【0103】
S54で到達不可であると判定した場合は、事前接続制御部118は接続先判定部120を起動し、機器Aを接続先とするか否かの判定を依頼する(S56)。接続先判定部120は、この例では、領域1内にある「到達不可」の機器200の中で、その機器Aが携帯端末100に最も近いか否かを判定する。(S58)。
【0104】
S58の判定結果がNoの場合、接続先判定部120は機器監視DB122内の機器Aについての情報を、機器監視DB122内の機器Aの距離の値をS50でBluetoothモジュール130から受け取った距離へと更新し(S66)、最近傍フラグを「No」に設定し、「存在領域」の値を「1」に設定して今回の処理を終了する。
【0105】
S58の判定結果がYesの場合、事前接続制御部118は、最近傍と判定された機器Aを接続先に選び、その機器Aとの間で直接無線接続を確立する。すなわち、機器AとBLE接続を行い(S60)、機器AのGATT212からプリンタ接続サービスのプロファイルを取得する(S62)。そして、取得したプリンタ接続サービスを優先順位の高い順に試行し、直接無線接続を確立する(S64)。そして、機器監視DB122の機器Aの「接続方法」に、S64で確立できた直接無線接続方法の識別情報を登録する(S66)。例えばS62で機器Aとアドホック接続が確立された場合、機器監視DB122の機器Aについてのエントリは例えば
図12に示すデータ内容となる。この例における最近傍フラグは、「到達不可」の機器200の中で携帯端末100に最も近い機器200についてはYesとなる。「到達可能」の機器200については、最近傍フラグを空欄としておけばよい。
【0106】
<接続先の決定基準の別の例>
図8の例では、領域1内にある、携帯端末100から見て最近傍の機器200を接続先に決定した(
図8のS36)。これに対して、別の例として、接続先の判定において機器200の能力を考慮してもよい。
【0107】
すなわちこの例では、領域1内に複数の機器200がある場合、それら複数の機器200のうち、ユーザが要求している処理(すなわちユーザがUI部112に事前に入力した使用機能及び処理パラメータに応じた処理)を実行可能な機器200を優先的に接続先に選ぶ。例えば、ユーザが、A3サイズの用紙に対するカラー印刷を指定している場合、領域1内の機器200のうちA3サイズの用紙が利用可能、かつカラー印刷が可能な機器200を、接続先機器として選択する。ユーザが入力した使用機能及び処理パラメータに応じた処理を実行可能な機器200が領域1内に複数ある場合には、それら複数からランダムに接続先を選択してもよいし、更に別の基準(例えば最近傍の機器200を選択するという基準)でそれら複数の中から接続先を選択してもよい。
【0108】
図8の手順に即していえば、この例では、接続先判定部120がS36にて、注目している機器Aが最近傍かどうかを判定する代わりに、機器Aがユーザの入力した使用機能及び処理パラメータに応じた能力を持つかどうかを判定する。この判定では、BLE通信により機器AからGATTプロファイルのプリンタ性能サービス(
図5参照)その他の性能サービスの情報を受け取り、その情報が示す機器Aの能力がユーザの入力した使用機能及び処理パラメータを満たしているかを判定すればよい。この判定の結果がYesの場合、機器Aが接続先に決定され、
図8のS38以降の処理に進む。
【0109】
また、領域1内に複数の機器200がある場合を考慮した更なる例として、S36では、機器Aだけでなく領域1内の他の各機器200についても、ユーザの入力した使用機能及び処理パラメータに応じた能力を持つかどうかを判定する。ここで、領域1内の機器200のうち「到達可能」な機器については、携帯端末100は、その機器200のIPアドレスに対して例えばSNMP(Simple Network Management Protocol)通信を行うことで、その機器200の持つ能力の情報を取得しておけばよい。機器Aを含む複数の機器200がその能力を持つと判定した場合、接続先判定部120は、その能力を持つ複数の機器200の中から別の基準で接続先を判定する。この判定で、機器Aを接続先と判定した場合は、
図8のS38以降の処理に進む。
【0110】
なお、領域1内の機器200の中に、ユーザの入力した使用機能及び処理パラメータに応じた能力を持つものが1つもない場合は、それら領域1内の機器200を接続先に選ばないようにしてもよい。この場合、携帯端末100の機器利用アプリ110は、ユーザの希望する処理を実行可能な機器200が近くにない旨のメッセージを画面表示してもよい。
【0111】
<接続先の決定基準の更に別の例>
更に別の例として、接続先判定部120は接続先の機器200を判定する際、当該携帯端末100からの機器200の利用履歴を参照してもよい。
【0112】
この例では、携帯端末100は、いずれかの機器200を利用(例えば機器200に処理指示を送信)する都度、利用した機器200の識別情報(例えばその利用時の通信に用いたその機器200のIPアドレス、SSID、MACアドレス等)とその利用の日時を履歴データベース(図示省略)に記録する。そして、接続先判定部120は、領域1内に複数の機器200が存在する場合、それら機器200のうち過去に利用されたことが履歴データベースに記録されている機器200を優先的に接続先に選ぶ。領域1内の複数の機器200について利用履歴が履歴データベースに記録されている場合、1つの例では、それら機器200のうち利用履歴の日時が最も新しいものを接続先に選ぶ。
図8の手順に即していえば、S36で機器Aが最近傍か否かの判断をする代わりに、機器A以外に領域1内にある機器200があるかどうかをしらべ、なければ機器Aを接続先に選び、あれば機器A及び領域1内の他の機器200のうち、機器Aの利用履歴の日時が最新であるかをしらべ、最新であれば機器Aを接続先に選ぶ(最新でなければ、他の機器200が既に接続先に選ばれているはずである)。
【0113】
また別の例として、履歴データベースは携帯端末100から最後に利用した機器200の情報を記録するものとし、領域1内にその履歴データベース中の最後に利用した機器200を検出した場合、領域1内に別の機器200があっても、その最後に利用した機器200を接続先に選んでもよい。
【0114】
例えばオフィス等における機器200の利用シーンを考えると、ユーザはオフィス内の複数の機器200のうち使い慣れた機器200を使いたいことが多いと考えられる。したがって、過去の利用履歴を考慮して接続先を決定すれば、ユーザの希望にかなう機器200が接続先に選ばれる可能性がより高まる。
【0115】
また上述した携帯端末100からの距離の近さに基づく判定方法(最近傍を選択)、機器200の能力に基づく判定方法、及び利用履歴に基づく判定方法のうちの1以上を組み合わせて利用してもよい。
【0116】
<接続先決定後の処理 第1例>
以上では、接続先とする機器200を決定し、携帯端末100がその接続先の機器200とネットワーク経由又は直接無線接続で通信可能になるまでの流れを説明した。
【0117】
この後、ユーザの特定の動作により最終的にユーザが使用する機器200を確定するようにしてもよい。
【0118】
1つの例では、ユーザが、機器200のNFC(近距離無線通信)の通信ポート(図示省略)を携帯端末100でタップすることで、その機器200を使用する機器として確定する。この場合、タップ動作により、携帯端末100と機器200のNFC通信モジュール同士がNFC規格に従って通信を行う。この通信において、例えば機器200から携帯端末100に対して、その機器200と通信するために必要な情報、例えばインフラストラクチャー接続で用いる機器200のIPアドレス等の情報、直接無線接続のための情報(例えばアドホック接続で用いるSSID等の情報、Wi-Fi Directで用いるMACアドレス等の情報)が渡される。携帯端末100は、機器200からNFC通信で受け取った情報が示す各接続方法での接続が確立済み(又は接続確立のための処理を実行中)であるかを順に調べていき、最初に確立済み(または確立処理中)の接続方法を用いて機器200との通信を開始する。
【0119】
調べる順序は、第1にインフラストラクチャー接続(ネットワーク経由での接続)である。これには、NFC通信で受け取ったインフラストラクチャー接続用のIPアドレスに対応する機器200が「到達可能」かどうかを機器監視DB122から求めればよい。到達可能であれば、携帯端末100は、そのIPアドレスを用いてネットワーク経由で機器200と通信し、以降その通信路を用いて処理指示の送信、印刷データやスキャン結果データ等のやりとり等の処理を実行する。インフラストラクチャー接続が確立されていない場合(「到達不可」の場合)には、定められている直接無線接続方式の優先順位(GATTプロファイル(
図5参照)中に示されているのと同じもの)の順に調べ、接続が確立されている(あるいは確立のための処理を実行中)の直接無線接続方式が見つかった場合は、以降その直接接続方式を用いて機器200と通信し、処理指示等を送信する。
【0120】
NFCタップにより使用する機器200が確定した時点で、ユーザが使用したい機能やその機能についての処理パラメータ等の情報がUI部112に既に入力されていれば、携帯端末100はその情報に応じた処理の指示やその処理のために必要な情報(例えば印刷指示の場合の印刷データ)を、その機器200に送る。機器200は、その指示及び情報に従って処理を実行する。
【0121】
図13に、携帯端末側起動条件と、その条件が満たされたときに携帯端末100が機器200に対して実行する処理の内容の例を示す。携帯端末側起動条件は、使用する機器200が確定した時点(例えばNFCタップ操作がなされた時点)で、携帯端末100のUI部112が画面表示している表示内容を示しており、この表示内容はそのときのUI部112の状態、すなわちそのときUI部112に入力済みの内容(ユーザが選択した機能及び入力したパラメータ等)を反映したものとなっている。
【0122】
図13の例において、例えば携帯端末100が機器200にタップされた時点で、携帯端末100に印刷プレビュー画面が表示されていた場合、携帯端末100は、その印刷プレビュー画面に示される文書の印刷データと印刷設定をその機器200に送信し、印刷実行を要求する。すなわち、印刷プレビュー画面が表示されているということは、ユーザはそれ以前にUI部112で印刷対象の文書を選択し、印刷設定を入力済みであるはずなので、携帯端末100は、NFCタップがなされたことを検知すると、その文書の印刷データと印刷設定を含む印刷要求を機器200に送信するのである。この送信は、印刷プレビュー画面に表示される印刷開始ボタンをユーザが押下しなくても、その画面を表示した携帯端末100を機器200にNFCタップするだけで実行される。機器200は、その要求に従い、受信した印刷データを印刷する。
【0123】
また例えば携帯端末100が機器200にタップされた時点で、携帯端末100にスキャン開始画面(スキャンの開始を指示するボタン等を含む画面)が表示されていた場合、それ以前にユーザがUI部112にスキャン設定を入力しているはずである。この場合、携帯端末100は、その機器200にそのスキャン設定の情報を含むスキャン処理要求を送信する。
【0124】
以上、携帯端末100を機器200のNFC通信ポートにタップすることで、ユーザが使用する機器200を確定する場合を説明したが、このようなタップによる確定は一例に過ぎない。
【0125】
別の例として、
図14に示すように、接続先判定のトリガとなる領域1(
図1参照)の内側に領域Aを設定し、その領域A内に位置する機器200を検知すると、携帯端末100は、その機器200がユーザが使用する機器200であると判定する。領域Aは、例えば半径R3が0.5m程度のように、携帯端末100を持つユーザの手の届く程度の領域とする。
【0126】
携帯端末100は、監視部114の監視結果から、領域A内に位置する機器200を検知すると、その機器200をユーザの使用する機器200と判定する。そして、上述したNFCタップ時の処理と同じ処理を実行する。
【0127】
<接続先決定後の処理 第2例>
接続先判定部120が接続先とする機器200を判定し、携帯端末100がその接続先の機器200とネットワーク経由又は直接無線接続で通信可能になった時点で、その接続先の機器200をユーザが使用する機器として確定し、その機器200にユーザを誘導してもよい。
【0128】
図8の手順に即していえば、この例では、接続先判定部120がS36で最近傍(又は能力や利用履歴等)の基準に従って接続先の機器200を決定した後、携帯端末100は、その接続先の機器200にユーザを誘導するための処理を行う。
【0129】
誘導は、例えば、
図15に例示するように、携帯端末100の画面150に、接続先に選んだ到達可能な機器200の情報を表示することにより行う。
図15の例では、画面150に表示する誘導のための表示には、接続先の機器200の携帯端末100からの距離、その機器200の機種名、その機器200が提供する機能(図示例ではプリントとスキャン)、及びその機器200の機種の外観画像等が含まれる。表示する機種名、提供機能、外観画像等の情報は、接続先に選んだ機器200から取得すればよい。その機器200が携帯端末100から「到達可能」であればネットワーク経由で、「到達不可」であれば、確立できた直接無線接続を介して、それらの情報を取得する。
【0130】
また別の誘導方法として、接続先に選ばれた機器200が、接続先であることを報知する報知動作を行ってもよい。報知動作の一例としては、例えば、接続先の機器200に設けられたランプを点灯あるいは点滅させたり、操作パネル230を点滅させたりするように、ランプや操作パネル230を特別なパターンで発光させる動作がある。これには、携帯端末100が、接続先の機器200を決定した後、その機器200に対して接続先であることの報知動作の要求を送り、機器200がその要求に応じて、予め定めた報知動作を行えばよい。
【0131】
また機器200が行う報知動作の別の例として、当該機器が接続先であることを示す情報(例えば「○○さんの印刷を実行します」)を操作パネル230に表示する動作もある。この場合、操作パネル230に表示する情報の一部(例えば上の例での「○○さん」というユーザ名)又は全部を、携帯端末100(機器利用アプリ110)からその機器200に提供する。
【0132】
また機器200が行う報知動作の更に別の例として、その機器200が備えるスピーカ(図示省略)から特定の音声(例えばチャイム音)を発する動作がある。
【0133】
以上に例示した機器200の報知動作はあくまで一例に過ぎない。機器200は別の種類の報知動作を行ってもよい。また、機器200は、以上に例示した各種の報知動作の内の2以上の組み合わせを実行してもよい。
【0134】
また、携帯端末100の誘導動作(接続先機器の情報の表示)と、機器200の誘導動作(上述した各種報知動作)とを組み合わせて実行してもよい。
【0135】
また、以上のような誘導動作は、携帯端末100で機器利用アプリ110が実行中(アクティブ状態)でないと行われないが、機器利用アプリ110が実行中であってもユーザは必ずしも機器200を利用したいと希望しているとは限らない。そこで、機器利用アプリ110のUI部112が、ユーザから機器の利用希望を意味する操作を受けた状態にある場合にのみ、上述の誘導動作を行うようにしてもよい。「機器の利用希望を意味する操作を受けた状態」としては、例えば、UI部112がユーザから、使用する機能(印刷、スキャン等)の選択、及びその機能についての処理パラメータの入力がなされた状態、又は
図13に例示した携帯端末側起動条件の画面表示が行われている状態、等がある。
【0136】
また、携帯端末100は、接続先の機器200を決定した場合、その機器200へユーザを誘導するための処理を行うと共に、UI部112に対してユーザが入力済みである処理要求の情報(使用したい機能や処理パラメータ等)をその機器200に送信してもよい。この場合、機器200は、携帯端末100から受信した処理要求の情報に対応する処理を即座に開始してもよい。また、別の例として、機器200は、携帯端末100から処理要求の情報を受信しても即座にはその情報に応じた処理を開始せず、その情報を保存してもよい。この場合、機器200は、ユーザが例えば上述の項目「接続先決定後の処理 第1例」で例示したNFCタップ動作や領域Aへの進入を行ったことをトリガとして、その情報に応じた処理を開始するようにしてもよい。
【0137】
<到達可能な機器を優先する例>
領域1内に「到達可能」な機器200が存在する場合、その到達可能な機器200を接続先に選び、領域1内の「到達不可」の他の機器200に対する直接無線接続を抑制してもよい。
【0138】
この例では、携帯端末100は、ある機器200が領域1内にあると判定した場合(
図11のS50)、その機器200が「到達可能」か否かを判定し(
図11のS54)、その判定の結果を機器監視DB122に記録する。そして、携帯端末100は、その機器200が「到達不可」であると判定した場合、機器監視DB122を参照することで、領域1内の他の機器200の中に「到達可能」な機器200があるか否かを判定する。領域1内に到達可能な機器200があれば、
図11のS58以降の処理は行わずに、処理を終了する。一方、その機器200が「到達不可」であり、かつ、領域1内の他の機器200の中に「到達可能」な機器200がない場合は、
図11のS58以降の処理を実行する。
【0139】
また、この変形例では、接続先に選んだ到達可能な機器200にユーザを誘導する制御を行ってもよい。誘導の仕方は、上述の項目「接続先決定後の処理 第2例」で例示した方式と同様のものでよい。
【0140】
<特定の操作をトリガとして接続先判定を開始する例>
以上に説明した例では、機器200が領域1に入ったことをトリガとして携帯端末100の接続先を特定する処理を開始した。
【0141】
以下では、別の例として、ユーザが携帯端末100に対して特定の操作を行ったことをトリガとして携帯端末100の接続先の特定を開始する仕組みを例示する。
【0142】
この例においてトリガとなる特定の操作とは、いずれかの機器200を利用しようとするユーザの意図を示唆する操作である。
【0143】
そのような特定の操作の例としては、機器利用アプリ110のUI部112に対して機器の利用に関する指示(例えば利用したい機能の選択)を入力する操作がある。また、携帯端末100を機器200のNFC通信ポートにタップする操作もそのような特定の操作の一例である。タップした相手が機器利用アプリ110の操作対象の機器200である場合、NFCモジュールが受信した情報が機器利用アプリ110に渡されるので、機器利用アプリ110はトリガとなる特定の操作がなされたことを検知できる。
【0144】
また、機器利用アプリ110の起動操作を接続先判定のトリガとなる「特定の操作」としてもよい。ただし、この場合、機器利用アプリ110が起動されていない状態でも、機器200が携帯端末100に対してネットワーク到達性を持つかどうかを事前(すなわち接続先の機器として特定される前)に判定しておく必要がある。このため、
図2に示した携帯端末100の構成要素のうち少なくとも監視部114、事前接続判定部116及び機器監視DB122は、機器利用アプリ110の外部のプログラム又は要素として実装(例えばオペレーティングシステムに組み込む)し、機器利用アプリ110が起動していなくても動作するようにする。なお、この例からも分かるように、
図2に例示したように監視部114、事前接続判定部116及び機器監視DB122を機器利用アプリ110の機能として実装するのはあくまで一例に過ぎない。監視部114、事前接続判定部116及び機器監視DB122を、機器利用アプリ110とは別のプログラムとして実装してもよい。また、事前接続制御部118や接続先判定部120についても、同様に機器利用アプリ110とは別のプログラムとして実装してもよい。これらのことは機器200が領域1に入ったことを接続先特定のトリガとする上述の例の場合についても同様である。
【0145】
さて、この例では、機器200が領域1に入ったことをトリガとして接続先の特定を行う
図8又は
図11等の手順に代えて、例えば
図16の手順を実行する。なお、
図16の処理の前提として、
図6に例示した機器200に対するネットワーク到達性の事前判定の処理は実行されているものとする。
【0146】
図16の手順では、例えば事前接続制御部118が定期的に、携帯端末100に対してユーザから上述した「特定の操作」がなされたか否かを判定する(S70)。特定の操作がなされた場合、事前接続制御部118は、接続先判定部120に接続先の判定を実行させる(S72)。接続先判定部120は、例えば、BLE等で推定した携帯端末100からの距離が最も短い機器200を接続先に選ぶ(「最近傍」基準)。あるいは、上に例示した別の基準、例えば、ユーザがUI部112に入力した入力した使用機能及び処理パラメータを満たす能力を有する機器200を優先的に選ぶという基準、又は携帯端末100から過去に利用した機器200を優先的に選ぶという基準等に従って接続先を選んでもよいし、それら例示した基準のうちの2以上を組み合わせて接続先の判定に用いてもよい。また、「特定の操作」が携帯端末100を機器200にタップする操作である場合は、タップされた機器200が接続先の機器200として選択される。
【0147】
接続先の機器200が判定されると、事前接続制御部118は、その機器200が「到達可能」であるか否かを判定する(S74)。到達可能であれば、直接無線接続のための処理をスキップし、機器監視DB122内のその接続先の機器200の状態値を更新(S82)して処理を終了する。また、接続先の機器200が到達不可であれば、事前接続制御部118は、接続先の機器200とBLE接続を行い(S76)、その機器200のGATT212からプリンタ接続サービスのプロファイルを取得する(S78)。そして、取得したプリンタ接続サービスを優先順位の高い順に試行し、直接無線接続を確立する(S80)。そして、機器監視DB122に確立できた直接無線接続方法の識別情報を登録する等の更新(S82)を行い、処理を終了する。
【0148】
なお、機器利用アプリ110は、S72で接続先の機器200を判定した場合、ユーザをその機器200に誘導するための処理を行ってもよい。この誘導のための処理は、上の項目「接続先決定後の処理 第2例」に挙げた接続先の機器200の情報の画面表示、接続先の機器200に画面点滅や音声出力等の報知動作を指示する処理等のうちのいずれかであってもよい。また、この誘導処理と平行して、ユーザが指示した処理についての情報(例えば印刷データ)を接続先の機器200に送信してもよい。
【0149】
以上、本発明の実施形態を説明した。以上に例示した携帯端末100及び機器200の情報処理機構は、コンピュータにそれら各装置についての上述の機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)や等の固定記憶装置を制御するコントローラ、各種I/O(入出力)インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。