(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置において、
前記ホスト装置および他の印刷装置との間でセッションを成立させるセッション成立手段と、
前記セッション成立手段により当該印刷装置とセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、
前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、
を備え、
前記状態取得手段は、
上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰ（Simple Network Management Protocol）プロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、
前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、
前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ（Management Information Base）情報を取得する取得手段と、
前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記状態取得手段は、下位の前記印刷装置が設定されている場合、上位の前記印刷装置または前記ホスト装置より受信した前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードを下位の前記印刷装置にも送信する、
ことを特徴でする請求項１記載の印刷装置。
【請求項３】
前記状態取得手段は、下位の前記印刷装置から前記ＳＮＭＰプロトコル以外のプロトコルの応答データが送信されてきた場合、前記応答データに当該装置の応答データをマージして上位の前記印刷装置または前記ホスト装置へ応答データとして送信する、
ことを特徴とする請求項１または２記載の印刷装置。
【請求項４】
前記状態取得手段は、前記ＳＮＭＰプロトコル以外のプロトコルの制御データ中に前記状態取得コードを含むと判断した場合に、前記状態取得コードに付加された装置特定情報によって当該装置が特定される場合にのみ、状態を取得する、
ことを特徴とする請求項１ないし３のいずれか一記載の印刷装置。
【請求項５】
前記装置特定情報として、装置のアドレスを使用する、
ことを特徴とする請求項４記載の印刷装置。
【請求項６】
ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置を少なくとも２台以上ネットワーク接続する印刷システムにおいて、
前記ホスト装置と当該ホスト装置にネットワーク接続された全ての前記印刷装置との間でセッションを成立させるセッション成立手段と、
前記セッション成立手段によりセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、
一の前記印刷装置で前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、
を備え、
前記状態取得手段は、
上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰプロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、
前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、
前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ情報を取得する取得手段と、
前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、
を備えることを特徴とする印刷システム。
【請求項７】
前記状態取得手段は、下位の前記印刷装置が設定されている場合、上位の前記印刷装置または前記ホスト装置より受信した前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードを下位の前記印刷装置にも送信する、
ことを特徴でする請求項６記載の印刷システム。
【請求項８】
前記状態取得手段は、下位の前記印刷装置から前記ＳＮＭＰプロトコル以外のプロトコルの応答データが送信されてきた場合、前記応答データに当該装置の応答データをマージして上位の前記印刷装置または前記ホスト装置へ応答データとして送信する、
ことを特徴とする請求項６または７記載の印刷システム。
【請求項９】
前記状態取得手段は、前記ＳＮＭＰプロトコル以外のプロトコルの制御データ中に前記状態取得コードを含むと判断した場合に、前記状態取得コードに付加された装置特定情報によって当該装置が特定される場合にのみ、状態を取得する、
ことを特徴とする請求項６ないし８のいずれか一記載の印刷システム。
【請求項１０】
前記装置特定情報として、装置のアドレスを使用する、
ことを特徴とする請求項９記載の印刷システム。
【請求項１１】
ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置を制御するコンピュータを、
前記ホスト装置および他の印刷装置との間でセッションを成立させるセッション成立手段と、
前記セッション成立手段により当該印刷装置とセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、
前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、
として実行させ、
前記状態取得手段は、
上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰプロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、
前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、
前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ情報を取得する取得手段と、
前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、印刷システムおよびプログラムに関する。
【背景技術】
【０００２】
近年においては、インターネット網を経由して印刷を行うインターネットプリントシステムが開発されている（例えば、特許文献１参照）。
【０００３】
また、近年においては、図２５に示すように、複数の企業や事業所のイントラネット２００，３００を、インターネット網４００を介して相互接続したエクストラネットも利用されつつある。図２５に示すようなエクストラネットによれば、一方のイントラネット２００上のサーバなどのホストコンピュータから他方のイントラネット３００上のプリンタに対して印刷処理を実行することができる。
【０００４】
【特許文献１】特開２００３−２７１３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されているようなインターネットプリントシステムや図２５に示すようなエクストラネットにおいては、印刷の途中でプリンタにオペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が生じて印刷が停止した場合であっても、ホストコンピュータ側ではプリンタ側の状況を把握することができず、印刷停止状態のまま放置されてしまう事態が生じるという問題がある。
【０００６】
また、プリントシステムにおいては、システムを構成する機器の状態を取得することも望まれている。
【０００７】
本発明は、上記に鑑みてなされたものであって、印刷の信頼性を上げることができる印刷装置、印刷システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明の印刷装置は、ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置において、前記ホスト装置および他の印刷装置との間でセッションを成立させるセッション成立手段と、前記セッション成立手段により当該印刷装置とセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、を備え、前記状態取得手段は、上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰ（Simple Network Management Protocol）プロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ（Management Information Base）情報を取得する取得手段と、前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、を備えることを特徴とする。
【００１０】
また、請求項２にかかる発明は、請求項１記載の印刷装置において、前記状態取得手段は、下位の前記印刷装置が設定されている場合、上位の前記印刷装置または前記ホスト装置より受信した前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードを下位の前記印刷装置にも送信する、ことを特徴とする。
【００１１】
また、請求項３にかかる発明は、請求項１または２記載の印刷装置において、前記状態取得手段は、下位の前記印刷装置から前記ＳＮＭＰプロトコル以外のプロトコルの応答データが送信されてきた場合、前記応答データに当該装置の応答データをマージして上位の前記印刷装置または前記ホスト装置へ応答データとして送信する、ことを特徴とする。
【００１２】
また、請求項４にかかる発明は、請求項１ないし３のいずれか一記載の印刷装置において、前記状態取得手段は、前記ＳＮＭＰプロトコル以外のプロトコルの制御データ中に前記状態取得コードを含むと判断した場合に、前記状態取得コードに付加された装置特定情報によって当該装置が特定される場合にのみ、状態を取得する、ことを特徴とする。
【００１３】
また、請求項５にかかる発明は、請求項４記載の印刷装置において、前記装置特定情報として、装置のアドレスを使用する、ことを特徴とする。
【００１４】
また、請求項６にかかる発明の印刷システムは、ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置を少なくとも２台以上ネットワーク接続する印刷システムにおいて、前記ホスト装置と当該ホスト装置にネットワーク接続された全ての前記印刷装置との間でセッションを成立させるセッション成立手段と、前記セッション成立手段によりセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、一の前記印刷装置で前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、を備え、前記状態取得手段は、上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰプロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ情報を取得する取得手段と、前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、を備えることを特徴とする。
【００１６】
また、請求項７にかかる発明は、請求項６記載の印刷システムにおいて、前記状態取得手段は、下位の前記印刷装置が設定されている場合、上位の前記印刷装置または前記ホスト装置より受信した前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードを下位の前記印刷装置にも送信する、ことを特徴とする。
【００１７】
また、請求項８にかかる発明は、請求項６または７記載の印刷システムにおいて、前記状態取得手段は、下位の前記印刷装置から前記ＳＮＭＰプロトコル以外のプロトコルの応答データが送信されてきた場合、前記応答データに当該装置の応答データをマージして上位の前記印刷装置または前記ホスト装置へ応答データとして送信する、ことを特徴とする。
【００１８】
また、請求項９にかかる発明は、請求項６ないし８のいずれか一記載の印刷システムにおいて、前記状態取得手段は、前記ＳＮＭＰプロトコル以外のプロトコルの制御データ中に前記状態取得コードを含むと判断した場合に、前記状態取得コードに付加された装置特定情報によって当該装置が特定される場合にのみ、状態を取得する、ことを特徴とする。
【００１９】
また、請求項１０にかかる発明は、請求項９記載の印刷システムにおいて、前記装置特定情報として、装置のアドレスを使用する、ことを特徴とする。
【００２０】
また、請求項１１にかかる発明のプログラムは、ホスト装置から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行する印刷装置を制御するコンピュータを、前記ホスト装置および他の印刷装置との間でセッションを成立させるセッション成立手段と、前記セッション成立手段により当該印刷装置とセッションが成立している前記各印刷装置の状態を取得する状態取得手段と、前記印刷ジョブにかかる印刷処理を実行した場合、当該印刷装置とセッションが成立している他の前記印刷装置で保持する前記印刷ジョブの同期を保つジョブ同期手段と、として実行させ、前記状態取得手段は、上位の前記印刷装置または前記ホスト装置からの前記印刷ジョブにかかる制御データであって、一般的な状態取得に使用されるＳＮＭＰプロトコル以外のプロトコルの制御データ中に状態取得コードを含むか否かを判断する判断手段と、前記状態取得コードを含むと判断した場合、前記ＳＮＭＰプロトコル以外のプロトコルの状態取得コードから前記ＳＮＭＰプロトコルの状態取得コードへのデータ変換を行う変換手段と、前記ＳＮＭＰプロトコルの状態取得コードに従って、装置状態を示すＭＩＢ情報を取得する取得手段と、前記ＭＩＢ情報を該当する前記ＳＮＭＰプロトコル以外のプロトコルの応答コードに逆変換する逆変換手段と、を備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、印刷中のプリンタにオペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が発生した場合であっても、代替のプリンタが継続して印刷を引き継ぐことで、障害が発生しても印刷が止まることがなくなるので、確実に印刷することができるようになり、印刷の信頼性を上げることができる、という効果を奏する。また、セッションが成立している各印刷装置の状態を取得することができるので、印刷起動を行なう前に印刷装置の状態を確認することが可能となるため、状態によっては、予測される不具合の対策、例えば、用紙補給やトナー補給などを行なってから印刷起動することが可能となり、より信頼性の高い印刷を実施することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明にかかる印刷装置、印刷システムおよびプログラムの最良な実施の形態を詳細に説明する。
【００２３】
［第１の実施の形態］
本発明の第１の実施の形態を図１ないし図２２に基づいて説明する。本実施の形態は印刷装置としてレーザプリンタやＭＦＰ（Multi Function Peripheral）を適用した例である。
【００２４】
［１．システムの全体構成］
図１は、本発明の第１の実施の形態にかかるネットプリントシステム１００のシステム構築例を示す模式図である。図１に示すように、本実施の形態のネットプリントシステム１００は、複数の企業や事業所のイントラネットＡ，Ｂ、すなわちインターネット技術をベースにした社内ネットワークであるイントラネットＡ，Ｂを、インターネット網１５０を介して相互接続したエクストラネットを想定する。
【００２５】
図１に示すように、例えばコンビニエンスストア本社内のイントラネットＡは、各種のサーバコンピュータ（以下、サーバという）１にＬＡＮ（Local Area Network）等のネットワーク２を介してコンピュータやプリンタなどのクライアント３が複数台接続されたサーバクライアントシステムを想定する。このようなイントラネットＡにおいては、インターネット網１５０と、ＷＷＷ（World Wide Web）サーバなどの公開サーバ４を除く社内ネットワーク５との境界にファイアウォール６が設けられている。このファイアウォール６は、社内ネットワーク５とインターネット網１５０との間で出入りするパケットを監視し、決められたルールに従って、その通過を許可したり、阻止（廃棄）したりすることにより、社内ネットワーク５内のセキュリティを確保する。
【００２６】
一方、例えばフランチャイズ店舗内のイントラネットＢも、各種のサーバ１にＬＡＮ等のネットワーク２を介してコンピュータやプリンタなどのクライアント３が複数台接続されたサーバクライアントシステムを想定する。このようなイントラネットＢにおいても、インターネット網１５０と、公開サーバ４を除く社内ネットワーク５との境界にファイアウォール６が設けられている。
【００２７】
なお、イントラネットＡ，Ｂのネットワーク接続としては、インターネット網１５０に限るものではなく、専用の通信回線を用いて各イントラネットＡ，Ｂを接続するようにしても良い。
【００２８】
また、ネットワーク２は有線通信に限るものではなく、無線通信（赤外線や電波等）であっても良い。また、光ファイバを用いたものであっても良い。
【００２９】
図２に示すように、上述したようなネットプリントシステム１００は、例えばコンビニエンスストア本社のイントラネットＡが備えるサーバ１の一つである印刷サーバ１１から、フランチャイズ店舗のイントラネットＢが備えるクライアント３の一つであるプリンタ３１に対して販促資料等の印刷処理をダイレクトに実行することができる。なお、図２に示すように、イントラネットＢにおいては、同機能を有する複数のプリンタ３１を備えている。
【００３０】
［２．印刷サーバの構成］
まず、イントラネットＡが備える印刷サーバ１１（サーバ１）について説明する。図３は、印刷サーバ１１の構成の一例を示すブロック図である。図３に示すように、印刷サーバ１１は、この印刷サーバ１１の動作制御を行うＣＰＵ（Central Processing Unit：中央処理装置）４１を備えている。このＣＰＵ４１には、ＣＰＵ４１が起動時に実行するプログラムや必要なデータ等を記憶するためのＲＯＭ（Read Only Memory）４２と、ＣＰＵ４１のワークエリア等を構成するためのＲＡＭ（Random Access Memory）４３とが内部バス５６を介して接続されている。
【００３１】
さらに、ＣＰＵ４１には、キャラクタジェネレータ４４、時計回路４５、ネットワーク伝送制御部４７、磁気ディスク装置４８、ＣＤ−ＲＯＭ装置４９、表示制御部４２および入力制御部５５が、内部バス５６を介して接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス５６を介して行われる。
【００３２】
キャラクタジェネレータ４４は、図形文字の表示データを発生するためのものである。時計回路４５は、現在日時情報を出力するためのものである。
【００３３】
ネットワークインタフェース回路４６は、この印刷サーバ１１をＬＡＮであるネットワーク２に接続するためのものであり、ネットワーク伝送制御部４７は、ネットワーク２を介して、他のサーバ１やクライアント３との間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。例えば、ネットワークインタフェース回路４６は、ネットワーク２およびインターネット網１５０を介して他のイントラネット（ここでは、イントラネットＢ）が備えるクライアント３の一つであるプリンタ３１を接続し、プリンタ３１へ印刷データ等を送信したり、プリンタ３１より印刷処理状態等を受信したりする等の動作を行う。
【００３４】
磁気ディスク装置４８は、ＯＳ（Operating System）、ＯＳ上で走る種々のアプリケーションプログラム、ワークデータ、ファイルデータ、画情報データなどの種々のデータを記憶するためのものである。本実施の形態においては、アプリケーションプログラムとして、印刷データ送信プログラムなどが記憶されている。ＣＤ−ＲＯＭ装置４９は、交換可能な記録媒体であるＣＤ−ＲＯＭ５０に記憶されているデータ（種々のアプリケーションプログラム、ワークデータ、ファイルデータ、画情報データなどの種々のデータ）を読み込むためのものである。
【００３５】
このような印刷サーバ１１では、ユーザが電源を投入するとＣＰＵ４１がＲＯＭ４２内のローダーというプログラムを起動させ、磁気ディスク装置４８よりＯＳをＲＡＭ４３に読み込み、このＯＳを起動させる。このようなＯＳは、ユーザの操作に応じてアプリケーションプログラムを起動したり、情報を読み込んだり、保存を行ったりする。なお、記録媒体はＣＤ−ＲＯＭ５０に限るものではなく、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、半導体メモリ等のコンピュータで読み取り可能な記録媒体であれば良い。この場合、ＣＤ−ＲＯＭ装置４９を記憶媒体のデータを読み込み可能なものに変更することはいうまでもない。また、アプリケーションプログラムは、所定のＯＳ上で動作するものに限らず、後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００３６】
なお、一般的には、印刷サーバ１１の磁気ディスク装置４８にインストールされるアプリケーションプログラムは、ＣＤ−ＲＯＭ５０などの記憶媒体に記録され、この記憶媒体に記録されたアプリケーションプログラムが磁気ディスク装置４８にインストールされる。このため、ＣＤ−ＲＯＭ５０等の可搬性を有する記憶媒体も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えばネットワークインタフェース回路４６を介して外部から取り込まれ、磁気ディスク装置４８にインストールされても良い。
【００３７】
ＣＲＴなどの表示装置５１は、この印刷サーバ１１を操作するための画面を表示するためのものであり、表示制御部５２は、表示装置５１の表示内容を制御するためのものである。
【００３８】
キーボード装置５３は、この印刷サーバ１１に対する各種の指示を種々のキー操作により行わせるためのものであり、画面指示装置５４は、表示装置５１の任意の点を指示する等の操作作業を行うためのもの（例えば、マウス等のポインティングデバイス）であり、入力制御部５５は、キーボード装置５３および画面指示装置５４の入力情報を取り込む等するためのものである。
【００３９】
また、印刷文書情報は、この印刷サーバ１１で適宜なアプリケーションプログラムが起動され、当該アプリケーションプログラムにより作成されて磁気ディスク装置５８に保存されたり、ＣＤ−ＲＯＭ５０に保存されているものがＣＤ−ＲＯＭ装置４９により読み出されて、印刷サーバ１１に取り込まれたり、ネットワーク２およびインターネット網１５０を介して電子メール等で受信した情報から再構築されて印刷サーバ１１に取り込まれたりすることで、印刷サーバ１１に保存される。
【００４０】
［３．プリンタの構成］
次に、イントラネットＢが備える印刷装置であるプリンタ３１（クライアント３）について説明する。図４は、プリンタ３１の構成の一例を示すブロック図である。図４に示すように、プリンタ３１は、このプリンタ３１の各部の制御処理および画像形成処理などの各種制御処理を行うプリンタコントローラ（マザーボード）６１を備えている。このプリンタコントローラ６１には、オペレーションパネル６２、プリンタエンジン６３および磁気ディスク装置６４が接続されている。
【００４１】
プリンタコントローラ６１は、その時設定されている制御モードおよび各イントラネットＡ，Ｂの各種サーバ１（例えば、イントラネットＡの印刷サーバ１１）からの制御コードに従って各イントラネットＡ，Ｂの各種サーバ１（例えば、イントラネットＡの印刷サーバ１１）からの印刷データを描画データに変換してプリンタエンジン６３へ出力する制御機構の総称で次のようなモジュールで構成される。プリンタコントローラ６１には、制御の主体となるＣＰＵ８１、ＲＡＭ８２、このプリンタ３１に固有な各種の情報を記憶するためのＲＯＭ８３、電源のＯＮ／ＯＦＦに関わらずデータを保持できる不揮発性メモリであるＮＶ−ＲＡＭ８４、印刷の時に使用される数種の書体を保持しているメモリであるＦｏｎｔ ＲＯＭ８５、エンジンＩ／Ｆ８６、オペレーションパネル６２を接続するパネルＩ／Ｆ８７、磁気ディスク装置６４を接続するディスクＩ／Ｆ８８、ネットワークＩ／Ｆ８９などで構成されている。
【００４２】
ＲＡＭ８２は、ＣＰＵ８１のワーク領域、各イントラネットＡ，Ｂの各種サーバ１からのデータ受信バッファ、また処理後のイメージ展開領域に使用される。
【００４３】
エンジンＩ／Ｆ８６は、プリンタコントローラ６１とプリンタエンジン６３への制御信号とプリンタエンジン６３からプリンタコントローラ６１へのステータス信号を送受信するＩ／Ｆである。
【００４４】
ネットワークＩ／Ｆ８９は、ネットワーク２を介して各イントラネットＡ，Ｂの各種サーバ１（例えば、印刷サーバ１１）からプリンタ３１への制御信号およびデータとプリンタ３１からのステータス信号を送受信するためのものである。
【００４５】
オペレーションパネル６２は、プリンタ３１のステータス表示およびモード、印刷条件を変更することができるスイッチ部である。
【００４６】
プリンタエンジン６３は、電子写真プロセス方式により画像を形成して記録用紙に記録出力するためのものである。より詳細には、プリンタコントローラ６１からの描画データと制御情報に基づいて、感光体上に静電作像し給紙部より転写紙を給紙して画像を形成する。
【００４７】
磁気ディスク装置６４は、種々の印刷文書情報を格納したり、それ以外の適宜な情報ファイル等を保存したりするためのものである。加えて、磁気ディスク装置６４には、ＯＳ（Operating System）、ＯＳ上で走る種々のアプリケーションプログラムが記憶されている。本実施の形態においては、アプリケーションプログラムとして、印刷処理プログラムなどが記憶されている。
【００４８】
このような構成のプリンタ３１は、サーバ１などと同様に、ユーザが電源を投入すると磁気ディスク装置６４よりＯＳをＲＡＭ８２に読み込み、このＯＳを起動させる。このようにして起動したＯＳは、ユーザの操作に応じてアプリケーションプログラムを起動したり、情報を読み込んだり、保存を行ったりする。また、アプリケーションプログラムは、所定のＯＳ上で動作するものに限らず、後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションプログラムやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００４９】
なお、一般的には、プリンタ３１の磁気ディスク装置６４にインストールされるアプリケーションプログラムは、ＣＤ−ＲＯＭ（図示せず）などの記憶媒体に記録され、この記憶媒体に記録されたアプリケーションプログラムが磁気ディスク装置６４にインストールされる。このため、ＣＤ−ＲＯＭ等の可搬性を有する記憶媒体も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えばネットワークＩ／Ｆ８９を介して外部から取り込まれ、磁気ディスク装置６４にインストールされても良い。
【００５０】
なお、本実施の形態のプリンタ３１は、磁気ディスク装置６４を備えるものとしたが、これに限るものではなく、半導体メモリ等のコンピュータで読み取り可能な記録媒体にアプリケーションプログラムやＯＳなどを格納するようにしても良い。
【００５１】
［４．プリンタ代替処理］
次に、印刷サーバ１１のＣＰＵ４１およびプリンタ３１のＣＰＵ８１が実行する各種の演算処理のうち、本実施の形態のネットプリントシステム１００が発揮する特徴的な処理であるプリンタ代替処理について以下に説明する。
【００５２】
ネットプリントシステム１００においては、インターネット網１５０を介してイントラネットＡのホスト装置である印刷サーバ１１からイントラネットＢのプリンタ３１に印刷データが入力されると、イントラネットＢのプリンタ３１側で、入力された印刷データについての描画データがプリンタコントローラ６１の制御情報に基づいて生成され、生成された描画データがプリンタコントローラ６１からプリンタエンジン６３に渡され、プリンタスタート命令がかかり印刷が開始されることになる。ここで、イントラネットＢのプリンタ３１において、印刷の途中にもかかわらず、印刷処理が実行されているプリンタ３１にオペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が発生することがある。そこで、本実施の形態のネットプリントシステム１００においては、印刷処理が実行されているプリンタ３１にオペレータ操作が必要な印刷不可状態が発生した場合には、印刷処理の対象を他のプリンタ３１に切り替えることによって、印刷を継続することを可能にし、イントラネットＢにおいて印刷停止状態にならないようにする、というプリンタ代替処理を実行するようにしたものである。
【００５３】
印刷サーバ１１は、アプリケーションプログラムとして、印刷データ送信プログラムを磁気ディスク装置４８に記憶している。すなわち、印刷サーバ１１は、ＯＳ上で動作する印刷データ送信プログラムが起動すると、この印刷データ送信プログラムに従い、ＣＰＵ４１が各部を制御してプリンタ代替処理の一部となる印刷データ送信処理を実行する。
【００５４】
プリンタ３１は、アプリケーションプログラムとして、印刷処理プログラムを磁気ディスク装置６４に記憶している。すなわち、プリンタ３１は、ＯＳ上で動作する印刷処理プログラムが起動すると、この印刷データ送信プログラムに従い、ＣＰＵ８１が各部を制御してプリンタ代替処理の一部となる印刷処理を実行する。
【００５５】
ここで、図５はプリンタ３１のプリンタ代替処理にかかる機能構成を概略的に示す模式図である。図５に示すように、プリンタ３１は、印刷サーバ１１およびネットワーク接続された他のプリンタ３１との間でセッションを成立させるセッション成立部（セッション成立手段）１０１と、印刷サーバ１１から送信された１つまたは複数の印刷データおよび一連の処理命令で構成される印刷ジョブにかかる印刷処理を実行した場合、当該プリンタ３１とセッションが成立している他のプリンタ３１で保持する印刷ジョブの同期を保つジョブ同期部（ジョブ同期手段）１０２と、セッション成立部１０１によりセッションが成立している各プリンタ３１の状態を取得する状態取得部（状態取得手段）１０３と、を備えている。
【００５６】
次いで、セッション成立部１０１とジョブ同期部１０２とにより実現されるプリンタ代替処理の主要な処理について、シーン毎に具体的に説明する。
【００５７】
図６は、プリンタ代替処理を含むネットプリント処理の処理手順を示すシーケンス図である。なお、図６においては、「メインプリンタ」となるプリンタ３１ａ、「サブプリンタ１」となるプリンタ３１ｂ、「サブプリンタ２」となるプリンタ３１ｃの３台がネットワーク接続されているイントラネットＢを想定している。
【００５８】
なお、「メインプリンタ」、「サブプリンタ１」、「サブプリンタ２」は便宜上設定されたものであって、プリンタ３１ａとプリンタ３１ｂとプリンタ３１ｃとは、同じ実装のプリンタである。上位ホストである印刷サーバ１１から印刷データがネットワークを通じて最初に入力されるプリンタ３１をメインプリンタと呼び、メインプリンタよりも下位に位置するプリンタ３１をサブプリンタと呼ぶ。
【００５９】
また、「メインプリンタ」はホスト装置から一意に決定されるが、「サブプリンタ１」、「サブプリンタ２」については固定的に決められるものであっても良いし、その順序が処理毎に変わるものであっても良い。例えば、「サブプリンタ１」、「サブプリンタ２」のような順序については、プリンタの記憶部（ＲＯＭ８３、ＮＶ−ＲＡＭ８４、磁気ディスク装置６４など）に、次にデータを送るプリンタのＩＰアドレスを記憶しておき、データ転送の際に記憶されたＩＰアドレスを参照することで実現可能である。
【００６０】
まず、ネットプリント処理においては、セッション成立部１０１によって印刷サーバ１１およびネットワーク接続された他のプリンタ３１との間でセッションを成立した後、装置獲得処理が実行される。
【００６１】
（１）メインプリンタは、印刷サーバ１１から「装置獲得」コマンドを受信すると、プリンタの占有処理を行い、サブプリンタ（図６のサブプリンタ１）へ「装置獲得」コマンドを送信する。この時、メインプリンタは排紙抑制を情報に指定する。この情報は、印刷処理を抑制する印刷抑制情報である。
【００６２】
（２）サブプリンタ（図６のサブプリンタ１）は、プリンタの占有処理を行う。また、情報には排紙抑制することが指定されているので、サブプリンタはプリンタの排紙抑制を行う。サブプリンタはさらに下位（データ送信方向下位）のサブプリンタ（図６のサブプリンタ２）がある場合、上位（データ送信方向上位）から受信した「装置獲得」コマンドを送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「装置獲得応答」コマンドを送信する。また、下位プリンタは上位プリンタへ「装置獲得応答」コマンドを送信する。装置獲得応答には、プリンタのＩＰアドレスが含まれており、図７に示すように、上位プリンタは下位プリンタの応答情報（プリンタのＩＰアドレス）を順にマージして送信する。そして、メインプリンタはサブプリンタからの応答を待ち合わせし、印刷サーバ１１へ「装置獲得応答」のコマンドを送信する。
【００６３】
これにより、印刷サーバ１１側では、全てのプリンタの情報がマージされた結果の情報を受け取ることになる。
【００６４】
なお、プリンタから印刷サーバ１１側への情報送信は、インターネット網１５０およびファイアウォール６を介して行うため、ルール付けによりその通過を許可するか、メールに添付するなどにより行うものとする。以下におけるプリンタから印刷サーバ１１側への情報送信についても同様である。
【００６５】
印刷サーバ１１側では、各サブプリンタおよびメインプリンタの情報をマージしたプリンタ情報をログとして管理する。
【００６６】
（３）メインプリンタは、印刷サーバ１１から「ＪＯＢ開始」コマンドを受信すると、ＪＯＢ開始処理を行い、サブプリンタ（図６のサブプリンタ１）へ「ＪＯＢ開始」コマンドを送信する。この時、メインプリンタは取得したＪＯＢ  ＩＤを情報に追加する。
【００６７】
（４）サブプリンタ（図６のサブプリンタ１）は、ＪＯＢ開始処理を行うが、ＪＯＢ  ＩＤの作成は行わず、メインプリンタから通知されたＪＯＢ  ＩＤを使用することで、プリンタ間のジョブ管理の同期をとる。サブプリンタはさらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、上位から受信した「ＪＯＢ開始」コマンドを送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「ＪＯＢ開始応答」コマンドを送信する。また、下位プリンタは上位プリンタへ「ＪＯＢ開始応答」コマンドを送信する。メインプリンタはサブプリンタからの応答を待ち合わせし、印刷サーバ１１へ「ＪＯＢ開始応答」コマンドを送信する。
【００６８】
以上のようにネットプリント処理における装置獲得処理が終了すると、印刷処理が実行される。
【００６９】
ここで、図８はプリンタ３１のプリンタ代替処理におけるジョブ同期処理にかかる機能構成を概略的に示す模式図である。図８に示すように、プリンタ３１は、ジョブ同期処理にかかる機能構成として、排紙通知受信手段３１１と、ＮＶ−ＲＡＭ８４に形成されるジョブ管理テーブル３１２と、コマンド受信手段３１３とを備えている。
【００７０】
排紙通知受信手段３１１は、プリンタエンジン６３から印刷完了通知を受け取る。そして、ジョブ管理テーブル３１２を読み込み、ＪＯＢ  ＩＤ毎に印刷完了ページ数をカウントアップして、ジョブ管理テーブル３１２へ保存する。加えて、排紙通知受信手段３１１は、プリンタエンジン６３から障害通知を受け取った場合には、障害通知にかかるエラーコードをジョブ管理テーブル３１２へ保存する。
【００７１】
コマンド受信手段３１３は、印刷サーバ１１（サーバ１）またはデータ送信方向上位に位置する上位プリンタ３１から送信されるコマンド（データ送信／状態取得）を受信し、受信したコマンドをデータ送信方向下位に位置する下位プリンタ（サブプリンタ）３１へ送信する。また、コマンド受信手段３１３は、下位プリンタ（サブプリンタ）３１から状態取得コマンドに応じた応答情報を受け取ると、ジョブ管理テーブル３１２を読み込み、応答情報に含まれるページ情報（印刷完了ページ数を含んでいる）のマージ処理を行う。また、コマンド受信手段３１３は、下位プリンタ（サブプリンタ）３１から受け取った状態取得コマンドに応じた応答情報中に、エラーコードがある場合または応答情報に障害情報がある場合には、障害情報のマージ処理を行う。そして、コマンド受信手段３１３は、ジョブ管理テーブル３１２内の応答情報を印刷サーバ１１（サーバ１）または上位プリンタ３１へ返す。
【００７２】
このような機能構成の下に、通常時の印刷処理の処理手順について、図９に示すシーケンス図を参照して説明する。
【００７３】
（１１）メインプリンタは、印刷サーバ１１から「データ送信」コマンドを受信すると、サブプリンタ（図６のサブプリンタ１）へ「データ送信」コマンドを送信する。
【００７４】
（１２）サブプリンタ（図６のサブプリンタ１）は、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、サブプリンタは上位から受信した「データ送信」コマンドを下位のサブプリンタに送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「データ送信応答」コマンドを送信する。また、下位プリンタは上位プリンタへ「データ送信応答」コマンドを送信する。下位プリンタはその後、印刷データ処理を行う。メインプリンタは、サブプリンタからの応答を待ち合わせし、印刷サーバ１１へ「データ送信応答」コマンドを送信した後、印刷データ処理を行う。
【００７５】
（１３）メインプリンタは、排紙毎にサブプリンタへ「ページ削除」コマンドを送信する。サブプリンタは「ページ削除」コマンドを受信し、さらに下位のサブプリンタがある場合、上位から受信した「ページ削除」コマンドを送信する。「ページ削除」コマンドを受信したサブプリンタは、印刷完了ページ数の同期を取り、印刷処理済みページの削除を行う。
【００７６】
（１４）メインプリンタは、印刷サーバ１１から「状態取得」コマンドを受信すると、サブプリンタ（図６のサブプリンタ１）へ「状態取得」コマンドを送信する。
【００７７】
（１５）サブプリンタ（図６のサブプリンタ１）は、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、上位のメインプリンタから受信した「状態取得」コマンドを下位のサブプリンタ（図６のサブプリンタ２）に送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「状態取得応答」コマンドを送信する。本実施の形態においては、図１０に示すように、上位のプリンタは下位のプリンタからの応答情報をマージして、更に上位のプリンタ（最上位のプリンタであるメインプリンタは印刷サーバ）に対して送信する。
【００７８】
ここで、状態取得部１０３による状態取得処理について説明する。状態取得部１０３は、図１１に示すように、ネットワーク処理部１１１と、プリンタシステム制御部１１２と、プロトコル処理部１１３と、プロトコル変換部１１４と、ＭＩＢ（Management Information Base）情報を保持するＭＩＢ処理部１１５と、ＳＮＭＰ（Simple Network Management Protocol）によって管理するネットワーク機器で動作するＳＮＭＰエージェントであるｓｎｍｐｄ１１６と、を備えている。
【００７９】
なお、ＭＩＢ処理部１１５が保持するＭＩＢ情報は、ＳＮＭＰで管理されるネットワーク機器が自分の状態を外部に知らせるために公開する情報である。
【００８０】
ネットワーク処理部１１１は、ネットワークを通じて印刷データの送受信の制御を行う。ネットワーク処理部１１１で受信した印刷データは、一旦、プリンタシステム制御部１１２へ渡される。
【００８１】
プリンタシステム制御部１１２は、印刷データが所定のプロトコル（ＳＮＭＰプロトコル以外のプロトコル）の制御データであるか否かを判断する。プリンタシステム制御部１１２は、印刷データが所定のプロトコルの制御データであると判断すると、プロトコル処理部１１３へ印刷データを渡す。
【００８２】
プロトコル処理部１１３は、判断手段として機能するものであって、所定のプロトコルの制御コードの内容に応じた処理を行なう。ここでは、まず、所定のプロトコルの状態取得コードを判断する。所定のプロトコルの状態取得コードを受信したと判断した場合は、プロトコル処理部１１３内のプロトコル変換部１１４へ印刷データを渡す。
【００８３】
プロトコル変換部１１４は、変換手段として機能するものであって、所定のプロトコルの制御コードから一般的な状態取得に使用されるＳＮＭＰプロトコル（状態取得プロトコル）へのデータ変換を行なう。プロトコル変換部１１４は、ＳＮＭＰプロトコル（状態取得プロトコル）に変換されたデータを、ネットワーク処理部１１１内に存在するｓｎｍｐｄ１１６へ渡す。
【００８４】
ｓｎｍｐｄ１１６は、通常の状態取得プロセスを使用して機器の状態取得を行なうことが可能である。通常の状態取得プロセスでは、問い合わせる内容に応じて、取得情報としても機能するプリンタシステム制御部１１２を介してＭＩＢ処理部１１５からＭＩＢ情報を取得し、ｓｎｍｐｄ１１６に取得した情報がセットされる。ｓｎｍｐｄ１１６にセットされた機器状態情報は、プロトコル変換部１１４に戻される。
【００８５】
プロトコル変換部１１４は、逆変換手段としても機能するものであって、ＭＩＢ情報を所定のプロトコルの状態情報に逆変換を実施する。
【００８６】
このようにすることにより、プリンタ３１の状態情報を取得することができる。
【００８７】
また、所定のプロトコルでは、メインプリンタで受信したデータはそのまま下位にあるサブプリンタへも渡して並行して処理を行なう。すなわち、受信したデータは全てネットワーク処理部１１１を通じてサブプリンタへ転送される。こうして次々と下位のサブプリンタへ印刷データは渡されて行き、最下位のサブプリンタでは、応答データを、ネットワーク処理部１１１を通じて逆に上位のプリンタ３１へ向かって送信する。
【００８８】
印刷データを受け取った上位のプリンタ３１では、下位のプリンタ３１より受け取った応答データに、自機器の応答データをマージしてさらに上位のプリンタ３１へ応答情報を送信する。本実施の形態では、その応答データに、プリンタ３１の状態情報も含めてマージして上位のプリンタ３１へ送信する。
【００８９】
次に、状態取得部１０３の動作について図１２のシーケンス図を参照しつつ説明する。
【００９０】
上位ホスト（印刷サーバ１１）から所定のプロトコルでデータが送信されると、最初のプリンタ３１（メインプリンタ）では、状態取得コマンドが含まれているかのチェックを行う。状態取得コマンドが含まれていた場合は、ＳＮＭＰプロコルに変換して、ＳＮＭＰポートへ情報を渡す。そして、ＳＮＭＰポートからＭＩＢ情報を取得したら、それを所定のプロトコルの機器状態情報に変換し、所定のプロトコルの応答データとする。
【００９１】
さらに、下位のプリンタ３１（サブプリンタ）が存在する場合は、前述した印刷データと同様に、状態取得コマンドも下位のプリンタ３１（サブプリンタ）に対して送信する。
【００９２】
状態取得コマンドを受け取った下位のプリンタ３１（サブプリンタ）は、状態取得コマンドが含まれているかのチェックを行う。状態取得コマンドが含まれていた場合は、ＳＮＭＰプロコルに変換して、ＳＮＭＰポートへ情報を渡す。そして、ＳＮＭＰポートからＭＩＢ情報を取得したら、それを所定のプロトコルの機器状態情報に変換し、所定のプロトコルの応答データとする。
【００９３】
以上のような処理は、プリンタ３１の台数分だけ繰り返される。
【００９４】
下位のプリンタ３１（サブプリンタ）が無くなる、つまり最も下位に設定されたプリンタ３１（サブプリンタ）では、一般的な応答データに加えて機器状態情報も応答データの一部として加えて、上位のプリンタに向けて送信する。
【００９５】
下位のプリンタ３１（サブプリンタ）より、応答データを受け取ったプリンタ３１（サブプリンタ）は、自分の応答データの一部として、機器状態情報も加えてマージし、さらに上位のプリンタ３１（メインプリンタまたはサブプリンタ）に対して応答データを送信する。
【００９６】
図１３は、所定のプロトコルの印刷ジョブ全体の概要を示すフローチャートである。図１３に示すように、上位ホスト（印刷サーバ１１）から所定のプロトコルの印刷ジョブが送信開始されると、プリンタ３１側でデータを受信し（ステップＳ１）、そのデータを分析する（ステップＳ２）。
【００９７】
所定のプロトコルの制御コードであった場合は（ステップＳ２のＹｅｓ）、ステップＳ３に進み、所定のプロトコルの制御コードの処理を行う。
【００９８】
図１４は、所定のプロトコルの制御コード処理の流れを示すフローチャートである。図１４に示すように、処理するデータが所定のプロトコルの制御コードであった場合には、まず、状態取得を要求する制御コードであるか否かの判断を行う（ステップＳ１１）。
【００９９】
状態取得を要求する制御コード（状態取得コマンド）であると判断した場合には（ステップＳ１１のＹｅｓ）、状態取得の制御コードをＳＮＭＰのプルトコルに変換を行う（ステップＳ１２）。ＳＮＭＰでは、一般的に定められたデータ形式を持っており、加えてそのパラメータとして、一般的に定められた、または各企業、及び機器で独自に定められたデータ形式のＭＩＢ情報を持つ形となっている。本実施の形態では、所定のプロトコルの制御プログラム内に設けた状態コマンドについて、プロトコル変換部１１４の指示に従って、所定のプロトコルのコマンド形式から、そのＳＮＭＰのプロトコルに変換を行う。
【０１００】
変換を行ったデータは、ｓｎｍｐｄ１１６へ渡される（ステップＳ１３）。一般的には、ネットワークから送られてきたＳＮＭＰプロトコルのデータはネットワーク処理部１１１からｓｎｍｐへ渡されて処理されているが、本実施の形態では、ステップＳ１２で変換されたＳＮＭＰプロトコルのデータをｓｎｍｐｄ１１６へ渡すことで、一般的なＳＮＭＰプロトコルのデータと同様な処理を行なうことが可能となる。
【０１０１】
続くステップＳ１４〜Ｓ１５では、プリンタ３１のＭＩＢ情報、即ち状態を示すデータを取得する。
【０１０２】
次に、取得したＭＩＢ情報を所定のプロトコルで送信可能な形式に再度データ変換を行う（ステップＳ１６）。ステップＳ１６の処理は、所定のプロトコルの制御プログラム内に設けた状態コマンドについて、プロトコル変換部１１４の指示に従って実施する。
【０１０３】
所定のプロトコルで送信可能な形式に変換された状態応答データは、応答情報にセットされる（ステップＳ１７）。
【０１０４】
一方、状態取得を要求する制御コードでないと判断した場合には（ステップＳ１１のＮｏ）、一般的な所定のプロトコル制御コードの処理を実施する（ステップＳ１８）。
【０１０５】
そして、下位にプリンタ３１（サブプリンタ）が存在する場合には（ステップＳ１９のＹｅｓ）、ステップＳ２０に進む。
【０１０６】
ステップＳ２０の処理について、図１５を参照しつつ説明する。図１５に示すように、自ら受け取ったデータをそのまま下位のプリンタ３１（サブプリンタ）に対して転送を行う（ステップＳ３１）。応答を伴う制御コードの場合は、ステップＳ３２〜Ｓ３３の処理を繰り返して下位のプリンタ３１（サブプリンタ）からの応答に待機する。
【０１０７】
下位のプリンタ３１（サブプリンタ）からの応答を受け取ったと判断した場合には（ステップＳ３２のＹｅｓ）、下位のプリンタ３１（サブプリンタ）からの応答データに自らの応答データをマージして（ステップＳ３３）、ステップＳ２０の処理を終了する。ここでは、機器状態情報も含めてマージを行う。
【０１０８】
図１４に戻り、ステップＳ２０の処理の終了後、または、下位にプリンタ３１（サブプリンタ）が存在しない場合には（ステップＳ１９のＮｏ）、マージした応答データを上位の機器へ送信して（ステップＳ２１）、ステップＳ３の処理を終了する。
【０１０９】
図１３に戻り、所定のプロトコルの制御コードでなかった場合は（ステップＳ２のＮｏ）、一般データとしての処理を行う（ステップＳ４）。一般データとは、例えば、文字コードや、所定のプロトコル以外の制御コードである。
【０１１０】
以上のようなステップＳ１〜Ｓ４の処理は、ジョブ終了である判断されるまで（ステップＳ５のＹｅｓ）、繰り返される。
【０１１１】
ジョブ終了である判断された場合には（ステップＳ５のＹｅｓ）、一つの印刷ジョブが終了する。
【０１１２】
図１０に示すように、上位プリンタは、ＪＯＢ  ＩＤ毎に、応答した全ての下位プリンタの印刷完了ページ数および当該上位プリンタの印刷完了ページを加算した印刷完了ページ数と、応答した全ての下位プリンタおよび当該上位プリンタを加算した総数であるプリンタ数と、プリンタ情報（応答した全ての下位プリンタおよび当該上位プリンタ毎のＩＰアドレス、ＪＯＢ  ＩＤ、印刷完了ページ数）とを含むページ情報を所定のプロトコルにおける応答情報の一部として生成する。
【０１１３】
また、本実施の形態において生成される応答情報においては、実際にプリンタ３１で処理を行った開始ページ、終了ページ、ジョブＩＤ等の情報に加えて、応答を返す時点でのプリンタ３１の状態を応答情報に追加している。例えば、「状態」「詳細」「給紙トレイ１」「給紙トレイ２」「排紙トレイ１」「トナー」などの項目を応答情報に追加している。
【０１１４】
「状態」では、プリンタ３１の状態概要を、印刷可能（問題なし）であるか、警告（印刷可能ではあるが問題が発生している）であるか、エラー（印刷不可能な問題が発生している）であるかなどの状態を表す。
【０１１５】
「詳細」では、警告時やエラー時に応じて、詳細な警告、またはエラーの内容を表す。警告としては、トナーニアエンド、用紙ニアエンド、両面カバーオープン、ステープル針なし、などが挙げられる。エラーとしては、トナーエンド、用紙エンド、前カバーオープン、排紙ジャム、給紙ジャム、などが挙げられる。
【０１１６】
「給紙トレイ１」「給紙トレイ２」では、設定されている用紙サイズやその残量などの状態を表す。
【０１１７】
「排紙トレイ１」では、排紙フルなどのエラー状態を表す。
【０１１８】
「トナー」では、ニアエンド、エンドなどのエラー状態や、プリンタ３１の仕様に応じた残量（％）などの状態を表す。
【０１１９】
加えて、本実施の形態においては、応答情報の一部として障害情報も生成する。ここで、障害とは、オペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）がプリンタに発生した状態をいう。図１０に示すように、上位プリンタは、エラーとなったＪＯＢ  ＩＤ毎に、障害内容にかかるエラーコードと、エラーとなったプリンタ数と、プリンタ情報（エラーを応答した全ての下位プリンタおよびエラーがある場合の当該上位プリンタ毎のＩＰアドレス、エラーコード、エラーとなったＪＯＢ  ＩＤ）とを含む障害情報を、応答情報の一部として生成する。図１０は、下位プリンタに障害情報が無い場合を示している。
【０１２０】
上述したように、メインプリンタは、サブプリンタからの応答を待ち合わせて応答情報をマージし、印刷サーバ１１に「状態取得応答」コマンドを送信する。メインプリンタ側において、オペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が発生しない場合は、ここで印刷処理が完了する。
【０１２１】
一方、メインプリンタからの「状態取得応答」コマンドを受信した印刷サーバ１１側では、全てのプリンタの情報がマージされた印刷結果の応答情報を受け取ることになる。状態取得応答には印刷状態が含まれ、それによって印刷サーバ１１は印刷完了ページ数と印刷完了を検知できる。この場合はメインプリンタでのみ印刷されているので、メインプリンタの印刷完了ページ数のみが印刷サーバ１１に対して応答される。印刷サーバ１１側では、全てのプリンタの応答情報がマージされた印刷結果の応答情報をログとして管理する。
【０１２２】
ここで、図１６はページ情報テーブルＴ１を示す模式図である。図１６に示すように、印刷サーバ１１のＲＡＭ４３に形成されるページ情報テーブルＴ１には、イントラネットＢのメインプリンタから送信された応答情報の一部であるページ情報が格納されている。ページ情報テーブルＴ１は、基本部ａ、応答した全てのプリンタの総数であるプリンタ数ｂ、詳細部ｃで構成されている。基本部ａには、ＪＯＢ  ＩＤ及び全プリンタの印刷完了ページ数がログとして格納されている。また、詳細部ｃには、各プリンタのＩＰアドレス、各プリンタのＪＯＢ  ＩＤ（全て一致する）、各プリンタの印刷完了ページ数が、ログとして格納されている。
【０１２３】
また、図１７は障害情報テーブルＴ２を示す模式図である。図１７に示すように、印刷サーバ１１のＲＡＭ４３に形成される障害情報テーブルＴ２には、イントラネットＢのメインプリンタから送信された応答情報の一部である障害情報が格納されている。障害情報テーブルＴ２は、基本部ｄ、障害が発生した全てのプリンタの総数であるプリンタ数ｅ、詳細部ｆで構成されている。基本部ｄには、障害内容にかかるエラーコード及び障害が発生したＪＯＢ  ＩＤがログとして格納されている。また、詳細部ｆには、障害が発生した各プリンタのＩＰアドレス、障害が発生した各プリンタのエラーコード、障害が発生した各プリンタのＪＯＢ  ＩＤ（全て一致する）が、ログとして格納されている。
【０１２４】
次に、印刷処理中のプリンタにおいて、オペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が発生した場合における代替印刷機能について説明する。代替印刷機能とは、複数台のプリンタをＬＡＮ経由でチェインして構成されるプリンタ群で印刷を行う機能である。なお、複数台のプリンタの接続方法はチェイン型に限るものではなく、スター型、バス型、リング型などの各種の接続方法を適用することが可能である。図１８は、印刷処理中に印刷不可状態が発生した場合の印刷処理の処理手順を示すシーケンス図である。
【０１２５】
（１６）オペレータ操作が必要な印刷不可状態（例えば、紙なし）がメインプリンタで発生した場合には、メインプリンタはサブプリンタ（図６のサブプリンタ１）へ「排紙抑制解除」コマンドを送信する。また、メインプリンタは排紙機能を停止し、その後の排紙を行わない。
【０１２６】
（１７）「排紙抑制解除」コマンドを受信したサブプリンタ（図６のサブプリンタ１）は、排紙抑制解除処理を行い、継続印刷を開始する。
【０１２７】
（１８）サブプリンタ（図６のサブプリンタ１）は、排紙毎にメインプリンタへ「ページ削除」コマンドを送信する。また、サブプリンタは、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、下位のサブプリンタへ「ページ削除」コマンドを送信する。「ページ削除」コマンドを受信したメインプリンタと下位プリンタは、印刷完了ページ数の同期を取り、印刷処理済みページの削除を行う。
【０１２８】
（１９）メインプリンタは、印刷サーバ１１から「状態取得」コマンドを受信すると、サブプリンタ（図６のサブプリンタ１）へ「状態取得」コマンドを送信する。
【０１２９】
（２０）サブプリンタ（図６のサブプリンタ１）は、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、上位のメインプリンタから受信した「状態取得」コマンドを下位のサブプリンタ（図６のサブプリンタ２）に送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「状態取得応答」コマンドを送信する。メインプリンタは、サブプリンタからの応答を待ち合わせし、印刷サーバ１１に「状態取得応答」コマンドを送信する。これにより、印刷サーバ１１側では、全てのプリンタの情報がマージされた印刷結果の情報を受け取ることになる。状態取得応答には印刷状態が含まれ、それによって印刷サーバ１１は印刷完了ページ数と印刷完了を検知できる。状態取得応答には印刷状態が含まれ、それによって印刷サーバ１１は印刷完了ページ数と印刷完了を検知できる。この場合はメインプリンタとサブプリンタ１とで印刷されているので、メインプリンタとサブプリンタ１の印刷完了ページ数がマージされて応答される。
【０１３０】
本実施の形態においては、図１９に示すように、オペレータ操作が必要な印刷不可状態（例えば、紙なし）の障害がメインプリンタで発生した場合には、印刷サーバ１１へは障害を応答せずにサブプリンタ１で印刷を継続する。また、オペレータ操作が必要な印刷不可状態（例えば、紙なし）の障害がサブプリンタ１で発生した場合には、更にサブプリンタ２が用意されているので、印刷サーバ１１へは障害を応答せずにサブプリンタ２で印刷を継続する。
【０１３１】
また、メインプリンタで障害発生中のため、上述したように、応答情報の一部として障害情報が設定される。ただし、サブプリンタ１が稼働中のため、プリンタとしての障害情報は設定されず、内訳としてメインプリンタの障害情報を設定する。これは、代替印刷機能というものが、印刷先をプリンタ「群」として見ているためである。
【０１３２】
ここで、図２０は代替印刷の一例を示す模式図である。図２０は、１０枚の印刷データを使用したケースであって、メインプリンタで５枚を印刷後に用紙切れが発生した後、印刷処理がサブプリンタ１に移行し、サブプリンタ１で３枚を印刷後に紙ジャムが発生している。その後、印刷処理がサブプリンタ２に移行し、サブプリンタ２で２枚が印刷されている。図２０に示すように、障害が発生した場合には、応答情報の一部として障害情報が付加されることになる。
【０１３３】
一方、メインプリンタからの状態取得応答」コマンドを受信した印刷サーバ１１側では、全てのプリンタの情報がマージされた印刷結果の応答情報を受け取ることになる。状態取得応答には印刷状態が含まれ、それによって印刷サーバ１１は印刷完了ページ数と印刷完了を検知できる。この場合はメインプリンタ、サブプリンタ１、サブプリンタ２で印刷されているので、メインプリンタ、サブプリンタ１、サブプリンタ２の印刷完了ページ数が印刷サーバ１１に対して応答される。印刷サーバ１１側では、図１６および図１７に示すように、全てのプリンタの応答情報がマージされた印刷結果の応答情報をログとして管理する。
【０１３４】
以上のようにネットプリント処理における印刷処理が終了すると、図６に示すような装置解放処理が実行される。
【０１３５】
（５）メインプリンタは、印刷サーバ１１から「ＪＯＢ終了」コマンドを受信すると、ＪＯＢ終了処理を行い、サブプリンタ（図６のサブプリンタ１）へ「ＪＯＢ終了」コマンドを送信する。
【０１３６】
（６）メインプリンタから「ＪＯＢ終了」コマンドを受信したサブプリンタ（図６のサブプリンタ１）は、ＪＯＢ終了処理を行う。また、サブプリンタ（図６のサブプリンタ１）は、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、上位のメインプリンタから受信した「ＪＯＢ終了」コマンドを下位のサブプリンタ（図６のサブプリンタ２）に送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「ＪＯＢ終了応答」コマンドを送信する。メインプリンタは、サブプリンタからの応答を待ち合わせし、印刷サーバ１１に「ＪＯＢ終了応答」コマンドを送信する。
【０１３７】
（７）メインプリンタは、印刷サーバ１１から「装置解放」コマンドを受信すると、プリンタの解放処理を行い、サブプリンタ（図６のサブプリンタ１）へ「装置解放」コマンドを送信する。
【０１３８】
（８）メインプリンタから「装置解放」コマンドを受信したサブプリンタ（図６のサブプリンタ１）は、プリンタの解放処理を行う。また、サブプリンタ（図６のサブプリンタ１）は、さらに下位のサブプリンタ（図６のサブプリンタ２）がある場合、上位のメインプリンタから受信した「装置解放」コマンドを下位のサブプリンタ（図６のサブプリンタ２）に送信する。サブプリンタは下位のサブプリンタが無い場合、上位プリンタへ「装置解放」コマンドを送信する。メインプリンタは、サブプリンタからの応答を待ち合わせし、印刷サーバ１１に「装置解放応答」コマンドを送信する。
【０１３９】
以上のように、ジョブ同期部１０２は、プリンタ３１が保持する印刷ジョブとセッションが成立している他のプリンタ３１で保持する印刷ジョブとの同期を保つように制御することができる。
【０１４０】
［５．印刷結果レポート印刷処理］
次に、印刷結果レポートの印刷処理について説明する。図２１に示すように、印刷サーバ１１は、印刷サーバ１１がログとして管理するプリンタ情報および全てのプリンタの情報がマージされた印刷結果の情報（図１６および図１７参照）に基づき、印刷結果レポートの出力データを生成し、メインプリンタに送信する。
【０１４１】
印刷結果レポートは、上述した印刷処理に従い、最後に印刷処理を実行したプリンタにおいて印刷される。
【０１４２】
図２２は、印刷結果レポートの一例を示す平面図である。図２２に示す印刷結果レポートには、ＪＯＢ  ＩＤ、文書名、総印刷完了ページ数とともに、プリンタ毎のプリンタ情報（ＩＰアドレス）、開始ページ、終了ページ、印刷ページ数が印字されている。また、障害が発生しているプリンタについては、その内容も印字されている。送信側、受信側の両方が、印刷結果レポートを確認することで、代替印刷されたことを確認することができるとともに、代替印刷されたプリンタの履歴により印刷された用紙の取り忘れや取り間違いを防止することができる。
【０１４３】
このように本実施の形態によれば、印刷中のプリンタにオペレータ操作が必要な印刷不可状態（紙なし、紙ジャム、トナーエンド、その他障害）が発生した場合であっても、代替のプリンタが継続して印刷を引き継ぐことで、障害が発生しても印刷が止まることがなくなるので、確実に印刷することができるようになり、印刷の信頼性を上げることができる。また、セッションが成立している各印刷装置の状態を取得することができるので、印刷起動を行なう前に印刷装置の状態を確認することが可能となるため、状態によっては、予測される不具合の対策、例えば、用紙補給やトナー補給などを行なってから印刷起動することが可能となり、より信頼性の高い印刷を実施することができる。
【０１４４】
また、下位のプリンタの情報と上位のプリンタの情報とをマージして、さらに上位のプリンタ（又はホスト装置）へ応答することにより、ホスト装置において確実に各種情報を把握することができるようになる。例えば、各印刷装置における印刷処理状態（出力先や出力ページ数など）を含む情報をマージして、さらに上位のプリンタ（又は印刷サーバ）へ応答することにより、送信側（印刷サーバ）は確実に各印刷装置における印刷結果を把握することができるようになる。
【０１４５】
さらに、ホスト装置が得た各印刷装置における印刷処理状態（出力先や出力ページ数など）を含む情報に基づきレポート印刷を行なうため、一元管理されたデータを印刷結果レポートとして印刷することが出来るので、送信側、受信側の両方が、印刷結果レポートを確認することで、代替印刷されたことを確認することができるとともに、代替印刷されたプリンタの履歴により印刷された用紙の取り忘れや取り間違いを防止することができる。
【０１４６】
さらにまた、ネットワーク接続されたプリンタ群が、同機能を有する複数のプリンタで構成されているため、プリンタが切り替わったとしても同様の印刷結果を得ることが出来る。
【０１４７】
また、印刷サーバ側においては、プリンタ側に代替印刷機能を実装したことにより、障害の発生による印刷停止を無くすようにしたので、プリンタに障害が生じた際のリカバリ処理の開発工数を削減することができる。
【０１４８】
さらに、プリンタ側においては、メインプリンタおよびサブプリンタを共通のアプリケーションで構成することで、プリンタを安価に提供することができる。
【０１４９】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図２３ないし図２４に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【０１５０】
本実施の形態は、上位ホスト（印刷サーバ１１）から機器状態情報を取得したいプリンタ３１を特定するようにした点で、全てのプリンタ３１から機器状態情報を取得するようにした第１の実施の形態とは異なるものとなっている。
【０１５１】
図２３は、本発明の第２の実施の形態にかかる状態取得部１０３の動作を示すシーケンス図である。図２３に示すように、上位の機器よりデータを受信し、状態取得コマンドを分析するまでは、図１２と同じシーケンスである。しかしながら、本実施の形態においては、上位ホスト（印刷サーバ１１）から状態取得コマンドに加え、機器特定のコマンドが付加されて送られて来る。これにより、自らが機器特定のコマンドによって特定されるプリンタ３１に該当する場合、プリンタ３１は機器状態情報を取得するが、該当しない場合にはプリンタ３１は機器状態情報を取得しない。図２３に示す例では、メインプリンタは特定された機器に該当するケースで、機器状態情報を取得するが、サブプリンタ１は特定された機器に該当しないケースで、機器状態情報を取得しない。
【０１５２】
図２４は、所定のプロトコルの制御コード処理の流れを示すフローチャートである。図１４に示したフローチャートと異なる点は、状態取得を要求する制御コード（状態取得コマンド）であると判断した場合に（ステップＳ１１のＹｅｓ）、機器が特定されているか否かの判断を行う（ステップＳ４１）。機器特定のための情報としては、例えば、機器のアドレスを使用する。
【０１５３】
機器を特定するアドレスなどの指定があると判断された場合には（ステップＳ４１のＹｅｓ）、ステップＳ４２に進み、指定されたプリンタ３１と自機器の条件が一致するか否かを判断する。すなわち、この例では、プリンタ３１のアドレスが一致するか否かの判断を行う。
【０１５４】
指定されたプリンタ３１と自機器の条件が一致すると判断された場合には（ステップＳ４２のＹｅｓ）、前述の処理（ステップＳ１２〜Ｓ１７）を実施してプリンタ３１の状態の取得を行う。
【０１５５】
一方、条件が一致しない場合には（ステップＳ４２のＮｏ）、状態取得をスキップして、前述のステップＳ１９以降の処理を実施する。
【０１５６】
このように本実施の形態によれば、特定のプリンタ３１の状態のみを見ることができる。
【図面の簡単な説明】
【０１５７】
【図１】本発明の第１の実施の形態にかかるネットプリントシステムのシステム構築例を示す模式図である。
【図２】ネットプリントシステムのシステム構築例を示す模式図である。
【図３】印刷サーバの構成の一例を示すブロック図である。
【図４】プリンタの構成の一例を示すブロック図である。
【図５】プリンタのプリンタ代替処理にかかる機能構成を概略的に示す模式図である。
【図６】プリンタ代替処理を含むネットプリント処理の処理手順を示すシーケンス図である。
【図７】応答情報を順にマージして送信する方式を示す模式図である。
【図８】プリンタ代替処理におけるジョブ同期処理にかかる機能構成を概略的に示す模式図である。
【図９】通常時の印刷処理の処理手順を示すシーケンス図である。
【図１０】応答情報のマージ処理を示す模式図である。
【図１１】状態取得手段の機能構成を示すブロック図である。
【図１２】状態取得手段の処理手順を示すシーケンス図である。
【図１３】所定のプロトコルの印刷ジョブ全体の概要を示すフローチャートである。
【図１４】所定のプロトコルの制御コード処理の流れを示すフローチャートである。
【図１５】ステップＳ２０の処理の流れを示すフローチャートである。
【図１６】ページ情報テーブルを示す模式図である。
【図１７】障害情報テーブルを示す模式図である。
【図１８】印刷処理中に印刷不可状態が発生した場合の印刷処理の処理手順を示すシーケンス図である。
【図１９】代替印刷機能を示す模式図である。
【図２０】代替印刷の一例を示す模式図である。
【図２１】印刷結果レポートの印刷を示す模式図である。
【図２２】印刷結果レポートの一例を示す平面図である。
【図２３】本発明の第２の実施の形態にかかる状態取得手段の動作を示すシーケンス図である。
【図２４】所定のプロトコルの制御コード処理の流れを示すフローチャートである。
【図２５】従来のエクストラネットのシステム構築例を示す模式図である。
【符号の説明】
【０１５８】
１１      ホスト装置
３１      印刷装置
１００    印刷システム
１０１    セッション成立手段
１０２    ジョブ同期手段
１０３    状態取得手段
１１２    取得手段
１１３    判断手段
１１４    変換手段、逆変換手段
【図１】
0005009862.tif 000002
【図２】
0005009862.tif 000003
【図３】
0005009862.tif 000004
【図４】
0005009862.tif 000005
【図５】
0005009862.tif 000006
【図６】
0005009862.tif 000007
【図７】
0005009862.tif 000008
【図８】
0005009862.tif 000009
【図９】
0005009862.tif 000010
【図１０】
0005009862.tif 000011
【図１１】
0005009862.tif 000012
【図１２】
0005009862.tif 000013
【図１３】
0005009862.tif 000014
【図１４】
0005009862.tif 000015
【図１５】
0005009862.tif 000016
【図１６】
0005009862.tif 000017
【図１７】
0005009862.tif 000018
【図１８】
0005009862.tif 000019
【図１９】
0005009862.tif 000020
【図２０】
0005009862.tif 000021
【図２１】
0005009862.tif 000022
【図２２】
0005009862.tif 000023
【図２３】
0005009862.tif 000024
【図２４】
0005009862.tif 000025
【図２５】
0005009862.tif 000026