説明

ジョブ実行管理装置、ジョブ実行装置、ジョブ実行システム及びプログラム

【課題】データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼する。
【解決手段】受け付けたジョブを分割して形成された各部分ジョブに、当該部分ジョブを実行可能なデータ処理装置を割り当てる部分ジョブ割当処理部24と、部分ジョブの実行を当該データ処理装置に指示する部分ジョブ実行指示部26とを有する。部分ジョブ割当処理部24は、データ処理装置において設定した終了期限までに実行が終了しなかった部分ジョブに対し、当該実行未終了の部分ジョブが割り当てられたデータ処理装置を除く、当該実行未終了の部分ジョブを実行可能なデータ処理装置を割り当て、部分ジョブ実行指示部26は、当該実行未終了の部分ジョブの実行指示を、再割り当てされたデータ処理装置に対し送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジョブ実行管理装置、ジョブ実行装置、ジョブ実行システム及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ネットワークに接続されたコンピュータ機器の状態および能力を管理し、処理するタスクを分析した結果に基づいて分散処理させるコンピュータ機器を選定し、当該タスクを分割して生成した複数のジョブを選定したコンピュータ機器に送信し、各コンピュータ機器による処理結果を受信する技術が記載されている。
【0003】
特許文献2には、グリッドコンピューティングによる負荷分散システム(以下、グリッドと記す)に画像処理装置がジョブを依頼するときに、ジョブの有効時間や当該グリッドへのジョブ再依頼回数などを設定し、有効時間内に当該グリッドから終了報告がなかったジョブを再依頼、またはキャンセルする技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−352699号公報
【特許文献2】特開2006−252131号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係るジョブ実行管理装置は、ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【0007】
また、前記再割当手段は、前記実行未終了の部分ジョブが割り当てられた前記データ処理装置に対しても、当該実行未終了の部分ジョブを再度割り当てることを特徴とする。
【0008】
また、前記再割当手段は、前記実行未終了の部分ジョブを実行可能な前記データ処理装置が複数存在する場合、前記実行未終了の部分ジョブに、予め設定された選択基準に従い一の前記データ処理装置を選択して割り当てることを特徴とする。
【0009】
また、前記再割当手段は、前記実行未終了の部分ジョブに、当該部分ジョブを実行可能な複数のデータ処理装置を割り当てることを特徴とする。
【0010】
また、前記再割当手段が前記実行未終了の部分ジョブに複数の前記データ処理装置を割り当てた場合において、当該実行未終了の部分ジョブの正常終了が当該複数のデータ処理装置のいずれかから通知された場合、前記実行未終了の部分ジョブを割り当てた複数の前記データ処理装置のうち当該通知したデータ処理装置以外のデータ処理装置に対して当該実行未終了の部分ジョブの実行の中止を指示する中止指示手段を有することを特徴とする。
【0011】
本発明に係るジョブ実行装置は、ジョブの実行要求を受け付ける受付手段と、受け付けたジョブを分割して複数の部分ジョブを形成する形成手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、形成した複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、前記データ処理装置が割り当てられた部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【0012】
本発明に係るジョブ実行システムは、受け付けたジョブを複数に分割して形成した複数の部分ジョブの全部又は当の一部を実行するジョブ実行装置と、ジョブの実行を管理するジョブ実行管理装置と、前記ジョブ実行装置の代わりに1又は複数の部分ジョブを実行する複数のデータ処理装置と、を有し、前記ジョブ実行装置は、ジョブの実行要求を受け付ける実行要求受付手段と、受け付けたジョブを複数に分割して複数の部分ジョブを形成する形成手段と、部分ジョブの実行を、いずれかの前記データ処理装置へ割り当てる割当要求を前記ジョブ実行管理装置へ送信する割当要求送信手段と、前記複数の部分ジョブの実行結果から前記ジョブの実行結果を生成し、ジョブの実行要求元へ返信する返信手段と、を有し、前記ジョブ実行管理装置は、前記ジョブ実行装置から送られてくる割当要求を受け付ける割当要求受付手段と、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、前記データ処理装置からの部分ジョブの実行の終了通知を受信する受信手段と、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、を有し、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示し、前記データ処理装置は、前記ジョブ実行管理装置からの実行指示に従い、割り当てられた部分ジョブを実行する実行手段と、部分ジョブの実行が終了したときに当該部分ジョブの実行の終了通知を前記ジョブ実行管理装置へ送信する終了通知送信手段と、部分ジョブの実行結果を直接又は間接的に前記ジョブ実行装置へ送信する実行結果送信手段と、を有することを特徴とする。
【0013】
本発明に係るプログラムは、コンピュータを、ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段、前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段、部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段、前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段、前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段、として機能させ、前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示することを特徴とする。
【発明の効果】
【0014】
請求項1記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【0015】
請求項2記載の発明によれば、期限内に実行結果が得られなかったデータ処理装置に対して、部分ジョブの実行を再度試みることができる。
【0016】
請求項3記載の発明によれば、実行可能な他のデータ処理装置の中から一のデータ処理装置を選出することができる。
【0017】
請求項4記載の発明によれば、期限内に実行結果が得られなかった部分ジョブの実行結果を、より確実に得ることができる。
【0018】
請求項5記載の発明によれば、正常終了を通知したデータ処理装置以外のデータ処理装置に、無駄な部分ジョブの処理を実行させずにすむ。
【0019】
請求項6記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【0020】
請求項7記載の発明によれば、必要な情報をジョブ実行管理装置に一元管理させる構成にて、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【0021】
請求項8記載の発明によれば、データ処理装置から期限内に実行結果が得られなかった部分ジョブの実行を、当該部分ジョブが実行可能な他のデータ処理装置に依頼することができる。
【図面の簡単な説明】
【0022】
【図1】本実施の形態において「ジョブ」と「部分ジョブ」の関係を説明するための図である。
【図2】本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。
【図3】実施の形態1におけるジョブ実行装置を形成するコンピュータのハードウェア構成図である。
【図4】実施の形態1におけるジョブ実行装置のブロック構成図である。
【図5】実施の形態1における装置機能情報記憶部に記憶された装置機能情報のデータ構成の一例を示した図である。
【図6】実施の形態1における割当情報記憶部に記憶された割当情報のデータ構成の一例を示した図である。
【図7】実施の形態におけるジョブ実行装置の、部分ジョブをデータ処理装置に割り当てて実行指示を出すまでの処理を示したフローチャートである。
【図8】実施の形態1におけるジョブ実行装置の、部分ジョブの実行を監視する処理を示したフローチャートである。
【図9】実施の形態1におけるジョブ実行装置の、未終了の部分ジョブをデータ処理装置に再度割り当てて実行指示を出すと共に部分ジョブの実行を監視する処理を示したフローチャートである。
【図10】実施の形態1において実施される再割当処理を説明するために用いる図である。
【図11】実施の形態1において再割当処理が実施された後の割当情報記憶部に記憶された割当情報のデータ構成の一例を示した図である。
【図12】実施の形態2におけるジョブ実行システムのブロック構成図である。
【発明を実施するための形態】
【0023】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【0024】
以下の説明において、「ジョブ」とは、ソフトウェアやハードウェアを用いて行われる何らかの情報処理によって提供される機能を用いた処理の実行単位を意味しており、例えば、多機能複写機におけるコピー機能、プリント機能、ファクシミリ送信機能等が利用されて実行される処理が該当する。このような機能は、「サービス」あるいは「タスク」と呼ばれることもある。
【0025】
図1は、「ジョブ」と「部分ジョブ」の関係を説明するための図である。図1に示すジョブは、特に5ページの文書をプリント出力するジョブを示している。各ページは文字部分と絵柄部分が混在して配置されており、一般的にはページ記述言語(PDL)で表記されている。5ページ中1〜4ページの文字部分は日本文で記載され、3ページの文字部分は英文で記載されている様子が示されている。単に「ジョブ」という語句を用いる場合は、PDLで表記された5ページの文書データを、各ページを表現するPDLを解釈して画像データに変換し、インクジェットプリンタのようなプリンタ装置を用いて、画像データを記録紙上に可視化して固定する一連の処理を意味する。部分ジョブは、ジョブが複数に分割されることにより形成される。「部分ジョブ」という語句を用いる場合は、5ページのうちの任意のページをプリント処理する場合や、任意のページを構成する文字部分と絵柄部分をそれぞれ別個に処理する場合、例えば、出力プリンタ装置が中間調を表現するのに適切な網点になるように絵柄部分を変換処理する場合、あるいは英文表記される文字部分を含む3ページ目を日本語に翻訳してからプリント処理する場合などのように、「ジョブ」の一部分に係る処理を意味している。
【0026】
実施の形態1.
図2は、本発明に係るジョブ実行システムの一実施の形態を示した全体構成図である。図2には、パーソナルコンピュータ(PC)2とジョブ実行装置10と、クラウド4とがネットワーク6に接続された構成が示されている。本実施の形態におけるジョブ実行装置10は、PC2からの要求に応じてジョブ又はその一部を実行する。クラウド4は、クラウド・コンピューティングを省略した呼称であり、複数のデータ処理装置40が含まれている。各データ処理装置40は、1又は複数のサービス処理機能が搭載される。本実施の形態で取り扱うジョブは、文字絵柄分離、OCR、翻訳等の1又は複数のサービス処理機能の組み合わせにより実行される。データ処理装置40は、ジョブを受け付けたジョブ実行装置10からの指示に従い、1又は複数のサービス処理を実行する。なお、図2には、1台のPC2と1台のジョブ実行装置10とが示されているが、各装置の台数はこれに限られるものではない。
【0027】
図3は、本実施の形態におけるジョブ実行装置10を形成するコンピュータのハードウェア構成図である。本実施の形態におけるコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図3に示したようにCPU11、ROM12、RAM13、サービス処理機能を実現するソフトウェアなどを格納するハードディスクドライブ(HDD)14を接続したHDDコントローラ15、入力手段として設けられたマウス16とキーボード17、及び表示装置として設けられたディスプレイ18をそれぞれ接続する入出力コントローラ19、通信手段として設けられたネットワークコントローラ20を内部バス9に接続して構成される。なお、その他にもスキャナやプリンタ等を接続して構成してもよい。あるいは、スキャナ機能、印刷機能等複数の機能が搭載される画像形成装置によりジョブ実行装置10を形成してもよい。なお、画像形成装置には、前述した構成のコンピュータが搭載され、更に操作パネル、スキャナ、プリンタ等が搭載されている。
【0028】
データ処理装置40は、従前から存在するコンピュータの汎用的なハードウェア構成で実現してよく、つまり図3に示したハードウェア構成のコンピュータで構成してもよい。
【0029】
図4は、本実施の形態におけるジョブ実行装置10のブロック構成図である。本実施の形態におけるジョブ実行装置10は、通信処理部21、ジョブ受付部22、ジョブ分割処理部23、部分ジョブ割当処理部24、ジョブ実行部25、部分ジョブ実行指示部26、時間監視部27、実行結果受信部28、ジョブ統合処理部29、実行制御部30、装置機能情報記憶部31及び割当情報記憶部32を有している。通信処理部21は、PC2やクラウド4との間で通信を行い、また、受信したデータの内容によってそのデータをジョブ受付部22又は実行結果受信部28に振り分ける。ジョブ受付部22は、PC2から送られてきたジョブの実行要求を受け付ける。なお、ジョブ実行装置10が画像形成装置で実現されている場合、操作パネルからの入力によりジョブを受け付けるようにしてもよい。ジョブ分割処理部23は、実行要求のあったジョブを分割すべきかどうかを判断し、分割すべきと判断したときは、ジョブを分割して複数の部分ジョブを形成する分割処理を実行する。分割処理すべきかどうかの判断は、ジョブ実行装置10では実行することができない機能をジョブを実行する際に必要とするかどうか、例えば、PDLを解析して得られるテキストデータを、他国語に翻訳するための日英相互翻訳機能を必要とするかどうかを調べることによって判断する。このように、ジョブ実行装置10では実行できない機能を含むページが検出されたときは、係るページを部分ジョブとして抜き出すことによって部分ジョブを生成する。ジョブ分割処理部23は、このようにしてジョブを複数の部分ジョブに分割するが、部分ジョブへの分割が不要と判断したときには分割処理を行わない。部分ジョブ割当処理部24は、形成した複数の部分ジョブそれぞれに対し、装置機能情報記憶部31に登録されている装置機能情報を参照することにより当該部分ジョブを実行可能なデータ処理装置40を割り当てる割当処理を実行する。もちろん、ジョブ実行装置10で実行可能な部分ジョブは、ジョブ実行装置10に割り当ててもよい。また、部分ジョブ割当処理部24は、部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブに、当該部分ジョブを実行可能な少なくとも1つのデータ処理装置40を割り当てる再割当処理を実行する。部分ジョブ割当処理部24は、更に各部分ジョブに割り当てたデータ処理装置40を特定する情報などを割当情報記憶部32に設定する。ジョブ実行部25は、受け付けたジョブ又はジョブに含まれる1又は複数の部分ジョブを実行する。部分ジョブ実行指示部26は、実行指示要求を部分ジョブが割り当てられたデータ処理装置40へ送信することにより、当該データ処理装置40に部分ジョブの実行を指示する。時間監視部27は、割当情報記憶部32に設定されている割当情報に基づいて、各データ処理装置40から送られてくるメッセージの受信の状況やメッセージの内容から各データ処理装置40の部分ジョブの実行状態を監視する。また、時間監視部27は、割当情報記憶部32に含まれる一部の情報を更新する。実行結果受信部28は、データ処理装置40により部分ジョブの実行が終了したときに、その旨を示すステータス情報及び実行結果を受信する。ジョブ統合処理部29は、データ処理装置40から受信した部分ジョブの実行結果、また自己で実行した部分ジョブが存在する場合にはその部分ジョブの実行結果を統合して、ジョブの実行結果を生成し、ジョブの実行要求元へ返す。実行制御部30は、各構成要素21〜29と連携動作しながらジョブの実行制御を行う。装置機能情報記憶部31及び割当情報記憶部32については後述する。
【0030】
ジョブ実行装置10における各構成要素21〜30は、ジョブ実行装置10を形成するコンピュータと、コンピュータに搭載されたCPU11で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部31及び割当情報記憶部32は、HDD14で実現してもよい。
【0031】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやDVD−ROM等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがインストールプログラムを順次実行することで各種処理が実現される。
【0032】
図5は、本実施の形態における装置機能情報記憶部31に記憶された装置機能情報のデータ構成の一例を示した図である。装置機能情報は、各データ処理装置40を識別するための識別情報として設定されている「装置ID」に、「場所」、「実行可能機能」及び「得意機能」が対応付けして構成される。「場所」は、当該データ処理装置40が存在している場所を特定するための情報であり、本実施の形態では、URL(Uniform Resource Locator)が設定される。「実行可能機能」には、当該データ処理装置が実行可能な機能を特定するための情報が設定される。図5では、A,B,Cなどと記載しているが、具体的には、例えば、日英翻訳処理、文書画像データに含まれる見出しや表罫線部分などを解析する構造解析処理等である。「得意機能」には、「実行可能機能」のうち当該データ処理装置が得意とする機能が設定される。例えば、ハードウェア・アクセラレータを内蔵することにより、高速に処理することができる機能、ライセンス許諾等により他のデータ処理装置40では実行することができない特別な機能などが示されている。このような得意機能を示すことで、一の部分ジョブの処理を依頼するデータ処理装置40が複数検出された場合に、どのデータ処理装置40に優先的に部分ジョブの実行を依頼すべきかを選択する際の目安となる。
【0033】
なお、ジョブ実行装置10自体も、データ処理装置40と同様に部分ジョブを実行する装置となりうるため、ジョブ実行装置10もデータ処理装置40と同様に装置機能情報記憶部31を用いて搭載された機能や得意機能に関する情報を管理するようにしてもよい。
【0034】
図6は、本実施の形態における割当情報記憶部32に記憶された割当情報のデータ構成の一例を示した図である。割当情報には、ジョブの分割により形成された各部分ジョブを識別するための識別情報として設定されている「部分ジョブID」に、「実行指示先」、「依頼機能」、「開始時間」、「終了期限」及び「ステータス」が対応付けして構成される。「実行指示先」には、当該部分ジョブが割り当てられたデータ処理装置40を特定するための情報が部分ジョブの送信先を特定する情報として設定される。本実施の形態では、装置機能情報記憶部31を参照して場所に設定されているURLが設定されるが、データ処理装置40が特定可能な情報であれば、装置IDなどでもよい。「依頼機能」は、当該データ処理装置40にて当該部分ジョブを実行する際に利用する機能を特定するための情報が設定される。「開始時間」は、当該部分ジョブの実行が開始される時間が設定される。本実施の形態では、当該データ処理装置40が実際に当該部分ジョブの実行を開始する時間ではなく、部分ジョブ実行指示部26が当該データ処理装置40に対して実行指示を出すときの時間を設定する。なお、図6では、便宜的に時刻のみを示したが、年月日などの情報を付加してもよい。また、具体的な日時ではなく、例えば直前に実行される部分ジョブの実行結果を利用して実行される部分ジョブなどにおいては、直前に実行される部分ジョブの実行結果を受信してからの経過時間を示す情報等を「開始時間」に設定するようにしてもよい。「終了期限」には、当該部分ジョブの実行が終了するまでに待つ最大待ち時間が設定される。本実施の形態では、実行結果受信部28が実行結果を受信するまでに待つ時刻が設定される。なお、図6では、便宜的に時刻のみを示したが、年月日などの情報を付加してもよい。また、具体的な日時ではなく、例えば「開始時間」からの経過時間等を「終了期限」に設定するようにしてもよい。「終了期限」を設定するのは、データ処理装置40に依頼した部分ジョブの実行結果を待ち続けたことで、結果的に部分ジョブの全体に当たるジョブの実行が完了できなくなる状況を回避するためである。「ステータス」には、当該部分ジョブの状態を示す情報が設定される。本実施の形態では、例えば、部分ジョブ実行指示部26が当該データ処理装置40に対して実行指示を出す前の状態であることを表す「開始前」、部分ジョブ実行指示部26が当該データ処理装置40に対して実行指示を出することによって当該部分ジョブが実行中であることを表す「処理中」、当該部分ジョブの実行の正常終了が確認されたことを表す「正常終了」、終了期限に達しても正常終了の通知が当該データ処理装置40から送られてこなかったことを表す「未終了」のいずれかが設定される。
【0035】
図7は、本実施の形態におけるジョブ実行装置10の、部分ジョブをデータ処理装置40に割り当てて実行指示を出すまでの処理を示したフローチャート、図8は、本実施の形態におけるジョブ実行装置10の、部分ジョブの実行を監視する処理を示したフローチャート、図9は、本実施の形態におけるジョブ実行装置10の、未終了の部分ジョブをデータ処理装置40に再度割り当てて実行指示を出すと共に部分ジョブの実行を監視する処理を示したフローチャートである。以下、これらのフローチャートを用いて本実施の形態における動作について説明する。
【0036】
図7において、ジョブ実行装置10におけるジョブ受付部22がPC2などからジョブの実行要求を受け付けると(ステップ101)、ジョブ分割処理部23は、そのジョブをN(Nは2以上の自然数)個の部分ジョブに分割する(ステップ102)。なお、分割する必要がないと判断したときにはジョブ実行装置10のジョブ実行部25のみで受け付けたジョブを実行することになる。
【0037】
ジョブの分割により複数の部分ジョブが形成されると、部分ジョブ割当処理部24は、各部分ジョブの実行に必要な機能を分析することで認識し、その必要な機能を装置機能情報記憶部31に記憶された装置機能情報に含まれる実行可能機能及び得意機能と照合することによって、各部分ジョブに、当該部分ジョブの実行を依頼するデータ処理装置40を割り当てる(ステップ103)。部分ジョブ割当処理部24は、部分ジョブ毎に、割り当てたデータ処理装置40のURLを割当情報記憶部32の「場所」に、データ処理装置40に実行させる機能を割当情報記憶部32の「依頼機能」に、それぞれ登録する。なお、この時点では、開始時間、終了期限はNULLであり、ステータスは「開始前」が初期値として設定されている。なお、基本的には、ジョブを分割して生成した部分ジョブのうち、部分ジョブの実行に必要な機能をジョブ実行装置10が有している場合には、当該部分ジョブはジョブ実行装置10で実行され、それ以外の部分ジョブは、データ処理装置40に代行させるようにする。ただ、ジョブ実行装置10が部分ジョブの実行に必要な機能を有していても、装置の負荷軽減や処理時間の短縮等の観点から、データ処理装置40に依頼した方が効率的であると判断した場合には、該当する部分ジョブの実行をデータ処理装置40に依頼してもよい。
【0038】
全ての部分ジョブSj(1≦j≦N)に対して部分ジョブの実行を依頼するデータ処理装置Cjが割り当てられると、部分ジョブ実行指示部26は、部分ジョブデータや依頼元のジョブ実行装置10を特定する情報等を含む実行要求を送信することによって、データ処理装置Cjに対して順番に部分ジョブCjの実行を指示する(ステップ104,105,106)。部分ジョブ実行指示部26が実行要求を送信したことを検出すると、時間監視部27は、その実行指示された日時を割当情報記憶部32の「開始時間」に記録する(ステップ107)。また、時間監視部27は、「開始時間」への設定内容から得られる開始時刻に、予め設定された許容待ち時間を加算することで求めた制限時刻を、割当情報記憶部32の「終了期限」に設定する(ステップS108)。許容待ち時間は、例えば部分ジョブが実行する機能に対応させて予め設定されている値を用いてもよい。あるいは、実行する機能に、更に実行要求先のデータ処理装置40の性能を考慮して算出してもよい。また、定期的にネットワークの通信速度をモニタリングすることで算出した遅延時間をさらに加えるようにしてもよい。あるいは、部分ジョブの種類によらずに一律の許容待ち時間P1を設定してもよい。そして、時間監視部27は、部分ジョブSjの実行が開始されことに伴い、部分ジョブSjの「ステータス」を「処理中」に更新する(ステップ109)。
【0039】
この一連の部分ジョブの実行指示処理は、部分ジョブS1から順次部分ジョブSNまで繰り返され(ステップS110)。
【0040】
以上のように全ての部分ジョブの実行指示が行われた後、あるいは行われると同時に、時間監視部27は、部分ジョブの実行の監視を開始する。この監視処理については図8に示したフローチャートを用いて説明する。
【0041】
時間監視部27は、通信処理部21及び実行結果受信部28を介して任意のデータ処理装置40からのメッセージを待機する。そして、いずれかのデータ処理装置40からメッセージが送信されてきたときには、それを受け付ける(ステップ111)。そして、受け付けたメッセージが、部分ジョブの実行の終了を表す「正常終了」という旨のメッセージであった場合(ステップ112でY)、データ処理装置40において実行された部分ジョブは正常に終了したと判断して、その部分ジョブに対応する割当情報記憶部32の「ステータス」を「正常終了」に更新する(ステップ113)。そして、時間監視部27は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する(ステップS114)。
【0042】
一方、受け付けたメッセージが「正常終了」でない場合(ステップ112でN)、時間監視部27は、現在時刻が、メッセージ送信元のデータ処理装置40が実行している部分ジョブに対して設定した終了期限を過ぎているかどうかを判断する。現在時刻が終了期限に過ぎていない場合(ステップS115でN)、ステップS111に戻って次のメッセージ入力を待つ。なお、データ処理装置40から送信されてくるメッセージの種類としては、前述した「正常終了」を表すメッセージの他に、ハードウェアの故障通知、指定された機能の動作不能やその他の理由による部分ジョブの実行不能等の通知が考えられる。なお、メッセージが送信されてこない場合にも、定期的に現在時刻を監視して終了期限を過ぎているかどうかを判断するようにしてもよい。
【0043】
現在時刻が終了期限を過ぎた場合(ステップS115でY)、終了期限が設定された部分ジョブを未終了の部分ジョブとして特定し、その部分ジョブに対応する割当情報記憶部32の「ステータス」を「未終了」に更新する(ステップ116)。そして、時間監視部27は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する(ステップS117)。
【0044】
続いて、時間監視部27は、全ての部分ジョブの監視が終了していなければ(ステップS118でN)、ステップS111に戻って残りの部分ジョブの監視を継続し、全ての部分ジョブの監視が終了していれば(ステップS118でY)、監視動作を終了する。
【0045】
以上の処理により、割当情報における各部分ジョブの「ステータス」は、「処理中」から「正常終了」又は「未終了」のいずれかに更新される。
【0046】
上記処理により、「ステータス」が「未終了」と設定された部分ジョブが存在する場合い実行する動作について図9に示したフローチャートを用いて説明する。なお、図9に示した処理は、図7及び図8を用いて説明した処理を組み合わせた処理なので、図7及び図8と同様の処理には同じ符号を付けて、説明を適宜省略する。
【0047】
図8において説明した監視処理が終了すると、その監視処理の結果、割当情報記憶部32を参照し、割当情報における「ステータス」が「未終了」と設定された部分ジョブが1つでも存在する場合、当該部分ジョブを含むジョブの実行を完了させるためには、その未終了の部分ジョブの実行を再度試みて正常に終了させる必要がある。
【0048】
そのために、本実施の形態における部分ジョブ割当処理部24は、装置機能情報記憶部31を参照しながら、未終了の部分ジョブを対象としていずれかのデータ処理装置40への割当処理を再度実行する(ステップ121)。この未終了の部分ジョブに対するデータ処理装置40の再割当処理について図10を用いて詳述する。
【0049】
図10には、未終了の部分ジョブJx,Jy,Jzと、データ処理装置Pa〜Pgとが示されている。F1〜F3は機能を示している。図10によると、データ処理装置PaにはF1,F2が、データ処理装置PbにはF1が、データ処理装置PcにはF1が、データ処理装置PdにはF2が、データ処理装置PeにはF3が、データ処理装置PfにはF1,F2,F3が、データ処理装置PgにはF2,F3が、それぞれ搭載されている。そして、最初の割当処理においては、破線の矢印で示したように、部分ジョブJxにはデータ処理装置Pcが、部分ジョブJyにはデータ処理装置Pgが、部分ジョブJzにはデータ処理装置Peが、それぞれ割り当てられたが、いずれのデータ処理装置Pc,Pg,Peも終了期限までに部分ジョブの実行が終了できなかったことを示している。この状態において、部分ジョブ割当処理部24は、装置機能情報を参照しながら次のようにして再割当処理を実行する。
【0050】
まず、最初に、部分ジョブJx,Jy,Jzの実行を終了期限までに終了できなかったデータ処理装置Pc,Pg,Peは、未終了の全ての部分ジョブJx,Jy,Jzを割り当てる候補から外すのが望ましい。これらのデータ処理装置Pc,Pg,Peは、他のジョブ実行装置10からのジョブの実行依頼を受け付けているために高負荷状態で動作していたり、あるいは、ハードウェアの故障若しくはソフトウェアの不具合等が理由で動作不能となっている状態であることが予測でき、よって部分ジョブの実行を再度依頼しても終了期限内に実行を終了できない可能性が高いと考えられるからである。
【0051】
データ処理装置Pc,Pg,Peを選択候補から除いた後、部分ジョブJx,Jy,Jzそれぞれを実行可能なデータ処理装置を選出してみる。まず、部分ジョブJxは、機能F1が搭載されたデータ処理装置Pa,Pb,Pfに実行を依頼することが可能である。部分ジョブJyは、機能F2が搭載されたデータ処理装置Pa,Pd,Pfに実行を依頼することが可能である。部分ジョブJzは、機能F3が搭載されたデータ処理装置Pfのみに実行を依頼することが可能である。つまり、このような状況にもとでは、部分ジョブJzは、データ処理装置Pfのみに依頼が可能であることから、部分ジョブJzにデータ処理装置Pfが優先的に割り当てられる。次に、例えば、部分ジョブJyを部分ジョブJxより優先的に実行する必要がある場合、部分ジョブJxにも割当可能なデータ処理装置が残るという前提のもと、部分ジョブJyには、実行可能な全てのデータ処理装置Pa,Pdが優先的に割り当てられる。なお、実行可能な全てのデータ処理装置でなくてもその中から複数のデータ処理装置を選択してもよい。そして、部分ジョブJxには、いずれの部分ジョブJy,Jzも割り当てられておらず、かつ機能F1を実行可能なデータ処理装置Pbが割り当てられる。
【0052】
以上の再割当処理の結果、得られた装置機能情報のデータ設定例を図11に示す。なお、図11においてジョブID、依頼機能、装置ID及び実行指示先までがこの時点で設定される。図11を参照すると理解できるように、部分ジョブJyには、複数の実行先が指定されている。また、部分ジョブとデータ処理装置との対応関係が視認しやすいように、図11には、図6に示した割当情報にない「装置ID」を含めている。
【0053】
本実施の形態では、未終了の部分ジョブを排出したデータ処理装置を候補から外すこと、部分ジョブを重複して割り当てないこと、などの所定の条件に従って未終了の部分ジョブにデータ処理装置を割り当てる。なお、性能の良いデータ処理装置を優先的に割り当てる、実行結果の転送時間が短いデータ処理装置を優先的に割り当てる、なども再割当の条件としてよい。本実施の形態においては、部分ジョブJyに複数の実行先を指定したが、前述した所定の条件等に従い、再割当先として一のデータ処理装置のみを選択し、当該未終了の部分ジョブに割り当てるようにしてもよい。
【0054】
ところで、本実施の形態では、未終了の部分ジョブを排出したデータ処理装置を候補から外してデータ処理装置の再割当てを行うようにした。その理由は前述したとおりである。しかしながら、最初の割当処理において、未終了の部分ジョブを排出したデータ処理装置を当該部分ジョブに割り当てたのは、部分ジョブの実行に必要な機能を単に有しているからという理由だけでなく、実行に必要な機能を得意機能としているデータ処理装置であったり、性能の面、転送コストの面、課金上のコストの面等何らかの点で当該データ処理装置が他のデータ処理装置より優れていたからと考えられる。また、部分ジョブの実行が未終了となった原因として、部分ジョブの実行を指示した時点では他のジョブを実行していて一時的に負荷の高い状態であった可能性もある。従って、未終了の部分ジョブを排出したとはいっても、同じデータ処理装置に再度実行を試みてみる価値があるかもしれない。そこで、再割当ての際には、前述した手順で再割当先として選出したデータ処理装置に加えて、未終了の部分ジョブを排出したデータ処理装置に対しても今一度実行を依頼するようにしてもよい。
【0055】
また、上記再割当処理の実行中に、実行結果受信部28が、未終了の部分ジョブが割り当てられていたデータ処理装置40から「正常終了」のメッセージが送られてきた場合には、この「正常終了」と共に取得した実行結果をジョブへの統合の際に用いてもよい。すなわち、これは、当該部分ジョブの実行は、終了期限を徒過したために「未終了」と判断されたが、データ処理装置40が終了期限を過ぎてから実行結果を送信した場合に該当する。この場合、終了期限内には正常終了しなかったとはいうものの、正常終了により得られた実行結果を利用した方が、部分ジョブの実行を再度依頼して実行結果を改めて取得するより効率的なので、該当する部分ジョブを再割当ての対象から外すようにしてもよい。
【0056】
図9に戻り、以上のようにステップ121において、未終了の部分ジョブを再実行させるべきデータ処理装置40が特定されると、部分ジョブ実行指示部26は、実行要求を送信することによってデータ処理装置40に対して部分ジョブの実行を指示する(ステップ106)。部分ジョブ実行指示部26が実行要求を送信したことを検出すると、時間監視部27は、その実行指示された日時を割当情報記憶部32の「開始時間」に記録し(ステップ107)、終了期限を「終了期限」に設定する(ステップS108)。そして、時間監視部27は、未終了の部分ジョブの実行が開始されことに伴い、未終了の部分ジョブの「ステータス」を「処理中」に更新する(ステップ109)。なお、図9では、この処理を繰り返し実行するようには図示していないが、この実行指示を行う処理は、図7と同様に各未終了の部分ジョブに対して繰り返し実行される。
【0057】
この後、時間監視部27による部分ジョブの実行の監視処理(ステップ111〜118)が開始されるが、この処理は、図8と同様なので説明を省略する。ただ、再割当ての場合においては、未終了の部分ジョブの実行指示先として複数のデータ処理装置40が指定されている場合があり得る。従って、実行結果受信部28が「正常終了」という旨のメッセージを受信した場合(ステップ112でY)、時間監視部27は、当該部分ジョブに対応する割当情報記憶部32の「ステータス」を「正常終了」に更新すると共に(ステップ113)、時間監視部27は、部分ジョブ実行指示部26及び通信処理部21を介して当該部分ジョブの実行を指示したデータ処理装置40に対して、当該部分ジョブの実行の中止を指示する(ステップ122)。そして、時間監視部27は、その部分ジョブを実行状態の監視対象から外すことによって監視を終了する(ステップS114)。
【0058】
以上の監視処理(ステップ111〜118)を、全ての部分ジョブの監視が終了するまで繰り返す。この処理により、割当情報における各部分ジョブの「ステータス」は、「処理中」から「正常終了」又は「未終了」のいずれかに更新される。
【0059】
全ての部分ジョブの監視が終了すると(ステップS118でY)、時間監視部27は、割当情報における各部分ジョブの「ステータス」を参照することにより、全ての部分ジョブが正常終了しているかを確認する。全ての部分ジョブが終了していれば(ステップS123でY)、再割当処理を終了させ、1つでも未終了の部分ジョブが存在していれば(ステップS123でN)、その未終了の部分ジョブに対して、データ処理装置40の再割当てを繰り返し実行する。
【0060】
以上のようにして、全ての部分ジョブが正常終了したことが確認できると、ジョブ統合処理部29は、部分ジョブの終了により実行結果受信部28が受信した各部分ジョブの実行結果を取得し、またジョブ実行装置10でも部分ジョブを実行していた場合には、その部分ジョブの実行結果を取得し、これらの実行結果を統合することによってジョブの実行結果を復元する。そして、ジョブ統合処理部29は、通信処理部21を介して、復元により生成したジョブの実行結果を、ジョブ実行要求元のPC2へ返信する。
【0061】
なお、本実施の形態では、クラウド4に含まれるデータ処理装置40を利用してジョブ実行装置10がジョブを実行する場合を例にして説明したが、必ずしもクラウド4を利用するシステム形態に限定する必要はない。例えば、ネットワーク6に複数のコンピュータを接続し、このうちのいずれかのコンピュータをジョブ実行装置10とし、それ以外のコンピュータをデータ処理装置40として構成してもよい。また、ジョブ実行装置10は、ジョブの実行に必要な処理機能を搭載していることから、他のジョブ実行装置のために前述したデータ処理装置40として機能させてもよい。また、データ処理装置40にジョブ実行装置10が有する構成を持たせることで、ジョブ実行装置10としても機能させてもよい。つまり、本実施の形態においては、説明の便宜上、コンピュータを、ジョブに実行が依頼されるジョブ実行装置10と、部分ジョブの実行が依頼されるデータ処理装置40とに分けて説明したが、ネットワーク6に接続されたコンピュータを、ジョブ実行装置10としての機能とデータ処理装置40としての機能の双方を有するデータ処理装置として構成してもよい。つまり、双方を機能を持たせることで、各コンピュータは、ジョブを受け付けたときには前述したジョブ実行装置10として動作することになり、それ以外のときには前述したデータ処理装置40として動作することになる。このシステムの変形例は、後述する実施の形態においても適用可能である。
【0062】
実施の形態2.
上記実施の形態1では、ジョブ実行装置10に、データ処理装置40の情報管理機能並びに部分ジョブの実行状況の監視機能を持たせたが、本実施の形態では、ジョブ実行管理装置を別途設けて、これらの機能をジョブ実行管理装置に実施させるシステム構成としたことを特徴としている。
【0063】
図12は、本実施の形態におけるジョブ実行システムのブロック構成図である。本実施の形態におけるジョブ実行システムは、ジョブ実行装置10及びデータ処理装置40に加えてジョブ実行管理装置60をネットワーク6に接続した構成を有している。なお、データ処理装置40は、便宜的に1台のみ図示した。図1に示した構成要素のうち、実施の形態1同じ構成要素には同じ符号を付け、説明を適宜省略する。
【0064】
上記実施の形態1では、ジョブ実行装置10に、部分ジョブのデータ処理装置40への割当機能、部分ジョブの実行状況の監視機能及びデータ処理装置40の情報管理機能等を持たせたが、本実施の形態では、これらの機能を実現するための構成要素を、新たに設けたジョブ実行管理装置60に配設し、システム内における部分ジョブの割当処理及び再割当処理をジョブ実行管理装置60が一元的に行うシステム構成としたことを特徴としている。ジョブ実行管理装置60は、図3に示した汎用的なコンピュータのハードウェア構成で実現してもよい。
【0065】
ジョブ実行装置10は、実施の形態1と同様に、通信処理部21、ジョブ受付部22、ジョブ分割処理部23及びジョブ実行部25を有しており、更に、部分ジョブ振分部51、割当要求送信部52及び実行結果受信部53を有している。部分ジョブ振分部51は、ジョブ分割処理部23がジョブを分割して形成した部分ジョブのうち、自装置のジョブ実行部25に実行させる部分ジョブと、データ処理装置40に実行を依頼する部分ジョブとに振り分ける。実施の形態1でも説明したように、例えば自装置に搭載された機能の有無等を振り分ける条件としてよい。割当要求送信部52は、部分ジョブ振分部51によってデータ処理装置40に実行を依頼すると選定された部分ジョブに、いずれかのデータ処理装置40を割り当てる割当要求をジョブ実行管理装置60へ送信する。実行結果受信部53は、実施の形態1と同様にデータ処理装置40から送られてきた部分ジョブに実行結果を受信するが、「正常終了」等のメッセージを受信しない点で実施の形態1と異なる。
【0066】
ジョブ実行装置10における各構成要素21〜23,25,51〜53は、ジョブ実行装置10を形成するコンピュータと、コンピュータに搭載されたCPU11で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部31及び割当情報記憶部32は、HDD14で実現してもよい。
【0067】
ジョブ実行管理装置60は、実施の形態1において説明した部分ジョブ割当処理部24、部分ジョブ実行指示部26、時間監視部27、実行制御部30、装置機能情報記憶部31及び割当情報記憶部32を有しており、更に、通信処理部61、割当要求受付部62及び状態情報受信部63を有している。通信処理部61は、基本的には通信処理部21と同じ機能を有しており、ジョブ実行装置10及びデータ処理装置40との間で通信と行い、また、受信したデータの内容によってそのデータを割当要求受付部62又は状態情報受信部63に振り分ける。割当要求受付部62は、ジョブ実行装置10から送信されてくる割当要求を受信することによって受け付ける。状態情報受信部63は、実施の形態1における実行結果受信部28の一部の機能である、部分ジョブの実行が終了したときにデータ処理装置40が送信する「正常終了」の旨を示すステータス情報等を受信する。なお、その他の状態情報としては、実施の形態1において記載したようにハードウェアの故障通知等がある。
【0068】
ジョブ実行管理装置60における各構成要素24,26,27,30,61〜63は、ジョブ実行管理装置60を形成するコンピュータと、コンピュータに搭載されたCPU11で動作するプログラムとの協調動作により実現される。また、装置機能情報記憶部31及び割当情報記憶部32は、HDD14で実現してもよい。
【0069】
データ処理装置40は、通信処理部41、実行指示受付部42、部分ジョブ実行部43、実行結果送信部44及び実行終了通知部45を有している。通信処理部41は、ジョブ実行装置10及びデータ処理装置40との間で通信と行い、ジョブ実行管理装置60から送信されてくる部分ジョブの実行指示や実体データを受信する。実行指示受付部42は、ジョブ実行管理装置60から実行指示を受け付ける。部分ジョブ実行部43は、実行指示により指示された部分ジョブを実行する。実行結果送信部44は、部分ジョブ実行部43による部分ジョブの実行結果をジョブ実行装置10へ送信する。実行終了通知部45は、部分ジョブ実行部43による部分ジョブの実行が正常終了した旨を示すステータス情報をジョブ実行管理装置60に通知する。
【0070】
データ処理装置40における各構成要素41〜45は、データ処理装置40を形成するコンピュータと、コンピュータに搭載されたCPU11で動作するプログラムとの協調動作により実現される。
【0071】
次に、本実施の形態における動作について説明する。本実施の形態の基本的な処理の流れは、図7〜図9を用いて説明した実施の形態1と同じなので、適宜省略して説明する。本実施の形態は、実施の形態1においてジョブ実行装置10に持たせていた装置機能情報及び割当情報並びに割当処理機能をジョブ実行管理装置60に移行したことで、実施の形態1とは装置間でやり取りされる情報が若干異なってくる。
【0072】
すなわち、ジョブ実行装置10において、ジョブ受付部22がPC2などからジョブの実行要求を受け付けると、ジョブ分割処理部23は、そのジョブをN個の部分ジョブに分割する。部分ジョブ振分部51は、分割した部分ジョブを、自装置で実行する部分ジョブと、データ処理装置40に実行させる部分ジョブを振り分け、割当要求送信部52は、自装置を特定する情報及びデータ処理装置40に実行させる部分ジョブを含む割当要求を通信処理部21を介してジョブ実行管理装置60へ送信する。
【0073】
ジョブ実行管理装置60において、割当要求受付部62が通信処理部61を介してジョブ実行装置10から送られてきた割当要求を受け付けると、部分ジョブ割当処理部24は、実施の形態1において説明した手順にて依頼された各部分ジョブにデータ処理装置40を割り当てる。そして、部分ジョブ実行指示部26は、各部分ジョブの実行指示要求を、該当するデータ処理装置40へ送信する。この実行指示要求には、ジョブ実行装置10からの割当要求に含まれていた、実行対象の部分ジョブの実体データと、実行結果及び終了通知の送信先となるジョブ実行装置10を特定する情報、例えばURLが含まれる。この後、ジョブ実行管理装置60は、図8に示した処理に移行して、各データ処理装置40からのステータスの送信を待機する。
【0074】
データ処理装置40において、実行指示受付部42が通信処理部41を介してジョブ実行管理装置60から送られてきた部分ジョブの実行指示要求を受け付けると、部分ジョブ実行部43は、受け付けた部分ジョブを実行する。そして、部分ジョブの実行が終了すると、実行結果送信部44は、部分ジョブの実行結果を、実行指示要求に指定された送信先を参照して特定されるジョブ実行装置10へ送信する。実行結果送信部44は、ジョブ実行管理装置60を介して部分ジョブの実行結果をジョブ実行装置10へ間接的に送るようにしてもよいが、本実施の形態では、処理効率を考慮して上記の通り直接送るようにした。一方、実行終了通知部45は、部分ジョブの実行が正常終了した旨をジョブ実行管理装置60へ送信する。
【0075】
ジョブ実行管理装置60において、データ処理装置40の監視処理(図8)の実行の結果、割当情報におけるいずれかの部分ジョブの「ステータス」が「未終了」であった場合、図9に示した再割当て時の処理を実行する。再割当処理を行った結果、全ての部分ジョブが正常終了したことを確認すると、その旨をジョブ実行装置10へ送信する。
【0076】
ジョブ実行管理装置60からの通知により、データ処理装置40へ依頼した全ての部分ジョブの実行が正常終了したことを確認すると、実行結果受信部53は、この時点で受信済みの部分データの実行結果をジョブ統合処理部20へ渡す。ジョブ統合処理部29は、実行結果受信部28が受信した各部分ジョブの実行結果と、ジョブ実行装置10でも部分ジョブを実行していた場合には、その部分ジョブの実行結果とを統合することによってジョブの実行結果を復元する。そして、ジョブ統合処理部29は、通信処理部21を介して、復元により生成したジョブの実行結果を、ジョブ実行要求元のPC2へ返信する。
【0077】
本実施の形態では、以上のようにジョブ実行装置10とジョブ実行管理装置60とデータ処理装置40とが連携動作しながら、ジョブ実行装置10が受け付けたジョブを実行する。このように構成することで、ジョブ実行管理装置60は、システム全体におけるジョブの実行制御を行うが、例えば、ジョブ実行管理装置60に各データ処理装置40における負荷の状態を監視する手段を設け、割り当てた部分ジョブの数等各データ処理装置40における負荷の状態を考慮しながら部分ジョブを割り当てるデータ処理装置40を決定するようにしてもよい。
【0078】
なお、上記説明では、データ処理装置40へ実行を依頼する部分ジョブの実体データは、ジョブ実行管理装置60を介してジョブ実行装置10からデータ処理装置40へ送られたが、ジョブ実行装置10は、例えば部分ジョブのID、各部分ジョブの実行必要とされる機能等、ジョブ実行管理装置60において実行される割当処理に必要な情報のみを含む割当要求を生成してジョブ実行管理装置60へ送信するようにしてもよい。この場合、ジョブ実行管理装置60は、部分ジョブとデータ処理装置40との対応関係を示す割当処理の結果をジョブ実行装置10へ返信し、ジョブ実行装置10は、割当処理の結果を参照して、各データ処理装置40に対して、該当する部分ジョブを送信する。
【0079】
また、本実施の形態では、ジョブ実行装置10のURLを割当要求に含めることで、部分ジョブの実行結果の送信先をデータ処理装置40へ知らせるようにしたが、ジョブ実行管理装置60にシステム内に含まれるジョブ実行装置10の識別情報(ID)とURLとを対応付けた情報を一元管理させ、ジョブ実行装置10は、ジョブ実行管理装置60へ送信する割当要求には自装置のIDを含めるようにしてもよい。
【符号の説明】
【0080】
2 パーソナルコンピュータ(PC)、4 クラウド、6 ネットワーク、9 内部バス、10 ジョブ実行装置、11 CPU、12 ROM、13 RAM、14 ハードディスクドライブ(HDD)、15 HDDコントローラ、16 マウス、17 キーボード、18 ディスプレイ、19 入出力コントローラ、20 ネットワークコントローラ、21,41,61 通信処理部、22 ジョブ受付部、23 ジョブ分割処理部、24 部分ジョブ割当処理部、25 ジョブ実行部、26 部分ジョブ実行指示部、27 時間監視部、28,53 実行結果受信部、29 ジョブ統合処理部、30 実行制御部、31 装置機能情報記憶部、32 割当情報記憶部、40 データ処理装置、42 実行指示受付部、43 部分ジョブ実行部、44 実行結果送信部、45 実行終了通知部、51 部分ジョブ振分部、52 割当要求送信部、60 ジョブ実行管理装置、62 割当要求受付部、63 状態情報受信部。

