JP2020170331A - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP2020170331A
JP2020170331A JP2019071146A JP2019071146A JP2020170331A JP 2020170331 A JP2020170331 A JP 2020170331A JP 2019071146 A JP2019071146 A JP 2019071146A JP 2019071146 A JP2019071146 A JP 2019071146A JP 2020170331 A JP2020170331 A JP 2020170331A
Authority
JP
Japan
Prior art keywords
processing
workflow
task
execution
processing method
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.)
Pending
Application number
JP2019071146A
Other languages
English (en)
Inventor
井坂 洋一
Yoichi Isaka
洋一 井坂
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 JP2019071146A priority Critical patent/JP2020170331A/ja
Publication of JP2020170331A publication Critical patent/JP2020170331A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】処理の状況に応じて同期処理方式とするか非同期処理方式とするかを切り替えることが可能な情報処理装置及びプログラムを提供する。【解決手段】情報処理システム1において、情報処理装置2は、ワークフローの情報を管理するワークフロー管理部20と、ワークフローの実行の履歴を管理する実行履歴管理部21と、各種のデータを記憶する記憶部22と、ワークフローの実行を制御するワークフロー制御部23と、タスクごとに生成される実行指示を通知するジョブメッセージを一時的に滞留するキューイングサービス24と、各種通知のやり取りを行う仲介サービス25と、を有する。ワークフロー管理部の判定手段202は、処理部A、処理部Bの処理の状況に応じて、注目するタスクの実行方式を切り替えるべきか否かを判定する。【選択図】図1

Description

