説明

画像形成装置、情報処理方法、及び情報処理プログラム

【課題】MFPにUSBデバイスが接続された際、接続されたUSBデバイスの使用に対して柔軟な判定を行う。
【解決手段】USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、判定手段は、情報取得手段により取得された情報が管理テーブルに記憶されていない情報である場合、取得された情報のベンダID、又はプロダクトIDと同じベンダID、又はプロダクトIDに対し、管理テーブルで使用許可として記憶されている数が所定数以上であれば、接続されたUSBデバイスを使用許可と判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USB(Universal Serial Bus)デバイスを接続可能な画像形成装置に関する。
【背景技術】
【0002】
ハードウェア構成への厳しいコスト要求が求められるMFP(Multifunction Peripheral)のような機器では、一般的に操作性の低いハードキーが用いられている。ユーザが例えばログインのためのユーザ名、パスワードや、スキャン配信の宛先情報などの文字列データを入力する際は、操作性の低いハードキーを用いて入力を行う。このハードキーには、いわゆる携帯電話式文字入力キーや、テンキー、などがある。
【0003】
また、大型タッチパネルを搭載したMFPであれば、タッチパネル上に表示されるソフトウェアキーボードを使用する方式が一般に実施されている。文字入力手段を拡張し、ユーザの使い勝手を向上させるため、USBホストを備えるMFPにおいて、USBホストに接続されたUSBキーボードを用いた文字入力を可能とする技術が考えられ、既に知られている。
【0004】
例えば、特許文献1には、プアな文字入力手段を持つMFPにおいて、MFP上にUSBキーボードをハンドリングするアプリケーションを配置し、USBホストに接続されたUSBデバイスのクラス・サブクラス情報をもとに、USBデバイスがUSBキーボードであるか否かを判断する技術が開示されている。これにより、USBキーボードをハンドリングするアプリケーションを利用して、ユーザがUSBキーボードから入力した文字を受け付けることで、文字入力手段を拡張することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、USBホストに接続されたUSB機器がUSBキーボードであると判断し、デバイスのハンドリングを開始するか否かを決定する際、USBデバイスのクラスがHuman Interface Deviceクラスであり、サブクラスがKeyboardクラスであるかどうかを判断基準とするのが一般的であった。この方式では、クラスがHuman Interface Deviceクラスであり、サブクラスがKeyboardクラスであるが、実質はUSBキーボードと同等に扱うべきでない(または、扱わせたくない)USB機器に関しても、USBキーボードと同等に扱ってしまうという問題点がある。
【0006】
例えば、USBデバイスの例として、非接触IDカードや磁気カード、バーコードカードのカードリーダの一部が挙げられる。これらのUSBデバイスは、MFPにおけるIDカード(例えば、ユーザの社員証や入退館証)によるユーザ認証用途に広く使用されている。また、これらのUSBデバイスは、ユーザがカードをリーダに接続した(またはかざした)際、カードIDをあたかもUSBキーボードから入力された文字列としてUSBホストに出力する機能を有している。もし、これらのデバイスのクラス、サブクラス情報がUSBキーボードと同様であれば、USBキーボードと同様に一般的な文字入力デバイスとしてハンドリングされてしまう。その結果、ユーザのカードIDのような機密性の高い情報が、入力された文字としてMFPの入力文字表示部上にそのまま表示されてしまう事となり、セキュリティ情報の漏洩を引き起こす可能性がある。
【0007】
そこで、本発明は上記問題点に鑑みてなされたものであり、MFPにUSBデバイスが接続された際、接続されたUSBデバイスの使用に対して柔軟な判定を行うことができる画像形成装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明における一態様の画像形成装置は、USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、前記USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、前記情報取得手段により取得された情報と、前記管理テーブルとに基づいて前記接続されたUSBデバイスの使用を判定する判定手段とを備え、前記判定手段は、前記情報取得手段により取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダID、又はプロダクトIDと同じベンダID、又はプロダクトIDに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたUSBデバイスを使用許可と判定する。
【0009】
また、本発明における他の態様の情報処理方法は、USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを有する画像形成装置における情報処理方法であって、前記USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたUSBデバイスの使用を判定する判定ステップとを有し、前記判定ステップは、前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダID、又はプロダクトIDと同じベンダID、又はプロダクトIDに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたUSBデバイスを使用許可と判定する。
【0010】
また、本発明の画像形成装置、情報処理方法は、コンピュータにより実行可能なプログラムにより実現することができ、また、プログラムを記録した記録媒体をコンピュータに読み取らせて実現することも可能である。
【発明の効果】
【0011】
本発明によれば、MFPにUSBデバイスが接続された際、接続されたUSBデバイスの使用に対して柔軟な判定を行うことができる。
【図面の簡単な説明】
【0012】
【図1】実施例に係るMFPのハードウェア構成の一例を示すブロック図。
【図2】実施例のMFPの基本モジュール構成を示す概略図。
【図3】USBデバイスディスクリプタの一例を示す図。
【図4】USBデバイス管理テーブルの例1を示す図。
【図5】USBデバイス管理テーブルの例2を示す図。
【図6】実施例におけるMFPの機能構成の一例を示すブロック図。
【図7】実施例のMFPにおけるUSBアプリの起動時の制御シーケンスを示す図。
【図8】USBデバイス管理サービスの処理の一例を示すフローチャート。
【発明を実施するための形態】
【0013】
以下、本発明の画像形成装置に係わる実施例を示す。なお、この実施例は、プリンタ装置やMFP機等に適用し得る構成を持つ装置として、本発明に係わるUSBデバイス(USBI/Fを介して外部から接続されたデバイス)の利用が可能な画像形成装置の実施例を例示する。
【0014】
<ハード構成>
図1は、実施例に係るMFP1のハードウェア構成の一例を示すブロック図である。図1に示すように、MFP1は、制御部2、主記憶部3、補助記憶部4、外部記憶装置I/F部5、ネットワークI/F部6、操作部7、表示部8、エンジン部9を含む。
【0015】
制御部2は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUである。また、制御部2は、主記憶部3に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【0016】
主記憶部3は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部2が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0017】
補助記憶部4は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【0018】
外部記憶装置I/F部5は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された記憶媒体15(例えば、フラッシュメモリなど)とMFP1とのインタフェースである。
【0019】
また、記憶媒体15に、所定のプログラムを格納し、この記憶媒体15に格納されたプログラムは外部記憶装置I/F部5を介してMFP1にインストールされ、インストールされた所定のプログラムはMFP1により実行可能となる。
【0020】
ネットワークI/F部6は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器とMFP1とのインタフェースである。
【0021】
操作部7や表示部8は、キースイッチ(ハードキー)とタッチパネル機能(GUIのソフトウェアキーを含む:Graphical User Interface)を備えたLCD(Liquid Crystal Display)とから構成され、MFP1が有する機能を利用する際のUI(User Interface)として機能する表示及び/又は入力装置である。
【0022】
エンジン部9は、実際に画像形成に係る処理を行うプロッタ、スキャナ等の機構部分である。
【0023】
<モジュール構成>
図2は、実施例のMFP1の基本モジュール構成を示す概略図である。ハードウェア構成は、図2においてエンジン(プロッタ)として示される構成部に、画像形成処理に必要なプロッタエンジン10、エンジン制御ボード11のほか、本発明に係わる要素としてUSBデバイス17を有する。
【0024】
エンジン制御ボード11には、装置全体を制御するためのCPU2が搭載されている。このCPU2は、後述するソフトウェア構成により提供されるプログラムに従い画像形成処理を行うために装置に備えられたプロッタエンジン10等の処理手段及びUSBI/Fを介して接続されたUSBデバイス17を制御し、所期の機能を実現する。
【0025】
USBデバイス17には、USBデバイスクラスドライバが、後述する装置本体側のソフトウェアに応動し、USBデバイスを駆動するためのソフトウェアとして組み込まれており、装置本体と接続すると、USBホストコントローラの要求に対して、ディスクリプタ情報によって応答する。
【0026】
ソフトウェア構成は、図2のモジュール構成に示すように、大きく分けると、アプリケーション層とサービス層とからなる。アプリケーション層には、ページ記述言語およびプリンタ用のアプリケーションであるプリンタアプリ51を有し、MFP1に関連するユーザーサービスに固有の処理を行う。
【0027】
プリンタアプリ51は、ネットワーク管理サービス32などの外部I/Fとの接続機能を提供するサービス層のモジュール(後述)から印刷データを受信し、言語の解釈を行い画像データへ展開する。展開された画像データは、エンジンI/F13を通してプロッタエンジン10に渡され、プリント出力される。
【0028】
なお、実施例では、機密印刷モードの動作が可能であり、機密印刷が指示された印刷データであれば、直ちにはプリント出力せず、HDDなどの外部記憶装置に一旦データ蓄積しておく。その後、後述するオペレーションパネル処理モジュール53からのパスワード入力を受付け、印刷データ中のパスワードと一致した場合には一旦HDDに蓄積された印刷データを展開、プリント出力を実行する。
【0029】
オペレーションパネル処理モジュール53は、実施例では、プリンタアプリ51の一部として構成されている。MFP1が装備するオペレーションパネルから印刷条件等の設定入力を行うための操作キー・ボタンや各種の表示器・表示パネルなどの制御をつかさどるモジュールである。機密印刷が指定された場合などは、ユーザに対してパスワード入力を促すような画面を表示する機能を持つ。
【0030】
また、本発明に係わる要素としてUSBアプリケーション(以下、USBアプリともいう)57をアプリケーション層に搭載する。USBアプリ57は、接続されたUSBデバイス17のデータを解析し、デバイスに特化した機能提供を行うためのモジュールである。USBアプリ57は、USBデバイス17が接続されていない場合は、システム上の仮想メモリ節約のため起動していないが、USBデバイス17の接続時にUSBデバイス管理サービス37によって起動される。
【0031】
また、USBアプリ57は、USBI/Fにて接続されたUSBデバイス17からの入力を取得し、プリンタアプリ51へ送信する機能を提供する。なお、MFP1の場合には、この他に、コピー、ファクスおよびスキャナなどのアプリを備えているが、これらのアプリは必ずしも必要ではない。
【0032】
サービス層には、アプリケーション層からの処理要求を解釈して各ハードウェア資源の獲得要求を発生するネットワーク管理サービス32、メモリ管理サービス33、本発明に係わる要素としてのUSBデバイス管理サービス37等の管理サービスと、上記管理サービスからの獲得要求を調停するシステム管理サービス31と、オペレーティングシステム(OS)20と、USBデバイス管理テーブル38とを有する。
【0033】
サービス層は、予め定義されている関数によりアプリケーション層からの処理要求を受信可能とするGW−API(アプリケーションプログラムインターフェース)55を有する。
【0034】
OS20は、上記各管理サービスおよびアプリケーション層の各ソフトウェアをプロセスとして並列実行し、OS20上にホストコントローラ及び本発明に係わる要素としてのUSBホストコントローラ27の機能を実現する。なお、ホストコントローラは、ホスト側の物理デバイスを制御し、デバイスとの論理的なデータバスを提供する。
【0035】
USBデバイス管理サービス37は、MFP1のソフトウェア構成において、常駐のデーモンとして存在する。デーモンとして常駐するUSBデバイス管理サービス37が起動されると、USBアプリケーション57は、デーモンの提供するAPI55を通して所有するアプリケーションIDと利用可能なUSBデバイスディスクリプタのペアをデーモンに登録する。なお、USBデバイスディスクリプタは、USBデバイスが接続される度に、USBデバイス17のデバイスクラスドライバから取得される。
【0036】
デーモンは、USBアプリケーション57からの登録依頼を受取ると、その度にUSBデバイス管理テーブル(以下、管理テーブルともいう)38を更新し、USBアプリケーション57とディスクリプタ情報の関連情報を蓄える。管理テーブル38には、USBデバイスを特徴付けるデバイスクラス情報やデバイスID等と該デバイスに用いるアプリケーションプログラムと該アプリケーションの使用可否の関連を表す情報が記される。
【0037】
USBデバイス管理サービス37は、管理テーブル38を不揮発性の記憶場所に保存し、管理する。従って、次にUSBデバイス17が接続されたときに、管理テーブル38を参照することで、接続されたデバイスに応じたUSBアプリケーション57の使用可否を判定することができる。
【0038】
図3は、USBデバイスディスクリプタの一例を示す図である。USBデバイスディスクリプタは、図3の例に示すように、USBデバイス17の動作や機能の定義を記したものである。USBデバイスディスクリプタの内容に従って、USBホストコントローラ27でコンフィギュレーションを行い、接続したUSBデバイス17とUSBホストコントローラ27の間の通信が可能な条件を設定する。
【0039】
また、USBデバイスディスクリプタには、図3の例に示すように、device classやdevice subclassといった情報を持っているので、抽象化したUSBデバイスの下位クラスの実際に使用するデバイスを特定することが可能になる。実施例では、インタフェースレベルでハンドリングを行うため、図3の例に示すようにインタフェースのデバイスクラスやサブクラスを参照する。
【0040】
また、図3の例に示すように、USBデバイスディスクリプタからベンダID、プロダクトID、デバイスリリース番号(ID)を特定することも可能である。
【0041】
ここで、各情報の意味について説明しておく。クラス情報は、デバイスの持つUBSインタフェースの種類を示す情報である。例えば、キーボードやマウスのようなHID(Human interface device)、USBフラッシュメモリのようなMSD(Mass Storage Device)がクラス情報である。
【0042】
サブクラス情報は、デバイスの持つUSBインタフェースの種類を示す情報の補足情報である。例えば、クラス情報がHIDであった場合、キーボードやマウスがサブクラス情報である。
【0043】
ベンダIDは、USBデバイスの製造元を示すユニークな識別子である。プロダクトIDは、USBデバイスの型番を示すユニークな識別子である。デバイスリリース番号は、USBデバイスのファームウェアバージョンなどを示すユニークな識別子である。
【0044】
USBデバイス17を特徴付けるデバイスクラス情報、及びサブクラス情報、並びにベンダID、プロダクトIDのいずれか一方を少なくとも用いて、接続したUSBデバイスの使用可否を判定するフラグを管理テーブル38に管理させる。
【0045】
ここで、図4と図5とを用いてUSBデバイス管理テーブル38の例について説明する。図4は、USBデバイス管理テーブルの例1を示す図である。図4に示すように、管理テーブル38は、USBデバイス17のクラス、サブクラス、ベンダIDを関連付けて、USBデバイス17の使用可否を管理する。
【0046】
図4に示す例について、使用可否を示すフラグ(以下、使用フラグ)には、「CANDIDATE」と「IGNORE」がある。「CANDIDATE」は、USBアプリ57の起動を許可することを意味する。「IGNORE」は、USBアプリ57の起動を許可しないことを意味する。
【0047】
例えば、クラスが「HID」、サブクラスが「Keyboard」、ベンダIDが「0x1234」である場合、使用フラグが「CANDIDATE」であるので、このUSBデバイス17は、KB(Keyboard)入力支援アプリを起動して使用することができる。
【0048】
同じクラス情報、サブクラス情報であっても、ベンダIDが「0x4321」の場合は、使用フラグが「IGNORE」であるため、このUSBデバイス17はKB入力支援アプリを起動できない。このベンダID「0x4321」が示すベンダは、信頼性が低いために、このベンダが作ったUSBデバイスを接続させたくない場合に有効である。
【0049】
なお、図4に示すベンダIDは、プロダクトIDでもよい。プロダクトIDにした場合は、製品毎にUSBアプリの使用可否を判定することができる。また、プロダクトIDだけでは、異なるベンダ間で同じIDが付与される場合があるので、ベンダID及びプロダクトIDを他の情報と関連付けて管理テーブル38に管理させてもよい。これより、USBデバイスの使用可否をより柔軟に判定できるようになる。
【0050】
図5は、USBデバイス管理テーブルの例2を示す図である。図5に示すように、管理テーブル38は、USBデバイス17のクラス、サブクラス、ベンダID、プロダクトID、デバイスリリース番号を関連付けて、USBデバイス17の使用可否を管理する。図5に示す例では、使用フラグに「ONLY」がある。「ONLY」の意味は、このUSBデバイス17のみを使用許可するという意味である。
【0051】
例えば、クラスが「HID」のUSBデバイスに対して1つの「ONLY」を設定して、1つのUSBデバイスだけに使用許可をすることができる。また、サブクラスに1つずつ「ONLY」を設定して、サブクラス毎に1つのUSBデバイスを許可することもできる。
【0052】
よって、「ONLY」が管理テーブル38に登録されると、「ONLY」のデバイス情報に対して使用許可の判定が行われる。また、図5に示す例では、デバイスリリース番号を用いるため、同じ製品であっても、バージョンによって使用の可否を詳細に判定することが可能になる。
【0053】
USBデバイスの接続時に、管理テーブル(図4又は図5参照)を用いて使用許可された場合、接続されたデバイスに応じたUSBアプリケーション57が起動される。
【0054】
即ち、USBデバイス17が装置本体に接続されると、USBホストコントローラ27は、USBデバイス17が接続されたことを検知し、検知したUSBデバイス17にUSBデバイスディスクリプタの取得要求を行う。この要求に応えて、USBデバイス17のUSBデバイスクラスドライバによって送られてくるUSBデバイスディスクリプタをホスト側で取得する。
【0055】
次に、デーモンとして常駐するUSBデバイス管理サービス37は、USBホストコントローラ27によって取得されたUSBデバイスディスクリプタに記されているデバイス情報(クラス情報、サブクラス情報、ベンダIDなど)がデーモン内で管理している管理テーブル(図4又は図5参照)に登録されているかを検索する。
【0056】
管理テーブル38に記された「device class」、「device subclass」と一致する場合は、このデバイス情報に関連付けられたUSBアプリケーション57を示す情報を管理テーブル38から取得して、予め登録しておいたこのUSBアプリケーション57に対してUSBデバイス17の接続を通知する。
【0057】
USBアプリケーション57は、USBデバイス17の接続通知を受けて、各種の初期化処理を実行することが可能となる。
【0058】
初期化処理に次いで、USBデバイス管理サービス37は、USBデバイスディスクリプタに基づいて、データ送受信のためのデータバスを構築する。データバスとしては、Unix(登録商標) domain socketや汎用的なIPC(Inter process Communication)などが考えられる。なお、実施例におけるデーモンの内部には、汎用的なMass Storage ClassドライバやPrinter Class Driverが内部に用意されており、USBデバイス17の接続と同時に、上位のUSBアプリケーション57に対してこれらの機能を提供することができる。
【0059】
<機能構成>
次に、MFP1の本発明における概略機能構成について説明する。図6は、実施例におけるMFP1の機能構成の一例を示すブロック図である。図1に示すように、USBアプリ57は、表示制御手段501を備え、USBデバイス管理サービス37は、情報取得手段301、判定手段302を備える。
【0060】
情報取得手段301は、USBホストコントローラ27から、USBデバイスディスクリプタのデバイス情報を取得する。情報取得手段301は、管理テーブル38に登録されているデバイス情報を取得すればよい。例えば、図4に示す管理テーブルであれば、情報取得手段301は、クラス情報、サブクラス情報、及びベンダIDを取得する。また、図5に示す管理テーブルであれば、情報取得手段301は、クラス情報、サブクラス情報、ベンダID、プロダクトID、及びデバイスリリース番号を取得する。
【0061】
判定手段302は、情報取得手段301が取得したデバイス情報を用いて管理テーブル38を参照し、接続されたUSBデバイス17が使用可能か判断する。判定手段302は、取得したデバイス情報と、管理テーブル38に記憶されているデバイス情報とを照合して一致するか判定をする。判定手段302は、一致したデバイス情報に関連付けられた使用フラグが「CANDIDATE」か「ONLY」の場合に、使用可能と判断し、接続要求を出すアプリを特定する。
【0062】
USBデバイス管理サービス37は、管理テーブル38から特定したUSBアプリ57を起動する。どのUSBアプリ57を起動すればよいかは、管理テーブル38を参照すれば分かる。USBアプリ57の表示制御手段501は、USBデバイス17から取得した情報についてMFP1のオペレーションパネル(表示部8)への表示制御を行う。また、表示制御手段501は、判定手段302により使用不可と判定されたUSBデバイス17に関連する情報(例えば、記憶されている情報)は、MFP1の表示部8に表示されない。
【0063】
また、判定手段302は、USBホストコントローラ27から取得したデバイス情報が、管理テーブル38に記憶されていない場合、以下の条件を満たすことで、使用許可と判定し、このデバイス情報を管理テーブル38に登録する。
(1)取得したベンダIDと同じベンダIDが、管理テーブル38に使用可として所定数以上登録されている
(2)取得したプロダクトIDと同じプロダクトIDが、管理テーブル38に使用可として所定数以上登録されている。
【0064】
判定手段301は、(1)、(2)の条件のいずれか又は両方満たすと判定すれば、このUSBデバイスを使用可と判断する。これは、あるベンダIDが管理テーブル38に使用可として所定数以上登録されていれば、このベンダは信用がおけるベンダと判断できるからである。
【0065】
また、判定手段301は、このUSBデバイス17のデバイス情報を、使用可フラグを「CANDIDATE」として管理テーブル38に記憶する。これより、このUSBデバイス17の次回の接続時には、スムーズに使用可と判定することができる。
【0066】
<具体例>
次に、USBデバイス17として、USBキーボードを接続し、入力支援を行うことができるようにする具体例について説明する。
【0067】
従来、オペレーションパネルを、数行のLCD(Liquid Crystal Display)パネル及び数個のボタンから構成している例がある。このような貧弱なUI(ユーザインターフェイス)による場合、USBデバイスとして、USBキーボードを接続し、入力の支援を行う際に、劣悪なUSBキーボードを使用可能と判定することを防ぐことができる。劣悪なキーボードは管理テーブル38にそのデバイス情報と使用フラグ「IGNORE」とを記憶しておく。
【0068】
具体例では、図2に示すハードウェア構成のUSBキーボードをUSBデバイス(図2に示したUSBデバイス17に相当)としている。また、ソフトウェア構成のキーボード入力支援アプリをUSBアプリ(図2に示したUSBアプリ57に相当)としている。
【0069】
キーボード入力支援アプリは、USBキーボードが接続されていない場合は、システム上の仮想メモリを節約するために、起動させない。しかし、USBキーボードの接続時には、判定手段302による使用判定が行われ、使用許可の場合にデーモンとして常駐するUSBデバイス管理サービス37によって起動される。また、USBI/Fを介して接続されたUSBキーボードから操作者が行う入力を取得し、オペレーションパネル処理モジュール53へ送信する機能を提供する。また、判定手段302による使用判定の結果、使用不可の場合、キーボード入力支援アプリは起動されない。
【0070】
なお、キーボード入力支援アプリと協働するオペレーションパネル処理モジュール53は、キーボード入力支援アプリで受け付け、このアプリとの間に構築した通信経路を経て、取得した文字入力を処理し、UIとして機能するオペレーションパネルに表示させる。
【0071】
また、USBキーボードのEnterキーなどの入力を受けて、入力処理を完了するなどの機能を持つ。
【0072】
また、他の具体例としては、USBデバイス17としてUSBフラッシュメモリ、USBアプリ57としてSCSIアプリなどが考えられる。この場合、USBフラッシュメモリをMFP1に接続した場合、前述したように判定手段302による使用判定を行い、使用許可の場合にUSBデバイス管理サービス37によってSCSIアプリが起動される。これより、USBフラッシュメモリに記憶されているデータの読み出し、書き込みが可能となる。
【0073】
一方、判定手段302による使用判定の結果、使用不可の場合にはSCSIアプリが起動されない。よって、USBフラッシュメモリからのデータの読み出し、書き込みは不可能となる。これより、品質の悪いUSBフラッシュメモリがわかっている場合には、事前にその使用を防ぐことができる。
【0074】
また、他の具体例としては、USBデバイス17がICカードであり、このICカードのクラス情報がHID、サブクラス情報がキーボードとする。従来では、このICカードがUSBキーボードとして使用が許可され、個人情報が表示部8に表示されていた。本発明では、このICカードのプロダクトIDを使用フラグ「IGNORE」として管理テーブル38に記憶させる。これより、クラス情報がHID、サブクラス情報がキーボードであるICカードなどの秘密情報を有するUSBデバイスが接続された場合、秘密情報が表示部8に表示されるのを防ぐことができる。
【0075】
なお、以上説明した使用フラグでは、USBデバイスの使用可否を示していたが、USBデバイスからの情報を表示部8に表示する可否(例えば、ICカードからの情報を表示部8に表示する可否)、USBデバイスからのデータの入力、又は/及び出力の可否(USBフラッシュメモリの場合、読み出し、書き込みの可否)などを表すフラグとしてもよい。
【0076】
<動作>
次に、実施例におけるMFPの動作について説明する。図7は、実施例のMFP1におけるUSBアプリ57の起動時の制御シーケンスを示す図である。以下、USBアプリ57の起動時の制御動作を図7に示すシーケンスに従って説明する。
【0077】
ステップS101で、USBデバイス17が装置本体に接続されると、ホストコントローラとして機能するOS20は、まず、USBデバイス17にディスクリプタの取得要求を行う。この要求にUSBデバイス17のデバイスドライバが応えて、ディスクリプタ情報がOS20に送信される。
【0078】
ステップS102で、常駐するデーモンとしてのUSBデバイス管理サービス37は、OS20によって行われる接続処理を監視し、OS20がディスクリプタを取得したら、取得されたUSBデバイス17のディスクリプタの検出を行う。
【0079】
ステップS103で、USBデバイス管理サービス37は、管理テーブル38において使用フラグが「ONLY」であるデバイス情報を取得し、ステップS102で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すればステップS106に進み、一致しなければステップS104に進む。
【0080】
ステップS104で、USBデバイス管理サービス37は、管理テーブル38において使用フラグが「IGNORE」であるデバイス情報を取得し、ステップS102で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すれば、使用不可として処理を終了し、一致しなければステップS105に進む。
【0081】
ステップS105で、USBデバイス管理サービス37は、管理テーブル38において使用フラグが「CANDIDATE」であるデバイス情報を取得し、ステップS102で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すればステップS106に進み、一致しなければ処理を終了する。なお、ステップS105において照合結果が一致しなかった場合は、後述する使用条件の判定処理を行ってもよい。
【0082】
ステップS106で、USBデバイス管理サービス37は、照合の結果、使用許可されたUSBデバイス17と判定した場合は、このデバイス情報に関連付けられたアプリIDを取得する。次に、USBデバイス管理サービス37は、予め登録しておいたアプリIDを持つUSBアプリ57に対してUSBデバイス17の接続を通知する。USBアプリ57は、USBアプリ57の接続通知を受けて、アプリケーションを起動する。
【0083】
USBアプリ57は、起動時の初期化処理後に、アプリケーションプログラムに従った動作として、USBデバイス17の入力に対応する動作を以下のように実行する。
【0084】
ステップS107で、USBデバイス17からデータが入力されると(例えば、キーボードの場合は操作入力)、OS20によってこの操作入力が受け付けられる。
【0085】
ステップS108で、USBアプリ57は、OS20によって受け付けられた入力を検出する。
【0086】
ステップS109で、USBアプリ57は、OS20を介して検出した入力文字列データをプリンタアプリケーション51のオペパネ処理モジュール53に送信する。
【0087】
ステップS110で、入力文字列データを受取るオペパネ処理モジュール53は、表示パネルを通して受取ったデータを操作者にUI表示する。
【0088】
例えば、USBデバイス17がUSBキーボードで、USBアプリ57がキーボード入力支援アプリの場合、USBキーボードからパスワードを入力するとき、所定の文字数よりなる文字列を1文字ずつ順にステップS107〜S110と同様のシーケンスに従って行い、パスワードチェック処理におけるUIを支援する。
【0089】
なお、上記例では、管理テーブル38から所要のデバイス情報を取得し、検出されたデバイス情報と照合する例について説明したが、検出されたデバイス情報と同じ情報があるか否かを、管理テーブル38の「ONLY」「IGNORE」「CANDIDATE」の順に、対応するデバイス情報を検索してもよい。
【0090】
次に、USBデバイス管理サービス37による使用条件の判定処理を説明する。図8は、USBデバイス管理サービス37の処理の一例を示すフローチャートである。図8に示す処理では、管理テーブル38にデバイス情報が記憶されていなかった場合(未知のデータであった場合)、管理テーブル38に記憶された情報から未知のデバイス情報に対して使用判定を行う。
【0091】
ステップS201で、USBデバイス管理サービス37は、管理テーブル38を参照して、ステップS102で検出されたデバイス情報のベンダIDと同じであり、かつ使用可(使用フラグが「ONLY」と「CANDIDATE」)のベンダIDの数をカウントする。
【0092】
ステップS202で、USBデバイス管理サービス37は、ステップS201でカウントした数が所定値以上であるかを判定する。ここでの使用条件は、ステップS201でのカウント値が所定値以上とする。その他の使用条件として、デバイス情報のうち、任意の情報の組み合わせが所定の条件を満たすことも考えられる。例えば、クラス情報とベンダIDとが事前設定された情報と同じであることを使用条件としてもよい。
【0093】
ステップS202の判定結果がYESである場合、ステップS203に進み、判定結果がNOである場合処理を終了する。カウントに対する所定値は、ユーザが事前に設定しておく。
【0094】
ステップS203で、USBデバイス管理サービス37は、検出されたデバイス情報を管理テーブル38に記憶する。このとき、使用フラグは「CANDIDATE」にする。また、ユーザ設定により「ONLY」として記憶されるようにしてもよい。
【0095】
ステップS204で、USBデバイス管理サービス37は、関連するクラス情報、サブクラス情報に基づいて、対応するUSBアプリ57を起動する。このとき、対応するアプリがなければ、起動可能なアプリを表示部18に表示し、ユーザに選択させてもよい。
【0096】
これより、管理テーブル38に記憶されていないデバイス情報を、USBデバイス管理サービス37が取得したとしても、管理テーブル38に記憶されたデータに基づいて使用判定を行うことができる。
【0097】
以上、実施例によれば、MFPにUSBデバイスが接続された際、接続されたUSBデバイスの使用に対して柔軟な判定を行うことができる。また、実施例によれば、管理テーブルに記憶されている未知のUSBデバイスが接続されても、管理テーブルに記憶されているデイバス情報に基づいて、未知のUSBデバイスの使用判定を行うことができる。
【0098】
なお、実施例において説明した処理内容をコンピュータに実行させるためのプログラムとし、このプログラムをコンピュータに実行させて前述した処理を画像形成装置に実現させることも可能である。また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した処理を画像形成装置に実現させることも可能である。
【0099】
なお、本発明は、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施例にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【0100】
10 プロッタエンジン
11 エンジン制御ボード
17 USBデバイス
20 OS
27 USBホストコントローラ
31 システム管理サービス
32 ネットワーク管理サービス
33 メモリ管理サービス
37 USBデバイス管理サービス
38 USBデバイス管理テーブル
51 プリンタアプリケーション
53 オペレーションパネル処理モジュール
57 USBアプリケーション
301 情報取得手段
302 判定手段
501 表示制御手段
【先行技術文献】
【特許文献】
【0101】
【特許文献1】特開2006−239969号公報

