(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
ユーザアプリケーションとして動作し、周辺機器のステータスを表示するステータス表示手段と、
前記ユーザアプリケーションと通信するサービスアプリケーションとして動作し、前記周辺機器と双方向通信を行うことができる双方向通信手段と、を有し、
前記ステータス表示手段は、前記双方向通信手段に対して、前記周辺機器を特定する情報を含む周辺機器のステータスの取得要求を発行し、
前記双方向通信手段は、前記周辺機器を特定する情報に基づいて前記ステータスを取得する対象の周辺機器を特定し、当該対象となる周辺機器に対してステータスの取得要求を送信し、
当該取得要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記ステータス表示手段に送信し、前記ステータス表示手段は、前記双方向通信手段から受信した前記ステータスに基づく情報に基づき前記周辺機器のステータスを表示することを特徴とする情報処理装置。
【請求項２】
前記ステータス表示手段は、前記周辺機器のステータスの取得要求を前記双方向通信手段に対して発行する際、前記双方向通信手段が動作していないときは前記サービスアプリケーションが停止していることを示す情報を表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記双方向通信手段は、前記取得要求に対して前記周辺機器から所定時間内に応答がないときは通信エラーが発生していることを示す情報を含むステータスの情報を前記ステータス表示手段に送信し、前記通信エラーが発生していることを示す情報を含むステータスの情報を前記双方向通信手段から受信した前記ステータス表示手段は、当該通信エラーが発生していることを示す情報を表示することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ステータス表示手段と前記双方向通信手段との通信は、ＬＰＣ（Local Procedure Call）により行われることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記周辺機器を特定する情報は、前記周辺機器の名称情報であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
ネットワークを介してクライアントとサーバとが接続され、前記サーバに接続された周辺機器を前記クライアントとサーバとが共有する情報処理システムであって、
前記クライアントは、
ユーザアプリケーションとして動作し、周辺機器のステータスを表示するステータス表示手段を有し、
前記ステータス表示手段は、前記サーバ上のサービスアプリケーションとして動作し、前記サーバに接続された周辺機器と双方向通信を行うことができる双方向通信手段に対して、前記周辺機器を特定する情報を含む周辺機器のステータスの取得要求を発行し、
前記サーバの前記双方向通信手段は、前記周辺機器を特定する情報に基づいて前記ステータスを取得する対象となる周辺機器を特定し、当該対象の周辺機器に対してステータスの取得要求を送信し、
当該取得要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記クライアントに送信し、前記ステータス表示手段は、前記双方向通信手段から受信した前記ステータスに基づく情報に基づき周辺機器のステータスを表示することを特徴とする情報処理システム。
【請求項７】
前記ステータス表示手段と前記サーバの双方向通信手段との通信は、ＲＰＣ（Remote Procedure Call）により行われることを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記周辺機器を特定する情報は、前記周辺機器の名称情報であることを特徴とする請求項６又は７に記載の情報処理システム。
【請求項９】
前記ステータス表示手段は、前記サーバの双方向通信手段に対して、前記周辺機器の名称に加えて、ポート名及びドライバ名を更に含むステータスの取得要求を発行し、
前記サーバの前記双方向通信手段は、前記周辺機器の名称、ポート名及びドライバ名に基づいて前記ステータスを取得する対象の周辺機器を特定し、当該対象の周辺機器に対してステータスの取得要求を送信し、
当該取得要求に対して前記周辺機器から返送されるステータスを前記クライアントに送信することを特徴とする請求項８に記載の情報処理システム。
【請求項１０】
前記サーバは、前記周辺機器に印刷ジョブを送信するための共有プリンタを公開しており、前記クライアントは、当該共有プリンタを経由して前記周辺機器に印刷ジョブを送信するためのプリンタドライバを更に有することを特徴とする請求項６乃至８のいずれか１項に記載の情報処理システム。
【請求項１１】
情報処理装置を制御する制御方法であって、
ユーザアプリケーションとして動作し、周辺機器のステータスを表示するステータス表示工程と、
前記ユーザアプリケーションと通信するサービスアプリケーションとして動作し、前記周辺機器と双方向通信を行うことができる双方向通信工程と、を有し、
前記ステータス表示工程は、前記双方向通信工程に対して、前記周辺機器を特定する情報を含む周辺機器のステータスの取得要求を発行し、
前記双方向通信工程は、前記周辺機器を特定する情報に基づいて前記ステータスを取得する対象の周辺機器を特定し、当該対象となる周辺機器に対してステータスの取得要求を送信し、
当該取得要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記ステータス表示工程に送信し、前記ステータス表示工程は、前記双方向通信工程で受信した前記ステータスに基づく情報に基づき前記周辺機器のステータスを表示することを特徴とする制御方法。
【請求項１２】
情報処理装置にインストールされたステータス表示アプリケーションと双方向通信アプリケーションであって、
前記ステータス表示アプリケーションは、前記情報処理装置に、前記情報処理装置における前記双方向通信アプリケーションへ周辺機器のステータスの取得要求を送信させ、当該取得要求には、前記周辺機器を特定する情報が含まれており、
前記双方向通信アプリケーションは、前記情報処理装置に、前記情報に基づいて特定された周辺機器に対してステータスの取得を要求させ、当該要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記ステータス表示アプリケーションに送信させ、
前記ステータス表示アプリケーションは、前記情報処理装置に、前記双方向通信アプリケーションから受信した前記ステータスに基づく情報に基づき前記周辺機器のステータスを表示させることを特徴とするステータス表示アプリケーションと双方向通信アプリケーション。
【請求項１３】
前記ステータス表示アプリケーションは、前記双方向通信アプリケーションが動作していないことに従って、前記双方向通信アプリケーションが停止していることを示す情報を表示することを特徴とする請求項１２に記載のステータス表示アプリケーションと双方向通信アプリケーション。
【請求項１４】
前記双方向通信アプリケーションは、前記取得要求に対し、所定時間内に応答がないときは通信エラーが発生していることを示す情報を含むステータスに基づく情報を前記ステータス表示アプリケーションに対して通知し、
前記ステータス表示アプリケーションは、前記通信エラーが発生していることを示す情報を含むステータスに基づく情報を前記双方向通信アプリケーションから受信した場合、通信エラーが発生していることを示す情報を表示することを特徴とする請求項１２又は１３に記載のステータス表示アプリケーションと双方向通信アプリケーション。
【請求項１５】
前記ステータス表示アプリケーションと前記双方向通信アプリケーションとの通信は、ＬＰＣ（Local Procedure Call）を使用して実行されることを特徴とする請求項１２乃至１４のいずれか１項に記載のステータス表示アプリケーションと双方向通信アプリケーション。
【請求項１６】
情報処理装置であって、
周辺機器のステータスを表示するステータス表示アプリケーションと、
前記ステータス表示アプリケーションと通信し、前記周辺機器と双方向通信を行うことができる双方向通信アプリケーションと、を有し、
前記ステータス表示アプリケーションは、前記双方向通信アプリケーションに対して、前記周辺機器のステータスの取得要求を送信し、当該取得要求には、前記周辺機器を特定する情報が含まれており、
前記双方向通信アプリケーションは、前記情報に基づいて特定された周辺機器に対してステータスの取得を要求し、
当該要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記ステータス表示アプリケーションに送信し、
前記ステータス表示アプリケーションは、前記双方向通信アプリケーションから受信した前記ステータスに基づく情報に基づき前記周辺機器のステータスを表示することを特徴とする情報処理装置。
【請求項１７】
前記ステータス表示アプリケーションは、前記取得要求を前記双方向通信アプリケーションに対して発行する際、前記双方向通信アプリケーションが動作していないときは前記双方向通信アプリケーションが停止していることを示す情報を表示することを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記双方向通信アプリケーションは、前記取得要求に対して前記周辺機器から所定時間内に応答がないときは通信エラーが発生していることを示す情報を含むステータスの情報を前記ステータス表示アプリケーションに送信し、前記通信エラーが発生していることを示す情報を含むステータスの情報を前記双方向通信アプリケーションから受信した前記ステータス表示アプリケーションは、当該通信エラーが発生していることを示す情報を表示することを特徴とする請求項１６又は１７に記載の情報処理装置。
【請求項１９】
前記ステータス表示アプリケーションと前記双方向通信アプリケーションとの通信は、ＬＰＣ（Local Procedure Call）により行われることを特徴とする請求項１６乃至１８のいずれか１項に記載の情報処理装置。
【請求項２０】
前記周辺機器を特定する情報は、前記周辺機器の名称情報であることを特徴とする請求項１６乃至１９のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその制御方法、及び情報処理システムとステータス表示アプリケーションと双方向通信アプリケーションに関する。
【背景技術】
【０００２】
一般的に、プリンタ装置のステータス（状態）を知りたい場合、ユーザはそのプリンタ装置の操作パネルの表示で確認する。一方、ホストベース型のプリンタ装置のように、プリンタ装置本体に十分なユーザーインタフェースを備えていない場合、ユーザは、そのプリンタ装置と接続しているホストＰＣでプリンタ装置の状態を確認することができる。このような場合は、そのＰＣで実行されるステータス通知アプリケーションにより、そのＰＣと接続しているプリンタ装置のステータス表示やデバイスの設定などを行うことができる。
【０００３】
マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が提供するプリンタドライバのアーキテクチャとしてＶ３ドライバというアーキテクチャが知られている。このＶ３ドライバは、プリントスプーラとプリンタ装置との間の双方向通信を実現するランゲージモニタを備えている。そして各プリンタ装置のベンダーは、そのランゲージモニタをカスタマイズすることで、ＰＣによるプリンタ装置のステータス情報の取得やプリンタの制御を行っている（特許文献１参照）。特許文献１は、ＰＣがプリンタ装置のステータス情報を取得するために、ランゲージモニタをＲＰＣサーバとして双方向通信することを記載している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−７９１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｖ３ドライバの次のアーキテクチャとしてＶ４ドライバというアーキテクチャがＷｉｎｄｏｗｓ８（登録商標）以降サポートされるようになった。このＶ４ドライバでは、ランゲージモニタのカスタマイズが許されない。そのためランゲージモニタをカスタマイズしてプリンタ装置との双方向通信を行うことができなくなる。このように、ランゲージモニタのカスタマイズに頼らずにＰＣとプリンタ装置との間の双方向通信を行うインターフェースがＯＳから提供されている。しかし、その提供されているインターフェースは、印刷中には実行できないという制限がある。そのためＶ３ドライバと同様に、双方向通信による情報の取得を実現することができない。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の特徴は、サービスアプリケーションとして動作し、周辺機器と双方向通信を行うことができる双方向通信手段により周辺機器との間で双方向通信を実現して上記課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
情報処理装置であって、
ユーザアプリケーションとして動作し、周辺機器のステータスを表示するステータス表示手段と、
前記ユーザアプリケーションと通信するサービスアプリケーションとして動作し、前記周辺機器と双方向通信を行うことができる双方向通信手段と、を有し、
前記ステータス表示手段は、前記双方向通信手段に対して、前記周辺機器を特定する情報を含む周辺機器のステータスの取得要求を発行し、
前記双方向通信手段は、前記周辺機器を特定する情報に基づいて前記ステータスを取得する対象の周辺機器を特定し、当該対象となる周辺機器に対してステータスの取得要求を送信し、
当該取得要求の応答として前記周辺機器から返送されたステータスに基づく情報を前記ステータス表示手段に送信し、前記ステータス表示手段は、前記双方向通信手段から受信した前記ステータスに基づく情報に基づき前記周辺機器のステータスを表示することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、例えばカスタマイズできないドライバが実装されても、従来のカスタマイズ可能なドライバの場合と同様に、周辺機器のステータス情報を取得して表示できるという効果がある。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る情報処理システムの構成を説明する図。
【図２】実施形態１に係るホストＰＣのハードウェア構成を説明するブロック図。
【図３】実施形態１に係るプリンタ装置のハードウェア構成を示すブロック図。
【図４】実施形態１に係るホストＰＣ上で動作するステータス通知アプリケーションが表示部に表示する画面例を示す図。
【図５】一般的な情報処理装置のステータス通知アプリケーションが、Ｖ３ドライバアーキテクチャでランゲージモニタを使用しプリンタ装置と双方向通信を行う構成例を示す図。
【図６】本発明の実施形態１に係るＶ４ドライバアーキテクチャのホストＰＣのステータス通知アプリケーションがランゲージモニタを使用せずにプリンタ装置と双方向通信を行う構成を説明する図。
【図７】実施形態１に係るホストＰＣのステータス通知アプリケーションが双方向通信モジュールを介してプリンタ装置と通信して取得して表示するステータスの一例を示す図。
【図８】実施形態１に係るホストＰＣのステータス通知アプリケーションが双方向通信モジュール停止エラーのステータスを表示部に表示している例を示す図。
【図９】実施形態１に係るホストＰＣのステータス通知アプリケーションがジャムのステータスを表示部に表示している例を示す図。
【図１０】実施形態１に係るホストＰＣのステータス通知アプリケーションが双方向通信モジュールを介してプリンタ装置のステータスを表示するまでの処理を説明するフローチャート。
【図１１】実施形態１に係るホストＰＣのステータス通知アプリケーションからステータスの取得要求を受信した双方向通信モジュールがステータス通知アプリケーションに応答するまでの処理を説明するフローチャート。
【図１２】本発明の実施形態２に係る情報処理システムの構成を示す概念図。
【図１３】実施形態２に係るクライアントマシンのステータス通知アプリケーションがホストＰＣ上の双方向通信モジュールと通信してプリンタ装置のステータスを表示する構成を説明する図。
【図１４】実施形態２に係るクライアントマシンのステータス通知アプリケーションが双方向通信モジュールを介してプリンタ装置のステータスを表示するまでの処理を説明するフローチャート。
【図１５】実施形態２に係るクライアントマシンのステータス通知アプリケーションからステータスの取得要求を受信した双方向通信モジュールがステータス通知アプリケーションに応答するまでの処理を説明するフローチャート。
【図１６】本発明の実施形態３に係るクラスタ化されたプリントサーバを実現するサーバ・クラスタの構成図。
【図１７】実施形態３に係るクライアントマシン上で動作するステータス通知アプリケーションが、ノード上で動作する双方向通信モジュールを介してプリンタのステータスを取得して表示するまでの処理を説明するフローチャート。
【図１８】実施形態３に係るノード上で動作する双方向通信モジュールがクライアントマシンから仮想プリンタに紐づくプリンタのステータスの取得要求を受け取った際の処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
［実施形態１］
図１は、本発明の実施形態１に係る情報処理システムの構成を説明する図である。
【００１４】
この情報処理システムは、ホストＰＣ１００と、その周辺機器であるプリンタ装置１０１とを有している。ホストＰＣ１００には、プリンタ装置１０１のＶ４ドライバがインストールされている。そしてホストＰＣ１００とプリンタ装置１０１とはＩ／Ｆ（インターフェース）１０２を介して接続されている。このＩ／Ｆ１０２は、例えばＵＳＢやネットワークなどであり、いずれを使用するかはユーザが適宜選択できる。
【００１５】
図２は、実施形態１に係るホストＰＣ１００のハードウェア構成を説明するブロック図である。
【００１６】
ＣＰＵ２０１は、システム全体を制御するプロセッサである。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのシステムワークメモリを提供し、またプログラムを記録するためのプログラムメモリとして使用される。ＮＶＭＥＭ２０３は不揮発性メモリで、設定情報等を記録している。ＲＯＭ２０４は書き換え不可能な不揮発性メモリで、各種プログラムなどを記憶している。ＨＤＤ２０５はハードディスクドライブなどの大容量のデータ記憶装置で、ＯＳやプログラム等を記憶している。ＵＳＢＩ／Ｆ２０８は、ＵＳＢデバイスを接続するための機能ユニットで、ＵＳＢを介して接続されている他のデバイスのステータスを取得したり、ステータスを返したりする。ＬＡＮＩ／Ｆ２０７は、ＬＡＮに接続するための機能ユニットで、ＬＡＮに接続されている他のデバイスのステータスを取得したり、ステータスを返したりする。表示部インターフェース（Ｉ／Ｆ２０９）は、表示部２１０とＣＰＵ２０１とのインタフェースを制御している。入出力Ｉ／Ｆ２１１は、例えばキーボードやポインティングデバイス等を含む操作部２１２とのインタフェースを制御している。以上のデバイスがシステムバス２０６に配置される。
【００１７】
ここでＣＰＵ２０１はＲＯＭ２０４に記憶されているブートプログラムを実行してＨＤＤ２０５にインストールされているＯＳやプログラムなどをＲＡＭ２０２に展開し、それを実行することにより後述するホストＰＣ１００に係る処理を実行する。尚、表示部２１０はタッチパネル機能を備えていても良い。
【００１８】
図３は、実施形態１に係るプリンタ装置１０１のハードウェア構成を示すブロック図である。
【００１９】
コントローラユニット（制御部）３１３は、画像出力デバイスとして機能するプリンタエンジン３１１と接続することで、画像データやデバイス情報の入出力を行う。ＣＰＵ３０１は、このプリンタ装置１０１の動作を制御するプロセッサである。ＲＡＭ３０３は、ＣＰＵ３０１が動作するためのシステムワークメモリを提供し、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリとしても利用される。ＮＶＭＥＭ３０４は不揮発性のメモリで、設定情報等を記録する。操作部３１６は、このプリンタ装置１０１を操作するためのキーとデバイスの状態を示す表示部を有する。操作部Ｉ／Ｆ３１５は、制御部３１３と操作部３１６とのインターフェースを制御しており、操作部３１６の表示部の制御情報を送信する。また操作部３１６からユーザが入力した情報を制御部３１３に伝える役割をする。フラッシュＲＯＭ３０２は書き換え可能な不揮発性メモリで、このプリンタ装置１０１を制御するための各種制御プログラムを格納している。ＵＳＢＩ／Ｆ３０６は、外部装置とのＵＳＢ接続を可能にする。ＬＡＮＩ／Ｆ３１４は外部装置とのＬＡＮ接続を可能にする。以上のデバイスがシステムバス３０５上に配置される。
【００２０】
イメージバスＩ／Ｆ３０７は、システムバス３０５と画像データを高速で転送する画像バス３１２とを接続し、データ構造を変換するバスブリッジである。画像バス３１２は、ＰＣＩバス又はＩＥＥＥ１３９４で構成される。画像バス３１２上には以下のデバイスが配置される。ラスタイメージプロセッサ（ＲＩＰ）３０８は、ＰＤＬコードのようなベクトルデータをビットマップイメージに展開する。プリンタＩ／Ｆ３１０は、プリンタエンジン３１１と制御部３１３とを接続し、画像データの同期系／非同期系の変換や制御コマンドの送受信、電源供給を行う。画像処理部３０９は、入力した画像データに対し補正、加工、編集を行ったり、プリント出力画像データに対して補正、解像度変換等を行う。また、これに加えて、画像データの回転や、多値画像データに対してはＪＰＥＧ、２値画像データはＪＢＩＧ，ＭＭＲ，ＭＨ等の圧縮・伸張処理を行う。プリンタエンジン３１１は、ラスタイメージデータを基に用紙に画像を印刷する。その印刷方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印刷するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、ＣＰＵ３０１からの指示によって開始される。
【００２１】
ＵＳＢＩ／Ｆ３０６やＬＡＮＩ／Ｆ３１４を介して、ホストＰＣ１００からプリンタ装置１０１のステータスが問い合わせられると、ＣＰＵ３０１は、フラッシュＲＯＭ３０２からＲＡＭ３０３に展開されたプログラムを実行する。そしてＣＰＵ３０１は、プリンタエンジン３１１の状態を検知し、その検知した状態に基づいてステータスデータをホストＰＣ１００に返送する。
【００２２】
図４は、実施形態１に係るホストＰＣ１００上で動作するステータス通知アプリケーションが表示部２１０に表示する画面例を示す図である。
【００２３】
ステータス通知アプリケーションは、例えばＲＯＭ２０４或いはＨＤＤ２０５に格納されるプログラムで、ＲＡＭ２０２に展開されてＣＰＵ２０１により実行される。ステータス通知アプリケーションは、プリンタ装置１０１と双方向通信を行い、プリンタ装置１０１から取得したステータスデータの内容に応じてメインメッセージ部４０２、ステータス画面部４０３の表示を切り替える。補助メッセージ部４０３は、エラー発生時の解除手順や消耗品の残量の警告などを表示する。図４では、補助メッセージ部４０３として、トナーの残量が少なくなったことを示すメッセージが表示されている。
【００２４】
図５は、一般的な情報処理装置のステータス通知アプリケーションが、Ｖ３ドライバアーキテクチャでランゲージモニタを使用しプリンタ装置１０１と双方向通信を行う構成例を示す図である。
【００２５】
ドライバ５０１は、不図示のアプリケーションにより要求された印刷開始要求を受け付ける。スプーラ５０２は、アプリケーションから受け取ったデータから印刷データを生成するサービスアプリケーションである。ランゲージモニタ５０３は、スプーラ５０２にロードされ、プリンタ装置１０１との双方向通信やプリンタ制御コマンドなどを提供する。またランゲージモニタ５０３は、必要に応じて、スプーラ５０２から受け取った印刷データに処理を加える。ポートモニタ５０４は、プリンタ装置１０１とのＩ／Ｆに応じて出力処理を行う。
【００２６】
ステータス通知アプリケーション４０１は、ランゲージモニタ５０４と通信し、プリンタ装置１０１の情報を取得して表示する。スプーラ５０２が何らかの問題やユーザ操作により停止すると、ロードされているランゲージモニタ５０３はアンロードされる。これによりステータス通知アプリケーション４０１は、プリンタ装置１０１と通信できなくなる。そのためステータス通知アプリケーション４０１は、スプーラ５０２の停止を検知すると、自動的に自身も終了する。
【００２７】
図６は、本発明の実施形態１に係るＶ４ドライバアーキテクチャのホストＰＣ１００のステータス通知アプリケーション４０１がランゲージモニタを使用せずにプリンタ装置１０１と双方向通信を行う構成を説明する図である。尚、図６において、前述の図５と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００２８】
ステータス通知アプリケーション４０１は、双方向通信モジュール６０１とLocal Procedure Call（以下ＬＰＣ）６０２を用いて通信し、プリンタ装置１０１との双方向通信を行う。
【００２９】
一般的なアプリケーションは、起動するユーザの権限に依存するため、権限が与えられていないユーザから起動されると、低い権限でしか動作することができず、実行できない処理が発生する。一方、双方向通信モジュール６０１は、サービスアプリケーションとして実装される。サービスアプリケーションは、ホストＰＣ１００のブート時にＯＳから自動的に起動され、一時停止や再開も可能である。またＯＳがサービスを起動するためのアカウントは権限の強いアカウントであるため、双方向通信モジュール６０１は、高いアクセス権が要求される処理も実行可能となる。
【００３０】
図５のＶ３ドライバアーキテクチャでは、ランゲージモニタ５０３がサービスアプリケーションであるスプーラ５０２にロードされていたため、サービスアプリケーションの強いアクセス権をそのまま引き継いでいた。これに対して図６では、双方向通信モジュール６０１がサービスアプリケーションとして実装されることで、ランゲージモニタ５０３で可能であった高いアクセス権が要求される処理も同等に行うことができる。
【００３１】
双方向通信モジュール６０１が何らかの問題やユーザの操作により停止した場合、ステータス通知アプリケーション４０１は、双方向通信モジュール６０１が停止した旨を表示部２１０に表示する。これによりユーザは、双方向通信モジュール６０１が停止していることを知ることができる。双方向通信モジュール６０１は、ステータス通知アプリケーション４０１をインストールする際に同時にインストールされてもよいし、それぞれ独立にインストールされる構成でもよい。
【００３２】
図７は、実施形態１に係るホストＰＣ１００のステータス通知アプリケーション４０１が双方向通信モジュール６０１を介してプリンタ装置１０１と通信して取得し表示するステータスの一例を示す図である。
【００３３】
ステータス取得中７０１は、双方向通信モジュール６０１に対しステータス取得要求を行い、応答を待つ間に表示するステータスである。双方向通信モジュール停止エラー７０２は、双方向通信モジュール６０１が停止しているときに表示するステータスである。双方向通信モジュール６０１は、ユーザがサービスの開始、停止を設定可能な画面（不図示）よりサービスの停止が指示された場合や、双方向通信モジュール内部で問題が発生した場合などに停止する。ネットワーク通信エラー７０３は、ＬＡＮＩ／Ｆ２０７を介して接続されたプリンタ装置１０１との通信ができない場合に表示するステータスである。例えば、プリンタ装置１０１の電源が切れている場合や、ＬＡＮＩ／Ｆ２０７に問題がある場合などに表示される。ローカル通信エラー７０４は、ＵＳＢＩ／Ｆ２０８を介して接続されたプリンタ装置１０１との通信ができない場合に表示するステータスである。例えば、プリンタ装置１０１の電源が切れている場合や、ＵＳＢＩ／Ｆ２０８に問題がある場合などに表示される。ファームウェア更新中７０５は、プリンタ装置１０１のファームウェアを更新している際に表示するステータスである。ジャム７０６は、プリンタ装置１０１で紙が詰まった場合に表示するステータスである。このとき、例えば図４のステータス通知アプリケーション４０１の補助メッセージ部４０４には、紙が詰まった箇所を示すメッセージが表示される。用紙なし７０７は、プリンタ装置１０１に用紙がない場合に表示するステータスである。このとき、例えば図４のステータス通知アプリケーション４０１の補助メッセージ部４０４には、必要な用紙サイズの情報を表示する。クリーニング中７０８は、プリンタ装置１０１がクリーニング処理を実行中に表示するステータスである。印刷中７０９は、プリンタ装置１０１が印刷処理の実行中に表示するステータスである。スリープ７１０は、プリンタ装置１０１がスリープ状態にあるときに表示するステータスである。スタンバイ７１１は、プリンタ装置１０１が印刷可能な状態（スタンバイ）のときに表示するステータスである。
【００３４】
図８は、実施形態１に係るホストＰＣ１００のステータス通知アプリケーション４０１が双方向通信モジュール停止エラー７０２のステータスを表示部２１０に表示している例を示す図である。
【００３５】
メインメッセージ部４０２は、プリンタ装置１０１と通信できない旨を、補助メッセージ部４０４は、双方向通信モジュール６０１が停止していること、及び再開させるための手順が記載されているガイドを参照する旨を表示している。ステータス画面部４０３は、プリンタ装置１０１を示す画像に、エラーが発生していることを示すマークを付与して表示している。
【００３６】
図９は、実施形態１に係るホストＰＣ１００のステータス通知アプリケーション４０１がジャム７０６のステータスを表示部２１０に表示している例を示す図である。
【００３７】
メインメッセージ部４０２は、プリンタ装置１０１内部で用紙が詰まっている旨を表示し、補助メッセージ部４０４は、プリンタ装置１０１の両面ユニット（不図示）に用紙が詰まっている旨を表示している。ステータス画面部４０３は、プリンタ装置１０１を示す画像に、エラーが発生していることを示すマークを付与して表示している。
【００３８】
図１０は、実施形態１に係るホストＰＣ１００のステータス通知アプリケーション４０１が双方向通信モジュール６０１を介してプリンタ装置１０１のステータスを表示するまでの処理を説明するフローチャートである。尚、この処理を実行するプログラムはＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開され、そのプログラムをＣＰＵ２０１が実行することにより、このフローチャートで示す処理が達成される。
【００３９】
まずＳ１００１でＣＰＵ２０１はステータス通信モジュール４０１として機能し、双方向通信モジュール６０１が動作中か否かを判定する。ここで双方向通信モジュール６０１がユーザ操作やモジュール内部の問題により停止中であると判定するとＳ１００２に進み、ＣＰＵ２０１は、双方向通信モジュール停止エラー７０２のステータスを表示して、この処理を終了する。
【００４０】
一方、Ｓ１００１でＣＰＵ２０１は、双方向通信モジュール６０１が動作中であると判定するとＳ１００３に進み、ＣＰＵ２０１はＬＰＣ６０２を用いてプリンタ装置１０１に対してステータスの取得要求を発行する。このステータスの取得要求の発行時には、プリンタの名称を渡す。次にＳ１００４に進みＣＰＵ２０１は、プリンタ装置１０１の電源がオフ、或いは接続インターフェースに問題がある等により、双方向通信モジュール６０１からステータスの取得に失敗したと判定するとＳ１００５に進む。Ｓ１００５でＣＰＵ２０１は、プリンタ装置１０１のステータスの取得に失敗した旨を表示部２１０に表示して、この処理を終了する。一方、Ｓ１００４でＣＰＵ２０１は、プリンタ装置１０１のステータスの取得に成功したときはＳ１００６に進み、ＣＰＵ２０１は、その取得したステータスを表示部２１０に表示して、この処理を終了する。
【００４１】
図１１は、実施形態１に係るホストＰＣ１００のステータス通知アプリケーション４０１からステータスの取得要求を受信した双方向通信モジュール６０１がステータス通知アプリケーション４０１に応答するまでの処理を説明するフローチャートである。尚、この処理を実行するプログラムはＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開され、そのプログラムをＣＰＵ２０１が実行することにより、このフローチャートで示す処理が達成される。
【００４２】
先ずＳ１１０１でＣＰＵ２０１は双方向通信モジュール６０１として機能し、ステータス通知アプリケーション４０１よりステータス取得の要求を受信する。このとき、そのステータスの取得要求と併せて受信したプリンタの名称から、ステータスを取得する対象のプリンタ装置を特定する。次にＳ１１０２に進みＣＰＵ２０１は双方向通信モジュール６０１として機能し、ＬＡＮＩ／Ｆ２０７或いはＵＳＢＩ／Ｆ２０８を介してプリンタ装置１０１にステータス要求コマンドを発行する。次にＳ１１０３に進みＣＰＵ２０１は、このステータス要求コマンド発行した後、所定のタイムアウト時間以内にプリンタ装置１０１より応答があるかどうか判定する。ここで応答がないと判定するとＳ１１０５に進みＣＰＵ２０１は、ＬＰＣ６０２を用いて、ステータス通知アプリケーション４０１に通信エラーを返送して、この処理を終了する。一方、Ｓ１１０３でＣＰＵ２０１は、所定時間以内にプリンタ装置１０１から応答があったと判定するとＳ１１０４に進む。Ｓ１１０４でＣＰＵ２０１は、そのプリンタ装置１０１より取得したステータスを、ＬＰＣ６０２を用いてステータス通知アプリケーション４０１に返送して、この処理を終了する。
【００４３】
以上説明したように実施形態１によれば、ステータス通知アプリケーションは、双方向通信モジュールを介して、接続されているプリンタ装置のステータスを取得することができる。
【００４４】
［実施形態２］
図１２は、本発明の実施形態２に係る情報処理システムの構成を示す概念図である。
【００４５】
前述の実施形態１では、ホストＰＣ１００とプリンタ装置１０１とを含む情報処理システムを例に説明した。図１２では、ホストＰＣ１００がサーバマシンとなり、ネットワーク上でクライアントマシン１０３とサーバクライアント環境を構成している。ここでもホストＰＣ１００とプリンタ装置１０１とは、ＵＳＢやネットワークなど任意のＩ／Ｆ１０２で接続されている。
【００４６】
クライアントマシン１０３は、ホストＰＣ１００に接続されているプリンタ装置１０１を共有プリンタとしてインストールする。併せて、ホストＰＣ１００のステータス通知アプリケーション４０１もインストールする。尚、このクライアントマシン１０３のハードウェア構成は、図２を参照して説明した前述のホストＰＣ１００の構成と同じであるため、その説明を省略する。
【００４７】
図１３は、実施形態２に係るクライアントマシン１０３のステータス通知アプリケーション１３０１がホストＰＣ１００上の双方向通信モジュール６０１と通信してプリンタ装置１０１のステータスを表示する構成を説明する図である。尚、図１３において、前述の実施形態１に係る図６と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００４８】
クライアントマシン１０３では、ドライバ（不図示）及びステータス通知アプリケーション１３０１が動作している。クライアントマシン１０３上のステータス通知アプリケーション１３０１は、ホストＰＣ１００上で動作する双方向通信モジュール６０１とネットワーク経由でRemote Procedure Call（以下、ＲＰＣ）１３０２で通信を行う。そしてクライアントマシン１０３は、プリンタ装置１０１から取得したステータスを表示する。
【００４９】
図１４は、実施形態２に係るクライアントマシン１０３のステータス通知アプリケーション１３０１が双方向通信モジュール６０１を介してプリンタ装置１０１のステータスを表示するまでの処理を説明するフローチャートである。尚、この処理を実行するプログラムはクライアントマシン１０３のＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開され、そのプログラムをクライアントマシン１０３のＣＰＵ２０１が実行することにより、このフローチャートで示す処理が達成される。
【００５０】
先ずＳ１４０１でクライアントマシン１０３のＣＰＵ２０１（以下、ＣＰＵ２０１）はステータス通知アプリケーション１３０１として機能し、ステータスを表示する対象のプリンタ装置が共有プリンタか否かを判定する。実施形態２では、プリンタ装置１０１は共有プリンタであるためＳ１４０３に進み、ＲＰＣ１３０２を用いて双方向通信モジュール６０１と通信してＳ１４０４に進む。一方、Ｓ１４０１で共有プリンタでないと判定したときはＳ１４０２に進み、ＬＰＣを用いて双方向通信モジュール６０１と通信してＳ１４０４に進む。
【００５１】
Ｓ１４０４でＣＰＵ２０１はステータス通知アプリケーション１３０１として機能し、双方向通信モジュール６０１が動作中か否かを判定する。双方向通信モジュール６０１がユーザの操作やモジュール内部の問題により停止中のために動作中でないと判定するとＳ１４０５に進み、双方向通信モジュール停止エラー７０２を表示部２１０に表示して、この処理を終了する。
【００５２】
Ｓ１４０４でＣＰＵ２０１は、双方向通信モジュール６０１が動作中であると判定するとＳ１４０６に進み、ＲＰＣ１３０２を用いて、プリンタ装置１０１に対してステータスの取得要求を発行する。このステータスの取得要求時に、プリンタの名称を渡す。そしてＳ１４０７に進み、プリンタ装置１０１の電源がオフ、或いは接続インターフェースに問題がある等により、双方向通信モジュール６０１からの応答がステータスの取得に失敗するとＳ１４０８に進む。Ｓ１４０８でＣＰＵ２０１は、プリンタ装置１０１のステータスの取得に失敗した旨を表示部２１０に表示して、この処理を終了する。一方、Ｓ１４０７でステータスの取得に成功したと判定するとＳ１４０９に進み、取得したプリンタ装置１０１のステータスを表示部２１０に表示して、この処理を終了する。
【００５３】
図１５は、実施形態２に係るクライアントマシン１０３のステータス通知アプリケーションからプリンタ装置のステータスの取得要求を受信した双方向通信モジュールがステータス通知アプリケーションに応答するまでの処理を説明するフローチャートである。尚、この処理を実行するプログラムはクライアントマシン１０３のＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開され、そのプログラムをクライアントマシン１０３のＣＰＵ２０１が実行することにより、このフローチャートで示す処理が達成される。
【００５４】
先ずＳ１５０１でクライアントマシン１０３のＣＰＵ２０１（以下、ＣＰＵ２０１）は、ステータス通知アプリケーション１３０１より、プリンタ装置のステータスの取得要求を受信する。つぎにＳ１５０２に進みＣＰＵ２０１は、ステータスの取得要求とともに受信したプリンタの名称から、そのステータスを取得する対象のプリンタ装置を特定する。次にＳ１５０３に進みＣＰＵ２０１は、プリンタの名称の形式から、そのステータスの取得要求元が共有クライアントか否かを判定する。実施形態２では、そのステータス取得要求の発行元であるステータス通知アプリケーション１３０１は共有クライアントであるクライアントマシン１０３で動作している。このためＳ１５０５に進み、ステータス通知アプリケーション１３０１との通信はＲＰＣ１３０２を用いて、その取得要求の発行元と通信してＳ１５０６に進む。一方、共有プリンタでないと判定したときはＳ１５０４に進み、ＬＰＣを用いて、その取得要求の発行元と通信してＳ１５０６に進む。
【００５５】
こうしてＳ１５０４或いはＳ１５０５を実行するとＳ１５０６に進みＣＰＵ２０１は、双方向通信モジュール６０１として機能し、ＬＡＮＩ／Ｆ２０７又はＵＳＢＩ／Ｆ２０８を介してプリンタ装置１０１にステータス要求コマンドを発行する。そしてＳ１５０７に進みＣＰＵ２０１は、所定のタイムアウト時間以内にプリンタ装置１０１より応答があるかどうか判定し、応答がなければＳ１５０８に進む。Ｓ１５０８でＣＰＵ２０１は、ＲＰＣ１３０２を用いてステータス通知アプリケーション１３０１に通信エラーを返送して、この処理を終了する。一方、Ｓ１５０７でＣＰＵ２０１は、所定時間以内にプリンタ装置１０１から応答があったと判定するとＳ１５０９に進む。Ｓ１５０９でＣＰＵ２０１は、プリンタ装置１０１より取得したステータスをＲＰＣ１３０２を用いてステータス通知アプリケーション１３０１に返送して、この処理を終了する。
【００５６】
以上説明したように実施形態２によれば、ホストＰＣと接続されているクライアントマシンは、そのホストＰＣに接続されているプリンタ装置を共有プリンタとして、そのプリンタ装置のステータスを取得して表示できる。
【００５７】
［実施形態３］
近年、無停止稼働が求められるミッションクリティカルなシステムにおいて、サーバ・クラスタの利用が増えてきている。サーバ・クラスタは、複数のサーバシステムを連携し、クライアントへは共通のインターフェース（仮想サーバ）を提供することで、あたかも一台のサーバであるかのように見せている。このようなサーバ・クラスタを採用することにより、一つのサーバで障害が発生しても、別のサーバで業務を継続できるため、高い稼働性を提供できる。クラスタ上のサーバは、ファイルサーバ、データベースサーバ、プリントサーバなど各種の役割で機能することが可能である。
【００５８】
図１６は、本発明の実施形態３に係るクラスタ化されたプリントサーバを実現するサーバ・クラスタの構成図である。
【００５９】
ノード１６０１，１６０２は、クラスタを構成する物理サーバである。ノード１６０１，１６０２は、それぞれ稼働系か待機系かに分けられ、稼働中の１台に障害が発生した場合、待機系のサーバに処理を引き継ぐ（フェールオーバーする）。ノード１６０１，１６０２はそれぞれプリンタ１６０６，１６０７をインストールし、またプリンタ１６０６，１６０７に対応するステータス通知アプリケーション４０１をインストールしている。尚、クラスタ化できるプリンタはネットワークプリンタのみである。
【００６０】
クライアントマシン１６０８，１６０９には、ノード１６０１，１６０２により構成される仮想サーバ１６０３があたかも１台のサーバのように見えている。こうして仮想サーバ１６０３に、ノード１６０１，１６０２にそれぞれインストールされたプリンタ１６０６，１６０７を登録する。これにより仮想サーバ１６０３に仮想プリンタ１６０４，１６０５が追加され、クライアントマシン１６０８，１６０９は、共有プリンタとして仮想プリンタ１６０４，１６０５をインストール可能となる。併せてクライアントマシン１６０８，１６０９は、仮想プリンタ１６０４，１６０５に対応するステータス通知アプリケーション４０１をインストールする。
【００６１】
いまクライアントマシン１６０８（１６０９）から仮想プリンタ１６０４或いは１６０５に対してジョブを投入すると、ＯＳの機能により、そのジョブは稼働中のノード１６０１或いは１６０２に送られる。そして、インストールされたプリンタ１６０６或いは１６０７に送信される。
【００６２】
クライアントマシン１６０８（１６０９）上で動作するステータス通知アプリケーション４０１は、稼働中のノード１６０１或いは１６０２上で動作する双方向通信モジュール６０１と通信してプリンタのステータスを表示する。通常であればプリンタの名称が分かれば、双方向通信モジュール６０１は、自身が動作するマシン内にインストールされたプリンタから、ステータスを要求されているプリンタを特定できる。
【００６３】
これに対して、サーバ・クラスタ環境では、クライアントマシン１６０８，１６０９は仮想サーバ１６０３上の仮想プリンタ１６０４，１６０５の名前しか分からない。ノード１６０１或いは１６０２の双方向通信モジュール６０１は、仮想プリンタ１６０４，１６０５とプリンタ１６０６，１６０７とを紐づける術がないため、プリンタの名称だけではどのプリンタのステータスを要求されているのか特定できない。そこでクライアントマシン１６０８，１６０９は、仮想プリンタ１６０４，１６０５のプリンタの名称と併せて、ポート名とドライバ名を、ノード１６０１或いは１６０２の双方向通信モジュール６０１に通知してステータスの取得を要求する。ここでポート名は、ＩＰアドレスを含んだ形でＯＳにより自動生成される。これにより双方向通信モジュール６０１は、ポート名からＩＰアドレスを切り出し、プリンタのＩＰアドレスを特定する。また双方向通信モジュール６０１は、自身が動作するノード１６０１或いは１６０２に、特定されたＩＰアドレスを持ち、通知されたドライバ名と合致するプリンタがインストールされていればそのプリンタのステータスを返す。そして見つからない場合はネットワーク通信エラー７０３を返す。
【００６４】
図１７は、実施形態３に係るクライアントマシン１６０８（１６０９）上で動作するステータス通知アプリケーションが、ノード上で動作する双方向通信モジュールを介してプリンタのステータスを取得して表示するまでの処理を説明するフローチャートである。本実施形態３では、ノード１６０１が稼働中とする。またステータスを要求されているプリンタは、仮想プリンタ１６０４とし、仮想プリンタ１６０４の実体はプリンタ１６０６であるとする。尚、この処理を実行するプログラムはクライアントマシン１６０８のＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開されそのプログラムをクライアントマシン１６０８のＣＰＵ２０１が実行することによりこのフローチャートで示す処理が達成される。
【００６５】
先ずＳ１７０１でクライアントマシン１６０８のＣＰＵ２０１（以下、ＣＰＵ２０１）はステータス通知アプリケーション１３０１として機能し、ステータスを表示するプリンタが共有プリンタか否かを判定する。実施形態３では、仮想プリンタ１６０４は共有プリンタであるためＳ１７０２に進みＣＰＵ２０１は、双方向通信モジュール６０１との通信はＲＰＣ１３０２を用いる。次にＳ１７０４に進みＣＰＵ２０１は、ステータスの取得要求時に渡すプリンタの名称にポート名とドライバ名を付与してＳ１７０５に進む。一方、Ｓ１７０１で共有プリンタでないと判定するとＳ１７０３に進み、ＬＰＣを用いるようにしてＳ１７０５に進む。
【００６６】
Ｓ１７０５でＣＰＵ２０１はステータス通知アプリケーション１３０１として機能し、双方向通信モジュール６０１が動作中か否かを判定する。ここで、双方向通信モジュール６０１が、ユーザ操作やモジュール内部の問題により停止中のために動作中でないと判定するとＳ１７０６に進み、双方向通信モジュール停止エラー７０２を表示して、この処理を終了する。
【００６７】
一方、Ｓ１７０５で双方向通信モジュール６０１が動作中であると判定するとＳ１７０７に進みＣＰＵ２０１は、ＲＰＣ１３０２を用いて仮想プリンタ１６０４に対してステータスの取得要求を発行する。このときステータスの取得要求に、ポート名とドライバ名を付与したプリンタの名称を渡す。次にＳ１７０８に進みＣＰＵ２０１は、双方向通信モジュール６０１からの応答がステータスの取得の成功かどうかどうか判定する。ここで、例えば、プリンタ１６０６の電源がオフや、接続インターフェースの問題等により、プリンタ１６０６からのステータスの取得に失敗したときはＳ１７１０に進む。Ｓ１７１０でＣＰＵ２０１は、ステータスの取得に失敗した旨を表示部２１０に表示して、この処理を終了する。一方、Ｓ１７０８でステータスの取得に成功したときはＳ１７０９に進みＣＰＵ２０１は、その取得したプリンタ１６０６のステータスを表示部２１０に表示して、この処理を終了する。
【００６８】
図１８は、実施形態３に係るノード１６０１上で動作する双方向通信モジュール６０１がクライアントマシンから仮想プリンタ１６０４に紐づくプリンタ１６０６のステータスの取得要求を受け取った際の処理を説明するフローチャートである。尚、この処理を実行するプログラムはノード１６０１のＨＤＤ２０５に格納されており、実行時ＲＡＭ２０２に展開され、そのプログラムをノード１６０１のＣＰＵ２０１が実行することにより、このフローチャートで示す処理が達成される。
【００６９】
先ずＳ１８０１でノード１６０１のＣＰＵ２０１（以下、ＣＰＵ２０１）は双方向通信モジュール６０１として機能し、プリンタのステータスの取得要求を受信する。次にＳ１８０２に進みＣＰＵ２０１は、そのステータスの取得要求と併せて受信したプリンタの名称にポート名、ドライバ名が付与されているかどうか判定する。ここでポート名、ドライバ名が付与されていればＳＳ１８０３に進み、要求元のステータス通知アプリケーション１３０１とＲＰＣ１３０２で通信してＳ１８０４に進む。一方、Ｓ１８０２でプリンタの名称にポート名、ドライバ名が付与されていないと判定すると、図１５のＳ１５０２に進む。この場合は前述した図１５のフローチャートと同様となるため、その説明を割愛する。
【００７０】
Ｓ１８０４でＣＰＵ２０１は、取得したポート名からＩＰアドレスを切り出してプリンタを特定する。次にＳ１８０５に進みＣＰＵ２０１は双方向通信モジュール６０１として機能し、自身がインストールされているノード１６０１にインストールされているプリンタの情報を列挙する。そしてＳ１８０６に進みＣＰＵ２０１は、その列挙されたプリンタの情報の一覧から先頭のプリンタの情報を取り出す。次にＳ１８０７で、その一覧から全てのプリンタの情報が取り出し済みとなったかどうか判定し、そうであればＳ１８１５に進み、ネットワーク通信エラー７０３を応答ステータスとして返送して、この処理を終了する。
【００７１】
一方、全てのプリンタの情報が取り出し済みでないときはＳ１８０８に進みＣＰＵ２０１は、取り出したプリンタのドライバ名とプリンタの名称に付与されたドライバ名とを比較する。そしてＳ１８０９に進みＣＰＵ２０１は、それらが一致するかどうか判定し、一致しない場合Ｓ１８０６に進み、プリンタ情報の一覧から次のプリンタの情報を取り出してＳ１８０７に進む。
【００７２】
一方、Ｓ１８０９でドライバ名が一致したと判定するとＳ１８１０に進み、ＣＰＵ２０１は、そのプリンタのＩＰアドレスと、ポート名から特定したＩＰアドレスとを比較する。そしてＳ１８１１に進みそれらが一致するかどうか判定し、一致しないと判定するとＳ１８０６に進み、プリンタ一覧から次のプリンタ情報を取り出してＳ１８０７に進む。Ｓ１８１１でＩＰアドレスが一致したと判定するとＳ１８１２に進み、その一致したプリンタ１６０６に対して、ステータスの取得要求コマンドを発行する。そしてＳ１８１３に進み、ステータスの取得要求を発行してから所定のタイムアウト時間以内にプリンタ１６０６より応答が有ったかどうか判定する。ここで所定時間内に応答がないと判定するとＳ１８１５に進み、ステータス通知アプリケーション４０１にＲＰＣ１３０２を用いてネットワーク通信エラー７０３を返送して、この処理を終了する。一方、Ｓ１８１３で所定時間以内にプリンタ１６０６から応答があったと判定するとＳ１８１４に進む。Ｓ１８１４でＣＰＵ２０１は、プリンタ１６０６より取得したステータスを、ＲＰＣ１３０２を用いてステータス通知アプリケーション４０１に返送して、この処理を終了する。
【００７３】
以上説明したように実施形態３によれば、サーバ・クラスタを採用したシステムであっても、クライアントマシンから仮想プリンタに紐づけられたプリンタのステータスを取得することができる。
【００７４】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７５】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００７６】
１００…ホストＰＣ、１０１…プリンタ、４０１…ステータス通知アプリケーション、６０１…双方向通信モジュール
【図１】
0006529388.tif 000002
【図２】
0006529388.tif 000003
【図３】
0006529388.tif 000004
【図４】
0006529388.tif 000005
【図５】
0006529388.tif 000006
【図６】
0006529388.tif 000007
【図７】
0006529388.tif 000008
【図８】
0006529388.tif 000009
【図９】
0006529388.tif 000010
【図１０】
0006529388.tif 000011
【図１１】
0006529388.tif 000012
【図１２】
0006529388.tif 000013
【図１３】
0006529388.tif 000014
【図１４】
0006529388.tif 000015
【図１５】
0006529388.tif 000016
【図１６】
0006529388.tif 000017
【図１７】
0006529388.tif 000018
【図１８】
0006529388.tif 000019