以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、以下に説明する実施形態では、本発明に係る情報処理装置の一例として複合機(MFP)を例に説明する。しかし本発明に係る情報処理装置は、このような複合機に限定されるものでなく、例えばプリンタ、スキャナ、ファクシミリなどの通信装置、PC等の情報機器などにも適用できる。
[実施形態1]
図1は、本発明の実施形態1に係る通信システムの構成例を示す図である。
この通信システムには、複数のMFP(多機能処理装置)と複数の携帯端末が存在し、例えば、各ユーザが自分の携帯端末を所持し、常にそれを携帯しているオフィス環境を想定する。各MFPは、コピー、ファクシミリの送受信、スキャン、ボックス、送信、印刷機能などを有しており、オフィス環境に応じて設置される。図1のシステムでは、MFP101と携帯端末102、携帯端末103が示されているが、これら機器の数は、これに限定されない。
携帯端末101と携帯端末102はそれぞれ別のユーザによって所有される。MFP101は、ネットワーク(LAN)104に接続されており、LAN104を介して、LAN104に接続されている他の端末と相互に通信を行うことができる。同様に、携帯端末102及び携帯端末103は、無線ルータ105を介してLAN104に接続可能で、LAN104に接続された他の端末と相互に無線通信を行うことができる。また、MFP101や携帯端末102,103は、近距離無線通信機能としてBluetooth(登録商標)通信機能を備えており、Bluetoothの電波の届く範囲において、相互に接続して通信を行うことができる。
図2は、実施形態1に係るMFP101と携帯端末102のハードウェア構成を説明するブロック図である。尚、携帯端末103のハードウェア構成も携帯端末102と同じであるため、その説明を省略する。
まず、MFP101のハードウェア構成を説明する。
CPU201は、MFP101全体の動作を制御する。CPU201は、ROM202に記憶された制御プログラムを読み出して読取制御や印刷制御、送信制御などの各種制御を行う。RAM203は、CPU201が各種プログラムを実行する際にワークエリア等として使用される揮発性のメモリである。HDD204は、画像データや各種プログラムを記憶する。操作部205は、ユーザの指で操作可能なタッチパネルとして動作する表示部やハードキー等を備える。プリンタ206は、内部バス221を介して転送された画像データに従ってシートに画像を印刷する。スキャナ207は、原稿上の画像を読み取って画像データを生成する。ICカードリーダ208は、ユーザの認証のために、ユーザが所有するICカードを読み取る。BluetoothI/F209は、Bluetooth規格で無線通信を行うインタフェースであり、BluetoothI/Fを持つ他の機器と相互に無線通信を行う。実施形態1では、MFP101は携帯端末102,103とBluetooth規格により相互に通信を行うことができる。ネットワークI/F210は、LAN104と接続するためのNIC(Network Interface Card)を有する。タイマ223は、CPU201の指示に従って所定時間の計時を行い、指定された時間が経過すると割り込みなどでCPU201に通知する。内部バス221は、CPU201と上述の各部とを接続し、データや制御信号等を伝達する。尚、CPU201により実行されるプログラムは、HDD204のインストールされていて、実行時にRAM203に展開されて実行されても良い。
次に携帯端末102のハードウェア構成を説明する。
CPU211は、携帯端末102全体の動作を制御する。RAM212は、CPU211が各種プログラムを実行する際にワークエリア等として使用される揮発性のメモリである。フラッシュメモリ213は、各種プログラムやデータを記憶する不揮発性のメモリである。操作部214は、ユーザの指で操作可能なタッチパネルとして動作する表示部を備える。BluetoothI/F215は、Bluetoothで通信するためのインタフェースであり、Bluetoothインタフェースを持つ他の機器と相互に通信を行う。実施形態1では、携帯端末102は、MFP101とBluetoothにより相互に通信を行う。無線ネットワークインタフェース216は、無線ルータ105と接続して通信可能な無線対応のNICである。スピーカ217は、電気信号を音に変換する。マイク218は、音を検知して電気信号に変換する。カメラ219は、静止画や動画を撮影して電子データに変換する。GPS220は、Global Positioning Systemの受信機である。内部バス222は、CPU211と上述の各部とを接続し、データや制御信号等を伝達する。
図3は、実施形態1に係るMFP101のソフトウェア構成を説明するブロック図(A)と、実施形態1に係る携帯端末102のソフトウェア構成を説明するブロック図(B)である。尚、ここでも携帯端末103のソフトウェア構成も携帯端末102と同じであるため、その説明を省略する。
図3(A)は、MFP101のソフトウェア構成及びソフトウェアが管理するデータ領域を示すブロック図である。ドキュメント304、プリントジョブ305、カウンタ306、ユーザアカウント313は、ソフトウェアがRAM203やHDD204に記憶して管理するデータの領域を示す。プラットフォーム301は、Linux(登録商標)などのオペレーティングシステムや、JAVA(登録商標)のバーチャルマシンやOSGi(登録商標)フレームワーク、デバイスドライバ群を含む形で構成することができる。JAVAは、オラクル社の登録商標である。OSGiフレームワークは、OSGi Alliance(標準化団体)が定義したJAVAベースのサービスプラットフォームである。プラットフォーム301は、各種ハードウェアを制御するためのデバイスドライバ群を備えており、プラットフォーム301上で動作するアプリケーションに対してハードウェアを利用するためのAPIを提供する。例えば、Bluetooth制御部302は、BluetoothI/F209を制御するためのデバイスドライバであり、ネットワーク制御部303は、ネットワークI/F210を制御するためのデバイスドライバである。その他に図示していないが、プリンタ206を制御するプリンタモジュール、スキャナ207を制御するスキャナモジュールも、このプラットフォーム301に存在する。また、プラットフォーム301は、ドキュメント304、プリントジョブ305、カウンタ306のデータを読み書きするためのAPIをアプリケーションに提供する。
メニュー307、コピー308、プリント309、送信310は、プラットフォーム301上で動作するアプリケーションであり、操作部205に各種機能を提供するユーザインタフェースを表示する。例えば、コピー308は、プラットフォームを301介して、スキャナ207とプリンタ206を制御してコピーを実行する。プリント309は、ドキュメント304に格納されたドキュメントデータやプリントジョブ305に保存されたプリントジョブをプリントする機能を提供する。コピーやプリントの出力は、プラットフォーム301のAPIを介して実行され、プラットフォーム301が印刷枚数をカウンタ306に記録する。送信310は、スキャナ207から取得したドキュメントデータを外部に送信する機能を提供する。メニュー307は、操作部205からアプリケーション(例えば、コピー、プリント、送信)を選択するためのメニュー画面を表示させるモジュールである。リモートUI311は、携帯端末102或いは103のウェブブラウザからHTTPプロトコルでMFP101にアクセスされた場合に、HTMLで記述されたユーザインタフェースを提供するモジュールである。リモートUI311は、MFP101の設定を管理するユーザインタフェースや、ドキュメント304に格納されたドキュメントデータをプリントするためのユーザインタフェースを提供する。ログインサービス312は、ユーザがMFP101を利用する際のログイン機能を提供するモジュールである。
次に、ログインサービス312が備えるユーザアカウント313の管理機能、ローカルログイン機能、リモートログイン機能、Bluetoohのサービスアクセス用のログイン機能について説明する。
・ユーザアカウントの管理機能
ユーザアカウントの登録や管理を行うユーザインタフェースをユーザに提供する。ユーザインタフェースを介して登録された情報をユーザアカウント313に記録して管理する。この管理する情報としては、例えば、表1(ユーザ情報一覧)に示すようなユーザ名・パスワード・ICカード番号・ロールなどがある。
・ローカルログイン機能
操作部205を利用するユーザに対してログイン/ログアウト機能を提供する。操作部205にログイン画面を表示し、ログインしていないユーザが操作部205を使用できないようにガードする。ここでは同時にローカルログインできるユーザの数を「1」とする。従って、複数のユーザが同時にローカルログインはできない。ユーザのログインが成功した場合は、操作部205の表示部の画面を、ログイン画面からメニュー画面に遷移させ、ユーザがMFP101を利用可能な状態にする。ローカルログインを行う手段として複数のログイン手段を提供する。例えば、以下のようなログイン手段を提供している。
(1)キーボードによるログイン
操作部205に表示されたログイン画面を介して、ユーザが操作部205を操作して入力したユーザ名とパスワードを取得して、そのユーザを認証するとログイン処理を行う。
(2)ICカードによるログイン
ICカードリーダ208にかざされたユーザのICカードからICカード番号を取得してユーザを特定し、ユーザが認証できるとログイン処理を行う。
(3)モバイルによるログイン
携帯端末からBluetooth通信でユーザ認証情報と共にログイン要求を受けると、ユーザを認証してログイン処理を行う。ここではモバイルによるログイン要求にレベルを設け、例えば、MFP101の状態によって、所定のレベルの要求を拒否するような実装を行う。MFP101は下記の表2(ログイン可否状態一覧)に示すStatuIDをRAM203に記録して管理する。ここでは表2に示すように、StatuIDが「1」であればログイン可能であるが、StatuIDが「2」「3」の場合は、ログイン要求レベルとMFP101の状況に応じて、ログイン要求を受付けない場合がある。StatuIDが「3」では、ユーザがログアウトした後、ユーザがMFP101から所定距離の範囲(例えば10cm~2m)から出るまでは、そのユーザからのログイン要求を受付けないようにしている。
次に、ローカルログイン後のログアウトの手法として、以下の複数の手法を備える。
(1)操作部205にログアウトボタン(図4の410)を表示し、そのログアウトボタンの押下を検知した場合にログアウト処理を行う。
(2)一定時間、ユーザが操作部205を操作しない場合にログアウト処理を行う。
(3)携帯端末からログアウト要求を受けるとログアウト処理を行う。
ログアウト処理後は、ログイン画面を表示する。
次にリモートログインについて説明する。
・リモートログイン機能
リモートUI311を利用する際のログイン/ログアウト機能を提供する。例えば携帯端末102からリモートUI311へのアクセスを検知した場合、その携帯端末102に対して、HTMLで記述されたログイン画面を送信する。そして、そのログイン画面に入力されたユーザ名やパスワードを取得してユーザの認証を行い、リモートUI311へのログインを許可する。同時に複数のユーザがリモートログインすることが可能なように構成する。
(2)Bluetoothのサービスアクセス用のログイン機能
Bluetoothで公開するサービスにアクセスするためのログイン/ログアウト機能を提供する。
次に図3(B)を参照して、実施形態に係る携帯端末102のソフトウェア構成を説明する。尚、以下の説明では、携帯端末102を例に説明するが、携帯端末103の場合も同様に実行できるのはもちろんである。
ドキュメント320や認証情報319は、ソフトウェアがフラッシュメモリ213に記憶して管理するデータの領域を示す。プラットフォーム314は、例えばGoogle社のAndroid(登録商標)やアップル社のiOS(登録商標)などのプラットフォームで構成することができる。プラットフォーム314は、各種ハードウェアを制御するためのデバイスドライバ群を備えており、プラットフォーム314で動作するアプリケーションに対して各種ハードウェアを利用するためのAPIを提供する。デバイスドライバ群として、実施形態1ではBluetooth制御部315、無線ネットワーク制御部316が存在する。Bluetooth制御部315は、BluetoothI/F215を制御するためのデバイスドライバであり、無線ネットワーク制御部316は無線ネットワークI/F216を制御するためのデバイスドライバである。携帯端末102には種々のアプリケーションをインストールして、プラットフォーム314上で稼働させることができる。実施形態1では、予めMFP接続アプリケーション317がインストールされているものとする。MFP接続アプリケーション317は、例えば以下のような機能を備える。
(1)BluetoothでMFP101と接続して、ログイン要求やログアウト要求を行う。
(2)ログイン要求の際に使用するユーザ認証情報(ユーザ名・パスワード)は、ユーザが予め認証情報319に記録しておくことができる。例えば、下記の表3(認証情報)に示すようなユーザ名とパスワードの組を記録する。
(3)MFP101と無線LANで接続して、ドキュメント320に記録された写真データやドキュメントデータのプリント要求を発行する。
(4)ウェブブラウザ318を起動して、MFP101のリモートUI311と接続する。
MFP接続アプリケーション317は、例えば、以下の表4(接続設定一覧)に示すような設置値を保持しているものとする。以下の表4は、携帯端末102がMFP101から2m以内の距離に入った場合に、ログイン要求を行うことを示し、5m以上の距離に離れた場合にログアウト要求を行うことを示す。また、携帯端末102とMFP101との間の距離に応じて、ログイン要求のレベルを使い分けることを意味にする。尚、後述するように、ユーザに応じて、この要求を行う距離を異なる値に設定しても良い。例えば、常にMFP101の近くで作業しているユーザに対しては、この要求を行う距離を、他のユーザよりも短く設定する。
上記の距離は、携帯端末102のユーザが変更可能なように構成しても良く、或いはMFP101から設定を取得するように構成しても良い。MFP101からの距離の計測には、MFP101が発信するBluetoothのRSSI(Received Signal Strength Indication,受信信号強度)を使用する。ログアウト距離は、ログイン距離より長めにすることが望ましい。なぜなら、RSSIは、携帯端末102とMFP101との間に障害物が入った場合などに弱くなることがあるため、障害物が間に入ったことによる誤検知によりログアウトしてしまうことを防ぐためである。例えば、MFP101と携帯端末102の距離が長いほどRSSIが減衰する性質を利用して、以下の表5(RSSIと推測距離一覧)に示すデータのようにRSSI(dBm)とMFP101からの距離の関係を示すデータを作ることができる。
MFP101が発信するBluetoothの送信電波の強度が予め分かっている場合は、上記のようなRSSIとMFP101からの距離の関係データを、予め携帯端末102が有するように構成しても良い。また携帯端末102が動的に、MFP101が発信するBluetoothの送信電波の強度に関する情報をMFP101から取得してRSSIと比較することにより、MFP101からの距離を算出するようにしても良い。
図4は、実施形態1に係るMFP101の操作部205に表示する画面の一例と、ログイン、ログアウトに係る画面遷移を説明する図である。
いま例えば、ユーザがログイン前の状態では、操作部205にログイン画面401を表示し、ICカードの検知や携帯端末102からBluetoothによるログイン要求の受信を待つ。そしてICカードの検知やBluetoothによるログイン要求を受信するとログイン処理を実施する。ログインが成功した場合はメニュー画面403へ遷移し、ログインに失敗した場合は、元のログイン画面401を表示する。またログイン画面401において、キーボード認証へ切り替えるボタン404の押下を検知した場合は、ソフトキーボードを使ったアカウント、パスワード入力用のログイン画面402へ遷移する。ログイン画面402は、ログイン画面401に戻るためのボタン405を備える。ログイン画面402でログインボタン406の押下を検知した場合は、入力されたアカウントとパスワードを取得し、ユーザの認証処理を含むログイン処理を実施する。ログインが成功した場合はメニュー画面403へ遷移し、ログインに失敗した場合は、元のログイン画面402を表示する。
メニュー画面403は、各種アプリケーションを呼び出すためのボタン407~409と、ログアウトボタン410を備える。ログアウトボタン410の押下を検知した場合、ログアウト処理を実施してログイン画面401を表示する。
次に実施形態1に係るMFP101が備えるBluetoothの機能とサービスについて説明する。
実施形態1に係るMFP101は、電源がオンされるとプラットフォーム301がBluetooth制御部302を介して、Bluetoothを起動し、所定の間隔でBluetoothのアドバタイジングパケットを送出する。このアドバタイジングパケット(Advertizing Packet)には以下のようなデータを含める。
・Local Name
デバイスの名称などである。例えば、「(会社名)MFP CXXX」等。
・Manufacturer Specific Data
MFPを製造したメーカの識別子及び任意のデータを格納する。デバイスから1m離れた場所でBluetoothパケットを受信した場合のRSSI(Received Signal Strength Indication,受信信号強度、例えば、-59dbm)などを含めることができる。
・TX Power Level
送信電波強度。例えば「-38dbm」等。
・Service UUIDs
デバイスの機能を表すUUID。
図5は、実施形態1に係るMFP101が備えるBluetoothのサービスの一例を示す図である。
このMFP101は、Bluetoothで接続した携帯端末102に対して、GATT(Generic Attribute)プロファイルで定義したユーザ認証サービス501、MFP情報サービス502、プリントサービス503、メンテナンスサービス504を公開する。ユーザ認証サービス501は、GATTプロファイルで定義した以下のキャラクタリスティックを備える。ログインサービス312が、プラットフォーム301及びBluetooth制御部302が提供するAPIを介して各キャラクタリスティックの値の読み書きを行う。
・StatusID505
MFP101のログイン可否に関する状態を示すキャラクタリスティックである。携帯端末102がReadして、MFP101のログイン可否に関する状態を取得するために使用する。この値として、ログイン可否状態一覧と同様に、下記の表6(StatusID一覧)に示す値を格納する。
ログインサービス312が、状態の変化に応じて値(StatusID)を変更する。値の変更時は、Bluetooth制御部302がAttribute Protocol(ATT)におけるNotificationで、接続中の携帯端末102に値の変更を通知する。
・UserName506
携帯端末102がログインを要求した時に、ユーザ名を書き込む(Write)ためのキャラクタリスティックである。
・Password507
携帯端末102がログインを要求した時に、パスワードをWriteするためのキャラクタリスティックである。Writeするパスワードの暗号化が必要なキャラクタリスティックとして構成しても良い。
・RequestID508
携帯端末102が認証サービスへの要求をWriteするためのキャラクタリスティックである。例えば、下記の表7(RequestID一覧)に示すようなRequestID508をWriteする。尚、表7に示すログイン要求レベルは、前述の表4に示すログイン要求レベルに対応している。
・ResultID509
MFP101が携帯端末102からログイン要求を受けて、ユーザの認証を実施した際の認証結果(ユーザ認証の成否)格納するキャラクタリスティックである。例えば、下記の表8(ResultID一覧)に示すような値を格納する。
認証結果の格納時に、Bluetooth制御部302がAttribute Protocol(ATT)におけるNotificationで、接続中の携帯端末102に認証結果を通知する。
MFP情報サービス502は、キャラクタリスティックにリモートUI311のURLを格納するURL510を備える。URL510の値の設定は、MFP101の起動時にプラットフォーム301が行う。
プリントサービス503は、Bluetoothのサービスアクセス用のログイン成功後に、携帯端末102から検索可能なサービスとして構成する。プリントサービス503は、以下に示すようなキャラクタリスティックを備える。プリント309が、プラットフォーム301及びBluetooth制御部302が提供するAPIを介して各キャラクタリスティックの値の読み書きを行う。
・MyJobList511
プリントジョブ305に一時保存されたプリントジョブの中から、Bluetoothのサービスアクセス用のログインを行ったユーザと関連付けられたプリントジョブの識別子を格納する。そのユーザに関連付けられたプリントジョブが複数存在する場合は、複数のプリントジョブの識別子を格納する。
・RequestID512
携帯端末102がプリントジョブ305に対する操作を要求するためのキャラクタリスティックである。例えば以下の表9(プリントサービスのRequestID一覧)に示すIDをWrite可能とする。携帯端末102によりWriteされた値は、プリント309に通知され、プリント309が要求に応じてプリントジョブの操作を行う。ここではプリントジョブのプリントと削除が指示できる。
・RequestParameter513
携帯端末102がプリントジョブ305に対する操作を要求する際に、操作のターゲットとなるプリントジョブ305の識別子を格納するキャラクタリスティックである。携帯端末102が、MyJobList511から所得したプリントジョブの識別子をWriteする。
メンテナンスサービス504は、Bluetoothのサービスアクセス用のログインに成功し、かつログインしたユーザのロールが管理者の場合に、携帯端末102から検索可能なサービスとして構成する。メンテナンスサービス504は、キャラクタリスティックにカウンタ306のカウントを格納するCount514を備える。Count514の値は、プラットフォーム301がカウンタ306の値の変更を検知して、同じ値を設定する。
尚、図示していないが、各サービス及びキャラクタリスティックは、それぞれハンドルやUUID、データの型情報、テキスト情報などの情報を備える。
次に実施形態1に係る携帯端末102における基本動作を説明する。
図6は、実施形態1に係る携帯端末102の基本動作を示すフローチャートである。以下、図6を参照して携帯端末102を有するユーザがMFP101に近づいて、MFP101の利用を開始する際の基本動作について説明する。特に言及しない限り、携帯端末102の動作の主体はCPU211である。また特に言及しない限り、ソフトウェアの主体はMFP接続アプリケーション317、もしくは、MFP接続アプリケーション317がプラットフォーム314が提供するAPIをコールしてプラットフォーム314が処理を代行する。ここでは動作の主体をCPU211として説明する。
携帯端末102の処理が開始されるとS601でCPU211は、MFP101から送信されるBluetoothのアドバタイジングパケットのスキャンを開始する。そしてS602でCPU211は、アドバタイジングパケットを受信するとS603に進み、CPU211は、そのアドバタイジングパケットの送信元が所定のMFPか否かを判定する。ここで携帯端末102には、その携帯端末102のユーザが普段使用しているMFPが予め登録されているものとする。従ってS603でCPU211は、受信したアドバタイジングパケットの送信元が、この登録しているMFPであるかどうかを判定する。具体的には、CPU211が受信したアドバタイジングパケットを解析し、LocalName,Manufacturer Specific Data,Service UUIDsの値を参照して、既知の値が格納されている場合に所定のMFPであると判断する。S603で所定のMFPではないと判定した場合は、そのアドバタイジングパケットを無視してS602に進む。尚、このS603の判定を行う理由は、ユーザが使用するつもりのないMFPに近づいた、或いは側を通過しただけで、そのMFPにログインするのを防止するためである。
S603で所定のMFP101からのアドバタイジングパケットであると判定した場合はS604に進みCPU211は、RSSIからMFP101と携帯端末102との距離を算出する。ここでは例えば、アドバタイジングパケットのTX Power LevelやManufacturer Specific Dataに含まれるMFP101が発信する送信電波強度に関する情報とRSSIの差分から距離を算出する。尚、RSSIには誤差があるため、距離の算出には、複数のアドバタイジングパケットをサンプリングして算出するようにしても良い。
次にS605に進みCPU211は、S604で算出した距離と、接続設定一覧の表(表4)に示す設定を参照して、MFP101の使用を開始する所定の距離以内か否かを判定する。実施形態1における所定の距離以内とは、例えば2m以内の距離である。尚、このとき、ユーザに応じて、互いに異なる距離を設定しても良い。これは例えばユーザAが、ほとんどMFP101の近くで作業している場合、ユーザAがログインできる距離を2m以内に設定すると、常にユーザAがログインすることになるためで、この場合はユーザAに対応する距離を例えば30cm等に設定する。S605でCPU211が所定の距離以内であると判定した場合はS606に進み、MFP101が使用中か否かを判定する。この判定方法として、例えば、下記の表10(MFP利用状態フラグ)に示すような使用中か否かを示すMFP使用状態フラグをRAM212に記録して利用する。MFP101が使用中の場合は、その使用中フラグをTRUEに設定し、使用が終了すれば、そのフラグをFALSEに設定して、携帯端末102がMFP101の使用状態を管理する。
ここでMFP101の使用状態を管理するのは、MFP101があるジョブを実行中の時に別のジョブを投入するのを避けるためである。MFP使用状態フラグが使用中ではないことを示しているとS607に進みCPU211は、そのフラグを使用中を示すオンに変更してS608に進み、そのMFP101を使用した処理を実行する。一方、S606でMFP使用状態フラグが使用中を示しているときは、そのまま処理を終了する。
一方、S605でCPU211が、MFP101との距離が所定の距離以内ではないと判定した場合はS609に進み、接続設定一覧の表4に示す設定を参照して、MFP101の使用終了のために、MFP101との距離が所定の距離以上か否かを判定する。実施形態1では、この所定の距離以上とは、例えば5m以上とする。S609でCPU211は、所定の距離以上であると判定した場合はS610に進みCPU211は、前述のフラグを参照してMFP101が使用中か否かを判定する。ここでMFP101が使用中であると判定した場合はS611に進み、CPU211は、MFP101の使用終了処理を行う。そしてS612に進みCPU211は、前述のフラグをFALSEに変更して、この処理を終了する。またS609でCPU211は、MFP101との距離が所定の距離以上でないと判定するとS602に処理を進める。またS610でMFP101が使用中でないと判定した場合は、そのまま処理を終了する。
尚、S601では、MFP接続アプリケーション317が必ずしも起動している必要はない。例えば、MFP接続アプリケーション317は、予めプラットフォーム314に所定のMFPからのアドバタイジングパケットを受信したかどうかの監視を依頼することができる。そして、所定のMFPからのアドバタイジングパケットを受信したプラットフォーム314が、停止しているMFP接続アプリケーション317を起動することも可能である。
このようにして携帯端末102を所定のMFPに近づけるだけで、そのMFPを使用できる状態に移行することができる。尚、携帯端末102はユーザが常に携帯しているものであり、ICカードのようにユーザが所持するのを忘れることがない。
図7は、図6のS608のMFPの使用処理の詳細を示すフローチャートである。
携帯端末102はMFP101の使用処理を開始すると、先ずS701でCPU211は、MFP101に対してBluetoothでの通信接続を確立する。特に言及しない限り、これ以降の携帯端末102とMFP101との間のデータ通信はBluetoothによる通信である。次にS702に進みCPU211は、MFP101からBluetoothのサービス情報を取得する。実施形態1では、この時点でユーザ認証サービス501とMFP101によるサービスの情報が取得できるものとする。次にS703に進みCPU211は、ユーザ認証サービス501が備えるStatusID505を読み込む。そしてS704に進みCPU211は、S604で算出した距離とStatusID505を読み取って取得した値を基に、MFP101にログイン要求できるか否かを判定する。ここでは例えば、算出した距離が2m~30cmであれば、MFP101に対してログイン要求レベル1でのログイン要求ができるかどうかを、StatusID505で取得した値を基に判定する。前述の表6で示したように、StatusID505が「1」の場合はログイン要求が可能であるが、その他の値を示す場合はログイン要求は不可と判定する。同様に、例えば算出した距離が30cm~10cmの場合は、ログイン要求レベル2のログイン要求の可否をStatusID505から取得した値を基に判定する。この場合、StatusID505が「1」或いは「2」の場合はログイン要求が可能、StatusID505が「3」の場合はログイン要求不可と判定する。また算出した距離が10cm以下の場合はログイン要求レベルが3であるため、StatusID505がいかなる値であってもログイン要求が可能であると判定する。
S704でCPU211がログイン要求が可能であると判定した場合はS705に進み、MFP101へログインを要求する。具体的には、ユーザ認証サービス501のUserName506,Password507,RequestID508に値を書き込む。UserName506,Password507には、例えば表3の認証情報に示す情報を書き込み、RequestID508には、算出した距離に応じて、前述の表7に示すRequestID一覧に示す値「1」「2」「3」のいずれかを書き込む。次にS706に進みCPU211は、MFP101からの応答として、ResultID509及びStatusID505の更新をNotificationにより受信する。そしてS707に進みCPU211は、BluetoothによるMFP101との接続を切断して、この処理を終了する。
一方、S704でログイン要求が不可と判断した場合はS708に進みCPU211は、操作部214に、例えば図8に示すような画面を表示して、ローカルログインする代わりに利用可能な機能を代替機能として提示する。
図8は、実施形態1に係る携帯端末102の操作部に表示される、MFPにログインできない場合の代替機能の提示例を示す画面例を示す図である。
ここでは、MFP101を他のユーザが使用中であるためMFP101を使用できない旨の表示と、代替機能の一覧が表示されている。代替機能の指示ボタンとして、「リモートUIに接続する」ボタン801、「プリントする」ボタン802、「メンテナンス情報をみる」ボタン803、「キャンセル」ボタン804が表示されている。
次にS709に進みCPU211は、図8の画面で、ユーザが、どの代替機能を選択したか否かを判定する。ここでユーザが代替機能を選択せずにキャンセルボタン804を押下した場合はS707に進み、BluetoothによるMFP101との接続を切断して、この処理を終了する。一方、ユーザが、いずれかの代替機能を選択した場合はS710に進み、ユーザが選択した代替機能をユーザに提供する。そして、代替機能を提供した後、その機能による処理が完了したときはS707に進み、BluetoothによるMFP101との接続を切断して、この処理を終了する。
図9は、図7のS710の代替機能の利用処理の詳細を説明するフローチャートである。
まずS901でCPU211は、図8の画面を介してユーザが選択した代替機能を判定し、その選択された代替機能に応じた処理を実施する。例えば、ユーザが「リモートUIに接続する」ボタン801を選択した場合はS902に進む。S902でCPU211は、MFP情報サービス502のURL510を読み取って、MFP101のリモートUI311のURLを取得する。次にS903に進みCPU211は、ウェブブラウザ318を起動し、無線ネットワークI/F216を介して、MFP101のリモートUI311へ接続する。そしてS904に進みCPU211は、HTTPプロトコル用いて、リモートログインを実施する。
一方、S901で、ユーザが「プリントする」ボタン802を選択した場合はS905に進み、CPU211は、MFP101に対してBluetoothのサービスアクセス用のログイン要求を行う。具体的には、ユーザ認証サービス501のUserName506,Password507,RequestID508に、それぞれ値を書き込む。ここでUserName506,Password507には、表3に示す携帯端末102のユーザの認証情報を書き込む。またRequestID508には、表7のBluetoothのサービスアクセス用のログイン要求を示す値「5」を書き込む。次にS906に進みCPU211は、MFP101から、その認証結果として、ResultID509の更新をNotificationにより受信する。ここでBluetoothでのログインが成功するとS906でCPU211は、サービス情報を取得してS907に進む。
実施形態1では、Bluetoothログイン後は、MFP101によってプリントサービスへのアクセスが許可され、プリントサービスの情報が取得可能となる。こうしてプリントサービスの情報を取得した携帯端末102のCPU211は、S907でプリントサービスを利用することができる。また例えば、プリントサービスから認証したユーザと関連付いたジョブの情報を取得することできる。また例えば、ユーザのジョブを操作部214に表示して、ユーザからのプリントを指示を受け付けることもできる。ユーザがプリントを指示した場合は、RequestID508にプリント要求を書き込んで、MFP101にプリントを指示する。
またS901で、例えばユーザが「メンテナンス情報をみる」ボタン803を選択した場合はS908に進み、CPU211は、MFP101に対してBluetoothのサービスアクセス用のログイン要求を行う。次にS909に進みCPU211は、サービス情報を取得する。実施形態1では、Bluetoohでログインが成功し、かつ認証したユーザのロールが管理者であった場合、MFP101によってメンテナンスサービスへのアクセスが許可され、メンテナンスサービスの取得が可能となる。こうしてメンテナンスサービスのアクセスに成功するとS910に進み、CPU211はメンテナンスサービスを利用する。ここでは例えば、メンテナンスサービスからカウンタ306の情報を取得して、操作部214にカウンタの値を表示することができる。
図10は、図6のS611のMFP101の使用終了処理の詳細を示すフローチャートである。
先ずS1001でCPU211は、ログアウト処理を開始すると、MFP101に対してBluetoothの接続を行う。次にS1002に進みCPU211はサービス情報を取得し、ユーザ認証サービス501の情報を取得する。次にS1003に進みCPU211は、StatusID505の値を読み取る。次にS1004に進みCPU211は、StatusID505の値に基づいて、MFP101にローカルログイン中か否かを判定する。実施形態1では、表6のStatusID505の一覧からStatusID505が「2」であるとローカルログイン中を示す。ここでローカルログイン中であると判定した場合はS1005に進みCPU211は、MFP101に対してログアウト要求を行う。具体的には、UserName506にユーザ名を書き込むと共に、RequestID508にログアウト要求を示す値「4」(表7)を書き込む。そしてS1006に進みMFP101とのBluetooth接続を切断して、この処理を終了する。一方、S1004で、ローカルログイン中でないと判定した場合は、ログアウト要求は行わずにS1006に進み、MFP101とのBluetooth接続を切断して、この処理を終了する。
以上説明した処理によれば、携帯端末102を、予め設定されているMFP101に近づけるだけでMFP101にログインしてMFP101を使用することができる。このときMFP101が他のユーザにより使用されているときは、携帯端末102を所有しているユーザに対して選択可能な代替機能を提示し、ユーザはその代替機能を選択して実行させることができる。またMFP101にログインした後、携帯端末102を所有しているユーザがMFP101から所定距離離れると自動的にMFP101からログアウトするため、ログインした後にログアウトし忘れた状態になるのを防止できる。
図11は、実施形態1に係るMFP101におけるローカルログイン処理の動作を説明するフローチャートである。尚、ここで特に言及しない限り、MFP101の動作の主体はCPU201である。また特に言及しない限り、ソフトウェアの主体は、ログインサービス312、もしくは、ログインサービス312がプラットフォーム301が提供するAPIをコールしてプラットフォーム301が処理を代行する。
CPU201は、ローカルログイン要求の受付を開始すると、キーボードを使用したログイン、ICカードによるログイン、モバイルからのログインを有効にする。具体的には、S1101でCPU201は、キーボードからのログインを有効にし、操作部205にログイン画面を表示して、ユーザによるログイン操作を検知可能な状態にする。またICカードによるログインではS1102でCPU201は、ICカードリーダ208によりICカードを検知可能な状態にする。またモバイルによるログインでは、S1103でCPU201は、BluetoothのGATTプロファイルで定義したユーザ認証サービスを公開し、Bluetoothによるローカルログイン要求を検知可能な状態にする。
こうしてS1104に進みCPU201は、いずれかからのログイン要求を検知するとS1105に進む。S1105でCPU201は、そのログイン要求の発行元を特定して、そのログイン要求の発行元に応じた認証処理を行う。
S1105でCPU201は、操作部205のキーボードを使用したログインであると判定するとS1106に進み、CPU201は操作部205のログイン画面の操作を検知して、そのログイン画面で入力されたユーザ名、パスワードを取得する。次にS1107に進みCPU201は、その取得した値と、予めMFP101に登録済み、例えば前述の表1に示すユーザ情報の一覧に登録された情報と比較・照合することによりユーザの認証を行ってS1116に進む。
一方、S1105でCPU201は、ICカードによるログインであると判定するとS1108に進み、CPU201はICカードリーダ208にICカードがかざされたことを検知すると、そのICカード番号を取得する。そしてS1109に進みCPU201は、その取得したICカード番号と、予めMFP101に登録済みのユーザ情報一覧に登録されたICカード番号(表1参照)とを比較・照合して、そのICカードを所有しているユーザの認証を行ってS1116に進む。
またS1105でCPU201は、モバイルによるログインであると判定するとS1110に進み、CPU201は、ユーザ認証サービス501のRequestID508にログイン要求を示すIDが書き込まれていることを検知する。そしてCPU201は、RequestID508に書き込まれた値からログイン要求のレベル(表7)を取得し、表2のログイン可否状態と比較して、受付可能なログイン要求レベルか否かを判定する。ここで例えば、レベル1のログイン要求に対して、ログイン可否状態がログイン可能(StatusID=1)ではなく、StatusID=2或いは3の場合は、ログイン処理をキャンセルする。またレベル2のログイン要求に対して、ログイン可否状態が、ログイン要求レベル2を受け付けない(StatusID=3)を示している場合も同様に、ログイン処理をキャンセルする。ここでログイン処理をキャンセルした場合はS1115に進み、CPU201は、ResultID509にキャンセルしたことを示す値「3」(表8)を設定し、Notificationで、ログイン要求を行った携帯端末102へキャンセルを通知する。またS1110で、レベル3のログイン要求であった場合は、無条件にログイン要求を受け入れる。こうしてS1110でCPU201は、受付可能なログイン要求レベルであると判定するとS1111に進みCPU201は、他のユーザがローカルログイン中か否かを判定する。ここで他のユーザがログイン中であると判定した場合はS1112に進み、CPU201は、強制的にログイン中のユーザをログアウトする処理を実施してS1113に進む。またS1111で、他のユーザがログイン中でないときもS1113に進む。S1113でCPU201は、携帯端末102から書き込まれたUserName506,Password507を参照して、ユーザ名とパスワードを取得する。そしてS1114に進みCPU201は、その取得した値と、予めMFP101に登録済みのユーザ情報一覧に記録された情報と比較・照合することによりユーザの認証を行う。次にS1115に進みCPU201は、ユーザの認証結果をResultID509に設定し、Notificattionで、ログイン要求を行った携帯端末102へログイン処理の結果を送信してS1116に進む。
S1116でCPU201はユーザ認証の成否を判定し、認証が失敗したと判定した場合は図11のフローチャートの最初に戻って、次のログイン要求の検知を待つ。一方、S1116でCPU201は、ユーザの認証に成功したと判定するとS1117に進む。S1117でCPU201は、ログイン可否状態のStatusID505を「他のユーザがログイン中のためログイン要求レベル1を受け付けない」を示す値「2」に更新する。そしてS1118に進みCPU201は、操作部205の表示をログイン画面からメニュー画面に遷移して、このログイン処理を終了する。
尚、ここで携帯端末102が事前に、MFP101へのログイン可否状態のチェックを確実に行い、間違ってMFP101にログイン要求を行うことが無いように構成すれば、S1110のログイン要求のレベルを判定する処理は必ずしも必要ない。
次にMFP101におけるログアウト動作を説明する。
図12は、実施形態1に係るMFP101におけるログアウト処理の動作を示すフローチャートである。尚、ここで特に言及しない限り、MFP101の動作の主体はCPU201である。また特に言及しない限り、ソフトウェアの主体は、ログインサービス312、もしくは、ログインサービス312がプラットフォーム301が提供するAPIをコールしてプラットフォーム301が処理を代行する。
MFP101は、ユーザがローカルログインするとログアウトの受付を開始する。ここでログアウトの手法として、マニュアルによるログアウト、タイマ223によるログアウト、及びモバイルによるログアウトを有効にする。具体的には、マニュアルによるログアウトではS1201でCPU201は、操作部205にログアウトボタン410(図4)を表示して、ユーザによるログアウトボタン401の押下を検知可能な状態にする。またタイマ223によるログアウトでは、S1202でCPU201は、タイマ処理により一定期間、ユーザによる操作が無いことを検知可能な状態にする。またモバイルによるログアウトでは、S1203でCPU201は、携帯端末からBluetoothを介して、RequestID508にログアウト要求の書き込みを検知可能な状態にする。
そしてS1204に進みCPU201は、ログアウト要求を検知するとS1205に進む。S1205でCPU201は、マニュアル、タイマ或いはモバイルのいずれかからのログアウト要求であるかを判定し、そのログアウト要求に応じた処理を実施する。
S1205でCPU201は、ログアウトボタン410の押下を検知した場合はS1206に進み、ログアウト処理を実施する。次にS1207に進みCPU201は、ログイン可否状態のtatusID505を「ログアウト直後のため、ログイン要求レベル1及びレベル2を受け付けない」を示す値「3」に更新する。更にS1208に進みCPU201は、時間の経過をチェックするためにタイマ223を起動する。そしてS1209に進みCPU201は、操作部205の表示をログイン画面に遷移させる。この時、キーボードによるログイン、ICカードによるログイン及びBluetoothからのログイン要求レベル3を利用したログインが可能な状態になる。この後S1210でCPU201は、一定時間、ログイン要求が無く、タイマ223により一定期間(例えば、10秒)の経過を検知するとS1211に進む。S1211でCPU201は、ログイン可否状態のStatusID505を「ログイン可能」を示す値「1」に更新する。これにより、全てのログイン手法が有効な状態に戻る。
一方、S1205でCPU201は、タイマ223による計時により、一定期間ユーザ操作が無いことを検知した場合はS1212に進み、CPU201はログアウト処理を実施する。次にS1213に進みCPU201は、ログイン可否状態のStatusID505を「ログイン可能」を示す値「1」に更新する。そしてS1214でCPU201は、操作部205にログイン画面を表示して、この処理を終了する。
またS1205でCPU201は、携帯端末102からBluetoothでUserName506へのユーザ名の書き込みと、RequestID508にログアウト要求が書き込まれたことを検知するとS1215に進む。S1215でCPU201は、モバイルによるログアウトを検知し、ログイン中のユーザ名とUserName506へ書き込まれたユーザ名とが同一かどうかを判定する。ここでユーザ名が一致しないと判定すると、そのログアウト要求をキャンルして、このフローチャートの最初に戻り、次のログアウト要求を待つ。S1215でユーザ名が一致したと判定するとS1216に進みCPU201は、ログアウト処理を実施する。次にS1217に進みCPU201は、ログイン可否状態のStatusID505を「ログイン可能」を示す値「1」に更新する。そしてS1218でCPU201は、操作部205にログイン画面を表示して、この処理を終了する。
図13は、実施形態1に係るMFP101が携帯端末102からBluetoothのサービスアクセス用のログイン要求を受けた場合の動作を示すフローチャートである。尚、ここで特に言及しない限り、MFP101の動作の主体はCPU201である。また特に言及しない限り、ソフトウェアの主体は、ログインサービス312、もしくは、ログインサービス312がプラットフォーム301が提供するAPIをコールしてプラットフォーム301が処理を代行する。
この処理はS1301でCPU201が、ユーザ認証サービス501のRequestID508に、「Bluetoothサービスアクセス用のログイン要求」が書き込まれたことを検知することにより開始される。次にS1302に進みCPU201は、携帯端末102から書き込まれたUserName506、Password507を参照して、ユーザの認証情報であるユーザ名とパスワードを取得する。そしてS1303に進みCPU201は、S1302で取得した値と、予めMFP101に登録済みのユーザ情報一覧(表1)に記録された情報と比較・照合してユーザの認証を実施する。そしてS1304でCPU201は、そのユーザ認証の成否を判定し、ユーザの認証に成功した場合はS1305に進みCPU201は、Bluetoothの同一の接続において、プリントサービスを携帯端末102からFind可能な状態にする。一方S1304でCPU201が、ユーザの認証に失敗したと判定したときはS1308に進む。S1305に続いてS1306に進みCPU201は、その認証したユーザのロールをチェックする。ここでユーザのロールが管理者であった場合はS1307に進み、Bluetoothの同一の接続期間において、Bluetoothの同一の接続において、メンテナンスサービスを携帯端末102からFind可能な状態にしてS1308に進む。一方、S1306でCPU201は、ユーザのロールが管理者でないと判定するとS1308に進む。
S1308でCPU201は、ユーザの認証結果をResultID509に設定し、Notificationで、ログイン要求を行った携帯端末102へログイン処理の結果を送信する。その後S1309に進みCPU201は、Bluetoothの切断を検知するとS1310に進み、CPU201はサービスの公開状態をリセットする。具体的には、Bluetoothで、プリントサービス及びメンテナンスサービスをFindできない状態に戻す。
この処理によれば、携帯端末のユーザは、携帯端末からMFPに対してBluetoothサービスアクセス用のログイン要求を発行し、ログインが承認されると、そのMFPが有している印刷等のサービスを利用することができる。
図14は、本発明の実施形態1に係るMFP101と携帯端末との状態例を説明する図である。以下、図14を参照して実施形態1に係る効果を説明する。
図14(A)は、MFP101に誰もログインしていない状態でユーザ(Alice)が携帯端末102を持ってMFP101に近づいた状態を示す。この場合、Aliceの携帯端末102がMFP101から2m以内の距離に入ったことを検知すると、MFP101に対してログイン要求を行う。このため、AliceがMFP101の操作部205の前に到達した時点でログインは完了しており、Aliceは、ログインのために、操作部205の前で待たされることなく直ぐにMFP101を使用できる。また携帯端末102を持ったAliceがMFP101から離れる場合は、MFP101と5m以上離れると自動的にログアウトするため、ログアウトのし忘れを防止することができる。
図14(B)は、携帯端末103を所有するユーザ(Bob)がMFP101を使用中のときに、ユーザ(Alice)が携帯端末102を持ってMFP101に近づいている状態を示す。この場合、Aliceの携帯端末102は、MFP101は使用中であるため、MFP101にログイン要求を行わない。このため携帯端末102は、BobによるMFP101の使用を妨げることがない。一方、Aliceの携帯端末102には代替手段が提示されるため、代替手段で提供される機能の範囲で、AliceもMFP101の機能を利用することができる。
図14(C)は、ユーザ(Carol)がMFP101の使用を終えているが、ログアウトするのを忘れているため、Carolがログイン中のままになっているところに、Aliceが携帯端末102を持ってMFP101に近づいた場合を示す。この場合、MFP101と携帯端末102との距離が30cm~2mの場合は、Aliceの携帯端末102はログイン要求を行わない。しかし、AliceがMFP101の操作部205に到達して、MFP101と携帯端末102との距離が30cm以内になると、Aliceの携帯端末102はMFP101に対してログイン要求を行う。これにより、MFP101はCarolを強制的にログアウトさせてAliceをログインさせる。これにより、Aliceが、間違えてCarolがログイン中のままMFP101を使用するのを防止できる。またAliceは、Carolの代わりに、操作部205に表示されたログアウトボタン410を押下する必要もない。
図14(D)は、MFP101の操作部205に表示されているログアウトボタン410が押下された直後の状態を示す。この場合、Bobの携帯端末103が近くにあったとしても、Bobの携帯端末103はログイン要求を行わない。このためAliceがMFP101の操作部205の前にいる状況で、Bobの携帯端末103によるログインが行われることがなくなり安全である。また、ログアウトボタン410を押下したユーザがAliceで、Alice本人がログアウト操作を行った直後に、再びMFP101にログインしたいという場合は、Aliceが携帯端末102をMFP101から10cm以内の距離まで近づける。これによりAliceの携帯端末102がMFP101に対してログイン要求を行う。こうしてAliceは、ログアウト直後であっても、再びMFP101にログインすることができる。
[実施形態2]
次に、本発明の実施形態2を説明する。実施形態2では、実施形態1で示したログイン時の詳細フローで示した通信よりもセキュアな通信方法を実施した場合の例を示す。尚、実施形態2に係るMFP101や携帯端末102,103の構成及び、そのシステム構成は前述の実施形態1と同様であるため、その説明を省略する。
図15は、本発明の実施形態2に係るMFP101が備えるBluetoothによるユーザ認証サービス及びキャラクタリスティックを説明する図である。ここで前述の図5と共通する部分は同じ番号で示している。実施形態2では、MFP101のユーザ認証サービスは、前述の実施形態1のPassword507の代わりに以下の2つのキャラクタリスティックを備えるものとする。その他は、前述の実施形態1と同様である。
・Challenge1501
チャンレジの格納に使用するキャラクタリスティック。この値は、MFP101が都度発行した乱数を格納する。
・Hash1502
ハッシュ値の格納に使用するキャラクタリスティック。
実施形態2では、パケットの盗聴やMFPの成り済ましによるパスワードの不正取得を防止するために、Bluetoothのキャラクタリスティックを用いてチャレンジレスポンス方式のユーザ認証を実現する。
図16は、実施形態2に係る携帯端末102がMFP101にログイン要求を行う際のシーケンスを示す図である。図16を参照して、実施形態2に係るユーザ認証サービスのキャラクタリスティックの利用方法を説明する。尚、ここで携帯端末102の基本動作は実施形態1における図7と同様である。
携帯端末102は、S705のログイン要求処理を開始するとS1601で、Challenge1501のRead要求を発行し、S1602でチャレンジの値を取得する。次に携帯端末102はS1603で、その取得したチャレンジと、ユーザのパスワードとを用いてハッシュ値を算出する。ここでのチャレンジの生成、及びハッシュ値の計算のアルゴリズムとしては、RFC2195に記載のChallenge-Response Authentication Mechanism (CRAM)などがあるが、本発明はこの限りではない。次にS1604で携帯端末102は、ユーザ名をUserName506に、算出したハッシュ値をHash1502に書き込むと共に、RequestID508にログイン要求を書き込む。これによりMFP101は、そのログイン要求を検知して、キャラクタリスティックからユーザ名とハッシュ値とチャレンジを読み出す。これらの値を読み出した後、他の端末がアクセスしたときに、これらの値を参照できないようにクリアする。そしてS1605でMFP101は、キャラクタリスティックから取得したユーザ名、ハッシュ値とチャレンジを用いてユーザの認証処理を行う。具体的には、キャラクタリスティックに設定されたチャレンジと、ユーザDBに登録されたユーザのパスワードとを取得して、携帯端末102と同じアルゴリズムでハッシュ値を算出する。そして、その算出したハッシュ値とキャラクタリスティックから取得したハッシュ値とを照合する。MFP101は、こうしてユーザの認証を終了すると次の認証に備えて、キャラクタリスティックのチャレンジを新たな値で更新する。その後のユーザ認証後の動作は実施形態1と同様である。
以上説明したように実施形態2によれば、Bluetoothでチャンレジレスポンス方式のユーザ認証を実現し、実施形態1よりもセキュアで、パケットの盗聴やMFPの成り済ましによるパスワードの不正取得を防止できる効果が得られる。
[実施形態3]
前述の実施形態1では、図12のS1206~S1211のマニュアルによるログアウトでの処理について、マニュアルによるログアウト直後は、ログイン要求レベル3以外を受け付けないようにすることで、ログアウト直後に発生する問題を解決した。
同じ効果が得られる実施形態3に係る手法を図17に示す。尚、実施形態3に係るMFP101や携帯端末102,103の構成及び、そのシステム構成は前述の実施形態1と同様であるため、その説明を省略する。
図17は、実施形態3に係るMFP101によるマニュアル(手動)によるログアウト処理を説明するフローチャートである。尚、ここで特に言及しない限り、MFP101の動作の主体はCPU201である。また特に言及しない限り、ソフトウェアの主体は、ログインサービス312、もしくは、ログインサービス312がプラットフォーム301が提供するAPIをコールしてプラットフォーム301が処理を代行する。
まずS1701でCPU201は、ログアウトボタン410の押下を検知するとログアウト処理を実施する。次にS1702に進みCPU201は、Bluetoothのアドバタイジングパケットの送出を停止する。次にS1703に進みCPU201は、時間の経過をチェックするためにタイマ223を起動する。そしてS1704に進みCPU201は、操作部205の表示をログイン画面に遷移させる。この時、キーボードによるログイン、ICカードによるログイン及びBluetoothからのログイン要求レベル3を利用したログインが可能な状態になる。この後S1705でCPU201は、一定時間、ログイン要求が無く、タイマ223により一定期間(例えば、10秒)の経過を検知するとS1706に進む。S1706でCPU201は、マニュアルログアウトの後、一定時間経過後にアドバタイジングパケットの送出を再開する。
これにより携帯端末102は、MFP101がアドバタイジングパケットの送出を停止している間、MFP101との間の距離を検知できなくなる。これによりMFP101が手動操作によるログアウト処理を実行中のとき、携帯端末102がMFP101に対してログイン要求を行うのを防止できる。
[実施形態4]
上述の実施形態1~3では、携帯端末102がMFP101へのログイン可否状態を確認して、ログイン要求を行うかどうかを決定する例を示した。例えば、図7のS704の判定がこれに該当する。これに対して実施形態4では、携帯端末102は、ログイン可否の判定を行わず、MFP101にログイン可否の判定を委ねる場合の例を示す。尚、実施形態4に係るMFP101や携帯端末102,103の構成及び、そのシステム構成は前述の実施形態1と同様であるため、その説明を省略する。
図18は、本発明の実施形態4に係るMFP101のユーザ認証サービスが備えるキャラクタリスティックスを説明する図である。ここで前述の図5や図15と共通する部分は同じ番号で示し、それらの説明を省略する。実施形態4に係るMFP101のユーザ認証サービスは、上述の実施形態1や実施形態2のキャラクタリスティックスに加えて、携帯端末102が算出した距離を書き込むためのDistance1801やDistance1802を備える。また、ログイン要求に関して、前述の実施形態1に示したようなレベル1からレベル3とったレベルは必要なく、ログイン要求を示すRequestIDを1つ使用する。尚、実施形態4に係るMFP101は、下記の表11に示す実施形態4のログイン可否状態一覧を設定として予め記憶しているものとする。
実施形態4に係る携帯端末102の動作は、前述の実施形態1の図6のフローチャートで説明したのと同様であるため、その説明を省略する。
図19は、実施形態4に係る図6のS608の処理の詳細を説明するフローチャートである。図19を参照して、実施形態4におけるS608の詳細フローを説明する。
携帯端末102のCPU211は、MFP101の使用処理を開始すると、先ずS1901でMFP101に対してBluetoothで接続する。次にS1902に進みCPU211は、MFP101からBluetoothのサービス情報を取得する。この実施形態4では、この時点でユーザ認証サービス501とMFP情報サービス502の情報が取得できるものとする。次にS1903に進みCPU211は、MFP101へログイン要求を発行する。実施形態4では、このログイン要求の際に、Distance(1801や1802)に、携帯端末102のCPU211が算出したMFP101との距離を書き込む。次にS1904に進みCPU211は、MFP101からログイン処理の結果として、ResultID及びStatusIDの更新をNotificationにより受信する。
そしてS1905でCPU211は、その受信した結果から、ログインの成否を判定する。ここでログインに成功したと判定した場合はS1906に進みCPU211は、BluetoothによるMFP101との接続を切断して、この処理を終了する。
一方、S1905でCPU211は、ログインに失敗したと判定した場合はS1907に進み、CPU211は、MFP101にローカルログインする代わりに、使用できる機能を代替機能としてユーザに提示する。これは前述の図8と同様である。そしてS1908に進みCPU211は、ユーザが代替機能を選択したか否かを判定する。ここでユーザが代替機能を選択せずにキャンセルボタン804を押下した場合はS1906に進み、CPU211はBluetoothによるMFP101との接続を切断して、この処理を終了する。一方S1908でCPU211は、ユーザが代替機能を選択したと判定した場合はS1909に進み、前述の図9のフローチャートを参照して説明したように、ユーザが選択した代替機能をユーザに提供する。そして、この代替機能の提供後、S1906に進み、CPU211は、不要になったMFP101とのBluetoothによる接続を切断して、この処理を終了する。
図20は、実施形態4に係るMFP101におけるローカルログイン処理の動作を説明するフローチャートである。尚、図20において、前述の図11の処理と同じ処理は、同じ番号を付して、その説明を省略する。前述の実施形態1では、ログイン要求を受けたMFP101は、図11のS1110において、ログイン要求レベルとログイン可否状態を比較して、そのログイン要求レベルが受付可能なレベルであるかを判定した。
これに対して実施形態4に係るMFP101のCPU201は、携帯端末102からのログイン要求を検知するとS2001に進み、Distance(1801,1802)に書き込まれた距離情報を取得する。次にS2002に進みCPU201は、実施形態4のログイン可否状態一覧(表11)を参照して、携帯端末102とMFP101との距離が、ログイン要求を受け付ける距離であるか否かを判定する。例えば、取得した距離が2m~30mの間であった場合は、表11より、ログイン可否状態がログイン可能を示す値「1」でなく、「2」或いは「3」を示している場合は、ログイン不可と判定しログイン処理をキャンセルする。また例えば、取得した距離が30cm~10cmの間であった場合、ログイン可否状態が「3」を示している場合はログイン不可と判定し、ログイン処理をキャンセルする。ログイン処理をキャンセルした場合、ResultIDには、ログインをキャンセルしたことを示す値「3」を設定し、S2003で携帯端末102に結果を通知する。
以上説明したように実施形態4によれば、携帯端末102は、MFP101との距離に応じた判定や処理を行う必要が無くなるため、携帯端末102の処理を単純にできるという効果がある。
[実施形態5]
次に本発明の実施形態5を説明する。前述の実施形態1~4では、MFP101がアドバタイズパケットを送信し、携帯端末102がそれを受信してMFP101と携帯端末102との間の距離を求めていた。これに対してこの実施形態5では、携帯端末102がアドバタイズパケットを送信し、MFP101がそれを受信して、MFP101がMFP101と携帯端末102との間の距離を求める例を説明する。尚、ここでも携帯端末102とMFP101との間の処理として説明するが、前述の実施形態の様に携帯端末103の場合も同様にできることはもちろんである。
図21は、本発明の実施形態5に係るMFP101のハードウェア構成を説明するブロック図である。尚、携帯端末102のハードウェア構成、及びMFP101,携帯端末102を含むシステムの構成は前述の実施形態1と同様であるため、それらの説明を省略する。この実施形態5に係るMFP101も、基本的には前述の実施形態に係るMFP101と同じであるため、前述の図2と共通する部分は同じ記号で示し、それらの説明を省略する。
MFP101の制御部2100の構成は以下の通りである。システムバス2114を介してCPU201、RAM203、ROM202、SRAM2101、ネットワークインターフェース210、RIP2103、スキャナ画像処理部2104、プリンタ画像処理部2105、ストレージコントローラ2108が接続されている。またCPU201は、UARTインターフェース2101を介して操作部205と接続されており、またUSBインターフェース2109、USBコネクタ2110を介して操作部205のBluetoothモジュール2113と接続されている。スキャナ画像処理部2104は、スキャナ207で原稿を読み取って得られた画像データをスキャナI/F2106を介して受信し、画像処理を行ってシステムバス2114に出力する。またプリンタ画像処理部2105は、システムバス2114を介して受け取った画像データを、プリンタ206の特性に合わせて色変換等を行った後、プリンタI/F2107を介してプリンタ206に出力して印刷させる。ストレージコントローラ2108はHDD204へのアクセスを制御している。CPU201は、ROM202に記憶されているブートプログラムを実行してHDD204にインストールされているOSやプログラムをRAM203に展開して実行することにより、後述する処理を実行する。
次に操作部205の構成を説明する。
サブCPU2111は、操作部205の動作を制御している。キー表示パネル2112は、タッチパネル機能を備えた表示パネルで、ユーザの操作を受け付けてサブCPU2111に知らせる。ROM2115は、サブCPU2111が実行するプログラムや各種データ等を記憶している。RAM2116はサブCPU2111による処理の実行時に各種データを記憶するワークエリアを提供する。Bluetoothモジュール2113は、携帯端末205のBluetoothI/F215とブルーツースの規格に従って通信する。
以上の構成に基づくMFP101の動作を簡単に説明する。LAN104を介して印刷データであるPDLデータを、ネットワークインタフェース210により受信する。CPU201は、その受信しPDLデータは一旦RAM203に書き込み、ストレージコントローラ2108を経由してHDDD204へ格納する。このHDD204に格納されたPDLデータは、CPU201によってディスプレイリストへ変換されRAM203を経由して再度HDD204に書き込まれる。次にHDD204のディスプレイリストは、CPU201により読みだされ、RIP2103に送られてラスタデータへ変換され、再度HDD204に書き込まれる。このようにして、MFP101に投入された印刷ジョブは、後述するログイン手法によってユーザがMFP101にログインすることにより、プリンタ206により印刷され。この印刷に際しては、HDD204からラスタデータがシステムバス2114経由で読み出されて、プリンタ画像処理部2105で濃度、スクリーン処理等が行われた後、プリンタI/F2107を介してプリンタ206に出力される。
次に、ユーザがMFP101にログインする手順を説明する。
CPU201は、USBコネクタ2110を介してBluetoothモジュール2113を制御する。具体的には携帯端末102から送信されるBluetooth Low Energy通信のadvertize packe(アドバタイジングパケット)を受信して携帯端末102からのログイン要求或いは印刷ジョブ投入などに対するサービスを実行する。ユーザは、ユーザが所有している携帯端末102によりMFP101に認証することによって、印刷ジョブの実行だけでなく、MFP101の操作画面を操作メニュー画面等へ遷移させて、MFP101を使用する権限を得ることができる。
次に実施形態5に係るMFP101による携帯端末102との通信処理を説明する。
図22は、実施形態5に係るMFP101が携帯端末102から信号により、携帯端末102のユーザをログインさせてログアウトするまでの処理を説明するフローチャートである。尚、この処理を実行するプログラムはHDD204に格納されており、実行時にRAM203に展開されCPU201により実行される。
実施形態5では、MFP101と携帯端末102は、Bluetooth Low Energy通信規格を用いて相互に通信する。ここで携帯端末102からMFP101に要求されるサービスでは、MFP101から所定の距離内にある携帯端末102から送信されるユーザIDに従って自動的にログインし、所定の距離以遠になると自動的にログアウトするような制御を含む。
まずS2201でCPU201は、Bluetooth Low Energyのスタンバイ状態へ遷移する。次にS2202に進みCPU201は、ユーザの認証が可能な状態か否かを判定する。ユーザの認証が可能であればS2203に進み、そうでないときはユーザの認証が可能になるのを待ってS2203に進む。S2203でCPU201は、携帯端末102からの要求を受けられるサービス、ここでは認証処理が可能であるように設定してあるかを判定する。設定してない場合はS2204に進み、認証を行うことができるように設定するように管理者に促してS2203に進む。こうしてS2203でCPU201は、携帯端末102からの要求を受けられるサービスが設定済となるとS2205に進み、ログインの基準となる距離が設定されているかどうかを判定する。ここで設定してないと判定した場合はS2206に進み、距離を設定するようにMFP101の管理者に促して設定させる。こうして受信したBluetoothのアドバタイジングパケットの送信元と接続するための条件である距離がMFP101に設定されるとS2207に進む。S2207でCPU201は、スキャニング状態へ遷移してアドバタイジングパケットの受信待ちに入る。そしてS2208でCPU201は、アドバタイジングパケットを受信するとS2209に進み、その受信したアドバタイジングパケットを解析する。そしてここでCPU201は、送信元からの距離、サービスUUID、及びユーザのIDを取得する。そしてS2210に進みCPU201は、受信したアドバタイジングパケットの送信元からの距離が、S2205で設定してある値以内であるか否かを判定する。ここで設定した値以内であると判定するとS2211に進むが、そうでないときはS2208に進む。ここでもユーザIDに応じて、設定する距離が変更されるようにしても良い。即ち、実施形態1でも説明したように、常にMFP101の近傍で作業しているユーザAの距離を例えば30cmとし、それ以外のユーザに対して設定された距離は、例えば2mとしても良い。従って、この場合はS2210で、ユーザIDに応じた接続距離以内かどうかを判定する。S2211でCPU201は、受信したアドバタイジングパケットに記載されているサービスUUIDがMFP101に設定されている対応可能なサービスであるか、この場合は認証サービスの要求であるか否かを判定する。そうであればS2212に進むが、そうでないときはS2208に進む。
S2212でCPU201は、int状態へ遷移してS2213に進み、CPU201はアドバタイジングパケットを送信してきた携帯端末102へConnect Req(接続要求)パケットを送信する。そしてS2214で携帯端末102からのConnect Req(接続要求)パケットを受信するとS2215に進む。S2215でCPU201は、携帯端末102から要求されたユーザIDでのログイン処理を実行する。ここでは前述の表1のユーザ情報一覧を参照して、ユーザのログインを許可するかどうかを判定する。そしてS2216に進みCPU201は、携帯端末102に対してログイン処理の結果である、認証成功或いは認証失敗を通知する。次にS2217に進みCPU201はS2207と同様に、スキャニング状態へ遷移し、S2218でアドバタイジングパケットの受信を待ち、アドバタイジングパケットを受信するとS2219に進む。S2219でCPU201は、S2209と同様に、その受信したアドバタイジングパケットを解析して、送信元からの距離、サービスUUIDの取得、ユーザIDの取得を行う。次にS2220に進みCPU201は、ログアウトするための距離かどうかを判定する。S2220でCPU201は、S2218で受信したアドバタイジングパケットの送信元がログインしていたユーザIDと同じで、かつ所定の距離以上であると判定した場合はS2221に進む。S2221でCPU201は、その携帯端末102のユーザをログアウトしてS2201に戻る。
このようにして、携帯端末102のユーザは、携帯端末102を所持した状態でMFP101に、予め設定されている距離まで接近するだけでそのMFP101にログインすることができる。このときMFP101には、予め、ログイン可能な送信元までの距離、受付可能なサービスUUID,認証するユーザ情報が登録されているものとする。
次に実施形態5に係る携帯端末102の動作を説明する。
図23は、実施形態5に係る携帯端末102がMFP101にログインする処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ213に格納されており、実行時にRAM211に展開されCPU211により実行される。
まずS2301でCPU211は、携帯端末102に格納されているアプリを起動する、尚、このアプリの起動はユーザが携帯端末102を操作することによりなされる。次にS2302に進みCPU211は、MFP101にログインするためのユーザIDが設定されているか否かを判定する。ここでユーザIDが設定されていないと判定するとS2303に進みCPU211は、携帯端末102にユーザに認証させたいユーザIDを設定させるように促してS2302に進む。こうしてユーザIDが設定された状態になるとS2304に進みCPU211は、MFP101へ要求するサービスUUIDが設定されているか、ここではMFP101への認証サービスの要求が設定されているかを判定する。ここで設定されていないと判定するとCPU211はS2305に処理を進め、携帯端末102の使用者にサービスUUIDを設定するように促してS2304に進む。こうしてS2304でサービスIDが設定された状態になるとS2306に進みCPU211は、アドバタイジングパケットを送信する状態に遷移する。
次にS2307に進みCPU211は、MFP101からのConnect Reqパケットの受信を待ち、Connect Reqパケットを受信するとS2308に進んで、MFP101と接続した状態に遷移する。そしてS2309に進みCPU211は、MFP101へConnect Resパケットを送信してS2310に進み、ログイン処理が成功したか否かの認証結果の受信を待つ。S2310で認証結果を受信するとS2311に進み、その結果の内容を携帯端末102の操作部214に表示する。ここでは、認証に成功した場合は、例えば「ログインしました」と表示し、認証に失敗した場合は「ログインに失敗しました」等を表示する。そしてS2312に進みCPU211は、アドバタイジング状態へ遷移してS2307に進む。
このようにして携帯端末102のユーザは、その携帯端末102をMFP101に近づけるだけで、携帯端末102に設定されているユーザIDを用いてMFP101にログインするための処理を実行できる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。