【特許請求の範囲】
【請求項1】
USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、
前記USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、
前記情報取得手段により取得された情報と、前記管理テーブルとに基づいて前記接続されたUSBデバイスの使用を判定する判定手段とを備え、
前記判定手段は、
前記情報取得手段により取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダID、又はプロダクトIDと同じベンダID、又はプロダクトIDに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたUSBデバイスを使用許可と判定する画像形成装置。
【請求項2】
前記判定手段は、
前記取得手段から取得した情報が前記管理テーブルに記憶されていない情報である場合に、使用許可と判定したとき、前記管理テーブルの使用可否を使用許可として前記取得した情報を前記管理テーブルに記憶する請求項1記載の画像形成装置。
【請求項3】
前記管理テーブルは、
デバイスリリース情報を前記USBデバイスの使用可否にさらに関連付ける請求項1又は2記載の画像形成装置。
【請求項4】
USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを有する画像形成装置における情報処理方法であって、
前記USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、
前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたUSBデバイスの使用を判定する判定ステップとを有し、
前記判定ステップは、
前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダID、又はプロダクトIDと同じベンダID、又はプロダクトIDに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたUSBデバイスを使用許可と判定する情報処理方法。
【請求項5】
USBインタフェースを介して接続可能なUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報に関連付けて前記USBデバイスの使用可否を示す管理テーブルを有する画像形成装置において実行される情報処理プログラムであって、
前記USBインタフェースを介して接続されたUSBデバイスのベンダID及び/又はプロダクトID、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、
前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたUSBデバイスの使用を判定する判定ステップとを有し、
前記判定ステップは、
前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダID、又はプロダクトIDが、前記管理テーブルで使用許可を示すベンダID、又はプロダクトIDの数が所定数以上であるベンダID、又はプロダクトIDであれば、前記接続されたUSBデバイスを使用許可と判定する情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−104843(P2011−104843A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−261315(P2009−261315)
【出願日】平成21年11月16日(2009.11.16)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】