以下に添付図面を参照して、この発明にかかる印刷装置およびプログラムの最良な実施の形態を詳細に説明する。
本発明の実施の一形態を図1ないし図10に基づいて説明する。本実施の形態は印刷装置としてレーザプリンタやMFP(Multi Function Peripheral)を適用した例である。
[1.システムの全体構成]
図1は、本発明の実施の一形態にかかるネットプリントシステム100のシステム構築例を示す模式図である。図1に示すように、本実施の形態のネットプリントシステム100は、複数の企業や事業所のイントラネットA,B、すなわちインターネット技術をベースにした社内ネットワークであるイントラネットA,Bを、インターネット網150を介して相互接続したエクストラネットを想定する。
図1に示すように、例えばコンビニエンスストア本社内のイントラネットAは、各種のサーバコンピュータ(以下、サーバという)1にLAN(Local Area Network)等のネットワーク2を介してコンピュータやプリンタなどのクライアント3が複数台接続されたサーバクライアントシステムを想定する。このようなイントラネットAにおいては、インターネット網150と、WWW(World Wide Web)サーバなどの公開サーバ4を除く社内ネットワーク5との境界にファイアウォール6が設けられている。このファイアウォール6は、社内ネットワーク5とインターネット網150との間で出入りするパケットを監視し、決められたルールに従って、その通過を許可したり、阻止(廃棄)したりすることにより、社内ネットワーク5内のセキュリティを確保する。
一方、例えばフランチャイズ店舗内のイントラネットBも、各種のサーバ1にLAN等のネットワーク2を介してコンピュータやプリンタなどのクライアント3が複数台接続されたサーバクライアントシステムを想定する。このようなイントラネットBにおいても、インターネット網150と、公開サーバ4を除く社内ネットワーク5との境界にファイアウォール6が設けられている。
なお、イントラネットA,Bのネットワーク接続としては、インターネット網150に限るものではなく、専用の通信回線を用いて各イントラネットA,Bを接続するようにしても良い。
また、ネットワーク2は有線通信に限るものではなく、無線通信(赤外線や電波等)であっても良い。また、光ファイバを用いたものであっても良い。
図2に示すように、上述したようなネットプリントシステム100は、例えばコンビニエンスストア本社のイントラネットAが備えるサーバ1の一つである印刷サーバ11から、フランチャイズ店舗のイントラネットBが備えるクライアント3の一つであるプリンタ31に対して販促資料等の印刷処理をダイレクトに実行することができる。なお、図2に示すように、イントラネットBにおいては、同機能を有する複数のプリンタ31を備えている。図2に示す例では、イントラネットBにおいてはメインプリンタおよびサブプリンタ1,2で構成される3台のプリンタ31が接続されている。
[2.印刷サーバの構成]
まず、イントラネットAが備える印刷サーバ11(サーバ1)について説明する。図3は、印刷サーバ11の構成の一例を示すブロック図である。図3に示すように、印刷サーバ11は、この印刷サーバ11の動作制御を行うCPU(Central Processing Unit:中央処理装置)41を備えている。このCPU41には、CPU41が起動時に実行するプログラムや必要なデータ等を記憶するためのROM(Read Only Memory)42と、CPU41のワークエリア等を構成するためのRAM(Random Access Memory)43とが内部バス56を介して接続されている。
さらに、CPU41には、キャラクタジェネレータ44、時計回路45、ネットワーク伝送制御部47、磁気ディスク装置48、CD−ROM装置49、表示制御部52および入力制御部55が、内部バス56を介して接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス56を介して行われる。
キャラクタジェネレータ44は、図形文字の表示データを発生するためのものである。時計回路45は、現在日時情報を出力するためのものである。
ネットワークインタフェース回路46は、この印刷サーバ11をLANであるネットワーク2に接続するためのものであり、ネットワーク伝送制御部47は、ネットワーク2を介して、他のサーバ1やクライアント3との間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。例えば、ネットワークインタフェース回路46は、ネットワーク2およびインターネット網150を介して他のイントラネット(ここでは、イントラネットB)が備えるクライアント3の一つであるプリンタ31を接続し、プリンタ31へ印刷データ等を送信したり、プリンタ31より印刷処理状態等を受信したりする等の動作を行う。
磁気ディスク装置48は、OS(Operating System)、OS上で走る種々のアプリケーションプログラム、ワークデータ、ファイルデータ、画情報データなどの種々のデータを記憶するためのものである。本実施の形態においては、アプリケーションプログラムとして、印刷データ送信プログラムなどが記憶されている。CD−ROM装置49は、交換可能な記録媒体であるCD−ROM50に記憶されているデータ(種々のアプリケーションプログラム、ワークデータ、ファイルデータ、画情報データなどの種々のデータ)を読み込むためのものである。
このような印刷サーバ11では、ユーザが電源を投入するとCPU41がROM42内のローダーというプログラムを起動させ、磁気ディスク装置48よりOSをRAM43に読み込み、このOSを起動させる。このようなOSは、ユーザの操作に応じてアプリケーションプログラムを起動したり、情報を読み込んだり、保存を行ったりする。なお、記録媒体はCD−ROM50に限るものではなく、フレキシブルディスク(FD)、CD−R、CD−RW、DVD、半導体メモリ等のコンピュータで読み取り可能な記録媒体であれば良い。この場合、CD−ROM装置49を記憶媒体のデータを読み込み可能なものに変更することはいうまでもない。また、アプリケーションプログラムは、所定のOS上で動作するものに限らず、後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
なお、一般的には、印刷サーバ11の磁気ディスク装置48にインストールされるアプリケーションプログラムは、CD−ROM50などの記憶媒体に記録され、この記憶媒体に記録されたアプリケーションプログラムが磁気ディスク装置48にインストールされる。このため、CD−ROM50等の可搬性を有する記憶媒体も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えばネットワークインタフェース回路46を介して外部から取り込まれ、磁気ディスク装置48にインストールされても良い。
CRTなどの表示装置51は、この印刷サーバ11を操作するための画面を表示するためのものであり、表示制御部52は、表示装置51の表示内容を制御するためのものである。
キーボード装置53は、この印刷サーバ11に対する各種の指示を種々のキー操作により行わせるためのものであり、画面指示装置54は、表示装置51の任意の点を指示する等の操作作業を行うためのもの(例えば、マウス等のポインティングデバイス)であり、入力制御部55は、キーボード装置53および画面指示装置54の入力情報を取り込む等するためのものである。
また、印刷文書情報は、この印刷サーバ11で適宜なアプリケーションプログラムが起動され、当該アプリケーションプログラムにより作成されて磁気ディスク装置48に保存されたり、CD−ROM50に保存されているものがCD−ROM装置49により読み出されて、印刷サーバ11に取り込まれたり、ネットワーク2およびインターネット網150を介して電子メール等で受信した情報から再構築されて印刷サーバ11に取り込まれたりすることで、印刷サーバ11に保存される。
[3.プリンタの構成]
次に、イントラネットBが備える印刷装置であるプリンタ31(クライアント3)について説明する。図4は、プリンタ31の構成の一例を示すブロック図である。図4に示すように、プリンタ31は、このプリンタ31の各部の制御処理および画像形成処理などの各種制御処理を行うプリンタコントローラ(マザーボード)61を備えている。このプリンタコントローラ61には、オペレーションパネル62、プリンタエンジン63および磁気ディスク装置64が接続されている。
プリンタコントローラ61は、その時に設定されている制御モードおよび各イントラネットA,Bの各種サーバ1(例えば、イントラネットAの印刷サーバ11)からの制御コードに従って各イントラネットA,Bの各種サーバ1(例えば、イントラネットAの印刷サーバ11)からの印刷データを描画データに変換してプリンタエンジン63へ出力する制御機構の総称で次のようなモジュールで構成される。プリンタコントローラ61には、制御の主体となるCPU81、RAM82、このプリンタ31に固有な各種の情報を記憶するためのROM83、電源のON/OFFに関わらずデータを保持できる不揮発性メモリであるNV−RAM84、印刷の時に使用される数種の書体を保持しているメモリであるFont ROM85、エンジンI/F86、オペレーションパネル62を接続するパネルI/F87、磁気ディスク装置64を接続するディスクI/F88、ネットワークI/F89などで構成されている。
RAM82は、CPU81のワーク領域、各イントラネットA,Bの各種サーバ1からのデータ受信バッファ、また処理後のイメージ展開領域に使用される。
エンジンI/F86は、プリンタコントローラ61とプリンタエンジン63への制御信号とプリンタエンジン63からプリンタコントローラ61へのステイタス信号を送受信するI/Fである。
ネットワークI/F89は、ネットワーク2を介して各イントラネットA,Bの各種サーバ1(例えば、印刷サーバ11)からプリンタ31への制御信号およびデータと、プリンタ31からのステイタス信号とを送受信するためのものである。
オペレーションパネル62は、プリンタ31のステイタス表示およびモード、印刷条件を変更することができるスイッチ部である。
プリンタエンジン63は、電子写真プロセス方式により画像を形成して記録用紙に記録出力するためのものである。より詳細には、プリンタコントローラ61からの描画データと制御情報に基づいて、感光体上に静電作像し給紙部より転写紙を給紙して画像を形成する。
磁気ディスク装置64は、種々の印刷文書情報を格納したり、それ以外の適宜な情報ファイル等を保存したりするためのものである。加えて、磁気ディスク装置64には、OS(Operating System)、OS上で走る種々のアプリケーションプログラムが記憶されている。本実施の形態においては、アプリケーションプログラムとして、印刷処理プログラムなどが記憶されている。
このような構成のプリンタ31は、サーバ1などと同様に、ユーザが電源を投入すると磁気ディスク装置64よりOSをRAM82に読み込み、このOSを起動させる。このようにして起動したOSは、ユーザの操作に応じてアプリケーションプログラムを起動したり、情報を読み込んだり、保存を行ったりする。また、アプリケーションプログラムは、所定のOS上で動作するものに限らず、後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションプログラムやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
なお、一般的には、プリンタ31の磁気ディスク装置64にインストールされるアプリケーションプログラムは、CD−ROM(図示せず)などの記憶媒体に記録され、この記憶媒体に記録されたアプリケーションプログラムが磁気ディスク装置64にインストールされる。このため、CD−ROM等の可搬性を有する記憶媒体も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えばネットワークI/F89を介して外部から取り込まれ、磁気ディスク装置64にインストールされても良い。
なお、本実施の形態のプリンタ31は、磁気ディスク装置64を備えるものとしたが、これに限るものではなく、半導体メモリ等のコンピュータで読み取り可能な記録媒体にアプリケーションプログラムやOSなどを格納するようにしても良い。
[4.プリンタ代替処理]
次に、印刷サーバ11のCPU41およびプリンタ31のCPU81が実行する各種の演算処理のうち、本実施の形態のネットプリントシステム100が発揮する特徴的な処理であるプリンタ代替処理について以下に説明する。
ネットプリントシステム100においては、インターネット網150を介してイントラネットAのホスト装置である印刷サーバ11からイントラネットBのプリンタ31に印刷データが入力されると、イントラネットBのプリンタ31側で、入力された印刷データについての描画データがプリンタコントローラ61の制御情報に基づいて生成され、生成された描画データがプリンタコントローラ61からプリンタエンジン63に渡され、プリンタスタート命令がかかり印刷が開始されることになる。ここで、イントラネットBのプリンタ31において、印刷の途中にもかかわらず、印刷処理が実行されているプリンタ31にオペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生することがある。そこで、本実施の形態のネットプリントシステム100においては、印刷処理が実行されているプリンタ31にオペレータ操作が必要な印刷不可状態が発生した場合には、印刷処理の対象を他のプリンタ31に切り替えることによって、印刷されていないデータをネットワーク接続された他のプリンタ31で継続して印刷することを可能にし、イントラネットBにおいて印刷停止状態にならないようにする、というプリンタ代替処理を実行するようにしたものである。
印刷サーバ11は、アプリケーションプログラムとして、印刷データ送信プログラムを磁気ディスク装置48に記憶している。すなわち、印刷サーバ11は、OS上で動作する印刷データ送信プログラムが起動すると、この印刷データ送信プログラムに従い、CPU41が各部を制御してプリンタ代替処理の一部となる印刷データ送信処理を実行する。
プリンタ31は、アプリケーションプログラムとして、印刷処理プログラムを磁気ディスク装置64に記憶している。すなわち、プリンタ31は、OS上で動作する印刷処理プログラムが起動すると、この印刷処理プログラムに従い、CPU81が各部を制御してプリンタ代替処理の一部となる印刷処理を実行する。
ここで、図5はプリンタ31のプリンタ代替処理にかかる機能構成を概略的に示す模式図である。図5に示すように、プリンタ31は、プリンタ31にネットワーク接続される印刷サーバ11および他のプリンタ31から送られる種々の要求を受信、および要求の送信を行う送受信処理部101と、プリンタエンジン63からの印刷イベントならびにステイタス変化イベントの受信、およびプリンタエンジン63への印刷指示を行うエンジン処理部102と、送受信処理部101およびエンジン処理部102からの情報を元に印刷制御処理を行う印刷制御部103と、を備えている。
送受信処理部101は、印刷サーバ11およびネットワーク接続された他のプリンタ31との間でセッションを成立させる(接続を確立させる)セッション成立手段として機能する。
ここで、印刷制御部103について詳述する。図5に示すように、印刷制御部103は、印刷プロトコルコマンド制御部104と、故障率管理手段として機能する故障率監視部105と、情報取得手段として機能する情報取得部106と、サブ機決定手段として機能するサブ機決定部107と、構成管理手段として機能する構成管理部108と、を備えている。
印刷プロトコルコマンド制御部104は、印刷プロトコルコマンドの解釈を行い、印刷処理やページ削除処理などの本実施の形態の印刷プロトコルに特有の機能を実現する。
故障率監視部105は、プリンタ31の内部の印刷・稼動状況を監視し、故障率情報を磁気ディスク装置64やNV−RAM84等に記憶管理する。故障率情報としては、例えばジャム発生率が挙げられる。ジャム発生率は、総印刷回数のうち紙ジャムが発生した回数により求められ、印刷のたび更新保持される。なお、磁気ディスク装置64やNV−RAM84などに記憶管理されるのは総印刷回数とジャム回数であり、必要なときに計算するやり方でも良い。本実施の形態においては、故障率情報としてジャム発生率を適用するが、これに限るものではなく、サービスコールの発生回数などの情報を故障率情報として適用しても良い。
構成管理部108は、図6に示すように、保持される下位機器であるプリンタ31の候補リストを磁気ディスク装置64やNV−RAM84などに管理する。また、構成管理部108は、キーボード装置53や画面指示装置54、WebUIより下位機器であるプリンタ31の候補の登録が可能である。なお、上位ホスト(印刷サーバ11)から候補リストが渡される場合は渡された候補リストを使用し、事前に磁気ディスク装置64やNV−RAM84などに登録されていた候補リストは使用しない。
情報取得部106は、図6に示すように、候補リストに基づいて、各プリンタ31の機内情報を取得する。なお、取得されるプリンタ31の機内情報は、IPアドレス、故障率情報などである。
サブ機決定部107は、情報取得部106で取得した機内情報(IPアドレス、故障率情報など)を元に、オペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替機となるサブ機であるプリンタ31を決定する。より詳細には、サブ機決定部107は、図6に示すように、事前に磁気ディスク装置64(または、NV−RAM84など)に登録されている、もしくは上位ホスト(印刷サーバ11)から渡されるプリンタ31の候補リストに基づいて情報取得部106が取得した機内情報(IPアドレス、故障率情報など)を元に構成管理テーブルTを作成してNV−RAM84などに保持管理するとともに、構成管理テーブルTに保持管理された機内情報に基づいてサブ機の検索を行う。
次に、送受信処理部101およびエンジン処理部102からの情報をもとに実現される本実施の形態の印刷プロトコルに特有の機能の基本的な動作に関して説明する。プリンタコントローラ61に取り込まれたデータは、印刷制御部103で解釈を行なう。また、本実施の形態の印刷プロトコル独自のコマンドも、印刷制御部103で解釈される。
印刷プロトコルコマンドを受信したと解釈されると、印刷制御部103は、印刷制御部103の一部として設けられている印刷プロトコルコマンド制御部104にデータの解釈を渡す。
印刷プロトコルコマンド制御部104では、印刷プロトコルの制御コードなどが解釈され、処理を行なう。また、下位機器であるプリンタ31に対して、コマンドなどデータ送信が必要な場合は、印刷プロトコルコマンド制御部104で送信データを用意して、送受信処理部101を通して、接続されている下位機器であるプリンタ31へデータ送信を行なう。
送受信処理部101は、受信した印刷データ等を、下位機器である全てのプリンタ31に対して送信する。加えて、送受信処理部101は、下位機器である全てのプリンタ31に対して印刷抑制コマンドを送信し、下位機器である全てのプリンタ31からは実際の画像出力はされないように処理を行なう。
以上の処理は、本実施の形態の印刷プロトコルで接続された全ての機器(印刷サーバ11およびプリンタ31)で実施されるため、データを受けた下位機器である全てのプリンタ31側でも同様に送受信処理部101でデータ受信を行ない、上記の処理と同じ処理を行ない、下位機器であるプリンタ31がある場合は当該プリンタ31に対しても同様な送信処理までを行なう。
次いで、印刷制御部103により実現されるプリンタ代替処理の主要な処理について、シーン毎に具体的に説明する。
ここで、図7はプリンタ代替処理における装置獲得処理の処理手順を示すシーケンス図、図8は装置獲得処理の流れを示すフローチャートである。なお、図7においては、「メインプリンタ」となるプリンタ31a、「サブプリンタ1」となるプリンタ31b、「サブプリンタ2」となるプリンタ31c、「サブプリンタ3」となるプリンタ31dの4台がネットワーク接続されているイントラネットBを想定している。
なお、「メインプリンタ」、「サブプリンタ1」、「サブプリンタ2」、「サブプリンタ3」は便宜上設定されたものであって、プリンタ31aとプリンタ31bとプリンタ31cとプリンタ31dとは、同じ実装のプリンタである。上位ホストである印刷サーバ11から印刷データがネットワークを通じて最初に入力されるプリンタ31であって初期状態で印刷権を保有しているプリンタ31をメインプリンタと呼び、メインプリンタよりも下位に位置するプリンタ31をサブプリンタと呼ぶ。
また、「メインプリンタ」はホスト装置から一意に決定されるが、「サブプリンタ1」、「サブプリンタ2」、「サブプリンタ3」についてはその順序が処理毎に変わるものである。
プリンタ31は、印刷サーバ11およびネットワーク接続された他のプリンタ31との間でのセッション成立の後(連結形成の後)に、装置獲得処理を実行する。
印刷サーバ11から装置獲得要求通知を受信したプリンタがメインプリンタであるプリンタ31aである場合には(ステップS1,ステップS2のYes,ステップS3のYes)、磁気ディスク装置64やNV−RAM84などに管理されている候補リストのIPアドレスを参照して、サブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)に対し、まず故障率情報獲得要求を送信する(ステップS4)。一方、メインプリンタ(プリンタ31a)から故障率情報獲得要求通知を受信したサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)は(ステップS1,ステップS2のYes,ステップS3のNo)、メインプリンタ(プリンタ31a)に対し、故障率情報(ジャム発生率)を故障率情報獲得応答として返信する(ステップS12)。なお、自身がメインプリンタか否かの判定は、装置獲得要求通知の送信元が印刷サーバ11か否かで判断することができる。なお、装置獲得要求通知以外の通知を受信した場合には(ステップS1,ステップS2のNo)、通知に応じた処理を実行する。
サブプリンタに対する故障率情報獲得要求の送信後(ステップS4)、サブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)からの故障率情報獲得応答が返信された場合には(ステップS5のYes)、メインプリンタ(プリンタ31a)は、サブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)からの故障率情報(ジャム発生率)をプリンタの情報(例えば、IPアドレス)とともに構成管理テーブルTに構成情報として設定する(ステップS6)。なお、サブプリンタからの装置獲得応答が返信されない場合には(ステップS5のNo)、電源が入っていないか通信関係が故障しているか等の理由が考えられるために接続は考えられないことから、ステップS6の処理は行なわない。
以上のようなステップS4〜S6の処理は、全てのサブプリンタについて処理するまで(ステップS7のYes)、繰り返される。
全てのサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)についてステップS4〜S6の処理が実行されると(ステップS7のYes)、メインプリンタ(プリンタ31a)は、サブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)について故障率情報(ジャム発生率)が最も低いプリンタをオペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替機となるサブ機に決定して構成管理テーブルTに記憶する(ステップS8)。
以上のようにしてメインプリンタ(プリンタ31a)においてサブ機が決定された後、メインプリンタ(プリンタ31a)は、サブ機の指定と構成管理テーブルで管理されているサブ機以外のサブプリンタのリストとを作成し(ステップS9)、リストに複数のサブプリンタがあれば(ステップS10のYes)、当該リストをサブ機として決定されたサブプリンタ(ここでは、サブプリンタ2(プリンタ31c))に渡すとともに、リストに従ってサブ機以外のサブプリンタ(ここでは、サブプリンタ1およびサブプリンタ3(プリンタ31bおよびプリンタ31d)に対し、故障率情報獲得要求を送信する(ステップS11)。
上記のようにメインプリンタ(プリンタ31a)から故障率情報(ジャム発生率)要求通知を受信したプリンタがサブ機であるサブプリンタ2(プリンタ31c)である場合には(ステップS1,ステップS2のYes,ステップS3のYes)、サブプリンタ(プリンタ31bおよびプリンタ31d)に対し、故障率情報(ジャム発生率)要求を送信する(ステップS4)。一方、サブ機であるサブプリンタ2(プリンタ31c)から故障率情報(ジャム発生率)要求通知を受信したサブプリンタ(プリンタ31bおよびプリンタ31d)は(ステップS1,ステップS2のYes,ステップS3のNo)、サブ機であるサブプリンタ2(プリンタ31c)に対し、故障率情報(ジャム発生率)を装置獲得応答として返信する(ステップS12)。なお、自身がサブ機であるか否かの判定は、サブ機として指定されているか否かで判断することができる。
サブプリンタに対する故障率情報獲得要求の送信後(ステップS4)、サブプリンタ(プリンタ31bおよびプリンタ31d)からの故障率情報獲得応答が返信された場合には(ステップS5のYes)、サブ機であるサブプリンタ2(プリンタ31c)は、サブプリンタ(プリンタ31bおよびプリンタ31d)からの故障率情報(ジャム発生率)をプリンタの情報(例えば、IPアドレス)とともに構成管理テーブルTに構成情報として設定する(ステップS6)。
その後、サブ機であるサブプリンタ2(プリンタ31c)は、サブプリンタ(プリンタ31bおよびプリンタ31d)について故障率情報(ジャム発生率)が最も低いプリンタをオペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替機となるサブ機に決定する(ステップS8)。
以上のようにしてサブプリンタ2(プリンタ31c)においてサブ機が決定された後、サブプリンタ2(プリンタ31c)は、サブ機の指定と構成管理テーブルで管理されているサブ機以外のサブプリンタのリストとを作成する(ステップS9)。
ここで、サブプリンタ2(プリンタ31c)が作成するリストにはサブプリンタ1(プリンタ31b)のみとなるので(ステップS10のNo)、サブプリンタ2(プリンタ31c)は構成管理テーブルで管理されているサブ機以外のサブプリンタのリストのみをサブプリンタ(ここでは、サブプリンタ3(プリンタ31d))に対して装置獲得要求通知とともに送信する(ステップS13)。
装置獲得要求通知を受信したサブプリンタ(ここでは、サブプリンタ1(プリンタ31b))に下位のプリンタがある場合には(ステップS14,ステップS15のYes,ステップS16のYes)、リスト上のプリンタ(ここでは、サブプリンタ1(プリンタ31b))に対して装置獲得要求通知を送信する(ステップS17)。一方、上位のプリンタ(ここでは、サブプリンタ3(プリンタ31d))から装置獲得要求通知を受信したサブプリンタ1(プリンタ31b)は(ステップS14,ステップS15のYes,ステップS16のNo)、上位のプリンタ(ここでは、サブプリンタ3(プリンタ31d))に対し、装置獲得応答を返信する(ステップS23)。
サブプリンタに対する装置獲得要求の送信後(ステップS17)、リスト上のプリンタ(ここでは、サブプリンタ1(プリンタ31b))からのプリンタの情報(例えば、IPアドレス)などの装置獲得応答が返信された場合には(ステップS18のYes)、プリンタの情報(例えば、IPアドレス)を構成管理テーブルTに構成情報として設定するとともに(ステップS19)、リスト上のサブプリンタ(ここでは、サブプリンタ1(プリンタ31b))に対して印刷抑制要求通知を送信する(ステップS20)。
以上のようにして下位のプリンタに対する印刷抑制要求通知の送信が終了すると(ステップS21のYes)、上位のプリンタ(ここでは、サブプリンタ2(プリンタ31c))に対し、プリンタの情報(例えば、IPアドレス)を装置獲得応答として返信する(ステップS22)。
また、プリンタは、印刷抑制要求通知を受信すると(ステップS14,ステップS15のNo)、自身の印刷処理の抑制設定を行う(ステップS24)。
以上のように、メインプリンタ(プリンタ31a)はサブ機以外のサブプリンタのリストを渡すと同時に装置獲得をサブ機であるサブプリンタ2(プリンタ31c)に行う。サブ機であるサブプリンタ2(プリンタ31c)は、受け取ったサブ機以外のサブプリンタのリストのプリンタに対し、故障率情報(ジャム発生率)を取得する。サブプリンタ3(プリンタ31d)のジャム発生率が最も低いことから、サブ機としてサブプリンタ3(プリンタ31d)を決定し、装置獲得に行く。すなわち、サブプリンタ2(プリンタ31c)は、サブ機以外のサブプリンタのリストとともにサブプリンタ3(プリンタ31d)に装置獲得を行う。この場合、サブ機以外のサブプリンタのリストにはひとつしか候補(サブプリンタ1(プリンタ31b))が無いので、サブプリンタ3(プリンタ31d)は無条件にサブプリンタ1(プリンタ31b)に装置獲得にいく。この結果、
メインプリンタ(プリンタ31a)→サブプリンタ2(プリンタ31c)
→サブプリンタ3(プリンタ31d)→サブプリンタ1(プリンタ31b)
の順に接続されることになる。
以上のようにして装置獲得処理が終了すると、印刷権を保有しているメインプリンタ(プリンタ31a)において印刷処理が実行される。図9の印刷処理の処理手順を示すシーケンス図、および図10のメインプリンタにおける印刷処理の流れを示すフローチャートを参照して、印刷処理を説明する。
印刷権を保有しているメインプリンタ(プリンタ31a)は、印刷サーバ11からデータ送信通知を受信すると、印刷処理および排紙処理を行う。メインプリンタ(プリンタ31a)は、印刷後の排紙処理を行うと、自身に対してページ削除通知を送信し、通知された削除ページでページ情報テーブルのページ情報を更新する。
ここで、印刷処理中のメインプリンタ(プリンタ31a)において、オペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替印刷機能について説明する。
自身もしくはサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)におけるステイタス通知によるステイタス情報の更新の結果、メインプリンタ(プリンタ31a)もしくはサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)において印刷不可状態(例えば、紙なし)が発生したと判断した場合(ステップS31のYes,ステップS32,ステップS33のNo)、メインプリンタ(プリンタ31a)は、自身もしくはサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)に対して印刷抑制通知を送信して印刷処理の抑制設定を行って印刷権を保有しないものとして自身もしくはサブプリンタ(プリンタ31b、プリンタ31cおよびプリンタ31d)を印刷停止とする(ステップS34)。また、メインプリンタ(プリンタ31a)は、構成管理テーブルTに構成情報としてオペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替機となるサブ機が記憶されている場合には(ステップS35のYes)、構成管理テーブルTに記憶されているサブ機であるサブプリンタ2(プリンタ31c)に対し、全ての印刷データを送信し(ステップS36)、ページ情報テーブルに記憶された全ての削除ページ情報を送信し(ステップS37)、印刷抑制解除指示を送信して印刷権を譲渡する(ステップS38)。
なお、構成管理テーブルに構成情報としてオペレータ操作が必要な印刷不可状態(紙なし、紙ジャム、トナーエンド、その他障害)が発生した場合における代替機となるサブ機が記憶されていない場合には(ステップS35のNo)、メインプリンタ(プリンタ31a)は、印刷結果を印刷サーバ11に送信する(ステップS39)。
上述した処理により、印刷権を譲渡されたサブ機であるサブプリンタ2(プリンタ31c)は、メインプリンタ(プリンタ31a)が印刷できなかった残りのページ(印刷データから削除ページを除いたページ)から印刷を開始することとなる。すなわち、メインプリンタは、印刷権が譲渡されたサブ機であるサブプリンタに対し、オペレータ操作が必要な印刷不可状態が発生する度に印刷データを送信することになる。このとき、メインプリンタがサブプリンタに対して印刷されていないページの印刷データのみを送信するのではなく、全ての印刷データと全ての削除ページ情報を送信するのは、全印刷データ内に印刷に必要な情報(主にジョブの先頭に含まれるエミュレーション切り替え指定やユーザによるプリンタドライバの設定)が含まれるためである。これらの情報を、印刷を実行するプリンタが正確に認識することによってはじめて、プリンタはユーザが意図した印刷を実行することが可能となる。
このようにして印刷権を譲渡されたサブ機であるサブプリンタ2(プリンタ31c)において、印刷後の排紙処理が行われると、サブ機であるサブプリンタ2(プリンタ31c)からメインプリンタ(プリンタ31a)に対してページ削除通知が送信される。メインプリンタ(プリンタ31a)は、ページ削除通知を受信すると(ステップS31のNo)、通知された削除ページでページ情報テーブルの削除ページ情報を更新し(ステップS40)、印刷終了判定を行う(ステップS41)。印刷終了の判定手法として、メインプリンタ(プリンタ31a)は、全印刷ページ数と全削除ページ数が等しい場合には印刷が終了したと判断し(ステップS41のYes)、印刷サーバ11に対して印刷結果を通知する(ステップS39)。また、メインプリンタ(プリンタ31a)は、全印刷ページ数と全削除ページ数が異なる場合には(ステップS41のNo)、印刷未終了と判断する。
なお、印刷権を譲渡されたサブ機であるサブプリンタ2(プリンタ31c)において印刷不可状態(例えば、紙なし)が発生したと判断した場合(ステップS31のYes,ステップS32,ステップS33のNo)、メインプリンタ(プリンタ31a)は、サブ機であるサブプリンタ2(プリンタ31c)に対して印刷抑制通知を送信して印刷処理の抑制設定を行って印刷権を保有しないものとして自身もしくはサブ機であるサブプリンタ2(プリンタ31c)を印刷停止とする(ステップS34)。その後、メインプリンタ(プリンタ31a)は、サブプリンタ3(プリンタ31d)に対し、全ての印刷データを送信し(ステップS36)、ページ情報テーブルに記憶された全ての削除ページ情報を送信し(ステップS37)、印刷抑制解除指示を送信して印刷権を譲渡する(ステップS38)。
このように本実施の形態によれば、ネットワーク下流に位置する他の印刷装置の故障率情報を元に、最も故障しにくい印刷装置を、オペレータ操作が必要な印刷不可状態が発生した場合における代替先となるサブ機として決定することにより、オペレータ操作が必要な印刷不可状態が発生した場合に、故障や紙ジャムが発生しやすい印刷装置が優先的に代替先となるのを防止することができ、結果的に更なる代替が発生する確率が低減されるので、多数の印刷装置に排紙先が渡ってしまうという信頼性に関わる問題を回避し、システム全体として印刷の信頼性を向上することができる。