JP6500668B2 - ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム - Google Patents
ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム Download PDFInfo
- Publication number
- JP6500668B2 JP6500668B2 JP2015143376A JP2015143376A JP6500668B2 JP 6500668 B2 JP6500668 B2 JP 6500668B2 JP 2015143376 A JP2015143376 A JP 2015143376A JP 2015143376 A JP2015143376 A JP 2015143376A JP 6500668 B2 JP6500668 B2 JP 6500668B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- processing
- processing apparatus
- server
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 645
- 238000000034 method Methods 0.000 claims description 143
- 230000008569 process Effects 0.000 claims description 134
- 238000004891 communication Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 177
- 230000010365 information processing Effects 0.000 description 158
- 230000006870 function Effects 0.000 description 55
- 238000004590 computer program Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1215—Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1213—Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/126—Job scheduling, e.g. queuing, determine appropriate device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
- H04N1/00244—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00912—Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00912—Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
- H04N1/00915—Assigning priority to, or interrupting, a particular operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00912—Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
- H04N1/00915—Assigning priority to, or interrupting, a particular operation
- H04N1/0092—Assigning priority according to size job or task, e.g. small jobs first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00912—Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
- H04N1/00954—Scheduling operations or managing resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/124—Parallel printing or parallel ripping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1259—Print job monitoring, e.g. job status
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0094—Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Facsimiles In General (AREA)
Description
しかし、この構成では、すべての外部装置からの返信を待ってから最も処理時間が短い装置に対してジョブを転送するため、タイムラグが発生する。そのため、返信した時点とは状況が変わってしまい、ジョブの処理に要する時間が予測処理時間より長くかかる場合が発生する。
本発明は、複数のジョブ処理装置のいずれかで処理が必要なジョブが発生した際に、ジョブが発生したジョブ処理装置から他のジョブ処理装置に処理時間の問い合わせを行い、その結果を受けて最も処理時間の短いジョブ処理装置にジョブを転送してジョブ処理を実行する場合に比べて、より短い時間で処理を実行するようにしたジョブ処理システム、ジョブ処理装置及びジョブ処理プログラムを提供することを目的としている。
請求項1の発明は、通信回線を介して第一のジョブ処理装置と第二のジョブ処理装置とが接続されているジョブ処理システムであって、第一のジョブ処理装置は、第一のジョブ処理装置において処理対象のジョブが発生した場合に、第一のジョブ処理装置で処理を実行した場合の完了予測時刻を算出する算出手段、少なくとも処理対象のジョブと完了予測時刻とを第二のジョブ処理装置に対して送信する送信手段、を有し、第二のジョブ処理装置は、第一のジョブ処理装置からジョブと完了予測時刻とを受信する受信手段、受信したジョブを第二のジョブ処理装置で処理を行った場合の完了予測時刻を算出する算出手段、第一のジョブ処理装置における完了予測時刻が第二のジョブ処理装置における完了予測時刻より早い場合は、受信したジョブを破棄する破棄手段、第一のジョブ処理装置における完了予測時刻が第二のジョブ処理装置における完了予測時刻より遅い場合は、受信したジョブの処理を開始するとともに、受信したジョブの処理を開始したことを第一のジョブ処理装置に通知する通知手段、受信したジョブの処理が完了した場合に、処理済みのジョブを第一のジョブ処理装置に送信する処理済みジョブ送信手段、を有するジョブ処理システムである。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、すべての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理ごとに又はモジュール内で複数の処理を行う場合はその処理ごとに、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
ジョブ処理システムは、提供されている複数のプラグイン機能を組み合わせて、予め1つの処理フローとして定義しておき、取り込んだ文書を、その処理フローにしたがってジョブ処理していくシステムである。このようなジョブ処理システムにおいて、1台のサーバでは、各プラグイン機能を同時に処理できるプロセス数に限りがあるため、一度に大量の文書が投入されると、各プラグインの実行で、処理待ちのジョブが発生し、全体のパフォーマンスが低下することが起こりえる。
そこで、各プラグイン機能(例えば、イメージ変換処理、文字認識処理など)で発生した待ちジョブを、外部のサーバ(以下、外部サーバともいう)に処理を委託し、自身(以下、メインサーバともいう)と外部サーバとで同時に処理できるジョブ数を増やすことで、全体のパフォーマンスを向上させる方法が考えられる。
メインサーバと外部サーバを連携させ、同時に処理できるジョブ数を増やすためには、メインサーバの各プラグイン処理で発生した待ちジョブを、自分より早く処理結果を返してくれる外部サーバを、いち早く見つけ、処理を依頼することが必要である。
外部サーバを見つけだす技術としては、例えば特許文献1に開示されているような技術がある。
しかし、特許文献1に開示されている技術では、外部サーバの状況を判断してから処理依頼するため、実際にジョブが届いた時点で、外部サーバの状況が変わっており、処理結果が予測より遅く返ってきてしまう可能性がある。これを回避する方法として、依頼時に外部サーバのリソースを予約してから処理する技術もあるが、複雑なスケジューリング処理が必要となる。
本実施の形態は、サーバ(メインサーバ、外部サーバ)の時々刻々と変化する処理状況に対応するものである。
ジョブは、投入された文書を、フローファイルにしたがって処理していくときの実行単位である。ジョブを一意に定義する「ジョブID」と、投入された文書が各プラグイン機能によって処理された結果の「文書データ」と、その「文書データサイズ」と、各プラグイン機能の処理によって生成される「ジョブ属性」から構成される。なお「ジョブID」は重複しないIDで定義されている。例えば、GUID(Globally Unique IDentifier)等を用いればよい。
情報処理装置100は、サーバ情報登録モジュール105、サーバ情報管理モジュール110、プラグイン処理能力管理モジュール115、ジョブ処理/ジョブ情報管理モジュール120、サーバ処理管理モジュール125、フローファイル登録モジュール130、フローファイル管理モジュール135を有している。
サーバ150は、プラグイン処理能力管理モジュール155、ジョブ処理/ジョブ情報管理モジュール160、情報処理装置処理管理モジュール165を有している。
サーバ情報登録モジュール105は、サーバ情報管理モジュール110と接続されている。サーバ情報登録モジュール105は、サーバ150の情報を登録する。サーバ150の情報は、ユーザーの操作によって入力されたものであってもよいし、そのサーバ150から送信されてきたものであってもよい。
サーバ情報管理モジュール110は、サーバ情報登録モジュール105、サーバ処理管理モジュール125と接続されている。サーバ情報管理モジュール110は、サーバ150を一意に判別でき、サーバ150のサービスにアクセスできるID情報(例えば、サービスURL(Uniform Resource Locator))を管理する。
(1)プラグインID
(2)処理の完了予測時刻
具体的には、情報処理装置100で、処理中のジョブと、処理予約されているジョブ(待ちジョブ)、各々の処理が完了する完了予測時刻を管理している。例えば、ジョブIDとそのジョブIDで示されるジョブにおける完了予測時刻の組み合わせであり、具体的には、[(jobid1,time1),(jobid2,time2),・・・,(jobidN,timeN)]と表記されるデータを管理する。
(3)単位データあたりの処理時間
ジョブ処理/ジョブ情報管理モジュール120は、情報処理装置100において処理対象のジョブが発生した場合に、情報処理装置100で処理を実行した場合の完了予測時刻を算出する。
フローファイル登録モジュール130は、フローファイル管理モジュール135と接続されている。フローファイル登録モジュール130は、情報処理装置100から投入された文書を処理するためのフローファイルを作成、登録する。フローファイルは、複数のプラグインを指定することで定義する。
フローファイル管理モジュール135は、ジョブ処理/ジョブ情報管理モジュール120、フローファイル登録モジュール130と接続されている。フローファイル管理モジュール135は、フローファイル登録モジュール130で登録されたフローファイルを管理する。
情報処理装置処理管理モジュール165は、ジョブ処理/ジョブ情報管理モジュール160と接続されており、また、通信回線190を介して、情報処理装置100のサーバ処理管理モジュール125、サーバ150B、サーバ150C、サーバ150Dと接続されている。情報処理装置処理管理モジュール165は、情報処理装置100とのやり取りを管理する。少なくとも情報処理装置100からジョブと情報処理装置100における完了予測時刻とを受信する。
(1)プラグインID
(2)処理の完了予測時刻
具体的には、現在サーバ150で処理しているジョブと、処理予約されているジョブ、のすべての処理が完了する完了予測時刻を管理する。例えば、ジョブIDとそのジョブIDで示されるジョブにおける完了予測時刻の組み合わせであり、具体的には、[(jobid1,time1),(jobid2,time2),・・・,(jobidN,timeN)]と表記されるデータを管理する。
(3)単位データあたりの処理時間
ジョブ処理/ジョブ情報管理モジュール160は、情報処理装置処理管理モジュール165によって受信されたジョブをサーバ150で処理を行った場合の完了予測時刻を算出する。
そして、情報処理装置100における完了予測時刻がサーバ150における完了予測時刻より早い場合はジョブを破棄する。
また、情報処理装置100における完了予測時刻がサーバ150における完了予測時刻より遅い場合はジョブ処理を開始するとともにジョブ処理を開始したことを情報処理装置100に通知する。
そして、ジョブ処理が完了した場合に、処理済みのジョブを情報処理装置100に送信する。
この場合、情報処理装置100のジョブ処理/ジョブ情報管理モジュール120は、情報処理装置100で処理を実行した場合の完了予測時刻を再度算出して、サーバ150の完了予測時刻と比較する。
そして、情報処理装置100のジョブ処理/ジョブ情報管理モジュール120は、再度算出した情報処理装置100の完了予測時刻がサーバ150の完了予測時刻より早い場合は、情報処理装置100はサーバ150に対して処理の中止を送信する。これに応じて、サーバ150のジョブ処理/ジョブ情報管理モジュール160は、開始していた処理を中止する。
フローの処理対象データを受け付ける画像処理装置210、フローのジョブ処理を行う複数のサーバ150と、サーバ150へのジョブの振り分けとフローのジョブ処理を行う情報処理装置100によって構成されているシステムである例を示す。
図2(A)に示す例では、情報処理装置100Aは、画像処理装置210A、画像処理装置210B、画像処理装置210C、サーバ150A、サーバ150F、サーバ150G、サーバ150Hと接続されている。情報処理装置100Bは、画像処理装置210D、画像処理装置210E、画像処理装置210F、サーバ150D、サーバ150E、サーバ150F、サーバ150Gと接続されている。ユーザーの操作によって、画像処理装置210で文書が読み込まれ、フローの選択が行われ、画像処理装置210から情報処理装置100に対して指示が行われる。そして、情報処理装置100では、そのフローを分割して、分割後の処理群を複数のサーバ150又は情報処理装置100に割り振る。割り振られたサーバ150、情報処理装置100で処理が行われる。画像処理装置210は、例えば、具体的には、スキャナ、ファックス、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等である。また、カメラ機能を有している携帯端末(例えば、携帯電話、スマートフォン等を含む)等であってもよい。
図2(B)に示す例では、情報処理装置100A、情報処理装置100B、サーバ150A、サーバ150B、サーバ150C、画像処理装置210A、画像処理装置210B、画像処理装置210Cは、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置100、サーバ150による機能は、クラウドサービスとして実現してもよい。
ステップS302では、情報処理装置100自身で待ちジョブの処理をした場合の「完了予測時刻_1」を算出する。
ステップS304では、各サーバ150に対して、「外部サーバID」、「ジョブID」、「プラグインID」、「文書データ」、「ジョブ属性」、「完了予測時刻_1」を送信する。
ステップS306では、情報処理装置100自身で待ちジョブの処理を開始するまでに、サーバ150から返信があったか否かを判断し、あった場合はステップS312へ進み、それ以外の場合はステップS308へ進む。
ステップS310では、情報処理装置100自身が待ちジョブの処理を開始する。
ステップS312では、情報処理装置100自身で待ちジョブの処理をした場合の「完了予測時刻_1’」を算出する。
ステップS316では、「完了予測時刻_2」を返信してきたサーバ150に対して、「処理キャンセル通知」を送信する。
ステップS318では、すべてのサーバ150に「処理キャンセル通知」を送信したか否かを判断し、送信した場合はステップS310へ戻り、それ以外の場合はステップS306へ戻る。
ステップS322では、情報処理装置100自身の待ちジョブを削除する。
ステップS324では、「完了予測時刻_2」を返信してきたサーバ150からの処理結果を待つ。
ステップS328では、ジョブ情報を更新し、次の処理を行う。
ステップS502では、情報処理装置100から、「外部サーバID」、「ジョブID」、「プラグインID」、「文書データ」、「ジョブ属性」、「完了予測時刻_1」を受信する。
ステップS504では、「完了予測時刻_2」を算出する。
ステップS506では、「完了予測時刻_1≦完了予測時刻_2」であるか否かを判断し、「完了予測時刻_1≦完了予測時刻_2」である場合はステップS508へ進み、それ以外の場合はステップS510へ進む。
ステップS510では、「完了予測時刻_2」を情報処理装置100に返信する。
ステップS512では、情報処理装置100から受信したジョブの処理を開始する。
ステップS514では、処理の結果を情報処理装置100に返信する。
なお、ステップS510、ステップS512の処理は、いずれの処理を先に行ってもよいし、又は、並列的に行ってもよい。
ステップS602では、情報処理装置100から「処理キャンセル通知」を受信したか否かを判断し、受信した場合はステップS604へ進み、それ以外の場合は受信するまで待機する。
ステップS604では、その「処理キャンセル通知」に対応する処理を行っているか否かを判断し、行っている場合はステップS606へ進み、それ以外の場合はステップS608へ進む。
ステップS606では、その処理を中止する。
ステップS608では、情報処理装置100から受信したデータを破棄する。
なお、ステップS606、ステップS608の処理は、いずれの処理を先に行ってもよいし、又は、並列的に行ってもよい。
情報処理装置100は、各プラグイン機能の処理で、待ちジョブが発生すると、その待ちジョブを自分で処理した場合の「完了予測時刻_1」を算出する(ステップS302)。
そして、待ちジョブは残したまま、すべてのサーバ150に対し、「外部サーバID」「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」を送る(ステップS304)。
Step11)受け取った「文書データ」を、受け取った「プラグインID」のプラグイン機能で、処理した場合の「完了予測時刻_2」を算出する(ステップS504)。
Step12)算出した「完了予測時刻_2」と、情報処理装置100より受け取った「完了予測時刻_1」と比較する(ステップS506)。
・「完了予測時刻_1」<=「完了予測時刻_2」の場合(ステップS506でYes)
情報処理装置100より受け取ったデータをすべて破棄する(ステップS508)。
・「完了予測時刻_1」>「完了予測時刻_2」の場合(ステップS506でNo)
送られてきた「ジョブID」「プラグインID」「文書データ」「ジョブ属性」を授受し、「処理開始通知」「外部サーバID」「ジョブID」「完了予測時刻_2」を情報処理装置100に返す(ステップS510)。
そして、処理の途中で「処理キャンセル通知」を受け取り(ステップS602でYes)、キャンセル通知されたジョブが存在する場合(ステップS604でYes)は、授受したデータをすべて破棄し、処理を中止し(ステップS606、608)、次のジョブの処理を開始する。
Step21)情報処理装置100自身でその待ちジョブの処理開始するまで、いずれかのサーバ150より「処理開始通知」「外部サーバID」「ジョブID」「完了予測時刻_2」が送られてくるのを待つ(ステップS306)。
いずれかのサーバ150より「処理開始通知」「外部サーバID」「ジョブID」「完了予測時刻_2」が送られてくると、Step22)に進む(ステップS312)。
また、待ちジョブの処理開始まで、情報処理装置100自身より早く処理結果を返してくれるサーバ150が見つからなかった場合(ステップS306でYes)、すべてのサーバ150に対して「処理キャンセル通知」を送付し、自分(情報処理装置100)でジョブ処理を開始する(ステップS308、S310)。
つまり、サーバ150での見積もりが返ってくるまでの間で、情報処理装置100の処理状況に変化があった場合を考慮し、それをここでチェックする。
「完了予測時刻_2」を送ってきたサーバ150に「外部サーバID」「ジョブID」「処理キャンセル通知」を送付する(ステップS316)。
Step21に戻る。
「外部サーバID」以外のサーバ150に「ジョブID」「処理キャンセル通知」を送付する(ステップS320)。
そして、情報処理装置100自身の抱えていた待ちジョブを削除し(ステップS322)、「外部サーバID」のサーバ150からのジョブ処理結果を待つ(ステップS324)。
ジョブ処理/ジョブ情報管理モジュール120は、投入された文書を処理するために「ジョブID」を発行し、ジョブを生成して管理する。生成されたジョブを、フローファイルに定義された「プラグインID」をもとに、各プラグイン機能を、順に呼び出し、処理していく。
各プラグイン機能の処理で待ちジョブが発生すると、そのジョブを情報処理装置100で処理を行うか、サーバ150で処理を行うか判断する。なお、すぐにジョブ処理を開始できる場合は、情報処理装置100で処理する。その場合、ジョブ処理終了後、後述のStep32−1)、Step32−2)の処理だけを実施する。
「完了予測時刻_1」は、例えば、下記のように算出する。
「完了予測時刻_1」=「処理完了予測時刻」で管理されている最後のジョブの処理完了予測時刻+「単位データあたりの処理時間」×文書データサイズ
そして、待ちジョブとして登録したまま、そのジョブを処理するために必要な情報(「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」)を、サーバ処理管理モジュール125に送る。
サーバ処理管理モジュール125より「処理開始通知」「外部サーバID」「ジョブID」「完了予測時刻_2」が送られてくると、Step33)に進む。
待ちジョブの処理を開始時まで、Step33)で自身より早く処理結果を返してくれるサーバ150が見つからなかった場合、すべてのサーバ150に対して「処理キャンセル通知」を送付するよう、サーバ処理管理モジュール125に依頼し、情報処理装置100自身でジョブ処理を開始する。
Step32−1)ジョブの開始時刻と終了時刻、処理した文書データサイズから、単位データあたりの処理時間を算出し、プラグイン処理能力管理モジュール115の「単位データあたりの処理時間」を更新する。
Step32−2)次に、更新した「単位データあたりの処理時間」と、各々のジョブの文書データサイズから、処理完了予測時刻を算出し、プラグイン処理能力管理モジュール115の「処理完了予測時刻」を更新する。例えば、「処理完了予測時刻」で管理されている各ジョブに関し、以下のように算出して、更新する。
あるジョブの[処理完了予測時刻]=直前の実行中/待ちジョブの処理完了予測時刻+「単位データあたりの処理時間」×文書データサイズ
そして、次のジョブ処理を開始する。
「完了予測時刻_1’」<=「完了予測時刻_2」の場合
サーバ処理管理モジュール125に「外部サーバID」「ジョブID」「特定外部サーバの処理キャンセル通知依頼」を送る。「完了予測時刻_2」を送ってきたサーバ150に「処理キャンセル通知」を送付するよう、サーバ処理管理モジュール125に依頼する。
そして、Step31)に戻る。
サーバ処理管理モジュール125に「外部サーバID」「ジョブID」「全サーバの処理キャンセル通知依頼」を送る。「外部サーバID」以外のサーバ150に「処理キャンセル通知」を送付するよう、サーバ処理管理モジュール125に依頼する。
そして、情報処理装置100自身の抱えていた待ちジョブを削除し、「外部サーバID」のサーバ150からのジョブ処理結果を待つ。
同時に、プラグイン処理能力管理モジュール115の「処理完了予測時刻」から、[ジョブID]に合致するデータを削除し、それ以降のジョブに対して、前述のStep33−2)の処理を行う。
サーバ処理管理モジュール125は、サーバ150とのやり取りを管理する。
ジョブ処理/ジョブ情報管理モジュール120より、「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」が渡された場合は、サーバ情報管理モジュール110より抽出したすべての「外部サーバID」に対し、自身の「メインサーバID」と、「外部サーバID」「ジョブID」「文書データ」「プラグインID」「ジョブ属性」「完了予測時刻_1」を送る。
そして、送った「外部サーバID」のリストと、「ジョブID」と「プラグイン」を関連付けて、“送付リスト”として保持しておく。
ジョブ処理/ジョブ情報管理モジュール120より、「外部サーバID」「ジョブID」「特定外部サーバの処理キャンセル通知依頼」が渡された場合、「外部サーバID」に「処理キャンセル通知」「ジョブID」を送付する。
同時に“送付リスト”中の「外部サーバID」のリストから、該当する外部サーバIDを削除する。
同時に“送付リスト” 中の「外部サーバID」のリストから、該当する外部サーバID以外の「外部サーバID」に「処理キャンセル通知」「ジョブID」を送付する。
「処理キャンセル通知」を送付した「外部サーバID」を、“送付リスト” の「外部サーバID」のリストから削除する。
情報処理装置処理管理モジュール165は、情報処理装置100とのやり取りを管理する。
情報処理装置100のサーバ処理管理モジュール125から送られてきた「メインサーバID」「外部サーバID」「ジョブID」「文書データ」「ジョブ属性」「プラグインID」「完了予測時刻_1」を受け取ると、それらすべての情報を、ジョブ処理/ジョブ情報管理モジュール160に送る。
同時に、「メインサーバID」「外部サーバID」「ジョブID」を“送付リスト”として保持しておく。
ジョブ処理/ジョブ情報管理モジュール160は、情報処理装置処理管理モジュール165から「メインサーバID」「外部サーバID」「ジョブID」「文書データ」「ジョブ属性」「プラグインID」「完了予測時刻_1」を受け取ると、そのジョブをサーバ150自身のプラグイン機能で処理した方が早く処理が完了するかどうかを判断する。
「完了予測時刻_2」は、例えば、下記のように算出する。
「完了予測時刻_2」=「処理完了予測時刻」で管理されている最後のジョブの処理完了予測時刻+「単位データあたりの処理時間」×文書データサイズ
「完了予測時刻_1」<=「完了予測時刻_2」の場合
情報処理装置100より受け取ったデータ(「メインサーバID」「外部サーバID」「ジョブID」「文書データ」「ジョブ属性」「プラグインID」「完了予測時刻_1」)をすべて破棄する。
送られてきた「ジョブID」「プラグインID」「文書データ」「ジョブ属性」を授受する。
続いて、「処理開始通知依頼」「メインサーバID」「外部サーバID」「ジョブID」「完了予測時刻_2」を情報処理装置処理管理モジュール165に送る。
ジョブ処理が完了すると、サーバ150でも、情報処理装置100における前述のStep32−1)、Step32−2)の処理を実施する。
そして、次のジョブ処理を開始する。
同時に、プラグイン処理能力管理モジュール115の「処理完了予測時刻」から、[ジョブID]に合致するデータを削除し、それ以降のジョブに対して、前述のStep32−2)の処理を行う。
そして、次のジョブの処理を開始する。
情報処理装置100において、プラグインAの処理で待ちジョブが発生したとする(ステップS700)。
ステップS702では、情報処理装置100が、「完了予測時刻_1」を算出する。
ステップS704では、情報処理装置100は、サーバ150A、サーバ150B、サーバ150C、サーバ150D、サーバ150Eに対して、「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」を送付する。
ステップS708Aでは、サーバ150Aが、「完了予測時刻_1」>「完了予測時刻_2」であれば、ジョブを授受する。
ステップS710Aでは、サーバ150Aが、情報処理装置100に対して、「完了予測時刻_2」を送付する。
ステップS720では、情報処理装置100が、「完了予測時刻_1’」<「完了予測時刻_2」であれば、特定サーバ150のみ処理キャンセルを依頼する。
ステップS722では、情報処理装置100がサーバ150Aに対して、処理キャンセルを依頼する。
ステップS724Aでは、サーバ150Aがジョブを削除する。
ステップS708Bでは、サーバ150Bが、「完了予測時刻_1」>「完了予測時刻_2」であれば、ジョブを授受する。
ステップS710Bでは、サーバ150Bが、情報処理装置100に対して、「完了予測時刻_2」を送付する。
ステップS726では、情報処理装置100が、「完了予測時刻_1’’」>「完了予測時刻_2」であれば、(待ち)ジョブ削除し、他のすべてのサーバ150に処理キャンセルを依頼し、サーバ150Bでの処理結果を待つ。
ステップS708Eでは、サーバ150Eが、「完了予測時刻_1」<「完了予測時刻_2」であれば、送られてきたジョブを削除する。
ステップS730Cでは、サーバ150Cがジョブを削除する。
ステップS730Dでは、サーバ150Dがジョブを削除する。
ステップS730Eでは、サーバ150Eがジョブを削除する。
ステップS714Bでは、サーバ150Bが、情報処理装置100に対して、「ジョブID」「処理済みの文書データ」「処理済みのジョブ属性」を送付する。
ステップS732では、情報処理装置100が、ジョブ情報を更新し、次のプラグイン処理へ進む。
サーバBの「完了予測時刻_2」752Bは、情報処理装置100の「完了予測時刻_1」750よりも早く、情報処理装置100の「完了予測時刻_1’’」756よりも早い。したがって、サーバ150Bでジョブを授受して、処理が行われ、情報処理装置100での待ちジョブは削除されることとなる。
図8(A)の例に示す時刻t1(例えば、ステップS700)では、ジョブ1を実行中であり、待ちジョブに、ジョブ2、ジョブ3、ジョブ4がある状態で、待ちジョブ5が発生したことを示している。待ちジョブ5の「完了予測時刻_1」を算出し、サーバ150に送付する。
なお、情報処理装置100でのジョブの待ち行列が時々刻々と変化するのは、情報処理装置100の処理状況にもよるが、図8(C)の例に示したように、サーバ150での処理状況にも影響を受ける。
情報処理装置100において、プラグインAの処理で待ちジョブが発生したとする(ステップS900)。
ステップS902では、情報処理装置100が、「完了予測時刻_1」を算出する。
ステップS904では、情報処理装置100は、サーバ150A、サーバ150B、サーバ150C、サーバ150D、サーバ150Eに対して、「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」を送付する。
ステップS908Aでは、サーバ150Aが、「完了予測時刻_1」>「完了予測時刻_2」であれば、ジョブを授受する。
ステップS910Aでは、サーバ150Aが、情報処理装置100に対して、「完了予測時刻_2」を送付する。
ステップS920では、情報処理装置100が、「完了予測時刻_1’」<「完了予測時刻_2」であれば、特定サーバ150のみ処理キャンセルを依頼する。
ステップS922では、情報処理装置100がサーバ150Aに対して、処理キャンセルを依頼する。
ステップS924Aでは、サーバ150Aがジョブを削除する。
ステップS908Bでは、サーバ150Bが、「完了予測時刻_1」>「完了予測時刻_2」であれば、ジョブを授受する。
ステップS910Bでは、サーバ150Bが、情報処理装置100に対して、「完了予測時刻_2」を送付する。しかし、情報処理装置100が、サーバ150Bからの「完了予測時刻_2」を受信する際には、ステップS926で示しているように、待ちジョブが実行できる状態になっていたとする。
ステップS908Eでは、サーバ150Eが、「完了予測時刻_1」<「完了予測時刻_2」であれば、送られてきたジョブを削除する。
ステップS928では、情報処理装置100が、サーバ150B、サーバ150C、サーバ150D、サーバ150Eに対して、処理キャンセルを依頼する。なお、サーバ150Aには、ステップS922で処理キャンセルを依頼しているので、再度、処理キャンセルを依頼する必要はない。ただし、サーバ150Aに対しても処理キャンセルを依頼してもよい。
ステップS930Bでは、サーバ150Bがジョブを削除する。
ステップS930Cでは、サーバ150Cがジョブを削除する。
ステップS930Dでは、サーバ150Dがジョブを削除する。
ステップS930Eでは、サーバ150Eがジョブを削除する。
ステップS932では、情報処理装置100が、ジョブ処理を終了し、ジョブ情報を更新し、次のプラグイン処理へ進む。
そこで、待ちジョブが発生した場合、そのジョブ処理を、どのサーバ150で処理するかを判断(判断処理A)する前に、その処理そのものを実施するか否かを判断する機能を追加してもよい。なお、判断処理Aには、前述した情報処理装置100での処理全体を含んでいてもよい。つまり、以下に示す判断は、待ちジョブが発生した直後に行うようにしてもよい。
判断する機能は、例えば、次のものがある。
(1)文書データのサイズを用いて、判断する。
対象としている文書データ(ジョブを構成する文書データ)のサイズを抽出し、その文書データのサイズが、予め定められた閾値未満又は以下である場合に、判断処理Aを実施する。
(2)完了予測時間を用いて、判断する。
待ちジョブの完了予測時間を、「文書データのサイズ×単位データあたりの処理時間」で算出し、その値が、予め定められた時間より大きい又は以上である場合に、判断処理Aを実施する。
予め定められた時間として、例えば以下の値である。
・ユーザーの指定値(閾値)。
・サーバ150で処理した場合の平均処理時間。なお、平均処理時間については後述する。
また、送付するデータサイズを小さくするために、そのプラグイン機能で使用するデータだけ抽出してから、文書データとして送付してもよい。例えば、プラグイン機能が領域を対象とする文字認識処理の場合、文字認識処理する領域のデータを切り出し、それを文書データとして送付するようにしてもよい。
そして、保持していた“送付リスト”を参照し、送られてきた「外部サーバID」以外のサーバ150の「サーバID」に「処理キャンセル通知」「ジョブID」を送付し、保持していた“送付リスト”をすべて削除する。
その後、送られてきたジョブ処理結果は、すべて破棄する。例えば、送付リストに存在しない「外部サーバID」「ジョブID」の処理結果が送られてきた場合は、それらデータを破棄するようにすればよい。
情報処理装置100のフローファイル登録モジュール130は、投入された文書を処理するためのフローファイルを作成、登録する。フローファイルは、複数のプラグインを指定することで定義する。
フローファイル管理モジュール135は、フローファイル登録モジュール130で登録されたフローファイルを管理する。フローID、プラグインIDのリストで管理する。プラグインIDのリストは、処理順に並べて管理されている。例えば、プラグインIDリスト1000を用いる。図10は、プラグインIDリスト1000のデータ構造例を示す説明図である。プラグインIDリスト1000は、フローID欄1005、1番目に処理されるプラグイン機能のプラグインID欄1010、2番目に処理されるプラグイン機能のプラグインID欄1020、3番目に処理されるプラグイン機能のプラグインID欄1030を有している。フローID欄1005は、本実施の形態において、フローを一意に識別するための情報(フローID:IDentification)を記憶している。1番目に処理されるプラグイン機能のプラグインID欄1010は、1番目に処理されるプラグイン機能のプラグインIDを記憶している。2番目に処理されるプラグイン機能のプラグインID欄1020は、2番目に処理されるプラグイン機能のプラグインIDを記憶している。3番目に処理されるプラグイン機能のプラグインID欄1030は、3番目に処理されるプラグイン機能のプラグインIDを記憶している。n番目に処理されるプラグイン機能のプラグインID欄10N0は、n番目に処理されるプラグイン機能のプラグインIDを記憶している。
サーバ情報管理モジュール110は、サーバ150を一意に判別でき、サーバ150のサービスにアクセスできるID情報(例えば、サービスURL)を管理する。
プラグイン処理能力管理テーブル1100は、プラグインID欄1105、処理完了予測時刻欄1110、メインサーバの単位データあたりの処理時間(Sec/KB)欄1120、外部サーバの単位データあたりの処理時間(Sec/KB)欄1130を有している。プラグインID欄1105は、本実施の形態において、プラグインを一意に識別するための情報(プラグインID)を記憶している。処理完了予測時刻欄1110は、処理完了予測時刻を記憶している。メインサーバの単位データあたりの処理時間(Sec/KB)欄1120は、情報処理装置100の単位データあたりの処理時間(Sec/KB)を記憶している。外部サーバの単位データあたりの処理時間(Sec/KB)欄1130は、サーバ150の単位データあたりの処理時間(Sec/KB)を記憶している。なお、処理完了予測時刻欄1110は、情報処理装置100で現在処理しているジョブと、処理予約されているジョブ、のすべての処理が完了する予測時刻を管理している。
文書が投入されてから、ジョブ処理が完了するまでの処理は、後述する「処理フローD」のとおりである。
「処理フローD」のStepD3)で、各プラグイン機能を実行する際、情報処理装置100で処理を行うか、サーバ150で処理を行うか判断する。
処理がすぐ開始できる場合は、情報処理装置100で処理を行うと判断する。
処理がすぐ開始できない場合(待ち状態になる場合)は、後述の「処理フローA」で判断を行う。
情報処理装置100で処理を行うと判断した場合は、後述の「処理フローB」で処理を行う。
サーバ150で処理を行うと判断した場合は、次の式によって「完了予測時刻_1」を算出し、
「完了予測時刻1」=現在時刻+文書データサイズ*メインサーバの単位データあたりの処理時間
サーバ処理管理モジュール125に、「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」を渡す。
同時に、
「サーバ150の単位データあたりの処理時間」=「処理時間」/「処理済みの文書データのデータサイズ」
を算出し、プラグイン処理能力管理モジュール115の該当するプラグインIDの「サーバ150の単位データあたりの平均処理時間」を更新する。
ジョブ処理/ジョブ情報管理モジュール120より「ジョブID」「プラグインID」「文書データ」「ジョブ属性」「完了予測時刻_1」が渡された場合は、サーバ情報管理モジュール110より抽出したすべての「サーバID」に、情報処理装置100自身の「サーバ処理管理モジュール125のサービスURL」「サーバID」「ジョブID」「文書データ」「プラグインID」「ジョブ属性」「完了予測時刻_1」を送る。
そして、送った「ジョブID」と「プラグインID」と(「サーバID」、「送付時刻」)リストを、保持しておく。
サーバ150より「処理開始通知」と「サーバID」が送られてきた場合、保持しておいた「ジョブID」と「プラグインID」と(「サーバID」,「送付時刻」)リストをもとに、以下の処理を行う。
1)「処理開始通知」を送ってきたサーバ150の(「サーバID」、「送付時刻」)と「プラグインID」と「ジョブID」を保持しておく。
2)同時に、1)で保持した「サーバID」以外のサーバ150の「サーバID」に、「処理キャンセル通知」と「ジョブID」を送付する。
「処理開始通知」を送ってきたサーバ150から、「サーバID」「ジョブID」「処理済みの文書データ」「処理済みのジョブ属性値」が送られてきた場合、保持していた(「サーバID」、「送付時刻」)と「プラグインID」と「ジョブID」と受信時刻から、
「処理時間」=「受信時刻」−「送付時刻」
を算出して、ジョブ処理管理手段(ジョブ処理/ジョブ情報管理モジュール120)に、処理結果(「ジョブID」「プラグインID」「処理済みの文書データ」「処理済みのジョブ属性」「処理時間」)を渡す。
その後、送られてきたジョブ処理結果は、すべて破棄する。例えば、保持している「サーバID」と「プラグインID」と「ジョブID」には存在しないジョブ処理結果であれば破棄するようにしてもよい。
具体的には、情報処理装置100のサーバ処理管理モジュール125から送られてきた「サーバ処理管理モジュール125のサービスURL」「サーバID」「ジョブID」「文書データ」「ジョブ属性」「プラグインID」「完了予測時刻_1」を受け取ると、それらすべての情報を、ジョブ処理/ジョブ情報管理モジュール160に送る。
「完了予測時刻_2」=「処理完了予測時刻」+「処理サーバの単位データあたりの処理時間」*文書データサイズ
「完了予測時刻_1」<=「完了予測時刻_2」ならば、情報処理装置100で処理を行うと判断する。
「完了予測時刻_1」>「完了予測時刻_2」ならば、サーバ150で処理を行うと判断する。
情報処理装置100のジョブ処理/ジョブ情報管理モジュール120で、情報処理装置100で処理を行うか、サーバ150で処理を行うかの判断処理フローである。
StepA1)プラグイン処理能力管理モジュール115より、該当するプラグイン機能の情報(「プラグインID」「処理完了予測時刻」「情報処理装置100の単位データあたりの処理時間」「サーバ150に処理を委託するかどうかを判断する閾値」)を取得する。
StepA2)情報処理装置100で処理を行う場合の「完了予測時刻_1」を、次式を用いて算出する。
完了予測時刻_1=(処理完了予測時刻−現在時刻)+文書データサイズ*メインサーバの単位データあたりの処理時間
完了予測時刻_2=文書データサイズ*外部サーバの単位データあたりの処理時間
算出した「完了予測時刻」と、取得した閾値を比較する。
StepA4)「完了予測時刻_1」と「完了予測時刻_2」を比較する。
「完了予測時刻_1」>「完了予測時刻_2」ならば、サーバ150で処理を行うと判断する。
「完了予測時刻_1」<=「完了予測時刻_2」ならば、情報処理装置100で処理を行うと判断する。
情報処理装置100のジョブ処理/ジョブ情報管理モジュール120で、ジョブ処理を行う場合のフローである。
StepB1)プラグイン処理能力管理モジュール115から「メインサーバの単位データあたりの処理時間」と「処理完了予測時刻」のリストを取得し、
各ジョブの「処理完了予測時刻」=現在時刻+「メインサーバの単位データあたりの処理時間」*各ジョブの文書データサイズ
を算出して、プラグイン処理能力管理モジュール115の「処理完了予測時刻」のリストを更新する。
StepB2)ジョブ処理を開始する。
「単位データあたりの処理時間」=ジョブ処理時間/文書データサイズ
を算出し、例えば次の式で算出した値を使って、プラグイン処理能力管理モジュール115の「メインサーバの単位データあたりの処理時間」を更新する。
「メインサーバの単位データあたりの処理時間」=(「メインサーバの単位データあたりの処理時間」+「単位データあたりの処理時間」)/2
StepB4) StepB1)と同じ処理を実施し、プラグイン処理能力管理モジュール115の「処理完了予測時刻」のリストを更新する。
サーバ150で、特定のプラグイン機能の処理を行う場合のフローである。
StepC1)プラグイン処理能力管理モジュール155から「単位データあたりの処理時間」と「処理完了予測時刻」のリストを取得し、
各ジョブの「処理完了予測時刻」=現在時刻+「単位データあたりの処理時間」*各ジョブの「文書データ」のデータサイズ
を算出して、プラグイン処理能力管理モジュール155の「処理完了予測時刻」のリストを更新する。
StepC2)ジョブ処理を開始する。
次に、
「単位データあたりの処理時間」=ジョブ処理時間/「文書データ」のデータサイズ
を算出し、例えば次の式で算出した値を使って、プラグイン処理能力管理モジュール155の「単位データあたりの処理時間」を更新する。
「単位データあたりの処理時間」=(プラグイン処理能力管理モジュール155で保持していた「単位データあたりの処理時間」+算出した「単位データあたりの処理時間」)/2
StepC4) Step1)と同じ処理を実施し、プラグイン処理能力管理モジュール155の「処理完了予測時刻」のリストを更新する。
情報処理装置100で、投入された文書をジョブとして管理し、処理するフローである。
StepD1)文書が投入されると、投入された文書をジョブ管理テーブル1200の文書データ欄1220に、データサイズを文書データサイズ欄1230に保存し、ID情報を発行してジョブID欄1205に保存する。なお、このとき、投入された文書の属性情報などがあれば、ジョブ属性欄1240に登録する。
投入された文書を、どのフローデータで処理するかは、例えば、どの手段で文書が投入されたかなどで判断すればよい。具体例を用いて説明すると、「フォルダAに投入」ならば「フロー001」、「共有フォルダBに投入」ならば「フロー002」、「FTP転送」ならば「フロー009」、「ファックス処理」ならば「フロー003」、「親展フォルダ投入」ならば「フロー004」、「メール処理」ならば「フロー006」等のように、文書投入に該当する処理の数だけフローを用意しておけばよい。
以降、StepD3)とStepD4)の処理を、フローデータに定義されたプラグイン機能分だけ実行していく。
ここで、本実施の形態を用いて、情報処理装置100/サーバ150のいずれかでプラグイン処理を行う。
StepD4)ジョブ管理テーブル1200の文書データ欄1220、文書データサイズ欄1230、ジョブ属性欄1240を、StepD3)で処理された結果の文書データ、ジョブ属性に更新する。
そして、ジョブ管理テーブル1200の処理済みのプラグインID欄1210を、処理が完了したプラグインIDに更新する。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
105…サーバ情報登録モジュール
110…サーバ情報管理モジュール
115…プラグイン処理能力管理モジュール
120…ジョブ処理/ジョブ情報管理モジュール
125…サーバ処理管理モジュール
130…フローファイル登録モジュール
135…フローファイル管理モジュール
150…サーバ
155…プラグイン処理能力管理モジュール
160…ジョブ処理/ジョブ情報管理モジュール
165…情報処理装置処理管理モジュール
190…通信回線
210…画像処理装置
290…通信回線
Claims (7)
- 通信回線を介して第一のジョブ処理装置と第二のジョブ処理装置とが接続されているジョブ処理システムであって、
第一のジョブ処理装置は、
第一のジョブ処理装置において処理対象のジョブが発生した場合に、第一のジョブ処理装置で処理を実行した場合の完了予測時刻を算出する算出手段、
少なくとも処理対象のジョブと完了予測時刻とを第二のジョブ処理装置に対して送信する送信手段、を有し、
第二のジョブ処理装置は、
第一のジョブ処理装置からジョブと完了予測時刻とを受信する受信手段、
受信したジョブを第二のジョブ処理装置で処理を行った場合の完了予測時刻を算出する算出手段、
第一のジョブ処理装置における完了予測時刻が第二のジョブ処理装置における完了予測時刻より早い場合は、受信したジョブを破棄する破棄手段、
第一のジョブ処理装置における完了予測時刻が第二のジョブ処理装置における完了予測時刻より遅い場合は、受信したジョブの処理を開始するとともに、受信したジョブの処理を開始したことを第一のジョブ処理装置に通知する通知手段、
受信したジョブの処理が完了した場合に、処理済みのジョブを第一のジョブ処理装置に送信する処理済みジョブ送信手段、
を有するジョブ処理システム。 - 第二のジョブ処理装置は処理を開始した場合に、第一のジョブ処理装置に対して完了予測時刻も通知し、
第一のジョブ処理装置は第一のジョブ処理装置で処理を実行した場合の完了予測時刻を、第二のジョブ処理装置から完了予測時刻の通知を受けた時点又はそれ以降に、再度算出して、第二のジョブ処理装置の完了予測時刻と比較する、
請求項1に記載のジョブ処理システム。 - 再度算出した第一のジョブ処理装置の完了予測時刻が第二のジョブ処理装置の完了予測時刻より早い場合は、第一のジョブ処理装置は第二のジョブ処理装置に対して、第二のジョブ処理装置が開始した処理の中止を送信する、
請求項2に記載のジョブ処理システム。 - 前記第一のジョブ処理装置において、処理対象のジョブが発生した場合に、ジョブを構成する文書データのサイズを抽出し、文書データのサイズが予め定められた値未満又は以下の場合に、前記算出手段による処理を行う、
請求項1に記載のジョブ処理システム。 - 他のジョブ処理装置からジョブと完了予測時刻とを受信する受信手段、
受信したジョブをジョブ処理装置で処理を行った場合の完了予測時刻を算出する算出手段、
他のジョブ処理装置における完了予測時刻がジョブ処理装置における完了予測時刻より早い場合は、受信したジョブを破棄する破棄手段、
他のジョブ処理装置における完了予測時刻がジョブ処理装置における完了予測時刻より遅い場合は、受信したジョブの処理を開始するとともに、受信したジョブの処理を開始したことを他のジョブ処理装置に通知する通知手段、
受信したジョブの処理が完了した場合に、処理済みのジョブを他のジョブ処理装置に送信する処理済みジョブ送信手段、
を有するジョブ処理装置。 - ジョブ処理装置は処理を開始した場合に、他のジョブ処理装置に対して完了予測時刻も通知する、
請求項5に記載のジョブ処理装置。 - コンピュータを、
他のジョブ処理装置からジョブと完了予測時刻とを受信する受信手段、
受信したジョブを前記コンピュータであるジョブ処理装置で処理を行った場合の完了予測時刻を算出する算出手段、
他のジョブ処理装置における完了予測時刻がジョブ処理装置における完了予測時刻より早い場合は、受信したジョブを破棄する破棄手段、
他のジョブ処理装置における完了予測時刻がジョブ処理装置における完了予測時刻より遅い場合は、受信したジョブの処理を開始するとともに、受信したジョブの処理を開始したことを他のジョブ処理装置に通知する通知手段、
受信したジョブの処理が完了した場合に、処理済みのジョブを他のジョブ処理装置に送信する処理済みジョブ送信手段、
として機能させるためのジョブ処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015143376A JP6500668B2 (ja) | 2015-07-17 | 2015-07-17 | ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム |
US15/019,307 US9569149B2 (en) | 2015-07-17 | 2016-02-09 | Job processing system, job processing apparatus, and non-transitory computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015143376A JP6500668B2 (ja) | 2015-07-17 | 2015-07-17 | ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017027240A JP2017027240A (ja) | 2017-02-02 |
JP6500668B2 true JP6500668B2 (ja) | 2019-04-17 |
Family
ID=57775040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015143376A Expired - Fee Related JP6500668B2 (ja) | 2015-07-17 | 2015-07-17 | ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9569149B2 (ja) |
JP (1) | JP6500668B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108698B2 (en) * | 2017-02-03 | 2021-08-31 | Microsoft Technology Licensing, Llc | Systems and methods for client-side throttling after server handling in a trusted client component |
JP7009894B2 (ja) * | 2017-10-02 | 2022-01-26 | 富士通株式会社 | 分散プロセス管理システム、分散プロセス管理方法、及び情報処理装置 |
WO2020217365A1 (ja) * | 2019-04-24 | 2020-10-29 | パナソニックIpマネジメント株式会社 | 統合ナビゲーションシステムおよび作業指示方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231465A (ja) | 1999-02-10 | 2000-08-22 | Ricoh Co Ltd | ジョブ分散方法 |
US7088462B2 (en) * | 2001-06-29 | 2006-08-08 | International Business Machines Corporation | Print manager having a user interface for specifying how documents are directed to print devices |
US7646505B2 (en) * | 2006-01-17 | 2010-01-12 | Ricoh Company, Ltd. | Optimized printing of electronic documents |
JP5002277B2 (ja) * | 2007-02-06 | 2012-08-15 | キヤノン株式会社 | ジョブ処理装置、ジョブ処理装置の制御方法、記憶媒体及びプログラム |
JP2008293278A (ja) * | 2007-05-24 | 2008-12-04 | Fujitsu Ltd | 分散処理プログラム、分散処理装置、および分散処理方法 |
JP2009184288A (ja) * | 2008-02-08 | 2009-08-20 | Nec Access Technica Ltd | 画像印刷装置、印刷ジョブ転送方法、および印刷ジョブ転送用プログラム |
JP5241345B2 (ja) * | 2008-07-01 | 2013-07-17 | キヤノン株式会社 | ジョブ処理装置及び当該ジョブ処理装置のジョブログの管理方法及びジョブ履歴管理システム |
JP5609195B2 (ja) * | 2010-03-23 | 2014-10-22 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置及びプログラム |
US8836987B2 (en) * | 2011-01-21 | 2014-09-16 | Ricoh Company, Ltd. | Print queue management in a print shop environment |
JP5930356B2 (ja) * | 2011-02-23 | 2016-06-08 | 日本電気株式会社 | 印刷装置の制御装置及び制御方法 |
-
2015
- 2015-07-17 JP JP2015143376A patent/JP6500668B2/ja not_active Expired - Fee Related
-
2016
- 2016-02-09 US US15/019,307 patent/US9569149B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170017443A1 (en) | 2017-01-19 |
JP2017027240A (ja) | 2017-02-02 |
US9569149B2 (en) | 2017-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160011824A1 (en) | Information processing apparatus, terminal apparatus, information processing method, non-transitory computer readable medium, and information processing system | |
US11032436B2 (en) | Information processing apparatus, information processing system, and non-transitory computer readable medium storing program for workflow generation | |
JP2017045099A (ja) | 中継装置及び中継処理プログラム | |
JP2007334886A (ja) | ドキュメント処理ジョブのルーティング・システムおよび方法 | |
JP6565391B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6500668B2 (ja) | ジョブ処理システム、ジョブ処理装置及びジョブ処理プログラム | |
US20160117340A1 (en) | Information processing system, information processing apparatus, and information processing method | |
US11645024B2 (en) | Resuming print job by using accounting information | |
JP5891881B2 (ja) | 情報処理装置及び情報処理プログラム | |
US9509657B2 (en) | Information processing apparatus, relay method, and computer-readable storage medium | |
JP2021101319A (ja) | 情報処理装置及び情報処理プログラム | |
JP6620558B2 (ja) | 情報処理装置及び情報処理プログラム | |
US9300631B2 (en) | Information processing system, information processing apparatus, apparatus, and non-transitory computer readable medium storing information processing program | |
US11399112B2 (en) | Information processing apparatus, non-transitory computer readable medium storing information processing program, and information processing system | |
JP2018015912A (ja) | 画像処理装置、画像処理システム及び画像処理プログラム | |
US9866721B2 (en) | Information processing apparatus, image forming apparatus, and non-transitory computer readable medium for file distribution to servers | |
JP2020170268A (ja) | ファイル管理装置、ファイル管理プログラム、ファイル管理システム、及び情報処理プログラム | |
JP2014182412A (ja) | 情報処理装置、情報処理方法およびプログラム | |
US20240069833A1 (en) | Image forming apparatus, image forming method, and non-transitory computer readable medium | |
JP2018022218A (ja) | 情報処理装置及び情報処理プログラム | |
JP7139991B2 (ja) | 情報処理システム、方法、および情報処理装置 | |
US20160088167A1 (en) | Image forming device, information processing method, and non-transitory computer readable medium | |
US20160020984A1 (en) | Information processing apparatus, method, and system, and non-transitory computer readable medium | |
US9531904B2 (en) | Information processing apparatus, control method of information processing apparatus, and recording medium | |
US9071774B2 (en) | Control device, image output apparatus, image output system, non-transitory computer readable medium, and control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180911 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6500668 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |