(57)【要約】【課題】処理単位の組み合わせによって実現される処理を効率化すること。【解決手段】複数の処理部のうちの１以上の処理部が実行する処理単位の組み合わせによって構成される処理フローを実行する情報処理装置であって、前記各処理部は、当該処理部の処理の実行に応じ、前記処理フローの実行単位ごとのデータに対して、当該処理部が実行した処理内容を記録し、一部の処理部は、前記データの記録内容に応じて、当該処理部の処理内容を変化させる。【選択図】図３
2014127066.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部のうちの１以上の処理部が実行する処理単位の組み合わせによって構成される処理フローを実行する情報処理装置であって、
前記各処理部は、当該処理部の処理の実行に応じ、前記処理フローの実行単位ごとのデータに対して、当該処理部が実行した処理内容を記録し、
一部の処理部は、前記データの記録内容に応じて、当該処理部の処理内容を変化させる情報処理装置。
【請求項２】
前記一部の処理部は、当該処理部が実行する処理と重複する処理に関する情報が前記データに記録されている場合は、当該処理を実行しない請求項１記載の情報処理装置。
【請求項３】
前記複数の処理部のうちの一部の処理部は、前記情報処理装置にネットワークを介して接続されるコンピュータに処理を実行せる請求項１又は２記載の情報処理装置。
【請求項４】
複数の処理部のうちの１以上の処理部が実行する処理単位の組み合わせによって構成される処理フローを実行する第一の情報処理装置と、前記第一の情報処理装置にネットワークを介して接続される第二の情報処理装置とを含む情報処理システムであって、
前記各処理部は、当該処理部の処理の実行に応じ、前記処理フローの実行単位ごとのデータに対して、当該処理部が実行した処理内容を記録し、
一部の処理部は、前記データの記録内容に応じて、当該処理部の処理内容を変化させ、
前記複数の処理部の一部の処理部は、前記第二の情報処理装置に処理を実行させる情報処理システム。
【請求項５】
複数の処理部のうちの１以上の処理部が実行する処理単位の組み合わせによって構成される処理フローをコンピュータに実行させるプログラムであって、
前記各処理部は、当該処理部の処理の実行に応じ、前記処理フローの実行単位ごとのデータに対して、当該処理部が実行した処理内容を記録し、
一部の処理部は、前記データの記録内容に応じて、当該処理部の処理内容を変化させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【０００２】
ワークフローは、アクティビティと呼ばれる処理単位の組み合わせによって構成される。各アクティビティの機能の独立性が高ければ高いほど、ワークフローの構築に関する自由度は高くなる。
【０００３】
アクティビティの機能の独立性を高めるために、各アクティビティの機能は、アクティビティ内において完結していることが望ましい。すなわち、各アクティビティの機能は、他のアクティビティに依存することなく実現されるのが望ましい。アクティビティ間に依存関係が生じてしまうと、依存関係を意識してワークフローを構築しなければならず、ワークフローの構築作業が複雑化してしまうからである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、各アクティビティの機能が、アクティビティ内において完結される場合、同一のワークフローに利用されるアクティビティ間に、処理の重複が発生する可能性が高くなる。アクティビティ間において処理が重複する場合、ワークフローの実行による処理負荷の増加や、ワークフローの処理性能の劣化等を招く可能性がある。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、処理単位の組み合わせによって実現される処理を効率化することを目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、複数の処理部のうちの１以上の処理部が実行する処理単位の組み合わせによって構成される処理フローを実行する情報処理装置であって、前記各処理部は、当該処理部の処理の実行に応じ、前記処理フローの実行単位ごとのデータに対して、当該処理部が実行した処理内容を記録し、一部の処理部は、前記データの記録内容に応じて、当該処理部の処理内容を変化させる。
【発明の効果】
【０００７】
処理単位の組み合わせによって実現される処理を効率化することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態における配信管理システムの構成例を示す図である。
【図２】本発明の実施の形態における配信管理サーバのハードウェア構成例を示す図である。
【図３】本発明の実施の形態における配信管理サーバの機能構成例を示す図である。
【図４】ワークフローの一例を模式的に示す図である。
【図５】フロー定義データの記述例を示す図である。
【図６】本発明の実施の形態における複合機の機能構成例を示す図である。
【図７】ワークフローの実行時の処理手順の一例を説明するためのシーケンス図である。
【図８】フロー選択画面の表示例を示す図である。
【図９】各処理単位に共通の処理手順の一例を説明するためのフローチャートである。
【図１０】ジョブチケットを説明するためのワークフローの一例を模式的に示す図である。
【図１１】テキスト付きＰＤＦデータ生成処理を実行する処理部による処理手順の一例を説明するためのフローチャートである。
【図１２】１番目の処理単位の実行後のジョブチケットの例を示す図である。
【図１３】２番目の処理単位の実行後のジョブチケットの例を示す図である。
【図１４】外部連携サーバとの連携を説明するための図である。
【図１５】ジョブ投入部の詳細な構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における配信管理システムの構成例を示す図である。図１に示される配信管理システム１において、配信管理サーバ１０は、１台以上の複合機２０と、ＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）等のネットワークＮ１を介して接続されている。配信管理サーバ１０は、また、ＬＡＮ又ＷＡＮ等のネットワークＮ２を介して、ファイルサーバ３０、ＥＤＭＳ４０、ＳＭＴＰサーバ５０、及び外部連携サーバ６０等と接続されている。なお、ネットワークＮ１とネットワークＮ２とは、同じネットワークであってもよい。
【００１０】
複合機２０は、スキャン機能、コピー機能、プリンタ機能、及びファクシミリ機能等のうちの２以上の機能を一つの筐体において実現する画像形成装置である。本実施の形態において、複合機２０は、スキャナ機能により紙媒体等をスキャン処理して画像データを生成し、生成された画像データを配信管理サーバ１０に送信する。スキャナ機能のみを実現するスキャナが、複合機２０の代わりに利用されてもよい。
【００１１】
配信管理サーバ１０は、複合機２０でスキャンされた画像データを受信し、後述するフロー定義データに従って、当該画像データを処理対象としてワークフロー等の処理フローを実行するコンピュータである。ワークフローは、順序付けられた１以上の処理単位の組み合わせをいう。各処理単位は、アクティビティと呼ばれる。アクティビティを任意に組み合わせることで、任意のワークフローを定義することが可能である。
【００１２】
ファイルサーバ３０は、ネットワークＮ２上で共有されるファイルを蓄積して管理するコンピュータである。ＥＤＭＳ（Enterprise Document Management System）４０は、いわゆる文書管理システムである。ＳＭＴＰ（Simple Mail Transfer Protocoｌ）サーバ５０は、メール送信プロトコルであるＳＭＴＰに準拠した電子メールの送信を実行するコンピュータである。本実施の形態において、ファイルサーバ３０、ＥＤＭＳ４０、及びＳＭＴＰサーバ５０は、配信管理サーバ１０によって実行されるワークフローにおいて、配信先の候補となる。
【００１３】
外部連携サーバ６０は、ワークフローの実行に関して配信管理サーバ１０と連携するコンピュータである。例えば、外部連携サーバ６０は、或るアクティビティに関する処理を実行する。すなわち、ワークフローの一部又は全部の処理は、配信管理サーバ１０外において実行されてもよい。
【００１４】
図２は、本発明の実施の形態における配信管理サーバのハードウェア構成例を示す図である。図２の配信管理サーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１５】
配信管理サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１６】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って配信管理サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１７】
なお、配信管理サーバ１０は、図２に示されるようなハードウェアを有する複数のコンピュータによって実現されてもよい。
【００１８】
また、複合機２０が配信管理サーバ１０を兼ねてもよい。すなわち、複合機２０が、図３に示される機能構成を有していてもよい。
【００１９】
図３は、本発明の実施の形態における配信管理サーバの機能構成例を示す図である。図３において、配信管理サーバ１０は、画面提供部１１、ジョブ投入部１２、フロー実行制御部１３、及び処理部１４等を有する。これら各部は、配信管理サーバ１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理により実現される。配信管理サーバ１０は、また、ジョブキュー１５、フロー定義記憶部１６、及び画面定義記憶部１７等の記憶部を利用する。これら各記憶部は、補助記憶装置１０２、又は配信管理サーバ１０にネットワークを介して接続される記憶装置等を用いて実現可能である。ジョブキュー１５については、メモリ装置１０３が用いられてもよい。
【００２０】
フロー定義記憶部１６は、フロー定義データを記憶する。フロー定義データとは、ワークフローの処理の流れ等に関する定義情報が記録されたデータをいう。本実施の形態において、一つのフロー定義データは、一つのワークフローに対応する。
【００２１】
画面定義記憶部１７は、画面定義データを記憶する。画面定義データとは、ワークフローに対する設定値の入力を受け付けるための画面の構成等に関する定義情報が記録されたデータをいう。本実施の形態において、一つの画面定義データは、一つの画面に対応する。また、画面定義データは、対応するワークフローのフロー定義データに対応付けられて記憶されている。本実施の形態では、フロー定義データ内に、対応する画面定義データの識別情報が記録されることにより、両者が対応付けられる。
【００２２】
画面提供部１１は、複合機２０に対して、画面定義データ等を提供する。ジョブ投入部１２は、複合機２０からのワークフローの実行要求に応じ、当該ワークフローに係るジョブ情報をジョブキュー１５に投入する。本実施の形態において、ジョブとは、ワークフローの実行単位をいう。例えば、同一のワークフローが複数回実行された場合、各回ごとにジョブは異なる。
【００２３】
ジョブキュー１５は、投入されたジョブ情報を記憶する。ジョブ情報は、例えば、実行対象のワークフローの識別子や、当該ワークフローに対する設定値、処理対象のデータ等を含む情報である。
【００２４】
フロー実行制御部１３は、ジョブキュー１５によりジョブ情報を取得し、当該ジョブ情報に係るフロー定義データの定義に従って、ワークフローの実行を制御する。
【００２５】
処理部１４は、ワークフローを構成する処理単位（アクティビティ）ごとの処理を実行する。例えば、一つのアクティビティは、一つの処理部１４によって実現される。したがって、ワークフローは、相互に処理内容の異なる１以上の処理部１４による処理の接続によって実現される。図３では、処理部１４Ａ及び処理部１４Ｂ等が例示されている。各処理部１４は、それぞれ独立したプログラムモジュールによって実現されてもよい。この場合、各プログラムモジュールは、プラグインとして、容易にインストール可能とされてもよい。
【００２６】
フロー定義データの詳細について説明する。本実施の形態において、ワークフローを構成する１以上処理単位は、中間処理又は出力処理に大別される。中間処理は、例えば、複合機２０より受信される画像データに対する加工処理である。中間処理の一例として、ノイズ除去処理、ＯＣＲ（Optical Character Recognition）処理、翻訳処理、及びデータ変換処理等が挙げられる。
【００２７】
出力処理は、複合機２０より受信される画像データ、又は中間処理より出力されたデータの出力処理である。出力処理の一例として、複合機２０又はファイルサーバ３０等のフォルダへの配信処理が挙げられる。また、ＥＤＭＳ４０又はＳＭＴＰサーバ５０が配信先とされてもよい。ＳＭＴＰサーバ５０が配信先とされる場合、ワークフローより出力されるデータは、電子メールによって送信される。
【００２８】
なお、本実施の形態では、配信が出力形態の一例として説明されるが、例えば、印刷等、他の出力形態による出力処理がワークフローを構成してもよい。
【００２９】
フロー定義データには、少なくとも一つの出力処理と、必要に応じて一以上の中間処理との順序付けられた組み合わせに関する定義が記録されている。分岐した処理が並列的に実行されるようにワークフローが定義されてもよい。
【００３０】
図４は、ワークフローの一例を模式的に示す図である。図４では、契約書から読み取られた画像データの配信処理に関するワークフロー（以下、「契約書フロー」という。）の例が示されている。契約書フローには、スキャンされた契約書の画像データに対する画像変換処理に続いて、画像変換された画像データのフォルダへの配信処理が実行されることが示されている。また、当該処理に並行して、スキャンされた画像データを電子メールで送信する処理が実行されることが示されている。
【００３１】
図４に示される契約書フローのフロー定義データは、例えば、図５に示されるように記述される。
【００３２】
図５は、フロー定義データの記述例を示す図である。図５に示されるフロー定義データは、ＸＭＬ（eXtensible Markup Language）形式で記述されている。但し、他の形式によって、フロー定義データが記述されてもよい。なお、以下の説明において、開始タグから終了タグまでの範囲を、「要素」という。要素の名前は、タグの名前に一致する。例えば、タグ名が、ＸＸＸである要素は、ＸＸＸ要素という。また、開始タグと終了タグとの間の内容を、要素の値という。
【００３３】
一つのワークフローに対するフロー定義データは、Ｄｉｓｔｒｉｂｕｔｉｏｎ要素をルート要素とする。Ｄｉｓｔｒｉｂｕｔｉｏｎ要素は、ＩＤ要素、ＬｉｎｋｅｄＰｒｏｐｅｒｔｙＳｃｒｅｅｎ要素、及び一以上のＰｌｕｇｉｎ要素等を子要素として含む。
【００３４】
ＩＤ要素の値は、ワークフローごとの識別情報であるフローＩＤを示す。各ワークフローは、フローＩＤによって識別される。ＬｉｎｋｅｄＰｒｏｐｅｒｔｙＳｃｒｅｅｎ要素の値は、当該フロー定義データに対応付いている、画面定義データの識別情報（以下、「画面定義ＩＤ」という。）を示す。各Ｐｌｕｇｉｎ要素は、それぞれ、当該ワークフローを構成する処理単位（アクティビティ）に対応する。
【００３５】
一つのＰｌｕｇｉｎ要素は、ＰｌｕｇｉｎＩＤ要素、ＰｌｕｇｉｎＴｙｐｅ要素、及びＰａｒａｍｅｔｅｒｓ要素等を含む。
【００３６】
ＰｌｕｇｉｎＩＤ要素の値は、処理単位の識別情報であるプラグインＩＤを示す。図５では、「ＩｍａｇｅＣｏｎｖｅｒｔｅｒ」、「ＴｏＦｏｌｄｅｒ」、又は「ＴｏＥｍａｉｌ」を値とするＰｌｕｇｉｎＩＤ要素が有る。「ＩｍａｇｅＣｏｎｖｅｒｔｅｒ」は、画像変換処理に関するプラグインＩＤである。「ＴｏＦｏｌｄｅｒ」は、フォルダ配信処理に関するプラグインＩＤである。「ＴｏＥｍａｉｌ」は、電子メール送信処理に関するプラグインＩＤである。なお、一つの処理単位は、一つの処理部１４によって実行される。したがって、プラグインＩＤは、当該処理単位に係る処理部１４を実現するプラグインの識別情報であってもよい。
【００３７】
ＰｌｕｇｉｎＴｙｐｅ要素の値は、処理単位が、中間処理であるのか出力処理であるのかを示す。「Ｆｉｌｔｅｒ」は、中間処理を示す。「ＯｕｔＰｕｔ」は、出力処理を示す。
【００３８】
Ｐａｒａｍｅｔｅｒｓ要素は、処理単位に対するパラメータ（設定項目）の名前をタグ名とする子要素を有する。複数のパラメータを有する処理単位には、複数の子要素がＰａｒａｍｅｔｅｒｓ要素に含まれる。なお、符号４０１〜４０３で示される箇所において、｛｝で囲まれた部分には、ワークフローの実行時に入力される設定値が当てはめられる。
【００３９】
図４における画像変換処理のように、後段に続く処理単位が有る処理単位に対応するＰｌｕｇｉｎ要素は、Ｎｅｘｔ要素を子要素として更に含む。
【００４０】
Ｎｅｘｔ要素は、後段に続く処理単位に対応するＰｌｕｇｉｎ要素を子要素として含む。すなわち、Ｎｅｘｔ要素を介して、Ｐｌｕｇｉｎ要素が入れ子となることにより、処理単位の前後関係が定義される。
【００４１】
図５の例では、Ｄｉｓｔｒｉｂｕｔｉｏｎ要素の直下に、画像変換処理と、電子メール送信処理とに対応する二つのＰｌｕｇｉｎ要素がある。したがって、この二つの処理単位は並行して実行されることになる。画像変換処理に対応するＰｌｕｇｉｎ要素は、Ｎｅｘｔ要素を含む。当該Ｎｅｘｔ要素は、フォルダ配信処理に対応するＰｌｕｇｉｎ要素を子要素として含む。すなわち、画像変換処理の後に、フォルダ配信処理が実行されることが定義されている。
【００４２】
次に、複合機２０の詳細について説明する。図６は、本発明の実施の形態における複合機の機能構成例を示す図である。図６において、複合機２０は、スキャナアプリ２０１、プリンタアプリ２０２、制御部２０３、リモート通信部２０４、表示制御部２０５、入力制御部２０６、オペレーションパネル２０７、スキャナエンジン２０８、プリンタエンジン２０９、及びサーバ情報記憶部２１０等を有する。
【００４３】
サーバ情報記憶部２１０は、配信管理サーバ１０のＩＰアドレス等を記憶する。サーバ情報記憶部２１０は、例えば、複合機２０が有する補助記憶装置等を用いて実現されてもよい。
【００４４】
スキャナエンジン２０８は、スキャンを実行するハードウェアである。プリンタエンジン２０９は、印刷を実行するハードウェアである。オペレーションパネル２０７は、表示部２１１及び操作部２１２等を有する。表示部２１１は、例えば、液晶パネルであり、画面等を表示させる。操作部２１２は、各種のボタン、又は液晶パネルに備えられたタッチパネル等であり、ユーザからの入力を受け付ける。
【００４５】
制御部２０３は、スキャナアプリ２０１やプリンタアプリ２０２等のアプリケーションからの要求に応じ、スキャナエンジン２０８、プリンタエンジン２０９、補助記憶装置、及びメモリ等のハードウェアの制御を行う。
【００４６】
リモート通信部２０４は、配信管理サーバ１０との通信を制御する。表示制御部２０５は、表示部２１１に対する画面の表示制御等を行う。例えば、表示制御部２０５は、リモート通信部２０４によって受信された画面定義データに基づく画面を表示部２１１に表示させる。
【００４７】
入力制御部２０６は、操作部２１２によって検知される、ユーザによる入力に応じた処理を制御する。入力制御部２０６は、例えば、スキャンの実行指示の入力を、スキャナアプリ２０１に通知する。
【００４８】
スキャナアプリ２０１は、操作部２１２からの通知に応じ、スキャン条件の設定やスキャン処理を実行するアプリケーションである。具体的には、スキャナアプリ２０１は、制御部２０３に対しスキャン要求を行って、スキャナエンジン２０８を動作させ、原稿をスキャンさせる。
【００４９】
プリンタアプリ２０２は、印刷処理を実行するアプリケーションである。例えば、プリンタアプリ２０２は、印刷データの受信に応じ、制御部２０３に対しプリント要求を行って、プリンタエンジン２０９を動作させる。
【００５０】
なお、図６では、アプリケーションとしてスキャナアプリ２０１及びプリンタアプリ２０２のみが示されているが、複合機２０は、コピー処理を行うコピーアプリやファクシミリ送受信処理を行うファックスアプリ等を有していてもよい。また、本実施の形態において、複合機２０は、プリンタアプリ２０２を有していなくてもよい。
【００５１】
以下、配信管理システム１において実行される処理手順について説明する。図７は、ワークフローの実行時の処理手順の一例を説明するためのシーケンス図である。
【００５２】
複合機２０を操作するユーザによって、オペレーションパネル２０７の操作部２１２を構成するスキャンボタンが押下されると、複合機２０は、スキャナアプリ２０１を起動させる（Ｓ１１）。スキャナアプリ２０１は、起動に応じ、リモート通信部２０４を介して、フロー選択画面の送信を配信管理サーバ１０に要求する（Ｓ１２）。なお、要求の送信先は、サーバ情報記憶部２１０に記憶されている情報に基づいて特定される。
【００５３】
配信管理サーバ１０の画面提供部１１は、フロー選択画面の要求を受信すると、フロー選択画面の画面データを複合機２０に送信する（Ｓ１３）。なお、当該画面データは、フロー定義記憶部１６に記憶されているフロー定義データに基づいて生成される。
【００５４】
複合機２０のリモート通信部２０４が当該画面データを受信すると、表示制御部２０５は、当該画面データに基づいて、フロー選択画面をオペレーションパネル２０７の表示部２１１に表示させる。
【００５５】
図８は、フロー選択画面の表示例を示す図である。図８に示されるように、フロー選択画面７１０は、ワークフローごと（フロー定義データごと）にボタンを含む。各ボタンには、対応するワークフローのフローＩＤが対応付けられている。
【００５６】
入力制御部２０６が、フロー選択画面７１０におけるいずれかのボタンの押下を検知すると（Ｓ１４）、リモート通信部２０４は押下されたボタンに対応付けられているフローＩＤを、配信管理サーバ１０に送信する（Ｓ１５）。
【００５７】
配信管理サーバ１０において、画面提供部１１によってフローＩＤが受信されると、フロー実行制御部１３は、当該フローＩＤに係るフロー定義データ（以下、「対象フロー定義データ」という。）をフロー定義記憶部１６より検索する（Ｓ１６）。続いて、フロー実行制御部１３は、検索された対象フロー定義データに画面定義データが対応付けられているか否かを判定する。画面定義データの対応付けの有無、及び対応付けられている画面定義データは、対象フロー定義データのＬｉｎｋｅｄＰｒｏｐｅｒｔｙＳｃｒｅｅｎ要素を参照することにより判定可能である。すなわち、当該要素が対象フロー定義データに含まれていれば、対象フロー定義データには、画面定義データが対応付けられていることになる。また、当該要素の値が、対象フロー定義データに対応付けられている画面定義データの識別情報ということになる。なお、画面定義データについても、対象フロー定義データと同様、ＸＭＬ形式によって記述されてもよいし、他の形式によって記述されてもよい。
【００５８】
画面定義データが対応付けられている場合、フロー実行制御部１３は、当該画面定義データを画面定義記憶部１７より検索する（Ｓ１７）。続いて、画面提供部１１は、検索された画面定義データを複合機２０に送信する（Ｓ１８）。
【００５９】
当該画面定義データは、複合機２０のリモート通信部２０４によって受信される。表示制御部２０５は、当該画面定義データに基づいて、ワークフローに対するパラメータの設定値を入力させるための画面（以下、「パラメータ入力画面」という。）をオペレーションパネル２０７の表示部２１１に表示させる（Ｓ１９）。なお、パラメータは、ワークフローごとに異なりうる。例えば、配信先のアドレス情報がパラメータとされてもよい。但し、特定の配信先にデータが配信されるワークフローについては、対象フロー定義データ内に、配信先のアドレス情報が固定的に記述されていてもよい。
【００６０】
入力制御部２０６は、パラメータ入力画面を介して、パラメータに対する設定値の入力をユーザより受け付ける（Ｓ２０）。続いて、スキャナアプリ２０１は、制御部２０３を介してスキャナエンジン２０８を動作させ、ユーザによってセットされている原稿のスキャンを実行する（Ｓ２１）。続いて、リモート通信部２０４は、ステップＳ１４において選択されたフローＩＤと、スキャンされた画像データ（以下、「スキャン画像」という。）と、入力された設定値とを配信管理サーバ１０に送信する（Ｓ２２）。
【００６１】
配信管理サーバ１０において、フローＩＤ、スキャン画像、及び設定値がジョブ投入部１２によって受信されると、ジョブ投入部１２は、受信されたフローＩＤ、スキャン画像、及び設定値等を含むジョブ情報をジョブキュー１５に記憶する（Ｓ２３）。
【００６２】
フロー実行制御部１３は、例えば、定期的にジョブキュー１５を参照し、ジョブキュー１５にジョブ情報が記憶されていると、当該ジョブ情報をジョブキュー１５より取り出す（Ｓ２４）。続いて、フロー実行制御部１３は、ジョブ情報に含まれている設定値を、対象フロー定義データの複製に適用する（Ｓ２５）。対象フロー定義データは、ジョブ情報に含まれているフローＩＤによって特定可能である。
【００６３】
ステップＳ２５では、例えば、図５における符号４０１〜４０６に係る部分のように、中括弧（｛｝）で囲まれた部分が、設定値によって置換される。なお、処理対象とされるのは、対象フロー定義データの複製であるが、当該複製について、以下においては、便宜上、対象フロー定義データという。
【００６４】
続いて、フロー実行制御部１３は、設定値が適用された対象フロー定義データに基づいて、ジョブ情報に含まれているスキャン画像に関して、ワークフローの実行を制御する。具体的には、対象フロー定義データに中間処理が定義されている場合には、当該中間処理に係るＰｌｕｇｉｎ要素に対応する処理部１４に当該中間処理を実行させる（Ｓ２６）。また、フロー実行制御部１３は、フロー定義データに定義されている出力処理を処理部１４に実行させる（Ｓ２７）。
【００６５】
より詳しくは、対象フロー定義データに定義されている実行順において、最初の処理単位に係る処理部１４に対しては、受信されるスキャン画像が入力される。或る処理単位Ａの後に、直列的な順序関係を有する別の処理単位Ｂが有れば、フロー実行制御部１３は、処理単位Ａの処理結果として出力されたデータを、処理単位Ｂに入力する。各処理単位に対するパラメータは、各処理単位に対応するＰｌｕｇｉｎ要素内のＰａｒａｍｅｔｅｒｓ要素に基づいて特定される。以上の結果、対象フロー定義データの定義通りの順番で処理単位が実行される。また、出力処理によって、ファイルサーバ３０、ＥＤＭＳ４０、又はＳＭＴＰサーバ５０等に対して、データが配信される。
【００６６】
続いて、各処理部１４が実行する処理単位の処理手順について説明する。図９は、各処理単位に共通の処理手順の一例を説明するためのフローチャートである。
【００６７】
ステップＳ１０１において、処理の順番が回ってきた処理部１４は、フロー実行制御部１３より処理の実行要求を受け付ける。当該実行要求には、処理対象のデータ、設定値、及びジョブチケット等が含まれている。処理対象のデータは、当該処理部１４が、ワークフローの実行順において先頭の処理単位に係る処理部１４であれば、スキャン画像である。当該処理部１４が、ワークフローの実行順において２番目以降の処理単位に係る処理部１４であれば、前段の処理単位において出力されたデータである。設定値は、対象フロー定義データにおいて、当該処理部１４に係る処理単位に対応するＰｌｕｇｉｎ要素内のＰａｒａｍｅｔｅｒｓ要素に含まれている値である。
【００６８】
ジョブチケットとは、ワークフローの実行単位ごと（ジョブごと）に生成され、ワークフローを構成する各処理単位に係る処理部１４に対して順番に渡されるデータである。したがって、同一のジョブにおいて処理を実行する各処理部１４には、同一のジョブチケットが、フロー実行制御部１３より渡されることになる。フロー実行制御部１３は、ワークフローの開始時に、ジョブチケットを生成し、当該ジョブチケットを、各処理単位に係る処理部１４に対して順番に、実行要求と共に入力する。但し、ジョブチケットが、各処理部１４から参照可能な場所（例えば、ファイル等）に記憶されるのであれば、各処理部１４に対しては、ジョブチケットの識別情報（例えば、ファイル名等）が入力されるようにしてもよい。
【００６９】
続いて、処理部１４は、当該処理部１４に固有の処理を実行する。例えば、画像変換処理、又はメール送信処理等が実行される（Ｓ１０２）。この際ジョブチケットに対して、当該処理部１４の実行した処理に関する情報等が記録される。続いて、処理部１４は、ステップＳ１０２における実行結果と、ジョブチケットとを、フロー実行制御部１３に返却する（Ｓ１０３）。
【００７０】
ワークフローを構成する各処理単位に係る処理部１４が、順番に図９に示される処理を実行することにより、ジョブチケットには、各処理部１４による処理情報の履歴が記録されることになる。その結果、各処理部１４は、当該処理部１４に係る処理単位より前の処理単位（以下、「前段の処理単位」という。）において実行された処理を知ることができる。したがって、各処理部１４は、前段の処理単位によって実行された処理に応じて、自らの処理内容を変化させることが可能となる。
【００７１】
例えば、図１０に示されるワークフローを例として説明する。図１０は、ジョブチケットを説明するためのワークフローの一例を模式的に示す図である。
【００７２】
図１０に示されるワークフローでは、最初に、ノイズ除去処理を実行する処理部１４が、フロー実行制御部１３によって呼び出される。当該処理部１４にはスキャン画像と、ジョブチケットとが入力される。当該処理部１４は、スキャン画像に対してノイズ除去処理を実行すると共に、当該処理部１４による処理情報等をジョブチケットに記録する。当該処理部１４は、ノイズ除去処理されたスキャン画像とジョブチケットとをフロー実行制御部１３に返却する。
【００７３】
続いて、テキスト付きＰＤＦ生成処理を実行する処理部１４が、フロー実行制御部１３によって呼び出される。当該処理部１４には、ノイズ除去処理されたスキャン画像と、ジョブチケットとが入力される。当該処理部１４は、ノイズ除去処理されたスキャン画像に対してＯＣＲ処理を実行し、テキストデータを抽出する。また、当該処理部１４は、スキャン画像をＰＤＦデータに変換する。また、当該処理部１４は、テキストデータをＰＤＦデータに埋め込んで、テキスト付きＰＤＦデータを生成する。更に、当該処理部１４は、当該処理部１４による処理情報等をジョブチケットに記録する。当該処理部１４は、テキスト付きＰＤＦデータとジョブチケットとをフロー実行制御部１３に返却する。
【００７４】
続いて、電子メール送信処理を実行する処理部１４が、フロー実行制御部１３によって呼び出される。当該処理部１４には、テキスト付きＰＤＦデータとジョブチケットとが入力される。当該処理部１４は、テキスト付きＰＤＦデータが添付された電子メールを所定の宛先に対して送信する。また、当該処理部１４は、ジョブチケットに対して当該処理部１４による処理情報等をジョブチケットに記録する。当該処理部１４は、電子メールの送信結果と、ジョブチケットとをフロー実行制御部１３に返却する。
【００７５】
フロー実行制御部１３は、ジョブチケットを、ワークフローの実行履歴のログ情報として、補助記憶装置１０２等に記憶してもよい。また、ジョブチケットは、処理部１４間による処理の重複を回避するためのデータとして用いることも可能である。例えば、図１０に示されるワークフローにおいて、最初にノイズ除去処理が実行されるように定義されているのは、２番目の処理単位であるテキスト付きＰＤＦデータ生成処理におけるＯＣＲの抽出精度を高めるためである。一方で、テキスト付きＰＤＦデータ生成処理に係る処理部１４にも、ＰＤＦデータ生成処理の独立性を確保すべく、ＯＣＲの抽出精度を高めるためにノイズ除去処理が実装されているとする。このような事情を知らないユーザは、テキスト付きＰＤＦデータ生成処理の前に、ノイズ除去処理が実行されるよう、図１０に示されるようなワークフローが定義する可能性が考えられる。そこで、テキスト付きＰＤＦデータ生成処理を実行する処理部１４は、図９のステップＳ１０２において、例えば、図１１に示されるような処理を実行する。
【００７６】
図１１は、テキスト付きＰＤＦデータ生成処理を実行する処理部による処理手順の一例を説明するためのフローチャートである。以下の説明において、図１０に示されるワークフローの２番目の処理単位であるＰＤＦデータ生成処理を実行する処理部１４を、「処理部１４ｂ」という。また、１番目の処理単位であるノイズ除去処理を実行する処理部１４を「処理部１４ａ」という。また、３番目の処理単位である電子メール送信処理を実行する処理部１４を「処理部１４ｃ」という。
【００７７】
ステップＳ２０１において、処理部１４ｂは、ジョブチケットを参照して、ノイズ除去処理の要否を判定する。
【００７８】
図１２は、１番目の処理単位の実行後のジョブチケットの例を示す図である。すなわち、図１２は、フロー実行制御部１３より処理部１４ｂに対して実行要求が入力された時点でのジョブチケット５０００の状態を示す。なお、本実施の形態では、ジョブチケットがＸＭＬ形式である例を示すが、他の形式によってジョブチケットが実現されてもよい。
【００７９】
ジョブチケット５０００は、ＪｏｂＴｉｃｋｅｔ要素をルート要素とする。ＪｏｂＴｉｃｋｅｔ要素は、ＪｏｂＩｎｆｏ要素５１００及びＦｌｏｗＳｔａｔｕｓ要素５２００を子要素として含む。
【００８０】
ＪｏｂＩｎｆｏ要素は、ジョブの属性情報を含む要素であり、ＪｏｂＩＤ要素、Ｏｗｎｅｒ要素、及びＣｒｅａｔｅＤａｔｅ要素等を子要素として含む。ＪｏｂＩＤ要素の値は、ジョブごとの識別情報を示す。Ｏｗｎｅｒ要素の値は、ジョブの実行者（例えば、複合機２０の操作者）のユーザ名を示す。ＣｒｅａｔｅＤａｔｅ要素の値は、ジョブの実行日を示す。なお、ＪｏｂＩｎｆｏ要素は、及びその親要素であるＪｏｂＴｉｃｋｅｔ要素は、例えば、ジョブの開始時に、フロー実行制御部１３によって記録される。
【００８１】
ＦｌｏｗＳｔａｔｕｓ要素５２００は、ワークフローを構成する処理単位ごとに、処理の実行状態等を示す要素であり、処理単位ごとに、Ｐｌｕｇｉｎ要素を子要素として含む。図１２では、Ｐｌｕｇｉｎ要素５２１０、５２２０、及び５２３０が示されている。これらは順に、図１０のワークフローにおける処理単位ａ、処理単位ｂ、処理単位ｃに対応する。
【００８２】
各Ｐｌｕｇｉｎ要素は、ＰｌｕｇｉｎＩｎｆｏ要素及びＰａｒａｍｅｔｅｒｓ要素等を子要素として含む。ＰｌｕｇｉｎＩｎｆｏ要素は、処理単位の処理内容及び処理状態を示す要素であり、ＰｌｕｇｉｎＩＤ要素及びＳｔａｔｕｓ要素を子要素として含む。ＰｌｕｇｉｎＩＤ要素の値は、当該Ｐｌｕｇｉｎ要素に対応する処理単位のプラグインＩＤである。Ｓｔａｔｕｓ要素の値は、当該処理単位の実行状態である。例えば、図１２では、１番目の処理単位ａに対応するＰｌｕｇｉｎＩｎｆｏ要素５２１１内のＳｔａｔｕｓ要素の値は、処理の成功を示す「Ｓｕｃｃｅｓｓ」となっている。一方、２番目の処理単位ｂに対応するＰｌｕｇｉｎＩｎｆｏ要素５２２１内のＳｔａｔｕｓ要素の値は、処理待ち又は未処理であることを示す「Ｗａｉｔｎｇ」となっている。３番目の処理単位ｃに対応するＰｌｕｇｉｎＩｎｆｏ要素５２３１内のＳｔａｔｕｓ要素の値も、処理待ち又は未処理であることを示す「Ｗａｉｔｎｇ」となっている。
【００８３】
Ｐａｒａｍｅｔｅｓ要素は、処理単位が有するパラメータごとに、当該パラメータに対して設定された値を示す子要素を含む。
【００８４】
なお、各Ｐｌｕｇｉｎ要素、及び各Ｐｌｕｇｉｎ要素内のＰｌｕｇｉｎＩｎｆｏ要素及びＰａｒａｍｅｔｅｓ要素は、例えば、ジョブの開始時に、フロー実行制御部１３によって記録される。但し、各ＰｌｕｇｉｎＩｎｆｏ要素内のＳｔａｔｕｓ要素の値は、「Ｗａｉｔｉｎｇ」が初期値として記録される。Ｓｔａｔｕｓ要素は、処理単位を実行した処理部１４によって、図９のステップＳ１０２において更新される。但し、処理部１４から処理結果を受けたフロー実行制御部１３によって、Ｓｔａｔｕｓ要素の値が更新されてもよい。
【００８５】
また、処理が完了した処理単位に対応するＰｌｕｇｉｎ要素は、Ｌｏｇ要素を子要素として含む。Ｌｏｇ要素は、処理単位の実行履歴を示す情報であり、実行された処理に対応する要素を子要素として含む。例えば、１番目の処理単位ａに対応するＰｌｕｇｉｎ要素５２１０は、Ｌｏｇ要素５２１３を含む。Ｌｏｇ要素５２１３には、ノイズ除去に対応するＤｅｎｏｉｓｉｎｇ要素と、パンチ穴除去に対応するＰｕｎｃｈＨｏｌｅＲｅｍｏｖａｌ要素が子要素として含まれている。また、Ｄｅｎｏｉｓｉｎｇ要素及びＰｕｎｃｈＨｏｌｅＲｅｍｏｖａｌ要素の値は、それぞれ、実行されたことを示す「Ｄｏｎｅ」である。したがって、当該処理単位においては、ノイズ除去とパンチ穴除去とが実行されたことが分かる。なお、Ｌｏｇ要素は、例えば、処理単位を実行した処理部１４によって、図９のステップＳ１０２において記録される。
【００８６】
２番目の処理単位ｂ及び３番目の処理単位ｃは、まだ実行されていない。したがって、Ｐｌｕｇｉｎ要素５２２０及び５２３０は、Ｌｏｇ要素を含まない。
【００８７】
ステップＳ２０１において、処理部１４ｂは、ジョブチケットにおいて、処理部１４ｂが実行する処理単位より前の処理単位に関して「ＪｏｂＴｉｃｋｅｔ／ＦｌｏｗＳｔａｔｕｓ／Ｐｌｕｇｉｎ／Ｌｏｇ／Ｄｅｎｏｉｓｉｎｇ」要素が記録されており、その値が、「Ｄｏｎｅ」であるか否かを確認する。なお、「ＪｏｂＴｉｃｋｅｔ／ＦｌｏｗＳｔａｔｕｓ／Ｐｌｕｇｉｎ／Ｌｏｇ／Ｄｅｎｏｉｓｉｎｇ」は、ジョブチケットにおける要素間の親子関係をパスによって表現したものである。
【００８８】
該当する要素がジョブチケット内に記録されていない場合、又は該当する要素の値が「Ｄｏｎｅ」でない場合（Ｓ２０１でＮｏ）、処理部１４ｂは、入力されたスキャン画像に対して、ノイズ除去処理を実行する（Ｓ２０２）。続いて、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素に対してＬｏｇ要素を追加する。処理部１４ｂは、当該Ｌｏｇ要素に対してノイズ除去を実行したことを記録する（Ｓ２０３）。例えば、当該Ｌｏｇ要素内に、＜Ｄｅｎｏｉｓｉｎｇ＞Ｄｏｎｅ＜／Ｄｅｎｏｉｓｉｎｇ＞が記録される。
【００８９】
一方、ステップＳ２０１において、該当する要素がジョブチケット内に記録されており、当該要素の値が「Ｄｏｎｅ」である場合（Ｓ２０１でＹｅｓ）、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素に対してＬｏｇ要素を追加する。処理部１４ｂは、当該Ｌｏｇ要素に対してノイズ除去を実行しなかったことを記録する（Ｓ２０４）。例えば、当該Ｌｏｇ要素内に、＜Ｄｅｎｏｉｓｉｎｇ＞Ｓｋｉｐｐｅｄ＜／Ｄｅｎｏｉｓｉｎｇ＞が記録される。すなわち、処理部１４ｂは、自らが実行する処理単位よりも前の処理単位において、ノイズ除去が実行されている場合に、ノイズ除去を省略する。
【００９０】
続いて、処理部１４ｂは、ジョブチケットにおいて、処理部１４ｂが実行する処理単位より前の処理単位に関して「ＪｏｂＴｉｃｋｅｔ／ＦｌｏｗＳｔａｔｕｓ／Ｐｌｕｇｉｎ／Ｌｏｇ／ＰｕｎｃｈＨｏｋｅＲｅｍｏｖａｌ」要素が記録されており、その値が、「Ｄｏｎｅ」であるか否かを確認する。
【００９１】
該当する要素がジョブチケット内に記録されていない場合、又は該当する要素の値が「Ｄｏｎｅ」でない場合（Ｓ２０５でＮｏ）、処理部１４ｂは、スキャン画像に対して、パンチ穴除去処理を実行する（Ｓ２０６）。続いて、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素内のＬｏｇ要素に対してパンチ穴除去を実行したことを記録する（Ｓ２０７）。例えば、当該Ｌｏｇ要素内に、＜ＰｕｎｃｈＨｏｋｅＲｅｍｏｖａｌ＞Ｄｏｎｅ＜／ＰｕｎｃｈＨｏｋｅＲｅｍｏｖａｌ＞が記録される。
【００９２】
一方、ステップＳ２０５において、該当する要素がジョブチケット内に記録されており、当該要素の値が「Ｄｏｎｅ」である場合（Ｓ２０５でＹｅｓ）、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素内のＬｏｇ要素に対してパンチ穴除去を実行しなかったことを記録する（Ｓ２０８）。例えば、当該Ｌｏｇ要素内に、＜ＰｕｎｃｈＨｏｋｅＲｅｍｏｖａｌ＞Ｓｋｉｐｐｅｄ＜／ＰｕｎｃｈＨｏｋｅＲｅｍｏｖａｌ＞が記録される。すなわち、処理部１４ｂは、自らが実行する処理単位よりも前の処理単位において、パンチ穴除去が実行されている場合に、パンチ穴除去を省略する。
【００９３】
続いて、処理部１４ｂは、スキャン画像に対してＯＣＲ処理を実行し、テキストデータを抽出する（Ｓ２０９）。続いて、処理部１４ｂは、スキャン画像をＰＤＦデータに変換し、当該ＰＤＦデータに対してテキストデータを埋め込む（Ｓ２１０）。続いて、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素内のＬｏｇ要素に対して、ステップＳ２０９〜Ｓ２１０において実行された処理に関する情報を記録する（Ｓ２１１）。続いて、処理部１４ｂは、ジョブチケットにおいて処理部１４ｂに対応するＰｌｕｇｉｎ要素内のＳｔａｔｕｓ要素の値を、処理の成功を示す「Ｓｕｃｃｅｓｓ」に更新する（Ｓ２１２）。
【００９４】
処理部１４ｂの実行後、図１２に示したジョブチケット５０００は、図１３に示されるように更新される。
【００９５】
図１３は、２番目の処理単位の実行後のジョブチケットの例を示す図である。図１３に示されるジョブチケット５０００において、２番目の処理単位に対応するＰｌｕｇｉｎ要素５２２０内のＰｌｕｇｉｎＩｎｆｏ要素５２２１内のＳｔａｔｕｓ要素の値は、「Ｓｕｃｃｅｓｓ」に更新されている。また、Ｐｌｕｇｉｎ要素５２２０には、Ｌｏｇ要素５２２３が新たに追加されている。Ｌｏｇ要素５２２３内において、Ｌａｎｇｕａｇｅ要素の値は、ＯＣＲ処理において抽出対象とされた言語を示す。ＰｄｆＶｅｒｓｉｏｎ要素の値は、生成されたＰＤＦデータのバージョンを示す。ＨｉｇｈＣｏｍｐｒｅｓｓｉｏｎ要素の値が「Ｄｏｎｅ」であることにより、ＰＤＦデータに対して圧縮処理が実行されたことが示されている。Ｄｅｏｉｓｉｎｇ要素の値が「Ｓｋｉｐｐｅｄ」であることにより、ノイズ除去処理が省略されたことが示されている。ＰｕｎｃｈＨｏｌｅＲｅｍｏｖａｌ要素の値が「Ｓｋｉｐｐｅｄ」であることにより、パンチ穴除去処理が省略されたことが示されている。
【００９６】
なお、仮に、テキスト付きＰＤＦデータ生成処理の前に、ノイズ除去処理及びパンチ穴除去処理が実行されないワークフローが定義され、当該ワークフローのジョブが実行された場合、処理部１４ｂは、ノイズ除去処理及びパンチ穴除去処理を実行することになる。
【００９７】
なお、上記では、ジョブチケットにおけるＰｌｕｇｉｎ要素が、フロー実行制御部１３によって記録される例を示した。但し、処理単位を実行した処理部１４によって、Ｐｌｕｇｉｎ要素が追加されるようにしてもよい。この場合、ジョブの開始時におけるジョブチケットは、Ｐｌｕｇｉｎ要素が一つも記録されていない状態となる。ワークフローの進行に応じ、ジョブチケットに対し、Ｐｌｕｇｉｎ要素が追加されていくことになる。
【００９８】
また、図４に示されるワークフローのように、処理の流れが分岐する場合、フロー実行制御部１３は、分岐点において、分岐先ごとに、それまでのジョブチケットの複製を生成し、各分岐先に各複製を入力してもよい。この場合、最終的に出力処理の数だけ、ジョブチケットが生成されることになるが、フロー実行制御部１３は、各出力処理に係る処理部１４から返却されたジョブチケットを統合してもよい。または、フロー実行制御部１３は、各出力処理に係る処理部１４から返却されたジョブチケットを、所定の方法で関連付けて補助記憶装置１０２等に記憶してもよい。
【００９９】
また、上記では、処理部１４ごとのＰｌｕｇｉｎ要素内のＬｏｇ要素内に、当該処理部１４による処理の実行履歴が記録される例を示したが、例えば、複数の処理部１４に影響するような処理については、ＦｌｏｗＳｔａｔｕｓ要素５２００の直下に共通の要素（例えば、「Ｃｏｍｍｏｎ要素」）を設け、当該要素内に、当該処理の実行履歴が記録されるようにしてもよい。すなわち、処理の実行履歴の記録方法は、上記の例に限定されない。
【０１００】
また、上記では、前段の処理単位において重複する処理が実行されている場合に、当該処理が省略される例を示したが、前段の処理単位において或る処理が実行される場合に、別の処理が実行されるようにしてもよい。すなわち、ジョブチケットを参照して行われる処理単位の処理内容の変化は、一部の処理の省略に限られない。
【０１０１】
上述したように、本実施の形態によれば、ワークフローの各処理単位を実行する各処理部１４によって、共通のジョブチケットに対して処理情報が記録される。したがって、各処理部１４は、当該処理部１４よりも前段の処理部１４によって実行された処理を知ることができる。よって、各処理部１４は、当該処理部１４に実装されている処理のうち、既に実行された処理の実行を省略することができる。その結果、ワークフロー全体の処理性能の向上や、処理負荷の低減等を期待することができる。すなわち、処理単位の組み合わせによって実現される処理を効率化することができる。
【０１０２】
続いて、外部連携サーバ６０との連携について説明する。例えば、外部連携サーバ６０が、入力された画像データについてテキスト付きＰＤＦデータを生成する機能を有するとする。この場合、図１０のワークフローにおいて、２番目の処理単位に係る処理部１４ｂは、以下に示すように実装されてもよい。
【０１０３】
図１４は、外部連携サーバとの連携を説明するための図である。フロー実行制御部１３は、他の処理部１４に対する処理手順と同様の処理手順で、処理部１４ｂに対して処理単位の実行要求を入力する（Ｓ３０１）。処理部１４ｂは、外部連携サーバ６０が有するインタフェースに従った手順で、外部連携サーバ６０に対して、スキャン画像の送信や、テキスト付きＰＤＦデータの生成要求等を行う（Ｓ３０２）。外部連携サーバ６０によってテキスト付きＰＤＦデータが生成されると、処理部１４ｂは、当該テキスト付きＰＤＦデータを、外部連携サーバ６０が有するインタフェースに従った手順で、外部連携サーバ６０より受信する（Ｓ３０３）。なお、外部連携サーバ６０が有するインタフェースに従った手順とは、外部連携サーバ６０が公開しているＡＰＩ（Application Program Interface）や、外部連携サーバ６０が利用する通信プロトコル等に従った手順をいう。
【０１０４】
処理部１４ｂは、ジョブチケット内のＬｏｇ要素の追加や、Ｓｔａｔｕｓ要素の更新等を行い、テキスト付きＰＤＦデータと、ジョブチケットとをフロー実行制御部１３に返却する（Ｓ３０４）。ここで、ステップＳ３０１及びＳ３０４は、フロー実行制御部１３と各処理部１４との間で決められているインタフェース及び手順に従って実行される。すなわち、図１４に示される処理部１４ｂは、外部連携サーバ６０のラッパーとして機能することになる。したがって、フロー実行制御部１３に対しては、処理部１４ｂによって、外部連携サーバ６０の存在は、隠蔽される。また、処理部１４ｂは、外部連携サーバ６０が有するインタフェースに従った手順で外部連携サーバ６０を利用するため、外部連携サーバ６０に関して、ワークフローとの連携のための改変の必要性を低減させることができる。
【０１０５】
また、処理部１４ｂは、ジョブチケットを解釈することで、前段の処理部１４においてどのような処理が実行されたのかを把握することで、外部連携サーバ６０への要求の内容を動的に変化させることができる。例えば、ノイズ除去処理等、特定の処理の実行の要否を切り替えることができる。その結果、外部連携サーバ６０においても、重複処理の実行を回避することが可能となり、パフォーマンスの向上や処理負荷の低減等を図ることができる。
【０１０６】
続いて、ジョブ投入部１２の詳細について説明する。図１５は、ジョブ投入部の詳細な構成例を示す図である。本実施の形態におけるジョブ投入部１２は、複合機２０やスキャナ以外を、ワークフローに対するデータの入力元（ワークフローの実行要求元）とすることができる。
【０１０７】
すなわち、ジョブ投入部１２において、データの入力元とのやりとりは、プラグインによって実現される。図１５では、スキャン入力プラグイン１２１、メール入力プラグイン１２２、及びフォルダ入力プラグイン１２３が例示されている。
【０１０８】
スキャン入力プラグイン１２１は、複合機２０よりワークフローの実行要求を受信するプラグインである。すなわち、スキャン入力プラグイン１２１は、図７のステップＳ２２におけるワークフローの実行要求の実行要求を受信する。スキャン入力プラグイン１２１は、受信されたフローＩＤ、スキャン画像、及び設定値等を、フロー実行制御部１３が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー１５に記憶する。
【０１０９】
メール入力プラグイン１２２は、画像データが添付された電子メールによってワークフローの実行要求を受け付けるプラグインである。この場合、当該画像データが、ワークフローの処理対象とされる。電子メールには、フローＩＤや設定値等が記述されてもよい。メール入力プラグイン１２２は、電子メールに添付されている画像データと、電子メールに記述されている情報とを、フロー実行制御部１３が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー１５に記憶する。
【０１１０】
フォルダ入力プラグイン１２３は、所定のフォルダに対する画像データのアップロードによって、ワークフローの実行要求を受け付けるプラグインである。所定のフォルダは、配信管理サーバ１０の補助記憶装置１０２に形成されたフォルダでもよいし、配信管理サーバ１０にネットワークを介して接続される記憶装置に形成されたフォルダでもよい。フォルダ入力プラグイン１２３は、例えば、所定のフォルダをポーリングし、当該フォルダに画像データ、及びフローＩＤや設定値等を格納したファイルが保存されていれば、当該画像データ及びファイルを取得する。フォルダ入力プラグイン１２３は、取得された画像データと、取得されたファイルに格納されている情報とを、フロー実行制御部１３が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー１５に記憶する。
【０１１１】
このように、ジョブ投入部１２は、様々な形態で、ワークフローの実行要求を受け付けることができる。したがって、例えば、携帯電話、スマートフォン、又はデジタルカメラ等で撮像した画像データを、メール送信したり、所定のフォルダにアップロードしたりすることで、当該画像データに関してワークフローを実行させることができる。
【０１１２】
また、他のプラグインを追加することにより、他の形態で実行要求が受け付けられてもよい。例えば、Ｗｅｂページを介してワークフローの実行要求を受け付けるプラグインが追加されてもよい。
【０１１３】
なお、本実施の形態において、配信管理サーバ１０は、情報処理装置又は第一の情報処理装置の一例である。外部連携サーバ６０は、第二の情報処理装置の一例である。配信管理サーバ１０と外部連携サーバ６０とは、情報処理システムの一例である。
【０１１４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１１５】
１            配信管理システム
１０          配信管理サーバ
１１          画面提供部
１２          ジョブ投入部
１３          フロー実行制御部
１４          処理部
１５          ジョブキュー
１６          フロー定義記憶部
１７          画面定義記憶部
２０          複合機
３０          ファイルサーバ
４０          ＥＤＭＳ
５０          ＳＭＴＰサーバ
６０          外部連携サーバ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        スキャン入力プラグイン
１２２        メール入力プラグイン
１２３        フォルダ入力プラグイン
２０１        スキャナアプリ
２０２        プリンタアプリ
２０３        制御部
２０４        リモート通信部
２０５        表示制御部
２０６        入力制御部
２０７        オペレーションパネル
２０８        スキャナエンジン
２０９        プリンタエンジン
２１０        サーバ情報記憶部
２１１          表示部
２１２          操作部
Ｂ            バス
Ｎ１、Ｎ２  ネットワークＮ１
【先行技術文献】
【特許文献】
【０１１６】
【特許文献１】特開２００８−９７５８６号公報
【図１】
2014127066.tif 000003
【図２】
2014127066.tif 000004
【図３】
2014127066.tif 000005
【図４】
2014127066.tif 000006
【図５】
2014127066.tif 000007
【図６】
2014127066.tif 000008
【図７】
2014127066.tif 000009
【図８】
2014127066.tif 000010
【図９】
2014127066.tif 000011
【図１０】
2014127066.tif 000012
【図１１】
2014127066.tif 000013
【図１２】
2014127066.tif 000014
【図１３】
2014127066.tif 000015
【図１４】
2014127066.tif 000016
【図１５】
2014127066.tif 000017