(57)【特許請求の範囲】
【請求項１】
投入されたジョブが蓄えられるキューと、
プログラムが記憶されている記憶部と、
前記記憶部に記憶されているプログラムに従って動作することで、前記キューに蓄えられているジョブを順次実行するジョブ処理部と、
ネットワークを介して通信するネットワーク通信部と、
前記キューに蓄えられている複数のジョブの中から、前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する他のジョブ処理装置で実行した場合に自装置で実行するよりもジョブ処理の品質が改善される第１のジョブを検出するジョブ検出部と、
前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する前記他のジョブ処理装置を前記ネットワーク上で検出する他装置検出部と、
前記ジョブ検出部によって検出された前記第１のジョブを、前記キューから取り出し、前記他のジョブ処理装置に転送して実行させる転送部と、
を有し、
前記ジョブ処理部は、前記キューに蓄えられているジョブのうち、前記第１のジョブ以外の第２のジョブを実行する、
ことを特徴とするジョブ処理装置。
【請求項２】
前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする請求項１に記載のジョブ処理装置。
【請求項３】
前記ジョブ処理の品質は、画質である
ことを特徴とする請求項１に記載のジョブ処理装置。
【請求項４】
前記ジョブ検出部は、前記キューに蓄えられている複数のジョブの中から、前記他のジョブ処理装置で実行した場合に自装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする請求項１乃至３のいずれか１つに記載のジョブ処理装置。
【請求項５】
前記ジョブ検出部によって検出された前記第１のジョブの転送先になり得るジョブ処理装置が複数存在する場合に、前記第１のジョブを前記転送先になり得る複数のジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定部をさらに有し、
前記転送部は、前記処理完了予定時刻が最も早いジョブ処理装置に前記第１のジョブを転送する
ことを特徴とする請求項１乃至４のいずれか１つに記載のジョブ処理装置。
【請求項６】
前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを自装置のプログラムを更新してから自装置で実行した場合の処理完了予定時刻とを求めて比較する比較部と、
前記比較の結果をユーザに通知して、前記第１のジョブを自装置で実行するか転送するかの選択をユーザから受け付ける選択受付部と、
をさらに有し、
前記転送部は、前記選択受付部にて転送の選択を受けた場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする請求項１乃至５のいずれか１つに記載のジョブ処理装置。
【請求項７】
前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、自装置のプログラムを更新してから自装置で実行した場合の第２処理完了予定時刻を求めて比較する比較部をさらに有し、
前記転送部は、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする請求項１乃至５のいずれか１つに記載のジョブ処理装置。
【請求項８】
前記ジョブ処理部がジョブを実行していないときに自装置のプログラムを更新する更新部をさらに有し、
前記ジョブ検出部は、前記ジョブ処理部がジョブを実行しているために前記更新部がプログラムの更新を延期させているときに前記検出を行う
ことを特徴とする請求項１乃至７のいずれか１つに記載のジョブ処理装置。
【請求項９】
プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブを前記更新部でプログラムを更新してから自装置で実行する場合は、キュー内のジョブのうち、プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブ以外のすべてのジョブを先に実行してからプログラムを更新する
ことを特徴とする請求項８に記載のジョブ処理装置。
【請求項１０】
自装置より古いバージョンのプログラムで動作する他のジョブ処理装置からジョブの転送を受けて該ジョブを自装置で実行する場合に、前記キューに蓄えられているジョブの中から、転送元のジョブ処理装置で実行しても自装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する交換ジョブ検出部をさらに有し、
前記転送部は、前記交換ジョブ検出部によって検出されたジョブを、前記キューから取り出し、前記転送元のジョブ処理装置に転送して実行させる
ことを特徴とする請求項１乃至９のいずれか１つに記載のジョブ処理装置。
【請求項１１】
複数のジョブ処理装置がネットワークを介して接続される管理サーバであって、
第１バージョンのプログラムで動作する第１ジョブ処理装置と、前記第１バージョンより新しいバージョンのプログラムで動作する第２ジョブ処理装置が接続されている場合に、前記第１ジョブ処理装置のキューで実行待ちしているジョブであって、前記第１ジョブ処理装置で実行するよりも前記第２ジョブ処理装置で実行した場合にジョブ処理の品質が改善される第１のジョブを検出する第１ジョブ検出部と、
前記第１ジョブ検出部によって検出された前記第１のジョブを、前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送して実行させる転送部と、
を有し、
前記第１ジョブ処理装置のキューで実行待ちしているジョブのうち、前記第１のジョブ以外の第２のジョブは前記第１ジョブ処理装置に実行させる
ことを特徴とする管理サーバ。
【請求項１２】
前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする請求項１１に記載の管理サーバ。
【請求項１３】
前記ジョブ処理の品質は、画質である
ことを特徴とする請求項１１に記載の管理サーバ。
【請求項１４】
前記第１ジョブ検出部は、前記キューに蓄えられている複数のジョブの中から、前記第２ジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする請求項１１乃至１３のいずれか１つに記載の管理サーバ。
【請求項１５】
前記第２ジョブ処理装置が複数存在する場合に、前記第１のジョブを前記複数の第２ジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定部をさらに有し、
前記転送部は、前記複数の第２ジョブ処理装置の中で前記処理完了予定時刻が最も早い装置に前記第１のジョブを転送する
ことを特徴とする請求項１１乃至１４のいずれか１つに記載の管理サーバ。
【請求項１６】
前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の処理完了予定時刻とを求めて比較する比較部と、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付部と、
をさらに有し、
前記転送部は、前記選択受付部にて転送の選択を受けた場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする請求項１１乃至１５のいずれか１つに記載の管理サーバ。
【請求項１７】
前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の第２処理完了予定時刻を求めて比較する比較部をさらに有し、
前記転送部は、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする請求項１１乃至１５のいずれか１つに記載の管理サーバ。
【請求項１８】
前記第１ジョブ検出部は、前記第１ジョブ処理装置がジョブの実行中であってプログラムを更新できない場合に、前記検出を行う
ことを特徴とする請求項１１乃至１７のいずれか１つに記載の管理サーバ。
【請求項１９】
前記第２ジョブ処理装置のキューで実行待ちしているジョブの中から、前記第１ジョブ処理装置で実行しても前記第２ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する第２ジョブ検出部をさらに有し、
前記転送部は、前記第２ジョブ検出部によって検出されたジョブを、前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる
ことを特徴とする請求項１１乃至１８のいずれか１つに記載の管理サーバ。
【請求項２０】
前記第１ジョブ検出部によって検出された前記第１のジョブを前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送した場合に、前記第２ジョブ検出部によって検出されたジョブを前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる
ことを特徴とする請求項１９に記載の管理サーバ。
【請求項２１】
複数のジョブ処理装置がネットワークを介して接続される管理サーバで実行されるプログラムあって、
第１バージョンのプログラムで動作する第１ジョブ処理装置と、前記第１バージョンより新しいバージョンのプログラムで動作する第２ジョブ処理装置が接続されている場合に、前記第１ジョブ処理装置のキューで実行待ちしているジョブであって、前記第１ジョブ処理装置で実行するよりも前記第２ジョブ処理装置で実行した場合にジョブ処理の品質が改善される第１のジョブを検出する第１ジョブ検出ステップと、
前記第１ジョブ検出ステップで検出されたジョブを、前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送して実行させる第１転送ステップと、
前記第１ジョブ処理装置のキューで実行待ちしているジョブのうち、前記第１のジョブ以外の第２のジョブは前記第１ジョブ処理装置に実行させるステップと、
を有する
ことを特徴とするプログラム。
【請求項２２】
前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする請求項２１に記載のプログラム。
【請求項２３】
前記ジョブ処理の品質は、画質である
ことを特徴とする請求項２１に記載のプログラム。
【請求項２４】
前記第１ジョブ検出ステップでは、前記キューに蓄えられている複数のジョブの中から、前記第２ジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする請求項２１乃至２３のいずれか１つに記載のプログラム。
【請求項２５】
前記第２ジョブ処理装置が複数存在する場合に、前記第１のジョブを前記複数の第２ジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定ステップをさらに有し、
前記第１転送ステップでは、前記複数の第２ジョブ処理装置の中で前記処理完了予定時刻が最も早い装置に前記第１のジョブを転送する
ことを特徴とする請求項２１乃至２４のいずれか１つに記載のプログラム。
【請求項２６】
前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の処理完了予定時刻とを求めて比較する比較ステップと、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付ステップと、
をさらに有し、
前記第１転送ステップでは、前記選択受付ステップで転送の選択を受けた場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする請求項２１乃至２５のいずれか１つに記載のプログラム。
【請求項２７】
前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の第２処理完了予定時刻を求めて比較する比較ステップをさらに有し、
前記第１転送ステップでは、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする請求項２１乃至２５のいずれか１つに記載のプログラム。
【請求項２８】
前記第１ジョブ検出ステップは、前記第１ジョブ処理装置がジョブの実行中であってプログラムを更新できない場合に行われる
ことを特徴とする請求項２１乃至２７のいずれか１つに記載のプログラム。
【請求項２９】
前記第２ジョブ処理装置のキューで実行待ちしているジョブの中から、前記第１ジョブ処理装置で実行しても前記第２ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する第２ジョブ検出ステップと、
前記第２ジョブ検出ステップで検出されたジョブを、前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる第２転送ステップと、
をさらに有する
ことを特徴とする請求項２１乃至２８のいずれか１つに記載のプログラム。
【請求項３０】
ネットワークに接続された第１ジョブ処理装置で実行されるプログラムであって、
キューに蓄えられている複数のジョブの中から、前記第１ジョブ処理装置の記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する他のジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善される第１のジョブを検出するジョブ検出ステップと、
前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する前記他のジョブ処理装置を前記ネットワーク上で検出する他装置検出ステップと、
前記ジョブ検出ステップで検出された前記第１のジョブを、前記キューから取り出し、前記他のジョブ処理装置に転送して実行させる転送ステップと、
前記キューに蓄えられているジョブのうち、前記第１のジョブ以外の第２のジョブを実行するジョブ処理ステップと、
を有する
ことを特徴とするプログラム。
【請求項３１】
前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする請求項３０に記載のプログラム。
【請求項３２】
前記ジョブ処理の品質は、画質である
ことを特徴とする請求項３０に記載のプログラム。
【請求項３３】
前記ジョブ検出ステップでは、前記キューに蓄えられている複数のジョブの中から、前記他のジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする請求項３０乃至３２のいずれか１つに記載のプログラム。
【請求項３４】
前記ジョブ検出ステップで検出された前記第１のジョブの転送先になり得るジョブ処理装置が複数存在する場合に、前記第１のジョブを前記転送先になり得る複数のジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定ステップをさらに有し、
前記転送ステップでは、前記処理完了予定時刻が最も早いジョブ処理装置に前記第１のジョブを転送する
ことを特徴とする請求項３０乃至３３のいずれか１つに記載のプログラム。
【請求項３５】
前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行した場合の処理完了予定時刻とを求めて比較する比較ステップと、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付ステップと、
をさらに有し、
前記転送ステップでは、前記選択受付ステップにて転送の選択を受けた場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする請求項３０乃至３４のいずれか１つに記載のプログラム。
【請求項３６】
前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行した場合の第２処理完了予定時刻を求めて比較する比較ステップをさらに有し、
前記転送ステップでは、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする請求項３０乃至３４のいずれか１つに記載のプログラム。
【請求項３７】
前記第１ジョブ処理装置がジョブを実行していないときに前記第１ジョブ処理装置のプログラムを更新する更新ステップをさらに有し、
前記ジョブ検出ステップは、前記第１ジョブ処理装置がジョブを実行しているために前記更新ステップによるプログラムの更新が延期されているときに前記検出を行う
ことを特徴とする請求項３０乃至３６のいずれか１つに記載のプログラム。
【請求項３８】
プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブを前記更新ステップでプログラムを更新してから前記第１ジョブ処理装置で実行する場合は、キュー内のジョブのうち、プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブ以外のすべてのジョブを先に実行してから前記更新ステップによるプログラムの更新を行う
ことを特徴とする請求項３７に記載のプログラム。
【請求項３９】
前記第１ジョブ処理装置より古いバージョンのプログラムで動作する他のジョブ処理装置からジョブの転送を受けて該ジョブを自装置で実行する場合に、前記キューに蓄えられているジョブの中から、転送元のジョブ処理装置で実行しても前記第１ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する交換ジョブ検出ステップと、
前記交換ジョブ検出ステップで検出されたジョブを、前記キューから取り出し、前記転送元のジョブ処理装置に転送して実行させる第２転送ステップと、
をさらに有する
ことを特徴とする請求項３０乃至３８のいずれか１つに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムが更新されるジョブ処理装置、複数のジョブ処理装置を管理する管理サーバおよびそのプログラムに関する。
【背景技術】
【０００２】
近年、プリンタやスキャナ、ファクシミリ等の機能を備える複合機（ＭＦＰ（Multi Function Peripheral））では、フラッシュＲＯＭ等(Read Only Memory)に格納されているプログラムを、ネットワークを通じてアップデートすることが広く一般に普及している。たとえば、サーバに更新プログラムがアップされたことを検知したＭＦＰは、その更新プログラムをダウンロードすることで前述のアップデートを実行する。
【０００３】
ＭＦＰは、前述のアップデートを行っている間は、ジョブの実行や、操作の受け付けが不可能となる。そこで、通常、前述のアップデートは、ＭＦＰがジョブを実行していないときや、操作を受けていない、所謂、待機状態のときに行われる。たとえば、ネットワークを介して更新プログラムを受信した場合に未処理で実行待ちのジョブがキューにある場合は、これらのジョブの実行が完了するまでプログラムの更新は待たされる。逆に、ジョブの実行よりプログラムの更新を優先する場合には、該更新が完了するまでキューに登録されているジョブの実行開始が待たされる。
【０００４】
下記特許文献１には、ネットワークを介して更新プログラムを受信した場合に未処理で実行待ちのプリントジョブがある場合は、該プリントジョブをネットワークに接続されている他の画像処理装置に転送し、転送が完了したらプログラムの更新を開始することで、プログラム更新およびジョブの実行がいずれも早期に行われるようにした画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−５４０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通常、プログラムが更新されることによって、不具合の解消、画質の改善、生産性の向上などジョブ処理の品質が改善される。そのため、キューに登録されている実行待ちのジョブが、プログラムの更新によってジョブ処理の品質が改善されるジョブならば、プログラムの更新を優先し、更新完了後に実行することが望ましい。
【０００７】
しかし、更新完了を待てば、その分（例えば、数分間）ジョブの実行開始が遅れてしまう。
【０００８】
特許文献１に開示の技術では、転送先の装置がプログラム更新済みか否かを確認せずに転送されるので、転送先の装置のプログラムが更新前のバージョンであり、かつ、転送されるジョブがプログラムの更新によってジョブ処理の品質が改善されるジョブの場合には、ジョブを転送しても、転送先でジョブ処理の品質が改善されないまま実行されてしまう。
【０００９】
一方、プログラムの更新によってジョブ処理の品質が改善されないジョブもある。たとえば、プログラムの更新内容が同報のファックス送信ジョブに関する不具合の改善であれば、プログラムの更新によってジョブ処理の品質が改善されるジョブは同報のファックス送信ジョブのみであり、他のジョブは更新前のプログラムで実行しても問題は生じない。
【００１０】
したがって、プログラムを更新するために、プログラムの更新によってジョブ処理の品質が改善されないジョブまで一律に他のジョブ処理装置に転送すると、他のジョブ処理装置の処理負担が過剰に増えてしまい、ジョブの実行完了まで長時間を要するケースも生じてしまう。
【００１１】
本発明は、上記の問題を解決しようとするものであり、一のジョブ処理装置とこれより新しいバージョンのプログラムで動作する他のジョブ処理装置がある場合に、一のジョブ処理装置でプログラムの更新を待つことなく、他のジョブ処理装置を効率的に利用してジョブを、早期にかつ品質を確保して実行させることのできるジョブ処理装置、管理サーバおよびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１３】
［１］投入されたジョブが蓄えられるキューと、
プログラムが記憶されている記憶部と、
前記記憶部に記憶されているプログラムに従って動作することで、前記キューに蓄えられているジョブを順次実行するジョブ処理部と、
ネットワークを介して通信するネットワーク通信部と、
前記キューに蓄えられている複数のジョブの中から、前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する他のジョブ処理装置で実行した場合に自装置で実行するよりもジョブ処理の品質が改善される第１のジョブを検出するジョブ検出部と、
前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する前記他のジョブ処理装置を前記ネットワーク上で検出する他装置検出部と、
前記ジョブ検出部によって検出された前記第１のジョブを、前記キューから取り出し、前記他のジョブ処理装置に転送して実行させる転送部と、
を有し、
前記ジョブ処理部は、前記キューに蓄えられているジョブのうち、前記第１のジョブ以外の第２のジョブを実行する、
ことを特徴とするジョブ処理装置。
【００１４】
上記発明および下記［１１］、［２１］、［３０］に記載の発明では、自装置より新しいバージョンのプログラムで動作する他のジョブ処理装置がある場合に、他のジョブ処理装置で実行した場合に自装置で実行するよりもジョブ処理の品質が改善されるジョブを他のジョブ処理装置に転送して実行させる。これにより、自装置でのプログラムの更新を待つことなく、他のジョブ処理装置を効率的に利用してジョブを早期にかつ品質を確保して実行させることができる。
【００１５】
［２］前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする［１］に記載のジョブ処理装置。
［３］前記ジョブ処理の品質は、画質である
ことを特徴とする［１］に記載のジョブ処理装置。
［４］前記ジョブ検出部は、前記キューに蓄えられている複数のジョブの中から、前記他のジョブ処理装置で実行した場合に自装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする［１］乃至［３］のいずれか１つに記載のジョブ処理装置。
【００１６】
［５］前記ジョブ検出部によって検出された前記第１のジョブの転送先になり得るジョブ処理装置が複数存在する場合に、前記第１のジョブを前記転送先になり得る複数のジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定部をさらに有し、
前記転送部は、前記処理完了予定時刻が最も早いジョブ処理装置に前記第１のジョブを転送する
ことを特徴とする［１］乃至［４］のいずれか１つに記載のジョブ処理装置。
【００１７】
上記発明および下記［１５］、［２５］、［３４］に記載の発明では、転送先が複数ある場合、転送したジョブの処理完了予定時刻が最も早い転送先にジョブを転送する。
【００１８】
［６］前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを自装置のプログラムを更新してから自装置で実行した場合の処理完了予定時刻とを求めて比較する比較部と、
前記比較の結果をユーザに通知して、前記第１のジョブを自装置で実行するか転送するかの選択をユーザから受け付ける選択受付部と、
をさらに有し、
前記転送部は、前記選択受付部にて転送の選択を受けた場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする［１］乃至［５］のいずれか１つに記載のジョブ処理装置。
【００１９】
上記発明および下記［１６］、［２６］、［３５］に記載の発明では、転送対象のジョブを他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、自装置でプログラムを更新してから実行した場合の処理完了予定時刻を求めてユーザに示し、転送するか否かの選択をユーザから受け付ける。
【００２０】
［７］前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、自装置のプログラムを更新してから自装置で実行した場合の第２処理完了予定時刻を求めて比較する比較部をさらに有し、
前記転送部は、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする［１］乃至［５］のいずれか１つに記載のジョブ処理装置。
【００２１】
上記発明および下記［１７］、［２７］、［３６］に記載の発明では、転送対象のジョブを他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、自装置でプログラムを更新してから実行した場合の処理完了予定時刻を求め、前者が早い場合は自動的に「転送」を選択する。
【００２２】
［８］前記ジョブ処理部がジョブを実行していないときに自装置のプログラムを更新する更新部をさらに有し、
前記ジョブ検出部は、前記ジョブ処理部がジョブを実行しているために前記更新部がプログラムの更新を延期させているときに前記検出を行う
ことを特徴とする［１］乃至［７］のいずれか１つに記載のジョブ処理装置。
【００２３】
上記発明および下記［１８］、［２８］、［３７］に記載の発明では、キュー内のジョブを他のジョブ処理装置に転送する処理は、ジョブ実行中のためにプログラムの更新が延期されている場合に行われる。
【００２４】
［９］プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブを前記更新部でプログラムを更新してから自装置で実行する場合は、キュー内のジョブのうち、プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブ以外のすべてのジョブを先に実行してからプログラムを更新する
ことを特徴とする［８］に記載のジョブ処理装置。
【００２５】
上記発明では、プログラムが更新される利益を受けないジョブを、プログラムの更新前に優先的に実行してからプログラムを更新する。
【００２６】
［１０］自装置より古いバージョンのプログラムで動作する他のジョブ処理装置からジョブの転送を受けて該ジョブを自装置で実行する場合に、前記キューに蓄えられているジョブの中から、転送元のジョブ処理装置で実行しても自装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する交換ジョブ検出部をさらに有し、
前記転送部は、前記交換ジョブ検出部によって検出されたジョブを、前記キューから取り出し、前記転送元のジョブ処理装置に転送して実行させる
ことを特徴とする［１］乃至［９］のいずれか１つに記載のジョブ処理装置。
【００２７】
上記発明では、他のジョブ処理装置からジョブが転送された場合、自装置のキューの中にあるジョブのうち、他のジョブ処理装置で実行しても問題の無いジョブを他のジョブ処理装置に転送して、ジョブを交換する。
【００２８】
［１１］複数のジョブ処理装置がネットワークを介して接続される管理サーバであって、
第１バージョンのプログラムで動作する第１ジョブ処理装置と、前記第１バージョンより新しいバージョンのプログラムで動作する第２ジョブ処理装置が接続されている場合に、前記第１ジョブ処理装置のキューで実行待ちしているジョブであって、前記第１ジョブ処理装置で実行するよりも前記第２ジョブ処理装置で実行した場合にジョブ処理の品質が改善される第１のジョブを検出する第１ジョブ検出部と、
前記第１ジョブ検出部によって検出された前記第１のジョブを、前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送して実行させる転送部と、
を有し、
前記第１ジョブ処理装置のキューで実行待ちしているジョブのうち、前記第１のジョブ以外の第２のジョブは前記第１ジョブ処理装置に実行させる
ことを特徴とする管理サーバ。
【００２９】
［１２］前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする［１１］に記載の管理サーバ。
［１３］前記ジョブ処理の品質は、画質である
ことを特徴とする［１１］に記載の管理サーバ。
［１４］前記第１ジョブ検出部は、前記キューに蓄えられている複数のジョブの中から、前記第２ジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする［１１］乃至［１３］のいずれか１つに記載の管理サーバ。
【００３０】
［１５］前記第２ジョブ処理装置が複数存在する場合に、前記第１のジョブを前記複数の第２ジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定部をさらに有し、
前記転送部は、前記複数の第２ジョブ処理装置の中で前記処理完了予定時刻が最も早い装置に前記第１のジョブを転送する
ことを特徴とする［１１］または［１４］に記載の管理サーバ。
【００３１】
［１６］前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の処理完了予定時刻とを求めて比較する比較部と、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付部と、
をさらに有し、
前記転送部は、前記選択受付部にて転送の選択を受けた場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする［１１］乃至［１５］のいずれか１つに記載の管理サーバ。
【００３２】
［１７］前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の第２処理完了予定時刻を求めて比較する比較部をさらに有し、
前記転送部は、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする［１１］乃至［１５］のいずれか１つに記載の管理サーバ。
【００３３】
［１８］前記第１ジョブ検出部は、前記第１ジョブ処理装置がジョブの実行中であってプログラムを更新できない場合に、前記検出を行う
ことを特徴とする［１１］乃至［１７］のいずれか１つに記載の管理サーバ。
【００３４】
［１９］前記第２ジョブ処理装置のキューで実行待ちしているジョブの中から、前記第１ジョブ処理装置で実行しても前記第２ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する第２ジョブ検出部をさらに有し、
前記転送部は、前記第２ジョブ検出部によって検出されたジョブを、前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる
ことを特徴とする［１１］乃至［１８］のいずれか１つに記載の管理サーバ。
【００３５】
上記発明および下記［２９］に記載の発明では、新しいバージョンのプログラムで動作する第２ジョブ処理装置のキューで実行待ちしているジョブの中に、古いバージョンのプログラムで動作する第１ジョブ処理装置で実行してもジョブ処理の品質が低下しないジョブがあれば、そのジョブを第２ジョブ処理装置から第１ジョブ処理装置に転送する。
【００３６】
［２０］前記第１ジョブ検出部によって検出された前記第１のジョブを前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送した場合に、前記第２ジョブ検出部によって検出されたジョブを前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる
ことを特徴とする［１９］に記載の管理サーバ。
【００３７】
［２１］複数のジョブ処理装置がネットワークを介して接続される管理サーバで実行されるプログラムあって、
第１バージョンのプログラムで動作する第１ジョブ処理装置と、前記第１バージョンより新しいバージョンのプログラムで動作する第２ジョブ処理装置が接続されている場合に、前記第１ジョブ処理装置のキューで実行待ちしているジョブであって、前記第１ジョブ処理装置で実行するよりも前記第２ジョブ処理装置で実行した場合にジョブ処理の品質が改善される第１のジョブを検出する第１ジョブ検出ステップと、
前記第１ジョブ検出ステップで検出されたジョブを、前記第１ジョブ処理装置から前記第２ジョブ処理装置に転送して実行させる第１転送ステップと、
前記第１ジョブ処理装置のキューで実行待ちしているジョブのうち、前記第１のジョブ以外の第２のジョブは前記第１ジョブ処理装置に実行させるステップと、
を有する
ことを特徴とするプログラム。
【００３８】
［２２］前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする［２１］に記載のプログラム。
［２３］前記ジョブ処理の品質は、画質である
ことを特徴とする［２１］に記載のプログラム。
［２４］前記第１ジョブ検出ステップでは、前記キューに蓄えられている複数のジョブの中から、前記第２ジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする［２１］乃至［２３］のいずれか１つに記載のプログラム。
【００３９】
［２５］前記第２ジョブ処理装置が複数存在する場合に、前記第１のジョブを前記複数の第２ジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定ステップをさらに有し、
前記第１転送ステップでは、前記複数の第２ジョブ処理装置の中で前記処理完了予定時刻が最も早い装置に前記第１のジョブを転送する
ことを特徴とする［２１］乃至［２４］のいずれか１つに記載のプログラム。
【００４０】
［２６］前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の処理完了予定時刻とを求めて比較する比較ステップと、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付ステップと、
をさらに有し、
前記第１転送ステップでは、前記選択受付ステップで転送の選択を受けた場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする［２１］乃至［２５］のいずれか１つに記載のプログラム。
【００４１】
［２７］前記第１のジョブを前記第２ジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行する場合の第２処理完了予定時刻を求めて比較する比較ステップをさらに有し、
前記第１転送ステップでは、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記第２ジョブ処理装置に転送する
ことを特徴とする［２１］乃至［２５］のいずれか１つに記載のプログラム。
【００４２】
［２８］前記第１ジョブ検出ステップは、前記第１ジョブ処理装置がジョブの実行中であってプログラムを更新できない場合に行われる
ことを特徴とする［２１］乃至［２７］のいずれか１つに記載のプログラム。
【００４３】
［２９］前記第２ジョブ処理装置のキューで実行待ちしているジョブの中から、前記第１ジョブ処理装置で実行しても前記第２ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する第２ジョブ検出ステップと、
前記第２ジョブ検出ステップで検出されたジョブを、前記第２ジョブ処理装置から前記第１ジョブ処理装置に転送して実行させる第２転送ステップと、
をさらに有する
ことを特徴とする［２１］乃至［２８］のいずれか１つに記載のプログラム。
［３０］ネットワークに接続された第１ジョブ処理装置で実行されるプログラムであって、
キューに蓄えられている複数のジョブの中から、前記第１ジョブ処理装置の記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する他のジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善される第１のジョブを検出するジョブ検出ステップと、
前記記憶部に記憶されているプログラムより新しいバージョンのプログラムで動作する前記他のジョブ処理装置を前記ネットワーク上で検出する他装置検出ステップと、
前記ジョブ検出ステップで検出された前記第１のジョブを、前記キューから取り出し、前記他のジョブ処理装置に転送して実行させる転送ステップと、
前記キューに蓄えられているジョブのうち、前記第１のジョブ以外の第２のジョブを実行するジョブ処理ステップと、
を有する
ことを特徴とするプログラム。
［３１］前記ジョブ処理の品質は、
不具合の発生、生産性、画質の中の少なくとも１つを含む
ことを特徴とする［３０］に記載のプログラム。
［３２］前記ジョブ処理の品質は、画質である
ことを特徴とする［３０］に記載のプログラム。
［３３］前記ジョブ検出ステップでは、前記キューに蓄えられている複数のジョブの中から、前記他のジョブ処理装置で実行した場合に前記第１ジョブ処理装置で実行するよりもジョブ処理の品質が改善されるジョブを前記第１のジョブとして検出する
ことを特徴とする［３０］乃至［３２］のいずれか１つに記載のプログラム。
［３４］前記ジョブ検出ステップで検出された前記第１のジョブの転送先になり得るジョブ処理装置が複数存在する場合に、前記第１のジョブを前記転送先になり得る複数のジョブ処理装置のそれぞれで実行させた場合の処理完了予定時刻を推定する推定ステップをさらに有し、
前記転送ステップでは、前記処理完了予定時刻が最も早いジョブ処理装置に前記第１のジョブを転送する
ことを特徴とする［３０］乃至［３３］のいずれか１つに記載のプログラム。
［３５］前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の処理完了予定時刻と、前記第１のジョブを前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行した場合の処理完了予定時刻とを求めて比較する比較ステップと、
前記比較の結果をユーザに通知して、前記第１のジョブを前記第１ジョブ処理装置で実行するか転送するかの選択をユーザから受け付ける選択受付ステップと、
をさらに有し、
前記転送ステップでは、前記選択受付ステップにて転送の選択を受けた場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする［３０］乃至［３４］のいずれか１つに記載のプログラム。
［３６］前記第１のジョブを前記他のジョブ処理装置に転送して実行させた場合の第１処理完了予定時刻と、前記第１のジョブを、前記第１ジョブ処理装置のプログラムを更新してから前記第１ジョブ処理装置で実行した場合の第２処理完了予定時刻を求めて比較する比較ステップをさらに有し、
前記転送ステップでは、前記第１処理完了予定時刻が前記第２処理完了予定時刻より早い場合に、前記第１のジョブを前記他のジョブ処理装置に転送する
ことを特徴とする［３０］乃至［３４］のいずれか１つに記載のプログラム。
［３７］前記第１ジョブ処理装置がジョブを実行していないときに前記第１ジョブ処理装置のプログラムを更新する更新ステップをさらに有し、
前記ジョブ検出ステップは、前記第１ジョブ処理装置がジョブを実行しているために前記更新ステップによるプログラムの更新が延期されているときに前記検出を行う
ことを特徴とする［３０］乃至［３６］のいずれか１つに記載のプログラム。
［３８］プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブを前記更新ステップでプログラムを更新してから前記第１ジョブ処理装置で実行する場合は、キュー内のジョブのうち、プログラムの更新後に実行するとジョブ処理の品質が改善されるジョブ以外のすべてのジョブを先に実行してから前記更新ステップによるプログラムの更新を行う
ことを特徴とする［３７］に記載のプログラム。
［３９］前記第１ジョブ処理装置より古いバージョンのプログラムで動作する他のジョブ処理装置からジョブの転送を受けて該ジョブを自装置で実行する場合に、前記キューに蓄えられているジョブの中から、転送元のジョブ処理装置で実行しても前記第１ジョブ処理装置で実行した場合に比べてジョブ処理の品質が低下しないジョブを検出する交換ジョブ検出ステップと、
前記交換ジョブ検出ステップで検出されたジョブを、前記キューから取り出し、前記転送元のジョブ処理装置に転送して実行させる第２転送ステップと、
をさらに有する
ことを特徴とする[３０]乃至［３８］のいずれか１つに記載のプログラム。
【発明の効果】
【００４４】
本発明に係るジョブ処理装置、管理サーバおよびそのプログラムによれば、一のジョブ処理装置とこれより新しいバージョンのプログラムで動作する他のジョブ処理装置がある場合に、一のジョブ処理装置で実行待ちしているジョブのうち、他のジョブ処理装置で実行すればジョブ処理の品質が改善されるジョブを他のジョブ処理装置に転送して実行させるので、一のジョブ処理装置でプログラムの更新を待つことなく、他のジョブ処理装置を効率的に利用してジョブを、早期にかつ品質を確保して実行することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態に係る印刷システムの構成を示す図である。を示す。
【図２】本発明の実施の形態に係る複合機の概略構成を示すブロック図である。
【図３】ジョブの実行、転送に関する複合機の機能構成を示すブロック図である。
【図４】管理サーバの概略構成を示すブロック図である。
【図５】管理サーバが保有する管理テーブルの一例を示す図である。
【図６】管理サーバが保有する更新管理テーブルの一例を示す図である。
【図７】ＭＦＰ１、ＭＦＰ２の転送前のキューの状態を示す図である。
【図８】ＭＦＰ１からＭＦＰ２に改善対象ジョブ（ＦＡＸ同報送信ジョブ）を転送する状態を示す図である。
【図９】改善対象ジョブを転送後のＭＦＰ１、ＭＦＰ２のキューの状態を示す図である。
【図１０】ＭＦＰ２からＭＦＰ１に無関連ジョブ（ＦＡＸ送信ジョブ）を転送する状態を示す図である。
【図１１】無関連ジョブを転送後のＭＦＰ１、ＭＦＰ２のキューの状態を示す図である。
【図１２】改善対象ジョブや無関連ジョブの転送に関して複合機が行う処理を示す流れ図である。
【図１３】図１２の続きを示す流れ図である。
【図１４】図１３の続きを示す流れ図である。
【図１５】図１２〜図１４に示す複合機の処理に対応して管理サーバが行う処理を示す流れ図である。
【図１６】キューの中でジョブの順序を入れ替えてからプログラムを更新する場合におけるキューの状態の変化を示す図である。
【図１７】第２の実施の形態の管理サーバの処理を示す流れ図である。
【図１８】第１ジョブ転送処理（図１７のステップＳ３０４）の詳細を示す流れ図である。
【図１９】バージョン１、２、３のプログラムで動作する３台のＭＦＰが存在する場合の転送例を示す図である。
【発明を実施するための形態】
【００４６】
以下、図面に基づき本発明の実施の形態を説明する。
【００４７】
<第１の実施の形態＞
図１は、本発明の実施の形態に係る印刷システム５を示す。印刷システム５は、ＬＡＮ（Local Area Network）などのネットワーク２を通じて、本発明に係るジョブ処理装置の機能を果たす複数台の複合機１０Ａ、１０Ｂ、１０Ｃ…と、管理サーバ４０とを通信可能に接続して構成される。以後、複合機を総称する、もしくは任意の１台を指す場合は、末尾にアルファベットを付さず、複合機１０のように、数字のみで記し、個々を示す場合は複合機１０Ａ、１０Ｂ、１０Ｃのように数字の末尾にＡ、Ｂ、Ｃ等を付すものとする。複合機１０の構成要素等についても同様とする。
【００４８】
複合機（ＭＦＰとも記す）１０は、原稿を光学的に読み取ってその複製画像を記録紙に印刷するコピージョブ、読み取った原稿の画像データをファイルにして保存したり外部装置へ送信したりするスキャンジョブ、ＰＣから送出されたデータに係る画像を記録紙に印刷して出力するプリントジョブなどのジョブを実行する機能を備えている。
【００４９】
複合機１０は、自装置の動作を制御するためのプログラムを記憶している。管理サーバ４０には、複合機１０で使用されるプログラムの各種バージョンが記憶されている。管理サーバ４０には、バージョンアップされたプログラム(更新プログラム)が管理者等によってアップロードされて記憶される。
【００５０】
複合機１０は、管理サーバ４０にアップロードされた更新プログラムを、ネットワーク２を介して管理サーバ４０からダウンロードし、自装置が記憶しているプログラムを、その更新プログラムに更新（アップデート）する機能を有する。プログラムが更新されることによって、不具合の解消、画質の改善、生産性の向上など、ジョブ処理の品質が改善される。生産性には、１分間当たりのコピー枚数やプリント枚数、スキャン枚数、コピージョブの場合にはＦＣＯＴ（１枚目のコピーができるまでの時間）の短縮などがある。
【００５１】
プログラムの更新はネットワーク２上のすべての複合機１０で同時に行われるものではないため、ネットワーク２に接続されている複数の複合機１０間においてプログラムのバージョンが異なる状態が生じる。そこで、本実施の形態に係る複合機１０は、自装置にインストールされているプログラムより新しいバージョンのプログラムで動作する他の複合機１０がネットワーク２上にある場合は、自装置で実行待ちしているジョブの中に、その新しいバージョンのプログラムで動作する他の複合機１０で実行した場合に自装置で実行するよりもジョブ処理の品質が改善されるジョブ（改善対象ジョブとする）があるか否かを判定する。そして、改善対象ジョブがある場合は、その改善対象ジョブを新しいバージョンのプログラムで動作する他の複合機１０に転送して実行させる制御を行う。
【００５２】
複合機１０においてプログラムの更新には、通常、数分から数十分を要するので、実行待ちしている改善対象ジョブを自装置のプログラムを更新してから自装置で実行すると、ジョブが実行されるまでに長い待ち時間が生じてしまう。本実施の形態では、改善対象ジョブを新しいバージョンのプログラムで動作する他の複合機１０に転送して実行させるので、自装置でプログラムが更新されるのを待つことなく、他の複合機１０を効率的に利用して、ジョブを、早期にかつ品質を確保して実行させることができる。
【００５３】
図２は、本発明の実施の形態に係る複合機１０の概略構成を示すブロック図である。複合機１０は、当該複合機１０の動作を統括的に制御するＣＰＵ(Central Processing Unit)１１を有している。ＣＰＵ１１にはバスを通じてＲＯＭ１２、ＲＡＭ(Random Access Memory)１３、不揮発メモリ１４、ハードディスク装置１５、画像処理部１６、画像読取部１７、プリンタ部１８、ファクシミリ通信部１９、ネットワーク通信部２０、認証部２１、近距離無線通信部２２、操作パネル２３などが接続されている。
【００５４】
ＣＰＵ１１は、ＯＳ（Operating System）プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ１２には、複合機１０を起動するためのプログラムが格納されており、このプログラムに従って起動した後は、ハードディスク装置１５に格納されているプログラムをＲＡＭ１３にロードし、そのロードされたプログラムに従ってＣＰＵ１１が各種処理を実行することで複合機１０としての各機能が実現される。
【００５５】
ＲＡＭ１３は、ＣＰＵ１１がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。ＲＡＭ１３には、投入されたジョブを投入順に蓄えるキュー７０（図７等参照）が設けられる。キュー７０は先き入れ先き出し型のメモリである。
【００５６】
複合機１０のＣＰＵ１１は、投入されたジョブをキュー７０の末尾に入れる。複合機１０がジョブを実行可能な状態のときに、ＣＰＵ１１は、キュー７０の先頭のジョブを取り出して、その取り出したジョブを実行する。このジョブの実行が終了したら、キュー７０の先頭から次のジョブを取り出して実行する。ジョブの実行が終了したとき、キュー７０にジョブがなければ、待機状態に移行する。
【００５７】
不揮発メモリ１４は、電源をオフにしても記憶内容が破壊されないメモリ（フラッシュメモリ）であり、各種設定情報の保存などに使用される。
【００５８】
ハードディスク装置１５は、大容量不揮発の記憶装置であり、ＯＳプログラムや各種アプリケーションプログラム、ユーザ情報、各種のジョブ履歴等が保存される。また、ハードディスク装置１５には、複合機１０の一連の制御をＣＰＵ１１が実行するためのプログラム（自装置でのジョブ処理の動作を制御するためのプログラム等）が格納されている。このプログラムは管理サーバ４０からダウンロードされた更新プログラムで上書きされてアップデートされる。なお、ハードディスク装置１５は、ＳＳＤ（Solid State Drive）等の他の記憶媒体であってもよい。
【００５９】
画像処理部１６は、画像の拡大縮小、回転などの処理のほか、印刷データをイメージデータに変換するラスタライズ処理、画像データの圧縮、伸張処理などを行う。
【００６０】
画像読取部１７は、原稿を光学的に読み取って画像データを取得する機能を果たす。画像読取部１７は、例えば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動ユニットと、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００６１】
プリンタ部１８は、画像データに応じた画像を記録紙上に画像形成する機能を果たす。ここでは、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。画像形成は他の方式でもかまわない。
【００６２】
ファクシミリ通信部１９は、ファクシミリ（ＦＡＸ（facsimile））機能を備えた外部装置と公衆回線を通じて画像データを送受信する機能を果たす。
【００６３】
ネットワーク通信部２０は、ＬＡＮなどのネットワーク２を通じて管理サーバ４０や、その他の外部装置との間でデータを通信する機能を果たす。
【００６４】
認証部２１は、ユーザ認証を行う機能を果たす。具体的には、ユーザのログイン時にユーザ認証を行い、ログインユーザを特定する。本実施の形態では、操作部５２を利用するにはログインを必要とし、利用前にユーザ認証が必ず行われるものとする。なお、ユーザ認証の方法は、ユーザＩＤ（Identification）とパスワードによる認証や指紋認証等、適当な方法であればよい。
【００６５】
近距離無線通信部２２は、携帯端末などの外部装置と近距離無線通信を行う。通信可能距離は、たとえば、１０ｃｍ以内等である。
【００６６】
操作パネル２３は、表示部２４と、操作部２５を備えている。操作部２５は、スタートボタンや戻る釦などのハードスイッチとタッチパネルとを備えている。タッチパネルは、表示部２４上に設けられ、タッチペンや指などで押下された位置（座標位置）を検出する。表示部２４は、液晶ディスプレイ（ＬＣＤ…Liquid Crystal Display）などで構成され、各種の操作画面、設定画面などを表示する機能を果たす。
【００６７】
図３は、ジョブの実行、転送に関する複合機１０の機能構成を示すブロック図である。これらの機能は図２のＣＰＵ１１がプログラムを実行して各ハードウェアを動作させることで実現される。複合機１０は、記憶部３１、更新部３２、キュー７０、ジョブ処理部３３、ネットワーク通信部２０、他装置検出部３４、ジョブ検出部３５、推定部３６、比較部３７、選択受付部３８、転送部３９などの機能を有する。
【００６８】
更新部３２は、記憶部３１に記憶されているプログラムを、管理サーバ４０からダウンロードした新しいバージョンのプログラムに更新する。ジョブ処理部３３は、記憶部３１に記憶されているプログラムに従って動作することで、キュー７０に登録されているジョブを順次実行する。なお、更新部３２は、ジョブ処理部３３がジョブを実行していないときに自装置のプログラムを更新する。
【００６９】
他装置検出部３４は、記憶部３１に記憶されているプログラムより新しいバージョンのプログラムで動作する他の複合機１０をネットワーク２上で検出する。ジョブ検出部３５は、キュー７０に蓄えられているジョブの中から、他装置検出部３４によって検出された他の複合機１０で実行した場合に自装置で実行するよりもジョブ処理の品質が改善される改善対象ジョブを検出する。
【００７０】
推定部３６は、ジョブ検出部３５によって検出された改善対象ジョブの転送先になり得る複合機１０が複数存在する場合に、検出された改善対象ジョブを、転送先になり得る複数の複合機１０のそれぞれで実行させた場合の処理完了予定時刻を推定する。比較部３７は、検出された改善対象ジョブを他の複合機１０に転送して実行させた場合の処理完了予定時刻と、検出された改善対象ジョブを自装置のプログラムを更新してから自装置で実行した場合の処理完了予定時刻とを比較する。選択受付部３８は、比較の結果をユーザに通知し、検出された改善対象ジョブを自装置で実行するか転送するかの選択をユーザから受け付ける。
【００７１】
転送部３９は、選択受付部３８でユーザから転送の選択を受けた場合は、検出された改善対象ジョブを他のジョブ処理装置に転送する。また、ユーザ選択を受けずに、転送するか自装置で実行するかを装置側で自動選択するモードが設定されている場合には、転送部３９は、転送した場合の処理完了予定時刻が自装置で実行した場合の処理完了予定時刻より早い場合に、改善対象ジョブを転送先に転送する。
【００７２】
なお、プログラムの更新要求があるが、ジョブ実行中のために、更新部３２がプログラムを更新できずに更新を延期させているときは、次のような制御が行われる。ジョブ処理部３３は、キュー７０にあるジョブのうち、プログラムを更新してもジョブ処理の品質が更新前と変わらないジョブを品質が改善されるジョブより優先して先に実行する。更新部３２は、プログラムを更新してもジョブ処理の品質が更新前と変わらないすべてのジョブの実行が完了した段階でプログラムを更新する。その後、ジョブ処理部３３は、プログラムを更新したことで品質が改善されるジョブを実行する。
【００７３】
図４は、管理サーバ４０の概略構成を示すブロック図である。管理サーバ４０は、当該管理サーバ４０の動作を統括的に制御するＣＰＵ４１を有している。ＣＰＵ４１にはバスを通じてＲＯＭ４２、ＲＡＭ４３、不揮発メモリ４４、ハードディスク装置４５、ネットワーク通信部４６、認証部４７、表示部５１、操作部５２などが接続されている。
【００７４】
ＣＰＵ４１は、ＯＳプログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ４２には、各種のプログラムが格納されており、これらのプログラムに従ってＣＰＵ４１が各種処理を実行することで管理サーバ４０としての各機能が実現される。
【００７５】
ＲＡＭ４３は、ＣＰＵ４１がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリなどとして使用される。
【００７６】
不揮発メモリ４４は、電源をオフにしても記憶内容が破壊されないメモリ（フラッシュメモリ）であり、各種設定情報の保存などに使用される。
【００７７】
ハードディスク装置４５は、大容量の不揮発の記憶装置であり、ＯＳプログラムや各種アプリケーションプログラムなどが保存される。また管理者等によってアップロードされた各種バージョンの更新プログラムが記憶される。さらに、管理サーバ４０にネットワーク２を介して接続されている管理対象の複合機１０毎に、その複合機１０の現在のプログラムのバージョンや各バージョンの改善内容(改修内容)等の情報が登録された管理テーブル６０（図５参照）等が記憶される。
【００７８】
ネットワーク通信部４６は、ネットワーク２を通じて複合機１０やその他の外部装置との間で通信する機能を果たす。
【００７９】
認証部４７は、ユーザ認証を行う機能を果たす。操作部５２は、キーボードや、マウス等の入力装置を含んで構成される。表示部５１は、液晶ディスプレイなどの表示装置であり、各種の操作画面、設定画面などを表示する機能を果たす。
【００８０】
管理サーバ４０は、アップロードされたプログラムを記憶し管理する。また、ネットワーク２を介して接続されている複合機１０からプログラムのダウンロード要求を受けた場合、その要求元の複合機１０に、要求されたプログラムを転送する。また、管理サーバ４０は、管理対象の各複合機１０がどのバージョンのプログラムで動作しているかを管理する。
【００８１】
次に、管理サーバ４０が保有する管理テーブル６０について説明する。
【００８２】
図５は、管理サーバ４０が保有する管理テーブル６０の一例を示す。管理テーブル６０には、管理サーバ４０にアップロードされたプログラムの履歴が登録されている。
【００８３】
具体的には、アップロードされたプログラム毎に、バージョン番号、アップロードされた日付、そのバージョンでの改善内容が登録されている。通常、プログラムの更新によって、不具合の解消、画質の改善、生産性の向上などジョブ処理の品質が改善されるので、その改善内容をそのバージョンのプログラムの情報として登録する。
【００８４】
図５に示す管理テーブル６０では、バージョン１の後にバージョン２のプログラムがアップロードされており、バージョン２は、ＦＡＸ同報送信機能に係る不具合が改修されている。
【００８５】
バージョン２の改善内容から、それ以前のバージョン（この例ではバージョン１）のプログラムではＦＡＸ同報送信機能に不具合が生じることが分かる。すなわち、バージョン１のプログラムで動作する複合機１０でＦＡＸ同報送信ジョブを実行すると不具合が発生するリスクがあり、バージョン２のプログラムで動作する複合機１０でＦＡＸ同報送信ジョブを実行すると不具合が発生するリスクがない（ＦＡＸ同報送信ジョブのジョブ処理品質が改善される）ことがわかる。また、ＦＡＸ同報送信以外のジョブ、たとえば、ＦＡＸ送信ジョブについては、バージョン１のプログラムで動作する複合機１０で実行しても、バージョン２のプログラムで動作する複合機１０で実行しても不具合が発生するリスクはない（ジョブ処理の品質は変わらない）ことがわかる。
【００８６】
図６は、管理サーバ４０が保有する更新管理テーブル６５を示している。更新管理テーブル６５には、管理サーバ４０が管理対象とする複合機１０毎に、その複合機１０で動作しているプログラムのバージョン、およびその複合機１０のプログラムがそのバージョンに更新された日時が登録されている。管理サーバ４０は、プログラムをダウンロードした複合機１０からそのプログラムのインストール完了の通知を受けたとき、更新管理テーブル６５に登録されているその複合機１０の現在のバージョンに関する登録内容を更新する。
【００８７】
次に、キュー７０にジョブが登録されているときの複合機１０の動作について説明する。
【００８８】
複合機１０は、自装置より新しいバージョンのプログラム（更新プログラムとする）で動作する他の複合機１０がネットワーク２上に存在する場合に、その更新プログラムで動作する他の複合機１０で実行した場合に自装置で実行する場合よりもジョブ処理の品質が改善されるジョブ（改善対象ジョブ）がキュー７０の中にあるか否かを調べ、改善対象ジョブがキュー７０にあれば、その改善対象ジョブをキュー７０から取り出して、更新プログラムで動作する他の複合機１０に転送して実行させる。
【００８９】
図７は、転送前のキュー７０Ａ、７０Ｂの状態を示している。第１複合機１０（ＭＦＰ１）はバージョン１のプログラム（旧プログラムとする）で動作している。第２複合機１０（ＭＦＰ２）はバージョン２のプログラム（更新プログラムとする）で動作している。
【００９０】
ＭＦＰ１はジョブ実行中であり、ＭＦＰ１のキュー７０Ａには、更新プログラムで動作するＭＦＰ２で実行した場合にジョブ処理の品質が改善される改善対象ジョブであるＦＡＸ同報送信ジョブと、旧プログラムで動作するＭＦＰ１で実行しても更新プログラムで動作するＭＦＰ２で実行してもジョブ処理の品質が変わらないジョブ（無関連ジョブとする）であるＦＡＸ送信ジョブと、さらにもう１つの改善対象ジョブであるＦＡＸ同報送信ジョブの３つのジョブがこの並び順で待機している。
【００９１】
ＭＦＰ２はジョブ実行中であり、ＭＦＰ２のキュー７０Ｂには、無関連ジョブであるＦＡＸ送信ジョブが待機している。なお、ＭＦＰ２は、ジョブ実行中でなくてもよいし、キュー７０Ｂにジョブが無くてもよい。
【００９２】
このとき、ＭＦＰ１は、図８に示すように、キュー７０Ａで待機している改善対象ジョブである２つのＦＡＸ同報送信ジョブを、ＭＦＰ２に転送する。図９は転送後の状態を示している。ＭＦＰ１は、実行中のジョブの実行が終了したら、キュー７０Ａで待機していたＦＡＸ送信ジョブを、旧プログラムのまま実行する。そして、キュー７０Ａで待機するジョブがなくなったら、更新プログラムへの更新処理を開始する。
【００９３】
転送を受けたＭＦＰ２は、転送されてきた順にジョブをキュー７０Ｂに登録する。そして、キュー７０Ｂの先頭から順にジョブを実行する。これにより、ＭＦＰ１からＭＦＰ２に転送されてきたＦＡＸ同報送信ジョブ（改善対象ジョブ）は更新プログラムで動作するＭＦＰ２によってジョブ処理品質が改善された状態で実行される。すなわち、ＭＦＰ１でプログラムの更新完了を待つことなく、改善対象ジョブを、早期にかつ品質を改善した状態で実行することができる。
【００９４】
次に、更新プログラムで動作する複合機１０が、旧プログラムで動作している複合機１０に対して無関連ジョブを転送する動作について説明する。
【００９５】
既に更新プログラムで動作している複合機１０のキュー７０に、更新プログラムで動作する複合機１０で実行しても旧プログラムで動作する複合機１０で実行しても品質が変わらない無関連ジョブがある場合に、該無関連ジョブを、旧プログラムで動作する他の複合機１０に転送して実行させる。
【００９６】
なお、更新プログラムで動作するＭＦＰ２が、旧プログラムで動作するＭＦＰ１から改善対象ジョブの転送を受けた場合にのみ、無関連ジョブをＭＦＰ２からＭＦＰ１に転送する動作を行うようにしてもよい。すなわち、ＭＦＰ１からＭＦＰ２にジョブを転送したことにより、ＭＦＰ２では実行待ちのジョブの数が増えて処理負担が増える。そこで、旧プログラムで動作しているＭＦＰ１から改善対象ジョブの転送を受けた場合にのみ、無関連ジョブをＭＦＰ２からＭＦＰ１に転送する。
【００９７】
この場合、ＭＦＰ２からＭＦＰ１に転送するジョブの数は、ＭＦＰ２がＭＦＰ１から転送を受けたジョブの数以下に制限する、あるいは、ＭＦＰ２からＭＦＰ１に転送するジョブの処理負担や処理時間が、ＭＦＰ２がＭＦＰ１から転送を受けたジョブの処理時間や処理負担以下になるように制限することが望ましい。
【００９８】
図１０は、ＭＦＰ２からＭＦＰ１に無関連ジョブを転送する場合のキュー７０Ａ、７０Ｂの状態を例示している。ＭＦＰ２は、自装置のキュー７０Ｂの中に無関連ジョブがあるか否かを調べる。自装置のキュー７０Ｂの中に無関連ジョブがある場合、ＭＦＰ２は、その無関連ジョブをＭＦＰ１に送信する。図１０の例では、ＭＦＰ２のキュー７０Ｂの中に無関連ジョブであるＦＡＸ送信ジョブがあるので、ＭＦＰ２はこのＦＡＸ送信ジョブを自装置のキュー７０Ｂから取り出してＭＦＰ１に転送する。
【００９９】
図１１に示すように、ＭＦＰ１は、ＭＦＰ２から転送されてきた無関連ジョブであるＦＡＸ送信ジョブを自装置のキュー７０Ａに登録し、旧プログラムのままで、キュー７０Ａにあるジョブを順次実行する。ＭＦＰ２は、キュー７０Ｂに残ったジョブを順次実行する。
【０１００】
このように、改善対象ジョブは更新プログラムで動作するＭＦＰ２に転送されて実行され、無関連ジョブは旧プログラムで動作するＭＦＰ１に転送されて実行されることで、各ＭＦＰの処理負担が平均化され、全体として短時間でジョブの実行が完了する。
【０１０１】
図１２、図１３、図１４は、改善対象ジョブや無関連ジョブの転送に関して複合機１０が行う処理の流れを示している。複合機１０は、自装置のキュー７０にジョブが存在するか否かを調べる(ステップＳ１０１)。キュー７０にジョブが存在するときは（ステップＳ１０１;Ｙｅｓ）、管理サーバ４０に更新プログラムが存在するか否かを監視する（ステップＳ１０２）。更新プログラムが存在する（もしくはアップロードされた）場合は（ステップＳ１０２;Ｙｅｓ）、更新プログラムに関する情報（改善内容等を示す情報）を管理サーバ４０から取得する（ステップＳ１０３）。なお、更新プログラムは最新バージョンである必要はなく、自装置のプログラムより新しいバージョンであればよい。
【０１０２】
次に、キュー７０で待機している各ジョブの情報（ジョブの種類や設定内容を示す情報）を取得する（ステップＳ１０４）。そして、キュー７０の中に、自装置で実行するよりも更新プログラムで動作する他の複合機１０で実行した方がジョブ処理の品質が改善される改善対象ジョブが存在するか否かを調べる（ステップＳ１０５）。
【０１０３】
キュー７０の中に、改善対象ジョブがない場合は（ステップＳ１０６;Ｎｏ）、本処理を終了する。この場合、キュー７０にあるジョブは自装置で順次処理され、すべてのジョブの実行が完了して待機状態になった段階で、更新プログラムへの更新処理が行われる。
【０１０４】
キュー７０の中に、改善対象ジョブがある場合は（ステップＳ１０６；Ｙｅｓ）、既に更新プログラムで動作していて、改善対象ジョブの転送先に成り得る（正常に動作している）他の複合機１０がネットワーク２上に存在するか否かを管理サーバ４０に問い合わせる（ステップＳ１０７）。
【０１０５】
複合機１０は、この問い合わせに対する回答を管理サーバ４０から受信したら（ステップＳ１０８；Ｙｅｓ）、回答内容が「転送可能な転送先あり」であるか否かを判定する(ステップＳ１０９)。管理サーバ４０からの回答が「転送可能な転送先なし」の場合は（ステップＳ１０９；Ｎｏ）、本処理を終了する。この場合、改善対象ジョブは、転送されずに、自装置で、プログラム更新後に実行される。
【０１０６】
管理サーバ４０からの回答が「転送可能な転送先あり」である場合は（ステップＳ１０９；Ｙｅｓ）、該回答に含まれる転送可能な転送先が複数か否かを判定する(図１３：ステップＳ１１０)。
【０１０７】
複数でなければ（ステップＳ１１０；Ｎｏ）、管理サーバ４０から通知された１つの転送可能な転送先を改善対象ジョブの転送先（ＭＦＰ２とする）に決定する。そして、ＭＦＰ２に改善対象ジョブを転送して実行させた場合に該改善対象ジョブの実行が完了する時刻（第１処理完了予定時刻）を推定し（ステップＳ１１３）、ステップＳ１１４へ移行する。
【０１０８】
処理完了予定時刻は、転送先の処理能力、転送先での待ちジョブの数や処理量等の情報を転送先から取得して自装置で推定する。あるいは、改善対象ジョブの情報を転送先に通知し、転送先に処理完了予定時刻を算出させ、その算出された処理完了予定時刻を転送先から取得することで推定してもよい。
【０１０９】
転送可能な転送先が複数の場合は（ステップＳ１１０；Ｙｅｓ）、それぞれの転送先に改善対象ジョブを転送した場合の処理完了予定時刻を、前述のようにして、推定する（ステップＳ１１１）。そして、推定した処理完了予定時刻が最も早い複合機１０を改善対象ジョブの転送先（ＭＦＰ２とする）に選択して（ステップＳ１１２）、ステップＳ１１４へ移行する。
【０１１０】
ステップＳ１１４では、自装置でプログラムを更新してから改善対象ジョブを実行した場合の処理完了予定時刻を推定する。そして、ＭＦＰ２に転送した場合の処理完了予定時刻と自装置でプログラム更新後に実行した場合の処理完了予定時刻を比較する（ステップＳ１１５）。
【０１１１】
ここで、転送するか自装置で実行するかの選択をユーザから受ける設定が成されている場合は、ステップＳ１１５での比較結果を操作パネル２３の表示部２４に表示し、改善対象ジョブを自装置で実行するか転送するかの選択をユーザから受ける（ステップＳ１１６）。自装置で実行する旨の選択をユーザから受けた場合は（ステップＳ１１７；Ｎｏ）、本処理を終了する。この場合、改善対象ジョブは、転送されずに、自装置でプログラムの更新後に実行される。
【０１１２】
転送する旨の選択をユーザから受けた場合は（ステップＳ１１７；Ｙｅｓ）、ＭＦＰ２に改善対象ジョブを転送してその実行を指示する（ステップＳ１１８）。
【０１１３】
ユーザから選択を受ける設定がオフの場合、すなわち、自動選択が設定されている場合は、ＭＦＰ２で実行した場合の処理完了予定時刻と自装置でプログラム更新後に実行した場合の処理完了予定時刻を比較し、前者が早ければ（ステップＳ１１９；Ｙｅｓ）、ステップＳ１１８に移行して、改善対象ジョブをＭＦＰ２に転送する。
【０１１４】
ＭＦＰ２での処理完了予定時刻が自装置での処理完了予定時刻より早くなければ（ステップＳ１１９；Ｎｏ）、本処理を終了する。この場合、改善対象ジョブは、転送されずに自装置でプログラムの更新後に実行される。
【０１１５】
ステップＳ１１８の後、ＭＦＰ２に対して、ＭＦＰ２のキュー７０Ｂの中に旧プログラムで実行可能なジョブ（無関連ジョブ）があるか否かの確認を要求する（ステップＳ１２１）。ＭＦＰ２から該当ジョブなしの回答を受けたら（ステップＳ１２２;Ｙｅｓ、Ｓ１２３;Ｎｏ）、本処理を終了する（エンド）。
【０１１６】
ＭＦＰ２から無関連ジョブがある旨の回答を受けた場合は（ステップＳ１２２;Ｙｅｓ、Ｓ１２３；Ｙｅｓ））、ＭＦＰ２に対して、その無関連ジョブを自装置（ＭＦＰ１）に転送するように指示する（ステップＳ１２４）。その後、ＭＦＰ２から該当の無関連ジョブを受信したら（ステップＳ１２５;Ｙｅｓ）、この無関連ジョブを自装置（ＭＦＰ１）のキュー７０Ａに登録して（ステップＳ１２６）、本処理を終了する（エンド）。ＭＦＰ２から受信してキュー７０Ａに登録したジョブは、その後、自装置（ＭＦＰ１）で実行される。
【０１１７】
図１５は、上記複合機１０の処理に対応して管理サーバ４０が行う処理を示している。管理サーバ４０は、複合機（ＭＦＰ）１０から転送可能な転送先に関する問い合わせを受信したら（ステップＳ２０１；Ｙｅｓ）、転送先に成り得る他のＭＦＰをネットワーク２上で検索する(ステップＳ２０２)。
【０１１８】
具体的には、上記の問い合わせを受けた管理サーバ４０は、更新管理テーブル６５を参照して、最新バージョン（あるいは問い合わせ元より新しいバージョン）のプログラムで動作中のＭＦＰを認識する。そして、該認識したＭＦＰのうち、ジョブを実行可能な稼働中の状態にあるすべてのＭＦＰを転送可能な転送先として検出する。
【０１１９】
転送可能な転送先が存在する場合は（ステップＳ２０３；Ｙｅｓ）、転送可能な転送先が存在すること、および、各転送先の情報（プログラムのバージョンや実行待ちジョブの状況など）を問い合わせ元のＭＦＰに送信する（ステップＳ２０４）。転送可能な転送先が存在しない場合は（ステップＳ２０３；Ｎｏ）、その旨を問い合わせ元のＭＦＰに送信する（ステップＳ２０５）。
【０１２０】
次に、改善対象ジョブを転送せずに自装置でプログラム更新後に実行する場合の複合機１０の動作について説明する。
【０１２１】
プログラムを更新してバージョンアップする場合、キュー７０で待機しているジョブの中には、バージョンアップすることでジョブ処理の品質が改善されるジョブ(改善対象ジョブ)もあれば、バージョンアップしても／しなくてもジョブ処理の品質が変わらないジョブ（無関連ジョブ）もある。無関連ジョブにとっては、数分をかけて更新プログラムにアップデートしても恩恵はなく、更新による待ち時間が生じた分だけ不利益を受けることになる。
【０１２２】
そこで、本実施の形態に係る複合機１０では、無関連ジョブがキュー７０に存在する場合、それらの無関連ジョブが改善対象ジョブより先に実行されるようにキュー７０の中でジョブの順序を入れ替え、無関連ジョブの実行がすべて完了したらプログラムの更新を行い、その後、改善対象ジョブを実行する、といった制御を行う。
【０１２３】
図１６は、上記の制御を行う場合におけるキュー７０の変化を示している。図１６のStep１に示すように、キュー７０の先頭に改善対象ジョブであるＦＡＸ同報送信ジョブがあり、その後ろに、無関連ジョブであるＦＡＸ送信ジョブがあるものとする。このとき、管理サーバ４０に更新プログラムがアップロードされるなど、プログラムの更新要求が発生すると、Step２に示すように、改善対象ジョブがすべての無関連ジョブの後ろになるようにキュー７０の中のジョブの順序を入れ替える。
【０１２４】
その後、現在実行中のジョブの実行が終了したら、Step３に示すように、キュー７０にあるすべての無関連ジョブ（ＦＡＸ送信ジョブ）を旧プログラムのまま続けて実行する。この間に新たなジョブがキュー７０に投入された場合には、そのジョブを含めて、再度、入れ替え処理を行う。たとえば、新たにＦＡＸ送信ジョブが投入されたら、このジョブが既にキュー７０にあったＦＡＸ同報送信ジョブよりも前になるように順序の入れ替えが行われる。
【０１２５】
すべての無関連ジョブの実行が終了して、次に実行すべきジョブ（キュー７０の先頭にあるジョブ）が改善対象ジョブであるＦＡＸ同報送信ジョブになったら（改善対象ジョブの後ろに無関連ジョブがない状態になったら）、Step４に示すように、次ジョブの実行を禁止して、旧プログラムを更新プログラムにアップデートする更新処理を行う。更新処理が終了したら、Step５に示すように、更新プログラムでＦＡＸ同報送信ジョブを実行する。
【０１２６】
このように、改善対象ジョブがすべての無関連ジョブの後ろになるようにキュー７０内でジョブの順序を入れ替えるので、当初、キュー７０の中で改善対象ジョブが無関連ジョブの前にあっても、無関連ジョブをすべて実行してから更新プログラムにアップデートすることができる。
【０１２７】
これにより、当初のキュー７０におけるジョブの並び順に係らず、無関連ジョブを、更新プログラムにアップデートするための処理時間を待つことなく、早期に効率的に実行することができる。また、すべての無関連ジョブの実行が終了した後、改善対象ジョブの実行前に、更新プログラムにアップデートするので、改善対象ジョブを不具合の発生するリスクなく品質が改善された状態で実行することができる。
【０１２８】
上記の動作では、改善対象ジョブは、無関連ジョブが次々に投入されると、それらが先に実行されるので、なかなか実行されない状態になり得る。そこで、順序を入れ替えて先に実行させるジョブの数に制限を設けたり、先に実行させるジョブの実行時間に制限を設けたりするとよい。制限を超えたら、それ以上ジョブの順序を入れ替えないようにしてもよい。なお、プログラムの更新要求があった場合に、ジョブの順序の入れ替えを行わずに、現在実行中のジョブの実行が完了したら直ちにプログラムの更新を行うようにしてもよい。
【０１２９】
＜第２の実施の形態＞
第２の実施の形態では、管理サーバ４０が転送の要否を判定したり転送を指示したりする。
【０１３０】
管理サーバ４０は、管理テーブル６０、更新管理テーブル６５により、各複合機１０のプログラムのバージョンや改善内容を認識する。また、ネットワーク２を通じて接続されている各複合機１０から、それぞれの複合機１０のキュー７０で待機しているジョブの情報を取得する。そして、管理サーバ４０は、旧プログラムで動作する一の複合機１０（ＭＦＰ１とする）のキュー７０の中に、それよりも新しいバージョンの更新プログラムで動作する複合機１０で実行した場合にジョブ処理の品質が改善される改善対象ジョブがあるか否かを判定して検出する（第１ジョブ検出部）。
【０１３１】
旧プログラムで動作するＭＦＰ１のキュー７０の中に、改善対象ジョブが存在する場合は、そのジョブを、同じネットワーク２上にあって更新プログラムで動作する他の複合機１０（ＭＦＰ２とする）に転送し、そのジョブを実行するように指示する。
【０１３２】
なお、管理サーバ４０は、ＭＦＰ１がジョブの実行中であるために旧プログラムを更新プログラムに更新できない状態にあるときにのみ、ＭＦＰ１のキュー７０で待機しているジョブについて、前述の第１ジョブ検出部による判定・検出を行うようにしてもよい。
【０１３３】
また、管理サーバ４０は、更新プログラムで動作する複合機１０（ＭＦＰ２とする）で実行予定のジョブが、旧プログラムで実行してもジョブ処理の品質が変わらないジョブ（無関連ジョブ）か否かを判定して検出する（第２ジョブ検出部）。そして、ＭＦＰ２で実行予定のジョブの中に、無関連ジョブがある場合は、そのジョブを、同じネットワーク２上にあって旧プログラムで動作する他の複合機１０（ＭＦＰ１とする）に転送し、そのジョブを実行するように指示する。
【０１３４】
管理サーバ４０は、第２ジョブ検出部による判定・検出およびそれに伴うジョブの転送を、他の複合機１０から改善対象ジョブの転送を受けた場合にのみ行うようにしてもよい。
【０１３５】
なお、本発明はサーバ(情報処理装置)を上記管理サーバ４０として機能させるためのプログラムとされてもよい。
【０１３６】
図１７は、管理サーバ４０がジョブの転送に関して行う処理の流れを示している。管理サーバ４０は、管理対象としている複数の複合機１０相互間でプログラムのバージョンが異なるか否かを、更新管理テーブル６５を参照して確認する（ステップＳ３０１）。管理対象としている複数の複合機１０のプログラムがすべて同じバージョンならば（ステップＳ３０１；Ｎｏ）、本処理を終了する。
【０１３７】
管理対象としている複数の複合機１０間でプログラムのバージョンが相違する場合は（ステップＳ３０１；Ｙｅｓ）、旧バージョンのプログラムで動作する複合機１０のキュー７０の中にそれより新しいバージョンのプログラムで動作する複合機１０で実行した場合にジョブ処理の品質が改善されるジョブ（改善対象ジョブ）が存在するか否かを調べる（ステップＳ３０２）。
【０１３８】
ここでは、管理対象の複合機１０として、バージョン１のプログラムで動作する複合機１０と、バージョン２のプログラムで動作する複合機１０が混在するものとする。この場合、バージョン１のプログラムで動作する複合機１０（ＭＦＰ１とする）のキュー７０の中にバージョン２のプログラムで動作する複合機１０で実行した場合にジョブ処理の品質が改善されるジョブが存在するか否かを調べる。
【０１３９】
たとえば、管理サーバ４０は、管理テーブル６０を参照し、バージョン１とバージョン２の改善内容を比較することで、改善対象ジョブの種類（図５の場合はＦＡＸ同報送信）を特定する。そして、その種類のジョブがキュー７０の中に存在するか否かをＭＦＰ１に問い合わせ、ＭＦＰ１から回答を受けることで、改善対象ジョブの存在を確認する。なお、各複合機１０が図１２のステップＳ１０１〜Ｓ１０５を行い、改善対象ジョブがある場合に、その旨を管理サーバ４０に通知することで、管理サーバ４０が改善対象ジョブの存在を認識するようにしてもよい。管理サーバ４０が改善対象ジョブを認識する方法が上記のほか任意でよい。
【０１４０】
ＭＦＰ１のキュー７０に改善対象ジョブが存在しなければ(ステップＳ３０３；Ｎｏ)、本処理を終了する。ＭＦＰ１のキュー７０に改善対象ジョブが存在する場合は（ステップＳ３０３；Ｙｅｓ）、その改善対象ジョブをバージョン２のプログラムで動作する複合機１０に転送して実行させる第１ジョブ転送処理を行う（ステップＳ３０４）。
【０１４１】
図１８は、第１ジョブ転送処理の詳細を示している。まず、改善対象ジョブの転送先に成り得る、バージョン２のプログラムで正常に動作する複合機１０が複数あるか否かを判定する(ステップＳ３２０)。１台ならば（ステップＳ３２０；Ｎｏ）、その複合機１０を改善対象ジョブの転送先（ＭＦＰ２とする）に決定する。そして、ＭＦＰ２に改善対象ジョブを転送して実行させた場合に該改善対象ジョブの実行が完了する時刻（第１処理完了予定時刻）を推定し（ステップＳ３２３）、ステップＳ３２４へ移行する。
【０１４２】
処理完了予定時刻は、転送先の処理能力、転送先での待ちジョブの数や処理量等の情報を転送先から取得して管理サーバ４０が推定する。あるいは、改善対象ジョブの情報を転送先に通知し、転送先に処理完了予定時刻を算出させ、その算出された処理完了予定時刻を転送先から取得することで推定してもよい。
【０１４３】
転送可能な転送先が複数の場合は（ステップＳ３２０；Ｙｅｓ）、それぞれの転送先に改善対象ジョブを転送した場合の処理完了予定時刻を、前述のようにして、推定する（ステップＳ３２１）。そして、推定した処理完了予定時刻が最も早い複合機１０を改善対象ジョブの転送先（ＭＦＰ２とする）に選択して（ステップＳ３２２）、ステップＳ３２４へ移行する。
【０１４４】
ステップＳ３２４では、ＭＦＰ１でプログラムをバージョン２に更新してから改善対象ジョブを実行した場合の処理完了予定時刻を推定する。そして、ＭＦＰ２に転送した場合の処理完了予定時刻とＭＦＰ１でプログラムの更新後に実行した場合の処理完了予定時刻を比較する（ステップＳ３２５）。
【０１４５】
ここで、ＭＦＰ２転送するか、転送せずにＭＦＰ１で実行するかの選択をユーザから受ける設定が成されている場合は、ステップＳ３２５での比較結果を該当の改善対象ジョブを投入したユーザ（ユーザ端末等）に通知し、改善対象ジョブをＭＦＰ１で実行するかＭＦＰ２に転送するかの選択をユーザから受ける（ステップＳ３２６）。ＭＦＰ１で実行する旨の選択をユーザから受けた場合は（ステップＳ３２７；Ｎｏ）、本処理を終了する(リターン)。この場合、改善対象ジョブは、転送されずに、ＭＦＰ１でプログラム更新後に実行される。たとえば、図１６に示すように順序を入れ替えて、あるいは、入れ替えを行わずに、プログラムの更新を行ってから実行される。
【０１４６】
転送する旨の選択をユーザから受けた場合は（ステップＳ３２７；Ｙｅｓ）、ＭＦＰ２に改善対象ジョブを転送して実行させる（ステップＳ３２８）。具体的には、ＭＦＰ１に改善対象ジョブをＭＦＰ２に転送するように指示し、ＭＦＰ２には、ＭＦＰ１から転送されてくる改善対象ジョブをキューに登録して実行するように指示する。
【０１４７】
ユーザから上記の選択を受ける設定がオフの場合、すなわち、自動選択が設定されている場合は、ＭＦＰ２で実行した場合の処理完了予定時刻とＭＦＰ１で実行した場合の処理完了予定時刻を比較し、前者が早ければ（ステップＳ３２９；Ｙｅｓ）、ステップＳ３２８に移行し、改善対象ジョブをＭＦＰ２に転送させる。
【０１４８】
ＭＦＰ２での処理完了予定時刻がＭＦＰ１での処理完了予定時刻より早くなければ（ステップＳ３２９；Ｎｏ）、本処理を終了する（リターン。この場合、改善対象ジョブは、転送されずにＭＦＰ１でプログラムの更新後に実行される。
【０１４９】
図１７に戻って説明を続ける。上記第１ジョブ転送処理の後、管理サーバ４０は、ＭＦＰ２のキュー７０の中に、ＭＦＰ１で実行しても品質が維持されるジョブ（無関連ジョブ）があるか否かを判定する（ステップＳ３０５）。たとえば、ＭＦＰ２にそのキュー７０の中に無関連ジョブが存在するか否かを問い合わせ、その回答から無関連ジョブの存在を確認する。
【０１５０】
無関連ジョブがなければ(ステップＳ３０６；Ｎｏ)、本処理を終了する。無関連ジョブがあれば(ステップＳ３０６；Ｙｅｓ)、その無関連ジョブをＭＦＰ１に転送して実行させて（ステップＳ３０７）本処理を終了する。詳細には、ＭＦＰ２に無関連ジョブをＭＦＰ１に転送するように指示すると共に、ＭＦＰ１にＭＦＰ２から転送されて来るジョブをキュー７０に登録して実行するように指示する。
【０１５１】
上記第２の実施の形態においても、第１の実施の形態と同様の効果を得ることができる。
【０１５２】
なお、たとえば、図１９に示すように、ネットワークにバージョン１のプログラムで動作するＭＦＰ（Ａ）、バージョン２のプログラムで動作するＭＦＰ（Ｂ）、バージョン３のプログラムで動作するＭＦＰ（Ｃ）が存在する場合がる。このような場合、ジョブ処理の品質を改善するためにバージョン３のプログラムが必要なジョブをＭＦＰ（Ｃ）に他のＭＦＰから転送し、ジョブ処理の品質を改善するためにバージョン２のプログラムが必要なジョブをＭＦＰ（Ｂ）に他のＭＦＰから転送し、バージョン１のプログラムで実行してもジョブ処理の品質に問題がないジョブをＭＦＰ（Ａ）に他のＭＦＰから転送するようにすれば、各ジョブをジョブ処理の品質を改善して（あるいは問題なく）実行できると共に、各ＭＦＰにおけるジョブの処理負担が平均化される。
【０１５３】
バージョン３が必要なジョブａ、ｅ、ｈはＭＦＰ（Ｃ）で実行する必要がある。バージョン２が必要なジョブｃ、ｆ、ｇはＭＦＰ（Ｂ）とＭＦＰ（Ｃ）のどちらで実行してもよい。バージョン１で問題がないジョブｂ、ｄ、ｉはＭＦＰ（Ａ）、ＭＦＰ（Ｂ）、ＭＦＰ（Ｃ）のいずれで実行してもよい。この場合、品質が確保される実行先を確保しつつ、ジョブの処理負担が平均化されるようにジョブを転送すれば、図１９に示すようになる。
【０１５４】
たとえば、以下のような手順で転送先を決定すればよい。
【０１５５】
（１）それぞれのジョブを、そのジョブを実行した場合にジョブ処理の品質に問題がないバージョンのうち最も古いバージョンのＭＦＰに転送することを原則とする。
（２）上記（１）を行った場合にジョブ処理の負担が偏る場合は、ジョブ処理の負担が大きいＭＦＰにあるジョブのいくつかを、より新しいバージョンであってジョブ処理の負担の少ないＭＦＰに転送して、ジョブ処理の負担を平均化する。
【０１５６】
上記の転送先は管理サーバ４０が決定してもよいし、各ＭＦＰが互いにプログラムのバージョン情報やジョブ情報を交換することで自装置のキューの中のどのジョブをどのＭＦＰに転送すべきかを決定するようにしてもよい。
【０１５７】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１５８】
本発明の実施の形態では、印刷システム５における複合機１０をジョブ処理装置の例として説明したが、ジョブ処理装置はこれに限らない。複合機１０からＣＰＵ１１と、ＲＯＭ１２と、不揮発メモリ１４と、ネットワーク通信部２０と、画像処理部１６を抜き出して構成されるジョブ処理装置であってもよい。また、本発明は、複合機１０を実施の形態のように動作させるプログラムであってもよい。
【０１５９】
旧プログラムに対する更新プログラムは最新バージョンに限定されない。旧プログラムよりバージョンの新しいプログラムであればよい。
【０１６０】
他の複合機１０へのジョブの転送が行われるのは、プログラムを更新する要求があるが実行中のジョブがあるためにプログラムをすぐに更新できない場合に限定されるものではない。
【０１６１】
また、実施の形態では、独立した管理サーバ４０を例示したが、管理サーバ４０の機能をいずれかの複合機１０が果たすようにされてもよい。
【符号の説明】
【０１６２】
２…ネットワーク
５…印刷システム
１０、１０Ａ、１０Ｂ、１０Ｃ…複合機（ＭＦＰ）
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…不揮発メモリ
１５…ハードディスク装置
１６…画像処理部
１７…画像読取部
１８…プリンタ部
１９…ファクシミリ通信部
２０…ネットワーク通信部
２１…認証部
２２…近距離無線通信部
２３…操作パネル
２４…表示部
２５…操作部
３１…記憶部
３２…更新部
３３…ジョブ処理部
３４…他装置検出部
３５…ジョブ検出部
３６…推定部
３７…比較部
３８…選択受付部
３９…転送部
４０…管理サーバ
４１…ＣＰＵ
４２…ＲＯＭ
４３…ＲＡＭ
４４…不揮発メモリ
４５…ハードディスク装置
４６…ネットワーク通信部
４７…認証部
５１…表示部
５２…操作部
６０…管理テーブル
６５…更新管理テーブル
７０、７０Ａ、７０Ｂ…キュー
【図１】
0006264575.tif 000002
【図２】
0006264575.tif 000003
【図３】
0006264575.tif 000004
【図４】
0006264575.tif 000005
【図５】
0006264575.tif 000006
【図６】
0006264575.tif 000007
【図７】
0006264575.tif 000008
【図８】
0006264575.tif 000009
【図９】
0006264575.tif 000010
【図１０】
0006264575.tif 000011
【図１１】
0006264575.tif 000012
【図１２】
0006264575.tif 000013
【図１３】
0006264575.tif 000014
【図１４】
0006264575.tif 000015
【図１５】
0006264575.tif 000016
【図１６】
0006264575.tif 000017
【図１７】
0006264575.tif 000018
【図１８】
0006264575.tif 000019
【図１９】
0006264575.tif 000020