【特許請求の範囲】
【請求項1】
ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするジョブ実行管理装置。
【請求項2】
前記再割当手段は、前記実行未終了の部分ジョブが割り当てられた前記データ処理装置に対しても、当該実行未終了の部分ジョブを再度割り当てることを特徴とする請求項1に記載のジョブ実行管理装置。
【請求項3】
前記再割当手段は、前記実行未終了の部分ジョブを実行可能な前記データ処理装置が複数存在する場合、前記実行未終了の部分ジョブに、予め設定された選択基準に従い一の前記データ処理装置を選択して割り当てることを特徴とする請求項1に記載のジョブ実行管理装置。
【請求項4】
前記再割当手段は、前記実行未終了の部分ジョブに、当該部分ジョブを実行可能な複数のデータ処理装置を割り当てることを特徴とする請求項1に記載のジョブ実行管理装置。
【請求項5】
前記再割当手段が前記実行未終了の部分ジョブに複数の前記データ処理装置を割り当てた場合において、当該実行未終了の部分ジョブの正常終了が当該複数のデータ処理装置のいずれかから通知された場合、前記実行未終了の部分ジョブを割り当てた複数の前記データ処理装置のうち当該通知したデータ処理装置以外のデータ処理装置に対して当該実行未終了の部分ジョブの実行の中止を指示する中止指示手段を有することを特徴とする請求項4に記載のジョブ実行管理装置。
【請求項6】
ジョブの実行要求を受け付ける受付手段と、
受け付けたジョブを分割して複数の部分ジョブを形成する形成手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
形成した複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、前記データ処理装置が割り当てられた部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするジョブ実行装置。
【請求項7】
受け付けたジョブを複数に分割して形成した複数の部分ジョブの全部又は当の一部を実行するジョブ実行装置と、
ジョブの実行を管理するジョブ実行管理装置と、
前記ジョブ実行装置の代わりに1又は複数の部分ジョブを実行する複数のデータ処理装置と、
を有し、
前記ジョブ実行装置は、
ジョブの実行要求を受け付ける実行要求受付手段と、
受け付けたジョブを複数に分割して複数の部分ジョブを形成する形成手段と、
部分ジョブの実行を、いずれかの前記データ処理装置へ割り当てる割当要求を前記ジョブ実行管理装置へ送信する割当要求送信手段と、
前記複数の部分ジョブの実行結果から前記ジョブの実行結果を生成し、ジョブの実行要求元へ返信する返信手段と、
を有し、
前記ジョブ実行管理装置は、
前記ジョブ実行装置から送られてくる割当要求を受け付ける割当要求受付手段と、
前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を記憶する記憶手段と、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段と、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段と、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段と、
前記データ処理装置からの部分ジョブの実行の終了通知を受信する受信手段と、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段と、
を有し、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示し、
前記データ処理装置は、
前記ジョブ実行管理装置からの実行指示に従い、割り当てられた部分ジョブを実行する実行手段と、
部分ジョブの実行が終了したときに当該部分ジョブの実行の終了通知を前記ジョブ実行管理装置へ送信する終了通知送信手段と、
部分ジョブの実行結果を直接又は間接的に前記ジョブ実行装置へ送信する実行結果送信手段と、
を有する、
ことを特徴とするジョブ実行システム。
【請求項8】
コンピュータを、
ジョブを複数に分割して形成された複数の部分ジョブを複数のデータ処理装置に割り当てる割当要求を受け付ける受付手段、
前記割当要求に応じて、複数の部分ジョブそれぞれに対し、前記データ処理装置それぞれが実行可能な機能が定義された装置機能情報を参照することにより当該部分ジョブを実行可能な前記データ処理装置を割り当てる割当手段、
部分ジョブに前記データ処理装置が割り当てられたときに、当該部分ジョブに、当該部分ジョブに割り当てた前記データ処理装置を特定する情報と、当該部分ジョブの実行が開始される時間を特定する開始時間情報と、当該部分ジョブの実行の終了期限を特定する終了期限情報と、を対応付けして設定する設定手段、
前記設定手段による設定内容に従い、部分ジョブの実行を当該データ処理装置に指示する実行指示手段、
前記実行指示手段による指示の後、実行指示対象の部分ジョブのうち当該部分ジョブに対応付けられた終了期限情報から特定される時刻までに実行が終了しなかった部分ジョブを特定し、その特定した実行未終了の部分ジョブそれぞれに対し、前記装置機能情報を参照することにより前記実行未終了の部分ジョブが割り当てられた前記データ処理装置を除く前記実行未終了の部分ジョブを実行可能な少なくとも1つの前記データ処理装置を割り当てる再割当手段、
として機能させ、
前記実行指示手段は、前記実行未終了の部分ジョブの実行を、前記再割当手段により割り当てられた前記データ処理装置に指示する、
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−83991(P2012−83991A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−230411(P2010−230411)
【出願日】平成22年10月13日(2010.10.13)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】