JP2019008695A - ワークフローシステム、制御方法、およびプログラム - Google Patents
ワークフローシステム、制御方法、およびプログラム Download PDFInfo
- Publication number
- JP2019008695A JP2019008695A JP2017125998A JP2017125998A JP2019008695A JP 2019008695 A JP2019008695 A JP 2019008695A JP 2017125998 A JP2017125998 A JP 2017125998A JP 2017125998 A JP2017125998 A JP 2017125998A JP 2019008695 A JP2019008695 A JP 2019008695A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- function
- functions
- data
- executed
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】独立した機能を組み合わせて定義されたワークフローの実行が非効率な場合、ワークフローデータ生成時にワークフロー定義の最適化を行う。【解決手段】ワークフローシステムのワークフローデータ生成部105は、1以上の機能を所定の順序で実行するワークフローの内容を定義したワークフローデータ401を生成する。ワークフロー制御部102は、ワークフローデータ401に基づき、1以上の機能を実行するために、各機能を実行する実行モジュール109を呼び出し、制御する。ワークフローデータ生成部105は、ワークフローにおいて連続する機能が、同じ実行モジュール109により実行されることが定義されている場合に、実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、ワークフローデータ401を編集する最適化処理を実行する。【選択図】図1
Description
本発明は、ワークフローシステム、制御方法、およびプログラムに関する。
ドキュメントを扱う定型的な業務の効率化、自動化を目的としたドキュメントワークフローシステムと呼ばれるシステムが存在する。このワークフローシステムでは、複数の独立した実行モジュールや装置により実行される複数の機能が存在し、ユーザは機能を自由に組み合わせてワークフローを定義することができる。また、ワークフロー構築後は、定義されたワークフローに従って各機能を順番に実行することが可能である。
このようなワークフローシステムは、複数の独立した実行モジュールや装置により実行される機能を組み合わせてワークフローを定義するため、定義されたワークフローの内容によってはワークフローの実行において非効率な場合がある。例えば、PDF(Portable Document Format)形式のファイルを編集する2つの異なる機能を連続して実行するワークフローが定義された場合を考える。
個々の機能は他の機能とは独立して実行されるため、同じPDF形式のファイルを扱う場合であっても、PDF形式のファイルを解釈する処理や編集後のPDF形式のファイルを保存する処理が別々に実行されてしまい、処理速度の低下を招く場合がある。また、各機能の実行の過程で、中間ファイル等、不要なファイルを重複して生成してしまう可能性もあり、リソースを必要以上に消費する可能性がある。特に、複合機やモバイル端末など、リソースの制約が厳しい環境においてワークフローを実行する場合、リソース不足を招き、ワークフローシステムに多大な影響を与えてしまう可能性がある。
特許文献1は、同一のリソースを用いる処理を含む複数のワークフローの実行において、同一のリソースを用いる複数の処理の実行順序を特定し、該複数の処理の中から実行を省略可能な処理を特定するワークフロー制御プログラムを開示している。
しかしながら、特許文献1は、複数のワークフロー間の処理において省略可能な処理の関係を考慮する技術であり、1つのワークフローにおいて無駄な処理が発生しないための具体的な方法については言及されていない。また、特許文献1では、省略可能な処理を特定しているが、省略可能でない処理から構成されるワークフローを最適化することは考慮されていない。また、特許文献1では、複数のワークフローの中から同一のリソースを用いる複数の処理の実行順序を特定しており、各処理の順序は不変である。すなわち、複数の処理の順序を変更することによりワークフローを最適化することは考慮されていない。
本発明は、ワークフローを効率良く実行することを可能とするワークフローシステムを提供することを目的とする。
本発明の一実施形態のワークフローシステムは、1以上の機能を所定の順序で実行するワークフローの内容を定義したワークフローデータを生成する生成手段と、前記ワークフローデータに基づき、前記1以上の機能を実行するために、各機能を実行する実行モジュールを呼び出し、制御する制御手段と、を有し、前記生成手段は、前記ワークフローにおいて連続する機能が、同じ実行モジュールにより実行されることが定義されている場合に、前記実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、前記ワークフローデータを編集する。
本発明のワークフローシステムによれば、ワークフローを効率良く実行することできる。
以下、本発明を実施するための形態について図面などを参照して説明する。
(第1実施形態)
図1は、本発明におけるワークフローシステムの全体構成の一例を示す概念図である。
本発明におけるワークフローシステムは、ワークフロー編集部101、ワークフロー制御部102、および処理実行部103を備える。ワークフロー編集部101は、ワークフローの定義、編集、および実行指示を行う機能を有する。ユーザは、ワークフロー編集部101の機能を使用して、ワークフローを操作する。
図1は、本発明におけるワークフローシステムの全体構成の一例を示す概念図である。
本発明におけるワークフローシステムは、ワークフロー編集部101、ワークフロー制御部102、および処理実行部103を備える。ワークフロー編集部101は、ワークフローの定義、編集、および実行指示を行う機能を有する。ユーザは、ワークフロー編集部101の機能を使用して、ワークフローを操作する。
ワークフロー編集部101は、ユーザインタフェース104、ワークフローデータ生成部105、実行指示部106、および機能定義データ107を備える。ユーザインタフェース104は、ユーザが、ワークフローの定義、編集、および実行指示を行うためのインタフェースである。ユーザインタフェース104の詳細については、図3を用いて後述する。
ワークフローデータ生成部105は、ユーザが定義したワークフローを実行するためのデータを生成する。具体的なデータについては、図4を用いて後述する。以下、ワークフローを実行するためのデータをワークフローデータと呼ぶ。実行指示部106は、ユーザが定義したワークフローを実際に実行する際に指示を行う。
具体的には、実行指示部106は、ワークフローデータ生成部105が生成したデータを、ワークフロー制御部102に送信する。また、実行指示部106は、ワークフロー制御部102からワークフローの実行状況を受信し、ユーザインタフェース104に通知する。機能定義データ107の詳細については、図5を用いて後述する。
ワークフロー制御部102は、ワークフロー編集部101によって生成されたワークフローデータを解釈してワークフローの実行を制御する。具体的には、ワークフロー制御部102は、ワークフローに定義された順序で処理実行部103を呼び出す処理や、エラーが発生した場合に処理をキャンセルする処理等を行う。処理実行部103は、ワークフロー制御部102から指示された各処理を実行する。処理実行部103は、各種処理を行う実行モジュール109、および実行モジュール109を制御する実行制御部108を備える。
本実施形態では、処理実行部103は、実行モジュール109として、PDF編集、画像制御、入力制御、および出力制御をそれぞれ実行するモジュールを有する。なお、処理実行部103がどのような実行モジュールを有するかはこれに限定されるものではなく、ワークフローシステムに応じて変更できる。また、それぞれの実行モジュール109は、複数の機能を有する。
例えば、PDF編集モジュールは、PDFに署名を行う機能、アノテーションを付加する機能等を有する。実行制御部108は、ワークフロー制御部102から実行指示を受け付け、受け付けた指示をそれぞれの実行モジュール109に送信する。ワークフロー制御部102と実行制御部108とは、ジョブチケットをやりとりし、ワークフロー制御部102が1つのジョブチケットを送信することで1つの実行モジュール109の各種機能を実行できるものとする。
また、1つのジョブチケットでは、1つの実行モジュール109の複数の機能の実行指示を行うことができる。例えば、PDF編集を行う実行モジュールが有するPDF署名およびPDFアノテーションを行う機能を実行する際に、1つのジョブチケットで実行することができる。
なお、ワークフロー編集部101、ワークフロー制御部102、および処理実行部103の3つの処理部は、同一の情報処理装置で実行される構成でも良く、また、異なる情報処理装置で実行される構成でも良い。また、処理実行部103が有する実行モジュールがそれぞれ異なる情報処理装置で実行される構成でも良い。
また、3つの処理部を実行する情報処理装置の種類は、例えば、PC、サーバ装置、複合機等のデバイスであるが、これらに限定するものではない。例えば、ワークフロー編集部101とワークフロー制御部102が複合機上に存在し、処理実行部103がクラウドシステム上に存在するといった形態であってもよい。
図2は、情報処理装置のハードウェア構成例を示す図である。
なお、ここでいう情報処理装置とは、ワークフロー編集部101、ワークフロー制御部102、および処理実行部103を実行する情報処理装置のことである。CPU201は、所定のプログラムを読み出して解釈および実行する。ROM206の内部のプログラム領域に記憶されたプログラム、ハードディスク203からRAM202にロードされたOS、汎用アプリケーション等のプログラムの実行処理が行われる。
なお、ここでいう情報処理装置とは、ワークフロー編集部101、ワークフロー制御部102、および処理実行部103を実行する情報処理装置のことである。CPU201は、所定のプログラムを読み出して解釈および実行する。ROM206の内部のプログラム領域に記憶されたプログラム、ハードディスク203からRAM202にロードされたOS、汎用アプリケーション等のプログラムの実行処理が行われる。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する記憶デバイスである。ハードディスク203は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、電子原稿ファイル等を記憶する記録媒体である。本実施形態にかかるプログラムは、ハードディスク203に記憶されており、RAM202に読み出されてCPU201によって実行される。
ディスプレイコントローラ204は、ディスプレイの表示制御を行う。ネットワークコントローラ205は、ネットワークに接続された機器との通信処理の制御を行う。外部記憶ドライブ207は、メディア(記録媒体)208に関するデータの読み出しと書き込みを制御する。キーボードコントローラ209は、ユーザのキー操作やポインティングデバイス等の操作による操作指示信号の入力処理を行う。
図3は、ユーザインタフェース104の一例を示す図である。
ユーザインタフェース104は、機能一覧画面301およびワークフロー定義画面302を有する。機能一覧画面301は、ワークフローシステムで定義されている機能を一覧する画面である。ユーザは、機能一覧画面301からワークフローに使用したい機能を選択し、ワークフロー定義画面302に移動させることでワークフローの定義を行う。
ユーザインタフェース104は、機能一覧画面301およびワークフロー定義画面302を有する。機能一覧画面301は、ワークフローシステムで定義されている機能を一覧する画面である。ユーザは、機能一覧画面301からワークフローに使用したい機能を選択し、ワークフロー定義画面302に移動させることでワークフローの定義を行う。
ワークフロー定義画面302は、機能一覧画面301で選択した各機能を並べて配置し、各機能を実行する順序に応じて各機能を接続してワークフローを定義する画面である。1つの四角で囲まれたブロックが、実行モジュール109の1回の呼び出しで実行される機能(処理)を表している。すなわち、1つの四角で囲まれたブロックが、1つのジョブチケットで実行指示される機能を表している。
また、ワークフロー定義画面302は、保存ボタンおよび実行ボタンを有する。ユーザは、ワークフローの定義が完了した際に保存ボタンを押下することでワークフローを確定させる。ワークフローが確定するとワークフローデータ生成部105がワークフローデータを生成する。そして、ワークフローデータ生成部105は、生成したワークフローデータに対して最適化処理を実行する。また、ユーザは、実行ボタンを押下することで、定義したワークフローを実行することができる。
図4は、ワークフローデータ生成部105が生成するワークフローデータの構造例を示す図である。
ワークフローデータ401は、ワークフローに含めた機能の内容や順序が定義されたXML形式のデータである。なお、データの形式は一例であり、これに限られるものではない。
ワークフローデータ401は、ワークフローに含めた機能の内容や順序が定義されたXML形式のデータである。なお、データの形式は一例であり、これに限られるものではない。
Flowタグで囲まれている部分が1つのワークフローの定義を表す。図4は、「flow1」という名称のワークフローの定義を示している。Flowタグ内には、複数のFunctionタグを含めることができる。Functionタグで囲まれている部分がワークフローに含めた1つの機能を表す。図4は、「Func1」、「Func2」、「Func3」、「Func4」という名称の4つの機能が定義されている。
各機能は、index属性によってワークフローにて実行される順序を表す。図4では、Func1、Func2、Func3、Func4の順に実行されることを示している。また、Functionタグには、各機能の内容として、次の内容が定義されている。input typeタグにより入力データフォーマット、output typeタグにより出力データフォーマット、また、settingタグには、設定パラメータが定義されている。
また、各機能、すなわち各Functionタグで囲まれている部分は、Functionsタグでグループ化することもできる。これは、複数の機能を1回の実行指示(呼び出し)で実行することを意味する。複数の機能を1つの実行指示で実行する場合の詳細は、図9等を用いて後述する。なお、ワークフローデータ401は、ユーザがワークフローを確定させた際にワークフローデータ生成部105が生成する。また、ワークフローを実行する際には、ワークフロー制御部102がワークフローデータ401を解釈し、各機能の実行指示を行う。
図5は、機能定義データ107の構造例を示す図である。
機能定義データ107は、各機能の内容を定義したデータおよび各機能の属するカテゴリに応じて決まる実行順序を定義したデータを含む。
機能定義データ107は、各機能の内容を定義したデータおよび各機能の属するカテゴリに応じて決まる実行順序を定義したデータを含む。
図5(A)は、機能定義データ107のうち、各機能の内容を定義したデータのデータ構造例を示す図である。このデータは、ID501、機能名502、実行モジュール503、実行可能モジュール504、および機能カテゴリ505を有する。ID501は、ワークフローシステムで定義されている機能を一意に識別するための識別子である。機能名502は、各機能の名称を表す。
実行モジュール503は、各機能がどの実行モジュール109で実行されるかを表す。本実施形態では、図1に示したように、ワークフローシステムは、実行モジュール109として、入力制御モジュール、PDF編集モジュール、画像制御モジュール、および出力制御モジュールの4つのモジュールを有する。したがって、実行モジュール503の値として各機能が取り得る値は、これら4つのモジュールのいずれかである。
実行可能モジュール504は、各機能が実行モジュール503のモジュール以外にどの実行モジュール109で実行可能であるかを表す。言い換えると、各機能が実行モジュール503に記載されたモジュール以外で実行可能かを表している。実行可能モジュール504は、機能によっては存在しない場合や複数存在する場合がある。
機能カテゴリ505は、各機能の種類を表す。本実施形態では、機能カテゴリとして、「入力」、「PDF編集」、「画像解析」、「画像処理」、「出力」の5つのカテゴリがあり、各機能は、これら5つのカテゴリに分類されている。機能カテゴリ505は、同一の実行モジュール109内に含まれる機能のうち、どの機能カテゴリに属する機能を先に実行するか、すなわち同一の実行モジュール109で実行される各機能の実行順序を制御するために用いられる。
図5(B)は、機能定義データ107のうち、各機能の属する機能カテゴリに応じて決まる実行順序を定義したデータのデータ構造例を示す図である。このデータは、登録ID506および順序データ507を有する。登録ID506は、この実行順序を定義したデータの登録内容を一意に識別するための識別子である。順序データ507は、機能カテゴリ間の順序の制約を定義したデータである。
例えば、登録ID506が1のデータでは、順序データ507は、機能カテゴリ505が「入力」と「出力」の実行順序の制約を定義している。具体的には、機能カテゴリ505が「入力」に属する機能が「出力」に属する機能よりも先に実行されることが定義されている。
また、登録ID506が2のデータでは、順序データ507は、機能カテゴリ505が「画像処理」と「画像解析」の実行順序の制御を定義している。具体的には、機能カテゴリ505が「画像処理」に属する機能が「画像解析」に属する機能よりも先に実行されることが定義されている。なお、図5(B)に示したデータは、第3実施形態で用いる。
図6は、本実施形態に係るワークフローの最適化処理を説明するためのフローチャートである。
ワークフローの最適化処理は、ワークフローデータ生成部105が行う。本実施形態では、ワークフローデータの最適化処理として、ワークフロー定義画面302にて定義されたワークフローにおいて、同一の実行モジュール109で実行する機能が連続している場合に実行する最適化処理について説明する。なお、図6のフローチャートにおける処理は、全てワークフローデータ生成部105が実行する。
ワークフローの最適化処理は、ワークフローデータ生成部105が行う。本実施形態では、ワークフローデータの最適化処理として、ワークフロー定義画面302にて定義されたワークフローにおいて、同一の実行モジュール109で実行する機能が連続している場合に実行する最適化処理について説明する。なお、図6のフローチャートにおける処理は、全てワークフローデータ生成部105が実行する。
ステップS1において、ワークフローデータ生成部105は、ユーザがユーザインタフェース104を介して定義したワークフロー情報を取得する。ワークフロー情報とは、ワークフローデータ401を生成することが可能な情報を含んだ内部データであり、その形式は問わない。ステップS2において、ワークフローデータ生成部105は、ステップS1にて取得したワークフロー情報からワークフローにおいて最初に実行すると定義された機能、言い換えるとワークフローの先頭に配置された機能の情報を取得する。
なお、ステップS2〜S6の処理は、繰り返し実行される。初めてステップS2を実行する際には、上述したように、処理対象を、ワークフローの先頭に配置された機能とするが、2回目以降にステップS2を実行する際には、処理対象をステップS4にて情報を取得した機能とする。なお、このとき、ステップS4で取得した情報を保持することにより、ステップS2にてあらためて該機能の情報を取得しなくてもよい。ステップS3において、ワークフローデータ生成部105は、ステップS2にて処理対象とした機能の次に実行する機能がワークフローの中で定義されているか判定する。
次に実行する機能が定義されていない場合、ワークフローデータ生成部105は、ステップS2にて処理対象とした機能が、ワークフローの中で最後に実行する機能として定義されていると判断する。そして、ワークフローデータ生成部105は、最適化処理が完了したとみなして図6に示す処理を終了する。一方、次に実行する機能が定義されている場合、処理はステップS4に進み、ワークフローデータ生成部105は、ステップS1にて取得したワークフロー情報からステップS2にて処理対象とした機能の次に実行する機能についての情報を取得する。
ステップS5において、ワークフローデータ生成部105は、ステップS2にて処理対象とした機能と、ステップS4にて情報を取得した機能との2つの機能が同じ実行モジュール109で実行されるか判定する。すなわち、ステップS5では、ワークフローデータ生成部105は、ワークフローにおいて連続する2つの機能が、同じ実行モジュール109で実行されるか否かを判定する。
ワークフローデータ生成部105は、判定対象の2つの機能について、図5(A)に示した機能定義データ107の実行モジュール503の値を比較し、同じ値である場合に同じ実行モジュール109で実行されると判定する。判定対象の2つの機能が同じ実行モジュール109で実行されないと判定された場合、処理はステップS2に戻り、処理対象をステップS4にて情報を取得した機能として以降の処理を繰り返す。一方、判定対象の2つの機能が同じ実行モジュール109で実行されると判定された場合、処理はステップS6に進む。
ステップS6において、ワークフローデータ生成部105は、ステップS5にて判定対象とした2つの機能を実行する際に、1つのジョブチケットで実行指示を行うことができると判断する。すなわち、ワークフローデータ生成部105は、実行モジュール109の1回の呼び出しで2つの機能を実行可能であると判断する。そして、ワークフローデータ生成部105は、2つの機能を1つの実行指示で実行するワークフローデータを編集する。
なお、2つの機能を1つの実行指示で実行するワークフローデータを生成する際に、既に一方の機能が他の機能とまとめて呼び出されるようにワークフローデータにて定義されている場合、他方の機能をそれら他の機能とまとめて呼び出されるようにする。すなわち、2つの機能を1つの実行指示で実行するワークフローデータを生成する際に、一方の機能がFunctionsタグに他の機能とともにグループ化されている場合には、もう一方の機能についても該Functionsタグ内に含めるようにする。
これにより、ワークフローにおいて2以上の連続する機能を1つの実行指示で実行するワークフローデータを生成することができる。ステップS6を終了すると、処理はステップS3に戻り、処理対象をステップS4にて情報を取得した機能として以降の処理を繰り返す。
図7は、本実施形態に係るワークフローの最適化処理の一例を示す図である。
詳細には、図7(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図7(B)は、図7(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
詳細には、図7(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図7(B)は、図7(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
図7(A)に示すワークフローは、所定のフォルダからPDF形式のファイルが入力されると、該ファイルに署名およびアノテーションを付加して所定のフォルダに出力するワークフローである。なお、1つの四角で囲まれたブロックは、実行モジュール109の1回の呼び出しで実行される機能を表している。図7(A)に示すワークフローを実行する場合、「フォルダ入力」、「PDF署名」、「PDFアノテーション」、および「フォルダ出力」の4つの機能を実行するために実行モジュール109が4回呼び出される。
「PDF署名」と「PDFアノテーション」は、同じ実行モジュール109であるPDF編集モジュールにより実行される。そのため、図7(A)に示すワークフローに対して図6に示す最適化処理を実行すると、ステップS5において「PDF署名」と「PDFアノテーション」が判定対象の2つの機能の場合に、同じ実行モジュール109で実行できると判定される。
そして、ステップS6において「PDF署名」と「PDFアノテーション」とを1つの実行指示で実行するワークフローデータが生成される。このように、「PDF署名」と「PDFアノテーション」とが実行モジュール109の1回の呼び出しで実行される機能としてまとめられたワークフローが図7(B)である。
また一方、図7(C)は、図7(A)に対応するワークフローデータ401の構造例を示す図であり、図7(D)は、図7(B)に対応する最適化処理を実行した後のワークフローデータ401の構造例を示す図である。図7(C)では、図7(A)のワークフローにて定義された4つの機能が、「フォルダ入力」、「PDF署名」、「PDFアノテーション」、「フォルダ出力」の順に呼び出され、実行される。すなわち、4つの機能に対して、実行モジュール109の呼び出しが4回行われる。
一方、図7(D)では、「PDF署名」と「PDFアノテーション」とは、実行モジュール109の1回の呼び出しで実行されるように、それぞれの機能に対応するFunctionタグが、1つのFunctionsタグでグループ化されていることがわかる。これにより、4つの機能に対して、実行モジュール109の呼び出しが3回行われる。
このように、ワークフローデータ生成部105がワークフローの最適化処理を実行すると、ワークフローデータ生成部105が生成するワークフローデータ401の構造が変化する。そして、ワークフローデータ401の構造が変化すると、ワークフロー制御部102が該ワークフローデータ401に基づいて実行制御部108に送信するジョブチケットも変化する。
具体的には、図7(C)のワークフローデータ401を受け取ったワークフロー制御部102は、実行制御部108に対して4つのジョブチケットを送信する。一方、図7(D)のワークフローデータ401を受け取ったワークフロー制御部102は、実行制御部108に対して3つのジョブチケットを送信する。その中の1つは、「PDF署名」と「PDFアノテーション」の両機能の実行指示が記載されたジョブチケットである。
以上のように、本実施形態によれば、ワークフローデータの最適化処理を実行することにより、ワークフローを効率良く実行することができる。これにより、例えば、ワークフローの実行において、ワークフローの内容に基づいて最適な呼び出し回数でワークフローを実行することが可能となる。
したがって、実行パフォーマンスの向上、メモリ、CPU等、ハードウェアリソースの使用効率向上が可能となる。また、ワークフローシステムを扱うユーザがワークフローの各機能に関して特別な知識やスキルを持たず、効率の良さを考慮せずにワークフローの構築を行った場合であっても、自動でワークフローの最適化が行われるため、ユーザの負担が軽減される。
(第2実施形態)
次に、第2実施形態に係るワークフローの最適化処理について説明する。第1実施形態では、ワークフローにおいて、同一の実行モジュール109で実行される機能が連続する場合の最適化処理について説明した。本実施形態では、同一の実行モジュール109で実行される機能が連続しない場合についてのワークフローの最適化処理について説明を行う。
次に、第2実施形態に係るワークフローの最適化処理について説明する。第1実施形態では、ワークフローにおいて、同一の実行モジュール109で実行される機能が連続する場合の最適化処理について説明した。本実施形態では、同一の実行モジュール109で実行される機能が連続しない場合についてのワークフローの最適化処理について説明を行う。
なお、図1〜図5にて説明したワークフローシステムの構成、情報処理装置の構成、ユーザインタフェース、各種データの構造等は、第1実施形態と同様のため、同一構成のものには同一の符号を付し、その説明を省略する。
図8は、本実施形態に係るワークフローの最適化処理を説明するためのフローチャートである。
なお、第1実施形態にて説明したワークフローの最適化処理(図6)と共通する処理についてはその説明を省略し、ここでは差異のみについて説明する。
なお、第1実施形態にて説明したワークフローの最適化処理(図6)と共通する処理についてはその説明を省略し、ここでは差異のみについて説明する。
図6の最適化処理と異なる点は、ステップS5において、ワークフローデータ生成部105が、判定対象の2つの機能が同じ実行モジュール109で実行できないと判定した場合、処理がステップS2に戻るのではなく、ステップS11に進む点である。ステップS11において、ワークフローデータ生成部105は、ステップS5の判定対象の2つの機能が同じ実行モジュール109で実行可能か判定する。
具体的には、ワークフローデータ生成部105は、判定対象の2つの機能のうち後に実行される機能について、図5(A)に示した機能定義データ107の実行可能モジュール504の値が、先に実行される機能の実行モジュール503の値と同じか判定する。すなわち、判定対象の2つの機能のうち先に実行される機能を実行する実行モジュール109でグループ化できるかを判定する。
なお、ステップS11の判定内容はこれに限られるものではなく、例えば、判定対象の2つの機能のうち後に実行される機能を実行する実行モジュール109でグループ化できるか判定してもよい。また、例えば、判定対象の2つの機能について、実行可能モジュール504に共通の値があるか、すなわち該共通の値が示す実行モジュール109でグループ化できるか判定してもよい。
ステップS11にて判定対象の2つの機能が同じ実行モジュール109で実行可能と判定された場合、処理はステップS6に進む。そして、第一実施形態と同様に、ワークフローデータ生成部105は、2つの機能を1つの実行指示で実行するワークフローデータを生成する。
図9は、本実施形態に係るワークフローの最適化処理の一例を示す図である。
詳細には、図9(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図9(B)は、図9(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
詳細には、図9(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図9(B)は、図9(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
図9(A)に示すワークフローは、所定のフォルダからjpgやpng形式等の画像ファイルが入力されると、ノイズ除去を行い、ノイズ除去後の画像ファイルから暗号化されたPDF形式のファイルを生成して所定のフォルダに出力するワークフローである。なお、第1実施形態の図7と同様に、1つの四角で囲まれたブロックは、実行モジュール109の1回の呼び出しで実行される機能を表している。
図9(A)に示すワークフローを実行する場合、「フォルダ入力」、「ノイズ除去」、「暗号化PDF生成」、および「フォルダ出力」の4つの機能を実行するために、実行モジュール109が4回呼び出される。「ノイズ除去」は、画像制御モジュールにより実行され、「暗号化PDF生成」は、PDF編集モジュールにより実行される。そのため、図9(A)に示すワークフローに対して図8に示す最適化処理を実行すると、ステップS5において「ノイズ除去」と「暗号化PDF生成」が判定対象の2つの機能の場合に、同じ実行モジュール109では実行できないと判定される。
そして、ステップS11において判定対象の2つの機能が同じ実行モジュール109で実行可能か判定される。ここで、図5(A)に示した機能定義データ107を参照すると、「暗号化PDF生成」は、機能定義データ107の実行可能モジュール504の値として画像制御モジュールを含む。そのため、「ノイズ除去」と「暗号化PDF生成」は、画像制御モジュールの1回の呼び出しで実行できる。
そこで、ステップS11において判定対象の2つの機能が同じ実行モジュール109で実行可能であると判定される。そして、ステップS6において「ノイズ除去」と「暗号化PDF生成」とを1つの実行指示で実行するワークフローデータ401が生成される。このように、「ノイズ除去」と「暗号化PDF生成」とが実行モジュール109の1回の呼び出しで実行される機能としてまとめられたワークフローが図9(B)である。
また一方、図9(C)は、図9(A)に対応するワークフローデータ401の構造例を示す図であり、図9(D)は、図9(B)に対応する最適化処理を実行した後のワークフローデータ401の構造例を示す図である。図9(C)では、図9(A)のワークフローにて定義された4つの機能が、「フォルダ入力」、「ノイズ除去」、「暗号化PDF生成」、「フォルダ出力」の順に呼び出され、実行される。すなわち、4つの機能に対して、実行モジュール109の呼び出しが4回行われる。
一方、図9(D)では、「ノイズ除去」と「暗号化PDF生成」とは、実行モジュール109の1回の呼び出しで実行されるように、それぞれの機能に対応するFunctionタグが、1つのFunctionsタグでグループ化されていることがわかる。これにより、4つの機能に対して、実行モジュール109の呼び出しが3回行われる。
また、第1実施形態の場合と同様に、ワークフローデータ401の構造が変化すると、ワークフロー制御部102が該ワークフローデータ401に基づいて実行制御部108に送信するジョブチケットも変化する。具体的には、図9(C)のワークフローデータ401を受け取ったワークフロー制御部102は、実行制御部108に対して4つのジョブチケットを送信する。
一方、図9(D)のワークフローデータ401を受け取ったワークフロー制御部102は、実行制御部108に対して3つのジョブチケットを送信する。その中の1つは、「ノイズ除去」および「暗号化PDF生成」の両機能の実行指示が記載されたジョブチケットである。
以上のように、本実施形態によれば、第1実施形態と同様の効果を奏する。さらに、本実施形態によれば、ワークフローにおいて連続する機能が異なる実行モジュールにより実行することが定義されている場合であっても、該連続する機能を実行可能な共通の実行モジュールがあるときには、実行モジュールの呼び出し回数を軽減できる。
(第3実施形態)
次に、第3実施形態に係るワークフローの最適化処理について説明する。第1実施形態および第2実施形態では、連続する機能が同じ実行モジュール109で実行されるかまたは実行可能な場合に、該実行モジュール109の1回の呼び出しでそれら連続する機能を実行するように、ワークフローの最適化処理を行う。
次に、第3実施形態に係るワークフローの最適化処理について説明する。第1実施形態および第2実施形態では、連続する機能が同じ実行モジュール109で実行されるかまたは実行可能な場合に、該実行モジュール109の1回の呼び出しでそれら連続する機能を実行するように、ワークフローの最適化処理を行う。
これに対して、本実施形態では、第1実施形態および第2実施形態の最適化処理に加えて、ワークフローにて定義された機能の順序を入れ替えることによりワークフローの最適化を行う場合について説明する。これは、ワークフローの定義を行う際に、ユーザがどのように機能を組み合わせるかは自由であり、同じ処理を行うワークフローであっても、様々なパターンのワークフローが定義できるため、有効な処理である。
例えば、ユーザがワークフローの作成に必要なスキルを持たない場合、ワークフローで用いられる各機能を理解し、各機能の実行順序を考慮して最適なワークフローを作成するのは困難である。このような場合であっても、本実施形態では、各機能の最適な実行順序を考慮して、ワークフローの最適化処理を行うことができる。
図10は、本実施形態に係るワークフローの最適化処理を説明するためのフローチャートである。
なお、第2実施形態にて説明したワークフローの最適化処理(図8)と共通する処理についてはその説明を省略し、ここでは差異のみについて説明する。
なお、第2実施形態にて説明したワークフローの最適化処理(図8)と共通する処理についてはその説明を省略し、ここでは差異のみについて説明する。
図8の最適化処理と異なる点は、ステップS6にて、ワークフローにおいて連続する機能を1つの実行指示で実行するワークフローデータを生成する前に、各機能の実行順序の入れ替えに関する処理が追加されている点である。詳細には、ステップS5にて、ワークフローにおいて連続する機能が、同じ実行モジュール109で実行されると判定された場合に、ステップS6の前にステップS21〜S23の処理が実行される。
また、ステップS11にて、ワークフローにおいて連続する機能が、同じ実行モジュール109で実行可能であると判定された場合についても、ステップS6の前にステップS21〜S23の処理が実行される。
ステップS21において、ワークフローデータ生成部105は、図5に示した機能定義データ107から、ステップS11の判定対象の2つの機能に関して、順序に関わる情報を取得する。具体的には、ワークフローデータ生成部105は、ステップS11の判定対象の2つの機能について、機能定義データ107から、機能カテゴリ505および順序データ507を取得する。
ステップS22において、ワークフローデータ生成部105は、順序の入れ替えが必要か判定する。まず、ワークフローデータ生成部105は、順序データ507において、判定対象の2つの機能に対応する機能カテゴリ505に関して順序の制約が定義されているか確認する。そして、順序データ507において、判定対象の2つの機能に対応する機能カテゴリ505に関して順序の制約が定義されている場合、順序データ507に従って順序の入れ替えが必要であると判断する。
ステップS22にて、順序の入れ替えが必要であると判定された場合、処理はステップS23に進み、順序の入れ替えが必要ないと判定された場合、処理はステップS6に進む。ステップS23において、ワークフローデータ生成部105は、2つの機能の順序を入れ替える。
図11は、本実施形態に係るワークフローの最適化処理の一例を示す図である。
詳細には、図11(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図11(B)は、図11(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
詳細には、図11(A)は、最適化処理を実行する前のワークフローの定義を示す図であり、図11(B)は、図11(A)のワークフローに対して最適化処理を実行した後のワークフローの定義を示す図である。
図11(A)に示すワークフローは、所定のフォルダからjpgやpng形式等の画像ファイルが入力されると、斜行補正、OCR、ノイズ除去を行い、ノイズ除去後の画像ファイルおよびOCRの実行結果を所定のフォルダに出力するワークフローである。図11(A)に示すワークフローを実行する場合、「フォルダ入力」、「斜行補正」、「OCR」、「ノイズ除去」、および「フォルダ出力」の5つの機能を実行するために、実行モジュール109が5回呼び出される。
「斜行補正」、「OCR」、および「ノイズ除去」はいずれも画像制御モジュールにより実行される。そのため、図11(A)に示すワークフローに対して図10に示す最適化処理を実行すると、ステップS5において「斜行補正」と「OCR」が判定対象の2つの機能の場合、同じ実行モジュール109で実行できると判定される。また、「OCR」と「ノイズ除去」が判定対象の2つの機能の場合、同様に、同じ実行モジュール109で実行できると判定される。
よって、それぞれの場合に、ステップS21〜S23の処理に進む。そして、ステップS21〜23の処理において、図5(A)に示した機能定義データ107を参照すると、「斜行補正」と「ノイズ除去」の機能カテゴリ505が「画像処理」であり、「OCR」の機能カテゴリ505が「画像解析」であることがわかる。また、図5(B)に示した機能定義データ107を参照すると、順序データ507において機能カテゴリ505が「画像処理」と「画像解析」との間には、実行する順序に制約が定義されていることがわかる。
具体的には、機能カテゴリ505が「画像処理」の機能は、機能カテゴリが「画像解析」の機能より前に実行されるという制約がある。このため、「OCR」と「ノイズ除去」の実行順序が入れ替わる。このように、「斜行補正」、「OCR」、および「ノイズ除去」が実行モジュール109の1回の呼び出しで実行される機能としてまとめられ、さらに、「OCR」と「ノイズ除去」の実行順序が入れ替えられたワークフローが図11(B)である。
また一方、図11(C)は、図11(A)に対応するワークフローデータ401の構造例を示す図であり、図11(D)は、図11(B)に対応する最適化処理を実行した後のワークフローデータ401の構造例を示す図である。図11(C)では、図11(A)のワークフローにて定義された5つの機能が、「フォルダ入力」、「斜行補正」、「OCR」、「ノイズ除去」、「フォルダ出力」の順に呼び出され、実行される。すなわち、5つの機能に対して、実行モジュール109の呼び出しが5回行われる。
一方、図11(D)では、「斜行補正」、「OCR」、および「ノイズ除去」は、実行モジュール109の1回の呼び出しで実行されるように、それぞれに対応するFunctionタグが、1つのFunctionsタグでグループ化されていることがわかる。これにより、5つの機能に対して、実行モジュール109の呼び出しが3回行われる。さらに、本実施形態では、「OCR」と「ノイズ除去」の実行順序を入れ替えたため、「OCR」に対応するFunctionタグのindex属性と「ノイズ除去」に対応するFunctionタグのindex属性が入れ替わっていることがわかる。
以上のように、本実施形態では、第1実施形態の場合と同様の効果を奏する。さらに、本実施形態によれば、ワークフローの内容に基づいて最適な順序でワークフローを実行することが可能となる。例えば、OCRのような画像解析処理より後にノイズ除去等の画像処理が定義されている場合、画像解析処理より前に画像処理を行うことでOCRの精度を向上させることができる。
このように、ユーザがワークフローシステムを扱うユーザがワークフローの各機能に関して特別な知識やスキルを持たず、効率の良さを考慮せずにワークフローの構築を行った場合であっても、自動でワークフローの最適化が行われる。そして、特定の機能の精度を向上させることも可能となる。
なお、上述した各実施形態において、ワークフローの最適化処理は、いずれもワークフローが確定した際に実行されるものとして説明した。しかし、これに限られるものではなく、例えば、ワークフローを実行する際にワークフロー制御部102が同様の処理を行う構成としてもよい。また、上述した各実施形態では、ワークフローが確定した際に生成されたワークフローデータに対して最適化処理を行い、該生成されたワークフローデータを編集するものとして説明した。しかし、これに限られるものではなく、例えば、ワークフローを作成する際に、同時に最適化処理を実行してもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
101 ワークフロー編集部
105 ワークフローデータ生成部
102 ワークフロー制御部
103 処理実行部
105 ワークフローデータ生成部
102 ワークフロー制御部
103 処理実行部
Claims (7)
- 1以上の機能を所定の順序で実行するワークフローの内容を定義したワークフローデータを生成する生成手段と、
前記ワークフローデータに基づき、前記1以上の機能を実行するために、各機能を実行する実行モジュールを呼び出し、制御する制御手段と、を有し、
前記生成手段は、前記ワークフローにおいて連続する機能が、同じ実行モジュールにより実行されることが定義されている場合に、前記実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、前記ワークフローデータを編集する、
ことを特徴とするワークフローシステム。 - 前記生成手段は、
前記ワークフローにおいて連続する機能が、異なる実行モジュールにより実行されることが定義されている場合であっても、該連続する機能のそれぞれを実行可能な共通の実行モジュールがある場合に、
前記共通の実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、前記ワークフローデータを編集する、
ことを特徴とする請求項1に記載のワークフローシステム。 - 前記ワークフローに用いられる機能と、該機能を実行する実行モジュールと、該機能を実行可能な他の実行モジュールとを示す情報を保持する関連データ保持手段をさらに有する、
ことを特徴とする請求項2に記載のワークフローシステム。 - 前記ワークフローに用いられる機能を分類したカテゴリに対して、カテゴリ間の順序を定めた順序データを保持する順序データ保持手段をさらに有し、
前記生成手段は、前記ワークフローにおいて連続する機能が、同じ実行モジュールにより実行されるように、前記ワークフローデータを編集する際に、前記順序データに基づき、該連続する機能が実行される順序を変更する
ことを特徴とする請求項1乃至3のいずれか1項に記載のワークフローシステム。 - 前記ワークフローの内容を定義および実行を指示する画面を表示する表示手段をさらに有し、
前記生成手段は、前記画面を介して前記ワークフローの内容が定義された際、または実行を指示された際に、前記ワークフローデータを編集する
ことを特徴とする請求項1乃至4のいずれか1項に記載のワークフローシステム。 - 1以上の機能を所定の順序で実行するワークフローの内容を定義したワークフローデータを生成する生成工程と、
前記ワークフローデータに基づき、前記1以上の機能を実行するために、各機能を実行する実行モジュールを呼び出し、制御する制御工程と、を有し、
前記生成工程において、前記ワークフローにおいて連続する機能が、同じ実行モジュールにより実行されることが定義されている場合に、前記実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、前記ワークフローデータを編集する、
ことを特徴とするワークフローシステムの制御方法。 - 1以上の機能を所定の順序で実行するワークフローの内容を定義したワークフローデータを生成する生成工程をコンピュータに実行させるためのプログラムであって、
前記生成工程において、前記ワークフローにおいて連続する機能が、同じ実行モジュールにより実行されることが定義されている場合に、前記実行モジュールに対して1回の呼び出しで該連続する機能が実行されるように、前記ワークフローデータを編集する、
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017125998A JP2019008695A (ja) | 2017-06-28 | 2017-06-28 | ワークフローシステム、制御方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017125998A JP2019008695A (ja) | 2017-06-28 | 2017-06-28 | ワークフローシステム、制御方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019008695A true JP2019008695A (ja) | 2019-01-17 |
Family
ID=65029597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017125998A Pending JP2019008695A (ja) | 2017-06-28 | 2017-06-28 | ワークフローシステム、制御方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019008695A (ja) |
-
2017
- 2017-06-28 JP JP2017125998A patent/JP2019008695A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6364738B2 (ja) | 情報処理システム、情報処理装置、プログラム及び処理実行方法 | |
JP6248493B2 (ja) | データ処理装置、データ処理方法、及びデータ処理プログラム | |
JP6331427B2 (ja) | データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム | |
JP2006313494A (ja) | 印刷制御装置および印刷制御方法 | |
US20120005603A1 (en) | Application development supporting apparatus, program, and recording medium | |
JP2014127066A (ja) | 情報処理装置、情報処理システム、及びプログラム | |
US20170154022A1 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
US10353998B2 (en) | Information processing apparatus with real time update related to data edited while form document data is browsed, control method, and storage medium | |
JP2019145144A (ja) | 自動デジタルrfid印刷及び統合のためのシステム及び方法 | |
JP2009294856A (ja) | ワークフロー処理装置及びワークフロー処理方法 | |
US10706225B2 (en) | Form management system and method | |
JP2016066355A (ja) | Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム | |
JP2018072947A (ja) | 情報処理システム、プログラム、処理実行方法 | |
JP2017027319A (ja) | 帳票文書データの表示・編集・保存方法、装置、処理プログラム | |
JP2019008695A (ja) | ワークフローシステム、制御方法、およびプログラム | |
JP2014049098A (ja) | 画像形成装置、画像形成装置の制御方法およびプログラム | |
JP5211863B2 (ja) | 電子文書処理装置及び電子文書処理プログラム | |
JP2012118932A (ja) | 情報処理装置及びプログラム | |
JP2006277560A (ja) | ソフトウェア開発支援装置、設計文書生成プログラム及び設計文書生成方法 | |
JP2008158727A (ja) | 電子帳票システム | |
JP2009211523A (ja) | 情報処理装置およびプログラム | |
JP2016078287A (ja) | 画像形成装置およびその制御方法、並びにプログラム | |
JP6998005B2 (ja) | 所定形式ファイル生成サーバ、書類発行システム、プログラム | |
US20220197477A1 (en) | Information processing apparatus and non-transitory computer readable medium storing program | |
JP2012022444A (ja) | 情報処理装置、ページ記述方法、及びプログラム |