(57)【要約】【課題】ネットワークを介してデータファイルを取得する処理において中断が生じたとしても、復旧後の処理においてユーザが意図した結果を得ることができる処理実行装置を提供する。【解決手段】処理対象データを格納する複数のデータ格納部に対する監視処理を行う監視部と、データ識別情報の取得状況を含む管理情報を生成する管理情報生成部と、生成された管理情報に基づいて、データ格納部に格納されている処理対象データを取得するデータ取得部と、格納領域に管理情報と処理対象データを格納する記憶部と、を備え、データ取得部は、一のデータ格納部に格納されている全ての処理対象データのうち、取得できなかった処理対象データに係るデータ識別情報を管理情報に残し、一のデータ格納部が監視処理の対象に再度なったとき、管理情報に残されているデータ識別情報に対応する処理対象データをデータ格納部から取得する、処理実行装置による。【選択図】図１
2020057033.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが選択した処理対象データに対し、当該ユーザが選択した被選択処理を実行する処理実行装置であって、
前記処理対象データを格納する複数のデータ格納部に対する監視処理を行う監視部と、
前記被選択処理の処理対象となる前記処理対象データの取得状況を識別するためのデータ識別情報を含む管理情報を生成する管理情報生成部と、
生成された前記管理情報に基づいて、前記データ格納部に格納されている前記処理対象データを取得するデータ取得処理を実行するデータ取得部と、
前記被選択処理に対応するように形成される格納領域に前記管理情報と前記処理対象データとを格納する記憶部と、
を備え、
前記データ取得部は、一のデータ格納部に格納されている全ての前記処理対象データのうち、取得できなかった処理対象データに係る前記データ識別情報を前記管理情報に残し、前記一のデータ格納部が前記監視処理の対象に再度なったとき、当該データ格納部にある前記管理情報に残されている前記データ識別情報に対応する前記処理対象データを前記データ格納部から取得する、
ことを特徴とする処理実行装置。
【請求項２】
前記データ取得部は、前記監視処理において、前記被選択処理に用いられる前記処理対象データが揃っていることを示すタイミング識別情報を検知したとき、当該タイミング識別情報が格納されているデータ格納部に対して前記データ取得処理を実行する、
請求項１に記載の処理実行装置。
【請求項３】
前記データ取得部は、前記データ格納部から正常に取得できた前記処理対象データに係る前記データ識別情報を前記管理情報から削除する、
請求項１又は２に記載の処理実行装置。
【請求項４】
前記データ取得部が前記管理情報に含まれる前記データ識別情報を全て削除したとき、前記データ取得処理において前記処理対象データを格納した前記格納領域を削除する記憶領域削除部を備える、
請求項１乃至３のいずれか一項に記載の処理実行装置。
【請求項５】
前記監視処理が実行されたときに、前記データ取得処理の対象となる前記データ格納部に、他の装置からのアクセスを排除するアクセス制限情報を生成するアクセス制限情報生成部を備える、
請求項１乃至４のいずれか一項に記載の処理実行装置。
【請求項６】
前記データ取得部が前記管理情報に含まれる前記データ識別情報を全て削除し、前記被選択処理が正常に終了したときは、当該被選択処理に対応する前記データ取得処理の対象であって前記データ格納部にある前記アクセス制限情報を当該データ格納部から削除するアクセス制限情報削除部を備える、
請求項５に記載の処理実行装置。
【請求項７】
処理対象データを入力する入力装置と、
前記処理対象データを格納する複数のデータ格納部を備えるデータ格納装置と、
前記処理対象データに対しユーザが選択した被選択処理を実行する処理実行装置と、
を含む処理実行システムであって、
前記処理実行装置は、前記データ格納部の監視を順次行う監視部と、
前記監視のタイミングにおいて、前記被選択処理の処理対象となる前記処理対象データを識別するためのデータ識別情報を含む管理情報を生成する管理情報生成部と、
前記管理情報に基づいて、前記データ格納部に格納されている前記処理対象データを取得するデータ取得処理を実行するデータ取得部と、
前記被選択処理に対応するように形成された一時格納領域を有し、当該一時格納領域に前記管理情報と前記処理対象データとを一時的に格納する一時記憶部と、
を備え、
前記データ取得部は、前記データ格納部に格納されている全ての前記処理対象データのうち、取得できなかった処理対象データに係る前記データ識別情報を前記管理情報に残し、前記監視部における次の監視のタイミングにおいて、前記管理情報に残されている前記データ識別情報に対応する前記処理対象データを前記データ格納部から取得する、
ことを特徴とする処理実行システム。
【請求項８】
コンピュータを、ユーザが選択した処理対象データに対し、当該ユーザが選択した被選択処理を実行する処理実行装置として動作させる処理実行プログラムであって、
前記処理対象データを格納する複数のデータ格納部に対する監視処理を行う監視ステップと、
前記被選択処理の処理対象となる前記処理対象データの取得状況を識別するためのデータ識別情報を含む管理情報を生成する管理情報生成ステップと、
生成された前記管理情報に基づいて、前記データ格納部に格納されている前記処理対象データを取得するデータ取得処理を実行するデータ取得ステップと、
前記被選択処理に対応するように形成される格納領域を形成するステップと、
当該格納領域に前記管理情報と前記処理対象データを格納するステップと、
を含み、
前記データ取得ステップにおいて、一のデータ格納部に格納されている全ての前記処理対象データのうち、取得できなかった処理対象データに係る前記データ識別情報を前記管理情報に残し、前記一のデータ格納部が前記監視処理の対象に再度なったとき、当該データ格納部にある前記管理情報に残されている前記データ識別情報に対応する前記処理対象データを前記データ格納部から取得する、
ことを特徴とする処理実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理実行装置、処理実行プログラムおよび処理実行システムに関する。
【背景技術】
【０００２】
画像形成機能や画像読取機能を備える複合装置（ＭＦＰ：Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などから入力される処理対象データに対し、ユーザが選択した処理を実行する処理実行装置を含む処理実行システムが知られている。処理実行システムの例として、ＭＦＰから入力された画像データに対して、ユーザが選択した一連の処理（例えば画像処理を行った後に、所定の配信先にデータ配信するなど）を自動的に実行するワークフローシステムが知られている。
【０００３】
また、ワークフローシステムにおいて、入力された画像データを格納するデータフォルダを監視する機能を備え、当該データフィルタに画像データが格納されると、ユーザ認証を経た上で、当該データフォルダ内のデータファイルを読み出して一連の処理を実行するシステムが開示されている（特許文献１を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されているシステムは、データフォルダにアクセスしている途中で、ネットワークの通信障害や処理実行装置の停止などにより、データフォルダからのデータファイルの読み出しに中断が生ずると、復旧後において、再度データファイルを取得しなければならない。取得すべき対象として複数のデータファイルが存在する場合、その一部については中断前に取得できていたとすると、復旧後の取得により、再度同じデータが取得されることがある。この場合、その後の一連の処理を実行すると、不要なデータを含む処理結果となる。
【０００５】
すなわち、特許文献１の技術を含む従来技術では、データファイルを読み出す処理の途中で中断が生じた場合、復旧後の一連の処理において、ユーザが意図した結果と異なる結果を招く、という課題がある。
【０００６】
本発明は、ネットワークを介してデータファイルを取得する処理において中断が生じたとしても、復旧後の処理においてユーザが意図した結果を得ることができる処理実行装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記技術的課題を解決するため、本発明の一態様は、ユーザが選択した処理対象データに対し、当該ユーザが選択した被選択処理を実行する処理実行装置であって、前記処理対象データを格納する複数のデータ格納部に対する監視処理を行う監視部と、前記被選択処理の処理対象となる前記処理対象データの取得状況を識別するためのデータ識別情報を含む管理情報を生成する管理情報生成部と、生成された前記管理情報に基づいて、前記データ格納部に格納されている前記処理対象データを取得するデータ取得処理を実行するデータ取得部と、前記被選択処理に対応するように形成される格納領域に前記管理情報と前記処理対象データとを格納する記憶部と、を備え、前記データ取得部は、一のデータ格納部に格納されている全ての前記処理対象データのうち、取得できなかった処理対象データに係る前記データ識別情報を前記管理情報に残し、前記一のデータ格納部が前記監視処理の対象に再度なったとき、当該データ格納部にある前記管理情報に残されている前記データ識別情報に対応する前記処理対象データを前記データ格納部から取得する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ネットワークを介してデータファイルを取得する処理において中断が生じたとしても、復旧後の処理においてユーザが意図した結果を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態であるワークフローシステムの全体構成を示すシステム図。
【図２】本実施形態に係る配信サーバ等のハードウェア構成図。
【図３】本実施形態に係るＭＦＰのハードウェア構成図。
【図４】本実施形態に係る配信サーバの機能構成の例を示す機能ブロック図。
【図５】本実施形態に係るデータ格納部の構造例を示す図。
【図６】本実施形態に係る配信サーバの詳細な機能構成の例を示す機能ブロック図。
【図７】本実施形態に係るデータ引取処理の流れの例を示すフローチャート。
【図８】本実施形態に係る処理実行準備処理の流れの例を示すフローチャート。
【図９】本実施形態に係るデータ取得準備処理の流れの例を示すフローチャート。
【図１０】本実施形態に係るデータ取得処理の流れの例を示すフローチャート。
【発明を実施するための形態】
【００１０】
［本発明の要旨］
本発明は、複数のデータを処理対象として、ユーザが選択した被選択処理を実行する処理実行装置や、当該処理実行装置を含む処理実行システム及びコンピュータを処理実行装置として動作させる処理実行プログラムに関するものである。
【００１１】
本発明に係る処理実行装置は、処理対象データが格納されるデータフォルダを監視し、当該データフォルダにおいて処理対象データを検知したときの「データ取得処理」において、処理対象データの取得状況を管理する管理情報を生成する、ことを要旨の一つとする。
【００１２】
また、本発明に係る処理実行装置は、データ取得処理が不測の事態により中断した場合、管理情報に基づいて、未取得のデータを識別して、同じデータの多重取得を排除する、ことを要旨の一つとする。
【００１３】
さらに本発明に係る処理実行装置は、データフォルダに対してアクセスしているときに他の処理実行装置から同じデータフォルダに対するアクセスを排除するアクセス制限情報を生成し、多重のデータ取得処理を排除する、ことも要旨の一つとする。
【００１４】
上記の要旨を備える本発明に係る処理実行装置によれば、ユーザが選択した処理において、ユーザが意図した結果が得られるように、処理の実行を管理することができる。本発明に係る処理実行システムおよび処理実行プログラムにおいても同様の効果を得ることができる。
【００１５】
［第一実施形態］
［ワークフローシステム１のシステム構成］
以下、本発明に係る処理実行システムの一実施形態としてワークフローシステム１を例示して説明する。図１に示すように、ワークフローシステム１は、処理実行装置の実施形態である配信サーバ１００と、処理実行管理装置である配信管理サーバ２００と、処理対象となるデータファイルを格納するデータフォルダを備えるデータ格納装置であるファイルサーバ３００と、配信サーバ１００における処理実行後のデータを受け付けて他のサービスに適用する連携サービス処理装置４００と、処理対象データの入力装置の実施形態であるＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）５００と、を含み、これらが通信ネットワークを介して相互に通信可能となるように構成されている。なお、配信サーバ１００と配信管理サーバ２００は一体の装置として構成されてもよい。さらに、配信サーバ１００と、配信管理サーバ２００と、ファイルサーバ３００が一体の装置として構成されてもよい構成されてもよい。
【００１６】
配信サーバ１００は、ユーザが選択した一連の処理からなる被選択処理の対象となるデータファイルである処理対象データをファイルサーバ３００から取得する。そして、取得した処理対象データに対して被選択処理を実行し、連携サービス処理装置４００に処理後データを配信する機能を備える。なお、図１に示すように、配信サーバ１００は、ワークフローシステム１において複数含まれていてもよい。本実施形態においては、二つの配信サーバ１００（１００ａ、１００ｂ）を例示しているが、これに限定されるものではない。
【００１７】
配信管理サーバ２００は、配信サーバ１００において実行される被選択処理に係る設定情報等を管理し、配信サーバ１００からの問い合わせに対して当該設定情報等を配信サーバ１００に通知する機能を備える。配信管理サーバ２００は、ワークフローシステム１において少なくとも一台が含まれていればよい。なお、配信管理サーバ２００が提供する機能を配信サーバ１００が兼ね備える場合は、ワークフローシステム１において配信管理サーバ２００を設けなくてもよい。
【００１８】
ファイルサーバ３００は、ＭＦＰ５００を介してユーザが入力する処理対象データを格納するデータ格納部であるデータフォルダを複数備える。ファイルサーバ３００が備えるデータフォルダは、ユーザが選択した被選択処理毎に形成されていて、特定のデータフォルダに格納された処理対象データは、当該データフォルダに紐付けられている被選択処理に適用される。ファイルサーバ３００は、ワークフローシステム１において複数台含まれていてもよい。なお、データフォルダと被選択処理との紐付けに係る情報は、配信サーバ１００が保持している。
【００１９】
連携サービス処理装置４００は、配信サーバ１００において被選択処理が実行されたデータ（処理後データ）を他のサービス（例、クラウドサービス）などに適用するように連携処理機能を提供する装置である。
【００２０】
ＭＦＰ５００は、ワークフローシステム１において処理対象データを入力する入力機能を備える。ＭＦＰ５００は、ユーザ認証機能や、ユーザによる処理選択機能を備える。ＭＦＰ５００において選択された処理（被選択処理）に応じて、ファイルサーバ３００の所定のデータフォルダに入力された処理対象データが格納される。したがって、配信サーバ１００において実行される被選択処理は、ユーザがＭＦＰ５００において選択した処理である。
【００２１】
［配信サーバ１００のハードウェア構成］
次に、上記各装置のハードウェア構成について説明する。配信サーバ１００、配信管理サーバ２００、ファイルサーバ３００、連携サービス処理装置４００は、いわゆるコンピュータにより構成されていて、そのハードウェア構成は、概ね共通する。そこで、代表して配信サーバ１００のハードウェア構成について説明をし、その他の装置（配信サーバ１００、配信管理サーバ２００、ファイルサーバ３００、連携サービス処理装置４００）のハードウェア構成については、詳細な説明を省略する。なお、ＭＦＰ５００のハードウェア構成は別途説明する。
【００２２】
図２に示す様に配信サーバ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０、およびＩ／Ｆ１４０が共通バス１５０を介して接続されている構成を備える。また、Ｉ／Ｆ１４０には、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４１、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）１４２、通信ネットワークを介して他の装置と通信するための通信モジュール１４３が接続されている。
【００２３】
ＣＰＵ１１０は演算手段であり、配信サーバ１００全体の動作を制御する。ＲＡＭ１２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１１０において実行される情報処理の作業領域として用いられる。ＲＯＭ１３０は、読み出し専用の不揮発性の記憶媒体であり、ワークフローシステム１において所定の機能を実現するためのコンピュータプログラムやファームウェア等が格納されている。
【００２４】
Ｉ／Ｆ１４０は、共通バス１５０と各種のハードウェアやネットワーク等を接続し制御する。ＨＤＤ１４１は、情報の読み書きが可能であって記憶容量が大きい不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラムなどが格納される。ＬＣＤ１４２は、配信サーバ１００におけるユーザインターフェースであって、アプリケーション・プログラムが実行されたときの情報の表示などを行う。通信モジュール１４３は、配信サーバ１００を通信ネットワークに接続するための通信用インタフェースである。
【００２５】
以上のハードウェア構成を備える配信サーバ１００は、ＲＯＭ１３０に格納された制御用プログラムや、ＨＤＤ１４１などの記憶媒体からＲＡＭ１２０にロードされたプログラムなどをＣＰＵ１１０が備える演算機能によって所定の処理を実行する装置である。この処理によって、配信サーバ１００の種々の機能モジュールを含むソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、上述した構成を含むハードウェア資源との組み合わせによって、本実施形態に係る配信サーバ１００が備える機能を実現する機能ブロックが構成される。
【００２６】
その他の配信管理サーバ２００、ファイルサーバ３００、連携サービス処理装置４００も、所定のアプリケーション・プログラムが実行されることによりソフトウェア制御部が構成される。そして、構成されたソフトウェア制御部と、それぞれの装置が備える上述した構成と同様のハードウェア資源との組み合わせによって、それぞれにおける機能ブロックが構成される。
【００２７】
［ＭＦＰ５００のハードウェア構成］
次に、本実施形態に係るＭＦＰ５００のハードウェア構成について図３を参照しながら説明する。図３に示すように、ＭＦＰ５００は、ＣＰＵ５１０、ＲＡＭ５２０、ＲＯＭ５３０、Ｉ／Ｆ５４０が共通バス５５０を介して接続されている。また、Ｉ／Ｆ５４０には、ＨＤＤ５４１、いわゆるスキャナである画像読取りユニット５４２、プリンタである画像形成ユニット５４３、操作パネル５４４、通信ネットワークと接続し他の装置とのデータ送受を実行する通信モジュール５４５が接続されている。
【００２８】
ＣＰＵ５１０は演算手段であり、ＭＦＰ５００全体の動作を制御する。ＲＡＭ５２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ５１０が情報を処理する際の作業領域として用いられる。ＲＯＭ５３０は、読み出し専用の不揮発性の記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ５４１は、情報の読み書きが可能であって記憶容量が大きい不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラムなどが格納される。
【００２９】
Ｉ／Ｆ５４０は、共通バス５５０と各種のハードウェアやネットワーク等を接続し制御する。通信モジュール５４５は、ＭＦＰ５００が有線接続回線（例えば、ＬＡＮなど）に接続するための通信用インタフェースである。
【００３０】
操作パネル５４４は、ＭＦＰ５００の状態を視覚的に表示する表示部であるとともに、タッチパネルとしてユーザがＭＦＰ５００を直接操作し、もしくは、ＭＦＰ５００に対して情報を入力する際の入力部でもある。したがって、操作パネル５４４は、ＭＦＰ５００における操作表示部として機能する。また、ＭＦＰ５００における情報入力部としても機能する。操作パネル５４４は、ユーザが希望する処理を選択可能な形態で表示し、これの表示に対する所定の操作を行うことで処理を選択できるＧＵＩ（グラフィカルユーザインタフェース）を提供する。すなわち、ユーザが操作パネル５４４のＧＵＩを介して選択した処理に応じて、ＭＦＰ５００から入力される処理対象データが、ファイルサーバ３００に形成されている所定のデータ格納フォルダに格納される。
【００３１】
以上のハードウェア構成を備えるＭＦＰ５００は、ＲＯＭ５３０に格納されたプログラムや、ＨＤＤ５４１などの記憶媒体からＲＡＭ５２０にロードされたプログラムなどをＣＰＵ５１０が備える演算機能によって処理する装置である。この処理によって、ＭＦＰ５００の種々の機能モジュールを含むソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、上述した構成を含むハードウェア資源との組み合わせによって、ＭＦＰ５００の機能が実現される。
【００３２】
［配信サーバ１００の機能ブロック］
次に、本発明に係る処理実行装置の実施形態である配信サーバ１００の機能ブロックについて図４を用いて説明する。配信サーバ１００は、データ取得制御部１１と、ワークフロー起動部１２と、ワークフロー実行部１３と、ワークフロー定義取得部１４と、処理モジュール１５と、を有している。
【００３３】
［データ取得制御部１１の構成］
データ取得制御部１１は、ファイルサーバ３００に形成されているデータフォルダである監視対象フォルダ３０に対する監視処理を順次行う。そして、監視処理を行ったタイミング（所定のタイミング）においてユーザが選択した被選択処理に用いるデータファイルが全て揃っていれば、当該監視対象フォルダ３０から処理対象データを取得する。監視対象フォルダ３０には、ユーザが選択可能な処理の単位に応じて区別されたデータフォルダである処理単位フォルダ３１が、予め、複数形成されている。したがって、監視処理は、処理単位フォルダ３１に対して順次アクセスして巡回するように実行される。
【００３４】
［監視対象フォルダ３０の構成］
監視対象フォルダ３０は、一台のファイルサーバ３００において複数形成されていてもよい。また、ワークフローシステム１においてファイルサーバ３００が複数有る場合、各ファイルサーバ３００において監視対象フォルダ３０が形成されていてもよい。監視対象フォルダ３０のそれぞれには、子フォルダとしての処理単位フォルダ３１が形成される。
【００３５】
ここで、監視対象フォルダ３０の構成の例について、図５を用いて詳細に説明する。図５に示すように、監視対象フォルダ３０は、複数の処理単位フォルダ３１を含む。処理単位フォルダ３１のそれぞれには、ワークフローシステム１において実行可能な被選択処理（ワークフロー）が予め指定されて紐付けられている。各処理単位フォルダ３１には、複数の処理対象データ３２が格納される。当該処理対象データ３２は、格納されている処理単位フォルダ３１に紐付けられている処理（ユーザが選択した被選択処理）に用いられるデータである。
【００３６】
［ワークフロー起動部１２の構成］
図４に戻る。ワークフロー起動部１２は、データ取得制御部１１から処理対象データを受け取り、当該処理対象データに関する情報に基づいて、被選択処理が実行されるように、ワークフロー実行部１３に渡す。ここで、処理対象データに関する情報とは、当該データに対して実行されるように指定されている被選択処理（ワークフロー）の種類、や、当該データの属性などを含む情報である。
【００３７】
［ワークフロー実行部１３の構成］
ワークフロー実行部１３は、ワークフロー起動部１２から受け取った処理対象データと、処理対象データに関する情報と、に基づいて、実行すべきワークフローの実行条件などが設定されているワークフロー定義をワークフロー定義取得部１４から取得する。ワークフロー実行部１３は、取得したワークフロー定義に基づいて、処理モジュール１５を用いた一連の処理を実行する。ワークフロー実行部１３において実行されるワークフローには、例えば、 ”複数の画像ファイルを処理対象データとして、これらを１つのデータファイルにまとめて、マルチページＰＤＦファイルを生成し、特定の宛先にメール配信する”という一連の処理がある。
【００３８】
［ワークフロー定義取得部１４の構成］
ワークフロー定義取得部１４は、ワークフロー実行部１３が使用するワークフロー定義を格納する。
【００３９】
［処理モジュール１５の構成］
処理モジュール１５は、ワークフロー実行部１３において実行される処理単位に対応していて、ワークフロー実行部１３の制御に基づいて被選択処理に含まれる所定の処理を実行し、処理結果をワークフロー実行部１３に戻す。処理モジュール１５において実行される処理の一つに、連携サービス処理装置４００に処理対象データを配信する処理が含まれる。処理モジュール１５において実行される処理は、例えば、”複数のデータファイルを１つのデータファイルにする”、”複数のデータファイルを用いてマルチページＰＤＦファイルを生成する”、”特定の宛先にデータファイルをメール配信する”などがある。
【００４０】
［データ取得制御部１１の詳細構成］
次に、ワークフローシステム１における主たる構成要素である配信サーバ１００に含まれるデータ取得制御部１１の機能構成について詳細に説明する。図６に示すように、データ取得制御部１１は、フォルダ監視部１１１と、ロックファイル判定部１１２と、管理情報生成部１１３と、処理対象データ取得部１１４と、一時格納領域形成部１１５と、一時記憶部１１６と、ジョブ投入部１１７と、一時格納領域削除部１１８と、ロックファイル削除部１１９と、を有する。
【００４１】
［フォルダ監視部１１１］
フォルダ監視部１１１は、予め規定されている順番に従い、処理単位フォルダ３１のそれぞれに対して順番にアクセスする監視処理を実行する。この監視処理は、全ての処理単位フォルダ３１に対して実行される。したがって、一の処理対象フォルダに対する監視処理が実行されて終了すると、他の処理対象フォルダに対する監視処理が実行される。その後、所定の時間が経過した時期において、再度、一の処理対象フォルダに対する監視処理が実行される。このように監視処理は、すべての処理単位フォルダ３１に対して巡回するように順次行われる。
【００４２】
フォルダ監視部１１１は、監視処理において、タイミング識別情報であるフラグファイルの有無を検知する処理を実行する。フラグファイルは、処理単位フォルダ３１に紐付けられている被選択処理に用いられる処理対象データの全てが、当該処理単位フォルダ３１に格納されていることを示す情報を含むデータファイルである。すなわち、ある処理単位フォルダ３１にフラグファイルが存在しているとき、その処理単位フォルダ３１に紐付けられている被選択処理は、実行に必な処理対象データが揃っている状態である。したがって、フォルダ監視部１１１が、監視処理においてフラグファイルを検知したときは、被選択処理を実行するための処理対象データを引き取る引取処理を実行してよいタイミングである。
【００４３】
なお、フォルダ監視部１１１は、所定のタイミングでアクセスした処理単位フォルダ３１においてデータファイルを検知しても、フラグファイルが検知されなければ、今回の監視処理のタイミングはデータ引取処理のタイミングではないと判定する。この場合、予め規定されている順序に従い、次の巡回対象となる処理単位フォルダ３１に対して監視処理を移行する。フォルダ監視部１１１は、ある処理単位フォルダ３１においてフラグファイルを検知した場合、その旨を、ロックファイル判定部１１２に通知する。
【００４４】
［ロックファイル判定部１１２］
ロックファイル判定部１１２は、フラグファイルが検知された処理単位フォルダ３１を参照してロックファイルの有無を判定する。ロックファイルは、当該処理単位フォルダ３１が、ワークフローの処理に用いるためのデータ取得処理が実行されている途中のフォルダであることを示すデータファイルである。ロックファイル判定部１１２は、アクセス制限情報生成部を構成する。
【００４５】
ロックファイル判定部１１２は、判定対象となっている処理単位フォルダ３１においてロックファイルを検知した場合、当該ロックファイルが、自らが作成したロックファイルであるか否かを判定する。この場合、検知したロックが自ら作成したものでなければ、判定対象となっている処理単位フォルダ３１に対する、後続する処理を実行しないようにフォルダ監視部１１１に通知し、フォルダ監視部１１１は、次の処理単位フォルダ３１に対して監視処理を実行する。
【００４６】
検知したロックファイルが、自ら作成したものであれば、その旨を、処理対象データ取得部１１４に通知する。この通知には、検知したロックファイルを識別する情報（後述する乱数）が含まれる。
【００４７】
ロックファイル判定部１１２は、処理単位フォルダ３１においてロックファイルを検知しなかった場合、ロックファイルを生成して、処理単位フォルダ３１に格納する処理を実行する。ロックファイル判定部１１２は、ロックファイルを生成し格納したことを、管理情報生成部１１３に通知する。
【００４８】
ロックファイルは、アクセス制限情報であって、監視処理によってフラグファイルが検知された処理単位フォルダ３１が、一の配信サーバ１００によって処理中であることを、他の配信サーバ１００に知らせるために生成するデータファイルである。ロックファイルは、例えば、特定のファイル名で生成され、内容には当該配信サーバ１００が生成した十分な長さを有する乱数が含まれる。この乱数は、一の配信サーバ１００と他の配信サーバ１００において同じ値になることはない。また、ロックファイルに含まれる乱数は、一の配信サーバ１００において一意の値となるので、後述する一時格納領域を被選択処理ごとに区別することに応用される。ロックファイル判定部１１２は、ロックファイルを検知した場合は、この乱数を参照して、当該配信サーバ１００が作成したものであるか否かを判定することができる。
【００４９】
［管理情報生成部１１３］
管理情報生成部１１３は、ロックファイル判定部１１２から、ロックファイルを生成したことを示す通知を受けた場合、処理単位フォルダ３１を参照して、格納されている処理対象データの一覧情報であるデータ識別情報を含む管理情報を生成する。管理情報には、処理対象データそれぞれに対する格納場所（パス）の一覧が含まれる。なお、管理情報に含まれるデータ識別情報は、処理対象データの取得状況を示す情報となる。
【００５０】
管理情報生成部１１３は、生成した管理情報を、処理対象データ取得部１１４と、一時格納領域形成部１１５に通知する。
【００５１】
［処理対象データ取得部１１４］
処理対象データ取得部１１４は、管理情報に格納されているデータ識別情報の順番に沿って、各処理対象データ３２の格納場所を示すパスに該当する処理単位フォルダ３１から一時記憶部１１６に形成された一時格納領域に、当該処理対象データ３２を移動させる。したがって、正常に移動された処理対象データ３２は、処理単位フォルダ３１から削除され、一時格納領域に格納される。
【００５２】
なお、一時格納領域は、処理単位フォルダ３１から取得された処理対象データ３２を一時的に記憶させる記憶領域である。この一時格納領域は、ロックファイルに含まれる乱数との対応関係が識別できるように形成されている。したがって、処理対象データ取得部１１４は、管理情報に対応するロックファイルに格納されている乱数に基づいて、所定の一時格納領域に取得した処理対象データ３２を格納することができる。
【００５３】
処理対象データ取得部１１４は、正常に移動できた処理対象データ３２に対応するデータ識別情報を管理情報から削除して更新する処理を実行する。処理対象データ取得部１１４は、何らかの原因により、正常に移動できなかった処理対象データ３２に対応するデータ識別情報は、管理情報から削除しない。この場合、順番に沿って次の処理対象データ３２の取得処理を実行する。
【００５４】
処理対象データ取得部１１４が管理情報に含まれていたデータ識別情報によって占められるパスに対するデータ取得処理を一巡したとき、識別情報の内容が空になっている場合は、被選択処理に用いられる全ての処理対象データ３２が一時格納領域に格納されている。この場合、処理対象データ取得部１１４は、管理情報が空になったことをジョブ投入部１１７に通知する。
【００５５】
処理対象データ取得部１１４による、管理情報に含まれているデータ識別情報によって示される処理単位フォルダ３１に対するデータ取得処理が一巡し、データ識別情報が削除されずに残っている場合は、そのデータ識別情報を含む管理情報を、対応する一時格納領域に格納する。
【００５６】
また、処理対象データ取得部１１４は、識別情報に格納されていたパスに対してデータ取得処理が一巡したときは、その旨をフォルダ監視部１１１に通知する。この通知を受けたフォルダ監視部１１１は、次の処理単位フォルダ３１に対する監視処理を実行する。
【００５７】
［一時格納領域形成部１１５］
一時格納領域形成部１１５は、管理情報生成部１１３から通知される管理情報に基づいて、一時的にデータファイルを記憶する一時記憶部１１６に、一時的に処理対象ファイルなどを格納する一時格納領域を形成する。ここで形成される一時格納領域とは、識別情報に対応するロックファイルに含まれている乱数と同じ名称のデータフォルダとして形成される。これによって、形成された一時格納領域と処理対象データ３２との紐付けが行われる。
【００５８】
［一時記憶部１１６］
一時記憶部１１６は、一時格納領域形成部１１５によって，処理対象データ３２等が格納されるデータフォルダを形成するための記憶領域を提供する。
【００５９】
［ジョブ投入部１１７］
ジョブ投入部１１７は、処理対象データ取得部１１４から管理情報が空になった通知を受け付けた場合、一時記憶部１１６に格納されている処理対象データをワークフロー起動部１２に渡す。ジョブ投入部１１７は、ワークフロー起動部１２から、所定のワークフローである被選択処理が完了した旨の通知を受け取り、それに基づいて、一時格納領域削除部１１８とロックファイル削除部１１９に、その旨を通知する。
【００６０】
［一時格納領域削除部１１８］
一時格納領域削除部１１８は、ジョブ投入部１１７から被選択処理が完了した旨の通知を受け取ったとき、当該被選択処理に対する処理対象データ３２が格納されている一時格納領域を削除する処理を実行する。これによって、空になっている管理情報も削除される。一時格納領域削除部１１８は、記憶領域削除部を構成する。
【００６１】
［ロックファイル削除部１１９］
ロックファイル削除部１１９は、ジョブ投入部１１７からの被選択処理が完了した旨の通知を受け取ったとき、当該被選択処理に対応していたロックファイルを、処理単位フォルダ３１から削除する処理を実行する。これによって、次の監視処理のタイミングでは、当該処理単位フォルダ３１に対して、別の配信サーバ１００もアクセスできる状態になる。ロックファイル削除部１１９は、アクセス制限情報削除部を構成する。
【００６２】
以上の構成を備える配信サーバ１００によれば、処理単位フォルダ３１に処理対象データ３２が置かれたことを、データ取得制御部１１に含まれるフォルダ監視部１１１が検知し、処理対象データ３２に対するデータ引取処理が実行される。このデータ引取処理が実行されている最中にネットワーク障害等が発生し、処理対象データ３２の全てに対するデータ引取処理が完了する前に当該処理が中断しても、その事前に、格納されている処理対象データ３２を識別する管理情報を作成して記憶しておく。ネットワーク障害が復旧した後に、再度、処理単位フォルダ３１に対する監視処理が実行されたとき、先の監視処理が実行後に残っている管理情報に基づいて、一時格納領域に移動できなかった処理対象データ３２に対するデータ引取処理を再度実行する。これによって、複数の処理単位フォルダ３１に対して順次実行されるデータ引取処理によって既に引き取られている処理対象データ３２に対する再度の引取処理は実行しないように制御できる。また、複数の処理単位フォルダ３１に対して順次実行されるデータ引取処理において、何らの原因により、引き取りができなかった処理対象データ３２に対して、確実にデータ引取処理を実行できるように制御できる。
【００６３】
したがって、配信サーバ１００によれば、処理単位フォルダ３１に当初置かれた処理対象データ３２以外のデータファイルが混在していても、管理情報に基づくデータ引取処理によって、障害の前後で一貫したデータ引取処理を実行できる。すなわち、本実施形態に係る配信サーバ１００によれば、ユーザが選択した処理の実行結果として、ユーザの意図した結果を受け取ることができる。
【００６４】
［処理実行フローの実施形態］
次に、本発明に係る処理実行プログラムの実施形態について、図７〜図１０のフローチャートを用いて説明する。図７〜図１０に示す処理ステップは、処理実行プログラムにおいて実行される処理の順番を例示するものである。一部の処理については、順番が入れ替わっても同様の効果を奏するものである。
【００６５】
［データ引取処理］
まず、データ引取処理において、フォルダ監視部１１１による監視処理が実行される（Ｓ７０１）。続いて、フォルダ監視部１１１が監視処理の実行対象である処理単位フォルダ３１においてフラグファイルが検知されたか否かを判定する（Ｓ７０２）。Ｓ７０２においてフラグファイルが検知されなければ（Ｓ７０２／ＮＯ）、処理をＳ７０１に戻す。
【００６６】
監視処理（Ｓ７０１）は、複数存在する処理単位フォルダ３１の一つ一つに対して順番に、フラグファイルの存在を監視する処理を実行する。巡回する順番は、フォルダ監視部１１１において、予め設定されているものとする。なお、この設定は、任意に変更してもよく、監視対象フォルダ３０に形成されている各処理単位フォルダ３１に対して漏れなく、監視処理を実行できればよい。また、監視対象フォルダ３０が複数形成されているときは、これら複数の監視対象フォルダ３０に対しても、漏れなく監視処理を実行できればよい。
【００６７】
Ｓ７０２においてフラグファイルが検知されれば（Ｓ７０２／ＹＥＳ）、フォルダ監視部１１１がロックファイル判定部１１２に対して、「フラグファイルが検知された」ことを通知し、処理実行準備処理を実行する（Ｓ７０３）。
【００６８】
［処理実行準備処理］
次に、Ｓ７０３における処理実行準備処理の詳細について、図８のフローチャートを用いて説明する。まず、ロックファイル判定部１１２は、フォルダ監視部１１１からの通知をトリガーとして、フォルダ監視部１１１が監視処理の対象としている処理単位フォルダ３１に、ロックファイルが格納されているか否かの判定をする（Ｓ８０１）。Ｓ８０１において、ロックファイルがあれば（Ｓ８０１／ＹＥＳ）、ロックファイル判定部１１２は続いて、格納されているロックファイルが、自らが生成したものであるか否かの判定をする（Ｓ８０４）。ここで、ロックファイルが、自らが生成したものでなければ（Ｓ８０４／ＮＯ）、処理を監視処理（Ｓ７０１）に戻す。
【００６９】
Ｓ８０１において、ロックファイルがなければ（Ｓ８０１／ＮＯ）、データ取得準備処理（Ｓ８０２）を実行し、その後、データ取得処理（Ｓ８０３）を実行した後、処理を監視処理（Ｓ７０１）に戻す。
【００７０】
Ｓ８０１において、ロックファイルがあり（Ｓ８０１／ＹＥＳ）、そのロックファイルが自ら生成したロックファイルであれば（Ｓ８０４／ＹＥＳ）、データ取得処理（Ｓ８０３）を実行した後、処理を監視処理（Ｓ７０１）に戻す。
【００７１】
［データ取得準備処理］
次に、ファイル取得準備処理（Ｓ８０２）の詳細な流れについて、図９を用いて説明する。まず、ロックファイル判定部１１２は、ロックファイルを生成する（Ｓ９０１）。ロックファイル判定部１１２は、予め決定されているファイル名によってロックファイルを生成し、当該ロックファイルに、配信サーバ１００において一意となる情報を格納する。ここで「一意となる情報」とは、配信サーバ１００において生成する十分な長さを有する乱数をいう。ロックファイルは、処理単位を区別して保持するために用いられるものであるから、乱数に限らず、配信サーバ１００において一意に特定できる情報であって、自らが生成した情報であることを識別可能なものであればよい。ロックファイル判定部１１２は、生成したロックファイルを、監視処理（Ｓ７０１）において処理対象となっている処理単位フォルダ３１に格納する。
【００７２】
続いて、管理情報生成部１１３が、管理情報生成処理を実行する（Ｓ９０２）。Ｓ９０２において生成される管理情報は、監視処理（Ｓ７０１）において処理対象となっている処理単位フォルダ３１に格納されている複数の処理対象データ３２のそれぞれの所在を示すパスであるデータ識別情報を含む情報である。管理情報は、言い換えると、処理単位フォルダ３１に格納されている処理対象データ３２の一覧を示す情報をまとめて管理する情報である。管理情報生成部１１３は、生成した管理情報を、処理対象データ取得部１１４と一時格納領域形成部１１５に渡す。
【００７３】
続いて、一時格納領域形成部１１５が、受け取った管理情報に基づいて、一時記憶部１１６に一時格納領域を形成する（Ｓ９０３）。ここで、形成される一時格納領域は、管理情報生成部１１３から渡された管理情報に含まれるデータ識別情報によって示される処理単位フォルダ３１に格納されていたロックファイルに含まれる情報と紐付けられる。例えば、ロックファイルの内容として格納されている乱数を、一時格納領域を示すフォルダ名として用いることで、紐付けを行うようにすればよい。
【００７４】
続いて、処理対象データ取得部１１４は、管理情報生成部１１３から受け取った管理情報を、これに紐付く一時格納領域に格納する（Ｓ９０４）。これによって、後段の処理において用いられる管理情報を配信サーバ１００が記憶することができる。
【００７５】
［データ取得処理］
次に、データ取得処理（Ｓ８０３）の詳細な流れについて図１０を用いて説明する。まず、処理対象データ取得部１１４が、管理情報を管理情報生成部１１３から受け取ったときは、その管理情報に基づいて、処理単位フォルダ３１に格納されている処理対象データ３２を取得し、一時記憶部１１６の該当する一時格納領域に格納する（Ｓ１００１）。
【００７６】
なお、Ｓ１００１において、処理対象データ取得部１１４が、ロックファイル判定部１１２から「自ら生成したロックファイルがある」旨の通知を受け取ったとき、そのロックファイルに格納されている情報に基づいて、一時格納領域に格納されている管理情報を読み出す。そして、読み出した管理情報に基づいて、対応する処理単位フォルダ３１に格納されている処理対象データ３２を取得し、当該一時格納領域に取得した処理対象データ３２を格納する。
【００７７】
処理対象データ３２が一時格納領域へ正常に格納されたとき（Ｓ１００１／ＹＥＳ）、管理情報に含まれるデータ識別情報のうち、正常に格納できた処理対象データ３２に対応するデータ識別情報を削除して、識別情報を更新する（Ｓ１００２）。なお、Ｓ１００２において更新された管理情報は、一時格納領域に格納される。
【００７８】
また、Ｓ１００２において、ロックファイルがあった場合に実行される処理対象ファイル取得処理の場合も、同様に、正常に格納できた処理対象データ３２に対応する情報を削除して識別情報を更新する。
【００７９】
Ｓ１００１において何らかの原因により処理対象データ３２の取得が正常にできなかった場合（Ｓ１００１／ＮＯ）、１００２における管理情報の更新処理が行われない。したがって、正常に取得されなかった処理対象データ３２に対応するデータ識別情報は、管理情報に残ることになる。
【００８０】
続いて、管理情報に基づく処理対象データ３２の取得処理が一巡しているか否かを判定する（Ｓ１００３）。処理が一巡していなければ（Ｓ１００３／ＮＯ）、処理をＳ１００１に戻し、管理情報に含まれている処理対象データ３２に対する処理が一巡するまで繰り返す。
【００８１】
処理が一巡していれば（Ｓ１００３／ＹＥＳ）、処理対象データ取得処理（Ｓ１００１）において、処理対象データ３２の取得エラーが生じているか否かを判定する。ここでの判定は、管理情報にデータ識別情報が残っているか否かに基づくものとする。取得エラーが生じている場合（Ｓ１００４／ＮＯ）、これまで取得した処理対象データ３２は、対象となる処理（ワークフロー）に用いるための全てのデータが揃っていない状態であるから、一旦、処理を監視処理（Ｓ７０１）に戻す。
【００８２】
取得エラーが生じていない場合（Ｓ１００４／ＹＥＳ）、対象となる処理（ワークフロー）に用いる全ての処理対象データ３２が、対応する一時格納領域に格納されている。この場合、続いて、ジョブ投入部１１７が、一時格納領域に格納されている処理対象データ３２を全て読み出してワークフロー起動部１２に渡す（Ｓ１００５）。
【００８３】
Ｓ１００５においてワークフロー起動部１２に渡した処理対象データ３２を用いたワークフローが正常に完了した場合、ワークフロー起動部１２からジョブ投入部１１７に対して、ワークフローが正常に完了した旨の通知が戻る。そこで、ジョブ投入部１１７は、ロックファイル削除部１１９に対して、該当するロックファイルを削除する処理を指示する（Ｓ１００６）。また、ジョブ投入部１１７は、一時格納領域削除部１１８に対して、該当する処理対象データ３２が格納されている一時格納領域を削除する処理を指示する（Ｓ１００７）。以上のようにデータ取得処理を終了することで、その後、処理は監視処理（Ｓ７０１）に戻る。
【００８４】
以上説明をしたとおり、本実施形態に係る処理実行プログラムは、コンピュータにおいて、特定の共有フォルダを定期的にポーリングし、そのフォルダ内に置かれた画像ファイルをワークフローシステム１への入力として自動的に認識するホットフォルダ機能を実行する。このホットフォルダ機能において、複数のデータを一つのワークフローへの入力データとする場合の処理を実行できる。この処理において、共有フォルダ内のデータファイルをシステムへ移動させている最中に、ネットワーク断等で共有フォルダへのアクセスができなくなっても、引き取りに成功したデータと残りの引き取り対象のデータを管理情報において保持する。そのため、次回引き取り時に前回失敗したデータから引き取りができる。これによって、ユーザの意図しないデータがワークフロージョブに投入されて、ユーザが意図しない処理結果となることを防ぐことができる。
【００８５】
なお、本発明は上述した実施形態に限定されるものではなく、その技術的要旨を逸脱しない範囲で種々の変形が可能であり、特許請求の範囲に記載された技術思想に含まれる技術的事項の全てが本発明の対象となる。上記実施形態は、好適な例を示したものであるが、当業者であれば、開示した内容から様々な変形例を実現することが可能である。そのような変形例も、特許請求の範囲に記載された技術的範囲に含まれる。
【符号の説明】
【００８６】
１      ：ワークフローシステム
１１    ：データ取得制御部
１２    ：ワークフロー起動部
１３    ：ワークフロー実行部
１４    ：ワークフロー定義取得部
１５    ：処理モジュール
３０    ：監視対象フォルダ
３１    ：処理単位フォルダ
３２    ：処理対象データ
１００  ：配信サーバ
１１１  ：フォルダ監視部
１１２  ：ロックファイル判定部
１１３  ：管理情報生成部
１１４  ：処理対象データ取得部
１１５  ：一時格納領域形成部
１１６  ：一時記憶部
１１７  ：ジョブ投入部
１１８  ：一時格納領域削除部
１１９  ：ロックファイル削除部
２００  ：配信管理サーバ
３００  ：ファイルサーバ
４００  ：連携サービス処理装置
５００  ：ＭＦＰ
【先行技術文献】
【特許文献】
【００８７】
【特許文献１】特開２００６−０４００６０号公報
【図１】
2020057033.tif 000003
【図２】
2020057033.tif 000004
【図３】
2020057033.tif 000005
【図４】
2020057033.tif 000006
【図５】
2020057033.tif 000007
【図６】
2020057033.tif 000008
【図７】
2020057033.tif 000009
【図８】
2020057033.tif 000010
【図９】
2020057033.tif 000011
【図１０】
2020057033.tif 000012