(57)【特許請求の範囲】
【請求項１】
互いに関連する複数の処理の情報を記憶する記憶手段と、
処理を実行する処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する処理実行手段と、
前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段と、
ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段と、
取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する再開手段と、
を有する情報処理装置。
【請求項２】
前記複数の処理の中の実行中の処理が停止した場合、かつ、前記複数の処理の実行を指示したユーザがログアウトした場合、前記処理実行手段は、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行し、前記退避処理手段は、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記退避情報として前記格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記停止した処理に依存する他の処理は、前記停止した処理の結果を利用する処理である、
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記処理は画像形成に関する処理である、
ことを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記処理実行手段は、前記停止した処理の結果を必要とする段階まで、前記停止した処理に依存する他の処理を続行し、
前記再開手段は、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を途中から再開する、
こと特徴とする請求項１から請求項４のいずれか一項に記載の情報処理装置。
【請求項６】
前記停止した処理の優先順位が基準順位未満の場合、前記処理実行手段は、前記停止した処理の結果を必要とする段階まで、前記停止した処理に依存する他の処理を続行し、前記再開手段は、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を途中から再開し、
前記停止した処理の優先順位が基準順位以上の場合、前記退避処理手段は、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記退避情報として前記格納手段に退避させる、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段は、前記退避情報に含まれる第１の処理の情報を前記格納手段から取得し、前記第１の処理が完了した後、前記退避情報に含まれる第２の処理の情報であって前記第１の処理に依存する前記第２の処理の情報を前記格納手段から取得する、
ことを特徴とする請求項１から請求項６のいずれか一項に記載の情報処理装置。
【請求項８】
前記取得手段は、前記第１の処理の停止率が基準値以上の場合、前記第１の処理が完了した後に、前記第２の処理の情報を前記格納手段から取得する、
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
第１の情報処理装置と第２の情報処理装置とを含み、
前記第１の情報処理装置は、
互いに関連する複数の処理の情報を記憶する記憶手段と、
処理を実行する第１処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する第１処理実行手段と、
前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段と、
を有し、
前記第２の情報処理装置は、
ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段と、
取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する第２処理実行手段と、
を有する、
情報処理システム。
【請求項１０】
互いに関連する複数の処理の情報を記憶する記憶手段を有するコンピュータを、
処理を実行する処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する処理実行手段、
前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段、
ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段、
取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する再開手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及びプログラムに関する。
【背景技術】
【０００２】
クラスタ化された複数の情報処理装置を用いて情報処理が実行される場合がある。一般的に、負荷分散装置によってログイン対象の情報処理装置が決定され、ユーザはその情報処理装置にログインし、その情報処理装置によって処理が実行される。
【０００３】
特許文献１には、セッションのタイムアウトをトリガーとして、セッションの再現に必要な情報をサーバのメモリからデータベースサーバに退避させるシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０３６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ユーザがある情報処理装置にログインし、その情報処理装置において処理が実行されている間にユーザがその情報処理装置からログアウトし、そのログアウトの後に、何らかの理由によって処理が停止する場合がある。この場合、その処理を実行するための情報が情報処理装置に残ってしまい、クラスタ化によって実現される分散処理の効率が低下する。また、その処理を指示したユーザが再度ログインした場合、再ログイン先の情報処理装置が、以前にログインした情報処理装置と同一の装置であるとは限らない。負荷分散装置によって、別の情報処理装置がユーザに割り振られた場合、その別の情報処理装置には先の処理を実行するための情報が格納されていないため、その処理が再開されない。これに対処するために、負荷分散装置のセッション維持機能によってユーザ側と接続先の情報処理装置との対応関係を固定させた場合、処理が均一に分散されず、分散処理の効率が低下する。また、互いに関連する複数の処理の中の一部の処理が停止した場合に、全ての処理を停止させると、全処理の完了に要する時間が長くなる。
【０００６】
本発明の目的は、情報処理装置において実行中の処理が停止した場合に、別の処理が当該情報処理装置に割り当てられるようにするとともに、停止した処理が同一の情報処理装置に振り分けられるようにしなくても、停止した処理が再開されるようにすることにある。また、互いに関連する複数の処理の中の一部の処理が停止した場合に、その一部の処理に依存しない処理も停止させる場合と比較して、全処理の完了に要する時間を短くすることにある。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、互いに関連する複数の処理の情報を記憶する記憶手段と、処理を実行する処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する処理実行手段と、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段と、ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段と、取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する再開手段と、を有する情報処理装置である。
【０００８】
請求項２に係る発明は、前記複数の処理の中の実行中の処理が停止した場合、かつ、前記複数の処理の実行を指示したユーザがログアウトした場合、前記処理実行手段は、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行し、前記退避処理手段は、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記退避情報として前記格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する、ことを特徴とする請求項１に記載の情報処理装置である。
【０００９】
請求項３に係る発明は、前記停止した処理に依存する他の処理は、前記停止した処理の結果を利用する処理である、ことを特徴とする請求項１又は請求項２に記載の情報処理装置である。
【００１０】
請求項４に係る発明は、前記処理は画像形成に関する処理である、ことを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置である。
【００１１】
請求項５に係る発明は、前記処理実行手段は、前記停止した処理の結果を必要とする段階まで、前記停止した処理に依存する他の処理を続行し、前記再開手段は、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を途中から再開する、こと特徴とする請求項１から請求項４のいずれか一項に記載の情報処理装置である。
【００１２】
請求項６に係る発明は、前記停止した処理の優先順位が基準順位未満の場合、前記処理実行手段は、前記停止した処理の結果を必要とする段階まで、前記停止した処理に依存する他の処理を続行し、前記再開手段は、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を途中から再開し、前記停止した処理の優先順位が基準順位以上の場合、前記退避処理手段は、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記退避情報として前記格納手段に退避させる、ことを特徴とする請求項５に記載の情報処理装置である。
【００１３】
請求項７に係る発明は、前記取得手段は、前記退避情報に含まれる第１の処理の情報を前記格納手段から取得し、前記第１の処理が完了した後、前記退避情報に含まれる第２の処理の情報であって前記第１の処理に依存する前記第２の処理の情報を前記格納手段から取得する、ことを特徴とする請求項１から請求項６のいずれか一項に記載の情報処理装置である。
【００１４】
請求項８に係る発明は、前記取得手段は、前記第１の処理の停止率が基準値以上の場合、前記第１の処理が完了した後に、前記第２の処理の情報を前記格納手段から取得する、ことを特徴とする請求項７に記載の情報処理装置である。
【００１５】
請求項９に係る発明は、第１の情報処理装置と第２の情報処理装置とを含み、前記第１の情報処理装置は、互いに関連する複数の処理の情報を記憶する記憶手段と、処理を実行する第１処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する第１処理実行手段と、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段と、を有し、前記第２の情報処理装置は、ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段と、取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する第２処理実行手段と、を有する、情報処理システムである。
【００１６】
請求項１０に係る発明は、互いに関連する複数の処理の情報を記憶する記憶手段を有するコンピュータを、処理を実行する処理実行手段であって、前記複数の処理の中の実行中の処理が停止した場合、前記複数の処理の中で、前記停止した処理に依存しない他の処理を続行する処理実行手段、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、処理の実行を指示したユーザの退避情報として外部の格納手段に退避させ、前記停止した処理の情報と、前記停止した処理に依存する他の処理の情報とを、前記記憶手段から削除する退避処理手段、ログイン要求を行ったユーザに対応する前記退避情報を前記格納手段から取得する取得手段、取得された前記退避情報に基づいて、前記停止した処理を途中から再開するとともに、前記停止した処理に依存する他の処理を実行する再開手段、として機能させるプログラムである。
【発明の効果】
【００１７】
請求項１，３，９，１０に係る発明によると、情報処理装置において実行中の処理が停止した場合に、別の処理を当該情報処理装置に割り当てることができるとともに、停止した処理が同一の情報処理装置に振り分けられるようにしなくても、停止した処理を再開することができる。また、互いに関連する複数の処理の中の一部の処理が停止した場合に、その一部の処理に依存しない処理も停止させる場合と比較して、全処理の完了に要する時間が短くなる。
【００１８】
請求項２に係る発明によると、ユーザがログアウトしていない場合に退避情報を退避させる場合と比較して、退避情報の無駄な退避処理と取得処理が解消され得る。
【００１９】
請求項４に係る発明によると、情報処理装置において実行中の画像形成に関する処理が停止した場合に、別の画像形成に関する処理を当該情報処理装置に割り当てることができるとともに、停止した処理を同一の情報処理装置に振り分けられるようにしなくても、停止した処理を再開することができる。また、互いに関連する複数の画像形成に関する処理の中の一部の処理が停止した場合に、その一部の処理に依存しない処理も停止させる場合と比較して、全処理の完了に要する時間が短くなる。
【００２０】
請求項５に係る発明によると、停止した処理に依存する他の処理を全く実行しない場合と比較して、全処理の完了に要する時間が短くなる。
【００２１】
請求項６に係る発明によると、優先順位が相対的に高い処理が停止した場合、処理を続行してから退避情報を退避させる場合と比較して、優先順位が相対的に高い処理の再開までに要する時間が短くなり得る。
【００２２】
請求項７，８に係る発明によると、退避情報の無駄な取得処理が解消され得る。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係る画像形成システムを示すブロック図である。
【図２】本実施形態に係る画像形成装置を示すブロック図である。
【図３】端末装置を示すブロック図である。
【図４】親子ジョブの概念図である。
【図５】画像形成システムによる処理の一例を示すシーケンス図である。
【図６】ジョブ退避時の処理の一例を示すフローチャートである。
【図７】ジョブ再開時の処理の一例を示すフローチャートである。
【図８】親子ジョブの一例を示す図である。
【図９】親子ジョブの一例を示す図である。
【図１０】親子ジョブの一例を示す図である。
【図１１】変形例１に係る処理を示すフローチャートである。
【図１２】変形例２に係る処理を示すフローチャートである。
【図１３】変形例３に係る処理を示すフローチャートである。
【図１４】変形例４に係る処理を示すフローチャートである。
【図１５】変形例５に係る処理を示すフローチャートである。
【図１６】変形例６に係る処理を示すフローチャートである。
【発明を実施するための形態】
【００２４】
図１には、本発明の実施形態に係る情報処理システムとしての画像形成システムの一例が示されている。画像形成システムは、例えば、情報処理装置としての画像形成装置（例えば画像形成装置１０Ａ，１０Ｂ，１０Ｃ）と、ＤＢサーバ（データベースサーバ）１２と、端末装置１４と、負荷分散装置１６と、を含む。これらの装置は、例えば、互いにネットワーク等の通信経路に接続されている。なお、図１に示す例では、３台の画像形成装置が画像形成システムに含まれているが、これは一例に過ぎず、４台以上の画像形成装置が画像形成システムに含まれていてもよい。また、複数の端末装置１４が画像形成システムに含まれていてもよい。以下の説明において、画像形成装置１０Ａ，１０Ｂ，１０Ｃを区別する必要が無い場合には、これらを「画像形成装置１０」と称することとする。
【００２５】
画像形成装置１０は、例えば画像処理機能を備えている。また、画像形成装置１０は、スキャン機能、プリント機能、コピー機能及びファクシミリ機能の中の少なくとも１つの機能を備えた装置であってもよい。また、画像形成装置１０は、他の装置との間でデータを送受信する機能を備えている。
【００２６】
画像形成装置１０Ａ，１０Ｂ，１０Ｃはクラスタ化されており、ユーザによって指示された処理が、画像形成装置１０Ａ，１０Ｂ，１０Ｃのいずれかの装置に割り振られて実行される。以下、画像形成装置１０にて実行される処理を「ジョブ」と称することとする。
【００２７】
ＤＢサーバ１２は、例えば、ハードディスク等の記憶装置、他の装置との間でデータを送受信する通信装置、及び、制御装置を備え、サーバ装置として機能する。ＤＢサーバ１２が格納手段として機能する。ＤＢサーバ１２には、例えば、ジョブを管理するためのジョブ管理テーブルのデータが記憶されており、そのジョブ管理テーブルによって、ジョブの種別や処理の状態等が管理される。
【００２８】
端末装置１４は、ＰＣ（パーソナルコンピュータ）、タブレットＰＣ、スマートフォン、携帯電話等の装置であり、他の装置との間でデータを送受信する機能を備えている。端末装置１４は、例えば、ジョブの実行時にユーザによって利用される装置である。
【００２９】
負荷分散装置１６は、他の装置との間のデータを送受信する機能、及び、端末装置１４にて指定されたジョブを画像形成装置１０Ａ，１０Ｂ，１０Ｃのいずれかの装置に割り振る機能を備えている。例えば、画像形成装置１０Ａ，１０Ｂ，１０Ｃのそれぞれの負荷の状態に応じて、ジョブが割り振られる。なお、負荷分散装置１６は仮想サーバとして機能してもよい。
【００３０】
本実施形態に係る画像形成システムでは、互いに関連する複数のジョブが実行される。以下、互いに関連する複数のジョブを「親子ジョブ」と称することとする。親子ジョブは、例えば、１つの親ジョブと１又は複数の子ジョブとを含む。親ジョブはジョブの全体を管理するためのジョブであり、子ジョブは画像形成装置１０にて実行される処理である。親子ジョブに含まれる子ジョブ群の処理が完了することにより、親子ジョブの全体の処理が完了する。例えば、親子ジョブには、当該親子ジョブを識別するための親子ジョブ識別情報（例えば親子ジョブＩＤ）が対応付けられており、親ジョブには、当該親ジョブを識別するための親ジョブ識別情報（例えば親ジョブＩＤ）が対応付けられており、子ジョブには、当該子ジョブを識別するための子ジョブ識別情報（例えば子ジョブＩＤ）が対応付けられている。また、親ジョブと子ジョブには、自身が属する親子ジョブの識別情報が対応付けられている。子ジョブに親ジョブの識別情報が対応付けられていてもよいし、親ジョブに子ジョブの識別情報が対応付けられていてもよい。このように、親ジョブ及び各子ジョブは、識別情報によって互いに関連付けられている。
【００３１】
以下、図２を参照して、画像形成装置１０の構成について詳しく説明する。図２には、画像形成装置１０の構成が示されている。
【００３２】
通信部１８は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を備えている。例えば、通信部１８によって、ジョブに関する情報やユーザの認証情報等が受信される。
【００３３】
記憶部２０はハードディスク等の記憶装置である。記憶部２０には、ジョブを実行するためのジョブ情報が記憶される。ジョブ情報には、設定情報として、ジョブのパラメータ、ジョブの実行によって生成された成果物データの格納先を示す情報、画像処理が適用されるデータを特定するための情報、ジョブの実行を指示したユーザを識別するためのユーザ識別情報（例えばユーザＩＤやユーザ名）、等が含まれる。また、記憶部２０には、ジョブの実行により生成された成果物データが記憶される。
【００３４】
ジョブ管理部２２は、ジョブをＤＢサーバ１２に登録する機能、ＤＢサーバ１２に記憶されるジョブ管理テーブルを作成する機能、及び、ジョブ管理テーブルを更新する機能を備えている。
【００３５】
ジョブ実行部２４は、ジョブを実行する機能を備えている。ジョブは、例えば、画像処理、スキャン処理、プリント処理、コピー処理、電子メール送受信処理、ファクシミリ送受信処理、等である。画像処理は、例えば、画像の差分を抽出する処理や文字認識処理等である。スキャン処理は、紙文書の画像を読み取ることにより文書データを生成する処理である。プリント処理は、文書を印刷する処理である。コピー処理は文書を複製する処理である。電子メール送受信処理は、文書データを電子メールにて送信又は受信する処理である。ファクシミリ送受信処理は、文書をファクシミリ送信又はファクシミリ受信する処理である。例えば、スキャン処理が実行されることにより文書データが生成され、その文書データが電子メールによって外部装置に送信されてもよい。別の例として、プリンタ処理が実行されることにより、画像形成装置１０に格納されている文書データが印刷されてもよい。
【００３６】
また、ジョブ実行部２４は、親子ジョブに含まれる実行中の子ジョブが停止した場合に、親子ジョブの中で、停止した子ジョブに依存しない他の子ジョブを続行する機能を備えている。停止した子ジョブに依存しない子ジョブは、停止した子ジョブの結果（出力）を利用しないジョブである。例えば、ジョブの実行中に介入事象が発生した場合、そのジョブは停止する。介入事象は、例えば、ユーザによる一時停止要求や、処理の途中で行われるプレビュー確認や、保存ファイル名の変更、認証処理、用紙切れ、トナー切れ、等である。
【００３７】
また、ジョブ実行部２４は、停止した子ジョブについて再開指示が与えられた場合、その停止した子ジョブのジョブ情報と、停止した子ジョブに依存する他の子ジョブのジョブ情報を、ＤＢサーバ１２から取得し、停止した子ジョブを途中から再開するとともに、停止した子ジョブに依存する他の子ジョブを実行する機能を備えている。停止した子ジョブに依存する子ジョブは、停止した子ジョブの結果（出力）を利用するジョブである。
【００３８】
退避処理部２６は、親子ジョブに含まれる実行中の子ジョブが停止した場合に、親子ジョブの実行を指示したユーザの退避情報をＤＢサーバ１２に退避させる機能を備えている。退避情報は、親ジョブのジョブ情報と、停止した子ジョブのジョブ情報と、停止した子ジョブの進捗状況を示す進捗情報と、停止した子ジョブに依存する他の子ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む。退避情報は、例えば、そのユーザを示すユーザ識別情報とその親子ジョブを示す親子ジョブ識別情報とに対応付けられてＤＢサーバ１２に記憶される。また、退避処理部２６は、停止したジョブのジョブ情報と、停止した子ジョブに依存する他の子ジョブのジョブ情報を、記憶部２０から削除する。上述したように、ジョブ実行部２４は、停止した子ジョブに依存しない他の子ジョブを続行する。退避処理部２６は、その子ジョブの実行により生成された成果物データをＤＢサーバ１２に送信する。その成果物データには、例えば親子ジョブ識別情報が対応付けられる。ＤＢサーバ１２においては、その親子ジョブ識別情報に従って、成果物データと退避情報とが対応付けられる。
【００３９】
制御部２８は、画像形成装置１０の各部の動作を制御する機能を備えている。また、制御部２８は、認証部３０と停止検出部３２と確認部３４とを含む。
【００４０】
認証部３０は認証機能を備えている。認証部３０は、例えば認証情報を利用して認証処理を行う。認証情報は、ユーザが画像形成システム（例えば各画像形成装置１０）にログインするための情報であり、認証処理は、そのログインの許可又は禁止を判定するための処理である。認証処理としては、例えば、パスワードやユーザＩＤ等の情報を認証情報として利用するパスワード認証処理、ＩＣカードに格納された情報（例えばＩＤやパスワード）を認証情報として利用するＩＣカード認証、ユーザの生体情報を認証情報として利用する生体認証処理、等が利用される。もちろん、これら以外の認証処理が行われてもよい。認証情報は例えば記憶部２０に記憶されている。認証情報は外部装置に記憶されていてもよい。例えば、画像形成システム（画像形成装置１０）へのログイン時に、端末装置１４から認証情報が送信されると、認証部３０は、記憶部２０又は外部装置に記憶されている認証情報と送信された認証情報とを用いて認証処理を行う。両認証情報が適合して認証が成功した場合（例えば両認証情報が一致した場合）、ログインやアクセスが許可される。認証が失敗した場合（例えば両認証情報が一致しない場合）、ログインやアクセスが禁止される。なお、認証処理は画像形成装置１０にて実行されずに、例えば認証サーバ等によって実行されてもよい。
【００４１】
停止検出部３２は、実行中のジョブの停止（介入事象の発生）を検出する機能を備えている。
【００４２】
確認部３４は、ジョブの停止中に、画像形成システムに対してログイン要求を行ったユーザに確認作業を実行させる機能を備えている。確認作業には、例えば、介入事象に対応した介入操作が含まれる。介入操作は、例えば、一時停止の解除、プレビューの確認、保存ファイル名の変更、認証情報の入力、等である。
【００４３】
以下、図３を参照して、端末装置１４の構成について詳しく説明する。図３には、端末装置１４の構成が示されている。通信部３６は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を備えている。記憶部３８はハードディスク等の記憶装置である。ＵＩ部４０はユーザインターフェースであり、表示部と操作部とを含む。表示部は、例えば液晶ディスプレイ等の表示装置である。操作部は、例えばタッチパネルやキーボード等の入力装置である。制御部４２は、端末装置１４の各部の動作を制御する。
【００４４】
以下、図４を参照して、親子ジョブについて説明する。親ジョブには、例えば複数の子ジョブが対応付けられている。親ジョブは、各子ジョブの中止、一時停止、再開、等を管理するジョブである。親子ジョブには、他の子ジョブに依存する子ジョブが含まれている場合がある。図４に示す例では、破線で結ばれた２つの子ジョブの中の一方の子ジョブが、他方の子ジョブに依存している。すなわち、当該他方の子ジョブの結果（出力）が当該一方の子ジョブによって利用される、という依存関係が成立している。
【００４５】
以下、図５を参照して、本実施形態に係る画像形成システムの概略動作について説明する。図５には、その処理を示すシーケンス図が示されている。一例として、ユーザＡによって親子ジョブの実行が指示されたものとする。
【００４６】
まず、ユーザＡは端末装置１４を利用して負荷分散装置１６（仮想サーバ）にアクセスする（Ｓ０１）。例えば、Ｗｅｂブラウザを利用することによりアクセスが実現される。負荷分散装置１６は、例えば、画像形成装置１０Ａ，１０Ｂ，１０Ｃの負荷に応じて、ユーザＡのアクセス先を、画像形成装置１０Ａ，１０Ｂ，１０Ｃのいずれかの装置に振り分ける。例えば、アクセス先が画像形成装置１０Ａに振り分けられたものとする。この場合、ユーザＡは端末装置１４を利用して認証情報を入力し、画像形成装置１０Ａにログインする（Ｓ０２）。次に、ユーザＡは端末装置１４を利用して、親子ジョブを実行するための設定情報を入力し、親子ジョブの実行を指示する（Ｓ０３）。画像形成装置１０Ａにおいては、ジョブ管理部２２が、その親子ジョブを、ＤＢサーバ１２に記憶されているジョブ管理テーブルに登録する（Ｓ０４）。次に、画像形成装置１０Ａにおいては、ジョブ実行部２４が、ユーザＡによって指示された親子ジョブを実行する（Ｓ０５）。これにより、成果物データが生成される。
【００４７】
そのジョブの実行中に、ユーザＡが画像形成装置１０Ａからログアウトしたものとする（Ｓ０６）。ログアウトは、端末装置１４と画像形成装置１０との間のセッションが切れた状態である。例えば、ユーザが操作中のＷｅｂブラウザを閉じた場合、メンテナンスや障害によって画像形成装置１０が停止した場合、ユーザが手動で認証を解除した場合、一定時間経過後にセッションが自動的に切れた場合、等に、ログアウトが発生する。なお、ユーザがログインしたときに１つのセッションが生成され、そのセッションは、ログアウトするまで存続し、ログアウト時に破棄されるものとする。
【００４８】
ログアウトが発生した後、介入事象が発生して子ジョブが停止したものとする（Ｓ０７）。この場合、画像形成装置１０Ａにおいては、退避処理部２６が、親ジョブのジョブ情報と、停止中の子ジョブのジョブ情報と、停止中の子ジョブに依存する他の子ジョブの情報と、子ジョブの実行により既に生成された成果物データと、を抽出し（Ｓ０８）、これらを含む退避情報を、ユーザＡの退避情報としてＤＢサーバ１２に退避させる（Ｓ０９）。退避情報は画像形成装置１０ＡからＤＢサーバ１２に送信され、ユーザ識別情報と親子ジョブ情報とに対応付けられてＤＢサーバ１２に記憶される。また、退避処理部２６は、停止したジョブのジョブ情報と、停止した子ジョブに依存する他の子ジョブのジョブ情報と、成果物データを記憶部２０から削除する（Ｓ１０）。一方、ジョブ実行部２４は、停止した子ジョブに依存しない他の子ジョブを続行する。退避処理部２６は、その子ジョブの実行により生成された成果物データをＤＢサーバ１２に送信する。その成果物データには、例えば親子ジョブ識別情報が対応付けられる。ＤＢサーバ１２においては、その親子ジョブ識別情報に従って、成果物データと退避情報とが対応付けられる。ジョブ管理部２２は、ＤＢサーバ１２に記憶されているジョブ管理テーブルを更新する（Ｓ１１）。例えば、停止中の子ジョブの状態と、停止中の子ジョブに依存する他の子ジョブの状態が、「実行中」から「停止中」に変更され、子ジョブの停止理由がジョブ管理テーブルに登録される。
【００４９】
次に、ユーザＡは端末装置１４を利用して負荷分散装置１６にアクセスする（Ｓ１２）。負荷分散装置１６は、例えば、画像形成装置１０Ａ，１０Ｂ，１０Ｃの負荷に応じて、ユーザＡのアクセス先を、画像形成装置１０Ａ，１０Ｂ，１０Ｃのいずれかの装置に振り分ける。例えば、アクセス先が画像形成装置１０Ｂに振り分けられたものとする。この場合、ユーザＡは端末装置１４を利用して認証情報を入力し、画像形成装置１０Ｂにログインする（Ｓ１３）。
【００５０】
画像形成装置１０Ｂにおいては、制御部２８が、ユーザＡの子ジョブ（ユーザＡのユーザ識別情報に対応付けられている子ジョブ）の停止理由を示す情報をＤＢサーバ１２から取得する（Ｓ１４）。停止理由を示す情報と介入操作画面のデータが、画像形成装置１０Ｂから端末装置１４に送信され、端末装置１４のＵＩ部４０には、その停止理由を示す情報と介入操作画面が表示される（Ｓ１５）。
【００５１】
ユーザＡが端末装置１４を利用して、介入操作画面において介入操作を実施し（Ｓ１６）、ジョブの再開指示を与えると（Ｓ１７）、画像形成装置１０Ｂにおいては、ジョブ管理部２２が、ＤＢサーバ１２に記憶されているジョブ管理テーブルを更新する（Ｓ１８）。例えば、停止中の子ジョブの状態と、停止中の子ジョブに依存する他の子ジョブの状態が、「停止中」から「処理中」に変更される。次に、ジョブ実行部２４は、ユーザＡの子ジョブ群のジョブ情報であって、停止中の子ジョブのジョブ情報と停止中の子ジョブに依存する他の子ジョブのジョブ情報とをＤＢサーバ１２から取得し（Ｓ１９）、停止した子ジョブを途中から再開するとともに、停止した子ジョブに依存する他の子ジョブを実行する（Ｓ２０）。
【００５２】
以下、図６を参照して、ジョブ退避時の処理について詳しく説明する。図６には、その処理を示すフローチャートが示されている。一例として、ユーザＡによって親子ジョブの実行が指示され、画像形成装置１０Ａにて親子ジョブが実行されているものとする。
【００５３】
画像形成装置１０Ａにおいては、停止検出部３２が、介入事象の発生を監視する。介入事象が発生しない場合、ジョブ実行部２４は親子ジョブを続行する。これにより、親子ジョブは完了する。この場合、ジョブ管理部２２は、ＤＢサーバ１２上のジョブ管理テーブルを更新する。これにより、親子ジョブの状態が「処理中」から「処理終了」に変更される。
【００５４】
ユーザＡによる一時停止要求、プレビュー確認、認証処理、等の介入事象が発生した場合、ジョブ実行部２４は、実行中の子ジョブを停止させる（Ｓ３０）。この場合、退避処理部２６は、停止した子ジョブを不活性化ジョブ候補群に追加する（Ｓ３１）。不活性化ジョブ候補群に含まれる子ジョブは退避対象のジョブであり、その子ジョブのジョブ情報は退避情報に含まれてＤＢサーバ１２に送信される。処理対象の親子ジョブの中に、停止した子ジョブ（以下、便宜的に「第１子ジョブ」と称することとする）に依存する他の子ジョブ（以下、便宜的に「第２子ジョブ」と称することとする）が含まれている場合（Ｓ３２，Ｙｅｓ）、退避処理部２６は、依存する子ジョブ（第２子ジョブ）を不活性化ジョブ候補群に追加する（Ｓ３３）。退避処理部２６は、第２子ジョブを対象として、ステップＳ３２，Ｓ３３の処理を行う。親子ジョブの中に、第２子ジョブに依存する他の子ジョブ（以下、便宜的に「第３子ジョブ」と称することとする）が含まれている場合（Ｓ３２，Ｙｅｓ）、退避処理部２６は、第３子ジョブを不活性化ジョブ候補群に追加する（Ｓ３３）。退避処理部２６は、第３子ジョブを対象として、ステップＳ３２，Ｓ３３の処理を行う。退避処理部２６は、依存する子ジョブがなくなるまで、ステップＳ３２，Ｓ３３の処理を行う。依存する子ジョブが無い場合（Ｓ３２，Ｎｏ）、退避処理部２６は、不活性化ジョブ候補群を不活性化させる（Ｓ３４）。これにより、不活性化ジョブ候補群に含まれる各子ジョブが不活性化し、不活性化ジョブ群が形成される。具体的には、退避処理部２６は、不活性化ジョブ候補群に含まれる各子ジョブのジョブ情報と、停止中の子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む退避情報を、ユーザＡの退避情報としてＤＢサーバ１２に送信する。退避情報は、ユーザ識別情報と親子ジョブ識別情報とに対応付けられてＤＢサーバ１２に記憶される。また、退避処理部２６は、不活性化ジョブ候補群と成果物データを記憶部２０から削除する。一方、ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブ、つまり、停止した子ジョブに依存しない子ジョブを続行する。退避処理部２６は、不活性化ジョブ候補群に含まれない子ジョブの実行により生成された成果物データをＤＢサーバ１２に送信する。その成果物データには親子ジョブ識別情報が対応付けられ、ＤＢサーバ１２においては、その親子ジョブ識別情報に従って、成果物データと退避情報とが対応付けられる。
【００５５】
以下、図７を参照して、ジョブ再開時の処理について説明する。図７には、その処理を示すフローチャートが示されている。一例として、ユーザＡが画像形成装置１０Ａからログアウトし、ユーザＡの再ログイン先として画像形成装置１０Ｂが割り振られたものとする。この場合、以下の処理は画像形成装置１０Ｂによって実行される。
【００５６】
画像形成装置１０Ｂにおいては、制御部２８が、ジョブの再開要求を受け付ける。例えば、介入操作が実施された後、ユーザＡが端末装置１４を利用してジョブの再開要求を与えると、画像形成装置１０Ｂにおいては、ジョブ管理部２２が、ＤＢサーバ１２に記憶されているジョブ管理テーブルを更新する。例えば、子ジョブの状態が「停止中」から「処理中」に変更される。次に、ジョブ実行部２４は、不活性化ジョブ群についての退避情報をＤＢサーバ１２から取得し（Ｓ３５）、不活性化ジョブ群を活性化させる（Ｓ３６）。これにより、不活性化ジョブ群に含まれる各ジョブが活性化する。具体的には、ジョブ実行部２４は、退避情報に含まれるジョブ情報に従って、停止中の子ジョブを途中から再開し、その子ジョブに依存する他の子ジョブを実行する。退避情報には、停止した子ジョブの進捗状況を示す進捗情報が含まれている。この進捗情報を参照することにより、子ジョブの進捗状況、つまり、子ジョブのうち実行済みの処理と未実行の処理とが特定される。ジョブ実行部２４は、停止した子ジョブについて、未実行部分の処理を実行する。
【００５７】
なお、ユーザＡが画像形成装置１０Ａにログイン中であれば、上記の処理は画像形成装置１０Ａによって実行される。
【００５８】
以下、図８を参照して親子ジョブの具体例について説明する。図８には、親子ジョブの一例が示されている。この親子ジョブは、親ジョブと４つの子ジョブとを含む。この親子ジョブが実行されることにより、スキャン処理によって紙文書が読み取られ、その読み取りによって生成された文書データがファクシミリ送信され、その文書データに対して文字認識処理（例えばＯＣＲ（optical character recognition）処理）が適用されて電子メールのアドレスが読み取られ、そのアドレス宛てに文書データが電子メールによって送信される。親子ジョブが正常に実行されることにより、これら一連の処理が実行される。以下、この親子ジョブについて詳しく説明する。
【００５９】
親ジョブは４つの子ジョブを管理するジョブである。親ジョブのジョブ情報には、入力情報として、スキャン条件を示す情報と、ＦＡＸの宛先を示す情報と、が含まれている。また、紙文書は、スキャンの対象となる用紙である。
【００６０】
第１子ジョブは、スキャン処理を実現するためのジョブである。第１子ジョブの実行に際して、親ジョブからスキャン条件を示す情報が与えられる。ジョブ実行部２４によって第１子ジョブが実行されることにより、そのスキャン条件に従って紙文書がスキャンされる。これにより、出力情報としての文書データが生成される。
【００６１】
第１子ジョブの結果つまり文書データは、第２子ジョブ、第３子ジョブ及び第４子ジョブの入力情報として用いられる。つまり、第２子ジョブ、第３子ジョブ及び第４子ジョブは、第１子ジョブの出力結果を利用するジョブである。よって、第２子ジョブ、第３子ジョブ及び第４子ジョブは、第１子ジョブに依存する子ジョブである。
【００６２】
第２子ジョブは、ファクシミリ送信（ＦＡＸ送信）を実現するためのジョブである。第２子ジョブの実行に際して、親ジョブからＦＡＸの宛先情報が与えられ、第１子ジョブの結果（文書データ）が与えられる。ジョブ実行部２４によって第２子ジョブが実行されることにより、文書データがＦＡＸの宛先にファクシミリ送信される。
【００６３】
第３子ジョブは、文字認識処理（例えばＯＣＲ処理）を実現するためのジョブである。第３子ジョブの実行に際して、第１子ジョブの結果（文書データ）が与えられる。ジョブ実行部２４によって第３子ジョブが実行されることにより、文書データから電子メールのアドレスが読み取られる。
【００６４】
第３子ジョブの結果つまり電子メールのアドレスは、第４子ジョブの入力情報として用いられる。つまり、第４子ジョブは、第３子ジョブの出力結果を利用するジョブである。よって、第４子ジョブは、第３子ジョブに依存する子ジョブである。
【００６５】
第４子ジョブは、電子メール送信を実現するためのジョブである。第４子ジョブの実行に際して、第１子ジョブの結果（文書データ）と第３子ジョブの結果（電子メールのアドレス）が与えられる。ジョブ実行部２４によって第４子ジョブが実行されることにより、文書データが電子メールに添付されてそのアドレスに送信される。
【００６６】
以下、図９を参照して、介入事象発生時の処理の具体例について説明する。図９には、親子ジョブの一例が示されている。この親子ジョブは、図８に示されている親子ジョブと同じものである。例えば、第１子ジョブ（スキャン処理）にてエラーが発生して、第１子ジョブが停止したものとする。上述したように、第２子ジョブ、第３子ジョブ及び第４子ジョブは、第１子ジョブに依存する子ジョブである。従って、全ての子ジョブ、つまり第１子ジョブ、第２子ジョブ、第３子ジョブ及び第４子ジョブが、不活性化ジョブ群に追加されて不活性化される。この場合、退避処理部２６は、第１子ジョブ、第２子ジョブ、第３子ジョブ及び第４子ジョブのそれぞれのジョブ情報と、停止中の第１子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、第１子ジョブの実行により既に生成された成果物データとしての文書データと、を含む退避情報を、ＤＢサーバ１２に送信する。退避情報は、親子ジョブ識別情報とユーザ識別情報とに対応付けられてＤＢサーバ１２に記憶される。また、退避処理部２６は、第１子ジョブ、第２子ジョブ、第３子ジョブ及び第４子ジョブのそれぞれのジョブ情報と成果物データを記憶部２０から削除する。全ての子ジョブが不活性化されるので、退避処理部２６は、親ジョブのジョブ情報も記憶部２０から削除する。
【００６７】
例えば、画像形成装置１０Ｂにてジョブが再開されたものとする。この場合、画像形成装置１０Ｂにおいて、ジョブ実行部２４が、退避情報をＤＢサーバ１２から取得し、その退避情報に従ってジョブを実行する。退避情報に含まれる進捗情報を参照することにより、停止中の第１子ジョブの進捗状況が特定される。ジョブ実行部２４は、その進捗情報と第１子ジョブのジョブ情報に基づいて、第１子ジョブ（スキャン処理）の中の未実行分の処理を実行する。また、ジョブ実行部２４は、第２子ジョブ、第３子ジョブ及び第４子ジョブのそれぞれのジョブ情報に基づいて、第２子ジョブ（ＦＡＸ送信）、第３子ジョブ（ＯＣＲ処理）及び第４子ジョブ（電子メール送信）を実行する。いずれかの子ジョブが停止した場合、ジョブの退避処理が行われる。
【００６８】
以下、図１０を参照して、介入事象発生時の処理の別の具体例について説明する。図１０には、親子ジョブの一例が示されている。この親子ジョブは、図８に示されている親子ジョブと同じものである。例えば、第１子ジョブ（スキャン処理）と第２子ジョブ（ＦＡＸ送信）が実行中であり、第３子ジョブ（ＯＣＲ処理）にてエラーが発生して、第３子ジョブが停止したものとする。上述したように、第４子ジョブは、第３子ジョブに依存する子ジョブである。従って、第３子ジョブと第４子ジョブが、不活性化ジョブ群に追加されて不活性化される。この場合、退避処理部２６は、第３子ジョブ及び第４子ジョブのそれぞれのジョブ情報と、停止中の第３子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、第３子ジョブの実行により既に生成された成果物データとしての電子メールのアドレス情報と、を含む退避情報を、ＤＢサーバ１２に送信する。退避情報は、親子ジョブ識別情報とユーザ識別情報とに対応付けられてＤＢサーバ１２に記憶される。また、退避処理部２６は、第３子ジョブ及び第４子ジョブのそれぞれのジョブ情報と、第３子ジョブの実行により生成された成果物データ（アドレス情報）を記憶部２０から削除する。一方、第１子ジョブと第２子ジョブは、第３子ジョブの出力結果を利用しないジョブであるため、第３子ジョブに依存しないジョブである。この場合、ジョブ実行部２４は、第１子ジョブ（スキャン処理）と第２子ジョブ（ＦＡＸ送信）を実行する。退避処理部２６は、第１子ジョブの実行により生成された文書データと、第２子ジョブの実行結果を示す情報とを、成果物データとしてＤＢサーバ１２に送信する。その成果物データには親子ジョブ識別情報が対応付けられ、ＤＢサーバ１２においては、その親子ジョブ識別情報に従って、成果物データと退避情報とが対応付けられる。
【００６９】
例えば、画像形成装置１０Ｂにてジョブが再開されたものとする。この場合、画像形成装置１０Ｂにおいて、ジョブ実行部２４が、退避情報をＤＢサーバ１２から取得し、その退避情報に従ってジョブを実行する。退避情報に含まれる進捗情報を参照することにより、停止中の第３子ジョブの進捗状況が特定される。また、ジョブ実行部２４は、第１子ジョブの実行により生成された文書データと、第２子ジョブの実行結果を示す情報を、ＤＢサーバ１２から取得する。ジョブ実行部２４は、進捗情報と第３子ジョブのジョブ情報に基づいて、第３子ジョブ（ＯＣＲ処理）の中の未実行分の処理を実行する。このとき、ジョブ実行部２４は、第１子ジョブの実行により生成された文書データに対して、第３子ジョブを適用する。また、ジョブ実行部２４は、第４子ジョブのジョブ情報に基づいて、第４子ジョブ（電子メール送信）を実行する。このとき、ジョブ実行部２４は、第１子ジョブの実行により生成された文書データに対して、第４子ジョブを適用する。いずれかの子ジョブが停止した場合、ジョブの退避処理が行われる。
【００７０】
以上のように、本実施形態では、画像形成装置１０にて実行中の子ジョブが停止した場合、不活性化ジョブ群（停止した子ジョブと、停止した子ジョブに依存する子ジョブ）を再開するための退避情報が、その画像形成装置１０からＤＢサーバ１２に退避させられ、その画像形成装置１０から、不活性化ジョブ群のジョブ情報が削除される。ユーザによって再開指示が与えられると、同一又は別の画像形成装置１０によって退避情報が取得され、停止した子ジョブが途中から再開されるとともに、停止した子ジョブに依存する他の子ジョブが実行される。不活性化ジョブ群のジョブ情報が画像形成装置１０から削除されるので、その画像形成装置１０におけるメモリが確保され、別のジョブがその画像形成装置１０に割り当てられる。これにより、不活性化ジョブ群のジョブ情報をその画像形成装置１０に残す場合と比較して、クラスタ化によって実現される分散処理の効率が向上する。
【００７１】
また、停止した子ジョブに依存しない他の子ジョブは、元の画像形成装置１０にて続行される。これにより、停止した子ジョブに依存しない他の子ジョブも不活性化ジョブ群に追加して停止させる場合と比較して、親子ジョブに含まれる全処理の完了に要する時間が短くなる。例えば、停止した子ジョブ（例えば第１子ジョブ）に依存しない子ジョブ（第２子ジョブ）も停止させ、第１子ジョブが再開されるまで第２子ジョブを停止させた場合、第２子ジョブが停止している時間の分、全処理の完了に要する時間が長くなる。これに対して、本実施形態では、第１子ジョブが停止中であっても第２子ジョブが実行される。第２子ジョブを停止させていない分、全処理の完了に要する時間が短くなる。
【００７２】
また、クラスタ化された画像形成システムにおいては、停止した子ジョブが同一の画像形成装置１０に振り分けられるとは限らない。本実施形態では、ユーザが別の画像形成装置１０にログインした場合であっても、その別の画像形成装置１０が退避情報を取得して、停止中の子ジョブを途中から再開する。これにより、停止した子ジョブが同一の画像形成装置１０に振り分けられるようにしなくても、停止した子ジョブが再開される。つまり、負荷分散装置１６のセッション維持機能によって端末装置１４と画像形成装置１０との対応関係を固定させなくても、停止した子ジョブが再開される。これにより、端末装置１４と画像形成装置１０との対応関係を固定させた場合と比較して、処理が均一に分散され、分散処理の効率が向上する。
【００７３】
以下、変形例について説明する。
【００７４】
（変形例１）
図１１を参照して、変形例１について説明する。図１１には、変形例１に係る処理を示すフローチャートが示されている。一例として、ユーザＡによって親子ジョブの実行が指示され、画像形成装置１０Ａにて親子ジョブが実行されているものとする。
【００７５】
画像形成装置１０Ａにおいては、停止検出部３２が、介入事象の発生を監視する。介入事象が発生しない場合、ジョブ実行部２４は親子ジョブを続行する。これにより、親子ジョブは完了する。
【００７６】
介入事象が発生した場合、ジョブ実行部２４は、実行中の子ジョブを停止させる（Ｓ４０）。この場合、退避処理部２６は、停止した子ジョブを不活性化ジョブ候補群に追加する（Ｓ４１）。処理対象の親子ジョブの中に、停止した子ジョブに依存する他の子ジョブが含まれている場合（Ｓ４２，Ｙｅｓ）、退避処理部２６は、停止した子ジョブに依存する他の子ジョブを不活性化ジョブ候補群に追加する（Ｓ４３）。退避処理部２６は、その依存する子ジョブを対象として、ステップＳ４２，Ｓ４３の処理を行う。退避処理部２６は、依存する子ジョブがなくなるまで、ステップＳ４２，Ｓ４３の処理を行う。
【００７７】
依存する子ジョブが無い場合であって（Ｓ４２，Ｎｏ）、不活性化ジョブ候補群に含まれる全ての子ジョブの実行が不可能の場合（Ｓ４４，Ｙｅｓ）、退避処理部２６は、不活性化ジョブ候補群を不活性化させる（Ｓ４５）。これにより、不活性化ジョブ候補群に含まれる各子ジョブのジョブ情報と、停止中の子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む退避情報が、ＤＢサーバ１２に送信される。また、不活性化ジョブ候補群と成果物データが記憶部２０から削除される。ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブ（停止した子ジョブに依存しない他の子ジョブ）を続行する。不活性化ジョブ候補群に含まれない子ジョブの実行により生成された成果物データは、ＤＢサーバ１２に送信される。
【００７８】
不活性化ジョブ候補群に含まれる全ての子ジョブの実行が不可能ではない場合（Ｓ４４，Ｎｏ）、ジョブ実行部２４は、不活性化ジョブ候補群に含まれる各子ジョブを続行する（Ｓ４６）。つまり、ジョブ実行部２４は、停止した子ジョブの結果（出力）を必要とする段階まで、停止した子ジョブに依存する他の子ジョブを続行する。その後、不活性化ジョブ候補群が不活性化される（Ｓ４５）。この場合、退避処理部２６は、不活性化ジョブ候補群に含まれる各子ジョブのジョブ情報と、不活性化ジョブ候補群に含まれる各子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む退避情報を、ＤＢサーバ１２に退避させる。また、不活性化ジョブ候補群と成果物データが記憶部２０から削除される。ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブを続行する。不活性化ジョブ候補群に含まれない子ジョブの実行により生成された成果物データは、ＤＢサーバ１２に送信される。
【００７９】
変形例１に係る処理について、図１０を参照して詳しく説明する。図１０に示すように、第３子ジョブ（ＯＣＲ処理）が停止した場合、その第３子ジョブに依存する第４子ジョブは、不活性化ジョブ候補群に追加される。変形例１では、ジョブ実行部２４は、第３子ジョブの出力つまり電子メールアドレスを必要とする段階まで、第４子ジョブ（電子メール送信）を続行する。例えば、ジョブ実行部２４は、電子メールの件名や本文を作成する。その作成結果は、第４子ジョブの成果物データとして退避情報に含まれる。
【００８０】
ジョブ再開時には、ジョブ実行部２４が、退避情報をＤＢサーバ１２から取得し、その退避情報に従ってジョブを実行する。退避情報に含まれる進捗情報を参照することにより、停止中の子ジョブの進捗状況が特定される。停止中の子ジョブに依存する他の子ジョブが実行されている場合、進捗情報を参照することにより、停止中の子ジョブに依存する他の子ジョブの進捗状況も特定される。また、ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブを実行することにより生成された成果物データをＤＢサーバ１２から取得する。ジョブ実行部２４は、停止した子ジョブを途中から再開する。停止した子ジョブに依存する他の子ジョブが実行されている場合、ジョブ実行部２４は、停止した子ジョブに依存する他の子ジョブを途中から再開する。つまり、ジョブ実行部２４は、停止した子ジョブ、及び、停止した子ジョブに依存する子ジョブについて、未実行部分の処理を実行する。図１０に示す例で説明すると、ジョブ実行部２４は、停止した第３子ジョブと第４子ジョブについて、未実行部分の処理を実行する。第４子ジョブが部分的に実行され、電子メールの件名や本文が既に作成されている場合、ジョブ実行部２４は、それ以外の部分の処理を実行する。停止した子ジョブに依存する子ジョブが実行されていない場合、ジョブ実行部２４は、停止した子ジョブに依存する他の子ジョブの全部を実行する。
【００８１】
以上のように、変形例１によると、子ジョブが停止した場合であっても、その停止した子ジョブの結果（出力）を必要とする段階まで、停止した子ジョブに依存する他の子ジョブが実行される。これにより、依存する他の子ジョブを実行せずに退避情報を退避させる場合と比較して、全処理の完了に要する時間が短くなる。
【００８２】
（変形例２）
図１２を参照して、変形例２について説明する。図１２には、変形例２に係る処理を示すフローチャートが示されている。一例として、ユーザＡによって親子ジョブの実行が指示され、画像形成装置１０Ａにて親子ジョブが実行されているものとする。
【００８３】
画像形成装置１０Ａにおいては、停止検出部３２が、介入事象の発生を監視する。介入事象が発生しない場合、ジョブ実行部２４は親子ジョブを続行する。これにより、親子ジョブは完了する。
【００８４】
介入事象が発生した場合、ジョブ実行部２４は、実行中の子ジョブを停止させる（Ｓ５０）。この場合、退避処理部２６は、停止した子ジョブを不活性化ジョブ候補群に追加する（Ｓ５１）。処理対象の親子ジョブの中に、停止した子ジョブに依存する他の子ジョブが含まれている場合（Ｓ５２，Ｙｅｓ）、退避処理部２６は、停止した子ジョブに依存する他の子ジョブを不活性化ジョブ候補群に追加する（Ｓ５３）。退避処理部２６は、その依存する子ジョブを対象として、ステップＳ５２，Ｓ５３の処理を行う。退避処理部２６は、依存する子ジョブがなくなるまで、ステップＳ５２，Ｓ５３の処理を行う。
【００８５】
依存する子ジョブが無い場合であって（Ｓ５２，Ｎｏ）、停止した子ジョブの優先順位が基準順位以上の場合（Ｓ５４，Ｙｅｓ）、退避処理部２６は、不活性化ジョブ候補群を不活性化させる（Ｓ５５）。基準順位は例えば予め設定された順位である。基準順位はユーザや管理者等によって変更されてもよい。各子ジョブに優先順位が予め与えられており、各子ジョブのジョブ情報には、その優先順位を示す情報が含まれている。例えば、停止したとしても直ちに再開指示が与えられると想定される子ジョブには、相対的に高い優先順位が与えられる。
【００８６】
不活性化処理により、不活性化ジョブ候補群に含まれる各子ジョブのジョブ情報と、停止中の子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む退避情報が、ＤＢサーバ１２に送信される。また、不活性化ジョブ候補群と成果物データが記憶部２０から削除される。ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブを続行する。不活性化ジョブ候補群に含まれない子ジョブの実行により生成された成果物データは、ＤＢサーバ１２に送信される。
【００８７】
停止した子ジョブの優先順位が基準順位未満の場合（Ｓ５４，Ｎｏ）、処理はステップＳ５６に移行する。不活性化ジョブ候補群に含まれる全ての子ジョブの実行が不可能ではない場合（Ｓ５６，Ｎｏ）、ジョブ実行部２４は、不活性化ジョブ候補群に含まれる各子ジョブを続行する（Ｓ５７）。つまり、ジョブ実行部２４は、停止した子ジョブの結果（出力）を必要とする段階まで、停止した子ジョブに依存する他の子ジョブを続行する。その後、不活性化ジョブ候補群が不活性化される（Ｓ５５）。この場合、退避処理部２６は、不活性化ジョブ候補群に含まれる各子ジョブのジョブ情報と、不活性化ジョブ候補群に含まれる各子ジョブの進捗状況を示す進捗情報と、親ジョブのジョブ情報と、子ジョブの実行により既に生成された成果物データと、を含む退避情報を、ＤＢサーバ１２に退避させる。また、不活性化ジョブ候補群と成果物データが記憶部２０から削除される。ジョブ実行部２４は、不活性化ジョブ候補群に含まれない子ジョブを続行する。不活性化ジョブ候補群に含まれない子ジョブの実行により生成された成果物データは、ＤＢサーバ１２に送信される。不活性化ジョブ候補群に含まれる全ての子ジョブの実行が不可能な場合（Ｓ５６，Ｙｅｓ）、不活性化ジョブ候補群が不活性化される（Ｓ５５）。
【００８８】
ジョブ再開時の処理は変形例１に係る処理と同じであるため、その説明を省略する。
【００８９】
以上のように、変形例２によると、停止した子ジョブの優先順位が基準順位以上の場合、停止した子ジョブに依存する他の子ジョブが続行可能か否かに関わらず、退避情報がＤＢサーバ１２に退避させられる。例えば、直ちに再開指示が与えられると想定される子ジョブが停止した場合、停止した子ジョブに依存する他の子ジョブが続行可能か否かに関わらず、退避情報がＤＢサーバ１２に退避させられる。これにより、停止した子ジョブに依存する他の子ジョブを続行してから退避情報を退避させる場合と比較して、再開指示が与えられてからジョブの再開までに要する時間が短くなり得る。
【００９０】
（変形例３）
図１３を参照して、変形例３について説明する。図１３には、変形例３に係る処理を示すフローチャートが示されている。一例として、子ジョブが停止し、画像形成装置１０Ｂにおいてジョブの再開要求が受け付けられたものとする。
【００９１】
例えば、介入操作が実施された後、ユーザＡが端末装置１４を利用してジョブの再開要求を与えると、画像形成装置１０Ｂにおいては、ジョブ実行部２４が、不活性化ジョブ群の中の停止した子ジョブを活性化させる（Ｓ６０）。具体的には、ジョブ実行部２４は、停止した子ジョブのジョブ情報と進捗情報と成果物データとをＤＢサーバ１２から取得し、停止した子ジョブのジョブ情報に従って、停止中の子ジョブを途中から再開する。
【００９２】
不活性化ジョブ群に、停止中の子ジョブ（以下、便宜的に「第１子ジョブ」と称することとする）に依存する他の子ジョブ（以下、便宜的に「第２子ジョブ」と称することとする）が含まれていない場合（Ｓ６１，Ｎｏ）、処理は終了する。
【００９３】
不活性化ジョブ群に、停止中の第１子ジョブに依存する第２子ジョブが含まれている場合（Ｓ６１，Ｙｅｓ）、処理はステップＳ６２に移行する。第２子ジョブに必要な処理が完了していない場合（Ｓ６２，Ｎｏ）、ジョブ実行部２４は第１子ジョブを続行する（Ｓ６３）。第２子ジョブに必要な処理が完了した場合（Ｓ６２，Ｙｅｓ）、ジョブ実行部２４は、第２子ジョブを活性化させる（Ｓ６４）。具体的には、ジョブ実行部２４は、第２子ジョブのジョブ情報をＤＢサーバ１２から取得し、第２子ジョブのジョブ情報に従って、第２子ジョブを実行する。例えば、ジョブ実行部２４は、第１子ジョブの処理が完了するまで第２子ジョブを活性化させず、第１子ジョブの処理が完了した後に、第２子ジョブを活性化させる。
【００９４】
第２子ジョブが活性化された後、その第２子ジョブを対象として、ステップＳ６１〜Ｓ６４の処理を適用する。依存関係にある子ジョブが無くなった場合（Ｓ６１，Ｎｏ）、処理は終了する。
【００９５】
例えば、停止した第１子ジョブを活性化させた後に、第１子ジョブが停止する場合がある。例えば、複数の介入事象が発生することにより、第１子ジョブが複数回停止する場合がある。不活性化ジョブ群に含まれる全ての子ジョブを活性化させた場合において、第１子ジョブを活性化させた後に、第１子ジョブが再度停止すると、第１子ジョブに依存している他の子ジョブは再び不活性化される。第１子ジョブに依存する他の子ジョブは全く実行されずに不活性化される場合もあり得る。このように、無駄な活性化及び不活性化が発生する場合がある。変形例３によると、停止した子ジョブに依存する他の子ジョブが存在する場合、停止した子ジョブの処理が完了するまで、停止した子ジョブに依存する他の子ジョブが活性化されない。これにより、停止した子ジョブを活性化させた後に、その子ジョブが再度停止した場合であっても、無駄な活性化及び不活性化が防止される。なお、変形例１又は変形例２と、変形例３とを組み合わせてもよい。
【００９６】
（変形例４）
図１４を参照して、変形例４について説明する。図１４には、変形例４に係る処理を示すフローチャートが示されている。一例として、子ジョブが停止し、画像形成装置１０Ｂにおいて、ジョブの再開要求が受け付けられたものとする。
【００９７】
例えば、介入操作が実施された後、ユーザＡが端末装置１４を利用してジョブの再開要求を与えると、画像形成装置１０Ｂにおいては、ジョブ実行部２４が、不活性化ジョブ群の中の停止した子ジョブを活性化させる（Ｓ７０）。具体的には、ジョブ実行部２４は、停止した子ジョブのジョブ情報と進捗情報と成果物データとをＤＢサーバ１２から取得し、停止した子ジョブのジョブ情報に従って、停止中の子ジョブを途中から再開する。
【００９８】
不活性化ジョブ群に、停止中の子ジョブ（以下、便宜的に「第１子ジョブ」と称することとする）に依存する他の子ジョブ（以下、便宜的に「第２子ジョブ」と称することとする）が含まれていない場合（Ｓ７１，Ｎｏ）、処理は終了する。
【００９９】
不活性化ジョブ群に、停止中の第１子ジョブに依存する第２子ジョブが含まれている場合（Ｓ７１，Ｙｅｓ）、処理はステップＳ７２に移行する。活性化した第１子ジョブが一時停止し易いジョブである場合（Ｓ７２，Ｙｅｓ）、処理はステップＳ７３に移行する。例えば、第１子ジョブの停止率が基準値以上の場合、第１子ジョブは一時停止し易いジョブであると判定され、第１子ジョブの停止率が基準値未満の場合、第１子ジョブは一時停止し易いジョブであるとは判定されない。停止率は経験則や統計情報等によって予め求められ、各子ジョブのジョブ情報に含まれている。基準値は例えば予め設定された値である。基準値はユーザや管理者等によって変更されてもよい。
【０１００】
活性化した第１子ジョブが一時停止し易いジョブである場合において（Ｓ７２，Ｙｅｓ）、第２子ジョブに必要な処理が完了していない場合（Ｓ７３，Ｎｏ）、ジョブ実行部２４は第１子ジョブを続行する（Ｓ７４）。第２子ジョブに必要な処理が完了した場合（Ｓ７３，Ｙｅｓ）、ジョブ実行部２４は、第２子ジョブを活性化させる（Ｓ７５）。具体的には、ジョブ実行部２４は、第２子ジョブのジョブ情報をＤＢサーバ１２から取得し、第２子ジョブのジョブ情報に従って、第２子ジョブを実行する。例えば、ジョブ実行部２４は、第１子ジョブの処理が完了するまで第２子ジョブを活性化させず、第１子ジョブの処理が完了した後に、第２子ジョブを活性化させる。また、活性化した第１子ジョブが一時停止し易いジョブではない場合（Ｓ７２，Ｎｏ）、ジョブ実行部２４は、第２子ジョブを活性化させる（Ｓ７５）。
【０１０１】
第２子ジョブが活性化された後、その第２子ジョブを対象として、ステップＳ７１〜Ｓ７５の処理を適用する。依存関係にある子ジョブが無くなった場合（Ｓ７１，Ｎｏ）、処理は終了する。
【０１０２】
活性化された子ジョブが一時停止し易いジョブである場合、変形例３にて説明した問題と同様の問題が生じる。変形例４によると、活性化された子ジョブが一時停止し易いジョブである場合、その子ジョブの処理が完了した後に、その子ジョブに依存する他の子ジョブが活性化される。これにより、活性化された子ジョブが一時停止し易いジョブであっても、その子ジョブに依存する他の子ジョブの無駄な活性化及び不活性化が防止される。
【０１０３】
（変形例５）
図１５を参照して、変形例５について説明する。図１５には、変形例５に係る処理を示すフローチャートが示されている。一例として、ユーザＡによって親子ジョブの実行が指示され、画像形成装置１０Ａにて親子ジョブが実行されているものとする。
【０１０４】
画像形成装置１０Ａにおいては、停止検出部３２が、介入事象の発生を監視する。介入事象が発生しない場合、ジョブ実行部２４は親子ジョブを続行する。これにより、親子ジョブは完了する。
【０１０５】
介入事象が発生した場合、ジョブ実行部２４は、実行中の子ジョブを停止させる（Ｓ８０）。この場合、退避処理部２６は、停止した子ジョブを不活性化ジョブ候補群に追加する（Ｓ８１）。処理対象の親子ジョブの中に、停止した子ジョブに依存する他の子ジョブが含まれている場合（Ｓ８２，Ｙｅｓ）、退避処理部２６は、依存する子ジョブを不活性化ジョブ候補群に追加する（Ｓ８３）。退避処理部２６は、その依存する子ジョブを対象として、ステップＳ８２，Ｓ８３の処理を行う。退避処理部２６は、依存する子ジョブがなくなるまで、ステップＳ８２，Ｓ８３の処理を行う。
【０１０６】
依存する子ジョブが無い場合であって（Ｓ８２，Ｎｏ）、全ての子ジョブが不活性化ジョブ候補に該当する場合（Ｓ８４，Ｙｅｓ）、退避処理部２６は、親ジョブを不活性化ジョブ候補群に追加し（Ｓ８５）、不活性化ジョブ候補群を不活性化させる（Ｓ８６）。これにより、親子ジョブの全体が不活性化する。
【０１０７】
不活性化ジョブ候補に該当しない子ジョブが存在する場合（Ｓ８４，Ｙｅｓ）、退避処理部２６は、不活性化ジョブ候補群を不活性化させる（Ｓ８６）。これにより、不活性化ジョブ候補群に含まれる各子ジョブが不活性化する。
【０１０８】
以上のように、変形例５によると、全ての子ジョブが不活性化ジョブ候補群に含まれる場合、親ジョブも不活性化される。これにより、ジョブの再開時においては、親ジョブと各子ジョブが同一の画像形成装置１０にて活性化されて実行されることになり、別々の画像形成装置１０にてジョブが実行される場合と比較して、効率的な通信や処理が実現される。
【０１０９】
（変形例６）
図１６を参照して、変形例６について説明する。図１６には、変形例６に係る処理を示すフローチャートが示されている。一例として、ユーザＡが画像形成装置１０Ａにログインし、画像形成装置１０Ａにて親子ジョブが実行されているものとする。
【０１１０】
画像形成装置１０Ａにおいては、停止検出部３２が、介入事象の発生を監視する。介入事象が発生しない場合、ジョブ実行部２４は親子ジョブを続行する。これにより、親子ジョブは完了する。
【０１１１】
介入事象が発生した場合、ジョブ実行部２４は、実行中の子ジョブを停止させる（Ｓ９０）。ユーザＡが画像形成装置１０Ａからログアウトしている場合（Ｓ９１，Ｎｏ）、退避処理部２６は、停止した子ジョブを不活性化ジョブ候補群に追加する（Ｓ９２）。処理対象の親子ジョブの中に、停止した子ジョブに依存する他の子ジョブが含まれている場合（Ｓ９３，Ｙｅｓ）、退避処理部２６は、依存する子ジョブを不活性化ジョブ候補群に追加する（Ｓ９４）。退避処理部２６は、その依存する子ジョブを対象として、ステップＳ９３，Ｓ９４の処理を行う。退避処理部２６は、依存する子ジョブがなくなるまで、ステップＳ９３，Ｓ９４の処理を行う。
【０１１２】
依存する子ジョブが無い場合（Ｓ９３，Ｎｏ）、退避処理部２６は、不活性化ジョブ候補群を不活性化させる（Ｓ９５）。これにより、不活性化ジョブ候補群に含まれる各子ジョブが不活性化される。
【０１１３】
一方、ユーザＡが画像形成装置１０Ａからログアウトしておらず画像形成装置１０Ａにログイン中の場合（Ｓ９１，Ｙｅｓ）、処理はステップＳ９６に移行する。ログイン中であって、子ジョブが停止してから基準時間が経過した場合（Ｓ９６，Ｙｅｓ）、処理はステップＳ９２に移行し、不活性化ジョブ候補群が不活性化される（Ｓ９５）。子ジョブが停止してから基準時間が経過していない場合（Ｓ９６，Ｎｏ）、処理はステップＳ９１に戻る。基準時間は例えば予め設定された時間である。基準時間はユーザや管理者等によって変更されてもよい。介入事象が発生して子ジョブが停止した場合、介入操作を行うための画面が端末装置１４に表示される。例えば、パスワードの入力ミスが発生した場合には、パスワードを再入力するための画面が表示される。この画面が表示された時点から基準時間が経過した場合（Ｓ９６，Ｙｅｓ）、処理はステップＳ９２に移行する。
【０１１４】
以上のように、変形例６によると、子ジョブが停止し、かつ、ユーザがログアウトした場合に、不活性化ジョブ候補群が不活性化される。または、子ジョブが停止し、かつ、子ジョブが停止してから基準時間が経過した場合に、不活性化ジョブ候補群が不活性化される。ユーザがログアウトせずにジョブの再開指示を与えた場合には、ログイン中の画像形成装置１０にてジョブが再開されるので、不活性化処理（退避情報の退避処理）と活性化処理（退避情報の取得処理）が不要となる。そこで、変形例６では、介入事象（子ジョブの停止）とログアウトの両方が発生し場合に、活性化処理を実行する。これにより、無駄な不活性化処理や活性化処理が解消される。
【０１１５】
上記の画像形成装置１０は、一例としてハードウェア資源とソフトウェアとの協働により実現される。具体的には、画像形成装置１０は、図示しないＣＰＵ等のプロセッサを備えている。当該プロセッサが、図示しない記憶装置に記憶されたプログラムを読み出して実行することにより、画像形成装置１０の各部の機能が実現される。上記プログラムは、ＣＤやＤＶＤ等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置に記憶される。または、画像形成装置１０の各部は、例えばプロセッサや電子回路等のハードウェア資源により実現されてもよい。その実現においてメモリ等のデバイスが利用されてもよい。別の例として、画像形成装置１０の各部は、ＤＳＰ（Digital Signal Processor）やＦＰＧＡ（Field Programmable Gate Array）等によって実現されてもよい。なお、本願発明の情報処理装置は画像形成装置１０に限定されるものではなく、ユーザからの指示に基づいてジョブを実行可能な一般的な構成のコンピュータであってもよい。
【符号の説明】
【０１１６】
１０  画像形成装置、１２  ＤＢサーバ、１４  端末装置、１６  負荷分散装置、２２  ジョブ管理部、２４  ジョブ実行部、２６  退避処理部、２８  制御部、３０  認証部、３２  停止検出部、３４  確認部。
【図１】
0006493116.tif 000002
【図２】
0006493116.tif 000003
【図３】
0006493116.tif 000004
【図４】
0006493116.tif 000005
【図５】
0006493116.tif 000006
【図６】
0006493116.tif 000007
【図７】
0006493116.tif 000008
【図８】
0006493116.tif 000009
【図９】
0006493116.tif 000010
【図１０】
0006493116.tif 000011
【図１１】
0006493116.tif 000012
【図１２】
0006493116.tif 000013
【図１３】
0006493116.tif 000014
【図１４】
0006493116.tif 000015
【図１５】
0006493116.tif 000016
【図１６】
0006493116.tif 000017