本発明は、情報処理装置及びプログラムに関する。
近年、複数のジョブを連携させてジョブ連携として実行する際に、先行するジョブが実行した結果に応じて、該ジョブに後続するジョブの実行を制御する制御装置が提案されている(例えば、特許文献1参照。)。
特許文献1に記載された制御装置は、後続ジョブを実行させる実行条件を設定する制御画面を表示する表示工程と、前記制御装置で利用される記録装置で、先行する先行ジョブを実行させた実行結果を保持する保持工程と、前記記録装置で保持された前記実行結果を取得する取得工程と、前記取得工程において取得された前記実行結果および前記制御画面を介して設定された実行条件に応じて、前記先行ジョブに後続する後続ジョブの実行を制御する制御工程と、を有する。
特許第5840266号公報
複数の予め定められた単位の処理(以下、「タスク」ともいう。)を連結させて構築した一連の業務の流れ(以下、「ワークフロー」ともいう。)の実行を制御するワークフロー制御システムでは、ワークフローを制御する工程と同期して処理を実行する方式(以下、「同期処理方式」ともいう。)、及びワークフローを制御する工程と分離して処理を実行する方式(以下、「非同期方式」ともいう。)のうちいずれか一方の方式によってタスクが実行される。
同期処理方式では、処理部3の混雑の度合い(以下、「ビジー状態」ともいう。)や、処理の待ち時間が予め定められた基準となる時間を超えること(すなわち、「タイムアウト」)により処理が停止する虞がある。また、非同期方式では、ワークフローを構築する各種タスクの実行を指示する実行指示(以下、「ジョブ」ともいう。)を通知するジョブメッセージを一時的に滞留させる手段(以下、「キューイングサービス」ともいう。)が用いられるが、かかるキューイングサービスでのジョブメッセージが滞留する時間が長くなることにより処理が停止する虞がある。したがって、同期処理方式及び非同期処理方式のうちいずれか一方の方式のみで実行するよりも、タスクに適した方式を柔軟に選択して実行することが望まれている。
本発明の課題は、処理の状況に応じて同期処理方式とするか非同期処理方式とするかを切り替えることを可能とする情報処理装置及びプログラムを提供することにある。
[1]一連の業務を構成する予め定められた単位の処理を実行する実行手段と、
前記実行手段の処理の状況に応じて、前記単位の処理を前記一連の業務と同期させて実行する第1の処理の方式と、前記単位の処理を前記一連の業務と同期させずに実行する第2の処理の方式との間で切り替える切替手段と、
を備える、情報処理装置。
[2]前記切替手段は、前記実行手段による前記単位の処理の実行に要する処理時間が予め定められた第1の条件を満たすときに、前記第2の処理の方式から前記第1の処理の方式に切り替える、
前記[1]に記載の情報処理装置。
[3]前記処理時間を計測する計測手段をさらに備える、
前記[2]に記載の情報処理装置。
[4]前記切替手段は、前記実行手段にかかる負荷が予め定められた第2の条件を満たすときに、前記第1の処理の方式から前記第2の処理の方式に切り替える、
前記[1]から[3]のいずれか1つに記載の情報処理装置。
[5]前記負荷を示す情報として、前記実行手段において前記単位の処理が終了するまでの待ち時間が予め定められた基準の時間を超える第1の回数、及び前記単位の処理の実行の試みを繰り返す第2の回数を取得する取得手段をさらに備え、
前記切替手段は、前記第1の回数及び前記第2の回数のいずれか一方が予め定められた回数を超えるときに、前記第1の処理の方式から前記第2の処理の方式に切り替える、
前記[4]に記載の情報処理装置。
[6]コンピュータを
一連の業務を構成する予め定められた単位の処理を実行する実行手段と、
前記実行手段の処理の状況に応じて、前記単位の処理を前記一連の業務と同期させて実行する第1の処理の方式と、前記単位の処理を前記一連の業務と同期させずに実行する第2の処理の方式との間で切り替える切替手段
として、機能させるためのプログラム。
本発明によれば、処理の状況に応じて同期処理方式とするか非同期処理方式とするかを切り替えることができる。
図1は、本実施の形態に係る情報処理システムの制御系の一例を示すブロック図である。 図2は、ワークフローパターンテーブルの一例を示す図である。 図3は、タスクの実行方式を模式的に説明する図であり、(a)は、同期処理方式の一例を示す図、(b)は、非同期処理方式の一例を示す図である。 図4は、業務フローの一例を示すモデル図である。 図5は、業務フローの記述言語の一例を示す図であり、(a)は、同期処理方式の例を示す図、(b)は、非同期処理方式の例を示す図である。 図6は、図4に示す業務フローに係る記述言語の一例を示す図である。 図7は、実行時間の一例を模式的に説明する図である。 図8は、図1に示す情報処理装置の動作の一例を示すフローチャートである。 図9は、マッピング情報の一例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
[実施の形態]
図1は、本発明の実施の形態に係る情報処理システムの制御系の一例を示す模式図である。この情報処理システム1は、情報処理装置2と、情報処理装置2に不図示のネットワークを介して接続された処理部3とを備えている。処理部3は、実行手段の一例である。
このような情報処理装置2として、例えば、パーソナルコンピュータ、タブレッド端末、多機能携帯電話機(スマートフォン)等を用いることができる。また、処理部3には、例えば、画像の処理を行う機能を備える装置(すなわち、画像読取装置、画像出力装置等)や、データの送受信を行う機能を備えた装置(データ送信装置、メールサーバ装置等)、文書や画像データ等の読み取り機能を備えた装置(画像読取装置、スキャナー等)、文字認識を行う機能(OCR:Optical Character Recognition)を備えた装置、画像の解析を行う機能を備えた装置(画像処理装置等)、データベースへのデータの登録や登録の際のデータ変換(例えば、文書データから画像データへの変換等)を行う機能を備えた装置、帳票の形式(フォーマット)を認識及び判定する機能を備えた装置、QRコード(登録商標)やバーコードを付加する機能を備えた装置、情報を秘匿するステガノグラフィ機能を備えた装置等が含まれる。
処理部3は、ワークフロー(後述する)を構築する予め定められた単位の処理(以下、「タスク」ともいう。)を実行する。処理部3は、実行されるタスクごとに設けられる。処理部3は、単数でもよく複数でもよい。以下、複数の場合にそれぞれを区別して特定する場合は、「処理部3A」、「処理部3B」、・・の要領で符号にアルファベットを付して示すものとする。また、処理部3は、必ずしも情報処理装置2の外部に設ける必要はなく、情報処理装置2内に設けてもよい。
(情報処理装置の構成)
情報処理装置2は、ワークフローの情報を管理するワークフロー管理部20と、ワークフローの実行の履歴を管理する実行履歴管理部21と、各種のデータを記憶する記憶部22と、ワークフローの実行を制御するワークフロー制御部23と、タスクごとに生成される実行指示(以下、「ジョブ」ともいう。)を通知するジョブメッセージを一時的に滞留するキューイングサービス24と、処理部3及びキューイングサービス24との間で各種通知(以下、単に「メッセージ」ともいう。)のやり取りを行う仲介サービス25と、を有して構成されている。
ワークフロー管理部20、実行履歴管理部21及びワークフロー制御部23は、CPU(Central Processing Unit)、インターフェース等から構成されている。CPUは、記憶部22に記憶されたプログラム220に従って動作することにより、マッピング手段200、生成手段201、判定手段202、切替手段203、滞留時間測定手段210、処理時間測定手段211、実行指示手段230、送信手段231、受信手段232等として機能する。各手段の詳細については後述する。
(各構成について)
次に、上述した情報処理装置2の各構成について説明する。
〔ワークフロー管理部20〕
ワークフロー管理部20は、ワークフローに係る各種情報を管理する。ここで、「ワークフロー」とは、複数のタスクを関連付けて構築した一連の業務の流れをいう。具体的には、ワークフロー管理部20は、マッピング手段200、生成手段201、判定手段202、切替手段203等として機能する。判定手段202は、取得手段の一例である。
マッピング手段200は、切替手段203(詳細は後述する)によってタスクを実行する方式(以下、単に「実行方式」ともいう。)が切り替えられる前のタスクを含んで構築されたワークフロー(以下、「デフォルトのワークフロー」ともいう。)に係るワークフローID(図2参照)と、切替手段203によって実行方式が切り替えられた後のタスクを含んで構築されたワークフロー(以下、「新たなワークフロー」ともいう。)に係るワークフローIDと、の対応関係(以下、「マッピング」ともいう。)を示すマッピング情報(図9参照。)を管理する。生成手段201は、ユーザの指示に応じてワークフローを生成する。実行方式の詳細については、後述する。
判定手段202は、処理部3の処理の状況に応じて、注目するタスクの実行方式を切り替えるべきか否かを判定する。処理部3の処理の状況は、例えば、処理部3によるタスクの実行に要する時間(以下、単に「処理時間」ともいう。)や、処理部3にかかる容量の負荷(例えば、CPUやメモリの稼働率をいう。)に応じて特定される。
具体的には、判定手段202は、実行履歴管理部21が取得したタスクの実行時間(後述する。図7参照。)が予め定められた第1の条件を満たすか否か、あるいは、処理部3のタイムアウトの回数やリトライの回数が予め定められた第2の条件を満たすか否かを判定する。タイムアウトの回数は、第1の回数の一例である。リトライの回数は、第2の回数の一例である。また、タイムアウトの回数及びリトライの回数は、処理部3の負荷を示す情報の一例である。
「予め定められた第1の条件」とは、タスクの実行を早く完了するという観点から実行方式を選択する条件をいう。予め定められた第1の条件には、例えば、処理部3による処理時間が占める割合が実行時間に対して一定以下であること、すなわち、キューイングサービス24によるジョブメッセージの滞留時間(後述する。図7参照。)が占める割合が一定以上であること等が含まれる。
「タイムアウト」とは、タスクの実行を開始する依頼(以下、単に「開始依頼」ともいう。)が処理部3に送られてから実際のタスクの実行が終了されるまで(より具体的には、処理部3から終了通知が送られるまで)の待ち時間が予め定められた基準となる時間を超えることをいう。この基準時間は、処理部3の内部にそれぞれ予め設定されていてもよい。「リトライ」とは、処理部3での何らかのエラーの発生や、処理部3内のタスクの混雑の度合い(すなわち、「ビジー状態」)等により、処理部3が同一のタスクの実行の試みを繰り返すことをいう。
「予め定められた第2の条件」とは、処理部3にかかる負荷を軽減する観点から実行方式を選択する条件をいう。予め定められた第2の条件には、例えば、上述したタイムアウトの回数やリトライの回数が予め定められた基準となる回数を超えること等が含まれる。
切替手段203は、判定手段202によりタスクの実行方式を切り替えるべきと判定された場合に、生成手段201によって生成されたデフォルトのワークフローにおいて、当該タスクの実行方式を切り替えた新たなワークフローを作成する。また、切替手段203は、上述したマッピング情報に、デフォルトのワークフローに係るワークフローIDと新たなワークフローに係るワークフローIDとを関連付けて登録する。
〔実行履歴管理部21〕
実行履歴管理部21は、ワークフローの実行の履歴を管理する。具体的には、実行履歴管理部21は、滞留時間測定手段210、処理時間測定手段211等として機能する。処理時間測定手段211は、計測手段の一例である。滞留時間測定手段210は、キューイングサービス24の記憶領域(以下、「キュー」ともいう。)内にジョブメッセージが滞留している時間を測定する。また、滞留時間測定手段210は、同一のタスクにおいて、一定の時間的な範囲(例えば、予め定められた直近の範囲)で行われた複数の実行に係る滞留時間を測定し、予め定められた方法でこれらを集計して出力する。
処理時間測定手段211は、仲介サービス25を介して、処理部3によるタスクの処理時間を測定する。処理時間は、例えば、処理部3がキューイングサービス24からの処理の開始の依頼を受け付けてから当該タスクの実行を終了するまでに要する時間としてよい。
処理時間測定手段211は、例えば、処理部3に記録されたログ情報を利用して処理時間を測定してもよく、キューイングサービス24内に記録された処理時間を測定してもよい。また、処理時間測定手段211は、一定の時間的な範囲(例えば、予め定められた直近の範囲)で行われた複数の実行に対して処理時間を測定し、予め定められた方法でこれらを集計して出力する。
〔記憶部22〕
記憶部22は、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等から構成され、プログラム220や、ワークフローパターンテーブル221(図2参照)等の各種データを記憶する。ワークフローパターンテーブル221は、ワークフローごとにタスクの実行方式を記録したテーブルである。ワークフローパターンテーブル221の構成については後述する。
〔ワークフロー制御部23〕
ワークフロー制御部23は、ワークフローの実行を制御する。具体的には、ワークフロー制御部23は、実行指示手段230、送信手段231、受信手段232等として機能する。
(1)自動タスク
実行指示手段230は、処理部3に対して処理機能の実行を指示する。具体的には、実行指示手段230は、処理部3に対して対応するタスクの実行の開始依頼を行うとともに、処理部3からのタスクの実行を終了したことを示す通知(以下、単に「終了通知」ともいう。)を受け取る。実行指示手段230は、後述する同期処理方式でタスクを実行するための手段である。
(2)送信タスク
送信手段231は、キューイングサービス24に対してタスクの実行の開始依頼を送信する。送信手段231により依頼されたタスクは、キューイングサービス24に滞留する。
(3)受信タスク
受信手段232は、キューイングサービス24から、処理部3によるタスクの終了通知を受信する。送信手段231及び受信手段232は、非同期処理方式でタスクを実行するための手段である。
〔キューイングサービス24〕
キューイングサービス24は、ジョブメッセージを一時的に記憶するキュー(不図示)を備え、ジョブメッセージを受け付けた順に対応する処理部3に対してタスクの実行を指示する機能を有する。また、キューイングサービス24は、処理部3からタスクの終了通知を受け付け、ワークフロー制御部23に該終了通知を送信する。キューイングサービス24は、非同期処理方式で用いられる。
〔仲介サービス25〕
仲介サービス25は、キューイングサービス24と処理部3との間を仲介する機能を有する。具体的には、仲介サービス25は、キューイングサービス24と処理部3との間でプロトコルの変換を行う機能を有する。仲介サービス25は、例えば、処理時間測定手段211からの処理時間の測定指示に応じて、各処理部3と通信してタスクの処理時間を測定し、測定結果をキューイングサービス24に返す機能を有する。
また、仲介サービス25は、上記の機能に加えて、以下の機能を有してもよい。
−処理部3Aが複数のサーバ装置に設けられている場合における処理の分散機能(「ロードバランス機能」ともいう。)、
−複数の処理部3に対して同時に処理を実行させる際に実行する処理の数を制御する機能(例えば、リソースを共有する(一時的な処理状態を固定ファイル等に保存する等)処理を同時に複数実行させるときに不整合状態となる可能性を低減するために必ず1つのプロセスしか存在しないように制御する機能)、
−処理サービス名と処理機能のマッピング及び連携機能(具体的には、キューイングサービスのジョブメッセージに含まれる実行内容は処理サービス名で渡され、仲介サービス内の設定により処理サービス名を解釈して実行する処理機能に割り当てる機能。例えば、「処理サービスA」がジョブメッセージに記述されている場合、実際の処理は「処理機能A」と「処理機能B」の連続実行処理として実行される。)、及び
−エラー発生時のリトライ機能(例えば、キューにジョブメッセージが大量に滞留しているときに機能する)等。
(ワークフローパターンテーブル221の構成)
図2は、ワークフローパターンテーブル221の一例を示す図である。図2に示すように、ワークフローパターンテーブル221には、「ワークフローグループID」欄と、「ワークフローID」欄と、「タスク」欄と、が設けられている。
「ワークフローID」欄には、ワークフローを識別する情報であるID(例えば、番号)が記録されている。「タスク」欄には、ワークフローを構築するタスクごとに実行方式が登録されている。具体的には、「タスク」欄には、当該タスクを同期処理方式で実行するか、非同期処理方式で実行するかを示す情報が記録されている。ワークフローグループとは、タスクの同期処理と非同期処理とを置き換えただけの同種のワークフローをいう。
一例として、図2で示す例では、当該タスクが同期処理方式で実行される場合、「タスク」欄には「1」と記録され、非同期処理方式で実行される場合、「タスク」欄には「0」と記録される。また、「タスク」欄は、ワークフローを構築するタスクの数に応じて、「タスクA」〜「タスクZ」のように複数の欄を設けてもよい。なお、この「タスク」欄に記録される情報は、ユーザの指示に応じて生成手段201により設定される、初期の設定(以下、単に「予期設定」ともいう。)としての値である。なお、図2のタスク列の値が1の場合は、BPMN(後述する)上のタスクは同期処理用タスクの1つに対応し、タスク列の値が0の場合は、BPMN上のタスクは、送信タスクと受信タスクとの2つに対応する。
(マッピング情報)
図9は、マッピング情報の一例を示す図であり、(a)は、現在実行中のワークフローIDと対応するワークフローグループIDのテーブル222aの一例を示す図、(b)は、同一のワークフローグループIDに含まれるグループIDと現在実行中のグループIDのテーブル222bの一例を示す図である。
実行を指示されたワークフローIDが図9(a)に示すテーブル222aに含まれる場合、指示されたワークフローIDをそのまま使う。実行を指示されたワークフローIDが図9(a)に示すテーブル222aに含まれない場合、上述の図2に示すワークフローパターンテーブル221から指示されたワークフローIDを取得する。この場合、図9(a)に示すテーブル222aから、取得したワークフローグループIDに対応するワークフローIDを取得して使う。使われるワークフローIDを変更するときに、図9(a)に示すテーブル222a内の該当するワークフローグループIDの行(1行のみ)を変更する。
実行を指示されたワークフローIDに対応する実行中ワークフローIDを図9(b)に示すテーブル222bから検索し、取得したIDを使う。使われるワークフローIDを変更するときに、図9(b)に示すテーブル222bの実行中ワークフローIDが変更前のワークフローIDと等しい行を検索し、該当行の実行中ワークフローIDを変更後のワークフローIDに置換する。
新しいワークフローID(ID−0)が追加される場合、図2に示すワークフローパターンテーブル221からワークフローグループIDを検索キーとしてワークフローIDを1行のみ検索(ID−1)し、図9(b)に示すテーブル222bからワークフローIDがID−1である行の実行中ワークフローID(ID−2)を抽出する。図9(b)に示すテーブル222bに新しい行として、ワークフローIDがID−0で実行中ワークフローIDがDI−2の行を追加する。
(実行方式について)
図3は、タスクの実行方式を模式的に説明する図であり、(a)は、同期処理方式の一例を示す図、(b)は、非同期処理方式の一例を示す図である。実行方式には、例えば、ワークフロー制御プロセスと処理実行プロセスが連動している方式、具体的には、ワークフロー制御プロセスを停止すると、処理実行プロセスは停止または放置され、ワークフロー制御プロセスを再実行した時に、処理を再び最初から実行する方式(以下、「同期処理方式」ともいう。)と、ワークフロー制御プロセスと処理実行プロセスが連動していない方式、具体的には、処理の実行を依頼した後は受信タスクで処理の結果の待ち状態となり、ワークフロー制御プロセスを停止した後に再開した場合に停止したときの状態から再開する方式(以下、「非同期処理方式」ともいう。)が含まれる。同期処理方式は、第1の処理の方式の一例である。非同期処理方式は、第2の処理の方式の一例である。
同期処理方式では、実行指示手段230により直接的に処理部3に対してタスクの実行の指示を行う。具体的には、同期処理方式では、図3(a)に示すように、実行指示手段230が処理部3に対して直接的にタスクの開始依頼を行うとともに、処理部3が当該タスクの実行を終了した後に処理部3から送られる終了通知を受け取る。
また、同期処理方式では、処理部3は、実行指示手段230からの依頼に応じて実時間(すなわち、「リアルタイム」)で処理を実行する。また、開始依頼が行われると、処理部3は、タスクの実行を停止することなく終了するまで実行する。
非同期処理方式では、ジョブメッセージをキューイングサービス24に一時的に滞留させ、送信手段231及び受信手段232によりキューイングサービス24を介して間接的に処理部3に対してタスクの実行の指示を行う。具体的には、非同期処理方式では、図3(b)に示すように、送信手段231がキューイングサービス24にタスクの開始依頼を行う。開始依頼とともに送信されたジョブメッセージは、キューイングサービス24のキュー内に一時的に滞留する。
キューイングサービス24は、処理部3に対して、キュー内に滞留しているジョブメッセージに係るタスクの実行を開始する依頼を行う。処理部3は、タスクの実行を終了すると終了通知をキューイングサービス24に返す。受信手段232は、キューイングサービス24から送られる終了通知を受信する。
(実施の形態の動作)
次に、情報処理装置2の動作の一例について図4、図5及び図6を参照して説明する。
〔ワークフローのモデル〕
まず、動作の説明に用いるワークフローのモデルについて図4を参照して説明する。図4は、業務フローの一例を示すモデル図である。このモデル図は、業務プロセスを記述する方法であるBPMN(Business Process Model and Notation)に基づいて作成したものである。業務フロー5は、ワークフローの一例である。なお、以下の動作の説明では、ワークフローとして図4に示す業務フロー5を例に挙げて説明するが、本実施の形態で適用されるワークフローは、図4に示す業務フロー5に限定されるものではない。
図4に示すように、業務フロー5は、複数のタスク50(50A〜50J)と、複数のタスクに係る選択肢の中から特定のタスク50を選択する条件が定義された分岐51とを含んで構築される。具体的には、業務フロー5は、文書データの開封及び仕分けに係る第1のタスク50A、スキャンに係る第2のタスク50B、非同期処理方式で行われる帳票の認識に係る第3のタスク50C、非同期処理方式で行われた帳票の認識の結果を受信する第4のタスク50D、同期処理方式で行われる帳票の認識に係る第5のタスク50E、OCRに係る第6のタスク50F、OCRの結果の補正に係る第7のタスク50G、データベース(単に、「DB」ともいう。)へのデータの登録に係る第8のタスク50H、外部に納品するデータの作成に係る第9のタスク50I、及びメールの送信に係る第10のタスク50Jを含む。
なお、上述したように、これら各タスク50は、それぞれ対応する処理部3により実行される。また、図4に示す例では、帳票の認識に関するタスクについては、分岐51により同期処理方式で実行される第3のタスク50Cと、非同期処理方式により実行される第5のタスク50Eとに分かれるものとする(破線枠参照。)。
分岐51は、帳票の認識に関するタスクの実行方式を切り替える条件を含んで構成される。具体的には、タスクの実行方式を非同期処理方式から同期処理方式に切り替える第1の条件と、タスクの実行方式を同期処理方式から非同期処理方式に切り替える第2の条件とを含む。第1の条件は、例えば、上述した「予め定められた第1の条件」が該当する。第2の条件は、例えば、上述した「予め定められた第2の条件」が該当する。
注目するタスクの実行方式の初期設定(すなわち、ワークフローパターンテーブル221に記録された情報をいう。)が、同期処理方式か非同期処理方式かに分けて、より具体的に説明する。
(1)初期設定が非同期処理方式の場合
タスクの実行方式が非同期処理方式に設定されている場合、判定手段202は、実行履歴管理部21から実行時間を取得し、取得した実行時間が上述した予め定められた第1の条件を満たすか否か判定する。実行時間が予め定められた第1の条件を満たす場合、切替手段203は、タスクの実行方式を非同期処理方式から同期処理方式に切り替えるとともに、切り替え後の新たなワークフローを作成する。
なお、実行時間が予め定められた第1の条件を満たさない場合は、ワークフローパターンテーブル221に初期設定として記録された実行方式に従って非同期処理方式でタスクが実行されるようになっている。
(2)初期設定が同期処理方式の場合
タスクの実行方式が同期処理方式に設定されている場合、判定手段202は、実行履歴管理部21から、当該タスクを実行する処理部3でのタイムアウトの回数やリトライの回数に関する情報を取得し、タイムアウトの回数やリトライの回数が予め定められた第2の条件を満たすか否か、すなわち、予め定められた回数を超えるか否かを判定する。タイムアウトの回数やリトライの回数が予め定められた回数を超える場合、切替手段203は、タスクの実行方式を同期処理方式から非同期処理方式に切り替えるとともに、切り替え後の新たなワークフローを作成する。
なお、タイムアウトの回数やリトライの回数が予め定められた回数以下の場合は、ワークフローパターンテーブル221に初期設定として記録された実行方式に従って同期処理方式でタスクが実行されるようになっている。
〔記述言語〕
次に、図5及び図6を参照して、図4に示す業務フロー5を記述する記述言語について説明する。図5は、業務フローの記述言語の一例を示す図であり、(a)は、同期処理方式の例を示す図、(b)は、非同期処理方式の例を示す図である。図6は、図4に示す業務フローに係る記述言語の一例を示す図である。記述言語6とは、業務フロー5を実行するための仕様を記述する方法の1つであり、予め定められたルールに従ってモデル図を変換して作成できるようになっている。なお、図5各図及び図6では、図4に示す業務フロー5を構築するタスク50のうち、帳票の認識に係る第3のタスク50C及び第5のタスク50Eを例に挙げて説明する。
図5(a)に示すように、同期処理方式に係る記述言語(以下、「第1の記述言語」ともいう。)6Aは、プロセス起動(又は開始依頼)を行う(61)。
図5(b)に示すように、非同期処理方式に係る記述言語(以下、「第2の記述言語」ともいう。)6Bは、キューイングサービスへのジョブメッセージの送信を行う(62)。処理完了後に仲介サービス25から返送される応答メッセージにジョブIDとメッセージ名(63)を含めることで、応答メッセージ受信時にどのジョブのどのタスクを実行するかを判別することができる。
また、図6に示すように、同期処理方式及び非同期処理方式間の切り替えを行う分岐51を含む記述言語(以下、「第3の記述言語」ともいう。)6Cは、同期処理方式及び非同期処理方式間の実行方式の切り替えを有効とするか無効とするかを示す変数64をさらに含む。
この変数64は、当該変数64を宣言する文字列「Sync」と媒介変数とが「==」等の演算子を挟んで記載されている。文字列「Sync」が、例えば「True」と設定されている場合、実行方式の切り替えが有効となり、例えば「False」と設定されている場合、実行方式の切り替えが無効となるようになっている。
〔ユースケース〕
次に、実行方式の切り替えを行うユースケースについて、いくつかの具体的な事例を挙げて説明する。同期処理と非同期処理の切り替えについては、以下の2通りの実現方法がある。
1.切り替えパターンに応じてワークフローを管理し、選択された切り替えパターンのワークフローを実行する方法、及び
2.切り替えパターンが増える毎に、該当タスクを条件分岐適用パターンに変更したワークフローに更新し、条件分岐の条件式によって同期/非同期を切り替える方法。
図7は、実行時間の一例を模式的に説明する図である。図7(a)は、処理部3が、例えば、GPU(Graphic Processing Unit)等の多重並列処理(「多重スレッド処理」ともいう。)を行わないケースにおける実行時間Tの一例を示し、図7(b)は、処理部3が多重並列処理を行うケースのおける実行時間Tの一例を示す。図7各図に示すように、同期処理方式及び非同期処理方式のいずれにおいても、実行時間(T,T)は、滞留時間(tS1,tS2)と処理時間(tP1,tP2)との合計の時間として求められる。なお、滞留時間(tS1,TS2)には、ワークフロー制御部23とキューイングサービス24との間のメッセージのやり取りに要する通信時間を含むものとする。
図7(a)に示すように、例えば、多重並列処理を行わない場合に、滞留時間tS1が6秒で、処理時間tP1が6秒であるとする。この場合、実行時間Tは、6+6=12秒となる。これに対して、図7(b)に示すように、GPUによる多重並列処理を行ったときに、滞留時間(tS1,tS2)が6秒のままで、処理時間tP2が1/3の2秒に短縮できたとする。この場合、実行時間Tは、6+2=8秒となる。このようなケースでは、多重並列処理の導入によって処理時間tP2が1/3に短縮できたのにも関わらず、全体の実行時間Tは、必ずしも1/3には短縮されない。
以上のように、滞留時間(tS1,tS2)が実行時間(T,T)に対して占める割合が一定以上であることによって、多重並列処理の有無の間で実行時間(T,T)が期待したように短縮されないケースがある。このように、非同期処理方式で実行することがタスクの実行を早く完了するという観点から必ずしも優位とはいえないケースでは、当該タスクが非同期処理方式で行うように設定されている場合であっても同期処理方式に切り替えることを有効とする。
また、処理部3として充当されるサーバの台数は十分にあり、処理部3の稼働状況に余裕があるのにも関わらず、送信手段231によるキューイングサービス24への開始依頼の送信から受信手段232による終了通知の受信まで大幅に時間がかかってしまうケースも同様に、当該タスクの実行方式を非同期処理方式から同期処理方式に切り替えることを有効とする。
上述のケースは、例えば、キューイングサービス24でのジョブメッセージの滞留時間が長いことや、メッセージに動画等の大容量のコンテンツが付加されていることによって通信時間が長いこと(特に、暗号化や復号が含まれる場合)等の要因により生じ得る現象である。なお、前者のジョブメッセージの滞留時間が長くなることは、処理部3の粒度が細かくメッセージの数が一定以上の容量になることや、キューイングサービス24の処理性能が低いことにより引き起こされ得る。
(3)同期処理方式から非同期処理方式への切り替え1(ユースケース3)
一方で、同期処理方式において、例えば、処理部3が常時フル稼働状態になることにより、処理部3に処理を依頼してもビジー状態のためエラーが返る頻度が多くなり、エラーの原因を解消するために人手が必要になるケースがある。
このようなケースでは、処理部3に同時に依頼される処理の数が多くなるため、例えば、処理部3に同時に処理すべきタスクの数の上限が予め規定されていないような場合、当該処理部3からのレスポンスが停滞し、処理が進まない原因が処理部3のエラーによるものか否かを判断できなくなる場合がある。また、このような場合に、ユーザが処理の再実行をしてしまうことがあり、さらに同時に処理すべきタスクの数が多くなるという悪循環が発生し得る。
以上のような、同期処理方式で実行することが処理部3にかかる負担を軽減する観点から必ずしも優位とはいえないケースでは、当該タスクの実行方式を同期処理方式から非同期処理方式に切り替えることを有効とする。
(4)同期処理方式から非同期処理方式への切り替え2(ユースケース4)
また、処理部3による処理時間がタスクに対して設定されたタイムアウト時間や通信に対して設定されたタイムアウト時間を超えるケースについても同様に、当該タスクの実行方式を同期処理方式から非同期処理方式に切り替えることを有効とする。なお、かかるケースは、例えば、処理部3が動作する環境上に別の常駐サービスが同居することになり、処理部3に対してタスクの実行に割り当てられるメモリの容量やCPUの占有率が小さくなる場合や、処理部3によるタスクの実行がクラウドサービスよりも性能が低いVM(Virtual Machine)上で実行される場合等に生じ得る。
〔フローチャート〕
次に、上述した情報処理装置2の動作のフローをフローチャートにまとめる。図8は、図1に示す情報処理装置2の動作の一例を示すフローチャートである。図8に示すように、まず、生成手段201は、ユーザの指示に応じて、業務フロー5を生成する(S1)。このとき、生成された業務フロー5が新規の場合(S2:Yes)、当該業務フロー5を構築する各タスクの実行方式の情報がワークフローパターンテーブル221に記録される(S3)。なお、好ましくは、業務フロー5を生成する前に、生成しようとする同期パターン又は非同期パターンの業務フロー5が登録済みかどうかを確認し、登録されていない場合のみ業務フロー5を生成するようにしてもよい。
次に、生成された業務フロー5の中に、同期処理方式及び非同期処理方式の間の切り替えが有効なタスクが含まれている場合、マッピング手段200は、当該タスクの切り替え前後のIDをマッピング情報に追加する(S4)。
当該タスクが条件分岐パラメータ(Syncy)により非同期処理方式に設定されている場合(S5:非同期)、判定手段202は、処理部3での当該タスクの実行時間が予め定められた第1の条件を満たすか否か判定する(S6)。
処理部3での当該タスクの実行時間が予め定められた第1の条件を満たす場合(S6:Yes)、切替手段203は、タスクの実行方式を非同期処理方式から同期処理方式に切り替える(S7)。
当該タスクが初期設定として同期処理方式に設定されている場合(S5:同期)、判定手段202は、タイムアウトの回数やリトライの回数が予め定められた第2の条件を満たすか否か、すなわち予め定められた回数を超えるか否かを判定する(S8)。
タイムアウトの回数やリトライの回数が予め定められた回数を超える場合(S8:Yes)、切替手段203は、タスクの実行方式を同期処理方式から非同期処理方式に切り替える(S9)。
次に、ワークフロー制御部23は、ワークフローパターンテーブル221を参照してタスクごとに処理を実行する。具体的には、実行しようとしているタスクの実行方式が同期処理方式に設定されている場合(S10:同期)、実行指示手段230は、対応する処理部3に対して当該タスクの実行を指示する(S11)。
実行しようとしているタスクの実行方式が非同期処理方式に設定されている場合(S10:非同期)、送信手段231は、キューイングサービス24に当該タスクの実行の開始依頼を送信する(S12)。また、受信手段232は、キューイングサービス24から当該タスクの終了通知を受信する(S13)。
上述のステップS5からS13は、業務フロー5を構築する最後のタスクが実行されるまで(S14:No)、繰り返して実行される。
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。例えば、ワークフロー管理部20、実行履歴管理部21及びワークフロー制御部23の各手段は、それぞれ一部又は全部を再構成可能回路(FPGA:Field Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)等のハードウエア回路によって構成してもよい。
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して提供することができ、クラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することもできる。
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。例えば、ワークフロー管理部20、実行履歴管理部21及びワークフロー制御部23の各手段は、それぞれ一部又は全部を再構成可能回路(FPGA:Field Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)等のハードウエア回路によって構成してもよい。
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して提供することができ、クラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することもできる。
1…情報処理システム
2…情報処理装置
20…ワークフロー管理部
200…マッピング手段
201…生成手段
202…判定手段
203…切替手段
21…実行履歴管理部
210…滞留時間測定手段
211…処理時間測定手段
22…記憶部
220…プログラム
221…ワークフローパターンテーブル
23…ワークフロー制御部
230…実行指示手段
231…送信手段
232…受信手段
24…キューイングサービス
25…仲介サービス
3,3A,3B…処理部
5…業務フロー
50,50A〜50J…タスク
51…分岐
6…記述言語
61…処理部指示メッセージ
62…送信メッセージ
63…受信メッセージ
64…変数

