(57)【要約】【課題】  互いに独立した複数のソフトウェアパーツを組み合わせて実現することでジョブを実行することで、ファームウェアの削除・更新を高速にでき、且つ、タイマジョブを遂行するソフトウェアパーツについて、一般のジョブに支障を来さない範囲で適宜削除・更新する。【解決手段】  画像処理ジョブに関する１つのソフトウェアパーツについて更新する場合、タイマジョブとして実行待ちになっているジョブ中に、更新対象となるソフトウェアパーツが含まれているか否かを判定し（Ｓ１１）、含まれていないと判定した場合には更新処理を行う（Ｓ１２）。また、含まれているが、ネットワーク上の他の画像処理装置が備えるソフトウェアパーツで代替できると判断した場合には、該当するジョブを実行するソフトウェアパーツの再構築し、更新する（Ｓ１５）。また、代替する画像処理装置が存在しないと判断した場合には、その更新要求を保留にするため、保存する（Ｓ１４）。【選択図】  図９
2007108957.tif 000002
【特許請求の範囲】
【請求項１】
互いに独立して実行可能なソフトウェアパーツを記憶する書き換え可能な記憶保持手段を有し、前記ソフトウェアパーツを組み合わせて多種類のジョブを実行する画像処理装置であって、
処理実行タイミングが指定されたタイマジョブを登録する登録手段と、
該登録手段で登録されたタイマジョブの種類に依存し、利用されるソフトウェアパーツを特定する情報を記憶するソフトウェアパーツリスト記憶手段と、
所望とするソフトウェアパーツの変更要求が発生した場合、変更要求対象となるソフトウェアパーツが、前記登録手段で登録されたタイマジョブで利用されているか否かを、前記ソフトウェアパーツリスト記憶手段を参照することで判別する判別手段と
を備えることを特徴とする画像処理装置。
【請求項２】
更に、ネットワーク通信手段と、
登録しようとするタイマジョブを実行する際に利用するソフトウェアパーツの所在を、ローカルな画像処理装置自身、及び、前記ネットワーク通信手段を介して他の画像処理装置の中から検索する検索手段とを備え、
前記ソフトウェアパーツリスト記憶手段は、登録したタイマジョブの種類に応じて、当該タイマジョブを実行する際に利用するソフトウェアパーツを識別する情報と、前記検索手段で検索された画像処理装置の所在情報とを記憶することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判別手段は、変更対象のソフトウェアパーツが、ローカルな画像処理装置自身に記憶されているか否か、及び、代替となる他の画像形成装置に存在するか否かを判別することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判別手段によって、変更対象のソフトウェアパーツがローカルな画像処理装置に存在し、代替となる他の画像処理装置に存在すると判断した場合、代替となる他の画像処理装置で実行させるべく、前記ソフトウェアパーツリスト記憶手段に記憶された情報を再構成する再構成手段と、
前記判別手段によって、変更対象のソフトウェアパーツがローカルな画像処理装置に存在し、代替となる他の画像処理装置に存在しないと判断した場合、要求された変更要求に関する情報を、保留状態に移行する変更保留手段と、
前記判別手段で前記入力手段で入力した変更対象のソフトウェアパーツを利用するタイマジョブが存在しない、或いは、前記変更対象のソフトウェアパーツを所有する代替となる他の画像処理装置が存在すると判断した場合、前記変更要求に従って該当するソフトウェアパーツの変更処理を実行する第１の変更手段と、
実行待ち状態にあるタイマジョブで利用されるソフトウェアパーツ内に、前記変更保留手段で保留された変更要求の対象となったソフトウェアパーツが存在しなくなった場合に、前記変更要求に従って該当するソフトウェアパーツを変更する第２の変更手段と
を備えることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記変更要求には、新バージョンのソフトウェアパーツでの置き換え要求、該当するソフトウェアパーツの削除要求が含まれることを特徴とする請求項１又は４に記載の画像処理装置。
【請求項６】
ソフトウェアを記憶する書き換え可能な記憶保持手段を有し、前記ソフトウェアを稼動することによりジョブを実行する画像処理装置であって、
処理の実行タイミングが指定されたタイマージョブを登録する登録手段と、
前記登録されたタイマジョブに応じたソフトウェアの種類を特定する特定手段と、
ソフトウェアの変更要求が発生した場合、変更要求の対象となるソフトウェアが、前記登録手段により登録したタイマージョブに関連するソフトウェアかを判別する判別手段と、
前記判別手段により関連するソフトウェアと判別した場合に、前記変更要求が発生したソフトウェアの変更処理を抑制する抑制手段と
を有することを特徴とする画像処理装置。
【請求項７】
前記変更要求には更新要求又は削除要求が含まれることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
互いに独立して実行可能なソフトウェアパーツを記憶する書き換え可能な記憶保持手段を有し、前記ソフトウェアパーツを組み合わせて多種類のジョブを実行する画像処理装置の制御方法であって、
処理実行タイミングが指定されたタイマジョブを登録する登録工程と、
該登録工程で登録されたタイマジョブの種類に依存し、利用されるソフトウェアパーツを特定する情報を記憶するソフトウェアパーツリスト記憶工程と、
所望とするソフトウェアパーツの変更要求が発生した場合、変更要求対象となるソフトウェアパーツが、前記登録工程で登録されたタイマジョブで利用されているか否かを、前記ソフトウェアパーツリスト記憶手段を参照することで判別する判別工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項９】
請求項８に記載の各工程をコンピュータに実行させ、画像処理装置として機能させるためのコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
ソフトウェアを記憶する書き換え可能な記憶保持手段を有し、前記ソフトウェアを稼動することによりジョブを実行する画像処理装置の制御方法であって、
処理の実行タイミングが指定されたタイマージョブを登録する登録工程と、
前記登録されたタイマジョブに応じたソフトウェアの種類を特定する特定工程と、
ソフトウェアの変更要求が発生した場合、変更要求の対象となるソフトウェアが、前記登録工程により登録したタイマージョブに関連するソフトウェアかを判別する判別工程と、
前記判別工程により関連するソフトウェアと判別した場合に、前記変更要求が発生したソフトウェアの変更処理を抑制する抑制工程と
を有することを特徴とする画像処理装置の制御方法。
【請求項１２】
請求項１１に記載の各工程をコンピュータに実行させ、画像処理装置として機能させるためのコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１４】
互いに独立して実行可能なソフトウェアパーツを記憶する書き換え可能な記憶保持手段と、当該ソフトウェアパーツを組み合わせて１のジョブを実行する画像処理装置であって、
処理すべきジョブを記憶する記憶手段と、
所望のソフトウェアパーツを新バージョンのソフトウェアパーツで更新を行う際、更新対象となるソフトウェアパーツを利用しないジョブが前記記憶手段に存在するか否かを判断する判断手段と、
該判断手段で前記更新対象となるソフトウェアパーツを利用しないジョブが存在すると判断した場合、当該ジョブの実行期間を、新バージョンのソフトウェアパーツの更新するタイミングとして決定する第１のタイミング決定手段と、
前記判断手段で前記更新対象となるソフトウェアパーツを利用するジョブのみが存在すると判断した場合、前記記憶手段に記憶されているジョブの遂行する際の各フェーズ毎に要する処理時間と、前記新バージョンのソフトウェアパーツの更新に要する時間とから、前記新バージョンのソフトウェアパーツの更新処理と並行して実行可能なジョブ、及びフェーズを検出することで、更新タイミングを決定する第２のタイミング決定手段と、
前記第１のタイミング決定手段、或いは、前記第２のタイミング決定手段で決定されたタイミングになった場合、前記新バージョンのソフトウェアパーツの更新を実行する更新手段と
を備えることを特徴とする画像処理装置。
【請求項１５】
前記第２のタイミング決定手段で、前記新バージョンのソフトウェアパーツの更新処理と並行して実行可能なジョブ、及びフェーズが検出できなかった場合、全ジョブが完了した後に前記新バージョンのソフトウェアパーツで更新することを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
更に、ネットワーク通信手段を有し、当該ネットワーク通信手段を介して、前記新バージョンのソフトウェアパーツを取得することを特徴とする請求項１４に記載の画像処理装置。
【請求項１７】
原稿読取手段、印刷手段、Ｆａｘ通信手段を更に備え、前記ネットワーク通信手段の組み合わせにより、ネットワークプリンタ、原稿複写、原稿画像データのＦａｘ送信、原稿画像を添付した電子メール機能を有することを特徴とする請求項１６に記載の画像処理装置。
【請求項１８】
互いに独立して実行可能なソフトウェアパーツを記憶する書き換え可能な記憶保持手段と、当該ソフトウェアパーツを組み合わせて１のジョブを実行する画像処理装置の制御方法であって、
処理すべきジョブを所定の記憶手段に格納する格納工程と、
所望のソフトウェアパーツを新バージョンのソフトウェアパーツで更新を行う際、更新対象となるソフトウェアパーツを利用しないジョブが前記記憶手段に存在するか否かを判断する判断工程と、
該判断工程で前記更新対象となるソフトウェアパーツを利用しないジョブが存在すると判断した場合、当該ジョブの実行期間を、新バージョンのソフトウェアパーツの更新するタイミングとして決定する第１のタイミング決定工程と、
前記判断工程で前記更新対象となるソフトウェアパーツを利用するジョブのみが存在すると判断した場合、前記記憶手段に記憶されているジョブの遂行する際の各フェーズ毎に要する処理時間と、前記新バージョンのソフトウェアパーツの更新に要する時間とから、前記新バージョンのソフトウェアパーツの更新処理と並行して実行可能なジョブ、及びフェーズを検出することで、更新タイミングを決定する第２のタイミング決定工程と、
前記第１のタイミング決定工程、或いは、前記第２のタイミング決定工程で決定されたタイミングになった場合、前記新バージョンのソフトウェアパーツの更新を実行する更新工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項１９】
請求項１８に記載の各工程をコンピュータに実行させ、画像処理装置として機能させるためのコンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多機能画像処理装置におけるソフトウェアパーツの更新技術に関するものである。
【背景技術】
【０００２】
ネットワークの利用が進み、ネットワーク上に様々なデバイスを設置することが行われている。通常、ネットワークには、各クライアントＰＣで共有する装置、例えば画像処理装置（印刷装置や、印刷・ＦＡＸ・スキャナ・コピー等の複数の機能を有する複合機）を設置している。このような画像処理装置は、内部にＣＰＵ（プロセッサ）を搭載し、クライアントから受信したジョブを解析し、処理することが行われる。
【０００３】
画像処理装置が実行できる機能は、その装置のハードウェアリソースの範囲内であれば、ＣＰＵが実行するプログラム（ファームウェア）を更新することで、容易に変更、追加することができる。また、通常、ジョブを受信した場合には、そのジョブをキューに登録し、順次実行することが多い。
【０００４】
さて、上記のような画像処理装置において、ファームウェアを更新する場合には、その更新中に新たなジョブを受信することがないように、オフラインにした上でファームウェアの更新を行う。
【０００５】
かかる技術に関連するものとして、ファームウェアの書き換えとプリントジョブの実行の最適化を目的とする技術が提案されている（例えば、特許文献１）。この技術は、プリントジョブとファームウェアの更新が同時に発生した場合、プリントジョブを他の画像処理装置に転送し、その転送後にファームウェアを更新するというものである。
【特許文献１】特開２００３−０５４０８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方、投入と同時に処理が実行されるジョブとは異なり、実行タイミングが指定されるタイマージョブが知られている。しかしながら、ジョブキュー（ジョブ実行キュー）にジョブが登録されていないことを理由に、ソフトウェアを更新又は削除した場合に不都合を生じることがある。例えば、実際にはタイマージョブが登録されており、後にタイマージョブを実行する為にジョブ実行キューにタイマージョブを登録すると、タイマージョブ登録時のソフトウェアが変更又は削除されており不都合を生じることがある。
【０００７】
一方、これまでの技術のファームウェアの更新は、画像処理装置におけるジョブの未登録が前提であった。ジョブを登録したままでも、ソフトウェア更新が行える行えるよう改善が望まれる。
【０００８】
本発明はかかる問題点に鑑みなされたものであり、画像処理装置に登録されるタイマージョブを考慮したソフトウェア変更を行える技術を提供しようとするものである。
【０００９】
また、ジョブを登録したままでも、ソフトウェア更新が行える行える技術を提供しようとするものである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
互いに独立して実行可能なソフトウェアパーツを記憶する書き換え可能な記憶保持手段を有し、前記ソフトウェアパーツを組み合わせて多種類のジョブを実行する画像処理装置であって、
処理実行タイミングが指定されたタイマジョブを登録する登録手段と、
該登録手段で登録されたタイマジョブの種類に依存し、利用されるソフトウェアパーツを特定する情報を記憶するソフトウェアパーツリスト記憶手段と、
所望とするソフトウェアパーツの変更要求が発生した場合、変更要求対象となるソフトウェアパーツが、前記登録手段で登録されたタイマジョブで利用されているか否かを、前記ソフトウェアパーツリスト記憶手段を参照することで判別する判別手段とを備える。
【発明の効果】
【００１１】
本発明によれば、画像処理装置に登録されるタイマージョブを考慮したソフトウェア変更を行える。
【００１２】
また、他の発明によれば、ジョブを登録したままでも、ソフトウェア更新が行える行える。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１４】
＜第１の実施形態＞
第１の実施形態を説明する。
【００１５】
まず本実施形態に関わるネットワーク上のシステム構成の一例を、図１を参照しながら説明する。
【００１６】
ローカルエリアネットワーク（ＬＡＮ）４０上には、パーソナルコンピュータ等の汎用情報処理装置（以下、ＰＣ）１０、１１、複写機やプリンタなどの画像形成装置２０、２１、２２、２３が存在する。ネットワークは、ＬＡＮだけでなく、インターネットでも構わない。また、図１は、ＰＣが２台、画像形成装置が４台が接続されている例を示しているが、これらの数に制限はないし、接続されるノードもＰＣ、画像形成装置以外のデバイスを含んでも構わない。
【００１７】
次に、図２にて画像形成装置（ＭＦＰ）２０、２１、２２、２３のコントローラブロック図の一例を説明する。
【００１８】
メインコントローラ１１１は、主にＣＰＵ１１２と、バスコントローラ１１３、各種Ｉ／Ｏコントローラ回路とから構成される。ＣＰＵ１１２とバスコントローラ１１３は制御装置１１０全体の動作を制御するものであり、ＣＰＵ１１２はブート時にＲＯＭ１１４からＲＯＭ Ｉ／Ｆ１１５を経由して読込んだブート用プログラムに基づいて動作する。
【００１９】
バスコントローラ１１３は各Ｉ／Ｆから入出力されるデータ転送を制御するものであり、バス競合時の調停やＤＭＡデータ転送の制御を行う。ＤＲＡＭ１１６はＤＲＡＭ Ｉ／Ｆ１１７によってメインコントローラ１１１と接続されており、ＣＰＵ１１２が処理するプログラムをロードするため、及び、ＣＰＵ１１２のワークエリアや、画像データを蓄積するためのエリアとして使用される。Ｃｏｄｅｃ１１８は、ＤＲＡＭ１１６に蓄積されたラスターイメージデータをMH/MR/MMR/JBIG/JPEG等の方式で圧縮し、また逆に圧縮され蓄積されたコードデータをラスターイメージデータに伸長（デコード）する。ＳＲＡＭ１１９はＣｏｄｅｃ１１８の一時的なワーク領域として使用される。Ｃｏｄｅｃ１１８はＩ／Ｆ１２０を介してメインコントローラ１１１と接続され、ＤＲＡＭ１１６との間のデータの転送は、バスコントローラ１１３によって制御されＤＭＡ転送される。
【００２０】
Graphic Processor１３５は、画像回転、変倍処理の処理を行う。外部通信Ｉ／Ｆ１２１はＩ／Ｆ１２２によってメインコントローラ１１１と接続され、コネクタ１２２によってネットワーク４０や公衆回線と接続される。汎用高速バス１２５には、拡張ボードを接続するための拡張コネクタ１２４とＩ／Ｏ制御部１２６とが接続される。汎用高速バスとしては、一般的にＰＣＩバスがあげられる。Ｉ／Ｏ制御部１２６には、図示しないリーダー装置、プリンタ装置の各ＣＰＵと制御コマンドを送受信するための調歩同期シリアル通信コントローラ１２７が２チャンネル装備されている。このため、Ｉ／Ｏ制御部１２６には、Ｉ／Ｏバス１２８によって外部Ｉ／Ｆ回路１４０、１４５が接続されている。パネルＩ／Ｆ１３２は、ＬＣＤコントローラ１３１に接続され、図示しない操作部上の液晶画面に表示を行うためのＩ／Ｆを備える。また、パネルＩ／Ｆ１３２には、ハードキーやタッチパネルキーの入力を行うためのキー入力Ｉ／Ｆ１３０を有する。リアルタイムクロックモジュール１３３は、機器内で管理する日付と時刻を更新/保存するためのもので、バックアップ電池１３４によってバックアップされている。
【００２１】
Ｅ−ＩＤＥインタフェース１６１は、外部記憶装置を接続するためのものである。本実施形態においては、このＩ／Ｆを介してハードディスクドライブ１６０を接続し、ハードディスク１６２へ画像データを記憶させたり、ハードディスク１６２から画像データを読み込ませたりする動作を行う。ハードディスク１６２には、本実施形態に係るＯＳをはじめ、各種ソフトウェアコードが保存されており、このソフトウェアコードのアップデイト処理などにも利用される。
【００２２】
ソフトウェアコードは、いくつかのソフトウェアパーツに分かれており、それらのソフトウェアパーツそれぞれが、アップデイト、もしくは削除可能なパーツとなっている。このソフトウェアパーツのアップデイト処理時には、先ず、このハードディスク内にテンポラリ領域を設け、そのテンポラリ領域にアップデイトする新しいソフトウェアパーツを一時的に保存する。その後、正式な保存領域に格納されたソフトウェアパーツのアップデイト処理を行う。また、アップデイト処理を行う際は、同じハードディスク内に設けたバックアップ領域に、バックアップを行ってから実際のアップデイト処理が行われる。
【００２３】
コネクタ１４２と１４７は、それぞれ図示しないリーダー装置やプリンタ装置に接続され、同調歩同期シリアルＩ／Ｆ(１４３,１４８)とビデオＩ／Ｆ(１４４,１４９)とから構成される。スキャナＩ／Ｆ１４０は、コネクタ１４２を介してリーダー装置と接続され、また、スキャナバス１４１によってメインコントローラ１１１と接続されている。また、スキャナＩ／Ｆ１４０は、リーダー装置から受け取った画像に対して所定の処理を施す機能を有し、さらに、リーダー装置から送られたビデオ制御信号をもとに生成した制御信号を、スキャナバス１４１に出力する機能も有する。スキャナバス１４１からＤＲＡＭ１１６へのデータ転送は、バスコントローラ１１３によって制御される。
【００２４】
プリンタＩ／Ｆ１４５は、コネクタ１４７を介してプリンタ装置（プリンタエンジン）と接続されている。このプリンタＩ／Ｆ１４５は、プリンタバス１４６によってメインコントローラ１１１と接続されており、メインコントローラ１１１から出力された画像データに所定の処理を施して、プリンタ装置へ出力する機能を有する。また、プリンタＩ／Ｆ１４５は、プリンタ装置から送られたビデオ制御信号をもとに生成した制御信号を、プリンタバス１４６に出力する機能も有する。ＤＲＡＭ１１６上に展開されたラスターイメージデータのプリンタ装置への転送は、バスコントローラ１１３によって制御され、プリンタバス１４６、ビデオＩ／Ｆ１４９を経由して、プリンタ装置へＤＭＡ転送される。
【００２５】
上記構成において、本実施形態の画像形成装置２０に電源が投入されると、ＣＰＵ１１２は、ＲＯＭ１１４のブートプログラムに従って装置全体の初期化処理を行なう。次いで、ハードディスクドライブ１６０を制御し、ハードディスク１６２に記憶されたＯＳ（マルチタスクＯＳ）をＤＲＡＭ１１６に読み込む。この後、必要に応じて、各種プログラムパーツを同様にハードディスク１６２からＲＡＭ１１６に読み込み実行することで、複合機（ＭＦＰ）として機能する。
【００２６】
ここで、各種プログラムパーツは、それぞれが独立して実行するスレッドとして実行されるものであり、様々なものが含まれる。実施形態における画像形成装置は、スキャナ機能、プリンタ機能、複写機能、ファクシミリ機能、電子メール機能を搭載する。ここでスキャナ機能（原稿を読取る機能）に着目すると、原稿読み込みのための各種設定操作を行うためのＵＩ制御、実際に設定されたパラメータに従って原稿を読込むスキャナ制御を有する。また、スキャナ機能には、読み込まれた原稿画像に対して各種補正処理を行う画像処理、並びに、送信（ファイルサーバ等のＰＣ）に送信する処理も含まれる。これらはそれぞれがプログラムパーツとして互いに連携して処理する。このようにするとことで、例えば、複写機能でも、原稿を読込むためのスキャナ制御を共通のものとすることができ、装置のプログラム開発、管理を容易にできると共に、各プログラムパーツの更新や削除等の変更も容易にできるようになる。また、プリンタ機能（ネットワークプリンタ機能）や、複写機能でも、最終的にプリンタエンジンを利用して印刷を行うものであるので、プリンタエンジン制御に係るプログラムパーツを共通なものとすることができるのは理解できよう。
【００２７】
次に、図３にて、図１におけるＰＣ１０（ＰＣ１１も同様）の内部構成の一例を説明する。
【００２８】
ＣＰＵ４１０１は、全体の制御を行う中央演算装置であり、電源投入時はＲＯＭ４１０５に格納されたブートプログラムに従って起動し、装置全体の初期化を行う。そして、ハードディスクユニット４１０６に記憶されたＯＳをメモリ４１０４（ＲＡＭ）にロードし、ＯＳを起動する。この後は、ユーザの指示に従って、ハードディスク４１０６に格納された所望とするアプリケーションプログラムをメモリ４１０４に読み込み、文書編集等を行うことになる。
【００２９】
ネットワークインタフェース４１０２は、他の機器との間でネットワーク４０を介したデータ通信を行うための制御部である。ＣＰＵ４１０１によって実行されるソフトウェアは、ＬＡＮ４０を介して、印刷デバイスや他のネットワーク機器、あるいは他のコンピュータと双方向のデータのやり取りを行うことができる。周辺インタフェース４１０３は、周辺機器の制御を行うための制御部である。
【００３０】
ハードディスクユニット４１０５は、上記の通り、ＯＳ、各種アプリケーションプログラム、プリンタドライバをはじめ、各アプリケーションで作成されたデータファイルを格納する。
【００３１】
ディスプレイインタフェース４１０７は、ＰＣの内部状態や、実行状態などを表示するための表示部を接続するため制御部である。キーボードインタフェース４１０８やマウスインタフェース４１０９は、計算機４１００に対してユーザがデータや命令を入力するための入力装置を接続できる。周辺機器インタフェース４１０３は、ＵＳＢ、ＲＳ−２３２Ｃシリアル、ＩＥＥＥ１３９４などの仕様を実装した周辺機器を接続するための制御部である。
【００３２】
次に、図４に、実施形態における画像形成装置２０（他の装置も同様）のソフトウェアパーツのブロック図の一例を説明する。これらソフトウェアパーツは先に説明したように、当初はハードディスク１６２に格納されているものであり、装置が複合機として機能する際にはＤＲＡＭ１１６に読み込まれ、ＣＰＵ１１２によって実行されるものである。
図中、２０１はＵＩ制御モジュールであり、画像形成装置の操作パネルからのユーザの操作を受け付け、下位のアプリケーション層に情報を渡したり、操作パネルに表示するビットマップ画像を決定したりする。２０２はＦａｘアプリであり、ＵＩ制御モジュールからの指示に従い、アドレス帳のハンドリングをしたり、Ｆａｘ送信の指示を出したりする。２０３は送信アプリであり、ＵＩ制御モジュールからの指示に従い、アドレス帳のハンドリングをしたり、Ｅ−Ｍａｉｌ送信やＦＴＰ送信などのプロトコル種に応じた制御を行ったりして、送信処理の指示を出す。
【００３３】
２０５はＢｏｘアプリであり、Storageデバイス（実施形態ではハードディスク１６２）に配備されたBox領域への格納指示や、文書の移動やコピーなどの操作を行う。２０６はコピー（複写）アプリであり、いわゆるコピー動作を指示する。２０４はスキャナ制御モジュールであり、スキャナ装置を制御するためのモジュールである。２１２は画像処理モジュールであり、スキャンした画像の回転や拡大・縮小、などの画像処理を行うモジュールである。２０７はLocalプリントアプリであり、Storageに保存された文書をプリント指示したり、ログのレポートなどのプリントを指示したりする。２０８はデータ受信モジュールであり、例えば外部からのＰＤＬデータを受信するモジュールである。２１５は展開処理モジュールであり、ＰＤＬデータをラスターイメージに展開する処理を行う。２１０はＦａｘ制御モジュールであり、Ｆａｘデバイスを制御する。２１１は送信制御モジュールであり、Ｅ−Ｍａｉｌなどのプロトコル処理を行うモジュールである。２１３はStorage制御モジュールであり、ハードディスク内に領域が確保されたStorageデバイスを制御するモジュールである。２１４はプリンタ制御モジュールであり、プリンタデバイスを制御する。２０９は表示制御アプリであり、例えばＰＤＬの受信状況など、デバイスの状況をUI制御モジュールに渡すための情報を整理するアプリである。２１６は通信制御モジュールであり、各ソフトウェアパーツ間の通信を司る役目を果たす。この通信の仕組みに関しては、図７で詳述する。
【００３４】
上記のように、実施形態における画像形成装置は、様々な独立したソフトウェアパーツが用意され、且つ、それらが互いに連携することで、１つのジョブ処理を遂行することになる。各ソフトウェアパーツの通信は、ＩＰアドレスとポート（もしくは引数）を介して行われる。１つの画像形成装置内での処理の場合、ＩＰアドレスは同じであり、不要に思われる。しかしながら、実施形態では、複数の画像形成装置がネットワーク４０に接続されており、且つ、それぞれの画像形成装置が自身が備えるリソース（スキャナ、プリンタエンジン等のハードウェア資源は勿論のこと、各種処理のソフトウェア資源）を互いに共有する。そのため、ソフトウェアパーツ間の通信にはＩＰアドレスを用いた。勿論、ネットワークを介しての通信が行えれば良い。ＩＰアドレスの代わりにネットワーク上のユニークな名前を用いて通信を行なっても構わない。
【００３５】
例えば、或る画像形成装置Ａにて、複写機能を実行する場合、すなわち、原稿の読取や複写に関する諸設定（複写部数やステイプルする／しない等）を行ない、原稿を読取り、印刷する場合に考察する。この場合、実行されるソフトウェアパーツは、操作パネルのＵＩ制御２０１、コピーアプリ２０６、スキャナ制御アプリ２０４、画像処理アプリ２１２、プリンタ制御アプリ２１４、更には、それらの連携処理を制御する通信制御アプリ２１６を必要とする。ここで、仮に、プリンタ制御アプリ２１４が、何らかの理由で、画像形成装置Ａで実行できない場合、他の画像形成装置Ｂが有するプリンタ制御アプリ２１４を利用することも可能である。なお、画像形成装置Ａでプリンタ制御アプリ２１４が実行できない理由としては、そのプリンタ制御アプリを削除した場合、或いは、ユーザが意図的に印刷出力先として画像形成装置Ｂを指定した場合等がある。
【００３６】
上記の如く、画像形成装置Ａにて、実行できないソフトウェアパーツについては、他の画像形成装置Ｂが有するソフトウェアパーツで代替する。そのため、画像形成装置Ａがネットワーク４０上に画像形成装置Ｂが存在すること、及び、その画像形成装置Ｂが有するソフトウェアパーツを検出することが必要になる。かかる技術としてが、ＵＰｎＰ等の技術を利用、もしくは、それを更に発展させることで実現できる。
【００３７】
次に、実施形態におけるタイマジョブについて説明する。タイマジョブとは、ユーザが日タイミング指定し、その指定されたタイミングに処理を実行することを目的とするジョブを言う。ここでのタイミングとはユーザによる指定日時（分及び秒なども含む）により決定される場合、及び、指定時間の経過により決定される場合の何れも想定される。
【００３８】
例えば、ＰＣ１０上にて、文書編集等のアプリケーションを起動し、印刷指示する際に、印刷の出力時刻を指定する場合等がある。これは、指定した時刻に会議を行うことが予めわかっていて、その為の資料をその会議開催に向けて予め印刷指示しておくものと考えれば分かりやすい。また、指定したタイミングになったら、読み込んだ原稿画像を電子メールに添付して送信する場合等にも対処できる。
【００３９】
上記のように、タイマジョブが発生すると、そのタイマジョブに関する情報は、ハードディスク１６２に予め確保されたタイマジョブリストに追加・格納し、その時刻の管理が行われる。そして、その時刻になった場合に、そのジョブについての未処理となっている各部分的な処理を、それに関連する各種ソフトウェアパーツを実行することで処理を行う。このとき、実施形態では、そのタイマジョブに利用されるソフトウェアパーツリストも併せて記憶するものとした。この理由は、実施形態では、ソフトウェアパーツがタイマジョブとして管理された後でも、各種ソフトウェアパーツの削除やアップデートを効率良く行うためである。なお、ソフトウェアパーツの削除、アップデート（更新）は、ネットワーク４０を介してＰＣ１０等で画像形成装置のファームウェア（ソフトウェアパーツ）アップデートアプリケーションを起動することで行われる。すなわち、ＰＣ１０等でアップデートアプリケーションを起動し、ネットワーク上の画像形成装置のＩＰアドレスを指定して、削除、アップデートを行うコマンドを発行する。アップデートの場合には後続してアップデート対象となるソフトウェアパーツ情報をその識別情報と共に、指定されたＩＰアドレス（画像形成装置）に送信する。なお、画像形成装置が有する拡張コネクタ１２４に、フレキシブルディスクやメモリカード等の記憶媒体をアクセスするドライブを接続している場合もある。このような装置では、変更要求情報を記憶した記憶媒体をそのドライブにセットし、操作パネルからの指示に応じて、アップデートするようにしても構わない。
【００４０】
図５は、画像形成装置Ａ（図１の画像形成装置２０乃至２３のいずれか）のハードディスク１６２に格納されたタイマージョブリストの一例を示している。
【００４１】
登録されたタイマージョブは、そのジョブの種類とタイマージョブのキューを管理するための登録番号、タイマージョブの開始タイミングが管理される。また、タイマージョブを使用するために割り当てられたソフトウェアパーツとそのホスト名、並びにその所在地(ＩＰアドレス)、さらには他の利用可能なソフトウェアパーツとそのホスト名、並びにその所在(ＩＰアドレス)も図５のように管理される。
【００４２】
タイマジョブの登録処理の詳細は後述するが、タイマジョブを登録する際には、個々のタイマジョブをユニークに管理するため、登録番号を発行する。また、そのジョブに利用されるソフトウェアパーツを抽出し、そのソフトウェアパーツの所在する画像形成装置のＩＰアドレスを格納する。なお、登録するＩＰアドレスは、そのジョブを受信した画像形成装置のＩＰアドレスを優先する。
【００４３】
さて、図５では、例えば登録されたタイマージョブが２つのＥ−Ｍａｉｌ（電子メール）送信、１つのコピーの例を示している。
【００４４】
Ｅ−Ｍａｉｌ送信の１つ目のジョブに関しては、登録番号が００１００、処理時刻（タイマジョブが発生した日時より未来）が２００５年９月５日の１０時００分であることを示している。また、使用するソフトウェアパーツがＵＩ制御モジュール、送信アプリ、スキャナ制御モジュール、画像処理モジュール、送信制御モジュールで構成されることを示している。また、最優先のホストはすべてＡ（ローカル）、ＩＰアドレスはすべて１７２.２４.１１.１１１となっている。また、２番目以降の利用可能なソフトウェアパーツとして、画像処理モジュールのソフトウェアパーツがホスト名Ｂ、IPアドレスが１７２.２４.１１.１１２のもの、ホスト名がＣ、ＩＰアドレスが１７２.２４.１１.１１３のものが登録されている。
【００４５】
また、送信制御モジュールのソフトウェアパーツがホスト名Ｘ、ＩＰアドレスが１７２.２４.１１.１１５のもの、ホスト名Ｙ、ＩＰアドレスが１７２.２４.１１.１１６のもの、ホスト名がＺ、ＩＰアドレスが１７２.２４.１１.１１７のものが登録されている。
【００４６】
さらに、２つ目のＥ−Ｍａｉｌ送信、１つのコピーに関しても図示のように登録されている。
【００４７】
ここで、上記のタイマジョブリストが管理されている状況で、画像形成装置Ａにおけるソフトウェアパーツの削除・更新依頼が発生した場合について説明する。ここでは、Ｅ−Ｍａｉｌにおける送信制御モジュールを削除依頼が発生した場合である。
【００４８】
画像形成装置Ａにおける送信制御モジュールが削除されると、画像形成装置ＡのＣＰＵ１１２は、その送信制御モジュールの代替ホスト（画像形成装置Ａ以外の画像形成装置）が存在するか否かをタイマジョブリストを参照することで判断する。そして、代替ホストが存在することが確認できた場合には、タイマジョブリストの中の、送信制御モジュールを実行するホスト名「Ａ」とそのＩＰアドレスを削除し、２番目以降のホスト名とＩＰアドレスを繰り上げる。
【００４９】
また、代替ホストが存在しない場合には、Ｅ−Ｍａｉｌに関する送信制御モジュールの削除は一時的に保留状態にする。この保留状態は、タイマジョブリスト中に未完のＥ−Ｍａｉｌジョブが存在する限り維持する。換言すれば、タイマジョブを順次行って、未完のＥ−Ｍａｉｌジョブが存在しなくなった場合に、要求された送信制御モジュールを削除する。
【００５０】
上記の如く、ソフトウェアパーツの削除要求が発生した場合であっても、それを利用したジョブが実行可能な状態を維持することが可能になる。
【００５１】
図６は、代替ホストが存在する場合の、タイマジョブリストの構成を示している。図示のように、Ｅ−Ｍａｉｌジョブにおいて、送信制御モジュールの実行するホスト名「Ａ」が削除されて、代替ホスト名「Ｘ」及びそのＩＰアドレスが繰り上がっている。
【００５２】
次に図７にて、図４で説明した、各ソフトウェアパーツ間の通信を司る、通信制御モジュール２１６の処理の一例について説明する。
【００５３】
通信制御モジュールは分散オブジェクトの概念を実現するためのモジュールである。
【００５４】
通信制御モジュール以外の各ソフトウェアパーツは、その処理結果を送信する相手先モジュールを問わず通信処理を可能とする。
【００５５】
Ｅ−Ｍａｉｌの場合、ＵＩ制御モジュール２０１Ａは、通信制御モジュール２１６Ａにその指示を渡す。これに伴い、通信制御モジュールは、送信アプリ２０３ＡにＥ−Ｍａｉｌ送信の指示を出す。つまり、ジョブの種類毎に決まった順序で、各ソフトウェアパーツから受信した情報を、下位に位置するソフトウェアパールに送信することで、ジョブを遂行していく。
【００５６】
図５の状態、すなわち、ソフトウェアパーツの削除がない場合のＥ−Ｍａｉｌタイマジョブの場合には、通信制御モジュール２１６Ａは、先ず、ＵＩ制御モジュール２０１Ａを起動し、処理項目を選択させる。ここでは、Ｅ−Ｍａｉｌの例を説明しているので、ユーザはＥ−Ｍａｉｌのタイマジョブを選択することになる。通信制御モジュール２１６Ａが、Ｅ−Ｍａｉｌタイマジョブが指示されたと判断すると、次いで、Ｅ−Ｍａｉｌの送信アプリ２０３Ａを起動し、原稿の読取りにかかる諸設定、送信先メールアドレス、及び送信するタイミングを入力させる。この結果、上記情報が取得されるので、通信制御モジュール２１６Ａは、その内の原稿読み取りに関する情報と、出力先としてハードディスク１６２に、その際のファイル名を指示する情報をスキャナ制御モジュール２０４Ａに渡し、原稿の読取りを開始させる。
【００５７】
以上の結果、ハードディスク１６２には、Ｅ−Ｍａｉｌ送信用の画像データファイルが格納されることになる。この後は、図７のタイマジョブで指示されたタイミングになるのを待ち、その日時になったと判断した場合、ハードディスク１６２に格納された画像データに対して所定の画像処理をおこなうべく、画像処理モジュール２１２Ａを起動する。そして、その画像処理の結果である画像データ、及び、送信宛て先メールアドレスを、起動した送信制御モジュール２１１Ａに渡して、Ｅ−Ｍａｉｌ送信を行わせることになる。
【００５８】
ここで、図６のように、ホストＡの送信制御モジュール２１１Ａを削除した場合について考察する。この場合、ホストＡの送信制御モジュール２１１Ａは利用できない（図７の破線部分）。従って、画像処理モジュールで生成された画像データを、ホストＸ（ＩＰアドレスが１７４．２４．１１．１１５）の画像形成装置２１の送信制御モジュール２１１Ｘに向けて送信する。この後の処理は、Ｅ−Ｍａｉｌ送信処理がホストＸで行う点が異なるだけであるので、説明は不要であろう。
【００５９】
先ず、実施形態におけるタイマジョブの登録処理を図８のフローチャートに従って説明する。
【００６０】
先ず、ステップＳ１において、タイマジョブを登録する。このタイマジョブには、既に説明したように、タイマＥ−Ｍａｉｌジョブ、タイマコピージョブがあるが、これ以外にも、ＰＣ１０等からのタイマプリントジョブがある。タイマＥ−Ｍａｉｌジョブ、タイマコピージョブでは、ＵＩ制御によって、原稿を読み込み、ハードディスク１６２への画像データの登録まで行ない、それ以降の処理はタイマ設定されたタイミングまで待機状態にする。
【００６１】
次に、ステップＳ２において、登録したタイマジョブに必要なソフトウェアパーツをサーチ（検索）する。このサーチは、タイマジョブの実行に際して利用するソフトウェアパーツを自ホスト、並びに、ネットワーク４０上の他の画像形成装置に対して行う。自ホストに対して検索が行われると自装置の記憶手段に記憶されるソフトウェアパーツの中に必要なソフトウェアパーツが存在するか否を調べる。また、他の画像形成装置に必要なソフトウェアパーツが存在するか否かを調べるには、他の画像形成装置に対して必要とするソフトウェアパーツの種類を特定できる識別子と検索の依頼を送出する。さらに、他の画像形成装置については、必要とするソフトウェアパーツが存在する装置であれば画像形成装置に限定されることはない。
【００６２】
この後、ステップＳ３に進んで、タイマジョブについて登録番号を発行し、タイマジョブリスト（図５、図６参照）に追加登録し、ユーザが指定したタイミングになるまで記憶管理する。
【００６３】
次に、ソフトウェアパーツの変更要求（削除・更新要求）が発生した場合の処理を図９のフローチャートに従って説明する。また、ソフトウェアパーツの変更要求の入力は、例えば画像処理装置の操作部を介して行われる。また後述の第２の実施形態のＳ１７０１のように、外部の管理サーバからのソフトウェア変更要求を入力しても良い。また、実際の画像形成装置にはジョブキューに実行可能で即時実行されるジョブが登録されているケースが想定されるが、ジョブキューに登録されるジョブについては、第２の実施形態における図１７で詳しく説明する。ここでは、ジョブキューに登録されるジョブによってソフトウェアパーツの変更に支障が無い場合を前提として説明を行う。
【００６４】
先ず、ステップＳ１１において、削除・更新対象となるソフトウェアパーツが、タイマジョブリスト中に登録されているか否かを判断する。タイマジョブリスト中に存在しない場合には、削除・更新対象ソフトウェアパーツはその時点でのタイマジョブとは無関係であるので、ステップＳ１２に進んで、削除・更新処理を行う。
【００６５】
また、削除・更新対象ソフトウェアパーツが、タイマジョブリストに存在する場合には、ステップＳ１３に進み、タイマジョブリストを再スケジュール可能かどうかを判断する。なお、再スケジュールの処理については後述の図１０で詳しく説明する。
【００６６】
例えば、タイマジョブリストが図５の状態にある場合に、「送信制御モジュール」を削除、又は更新する要求が発生した場合、ホストＡの「送信制御モジュール」を削除しても、ホストＸの同モジュールで代替できる。従って、この場合は再スケジュール可と判断する。また、逆に、代替ホストが存在しない場合（ネットワーク上の画像形成装置が１つしか存在しない場合もこれに相当する）、再スケジュール不可と判断する。
【００６７】
さて、ステップＳ１３において、タイマジョブリストを再スケジュール不可であると判断した場合、ステップＳ１４に進む。ここでは、その要求情報（更新要求であれば、更新後のソフトウェアパーツを含む）をハードディスクの所定のフォルダ内に一時的に保存する。すなわち、削除・更新処理を即時行なわない。ここで保留された未実行のソフトウェアパーツの変更（削除・更新）は、後述で詳しく説明する図１１のフローチャートにより実行される。
【００６８】
また、ステップＳ１３において、タイマジョブリストを再スケジュール可であると判断した場合、ステップＳ１５に処理を進め、再スケジュール処理を行う。
【００６９】
ここで、上記ステップＳ１５の再スケジュール処理を図１０のフローチャートに従って説明する。
【００７０】
ステップＳ２１では、タイマジョブリスト中の、削除・更新対象となったソフトウェアパーツをタイマージョブの実行に利用し処理対象外にする。また、替わりに他のホストのソフトウェアパパーツを割り当て、タイマジョブリストを再構成する。すなわち、例えば「送信制御モジュール」を削除・更新する場合には、図５の状態から図６の状態のように、タイマジョブリストを再構築する。
【００７１】
次いで、ステップＳ２２に進んで、発生した変更要求が更新であるか、削除であるかを判断する。更新要求であると判断した場合には、ステップＳ２３に進んで、旧ソフトウェアパーツがＤＲＡＭ１１６に常駐している場合には、それを消去し、ハードディスク１６２内の旧ソフトウェアパーツを予め設定された待避フォルダ内に移動する。そして、更新後のソフトウェアパーツを実行可能とするためハードディスク１６２に格納する。
【００７２】
次いで、ステップＳ２４に進んで、更新後のソフトウェアパーツの動作チェックを行う。この動作チェックは、そのソフトウェアパーツの仕様によって予め決められたデータをそのソフトウェアパーツに渡し、その結果が正しい結果（期待した結果）であるか否かによって判断する。ソフトウェアパーツに入力されるデータは画像形成装置に記憶されているものとする。
【００７３】
ステップＳ２５では、更新後のソフトウェアパーツが正しい処理を行ったか否かを判定する。この判定で正しい処理が行えたと判断した場合には、ステップＳ２６に進み、タイマジョブリストを、自装置に記憶した更新後のソフトウェアパーツを利用するように再構築（復旧）する。例えば、図６の状態から図５の状態に戻す。つまり、再びＥ−Ｍａｉｌジョブにおいて、送信制御モジュールの実行するホスト名「Ａ」が再び割り当てられることとなる。但し、再構築後の送信制御モジュールは更新後の送信制御モジュールが割り当てられることとなる。
【００７４】
また、更新後のソフトウェアパーツが正しい処理結果を帰さなかった場合、処理はステップＳ２７に進んで、ステップＳ２１で再構築したタイマジョブリストを元に戻す。また、予め設定された待避フォルダ内に待避した旧ソフトウェアパーツを、タイマジョブを実行する際に利用できるように元どおりの位置に戻す。
【００７５】
一方、ステップＳ２２において、発生した要求が削除要求であると判断した場合、処理はステップＳ２８に進む。ここでは、要求されたソフトウェアパーツを削除する。なお、この結果、該当するソフトウェアパーツは存在しなくなるが、既に代替ホストが存在するので、タイマジョブに支障はない。
【００７６】
最後に、実施形態におけるタイマジョブ処理を図１１のフローチャートに従って説明する。
【００７７】
このタイマジョブ処理は、リアルタイムクロックモジュール１３３による例えば１分毎の割り込み信号を受けて、ＣＰＵ１１２が実行する。
【００７８】
先ず、ステップＳ３１で、現在のタイミング情報（日時分）Ｔｃをリアルタイムクロックモジュールより取得する。
【００７９】
次いで、ステップＳ３２に進んで、タイマジョブリストを検索し、処理すべきタイマジョブが存在するか否かを判断する。具体的には、各タイマジョブの設定時刻Ｔｉ（ｉ＝１、２、…）としたとき、処理すべきタイマＴｉ≦Ｔｃの関係を有するタイマジョブが存在するかを判断する。Ｔｉ＝Ｔｃではなく、Ｔｉ≦Ｔｃとしたのは、実施形態では１分間隔の割り込み処理であるため、最大で１分の誤差があるためである。勿論、３０秒単位の割り込み処理を行うのであれば、この限りではない。
【００８０】
さて、処理すべきタイマジョブが存在すると判断した場合には、ステップＳ３３に進んで、該当するタイマジョブを、ホスト名で示されたソフトウェアパーツを順に実行していって、処理を行う。処理が完了すると、ステップＳ３４に進み、該当するタイマジョブは管理不要となるので、タイマジョブリストより削除する。そして、処理すべきタイマジョブが存在する限り、ステップＳ３３、Ｓ３４を繰り返す。
【００８１】
こうして、現在時刻において、処理すべきタイマジョブがなくなると、処理はステップＳ３５に進む。このステップＳ３５では、削除・更新要求情報がハードディスク１６２内に格納されているか否かを判断する。すなわち、先に説明した、図９のステップＳ１４の処理が行われたか否かを判断していることになる。
【００８２】
削除・更新要求情報はないと判断した場合には、現在のタイマジョブリストに変更はないので、本処理を終了する。
【００８３】
一方、削除・更新要求情報がハードディスク１６２内に格納されていると判断した場合には、ステップＳ３６に進み、削除・更新要求対象のソフトウェアパーツがタイマジョブリストに存在するか否かを判断する。もし存在しない場合、タイマジョブとは無関係なソフトウェアパーツの削除・更新処理であることになるので、ステップＳ３７に進んで、ソフトウェアパーツの削除・更新処理を行い、本処理を終える。なお、ステップＳ３６で、削除・更新要求されたソフトウェアパーツがタイマジョブリストに存在する場合には、その削除・更新処理は行わなず、本処理を終了する。
【００８４】
以上説明したように本実施形態によれば、互いに独立したソフトウェアパーツを組み合わせて多種の機能を実現することによって、個々のソフトウェアパーツの開発が容易になる。また、所望とするソフトウェアパーツについての削除・更新要求が発生した場合、未完となっているタイマジョブとは無関係のソフトウェアパーツについては、すぐさま要求通りの処理を行う。その一方で、未完タイマジョブを構成するソフトウェアパーツに対する削除・更新要求が発生した場合、そのソフトウェアパーツの代替ホストが存在する限りは、少なくとも登録されたタイマジョブを実行可能にしつつも、要求通り削除・更新処理を行う。そして、削除・更新対象のソフトウェアパーツの代替ホストが存在しない場合には、該当するタイマジョブを完了してはじめて削除・更新処理を行うので、この場合にもタイマジョブが正常に動作することが約束される。
【００８５】
＜第２の実施形態＞
第２の実施形態を説明する。
【００８６】
図１２は、本第２の実施形態おけるで多機能デジタル複合機（ＭＦＰ）の外観図である。図１２に示される多機能デジタル複合機（ＭＦＰ）は第１の実施形態にも適用できる。
【００８７】
図中、１１００は複写機全体を示している。１１０１は、ＡＤＦ（オートドキュメントフィーダ）であり、原稿束を自動的に順次スキャンするための装置である。１１０２は操作パネルであり、各種設定や調整、機器状況の確認、などを行う。１１０３はマルチ手差しであり特殊な用途を持った用紙などをセットする。１１０４はサイドペーパーデッキであり印刷のための用紙を大量に保持することが可能である。１１０５はカセットペーパーデッキであり、様々なサイズの用紙を各段に分けて保持することが出来る。１１０６はフィニッシャであり、ステープル処理、パンチ処理、製本処理など様々なフィニッシング処理を行うことが出来る。
【００８８】
図１３は、デジタル複写機１１００の断面図を示したものである。１２８０はＡＤＦ（オートドキュメントフィーダ）である。１２０１は、原稿載置台としてのプラテンガラスである。１２０２は、スキャナであり、走査用ミラー１２０４や照明ランプ１２０３等で構成される。スキャナが所定方向に往復走査されて反射光が走査用ミラー１２０４〜１２０６を介してレンズ１２０７を透過し、イメージセンサ１２０８内のＣＣＤセンサに結像する。
【００８９】
１２０９は、レーザやポリゴンスキャナ等で構成された露光制御部で、イメージセンサ部１２０８で電気信号に変換され、後述する所定の画像処理が行われた画像信号に基づいて変調されたレーザ光１２１９を感光体ドラム１２１１に照射する。感光体ドラム１２１１の周りには、１次帯電器１２１２、現像器１２１３、転写帯電器１２１６、前露光ランプ１２１４、クリーニング装置１２１５が装備されている。画像形成部１２１０において、感光体ドラム１２１１は不図示のモータにより、図に示す矢印の方向に回転しており、１次帯電器１２１２により所望の電位に帯電された後、露光制御部１２０９からのレーザ光１２１９が照射され、静電潜像が形成される。感光体ドラム１２１１上に形成された静電潜像は、現像器１２１３により現像されて、トナー像として可視化される。
【００９０】
一方、右カセットデッキ１２２１、左カセットデッキ１２２２、上段カセット１２２３あるいは下段カセット１２２４からピックアップローラ１２２５、１２２６、１２２７、１２２８により給紙された記録紙は、給紙ローラ１２２９、１２３０、１２３１、１２３２により本体に送られる。そして、記録紙はレジストローラ１２３３により転写ベルト１２３４に給送される。この結果、可視化されたトナー像が転写帯電器１２１６により記録紙に転写される。転写後の感光体ドラム１２１１は、クリーナー装置１２１５により残留トナーが清掃され、前露光ランプ１２１４により残留電荷が消去される。転写後の記録紙は、分離帯電器１２１７によって感光体ドラム１２１１から分離され、転写ベルト１２３４によって定着器１２３５に送られる。定着器１２３５では加圧、加熱により定着され、排出ローラ１２３６により本体１１００の機外に排出される。
【００９１】
本体１１００には、例えば４０００枚の記録紙を収納し得るデッキ１２５０が装備されている。デッキ１２５０のリフタ１２５１は、ピックアップローラ１２５２に記録紙が常に当接するように記録紙の量に応じて上昇し、記録紙は給紙ローラ１２５３によって本体に送られる。また、１００枚の記録紙を収容し得る、マルチ手差し１２５４が装備されている。
【００９２】
さらに、図１３において、１２３７は排紙フラッパであり、搬送パス１２３８側と排出パス１２４３側の経路を切り替える。１２４０は下搬送パスであり、排紙ローラ１２３６から送り出された記録紙を、反転パス１２３９を介し記録紙を裏返して再給紙パス１２４１に導く。左カセットデッキ１２２２から給紙ローラ１２３０により給紙された記録紙も、再給紙パス１２４１に導かれる。１２４２は記録紙を画像形成部１２１０に再給紙する再給紙ローラである。１２４４は排紙フラッパ１２３７の近傍に配置されて、この排紙フラッパ１２３７により排出パス１２４３側に切り替えられた記録紙を機外に排出する排出ローラである。
【００９３】
両面記録（両面複写）時には、排紙フラッパ１２３７を上方に上げて、複写済みの記録紙を搬送パス１２３８、反転パス１２３９、下搬送パス１２４０を介して再給紙パス１２４１に導く。このとき、反転ローラ１２４５によって記録紙の後端が搬送パス１２３８から全て抜け出し、且つ、反転ローラ１２４５に記録紙が噛んだ状態の位置まで反転パス１２３９に引き込む。その後、反転ローラ１２４５を逆転させることによって搬送パス１２４０に送り出す。本体から記録紙を反転して排出する時には、排紙フラッパ１２３７を上方へ上げ、反転ローラ１２４５によって記録紙の後端が搬送パス１２３８に残った状態の位置まで反転パス１２３９に引き込む。そして、反転ローラ１２４５を逆転させることによって、記録紙を裏返して排出ローラ２４４側に送り出す。
【００９４】
１２９０は、本体１１００から排出した記録紙を揃えて閉じる排紙処理装置であり、一枚毎に排出される記録紙を処理トレイ１２９４に積載して揃える。一部の画像形成の排出が終了したら、記録紙束をステープルして排紙トレイ１２９２、又は、１２９３に束で排出する。排紙トレイ１２９３は不図示のモータで上下に移動制御され、画像形成動作開始前に処理トレイ１２９４の位置になるように移動し、以降排出された記録紙が積載されていくと紙面の高さが処理トレイ１２９４の位置になるように移動する。さらに、排紙トレイ１２９３に約２０００枚の記録紙が積載された時に検知するように、排紙トレイ１２９３の下限を検知するトレイ下限センサ（不図示）が設けられている。１２９１は、排出された記録紙の間に挿入する区切り紙を積載する用紙トレイで、１２９５は、排出された記録紙をＺ折りにするＺ折り機である。また、１２９６は、排出された記録紙一部をまとめてセンター折りしステープルを行うことによって製本を行う製本機であり、製本された紙束は排出トレイ１２９７に排出される。
【００９５】
図１４は、本第２の実施形態におけるディジタルプリントシステムの構成図である。
【００９６】
ここには、ネットワークに接続されたプリントサーバ１３０１、クライアントＰＣ１３０２、カラーＭＦＰ１３０３及び白黒ＭＦＰ１３０４がそれぞれ１つまたは複数個存在している。
【００９７】
プリントサーバ１３０１は、２つの役割を持っている。１つ目は外部と情報の送受であり、入稿されるジョブの画像情報や設定情報などは、まずプリントサーバ１３０１に入力され、そのジョブが終了するとステータスなどの情報を外部に知らせる役割を持っている。もう１つはシステムの管理制御である。外部から入力されたジョブ及び、ディジタルプリント部の内部で発生したジョブは、プリントサーバ１３０１にて一元管理されている、また、ディジタルプリント部の内部にある全てのデバイスと全てのジョブの状況が監視できると共に、ジョブの一時停止、設定変更、印刷再開あるいは、ジョブの複製、移動、削除などの制御が行えるようになっている。
【００９８】
クライアントＰＣ１３０２は、入力されたアプリケーションファイルの編集、印刷指示、あるいは、プリントレディファイルの投入の役割と、プリントサーバ１３０１内で管理されているデバイスやジョブの監視や制御の補佐する役割を持っている。
【００９９】
カラーＭＦＰ１３０３及び白黒ＭＦＰ１３０４は、スキャン、プリント、コピーなど様々な機能を有する画像形成装置（図１２、図１３で既に説明した）であり、カラーＭＦＰと白黒ＭＦＰとでスピードやコストなどが異なるため、それぞれの用途に応じて使い分ける必要がある。
【０１００】
次に、図１５を用いてＭＦＰの構成について説明する。
【０１０１】
ＭＦＰは、自装置内部に複数のジョブのデータを記憶可能なハードディスク等のメモリを具備する。そして、スキャナから出力されたジョブデータに対し該メモリを介してプリンタ部でプリント可能にするコピー機能を実現する。また、コンピュータ等の外部装置から出力されたジョブデータに対し該メモリを介してプリント部でプリント可能にするプリント機能を実現する。この結果、複数の機能を具備した画像形成装置を構築している。
【０１０２】
ＭＦＰには、先に説明したように、フルカラー機器とモノクロ機器があり、色処理や内部データなどを除いて、基本的な部分において、フルカラー機器がモノクロ機器の構成を包含することが多い。そのため、ここではフルカラー機器を主に説明し、必要に応じて随時モノクロ機器の説明を加えることとする。
【０１０３】
又、本システムでは、上記の如く、複数の機能を具備した複合機能型の画像形成装置を有する。しかし、プリント機能のみを具備した単一機能型の画像形成装置等のＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：単一機能周辺機器）を具備する構成でも良い。また、いずれか一方のタイプの画像形成装置のみを具備する構成でも良い。又、何れのタイプの画像形成装置であっても、複数台具備する構成でも良い。いずれにしても、本第２の実施形態の制御が実現可能な構成であればよい。
【０１０４】
図１５に示すように、実施形態における画像形成装置は紙原稿などの画像を読み取り、読み取られた画像データを画像処理する入力画像処理部１４０１を有する。また、画像形成装置は、ファクシミリなどに代表される電話回線を利用した画像の送受信を行うＦＡＸ部１４０２を有する。更に、画像形成装置は、ネットワークを利用して画像データや装置情報をやりとりするＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）部１４０３を備える。そして、画像形成装置は外部装置と画像データなどの情報交換を行う専用インターフェース部１４０４を備える。また、画像形成装置は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ（リムーバブルメディアの一種）に代表されるＵＳＢ機器と画像データなどを送受するＵＳＢインターフェース（ＵＳＢ  Ｉ／Ｆ）部１４０５を備えている。
【０１０５】
そして、ＭＦＰ制御部１４０９では、ＭＦＰの用途に応じて画像データを一時保存したり、経路を決定したりといった交通整理の役割を担っている。
【０１０６】
次に、文書管理部１４１３は、複数の画像データを格納可能なハードディスク等のメモリを具備する。例えば、画像形成装置が具備する制御部（例えばＭＦＰ制御部のＣＰＵなど）が主体となって、入力画像処理部１４０１からの画像データや、ＦＡＸ部１４０２を介して入力されたファクシミリジョブの画像データを格納する。また、ＮＩＣ部１４０３を介して入力されたコンピュータ等の外部装置からの画像データや、専用Ｉ／Ｆ部１４０４やＵＳＢ  Ｉ／Ｆ部１４０５を介して入力された様々な画像データ等の複数種類の画像データも、このハードディスクに格納可能にしている。更に、該ハードディスクに格納された画像データを適宜読み出して、プリンタ部等の出力部１４０８に転送して、該プリンタ部１４０８によるプリント処理等の出力処理を実行可能に制御する。又、オペレータからの指示により、ハードディスクから読み出した画像データを、コンピュータや他の画像形成装置等の外部装置に転送可能に制御する。
【０１０７】
画像データを文書管理部１４１３に記憶する際には、必要に応じて、画像データを圧縮して格納したり、逆に圧縮して格納された画像データを読み出す際に元の画像データに伸張して戻したりするなどの処理に対して圧縮伸張部１４１２を介して行っている。また、データがネットワークを経由する際には、ＪＰＥＧ、ＪＢＩＧ、ＺＩＰなど圧縮データを使用することも一般知られており、データがＭＦＰに入った後、この圧縮伸張部１４１２にて解凍（伸張）される。
【０１０８】
また、リソース管理部１４１４は、フォント、カラープロファイル、ガンマテーブルなど共通に扱われる各種パラメータテーブルなどが格納されている。また、これらの情報は必要に応じて呼び出すことができると共に、新しいパラメータテーブルを格納したり、修正して更新したりすることができる。
【０１０９】
次に、ＭＦＰ制御部１４０９は、ＰＤＬデータが入力された場合には、ＲＩＰ部１４０７でＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理を施す。また、プリントする画像に対して、必要に応じて出力画像処理部１４０８でプリントのための画像処理を行ったりする。更に、その際に作られる画像データの中間データやプリントレディデータ（プリントのためのビットマップデータやそれを圧縮したデータ）を必要に応じて、文書管理部１４１３で再度格納することもできる。
【０１１０】
そして、画像形成を行うプリンタ部１４１０に送られる。プリンタ部でプリントアウトされたシートは後処理部１４１１へ送り込まれ、シートの仕分け処理やシートの仕上げ処理が行われる。
【０１１１】
ここで、ＭＦＰ制御部１４０９は円滑にジョブを流す役割を担っており、ＭＦＰの使い方に応じて、以下のようにパス切り替えが行われている。但し、中間データとして画像データを必要に応じて格納することは一般に知られているが、ここでは文書管理部が始点、終点になる以外のアクセスは表記しない。また、必要に応じて利用される圧縮伸張部１４１２と後処理部、あるいは、全体のコアとなるＭＦＰ制御部１４０９などの処理は省略して、おおよそのフローがわかるように記載する。
A)  複写機能                ：入力画像処理部→出力画像処理部→プリンタ部
B)  ＦＡＸ送信機能          ：入力画像処理部→ＦＡＸ部
C)  ＦＡＸ受信機能          ：ＦＡＸ部→出力画像処理部→プリンタ部
D)  ネットワークスキャン    ：入力画像処理部→ＮＩＣ部
E)  ネットワークプリント    ：ＮＩＣ部→ＲＩＰ部→出力画像処理部→プリンタ部
F)  外部装置へのスキャン    ：入力画像処理部→専用Ｉ／Ｆ部
G)  外部装置からのプリント  ：専用Ｉ／Ｆ部→出力画像処理部→プリンタ部
H)  外部メモリへのスキャン  ：入力画像処理部→ＵＳＢ  Ｉ／Ｆ部
I)  外部メモリからのプリント：ＵＳＢ  Ｉ／Ｆ部→ＲＩＰ部→出力画像処理部→プリンタ部
J)  ボックススキャン機能    ：入力画像処理部→出力画像処理部→文書管理部
K)  ボックスプリント機能    ：文書管理部→プリンタ部
L)  ボックス受信機能        ：ＮＩＣ部→ＲＩＰ部→出力画像処理部→文書管理部
M)  ボックス送信機能        ：文書管理部→ＮＩＣ部
N)  プレビュー機能          ：文書管理部→操作部
上記以外にも、Ｅ−ｍａｉｌサービスやＷｅｂサーバ機能を初めとして、様々な機能との組み合わせが考えられるが、ここでは割愛する。
【０１１２】
また、ボックススキャン、ボックスプリント、ボックス受信、あるいは、ボックス送信とは、文書管理部１４１３を利用したデータの書き込みや読み出しを伴うＭＦＰの処理機能である。また、ジョブ毎やユーザ毎に文書管理部内のメモリを分割して一次的にデータを保存して、ユーザIDやパスワードを組み合わせてデータの入出力を行う機能でもある。
【０１１３】
更に、操作部は、上記の様々なフローや機能を選択したり操作指示したりするためのものであるが、操作部１４０６の表示装置の高解像度化に伴い、文書管理部にある画像データをプレビューし、確認後ＯＫならばプリントするといったこともできる。
【０１１４】
次に、図１６を用いて、本第２の実施形態におけるＭＦＰのソフトウェアモジュールの構成について説明する。図示の個々のソフトウェアモジュールは、先に説明した第１の実施形態と同様、それぞれが独立して実行できるものであり、書き換え可能な記憶装置（例えばハードディスクやフラッシュメモリ）に格納されているものである。なお、ハードディスクに格納されている場合には、ＲＡＭにロードして実行することになる。
【０１１５】
まず図１５に示すブロックのうちデータ入力をつかさどるコンポーネントを制御するソフトウェアモジュールについて説明する。紙原稿などの画像を読み取り、読み取られた画像データを画像処理する入力画像処理部（スキャナデバイス）を制御するモジュールがスキャナデバイス制御モジュール１５０１である。ＦＡＸ部の制御を行うモジュールはFAX制御モジュール１５０２である。ネットワークの制御を行うモジュールがネットワーク制御モジュール１５０３である。外部デバイスとのインターフェースを制御するモジュールが拡張インターフェース制御モジュール１５０４である。ＵＳＢ機器の制御を行うモジュールはＵＳＢ制御モジュール１５０５である。また、ユーザーインタフェース画面（UIパネル）を制御するモジュールはＵＩ制御モジュール１５０６である。
【０１１６】
続いて図１５に示すブロックのうち画像処理をつかさどるコンポーネントを制御するソフトウェアモジュールについて説明する。ネットワーク制御モジュール１５０３を通してユーザから投入されたＰＤＦデータを展開しディスプレイリスト形式に変換するためのモジュールがＰＤＬ解釈モジュール１５０７である。また、ＰＤＬ解釈モジュール１５０７によって変換されたディスプレイリストデータをイメージデータに変換するモジュールがレンダリングモジュール１５０８である。画像処理モジュール１５１５はオプション的に追加削除が可能であり、図１６では一例としてＯＣＲ（文字認識）モジュール１５１６とＰＤＦ変換モジュール１５１７について記載している。ＯＣＲモジュール１５１６はイメージデータのＯＣＲ処理を行うためのモジュールであり、ＰＤＦ変換モジュール１５１７はイメージデータをＰＤＦ形式に変換するために利用されるモジュールである。
【０１１７】
続いて図１５に示すブロックのうち画像形成をつかさどるコンポーネントを制御するソフトウェアモジュールについて説明する。ＭＦＰに入力され各種画像処理が行なわれハードディスクに格納されているイメージデータの画像形成を行うモジュールがプリンタデバイス制御モジュール１５１４である。プリンタデバイス制御モジュールによって画像形成されると後処理工程に送られ様々な後処理が行なわれる。図１６では一例として２種類の後処理モジュール１５１８、１５１９についてのみ記載しているがオプション追加することにより多段の後処理が可能になる。
【０１１８】
そして、ＭＦＰコントローラ１５１３では、各種ソフトウェアモジュールを統括する役目を担い、ＭＦＰの用途に応じて画像データを一時保存したり、経路を決定したりといった各種データの交通整理の役割を担っている。
【０１１９】
文書管理制御モジュール１５１０は、ハードディスクの管理を行う。例えば、画像形成装置が具備する制御部（例えばＭＦＰ制御部のＣＰＵなど）が主体となって、スキャナデバイス制御モジュール１５０１からの画像データを記憶管理する。また、ＦＡＸデバイス制御モジュール１５０２を介して入力されたファクシミリジョブの画像データや、ネットワーク制御モジュール１５０３を介して入力されたコンピュータ等の外部装置からの画像データも管理する。更には、拡張Ｉ／Ｆモジュール１５０４やＵＳＢ制御モジュール１５０５を介して入力された様々な画像データ等の複数種類の画像データについて管理する。このハードディスクに格納された画像データは適宜読み出し可能で、プリンタデバイス制御モジュール１５１４等の出力モジュールに転送することで、該プリンタ部によるプリント処理等の出力処理を実行可能である。又、オペレータからの指示により、ハードディスクから読み出した画像データを、コンピュータや他の画像形成装置等の外部装置に転送可能に制御する。
【０１２０】
次に圧縮伸張モジュール１５０９は、画像データを文書管理部に記憶する際に画像データを圧縮して格納したり、逆に圧縮して格納された画像データを読み出す際に元の画像データに伸張して戻したりするなどの処理を行う場合に利用される。圧縮伸張はハードウェアで実現されている場合もあるが、その場合も圧縮伸張モジュール１５０９が圧縮伸張デバイスの制御を行なう。また、データがネットワークを経由する際には、ＪＰＥＧ、ＪＢＩＧ、ＺＩＰなど圧縮データを使用することも一般知られており、データがＭＦＰに入った後、この圧縮伸張モジュール１５０９にて解凍（伸張）される。
【０１２１】
また、リソース管理モジュール１５１１は、フォント、カラープロファイル、ガンマテーブルなど共通に扱われる各種パラメータテーブルなどを、必要に応じて呼び出すことができると共に、新しいパラメータテーブルを格納したり、修正して更新する。
【０１２２】
そして、画像形成を行うプリンタデバイス制御モジュール１５１４に送られる。プリンタ部でプリントアウトされたシートは後処理モジュール１５１８へ送り込まれ、シートの仕分け処理やシートの仕上げ処理が行われる。
【０１２３】
ソフトウェアモジュールのバージョンアップ管理をおこなうのがバージョンアップ管理モジュール１５１２である。バージョンアップ管理モジュール１５１２は各種モジュールのバージョン管理からモジュールのダウンロード、インストールなどを行う。
【０１２４】
上記はあくまで搭載されるソフトウェアモジュールの組み合わせの一例である。すなわち、上記以外にも、Ｅ−ｍａｉｌサービスやＷｅｂサーバ機能を初めとして、様々な機能との組み合わせにより搭載される様々なソフトウェアモジュールの構成が考えられる。ただし、ここでの説明については割愛する。また、ソフトウェアモジュールの粒度についても上記は一例にすぎず、もっと詳細な粒度で搭載される場合もあれば、大きな粒度で搭載される場合もある。
【０１２５】
図１７は、ネットワーク構成の一例を示すブロック図である。
【０１２６】
サービスセンタ１６０１は、バージョンアップ管理サーバ１６０５やファイルサーバ１６０６などから成り立っている。ユーザ環境１６０２とサービスセンタ１６０１はインターネットや公衆回線などで結ばれており、必要情報のやり取りを行うことが出来る。
【０１２７】
ここでサービスセンタ１６０１におけるバージョンアップ管理サーバ１６０５はユーザ環境１６０２に設置されているＭＦＰ１６０３に搭載されているファームウェアのバージョン管理を行うサーバである。バージョンアップが必要になった場合はバージョンアップ管理サーバ１６０５から各MFP１６０３に通知を行うか、または、各ＭＦＰ１６０３からのバージョンアップの有無の問い合わせに対する返答を行う。ファイルサーバ１６０６はＭＦＰファームウェアソフトを格納している。
【０１２８】
ユーザ環境１６０２におけるＭＦＰ１６０３は自身に搭載されるファームウェアのバージョン管理を行う場合もあればプリントサーバ１６０４がバージョン管理を行う場合もある。
【０１２９】
図１８はＭＦＰにおけるソフトウェアのバージョンアップ処理手順を示すフローチャートである。
【０１３０】
ステップＳ１７０１ではＭＦＰがサービスセンタ１６０１のバージョンアップ管理サーバ１６０５から、バージョンアップ通知（バージョンアップのソフトウェアモジュールの識別情報を含む）を受信する。これは実施の一例でありＭＦＰからサービスセンタ６０１に対してバージョンアップの有無を問い合わせ、バージョンアップ有りと判断することで開始するようにしても構わない。ここでは、サービスセンタ１６０１が、ＭＦＰのバージョンアップの通知を発行したものとして説明する。
【０１３１】
ステップＳ１７０２に処理が進むと、ＭＦＰ内部に保持しているジョブリストを取得する。ジョブリストの構造は図１９に示す形式をしており、ＭＦＰに投入されたジョブがリスト形式で保持されている。このジョブリストは、ジョブキューに登録される各ジョブを表す。このジョブキューに登録されているジョブは実行可能になれば即時実行されるものであり、上に説明したタイマージョブの登録とは区別される。
【０１３２】
続いてステップＳ１７０３において、取得されたジョブリスト（図１９）中に実行待ちのジョブが存在するかどうかの判定を行う。ジョブリスト中に実行待ちジョブが存在しなかった場合は即座にバージョンアップを行うことが可能である。従って、ステップＳ１７１３に進み、実際にバージョンアップしようとするソフトウェアモジュールをダウンロードしてバージョンアップを実行して、一連のバージョンアップ処理を終了する。
【０１３３】
ジョブリスト中に実行待ちジョブが存在した場合はステップＳ１７０４に進みキャリブレーションのスケジュールが存在するかのチェックを行う。ＭＦＰでは出力物の画質の均質化を図るために定期的にキャリブレーションが行われる。このため、もしキャリブレーションがスケジューリングされている場合は、キャリブレーションと並行してファームウェアのバージョンアップが可能である。ステップＳ１７０４においてキャリブレーションのスケジュールありと判別された場合は、ステップＳ１７０７に進み、キャリブレーションが実行されるタイミングを待つ。そしてキャリブレーションが実行されるタイミングになるとステップＳ１７１３に進みバージョンアップを実行して、一連のバージョンアップ処理を終了する。
【０１３４】
また、ステップＳ１７０４においてキャリブレーションのスケジュールなしと判断された場合はサブルーチンであるステップＳ１７０５に進む。このサブルーチンについては図２０を用いて以下に説明する。
【０１３５】
図２０は、ジョブ種毎のバージョンアップチェックのフローである。先ず、ステップＳ１９０１ではジョブリスト（図１９）を取得する。ステップＳ１９０２では、ジョブ種毎の利用ソフトモジュール一覧テーブルを取得する。このテーブルのフォーマットは図２１に示すとおり、ジョブ種毎に利用するソフトモジュールのリスト形式になっている。図２１では一例として４種類のジョブ種についてのみ記載したが、もちろんＭＦＰで実行可能な全てのジョブ種について記載されているものである。
【０１３６】
ステップＳ１９０３からステップＳ１９０８はループになっておりステップＳ１９０１で取得したジョブリストから一つずつジョブを取り出してチェックを行う。ジョブリスト中の全てのジョブについてチェックが終了するとループを抜ける。
【０１３７】
ステップＳ１９０４ではジョブリストから取り出されたジョブのジョブ種を取得する。続いてステップＳ１９０５では、ステップＳ１９０２で取得したテーブル(図２１)のジョブ種列とステップＳ１９０４で取得したジョブ種の比較検索を行い、そのジョブ種で利用するソフトモジュール一覧を取得する。
【０１３８】
ステップＳ１９０６では今回バージョンアップが行われるソフトモジュール名の取得を行う。ステップＳ１９０７ではステップＳ１９０５で取得された該ジョブで利用されるソフトモジュールと、ステップＳ１９０６で取得されたソフトモジュールの比較を行い該ジョブ実行中にバージョンアップが可能であるかのチェックを行う。
【０１３９】
例えば、今回バージョンアップされるモジュールがスキャナデバイス制御モジュールであり、該ジョブ種がＰＤＬプリントジョブであったとする。ＰＤＬプリントジョブで利用されるソフトモジュールは、「ネットワーク制御モジュール、ＰＤＬ解釈モジュール、レンダリングモジュール、圧縮伸張モジュール、文書管理モジュール、プリンタデバイス制御モジュール」である。従って、ＰＤＬプリントジョブ実行中にスキャナデバイス制御モジュールは利用しない。そのためＰＤＬバージョンアップ可能であると判定される。しかし、バージョンアップモジュールが例えば文書管理モジュールであった場合は、該ジョブ実行中にはバージョンアップを行うことは不可能であるため、次のジョブのチェックを行う。
【０１４０】
ステップＳ１９０７においてバージョンアップ可能であると判定された場合はステップＳ１９０８に進み、バージョンアップモジュールを利用しないジョブ有りを示す情報を返り値に設定し本ループを抜ける。
【０１４１】
逆にステップＳ１９０７で該ジョブ実行中にはバージョンアップ不可と判定された場合は、ステップＳ１９０９に進み、ループにより次のジョブリスト中の次のジョブの判定を行う。もし、ジョブリスト中の全てのジョブについてチェックを行ったが、バージョンアップ可能なジョブが見つからなかった場合はループを抜けステップＳ１９１０に進む。ステップＳイ１９１０では、バージョンアップモジュールを利用するジョブのみが残っていることを示す情報を返り値として決定し、本ルーチンを終了する。
【０１４２】
図１８の説明に戻る。ステップＳ１７０５のサブルーチン(図２０)を実行した結果をステップＳ１７０６で判定する。サブルーチン(図２０)を実行した結果、ジョブリスト中にバージョンアップモジュールを利用しないジョブが存在すると判定された場合はステップＳ１７０８に進み、バージョンアップモジュールを利用しないジョブが実行されるのを待つ。そして、そのジョブが実行されるタイミング（ジョブ実行期間）でステップＳ１７１３に進みバージョンアップを実行して、一連のバージョンアップ処理を終了する。
【０１４３】
また、ステップＳ１７０６の判定においてバージョンアップモジュールを利用するジョブのみが残っていると判定された場合(ステップＳ１９１０)は、ステップＳ１７０９に示されるサブルーチン(図２２)に進みさらに詳細なチェックを行う。
【０１４４】
図２２は、上記ステップＳ１７０９のジョブの実行フェーズ毎のバージョンアップチェック処理を示すフローチャートである。
【０１４５】
先ず、ステップＳ１１１０１ではジョブリスト(図１９)を取得する。ステップＳ１１１０２では今回バージョンアップを行うソフトモジュール名の取得を行う。ステップＳ１１１０３では、ジョブ実行フェーズ毎の利用ソフトモジュール一覧テーブルを取得する(図２３（ａ），（ｂ）)。
【０１４６】
このテーブルはジョブ種毎に実行フェーズを分け、それぞれのフェーズにどのソフトモジュールを利用するかの一覧を示したテーブルである。例えばコピージョブでは、「ＵＩ操作、スキャン実行、プリント実行」の３つのフェーズに分割され、それぞれＵＩ操作フェーズにはＵＩ画面モジュールが利用される。スキャン実行フェーズにはスキャナデバイス制御モジュール、圧縮伸張モジュール、文書管理制御モジュールが利用される。プリント実行フェーズには圧縮伸張モジュール、文書管理モジュール、プリントデバイス制御モジュールが利用されることが分かる。
【０１４７】
図２３（ａ），（ｂ）に示した２つのテーブルは一例としてＰＤＬプリントジョブおよびコピージョブにおける一覧を示したものであり、勿論、他のジョブ種についても同様のテーブルが存在する。また、ジョブ種毎に利用するモジュールも機器によって異なる場合があり、これも一例を示したに過ぎない。
【０１４８】
続いてステップＳ１１１０４ではソフトモジュール毎のバージョンアップ所要時間テーブル(図２４)を取得する。このテーブルは、各モジュールについてサービスセンタ６０１に存在するファイルサーバ６０６からバージョンアップモジュールをダウンロードするために必要な予想時間が格納されている。また、ダウンロードしたモジュールを利用して実際にバージョンアップを行うために必要な時間も格納されている。なお、このテーブルはサービスセンタ６０１に存在するファイルサーバ６０６から取得することが出来る。
【０１４９】
続いてステップＳ１１１０５からステップＳ１１１１２はループになっておりステップＳ１１１０１で取得したジョブリスト中に存在するジョブ数回ループし登録されている全ジョブについてチェックを行う。ステップＳ１１１０６では該ジョブのジョブ種を取得する。ステップＳ１１１０７では、ステップＳ１１０６で取得したジョブ種とステップＳ１１１０３で取得したジョブ実行フェーズ毎の利用ソフトモジュール一覧テーブルの比較を行い、該ジョブの実行フェーズを取得する。例えば該ジョブ種がＰＤＬプリントジョブだった場合はデータ受信フェーズ、ＰＤＬ展開フェーズ、プリントフェーズの３つのフェーズが取得される。
【０１５０】
ステップＳ１１１０８ではステップＳ１１１０２で取得された今回バージョンアップを行うモジュール名とステップＳ１１１０４で取得されたソフトモジュール毎のバージョンアップ所用時間テーブルからバージョンアップに必要な時間を計算する。例えば今回バージョンアップを行うモジュールがプリントデバイス制御モジュールであった場合はダウンロード予想時間とバージョンアップ所要時間の合計で１００秒必要と言う計算結果を得ることが出来る。
【０１５１】
続いてステップＳ１１１０９では、ステップＳ１１１０７で取得したジョブ実行フェーズそれぞれの所要時間を計算する。フェーズ毎に異なるために不図示であるが例えばＰＤＬ展開フェーズであれば、ＰＤＬデータのデータサイズから計算できる値であり、例えばコピージョブのスキャンフェーズではコピー原稿の枚数から計算できる値である。
【０１５２】
ステップＳ１１１１０では、ステップＳ１１１０７で取得したジョブ実行フェーズと、ステップＳ１１１０８で計算したバージョンアップ所要時間と、ステップＳ１１１０９で計算したジョブの実行フェーズ毎の所要時間から、該ジョブ実行中に並行してバージョンアップが可能であるかの判定を行う。
【０１５３】
例えばプリントデバイス制御モジュールのバージョンアップを行いたい場合に、ステップＳ１１１０８ではプリントデバイス制御モジュールのバージョンアップに必要な時間は１００秒であると計算される。現在チェック中のジョブがＰＤＬプリントジョブでＰＤＬデータのサイズが５０メガバイトであった時にＰＤＬ展開フェーズで必要な実行時間が１８０秒という結果がステップＳ１１１０９の計算で得られたとする。この場合、該ジョブ実行中のＰＤＬ展開フェーズにプリントデバイスのバージョンアップが可能であると判定される。
【０１５４】
ステップＳ１１１１０でバージョンアップ可能なジョブ実行フェーズがあると判定された場合はループを抜けステップＳ１１１１１に進みジョブの実行フェーズ毎のバージョンアップチェックフローを終了する。
【０１５５】
また、ステップＳ１１１１０でバージョンアップ可能なジョブ実行フェーズが無いと判定された場合はループを繰り返しジョブリストに登録されている全ジョブについてチェックを行う。全ジョブのチェックを行ったがバージョンアップ可能なジョブが見つからなかった場合はループを抜けステップＳ１１１１３に進み、ジョブの実行フェーズ毎のバージョンアップチェックフローを終了する。
【０１５６】
図１８の説明に戻る。上記のステップＳ１７０９のサブルーチン（図２２）を実行した結果をステップＳ１７１０で判定する。サブルーチン(図２２)を実行した結果、ジョブリスト中にジョブ実行と並行してバージョンアップ可能なジョブ（ジョブの実行フェーズに分割して詳細検索した結果、並行バージョンアップ可能（Yes）と判断されたジョブ）が存在すると判定された場合、ステップＳ１７１１に進む。ここでは、バージョンアップを並行して行うことが可能なジョブが実行されるタイミングを待つ。そして該タイミングになるとステップＳ１７１２に進みジョブ実行中のバージョンアップ可能フェーズになるのを待つ。そして、バージョンアップ可能フェーズになるとステップＳ１７１３に進みバージョンアップを実行して、一連のバージョンアップ処理を終了する。
【０１５７】
また、ステップＳ１７１０でジョブ実行と並行してバージョンアップ不可と判定された場合は、現在ジョブリストに登録されているジョブの処理がすべて完了するまではバージョンアップは不可能であると判断されるので、ステップＳ１７１４に進む。ここでは、現在、実行待ちのジョブが全て終了するのを待つ。そして現在ジョブリストに登録されている全てのジョブが実行完了したタイミングでステップＳ１７０２に進み再びバージョンアップの処理を繰り返す。
【０１５８】
以上説明したように本第２の実施形態によれば、ソフトウェアモジュール（ソフトウェアパーツ）のバージョンアップを行う際に、ジョブキューにある実行待ちにあるジョブの内容に基づいてバージョンアップのタイミングを調整する。従って、ＭＦＰ等の画像処理装置の稼働率を維持したまま、ソフトウェアモジュールの更新処理が行える。
【０１５９】
＜第３の実施形態＞
第２の実施形態における処理、及び、第１の実施形態における処理は、何れか片方の実施形態の処理を実行しても良いし、或は、双方の実施形態の処理を実行するようにしても良い。
【０１６０】
例えば、図１８、２０、２２、及び、図９乃至１２の全てフローチャートを実行し、ソフトウェアパーツ更新の可否を判断し、該判断に基づきソフトウェアパーツの変更（削除・更新）を行うようにしても良い。また、第２の実施形態における処理のみを実行させるようにしても良い。
【０１６１】
＜第４の実施形態＞
上に説明した各実施形態では、変更対象として、１のジョブを実行する場合に利用される複数のソフトウェアパーツの何れかを変更対象に説明してきた。しかし、変更するソフトウェアの単位はこれに限定されない。例えば、図５に示ではコピージョブが５つのソフトウェアパーツから構成されるよう説明した。このコピージョブが２以上４以下のソフトウェアパーツから構成される場合でも上述のフローチャートに適用できる。また、１のジョブを実行するソフトウェアが一つのパーツからなる場合でも上述のフローチャートを適用することができる。勿論、ジョブ種がコピージョブ以外のＥ−ｍａｉｌなどでも、ソフトウェアパーツの単位を変更し、上述のフローチャートを適用できることは言うまでも無い。
【０１６２】
＜第５の実施形態＞
上に説明した各実施形態では、画像形成装置に記憶されたソフトウェアに係る変更処理を説明したが、これはに限定されない。例えば、画像形成装置に係るソフトウェアがネットワーク上の外部の情報処理装置（画像処理装置）に記憶され、画像形成装置が情報処理装置（画像処理装置）に記憶されるソフトウェアを利用し処理を行う形態も想定される。この場合には、情報処理装置（画像処理装置）に記憶されるソフトウェアと画像形成装置に登録されるジョブとに基づき、上述の各フローチャートが実行されることとなる。
【０１６３】
以上、本発明にかかる実施形態を説明したが、本発明は、画像処理装置等で実行されるコンピュータプログラムによって実現している。従って、当然、それを実現するためのコンピュータプログラムも本発明の範疇にある。また、コンピュータプログラムは、ＣＤＲＯＭやメモリカード等のコンピュータ可読記憶媒体に格納されていて、それを装置にセットしてシステムにコピーもしくはインストールされることで実行可能になる。それ故、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇に入る。
【図面の簡単な説明】
【０１６４】
【図１】第１の実施形態におけるシステム構成図である。
【図２】第１の実施形態における画像形成装置のブロック構成図である。
【図３】第１の実施形態におけるＰＣのブロック構成図である。
【図４】第１の実施形態における画像形成装置のソフトウェアパーツのブロック構成図である。
【図５】第１の実施形態におけるタイマジョブリストの一例を示す図である。
【図６】第１の実施形態における再構成後のタイマジョブリストの一例を示す図である。
【図７】第１の実施形態における分散システムの処理の流れを示す図である。
【図８】第１の実施形態における画像形成装置のタイマジョブ登録処理手順を示すフローチャートである。
【図９】第１の実施形態におけるソフトウェアパーツの削除・更新要求の発生時の処理手順を示すフローチャートである。
【図１０】図９のステップＳ１５の詳細を示すフローチャートである。
【図１１】第１の実施形態におけるタイマジョブ処理の処理手順を示すフローチャートである。
【図１２】第２の実施形態において利用する画像形成装置の外観図である。
【図１３】第２の実施形態における画像形成装置の断面構造図である。
【図１４】第２の実施形態における印刷システムの構成図である。
【図１５】第２の実施形態における画像形成装置のブロック構成図である。
【図１６】第２の実施形態における画像形成装置のソフトウェアモジュールの構成を示す図である。
【図１７】第２の実施形態におけるサービスセンタとユーザ環境との関係を示す図である。
【図１８】第２の実施形態における画像形成装置のソフトウェアモジュールのバージョンアップ処理手順を示すフローチャートである。
【図１９】第２の実施形態における画像形成装置が保持しているジョブリストの一例を示す図である。
【図２０】図１８におけるステップＳ１７０５の詳細を示すフローチャートである。
【図２１】第２の実施形態における利用ソフトモジュール一覧テーブルを示す図である。
【図２２】図１８におけるステップＳ１７０９の詳細を示すフローチャートである。
【図２３】第２の実施形態におけるジョブにおける各シーケンス別に利用するソフトモジュールの一覧テーブルを示す図である。
【図２４】第２の実施形態における各ソフトウェアモジュール毎の更新時間とダウンロード時間のリストを示す図である。
【図１】
2007108957.tif 000003
【図２】
2007108957.tif 000004
【図３】
2007108957.tif 000005
【図４】
2007108957.tif 000006
【図５】
2007108957.tif 000007
【図６】
2007108957.tif 000008
【図７】
2007108957.tif 000009
【図８】
2007108957.tif 000010
【図９】
2007108957.tif 000011
【図１０】
2007108957.tif 000012
【図１１】
2007108957.tif 000013
【図１２】
2007108957.tif 000014
【図１３】
2007108957.tif 000015
【図１４】
2007108957.tif 000016
【図１５】
2007108957.tif 000017
【図１６】
2007108957.tif 000018
【図１７】
2007108957.tif 000019
【図１８】
2007108957.tif 000020
【図１９】
2007108957.tif 000021
【図２０】
2007108957.tif 000022
【図２１】
2007108957.tif 000023
【図２２】
2007108957.tif 000024
【図２３】
2007108957.tif 000025
【図２４】
2007108957.tif 000026