(57)【要約】【課題】定義ファイルを変更することなく、定義ファイルが提供するワークフローの各処理工程に記載された順に、各処理工程に関係する任意のタイミングで拡張されたサービスを利用可能にすること。【解決手段】ＭＦＰ１０２のプロセス定義管理モジュール３２０がプロセス定義ファイル５１０で定義される処理工程を実行する場合、サービス管理モジュール３２１が、該処理工程とサービス管理モジュール３２１に登録されているサービスが関係するか判断し、該処理工程と関係すると判断したサービスを利用するための画面を、ブラウザ３１８に表示させる。ブラウザ３１８は、ユーザ指示に応じてサービスに処理を要求する。サービス管理モジュール３２１は、ブラウザ３１８を介して該サービスの処理結果を受け取り、プロセス定義管理モジュール３２０が、該処理結果を前記処理工程の処理結果として管理する。【選択図】図４
2015233268.tif 000002
【特許請求の範囲】
【請求項１】
一連の処理を実行するために、複数の処理工程を定義する定義ファイルに従う処理を実行する情報処理装置であって、
前記情報処理装置が接続可能なネットワーク上で提供されるサービスについての機能情報を登録する登録手段と、
前記定義ファイルで定義される処理工程を実行する場合に、該処理工程と前記登録手段に登録されている機能情報に対応するサービスが関係するか判断する判断手段と、
前記処理工程と関係すると判断されたサービスを利用するための画面を提供する提供手段と、
前記画面に対するユーザ指示に応じて前記サービスに処理を要求して処理結果を受け取る要求手段と、
前記処理結果を前記処理工程の処理結果として管理する管理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記登録手段に登録されている全てのサービスのそれぞれについての機能情報を取得する取得手段を、さらに有し、
前記判断手段は、前記取得手段により取得された機能情報に基づき処理対象である処理工程と関係するサービスを判断するものであり、
前記判断手段は、該処理対象である処理工程より前に実行された処理工程において、前記登録手段に登録されている全てのサービスについての機能情報が取得されている場合には、該処理対象である処理工程においては、前記取得手段による機能情報の取得が行われることなく、該処理対象である処理工程と関係するサービスを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理工程の工程区分ごとに関係する機能の分類情報を管理する工程定義管理手段を有し、
前記判断手段は、前記工程定義管理手段で管理されている前記処理工程が属する工程区分に関係する機能の分類情報と、前記登録手段に登録されている機能情報で示す分類情報とを比較し、前記処理工程と関係するサービスを判断することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記処理工程の工程区分は、入力工程、編集工程、出力工程の少なくともいずれかを含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記機能の分類情報は、データを取得する機能を示す分類情報、原稿を読み取る機能を示す分類情報、データを前記情報処理装置が備える記憶装置に入力する機能を示す分類情報、データを編集する機能を示す分類情報、データを閲覧する機能を示す分類情報、データを翻訳する機能を示す分類情報、データを共有する機能を示す分類情報、データを保存する機能を示す分類情報、及びデータを印刷する機能を示す分類情報の少なくともいずれかを示すことを特徴とする請求項３又は４に記載の情報処理装置。
【請求項６】
前記要求手段は、前記ネットワーク上のサービスを呼び出すためのウェブインテンツを利用したリクエストを行うことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、画像形成装置であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記管理手段は、前記処理工程の処理結果が、該処理工程を完了できなかったと判断される場合、該完了できなかった処理工程を再度実行するか否かを判断し、再度実行すると判断した場合には、該処理工程を再度実行するように制御することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記管理手段は、前記完了できなかった処理工程を再度実行するか否かをユーザ指示するための画面を提供し、該画面に対するユーザ指示に応じて前記完了できなかった処理工程を再度実行するか否かを判断することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記管理手段は、前記処理工程を再度実行しないと判断した場合には、該処理工程をスキップ可能か否かを判断し、スキップ可能と判断した場合には、該処理工程をスキップするように制御することを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
一連の処理を実行するために、複数の処理工程を定義する定義ファイルに従う処理を実行する情報処理装置の制御方法であって、
前記情報処理装置が接続可能なネットワーク上で提供されるサービスについての機能情報を登録手段に登録する登録ステップと、
前記定義ファイルで定義される処理工程を実行する場合に、該処理工程と前記登録手段に登録されている機能情報に対応するサービスが関係するか判断する判断ステップと、
前記処理工程と関係すると判断されたサービスを利用するための画面を提供する提供ステップと、
前記画面に対するユーザ指示に応じて前記サービスに処理を要求して処理結果を受け取る要求ステップと、
前記処理結果を前記処理工程の処理結果として管理する管理ステップと、
を有することを特徴とする制御方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関するものである。
【背景技術】
【０００２】
従来、複写機にファクシミリ、スキャナ、プリンタ機能を統合した複合機が提案されている。これにより、複写機、ファクシミリなどを使った紙主体の事務処理と、パーソナルコンピュータ（ＰＣ）上で電子化された文書の処理とを連携することができる。
【０００３】
具体的には、紙文書をスキャンしてＰＣに送信したり、ファクシミリで受信した文書をプリントせずにイメージデータのままＰＣに送信したりすることができる。さらには、紙文書、ファクシミリ受信文書が電子化された後、多くの手続きや処理をも連携させ自動化することが望まれる。
【０００４】
このような複合機に対して、各種機能を連係させ、複数の操作や処理を一連の処理フローとして実行させることが提案されている。具体的には、スキャナ等の設定（入力工程）、スキャン後にプレビューを行うかどうかの設定（編集工程）、複合機で印刷をするための設定値の設定（出力工程）の複数の工程の連係内容の設定を、プロセス定義ファイルに設定しておく。そして、このプロセス定義ファイルの設定内容に基づき、順次処理を行うことでワークフローとして連係させることができる画像形成装置が提案されている（特許文献１）。このように、繰り返し呼び出すことが可能なプロセス定義ファイルに基づいてワークフローを実行することで、ユーザの実行時の入力の手間を省くことができ利便性が高まる。
【０００５】
また、近年、アプリケーションやサービスが相互に連携動作する仕組みが携帯電話等に搭載されつつある。従来のアプリケーションやサービスが連携動作する仕組みの具体例としては、Ａｎｄｒｏｉｄ ＯＳに組み込まれているＩｎｔｅｎｔや、一部のＷｅｂブラウザに組み込まれているＷｅｂ Ｉｎｔｅｎｔｓ等があげられる。複合機内にも複数のアプリケーションやサービスが利用できる仕組みが提供され、前述の携帯電話に搭載されているようなアプリケーションやサービスが相互に連携動作するための仕組み（以下、サービス）を提供する画像形成装置が提案されている（特許文献２参照）。このように、サービスを利用できる仕組みを提供することで、任意のタイミングで利用可能な処理を拡張でき、ユーザの利便性が高まる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２８７８６１号公報
【特許文献２】特開２０１０−９５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述した従来のプロセス定義ファイルが提供するワークフローは、プロセス定義ファイルに記載されているサービスを、記載された順に順次処理を呼び出すことしかできない。そのため、拡張されたサービスを利用することができない。また、このようなサービスを利用するようにするためには、新たなサービスが登録されるたびにプロセル定義ファイルを変更しなければならないため、煩雑であった。なお、上述のワークフローは情報処理装置においても実行可能であり、情報処理装置においても同様の問題が存在する。
【０００８】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、プロセス定義ファイルを変更することなく、プロセス定義ファイルに記載された順に、プロセス定義ファイルに記載されているサービスだけでなく、各処理工程に関係する拡張されたサービスを利用可能にする仕組みを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、一連の処理を実行するために、複数の処理工程を定義する定義ファイルに従う処理を実行する情報処理装置であって、前記情報処理装置が接続可能なネットワーク上で提供されるサービスについての機能情報を登録する登録手段と、前記定義ファイルで定義される処理工程を実行する場合に、該処理工程と前記登録手段に登録されている機能情報に対応するサービスが関係するか判断する判断手段と、前記処理工程と関係すると判断されたサービスを利用するための画面を提供する提供手段と、前記画面に対するユーザ指示に応じて前記サービスに処理を要求して処理結果を受け取る要求手段と、前記処理結果を前記処理工程の処理結果として管理する管理手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、定義ファイルを変更することなく、定義ファイルが提供するワークフローの各処理工程に記載された順に、定義ファイルに記載されているサービスだけでなく、各処理工程に関係する拡張されたサービスを利用可能にし、ユーザの利便性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を示す画像処理システムの全体構成を例示する図
【図２】ＭＦＰの構成を例示するブロック図
【図３】管理者ＰＣのハードウェア構成を例示するブロック図
【図４】ＭＦＰのソフトウェア構成を例示する図
【図５】画像処理システムの全体の動作を概念的に説明する図
【図６】プロセス定義ファイルの具体的な記述例を示す図
【図７】プロセス定義ファイルで定義された一連のワークフローの各処理をの繋がりを概念的に表す図
【図８】プロセス定義ファイルで定義されたワークフローを実行する際に表示される操作画面を例示する図
【図９】任意なタイミングでサービスが追加されて利用可能になるまでの概念を示すイメージ図
【図１０】サービスを利用する際にブラウザに表示される画面のイメージ図
【図１１】完了管理部が完了通知を管理するテーブルのイメージ図
【図１２】完了管理部が前工程の処理結果を管理するテーブルのイメージ図
【図１３】プロセス定義管理部が管理するテーブルのイメージ図
【図１４】機能管理部が装置能力（機能）を管理するテーブルのイメージ図
【図１５】サービス管理部が管理するテーブルのイメージ図
【図１６】工程定義管理部が管理するテーブルのイメージ図
【図１７】実施例１の処理を例示するフローチャート
【図１８】入力工程に関係するサービスを利用する際に表示される画面のイメージ図
【図１９】編集工程に関係するサービスを利用する際に表示される画面のイメージ図
【図２０】実施例２の処理を例示するフローチャート
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【実施例１】
【００１３】
図１は、本発明の一実施例を示す画像処理システムの全体構成を例示する図である。
図１に示すように、本実施例の画像処理システムでは、ＬＡＮ等のネットワーク１１０に、管理者ＰＣ１０１、ＭＦＰ１０２、及びユーザＰＣ１０４が互いに通信可能に接続されている。なお、ＰＣはパーソナルコンピュータを示し、ＭＦＰは複合機（Multifunction Peripheral）を示す。
【００１４】
図２は、ＭＦＰ１０２の構成を例示するブロック図である。
ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０２全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ（ハードディスクドライブ）２１４は、画像データや各種プログラムを記憶する。なお、ＳＳＤ（Solid State Drive）等の他の記憶装置を備えていてもよい。
【００１５】
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データは、プリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。
【００１６】
ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０２）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上の外部装置（例えばユーザＰＣ１０４）に画像データを送信する。
【００１７】
図３は、管理者ＰＣ１０１のハードウェア構成を例示するブロック図である。なお、ユーザＰＣ１０４は、管理者ＰＣ１０１と同様の構成を有しているため、ここで合わせて説明する。
【００１８】
ＣＰＵ４１１を含む制御部４１０は、管理者ＰＣ１０１全体の動作を制御する。ＣＰＵ４１１は、ＲＯＭ４１２やＨＤＤ４１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ４１３は、ＣＰＵ４１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ４１４は、画像データや各種プログラム、或いは後述する各種情報テーブルを記憶する。なお、ＳＳＤ（Solid State Drive）等の他の記憶装置を備えていてもよい。
【００１９】
表示部Ｉ／Ｆ４１５は、表示部４１８と制御部４１０とを接続する。キーボードＩ／Ｆ４１６は、キーボード４１９と制御部４１０とを接続する。ＣＰＵ４１１は、キーボード４１９を介したユーザからの指示を認識し、認識した指示に応じて表示部４１８に表示する画面を遷移させる。ネットワークＩ／Ｆ４１７は、制御部４１０（管理者ＰＣ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ４１７は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
【００２０】
図４は、ＭＦＰ１０２のソフトウェア構成を例示する図である。
図４に示すように、ＭＦＰ１０２のソフトウェア構成は、プロセス定義管理モジュール３２０、サービス管理モジュール３２１及びブラウザ３１８を有する。
プロセス定義管理モジュール３２０、サービス管理モジュール３２１及びブラウザ３１８の機能は、ＭＦＰ１０２のＲＯＭ２１２に格納された各制御プログラムをＣＰＵ２１１が実行することにより実現されるものである。なお、各モジュールの詳細は後述する。
【００２１】
以下、本発明の詳細を説明する前に、従来から実施されているワークフローによる一連の処理について説明する。
＜従来から実施されているワークフローによる一連の処理を順次実行する概念＞
まず、図５、図６、図７及び図８を用いて、ワークフローによる一連の処理を順次実行するためのプロセス定義ファイル５１０による画像処理システムの全体の動作を概念的に説明する。
【００２２】
図５は、画像処理システムの全体の動作を概念的に説明する図である。
初めに、図５に示すように、ユーザは管理者ＰＣ１０１を操作して、プロセス定義ファイル５１０（図６）を作成する。プロセス定義ファイル５１０には、ＭＦＰ１０２が備える複数の機能を利用して一連の処理を順次実行するための定義が記述される。一連の処理を順次実行するための定義をプロセス定義ファイル５１０に記述しておき、ワークフローとして繰り返し呼び出すことが可能であり、入力の手間を省くことが可能となる。なお、プロセス定義ファイル５１０は、スキャナで読み込んだ画像データをプレビューしてからプリントする一連の処理が定義されているものとする。また、プロセス定義ファイル５１０は、後述のプロセス定義ファイル管理部３０１（図４）が保有するものと同等である。
【００２３】
ユーザは、管理者ＰＣ１０１に表示されるプロセス定義ファイル作成画面を介して様々な処理内容（原稿読み込み時のカラーモード、解像度や、印刷時の印刷部数など）を入力する。プロセス定義ファイル５１０の作成が完了すると、作成されたプロセス定義ファイル５１０は、後述のＬＡＮ１１０を介して後述のＭＦＰ１０２に送信される。その後、ユーザが、ＭＦＰ１０２において、プロセス定義ファイル５１０の実行をすることで、ＭＦＰ１０２でプロセス定義ファイル５１０に記載されている内容の処理を順次行い、スキャン、プレビュー及びプリントを行う。
【００２４】
図６は、ＭＦＰ１０２に送信されるプロセス定義ファイル５１０の具体的な記述例を示す図である。なお、プロセス定義ファイル５１０は、一連の処理を実行するために、複数の処理工程と、処理工程内で実行されるサービスを定義するものである。ここでは、ＸＭＬの形式でプロセス定義ファイル５１０が記述された例を示すが、他の形式でプロセス定義ファイル５１０を記述するようにしても構わない。
【００２５】
タグ６０１（Ｐｒｏｃｅｓｓタグ）は、本ファイルがプロセス定義ファイル５１０であることを定義している。プロセス定義ファイル５１０に関する各項目は、Ｐｒｏｃｅｓｓタグの子要素として記述される。Ｐｒｏｃｅｓｓタグの属性には、プロセス定義ファイル５１０を一意に示すｉｄ（"５０１"）、印刷に関連づいたｔｙｐｅ（"Ｐｒｉｎｔ"）、プロセスのｎａｍｅ（"スキャンして印刷"）が定義されている。
【００２６】
タグ６０２（Ｗｏｒｋｆｌｏｗタグ）は、プロセス定義ファイル５１０で実行する一連のワークフローを定義している。ワークフローを構成するための処理は、Ｗｏｒｋｆｌｏｗタグの子要素として記述される。
【００２７】
タグ６０３，６０６，６０７（Ｆｕｎｃｔｉｏｎ ｔｙｐｅタグ）は、ワークフローを構成するための、工程の種類を定義する。タグ６０３では、入力工程（"Ｉｎｐｕｔ"）としてスキャンを行うことを定義している。
タグ６０４（Ｊｏｂ ｔｙｐｅタグ）は、工程内で実施されるサービスを定義する。タグ６０４では、スキャンというサービスを実行することが定義される。
タグ６０５（Ｉｔｅｍ ｔｙｐｅタグ）は、サービスを実行するための属性を定義する。タグ６０５では、スキャンデータのカラーモード（自動カラー選択）が指定されている。
タグ６０６は、工程が編集工程（Ｅｄｉｔ）であり、実行されるサービスがプレビューであり、さらに、プレビューを必ず実行すること（Ｉｔｅｍ ｔｙｐｅがＹｅｓ）が定義されている。
タグ６０７は、工程が出力工程（Ｏｕｔｐｕｔ）であり、サービスが"印刷"であり、さらに印刷の部数が５枚であることが定義されている。
【００２８】
図７は、図６で示したプロセス定義ファイル５１０のＷｏｒｋｆｌｏｗタグで定義された一連のワークフローの、各処理の繋がりを概念的に表す図である。
Ｗｏｒｋｆｌｏｗ（７０２）では、スキャンデータを読み込み（７０３）、プレビューをし（７０４）、プリントを実行する（７０５）という一連の処理が定義されている。Ｗｏｒｋｆｌｏｗタグで定義された工程は、後述のプロセス定義管理部３０７（図４）が管理する入力工程、編集工程、出力工程の設定定義、及び、設定定義値と同等である。
【００２９】
図８は、図６で示したプロセス定義ファイル５１０のＷｏｒｋｆｌｏｗタグで定義されたワークフローを実行した際に、操作部２１９に表示されるユーザ操作画面を例示するイメージ図である。
【００３０】
８０１および８０６は、後述のプロセス定義管理部３０７で管理されるワークフローの一覧選択のためのトップメニューである。それぞれのワークフローは、プロセス定義ファイル５１０に定義されたものであり、図５に示す構成によってＰＣから登録されたものであり、複数のプロセス定義ファイルがプロセス定義管理部３０７によって管理される。
【００３１】
８０１において、ユーザによって、"スキャンして印刷"ボタンが押下されることにより、該当するプロセス定義ファイル５１０のワークフローの処理が開始される。ワークフローの処理が開始されると、入力工程であるスキャン（タグ６０３内）に関連づく設定入力画面の表示イメージ（８０２）、編集工程であるプレビュー（タグ６０６内）に関連づくプレビュー画面の表示イメージ（８０３）、出力工程であるプリント（タグ６０７内）に関連づく設定入力画面の表示イメージ（８０４）が順次表示される。そして、プリントジョブを投入する前のステップ（タグ６０７）に関連づく画面の表示イメージ（８０４）の"次へ"ボタンがユーザにより押下されることによって、プリントジョブの投入が開始された後にトップメニュー８０６が再び表示される。
【００３２】
＜従来から実施されている、任意なタイミングでＭＦＰ１０２にサービスが追加されることの概念＞
図９を用いて、任意なタイミングでＭＦＰ１０２にサービスが追加され、ＭＦＰ１０２で利用可能になる状態までの管理者ＰＣ及びＭＦＰの処理フローを概念的に説明する。
【００３３】
まず初めに、図９に示すように、ユーザは管理者ＰＣ１０１上で利用可能なブラウザ１７０２を操作して、サービス管理モジュール３２１が提供する利用可能なサービスの情報を登録するためのエンドポイントにアクセス（１７００）して、必要な情報を登録する。
【００３４】
登録する情報とは、提供されるサービス名称、サービスのエンドポイント（ＵＲＩ）、サービスが提供する複数の処理の種類（アクションと称される）等があげられる。
以上が登録に関する流れとなる。
次に、ユーザは、登録されたフワークフローを実行するために、ブラウザ３１８を利用してサービス管理モジュール３２１が提供する、「利用可能なサービスを利用するためのエンドポイント」にアクセス（１７０１）する。該アクセスにより、ブラウザ３１８に、利用可能なサービスの一覧の選択肢が表示され（例えば図１０）、ユーザは一覧から利用したいサービスを選択し、利用することができる。
【００３５】
図１０は、ブラウザ３１８に表示される、利用可能なサービスの一覧からサービスを選択するための画面、及びサービスを選択した後にサービスの実行に関する画面を示した例である。
ブラウザ３１８に、利用可能なサービスの一覧の選択肢（１８０１）が表示され、ユーザが、複数の選択肢の中から、利用するサービスを選択する。例えば、ユーザによって"簡単スキャン"が選択されると、該当するサービスのトップページの認証情報を入力するためのログイン画面（１８０２）がブラウザ３１８に表示される。該画面１８０２から、ユーザによって認証情報が入力された後、"ＯＫ"が押下されると、スキャンパラメータを設定するためのスキャン設定画面（１８０３）がブラウザ３１８に表示される。さらに、ユーザによってスキャン設定画面（１８０３）上の"確定"ボタンが押下されることにより、選択されたサービスの処理、"簡単スキャン"が実行される。
【００３６】
次に、本実施例に係る構成について説明する。
上述の図５〜図８に示したように、従来から、ＭＦＰ上で、複数の処理工程（入力工程、編集工程、出力工程）について、利用するＭＦＰ内のサービス、及びワークフローを定義したプロセス定義ファイルを用いて、ワークフローを実現する仕組みが存在する。本実施例では、各処理工程で、ＭＦＰ内のサービス以外にも、各処理工程に関係する外部のウェブサービス（ＭＦＰが接続可能なネットワーク上で提供されるサービス）を、例えばＷｅｂ Ｉｎｔｅｎｔｓといった連携の仕組みを利用して提供し、ユーザの利便性を向上させる仕組みを提供する。
【００３７】
まず、図４のプロセス定義管理モジュール３２０の構成内容を説明する。
プロセス定義ファイル管理部３０１は、管理者ＰＣ１０１から受信したプロセス定義ファイルやＭＦＰ１０２で作成した複数のプロセス定義ファイルを管理する。さらに、プロセス定義ファイル管理部３０１は、プロセス定義ファイルにかかる処理を実行する。具体的には、プロセス定義ファイル管理部３０１は、プロセス定義ファイルに記載された処理工程（例えば図６に示した各処理工程）を順次実行する。さらに、プロセス定義ファイル５１０に記載されたデータを初期値として、操作部２１９などの表示部に対して表示するよう制御する。
【００３８】
受信部３０３は、サービスの処理の完了通知を操作部２１９から受信し、該受信した完了通知を完了管理部３０４に渡す。完了管理部３０４は、図１１に示すように、受信部３０３から渡された工程毎の処理の完了通知を管理する。
図１１は、完了管理部３０４が工程毎の処理の完了通知を管理するテーブルを例示する図であり、例えば、ＭＦＰ１０２のＨＤＤ２１４に格納される。
【００３９】
また、完了管理部３０４は、図１２に示すように、完了済みの前工程の処理結果を管理し、工程毎の処理開始時に前工程の処理結果を提供する。
図１２は、完了管理部３０４が完了済みの前工程の処理結果を管理するテーブルを例示する図であり、例えば、ＭＦＰ１０２のＨＤＤ２１４に格納される。
【００４０】
プロセス定義管理部３０７は、図１３に示すように、入力工程、編集工程、出力工程の各工程における、機器内に備わっている既定のサービスと、該既定のサービスに関する設定可能な値を管理する。
図１３は、プロセス定義管理部３０７が入力工程、編集工程、出力工程の各工程における、機器内に備わっている既定のサービスと、該既定のサービスに関する設定可能な値を管理するためのテーブルを例示する図である。なお、図１３に示すテーブルは、例えば、管理者等により予め設定されて、ＭＦＰ１０２のＨＤＤ２１４に格納されるものである。
【００４１】
機能管理部３０６は、図１４に示すように、ＭＦＰ１０２の既定のサービスの能力（機能）を管理する。
図１４は、機能管理部３０６がＭＦＰ１０２の既定のサービスの能力（機能）を管理するテーブルを例示する図である。
図１４に示すテーブルでは、ＭＦＰ１０２の既定のサービスの能力（機能）として、サービスごとの対応データタイプ（サービスごとにＭＦＰ１０２で処理可能なデータタイプ）を管理する。なお、図１４に示すテーブルは、例えば、ＭＦＰ１０２のＨＤＤ２１４に格納されるものである。
【００４２】
次に、サービス管理モジュール３２１の構成内容を説明する。
サービス管理モジュール３２１は、プロセス定義ファイルに記載される順次実行する工程に関係する登録済みのサービスを提供するためのものである。
【００４３】
サービス管理部３０９は、図１５に示すように、サービスとして利用可能な複数の接続先の情報を管理する。
図１５は、サービス管理部３０９がサービスとして利用可能な複数の接続先の情報を管理するテーブルを例示する図である。なお、図１５示すテーブルは、図９の１７００に示したようなサービスの登録時に設定されて、ＭＦＰ１０２のＨＤＤ２１４に格納されるものである。図１５に示すテーブルでは、サービス名、エンドポイント、アクション（サービスが提供する機能の分類情報（機能情報））等が管理される。
【００４４】
さらに、サービス管理部３０９は、サービスにかかる処理を実行する。サービスにかかる処理とは、後述のサービス検索部３１３を呼び出し、サービス検索部３１３による検索結果等の表示依頼を後述のブラウザ３１８に渡す。また、サービス管理部３０９は、利用可能なサービスが存在しない場合には、プロセス定義ファイル管理部３０１にプロセス定義ファイルに記載された処理工程に対応する既定のサービスを順次実行することを依頼する。
【００４５】
サービス検索部３１３は、複数のアクションが指定されることで、サービス管理部３０９内のアクション（図１５）と合致するデータの絞り込み検索の結果を返す。サービス検索部３１３は、サービス検索部３１３が絞り込み検索の機能を有さない場合は、絞り込み検索が利用できないエラーを返却する。
【００４６】
完了受信部３１５は、ブラウザ３１８からの表示処理の完了を受信する。
工程定義管理部３１９は、図１６に示すように、各工程において、実施可能なアクションの一覧を管理する。
図１６は、工程定義管理部３１９が各工程において、実施可能なアクションの一覧を管理するためのテーブルを例示する図である。なお、図１６に示すテーブルは、例えば、管理者等により予め設定されて、ＭＦＰ１０２のＨＤＤ２１４に格納されるものである。
【００４７】
図１６に示すテーブルでは、プロセス定義ファイル５１０で定義される各工程において、実施可能なアクションの一覧を管理する。アクションの具体例として、ｐｉｃｋ、ｓｃａｎ、ＢｏｘＩｎｐｕｔ、ｅｄｉｔ、ｖｉｅｗ、Ｔｒａｎｓｌａｔｅ、ｓｈａｒｅ、ｓａｖｅ、Ｐｒｉｎｔ等がある。ｐｉｃｋは、データを取得する機能を示す。ｓｃａｎは、原稿を読み取る機能を示す。ＢｏｘＩｎｐｕｔは、データをＭＦＰ１０２のＨＤＤ２１４に入力する機能を示す。ｅｄｉｔは、データを編集する機能を示す。ｖｉｅｗは、データを閲覧する機能を示す。Ｔｒａｎｓｌａｔｅは、データを翻訳する機能を示す。ｓｈａｒｅは、データを共有する機能を示す。ｓａｖｅは、データを保存する機能を示す。Ｐｒｉｎｔは、データを印刷する機能を示す。
【００４８】
ブラウザ３１８はＷｅｂブラウザであり、サービス管理部３０９からのサービスの画面を表示するための表示依頼を受け付けると、操作部２１９などの表示部に対してサービスの画面を表示するよう制御する。なお、ブラウザ３１８は、例えば、サービス管理部３０９からの要求を、サービス（例えば、Ｗｅｂ Ｉｎｔｅｎｔｓ（ウェブインテンツ）サービス）に渡し、サービスを表示する。さらに、ブラウザ３１８は、サービスからの結果を受信し、完了受信部３１５に渡す役割をする。なお、Ｗｅｂ Ｉｎｔｅｎｔｓサービスは、ブラウザ３１８を介してサービス管理部３０９からデータを受け付けて、該受け付けたデータを処理するＷｅｂ上のサービスである。
【００４９】
例えば、出力工程で実施されるサービスがクラウド共有サービスであるとすると、入力工程で入力され、編集工程で編集されたデータが、クラウド共有サービスによって、クラウド上のデータ共有サービスに送信される。なお、サービスが機能を提供するにあたって、ユーザ認証やユーザによる操作が必要な場合、ブラウザ３１８上でユーザが操作を行うものとする。
【００５０】
また、サービスについては、上述したＷｅｂ Ｉｎｔｅｎｔｓサービスのような、インターネット上のサービス以外にも、例えばＭＦＰ１０２が内蔵するデバイスによるサービスであってもよい。また、サービスは、ＭＦＰ１０２とネットワークで接続されるプリンタ、スキャナ、ネットワークカメラなどの各種コンピュータ周辺機器や、テレビ等の家電製品などが提供するサービスであってもよい。
【００５１】
以下、本実施例におけるＭＦＰ１０２のプロセス定義ファイル５１０を認識し、順次実行する工程毎に登録済みのサービスを提供する処理を図１７のフローチャートを用いて説明する。
図１７は、実施例１における順次実行する工程毎に登録済みのサービスを提供する処理を例示するフローチャートである。なお、図１７のフローチャートに示す各動作は、ＭＦＰ１０２のＣＰＵ２１１が制御プログラムを実行することにより実現される。また、本フローは、ユーザがトップメニュー８０１（図８）の、ワークフローに関するボタンを押下することによって開始される。
【００５２】
Ｓ１４００において、プロセス定義ファイル管理部３０１は、プロセス定義ファイル５１０を、ＨＤＤ２１４からＲＡＭ２１３に読み出す。このときプロセス定義ファイル管理部３０１が読み出す対象は、ユーザ操作等により処理の実行が指定されたプロセス定義ファイル５１０である。例えば、プロセス定義ファイル５１０は、図６に例示したものと同様の構成からなるものである。プロセス定義ファイル管理部３０１は、プロセス定義ファイル５１０中のタグ６０２（Ｗｏｒｋｆｌｏｗタグ）に記載されている各工程の順番に沿って処理を実行する。以下、詳細に説明する。図６の例では、入力工程としてのスキャンが１番目の処理対象として実行され、以後、編集工程としてのプレビュー、出力工程としての印刷が順次処理対処として実行されることになる。
【００５３】
Ｓ１４０１において、プロセス定義ファイル管理部３０１は、実行中の工程が入力工程かどうかを判断する。そして、実行中の工程が入力工程であると判断した場合（Ｓ１４０１でＹｅｓの場合）、プロセス定義ファイル管理部３０１は、実行中の工程（ここでは入力工程）であることをサービス管理モジュール３２１に通知する。これによりＳ１４０２へ処理が遷移する。
【００５４】
Ｓ１４０２では、サービス管理部３０９は、工程定義管理部３１９が管理する「工程において、実施可能なアクションの一覧を管理するためのテーブル」を参照し、実行中の工程に対応した実施可能なアクションを特定する。例えば、実行中の工程が「入力工程」である場合、図１６のテーブルより実施可能なアクションとして実「ｐｉｃｋ、ｓｃａｎ、ＢｏｘＩｎｐｕｔ」を特定する。
【００５５】
次に、Ｓ１４０３において、サービス管理部３０９は、前記実行中の工程が「入力工程」であるか否かを判断する。そして、「入力工程」であると判断した場合（Ｓ１４０３でＹｅｓの場合）、サービス管理部３０９は、Ｓ１４０４へ処理を遷移させる。
【００５６】
Ｓ１４０４では、サービス検索部３１３が、絞り込み検索機能を備えているか否か、また利用可能か否かを判断する。絞り込み検索が利用できないと判断された場合（Ｓ１４０４でＮｏの場合）はＳ１４０６に遷移し、利用可能である場合（Ｓ１４０４でＹｅｓの場合）はＳ１４０５に遷移する。
【００５７】
Ｓ１４０５では、サービス管理部３０９は、前記Ｓ１４０２で特定した「実施可能なアクション」を絞り込み条件として、サービス検索部３１３を呼び出す。サービス検索部３１３は、サービス管理部３０９が管理するサービス一覧（例えば図１５）から、前記絞り込み条件と合致するものを抽出する。実施可能なサービスを抽出した後に、サービス検索部３１３は、Ｓ１４０８に処理を遷移させる。
【００５８】
Ｓ１４０８では、サービス管理部３０９は、サービス検索部３１３から抽出したサービスの一覧を受け取り、絞り込み結果としてＲＡＭ２１３に記憶し、Ｓ１４０９に処理を遷移させる。
【００５９】
一方、前記Ｓ１４０４において、絞り込み検索が利用できないと判断した場合（Ｎｏの場合）、サービス管理部３０９は、Ｓ１４０６へ処理を遷移させる。Ｓ１４０６では、サービス管理部３０９は、管理するサービス一覧（例えば図１５）を全件取得し、該取得内容をＲＡＭ２１３に記憶し、Ｓ１４０７に処理を遷移させる。Ｓ１４０７では、サービス管理部３０９は、前記全件取得したサービスのそれぞれに定義されている「アクション」の値と、前記Ｓ１４０２で特定した「実施可能なアクション」を比較する。そして、比較の結果、これらの値が合致しているサービスを、絞り込み結果として、ＲＡＭ２１３に記憶し、Ｓ１４０９に処理を遷移させる。
【００６０】
Ｓ１４０９では、サービス管理部３０９は、ＲＡＭ２１３に格納されたサービスの絞り込み結果が、一つ以上存在するか否かを判断する。そして、存在すると判定した場合（Ｓ１４０９でＹｅｓの場合）、サービス管理部３０９は、Ｓ１４１０へ処理を遷移させる。
一方、存在しないと判定した場合（Ｓ１４０９でＮｏの場合）、サービス管理部３０９は、既定のサービスを実行するためにＳ１４１５に遷移する。
【００６１】
Ｓ１４１０では、サービス管理部３０９は、前記Ｓ１４０９で絞り込みの結果であるサービスの一覧を表示するため、ブラウザ３１８に、サービス表示処理を依頼して、Ｓ１４１１に遷移する。
Ｓ１４１１では、ブラウザ３１８は、サービス一覧の表示処理の依頼を受け付けると操作部２１９等の表示部に対して、サービス一覧を表示する（例えば後述する図１８の１９０１、図１９の２００１等）。そして、表示されたサービスからいずれかのサービスがユーザにより選択され、必要に応じてログイン処理等や設定等が行われてサービスの実行が指示されると、Ｓ１４１２に遷移する。
Ｓ１４１２では、ブラウザ３１８は、前記選択されたサービスの提供元にサービス実行要求を送信し、Ｓ１４２６に処理を遷移させる。
Ｓ１４２６では、ブラウザ３１８は、サービスの処理結果をサービスの提供元から受信する。該サービスの提供元でサービスが実行されると、サービス実行結果がブラウザ３１８に通知される。この通知を受け取ると、ブラウザ３１８は、Ｓ１４１６において、「サービス処理を実施した」こと、及び、実行結果を、完了受信部３１５に送信する。なお、前記Ｓ１４２６において、サービスの実行が「キャンセル」された場合、またはサービス処理の完了が認識されず、エラーが発生しサービス処理が完了できなかった場合、ブラウザ３１８は「サービス処理が完了しなかった」ことを、サービス管理部３０９に通知する。
【００６２】
サービス管理部３０９は、Ｓ１４１３において、完了受信部３１５を呼び出し、ブラウザ３１８から、サービスの処理結果を受け取る。処理結果は、サービス処理を実施したかどうか、サービスの実行結果（実施した場合にサービス処理で生成されたファイルパスの情報やデータタイプの情報）等を含む。
【００６３】
次に、Ｓ１４１４において、サービス管理部３０９は、前記Ｓ１４１３で通知された処理結果から、サービスの処理が完了したか否かを判断する。サービスの処理が完了していないと判断した場合（Ｓ１４１４でＮｏの場合）、既定のサービスを実施し実行中の工程を完了させるため、Ｓ１４１５に遷移する。一方、サービスの処理が完了していると判断した場合（Ｓ１４１４でＹｅｓの場合）、サービス管理部３０９が、プロセス定義ファイル管理部３０１に、サービスの完了通知を通知し、Ｓ１４１７に遷移する。
【００６４】
プロセス定義ファイル管理部３０１は、サービス管理部３０９からサービスの完了通知を受け取ると、Ｓ１４１７において、該受け取った完了通知を、実行中の工程の完了通知として完了管理部３０４に格納し、Ｓ１４２４に処理を遷移させる。なお、完了管理部３０４では、該完了通知を、工程の完了通知として、図１１に示したようなテーブル、図１２に示したようなテーブルで管理する。
【００６５】
Ｓ１４２４では、プロセス定義ファイル管理部３０１は、実行中の工程がワークフローにおける最終工程かどうかを判断する。そして、実行中の工程が最終工程でないと判断した場合（Ｓ１４２４でＮｏ場合）、プロセス定義ファイル管理部３０１は、Ｓ１４２５へ処理を遷移させる。
【００６６】
Ｓ１４２５では、プロセス定義ファイル管理部３０１は、前記プロセス定義ファイル５１０中のタグ６０２（Ｗｏｒｋｆｌｏｗタグ）に記載されている各処理工程の出現順に順次実行するため、Ｓ１４０１に処理を遷移させる。
【００６７】
一方、前記Ｓ１４２４において、実行中の工程が最終工程であると判断した場合（Ｓ１４２４でＹｅｓ場合）、プロセス定義ファイル管理部３０１は、ワークフローに関する一連の処理を終了し、本フローチャートの処理を終了する。
【００６８】
なお、前記Ｓ１４１４において、サービスの処理が完了していないと判断された場合（Ｓ１４１４でＮｏの場合）、サービス管理部３０９は、実行中の工程において、既定のサービスを実行するためにプロセス定義管理モジュール３２０に既定のサービスの実行要求を通知する。この場合、プロセス定義管理モジュール３２０によって、既定のサービスが実行される。以下、詳細に説明する。
【００６９】
プロセス定義ファイル管理部３０１は、サービス管理部３０９から既定のサービス実行要求を受信すると、Ｓ１４１５の処理を実行する。Ｓ１４１５では、プロセス定義ファイル管理部３０１は、実行中の工程に対応する既定のサービスに対して、プロセス定義ファイル５１０に記載されたデータを初期値として、操作部２１９等の表示部に対する表示処理を依頼する。そして、表示された既定のサービスの処理の実行がユーザにより指示されると、該既定のサービスの処理が制御部４１０により実行され、実行結果が受信部３０３に通知される。プロセス定義ファイル管理部３０１は、Ｓ１４１６において、受信部３０３から既定のサービスの処理結果を受信し、Ｓ１４１７に処理を遷移させる。この場合、Ｓ１４１７では、プロセス定義ファイル管理部３０１は、受信部３０３から受信した処理結果を完了管理部３０４に格納し、Ｓ１４１７に処理を遷移させる。Ｓ１４１７〜Ｓ１４２５の処理は同様のため説明を省略する。
【００７０】
また、前記Ｓ１４０９において、サービス管理部３０９が、サービスの絞り込み結果として一つ以上のサービスが存在しないと判断した場合（Ｓ１４０９でＮｏの場合）、既定のサービスを実行するための処理依頼をプロセス定義管理モジュール３２０に通知する。この場合、プロセス定義管理モジュール３２０は、Ｓ１４１５以降の処理を実行して、既定のサービスを実行するする。Ｓ１４１５以降の処理は同様のため説明を省略する。
【００７１】
また、前記Ｓ１４０１において、プロセス定義ファイル管理部３０１が、実行中の工程が「入力工程」でないと判断した場合（Ｓ１４０１でＮｏの場合）、Ｓ１４２２へ処理を遷移させる。Ｓ１４２２では、プロセス定義ファイル管理部３０１は、実行中の工程が「編集工程」であるか否かを判断する。そして、「編集工程」であると判断した場合（Ｓ１４２２でＹｅｓの場合）、プロセス定義ファイル管理部３０１は、実行中の工程が編集工程であることをサービス管理モジュール３２１に通知する。これによりＳ１４０２へ処理が遷移する。
【００７２】
「編集工程」の場合、サービス管理部３０９は、Ｓ１４０３において、前記Ｓ１４０２で実行中の工程が「入力工程」ではないと判断し（Ｓ１４０３でＮｏと判断し）、Ｓ１４１８へ処理を遷移させる。Ｓ１４１８では、サービス管理部３０９は、プロセス定義ファイル管理部３０１の完了管理部３０４から前工程の処理結果を特定する。前工程の処理結果とは、図１２に示すように、サービス処理を利用したかどうか、利用した場合に生成したファイルパスの情報やデータタイプの情報である。Ｓ１４１８において、処理結果を特定した後、Ｓ１４１９ステップに遷移する。
【００７３】
次に、Ｓ１４１９において、サービス管理部３０９は、機能管理部３０６が管理する既定のサービスの能力（機能）（例えば図１４）を取得する。次に、Ｓ１４２０において、サービス管理部３０９は、前記Ｓ１４１８で取得した前工程の処理データのデータタイプと、前記Ｓ１４１９で取得した既定のサービスの能力（機能）の対応データタイプとを比較する。比較した結果、不一致であり、既定のサービスで処理ができないと判断した場合（Ｓ１４２０でＹｅｓの場合）、Ｓ１４２１へ遷移する。
【００７４】
Ｓ１４２１では、サービス管理部３０９は、管理するサービスを全件取得済みかどうか判断する。そして、管理するサービスを全件取得済みと判断した場合（Ｓ１４２１でＹｅｓの場合）、サービス管理部３０９は、Ｓ１４０７へ処理を遷移する。一方、管理するサービスを全件取得済みでないと判断した場合（Ｓ１４２１でＮｏの場合）、サービス管理部３０９は、Ｓ１４０４へ処理を遷移する。Ｓ１４０４以降の処理は同様のため説明を省略する。
【００７５】
一方、前記Ｓ１４２０において、前記Ｓ１４１８で取得した前工程の処理データのデータタイプと、前記Ｓ１４１９で取得した既定のサービスの能力（機能）の対応データタイプとを比較した結果、既定のサービスによって処理ができると判断した場合（Ｓ１４２０でＮｏの場合）、サービス管理部３０９は、既定のサービスを実行するための処理依頼を、プロセス定義管理モジュール３２０に通知する。この場合、プロセス定義管理モジュール３２０は、Ｓ１４１５以降の処理を実行する。Ｓ１４１５以降の処理は前述と同様のため説明を省略する。
【００７６】
なお、図１７に示すフローチャートでは、既定のサービスの能力（機能）で処理ができる場合（Ｓ１４２０でＮｏの場合）には該既定のサービスの能力（機能）が他のサービスに対して優先した実行される構成について示している。しかし、装置能力で処理ができる場合（Ｓ１４２０でＮｏの場合）であっても、ユーザ選択等により、Ｓ１４２１に遷移して、サービスを利用して処理可能となるように構成してもよい。さらに、既定のサービス、及びプロセス定義ファイル５１０に記載されているサービス、その他のサービスに、それぞれに優先順位を設けて選択されるよう構成してもよい。
【００７７】
また、前記Ｓ１４２２において、プロセス定義ファイル管理部３０１が、実行中の工程が「編集工程」でないと判断した場合（Ｓ１４２２でＮｏの場合）、Ｓ１４２３へ処理を遷移させる。Ｓ１４２３では、プロセス定義ファイル管理部３０１は、実行中の工程が「出力工程」であるか否かを判断する。そして、「出力工程」であると判断した場合（Ｓ１４２３でＹｅｓの場合）、プロセス定義ファイル管理部３０１は、実行中の工程が出力工程であることをサービス管理モジュール３２１に通知する。これによりＳ１４０２へ処理が遷移する。
【００７８】
一方、前記Ｓ１４２３において、プロセス定義ファイル管理部３０１が、実行中の工程が「出力工程」でないと判断した場合（Ｓ１４２３でＮｏの場合）、プロセス定義ファイル管理部３０１は、Ｓ１４２４へ処理を遷移させる。Ｓ１４２４以降の処理は同様のため説明を省略する。
【００７９】
以上示したように、本実施例のシステムでは、プロセス定義ファイル５１０で定義される処理工程を実行する場合に、サービス管理モジュール３２１が、該処理工程とサービス管理モジュール３２１に登録されているサービスが関係するか判断する。この際、サービス管理モジュール３２１は、前記処理工程で実施可能な機能の分類情報（アクション）と、登録されているサービスが提供する機能の分類情報（アクション）とを比較し、前記処理工程と関係するサービスを判断する。そして、サービス管理モジュール３２１がブラウザ３１８に依頼して、前記処理工程と関係すると判断されたサービスを利用するための画面をユーザに提供する。これにより、順次実行する処理工程に関係する登録済みのサービスを絞り込み検索して提供し、拡張されたサービスの選択をユーザに促すことができるようになる。ブラウザ３１８は、前記画面に対するユーザ指示に応じて、前記サービスに処理を要求し、該要求した処理の処理結果を受け取る。例えば、ブラウザ３１８は、ネットワーク上のサービスに、ＷｅｂＩｎｔｅｎｔｓを利用するためのリクエストを行い、処理結果を受け取る。プロセス管理モジュールは、ブラウザ３１８から完了通知（処理結果を含む）を受け取り、プロセス定義管理モジュール３２０に渡す。プロセス定義管理モジュール３２０は、該完了通知を、前記処理工程の完了通知として完了管理部３０４で管理する。このような構成により、プロセス定義ファイル５１０を変更することなく、プロセス定義ファイル５１０が提供するワークフローの各処理工程に記載された順に、各処理工程に関係する拡張されたサービスが利用可能となる。従って、ユーザの利便性が高まる。
【００８０】
＜適用例＞
以下は、"スキャンして印刷"（プロセス定義ファイル５１０）を実行し、順次、実行する工程毎に登録済みのサービスを提供する本実施例の適用例である。
【００８１】
（１）入力工程
Ｓ１４００で、プロセス定義ファイル管理部３０１は、図６に示すプロセス定義ファイル５１０"スキャンして印刷"の実行を認識し、プロセス定義ファイルをＨＤＤ２１４からＲＡＭ２１３に読み出す。プロセス定義ファイル管理部３０１は、前記プロセス定義ファイル５１０中のタグ６０２（Ｗｏｒｋｆｌｏｗタグ）に記載されている各工程の出現順に処理を順次実行する。プロセス定義ファイル５１０は、従来から実施されているワークフローと同等であり、変更を要さない。よって、ユーザは、煩雑なワークフローの変更を行うことなく、拡張されたサービスを利用することができる。
【００８２】
次に、Ｓ１４０１で、プロセス定義ファイル管理部３０１は、タグ６０３の入力工程（Ｉｎｐｕｔ）を認識し、入力工程であることを判断し、実行中の工程が"入力工程"であることをサービス管理モジュールに通知し、Ｓ１４０２へ遷移する。
【００８３】
Ｓ１４０２で、サービス管理部３０９は、「工程において、実施可能なアクションの一覧を管理するためのテーブル」を参照し、実行中の工程である"入力工程"に対応した実施可能なアクション（ｐｉｃｋ、ｓｃａｎ、ＢｏｘＩｎｐｕｔ）を特定する。
【００８４】
Ｓ１４０４では、サービス検索部３１３が、絞り込み検索機能を備えているか否か、また利用可能か否かを判断する。絞り込み検索が利用できないと判断された場合は、Ｓ１４０６に遷移し、利用可能である場合はＳ１４０５に遷移する。
【００８５】
Ｓ１４０５では、サービス管理部３０９は、前記Ｓ１４０２で特定した「実施可能なアクション」を絞り込み条件として、サービス検索部３１３を呼び出す。サービス検索部３１３は、サービス管理部３０９が管理するサービス一覧（例えば図１５）から、前記絞り込み条件と合致するものを抽出する。即ち、サービス名称が、"簡単スキャン"、"ＢＯＸから選択"の列が絞り込み結果として抽出される。
Ｓ１４０８では、サービス管理部３０９は、サービス検索部３１３から抽出したサービスの一覧を受け取り、絞り込み結果としてＲＡＭ２１３に記憶し、Ｓ１４０９に処理を遷移させる。
【００８６】
Ｓ１４０９では、サービス管理部３０９は、ＲＡＭ２１３に格納されたサービスの絞り込み結果が、一つ以上存在するか否かを判断する。本事例の場合は、"簡単スキャン"と"ＢＯＸから選択"の２つが存在するため、Ｓ１３１０へ遷移する。
【００８７】
Ｓ１４１０では、サービス管理部３０９は、前記Ｓ１４０９で絞り込みの結果であるサービスの一覧を表示するため、ブラウザ３１８に、サービス表示処理を依頼して、Ｓ１４１１に遷移する。ここで、選択対象となるサービスとは、"簡単スキャン"と、"ＢＯＸから選択"である。
【００８８】
Ｓ１４１１では、ブラウザ３１８は、サービス一覧の表示処理の依頼を受け付けると操作部２１９等の表示部に対して、サービス一覧を表示する（図１８）。そして、表示されたサービスからいずれかのサービスがユーザにより選択され、必要に応じてログイン処理等や設定等が行われてサービスの実行が指示されると、Ｓ１４１２に遷移する。
【００８９】
ブラウザ３１８は、サービス一覧（入力系）１９０１を表示し、入力工程に関係する複数のサービス一覧を提供することが可能となる。操作部２１９を利用するユーザが、サービス一覧１９０１から"簡単スキャン"を選択することで、対応するサービスが呼び出され、ログイン画面１９０２、スキャン設定画面１９０３に順次画面が遷移する。このように、ユーザは、プロセス定義ファイル５１０を修正することなく、入力工程に関係する拡張サービスが利用できる効果を得られ、利便性が高まる。
【００９０】
Ｓ１４１２で、ブラウザ３１８のスキャン設定画面１９０３の「確定ボタン」が押下されると、サービス（ここでは"簡単スキャン"）の実行指示が該サービスの提供元に送信されるとともに、ブラウザ３１８はサービス表示処理の完了を認識する。そして、ブラウザ３１８は、完了通知を完了受信部３１５に送信する。
【００９１】
Ｓ１４１３で、サービス管理部３０９は、完了受信部３１５を呼び出し、サービスの処理の完了通知受け取る。完了通知は、サービス処理の利用可否（"入力工程を利用済み"）、ファイルパス（ｈｔｔｐ：／／ｘｘｘ．ｙｙｙｚｚｚ／ｄｏｃｕｍｅｎｔ．ｐｐｔ）データタイプ（ｐｐｔ）を含む。
Ｓ１４１４で、サービス管理部３０９は、前記Ｓ１４１３で取得した完了通知から、入力工程のサービスの処理を実施したと判断し、Ｓ１４１７へ遷移する。
【００９２】
Ｓ１４１７で、プロセス定義ファイル管理部３０１は、サービス管理部３０９から渡される完了通知を受け取り、完了管理部３０４において入力工程の完了通知として記憶管理する。具体的には、図１１、図１２に示すように、工程区分（入力工程）、サービス利用可否（利用する）、入力データ格納パス（ｈｔｔｐ：／／ｘｘｘ．ｙｙｙｚｚｚ／ｄｏｃｕｍｅｎｔ．ｐｐｔ）、データタイプ（ｐｐｔ）のデータを完了管理部３０４に格納する。
【００９３】
Ｓ１４２４で、プロセス定義ファイル管理部３０１は、入力工程の続きが存在するため、Ｓ１４２５へ遷移する。
Ｓ１４２５で、プロセス定義ファイル管理部３０１は、前記プロセス定義ファイル５１０中の前記タグ６０２（Ｗｏｒｋｆｌｏｗタグ）に記載されている各処理工程の出現順に順次実行するため、次の編集工程（"Ｅｄｉｔ"）を読み込む。
【００９４】
（２）編集工程
編集工程については、入力工程と異なるステップのみを説明し、同一のステップの説明は省略する。
Ｓ１４２２で、プロセス定義ファイル管理部３０１は、タグ６０６の編集工程（Ｅｄｉｔ）を認識し、編集工程であることを判断し、プロセス定義ファイル管理部３０１は、実行中の工程（ここでは編集工程）であることをサービス管理モジュール３２１に通知する。  
【００９５】
Ｓ１４０２で、サービス管理部３０９は、「工程において、実施可能なアクションの一覧を管理するためのテーブル」を参照し、実行中の工程である"編集工程"に対応した実施可能なアクション（ｅｄｉｔ、ｖｉｅｗ、Ｔｒａｎｓｌａｔｅ）を特定する。
【００９６】
Ｓ１４０３で、サービス管理部３０９は、編集工程であることから、Ｓ１４１８へ遷移する。
Ｓ１４１８で、サービス管理部３０９は、プロセス定義ファイル管理部３０１の完了管理部３０４から前工程の処理結果を特定する。具体的には、図１２に示すようなテーブルから、工程区分（入力工程）、サービス利用可否（利用する）、入力データ格納パス（ｈｔｔｐ：／／ｘｘｘ．ｙｙｙｚｚｚ／ｄｏｃｕｍｅｎｔ．ｐｐｔ）、データタイプ（ｐｐｔ）を特定する。
【００９７】
次に、Ｓ１４１９で、サービス管理部３０９は、機能管理部３０６が管理する既定のサービスの能力（機能）（図１４）を取得し、編集工程の対応データタイプ（ｐｄｆ，ｊｐｇ，ｔｉｆｆ）を特定する。
Ｓ１４２０で、サービス管理部３０９は、前記Ｓ１４１８で取得した前工程の処理データのデータタイプ（ｐｐｔ）と前記Ｓ１４１９で取得した既定のサービスの能力（機能）のデータタイプ（ｐｄｆ，ｊｐｇ，ｔｉｆｆ）とを比較する。比較した結果、処理ができないと判断し、Ｓ１４２１へ遷移する。
【００９８】
以降の処理は、入力工程の場合と同等であるため割愛する。ただし、編集工程の場合にサービス検索部３１３の検索結果として絞り込の対象となるデータが異なるので、その点についてのみ説明をする。編集工程の場合、サービス検索部３１３からサービス名称が"翻訳サービス"、"ＯＣＲサービス"の列が検索結果としてサービス管理部３０９に返される。
【００９９】
Ｓ１４１０で、サービス管理部３０９は、前記Ｓ１４０９の取得結果の複数のサービスを指定して、サービス表示処理を依頼する。指定する複数のサービスとは、"翻訳サービス"、"ＯＣＲサービス"である。
【０１００】
Ｓ１４１１で、ブラウザ３１８は、サービス表示処理の依頼を受け付けると、操作部２１９等の表示部に対して表示する（例えば図１９）。
図１９は、編集工程においてブラウザ３１８が操作部２１９に表示する画面を例示する図である。
【０１０１】
ブラウザ３１８は、サービス一覧（編集系）２００１を表示し、編集工程に関係する複数のサービス一覧を提供することが可能となる。操作部２１９を利用するユーザが、"翻訳サービス"を選択することで、対応するサービスが呼び出され、ログイン２００２、翻訳設定２００３に順次画面が遷移する。このように、ユーザは、プロセス定義ファイル５１０修正をすることなく、編集工程に関係する拡張サービスが利用できる効果を得られ、利便性が高まる。また、前記１４２０で示したように、前工程（入力工程）で生成したデータタイプが装置で処理が可能かどうかを判断し、装置能力で処理ができない場合は、前述のように編集工程に関係するサービス表示の処理を提供する。これにより、ＭＦＰ１０２の装置能力（例えば図１４）のみでは処理できない編集処理を提供可能となり、利便性が高まる。
【０１０２】
Ｓ１４１２で、ブラウザ３１８の翻訳設定２００３の「確定ボタン」が押下されると、サービス（ここでは"翻訳サービス"）の実行指示が該サービスの提供元に送信されるとともに、ブラウザ３１８はサービス処理の完了を認識する。そして、ブラウザ３１８は、完了通知を翻訳サービスから受信し、完了受信部３１５に送信する。
【０１０３】
Ｓ１４１３で、サービス管理部３０９は、完了受信部３１５を呼び出し、サービスの処理の完了通知受け取る。完了通知は、サービス処理の利用可否（"編集工程を利用済み"）、ファイルパス（ｈｔｔｐ：／／ｙｙｙ．ｚｚｚ．ｘｘｘ／ｄｏｃｕｍｅｎｔ．ｐｐｔ）データタイプ（ｐｐｔ）を含む。
【０１０４】
Ｓ１４２４で、プロセス定義ファイル管理部３０１は、編集工程の続きが存在するためＳ１４２５へ遷移する。Ｓ１４２５で、プロセス定義ファイル管理部３０１は、前記プロセス定義ファイル５１０中の前記タグ６０２（Ｗｏｒｋｆｌｏｗタグ）に記載されている各処理工程の出現順に順次実行するため、次の出力工程（"Ｐｒｉｎｔ"）を読み込む。
【０１０５】
なお、出力工程は、編集工程と処理が同様なため説明を割愛する。編集工程と同様、出力工程に関係する拡張サービスが利用できる効果を得られ利便性が高まる。また、前工程（入力工程または編集工程）で生成したデータタイプが装置で処理が可能かどうかを判断し、装置能力で処理ができない場合は、前述のように出力工程に関係するサービス表示の処理を提供する。これにより、ＭＦＰ１０２の既定のサービスの能力（機能）（例えば図１４）のみでは処理できない出力処理を提供可能となり、利便性が高まる。
【０１０６】
以上、実施例１によれば、順次実行する工程に関係する登録済みのサービスが提供できることで、プロセス定義ファイル５１０が提供するワークフローの各処理工程に記載された順に各処理工程に関係する拡張されたサービスが利用できる。また、プロセル定義ファイルの変更をせずに拡張されたサービスができるため、ユーザの利便性が高まる。
【実施例２】
【０１０７】
以下、他の実施系を図２０にて説明する。
図２０は、実施例２における順次実行する工程毎に登録済みのサービスを提供する処理を例示するフローチャートである。なお、図２０のフローチャートに示す各動作は、ＭＦＰ１０２のＣＰＵ２１１が制御プログラムを実行することにより実現される。また、本フローは、ユーザがトップメニュー８０１（図８）の、ワークフローに関するボタンを押下することによって開始される。なお、ここでは、図１７に示した実施例１の処理と同一の部分の説明は省略する。
【０１０８】
実施例２では、Ｓ１４１７にてサービスの処理結果を完了管理部３０４に格納した後、完了管理部３０４が、Ｓ１４２７において、工程が完了したか否かの判断を実施する。具体的には、図１２のテーブルにおいて、上記Ｓ１４１７にて処理結果を完了管理部３０４に格納した工程の入力データ格納パスにデータタイプに対応するデータが存在しない場合には該工程が完了していないと判断し、一方、存在する場合には該工程が完了したと判断する。もしくは、他の情報で、処理がエラーで終わったことを示す情報が図１２のテーブルに追加され、該情報に基づいて工程が完了したか否かを判断するものでもよい。本ステップにおいて、完了管理部３０４によって該工程が完了したと判断された場合（Ｓ１４２７でＹｅｓの場合）、Ｓ１４２４に遷移する。
【０１０９】
一方、該工程が完了していないと判断された場合（Ｓ１４２７でＮｏの場合）、完了管理部３０４は、Ｓ１４２８において、該工程を再度実行するか否かを判断する。具体的には、再度工程を実施するか否かをユーザが選択するためのＵＩを操作部２１９に表示してユーザからの選択を受け付け、該選択結果に基づいて判断する構成である。再度実行すると判断された場合（Ｓ１４２８でＹｅｓの場合）、完了管理部３０４は、Ｓ１４０１に処理を遷移し、該工程に関わる処理を再実行する。
即ち、工程の処理結果が、該工程を完了できなかったと判断される場合、該完了できなかった工程を、再度実行するか否かを判断し、該工程を再度実行することができる。なお、工程を再度実行する場合、該工程の処理を、登録されているサービスから選択して実行することができる。
一方、再度実行しないと判断された場合（Ｓ１４２８でＮｏの場合）、完了管理部３０４は、Ｓ１４２９に処理を遷移する。
【０１１０】
Ｓ１４２９において、完了管理部３０４は、該工程がスキップ可能か否かを判断する。本ステップでは、完了管理部３０４は、実行中の工程が、ワークフローにおいてスキップ可能か否かを判断する。例えば、出力工程がプリントである場合などは、編集工程をスキップすることは可能であるが、入力工程はスキップできない。スキップの可否については、予めＭＦＰ１０２のプロセス定義管理モジュールに定義され、ＨＤＤ２１４等に格納されているものとする。また、本定義は、プロセス定義ファイル５１０に定義されていてもよい。スキップ可能だと判断された場合（Ｓ１４２９でＹｅｓの場合）、完了管理部３０４は、Ｓ１４２４に処理を遷移させ、一方、スキップが不可能と判断された場合（Ｓ１４２９でＮｏの場合）、完了管理部３０４は、本ワークフローを終了する。なお、上記スキップが不可能と判断されてワークフローを終了する場合には、完了管理部３０４が、ワークフローを途中で終了する旨、完了していない工程の情報等を操作部２１９に表示するようにしてもよい。
【０１１１】
以上示したように、実施例２によれば、実施例１の効果に加え、さらに、実行中の工程が完了しなかった場合には、該工程を再実行したり、該工程をスキップしてワークフローを実行することが可能となる。
【０１１２】
なお、上記各実施例では、本発明をＭＦＰ等の画像形成装置に適用する構成を示したが、本発明はパーソナルコンピュータ等の情報処理装置にも適用可能である。即ち、図４に示したプロセス定義管理モジュール３２０、サービス管理モジュール３２１、ブラウザ３１８を、パーソナルコンピュータ等の情報処理装置に設け、該情報処理装置に図１７に示した処理を実行させるように構成してもよい。
【０１１３】
以上示したように、本発明によれば、順次実行する工程に関係する登録済みのサービスをサービス管理モジュール３２１が提供することで、プロセス定義ファイルが提供するワークフローの各処理工程に記載された順に、各処理工程に関係する拡張されたサービスが利用できるようになる。
即ち、プロセス定義ファイルを変更することなく、プロセス定義ファイルが提供するワークフローの各処理工程に記載された順に、プロセス定義ファイルに記載されているサービスだけでなく、各処理工程に関係する拡張されたサービスを利用可能にし、ユーザの利便性を高めることができる。
【０１１４】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されても良い。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１１５】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
例えば、本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図１】
2015233268.tif 000003
【図２】
2015233268.tif 000004
【図３】
2015233268.tif 000005
【図４】
2015233268.tif 000006
【図５】
2015233268.tif 000007
【図６】
2015233268.tif 000008
【図７】
2015233268.tif 000009
【図８】
2015233268.tif 000010
【図９】
2015233268.tif 000011
【図１０】
2015233268.tif 000012
【図１１】
2015233268.tif 000013
【図１２】
2015233268.tif 000014
【図１３】
2015233268.tif 000015
【図１４】
2015233268.tif 000016
【図１５】
2015233268.tif 000017
【図１６】
2015233268.tif 000018
【図１７】
2015233268.tif 000019
【図１８】
2015233268.tif 000020
【図１９】
2015233268.tif 000021
【図２０】
2015233268.tif 000022