Claims (6)

  1. 一連の業務を構成する予め定められた単位の処理を実行する実行手段と、
    前記実行手段の処理の状況に応じて、前記単位の処理を前記一連の業務と同期させて実行する第1の処理の方式と、前記単位の処理を前記一連の業務と同期させずに実行する第2の処理の方式との間で切り替える切替手段と、
    を備える、情報処理装置。
  2. 前記切替手段は、前記実行手段による前記単位の処理の実行に要する処理時間が予め定められた第1の条件を満たすときに、前記第2の処理の方式から前記第1の処理の方式に切り替える、
    請求項1に記載の情報処理装置。
  3. 前記処理時間を計測する計測手段をさらに備える、
    請求項2に記載の情報処理装置。
  4. 前記切替手段は、前記実行手段にかかる負荷が予め定められた第2の条件を満たすときに、前記第1の処理の方式から前記第2の処理の方式に切り替える、
    請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記負荷を示す情報として、前記実行手段において前記単位の処理が終了するまでの待ち時間が予め定められた基準の時間を超える第1の回数、及び前記単位の処理の実行の試みを繰り返す第2の回数を取得する取得手段をさらに備え、
    前記切替手段は、前記第1の回数及び前記第2の回数のいずれか一方が予め定められた回数を超えるときに、前記第1の処理の方式から前記第2の処理の方式に切り替える、
    請求項4に記載の情報処理装置。
  6. コンピュータを
    一連の業務を構成する予め定められた単位の処理を実行する実行手段と、
    前記実行手段の処理の状況に応じて、前記単位の処理を前記一連の業務と同期させて実行する第1の処理の方式と、前記単位の処理を前記一連の業務と同期させずに実行する第2の処理の方式との間で切り替える切替手段
    として、機能させるためのプログラム。
