(57)【要約】【課題】処理単位の組み合わせによって構成される処理フローの柔軟性を向上させること。【解決手段】データ処理装置は、データを受信して前記データを第一の記憶部に記憶する第一の受信部と、前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御部と、前記処理制御部によって実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを記憶する第二の記憶部と、前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動部とを有し、前記処理制御部は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する。【選択図】図３
2015153204.tif 000002
【特許請求の範囲】
【請求項１】
データを受信して前記データを第一の記憶部に記憶する第一の受信部と、
前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御部と、
前記処理制御部によって実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを記憶する第二の記憶部と、
前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動部とを有し、
前記処理制御部は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する、
ことを特徴とするデータ処理装置。
【請求項２】
それぞれが相互に異なる前記処理単位を実行する１以上の処理部を有し、
前記処理制御部は、前記第一の記憶部に記憶されたデータを取り出し、当該データに関して実行される１以上の処理単位の実行を、当該処理単位に係る前記処理部に要求し、いずれかの前記処理単位からの一時停止要求に応じ、当該処理単位までの実行結果のデータを前記第二の記憶部に記憶する、
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第二の記憶部に記憶されたデータの一覧情報を、ネットワークを介して接続される装置に送信する送信部と、
前記一覧情報の中から選択されたデータを示す情報を前記装置から受信する第二の受信部とを有し、
前記移動部は、前記第二の受信部によって受信された情報が示すデータを、前記第二の記憶部から前記第一の記憶部に移動する、
ことを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
前記第一の受信部は、印刷対象のデータを受信し、
前記送信部は、前記一覧情報を、ネットワークを介して接続される印刷装置に送信し、
前記処理制御部は、前記移動部によって前記第二の記憶部から前記第一の記憶部に移動されたデータを、前記印刷装置に送信する処理単位を実行する請求項３記載のデータ処理装置。
【請求項５】
１以上のコンピュータを含むデータ処理システムであって、
データを受信して前記データを第一の記憶部に記憶する第一の受信部と、
前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御部と、
前記処理制御部によって実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを記憶する第二の記憶部と、
前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動部とを有し、
前記処理制御部は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する、
ことを特徴とするデータ処理システム。
【請求項６】
１以上のコンピュータが、
データを受信して前記データを第一の記憶部に記憶する第一の受信手順と、
前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御手順と、
前記処理制御手順において実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを第二の記憶部に記憶する記憶手順と、
前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動手順とを実行し、
前記処理制御手順は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する、
ことを特徴とするデータ処方法。
【請求項７】
コンピュータに、
データを受信して前記データを第一の記憶部に記憶する第一の受信手順と、
前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御手順と、
前記処理制御手順において実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを第二の記憶部に記憶する記憶手順と、
前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動手順とを実行させ、
前記処理制御手順は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理システム、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
画像形成装置において文書からスキャンされた画像データに関して、予め定義されたワークフローを実行可能なシステムが有る（例えば、特許文献１）。斯かるシステムでは、ユーザの業務フローに則した形態でデータが流れるように、ワークフローが定義される。
【０００３】
一つのワークフローは、基本的に、データの入力処理、当該データに対する０以上の加工処理、当該０以上の加工処理の実行によって生成されるデータの出力処理等の処理単位の組み合わせによって構成される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ワークフローを構成する処理単位が連続的、かつ、自動的に実行されてしまうのは望ましくない場合が有る。例えば、ワークフローの途中で、ユーザによる入力を待機し、ユーザによる入力に応じて、以降の処理単位を実行したい場合が有る。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、処理単位の組み合わせによって構成される処理フローの柔軟性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、データ処理装置は、データを受信して前記データを第一の記憶部に記憶する第一の受信部と、前記第一の記憶部に記憶されたデータを取り出し、当該データに関して１以上の処理単位を順番に実行する処理制御部と、前記処理制御部によって実行される処理単位のいずれかが一時停止した場合に、当該処理単位までの実行結果のデータを記憶する第二の記憶部と、前記第二の記憶部に記憶されたデータの処理要求の受信に応じ、当該データを前記第一の記憶部に移動する移動部とを有し、前記処理制御部は、前記第二の記憶部から前記第一の記憶部に移動されたデータに関しては、一時停止した処理単位以降の処理単位を実行する。
【発明の効果】
【０００７】
処理単位の組み合わせによって構成される処理フローの柔軟性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図２】本発明の実施の形態におけるフロー管理サーバのハードウェア構成例を示す図である。
【図３】本発明の実施の形態におけるフロー管理サーバの機能構成例を示す図である。
【図４】本発明の実施の形態におけるフロージョブの状態遷移の一例を示す図である。
【図５】印刷データの受信に応じてフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【図６】プルプリントフローの定義内容を概念的に示す図である。
【図７】プルプリントフロー用の進捗情報記録データの構成例を示す図である。
【図８】Ｒｅａｄｙ状態に移行したフロージョブに関してフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【図９】プルプリントフローがＰａｕｓｅ状態のときの進捗情報記録データの状態の一例を示す図である。
【図１０】画像形成装置の操作に応じてフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理システムの構成例を示す図である。図１において、情報処理システム１は、フロー管理サーバ１０、１以上のクライアント端末２０、及び１以上の画像形成装置３０等を含む。各装置は、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク（有線又は無線の別は問わない。）を介して通信可能に接続されている。
【００１０】
クライアント端末２０は、画像形成装置３０に印刷させる印刷データを、フロー管理サーバ１０へ送信する端末である。クライアント端末２０の一例として、携帯電話、スマートフォン、タブレット型端末、及びＰＣ（Personal Computer）等が挙げられる。
【００１１】
フロー管理サーバ１０は、ネットワークを介して受信されるデータに関して、予め定義されたワークフローを実行するコンピュータである。ワークフローとは、例えば、それぞれが独立して又は単独で完結した機能を実現する一以上の処理単位（タスク）の任意な組み合わせによって実現される処理の流れ（処理フロー）をいう。本実施の形態におけるワークフローは、例えば、データの入力処理、データの加工処理、及びデータの出力処理の組み合わせによって構成される。例えば、印刷データの受信に応じて実行されるワークフローに関して、印刷データの受信が、データの入力処理に相当し、印刷データにおける設定情報の変更が、データの加工処理に相当し、設定情報の変更された印刷データの画像形成装置３０への送信が、データの出力処理に相当する。なお、上記処理単位は、一般的なワークフローの用語における、アクティビティに当てはめられてもよい。
【００１２】
画像形成装置３０は、印刷データを受信し、当該印刷データに基づいて印刷ジョブを実行するプリンタ又は複合機等の機器である。
【００１３】
図２は、本発明の実施の形態におけるフロー管理サーバのハードウェア構成例を示す図である。図２のフロー管理サーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１４】
フロー管理サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってフロー管理サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
なお、フロー管理サーバ１０は、複数のコンピュータを含むコンピュータシステムであってもよい。
【００１７】
本実施の形態では、プルプリントを、プルプリントに特化したシステムによってではなく、ワークフローを定義することによって実現する例について説明する。プルプリントとは、以下の手順によって行われる印刷形態をいう。
（１）クライアント端末は、ユーザによる文書データの印刷指示に応じ、当該文書データの印刷データを、所定のサーバ（以下、「蓄積サーバ」という。）に送信する。
（２）蓄積サーバは、印刷データを直ちに印刷装置に送信せずに、記憶装置に保存する。したがって、ユーザから見た場合、印刷指示に応じて直ちに印刷は実行されない。
（３）ユーザは、印刷を実行したいときに、蓄積サーバに保存されている印刷データの一覧情報の表示指示を印刷装置に入力する。印刷装置は、当該表示指示に応じ、蓄積サーバに保存されている印刷データの書誌情報の一覧を、蓄積サーバから取得して表示する。
（４）ユーザによって、前記一覧の中から印刷対象とする書誌情報が選択されると、印刷装置は、当該書誌情報に係る印刷データを蓄積サーバから取得して、当該印刷データに基づく印刷ジョブを実行する。
【００１８】
上記より明らかなように、プルプリントでは、印刷指示から印刷ジョブが実行されるまでの間に、印刷対象の選択といった、ユーザによる操作が介在する。このような、ユーザによる操作等の介在を許容可能とするワークフローの定義及び実行を可能とするために、フロー管理サーバ１０は、例えば、図３に示される機能構成を有する。
【００１９】
図３は、本発明の実施の形態におけるフロー管理サーバの機能構成例を示す図である。図３において、フロー管理サーバ１０は、通信部１１、ジョブ制御部１２、フロー制御部１３、及び処理部１４等を有する。これら各部は、フロー管理サーバ１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。フロー管理サーバ１０は、また、フロー定義記憶部１５、開始用ジョブキュー１６、一時停止用ジョブキュー１７、及び実行中ジョブ記憶部１８等の記憶部を利用する。これら各記憶部は、補助記憶装置１０２、又はネットワークを介してフロー管理サーバ１０に接続される記憶装置等を用いて実現可能である。
【００２０】
通信部１１は、クライアント端末２０又は画像形成装置３０等との通信を制御する。図３において、通信部１１は、データ受信部１１１、ジョブ一覧提供部１１２、及び印刷要求受信部１１３等を含む。
【００２１】
データ受信部１１１は、ワークフローに対する入力データを受信する。本実施の形態において、データ受信部１１１は、クライアント端末２０から印刷データを受信する。ジョブ一覧提供部１１２は、画像形成装置３０からの要求に応じ、後述される一時停止用ジョブキュー１７に記憶されているジョブ情報の一覧を画像形成装置３０に送信（返信）する。ジョブ情報とは、ワークフローの実行単位ごとに生成される情報である。以下、ワークフローの実行単位を、「フロージョブ」という。印刷要求受信部１１３は、ジョブ一覧提供部１１２によって送信されたジョブ情報の一覧の中から、ユーザによって選択されたジョブ情報に係るデータの印刷要求を、画像形成装置３０から受信する。
【００２２】
ジョブ制御部１２は、フロージョブのジョブ情報に関する処理を実行する。図３において、ジョブ制御部１２は、ジョブ生成部１２１、ジョブ取得部１２２、ジョブ一時保存部１２３、及びジョブ再開部１２４等を含む。
【００２３】
ジョブ生成部１２１は、データ受信部１１１によって受信されたデータに関してジョブ情報を生成し、生成されたジョブ情報を開始用ジョブキュー１６に記憶する。開始用ジョブキュー１６は、開始対象又は再開対象のフロージョブのジョブ情報を、例えば、ＦＩＦＯ（First-In First-Out）形式で記憶する。
【００２４】
一つのジョブ情報は、処理対象データ、フロー定義データ、及び進捗情報記録データ等を含む。処理対象データは、フロージョブにおいて処理対象とされるデータである。本実施の形態において、初期状態のジョブ情報における処理対象データは、データ受信部１１１によって受信される印刷データである。初期状態とは、ワークフローの開始前の状態をいう。フロー定義データは、ワークフローを構成する処理単位の実行順等が定義されたデータをいい、ワークフローごとに作成され、フロー定義記憶部１５に記憶される。ジョブ情報には、当該ジョブ情報に係るフロージョブにおいて実行対象とされるワークフロー（以下、「対象フロー」という。）のフロー定義データが含まれる。本実施の形態では、データ受信部１１１によって印刷データが受信された場合、プルプリントを実現する特定のワークフロー（以下、「プルプリントフロー」という。）が実行対象として選択されるように、固定的にジョブ生成部１２１に設定されている。すなわち、ジョブ生成部１２１は、データ受信部１１１によって印刷データが受信された場合、プルプリントフローに係るフロー定義データの複製をフロー定義記憶部１５から取得して、ジョブ情報に含める。但し、例えば、印刷データに含まれている書誌情報を構成する特定の項目の値や、印刷データが受信されたポート等に応じて、対象フローが動的に決定されてもよい。
【００２５】
進捗情報記録データは、フロージョブの進捗状況を示す情報（以下、「進捗情報」という。）が記録されるデータである。例えば、進捗情報記録データには、対象フローを構成する各処理フローのステータスの値が記録される。ステータスの値には、例えば、「未処理」、「完了」、「一時停止」、又は「エラー」等の値が有る。「未処理」は、処理単位が実行されていない状態である。「完了」は、処理単位が正常に完了した状態である。「一時停止」は、処理単位が一時停止している状態である。一時停止している状態とは、一時的な停止状態であって、再開可能な状態又は再開を待機している状態をいう。「エラー」は、処理単位が異常終了した状態である。
【００２６】
なお、一つのジョブ情報は、一つのフォルダによって管理され、ジョブ情報を構成する各データは、それぞれファイルとして、当該フォルダに格納されてもよい。
【００２７】
ジョブ取得部１２２は、周期的に開始用ジョブキュー１６を監視する。ジョブ取得部１２２は、開始用ジョブキュー１６にジョブ情報が記憶されたことを検知すると、開始用ジョブキュー１６から当該ジョブ情報を取り出し、当該ジョブ情報に基づくワークフローの実行を、フロー制御部１３に要求する。なお、取り出されたジョブ情報は、開始用ジョブキュー１６から実行中ジョブ記憶部１８に移動される。すなわち、取り出されたジョブ情報は、開始用ジョブキュー１６から削除される。実行中ジョブ記憶部１８は、実行中のフロージョブのジョブ情報を記憶する。
【００２８】
ジョブ一時保存部１２３は、実行中のフロージョブが一時停止する場合（対象フローを構成する処理単位が一時停止状態となる場合）に、当該フロージョブのジョブ情報を実行中ジョブ記憶部１８から一時停止用ジョブキュー１７に移動する。
【００２９】
ジョブ再開部１２４は、一時停止状態のフロージョブが再開する場合に、一時停止用ジョブキュー１７に記憶されている、当該フロージョブに係るジョブ情報を、開始用ジョブキュー１６に移動する。
【００３０】
フロー制御部１３は、フロー実行部１３１及び一時停止部１３２等を含む。フロー制御部１３は、実行中ジョブ記憶部１８に記憶されたジョブ情報に含まれるフロー定義データ及び進捗情報記録データに基づき、実行対象とする処理単位を判定し、実行対象の処理単位に係る処理部１４に対し、処理単位の実行を要求する。当該処理部１４による処理単位の実行が完了すると、フロー実行部１３１は、当該処理単位の完了を示す情報を進捗情報記録データに記録し、フロー定義データに基づいて、次に実行すべき処理単位を判定する。
【００３１】
一時停止部１３２は、フロージョブの一時停止を、ジョブ一時保存部１２３に通知する。
【００３２】
処理部１４は、ワークフローを構成する処理単位ごとの処理を実行する。例えば、一つの処理単位は、一つの処理部１４によって実行される。したがって、ワークフローは、相互に処理内容の異なる１以上の処理部１４による処理単位の接続によって実現される。図３では、Ａ処理部１４ａ、Ｂ処理部１４ｂ、一時停止処理部１４ｃ、印刷配信処理部１４ｄ等が、処理部１４の一例として示されている。Ａ処理部１４ａ及びＢ処理部１４ｂは、単なる例示である。一時停止処理部１４ｃは、フロージョブの一時停止及び再開を実現する処理部１４である。印刷配信処理部１４ｄは、ジョブ情報に含まれる処理対象データを画像形成装置３０に送信することにより、当該処理データに基づく印刷ジョブを画像形成装置３０に実行させる処理部１４である。各処理部１４は、それぞれ独立したプログラムモジュールが、ＣＰＵ１０４に実行させる処理により実現されてもよい。ＣＰＵ１０４を、処理部１４として機能させるプログラムモジュールを、以下、「プラグイン」という。
【００３３】
フロー管理サーバ１０が、図３に示される機能構成を有し、処理単位が、一時停止状態を有することにより、本実施の形態におけるフロージョブは、例えば、図４に示される状態遷移を有する。
【００３４】
図４は、本発明の実施の形態におけるフロージョブの状態遷移の一例を示す図である。
【００３５】
フロージョブの状態遷移は、Ｒｅａｄｙ状態によって開始される。Ｒｅａｄｙ状態は、フロージョブのジョブ情報が、開始用ジョブキュー１６に記憶された状態である。ジョブ情報が、開始用ジョブキュー１６から取り出され、フロー実行部１３１によって、ジョブ情報に基づいてフロージョブの実行が開始されると、フロージョブは、Ｐｒｏｅｓｓｉｎｇ状態に移行する。Ｐｒｏｓｅｓｓｉｎｇ状態では、フロージョブに係るワークフローを構成する処理単位が、フロー定義データに従った順番で実行される。当該ワークフローを構成する全ての処理単位の実行に成功すると、フロージョブは、Ｃｏｍｐｌｅｔｅ状態に移行して終了する。一方、いずれかの処理単位の実行に失敗した時点で、フロージョブは、Ｅｒｒｏｒ状態に移行して終了する。
【００３６】
また、フロージョブに係るワークフローを構成するいずれかの処理単位が一時停止状態になると、フロージョブは、Ｐａｕｓｅ状態に移行する。Ｐａｕｓｅ状態は、フロージョブのジョブ情報が、一時停止用ジョブキュー１７に移動された状態である。一時停止用ジョブキュー１７に移動されたジョブ情報が、所定の事象を契機として、開始用ジョブキュー１６に移動されると、フロージョブは、再びＲｅａｄｙ状態に移行する。開始用ジョブキュー１６からのジョブ情報の取り出しに応じて、フロージョブは、再びＰｒｏｓｅｓｓｉｎｇ状態に移行する。
【００３７】
以下、フロー管理サーバ１０が実行する処理手順について説明する。図５は、印刷データの受信に応じてフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【００３８】
ステップＳ１０１において、データ受信部１１１は、クライアント端末２０から送信された印刷データを受信する。当該印刷データは、例えば、クライアント端末２０に対してユーザによって入力される、文書データの印刷指示に基づいて、クライアント端末２０から送信される。なお、当該印刷データは、例えば、クライアント端末２０におけるプリンタドライバによって生成された、ＰＤＬ（Page Description Language）等によって記述されたデータである。なお、印刷データと共に、印刷を指示したユーザのユーザ名も受信される。ユーザ名は、印刷データの中に含まれていてもよいし、印刷データから独立して受信されてもよい。
【００３９】
続いて、ジョブ生成部１２１は、受信された印刷データに関して、ジョブ情報を生成する（Ｓ１０２）。具体的には、ジョブ生成部１２１は、印刷データに対応するフロー定義データの複製を、フロー定義記憶部１５から取得する。本実施の形態では、プルプリントフローのフロー定義データが取得される。
【００４０】
図６は、プルプリントフローの定義内容を概念的に示す図である。図６において、プルプリントフローは、Ａ処理、一時停止処理、及び印刷配信処理の３つの処理単位が、図６における配列順に実行されるワークフローであることが示されている。Ａ処理は、加工処理の一例であり、Ａ処理部１４ａによって実行される。本実施の形態において、Ａ処理の内容は、特定のものに限定されない。例えば、印刷設定の強制的な変更処理が、Ａ処理であってもよい。斯かる処理の一例として、印刷コスト削減のために、カラー印刷をモノクロ印刷に変更する処理が挙げられる。一時停止処理は、一時停止処理部１４ｃによって実行される。印刷配信処理は、出力処理の一例であり、印刷配信処理部１４ｄによって実行される。
【００４１】
なお、フロー定義データには、各処理単位を実行する処理部１４としてＣＰＵ１０４を機能させるためのプラグインの識別情報（以下、「プラグインＩＤ」という。）が含まれている。より詳しくは、プラグインＩＤが、処理単位の実行順に従った順序で、フロー定義データに含まれている。フロー実行部１３１は、プラグインＩＤの配列順に基づいて、各処理単位の実行順序を把握することができる。図６に関しては、便宜上、各処理単位を示す矩形内の文字列（「Ａ処理」、「一時停止処理」、「印刷配信処理」）が、プラグインＩＤであるとする。
【００４２】
また、フロー定義データには、各処理単位に対する設定情報（パラメータ）が含まれてもよい。なお、フロー定義データは、例えば、ＸＭＬ（eXtensible Markup Language）形式によって記述されてもよい。
【００４３】
ジョブ生成部１２１は、また、プルプリントフローのフロー定義データに基づいて、プルプリントフロー用の進捗情報記録データを生成する。
【００４４】
図７は、プルプリントフロー用の進捗情報記録データの構成例を示す図である。図７において、進捗情報記録データは、プルプリントフローを構成する処理単位ごとに、ステータス及び出力情報等が記録可能とされている。ステータスは、処理単位のステータスである。初期状態においては、全ての処理単位のステータスが、「未実行」とされる。出力情報は、例えば、処理単位による実行結果として出力されるデータを格納したファイルのパス名等である。このように、進捗情報記録データの構成は、対象フローの構成に依存する。したがって、進捗情報記録データは、フロー定義データに基づいて生成される。例えば、フロー定義データの複製が進捗情報記録データとされてもよい。すなわち、フロー定義データの複製に対して、各処理単位のステータスや出力情報等が追記されてもよい。
【００４５】
このように、ジョブ生成部１２１は、受信された印刷データ、プルプリントフローのフロー定義データ、及び生成された進捗情報記録データと、印刷データに関して受信されたユーザ名とを含むジョブ情報を生成する。また、ジョブ生成部１２１は、フロージョブごとの識別情報であるジョブＩＤを生成し、当該ジョブＩＤもジョブ情報に含める。
【００４６】
続いて、ジョブ生成部１２１は、生成されたジョブ情報を、開始用ジョブキュー１６に登録する（Ｓ１０３）。その結果、当該ジョブ情報に係るフロージョブは、Ｒｅａｄｙ状態となる。
【００４７】
続いて、Ｒｅａｄｙ状態に移行したフロージョブに関してフロー管理サーバ１０が実行する処理手順について説明する。
【００４８】
図８は、Ｒｅａｄｙ状態に移行したフロージョブに関してフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【００４９】
ジョブ取得部１２２は、例えば、周期的に開始用ジョブキュー１６を参照する（Ｓ２０１）。開始用ジョブキュー１６にジョブ情報が記憶されている場合（Ｓ２０１でＹｅｓ）、ジョブ取得部１２２は、当該ジョブ情報を、開始用ジョブキュー１６から取り出し、実行中ジョブ記憶部１８に移動する（Ｓ２０２）。その結果、当該ジョブ情報に係るフロージョブは、Ｐｒｏｓｅｓｓｉｎｇ状態に移行する。
【００５０】
続いて、フロー実行部１３１は、実行中ジョブ記憶部１８に記憶されたジョブ情報に含まれているフロー定義データ及び進捗情報記録データに基づいて、完了していない処理単位の中で実行順が先頭である処理単位を特定する（Ｓ２０３）。具体的には、進捗情報記録データに基づいて、ステータスが「未実行」又は「一時停止」である処理単位（プラグイン）が特定される。特定された処理単位の中で、実行順が先頭である処理単位が、フロー定義データに基づいて特定される。なお、進捗情報記録データに基づいて、各処理単位の実行順を把握可能である場合、進捗情報記録データのみに基づいて、完了していない処理単位の中で実行順が先頭である処理単位が特定されてもよい。フロー実行部１３１は、特定された処理単位の実行順を、変数ｉに代入する。なお、処理対象のフロージョブ（以下、「対象フロージョブ」という。）に関して最初にステップＳ２０３が実行される場合、変数ｉには１が代入される。以下、ｉ番目に実行される処理単位を、「処理単位ｉ」という。
【００５１】
続いて、フロー実行部１３１は、対象フロージョブに係るワークフロー（対象フロー）を構成する処理単位の総数を変数Ｎに代入する（Ｓ２０４）。例えば、図６に示されるプルプリントフローであれば、Ｎには３が代入される。なお、対象フローを構成する処理単位の総数は、対象フローのフロー定義データに基づいて特定可能である。
【００５２】
続いて、フロー実行部１３１は、変数ｉの値が、変数Ｎ以下であるか否かを判定する（Ｓ２０５）。すなわち、対象フローを構成する処理単位のうち、未処理の処理単位が有るか否かが判定される。
【００５３】
変数ｉの値が変数Ｎ以下である場合、すなわち、未処理の処理単位が有る場合（Ｓ２０５でＹｅｓ）、フロー実行部１３１は、処理単位ｉに対応する処理部１４に、処理単位ｉを実行させる（Ｓ２０６）。例えば、フロー実行部１３１は、当該処理部１４に対して処理単位ｉの実行を要求する。当該要求には、例えば、ジョブ情報における処理対象データのパス名等が含まれる。当該処理部１４は、当該要求に応じて処理単位ｉを処理対象データに関して実行し、当該処理部１４のステータス及び出力情報等を、フロー実行部１３１に返却する。処理部１４のステータスとは、処理単位の処理結果に応じた、「完了」、「一時停止」、又は「エラー」等である。
【００５４】
続いて、フロー実行部１３１は、返却されたステータス及び出力情報を、進捗情報記録データにおいて、処理単位ｉに対応するレコードに記録する（Ｓ２０７）。続いて、フロー実行部１３１は、返却されたステータスが「一時停止」であるか否かを判定する（Ｓ２０８）。当該ステータスが「一時停止」でない場合（Ｓ２０８でＮｏ）、フロー実行部１３１は、当該ステータスが「エラー」であるか否かを判定する（Ｓ２０９）。当該ステータスが「エラー」でない場合（Ｓ２０９でＮｏ）、フロー実行部１３１は、変数ｉに１を加算して（Ｓ２１０）、ステップＳ２０５以降を繰り返す。すなわち、返却されたステータスが「完了」である場合、次の処理単位が実行される。
【００５５】
一方、ステータスが「エラー」である場合（Ｓ２０９でＹｅｓ）、フロー実行部１３１は、異常終了時の処理を実行する（Ｓ２１１）。例えば、対象フロージョブのジョブ情報が、実行中ジョブ記憶部１８から、エラーが発生したフロージョブのジョブ情報を記憶する領域へ移動される。異常終了時の処理が完了すると、対象フロージョブは終了する。
【００５６】
また、ステータスが「一時停止」である場合（Ｓ２０８でＹｅｓ）、一時停止部１３２は、対象フロージョブのジョブ情報を、実行中ジョブ記憶部１８から一時停止用ジョブキュー１７に移動する（Ｓ２１２）。その結果、対象フロージョブは、Ｐａｕｓｅ状態に移行する。
【００５７】
本実施の形態におけるプルプリントフローでは、まず、Ａ処理が実行される。Ａ処理のステータスが「完了」である場合、一時停止処理が実行される。一時停止処理では、「一時停止」を示すステータスが返却される。その結果、対象フロージョブが、Ｐａｕｓｅ状態となる。この時点における、進捗情報記録データは、例えば、図９に示される通りである。
【００５８】
図９は、プルプリントフローがＰａｕｓｅ状態のときの進捗情報記録データの状態の一例を示す図である。図９では、Ａ処理のステータスが「完了」に更新され、一時停止処理の「ステータス」が一時停止に更新されている。一方、印刷配信処理のステータスは、「未実行」のままである。
【００５９】
なお、対象フロージョブのジョブ情報が、一時停止用ジョブキュー１７に移動されて対象フロージョブが一時停止することで、プルプリントにおける、蓄積サーバへの印刷データの保存が実現される。
【００６０】
その後、ユーザは、任意のタイミングで画像形成装置３０を操作する。なお、ユーザが画像形成装置３０を操作するまでに、複数の文書に関して印刷指示が行われてもよい。この場合、各文書に係る各印刷データに関して、図５及び図８の処理が実行される。その結果、一時停止用ジョブキュー１７には、複数のジョブ情報が記憶される。
【００６１】
続いて、ユーザによる画像形成装置３０の操作に応じて、フロー管理サーバ１０が実行する処理手順について説明する。図１０は、画像形成装置の操作に応じてフロー管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【００６２】
ステップＳ３０１において、ジョブ一覧提供部１１２は、ジョブ一覧の取得要求を画像形成装置３０から受信する。当該取得要求は、画像形成装置３０に対してログインしたユーザによる操作に応じて、画像形成装置３０から送信される。当該取得要求には、当該ユーザのユーザ名が含まれる。
【００６３】
続いて、ジョブ一覧提供部１１２は、一時用ジョブキューに記憶されているジョブ情報の中で、ジョブ一覧の取得要求に含まれているユーザ名を含むジョブ情報の書誌情報の一覧（以下、「ジョブ一覧」という。）を取得する（Ｓ３０２）。ジョブ情報の書誌情報には、例えば、ジョブ情報に含まれている処理対象データ（印刷データ）の文書名等、ユーザが、各ジョブ情報における印刷対象を識別可能な情報と、ジョブＩＤとが含まれていればよい。
【００６４】
続いて、ジョブ一覧提供部１１２は、ジョブ一覧を返信する（Ｓ３０３）。画像形成装置３０は、ジョブ一覧を受信すると、当該ジョブ一覧を操作パネルに表示させる。ユーザが、ジョブ一覧の中から、１以上のジョブを選択し、印刷指示を画像形成装置３０に入力すると、画像形成装置３０は、選択されたジョブのジョブＩＤと、当該画像形成装置３０の識別情報を含む印刷要求を、フロー管理サーバ１０に送信する。画像形成装置３０の識別情報は、例えば、ＩＰアドレス等、画像形成装置３０との通信に必要とされる情報である。以下、当該識別情報を「機器ＩＤ」という。
【００６５】
ステップＳ３０４において、印刷要求受信部１１３は、当該印刷要求を受信する。印刷要求受信部１１３は、受信された印刷要求に含まれているジョブＩＤ及び機器ＩＤを、ジョブ再開部１２４に通知する。ジョブ再開部１２４は、通知されたジョブＩＤを含むジョブ情報を、一時停止用ジョブキュー１７から開始用ジョブキュー１６へ移動する（Ｓ３０５）。この際、ジョブ再開部１２４は、機器ＩＤを当該ジョブ情報に含める。移動されたジョブ情報に係るフロージョブは、再び、Ｒｅａｄｙ状態に移行する。
【００６６】
開始用ジョブキュー１６へ移動されたジョブ情報は、図８に示した処理において処理対象となる。例えば、プルプリントフローであれば、ステップＳ２０３において、変数ｉに代入されるのは、一時停止処理の実行順である「２」である。ステップＳ２０６において、フロー実行部１３１は、一時停止処理部１４ｃに対して、処理単位の再開を要求する。処理単位の再開を要求された一時停止処理部１４ｃは、ステータスとして「完了」を返却する。なお、本実施の形態において、一時停止処理部１４ｃは、処理対象データに対する加工処理等を実行しないが、一時停止処理部１４ｃが、処理対象データに対して加工処理等を実行してもよい。
【００６７】
一時停止処理のステータスが「完了」に更新されたことで、処理対象は、印刷配信処理となる。すなわち、続く、ステップＳ２０６において、フロー実行部１３１は、印刷配信処理部１４ｄに処理単位の実行を要求する。印刷配信処理部１４ｄは、対象フロージョブのジョブ情報に含まれている処理対象データ（印刷データ）を、当該ジョブ情報に含まれている機器ＩＤに係る画像形成装置３０に送信することにより、処理対象データの印刷ジョブを画像形成装置３０に実行させる。その結果、プルプリントが実現される。
【００６８】
なお、印刷配信処理が完了することで、プルプリントフローのフロージョブの進捗情報記録データのステータスの値は、全ての処理単位に関して「完了」となる。したがって、当該フロージョブに関して、図８の処理は完了する。
【００６９】
上述したように、本実施の形態によれば、フロージョブをＰａｕｓｅ状態に移行させることができる。すなわち、フロージョブの自動的な進行を一時的に停止することができる。また、ユーザによる入力に応じて、Ｐａｕｓｅ状態のフロージョブを再開させることができる。したがって、処理単位の組み合わせによって構成される処理フローの柔軟性を向上させることができる。
【００７０】
なお、本実施の形態では、プルプリントフローを、一時停止処理を利用することで実現可能なワークフローの一例として説明したが、他のワークフローに関して一時停止処理が組み込まれてもよい。すなわち、本実施の形態の適用範囲は、プルプリントフローに限られない。
【００７１】
また、ワークフローに対する入力データは印刷データに限られない。例えば、データ受信部１１１は、画像形成装置３０においてスキャンされた画像データを受信してもよい。または、データ受信部１１１は、所定のメールアドレス宛の電子メールを受信してもよい。または、データ受信部１１１は、ファイルサーバ等、所定のコンピュータのフォルダをポーリングし、当該フォルダに保存されたファイルを入力データとして取得してもよい。または、データ受信部１１１は、Ｗｅｂインタフェースを介して、入力データを受信してもよい。
【００７２】
なお、本実施の形態において、フロー管理サーバ１０は、データ処理装置及びデータ処理システムの一例である。開始用ジョブキュー１６は、第一の記憶部の一例である。データ受信部１１１は、第一の受信部の一例である。ジョブ取得部１２２及びフロー実行部１３１は、処理制御部の一例である。一時停止用ジョブキュー１７は、第二の記憶部の一例である。ジョブ再開部１２４は、移動部の一例である。ジョブ一覧提供部１１２は、送信部の一例である。印刷要求受信部１１３は、第二の受信部の一例である。
【００７３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７４】
１            情報処理システム
１０          フロー管理サーバ
１１          通信部
１２          ジョブ制御部
１３          フロー制御部
１４          処理部
１４ａ        Ａ処理部
１４ｂ        Ｂ処理部
１４ｃ        一時停止処理部
１４ｄ        印刷配信処理部
１５          フロー定義記憶部
１６          開始用ジョブキュー
１７          一時停止用ジョブキュー
１８          実行中ジョブ記憶部
２０          クライアント端末
３０          画像形成装置
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１１１        データ受信部
１１２        ジョブ一覧提供部
１１３        印刷要求受信部
１２１        ジョブ生成部
１２２        ジョブ取得部
１２３        ジョブ一時保存部
１２４        ジョブ再開部
１３１        フロー実行部
１３２        一時停止部
Ｂ            バス
【先行技術文献】
【特許文献】
【００７５】
【特許文献１】特開２００８−９７５８６号公報
【特許文献２】特開２０１２−０７８９９９号公報
【図１】
2015153204.tif 000003
【図２】
2015153204.tif 000004
【図３】
2015153204.tif 000005
【図４】
2015153204.tif 000006
【図５】
2015153204.tif 000007
【図６】
2015153204.tif 000008
【図７】
2015153204.tif 000009
【図８】
2015153204.tif 000010
【図９】
2015153204.tif 000011
【図１０】
2015153204.tif 000012