"挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器であって、前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手段と、前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手段によって判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手段とを有し、前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する機器。前記第一のプログラムは、前記デバイスのデバイスドライバである請求項1記載の機器。前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器に挿入されたメディアから又はネットワークを介して当該第一のプログラムを取得する請求項1又は2記載の機器。前記監視手段は、前記デバイスの抜出の検出に応じ、該デバイスに対応する前記第一のプログラムを停止させる機器。挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器が実行する情報処理方法であって、前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手順と、前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手順において判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手順とを有し、前記監視手順は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する情報処理方法。請求項5に記載の情報処理方法をコンピュータに実行させる情報処理プログラム。請求項6に記載の情報処理方法をコンピュータに実行させる情報処理プログラムが記録されたコンピュータ読取可能な記録媒体。近年、電気機器や情報機器は、USBデバイスやIEEE1394デバイス等の様々な規格のデバイスが接続されて使用される事が多くなっている。複合機や融合機も例外ではない。しかしながら、複合機や融合機は大勢で共用する事が多いと共に、複合機や融合機では様々な種類のプログラムが様々な態様で実行される事が多いので、これらのマシンのどの機構がどんな態様でこれらのデバイスに関する機構を制御するかが問題となる。本発明は、デバイスが接続されて使用される機器に関して、デバイスに関する機構を制御するための新たな手法を提案することを課題とする。そこで上記課題を解決するため、本発明は、挿抜可能なデバイスを挿抜するための接続端子を備え、複数のプログラムがインストールされる機器であって、前記プログラムごとに当該機器に登録されている前記プログラムの種別情報に基づいて、前記複数のプログラムの中から前記デバイスを制御する第一のプログラムを判定する判定手段と、前記デバイスの挿入の検出に応じ、当該機器の記憶手段に保存されている、前記デバイスと前記第一のプログラムとの対応関係を示す情報に基づいて、検出された前記デバイスに対応する前記第一のプログラムを、前記判定手段によって判定された前記第一のプログラムの中から検索し、検索された前記第一のプログラムを起動する監視手段とを有し、前記監視手段は、検出された前記デバイスに対応する前記第一のプログラムが当該機器に存在しない場合には、当該機器の外部から当該第一のプログラムを取得して、当該第一のプログラムを起動する。本発明によれば、デバイスが接続されて使用される機器に関して、デバイスに関する機構を制御するための新たな手法を提案することができる。図1は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像画像データを読み取るためのハードウェアである。印刷部122は、画像画像データを印刷用紙に印刷するためのハードウェアである。融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX登録商標等のOSオペレーティングシステムによりプロセス単位で並列的に実行される。アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。そしてさらに、Webページの閲覧用のソフトウェアであるWebブラウザ181、Webページの配信用のソフトウェアであるWebサーバソフト182、CSDKアプリ146やJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービスSAS183が存在する。アプリケーション131は、専用のSDKソフトウェア開発キットを使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するためのCSDKや、Java登録商標言語でアプリケーション131を開発するためのJSDKが提供される。CSDKを使用して開発したアプリケーション131をCSDKアプリと呼び、JSDKを使用して開発したアプリケーション131をJSDKアプリと呼ぶ。図1の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図1の融合機101にはさらに、Java登録商標言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービスNCS161、ファクシミリコントロールサービスFCS162、デリバリコントロールサービスDCS163、エンジンコントロールサービスECS164、メモリコントロールサービスMCS165、オペレーションパネルコントロールサービスOCS166、サーティフィケーションコントロールサービスCCS167、ユーザディレクトリコントロールサービスUCS168、システムコントロールサービスSCS169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラFCUH171、イメージメモリハンドラIMH172が存在する。また、USBポート242に接続されるデバイスを制御するためのUSBデバイスドライバ402が存在する。NCS161のプロセスは、ネットワーク通信の仲介や融合機101に接続される各種デバイスとの通信の仲介等を行う。例えば、NCS161は、その機能の一部としてUSBデバイスデーモン403を別プロセスとして起動する。USBデバイスデーモン403の詳細については後述する。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービスVAS135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX登録商標等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。図2は、図1の融合機101に係るハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニットFCU203と、撮像部121と、印刷部122が存在する。コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM-P231、MEM-C232、HDDハードディスクドライブ233、メモリカードスロット234、NICネットワークインタフェースコントローラ241、USB用IF242、IEEE1394用IF243、セントロニクス用IF244により構成される。CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM-P231は、融合機101のシステムメモリである。MEM-C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USB用IF242は、USB規格の接続端子を提供するインタフェースである。IEEE1394用IF243は、IEEE1394規格の接続端子を提供するインタフェースである。セントロニクス用IF244は、セントロニクス仕様の接続端子を提供するインタフェースである。オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア操作部であると共に、オペレータが融合機101から出力を得るためのハードウェア表示部である。図3は、図1の融合機101に係る外観図である。図3には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図3には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。オペレーションパネル202は、図4のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェアタッチ操作部であると共に、画面表示で出力を得るためのハードウェア画面表示部である。テンキー312は、キーボタン操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キーボタン操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。原稿セット部301は、ADF自動原稿搬送装置321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。ADF321には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド322には、読取原稿を下向きにセットする。USB図5は、USBUniversalSerialBusデバイス401が接続されて使用される融合機101を表す。USBデバイス401は、USB規格の接続端子であるUSBポートを具備する機器に活線挿抜可能なデバイスである。図1の融合機101にも、USBデバイス401を挿抜するためのUSBポート242が存在する。画像形成装置は頻繁に電源をオンオフする事があまり望ましくない機器なので、活線挿抜可能と言うUSBデバイス401の特徴は画像形成装置にとって好都合である。USBデバイス401の具体例には、USBメモリやUSBキーボードやUSBマウスが存在する。ある機器であるUSBデバイス401を利用するためには、その機器にそのUSBデバイス401を利用するためのドライバであるUSBデバイスドライバが必要となる。あるUSBメモリを利用するにはそのUSBメモリ用のドライバ、あるUSBキーボードを利用するにはそのUSBキーボード用のドライバ、あるUSBマウスを利用するにはそのUSBマウス用のドライバが必要となるのである。図1の融合機101でUSBデバイス401を利用するためのUSBデバイスドライバについては後述する。図6は、USBデバイス401を利用するJSDKアプリ147が提供する操作画面の具体例である。このようなJSDKアプリ147の具体例には、USBメモリにデータを蓄積するスキャナ用のJSDKアプリ、USBメモリからデータを取得するプリンタ用のJSDKアプリ、USBキーボードによる入力操作を受容するJSDKアプリが存在するが、図6では3番目のJSDKアプリを想定する。JSDKアプリ147が起動すると、図6Aの操作画面がオペレーションパネル202に表示される。図6Aの操作画面でボタンConがタッチされると、融合機101に挿入されているUSBキーボードの入力操作が有効扱いに成り、図6Bの操作画面に遷移する。図6Bの操作画面でボタンDisConがタッチされると、融合機101に挿入されているUSBキーボードの入力操作が無効扱いに戻り、図6Aの操作画面に遷移する。図6Bの操作画面にてUSBキーボードのキーA,B,Cが順番に押下されると、図6Cの操作画面のように表示フィールドにはabcと表示される。図7は、USBデバイス401に関する融合機101のソフトウェア機構について説明するためのソフトウェア構成図である。図1の融合機101には、USBデバイス401に関するソフトウェアとして、USBデバイスドライバ402やUSBデバイスデーモン403がHDD233等に存在する。USBデバイスドライバ402は、融合機101でUSBデバイス401を利用するためのドライバプログラムである。USBデバイスデーモン403は、USBポート242に対するUSBデバイス401の挿抜を監視するためのデーモンプログラムである。USBデバイスデーモン403は、USBポート242にUSBデバイス401が挿入された事を検出すると、当該USBデバイス401を利用するためのUSBデバイスドライバ402を起動させる事になり、USBポート242からUSBデバイス401が抜出された事を検出すると、当該USBデバイス401を利用するためのUSBデバイスドライバ402を停止させる事になる。即ち、USBデバイスデーモン403は、USBデバイス401の挿抜に応じて、当該USBデバイス401を利用するためのUSBデバイスドライバ402を自動的に起動停止させるのである。以下、融合機101が起動される際の情報処理について説明する。融合機101の電源がオフからオンになると、SAS183はJSDKアプリ147を起動S11させる。次に、SAS183はSDKアプリの環境設定ファイル501からUSBデバイスドライバ402の起動設定ファイル502を、例えばHDD233に生成S12する。図8は、起動設定ファイルに格納される情報の構成例を示す図である。図8に示されるように、起動設定ファイル502には、USBデバイスドライバ402の実行ファイル名、当該USBデバイスドライバ402が対応するUSBデバイス401の識別情報、及び当該USBデバイス401を利用するJSDKアプリ147の識別情報等が格納される。すなわち、起動設定ファイル502には、USBデバイスドライバ402、USBデバイス401、及びJSDKアプリ147の対応関係を示す情報が格納される。起動設定ファイル502に格納される情報は、環境設定ファイル501の中から抽出されたものである。すなわち、環境設定ファイル501には、各SDKアプリCSDKアプリ146及びJSDKアプリ147を含むについて各種設定に関する情報例えば、アプリケーション名、メモリの使用サイズ、アプリケーションの種別等が格納されており、SAS183は、環境設定ファイル501を参照して各SDKアプリの管理を行う。本実施の形態において、USBデバイスドライバ402は、一つのSDKアプリとして扱われる。したがって、USBデバイスドライバ402についても、他のSDKアプリと同様に各種設定に関する情報が格納される。但し、USBデバイスドライバ402については、USBデバイスドライバ402に特有の情報が拡張情報として環境設定ファイル501に格納されており、当該拡張情報がステップS12において抽出され、起動設定ファイル502が生成される。なお、環境設定ファイル501に複数のUSBデバイスドライバ402が登録されている場合は、複数のUSBデバイスドライバ402の起動設定ファイル502が生成される。環境設定ファイル501に登録されているSDKアプリのうち、いずれがUBSデバイスドライバ402であるかは、環境設定ファイル501においてSDKアプリごとに登録されているアプリケーション種別に基づいて判定される。融合機101の電源がオフからオンになるときにUSBポート242にUSBデバイス401が挿入されていると、USBデバイス401が挿入されている事をUSBデバイスデーモン403が検出S13する。次に、USBデバイスデーモン403は、検出されたUSBデバイス401の識別情報に基づいて、起動設定ファイル502より当該USBデバイス401に対応するUSBデバイスドライバ402を検索し、検索されたUSBデバイスドライバ402をプロセスとして起動させるS14。なお、S14の起動対象のUSBデバイスドライバ402が融合機101に存在する場合には、図7のように、融合機101に存在するUSBデバイスドライバ402を起動させる。S14の起動対象のUSBデバイスドライバ402が融合機101に存在しない場合には、図7のように、S14の起動対象のUSBデバイスドライバ402を融合機101に挿入されたメディア例えばSDメモリカードや融合機101に接続されたネットワーク例えばWebサイトから取得ダウンロードして起動させる。次に、S13にて検出されたUSBデバイス401とS14にて起動されたUSBデバイスドライバ402との間にてコネクションが確立S15される。続いて、S14にて起動されたUSBデバイスドライバ402は、当該USBデバイスドライバ402の各種設定に関する情報以下USBデバイスドライバ情報という。をSAS183に通知S16する。当該通知に受けて、SAS183は当該USBデバイスドライバ情報を融合機101の所定のメモリ領域例えば、MEM-P231における所定の領域に格納し、管理する。図9は、USBデバイスドライバ情報の構成例を示す図である。図9に示されるように、USBデバイスドライバ情報503は、当該USBデバイスドライバ402のプロダクトID、プロセスID、当該USBデバイスドライバ402に対応するUSBデバイス401の名称、当該USBデバイスドライバ402とソケット通信を行うためのソケットの識別情報等より構成されている。なお、USBデバイスドライバ402は、その起動後に、サーバとしてソケットを開設して待機しており、そのソケットの識別情報がUSBデバイスドライバ情報503に含まれている。続いて、S11にて起動されたJSDKアプリ147は、USBデバイスドライバ情報503をSAS183に要求S17する。当該要求を受けて、SAS183は当該情報を返答する。なお、JSDKアプリ147による当該要求は、JSDKアプリ147の起動後、ポーリングによって行われてもよいし、ステップS16の通知を受けたSAS183からの割り込みに応じて行われてもよい。続いて、USBデバイスドライバ情報503を基に、S11にて起動されたJSDKアプリ147とS14にて起動されたUSBデバイスドライバ402との間にてソケットのコネクションが確立S18される。より詳しくは、JSDKアプリ147は、USBデバイスドライバ情報503に含まれているソケットの識別情報に基づいて、クライアントとしてUSBデバイスドライバ402に対してソケット通信の接続を要求する。JSDKアプリ147からの要求を受けて、JSDKアプリ147とUSBデバイスドライバ402との間にてソケットのコネクションが確立される。なお、ソケットに関する情報処理は、UNIX登録商標等のOSにより実行される。以上のように、USBデバイスドライバ402の起動処理停止処理はUSBデバイスデーモン403が担当している。従来はOSが担当していた処理である。USBデバイスドライバ402の起動処理停止処理をUSBデバイスデーモン403が担当する事で、USBデバイス401を利用するJSDKアプリ147の実行態様を考慮したきめ細かい起動処理停止処理が実行可能となっている。例えば、JSDKアプリ147に対応するUSBデバイスドライバ402を自動的に起動停止させたり、JSDKアプリ147に対応するUSBデバイスドライバ402をメディアやネットワークから自動的に取得して来たりと言う具合である。メディアからの自動取得ならばUSBデバイスドライバ402をインストールする手間が軽減されるし、ネットワークからの自動取得ならばメディアを準備する手間までも軽減される。なお、図7の情報処理については図10にてシーケンス図でも記載しておいた。図7と図10でステップ番号は共通である。図7及び図10では、USBデバイス401を利用するJSDKアプリ147が、融合機101が起動される際に起動されるような実施形態を取り上げた。図11及び図12では、USBデバイス401を利用するJSDKアプリ147が、USBポート242にUSBデバイス401が挿入された際に起動されるような実施形態を取り上げる。図11は図7と同様のソフトウェア構成図であり、図12は図10と同様のシーケンス図である。以下、USBデバイス401が挿入された際の情報処理について説明する。融合機101の電源がオンのときにUSBポート242にUSBデバイス401が挿入されると、USBデバイス401が挿入された事をUSBデバイスデーモン403が検出S21する。次に、USBデバイスデーモン403は、環境設定ファイル501から起動設定ファイル502をSAS183に生成S22させる。次に、USBデバイスデーモン403は、検出されたUSBデバイス401の識別情報に基づいて、起動設定ファイル502より当該USBデバイス401に対応する当該USBデバイス401を利用するJSDKアプリ147を検索し、検索されたJSDKアプリ147を起動S23させる。次に、USBデバイスデーモン403は、起動設定ファイル502を参照して、S23にて起動されたJSDKアプリ147に対応するUSBデバイスドライバ402を起動S24させる。次に、S21にて検出されたUSBデバイス401とS24にて起動されたUSBデバイスドライバ402との間にてコネクションが確立S25される。続いて、S24にて起動されたUSBデバイスドライバ402は、USBデバイスドライバ情報503をSAS183に通知S26する。当該通知に受けて、SAS183は当該情報を管理する。続いて、S23にて起動されたJSDKアプリ147は、USBデバイスドライバ情報503をSAS183に要求S27する。当該要求を受けて、SAS183は当該情報を返答する。なお、JSDKアプリ147による当該要求は、JSDKアプリ147の起動後、ポーリングによって行われてもよいし、ステップS26の通知を受けたSAS183からの割り込みに応じて行われてもよい。続いて、USBデバイスドライバ情報503を基に、S23にて起動されたJSDKアプリ147とS24にて起動されたUSBデバイスドライバ402との間にてソケットのコネクションが確立S28される。以上のように、当該実施形態のUSBデバイスデーモン403は、USBポート242にUSBデバイス401が挿入された事を検出すると、当該USBデバイス401を利用するJSDKアプリ147を起動させる事になり、USBポート242からUSBデバイス401が抜出された事を検出すると、当該USBデバイス401を利用するJSDKアプリ147を停止させる事になる。即ち、当該実施形態のUSBデバイスデーモン403は、USBデバイス401の挿抜に応じて、当該USBデバイス401を利用するJSDKアプリ147を自動的に起動停止させるのである。なお、上記の実施の形態では、JSDKアプリ147の起動制御を行うSAS183が、起動設定ファイル502やUSBデバイスドライバ情報503等、JSDKアプリ147とUSBデバイスドライバ402とのコネクションを確立するために必要となる情報等の管理を行う例を説明した。しかし、このことは、JSDKアプリ147の起動制御を行うモジュールによって当該情報の管理が行われなければならないことを意味するものではない。例えば、当該情報を管理するモジュールをSAS183と別個に設けてもよい。"