(57)【要約】【課題】ネットワークデバイスをインストールする際の、デバイス選択の労力や誤りを顕現し、不要なデバイスのインストールによる資源浪費を防止する。【解決手段】機能優先順位判定ユーティリティ１０２は、ＰｎＰコントローラ１０６により発見されたネットワークデバイスの性能情報を取得する。そしてその中から最も性能の優れたデバイスを、既にインストールされている同種のデバイスの性能情報と比較する。そして、発見されたデバイスの方が性能が高ければそれをインストールする。既存のデバイスの方が性能が高ければインストールしないが、一部機能において発見されたデバイスの方が優れていれば、インストールするか否かの決定はユーザに委ねられる。【選択図】図２
2008027006.tif 000002
【特許請求の範囲】
【請求項１】
接続された周辺デバイスを認識する認識機能を有するコンピュータにより、前記周辺デバイスを利用可能とするためのプログラムであって、
接続された周辺デバイスの性能情報を取得する取得手段と、
前記取得手段により取得した第１の周辺デバイスの性能情報と現在利用可能な第２の周辺デバイスの性能情報とを比較する比較手段と、
前記比較手段による比較の結果、前記第１の周辺デバイスの方がより高い性能を有する場合、当該周辺デバイスのデバイスドライバをインストールして該周辺デバイスを利用可能とするインストール制御手段と
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
周辺デバイスをネットワークから探索する探索手段を更に備え、
前記探索手段により検索された周辺デバイスが複数ある場合には、前記取得手段はそれら周辺デバイスそれぞれの性能情報を取得し、
前記比較手段は、前記取得手段により取得した複数の周辺デバイスのそれぞれの性能情報を互いに比較して、それらのうちより高い性能を有する周辺デバイスを前記第１の周辺デバイスとして、前記第２の周辺デバイスの性能情報と比較することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記性能情報には、複数種類の機能毎の性能を示す情報が含まれており、
前記比較手段は、各機能の優先順位の順に比較して、優先順位の高い機能について高い性能を持つ方の周辺デバイスを、より高い性能を持つ周辺デバイスと判定することを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記比較手段による各機能の優先順位は、予めユーザによって設定できることを特徴とする請求項３に記載のプログラム。
【請求項５】
前記インストール制御手段は、前記第１の周辺デバイスの方がより高い性能を有していなくとも、少なくとも１の機能において前記第２の周辺デバイスよりも優れている場合は、ユーザに前記第１の周辺デバイスのデバイスドライバをインストールするかどうかを問い合わせる手段を更に有し、
ユーザによる指示に応じて前記第１の周辺デバイスのデバイスドライバをインストールすることを特徴とする請求項３または４に記載のプログラム。
【請求項６】
前記インストール制御手段は、前記比較手段によって前記第１の周辺デバイスと前記第２の周辺デバイスとが同一の機種であると判定された場合は、周辺デバイスの接続ポートを切り替える手段を更に有することを特徴とする請求項１に記載のプログラム。
【請求項７】
前記性能情報には、当該周辺デバイスの位置を示す位置情報が含まれ、
前記インストール制御手段は、前記比較手段によって前記第１の周辺デバイスと前記第２の周辺デバイスとが同一の機能を有すると判定された場合は、前記第１の周辺デバイスの位置が、前記第２の周辺デバイスの位置よりも近ければ、前記第１の周辺デバイスのデバイスドライバをインストールことを特徴とする請求項１に記載のプログラム。
【請求項８】
前記インストール制御手段は、前記第１の周辺デバイスのデバイスドライバをインストールした後、前記第２の周辺デバイスのデバイスドライバをアンインストールする手段をさらに有することを特徴とする請求項１に記載のプログラム。
【請求項９】
接続された周辺デバイスを認識する認識機能を有する情報処理装置であって、
接続された周辺デバイスの性能情報を取得する取得手段と、
前記取得手段により取得した第１の周辺デバイスの性能情報と現在利用可能な第２の周辺デバイスの性能情報とを比較する比較手段と、
前記比較手段による比較の結果、前記第１の周辺デバイスの方がより高い性能を有する場合、当該周辺デバイスのデバイスドライバをインストールして該周辺デバイスを利用可能とするインストール制御手段と
を備えることを特徴とする情報処理装置。
【請求項１０】
接続された周辺デバイスを認識する認識機能を有する情報処理装置の制御方法であって、
取得手段が、接続された周辺デバイスの性能情報を取得する取得工程と、
比較手段が、前記取得工程により取得した第１の周辺デバイスの性能情報と現在利用可能な第２の周辺デバイスの性能情報とを比較する比較工程と、
前記比較工程による比較の結果、前記第１の周辺デバイスの方がより高い性能を有する場合、インストール制御手段が、当該周辺デバイスのデバイスドライバをインストールして該周辺デバイスを利用可能とするインストール制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークに対応した周辺装置、および該周辺装置を制御する、周辺デバイスを管理するためのプログラムおよび情報処理装置とその制御方法に関するものである。
【背景技術】
【０００２】
従来、ネットワーク上のクライアント装置からのサービス要求に応え、サービスを提供するサービス提供装置及び、サービス提供システムが知られている。例えば、インターネットによる通信の飛躍的な普及に伴い、ネットワーク対応型機器として、従来のパーソナルコンピュータ以外の種類の多様な機器が開発されている。例えば、ＰＤＡ、携帯電話等のユーザインタラクティブなデバイスや、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置や、テレビ、エアコン、冷蔵庫等の家電製品などに至るまでネットワーク対応が急速に進められている。なおＰＤＡとはＰｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅの略称である。
【０００３】
それに伴い、ネットワーク対応型デバイスを利用する上での利便性、簡易性を高めるために、サービスを提供するネットワークデバイスの探索、検索手段を提供する、さまざまなプロトコル、アーキテクチャが提案されている（たとえば特許文献１、２参照）。これらプロトコル、アーキテクチャでは、ネットワーク対応型デバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップも提供されている。
【０００４】
また、複数の企業、標準化団体が、ローカルな入出力デバイス対して適用されてきたプラグアンドプレイ機能を、ネットワークデバイスに対して拡張対応すべく、仕様策定作業を進めている。
【０００５】
例えば、マイクロソフト社が主体となってＵＰｎＰ（登録商標:非特許文献１参照）、およびＷＳＤ:Web Services for Devices (WS-Discovery/WS-MetadataExchange）の策定が進められている。これは、デバイスをネットワークに接続するだけでそのデバイスを使用可能とする、いわゆるプラグアンドプレイを実現するためのものである。
【０００６】
また、ビジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ（登録商標）、Ａｐｐｌｅ社が開発したＯＳ  ＸでサポートされるＲｅｎｅｄｚｖｏｕｓなどもある。
【０００７】
また、ネットワークプリンタのインストール方法として、特許文献３に記載されたような方法もある。この方法では、サーバがクライアントにインストールされているプリンタの情報を収集し、データベースからインストールできるプリンタをリストする。そのリストから管理者がプリンタを選択してインストールを行う。これによりユーザがインストール作業に費やす労力を軽減できる。
【特許文献１】特開2004-038956号公報
【特許文献２】特開2004-362594号公報
【特許文献３】特開2005-044000号公報
【非特許文献１】"UPnP(TM) Device Architecture" version1.0、２０００年６月８日（インターネットURL: http://www.upnp.org/download/UPnPDA10_20000613.htm）
【非特許文献２】"Web Service Dynamic Discovery(WS-Discovery)"、２００５年４月（インターネットURL: http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf）
【非特許文献３】"WS-MetadataExchange"、２０００年９月、マイクロソフト社（インターネットURL: http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-metadataexchange.pdf）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ネットワークプラグアンドプレイが普及することによって利便性が向上する一方で、ユーザが意図しない、必要としないネットワークデバイスのドライバ、アプリケーションがインストールされてしまうという弊害が生じる可能性がある。
【０００９】
例えば、ネットワークデバイスが新規にネットワークに接続されるたびに、パーソナルコンピュータのプラグアンドプレイ機能がそのデバイスを発見し、そのデバイスのドライバ、アプリケーションを自動的にインストールしてしまう。このインストールは、ユーザがそのデバイスを利用する意図を有するか否かに無関係に行われる。このことは、パーソナルコンピュータのハードウエア資源、特にメモリ資源をいたずらに消費する。それのみならず、セキュリティ上信頼できないソフトウエアが、ユーザが意識しないうちにインストールされてしまい、情報の破壊、漏洩といった深刻な被害につながる可能性がある。
【００１０】
また、ユーザには、現在使用しているプリンタより高性能のプリンタが新規に接続された場合はそのプリンタを利用したいが、使用しているプリンタより性能が低いプリンタについては、特に新規デバイスの通知の必要はないという要望がある。このようなケースにおいては、プラグアンドプレイでプリンタが発見される都度、そのプリンタが高性能かどうかをユーザが判断する作業に煩わされることになる。これはユーザに過度な負担を強いると共に、判断誤りの可能性を残すこととなっていた。
【００１１】
本発明は上記従来例に鑑みてなされたもので、上述の課題を解決することを目的とする。すなわちネットワークから発見された周辺デバイスの性能に基づいて、そのデバイスをインストールするか否かを決定し、ユーザの介入機会を減らした周辺デバイスを管理するためのプログラムおよび情報処理装置とその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため日本発明は以下の構成を備える。すなわち、接続された周辺デバイスを認識する認識機能を有するコンピュータにより、前記周辺デバイスを利用可能とするためのプログラムであって、
接続された周辺デバイスの性能情報を取得する取得手段と、
前記取得手段により取得した第１の周辺デバイスの性能情報と現在利用可能な第２の周辺デバイスの性能情報とを比較する比較手段と、
前記比較手段による比較の結果、前記第１の周辺デバイスの方がより高い性能を有する場合、当該周辺デバイスのデバイスドライバをインストールして該周辺デバイスを利用可能とするインストール制御手段としてコンピュータを機能させる。
【発明の効果】
【００１３】
本発明により、新規に発見された周辺デバイスのデバイスドライバのインストール時にユーザが介入する機会を減少できるので、ユーザの労力負担を軽減し、また、判断誤りを防止することができる。
【発明を実施するための最良の形態】
【００１４】
［第１実施形態］
以下、図面を用いて本発明の実施の形態について詳細に説明する。ただし、この実施の形態に記載されているプロトコルや数値などは特に特定的な記載がない限りはこの発明の範囲をそれらのみに限定する趣旨のものではない。
【００１５】
図１は本発明の実施の形態におけるネットワーク印刷システムにおいて、接続している１つのクライアントとひとつのネットワーク周辺デバイス（図１ではプリンタ）に注目したときのハードウエア構成を説明するブロック図である。図において、ホストコンピュータ１０００は、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備える。ＣＰＵ１はシステムバス４に接続される各デバイスを総括的に制御する。
【００１６】
また、ＲＯＭ３のプログラム用ＲＯＭには、ＣＰＵ１の制御プログラムあるいは本発明に関するプリンタセレクタやネットワークプリンタドライバのプログラム等が記憶されている。また、ＲＯＭ３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等が記憶されている。ＲＯＭ３のデータ用ＲＯＭには上記文書処理等を行う際に使用する各種データが記憶される。
【００１７】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア並びに本発明に係わるプリンタ管理テーブルや、外部記憶からコピーされた不図示のプリンタ配置図登録リスト等の記憶装置として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。
【００１８】
外部メモリコントローラ（ＤＫＣ）７は、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）或いはフラッシュＥＥＰＲＯＭ等の外部メモリ１１とのアクセスを制御する。外部メモリ１１には、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイルならびに、登録されたネットワーク上の接続情報等が記憶される。イーサネット（登録商標）コントローラ（ＮＥＴＣ）８は、ネットワーク２１を介してプリンタ２０００に接続されて、プリンタ２０００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００１９】
プリンタ２０００において、ＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御する。またＣＰＵ１２は、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００２０】
ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶される。また、ＲＯＭ１３のデータ用ＲＯＭにはハードディスクフォント３等の外部記憶装置が無いプリンタの場合には、ホストコンピュータ上で利用される各種特性情報等が記憶される。ＣＰＵ１２は入出力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００２１】
ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能する。ＲＡＭ１９は図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００２２】
ハードディスク（ＨＤ）２３は、ディスクコントローラ（ＤＫＣ）２２によりアクセスを制御され、またＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１５０１は前述した操作部（操作パネル）で操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２３】
図２は本発明の一実施形態としてのネットワークプラグアンドプレイシステムの構成を示すブロック図である。図２の構成は、それぞれのＣＰＵによりプログラムを実行することで実現されるソフトウエア構成を示す。
【００２４】
ホストコンピュータ１０００は、本実施の形態ではパーソナルコンピュータであり、クライアントデバイスとも呼ばれる。ホストコンピュータ１０００は、通信機能としてイーサネット（登録商標）に対応している。通信はイーサネット（登録商標）コントローラ１１０により制御される。これらコントローラの上位レイヤには、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１０９を備え、そのプロトコルスタック上にＨＴＴＰ１０７があって、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。
【００２５】
ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１０９、およびＨＴＴＰ１０７上位層にはＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロセッサ１０４を備える。機能優先順位判定ユーティリティ１０２、ＷＳＤモジュール１０３およびアプリケーション１０１が、それぞれＳＯＡＰプロセッサ１０４を介してｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で記述されたデータの双方向通信を実現する。なおＳＯＡＰとは、ネットワーク経由でオブジェクト間の通信を行うためのプロトコルである。ＳＯＡＰでは、ＸＭＬによって記述されるデータ構造が定義され、転送用のプロトコルとしては、ＨＴＴＰやＳＭＴＰが用いられる。ＳＯＡＰプロセッサ１０４は、ＳＯＡＰにしたがって記述されたオブジェクトを解析（パース）し、処理を実行する。
【００２６】
機能優先順位判定ユーティリティ１０２は、図５のＵＩを制御し、ユーザが機能の比較の優先順位を設定する操作を受け付ける。設定された優先順位情報は、メモリコントローラ１０５を介してメモリ１０８上に記録される。
【００２７】
また、機能優先順位判定ユーティリティ１０２はこのほか、現在インストールされているプリンタの性能情報を取得し、メモリ１０８上に記録する機能を有する。また、機能優先順位判定ユーティリティ１０２は、ＷＳＤモジュール１０３によって発見されたプリンタの性能情報と、現在インストールされているプリンタの性能情報とを比較し、どちらが優位かを判定する。判定結果にしたがってプラグアンドプレイコントローラにインストールの指示を行う。ただしこれらの機能はＰｎＰコントローラ１０６により実行されても良い。
【００２８】
ＷＳＤモジュール１０３はＳＯＡＰプロセッサ１０４を介して、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークデバイスから通知されるＨｅｌｌｏメッセージに対する応答処理を行う。また、ＷＳＤモジュール１０３はネットワークデバイス検索のためのＰｒｏｂｅメッセージの発行処理を実行する。また、ＷＳＤモジュール１０３はＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ＧｅｔＭｅｔａｄａｔａメッセージを発行することで、ネットワークデバイスの属性情報を取得する。属性情報にはデバイスの性能を表す性能情報が含まれる。
【００２９】
これらメッセージ処理により、ネットワークデバイスを発見した場合、ＷＳＤモジュール１０３は、プラグアンドプレイコントローラ１０６に対して、発見したネットワークデバイスの属性情報を通知する。プラグアンドプレイコントローラ１０６は属性情報をもとに、該当するドライバ、ユーティリティソフトウエアをメモリコントローラ１０５を介してメモリより読み込み、ホストコンピュータ１０００にインストールを実行する機能を備える。
【００３０】
アプリケーション１０１は、例えばワードプロセッサソフトウエアなどで、編集した書類をネットワークデバイス・プリンタに印刷する機能を有する。その際、アプリケーション１０１は、プラグアンドプレイコントローラ１０６によりインストールされたドライバ、ユーティリティを介して、ネットワーク対応デバイス２０００に対してジョブデータ、印刷データを送信する。
【００３１】
一方、ネットワーク対応デバイス２０００、本実施の形態ではネットワーク対応型プリンタは、通信機能としてイーサネット（登録商標）に対応しており、それぞれイーサネット（登録商標）コントローラ２０６により制御される。コントローラ２０６の上位レイヤには、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック２０５を備え、そのプロトコルスタック上にＨＴＴＰ２０４があって、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。
【００３２】
ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック２０５、およびＨＴＴＰ２０４上位層にはＳＯＡＰプロセッサ２０３を備える。ＷＳＤモジュール２０２、およびプリンタコントローラ２０１は、それぞれＳＯＡＰプロセッサ２０３を介してＸＭＬで記述されたデータの双方向通信を実現する。
【００３３】
ここで、ＷＳＤモジュール２０１はＳＯＡＰプロセッサ２０３を介して、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークに接続した際にＨｅｌｌｏメッセージを送信する。また、およびホストコンピュータ１０００から発行されるＰｒｏｂｅメッセージに対する応答処理を実行する。
【００３４】
また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ホストコンピュータ１０００から発行されたＧｅｔＭｅｔａｄａｔａメッセージに応じ、ネットワーク対応デバイス、本実施例の場合ネットワーク対応プリンタが持つ属性情報を返信する。属性情報には性能情報が含まれる。
【００３５】
＜プラグアンドプレイ処理＞
以下、添付図面を参照して本発明の実施形態を詳細に説明する。図５は設定画面で、これによりユーザが機能の優先順位を決定する。画面例では、ペイン５００内に表示される最優先機能、２番目の機能、３番目の機能それぞれを、ユーザが選択肢の内から選択できる。選択された機能の優先順位が、メモリに保存される。優先順位は、性能情報を機能毎に比較した後、総合的に評価する際の重み付けに利用される。図５では、一番にカラー機能、次に速度、最後にオプションという順序でデバイスの機能が互いに比較される。たとえばカラーであれば、カラーとモノクロームとではカラーの方がより性能が高いと判定される。速度については、より印刷速度の早い方がより性能が高いと判定される。オプションについては、オプションを備える方がより性能が高いと判定される。比較は最高順位の機能から順に行われる。全ての機能について性能が高い方のデバイスが、より性能が高いデバイスであると判定される。いずれの性能が高いか判定できない場合には、その次の優先順位の機能について比較が行われる。図５では比較される機能は３種であるが、更に多くとも良いし、少なくとも良い。
【００３６】
以下に本発明の制御の流れを図３のフローチャートに従い説明する。図３のフローは、図５の画面で設定された、比較対象となる機能とその優先順位を示す情報がメモリに保存された状態で、ＣＰＵ１で実行される。ソフトウエアでは、主体は機能優先順位判定ユーティリティ１０２である。機能優先順位判定ユーティリティ１０２は、単にユーティリティ１０２とも称する。
【００３７】
ユーティリティ１０２は、ワーク領域として、台数Ｎ、性能配列ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒｓ［１…Ｎ］、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒ、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒをメモリに確保し、使用する。台数Ｎには、ＰｎＰコントローラ１０６により検知されたネットワークデバイスの台数が保持される。性能配列ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒｓ［１…Ｎ］には、検知されたＮ台のプリンタの性能情報（スペック情報）が保持される。第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒには、検知されたプリンタの中で第一に優先するプリンタの性能情報が保持される。第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒには、インストールされているプリンタの性能情報が保持される。
【００３８】
ステップＳ３０１では、ホスト１０００からＰｒｏｂｅメッセージを送信する。プリンタはＰｒｏｂｅメッセージに応じて、ＰｒｏｂｅＭａｔｃｈメッセージを応答する。ステップＳ３０２では、ホスト１０００がＰｒｏｂｅＭａｔｃｈメッセージを受信したかどうかを判別し、受信した場合は、ステップＳ３０３に進む。受信しなかった場合はステップＳ３０１に進む。ステップＳ３０１，３０２が探索手段に相当する。なお、ホスト１０００は、プリンタからＰｒｏｂｅＭａｔｃｈメッセージを受信することにより、ネットワークに接続されているプリンタを認識する認識機能を有する。
【００３９】
ステップＳ３０３では、ＰｒｏｂｅＭａｔｃｈメッセージを受信したメッセージ数を検知台数として、ワーク領域のＮに保持し、変数Ｉを１に初期化する。
【００４０】
ステップＳ３０４では、ホストコンピュータ１０００はＧｅｔＭｅｔａＤａｔａメッセージを送信し、検知されたプリンタに対して性能情報を要求する。ステップＳ３０５では、ＧｅｔＭｅｔａＤａｔａに対する応答メッセージを受信し、性能配列ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒｓに、デバイスごとのインデックスに対応付けて保持する。ステップＳ３０５が取得手段および取得工程に相当する。
【００４１】
ステップＳ３０６では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒの初期値として性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒｓ［１］を複製する。ステップＳ３０７では、変数Ｉを１インクリメントする。
【００４２】
ステップＳ３０８では、台数Ｎが変数Ｉと等しいかを判別する。等しければ、検出したプリンタを全て比較し終えたため、ステップＳ３１２にすすむ。等しくない場合は、ステップＳ３０９に進む。ステップＳ３０９では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒと、性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［Ｉ］の性能情報とを比較する。比較の処理フローは図４のフローチャートに従う。詳細については後述する。ただし、図４の手順では、２つの性能情報をパラメータＡ，Ｂとして比較する際に、いずれがＡでいずれがＢかにより総合評価が変わる場合がある。ステップＳ３０９では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒをパラメータＡとし、性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［Ｉ］の性能情報をパラメータＢとする。判定結果は、ＡＡ，Ａ，同，Ｂ，ＢＢの５段階である。詳細は図４で説明するが、それぞれ「パラメータＡのプリンタが全機能で高性能」「パラメータＡのプリンタが高性能」「同性能」「パラメータＢのプリンタが高性能」「パラメータＢのプリンタが全機能で高性能」を意味する。
【００４３】
ステップＳ３１０では、性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［Ｉ］のほうが優位であるかどうかを判定する。すなわちネットワークで検知されたプリンタの方がより高性能であるか判定する。性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［Ｉ］のほうが優位である場合は、ステップＳ３１１に進み、優位でない場合はステップＳ３０７に進む。これを判定結果で表せば、判定結果がＢＢまたはＢの場合にステップＳ３１１に進み、それ以外の場合にステップＳ３０７に進む。
【００４４】
Ｓ３１１では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒを、それよりも性能が高いと判定された性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［Ｉ］に変更する。
【００４５】
ステップＳ３１２では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒと、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒの性能情報とを比較する。比較の処理フローは図４のフローチャートに従う。ただし、ステップＳ３１２では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒをパラメータＡとし、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒをパラメータＢとして図４の比較が実行される。ステップＳ３１２が比較手段および比較工程に相当する。
【００４６】
ステップＳ３１３では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタが全ての機能において優位である（ＡＡ）かどうかを判定する。優位の場合は、ステップＳ３２１に進む。そうでない場合は、ステップＳ３１４に進む。
【００４７】
ステップＳ３１４では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタが優位である（Ａ）かどうかを判定する。一部優位の場合は、ステップＳ３２４に進み、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒをインストールして処理を終了する。そうでない場合はステップＳ３１５に進む。
【００４８】
ステップＳ３１５では、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒに係るプリンタが全ての機能で優位（ＢＢ）かどうかを判別する。優位である場合はステップＳ３２５に進み、インストールを行わないで処理を終了する。そうでない場合は、ステップＳ３１６に進む。
【００４９】
ステップＳ３１６では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒと第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒとが同じかどうかを判別する。同じである場合はステップＳ３１７に進み、そうでない場合はステップＳ３２６に進む。
【００５０】
ステップＳ３１７では、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒに対応するプリンタ、すなわちインストールされているプリンタが使える状態かどうか（現在利用可能であるかどうか）を判定する。オンラインであれば使える状態と判断し、オフラインの場合は使えない状態と判定する。使える状態であれば、ステップＳ３１８に進み、使えない状態の場合はステップＳ３２９に進む。
【００５１】
ステップＳ３１８では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒおよび第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒそれぞれに係るプリンタが同一の個体であるかを判定する。同一プリンタであるかどうかは、属性情報に含まれるプリンタのユニークなＩＤを比較することで判断する。同一の場合はステップＳ３２８に進み、そうでない場合はステップＳ３１９に進む。
【００５２】
ステップＳ３１９では、属性情報に含まれる位置情報を比較し、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒのほうがホストから近いかどうかを判別する。位置情報として、ホストコンピュータ１０００からの距離情報を含めばこの判定は用意である。近いと判断した場合はステップＳ３２９に進み、そうでない場合はステップＳ３２０に進む。ステップＳ３２０では第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタドライバをインストールせず、処理を終了する。
【００５３】
ステップＳ３２１では、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタドライバのインストール処理を行う。第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタドライバとは、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに対応したプリンタのプリンタドライバである。プリンタドライバプログラムは、たとえば不図示のサーバからダウンロードする。
【００５４】
ステップＳ３２２では、例えば図７のようなＵＩを表示し、ユーザに第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタドライバをアンインストールするかどうかを問い合わせる。アンインストールすると選択された場合は、ステップＳ３２３に進み、アンインストール処理を行う。アンインストールしない場合は、処理を終了する。
【００５５】
ステップＳ３２６では、例えば図６のようなＵＩを表示し、検出されたプリンタ（第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタ）をユーザに通知し、そのドライバをインストールするかどうかを問い合わせる。ステップＳ３２７では、インストールすると選択された場合は、ステップＳ３２９に進み、インストールを行い処理を終了する。インストールしないが選択された場合はステップＳ３２５に進む。
【００５６】
ステップＳ３２８では、第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒに係るプリンタすなわち現在インストールされているプリンタに接続されていたポートを、第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタが使用するポートに変更する。そして処理を終了する。この場合第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒに係るプリンタドライバのインストールは行わない。
【００５７】
ステップＳ３１３〜Ｓ３２９がインストール制御手段およびインストール制御工程に相当する。
【００５８】
＜比較手順＞
図４は、プリンタＡとプリンタＢの性能情報の比較処理を示すフローである。プリンタＡとＢの性能情報とは、具体的には図３のＳ３０９においては、パラメータＡは、性能配列の要素ＤｅｔｅｃｔｅｄＰｒｉｎｔｅｒ［ｉ］、パラメータＢは第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒである。またＳ３１２においては、パラメータＡは第１の性能情報ＦｉｒｓｔＰｒｉｎｔｅｒ、パラメータＢは第２の性能情報ＩｎｓｔａｌｌｅｄＰｒｉｎｔｅｒである。また、ワーク領域として比較結果を持つＲｅｓｕｌｔをメモリに保持する。比較結果Ｒｅｓｕｌｔには、３つの機能それぞれの比較結果と、それらを総合した総合結果を持ち、優位なほうのプリンタが記録される。例えば一番目の機能がプリンタＡ優位、２番目がプリンタＢ優位、３番目が同じである場合は、「Ａ，Ｂ，同」と機能毎に記録される。この場合総合的にはプリンタＡが優位と記録される。総合的には図８の表にしたがって評価される。図８による総合評価の原則は、優先順位の高い評価項目（評価対象の機能）において優位なプリンタが、総合的には優位と判定される、ということである。変数Ｋは比較する機能の順位をカウントするワーク変数である。
【００５９】
まず、ステップＳ４０１では、変数Ｋを１に初期化する。ステップＳ４０２では、変数Ｋが比較対象の機能の数、たとえば３より大きいかを判別する。大きい場合は全ての機能を比較し終えたのでステップＳ４０６に進む。そうでない場合は、ステップＳ４０３に進む。ステップＳ４０３では、Ｋ番目の機能を比較する。ステップＳ４０４では、その結果を比較結果Ｒｅｓｕｌｔに格納する。ステップＳ４０５では変数Ｋをインクリメントする。ステップＳ４０６では、各機能の比較結果から総合的な判断を行う。判定例は図８に示すとおりで、各機能の比較結果がＡＡＡであれば、全機能でプリンタＡが優位と判断し、判定結果としてＡＡを記録する。その他の場合で優先される機能でプリンタＡが優位であれば、判定結果としてＡを記録する。全機能でプリンタＢが優位かあるいはプリンタＡと同じであれば判定結果としてＢＢを記録する。前記機能についてプリンタＡ，Ｂが同じであれば判定結果として「同」を記録する。その他の場合には判定結果としてＢを記録する。
【００６０】
なお、図８の表を、パラメータＡとパラメータＢとについて対称にしてもよい。その場合にはたとえば番号３，７，９，１９，２１，２５の判定結果はＡではなくＡＡとなる。あるいは、番号１５，１７，１８，２３，２４，２６の判定結果はＢＢではなくＢとなる。
【００６１】
以上の手順により、本実施形態のホストコンピュータ１０００は、ネットワークから検出された周辺デバイスのうち、最も優れた性能の周辺デバイスを、新たにインストールするデバイスの候補として選択する。その選択された周辺デバイスの性能と、既にホストコンピュータ１０００で利用可能とされている周辺デバイスの性能とを比較して、優れていれば新たに検出されたデバイスのデバイスドライバをインストールする。
【００６２】
また、一部の機能について優れていないと判定された場合でも、そのデバイスをインストールする余地をユーザに与えることで、特定の機能を利用するために新たなデバイスをインストールすることもできる。
【００６３】
このため、ユーザが数多くのデバイスの中から好適なデバイスを見付け、それをインストールするという労力を軽減することができる。また、その作業中に生じ得るユーザの過誤を防止することができる。また、不必要に多くのデバイスをインストールすることを防止し、コンピュータの資源の浪費を防止できる。
【００６４】
なお本実施形態ではデバイスとしてプリンタを対象としているが、ネットワークに接続されたデバイスであればプリンタには限られない。たとえばスキャナであればスキャナドライバなどであっても本発明を適用できる。すなわちネットワークに接続される様々なデバイスに対応するデバイスドライバのインストールに適用できる。
【００６５】
［第２実施形態］
第１実施形態では、比較する機能は３つに設定され、そのなかでユーザが優先順位を選択することになっていたが、比較する機能は３つに限定する必要はない。どのような機能を比較対象とするかをプリンタから取得し、その中からユーザに取捨選択させることも出来る。
【００６６】
このためには、インストールされているプリンタに対し、ＧｅｔＭｅｔａＤａｔａメッセージを送信する。そして、その応答メッセージに含まれているＭｅｔａＤａｔａを項目として例えば図９のような優先順位入力用の画面を、機能優先順位判定ユーティリティに表示させる。ユーザはこの画面上で比較対称の機能を１番から選択し、これ以上比較の必要ないという場合は、設定しないを選択する。優先順位が決定された後は、第１実施形態と同様に処理を行う。
【００６７】
このようにすることで、デバイスに備えられた機能の中から、ユーザの要望に即して優先順位を各機能に割り当てることができる。
【００６８】
［他の実施形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６９】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施の形態におけるクライアントとネットワークプリンタの接続を示したハードウエア構成図である。
【図２】本発明の実施の形態におけるシステムの構成をしめすブロック図である。
【図３】本発明の制御フローを示すフローチャートである。
【図４】２つのプリンタの機能情報を比較するときの処理を示すフローチャートである。
【図５】機能比較の優先順位を設定するＵＩの画面例の図である。
【図６】検出されたプリンタをインストールするかユーザに問い合わせるＵＩの画面例の図である。
【図７】検出されたプリンタをインストール後に、既存のプリンタをアンインストールするかを問い合わせるＵＩの画面例の図である。
【図８】２つのプリンタの機能を比較した結果の判定例の図である。
【図９】第２実施形態の機能比較の優先順位を設定するＵＩの画面例の図である。
【符号の説明】
【００７１】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  ＫＢＣ（キーボードコントローラ）
６  ＣＲＴＣ（ＣＲＴコントローラ）
７  ＤＫＣ（ディスクコントローラ）
８  ＮＥＴＣ（ネットワークコントローラ）
９  ＫＢ（キーボード）
１０  ＣＲＴ
１１  外部メモリ
１２  ＣＰＵ
１３  ＲＯＭ
１４  外部メモリ
１５  システムバス
１６  印刷部Ｉ／Ｆ
１７  印刷部
１８  入出力部
１９  ＲＡＭ
２０  ＭＣ（メモリコントローラ）
２１  双方向Ｉ／Ｆ
２２  ＤＫＣ（ディスクコントローラ）
２３  ハードディスク
【図１】
2008027006.tif 000003
【図２】
2008027006.tif 000004
【図３】
2008027006.tif 000005
【図４】
2008027006.tif 000006
【図５】
2008027006.tif 000007
【図６】
2008027006.tif 000008
【図７】
2008027006.tif 000009
【図８】
2008027006.tif 000010
【図９】
2008027006.tif 000011