(57)【要約】【課題】デバイスが接続されて使用される機器に関して、デバイスに関する機構を制御するための新たな手法を提案すること。【解決手段】挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器であって、プログラムごとに当該機器に登録されているプログラムの種別情報に基づいて、複数のプログラムの中からデバイスを制御する第一のプログラムを判定する判定手段と、デバイスの挿入の検出に応じ、検出されたデバイスに対応する第一のプログラムを、判定手段によって判定された第一のプログラムの中から検索し、検索された第一のプログラムを起動する監視手段とを有し、監視手段は、検出されたデバイスに対応する第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する。【選択図】図７
2011234416.tif 000002
【特許請求の範囲】
【請求項１】
挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器であって、
前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手段と、
前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手段によって判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手段とを有し、
前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する機器。
【請求項２】
前記第一のプログラムは、前記デバイスのデバイスドライバである請求項１記載の機器。
【請求項３】
前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器に挿入されたメディアから又はネットワークを介して当該第一のプログラムを取得する請求項１又は２記載の機器。
【請求項４】
前記監視手段は、前記デバイスの抜出の検出に応じ、該デバイスに対応する前記第一のプログラムを停止させる機器。
【請求項５】
挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器が実行する情報処理方法であって、
前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手順と、
前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手順において判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手順とを有し、
前記監視手順は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する情報処理方法。
【請求項６】
請求項５に記載の情報処理方法をコンピュータに実行させる情報処理プログラム。
【請求項７】
請求項６に記載の情報処理方法をコンピュータに実行させる情報処理プログラムが記録されたコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、情報処理方法、情報処理プログラム、ＳＤメモリカード等の記録媒体に関する。
【背景技術】
【０００２】
近年、コピー機能とプリンタ機能とスキャナ機能とファクシミリ機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、コピーやプリンタとして機能する場合には、画像を印刷用紙に印刷することになり、コピーやスキャナとして機能する場合には、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合には、画像を電話回線を介して他の機器と授受することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
近年、電気機器や情報機器は、ＵＳＢデバイスやＩＥＥＥ１３９４デバイス等の様々な規格のデバイスが接続されて使用される事が多くなっている。複合機や融合機も例外ではない。しかしながら、複合機や融合機は大勢で共用する事が多いと共に、複合機や融合機では様々な種類のプログラムが様々な態様で実行される事が多いので、これらのマシンのどの機構がどんな態様でこれらのデバイスに関する機構を制御するかが問題となる。
【０００４】
本発明は、デバイスが接続されて使用される機器に関して、デバイスに関する機構を制御するための新たな手法を提案することを課題とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、本発明は、挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器であって、前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手段と、前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手段によって判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手段とを有し、前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する。
【発明の効果】
【０００６】
本発明によれば、デバイスが接続されて使用される機器に関して、デバイスに関する機構を制御するための新たな手法を提案することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施例に該当する融合機を表す。
【図２】図１の融合機に係るハードウェア構成図である。
【図３】図１の融合機に係る外観図である。
【図４】オペレーションパネルを表す。
【図５】ＵＳＢデバイスが接続されて使用される融合機を表す。
【図６】ＵＳＢデバイスを利用するＪＳＤＫアプリが提供する操作画面の具体例である。
【図７】ＵＳＢデバイスに関する融合機の機構について説明するための図である。
【図８】起動設定ファイルに格納される情報の構成例を示す図である。
【図９】ＵＳＢデバイスドライバ情報の構成例を示す図である。
【図１０】図７の情報処理に係るシーケンス図である。
【図１１】ＵＳＢデバイスに関する融合機の機構について説明するための図である。
【図１２】図１１の情報処理に係るシーケンス図である。
【発明を実施するための形態】
【０００８】
図１は、本発明の実施例に該当する融合機１０１を表す。図１の融合機１０１は、種々のハードウェア１１１と、種々のソフトウェア１１２と、融合機起動部１１３により構成される。
【０００９】
融合機１０１のハードウェア１１１としては、撮像部１２１と、印刷部１２２と、その他のハードウェア１２３が存在する。撮像部１２１は、読取原稿から画像（画像データ）を読み取るためのハードウェアである。印刷部１２２は、画像（画像データ）を印刷用紙に印刷するためのハードウェアである。
【００１０】
融合機１０１のソフトウェア１１２としては、種々のアプリケーション１３１と、種々のプラットフォーム１３２が存在する。これらのプログラムは、ＵＮＩＸ（登録商標）等のＯＳ（オペレーティングシステム）によりプロセス単位で並列的に実行される。
【００１１】
アプリケーション１３１としては、コピー用のアプリケーションであるコピーアプリ１４１、プリンタ用のアプリケーションであるプリンタアプリ１４２、スキャナ用のアプリケーションであるスキャナアプリ１４３、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ１４５が存在する。そしてさらに、Ｗｅｂページの閲覧用のソフトウェアであるＷｅｂブラウザ１８１、Ｗｅｂページの配信用のソフトウェアであるＷｅｂサーバソフト１８２、ＣＳＤＫアプリ１４６やＪＳＤＫアプリ１４７の制御用のソフトウェアであるＳＤＫアプリケーションサービス（ＳＡＳ）１８３が存在する。
【００１２】
アプリケーション１３１は、専用のＳＤＫ（ソフトウェア開発キット）を使用して開発することができる。ＳＤＫを使用して開発したアプリケーション１３１をＳＤＫアプリと呼ぶ。専用のＳＤＫとしては、Ｃ言語でアプリケーション１３１を開発するための「ＣＳＤＫ」や、Ｊａｖａ（登録商標）言語でアプリケーション１３１を開発するための「ＪＳＤＫ」が提供される。ＣＳＤＫを使用して開発したアプリケーション１３１を「ＣＳＤＫアプリ」と呼び、ＪＳＤＫを使用して開発したアプリケーション１３１を「ＪＳＤＫアプリ」と呼ぶ。図１の融合機１０１にも、ＣＳＤＫアプリ１４６と、ＪＳＤＫアプリ１４７が存在する。図１の融合機１０１にはさらに、Ｊａｖａ（登録商標）言語で記述されたＪＳＤＫアプリ１４７とＣ言語で記述された他のソフトウェア１１２との仲介を行うソフトウェア１１２として、ＪＳＤＫプラットフォーム１４８が存在する。
【００１３】
プラットフォーム１３２としては、種々のコントロールサービス１５１、システムリソースマネージャ１５２、種々のハンドラ１５３が存在する。コントロールサービス１５１としては、ネットワークコントロールサービス（ＮＣＳ）１６１、ファクシミリコントロールサービス（ＦＣＳ）１６２、デリバリコントロールサービス（ＤＣＳ）１６３、エンジンコントロールサービス（ＥＣＳ）１６４、メモリコントロールサービス（ＭＣＳ）１６５、オペレーションパネルコントロールサービス（ＯＣＳ）１６６、サーティフィケーションコントロールサービス（ＣＣＳ）１６７、ユーザディレクトリコントロールサービス（ＵＣＳ）１６８、システムコントロールサービス（ＳＣＳ）１６９が存在する。ハンドラ１５３としては、ファクシミリコントロールユニットハンドラ（ＦＣＵＨ）１７１、イメージメモリハンドラ（ＩＭＨ）１７２が存在する。また、ＵＳＢポート２４２に接続されるデバイスを制御するためのＵＳＢデバイスドライバ４０２が存在する。
【００１４】
ＮＣＳ１６１のプロセスは、ネットワーク通信の仲介や融合機１０１に接続される各種デバイスとの通信の仲介等を行う。例えば、ＮＣＳ１６１は、その機能の一部としてＵＳＢデバイスデーモン４０３を別プロセスとして起動する。ＵＳＢデバイスデーモン４０３の詳細については後述する。ＦＣＳ１６２のプロセスは、ファクシミリのＡＰＩを提供する。ＤＣＳ１６３のプロセスは、蓄積文書の配信処理に関する制御を行う。ＥＣＳ１６４のプロセスは、撮像部１２１や印刷部１２２に関する制御を行う。ＭＣＳ１６５のプロセスは、メモリやハードディスクドライブに関する制御を行う。ＯＣＳ１６６のプロセスは、オペレーションパネルに関する制御を行う。ＣＣＳ１６７のプロセスは、認証処理や課金処理に関する制御を行う。ＵＣＳ１６８のプロセスは、ユーザ情報の管理に関する制御を行う。ＳＣＳ１６９のプロセスは、システムの管理に関する制御を行う。
【００１５】
アプリケーション１３１とプラットフォーム１３２の仲介を行うソフトウェア１１２として、仮想アプリケーションサービス（ＶＡＳ）１３５が存在する。ＶＡＳ１３５は、アプリケーション１３１をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム１３２をサーバとするクライアントプロセスとして動作する。ＶＡＳ１３５は、アプリケーション１３１から見てプラットフォーム１３２を隠蔽するラッピング機能を備え、プラットフォーム１３２のバージョンアップに伴うバージョン差を吸収する役割等を担う。
【００１６】
融合機起動部１１３は、融合機１０１の電源投入時に最初に実行される。これにより、ＵＮＩＸ（登録商標）等のＯＳが起動され、アプリケーション１３１やプラットフォーム１３２が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
【００１７】
図２は、図１の融合機１０１に係るハードウェア構成図である。融合機１０１のハードウェア１１１としては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。
【００１８】
コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ２２１、ＳＢ２２２、ＭＥＭ−Ｐ２３１、ＭＥＭ−Ｃ２３２、ＨＤＤ（ハードディスクドライブ）２３３、メモリカードスロット２３４、ＮＩＣ（ネットワークインタフェースコントローラ）２４１、ＵＳＢ用ＩＦ２４２、ＩＥＥＥ１３９４用ＩＦ２４３、セントロニクス用ＩＦ２４４により構成される。
【００１９】
ＣＰＵ２１１は、種々の情報処理用のＩＣである。ＡＳＩＣ２１２は、種々の画像処理用のＩＣである。ＮＢ２２１は、コントローラ２０１のノースブリッジである。ＳＢ２２２は、コントローラ２０１のサウスブリッジである。ＭＥＭ−Ｐ２３１は、融合機１０１のシステムメモリである。ＭＥＭ−Ｃ２３２は、融合機１０１のローカルメモリである。ＨＤＤ２３３は、融合機１０１のストレージである。メモリカードスロット２３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ２４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢ用ＩＦ２４２は、ＵＳＢ規格の接続端子を提供するインタフェースである。ＩＥＥＥ１３９４用ＩＦ２４３は、ＩＥＥＥ１３９４規格の接続端子を提供するインタフェースである。セントロニクス用ＩＦ２４４は、セントロニクス仕様の接続端子を提供するインタフェースである。
【００２０】
オペレーションパネル２０２は、オペレータが融合機１０１に入力を行うためのハードウェア（操作部）であると共に、オペレータが融合機１０１から出力を得るためのハードウェア（表示部）である。
【００２１】
図３は、図１の融合機１０１に係る外観図である。図３には、撮像部１２１の位置と、印刷部１２２の位置と、オペレーションパネル２０２の位置が図示されている。図３には更に、読取原稿のセット先となる原稿セット部３０１と、印刷用紙の給紙先となる給紙部３０２と、印刷用紙の排紙先となる排紙部３０３が図示されている。
【００２２】
オペレーションパネル２０２は、図４のように、タッチパネル３１１と、テンキー３１２と、スタートボタン３１３と、リセットボタン３１４と、機能キー３１５と、初期設定ボタン３１６により構成される。タッチパネル３１１は、タッチ操作で入力を行うためのハードウェア（タッチ操作部）であると共に、画面表示で出力を得るためのハードウェア（画面表示部）である。テンキー３１２は、キー（ボタン）操作で数字入力を行うためのハードウェアである。スタートボタン３１３は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン３１４は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー３１５は、キー（ボタン）操作でＣＳＤＫアプリ１４６やＪＳＤＫアプリ１４７による操作画面を表示させるためのハードウェアである。初期設定ボタン３１６は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
【００２３】
原稿セット部３０１は、ＡＤＦ（自動原稿搬送装置）３２１と、フラットベッド３２２と、フラットベッドカバー３２３により構成される。給紙部３０２は、４個の給紙トレイにより構成される。排紙部３０３は、１個の排紙トレイにより構成される。ＡＤＦ３２１には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド３２２には、読取原稿を下向きにセットする。
【００２４】
（ＵＳＢ）
図５は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイス４０１が接続されて使用される融合機１０１を表す。
【００２５】
ＵＳＢデバイス４０１は、ＵＳＢ規格の接続端子であるＵＳＢポートを具備する機器に活線挿抜可能なデバイスである。図１の融合機１０１にも、ＵＳＢデバイス４０１を挿抜するためのＵＳＢポート２４２が存在する。画像形成装置は頻繁に電源をオン・オフする事があまり望ましくない機器なので、活線挿抜可能と言うＵＳＢデバイス４０１の特徴は画像形成装置にとって好都合である。
【００２６】
ＵＳＢデバイス４０１の具体例には、ＵＳＢメモリやＵＳＢキーボードやＵＳＢマウスが存在する。ある機器であるＵＳＢデバイス４０１を利用するためには、その機器にそのＵＳＢデバイス４０１を利用するためのドライバであるＵＳＢデバイスドライバが必要となる。あるＵＳＢメモリを利用するにはそのＵＳＢメモリ用のドライバ、あるＵＳＢキーボードを利用するにはそのＵＳＢキーボード用のドライバ、あるＵＳＢマウスを利用するにはそのＵＳＢマウス用のドライバが必要となるのである。図１の融合機１０１でＵＳＢデバイス４０１を利用するためのＵＳＢデバイスドライバについては後述する。
【００２７】
図６は、ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７が提供する操作画面の具体例である。このようなＪＳＤＫアプリ１４７の具体例には、ＵＳＢメモリにデータを蓄積するスキャナ用のＪＳＤＫアプリ、ＵＳＢメモリからデータを取得するプリンタ用のＪＳＤＫアプリ、ＵＳＢキーボードによる入力操作を受容するＪＳＤＫアプリが存在するが、図６では３番目のＪＳＤＫアプリを想定する。
【００２８】
ＪＳＤＫアプリ１４７が起動すると、図６Ａの操作画面がオペレーションパネル２０２に表示される。図６Ａの操作画面でボタン「Ｃｏｎ」がタッチされると、融合機１０１に挿入されているＵＳＢキーボードの入力操作が「有効扱い」に成り、図６Ｂの操作画面に遷移する。図６Ｂの操作画面でボタン「ＤｉｓＣｏｎ」がタッチされると、融合機１０１に挿入されているＵＳＢキーボードの入力操作が「無効扱い」に戻り、図６Ａの操作画面に遷移する。図６Ｂの操作画面にてＵＳＢキーボードのキー「Ａ，Ｂ，Ｃ」が順番に押下されると、図６Ｃの操作画面のように表示フィールドには「ａｂｃ」と表示される。
【００２９】
図７は、ＵＳＢデバイス４０１に関する融合機１０１のソフトウェア機構について説明するためのソフトウェア構成図である。図１の融合機１０１には、ＵＳＢデバイス４０１に関するソフトウェアとして、ＵＳＢデバイスドライバ４０２やＵＳＢデバイスデーモン４０３がＨＤＤ２３３等に存在する。ＵＳＢデバイスドライバ４０２は、融合機１０１でＵＳＢデバイス４０１を利用するためのドライバ（プログラム）である。ＵＳＢデバイスデーモン４０３は、ＵＳＢポート２４２に対するＵＳＢデバイス４０１の挿抜を監視するためのデーモン（プログラム）である。
【００３０】
ＵＳＢデバイスデーモン４０３は、ＵＳＢポート２４２にＵＳＢデバイス４０１が挿入された事を検出すると、当該ＵＳＢデバイス４０１を利用するためのＵＳＢデバイスドライバ４０２を起動させる事になり、ＵＳＢポート２４２からＵＳＢデバイス４０１が抜出された事を検出すると、当該ＵＳＢデバイス４０１を利用するためのＵＳＢデバイスドライバ４０２を停止させる事になる。即ち、ＵＳＢデバイスデーモン４０３は、ＵＳＢデバイス４０１の挿抜に応じて、当該ＵＳＢデバイス４０１を利用するためのＵＳＢデバイスドライバ４０２を自動的に起動・停止させるのである。
【００３１】
以下、融合機１０１が起動される際の情報処理について説明する。
【００３２】
融合機１０１の電源がオフからオンになると、ＳＡＳ１８３はＪＳＤＫアプリ１４７を起動（Ｓ１１）させる。次に、ＳＡＳ１８３はＳＤＫアプリの環境設定ファイル５０１からＵＳＢデバイスドライバ４０２の起動設定ファイル５０２を、例えばＨＤＤ２３３に生成（Ｓ１２）する。
【００３３】
図８は、起動設定ファイルに格納される情報の構成例を示す図である。図８に示されるように、起動設定ファイル５０２には、ＵＳＢデバイスドライバ４０２の実行ファイル名、当該ＵＳＢデバイスドライバ４０２が対応するＵＳＢデバイス４０１の識別情報、及び当該ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７の識別情報等が格納される。すなわち、起動設定ファイル５０２には、ＵＳＢデバイスドライバ４０２、ＵＳＢデバイス４０１、及びＪＳＤＫアプリ１４７の対応関係を示す情報が格納される。
【００３４】
起動設定ファイル５０２に格納される情報は、環境設定ファイル５０１の中から抽出されたものである。すなわち、環境設定ファイル５０１には、各ＳＤＫアプリ（ＣＳＤＫアプリ１４６及びＪＳＤＫアプリ１４７を含む）について各種設定に関する情報（例えば、アプリケーション名、メモリの使用サイズ、アプリケーションの種別等）が格納されており、ＳＡＳ１８３は、環境設定ファイル５０１を参照して各ＳＤＫアプリの管理を行う。本実施の形態において、ＵＳＢデバイスドライバ４０２は、一つのＳＤＫアプリとして扱われる。したがって、ＵＳＢデバイスドライバ４０２についても、他のＳＤＫアプリと同様に各種設定に関する情報が格納される。但し、ＵＳＢデバイスドライバ４０２については、ＵＳＢデバイスドライバ４０２に特有の情報が拡張情報として環境設定ファイル５０１に格納されており、当該拡張情報がステップＳ１２において抽出され、起動設定ファイル５０２が生成される。なお、環境設定ファイル５０１に複数のＵＳＢデバイスドライバ４０２が登録されている場合は、複数のＵＳＢデバイスドライバ４０２の起動設定ファイル５０２が生成される。環境設定ファイル５０１に登録されているＳＤＫアプリのうち、いずれがＵＢＳデバイスドライバ４０２であるかは、環境設定ファイル５０１においてＳＤＫアプリごとに登録されているアプリケーション種別に基づいて判定される。
【００３５】
融合機１０１の電源がオフからオンになるときにＵＳＢポート２４２にＵＳＢデバイス４０１が挿入されていると、ＵＳＢデバイス４０１が挿入されている事をＵＳＢデバイスデーモン４０３が検出（Ｓ１３）する。次に、ＵＳＢデバイスデーモン４０３は、検出されたＵＳＢデバイス４０１の識別情報に基づいて、起動設定ファイル５０２より当該ＵＳＢデバイス４０１に対応するＵＳＢデバイスドライバ４０２を検索し、検索されたＵＳＢデバイスドライバ４０２をプロセスとして起動させる（Ｓ１４）。
【００３６】
なお、Ｓ１４の起動対象のＵＳＢデバイスドライバ４０２が融合機１０１に存在する場合には、図７のように、融合機１０１に存在するＵＳＢデバイスドライバ４０２を起動させる。Ｓ１４の起動対象のＵＳＢデバイスドライバ４０２が融合機１０１に存在しない場合には、図７のように、Ｓ１４の起動対象のＵＳＢデバイスドライバ４０２を融合機１０１に挿入されたメディア（例えばＳＤメモリカード）や融合機１０１に接続されたネットワーク（例えばＷｅｂサイト）から取得（ダウンロード）して起動させる。次に、Ｓ１３にて検出されたＵＳＢデバイス４０１とＳ１４にて起動されたＵＳＢデバイスドライバ４０２との間にてコネクションが確立（Ｓ１５）される。
【００３７】
続いて、Ｓ１４にて起動されたＵＳＢデバイスドライバ４０２は、当該ＵＳＢデバイスドライバ４０２の各種設定に関する情報（以下「ＵＳＢデバイスドライバ情報」という。）をＳＡＳ１８３に通知（Ｓ１６）する。当該通知に受けて、ＳＡＳ１８３は当該ＵＳＢデバイスドライバ情報を融合機１０１の所定のメモリ領域（例えば、ＭＥＭ−Ｐ２３１における所定の領域）に格納し、管理する。
【００３８】
図９は、ＵＳＢデバイスドライバ情報の構成例を示す図である。図９に示されるように、ＵＳＢデバイスドライバ情報５０３は、当該ＵＳＢデバイスドライバ４０２のプロダクトＩＤ、プロセスＩＤ、当該ＵＳＢデバイスドライバ４０２に対応するＵＳＢデバイス４０１の名称、当該ＵＳＢデバイスドライバ４０２とソケット通信を行うためのソケットの識別情報等より構成されている。なお、ＵＳＢデバイスドライバ４０２は、その起動後に、サーバとしてソケットを開設して待機しており、そのソケットの識別情報がＵＳＢデバイスドライバ情報５０３に含まれている。
【００３９】
続いて、Ｓ１１にて起動されたＪＳＤＫアプリ１４７は、ＵＳＢデバイスドライバ情報５０３をＳＡＳ１８３に要求（Ｓ１７）する。当該要求を受けて、ＳＡＳ１８３は当該情報を返答する。なお、ＪＳＤＫアプリ１４７による当該要求は、ＪＳＤＫアプリ１４７の起動後、ポーリングによって行われてもよいし、ステップＳ１６の通知を受けたＳＡＳ１８３からの割り込みに応じて行われてもよい。続いて、ＵＳＢデバイスドライバ情報５０３を基に、Ｓ１１にて起動されたＪＳＤＫアプリ１４７とＳ１４にて起動されたＵＳＢデバイスドライバ４０２との間にてソケットのコネクションが確立（Ｓ１８）される。より詳しくは、ＪＳＤＫアプリ１４７は、ＵＳＢデバイスドライバ情報５０３に含まれているソケットの識別情報に基づいて、クライアントとしてＵＳＢデバイスドライバ４０２に対してソケット通信の接続を要求する。ＪＳＤＫアプリ１４７からの要求を受けて、ＪＳＤＫアプリ１４７とＵＳＢデバイスドライバ４０２との間にてソケットのコネクションが確立される。なお、ソケットに関する情報処理は、ＵＮＩＸ（登録商標）等のＯＳにより実行される。
【００４０】
以上のように、ＵＳＢデバイスドライバ４０２の起動処理・停止処理はＵＳＢデバイスデーモン４０３が担当している。従来はＯＳが担当していた処理である。ＵＳＢデバイスドライバ４０２の起動処理・停止処理をＵＳＢデバイスデーモン４０３が担当する事で、ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７の実行態様を考慮したきめ細かい起動処理・停止処理が実行可能となっている。例えば、ＪＳＤＫアプリ１４７に対応するＵＳＢデバイスドライバ４０２を自動的に起動・停止させたり、ＪＳＤＫアプリ１４７に対応するＵＳＢデバイスドライバ４０２をメディアやネットワークから自動的に取得して来たりと言う具合である。メディアからの自動取得ならばＵＳＢデバイスドライバ４０２をインストールする手間が軽減されるし、ネットワークからの自動取得ならばメディアを準備する手間までも軽減される。なお、図７の情報処理については図１０にてシーケンス図でも記載しておいた。図７と図１０でステップ番号は共通である。
【００４１】
図７及び図１０では、ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７が、融合機１０１が起動される際に起動されるような実施形態を取り上げた。図１１及び図１２では、ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７が、ＵＳＢポート２４２にＵＳＢデバイス４０１が挿入された際に起動されるような実施形態を取り上げる。図１１は図７と同様のソフトウェア構成図であり、図１２は図１０と同様のシーケンス図である。
【００４２】
以下、ＵＳＢデバイス４０１が挿入された際の情報処理について説明する。
【００４３】
融合機１０１の電源がオンのときにＵＳＢポート２４２にＵＳＢデバイス４０１が挿入されると、ＵＳＢデバイス４０１が挿入された事をＵＳＢデバイスデーモン４０３が検出（Ｓ２１）する。次に、ＵＳＢデバイスデーモン４０３は、環境設定ファイル５０１から起動設定ファイル５０２をＳＡＳ１８３に生成（Ｓ２２）させる。次に、ＵＳＢデバイスデーモン４０３は、検出されたＵＳＢデバイス４０１の識別情報に基づいて、起動設定ファイル５０２より当該ＵＳＢデバイス４０１に対応する（当該ＵＳＢデバイス４０１を利用する）ＪＳＤＫアプリ１４７を検索し、検索されたＪＳＤＫアプリ１４７を起動（Ｓ２３）させる。次に、ＵＳＢデバイスデーモン４０３は、起動設定ファイル５０２を参照して、Ｓ２３にて起動されたＪＳＤＫアプリ１４７に対応するＵＳＢデバイスドライバ４０２を起動（Ｓ２４）させる。次に、Ｓ２１にて検出されたＵＳＢデバイス４０１とＳ２４にて起動されたＵＳＢデバイスドライバ４０２との間にてコネクションが確立（Ｓ２５）される。
【００４４】
続いて、Ｓ２４にて起動されたＵＳＢデバイスドライバ４０２は、ＵＳＢデバイスドライバ情報５０３をＳＡＳ１８３に通知（Ｓ２６）する。当該通知に受けて、ＳＡＳ１８３は当該情報を管理する。続いて、Ｓ２３にて起動されたＪＳＤＫアプリ１４７は、ＵＳＢデバイスドライバ情報５０３をＳＡＳ１８３に要求（Ｓ２７）する。当該要求を受けて、ＳＡＳ１８３は当該情報を返答する。なお、ＪＳＤＫアプリ１４７による当該要求は、ＪＳＤＫアプリ１４７の起動後、ポーリングによって行われてもよいし、ステップＳ２６の通知を受けたＳＡＳ１８３からの割り込みに応じて行われてもよい。続いて、ＵＳＢデバイスドライバ情報５０３を基に、Ｓ２３にて起動されたＪＳＤＫアプリ１４７とＳ２４にて起動されたＵＳＢデバイスドライバ４０２との間にてソケットのコネクションが確立（Ｓ２８）される。
【００４５】
以上のように、当該実施形態のＵＳＢデバイスデーモン４０３は、ＵＳＢポート２４２にＵＳＢデバイス４０１が挿入された事を検出すると、当該ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７を起動させる事になり、ＵＳＢポート２４２からＵＳＢデバイス４０１が抜出された事を検出すると、当該ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７を停止させる事になる。即ち、当該実施形態のＵＳＢデバイスデーモン４０３は、ＵＳＢデバイス４０１の挿抜に応じて、当該ＵＳＢデバイス４０１を利用するＪＳＤＫアプリ１４７を自動的に起動・停止させるのである。
【００４６】
なお、上記の実施の形態では、ＪＳＤＫアプリ１４７の起動制御を行うＳＡＳ１８３が、起動設定ファイル５０２やＵＳＢデバイスドライバ情報５０３等、ＪＳＤＫアプリ１４７とＵＳＢデバイスドライバ４０２とのコネクションを確立するために必要となる情報等の管理を行う例を説明した。しかし、このことは、ＪＳＤＫアプリ１４７の起動制御を行うモジュールによって当該情報の管理が行われなければならないことを意味するものではない。例えば、当該情報を管理するモジュールをＳＡＳ１８３と別個に設けてもよい。
【符号の説明】
【００４７】
１０１  融合機
１１１  ハードウェア
１１２  ソフトウェア
１１３  融合機起動部
１２１  撮像部
１２２  印刷部
１２３  その他のハードウェア
１３１  アプリケーション
１３２  プラットフォーム
１３３  アプリケーションプログラムインタフェース
１３４  エンジンインタフェース
１３５  仮想アプリケーションサービス
１４１  コピーアプリ
１４２  プリンタアプリ
１４３  スキャナアプリ
１４４  ファクシミリアプリ
１４５  ネットワークファイルアプリ
１４６  ＣＳＤＫアプリ
１４７  ＪＳＤＫアプリ
１４８  ＪＳＤＫプラットフォーム
１５１  コントロールサービス
１５２  システムリソースマネージャ
１５３  ハンドラ
１６１  ネットワークコントロールサービス
１６２  ファクシミリコントロールサービス
１６３  デリバリコントロールサービス
１６４  エンジンコントロールサービス
１６５  メモリコントロールサービス
１６６  オペレーションパネルコントロールサービス
１６７  サーティフィケーションコントロールサービス
１６８  ユーザディレクトリコントロールサービス
１６９  システムコントロールサービス
１７１  ファクシミリコントロールユニットハンドラ
１７２  イメージメモリハンドラ
１８１  Ｗｅｂブラウザ
１８２  Ｗｅｂサーバソフト
１８３  ＳＤＫアプリケーションサービス
２０１  コントローラ
２０２  オペレーションパネル
２０３  ファクシミリコントロールユニット
２１１  ＣＰＵ
２１２  ＡＳＩＣ
２２１  ＮＢ
２２２  ＳＢ
２３１  ＭＥＭ−Ｐ
２３２  ＭＥＭ−Ｃ
２３３  ＨＤＤ
２３４  メモリカードスロット
２３５  メモリカード
２４１  ＮＩＣ
２４２  ＵＳＢ用ＩＦ
２４３  ＩＥＥＥ１３９４用ＩＦ
２４４  セントロニクス用ＩＦ
３０１  原稿セット部
３０２  給紙部
３０３  排紙部
３１１  タッチパネル
３１２  テンキー
３１３  スタートボタン
３１４  リセットボタン
３１５  機能キー
３１６  初期設定ボタン
３２１  ＡＤＦ
３２２  フラットベッド
３２３  フラットベッドカバー
４０１  ＵＳＢデバイス
４０２  ＵＳＢデバイスドライバ
４０３  ＵＳＢデバイスデーモン
５０１  環境設定ファイル
５０２  起動設定ファイル
５０３  ＵＳＢデバイスドライバ情報
【先行技術文献】
【特許文献】
【００４８】
【特許文献１】特開２００２−８４３８３号公報
【特許文献２】特開２００４−５４７９１号公報
【図１】
2011234416.tif 000003
【図２】
2011234416.tif 000004
【図３】
2011234416.tif 000005
【図４】
2011234416.tif 000006
【図５】
2011234416.tif 000007
【図６】
2011234416.tif 000008
【図７】
2011234416.tif 000009
【図８】
2011234416.tif 000010
【図９】
2011234416.tif 000011
【図１０】
2011234416.tif 000012
【図１１】
2011234416.tif 000013
【図１２】
2011234416.tif 000014