(57)【要約】【課題】  例えば数百台等の大量印刷デバイスを平行して監視するのは処理負荷が非常に大きくなる。又は、著しく監視を行うコンピュータのコストを上昇させてしまう。【解決手段】  接続管理部４２０により、印刷デバイス数よりも少ない接続数で、順次印刷デバイスの状態を監視し、一方、転送管理部４３２により、印刷デバイス数よりも少ない接続数で、順次印刷デバイスに印刷ジョブを転送する。更に、印刷デバイスの状態監視と印刷ジョブの転送終了とを同期させることなく、印刷ジョブの転送終了を待つことなく、状態監視対象の印刷デバイスを順次切り替えていく。【選択図】  図４
2008158767.tif 000002
【特許請求の範囲】
【請求項１】
複数の印刷デバイスと通信可能な情報処理装置であって、
前記印刷デバイスに転送すべき印刷ジョブの出力先となる印刷デバイスであって状態情報の取得対象となる印刷デバイスを監視対象キューに順次登録する第１登録手段と、
前記転送すべき印刷ジョブの出力先となる印刷デバイスを転送キューに順次登録する第２登録手段と、
前記監視対象キューに登録された、前記監視対象キューにおける印刷デバイスの登録順序である第１登録順序に従い、印刷デバイスとの接続を行い印刷デバイスからの前記状態情報を取得する状態監視手段と、
前記転送キューに登録された、印刷ジョブの転送に係わる印刷デバイスの第２登録順序に従い、印刷ジョブの転送を行わせる転送制御手段と、
前記状態監視手段は、前記転送制御手段により印刷ジョブの転送が完了していなくとも、前記第１登録順序に従い、印刷デバイスとの接続を順次切り替え、印刷デバイスから取得される状態情報を取得することを特徴とする情報処理装置。
【請求項２】
前記転送制御手段は、前記状態監視手段により、前記状態情報を取得する印刷デバイスの切替が行われた場合にも、印刷ジョブを転送中の印刷デバイスへの印刷ジョブの転送を継続させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記状態監視手段による接続数と前記転送制御手段による接続数との各々を設定する接続数設定手段を有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
複数の印刷デバイスと通信可能な情報処理装置におけるジョブ処理方法であって、
前記印刷デバイスに転送すべき印刷ジョブの出力先となる印刷デバイスであって状態情報の取得対象となる印刷デバイスを監視対象キューに順次登録する第１登録工程と、
前記転送すべき印刷ジョブの出力先となる印刷デバイスを転送キューに順次登録する第２登録工程と、
前記監視対象キューに登録された、前記監視対象キューにおける印刷デバイスの登録順序である第１登録順序に従い、印刷デバイスとの接続を行い印刷デバイスからの前記状態情報を取得する状態監視工程と、
前記転送キューに登録された、印刷ジョブの転送に係わる印刷デバイスの第２登録順序に従い、印刷ジョブの転送を行わせる転送制御工程と、
前記状態監視工程は、前記転送制御工程により印刷ジョブの転送が完了していなくとも、前記第１登録順序に従い、印刷デバイスとの接続を順次切り替え、印刷デバイスから取得される状態情報を取得することを特徴とするジョブ処理方法。
【請求項５】
前記転送制御工程は、前記状態監視工程において、前記状態情報を取得する印刷デバイスの切替が行われた場合にも、印刷ジョブを転送中の印刷デバイスへの印刷ジョブの転送を継続させることを特徴とする請求項４に記載のジョブ処理方法。
【請求項６】
前記状態監視工程における接続数と前記転送制御工程における接続数との各々を設定する接続数設定工程を有することを特徴とする請求項４又は５に記載のジョブ処理方法。
【請求項７】
請求項４乃至６のいずれか１項に記載のジョブ処理方法をコンピュータに実行させる為のプログラム。
【請求項８】
請求項７に記載のプログラムをコンピュータ可読の形態で記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの負荷を軽減し効率的に印刷ジョブ又は印刷デバイスを管理する為の仕組みに関する。
【背景技術】
【０００２】
ネットワーク上に印刷ジョブを分散し、複数のプリンタを用いて高速印刷を実現する分散印刷技術が特許文献１等により知られている。この特許文献１によれば、複数に分散された印刷ジョブの状態をパーソナルコンピュータ等のジョブ発行元で収集し、各印刷ジョブの状態をパーソナルコンピュータで平行して管理することが開示されている。
【特許文献１】特開２００１−２９０６２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、例えば、ネットワークで接続された全国各拠点に存在する大量の印刷デバイスに大量の印刷ジョブを投入し印刷を行うケースがある。数台の印刷デバイスならまだしも、例えば数百台の印刷デバイスの監視を行おうとすると、特許文献１に開示される監視方法では現実的ではない。数百台の印刷デバイスを平行して監視するのは処理負荷が非常に大きくなる。又は、著しく監視を行うコンピュータのコストを上昇させてしまう。
【課題を解決するための手段】
【０００４】
本発明は上記問題点に鑑みてなされたものであり、複数の印刷デバイスと通信可能な情報処理装置であって、前記印刷デバイスに転送すべき印刷ジョブの出力先となる印刷デバイスであって状態情報の取得対象となる印刷デバイスを監視対象キューに順次登録する第１登録手段と、前記転送すべき印刷ジョブの出力先となる印刷デバイスを転送キューに順次登録する第２登録手段と、前記監視対象キューに登録された、前記監視対象キューへの印刷デバイスの登録順序である第１登録順序に従い、印刷デバイスとの接続を行い印刷デバイスからの前記状態情報を取得する状態監視手段と、前記転送キューに登録された、印刷ジョブの転送に係わる印刷デバイスの第２登録順序に従い、印刷ジョブの転送を行わせる転送制御手段と、前記状態監視手段は、前記転送制御手段により印刷ジョブの転送が完了していなくとも、前記第１登録順序に従い、印刷デバイスとの接続を順次切り替え、印刷デバイスから取得される状態情報を取得することを特徴とする。
【発明の効果】
【０００５】
本発明によれば、例えば、複数の各印刷デバイスに大量の印刷ジョブを投入した場合等に、監視側の印刷デバイス又は印刷ジョブの監視負荷を軽減し、必要以上にコンピュータのコストを上昇させる必要がない。
【発明を実施するための最良の形態】
【０００６】
［実施例１］
以下、本発明の実施の形態を図面に基づいて説明する。
【０００７】
図１は、本発明の印刷システムの構成を示すブロック図である。なお、本システムにおけるネットワークプリンタは、複数台接続されていることを仮定している。
【０００８】
図１において、デバイス１０４Ａ、１０４Ｂ、１０４Ｎは印刷デバイス（以下デバイスと呼ぶ）である。各印刷デバイスには図示省略したネットワークインタフェースを介しネットワーク１０２に接続されている。印刷管理サーバコンピュータ１０１から転送される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換し印刷を行なう。なお、ここでの、印刷ジョブとは、ページ記述言語等の描画データ、及び、印刷レイアウト設定などの印字に係る各種ジョブ設定データを含めた総称を指す。また、デバイス１０４Ａ、１０４Ｂ、１０４Ｎとしては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタ等を適宜適用することができる。
【０００９】
またデバイス１０４Ａ、１０４Ｂ、１０４Ｎは、印刷ジョブのスケジュール管理や、後述する印刷ジョブの履歴の保持や印刷ジョブの各種状態管理を行うデバイススケジューラ１０３を含む。
【００１０】
このデバイススケジューラ１０３については、例えば、専用ハードウェアで構成することができる。また、ＥＡＰ（Ｅｍｂｅｄｄｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）と呼ばれるデバイス内部に用意されたプラットフォームでアプリケーションを実行させることにより構成することもできる。また、デバイススケジューラ１０３は、ハードウェアとソフトウェアの協働により構成もできるし、デバイス１０４Ａ、１０４Ｂ、１０４Ｎと相互通信可能に接続された情報処理装置において処理の一部を実行させ同等の機能を実現するようにしても良い。また、予め印刷デバイスに内蔵させても良いし、オプションとして機能追加する形態でも良い。
【００１１】
１０１は本実施形態の印刷管理サーバコンピュータ（以下、印刷管理サーバと呼ぶ）としての情報処理装置である。印刷管理サーバは、ネットワークケーブルによって、ネットワーク１０２に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０２の使用状態を監視したりする。印刷管理サーバ１０１は、ネットワーク１０２に接続されている複数のプリンタを管理している。構成としては、印刷管理サーバ１０１は、一般的な情報処理装置であり、印刷管理サービスが実行可能に格納されている。
【００１２】
＜ハードウェア構成図＞
図２は、図１で示した印刷管理サーバ１０１とデバイス１０４が接続される様子を簡易的に表したものであり、夫々の、ハードウェア構成を説明するブロック図である。
【００１３】
ＣＰＵ２０１は、ＲＯＭ２０３のプログラム用ＲＯＭに記憶された、或いはハードディスク２１１からＲＡＭ２０２にロードされたＯＳやアプリケーション等のプログラムを実行する。ＯＳとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをＯＳと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）２０５は、キーボード２０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６は、ＣＲＴディスプレイ２１０の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７は各種データを記憶するハードディスク（ＨＤ）２１１やフロッピー（登録商標）ディスク（ＦＤ）等におけるデータアクセスを制御する。ＰＲＴＣ２０８は、接続されたデバイス１０４との間の信号の交換を制御する。ＮＣ２１２はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。尚、ＮＣ２１２は、ＰＲＴＣ２０８と区別して示されているが、ＰＲＴＣ２０８と協働しネットワーク通信手段として機能するので、ＰＲＴＣに含めるよう考えることもできる。
【００１４】
次に、デバイス１０４の構成について説明する。図示するように、デバイス１０４において、１３０１はプリンタＣＰＵであり、ＲＯＭ１３０２や、外部メモリ１３０３に記憶された制御プログラムに基づいてシステムバス１３０４に接続される各ブロックを制御する。ＣＰＵ１３０１の処理により生成された画像信号が、印刷部Ｉ／Ｆ１３０５を介して、印刷部（プリンタエンジン）１３０６に出力情報として出力される。また、ＣＰＵ１３０１は、入力部１３０７を介して印刷管理サーバ１０１との通信処理が可能となっており、デバイス１０４内の情報等を印刷管理サーバ１０１に通知できる。
【００１５】
ＲＯＭ１３０２内のプログラムＲＯＭには、ＣＰＵ１３０１の制御プログラム等を記憶している。ＲＯＭ１３０２内のフォント用ＲＯＭには、出力情報を生成する際に使用するフォントデータ等を記憶している。ＲＯＭ１３０２内のデータ用ＲＯＭには、ハードディスク等の外部メモリ１３０３がないプリンタの場合、印刷管理サーバ１０１上で利用される各種情報を記憶している。
【００１６】
ＲＡＭ１３０８は、ＣＰＵ１３０１の主メモリや、ワークエリア等として機能するＲＡＭであり、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。また、ＲＡＭ１３０８は、出力情報展開領域（ビットマップデータ展開領域）、環境データ格納領域（印刷ジョブ設定、印刷ジョブの状態情報等）、ＮＶＲＡＭ等に用いられる。上述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１３０３は、メモリコントローラ（ＭＣ）１３０９によりアクセスを制御される。外部メモリ１３０３は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル１３１１は操作のためのスイッチ及びＬＥＤ表示器等で構成されている。
【００１７】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、印刷管理サービスが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００１８】
外部メモリ２１１から直接ＲＡＭ２０２にロードして実行させても良い。さらに、印刷管理サービスをプログラムＲＯＭ２０３に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２０１で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することも出来る。
【００１９】
印刷管理サービスは、印刷管理サーバにおいては、印刷ジョブを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行う。
【００２０】
３０１は基本Ｉ／Ｏプログラムを記憶するための領域である。基本Ｉ／Ｏプログラムは、印刷管理サーバ１０１の電源がＯＮされたときに、外部メモリ２１１からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローディング）機能などを有しているプログラムである。
【００２１】
３０２はＯＳ（オペレーティングシステム）を記憶する領域であり、３０３は印刷管理サービスを記憶する領域である。３０４は、関係データを記憶する領域である。３０５はワークエリアで、ＣＰＵ２０１が各種のプログラムを実行するための領域である。
【００２２】
＜ソフトウェア構成図＞
次に、本プリントシステムの印刷管理サーバ１０１のソフトウェア構成について説明する。図４は、印刷管理サーバ１０１におけるソフトウェア構成の一例を示す図である。また、各ブロックで示されたソフトウェア構成は、図２のＣＰＵ２０１がＲＯＭ、ＨＤＤ等に記憶される各種プログラムを実行することにより実現される機能を示す。
【００２３】
通常、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｏｒｄなどの一般的なアプリケーション４０１は印刷の指示を受け付けると、一連の描画コマンドをＯＳを介して生成する。ＯＳを介して生成された描画コマンドを受け取ったプリンタドライバ４０２は、一連の描画コマンドに基づいてデバイス１０４Ａ〜１０４Ｎで解釈可能なＰＤＬファイルを含む印刷ジョブを生成する。また、デバイス１０４Ａ〜１０４Ｎの各々の機種が異なる場合には、場合によっては、各々のデバイスに対応するプリンタドライバ４０２Ａ〜４０２Ｎが、印刷管理サーバ１０１に具備されることもある。
【００２４】
そして、プリンタドライバ４０２は、デバイスへ生成した印刷ジョブを転送するために該生成した印刷ジョブのデータをプリントスプーラ４０３に渡す。ここではＯＳをウィンドウズ（登録商標）と仮定しているのでプリントスプーラ４０３はウィンドウズ（登録商標）スプーラである。但し、本発明を適用するコンピュータのＯＳはＷｉｎｄｏｗｓ（登録商標）に限定されるものではなく、描画命令を備えるものであれば他のＯＳも適用可能であることは言うまでもない。
【００２５】
プリントスプーラ４０３は、ユーザがユーザインタフェースを介して選択し指示したジョブ制御ポートモニタ４０４に印刷ジョブを渡して、デバイス１０４Ａ〜１０４Ｎのデバイスに転送させる手順をとる。
【００２６】
ここでは、ユーザは予め印刷管理サービス４０５に印刷ジョブを転送する、ジョブ制御ポートモニタ４０４を指定して印刷を指示したものとして説明を進める。
【００２７】
また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステイプル指示等の印刷設定情報も、ジョブ制御ポートモニタ４０４に通知される。ジョブ制御ポートモニタ４０４は上位から渡された印刷ジョブのみならず通知された印刷設定情報も印刷管理サービス４０５に通知する。
【００２８】
印刷管理サーバ１０１、又は、印刷管理サーバ１０１が利用可能なネットワーク１０２上の別の情報処理装置のカスタマイズアプリケーション４０６は、ＡＰＩ４０７を介し、印刷管理サービス４０５に印刷ジョブを投入する。なお、ＡＰＩとはＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅの略語である。
【００２９】
印刷管理サービス４０５は、外部アプリケーションとのインタフェースであるＡＰＩ４０７と、印刷管理部４１０と、接続管理部４２０と、印刷ジョブの各デバイスへの転送を制御する転送管理部４３０と含む。これらの各機能ブロックはソフトウェア的に構成されているものとして示すが、何れかの機能ブロックをハードウェア的に構成しても同様の機能を得ることができる。
【００３０】
印刷管理部４１０は、現在のジョブ状況を保持するジョブ管理部４１１と、複数のプリントキューを管理するプリントキュー管理部４１２と、複数のプリンタポートを管理するプリンタポート管理部４１３とを含む。各構成部の機能は後述で詳しく説明する。
【００３１】
接続管理部４２０は、現在のデバイスに係る状態を保持するデバイス管理部４２１と、デバイスとの接続順序を管理する接続順序制御部４２２と、それら順序を保持する接続順序リストとを備える。本発明の特徴である、印刷先（状態監視先）の切り替え処理を制御している。この印刷先の切り替え処理の制御の詳細は後述で説明する。
【００３２】
転送管理部４３０は、現在の各デバイスに対する転送状況を保持する転送接続管理部４３１と、印刷ジョブを各デバイスに転送する複数の転送部４３２と、それら順序を保持する転送接続順序リストとを備え、特徴的な、転送接続順制御の処理を実現している。この転送管理部４３０が転送すべき印刷ジョブの出力先となる印刷デバイスを転送接続順序リストに順次登録する手段として機能する。制御処理の詳細は後述する。
【００３３】
＜プリントキュー情報＞
図５は、ジョブ制御ポートモニタ４０４からプリントキュー（印刷管理部４１０の最左上部）で受け付けた印刷ジョブの動作を決めるプリントキュー情報５００を示す図である。このプリントキュー情報５００は何れかのタイミングで事前にプリントキューに対応して設定されているものとする。
【００３４】
ここで、プリントキュー情報５００の設定内容である、プリンタ名５０１、プリンタドライバ名５０２、ポート名５０３、及びバックアッププリンタ名５０４について説明する。
【００３５】
プリンタ名５０１は、ＷｉｎｄｏｗＳ（登録商標）のプリンタオブジェクトの名前を示しており、プリンタオブジェクト毎に異なる名前であり、プリンタオブジェクトを識別することができる。プリンタドライバ名５０２は、プリンタオブジェクトに設定されているプリンタドライバの名前である。ポート名５０３は、プリンタ名に対応するプリンタポートの名称である。バックアッププリンタ名５０４は、代行印刷、負荷分散印刷処理等の場合に使用される代行印刷するためのプリンタの名前であり、図５の例のように複数登録可能である。
【００３６】
印刷ジョブ投入先のデバイスで紙なし等エラーが発生すると、印刷ジョブを受け付けたプリントキューとプリントキュー情報に設定されている複数のバックアッププリンタを用いて負荷分散印刷処理を行う。具体的には、印刷ジョブを受け付けたプリントキューとプリントキュー情報に設定されている複数のバックアッププリンタの中から、順次転送可能なデバイスに印刷ジョブを転送又は移動し代行印刷を行う。ここで、転送可能なプリンタの決定方法としては、最初に転送可能と判定されるデバイス、予め決められた優先度に従うデバイスを抽出する方法が取られる。
【００３７】
＜プリンタポート情報＞
図６は各プリンタへ印刷ジョブを転送するときの動作を決めるプリンタポート情報６００を示す図である。図４の印刷管理部４１０の最左下部の各プリンタポートに対応付けられて何れかのタイミングで事前にプリントキューに対応して設定されているものとする。プリンタアドレス６０１は、印刷ジョブ転送先のデバイスのネットワークアドレスであり、対応するデバイスのＩＰアドレス又は名前解決（ＤＮＳ：Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）で使用されるネームが関連付けられている。プリンタモデル６０２は、印刷ジョブ転送先のデバイスの種別を示すプリンタモデル名であり、プリンタモデルの違いによる動作差異が発生した際には、プリンタモデルごとの定義を作成し差異を吸収する。この差異吸収に係る処理の詳細な説明は個々では省略する。プロトコル６０３はデバイスへ印刷ジョブを転送する際の通信プロトコルであり、例えばＬＰＲと呼ばれる、相互通信しながら印刷ジョブを転送するプロトコルや、印刷ジョブを直接転送するＲＡＷプロトコル等がある。ＬＰＲとはＬｉｎｅ  ＰＲｉｎｔｅｒ  ｄｅａｍｏｎ  Ｐｒｏｔｏｃｏｌの略字である。
【００３８】
本印刷システムの特徴的な設定として、プリンタポート情報６００に設定されているデバイス又はジョブ監視にかかわる設定がある。印刷先切り替えモード６０４は後述のフローチャートで詳しく説明する印刷先切り替えに係る設定フィールドである。連続監視時間６０５、連続転送数６０６は、印刷切り替えを行う条件である。連続監視時間６０５は、デバイス又は印刷ジョブを連続して監視する上限時間を示す。また、連続転送数６０６は、同じデバイスに対して連続して印刷ジョブを幾つ転送するかの条件を示す。尚、印刷先の切り替え条件として、連続監視時間６０５、連続転送数６０６が示されているが、これに、限定されるものではない。例えば、印刷ジョブ転送サイズ等、各種、特定の条件を含めることができる。
【００３９】
＜ジョブ情報＞
図７は一般アプリケーション４０１もしくはカスタマイズアプリケーション４０６から投入される印刷ジョブのジョブ情報７００であり、ＨＤＤ２１１に保存され、ジョブ管理部４１１によって管理される情報である。
【００４０】
カスタマイズアプリケーション４０６からジョブが投入される場合には、図４中のＡＰＩ４０７経由で印刷管理部４１０に印刷ジョブが入力される。一方、一般アプリケーション経由では、ジョブ制御ポートモニタ４０４経由で印刷管理部４１０に印刷ジョブが入力される。印刷管理部４１０は印刷ジョブを入力するとそれに対応するジョブ情報７００を生成し、プリントキューに生成したジョブ情報７００を登録する。また、印刷ジョブの実体のデータはジョブ情報７００に関連付けられ、図４に図示される如くＨＤＤ２１１に保存される。
【００４１】
ジョブ情報７００には、ドキュメント名７０１、印刷管理サービスで発行されるジョブＩＤ７０２、印刷したユーザ名７０３、ページ数７０４、ジョブ状態７０５等が含まれる。また、同ジョブ情報７００には、デバイス内で生成されるデバイスジョブＩＤ７０６、スケジューリングの順序を決定する優先度７０７、完了結果７０８、および完了時間７０９も含まれる。
【００４２】
ジョブ状態７０５は、そのときのジョブの状態によって、例えばスプール中、転送中、印刷中、停止中、印刷完了などの状態をとる。
【００４３】
＜接続順序リスト８００＞
図８は図４で示した接続順序リスト８００の一例である。この接続順序リスト８００には、監視対象となるデバイスの識別子及び各デバイスの付属情報が基本的にＦＩＦＯで登録されている。この接続順序リスト８００又は接続順序リスト８００に基づく設定の事を、印刷管理サーバ１０１による監視対象の順序を管理する為の設定ということで、監視対象キューと呼ぶこともある。そして、この接続順序リスト８００におけるデバイスの登録順序に従い、順次、デバイスに関連する状態の監視を実行する。
【００４４】
なお、ここでの”接続”とは上述の接続管理部４２０の管理に基づく、通信セッションの確立のことを指し、該通信セッションの中で、各種状態の取得や要求等を行うことができる。また、印刷デバイスの監視を中断するとは、確立された通信セッションを切断することを指す。図８に示される接続順序リスト８００は、後述の図１５のＳ１５０２で更新される。
【００４５】
接続順序リスト８００の横方向の項目には、接続対象プリンタ名、各プリンタキューに登録されている未転送のジョブ数、接続優先度、接続状態、今回の接続ですでに転送したジョブ数である転送済みジョブ数が設定されている。図８中では、１乃至３の接続順番において、デバイスと接続中であり、４番目以降では接続待機中であることが示されている。また、接続中、接続待機中にも、一旦接続を切断し再度の接続を待機する「確認待ち」の状態もある。この「確認待ち」は広義で接続待機中に含まれる。
【００４６】
そして上述の接続管理部４２０は、この接続順序リスト８００に登録（設定）された情報を元に接続順序を決定する。処理の詳細は後述にて説明する。
【００４７】
＜転送接続順序リスト９００＞
図９は図４の４３０で示した転送接続順序リストの一例である。この、転送接続順序リスト９００には、印刷ジョブの転送対象となるデバイスの識別子及び各デバイスへの転送付属情報が基本的にＦＩＦＯで登録されている。そして、この転送接続順序リスト９００におけるデバイスの登録順序に従い、順次デバイスへ印刷ジョブの転送を実行する。即ち、転送すべき印刷ジョブの出力先となる印刷デバイスが順次登録される転送キューとして機能する。
【００４８】
転送接続順序リスト９００の横方向の項目には、接続対象のプリンタ名、転送接続の優先度、転送接続状態で構成される。転送接続管理部４３１は、転送接続順序リスト９００にリストされた情報を元に転送接続順序を決定する。処理の詳細は後述する。
【００４９】
＜印刷デバイスの機能ブロック図＞
図１０は図１で示したデバイス１０４Ａ〜１０４Ｎの構成の一例を示す図である。なお、図中ではハードウェアブロックとソフトウェアブロックとが混在しているが、何れもデバイスの特定の機能を示す。
【００５０】
デバイスコントローラ１００１はデバイスの制御を行うモジュールであり、ハードウェアの状態や、投入された印刷ジョブの状態の管理、制御を行う。先の図２で説明したＣＰＵ１３０１及び印刷部Ｉ／Ｆ１３０５等に相当する。また、デバイスがＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）と呼ばれる印刷、コピー、ＦＡＸ、スキャン等の複数の機能を備える複合機であれば、該デバイスコントローラ１００１はそれらの機能を統合的に管理、制御するモジュールに該当する。
【００５１】
デバイスストレージ１００２は、デバイス内に具備、又は相互通信可能に接続された永続記憶領域、もしくは永続記憶装置であり、ＲＡＭもしくはＨＤＤといったデータ記憶手段によって実現される。
【００５２】
また前述したように、デバイス１０４Ａ〜１０４Ｎは印刷ジョブのスケジュール管理や、後述する印刷ジョブ履歴の保持及び管理を行うデバイススケジューラ１０３を備えている。デバイススケジューラ１０３は、接続管理部１０１１、スケジュール管理部１０１２、イベント管理部１０１３、履歴管理部１０１４で構成される。
【００５３】
接続管理部１０１１は、印刷管理サービス４０５との通信を行う複数の接続部および、印刷管理サービス４０５との接続状況や、印刷管理サービス４０５から登録されているイベント情報を保持する、後述する接続リスト１１００を備える。
【００５４】
スケジュール管理部１０１２は、印刷管理サービス４０５から受け付けた印刷ジョブのリストを管理する部分である。後述するスケジュールリスト１２００および、それら印刷ジョブを制御するジョブ制御部を含み、印刷ジョブのスケジューリングを行う。
【００５５】
イベント管理部１０１３は、デバイスコントローラ１００１が持つハードウェアの状態を保持し、デバイスコントローラ１００１からハードウェア状態の変化を受け付ける。そして、スケジュール管理部１０１３および接続管理部１０１１を経由して接続している印刷管理サービス４０５に情報を通知する。
【００５６】
またデバイスコントローラ１００１内の印刷ジョブ状態の変化を受け付け、スケジュール管理部１０１２に通知する。通知を受けたスケジュール管理部１０１２はスケジュールリストに含まれるジョブ状態を更新し、接続している印刷管理サービス４０５に通知するよう接続管理部１０１１に依頼する。
【００５７】
履歴管理部１０１４は、印刷ジョブの完了履歴を管理するモジュールであり、接続管理部１０１１の指示によって、デバイスストレージ１００２に履歴ファイルを生成、読み書き、削除を行う。それら履歴ファイルは履歴管理部１０１４によって操作される履歴管理ファイルによって管理される。これら印刷ジョブ履歴の管理処理の詳細は後述する。
【００５８】
尚、図１０中には示されていないが、デバイス１０４Ａ〜１０４Ｎの各々には、例えば、記録媒体への像形成を行うプリンタエンジン及びプリンタエンジンの各種情報を検知するセンサ機構等も具備されている。これら、プリンタエンジン等については、図３で説明した通りである。
【００５９】
＜デバイス側における接続リスト１１００＞
図１１は接続管理部１０１１によって生成される接続リスト１１００（以降、接続リスト）の一例である。接続リスト１１００にはデバイススケジューラ１０３に通信セッションを張って接続しているコンピュータの固有ＩＤが登録されている。接続リスト１１００には複数のコンピュータ（固有ＩＤ）が含まれているが、この中の１つが、図１の印刷管理サーバ１０１である。ここで留意する点として、接続リスト１１００へのコンピュータの登録順番は印刷順番を定義するものではない。印刷順番は後述するスケジュールリスト１２００に基づき決定される。以下、接続リスト１１００について、具体的に説明する。
【００６０】
接続リストは、管理ＩＤ、印刷管理サービスから通知されるユニークである固有ＩＤ、デバイスコントローラから通知されるイベントを要求するかを設定するイベント登録フィールド、及び印刷ジョブ履歴機能を利用するかを設定する履歴モードフィールドからなる。以下では、履歴機能を利用する設定を前提として説明する。
【００６１】
また固有ＩＤは、本実施形態ではＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）と呼ばれる、１６進数３２桁の数値を用いたが、接続するサービス毎にユニークに識別可能な手段であれば手法は問わない。
【００６２】
＜デバイス側におけるスケジュールリスト＞
図１２はデバイスのスケジュール管理部１０１２によって生成されるスケジュールリスト１２００の一例である。スケジュール管理部１０１２には、接続リスト１１００に含まれるコンピュータからの印刷ジョブがどのような順番で処理されるかを示すリストである。図１２のスケジュールリスト１２００では、順番１乃至３に同じコンピュータ（印刷ジョブ発行元）からの印刷ジョブが登録されている。
【００６３】
スケジュールリストは、印刷順序、接続リストと共通である固有ＩＤ、デバイスコントローラ１００１より通知されるデバイスジョブＩＤ、ジョブ状態および、図７で示したジョブ情報が含まれる。スケジュールリストはスケジュールを受けた順序およびジョブ情報に含まれる優先度７０７によってスケジューリングされる。
【００６４】
＜デバイス側における履歴管理ファイル＞
図１３には履歴管理部１０１４によって生成される履歴管理ファイル１３００および履歴ファイル１３２０が示されている。
【００６５】
履歴管理ファイル１３００は、生成された各履歴ファイル情報１３１０（以後、履歴ファイル情報）のリストである。履歴ファイル情報１３１０には、履歴ファイルのバージョン１３１１、最終更新日１３１２、接続リスト（図１１）と共通の固有ＩＤ１３１３、およびデバイスストレージ１００２に保存されている履歴ファイル名１３１４が含まれる。この履歴ファイル名１３１４は履歴ファイルを特定する為の情報として機能する。履歴ファイルには、バージョン１３２１および図７で示したジョブ情報７００が複数個保存される。
【００６６】
本実施形態では、デバイススケジューラ１０３により、上述の図１３のような履歴情報が生成される。印刷デバイス内で印刷ジョブの状態が変化したことを検知し、印刷ジョブ状態が変化したことを通知すべき印刷管理サーバ１０１が接続中（監視対象）でなくとも対応出来る。つまり通知すべきジョブ状態変化通知を保存しているので、印刷管理サーバ１０１から再度ジョブ状態の取得の要求を受けた場合でも、保存しているジョブ状態を通知することが可能となる。
【００６７】
＜印刷ジョブ実行フロー＞
次に、本発明の特徴である、印刷管理サーバ１０１のよる、大量の複数デバイスの監視および大量の複数印刷ジョブの投入、完了までの追跡を実現するための処理を説明する。
【００６８】
まず、概略の述べると、印刷要求に応じて、図１４のフローチャートが実行され、ジョブ制御ポートモニタ４０４によりプリントキュー管理部４１２が呼び出される。そして、プリントキュー管理部４１２によりプリンタポート管理部４１３が呼び出され、図１５のフローチャートが実行される。
【００６９】
図１５のフローチャートでは、プリントポート管理部４１３は、接続管理部４２０にデバイスとの接続に係る処理を依頼し、接続管理部４２０に図１６、図１７のフローチャートを夫々実行させる。
【００７０】
そして、接続管理部４２０は、図１６のフローチャートにより接続先又は接続先候補の各デバイスの状態を監視し、また、図１７のフローチャートにより印刷ジョブの転送処理を行う。
【００７１】
図１８、１９、２０のフローチャートは、図１７のフローチャートにおける転送処理の詳細を示す。接続管理部４２０は、図１８、１９、２０のフローチャートにより、特定の各種条件成立を判定し、接続順序リスト８００のデバイス登録に基づく接続先デバイスの切り替え処理を行う。
【００７２】
また、図２１のフローチャートは、図１６の各デバイスの状態監視に基づき行われる代行印刷処理（Ｓ１６１４）の詳細を示す。
【００７３】
また、図２２のフローチャートは、転送管理部４３０において前述した転送接続管理処理の詳細を示す。図１８のフローチャートにおける転送依頼を受け、図２２のフローチャートにより印刷ジョブが転送される。以下、各フローチャートの詳細を説明する。
【００７４】
＜印刷管理サーバ１０１の処理＞
図１４は、一般アプリケーション４０１より印刷ジョブを投入された時の、ジョブ制御ポートモニタ４０４及びプリントキュー管理部４１２の処理を示したフローチャートである。また、カスタマイズアプリケーション４０６は生成した印刷ジョブを、ジョブ制御ポートモニタ４０４と同様の処理によりＡＰＩ４０７を経由してプリントキュー管理部４１２に投入する。
【００７５】
まずＳ１４０１で、ジョブ制御ポートモニタ４０４は、プリントスプーラ４０３よりジョブを受け付け、Ｓ１４０２で、プリントキュー管理部４１２へジョブ追加通知を行う。この際、プリンタ名を通知する。引き続きジョブ制御ポートモニタ４０４は、プリントキュー管理部４１２よりジョブＩＤが付与されたジョブファイル名を受け付け、Ｓ１４０４でジョブを指定されたファイル名でＨＤＤ２１１に保存する。
【００７６】
次にＳ１４０５でジョブ制御ポートモニタ４０４は、プリントキュー管理部４１２へジョブのスケジュール依頼を通知する。この際、Ｓ１４０３でプリントキュー管理部４１２から受けたジョブＩＤを通知する。Ｓ１４０６で、ジョブファイルのＨＤＤ２１１への保存が終了すると、Ｓ１４０７でジョブ制御ポートモニタ４０４はプリントキュー管理部４１２へジョブ生成完了を通知し、処理を終了する。この際にも、Ｓ１４０３でプリントキュー管理部４１２から受けたジョブＩＤを通知する。
【００７７】
プリントキュー管理部４１２は、Ｓ１４１１で、ジョブ制御ポートモニタ４０４からジョブ追加通知を受け付けると、Ｓ１４１２でジョブＩＤを発行する。そして引き続きＳ１４１３でプリンタポートへジョブ追加通知を行う。この際、発行したジョブＩＤを通知する。次に、Ｓ１４１４で、プリンタポート管理部４１３よりジョブファイル名を受け付け、Ｓ１４１５でジョブ制御ポートモニタ４０４へ通知する。
【００７８】
プリントキュー管理部４１２は、そしてＳ１４１６でジョブ制御ポートモニタ４０４からジョブスケジュール通知を受け付けると、Ｓ１４１７でプリンタポート管理部４１３へジョブスケジュール通知を行う。この際、プリントキュー管理部４１２はプリンタポート管理部４１３へＳ１４１２で発行したジョブＩＤを通知する。
【００７９】
Ｓ１４１８で、プリントキュー管理部４１２はジョブ制御ポートモニタ４０４からジョブ生成完了通知を受け付けると、Ｓ１４０９でプリンタポート管理部４１３へジョブ生成完了通知を行い、処理を終了する。この際にも、Ｓ１４１２で発行したジョブＩＤを通知する。
【００８０】
図１５は、Ｓ１４１３でプリントキュー管理部４１２より印刷ジョブが投入された時の、プリンタポート管理部４１３の処理を示したフローチャートである。
【００８１】
まず、Ｓ１５０１で、プリンタポート管理部４１３は、プリントキュー管理部４１２よりジョブ追加通知を受け付けると、Ｓ１５０２で接続管理部４２０から該プリンタが既に接続処理済みでデバイス状態を取得しているかを確認する。デバイス状態を取得済みでない場合、即ち、デバイスと接続していない場合は、Ｓ１５０３で接続管理部４２０へ接続開始を通知する。その際、印刷要求の際に指定されたプリンタに基づくプリンタポート情報を通知する。
【００８２】
次にプリンタポート管理部４１３は、Ｓ１５０４で受け付けたジョブＩＤからジョブファイル名を発行し、Ｓ１５０５でプリントキュー管理部４１２へ印刷ジョブに対応するファイル名を通知する。
【００８３】
Ｓ１５０６で、プリンタポート管理部４１３が、プリントキュー管理部４１２よりスケジュール依頼の通知を受け付けると、Ｓ１５０７で接続管理部４２０へスケジュール通知を行い、処理を終了する。この際に、プリンタポート管理部４１３は、プリントキュー管理部４１２より通知されたジョブＩＤを、接続管理部４２０へ通知する。
【００８４】
図１６は、プリンタポート管理部４１３より接続開始を通知された時の、接続管理部４２０の処理を示したフローチャートである。
【００８５】
接続管理部４２０は、Ｓ１６０１でプリントポート管理部４１３より接続開始通知を受け付けると、Ｓ１６０２で接続順序リスト登録処理により、図８で説明した接続順序リスト８００の最後尾に該接続情報を登録する。このＳ１６０２で、印刷デバイスに転送すべき印刷ジョブの出力先となる印刷デバイスであって状態情報の取得対象となる印刷デバイスを監視対象キューである接続順序リストに順次登録される。このＳ１６０２の処理により図８の順序リスト８００（接続順序リスト８００ともいう）が更新される。なお、Ｓ１６０２では監視対象キューへの再登録処理として最後尾に登録する例を説明したがこれに限定されない。デバイスに再度接続できる形態であれば最後尾でなくとも良い。例えば、再登録する際に登録対象に所定の優先度を与え、該優先度に従う最前位置に登録される形態でも良い。また、印刷要求で指定デバイスへ転送すべき印刷ジョブが順次生成された場合には、印刷ジョブの出力先のデバイスを監視対象キューとしての接続順序リスト８００に順次接続情報が登録されることとなる。
【００８６】
次にＳ１６０３で接続順序リスト８００内の接続している監視接続デバイス数と設定された監視最大接続数とを比較する。ここで接続数が監視最大接続数に達している場合は、次に監視接続デバイス数と転送接続順序リスト９００内の転送接続デバイス数との合計と、設定された最大接続数とを比較する。ここで合計接続数が最大接続数に達している場合は、Ｓ１６０４でデバイス状態を「接続待機中」とし、Ｓ１６０９へ処理を移行する。一方、接続数および合計接続数が各々監視最大接続数および最大接続数に達していない場合は、デバイス管理部４２１において接続処理を実行する。
【００８７】
接続処理を開始したデバイス管理部４２１では、Ｓ１６０５でプリンタポートに対応するデバイススケジューラ１０３に対して接続通知を行う。より具体的には接続順序リスト８００（監視対象キュー）の印刷デバイスの登録順序に従い、印刷デバイスとの接続を行い印刷デバイスからの状態情報を取得する。詳細な状態の取得処理は後述のフローチャートで説明する。なおこの際、設定された固有ＩＤを通知する。接続成功後、Ｓ１６０６でデバイス管理部４２１はデバイススケジューラ１０３に対してイベント登録を行なう。そして、Ｓ１６０７で、デバイス管理部４２１は、Ｓ１６０７でデバイススケジューラ１０３から通知されるデバイス状態変化イベントの受信を待つ。
【００８８】
デバイス管理部４２１は、Ｓ１６０８でデバイススケジューラ１０３よりデバイス状態を取得、又はＳ１６０４でデバイス状態を待機中に設定すると、Ｓ１６０８で内部で管理しているデバイス状態を更新する。次にＳ１６１０で更新したデバイス状態をプリンタポート管理部４１３へ通知する。
【００８９】
なお、Ｓ１６０６、Ｓ１６０７のデバイス状態の取得方法としては、例えば、監視対象のデバイスへのポーリング及びポーリング応答待機処理と置き換えても良い。このＳ１６０６、Ｓ１６０７の処理は、接続順序リスト８００に登録された監視対象デバイスの各種情報をネットワークを介して監視できる方法であれば、各種デバイス監視のための構成を適用することができる。
【００９０】
Ｓ１６１１でデバイス管理部４２１は、更新したデバイス状態が「切断」又は「接続待機中」であるかを判断し、何れかの状態に該当する場合は処理を終了する。一方、何れのデバイス状態にも該当しない場合は、Ｓ１６１２でデバイス状態が「エラー」に該当するかを判断する。ここでの「エラー」とは、印刷出力を続行できない状態を指すものであり、例えば、用紙・トナー等の消耗品切れや、用紙ジャムや、ソフトウェアハングアップ等を指す。Ｓ１６１２で「エラー」に該当しないと判断した場合はＳ１６０７へ処理を戻す。一方Ｓ１６１２で「エラー」に該当すると判断した場合は、Ｓ１６１３で、取得したプリンタポート情報にバックアッププリンタが設定されているかを判断する。バックアッププリンタが設定されている場合は、Ｓ１６１４で後述の図２０で詳しく説明する代行印刷処理へ処理を移し、処理を終了する。一方、バックアッププリンタが設定されていない場合はＳ１６０７へ処理を戻す。
【００９１】
図１７は、図１５のフローチャートに従いプリンタポート管理部４１３よりスケジュール依頼を通知された時の、接続管理部４２０の処理を示すフローチャートである。このプリンタポート管理部４１３からのスケジュール通知は、上に説明した、図１５のフローチャートのＳ１５０７に対応する。
【００９２】
Ｓ１７０１で、接続管理部４２０は、プリンタポート管理部４１３よりスケジュール通知を受け付ける。Ｓ１７０２で、デバイス管理部４２１において、デバイスとの接続を行うデバイス状態を取得済みかを判断する。より具体的には、Ｓ１７０２でデバイス状態が「切断」でないか判断する。デバイス状態を取得済みでない、即ち、デバイス状態が「切断」の場合は、Ｓ１７０３でデバイスとの接続を待つ。一方、Ｓ１７０３でＹＥＳと判定する場合には、Ｓ１７０４で、接続順序リストの未転送ジョブ数をカウントアップする。
【００９３】
次にＳ１７０５で、デバイス管理部４２１は、該デバイス状態が「接続待機中」であるかを判断する。デバイス状態が「接続待機中」であった場合は、Ｓ１７０６でスケジュールされる印刷ジョブの優先度設定を確認し、優先度が通常より高い場合はＳ１７０７で接続順序制御部４２２において接続順序リスト変更処理を行う。接続順序リスト変更処理では該接続の接続順序リストの優先度設定を変更し「接続待機中」のリストを優先度順にソートし、Ｓ１７０８で転送接続を優先的に行うために転送接続管理部４３１へ転送接続順序リスト９００の順序変更依頼を行った後に処理を終了する。スケジュールされる印刷ジョブの優先度が通常以下であった場合は処理を終了する。
【００９４】
なお、接続順序制御部４２２で行われる接続順序リスト変更処理において、設定される優先度は、スケジュールされている全てのジョブの優先度の合計、もしくは最大を用いることも可能であるし、もしくは平均を用いることも可能である。つまりは、接続順序を優先する条件のポリシーをどこに設定するかによって、振る舞いが決定される。例えば、ジョブの優先度の合計を用いた場合は、各デバイスにスケジュールされたジョブの優先度の合計値を記憶しておき、ジョブがスケジュールされるたびに加算および、接続順序リストを該値によってソートすることが考えられる。
【００９５】
一方、デバイス管理部４２１は、Ｓ１７０５の判断によって、該デバイス状態が「接続待機中」に該当しない場合は、Ｓ１７０８で後述する転送処理を開始する。また、デバイス状態が「確認待ち」である場合には、デバイス管理部４２１は、Ｓ１７０５でＮＯと判断する。
【００９６】
図１８は、デバイス管理部４２１において、ジョブ転送処理が開始されたときの、デバイス管理部４２１の処理を示したフローチャートである。より具体的には、デバイスの監視を中断すべきかを判断する為に、特定の条件成立を判断し、特定の条件が成立しておらず、監視対象を変更しないと判断場合に転送接続管理部４３１に対して印刷ジョブの転送依頼を行う処理を示す。尚、ここでのジョブ転送依頼処理とは、印刷ジョブの転送を転送接続管理部４３１へ依頼する処理、及び、印刷ジョブのスケジュール要求の処理等、印刷ジョブの転送に係わる各種処理を含む広義の言葉とする。
【００９７】
まずＳ１８０１は、デバイス管理部４２１は、プリンタポートに対応するデバイススケジューラ１０３に対してスケジュール登録をジョブ情報と共に通知する。
【００９８】
次にＳ１８０２で、デバイス管理部４２１は該デバイスの連続監視タイマを開始する。次にＳ１８０３でこの連続監視タイマがタイムアップしたかを判断する。該判断はプリンタポート情報６００に設定された連続監視時間制限数に達したかを判断することにより行う。Ｓ１８０３で、タイムアップしていると判断場合は、印刷デバイスの監視を中断すべく、Ｓ１８０４で後述の図１９ので説明する印刷先切り替え処理を実行する。
【００９９】
Ｓ１８０３で、タイムアップしていないと判断した場合には、Ｓ１８０５でデバイススケジューラ１０３からジョブ状態変化イベントを受信したかを判断する。Ｓ１８０５でジョブ状態変化イベントを受信していない場合は、Ｓ１８０６でタイマをカウントアップしＳ１８０３へ処理を戻す。
【０１００】
Ｓ１８０７では、デバイス管理部４２１は、デバイススケジューラ１０３からジョブ状態変化イベントを受信すると、連続監視タイマをリセットし、受信したイベントがスケジュールアップ、つまり印刷許可であるかをＳ１８０８で判断する。受信したジョブ状態変化イベントがスケジュールアップでない場合は、Ｓ１８０９でプリントキューに登録されている印刷ジョブが全て印刷完了しているかを判断する。まだ印刷完了していないジョブが登録されている場合はＳ１８０３へ処理を戻す。現在注目しているプリントキューに登録されている印刷ジョブが全て印刷完了している場合は、印刷デバイスの監視を中断すべく、Ｓ１８１０で図１９の印刷先切り替え処理を行った後に処理を終了する。
【０１０１】
デバイス管理部４２１は、Ｓ１８０８でデバイススケジューラ１０３よりスケジュールアップを受信したと判断すると、Ｓ１８１１で接続順序リスト内の未転送ジョブ数をカウントダウン、転送済みジョブ数をカウントアップする。次にＳ１８１２で該ジョブの状態を「転送中」に変更し、プリンタポート管理部４１３に通知する。次にＳ１８１３で転送接続管理部４３１に印刷ジョブの転送開始を依頼する。この際、デバイス管理部４２１は、転送接続管理部４３１に転送先のプリンタポート情報およびジョブＩＤを通知する。ここでの転送開始の依頼として本実施例では、転送接続管理部４３１で管理している転送接続順序リスト９００へ転送待ち状態として登録している。この際、すでに転送接続順序リスト９００へ登録されている場合は、登録されているプリンタ情報の未転送ジョブ数をカウントアップする。また、この転送開始の依頼方法としては、転送接続管理部４３１へのメッセージ通知処理として実現することも可能である。
【０１０２】
デバイス管理部４２１は、Ｓ１８１１でカウントアップされた転送済みジョブ数とプリンタポート情報に設定されている連続転送数と比較する。Ｓ１８１４の判定で連続転送数に達している場合は、Ｓ１８１５で、印刷デバイスの監視を中断すべく、図１９の印刷先切り替え処理を実行する。後で詳しく説明するがＳ１８１４でＮＯと判断すると、図１９のフローを実行し、Ｓ１９０３でＹＥＳ（言い換えれば他の待機している登録ジョブがある）と判定するとＳ１９０９で最後尾に回す候補のデバイスにおける印刷未完了の印刷ジョブの存在を調べる。印刷未完了の印刷ジョブの存在があると判断するとＳ１９１１で最後尾に登録する。そして、Ｓ１９１５で次順（接続中以外のものであり、図８では上から４つ目の順序４が該当）の接続処理を開始指示する。図１９のフローチャートで最終的にＳ１９１５が実行されることにより、印刷ジョブの転送が完了していなくとも、接続順序リスト８００の登録順序に従い、印刷デバイスとの接続を順次切り替え、印刷デバイスから取得される状態情報を取得できる。
【０１０３】
転送済みジョブ数が連続転送数に達していない場合は、Ｓ１８１６で未転送ジョブがまだ残っているかを判断し、残っていない場合は、Ｓ１８１５で図１９の印刷先切り替え処理を実行する。一方、Ｓ１８１６の判断でまだ未転送のジョブが残っている場合はＳ１８０２に処理を戻す。
【０１０４】
図１９は、印刷先切り替え処理が開始された時の、デバイス管理部４２１による印刷デバイスの監視中断、及び、監視中断したデバイスを監視対象キュー（接続順序リスト８００）に再登録する処理を示したフローチャートである。
【０１０５】
まず、デバイス管理部４２１は、Ｓ１９０１で、印刷先切り替え処理を開始すると、接続順序リストの連続送信数をリセットし、次にＳ１９０２で連続監視タイマをリセットする。
【０１０６】
デバイス管理部４２１は、Ｓ１９０３で接続順序リストに現在「接続待機中」又は「確認待ち」の状態のデバイスがあるかを判断し。該当するデバイスが接続順序リストにない場合は、Ｓ１９０４でプリントキューに完了していないジョブがあるかを判断する。Ｓ１９０５で完了していないジョブが存在する場合は印刷切り替え処理の呼び元に処理を戻す。また、完了していないジョブが存在しない場合は、Ｓ１９０６で連続監視タイマを停止し、Ｓ１９０７でデバイススケジューラ１０３に登録しているイベントの抹消を指示する。そしてＳ１９０８でデバイススケジューラ１０３に切断を通知しデバイス状態を「切断」に更新して処理を終える。
【０１０７】
一方、Ｓ１９０３の判断で、デバイス管理部４２１は、接続順序リストに現在「接続待機中」もしくは「確認待ち」の状態のデバイスがあった場合は、Ｓ１９０９で監視対象（監視中断対象）のプリントキューに印刷が完了していない他のジョブがあるかを判断する。Ｓ１９０９の判断で印刷が完了していないジョブが存在する場合は、Ｓ１９１０でデバイス状態を「確認待ち」に変更し、Ｓ１９１１で接続順序リストの最後尾にリストを移動する。なお、Ｓ１９１１では監視対象キューへの再登録処理として最後尾に登録する例を説明したがこれに限定されない。デバイスに再度接続できる形態であれば最後尾でなくとも良い。例えば、再登録する際に登録対象に所定の優先度を与え、該優先度に従う最前位置に登録される形態でも良い。このＳ１９１１の処理により、一旦監視を中断したデバイスについても再度監視対象キュー（接続順序リスト８００）の後尾に再登録するので、サイド、監視対象キューに登録された登録状況に従いデバイスを監視できる。
【０１０８】
そしてＳ１９１２で連続監視タイマを停止し、Ｓ１９１３で、印刷デバイスの監視を中断すべく、デバイススケジューラ１０３に登録しているイベントの抹消を指示する。そしてＳ１９１４でデバイススケジューラ１０３に切断を通知し、Ｓ１９１５で接続順序リストの次順にリストされているデバイスへの接続処理開始を指示しデバイス状態を「切断」として処理を終える。
【０１０９】
図２０は、デバイス管理部４２１において、図８の接続順序リスト８００の次順の接続処理が指示されたときの、デバイス管理部４２１の処理を示したフローチャートである。この図２０の処理は、一旦、監視が中断され印刷監視対象キューに再登録され、再度接続処理が行われた場合の処理にも対応する。
【０１１０】
デバイス管理部４２１は、まずＳ２００１で接続順序リスト８００の次順にリストされているデバイスの状態が「確認待ち」であるかを判断する。「確認待ち」でなかった場合は通常の接続処理を行うため、図１６のポイント１６−１（Ｓ１６０５）へ遷移する。一方「確認待ち」であった場合は、Ｓ２００２でプリンタポート（印刷管理部４１０の最左下部）に対応するデバイススケジューラ１０３に対して接続を行う。より具体的にはＳ１６０５と同様に接続順序リスト８００（監視対象キュー）の印刷デバイスの登録順序に従い、印刷デバイスとの接続を行い印刷デバイスからの状態情報を取得する。この際、設定された固有ＩＤを通知する。接続成功後、Ｓ２００３でデバイス管理部４２１は履歴取得通知をデバイススケジューラ１０３に通知し、デバイススケジューラ１０３が保持している履歴を取得する。このＳ２００３の取得処理に対応するデバイス側の処理は後述の図２４で詳しく説明する。Ｓ２００４で次に取得した履歴を基にジョブ状態（図７のジョブ情報の７０５、７０８、７０９等）を更新する。
【０１１１】
次にデバイス管理部４２１は、Ｓ２００５で転送接続管理部４３１より当該プリンタへの転送状況を確認する。Ｓ２００６で転送状況が転送エラーであったかを判断し、ＹＥＳつまり転送に失敗している状況であれば、Ｓ２００７で図１６のＳ１６１３と同様の判断によって代行印刷するか決定する。Ｓ２００７の判断によって代行印刷が実行される場合は、Ｓ２００８で転送接続順序リスト９００から当該プリンタへの接続情報を削除し、Ｓ２００９で図２１の代行印刷処理へと処理を移す。また、Ｓ２００７で代行しない判断がされた場合においても、Ｓ２０１０で転送接続順序リスト９００から当該プリンタへの接続情報を削除し印刷ジョブの状態をエラーとして次のＳ２０１２へと処理を移す。
【０１１２】
Ｓ２００６の判断において、転送がエラーで無い場合はＳ２０１１で、転送が正常完了したかどうかを判断する。ＮＯの場合、つまり転送中であるか若しくは転送接続順序リスト９００に未登録であった場合はＳ２０１２へと処理を移す。Ｓ２０１１で転送完了と判断された場合は、Ｓ２０１０で転送接続順序リスト９００から当該プリンタの接続情報を削除し、Ｓ２０１２へと処理を移す。
【０１１３】
Ｓ２０１２でデバイス管理部４２１は更新されたジョブ状態からプリントキューに登録されている全てのジョブが完了したかを判断する。全てのジョブが完了している場合はＳ２０１３で接続順序リストから該デバイスの情報を削除する、次にＳ２０１４でデバイススケジューラ１０３に登録しているイベントの抹消を通知する。そしてＳ２０１５でデバイススケジューラ１０３に切断を通知し、デバイスとの接続状態を「切断」として処理を終える。
【０１１４】
デバイス管理部４２１は、プリントキューに登録されているジョブが全て完了していない場合は、Ｓ２０１６でデバイススケジューラ１０３にイベント登録を通知し、図１８のポイント１８および図１６のポイント１６−２へ遷移する。遷移後は、少なくとも図１６、図１８のフローチャートの処理が以後並行して実行される。
【０１１５】
図２１は、デバイス管理部４２１において、代行印刷処理が実行されたときの、デバイス管理部４２１の処理を示したフローチャートである。
【０１１６】
デバイス管理部４２１は、代行印刷処理が開始されると、Ｓ２１０１でエラー発生デバイスに対応するプリントキューに登録されている全てのジョブを一時停止する。次にＳ２１０２でプリンタポート情報に設定されているバックアッププリンタ情報を取得する。次にＳ２１０３でプリンタキューに登録されている全てのジョブを代行先のプリンタにスケジュール登録する。次にＳ２１０４で代行元のプリンタキューに登録されている全てのジョブを削除し、削除されたジョブの状態を完了状態とする。そして、Ｓ２１０５で、代行先のデバイスを接続順序リスト８００の「接続待機中」又は「確認待ち」の最前列に挿入する。最後にＳ２１０６で印刷先切り替え処理を実行し代行印刷処理を実現する。
【０１１７】
＜印刷ジョブの転送制御処理＞
図２２は、転送接続管理部４３１において行われるプリンタへの印刷ジョブ転送を制御する処理を示したフローチャートである。また転送接続順序リスト９００（転送キュー）に登録された、印刷ジョブの転送に係わる印刷デバイスの登録順序に従い、印刷ジョブの転送を行わせる処理に対応する。
【０１１８】
転送接続管理部４３１ではＳ２２０１で転送接続順序リスト９００の上位から順次、対応する転送部４３２の転送状況を確認し、Ｓ２２０２で転送がエラーしているかを判断する。ここで転送エラーであった場合は、まずＳ２２０３において転送接続順序リスト９００の該プリンタに対する転送状況を転送エラーとし、Ｓ２２０１での確認対象から除外する。そして、その後に、Ｓ２２０４でデバイス管理部４２１へ監視接続の順位を上げるよう依頼を行い、転送接続順序リスト９００の次順確認のためにＳ２２０１へ処理を戻す。
【０１１９】
Ｓ２２０２において転送がエラーでない場合はＳ２２０５で転送が完了しているかを確認する。転送が完了していた場合はＳ２２０６で未転送ジョブがあるかを判断し、無い場合はＳ２２０７にて転送状況を完了とし、Ｓ２２０３と同様Ｓ２２０１での確認対象から除外したのちに処理をＳ２２０１へ戻す。Ｓ２２０６にて未転送ジョブがある場合は転送状況を転送中で継続し（Ｓ２２０７）、次のジョブの転送を開始する。つまりＳ２２０８において転送部４３２にてジョブＩＤを元にジョブデータの転送を開始し（Ｓ２２０９）、転送接続順序リスト９００の次順確認のためにＳ２２０１へ処理を戻す。
【０１２０】
Ｓ２２０５にて転送完了していない場合は、Ｓ２２１０において未接続状態かを判断する。ここでＮＯ、つまり転送中であった場合はそのままＳ２２０１の転送接続順序リスト９００の次順確認へと処理を戻す。Ｓ２２１０において未接続状態だった場合は、Ｓ２２１１にて新規に転送接続可能かを判断する。転送接続不可能であった場合は、Ｓ２２０１へ処理を戻す。Ｓ２２１１において転送接続可能であると判断された場合は、Ｓ２２０８で転送接続順序リスト９００の該プリンタに対する転送状況を転送中とする。そして、Ｓ２２０９で転送開始のために対応する転送部４３２を生成し印刷ジョブの実際の転送を行う。このＳ２２０９の処理で、転送接続順序リスト９００（転送キュー）に登録された、印刷ジョブの転送に係わる印刷デバイスの登録順序に従う実際の印刷ジョブの転送が行われる。
【０１２１】
次に、Ｓ２２１０において生成した転送部４３２へプリンタポート情報およびジョブＩＤを通知して転送を開始し、次順確認のためにＳ２２０１へ処理を戻す。
【０１２２】
ここで、Ｓ２２１１における接続可能かの判断は、転送接続順序リスト９００内の接続している転送接続デバイス数と設定された転送最大接続数とを比較する。ここで接続数が転送最大接続数に達している場合は、次に転送接続デバイス数と接続順序リスト８００内の監視接続デバイス数との合計と、設定された最大接続数とを比較する。ここで合計接続数が最大接続数に達している場合は、接続不可能と判断する。一方、接続数および合計接続数が各々転送最大接続数および最大接続数に達していない場合は、接続可能と判断する。転送管理部４３１では、上記のように転送接続順序リスト９００の登録順序に従って順次転送状況に応じた処理を行うことによって、プリンタへの印刷ジョブ転送順序を制御する。
【０１２３】
この図２２のフローチャートはＳ１９１４、Ｓ１９１５の処理に依存せず実行でき、Ｓ１８０４、Ｓ１８１５等の印刷先切り替え処理が行われた場合にも、印刷ジョブを転送中の印刷デバイスへの印刷ジョブの転送を継続させることができる。
【０１２４】
＜転送接続と監視接続との関係＞
図２５は上記印刷先切り替えの様子を示した模式図である。図２５上図ではデバイス１０４Ａに対して監視接続しつつ転送接続を行いジョブ転送している。また、１０４Ｂに対しても同様である。
【０１２５】
また図２６は、図２５における印刷先切り替えが発生したときの接続順序リスト８００と転送接続順序リスト９００の遷移例を示す図である。
【０１２６】
監視接続処理（２５０１、２５０４）では、まず先に説明したフローチャートに従って説明する。図１６のフローチャートにおけるＳ１６０７においてデバイススケジューラ１０３よりデバイス状態が変化したことを知らせるイベントの受信を待つ。そして、イベント受信した結果を元にＳ１６１４の代行印刷処理を行ったり、Ｓ１６１１の判断により切断もしくは接続待機中へと移行して終了したりし、ステップＳ１６０７に戻る。この監視接続処理では、実際の転送接続による印刷ジョブの転送が終了しなくとも監視接続を順次各デバイスに対して行う。
【０１２７】
監視接続中であることが、図２６の接続順序リスト８００におけるリスト２６０１において順序１のデバイス１０４Ａに対する状態と順序２のデバイス１０４Ｂに対する状態が接続中であることによって示される。
【０１２８】
また、転送処理では、まず図１８のフローチャートにおけるＳ１８０５においてデバイススケジューラ１０３よりジョブ状態が変化したことを知らせるイベントの受信を待つ。そして、イベント受信した結果を元にＳ１８０８の判断によりスケジュールアップ後の転送接続処理を行う。またＳ１８０９の判断によりスケジュールした全てのジョブの転送処理が完了し印刷先切り替え処理を行ったり、又はＳ１８０３へ戻るという処理を行う。
【０１２９】
転送接続処理（２５０２）では、図２２のフローチャートにおけるＳ２２０１において転送部４３２から転送状況を確認し、確認した結果を元にＳ２２０３の転送エラー処理を行ったりする。また、Ｓ２２０６の判断により転送を全て完了して確認対象からはずしたり、もしくはステップＳ２２０１に戻る処理も行う。
【０１３０】
この状況は、図２６の転送接続順序リスト９００におけるリスト２６０３において順序１のデバイス１０４Ａに対する状態と順序２のデバイス１０４Ｂに対する状態が転送中であることによって示される。
【０１３１】
ここでデバイス１０４Ａに対する連続して転送したジョブ数が予め設定されている連続転送数に達した場合つまりは図１８のＳ１８１４においてＮｏと判断された場合に印刷切り替え処理が発生する。もしくは連続監視時間に達した場合つまりは図１８のＳ１８０３においてＹｅｓと判断された場合に図１９の印刷切り替え処理が発生する。そして、印刷切り替え処理が発生した場合に結果図２５下図の状態へ移行する。この際、デバイス１０４Ａへの転送接続の状態が転送中だった場合は、デバイス１０４Ａへの転送接続は継続したまま監視接続のみ切断し、次順（接続していない図２５ではデバイス１０４Ｃ）への監視接続を開始する。
【０１３２】
これは、図１９のフローチャートにおけるＳ１９０３において、図２６の接続順序リスト８００におけるリスト２６０１の順序３にデバイス１０４Ｃへの状態が接続待機中であることを判断し、Ｓ１９０９に遷移することで実現される。
【０１３３】
この時、デバイス１０４Ａへのジョブは全て完了していないため、Ｓ１９１０、Ｓ１９１１を経て図２６の接続順序リスト８００におけるリスト２６０２の順序４に、接続状態を確認待ちとして挿入される。そして、図２０の次順接続処理においてデバイス１０４Ｃへの接続処理を行うことで実現される。
【０１３４】
また、デバイス１０４Ａへの転送が完了していないため、図２２の転送処理は転送を継続し（２５０３）、完了まで定期的に転送状況を確認することになる。よって図２６の２６０４にある通り転送接続順序リスト９００は遷移しない。
【０１３５】
このデバイス１０４Ａへの転送接続の状態が転送中である場合とは、例えば、１セッションの接続中に、複数ジョブをまとめて送信するようなジョブのグルーピング送信や、非常にデータ量の大きいジョブであり、転送に時間を要する場合等が考えられる。  図２７は、別の印刷先切り替えの様子を示した模式図である。図２５の２５０５で示される監視接続（図２７の２７０３、２７０５）の処理により、図２７に示されるような、転送接続を伴わないスケジュールアップ（２７０４、２７０６）をデバイススケジューラ１０３から取得できる。
【０１３６】
＜デバイススケジューラ１０３の処理＞
図２３は、デバイススケジューラ１０３において、履歴保存処理が発生したときの処理フローである。
【０１３７】
Ｓ２３０１で、デバイススケジューラ１０３は、デバイスコントローラ１００１からジョブの完了イベントを受信すると、対応する固有ＩＤを特定する。そして、Ｓ２３０２で特定された固有ＩＤをキーに接続リスト（図１１）の登録を確認する。
【０１３８】
次にジョブの投入元、つまりはジョブの完了イベントの通知先がイベント登録しているかをＳ２３０３で判断する。より具体的には、完了イベントに対応する固有ＩＤと接続リストに含まれる固有ＩＤとを比較して一致するか否かを判断する。
【０１３９】
登録されている判断した場合はＳ２３０４で、完了イベント通知を、接続している複数又は単数のコンピュータから固有ＩＤをキーに該当するコンピュータに通知する。そして、処理を終了する。
【０１４０】
ジョブの完了イベントの通知先がイベント登録していない、又は接続していない場合は、Ｓ２３０５で履歴管理ファイルの中にＳ２３０１で特定した完了イベントに対応する固有ＩＤに対応する履歴ファイル情報が登録されているかを判断する。
【０１４１】
登録されている場合は、Ｓ２３０６で、履歴ファイル情報から紐付けられる（１３１４の履歴ファイル名により）履歴ファイルの最後尾に完了イベントを追記する。ここで追記される完了イベントとはジョブが終了しという履歴である。
【０１４２】
登録されていない場合は、Ｓ２３０７で履歴ファイルを新規作成して、完了イベントを追加する。最後にＳ２３０８で履歴管理ファイルに新規作成した履歴ファイルを登録し処理を終了する。
【０１４３】
図２４は、デバイススケジューラ１０３において、印刷管理サービス４０５より履歴取得依頼を受け付けたときの処理フローである。
【０１４４】
まず、Ｓ２４０１でデバイススケジューラ１０３は、印刷管理サービスより履歴取得依頼を受け付ける。この履歴取得依頼は図２０のＳ２００３の処理に対応する。受信した履歴取得要求には固有ＩＤが含まれており、図１２のスケジュールリストを参照することにより、Ｓ２４０２で、履歴管理ファイルから固有ＩＤが一致する履歴ファイルを検索する。そして、Ｓ２４０３で、検索により見つけ出された履歴ファイルよりジョブ完了イベントを生成して印刷管理サービスに通知する。この履歴ファイルには、少なくとも、監視中断時に印刷が完了していないジョブの印刷処理結果（印刷完了または印刷未終了）が含まれる。
【０１４５】
このように上記の各フローチャートを実行することにより、印刷管理サーバ１０１にかかる負荷を大幅に軽減することができる。一台のサーバをもって大量のデバイスの監視および大量の印刷ジョブの投入、完了までの追跡が可能となる。結果、印刷管理サーバ１０１に要する大幅なコスト削減を実現できる。
【０１４６】
例えば、上記実施形態と同様の効果を奏するために、遠隔の各拠点に配置される各デバイスに投入された印刷ジョブを一元的に管理する場合、各拠点にプリントサーバを配置しそれらプリントサーバを統合的に管理する統合サーバを更に配置する方法も考えられる。この構成では、統合サーバの負荷を軽減できる。しかしながら、各拠点に配置されるプリントサーバの設置コスト、管理コストが高く、またプリントサーバでトラブルが発生したときに、統合サーバで把握、管理することが困難である。また、複数の拠点のプリントサーバで生成されるジョブ情報を集計する等の新たな処理が発生する。また、デバイスの変更が発生した場合に、各プリントサーバと統合サーバの情報の整合性を保つ煩雑な作業も想定される。本実施形態によれば、例えば上述のような、遠隔の各拠点に配置される各デバイスに投入された印刷ジョブを一元的に管理する場合でも、印刷ジョブの状態監視を行うプリントサーバのコストを抑えることができる。
【０１４７】
＜転送接続と監視接続との詳細説明＞
また、図２８、及び図２９は本発明の印刷システムの特徴である、転送接続および監視接続の二元管理について説明する模式図である。
【０１４８】
図２８では、デバイス１０４Ａおよび１０４Ｂに対して転送部４３２より印刷ジョブが転送されており、同時にデバイス１０４Ｃ、１０４Ｄより各デバイス管理部４２１に対して印刷履歴（２８０３、２８０４）が通知されている。
【０１４９】
このように、印刷ジョブの転送接続（２８０１、２８０２）とデバイス状態の監視接続（２８０３、２８０４）を別管理、つまり二元管理することで、並行に印刷処理および印刷管理処理を行うことが可能となる。
【０１５０】
本実施形態においては、監視接続数と転送接続数との各々を設定することができる。図２９では、例えば最大接続数の制限が４（２９０１、２９０２、２９０３、２９０４）である場合を説明している。デバイス１０４Ａおよび１０４Ｂに対して転送接続、デバイス１０４Ｃに対して転送接続および監視接続している状況であり、転送接続数３、監視接続数１である状況を示している。監視接続と転送接続が一元管理されている場合は両者の数が等しくなり、例えば転送接続２、監視接続２という状況になる。本発明では、転送接続と監視接続の別管理を実現しているため、４という限られた接続数の中で、より転送効率を高めるための処理、つまりは転送接続のほうが、監視接続より多い状況を実現することが可能である。これは最大接続数に制限がある中で、監視接続数と転送接続数が別々に管理、つまりは二元管理されていることによって実現される。ここで監視接続数に設定された値が図１６のＳ１６０３での監視接続数が最大数に達しているかの判断に用いられる。また転送接続数に設定された値が図２２のＳ２２１１での転送接続が可能かの判断に用いられる。
【０１５１】
［実施例２］
この転送最大接続数、監視接続最大数および最大接続数はユーザが予め設定画面を介して任しに設定した特定の数に従い決定されるものとする。この最大接続数、転送最大接続数および監視最大接続数を印刷システムの環境に応じた設定値に変更することで、例えば、監視に重きを置くか、転送に重きを置くかといったシステムのポリシーに応じた設定をすることが可能となる。
【０１５２】
［他の実施の形態］
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５３】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５４】
【図１】本実施形態における印刷システムの全体構成を示すブロック図である。
【図２】図１で示した印刷管理サーバ１０１及びデバイス１０４のハードウェア構成の一例を示すブロック図である。
【図３】図２で示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図１で示した印刷管理サーバコンピュータ１０２のソフトウェア構成の一例を示すブロック図である。
【図５】プリントキュー情報を模式的に示した図である。
【図６】プリンタポート情報を模式的に示した図である。
【図７】ジョブ情報を模式的に示した図である。
【図８】図４で示した接続順序リストを模式的に示した図である。
【図９】図４で示した転送接続順序リストを模式的に示した図である。
【図１０】図１で示したデバイススケジューラ１０３およびデバイス１０４の構成の一例を示すブロック図である。
【図１１】図１０で示した接続リストを模式的に示した図である。
【図１２】図１０で示したスケジュールリストを模式的に示した図である。
【図１３】図１０で示した履歴ファイル及び履歴管理ファイルを示す図である。
【図１４】ジョブ制御ポートモニタ４０４およびプリントキュー管理部４１２の処理を示したフローチャートである。
【図１５】プリンタポート管理部４１３の処理を示したフローチャートである。
【図１６】接続管理部４２０の接続開始処理を示したフローチャートである。
【図１７】接続管理部４２０のスケジュール処理を示したフローチャートである。
【図１８】デバイス管理部４２１のジョブ転送処理を示したフローチャートである。
【図１９】デバイス管理部４２１の印刷先切り替え処理を示したフローチャートである。
【図２０】デバイス管理部４２１の接続順序リストの次順の接続処理を示したフローチャートである。
【図２１】デバイス管理部４２１の代行印刷処理を示したフローチャートである。
【図２２】転送接続管理部４３１の転送処理を示したフローチャートである。
【図２３】デバイススケジューラ１０３の履歴保存処理を示したフローチャートである。
【図２４】デバイススケジューラ１０３の履歴取得処理を示したフローチャートである。
【図２５】本実施形態における印刷システムの印刷先切り替え処理を様子を示す模式図である。
【図２６】接続順序リスト８００と転送接続順序リスト９００の遷移例を示す図である。
【図２７】本実施形態における印刷システムの印刷先切り替え処理を様子を示す模式図である。
【図２８】本実施形態における印刷システムの特徴を表す模式図である。
【図２９】本実施形態における印刷システムの特徴を表す模式図である。
【符号の説明】
【０１５５】
１０１  印刷管理サーバコンピュータ
１０２  イーサネット（登録商標）
１０３  デバイス
１０４  デバイススケジューラ
４０１  一般アプリケーション
４０２  プリンタドライバ
４０３  プリントスプーラ
４０４  ジョブ制御ポートモニタ
４０５  印刷管理サービス
４０６  カスタマイズアプリケーション
４０７  ＡＰＩ
４１０  印刷管理部
４２０  接続管理部
４３０  転送部
１００１  デバイスコントローラ
【図１】
2008158767.tif 000003
【図２】
2008158767.tif 000004
【図３】
2008158767.tif 000005
【図４】
2008158767.tif 000006
【図５】
2008158767.tif 000007
【図６】
2008158767.tif 000008
【図７】
2008158767.tif 000009
【図８】
2008158767.tif 000010
【図９】
2008158767.tif 000011
【図１０】
2008158767.tif 000012
【図１１】
2008158767.tif 000013
【図１２】
2008158767.tif 000014
【図１３】
2008158767.tif 000015
【図１４】
2008158767.tif 000016
【図１５】
2008158767.tif 000017
【図１６】
2008158767.tif 000018
【図１７】
2008158767.tif 000019
【図１８】
2008158767.tif 000020
【図１９】
2008158767.tif 000021
【図２０】
2008158767.tif 000022
【図２１】
2008158767.tif 000023
【図２２】
2008158767.tif 000024
【図２３】
2008158767.tif 000025
【図２４】
2008158767.tif 000026
【図２５】
2008158767.tif 000027
【図２６】
2008158767.tif 000028
【図２７】
2008158767.tif 000029
【図２８】
2008158767.tif 000030
【図２９】
2008158767.tif 000031