JP2019071146A 2019-04-03 2019-04-03 情報処理装置及びプログラム Pending JP2020170331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019071146A JP2020170331A (ja) 2019-04-03 2019-04-03 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019071146A JP2020170331A (ja) 2019-04-03 2019-04-03 情報処理装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2020170331A true JP2020170331A (ja) 2020-10-15

Family

ID=72745967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019071146A Pending JP2020170331A (ja) 2019-04-03 2019-04-03 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP2020170331A (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203067A (ja) * 1998-01-19 1999-07-30 Canon Inc プリンタ制御システム、プリンタ、ホストコンピュータ、印刷方法および記憶媒体
JP2007299308A (ja) * 2006-05-02 2007-11-15 Ricoh Co Ltd ジョブ処理システム、ジョブ処理方法、プログラムおよび記録媒体
JP2008141777A (ja) * 2000-12-22 2008-06-19 Network Appliance Inc Tcp接続における制限因子の自動検出
JP2009070002A (ja) * 2007-09-11 2009-04-02 Konica Minolta Business Technologies Inc 管理システム及び管理方法並びに管理プログラム
JP2013107361A (ja) * 2011-11-24 2013-06-06 Canon Inc 印刷装置、その制御方法、および制御プログラム
JP2013521552A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求をディスパッチするための方法、システム、およびコンピュータ・プログラム
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203067A (ja) * 1998-01-19 1999-07-30 Canon Inc プリンタ制御システム、プリンタ、ホストコンピュータ、印刷方法および記憶媒体
JP2008141777A (ja) * 2000-12-22 2008-06-19 Network Appliance Inc Tcp接続における制限因子の自動検出
JP2007299308A (ja) * 2006-05-02 2007-11-15 Ricoh Co Ltd ジョブ処理システム、ジョブ処理方法、プログラムおよび記録媒体
JP2009070002A (ja) * 2007-09-11 2009-04-02 Konica Minolta Business Technologies Inc 管理システム及び管理方法並びに管理プログラム
JP2013521552A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求をディスパッチするための方法、システム、およびコンピュータ・プログラム
JP2013107361A (ja) * 2011-11-24 2013-06-06 Canon Inc 印刷装置、その制御方法、および制御プログラム
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法

Similar Documents

Publication Publication Date Title
CN110086666B (zh) 一种告警方法、装置及系统
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
CN110311831B (zh) 基于容器云的系统资源监控方法及相关设备
US10114940B2 (en) Information processing system, information processing apparatus, and information processing method
JP4880376B2 (ja) 支援装置、プログラム、情報処理システム及び支援方法
CN104679598A (zh) 用于选择同步或异步进程间通信机制的系统和方法
JP2014149809A (ja) 情報処理システム、情報処理装置、プログラム及び処理実行方法
JP7275806B2 (ja) 情報処理装置、情報処理システム及びプログラム
CN1873691B (zh) 图像处理装置、方法以及存储程序的存储介质
US20090300092A1 (en) Enhancing real-time performance for java application serving
JP6579013B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
CN112363980A (zh) 一种分布式系统的数据处理方法及装置
CN110502574B (zh) 跨系统的信息同步方法、用户设备、存储介质及装置
US8359564B2 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
CN112035205A (zh) 数据处理方法、装置、设备和存储介质
JP2012257001A (ja) 情報処理装置、プロパティ設定方法及びコンピュータプログラム
US7256907B2 (en) Server apparatus, job managing method, computer-readable memory medium, and program
JP2020170331A (ja) 情報処理装置及びプログラム
CN114138371B (zh) 配置动态加载方法、装置及计算机设备、存储介质
CN111310638A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN107741885B (zh) 基于cs架构的事务与业务关联方法、关联系统
CN114780228A (zh) 一种混合云资源创建方法及系统
JP4900342B2 (ja) 出願業務支援プログラム、方法及び装置
CN109388387B (zh) 一种业务流模板、业务流生成方法及装置
JP2017175414A (ja) 画像処理サーバ、データ送信プログラム及び振分装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230530