以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
<第1の実施形態>
[システム構成]
本実施形態に係る通信システムに含まれる情報処理装置及び通信装置の構成例について説明する。本実施形態では、情報処理装置としてスマートフォン、を例示する。しかし、情報処理装置は、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、通信端末と近距離無線通信が可能な他の装置であってもよい。また、本実施形態では、通信装置としてプリンタを例示するが、これに限定されず、情報処理装置と近距離無線通信が可能な装置であれば、他の装置であってもよい。例えば、通信装置としてプリンタである場合には、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に本願発明を適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機(MFP:Multi−Function Peripheral)にも適用可能である。
まず、本実施形態に係る情報処理装置と通信装置の構成例について図1を参照して説明する。なお、ここでは、情報処理装置、通信装置、およびアクセスポイントをそれぞれ1つずつ示しているがこれに限定するものではない。
図1において、情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、及び近距離無線通信部110を含んで構成される。なお、これらはシステムバスを介して互いに接続されている。
入力インタフェース102は、物理キーボードやマウス、等の操作部(不図示)を介して、ユーザからの指示を受け付けるインタフェースである。CPU103は、システム制御部であり、プログラムの実行やハードウェアの起動により、情報処理装置101の全体を制御する。ROM104は、不揮発性の記憶領域であり、CPU103が実行する各種制御プログラムやデータテーブル、組み込みオペレーティングシステム(OS)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、例えば、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェアの実行制御を行う。
RAM105は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等である。なお、本実施形態では、RAM105は、データバックアップ用の1次電池(不図示)によってデータが保持されていてもよい。その場合、RAM105は、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や管理データ等を格納するメモリエリアもRAM105に設けられる。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。外部記憶装置106は、印刷実行機能を提供するアプリケーション(以下、印刷アプリケーション)、通信装置151が解釈可能な印刷ジョブを生成するプログラム等を保存している。また、外部記憶装置106は、通信部109を介して接続している通信装置151との間で各種情報を送受信するプログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。なお、表示部108と上述の操作部とは、少なくとも一部が一体であってもよく、例えば、画面の出力とユーザからの操作の受け付けを同一の画面において行うようなタッチパネルであってもよい。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボード(不図示)を設置することで、表示部108を介してユーザからの入力を受け付けてもよい。
通信部109は、通信装置151等の外部装置と接続して、データ通信を実行する。例えば、通信部109は、通信装置151内もしくは通信装置151に外付けされたデバイスによるアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントとが接続することにより、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は無線通信で通信装置151とダイレクトに通信してもよいし、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント(例えば、アクセスポイント131)を介して通信してもよい。無線通信方式としては、例えば、Wi−Fi(Wireless Fidelity)(商標登録)やBluetooth(商標登録)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
近距離無線通信部110は、通信装置151等の外部装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。例えば、近距離無線通信部110は、通信装置151内の近距離無線通信部157と近距離にて接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth Low Energy(BLE)が用いられるものとして説明する。すなわち、近距離無線通信部110は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。マイコンには、RAMとフラッシュメモリが搭載されている。なお、近距離無線通信部110の通信方式として、BLEの他に、例えば、NFC(Near Filed Communication)やWi−Fi Awareが用いられてもよい。また、近距離無線通信が可能な範囲は、通信方式に応じて変わるが、ここでは、情報処理装置101と通信装置151とはその範囲内に位置するものとして説明する。また、情報処理装置101と通信装置151との間の通信において、通信部109と通信部156との間の通信性能(通信速度やデータ量)の方が、近距離無線通信部110と近距離無線通信部157との間の通信性能よりも高いものとして説明する。
通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、及び近距離無線通信部157を含んで構成される。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の外部装置と接続するためのアクセスポイントを有する。なお、通信部156は、無線通信で情報処理装置101とダイレクトに通信してもよいし、外部アクセスポイントであるアクセスポイント131を介して通信してもよい。通信方式としては、例えば、Wi−Fi(商標登録)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウェアにより、アクセスポイントとして動作してもよい。近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、BLEが用いられるものとして説明する。
RAM153は、SRAMやDRAM等で構成される。なお、RAM153は、データバックアップ用の1次電池(不図示)によってデータが保持されていても良い。その場合、RAM153は、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、通信装置151の設定情報や管理データ等を格納するメモリエリアもRAM153に設けられる。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷ジョブを一旦保存するための受信バッファや各種の情報を保存する。ROM152は、不揮発性の記憶領域であり、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行う。
CPU154は、システム制御部であり、プログラムの実行やハードウェアの起動により、通信装置151の全体を制御する。プリントエンジン155は、RAM153に保存された情報や情報処理装置101等の外部装置から受信した印刷ジョブに基づいて、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められる。そのため、本実施形態では、近距離無線通信部157よりも高速に通信可能な通信部156を介して印刷ジョブを受信する。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、オプション機器としてのメモリに保存されてもよい。また、一例として情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
[近距離無線通信]
ここで、BLE規格におけるアドバタイズ情報(アドバタイズパケット)の送信及びGATT(Generic Attribute Profile)通信の開始要求の受信の処理について説明する。本実施形態では、情報処理装置101がマスタ装置として動作し、通信装置151がスレーブ機器として動作する。なお、この役割分担は一例であり、他の形態でもよい。また、本実施形態では、通信装置151がスレーブ機器として動作するため、近距離無線通信部157がアドバタイズ情報の送信GATT通信の開始要求の受信の処理を行うものとする。
近距離無線通信部157は、BLE通信において、2.4GHzの周波数帯を40チャネル(0〜39ch)に分割して通信を行う。近距離無線通信部157は、そのうち、37〜39番目の3のチャネルをアドバタイズ情報の送信及びGATT通信の開始要求の受信に利用し、0〜36番目の37のチャネルをBLE接続後のデータ通信に利用する。図2では、縦軸が近距離無線通信部157の消費電力を示し、横軸が時間を示す。BLEの利点の一つとして省電力である点が挙げられるため、ここでは、通信装置151における、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示す。
図2(a)において、Tx205は、アドバタイズ情報をブロードキャストする処理である送信処理における総消費電力を示す。Rx206は、GATT通信の開始要求を受信するための受信器を有効にしておく処理である受信処理における総消費電力を示す。送信電力202は、送信処理による瞬間消費電力を示す。また、受信電力203は、受信処理による瞬間消費電力を示す。
また、マイコン動作電力201は、近距離無線通信部157内のマイコン(不図示)が動作している場合の瞬間消費電力を示す。なお、Tx205とRx206の前後やその間にもマイコンが動作しているのは、送信処理および受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力(送信電力202)が増えることになる。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。このように、近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からGATT通信の開始要求が送信されてくるのを待つ。
また、近距離無線通信部157は、図2(b)に示すように、アドバタイズ情報の送信処理と受信処理を、チャネル別に3回繰り返した後、マイコンの動作を停止させ一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。この1組の送受信に係る時間をアドバタイズ時間と言う。また、所定のチャネル(ここでは37〜39番目の3つのチャネル)によってアドバタイズ情報を送信する時間間隔をアドバタイズ間隔という。すなわち、あるチャネルによってアドバタイズ情報を送信し、同じチャネルによって次にアドバタイズ情報を送信するまでの時間間隔がアドバタイズ時間間隔である。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。図2(b)において、送信処理時間および受信処理時間において、送信処理、受信処理を行う各チャネルを示している。
[処理シーケンス]
図3は、情報処理装置101から通信装置151がサポートしているアクセス制限のある機能にアクセスするためのシーケンスである。本実施形態では、図3の通信装置151がサポートしているアクセス制限のある機能の一例として、プリンタのリモートUI(Remote User Interface)という機能を挙げる。リモートUI機能とは、情報処理装置101のWebブラウザ(不図示)を使って通信装置151を管理するためのソフトウェア(機能)であり、情報処理装置101から通信装置151を遠隔管理できるサービスである。リモートUIには、例えば、プリンタの無線通信情報を変更する機能がある。つまり、情報処理装置がリモートUIを使ってプリンタの無線通信情報を変更すると、現在プリンタから通信できている装置に対して通信できなくなる可能性がある。そのため、任意の装置から設定の変更ができないようにアクセス制限をかける必要がある。ユーザは、リモートUIのサービスを使用するために通信装置151からリモートUIの表示用のパスワードを取得し、情報処理装置に表示されるリモートUIのパスワード入力画面に適切なパスワードを入力する必要がある。
なお、本実施形態ではアクセス制限のある機能の一例としてリモートUIを挙げているが、これに限定されず、ユーザ名で印刷可否を認証する機能などにも適用可能である。
図3を用いて本実施形態に係る処理シーケンスを説明する。なお、以下の処理シーケンスに係る各処理は、図1に示したハードウェア構成に基づき、情報処理装置101および通信装置151それぞれが備えるCPUがROM等に格納されたプログラムを読み出して実行することにより実現される。更には、各装置の近距離無線通信部を介して装置間の通信が行われる。
ユーザが印刷アプリケーションの画面を介してリモートUIを表示するための指示を入力した場合、S301にて、情報処理装置101は、通信装置151からのBLEのアドバタイズ情報を受信するための準備を行う。なお、BLEのアドバタイズ情報を受信するための準備は、アドバタイズ情報のサーチと言い換えることもできる。通信装置151は、定期的にBLEでアドバタイズ情報を発信しているものとする。
S302にて、情報処理装置101は、通信装置151から発信されたアドバタイズ情報を受信する。なお、BLEのアドバタイズ情報が受信可能な距離は、所定の範囲に限定されるため、情報処理装置101を携帯するユーザは、BLEのアドバタイズ情報を受信する際には、その範囲内となるように通信装置151に近づく必要がある。
アドバタイズ情報を受信すると、S303にて、情報処理装置101は、ペアリング処理を実行する。なお、ペアリング処理については図4、図7を用いて後述する。S303で情報処理装置101と通信装置151がペアリングされることにより、通信の安全性が確保されることとなる。なお、図7で後述するが、アドバタイズ情報を解析した結果、アドバタイズ情報を送信している通信装置が既にペアリング処理済みの通信装置である場合、S303が省略されてもよい。また、逆に、リモートUIを表示するための指示が入力された場合は、毎回、ペアリング処理を実行してもよい。
双方向の通信を行うために、S304にて、情報処理装置101は、BLE規格におけるGATT(Generic Attribute Profile)通信を要求し、以降はGATT通信が開始される。なお、GATT通信に用いられるプロファイルの構成については、特に限定するものではなくここでは説明を省略する。
S305にて、情報処理装置101は、GATT通信により、通信装置151がサポートしているサービス一覧を取得する。なお、サービス一覧の情報は、S305における処理の他、Wi−Fi通信でも取得できるが、それを実現するためには、情報処理装置101のWi−Fiの設定を変更する必要がある。アクセス制限がかかっているWi−Fiに接続するためには、更にWi−Fiのパスワードが必要となる。これに対し、BLEでは接続先を変更する必要がなく通信を行えるというメリットがあるため、ここではBLEを用いてサービス一覧の情報の送受信を行うものとする。
S306にて、情報処理装置101は、取得したサービス一覧の情報に基づき、通信装置151にリモートUIのパスワード取得サービスがあるか否かを判定する。ここでのパスワード取得サービスとは、ペアリングが行われた情報処理装置に対し、通信装置が提供する機能(ここでは、リモートUI)を利用する際のパスワード(認証情報)を提供するサービスである。なお、情報処理装置と通信装置との間で正常にペアリングが行われていない場合には、GATT通信自体が拒否されるため、パスワードの提供は行われない。パスワード取得サービスがない場合は(S306にてNO)、S308の処理へ進み、パスワード取得サービスがある場合は(S306にてYES)S307の処理へ進む。
情報処理装置101は、GATT通信により、パスワード取得要求を行った場合、S307にて、リモートUIのパスワードを通信装置151から取得する。その後、S309の処理へ進む。
通信装置151がサービス取得サービスを提供していない場合は、ユーザからリモートUIのパスワードを入力してもらう必要がある。そこで、S308にて、情報処理装置101は、パスワード入力画面(不図示)を表示して入力が行われるまで待機する。ユーザによりパスワードの入力が行われた場合には、S309の処理へ進む。一方、ユーザによりパスワードの入力が行われなかった場合、リモートUIの表示処理がキャンセルされる。
S309にて、情報処理装置101は、通信装置151にリモートUIを表示するリクエストを送信する。ここでのリクエストは、S307で通信装置151から取得したパスワード、または、S308でユーザから入力されたパスワードを含めて送信される。
S310にて、通信装置151は、情報処理装置101から受信したリクエストに含まれるパスワードが正しいか否かを判定する。
S311にて、通信装置151は、S310の判定結果を、リモートUIの表示のリクエストに対する応答として情報処理装置101へ送信する。ここでの応答としては、パスワードが正しい場合には認証成功としてリモートUIのアクセスを許可する旨の応答を行い、パスワードが不正である場合にはエラー(認証失敗)の値を返す。なお、アクセスを許可する場合には、通信装置151は、併せてリモートUIに関する情報を送信するようにしてもよい。
S312にて、情報処理装置101は、通信装置151から送信された応答の内容を確認し、アクセスを許可する旨の応答を得られたか否かを判定する。アクセスが許可されていた場合は(S312にてYES)S414の処理へ進み、エラーが返されていた場合には(S312にてNO)S313の処理へ進む。
S313にて、情報処理装置101は、パスワードが不正である旨(認証失敗)のエラーを、Webブラウザ等を介してユーザに提示し、次の処理が来るまで待機する。
S314にて、情報処理装置101は、リモートUIを表示する。なお、リモートUIの画面構成に関しては、図12に一例を示す。図12に示すリモートUIでは、通信装置151であるプリンタに関する各種情報を確認するための画面が表示されている。図12(a)は、プリンタの状態(インクレベル、電波強度、通信レベル)などが示されている。また、図12(b)では、プリンタのセキュリティに関する情報が示されている。
以上のように、本実施形態では、ペアリングが完了している通信装置151のアクセス制限がなされた機能にアクセスする際に、通信装置151がパスワード取得機能を提供しているか否かを確認する。そして、通信装置151がパスワード取得機能を提供している場合には、通信装置151からパスワードを取得することでユーザがアクセス制限のある機能のパスワードを入力しなくても、スムーズにアクセス制限のある機能を使用できる。また、情報処理装置101がアクセス制限のある機能(例えば、リモートUI)のパスワードをペアリング処理が実行される前に保持しているケースもある。このケースでは、ユーザが印刷アプリケーションを介してリモートUIの実行を指示した場合、情報処理装置101は、図7等を用いて後述するペアリング処理を実行する。そして、情報処理装置101は、保持されていたパスワードをペアリングの成功に応じて通信装置151に送信する。これにより、自動的にリモートUIが情報処理装置101において表示される。つまり、本実施形態により、ユーザの操作性を向上することが可能となる。
また、ペアリングが完了している通信装置151がパスワード取得機能を提供していることが明らかである場合には、通信装置151のサービス一覧を取得する必要がないため、S305、S306の処理を省略してもよい。本実施形態では、パスワード取得機能によりパスワードが取得でき、パスワードを情報処理装置101のユーザに入力してもらう必要がないため、S308の工程が不要となる。
以上の処理により、認証処理を要する装置の機能を利用する場合において、不要な確認画面や認証画面を表示させること無く、機能の利用に係る利便性を向上させることができる。
(ペアリング処理)
ここで、S303のペアリング処理の詳細について説明する。本実施形態では、前述のGATT通信を開始する前に、情報処理装置101と通信装置151間でPINコード認証によるペアリング処理を実施する。PINコード認証によるペアリングを実行していない状態で情報処理装置101が通信装置151にGATT通信を要求した場合(接続要求を実行した場合)には、通信装置151はGATT通信を許可しない構成とする。この構成により、ペアリングを行っていない情報処理装置が、通信装置が保持する情報を不用意に取得することを防ぐことができる。PINコード認証とは特定のユーザ(特定の情報処理装置)のみに情報の送受信を制限するために、予め決められた文字が双方で一致した場合のみ許可する認証方法である。
ペアリング処理の詳細について説明する。まず、情報処理装置101は、ユーザの指示に従って印刷アプリケーションを起動し、印刷アプリケーションによって表示される初期画面(ホーム画面(図6(b)))が表示部108に表示された場合、アドバタイズ情報のサーチを開始する。なお、アドバタイズ情報のサーチを開始するタイミングは、他のタイミングでも構わない。そして、情報処理装置101は、通信装置151とのペアリングを完了していない状態で、通信装置151から送信されるアドバタイズ情報を受信すると、ユーザにペアリングを促すための画面(不図示)を表示部108に表示する。そして、情報処理装置101は、ペアリングの実行をユーザに指示された場合、通信装置151に、ペアリング要求を送信する。
通信装置151は、情報処理装置101からペアリングの要求を受信すると、ペアリング処理を開始する。通信装置151は、ペアリングの要求を受けると、通信装置151の表示部(不図示)に図4(a)に示すようなPINコード表示画面400を表示する。PINコード表示画面400にはPINコード401が表示される。このPINコード401の値は、ペアリングの要求を行った情報処理装置とは別の情報処理装置に関連付けられていない値が発行される。Cancelボタン402が選択されると、通信装置151は、ペアリング処理をキャンセルする。このとき、発行したPINコードは破棄してもよいし、他の情報処理装置とのペアリングを行う際に再発行して用いてもよい。また、発行したPINコードに有効期限を設定してもよい。なお、PINコードの桁数等の方式については、図4に示す例に限定するものではなく、他の方式であってもよい。
情報処理装置101は、上述したように通信装置151にペアリング要求を送信した場合、図4(b)に示すようなPINコード入力画面410を表示部108に表示する。ユーザは、PINコード入力画面410のPINコード入力領域411に、通信装置151が発行したPINコード(図4の例では「1111」)を入力し、OKボタン412を選択することで、情報処理装置101がPINコードを受け付ける。Cancelボタン413が選択されると、情報処理装置101はペアリング処理をキャンセルする。情報処理装置101がPINコードを受け付けた場合もしくはペアリング処理がキャンセルされた場合、通信装置151のPINコード表示画面400は非表示にされ、元の画面に遷移する。なお、情報処理装置101は、PINコードを受け付けて、かつ、OKボタン412が押下された場合、PINコード入力領域411に入力されたPINコードを含む情報を通信装置151に送信する。
通信装置151は、受信した情報に含まれるPINコードが、PINコード表示画面400に表示したPINコード401と一致するか否かを判定する。判定の結果、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード401を基に所定の方法で作成されたリンクキーを作成し、BLEのSMP(Security Manager Protocol)を利用して情報処理装置101へ送信する。情報処理装置101は、通信装置151から受信したリンクキーを外部記憶装置106に保存する。また、通信装置151は、作成したリンクキーをROM152に保存する。なお、本実施形態では、情報処理装置101と通信装置151の両者が、同じリンクキーを保存するが、互いのリンクキーが関連づいていれば異なるリンクキーが保存されてもよい。これによりペアリングが完了し、以降、情報処理装置101と通信装置151間でのBLE通信が許可される。ペアリング完了後、情報処理装置101が通信装置151に対してGATT通信の要求する際に(例えば、図3のS304)、保存したリンクキーを通知する。そして、通信装置151は保存したリンクキーと、情報処理装置101から通知されたリンクキーを比較し、ペアリング済みの装置であるかを確認する。
ペアリング済みと確認できた場合は、通信装置151は、情報処理装置101とのGATT通信を開始する。なお、固定のPINコードにすることで、ユーザのPINコードの入力を省略してもよい。また、ペアリングが完了した後、所定の時間が経過した場合には、ペアリングを解除し、リンクキーを破棄するようにしてもよい。また、本実施形態ではPINコードによるペアリングを説明したがそれに限らない。例えば、PINコードなしでペアリングを実施してもよい。その場合には、GATT通信のデータを暗号化するようにしてもよい。暗号のキーは、PINコードの代わりに、暗号キーを表示または入力するようにすることで、通信装置151の表示部(不図示)を確認できるユーザのみに解読可能な通信を実現することができる。
図5(a)は、アドバタイズ情報の内、ペイロード部分を示す図である。アドバタイズペイロード500は、アドバタイズアドレス(「AdvA」と表記)と、アドバタイズデータ(「AdvData」と表記)で構成される。アドバタイズアドレスは、本実施形態において、通信装置151に対して固有に割り当てたられた情報とする。一方、アドバタイズデータはさらに、複数のアドバタイズ構造領域(「AD_Structure」と表記)を含み、データ値が所定の容量に満たない場合は「0」でパディングを行う。アドバタイズ構造領域501は、当該領域のデータ長(「Length」と表記)、アドバタイズタイプ(「AD Type」と表記)、実データ(「Data」と表記)で構成される。
図5(b)は、本実施形態に係るアドバタイズ構造領域に格納されるデータ503を示す。データ503において、octetは、各構成要素(Length、AD Type、Data)のデータ長をoctet単位(1octetは8bitを意味する)で示す。valueは、データ値を示す。value内の“0x”は、値が16進数であることを意味する。descriptionは、各データの説明を記載している。本実施形態では、3つのアドバタイズ構造領域(「AD Structure1」、「AD Structure2」、「AD Structure3」と表記)を格納している。本実施形態における3つのアドバタイズ構造領域はそれぞれ異なるデータが格納される。AD Structure1については、BLEのデータフォーマットであるため、説明を割愛する。AD Structure2には、通信装置151の固有の情報を格納する。Lengthは、AD Structure2のAD TypeとDataのデータ長の和が7octetであることを示す。AD Typeは、Data内の情報の意味を示す。図5(b)の例では、「0xFF」という値を通信装置151の固有情報と定義している。
Dataは、特定情報および機能と状態の情報(以下、通信装置特定情報)を格納している。通信装置特定情報の具体例としては、通信装置の製造メーカに関する情報や、家庭向けやオフィス向けなど用途が異なる通信装置を区別するための情報である。Dataはさらに、通信装置の機能および状態を格納する。通信装置の機能および状態の情報504は、バイト配列で格納されている。本実施形態では、1octet目に、通信装置がプリント機能を有しているか否かを示す値がセットされる。通信装置がプリント機能を有している場合、valueは「1」となる。通信装置がプリント機能を有していない場合、valueは「0」となる。例えば、通信装置151はプリントエンジン155を有しているため、1octet目のvalueは「1」となる。また、通信装置151にエラーが発生している場合には2octet目のvalueが「1」となり、エラー状態でない場合には「0」となる。例えば、プリントエンジン155にて印刷中に通信装置のインクが無くなった場合にはインクの交換が必要とり、印刷不可やインク交換されるまで印刷が待ちの状態となる。その場合には、2octet目のvalueが「1」となる。16octet目にはページ番号を格納する。なお、図5(b)の例では、16octet目のvalueは「0」となっているが、「1」にした場合には他のoctetの情報が異なる。例えば、ページ番号が「0」の場合、1octet目はプリント機能の有無であるが、ページ番号が「1」の場合には1octet目は他の情報を格納することができる。このようにアドバタイズ情報に格納できるサイズに制限がある場合でも、ページ番号を変えることで他の情報も送信することができる。
なお、アドバタイズ構造領域に格納するデータの内容およびデータの構造はこれに限るものではない。例えば、製造メーカや通信装置の機器および状態情報の組み合わせを一意に識別可能な番号であるUUID(Universally Unique Identifier)を予め定義する。そして、通信装置151が状態などに応じて、定義したUUIDを選択し、アドバタイズ構造領域に格納してアドバタイズを実施してもよい。本実施形態では、UUIDを組み合わせにより複製定義することで、他の通信装置が発信するアドバタイズ情報内のUUIDとの一致(衝突現象)を避けている。衝突現象が発生した場合、他の通信装置のアドバタイズ情報を情報処理装置101が処理することで生じる誤動作が発生する。
AD Structure3には、通信装置の名称を格納する。通信装置の名称は装置ごとに異なるため、データ長は可変である。Lengthは、AD Structure3のAD TypeとDataのデータ長の和が9octetであることを示す。AD Typeは、Data内の情報の意味を示す。図5(b)の例では、「0x09」という値を通信装置151の名称と定義している。Dataは、通信装置の名称となる。図5(b)の例では、通信装置の名称は「PrinterA」となる。
通信装置によるアドバタイズ情報は、図2(b)にて説明したように定期的に送信されているものとする。アドバタイズ情報のデータの内容は、前述したように通信装置の状態に応じて変更する。なお、アドバタイズ情報の送信は定期的に行われることに限るものではない。例えば、通信装置151の入力インタフェース(不図示)を介してユーザ操作が行われた時など、特定の条件に合致した場合のみアドバタイズ情報を送信するように構成されてもよい。
以下、ペアリング処理を実施するタイミングについて説明する。本実施形態では、印刷実行機能を提供する印刷アプリケーションの特定の画面に遷移した際に実行する。まず、アプリケーションの画面について説明する。
情報処理装置101は、印刷アプリケーションを起動するように、入力インタフェース102を介してユーザから指示を受ける。情報処理装置101は、印刷アプリケーションを起動する。なお、以降では通信装置151を、印刷機能を備えたプリンタと表記して説明を行う。
図6は、情報処理装置101の表示部108を介してユーザに表示される印刷アプリケーションの画面遷移を示す。図6(a)に示す使用許諾契約画面600は、ユーザに印刷アプリケーションを使用する際に順守する条件などを確認するための画面である。ユーザは、使用許諾契契約文601の内容を確認して、同意するか否かを選択する。同意しない場合、ユーザはボタン603を選択することで、印刷アプリケーションは終了する。同意する場合、ユーザがボタン602を選択すると、図6(b)に示すメイン画面604に遷移する。なお、ペアリング処理が実行されていない場合、印刷アプリケーションにおいて所定のボタンが押下されたタイミングで情報処理装置101はアドバタイズ情報のサーチを実行する。所定のボタンとして、例えば、上述したように印刷アプリケーションの画面においてリモートUIの表示ボタン、図6(b)の画像印刷ボタン605、文書印刷ボタン606がある。その他、所定のボタンが、図6(d)の印刷設定ボタン616でもよい。
メイン画面604は、印刷アプリケーションの主な機能を一覧表示する。印刷対象が、情報処理装置101の外部記憶装置106などに格納された画像データである場合、ユーザは、画像印刷ボタン605を選択する。画像印刷ボタン605が選択されると、表示画面は、図6(d)に示す画像選択画面613に遷移する。印刷対象が文書データである場合、ユーザは、文書印刷ボタン606を選択する。文書印刷ボタン606が選択されると、表示画面は、文書選択画面(不図示)に遷移する。
印刷アプリケーションは、無線通信ネットワーク内においてプリンタを特定するために、プリンタの特定情報や機能情報などを登録することが可能である。ここで、プリンタを特定するための情報として、プリンタの識別情報(MACアドレス)、IPアドレス、プリンタの名称などが挙げられる。また、プリンタの機能情報とは、印刷可能な用紙種リストや両面印刷機能の有無といったプリンタの性能などに関する情報などの情報が挙げられる。印刷アプリケーションがこの特定情報と機能情報を登録する処理を行うことで、これらの情報を関連付けて外部記憶装置106に保存する。このような登録処理が実行されたプリンタのことを「登録プリンタ」と呼び、プリント処理を実行するプリンタのことを「カレントプリンタ」と呼ぶ。なお、本実施形態では説明を割愛するが、複数のプリンタを登録することも可能とする。その場合、ユーザは、プリント処理を実行する前に、複数の登録プリンタの中からカレントプリンタを選択する。もちろん、登録プリンタが1つであればそのプリンタがカレントプリンタとなる。
プリンタを登録する場合、ユーザは、図6(b)に示すメイン画面604に備えられたプリンタ登録ボタン607を選択する。プリンタ登録ボタン607が選択されると、図6(c)に示すプリンタ登録画面608に遷移する。プリンタ登録画面608に遷移すると、印刷アプリケーションは、無線通信ネットワーク内に接続されたプリンタを検索する処理を実行する。その後、印刷アプリケーションは、見つかったプリンタをリスト形式で表示する。ここでは、特定情報に含まれるプリンタの名称で表示している。プリンタ登録画面608にリストアップされたプリンタ群から登録したいプリンタをユーザが選択することで登録プリンタが決定される。登録プリンタは複数選択することも可能である。
プリンタ登録画面608において、アクセスポイント名609として現在情報処理装置が接続中のアクセスポイント131のSSID(Service Set Identifier)が表示される。ここでは簡便のため、「アクセスポイントA」として示している。ダイアログ610は、当該画面で実行中の処理を明示する内容を表示する。例えば、検索処理が行われている最中は、検索中である旨のメッセージがダイアログ610に表示される。ダイアログ610の表示中はその他の領域が暗転し、操作できない状態となる。検索が終了すると、ダイアログ610は非表示となり、その他の領域が明転し、他のボタン選択などのユーザ操作が行えるようになる。プリンタ検索の結果は、検索結果一覧611に表示される。図6(c)の例では検索された二台のプリンタ(ここでは、「PrinterA」と「PrinterB」)が表示されている。つまり、アクセスポイントAには「PrinterA」と「PrinterB」が接続中である。ユーザはリストアップされたプリンタを選択して登録指示を入力することで、印刷アプリケーションは、選択されたプリンタを登録プリンタとして登録し、前画面のメイン画面604に遷移する。なお、本実施形態では登録プリンタは一台のみ可能とし、選択プリンタがカレントプリンタとなる。例えば、PrinterA612が選択された場合、これがカレントプリンタとなる。また、複数のプリンタが選択された場合、選択順序によってカレントプリンタが決定されてもよい。
メイン画面604にて、画像印刷ボタン605が選択されると、図6(d)に示す画像選択画面613に遷移する。画像選択画面613では情報処理装置101の外部記憶装置106に格納された画像データのサムネイル画像が表示され、ユーザがサムネイル画像を選択することで、印刷対象の画像を選択することができる。印刷対象として選択された画像に対しては、印刷対象を示すチェックマーク615がサムネイル上に表示される。ユーザが画像を選択し、印刷設定ボタン616を選択すると、図6(e)に示す印刷設定画面617に遷移する。
印刷設定画面617のサムネイル表示領域618には、画像選択画面613にて選択された印刷対象の画像のサムネイルが表示される。プリンタ名表示領域619には、カレントプリンタのプリンタ名を表示する。プリンタ名は、カレントプリンタに関連付けて保存されている通信装置特定情報に含まれる名称が表示される。なお、登録プリンタが複数ある場合には、プリンタ選択画面(不図示)などを介してユーザによって選択された登録プリンタの名称をカレントプリンタとして表示する。印刷条件表示領域620には、印刷を実行する際の印刷条件が表示される。ユーザは、印刷条件を、例えば、印刷条件変更画面(不図示)で適宜変更できるものとする。ユーザは、印刷開始を印刷アプリケーションに指示する際には、印刷開始ボタン621を選択する。これにより、印刷動作が開始され、画面は図6(f)に示す印刷中画面622に遷移する。
印刷中画面622が表示されている際に、印刷アプリケーションは、カレントプリンタ(ここではPrinterA)に対して、ユーザが選択した印刷対象の画像を、印刷条件表示領域で表示した印刷条件で印刷処理する指示を送信する。印刷中画面622の印刷中画像623には、印刷対象画像のうち、現在プリンタによって印刷中の画像が表示される。メッセージ624には、印刷の進捗やステータスが表示される。例えば、印刷中になんらかの問題が生じ、印刷が継続できなかったり、中止になったりした場合には、ユーザにその状態を伝えるために、その内容がメッセージ624に表示される。キャンセルボタン625がユーザにより選択されると、印刷を中止し、前画面の印刷設定画面617に遷移する。なお、キャンセルボタン625が選択された際には、その旨のメッセージや、印刷が完了/未完了の画像の情報を表示してもよい。また、メイン画面604に遷移するようにしてもよい。
図7は、印刷アプリケーションが実施するペアリング処理のフローチャートを示す。本処理は、印刷アプリケーションが起動した直後に情報処理装置101によって実行される。つまり、情報処理装置101のCPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。なお、上述したように印刷アプリケーションにおいて所定のボタンが押下されたタイミングで、図7に示すペアリング処理が開始される。
S700にて、情報処理装置101は、プリンタが発信したアドバタイズ情報を受信し、印刷アプリケーションに受信したことを通知する。その際、アドバタイズ情報内に格納されたアドバタイズペイロード500も印刷アプリケーションに渡す。なお、情報処理装置101が、複数の通信装置からアドバタイズ情報を受信した場合、複数の通信装置の中から所望の通信装置を選択するための選択画面を表示する。そして、情報処理装置101は、選択画面を介して選択された通信装置と以降のペアリング処理を実行する。
印刷アプリケーションがアドバタイズ情報を受信すると、S701にて、情報処理装置101は、ペアリングを実施することが可能か否かを確認する。ここでの確認について、図6の印刷アプリケーションの画面を用いて説明する。各画面の中で、印刷アプリケーションがユーザに確認を行わせる状態であったり、何らかの処理を実行中の状態であったりする。その場合にはペアリングを実施しない。具体的には、使用許諾契約画面600を表示中の場合には、使用許諾契約を同意するまで印刷アプリケーションの使用を許可しないため、アドバタイズ情報を受けても、ペアリング処理を実行しない。また、プリンタ登録画面608は、本実施形態では、画面遷移時にプリンタ検索処理を実行するため、プリンタ検索中のダイアログ610を表示中にペアリング処理も実行すると、複数のダイアログが表示されるなどユーザ操作が複雑となる。そのため、ダイアログ610が表示されている最中はペアリング処理を実行しない。一方、プリンタ検索処理が終了し、ダイアログ610が非表示になると、ペアリング処理実行可と判定する。ペアリング実施可能と判定した場合(S701にてYES)、S702に遷移し、実施不可である場合は(S701にてNO)本処理フローを終了する。なお、ここで実施不可である場合には、所定の時間待機し、再度、S701の判定を行うようにしてもよい。
S702にて、情報処理装置101は、受信したアドバタイズ情報の解析を行う。アドバタイズ情報の解析として、前述したアドバタイズ構造領域に格納したデータ503が解析される。
S703にて、情報処理装置101は、アドバタイズ情報の解析結果により、印刷アプリケーションが処理可能な特定のアドバタイズ情報を受信したか否かを判定する。本実施形態では、ここでの判定において前述の通信装置特定情報を使用する。上述したように、通信装置特定情報には、製造メーカを示す情報や、家庭向けもしくはオフィス向けといった機能を示す情報を格納している。印刷アプリケーションが家庭向けのプリンタに対応したアプリケーションの場合、通信装置特定情報にオフィス向けという情報が格納されていると、ペアリング処理を実行しないと判定する。家庭向けのプリンタという情報が格納されている場合はペアリングを実施すると判定する。
なお、本実施形態では、ここでの判定処理において、通信装置特定情報による判定を説明したが、これに限るものではない。例えば、アドバタイズ情報の通信装置名にて印刷アプリケーションが対応した特定の名前のプリンタのみペアリングを実施すると判定してもよい。また、通信装置の機能および状態の情報504にてペアリングの実施を判定してもよい。例えば、通信装置が印刷機能を有していない場合は、印刷アプリケーションではペアリングを実施不可と判定する。また、プリンタがエラー状態にあり、かつ情報処理装置にプリンタのエラー情報を扱うアプリケーションがインストールされている場合には、印刷アプリケーションはペアリングを実施しない。そして、印刷アプリケーションは、エラー情報を扱うアプリケーションにユーザを誘導するようにしてもよい。印刷アプリケーションが扱うことが可能なアドバタイズ情報を受信したと判定した場合には(S703にてYES)S704に遷移し、扱うことができないアドバタイズ情報を受信したと判定した場合には(S703にてNO)本処理フローを終了する。
S704にて、情報処理装置101は、過去にペアリングしたことがある通信装置のリストを取得する。なお、この情報(リスト)は、情報処理装置101がペアリングを行った際に、履歴として外部記憶装置106等に記憶しておくものとする。ここでのリストには、正常にペアリングが完了した履歴に加え、ペアリングが失敗した履歴も保持するようにしてもよい。
S705にて、情報処理装置101は、アドバタイズ情報を発信した通信装置151とのペアリングが完了済みであるか否かを確認する。具体的には、S704で取得したリストにS702の解析結果である通信装置の情報が含まれるか否かを判定することでS705が実現される。ペアリング済みでない場合は(S705にてNO)S706へ遷移し、既にペアリング済みである場合は(S705にてYES)本処理フローを終了する。S705にてペアリング済みを確認することにより、後述する確認ダイアログ800の不要な表示および確認を省略することができる。
S706にて、情報処理装置101は、アドバタイズ情報を発信している通信装置151が登録プリンタであるか否かを確認する。登録プリンタである場合には(S706にてYES)ペアリングの実施確認を行わずにS708へ進み、登録プリンタでない場合は(S706にてNO)S707へ進む。ここで、登録プリンタは、印刷アプリケーションで利用するプリンタとしてユーザが登録しているプリンタであるため、ペアリングの実施確認をする必要がない。この構成により、不要な実施確認を行う必要が無くなり、ユーザの手間を削減することができる。
S707にて、情報処理装置101は、ユーザにペアリングを実施するか否かを確認する。BLEのアドバタイズは、特性上、不特定多数のユーザが有する端末装置が受信してしまう。そこで、ユーザが所有もしくは利用するプリンタであるかを確認する目的でペアリングの実施確認を行う。実施確認の際に、情報処理装置101は、図8に示す確認ダイアログ800を表示部108にて表示する。確認ダイアログ800では、プリンタの名前801(ここでは、PrinterA)を表示する。ユーザは、確認ダイアログ800の内容を確認し、ペアリング対象が所望するプリンタであるかを確認する。ユーザによりボタン802が選択されると、情報処理装置101は、ペアリングを実行すると判定し(S707にてYES)、S708へ遷移する。一方、ユーザによりボタン803が選択されると、情報処理装置101は、ペアリングを実行しないと判定し(S707にてNO)、本処理フローを終了する。
S708にて、情報処理装置101は、ペアリングを実行する。ここでの処理は、図4を用いて説明した内容となる。その後、本処理フローを終了する。
(ハンドオーバー処理)
続いて、ペアリング後のGATT通信を経てWi−Fi接続が開始され、印刷ジョブが送信されるまでの処理(ハンドオーバー処理)について図11を用いて説明する。
図11は、情報処理装置101と通信装置151とが、BLE通信方式によってネットワーク接続を行う場合のシーケンス図である。ここでは、ハンドオーバーによって印刷ジョブの送受信を行う場合を例にして説明する。なお、ハンドオーバーとは、通信を行うそれぞれの装置が、まず近距離通信方式を用いて、高速通信方式による通信を行うための接続情報をやり取りした後、高速通信方式に切り替えてデータの送受信を行う技術である。本実施形態では、近距離通信方式としてBLEを用い、高速通信方式としてWi−Fi(登録商標)を用いる。
GATT通信(装置間でBLE接続を確立することによって可能となる双方向通信)の通信速度は、Wi−Fi通信と比較して低速である。そのため、GATT通信では装置間の認証やWi−Fi通信のための接続情報のやり取り等を行い、通信速度の速いWi−Fi通信では容量の多いデータ(ここでは印刷ジョブ)の転送を行う。これにより、効率的なデータ転送を図ることができる。なお、ハンドオーバーにおいて利用される通信方式は、上述の形態に限定されず、近距離通信方式及び高速通信方式として種々の通信方式が利用されてよい。例えば、NFC通信やWi−Fi Aware通信にてWi−Fi通信のための接続情報をやり取りし、その後Wi−Fi通信にてデータのやり取りを行うような構成としてもよい。
なお、この処理シーケンスが示す通信装置151の処理は、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、この処理シーケンスが示す情報処理装置101の処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。
以下の説明において、通信装置151は、所定の間隔でアドバタイズ情報を送信するアドバタイザであるとする。また、情報処理装置101は、周辺にあるアドバタイザから送信されるアドバタイズ情報を待ち受けるスキャナであるとする。まず、近距離無線通信部157は、アドバタイズ情報の送信を行う(S1101〜S1103)。上記にて述べたように、ここでのアドバタイズ情報の送信は、予め設定されたアドバタイズ間隔にて送信されているものとする。
情報処理装置101の近距離無線通信部110は、印刷アプリケーションにおける画像印刷ボタン605、文書印刷ボタン606が押下された場合、近距離無線通信部157から送信されたアドバタイズ情報のサーチを開始する。これにより、通信装置151の存在を認識することができる。なお、アドバタイズ情報のサーチを開始するタイミングは、上述したように他のタイミングでも構わない。例えば、図6(d)において画像が選択されたタイミングでも構わない。また、図11の処理を開始する前にペアリングが完了していない場合、このタイミングで上述したペアリング処理が実行される。
S1104にて、情報処理装置101は、通信装置151を認識し、通信装置151と接続することを決定したら、接続要求情報を通信装置151に送信する。具体的には、情報処理装置101は、アドバタイズ情報に含まれる通信装置151の名称等を表示し、接続を開始するか否かをユーザに問い合わせる。ここでユーザが通信装置151との接続開始を指示した場合、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する。
通信装置151の近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントに遷移する準備をする。具体的には、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にGATT通信のための接続処理が完了した旨を通知する。その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザからマスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。なお、BLE規格では、マスタは、スレーブと「1:多」のスター型のトポロジーを形成することができる。情報処理装置101と通信装置151は、BLE接続を確立したら、以後、GATT通信方式によってデータ通信を行うことができる。
BLE接続が確立された後、S1105にて、近距離無線通信部110は、近距離無線通信部157に対して、通信装置151が利用可能な通信プロトコルの情報を要求する。この要求には情報処理装置101が利用可能な通信プロトコルの情報が含まれており、近距離無線通信部157は、この要求を受信することで、情報処理装置101がWi−Fi(登録商標)等の通信方式を利用可能であることを認識することができる。近距離無線通信部157は、S1106において、S1105で受け取った要求に対して、自身の利用可能な通信プロトコルの情報を応答する。これによって互いの装置は、BLE以外の互いの利用可能な通信プロトコルを把握することができる。
BLE以外の互いの利用可能な通信プロトコルを把握することにより、装置間の通信をWi−Fi通信に切り替えることが情報処理装置101によって決定されたとする。なお、このとき、通信方式の切り替えを行うか否かは通信装置151が決定してもよい。通信方式の切り替えが決定された場合、S1107およびS1108にて、各装置は、通信相手を特定するアドレスの情報やSSIDの情報等の、Wi−Fiで通信を行うために必要な通信情報を交換する。
S1109にて、情報処理装置101の近距離無線通信部110は、装置間の通信方式をGATT通信からWi−Fi通信へと切り替える要求(通信切り替え要求)を送信する。切り替えの要求を受信すると、S1110にて、通信装置151の近距離無線通信部157は、応答を行う。
切り替えの要求と応答が正しく行われたら、S1111にて、情報処理装置101は、通信装置151との通信に利用する通信部を近距離無線通信部110から通信部109へ切り替える。同様に、切り替えの要求と応答が正しく行われたら、S1112にて、通信装置151は、情報処理装置101との通信に利用する通信部を近距離無線通信部157から通信部156へ切り替える。
通信部の切り替えを行った後、S1113にて、情報処理装置101の近距離無線通信部110は解放要求を送信する。解放要求を受け取ると、S1114にて、近距離無線通信部157は、解放応答を送信し、装置間のBLE接続(GATT通信)を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151はそれぞれスキャナとアドバタイザに戻り、近距離無線通信部157は、アドバタイズ情報の送信を再開する。
その後、それぞれの装置は、S1107およびS1108で交換したWi−Fi通信を行うために必要な情報を利用し、Wi−Fi通信を行う。まず、S1115にて、通信部109は、通信装置151が印刷ジョブの取得が可能かどうか通信部156に確認をする。ここでは、例えば、通信装置151に転送しようとする画像を一時保存するための空き容量の情報などが確認される。確認の要求を受け取った後、S1116にて、通信部156は、確認に対する応答を送信する。
正しい応答が得られ、通信装置151がジョブの取得が可能であると判断した場合、S1117にて、通信部156は、情報処理装置101に対してジョブを要求する。その後、ジョブの要求を受けた通信部109は、S1118にて情報処理装置101に存在する画像データ等を含む印刷ジョブを通信部156に対して送信する。なお、このとき送信する印刷ジョブの選択は、例えば、BLE接続が確立する前やBLE接続が確立した後、Wi−Fi接続が確立した後等のタイミングで行われる。
また、送信されるジョブは、印刷ジョブに限らず、例えば、通信装置151にスキャンを指示するためのスキャンジョブや情報処理装置101が通信装置151の状態の情報を取得するためのジョブ等であってもよい。また、例えば通信装置151の設定の変更等、通信装置151に対する各種操作を実行するためのコマンド等であってもよい。
情報処理装置101は、ジョブの送信が完了した場合、通信装置151とのWi−Fi接続を切断して、ハンドオーバー直前のネットワーク状態に戻る。具体的には、例えば情報処理装置101は、ハンドオーバーを実行する前に、3GやLTE等の移動体通信網やルーター等のアクセスポイントに接続していた場合は、当該移動体通信網やアクセスポイントへの接続を再度確立する。そのため、情報処理装置101は、ハンドオーバーを実行する前に、ハンドオーバー直前のネットワーク状態の情報及び、当該ネットワーク情報を確立するために必要な通信情報等を保持しておく。
このように、ハンドオーバー技術を用いることで、ユーザビリティの高い通信方式(近距離通信方式)によって、高速通信方式で通信するための接続情報をやり取りし、その後、高速通信方式によって、容量の大きいデータのやり取りを高速で行うことができる。なお、ハンドオーバーによってGATT通信からWi−Fi通信へ通信方式の切り替えが行われた場合、装置間のBLE接続は切断されるため、近距離無線通信部157は、アドバタイズ情報の送信を再開する。
なお、本実施形態では、ペアリング処理(および、ペアリング処理を行うか否かの判定処理)を印刷アプリケーションが起動した直後に実行するように説明したが、これに限られるものではない。例えば、印刷アプリケーションの画面遷移時や画面内の特定の動作を実行した場合に、ペアリング処理を実行してもよい。
<第2の実施形態>
第1の実施形態では、アクセス制限のある機能にアクセスするために、事前にBLEのGATT通信により、機能を利用するためのパスワードを取得し、個別にパスワードを入力せずに機能を利用する方法について説明した。しかし、このパスワードが制限なく取得できてしまうと、アクセス制限のある機能を容易に使用できてしまうため、第1の実施形態ではペアリングでPINコードを入力することによってパスワードの取得可能対象を限定している。
本実施形態では、PINコードとは異なる方法でアクセス制限のある機能を使用することができる形態について図9、および図10を用いて説明する。なお、第1の実施形態と重複する構成については説明を省略する。また、本実施形態においても、通信装置151が提供する機能としてリモートUIを例に挙げて説明するが、これに限定するものではない。
[処理シーケンス]
図9は、リモートUIの表示を実行する前に行われる処理である。本処理は情報処理装置101と通信装置151がBLEにより通信できたタイミングで、情報処理装置101のMACアドレスを通信装置151に登録するシーケンスである。なお、以下の処理シーケンスに係る各処理は、図1に示したハードウェア構成に基づき、情報処理装置101および通信装置151それぞれが備えるCPUがROM等に格納されたプログラムを読み出して実行することにより実現される。更には、各装置の近距離無線通信部を介して装置間の通信が行われる。
S901にて、情報処理装置101は、通信装置151から発信されたアドバタイズ情報を受信する。なお、BLEのアドバタイズ情報が受信可能な距離は、所定の範囲に限定されるため、情報処理装置101を携帯するユーザは、BLEのアドバタイズ情報を受信する際には、その範囲内となるように通信装置151に近づく必要がある。
S902にて、情報処理装置101は、ペアリング処理を実行する。ペアリング処理については、第1の実施形態にて述べた処理と同様である。
S902にてペアリングが終了した後、S903にて、情報処理装置101は、BLE規格におけるGATT通信を通信装置151に要求し、以降はGATT通信が行われる。なお、GATT通信に用いられるプロファイルの構成については、特に限定するものではなくここでは説明を省略する。
S904にて、情報処理装置101は、自身のMACアドレスを取得する。MACアドレスは、情報処理装置101内で管理されているものとする。
S905にて、情報処理装置101は、GATT通信により、S904で取得したMACアドレスを通信装置151に送信する。
S906にて、通信装置151は、情報処理装置101から受信したMACアドレスを保存する。ここでの保存先としては、例えば、通信装置151が備える記憶領域(RAM153等)が該当する。
S907にて、通信装置151は、GATT通信により、MACアドレスの保存処理の結果を情報処理装置101に通知する。このとき、情報処理装置101は、保存処理の結果がエラーを示していた場合、MACアドレスの送信をリトライするようにしてもよいし、失敗した旨をユーザに通知するようにしてもよい。
図9の処理により、通信装置151は、情報処理装置101によるリモートUIの表示の実行前に、情報処理装置101のMACアドレスを保持することができる。
図10は、図9の処理が実行された後に、アクセス制限されている機能(プリンタのリモートUI)を実行するシーケンスを示す。なお、以下の処理シーケンスに係る各処理は、図1に示したハードウェア構成に基づき、情報処理装置101および通信装置151それぞれが備えるCPUがROM等に格納されたプログラムを読み出して実行することにより実現される。更には、各装置の近距離無線通信部を介して装置間の通信が行われる。
S1001にて、情報処理装置101は、印刷アプリケーションにおいてリモートUIの表示指示が入力された場合、通信装置151からのBLEのアドバタイズ情報を受信するための準備を行う。
S1002にて、情報処理装置101は、通信装置151から発信されたアドバタイズ情報を受信する。
アドバタイズ情報を受信すると、S1003にて、情報処理装置101は、GATT通信を通信装置151に要求し、GATT通信が開始される。
S1004にて、情報処理装置101は、自身のMACアドレスを取得する。
S1005にて、情報処理装置101は、GATT通信により、通信装置151へS1004にて取得したMACアドレスを送信する。
S1006にて、通信装置151は、S1005にて情報処理装置101から受信したMACアドレスが既に登録されているか否かを判定する。ここでの判定は、図9の処理により保存されたMACアドレスに基づいて行われる。
S1007にて、通信装置151は、GATT通信により、S1006の判定結果を情報処理装置101へ送信する。ここで送信される判定結果としては、MACアドレスが登録されていた場合には認証成功としてリモートUIのアクセスを許可する旨の応答を行い、MACアドレスが登録されていなかった場合にはエラー(認証失敗)の値を返す。なお、アクセスを許可する場合には、通信装置151は、併せてリモートUIに関する情報を送信するようにしてもよい。
S1008にて、情報処理装置101は、S1007にて通信装置151から受信した内容に基づき、アクセスを許可する旨の応答を得られたか否かを判定する。アクセスが許可されていた場合は(S1008にてYES)S1010の処理へ進み、エラーが返されていた場合には(S1008にてNO)S1009の処理へ進む。
S1009にて、情報処理装置101は、エラーを表示部108に表示し、次の処理が来るまで待機する。
S1010にて、情報処理装置101は、リモートUIを表示する。なお、リモートUIの画面構成に関しては、特に限定するものではないため、ここでは説明を省略する。
以上、本実施形態では、アクセス制限のある機能(ここでは、リモートUI)にアクセスするために、事前のBLE通信で信用できる情報処理装置のMACアドレスを通信装置に登録する。これにより、実際にアクセス制限のある機能を使用する際に、パスワードを必要とせずにアクセス制限のある機能を使用できるようになる。その結果、ユーザの利便性が向上する。
なお、本実施形態では、ネットワークデバイス固有の識別情報であるMACアドレスを用いた例を示したが、これに限定するものでは無い。情報処理装置を一意に識別可能な情報であれば、他の情報を用いても構わない。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。