(57)【特許請求の範囲】
【請求項１】
サーバと接続され、内蔵するファームウェアを書換える手段を有すると共に当該サーバから送られて来る画像処理ジョブを書換えられた後のファームウェアに基づいて実行する画像処理装置であって、
処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成する生成手段と、
生成されたダミーの画像処理ジョブを、前記サーバに対するクライアント装置として当該サーバに送信する送信手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記生成手段は、
画像処理ジョブがダミーのジョブであることを示す識別情報を当該画像処理ジョブのデータに付加する付加手段を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記サーバから送られて来た画像処理ジョブが、自身が生成したダミーのジョブであるか否かを判断する判断手段と、
当該画像処理ジョブがダミーのジョブであることが判断されると、その画像処理ジョブを破棄する破棄手段と、
を備えることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記判断手段は、画像処理ジョブのデータに、ダミージョブであることを示す識別情報が付加されている場合に、その画像処理ジョブをダミーのジョブであると判断することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
サーバと接続され、内蔵するファームウェアを書換える手段を有すると共に当該サーバからの画像処理ジョブを書換えられた後のファームウェアに基づいて実行する画像処理装置における画像処理方法であって、
処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成する生成ステップと、
生成されたダミーの画像処理ジョブを、前記サーバに対するクライアント装置として当該サーバに送信する送信ステップと、
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理方法に関し、特に画像処理装置においてファームウェアの書換え処理がなされることによる、画像処理ジョブの実行の遅滞を防ぐ技術に関する。
【０００２】
【従来の技術】
プリンタの動作を制御するファームウェアをバージョンアップする（書換える）方法が従来から種々提案されている。例えば、プリンタをインターネットなどのネットワークを介して遠隔地にあるセンター装置と接続し、センター装置からプリンタにファームウェアを送信し、プリンタに内蔵されているフラッシュＲＯＭの内容を書換えるといった方法などがある。このようなファームウェアの書換えを実行するプリンタは、従来、コストの観点から、ファームウェアの伝送を低速のシリアルインターフェースを用い行っている。そのため近年のようにファームウェアの容量がメガ単位と大きくなると、その書換えに数十分要する場合もあり、当然のことながらファームウェア書換え中は、プリントジョブは実行不能となる。
【０００３】
【発明が解決しようとする課題】
ところで、ファームウェアは、センター装置から直接プリンタに送られるので、プリンタにプリントジョブ等の要求を行うクライアント装置側では、プリンタにおけるプリントジョブの待ち状況や待ち時間等を監視できても、ファームウェアの書換えについては把握できない。
【０００４】
したがって、クライアント装置側において、例えば待ち時間が少ないと判断してプリンタにプリントジョブを送信しても、プリンタが、そのプリントジョブの実行前にファームウェアの書換えを開始してしまった場合には、そのプリントジョブはファームウェアの書換え終了まで長時間待たされることになる。そのため、そのプリントジョブを発行したユーザは、思いも寄らない時間待たされてしまい大変不便となる。
【０００５】
このような問題は、プリンタに限られず、スキャナなど画像処理ジョブを実行する画像処理装置であり、ファームウェアを書換える機能を有するものであれば生じうる。
本発明は、このような問題点に鑑みてなされたものであって、画像処理ジョブが、ファームウェアの書換えにより長時間待たされるといったことを防止できる画像処理装置および画像処理方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
【０００８】
本発明は、サーバと接続され、内蔵するファームウェアを書換える手段を有すると共に当該サーバから送られて来る画像処理ジョブを書換えられた後のファームウェアに基づいて実行する画像処理装置であって、処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成する生成手段と、生成されたダミーの画像処理ジョブを、前記サーバに対するクライアント装置として当該サーバに送信する送信手段と、を備えることを特徴する。
【０００９】
また、前記生成手段は、画像処理ジョブがダミーのジョブであることを示す識別情報を当該画像処理ジョブのデータに付加する付加手段を備えることを特徴とする。
さらに、前記サーバから送られて来た画像処理ジョブが、自身が生成したダミーのジョブであるか否かを判断する判断手段と、当該画像処理ジョブがダミーのジョブであることが判断されると、その画像処理ジョブを破棄する破棄手段と、を備えることを特徴とする。
【００１０】
また、前記判断手段は、画像処理ジョブのデータに、ダミージョブであることを示す識別情報が付加されている場合に、その画像処理ジョブをダミーのジョブであると判断することを特徴とする。
【００１１】
本発明は、サーバと接続され、内蔵するファームウェアを書換える手段を有すると共に当該サーバからの画像処理ジョブを書換えられた後のファームウェアに基づいて実行する画像処理装置における画像処理方法であって、処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成する生成ステップと、生成されたダミーの画像処理ジョブを、前記サーバに対するクライアント装置として当該サーバに送信する送信ステップと、を備えることを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明に係る画像処理装置の実施の形態を、図面を参照しながら説明する。
（第１の実施の形態）
（１−１．全体構成）
図１は、本発明に係る画像処理装置を含む画像処理システム６０（以下、単に「システム」という。）の構成を示す図である。
【００１３】
同図に示すように、このシステムは、サービスセンタ９に配される、ファームウェアを管理するＰＣ（パーソナルコンピュータ）９０と、あるユーザのオフィス等に配される画像処理装置１、２・・とクライアント装置３１、３２・・等からなる装置群１０とがネットワーク、ここではインターネット５０等を介して接続されて構成されている。また、インターネット５０には、別のユーザが所有する装置群２０も接続されており、各装置間で、インターネット５０等を介して画像データ等の各種データの送受信が可能である。
【００１４】
ここで、本実施の形態のファームウェアとは、画像処理装置の各モジュール（後述）に内蔵され、各モジュールで実行される起動プログラム、入出力プログラム、画像処理や駆動部材等の制御プログラム等の基本ソフトウエアおよび制御データを示すものである。このファームウェアは、ＰＣ９０において電子メールに添付されて各画像処理装置に配信される。
【００１５】
クライアント装置３１、３２・・と画像処理装置１、２・・は、ＬＡＮ（Local Area Network）５１を介して接続されている。
クライアント装置３１は、ＰＣからなり、例えば文書やグラフィックス作成用のアプリケーションソフトなどにより作成した文書や画像などを用紙にプリント（印刷）する処理（以下、「プリントジョブ」という。）を画像処理装置１、２・・・に要求することができる。なお、この構成は、他のクライアント装置３２・・についても、同様である。
【００１６】
画像処理装置１は、画像形成装置１１と、当該画像形成装置１１を管理する管理装置としてのプリンタコントローラ１２とが接続されてなる。
プリンタコントローラ１２は、ＬＡＮ５１を介して各クライアント装置３１、３２・・からのプリントジョブの要求などを受け付け、それを画像形成装置１１に実行させる。また、後述するように、所定時間間隔でメールサーバ４３から電子メール（以下、単に「メール」という。）をダウンロードし、ファームウェア添付のメールから当該ファームウェアを取得する。そして、画像形成装置１１に対し、内蔵しているファームウェアを、取得した新たなファームウェアに書換えるジョブ（以下、「ファームウェアの書換えジョブ」という。）の実行指示を行う。なお、この構成は、他の画像処理装置２・・についても同様である。
【００１７】
ＬＡＮ５１とインターネット５０との接続部には、ルータ４２が配置されている。このルータ４２は、ＬＡＮ５１とインターネット５０とを相互接続すると共に経路制御を行う。また、ルータ４２と各画像処理装置１、２・・間には、ファイアウォール４１が配されている。
ファイアウォール４１は、パケットフィルタリング、プロキシサーバ等としての機能を備えており、送信元ＩＰアドレス（ホスト名）、宛先ＩＰアドレス（ホスト名）、送信元ポート番号、宛先ポート番号、データ等が所定の条件を満たすパケットのみの通過を許可する。ここでは、SMTP(Simple Mail Transfer Protocol)における通信が通過可能になっている。
【００１８】
また、ＬＡＮ５１には、メールサーバ４３が接続されており、メールの収集と配布のサービスを行う。
一方、サービスセンタ９には、ＰＣ９０の他に、ファイアウォール８１、ルータ８２、メールサーバ８３が配され、それらはＬＡＮ８４に接続されている。これらファイアウォール８１、ルータ８２、メールサーバ８３は、上記ファイアウォール４１、ルータ４２、メールサーバ４３と同じ機能を有するものである。
【００１９】
なお、装置群２０は、基本的に装置群１０と同機能を有する装置からなるものなので、ここでは同機能を有するものについて同符号を付して、その説明を省略するものとする。
以下、それぞれの装置について詳しく説明するが、画像処理装置１、２・・はそれぞれが同じものなので、ここでは画像処理装置１の構成を、同様にクライアント装置については、クライアント装置３１の構成を説明し、他のものについては、その説明を省略する。
【００２０】
（１−２．クライアント装置３１の構成）
図２は、クライアント装置３１の回路構成を示すブロック図である。
同図に示すように、クライアント装置３１は、ＰＣ本体３１０、ディスプレイ３２０、キーボード３３０およびマウス３４０を備えている。
ＰＣ本体３１０は、ＣＰＵ３０１、ＲＯＭ３０２、ワークエリアを提供するＲＡＭ３０３および固定記憶装置３０４を備えると共に、ディスプレイ３２０の表示制御を行う表示制御部３０５、キーボード３３０とマウス３４０からの信号の入力を受け付ける入力制御部３０６およびＬＡＮ５１を介して画像処理装置１等と各種のデータを送受信するためのＮＩＣ（Network Interface Crad）３０７を備えている。
【００２１】
ＲＯＭ３０２には、文書編集や画像編集のアプリケーションプログラム、プリンタドライバなどが格納されており、ＣＰＵ３０１はそのプログラム等を実行する。
プリンタドライバは、印刷のために必要な制御情報としてのジョブ制御情報とページ制御情報とを、印刷すべき文書や画像のデータ（プリントデータ）にヘッダとして付加したデータ（プリントジョブのデータ）を作成する。
【００２２】
ここで、ジョブ制御情報には、送信元名、ジョブを実行すべき画像処理装置がユーザにより指定された場合には、その指定された宛先名、印刷部数等の情報が含まれる。ページ制御情報には、印刷時の用紙サイズ、カラーもしくはモノクロのいずれで印刷するか示す印刷色情報、どの給紙口から用紙を給紙するかを示す給紙口情報等が含まれる。プリントデータは、各種アプリケーションプログラムで作成されたデータが、プリンタコントローラ１２、２２・・で理解可能なデータ（ページ記述言語）に変換されたものである。
【００２３】
ＣＰＵ３０１は、ユーザのキーボード３３０等の操作による印刷の指示入力を受付けると、プリントジョブを要求するに際し、後述するように、各画像処理装置１、２・・に対し、待機中となっているプリントジョブおよびファームウェアの書換えジョブ全てを順次実行するとした場合に、その実行に要すると予想される合計時間（以下、「総予想処理時間」という。）を問い合わせ、その総予想処理時間の最も短い画像処理装置にプリントジョブを実行させるべくそのプリントジョブのデータを送信する。以下、プリントジョブを実行させるべくそのプリントジョブのデータを送信する処理を「プリントジョブの送信」処理といい、送られてきたプリントジョブのデータを受信する処理を「プリントジョブの受信」処理という。
【００２４】
固定記憶装置３０４は、ハードディスク等の不揮発性のメモリであり、作成された文書データ、画像処理装置１、２・・のメールアドレスを含む各種情報および後述の登録情報テーブル３１１（図１８参照）などが格納される。
（１−３．画像処理装置１の構成）
画像処理装置１は、クライアント装置３１、３２・・から要求されたプリントジョブを実行する機能に加えて、セットされた原稿の画像を読み取ってその画像を用紙上に印刷するコピージョブ、読み取った原稿の画像情報をメールに添付して、それをユーザにより指定された宛先に送信する画像情報送信ジョブを実行する機能等の各種機能を有し、いわゆるＭＦＰ（Multiple Function Peripheral）と呼ばれる装置である。
【００２５】
以下、画像処理装置１に含まれる画像形成装置１１とプリンタコントローラ１２の構成について説明する。
（１−３−１．画像形成装置１１の構成）
図３は、画像形成装置１１の構成を示す図である。
画像形成装置１１は、公知の電子写真方式により画像形成を行う装置であり、大きく分けて、原稿画像を読み取るイメージリーダ（ＩＲ）部１６０と、このＩＲ部１６０で読み取った画像データ、もしくはＬＡＮ５１を介してクライアント装置３１、３２・・から送られてきた画像データに基づいて用紙に印刷するプリンタ部１８０とからなる。
【００２６】
ＩＲ部１６０は、プラテンガラス１６１にセットされた原稿を照射してスキャンするスキャナ１６２と、当該原稿からの反射光を受光して、それを光電変換するＣＣＤセンサ１６３等を備える。ＣＣＤセンサ１６３により光電変換された信号は画像データとして制御部１００に送られる。
プリンタ部１８０は、プリントヘッド１８１、感光体ドラム１８２、現像部１８３、転写ドラム１８４、定着部１８５および給紙部１８６等を備える。
【００２７】
プリントヘッド１８１は、制御部１００からの駆動信号に基づいてレーザ光を発し、感光体ドラム１８２上を露光する。この露光により、感光体ドラム１８２上には、静電潜像が形成される。その静電潜像は、現像部１８３に配された、シアン（Ｃ），マゼンタ（Ｍ），イエロー（Ｙ），ブラック（Ｋ）色の現像ユニットにより各色ごとに順次現像され、トナー像が形成される。一方、給紙部１８６からは、転写ドラム１８４に向けて用紙が給送され、その用紙は、転写ドラム１８４に巻き付けられる。感光体ドラム１８２上に形成された各色のトナー像は、順次、転写ドラム１８４に巻き付けられた用紙上に重ねられるように転写されていき、転写が終了すると、その用紙は転写ドラム１８４から剥がされて、定着部１８５に送られる。用紙上のトナー像は、定着部１８５のヒータ（不図示）により用紙に定着され、定着部１８５を通過した用紙は、装置外の排紙トレイ１８７に排出される。このＩＲ部１６０とプリンタ部１８０の動作制御は、制御部１００により行われる。
【００２８】
（１−３−２．制御部１００の構成）
図４は、制御部１００の回路構成を示すブロック図である。
同図に示すように、制御部１００は、マルチＣＰＵ（Central Processing Unit）で制御される装置であり、個々のＣＰＵに対応した４つの制御モジュール１１０〜１４０を備える。ここで、モジュールとはＣＰＵもしくはＣＰＵを含む制御回路を含めた、その制御機能を実行する機能ブロックを示すものである。
【００２９】
制御モジュール１１０は、ＣＰＵ１１１、フラッシュＲＯＭ１１２、ワークエリアを構成するＳ−ＲＡＭ１１３、ＮＶ−ＲＡＭ１１４、シリアルＩ／Ｆ１１５、１１６、１１７、ビデオＩ／Ｆ１１８および操作パネル１１９を備える。
ＣＰＵ１１１は、制御モジュール１２０〜１４０との間で制御コマンド等を送受信し、画像形成装置１１の全体制御を行う。
【００３０】
フラッシュＲＯＭ１１２は、電気的に内容を書換え可能な不揮発性メモリであり、ＣＰＵ１１１の動作のためのファームウェアを記憶している。
ＮＶ−ＲＡＭ１１４は、各種設定値を保存するメモリである。
シリアルＩ／Ｆ１１５は、制御モジュール１２０と、シリアルＩ／Ｆ１１６は、制御モジュール１３０と、制御コマンド等を送受信するためのインターフェースである。
【００３１】
シリアルＩ／Ｆ１１７は、プリンタコントローラ１２と制御コマンド等を送受信するためのインターフェースである。
操作パネル１１９は、コピージョブや画像情報送信ジョブの選択入力を受付けるためのキーや、テンキー、プリントキーおよび入力された内容などを表示する表示部を備えており、ユーザが操作しやすい位置に配されている。
【００３２】
ビデオＩ／Ｆ１１８は、プリンタコントローラ１２からプリントジョブの実行のための画像データを受信すると、それを制御モジュール１４０に出力する。
なお、ＣＰＵ１１１は、画像情報送信ジョブの実行の際に、読み取られた原稿の画像データが制御モジュール１３０からビデオＩ／Ｆ１１８に送られて来ると、その画像データを、ユーザにより指定された宛先のメールに添付し、それをビデオＩ／Ｆ１１８からプリンタコントローラ１２へ送信する処理を行う。
【００３３】
また、ＣＰＵ１１１は、プリントジョブやファームウェアの書換えジョブ等のジョブ実行中には「ビジー信号」を、ジョブの実行が可能な状態では「レディ信号」をプリンタコントローラ１２に送出するようにしている。
制御モジュール１２０は、ＣＰＵ１２１、フラッシュＲＯＭ１２２、ワークエリアを構成するＳ−ＲＡＭ１２３、各種設定値を保存するＮＶ−ＲＡＭ１２４、シリアルＩ／Ｆ１２５、１２６、およびプリント駆動部１２７を備える。
【００３４】
シリアルＩ／Ｆ１２５は、制御モジュール１１０と、シリアルＩ／Ｆ１２６は、制御モジュール１４０と、制御コマンド等を送受信するためのインターフェースである。
プリント駆動部１２７は、感光体ドラム１８２などの画像形成動作に関係する部材の駆動制御を行う駆動制御回路である。
【００３５】
ＣＰＵ１２１は、プリント駆動部１２７に画像形成動作の指示を行い、印刷処理全体の制御を行う。
フラッシュＲＯＭ１２２は、上記フラッシュＲＯＭ１２１と同様の不揮発性メモリであり、ＣＰＵ１２１の動作のためのファームウェアを記憶している。
制御モジュール１３０は、ＣＰＵ１３１、フラッシュＲＯＭ１３２、ワークエリアを構成するＳ−ＲＡＭ１３３、各種設定値を保存するＮＶ−ＲＡＭ１３４、シリアルＩ／Ｆ１３５、ＩＲ駆動部１３６、画像処理ＡＳＩＣ１３７および画像入力部１３８を備える。
【００３６】
シリアルＩ／Ｆ１３５は、制御モジュール１１０と制御コマンド等を送受信するためのインターフェースである。
ＩＲ駆動部１３６は、ＩＲ部１６０のスキャナ１６２など原稿読み取り動作に関係する部材の駆動制御を行う駆動制御回路である。
ＣＰＵ１３１は、ＩＲ駆動部１３６にスキャナ１６２のスキャン動作等を指示し、原稿画像の読み取り処理の全体制御を行う。
【００３７】
フラッシュＲＯＭ１３２は、上記フラッシュＲＯＭ１２１と同様の不揮発性メモリであり、ＣＰＵ１３１の動作のためのファームウェアを記憶している。
画像入力部１３８は、ＩＲ部１６０のＣＣＤセンサ１６３を駆動して、光電変換された原稿の画像データを画像処理ＡＳＩＣ１３７に出力する。
画像処理ＡＳＩＣ１３７は、画像入力部１３８からの画像データに対して、公知のシェーディング補正、ＭＴＦ補正、濃度補正、誤差拡散等の２値化処理などの各種画像処理を施す。そして、その画像データを、コピージョブの場合には制御モジュール１４０に出力し、画像情報送信ジョブの場合には制御モジュール１１０に出力する。
【００３８】
制御モジュール１４０は、ＣＰＵ１４１、フラッシュＲＯＭ１４２、ワークエリアを構成するＳ−ＲＡＭ１４３、各種設定値を保存するＮＶ−ＲＡＭ１４４、シリアルＩ／Ｆ１４５、画質補正制御部１４６および画像出力部１４７を備える。
画質補正制御部１４６は、制御モジュール１１０、１３０からの画像データに対して、スムージング、中間調階調再現などの画質補正処理を施して、その画像データを画像出力部１４７に出力する。
【００３９】
画像出力部１４７は、画質補正制御部１４６からの画像データに基づいてプリントヘッド１８１等の部材を駆動し、感光体ドラムを露光走査する。
ＣＰＵ１４１は、画質補正制御部１４６等に画質補正処理等を指示し、画像補正と補正された画像データの出力処理の全体制御を行う。
フラッシュＲＯＭ１４２は、上記フラッシュＲＯＭ１２１と同様の不揮発性メモリであり、ＣＰＵ１４１の動作のためのファームウェアを記憶している。
【００４０】
シリアルＩ／Ｆ１４５は、制御モジュール１２０と制御コマンド等を送受信するためのインターフェースである。
（１−３−３．プリンタコントローラ１２の構成）
図５は、プリンタコントローラ１２の回路構成を示すブロック図である。
同図に示すように、プリンタコントローラ１２は、ＣＰＵ２０１、ＥＰ−ＲＯＭ２０２、ワークエリアを提供するＳ−ＲＡＭ２０３、ＮＶ−ＲＡＭ２０４、固定記憶装置２０５、シリアルＩ／Ｆ２０６、ビデオＩ／Ｆ２０７、画像展開部２０８、操作パネル２０９およびＮＩＣ２１０を備えている。
【００４１】
ＣＰＵ２０１は、クライアント装置３１等からのプリントジョブの受信、プリントジョブおよびファームウェアの書換えジョブの画像形成装置１１における実行順序の管理、メールの送受信制御、受信したメールから取り出したファームウェアの管理および印刷画像の画像処理の制御等を行う。また、後述するように、待機中となっているプリントジョブおよびファームウェアの書換えジョブを実行するとしたときの総予想処理時間を求めて、その値を示す情報をクライアント装置に送信する処理を行う。
【００４２】
ＥＰ−ＲＯＭ２０２は、不揮発性メモリであり、ＣＰＵ２０１の動作のための制御プログラムを格納している。
ＮＩＣ２１０は、クライアント装置３１等からのプリントジョブの受信などをＬＡＮ５１を介して行う。
固定記憶装置２０５は、ハードディスクなどからなる不揮発性メモリであり、ＮＩＣ２１０で受信されたプリントジョブ、メールから取り出されたファームウェア、および画像情報送信ジョブの実行により画像形成装置１１から送られて来るメールなどを一時的に保存する。そのプリントジョブは、ＣＰＵ２０１により、その実行タイミングになると画像展開部２０８に送られる。また、ファームウェアは、画像展開部２０８を介さず、シリアルＩ／Ｆ２０６を介して画像形成装置１１へ送られる。また、画像情報送信ジョブによるメールは、ＮＩＣ２１０を介して、指示された宛先の装置へ送信される。
【００４３】
画像展開部２０８は、受信したプリントジョブに含まれる、ページ記述言語で記述されたプリントデータをビットマップデータ（画像データ）に展開して、それをビデオＩ／Ｆ２０７を介して画像形成装置１１に送信する。
シリアルＩ／Ｆ２０６は、画像形成装置１１のシリアルＩ／Ｆ１１７と接続されており、制御コマンドの送受信およびファームウェアの送信を制御モジュール１１０と行うためのインターフェースとして用いられる。
【００４４】
ビデオＩ／Ｆ２０７は、画像形成装置１１のビデオＩ／Ｆ１１８と接続されており、制御モジュール１１０と画像データ等の送受信を行うためのインターフェースとして用いられる。
操作パネル２０９は、後述の通信設定を行うためのＦ１キーおよび設定された内容などを表示する表示部を備えている。
【００４５】
ＮＶ−ＲＡＭ２０４は、各種設定値およびジョブ管理テーブル２１１（図１２）などを格納している。また、自装置のメールアドレスに加えて、プリンタコントローラ１２が自装置宛のメールをメールサーバ４３からダウンロードするために必要となるメールサーバ４３のメールアドレス、他の画像処理装置２・・のメールアドレス等を格納する。
【００４６】
このような構成において、制御モジュール１１０〜１４０は、通常は、各ＣＰＵ間で各シリアルＩ／Ｆを介して制御コマンド等の送受信を行う。一方、プリンタコントローラ１２からファームウェアの書換えジョブの実行指示があったときには、各シリアルＩ／Ｆを介してファームウェアのデータを送受信する。このように、単位時間当たりの通信可能なデータ量が少ないシリアルＩ／Ｆを用いて大容量のファームウェアを通信するようにしているのは、ファームウェアの書換えのために専用の伝送ラインを制御基板上に新たに設けると大変なコストアップとなり、事実上そのようなラインを設けることができないからである。したがって、ファームウェアを通信する場合、そのデータ量が多くなればそれだけ通信に要する時間が長くなることになる。
【００４７】
なお、ファームウェアを格納するフラッシュＲＯＭ１１２をＣＰＵ１１１と近接する位置に配置しており、これにより電源投入時におけるＣＰＵへのプログラムロードの実行を早くすると共に、ロード中のノイズの影響が軽減されるようにしている。このことは、他の制御モジュール１２０〜１４０のＣＰＵとフラッシュＲＯＭ間についても同様である。
【００４８】
一方、クライアント装置３１等からのプリントジョブを画像処理装置１が実行する場合の画像データの通信ライン、すなわちＮＩＣ２１０〜画像展開部２０８〜ビデオＩ／Ｆ２０７〜制御モジュール１１０のビデオＩ／Ｆ１１８〜制御モジュール１４０の画質補正制御部１４６〜画像出力部１４７間は、画像データの転送を速やかに行うために高速のデータバスで接続されている。このことは、制御モジュール１３０の画像入力部１３８〜画像処理ＡＳＩＣ１３７〜画質補正制御部１４６間の通信ラインについても同様である。
【００４９】
なお、本実施の形態では、画像形成装置１１は、プリントジョブ等のジョブ実行中については、ユーザによる操作パネル１１９からのコピージョブおよび画像情報送信ジョブの選択入力を受け付けないようになっており、そのためこれらジョブについては、プリンタコントローラ１２において実行順序の管理を行う必要がなく、ジョブ管理テーブル２１１にも登録されないようになっている。
【００５０】
（１−４．サービスセンタ９の装置の構成）
図６は、サービスセンタ９に設置されたＰＣ９０の回路構成を示すブロック図である。
同図に示すように、ＰＣ９０は、ＰＣ本体９１、ディスプレイ９２、キーボード９３およびマウス９４を備えている。
【００５１】
ＰＣ本体９１は、ＣＰＵ９０１、ＲＯＭ９０２、ワークエリアを提供するＲＡＭ９０３および固定記憶装置９０４を備えると共に、ディスプレイ９２の表示制御を行う表示制御部９０５、キーボード９３とマウス９４からの信号の入力を受け付ける入力制御部９０６およびＬＡＮ８４を介して画像処理装置１等にファームウェアの送信等を行うためのＮＩＣ９０７を備えている。
【００５２】
固定記憶装置９０４は、ハードディスク等の不揮発性のメモリであり、画像処理装置１、２・・の機種名やメールアドレスを含む各種情報および各画像処理装置のファームウェアを記憶している。このファームウェアは、装置ごとおよび制御モジュールごとに別々のフォルダ（ディレクトリ）に記憶されている。
ＣＰＵ９０１は、ファームウェアの管理、メールの送受信制御および各画像処理装置１、２・・にファームウェアをメールに添付して送信する処理などを実行する。
【００５３】
ＲＯＭ９０２には、ＣＰＵ９０１がファームウェアを送信する処理などを行うための制御プログラムが格納されている。
キーボード９３は、通信設定など各種設定・登録を行うためのＦ１〜Ｆ３キーを備えている。なお、この設定・登録の内容については後述する。
（１−５．サービスセンタ９のＰＣ９０の処理内容）
図７は、ＰＣ９０のＣＰＵ９０１が実行する処理の内容を示すフローチャートである。
【００５４】
同図に示すように、まずＣＰＵ９０１は、電源が投入されるとＲＡＭ９０３その他の内部メモリや各種パラメータなどの初期化処理を行う（ステップＳ１１）。
そして、Ｆ１〜Ｆ３キーのキーの操作に応じて次に示す処理を実行する。
すなわち、Ｆ１キーが押されたことを判断すると（ステップＳ１２で「Ｙｅｓ」）、通信設定を行う（ステップＳ１３）。
【００５５】
この通信設定は、メールを送信するためのパラメータの設定を行うものである。具体的には、Ｆ１キーが押されると、通信設定のための入力画面をディスプレイ９２に表示させ、自身（ＰＣ９０）およびメールサーバ８３のメールアドレスが管理者により入力されると、その入力された情報を固定記憶装置９０４に記憶させる。通信設定が終了すると、ステップＳ１４に移る。
【００５６】
ＣＰＵ９０１は、Ｆ２キーが押されたことを判断すると（ステップＳ１４で「Ｙｅｓ」）、画像処理装置の登録処理を行う（ステップＳ１５）。
具体的には、Ｆ２キーが押されると、その登録のための入力画面を表示させ、ファームウェアを送信すべき画像処理装置の機種名、メールアドレス、その装置を所有するユーザ名、住所、電話番号等の情報が管理者により入力されると、その入力された情報を固定記憶装置９０４内の登録情報テーブル９６に記憶させる。
【００５７】
図８は、登録情報テーブル９６の内容の一例を示す図である。
同図に示すように、登録情報テーブル９６には、機種名、その装置のメールアドレス等の情報欄が設けられ、入力された情報が関連付けられて記憶されており、ＣＰＵ９０１は、ファームウェアを送信する際に、その宛先となる画像処理装置のメールアドレスをこの登録情報テーブル９６を参照して取得する。
【００５８】
図７に戻って、ステップＳ１５の登録処理が終了すると、ステップＳ１６に移る。
ＣＰＵ９０１は、Ｆ３キーが押されたことを判断すると（ステップＳ１６で「Ｙｅｓ」）、ファームウェアの送信処理を行い（ステップＳ１７）、ステップＳ１２に戻る。
【００５９】
図９は、ファームウェアの送信処理のサブルーチンの内容を示すフローチャートである。
同図に示すように、ＣＰＵ９０１は、ファームウェアを送信すべき機種名および書換えるべき制御モジュール番号を入力するための入力画面をディスプレイ９２に表示させ、管理者によるそれらの入力を受付ける（ステップＳ２１）。
【００６０】
そして、登録情報テーブル９６に登録されている画像処理装置の総登録台数ｎを計数し（ステップＳ２２）、ループカウンタｉに「１」を設定する（ステップＳ２３）。
そして、ステップＳ２４では、「ｉ」の値と総登録台数「ｎ」の大きさを比較する。ここでは、ｉ＝１であるとして、ｉ≦ｎと判断し（ステップＳ２４で「Ｙｅｓ」）、登録情報テーブル９６のｉ番目、ここでは１番目のレコードに登録されている機種名を読み出す（ステップＳ２５）。読み出した機種名がステップＳ２１で入力された機種名と同じであれば（ステップＳ２６で「Ｙｅｓ」）、その画像処理装置のメールアドレスを登録情報テーブル９６から読み出す（ステップＳ２７）。そして、ステップＳ２１で入力された機種名と制御モジュール番号から送信すべきファームウェアを特定し、そのファームウェアが格納されている固定記憶装置９０４内のディレクトリを指定して、そのファームウェアを読み出し、読み出したメールアドレスが宛先となり、そのファームウェアが添付ファイルとして添付されるメールを作成する（ステップＳ２８）。
【００６１】
図１０は、作成されたメールのメッセージの内容例を示す模式図である。
同図に示すように、メールのメッセージは、IETF(Internet Engineering Task Force)のメールのメッセージに関する標準のRFC(Request For Comments)の規定により、ヘッダ部とボディ部に分けられており、ヘッダ部には、宛先などの情報が、ボディ部にはファームウェアが書き込まれる。
【００６２】
ここで、ヘッダ部の「Subject」欄には、管理者によって入力された、送信すべきファームウェアを示す機種名および制御モジュールの番号をアンダーバーで繋いだ文字列（ここでは、model1_1）が記述される。
「Content-Description」欄には、ファームウェアが添付されていることを示すために「Firmware」が記述される。
【００６３】
なお、RFCでは、メールのメッセージに直接バイナリデータを記述することを禁止しているため、ＣＰＵ９０１は、もともとバイナリデータからなるファームウェアを、公知の「base64」方式によりUS-ASCIIコードに変換し、変換されたファームウェアをバイナリデータの変換方式を示す「Content-Transfer-Encoding」欄の下の部分に書き込んでいくようにしている。
【００６４】
図９に戻って、ステップＳ２９では、作成したメールを送信する。ＣＰＵ９０１は、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いてメールサーバ８３と接続し、SMTP(Simple Mail Transfer Protocol)によりそのメールをメールサーバ８３に送信する。メールサーバ８３に送信されたメールは、インターネット５０を介して、ステップＳ２７で読み出された宛先に配信される。
【００６５】
なお、ステップＳ２５で読み出した機種名がステップＳ２１で入力された機種名と同じでなければ（ステップＳ２６で「Ｎｏ」）、ファームウェアの送信を行う必要がないので、ステップＳ３０に移る。
ステップＳ３０では、現在のループカウンタの値、ここでは「ｉ＝１」に「１」をインクリメントして、ステップＳ２４に戻る。
【００６６】
ステップＳ２４では、２≦ｎであるか否かを判断し、２≦ｎであれば、登録情報テーブル９６の２番目のレコードに登録されている装置について、ステップＳ２５〜Ｓ３０までの処理を実行する。
ＣＰＵ９０１は、ステップＳ２４において、ｉ≦ｎとならなくなるまで、ステップＳ２５〜Ｓ３０までの処理を繰り返し行い、メールの送信を順次行っていく。そして、ｉ≦ｎとならなくなったことを判断すると（ステップＳ２４で「Ｎｏ」）、メインルーチンにリターンする。これにより、登録情報テーブル９６に登録されている画像処理装置について、機種名が同一の装置全てに指定されたモジュールの番号のファームウェアが送信されることになる。
【００６７】
（１−６．プリンタコントローラ１２の処理の内容）
図１１は、プリンタコントローラ１２のＣＰＵ２０１が実行する処理の内容を示すフローチャートである。
同図に示すように、まずＣＰＵ２０１は、電源が投入されるとＳ−ＲＡＭ２０３その他の内部メモリや各種パラメータなどの初期化処理を行う（ステップＳ１０１）。
【００６８】
そして、操作パネル２０９のＦ１キーが押されたか否かを判断し、押されていないことを判断すると（ステップＳ１０２で「Ｎｏ」）、ステップＳ１０４に移る。一方、押されたことを判断すると（ステップＳ１０２で「Ｙｅｓ」）、メールを送受信するための通信設定を行う（ステップＳ１０３）。ここでは、ＣＰＵ２０１が通信設定のための入力画面を操作パネル２０９の表示部に表示させ、メールサーバ４３、画像処理装置１、２・・等のメールアドレス、および画像処理装置１宛の新しいメールが届いているか否かを定期的に確認するときの時間間隔（以下、「間隔Ｔ」という。）等がユーザにより入力されると、その入力された情報をＮＶ−ＲＡＭ２０４に記憶させる。この通信設定が終了すると、ステップＳ１０４に移る。
【００６９】
ステップＳ１０４では、クライアント装置３１、３２・・からプリントジョブを受信したか否かを判断する。受信していないと判断すると（ステップＳ１０４で「Ｎｏ」）、ステップＳ１０８に移る。一方、その受信を判断すると（ステップＳ１０４で「Ｙｅｓ」）、そのデータをスプール、ここでは一旦固定記憶装置２０５に格納する（ステップＳ１０５）と共に、そのプリントジョブの実行を開始してから終了するまでに要すると予想される時間（以下、「予想処理時間１」という。）を算出する（ステップＳ１０６）。
【００７０】
ここで、予想処理時間１は、次の（式１）により求めることができる。
予想処理時間１＝（プリントデータのサイズ）×（単位サイズ当たりの処理時間）・・・（式１）
「プリントデータのサイズ」は、プリントデータのデータ容量を示したものである。「単位サイズ当たりの処理時間」は、所定サイズのプリントデータに基づいて印刷処理を行うのに実際に要する処理時間を実験等により求めたときの当該処理時間を、当該所定サイズで除した値であり、予めＥＰ−ＲＯＭ２０２に格納されており、当該予想処理時間１の算出時に読み出される。
【００７１】
なお、予想処理時間１の算出方法としては、上記方法に限られず、例えば１枚の用紙を印刷出力するのに要する時間を予め求めておき、そのプリントジョブにより出力されるべき枚数にその時間を乗じる方法をとることもできる。また、画像回転、拡大／縮小、解像度変換などでは、プリントデータのサイズは同じであっても、これら画像処理を行う場合と行わない場合とでは印刷出力の時間に差が生じる場合もあるため、実行すべき画像処理の内容に基づいて予想処理時間１を求めるようにすれば、より正確な処理時間を求めることも可能となる。
【００７２】
ステップＳ１０７では、プリントジョブの内容を示す情報を上記ジョブ制御情報等を参照し、ジョブ管理テーブルに登録する処理を行う。
図１２は、ジョブ管理テーブル２１１の内容の一例を示す図である。
同図に示すように、ジョブ管理テーブル２１１には、ジョブ番号、ジョブの種類、付帯情報、メモリアドレス、クライアント名および予想処理時間の各欄が設けられており、新たなジョブを受信するごとにそのジョブの内容を示すレコードが現在の最下段にあるレコードの下に順次追加されていく。したがって、「ジョブ番号」がジョブの受け付け順を示していることになる。
【００７３】
「ジョブの種類」欄には、ジョブの種類を示す情報が書き込まれる。すなわち、クライアント装置３１、３２・・からプリントジョブを受信した場合には、「プリントジョブ」が、サービスセンタ９からファームウェアを受信した場合には、後述のステップＳ１３２により「ファームウェアの書換えジョブ」が書き込まれるようになっている。
【００７４】
「付帯情報」欄には、プリントジョブの場合、そのジョブ制御情報およびページ制御情報に含まれるジョブ送信者名、印刷時の用紙サイズ等の各種情報が書き込まれる（同図では、ジョブ送信者名としてクライアント装置の識別番号が記載されている。）。また、ファームウェアの書換えジョブの場合、書換えの対象となる機種名とそのモジュールの番号が、それぞれ書き込まれる。
【００７５】
「メモリアドレス」欄には、受信したプリントジョブもしくは受信したファームウェアの固定記憶装置２０５上での格納アドレスが、「クライアント」欄には、受信したプリントジョブの送信元となるクライアント装置のＩＰアドレスが書き込まれる。
「予想処理時間」欄には、プリントジョブの場合、上記ステップＳ１０６で求めた予想処理時間１の値が、ファームウェアの書換えジョブの場合、後述のステップＳ１３１により、ファームウェアの書換えジョブの実行を開始してから終了するまでに要すると予想される時間（以下、「予想処理時間２」という。）が書き込まれる。
【００７６】
このジョブ管理テーブル２１１は、ジョブの実行順序を管理するために用いられ、ＣＰＵ２０１は、ジョブ番号の小さいものから順にそのジョブの実行を画像形成装置１１に指示し、その実行指示を行うごとにそのジョブを当該テーブル２１１から削除していく。したがって、未だ実行されていないジョブ、すなわち待機中となっている未処理のジョブが当該テーブル２１１に残ることになる。
【００７７】
図１１に戻って、ステップＳ１０８では、自身宛のメールの着信をチェックする時刻に達したか否かを判断する。ここでは、上記ステップＳ１０３の通信設定で設定された間隔Ｔでメールサーバ４３と通信することによりメールの着信のチェックを行うようにしており、前回チェックした時刻から、当該時間Ｔが経過したか否かを判断することでチェックする時刻に達したか否かを判断する。
【００７８】
その時刻にまだ達していないと判断した場合には（ステップＳ１０８で「Ｎｏ」）、ステップＳ１１０に移る。一方、達したことを判断すると（ステップＳ１０８で「Ｙｅｓ」）、電子メールのダウンロード処理を実行する（ステップＳ１０９）。この処理は、後述するように、ダウンロードしたメールにファームウェアが添付されていると、そのファームウェアについての予想処理時間２を算出し、その時間を当該ファームウェアの書換えジョブに関連付けてジョブ管理テーブル２１１に登録するものである。
【００７９】
ステップＳ１１０では、未処理のジョブがあるか否か、すなわちジョブ管理テーブル２１１に登録されているジョブがあるか否かを判断する。
未処理のジョブがあると判断すると（ステップＳ１１０で「Ｙｅｓ」）、画像形成装置１１がレディー状態（何のジョブも実行しておらず、ジョブの実行が可能な状態）であるか否かを判断する。この判断は、ＣＰＵ１１１からレディ信号が送られて来ているかビジー信号が送られてきているかにより行われる。レディ信号を受信、すなわちレディー状態であると判断すると（ステップＳ１１１で「Ｙｅｓ」）、ジョブ送信処理を実行する（ステップＳ１１２）。このジョブ送信処理は、後述するように、ジョブ管理テーブル２１１の先頭に登録されているジョブの実行指示を画像形成装置１１に行う処理である。
【００８０】
一方、未処理のジョブがない、すなわちジョブ管理テーブル２１１に何も登録されていないことを判断すると（ステップＳ１１０で「Ｎｏ」）、ステップＳ１１３に移る。また、ステップＳ１１１において、画像形成装置１１がレディ状態でないこと、すなわちビジー信号の受信を判断すると、ステップＳ１１３に移る。なお、この場合、ルーチンが一巡し、ステップＳ１１１において画像形成装置１１がレディ状態になったことが判断されると、ステップＳ１１２のジョブ送信処理が行われることになる。
【００８１】
ステップＳ１１３では、いずれかのクライアント装置から総予想処理時間の問い合わせがあったか否かを判断する。ここで、総予想処理時間は、上記したように待機中の、すなわち未処理のプリントジョブおよびファームウェアの書換えジョブ全てを順次実行するとした場合に、その実行に要すると予想される時間のことである。その問い合わせがあったことを判断すると（ステップＳ１１３で「Ｙｅｓ」）、総予想処理時間を算出する（ステップＳ１１４）。この算出は、ジョブ管理テーブル２１１に登録されている各ジョブの、「予想処理時間」欄に書き込まれている時間を合計することにより行われる。
【００８２】
続いて、ＣＰＵ２０１は、算出された総予想処理時間を示す情報を上記問い合わせをしたクライアント装置に送信し（ステップＳ１１５）、ステップＳ１０２に戻る。
なお、総予想処理時間の問い合わせがないと判断した場合には（ステップＳ１１３で「Ｎｏ」）、ステップＳ１０２に戻る。
【００８３】
以下、ステップＳ１０９の電子メールのダウンロード処理およびＳ１１２のジョブ送信処理のサブルーチンの内容を説明する。
図１３は、電子メールのダウンロードの処理の内容を示すサブルーチンである。
同図に示すように、ＣＰＵ２０１は、まずTCP/IPを用いてメールサーバ４３と接続し（ステップＳ１２１）、新しいメールが届いていることを確認すると（ステップＳ１２２で「Ｙｅｓ」）、そのメールをダウンロードする（ステップＳ１２３）。このダウンロードの処理には、POP3(Post Office Protocol 3)を用いる。なお、複数のメールが届いていた場合には、その内の一のメールだけをダウンロードする。
【００８４】
そして、ダウンロードしたメールをメールサーバ４３から削除する処理を行い（ステップＳ１２４）、メールサーバ４３との接続を切る（ステップＳ１２５）。
次に、ダウンロードしたメールに書換えのための新たなファームウェアが添付されているか否かを判断する（ステップＳ１２６）。この判断は、メールのメッセージのヘッダ部に「Content-Description」フィールドが記述されており、かつその欄に「Firmware」が記述されているか否かを判断することにより行われる。
【００８５】
ファームウェアが添付されていることを判断した場合には（ステップＳ１２６で「Ｙｅｓ」）、そのボディ部の中からファームウェアの部分に相当する、「base64」方式によりUS-ASCIIコードに変換された文字列を取り出し（ステップＳ１２７）、その文字列を「逆base64」変換してバイナリデータに戻し（ステップＳ１２８）、それを固定記憶装置２０５に保存する（ステップＳ１２９）。
【００８６】
そして、メッセージのヘッダ部の「Subject」フィールドの値から、そのファームウェアの書換えの対象となる機種名および制御モジュールの番号を読み出す（ステップＳ１３０）。続いて、予想処理時間２を算出する（ステップＳ１３１）。この予想処理時間２は、上記したようにファームウェアの書換えジョブの実行を開始してから終了するまでに要すると予想される時間のことであり、次の（式２）により求めることができる。
【００８７】
予想処理時間２＝（ファームウェアのサイズ）×（単位サイズ当たりの書換え時間）＋（初期化標準時間）・・・（式２）
ここで、「ファームウェアのサイズ」は、そのファームウェアの容量を示したものである。
「単位サイズ当たりの書換え時間」は、所定サイズのファームウェアに基づいて書換え処理を行うのに実際に要する処理時間を実験等により求めたときの当該処理時間を、当該所定サイズで除した値であり、予めＥＰ−ＲＯＭ２０２に格納され、当該予想処理時間２の算出時に読み出される。
【００８８】
「初期化標準時間」は、ファームウェアの書換え後に装置を初期化、ここでは後述するような内部メモリの各種パラメータ等の初期化を行った後、定着部１８５が定着温度に達するなどにより、プリントジョブ等の実行が可能な状態（レディ状態）になるまでに要する時間のことであり、実験等により標準となる時間が求められて、予めＥＰ−ＲＯＭ２０２に格納される。
【００８９】
そして、ＣＰＵ２０１は、添付されてきたファームウェアについての内容をジョブ管理テーブル２１１に登録する（ステップＳ１３２）。すなわち、図１２に示すように、「ジョブの種類」欄には、ファームウェアの書換えジョブを、「付帯情報」欄には、書換えの対象機種名とそのモジュール番号を示す値を、「メモリアドレス」欄には、ファームウェアの固定記憶装置２０５上での格納アドレスを、「クライアント」欄には、「From」フィールドに記述されている送信元のＩＰアドレスを、「予想処理時間」欄には、ステップＳ１３１で求めた予想処理時間２の値をそれぞれ書き込む。ジョブ管理テーブル２１１への登録の処理が終了するとステップＳ１２１に戻る。
【００９０】
なお、ステップＳ１２６において、ダウンロードしたメールにファームウェアが添付されていないことを判断すると、ステップＳ１３３に移り、ファームウェアの書換え以外の用途のメッセージを受信したときの処理を実行し、ステップＳ１２１に戻る。
そして、ステップＳ１２１、Ｓ１２２において、再度メールが届いているか否かの確認処理を行い、新着のメールがない状態となるまで、ステップＳ１２３〜Ｓ１３３の処理を繰り返し行い、新着のメールがないと判断すると（ステップＳ１２２で「Ｎｏ」）、メールサーバ４３との接続を切って（ステップＳ１３４）、メインルーチンにリターンする。
【００９１】
図１４は、ジョブ送信処理のサブルーチンの内容を示すフローチャートである。
同図に示すように、ＣＰＵ２０１は、まずジョブ管理テーブル２１１の先頭（ジョブ番号１）のジョブの種類を読み出す（ステップＳ１８１）。
その読み出したジョブの種類がプリントジョブであることを判断すると（ステップＳ１８２で「Ｙｅｓ」）、ジョブ管理テーブル２１１の「メモリアドレス」欄を参照して、そのプリントジョブのプリントデータを固定記憶装置２０５から読み出し、それを画像展開部２０８にて展開することで画像データを生成した後（ステップＳ１８３）、そのプリントジョブの実行を画像形成装置１１に指示する（ステップＳ１８４）。具体的には、「付帯情報」欄に書き込まれているページ制御情報等に含まれる印刷部数や用紙サイズ等の内容を読み出し、その情報と共に生成した画像データを画像形成装置１１に送信し、そのプリントジョブを実行させる。
【００９２】
一方、ステップＳ１８１において読み出したジョブの種類が、ファームウェアの書換えジョブであることを判断すると（ステップＳ１８２で「Ｎｏ」）、ジョブ管理テーブル２１１の「メモリアドレス」欄を参照して、そのファームウェアを固定記憶装置２０５から読み出す（ステップＳ１８５）。そして、「付帯情報」欄から書換えの対象となる制御モジュール番号を読み出し（ステップＳ１８６）、ファームウェアの書換えジョブの実行を指示する（ステップＳ１８７）。具体的には読み出したファームウェアと書換えの対象となるモジュール番号を示す情報とをシリアルＩ／Ｆ２０６を介して画像形成装置１１に送信し、その書換えジョブを実行させる。
【００９３】
ステップＳ１８８では、ジョブ管理テーブル２１１から実行を指示したジョブを削除して、メインルーチンにリターンする。
なお、同図には示していないが、画像形成装置１１から画像情報送信ジョブの実行によるメールが送られてきた場合には、そのメールを指定宛先に配信する処理が合わせて実行される。
【００９４】
（１−７．画像形成装置１１の処理の内容）
図１５は、画像形成装置１１のＣＰＵ１１１等が実行する処理の内容を示すフローチャートである。
同図に示すように、ＣＰＵ１１１は、電源が投入されると自身の制御モジュール１１０内のＳ−ＲＡＭ１１３その他の内部メモリや各種パラメータなどを初期化すると共に、制御モジュール１２０〜１４０のＣＰＵ１２１〜１４１に同様の初期化処理を実行させ、定着部１８５を定着温度まで昇温させるなどの各種処理を行って、装置をプリントジョブ等の実行が可能なレディ状態にする（ステップＳ２０１）。
【００９５】
続いて、各種信号等の入力受け付けを行う（ステップＳ２０２）。ここで、各種信号等とは、操作パネル１１９のキー操作等による入力信号およびプリンタコントローラ１２からのプリントジョブやファームウェアの書換えジョブの実行指示を示す信号等を含むものである。なお、コピージョブおよび画像情報送信ジョブについては、上記したようにプリントジョブ等の実行中には入力受け付けを行わない。
【００９６】
ステップＳ２０３では、プリンタコントローラ１２からプリントジョブの実行の指示があったか否かを判断する。
プリントジョブの実行指示があったことを判断すると（ステップＳ２０３で「Ｙｅｓ」）、ＣＰＵ１１１等は、プリンタコントローラ１２から送られて来る画像データに基づく印刷処理を実行して（ステップＳ２０４）、ステップＳ２０２に戻る。
【００９７】
一方、入力受け付け処理において、操作パネル１１９上のキー操作によりコピージョブの実行が指示されたことを判断すると（ステップＳ２０３で「Ｎｏ」、Ｓ２０５で「Ｙｅｓ」）、コピー処理を実行、すなわち原稿画像を読み取ると共に、その読み取った原稿の画像データに基づく印刷処理を実行して（ステップＳ２０６）、ステップＳ２０２に戻る。
【００９８】
また、入力受け付け処理において、操作パネル１１９上のキー操作により画像情報送信ジョブの実行が指示されたことを判断すると（ステップＳ２０５で「Ｎｏ」、Ｓ２０７で「Ｙｅｓ」）、原稿画像を読み取ると共に読み取った原稿の画像情報を添付したメールを作成して、それをプリンタコントローラ１２に送信する処理を実行して（ステップＳ２０８）、ステップＳ２０２に戻る。
【００９９】
一方、プリンタコントローラ１２からファームウェアの書換えジョブの実行指示があったことを判断すると（ステップＳ２０７で「Ｎｏ」、Ｓ２０９で「Ｙｅｓ」）、ファームウェアの書換え処理を実行して（ステップＳ２１０）、ステップＳ２０２に戻る。
図１６は、ファームウェアの書換え処理のサブルーチンの内容を示すフローチャートである。
【０１００】
同図に示すように、ＣＰＵ１１１等は、書換え用として受信したファームウェアがどの制御モジュールに対応するものかを、受信したモジュール番号を示す情報から判断し、判断した制御モジュール内のフラッシュＲＯＭにそのファームウェアを書き込む。すなわち、書換え用のファームウェアが制御モジュール１１０に対応するものであると判断すると（ステップＳ２２１で「Ｙｅｓ」）、現在、フラッシュＲＯＭ１１２に格納されている、ファームウェア書換えプログラムを含む入出力プログラム（以下、単に「入出力プログラム」という。）をＳ−ＲＡＭ１１３に退避させ（ステップＳ２２２）、その入出力プログラムを用いて、フラッシュＲＯＭ１１２にそのファームウェアを上書きする（ステップＳ２２３）。そして、装置の電源を一旦オフし、再度電源を投入する再起動を実行し（ステップＳ２３６）、初期設定（上記ステップＳ２０１と同じ処理）を行った後（ステップＳ２３７）、メインルーチンにリターンする。
【０１０１】
一方、受信したファームウェアが制御モジュール１２０に対応するものであると判断すると（ステップＳ２２１で「Ｎｏ」、Ｓ２２４で「Ｙｅｓ」）、ＣＰＵ１１１は、そのファームウェアを制御モジュール１２０へ転送する（ステップＳ２２５）。ＣＰＵ１２１は、フラッシュＲＯＭ１２２内の入出力プログラムをＳ−ＲＡＭ１２３に退避させ（ステップＳ２２６）、その入出力プログラムを用いて、フラッシュＲＯＭ１２２にそのファームウェアを上書きして（ステップＳ２２７）、ステップＳ２３６へ移る。
【０１０２】
受信したファームウェアが制御モジュール１３０に対応するものであると判断すると（ステップＳ２２４で「Ｎｏ」、Ｓ２２８で「Ｙｅｓ」）、ＣＰＵ１１１は、そのファームウェアを制御モジュール１３０へ転送する（ステップＳ２２９）。ＣＰＵ１３１は、フラッシュＲＯＭ１３２内の入出力プログラムをＳ−ＲＡＭ１３３に退避させ（ステップＳ２３０）、その入出力プログラムを用いて、フラッシュＲＯＭ１３２にそのファームウェアを上書きして（ステップＳ２３１）、ステップＳ２３６へ移る。
【０１０３】
受信したファームウェアが制御モジュール１４０に対応するものであると判断すると（ステップＳ２２８で「Ｎｏ」、Ｓ２３２で「Ｙｅｓ」）、ＣＰＵ１１１は、そのファームウェアを制御モジュール１３０を介して制御モジュール１４０へ転送する（ステップＳ２３３）。ＣＰＵ１４１は、フラッシュＲＯＭ１４２内の入出力プログラムをＳ−ＲＡＭ１４３に退避させ（ステップＳ２３４）、その入出力プログラムを用いて、フラッシュＲＯＭ１４２にそのファームウェアを上書きして（ステップＳ２３５）、ステップＳ２３６に移る。なお、ＣＰＵ１１１は、受信したファームウェアが制御モジュール１１０〜１４０のいずれのものでもないと判断すると（ステップＳ２３２で「Ｎｏ」）、再起動を行わずメインルーチンにリターンする。
【０１０４】
図１５に戻って、ＣＰＵ１１１は、ステップＳ２０９において、ファームウェアの書換えジョブの実行指示がないことを判断すると、ステップＳ２１１において、その他の処理、例えば制御モジュール間の各種命令等の通信処理を行って、ステップＳ２０２に戻る。
（１−８．クライアント装置３１の処理の内容）
図１７は、クライアント装置３１のＣＰＵ３０１がプリントジョブを画像処理装置に送信しようとする際に、その度ごとに実行する処理の内容を示すフローチャートである。
【０１０５】
同図に示すように、ＣＰＵ３０１は、ネットワーク、ここではＬＡＮ５１に接続されている画像処理装置１、２・・の台数ｍを計数する（ステップＳ１４１）。この台数の計数は、図１８に示す登録情報テーブル３１１を参照することにより行われる。この登録情報テーブル３１１は、固定記憶装置３０４に格納されているものであり、同図に示すように「番号」、「機種名」、「ＩＰアドレス」および「総予想処理時間」の各欄が設けられている。
【０１０６】
「機種名」および「ＩＰアドレス」は、プリントジョブを送信する宛先となる画像処理装置を示す情報として各画像処理装置について予めユーザにより登録されているものであり、画像処理装置が登録されるごとに、現在の最下段にあるレコードの下に順次追加されていく。したがって、「番号」欄を参照すれば現在ＬＡＮ５１に接続されている画像処理装置の台数ｍを容易に計数することができる。なお、「総予想処理時間」欄には、後述のステップＳ１４９において、各画像処理装置における総予想処理時間が書き込まれるようになっている。
【０１０７】
ステップＳ１４２では、登録情報テーブル３１１に登録されている全ての画像処理装置について、「総予想処理時間」欄に「−１」を書き込む初期化処理を実行する。
そして、ステップＳ１４３でループカウンタｊに「１」を設定し、ステップＳ１４４では、「ｊ」の値と総台数「ｍ」の大きさを比較する。ここでは、ｊ＝１であるとして、ｊ≦ｍと判断し（ステップＳ１４４で「Ｙｅｓ」）、登録情報テーブル３１１のｊ番目、ここでは１番目のレコードに登録されている画像処理装置に対し、総予想処理時間を問い合わせる（ステップＳ１４５）。例えば、その画像処理装置が画像処理装置１である場合には、プリンタコントローラ１２は、このクライアント装置３１からの問い合わせを受けると（上記図１１のステップＳ１１３で「Ｙｅｓ」）、総予想処理時間を算出し（ステップＳ１１４）、その時間を示す情報を当該クライアント装置３１へ送信する処理（ステップＳ１１５）を行うことになる。
【０１０８】
クライアント装置３１のＣＰＵ３０１は、この問い合わせと同期して内部タイマを起動させた後（ステップＳ１４６）、その画像処理装置からの回答の有無を判断する（ステップＳ１４７）。回答がないと判断すると（ステップＳ１４７で「Ｎｏ」）、問い合わせから所定時間経過したか否か（タイムアウトになったか否か）を判断し、まだであると判断すると（ステップＳ１４８で「Ｎｏ」）、ステップＳ１４７に戻る。
【０１０９】
問い合わせした画像処理装置から回答があった、すなわち総予想処理時間を示す情報を受信すると、その時間を１番目に登録されている画像処理装置の「総予想処理時間」欄に上書き保存し（ステップＳ１４９）、ステップＳ１５１に移る。一方、所定時間経過しても回答がない場合には（ステップＳ１４８で「Ｙｅｓ」）、総予想処理時間を書き込むことができず、そのままステップＳ１５０に移る。この場合、その画像処理装置の「総予想処理時間」欄には、「−１」が書き込まれたままとなる。
【０１１０】
ステップＳ１５０では、上記タイマをストップした後リセットし、ステップＳ１５１で、現在のループカウンタの値、ここでは「ｊ＝１」に「１」をインクリメントして、ステップＳ１４４にリターンする。
ステップＳ１４４では、２≦ｍであるか否かを判断し、２≦ｍであれば、登録情報テーブル３１１の２番目のレコードに登録されている装置について、ステップＳ１４５〜Ｓ１５１までの処理を実行する。
【０１１１】
ＣＰＵ３０１は、ステップＳ１４４において、ｊ≦ｍとならなくなるまで、ステップＳ１４５〜Ｓ１５１までの処理を繰り返し行い、各画像処理装置について総予想処理時間の登録を順次行っていく。そして、ｊ≦ｍとならなくなったことを判断すると（ステップＳ１４４で「Ｎｏ」）、ステップＳ１５２に移る。
ステップＳ１５２では、登録情報テーブル３１１の「総予想処理時間」欄を参照して、総予想処理時間が最も短い装置（ただし、その時間が「−１」となっている装置を除く）をプリントジョブの送信先として選択する。そして、選択した画像処理装置にプリントジョブを送信し（ステップＳ１５３）、その装置名をディスプレイ３２０に表示させてユーザに知らせ（ステップＳ１５４）、当該処理を終了する。
【０１１２】
以上、説明したように、本実施の形態のクライアント装置は、プリントジョブを送信する前に、各画像処理装置に対し総予想処理時間を問い合わせ、画像処理装置それぞれは、そのクライアント装置からのその問い合わせを受け付けると、待機中のプリントジョブおよびファームウェアの書換えジョブを順次実行するとした場合に、その実行に要すると予想される総予想処理時間を求め、求めた時間をそのクライアント装置に送信するようにしている。そして、当該クライアント装置は、各画像処理装置からの総予想処理時間を参照し、その時間が最も短い画像処理装置をプリントジョブを送信する装置として選択する。これにより、プリントジョブは、待ち時間が最も少ないと予想される画像処理装置に自動的に送信されることになるので、従来のように、プリントジョブの待ち状況しか把握できないために、待機中のプリントジョブが少ない画像処理装置にプリントジョブを送信してしまい、そのプリントジョブがファームウェアの書換えにより長時間待たされるといった事態が生じにくく、ユーザにとって素早く希望する印刷物を手に入れることができるという効果がある。
【０１１３】
なお、クライアント装置が自動的に総予想処理時間の最も少ない装置を選択する構成でなくても、例えばクライアント装置において各画像処理装置の総予想処理時間を表示できるようにしておき、ユーザがその中から最も適切と考える装置を選択できる構成にすることもできる。
（第２の実施の形態）
上記第１の実施の形態では、画像処理装置が総予想処理時間を求め、その時間をクライアント装置に送信するようにしたが、本実施の形態の画像処理装置は、処理時間が、ファームウェアの書換えジョブの実行に要すると予想される時間とほぼ同等となるダミーのプリントジョブ（以下、「ダミージョブ」という。）を生成し、これを自装置宛のプリントジョブとしてサーバに送信するようにしており、この点が第１の実施の形態と大きく異なっている。以下、第１の実施の形態と異なる部分を中心に説明し、同じ部材については同符号を付し、その説明を省略するものとする。
【０１１４】
（２−１．全体構成）
図１９は、本実施の形態のシステムの全体構成を示す図である。同図に示すように、本実施の形態では、ＬＡＮ５１にサーバ４００が接続されており、クライアント装置４０１、４０２・・は、基本的に上記クライアント装置３１、３２・・と同じであるが、プリントジョブの送信をサーバ４００に対して行うところが異なっている。
【０１１５】
サーバ４００は、ＬＡＮ５１に接続されている各クライアント装置４０１、４０２・・が各画像処理装置１、２・・をプリンタとして共有できるサービスを提供する、いわゆるプリントサーバとしての機能を有する装置である。
画像処理装置１は、画像形成装置１１にプリンタコントローラ５０１が接続されてなる。プリンタコントローラ５０１は、基本的に上記プリンタコントローラ１２と同じ構成であるが、上記ダミージョブの生成等その処理内容が異なっている。以下、その処理内容について詳述する。
【０１１６】
（２−２．プリンタコントローラ５０１の処理内容）
図２０は、プリンタコントローラ５０１の処理内容を示すフローチャートである。
同図に示すように、この処理は、上記実施の形態１のプリンタコントローラ１２の処理内容（図１１）とほぼ同じであるが、図２０には、図１１のＳ１０６、Ｓ１１３〜Ｓ１１５がない点、およびステップＳ４０１、Ｓ４０２、Ｓ４０３が追加された点が第１の実施の形態と異なっている。Ｓ１０６、Ｓ１１３〜Ｓ１１５が削除されているのは、後述のように予想処理時間１、２の算出をサーバ４００が行うようにしているからである。以下、第１の実施の形態と異なるＳ４０１〜Ｓ４０３の処理を中心に説明し、同じ内容については同符号を付すると共にその説明を省略する。なお、説明の都合上、ステップＳ４０３の電子メールのダウンロード処理を先に説明し、その後、ステップＳ４０１、Ｓ４０２の各処理について説明することにする。
【０１１７】
図２１は、ステップＳ４０３の電子メールのダウンロード処理のサブルーチンの内容を示すフローチャートである。
同図に示すように、本実施の形態の電子メールのダウンロード処理は、図１３の電子メールのダウンロード処理（ステップＳ１１０）とほとんど同じであるが、Ｓ１３１が削除されており、Ｓ４１０が追加された点が異なっている。すなわち、ステップＳ１２１〜Ｓ１２５では、プリンタコントローラ５０１は、メールサーバ４３と接続し、新着メールがあれば、それをダウンロードした後、メールサーバ４３との接続を切る。そして、ステップＳ１２６〜Ｓ１３１では、ダウンロードしたメールにファームウェアが添付されていれば、そのファームウェアを取り出し、それを固定記憶装置２０５に保存すると共に、そのファームウェアがどの機種のどの制御モジュールの書換え用のものかを読み出して、その情報をジョブ管理テーブル２１１に登録するものである。
【０１１８】
プリンタコントローラ５０１は、ステップＳ１３１の処理を終えると、続いてステップＳ４１０において、ダミージョブをサーバ４００に送信する処理を行う。具体的には、受信したファームウェアの書換えジョブを実行するとした場合に、その書換えに要すると予想される時間と、自身がプリントジョブを実行する場合のその処理時間がほぼ同一となるダミージョブを生成し、それを自装置宛のプリントジョブとしてサーバ４００に送信するものである。プリンタコントローラ５０１は、このダミージョブを次の方法により生成する。
【０１１９】
１．ファームウェアの書換えに要すると予想される時間を求める。これは、上記（式２）により求められる予想処理時間２に相当するものである。
２．ダミージョブのサイズを求める。これは、次の（式３）により求めることができる。
ダミージョブのサイズ＝（予想処理時間２）／（単位サイズ当たりの処理時間）・・・（式３）
ここで、「単位サイズ当たりの処理時間」は、上記（式１）における「単位サイズ当たりの処理時間」と同じである。
【０１２０】
３．データサイズが、求めたサイズに相当するテキストファイルを作成し、そのテキストデータをプリントデータとしたプリントジョブを生成する。
このテキストファイルは、その先頭に、このプリントジョブがダミーのジョブであることを判別するための文字列からなる識別情報が記述され、その識別情報以降に、任意の文字列、例えば１、２等の数字列のデータが（式３）により求められたサイズ相当分、記述されて構成されるものである。したがって、ファームウェアが通常メガ単位のサイズであることを考えると、このプリントジョブは、一般的なプリントジョブに比べて遥かに大きなサイズとなる。
【０１２１】
４．生成したプリントジョブに、送信元名および宛先名を自装置としたヘッダを付ける。
上記したように、生成されたプリントジョブは、サーバ４００に送信されるが、宛先が自装置と指定されているので、後述するように、サーバ４００は、当該プリントジョブを画像処理装置１に送信することになり、結果的に当該プリントジョブは自装置に戻って来ることになる。
【０１２２】
プリンタコントローラ５０１は、電子メールのダウンロード処理において、ファームウェアを受信するごとに、ダミージョブをサーバ４００に送信する処理を実行する。なお、上記（式２）（式３）における「単位サイズ当たりの処理時間」等の値については、予めＥＰ−ＲＯＭ２０２に格納され、上記演算時に読み出される。
【０１２３】
図２０に戻って、ステップＳ４０１では、サーバ４００から送られてきたプリントジョブが、自身が発行したダミージョブであるか否かを判断する。ダミージョブであると判断すると（ステップＳ４０１で「Ｙｅｓ」）、そのジョブを破棄して（ステップＳ４０２）、ステップＳ１０８に移る。一方、ダミージョブでない、すなわちクライアント装置からのプリントジョブであると判断すると（ステップＳ４０１で「Ｎｏ」）、ステップＳ１０５に移って、そのプリントジョブをスプールした後、ステップＳ１０７においてジョブ管理テーブル２１１に登録する。
【０１２４】
なお、この構成は、他の画像処理装置２・・のプリンタコントローラ５０２・・についても同様である
（２−３．サーバ４００の処理内容）
サーバ４００は、各クライアント装置３１、３２・・からのプリントジョブを受け付けると、それをプリントジョブキュー（不図示）に登録し、これをFIFO(First-In First-Out)方式、すなわち先入れ先出し方式で読み出して画像処理装置に送る装置である。また、図１８に示す登録情報テーブル３１１と同じテーブルを有しており、ＬＡＮ５１に接続されている各画像処理装置１、２・・について、その機種名や総予想処理時間等を把握することができるようになっている。
【０１２５】
なお、本実施の形態では、「総予想処理時間」欄の値は、タイマによって「１」ずつデクリメントされるようになっている。サーバ４００は、ある画像処理装置にプリントジョブを送信する際に、その画像処理装置がそのプリントジョブを実行する場合に要すると予想される処理時間（予想処理時間３）を求め、その時間を「総予想処理時間」欄の現在の値に加算し、その加算して求めた値を新たな総予想処理時間として当該欄に上書きするようにしている。ここで、予想処理時間３は、次の式（４）により求めることができる。
【０１２６】
予想処理時間３＝（プリントデータのサイズ）×（送信先の装置の単位サイズ当たりの印刷処理時間）・・・（式４）
この（式４）から予想処理時間３を求める場合、サーバ４００は、予め送信先となる画像処理装置における単位サイズ当たりの印刷処理時間の情報を取得しておく必要がある。
【０１２７】
したがって、例えばある画像処理装置の「総予想処理時間」欄の現在の値が「１００」秒で、当該画像処理装置へ送信すべきプリントジョブの予想処理時間が「６０」秒と算出された場合、当該欄には「１６０」が新たな値として上書きされることになる。この「１６０」秒は、上書きされた時点での、その画像処理装置において実行中および待機中の全てのプリントジョブが終了するまでに要すると予想される時間を示している。したがって、その画像処理装置に新たなプリントジョブの送信がなされない場合には、その時点から「１６０」秒後に、画像形成装置１１側では全てのプリントジョブが終了し、そしてサーバ４００側における当該テーブルの総予想処理時間欄の値が「０」になることになる。
【０１２８】
サーバ４００は、このような処理をプリントジョブを各画像処理装置に送信するごとに行うようにしており、これにより、この「総予想処理時間」欄を参照すれば、その時点における、各画像処理装置の実質的な待ち時間を知ることができるので、新たなプリントジョブを送信する前に、待ち時間が最も短い装置を送信先として選択することができるようになる。なお、上記（式４）を用いる方法に限られず、例えば単にプリントデータのサイズを予想処理時間とみなして「総予想処理時間」欄に書き込むといった構成にすることもできる。このようにしても、各画像処理装置について、待機中のプリントジョブがどれだけあるかを相対的に知ることができるので、結果的に待ち時間が最も短いと考えられる画像処理装置を選択することができる。
【０１２９】
以下、サーバ４００の制御部（不図示）が実行する処理の内容を図２２に示すフローチャートを用いて説明する。
図２２に示すように、サーバ４００の制御部は、電源が投入されると、まず上記登録情報テーブルの「総予想処理時間」欄の値を全て一旦「０」にリセットする（ステップＳ５０１）。
【０１３０】
そして、ＬＡＮ５１に接続されている画像処理装置１、２・・の台数ｍを計数する（ステップＳ５０２）。この台数の計数は、上記登録情報テーブルを参照することで行われる。
続いて、クライアント装置３１、３２・・のいずれかからプリントジョブを受信したか否かを判断する（ステップＳ５０３）。
【０１３１】
プリントジョブの受信を判断すると、送信先の画像処理装置が指定されているか否かを判断する（ステップＳ５０４）。この判断は、受信したプリントジョブが、クライアント装置からのものである場合、および画像処理装置からのダミージョブである場合双方とも、そのヘッダ部に宛先（装置）指定の情報が含まれているか否かにより行われる。
【０１３２】
装置の指定があると判断すると（ステップＳ５０４で「Ｙｅｓ」）、そのプリントジョブに対する予想処理時間３を上記式（４）により求め、その時間を、登録情報テーブル内の、その指定された画像処理装置の「総予想処理時間」欄の現在の値に加算し、その加算した値を新たな値として当該欄に上書きする（ステップＳ５０５）。そして、指定された画像処理装置にそのプリントジョブを送信して（ステップＳ５０６）、ステップＳ５０２に戻る。
【０１３３】
一方、装置の指定がないと判断すると（ステップＳ５０４で「Ｎｏ」）、ループカウンタｊに「１」を設定し（ステップＳ５０７）、「ｊ」の値と総台数「ｍ」の大きさを比較する（ステップＳ５０８）。ここでは、ｊ＝１であるとして、ｊ≦ｍと判断し、登録情報テーブルのｊ番目、ここでは１番目のレコードに登録されている画像処理装置の「総予想処理時間」欄の現在の値を参照する（ステップＳ５０９）。
【０１３４】
そして、総予想処理時間の値が最小であるか否かを判断する（ステップＳ５１０）。ここでは、１番目のレコードしか参照した値がないため、「Ｙｅｓ」と判断し、その「ｊ」の値、すなわち「１」を記憶する（ステップＳ５１１）。そして、ステップＳ５１２で、現在のループカウンタの値、ここでは「ｊ＝１」に「１」をインクリメントして、ステップＳ５０８にリターンする。
【０１３５】
ステップＳ５０８では、２≦ｍであるか否かを判断し、２≦ｍであれば、登録情報テーブルの２番目のレコードに登録されている装置について、ステップＳ５０９〜Ｓ５１２までの処理を実行する。その際、例えばステップＳ５１０において２番目の装置の総予想処理時間の値が最小であると判断すると、ステップＳ５１１において「１」に代えて「２」を総予想処理時間の値が最小となる「ｊ」の値として記憶する。一方、２番目の装置の総予想処理時間の値が最小でないと判断すると、ステップＳ５１２に移る。
【０１３６】
サーバ４００の制御部は、ステップＳ５０８において、ｊ≦ｍとならなくなるまで、ステップＳ５０９〜Ｓ５１２までの処理を繰り返し行い、総予想処理時間が最小となる装置を見つけ出す。そして、ｊ≦ｍとならなくなったことを判断すると（ステップＳ５０８で「Ｎｏ」）、ステップＳ５１３に移る。
ステップＳ５１３では、レコード番号がＳ５１１にて記憶された「ｊ」の値となる装置を総予想処理時間の値が最小となる装置として選択する。そして、そのプリントジョブに対する予想処理時間３を求め、その時間を、登録情報テーブル内の、その装置の「総予想処理時間」欄の現在の値に加算し、その加算した値を新たな値として当該欄に上書きする（ステップＳ５１４）。
【０１３７】
続いて、選択した画像処理装置にそのプリントジョブを送信し（ステップＳ５１５）、その装置をユーザに知らせるべく、その装置を示す情報をそのプリントジョブを送信してきた（要求した）クライアント装置に送信し（ステップＳ５１６）、ステップＳ５０２に戻る。
以上、説明したように、本実施の形態の画像処理装置１、２・・は、ファームウェアを受信すると、ファームウェアの書換えジョブの実行に要すると予想される時間と処理時間がほぼ同等となると共に宛先を自装置とするダミージョブを生成し、これをあたかも自身（画像処理装置）がクライアント装置であるかのようにしてサーバ４００に送信する。一方、サーバ４００は、各クライアント装置からプリントジョブを、各画像処理装置からダミーのプリントジョブを受信すると共に、各画像処理装置について総予想処理時間を登録情報テーブルにて管理しており、受信したプリントジョブが、宛先指定されていなければ、そのプリントジョブをその時点で総予想処理時間の値が最小の装置、すなわち待ち時間が最も短い装置に送信する。
【０１３８】
したがって、例えば、サーバ４００が画像処理装置２からダミージョブを受信した場合を考えると、登録情報テーブルの画像処理装置２の「総予想処理時間」欄には、例えば図１８に示す「model２」のように、他の装置よりも遥かに大きな値が書き込まれることになる。これより、サーバ４００は、当該ダミージョブを宛先指定がされていることにより画像処理装置２に送信するが、例えばその後すぐにいずれかのクライアント装置から宛先指定のないプリントジョブを受信した場合には、そのプリントジョブを、画像処理装置２以外の待ち時間が最も少ない装置に送信することになる。したがって、従来のようにファームウェアの書換えによりプリントジョブが長時間待たされるといった事態が生じにくく、ユーザにとって素早く希望する印刷物を手に入れることができるという効果がある。また、そのダミージョブは、もちろん画像処理装置２にて破棄されるので、それの印刷処理より用紙が無駄になるということもない。
【０１３９】
また、サーバ４００としては、受信したプリントジョブが宛先指定されていない場合に、各画像処理装置における待機中もしくは実行中のプリントジョブのその処理に要すると予想される時間に応じて宛先を選択できるという従来からの機能を持ってさせいればよい（すなわち、各画像処理装置におけるファームウェアの書換えジョブの実行状況等を検出する構成をあえて有する必要がない）ので、例えば当該機能を有するサーバが接続される既存のシステムに本実施の形態の画像処理装置を接続すれば、その既存のシステムを利用しながら上記同様の効果を得ることができるようになり、コスト的に見ても大変有利である。
【０１４０】
なお、上記プリンタコントローラ５０１は、ダミージョブの生成のために、（式３）により求めたダミージョブのサイズ相当分の文字列のデータを記述したテキストファイルを作成したが、ファームウェアのデータサイズが大きい場合、そのテキストファイルのデータ量も膨大となり、サーバ４００側のメモリ残量に影響を与える場合も生じうる。そこで、例えばテキストファイルとしては１ページ分だけのデータを作成し、そのテキストファイルにその印刷枚数を指定したヘッダ部を付加したプリントジョブ（ダミージョブ）をサーバに送信し、サーバ側ではそのプリントジョブのサイズを判断して送信すべき装置を選択する構成にすることもできる。また、テキストファイルを生成せずに、ダミージョブのサイズを示すデータだけを記述したものをプリントジョブとしてサーバに送信し、サーバ側でそのプリントジョブのサイズを判別する構成などにすることもできる。
【０１４１】
（変形例）
以上、本発明を実施の形態に基づいて説明してきたが、本発明は、上述の実施の形態に限定されないのは勿論であり、以下のような変形例が考えられる。
（１）上記第１の実施の形態では、クライアント装置が、各画像処理装置に対し総予想処理時間を問い合わせ、各画像処理装置から総予想処理時間を受信すると、その時間が最も短い画像処理装置をプリントジョブの送信先として選択するようにしたが、例えばこの処理をサーバが実行するシステムとすることもできる。
【０１４２】
この場合のシステムの例としては、図１９に示すように、複数のクライアント装置とサーバと複数の画像処理装置とをＬＡＮ５１等に接続し、各クライアント装置が、プリントジョブの要求をそのサーバに対して行うようにする。そして、サーバは、クライアント装置からプリントジョブを受信すると（要求を受け付ける）と、上記図１７に示すクライアント装置３１の処理と同じ内容の処理を実行し、待ち時間が最も短いと予想される画像処理装置にそのプリントジョブを送信するようにする。なお、この場合、図１７のステップＳ１５５の処理に代えて、選択した装置を示す情報をプリントジョブの送信元のクライアント装置に送信する処理が行われることになる。
【０１４３】
このように、サーバが、総予想処理時間が最も短い画像処理装置を選択する処理を行う構成にしても、プリントジョブを発行したユーザが、ファームウェアの書換えにより思いも寄らない時間待たされるといった事態が生じにくくなるという上記同様の効果を得ることができる。
（２）上記実施の形態では、クライアント装置から画像処理ジョブとしてプリントジョブを画像処理装置に要求する構成について説明したが、例えば画像処理ジョブとして、セットされた原稿の画像を読み取って、その画像データをジョブの要求元に送信するスキャンジョブを要求できる構成とすることもできる。このような構成の場合、上記予想処理時間１としては、そのスキャンジョブの実行に要すると予想される時間となり、その時間は、例えば（原稿のサイズ）×（単位サイズ当たりの処理時間）により求めることができる。
【０１４４】
（３）上記第１の実施の形態では、プリンタコントローラ１２は、待機中の（未処理となっている）、ファームウェア書換えジョブおよび画像処理ジョブの実行に要する総予想処理時間をクライアント装置に送信するようにしたが、その時間そのものを示す情報を送信する構成に限られず、例えば待機中となっているファームウェアの書換えジョブ等の数量やサイズなど実質的に総予想処理時間の指標となる情報を総予想処理時間に関する情報として送信する構成にすることができる。また、クライアント装置からの問い合わせがあったときにだけその情報を送信する構成に限ることはなく、例えば数秒に１回など任意の時間間隔で各クライアント装置に送信する構成にしてもよい。
【０１４５】
また、総予想処理時間としては、未処理の画像処理ジョブだけに限らず、これに、現に実行中のジョブが終了するまでに要すると予想される処理時間（残処理時間）を加算したものを「総予想処理時間」として求めるようにすることもできる。この残処理時間は、例えばファームウェアの書換えジョブであれば、その書換えが開始されてから、そのジョブに対する予想処理時間２の値をデクリメントしていき、総予想処理時間算出の時点でのその値を、そのジョブの終了までにかかると予想される時間として求めることができる。このようにする場合、求めた残処理時間を、未処理となっている他の画像処理ジョブ（ジョブ管理テーブル２１１に登録されているもの）の予想処理時間に加算して、これを総予想処理時間としてクライアント装置に送信するようにすればよい。クライアント装置側では、現在各画像処理装置が実行中のジョブの処理時間を含んだ状態で、待ち時間の短い装置を選択できるようになる。例えば、ある画像処理装置においてファームウェアの書換えジョブが開始された直後に、クライアント装置から総予想処理時間の問い合わせがあった場合を考えると、そのジョブが終了するまでの時間は長時間となることが多く、これより総予想処理時間も大きな値となる。従って、クライアント装置側では、新たなプリントジョブを送信するに際し、その画像処理装置をそのプリントジョブの送信先として選択しない可能性が極めて高くなり、結果的に、そのプリントジョブを発行したユーザは、ファームウェアの書換えにより長時間待たされるといったことが、より生じにくくなるという効果を得ることができる。
【０１４６】
（４）上記実施の形態では、ファームウェアがメールに添付されて送られて来る場合の例について説明したが、ファームウェアを取得する手段としては、この方法に限られず、例えばファームウェアが記録されたＣＤ−ＲＯＭ等をプリンタコントローラ１２にて直接読み取らせることにより取得するとしてもよい。
（５）上記実施の形態では、ファームウェアを画像処理装置１の各モジュールで実行される起動プログラム、入出力プログラム、画像処理や駆動部材等の制御プログラム等の基本ソフトウエアおよび制御データを示すものとしたが、例えば、計算機処理中に計算機によって動的に修正されることのない種類のプログラムおよびデータ、ユーザに変更されることのないプログラムおよびデータであって、例えばＯＳ、インタープリタ、コンパイラ、ＢＩＯＳ等のような起動プログラムや入出力プログラムをファームウェアとすることもできる。
【０１４７】
（６）上記実施の形態では、プリントジョブ等の実行中、操作パネル１１９からのコピージョブおよび画像情報送信ジョブの入力を受け付けない構成としたが、例えばプリントジョブ実行中であっても、コピージョブを受け付ける構成とすることもできる。
この場合、ＣＰＵ１１１とプリンタコントローラ１２は次のような処理を行う。すなわち、ＣＰＵ１１１は、原稿画像の読み取り動作だけを行って、読み取った画像データを一旦保存しておくと共に、コピージョブを受け付けたことを示す信号をプリンタコントローラ１２に送信する。プリンタコントローラ１２は、ジョブ管理テーブル２１１にコピージョブを登録し、そのジョブの実行順序が来ると、ＣＰＵ１１１に対し実行の指示する。
【０１４８】
ＣＰＵ１１１は、その指示を受け取ると、保存しておいた原稿の画像データを読み出し、その画像データに基づく印刷処理を実行するものである。また、この場合、待機中のジョブには、コピージョブも含まれることになるので、コピージョブについても予想処理時間を求め、それを待機中の他のプリントジョブなどの予想処理時間と合計して総予想処理時間を求めるようにすればよい。なお、コピージョブについての予想処理時間は、例えば（原稿枚数）×（コピー部数）×（用紙１枚当たりのコピー処理時間）で求めることができる。この場合、「用紙１枚当たりのコピー処理時間」については、予め実験等から求めておけばよい。
【０１４９】
（７）上記実施の形態では、画像形成装置１１とプリンタコントローラ１２を別の装置としたが、画像形成装置にプリンタコントローラが内蔵される構成にすることもできる。また、上記実施の形態では、ＭＦＰとしての機能を有する画像形成装置を例にしたが、本発明は、これに限られず、例えばプリンタ、スキャナ、ファクシミリ等の画像処理ジョブを実行する機能を有する画像処理装置一般に適用できる。
【０１５０】
（８）上記実施の形態では、本発明を画像処理装置に適用した場合の例を説明したが、本発明は、これに限られず、コンピュータに上記のような処理を実行させるためのプログラムであるとしてもよい。
また、本発明は、前記プログラムをコンピュータで読取可能な記録媒体、例えばフレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、半導体メモリなどに記録したものとしてもよい。また、上記の本発明のプログラムは、上記に説明した処理をコンピュータに実行させるための全てのモジュールを含んでいる必要はなく、例えば通信プログラムやＯＳ（Operating System）に含まれるプログラムなど、別途にインストールすることができる各種汎用的なプログラムを利用して、本発明の各処理をコンピュータに実行させるようにしてもよい。
【０１５１】
そのプログラムとしては、例えば、「クライアント装置とネットワーク接続され、内蔵するファームウェアを新たなファームウェアに書換えるジョブを実行する手段を有すると共にクライアント装置からの画像処理ジョブを書換えられた後のファームウェアに基づいて実行する画像処理装置の機能をコンピュータに実現させるプログラムであって、待機中の、ファームウェア書換えジョブおよび画像処理ジョブの実行に要する総予想処理時間に関する情報を生成する生成処理と、生成された総予想処理時間に関する情報を前記クライアント装置に送信する送信処理と、をコンピュータに実行させることを特徴とするプログラム」とすることができる。
【０１５２】
また、例えば、「サーバと接続され、内蔵するファームウェアを新たなファームウェアに書換える手段を有すると共に当該サーバからの画像処理ジョブを書換えられた後のファームウェアに応じて実行する画像処理装置の機能をコンピュータに実現させるプログラムであって、処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成する生成処理と、生成されたダミーの画像処理ジョブを、前記サーバに対するクライアント装置として当該サーバに送信する送信処理と、をコンピュータに実行させることを特徴とするプログラム」とすることができる。
【０１５３】
（９）また、本発明を画像形成装置を管理する管理装置（プリンタコントローラ）とすることもできる。その管理装置としては、例えば、「クライアント装置とネットワーク接続されると共に、内蔵するファームウェアを新たなファームウェアに書換えるジョブを実行する手段を有し書換えられた後のファームウェアに応じて画像処理ジョブを実行する画像形成装置と接続される管理装置であって、ファームウェア書換えジョブを受け付ける第１の受付手段と、クライアント装置から画像処理ジョブを受け付ける第２の受付手段と、画像形成装置が画像処理ジョブもしくはファームウェア書換えジョブが実行可能な状況のときに、受け付けたファームウェア書換えジョブもしくは画像処理ジョブを画像形成装置に送信する第１の送信手段と、待機中の、ファームウェア書換えジョブおよび画像処理ジョブの実行に要する総予想処理時間に関する情報を生成する生成手段と、生成された総予想処理時間に関する情報を前記クライアント装置に送信する第２の送信手段と、を備えることを特徴とする管理装置」とすることができる。
【０１５４】
【発明の効果】
【０１５６】
本発明の画像処理装置によれば、処理時間が、ファームウェアの書換えに要する予想処理時間とほぼ同等となると共に宛先を自装置とするダミーの画像処理ジョブを生成し、そのダミーの画像処理ジョブを、サーバに対するクライアント装置として当該サーバに送信する。したがって、サーバが、接続される複数の画像処理装置における待機中もしくは実行中のプリントジョブのジョブ処理時間に応じて宛先を選択できる機能を有してさえいれば、通常のプリントジョブよりも遥かに大きなサイズとなるダミーのプリントジョブを発行した画像処理装置は、そのサーバにより、画像処理ジョブの宛先として選択されない可能性が高くなる。すなわち、クライアント装置側からそのサーバに画像処理ジョブを送信した場合、その画像処理ジョブは、そのサーバにより、ファームウェアの書換え処理を予定している画像処理装置に送信される可能性が極めて低くなり、結果的にその画像処理ジョブを発行したユーザがファームウェアの書換えにより長時間待たされるといった事態が生じにくくなるという効果がある。
【０１５７】
また、画像処理ジョブがダミーのジョブであることを示す識別情報を当該画像処理ジョブのデータに付加するようにすれば、そのジョブがダミーであるか否かを判断できるようになる。
さらに、サーバから送られて来た画像処理ジョブが、自身が生成したダミーのジョブであることを判断すると、その画像処理ジョブを破棄するようにすれば、無駄な画像処理ジョブを実行するといったことを防止できる。
【０１５８】
また、サーバから送られてきた画像処理ジョブのデータに、ダミージョブであることを示す識別情報が付加されている場合に、その画像処理ジョブをダミーのジョブであると判断するようにすれば、自身が付加した識別情報によりその判断を容易に行うことができる。
【図面の簡単な説明】
【図１】第１の実施の形態における画像処理装置を含む画像処理システム６０の構成を示す図である。
【図２】クライアント装置３１の回路構成を示すブロック図である。
【図３】画像形成装置１１の構成を示す図である。
【図４】画像形成装置１１の制御部１００の回路構成を示すブロック図である。
【図５】プリンタコントローラ１２の回路構成を示すブロック図である。
【図６】サービスセンタ９に設置されたＰＣ９０の回路構成を示すブロック図である。
【図７】ＰＣ９０のＣＰＵ９０１が実行する処理の内容を示すフローチャートである。
【図８】登録情報テーブル９６の内容の一例を示す図である。
【図９】ファームウェアの送信処理のサブルーチンの内容を示すフローチャートである。
【図１０】作成された電子メールのメッセージの内容例を示す模式図である。
【図１１】プリンタコントローラ１２のＣＰＵ２０１が実行する処理の内容を示すフローチャートである。
【図１２】ジョブ管理テーブル２１１の内容の一例を示す図である。
【図１３】電子メールのダウンロードの処理のサブルーチンを示すフローチャートである。
【図１４】ジョブ送信処理のサブルーチンの内容を示すフローチャートである。
【図１５】画像形成装置１１のＣＰＵ１１１等が実行する処理の内容を示すフローチャートである。
【図１６】ファームウェアの書き換え処理のサブルーチンの内容を示すフローチャートである。
【図１７】クライアント装置３１のＣＰＵ３０１がプリントジョブを送信する際に実行する処理の内容を示すフローチャートである。
【図１８】登録情報テーブル３１１の内容を示す図である。
【図１９】第２の実施の形態におけるシステムの全体構成を示す図である。
【図２０】プリンタコントローラ５０１の処理内容を示すフローチャートである。
【図２１】第２の実施の形態における電子メールのダウンロード処理のサブルーチンの内容を示すフローチャートである。
【図２２】サーバ４００が実行する処理の内容を示すフローチャートである。
【符号の説明】
１、２    画像処理装置
９    サービスセンタ
１１、２１    画像形成装置
１２、２２、５０１、５０２    プリンタコントローラ
３１、３２、４０１、４０２    クライアント装置
４３、８３    メールサーバ
５０    インターネット
５１、８４    ＬＡＮ
６０    画像処理システム
９０    ＰＣ
１００    制御部
１１０〜１４０  制御モジュール
１１１、１２１、１３１、１４１、２０１、３０１、９０１    ＣＰＵ
１１２、１２２、１３２、１４２    フラッシュＲＯＭ
１１５、１１６、１１７、１２５、１２６、１３５、１４５、２０６    シリアルＩ／Ｆ
１１８、２０７    ビデオＩ／Ｆ
１１９、２０９    操作パネル
１６０    イメージリーダ部
１８０    プリンタ部
２０２    ＥＰ−ＲＯＭ
２１１    ジョブ管理テーブル
３１１    登録情報テーブル
４００    サーバ
【図１】
0003823777.tif 000002
【図２】
0003823777.tif 000003
【図３】
0003823777.tif 000004
【図４】
0003823777.tif 000005
【図５】
0003823777.tif 000006
【図６】
0003823777.tif 000007
【図７】
0003823777.tif 000008
【図８】
0003823777.tif 000009
【図９】
0003823777.tif 000010
【図１０】
0003823777.tif 000011
【図１１】
0003823777.tif 000012
【図１２】
0003823777.tif 000013
【図１３】
0003823777.tif 000014
【図１４】
0003823777.tif 000015
【図１５】
0003823777.tif 000016
【図１６】
0003823777.tif 000017
【図１７】
0003823777.tif 000018
【図１８】
0003823777.tif 000019
【図１９】
0003823777.tif 000020
【図２０】
0003823777.tif 000021
【図２１】
0003823777.tif 000022
【図２２】
0003823777.tif 000023