(57)【要約】【課題】データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼する。【解決手段】受け付けたジョブを分割して形成された各部分ジョブに、当該部分ジョブを実行可能なデータ処理装置を割り当てる部分ジョブ割当処理部２４と、部分ジョブの実行を当該データ処理装置に指示する部分ジョブ実行指示部２６とを有する。部分ジョブ割当処理部２４は、データ処理装置において設定した終了期限までに実行が終了しなかった部分ジョブに対し、当該実行未終了の部分ジョブが割り当てられたデータ処理装置を除く、当該実行未終了の部分ジョブを実行可能なデータ処理装置を割り当て、部分ジョブ実行指示部２６は、当該実行未終了の部分ジョブの実行指示を、再割り当てされたデータ処理装置に対し送信する。【選択図】図４
2012083991.tif 000002
【特許請求の範囲】
【請求項１】
ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするジョブ実行管理装置。
【請求項２】
前記再割当手段は、前記実行未終了の部分ジョブが割り当てられた前記データ処理装置に対しても、当該実行未終了の部分ジョブを再度割り当てることを特徴とする請求項１に記載のジョブ実行管理装置。
【請求項３】
前記再割当手段は、前記実行未終了の部分ジョブを実行可能な前記データ処理装置が複数存在する場合、前記実行未終了の部分ジョブに、予め設定された選択基準に従い一の前記データ処理装置を選択して割り当てることを特徴とする請求項１に記載のジョブ実行管理装置。
【請求項４】
前記再割当手段は、前記実行未終了の部分ジョブに、当該部分ジョブを実行可能な複数のデータ処理装置を割り当てることを特徴とする請求項１に記載のジョブ実行管理装置。
【請求項５】
前記再割当手段が前記実行未終了の部分ジョブに複数の前記データ処理装置を割り当てた場合において、当該実行未終了の部分ジョブの正常終了が当該複数のデータ処理装置のいずれかから通知された場合、前記実行未終了の部分ジョブを割り当てた複数の前記データ処理装置のうち当該通知したデータ処理装置以外のデータ処理装置に対して当該実行未終了の部分ジョブの実行の中止を指示する中止指示手段を有することを特徴とする請求項４に記載のジョブ実行管理装置。
【請求項６】
ジョブの実行要求を受け付ける受付手段と、
受け付けたジョブを分割して複数の部分ジョブを形成する形成手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
形成した複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、前記データ処理装置が割り当てられた部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするジョブ実行装置。
【請求項７】
受け付けたジョブを複数に分割して形成した複数の部分ジョブの全部又は当の一部を実行するジョブ実行装置と、
ジョブの実行を管理するジョブ実行管理装置と、
前記ジョブ実行装置の代わりに１又は複数の部分ジョブを実行する複数のデータ処理装置と、
を有し、
前記ジョブ実行装置は、
ジョブの実行要求を受け付ける実行要求受付手段と、
受け付けたジョブを複数に分割して複数の部分ジョブを形成する形成手段と、
部分ジョブの実行を、いずれかの前記データ処理装置へ割り当てる割当要求を前記ジョブ実行管理装置へ送信する割当要求送信手段と、
前記複数の部分ジョブの実行結果から前記ジョブの実行結果を生成し、ジョブの実行要求元へ返信する返信手段と、
を有し、
前記ジョブ実行管理装置は、
前記ジョブ実行装置から送られてくる割当要求を受け付ける割当要求受付手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記データ処理装置からの部分ジョブの実行の終了通知を受信する受信手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示し、
前記データ処理装置は、
前記ジョブ実行管理装置からの実行指示に従い、割り当てられた部分ジョブを実行する実行手段と、
部分ジョブの実行が終了したときに当該部分ジョブの実行の終了通知を前記ジョブ実行管理装置へ送信する終了通知送信手段と、
部分ジョブの実行結果を直接又は間接的に前記ジョブ実行装置へ送信する実行結果送信手段と、
を有する、
ことを特徴とするジョブ実行システム。
【請求項８】
コンピュータを、
ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段、
として機能させ、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ実行管理装置、ジョブ実行装置、ジョブ実行システム及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ネットワークに接続されたコンピュータ機器の状態および能力を管理し、処理するタスクを分析した結果に基づいて分散処理させるコンピュータ機器を選定し、当該タスクを分割して生成した複数のジョブを選定したコンピュータ機器に送信し、各コンピュータ機器による処理結果を受信する技術が記載されている。
【０００３】
特許文献２には、グリッドコンピューティングによる負荷分散システム（以下、グリッドと記す）に画像処理装置がジョブを依頼するときに、ジョブの有効時間や当該グリッドへのジョブ再依頼回数などを設定し、有効時間内に当該グリッドから終了報告がなかったジョブを再依頼、またはキャンセルする技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３５２６９９号公報
【特許文献２】特開２００６−２５２１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るジョブ実行管理装置は、ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【０００７】
また、前記再割当手段は、前記実行未終了の部分ジョブが割り当てられた前記データ処理装置に対しても、当該実行未終了の部分ジョブを再度割り当てることを特徴とする。
【０００８】
また、前記再割当手段は、前記実行未終了の部分ジョブを実行可能な前記データ処理装置が複数存在する場合、前記実行未終了の部分ジョブに、予め設定された選択基準に従い一の前記データ処理装置を選択して割り当てることを特徴とする。
【０００９】
また、前記再割当手段は、前記実行未終了の部分ジョブに、当該部分ジョブを実行可能な複数のデータ処理装置を割り当てることを特徴とする。
【００１０】
また、前記再割当手段が前記実行未終了の部分ジョブに複数の前記データ処理装置を割り当てた場合において、当該実行未終了の部分ジョブの正常終了が当該複数のデータ処理装置のいずれかから通知された場合、前記実行未終了の部分ジョブを割り当てた複数の前記データ処理装置のうち当該通知したデータ処理装置以外のデータ処理装置に対して当該実行未終了の部分ジョブの実行の中止を指示する中止指示手段を有することを特徴とする。
【００１１】
本発明に係るジョブ実行装置は、ジョブの実行要求を受け付ける受付手段と、受け付けたジョブを分割して複数の部分ジョブを形成する形成手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、形成した複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、前記データ処理装置が割り当てられた部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【００１２】
本発明に係るジョブ実行システムは、受け付けたジョブを複数に分割して形成した複数の部分ジョブの全部又は当の一部を実行するジョブ実行装置と、ジョブの実行を管理するジョブ実行管理装置と、前記ジョブ実行装置の代わりに１又は複数の部分ジョブを実行する複数のデータ処理装置と、を有し、前記ジョブ実行装置は、ジョブの実行要求を受け付ける実行要求受付手段と、受け付けたジョブを複数に分割して複数の部分ジョブを形成する形成手段と、部分ジョブの実行を、いずれかの前記データ処理装置へ割り当てる割当要求を前記ジョブ実行管理装置へ送信する割当要求送信手段と、前記複数の部分ジョブの実行結果から前記ジョブの実行結果を生成し、ジョブの実行要求元へ返信する返信手段と、を有し、前記ジョブ実行管理装置は、前記ジョブ実行装置から送られてくる割当要求を受け付ける割当要求受付手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記データ処理装置からの部分ジョブの実行の終了通知を受信する受信手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示し、前記データ処理装置は、前記ジョブ実行管理装置からの実行指示に従い、割り当てられた部分ジョブを実行する実行手段と、部分ジョブの実行が終了したときに当該部分ジョブの実行の終了通知を前記ジョブ実行管理装置へ送信する終了通知送信手段と、部分ジョブの実行結果を直接又は間接的に前記ジョブ実行装置へ送信する実行結果送信手段と、を有することを特徴とする。
【００１３】
本発明に係るプログラムは、コンピュータを、ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも１つの前記データ処理装置を割り当てる再割当手段、として機能させ、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【発明の効果】
【００１４】
請求項１記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【００１５】
請求項２記載の発明によれば、期限内に実行結果が得られなかったデータ処理装置に対して、部分ジョブの実行を再度試みることができる。
【００１６】
請求項３記載の発明によれば、実行可能な他のデータ処理装置の中から一のデータ処理装置を選出することができる。
【００１７】
請求項４記載の発明によれば、期限内に実行結果が得られなかった部分ジョブの実行結果を、より確実に得ることができる。
【００１８】
請求項５記載の発明によれば、正常終了を通知したデータ処理装置以外のデータ処理装置に、無駄な部分ジョブの処理を実行させずにすむ。
【００１９】
請求項６記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【００２０】
請求項７記載の発明によれば、必要な情報をジョブ実行管理装置に一元管理させる構成にて、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【００２１】
請求項８記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態において「ジョブ」と「部分ジョブ」の関係を説明するための図である。
【図２】本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。
【図３】実施の形態１におけるジョブ実行装置を形成するコンピュータのハードウェア構成図である。
【図４】実施の形態１におけるジョブ実行装置のブロック構成図である。
【図５】実施の形態１における装置機能情報記憶部に記憶された装置機能情報のデータ構成の一例を示した図である。
【図６】実施の形態１における割当情報記憶部に記憶された割当情報のデータ構成の一例を示した図である。
【図７】実施の形態におけるジョブ実行装置の、部分ジョブをデータ処理装置に割り当てて実行指示を出すまでの処理を示したフローチャートである。
【図８】実施の形態１におけるジョブ実行装置の、部分ジョブの実行を監視する処理を示したフローチャートである。
【図９】実施の形態１におけるジョブ実行装置の、未終了の部分ジョブをデータ処理装置に再度割り当てて実行指示を出すと共に部分ジョブの実行を監視する処理を示したフローチャートである。
【図１０】実施の形態１において実施される再割当処理を説明するために用いる図である。
【図１１】実施の形態１において再割当処理が実施された後の割当情報記憶部に記憶された割当情報のデータ構成の一例を示した図である。
【図１２】実施の形態２におけるジョブ実行システムのブロック構成図である。
【発明を実施するための形態】
【００２３】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００２４】
以下の説明において、「ジョブ」とは、ソフトウェアやハードウェアを用いて行われる何らかの情報処理によって提供される機能を用いた処理の実行単位を意味しており、例えば、多機能複写機におけるコピー機能、プリント機能、ファクシミリ送信機能等が利用されて実行される処理が該当する。このような機能は、「サービス」あるいは「タスク」と呼ばれることもある。
【００２５】
図１は、「ジョブ」と「部分ジョブ」の関係を説明するための図である。図１に示すジョブは、特に５ページの文書をプリント出力するジョブを示している。各ページは文字部分と絵柄部分が混在して配置されており、一般的にはページ記述言語（ＰＤＬ）で表記されている。５ページ中１〜４ページの文字部分は日本文で記載され、３ページの文字部分は英文で記載されている様子が示されている。単に「ジョブ」という語句を用いる場合は、ＰＤＬで表記された５ページの文書データを、各ページを表現するＰＤＬを解釈して画像データに変換し、インクジェットプリンタのようなプリンタ装置を用いて、画像データを記録紙上に可視化して固定する一連の処理を意味する。部分ジョブは、ジョブが複数に分割されることにより形成される。「部分ジョブ」という語句を用いる場合は、５ページのうちの任意のページをプリント処理する場合や、任意のページを構成する文字部分と絵柄部分をそれぞれ別個に処理する場合、例えば、出力プリンタ装置が中間調を表現するのに適切な網点になるように絵柄部分を変換処理する場合、あるいは英文表記される文字部分を含む３ページ目を日本語に翻訳してからプリント処理する場合などのように、「ジョブ」の一部分に係る処理を意味している。
【００２６】
実施の形態１．
図２は、本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。図２には、パーソナルコンピュータ（ＰＣ）２とジョブ実行装置１０と、クラウド４とがネットワーク６に接続された構成が示されている。本実施の形態におけるジョブ実行装置１０は、ＰＣ２からの要求に応じてジョブ又はその一部を実行する。クラウド４は、クラウド・コンピューティングを省略した呼称であり、複数のデータ処理装置４０が含まれている。各データ処理装置４０は、１又は複数のサービス処理機能が搭載される。本実施の形態で取り扱うジョブは、文字絵柄分離、ＯＣＲ、翻訳等の１又は複数のサービス処理機能の組み合わせにより実行される。データ処理装置４０は、ジョブを受け付けたジョブ実行装置１０からの指示に従い、１又は複数のサービス処理を実行する。なお、図２には、１台のＰＣ２と１台のジョブ実行装置１０とが示されているが、各装置の台数はこれに限られるものではない。
【００２７】
図３は、本実施の形態におけるジョブ実行装置１０を形成するコンピュータのハードウェア構成図である。本実施の形態におけるコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図３に示したようにＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、サービス処理機能を実現するソフトウェアなどを格納するハードディスクドライブ（ＨＤＤ）１４を接続したＨＤＤコントローラ１５、入力手段として設けられたマウス１６とキーボード１７、及び表示装置として設けられたディスプレイ１８をそれぞれ接続する入出力コントローラ１９、通信手段として設けられたネットワークコントローラ２０を内部バス９に接続して構成される。なお、その他にもスキャナやプリンタ等を接続して構成してもよい。あるいは、スキャナ機能、印刷機能等複数の機能が搭載される画像形成装置によりジョブ実行装置１０を形成してもよい。なお、画像形成装置には、前述した構成のコンピュータが搭載され、更に操作パネル、スキャナ、プリンタ等が搭載されている。
【００２８】
データ処理装置４０は、従前から存在するコンピュータの汎用的なハードウェア構成で実現してよく、つまり図３に示したハードウェア構成のコンピュータで構成してもよい。
【００２９】
図４は、本実施の形態におけるジョブ実行装置１０のブロック構成図である。本実施の形態におけるジョブ実行装置１０は、通信処理部２１、ジョブ受付部２２、ジョブ分割処理部２３、部分ジョブ割当処理部２４、ジョブ実行部２５、部分ジョブ実行指示部２６、時間監視部２７、実行結果受信部２８、ジョブ統合処理部２９、実行制御部３０、装置機能情報記憶部３１及び割当情報記憶部３２を有している。通信処理部２１は、ＰＣ２やクラウド４との間で通信を行い、また、受信したデータの内容によってそのデータをジョブ受付部２２又は実行結果受信部２８に振り分ける。ジョブ受付部２２は、ＰＣ２から送られてきたジョブの実行要求を受け付ける。なお、ジョブ実行装置１０が画像形成装置で実現されている場合、操作パネルからの入力によりジョブを受け付けるようにしてもよい。ジョブ分割処理部２３は、実行要求のあったジョブを分割すべきかどうかを判断し、分割すべきと判断したときは、ジョブを分割して複数の部分ジョブを形成する分割処理を実行する。分割処理すべきかどうかの判断は、ジョブ実行装置１０では実行することができない機能をジョブを実行する際に必要とするかどうか、例えば、ＰＤＬを解析して得られるテキストデータを、他国語に翻訳するための日英相互翻訳機能を必要とするかどうかを調べることによって判断する。このように、ジョブ実行装置１０では実行できない機能を含むページが検出されたときは、係るページを部分ジョブとして抜き出すことによって部分ジョブを生成する。ジョブ分割処理部２３は、このようにしてジョブを複数の部分ジョブに分割するが、部分ジョブへの分割が不要と判断したときには分割処理を行わない。部分ジョブ割当処理部２４は、形成した複数の部分ジョブそれぞれに対し、装置機能情報記憶部３１に登録されている装置機能情報を参照することにより当該部分ジョブを実行可能なデータ処理装置４０を割り当てる割当処理を実行する。もちろん、ジョブ実行装置１０で実行可能な部分ジョブは、ジョブ実行装置１０に割り当ててもよい。また、部分ジョブ割当処理部２４は、部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブに、当該部分ジョブを実行可能な少なくとも１つのデータ処理装置４０を割り当てる再割当処理を実行する。部分ジョブ割当処理部２４は、更に各部分ジョブに割り当てたデータ処理装置４０を特定する情報などを割当情報記憶部３２に設定する。ジョブ実行部２５は、受け付けたジョブ又はジョブに含まれる１又は複数の部分ジョブを実行する。部分ジョブ実行指示部２６は、実行指示要求を部分ジョブが割り当てられたデータ処理装置４０へ送信することにより、当該データ処理装置４０に部分ジョブの実行を指示する。時間監視部２７は、割当情報記憶部３２に設定されている割当情報に基づいて、各データ処理装置４０から送られてくるメッセージの受信の状況やメッセージの内容から各データ処理装置４０の部分ジョブの実行状態を監視する。また、時間監視部２７は、割当情報記憶部３２に含まれる一部の情報を更新する。実行結果受信部２８は、データ処理装置４０により部分ジョブの実行が終了したときに、その旨を示すステータス情報及び実行結果を受信する。ジョブ統合処理部２９は、データ処理装置４０から受信した部分ジョブの実行結果、また自己で実行した部分ジョブが存在する場合にはその部分ジョブの実行結果を統合して、ジョブの実行結果を生成し、ジョブの実行要求元へ返す。実行制御部３０は、各構成要素２１〜２９と連携動作しながらジョブの実行制御を行う。装置機能情報記憶部３１及び割当情報記憶部３２については後述する。
【００３０】
ジョブ実行装置１０における各構成要素２１〜３０は、ジョブ実行装置１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部３１及び割当情報記憶部３２は、ＨＤＤ１４で実現してもよい。
【００３１】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵがインストールプログラムを順次実行することで各種処理が実現される。
【００３２】
図５は、本実施の形態における装置機能情報記憶部３１に記憶された装置機能情報のデータ構成の一例を示した図である。装置機能情報は、各データ処理装置４０を識別するための識別情報として設定されている「装置ＩＤ」に、「場所」、「実行可能機能」及び「得意機能」が対応付けして構成される。「場所」は、当該データ処理装置４０が存在している場所を特定するための情報であり、本実施の形態では、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が設定される。「実行可能機能」には、当該データ処理装置が実行可能な機能を特定するための情報が設定される。図５では、Ａ，Ｂ，Ｃなどと記載しているが、具体的には、例えば、日英翻訳処理、文書画像データに含まれる見出しや表罫線部分などを解析する構造解析処理等である。「得意機能」には、「実行可能機能」のうち当該データ処理装置が得意とする機能が設定される。例えば、ハードウェア・アクセラレータを内蔵することにより、高速に処理することができる機能、ライセンス許諾等により他のデータ処理装置４０では実行することができない特別な機能などが示されている。このような得意機能を示すことで、一の部分ジョブの処理を依頼するデータ処理装置４０が複数検出された場合に、どのデータ処理装置４０に優先的に部分ジョブの実行を依頼すべきかを選択する際の目安となる。
【００３３】
なお、ジョブ実行装置１０自体も、データ処理装置４０と同様に部分ジョブを実行する装置となりうるため、ジョブ実行装置１０もデータ処理装置４０と同様に装置機能情報記憶部３１を用いて搭載された機能や得意機能に関する情報を管理するようにしてもよい。
【００３４】
図６は、本実施の形態における割当情報記憶部３２に記憶された割当情報のデータ構成の一例を示した図である。割当情報には、ジョブの分割により形成された各部分ジョブを識別するための識別情報として設定されている「部分ジョブＩＤ」に、「実行指示先」、「依頼機能」、「開始時間」、「終了期限」及び「ステータス」が対応付けして構成される。「実行指示先」には、当該部分ジョブが割り当てられたデータ処理装置４０を特定するための情報が部分ジョブの送信先を特定する情報として設定される。本実施の形態では、装置機能情報記憶部３１を参照して場所に設定されているＵＲＬが設定されるが、データ処理装置４０が特定可能な情報であれば、装置ＩＤなどでもよい。「依頼機能」は、当該データ処理装置４０にて当該部分ジョブを実行する際に利用する機能を特定するための情報が設定される。「開始時間」は、当該部分ジョブの実行が開始される時間が設定される。本実施の形態では、当該データ処理装置４０が実際に当該部分ジョブの実行を開始する時間ではなく、部分ジョブ実行指示部２６が当該データ処理装置４０に対して実行指示を出すときの時間を設定する。なお、図６では、便宜的に時刻のみを示したが、年月日などの情報を付加してもよい。また、具体的な日時ではなく、例えば直前に実行される部分ジョブの実行結果を利用して実行される部分ジョブなどにおいては、直前に実行される部分ジョブの実行結果を受信してからの経過時間を示す情報等を「開始時間」に設定するようにしてもよい。「終了期限」には、当該部分ジョブの実行が終了するまでに待つ最大待ち時間が設定される。本実施の形態では、実行結果受信部２８が実行結果を受信するまでに待つ時刻が設定される。なお、図６では、便宜的に時刻のみを示したが、年月日などの情報を付加してもよい。また、具体的な日時ではなく、例えば「開始時間」からの経過時間等を「終了期限」に設定するようにしてもよい。「終了期限」を設定するのは、データ処理装置４０に依頼した部分ジョブの実行結果を待ち続けたことで、結果的に部分ジョブの全体に当たるジョブの実行が完了できなくなる状況を回避するためである。「ステータス」には、当該部分ジョブの状態を示す情報が設定される。本実施の形態では、例えば、部分ジョブ実行指示部２６が当該データ処理装置４０に対して実行指示を出す前の状態であることを表す「開始前」、部分ジョブ実行指示部２６が当該データ処理装置４０に対して実行指示を出することによって当該部分ジョブが実行中であることを表す「処理中」、当該部分ジョブの実行の正常終了が確認されたことを表す「正常終了」、終了期限に達しても正常終了の通知が当該データ処理装置４０から送られてこなかったことを表す「未終了」のいずれかが設定される。
【００３５】
図７は、本実施の形態におけるジョブ実行装置１０の、部分ジョブをデータ処理装置４０に割り当てて実行指示を出すまでの処理を示したフローチャート、図８は、本実施の形態におけるジョブ実行装置１０の、部分ジョブの実行を監視する処理を示したフローチャート、図９は、本実施の形態におけるジョブ実行装置１０の、未終了の部分ジョブをデータ処理装置４０に再度割り当てて実行指示を出すと共に部分ジョブの実行を監視する処理を示したフローチャートである。以下、これらのフローチャートを用いて本実施の形態における動作について説明する。
【００３６】
図７において、ジョブ実行装置１０におけるジョブ受付部２２がＰＣ２などからジョブの実行要求を受け付けると（ステップ１０１）、ジョブ分割処理部２３は、そのジョブをＮ（Ｎは２以上の自然数）個の部分ジョブに分割する（ステップ１０２）。なお、分割する必要がないと判断したときにはジョブ実行装置１０のジョブ実行部２５のみで受け付けたジョブを実行することになる。
【００３７】
ジョブの分割により複数の部分ジョブが形成されると、部分ジョブ割当処理部２４は、各部分ジョブの実行に必要な機能を分析することで認識し、その必要な機能を装置機能情報記憶部３１に記憶された装置機能情報に含まれる実行可能機能及び得意機能と照合することによって、各部分ジョブに、当該部分ジョブの実行を依頼するデータ処理装置４０を割り当てる（ステップ１０３）。部分ジョブ割当処理部２４は、部分ジョブ毎に、割り当てたデータ処理装置４０のＵＲＬを割当情報記憶部３２の「場所」に、データ処理装置４０に実行させる機能を割当情報記憶部３２の「依頼機能」に、それぞれ登録する。なお、この時点では、開始時間、終了期限はＮＵＬＬであり、ステータスは「開始前」が初期値として設定されている。なお、基本的には、ジョブを分割して生成した部分ジョブのうち、部分ジョブの実行に必要な機能をジョブ実行装置１０が有している場合には、当該部分ジョブはジョブ実行装置１０で実行され、それ以外の部分ジョブは、データ処理装置４０に代行させるようにする。ただ、ジョブ実行装置１０が部分ジョブの実行に必要な機能を有していても、装置の負荷軽減や処理時間の短縮等の観点から、データ処理装置４０に依頼した方が効率的であると判断した場合には、該当する部分ジョブの実行をデータ処理装置４０に依頼してもよい。
【００３８】
全ての部分ジョブＳｊ（１≦ｊ≦Ｎ）に対して部分ジョブの実行を依頼するデータ処理装置Ｃｊが割り当てられると、部分ジョブ実行指示部２６は、部分ジョブデータや依頼元のジョブ実行装置１０を特定する情報等を含む実行要求を送信することによって、データ処理装置Ｃｊに対して順番に部分ジョブＣｊの実行を指示する（ステップ１０４，１０５，１０６）。部分ジョブ実行指示部２６が実行要求を送信したことを検出すると、時間監視部２７は、その実行指示された日時を割当情報記憶部３２の「開始時間」に記録する（ステップ１０７）。また、時間監視部２７は、「開始時間」への設定内容から得られる開始時刻に、予め設定された許容待ち時間を加算することで求めた制限時刻を、割当情報記憶部３２の「終了期限」に設定する（ステップＳ１０８）。許容待ち時間は、例えば部分ジョブが実行する機能に対応させて予め設定されている値を用いてもよい。あるいは、実行する機能に、更に実行要求先のデータ処理装置４０の性能を考慮して算出してもよい。また、定期的にネットワークの通信速度をモニタリングすることで算出した遅延時間をさらに加えるようにしてもよい。あるいは、部分ジョブの種類によらずに一律の許容待ち時間Ｐ１を設定してもよい。そして、時間監視部２７は、部分ジョブＳｊの実行が開始されことに伴い、部分ジョブＳｊの「ステータス」を「処理中」に更新する（ステップ１０９）。
【００３９】
この一連の部分ジョブの実行指示処理は、部分ジョブＳ１から順次部分ジョブＳＮまで繰り返され（ステップＳ１１０）。
【００４０】
以上のように全ての部分ジョブの実行指示が行われた後、あるいは行われると同時に、時間監視部２７は、部分ジョブの実行の監視を開始する。この監視処理については図８に示したフローチャートを用いて説明する。
【００４１】
時間監視部２７は、通信処理部２１及び実行結果受信部２８を介して任意のデータ処理装置４０からのメッセージを待機する。そして、いずれかのデータ処理装置４０からメッセージが送信されてきたときには、それを受け付ける（ステップ１１１）。そして、受け付けたメッセージが、部分ジョブの実行の終了を表す「正常終了」という旨のメッセージであった場合（ステップ１１２でＹ）、データ処理装置４０において実行された部分ジョブは正常に終了したと判断して、その部分ジョブに対応する割当情報記憶部３２の「ステータス」を「正常終了」に更新する（ステップ１１３）。そして、時間監視部２７は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する（ステップＳ１１４）。
【００４２】
一方、受け付けたメッセージが「正常終了」でない場合（ステップ１１２でＮ）、時間監視部２７は、現在時刻が、メッセージ送信元のデータ処理装置４０が実行している部分ジョブに対して設定した終了期限を過ぎているかどうかを判断する。現在時刻が終了期限に過ぎていない場合（ステップＳ１１５でＮ）、ステップＳ１１１に戻って次のメッセージ入力を待つ。なお、データ処理装置４０から送信されてくるメッセージの種類としては、前述した「正常終了」を表すメッセージの他に、ハードウェアの故障通知、指定された機能の動作不能やその他の理由による部分ジョブの実行不能等の通知が考えられる。なお、メッセージが送信されてこない場合にも、定期的に現在時刻を監視して終了期限を過ぎているかどうかを判断するようにしてもよい。
【００４３】
現在時刻が終了期限を過ぎた場合（ステップＳ１１５でＹ）、終了期限が設定された部分ジョブを未終了の部分ジョブとして特定し、その部分ジョブに対応する割当情報記憶部３２の「ステータス」を「未終了」に更新する（ステップ１１６）。そして、時間監視部２７は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する（ステップＳ１１７）。
【００４４】
続いて、時間監視部２７は、全ての部分ジョブの監視が終了していなければ（ステップＳ１１８でＮ）、ステップＳ１１１に戻って残りの部分ジョブの監視を継続し、全ての部分ジョブの監視が終了していれば（ステップＳ１１８でＹ）、監視動作を終了する。
【００４５】
以上の処理により、割当情報における各部分ジョブの「ステータス」は、「処理中」から「正常終了」又は「未終了」のいずれかに更新される。
【００４６】
上記処理により、「ステータス」が「未終了」と設定された部分ジョブが存在する場合い実行する動作について図９に示したフローチャートを用いて説明する。なお、図９に示した処理は、図７及び図８を用いて説明した処理を組み合わせた処理なので、図７及び図８と同様の処理には同じ符号を付けて、説明を適宜省略する。
【００４７】
図８において説明した監視処理が終了すると、その監視処理の結果、割当情報記憶部３２を参照し、割当情報における「ステータス」が「未終了」と設定された部分ジョブが１つでも存在する場合、当該部分ジョブを含むジョブの実行を完了させるためには、その未終了の部分ジョブの実行を再度試みて正常に終了させる必要がある。
【００４８】
そのために、本実施の形態における部分ジョブ割当処理部２４は、装置機能情報記憶部３１を参照しながら、未終了の部分ジョブを対象としていずれかのデータ処理装置４０への割当処理を再度実行する（ステップ１２１）。この未終了の部分ジョブに対するデータ処理装置４０の再割当処理について図１０を用いて詳述する。
【００４９】
図１０には、未終了の部分ジョブＪｘ，Ｊｙ，Ｊｚと、データ処理装置Ｐａ〜Ｐｇとが示されている。Ｆ１〜Ｆ３は機能を示している。図１０によると、データ処理装置ＰａにはＦ１，Ｆ２が、データ処理装置ＰｂにはＦ１が、データ処理装置ＰｃにはＦ１が、データ処理装置ＰｄにはＦ２が、データ処理装置ＰｅにはＦ３が、データ処理装置ＰｆにはＦ１，Ｆ２，Ｆ３が、データ処理装置ＰｇにはＦ２，Ｆ３が、それぞれ搭載されている。そして、最初の割当処理においては、破線の矢印で示したように、部分ジョブＪｘにはデータ処理装置Ｐｃが、部分ジョブＪｙにはデータ処理装置Ｐｇが、部分ジョブＪｚにはデータ処理装置Ｐｅが、それぞれ割り当てられたが、いずれのデータ処理装置Ｐｃ，Ｐｇ，Ｐｅも終了期限までに部分ジョブの実行が終了できなかったことを示している。この状態において、部分ジョブ割当処理部２４は、装置機能情報を参照しながら次のようにして再割当処理を実行する。
【００５０】
まず、最初に、部分ジョブＪｘ，Ｊｙ，Ｊｚの実行を終了期限までに終了できなかったデータ処理装置Ｐｃ，Ｐｇ，Ｐｅは、未終了の全ての部分ジョブＪｘ，Ｊｙ，Ｊｚを割り当てる候補から外すのが望ましい。これらのデータ処理装置Ｐｃ，Ｐｇ，Ｐｅは、他のジョブ実行装置１０からのジョブの実行依頼を受け付けているために高負荷状態で動作していたり、あるいは、ハードウェアの故障若しくはソフトウェアの不具合等が理由で動作不能となっている状態であることが予測でき、よって部分ジョブの実行を再度依頼しても終了期限内に実行を終了できない可能性が高いと考えられるからである。
【００５１】
データ処理装置Ｐｃ，Ｐｇ，Ｐｅを選択候補から除いた後、部分ジョブＪｘ，Ｊｙ，Ｊｚそれぞれを実行可能なデータ処理装置を選出してみる。まず、部分ジョブＪｘは、機能Ｆ１が搭載されたデータ処理装置Ｐａ，Ｐｂ，Ｐｆに実行を依頼することが可能である。部分ジョブＪｙは、機能Ｆ２が搭載されたデータ処理装置Ｐａ，Ｐｄ，Ｐｆに実行を依頼することが可能である。部分ジョブＪｚは、機能Ｆ３が搭載されたデータ処理装置Ｐｆのみに実行を依頼することが可能である。つまり、このような状況にもとでは、部分ジョブＪｚは、データ処理装置Ｐｆのみに依頼が可能であることから、部分ジョブＪｚにデータ処理装置Ｐｆが優先的に割り当てられる。次に、例えば、部分ジョブＪｙを部分ジョブＪｘより優先的に実行する必要がある場合、部分ジョブＪｘにも割当可能なデータ処理装置が残るという前提のもと、部分ジョブＪｙには、実行可能な全てのデータ処理装置Ｐａ，Ｐｄが優先的に割り当てられる。なお、実行可能な全てのデータ処理装置でなくてもその中から複数のデータ処理装置を選択してもよい。そして、部分ジョブＪｘには、いずれの部分ジョブＪｙ，Ｊｚも割り当てられておらず、かつ機能Ｆ１を実行可能なデータ処理装置Ｐｂが割り当てられる。
【００５２】
以上の再割当処理の結果、得られた装置機能情報のデータ設定例を図１１に示す。なお、図１１においてジョブＩＤ、依頼機能、装置ＩＤ及び実行指示先までがこの時点で設定される。図１１を参照すると理解できるように、部分ジョブＪｙには、複数の実行先が指定されている。また、部分ジョブとデータ処理装置との対応関係が視認しやすいように、図１１には、図６に示した割当情報にない「装置ＩＤ」を含めている。
【００５３】
本実施の形態では、未終了の部分ジョブを排出したデータ処理装置を候補から外すこと、部分ジョブを重複して割り当てないこと、などの所定の条件に従って未終了の部分ジョブにデータ処理装置を割り当てる。なお、性能の良いデータ処理装置を優先的に割り当てる、実行結果の転送時間が短いデータ処理装置を優先的に割り当てる、なども再割当の条件としてよい。本実施の形態においては、部分ジョブＪｙに複数の実行先を指定したが、前述した所定の条件等に従い、再割当先として一のデータ処理装置のみを選択し、当該未終了の部分ジョブに割り当てるようにしてもよい。
【００５４】
ところで、本実施の形態では、未終了の部分ジョブを排出したデータ処理装置を候補から外してデータ処理装置の再割当てを行うようにした。その理由は前述したとおりである。しかしながら、最初の割当処理において、未終了の部分ジョブを排出したデータ処理装置を当該部分ジョブに割り当てたのは、部分ジョブの実行に必要な機能を単に有しているからという理由だけでなく、実行に必要な機能を得意機能としているデータ処理装置であったり、性能の面、転送コストの面、課金上のコストの面等何らかの点で当該データ処理装置が他のデータ処理装置より優れていたからと考えられる。また、部分ジョブの実行が未終了となった原因として、部分ジョブの実行を指示した時点では他のジョブを実行していて一時的に負荷の高い状態であった可能性もある。従って、未終了の部分ジョブを排出したとはいっても、同じデータ処理装置に再度実行を試みてみる価値があるかもしれない。そこで、再割当ての際には、前述した手順で再割当先として選出したデータ処理装置に加えて、未終了の部分ジョブを排出したデータ処理装置に対しても今一度実行を依頼するようにしてもよい。
【００５５】
また、上記再割当処理の実行中に、実行結果受信部２８が、未終了の部分ジョブが割り当てられていたデータ処理装置４０から「正常終了」のメッセージが送られてきた場合には、この「正常終了」と共に取得した実行結果をジョブへの統合の際に用いてもよい。すなわち、これは、当該部分ジョブの実行は、終了期限を徒過したために「未終了」と判断されたが、データ処理装置４０が終了期限を過ぎてから実行結果を送信した場合に該当する。この場合、終了期限内には正常終了しなかったとはいうものの、正常終了により得られた実行結果を利用した方が、部分ジョブの実行を再度依頼して実行結果を改めて取得するより効率的なので、該当する部分ジョブを再割当ての対象から外すようにしてもよい。
【００５６】
図９に戻り、以上のようにステップ１２１において、未終了の部分ジョブを再実行させるべきデータ処理装置４０が特定されると、部分ジョブ実行指示部２６は、実行要求を送信することによってデータ処理装置４０に対して部分ジョブの実行を指示する（ステップ１０６）。部分ジョブ実行指示部２６が実行要求を送信したことを検出すると、時間監視部２７は、その実行指示された日時を割当情報記憶部３２の「開始時間」に記録し（ステップ１０７）、終了期限を「終了期限」に設定する（ステップＳ１０８）。そして、時間監視部２７は、未終了の部分ジョブの実行が開始されことに伴い、未終了の部分ジョブの「ステータス」を「処理中」に更新する（ステップ１０９）。なお、図９では、この処理を繰り返し実行するようには図示していないが、この実行指示を行う処理は、図７と同様に各未終了の部分ジョブに対して繰り返し実行される。
【００５７】
この後、時間監視部２７による部分ジョブの実行の監視処理（ステップ１１１〜１１８）が開始されるが、この処理は、図８と同様なので説明を省略する。ただ、再割当ての場合においては、未終了の部分ジョブの実行指示先として複数のデータ処理装置４０が指定されている場合があり得る。従って、実行結果受信部２８が「正常終了」という旨のメッセージを受信した場合（ステップ１１２でＹ）、時間監視部２７は、当該部分ジョブに対応する割当情報記憶部３２の「ステータス」を「正常終了」に更新すると共に（ステップ１１３）、時間監視部２７は、部分ジョブ実行指示部２６及び通信処理部２１を介して当該部分ジョブの実行を指示したデータ処理装置４０に対して、当該部分ジョブの実行の中止を指示する（ステップ１２２）。そして、時間監視部２７は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する（ステップＳ１１４）。
【００５８】
以上の監視処理（ステップ１１１〜１１８）を、全ての部分ジョブの監視が終了するまで繰り返す。この処理により、割当情報における各部分ジョブの「ステータス」は、「処理中」から「正常終了」又は「未終了」のいずれかに更新される。
【００５９】
全ての部分ジョブの監視が終了すると（ステップＳ１１８でＹ）、時間監視部２７は、割当情報における各部分ジョブの「ステータス」を参照することにより、全ての部分ジョブが正常終了しているかを確認する。全ての部分ジョブが終了していれば（ステップＳ１２３でＹ）、再割当処理を終了させ、１つでも未終了の部分ジョブが存在していれば（ステップＳ１２３でＮ）、その未終了の部分ジョブに対して、データ処理装置４０の再割当てを繰り返し実行する。
【００６０】
以上のようにして、全ての部分ジョブが正常終了したことが確認できると、ジョブ統合処理部２９は、部分ジョブの終了により実行結果受信部２８が受信した各部分ジョブの実行結果を取得し、またジョブ実行装置１０でも部分ジョブを実行していた場合には、その部分ジョブの実行結果を取得し、これらの実行結果を統合することによってジョブの実行結果を復元する。そして、ジョブ統合処理部２９は、通信処理部２１を介して、復元により生成したジョブの実行結果を、ジョブ実行要求元のＰＣ２へ返信する。
【００６１】
なお、本実施の形態では、クラウド４に含まれるデータ処理装置４０を利用してジョブ実行装置１０がジョブを実行する場合を例にして説明したが、必ずしもクラウド４を利用するシステム形態に限定する必要はない。例えば、ネットワーク６に複数のコンピュータを接続し、このうちのいずれかのコンピュータをジョブ実行装置１０とし、それ以外のコンピュータをデータ処理装置４０として構成してもよい。また、ジョブ実行装置１０は、ジョブの実行に必要な処理機能を搭載していることから、他のジョブ実行装置のために前述したデータ処理装置４０として機能させてもよい。また、データ処理装置４０にジョブ実行装置１０が有する構成を持たせることで、ジョブ実行装置１０としても機能させてもよい。つまり、本実施の形態においては、説明の便宜上、コンピュータを、ジョブに実行が依頼されるジョブ実行装置１０と、部分ジョブの実行が依頼されるデータ処理装置４０とに分けて説明したが、ネットワーク６に接続されたコンピュータを、ジョブ実行装置１０としての機能とデータ処理装置４０としての機能の双方を有するデータ処理装置として構成してもよい。つまり、双方を機能を持たせることで、各コンピュータは、ジョブを受け付けたときには前述したジョブ実行装置１０として動作することになり、それ以外のときには前述したデータ処理装置４０として動作することになる。このシステムの変形例は、後述する実施の形態においても適用可能である。
【００６２】
実施の形態２．
上記実施の形態１では、ジョブ実行装置１０に、データ処理装置４０の情報管理機能並びに部分ジョブの実行状況の監視機能を持たせたが、本実施の形態では、ジョブ実行管理装置を別途設けて、これらの機能をジョブ実行管理装置に実施させるシステム構成としたことを特徴としている。
【００６３】
図１２は、本実施の形態におけるジョブ実行システムのブロック構成図である。本実施の形態におけるジョブ実行システムは、ジョブ実行装置１０及びデータ処理装置４０に加えてジョブ実行管理装置６０をネットワーク６に接続した構成を有している。なお、データ処理装置４０は、便宜的に１台のみ図示した。図１に示した構成要素のうち、実施の形態１同じ構成要素には同じ符号を付け、説明を適宜省略する。
【００６４】
上記実施の形態１では、ジョブ実行装置１０に、部分ジョブのデータ処理装置４０への割当機能、部分ジョブの実行状況の監視機能及びデータ処理装置４０の情報管理機能等を持たせたが、本実施の形態では、これらの機能を実現するための構成要素を、新たに設けたジョブ実行管理装置６０に配設し、システム内における部分ジョブの割当処理及び再割当処理をジョブ実行管理装置６０が一元的に行うシステム構成としたことを特徴としている。ジョブ実行管理装置６０は、図３に示した汎用的なコンピュータのハードウェア構成で実現してもよい。
【００６５】
ジョブ実行装置１０は、実施の形態１と同様に、通信処理部２１、ジョブ受付部２２、ジョブ分割処理部２３及びジョブ実行部２５を有しており、更に、部分ジョブ振分部５１、割当要求送信部５２及び実行結果受信部５３を有している。部分ジョブ振分部５１は、ジョブ分割処理部２３がジョブを分割して形成した部分ジョブのうち、自装置のジョブ実行部２５に実行させる部分ジョブと、データ処理装置４０に実行を依頼する部分ジョブとに振り分ける。実施の形態１でも説明したように、例えば自装置に搭載された機能の有無等を振り分ける条件としてよい。割当要求送信部５２は、部分ジョブ振分部５１によってデータ処理装置４０に実行を依頼すると選定された部分ジョブに、いずれかのデータ処理装置４０を割り当てる割当要求をジョブ実行管理装置６０へ送信する。実行結果受信部５３は、実施の形態１と同様にデータ処理装置４０から送られてきた部分ジョブに実行結果を受信するが、「正常終了」等のメッセージを受信しない点で実施の形態１と異なる。
【００６６】
ジョブ実行装置１０における各構成要素２１〜２３，２５，５１〜５３は、ジョブ実行装置１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部３１及び割当情報記憶部３２は、ＨＤＤ１４で実現してもよい。
【００６７】
ジョブ実行管理装置６０は、実施の形態１において説明した部分ジョブ割当処理部２４、部分ジョブ実行指示部２６、時間監視部２７、実行制御部３０、装置機能情報記憶部３１及び割当情報記憶部３２を有しており、更に、通信処理部６１、割当要求受付部６２及び状態情報受信部６３を有している。通信処理部６１は、基本的には通信処理部２１と同じ機能を有しており、ジョブ実行装置１０及びデータ処理装置４０との間で通信と行い、また、受信したデータの内容によってそのデータを割当要求受付部６２又は状態情報受信部６３に振り分ける。割当要求受付部６２は、ジョブ実行装置１０から送信されてくる割当要求を受信することによって受け付ける。状態情報受信部６３は、実施の形態１における実行結果受信部２８の一部の機能である、部分ジョブの実行が終了したときにデータ処理装置４０が送信する「正常終了」の旨を示すステータス情報等を受信する。なお、その他の状態情報としては、実施の形態１において記載したようにハードウェアの故障通知等がある。
【００６８】
ジョブ実行管理装置６０における各構成要素２４，２６，２７，３０，６１〜６３は、ジョブ実行管理装置６０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部３１及び割当情報記憶部３２は、ＨＤＤ１４で実現してもよい。
【００６９】
データ処理装置４０は、通信処理部４１、実行指示受付部４２、部分ジョブ実行部４３、実行結果送信部４４及び実行終了通知部４５を有している。通信処理部４１は、ジョブ実行装置１０及びデータ処理装置４０との間で通信と行い、ジョブ実行管理装置６０から送信されてくる部分ジョブの実行指示や実体データを受信する。実行指示受付部４２は、ジョブ実行管理装置６０から実行指示を受け付ける。部分ジョブ実行部４３は、実行指示により指示された部分ジョブを実行する。実行結果送信部４４は、部分ジョブ実行部４３による部分ジョブの実行結果をジョブ実行装置１０へ送信する。実行終了通知部４５は、部分ジョブ実行部４３による部分ジョブの実行が正常終了した旨を示すステータス情報をジョブ実行管理装置６０に通知する。
【００７０】
データ処理装置４０における各構成要素４１〜４５は、データ処理装置４０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。
【００７１】
次に、本実施の形態における動作について説明する。本実施の形態の基本的な処理の流れは、図７〜図９を用いて説明した実施の形態１と同じなので、適宜省略して説明する。本実施の形態は、実施の形態１においてジョブ実行装置１０に持たせていた装置機能情報及び割当情報並びに割当処理機能をジョブ実行管理装置６０に移行したことで、実施の形態１とは装置間でやり取りされる情報が若干異なってくる。
【００７２】
すなわち、ジョブ実行装置１０において、ジョブ受付部２２がＰＣ２などからジョブの実行要求を受け付けると、ジョブ分割処理部２３は、そのジョブをＮ個の部分ジョブに分割する。部分ジョブ振分部５１は、分割した部分ジョブを、自装置で実行する部分ジョブと、データ処理装置４０に実行させる部分ジョブを振り分け、割当要求送信部５２は、自装置を特定する情報及びデータ処理装置４０に実行させる部分ジョブを含む割当要求を通信処理部２１を介してジョブ実行管理装置６０へ送信する。
【００７３】
ジョブ実行管理装置６０において、割当要求受付部６２が通信処理部６１を介してジョブ実行装置１０から送られてきた割当要求を受け付けると、部分ジョブ割当処理部２４は、実施の形態１において説明した手順にて依頼された各部分ジョブにデータ処理装置４０を割り当てる。そして、部分ジョブ実行指示部２６は、各部分ジョブの実行指示要求を、該当するデータ処理装置４０へ送信する。この実行指示要求には、ジョブ実行装置１０からの割当要求に含まれていた、実行対象の部分ジョブの実体データと、実行結果及び終了通知の送信先となるジョブ実行装置１０を特定する情報、例えばＵＲＬが含まれる。この後、ジョブ実行管理装置６０は、図８に示した処理に移行して、各データ処理装置４０からのステータスの送信を待機する。
【００７４】
データ処理装置４０において、実行指示受付部４２が通信処理部４１を介してジョブ実行管理装置６０から送られてきた部分ジョブの実行指示要求を受け付けると、部分ジョブ実行部４３は、受け付けた部分ジョブを実行する。そして、部分ジョブの実行が終了すると、実行結果送信部４４は、部分ジョブの実行結果を、実行指示要求に指定された送信先を参照して特定されるジョブ実行装置１０へ送信する。実行結果送信部４４は、ジョブ実行管理装置６０を介して部分ジョブの実行結果をジョブ実行装置１０へ間接的に送るようにしてもよいが、本実施の形態では、処理効率を考慮して上記の通り直接送るようにした。一方、実行終了通知部４５は、部分ジョブの実行が正常終了した旨をジョブ実行管理装置６０へ送信する。
【００７５】
ジョブ実行管理装置６０において、データ処理装置４０の監視処理（図８）の実行の結果、割当情報におけるいずれかの部分ジョブの「ステータス」が「未終了」であった場合、図９に示した再割当て時の処理を実行する。再割当処理を行った結果、全ての部分ジョブが正常終了したことを確認すると、その旨をジョブ実行装置１０へ送信する。
【００７６】
ジョブ実行管理装置６０からの通知により、データ処理装置４０へ依頼した全ての部分ジョブの実行が正常終了したことを確認すると、実行結果受信部５３は、この時点で受信済みの部分データの実行結果をジョブ統合処理部２０へ渡す。ジョブ統合処理部２９は、実行結果受信部２８が受信した各部分ジョブの実行結果と、ジョブ実行装置１０でも部分ジョブを実行していた場合には、その部分ジョブの実行結果とを統合することによってジョブの実行結果を復元する。そして、ジョブ統合処理部２９は、通信処理部２１を介して、復元により生成したジョブの実行結果を、ジョブ実行要求元のＰＣ２へ返信する。
【００７７】
本実施の形態では、以上のようにジョブ実行装置１０とジョブ実行管理装置６０とデータ処理装置４０とが連携動作しながら、ジョブ実行装置１０が受け付けたジョブを実行する。このように構成することで、ジョブ実行管理装置６０は、システム全体におけるジョブの実行制御を行うが、例えば、ジョブ実行管理装置６０に各データ処理装置４０における負荷の状態を監視する手段を設け、割り当てた部分ジョブの数等各データ処理装置４０における負荷の状態を考慮しながら部分ジョブを割り当てるデータ処理装置４０を決定するようにしてもよい。
【００７８】
なお、上記説明では、データ処理装置４０へ実行を依頼する部分ジョブの実体データは、ジョブ実行管理装置６０を介してジョブ実行装置１０からデータ処理装置４０へ送られたが、ジョブ実行装置１０は、例えば部分ジョブのＩＤ、各部分ジョブの実行必要とされる機能等、ジョブ実行管理装置６０において実行される割当処理に必要な情報のみを含む割当要求を生成してジョブ実行管理装置６０へ送信するようにしてもよい。この場合、ジョブ実行管理装置６０は、部分ジョブとデータ処理装置４０との対応関係を示す割当処理の結果をジョブ実行装置１０へ返信し、ジョブ実行装置１０は、割当処理の結果を参照して、各データ処理装置４０に対して、該当する部分ジョブを送信する。
【００７９】
また、本実施の形態では、ジョブ実行装置１０のＵＲＬを割当要求に含めることで、部分ジョブの実行結果の送信先をデータ処理装置４０へ知らせるようにしたが、ジョブ実行管理装置６０にシステム内に含まれるジョブ実行装置１０の識別情報（ＩＤ）とＵＲＬとを対応付けた情報を一元管理させ、ジョブ実行装置１０は、ジョブ実行管理装置６０へ送信する割当要求には自装置のＩＤを含めるようにしてもよい。
【符号の説明】
【００８０】
２  パーソナルコンピュータ（ＰＣ）、４  クラウド、６  ネットワーク、９  内部バス、１０  ジョブ実行装置、１１  ＣＰＵ、１２  ＲＯＭ、１３  ＲＡＭ、１４  ハードディスクドライブ（ＨＤＤ）、１５  ＨＤＤコントローラ、１６  マウス、１７  キーボード、１８  ディスプレイ、１９  入出力コントローラ、２０  ネットワークコントローラ、２１，４１，６１  通信処理部、２２  ジョブ受付部、２３  ジョブ分割処理部、２４  部分ジョブ割当処理部、２５  ジョブ実行部、２６  部分ジョブ実行指示部、２７  時間監視部、２８，５３  実行結果受信部、２９  ジョブ統合処理部、３０  実行制御部、３１  装置機能情報記憶部、３２  割当情報記憶部、４０  データ処理装置、４２  実行指示受付部、４３  部分ジョブ実行部、４４  実行結果送信部、４５  実行終了通知部、５１  部分ジョブ振分部、５２  割当要求送信部、６０  ジョブ実行管理装置、６２  割当要求受付部、６３  状態情報受信部。
【図１】
2012083991.tif 000003
【図２】
2012083991.tif 000004
【図３】
2012083991.tif 000005
【図４】
2012083991.tif 000006
【図５】
2012083991.tif 000007
【図６】
2012083991.tif 000008
【図７】
2012083991.tif 000009
【図８】
2012083991.tif 000010
【図９】
2012083991.tif 000011
【図１０】
2012083991.tif 000012
【図１１】
2012083991.tif 000013
【図１２】
2012083991.tif 000014