(57)【要約】【課題】プラグアンドプレイで認識されたデバイスに対応するデバイスドライバを自動インストールすることで、必要以上のデバイスドライバがインストールされてしまう。【解決手段】プラグアンドプレイで認識されたデバイスに対応するデバイスドライバを自動インストールする場合、インストール可能なデバイスドライバの上限数を設定する。【選択図】図１９
2007066189.tif 000002
【特許請求の範囲】
【請求項１】
接続された周辺機器を認識する認識機能を有するコンピュータにより、前記周辺機器を利用可能とするためのプログラムであって、
インストールされるデバイスドライバの制限数を保持する制限数保持手段と、
前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持手段により保持された制限数分のデバイスドライバをインストールするインストール制御手段と
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
前記インストール制御手段は、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記制限数はインストール可能なデバイスドライバの数を示す上限数であり、
前記インストール制御手段は、前記制限数をインストール済みのデバイスドライバの上限として、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１または２に記載のプログラム。
【請求項４】
接続された周辺機器を認識する認識機能を提供する周辺機器認識手段をコンピュータによりさらに実現させることを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記認識機能は、接続された周辺機器に関する情報を収集し、
前記インストール制御手段は、前記制限数保持手段により保持された制限数をインストール可能なデバイスドライバの数として、前記認識機能により収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定し、該決定されたデバイスドライバの候補のうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記認識機能により認識された周辺機器に、所定の属性情報に基づいて優先順位を付ける順位付け手段としてコンピュータをさらに機能させ、
前記インストール制御手段は、前記順位付け手段により付された順位が前記制限数以内の周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１乃至５のいずれかに１項に記載のプログラム。
【請求項７】
前記属性情報を利用者が指定するための指定手段としてコンピュータをさらに機能させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記制限数保持手段は、周辺機器の種類毎に、インストールされるデバイスドライバの上限数を保持することを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記周辺機器はプリンタを含むことを特徴とする請求項１乃至８のいずれか１項に記載のプログラム。
【請求項１０】
前記順位付け手段は、インストール済み属性を前記属性情報として、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高優先順位を付けることを特徴とする請求項６に記載のプログラム。
【請求項１１】
前記順位付け手段は、使用頻度属性を属性情報として、使用頻度に基づいて優先順位を付けることを特徴とする請求項６または１０に記載のプログラム。
【請求項１２】
前記順位付け手段は、機能属性を属性情報として、指定された機能を有する周辺機器に対して、該指定された機能を有さない周辺機器よりも高優先順位を付けることを特徴とする請求項６または１０または１１に記載のプログラム。
【請求項１３】
前記順位付け手段によって設定された順位に基づいて、前記制限数に含まれない順位の周辺機器に対応するデバイスドライバがインストールされているか否かを判定する判定手段と、
前記判定手段により前記制限数に満たない順位の周辺機器に対応するデバイスドライバがインストールされていると判定された場合、該判定されたデバイスドライバをアンインストールするアンインストール制御手段を有することを特徴とする請求項６に記載のプログラム。
【請求項１４】
周辺機器と通信可能であり、制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶するコンピュータにより、前記周辺機器を利用可能とするためのプログラムであって、
前記周辺機器が発行する所定の信号を受信する第１受信手段と、
前記第１受信手段により受信した所定の信号の発行元に当たる周辺機器に関する情報を受信する第２受信手段と、
前記第２受信手段によって受信した周辺機器に関する情報と前記所定の条件に基づいて設定された前記周辺機器の優先順位が、前記制限数を満たすか否かを判定する判定手段と、
前記判定手段により前記周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御手段を有することを特徴とするプログラム。
【請求項１５】
前記第１受信手段によって受信される所定の信号とは、前記コンピュータと通信可能となった周辺機器から接続開始信号であることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
インストールすべきデバイスドライバを決定するための属性情報を設定する設定手段と、
前記設定手段により設定された属性情報に基づいて、デバイスドライバの優先順位を設定する優先順位付け手段を有し、
前記優先順位付け手段は、前記第２受信手段によって受信した周辺機器に関する情報が前記設定手段により設定された属性情報と一致する情報が多い周辺機器ほど高い優先順位を設定することを特徴とする請求項１４または１５に記載のプログラム。
【請求項１７】
前記インストール制御手段により前記周辺機器のデバイスドライバをインストールした場合、既にインストール済みのデバイスドライバから少なくとも１つのデバイスドライバをアンインストールすることを特徴とする請求項１４乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
接続された周辺機器を認識する認識機能を有し、接続された周辺機器を利用可能とすることができる情報処理装置であって、
インストールされるデバイスドライバの制限数を保持する制限数保持手段と、
前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持手段により保持された制限数分のデバイスドライバをインストールするインストール制御手段と
を備えることを特徴とする情報処理装置。
【請求項１９】
前記インストール制御手段は、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記制限数はインストール可能なデバイスドライバの数を示す上限数であり、
前記インストール制御手段は、前記制限数をインストール済みのデバイスドライバの上限として、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１８または１９に記載の情報処理装置。
【請求項２１】
接続された周辺機器を認識する認識機能を提供する周辺機器認識手段をさらに備えることを特徴とする請求項１８乃至２０のいずれか１項に記載の情報処理装置。
【請求項２２】
前記認識機能は、接続された周辺機器に関する情報を収集し、
前記インストール制御手段は、前記制限数保持手段により保持された制限数をインストール可能なデバイスドライバの数として、前記認識機能により収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定し、該決定されたデバイスドライバの候補のうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１８乃至２１のいずれか１項に記載の情報処理装置。
【請求項２３】
前記認識機能により認識された周辺機器に、所定の属性情報に基づいて優先順位を付ける順位付け手段をさらに備え、
前記インストール制御手段は、前記順位付け手段により付された順位が前記制限数以内の周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項１８乃至２２のいずれかに１項に記載の情報処理装置。
【請求項２４】
前記属性情報を利用者が指定するための指定手段をさらに備えることを特徴とする請求項２３に記載の情報処理装置。
【請求項２５】
前記制限数保持手段は、周辺機器の種類毎に、インストールされるデバイスドライバの上限数を保持することを特徴とする請求項１８乃至２４のいずれか１項に記載の情報処理装置。
【請求項２６】
前記周辺機器はプリンタを含むことを特徴とする請求項１８乃至２５のいずれか１項に記載の情報処理装置。
【請求項２７】
前記順位付け手段は、インストール済み属性を前記属性情報として、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高優先順位を付けることを特徴とする請求項２３に記載の情報処理装置。
【請求項２８】
前記順位付け手段は、使用頻度属性を属性情報として、使用頻度に基づいて優先順位を付けることを特徴とする請求項２３または２７に記載の情報処理装置。
【請求項２９】
前記順位付け手段は、機能属性を属性情報として、指定された機能を有する周辺機器に対して、該指定された機能を有さない周辺機器よりも高優先順位を付けることを特徴とする請求項２３または２７または２８に記載の情報処理装置。
【請求項３０】
前記順位付け手段によって設定された順位に基づいて、前記制限数に含まれない順位の周辺機器に対応するデバイスドライバがインストールされているか否かを判定する判定手段と、
前記判定手段により前記制限数に満たない順位の周辺機器に対応するデバイスドライバがインストールされていると判定された場合、該判定されたデバイスドライバをアンインストールするアンインストール制御手段を有することを特徴とする請求項２３に記載の情報処理装置。
【請求項３１】
周辺機器と通信可能であり、制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶し、前記周辺機器を利用可能とできる情報処理装置であって、
前記周辺機器が発行する所定の信号を受信する第１受信手段と、
前記第１受信手段により受信した所定の信号の発行元に当たる周辺機器に関する情報を受信する第２受信手段と、
前記第２受信手段によって受信した周辺機器に関する情報と前記所定の条件に基づいて設定された前記周辺機器の優先順位が、前記制限数を満たすか否かを判定する判定手段と、
前記判定手段により前記周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御手段と
を有することを特徴とする情報処理装置。
【請求項３２】
前記第１受信手段によって受信される所定の信号とは、前記コンピュータと通信可能となった周辺機器から接続開始信号であることを特徴とする請求項３１に記載の情報処理装置。
【請求項３３】
インストールすべきデバイスドライバを決定するための属性情報を設定する設定手段と、
前記設定手段により設定された属性情報に基づいて、デバイスドライバの優先順位を設定する優先順位付け手段を有し、
前記優先順位付け手段は、前記第２受信手段によって受信した周辺機器に関する情報が前記設定手段により設定された属性情報と一致する情報が多い周辺機器ほど高い優先順位を設定することを特徴とする請求項３１または３２に記載の情報処理装置。
【請求項３４】
前記インストール制御手段により前記周辺機器のデバイスドライバをインストールした場合、既にインストール済みのデバイスドライバから少なくとも１つのデバイスドライバをアンインストールすることを特徴とする請求項３１乃至３３のいずれか１項に記載の情報処理装置。
【請求項３５】
接続された周辺機器を認識する認識機能を有し、接続された周辺機器を利用可能とすることができる情報処理装置の制御方法であって、
インストールされるデバイスドライバの制限数を保持する制限数保持工程と、
前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持工程により保持された制限数分のデバイスドライバをインストールするインストール制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項３６】
前記インストール制御工程は、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項３５に記載の情報処理装置の制御方法。
【請求項３７】
前記制限数はインストール可能なデバイスドライバの数を示す上限数であり、
前記インストール制御工程は、前記制限数をインストール済みのデバイスドライバの上限として、前記認識機能により認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項３５または３６に記載の情報処理装置の制御方法。
【請求項３８】
接続された周辺機器を認識する認識機能を提供する周辺機器認識工程をさらに備えることを特徴とする請求項３５乃至３７のいずれか１項に記載の情報処理装置の制御方法。
【請求項３９】
前記認識機能は、接続された周辺機器に関する情報を収集し、
前記インストール制御工程は、前記制限数保持工程により保持された制限数をインストール可能なデバイスドライバの数として、前記認識機能により収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定し、該決定されたデバイスドライバの候補のうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項３５乃至３８のいずれか１項に記載の情報処理装置の制御方法。
【請求項４０】
前記認識機能により認識された周辺機器に、所定の属性情報に基づいて優先順位を付ける順位付け工程をさらに備え、
前記インストール制御工程は、前記順位付け工程により付された順位が前記制限数以内の周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることを特徴とする請求項３５乃至３９のいずれかに１項に記載の情報処理装置の制御方法。
【請求項４１】
前記属性情報を利用者が指定するための指定工程をさらに備えることを特徴とする請求項４０に記載の情報処理装置の制御方法。
【請求項４２】
前記制限数保持工程は、周辺機器の種類毎に、インストールされるデバイスドライバの上限数を保持することを特徴とする請求項３５乃至４１のいずれか１項に記載の情報処理装置の制御方法。
【請求項４３】
前記周辺機器はプリンタを含むことを特徴とする請求項３５乃至４２のいずれか１項に記載の情報処理装置の制御方法。
【請求項４４】
前記順位付け工程は、インストール済み属性を前記属性情報として、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高優先順位を付けることを特徴とする請求項４０に記載の情報処理装置の制御方法。
【請求項４５】
前記順位付け工程は、使用頻度属性を属性情報として、使用頻度に基づいて優先順位を付けることを特徴とする請求項４０または４４に記載の情報処理装置の制御方法。
【請求項４６】
前記順位付け工程は、機能属性を属性情報として、指定された機能を有する周辺機器に対して、該指定された機能を有さない周辺機器よりも高優先順位を付けることを特徴とする請求項４０または４４または４５に記載の情報処理装置の制御方法。
【請求項４７】
前記順位付け工程によって設定された順位に基づいて、前記制限数に含まれない順位の周辺機器に対応するデバイスドライバがインストールされているか否かを判定する判定工程と、
前記判定工程により前記制限数に満たない順位の周辺機器に対応するデバイスドライバがインストールされていると判定された場合、該判定されたデバイスドライバをアンインストールするアンインストール制御工程を有することを特徴とする請求項４０に記載の情報処理装置の制御方法。
【請求項４８】
周辺機器と通信可能であり、制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶し、前記周辺機器を利用可能とできる情報処理装置の制御方法であって、
前記周辺機器が発行する所定の信号を受信する第１受信工程と、
前記第１受信工程により受信した所定の信号の発行元に当たる周辺機器に関する情報を受信する第２受信工程と、
前記第２受信工程によって受信した周辺機器に関する情報と前記所定の条件に基づいて設定された前記周辺機器の優先順位が、前記制限数を満たすか否かを判定する判定工程と、
前記判定工程により前記周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項４９】
前記第１受信工程によって受信される所定の信号とは、前記コンピュータと通信可能となった周辺機器から接続開始信号であることを特徴とする請求項４８に記載の情報処理装置の制御方法。
【請求項５０】
インストールすべきデバイスドライバを決定するための属性情報を設定する設定工程と、
前記設定工程により設定された属性情報に基づいて、デバイスドライバの優先順位を設定する優先順位付け工程を有し、
前記優先順位付け工程は、前記第２受信工程によって受信した周辺機器に関する情報が前記設定工程により設定された属性情報と一致する情報が多い周辺機器ほど高い優先順位を設定することを特徴とする請求項４８または４９に記載の情報処理装置の制御方法。
【請求項５１】
前記インストール制御工程により前記周辺機器のデバイスドライバをインストールした場合、既にインストール済みのデバイスドライバから少なくとも１つのデバイスドライバをアンインストールすることを特徴とする請求項４８乃至５０のいずれか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばネットワークに接続された情報処理装置のデバイスドライバを管理するためのプログラムおよび方法と情報処理装置に関するものである。
【背景技術】
【０００２】
インターネットやホームネットワークなど、ネットワークの拡張に伴い、例えば、ＰＤＡや携帯電話等のユーザインタラクティブなデバイス、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置などのデバイスのネットワーク対応が進んでいる。また、テレビ、エアコン、冷蔵庫等の家電製品などに至るまで様々なデバイスのネットワーク対応も進んでいる。それに伴い、ネットワーク対応デバイスを利用する上での利便性を高め、また管理の容易性を高めるために、ネットワークデバイスを管理する機能を提供するさまざまなプロトコル、アーキテクチャが提案されている(特許文献１，２)。提供される機能には、たとえばサービスを提供するネットワークデバイスの探索や、ネットワークデバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップなどがある。
【０００３】
また、ネットワークデバイスの管理を自動化するための試みもある。たとえば、マイクロソフト社が主体となって、ＵＰｎＰ（登録商標）、およびＷＳＤ:Web Services for Devices (WS-Discovery/WS-MetadataExchange）の策定が進められている。これは、デバイスをネットワークに接続するだけでそのデバイスを使用可能とする、いわゆるプラグアンドプレイを実現するためのものである。また、ビジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ（登録商標）、Ａｐｐｌｅ社が開発したＯＳ  ＸでサポートされるＲｅｎｅｄｚｖｏｕｓなどもある。
【０００４】
また、ネットワーク対応型プリンタの探索によって、多くのプリンタが探索された時に、探索されたプリンタを一覧表示し、利用権の有無やプリンタ選択基準となる推奨度などをユーザに提示するという技術も提案されている（特許文献３）。
【特許文献１】特開2004-038956
【特許文献２】特開2004-362594
【特許文献３】特開2002-149362
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ネットワークデバイスにプラグアンドプレイが普及することによってその利便性が向上する一方で、弊害も生じる。その弊害のひとつが、ユーザの必要性とは無関係にネットワークデバイスのドライバ、アプリケーションがインストールされてしまうことである。
【０００６】
特に、大規模オフィスなどでネットワーク上に無数のプリンタが接続されている環境に携帯型コンピュータ等を接続した場合を考える。この場合、プラグアンドプレイ機能が働き、ネットワークで稼動しているネットワークデバイスを発見するたびに、そのネットワークデバイスのドライバ、アプリケーションがインストールされてしまう。これは、コンピュータのハードウエア資源、特にメモリ資源をいたずらに消費する。加えて、アプリケーションからたとえば「印刷」を選択した際に、数多くのプリンタが使用可能なデバイスとして列挙され、ユーザの利便性をかえって損ねる結果となる。
【０００７】
また、上記特許文献３に記載の技術を用いて、列挙されるデバイスを制限しようとすると、以下のような問題が発生する。例えば、上述したように大規模オフィスなどでネットワーク上に無数のプリンタが接続されている環境に携帯型コンピュータ等を接続し、３台のデバイスに対応するドライバをインストールすることを想定する。この場合、必要とする３台のデバイスの利用者制限情報を利用可能と設定し、残りの各デバイスの利用者制限情報を利用不可と設定しなければならず、作業効率の低下を招く恐れがある。
【０００８】
本発明は上記課題を解決するために鑑みてなされたもので、クライアント装置側の簡単な構成変更でインストールされるデバイスドライバの数を制限することで、ユーザの利便性を向上させることを目的とする。さらに、デバイスドライバの数の制限を、ユーザが指定した優先順位にしたがって行うことで、ユーザの利便性を一層向上させることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は以下の構成を備える。接続された周辺機器を認識する認識機能を有するコンピュータにより、前記周辺機器を利用可能とするためのプログラムであって、インストールされるデバイスドライバの制限数を保持する制限数保持手段と、前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持手段により保持された制限数分のデバイスドライバをインストールするインストール制御手段としてコンピュータを機能させる。
【００１０】
あるいは、周辺機器と通信可能であり、制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶するコンピュータにより、前記周辺機器を利用可能とするためのプログラムであって、前記周辺機器が発行する所定の信号を受信する第１受信手段と、前記第１受信手段により受信した所定の信号の発行元に当たる周辺機器に関する情報を受信する第２受信手段と、前記第２受信手段によって受信した周辺機器に関する情報と前記所定の条件に基づいて設定された前記周辺機器の優先順位が、前記制限数を満たすか否かを判定する判定手段と、前記判定手段により前記周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御手段を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、クライアント装置側の簡単な構成でインストールされるデバイスドライバの数を制限することできる。さらに、デバイスドライバの数の制限を、ユーザが指定した優先順位にしたがって行うことで、ユーザの利便性を一層向上させることができる。
【発明を実施するための最良の形態】
【００１２】
［第１実施形態］
以下、図面を用いて本発明の実施の形態について詳細に説明する。ただし、この実施の形態に記載されているプロトコルや数値などは一例であって、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１３】
＜印刷システムのハードウエア構成＞
図１は、本発明の実施の形態であるネットワーク印刷システムに接続しているひとつのクライアントとひとつのネットワークプリンタに注目したハードウエア構成を示すブロック図である。図１では、クライアント１０００と印刷装置であるネットワークプリンタ３０００とがネットワーク３１を介して接続された構成となっている。クライアント１０００ではコンピュータ本体２０００に対して外部装置であるキーボード９、ＣＲＴ１０、ハードディスク１１等が接続されている。コンピュータ本体２０００はＣＰＵ１を備え、ＣＰＵ１はＲＯＭ３やハードディスク１１に記憶された制御プログラムやアプリケーションをＲＡＭ２に展開して演算を行うことができる。また、外部装置であるキーボード９からの入力を制御しているのがキーボードコントローラ（ＫＢＣ）５である。また、ＣＲＴ１０の表示を制御しているのがＣＲＴコントローラ（ＣＲＴＣ）６であり、ハードディスク１１に対して入出力の制御を行っているのがハードディスクコントローラ（ＨＤＣ）７である。ＮｅｔＣ８はネットワークコントローラであり、ネットワーク３１を介してプリンタ３０００に接続されて、プリンタコントローラ部４０００との間の通信制御を行っている。
【００１４】
これらＣＰＵ１、ＲＡＭ２、ＲＯＭ３、ＫＢＣ５、ＣＲＴＣ６、ＨＤＣ７、ＮｅｔＣ８はそれぞれシステムバス４によって接続され、各デバイスをＣＰＵ１が総括的に制御している。ＲＡＭ２には、図１７に示す、デバイスの優先順位を決定するための基礎となる条件情報１００６ａが保存されている。また、ＲＡＭ２には、ネットワークデバイス、特に本実施形態ではネットワークプリンタの順位付けをしたデバイスリスト１８０１が保存されている。デバイスリスト１８０１は、コンピュータ１０００にインストールされたオペレーティングシステムにより提供されるＵＰｎＰ機能により認識されるデバイスの名称（識別子）が含まれている。条件情報１００１６ａおよびデバイスリスト１８０１は、ハードディスク１１に保存され、ＣＰＵ３によりアクセスされる際にＲＡＭ２にロードされる。
【００１５】
本実施形態では、クライアントとしてパーソナルコンピュータ（ＰＣ）を想定している。しかし、本発明を実施可能な形態であれば、クライアントはＰＣに限定するものではなく、ＰＤＡなどの携帯情報端末や携帯電話、デジタル家電等をクライアントとしてもよい。いずれの装置も、特定用途の入出力デバイス等を除けば、図１のコンピュータ１０００と同様の構成を有する。
【００１６】
ネットワークプリンタ３０００において、プリンタＣＰＵ２１は、ＲＯＭ２３のプログラム用領域に記憶された制御プログラムを実行する。制御プログラムの実行により、バス２４に接続される各種のデバイスとのアクセスを総括的に制御し印刷部２６を介して接続される印刷機構部２８（プリンタエンジン）に印刷データとしての画像信号が出力される。
【００１７】
ＣＰＵ２１はネットワークコントローラ（ＮｅｔＣ）２５を介してクライアント１０００との通信処理が可能である。通信によりネットワークプリンタ３０００内の情報等をクライアント１０００に通知可能に構成されている。ＲＡＭ２２はＣＰＵ２１の主メモリ、ワークエリアなどとして機能する。また、ＲＡＭ２２はクライアント１０００より受信した印刷データや画像ビットマップデータを格納しておくための描画メモリ、ビデオ信号情報格納領域、その他としても使用される。ハードディスクコントローラ２７にて制御されるハードディスク２９は印刷ジョブデータのＢＯＸ保存などのために使用される。操作パネル３０はユーザがネットワークプリンタ３０００を操作する際のユーザインタフェースであり各種スイッチやＬＥＤ表示機器の他、タッチパネル式の液晶パネルなどで構成される。
【００１８】
ハードディスク２９には、プリンタ３０００の構成を示す構成情報データベース２９０１が保存されている。構成情報データベースは、各種のデータを含むデータベースである。構成情報データベース２９０１には、デバイスタイプ情報、サービス情報、デバイスの使用頻度情報、印刷速度情報、カラー印刷機能の有無を示すカラー機能情報、最高解像度情報、両面印刷機能の有無を示す両面機能情報、製造メーカ情報などが含まれている。これら項目のうち、使用頻度情報は、プリンタが使用される都度、プリンタＣＰＵ２１により更新される。またデバイスドライバのインストールの有無および導入日時などは、クライアント１０００で管理されている。そのほかの項目は、プリンタの機種に応じた値が製造時に登録されている。デバイスタイプ情報は、たとえば当該デバイスが単機能プリンタや、複写機などデバイスのタイプを示す。サービス情報は、当該タイプのデバイスにより提供されるサービスを示す。たとえばプリンタであれば、ｐｏｓｔｓｃｒｉｐｔ（登録商標）など、対応するＰＤＬの種類を示す情報がサービス情報として登録されている。
【００１９】
なお、ネットワークプリンタ３０００は本発明の機能を実施できる装置であればシングルファンクションプリンタでもスキャナやコピー、ファクシミリ等の機能も備えたマルチファンクションプリンタでもよい。印刷機構部２８としてレーザービームプリンタやインクジェットの印刷機構を用いたプリンタ、サーマルプリンタなどいかなるプリント方式を用いていようが、本発明の機能に制限をするものではない。
【００２０】
＜印刷システムの機能ブロック＞
図２は図１に示したクライアント１０００のコンピュータ本体２０００とネットワークプリンタ３０００のプリンタコントローラ部４０００におけるネットワーク接続に関連するモジュールを説明した機能ブロック図である。
【００２１】
クライアント１０００は、通信機能としてイーサネット（登録商標）に対応しており、イーサネット（登録商標）コントローラ１００１により制御される。ここでは通信機能をイーサネット（登録商標）としているが、ＷｉＦｉ（登録商標：ＩＥＥＥ８０．１１ａ／ｂ／ｇ）やＢｌｕｅＴｏｏｔｈ（登録商標）などの機能も考えられる。イーサネット（登録商標）コントローラより上位レイヤにはＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロセッサ１００４を備える。プラグアンドプレイ（ＰｎＰ）ユーティリティ１００２、ＷＳＤモジュール１００３、およびアプリケーション１００１などが、該処理部を介してｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で記述されたデータの双方向通信を実現する。
【００２２】
ネットワークマネージャ１００５は、イーサネット（登録商標）コントローラ１００７を管理しており、設定情報、通信状態に関する情報を取得する機能を備える。プラグアンドプレイ（ＰｎＰ）ユーティリティ１００２はネットワークマネージャ１００５を制御し、現在稼動中のイーサネット（登録商標）コントローラ情報、およびその設定情報を取得し、メモリ２上に記録する機能を有する。また、ＰｎＰユーティリティ１００２は、プラグアンドプレイ設定のＵＩを制御し、その設定内容をメモリ２上に記録する。これら設定情報は、ＰｎＰユーティリティ１００２によりＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）に変換され、ＸＭＬの形式でメモリ２上に記録される。
【００２３】
ＷＳＤモジュール１００３は、ＳＯＡＰプロセッサ１００４を介して、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークデバイスから通知されるＨｅｌｌｏメッセージに対する応答処理を実行する。また、ＷＳＤモジュール１００３は、ネットワークデバイス検索のためのＰｒｏｂｅメッセージの発行処理を実行する。ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様は、Ｍｉｃｒｏｓｏｆｔ社らがその仕様策定を推進する規格である。また、ＷＳＤモジュール１００３は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ＧｅｔＭｅｔａｄａｔａメッセージを発行する。ＷＳＤモジュール１００３は、ＧｅｔＭｅｔａｄａｔａメッセージに対してデバイスが送信する応答メッセージ（Ｍｅｔａｄａｔａ  ｆｏｒ  Ｄｅｖｉｃｅ）を受信することで、ネットワークデバイスの構成情報を取得する。ＧｅｔＭｅｔａｄａｔａメッセージにデバイスの構成情報が含まれている。
【００２４】
これらメッセージ処理によりネットワークデバイスが発見された場合、ＷＳＤモジュール１００３はＰｎＰコントローラ１００６に対して発見したネットワークデバイスの構成情報を通知する。ＰｎＰコントローラ１００６は、通知された構成情報をもとに該当するドライバやユーティリティソフトウエアをハードディスク１１やメモリ２より読み込み、クライアント１０００にインストールする機能を備える。あるいは、ドライバ等のソフトウエアを管理するためのソフトウエア管理サーバがネットワークに接続されている場合には、ドライバ等のプログラムは、そのソフトウエア管理サーバから読み込まれてもよい。
【００２５】
アプリケーション１００１は例えば文書処理アプリケーションなどである。アプリケーション１００１は、編集した文書データをネットワークデバイスであるプリンタにより印刷することができる。その際、アプリケーション１００１は、ＰｎＰコントローラ１００６によりインストールされたドライバやユーティリティを介して、ネットワークプリンタ３０００に対して印刷ジョブデータを送信する。このように、クライアント１０００が上記構成を有することにより、接続された周辺機器を認識することが可能となる。
【００２６】
一方、ネットワークプリンタ３０００もイーサネット（登録商標）に互換の通信機能を備えている。イーサネット（登録商標）コントローラ３００１によって通信機能は制御されている。イーサネット（登録商標）コントローラ３００１の上位レイヤには、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロセッサ３００２を備える。ＷＳＤモジュール３００４、および印刷制御部３００３が、それぞれＳＯＡＰプロセッサ３００２を介してｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で記述されたデータの双方向通信を実現する。
【００２７】
ここで、ＷＳＤモジュール３００４は、ＳＯＡＰプロセッサ３００２を介して、ネットワークデバイス３０００がネットワークに接続された際に、Ｈｅｌｌｏメッセージの送信処理を実行する。また、ＷＳＤモジュール３００４は、クライアント１０００から発行されるＰｒｏｂｅメッセージに対する応答処理を実行する。ＨｅｌｌｏメッセージおよびＰｒｏｂｅメッセージは、Ｍｉｃｒｏｓｏｆｔ社らがその仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づいたメッセージである。
【００２８】
また、ＷＳＤモジュール３００４は、クライアント１０００から発行されたＧｅｔＭｅｔａｄａｔａメッセージに応じ、ネットワークプリンタ３０００が持つ構成情報（Ｍｅｔａｄａｔａ  ｆｏｒ  Ｄｅｖｉｃｅメッセージ）を返信する。このメッセージの交換は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づいており、この仕様もＭｉｃｒｏｓｏｆｔ社らがその策定を推進している。
【００２９】
＜ＷＳＤの動作の概略＞
図３が示しているのは本実施の形態におけるネットワーク環境の概念図である。ひとつのネットワーク３１に複数種類の１０個のネットワークプリンタが接続されており、クライアント１０００も同じネットワーク３１上に接続されている。ネットワーク３１に接続されたネットワークプリンタはいずれも図２のプリンタ３０００と同様の構成を備え、ＷＳＤの機能を持ち合わせている。クライアント１０００はもちろん図２のコンピュータ１０００の構成を備えている。
【００３０】
図１９は、ネットワーク３１に接続されたクライアントコンピュータ１０００とネットワークプリンタ３０００とによるＷＳ−ＤｉｓｃｏｖｅｒｙおよびＷＳ−Ｍｅｔａｄａｔａに従ったデバイスドライバのインストール手順の図である。図１９は概略を示すもので、図４に示す設定に応じた条件付きの処理もあるが、図１９ではそれら条件は省略した。この条件については、図４および図７以降のフローに即して説明する。
【００３１】
図１９（Ａ）は、たとえばクライアントコンピュータにおける操作などをトリガとした探索手順の例である。たとえばウインドウズ（登録商標）においては、「プリンタの追加」という機能がユーザに対して提供されている。ユーザがその機能を実行すると、図１９（Ａ）の手順が実行される。まずクライアントコンピュータ１０００からプリンタ３０００に対して、デバイス探索要求（Ｐｒｏｂｅ）メッセージ１９０１が送信される。デバイス探索要求メッセージ１９０１は、ネットワーク３１全体にブロードキャストされる。デバイス探索要求メッセージ１９０１はＸＭＬで記述されており、ＷＳ−Ｄｉｓｃｏｖｅｒｙのための名前空間の定義などの他、当該メッセージがデバイス探索要求メッセージであることを示す情報や、探索対象のデバイスタイプが含まれる。本例では、探索対象のデバイスタイプはプリンタであるので、ＷＳ−Ｄｉｓｃｏｖｅｒｙで定義されたタイプタグには「ＰｒｉｎｔＢａｓｉｃ」と記述される。メッセージの種類（タイプ）を示す情報が含まれることは、この後説明する各メッセージについて同様である。
【００３２】
デバイス探索要求メッセージ１９０１を受信したデバイスは、そのメッセージの種類を判定する。デバイス探索要求メッセージ１９０１であれば、探索対象のデバイスタイプをメッセージから読み取り、それがデバイスのタイプと一致するか判定する。この判定は、デバイスの構成情報２９０１に保存されたデバイスタイプ情報と、デバイス探索要求メッセージに含まれる探索対象のデバイスタイプとを照合して行われる。一致すれば当該デバイスは探索対象のデバイスである。したがって、デバイスの構成情報に保存されたデバイスタイプ情報は、デバイス探索要求メッセージのタイプと同じ形式で保存されることが望ましい。
【００３３】
デバイスは、それ自身が探索要求メッセージによる探索対象のデバイスであると判断したなら、応答（Ｐｒｏｂｅ  Ｍａｔｃｈ）メッセージ１９０２をクライアント１０００に送信する。応答メッセージ１９０２には、応答したデバイスのアドレス（たとえばＩＰアドレス）が含まれている。
【００３４】
クライアント１０００は応答メッセージ１９０２を送信したデバイスに対して、デバイス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０３を送信する。デバイス情報要求メッセージ１９０３は、デバイスの持つ構成情報データベース２９０１にアクセスして指定した情報を取得するためのメッセージである。本実施形態では、クライアントはここで、デバイスに対して、デバイスの使用頻度、印刷速度、カラー印刷機能の有無、最高解像度、両面印刷機能の有無、製造メーカなど、デバイスの構成情報を示す項目のデータを要求する。
【００３５】
デバイス情報要求メッセージ１９０３を受信したデバイス３０００は、要求された項目についてその内容をデータベース２９０１から読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報（ＭｅｔａＤａｔａｆｏｒＤｅｖｉｃｅ）メッセージ１９０４に収めてクライアント１０００に送信する。
【００３６】
デバイス情報１９０４を受信したクライアント１０００は、次にサービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０５をデバイスに送信する。サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０５は、送信先のデバイスが提供可能なサービスを示すサービス情報を、構成情報データベースから取得するためのメッセージである。
【００３７】
サービス情報要求メッセージ１９０５を受信したデバイスは、構成情報データベース２９０１からサービス情報を読み、それをサービス情報（ＭｅｔａＤａｔａｆｏｒＳｅｒｖｉｃｅ）メッセージ１９０６に書き込んでクライアント３０００に送信する。
【００３８】
サービス情報メッセージ１９０６を受信したクライアントは、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント１０００にインストールする（１９０７）。この処理により、接続された周辺機器に関する情報を取得（収集）することが可能となる。また、サービス情報に対応するデバイスドライバは、クライアント１０００が有するドライバファイルのデータベースに含まれているなら、そのデータベースから読み取ってインストールする。クライアント１０００が有するドライバファイルのデータベースに含まれていない場合には、たとえばネットワークに接続されたソフトウエア管理サーバからドライバファイルをダウンロードしてインストールする。サービス情報に対応するデバイスドライバの特定は、たとえば、サービス情報に、デバイスドライバファイル名（ファイルの所在を示す情報を含む）を対応付けたディレクトリ情報に基づいて行える。クライアントはそのディレクトリ情報を参照して、受信したサービス情報に対応するデバイスドライバファイル名を獲得する。そして獲得したそのファイル名の示すデバイスドライバファイルを読み、それをインストールする。なおディレクトリ情報は、クライアント１０００あるいは前記ソフトウエア管理サーバが保持管理する。
【００３９】
一方図１９（Ｂ）は、たとえばプリンタなどのネットワークデバイスをネットワークに接続して電源を投入するなど、ネットワークデバイスの追加操作をトリガとした探索手順の例である。デバイスがネットワークに接続されると、イーサネット（登録商標）コントローラ３００１によりネットワークへの接続が認識される。それをきっかけにしてプリンタ３０００からクライアントコンピュータ１０００に対して、ネットワーク参加通知（Ｈｅｌｌｏ）メッセージ１９１１が送信される。デバイス探索要求メッセージ１９０１は、ネットワーク３１全体にブロードキャストされる。ネットワーク参加通知メッセージ１９１１には、少なくともネットワーク参加通知メッセージ１９１１の送信元デバイス３０００の所在を示すアドレス情報が含まれる。
【００４０】
ネットワーク参加通知メッセージ１９１１を受信したクライアント１０００は、そのメッセージ１９１１の送信元デバイスに対して、デバイス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１２を送信する。デバイス情報要求メッセージ１９１２は、デバイス情報要求メッセージ１９０３と同内容のメッセージである。
【００４１】
デバイス情報要求メッセージ１９１２を受信したデバイス３０００は、要求された項目についてその内容をデータベース２９０１から読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報（ＭｅｔａＤａｔａｆｏｒＤｅｖｉｃｅ）メッセージ１９１３に収めてクライアント１０００に送信する。
【００４２】
デバイス情報１９１３を受信したクライアント１０００は、サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１４をデバイス３０００に送信する。サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１４は、サービス情報要求メッセージ１９０５と同じ内容を持つ。
【００４３】
サービス情報要求メッセージ１９１４を受信したデバイス３０００は、構成情報データベース２９０１からサービス情報を読み、それをサービス情報（ＭｅｔａＤａｔａｆｏｒＳｅｒｖｉｃｅ）メッセージ１９１５に書き込んでクライアント３０００に送信する。
【００４４】
サービス情報メッセージ１９１５を受信したクライアント１０００は、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント１０００にインストールする（１９１６）。この手順は図１９（Ａ）のインストール１９０７と同様に行われる。
【００４５】
以上がＷＳ−Ｄｉｓｃｏｖｅｒｙに準拠したデバイスドライバのインストール手順である。この手順中、図１９（Ａ）のインストール処理１９０７および図１９（Ｂ）のインストール処理１９１６において、本実施形態では、条件情報１００６ａにしたがって選択されたデバイス（プリンタ）のデバイスドライバをインストールする。さらに、条件情報１００６ａにしたがって選択されなかったデバイス（プリンタ）のデバイスドライバをアンインストールする。以下、その詳細を説明する。
【００４６】
＜条件情報の設定ユーザインターフェース＞
図４は、クライアントにおけるＣＲＴ１０上に表示されたプリンタドライバ自動インストール設定ＵＩを示している。ユーザは本設定ＵＩ１００を用いて、図３のようにネットワークプリンタが複数設置されているネットワーク３１にクライアント１０００を接続した際の、プリンタドライバの自動インストール設定を行う。ＵＩ１００の一番上に表示された自動インストールラジオボタン１０１は、ネットワークプリンタ用のプリンタドライバのネットワークプラグアンドプレイによる自動インストールするかどうかを指定するためのラジオボタンである。自動インストールラジオボタン１０１が「あり」と設定された場合に、クライアント１０００は、図１９（Ａ）の手順を開始する。また、図１９（Ｂ）の手順を開始するのはデバイスであるので、自動インストールラジオボタン１０１が「なし」と設定されている場合には、クライアント１０００はネットワーク参加通知メッセージに対して応答しない。なお図１９で説明したＷＳＤによるネットワークデバイス（プリンタ）の自動化されたインストールを、ネットワークプラグアンドプレイ機能と呼ぶ。
【００４７】
自動インストールを「あり」と入力したユーザは、次に数量制限ラジオボタン１０２ａとスピンボックス１０２ｂにより、自動インストールするプリンタドライバ数の制限値を指定する。数量制限ラジオボタン１０２ａに「なし」が指定された場合、プリンタドライバをインストールするデバイスの数に制限は課されない。一方「あり」が指定された場合、スピンボックス１０２ｂによりユーザは制限値を入力する。そして、クライアント１００は、入力された値をインストールされるデバイスドライバの制限数としてＲＡＭ２に保持する。なお、クライアント１００に導入されているプログラムは、入力された制限値をＲＡＭ２に記憶させることができる。
【００４８】
ドライバをインストールするデバイス数を制限する場合には、ドライバのインストール対象となるプリンタの順位（優先順位）を決定するためのキーとなる属性情報の項目を、ユーザが指定できる。指定された属性情報をキーとして、プラグアンドプレイにより発見された複数のネットワークプリンタに優先順位が付され、指定された制限値以内の順位のプリンタに対応するデバイスドライバがインストールされる。キーとなる属性情報の指定のために、ユーザは詳細設定ボタン１０３を押す。詳細設定ボタン１０３を押した時のＵＩを図５に示す。
【００４９】
チェックボックス１０４により、数量制限を越えたドライバの削除を指定することができる。また、チェックボックス１０５により、プリンタ接続通知時にもインストール（アンインストール）を自動で行うことを指定できる。図１９（Ｂ）に示した手順は、チェックボックス１０５がチェックされた場合に限って実行される。それぞれのチェックボックスをチェックすることによる動作の内容に関しては後述する。またそれぞれのチェックボックスの設定内容は、図１７に示す条件情報１００６ａの一部である数量制限フラグ１７１１、自動インストールフラグ１７１２、ドライバ削除フラグ１７１３，プリンタ主導フラグ１７１４としてＲＡＭ２に保存される。制限値は、制限値フィールド１７００に保存される。
【００５０】
図５は図４における詳細設定ボタン１０３を押した時のＵＩを簡略化した図である。図４のＵＩに対して優先順位を指定する表２０１が追加表示されている。優先順位を決定するには、使用頻度や最高解像度など、あらかじめ決められた項目に対して、それぞれ「週１０回以上」や「１２００ｄｐｉ」以上など、ユーザがプリンタドライバとして自動インストールを要望する属性情報（設定値）を設定する。ユーザは各項目に対して要求レベルをそれぞれ入力するとともに、ＵＰボタン２０２やＤＯＷＮボタン２０３を使用してそれらの属性情報の項目のうち重要視するものの順に並べ替える。各項目例やそれぞれの項目に対する程度を指定するためのコンボボックスのアイテムに関しての詳細例を図６に示した。
【００５１】
図６は、図５における優先順位指定のための各項目とそれぞれの選択肢を示している。最上段の欄３０１〜３０９は項目名を、２段目以下は各項目の選択肢を示す。たとえばドライバ３０１という項目に関しては「インストール済み」と「未インストール」という２つの選択肢がある。ユーザはその選択肢のうちの１つを、図５の表２０１のうちの指定欄２０１ａにより指定できる。例えば、属性情報としてインストール済みが選択された場合、クライアント１０００は、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高優先順位を付ける。指定された値は、図１７の条件情報１００６ａに保存される。テーブルには、優先順位（キー順位）１７０１とキー識別子１７０２、対応する設定値１７０３が、各項目毎に保存される。ただし、優先順位１７０１は各項目の並び順で示すことができるので、必ずしも必要ではない。本実施形態では、発見されたプリンタは、まず最高優先順位の項目から、図５の表２０１にて指定された設定値を分類の条件として、該設定値に合致するものと合致しないものという２つのカテゴリに分類される。そして、各カテゴリに属するデバイスは、次の優先順位の項目について同様にさらに２つのカテゴリに分類される。この分類を、優先順位にしたがって各項目毎に繰り返す。そして、より優先順位の高い項目について分類の条件に「該当する」プリンタが、順位の高いプリンタと評価される。また、優先順位を設定するための条件の１つには、各周辺機器が持つ機能があり、クライアント１０００は、指定された機能を有する周辺機器に対して、指定された機能を有さない周辺機器よりも高優先順位をつけることができる。例えば、図５の例では、「カラー印刷」や「最高解像度」、「両面印刷」などが周辺機器の機能に該当する。
【００５２】
続いて優先順位を設定する際の具体例を以下に示す。例えば、優先順位は以下のような数式でプリンタの順位を評価できる。各項目の優先順位をｐ、項目数をｎとする。また、着目プリンタが、優先順位ｐの項目の設定値で示される条件に合致する場合にｓ（ｐ）＝１、合致しない場合にｓ（ｐ）＝０とする。この関数ｓ（ｐ）の評価は、プリンタリストに登録された、着目プリンタに対応する構成情報および設定値１７０３に基づいて行われる。そして、ネットワーク上で探索されたプリンタのうちの着目プリンタｉについて、Ｐｉ＝Σ（ｓ（ｐ）＊２＾（ｎ−ｐ）），ｐ＝１...ｎ、という値を計算する。なお、「ΣＸ（ｐ），ｐ＝１...ｎ」とは、ｐ＝１からｐ＝ｎまでｐの値を１増加しながらＸ（ｐ）の総和を求める演算を示す。またＸ＾Ｙは、ＸのＹ乗を求める演算を示す。全プリンタについて求められた値Ｐｉが、プリンタｉの順位を示す。値Ｐｉが大きいほど優先順位が高いプリンタである。この値Ｐｉの順に、図１７の条件情報１００６ａのキー順位１７０１，キー１７０２，設定値１７０３の組はソートすることで、図５によって設定された情報を所定の属性情報として接続される周辺機器に優先順位を設定することができる。もちろん順位が示されれば十分なので、値Ｐｉをキー順位の代わりに条件情報１００６ａに添付することもできる。値が同一のプリンタが複数ある場合であっても、上限値以内に納まる数のプリンタにドライバをインストールすればよい。以上、優先順位の設定処理についてまとめると、図５のＵＩを用いてインストールすべきデバイスドライバを決定するための属性情報を設定する。そして、設定された属性情報に基づいて、デバイスドライバの優先順位を設定する。なお、優先順位は、周辺機器に関する情報が設定された属性情報のうち、優先順位の高い属性情報と一致する情報が多い周辺機器ほど高い優先順位となるように設定する。
【００５３】
なお、本実施形態では各項目の選択肢をあらかじめ準備してある例を示したが、ユーザが手動で値を設定できるようになっていたとしても、本発明の趣旨に外れるものではない。また、これらの設定を外部ファイルで持つことで新たなプリンタ機能やスペックに対応した優先順位の指定を行うことが可能となる。
【００５４】
＜ドライバインストール処理＞
図７から図１２を用いて本発明の実施の形態におけるフローを示す。このフローは、図１９に示す手順を、クライアントの処理手順で示したものである。
【００５５】
図７はクライアントからネットワークに対してプリンタ探索要求（Ｐｒｏｂｅ要求）を行うときのフローを示している。クライアントがプリンタ探索要求を行うタイミングとしては、ネットワーク接続されたＰＣの起動時や、ＰｎＰユーティリティ上で接続プリンタのリストの更新を行ったときなどが考えられる。なお、図７から図１２のフローチャートにおける各ステップの処理は、クライアント１０００のＣＰＵ１によって実行される。
【００５６】
まず、ＷＳＤモジュール１００３は、はじめにクライアントからネットワークに対して探索要求（Ｐｒｏｂｅ要求）を発行する（４０２）。これに対してネットワークに接続されたプリンタから、自らが接続していることを示す応答（ＰｒｏｂｅＭａｔｃｈ）が返信される。そこでクライアントは接続要求に応答したプリンタを全てプリンタリストとして、ＲＡＭ１２に記憶する（４０３）。ここで、デバイス情報（プリンタ名）や構成情報など、ドライバをインストールするための情報がプリンタリストには必要である。そこで、図１９（Ａ）に示すように、ＷＳＤモジュール１００３は、デバイス情報要求メッセージ１９０３およびサービス情報要求メッセージ１９０５を、応答したデバイスに送信する。これにより、デバイス情報およびサービス情報を収集する。応答されたデバイス情報およびサービス情報に基づいてプリンタリストを作成する。
【００５７】
図１８にプリンタリストの例を示す。プリンタリスト１８０１には、デバイスＩＤ１８１１、プリンタ名１８１２、構成情報１８１３、ドライバステータス１８１４、評価されたポイント１８１５、上位プリンタフラグ１８１６というフィールドが含まれている。デバイスＩＤ１８１１は、ネットワーク中においてデバイス固有の識別子である。
【００５８】
構成情報１８１３は、機能やドライバの要・不要の別等を示す。構成情報１８１３には、図５で優先順位を指定した項目について、条件に該当するか否かを判断できる情報が含まれる。なおデバイスから取得できない情報（たとえば導入年月日）などの判定のために、初めてそのデバイスが検出された日時を、プリンタリストに登録しておく。また使用頻度はクライアントの値であることが望ましいから、プリンタドライバに統計機能があれば、その機能で集計された使用頻度をプリンタリストに登録する。また、ドライバインストール時のプリンタの順位付けのために、ドライバがインストールされているか否かという項目も選択され得る。この項目はプリンタデバイスが管理できない。本実施形態では、ドライバステータスによりドライバがインストールされているか否かを示す。
【００５９】
ドライバステータス１８１４は、ドライバがインストールされているか否かを示す。ドライバステータスは、ドライバがインストールされていれば「Ｉｎｓｔａｌｌｅｄ」、いなければ「Ｄｉｓｃｏｖｅｒｅｄ」である。したがって、探索要求に対して初めて応答し、ドライバがインストールされていないデバイスのステータスは「Ｄｉｓｃｏｖｅｒｅｄ」である。ポイントは、ステップＳ５０３で評価された値である。上位プリンタフラグは、ドライバの数量制限がされている場合に、ドライバのインストール対象であるプリンタを示す。
【００６０】
クライアントは、図４のＵＩ１００において自動インストールあり１０１が指示されていると判定した場合は（４０４―Ｙｅｓ）、次のステップに進むが、そうでない場合は必要であればユーザへの通知を行い（４０７）、処理を終了する（４０８）。自動インストールの指示は、自動インストールフラグ１７１２を参照して判定される。自動インストールが指示されている場合、クライアントは、図５のＵＩにて数量制限が指示されているか否かを数量制限フラグ１７１１を参照して判定する（４０５）。数量制限が指示されていた場合は次のステップに進む。クライアントが、数量制限が指示されていないと判定した場合は、発見されたプリンタリスト（図１および図１８のプリンタリスト１８０１）の各プリンタに対応する全てのドライバを全て自動インストールする（７００）。発見されたプリンタリストとは、探索要求に応答メッセージを返信したプリンタのリストである。プリンタリストには、例えばそれらプリンタの名称やアドレス、ステータスが含まれている。全てのプリンタに該当するドライバをインストールする手順は図１０にて説明する。
【００６１】
一方、数量制限があらかじめ指示されていた場合、クライアント１０００は、次に、プリンタリストのプリンタを、ユーザの指定した優先順位順にソートする（５００）。ソートの詳細は図８にて後述する。ソートが終了したら、クライアントは、上位から制限数個分のプリンタに該当するドライバのインストールを行う（６００）。つまり、６００の処理は、ＷＳＤの認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、ＲＡＭ２に保持されている制限数分のデバイスドライバをインストールする処理に該当する。なお、制限数はＲＡＭ２に保存されている。このフローを図９に示す。クライアント１０００は、上位から制限数個分のプリンタに該当するドライバのインストールが終わったら、最後に、制限個数を超えたドライバを削除（アンインストール）する設定かどうかを確認する（４０６）。これは図４における数量制限を越えたドライバを削除するためのチェックボックス１０４がユーザによってチェックされているかどうかを指す。チェックされているようであれば、クライアント１０００は、制限数個以上のドライバを削除する（８００）。なお、４０６の処理は、ドライバ削除フラグ１７１３をテストすれば、チェックボックス１０４がチェックされているか否かを判定できる。こちらの詳細は図１１にて説明する。最終的に、クライアント１０００は、探索要求によって行った作業を説明するためのユーザ通知を行い（４０７）、終了する（４０８）。通知は、例えば表示によって行われる。表示内容は、新たにドライバがインストールされたデバイス（あるいはサービス）と、アンインストールされたドライバのリストなどを含む。
【００６２】
以上、図７の処理を実行することで、クライアント１０００は、設定された制限数およびユーザが指定した優先順位に基づいて、上位から制限数分のプリンタドライバをインストールすることができる。また、制限数分に入らない優先順位が指定されたデバイスに対応するドライバがインストールされていた場合、アンインストール処理される。これにより、不必要なドライバがインストールされることにより、メモリが浪費されるのを防ぐことが可能となる。
【００６３】
＜プリンタリストのソート＞
図８に、図７におけるプリンタリストのプリンタを優先順位順にソートするステップ５００の詳細を示す。まず、クライアント１０００は、ユーザの指定した優先度に応じたポイントをつける作業をリストの全てのプリンタに対して行う（５０２−５０４）。ポイントは、前述の数式「Ｐｉ＝Σ（ｓ（ｐ）＊２＾（ｎ−ｐ）），ｐ＝１...ｎ」を用いて算出される。もちろん優先度を反映したポイントが計算できるのであれば、この数式には限られない。これによって、デバイスｉに対するポイントＰｉが評価されるため、認識された周辺機器に所定の属性情報に基づいて優先順位を付けることができる。なお、図中、ステップＳ５０２のような矩形の上側の角を落とした六角ボックス（開始ボックスと呼ぶ）はループの開始を示し、その内容は終了条件を示す。またステップＳ５０４のような矩形の下側の角を落とした六角ボックス（終了ボックスと呼ぶ）はループの終了を示す。もしも開始ボックスに記述された終了条件が満たされればループ処理は終了して、終了ボックスの直下のステップに処理は進む。デバイスリストに含まれる全デバイスについてポイントの評価が終了したら、デバイスリストをポイント順にソートする（５０５）。
【００６４】
以上図８の処理により、ユーザが希望する条件に一致するデバイスほど高い優先順位が設定されるため、インストールすべきドライバ数を限定すると共に、ユーザの意図を反映したデバイスに対応するドライバをインストールすることが可能となる。
【００６５】
図１８はソート後のプリンタリストの例を示す。たとえば、デバイスＩＤ＝ｘｘｘｘのプリンタの名称は「Ｃ社プリンタ１０５０」であり、ドライバは既にインストールされている。デバイスＩＤ＝ｘｘｘｘのプリンタは、９項目の条件を全て満たしており、そのポイントが満点の５１１点となっている。なお、このポイントは、図１６の表１６０１に示した構成情報を基に評価した。なおドライバステータスはプリンタリスト１８０１内に持たなくとも良い。たとえば、ドライバのインストール状況を参照する都度、オペレーティングシステムに対して、オペレーティングシステムが管理するレジストリに登録された、インストール済みのプリンタドライバのリストを要求してもよい。
【００６６】
図１６は、さまざまな機能、性能を有する１０個のプリンタがひとつのネットワーク上につながっている時にそれらがソートされる様子を示している。ネットワーク環境は図３で示したものである。自動インストール設定として図５で示したような優先順位をユーザが指定した場合を想定してシミュレートしている。ソート前のリスト１６０１は検索された順にプリンタが並んでいる。ソート後のリスト１６０３においては、ユーザが要求する優先度の高い条件に合致するプリンタほど上に表示されている。リスト１６０３は、図１８のプリンタリスト１８０１を、デバイスの評価ポイントではなく、デバイス毎の構成情報に対応付けて示したものである。もちろん、同一の基準に従うこととなるので、同じ順序にソートされる。図１６においては、「○」が条件を満たしていることを示す。また左側から右側に向けて、項目の優先度ｐが低くなる。
【００６７】
＜指定数のプリンタに対するドライバインストール＞
図９に、図７における上位から制限個分のドライバをインストールするステップ６００の詳細を示す。まずクライアント１０００は、上位プリンタフラグをいったん０にリセットしておく。クライアント１０００は、プリンタリスト１８０１の上位にあるプリンタから順に着目し、着目プリンタのプリンタドライバがすでにインストールされているかどうかを判定する（６０３）。クライアント１０００は、６０３の処理により着目プリンタのプリンタドライバがインストールされていないと判定した場合（６０３−Ｎｏ）、着目プリンタのプリンタドライバをインストールする（６０４）。インストールするドライバは、たとえばプリンタの名称に基づいて特定できる。ここでプリンタの名称は、ドライバを一意に特定できるように付されているものとする。もしプリンタ名からドライバを一意に特定できない場合には、デバイス情報やサービス情報を保存しておき、デバイス情報及びサービス情報に基づいてドライバを決定する。クライアント１０００は、その処理をインストール対象のプリンタについて繰り返す。繰り返す回数としては、発見されたプリンタの数が制限数より多ければ制限個数分、それより少なければ発見された全てのプリンタ個数分行う（６０２）。ドライバがインストールされているか否かは、ドライバステータス（あるいはレジストリ）を参照して判断できる。
【００６８】
以上図９の処理は、設定された優先順位が制限数以内の周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールするものである。この構成により、ＲＡＭ２に保持された制限数をインストール可能なデバイスドライバの数として、収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定する。そして、決定されたデバイスドライバの候補のうちインストールされていないデバイスドライバをインストールすることが可能となる。よって、既にインストールされているドライバに対して、再度インストールを実行するといった処理を省くことができる。
【００６９】
また、この際、プリンタリストの上位制限個に入っていることを示す上位プリンタフラグを、プリンタドライバがインストールされた、あるいは既にインストールされているプリンタごとに立てる（６０５）。例えば、数量制限の上限値が５であるとすれば、図１８の例においては、上位４つのプリンタに対応するドライバはすでにインストールされている。そこでそれらのプリンタに対応するドライバについてはインストールの必要はなく、上位プリンタフラグのみセットされる。５つめのＢ社プリンタ８０４０のドライバは新たにインストールされ、上位プリンタフラグが立てられる。ドライバステータスも同時に更新される。このように、設定された制限数を上限数として扱い、制限数をインストール済みのデバイスドライバの上限として、認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることが可能となる。
【００７０】
図１１に、図７における制限個以上のドライバを削除するステップ８００の詳細を示す。ここではすでにインストールされている各プリンタに対して、クライアント１０００が、ドライバインストール時に上位プリンタフラグを立てていたかどうかを確認する。すなわちプリンタリスト１８０１の上位のプリンタから順に上位プリンタフラグおよびドライバステータスを参照する。そして、クライアント１０００は、上位プリンタフラグがセットされておらず、かつ、ドライバステータスが「Ｉｎｓｔａｌｌｅｄ」であるか判定する（８０３，８０４）。つまりこの処理は、設定された優先順位が制限数に含まれていない周辺機器に対応するデバイスドライバがインストールされているか否かを判定する処理である。なお、設定された優先順位が制限数に含まれていない場合の一例は、制限数が３つであるばあい、４位以下の優先順位が設定された周辺機器が該当する。ステップ８０３および８０４の判定処理に基づいて、クライアントは、該当するプリンタのプリンタドライバを削除する（８０５）。この処理により、制限数に入らない優先順位が設定された周辺機器に対応するデバイスドライバがインストールされていた場合、該デバイスドライバは削除（アンインストール）処理される。なお、インストールされていないドライバは削除対象とはならないので、ステップ８０４の判定は不要である。この作業を行った後には、ユーザが図４のＵＩ１０２にて指定した上限値の数のドライバがインストールされた状態になる。
【００７１】
以上図１１の処理により、設定された上限数に入らない優先順位が設定されたデバイスに対応するドライバが自動的にアンインストール（削除）されるので、ユーザにとって不必要なドライバが消費していたメモリ量を節約することができる。
【００７２】
＜全プリンタに対するドライバインストール＞
図１０に、図７におけるプリンタリストの全てのプリンタのドライバをインストールするステップ７００の詳細を示す。プリンタリストのプリンタに順に着目し、クライアント１０００は、着目プリンタのプリンタドライバがインストール済みか判定する（７０３）。ステップ７０３の判定処理により、インストールされていないと判定された場合、クライアント１０００は、着目プリンタのプリンタドライバをインストールする（７０４）。この作業をプリンタリストの全てのプリンタに対して繰り返す（７０２）。
【００７３】
＜デバイスからの参加通知をトリガとするドライバインストール＞
図７から図１１においてクライアント１０００からの探索要求時（Ｐｒｏｂｅ要求）のフローを説明した。これに対して、図１２に示すフローはネットワークプリンタ３０００からネットワーク３１への参加通知（Ｈｅｌｌｏ）が届いた時のクライアント１０００の動作を示している。Ｈｅｌｌｏ通知は、ネットワークに接続されたデバイスの電源投入時や新規デバイスを新たにネットワークに接続した時などに行われる。
【００７４】
クライアント１０００は周辺機器から所定の信号である参加通知を受け取ると（９０２）、接続通知時も該当するプリンタのドライバをインストールする設定かどうかを判定する（９０３）。ステップ９０３の判定処理は図４のＵＩ１００における「プリンタ接続通知時にもインストール（アンインストール）を行なう」１０５がチェックされているか否かを示すプリンタ主導フラグ１７１４を参照して行なえる。なお、参加通知とは、クライアント１０００と通信可能となった周辺機器から接続開始信号を指す。
ネットワークプリンタの接続通知時にインストールする設定であれば、参加通知を発行したプリンタをプリンタリストに追加する。図５のＵＩで設定された条件情報１００６ａに合致すれば、追加されたプリンタに対応するドライバをインストールする。したがってステップ９０４において、クライアント１０００は、図１９（Ｂ）のようにデバイス情報要求メッセージ１９１２およびサービス情報要求メッセージ１９１４を、参加通知の送信元のプリンタに対して送信する。そしてクライアント１０００は、参加通知を送信した周辺機器に関する情報、たとえばプリンタ名や構成情報などの属性を受信して、プリンタリストに追加する（９０４）。
【００７５】
最後に作成したプリンタリストに基づいてドライバをインストールするために、図７のステップ４０４へ分岐する。以降、クライアント１０００は、参加通知を送信した周辺機器に関する情報と図５の優先順位を決定するための属性情報から該周辺機器の優先順位を決定し、決定された優先順位が制限数内に入るか否かを判定する。そして、判定の結果、参加通知の発信元に当たる周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールする。なお、優先順位が制限数を満たすとは、例えば制限数が３つである場合、３位以内の優先順位が設定された周辺機器が該当する。
【００７６】
なお、参加通知を受けた場合にプリンタリストをすべて作成し直しても良い。その場合、ステップ９０４の代わりに図７のプリンタ探索要求処理全体をコールする。もちろんステップ４０４へ分岐せず、プリンタ探索要求処理が終了したなら、図１２の処理も終了となる。
【００７７】
図１２の処理により、例えば制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶している状態で、ネットワークに新たなデバイスが接続された場合を想定する。この場合、接続されたデバイス情報を取り込んで、設定された制限数内の優先順位が付されることで、該デバイスに対応するドライバをインストールすることが可能となる。また、参加通知されたデバイスが制限数内の優先順位となることにより、参加通知されるまで制限数内にあったデバイスの優先順位が制限数から漏れることとなる。この場合、既にインストール済みのデバイスドライバから少なくとも１つのデバイスドライバをアンインストール（削除）するようにしても構わない。
【００７８】
このような動作をすることで、ユーザが制限ドライバ数を指定している場合には常にユーザの要求する上位のプリンタに対するドライバがクライアント１０００上にインストールされている状態を保つことになる。
【００７９】
＜ユーザへのメッセージ＞
図１３、図１４は、図７のユーザ通知（ステップ４０７）をクライアントのＣＲＴ１０上においてＵＩ表示している例を示す。図１３のＵＩは、数量制限を越えるプリンタが見つかった際に一覧表示するかどうかをユーザに尋ねるＵＩ４１０である。図１４のＵＩは、数量制限を越えるプリンタが見つかった際に、いくつかのプリンタドライバを自動でアンインストールした後で表示するＵＩ４２０である。一覧表示した時のＵＩは図１５にて詳細を記述する。また、自動でアンインストール処理されることを望まないユーザを配慮し、１クリックで設定画面（図４）まで誘導するような仕組みになっている。
【００８０】
図１５は、図１３において、ネットワークに接続されたプリンタの一覧を表示するようにユーザが指示したときに表示するＵＩを示している。本画面はＰｎＰユーティリティ１００２のＵＩ画面と等価であり、ＵＩ操作により、ネットワーク上のプリンタに対応するドライバをインストールまたはアンインストールするかどうかの指定を行うためのものである。
【００８１】
上部ネットワークプリンタのリスト部５１００には図８のフローによりユーザの指定した優先順位順にソートされたプリンタリスト１５０１が表示されている。まだインストールされていないプリンタドライバに対してインストールを指示するための追加ボタン５３００やすでにインストールされているプリンタドライバをアンインストールするための削除ボタン５４００を有している。また、リストの更新ボタン５２００は図７のフローによりネットワークに接続されたプリンタを再探索するために用意されている。
【００８２】
一方、下部５５００には、プリンタリスト１５０１で選択されているプリンタの属性を表示する。属性をユーザに提供することで、現在ネットワークに接続されたプリンタにはどのようなものがあるかをユーザが知ることが出来るようになっている。
【００８３】
以上のように本実施形態によれば、ネットワークプリンタが複数存在している場合、そのネットワークに接続したクライアントは、指定した条件に合致する、指定した数のネットワークプリンタに限ってプリンタドライバをインストールできる。このため、クライアントコンピュータのリソースの消費量を節約できる。また、ユーザが使用するプリンタの選択の幅を制限でき、操作性を向上させることができる。
【００８４】
また、プリンタの機能や使用頻度、導入後経過期間などの構成情報の各項目に優先順位を付して前記条件を指定できる。例えば、使用頻度を用いて優先順位を設定する場合、ユーザにより設定された所定の値以上の頻度で使用されているプリンタを所定の値以下の頻度で使用されているプリンタよりも高い優先順位を設定する。また、使用頻度に基づいて（例えば使用頻度の高い順）優先順位を付けても構わない。このため、ユーザは最も重要視する項目から順に高い優先度を与えることで、所望のプリンタを優先してドライバのインストールを行える。
【００８５】
また、プリンタドライバをインストールするプリンタの選択を動的に行うことで、ユーザの指定した条件により適したプリンタが新たに加わった場合に、速やかにそのプリンタをクライアントから使用できる。
【００８６】
また、ネットワークプラグアンドプレイにより、ユーザがドライバインストール等の作業を行わずに、プリンタを利用でき、より操作性や生産性が向上する。
【００８７】
［第２実施形態］
第１実施形態では、指定された上限数をインストール済みのプリンタドライバの上限数としてインストール処理を行ってきた。たとえば、上限数が「５」と指定されており、すでに３つのプリンタドライバがインストール済みの場合、インストールできるプリンタドライバ数は２個となっていた。
【００８８】
これに対し、本実施形態では、設定された制限数分のプリンタドライバをインストール処理について説明する。例えば、制限数が「５」と指定されており、すでに３つのプリンタドライバがインストール済みの場合であっても、５個のプリンタドライバをインストールする処理について、図２０を参照して説明する。
【００８９】
クライアント１００は、設定された制限数ｍを認識する（２００１）。続いて、クライアント１００は、上述した図１８のプリンタリストを参照し、リストされているデバイス数ｄを認識する（２００２）。図１８の例ではｄ＝１０となる。
【００９０】
クライアント１００は、リストの一番目から判定処理を進めるため、判定処理を行うリスト番号ｎを１に初期化する。また、クライアント１００は、インストール処理されたデバイスドライバの個数を数えるため、インストール処理されたデバイスドライバ数ｉを０に初期化する（２００３）。
【００９１】
クライアントは、プリンタリストのｎ番目のプリンタに対応するドライバがインストール済みであるか否かを判定する（２００４）。なお、ドライバがインストールされているか否かの判定処理は上述した通りである。
【００９２】
２００４の処理により、ｎ番目のプリンタに対応するドライバはインストール済みであると判定された場合、クライアントは、２００７の処理へ進む。
【００９３】
また、２００４の処理によりｎ番目のプリンタに対応するドライバがインストール済みでないと判定された場合（２００４−Ｎｏ）、クライアント１００は、ｎ番目のプリンタに対応するドライバをインストールする（２００５）。ここでインストールしたプリンタドライバ数を数えるため、クライアントはインストールしたドライバ数を示すｉの値をインクリメント処理する（２００６）。
【００９４】
クライアントは、インストールしたプリンタドライバ数ｉと、２００１の処理にて認識した制限数ｍを比較する。クライアント１００は、インストールしたプリンタドライバ数ｉが、制限数ｍより大きいと判定された場合（２００７−Ｙｅｓ）、図２０に記載の処理を終了する。
【００９５】
また、２００７の処理結果がＮｏであると判定された場合、クライアント１００は、対象とするプリンタを次のプリンタへ進めるためインクリメント処理する（２００８）。ここでクライアントは、処理対象のｎ番目のプリンタがプリンタリストにあるか否かを判定し（２００９）、あると判定された場合、再度２００４の処理を実行する。
【００９６】
以上の処理により、インストール済みのプリンタドライバを考慮しつつ、ユーザにより設定された制限数分のプリンタドライバをインストールすることが可能となる。よって、インストールするプリンタドライバ数を制限しながら、多くの種類のプリンタドライバをインストールすることが可能となる。
【００９７】
［変形例］
以上プリンタドライバについて説明したが、プリンタ以外のデバイスに適用することもできる。また複数の種類のデバイスそれぞれについて本発明を適用することもできる。その場合、インストールする上限数や優先順位のキーとなる属性情報およびその設定値、ドライバのアンインストールオプション等は、デバイス毎に設定される。すなわち、図１７に示すインストール条件情報１００６ａはデバイス毎に用意される。また、制限数についても周辺機器の種類毎にインストールされるデバイスドライバの制限数を記憶する。なお、上述した通り、周辺機器には、プリンタが含まれる。
【００９８】
また、本実施形態では、構成情報データベースをデバイスが保持し、クライアントは構成情報をデバイスから得るものとした。これに対して、構成情報データベースを保持するための記憶容量を節約し、また管理の一元化を図るために、デバイスでは構成情報データベースの所在アドレスを保持するように構成しても良い。その場合、デバイス情報要求に対して、デバイスは構成情報データベースのアドレス（たとえばＵＲＩ）を応答としてクライアントに送信する。それを受信したクライアントは、応答メッセージに含まれるアドレスに対して構成情報の要求を行う。構成情報獲得の手順は、デバイス情報要求に対する応答を受信した後は、通信相手が構成情報データベースを保持するサーバに変わる点を除けば、図１９と同様である。
【００９９】
さらに本実施形態では、クライアントは、デバイスの構成情報を、ＷＳ−Ｄｉｓｃｏｖｅｒｙの手順の中で、デバイス情報として当該デバイスから得ている。これに対して、ＳＮＭＰやアクティブディレクトリ等を用いてデバイスの構成情報を得ることもできる。たとえばＳＮＭＰを用いる場合、デバイスのハードディスク２９には、ＳＮＭＰ（シングルネットワークマネジメントプロトコル）エージェントおよびＭＩＢ（マネージメントインフォメーションベース）が保存されている。ＳＮＭＰエージェントはＲＡＭ２２にロードされてＣＰＵ２１により実行される。ＭＩＢはデバイス（この場合プリンタ）の統計情報や機能情報を保存したデータベースである。ＳＮＭＰエージェントは、ホストコンピュータにインストールされたＳＮＭＰマネージャからの要求に応じて、ＭＩＢを更新したりあるいはＭＩＢの情報を呼んでＳＮＭＰマネージャに送信する。ＭＩＢには、たとえば当該デバイスの使用頻度や、印刷速度、カラー印刷機能の有無、最高解像度、両面印刷機能の有無、製造メーカなどが登録されている。上記項目のうち、使用頻度は、プリンタが使用される都度更新される。そのほかの項目は、プリンタの機種に応じた値が製造時に登録されている。
【０１００】
このようにしてＳＮＭＰマネージャによりクライアントがデバイスから直接デバイス情報を獲得する。あるいは、ＳＮＭＰマネージャとして機能するサーバがデバイス情報を一元的に獲得し、クライアントはそのサーバからデバイス情報を獲得するように構成することもできる。
【０１０１】
以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではない。
【０１０２】
また、本願発明では設定された制限数を上限値としてインストールすべきデバイスドライバを決定していた。例えば、図１８において上位４つのドライバはインストールされているため残りインストール可能なデバイスドライバは１つとなる。しかし、本願発明はこれに限ることなく、単に設定された制限数分のデバイスドライバをインストールするようにしても構わない。
【０１０３】
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０４】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態におけるクライアントとネットワークプリンタの接続を示したハードウエア構成図である。
【図２】クライアントとネットワークプリンタのネットワーク接続に関連するモジュールを説明したブロック図である。
【図３】本実施の形態におけるネットワーク環境の概念図である。
【図４】クライアント上のプリンタドライバ自動インストール設定ＵＩの一例を示す図である。
【図５】図４における詳細設定ボタンを押した時の図である。
【図６】図５の優先順位指定のための各項目とそれらの選択肢を示している図である。
【図７】クライアントがプリンタ探索要求（Ｐｒｏｂｅ）を行う時のフローチャートである。
【図８】プリンタを優先順位順にソートする時のフローチャートである。
【図９】上位から制限数個分のドライバをインストールする時のフローチャートである。
【図１０】全てのプリンタのドライバをインストールする時のフローチャートである。
【図１１】制限数個を超えるドライバを削除する時のフローチャートである。
【図１２】プリンタからネットワークへの参加通知（Ｈｅｌｌｏ）が届いた時のクライアントの動作を示す図である。
【図１３】検出されたプリンタを一覧表示するかどうかを尋ねるＵＩの一例を示す図である。
【図１４】自動アンインストールを行った時に表示するＵＩの一例を示す図である。
【図１５】プリンタの一覧を表示するＵＩである。
【図１６】検出されたプリンタを優先順位順にソートしている例を示す図である。
【図１７】条件情報の一例を示す図である。
【図１８】プリンタリストの一例を示す図である。
【図１９】ＷＳ−Ｄｉｓｃｏｖｅｒｙのシーケンス図である。
【図２０】第２実施形態のフローチャートである。
【符号の説明】
【０１０６】
１００  プリンタドライバ自動インストール設定画面  
２００  プリンタドライバ自動インストール設定画面詳細
１０００  クライアント  
３０００  ネットワークプリンタ
５０００  ネットワークプリンタの追加と削除画面
【図１】
2007066189.tif 000003
【図２】
2007066189.tif 000004
【図３】
2007066189.tif 000005
【図４】
2007066189.tif 000006
【図５】
2007066189.tif 000007
【図６】
2007066189.tif 000008
【図７】
2007066189.tif 000009
【図８】
2007066189.tif 000010
【図９】
2007066189.tif 000011
【図１０】
2007066189.tif 000012
【図１１】
2007066189.tif 000013
【図１２】
2007066189.tif 000014
【図１３】
2007066189.tif 000015
【図１４】
2007066189.tif 000016
【図１５】
2007066189.tif 000017
【図１６】
2007066189.tif 000018
【図１７】
2007066189.tif 000019
【図１８】
2007066189.tif 000020
【図１９】
2007066189.tif 000021
【図２０】
2007066189.tif 000022