(57)【要約】【課題】ＭＦＰにＵＳＢデバイスが接続された際、接続されたＵＳＢデバイスの使用に対して柔軟な判定を行う。【解決手段】ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、判定手段は、情報取得手段により取得された情報が管理テーブルに記憶されていない情報である場合、取得された情報のベンダＩＤ、又はプロダクトＩＤと同じベンダＩＤ、又はプロダクトＩＤに対し、管理テーブルで使用許可として記憶されている数が所定数以上であれば、接続されたＵＳＢデバイスを使用許可と判定する。【選択図】図２
2011104843.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、
前記ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、
前記情報取得手段により取得された情報と、前記管理テーブルとに基づいて前記接続されたＵＳＢデバイスの使用を判定する判定手段とを備え、
前記判定手段は、
前記情報取得手段により取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダＩＤ、又はプロダクトＩＤと同じベンダＩＤ、又はプロダクトＩＤに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたＵＳＢデバイスを使用許可と判定する画像形成装置。
【請求項２】
前記判定手段は、
前記取得手段から取得した情報が前記管理テーブルに記憶されていない情報である場合に、使用許可と判定したとき、前記管理テーブルの使用可否を使用許可として前記取得した情報を前記管理テーブルに記憶する請求項１記載の画像形成装置。
【請求項３】
前記管理テーブルは、
デバイスリリース情報を前記ＵＳＢデバイスの使用可否にさらに関連付ける請求項１又は２記載の画像形成装置。
【請求項４】
ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを有する画像形成装置における情報処理方法であって、
前記ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、
前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたＵＳＢデバイスの使用を判定する判定ステップとを有し、
前記判定ステップは、
前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダＩＤ、又はプロダクトＩＤと同じベンダＩＤ、又はプロダクトＩＤに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたＵＳＢデバイスを使用許可と判定する情報処理方法。
【請求項５】
ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを有する画像形成装置において実行される情報処理プログラムであって、
前記ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、
前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたＵＳＢデバイスの使用を判定する判定ステップとを有し、
前記判定ステップは、
前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダＩＤ、又はプロダクトＩＤが、前記管理テーブルで使用許可を示すベンダＩＤ、又はプロダクトＩＤの数が所定数以上であるベンダＩＤ、又はプロダクトＩＤであれば、前記接続されたＵＳＢデバイスを使用許可と判定する情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）デバイスを接続可能な画像形成装置に関する。
【背景技術】
【０００２】
ハードウェア構成への厳しいコスト要求が求められるＭＦＰ（Multifunction Peripheral）のような機器では、一般的に操作性の低いハードキーが用いられている。ユーザが例えばログインのためのユーザ名、パスワードや、スキャン配信の宛先情報などの文字列データを入力する際は、操作性の低いハードキーを用いて入力を行う。このハードキーには、いわゆる携帯電話式文字入力キーや、テンキー、などがある。
【０００３】
また、大型タッチパネルを搭載したＭＦＰであれば、タッチパネル上に表示されるソフトウェアキーボードを使用する方式が一般に実施されている。文字入力手段を拡張し、ユーザの使い勝手を向上させるため、ＵＳＢホストを備えるＭＦＰにおいて、ＵＳＢホストに接続されたＵＳＢキーボードを用いた文字入力を可能とする技術が考えられ、既に知られている。
【０００４】
例えば、特許文献１には、プアな文字入力手段を持つＭＦＰにおいて、ＭＦＰ上にＵＳＢキーボードをハンドリングするアプリケーションを配置し、ＵＳＢホストに接続されたＵＳＢデバイスのクラス・サブクラス情報をもとに、ＵＳＢデバイスがＵＳＢキーボードであるか否かを判断する技術が開示されている。これにより、ＵＳＢキーボードをハンドリングするアプリケーションを利用して、ユーザがＵＳＢキーボードから入力した文字を受け付けることで、文字入力手段を拡張することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ＵＳＢホストに接続されたＵＳＢ機器がＵＳＢキーボードであると判断し、デバイスのハンドリングを開始するか否かを決定する際、ＵＳＢデバイスのクラスがＨｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅクラスであり、サブクラスがＫｅｙｂｏａｒｄクラスであるかどうかを判断基準とするのが一般的であった。この方式では、クラスがＨｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅクラスであり、サブクラスがＫｅｙｂｏａｒｄクラスであるが、実質はＵＳＢキーボードと同等に扱うべきでない（または、扱わせたくない）ＵＳＢ機器に関しても、ＵＳＢキーボードと同等に扱ってしまうという問題点がある。
【０００６】
例えば、ＵＳＢデバイスの例として、非接触ＩＤカードや磁気カード、バーコードカードのカードリーダの一部が挙げられる。これらのＵＳＢデバイスは、ＭＦＰにおけるＩＤカード（例えば、ユーザの社員証や入退館証）によるユーザ認証用途に広く使用されている。また、これらのＵＳＢデバイスは、ユーザがカードをリーダに接続した（またはかざした）際、カードＩＤをあたかもＵＳＢキーボードから入力された文字列としてＵＳＢホストに出力する機能を有している。もし、これらのデバイスのクラス、サブクラス情報がＵＳＢキーボードと同様であれば、ＵＳＢキーボードと同様に一般的な文字入力デバイスとしてハンドリングされてしまう。その結果、ユーザのカードＩＤのような機密性の高い情報が、入力された文字としてＭＦＰの入力文字表示部上にそのまま表示されてしまう事となり、セキュリティ情報の漏洩を引き起こす可能性がある。
【０００７】
そこで、本発明は上記問題点に鑑みてなされたものであり、ＭＦＰにＵＳＢデバイスが接続された際、接続されたＵＳＢデバイスの使用に対して柔軟な判定を行うことができる画像形成装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明における一態様の画像形成装置は、ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを記憶する記憶手段と、前記ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得手段と、前記情報取得手段により取得された情報と、前記管理テーブルとに基づいて前記接続されたＵＳＢデバイスの使用を判定する判定手段とを備え、前記判定手段は、前記情報取得手段により取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダＩＤ、又はプロダクトＩＤと同じベンダＩＤ、又はプロダクトＩＤに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたＵＳＢデバイスを使用許可と判定する。
【０００９】
また、本発明における他の態様の情報処理方法は、ＵＳＢインタフェースを介して接続可能なＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報に関連付けて前記ＵＳＢデバイスの使用可否を示す管理テーブルを有する画像形成装置における情報処理方法であって、前記ＵＳＢインタフェースを介して接続されたＵＳＢデバイスのベンダＩＤ及び／又はプロダクトＩＤ、並びにクラス情報及びサブクラス情報を取得する情報取得ステップと、前記情報取得ステップにより取得された情報と、前記管理テーブルとに基づいて前記接続されたＵＳＢデバイスの使用を判定する判定ステップとを有し、前記判定ステップは、前記情報取得ステップにより取得された情報が前記管理テーブルに記憶されていない情報である場合、前記取得された情報のベンダＩＤ、又はプロダクトＩＤと同じベンダＩＤ、又はプロダクトＩＤに対し、前記管理テーブルで使用許可として記憶されている数が所定数以上であれば、前記接続されたＵＳＢデバイスを使用許可と判定する。
【００１０】
また、本発明の画像形成装置、情報処理方法は、コンピュータにより実行可能なプログラムにより実現することができ、また、プログラムを記録した記録媒体をコンピュータに読み取らせて実現することも可能である。
【発明の効果】
【００１１】
本発明によれば、ＭＦＰにＵＳＢデバイスが接続された際、接続されたＵＳＢデバイスの使用に対して柔軟な判定を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施例に係るＭＦＰのハードウェア構成の一例を示すブロック図。
【図２】実施例のＭＦＰの基本モジュール構成を示す概略図。
【図３】ＵＳＢデバイスディスクリプタの一例を示す図。
【図４】ＵＳＢデバイス管理テーブルの例１を示す図。
【図５】ＵＳＢデバイス管理テーブルの例２を示す図。
【図６】実施例におけるＭＦＰの機能構成の一例を示すブロック図。
【図７】実施例のＭＦＰにおけるＵＳＢアプリの起動時の制御シーケンスを示す図。
【図８】ＵＳＢデバイス管理サービスの処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明の画像形成装置に係わる実施例を示す。なお、この実施例は、プリンタ装置やＭＦＰ機等に適用し得る構成を持つ装置として、本発明に係わるＵＳＢデバイス（ＵＳＢＩ／Ｆを介して外部から接続されたデバイス）の利用が可能な画像形成装置の実施例を例示する。
【００１４】
＜ハード構成＞
図１は、実施例に係るＭＦＰ１のハードウェア構成の一例を示すブロック図である。図１に示すように、ＭＦＰ１は、制御部２、主記憶部３、補助記憶部４、外部記憶装置Ｉ／Ｆ部５、ネットワークＩ／Ｆ部６、操作部７、表示部８、エンジン部９を含む。
【００１５】
制御部２は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部２は、主記憶部３に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【００１６】
主記憶部３は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部２が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００１７】
補助記憶部４は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００１８】
外部記憶装置I／F部５は、ＵＳＢ（Universal Serial Bus）などのデータ伝送路を介して接続された記憶媒体１５（例えば、フラッシュメモリなど）とＭＦＰ１とのインタフェースである。
【００１９】
また、記憶媒体１５に、所定のプログラムを格納し、この記憶媒体１５に格納されたプログラムは外部記憶装置Ｉ／Ｆ部５を介してＭＦＰ１にインストールされ、インストールされた所定のプログラムはＭＦＰ１により実行可能となる。
【００２０】
ネットワークＩ／Ｆ部６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器とＭＦＰ１とのインタフェースである。
【００２１】
操作部７や表示部８は、キースイッチ（ハードキー）とタッチパネル機能（ＧＵＩのソフトウェアキーを含む：Graphical User Interface）を備えたＬＣＤ（Liquid Crystal Display）とから構成され、ＭＦＰ１が有する機能を利用する際のＵＩ（User Interface）として機能する表示及び／又は入力装置である。
【００２２】
エンジン部９は、実際に画像形成に係る処理を行うプロッタ、スキャナ等の機構部分である。
【００２３】
＜モジュール構成＞
図２は、実施例のＭＦＰ１の基本モジュール構成を示す概略図である。ハードウェア構成は、図２においてエンジン（プロッタ）として示される構成部に、画像形成処理に必要なプロッタエンジン１０、エンジン制御ボード１１のほか、本発明に係わる要素としてＵＳＢデバイス１７を有する。
【００２４】
エンジン制御ボード１１には、装置全体を制御するためのＣＰＵ２が搭載されている。このＣＰＵ２は、後述するソフトウェア構成により提供されるプログラムに従い画像形成処理を行うために装置に備えられたプロッタエンジン１０等の処理手段及びＵＳＢＩ／Ｆを介して接続されたＵＳＢデバイス１７を制御し、所期の機能を実現する。
【００２５】
ＵＳＢデバイス１７には、ＵＳＢデバイスクラスドライバが、後述する装置本体側のソフトウェアに応動し、ＵＳＢデバイスを駆動するためのソフトウェアとして組み込まれており、装置本体と接続すると、ＵＳＢホストコントローラの要求に対して、ディスクリプタ情報によって応答する。
【００２６】
ソフトウェア構成は、図２のモジュール構成に示すように、大きく分けると、アプリケーション層とサービス層とからなる。アプリケーション層には、ページ記述言語およびプリンタ用のアプリケーションであるプリンタアプリ５１を有し、ＭＦＰ１に関連するユーザーサービスに固有の処理を行う。
【００２７】
プリンタアプリ５１は、ネットワーク管理サービス３２などの外部Ｉ／Ｆとの接続機能を提供するサービス層のモジュール（後述）から印刷データを受信し、言語の解釈を行い画像データへ展開する。展開された画像データは、エンジンＩ／Ｆ１３を通してプロッタエンジン１０に渡され、プリント出力される。
【００２８】
なお、実施例では、機密印刷モードの動作が可能であり、機密印刷が指示された印刷データであれば、直ちにはプリント出力せず、ＨＤＤなどの外部記憶装置に一旦データ蓄積しておく。その後、後述するオペレーションパネル処理モジュール５３からのパスワード入力を受付け、印刷データ中のパスワードと一致した場合には一旦ＨＤＤに蓄積された印刷データを展開、プリント出力を実行する。
【００２９】
オペレーションパネル処理モジュール５３は、実施例では、プリンタアプリ５１の一部として構成されている。ＭＦＰ１が装備するオペレーションパネルから印刷条件等の設定入力を行うための操作キー・ボタンや各種の表示器・表示パネルなどの制御をつかさどるモジュールである。機密印刷が指定された場合などは、ユーザに対してパスワード入力を促すような画面を表示する機能を持つ。
【００３０】
また、本発明に係わる要素としてＵＳＢアプリケーション（以下、ＵＳＢアプリともいう）５７をアプリケーション層に搭載する。ＵＳＢアプリ５７は、接続されたＵＳＢデバイス１７のデータを解析し、デバイスに特化した機能提供を行うためのモジュールである。ＵＳＢアプリ５７は、ＵＳＢデバイス１７が接続されていない場合は、システム上の仮想メモリ節約のため起動していないが、ＵＳＢデバイス１７の接続時にＵＳＢデバイス管理サービス３７によって起動される。
【００３１】
また、ＵＳＢアプリ５７は、ＵＳＢＩ／Ｆにて接続されたＵＳＢデバイス１７からの入力を取得し、プリンタアプリ５１へ送信する機能を提供する。なお、ＭＦＰ１の場合には、この他に、コピー、ファクスおよびスキャナなどのアプリを備えているが、これらのアプリは必ずしも必要ではない。
【００３２】
サービス層には、アプリケーション層からの処理要求を解釈して各ハードウェア資源の獲得要求を発生するネットワーク管理サービス３２、メモリ管理サービス３３、本発明に係わる要素としてのＵＳＢデバイス管理サービス３７等の管理サービスと、上記管理サービスからの獲得要求を調停するシステム管理サービス３１と、オペレーティングシステム（ＯＳ）２０と、ＵＳＢデバイス管理テーブル３８とを有する。
【００３３】
サービス層は、予め定義されている関数によりアプリケーション層からの処理要求を受信可能とするＧＷ−ＡＰＩ（アプリケーションプログラムインターフェース）５５を有する。
【００３４】
ＯＳ２０は、上記各管理サービスおよびアプリケーション層の各ソフトウェアをプロセスとして並列実行し、ＯＳ２０上にホストコントローラ及び本発明に係わる要素としてのＵＳＢホストコントローラ２７の機能を実現する。なお、ホストコントローラは、ホスト側の物理デバイスを制御し、デバイスとの論理的なデータバスを提供する。
【００３５】
ＵＳＢデバイス管理サービス３７は、ＭＦＰ１のソフトウェア構成において、常駐のデーモンとして存在する。デーモンとして常駐するＵＳＢデバイス管理サービス３７が起動されると、ＵＳＢアプリケーション５７は、デーモンの提供するＡＰＩ５５を通して所有するアプリケーションＩＤと利用可能なＵＳＢデバイスディスクリプタのペアをデーモンに登録する。なお、ＵＳＢデバイスディスクリプタは、ＵＳＢデバイスが接続される度に、ＵＳＢデバイス１７のデバイスクラスドライバから取得される。
【００３６】
デーモンは、ＵＳＢアプリケーション５７からの登録依頼を受取ると、その度にＵＳＢデバイス管理テーブル（以下、管理テーブルともいう）３８を更新し、ＵＳＢアプリケーション５７とディスクリプタ情報の関連情報を蓄える。管理テーブル３８には、ＵＳＢデバイスを特徴付けるデバイスクラス情報やデバイスＩＤ等と該デバイスに用いるアプリケーションプログラムと該アプリケーションの使用可否の関連を表す情報が記される。
【００３７】
ＵＳＢデバイス管理サービス３７は、管理テーブル３８を不揮発性の記憶場所に保存し、管理する。従って、次にＵＳＢデバイス１７が接続されたときに、管理テーブル３８を参照することで、接続されたデバイスに応じたＵＳＢアプリケーション５７の使用可否を判定することができる。
【００３８】
図３は、ＵＳＢデバイスディスクリプタの一例を示す図である。ＵＳＢデバイスディスクリプタは、図３の例に示すように、ＵＳＢデバイス１７の動作や機能の定義を記したものである。ＵＳＢデバイスディスクリプタの内容に従って、ＵＳＢホストコントローラ２７でコンフィギュレーションを行い、接続したＵＳＢデバイス１７とＵＳＢホストコントローラ２７の間の通信が可能な条件を設定する。
【００３９】
また、ＵＳＢデバイスディスクリプタには、図３の例に示すように、device classやdevice subclassといった情報を持っているので、抽象化したＵＳＢデバイスの下位クラスの実際に使用するデバイスを特定することが可能になる。実施例では、インタフェースレベルでハンドリングを行うため、図３の例に示すようにインタフェースのデバイスクラスやサブクラスを参照する。
【００４０】
また、図３の例に示すように、ＵＳＢデバイスディスクリプタからベンダＩＤ、プロダクトＩＤ、デバイスリリース番号（ＩＤ）を特定することも可能である。
【００４１】
ここで、各情報の意味について説明しておく。クラス情報は、デバイスの持つＵＢＳインタフェースの種類を示す情報である。例えば、キーボードやマウスのようなＨＩＤ（Human interface device）、ＵＳＢフラッシュメモリのようなＭＳＤ（Mass Storage Device）がクラス情報である。
【００４２】
サブクラス情報は、デバイスの持つＵＳＢインタフェースの種類を示す情報の補足情報である。例えば、クラス情報がＨＩＤであった場合、キーボードやマウスがサブクラス情報である。
【００４３】
ベンダＩＤは、ＵＳＢデバイスの製造元を示すユニークな識別子である。プロダクトＩＤは、ＵＳＢデバイスの型番を示すユニークな識別子である。デバイスリリース番号は、ＵＳＢデバイスのファームウェアバージョンなどを示すユニークな識別子である。
【００４４】
ＵＳＢデバイス１７を特徴付けるデバイスクラス情報、及びサブクラス情報、並びにベンダＩＤ、プロダクトＩＤのいずれか一方を少なくとも用いて、接続したＵＳＢデバイスの使用可否を判定するフラグを管理テーブル３８に管理させる。
【００４５】
ここで、図４と図５とを用いてＵＳＢデバイス管理テーブル３８の例について説明する。図４は、ＵＳＢデバイス管理テーブルの例１を示す図である。図４に示すように、管理テーブル３８は、ＵＳＢデバイス１７のクラス、サブクラス、ベンダＩＤを関連付けて、ＵＳＢデバイス１７の使用可否を管理する。
【００４６】
図４に示す例について、使用可否を示すフラグ（以下、使用フラグ）には、「ＣＡＮＤＩＤＡＴＥ」と「ＩＧＮＯＲＥ」がある。「ＣＡＮＤＩＤＡＴＥ」は、ＵＳＢアプリ５７の起動を許可することを意味する。「ＩＧＮＯＲＥ」は、ＵＳＢアプリ５７の起動を許可しないことを意味する。
【００４７】
例えば、クラスが「ＨＩＤ」、サブクラスが「Ｋｅｙｂｏａｒｄ」、ベンダＩＤが「０ｘ１２３４」である場合、使用フラグが「ＣＡＮＤＩＤＡＴＥ」であるので、このＵＳＢデバイス１７は、ＫＢ（Keyboard）入力支援アプリを起動して使用することができる。
【００４８】
同じクラス情報、サブクラス情報であっても、ベンダＩＤが「０ｘ４３２１」の場合は、使用フラグが「ＩＧＮＯＲＥ」であるため、このＵＳＢデバイス１７はＫＢ入力支援アプリを起動できない。このベンダＩＤ「０ｘ４３２１」が示すベンダは、信頼性が低いために、このベンダが作ったＵＳＢデバイスを接続させたくない場合に有効である。
【００４９】
なお、図４に示すベンダＩＤは、プロダクトＩＤでもよい。プロダクトＩＤにした場合は、製品毎にＵＳＢアプリの使用可否を判定することができる。また、プロダクトＩＤだけでは、異なるベンダ間で同じＩＤが付与される場合があるので、ベンダＩＤ及びプロダクトＩＤを他の情報と関連付けて管理テーブル３８に管理させてもよい。これより、ＵＳＢデバイスの使用可否をより柔軟に判定できるようになる。
【００５０】
図５は、ＵＳＢデバイス管理テーブルの例２を示す図である。図５に示すように、管理テーブル３８は、ＵＳＢデバイス１７のクラス、サブクラス、ベンダＩＤ、プロダクトＩＤ、デバイスリリース番号を関連付けて、ＵＳＢデバイス１７の使用可否を管理する。図５に示す例では、使用フラグに「ＯＮＬＹ」がある。「ＯＮＬＹ」の意味は、このＵＳＢデバイス１７のみを使用許可するという意味である。
【００５１】
例えば、クラスが「ＨＩＤ」のＵＳＢデバイスに対して１つの「ＯＮＬＹ」を設定して、１つのＵＳＢデバイスだけに使用許可をすることができる。また、サブクラスに１つずつ「ＯＮＬＹ」を設定して、サブクラス毎に１つのＵＳＢデバイスを許可することもできる。
【００５２】
よって、「ＯＮＬＹ」が管理テーブル３８に登録されると、「ＯＮＬＹ」のデバイス情報に対して使用許可の判定が行われる。また、図５に示す例では、デバイスリリース番号を用いるため、同じ製品であっても、バージョンによって使用の可否を詳細に判定することが可能になる。
【００５３】
ＵＳＢデバイスの接続時に、管理テーブル（図４又は図５参照）を用いて使用許可された場合、接続されたデバイスに応じたＵＳＢアプリケーション５７が起動される。
【００５４】
即ち、ＵＳＢデバイス１７が装置本体に接続されると、ＵＳＢホストコントローラ２７は、ＵＳＢデバイス１７が接続されたことを検知し、検知したＵＳＢデバイス１７にＵＳＢデバイスディスクリプタの取得要求を行う。この要求に応えて、ＵＳＢデバイス１７のＵＳＢデバイスクラスドライバによって送られてくるＵＳＢデバイスディスクリプタをホスト側で取得する。
【００５５】
次に、デーモンとして常駐するＵＳＢデバイス管理サービス３７は、ＵＳＢホストコントローラ２７によって取得されたＵＳＢデバイスディスクリプタに記されているデバイス情報（クラス情報、サブクラス情報、ベンダＩＤなど）がデーモン内で管理している管理テーブル（図４又は図５参照）に登録されているかを検索する。
【００５６】
管理テーブル３８に記された「device class」、「device subclass」と一致する場合は、このデバイス情報に関連付けられたＵＳＢアプリケーション５７を示す情報を管理テーブル３８から取得して、予め登録しておいたこのＵＳＢアプリケーション５７に対してＵＳＢデバイス１７の接続を通知する。
【００５７】
ＵＳＢアプリケーション５７は、ＵＳＢデバイス１７の接続通知を受けて、各種の初期化処理を実行することが可能となる。
【００５８】
初期化処理に次いで、ＵＳＢデバイス管理サービス３７は、ＵＳＢデバイスディスクリプタに基づいて、データ送受信のためのデータバスを構築する。データバスとしては、Unix（登録商標） domain socketや汎用的なＩＰＣ（Inter process Communication）などが考えられる。なお、実施例におけるデーモンの内部には、汎用的なMass Storage ClassドライバやPrinter Class Driverが内部に用意されており、ＵＳＢデバイス１７の接続と同時に、上位のＵＳＢアプリケーション５７に対してこれらの機能を提供することができる。
【００５９】
＜機能構成＞
次に、ＭＦＰ１の本発明における概略機能構成について説明する。図６は、実施例におけるＭＦＰ１の機能構成の一例を示すブロック図である。図１に示すように、ＵＳＢアプリ５７は、表示制御手段５０１を備え、ＵＳＢデバイス管理サービス３７は、情報取得手段３０１、判定手段３０２を備える。
【００６０】
情報取得手段３０１は、ＵＳＢホストコントローラ２７から、ＵＳＢデバイスディスクリプタのデバイス情報を取得する。情報取得手段３０１は、管理テーブル３８に登録されているデバイス情報を取得すればよい。例えば、図４に示す管理テーブルであれば、情報取得手段３０１は、クラス情報、サブクラス情報、及びベンダＩＤを取得する。また、図５に示す管理テーブルであれば、情報取得手段３０１は、クラス情報、サブクラス情報、ベンダＩＤ、プロダクトＩＤ、及びデバイスリリース番号を取得する。
【００６１】
判定手段３０２は、情報取得手段３０１が取得したデバイス情報を用いて管理テーブル３８を参照し、接続されたＵＳＢデバイス１７が使用可能か判断する。判定手段３０２は、取得したデバイス情報と、管理テーブル３８に記憶されているデバイス情報とを照合して一致するか判定をする。判定手段３０２は、一致したデバイス情報に関連付けられた使用フラグが「ＣＡＮＤＩＤＡＴＥ」か「ＯＮＬＹ」の場合に、使用可能と判断し、接続要求を出すアプリを特定する。
【００６２】
ＵＳＢデバイス管理サービス３７は、管理テーブル３８から特定したＵＳＢアプリ５７を起動する。どのＵＳＢアプリ５７を起動すればよいかは、管理テーブル３８を参照すれば分かる。ＵＳＢアプリ５７の表示制御手段５０１は、ＵＳＢデバイス１７から取得した情報についてＭＦＰ１のオペレーションパネル（表示部８）への表示制御を行う。また、表示制御手段５０１は、判定手段３０２により使用不可と判定されたＵＳＢデバイス１７に関連する情報（例えば、記憶されている情報）は、ＭＦＰ１の表示部８に表示されない。
【００６３】
また、判定手段３０２は、ＵＳＢホストコントローラ２７から取得したデバイス情報が、管理テーブル３８に記憶されていない場合、以下の条件を満たすことで、使用許可と判定し、このデバイス情報を管理テーブル３８に登録する。
（１）取得したベンダＩＤと同じベンダＩＤが、管理テーブル３８に使用可として所定数以上登録されている
（２）取得したプロダクトＩＤと同じプロダクトＩＤが、管理テーブル３８に使用可として所定数以上登録されている。
【００６４】
判定手段３０１は、（１）、（２）の条件のいずれか又は両方満たすと判定すれば、このＵＳＢデバイスを使用可と判断する。これは、あるベンダＩＤが管理テーブル３８に使用可として所定数以上登録されていれば、このベンダは信用がおけるベンダと判断できるからである。
【００６５】
また、判定手段３０１は、このＵＳＢデバイス１７のデバイス情報を、使用可フラグを「ＣＡＮＤＩＤＡＴＥ」として管理テーブル３８に記憶する。これより、このＵＳＢデバイス１７の次回の接続時には、スムーズに使用可と判定することができる。
【００６６】
＜具体例＞
次に、ＵＳＢデバイス１７として、ＵＳＢキーボードを接続し、入力支援を行うことができるようにする具体例について説明する。
【００６７】
従来、オペレーションパネルを、数行のＬＣＤ（Liquid Crystal Display）パネル及び数個のボタンから構成している例がある。このような貧弱なＵＩ（ユーザインターフェイス）による場合、ＵＳＢデバイスとして、ＵＳＢキーボードを接続し、入力の支援を行う際に、劣悪なＵＳＢキーボードを使用可能と判定することを防ぐことができる。劣悪なキーボードは管理テーブル３８にそのデバイス情報と使用フラグ「ＩＧＮＯＲＥ」とを記憶しておく。
【００６８】
具体例では、図２に示すハードウェア構成のＵＳＢキーボードをＵＳＢデバイス（図２に示したＵＳＢデバイス１７に相当）としている。また、ソフトウェア構成のキーボード入力支援アプリをＵＳＢアプリ（図２に示したＵＳＢアプリ５７に相当）としている。
【００６９】
キーボード入力支援アプリは、ＵＳＢキーボードが接続されていない場合は、システム上の仮想メモリを節約するために、起動させない。しかし、ＵＳＢキーボードの接続時には、判定手段３０２による使用判定が行われ、使用許可の場合にデーモンとして常駐するＵＳＢデバイス管理サービス３７によって起動される。また、ＵＳＢＩ／Ｆを介して接続されたＵＳＢキーボードから操作者が行う入力を取得し、オペレーションパネル処理モジュール５３へ送信する機能を提供する。また、判定手段３０２による使用判定の結果、使用不可の場合、キーボード入力支援アプリは起動されない。
【００７０】
なお、キーボード入力支援アプリと協働するオペレーションパネル処理モジュール５３は、キーボード入力支援アプリで受け付け、このアプリとの間に構築した通信経路を経て、取得した文字入力を処理し、ＵＩとして機能するオペレーションパネルに表示させる。
【００７１】
また、ＵＳＢキーボードのEnterキーなどの入力を受けて、入力処理を完了するなどの機能を持つ。
【００７２】
また、他の具体例としては、ＵＳＢデバイス１７としてＵＳＢフラッシュメモリ、ＵＳＢアプリ５７としてＳＣＳＩアプリなどが考えられる。この場合、ＵＳＢフラッシュメモリをＭＦＰ１に接続した場合、前述したように判定手段３０２による使用判定を行い、使用許可の場合にＵＳＢデバイス管理サービス３７によってＳＣＳＩアプリが起動される。これより、ＵＳＢフラッシュメモリに記憶されているデータの読み出し、書き込みが可能となる。
【００７３】
一方、判定手段３０２による使用判定の結果、使用不可の場合にはＳＣＳＩアプリが起動されない。よって、ＵＳＢフラッシュメモリからのデータの読み出し、書き込みは不可能となる。これより、品質の悪いＵＳＢフラッシュメモリがわかっている場合には、事前にその使用を防ぐことができる。
【００７４】
また、他の具体例としては、ＵＳＢデバイス１７がＩＣカードであり、このＩＣカードのクラス情報がＨＩＤ、サブクラス情報がキーボードとする。従来では、このＩＣカードがＵＳＢキーボードとして使用が許可され、個人情報が表示部８に表示されていた。本発明では、このＩＣカードのプロダクトＩＤを使用フラグ「ＩＧＮＯＲＥ」として管理テーブル３８に記憶させる。これより、クラス情報がＨＩＤ、サブクラス情報がキーボードであるＩＣカードなどの秘密情報を有するＵＳＢデバイスが接続された場合、秘密情報が表示部８に表示されるのを防ぐことができる。
【００７５】
なお、以上説明した使用フラグでは、ＵＳＢデバイスの使用可否を示していたが、ＵＳＢデバイスからの情報を表示部８に表示する可否（例えば、ＩＣカードからの情報を表示部８に表示する可否）、ＵＳＢデバイスからのデータの入力、又は／及び出力の可否（ＵＳＢフラッシュメモリの場合、読み出し、書き込みの可否）などを表すフラグとしてもよい。
【００７６】
＜動作＞
次に、実施例におけるＭＦＰの動作について説明する。図７は、実施例のＭＦＰ１におけるＵＳＢアプリ５７の起動時の制御シーケンスを示す図である。以下、ＵＳＢアプリ５７の起動時の制御動作を図７に示すシーケンスに従って説明する。
【００７７】
ステップＳ１０１で、ＵＳＢデバイス１７が装置本体に接続されると、ホストコントローラとして機能するＯＳ２０は、まず、ＵＳＢデバイス１７にディスクリプタの取得要求を行う。この要求にＵＳＢデバイス１７のデバイスドライバが応えて、ディスクリプタ情報がＯＳ２０に送信される。
【００７８】
ステップＳ１０２で、常駐するデーモンとしてのＵＳＢデバイス管理サービス３７は、ＯＳ２０によって行われる接続処理を監視し、ＯＳ２０がディスクリプタを取得したら、取得されたＵＳＢデバイス１７のディスクリプタの検出を行う。
【００７９】
ステップＳ１０３で、ＵＳＢデバイス管理サービス３７は、管理テーブル３８において使用フラグが「ＯＮＬＹ」であるデバイス情報を取得し、ステップＳ１０２で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すればステップＳ１０６に進み、一致しなければステップＳ１０４に進む。
【００８０】
ステップＳ１０４で、ＵＳＢデバイス管理サービス３７は、管理テーブル３８において使用フラグが「ＩＧＮＯＲＥ」であるデバイス情報を取得し、ステップＳ１０２で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すれば、使用不可として処理を終了し、一致しなければステップＳ１０５に進む。
【００８１】
ステップＳ１０５で、ＵＳＢデバイス管理サービス３７は、管理テーブル３８において使用フラグが「ＣＡＮＤＩＤＡＴＥ」であるデバイス情報を取得し、ステップＳ１０２で検出したディスクリプタのデバイス情報と照合する。照合結果が一致すればステップＳ１０６に進み、一致しなければ処理を終了する。なお、ステップＳ１０５において照合結果が一致しなかった場合は、後述する使用条件の判定処理を行ってもよい。
【００８２】
ステップＳ１０６で、ＵＳＢデバイス管理サービス３７は、照合の結果、使用許可されたＵＳＢデバイス１７と判定した場合は、このデバイス情報に関連付けられたアプリＩＤを取得する。次に、ＵＳＢデバイス管理サービス３７は、予め登録しておいたアプリＩＤを持つＵＳＢアプリ５７に対してＵＳＢデバイス１７の接続を通知する。ＵＳＢアプリ５７は、ＵＳＢアプリ５７の接続通知を受けて、アプリケーションを起動する。
【００８３】
ＵＳＢアプリ５７は、起動時の初期化処理後に、アプリケーションプログラムに従った動作として、ＵＳＢデバイス１７の入力に対応する動作を以下のように実行する。
【００８４】
ステップＳ１０７で、ＵＳＢデバイス１７からデータが入力されると（例えば、キーボードの場合は操作入力）、ＯＳ２０によってこの操作入力が受け付けられる。
【００８５】
ステップＳ１０８で、ＵＳＢアプリ５７は、ＯＳ２０によって受け付けられた入力を検出する。
【００８６】
ステップＳ１０９で、ＵＳＢアプリ５７は、ＯＳ２０を介して検出した入力文字列データをプリンタアプリケーション５１のオペパネ処理モジュール５３に送信する。
【００８７】
ステップＳ１１０で、入力文字列データを受取るオペパネ処理モジュール５３は、表示パネルを通して受取ったデータを操作者にＵＩ表示する。
【００８８】
例えば、ＵＳＢデバイス１７がＵＳＢキーボードで、ＵＳＢアプリ５７がキーボード入力支援アプリの場合、ＵＳＢキーボードからパスワードを入力するとき、所定の文字数よりなる文字列を１文字ずつ順にステップＳ１０７〜Ｓ１１０と同様のシーケンスに従って行い、パスワードチェック処理におけるＵＩを支援する。
【００８９】
なお、上記例では、管理テーブル３８から所要のデバイス情報を取得し、検出されたデバイス情報と照合する例について説明したが、検出されたデバイス情報と同じ情報があるか否かを、管理テーブル３８の「ＯＮＬＹ」「ＩＧＮＯＲＥ」「ＣＡＮＤＩＤＡＴＥ」の順に、対応するデバイス情報を検索してもよい。
【００９０】
次に、ＵＳＢデバイス管理サービス３７による使用条件の判定処理を説明する。図８は、ＵＳＢデバイス管理サービス３７の処理の一例を示すフローチャートである。図８に示す処理では、管理テーブル３８にデバイス情報が記憶されていなかった場合（未知のデータであった場合）、管理テーブル３８に記憶された情報から未知のデバイス情報に対して使用判定を行う。
【００９１】
ステップＳ２０１で、ＵＳＢデバイス管理サービス３７は、管理テーブル３８を参照して、ステップＳ１０２で検出されたデバイス情報のベンダＩＤと同じであり、かつ使用可（使用フラグが「ＯＮＬＹ」と「ＣＡＮＤＩＤＡＴＥ」）のベンダＩＤの数をカウントする。
【００９２】
ステップＳ２０２で、ＵＳＢデバイス管理サービス３７は、ステップＳ２０１でカウントした数が所定値以上であるかを判定する。ここでの使用条件は、ステップＳ２０１でのカウント値が所定値以上とする。その他の使用条件として、デバイス情報のうち、任意の情報の組み合わせが所定の条件を満たすことも考えられる。例えば、クラス情報とベンダＩＤとが事前設定された情報と同じであることを使用条件としてもよい。
【００９３】
ステップＳ２０２の判定結果がＹＥＳである場合、ステップＳ２０３に進み、判定結果がＮＯである場合処理を終了する。カウントに対する所定値は、ユーザが事前に設定しておく。
【００９４】
ステップＳ２０３で、ＵＳＢデバイス管理サービス３７は、検出されたデバイス情報を管理テーブル３８に記憶する。このとき、使用フラグは「ＣＡＮＤＩＤＡＴＥ」にする。また、ユーザ設定により「ＯＮＬＹ」として記憶されるようにしてもよい。
【００９５】
ステップＳ２０４で、ＵＳＢデバイス管理サービス３７は、関連するクラス情報、サブクラス情報に基づいて、対応するＵＳＢアプリ５７を起動する。このとき、対応するアプリがなければ、起動可能なアプリを表示部１８に表示し、ユーザに選択させてもよい。
【００９６】
これより、管理テーブル３８に記憶されていないデバイス情報を、ＵＳＢデバイス管理サービス３７が取得したとしても、管理テーブル３８に記憶されたデータに基づいて使用判定を行うことができる。
【００９７】
以上、実施例によれば、ＭＦＰにＵＳＢデバイスが接続された際、接続されたＵＳＢデバイスの使用に対して柔軟な判定を行うことができる。また、実施例によれば、管理テーブルに記憶されている未知のＵＳＢデバイスが接続されても、管理テーブルに記憶されているデイバス情報に基づいて、未知のＵＳＢデバイスの使用判定を行うことができる。
【００９８】
なお、実施例において説明した処理内容をコンピュータに実行させるためのプログラムとし、このプログラムをコンピュータに実行させて前述した処理を画像形成装置に実現させることも可能である。また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した処理を画像形成装置に実現させることも可能である。
【００９９】
なお、本発明は、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施例にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１００】
１０  プロッタエンジン
１１  エンジン制御ボード
１７  ＵＳＢデバイス
２０  ＯＳ
２７  ＵＳＢホストコントローラ
３１  システム管理サービス
３２  ネットワーク管理サービス
３３  メモリ管理サービス
３７  ＵＳＢデバイス管理サービス
３８  ＵＳＢデバイス管理テーブル
５１  プリンタアプリケーション
５３  オペレーションパネル処理モジュール
５７  ＵＳＢアプリケーション
３０１  情報取得手段
３０２  判定手段
５０１  表示制御手段
【先行技術文献】
【特許文献】
【０１０１】
【特許文献１】特開２００６−２３９９６９号公報
【図１】
2011104843.tif 000003
【図２】
2011104843.tif 000004
【図３】
2011104843.tif 000005
【図４】
2011104843.tif 000006
【図５】
2011104843.tif 000007
【図６】
2011104843.tif 000008
【図７】
2011104843.tif 000009
【図８】
2011104843.tif 000010