(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１に示すように、キュー７０の先頭に更新プログラムの改修内容に関連するＦＡＸ同報送信ジョブがあり、その後ろに、更新プログラムの改修内容に関連しないＦＡＸ送信ジョブがあるときに、管理サーバ４０に更新プログラムがアップロードされる。この場合、Step２に示すように、更新プログラムの改修内容に関連するジョブが更新プログラムの改修内容に関連しないすべてのジョブの後ろになるようにキュー７０内でジョブの順序を入れ替える入れ替え処理を行う。
【００７０】
現在実行中のジョブの実行が終了したら、Step３に示すように、キュー７０にあるＦＡＸ送信ジョブを旧プログラムのまま続けて実行する。この間に新たなジョブがキュー７０に投入された場合には、そのジョブを含めて、再度、入れ替え処理を行う。たとえば、新たなＦＡＸ送信ジョブが投入されたら、このジョブが既にキュー７０にあったＦＡＸ同報送信ジョブよりも前になるようにジョブの順序の入れ替えが行われる。
【００７１】
更新プログラムの改修内容に関連しないすべてのジョブの実行が終了して、次に実行すべきジョブ（キュー７０の先頭にあるジョブ）が更新プログラムの改修内容に関連するＦＡＸ同報送信ジョブになったら（更新プログラムの改修内容に関連するジョブの後ろに更新プログラムの改修内容に関連しないジョブがない状態になったら）、Step４に示すように、次ジョブの実行を禁止して、旧プログラムを更新プログラムにアップデートする更新処理を行う。更新処理が終了したら、Step５に示すように、更新プログラムでＦＡＸ同報送信ジョブを実行する。なお、Step３〜Step５は、図６のStep２〜Step４と同一である。
【００７２】
このように、更新プログラムの改修内容に関連するジョブが更新プログラムの改修内容に関連しないすべてのジョブの後ろになるようにキュー７０内でジョブの順序を入れ替えるので、当初、キュー７０の中で更新プログラムの改修内容に関連するジョブが更新プログラムの改修内容に関連しないジョブの前にあっても、更新プログラムにアップデートする前に、更新プログラムの改修内容に関連しないジョブ（旧プログラムで実行しても不具合の発生するリスクのないジョブ、この例ではＦＡＸ送信ジョブ）をすべて実行してから、更新プログラムにアップデートすることができる。
【００７３】
これにより、当初のキュー７０におけるジョブの並び順に係らず、更新プログラムの改修内容に関連しないジョブを、更新プログラムにアップデートするための処理時間を待つことなく早期に効率的に実行することができる。また、更新プログラムの改修内容に関連しないすべてのジョブの実行が終了した後、更新プログラムの改修内容に関連するジョブ（この例では、ＦＡＸ同報送信ジョブ）の実行前に、更新プログラムにアップデートするので、更新プログラムの改修内容に関連するジョブを不具合の発生するリスクなく実行することができる。
【００７４】
入れ替えありモードでは、更新プログラムの改修内容に関連するジョブは、改修内容に関連しないジョブが次々に投入されると、それらが先に実行されるので、なかなか実行されない状態になり得る。そこで、順序を入れ替えて先に実行させるジョブの数に制限を設けたり、先に実行させるジョブの実行時間に制限を設けたりする。制限を超えたら、それ以上ジョブの順序を入れ替えないようにする。そして、更新プログラムの改修内容に関連するジョブがキュー７０の先頭になったら、これを実行する前に更新プログラムにアップデートし、その後、キュー７０に入っている順序のまま、更新プログラムでジョブを順次実行するようにすればよい。
【００７５】
次に、更新プログラムに更新するタイミングに関する選択をユーザから受け付ける場合について説明する。
【００７６】
複合機１０は、キュー７０にジョブが存在するときに管理サーバ４０に更新プログラムがアップロードされた場合であって、更新プログラムの改修内容に関連するジョブがキュー７０にある場合に、予め定めた複数の選択肢の中から、更新プログラムへの更新タイミングに関する選択をユーザから受け付け、その選択に従って更新処理を行う。
【００７７】
図８は、更新タイミング選択画面８０の一例を示している。メッセージ欄８５には、この画面の説明が表示される。第１選択ボタン８１が選択されると、この複合機１０のキュー７０にあるすべてのジョブが、この複合機１０で旧プログラム（図中は旧ＲＯＭ）のままで処理される。処理完了後、待機状態になってから更新プログラムに更新される。この場合、キュー７０にある、更新プログラムの改修内容に関連するジョブも旧プログラムで処理されるので、不具合の発生する可能性がある。ただし、更新プログラムに更新するための待ち時間は発生しない。
【００７８】
第２選択ボタン８２が選択されると、この複合機１０のプログラムを更新プログラムに更新してから、キュー７０にあるジョブがこの複合機１０で処理される。この場合、ジョブの実行において不具合が発生するリスクはないが、更新プログラムの改修内容に関連しないジョブについても、更新プログラムに更新するための待ち時間が発生する。
【００７９】
第３選択ボタン８３が選択されると、更新プログラムの改修内容に関連しないジョブを実行してから更新プログラムに更新される。この場合、ジョブの実行において不具合が発生するリスクはない。更新プログラムの改修内容に関連しないジョブについては更新プログラムに更新するための待ち時間が発生しない利点がある。ただし、更新プログラムの改修内容に関連するジョブについては、当初、キュー７０の中で更新プログラムの改修内容に関連しないジョブより手前にあっても、更新プログラムの改修内容に関連しないジョブが先に処理されるので、その分、実行開始までの待ち時間が長くなる。
【００８０】
更新タイミング選択画面８０は、複合機１０の操作パネル３０の表示部３１に表示されて選択操作を受けるほか、たとえば、キュー７０の中にある、更新プログラムの改修内容に関連するジョブを投入したユーザの端末（ジョブの投入に使用されたＰＣ端末、あるいはそのユーザのスマートフォンなどでもよい）に表示されて選択操作を受ける。
【００８１】
選択肢は、図８に示すものに限定されず、たとえば、更新プログラムの改修内容に関連するジョブの実行前に更新プログラムへの更新を行うか否かに関する選択肢のみでもよい。この場合において、更新プログラムの改修内容に関連するジョブの実行前に更新プログラムに更新する選択を受けると、前述の入れ替えありモードで動作する。
【００８２】
次に、更新プログラムの改修内容に関連する不具合のレベルに応じて更新プログラムへの更新タイミング等を制御する場合について説明する。
【００８３】
不具合には、毎回発生するものもあれば、１００回に１回、１万回に１回程度の発生確率でしか発生しないものがある。また不具合には、その不具合による悪影響が軽微なものもあれば、深刻なものもある。
【００８４】
そこで、更新プログラムの管理者等が、不具合の再現率と不具合の重要度のうちの少なくとも１つに基づいて、その不具合のレベルを設定して管理テーブル６０に登録しておく。複合機１０は、更新プログラムで改修された不具合のレベルを管理テーブル６０から取得し、その取得した不具合のレベルに応じて、改修内容に関連するジョブの実行前に更新プログラムに更新すべきか否かを判定する。
【００８５】
具体的には、更新プログラムで改修された不具合のレベルが予め定めた閾値以上ならば、自動的に、入れ替えありモードあるいは入れ替えなしモードで動作する。更新プログラムで改修された不具合のレベルが予め定めた閾値未満ならば、キュー７０にあるすべてのジョブを旧プログラムのままで実行し、待機状態になったときに、更新プログラムに更新する、あるいは、図８に示す更新タイミング選択画面８０を表示し、ユーザの選択に従って動作する。
【００８６】
次に、更新プログラムの改修内容に関連するジョブの種類に応じて更新プログラムへの更新タイミング等を制御する場合について説明する。
【００８７】
データを外部へ送信する送信ジョブ（ＦＡＸ送信、スキャナで読み取ったデータを電子メールで送信するScan to E-mailなど）、スキャナで読み取ったデータをボックスに保存するジョブ（メモリ保存ジョブ、Scan to BOX）、記憶されているデータを消去するメモリ消去ジョブは、不具合が発生した場合、その不具合の影響が他のジョブに比べて大きい。よって、更新プログラムの改修内容が送信ジョブやメモリ消去ジョブ、メモリ保存ジョブに関連するものであり、キュー７０にその改修内容に関連するジョブが存在する場合は、自動的に、入れ替えありモードあるいは入れ替えなしモードで動作する。
【００８８】
更新プログラムの改修内容が送信ジョブやメモリ消去ジョブ、メモリ保存ジョブに関連しない場合であって、キュー７０にその改修内容に関連するジョブが存在する場合は、キュー７０にあるすべてのジョブを旧プログラムのままで実行し、待機状態になったときに、更新プログラムに更新する、あるいは、図８に示す更新タイミング選択画面８０を表示し、ユーザの選択に従って動作する。
【００８９】
図９、図１０は、プログラムの更新に関して、入れ替えありモードで動作する複合機１０が行う処理（更新制御プログラムによる処理）の流れを示している。なお、この処理とは別に、キュー７０の先頭からジョブを取り出して、順次、ジョブを実行する処理が行われているものとする。
【００９０】
キュー７０にジョブが存在するときに（ステップＳ１０１;Ｙｅｓ）、管理サーバ４０に更新プログラムがアップされたら（ステップＳ１０２;Ｙｅｓ）、更新プログラムに関する情報（改修内容等を示す情報）を管理サーバ４０から取得する（ステップＳ１０３）。次に、キュー７０で待機している各ジョブの情報（ジョブの種類等を示す情報）を取得する（ステップＳ１０４）。そして、キュー７０で待機している各ジョブが更新プログラムの改修内容に関連する（一致する）ジョブか否かを判定する（ステップＳ１０５）。
【００９１】
キュー７０の中に、更新プログラムの改修内容に関連するジョブがない場合は（ステップＳ１０６;Ｎｏ）、本処理を終了する。この場合、キュー７０にあるジョブが順次処理され、すべてのジョブの実行が完了して待機状態になった後に、更新プログラムへの更新処理が行われる。
【００９２】
キュー７０の中に、更新プログラムの改修内容に関連するジョブがある場合は（ステップＳ１０６;Ｙｅｓ）、改修内容に関連するジョブが改修内容に関連しないすべてのジョブの後ろになるように、キュー７０内でのジョブの並び順を入れ替える（ステップＳ１０７）。
【００９３】
キュー７０内が更新プログラムの改修内容に関連するジョブのみになった否かを判定する（ステップＳ１０８）。キュー７０内に更新プログラムの改修内容に関連しないジョブがあれば（ステップＳ１０８;Ｎｏ）、ステップＳ１０４に戻って処理を継続する。
【００９４】
キュー７０内が更新プログラムの改修内容に関連するジョブのみであれば（ステップＳ１０８;Ｙｅｓ）、ジョブの実行を停止させ（ステップＳ１０９）、キュー７０で待機しているすべてのジョブのジョブデータを不揮発メモリ１４（あるいはハードディスク装置１５）に退避する（ステップＳ１１０）。
【００９５】
そして、管理サーバ４０に対して更新プログラムへの更新を要求し（ステップＳ１１１）、自装置を、プログラムを更新するための更新処理モードに切り替える（ステップＳ１１２）。
【００９６】
その後は、管理サーバ４０から更新要求を承諾した旨の応答（ＡＣＫ）が送信されて来るのを待機し（ステップＳ１１３;Ｎｏ）、更新要求を承諾した旨の応答を受けたら（ステップＳ１１３;Ｙｅｓ）、管理サーバ４０から更新プログラムを受信する（ステップＳ１１４）。
【００９７】
次に、旧プログラムを受信した更新プログラムで上書きする（ステップＳ１１５）。更新プログラムの書き込みが完了したら（ステップＳ１１６;Ｙｅｓ）、自装置を再起動する（ステップＳ１１７）。
【００９８】
再起動により、自装置が立ち上がったら、ステップＳ１１４で不揮発メモリ１４に退避したジョブデータをＲＡＭ１３に戻し（ステップＳ１１８）、さらにそれらのジョブデータに対応するジョブをキュー７０に登録する（ステップＳ１１９）。その後、ステップＳ１０９で行ったジョブの実行停止を解除する（ステップＳ１２０）。これにより、キュー７０の先頭から順にジョブが実行される。
【００９９】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１００】
本発明の実施の形態では、印刷システム５における複合機１０をジョブ処理装置の例として説明したが、ジョブ処理装置はこれに限らない。複合機１０からＣＰＵ１１と、ＲＯＭ１２と、不揮発メモリ１４と、ネットワーク通信部２０と、画像処理部１６を抜き出して構成されるジョブ処理装置であってもよい。また、本発明は、複合機を実施の形態のように動作させるプログラムであってもよい。
【符号の説明】
【０１０１】
２…ネットワーク
５…印刷システム
１０、１０Ａ、１０Ｂ…複合機
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…不揮発メモリ
１５…ハードディスク装置
１６…画像処理部
１７…画像読取部
１８…プリンタ部
１９…ファクシミリ通信部
２０…ネットワーク通信部
２１…認証部
２２…近距離無線通信部
３０…操作パネル
３１…表示部
３２…操作部
４０…サーバ
４１…ＣＰＵ
４２…ＲＯＭ
４３…ＲＡＭ
４４…不揮発メモリ
４５…ハードディスク装置
４６…ネットワーク通信部
４７…認証部
５１…表示部
５２…操作部
６０…管理テーブル
６５…一覧
７０、７０Ａ、７０Ｂ…キュー
８０…更新タイミング選択画面
８１…第１選択ボタン
８２…第２選択ボタン
８３…第３選択ボタン
８５…メッセージ欄
【図１】
0006447824.tif 000002
【図２】
0006447824.tif 000003
【図３】
0006447824.tif 000004
【図４】
0006447824.tif 000005
【図５】
0006447824.tif 000006
【図６】
0006447824.tif 000007
【図７】
0006447824.tif 000008
【図８】
0006447824.tif 000009
【図９】
0006447824.tif 000010
【図１０】
0006447824.tif 000011