(57)【要約】【課題】複数の処理の１つに逐次処理を含んで構成されるワークフローシステムにおいて、画像処理の効率を高めることを目的とする。【解決手段】複数の処理が組み合わされたワークフローに従って、入力された画像を処理する情報処理装置であって、前記ワークフローの実行命令としてのジョブを取得するジョブ取得部と、前記ジョブ取得部によって取得された前記ジョブを蓄積するジョブ蓄積部と、前記ワークフローの特定の処理に対して、前記ジョブ蓄積部に蓄積された前記ジョブを逐次処理する処理部と、前記処理部による前記ジョブの逐次処理の状態に応じて、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行う逐次処理制御部とを備える。【選択図】図４
2017143386.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理が組み合わされたワークフローに従って、入力された画像を処理する情報処理装置であって、
前記ワークフローの実行命令としてのジョブを取得するジョブ取得部と、
前記ジョブ取得部によって取得された前記ジョブを蓄積するジョブ蓄積部と、
前記ワークフローの特定の処理に対して、前記ジョブ蓄積部に蓄積された前記ジョブを逐次処理する処理部と、
前記処理部による前記ジョブの逐次処理の状態に応じて、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行う逐次処理制御部とを備えたことを特徴とする情報処理装置。
【請求項２】
前記逐次処理制御部は、
前記処理部による前記ジョブの逐次処理が実行中であるか否かを確認する逐次処理実行確認部と、
前記逐次処理実行確認部によって前記ジョブの逐次処理が実行中であることが確認されたとき、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブを特定する実行待ちジョブ特定部と、
前記実行待ちジョブ特定部によって特定された実行待ちの前記ジョブの逐次処理を停止して保持する停止保持部とを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記停止保持部は、
逐次処理を停止した前記ジョブを前記ジョブ蓄積部から転送するジョブ転送部と、
前記ジョブ転送部によって転送された前記ジョブを蓄積する停止用ジョブキューとから構成されることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記逐次処理実行確認部は、前記処理部による前記ジョブの逐次処理が実行中であることを確認した後、実行中の前記ジョブの逐次処理が完了したかどうかを確認し、
前記逐次処理制御部は、前記逐次処理実行確認部によって前記ジョブの逐次処理が完了したことが確認されたとき、前記停止用ジョブキューに蓄積された前記ジョブを前記ジョブ蓄積部に戻し、当該ジョブの逐次処理を前記ワークフローの途中から再開する逐次処理再開部を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記逐次処理制御部は、
前記逐次処理実行確認部によって実行中の前記ジョブの逐次処理が完了したことが確認されたとき、前記ジョブ蓄積部よりも先に前記停止用ジョブキュー内の前記ジョブの有無を判断する停止ジョブ有無判断部を含み、
前記停止ジョブ有無判断部によって前記停止用ジョブキュー内に前記ジョブがあると判断されたときに限り、前記逐次処理再開部による前記ジョブの逐次処理の再開を行うことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記逐次処理制御部は、
前記逐次処理再開部によって再開される前記ジョブの逐次処理を予約する逐次処理予約部を含み、
前記逐次処理実行確認部によって実行中の前記ジョブの逐次処理が完了したことが確認されたとき、前記逐次処理予約部によって予約された前記ジョブの逐次処理を前記ジョブ蓄積部に蓄積された前記ジョブの処理よりも優先して行うことを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記特定の処理の種類毎に前記処理部を複数備えると共に、これらの処理部にそれぞれ対応する前記停止用ジョブキューを複数備えたことを特徴とする請求項３乃至６いずれか１項に記載の情報処理装置。
【請求項８】
画像形成装置及び情報処理装置を含み、複数の処理が組み合わされたワークフローに従って、入力された画像を処理する情報処理システムであって、
前記ワークフローの実行命令としてのジョブを取得するジョブ取得部と、
前記ジョブ取得部によって取得された前記ジョブを蓄積するジョブ蓄積部と、
前記ワークフローの特定の処理に対して、前記ジョブ蓄積部に蓄積された前記ジョブを逐次処理する処理部と、
前記処理部による前記ジョブの逐次処理の状態に応じて、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行う逐次処理制御部とを備えたことを特徴とする情報処理システム。
【請求項９】
複数の処理が組み合わされたワークフローに従って、入力された画像を処理する情報処理プログラムであって、
前記ワークフローの実行命令としてのジョブを取得するステップと、
取得された前記ジョブをジョブ蓄積部に蓄積するステップと、
前記ワークフローの特定の処理に対して、前記ジョブ蓄積部に蓄積された前記ジョブを逐次処理するステップと、
前記ジョブの逐次処理の状態に応じて、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行うステップとを情報処理装置に実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能、及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）として構成されることが多い。
【０００３】
また、このように電子化された文書を文書管理サーバに蓄積し、若しくは指定された配信先に配信して利用する画像処理システムが知られている。このような画像処理システムにおいては、スキャナ機能と情報処理機能とを組み合わせてワークフローを構成し、文書蓄積の効率化を図ることが行われている。
【０００４】
このようなワークフローによる処理において、情報処理装置としてのワークフローサーバのリソースの処理状況に応じて、その処理のモードを切り替えるように構成された技術が従来より提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したワークフローによる処理については、基本的に複数のジョブを同時に並行して処理することができるが、その処理の内容によっては、所定の数以下のジョブに限って並行して処理することが望ましい、いわゆる逐次処理が存在する。この逐次処理が複数のジョブに対して実行されると、最初に実行が開始されたジョブ以外は処理が進まず、実行待ちの状態（待機状態）になる。そして、実行中のジョブの処理が完了してから次の実行待ちのジョブの処理が開始されるため、多数のジョブに対する逐次処理の実行が情報処理装置に要求されると、後続する実行待ちのジョブが大量に発生することが問題になっている。
【０００６】
また、複数のジョブを同時に並行して処理できるか否に拘わらず、情報処理装置が同時に処理できるジョブの数の上限（最大数）は予め決まっており、仮にワークフローによる処理において、逐次処理の指定を含む複数のジョブが情報処理装置に投入され、逐次処理を実行するジョブの数がその上限に達すると、これらのジョブの他、同時並行処理のように逐次処理以外の処理の指定しか含まない後続のジョブも実行待ちの状態にならざるを得ないことが問題になっている。
【０００７】
上述した特許文献１に開示された従来技術では、このような問題が考慮されておらず、複数の処理の１つに逐次処理を含んで構成されるワークフローシステムにおいて、画像処理の効率が低下することが懸念されている。
【０００８】
本発明は、このような課題を解決するためになされたものであり、複数の処理の１つに逐次処理を含んで構成されるワークフローシステムにおいて、画像処理の効率を高めることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の一態様は、複数の処理が組み合わされたワークフローに従って、入力された画像を処理する情報処理装置であって、前記ワークフローの実行命令としてのジョブを取得するジョブ取得部と、前記ジョブ取得部によって取得された前記ジョブを蓄積するジョブ蓄積部と、前記ワークフローの特定の処理に対して、前記ジョブ蓄積部に蓄積された前記ジョブを逐次処理する処理部と、前記処理部による前記ジョブの逐次処理の状態に応じて、前記ジョブ蓄積部に蓄積された実行待ちの前記ジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行う逐次処理制御部とを備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数の処理の１つに逐次処理を含んで構成されるワークフローシステムにおいて、画像処理の効率を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る画像処理システムの運用形態を示す図である。
【図２】本発明の第１実施形態に係る情報処理装置のハードウェア構成を模式的に示すブロック図である。
【図３】本発明の第１実施形態に係る画像形成装置の機能構成を示すブロック図である。
【図４】本発明の第１実施形態に係るワークフローサーバの機能構成を示すブロック図である。
【図５】本発明の第１実施形態に係るフロー定義記憶部に記憶されるフロー定義情報の定義内容を説明する図である。
【図６】本発明の第１実施形態に係るフロー実行制御部によるジョブの実行制御の動作の流れを示すフローチャートである。
【図７】本発明の第１実施形態に係る逐次処理制御部の機能構成を示すブロック図である。
【図８】本発明の第１実施形態に係るワークフローサーバがワークフローに沿って動作する全体的な流れを示すフローチャートであり、特にワークフローの処理に逐次処理が含まれない場合のフローチャートである。
【図９】本発明の第１実施形態に係るワークフローサーバのコントローラがワークフローに沿って動作する全体的な流れを示すフローチャートであり、特にワークフローの処理に逐次処理が含まれる場合のフローチャートである。
【図１０】本発明の第１実施形態に係るワークフローサーバの比較例として挙げた従来技術によるジョブの処理を説明する図である。
【図１１】本発明の第１実施形態に係るワークフローサーバの比較例として挙げた従来技術によるジョブの処理を説明する図である。
【図１２】本発明の第１実施形態に係るワークフローサーバの比較例として挙げた従来技術によるジョブの処理を説明する図である。
【図１３】本発明の第１実施形態に係るワークフローサーバの比較例として挙げた従来技術によるジョブの処理を説明する図である。
【図１４】本発明の第１実施形態に係るワークフローサーバによるジョブの処理を説明する図である。
【図１５】本発明の第１実施形態に係るワークフローサーバによるジョブの処理を説明する図である。
【図１６】本発明の第１実施形態に係るワークフローサーバによるジョブの処理を説明する図である。
【図１７】本発明の第１実施形態に係るフロー実行制御部及び逐次処理制御部によるジョブの逐次処理の制御動作の流れを示すフローチャートである。
【図１８】本発明の第２実施形態に係るワークフローサーバの機能構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
以下、図面を参照して、本発明の実施形態を詳細に説明する。本発明の第１実施形態においては、スキャンにより原稿が読み取られて生成された画像やデータとして入力された画像を、予め登録されたワークフローに従って処理することにより、画像情報の配信や格納を行う画像処理システムを情報処理システムの一例として挙げて説明する。
【００１３】
図１は、本発明の第１実施形態に係る画像処理システムの運用形態の例を示す図である。図１に示すように、本発明の第１実施形態に係る画像処理システムは、画像形成装置１、クライアント端末２、ワークフローサーバ３、文書管理サーバ４、配信サーバ５、及び認証サーバ６がネットワークを介して互いに接続されている。それぞれの機器が接続されているネットワークは一般的にはオフィス等に敷設されたＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であるが、インターネット等の公衆回線を介しても良い。
【００１４】
画像形成装置１は、撮像機能、画像形成機能、及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機である。また、画像形成装置１は、ワークフローサーバ３にワークフローを実行させるためにユーザ（管理者を含む）がジョブを入力するためのユーザインタフェースとしても用いられる。尚、スキャンにより処理対象の画像を入力する場合には、画像形成装置１に搭載されたスキャナが用いられる。従って、画像形成装置１は画像入力装置としても機能する。
【００１５】
クライアント端末２は、ユーザが操作する情報処理端末であり、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置によって実現される。ユーザはクライアント端末２を操作してワークフローサーバ３にアクセスすることにより、ワークフローサーバ３に対して各種の情報を入力することが可能である。
【００１６】
ワークフローサーバ３は、複数の処理が任意の順序で組み合わせられて構成されたワークフローに従って、入力された画像を処理し、文書管理サーバ４及び配信サーバ５への格納やメール配信等を行う情報処理装置である。ワークフローとは、例えば、それぞれが独立して、若しくは単独で完結した機能を実現する一以上の処理単位（タスク）の任意の組み合わせによって実現される処理の流れ（処理フロー）をいう。
【００１７】
また、本発明の第１実施形態に係るワークフローサーバ３は、画像形成装置１から受信して受け付けたワークフローの実行命令であるジョブについて、後述の逐次処理を含む各種の処理を行う機能を有する。このワークフローサーバ３の機能が本発明の特徴を構成する。
【００１８】
尚、上記処理単位は、一般的なワークフローの用語における、アクティビティに当てはめられてもよい。このようなワークフローで実施される処理には、画像データに対して画像処理を施すもの、ジョブにメタデータを付与するもの、及び最終的にジョブを配信先に届けるもの等の各種の処理があり、ワークフローサーバ３に入力された画像のノイズ除去やフォーマットの変換等の中間処理から配信処理までの処理が含まれる。
【００１９】
文書管理サーバ４は、ワークフローサーバ３で実行されるワークフローを定義する機能を有している。この文書管理サーバ４に対して、ユーザがクライアント端末２を介してアクセスし、任意のワークフローを定義することにより、これらの任意のワークフローをワークフローサーバ３に割り当てる。このように、ワークフローがワークフローサーバ３に割り当てられることでワークフローサーバ３における処理を実行することが可能になる。
【００２０】
配信サーバ５は、上述したワークフローで定義された配信先として指定されたサーバであり、ワークフローの実行の結果、画像情報が蓄積されるデータサーバである。配信サーバ５が記憶している画像情報とは、例えば、拡張子“ｊｐｇ”や“ｐｄｆ”等の画像情報である。この配信サーバ５は、ファイルサーバやメールサーバを始めとし、クラウドストレージ等の外部サーバも該当する。尚、配信先の対象については、ワークフローに割り当てる配信機能を追加することで、ユーザがクライアント端末２を介して予め設定することができる。
【００２１】
認証サーバ６は、予め登録されたユーザ毎にユーザＩＤやパスワード等の認証情報を格納し、クライアント端末２に対してユーザ認証を要求する。尚、図１に示す運用形態の他、ワークフローサーバ３に含まれる機能の一部をワークフローサーバ３とは別に設けた文書管理サーバ４等の装置に担わせる態様も可能である。このような態様は、例えば大規模なオフィス等、ユーザ数が多いために、ワークフローサーバの処理負荷が高くなる場合において、有効である。
【００２２】
また、画像形成装置１にワークフローサーバ３の機能の一部または全部を担わせることも可能である。例えば小規模なオフィスにおいては、画像形成装置１とは別個にワークフローサーバ３を設けるのではなく、画像形成装置１にワークフローサーバ３の機能をインストールすることにより、画像形成装置１のみで機能を完結する場合がある。このような態様により、冗長な性能の効率化や省スペース化を図ることが可能である。
【００２３】
次に、本発明の第１実施形態に係る画像形成装置１、クライアント端末２、ワークフローサーバ３、文書管理サーバ４、配信サーバ５、及び認証サーバ６等を実現するための情報処理装置のハードウェア構成について説明する。図２は、本発明の第１実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。尚、画像形成装置１は、図２に示すハードウェア構成に加えて、スキャナ、プリンタ等を実現するためのエンジンを備える。
【００２４】
図２に示すように、本発明の第１実施形態に係る情報処理装置は、一般的なサーバやＰＣ等と同様の構成を有する。即ち、本発明の第１実施形態に係る情報処理装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０、及びＩ／Ｆ５０がバス８０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０及び操作部７０が接続されている。
【００２５】
ＣＰＵ１０は演算手段であり、情報処理装置全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。
【００２６】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザが情報処理装置の状態を確認するために各種の情報を表示する視覚的ユーザインタフェースである。操作部７０は、キーボード、マウス、ハードキー等、ユーザが情報処理装置に情報を入力するためのユーザインタフェースである。尚、本発明の第１実施形態に係るワークフローサーバ３、文書管理サーバ４、配信サーバ５、及び認証サーバ６は、サーバとして運用される。したがって、ＬＣＤ６０及び操作部７０等のユーザインタフェースは省略可能である。
【００２７】
このようなハードウェア構成において、ＲＯＭ３０に格納されたプログラムやＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体からＲＡＭ２０に読み出された情報処理プログラム等の各種のプログラムに従ってＣＰＵ１０が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本発明の第１実施形態に係る画像形成装置１やワークフローサーバ３等の情報処理装置の機能を実現する機能ブロックが構成される。
【００２８】
次に、本発明の第１実施形態に係る画像形成装置１の機能構成について、図３を参照しながら説明する。図３に示すように、本発明の第１実施形態に係る画像形成装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１０１、スキャナユニット１０２、排紙トレイ１０３、ディスプレイパネル１０４、給紙テーブル１０５、プリントエンジン１０６、排紙トレイ１０７、及びネットワークＩ／Ｆ１０８を有する。
【００２９】
また、コントローラ１００は、主制御部１１０、エンジン制御部１２０、画像処理部１３０、操作表示制御部１４０、及び入出力制御部１５０を含む。図３に示すように、本発明の第１実施形態に係る画像形成装置１は、スキャナユニット１０２及びプリントエンジン１０６を有する複合機として構成されている。尚、図３においては、電気的接続を実線の矢印で示しており、用紙若しくは文書束の流れを破線の矢印で示している。
【００３０】
ディスプレイパネル１０４は、情報を表示する視覚的出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置１を直接操作し、若しくは画像形成装置１に対して情報を入力する際の入力インタフェース（操作部）でもある。ディスプレイパネル１０４は、図２に示すＬＣＤ６０及び操作部７０によって実現される。
【００３１】
ネットワークＩ／Ｆ１０８は、画像形成装置１がネットワークを介して他の機器と通信するためのインタフェースであり、例えばＥｔｈｅｒｎｅｔ（登録商標）インタフェースが用いられる。ネットワークＩ／Ｆ１０８は、図２に示すＩ／Ｆ５０によって実現される。また、ネットワークＩ／Ｆ１０８には、ＦＡＸモデムとしての機能も含まれ、画像形成装置１がネットワークを介してＦＡＸ送受信を行うためのインタフェースとしても機能する。
【００３２】
コントローラ１００は、上述したようにソフトウェアとハードウェアとの組み合わせによって構成される。コントローラ１００は、画像形成装置１全体を制御する制御部として機能する。
【００３３】
主制御部１１０は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１２０は、プリントエンジン１０６やスキャナユニット１０２等を制御若しくは駆動する駆動手段としての役割を担う。画像処理部１３０は、主制御部１１０の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１０６が画像形成動作において形成すべき画像を描画するための情報である。
【００３４】
また、画像処理部１３０は、スキャナユニット１０２から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像形成装置１の記憶領域に格納され、若しくはネットワークＩ／Ｆ１０８を介してクライアント端末２やワークフローサーバ３等に送信される情報である。このようにして生成されたスキャン画像が、ワークフローサーバ３に対して送信されてワークフローによって処理される入力画像として用いられる。
【００３５】
操作表示制御部１４０は、ディスプレイパネル１０４に情報表示を行い、若しくはディスプレイパネル１０４を介して入力された情報を主制御部１１０に通知する。入出力制御部１５０は、ネットワークＩ／Ｆ１０８を介して入力される情報を主制御部１１０に入力する。また、主制御部１１０は、入出力制御部１５０を制御し、ネットワークＩ／Ｆ１０８及びネットワークを介して他の機器にアクセスする。
【００３６】
画像形成装置１がプリンタとして動作する場合は、まず、入出力制御部１５０がネットワークＩ／Ｆ１０８を介して印刷ジョブを受信する。入出力制御部１５０は、受信した印刷ジョブを主制御部１１０に転送する。主制御部１１０は、印刷ジョブを受信すると、画像処理部１３０を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成させる。
【００３７】
画像処理部１３０によって描画情報が生成されると、エンジン制御部１２０は、プリントエンジン１０６を制御し、上記生成された描画情報に基づき、給紙テーブル１０５から搬送される用紙に対して画像形成を実行させる。プリントエンジン１０６の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１０６によって画像形成が施された文書は排紙トレイ１０７に排紙される。
【００３８】
画像形成装置１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１０４の操作若しくはネットワークＩ／Ｆ１０８を介して外部のクライアント端末２等から入力されるスキャン実行指示に応じて、操作表示制御部１４０若しくは入出力制御部１５０が主制御部１１０にスキャン実行信号を転送する。主制御部１１０は、受信したスキャン実行信号に基づき、エンジン制御部１２０を制御する。
【００３９】
エンジン制御部１２０は、ＡＤＦ１０１を駆動し、ＡＤＦ１０１にセットされた撮像対象原稿をスキャナユニット１０２に搬送する。また、エンジン制御部１２０は、スキャナユニット１０２を駆動し、ＡＤＦ１０１から搬送される原稿を撮像する。また、ＡＤＦ１０１に原稿がセットされておらず、スキャナユニット１０２に直接原稿がセットされた場合、スキャナユニット１０２は、エンジン制御部１２０の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１０２が撮像部として動作する。
【００４０】
撮像動作においては、スキャナユニット１０２に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１２０は、スキャナユニット１０２が生成した撮像情報を画像処理部１３０に転送する。画像処理部１３０は、主制御部１１０の制御に従い、エンジン制御部１２０から受信した撮像情報に基づき画像情報を生成する。画像処理部１３０が生成した画像情報はＨＤＤ４０等の画像形成装置１に装着された記憶媒体に保存される。
【００４１】
画像処理部１３０によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され、若しくは入出力制御部１５０及びネットワークＩ／Ｆ１０８を介してワークフローサーバ３等の外部の装置に送信される。
【００４２】
また、画像形成装置１が複写機として動作する場合は、エンジン制御部１２０がスキャナユニット１０２から受信した撮像情報若しくは画像処理部１３０が生成した画像情報に基づき、画像処理部１３０が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１２０がプリントエンジン１０６を駆動する。尚、描画情報と撮像情報との情報形式が同一である場合は、撮像情報をそのまま描画情報として用いることも可能である。
【００４３】
次に、本発明の第１実施形態に係るワークフローサーバ３の機能構成について、図４を参照しながら詳細に説明する。図４に示すように、ワークフローサーバ３は、ワークフローコントローラ３００及びネットワークＩ／Ｆ３１０を含む。また、ワークフローコントローラ３００は、ジョブ取得部３０１、実行ジョブキュー３０２、処理実行部３０３、配信部３０４、フロー実行制御部３０５、フロー定義記憶部３０６、フロー定義管理部３０７、逐次処理制御部３０８、及び停止用ジョブキュー３０９を有する。
【００４４】
さらに、処理実行部３０３は、複数の処理部３０３Ａ−１，３０３Ａ−２，・・・，３０３Ａ−ｎ（ｎ：自然数）を含んで構成される。以下では、処理実行部３０３における処理部３０３Ａ−１，３０３Ａ−２，・・・，３０３Ａ−ｎをそれぞれ区別する必要がない場合には、それらを総称して処理部３０３Ａとする。
【００４５】
ネットワークＩ／Ｆ３１０は、ワークフローサーバ３がネットワークを介して他の機器と通信するためのインタフェースであり、例えばＥｔｈｅｒｎｅｔ（登録商標）インタフェースが用いられる。ワークフローコントローラ３００は、ワークフローサーバ３による画像処理及び配信機能を実現する構成である。以下、ワークフローコントローラ３００に含まれるそれぞれのモジュールについて説明する。
【００４６】
ジョブ取得部３０１は、画像形成装置１から送信されたワークフローのジョブをネットワークＩ／Ｆ３１０を介して取得し、実行ジョブキュー３０２に格納する。これにより、実行ジョブキュー３０２は、ワークフローサーバ３が受信した順にワークフローのジョブをキューとして保持する。即ち、この実行ジョブキュー３０２が、ジョブ取得部３０１によって取得されたジョブを蓄積するジョブ蓄積部として機能する。
【００４７】
また、ワークフローサーバ３内で同時に実行できるジョブの数は処理実行部３０３に含まれる処理部３０３Ａの総数で定まることから、実行ジョブキュー３０２に格納されたジョブの総数が処理部３０３Ａの総数を超えなければ、複数のジョブを同時に処理することが可能である。尚、実行ジョブキュー３０２内において、処理部３０３Ａの総数を超える数のジョブを蓄積することは可能である。
【００４８】
処理実行部３０３は、フロー実行制御部３０５の制御に従い、処理部３０３Ａを動作させて各ワークフローで定義された中間処理を実行する。この処理実行部３０３に含まれる全ての処理部３０３Ａが実行中である状態で、さらに実行ジョブキュー３０２にジョブが渡された場合には、そのジョブは実行待ちの状態（待機状態）になる。
【００４９】
ここで、処理実行部３０３によって実行される中間処理とは、ワークフローを構成する処理の一例であり、例えば、画像に発生したノイズを除去したり、画像のフォーマットをＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）に変換する等の画像の変換を行ったりする処理が該当する。
【００５０】
処理実行部３０３に含まれる処理部３０３Ａは、ワークフローの中間処理のうち特定の処理に対して、実行ジョブキュー３０２に蓄積されたジョブを逐次処理すると共に、ワークフローの中間処理のうち逐次処理以外の処理や配信処理に対して、実行ジョブキュー３０２に蓄積されたジョブを同時に並行して処理（以下、同時並行処理と称することがある）する。
【００５１】
処理部３０３Ａによって実行される逐次処理とは、所定の数以下のジョブに限って並行して実行する処理をいう。具体的には、ワークフローサーバ３のＣＰＵ１０やメモリ等、ワークフローサーバ３のリソースの使用に対する負担が比較的大きい処理（例えば、画像補正処理）は、上記所定の数を超えて並行して実行された場合に、例えば、ＣＰＵ１０の処理速度が低下すること等により、ワークフローサーバ３全体の処理に影響を及ぼす可能性があるため、逐次処理に該当する。
【００５２】
また、ＰＤＦの変換処理で使用されているアプリケーションソフトウェア等のように、ワークフローにおいて処理を実行するアプリケーションソフトウェア等の仕様や制限がある処理は、所定の数以下でしか並行して実行できず、若しくは完全に並行して実行できないため、逐次処理に該当する。
【００５３】
本発明の第１実施形態においては、本発明の内容を分かり易く説明するために、上記所定の数が１に設定されている。尚、この所定の数は、この場合に限定されるものではなく、後述する本発明の第２実施形態のように、２以上に設定されてもよい。
【００５４】
処理部３０３Ａによる逐次処理は、当該逐次処理がワークフローで選択できる中間処理として複数存在できることから、ワークフローに定義することが可能である。また、処理部３０３Ａによる同時並行処理も、逐次処理と同様に、同時並行処理がワークフローで選択できる中間処理として複数存在できることから、ワークフローに定義することが可能である。
【００５５】
これらの逐次処理と同時並行処理は、それぞれ処理を一度に１つしか行うことができないか、複数の処理を同時に行うことができるかの性質であり、各処理部３０３Ａが実行するジョブに対する処理は、画像の変換処理やＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）処理等の各種の処理がある。
【００５６】
配信部３０４は、フロー実行制御部３０５の制御に従い、ワークフローに定義される配信処理を実行し、ワークフローに従って処理実行部３０３により処理された画像データ等を配信先の文書管理サーバ４や配信サーバ５へ送信する。
【００５７】
また、配信部３０４によって実行される配信処理とは、ワークフローを構成する処理の一例であり、例えば、画像データを文書管理サーバ４や配信サーバ５の特定のフォルダに送信して保持させるフォルダ配信や、画像データを文書管理サーバ４や配信サーバ５のうち特定のメールアドレスに送信して保持させるメール配信が該当する。
【００５８】
フロー実行制御部３０５は、フロー定義記憶部３０６に記憶された後述のフロー定義情報を参照し、実行ジョブキュー３０２に格納されたワークフローのジョブを、順番に取得して実行制御を行い、ワークフローに沿ったジョブの処理を処理実行部３０３及び配信部３０４に指示する。このフロー実行制御部３０５は、処理実行部３０３に対するジョブの受け渡しも行うため、処理実行部３０３に含まれる処理部３０３Ａを動作させる数を制御する機能を有する。
【００５９】
具体例としては、処理実行部３０３に１０個の処理部３０３Ａ−１〜３０３Ａ−１０が含まれている場合に、フロー実行制御部３０５は、後述の逐次処理予約部３０８Ｆからの依頼を受けて、１０個の処理部３０３Ａ−１〜３０３Ａ−１０のうち、例えば、９個の処理部３０３Ａ−１〜３０３Ａ−９だけを動作させるように制御することが可能である。これにより、後述するように、実行中のジョブの逐次処理が完了次第、停止用ジョブキュー３０９から実行ジョブキュー３０２に戻されたジョブを円滑に処理することができる。
【００６０】
また、フロー実行制御部３０５が、ジョブの取得時にそのジョブに該当するワークフローの定義をフロー定義記憶部３０６から読み取り、フロー定義情報としてジョブの中に１つずつ組み込む。即ち、１つのジョブが１つのフロー定義情報を含むことになる。さらに、画像処理に関する各種の条件が設定された設定情報がユーザによってワークフローサーバ３に入力されている場合には、この設定情報もジョブの中に組み込まれる。つまり、ジョブは、画像データの他、フロー定義情報や設定情報も含んでいる。尚、フロー実行制御部３０５によるジョブの実行制御の動作については後述する。
【００６１】
フロー定義記憶部３０６は、ユーザによって設定されたフロー定義情報、即ち、どのように画像情報を入力し、どのように画像情報を処理し、どのように画像情報を出力するかが定められた情報を記憶している。ここで、このようなフロー定義情報の一例について、図５を参照しながら詳細に説明する。
【００６２】
図５に示すフロー定義情報は、ユーザが文書管理サーバ４に対してワークフローの定義を設定する際に、クライアント端末２のＬＣＤ６０に表示される処理の名称を示す「ｄｉｓｐｌａｙＮａｍｅ」と、処理の種別を示す「ｔｙｐｅ」と、１つのフローに同じ中間処理が複数設定されている場合に、これらの中間処理を識別するための値を示す「Ｉｎｄｅｘ」と、処理部３０３Ａの識別ＩＤを示す「ｉｄ」とから構成されている。尚、「ｔｙｐｅ」の「ｆｉｌｔｅｒ」は中間処理、「ｏｕｔｐｕｔ」は配信処理をそれぞれ示しており、「Ｉｎｄｅｘ」の数字「０」は１番目の中間処理、数字「１」は２番目の中間処理を示している。
【００６３】
本発明の第１実施形態においては、本発明の構成を実現するために、フロー定義情報の定義内容に「ｓｉｎｇｌｅＴｈｒｅａｄ」の情報を追加することにより、フロー実行制御部３０５が、この「ｓｉｎｇｌｅＴｈｒｅａｄ」の値に基づいて、対象とする処理部３０３Ａが逐次処理を行うのか、あるいは同時並行処理を行うのかを判断する。フロー実行制御部３０５は、「ｓｉｎｇｌｅＴｈｒｅａｄ」が「ｔｒｕｅ」であれば、処理部３０３Ａが逐次処理を行うと判断し、「ｓｉｎｇｌｅＴｈｒｅａｄ」が「ｆａｌｓｅ」であれば、処理部３０３Ａが同時並行処理を行うと判断する。
【００６４】
フロー定義管理部３０７は、このような構成のフロー定義情報の管理を行う。フロー定義管理部３０７が担う機能には、フロー定義記憶部３０６への新たなフロー定義情報の登録機能や、既に登録されているフロー定義情報の編集機能が含まれる。ユーザは、画像形成装置１やクライアント端末２を操作してワークフローコントローラ３００との間で情報をやり取りし、文書管理サーバ４を介してフロー定義情報の登録や編集を行う。
【００６５】
図６は、本発明の第１実施形態に係るフロー実行制御部３０５によるジョブの実行制御の動作の流れを示すフローチャートである。同図に示す例は、フロー実行制御部３０５が各中間処理Ａ，Ｂ及び配信処理を仲介する様子を表しており、以下では、ユーザが文書管理サーバ４に対して中間処理Ａ、中間処理Ｂ、配信処理の順番で設定したワークフローを作成し、このワークフローに従ってスキャンした画像データを配信する場合について説明する。
【００６６】
図６に示すように、まず、スキャンで生成された画像データを基に生成されたジョブをジョブ取得部３０１が取得すると、フロー実行制御部３０５は、フロー定義情報を生成してジョブの中に組み込む（ステップ（以下、Ｓと記す）６０１）。続いて、フロー実行制御部３０５は、フロー定義情報を参照し、このフロー定義情報の定義内容に基づいて、指定された処理部３０３Ａ、例えば、処理部３０３Ａ−１にジョブを渡す（Ｓ６０２）。
【００６７】
次に、処理部３０３Ａ−１の中間処理Ａが完了すると、当該処理部３０３Ａ−１から次の処理部３０３Ａ、例えば、処理部３０３Ａ−２へジョブが渡される前に、フロー実行制御部３０５は、中間処理Ａが完了した処理部３０３Ａ−１からジョブを一度受け取り（Ｓ６０３）、フロー定義情報を再度参照し、このフロー定義情報の定義内容に基づいて、次に指定された処理部３０３Ａ−２にジョブを渡す（Ｓ６０４）。
【００６８】
その後、処理部３０３Ａ−２の中間処理Ｂが完了すると、フロー実行制御部３０５は、当該処理部３０３Ａ−２からジョブを受け取り（Ｓ６０５）、フロー定義情報を再度参照し、このフロー定義情報の定義内容に基づいて、次に指定された配信部３０４にジョブを渡す（Ｓ６０６）。これにより、配信部３０４による配信先への配信処理が行われ、フロー実行制御部３０５によるジョブの実行制御の動作が終了する。このような一連の動作が行われることで、ユーザが文書管理サーバ４に対して定義したワークフローの順序に沿ったジョブの処理を実現することができる。
【００６９】
逐次処理制御部３０８は、処理実行部３０３の処理部３０３Ａによるジョブの逐次処理の状態に応じて、実行ジョブキュー３０２に蓄積された実行待ちのジョブの逐次処理を継続させ、若しくは一時的に停止させる制御を行うものであり、本発明の要旨の１つである。尚、逐次処理制御部３０８の具体的な構成の詳細については後述する。
【００７０】
停止用ジョブキュー３０９は、処理部３０３Ａによる逐次処理の実効待ちのジョブを格納して蓄積し、実行中のジョブの逐次処理が完了して処理部３０３Ａが逐次処理を実行することが可能な状態になると、停止用ジョブキュー３０９に最初に格納されたジョブ、即ち、先頭のジョブが実行ジョブキュー３０２に渡される。
【００７１】
また、停止用ジョブキュー３０９は、処理部３０３Ａが逐次処理を行う機能と1対１で対応し、この機能の数だけ存在する。本発明の第１実施形態においては、逐次処理を同時に実行できる上記所定の数を１に設定したことから、停止用ジョブキュー３０９はワークフローサーバ３内に１つだけ存在する。
【００７２】
次に、本発明の第１実施形態に係る逐次処理制御部３０８の具体的な構成について、図７を参照しながら詳細に説明する。図７に示すように、本発明の第１実施形態に係る逐次処理制御部３０８は、逐次処理監視部３０８Ａ、実行待ちジョブ特定部３０８Ｂ、ジョブ転送部３０８Ｃ、逐次処理再開部３０８Ｄ、停止ジョブ有無判断部３０８Ｅ、及び逐次処理予約部３０８Ｆを含んで構成される。
【００７３】
逐次処理監視部３０８Ａは、逐次処理を行う処理部３０３Ａを監視し、処理部３０３Ａによるジョブの逐次処理が実行中であるか否かを確認する。即ち、逐次処理監視部３０８Ａが逐次処理実行確認部として機能する。また、逐次処理監視部３０８Ａは、処理部３０３Ａによるジョブの逐次処理が実行中であることを確認した後、実行中のジョブの逐次処理が完了したか否かを確認する。そして、逐次処理監視部３０８Ａは、実行中のジョブの逐次処理が完了したことを確認すると、逐次処理予約部３０８Ｆに対する予約を依頼する。
【００７４】
実行待ちジョブ特定部３０８Ｂは、逐次処理監視部３０８Ａによってジョブの逐次処理が実行中であることが確認されたとき、実行ジョブキュー３０２に蓄積された実行待ちのジョブを特定する。ジョブ転送部３０８Ｃは、実行待ちジョブ特定部３０８Ｂによって特定された実行待ちのジョブの逐次処理を停止して停止用ジョブキュー３０９に転送する。即ち、ジョブ転送部３０８Ｃ及び停止用ジョブキュー３０９が、実行待ちのジョブの逐次処理を停止して保持する停止保持部として機能する。
【００７５】
逐次処理再開部３０８Ｄは、逐次処理監視部３０８Ａによってジョブの逐次処理が完了したことが確認されたとき、停止用ジョブキュー３０９に蓄積されたジョブを実行ジョブキュー３０２に戻し、当該ジョブの逐次処理をワークフローの途中から再開する。
【００７６】
停止ジョブ有無判断部３０８Ｅは、逐次処理監視部３０８Ａによって実行中のジョブの逐次処理が完了したことが確認されたとき、実行ジョブキュー３０２よりも先に停止用ジョブキュー３０９内のジョブの有無を判断する。そして、停止ジョブ有無判断部３０８Ｅによって停止用ジョブキュー３０９内にジョブがあると判断されたときに限り、逐次処理再開部３０８Ｄによるジョブの逐次処理の再開が行われる。
【００７７】
逐次処理予約部３０８Ｆは、逐次処理監視部３０８Ａからの依頼を受け、逐次処理再開部３０８Ｄによって再開されるジョブの逐次処理を予約する。具体的には、逐次処理予約部３０８Ｆは、フロー実行制御部３０５に対して、逐次処理を行う処理部３０３Ａの仕様を予約する。このような予約が完了すると、逐次処理制御部３０８は、逐次処理予約部３０８Ｆによって予約された処理部３０３Ａによるジョブの逐次処理を実行ジョブキュー３０２に蓄積されたジョブの処理よりも優先して行う。
【００７８】
次に、本発明の第１実施形態に係るワークフローサーバ３がワークフローに沿って動作する全体的な流れについて、図８、図９を参照しながら詳細に説明する。図８は、ワークフローの処理に逐次処理が含まれない場合におけるワークフローサーバ３の動作の流れを示し、図９は、ワークフローの処理に逐次処理が含まれる場合におけるワークフローサーバ３の動作の流れを示している。
【００７９】
図８に示すように、ワークフローサーバ３においては、ワークフローに同時並行処理が設定されていると、ジョブ取得部３０１がジョブを取得した後（Ｓ８０１）、このジョブは実行ジョブキュー３０２に格納される。続いて、処理実行部３０３の処理部３０３Ａは、実行ジョブキュー３０２に格納されたジョブをフロー実行制御部３０５を介して受け取り、受け取ったジョブをそのまま同時並行処理する（Ｓ８０２）。そして、同時並行処理が完了したジョブに対して、配信部３０４による配信先への配信処理が行われ（Ｓ８０３）、ワークフローサーバ３の動作が終了する。
【００８０】
一方、図９に示すように、ワークフローサーバ３においては、ワークフローに逐次処理が設定されていると、ワークフローの逐次処理の前後に逐次処理監視部３０８Ａによる監視処理が内部的に設定される。即ち、この監視処理は、ワークフローの定義者であるユーザに知らせることなく行われる。
【００８１】
同図において、まず、ジョブ取得部３０１がジョブを取得した後（Ｓ９０１）、このジョブは実行ジョブキュー３０２に格納される。続いて、逐次処理監視部３０８Ａが、逐次処理を行う処理部３０３Ａを監視する（Ｓ９０２）。これにより、逐次処理監視部３０８Ａの監視結果に基づいて、実行ジョブキュー３０２内の実行待ちのジョブの逐次処理を継続させ、若しくは一時的に停止させるかの判断が逐次処理制御部３０８によって行われる。
【００８２】
そして、実行中のジョブの逐次処理が完了した際にも（Ｓ９０３）、逐次処理監視部３０８Ａが、逐次処理を行う処理部３０３Ａを監視する（Ｓ９０４）。このとき、停止ジョブ有無判断部３０８Ｅが、停止用ジョブキュー３０９の中身を確認し、停止用ジョブキュー３０９内にジョブが存在していると判断すれば、逐次処理予約部３０８Ｆが、フロー実行制御部３０５に対して、逐次処理を行う処理部３０３Ａの仕様を予約する。その後、配信部３０４による配信先への配信処理が行われ（Ｓ９０５）、ワークフローサーバ３の動作が終了する。
【００８３】
このように、処理部３０３Ａの予約を行うことにより、次に処理部３０３Ａが空いた瞬間に停止用ジョブキュー３０９内の先頭のジョブが当該処理部３０３Ａに渡され、ジョブの逐次処理が実行される。これにより、停止用ジョブキュー３０９内の先頭のジョブを実行ジョブキュー３０２に移した際に、処理部３０３Ａが割り当てられるのを待つのを回避できるので、ジョブの逐次処理を迅速に再開することができる。尚、図８に示すＳ８０１〜Ｓ８０３、図９に示すＳ９０１〜Ｓ９０５の間には、複数の同時並行処理及び逐次処理を含んでもよい。
【００８４】
図１０〜図１３は、本発明の第１実施形態に係るワークフローサーバ３の比較例として挙げた従来技術によるジョブの処理を説明する図である。図１０〜図１３に示す例では、処理実行部３０３において５つの処理部３０３Ａ−１〜３０３Ａ−５が存在し、７つのジョブ１〜７が実行ジョブキュー３０２に蓄積されている。したがって、処理実行部３０３が同時に処理できるジョブの数の上限は５、同時に逐次処理できるジョブの数（上記所定の数）は１、同時に並行して処理できるジョブの数は５である。一方、各ジョブ１〜７に指定された処理Ｂは逐次処理、処理Ａ，Ｃ，Ｄは同時並行処理である。
【００８５】
図１０においては、実行ジョブキュー３０２に蓄積されたジョブ１〜７のうち先頭から５番目までのジョブ１〜５が処理部３０３Ａ−１〜３０３Ａ−５にそれぞれ割り当てられている。そのため、各処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５は、ジョブ１〜３，５の先頭の処理Ａが同時並行処理であることからジョブ１〜３，５に対して同時並行処理を行う。また、処理部３０３Ａ−４は、ジョブ４の先頭の処理Ｂが逐次処理であることからジョブ４に対して逐次処理を行う。このとき、処理部３０３Ａ−１〜３０３Ａ−５に割り当てられなかったジョブ６，７は実行待ちの状態になる。
【００８６】
次に、図１１に示すように、各処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５によるジョブ１〜３，５の先頭の処理Ａが完了しても、処理部３０３Ａ−４によるジョブ４の先頭の処理Ｂが完了していなければ、処理Ｂが逐次処理であるため、各処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５に割り当てられたジョブ１〜３，５も実行待ちの状態になる。また、各ジョブ１〜３，５が処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５を占有しているため、ジョブ６，７は、逐次処理が指定されていないにも拘わらず、そのまま実行待ちの状態が維持される。
【００８７】
次に、図１２に示すように、処理部３０３Ａ−４によるジョブ４の先頭の処理Ｂが完了すると、処理部３０３Ａ−４は、ジョブ４の次の処理Ｃを実行し、処理Ｃが同時並行処理であることからジョブ４に対して同時並行処理を行う。そして、実行ジョブキュー３０２に蓄積された順番に従って、処理部３０３Ａ−１が、ジョブ１の次の処理Ｂを実行することにより、処理Ｂが逐次処理であることからジョブ１に対して逐次処理を行う。各処理部３０３Ａ−２，３０３Ａ−３，３０３Ａ−５に割り当てられたジョブ２，３，５は実行待ちの状態が維持されるため、後続のジョブ６，７もそのまま実行待ちの状態が維持される。
【００８８】
次に、図１３に示すように、処理部３０３Ａ−４によるジョブ４の処理Ｃが完了すると、ジョブ４の全ての処理が完了したので、処理部３０３Ａ−４に実行待ちのジョブ６が割り当てられる。一方、処理部３０３Ａ−１によるジョブ１の処理Ｂが完了していなければ、実行待ちのジョブ７の処理が開始されることはない。このように、従来技術においては、逐次処理が指定されていない後続のジョブ６，７に無駄な実行待ちの状態が発生することにより、画像処理の効率が低下している。
【００８９】
図１４〜図１６は、本発明の第１実施形態に係るワークフローサーバ３によるジョブの処理を説明する図である。図１４においては、図１０に示す例と同様に、実行ジョブキュー３０２に蓄積されたジョブ１〜７のうち先頭から５番目までのジョブ１〜５が処理部３０３Ａ−１〜３０３Ａ−５にそれぞれ割り当てられている。そのため、各処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５は、ジョブ１〜３，５の先頭の処理Ａが同時並行処理であることからジョブ１〜３，５に対して同時並行処理を行う。また、処理部３０３Ａ−４は、ジョブ４の先頭の処理Ｂが逐次処理であることからジョブ４に対して逐次処理を行う。このとき、処理部３０３Ａ−１〜３０３Ａ−５に割り当てられなかったジョブ６，７は実行待ちの状態になる。
【００９０】
次に、図１５に示すように、各処理部３０３Ａ−１〜３０３Ａ−３，３０３Ａ−５によるジョブ１〜３，５の先頭の処理Ａが完了し、処理部３０３Ａ−４によるジョブ４の先頭の処理Ｂが完了していなければ、逐次処理制御部３０８がジョブ１〜３，５を実行ジョブキュー３０２から停止用ジョブキュー３０９へ転送して退避させる。これにより、開放された各処理部３０３Ａ−１，３０３Ａ−２に後続のジョブ６，７が割り当てられるので、各処理部３０３Ａ−１，３０３Ａ−２がジョブ６，７の処理Ａを実行することができる。その結果、ジョブ６、７が無駄に実行待ちの状態になるのを抑制できるので、画像処理の効率を高めることができる。
【００９１】
次に、図１６に示すように、処理部３０３Ａ−４によるジョブ４の先頭の処理Ｂが完了すると、逐次処理制御部３０８が停止用ジョブキュー３０９に蓄積された先頭のジョブ１を実行ジョブキュー３０２へ戻すことにより、開放されている処理部３０３Ａ−３にジョブ１が割り当てられる。これにより、処理部３０３Ａ−３が、ジョブ１の処理Ｂを実行することにより、処理Ｂが逐次処理であることからジョブ１に対して逐次処理を行うと共に、処理部３０３Ａ−４が、ジョブ４の次の処理Ｃを実行することにより、処理Ｃが同時並行処理であることからジョブ４に対して同時並行処理を行う。
【００９２】
次に、本発明の第１実施形態に係るフロー実行制御部３０５及び逐次処理制御部３０８によるジョブの逐次処理の制御動作について、図１７を参照しながら詳細に説明する。図１７に示すように、まず、フロー実行制御部３０５は、実行ジョブキュー３０２に蓄積されたジョブのフロー定義情報を解析し、ジョブ実行制御を行う（Ｓ１７０１）。このとき、フロー実行制御部３０５は、フロー定義情報の解析結果を逐次処理制御部３０８に送信する。
【００９３】
本発明の第１実施形態においては、ジョブを実行する前のフロー定義情報の解析によって場合分けする条件が３つある。一つ目の条件は、直前に実行したジョブの処理が配信処理であるか否か、即ち、配信先への配信が完了したか否かを確認すること、２つ目の条件は、次に実行するジョブ（以下、対象ジョブとする）の処理が逐次処理であるか否かを確認すること、３つ目の条件は、対象ジョブの処理よりも前に逐次処理を実行中のジョブがあるか否かを確認することである。
【００９４】
１つ目の条件は、ワークフローに従ってジョブを処理する上で必要不可欠なものであるので、その場合分けは一般的な条件分岐であるが、２つ目と３つ目の条件は、本発明の要旨の１つである。
【００９５】
具体的には、Ｓ１７０１の動作が終了すると、逐次処理制御部３０８は、フロー実行制御部３０５によるフロー定義情報の解析結果を参照し、直前に実行したジョブの処理が配信処理か否かを確認する（Ｓ１７０２）。このとき、逐次処理制御部３０８は、直前に実行したジョブの処理が配信処理であることを確認すると（Ｓ１７０２／ＹＥＳ）、ジョブの処理が完了しているので（Ｓ１７０３）、ジョブの逐次処理の制御動作を終了する。
【００９６】
Ｓ１７０２において、逐次処理制御部３０８は、直前に実行したジョブの処理が配信処理ではないことを確認すると（Ｓ１７０２／ＮＯ）、フロー実行制御部３０５によるフロー定義情報の解析結果を参照し、対象ジョブの処理が逐次処理であるか否かを確認する（Ｓ１７０４）。このとき、逐次処理制御部３０８は、対象ジョブの処理が逐次処理ではないことを確認すると（Ｓ１７０４／ＮＯ）、対象ジョブに対して逐次処理以外の処理を実行し（Ｓ１７１０）、Ｓ１７０１からの動作が繰り返される。
【００９７】
Ｓ１７０４において、逐次処理制御部３０８は、対象ジョブの処理が逐次処理であることを確認すると（Ｓ１７０４／ＹＥＳ）、フロー実行制御部３０５によるフロー定義情報の解析結果を参照し、対象ジョブの処理よりも前に逐次処理を実行中のジョブがあるか否かを確認する（Ｓ１７０５）。このとき、逐次処理制御部３０８は、対象ジョブの処理よりも前に逐次処理を実行中のジョブがないことを確認すると（Ｓ１７０５／ＮＯ）、対象ジョブの逐次処理を実行し（Ｓ１７１０）、Ｓ１７０１からの動作が繰り返される。
【００９８】
Ｓ１７０５において、逐次処理制御部３０８は、対象ジョブの処理よりも前に逐次処理を実行中のジョブがあることを確認すると（Ｓ１７０５／ＹＥＳ）、対象ジョブを実行ジョブキュー３０２から停止用ジョブキュー３０９に転送し（Ｓ１７０６）、対象ジョブを一時的に停止させる。これにより、処理実行部３０３における処理部３０３Ａが１つ空くため、対象ジョブを停止している間、別のジョブを処理部３０３Ａに１つ追加して処理することができる。
【００９９】
その後、逐次処理制御部３０８は、実行中のジョブの逐次処理が完了したか否かを確認し（Ｓ１７０７）、実行中のジョブの逐次処理が完了したことを確認するまで待機する（Ｓ１７０７／ＮＯ）。そして、逐次処理制御部３０８は、実行中のジョブの逐次処理が完了したことを確認すると（Ｓ１７０７／ＹＥＳ）、停止用ジョブキュー３０９に蓄積されたジョブの中で対象ジョブが最も先頭に位置するか否かを確認する（Ｓ１７０８）。
【０１００】
このとき、逐次処理制御部３０８は、対象ジョブが最も先頭に位置していないことを確認すると（Ｓ１７０８／ＮＯ）、Ｓ１７０７からの動作が行われる。一方、Ｓ１７０８において、逐次処理制御部３０８は、対象ジョブが最も先頭に位置していることを確認すると（Ｓ１７０８／ＹＥＳ）、対象ジョブを優先して実行ジョブキュー３０２へ転送し（Ｓ１７０９）、当該ジョブの逐次処理を再開させる（Ｓ１７１０）。Ｓ１７１０の動作が終了すると、処理が完了した対象ジョブは、フロー実行制御部３０５によって再度解析され（Ｓ１７０１）、次の処理が開始される。
【０１０１】
以上、説明したように、本発明の第１実施形態に係る画像処理システムによれば、逐次処理制御部３０８が、ジョブの逐次処理が実行中であるときに、実行ジョブキュー３０２に蓄積された実行待ちのジョブを停止用ジョブキュー３０９に転送して一時的に退避させることにより、逐次処理が指定されていない後続のジョブの処理を実行することが可能となるので、後続のジョブに無駄な実行待ちの状態が発生するのを抑制することができる。このように、複数の処理の１つに逐次処理を含んで構成されるワークフローシステムにおいて、画像処理の効率を高めることができる。
【０１０２】
また、本発明の第１実施形態に係る画像処理システムでは、逐次処理制御部３０８が、実行中のジョブの逐次処理が完了したときに、停止用ジョブキュー３０９に一時的に退避させたジョブを実行ジョブキュー３０２に戻して逐次処理を再開させることにより、逐次処理を含むワークフローに従って画像処理を効率良く行うことができる。これにより、画像処理システムの生産性を向上させることができる。
【０１０３】
［第２実施形態］
図１８は、本発明の第２実施形態に係るワークフローサーバ３の機能構成を示すブロック図である。
【０１０４】
本発明の第２実施形態が前述した第１実施形態と異なるのは、第１実施形態においては、処理部３０３Ａがジョブの逐次処理を並行して実行する所定の数を１に設定したのに対して、第２実施形態においては、処理部３０３Ａがジョブの逐次処理を並行して実行する所定の数を２以上に設定したことである。
【０１０５】
この場合、処理実行部３０３の処理部３０３Ａは、ワークフローに含まれる逐次処理の種類に対応して複数の逐次処理を行うと共に、ワークフローコントローラ３００は、図１８に示すように、これらの逐次処理にそれぞれ対応する複数の停止用ジョブキュー３０９−１，・・・，３０９−ｍ（ｍ：自然数）を備えている。
【０１０６】
また、逐次処理制御部３０８の逐次処理監視部３０８Ａは、複数の逐次処理を行う処理部３０３Ａに１対１で対応し、対応する処理部３０３Ａによるジョブの逐次処理が実行中であるか否かを確認する。その他の第２実施形態の構成は、第１実施形態の構成と同じであり、同一又は対応する部分には同一の符号を付し、重複する説明を省略する。
【０１０７】
以上、説明したように、本発明の第２実施形態に係る画像処理システムによれば、処理部３０３Ａが複数のジョブの逐次処理を並行して実行しても、上述した第１実施形態と同様の作用効果が得られるので、ワークフローに従って画像処理を効率良く実行することができる。これにより、画像処理システムの生産性をさらに向上させることができる。
【符号の説明】
【０１０８】
１  画像形成装置
２  クライアント端末
３  ワークフローサーバ
４  文書管理サーバ
５  配信サーバ
６  認証サーバ
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  ＬＣＤ
７０  操作部
８０  バス
１００  コントローラ
１０１  ＡＤＦ
１０２  スキャナユニット
１０３  排紙トレイ
１０４  ディスプレイパネル
１０５  給紙テーブル
１０６  プリントエンジン
１０７  排紙トレイ
１０８  ネットワークＩ／Ｆ
１１０  主制御部
１２０  エンジン制御部
１３０  画像処理部
１４０  操作表示制御部
１５０  入出力制御部
３００  ワークフローコントローラ
３０１  ジョブ取得部
３０２  実行ジョブキュー
３０３  処理実行部
３０３Ａ  処理部
３０４  配信部
３０５  フロー実行制御部
３０６  フロー定義記憶部
３０７  フロー定義管理部
３０８  逐次処理制御部
３０８Ａ  逐次処理監視部
３０８Ｂ  実行待ちジョブ特定部
３０８Ｃ  ジョブ転送部
３０８Ｄ  逐次処理再開部
３０８Ｅ  停止ジョブ有無判断部
３０８Ｆ  逐次処理予約部
３０９  停止用ジョブキュー
３１０  ネットワークＩ／Ｆ
【先行技術文献】
【特許文献】
【０１０９】
【特許文献１】特開２０１５−５６０７９号公報
【図１】
2017143386.tif 000003
【図２】
2017143386.tif 000004
【図３】
2017143386.tif 000005
【図４】
2017143386.tif 000006
【図５】
2017143386.tif 000007
【図６】
2017143386.tif 000008
【図７】
2017143386.tif 000009
【図８】
2017143386.tif 000010
【図９】
2017143386.tif 000011
【図１０】
2017143386.tif 000012
【図１１】
2017143386.tif 000013
【図１２】
2017143386.tif 000014
【図１３】
2017143386.tif 000015
【図１４】
2017143386.tif 000016
【図１５】
2017143386.tif 000017
【図１６】
2017143386.tif 000018
【図１７】
2017143386.tif 000019
【図１８】
2017143386.tif 000020