(57)【特許請求の範囲】
【請求項１】
状態情報を含んだメッセージを発行する周辺機器と通信可能なコンピュータにより実行されるプログラムであって、
前記周辺機器から受信した離脱メッセージを解析する解析手段と、
前記解析手段により、前記離脱メッセージに含まれる情報が該離脱メッセージの送信元である周辺機器に対応するデバイスドライバを削除する旨の削除通知であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するドライバプログラムの削除処理を行う削除処理手段と
して前記コンピュータを機能させるためのプログラム。
【請求項２】
前記離脱メッセージに含まれる情報には、該離脱メッセージの送信元である周辺機器の一時休止状態、または故障状態を示す情報が含まれ、
前記離脱メッセージに含まれる情報が一時休止状態を示す情報である場合、該離脱メッセージは付加情報として該離脱メッセージの送信元である周辺機器の復旧時間に関する情報を含み、
前記離脱メッセージに含まれる情報が故障状態であることを示す情報である場合、該離脱メッセージは付加情報として該離脱メッセージの送信元である周辺機器の故障状態を含むことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記プログラムは、さらに、前記解析手段により、前記離脱メッセージに含まれる情報が前記削除通知とは異なる情報であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するアイコン表示を該離脱メッセージに含まれる情報に応じて切り替えるための表示処理を行う表示処理手段として前記コンピュータを機能させ、
前記表示処理手段は、前記解析手段によって受信した前記離脱メッセージに含まれる情報が一時休止状態を示す情報であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するアイコン表示を一時休止状態を示す表示に切り替えるための表示処理を行い、
前記解析手段によって受信した前記離脱メッセージに含まれる情報が故障状態であることを示す情報であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するアイコン表示を故障状態を示す表示に切り替えるための表示処理を行うことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記プログラムは、さらに、前記解析手段によって、受信した離脱メッセージに含まれる情報が周辺機器がネットワークから永久的に離脱する旨の最終離脱通知であると解析された場合に、該離脱メッセージの送信元である周辺機器に対応するドライバプログラムの削除の可否を指示するためのユーザインターフェース画面の表示処理を行うユーザインターフェース表示処理手段として前記コンピュータを機能させ、
前記削除手段は、該ユーザインターフェース画面を介して削除指示された場合に、前記離脱メッセージの送信元である周辺機器に対応するドライバプログラムの削除処理を行うことを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
メッセージを発行する周辺機器とクライアントコンピュータと通信可能なサーバコンピュータにより実行されるプログラムであって、
外部から受信したメッセージを解析する解析手段と、
前記解析手段によって前記メッセージが前記周辺機器からの離脱メッセージであると解析された際に、前記離脱メッセージの送信元である周辺機器に対応する状態情報を、前記周辺機器がネットワークから離脱していることを示すように管理する管理手段と、
前記解析手段によって前記メッセージが前記クライアントコンピュータからの周辺機器の使用を要求する使用要求メッセージであると解析された際に、当該クライアントコンピュータに対して、前記管理手段によって管理されている状態情報に基づいて、前記使用要求メッセージにより使用要求された周辺機器がネットワークから離脱した状態である旨の通知を送信するメッセージ代行手段と
してサーバコンピュータを機能させるためのプログラム。
【請求項６】
前記離脱メッセージに含まれる情報の種類として、前記離脱メッセージの送信元である周辺機器がネットワークから永久的に離脱することを示す最終離脱通知、及びネットワークから一時的に離脱することを示す一時離脱通知を含み、
前記管理手段は、前記離脱メッセージに含まれる情報の種類が前記最終離脱通知であった場合、前記離脱メッセージの送信元である周辺機器に対応する状態情報をネットワークから永久的に離脱していることを示すように管理し、前記離脱メッセージに含まれる情報の種類が前記一時離脱通知であった場合、前記離脱メッセージの送信元である周辺機器に対応する状態情報をネットワークから一時的に離脱していることを示すように管理することを特徴とする請求項５に記載のプログラム。
【請求項７】
前記プログラムは、さらに、前記解析手段によって前記メッセージが前記クライアントコンピュータからの使用要求メッセージであると解析された際に、前記管理手段によって管理されている状態情報に基づき前記使用要求メッセージにより使用要求された周辺機器に対応する状態を判定する判定手段としてサーバコンピュータを機能させ、
前記メッセージ代行手段は、
前記判定手段が前記管理手段によって管理されている状態情報に基づき、前記使用要求メッセージにより使用要求された周辺機器に対応する状態がネットワークから永久的に離脱していることを示すと判定した場合、前記使用要求メッセージの要求元のクライアントコンピュータに対して最終離脱通知を送信し、
前記判定手段が前記管理手段によって管理されている状態情報に基づき、前記使用要求メッセージにより使用要求された周辺機器に対応する状態がネットワークから一時的に離脱していることを示すと判定した場合、前記使用要求メッセージの要求元のクライアントコンピュータに対して一時離脱通知を送信することを特徴とする請求項６に記載のプログラム。
【請求項８】
前記管理手段は、周辺機器の状態情報をネットワークから永久的に離脱していることを示すように管理している際に、該周辺機器から参加通知を受信することに応じて当該周辺機器の状態情報をネットワークに接続されていることを示すよう変更することを特徴とする請求項６または７に記載のプログラム。
【請求項９】
さらに、前記周辺機器から受信したメッセージを、複数のクライアントコンピュータにマルチキャストで転送する転送手段としてサーバコンピュータを機能させることを特徴とする請求項６乃至８のいずれか１項に記載のプログラム。
【請求項１０】
コンピュータと通信可能な周辺装置の制御コンピュータにより実行されるプログラムであって、
操作者による指示を入力する入力手段と、
前記入力手段により入力された指示が、前記周辺装置と対応するデバイスドライバを削除する旨の指示であった際に、前記周辺装置と対応するデバイスドライバを削除する旨の情報を含んだ離脱メッセージを送信する離脱通知送信手段と
して前記制御コンピュータを機能させるためのプログラム。
【請求項１１】
前記離脱通知送信手段は、前記周辺機器が一時休止状態への移行によりネットワークから離脱する場合には一時休止状態に移行した旨の一時休止通知を含んだ離脱メッセージを送信し、障害の発生によりネットワークから離脱する場合には障害が生じた旨の障害発生通知を含んだ離脱メッセージを送信することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記周辺機器は複数のインタフェースを備え、
前記入力手段により、インタフェースごとに対応したデバイスドライバを削除する指示が入力され、
前記離脱通知送信手段は、前記入力手段により入力された指示が、複数のデバイスドライバを削除する旨の指示であった際に、複数のデバイスドライバを削除するための削除通知を含んだ離脱メッセージを送信することを特徴とする請求項１０または１１に記載のプログラム。
【請求項１３】
前記周辺機器が印刷要求に応じて印刷処理を実行する印刷処理部を備えることを特徴とする請求項１０乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
状態情報を含んだメッセージを発行する周辺機器と通信可能な情報処理装置であって、
前記周辺機器から離脱メッセージを受信する受信手段と、
前記周辺機器より受信した離脱メッセージを解析する解析手段と、
前記解析手段により、前記離脱メッセージに含まれる情報が該離脱メッセージの送信元である周辺機器に対応するデバイスドライバを削除する旨の削除通知であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するドライバプログラムを削除する削除手段と
を備えることを特徴とする情報処理装置。
【請求項１５】
前記離脱メッセージに含まれる情報には、該離脱メッセージの送信元である周辺機器に関する付加情報が含まれており、
前記離脱メッセージに含まれる情報が一時休止状態を示す情報である場合、前記離脱メッセージは前記付加情報として該離脱メッセージの送信元である周辺機器の復旧時間に関する情報を含み、
前記離脱メッセージに含まれる情報が故障状態であることを示す情報である場合、前記離脱メッセージは前記付加情報として該離脱メッセージの送信元である周辺機器の故障状態を含むことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記解析手段によって、前記離脱メッセージに含まれる情報が前記削除通知とは異なる情報であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するアイコン表示を前記離脱メッセージに含まれる情報に応じて切り替えて表示する表示切り替え手段をさらに備え、
前記表示切り替え手段は、前記解析手段によって受信した前記離脱メッセージに含まれる情報が一時休止状態を示す情報であると解析された場合、前記離脱メッセージの送信元である周辺機器に対応するアイコン表示を一時休止状態を示す表示に、
前記解析手段によって受信した前記離脱メッセージに含まれる情報が故障状態であることを示す情報であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するアイコン表示を故障状態を示す表示にそれぞれ切り替えて表示することを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記解析手段によって、受信した離脱メッセージに含まれる情報が、周辺機器がネットワークから永久的に離脱する旨の最終離脱通知であると解析された際に、該離脱メッセージの送信元である周辺機器に対応するドライバプログラムの削除の可否を指示するためのユーザインターフェース画面を表示するユーザインターフェース表示手段をさらに備え、
前記削除手段は、該ユーザインターフェース画面を介して削除指示された場合に、前記離脱メッセージの送信元である周辺機器に対応するドライバプログラムを削除することを特徴とする請求項１４乃至１６のいずれか１項に記載の情報処理装置。
【請求項１８】
メッセージを発行する周辺機器とクライアントコンピュータと通信可能な情報処理装置であって、
外部からメッセージを受信する受信手段と、
前記受信手段によって受信されたメッセージを解析する解析手段と、
前記解析手段によって前記メッセージが前記周辺機器からの離脱メッセージであると解析された際に、前記離脱メッセージの送信元である周辺機器に対応する状態情報を、前記周辺機器がネットワークから離脱していることを示すように管理する管理手段と、
前記解析手段によって前記メッセージが、前記クライアントコンピュータからの周辺機器の使用を要求する使用要求メッセージであると解析された際に、当該クライアントコンピュータに対して、前記管理手段によって管理されている状態情報に基づいて、前記使用要求メッセージにより使用要求された周辺機器がネットワークから離脱した状態である旨の通知を送信するメッセージ代行手段と
を備えることを特徴とする情報処理装置。
【請求項１９】
前記離脱メッセージに含まれる情報の種類として、前記離脱メッセージの送信元である周辺機器がネットワークから永久的に離脱することを示す最終離脱通知、及びネットワークから一時的に離脱することを示す一時離脱通知を含み、
前記管理手段は、前記離脱メッセージに含まれる情報の種類が前記最終離脱通知であった場合、前記離脱メッセージの送信元である周辺機器に対応する状態情報をネットワークから永久的に離脱していることを示すように管理し、前記離脱メッセージに含まれる情報の種類が前記一時離脱通知であった場合、前記離脱メッセージの送信元である周辺機器に対応する状態情報をネットワークから一時的に離脱していることを示すように管理することを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記解析手段によって前記メッセージが前記クライアントコンピュータからの使用要求メッセージであると解析された際に、前記管理手段によって管理されている状態情報に基づき前記使用要求メッセージにより使用要求された周辺機器に対応する状態を判定する判定手段をさらに備え、
前記メッセージ代行手段は、
前記判定手段が前記管理手段によって管理されている状態情報に基づき、前記使用要求メッセージにより使用要求された周辺機器に対応する状態がネットワークから永久的に離脱していることを示すと判定した場合、前記使用要求メッセージの要求元のクライアントコンピュータに対して最終離脱通知を送信し、
前記判定手段が前記管理手段によって管理されている状態情報に基づき、前記使用要求メッセージにより使用要求された周辺機器に対応する状態がネットワークから一時的に離脱していることを示すと判定した場合、前記使用要求メッセージの要求元のクライアントコンピュータに対して一時離脱通知を送信することを特徴とする請求項１９に記載の情報処理装置。
【請求項２１】
前記管理手段は、周辺機器の状態情報をネットワークから永久的に離脱していることを示すように管理している際に、該周辺機器から参加通知を受信することに応じて当該周辺機器の状態情報をネットワークに接続されていることを示すよう変更することを特徴とする請求項２０に記載の情報処理装置。
【請求項２２】
前記周辺機器から受信したメッセージを、複数のクライアントコンピュータにマルチキャストで転送する転送手段をさらに備えることを特徴とする請求項１８乃至２１のいずれか１項に記載の情報処理装置。
【請求項２３】
コンピュータと通信可能な周辺装置であって、
操作者による指示を入力するための入力手段と、
前記入力手段により入力された指示が、前記周辺装置と対応するデバイスドライバを削除する旨の指示であった際に、前記周辺装置と対応するデバイスドライバを削除する旨の情報を含んだ離脱メッセージを送信する離脱通知送信手段と
を有することを特徴とする周辺装置。
【請求項２４】
前記離脱通知送信手段は、前記周辺機器が一時休止状態への移行によりネットワークから離脱する場合には一時休止状態に移行した旨の一時休止通知を含んだ離脱メッセージを送信し、障害の発生によりネットワークから離脱する場合には障害が生じた旨の障害発生通知を含んだ離脱メッセージを送信することを特徴とする請求項２３に記載の周辺装置。
【請求項２５】
前記周辺機器は複数のインタフェースを備え、
前記入力手段により、インタフェースごとに対応したデバイスドライバを削除する指示が入力され、
前記離脱通知送信手段は、前記入力手段により入力された指示が、複数のデバイスドライバを削除する旨の指示であった際に、複数のデバイスドライバを削除するための削除通知を含んだ離脱メッセージを送信することを特徴とする請求項２３または２４に記載の周辺装置。
【請求項２６】
印刷要求に応じて印刷処理を実行する印刷処理部をさらに備えることを特徴とする請求項２３乃至２５のいずれか１項に記載の周辺装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばネットワークに接続された情報処理装置のデバイスドライバを管理するためのプログラムおよび方法と情報処理装置およびネットワークプリントシステムに関するものである。
【背景技術】
【０００２】
インターネットやホームネットワークなど、ネットワークの拡張に伴い、例えば、ＰＤＡや携帯電話等のユーザインタラクティブなデバイス、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置などのデバイスのネットワーク対応が進んでいる。また、テレビ、エアコン、冷蔵庫等の家電製品などに至るまで様々なデバイスのネットワーク対応も進んでいる。それに伴い、ネットワーク対応デバイスを利用する上での利便性を高め、また管理の容易性を高めるために、ネットワークデバイスを管理する機能を提供するさまざまなプロトコル、アーキテクチャが提案されている(特許文献１，２)。提供される機能には、たとえばサービスを提供するネットワークデバイスの探索や、ネットワークデバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップなどがある。
【０００３】
また、ネットワークデバイスの管理を自動化するための試みもある。たとえば、マイクロソフト社が主体となって、ＵＰｎＰ（登録商標）、およびＷＳＤ:Web Services for Devices (WS-Discovery/WS-MetadataExchange）の策定が進められている。これは、デバイスをネットワークに接続するだけでそのデバイスを使用可能とする、いわゆるプラグアンドプレイを実現するためのものである。また、ビジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ（登録商標）、Ａｐｐｌｅ社が開発したＯＳ  ＸでサポートされるＲｅｎｅｄｚｖｏｕｓなどもある。ＵＰｎＰ（登録商標）等の技術では、コンピュータにより検出されたネットワークデバイスがあれば、そのデバイスドライバが（必要があれば）コンピュータにインストールされる。
【０００４】
さらに、ネットワークに接続されたクライアントコンピュータがその起動時に、インストールされているプリンタをネットワーク上で検索し、検出されなければそのプリンタドライバをアンインストールする技術も公開されている（特許文献３）。またネットワークプリンタを管理するプリントサーバが常にプリンタの接続状況を監視し、ネットワークから削除されたプリンタがあれば、削除されたことをクライアントに通知する技術も公開されている（特許文献４）。
【特許文献１】特開2004-038956号公報
【特許文献２】特開2004-362594号公報
【特許文献３】特開2004-366502号公報
【特許文献４】特開2004-280218号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ネットワークデバイスにプラグアンドプレイが普及することによってその利便性が向上する一方で、ネットワークに接続されたデバイスのドライバが自動でインストールされてしまうことに起因する弊害も生じる。その弊害のひとつが、クライアントコンピュータにインストールされたドライバの数が増大し続けることである。この現象は、特に多数のネットワークプリンタを有する大規模オフィスに設置された使用期間の長いクライアントＰＣ（パーソナルコンピュータ）等において顕著である。このようなネットワークでは、プリンタ等のネットワークデバイスはしばしば更新され、あるいは追加される。クライアントコンピュータには、撤去されたデバイスのドライバはそのまま残り、追加されたデバイスに対応するドライバが追加的にインストールされる。このため、クライアントコンピュータのハードディスクやメモリといったハードウエア資源が無駄に消費される。加えて、アプリケーションからのプリント時など、使用するプリンタの選択に際して混乱を生じかねない。
【０００６】
このようなことのないように、ネットワークから撤去されたプリンタに対応するプリンタドライバは、全て削除（アンイストール）することが求められる。しかし、アンインストールは手作業で行わねばならず、多数のクライアントコンピュータが接続されたネットワークにおいては、クライアントコンピュータごとにドライバを削除する削除作業に多くの工数を要する。
【０００７】
特許文献３記載の技術によれば、接続されていないプリンタのドライバがアンインストールできるので、ドライバの無制限の増加は防止できる。しかし、ネットワークの全クライアントコンピュータがその起動時にプリンタをポーリングする必要があるため、ネットワークに対する負荷がかかり、好ましくない。またこの方法では、一時的にダウンしているプリンタに対応するプリンタドライバも自動で削除されてしまう。これは不便であるし、本来行う必要のないインストールおよびアンイストール作業が行われて、作業の能率を低下させ、またデバイス自動認識（ＰｎＰ）のためのトラフィックも増大する。
【０００８】
また、特許文献４のような技術では、ネットワーク環境にプリントサーバが必須であるために、プリンタに対して直接ポートをつないでネットワークプリンタ環境を構築している環境においては適用することが出来ない。
【０００９】
本発明は上記従来例に鑑みてなされたもので、例えばネットワークから撤去されるなどにより使用不可となったデバイス（プリンタなど）のためにクライアントコンピュータにインストールされたデバイスドライバの削除を自動で行うことを目的とする。また、それによって不必要なデバイスドライバがクライアントコンピュータ上に存在しつづけ、資源の圧迫を防止することを目的とする。
【００１０】
また、ネットワークからのデバイスの撤去が一時的なものか永久的なものかを、そのデバイスの管理者による指定に応じてクライアントに通知することで、その指定によってドライバの削除をコントロールすることを目的とする。また、クライアントへの通知をプロキシによって代行させることで、クライアントが確実にその通知を受け取らせることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は以下の構成を備える。状態情報を含んだメッセージを発行する周辺機器と通信可能なコンピュータにより実行されるプログラムであって、
前記周辺機器から受信した離脱メッセージをを解析する解析手段と、
前記解析手段により、前記離脱メッセージに含まれる情報が該離脱メッセージの送信元である周辺機器に対応するデバイスドライバを削除する旨の削除通知であると解析された場合、該離脱メッセージの送信元である周辺機器に対応するドライバプログラムの削除処理を行う削除処理手段と
して前記コンピュータを機能させる。
【００１２】
あるいは、メッセージを発行する周辺機器とクライアントコンピュータと通信可能なサーバコンピュータにより実行されるプログラムであって、
外部から受信したメッセージを解析する解析手段と、
前記解析手段によって前記メッセージが前記周辺機器からの離脱メッセージであると解析された際に、前記離脱メッセージの送信元である周辺機器に対応する状態情報を、前記周辺機器がネットワークから離脱していることを示すように管理する管理手段と、
前記解析手段によって前記メッセージが前記クライアントコンピュータからの周辺機器の使用を要求する使用要求メッセージであると解析された際に、当該クライアントコンピュータに対して、前記管理手段によって管理されている状態情報に基づいて、前記使用要求メッセージにより使用要求された周辺機器がネットワークから離脱した状態である旨の通知を送信するメッセージ代行手段と
してサーバコンピュータを機能させる。
【００１３】
あるいは、コンピュータと通信可能な周辺装置の制御コンピュータにより実行されるプログラムであって、
操作者による指示を入力する入力手段と、
前記入力手段により入力された指示が、前記周辺装置と対応するデバイスドライバを削除する旨の指示であった際に、前記周辺装置と対応するデバイスドライバを削除する旨の情報を含んだ離脱メッセージを送信する離脱通知送信手段と
して前記制御コンピュータを機能させる。
【発明の効果】
【００１５】
本発明により、不必要なデバイスドライバがクライアントコンピュータ上に存在しつづけ、資源の圧迫を防止することができる。
【００１６】
また、ネットワークからのデバイスの撤去が一時的なものか永久的なものかを、そのデバイスの管理者による指定に応じてクライアントに通知することで、その指定によってドライバの削除をコントロールすることができる。また、クライアントへの通知をプロキシによって代行させることで、クライアントが確実にその通知を受け取らせることができる。
【発明を実施するための最良の形態】
【００１７】
［第１実施形態］
以下、図面を用いて本発明の実施の形態について詳細に説明する。ただし、この実施の形態に記載されているプロトコルや数値などは一例であって、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１８】
＜印刷システムのハードウエア構成＞
図１は、本発明の実施の形態であるネットワーク印刷システムに接続しているひとつのクライアントとひとつのネットワークプリンタに注目したハードウエア構成を示すブロック図である。図１では、クライアント１０００と印刷装置であるネットワークプリンタ３０００とがネットワーク３１を介して接続された構成となっている。クライアント１０００ではコンピュータ本体２０００に対して外部装置であるキーボード９、ＣＲＴ１０、ハードディスク１１等が接続されている。コンピュータ本体２０００はＣＰＵ１を備え、ＣＰＵ１はＲＯＭ３やハードディスク１１に記憶された制御プログラムやアプリケーションをＲＡＭ２に展開して演算を行うことができる。また、外部装置であるキーボード９からの入力を制御しているのがキーボードコントローラ（ＫＢＣ）５である。また、ＣＲＴ１０の表示を制御しているのがＣＲＴコントローラ（ＣＲＴＣ）６であり、ハードディスク１１に対して入出力の制御を行っているのがハードディスクコントローラ（ＨＤＣ）７である。ＮｅｔＣ８はネットワークコントローラであり、ネットワーク３１を介してプリンタ３０００に接続されて、プリンタコントローラ部４０００との間の通信制御を行っている。
【００１９】
これらＣＰＵ１、ＲＡＭ２、ＲＯＭ３、ＫＢＣ５、ＣＲＴＣ６、ＨＤＣ７、ＮｅｔＣ８はそれぞれシステムバス４によって接続され、各デバイスをＣＰＵ１が総括的に制御している。ハードディスク１１あるいはＲＡＭ２には、ネットワークデバイス、特に本実施形態ではネットワークプリンタのデバイスドライバのインストール状態を示すインストール済みデバイスリスト１６００（図１６）が保存されている。インストール済みデバイスリスト１６００は、コンピュータ１０００にインストールされたＯＳにより提供されるＵＰｎＰ機能により認識されるデバイスの名称（識別子）、ＩＰアドレス、ドライバ名、表示に用いるアイコンファイル名が含まれている。なお、ＯＳとはオペレーティングシステムを指す。これらの情報は、オペレーティングシステムが管理するシステム情報のデータベースであるレジストリから得ることもできる。そこでレジストリを参照しても、図１６のインストール済みデバイスリスト１６００と同様の情報を参照できる。すなわち、本実施形態では、インストール済みデバイスリストを持つものとするが、レジストリを用いれば、インストール済みデバイスリストを特別に用意する必用はない。
【００２０】
なお、本実施形態では、クライアントとしてパーソナルコンピュータ（ＰＣ）を想定している。しかし、本発明を実施可能な形態であれば、クライアントはＰＣに限定するものではなく、ＰＤＡなどの携帯情報端末や携帯電話、デジタル家電等をクライアントとしてもよい。いずれの装置も、特定用途の入出力デバイス等を除けば、図１のコンピュータ１０００と同様の構成を有する。
【００２１】
ネットワークプリンタ３０００において、プリンタＣＰＵ２１は、ＲＯＭ２３のプログラム用領域に記憶された制御プログラムを実行する。制御プログラムの実行により、バス２４に接続される各種のデバイスとのアクセスを総括的に制御し印刷部２６を介して接続される印刷機構部２８（プリンタエンジン）に印刷データとしての画像信号が出力される。
【００２２】
ＣＰＵ２１はネットワークコントローラ（ＮｅｔＣ）２５を介してクライアント１０００との通信処理が可能である。通信によりネットワークプリンタ３０００内の情報等をクライアント１０００に通知可能に構成されている。ＲＡＭ２２はＣＰＵ２１の主メモリ、ワークエリアなどとして機能する。また、ＲＡＭ２２はクライアント１０００より受信した印刷データや画像ビットマップデータを格納しておくための描画メモリ、ビデオ信号情報格納領域、その他としても使用される。ハードディスクコントローラ２７にて制御されるハードディスク２９は印刷ジョブデータのＢＯＸ保存などのために使用される。操作パネル３０はユーザがネットワークプリンタ３０００を操作する際のユーザインタフェースであり各種スイッチやＬＥＤ表示機器の他、タッチパネル式の液晶パネルなどで構成される。この操作パネル３０を介して、ユーザはそのプリンタ３０００を、ネットワーク３１から切り離して撤去する旨の指示、すなわち永久的に切り離す旨の指示を入力できる。この指示があったことを示す情報はＲＡＭ２２に保存されて、プリンタ３０００から送信される、ネットワークからの離脱を示すｂｙｅメッセージの種類を決定する基礎となる。
【００２３】
ハードディスク２９には、プリンタ３０００の構成を示す構成情報データベースが保存されている。構成情報データベースは、各種のデータを含むデータベースである。構成情報データベースには、デバイスタイプ情報、サービス情報、デバイスの使用頻度情報、印刷速度情報、カラー印刷機能の有無を示すカラー機能情報、最高解像度情報、両面印刷機能の有無を示す両面機能情報、製造メーカ情報などが含まれている。
【００２４】
なお、ネットワークプリンタ３０００は本発明の機能を実施できる装置であればシングルファンクションプリンタでもスキャナやコピー、ファクシミリ等の機能も備えたマルチファンクションプリンタでもよい。印刷機構部２８としてレーザービームプリンタやインクジェットの印刷機構を用いたプリンタ、サーマルプリンタなどいかなるプリント方式を用いていようが、本発明の機能に制限をするものではない。
【００２５】
＜印刷システムの機能ブロック＞
図２は図１に示したクライアント１０００のコンピュータ本体２０００とネットワークプリンタ３０００のプリンタコントローラ部４０００におけるネットワーク接続に関連するモジュールを説明した機能ブロック図である。
【００２６】
クライアント１０００は、通信機能としてイーサネット（登録商標）に対応しており、イーサネット（登録商標）コントローラ１００１により制御される。ここでは通信機能をイーサネット（登録商標）としているが、ＷｉＦｉ（登録商標：ＩＥＥＥ８０．１１ａ／ｂ／ｇ）やＢｌｕｅＴｏｏｔｈ（登録商標）などの機能も考えられる。イーサネット（登録商標）コントローラより上位レイヤにはＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロセッサ１００４を備える。プラグアンドプレイ（ＰｎＰ）ユーティリティ１００２、ＷＳＤモジュール１００３、およびアプリケーション１００１などが、該処理部を介してｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で記述されたデータの双方向通信を実現する。
【００２７】
ネットワークマネージャ１００５は、イーサネット（登録商標）コントローラ１００７を管理しており、設定情報、通信状態に関する情報を取得する機能を備える。プラグアンドプレイ（ＰｎＰ）ユーティリティ１００２はネットワークマネージャ１００５を制御し、現在稼動中のイーサネット（登録商標）コントローラ情報、およびその設定情報を取得し、メモリ２上に記録する機能を有する。また、ＰｎＰユーティリティ１００２は、プラグアンドプレイ設定のＵＩを制御し、その設定内容をメモリ２上に記録する。これら設定情報は、ＰｎＰユーティリティ１００２によりＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）に変換され、ＸＭＬの形式でメモリ２上に記録される。
【００２８】
ＷＳＤモジュール１００３は、ＳＯＡＰプロセッサ１００４を介して、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークデバイスから通知されるＨｅｌｌｏメッセージに対する応答処理を実行する。また、ネットワークデバイス検索のためのＰｒｏｂｅメッセージの発行処理を実行する。ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様は、Ｍｉｃｒｏｓｏｆｔ社らがその仕様策定を推進する規格である。また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ＧｅｔＭｅｔａｄａｔａメッセージを発行する。ＧｅｔＭｅｔａｄａｔａメッセージに対してデバイスが送信する応答メッセージ（Ｍｅｔａｄａｔａ  ｆｏｒ  Ｄｅｖｉｃｅ）を受信することで、ネットワークデバイスの構成情報を取得する。ＧｅｔＭｅｔａｄａｔａメッセージにデバイスの構成情報が含まれている。
【００２９】
これらメッセージ処理によりネットワークデバイスが発見された場合、ＷＳＤモジュール１００３はＰｎＰコントローラ１００６に対して発見したネットワークデバイスの構成情報を通知する。ＰｎＰコントローラ１００６は、通知された構成情報をもとに該当するドライバやユーティリティソフトウエアをハードディスク１１やメモリ２より読み込み、クライアント１０００にインストールする機能を備える。あるいは、ドライバ等のソフトウエアを管理するためのソフトウエア管理サーバがネットワークに接続されている場合には、ドライバ等のプログラムは、そのソフトウエア管理サーバから読み込まれてもよい。
【００３０】
アプリケーション１００１は例えば文書処理アプリケーションなどである。アプリケーション１００１は、編集した文書データをネットワークデバイスであるプリンタにより印刷することができる。その際、アプリケーション１００１は、ＰｎＰコントローラ１００６によりインストールされたドライバやユーティリティを介して、ネットワークプリンタ３０００に対して印刷ジョブデータを送信する。
【００３１】
一方、ネットワークプリンタ３０００もイーサネット（登録商標）に互換の通信機能を備えている。イーサネット（登録商標）コントローラ３００１によって通信機能は制御されている。イーサネット（登録商標）コントローラ３００１の上位レイヤには、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロセッサ３００２を備える。ＷＳＤモジュール３００４、および印刷制御部３００３が、それぞれＳＯＡＰプロセッサ３００２を介してｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）で記述されたデータの双方向通信を実現する。
【００３２】
ここで、ＷＳＤモジュール３００４は、ＳＯＡＰプロセッサ３００２を介して、ネットワークデバイス３０００がネットワークに接続された際に、Ｈｅｌｌｏメッセージの送信処理を実行する。また、クライアント１０００から発行されるＰｒｏｂｅメッセージに対する応答処理を実行する。ＨｅｌｌｏメッセージおよびＰｒｏｂｅメッセージは、Ｍｉｃｒｏｓｏｆｔ社らがその仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づいたメッセージである。
【００３３】
また、ＷＳＤモジュール３００４は、クライアント１０００から発行されたＧｅｔＭｅｔａｄａｔａメッセージに応じ、ネットワークプリンタ３０００が持つ構成情報（Ｍｅｔａｄａｔａ  ｆｏｒ  Ｄｅｖｉｃｅメッセージ）を返信する。このメッセージの交換は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づいており、この仕様もＭｉｃｒｏｓｏｆｔ社らがその策定を推進している。
【００３４】
＜ネットワーク環境＞
図３は第１実施形態におけるネットワーク環境を簡略した図である。プリンタ１（１１０）、プリンタ２（１２０）、プリンタ３（１３０）がそれぞれ図１、図２のネットワークプリンタ３０００を示しており、クライアント１（３１０）、クライアント２（３２０）がそれぞれ図１、図２におけるクライアント１０００を示している。図に示す通り、本環境においてはネットワーク上にそれらが接続され、加えてＷＳＤにおけるＤｉｓｃｏｖｅｒｙＰｒｏｘｙ２００も接続されている。なお、第１実施形態では、ＤｉｓｃｏｖｅｒｙＰｒｏｘｙ２００については特に説明しない。後述の第２の実施形態においてはＤｉｓｃｏｖｅｒｙＰｒｏｘｙ２００を用いた構成を説明する。
【００３５】
同時に、図３には、プリンタ１（１１０）の操作パネル３０のＵＩ（ユーザインターフェース）画面に、「ＰＣ上のドライバを自動削除します」と表示された「ドライバ削除通知」ボタン１００が存在する操作パネル３０を示している。ネットワークプリンタを管理する管理人はプリンタ１（１１０）を廃棄する際または、他のネットワークにプリンタ１（１１０）を移動する。これにより、今後、本環境に二度とプリンタ１（１１０）が接続されないと判断した場合にはこの「ドライバ削除通知」ボタン１００を押して、その後プリンタをシャットダウンする。なお、「ドライバ削除通知」ボタン１００はデバイスがサービスマンモードになっている時のみ現れるなど、容易に押すことが出来ないようになっていることが望ましい。ドライバ削除通知ボタン１００の押下が、前述の、ネットワーク３１からプリンタ３０００切り離して撤去する旨の指示、すなわち永久的に切り離す旨の指示に相当する。
【００３６】
また、図３はプリンタ２（１２０）が、現在、消費電力を抑えるためのスリープ状態になっていることを示しており、また、プリンタ３（１３０）が何らかの理由でネットワーク接続から切断されている状況を示している。
【００３７】
＜ＷＳＤの動作の概略＞
図１４は、ネットワーク３１に接続されたクライアントコンピュータ１０００とネットワークプリンタ３０００とによるＷＳ−ＤｉｓｃｏｖｅｒｙおよびＷＳ−Ｍｅｔａｄａｔａにしたがったデバイスのインストール手順の図である。
【００３８】
図１４（Ａ）は、たとえばクライアントコンピュータにおける操作などをトリガとした探索手順の例である。たとえばウインドウズ（登録商標）においては、「プリンタの追加」という機能がユーザに対して提供されている。ユーザがその機能を実行すると、図１４（Ａ）の手順が実行される。まずクライアントコンピュータ１０００からプリンタ３０００に対して、デバイス探索要求（Ｐｒｏｂｅ）メッセージ１９０１が送信される。デバイス探索要求メッセージ１９０１は、ネットワーク３１全体にブロードキャストされる。デバイス探索要求メッセージ１９０１はＸＭＬで記述されており、ＷＳ−Ｄｉｓｃｏｖｅｒｙのための名前空間の定義などの他、当該メッセージがデバイス探索要求メッセージであることを示す情報や、探索対象のデバイスタイプが含まれる。本例では、探索対象のデバイスタイプはプリンタであるので、ＷＳ−Ｄｉｓｃｏｖｅｒｙで定義されたタイプタグには「ＰｒｉｎｔＢａｓｉｃ」と記述される。メッセージの種類（タイプ）を示す情報が含まれることは、この後説明する各メッセージについて同様である。
【００３９】
デバイス探索要求メッセージ１９０１を受信したデバイスは、そのメッセージの種類を判定する。デバイス探索要求メッセージ１９０１であれば、探索対象のデバイスタイプをメッセージから読み取り、それがデバイスのタイプと一致するか判定する。この判定は、デバイスの構成情報２９０１に保存されたデバイスタイプ情報と、デバイス探索要求メッセージに含まれる探索対象のデバイスタイプとを照合して行われる。一致すれば当該デバイスは探索対象のデバイスである。したがって、デバイスの構成情報に保存されたデバイスタイプ情報は、デバイス探索要求メッセージのタイプと同じ形式で保存されることが望ましい。
【００４０】
デバイスは、それ自身が探索要求メッセージによる探索対象のデバイスであると判断したなら、応答（Ｐｒｏｂｅ  Ｍａｔｃｈ）メッセージ１９０２をクライアント１０００に送信する。応答メッセージ１９０２には、応答したデバイスのアドレス（たとえばＩＰアドレス）が含まれている。
【００４１】
クライアント１０００は応答メッセージ１９０２を送信したデバイスに対して、デバイス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０３を送信する。デバイス情報要求メッセージ１９０３は、デバイスの持つ構成情報データベースにアクセスして指定した情報を取得するためのメッセージである。本実施形態では、クライアントはここで、デバイスに対して、デバイスの使用頻度、印刷速度、カラー印刷機能の有無、最高解像度、両面印刷機能の有無、製造メーカなど、デバイスの構成情報を示す項目のデータを要求する。
【００４２】
デバイス情報要求メッセージ１９０３を受信したデバイス３０００は、要求された項目についてその内容を構成情報データベースから読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報（ＭｅｔａＤａｔａｆｏｒＤｅｖｉｃｅ）メッセージ１９０４に収めてクライアント１０００に送信する。
【００４３】
デバイス情報１９０４を受信したクライアント１０００は、次にサービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０５をデバイスに送信する。サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９０５は、送信先のデバイスが提供可能なサービスを示すサービス情報を、構成情報データベースから取得するためのメッセージである。
【００４４】
サービス情報要求メッセージ１９０５を受信したデバイスは、構成情報データベースからサービス情報を読み、それをサービス情報（ＭｅｔａＤａｔａｆｏｒＳｅｒｖｉｃｅ）メッセージ１９０６に書き込んでクライアント３０００に送信する。
【００４５】
サービス情報メッセージ１９０６を受信したクライアントは、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント１０００にインストールする（１９０７）。サービス情報に対応するデバイスドライバは、クライアント１０００が有するドライバファイルのデータベースに含まれているなら、そのデータベースから読み取ってインストールする。クライアント１０００が有するドライバファイルのデータベースに含まれていない場合には、たとえばネットワークに接続されたソフトウエア管理サーバからドライバファイルをダウンロードしてインストールする。サービス情報に対応するデバイスドライバの特定は、たとえば、サービス情報に、デバイスドライバファイル名（ファイルの所在を示す情報を含む）を対応付けたディレクトリ情報に基づいて行える。クライアントはそのディレクトリ情報を参照して、受信したサービス情報に対応するデバイスドライバファイル名を獲得する。そして獲得したそのファイル名の示すデバイスドライバファイルを読み、それをインストールする。なおディレクトリ情報は、クライアント１０００あるいは前記ソフトウエア管理サーバが保持管理する。
【００４６】
このようにしてインストールされたデバイスドライバは、図１６に示すインストール済みデバイスリスト１６００に登録される。登録される情報は、デバイス名称（識別名）１６０１、ＩＰアドレス１６０２、ドライバ名（ドライバファイル名）１６０３、アンインストーラ名１６０４、アイコンファイル名１６０５、付加情報１６０６などである。これによって、ドライバがインストールされているデバイスの名称、アドレス、ドライバ名を特定できる。また、そのデバイスをクライアントコンピュータにおいて表示するために使用されるアイコンファイルも特定できる。前述との通り、図１６のインストール済みデバイスリスト１６００は、レジストリでも代替可能である。
【００４７】
一方図１４（Ｂ）は、たとえばプリンタなどのネットワークデバイスをネットワークに接続して電源を投入するなど、ネットワークデバイスの追加操作をトリガとした探索手順の例である。デバイスがネットワークに接続されると、イーサネット（登録商標）コントローラ３００１によりネットワークへの接続が認識される。それをきっかけにしてプリンタ３０００からクライアントコンピュータ１０００に対して、ネットワーク参加通知（Ｈｅｌｌｏ）メッセージ１９１１が送信される。ネットワーク参加通知メッセージ１９１１には、少なくともネットワーク参加通知メッセージ１９１１の送信元デバイス３０００の所在を示すアドレス情報が含まれる。
【００４８】
ネットワーク参加通知メッセージ１９１１を受信したクライアント１０００は、その送信元のデバイスのデバイスドライバがインストールされているか判定する。インストールされていれば、図７に後述するような、アイコンの変更処理を必要に応じて行う。インストールされていなければ、そのメッセージ１９１１の送信元デバイスに対して、デバイス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１２を送信する。デバイス情報要求メッセージ１９１２は、デバイス情報要求メッセージ１９０３と同内容のメッセージである。
【００４９】
デバイス情報要求メッセージ１９１２を受信したデバイス３０００は、要求された項目についてその内容をデータベースから読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報（ＭｅｔａＤａｔａｆｏｒＤｅｖｉｃｅ）メッセージ１９１３に収めてクライアント１０００に送信する。
【００５０】
デバイス情報１９１３を受信したクライアント１０００は、サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１４をデバイス３０００に送信する。サービス情報要求（ＧｅｔＭｅｔａＤａｔａ）メッセージ１９１４は、サービス情報要求メッセージ１９０５と同じ内容を持つ。
【００５１】
サービス情報要求メッセージ１９１４を受信したデバイス３０００は、構成情報データベース２９０１からサービス情報を読み、それをサービス情報（ＭｅｔａＤａｔａｆｏｒＳｅｒｖｉｃｅ）メッセージ１９１５に書き込んでクライアント３０００に送信する。
【００５２】
サービス情報メッセージ１９１５を受信したクライアント１０００は、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント１０００にインストールする（１９１６）。この手順は図１４（Ａ）のインストール１９０７と同様に行われる。デバイスドライバがインストールされたデバイスについては、そのデバイスドライバに関する情報が、インストール済みデバイステーブル１６００に、図１４（Ａ）と同様にして登録される。
【００５３】
以上がＷＳ−Ｄｉｓｃｏｖｅｒｙに準拠したデバイスドライバのインストール手順である。
【００５４】
＜デバイスのネットワークからの離脱＞
さて、以上のようにしてネットワークプラグアンドプレイは実現される。ここで、本実施形態では、デバイス（特にプリンタ）が、オフライン状態になる場合に、その理由に応じた離脱を示すメッセージ（Ｂｙｅ要求）をクライアントコンピュータに対して発行する。クライアントはそのメッセージを受信すると、その内容に応じてデバイスのインストールや、表示状態の変更処理を行う。この処理について、以下、詳しく説明する。
【００５５】
図４（Ａ）は本発明の実施の形態においてＷＳＤにおけるＢｙｅ要求を細分化して使用する場合のＢｙｅ要求の種類を示した図である。ここではＢｙｅ要求を４種類に分け、それぞれ「Ｂｙｅ要求」「スリープ時のＢｙｅ要求」「故障時のＢｙｅ要求」「最後のＢｙｅ要求」としている。それぞれ使用するタイミングとＢｙｅ要求（ＸＭＬで記述）に対する付加情報を示している。
【００５６】
図４（Ｂ）は、Ｂｙｅ要求メッセージのフォーマットの例を示す図である。Ｂｙｅメッセージは、送信元アドレス１５１１、宛先のアドレス１５１２、Ｂｙｅ要求であることを示す所定のメッセージＩＤ１５１３、図４（Ａ）に示した４種類のうちのどれであるかを示す種類１５１４、付加情報１５１５というフィールドを有する。クライアントは、送信元アドレス１５１１をインストール済みデバイスリスト１６００から検索することで、Ｂｙｅメッセージの送信元のデバイスのドライバがインストールされているか否か判断できる。また種類フィールド１５１４には、上述の４種類のどれであるかを示す値が含まれているので、その値に基づいて、Ｂｙｅ要求の種類を判断できる。このメッセージは、それを受信したクライアントにおいてはＲＡＭ２に保存されて、上記判定のために参照される。つまり、デバイスは、周辺機器が一時休止状態への移行によりネットワークから離脱する場合には一時休止状態に移行した旨の一時休止通知を含んだＢｙｅ要求（離脱メッセージ）を送信する。また、デバイスは、障害の発生によりネットワークから離脱する場合には障害が生じた旨の障害発生通知を含んだ離脱メッセージを送信する。なお、Ｂｙｅ要求と離脱メッセージは同義である￥。
【００５７】
＜デバイスによるＢｙｅ要求の発行＞
以下、プリンタによるＢｙｅ要求の送信及び、クライアントコンピュータによるＢｙｅ要求の処理についてフローチャートを用いて説明する。
【００５８】
図５はデバイスのシャットダウン時の動作を示している。この処理はプリンタのＣＰＵ２１により実行される。デバイスのシャットダウンを指示されたデバイスは、はじめに、所定のデバイス終了処理を行う（４０２）。デバイス終了処理とは、現在のデバイスの設定をハードディスク２９に格納したり、印刷機構部２８に対してハード的な終了処置を行う作業である。シャットダウンの指示は、たとえばユーザによる電源ボタン等の操作で行える。このほか、スリープ状態への移行するためのタイマの満了や、致命的故障の発生なども、シャットダウンの指示と見なされて、図５の処理が行われる。
【００５９】
その後、デバイスは、先ほど図３にて説明した「ドライバ削除通知」ボタン（１００）が押されていたかどうかを判定する（４０３）。「ドライバ削除通知」ボタン（１００）が押されれば、ＲＡＭ２２に確保された所定の領域（削除通知フラグと呼ぶことにする。）に、「ドライバ削除通知」ボタン（１００）が押されたことを示す情報が記録される。したがってステップ４０３では、そのＲＡＭ２２を参照して、「ドライバ削除通知」ボタン（１００）が押されていたかどうか判定する。
【００６０】
もし「ドライバ削除通知」ボタン（１００）が押されていたら、図４で説明した「最後のＢｙｅ要求」をマルチキャストにて発行する（４０４）。Ｂｙｅ要求メッセージの宛先はクライアントコンピュータすなわちホストである。したがって、宛先アドレスフィールドには、ホストを指定したマルチキャストアドレスが記録される。送信元アドレスはそのプリンタのアドレスである。またＢｙｅ要求の種類は、種類フィールド１５１４で示されるので、このＢｙｅ要求メッセージには、「最後のＢｙｅ要求」に対応する値が種類フィールド１５１４に書き込まれている。つまり、デバイスは、コンピュータと通信可能な状態であり、操作者による指示を入力するための入力ボタンを有している。そして、入力ボタンにより、周辺装置と対応するデバイスドライバを削除する旨が指示された場合、周辺装置と対応するデバイスドライバを削除する旨の情報を含んだＢｙｅ要求（離脱メッセージ）を送信する。  一方、ステップ４０３において、デバイスが、削除通知フラグを参照する。デバイスは、「ドライバ削除通知」ボタン（１００）が押されていないと判定した場合（４０３−Ｎｏ）、通常の「Ｂｙｅ要求」をネットワークに対してマルチキャストして（４０５）デバイスの電源を落とす（４０６）。通常のＢｙｅ要求とは、最後のＢｙｅ以外のＢｙｅ要求である。図４（Ａ）に示すように、通常のＢｙｅ要求にも、通常のオフラインのほか、スリープ状態への移行やデバイスの故障などのバリエーションがある。そこで、ステップ４０５では、オフラインの原因に応じたＢｙｅの種類に対応する値をＢｙｅ要求メッセージの種類フィールド１５１４に書き込む。オフラインの原因は、図５の処理に分岐するときにパラメータとして受け取っていれば、そのパラメータから直ちに判定できる。また、オフラインの原因に応じた付加情報を、Ｂｙｅ要求メッセージの付加情報フィールド１５１５に書き込む。付加情報は、ＲＯＭ２３にあらかじめＢｙｅの種類を示す値に対応付けて記録しておけばよい。
【００６１】
以上の手順でプリンタ３０００は、オフライン状態に移行する前に、オフラインとなった理由に基づいたＢｙｅメッセージをクライアントコンピュータ全てに対して送信する。そのＢｙｅ要求メッセージには、種類と付加情報とが含まれている。その種類と付加情報とに基づいて、Ｂｙｅ要求を受信したクライアントは、当該プリンタがオフラインとなった原因を判定することができる。
【００６２】
＜クライアントによりＢｙｅ要求処理＞
図６はクライアント１０００がデバイスからＢｙｅ要求を受け取ったときのフローチャートを示している。この手順はクライアント１０００のＣＰＵ１により実行される。図４で示したとおり、デバイスからのＢｙｅ要求は４種類に細分化されており、それぞれ状況に応じた対応が可能となっている。つまり、クライアント１０００は、状態情報を含んだメッセージを発行する周辺機器と通信可能なコンピュータにより実行されるプログラムを記憶している。
【００６３】
クライアント１０００は、ネットワークプリンタからのＢｙｅ要求を受信すると、まず該当するプリンタすなわちＢｙｅ要求の送信元であるプリンタのドライバが自らにインストールされているかどうかをチェックする（５０２）。
つまり、５０２の処理は、周辺機器から離脱メッセージを受信することにより実行される。たとえば、インストール済みデバイスリスト１６００を検索して、図４（Ａ）に示す送信元アドレスフィールド１５１１と同一のアドレスを持つＩＰアドレスフィールド１６０２を探す。発見できればインストールされている。発見出来なければインストールされていないと判断できる。
【００６４】
ここで、インストールされていなければ、Ｂｙｅ要求は特に意味を持たないため、動作を終了する。クライアント１０００が、ステップ５０２においてインストールされていると判断した場合、次にそのＢｙｅ要求が「最後のＢｙｅ要求」かどうかを判定する（５０３）。つまり、クライアント１０００は、周辺機器より受信した離脱メッセージを解析する。Ｂｙｅ要求の種類は、Ｂｙｅ要求メッセージの種類フィールド１５１４を参照して判定できる。「最後のＢｙｅ要求」であった場合、クライアント１０００は、次に該当するドライバのアンインストーラを保持しているかどうかを判定する（５０８）。ドライバのアンインストーラは、ユーザを煩わせずにそのドライバをアンインストールするために作成されたプログラムである。インストール時にアンインストーラも所定のあるいは指定された場所に保存されることが多い。そこで、たとえば図１６のインストール済みデバイスリスト１６００のアンインストーラ名フィールド１６０４に、デバイスに関連づけてアンインストーラプログラムファイル名とその所在（パス等）を登録しておく。アンインストーラがなければ空白とする。ステップ５０８では、アンインストーラ名フィールド１６０４の内容をみて空白でなければアンインストーラを有すると判定する。なお、アンインストーラについても、そのファイル名や所在をレジストリに登録しておき、レジストリを参照してその有無を判定することもできる。
【００６５】
さて、アンインストーラを保持していなければ、クライアント１０００は、ネットワーク上を探索するなどして該当するドライバのアンインストーラを取得する（５０９）。探索はたとえばローカルエリアネットワーク上のサーバを対象としてもよいし、インターネット上で検索しても良い。次にそのアンインストーラを起動して、クライアント１０００は、自動で該当するプリンタドライバを削除する（５１０）。クライアント１０００は、離脱メッセージに含まれる情報が離脱メッセージの送信元の周辺機器に対応するデバイスドライバを削除する旨の削除通知であると解析した場合、離脱メッセージの送信元の周辺機器に対応するドライバプログラムを削除する。
【００６６】
一方、Ｂｙｅ要求が「故障時のＢｙｅ要求」であるとステップ５０４で判定された場合には、クライアント１０００は、Ｂｙｅメッセージの種類をメモリ２に記憶する。たとえば、プリンタの状態を示す変数を「故障」を示す値に書き替える。こうして、オペレーティングシステムに、故障に応じたアイコンを使用させることができる。これは他の種類のＢｙｅメッセージについても同様である。このようにして、ドライバアイコンの表示時には、クライアント１０００は、そのＢｙｅメッセージの種類に応じて、あらかじめ用意した故障中表示用のアイコンを表示できる（５１１）。あるいは、図１６のインストール済みデバイスリストのアイコンファイル名フィールド１６０５に、故障を示すアイコンのアイコンファイル名を登録してもよい。その場合には、デバイスのアイコンとして、アイコンファイル名フィールド１６０５に登録されたファイルが使用される。またＢｙｅ要求メッセージの付加情報１５１５（平均復帰時間、故障状況など）を、インストール済みデバイスリスト１６００の付加情報フィールド１６０６に複製する。つまり、Ｂｙｅ要求（離脱メッセージ）には、離脱メッセージの送信元の周辺機器に関する付加情報が含まれている。離脱メッセージに含まれる情報が一時休止状態を示す情報である場合、離脱メッセージは付加情報として離脱メッセージの送信元である周辺機器の復旧時間に関する情報を含む。また、離脱メッセージに含まれる情報が故障状態であることを示す情報である場合、離脱メッセージは付加情報として離脱メッセージの送信元である周辺機器の故障状態を含む。クライアント１００は、これらの付加情報に基づいて、アイコン（画像）を切り替えて表示する。クライアント１００は、受信したＢｙｅ要求（離脱メッセージ）に含まれる情報が故障状態であることを示す情報であると解析された場合、離脱メッセージを通知してきた周辺機器に対応する画像を故障状態に対応した画像に切り替えて表示する。つまり、クライアント１００は、Ｂｙｅ要求（離脱メッセージ）に含まれる情報が削除通知とは異なる情報であると解析された場合、離脱メッセージを通知してきた周辺機器に対応する画像を離脱メッセージに含まれる情報に対応した画像に切り替えて表示する。
【００６７】
同様にステップ５０５で「スリープ時のＢｙｅ要求」であると判定された場合には、クライアント１０００は、Ｂｙｅメッセージの種類をメモリ２に記憶しておく。そして、ドライバアイコンの表示時には、クライアント１００は、そのＢｙｅメッセージの種類に応じてドライバアイコンをスリープ表示する（５１２）。あるいは、インストール済みデバイスリストのアイコンファイル名フィールド１６０５に、スリープ状態を示すアイコンのアイコンファイル名を登録してもよい。つまり、クライアント１００は、受信した前記Ｂｙｅ要求（離脱メッセージ）に含まれる情報が一時休止状態を示す情報であると解析した場合、離脱メッセージを通知してきた周辺機器に対応する画像を一時休止状態に対応した画像に切り替えて表示する。Ｂｙｅ要求メッセージの付加情報１５１５を、インストール済みデバイスリスト１６００の付加情報フィールド１６０６に複製する。付加情報はアイコンとともに表示される。
【００６８】
以上のどのＢｙｅ要求に該当しない、通常の「Ｂｙｅ要求」であると判定された場合は、そのＢｙｅメッセージの種類をメモリ２に記憶しておく。そして、ドライバアイコンの表示時にはそのＢｙｅメッセージの種類に応じたドライバアイコンをグレーアウト表示する（５０６）。これらの表示例を簡易的に図示したのが図８である。アイコン３３０１〜３３０４が、Ｂｙｅ要求メッセージの種類に応じて表示される。また、付加情報である文字列がアイコンと共に表示される。
【００６９】
＜Ｈｅｌｌｏ要求の処理＞
図７に、クライアント１０００がネットワークプリンタからのＨｅｌｌｏ要求メッセージを受信したときのフローを示す。なお、本実施の形態においてはＨｅｌｌｏ要求はＢｙｅ要求のように細分化していないが、同様に細分化して実装することも可能である。図７の処理は、図１４（Ｂ）におけるクライアント１０００のＣＰＵ１によって処理される。ここでは、インストールに際して行うデバイス情報やサービス情報の取得手順は省略した。
【００７０】
クライアント１０００は、ネットワークプリンタからのＨｅｌｌｏ要求を受信すると、まず該当するプリンタのドライバがインストールされているかどうかを判定する（６０２）。この判定は、インストール済みデバイスリスト１６００や、あるいはレジストリを参照して行える。該当するプリンタのドライバがインストールされていなければ、ネットワークＰｎＰの動作にしたがって該当するドライバのインストーラを保持しているかどうかを判定する（６０６）。ここで保持していなければ、ネットワーク上を検索するなどしてインストーラを取得する（６０７）。該当するドライバのインストーラを実行することでＨｅｌｌｏ要求を行ってきたネットワークプリンタのドライバを自動インストールする（６０８）。
【００７１】
一方、Ｈｅｌｌｏ要求の送信元であるネットワークプリンタのドライバがすでにクライアント１０００上にインストールされているときは、そのドライバが現在Ｂｙｅ要求によってアイコン表示が変更されているかどうかを判定する（６０３）。この判定は、アイコン名が、インストール済みデバイスリスト１６００のアイコン名フィールド１６０５に登録されている場合には、この名称を基に判定できる。また、Ｂｙｅ要求の種類を記憶している場合には、その記憶場所を参照して、受信したＢｙｅ要求の種類を判定できる。
【００７２】
アイコン表示が変更されていなければ、すなわちそのプリンタは続けて使用可能である。ということで何もせずに終了する。すでにＢｙｅ要求によってドライバアイコンが変更されている時は、Ｈｅｌｌｏ要求が来たことによって、今後は使用が可能なことが確認できたのでドライバアイコンを通常に戻す（６０４）。ここでは、たとえば図６のステップ５０６，５１１，５１２で行った操作の逆の操作を行う。たとえば、アイコン名フィールド１６０５にアイコン名が登録された場合にはそれを削除する。また、プリンタの状態を示す変数が変更された場合にはその値を「正常」を示す値に戻す。
【００７３】
これによりクライアント１０００は、ネットワークプリンタからのＨｅｌｌｏ要求を受け付けたときには、自動でそのプリンタを使用可能な状態に設定される。
【００７４】
図８はクライアント１０００におけるドライバアイコンを示した様子である。動作中のプリンタ１（１１０）に対し、プリンタ２はスリープ中（１２０）、プリンタ３（１３０）はオフライン、プリンタ４は故障中であることがクライアントに示される。加えてスリープ中、故障中プリンタに対しては平均復帰時間などの付加情報の提示がなされている。
【００７５】
図９に示すＵＩ３４０は、ユーザに対して自動アンインストールして構わないかどうかを確認するためのＵＩである。これは、プリンタからクライアント１０００に対して「最後のＢｙｅ要求」がなされたときに、図６のステップ５０９におけるアンインストールの実行前に表示される。通常は「最後のＢｙｅ要求」が発行されることはなく、利便性を高めるため本ＵＩは表示せずに自動で削除することが望ましい。つまり、クライアント１０００は、受信したＢｙｅ要求に含まれる情報が、周辺機器がネットワークから永久的に離脱する旨の通知であると解析した場合、そのＢｙｅ要求の送信元の周辺機器に対応するドライバプログラムの削除指示用のＵＩ画面３４０を表示する。そして、ユーザインターフェース画面を介して削除指示された場合に、最終離脱通知により離脱を通知してきた周辺機器に対応するドライバプログラムを削除する。
【００７６】
以上のようにして、本実施形態のプリンタは、オフラインとなる理由に応じた種類のＢｙｅメッセージ（離脱要求）をクライアントに送信する。特に、ドライバを削除させたい場合には、「最後のＢｙｅ」を送信する。クライアントは、プリンタからのＨｅｌｌｏメッセージ（参加要求）に応じて、ドライバをインストールする。あるいは、既にインストールされているのであれば、その状態情報を、正常を示す値に復帰させる。また、プリンタからのＢｙｅメッセージの種類に応じて、最後のＢｙｅ（永久的な離脱要求）であればドライバをアンインストールする。その他の種類のＢｙｅメッセージであれば、種類に応じて、プリンタの状態を示す情報を変更する。そのプリンタのアイコンは、状態を示す情報に応じたものが表示される。本実施例にて受信する離脱メッセージは、所定のデバイス検索システム（ＷＳＤ）において周辺機器がネットワークから離脱する離脱情報である。
この結果、プリンタの管理者が最後のＢｙｅメッセージを送信させることで、クライアントのドライバを削除させることができる。このため、クライアントにインストールされているデバイスドライバが無制限に増えることを防止できる。
【００７７】
［第２実施形態］
本発明の第２実施形態として、ネットワーク上にＤｉｓｃｏｖｅｒｙＰｒｏｘｙ２００が存在した場合の構成及び動作を説明する。図１０から図１３は、ネットワーク上にＤｉｓｃｏｖｅｒｙＰｒｏｘｙ（プロキシと呼ぶ。）２００が存在した場合の、本発明の実施の形態におけるＤｉｓｃｏｖｅｒｙＰｒｏｘｙ２００の動作フローである。また、図１５（Ａ）は、デバイスがネットワークに参加する際のシーケンスの例を示す図である。図１５（Ｂ）は、本実施形態におけるＢｙｅメッセージのフォーマットの例を示す。
【００７８】
図１５（Ａ）と第１実施形態の図１４（Ｂ）とは、プロキシ２００がプリンタ３０００とクライアント１０００との間に介在し、Ｈｅｌｌｏ要求及びＢｙｅ要求を中継している点で相違する。図１５（Ａ）では、プリンタ３０００はＨｅｌｌｏ要求１５０１及びＢｙｅ要求１５０３をマルチキャストせず、プロキシ２００宛にユニキャストする。プロキシ２００はそれぞれのメッセージを受信すると、図１１及び図１３の処理を行う。そしてプロキシ２００は、Ｈｅｌｌｏ要求１５０２及びＢｙｅ要求１５０４それぞれを、クライアントを宛先としてマルチキャストする。そのとき、それぞれのメッセージの発信元であるプリンタを特定するための情報も付す。また、クライアントからの要求、たとえば印刷要求を受信してそれをプリンタに中継する。プロキシ２００はクライアントと同様に汎用コンピュータを用いることができ、クライアントと同様の構成を有する。
【００７９】
図１５（Ｂ）は、本実施形態においてプロキシ２００からクライアント１０００に送信されるＢｙｅ要求メッセージ１５０２の例を示す。Ｂｙｅ要求１５０１は第１実施形態と同様である。図４（Ｂ）に示した形式に対して、プリンタＩＤ１５１６が付加されている。これは、プロキシ２００が中継することで、送信元がプロキシとなるためである。Ｂｙｅ要求１５０２を受信したクライアントは、プリンタＩＤ１５１６を参照して、Ｂｙｅ要求の送信元のプリンタを識別する。なお、これはＨｅｌｌｏ要求１５０２についても同様で、プリンタＩＤが付されている。
【００８０】
図１０はプロキシ２００が保持するデバイスリスト１０１０の例を示している。プロキシ２００はネットワークに接続されているネットワークプリンタをこのようなデバイスリスト１０１０で管理しており、それぞれプリンタの状況を把握している。デバイスリスト１０１０の参照や更新に関して図１１から図１３を用いて説明する。デバイスリスト１０１０には、受信したＨｅｌｌｏ要求の送信元のプリンタについて、図示する項目が登録される。すなわち、デバイス名１０１１、モデル１０１２、ＩＰアドレス１０１３である。また、登録されたデバイスに関して、その状態が、フラグフィールド１０１４〜１０１７で示されている。フラグフィールドで示される状態は、Ｂｙｅ要求の種類に応じて登録され、廃棄済み、故障中、スリープ、オフラインの４種がある。なお、デバイスリスト１０１０は、プロキシ２０００のＲＡＭ等に保持されている。図１１〜図１３のプロキシは、メッセージを発行する周辺機器とクライアントコンピュータと通信可能なサーバコンピュータである。なお、プロキシは、周辺機器からＢｙｅ要求やクライアントからの使用要求からなるメッセージを受信して、メッセージを解析する機能を有している。そして、プロキシ２００は、解析されたメッセージが周辺機器からのＢｙｅ要求（離脱メッセージ）であると解析された場合に、離脱メッセージ送信元の周辺機器に対応する状態情報を離脱メッセージに含まれる情報の種類に基づいて管理する。
【００８１】
図１１は、プロキシ２００がデバイスからＢｙｅ要求を受信したときのフローを示している。プロキシ２００はデバイスからＢｙｅ要求１５０１を受け取ると、まず自分の管理しているデバイスリスト１０１０を参照する（７０２）。そしてプロキシ２００は、該当するプリンタがデバイスリスト１０１０にあるかどうか判定する（７０３）。詳細には図１５（Ｂ）に示したとおり、Ｂｙｅ情報にはプリンタＩＤが含まれている。よって、Ｂｙｅ情報に含まれるプリンタＩＤとデバイスリスト１０１０を比較することにより、７０３の処理が可能となる。プロキシ２００が、７０３の処理によりリストにないと判定した場合、デバイスリスト１０１０に追加する（７０４）。Ｂｙｅ要求１５０１にプリンタ名及びモデル名があれば（図４（Ａ）には含まれていない）、それを用いてリスト１０１０に登録する。含まれていない場合には、デバイス情報要求をデバイスに送信してデバイス情報を獲得し、それを用いて登録する。
【００８２】
次にプロキシ２００は、Ｂｙｅ要求１５０１が「最後のＢｙｅ要求」かどうかを、Ｂｙｅに含まれる種類１５１４を参照して判定する（７０５）。「最後のＢｙｅ要求」であった場合には、プロキシ２００は、デバイスリスト１０１０の廃棄済みフィールド１０１４をセットする（図では丸印で示す）。図１０の例では、プロキシ２００が、デバイス名１に関する情報を含んだ最後のＢｙｅを受信したため、デバイス名１の廃棄済フィールドに廃棄した旨を示す情報がセットされている。
【００８３】
また、プロキシ２００が解析した結果、「故障時のＢｙｅ要求」「スリープ時のＢｙｅ要求」「Ｂｙｅ要求」であったときには、デバイスリスト１０１０の故障中フィールド１０１５、スリープフィールド１０１６、オフラインフィールド１０１７を更新する。この処理は,処理７０６から７０８および７１２および７１３に該当する。更新により、各フィールドのフラグをセットする。こうして、デバイス１０００からのＢｙｅ要求１５０１は、プロキシ２００のデバイスリスト２１０にデバイス状態として記憶される。その後、受信したＢｙｅ要求を接続された複数のクライアントに知らせるため、そのままマルチキャストする（７０９）。なお。図１５（Ｂ）では送信元を示すためにプリンタＩＤ１５１６を付したが、送信元１５１２にプリンタ３０００のアドレスを書いて送信すれば、プリンタＩＤ１５１６は必要ない。
【００８４】
図１２は、プロキシ２００が、クライアント１０００からネットワークプリンタ３０００に対する何らかの要求メッセージ、たとえば印刷要求を受信した際のフローを示している。受信したメッセージが、クライアント１０００からの何らかの要求メッセージであることは、送信元アドレスとメッセージの種類とにより判定できる。ネットワークプリンタ３０００に対するメッセージであることは、図１５（Ｂ）のようにクライアントからプリンタ３０００に対する要求メッセージに対して相手先プリンタのアドレスやＩＤを示すフィールドを設けておく。プロキシ２００は、それを参照することで要求先のデバイスを識別することができる。
【００８５】
プロキシ２００は、クライアントから要求メッセージを受信すると、まず、デバイスリスト１０１０を参照する（８０２）。ここで、プロキシ２００は、要求先のデバイスからすでにＢｙｅ要求を受け取っているかどうかを判定する（８０３）。例えば、クライアントから受信した要求メッセージにプリンタ１に関連する識別情報が含まれていた場合、プロキシ２００は、プリンタ１の各項目を参照する。その結果、プリンタ１の廃棄済フィールド１０１４にフラグがセットされているため、プロキシ２００は、プリンタ１からＢｙｅ要求を受信したと判定することができる。ここでは、デバイスリスト１０１０のフラグフィールド１０１４−１０１７のうち、ひとつでも設定されていれば、Ｂｙｅ要求を受け取っていると判定できる。受け取っていなければ、デバイスは通常動作中であると考えられる。そこで、要求先のデバイスからＢｙｅ要求を受けていないと判定した場合、プロキシ２００は、クライアントから受信した要求メッセージに含まれるデバイスに対して、その要求をユニキャストして伝える。そして、プロキシは２００は、クライアントからの要求に応答して処理を終了する（８０９）。
【００８６】
また、８０３の判定処理により、要求先のデバイスからＢｙｅ要求を受け取っていると判定した場合、プロキシ２００は、デバイスから受信したＢｙｅ要求の内容に従った処理を行う。たとえば「廃棄済み」フィールド１０１４がセットされていれば、「最後のＢｙｅ要求」をすでに受け取っている。その場合には、プロキシ２００は、要求元のクライアントに対して代理で「最後のＢｙｅ要求」を行う。つまり、プロキシ２００は、周辺機器リストによって管理されている状態情報に含まれる使用要求により要求された周辺機器に対応する状態が、周辺機器がネットワークから永久的に離脱することを示す最終離脱通知に対応する状態であるかを判定する。その結果、プロキシ２００が、周辺機器がネットワークから永久的に離脱することを示す最終離脱通知に対応する状態であると判定した場合、使用要求の要求元のクライアントコンピュータに対して、周辺機器を代行して最終離脱通知を送信する。また、周辺機器がネットワークから一時的に離脱することを示す一時離脱通知に対応する状態であると判定した場合、前記使用要求の要求元のクライアントコンピュータに対して、一時離脱通知を送信する。これは、要求元のクライアントに「最後のＢｙｅ要求」が届いていないことが考えられるためである。この処理を行うことで、デバイスからの「最後のＢｙｅ要求」送信時に受け取ることの出来なかったクライアントにも「最後のＢｙｅ要求」が届き、ドライバのアンインストールを行うことが可能となる。デバイスが他のＢｙｅ要求を出していたときも、フラグフィールド１０１５−１０１７の値によって判定できる。それらの場合にも、プロキシ２００が代行してＢｙｅ要求をクライアントに送信する（８０４−８０７，８１０−８１２）。このプロキシ２００がクライアントに対して送信するＢｙｅメッセージには、プリンタＩＤフィールド１５１６にクライアントが要求を出す相手であるプリンタのＩＤが書き込まれる。このＢｙｅ要求は、図１５（Ａ）のＢｙｅ要求メッセージ１５０４と同じものである。
【００８７】
例えばデバイスＡがネットワークから離れることに応じて最後のＢｙｅ要求を送信した際に、クライアントがなんらかの理由で最後のＢｙｅを受け取れない場合がある。ここで、図１２の処理を用いることにより、クライアントがデバイスＡを指定して印刷要求を指示することに応じて、プロキシ２００がデバイスＡから受け取った最後のＢｙｅをクライアントに通知する。よって、クライアントは、デバイスＡから直接最後のＢｙｅを受信することができなくても、プロキシ２００からデバイスＡが送った最後のＢｙｅを受信して、デバイスＡに対応するドライバをアンインストールすることができる。こうして、オフラインのデバイスなどへの要求に対しても適切な処理を行うことが出来る。つまりプロキシ２００は、クライアントコンピュータからの周辺機器の使用要求メッセージであると解析した場合、周辺機器リストによって管理されている状態情報に基づいて使用要求メッセージにより使用要求された周辺機器に対応する状態を判定する。そして、使用要求により要求された周辺機器の状態情報がＢｙｅ要求（離脱メッセージ）に含まれる情報の種類に応じた状態であれば、使用要求の要求元のクライアントコンピュータに対して、周辺機器がネットワークから離脱した状態である旨の通知を送信する。
【００８８】
図１３はデバイスからのＨｅｌｌｏ要求１５０１を受信したときのプロキシ２００の動作を示している。Ｈｅｌｌｏ要求１５０１を受け取ったプロキシ２００はまず、自らの保持するデバイスリスト１０１０を参照する（９０２）。そして該当するプリンタがリストにあるかどうかを判定する（９０３）。この判定は図１１と同様に行える。もし該当するプリンタがデバイスリスト１０１０にない場合は、新しく追加されたデバイスと考えられるので、デバイスリスト１０１０に追加する（９０８）。この手順も図１１と同様に行える。
【００８９】
一方、該当するプリンタがリスト１０１０にあるときは、Ｂｙｅ要求を受けていたかどうかを判定する（９０４）。この判定も図１１と同様にデバイスリスト１０１０を参照して行える。Ｂｙｅ要求を受けていたときには、デバイスリストのＢｙｅ要求を解除する。すなわち、デバイスリスト１０１０のフラグフィールド１０１４〜１０１７の値をすべてクリアする。その後、届いたＨｅｌｌｏ要求を接続されたクライアントに通知するため、同じメッセージ１５０２をホストを宛先にしてマルチキャストする。このような動作を行うことで、プロキシ２００においても接続されたプリンタの状態を全てデバイスリストで管理することが可能となる。つまり、プロキシ２００は、周辺機器の状態情報をネットワークから永久的に離脱することを示す状態として管理している場合において、周辺機器から参加通知を受信することに応じて周辺機器の状態情報を接続されていることを示す状態に変更する。
【００９０】
Ｈｅｌｌｏ要求及びＢｙｅ要求を受信したクライアントの動作は、第１実施形態と同様である。
【００９１】
これにより、デバイス（プリンタ）３０００からの参加要求（Ｈｅｌｌｏ）や離脱要求（Ｂｙｅ）を、実時間で受信できなかったクライアントにも、プロキシがそのメッセージを送信できる。そのため、クライアントは、デバイスに対する要求後、直ちに要求先のデバイスがオフラインであることを認識できる。また、最後のＢｙｅ要求を送信したデバイスのドライバを、要求先のデバイスがオフラインであることを認識した時点でアンインストールできるので、不要なドライバの増加を防止できる。なお、プロキシ２００は、周辺機器から受信したメッセージを、クライアントコンピュータにマルチキャストで転送する。
【００９２】
以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではない。
【００９３】
なお、デバイスには有線（例えばＬＡＮ）用のインタフェースと無線（例えばブルートゥース）用のインタフェースを有するものがある。この場合、デバイスには有線用のアドレスと無線用のアドレスが割り当てられている。よって、デバイスは状況に応じて異なる最後のｂｙｅを生成しなければならない。しかし、複数のインタフェースを備えたデバイスの場合、最後のｂｙｅの生成方法が複数種類考えられる。
【００９４】
まず１つ目の一例は、上述したデバイスを廃棄する場合である。この場合、最後のｂｙｅは、有線インタフェース用の最後のｂｙｅおよび無線用インタフェース用の最後のｂｙｅを生成しなければならない。また、２つめの状況は、例えば無線用のインタフェースは利用する可能性があるが有線用のインタフェースは今後使わない場合である。この場合、有線インタフェース用の最後のｂｙｅが生成されなければならない。
【００９５】
そこで、図１７に複数のインタフェースを有するデバイスにおける最後のｂｙｅの転送処理について説明する。なお、図１７の処理は、プリンタ３０００のＣＰＵ２１によって実行される。
【００９６】
プリンタ３０００は、複数のインタフェースを備えているか否かを判定する（Ｓ１７０１）。Ｓ１７０１にて、プリンタ３０００が、複数のインタフェースを備えていると判定した場合、図１８に示すような複数インタフェース用のＵＩ１８０１を表示する（Ｓ１７０２）。なお、図１８の詳細については後述する。また、Ｓ１７０１にて複数のインタフェースを備えていないと判定された場合、図１９に示すような１つのインタフェース用ＵＩ１９０１を表示する（Ｓ１７０６）。図１９の１つのインタフェース用ＵＩ１９０１には、ＯＫボタンまたはキャンセルボタンがある。プリンタ３０００は、ＯＫボタンが押されドライバ削除指示を認識することに応じて（Ｓ１７０７−Ｙｅｓ）、ＲＯＭ２３に保持されているアドレスを含んだ最後のｂｙｅを生成する（Ｓ１７０８）。
【００９７】
Ｓ１７０２にて複数インタフェース用ＵＩを表示した後、プリンタ３０００は、図１８のＵＩにて指定されたインタフェースが１つであるか複数あるかを判定する（Ｓ１７０３）。詳細には、図１８にて指定したインタフェースは、ＲＡＭ２２に保持されているため、ＣＰＵ２１がＲＡＭ２２を参照することでＳ１７０３の判定処理が可能となる。
【００９８】
Ｓ１７０３にて指定されたインタフェース数が１つである場合、プリンタ３０００は、指定されたインタフェースに対応するアドレスを含んだ１つの最後のｂｙｅを生成する（Ｓ１７０５）。なお、アドレスはプリンタ３０００自身のＲＯＭ２３に保持されているため、ＣＰＵ２１がＲＯＭ２３を参照することにより読み出し可能である。
【００９９】
Ｓ１７０３にて複数のインタフェースが指定された場合、プリンタ３０００は指定された複数インタフェースに対応するアドレスをＲＯＭ２３から読み出し、指定された複数インタフェース分の最後のｂｙｅを生成する（Ｓ１７０４）。
【０１００】
プリンタ３０００は、Ｓ１７０４、Ｓ１７０５、Ｓ１７０８にて生成された最後のｂｙｅをマルチキャストする（Ｓ１７０９）。
【０１０１】
図１７に記載の処理を実行することにより、複数のインタフェースを備えるプリンタにおいて、インタフェースを指定した最後のｂｙｅを生成することができる。よって、利用することが無くなったインタフェースに対応するドライバを削除することが可能になり、ユーザの意図やネットワーク環境を反映したアンインストール処理を実行することが可能となる。
【０１０２】
図１８に複数インタフェース用のＵＩ１８０１を示す。複数インタフェース用のＵＩは、例えばデバイスの操作パネル３０に表示される。図１８の例では、デバイスが、有線インタフェースと無線インタフェースを有している場合に表示されるＵＩである。ここで、有線インタフェース１８０２および無線インタフェース１８０３にチェックして、ＯＫボタンを押すと、プリンタ３０００は無線インタフェースのアドレスおよび有線インタフェースのアドレスを読み出す。そして、無線インタフェースのアドレスを含んだ最後のｂｙｅと無線インタフェースのアドレスを含んだ２つの最後のｂｙｅを生成して、選択された複数のインタフェースに対してマルチキャストする。
【０１０３】
つまり、デバイス（周辺機器）は複数のインタフェースを備えている場合、インタフェースごとに対応したデバイスドライバを削除する指示を入力する。そして、デバイスは、複数のデバイスドライバを削除する指示が入力された場合、複数のデバイスドライバを削除するための削除通知を含んだＢｙｅ要求（離脱メッセージ）を送信する。なお、本願におけるデバイスは、印刷要求に応じて印刷処理を実行する印刷処理部をさらに備えていても良い。また、離脱メッセージは、所定のデバイス検索システム（ＷＳＤ）におけるバイ信号（ネットワークからの離脱を示す信号）である。
【０１０４】
［変形例］
第２実施形態では、Ｈｅｌｌｏ要求とＢｙｅ要求は、デバイスからプロキシ宛に送信され、プロキシがクライアントに送信する。これに対して、Ｈｅｌｌｏ要求とＢｙｅ要求とを、デバイスからクライアントへの送信に加えてプロキシ２００にも送信するようにしてもよい。プロキシの動作はほぼ第２実施形態と同様であるが、Ｈｅｌｌｏ要求とＢｙｅ要求はクライアントにも送信されるために、図１１のステップ７０９及び図１３のステップ９０６は不要である。それ以外の要求に関しては、第２実施形態と同様である。
【０１０５】
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０６】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態におけるクライアントとネットワークプリンタの接続を示したハードウエア構成図である。
【図２】クライアントとネットワークプリンタのネットワーク接続に関連するモジュールを説明したブロック図である。
【図３】本発明の実施の形態におけるネットワーク環境を簡略した図である。
【図４】Ｂｙｅ要求を細分化した時のＢｙｅ要求の種類を示した図である。
【図５】デバイスのシャットダウン時の動作例を示す図である。
【図６】クライアントがＢｙｅ要求を受け取った時の動作例を示す図である。
【図７】クライアントがＨｅｌｌｏ要求を受け取った時の動作例を示す図である。
【図８】クライアントにおけるドライバアイコンのＵＩを示した例を示す図である。
【図９】クライアントにおけるドライバアンインストールの可否を問うＵＩの例を示す図である。
【図１０】プロキシの保持するデバイスリストの例を示す図である。
【図１１】プロキシがＢｙｅ要求を受け取った時の動作例を示す図である。
【図１２】プロキシがクライアントからデバイスへの要求を受け取った時の動作例を示す図である。
【図１３】プロキシがＨｅｌｌｏ要求を受け取った時の動作例を示す図である。
【図１４】ＷＳ−Ｄｉｓｃｏｖｅｒｙのシーケンス図である。
【図１５】第２実施形態にかかるＷＳ−Ｄｉｓｃｏｖｅｒｙのシーケンス図である。
【図１６】クライアントの保持するインストール済みデバイスリストの例を示す図である。
【図１７】複数のインタフェースを有するデバイスにおいて、最後のｂｙｅを生成する処理フローである。
【図１８】複数インタフェース用のＵＩ１８０１の一例である。
【図１９】１つのインタフェース用ＵＩ１９０１の一例である。
【符号の説明】
【０１０８】
１００  ネットワークプリンタ上の「ドライバ削除通知」ボタン
２００  ＤｉｓｃｏｖｅｒｙＰｒｏｘｙ（プロキシ）
１０００  クライアント
３０００  ネットワークプリンタ
【図１】
0004756994.tif 000002
【図２】
0004756994.tif 000003
【図３】
0004756994.tif 000004
【図４】
0004756994.tif 000005
【図５】
0004756994.tif 000006
【図６】
0004756994.tif 000007
【図７】
0004756994.tif 000008
【図８】
0004756994.tif 000009
【図９】
0004756994.tif 000010
【図１０】
0004756994.tif 000011
【図１１】
0004756994.tif 000012
【図１２】
0004756994.tif 000013
【図１３】
0004756994.tif 000014
【図１４】
0004756994.tif 000015
【図１５】
0004756994.tif 000016
【図１６】
0004756994.tif 000017
【図１７】
0004756994.tif 000018
【図１８】
0004756994.tif 000019
【図１９】
0004756994.tif 000020