(57)【特許請求の範囲】
【請求項１】
第１の印刷装置及び第２の印刷装置と通信可能な印刷装置であって、
前記第１の印刷装置から、印刷処理を実行すべき旨の処理要求を受信する受信手段と、
前記受信手段が前記処理要求を受信したことに応じて、ジョブを生成する生成手段と、
前記生成手段が生成したジョブに基づいて、印刷処理を実行する印刷手段と、
前記第１の印刷装置の印刷速度に関する第１の印刷速度情報を取得する第１の取得手段と、
前記第２の印刷装置の印刷速度に関する第２の印刷速度情報を取得する第２の取得手段と、
前記印刷手段が前記ジョブに基づく印刷処理を前記第１の取得手段により取得された前記第１の印刷速度情報に応じた所定の印刷速度で実行可能か否かを判定する第１の判定手段と、
前記第２の取得手段により取得された前記第２の印刷速度情報に基づいて、前記第２の印刷装置が前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能か否かを判定する第２の判定手段と、
前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能であると前記第１の判定手段が判定した場合、又は前記ジョブに基づく印刷処理を前記第２の印刷装置が前記所定の印刷速度で実行可能でないと前記第２の判定手段が判定した場合に、前記ジョブに基づく印刷処理を前記所定の印刷速度で実行するよう前記印刷手段を制御する制御手段と、
前記ジョブに基づく印刷処理を前記第１の印刷装置が前記所定の印刷速度で実行可能でないと前記第１の判定手段が判定し、かつ前記ジョブに基づく印刷処理を前記第２の印刷装置が前記所定の印刷速度で実行可能であると前記第２の判定手段が判定した場合に、前記ジョブを前記第２の印刷装置へ転送する転送手段と、
を有することを特徴とする印刷装置。
【請求項２】
前記第２の判定手段は、前記第２の取得手段が複数台の前記第２の印刷装置から取得した複数の前記第２の印刷速度情報に基づいて、前記複数台の前記第２の印刷装置の中に、前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能な前記第２の印刷装置があるか否かを判定し、
前記第２の判定手段により前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能な前記第２の印刷装置があると判定された場合、前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能な前記第２の印刷装置の中から、前記ジョブを転送する前記第２の印刷装置を決定する決定手段を有し、
前記転送手段は、前記決定手段により決定された前記第２の印刷装置に対して前記ジョブを転送することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記第２の判定手段により前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能な前記第２の印刷装置がないと判定された場合、前記印刷手段が前記所定の印刷速度で前記印刷処理を実行可能となるまで前記ジョブを保持する保持手段を有することを特徴とする請求項２に記載の印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ジョブを実行することにより画像を出力する画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体に関する。
【０００２】
【従来の技術】
複写機能、プリンタ機能、イメージスキャン機能等を兼備えるデジタル複合機が知られている。この種の画像出力装置を複数台ネットワークに接続し、画像出力の分散処理を可能とした画像出力システムが提案されている。この様な画像出力システムでは、例えば、重連コピーと呼ばれる分散処理の動作モードを利用することができる。
【０００３】
ここで、重連コピーの処理手順について簡単に説明する。まず、画像を読み取るデジタル複合機（ローカルプリンタ）において、ユーザが原稿台に原稿をセットし、操作部から重連モードを選択する。次にネットワークに接続されたデジタル複合機、またはプリンタの中から、目的に応じた分散処理が可能な画像出力装置（リモートプリンタ）を選択し、その画像出力装置（リモートプリンタ）で出力させる部数や用紙サイズ等を設定する。そして、ユーザが、デジタル複合機（ローカルプリンタ）において画像読み取りの開始命令を出したことに応じて、デジタル複合機（ローカルプリンタ）と、選択された画像出力装置（リモートプリンタ）に分散処理要求が送信される。デジタル複合機（ローカルプリンタ）と選択された画像出力装置（リモートプリンタ）は、受信した分散処理要求に基づいて生成されたジョブを保持し、順次ジョブを実行することにより画像出力を行う。重連コピーを行うことで、デジタル複合機単体でコピーを行うよりも短時間で出力結果を得ることがでるので、画像出力の生産性が向上する。
【０００４】
【発明が解決しようとする課題】
しかしながら、分散処理要求を受信した画像出力装置が多数のジョブを保持している場合、その装置では、生成されたジョブを期待される時間内に実行できず、他の分散処理先よりも出力結果を得るまでに長い時間を要してしまうという問題が生じる。
【０００５】
また、それぞれが異なる出力速度を有する画像出力装置を用いて重連コピーを行う場合、その画像出力装置の中に低速な画像出力装置が含まれていると、その低速な装置では、生成されたジョブを期待される出力速度で実行できず、他の分散処理先よりも出力結果を得るまでに長い時間を要してしまうという問題が生じる。
【０００６】
このような、期待される出力条件（実行時間、出力速度）でジョブを実行できないことによる画像出力の遅延は、重連コピー等分散処理に限らず、リモートコピー等、１つの装置の出力処理においても共通に生じる問題である。また、出力要求を送信する前に、出力先を変更する等、これらの問題の発生を回避するための処置を施せばよいが、従来、出力先の装置が出力要求を受け付けて期待される出力条件でジョブを実行できるか否かを、ジョブの観点から知ることは容易ではなかった。
【０００７】
本発明は、上述した問題点を解決するためのものであり、所望とする出力条件を達成可能なジョブ状態の装置でジョブを実行可能とした画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体を提供することを目的とする。
【０００８】
また、所望とする出力条件を達成可能な出力機能を有する装置でジョブを実行可能とした画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体を提供することを目的とする。
【０００９】
また、出力要求を送信する前に、出力先の装置が出力要求を受け付け可能か否かをジョブの観点からも容易に知ることができるので、分散処理の遅延発生を回避することを可能とした画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明の印刷装置は、第１の印刷装置及び第２の印刷装置と通信可能な印刷装置であって、前記第１の印刷装置から、印刷処理を実行すべき旨の処理要求を受信する受信手段と、前記受信手段が前記処理要求を受信したことに応じて、ジョブを生成する生成手段と、前記生成手段が生成したジョブに基づいて、印刷処理を実行する印刷手段と、前記第１の印刷装置の印刷速度に関する第１の印刷速度情報を取得する第１の取得手段と、前記第２の印刷装置の印刷速度に関する第２の印刷速度情報を取得する第２の取得手段と、前記印刷手段が前記ジョブに基づく印刷処理を前記第１の取得手段により取得された前記第１の印刷速度情報に応じた所定の印刷速度で実行可能か否かを判定する第１の判定手段と、前記第２の取得手段により取得された前記第２の印刷速度情報に基づいて、前記第２の印刷装置が前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能か否かを判定する第２の判定手段と、前記ジョブに基づく印刷処理を前記所定の印刷速度で実行可能であると前記第１の判定手段が判定した場合、又は前記ジョブに基づく印刷処理を前記第２の印刷装置が前記所定の印刷速度で実行可能でないと前記第２の判定手段が判定した場合に、前記ジョブに基づく印刷処理を前記所定の印刷速度で実行するよう前記印刷手段を制御する制御手段と、前記ジョブに基づく印刷処理を前記第１の印刷装置が前記所定の印刷速度で実行可能でないと前記第１の判定手段が判定し、かつ前記ジョブに基づく印刷処理を前記第２の印刷装置が前記所定の印刷速度で実行可能であると前記第２の判定手段が判定した場合に、前記ジョブを前記第２の印刷装置へ転送する転送手段とを有することを特徴とする。
【００１７】
また、本発明の印刷装置の制御方法は、他の印刷装置と接続される印刷装置の制御方法であって、外部装置から、印刷処理を実行すべき旨の処理要求を受信する受信工程と、前記受信工程が前記処理要求を受信したことに応じて、ジョブを生成する生成工程と、前記生成工程により生成されたジョブに基づく印刷処理を実行可能でない場合に、他の印刷装置の印刷性能に関する印刷性能情報を取得する取得工程と、前記取得工程により取得された前記第１の印刷性能情報に基づき、前記他の印刷装置に対して前記ジョブを転送するか否かを制御する制御工程とを有することを特徴とする。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【００２３】
（第１の実施の形態）
図１は、本発明を適応可能なＭＦＰ（ＭＦＰ：Multi-Function Peripheral、以後ＭＦＰ）の全体構成を示すブロック図である。本実施の形態のＭＦＰは、後述するように、複写機能、プリンタ機能、スキャナ機能を有している。
【００２４】
図１において、１０１はＭＦＰを制御するためのコントローラであり、スキャナエンジン１０２、レーザービームプリンタエンジン１０３、フィニッシャー１０４を制御している。
【００２５】
１０２はスキャナエンジンであり、原稿である紙上の画像を照明し、ＣＣＤラインセンサを走査することで、ラスタイメージデータとして電気信号に変換し、得られた画像データをコントローラ１０１に送信する。スキャナエンジン１０２には、複数毎の原稿を一度の指示で読み取らせることが可能な原稿フィーダが付属していてもよい。１０３はレーザービームプリンタエンジンであり、電子写真方式により画像形成をおこなう。プリンタエンジンとしては、レーザービームプリンタエンジンに限ったものではなく、インクジェット方式等他の方式によるプリンタエンジンであってもよい。
【００２６】
フィニッシャー１０４はレーザービームプリンタエンジン１０３に接続されており、レーザービームプリンタエンジン１０３から出力された複数の紙等記録媒体をまとめてステープル（ホッチキス）処理することが可能となっている。１０５はネットワーク（イーサーネット）インターフェースであり、コントローラ１０１に対して同インターフェースを通した双方向通信を提供している。
【００２７】
１０６はユーザーインターフェースであり、ＬＣＤディスプレイとキーボードから構成されており、コントローラ１０１からの情報表示を行うとともにユーザからの指示をコントローラ１０１に伝える。また、ユーザーインターフェース１０６を通して後述するスーパーバイザに問い合わせることにより、提供している機能概要（どの様なジョブが発行できるか等）や、ジョブ発行に使用するサブアドレス、各機能の詳細情報（最大コピー部数、フィニシャーの種類サポートしているＰＤＬ、指定できる出力ＢＩＮの数等）を取得可能になる。ここで、コントローラ１０１への動作指示は、ユーザーインターフェース１０６のみが行うことが可能であると限るものではなく、ネットワーク（Ethernet, ＴＣＰ／ＩＰ）等のインターフェースを介して外部機器からも全ての機能を使用可能である。
【００２８】
図２は上述した本発明に係るＭＦＰを含む画像出力システムの構成を示すブロック図である。２０１〜２０６は、図１に示す構成を有するＭＦＰであり、ＭＦＰ２０１はネットワークインターフェースケーブル２０７によってＭＦＰ２０２〜ＭＦＰ２０６にそれぞれ接続されている。ＭＦＰ２０１〜ＭＦＰ２０６はＩＰアドレス、ポート番号を指定することによりネットワーク接続し、相互にＩＰパケットデータを出力することができる。
【００２９】
後述の分散処理の例での説明するように、本実施の形態では、ＭＦＰ２０１は画像を読み取り、ネットワークを介した分散処理の指示及び画像出力を行うローカルプリンタであるとする。また、ＭＦＰ２０２〜ＭＦＰ２０６は、それぞれネットワークを介して指示された分散処理要求に応じて画像出力を行うリモートプリンタ１〜リモートプリンタ５であるとする。
【００３０】
図３は、コントローラ１０１のハードウエア構成を示すブロック図である。コントローラ１０１の内部では、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ＤＩＳＫ３０４がバス３０５に接続されている。また、バス３０５には、前述したスキャナエンジン１０２、レーザービームプリンタエンジン１０３、フィニッシャー１０４、ネットワークインターフェース１０５、ユーザーインターフェース１０６を構成するＬＣＤディスプレイ３０６及びキーボード３０７が接続されている。
【００３１】
ＣＰＵ３０１は、コントローラ１０１、スキャナエンジン１０２、レーザービームプリンタエンジン１０３等を制御し、ＣＰＵ３０１がこれらのエンジンに対してデータの読み書きを行うことによりプリント・スキャンなどのエンジン動作および各種ステータス取得を行う。ＲＡＭ３０２は、ＣＰＵ３０１のワークエリアとして利用され、ＭＦＰで実行されるジョブ情報や、画像データ等が一時的に格納される。ＲＯＭ３０３は、ＭＦＰの動作プログラム等が記憶されており、必要に応じて読み出され実行される。
【００３２】
ＤＩＳＫ３０４は、ハードディスクやフロッピーディスク等の補助記憶装置であり、各種プログラム及びデータが記憶されており、これらは必要に応じて順次ＲＡＭ３０２に読み出されてＣＰＵ３０１で実行される。本実施の形態において、ＤＩＳＫ３０４は、コントローラ１０１に内蔵されているが、これに限られたものではなく、着脱可能なものでも良い。更に、プログラムは、ネットワークインタフェース１０５を介して他のＭＦＰからダウンロードされてＤＩＳＫ３０４に記憶される構成でも良い。
【００３３】
ＬＣＤディスプレイ３０６は、ＭＦＰのステータスや、分散処理を行う際の分散処理可能なＭＦＰ情報の表示等を行う。ＬＣＤディスプレイはＣＰＵ３０１がＬＣＤディスプレイ３０６にデータを書き込むことにより表示を行う。キーボード３０７は、ＭＦＰを操作する際に様々な命令やパラメータを入力するために用いるものであり、ＬＣＤディスプレイ３０６上のタッチパネルとして実現されても、別々に設けられてもよい。ＣＰＵ３０１がキーボード３０７からデータを読み出すことにより、ユーザからの指示をコントローラ１０１に入力する。
【００３４】
なお、スキャナエンジン１０２、レーザービームプリンタエンジン１０３、フィニッシャー１０４は、ＭＦＰの内部ではなく、ネットワーク上にそれぞれ単体の周辺機器として存在させ、それをＭＦＰのコントローラ１０１が制御しても良い。
【００３５】
図４は、コントローラ１０１内のＤＩＳＫ３０４のソフトウエア（制御プログラム）構成を示すブロック図である。これらのソフトウエアはＣＰＵ３０１が実行する。図４において、実線がデータ及び制御を示し、点線が設定及び能力の取得を示す。
【００３６】
４０１はユーザーインターフェースドライバであり、ＬＣＤディスプレイ３０６およびキーボード３０７の制御を行う。４０３はユーザインターフェースマネージャ（制御プログラム）であり、ＵＩドライバ４０１から入力されたユーザからの入力情報を解釈して、コマンドパケットを生成しインタープリタ（制御プログラム）４０５に出力する。なお、コマンドパケット構造についての詳細は、図１８を用いて後述する。
【００３７】
４０２はネットワークインターフェースドライバ（制御プログラム）であり、ネットワークインターフェース１０５の制御を行い、ネットワークパケットの物理層での処理、つまり物理パケットからトランスポートパケットの抽出、およびトランスポートパケットから物理パケットの生成を行う。４０４はＴＣＰ／ＩＰ・ＵＤＰ／ＩＰ処理モジュールであり、ネットワークインターフェースドライバ４０２から出力されたトランスポートパケットの処理をおこないコマンドパケットを抽出してインタープリタ４０５に出力する。また、インタープリタ４０５から出力されたコマンドパケットからトランスポートパケットの生成を行い、ネットワークインターフェースドライバ４０２に出力する。
【００３８】
４０５はインタープリタであり、コマンドパケットの送受信を行い、各接続形態のジョブサービスの提供を制御する。４０６は、後述する図５のスーパーバイザ属性表、図９のサービスＩＤ（ＳＩＤ）：タスクタイプ対応表、で示す各種データをＤＩＳＫ３０４に保持し、コントローラ１０１の動作を統括管理するスーパーバイザ（統括管理マネージャ）である。スーパーバイザ４０６は、自分自身が保持する各種データ、各マネージャ（プリントジョブマネージャ４０９、スキャンジョブマネージャ４０８およびコピージョブマネージャ４１０）が保持する各種データ、および各コントローラ（プリンタコントローラ４１２、スキャナコントローラ４１１）が保持する各種データを、入力されたコマンドの指示に従って参照・変更する。
【００３９】
４０７はディスパッチャであり、はプリントジョブマネージャ（制御プログラム）４０９、コピージョブマネージャ（制御プログラム）４１０、 スキャナジョブマネージャ（制御プログラム）４０８へコマンドパケットの配布を行う。
【００４０】
４０８はスキャナジョブマネージャであり、スキャナ資源の管理およびジョブの実行を制御する。４０９はプリントジョブマネージャであり、プリンタ資源の管理及びジョブの実行を制御する。プリントジョブマネージャ４０９は、プリンタコントローラ４１２およびそれに接続されたプリントエンジンが決められており、どのプリンタコントローラ（制御プログラム）を使用するかは、図１０（プリントマネージャ属性表）の属性ＩＤ２００１で示されるデータに記述されている。なお、本実施の形態ではコントローラは一つだけである。プリントジョブマネージャ４０９は、入力されたプリントジョブ、およびこれらがプリンタコントローラ４１２でどのようなジョブとして実行されているかを表わす、図１１（ジョブ表）、図１２（ジョブ依頼表）に示すようなデータをＤＩＳＫ３０４に保持している。プリンタコントローラ４１２は対応するプリンタエンジンの機能・状態および性能を表す、図１５（属性表）で示す様なデータをＤＩＳＫ３０４に有している。コントローラは入力されたプリントジョブの状態を表わす図１６（ジョブキュー表）に示すようなデータをＤＩＳＫ３０４に保持している。
【００４１】
４１０は、コピージョブマネージャでありコピー資源およびコピージョブの管理を行う。コピージョブマネージャは図１４（コピーマネージャ属性表）で示される様なデータをそれぞれＤＩＳＫ３０４に有している。コピージョブマネージャ４１０は、コピージョブを処理するために使用するプリンタコントローラ、スキャナコントローラおよびそれに接続されたプリントエンジン、スキャナエンジンが決められており、どのプリンタコントローラとスキャナコントローラを使用するかは図１４（コピーマネージャ属性表）で示されるデータ（属性ＩＤ２００１）に記述されている。なお、本実施の形態ではコントローラは一つだけである。コピージョブマネージャ４１０は入力されたコピージョブ、およびこれらがどのプリンタコントローラ、スキャナコントローラでどのようなジョブとして実行されているかを表わす、図１１（ジョブ表）や図１２（ジョブ依頼表）に示すようなデータをＤＩＳＫ３０４に保持している。
【００４２】
４１１はスキャナコントローラであり、スキャナジョブマネージャからの要求に応じてスキャナ機器を動作させるためのコントローラである。４１２はプリンタコントローラであり、プリンタジョブマネージャからの要求に応じてプリンタ機器を動作させるためのコントローラである。
【００４３】
図５は、スーパーバイザ４０６がＤＩＳＫ３０４に保持し管理するデータを表わすスーパーバイザ属性表である。属性表はＭＦＰ２０１の機能概要や接続情報およびセキュリティ情報などを表わすものである。属性表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードは属性ＩＤ５０１、型ＩＤ５０２および値５０３から構成されており、スーパーバイザの持つ属性を表わす。属性ＩＤ５０１は情報の種類を表わすものであり、これによって値５０３が示しているものがどのような意味を持つのかが示されている。属性ＩＤ５０１は機器内部でユニークであり、同じ属性ＩＤを持つものは、同じ情報の種類を表わしている。型ＩＤ５０２は値５０３がどのようなデータ型を持っているのかを示すものであり、値５０３の解釈を行う際に使用されるものである。型ＩＤは属性ＩＤによって一意に決められるものであり機器内部でユニークに定義されている。本実施の形態においては属性表の中に属性ＩＤ５０１と型ＩＤ５０２の両方が入れられているが、属性ＩＤと型ＩＤとの対応表を属性表とは別のデータとして保持し、属性表の中には属性ＩＤと値のみを入れる様に実施してもよい。値５０３は、属性ＩＤ５０１に従った属性値を示す。
【００４４】
図６は、図５（スーパーバイザ属性表）の属性表の属性ＩＤ５０１と型ＩＤ５０２の詳細を示す図である。
【００４５】
図７はサブアドレス：サービスＩＤ対応表である。この表は図５（スーパーバイザ属性表）で示される属性表の属性ＩＤ“１００１”（サブアドレス：ＳＩＤ対応表）の属性値としてＤＩＳＫ３０４に保持されている。サブアドレス：ＳＩＤ対応表はどのサブアドレスにコマンドパケットを投入すればどのサービス（例えばプリント）が得られるかを示すものである。また、この表の有効フラグ等に従ってインタープリタ４０５は各接続形態ごとにジョブサービスの提供をおこなうかどうかを制御する。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードは接続形式ＩＤ７０１、サブアドレス７０２、サービスＩＤ７０３、有効フラグ７０４、有効ユーザのリスト７０５および無効ユーザのリスト７０６から構成されている。接続形式ＩＤ７０１は接続形態を表す識別子を示している。
【００４６】
図８は接続形式ＩＤの意味を示す図であり、“０”はInternal（ユーザインターフェース）、“１”はＴＣＰ／ＩＰ（ネットワーク）、“２”、“３”はその他のＩＥＥＥ１２８４.４（ＩＥＥＥ１２８４）、ＳＢＰ−２（ＩＥＥＥ１３９４）などをあらわしている。
【００４７】
図９はサービスＩＤ：タスクタイプ対応表である。この表は図５（スーパーバイザ属性表）で示される属性表の属性ＩＤ“１００２”（ＳＩＤ : Ｔａｓｋ Ｔｙｐｅ表）の属性値としてＤＩＳＫ３０４に保持されている。サービスＩＤ：タスクタイプ表はサービスＩＤがどのような種類のサービスを提供するのかを表すものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００４８】
各レコードはサービスＩＤ“９０１”およびタスクタイプ“９０２”から構成されている。タスクタイプ“９０２”はどのような種類のサービスであるかを示している。“９０３”はタスクタイプ“９０２”の値の意味を示す図である。“０”はスーパーバイザが行うサービス、“１”はプリント、“２”はスキャン、“３”はコピーを表している。サービスＩＤはサービスを提供するマネージャと一対一で対応している。このため、サービスＩＤは各マネージャが有する機能表のアクセスにも使用される。
【００４９】
機能表はプリンタコントローラおよびスキャナコントローラも有しているために、これらにアクセスするためにプリンタコントローラおよびスキャナコントローラにもサービスＩＤに相当するコントローラＩＤ（ＣＩＤ）を割り当てており、コントローラＩＤがどのような種類のコントローラであるかをサービスＩＤ：タスクタイプ対応表で管理している。タスクタイプ“２０１”はプリンタコントローラ、“２０２”はスキャナコントローラを表している。コントローラＩＤは図４（ソフトウエアブロック図）で示された各コントローラと一対一で対応している。
【００５０】
図１０は各プリントジョブマネージャ（制御プログラム）４０９がＤＩＳＫ３０４に保持するデータ（属性表）を表わすプリントマネージャ属性表である。この表は、プリントジョブマネージャが扱うことが可能なプリントジョブの性能・機能を表わすものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００５１】
図１１はプリントジョブマネージャが保持するデータを示すジョブ表であり、プリントマネージャが管理するジョブの実体を保持するファイル名とジョブＩＤとの対応を示している。この表は図１０（プリントマネージャ属性表）で示される属性表の属性ＩＤ“２００３”（ジョブ表）の属性値としてＲＡＭ３０２に保持されている。プリントジョブマネージャがＲＡＭ３０２上のジョブ表を動的に変更し必要に応じてＤＩＳＫ３０４に保存する。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードはジョブＩＤ１１０１およびジョブの実体が保持されているファイル名１１０２から構成されている。ジョブＩＤ１１０１はプリントジョブマネージャにジョブが投入されたときに、プリントジョブマネージャが割り当てたジョブに対する識別子である。ジョブのファイル名１１０２は、ジョブの実体が保持されているファイルの名前である。ジョブの実体は図２０（ジョブデータの構造）に示す様に、属性ＩＤ、属性値サイズおよび属性値の組を複数持つことにより構成されている。
【００５２】
図１２（ジョブ依頼表） はプリントジョブマネージャが保持するジョブ依頼表を表わす図であり、プリントマネージャが管理するジョブとコントローラによって実行されるジョブとの関係を示す。この表は図１０（プリントマネージャ属性表）で示される属性表の属性ＩＤ“２００４”（ジョブ依頼表）の属性値としてＤＩＳＫ３０４に保持されている。ジョブ依頼表は、プリントジョブマネージャが管理するジョブがどのコントローラでどのジョブとして実行されているかを表わすものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードはジョブＩＤ１２０１、コントローラＩＤ１２０２およびコントローラの中で割り当てられているジョブＩＤ１２０３から構成されている。ジョブＩＤ１２０１はプリントジョブマネージャにジョブが投入されたときに、プリントジョブマネージャが割り当てたジョブに対する識別子であり、ジョブ表（図１１）にあるジョブＩＤ１１０１と対応している。コントローラＩＤ１２０２はジョブが実行されているコントローラのＩＤを表わす。ジョブＩＤ１２０３は、ジョブを実行するコントローラが割り当てたジョブの識別子である。
【００５３】
図１３はスキャンジョブマネージャ４０８が保持するデータであるスキャンジョブマネージャ属性表である。この表は、スキャンジョブマネージャが扱うことが可能なスキャンジョブの性能・機能を表わすものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００５４】
図１４はコピージョブマネージャが保持するデータを表わすコピージョブマネージャ属性表である。この表は、コピージョブマネージャが扱うことが可能なコピージョブの性能・機能を表わすものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。図１５はプリンタコントローラ４１２がＤＩＳＫ３０４に保持するデータ（属性表）を表わすプリンタコントローラ属性表である。この表は、プリンタコントローラが制御しているプリントエンジンおよびフィニッシャーの性能・機能を表わすものであり、性能・機能に関する値は書き換えが出来ない。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００５５】
図１６はプリンタコントローラ４１２が保持するジョブキューを表わすジョブキュー表である。この表は図１５（プリンタコントローラ属性表）で示される属性表の属性ＩＤ５００５（ジョブキュー表）の属性値としてＤＩＳＫ３０４に保持されている。ジョブキュー表は、プリンタコントローラが管理・実行するジョブがどの様な状態にあるのかを表わすものである。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードはジョブＩＤ１６０１、ジョブステータス１６０２およびジョブの実体が保持されているファイル名１６０３から構成されている。ジョブＩＤ１６０１はプリンタコントローラにジョブが投入されたときに、プリンタコントローラが割り当てたジョブに対する識別子である。
【００５６】
１６０４は図１６（ジョブキュー表）のジョブステータス１６０２（ジョブの状態）を表わす図である。“１”はジョブの終了処理中、“２”はジョブがエンジンで実行中、“３”は実行待ち状態であることを示す。ジョブのファイル名１６０３は、ジョブの実体が保持されているファイルの名前である。ジョブの実体は図２０（ジョブデータの構造）に示す様に、属性ＩＤ、属性値サイズおよび属性値の組を複数持つことにより構成されている。
【００５７】
図１７はスキャナコントローラ４１１がＤＩＳＫ３０４に保持するデータ表わすスキャナコントローラ属性表である。この表は、スキャナコントローラが制御しているスキャナエンジン性能・機能を表わすものであり、性能・機能に関する値は書き換えが出来ない。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００５８】
図１８は、ユーザインターフェースマネージャ４０３、ＴＣＰ／ＩＰ・ＵＤＰ／ＩＰ処理モジュール４０４からインタープリタ４０５に対して出力されるコマンドパケットの構造を表わす図である。また、このコマンドパケットはインタープリタ４０５からユーザインターフェースマネージャ４０３、ＴＣＰ／ＩＰ・ＵＤＰ／ＩＰ処理モジュール４０４に出力される返信パケットおよびイベントパケットの構造も表わしている。パケットは、パケットの先頭を表わすパケットヘッダ１８０１、パケットの構造バージョンを表わすパケットバージョン１８０２、パケットの性格を表わすフラグ１８０３、どんな種類の操作を行うのかを表わすオペレーションコード１８０４、クライアント（ＰＣ）が返信パケットを認識するために使用するブロック番号１８０５、パラメータ１８１０の長さ表わすパラメータ長１８０６、ユーザの認証に使用されるユーザＩＤ１８０７とパスワード１８０８、返信パケットにのみ使用され返信の一般的な状態を表わすステータスコード１８０９およびオペレーションコード１８０５毎に決められたフォーマットを持つパラメータ１８１０から構成されている。
【００５９】
パラメータ１８１０には、アクセス対象サービスＩＤ、アクセス対象属性ＩＤ等を含む。フラグ１８０４には、パケットがコマンドパケット・イベントパケットであるかまたは返信パケットであるかを表わすもの１８１１、およびパラメータ１８１０に送信すべきデータが入りきらず、次に送信されるパケットにも続きのデータが入っていることを示す連続フラグ１８１２とがある。
【００６０】
図１９にＭＦＰ２０１におけるコマンドパケットの処理フローを示す。
まず、ネットワークインターフェースドライバ４０２から入力されたデータをＴＣＰ／ＩＰ・ＵＤＰ／ＩＰ処理モジュール４０４が処理し、図１８（コマンドパケット構造）に示すコマンドパケットを抽出する。抽出されたコマンドパケットは、データが入力された接続形式の情報（接続形式ＩＤ）およびサブアドレスと共にＴＣＰ／ＩＰ・ＵＤＰ／ＩＰ処理モジュール４０２からインタープリタ４０５に入力される（Ｓ１９０１）。インタープリタ４０５はスーパーバイザ４１０が保持する図９（サービスＩＤ：タスクタイプ対応表）を参照し、入力された接続形式ＩＤとサブアドレスとを比較することにより、サービスＩＤを得ると共にデータ入力が有効かどうかをチェックする（Ｓ１９０２）。
【００６１】
ステップＳ１９０２におけるチェックの結果、データ入力が有効でない場合（Ｎｏ）、コマンドパケットを破棄して終了する（Ｓ１９０４）。ステップＳ１９０２におけるチェックの結果、データ入力が有効な場合（Ｙｅｓ）、コマンドパケットの解析を図１８（コマンドパケット構造）のパケット構造に基づいて行う。パケットの解析の結果、図１８（コマンドパケット構造）で示される各項目は、それぞれ独立した別々の情報として出力され（Ｓ１９０３）、サービスＩＤを基にセキュリティレベルを取得する（Ｓ１９０５）。
【００６２】
次に、ステップＳ１９０５において取得したセキュリティレベルが“０”または“１”であるかを調べる（Ｓ１９０６）。ステップＳ１９０６において、セキュリティレベルが“０”または“１”の場合（Ｙｅｓ）、セキュリティレベルのチェックを行わずにディスパッチャ４０７に入力し、ステップＳ１９１２以降の処理が行われる。ステップＳ１９０６において、セキュリティレベルが“０”または“１”以外の時は（Ｎｏ）、セキュリティレベルが“２”であるかどうかを調べる（Ｓ１９０７）。
【００６３】
ステップＳ１９０７において、セキュリティレベルが“２”の場合（Ｙｅｓ）、コマンドパケットに含まれていたユーザＩＤが存在するかどうかをチェックする（Ｓ１９０９）。ステップＳ１９０９において、ユーザＩＤが含まれていない場合（Ｎｏ）、権限がないものとしてエラー返信情報を生成し、インタープリタ４０５によってパケット（ステータスコード“１９０９”にエラー情報を埋め込む）を生成しコマンドパケット送信元に送信し（Ｓ１９１０）、処理を終了する。ステップＳ１９０９において、ユーザＩＤが含まれている場合（Ｙｅｓ）、ディスパッチャ４０７に入力し、ステップＳ１９１２以降の処理を行う。送信元アドレスはトランスポートパケット（Header）から抽出される。
【００６４】
ステップＳ１９０７において、セキュリティレベルが“２”以外の場合（Ｎｏ）、コマンドパケットに含まれていたユーザＩＤ：パスワードの対が存在するかどうかをチェックする（Ｓ１９０８）。
【００６５】
ステップＳ１９０８において、ユーザＩＤ：パスワードの対が含まれていない場合（Ｎｏ）、権限がないものとしてエラー返信情報を生成し、インタープリタ４０５によってパケットを生成しコマンドパケット送信元に送信し（Ｓ１９１１）、処理を終了する。ステップＳ１９０８において、ユーザＩＤが含まれている場合、ディスパッチャ４０７に入力し、ステップＳ１９１２以降の処理を行う。ディスパッチャ４０７に入力後、ステップＳ１９１２において、ディスパッチャ４０７は、サービスＩＤを元に配布先のマネージャを決定し、決定されたマネージャに対してデータが入力された接続形式ＩＤとサブアドレス、送信元のアドレス、オペレーションコード、ブロック番号、フラグ情報、ユーザＩＤ、パスワード、パラメータ長およびパラメータを配布する。そして、各マネージャは、これらの情報を処理し（Ｓ１９１３）、パケット処理が終了する。
【００６６】
図２０は、各マネージャが管理するジョブの実体を保持するファイル（ジョブファイル）の内部構造、つまりジョブデータの構造を示す図である。ジョブファイルのファイル名は図１１（ジョブ表）のファイル名１１０２で保持されている。また、このファイルの構造は、各コントローラが管理するジョブの実体を保持するファイルの内部構造も示している。このファイル名は図１６（ジョブキュー表）のファイル名１６０３で保持されている。ジョブの実体は、属性ＩＤ２００１、属性値サイズ２００２および属性値２００３の組を複数連続して持つことによって表されている。図２０においては、２００４〜２００６，２００７〜２００９，２０１０〜２０１２がそれぞれ組となっている。ジョブがデータを含む場合は、２００７、２００８、２００９で示されるように属性ＩＤとしてデータを表す値、属性値としてファイル名のサイズ、属性値としてドキュメントデータを保持しているファイルのファイル名（データファイル２０１３）を保持している。属性の中には、データの送信方法、データのフォーマット（使用されているＰＤＬなど）、イベントの種類とそのイベントが発生した時にイベント通知を送信する宛先などの情報、およびジョブの種類に依存した情報（プリントジョブの場合にはコピー／プリント部数、コピー／プリントページ数、フィニッシング処理指定等）が含まれる。
【００６７】
図２１（ジョブ投入処理１）と図２２（ジョブ投入処理２）に、各マネージャにおけるジョブスクリプトの処理フローを示す。ジョブスクリプトは、図１８（コマンドパケット構造）で示されるコマンドパケットの一続きによって構成されており、“Job Start”オペレーションコードで始まり、“Job End”オペレーションコードで終わるものとして規定されている。ジョブスクリプトを構成する各パケットは、図９（サービスＩＤ：タスクタイプ対応表）で示されるサブアドレス：サービスＩＤ対応表によって示されるサブアドレスに投入され、図１９（パケット処理）で示されるコマンドパケット処理フローによって各マネージャに配布される。
【００６８】
図２１、図２２で示される処理フローは、各マネージャに配布されたコマンドパケットを処理して図２０（ジョブデータの構造）で示されるジョブファイルおよびデータファイルを作成する場合の処理フローである。
【００６９】
まず、各マネージャに配布されたオペレーションは、オペレーションコードがサポートされているオペレーションコードであるかどうかをチェックする。チェックは、各マネージャが属性表内に保持している「サポートしているオペレーション」属性（属性ＩＤ“１０１”）の値と比較することにより行う（Ｓ２１０１）。ステップＳ２１０１において、チェックの結果、サポート外のオペレーションであった場合（Ｎｏ）、エラー返信パケットを作成し、これを送信して終了する（Ｓ２１１６）。ステップ２１０１において、オペレーションコードがサポートされているものであったならば（Ｙｅｓ）、現在ジョブ投入中であるかどうかをチェックする。チェックは、ジョブ投入中フラグ（ステップＳ２１０６で設定されるフラグ）が真であるかどうかを検査することにより行う（Ｓ２１０２）。ステップＳ２１０２において、検査の結果、ジョブ投入中フラグが偽であり、ジョブ投入中でなければ（Ｎｏ）、オペレーションコードが“Job Start”であるかどうかをチェックする（Ｓ２１０４）。ステップＳ２１０４において、チェックの結果、オペレーションコードが“Job Start”でない場合（Ｎｏ）、エラー返信パケットを作成し、これを送信して終了する（Ｓ２１１６）。ステップＳ２１０４において、チェックの結果、オペレーションコードが“Job Start”ならば（Ｙｅｓ）、ジョブＩＤを割り当てて図１１（ジョブ表）に項目を追加し、ジョブファイルを新規作成する（Ｓ２１０５）。その後、ジョブ投入中フラグを真に設定してコマンドパケットの処理を終了する（Ｓ２１０６）。
【００７０】
ステップＳ２１０２のチェックにおいて、ジョブ投入中フラグが真の場合（Ｙｅｓ）、オペレーションコードが“Send”であるかどうかをチェックする（Ｓ２１０３）。オペレーションコード“Send”は、パラメータにジョブを構成するデータが含まれていることをマネージャに指示するものである。
【００７１】
ステップＳ２１０３において、オペレーションコードが“Send”の場合（Ｙｅｓ）、コマンドと共に入力された継続フラグをチェックし（Ｓ２１０７）、継続フラグが真の場合（Ｙｅｓ）、既に存在しているデータファイル２０１３に新たに領域を追加して（Ｓ２１０８）、 その領域にパラメータを書き込み終了する（Ｓ２１０９）。
【００７２】
ステップＳ２１０７において、継続フラグが偽の場合（Ｎｏ）、データファイル２０１３を新規作成し（Ｓ２１１０）、パラメータをデータファイルに書き込む（Ｓ２１１１）。そして、ジョブファイルに領域を追加し（Ｓ２１１２）、データを表す属性ＩＤ２００７、ファイル名のサイズ２００８および新規作成したファイルのファイル名２００９をこの領域に書き込み、終了する（Ｓ２１１３）。
【００７３】
ステップＳ２１０３において、オペレーションコードが“Send”でない場合（Ｎｏ）、オペレーションコードが“Job End”であるかどうかをチェックする（Ｓ２１１４）。ステップＳ２１０３においてオペレーションコードが“Job End”である場合は、ジョブの生成終了処理を行い終了する（Ｓ２１１５）。ジョブの生成終了処理には、ジョブファイルのクローズなどの処理を含み、マネージャの種類（プリントジョブ、スキャンジョブ、コピージョブ）によって異なる。
【００７４】
ステップＳ２１１４において、オペレーションコードが“Job End”でない場合（Ｎｏ）、オペレーションコードが“Set Job”であるかどうかをチェックする（Ｓ２１１７）。オペレーションコード“Set Job”は、パラメータにジョブを構成する属性（属性ＩＤと属性値）が含まれていることをマネージャに指示するものである。ステップＳ２１１７において、ジョブのオペレーションコードが“Set Job”である場合（Ｙｅｓ）、ジョブファイルに領域を追加し（Ｓ２１１８）、属性ＩＤ、属性値サイズおよび属性値を追加した領域に書き込み終了する（Ｓ２１１９）。
【００７５】
ステップＳ２１１７において、オペレーションコードが“Set Job”でない場合（Ｎｏ）、オペレーションコードが“Send Request”であるかどうかをチェックする（Ｓ２１２０）。オペレーションコードが“Send Request” は、データの送信をマネージャに指示するものであり、パラメータとしてデータの送信方法が含まれている。
【００７６】
ステップＳ２１２０において、オペレーションコードが“Send Request”である場合（Ｙｅｓ）、各マネージャに依存した処理を行い終了する（Ｓ２１２１）。ステップＳ２１２１における処理は、スキャンジョブマネージャの場合は、ジョブファイルに保持されている属性値に従った原稿のスキャンをスキャナコントローラに指示し、得られたデータを指定された方法で送信することなどが含まれる。ステップＳ２１２０において、オペレーションコードが“Send Request”でない場合（Ｙｅｓ）、その他のオペレーションコードの処理を行い終了する（Ｓ２１２２）。
【００７７】
図２３は、図４（ソフトウエアブロック図）で示したプリントジョブマネージャ４０９におけるジョブの処理フローを表したものである。プリントジョブマネージャ４０９はジョブ表を常に監視するタスクを動作させている。プリントジョブマネージャ４０９が図２１（ジョブ投入処理１）と図２２（ジョブ投入処理２）に示すジョブスクリプトの処理フローを行い、“Job Start”オペレーションコードが入力されることによりジョブ表に新たな項目が追加されたことが検知されると、この監視タスクは図２３（プリントマネージャのジョブ処理）で示す処理フローを持つタスクを動作させて、入力されたジョブの処理を行わせる。
【００７８】
まず、データ（ドキュメントデータ）の表現に使用されている画像（ＰＤＬやビットマップ）の種類を示す属性がジョブファイルの中に追加されるのを待ち、画像の種類が確定されると使用する画像展開が可能となるまで待つ（Ｓ２３０１）。ステップＳ２３０１で画像展開が可能となると（Ｙｅｓ）、データ受信方法を示す属性がジョブファイルの中に追加されるのを待つ（Ｓ２３０２）。
【００７９】
ステップＳ２３０２において、データ受信方法を示す属性がジョブファイルの中に追加され、受信方法が確定すると（Ｙｅｓ）、データの受信方法をチェックする（Ｓ２３０３）。ステップＳ２３０３において、データの受信方法がＭＦＰ２０１の外部（例えば、ネットワーク上のクライアントＰＣ等）にアクセスする方法である場合は、指定されたデータの読込みを行うタスクを生成して外部にアクセスする（Ｓ２３０４）。そして、データの読込みが開始されるのを待つ（Ｓ２３０５）。ステップＳ２３０３において、データがジョブ内に含まれる場合（図２１、２２において“Send”オペレーションコードによるデータ受信の場合）、データの受信が開始されるのを待つ（Ｓ２３０６）。ステップＳ２３０５またはＳ２３０６において、データの読込みまたは受信が開始されると（Ｙｅｓ）、データを画像展開部にデータ投入を開始する（Ｓ２３０７）。その後、画像展開部からイメージデータを受け取る（Ｓ２３０８）。そして、使用するプリンタコントローラを決定し（Ｓ２３０９）、プリンタコントローラにイメージデータを投入しプリンタコントローラからジョブＩＤを受け取る（Ｓ２３１０）。図１２（ジョブ依頼表）に、ジョブＩＤとプリンタコントローラＩＤおよびプリンタコントローラから受け取ったジョブＩＤをプリンタコントローラ毎に別々のレコードとして記録する（Ｓ２３１１）。
【００８０】
プリントジョブマネージャは各プリンタコントローラでジョブ終了を待ち（Ｓ２３１２）、ジョブ終了がプリンタコントローラから通知されると、ジョブ依頼表から対応するレコードを削除する（Ｓ２３１３）。
【００８１】
そして、プリンタコントローラに依頼した全てのジョブが終了したかどうかをチェックし（Ｓ２３１４）、まだプリンタコントローラ内でジョブが残っている場合（Ｎｏ）、ステップＳ２３１２に戻りプリンタコントローラでのジョブ終了を待つ。
【００８２】
ステップＳ２３１４において、依頼した全てのプリンタコントローラでのジョブが終了した場合（Ｙｅｓ）、図１１（ジョブ表）から、ジョブのレコードを削除する（Ｓ２３１５）。この時、後述する図２７（イベント送信）で示されるイベント送信処理を行う。そして、ジョブファイルの中を検査し（Ｓ２３１６）、ジョブ終了に関するイベント送信を指示する属性値があるかどうかをチェックする（Ｓ２３１７）。
【００８３】
ステップＳ２３１７において、もし属性値がなければ処理は終了するが（Ｎｏ）、ある場合は（Ｙｅｓ）、属性値を読み出すことにより送信方法と送信宛先を取得する（Ｓ２３１８）。そして、イベントの送信パケットを作成し、指定された送信方法と送信宛先に対してイベントを送信する（Ｓ２３１９）。さらに、ジョブファイル・データファイルの削除などの終了処理を行い、ジョブの処理は終了する（Ｓ２３２０）。
【００８４】
図２４は、スキャンジョブマネージャ４０８におけるジョブの処理フローを表したものである。スキャンジョブマネージャ４０８はジョブの投入が終了してからジョブの処理を開始する。このため、スキャンジョブマネージャ４０８は図２１（ジョブ投入処理１）と図２２（ジョブ投入処理２）におけるステップＳ２１１５のジョブの終了処理として図２４（スキャンマネージャのジョブ処理）のジョブ処理を開始する。
【００８５】
まず、スキャナコントローラ４１１にジョブを投入しジョブＩＤを受け取る（Ｓ２４０１）。次に、図１２（ジョブ依頼表）に、ジョブＩＤとスキャナコントローラＩＤおよびスキャナコントローラ４１１から受け取ったジョブＩＤを記録する（Ｓ２４０２）。そして、スキャナコントローラ４１１からのジョブ終了を待ち（Ｓ２４０３）、ジョブ終了がスキャナコントローラ４１１から通知されると、スキャンしたイメージデータをスキャナコントローラ４１１から受け取り、図１１（ジョブ表）からジョブのレコードを削除する。この時、図２７（イベント送信）で示されるイベント送信処理を行う（Ｓ２４０４）。そして、ジョブ中の属性の中からデータの送信方法を指示しているものを検索する（Ｓ２４０５）。次に、データの受信方法を判断し（Ｓ２４０６）、ステップ２４０６において、データ送信方法がデータをスクリプトとして送信する指示であった場合は、データを他の属性情報と共にスクリプトとして送信する（Ｓ２４０８）。機器からのデータ送信処理の詳細は、図２８（属性表のアクセス）に示されている。
【００８６】
ステップＳ２４０６において、データを参照として送信する指示であった場合は、データを機器内部に保存し、これに対する参照情報を他の属性情報と共にスクリプトとして送信する（Ｓ２４０７）。次に、ジョブファイルの中を検査し（Ｓ２４１０）、ジョブ終了に関するイベント送信を指示する属性値があるかどうかをチェックする（Ｓ２４１１）。
【００８７】
ステップＳ２４１１において、属性値がもしなければ処理は終了するが（Ｎｏ）、ある場合は（Ｙｅｓ）、属性値を読み出すことにより送信方法と送信宛先を取得する（Ｓ２４１２）。そして、イベントの送信パケットを作成し、指定された送信方法と送信宛先に対してイベントを送信する（Ｓ２４１３）。さらに、ジョブファイル・データファイルの削除などの終了処理を行い、ジョブの処理は終了する（Ｓ２４１４）。
【００８８】
図２５は、コピージョブマネージャ４１０におけるジョブの処理フローを表したものである。コピージョブマネージャ４１０はジョブの投入が終了してからジョブの処理を開始する。このため、コピージョブマネージャ４１０は図２１（ジョブ投入処理１）におけるステップＳ２１１５のジョブの終了処理として図２５（コピーマネージャのジョブ処理）のジョブ処理を開始する。
【００８９】
まず、スキャナコントローラ４１１にジョブを投入しジョブＩＤを受け取る（Ｓ２５０１）。次に、図１２（ジョブ依頼表）に、ジョブＩＤとスキャナコントローラＩＤおよびスキャナコントローラ４１１から受け取ったジョブＩＤを記録する（Ｓ２５０２）。
【００９０】
そして、スキャナコントローラ４１１からのジョブ終了を待ち（Ｓ２５０３）、ジョブ終了がスキャナコントローラ４１１から通知されると、スキャンしたイメージデータをスキャナコントローラ４１１から受け取り、図１１（ジョブ表）から、ジョブのレコードを削除する（Ｓ２５０４）。次に、使用するプリンタコントローラを決定し（Ｓ２５０５）、プリンタコントローラが決定すると、各プリンタコントローラにスキャナコントローラ４１１から受け取ったイメージデータを投入しプリンタコントローラからジョブＩＤを受け取る（Ｓ２５０６）。さらに、図１２（ジョブ依頼表）に、ジョブＩＤとプリンタコントローラＩＤおよびプリンタコントローラから受け取ったジョブＩＤをプリンタコントローラ毎に別々のレコードとして記録する（Ｓ２５０７）。
【００９１】
その後、プリンタコントローラでのジョブ終了を待ち（Ｓ２５０８）、ジョブ終了がプリンタコントローラから通知されると、ジョブ依頼表から終了したジョブに対応するレコードを削除する（Ｓ２５０９）。
【００９２】
そして、プリンタコントローラに依頼した全てのジョブが終了したかどうかをチェックし（Ｓ２５１０）、ステップＳ２５１０において、まだプリンタコントローラ内でジョブが残っている場合（Ｎｏ）、ステップＳ２５０８に戻りプリンタコントローラでのジョブ終了を待つ。ステップＳ２５１０において、依頼した全てのプリンタコントローラでのジョブが終了した場合（Ｙｅｓ）、図１１（ジョブ表）から、ジョブのレコードを削除する。この時、図２７（イベント送信）で示されるイベント送信処理を行う（Ｓ２５１１）。次に、ジョブファイルの中を検査し（Ｓ２５１２）、ジョブ終了に関するイベント送信を指示する属性値があるかどうかをチェックする（Ｓ２５１３）。
【００９３】
ステップＳ２５１３において、もし属性値がなければ処理は終了するが（Ｎｏ）、ある場合（Ｙｅｓ）、属性値を読み出すことにより送信方法と送信宛先を取得する（Ｓ２５１４）。そして、イベントの送信パケットを作成し、指定された送信方法と送信宛先に対してイベントを送信する（Ｓ２５１５）。さらに、ジョブファイル・データファイルの削除などの終了処理を行い、ジョブの処理は終了する（Ｓ２５１６）。
【００９４】
図２６はスーパーバイザが保持するイベント設定表およびイベントフォーマット表を表わすものである。この表は図５（スーパーバイザ属性表）で示される属性表の属性ＩＤ５０２（イベント設定表）の属性値としてＤＩＳＫ３０４に保持されている。イベント設定表は指定されたイベントが機器内で起きた時にイベント通知を送信する方法と宛先を、イベントの種類毎に保持している。表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。
【００９５】
図２６のイベントフォーマット表は図５（スーパーバイザ属性表）で示される属性表の属性ＩＤ５０３（イベントフォーマット表）の属性値としてＤＩＳＫ３０４に保持されている。イベントフォーマット表は機器内でユニークに定義されている各イベントＩＤについて、イベント通知として送信される付加データの形式を保持している。
【００９６】
表は各行が１つの情報単位（レコード）を表わしており、複数のレコードの集合としてデータは構成されている。各レコードはイベントＩＤ２６０４およびイベントフォーマット２６０５から構成されている。イベントフォーマット２６０５はイベント通知として送信される付加データの形式であり、属性ＩＤのリストとして表わされる。属性ＩＤは機器内でユニークに定義されており、その型も属性ＩＤによって一意に決定されているため、属性ＩＤを指定することにより、付加データのフォーマットを表わすことができる。例えば、イベントフォーマット２６０５の属性ＩＤ“６７６”は紙サイズ、ＩＤ“７５６”は紙の種類、ＩＤ“６６６”はトナーの種類、ＩＤ“６９８”はインクの種類、ＩＤ“６００”はカバーの位置を示す。イベントの送信方法・宛先は各マネージャおよびコントローラが保持するデータ（属性表）に設定されており、これらの各マネージャおよびコントローラ内で起きたイベントを通知することが可能となっている。指定されたイベントが起きた時、イベントフォーマットで定義されている内容が、イベントＩＤ毎に予め決められたデータと共に通知される。
【００９７】
図２７は、各マネージャにおけるイベント送信の処理フローを表したものである。マネージャは図２６（イベント）に示す様なイベント設定表を、各自が保持する属性表の値として持っている。図２６（イベント）の説明で示したように、この表にはイベントが発生したときにイベントを送信する接続形式と宛先とが書かれている。あるイベントが発生すると、各マネージャはイベントに対するイベントＩＤを認識する。
【００９８】
その後、イベント設定表を参照しイベントＩＤが登録されているかどうかを検索する（Ｓ２７０１）。次に、イベントＩＤが登録されているかを判定し（Ｓ２７０２）、イベントＩＤが１つも登録されていなければ（Ｎｏ）、処理を終了する。ステップ２７０２において、イベントＩＤが１つでも登録されていれば（Ｙｅｓ）、各レコードでの繰り返し処理に進む（Ｓ２７０３）。ステップＳ２７０３以降の繰り返し処理では、まず、イベントを送信する際に使用する接続形式とイベントを送信する宛先を最初のレコードから取得し（Ｓ２７０４）、イベント送信パケットを作成する（Ｓ２７０５）。このパケットの中にはイベントＩＤ毎に規定されているパラメータと、スーパーバイザ４０６が保持する図２６（イベント）に登録されているイベントＩＤ毎のフォーマットに従ったパラメータとを付加する。次に、このイベント送信パケットをステップＳ２７０４で取得した接続形式の送信宛先に送信する（Ｓ２７０６）。
【００９９】
ステップＳ２７０４からステップＳ２７０６までの処理を行った後、ステップＳ２７０７において、イベントＩＤが有るレコード全てについて行ったか否かを判断し、処理していなければステップＳ２７０３に戻り処理を繰り返し、全てのレコードが処理されていれば終了する。
【０１００】
図２８は、ＭＦＰ２０１が保持する各マネージャ・各コントローラの属性表に対する読み出し書き込みの処理を表す。各マネージャ・各コントローラが保持する属性表からの読み込みおよび書き込みは、スーパーバイザ４０６の有するサブアドレスに対して適当なコマンドパケットを送信することにより行う。属性表読み出し用コマンドパケットにはパラメータとして、アクセス対象サービスＩＤおよびアクセス対象属性ＩＤが含まれている。また、属性表書き込み用コマンドパケットにはパラメータとして、アクセス対象サービスＩＤ、アクセス対象属性ＩＤおよび属性ＩＤに対応した属性値が含まれている。クライアントからＭＦＰ２０１に送られたパケットデータは、図１９（パケット処理）に示すフローによって処理され、スーパーバイザに配布される。
【０１０１】
まず、オペレーションコード１８０４が、属性値読み出し用コード（“Get”）であるかどうかチェックする（Ｓ２８０１）。オペレーションコードが“Get”である場合は、サービスＩＤを元にアクセス対象の属性表全体を取得する（Ｓ２８０２）。サービスＩＤが“０”の場合は図５（スーパーバイザ属性表）に示すスーパーバイザ４０６の属性表、サービスＩＤが“１”の場合は図１０（プリントマネージャ属性表）に示すようなプリントジョブマネージャの属性表、サービスＩＤが“１０”の場合は図１３（スキャンジョブマネージャ属性表）示すようなスキャンジョブマネージャ４０８の属性表、サービスＩＤが“１１”の場合は図１４に示すようなコピージョブマネージャの属性表、サービスＩＤが“２１”の場合は図１５に示すようなプリンタコントローラの属性表を取得する。
【０１０２】
その後、指定された属性値が取得可能かどうかを検査する（Ｓ２８０３）。検査は、対象となる属性表の「管理者のみが取得出来る属性ＩＤ リスト」（属性ＩＤ＝１０５）の値を取得し、この中に取得指示された属性ＩＤが含まれているかどうかを調べることにより行う。ステップＳ２８０３において、属性ＩＤが含まれていれば（Ｙｅｓ）、値を取得することは出来ないので、エラー返信パケットを作成し（Ｓ２８０５）、これを送信して終了する。
【０１０３】
ステップＳ２８０３において、属性ＩＤが含まれていなければ（Ｎｏ）、指定された属性ＩＤを元に属性表を検索し、該当する属性ＩＤを持つ型ＩＤと属性値を取得する（Ｓ２８０４）。そして、型ＩＤに基づいて返信パケットを生成し（Ｓ２８０６）、この返信パケットを送信して終了する（Ｓ２８０７）。
【０１０４】
ステップＳ２８０１において、オペレーションコードが“Get”でない場合（Ｎｏ）は、オペレーションコードが、属性値書き込み用コード“Set”であるかどうかチェックする。ステップＳ２８０８において、オペレーションコードが“Set”である場合は（Ｙｅｓ）、サービスＩＤに基づいてアクセス対象の属性表全体を取得する（Ｓ２８０９）。その後、指定された属性値が設定可能かどうかを検査する。検査は、対象となる属性表の「管理者のみが設定出来る属性ＩＤリスト」（属性ＩＤ＝１０４）の値を取得し、この中に設定指示された属性ＩＤが含まれているかどうかを調べることにより行う（Ｓ２８１０）。
【０１０５】
ステップＳ２８１０において、属性ＩＤが含まれていれば（Ｙｅｓ）、値を取得することは出来ないので、ステップ２８１４においてエラー返信パケットを作成し、これを送信して終了する（Ｓ２８１４）。ステップＳ２８１０において、属性ＩＤが含まれていなければ（Ｎｏ）、指定された属性ＩＤを元に属性表を検索し、該当する属性ＩＤを持つ型ＩＤと属性値を取得する（Ｓ２８１１）。そして、型ＩＤに基づいて指定された属性値を設定し、設定が成功した旨を知らせる返信パケットを生成し（Ｓ２８１２）、この返信パケットを送信して終了する（Ｓ２８１３）。ステップＳ２８０８においてオペレーションコードが“Set”でない場合は、オペレーションコードに従ったその他の処理を行い終了する（Ｓ２８１５）。
【０１０６】
図２９は分散処理の一例である重連コピー処理のフローである。
【０１０７】
本実施の形態における重連コピーは、ある１つのＭＦＰ（ＭＦＰ２０１）で読み取った画像を、自らを含む複数のＭＦＰ（ＭＦＰ２０１、ＭＦＰ２０２）でプリントする動作をいうものである。重連コピーを指定されたＭＦＰは図２９（分散コピーシーケンス）に示すような２つのフローを同時に行う。
【０１０８】
重連タスク１はスキャナ機能とプリント機能を使用してＭＦＰでコピーを行うためのフローである。重連タスク２は通信手段によって接続されたほかのＭＦＰにスキャンしたデータを送信しプリントを行わせるためのフローである。重連コピーの実行が確定すると、重連タスク１と２が実行される。まず、重連タスク１の場合について説明する。
【０１０９】
まず、コピー処理開始のためのコマンド“Job Start”がコピージョブマネージャに通知される。ここで通知されたコマンドは図２１（ジョブ投入処理１）、図２２（ジョブ投入処理２）に示すフローにしたがって処理される（Ｓ２９０１）。
【０１１０】
次に、このジョブに必要な情報を通知するために“Set Job”コマンドを通知する。このコマンドと一緒に、コピー部数やページ数、重連コピーであるかどうかなどの情報が図２０（ジョブデータの構造）に示すジョブファイルに貯えられ、コピージョブマネージャに通知される（Ｓ２９０２）。
【０１１１】
ステップＳ２９０３、Ｓ２９０４、はジョブの中に含まれるドキュメント情報を設定するためのコマンドである。一つのジョブの中に異なる解像度や、異なる用紙サイズを使用するときなどに、その情報をマネージャに通知するためのものである。ジョブで生成される画像情報が一つしかなければ一回コントローラに対して通知する。もし異なるものを含んでいれば、複数回通知することになる。重連タスク１におけるこの例では一回だけ発行する（Ｓ２９０３、Ｓ２９０４）。
【０１１２】
そして、“Send Request”がコピージョブマネージャに通知される。このコマンドが通知されるとコピージョブマネージャは、スキャンした画像を記憶保存しながら、コピー処理を開始する。１つの画像を記憶する毎に、スキャンデータ生成イベントを重連タスク２に通知する（Ｓ２９０５）。
【０１１３】
さらに、ドキュメント、ジョブの設定が終了したことを通知し（Ｓ２９０６、Ｓ２９０７）、コピー処理の終了イベントがくるのを待ち（Ｓ２９０８）、イベントを確認したらこの処理を終了する。
【０１１４】
重連タスク２ではコマンドの通知先が、通信手段によって接続された他のＭＦＰのプリントマネージャになる。ステップＳ２９５１−Ｓ２９５３、までの処理は重連タスク１と同様である。ステップＳ２９５３の処理が終了すると、コピージョブを行っているマネージャからのスキャンデータ生成イベントを待つ（Ｓ２９０４）。
【０１１５】
イベントがきたら、“Send”コマンドをプリントマネージャに通知する。このコマンドに、生成された画像情報が含まれており、図２０（ジョブデータの構造）に示すデータファイルに画像情報を登録することになる。そして、この情報に従って、プリントマネージャにより指示されたプリンタが画像を出力する（Ｓ２９５５、Ｓ２９５６）。
【０１１６】
そして、一つのドキュメントの終了がプリントマネージャに通知される（Ｓ２９５７）。ステップＳ２９５７において、このコマンドにはまだ、画像情報が“くる”、“こない”の情報が含まれており、まだ画像情報が生成される場合は、ステップＳ２９５４に戻り処理を続ける。もう画像情報が生成されない場合は、ジョブの終了がプリントマネージャに通知される（Ｓ２９５８）。
【０１１７】
そして、プリントジョブの終了イベントをまち、イベントがあったらこの処理を終了する（Ｓ２９５９）。このフローにしたがった処理をすることで２台のＭＦＰを使用し重連コピーを実現することができる。
【０１１８】
次に本発明の特徴である分散処理の一例として、図２に示す画像出力システムにおける重連コピーについて説明する。なお、本実施の形態では、ＭＦＰ２０１のスキャナエンジン１０２で原画像を読み取ることにより入力した画像データを、ＭＦＰ２０１自身（ローカルプリンタ）とＭＦＰ２０２（リモートプリンタ１）とに分散させて出力することが、重連コピー開始前の目的であるとする。
【０１１９】
図３０は分散処理先（重連コピー先）を選択するときの手順を示した処理フローである。まず、分散処理先を選択するために図５（スーパーバイザ属性表）の属性ＩＤ２００２（接続可能ＭＦＰリスト）の情報をもとにＭＦＰ２０１のＬＣＤディスプレイ３０６に分散先を表示する（Ｓ３００１）。図３１は分散処理先を選択するときの操作画面を示したものである。本実施の形態においては操作部初期画面３１０１にあるプリンタ選択ボタン３１０２を押下することにより分散先選択画面３１０３がＬＣＤディスプレイ３０６上に表示される。
【０１２０】
次に、重連先を分散先選択画面３１０３上のラジオボタン群３１０４から選択する（Ｓ３００２）。ここで、ラジオボタン群３１０４の“リモートプリンタ１”（ＭＦＰ２０２）を選択し“閉じる”ボタンを押下すると、３１０５のように操作部上に表示される。
【０１２１】
そして、出力部数等の設定を行った後、操作者によるスタートボタン（図示せず）を押下に応じて重連処理を開始し、図２９（分散コピーシーケンス）に示したフローに従ってジョブを実行する（Ｓ３００３）。
【０１２２】
上記手順による分散処理要求を受信したＭＦＰ２０２（リモートプリンタ）におけるジョブ処理を、図３２に示す。前にも述べたが、ＭＦＰ２０２は、ＭＦＰ２０１と同一の構成を有するＭＦＰである。
【０１２３】
まず、ＭＦＰ２０２は、ＭＦＰ２０１からの分散処理要求を受信し、図２１（ジョブ投入処理１）、図２２（ジョブ投入処理２）を行い、図２０（ジョブデータの構造）に示す構造のジョブファイルを作成する（Ｓ３２０１）。
【０１２４】
次に、ステップＳ３２０１により生成されたジョブを実行できるか否かを判定する（Ｓ３２０２）。ここで、このステップにおける判定方法について説明する。
【０１２５】
本実施の形態におけるジョブは、図１６のジョブキュー表に示されるようにＤＩＳＫ３０４に格納された後、順次実行される。したがって、実行可能になるまでの時間は、格納されるジョブの数、各ジョブのページ数の合計、各ジョブの部数といったジョブ量に応じて変化する。
【０１２６】
ＤＩＳＫ３０４に保持されたジョブのジョブ量が大きくなるほど、生成したジョブを実行可能になるまでの時間が長くなり、その結果、生成したジョブが実行できない状態に近くなる。本実施の形態では、操作者がジョブ実行までに許容できる待ち時間を考慮して、ＤＩＳＫ３０４に格納されるジョブのジョブ量に閾値を設け、ジョブ量がその値を越える場合には、生成したジョブを実行できないと判定する。
【０１２７】
具体的には、ＭＦＰ２０２が保持するジョブ数に基づき、許容できる待ち時間内にジョブを実行できるか否かを判定する。例えば、閾値のジョブの個数を“５”と決めておいた場合、ステップＳ３２０１の処理により５つ目のジョブが生成されたとすると、そのジョブは実行可能であり、６つ目のジョブが生成されたとすると、そのジョブは実行可能でないと判断する。
【０１２８】
上記の例に限らず、ジョブ量の閾値は、操作者やシステムの運用上都合のよい値を決めてやればよい。例えば、ジョブが実行されるまである程度長い時間かかっても、選択したリモートプリンタで優先的に出力させたい場合には、ジョブ数の閾値を“１０”に設定してもよいし、その一方で、ただちに出力結果を得たい場合には、ジョブ数の閾値を“１”に設定すればよい。
【０１２９】
以上のような判定処理を行うステップＳ３２０２において、ジョブを実行可能と判定した場合は（Ｙｅｓ）、適切なプリントマネージャを使用して、ＭＦＰ２０２においてジョブを実行する（Ｓ３２０３）。
【０１３０】
ステップＳ３２０２において、ジョブ実行可能でないと判定した場合は（Ｎｏ）、図５（スーパーバイザ属性表）の属性ＩＤ２００２（接続可能ＭＦＰリスト）の情報をもとに他のＭＦＰにおけるジョブのジョブ量情報を取得する（Ｓ３２０４）。ここで、Getオペレーションを用いて、図１６のジョブキュー表等を取得することにより、ジョブ量情報を取得する。
【０１３１】
そして、他のＭＦＰについても、ステップＳ３２０２と同様に、そのＭＦＰが保持しているジョブの数に基づき、ジョブを転送した場合にジョブを実行可能か否かを判定する。そして、取得したジョブ量情報とともに判定結果を記憶する（Ｓ３２０５）。
【０１３２】
１台についての検索が終了すると、次の検索先はあるか否かを判断し、ある場合は（Ｙｅｓ）、ステップＳ３２０４からの動作を再び行うことにより、ネットワークに接続された他のＭＦＰ全てについての検索を行う（Ｓ３２０６）。そして、記憶された全ての他のＭＦＰに関する検索結果より、転送可能なＭＦＰがあるか否かを判定する（Ｓ３２０７）。この判定は、ステップＳ３２０５において記憶した判定結果と、各ＭＦＰが保持するジョブ数情報に基づき行われる。
【０１３３】
ステップＳ３２０７において、転送先があると判断された場合（Ｙｅｓ）、記憶された転送可能なＭＦＰの中から、ＭＦＰ２０２の代わりにジョブを実行するＭＦＰを決定する（Ｓ３２０８）。ＭＦＰの決定においては、取得した各ＭＦＰのジョブ量情報に基づき、最もジョブ数の少ないＭＦＰを転送先のＭＦＰとすることで、ジョブを転送後、より迅速に出力結果を得ることができる。
【０１３４】
ステップＳ３２０１で作成したジョブファイルの属性ＩＤ２００１、属性サイズ２００２、属性値２００３を読み出し（Ｓ３２１０）、これらの情報に基づいてステップＳ３２０８で決定された転送先にジョブデータを転送する（Ｓ３２１１）。本実施の形態では、ＭＦＰ２０３（リモートプリンタ２）が転送先として決定され、ジョブデータの転送が行われる。
【０１３５】
転送先であるＭＦＰ２０３へのジョブデータの転送をジョブデータがなくなるまで繰り返し、ジョブデータがなくなり、転送が終了すれば、ＭＦＰ２０２における処理は終了する（Ｓ３２１２）。ＭＦＰ２０３はＭＦＰ２０２からジョブファイルを受信し、ＭＦＰ２０２と同様のジョブ処理を行い、ジョブを実行可能であれば、受信したジョブファイルに基づいてジョブを実行する。
【０１３６】
また、ステップＳ３２０７で転送先が見つからなかった場合（Ｎｏ）、ＭＦＰ２０２においてジョブが実行できる状態になるまで待ち（Ｓ３２０９）、実行できる状態になったらジョブを実行し（Ｓ３２０３）、処理は終了する。
【０１３７】
本実施の形態では、自装置及び他の画像出力装置において、生成したジョブを実行できるか否かについて判断するためのジョブのジョブ量情報としてジョブ数を用いている。しかし、これに限るものではなく、例えば、保持しているジョブの総データ量や、投入されたジョブのみのデータ量、投入されたジョブにおける部数やページ数等をジョブ量情報として用いてもよい。
【０１３８】
以上説明してきたように、本実施の形態によれば、重連コピー等分散処理を行う際に、分散先のＭＦＰにおいてジョブを実行可能でないと判断した場合、ネットワークに接続された他のＭＦＰにジョブを転送することにより、多くのジョブが分散先のＭＦＰに集中してしまった場合においても、ジョブが滞ることを防ぐことができるので、生産性を低下させることなく分散処理を行うことができる。
【０１３９】
また、転送を行う際に、ネットワークに接続された他のＭＦＰにおけるジョブのジョブ量情報を取得し、取得したジョブ量情報に基づいて確実にジョブを実行可能なＭＦＰにジョブを転送することにより、転送先でもジョブを多数保持しているために再び分散先を検索し転送するといった再転送処理を回避することができるので、転送処理を行った際の分散処理時間の増加を抑制することができ、ネットワークへの負荷も軽減することができる。
【０１４０】
（第２の実施の形態）
重連コピー等分散処理の１つの目的は、ＭＦＰ１台で印刷出力するよりも全体での印刷速度を向上させることである。例えば、第１の実施の形態のシステムで、ＭＦＰ２０１で５０部の原稿を読み取り、ＭＦＰ２０１とＭＦＰ２０２において２５部づつ出力させた場合、全体での印刷速度は、１台で出力させた場合の２倍となる。
【０１４１】
しかしながら、ＭＦＰ２０２のＤＩＳＫ３０４に予め保持されているジョブのジョブ量が大きくなるほど、生成したジョブを実行可能になるまでの時間が長くなり、その結果、ＭＦＰ２０２での印刷終了までの時間が長くなる。この場合、全体での印刷速度は、ＭＦＰ２０１が１台で出力させた場合よりも遅くなってしまうことさえある。
【０１４２】
本実施の形態では、上記問題を解決するため、リモートプリンタの印刷速度に着目したジョブの転送処理を行う場合について説明する。なお、本実施の形態の装置及びシステム構成、ローカルプリンタであるＭＦＰ２０１における分散処理先選択手順は、第１の実施の形態と同じである。
【０１４３】
本実施形態における、分散処理要求を受信したＭＦＰ２０２（リモートプリンタ）におけるジョブ処理を、図３３に示す。
【０１４４】
まず、ＭＦＰ２０２は、ＭＦＰ２０１からの分散処理要求を受信し、第１の実施の形態と同様なジョブファイルを作成する（Ｓ３３０１）。
【０１４５】
次に、ＤＩＳＫ３０４に格納されたジョブのジョブ量情報に基づき、ステップＳ３３０１において生成されたジョブの終了時刻を算定する（Ｓ３３０２）。ここで、本実施形態におけるこのステップの算定方法について詳細に説明する。本実施の形態では、終了時刻の算定のために、ジョブ量情報として、ＤＩＳＫ３０４に保持されている各ジョブのページ数と部数情報を用いる。
【０１４６】
まず、ステップＳ３３０１においてジョブが生成されたことに応じて、図２０に示されるジョブのデータ構造を各ジョブに関して参照し、属性値に含まれる部数、ページ数情報を取得する。
【０１４７】
そして、取得した部数、ページ数情報と、ＭＦＰ２０２の印刷速度情報から、生成したジョブの終了時刻を算定する。本実施の形態では、生成したジョブをＤＩＳＫ３０４に格納した時刻を基準に終了時刻を算定する。このとき、生成したジョブの終了時刻Ｔは、
Ｔ＝保持される実行待ちジョブの総ページ数／ＭＦＰ２０２の印刷速度・・・（１）
と求めることができる。
【０１４８】
例えば、ＭＦＰ２０２の印刷速度が４０枚／分であり、図１６のジョブキュー表において、ジョブＩＤ１０２が２ページ７部、ジョブＩＤ１０３が１ページ５部、ジョブＩＤ１０４が８ページ２部、ジョブＩＤ１０５が５ページ５部であり、生成したジョブが５ページ２０部であるとする。この場合を例１とし、終了時刻をＴ１とすると、
Ｔ１＝（２×７＋１×５＋８×２＋５×５＋５×２０）／４０＝４（分）
と計算される。
【０１４９】
また、ＭＦＰ２０２の印刷速度が４０枚／分であり、ジョブＩＤ１０２が８ページ８部、ジョブＩＤ１０３が５ページ４部、ジョブＩＤ１０４が６ページ６部、ジョブＩＤ１０５が６ページ５部であり、生成したジョブが５ページ２０部であるとする。この場合を例２とし、終了時刻をＴ２とすると、
Ｔ２＝（８×８＋５×４＋６×６＋６×５＋５×２０）／４０＝６．２５（分）
と計算される。
【０１５０】
次に、ＭＦＰ２０２が、ステップＳ３３０２で算定された終了時刻までに、生成したジョブを所定の印刷速度で実行可能であるか否かを判定する（Ｓ３３０３）。
【０１５１】
このステップでは、まず、生成したジョブの実質的な印刷速度を求める必要がある。上述した（１）式により算定されたジョブの終了時刻Ｔを用いて、実質的な印刷速度Ｓは、
Ｓ＝生成されたジョブの全ページ数／Ｔ・・・（２）
で計算される。
【０１５２】
式（２）を用いて、上述の例１及び例２の場合の実質的な印刷速度Ｓ１及びＳ２は、
Ｓ１＝１００／４＝２５（枚／分）
Ｓ２＝１００／６．２５＝１６（枚／分）
と、求められる。ここで、判定条件に用いる“所定の印刷速度”を２０（枚／分）と設定していたとする。このとき、例１の場合は、Ｓ１＞２０（枚／分）なので、生成したジョブを所定の印刷速度で実行可能であると判定し、ジョブの転送処理には移行しない。一方、例２の場合は、Ｓ２＜２０（枚／分）なので、生成したジョブを所定の印刷速度で実行可能でないと判定し、ジョブの転送処理に移行する。
【０１５３】
以上のような判定処理を行うステップＳ３３０３において、ジョブを所定の印刷速度で実行可能と判定した場合は（Ｙｅｓ）、適切なプリントマネージャを使用して、ＭＦＰ２０２においてジョブを実行する（Ｓ３３０４）。
【０１５４】
ステップＳ３３０３において、ジョブを所定の印刷速度で実行可能でないと判定した場合は（Ｎｏ）、図５（スーパーバイザ属性表）の属性ＩＤ２００２（接続可能ＭＦＰリスト）の情報をもとに他のＭＦＰにおけるジョブのジョブ量情報を取得する（Ｓ３３０５）。ここで、Getオペレーションを用いて、図１６のジョブキュー表等を取得することにより、ジョブ量情報を取得する。
【０１５５】
そして、他のＭＦＰについても、ステップＳ３３０３と同様に、そのＭＦＰが保持している各ジョブの部数やページ数に基づき、ジョブを転送した場合にジョブを所定の印刷速度で実行可能か否かを判定する。そして、取得したジョブ量情報とともに判定結果を記憶する（Ｓ３３０６）。
【０１５６】
１台についての検索が終了すると、次の検索先はあるか否かを判断し、ある場合は（Ｙｅｓ）、ステップＳ３３０５からの動作を再び行うことにより、ネットワークに接続された他のＭＦＰ全てについての検索を行う（Ｓ３３０７）。そして、記憶された全ての他のＭＦＰに関する検索結果より、転送可能なＭＦＰがあるか否かを判定する（Ｓ３３０８）。この判定は、検索結果に含まれる各ＭＦＰが保持する各ジョブのページ数及び部数情報に基づき行われる。
【０１５７】
ステップＳ３３０８において、転送先があると判定された場合（Ｙｅｓ）、記憶された転送可能なＭＦＰの中から、ＭＦＰ２０２の代わりにジョブを実行するＭＦＰを決定する（Ｓ３３０９）。ＭＦＰの決定においては、取得した各ＭＦＰのジョブ量情報に基づき、最もジョブ量の少ないＭＦＰを転送先のＭＦＰとすることで、ジョブを転送後、より迅速に出力結果を得ることができる。
【０１５８】
ステップＳ３３０１で作成したジョブファイルの属性ＩＤ２００１、属性サイズ２００２、属性値２００３を読み出し（Ｓ３３１１）、これらの情報に基づいてステップＳ３３０９で選択された転送先にジョブデータを転送する（Ｓ３３１２）。本実施の形態では、ＭＦＰ２０３（リモートプリンタ２）が転送先として決定され、ジョブデータの転送が行われる。
【０１５９】
転送先であるＭＦＰ２０３へのジョブデータの転送をジョブデータがなくなるまで繰り返し、ジョブデータがなくなり、転送が終了すれば、ＭＦＰ２０２における処理は終了する（Ｓ３３１３）。ＭＦＰ２０３はＭＦＰ２０２からジョブファイルを受信し、ＭＦＰ２０２と同様のジョブ処理を行い、ジョブを実行可能であれば、受信したジョブファイルに基づいてジョブを実行する。
【０１６０】
また、ステップＳ３３０８で転送先が見つからなかった場合（Ｎｏ）、ＭＦＰ２０２においてジョブが実行できる状態になるまで待ち（Ｓ３３１０）、実行できる状態になったらジョブを実行し（Ｓ３３０４）、処理は終了する。
【０１６１】
本実施の形態では、ステップＳ３３０３での判定処理に用いるパラメータとして、終了時刻Ｔと実質的な印刷速度Ｓと定義したが、その定義は上述のものに限らない。例えば、終了時刻Ｔや実質的な印刷速度Ｓは、実行中のジョブに関する時間情報や、各種印刷モード情報を考慮して加えた値としてもよい。
【０１６２】
以上説明したように、本実施の形態では、ＭＦＰ２０２が保持する各ジョブのページ数や部数情報を用いて出力ジョブの終了時刻を算定して、算定結果に基づき、生成したジョブを所定の印刷速度で実行可能であるか否かを判定し、生成したジョブを所定の印刷速度で実行可能でないと判定された場合は、ジョブの転送処理に移行するようにした。
【０１６３】
これにより、多くのジョブが分散先のＭＦＰに集中してしまった場合においても、ジョブが滞ることを防ぐことができるので、生産性を低下させることなく分散処理を行うことができる。
【０１６４】
また、転送を行う際に、ネットワークに接続された他のＭＦＰにおけるジョブ量情報を取得し、取得したジョブ量情報に基づいて実質的な印刷速度を算定し、算定した印刷速度に基づき確実にジョブを高速に実行可能なＭＦＰにジョブを転送することにより、転送先でも印刷速度が低速なために再び分散先を検索し転送するといった再転送処理を回避することができるので、転送処理を行った際の分散処理時間の増加を抑制することができ、ネットワークへの負荷も軽減することができる。
【０１６５】
（第３の実施の形態）
図２に示す画像出力システムに本発明を適用する場合、第１、第２の実施の形態で説明したように、全てのＭＦＰが同一の機能及び構成を有してなくてもよい。例えば、ローカルプリンタとしてＭＦＰを用いて、リモートプリンタとしてプリンタ単体を用いる場合でも、本発明を適用可能である。
【０１６６】
しかし、例えば、図２に示すシステムにおいて、各ＭＦＰの出力機能（性能）が異なる場合に、分散処理を行う上での問題が生じる。
【０１６７】
例えば、重連コピーとして、ローカルプリンタであるＭＦＰ２０１とリモートプリンタであるＭＦＰ２０２を用いて、出力部数やページ数を２台の間で均等に配分する場合を考える。このとき、ＭＦＰ２０１の出力速度よりも、ＭＦＰ２０２の出力速度が低速である場合、トータルでの出力速度は、ＭＦＰ２０２の出力速度に近くなる。したがって、ＭＦＰ２０１とＭＦＰ２０２の印刷速度が大きく異なる程、ＭＦＰ２０１単体で出力するよりも、高速に出力結果を得るという重連コピー本来の目的が達成できなくなる。
【０１６８】
本実施の形態では、上記問題を解決するため、ローカルプリンタの印刷速度に着目したジョブの転送処理を行う場合について説明する。なお、本実施の形態の装置及びシステム構成、ローカルプリンタであるＭＦＰ２０１における分散処理先選択手順は、第１の実施の形態と同じである。ただし、ＭＦＰ２０２とＭＦＰ２０１とは異なる印刷速度を有している。
【０１６９】
本実施形態における、分散処理要求を受信したＭＦＰ２０２（リモートプリンタ）におけるジョブ処理を、図３４に示す。ＭＦＰ２０１及びＭＦＰ２０２には、以下に示すフローチャートにおいて生成されるジョブ以外のジョブは保持されていない状態である。
【０１７０】
まず、ＭＦＰ２０２は、ＭＦＰ２０１からの分散処理要求を受信し、ジョブファイルを作成する（Ｓ３４０１）。
【０１７１】
次に、受信した分散処理要求の送信元であるＭＦＰ２０１の速度情報を取得する（Ｓ３４０２）。ここで、Getオペレーションを用いて、図５に示すスーパーバイザー属性表を取得することにより印刷速度情報を取得する。
【０１７２】
次に、ステップＳ３４０１により生成されたジョブを実行できるか否かを判定する（Ｓ３４０３）。ここで、このステップにおける判定方法について詳細に説明する。
【０１７３】
本実施形態では、ＭＦＰ２０２が、ＭＦＰ２０１と同じか、それ以上の印刷速度を有している場合に、生成したジョブをローカルプリンタと同等の印刷速度で実行可能であると判定する。
【０１７４】
例えば、ＭＦＰ２０１の印刷速度が３０（枚／分）であり、ＭＦＰ２０２の印刷速度が４０（枚／分）である場合、ＭＦＰ２０２がＭＦＰ２０１よりも高速であるので、生成したジョブを実行可能であると判定する。一方、ＭＦＰ２０１の印刷速度が５０（枚／分）であり、ＭＦＰ２０２の印刷速度が４０（枚／分）である場合、ＭＦＰ２０２がＭＦＰ２０１よりも低速であるので、生成したジョブを実行可能でないと判定する。
【０１７５】
なお、ここでの判定条件は上記のものに限るものではなく、所望の印刷速度での重連コピーを可能とするためのものであれば他の判定条件でもよい。例えば、ＭＦＰ２０２がＭＦＰ２０１の半分以上の出力速度である場合にジョブを実行可能とするという判定条件でもよい。また、第２の実施の形態のように、各ＭＦＰが保持するジョブのジョブ量に基づき各ＭＦＰの実質的な印刷速度を求め、実質的な印刷速度を用いて判定してもよい。
【０１７６】
以上のような判定処理を行うステップＳ３４０３において、ジョブを実行可能と判定した場合は（Ｙｅｓ）、適切なプリントマネージャを使用して、ＭＦＰ２０２においてジョブを実行する（Ｓ３４０４）。
【０１７７】
ステップＳ３４０３において、ジョブ実行可能でないと判定した場合は（Ｎｏ）、図５（スーパーバイザ属性表）の属性ＩＤ２００２（接続可能ＭＦＰリスト）の情報をもとに他のＭＦＰの印刷速度情報を取得する（Ｓ３４０５）。
【０１７８】
そして、他のＭＦＰについても、そのＭＦＰの印刷速度情報に基づき、ＭＦＰ２０１と同等の印刷速度で生成したジョブを実行可能か否かを判定する。そして、取得したジョブ量情報とともに判定結果を記憶する（Ｓ３４０６）。
【０１７９】
１台についての検索が終了すると、次の検索先はあるか否かを判断し、ある場合は（Ｙｅｓ）、ステップＳ３４０５からの動作を再び行うことにより、ネットワークに接続された他のＭＦＰ全てについての検索を行う（Ｓ３４０７）。そして、記憶された全ての他のＭＦＰに関する検索結果より、転送可能なＭＦＰがあるか否かを判定する（Ｓ３４０８）。この判定は、ステップＳ３４０６において記憶した判定結果と、各ＭＦＰが保持する印刷速度情報に基づき行われる。
【０１８０】
ステップＳ３４０８において、転送先があると判断された場合（Ｙｅｓ）、記憶された転送可能なＭＦＰの中から、ＭＦＰ２０２の代わりにジョブを実行するためのＭＦＰを決定する（Ｓ３４０９）。ＭＦＰの決定においては、取得した各ＭＦＰの印刷速度情報に基づき、最も高速なＭＦＰを転送先のＭＦＰとすることで、ジョブを転送後、より迅速に出力結果を得ることができる。
【０１８１】
ステップＳ３４０１で作成したジョブファイルの属性ＩＤ２００１、属性サイズ２００２、属性値２００３を読み出し（Ｓ３４１１）、これらの情報に基づいてステップＳ３４０９で決定された転送先にジョブデータを転送する（Ｓ３４１２）。本実施の形態では、ＭＦＰ２０３（リモートプリンタ２）が転送先として決定され、ジョブデータの転送が行われる。
【０１８２】
転送先であるＭＦＰ２０３へのジョブデータの転送をジョブデータがなくなるまで繰り返し、ジョブデータがなくなり、転送が終了すれば、ＭＦＰ２０２における処理は終了する（Ｓ３４１３）。ＭＦＰ２０３はＭＦＰ２０２からジョブファイルを受信し、ＭＦＰ２０２と同様のジョブ処理を行い、ジョブを実行可能であれば、受信したジョブファイルに基づいてジョブを実行する。
【０１８３】
また、ステップＳ３４０８で転送先が見つからなかった場合（Ｎｏ）、ＭＦＰ２０２においてジョブが実行できる状態になるまで待ち（Ｓ３４１０）、実行できる状態になったらジョブを実行し（Ｓ３４０４）、処理は終了する。
【０１８４】
本実施の形態では、ジョブを転送するか否かを判定するために用いる出力機能情報を印刷速度情報としたが、本発明は、これに限るものではなく、出力速度に影響を与えるパラメータであれば、他の出力機能情報でもよい。
【０１８５】
以上説明してきたように、本実施の形態によれば、出力要求を送信したＭＦＰ２０１の出力速度情報を取得し、取得されたＭＦＰ２０１の出力速度情報に基づき、コピージョブを所定の印刷速度で実行可能であるか否かを判定し、コピージョブを所定の印刷速度で実行可能でないと判定された場合に、ジョブの転送処理に移行することにより、分散処理要求に適した印刷速度を有するＭＦＰで、生成したジョブを実行できるようになるので、各ＭＦＰの印刷速度が異なっても生産性を低下させることなく分散処理を行うことができる。
【０１８６】
また、転送を行う際に、ネットワークに接続された他のＭＦＰにおける印刷速度情報を取得し、取得した印刷速度情報に基づいて確実かつ高速にジョブを実行可能なＭＦＰにジョブを転送することにより、転送先が印刷速度が遅いために再び分散先を検索し転送するといった再転送処理を回避することができるので、転送処理を行った際の分散処理時間の増加を抑制することができ、ネットワークへの負荷も軽減することができる。
【０１８７】
（第４の実施の形態）
第１〜３の実施の形態では、分散処理要求を受けたＭＦＰ側でジョブを転送することにより、画像出力の遅延を回避する例を説明した。しかし、分散処理の要求元のＭＦＰが、多数のジョブを保持しているＭＦＰに分散処理要求を送信しないようにすることにより、上記実施の形態と同様に画像出力の遅延を回避することが可能となる。
【０１８８】
本実施の形態では、第１の実施形態と同様に、図２に示す画像出力システムにおいてＭＦＰ２０１をローカルプリンタとした場合で、本発明を説明する。
【０１８９】
図３５は分散処理先を選択するときの処理手順を示したフローチャートである。まず、分散処理先を選択するために図５（スーパバイザ属性表）の属性ＩＤ２００２（接続可能ＭＦＰリスト）の情報をもとにＭＦＰ２０１のＬＣＤディスプレイ３０６に分散先を表示する（Ｓ３５０１）。図３６は本実施の形態における分散処理先を選択するときの操作画面を示した図である。操作部初期画面３６０１にあるプリンタ選択ボタン３６０２を押下することにより分散先選択画面３６０３がＬＣＤディスプレイ３０６上に表示される。このとき、分散処理要求を送信可能なＭＦＰに対して“Get”オペレーションを実行し、分散先のＭＦＰの名前を獲得し表示するとより操作性が向上する。
【０１９０】
次に、分散先選択画面３６０３上のラジオボタン群３６０４から分散先を選択する（Ｓ３５０２）。ここで、ラジオボタン群３６０４の“リモートプリンタ１”（ＭＦＰ２０２）を選択し“閉じる”ボタンを押下すると、分散処理が実行され、“Get”オペレーションによって、リモートプリンタ１（ＭＦＰ２０２）の図１６（ジョブキュー表）等の情報を取得する（Ｓ３５０３）。
【０１９１】
次に、リモートプリンタ１（ＭＦＰ２０２）が分散処理要求を受け付けられるか否かを判定する（Ｓ３５０４）。本実施の形態において、ＭＦＰ２０２が分散処理要求を受け付けられるか否かの判定は、ＭＦＰ２０２が保持するジョブのジョブ量に基づいて行われる。例えば、図１６のジョブキュー表のように保持できるジョブ数の上限値を“５”と決めているとする。この場合、ステップＳ３５０３の処理により、ＭＦＰ２０２が５つ以下のジョブを保持しているという情報を得ると、分散処理要求を受け付けることができると判定する。一方、ＭＦＰ２０２が５つ以上のジョブを保持しているという情報を得ると、分散処理要求を受け付けられないと判定する。
【０１９２】
ステップＳ３５０４において、リモートプリンタ１（ＭＦＰ２０２）にすでにジョブが６つ保持されていると、分散処理要求を受け付けられないと判定し（Ｎｏ）、ＬＣＤディスプレイ３０６上に状態通知ウインドウ３６０５を表示させ、ジョブの状態及び分散処理を受け付けられない旨を通知し、同時に分散先選択画面３６０３を再度表示する。そして、再びラジオボタン群３６０４の選択ボタンの中から重連先を選択するように促し（Ｓ３５０５）、再び重連先が選択されると、ステップＳ３５０３に戻り、分散処理要求を受け付けられるか否かの確認を行う。
【０１９３】
ステップＳ３５０４において、例えばリモートプリンタ２（ＭＦＰ２０３）に投入済みのジョブが５つ以下であり、分散処理要求を受け付けられると判断された場合（Ｙｅｓ）、３６０６のようにプリント先にリモートプリンタ２を選択したことをＬＣＤディスプレイ３０６に表示する。そして、操作者によるスタートボタン（図示せず）の押下に応じて、分散処理要求をリモートプリンタに送信し、図２９（分散コピーシーケンス）に示したフローに従ってジョブを実行し（Ｓ３５０６）、処理を終了する。
【０１９４】
以上説明してきたように、本実施の形態によれば、ローカルプリンタであるＭＦＰ２０１が、選択されたＭＦＰ（ＭＦＰ２０２）のジョブ量情報を取得し、取得したジョブ量情報に基づきＭＦＰ２０２が分散出力要求を受け付けることができるか否かを判定し、ＭＦＰ２０２が分散出力要求を受け付けることができないと判定された場合、その旨を表示するようにした。
【０１９５】
これにより、出力要求を送信する前に、出力先の装置が出力要求を受け付け可能か否かをジョブの観点からも容易に知ることができるので、多くのジョブを保持しているＭＦＰにジョブを投入してしまい、画像の出力結果を得るまでに不当に時間がかかってしまう等といった、分散処理における生産性の低下の発生を抑制することができる。
【０１９６】
（第４の実施の形態の変形）
本実施の形態において、ステップＳ３５０５ではジョブの状態及び分散処理を受け付けられない旨の表示し、分散先については分散先選択画面３１０３と同一の画面を再表示するようにして分散先を選択するように促した。
【０１９７】
ここで、再び表示した分散先選択画面３６０３には、分散処理要求を受け付けられないプリンタ、つまりリモートプリンタ１（ＭＦＰ２０２）も含まれる。しかし、これは、表示した時点でリモートプリンタ１にジョブ投入可能でなくても、一定の時間が経過すると分散処理要求を受け付けられるようになることを考慮しての再表示である。
【０１９８】
しかし、ユーザがただちに分散処理を開始したい場合、リモートプリンタ１を間違えて選択してしまうこともありうるので、リモートプリンタ１に関しては“使用不可”等の表示を行い選択できないようにしてもよい。このときの分散先選択画面の表示例を図３７に示す。分散先選択画面３７０１において、リモートプリンタ１及びそのアドレスの右側に“使用不可”の表示がされている。また、リモートプリンタ１についての表示を分散処理先選択画面から消去してもよい。これにより、プリンタ選択における操作性が向上する。
【０１９９】
また、本実施の形態では、ステップＳ３５０５において分散先選択画面３６０３を再表示し、ユーザに分散先を選択させた後、再びステップＳ３５０３に戻り、選択した分散先について“Get”オペレーションを行っている。
【０２００】
しかし、再び選択したリモートプリンタ１以外のプリンタについても、分散処理要求を受け付けられるとは限らない。このとき、分散処理要求を受け付けられる分散先が見つかるまで、ステップＳ３５０３〜Ｓ３５０５の処理を何度も繰り返すことになり、迅速な分散先選択が困難になることがある。
【０２０１】
そこで、１度目のステップＳ３５０５における分散先の再選択の際に、リモートプリンタ１以外のプリンタについても“Get”オペレーションを行ってＭＦＰにおけるジョブ量情報を取得し、それぞれに対して分散処理要求を受け付けられるか否かを判断し、分散処理要求を受け付けられるプリンタのみを表示し選択を促すようにする。これにより、分散先の再選択を１回で済むようにすることができる。
【０２０２】
図３８に、上述した再選択に関る処理を行う場合のフローチャートを示す。ステップＳ３８０１〜Ｓ３８０４までは、図３５に示したステップＳ３５０１〜ステップＳ３５０４までの処理と同じてある。
【０２０３】
ステップＳ３８０４において、選択した分散先であるリモートプリンタ１が分散処理要求を受け付けられないと判断された場合には、他のプリンタに対して“Get”オペレーションを行い（Ｓ３８０５）、分散処理要求を受け付けられると判断されたプリンタのみを表示し、選択を促す（Ｓ３８０６）。このときの分散処理選択画面を図３９に示す。分散処理選択画面３７０１は、他のＭＦＰのジョブ情報取得の結果、リモートプリンタ３、及び５においても分散処理要求を受け付け不可能であった場合の表示画面である。そして、選択されたプリンタを用いて重連コピーを行い（Ｓ３８０７）、処理を終了する。
【０２０４】
上述したように、第４の実施の形態において、はじめに選択した分散先にジョブ投入可能でない場合、再選択画面において、はじめに選択した分散先が使用できない旨を表示する、または、その分散先を再選択できないようにすることにより、分散先の最選択におけるユーザの誤操作を防止し、迅速な装置選択が可能となる。
【０２０５】
また、はじめに選択した分散先以外のＭＦＰに関してもジョブ状態を取得し、ジョブ投入可能な分散先のみを再選択画面に表示することにより、何度も分散先の再選択を行う必要が無くなり、さらに迅速な装置選択が可能となる。
【０２０６】
本実施の形態では、分散処理先へジョブを投入できるか否かについて判断するためのジョブの状態情報として要求先の画像出力装置におけるジョブ数を用いている。しかし、本発明はこれに限るものではなく、例えば、要求先の画像出力装置が保持しているジョブの総データ量等、ジョブの負荷情報であれば他のジョブ量情報を用いてもよい。
【０２０７】
（他の実施の形態）
以上の実施の形態において、複数のＭＦＰを用いた重連モードにおける本発明の適用例を説明したが、本発明はこれに限るものではなく、リモートプリンタのみに出力するリモートコピーモードにおいても適用可能である。
【０２０８】
また、複数のプリンタ装置とホストコンピュータから構成されるプリンタシステムにおいて、印刷要求を受け付ける複数のプリンタ装置が、本実施形態のＭＦＰと同様の機能を有するように構成することもできる。
【０２０９】
また、上記実施形態においては、ジョブ量情報や出力機能情報等に基づき、ジョブを実行可能か否かを判定したが、単に、分散処理の要求先が、用紙切れやトナー切れ、ジャム発生等、エラー状態であるか否かの情報に基づきジョブの実行可能性を判定するようにしてもよい。例えば、第１の実施の形態のステップＳ３２０２の判定条件を、“エラー状態か否か”に変更することで、分散処理においてエラー時にジョブの転送処理に移行可能なデジタル複合機が実現できる。これにより、分散処理先が紙切れやトナー切れ等エラー状態の場合でも、出力先の処理の中断による画像出力の遅延を回避することができる。
【０２１０】
上記の各実施の形態において、ジョブの転送先のＭＦＰにおける処理の詳細については述べていないので、ここで第１の実施形態に対応させて、簡単に説明する。転送先のＭＦＰ（例えばＭＦＰ２０３）では、まず、転送元（ＭＦＰ２０２）からジョブを受信した後、自装置のジョブキュー表を参照する。そして、第１の実施形態と同様に、自身のジョブ量情報（ジョブ数等）に基づき、ジョブを実行可能か否かを判断する。ジョブを実行可能な場合、ステップＳ３３０４と同様の処理に進み、ジョブを実行可能でない場合、ステップＳ３３０５と同様のジョブの転送処理に進む。以下の処理は、第１の実施形態と同様である。第２、第３の実施の形態についても同様である。このように、各ＭＦＰについてジョブを転送する機能を備えさせることにより、出力要求に最も適当なネットワーク上のＭＦＰでジョブを実行することができる。
【０２１１】
本発明は、上述した実施の形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用してもよい。
【０２１２】
また、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０２１３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０２１４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きもまれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０２１５】
【発明の効果】
以上説明してきたように、本発明によれば、第１の印刷装置から受信した処理要求に応じて生成されたジョブに基づく印刷処理を印刷手段が所定の印刷速度で実行可能でないと判定し、かつジョブに基づく印刷処理を第２の印刷装置が所定の印刷速度で実行可能であると判定した場合に、ジョブを第２の印刷装置へ転送することで、ジョブに基づく印刷処理を所定の印刷速度で行わせる印刷装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の本実施の形態におけるＭＦＰの全体構成を示すブロック図である。
【図２】本実施の形態における画像出力システムの構成を示すブロック図である。
【図３】コントローラ１０１のハードウエア構成を示すブロック図である。
【図４】コントローラ１０１内のＤＩＳＫ３０４のソフトウエア構成を示すブロック図である。
【図５】スーパーバイザ４０６がＤＩＳＫ３０４に保持し管理するデータを表わすスーパーバイザ属性表である。
【図６】図５に示すスーパーバイザ属性表の属性ＩＤ５０１と型ＩＤ５０２の詳細を示す図である。
【図７】サブアドレス：サービスＩＤ対応表である。
【図８】接続形式ＩＤの意味を示す図である。
【図９】サービスＩＤ：タスクタイプ対応表である。
【図１０】各プリントジョブマネージャ４０９がＤＩＳＫ３０４に保持するデータを表わすプリントマネージャ属性表である。
【図１１】プリントジョブマネージャが保持するデータを示すジョブ表である。
【図１２】プリントジョブマネージャが保持するジョブ依頼表を表わす図である。
【図１３】スキャンジョブマネージャ４０８が保持するデータであるスキャンジョブマネージャ属性表である。
【図１４】コピージョブマネージャが保持するデータを表わすコピージョブマネージャ属性表である。
【図１５】プリンタコントローラ４１２がＤＩＳＫ３０４に保持するデータを表わすプリンタコントローラ属性表である。
【図１６】プリンタコントローラ４１２が保持するジョブキューを表わすジョブキュー表である。
【図１７】スキャナコントローラ４１１がＤＩＳＫ３０４に保持するデータ表わすスキャナコントローラ属性表である。
【図１８】インタープリタ４０５に対して出力されるコマンドパケットの構造を表わす図である。
【図１９】ＭＦＰにおけるコマンドパケットの処理フローを示す図である。
【図２０】各マネージャが管理するジョブの実体を保持するファイル（ジョブデータ）の構造を示す図である。
【図２１】各マネージャにおけるジョブ投入処理１である。
【図２２】各マネージャにおけるジョブ投入処理２である。
【図２３】プリントジョブマネージャ４０９におけるジョブの処理フローを表した図である。
【図２４】スキャンジョブマネージャ４０８におけるジョブの処理フローを表した図である。
【図２５】コピージョブマネージャ４１０におけるジョブの処理フローを表した図である。
【図２６】スーパーバイザが保持するイベント設定表およびイベントフォーマット表である。
【図２７】各マネージャにおけるイベント送信の処理フローを表した図である。
【図２８】各マネージャ・各コントローラの属性表に対する読み出し書き込みの処理を表す図である。
【図２９】重連コピー処理のフローを示す図である。
【図３０】第１の実施の形態における重連コピーを行う際の分散処理先を選択するときの手順を示した処理フローである。
【図３１】第１の実施の形態における分散処理先を選択するときの操作画面を示した図である。
【図３２】第１の実施の形態における分散処理要求を受け付けたＭＦＰ２０２のジョブの受け付けフローである。
【図３３】第２の実施の形態における分散処理要求を受け付けたＭＦＰ２０２のジョブの受け付けフローである。
【図３４】第３の実施の形態における分散処理要求を受け付けたＭＦＰ２０２のジョブの受け付けフローである。
【図３５】第４の実施の形態における分散処理先を選択するときの処理手順を示したフローである。
【図３６】第４の実施の形態における分散処理先を選択するときの操作画面を示した図である。
【図３７】第４の実施の形態の変形における分散先選択画面である。
【図３８】第４の実施の形態の変形における分散処理先を選択するときの処理手順を示したフローである。
【図３９】第４の実施の形態の変形における分散処理先の再選択画面である。
【符号の説明】
１０１  コントローラ
１０２  スキャナエンジン
１０３  レーザビームプリンタエンジン
１０４  フィニッシャー
１０５  ネットワークインターフェース
１０６  ユーザーインターフェース
２０１  ＭＦＰ（ローカルプリンタ）
２０２〜２０６  ＭＦＰ（リモートプリンタ１〜５）
２０７  ネットワークインターフェースケーブル
３０１  ＣＰＵ
３０２  ＲＡＭ
３０３  ＲＯＭ
３０４  ＤＩＳＫ
３０５  バス
３０６  ＬＣＤディスプレイ
３０７  キーボード
【図１】
0004532795.tif 000002
【図２】
0004532795.tif 000003
【図３】
0004532795.tif 000004
【図４】
0004532795.tif 000005
【図５】
0004532795.tif 000006
【図６】
0004532795.tif 000007
【図７】
0004532795.tif 000008
【図８】
0004532795.tif 000009
【図９】
0004532795.tif 000010
【図１０】
0004532795.tif 000011
【図１１】
0004532795.tif 000012
【図１２】
0004532795.tif 000013
【図１３】
0004532795.tif 000014
【図１４】
0004532795.tif 000015
【図１５】
0004532795.tif 000016
【図１６】
0004532795.tif 000017
【図１７】
0004532795.tif 000018
【図１８】
0004532795.tif 000019
【図１９】
0004532795.tif 000020
【図２０】
0004532795.tif 000021
【図２１】
0004532795.tif 000022
【図２２】
0004532795.tif 000023
【図２３】
0004532795.tif 000024
【図２４】
0004532795.tif 000025
【図２５】
0004532795.tif 000026
【図２６】
0004532795.tif 000027
【図２７】
0004532795.tif 000028
【図２８】
0004532795.tif 000029
【図２９】
0004532795.tif 000030
【図３０】
0004532795.tif 000031
【図３１】
0004532795.tif 000032
【図３２】
0004532795.tif 000033
【図３３】
0004532795.tif 000034
【図３４】
0004532795.tif 000035
【図３５】
0004532795.tif 000036
【図３６】
0004532795.tif 000037
【図３７】
0004532795.tif 000038
【図３８】
0004532795.tif 000039
【図３９】
0004532795.tif 000040