(57)【特許請求の範囲】
【請求項１】
複数種類のデバイスドライバと対応する周辺機器と通信可能なコンピュータにおけるプログラムであって、
コンピュータに保持されている、当該コンピュータにインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段としてコンピュータを機能させるためのプログラム。
【請求項２】
前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定手段としてさらにコンピュータを機能させ、
前記特定手段は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定手段によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記設定手段は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２に記載のプログラム。
【請求項４】
前記設定手段は、前記インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２または３に記載のプログラム。
【請求項５】
前記設定手段は、前記インストール履歴情報において、前記コンピュータに最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記設定手段は、複数の基準項目に対して順位を設定し、
前記特定手段は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定手段により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項２乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも１つ以上の情報を含むことを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記コンピュータを、ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得手段として更に機能させ、
前記特定手段は、前記メッセージ取得手段により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項１乃至８のいずれか１項に記載のプログラム。
【請求項１０】
前記インストール制御手段は、オペレーションシステムに対して前記特定手段によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項１乃至９のいずれか１項に記載のプログラム。
【請求項１１】
複数種類のデバイスドライバと対応する周辺機器と通信可能な機能情報提供装置であって、
保持している、当該機能情報提供装置にインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段と
を備えることを特徴とする機能情報提供装置。
【請求項１２】
前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定手段をさらに有し、
前記特定手段は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定手段によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項１１に記載の機能情報提供装置。
【請求項１３】
前記設定手段は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項１２に記載の機能情報提供装置。
【請求項１４】
前記設定手段は、前記インストール履歴情報において、現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項１２または１３に記載の機能情報提供装置。
【請求項１５】
前記設定手段は、前記インストール履歴情報において、最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項１２乃至１４のいずれか１項に記載の機能情報提供装置。
【請求項１６】
前記設定手段は、複数の基準項目に対して順位を設定し、
前記特定手段は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定手段により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項１２乃至１５のいずれか１項に記載の機能情報提供装置。
【請求項１７】
前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項１１乃至１６のいずれか１項に記載の機能情報提供装置。
【請求項１８】
前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも１つ以上の情報を含むことを特徴とする請求項１１乃至１７のいずれか１項に記載の機能情報提供装置。
【請求項１９】
ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得手段をさらに有し、
前記特定手段は、前記メッセージ取得手段により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項１１乃至１８のいずれか１項に記載の機能情報提供装置。
【請求項２０】
前記インストール制御手段は、オペレーションシステムに対して前記特定手段によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項１１乃至１９のいずれか１項に記載の機能情報提供装置。
【請求項２１】
複数種類のデバイスドライバと対応する周辺機器と通信可能な機能情報提供方法であって、
保持している、インストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識工程と、
前記認識工程によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定工程と、
前記特定工程にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定工程と、
前記決定工程により決定されたデバイスドライバをインストールすべく制御するインストール制御工程と
を有することを特徴とする機能情報提供方法。
【請求項２２】
前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定工程をさらに有し、
前記特定工程は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定工程によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項２１に記載の機能情報提供方法。
【請求項２３】
前記設定工程は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２２に記載の機能情報提供方法。
【請求項２４】
前記設定工程は、前記インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２２または２３に記載の機能情報提供方法。
【請求項２５】
前記設定工程は、前記インストール履歴情報において、前記コンピュータに最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項２２乃至２４のいずれか１項に記載の機能情報提供方法。
【請求項２６】
前記設定工程は、複数の基準項目に対して順位を設定し、
前記特定工程は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定工程により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項２２乃至２５のいずれか１項に記載の機能情報提供方法。
【請求項２７】
前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項２１乃至２６のいずれか１項に記載の機能情報提供方法。
【請求項２８】
前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも１つ以上の情報を含むことを特徴とする請求項２１乃至２７のいずれか１項に記載の機能情報提供方法。
【請求項２９】
ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得工程をさらに有し、
前記特定工程は、前記メッセージ取得工程により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識工程によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項２１乃至２８のいずれか１項に記載の機能情報提供方法。
【請求項３０】
前記インストール制御工程は、オペレーションシステムに対して前記特定工程によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項２１乃至２９のいずれか１項に記載の機能情報提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像形成手段を持つ画像形成装置を含む、複数の機能情報を提供するネットワーク上の機能情報提供装置を実行する情報処理装置のシステムに関するものである。
【背景技術】
【０００２】
インターネットやホームネットワークなど、ネットワークの拡張に伴い、例えば、ＰＤＡや携帯電話等のユーザインタラクティブなデバイス、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置などのデバイスのネットワーク対応が進んでいる。また、テレビ、エアコン、冷蔵庫等の家電製品などに至るまで様々なデバイスのネットワーク対応も進んでいる。
【０００３】
これに伴い、ネットワーク対応デバイスを利用する上での利便性・簡易性を高めるための機能情報が多数存在する。このうちのひとつにネットワークプラグアンドプレイがある。従来のプラグアンドプレイ（ＰｎＰ）は、各デバイスとホストコンピュータとなるＰＣをさまざまなローカルのＩ／Ｏポート（シリアル・パラレル・ＵＳＢ、ＰＣＩ、ＩＥＥＥ１３９４、ＰＣＭＣＩＡなど）に直接プラグで接続した際に働く機能である。プラグアンドプレイでは、デバイスが機種名（デバイスＩＤ）や製造者名（ベンダＩＤ）、シリアル番号などをホストの情報処理装置に送信する。情報処理装置はこれらの受信した情報を参照して、デバイスを使用可能にするためのデバイスドライバをクライアントに自動でインストールする。このような形態が主であった。ネットワークプラグアンドプレイはこれをネットワークに接続したデバイス(ＮＣＤ：Ｎｅｔｗｏｒｋ  Ｃｏｎｎｅｃｔｅｄ  Ｄｅｖｉｃｅｓ)とホストコンピュータ同士の接続にまで拡張したものである。Ｍｉｃｒｏｓｏｆｔ社が提唱するＰｎＰ−Ｘ（Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ  ｅＸｔｅｎｓｉｏｎｓ）や、（社）ビジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ、Ａｐｐｌｅ社が開発したＢｏｎｊｏｕｒなどの規格が現在規定されている。
【０００４】
ＰｎＰ−Ｘは従来のプラグアンドプレイに加え、ＷＳ−Ｄｉｓｃｏｖｅｒｙに対応したデバイスが提供する機能情報および情報を元に、ネットワーク上のデバイスを検知し、デバイスドライバのインストールを行うことができる機能である。ＷＳ−Ｄｉｓｃｏｖｅｒｙは、ＵＰｎＰ（登録商標）１．０（Ｕｎｉｖｅｒｓａｌ  ＰｎＰ）や、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｄｅｖｉｃｅｓ）のデバイス検出プロトコルである（非特許文献１参照）。
【０００５】
ＰｎＰ−Ｘ機能を持つオペレーティングシステムは、ファンクションディスカバリと、ファンクションディスカバリプロバイダとが組み合わさったシステムによって、さまざまなプロトコルのネットワークデバイスの検出を実現している。ファンクションディスカバリとは、アプリケーション層に対応したファンクションディスカバリクライアントである。ファンクションディスカバリプロバイダとはプロトコル層に対応する。ファンクションディスカバリクライアントである「ＩＰバスエニュミレータ」は、ネットワークに接続したデバイスのＵＰｎＰやＷＳＤの機能情報に応答するそれぞれのファンクションディスカバリプロバイダから通知を受け、発見したデバイス情報を列挙する。列挙したデバイス情報（デバイスＩＤ・ベンダＩＤなど）は、「ＩＰバスエニュミレータ」から「プラグアンドプレイマネージャ」に引き渡される。そしてデバイス情報に対応したドライバのインストールが開始される。
【０００６】
また、ＰｎＰ−Ｘ機能はネットワークに接続され発見されたデバイスのドライバが、すべてインストールされることを防ぐためのシステムを持つ。これは、「関連データベース」（Ａｓｓｏｃｉａｔｉｏｎ  Ｄａｔａｂａｓｅ）ともうひとつのファンクションディスカバリクライアントである「ネットワークデバイスの追加と削除」と呼ばれるコントロールパネルのユーザインタフェースによって実現されている。「ネットワークデバイスの追加と削除」はファンクションディスカバリプロバイダから情報を取得し、現在発見されているデバイスを列挙して、ユーザインタフェースによりリスト表示を行う。ユーザは「ネットワークデバイスの追加と削除」を起動し、リスト表示されたデバイスから、「インストールを許可する」デバイスを選択し「追加」操作操作により選択されたデバイスのデバイス情報が「関連データベース」に登録される。「ＩＰバスエニュミレータ」は、発見したネットワークデバイスのうちこの「関連データベース」に登録してあるもののみ「プラグアンドプレイマネージャ」に渡す。この処理により、ネットワークで発見されたすべてのデバイス向けのドライバがインストールされることを防止している。（非特許文献１参照）。
【０００７】
このＰｎＰ−Ｘ機能のように、ネットワークを介してデバイスに接続されているホストコンピュータが、デバイスからの応答情報を元にプログラムのインストールを行うシステムは従来存在する（特許文献２参照）。
【特許文献１】特開２００３−６１３３号公報
【非特許文献１】J. Beaty, et al, "Web Service Dynamic Discovery (WS-Discovery)," April 2005. (http://schemas.xmlsoap.org/ws/2005/04/discovery/WS-discovery.pdf)
【非特許文献２】"Discovery, Plug and Play Integration, and Web Services for Metwork connected Devices", April 25, 2005. (http://www.microsoft.com/whdc/device/netAttach/PnP-X_Discover.mspx/ のPnP-X_Discover.doc)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述した従来の技術では、複数の機能を持つデバイスを検出したときに、複数の機能に対応するデバイスドライバがインストールされ、同時に利用可能になってしまい、ユーザは、適切なドライバを選択することが困難となるケースがある。例えば、複数種類のＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に対応した画像形成装置（プリンタ）が検出された場合、そのデバイス（プリンタ）に対して、複数種類のＰＤＬに対応した複数のプリンタドライバがインストールされる。その結果、ユーザが指定できる出力先の選択肢がひとつのプリンタについて複数存在する。そのため、ユーザが実際に印刷する際にどのドライバを選択すればいいのかわからなくなり、使い勝手の悪化をもたらしている。
【０００９】
また、前述のとおり、ネットワーク上で検出されたデバイスがクライアントコンピュータにリストとして列挙されて、ユーザはそのリストから選択したデバイスを利用可能なデバイスとして追加できる。複数のＰＤＬに対応したプリンタが検出された場合、そのリストには、インストール可能なドライバが、ＰＤＬごとに表示される。しかしこのようなリストをみても、通常のユーザはどのＰＤＬを選択すればいいのかわからない。そのため、ユーザは結局全てのデバイスドライバを選択するか、明確な根拠がないまま何れかを選択することになる。前者であれば、検出されたデバイスのドライバがすべてインストールされることになる。後者であれば、ユーザが使用するアプリケーションプログラムが作成するデータに適していないＰＤＬ対応のプリンタドライバを選択してしまい、ユーザが所望する画像が出力できない場合も生じえる。
【００１０】
本発明は上記従来例に鑑みてなされたもので、コンピュータにインストールするデバイスドライバを選択する際に、適切なデバイスドライバを選択するためのユーザ補助を実現することを目的とする。また、そのユーザ補助によりユーザに適したデバイスのデバイスドライバを選択してインストールすることで、ユーザの操作性、利便性、生産性を高めることを目的とする。また、ユーザの望まないデバイスドライバをインストールすることにより消費されるコンピュータ資源の浪費を防止する。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明は以下の構成を備える。複数種類のデバイスドライバと対応する周辺機器と通信可能なコンピュータにおけるプログラムであって、
コンピュータに保持されている、当該コンピュータにインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段としてコンピュータを機能させる。
【発明の効果】
【００１２】
本発明によって、コンピュータにインストールするデバイスドライバを選択する際に、適切なデバイスを選択するためのユーザ補助を実現することができる。また、ユーザに適したデバイスのデバイスドライバを選択的にインストールすることで、ユーザの操作性、利便性、生産性を高めることができる。また、デバイスドライバのインストールにより消費されるコンピュータ資源の浪費を防止することができる。
【発明を実施するための最良の形態】
【００１３】
［第１実施形態］
＜システム構成＞
図１は、本発明の一実施形態を示す印刷処理システムに含まれるクライアントやサーバといった汎用コンピュータ（情報処理装置）のブロック構成図である。本実施形態では、ネットワークプリンタを対象として説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できる。
【００１４】
図１において、ＣＰＵ１０１はＲＯＭ１０２あるいはＲＡＭ１０３あるいは記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０３はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。外部記憶装置１０５はオペレーティングシステム（ＯＳ）１０５４やプリンタドライバ１０５３、印刷関連プログラム１０５２、アプリケーションソフト１０５１等を記録する。オペレーティングシステム１０５４には、ここではＴＣＰ／ＩＰプロトコルスタックや、ネットワークＰｎＰのための図３に示すモジュールを含む。
【００１５】
キーボード１０８や、マウスなどのポインティングデバイス１０９といった入力機器は、入力Ｉ／Ｆ１０４を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０６は、データを外部に出力するためのインタフェースであり、モニタ１１０やプリンタ１１１に対してデータを出力する。モニタ１１０上への表示と、その表示画面にマッピングされた仮想的なスイッチ等により、ＧＵＩが実現される。なおプリンタとコンピュータとは、ローカルＩ／Ｏに代えてネットワークを通して接続されていてもよい。また、共通データバス１０７は、各ハードウエア要素の間のデータや制御信号、アドレス等のやりとりを行う。
【００１６】
図２は本発明の実施の形態におけるネットワーク環境の一例を簡略に示す図である。プリンタ２０２、プリンタ２０３、プリンタ２０５がそれぞれイーサネット（登録商標）ネットワークにつながったネットワークプリンタを示している。クライアント２０１、サーバ２０４もそれぞれネットワークに接続され、ネットワークを通じてクライアント２０１もしくはサーバ２０４から印刷が可能な環境を構築している。プリンタ２０３はここではオフラインであり、物理的には接続されていても実際には使用できない状態である。このようなオフライン状態のプリンタがネットワーク上に存在してもかまわない。本発明においては図２のようなネットワークでプリンタが利用できる環境であるものとする。クライアント２０１は図１に示したハードウエアを有する。
【００１７】
図３は本発明の実施の形態における、ホストコンピュータ上のネットワークプラグアンドプレイのブロック図である。図３の下から順にネットワークプラグアンドプレイがどのように動作しているかを説明する。まず、図２のようにネットワークに接続されたプリンタ３０１が存在する。プリンタ３０１は、図２のプリンタ２０２、２０３、２０５に相当する。プリンタ３０１は、通信機能としてイーサネット（登録商標）コントローラを内蔵し、イーサネット（登録商標）に対応している。またプリンタ３０１には、ＴＣＰ／ＩＰネットワーク上でＨＴＴＰリクエストに動作できるようにＴＣＰ／ＩＰプロトコルスタックやＨＴＴＰレイヤも実装されている。なおここでは通信メディアとしてイーサネット（登録商標）を用いているが、本実施形態で用いるＴＣＰ／ＩＰを上位プロトコルとしてサポートできるメディアであれば利用可能である。たとえば、ＵＳＢなどのシリアルＩ／Ｏ、ＷｉＦｉ（登録商標）（ＩＥＥＥ８０２．１１ａ／ｂ／ｇ）やＢｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢといった無線通信、シリアルＩＦやパラレルＩＦにも適用できる。また、通信プロトコルも、ＴＣＰ／ＩＰ以外のプロトコルを利用することができる。
【００１８】
プリンタ３０１が持つ通信機能の上位のレイヤには、タグを用いたマークアップ言語であるＸＭＬベースのプロトコル「ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）」を解釈可能なシステムを搭載している。ＳＯＡＰは通信内容にＸＭＬを用い、言語やプラットフォームに依存することなくデータを通信することができるプロトコルである。このＳＯＡＰをベースにして、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｆｏｒ  Ｄｅｖｉｃｅｓ）システムもプリンタ３０１は搭載している。ＷＳＤシステムはプリンタ３０１がＷｅｂ機能情報を提供するために存在している。デバイスは、デバイスの情報を返すアプリケーションプロトコルであるＤＰＷＳ（Ｄｅｖｉｃｅ  Ｐｒｏｆｉｌｅ  ｆｏｒ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ）によってデバイス情報を応答する。クライアント２０１は、デバイスのＷｅｂ機能情報を探索するために、ＷＳ−Ｄｉｓｃｏｖｅｒｙ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｙｎａｍｉｃ  Ｄｉｓｃｏｖｅｒｙ）をサポートする。またクライアント２０１は、デバイス情報を入れるデータフォーマットであるＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅの２つの規格をサポートする（図１３参照）。これら２つの規格をサポートすることで、デバイスの備えたＷＳＤおよびＤＰＷＳと連係動作して、ネットワークＰｎＰが実現される。
【００１９】
なおプリンタ３０１はＷＳＤ機能情報を搭載している。これは、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）とＳＳＤＰ  Ｄｉｓｃｏｖｅｒｙ  Ｍｅｔａｄａｔａ  ＭａｐｐｉｎｇをサポートしているＵＰｎＰ機能情報であってもよい。
【００２０】
＜デバイスの探索とインストール＞
次にクライアントがネットワークデバイスを検出して必要なソフトウエアをインストールする手順を説明する。
【００２１】
イーサネット（登録商標）に接続されたプリンタ３０１は、イーサネット（登録商標）などのネットワークに接続された段階で接続通知（Ｈｅｌｌｏメッセージ）をマルチキャストでネットワークに送信する（Ｓ３００１）。マルチキャストの宛先はホストコンピュータか、あるいは少なくともホストコンピュータを含むノードである。ネットワークに接続されているクライアント２０１は、ＴＣＰ／ＩＰプロトコルスタック、ＨＴＴＰドライバを経由して、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１でＨｅｌｌｏメッセージを受ける（Ｓ３００２）。ＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１はネットワーク上のデバイス検出を司るファンクションディスカバリプロバイダ３０２に属するプロバイダの１つである。クライアント２０１は、ネットワークプラグアンドプレイ機能を持つホストコンピュータである。
【００２２】
このあと、必要に応じてＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１はＧｅｔＭｅｔａｄａｔａメッセージ（図１６参照）をプリンタ３０１に送信する。それを受信したプリンタ３０１はＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅに従って、自身のデバイス情報が入ったメタデータを含むＧｅｔＭｅｔａｄａｔａ  Ｒｅｓｐｏｎｓｅメッセージを返信する。メタデータにはデバイスＩＤやモデル名、製造会社名、デバイスのＵＲＬアドレス、ＰＤＬ情報などが入っている。図１７にデバイス情報の一例を示す。図１７のデバイス情報には、モデル名１７０３、製造会社名１７０２、デバイスのＵＲＬアドレス１７０１が記述されている。このほか、デバイスにより提供される機能情報情報としてＰＤＬ情報が含まれる場合もある。また、ＰＤＬ情報は、デバイス情報とは別に、機能情報情報としてデバイスから取得されても良い。
【００２３】
すでにネットワークに接続されているＷＳＤ対応デバイスをクライアント２０１が探索する場合は、クライアント２０１は、一定のタイミングでＰｒｏｂｅメッセージ（図１４参照）をマルチキャストでネットワークに送信する。一定のタイミングとは、たとえばホストコンピュータの起動時、ユーザが探索を命じたとき、一定のポーリング間隔などである。Ｐｒｏｂｅを受信したプリンタ３０１は、応答のメッセージとしてＰｒｏｂｅＭａｔｃｈ（図１５参照）をユニキャストでホストコンピュータに送信し、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１がこれを受信する。
【００２４】
図１３にＰｒｏｂｅから始まるデバイス情報の収集シーケンスを示す。クライアント２０１はまずＰｒｏｂｅメッセージ１３０１をマルチキャストでネットワークに送信する。Ｐｒｏｂｅメッセージには、そのメッセージがプローブであることを示すメッセージＩＤ１４０１（図１４）や、探索するデバイスのタイプを示すデバイスタイプ１４０２が含まれる。本例では、探索の対象はプリンタであるので、図１４のデバイスタイプ１４０２には、プリンタを示す「ＰｒｉｎｔＢａｓｉｃ」と記述されている。
【００２５】
Ｐｒｏｂｅ１４０１を受信したプリンタ３０１は、ＰｒｏｂｅＭａｔｃｈメッセージ１３０２をクライアント２０１に応答する。図１５に示すＰｒｏｂｅＭａｔｃｈメッセージの例には、デバイスのアドレス１５０１、デバイスのタイプ１５０２、バージョン情報１５０３等が含まれている。
【００２６】
クライアント２０１は、ＰｒｏｂｅＭａｔｃｈメッセージで示されるデバイスを宛先として、図１６に示すＧｅｔＭｅｔａｄａｔａメッセージ１３０３をプリンタ３０１に送信する。それを受信したプリンタ３０１は、デバイス情報が入ったメタデータを含むＧｅｔＭｅｔａｄａｔａ  Ｒｅｓｐｏｎｓｅメッセージ１３０４をクライアント２０１に送信する。図１３のＰｒｏｂｅおよびＰｒｏｂｅＭａｔｃｈメッセージを、デバイスからのＨｅｌｌｏメッセージに置換すれば、Ｈｅｌｌｏから始まるデバイスの探索手順となる。
【００２７】
なおここではＷＳＤ機能情報を持ったデバイスからのデバイス情報の応答を記述したが、ＵＰｎＰ機能情報を持ったデバイスの場合は、ＳＳＤＰプロバイダ３０２２が各メッセージを受ける。また、ファンクションディスカバリプロバイダ３０２はプロトコルごとにプロバイダを持つことができるため、他のプロトコルであれば他のプロバイダが送受信の処理を行うことも自明である。
【００２８】
図３に戻って説明を続ける。ＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１は、デバイスを検出したら、ファンクションディスカバリクライアント３０３にその旨を通知する（Ｓ３００３）。ファンクションディスカバリクライアント３０３は検出したデバイスを列挙し、上位のプラグアンドプレイマネージャ３０４にデバイス情報とともに通知する（Ｓ３００４）。もちろんこの段階で、図１３に示したようにデバイス情報も取得されている。デバイスの列挙は、たとえば検出されたデバイス名（デバイスＩＤ）をリスト化した情報（デバイスリスト）を作成して保存することで実現される。ファンクションディスカバリの詳細な動作については、図７〜図１２等を参照して後述する。
【００２９】
プラグアンドプレイマネージャ３０４は、ファンクションディスカバリクライアント３０３から取得したデバイス情報と作成されたデバイスリストとを元に、通常はクラスインストーラ３０６を呼び出す（Ｓ３００７）。クラスインストーラ３０６によってデバイスを利用するために必要なデバイスドライバのインストールを行う。クラスインストーラ３０６はデバイスの種類（クラス）を判定し、そのデバイスのインストールを行うためにドライバデータベース３０７にアクセスする。しかし、ここではデバイスの種類がプリンタであるので、クラスインストーラ３０６を呼び出す前に、プラグアンドプレイマネージャ３０４は、まずスプーラ３０５に対して新たなプリンタポートを作成するようメッセージを送る。スプーラ３０５は、プリンタドライバがプリンタ３０１に出力するためのプリンタポートを作成する。その際、スプーラ３０５は、ネットワークデバイス用のポートモニタであるＮＣＤポートモニタ３０５１とプリンタポートとを関連づけ、プラグアンドプレイマネージャ３０４に返す（Ｓ３００６）。作成されるプリンタポートがＮＣＤポートモニタ３０５１と関連づけられるのは、プリンタ３０１がＷＳ−Ｄｉｓｃｏｖｅｒｙによって検出されたネットワークデバイスだからである。その後、プラグアンドプレイマネージャ３０４は、クラスインストーラ３０６を呼び出す。
【００３０】
クラスインストーラ３０６は、検出されたデバイスのデバイス情報に含まれるデバイスＩＤに対応するハードウェアＩＤが記述されたインストールインフォメーションファイル（ＩＮＦファイル）を、ドライバデータベース３０７から検索する。なお、ＩＮＦファイルとはデバイスドライバをインストールすると共にホストコンピュータの記憶部に記憶されるファイルである。ＩＮＦファイルは、デバイスドライバをインストールすると識別情報を含んだファイル名と拡張子「.ＩＮＦ」という形式にて保持される。例えば、最初にインストールされたデバイスドライバのＩＮＦファイルは「ＯＥＭ１.ＩＮＦ」という形式にて保存される。そして、次にインストールされたデバイスドライバのＩＮＦファイルは「ＯＥＭ２．ＩＮＦ」という形式にて保存される。そして、このＩＮＦファイルには、デバイスドライバの機能情報（例えばページ記述言語：ＰＤＬともいう）等が含まれる。よって、このＩＮＦファイルを解析することでデバイスドライバの特徴を認識することが可能となる。また、このＩＮＦファイルは、デバイスドライバをアンインストールしても、該デバイスドライバと対応するＩＮＦファイルはそのままホストコンピュータの記憶部に残る。
【００３１】
デバイスＩＤに対応するハードウエアＩＤを持つデバイスは、同じデバイス（すなわち同じドライバを利用できるデバイス）と判定される。ハードウエアＩＤは、デバイスから取得したデバイスＩＤなどの情報を元にして、各カテゴリ（ＰＣＩ、ＵＳＢ、ＩＰバスなど）のエニュミレータが作成するＩＤである。たとえば、ハードウエアＩＤがデバイスＩＤを含むように構成されていれば、そのデバイスＩＤの部分が、検出したデバイスのデバイスと一致するハードウエアＩＤは、デバイスＩＤに対応するハードウエアＩＤである。このように、ハードウエアＩＤ作成時と同じ変換をデバイスＩＤに施すことで、ハードウエアＩＤにより示されるデバイスと、デバイスＩＤにより示されるデバイスとの対応を判定できる。
【００３２】
検索の結果、該当するＩＮＦファイルがみつかれば、そのＩＮＦファイルに記述されたドライバ３０８を、検出された新しいデバイスのデバイスドライバとしてインストールする（Ｓ３００８）。該当するＩＮＦファイルが見つからなければ、「ハードウェアの追加ウィザード」のユーザインタフェースを表示する。ユーザはＵＩにしたがってドライバを選択する。選択されたドライバがインストールする（Ｓ３００９）。図３ではこの場合のドライバは外部メディア３０９から供給されてドライバデータベース３０７に複製、登録される。
【００３３】
＜ファンクションディスカバリ＞
次に図４のファンクションディスカバリについて説明する。ファンクションディスカバリは、ファンクションディスカバリクライアント３０３とファンクションディスカバリプロバイダ３０２の２つに分けられる。両者は共通のインタフェースであるファンクションディスカバリＡＰＩ４０２を介してデータのやりとりを行う。ファンクションディスカバリクライアント３０３は、ファンクションディスカバリプロバイダ３０２からの通知により、ファンクションディスカバリカテゴリ４０１が有する情報を元に動作を行う。本実施形態では、ファンクションディスカバリクライアント３０３には、「ネットワークデバイスの追加と削除」部３０３１と、ＩＰバスエニュミレータ３０３２に加えて、優先インストール部３０３３が存在する。優先インストール部３０３３にはさらに優先項目テーブル３０３３ａが含まれる。ネットワークデバイスの追加と削除部３０３１は、オペレーティングシステムが一般的には標準で備えている。たとえばウインドウズ（登録商標）ＯＳには備えられている。
【００３４】
ファンクションディスカバリプロバイダ３０２により受信されたデバイス情報は、ファンクションディスカバリクライアント３０３に渡される。そのデバイス情報に基づいてファンクションディスカバリカテゴリ４０１の検出デバイスリスト４０１１に格納される。
【００３５】
ユーザがコントロールパネルから「ネットワークデバイスの追加と削除」機能を選択すると、ネットワークデバイスの追加と削除部３０３１により図５のユーザインタフェース５０１が表示される。ネットワークデバイスの追加と削除部３０３１は、検出デバイスリスト４０１１に保存された情報（デバイスリスト）を基に、図５のユーザインタフェースのデバイスリストビュー５０２を表示する。デバイスリストビュー５０２には、デバイス名およびデバイスの状態が含まれる。また、デバイスリストビュー５０２から選択されたデバイスについて、プロパティ情報５０２が表示可能である。ユーザインタフェース（ＵＩ）５０１に列挙されたデバイスは、現在ネットワーク上で発見されたデバイスを示している。ユーザはデバイスリストビュー５０２から使用したいデバイスを選択し、追加ボタン５０４を押す。このときに選択されているデバイスに対応するデバイス情報が検出デバイスリスト４０１１から特定され、ファンクションディスカバリカテゴリ４０１の関連データベース４０１２に追加される。デバイス情報は、ファンクションディスカバリプロバイダ３０２が受信したメタデータのデバイス情報である。なお、図５にてデバイスを選択することなく後述の優先インストール機能を実行した場合は、ネットワーク上で発見された全てのデバイスのデバイス情報が関連データベース４０１２に登録される。
【００３６】
一方削除ボタン５０５が押されると、そのとき選択されているデバイスのデバイス情報を関連データベース４０１２から削除する。あくまで関連データベース４０１２から削除するのみなので、ユーザインタフェース５０１上にはそのデバイスは表示されている。更新リストボタン５０６が押されると、Ｐｒｏｂｅメッセージから始まるデバイス探索手順の再試行を行うことが、ファンクションディスカバリプロバイダ３０２のＷＳ−Ｄｉｓｃｏｖｅｒｙプロバイダ３０２１に通知される。そして再度Ｐｒｏｂｅメッセージがネットワークにマルチキャストされてデバイスの探索が行われる。
【００３７】
ＩＰバスエニュミレータ３０３２は、ファンクションディスカバリカテゴリ４０１の関連データベース４０１２に登録された情報を基にデバイスを列挙して、列挙したデバイスの情報（デバイスリスト）を作成する。ＩＰバスエニュミレータ３０３２は、それを上位のプラグアンドプレイマネージャ３０４に通知する。プラグアンドプレイマネージャ３０４は、通知されたデバイスリストに基づいてデバイスドライバをインストールする。なお、このときにプラグアンドプレイマネージャ３０４に通知されるデバイスリストは、後述する図７〜図１１の処理で特定された機能情報（ＰＤＬ）情報に基づいて生成される。したがって、ネットワークプラグアンドプレイによるドライバのインストールの対象となるデバイスは、ネットワークで検出された全てのデバイスではない。ネットワークプラグアンドプレイの対象となるデバイスは、図７〜図１１の処理を経て関連データベース４０１２に登録されたデバイスである。
【００３８】
＜優先インストール機能＞
次にファンクションディスカバリクライアントの優先インストール部３０３３の機能を図６のユーザインタフェースと図７のフローチャートに沿って説明する。優先インストール機能とは、指定された基準にしたがって機能情報優先機能情報を選択し、選択された優先機能情報に対応するドライバに限ってインストールするという機能である。なお、以下の説明では、ドライバをインストールする対象をプリンタとして説明している。しかし、プリンタ以外のデバイスであっても、複数の機能情報を提供するデバイスであって、各機能情報のためにドライバが必要とされるデバイスについては、プリンタと同様に本発明が適用可能である。
【００３９】
この優先インストール部３０３３の機能が本実施形態の中心となる。優先インストール部３０３３は、図６のようなユーザインタフェースを持つ。すなわち図６（Ａ）のユーザインターフェース６０１を介してユーザ（操作者）との間で入出力を行う。ユーザは優先インストール３０３３のユーザインタフェース６０１を起動する。たとえば、図５のユーザインターフェース５０１の中に優先インストール管理用のボタンを用意し、それが押された場合に図６のユーザインターフェース６０１を表示する。ユーザは、図６のユーザインターフェース６０１上で、優先設定リスト６０１１から、機能情報インストールするドライバを決定する際の基準となる項目（基準項目と呼ぶ。）を選択する。つまり、図６（Ａ）のユーザインターフェースを用いて、インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する。なお、優先インストール部３０３３は、後述する図７の処理にてインストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から設定された基準項目に基づいて機能情報を特定する処理を実行する。たとえば、ネットワーク上で検出したプリンタが複数種類のＰＤＬをサポートしているとする。そのプリンタのデバイス情報には、各ＰＤＬの情報（ＰＤＬ情報）がプリンタの提供する機能情報機能情報情報として含まれる。機能情報をクライアントが利用するためには、機能情報に対応したデバイスドライバがインストールされる必要がある。すなわち、ユーザは使用するＰＤＬが１つであったとしても、検出されたプリンタが複数のＰＤＬをサポートしているとのデバイス情報から生成されたデバイスリストをプラグアンドプレイマネージャ３０４に通知する。これにより、プラグアンドプレイマネージャ３０４は、該プリンタがサポートする全てのＰＤＬに対応するデバイスドライバをインストールする。つまり、ユーザにとっては不必要なデバイスドライバまでもインストール対象となる。そこで、そのような場合に、選択された基準項目に付された優先順位にしたがってドライバがインストールされる。図６（Ａ）の例では、優先設定リスト６０１１には、「最も多くインストールしたドライバ」、「現在インストール済みドライバ」がある。さらに、優先設定リスト６０１１には、「最近インストールしたドライバ」、「現在使用しているアプリケーションに最適のドライバ」、「ネットワーク負荷をかけないドライバ」という計５つの基準項目が、選択肢として含まれている。
【００４０】
選択された基準項目は、図６（Ｂ）に示す基準項目テーブル３０３３ａに保存される。優先項目テーブル３０３３ａには、基準項目毎に、項目名６１１と判断順位６１２とが対応付けられて保存されている。項目名は図では便宜的に名称で示したが、プログラムにより読み取り可能なＩＤであれば、記号等であってもよい。判断順位は、当該優先設定項目が選択された順序にしたがって付されている。例えば、最初に選択された基準項目の判断順位が１となる。また、図６（Ｂ）の例では、０は選択されていないことを示す。なお、本例では、基準項目テーブル３０３３ａに登録されていない項目には、判断順位が０の基準項目も含まれるものとして説明する。
【００４１】
図７は、優先インストール機能を実行する際のフローチャートである。なお、本願に記載のフローチャートにおける各処理はホストコンピュータのＣＰＵ１０１によって実行される。さて図７において、優先インストール部３０３３は、ユーザによってユーザインターフェース６０１の優先リスト６０１１に含まれる基準項目から判断順位を登録するために選択された基準項目を認識する。そして、優先インストール部３０３３は、選択された基準項目の順位を基準項目テーブル３０３３ａに登録する（ステップ７０１）。複数の基準項目を選択して、各項目を順序づけしてドライバの優先順位を決定したい場合は、基準項目を選択して追加ボタンを押す操作を繰り返す。このようにして項目を追加すると、選択された基準項目は順位付けされた状態で順番に判断順位リスト６０１２に列挙される。削除ボタンを押すと判断順位リストから、そのときに選択されていた基準項目が削除される。基準項目の候補は、あらかじめ優先インストール部３０３３が保持している。例えば前述した図６（Ｂ）の基準項目テーブル３０３３ａに基準項目の項目名６１１を登録しておき、それを優先インストール部３０３３が保持する。そして、判断順位リスト６０１２に追加された基準項目の判断順位欄６１２に、追加された順序を登録する。これによって、選択された基準項目と判断順位とが優先インストール部３０３３の基準項目テーブル３０３３ａに登録できる。
【００４２】
ユーザインタフェース６０１を閉じると判断順位リストが決定される。すなわち基準項目テーブル３０３３ａに判断順位が登録される。次に優先インストール部３０３３は、基準項目テーブル３０３３ａに判断順位が登録されているか判断する（ステップ７０２）。なお、判断順位として０が登録されている場合、優先インストール部３０３３は、判断順位が登録されていないものと判断する。したがって、すべての項目の判断順位が０であれば判定は「いいえ」であるからステップ７０１に分岐する。
【００４３】
ひとつでも判断順位が設定された基準項目が基準項目テーブルに登録されていれば、優先インストール部３０３３は、まず判断順位リスト６１２において先頭順位が登録されている基準項目に着目する（ステップ７０３）。すなわち、基準項目テーブル３０３３ａに登録された判断順位が１の基準項目に着目する。そして優先インストール部３０３３は、着目した基準項目についてホストコンピュータの情報を調査し、基準項目に合致するドライバ（すなわちそのドライバが対応する機能情報とも言える）を特定する（ステップ７０４）。つまり、優先インストール部３０３３は、複数の基準項目のうち登録された順位に従って基準項目に着目する。そして、優先インストール部３０３３は、ＷＳＤ機能を用いた認識機能により認識された周辺機器に対応するデバイスドライバをインストールする際に、着目された基準項目に基づいて機能情報を特定する。
【００４４】
優先インストール部３０３３は、ステップ７０４により特定されたデバイスドライバに対応するＰＤＬ（機能情報）を判定する（ステップ７０５）。詳細には、優先インストール部３０３３が、コンピュータに保持されているデバイスドライバのインストール履歴情報を認識する。そして、優先インストール部３０３３は、認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報（例えばＰＤＬ）を解析する。そして、優先インストール部３０３３は、インストールの対象となる機能情報を特定する。ステップ７０５の処理により、機能情報（例えばＰＤＬ）を決定できたなら、この機能情報（例えばＰＤＬ）に対応するデバイスドライバをインストールする。そのために、優先インストール部３０３３は、インストールするドライバに関する情報（たとえばＰＤＬ機能情報情報）をファンクションディスカバリカテゴリ４０１の関連データベース４０１２に追加する。例えばプリンタが複数種類のＰＤＬをサポートしている場合、優先インストール部３０３３は、特定された機能情報（例えばＰＤＬ）に基づいて、周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する。つまり、特定された機能情報と対応するデバイスドライバを複数種類のデバイスドライバから検出して、インストールすべきドライバとして決定する。優先インストール部３０３３は、複数の機能情報（たとえば複数種類のＰＤＬへの対応）を備えたプリンタについては、インストールすると決定されたドライバに対応する機能情報情報（たとえばドライバが対応するＰＤＬであり、優先機能情報情報と呼ぶ。）以外の機能情報情報を削除する（ステップ７０６）。すなわち、図５のＵＩ５０１にて選択されたデバイスのデバイス情報が関連データベース４０１２に登録される。ここで、選択されたデバイスが複数のＰＤＬをサポートする場合、関連データベース４０１２には、該デバイスがサポートするＰＤＬに対応する数のデバイスドライバが登録される。この状態で作成されたデバイスリストをプラグアンドプレイマネージャ３０４に通知すると、全てのデバイスドライバがインストールされてしまう。しかしながら、図７の処理を実行することで、ＵＩ５０１にて選択されたデバイスが複数のＰＤＬをサポートしていたとしても、Ｓ７０５にて特定されたＰＤＬに対応するデバイスドライバ以外は関連データベース４０１２から削除される。つまり、優先インストール部３０３３は、選択されたプリンタが複数のＰＤＬを搭載していれば、そのＰＤＬのみしか搭載していないプリンタのようにデバイス情報を書き変える。また、インストールすると決定されたドライバが対応するプリンタ以外のデバイス情報は、関連データベース４０１２から削除する。たとえば、プリンタが持つＰＤＬがすべて優先する（すなわちインストールすると決定された）ＰＤＬと一致しない場合は、そのプリンタのデバイス情報を関連データベース４０１２から削除する。なお、ドライバと機能情報とを対応付けるための情報はデバイス情報に含まれている。複数の機能情報を提供するデバイスについては機能情報毎に、機能情報とドライバとを対応付ける情報が含まれる。そして、ユーザインターフェースを終了する（７０６）。
【００４５】
この後、ファンクションディスカバリクライアント３０３のＩＰバスエニュミレータ３０３２が、ファンクションディスカバリカテゴリ４０１の関連データベース４０１２に登録されたデバイスを列挙して、プラグアンドプレイマネージャに渡す。優先インストール３０３３がステップ７０６において関連データベース４０１２を変更したことにより、インストールされると決定されたドライバが対応していないプリンタのデバイス情報は、プラグアンドプレイマネージャ３０４に渡されない。したがって、プラグアンドプレイマネージャ３０４は、プラグアンドプレイ機能により、図７の処理により特定されたＰＤＬに対応するドライバをインストールする。詳細には、プラグアンドプレイマネージャ３０４は、図７の７０５にて決定されたインストールすべきデバイスドライバをインストールすべく制御する。つまり、プラグアンドプレイマネージャ３０４は、オペレーションシステムに対して特定された機能情報に対応するデバイスドライバをインストールするよう指示する。そして、図７の処理により特定されたＰＤＬに対応しないドライバインストールされない。これにより、オペレーティングシステムの持つネットワークプラグアンドプレイシステムを変更することなく、ユーザが所望とするＰＤＬに対応するドライバを指定してプラグアンドプレイによる自動インストールをすることができる。
【００４６】
たとえば、従来のネットワークプログラムグランドプレイ機能では、複数のＰＤＬを搭載しているプリンタについては、各ＰＤＬに対応するドライバがインストールされる。しかし、本実施形態では、インストールするドライバを選択するための基準に沿ってドライバが選択されるので、その基準を満たすＰＤＬのドライバのみがインストールされる。
【００４７】
一方、インストールするドライバを決定できなかった場合には、基準項目テーブル３０３３ａにまだ判断されていない基準項目が残っているか判定する（７０８）。残っていれば、基準項目テーブル３０３３ａから次の判断順位を持つ項目を選択する（７０７）。そして、選択した基準項目に着目し、その項目内容に従ってホストコンピュータの情報を調査し、ドライバを決定する（７０４）。つまり、着目された基準項目に基づいて機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返す。もし、ステップ７０８で、判断していない基準項目が基準項目テーブル３０３３ａに残っていないと判定された場合は、「優先するＰＤＬを見つけられませんでした」とメッセージをユーザインターフェースに表示する。そして、優先インストール部３０３３は、図７の処理を終了する。この場合は、通常のネットワークプラグアンドプレイと同等に動作する。
【００４８】
このように、優先インストール部３０３３は、クライアントがＰｒｏｂｅメッセージを発行することでネットワーク上から探索された（すなわち認識された）デバイスにインストールするドライバを選択する。そして、選択されたドライバを特定するための情報をプラグアンドプレイマネージャに引き渡すために、デバイス情報を加工する。
【００４９】
また、デバイスがＨｅｌｌｏメッセージを発行することで認識されたデバイスにインストールするドライバも、基準項目に適合するものが選択されてインストールされる。ただし、この場合には、ＰｎＰによりドライバがインストールされる対象は新たに認識されたデバイスに限られる。
【００５０】
＜優先ドライバの決定＞
次に、図８乃至図１２を参照して、図７のステップ７０４の詳細を説明する。
なお、上述したように本願は、ユーザの意図とは関係なくネットワークに接続されているプリンタに関連するドライバが自動インストール処理されることにより、ホストコンピュータのメモリが浪費してしまうという点を課題としている。さらに、本願は、１つのデバイスに対して複数のデバイスドライバがインストールされることもあり、ユーザが実際にデバイスドライバを選択する際に、誤ったデバイスドライバを選択する恐れについても課題としている。本願は、この課題を解決するためにユーザの趣向に合わせた機能情報（例えばＰＤＬ）を特定し、特定された機能情報（例えばＰＤＬ）に対応するデバイスドライバを自動インストールすることを目的とする。そのため、本願ではホストコンピュータにおけるデバイスドライバのインストール履歴情報に基づいて、ユーザが所望とする機能情報（例えばＰＤＬ）を特定する。例えば、履歴情報を参照して、最も多くインストールされているＰＤＬを特定することができれば、ユーザはそのＰＤＬを好んで使用してきたと想定できる。そのため、ユーザの趣向を反映したデバイスドライバの自動インストールを実現できる。なお、本願に記載のインストール履歴情報とは、自動インストールを実行する時点よりも過去および現在（自動インストールを実行する時点）においてインストールされているデバイスドライバについての情報を保持しているとする。つまり、プラグアンドプレイマネージャ３０４が、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報である。また、本願に記載のインストール履歴情報とは、自動インストールを実行する時点よりも過去にインストールされたことのあるデバイスドライバについての情報である。つまり、プラグアンドプレイマネージャ３０４が、デバイスドライバをインストールすべく制御する時点においてインストールされたことのあるデバイスドライバについての情報でもある。さらに、インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前またはデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報でもある。
ステップ７０４は、着目している基準項目によって異なる処理となるので、まず着目基準項目が何かが判定され、その判定結果に応じて図７乃至図１２のいずれかで説明する処理が実行される。
【００５１】
（最多インストール基準）
図８は、着目する基準項目が、「もっとも多くインストールしたドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、過去にクライアントコンピュータにインストールされたデバイスドライバが対応した機能情報のうち、最多の機能情報と同種の機能情報に対応するデバイスドライバを選択する、というものである。つまり、図８のフローチャートは、インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を基準項目に対して設定する。そして、優先インストール部３０３３は、過去に最も多くインストールされた機能情報に対応するデバイスドライバを自動インストールする。図８の例では、ステップ８０２によって対象デバイスをプリンタに限定し、機能情報をＰＤＬに限定しているが他のデバイスや機能情報であっても図８の手順を適用できる。その拡張は、ステップ８０２を削除し、図中の「ＰＤＬ」を機能情報と読み替えれば容易に実現できる。これは図９，図１０についても同様である。
【００５２】
さて、過去にインストールしたドライバは、オペレーティングシステムによって、クラスインストーラ３０６がインストールした順番に番号をＩＮＦファイル名称につけてドライバデータベース３０７に保持されている。これはたとえばウインドウズ（登録商標）において実現されている。優先インストール部３０３３は、「もっとも多くインストールしたドライバ」が着目する基準項目であれば、一番番号の大きい（つまり最後にインストールされた）ＩＮＦファイルをドライバデータベース３０７から取得する（８０１）。
【００５３】
次にＩＮＦファイルのＣｌａｓｓエントリを見て、優先インストール部３０３３は、デバイスの種類がプリンタであるかどうかを判定する（８０２）。Ｃｌａｓｓエントリにはデバイスの種類を示す情報が記録されている。優先インストール部３０３３が、現在判定対象としているＩＮＦファイルがプリンタであると判定した場合には、ＩＮＦファイルのＤｅｓｃｒｉｐｔｉｏｎからＰＤＬ名称を検索する（８０３）。ＰＤＬ名称が見つかれば、そのＰＤＬに対応するカウンタに１加算する。初めて現れたＰＤＬ名称であればＰＤＬに対応するカウンタ値を１とする。こうして、優先インストール部３０３３は、ＰＤＬの種類毎に対応するドライバの数をカウントする（８０４）。
【００５４】
優先インストール部３０３３は、取得していないＩＮＦファイルがドライバデータベースに有るか判定し、あれば次のＩＮＦファイルを取得して（８０８）、また同じ処理を繰り返す。ＰＤＬ名称には、たとえばPostscript（登録商標）等がある。ＩＮＦファイルのＤｅｓｃｒｉｐｔｉｏｎにはそのような名称が含まれているので、ステップ８０３では、優先インストール部３０３３は、あらかじめ用意しておいたＰＤＬ名称をＩＮＦファイルから検索する。
【００５５】
すべてのＩＮＦファイルを検索してそれに含まれるＰＤＬをカウントし終わったら、優先インストール部３０３３は、一番多かった（すなわちカウンタ値が最大の）ＰＤＬが一意に決定できるか判定する。一意に決定できれば、優先インストール部３０３３は、カウンタ値が最大のＰＤＬを優先ＰＤＬ（優先機能情報）として決定する。そして優先インストール部３０３３は、決定されたＰＤＬの識別名など、ドライバを特定するための情報（優先機能情報情報）をメモリ等に保存する（８０７）。一意に決定できない場合には、優先ＰＤＬを見つけられなかったものとして、その旨を示す情報を保存して終了する（８０９）。ステップ８０７で保存された優先機能情報情報や、ステップ８０９で保存した情報が図７のステップ７０５に引き渡されて、判定の材料となる。
【００５６】
図８の処理を実行することにより、過去に最も多くインストールされたＰＤＬ（機能情報）を特定し、該ＰＤＬに対応したデバイスドライバを特定してから自動インストールが実行される。上述したようにＩＮＦファイルは、対応するデバイスドライバがアンインストールされてもホストコンピュータの記憶部に残るため、過去にインストールされたデバイスドライバの履歴を反映した自動インストール処理を実現できる。
ここで、過去に最も多くインストールされたＰＤＬは、ユーザにとって使いなれたＰＤＬであり、これまでと変わらない出力処理を実現することが可能となる。このような基準項目を設定することでユーザの趣向に合ったＰＤＬに対応するデバイスドライバを特定して、インストールすることが可能となる。そのため、ユーザにとって不必要なデバイスドライバがインストールされることによるメモリの浪費を防止できる。さらに、ユーザにとって不必要なデバイスドライバがインストールされることにより、ユーザの意図しないＰＤＬにて印刷されることも防止できる。
【００５７】
（現在インストール基準）
図９は、着目する基準項目が、「現在インストール済みのドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、現在インストールされている各デバイスドライバの機能情報（例えばＰＤＬ）の中で最多の機能情報（例えばＰＤＬ）と同種の機能情報（例えばＰＤＬ）に対応するデバイスドライバを選択するものである。なお、上述した「最多インストール基準」が基準項目の場合、過去にインストールされたものが対象となるため、既にアンインストールされているデバイスドライバについてもカウントの対象となる。しかし、「現在インストール基準」が基準項目の場合、既にアンインストールされているデバイスドライバはカウント対象外である。つまり、図９は、インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報が基準項目に対して設定された場合に実行される。
【００５８】
ウインドウズ（登録商標）では、現在ホストコンピュータにインストールされているプリンタドライバは、印刷するためのデータを保持するプリントキューというオブジェクトに一つ一つ割り当てられている。そこでまず、優先インストール部３０３３は、すべてのプリントキューからプリンタドライバを列挙するために、オペレーティングシステムのＡＰＩであるＥｎｕｍＰｒｉｎｔｅｒｓ（）を呼び出す（９０１）。ここでひとつも列挙されなければプリンタキューが存在しない。そこで、優先インストール部３０３３は、現在プリントキューが存在するか判定する（９０２）。判定の結果、存在しなければ、優先するドライバすなわち「現在インストール済みのドライバ」に該当するドライバが見つけられなかったと判定できる。
【００５９】
プリントキューが存在すれば、次に、優先インストール部３０３３は、列挙されたプリンタドライバのうち先頭のプリンタドライバに着目する（９０３）。優先インストール部３０３３は、着目したプリンタドライバに対してそのドライバの能力を取得するためにオペレーティングシステムのＡＰＩであるＤｅｖｉｃｅＣａｐａｂｉｌｉｔｉｅｓ（）をＤＣ＿ＰＥＲＳＯＮＡＲＩＴＹの引数で呼び出す（９０５）。ＤＣ＿ＰＥＲＳＯＮＡＲＩＴＹは、ＰＤＬ名称を取得する機能である。優先インストール部３０３３は、ここで取得したＰＤＬ名称をカウントする（９０６）。すなわち、ＰＤＬ名称ごとにカウンタを設け、ステップ９０５で取得できた名称に対応するカウンタに１を加算する。まだ列挙したプリンタドライバが残っているときは（９０７）、優先インストール部３０３３は、現在の着目プリンタドライバの次のプリンタドライバに着目する（９０４）。そしてＰＤＬ名称取得を行う。
【００６０】
優先インストール部３０３３は、列挙したプリンタすべてのＰＤＬをカウントし終わった場合（９０７−いいえ）、カウント値が最大となるＰＤＬを調査する（９０８）。一番多かったＰＤＬが一意に決定できれば、優先インストール部３０３３は、そのＰＤＬを優先するＰＤＬとして決定し、そのＰＤＬすなわち機能情報を特定するための優先機能情報情報を保存する（９０９）。そうでなければ見つけられなかったものとして、その旨を示す情報を保存して終了する終了する（９１０）。
【００６１】
図９に記載の処理を実行することにより、現在インストールされているデバイスドライバの中で最も多くインストールされているＰＤＬを特定することができる。例えば、図１８の場合、ＰＤＬ１に対応するデバイスドライバが最も多くインストールされている。よって、ＰＤＬ１が、ユーザが最も必要とするＰＤＬであると想定できる。優先インストール部３０３３は、複数種類のデバイスドライバからＰＤＬ１に対応するデバイスドライバに特定してインストール処理が実行される。以上のように、図９の処理を実行することで、インストール処理を実行する時点でのユーザの趣向にあったＰＤＬを特定する。そして、特定されたＰＤＬに対応するデバイスドライバが自動インストール対象となり、ユーザの趣向にあったデバイスドライバに限定してインストールすることが可能となる。よって、ユーザにとって不必要なデバイスドライバがインストールされることによるメモリの浪費を防止できる。さらに、ユーザにとって不必要なデバイスドライバがインストールされることにより、ユーザの意図しないＰＤＬにて印刷されることも防止できる。
【００６２】
また、図９では現在インストールされている各デバイスドライバが対応する機能情報（例えばＰＤＬ）の中で最も多い機能情報（例えばＰＤＬ）と同種の機能情報（例えばＰＤＬ）に対応するデバイスドライバを選択する処理と記載したがこれに限る必要はない。現在インストールされている各デバイスドライバが対応する機能情報（例えばＰＤＬ）を保持し、これら保持された機能情報（例えばＰＤＬ）に対応するデバイスドライバを自動インストール対象としても良い。この処理により、例えば図１８のような結果が得られたとする。この場合、ＰＤＬ１、ＰＤＬ２、ＰＤＬ３の３種類のＰＤＬドライバが現在インストールされている。ここで、現在インストールされているＰＤＬは、ユーザが必要としていると考えられる。よって、優先インストール部３０３３は、インストール処理を実行する時点において、ユーザが必要とする３種類のＰＤＬに対応するデバイスドライバをインストールすることが可能となる。よって、ユーザは用途にあった出力処理を実現することが可能となる。
【００６３】
（最近インストール基準）
図１０は、着目する基準項目が、「最近インストールしたドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、クライアントコンピュータに最近インストールされたデバイスドライバが対応する機能情報と同種の機能情報に対応するデバイスドライバを選択する、というものである。つまり、図１０、インストール履歴情報において、コンピュータに最後（最近）にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報が基準項目に対して設定された場合に実行される。
【００６４】
前述したように過去にインストールしたドライバは、オペレーティングシステムによって、クラスインストーラ３０６がインストールした順番に番号をＩＮＦファイル名称につけてドライバデータベース３０７に保持されている。そこで優先インストール部３０３３は、まず一番番号の大きい（つまり最後にインストールされた）ＩＮＦファイルをドライバデータベース３０７から取得する（１００１）。次に優先インストール部３０３３は、ＩＮＦファイルのＣｌａｓｓエントリを見て、デバイスの種類がプリンタであるかどうかを判定する（１００２）。プリンタだった場合は、優先インストール部３０３３は、ＩＮＦファイルのＤｅｓｃｒｉｐｔｉｏｎからＰＤＬ名称を検索する（１００３）。ＰＤＬ名称が見つかれば（１００４）、優先インストール部３０３３は、そのＰＤＬを優先するＰＤＬとして決定し、そのＰＤＬすなわち機能情報を特定するための優先機能情報情報を保存する（１００５）。また、１００４の処理により、優先インストール部３０３３が、ＰＤＬ名称を見つけることができない場合（１００４−Ｎｏ）、次に番号の大きいＩＮＦファイルを取得して（１００６）、また同じ処理を繰り返す。すべてのＩＮＦファイルを検索して見つけられなかったら、そこで終了する。この場合には、該当するドライバはない旨を示す情報を保存して図７のステップ７０５に引き渡す（１００８）。
【００６５】
図１０の処理を実行することにより、ユーザが最近インストールしたデバイスドライバに対応するＰＤＬを特定して、該ＰＤＬに対応するデバイスドライバのみを自動インストール対象とすることができる。つまり、インストール処理を実行する時点における最新のユーザの趣向を反映したＰＤＬを特定して、デバイスドライバをインストールすることが可能となる。
【００６６】
（最適アプリケーション基準）
次に着目する基準項目が、「現在使用しているアプリケーションに最適なドライバ」の場合のＰＤＬ検出方法を図１１のデータベース図とともに説明する。図１１のデータベースは、デバイスドライバと基準項目の値との関連を示す関連情報であるともいえる。これは図１２についても同様である。
【００６７】
本例の場合の手順は非常に単純であるので、手順のフローは省略する。優先インストール部３０３３は、アプリケーション名とそのアプリケーションに最適なＰＤＬ名称をテーブルに持つ図１１のようなアプリケーション別ＰＤＬデータベースをあらかじめ保持している。優先インストール部３０３３は、現在インストールされているアプリケーションを、ハードディスクなどの外部記憶装置をスキャンして調査する。たとえばオペレーティングシステムが管理するレジストリなどに、インストールされたアプリケーション名が登録されているので、それを取得できる。そこで取得した名称で図１１のデータベースを検索する。検索の結果ヒットすれば、すなわちデータベースに登録されたアプリケーションがインストールされていれば、データベース１１０１において、そのアプリケーション名に対応するＰＤＬ名ごとにカウントを行う。これを、インストールされているアプリケーションすべてについて繰り返す。すべてのアプリケーションについて対応するＰＤＬをカウントし終えたなら、最大のカウント値のＰＤＬが優先するＰＤＬである。そこで、カウンタ値が一番大きかったＰＤＬが一意に決定できるか判定する。そして一意に決定できれば、そのＰＤＬを優先するＰＤＬとして決定し、そのＰＤＬすなわち機能情報を特定するための優先機能情報情報を保存する。そうでなければ見つけられなかったものとして、該当するドライバはない旨を示す情報を保存して図７のステップ７０５に引き渡す。
【００６８】
（ネットワーク負荷基準）
次に、着目する基準項目が、「ネットワーク負荷をかけないドライバ」である場合のＰＤＬ検出方法を図１２のデータベース図とともに説明する。前述の４通りの基準では、優先機能情報であると決定されたＰＤＬに対応するドライバがプラブアンドプレイの対象として選択された。これに対してネットワーク負荷基準では、図１３に示すような手順で探索されたプリンタが対応するＰＤＬのドライバのうち、最もネットワークに負荷をかけないドライバがＰｎＰの対象として選択される。すなわち、プリンタによっては、異なる種類のＰＤＬのドライバがＰｎＰの対象とされる場合がある。本例ではネットワークの負荷はスプールファイルのサイズで示されている。
【００６９】
優先インストール部３０３３は、ある決まったサンプルデータを印刷したときに出力されるＰＤＬデータのスプールファイルサイズとそのＰＤＬ名称をテーブルに持つ図１２のようなデータベース１２０１をあらかじめ保持している。すなわち、データベース１２０１のスプールサイズは、各種類のＰＤＬにより必要とされるスプールファイルの比を表している。もちろん印刷するデータの内容により変動する可能性はあるので、サンプルデータは、各データタイプを、実印刷時の比率で含むようなデータであることが望ましい。
【００７０】
優先インストール部３０３３は、まず、ファンクションディスカバリカテゴリ４０１の関連データベース４０１２から、探索されたプリンタのデバイス情報を取得する。デバイス情報に含まれる機能情報情報を参照して、複数のＰＤＬを機能情報として持つプリンタを検索する。該当するデバイス情報があれば、そのＰＤＬ名称を、データベース１２０１内のＰＤＬリストと比較する。そして、そのデバイス情報に含まれるＰＤＬの中でもっともスプールサイズの小さいＰＤＬをデータベース１２０１から選択する。選択されたＰＤＬを表す情報が、優先機能情報情報として図７のステップ７０５に引き渡される。もしも一意に決められないときは、見つけられなかったものとして終了する。
【００７１】
以上、図７乃至図１２を参照して説明したように、ネットワークプラグアンドプレイによりデバイスドライバをインストールする際において、インストール履歴情報を用いて、優先する機能情報を一定の基準で選択する。そして、選択した機能情報に対応するドライバがコンピュータにインストールされる。このため、ネットワークに接続されたすべてのデバイスの全ての機能情報に対応したドライバがインストールされることを防止できる。特に本実施形態では、複数の機能情報として、複数種類のＰＤＬをサポートしたプリンタ（例えば複数種類のデバイスドライバと対応する周辺機器）と通信可能なコンピュータが、その全ＰＤＬのドライバに対してインストール処理を実行しない。該一定基準で選択したＰＤＬのドライバをインストールする。このため印刷実行時に、ユーザの意図しないＰＤＬに対応したドライバにて印刷されることを防止でき、ユーザのドライバ選択の選択操作の向上に寄与する。このように、本願に記載の機能情報を特定する処理は、ネットワークに接続された周辺機器から所定のメッセージを取得し、複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に実行される。
【００７２】
さらにインストールするドライバを決定するための基準を利用者が指定できる。このため、利用者は最も自己の利用環境に適した基準を選択することで、インストールされるドライバを間接的に選択できる。
【００７３】
また、図８乃至図１２では、複数のＰＤＬを搭載したデバイスの機能を優先してインストールする仕組みを記述した。しかしこれはＰＤＬではなくてもよい。たとえば、マルチファンクションデバイスにおいて、ＦＡＸとプリンタとスキャナの機能を持っている場合で、ＦＡＸとプリンタのドライバのみインストールするような手法に置き換えてもよい。この場合ＰＤＬを、機能情報と置き換えればよい。デバイスが提供する機能情報は、ＧｅｔＭｅｔａｄａｔａメッセージによりデバイスから取得できる機能情報情報から特定できる。本実施形態では、機能情報情報はデバイス情報にふくまれるものと説明したが、機能情報情報がデバイス情報とは別のシーケンスで取得されるシステムであっても、本発明が適用できる。
【００７４】
以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではない。すなわち、本発明の本質を損なわない範囲であれば、実施形態の変形は可能である。
【００７５】
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７６】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【００７７】
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分っき加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態として、コンピュータを含むシステムの構成を説明するブロック図である。
【図２】本発明の一実施形態として、コンピュータとプリンタがネットワークで接続された、ネットワークプリンティング環境の簡略図である。
【図３】本発明の一実施形態として、ネットワークプラグアンドプレイの全体システム構成を説明するブロック図である。
【図４】本発明の一実施形態として、図４のネットワークプラグアンドプレイのうちファンクションディスカバリの部分を詳細にしたブロック図である。
【図５】本発明の一実施形態としての、ファンクションディスカバリの「ネットワークデバイスの追加と削除」のユーザインタフェースの一例を示す図である。
【図６】本発明の一実施形態としての、ファンクションディスカバリの「優先インストール」のユーザインタフェースの一例を示す図である。
【図７】本発明の一実施形態としての、優先インストールの処理フローを表したフローチャート図である。
【図８】本発明の一実施形態としての、優先インストールの優先設定項目のうち「もっとも多くインストールしたドライバ」の処理フローを表したフローチャート図である。
【図９】本発明の一実施形態としての、優先インストールの優先設定項目のうち「現在インストール済みドライバ」の処理フローを表したフローチャート図である。
【図１０】本発明の一実施形態としての、優先インストールの優先設定項目のうち「最近インストールしたドライバ」の処理フローを表したフローチャート図である。
【図１１】本発明の一実施形態としての、優先インストールの優先設定項目のうち「現在使用しているアプリケーションに最適なドライバ」のデータベース図である。
【図１２】本発明の一実施形態としての、優先インストールの優先設定項目のうち「ネットワーク負荷をかけないドライバ」のデータベースの一例を示す図である。
【図１３】本発明の一実施形態としての、Ｄｅｖｉｃｅ Ｐｒｏｆｉｌｅ  ｆｏｒ Ｗｅｂ  Ｓｅｒｖｉｃｅｓのメッセージシーケンス図である。
【図１４】本発明の一実施形態としての、ＳＯＡＰにおけるＷＳ−ＤｉｓｃｏｖｅｒｙのＰｒｏｂｅメッセージのサンプルを示す図である。
【図１５】本発明の一実施形態としての、ＳＯＡＰにおけるＷＳ−ＤｉｓｃｏｖｅｒｙのＰｒｏｂｅＭａｔｃｈメッセージのサンプルを示す図である。
【図１６】本発明の一実施形態としての、ＳＯＡＰにおけるＤｅｖｉｃｅ Ｐｒｏｆｉｌｅ  ｆｏｒ Ｗｅｂ  ＳｅｒｖｉｃｅｓのＧｅｔＭｅｔａｄａｔａメッセージのサンプルを示す図である。
【図１７】本発明の一実施形態としての、ＳＯＡＰにおけるＤｅｖｉｃｅ Ｐｒｏｆｉｌｅ  ｆｏｒ Ｗｅｂ  Ｓｅｒｖｉｃｅｓのメタデータメッセージのサンプルを示す図である。
【図１８】プリンタドライバとページ記述言語との対応関係の例を示す図である。
【符号の説明】
【００７９】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  入力Ｉ／Ｆ
１０５  外部記憶装置
１０５１  アプリケーションソフトウェア
１０５２  印刷関連プログラム
１０５３  プリンタドライバ
１０５４  オペレーティングシステム
【図１】
0004756988.tif 000002
【図２】
0004756988.tif 000003
【図３】
0004756988.tif 000004
【図４】
0004756988.tif 000005
【図５】
0004756988.tif 000006
【図６】
0004756988.tif 000007
【図７】
0004756988.tif 000008
【図８】
0004756988.tif 000009
【図９】
0004756988.tif 000010
【図１０】
0004756988.tif 000011
【図１１】
0004756988.tif 000012
【図１２】
0004756988.tif 000013
【図１３】
0004756988.tif 000014
【図１４】
0004756988.tif 000015
【図１５】
0004756988.tif 000016
【図１６】
0004756988.tif 000017
【図１７】
0004756988.tif 000018
【図１８】
0004756988.tif 000019