(57)【特許請求の範囲】
【請求項１】
ジョブの実行要求を受け付けると共に、受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割し、各サブジョブの実行先を決定する実行先決定装置と、
ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するジョブ実行装置と、
前記ジョブ実行装置が実行するサブジョブとは異なるサブジョブを、前記ジョブ実行装置に代わって実行する１又は複数のサブジョブ代行装置と、
を有し、
前記実行先決定装置は、
前記サブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段と、
前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段と、
を有し、
前記ジョブ実行装置は、
前記ジョブ実行装置の現在の使用状態に関する情報を取得する手段と、
前記ジョブ実行装置と前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段と、
前記代行装置能力情報と、前記ジョブ実行装置の現在の使用状態に関する情報と、前記ジョブ実行装置と前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記ジョブ実行装置へ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記ジョブ実行装置に実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記ジョブ実行装置へ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段と、
前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段と、
を有し、
前記実行先決定装置は、前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として前記ジョブ実行装置を、それぞれ決定する、
ことを特徴とするジョブ分散処理システム。
【請求項２】
前記実行先決定装置は、１つのジョブの実行に前記ジョブ実行装置を占有可能な最大時間長を示す占有可能時間を設定する設定手段を有し、前記ジョブ実行装置がｉ番目からＮ番目のサブジョブの実行に要する処理時間が前記占有可能時間を超えない範囲で変数ｉを求めることを特徴とする請求項１に記載のジョブ分散処理システム。
【請求項３】
前記設定手段は、ジョブが実行される時に応じた占有可能時間を設定することを特徴とする請求項２に記載のジョブ分散処理システム。
【請求項４】
前記実行先決定装置は、前記ジョブ実行装置の現在の利用状況と当該ジョブの実行に要する前記ジョブ実行装置の資源から、前記ジョブ実行装置の処理能力上、前記ジョブ実行装置にＮ番目のサブジョブとは異なるサブジョブを実行する余力の有無を判断する判断手段を有し、余力があると判断された場合に前記算出手段及び前記特定手段を用いてサブジョブの実行先を決定することを特徴とする請求項１に記載のジョブ分散処理システム。
【請求項５】
前記実行先決定装置は、前記ジョブ実行装置の現在の利用状況と当該ジョブの実行に要する前記ジョブ実行装置の資源から、前記ジョブ実行装置の処理能力上、前記ジョブ実行装置にＮ番目のサブジョブとは異なるサブジョブを実行する余力の有無を判断する判断手段を有し、余力がないと判断された場合、１番目から（Ｎ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、Ｎ番目のサブジョブの実行先として前記ジョブ実行装置を、それぞれ決定することを特徴とする請求項１に記載のジョブ分散処理システム。
【請求項６】
ジョブの実行要求を受け付けるジョブ受付手段と、
受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割する分割手段と、
ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するサブジョブ実行手段と、
前記サブジョブ実行手段が実行するサブジョブとは異なるサブジョブを、前記サブジョブ実行手段に代わって実行する１又は複数のサブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段と、
前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段と、
自装置の現在の使用状態に関する情報を取得する手段と、
自装置と前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段と、
前記代行装置能力情報と、前記自装置の現在の使用状態に関する情報と、前記自装置と前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記自装置へ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記自装置に実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記自装置へ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段と、
前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段と、
前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として自装置を、それぞれ決定する決定手段と、
を有することを特徴とする情報処理装置。
【請求項７】
コンピュータを、
ジョブの実行要求を受け付けるジョブ受付手段、
受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割する分割手段、
ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するサブジョブ実行手段、
前記サブジョブ実行手段が実行するサブジョブとは異なるサブジョブを、前記サブジョブ実行手段に代わって実行する１又は複数のサブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段、
前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段、
前記コンピュータの現在の使用状態に関する情報を取得する手段、
前記コンピュータと前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段、
前記代行装置能力情報と、前記コンピュータの現在の使用状態に関する情報と、前記コンピュータと前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記コンピュータへ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記コンピュータに実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記コンピュータへ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段、
前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段、
前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として前記コンピュータを、それぞれ決定する決定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ分散処理システム、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、グリッドコンピューティングによってユーザの要求をジョブに分割して複数の画像処理装置に分配するようにし、各画像処理装置のアイドル率やアイドル時間、ジョブの達成率などの状態変化の履歴を履歴情報として格納し、ジョブを分配する際に履歴情報を使用することが記載されている。
【０００３】
特許文献２には、リクエストを複数のジョブに分割し、リクエスト受付時の計算リソースの状況やリクエスト内容に基づいて完了時間を見積り、ジョブの実行スケジュールを決めて複数の計算機にジョブを割り当てて、ジョブの実行状況を監視することが記載されている。
【０００４】
特許文献３には、印刷ジョブがローカルジョブかグリッドジョブかを判定し、優先度に応じて他のプリンタにジョブを依頼することが記載されている。そして、ローカルジョブ実行中に他のプリンタからグリッドジョブの依頼を受けた場合は、グリッドジョブをキャンセルする。
【０００５】
特許文献４には、サーバのＣＰＵ等の資源とその負荷情報に基づいて、サーバで実行されている処理の多重度を増加させた場合の各資源の負荷の増加量が計算され、全ての資源に対する負荷が資源毎に設定負荷上限値以下となる多重度を決定、変更することが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３５２６９３号公報
【特許文献２】特開２００５−５６２０１号公報
【特許文献３】特開２００６−１５９７４１号公報
【特許文献４】特開２００６−２５２１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、ジョブ実行装置の処理能力を利用しつつＮ番目のサブジョブとは異なるサブジョブの実行をサブジョブ代行装置に指示する場合に比して、ジョブの実行時間の短縮化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るジョブ分散処理システムは、ジョブの実行要求を受け付けると共に、受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割し、各サブジョブの実行先を決定する実行先決定装置と、ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するジョブ実行装置と、前記ジョブ実行装置が実行するサブジョブとは異なるサブジョブを、前記ジョブ実行装置に代わって実行する１又は複数のサブジョブ代行装置と、を有し、前記実行先決定装置は、前記サブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段と、前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段と、を有し、前記ジョブ実行装置は、前記ジョブ実行装置の現在の使用状態に関する情報を取得する手段と、前記ジョブ実行装置と前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段と、前記代行装置能力情報と、前記ジョブ実行装置の現在の使用状態に関する情報と、前記ジョブ実行装置と前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記ジョブ実行装置へ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記ジョブ実行装置に実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記ジョブ実行装置へ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段と、前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段と、を有し、前記実行先決定装置は、前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として前記ジョブ実行装置を、それぞれ決定することを特徴とする。
【０００９】
また、前記実行先決定装置は、１つのジョブの実行に前記ジョブ実行装置を占有可能な最大時間長を示す占有可能時間を設定する設定手段を有し、前記ジョブ実行装置がｉ番目からＮ番目のサブジョブの実行に要する処理時間が前記占有可能時間を超えない範囲で変数ｉを求めることを特徴とする。
【００１０】
また、前記設定手段は、ジョブが実行される時に応じた占有可能時間を設定することを特徴とする。
【００１１】
また、前記実行先決定装置は、前記ジョブ実行装置の現在の利用状況と当該ジョブの実行に要する前記ジョブ実行装置の資源から、前記ジョブ実行装置の処理能力上、前記ジョブ実行装置にＮ番目のサブジョブとは異なるサブジョブを実行する余力の有無を判断する判断手段を有し、余力があると判断された場合に前記算出手段及び前記特定手段を用いてサブジョブの実行先を決定することを特徴とする。
【００１２】
また、前記実行先決定装置は、前記ジョブ実行装置の現在の利用状況と当該ジョブの実行に要する前記ジョブ実行装置の資源から、前記ジョブ実行装置の処理能力上、前記ジョブ実行装置にＮ番目のサブジョブとは異なるサブジョブを実行する余力の有無を判断する判断手段を有し、余力がないと判断された場合、１番目から（Ｎ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、Ｎ番目のサブジョブの実行先として前記ジョブ実行装置を、それぞれ決定することを特徴とする。
【００１３】
本発明に係る情報処理装置は、ジョブの実行要求を受け付けるジョブ受付手段と、受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割する分割手段と、ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するサブジョブ実行手段と、前記サブジョブ実行手段が実行するサブジョブとは異なるサブジョブを、前記サブジョブ実行手段に代わって実行する１又は複数のサブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段と、前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段と、自装置の現在の使用状態に関する情報を取得する手段と、自装置と前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段と、前記代行装置能力情報と、前記自装置の現在の使用状態に関する情報と、前記自装置と前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記自装置へ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記自装置に実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記自装置へ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段と、前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段と、前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として自装置を、それぞれ決定する決定手段と、を有することを特徴とする。
【００１４】
本発明に係るプログラムは、コンピュータを、ジョブの実行要求を受け付けるジョブ受付手段、受け付けたジョブをＮ（Ｎは３以上の整数）個のサブジョブに分割する分割手段、ジョブの実行要求先として指定され、Ｎ個のサブジョブのうち最後のＮ番目に実行されるサブジョブを少なくとも実行するサブジョブ実行手段、前記サブジョブ実行手段が実行するサブジョブとは異なるサブジョブを、前記サブジョブ実行手段に代わって実行する１又は複数のサブジョブ代行装置の処理能力に関する代行装置能力情報を取得する手段、前記代行装置能力情報を参照して、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の前記サブジョブ代行装置を割り当てるサブジョブ割当手段、前記コンピュータの現在の使用状態に関する情報を取得する手段、前記コンピュータと前記サブジョブ代行装置との間のデータ転送に関する情報を取得する手段、前記代行装置能力情報と、前記コンピュータの現在の使用状態に関する情報と、前記コンピュータと前記サブジョブ代行装置との間のデータ転送に関する情報に基づいて、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、（ｉ−１）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行時間と、（ｉ−１）番目のサブジョブの実行結果のデータが当該サブジョブ代行装置から前記コンピュータへ転送されるときに要する転送時間と、を加算して第１の処理時間を算出すると共に、（ｉ−１）番目のサブジョブを前記コンピュータに実行させたときの実行時間と、（ｉ−２）番目のサブジョブを前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置に実行させたときの実行結果のデータが当該サブジョブ代行装置から前記コンピュータへ転送されるときに要する転送時間と、を加算して第２の処理時間を算出する算出手段、前記算出手段により算出された前記第１の処理時間と前記第２の処理時間とを比較した結果、前記第１の処理時間が前記第２の処理時間よりはじめて小さくなるときの変数ｉを特定する特定手段、前記特定手段により変数ｉが特定されたことに伴い、１番目から（ｉ−１）番目のサブジョブの実行先として前記サブジョブ割当手段により割り当てられた前記サブジョブ代行装置を、ｉ番目からＮ番目のサブジョブの実行先として前記コンピュータを、それぞれ決定する決定手段、として機能させるためのものである。
【発明の効果】
【００１５】
請求項１記載の発明によれば、ジョブ実行装置の処理能力を利用しつつＮ番目のサブジョブとは異なるサブジョブの実行をサブジョブ代行装置に指示する場合に比して、ジョブの実行時間の短縮化を図ることができる。
【００１６】
請求項２記載の発明によれば、占有可能時間を超えない範囲でジョブ実行装置の処理能力を利用することができる。
【００１７】
請求項３記載の発明によれば、ジョブが実行される時に応じた占有可能時間に設定変更することができる。
【００１８】
請求項４記載の発明によれば、ジョブ実行装置に余力がある場合にのみサブジョブ実行先決定処理を実行することができる。
【００１９】
請求項５記載の発明によれば、ジョブ実行装置に余力がない場合には、サブジョブ割当手段により割り当てられた１番目から（Ｎ−１）番目に実行される各サブジョブの実行先を、そのまま当該各サブジョブの実行先として決定することができる。
【００２０】
請求項６記載の発明によれば、ジョブ実行装置の処理能力を利用しつつＮ番目のサブジョブとは異なるサブジョブの実行をサブジョブ代行装置に指示する場合に比して、ジョブの実行時間の短縮化を図ることができる。
【００２１】
請求項７記載の発明によれば、ジョブ実行装置の処理能力を利用しつつＮ番目のサブジョブとは異なるサブジョブの実行をサブジョブ代行装置に指示する場合に比して、ジョブの実行時間の短縮化を図ることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係るジョブ分散処理システムの一実施の形態を示した全体構成図である。
【図２】本実施の形態における画像形成装置のハードウェア構成の一例を示した図である。
【図３】本実施の形態におけるジョブ受付装置を形成するサーバコンピュータのハードウェア構成図である。
【図４】本実施の形態におけるジョブ分散処理システムのブロック構成図である。
【図５】本実施の形態におけるファイルサイズ算出用データ記憶部に登録されているファイルサイズ算出用データの一例を示した図である。
【図６】本実施の形態のジョブ受付装置における処理を示したフローチャートである。
【図７】本実施の形態の画像形成装置における処理を示したフローチャートである。
【図８】図７に示した実行サブジョブ決定処理を示したフローチャートである。
【図９Ａ】本実施の形態においてクラウドと画像形成装置とにサブジョブを配分した後の処理時間の差を説明するために用いる概念図である。
【図９Ｂ】本実施の形態においてクラウドと画像形成装置とにサブジョブを配分した後の処理時間の差を説明するために用いる概念図である。
【図９Ｃ】本実施の形態においてクラウドと画像形成装置とにサブジョブを配分した後の処理時間の差を説明するために用いる概念図である。
【発明を実施するための形態】
【００２３】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００２４】
図１は、本発明に係るジョブ分散処理システムの一実施の形態を示した全体構成図である。図１には、ジョブ受付装置１０と画像形成装置５０とクラウド２とがネットワーク４を介して接続された構成が示されている。本実施の形態におけるジョブ受付装置１０は、サーバ等のコンピュータにより実現され、ユーザからのジョブの実行要求を受け付け、ジョブの実行を画像形成装置５０やクラウド２に指示する装置である。本実施の形態における画像形成装置５０は、スキャナ機能、印刷機能等複数の機能を有する装置であり、ジョブ受付装置１０が受け付けたジョブ又はその一部を実行する。本実施の形態では、ジョブを複数のサブジョブに分割し、各サブジョブを画像形成装置５０又はクラウド２に実行させるが、画像形成装置５０は、ジョブが印刷ジョブの場合、ジョブにより実行される処理のうち最後に実行されるべき印刷処理を少なくとも実行し、ジョブの実行結果として印刷物を出力する。クラウド２は、クラウド・コンピューティングを省略した呼称であり、複数の計算資源６が含まれている。計算資源６は、依頼された計算処理等を実行するサーバコンピュータ等により実現される。ジョブは、本来、実行先として指定された画像形成装置５０で実行されるべきであるが、処理時間の短縮化等の観点から、ジョブを分割して形成されたサブジョブのうち最後に実行されるサブジョブとは異なるサブジョブの全部又は一部を画像形成装置５０に代わって実行する。なお、ジョブ受付装置１０は、いずれかの画像形成装置５０と一体に形成されていてもよい。
【００２５】
図１には、１台のジョブ受付装置１０と複数台の画像形成装置５０を示したが、本実施の形態は、ネットワーク４に直接又は間接的に接続される装置の種類、台数あるいは接続形態等はこれに限定されるものではない。また、ネットワーク４も便宜的に１つで構成しているが、ジョブ受付装置１０及び画像形成装置５０がクラウド２に存在する計算資源６とデータ通信が可能であれば、ネットワーク４の接続形態も図１に示した例に限定されるものではない。
【００２６】
図２は、本実施の形態における画像形成装置５０のハードウェア構成の一例を示した図である。画像形成装置５０は、上記の通り各種機能を搭載した装置であり、コンピュータを内蔵した装置である。図２において、ＣＰＵ５１は、ＲＯＭ５６に格納されたプログラムにしたがってＩＩＴ（Ｉｍａｇｅ  Ｉｎｐｕｔ  Ｔｅｒｍｉｎａｌ）５３やＩＯＴ（Ｉｍａｇｅ  Ｏｕｔｐｕｔ  Ｔｅｒｍｉｎａｌ）５４等本装置に搭載された各種機構の動作制御を行う。ＩＩＴ５３は、画像入力装置のことをいい、ユーザがセットした原稿を読み取り、電子データとしてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５８等に蓄積する。ＩＩＴ５３は、例えばスキャナにより実現してもよい。ＩＯＴ５４は、画像出力装置のことをいい、ＣＰＵ５１で実行される制御プログラムからの指示に従い出力用紙上に画像を印字する。ＩＯＴ５４は、例えばプリンタにより実現してもよい。アドレスデータバス６０は、ＣＰＵ５１の制御対象となる各種機構と接続してデータの通信を行う。操作パネル５２は、ユーザからの指示の受け付け、情報の表示を行う。ＩＰＳ（Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ）５５は、画像処理装置のことをいい、受け付けられたジョブに含まれる画像処理を実行する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５６は、本装置の制御や電子データの暗号、電子データの送受信に関する各種プログラムが格納されている。各種プログラムが実行されることで後述する各構成要素が所定の処理機能を発揮する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５７は、プログラム実行時のワークメモリや電子データ送受信時の通信バッファとして利用される。本実施の形態では、ジョブキューとして利用してもよい。ＨＤＤ５８は、ＩＩＴ５３を使用して読み取った電子文書などを格納する。ネットワークインタフェース（Ｉ／Ｆ）５９は、ネットワーク４を接続し、ジョブ受付装置１０とのデータ通信、計算資源６から送られてくるサブジョブの実行結果の受信などに利用される。
【００２７】
図３は、本実施の形態におけるジョブ受付装置１０を形成するサーバコンピュータのハードウェア構成図である。本実施の形態においてジョブ受付装置１０を形成するサーバコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図３に示したようにＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ（ＨＤＤ）１４を接続したＨＤＤコントローラ１５、入力手段として設けられたマウス１６とキーボード１７、及び表示装置として設けられたディスプレイ１８をそれぞれ接続する入出力コントローラ１９、通信手段として設けられたネットワークコントローラ２０を内部バス２１に接続して構成される。
【００２８】
なお、図１及び図２では、ジョブ受付装置１０と画像形成装置５０とを別装置として図示したが、ジョブ受付装置１０を画像形成装置５０に組み込んで構成されている場合、入力手段及び表示装置として操作パネル５２が用いられる。
【００２９】
図４は、本実施の形態におけるジョブ分散処理システムのブロック構成図である。
【００３０】
本実施の形態におけるジョブ受付装置１０は、ジョブ受付部３１、ジョブ分割部３２、サブジョブ実行先決定部３３、実行指示部３４、計算資源情報管理部３５、ファイルサイズ算出部３６、計算資源情報記憶部３７及びファイルサイズ算出用データ記憶部３８を有している。ジョブ受付部３１は、ジョブの実行要求を受け付ける。ジョブ分割部３２は、受け付けたジョブをＮ（Ｎは２以上の整数）個の複数のサブジョブに分割する。サブジョブ実行先決定部３３は、分割した各サブジョブに対し、当該サブジョブを実行する装置、つまり画像形成装置５０又は計算資源６を決定する。また、サブジョブ実行先決定部３３は、サブジョブの実行先を決定する過程において、計算資源情報記憶部３７に記憶された情報を参照することによって、１番目から（Ｎ−１）番目に実行される各サブジョブに対し、当該各サブジョブを実行する予定の計算資源６を割り当てる。この計算資源６の割り当てを、本実施の形態では、「仮決定」と称している。実行指示部３４は、サブジョブの実行先が決定されると、実行先となる画像形成装置５０又は計算資源６に、該当するサブジョブを実行順に従って実行することを指示する。計算資源情報記憶部３７には、計算資源６の処理能力に関する情報（以下、「計算資源情報」）が記憶される。この計算資源情報は、計算資源６の処理能力を把握するために必要な情報であって、例えば、各計算資源６のハードウェア構成、性能、インストールされているアプリケーション等ソフトウェアに関する情報が含まれる。更に、計算資源情報には、計算資源６間のデータ転送速度に関する情報、例えば単位時間当たりの最大データ転送量などの情報が記憶されている。計算資源情報管理部３５は、クラウド２に含まれる各計算資源６の計算資源情報を収集し、計算資源情報記憶部３７に登録する。また、計算資源情報記憶部３７に記憶した計算資源情報をリアルタイムに、あるいは定期的に更新するなどの情報管理を行う。ファイルサイズ算出部３６は、ファイルサイズ算出用データ記憶部３８に登録されている情報を参照して、まだ実行されていない各サブジョブが実行されたときに実行結果として得られるデータのファイルサイズを算出する。
【００３１】
ジョブ受付装置１０における各構成要素３１〜３６は、ジョブ受付装置１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、各記憶部３７，３８は、ジョブ受付装置１０に搭載されたＨＤＤ１４にて実現される。
【００３２】
図５は、本実施の形態におけるファイルサイズ算出用データ記憶部３８に登録されているファイルサイズ算出用データの一例を示した図である。図５には、いずれかのサブジョブで実行される処理を特定する処理内容、直前のサブジョブの実行結果として受け取るデータに関する情報として、色に関する情報を示す入力色、エンコードを示す入力エンコード、ファイルサイズを示す入力ファイルサイズが示されている。更に、本処理の実行結果として直後のサブジョブに渡すデータに関する情報として、出力するデータの色に関する情報を示す出力色、エンコードを示す出力エンコード、ファイルサイズを示す出力ファイルサイズが示されている。
【００３３】
本実施の形態における画像形成装置５０は、実行サブジョブ決定部６１、サブジョブ実行部６２、現況監視部６３、占有可能時間設定部６４及び転送速度測定部６５を有している。実行要求されたジョブが印刷ジョブの場合、画像形成装置５０は、複数に分割され生成されたサブジョブのうち、サブジョブの実行順上、印刷処理を含むサブジョブであって、最後に実行されるＮ番目のサブジョブを少なくとも実行するが、実行サブジョブ決定部６１は、ジョブ受付装置１０のサブジョブ実行先決定部３３と連携動作して、現在の画像形成装置５０の現在の状況、すなわち画像形成装置５０の現在の使用状態に関する情報等を参照し、画像形成装置５０の処理能力上、画像形成装置５０が実行するサブジョブを決定する。また、実行サブジョブ決定部６１は、画像形成装置５０が実行するサブジョブを決定する過程において、画像形成装置５０の現在の利用状況と当該ジョブの実行に要する画像形成装置５０の資源から、画像形成装置５０の処理能力上、画像形成装置５０にＮ番目のサブジョブとは異なるサブジョブを実行する余力があるかないかの判断を行う。サブジョブ実行部６２は、画像形成装置５０が実行すると決定されたサブジョブを実行する。サブジョブ実行部６２に含まれる印刷処理部６６は、Ｎ番目のサブジョブに含まれる印刷処理を実行する。現況監視部６３は、画像形成装置５０における現在のハードウェア及びソフトウェア構成の使用状況を収集し、実行サブジョブ決定部６１に収集した情報を提供する。占有可能時間設定部６４は、１つのジョブに含まれる１又は複数のサブジョブの実行に画像形成装置５０を占有可能な最大時間長を示す占有可能時間を設定する。例えば、画像形成装置５０が複数のユーザによって共用される場合、１つのジョブ（１人のユーザ）によって画像形成装置５０が長時間占有されるのを避けたい場合がある。このために、本実施の形態では、占有可能時間を設定している。占有可能時間は、単一な固定値でもよいが、平日と休日、昼間と夜間などジョブが実行される時間帯に応じて異なる値を設定してもよい。転送速度測定部６５は、計算資源６との間の転送速度を測定する。
【００３４】
画像形成装置５０における各構成要素６１〜６５は、画像形成装置５０に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵ５１で動作するプログラムとの協調動作により実現される。
【００３５】
本実施の形態におけるクラウド２に含まれる各計算資源６は、ジョブ受付装置１０により割り振られ送られてきたサブジョブを実行するサブジョブ実行部７を有している。サブジョブ実行部７は、計算資源６を形成するコンピュータと、コンピュータに搭載されたＣＰＵで動作するプログラムとの協調動作により実現される。
【００３６】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵがインストールプログラムを順次実行することで各種処理が実現される。
【００３７】
図６は、本実施の形態のジョブ受付装置１０における処理を示したフローチャートである。図７は、本実施の形態の画像形成装置５０における処理を示したフローチャートである。図８は、図７に示した実行サブジョブ決定処理を示したフローチャートである。以下、これらの図を用いて本実施の形態においてジョブを受け付けてから終了するまでの処理について説明する。本実施の形態では、画像形成装置５０に印刷を実行させてジョブの実行結果として印刷物を得る印刷ジョブを実行する場合を例にして説明する。
【００３８】
ジョブ受付部３１は、ユーザからのジョブの実行要求を受け付ける（ステップ１０１）。ジョブの実行要求は、図示しないパーソナルコンピュータなどからユーザがジョブを実行させる画像形成装置５０を指定し、処理対象の電子データと共にジョブ受付装置１０へネットワーク経由で送信することで行われてもよい。あるいは、ジョブ受付装置１０が画像形成装置５０に組み込まれている場合、ユーザは、操作パネル５２を操作して所望のパラメータ等を設定し、例えばスタートボタン等を押下することによってジョブの実行要求を発するようにしてもよい。この際、原稿をＩＩＴ５３から読み取らせるようにしてもよい。
【００３９】
ジョブの実行要求が受け付けられると、ジョブ分割部３２は、受け付けられたジョブを複数のサブジョブに分割する（ステップ１０２）。一般的には、ジョブを機能単位に分割したりするが、本実施の形態では、どのように分割するかということに関しては、特に規定しない。ただ、印刷ジョブを複数のサブジョブに分割した場合、最後に実行されるサブジョブは、実行結果（印刷物）を出力する印刷処理を実行するためのサブジョブであり、画像形成装置５０が実行するサブジョブである。
【００４０】
次に、サブジョブ実行先決定部３３は、各サブジョブを、実行先として計算資源６又は画像形成装置５０に割り当てるが、この実行先を決定する処理を説明する前に、サブジョブの実行先をどのような観点に基づき決定するかと言うことについて説明する。
【００４１】
本実施の形態では、ジョブを複数のサブジョブに分割し、各サブジョブを実行順に処理していくことで、ジョブを実行する。計算資源６及び画像形成装置５０それぞれは、自装置が受け持つサブジョブを、サブジョブの実行順に従い順番に実行していくが、各装置６，５０は、サブジョブの実行が終了すると、次の装置６，５０にサブジョブを実行させるために、サブジョブの実行開始指示に加えて自装置におけるサブジョブの実行結果を渡す。つまり、ジョブの処理時間は、各装置６，５０におけるサブジョブの処理時間だけでなく、装置６，５０間のデータ転送時間を加算して求められる。
【００４２】
前述したように、本実施の形態における画像形成装置５０は、Ｎ番目のサブジョブを実行する。基本的には、計算資源６の方が画像形成装置５０より処理速度が速いので、サブジョブの実行には計算資源６を利用した方がよいと考えられる。ただ、計算資源６から画像形成装置５０へ転送されるデータ（実行結果）が多大なデータ量の場合、転送時間がより多くかかってしまうため、サブジョブの実行に要する処理時間は短くても、転送時間を考慮すると、画像形成装置５０がサブジョブを実行した方が結果として処理時間を短くできる可能性がある。このことに関し、具体例をあげて説明すると、Ｎ番目のサブジョブが印刷処理を実行する場合において、（Ｎ−１）番目のサブジョブが例えばスキュー除去処理を行う場合、（Ｎ−１）番目のサブジョブを実行した計算資源６からの実行結果となるバイナリデータのデータ転送量が多大であると、より多くのデータ転送時間がかかってしまうからである。従って、スキュー除去処理を画像形成装置５０で実行すれば、このデータ転送時間を処理時間の計算に含めなくてすむので、結果として処理時間の短縮につながる可能性がある。更に、（Ｎ−２）番目のサブジョブが例えば裏移り除去処理を行う場合、（Ｎ−２）番目のサブジョブを実行した計算資源６からの実行結果となるバイナリデータのデータ転送量が多大であると、より多くのデータ転送時間がかかってしまうので、裏移り除去処理を画像形成装置５０で実行すれば、結果として処理時間の短縮につながる可能性がある。もちろん、この場合、（Ｎ−３）番目のサブジョブの実行結果を画像形成装置５０に転送することになるので、この転送時間を考慮する必要がある。
【００４３】
すなわち、本実施の形態におけるサブジョブ実行先決定処理では、計算資源６の処理能力を活かして処理時間の短縮することと、計算資源６から画像形成装置５０へのデータ転送時間とのトレードオフを考慮しながら、ｉ（２≦ｉ≦Ｎ）番目からＮ番目のサブジョブを画像形成装置５０に実行させた方が、（ｉ−１）番目からＮ番目のサブジョブを画像形成装置５０に実行させるよりジョブの処理時間が短くなるｉを求めることで、計算資源６及び画像形成装置５０に実行させるサブジョブを決定することになる。
【００４４】
なお、データ転送時間を発生させないようにするためには、計算資源６を利用せずに画像形成装置５０が単体でジョブを実行することが考えられるが、処理能力は、一般にクラウド２を利用した方が速い。また、画像形成装置５０にＮ番目のサブジョブ以外のサブジョブを実行させるだけの余力があるかということが問題になるし、画像形成装置５０には、前述した占有可能時間が設定されている。
【００４５】
本実施の形態では、ジョブの実行に要する処理時間をより短くすることを目的としているので、仮に計算資源６と画像形成装置５０との間でサブジョブの実行結果のデータ転送が何度か行われたとしても、その方が処理時間が短縮できる可能性は論理的にはあり得る。ただ、本実施の形態では、ｉ（２≦ｉ≦Ｎ）番目からＮ番目という連続したサブジョブを画像形成装置５０に実行させれば、計算資源６から画像形成装置５０へのデータ転送は１回しか行われないので、この方がジョブの処理時間がより短くできると考え、本実施の形態においては、サブジョブを画像形成装置５０に連続して実行させる場合に着目して説明する。
【００４６】
図６を用いたサブジョブ実行先決定部３３における処理の説明に戻る。サブジョブ実行先決定部３３は、分割された各サブジョブの処理内容を解析することによって、各サブジョブに対し、当該サブジョブを実行する上で必要となるハードウェア資源やアプリケーション等のソフトウェア資源を認識する。そして、計算資源情報記憶部３７に記憶された計算資源情報には、各計算資源６に具備されているハードウェア資源やソフトウェアが含まれているので、サブジョブ実行先決定部３３は、各サブジョブの実行に必要な資源と計算資源情報と比較することにより、各サブジョブを実行できる計算資源６を選出する。この際、計算資源情報に含まれているＣＰＵの性能、メモリ量（あるいは現時点のメモリ使用量）等計算資源６の処理能力や、計算資源６間のデータ転送能力に関する情報を参照することによって、サブジョブの実行時間及び計算資源６間の転送時間が他の計算資源６に比べて短くなる計算資源６を選出する。このようにして、分割したサブジョブ１〜Ｎのうち１番目から（Ｎ−１）番目の各サブジョブに対して、当該サブジョブを実行する予定の計算資源６を仮決定する（ステップ１０３）。仮決定というのは、後述するように、画像形成装置５０で実行されることになるかもしれないサブジョブが存在するからである。
【００４７】
１番目から（Ｎ−１）番目の各サブジョブを実行する予定の計算資源６を仮決定すると、サブジョブ実行先決定部３３は、続いて、ジョブを解析することにより、例えば、ページサイズ、出力色、ページ数、文字数等Ｎ番目のサブジョブの処理に要する時間に影響を与える要因に関連する情報を生成し、画像形成装置５０に通知する（ステップ１０４）。その後、ジョブ受付装置１０は、画像形成装置５０から送られてくる情報待ちの状態に入る。
【００４８】
図７において、ステップ１０４において送信された情報を受信すると（ステップ２０１）、画像形成装置５０における実行サブジョブ決定部６１は、画像形成装置５０において実行するサブジョブを次のようにして決定する（ステップ２０２）。この実行サブジョブ決定処理に関しては、図８を用いて詳述する。
【００４９】
まず、実行サブジョブ決定部６１は、画像形成装置５０に現時点において余力があるかどうかを判断する（ステップ２０２１）。余力とは、現時点における画像形成装置５０の利用状態、例えばＣＰＵ使用率、メモリ使用量、ＨＤＤの空き容量等が、ある閾値まで達していないために、サブジョブを実行できる余裕があることをいう。ここでは、Ｎ番目のサブジョブを実行することが決まっているので、Ｎ番目のサブジョブを実行するという仮定のもと、ＨＤＤの空き容量等に空きがあるかどうかを解析する必要がある。詳細には、ステップ２０１においてジョブ受付装置１０から受け取った情報及び現況監視部６３により収集された画像形成装置５０の現在の状態を示す情報を解析して、Ｎ番目の印刷処理を含むサブジョブとは異なる処理を行えるかどうかを判断する。例えば、画像形成装置５０の現在の状態と、ＣＰＵ使用率が何％以下、メモリ使用量が何％以下、ジョブキューの登録数がいくつ以下、などの予め設定された閾値とを比較し、その比較の結果、全ての指標が閾値以下となった場合、あるいは閾値以下となった指標の数又は割合によって余力があるかないかを判断するようにしてもよい。
【００５０】
余力がないと判断した場合（ステップ２０２２でＮ）、実行サブジョブ決定部６１は、余力がない旨をジョブ受付装置１０に通知する（ステップ２０２３）。
【００５１】
一方、余力があると判断した場合（ステップ２０２２でＹ）、この時点では画像形成装置５０はＮ番目のサブジョブのみを実行するとしているので、実行サブジョブ決定部６１は、Ｎ番目の直前に実行される（Ｎ−１）番目のサブジョブに関する情報の送信要求をジョブ受付装置１０へ送信することで当該情報の提供を要求する（ステップ２０２４）。
【００５２】
図６において、画像形成装置５０から送信されてきた情報を受信すると（ステップ１０５）、その受信した情報が情報の送信要求であった場合（ステップ１０６でＹ）、サブジョブ実行先決定部３３は、その送信要求により指定されている（Ｎ−１）番目のサブジョブに関する情報を画像形成装置５０へ送信する（ステップ１０７）。（Ｎ−１）番目のサブジョブに関する情報には、画像形成装置５０において処理時間の算出に必要が情報が含まれている。具体的には、ＣＰＵ使用率、メモリ使用量等である。更に、必要な情報の一つに（Ｎ−１）番目のサブジョブが実行されたことにより生成される実行結果の大きさがある。なお、本実施の形態では、ファイル形式にて実行結果を次のサブジョブに渡すことを想定しているので、本実施の形態では、実行結果を含むデータファイルのファイルサイズを求める。なお、ファイルサイズは、サブジョブがまだ実行されていないので実測ができないため、何らかの情報をもとに計算により求める必要がある。このファイルサイズの求め方の一例を以下に示す。
【００５３】
例えば、算出対象のサブジョブが裏移り除去処理を行う場合において、裏移り除去処理に入力される処理対象データが２５００ＫＢだとすると、図５の例によると、この２５００ＫＢを挟む上から５，６レコード目のデータを用いて裏移り除去処理の実行結果（出力データ）を、２９０＋（（８５０−２９０／（３０００−１０００））×（２５００−１０００）＝７１０ＫＢと算出する。他のサブジョブに対しても同様の算出方法にて出力データを得る。なお、入力される処理対象データの大きさがファイルサイズ算出用データ記憶部３８に登録されているデータの範囲外の場合、上記のように２点間の補正ではなく外挿により求める。
【００５４】
なお、エンコードがＲａｗの場合には、ファイルサイズはページサイズ×ページ数におおよそ比例するなど、データの種類によって特性を有しているので、ファイルサイズ算出部３６は、計算の過程において、その特性を反映させた計算式を用いて出力データを算出するようにする。また、本実施の形態では、ファイルサイズ算出用データ記憶部３８にファイルサイズ算出用のデータを予め登録しているが、サブジョブを実際に行った結果、得られた出力ファイルのサイズをファイルサイズ算出用データ記憶部３８に蓄積していくことで、推定するファイルサイズの精度の向上を図るようにしてもよい。
【００５５】
図８において、ファイルサイズ等を含む（Ｎ−１）番目のサブジョブに関する情報が送られてくると、画像形成装置５０の実行サブジョブ決定部６１は、その情報を受信する（ステップ２０２５）。そして、（Ｎ−１）番目のサブジョブに関する情報を参照して、Ｎ番目及び（Ｎ−１）番目のサブジョブを画像形成装置５０で実行した場合の処理時間を算出する。このＮ番目及び（Ｎ−１）番目のサブジョブの実行に要する処理時間が占有可能時間を超えた場合（ステップ２０２７でＹ）、１つのジョブに含まれるサブジョブによって画像形成装置５０を占有可能時間以上占有させないようにするために、（Ｎ−１）番目のサブジョブの実行はできないと判断する。この結果、実行サブジョブ決定部６１は、画像形成装置５０で実行するサブジョブは、Ｎ番目のサブジョブのみと決定する（ステップ２０２９）。そして、実行サブジョブ決定部６１は、画像形成装置５０では、Ｎ番目のサブジョブのみを実行するという旨をジョブ受付装置１０に通知する（ステップ２０３０）。
【００５６】
一方、Ｎ番目及び（Ｎ−１）番目のサブジョブの実行に要する処理時間が占有可能時間を超えていない場合（ステップ２０２７でＮ）、続いて、（Ｎ−１）番目のサブジョブを画像形成装置５０で実行することによりジョブ全体の処理時間は短縮されるかどうかについて調べる。この処理の詳細について、図９を用いて説明する。
【００５７】
図９Ａ〜図９Ｃは、クラウド２又は画像形成装置５０にサブジョブを分配した後の状態を示した概念図である。図９Ａ〜図９Ｃにおいて、“ＳＪｉ”はサブジョブ、“ｃｐｔｉ”は当該計算資源６において当該サブジョブの実行に要する処理時間（実行時間）、“ｔｔｉ”は計算資源６から画像形成装置５０へ、当該計算資源６によりサブジョブが実行されたことにより得られた実行結果（出力データ）の転送処理に要する時間（転送時間）、“ｉｐｔｉ”は画像形成装置５０において当該サブジョブの実行に要する処理時間（実行時間）、をそれぞれ示す。また、各項目の最後尾に含まれる変数“ｉ”は、サブジョブ等の各項目を識別する番号であり、サブジョブの実行順に従って１から順に割り振られる。図９では、Ｎ＝５のサブジョブを例にして説明するので、ｉの最大値は５である。なお、ここでは、まだ実際にサブジョブの処理もデータ転送も行われてないので、ここで用いる時間というのは、計算により求められた推定の処理時間であって各処理の実行に要するであろう予定の時間である。処理時間に関して、画像形成装置５０側で実行される処理時間は、ステップ２０２６で算出済みである。計算資源６側でのサブジョブの実行時間は、ステップ２０２５においてジョブ受付装置１０から取得してもよい。転送時間は、ジョブ受付装置１０から取得したファイルサイズと、単位当たりの転送測度で算出できる。転送速度測定部６５は、該当する計算資源６と通信を行うことで実測することで単位当たりの転送測度を求める。
【００５８】
本実施の形態では、変数ｉ（ｉは正整数）の値をＮから順次小さくしていきながら、ジョブ全体の処理時間が短縮されるかどうかについて調べる。まず、図９Ａは、画像形成装置５０側で５（ｉ＝Ｎ）番目のサブジョブＳＪ５のみを実行する場合である。図９Ｂは、画像形成装置５０に余力があるため４（ｉ＝Ｎ−１）番目のサブジョブＳＪ４も画像形成装置５０で実行してみることを試みる場合の例である。図９Ａと図９Ｂとを比較してみると、図９Ａに示したサブジョブＳＪ４の実行時間ｃｐｔ４及びＳＪ４の実行結果の転送時間ｔｔ４と、図９Ｂに示した３（ｉ＝Ｎ−２）番目のサブジョブＳＪ３の実行結果の転送時間ｔｔ３及びＳＪ４の実行時間ｉｐｔ４とが、それぞれの処理時間の差に現れてくる。なお、ＳＪ１〜３，５の各処理時間に関しては、図９Ａと図９Ｂに差異は生じないので比較する対象に含める必要はないので省略して説明する。
【００５９】
ここで、図９Ａの場合の処理時間はｃｐｔ４＋ｔｔ４、図９Ｂの場合の処理時間はｔｔ３＋ｉｐｔ４なので、ｃｐｔ４＋ｔｔ４＞ｔｔ３＋ｉｐｔ４という関係が成り立てば、処理時間の短縮が見込めることになる。
【００６０】
すなわち、ステップ２０２７においては、ｉｐｔ４＋ｉｐｔ５で表される画像形成装置５０における処理時間が占有可能時間という閾値ＴＨに対し、ｉｐｔ４＋ｉｐｔ５＜ＴＨが成り立ち、かつステップ２０２８においてｃｐｔ４＋ｔｔ４＞ｔｔ３＋ｉｐｔ４が成り立てば、４（ｉ＝Ｎ−１）番目のサブジョブを画像形成装置５０で実行しても画像形成装置５０を所定の占有可能時間を超えて占有することにはならず、かつジョブの処理時間の短縮も見込めるとして、実行サブジョブ決定部６１は、４（ｉ＝Ｎ−１）番目のサブジョブを画像形成装置５０で実行すると決定する。
【００６１】
このように、（Ｎ−１）番目のサブジョブを画像形成装置５０で実行することで処理時間が短縮できると判断した場合（ステップ２０２８でＹ）、次の直前の（Ｎ−２）番目のサブジョブを画像形成装置５０で実行することが可能かどうかを判断するために、実行サブジョブ決定部６１は、（Ｎ−１）番目の直前の（Ｎ−２）番目のサブジョブに関する情報の送信要求をジョブ受付装置１０へ送信することで当該情報の提供を要求する（ステップ２０２４）。
【００６２】
これ以降は、前述した処理（図６のステップ１０６でＹ，１０７及び図８のステップ２０２４〜２０２８）を繰り返すことになるので詳細な処理の説明は省略するが、図９Ｂと図９Ｃを用いてステップ２０２７，２０２８の処理について確認する。
【００６３】
図９Ｃは、更に３（ｉ＝Ｎ−２）番目のサブジョブＳＪ３も画像形成装置５０で実行してみることを試みる場合の例である。図９Ｂと図９Ｃとを比較してみると、図９Ｂに示したＳＪ３の実行時間ｃｐｔ３及び３番目のサブジョブＳＪ３の実行結果の転送時間ｔｔ３と、図９Ｃに示した２（ｉ＝Ｎ−３）番目のサブジョブＳＪ２の実行結果の転送時間ｔｔ２とＳＪ３の実行時間ｉｐｔ３とが、それぞれの処理時間の差に現れてくる。なお、ＳＪ１，２，４，５の各処理時間に関しては、図９Ｂと図９Ｃに差異は生じないので比較する対象に含める必要はないので省略して説明する。
【００６４】
ここで、ｉｐｔ３＋ｉｐｔ４＋ｉｐｔ５＜ＴＨが成り立っているとした場合（ステップ２０２７でＮ）、図９Ｂの場合の処理時間はｃｐｔ３＋ｔｔ３、図９Ｃの場合の処理時間はｔｔ２＋ｉｐｔ３なので、ｃｐｔ３＋ｔｔ３＞ｔｔ２＋ｉｐｔ３という関係が成り立てば、処理時間の短縮が見込めると判断し（ステップ２０２８でＹ）、ステップ２０２４に戻り、次の直前の（Ｎ−３）番目のサブジョブを画像形成装置５０で実行することが可能かどうかの判断を行う処理に移行する。
【００６５】
すなわち、（ｉ−１）（２≦ｉ≦Ｎ）番目のサブジョブを画像形成装置５０で実行することで占有可能時間を超えてしまうか（ステップ２０２７でＹ）、ｃｐｔ３＋ｔｔ３＜ｔｔ２＋ｉｐｔ３とはじめて処理時間が短縮できない状況になることが判明した場合（ステップ２０２８でＮ）、実行サブジョブ決定部６１は、（ｉ−１）番目のサブジョブは画像形成装置５０で実行せず、画像形成装置５０で実行するサブジョブは、ｉ番目からＮ番目のサブジョブと決定する（ステップ２０２９）。このようにして、変数ｉが特定されると、画像形成装置５０で実行するサブジョブｉ番目からＮ番目であることをジョブ受付装置１０に通知する（ステップ２０３０）。
【００６６】
図６において、画像形成装置５０から送信されてきた情報を受信すると（ステップ１０５）、その受信した情報が、図８のステップ２０３０の画像形成装置５０で実行するサブジョブはｉ番目からＮ番目を示す通知か、図８のステップ２０２３における余力のない旨の通知の場合（ステップ１０６でＮ）、サブジョブ実行先決定部３３は、この画像形成装置５０からの通知によって各サブジョブの実行先を決定する（ステップ１０８）。具体的には、図８のステップ２０２３の余力のない旨の通知の場合、１番目から（Ｎ−１）番目までのサブジョブをクラウド２に、Ｎ番目のサブジョブを画像形成装置５０に、それぞれ実行させると決定する。つまり、図６のステップ１０３において仮決定した実行先がそのまま変更されることなく採用されることになる。図８のステップ２０３０のｉ番目からＮ番目の実行を示す通知の場合、１番目から（ｉ−１）番目までのサブジョブをクラウド２に、ｉ番目からＮ番目までのサブジョブを画像形成装置５０に、それぞれ実行させると決定する。つまり、図６のステップ１０３において仮決定した実行先のうちｉ番目から（Ｎ−１）番目までのサブジョブの実行先は、いずれかの計算資源６から画像形成装置５０に変更されたと言うことになる。
【００６７】
以上のようにして、各サブジョブの実行先が決定されると、実行指示部３４は、該当する各計算資源６及び画像形成装置５０に、処理対象とするサブジョブの実行を指示する（ステップ１０９）。ただ、サブジョブは１番目から順番に実行されるので、２番目以降のサブジョブを受け持つ計算資源６又は画像形成装置５０は、直前に実行される計算資源６から実行開始の指示と実行結果を受けてから当該サブジョブの実行を開始する。
【００６８】
クラウド２において計算資源６のサブジョブ実行部７によりサブジョブが順番に実行され、最後の計算資源６の処理が終了すると、その計算資源６は、画像形成装置５０にサブジョブの実行を指示する。画像形成装置５０は、ジョブ受付装置１０からの指示を受けた後（ステップ２０３）、計算資源６からのサブジョブの実行開始指示を受信すると（ステップ２０４）、サブジョブ実行部６２にサブジョブを実行させる（ステップ２０５）。そして、印刷処理部６６が、最後のＮ番目の印刷処理を含むサブジョブを実行することにより、ジョブの実行結果として印刷物が出力される。
【００６９】
以上のようにして、Ｎ番目のサブジョブの実行が終了すること、サブジョブ実行部６２は、サブジョブの実行の終了をジョブ受付装置１０に通知する（ステップ２０６）。
【００７０】
図６において、サブジョブの実行の終了の通知を受信すると（ステップ１１０）、ジョブ受付装置１０は、受け付けたジョブの終了を要求元のユーザへ通知する（ステップ１１１）。
【００７１】
本実施の形態によれば、以上のようにして、ジョブを複数のサブジョブに分割し、その分割した各サブジョブをクラウド２又は画像形成装置５０に配分して実行させる。
【符号の説明】
【００７２】
２  クラウド、４  ネットワーク、６  計算資源、７  サブジョブ実行部、１０  ジョブ受付装置、１１，５１  ＣＰＵ、１２，５６  ＲＯＭ、１３，５７  ＲＡＭ、１４，５８  ハードディスクドライブ（ＨＤＤ）、１５  ＨＤＤコントローラ、１６  マウス、１７  キーボード、１８  ディスプレイ、１９  入出力コントローラ、２０  ネットワークコントローラ、２１  内部バス、３１  ジョブ受付部、３２  ジョブ分割部、３３  サブジョブ実行先決定部、３４  実行指示部、３５  計算資源情報管理部、３６  ファイルサイズ算出部、３７  計算資源情報記憶部、３８  ファイルサイズ算出用データ記憶部、５０  画像形成装置、５２  操作パネル、５３  ＩＩＴ、５４  ＩＯＴ、５５  ＩＰＳ、５９  ネットワークインタフェース（Ｉ／Ｆ）、６０  アドレスデータバス、６１  実行サブジョブ決定部、６２  サブジョブ実行部、６３  現況監視部、６４  占有可能時間設定部、６５  転送速度測定部、６６  印刷処理部。
【図１】
0005598229.tif 000002
【図２】
0005598229.tif 000003
【図３】
0005598229.tif 000004
【図４】
0005598229.tif 000005
【図５】
0005598229.tif 000006
【図６】
0005598229.tif 000007
【図７】
0005598229.tif 000008
【図８】
0005598229.tif 000009
【図９Ａ】
0005598229.tif 000010
【図９Ｂ】
0005598229.tif 000011
【図９Ｃ】
0005598229.tif 000012