JP2020119018A - 情報処理システム、情報処理装置及びプログラム - Google Patents

情報処理システム、情報処理装置及びプログラム Download PDF

Info

Publication number
JP2020119018A
JP2020119018A JP2019007013A JP2019007013A JP2020119018A JP 2020119018 A JP2020119018 A JP 2020119018A JP 2019007013 A JP2019007013 A JP 2019007013A JP 2019007013 A JP2019007013 A JP 2019007013A JP 2020119018 A JP2020119018 A JP 2020119018A
Authority
JP
Japan
Prior art keywords
processing
unit
task
stored
state
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.)
Granted
Application number
JP2019007013A
Other languages
English (en)
Other versions
JP7243207B2 (ja
Inventor
関口 ゆみ
Yumi Sekiguchi
ゆみ 関口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2019007013A priority Critical patent/JP7243207B2/ja
Priority to US16/543,630 priority patent/US11477340B2/en
Publication of JP2020119018A publication Critical patent/JP2020119018A/ja
Application granted granted Critical
Publication of JP7243207B2 publication Critical patent/JP7243207B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00954Scheduling operations or managing resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection 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/00344Connection 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 management, maintenance, service or repair apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00957Compiling jobs, e.g. for batch processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Retry When Errors Occur (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】各部が分散構成されたシステムにおいて、ワークフローの処理中にシステムのいずれかで障害が発生した場合、分散配置された各構成の処理状態の情報の不整合による再開時に生じる不都合を抑制する。【解決手段】情報処理システム1は、ワークフローを実行させるためのジョブを生成するサーバ2と、ジョブを構成する処理単位の状態がジョブごとに記憶されるワークフローDB3と、処理単位を実行する複数のタスク実行部4と、サーバ2により処理単位が格納される依頼キュー6Aと、依頼キュー6Aから処理単位が取り出され、タスク実行部4で実行された後、タスク実行部4により処理単位に対する処理結果が格納される結果キュー6Bと、システムのいずれかで障害が発生した後のシステムの再起動時、又は予め定められたタイミングに、依頼キュー6A及び結果キュー6Bの格納状態に基づいて処理単位の状態を示す情報を出力する出力手段701とを備える。【選択図】図1

Description

本発明は、情報処理システム、情報処理装置及びプログラムに関する。
近年、ワークフローシステムにおいて、ワークフローを記述したシナリオを実行中に障害が発生した場合でも、処理データに対して一貫性をもってシナリオの再実行を可能とするワークフロー実行装置が提案されている(例えば、特許文献1参照。)。
特許文献1に記載されたワークフロー実行方法は、アクティビティの実行時にシナリオインスタンスIDに対応してシナリオステータスを組にしてシナリオステータス管理手段に格納し、シナリオの実行中に障害を検知した場合、シナリオステータス管理手段のシナリオステータスカラムを更新して未完終了フラグを設定し、シナリオの再実行時には新規シナリオインスタンスIDを発行し、未完終了フラグが設定されているシナリオステータス管理手段のシナリオインスタンスIDを取得し、この取得したシナリオインスタンスIDをキーに検索して、保存されているデータオブジェクトを取得し、このデータオブジェクトに付与されているデータオブジェクトIDを新たなシナリオインスタンスIDに関連付けて採番される新しいデータオブジェクトIDに書き換えてシナリオを再実行する。
特許第3463020号公報
各部が分散構成されたシステムにおいて、ワークフローの処理中にシステムのいずれかで障害が発生したためにステータスの更新ができない場合、再起動したときに再実行してはいけない処理が実行される等の不都合が発生することがある。
本発明の課題は、各部が分散構成されたシステムにおいて、ワークフローの処理中にシステムのいずれかで障害が発生した場合、分散配置された各構成の処理状態の情報の不整合による再開時に生じる不都合を抑制することができる情報処理システム、情報処理装置及びプログラムを提供することにある。
[1]各部が分散構成されたシステムであって、
1以上の処理単位が任意に組み合わされて定義されたワークフローを管理するとともに、前記ワークフローを実行させるためのジョブを生成する管理部と、
前記管理部により前記処理単位の状態が前記ジョブごとに記憶される記憶部と、
前記処理単位を実行する複数の処理部と、
前記管理部により実行要求として前記処理単位が格納される処理要求格納部と、
前記処理要求格納部から前記処理単位が取り出され、前記処理部で実行された後、前記処理部により前記処理単位に対する処理結果が格納される処理結果格納部と、
前記管理部、前記記憶部、及び前記複数の処理部のいずれかで障害が発生した後の前記システムの再起動時、又は予め定められたタイミングに、前記処理要求格納部及び前記処理結果格納部の格納状態に基づいて前記処理単位の状態を示す情報を出力する出力部と、を備えた情報処理システム。
[2]前記出力部は、前記記憶部に記憶されている前記処理単位の状態が依頼済みの前記処理単位について、前記処理要求格納部及び前記処理結果格納部の格納状態に基づいて前記処理単位の状態を示す情報を出力する、前記[1]に記載の情報処理システム。
[3]前記格納状態は、格納されているか否かの状態である、前記[1]又は[2]に記載の情報処理システム。
[4]前記出力部は、前記処理要求格納部に前記処理単位が格納されておらず、前記処理結果格納部に前記処理結果が格納されているときは、前記処理結果に応じた前記処理単位の状態を示す情報を出力する、前記[3]に記載の情報処理システム。
[5]前記出力部は、前記処理結果が正常終了の場合、前記処理単位の状態を示す情報として処理が正常終了した旨を示す情報を前記管理部に出力する、前記[4]に記載の情報処理システム。
[6]前記出力部は、前記処理結果が異常終了の場合、前記処理単位の状態を示す情報として処理が異常終了した旨を示す情報を前記管理部に出力する、前記[4]に記載の情報処理システム。
[7]前記出力部は、前記処理要求格納部に前記処理単位が格納されており、前記処理結果格納部に前記処理結果が格納されていないときは、前記処理部が処理単位を実行中である旨の情報を出力する、前記[3]に記載の情報処理システム。
[8]前記出力部は、予め定められた時間を経過しても前記処理結果格納部に前記処理結果が格納されない場合、前記処理部に障害が発生した可能性があることを示す情報を出力する、前記[7]に記載の情報処理システム。
[9]前記出力部は、前記処理要求格納部に前記処理単位が格納されておらず、前記処理結果格納部に前記処理結果が格納されていないときは、当該処理単位を再実行する要求の情報を前記管理部に出力する、前記[3]に記載の情報処理システム。
[10]自装置が適用されるシステムの再起動時、又は予め定められたタイミングに、1以上の処理単位が任意に組み合わされて定義されたワークフローを実行させるためのジョブを構成する前記処理単位が実行要求として格納される処理要求格納部、及び前記処理単位に対する処理結果が格納される前記処理結果格納部の格納状態に基づいて、前記処理単位の状態を示す情報を出力する出力部、を備えた情報処理装置。
[11]コンピュータを、当該コンピュータが適用されるシステムの再起動時、又は予め定められたタイミングに、1以上の処理単位が任意に組み合わされて定義されたワークフローを実行させるためのジョブを構成する前記処理単位が実行要求として格納される処理要求格納部、及び前記処理単位に対する処理結果が格納される前記処理結果格納部の格納状態に基づいて、前記処理結果の状態を示す情報を出力する出力手段として機能させるためのプログラム。
請求項1、10、11に係る発明によれば、各部が分散構成されたシステムにおいて、ワークフローの処理中にシステムのいずれかで障害が発生した場合、分散配置された各構成の処理状態の情報の再開時に生じる不都合を抑制することができる。
請求項2、3に係る発明によれば、処理要求格納部及び処理結果格納部の両方の格納状態を調べることにより処理結果の状態が分かる。
請求項4に係る発明によれば、処理単位に対する処理が処理部で完了した後に障害が発生したことが分かる。
請求項5、6に係る発明によれば、処理単位に対する処理が処理部で完了した後に処理結果を示す情報として正常終了した旨又は異常終了した旨を管理部に知らせることができる。
請求項7に係る発明によれば、処理単位の処理を処理部に依頼した後に障害が発生したことが分かる。
請求項8に係る発明によれば、処理単位の処理を処理部に依頼した後に予め定められた時間を経過しても処理結果格納部に処理結果が格納されない場合には、処理部に障害が発生した可能性があることが分かる。
請求項9に係る発明によれば、処理要求格納部及び処理結果格納部のいずれにも格納されていない場合、処理単位の処理を処理部に依頼する前に障害が発生したことが分かる。
図1は、本発明の実施の形態に係る情報処理システムの構成例を示すブロック図である。 図2は、ワークフローDBに格納されるレコードの一例を示し、図2(a)は、ワークフローインスタンスDBレコードの一例を示す図、図2(b)は、タスクインスタンスDBレコードの一例を示す図である。 図3(a)〜(c)は、タスク処理の流れの一例を示す図である。 図4(a)、(b)は、タスク処理の流れの一例を示す図である。 図5は、タスク処理の流れの一例を示す図である。 図6は、タスク処理の流れの一例を示す図である。 図7は、情報処理システムの動作の一例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
[実施の形態の要約]
本実施の形態に係る情報処理システムは、各部が分散構成されたシステムであって、1以上の処理単位が任意に組み合わされて定義されたワークフローを管理するとともに、ワークフローを実行させるためのジョブを生成する管理部と、管理部により処理単位の状態がジョブごとに記憶される記憶部と、処理単位を実行する複数の処理部と、管理部により実行要求として処理単位が格納される処理要求格納部と、処理要求格納部から処理単位が取り出され、処理部で実行された後、処理部により処理単位に対する処理結果が格納される処理結果格納部と、管理部、記憶部、及び複数の処理部のいずれかで障害が発生した後のシステムの再起動時、又は予め定められたタイミングに、処理要求格納部及び処理結果格納部の格納状態に基づいて処理単位の状態を示す情報を出力する出力部とを備える。
予め定められたタイミングには、例えば、次の場合がある。
(a)ワークフローの実行開始前
(b)ワークフローの実行終了後
これらは、システムが稼働していない時間帯(例えば、1日のうちシステム稼働前又は稼働後)であるが、これらに限られない。
[実施の形態]
図1は、本発明の実施の形態に係る情報処理システムの構成例を示すブロック図である。この情報処理システム1は、各部が分散構成されたシステムであって、ワークフローサーバ2と、ワークフローデータベース(DB)3と、処理を実行する複数のタスク実行部4A、4B、4C・・・(これらを総称するときは、以下「タスク実行部4」ともいう。)と、クライアント5と、依頼キュー6Aと、結果キュー6Bと、情報処理装置7とを有し、これらがネットワーク8によって互いに接続されている。ワークフローサーバ2は、管理部の一例である。ワークフローDB3は、記憶部の一例である。タスク実行部4は、処理部の一例である。ワークフローサーバ2、ワークフローDB3及びタスク実行部4は、分散配置された各構成の一例である。依頼キュー6Aは、処理要求格納部の一例である。結果キュー6Bは、処理結果格納部の一例である。
なお、依頼キュー6A及び結果キュー6Bは、ワークフローサーバ2や情報処理装置7に設けられていてもよく、クラウドサーバ等の外部サーバに設けられていてもよい。また、依頼キュー6A及び結果キュー6Bは、順序の制御がワークフローサーバ2等で行われるのであれば、キュー形式に限られず、それぞれ対応するメモリを用いてもよく、共通に使用するメモリを用いてもよい。
「ワークフロー」とは、処理の流れを意味し、情報処理システム1は、処理の流れを自動化又は半自動化するシステムである。「処理」には、例えば、手書きされた帳票等の文書に対するOCR(光学文字認識)処理、OCR結果の確認・修正処理、承認処理、文書データの登録処理等がある。
ワークフローDB3には、プロセル管理部21によりタスクの状態がジョブごとに記憶される。ワークフローDB3には、ワークフローインスタンスDBレコード31(図2(a)参照)、タスクインスタンスDBレコード32(図2(b)参照)、ワークフロー定義等が記憶されている。ジョブは、少なくとも1つのタスクから構成されている。タスクは、処理単位の一例である。
依頼キュー6Aには、タスク管理部22からタスク実行部4に処理を依頼する際にタスク管理部22によりタスク(図1では、task1,task2・・・で表す。)61が格納される。なお、依頼キュー6Aは、タスク実行部4に応じて分けてもよく、タスク実行部4に共通に使用されるようにしてもよい。依頼キュー6Aには、処理される順序に従って1つ又は2つ以上のタスク61が格納される。
タスク61には、ワークフローインスタンスID、タスクインスタンスID、タスク実行部4を識別するタスク実行部識別情報(URL、タスク実行部名等)、タスクの実行に必要なパラメータ等の情報が登録される。ワークフローインスタンスIDは、ワークフローインスタンスを識別する識別情報の一例である。タスクインスタンスIDは、タスクインスタンスを識別する識別情報の一例である。ワークフローインスタンスは、ジョブの一例である。
結果キュー6Bには、タスク実行部4からタスク管理部22にタスク61に対する処理結果を返す際にタスク実行部4により処理結果(図1では、result1,result2・・・で表す。)62が格納される。結果キュー6Bには、処理される順序に従って1つ又は2つ以上の処理結果62が格納されるなお、結果キュー6Bは、タスク実行部4に応じて分けてもよく、タスク実行部4に共通に使用されるようにしてもよい。また、依頼キュー6A及び結果キュー6Bは、同一の記憶部内に設けてもよい。
処理結果62には、ワークフローインスタンスID、タスクインスタンスID、タスク61の実行結果(正常終了/異常終了)等の情報が登録される。
タスク実行部4は、処理に対応して設けられている。処理が例えば、OCR処理の場合、OCR処理を実行する機能を有するタスク実行部4がそのOCR処理を実行する。タスク実行部4は、依頼キュー6Aに格納されたタスク61に含まれるタスク実行部識別情報が自己を示している場合、そのタスク61を依頼キュー6Aから取り出して処理を実行する。タスク実行部4は、タスク61を実行した後、タスク61に対して正常終了で完了(正常完了)したか、異常終了で完了(異常完了)したかの実行結果を含む処理結果62を結果キュー6Bに格納する。
図2は、ワークフローDB3に格納されるレコードの一例を示し、図2(a)は、ワークフローインスタンスDBレコード31の一例を示し、図2(b)は、タスクインスタンスDBレコード32の一例を示す。
ワークフローインスタンスDBレコード31は、ワークフローインスタンスID、ワークフロー名、ステータス等の項目を有する。ワークフローインスタンスIDには、ワークフローインスタンスIDが記録される。ワークフロー名には、ワークフローの名前が記録される。ステータスには、ワークフローインスタンスの実行状況が記録され、「Active」、「Completed」の2種がある。「Active」は、ワークフローインスタンスが生成されたことを意味する。「Completed」は、ワークフローインスタンスが正常終了したことを意味する。なお、ワークフローインスタンスIDの代わりに、ジョブを識別するジョブIDを用いてもよい。
タスクインスタンスDBレコード32は、タスクインスタンスID、ワークフローインスタンスID、ワークフロー名、ステータス等の項目を有する。タスクインスタンスIDには、タスクインスタンスIDが記録される。ワークフロー名には、ワークフローの名前が記録される。ステータスには、タスクの実行状況が記録され、「Ready」、「Running」、「Completed」、「Failed」の4種がある。「Ready」は、タスクインスタンスが生成されたことを意味する。「Running」は、タスク実行部4が処理を実行中であることを意味する。処理を依頼した直後に「Running」となる。「Completed」は、タスクの処理が正常終了したことを意味する。「Failed」は、タスクの処理が失敗したことを意味する。「Ready」、「Running」、「Completed」、及び「Failed」は、処理単位の状態を示す情報の一例である。「Running」は、処理単位の依頼済みの一例である。「Completed」は、処理が正常終了した旨の情報の一例である。「Failed」は、処理が異常終了した旨の情報の一例である。
(ワークフローサーバの構成)
ワークフローサーバ2は、プロセス管理部21と、タスク管理部22とを備える。
プロセス管理部21は、複数の処理の流れが定義されたワークフローを管理する。プロセス管理部21は、ワークフローDB3からワークフロー定義を読み込み、クライアント5からの指示に基づいてワークフローインスタンスを生成し、実行する。すなわち、プロセス管理部21は、ワークフロー定義に基づき実行するタスクを選択し、その後の制御はタスク管理部22に任せ、タスク管理部22から処理完了通知を受け取ったら、次に実行するタスクを選択する。また、プロセス管理部21は、後述する障害検出手段700からエラー通知を受け取った場合には、エラーをクライアント5に通知する。
プロセス管理部21は、ワークフローインスタンスの実行状況をワークフローDB3の図2(a)に示すワークフローインスタンスDBレコード31のステータスに保存、更新する。すなわち、プロセス管理部21は、ワークフローインスタンスを生成した際に、実行状況としてワークフローインスタンスDBレコード31のステータスに「Active」を記録し、正常終了すると「Completed」に更新する。
(タスク管理部の構成)
タスク管理部22は、プロセス管理部21から実行を依頼されたタスクの実行を管理する。実際の処理はタスク実行部4に依頼する。
タスク管理部22は、タスク実行部4に処理を依頼する場合、依頼キュー6Aにプロセス管理部21が選択したタスク61を記録する。タスク実行部4からの処理結果62を取得する場合、結果キュー6Bから処理結果62を取得する。
タスク管理部22は、タスク61の実行状況をワークフローDB3の図2(b)に示すタスクインスタンスDBレコード32のステータスに記録、更新する。すなわち、タスク管理部22は、プロセス管理部21から実行を依頼された際に、ワークフローインスタンスに紐付いたタスク61の実行状況としてタスクインスタンスDBレコード32のステータスに「Ready」を記録し、タスク実行部4に処理を依頼する直前に「Running」に更新し、タスク実行部4からの処理結果が正常終了であれば「Completed」に更新し、異常終了であれば「Failed」に更新する。
タスク管理部22は、タスクの実行状況のステータスを「Completed」に更新した場合、処理完了通知をプロセス管理部21に返し、「Failed」に更新した場合、エラー通知をプロセス管理部21に返す。「Running」状態の場合はタスク実行部4で処理が行われるため、タスク管理部22は、プロセス管理部21からの制御は一切受け付けない。
(情報処理装置の構成)
情報処理装置7は、制御部70と、記憶部71と、通信部72とを備える。
制御部70は、CPU(Central Processing Unit)、インターフェース等から構成されている。CPUは、記憶部71に記憶されたプログラム710に従って動作することにより、障害検出手段700、出力手段701等として機能する。なお、障害検出手段700を情報処理装置7に設けずにワークフローサーバ2、ワークフローDB3に設けてもよく、これらとは独立して設けてもよい。
記憶部71は、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等から構成されている。記憶部71は、プログラム710等の各種の情報を記憶する。
障害検出手段700は、例えば、ワークフローサーバ2、ワークフローDB3及び各タスク実行部4に定期的に確認信号を送信し、確認信号に対する応答信号の有無により障害を検出する。例えば、ワークフローサーバ2、ワークフローDB3又はタスク実行部4がダウンした場合、応答信号を送信できなくなり、障害検出手段700は障害を検出する。
出力手段701は、障害検出手段700により障害が検出された後のシステムの再起動時、又は予め定められたタイミング(例えば、システムの稼働前又は稼働後)に、依頼キュー6A及び結果キュー6Bの格納状態に基づいてタスクの状態を示す情報をワークフローサーバ2に出力する。すなわち出力手段701は、ワークフローDB3に記憶されているタスクの状態が依頼済みの「Running」のワークフローについて、依頼キュー6A及び結果キュー6Bの格納状態に基づいてタスクの状態を示す情報を出力する。ここで、「格納状態」は、タスク61又は処理結果62が格納されているか否かの状態である。
「Running」状態は、タスク管理部22がタスク実行部4にタスクの処理を依頼した後に障害が発生し、その処理結果62を取得していないままの状態である。依頼キュー6Aにタスク実行部4が未処理のタスク61が蓄積されている場合もあれば、結果キュー6Bにタスク管理部22が未取得の処理結果62が蓄積されている場合もあれば、依頼キュー6A及び結果キュー6Bのいずれにも情報が格納されていない場合がある。ワークフローサーバ2は、再稼働しているため、依頼したときの制御状態は、消滅しており、受け取ることができない状態にある。
出力手段701は、依頼キュー6Aにタスク61が格納されておらず、結果キュー6Bに処理結果62が格納されているときは、処理結果62に応じたタスク61の状態を示す情報をタスク管理部22に出力する。この場合、処理結果62が正常終了の場合、タスク61の状態を示す情報として処理が正常終了した旨の情報(例えば、処理完了通知)をタスク管理部22に出力する。一方、処理結果62が異常終了の場合、タスク61の状態を示す情報として処理が異常終了した旨の情報(例えば、エラー通知)をタスク管理部22に出力する。
また、出力手段701は、依頼キュー6Aにタスク61が格納されており、結果キュー6Bに処理結果62が格納されていないときは、タスク実行部4が処理を実行中である旨の情報(例えば、処理実行中)をタスク管理部22に出力する。この場合、出力手段701は、予め定められた時間を経過しても結果キュー6Bに処理結果62が格納されない場合、タスク実行部4に障害が発生した可能性があることを示す情報(例えば、警告)をタスク管理部22に出力する。
出力手段701は、依頼キュー6Aにタスク61が格納されておらず、結果キュー6Bに処理結果62が格納されていないときは、当該タスク61を再実行する要求の情報をタスク管理部22に出力する。
(実施の形態の動作)
次に、情報処理システム1の動作の一例について図3から図7を参照して説明する。図3から図6は、タスク処理の流れの一例を示す図である。図7は、情報処理システム1の動作の一例を示すフローチャートである。
(1)タスク処理の流れ
図3(a)に示すように、連続して処理されるタスク1、タスク2及びタスク3からなるワークフローインスタンスが生成されたとする。また、タスク1はタスク実行部4Aが実行し、タスク2はタスク実行部4Bが実行し、タスク3はタスク実行部4Cが実行するものとする。
ワークフローサーバ2のプロセス管理部21は、クライアント7から処理が依頼されると、例えば、図3(b)に示すように、ワークフローインスタンスDBレコード31のワークフローインスタンスIDに「testwf-id1」を記録し、ワークフロー名に「testwf」を記録し、ステータスに「Active」を記録する。
タスク実行部4Aにタスク1の処理が依頼されると、ワークフローサーバ2のタスク管理部22は、例えば、図3(c)に示すように、タスクインスタンスDBレコード32のタスクインスタンスIDに「task1id1-testwf-id1」を記録し、タスク名に「task1」を記録し、ワークフローインスタンスIDに「testwf-id1」を記録し、ワークフロー名に「testwf」を記録し、ステータスに「Ready」を記録する。
タスク実行部4Aがタスク1の処理を開始すると、例えば、図4(a)に示すように、タクス管理部22は、タスクインスタンスDBレコード32のステータスを「Ready」から「Running」に更新する。「Running」の状態では、タスク実行部4Aがタスク61の処理を行っているため、プロセス管理部21では制御はできない状態にある。
タスク実行部4Aによるタスク1の処理が終了すると、例えば、図4(b)に示すように、タスク管理部22は、タスクインスタンスDBレコード32のステータスを「Running」から「Completed」に更新する。
タスク実行部4Bにタスク2が依頼されると、例えば、図5に示すように、タスク管理部22は、タスクインスタンスDBレコード32に新たなレコードを記録する。すなわち、タスクインスタンスDBレコード32の2行目のタスクインスタンスIDに「task2id1-testwf-id1」が記録され、タスク名に「task2」が記録され、ワークフローインスタンスIDに「testwf-id1」が記録され、ワークフロー名に「testwf」が記録され、ステータスに「Ready」が記録される。
タスク実行部4Bによりタスク2の処理が終了し、タスク2と同様にタスク3の処理が終了してワークフローが終了すると、図6に示すように、タスクインスタンスDBレコード32の3行目のタスクインスタンスIDに「task3id1-testwf-id1」が記録され、タスク名に「task3」が記録され、ワークフローインスタンスIDに「testwf-id1」が記録され、ワークフロー名に「testwf」が記録され、ステータスに「Completed」が記録される。
(2)障害発生後の再起動時、又は予め定められたタイミングになった場合
障害検出手段700により障害が検出された後の再起動時(S1:Yes)、又は予め定められたタイミングになった場合(S2:Yes)、出力手段701は、タスクインスタンスDBレコード32のステータスが「Running」のレコードがあるか否かを判断する(S3)。「Running」のレコードがなければ(S3:No)、処理は終了する。
タスクインスタンスDBレコード32のステータスが「Running」のレコードがある場合(S3:Yes)、出力手段701は、結果キュー6Bに処理結果62が格納されているか否かを判断する(S4)。
結果キュー6Bに処理結果62が格納されている場合(S4:Yes)、正常終了で完了したか否かを判断する(S5)。結果キュー6Bに処理結果62が格納されている場合、タスク実行部4での処理が完了した後に障害が発生したと推定することができる。
結果キュー6Bに格納された処理結果62に含まれる実行結果が正常終了を示している場合、すなわち正常終了で完了している場合(S5:Yes)、出力手段701は、タスクインスタンスDBレコード32のステータスを「Completed」に更新し、当該タスク61の処理完了をプロセス管理部21に通知する(S6)。処理完了通知により、プロセス管理部21が次のタスク61に制御を移すことになる。
上記ステップS4において、結果キュー6Bに格納された処理結果62に含まれる実行結果が異常終了を示している場合、すなわち正常終了で完了していない場合(S5:No)、出力手段701は、タスクインスタンスDBレコード32のステータスを「Failed」に更新し、当該タスク61のエラーをプロセス管理部21に通知する(S7)。なお、この場合、該当するタスク61の前方のタスク61に制御を戻すようにプロセス管理部21に通知してもよく、該当するワークフローインスタンスを削除してもよい。また、エラーの通知を含むこれらのうちいずれを採用するかをクライアント7に選択させてもよい。
上記ステップS4において、結果キュー6Bに処理結果62が格納されていない場合(S4:No)、出力手段701は、依頼キュー6Aにタスク61が格納されているか否かを判断する(S8)。
依頼キュー6Aにタスク61が格納されている場合(S8:Yes)、出力手段701は、予め定められた時間結果キュー6Bに処理結果62が格納されるまで待機する(S9)。結果キュー6Bに処理結果62が格納されておらず、依頼キュー6Aにタスク61が格納されている場合は、タスク実行部4に処理が依頼された後に障害が発生したと推定することができる。しかし、タスク実行部4が処理済みであるか否かは不明であることから、ステップS9において、予め定められた時間結果キュー6Bに処理結果62が格納されるまで待機する。
予め定められた時間経過前に結果キュー6Bに処理結果62が格納された場合(S10:Yes)、上記ステップS5に進む。
予め定められた時間経過しても結果キュー6Bに処理結果62が格納されない場合(S10:No)、出力手段701は、警告をタスク管理部22に通知する(S11)。出力手段701は、警告をタスク管理部22だけでなく、プロセス管理部21や障害検出手段700やクライアント5に通知して出力するようにしてもよい。
上記ステップS8において、依頼キュー6Aにタスク61が格納されていない場合(S8:No)、すなわち結果キュー6B及び依頼キュー6Aのいずれにも格納されていない場合は、タスク実行部4に処理が依頼される前に障害が発生したと推定することができ、実際のタスク61の処理が実行されていないことから、出力手段701は、当該タスク61の再実行をタスク管理部22に依頼する(S12)。
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。例えば、依頼キュー6Aに格納するタスク、結果キュー6Bに格納する処理結果に格納した時刻を埋め込み、依頼キュー6A及び結果キュー6Bでの滞留時間が長いものを対象にしてもよい。
制御部70の各手段は、それぞれ一部又は全部を再構成可能回路(FPGA:Field Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)等のハードウエア回路によって構成してもよい。
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。
また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して提供することができ、クラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することもできる。
1…情報処理システム、2…ワークフローサーバ、
4、4A、4B、4C…タスク実行部、5…クライアント、6A…依頼キュー、
6B…結果キュー、7…情報処理装置、8…ネットワーク、21…プロセス管理部、
22…タスク管理部、31…ワークフローインスタンスDBレコード、
32…タスクインスタンスDBレコード、70…制御部、71…記憶部、
72…通信部、700…障害検出手段、701…出力手段、710…プログラム

Claims (11)

  1. 各部が分散構成されたシステムであって、
    1以上の処理単位が任意に組み合わされて定義されたワークフローを管理するとともに、前記ワークフローを実行させるためのジョブを生成する管理部と、
    前記管理部により前記処理単位の状態が前記ジョブごとに記憶される記憶部と、
    前記処理単位を実行する複数の処理部と、
    前記管理部により実行要求として前記処理単位が格納される処理要求格納部と、
    前記処理要求格納部から前記処理単位が取り出され、前記処理部で実行された後、前記処理部により前記処理単位に対する処理結果が格納される処理結果格納部と、
    前記管理部、前記記憶部、及び前記複数の処理部のいずれかで障害が発生した後の前記システムの再起動時、又は予め定められたタイミングに、前記処理要求格納部及び前記処理結果格納部の格納状態に基づいて前記処理単位の状態を示す情報を出力する出力部と、
    を備えた情報処理システム。
  2. 前記出力部は、前記記憶部に記憶されている前記処理単位の状態が依頼済みの前記処理単位について、前記処理要求格納部及び前記処理結果格納部の格納状態に基づいて前記処理単位の状態を示す情報を出力する、
    請求項1に記載の情報処理システム。
  3. 前記格納状態は、格納されているか否かの状態である、
    請求項1又は2に記載の情報処理システム。
  4. 前記出力部は、前記処理要求格納部に前記処理単位が格納されておらず、前記処理結果格納部に前記処理結果が格納されているときは、前記処理結果に応じた前記処理単位の状態を示す情報を出力する、
    請求項3に記載の情報処理システム。
  5. 前記出力部は、前記処理結果が正常終了の場合、前記処理単位の状態を示す情報として処理が正常終了した旨を示す情報を前記管理部に出力する、
    請求項4に記載の情報処理システム。
  6. 前記出力部は、前記処理結果が正常終了の場合、前記処理単位の状態を示す情報として処理が正常終了した旨を示す情報を前記管理部に出力する、
    請求項4に記載の情報処理システム。
  7. 前記出力部は、前記処理要求格納部に前記処理単位が格納されており、前記処理結果格納部に前記処理結果が格納されていないときは、前記処理部が処理単位を実行中である旨の情報を出力する、
    請求項3に記載の情報処理システム。
  8. 前記出力部は、予め定められた時間を経過しても前記処理結果格納部に前記処理結果が格納されない場合、前記処理部に障害が発生した可能性があることを示す情報を出力する、
    請求項7に記載の情報処理システム。
  9. 前記出力部は、前記処理要求格納部に前記処理単位が格納されておらず、前記処理結果格納部に前記処理結果が格納されていないときは、当該処理単位を再実行する要求の情報を前記管理部に出力する、
    請求項3に記載の情報処理システム。
  10. 自装置が適用されるシステムの再起動時、又は予め定められたタイミングに、1以上の処理単位が任意に組み合わされて定義されたワークフローを実行させるためのジョブを構成する前記処理単位が実行要求として格納される処理要求格納部、及び前記処理単位に対する処理結果が格納される前記処理結果格納部の格納状態に基づいて、前記処理単位の状態を示す情報を出力する出力部、
    を備えた情報処理装置。
  11. コンピュータを、
    当該コンピュータが適用されるシステムの再起動時、又は予め定められたタイミングに、1以上の処理単位が任意に組み合わされて定義されたワークフローを実行させるためのジョブを構成する前記処理単位が実行要求として格納される処理要求格納部、及び前記処理単位に対する処理結果が格納される前記処理結果格納部の格納状態に基づいて、前記処理結果の状態を示す情報を出力する出力手段、
    として機能させるためのプログラム。

JP2019007013A 2019-01-18 2019-01-18 情報処理システム、情報処理装置及びプログラム Active JP7243207B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019007013A JP7243207B2 (ja) 2019-01-18 2019-01-18 情報処理システム、情報処理装置及びプログラム
US16/543,630 US11477340B2 (en) 2019-01-18 2019-08-19 Information processing system and apparatus and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019007013A JP7243207B2 (ja) 2019-01-18 2019-01-18 情報処理システム、情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2020119018A true JP2020119018A (ja) 2020-08-06
JP7243207B2 JP7243207B2 (ja) 2023-03-22

Family

ID=71609286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019007013A Active JP7243207B2 (ja) 2019-01-18 2019-01-18 情報処理システム、情報処理装置及びプログラム

Country Status (2)

Country Link
US (1) US11477340B2 (ja)
JP (1) JP7243207B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455190B2 (en) * 2016-02-05 2022-09-27 Sas Institute Inc. Implicit status in many task computing
WO2022109351A1 (en) * 2020-11-20 2022-05-27 Okta, Inc. Server-based workflow management using priorities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502122A (ja) * 2001-08-29 2005-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・キューイング・アプリケーションを監視するためのシステムおよび方法
JP2014178733A (ja) * 2013-03-13 2014-09-25 Fuji Xerox Co Ltd ワークフローシステム、ユーザ端末装置、データ処理装置及びプログラム
JP2014182412A (ja) * 2013-03-15 2014-09-29 Ricoh Co Ltd 情報処理装置、情報処理方法およびプログラム
US20170364843A1 (en) * 2016-06-21 2017-12-21 Amazon Technologies, Inc. Process Visualization Platform

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3463020B2 (ja) 2000-06-14 2003-11-05 日本電信電話株式会社 ワークフロー実行方法および装置とワークフロー実行プログラムを記録した記録媒体
JP6984506B2 (ja) * 2018-03-16 2021-12-22 株式会社リコー 情報処理システム、情報処理装置及びプログラム
JP7479121B2 (ja) * 2019-02-01 2024-05-08 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法
JP2021182312A (ja) * 2020-05-20 2021-11-25 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502122A (ja) * 2001-08-29 2005-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・キューイング・アプリケーションを監視するためのシステムおよび方法
JP2014178733A (ja) * 2013-03-13 2014-09-25 Fuji Xerox Co Ltd ワークフローシステム、ユーザ端末装置、データ処理装置及びプログラム
JP2014182412A (ja) * 2013-03-15 2014-09-29 Ricoh Co Ltd 情報処理装置、情報処理方法およびプログラム
US20170364843A1 (en) * 2016-06-21 2017-12-21 Amazon Technologies, Inc. Process Visualization Platform

Also Published As

Publication number Publication date
US11477340B2 (en) 2022-10-18
JP7243207B2 (ja) 2023-03-22
US20200236244A1 (en) 2020-07-23

Similar Documents

Publication Publication Date Title
JP5075736B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム
CN106856489B (zh) 一种分布式存储系统的服务节点切换方法和装置
WO2017140131A1 (zh) 数据写入、读取方法及装置、云存储系统
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US8627135B2 (en) Management of a distributed computing system through replication of write ahead logs
US20160212206A1 (en) Deterministic database system and data transferring method thereof
JP4983795B2 (ja) システム管理プログラム、システム管理装置およびシステム管理方法
US9159050B2 (en) Providing atomicity for a unit of work
CN110888889A (zh) 一种数据信息更新方法、装置及设备
CN107612950B (zh) 一种提供服务的方法、装置、系统、电子设备
CN111198769A (zh) 信息处理方法及其系统、计算机系统及计算机可读介质
US11397632B2 (en) Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
US11500812B2 (en) Intermediate file processing method, client, server, and system
JP2020119018A (ja) 情報処理システム、情報処理装置及びプログラム
US11669573B2 (en) Data management system
EP2416526B1 (en) Task switching method, server node and cluster system
CN110830582A (zh) 一种基于服务器集群选主方法和装置
JP2007058506A (ja) 文書管理サーバ、文書管理システム、及び、文書管理プログラムとその記録媒体
JPH11259326A (ja) ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体
JP6225606B2 (ja) データベース監視装置、データベース監視方法、並びにコンピュータ・プログラム
CN110781039B (zh) 哨兵进程选举方法及装置
US20200305300A1 (en) Method for remotely clearing abnormal status of racks applied in data center
US10474544B1 (en) Distributed monitoring agents for cluster execution of jobs
JP5466740B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム
US10853003B2 (en) Method of managing print jobs based on job identification of the print jobs in printing system and apparatus for performing the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230127

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: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230220

R150 Certificate of patent or registration of utility model

Ref document number: 7243207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150