(57)【要約】      （修正有）【課題】ネットワークデバイスのメンテナンス等のために、ネットワークから離脱させる場合、予め入力した代替ネットワークデバイスを特定する情報を含むネットワーク離脱メッセージを送信して、対応するプリンタドライバの自動インストールを行なう。【解決手段】プリンタ１１０には、予め自身がネットワークから離脱した際の代替プリンタを特定する代替プリンタ情報３１０を設定し、記憶させておく。プリンタ１１０をネットワークから離脱させる指示を与えると、代替プリンタ情報を含むＢｙｅメッセージをネットワークにブロードキャスト送信する。プリンタ１１０を利用していたクライアント２１０は、そのプリンタドライバ５１０に関連付けて、代替プリンタ情報５４０として記憶する。そして、クライアント２１０は、印刷に際し、該当するプリンタドライバが未インストールの場合にはインストールのためのセットアップ処理を実行する。【選択図】図５
2007114901.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク通信手段を有し、該ネットワーク通信手段を介してネットワークからの要求に応じたジョブを実行すると共に、ネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスであって、
自機の替わりにジョブを実行するための代替ネットワーク対応出力デバイスを特定する情報を入力する入力手段と、
所定の条件下で自機がネットワークから離脱することになった場合、前記入力手段で入力された代替ネットワーク対応出力デバイスを特定する情報を含む、ネットワーク離脱メッセージを前記ネットワーク通信手段を介して送信する送信手段と
を備えることを特徴とするネットワーク対応出力デバイス。
【請求項２】
前記所定の条件は、ネットワーク対応出力デバイスが備える操作部からのネットワーク切断指示入力であることを特徴とする請求項１に記載のネットワーク対応出力デバイス。
【請求項３】
前記所定の条件は、ネットワーク対応出力デバイスで、次のジョブを処理可能となるまでに要する時間が、所定時間以上になった場合とすることを特徴とする請求項１に記載のネットワーク対応出力デバイス。
【請求項４】
エラーの種類毎のエラー復旧予測時間、ジョブの内容に従った当該ジョブを完了するまでの予測時間を算出するための関数情報をテーブルとして記憶する記憶手段と、
エラー、ジョブのイベント発生によって該当する予測時間を加算した合計値を保持すると共に、該当するエラー、ジョブが完了した場合には、対応する予測時間を前記合計値より減算する合計値更新手段と、
該合計値更新手段で更新された合計値と、所定の閾値とを比較する比較手段と、
該比較手段の比較結果に応じて、前記ネットワーク離脱メッセージを送信するか、ネットワーク参加メッセージを送信するかを決定する決定手段と
を備えることを特徴とする請求項３に記載のネットワーク対応出力デバイス。
【請求項５】
前記ジョブは、印刷処理であることを特徴とする請求項１乃至４のいずれか１項に記載のネットワーク対応出力デバイス。
【請求項６】
前記入力手段は、ネットワーク対応出力デバイスに関する所望とする文字列を更に入力可とすることを特徴とする請求項１に記載のネットワーク対応出力デバイス。
【請求項７】
ネットワーク通信手段を有し、該ネットワーク通信手段を介してネットワークからの要求に応じたジョブを実行し、ネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスの制御方法であって、
該ネットワーク対応出力デバイスの替わりにジョブを実行するための代替ネットワーク対応出力デバイスを特定する情報を入力する入力工程と、
所定の条件下で該ネットワーク対応デバイスがネットワークから離脱することになった場合、前記入力工程で入力された代替ネットワーク対応出力デバイスを特定する情報を含む、ネットワーク離脱メッセージを送信する送信工程と
を備えることを特徴とするネットワーク対応出力デバイスの制御方法。
【請求項８】
ネットワーク通信手段を搭載可能で、当該ネットワーク通信手段を介してネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスを検出し、該当するデバイスドライバを自動インストールするオペレーティングシステムを搭載した情報処理装置であって、
前記ネットワーク通信手段を介して、ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該ネットワーク離脱メッセージ中に代替ネットワーク対応出力デバイスを特定する代替デバイス情報が含まれているか否かを判断する第１の判断手段と、
該第１の判断手段で、受信したネットワーク離脱メッセージが、代替デバイス情報を含むと判断した場合、該離脱するネットワーク対応出力デバイス用のデバイスドライバに対応づけて前記代替デバイス情報を記憶手段に記憶する対応付け手段と、
前記デバイスドライバの選択イベントが発生した場合、選択されたデバイスドライバに対応づけて前記代替デバイスド情報が前記記憶手段に記憶されているか否かを判断する第２の判断手段と、
該第２の判断手段で代替デバイス情報が存在しないと判断した場合には、前記選択イベントに従ったオペレーティングシステムの処理を許容し、
前記第２の判断手段で代替デバイス情報が存在すると判断した場合には、代替デバイス情報で示されるデバイスドライバのインストールを許容すべく、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容する制御手段と
を備えることを情報処理装置。
【請求項９】
前記ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該離脱するネットワーク対応出力デバイス用のデバイスドライバが既に自機にインストールされているか否か判断する第３の判断手段を更に備え、
前記第３の判断手段により前記離脱するネットワーク対応出力デバイス用のデバイスドライバが既に自機にインストールされていると判断され、かつ、前記第１の判断手段により受信したネットワーク離脱メッセージがデバイス情報を含むと判断した場合に、前記対応付け手段は、前記代替デバイス情報を前記インストール済みのデバイスドライバに対応付けることを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記制御手段は、前記代替デバイス情報で示されるデバイスドライバのインストールを許容するため、前記ネットワーク通信手段を介して該当するネットワーク対応出力デバイスを探索するための探索メッセージを送信し、探索成功の場合に、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
前記制御手段は、代替デバイス情報で示されるネットワーク対応出力デバイスのみに対応するデバイスドライバのセットアップを許容することを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記ネットワーク対応出力デバイスは、少なくともネットワークプリント機能を有するデバイスであって、
前記デバイスドライバの選択イベントは、前記ネットワーク対応出力デバイスを利用した印刷処理開始のイベントであることを特徴とする請求項８乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
更に、代替デバイス情報中に、当該デバイスに関する説明文となる文字列がある場合、その文字列を表示する表示手段を備えることを特徴とする請求項８乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
ネットワーク通信手段を搭載可能で、当該ネットワーク通信手段を介してネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスを検出し、該当するデバイスドライバを自動インストールするオペレーティングシステムを搭載した情報処理装置の制御方法であって、
前記ネットワーク通信手段を介して、ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該ネットワーク離脱メッセージ中に代替ネットワーク対応出力デバイスを特定する代替デバイス情報が含まれているか否かを判断する第１の判断工程と、
該第１の判断工程で、受信したネットワーク離脱メッセージが代替デバイス情報を含むと判断した場合、該離脱するネットワーク対応出力デバイス用のデバイスドライバに対応づけて前記代替デバイス情報を記憶手段に記憶する対応付け工程と、
前記デバイスドライバの選択イベントが発生した場合、選択されたデバイスドライバに対応づけて前記代替デバイス情報が前記記憶手段に記憶されているか否かを判断する第２の判断工程と、
該第２の判断工程で代替デバイス情報が存在しないと判断した場合には、前記選択イベントに従ったオペレーティングシステムの処理を許容し、
前記第２の判断工程で代替デバイス情報が存在すると判断した場合には、代替デバイス情報で示されるデバイスドライバのインストールを許容すべく、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容する制御工程と
を備えることを情報処理装置の制御方法。
【請求項１５】
ネットワーク通信手段を搭載可能で、当該ネットワーク通信手段を介してネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスを検出し、該当するデバイスドライバを自動インストールするオペレーティングシステムを搭載した情報処理装置用のコンピュータプログラムであって、
前記ネットワーク通信手段を介して、ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該ネットワーク離脱メッセージ中に代替ネットワーク対応出力デバイスを特定する代替デバイス情報が含まれているか否かを判断する第１の判断手段と、
該第１の判断手段で、受信したネットワーク離脱メッセージが、代替デバイス情報を含むと判断した場合、該離脱するネットワーク対応出力デバイス用のデバイスドライバに対応づけて前記代替デバイス情報を記憶手段に記憶する対応付け手段と、
前記デバイスドライバの選択イベントが発生した場合、選択されたデバイスドライバに対応づけて前記代替デバイスド情報が前記記憶手段に記憶されているか否かを判断する第２の判断手段と、
該第２の判断手段で代替デバイス情報が存在しないと判断した場合には、前記選択イベントに従ったオペレーティングシステムの処理を許容し、
前記第２の判断手段で代替デバイス情報が存在すると判断した場合には、代替デバイス情報で示されるデバイスドライバのインストールを許容すべく、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容する制御手段
としてコンピュータに機能させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１７】
ネットワーク通信手段を有し、該ネットワーク通信手段を介してネットワークからの要求に応じた印刷ジョブを実行すると共に、ネットワークプラグアンドプレイに対応する複数のネットワーク対応出力デバイスと、
ネットワーク通信手段を搭載可能で、当該ネットワーク通信手段を介してネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスを検出し、該当するデバイスドライバを自動インストールするオペレーティングシステムを搭載した情報処理装置とで構成されるネットワークシステムであって、
前記ネットワーク対応出力出デバイスのそれぞれは、
自機の替わりにジョブを実行するための代替ネットワーク対応出力デバイスを特定する情報を入力する入力手段と、
所定の条件下で自機がネットワークから離脱することになった場合、前記入力手段で入力された代替ネットワーク対応出力デバイスを特定する情報を含む、ネットワーク離脱メッセージを前記ネットワーク通信手段を介して送信する送信手段とを備え、
前記情報処理装置のそれぞれは、
前記ネットワーク通信手段を介して、ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該ネットワーク離脱メッセージ中に代替ネットワーク対応出力デバイスを特定する代替デバイス情報が含まれているか否かを判断する第１の判断手段と、
該第１の判断手段で、受信したネットワーク離脱メッセージが、代替デバイス情報を含むと判断した場合、該離脱するネットワーク対応出力デバイス用のデバイスドライバに対応づけて前記代替デバイス情報を記憶手段に記憶する対応付け手段と、
前記デバイスドライバの選択イベントが発生した場合、選択されたデバイスドライバに対応づけて前記代替デバイスド情報が前記記憶手段に記憶されているか否かを判断する第２の判断手段と、
該第２の判断手段で代替デバイス情報が存在しないと判断した場合には、前記選択イベントに従ったオペレーティングシステムの処理を許容し、
前記第２の判断手段で代替デバイス情報が存在すると判断した場合には、代替デバイス情報で示されるデバイスドライバのインストールを許容すべく、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容する制御手段と
を備えることを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークデバイス及び情報処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体、及び、ネットワークシステムに関するものである。
【背景技術】
【０００２】
従来より、クライアントＰＣで生成された印刷データを、ネットワーク上のプリンタに送信することで、印刷を行わせている。
【０００３】
それに伴い、ネットワークに対応したプリンタ（ネットワークプリンタ）を利用する上での利便性、簡易性を高めるため、サービスを提供するネットワークプリンタの探索（検索）を行うためのアプリケーションソフトウェア、ユーティリティソフトウェア、オペレーティングシステム等が開発されてきている。また、その際の様々なプロトコル、アーキテクチャが提案されている（特許文献１，２）。
【０００４】
また、複数の企業や標準化団体が、ローカルＩ／Ｏ接続プリンタに対して適用されてきたプラグアンドプレイをネットワークプリンタに対して拡張対応すべく仕様策定作業を進めている。
【０００５】
例えば、米国Microsoft社が主体となって策定を進めるＵＰｎＰ（Universal Plug and Play）、及び、ＷＳＤ（Web Services for Devices(WS-Discovery/WS-MetadataExchange)）が知られている。また、ビジネス機械・情報システム産業協会（JBMIA）が推進するＢＭＬｉｎｋｓ（Business Machine Linkage Service）、米国Apple社が開発したMacOS XでサポートされるRenedzvousなども存在する。
【０００６】
特に、ネットワークに接続された多くのプリンタからユーザがその目的、用途に応じて適切なプリンタを選択できるような仕組みとして、同一ネットワークに接続されたサーバやクライアント上で稼動するソフトウェアが提案されている（例えば、特許文献３）。このソフトウェアは、ネットワークプリンタの探索、検索を行い、さらにネットワークプリンタの機能を取得し、それらを一覧表示してユーザの選択を促すものである。また、同時にユーザのクライアントにそのプリンタを制御するプリンタドライバが存在しない場合は、プリンタドライバのインストール作業の代行を行ったりする。
【０００７】
しかしながら上述した従来の技術では、ユーザが選択すべき候補となるプリンタが複数羅列されるだけで、ユーザが使用すべきプリンタを特定している訳ではない。結局はこのようなネットワークシステムやプリンタを統括する管理者に問い合わせる必要があったり、管理者が使用するべきプリンタをアナウンスする必要がある等、管理者の負担が軽減されないことが多い。
【０００８】
その理由としては、ユーザのプリンタ機能への認識不足があげられる。
【０００９】
近年のプリンタの高性能化にともない、プリンタ機能は多種多様になってきている。しかしながら通常、ユーザにとっては、使用するプリンタ機能以外は必要がなく、それ以外の機能に関しては関心を持つことはない。しかしながら、従来技術により羅列される候補となるプリンタからの情報には、ユーザの関心のある情報以外の情報を含むことで、使用すべき最適なプリンタを特定することは難しく、管理者からのアドバイスが必要になる。
【００１０】
また別の理由としては、ユーザに使用すべきプリンタを選択させる場合、ある特定のプリンタに集中することがあげられる。ユーザは候補となるプリンタが複数羅列されると、最も機能が多いプリンタを選ぶ傾向が強い。また、今まで使用していたプリンタが故障して、代替プリンタを選択しなければならない場合、今までと同一機種を選びがちになる。これにより使用されるプリンタが集中されてしまう。そして、プリンタの使用頻度を分散させるために、管理者が例えば部門毎に使用すべきプリンタを指示する必要が出てくる。
【００１１】
さらに別の理由としては、ネットワークポリシーが挙げられる。例えば管理者がユーザのクライアントPCにインストールされているアプリケーションやドライバを厳しく管理する場合がある。このような管理を行う場合には、新たなプリンタドライバが各ユーザのクライアントPCに無作為にインストールされてしまうことは避ける必要がある。従って、今まで使用していたプリンタドライバをそのまま利用して印刷することが出来るプリンタをユーザに選択させるべきである。しかしながら、プリンタが使用しているPDL（Page Description Language）等をユーザが認識していない場合にはそれも困難である。従って、どうしても管理者が使用すべきプリンタを指示する必要が出てくる。
【００１２】
このように、複数のネットワークプリンタを利用している場合には、システム管理者の負担は増大する。
【００１３】
また、ネットワーク上に繋がっていた古いプリンタを新しいプリンタに差し替えた場合や、紙詰まりやトナー交換等のメンテナンスで短期間の間、そのプリンタが使用できない場合には、管理者は各ユーザに代替となるプリンタを案内する必要がある。各ユーザには予めメール等で案内するとしても、そのプリンタを利用している全ユーザが各ＰＣのプリンタドライバの設定や変更が行うだけの知識を有するとは限らない。むしろ、現実には、その知識を有するものは少ないので、必然、管理者が各ＰＣの設定作業を行わざるを得ないのが現状である。
【００１４】
このような短期間のメンテナンスの時に代替プリンタで印刷させる技術として、予めメンテナンスを行うプリンタに代替プリンタのＩＰを登録しておき、メンテナンス中は印刷データをそのまま代替プリンタのＩＰに転送するという提案がある（特許文献３）。
【特許文献１】特開２００４−０３８９５６公報
【特許文献２】特開２００４−３６２５９４公報
【特許文献３】特開２００３−２８５５１０公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、この特許文献３によると、代替できるプリンタはメンテナンスを受けるプリンタと同じＰＤＬを処理できる必要がある。また、ユーザは代替で使用されたプリンタがどこに存在するか分かりにくいという問題は抱えたままである。更には、メンテナンスするプリンタがネットワークからはずれていた場合は、代替プリンタに印刷データの転送すら出来ないという問題も残る。
【００１６】
本発明はかかる問題点に鑑みなされたものであり、ネットワークデバイスがネットワークから離脱する場合、それを利用する情報処理装置のユーザが複雑な作業なしに、代替デバイスを利用することを可能ならしめる技術を提供しようとするものである。
【課題を解決するための手段】
【００１７】
この課題を解決するため、例えば本発明のネットワーク対応出力デバイスは以下の構成を備える。すなわち、
ネットワーク通信手段を有し、該ネットワーク通信手段を介してネットワークからの要求に応じたジョブを実行すると共に、ネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスであって、
自機の替わりにジョブを実行するための代替ネットワーク対応出力デバイスを特定する情報を入力する入力手段と、
所定の条件下で自機がネットワークから離脱することになった場合、前記入力手段で入力された代替ネットワーク対応出力デバイスを特定する情報を含む、ネットワーク離脱メッセージを前記ネットワーク通信手段を介して送信する送信手段とを備える。
【００１８】
また、本発明の情報処理装置は以下の構成を備える。すなわち、
ネットワーク通信手段を搭載可能で、当該ネットワーク通信手段を介してネットワークプラグアンドプレイに対応するネットワーク対応出力デバイスを検出し、該当するデバイスドライバを自動インストールするオペレーティングシステムを搭載した情報処理装置であって、
前記ネットワーク通信手段を介して、ネットワーク対応出力デバイスからネットワーク離脱メッセージを受信した場合に、該ネットワーク離脱メッセージ中に代替ネットワーク対応出力デバイスを特定する代替デバイス情報が含まれているか否かを判断する第１の判断手段と、
該第１の判断手段で、受信したネットワーク離脱メッセージが、代替デバイス情報を含むと判断した場合、該離脱するネットワーク対応出力デバイス用のデバイスドライバに対応づけて前記代替デバイス情報を記憶手段に記憶する対応付け手段と、
前記デバイスドライバの選択イベントが発生した場合、選択されたデバイスドライバに対応づけて前記代替デバイスド情報が前記記憶手段に記憶されているか否かを判断する第２の判断手段と、
該第２の判断手段で代替デバイス情報が存在しないと判断した場合には、前記選択イベントに従ったオペレーティングシステムの処理を許容し、
前記第２の判断手段で代替デバイス情報が存在すると判断した場合には、代替デバイス情報で示されるデバイスドライバのインストールを許容すべく、前記オペレーティングシステムによる代替デバイス情報で示されたデバイスドライバのセットアップ処理を許容する制御手段とを備える。
【発明の効果】
【００１９】
本発明のネットワーク対応出力デバイスによれば、メンテナンス等のために、ネットワークから離脱させる場合、予め入力した代替ネットワーク対応出力デバイスを特定する情報を含むネットワーク離脱メッセージを送信する。この結果、そのネットワーク対応出力デバイスを利用していた情報処理装置等のクライアントは、代替ネットワーク対応出力デバイスを通知することが可能になる。
【００２０】
また、本発明の情報処理装置によれば、代替ネットワークデバイスを特定する情報を含むネットワーク離脱メッセージを受信した場合、その離脱したネットワークデバイス用のデバイスドライバに代替デバイス情報を対応付けて管理することにより、代替デバイス用のデバイスドライバのインストールのセットアップ処理が実行される。この結果、複雑な作業を行なうこと無しに、通常の業務によるジョブの発行を行なえるようになる。また、不必要なネットワークデバイス用のドライバがインストールされ、有限がメモリを圧迫することを抑制することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面に従って本発明にかかる実施形態を詳細に説明する。なお、本実施形態に記載されているプロトコルや数値などは、実施形態を理解するためのものであり、特に特定的な記載がない限りは、本願発明がそれらのみに限定されるものではない。
【００２２】
＜第１の実施形態＞
図１は本発明の実施の形態におけるネットワークプリントシステムにおいて、接続しているひとつのクライアントとひとつのネットワークプリンタに注目した時のハード構成を示すブロック図である。本図では、クライアント１０００と印刷装置であるネットワークプリンタ３０００とがネットワーク３１を介して接続された構成となっている。クライアント１０００ではコンピュータ本体２０００に対して外部装置であるキーボード９、ＣＲＴ１０、ハードディスク１１等が接続されている。
【００２３】
コンピュータ本体２０００に電源が投入されると、ＣＰＵ１はバス４に接続された各種要素の制御を開始する。具体的には、先ず、ＣＰＵ１は、ＲＯＭ３に格納されたＢＩＯＳ及びブートプログラムを実行し、ハードディスクコントローラ（ＨＤＣ）７を介してハードディスク１１に格納されているＯＳ（オペレーティングシステム）をＲＡＭ２にロードし、実行する。この際、各種デバイスドライバ（ネットワークドライバも含まれる）もハードディスク１１からＲＡＭにロードされ、ＯＳに組み込まれることになる。ハードディスク１１はＯＳ、ネットワークのデバイスドライバ、以外にも、各種アプリケーションプログラム、更には各アプリケーションで作成されたデータファイルが格納されている。
【００２４】
この後、キーボードコントローラ（ＫＢＣ）５を介してキーボード９、マウス等のポインティンデバイス１３からの入力を行なう。また、これに応じて、ＣＲＴコントローラ（ＣＲＴＣ）６を介してＣＲＴ１０への表示も行なうこで、インタラクティブなユーザインタフェースを構築することになる。そして、ユーザの指示に従って、所望とするアプリケーションプログラム（例えば文書編集アプリケーション等）を実行し、必要に応じて、プリンタ３０００に印刷データを出力し、印刷を行わせることになる。アプリケーションを実行し、ユーザがキーボード９やポインティングデバイス１３を操作して印刷指示を行うと、そのアプリケーションは、プリンタ３０００に対応するプリンタドライバを起動し、印刷対象となったデータをプリンタドライバに渡す処理を行う。プリンタドライバは、プリンタ３０００が解釈可能な印刷データ（多くの場合にはＰＤＬ記述の印刷データ）に翻訳し、その結果を出力する。ＯＳは、プリンタドライバから出力された印刷データを、ネットワークコントローラ８のデバイスドライバに渡す。ネットワークのデバイスドライバは、所定のプロトコル（例えばＴＣＰ／ＩＰ）に従って、プリンタ３０００に向けて送信する処理を行うことになる。
【００２５】
なお、本実施の形態ではクライアントＰＣとしてパーソナルコンピュータ(PC)を想定しているが、本発明を実施可能な形態であれば、クライアントはＰＣに限定するものではなく、ＰＤＡなどの携帯情報端末や携帯電話、デジタル家電等をクライアントとしても全く問題ない。
【００２６】
一方、本発明のネットワーク対応出力デバイスに好適なネットワークプリンタ３０００は、プリンタコントローラ４０００（プリント基板として実装される）と、印刷機構部２８、ハードディスク２９、操作パネル３０で構成される。
【００２７】
プリンタコントローラ４０００内には、バス２４を介して装置全体の制御を行うＣＰＵ２１が設けられている。このＣＰＵ２１は、ＲＯＭ２３内に格納されたプログラム（これ以外にもフォントデータも格納されている）に記憶された制御プログラムに基づいて処理を行い、ＲＡＭ２２はＣＰＵ２１のワークエリアとして使用される。
【００２８】
この制御プログラムには、ネットワークコントローラ（ＮｅｔＣ）２５を介してのネットワークとの通信処理（印刷データの受信を含む）が含まれる。また、受信した印刷データを、ハードディスクコントローラ（ＨＤＣ）２７を制御して、ハードディスク２９に印刷ジョブキューとして登録する処理がある。また、キューに登録された印刷ジョブをＨＤＣ２７を介して順次読出し、解釈し、ＲＡＭ２２への印刷イメージデータへの展開と、展開された印刷イメージデータを印刷部２６を介して、印刷機構部２８（プリンタエンジン）に印刷データを画像信号として出力する印刷処理も含まれる。また、操作パネル３０（液晶表示器等の表示部、タッチパネル、各種ボタンやスイッチ、ＬＥＤ等が設けられている）を介してのユーザの指示入力に基づく処理も、この制御プログラムに含まれる。
【００２９】
なお、上記ネットワークプリンタ３０００には、ハードディスク２９を備えるものとししたが、これは必ずしも必須なものではない。また、ここでは、印刷機能のみを有するネットワークプリンタとして説明したが、原稿をスキャンするスキャナを搭載した複合機でも構わない。また、印刷機構部２８は、レーザビームプリンタエンジン、インク液滴を吐出するインクジェットプリンタエンジン等、その印刷方式の種類は問わない。
【００３０】
図２は図１に示したクライアント１０００のコンピュータ本体２０００とネットワークプリンタ３０００のプリンタコントローラ部４０００におけるネットワーク接続に関連するモジュールを説明した機能ブロック図である。
【００３１】
クライアント１０００は、ネットワーク通信機能をEthernet（登録商標）コントローラ１００７により実現する。ただし、これは一例であって、Ｗｉ−Ｆｉ(IEEE８０.１１a/b/g)やBluetoothなどの無線ＬＡＮ通信手段でも構わない。Ethernet（登録商標）コントローラ１００７より上位レイヤにはＳＯＡＰ（Simple Object Access Protocol）プロセッサ １００４を備え、プラグアンドプレイ(ＰｎＰ)ユーティリティ１００２、ＷＳＤモジュール１００３、およびアプリケーション１００１間で、ＸＭＬ（eXtensible Markup Language）で記述されたデータの双方向通信を実現する。
【００３２】
ネットワークマネージャ１００５は、Ethernet（登録商標）コントローラ１００７を管理しており、設定情報、通信状態に関する情報を取得する機能を備える。
【００３３】
プラグアンドプレイ(ＰｎＰ)ユーティリティ１００２はネットワークマネージャ１００５を制御し、現在稼動中のEthernet（登録商標）コントローラ情報、およびその設定情報を取得し、メモリ２上に記録する機能を有する。また、ＰｎＰユーティリティ１００２は、プラグアンドプレイ設定のＵＩを制御し、その設定内容をＲＡＭ２上に記録する。これら設定情報は、ＰｎＰユーティリティ１００２によりXML(eXtensible Markup Language)に変換され、XMLの形式でメモリ２上に記録される。
【００３４】
ＷＳＤモジュール１００３は、ＳＯＡＰプロセッサ１００４を介して、米国Microsoft社らが仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づく処理を行う。具体的には、ネットワークプリンタ等のネットワークデバイスがネットワークに接続した際に通知されるＨｅｌｌｏメッセージに対する応答処理、および、ＰＣがネットワークデバイス検索のためのＰｒｏｂｅメッセージの発行処理、さらには、ネットワークプリンタがネットワークからの接続を切断する際に通知されるByeメッセージに対する応答処理である。また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ＧｅｔＭｅｔａｄａｔａメッセージを発行することで、ネットワークプリンタの属性情報を取得する処理も行う。
【００３５】
これらメッセージ処理により、ネットワークプリンタを発見した場合、ＷＳＤモジュール１００３はＰｎＰコントローラ１００６に対して、発見したネットワークデバイスの属性情報を通知する。ＰｎＰコントローラ１００６は該属性情報をもとに該当するドライバ、ユーティリティソフトウエアを、ハードディスク１１からＲＡＭ２に読み込み、ＯＳにインストールする機能を備える。
【００３６】
アプリケーション１００１は例えばワードプロセッサなどで、編集した書類をネットワークプリンタに印刷する際、ＰｎＰコントローラ１００６によりインストールされたプリンタドライバ（場合によってはインストールされたユーティリティ）に印刷対象のデータを出力する。プリンタドライバは、その印刷対象のデータを、ネットワークプリンタ３０００が解釈可能なＰＤＬ形式のデータ（印刷データ）に変換し、ＯＳを介してその印刷データをネットワークプリンタ３０００に送信する。
【００３７】
一方、ネットワークプリンタ３０００も通信機能としてEthernet（登録商標）に対応しており、Ethernet（登録商標）コントローラ３００１によって制御されている。Ethernet（登録商標）コントローラ３００１の上位レイヤには、ＳＯＡＰ（Simple Object Access Protocol）プロセッサ３００２を備え、ＷＳＤモジュール３００４、および印刷制御部３００３間で、ＸＭＬ（eXtensible Markup Language）で記述されたデータの双方向通信を実現する。
【００３８】
ここで、ＷＳＤモジュール３００４はＳＯＡＰプロセッサ３００２を介して、米国Microsoft社らが、その仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークに接続した際のＨｅｌｌｏメッセージの送信、およびクライアント１０００から発行されるＰｒｏｂｅメッセージに対する応答処理を実行し、さらにはネットワークから離脱する際に、Ｂｙｅメッセージの送信を行う。また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、クライアント１０００から発行されたＧｅｔＭｅｔａｄａｔａメッセージに応じ、ネットワークプリンタ３０００が持つ属性情報を返信する処理を行う。
【００３９】
ここで、クライアント端末１００（上記のクライアント１０００に相当）とネットワーク対応デバイス２００（上記のネットワークプリンタ３０００に相当）間のＷＳＤの仕様に基づく探索及びそのネットワーク対応デバイス２００用のデバイスドライバのインストールの手順を図１７（ａ）、（ｂ）に従って簡単に説明する。
【００４０】
図１７（ａ）は、クライアント端末１００がネットワークに接続する際、もしくはユーザによるネットワークデバイスの探索の指示入力がなされた場合の手順を示している。
【００４１】
クライアント端末１００は、ネットワークにデバイス検索要求であるＰｒｏｂｅメッセージをマルチキャスト（ブロードキャスト）送信する。このＰｒｏｂｅメッセージを受信したネットワーク対応デバイス２００（実施形態でネットワークプリンタ３０００）は、それに応じるべくクライアント端末１００に向けて応答メッセージ（ＰｒｏｂｅＭａｔｃｈ）をユニキャスト送信する。これ以降、通信相手先が互いに判明しているので、送受信はユニキャストになる。
【００４２】
クライアント端末１００は、上記の応答メッセージを受信することで、ネットワーク上にネットワーク対応デバイス２００の存在することが検出できる。従って、次の段階に進み、そのネットワーク対応デバイスに対してデバイス情報要求メッセージ（ＧｅｔＭｅｔａＤａｔａ）を送信（ユニキャスト）し、デバイス情報（ＭｅｔａＤａｔａ ｆｏｒ  Ｄｅｖｉｃｅ）を取得する。この後、クライアント端末１００は、サービス情報要求メッセージ（ＧｅｔＭａｔａＤａｔａ）を送信し、サービス情報（ＭｅｔａＤａｔａ ｆｏｒ Ｓｅｒｖｉｃｅ）を取得する。
【００４３】
以上の結果、クライアント端末１００は、ネットワーク対応デバイス２００の機種名、属性情報（プリンタであることを示す情報）を得ることができるので、ＯＳに該当するデバイスドライバ（上記の場合にはプリンタドライバ）のインストールが行われることになる。
【００４４】
図２１（ｂ）は、クライアント端末１００は既にネットワークに接続が完了していて、その後、ネットワーク対応デバイス２００をネットワークに参加させた場合の手順を示している。なお、ネットワーク対応デバイス２００のネットワークへの参加とは、そのネットワーク対応デバイス２００の電源が投入された場合と考えると分かりやすい。
【００４５】
先ず、ネットワーク対応デバイスはネットワークに参加するための参加メッセージ（Ｈｅｌｌｏ）をマルチキャスト送信する。クライアント端末１００は、この参加メッセージを受信することで、ネットワーク対応デバイス２００の存在を検出するので、デバイス情報要求メッセージを送信する。この後の手順は、図１７（ａ）と同じである。
【００４６】
さて、上記のようにして、ネットワークＰｎＰが実現できることになり、クライアント端末１００が未知のネットワーク対応デバイスを検出した場合に、デバイスドライバが自動インストールされるので、ユーザにかかる負担は少なくできるようになる。
【００４７】
説明を戻す。図３は本実施形態が適用可能なネットワークプリントシステムの構成例を示す。
【００４８】
図３において、ネットワーク上のプリンタＡ（１１０）、Ｂ（１２０）、Ｃ（１３０）は、それぞれ図１、図２のネットワークプリンタ３０００の構成を有しており、クライアント２１０、２２０、２３０もそれぞれ図１、図２におけるクライアント１０００の構成を有しているものとする。
【００４９】
本実施形態における各ネットワークプリンタ１１０乃至１３０は、その内部（ハードディスクや不揮発性メモリ等）に、代替プリンタ情報を格納する。この代替プリンタ情報とは、自身がネットワークから離脱する際に、自身に代わって印刷処理を行うネットワークプリンタ（代替プリンタ）を示す情報である。図示においてプリンタＡ(１１０)が内部に持つ代替プリンタ情報３１０にはプリンタＢ(１２０)を指定す情報を格納している例を示している。また、プリンタＢ(１２０)が内部に持つ代替プリンタ情報３２０は、代替プリンタとしてプリンタＣ（１３０)を指定している。また、プリンタＣ(１３０)が内部に持つ代替プリンタ情報３３０は、代替プリンタとしてプリンタＢ１２０を指定していることを意味する。
【００５０】
なお、ここでは全ネットワークプリンタが代替プリンタ情報を保持するものとしているが、少なくとも１つのネットワークプリンタがその情報を持つものとしても構わない。
【００５１】
図４は、図３のネットワークプリンタＡ（１１０）に、代替プリンタ（実施形態ではネットワークプリンタＢ（１２０））を指定する一例を示したものである。
【００５２】
図示のように、ネットワークプリンタＡ（１１０）に設けられた操作パネル３０を操作し、代替プリンタの設定を指示すると、代替プリンタのネットワーク上での識別子情報の入力画面４２０が表示される。実施形態では、この識別子を、ネットワーク上のＩＰアドレスとした。ただし、ユニークであれば良いので、識別子としては、ＭＡＣアドレス、ネットワーク上のＩＰと名前の関係を保持しているＤＮＳサーバがあれば、代替プリンタのネットワーク上の名前でも構わない。また、設定する情報には、その代替プリンタの設置場所等を示す文字列を含めても良い。
【００５３】
上記の場合、操作者は、少なくとも代替プリンタを特定する識別子を知っている必要がある。従って、一般には、このユーザはネットワーク管理者が設定することになる。この設定を更に容易にするためには、例えば次のようにすることが考えられる。
【００５４】
先ず、部屋番号、部署といった設置場所と、その場所に設置されているネットワークプリンタ名とその識別子を記憶しているサーバをネットワーク上に設置する。そして、或るプリンタの操作パネルを操作して、上記代替プリンタの設定を指示した際、該当するサーバにアクセスし、場所一覧を取得し、操作者が所望とする場所を選択可能に表示する。操作者は、操作中のネットワークプリンタの設置場所に最も近い場所（同じ部屋に複数台のプリンタがあれば、同一場所）を選択することになる。この結果、選択された場所に設置されているプリンタ一覧情報を取得し、選択可能に表示する。操作者は、その中から所望とするプリンタを選択する。この結果、１つの代替プリンタが決定されるので、その指定された代替プリンタの識別子情報（実施形態ではＩＰアドレス情報）を取得する。このようにすると、管理者は、代替プリンタの設定を容易に行うことが可能になる。また、ユーザのクライアント環境に新たなプリンタドライバ等のソフトウェアをインストールさせたくない場合には、同機種あるいは同じ印刷データを処理できるプリンタを代替プリンタとして指定することも可能になる。なお、この一連の処理は、サーバをＷｅｂサーバとし、ネットワークプリンタにはＷｅｂクライアントを稼動させると、ＰＣ等で使いなれたＵＩと同様の操作感覚で設定することが可能になる。
【００５５】
さて、ネットワークプリンタＡ（１１０）の操作パネル３０を介して操作者は設定した代替プリンタの識別子情報(４２０)は、プリンタＡ(１１０)の内部にある記憶領域（実施形態では、ハードディスク２９等の不揮発性メモリ）に、代替プリンタ情報３１０として格納される。
【００５６】
図５は、図２の説明で述べたようなＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、実施形態におけるネットワークプリンタがネットワークから離脱宣言メッセージ（Ｂｙｅメッセージ）の発行の様子を示している。
【００５７】
ネットワークに接続されているプリンタＡ（１１０）が、操作者による操作パネル３０から電源ＯＦＦ指示や、ネットワーク切断指示を受けると、ネットワーク上にＢｙｅメッセージをブロードキャスト（マルチキャスト）送信し、その後、ネットワーク切断処理（電源断等）を行う。この時、プリンタＡ(１１０)が図４で示したような代替プリンタ情報３１０を内部に記憶している場合、代替プリンタ情報を付け加えたＢｙｅメッセージ５００をブロードキャスト送信を行う。
【００５８】
ここで、クライアント２１０について説明する。ただし、クライアント２２０、２３０も同様の処理を行なうものである。
【００５９】
クライアント２１０が、ネットワークを介してプリンタＡ（１１０）からＢｙｅメッセージを受け取ると、クライアント２１０は、そのプリンタＡ（１１０)用のプリンタドライバ５１０が既にＯＳにインストールされているか否かを判断する。もし、インストールされていると判断した場合、該当するプリンタドライバ(図５の例では、プリンタドライバ５１０)に、受信したＢｙｅメッセージに付け加えられた代替プリンタ情報を関連付け、記憶する(５４０)。
【００６０】
ここで、例えば、クライアント２２０が、プリンタＡ（１１０）用のプリンタドライバをインストールしていないとする。この場合、クライアント２２０は、受信したＢｙｅメッセージを受け取っても、代替プリンタ情報に対する処理は行わない。
【００６１】
図６は、図５でネットワークプリンタにより送信される代替プリンタ情報を付け加えられたＢｙｅメッセージの例を示している。ここではＸＭＬ形式とし、代替プリンタを示すタグ＜Ｓｕｂｓｔｉｔｕｔｅ＞〜＜／Ｓｕｂｓｔｉｔｕｔｅ＞の間に、代替プリンタのプリンタ識別子を格納する。なお、ここではＸＭＬ形式での例を示しているが、特にこの形式ではなくても良く、バイナリ形式のメッセージでも良い。また、便宜上ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づいてＢｙｅメッセージに代替プリンタ情報を格納しているが、かならずしもＢｙｅメッセージに含ませる必要もなく、例えばＢｙｅメッセージとは別の新たなメッセージであっても同様である。あるいはＢｙｅメッセージには代替プリンタ情報を格納せず、Ｂｙｅメッセージを受け取ったクライアントがＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、代替プリンタ情報をByeメッセージを発行したネットワークプリンタへ代替プリンタ情報を取得しに行くといった構成もあり得る。
【００６２】
図７は、クライアント２１０において、代替プリンタ情報が関連付けられたプリンタドライバがインストールされていて、ユーザあるいはアプリケーションからの印刷時に選択された場合のクライアント２１０の処理を示したものである。
【００６３】
プリンタ識別子を含む代替プリンタ情報が関連付けられたプリンタドライバが存在するということは、そのプリンタドライバが元々指定していたネットワークプリンタ（図７では、ネットワークプリンタＡ（１１０））が既にネットワークからはずれており、印刷できないことを意味する。そこでクライアントは、代替プリンタ情報を利用して、ネットワーク上の代替プリンタを見つけ出す処理を行なう。
【００６４】
本実施形態では、ＷＳ−Ｄｉｃｏｖｅｒｙ仕様に基づいたＰｒｏｂｅメッセージにより代替プリンタを見つけ出す例を説明する。
【００６５】
先ず、クライアント２１０は、Ｐｒｏｂｅメッセージ７１０を作成し、ネットワーク上にブロードキャスト送信する。すなわち、ネットワーク上の全てのネットワークプリンタに対して、Ｐｒｏｂｅメッセージ７１０を送信する。この時のメッセージは図示の符号７２０で示すようなＸＭＬ形式であり、タグ＜ｔｙｐｅ＞〜＜／ｔｙｐｅ＞で検索したいデバイスのタイプを指定する。ここでは、プリンタが検索が目的であるため、PrintServiceとしている。
【００６６】
ネットワークプリンタＢ（１２０）、Ｃ（１３０）は、上記のＰｒｏｂｅメッセージを受け取ると、タグタグ＜ｔｙｐｅ＞〜＜／ｔｙｐｅ＞内を解釈し、自身に対するメッセージであると判断し、自身のプリンタ識別子を含んだ応答メッセージを作成し、Ｐｒｏｂｅメッセージを発行したクライアント２１０に返信（ユニキャスト）する。
【００６７】
以上の結果、クライアント２１０は、ネットワークプリンタＢ（１２０）、Ｃ（１３０）から、それぞれ応答メッセージを受信することになる。クライアント２１０は、これら応答メッセージの発信元情報（ネットワークプリンタＢ（１２０）、Ｃ（１３０）それぞれのＩＰアドレス）と、先のプリンタドライバに関連付けられた代替プリンタ情報のプリンタ識別子と比較して、異なる場合は代替プリンタではないと判断して別のネットワークプリンタから送信される応答メッセージを待つ。一致した場合は、その送信してきたネットワークプリンタが代替プリンタであることが判明する。実施形態の場合、ネットワークプリンタＢ（１２０）が、ネットワークプリンタＡ（１１０）の代替プリンタである例を説明しているので、この時点で、クライアント２１０はネットワークプリンタＡ（１１０）の代替プリンタがネットワーク上に存在することを検出（特定）できたことになる。
【００６８】
図８（ａ）、（ｂ）は、クライアント２１０が代替プリンタを特定出来た際、ユーザに代替プリンタで印刷してよいかを問い合わせるＵＩ表示メッセージの例を示したものである。
【００６９】
図８（ａ）のＵＩ表示メッセージウインドウ８１０は、単純に代替印刷を行うことをユーザに示す例であり、“はい”ボタンが選択された場合は、代替プリンタドライバへの切り替え、あるいは代替プリンタドライバのインストールを行う。
【００７０】
また、図８（ｂ）のＵＩ表示メッセージウインドウ８２０は、単に代替印刷を行うことをユーザに示すだけでなく、その代替プリンタに対する付加情報８３０も表示したものである。付加情報とは、例えば代替プリンタの設置場所や、ドライバインストールの必要があるかどうかや、代替プリンタの名称等を表示する。ここで付加情報は、図４の代替プリンタ情報３１０で説明したように、操作パネル３０等であらかじめ設定されていたプリンタ識別子以外の情報とすることが出来る。また、先に説明したように、ネットワークデバイスを管理しているサーバに対し、ターゲットとなるデバイスを特定する情報についての送信要求メッセージを送信して、取得するようにしても構わない。
【００７１】
また、元々使用していたネットワークプリンタＡ（１１０）と、代替プリンタであるネットワークプリンタＢ（１２０）が異なる機種（異なるＰＤＬの場合も含む）であり、未だ、その代替プリンタ用のプリンタドライバがインストールされていない場合、代替プリンタのプリンタドライバをインストール処理に移行する。この場合、図２にて説明したように、ＷＳモジュール１００３がＰｎＰコントローラ１００６に対して代替プリンタドライバのから取得した属性情報を通知し、ＰｎＰコントローラ１００６は該属性情報をもとに該当するプリンタドライバのインストールを実行させるようにすればよい。
【００７２】
図９は、一度ネットワークから離脱（切断）され、代替プリンタ情報を発行したネットワークプリンタＡ（１１０）が、再度ネットワークに再接続されたときの処理を示す。
【００７３】
ネットワークに再接続したネットワークプリンタＡ（１１０）は、先に説明したように、Ｈｅｌｌｏメッセージ９１０を送信する。ネットワークプリンタＡ（１１０）用のプリンタドライバがインストールされていないクライアント２２０やクライアント２３０は処理を行う必要は無い。ネットワークプリンタＡ（１１０）用プリンタドライバ９２０がインストールされているクライアント２１０は、そのプリンタドライバに関連付けられた代替プリンタ情報９１０が存在するか判断し、存在する場合は、代替プリンタ情報（９１０）の関連を切りはずし、代替プリンタ情報９１０を削除する。そして、プリンタドライバ９２０による出力先情報として、ネットワークプリンタＡ（１１０）を再設定することで、クライアント２１０の環境を、ネットワークプリンタＡ（１１０）がネットワークから離脱する前の状態に戻す。なお、ここでクライアント２１０には代替印刷を行っていた間使用された代替プリンタ用プリンタドライバ９３０も存在するが、こちらは削除してもそのまま残しておいても本発明に影響はない。残した場合には、次回、代替プリンタを利用するようになった場合に、そのインストール処理が不要にできる。
【００７４】
以上であるが、本実施形態における各ネットワークプリンタ、クライアントの処理を、添付のフローチャートに従って再度説明する。
【００７５】
図１０は、ネットワークに接続されているネットワークプリンタが、操作パネル３０から電源ＯＦＦやネットワーク切断指示を受けたときにＢｙｅメッセージの発行処理手順を示すフローチャートである。
【００７６】
先ず、ネットワークプリンタが、ネットワークからの切断指示を受けると（ステップＳ１０−１）、そのプリンタ内部に代替プリンタ情報が格納されているかの判断を行う（ステップＳ１０−２）。格納されていない場合は、通常のByeメッセージを作成する（ステップＳ１０−４）。また、代替プリンタ情報が格納されている場合は、代替プリンタ情報を含むＢｙｅメッセージを作成する（ステップＳ１０−３）。このあと、ステップＳ１０−５に進み、ステップＳ１０−３、１０−４のいずれかで作成したＢｙｅメッセージをブロードキャスト送信し、ステップＳ１０−６に進んで、ネットワークの切断処理を行なう。なお、このネットワーク切断処理には電源断処理を含むが、場合によっては、ネットワークプリンタの備えるネットワークコントローラ２５を動作不能状態にする処理でも構わない。
【００７７】
図１１は、ネットワークプリンタからＢｙｅメッセージを受信したクライアントが実行する処理のフローチャートである。このフローチャートに関るプログラムは、クライアントのＯＳが起動した際に、ネットワークからのＢｙｅメッセージ受信を監視するメモリ常駐型のプログラムである。
【００７８】
クライアントのＣＰＵ１がネットワークプリンタからＢｙｅメッセージを受信すると（ステップＳ１１−１）、そのＢｙｅメッセージを発行したネットワークプリンタ用のプリンタドライバがＯＳにインストールされているか否かを判断する（ステップＳ１１−２）。登録されていなければ、今まで使用していなかったプリンタがネットワークから切断されただけであるため、そのままＢｙｅメッセージに対するクライアントの処理は終了する。
【００７９】
また、ステップＳ１１−２において、インストールされているプリンタドライバ用のネットワークプリンタからＢｙｅメッセージを受信したと判断した場合には、そのＢｙｅメッセージ中に代替プリンタ情報が存在するか判断する（ステップＳ１１−３）。代替プリンタ情報が存在しないと判断した場合には、そのＢｙｅメッセージに対するクライアントの処理は終了する。ただし、クライアントを操作するユーザは今まで使用していたプリンタが使用出来なくなるため、例えばプリンタドライバを非アクティブ状態（ＧＵＩ上では、グレーアウト表示）させるようにしても良い。
【００８０】
さて、受信したＢｙｅメッセージ中に、代替プリンタ情報が存在すると判断した場合、そのＢｙｅメッセージを発行したプリンタ用のプリンタドライバと、代替プリンタ情報を関連付けて記憶すると共に、Ｂｙｅメッセージを発行したプリンタを特定する情報を記憶し、本Ｂｙｅメッセージ受信時の処理を終了する。
【００８１】
図１２は、クライアントにおいてプリンタドライバの選択処理を示すフローチャートである。プリンタドライバが選択される状況とはユーザがプリンタドライバの設定を変更したり、アプリケーションから印刷要求が発生した場合である。図１２の処理は、これらの状況になった場合に実行される処理手順である。
【００８２】
クライアントに登録されているプリンタドライバが選択されると（ステップＳ１２-１）、プリンタドライバは自身に代替プリンタ情報が関連付いているかの判断を行う（ステップＳ１２-２）。関連付いていなければ、そのままユーザからの設定変更や印刷処理等、通常の印刷処理を行う（ステップＳ１２-３）。
【００８３】
また、ステップＳ１２-２において、プリンタドライバに代替プリンタ情報が関連付いていると判断した場合、ステップＳ１２−４に進んで、ネットワークプリンタの探索用のＰｒｏｂｅメッセージを作成し、ブロードキャスト送信する。そして、各ネットワークプリンタからの応答メッセージの受信を待つ。
【００８４】
応答メッセージを受信すると（ステップＳ１２−５）、その応答メッセージの発行元のプリンタ識別子（ＩＰアドレス）を抽出し、プリンタドライバに関連付けられた代替プリンタ情報内の代替プリンタの識別子（ＩＰアドレス）と比較する（ステップＳ１２−６）。両者が不一致であると判断した場合、その応答メッセージを発行したネットワークプリンタは代替プリンタではないことになるいので、ステップＳ１２−７に進み、他のネットワークプリンタからの応答メッセージがあったか否かを判断する。他の応答メッセージを受信したと判断した場合には、ステップＳ１２−５に戻り、上記処理を繰り返す。全ての応答メッセージが代替プリンタ情報と不一致である場合には、ステップＳ１２−８に進んで、そのプリンタドライバを利用した印刷不可であるメッセージを表示し、本処理を終了する。
【００８５】
また、代替プリンタ情報で特定されたネットワークプリンタから応答メッセージを受信したと判断した場合には、処理はステップＳ１２−９に進み、図８（ａ）や図８（ｂ）に示した実際に代替印刷を行うかを問い合わせるＵＩ表示を行い、ユーザの指示を待つ。ユーザは、ポインティングデバイスを操作し、代替プリンタで印刷するか否かを指示することになる。
【００８６】
ステップＳ１２−１０では、代替プリンタでの印刷指示が入力されたか否かを判断する。代替プリンタでの印刷を行なわないとの指示入力があった場合には、ステップＳ１２−８に進み、印刷がキャンセルされたことを示すメッセージを表示し、本処理を終了する。また、代替プリンタでの印刷指示が入力されたと判断した場合、ステップＳ１２−１１に進み、代替プリンタからの応答メッセージのみをＯＳに渡し、ドライバセットアップ処理を行なわせる。つまり、代替プリンタ以外の応答メッセージについては、ＯＳには通知しない。この結果、ＯＳは、代替プリンタのプリンタドライバについてのみ、代替プリンタドライバのセットアップ処理（既にインストールされている場合には、インストールはされない）を行うことになる。
【００８７】
図１３は、ネットワークプリンタがネットワークに接続された時に発行するＨｅｌｌｏメッセージをクライアントが受け取ったときの処理フローを示す。この処理も、クライアントのメモリに常駐するプログラムでもって実現している。
【００８８】
ネットワークプリンタからＨｅｌｌｏメッセージを受信する(ステップＳ１３-１)と、ステップＳ１３０２に進んで、そのＨｅｌｌｏメッセージを発行したネットワークプリンタのプリンタドライバが既に登録されているかを判断する（ステップＳ１３-２）。登録されていなければ使用しないネットワークプリンタからのＨｅｌｌｏメッセージであることを意味するため、何も行わないで処理を終了する。この結果、ネットワーク上に多数のプリンタが存在する場合に、それら全てのプリンタドライバのインストールが行われなくなり、クライアントのメモリを圧迫することを防止できる。
【００８９】
また、ステップＳ１３−２において、Ｈｅｌｌｏメッセージの送信元のプリンタ用のプリンタドライバが既にＯＳにインストールされていると判断した場合、処理はステップＳ１３−３に進む。ここでは、Ｈｅｌｌｏメッセージの送信元のプリンタドライバに関連づけられた代替プリンタ情報が存在するか否かを判断する。代替プリンタ情報が存在しない場合には、本処理を終了する。また、代替プリンタ情報が存在すると判断した場合には、代替プリンタで印刷する以前に使用していたネットワークプリンタがネットワークに再度参加したことを意味する。従って、ステップＳ１３−４に進んで、その代替プリンタ情報を削除する。この結果、元々の使用していたネットワークプリンタに対して印刷処理が出来るようにする。
【００９０】
以上説明したように本実施形態によれば、ネットワークプリンタは、自身がネットワークから離脱する際に、代替プリンタを特定するための代替プリンタ情報を含むネットワーク離脱メッセージ（Ｂｙｅメッセージ）をブロードキャスト送信する。この結果、そのネットワークプリンタ用のプリンタドライバを利用していたクライアントに対して、自身が使用できなくなった点、並びに、代替プリンタの所在を知らせることが可能になる。一方、ネットワークプリンタを利用するクライアント（ＰＣ等）は、使用中のネットワークプリンタからネットワーク離脱メッセージを受信した場合、その離脱した点、並びに、代替プリンタを特定する情報に基づき、その代替プリンタを利用した印刷を行なうことが可能になる。また、不必要に、ネットワークプリンタのドライバがインストールされることも抑制することが可能になる。
【００９１】
なお、上記実施形態では、代替プリンタの所在を確認する際、Ｐｒｏｂｅメッセージをブロードキャストするものとして説明した。しかし、代替プリンタ情報には代替プリンタのＩＰアドレスが記述されているので、そのＩＰアドレスに向けてＰｒｏｂｅメッセージをユニキャストし、その応答メッセージを受信できたか否かで代替プリンタの所在を確認するようにしても構わない。
【００９２】
＜第２の実施形態＞
上記実施形態では、ネットワークプリンタが代替プリンタ情報を格納したＢｙｅメッセージを送信するのは、操作者がネットワークプリンタの操作パネルを操作し、ネットワーク切断指示を入力した場合であった。しかしながら、これによって本発明が限定されるものではない。
【００９３】
例えば、紙詰まり、トナー切れ等メンテナンスのために短時間、該ネットワークプリンタが使用できない場合にも代替印刷をおこなうことが出来る。本第２の実施形態では、操作者の介在をせずとも、Ｂｙｅメッセージを発行する例を説明する。ただし、用紙無しの状態は、比較的多量に印刷するユーザ（特に企業）では、頻繁に発生する。従って、用紙無しが発生する度に、代替プリンタに切り換わると逆に、ユーザが混乱する元になる。逆に言えば、比較的短時間内にに印刷可に復旧するようなケースでは、むしろＢｙｅメッセージを発行せず、その普及を待つことが望まれる。
【００９４】
そこで、本第２の実施形態では、ネットワークプリンタにおいて、何らかの原因で、それ以降の印刷ジョブが遅滞無く実行できなくなった場合、その原因によってＢｙｅメッセージの発行タイミングを調整する例を説明する。
【００９５】
図１４は、本第２の実施形態におけるネットワークプリンタが予め格納している情報を示したものである。この情報は、操作パネル３０から設定されるもので、ハードディスクに保存されるものである。なお、ネットワークプリンタには、第１の実施形態で示した代替プリンタ情報３１０が記憶保持されているものとする。
【００９６】
さて、図１４において、Ｂｙｅ発行判断情報１４１０は予測時間テーブル１４４０とＢｙｅ発行閾値情報１４２０により構成される。
【００９７】
予測時間テーブル１４１０は、紙詰まり、紙無し、印刷ジョブ投入等のイベントが発生した時、プリンタ１１０がそのイベントによりどの程度の時間、印刷処理が出来なくなるかの予測値を示したものである。ここでは、紙詰まり１０分、紙無し５分等の固定値、あるいは印刷ジョブが投入された場合はページ数やプリンタ１１０の１ページ当たりの印刷にかかる時間および両面印刷等の機能をパラメータとした関数等を例としてあげている。
【００９８】
Ｂｙｅ発行閾値情報１４２０は、イベントによりある程度の時間印刷処理が出来なくなった場合、印刷処理が行えない時間がどの程度になれば代替プリンタ情報を含むＢｙｅメッセージ発行によるかを決定する閾値である。
【００９９】
プリンタＡ（１１０）のＣＰＵ２１は、予測時間テーブル１４４０で定義された各状態になった場合（イベントが発生した場合）、該当する予測時間値の加算を行ない合計予測値を更新する。また、該当するイベントが完了した場合（例えば紙無し状態から用紙再装填された場合）には、その予測時間値を減算して、合計予測値を更新する。そして、その合計予測値がＢｙｅ発行閾値より大きくなると、代替プリンタ情報を記述したＢｙｅメッセージを発行する。
【０１００】
なお、Ｂｙｅメッセージ発行を行う前に、代替プリンタが現在印刷処理が出来る状況かどうか、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づいたメッセージ等にて確認を行なうことが好ましい。短時間の代替印刷に対して、代替プリンタがその時点で印刷処理できない状況であったら代替印刷の意味がなく、クライアント側のユーザを混乱させてしまうだけになってしまうためである。
【０１０１】
各イベントによる合計予測値がＢｙｅ発行閾値１４２０を上回ってＢｙｅメッセージの発行を行った後にも、各イベントの完了あるいは新規イベントが発生した際には合計予測値を更新し続ける。そして合計予測値がＢｙｅ発行閾値１４２０を下回った場合、プリンタＡ（１１０）のＣＰＵ２１は、図９に示したＨｅｌｌｏメッセージ発行を行なう。
【０１０２】
図１５は本第２の実施形態におけるネットワークプリンタの処理手順を示すフローチャートである。
【０１０３】
ネットワークから印刷ジョブを受信した、或いは、不図示のセンサにより、装置内に記録紙の紙詰まりが発生した等のイベントが発生した場合（ステップＳ１５-１）、ネットワークプリンタは予測時間テーブル１４４０から該イベントの予測時間を取得し（ステップＳ１５-３）、別の領域に記憶している合計予測値に加える（ステップＳ１５-４）。
【０１０４】
また、受信した印刷ジョブに対する処理が完了した、或いは、紙詰まりが解消した等のイベント完了が検出できた場合（ステップＳ１５−２）、該当するイベントの予測値を、合計予測値から減算する（ステップＳ１５−４）。
【０１０５】
そして更新された合計予測値がＢｙｅ発行閾値を上回るか判断する（ステップＳ１５−５）。上回っている場合は、処理はステップＳ１５−６に進み、Ｂｙｅメッセージを既に発行しているか否かを示すフラグを調べ、このフラグがＯＮか否かを判定する。このフラグがＯＮの場合、Ｂｙｅメッセージは既に発行済みであることになるので、本処理を終了し、次回のイベント発生、イベント完了を待つ。
【０１０６】
また、ステップＳ１５−６において、フラグがＯＮではなく、ＯＦＦであると判断した場合には、Ｂｙｅメッセージを作成、送信する（ステップＳ１５−８）。そして、Ｂｙｅメッセージ発行済みフラグをＯＮにし（ステップＳ１５−９)、本処理を終了する。
【０１０７】
一方、ステップＳ１５−５において、合計予測値がＢｙｅ発行閾値以下であると判断した場合には、ステップＳ１５−７に進み、Ｂｙｅメッセージ発行済みであるか否かをフラグがＯＮかＯＦＦかで判断する。このフラグがＯＦＦであると判断した場合には、Ｈｅｌｌｏメッセージを発行する必要がないので、本処理を終了する。
【０１０８】
また、フラグがＯＮであると判断した場合、すなわち、過去にＢｙｅメッセージを発行していて、現在の合計予測値がＢｙｅ発行閾値以下であると判断した場合には、ステップＳ１５−１０に進んで、Ｈｅｌｌｏメッセージを作成し、それを送信する。そして、これによって、このフラグをＯＦＦにして、本処理を終了する。
【０１０９】
なお、本第２の実施形態における各クライアントの処理は、第１の実施形態と同様である。また、本第２の実施形態に、第１の実施形態で説明したＢｙｅメッセージ発行処理を組み合わせても構わない。
【０１１０】
＜第３の実施形態＞
上記第１、第２の実施形態では、或る１つのネットワークプリンタが何らかの要因で代替プリンタ情報を含むＢｙｅメッセージを発行した場合、そのネットワークプリンタ用のプリンタドライバをインストールしているクライアントは、指定された代替プリンタを利用するものとした。
【０１１１】
しかし、代替プリンタとして指定されたネットワークプリンタが、既にネットワークから離脱し、更なる代替プリンタ情報を含むＢｙｅメッセージを発行していることも有り得る。そこで、本第３の実施形態では、このような状況に対処する例を説明する。なお、Ｂｙｅメッセージの発行処理は、上記第１、第２の実施形態の何れであっても構わない。
【０１１２】
図１６は、クライアント２１０がプリンタＡ（１１０）からプリンタＢを代替プリンタとするＢｙｅメッセージを受け取り、且つ、既に、プリンタＢからプリンタＣを代替プリンタとするＢｙｅメッセージを受信した状態を示している。
【０１１３】
クライアント２１０のＣＰＵは、プリンタＡ（１１０）からＢｙｅメッセージを受信した場合、先ず、そのプリンタＡ用のプリンタドライバ１６１０に関連付けて、受信したその代替プリンタ情報を格納する。次いで、ＣＰＵは、受信したＢｙｅメッセージには、代替プリンタＢを示す情報が格納されていることを検出できるので、そのプリンタＢ用のプリンタドライバ１６２０に関連づけられた代替プリンタ情報１６４０が存在することを検出する。従って、次に、プリンタＣ用のプリンタドライバ１６３０に関連づけられた代替プリンタ情報が存在するか否かを判断する。図示の場合、プリンタＣ用プリンタドライバ１６３０に関連付けられた代替プリンタ情報が存在しないので、最終的に利用する代替プリンタをプリンタＣと決定する。
【０１１４】
上記のようにすると、クライアントは順次、自身のＯＳにインストールされたプリンタドライバとそれに関連づけられた代替プリンタ情報があるか否かを探索すれば良いことになるので、上記の様に２重代替プリンタだけでなく、３重、４重にも対処できるのが理解出来よう。
【０１１５】
以上、本発明にかかる実施形態を説明した。本実施形態では、ネットワークデバイスとしてネットワークプリンタを例にし、クライアントにインストールされるデバイスドライバもプリンタドライバを例にしたが、これによって本発明が限定されるものではない。例えば、ネットワークファクシミリ装置（ネットワーク上のクライアントから送信された文書データを、指定された相手先にＦＡＸ送信する装置）、ネットワークスキャナ等、他のネットワークデバイスにも適用できるからである。
【０１１６】
また、実施形態では、ネットワークデバイス（ネットワークプリンタ）は有線ネットワーク（イーサネット）（登録商標）接続を前提にして説明したが、無線ＬＡＮ通信手段でもってＬＡＮに接続する場合にも当然に適用可能であるし、システム全体として見た場合には、有線、無線が混在していても構わない。
【０１１７】
また、実施形態で説明したように、クライアント側の処理は、そのクライアント上で実行するアプリケーションプログラムによって実現できるものであるから、本発明はそのようなコンピュータプログラムをもその範疇とする。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータにセットして、システムにコピーもしくはインストールすることで実行可能になる。従って、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇にあるのは明らかである。
【図面の簡単な説明】
【０１１８】
【図１】実施形態におけるネットワークプリントシステムにおいて、クライアントとネットワークプリンタに注目した時のハード構成を示すブロック図である。
【図２】クライアントとネットワークプリンタのプリンタコントローラ部におけるネットワーク接続に関連するモジュールを示す図である。
【図３】実施形態におけるネットワークプリントシステムの構成例を示す図である。
【図４】ネットワークプリンタの操作パネルを利用した、代替プリンタの指定方法を示す図である。
【図５】Ｂｙｅメッセージの流れと、受信したクライアントの処理概要を示す図である。
【図６】実施形態におけるＢｙｅメッセージの記述フォーマットを示す図である。
【図７】実施形態におけるクライアントから発行するＰｒｏｂｅメッセージと、代替プリンタの判別処理概要を示す図である。
【図８】実施形態におけるＵＩメッセージウインドウの例を示す図である。
【図９】一度ネットワークから離脱したネットワークプリンタが、再度ネットワークに接続する際に発行するＨｅｌｌｏメッセージの流れと、そのメッセージを受信したクライアントの処理概要を説明するための図である。
【図１０】第１の実施形態におけるネットワークプリンタのＢｙｅメッセージ発行処理手順を示すフローチャートである。
【図１１】第１の実施形態におけるクライアントのＢｙｅメッセージ受信時の処理手順を示すフローチャートである。
【図１２】第１の実施形態におけるクライアントでのプリンタドライバの選択イベント発生時の処理手順を示すフローチャートである。
【図１３】第１の実施形態におけるクライアントがＨｅｌｌｏメッセージを受信した場合の処理手順を示すフローチャートである。
【図１４】第２の実施形態におけるネットワークプリンタが記憶する情報を示す図である。
【図１５】第２の実施形態におけるネットワークプリンタの処理手順を示すフローチャートである。
【図１６】第３の実施形態におけるクライアントの処理内容を説明するための図である。
【図１７】ＵＰｎＰネットワークデバイスの発見からそのデバイスドライバのインストールされるまでの一般的なシーケンスを示す図である。
【図１】
2007114901.tif 000003
【図２】
2007114901.tif 000004
【図３】
2007114901.tif 000005
【図４】
2007114901.tif 000006
【図５】
2007114901.tif 000007
【図６】
2007114901.tif 000008
【図７】
2007114901.tif 000009
【図８】
2007114901.tif 000010
【図９】
2007114901.tif 000011
【図１０】
2007114901.tif 000012
【図１１】
2007114901.tif 000013
【図１２】
2007114901.tif 000014
【図１３】
2007114901.tif 000015
【図１４】
2007114901.tif 000016
【図１５】
2007114901.tif 000017
【図１６】
2007114901.tif 000018
【図１７】
2007114901.tif 000019