(57)【特許請求の範囲】
【請求項１】
複数のステップからなるワークフローをワークフロー定義に従って実行するワークフロー実行装置であって、
前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得手段と、
前記取得手段により取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更手段と、
前記変更手段により変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更手段により変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割手段と、
前記分割手段により分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行手段と、
前記分割手段により分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信手段とを有することを特徴とするワークフロー実行装置。
【請求項２】
前記分割手段により分割された各ワークフロー定義を連結させるための処理を、前記分割された各ワークフロー定義の少なくとも１つに追加する追加手段を有し、
前記実行手段は、前記追加手段により処理が追加された後のワークフロー定義を実行し、
前記送信手段は、前記追加手段により処理が追加された後のワークフロー定義を送信することを特徴とする請求項１に記載のワークフロー実行装置。
【請求項３】
前記分割手段により分割されたワークフロー定義の夫々に対し、共通の識別子を設定する設定手段を有し、
前記実行手段は、前記ワークフロー定義を実行することによりワークフロージョブを生成し、生成したワークフロージョブに、前記設定手段により設定された識別子と同じ識別子を設定し、
前記送信手段は、前記識別子が設定されたワークフロージョブを、前記ワークフロー定義に従って、他のワークフロー実行装置に送信することを特徴とする請求項１又は２に記載のワークフロー実行装置。
【請求項４】
前記送信手段は、前記実行手段が前記ワークフロー定義を実行することにより生成したワークフロージョブと、前記変更手段により変更されたワークフロー定義とを一緒に送信することを特徴とする請求項１〜３の何れか１項に記載のワークフロー実行装置。
【請求項５】
前記分割手段は、前記ワークフロー定義における処理を実行することが可能なワークフロー実行装置の組み合わせの候補を抽出し、抽出した候補のうち、分割する数が少ない候補を優先して選択し、選択した候補の内容に従って、前記変更手段により変更されたワークフロー定義を分割することを特徴とする請求項１〜４の何れか１項に記載のワークフロー実行装置。
【請求項６】
前記分割手段は、前記ワークフロー定義における処理を実行することが可能なワークフロー実行装置の組み合わせの候補を抽出し、抽出した候補のうち、前記他のワークフロー実行装置に転送するデータ量の総量が小さい候補を優先して選択し、選択した候補の内容に従って、前記変更手段により変更されたワークフロー定義を分割することを特徴とする請求項１〜４の何れか１項に記載のワークフロー実行装置。
【請求項７】
前記分割手段は、前記ワークフロー定義における処理を実行することが可能なワークフロー実行装置の組み合わせの候補を抽出し、抽出した候補のうち、第１の判断基準を満たす候補を選択し、選択した候補が複数ある場合には、複数の候補のうち、前記第１の判断基準と異なる第２の判断基準を満たす候補を選択することを特徴とする請求項１〜６の何れか１項に記載のワークフロー実行装置。
【請求項８】
前記分割手段により分割されたワークフロー定義の夫々を、各ワークフロー実行装置で実行することができるか否かを判定する判定手段を有し、
前記分割手段は、前記判定手段により、分割されたワークフロー定義の夫々を、各ワークフロー実行装置で実行することができないと判定されると、前記変更手段により変更されたワークフロー定義を、前回とは異なる箇所で分割することを特徴とする請求項１〜７の何れか１項に記載のワークフロー実行装置。
【請求項９】
前記変更手段により変更されたワークフロー定義を実行することが可能なワークフロー実行装置があるか否かを判定する第２の判定手段を有し、
前記分割手段と前記実行手段は、前記第２の判定手段により、変更されたワークフロー定義を実行することが可能なワークフロー実行装置があると判定された場合に、処理を行うことを特徴とする請求項１〜８の何れか１項に記載のワークフロー実行装置。
【請求項１０】
前記設定情報は、ワークフローの処理を実行するために使用されるパラメータの情報と、ユーザによる設定が行われているワークフロー実行装置を特定する情報と、ユーザが通常使用する設定となっているワークフロー実行装置を特定する情報とのうち、何れか１つ以上の情報を含むことを特徴とする請求項１〜９の何れか１項に記載のワークフロー実行装置。
【請求項１１】
前記変更手段により変更されたワークフロー定義に基づく処理を実行することができない部分があるか否かを判定する第３の判定手段を有し、
前記分割手段は、前記第３の判定手段により、変更されたワークフロー定義に基づく処理を実行することができない部分があると判定されると、前記変更手段により変更されたワークフロー定義を分割することを特徴とする請求項１〜１０の何れか１項に記載のワークフロー実行装置。
【請求項１２】
前記分割手段は、前記ワークフロー定義を含むファイルを複数のファイルに分割することを特徴とする請求項１〜１１の何れか１項に記載のワークフロー実行装置。
【請求項１３】
前記分割手段は、前記ワークフロー定義を、そのワークフロー定義を含むファイル内で、複数に分割することを特徴とする請求項１〜１１の何れか１項に記載のワークフロー実行装置。
【請求項１４】
ユーザにより実行が指示されたワークフローに対応するワークフロー定義を複製する複製手段を有し、
前記変更手段は、前記複製手段により複製されたワークフロー定義を変更することを特徴とする請求項１〜１３の何れか１項に記載のワークフロー実行装置。
【請求項１５】
複数のステップからなるワークフローをワークフロー定義に従って実行するワークフロー実行装置が行うワークフロー実行方法であって、
前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更ステップと、
前記変更ステップにより変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更ステップにより変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割ステップと、
前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行ステップと、
前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信ステップとを有することを特徴とするワークフロー実行方法。
【請求項１６】
複数のステップからなるワークフローをワークフロー定義に従って実行することをワークフロー実行装置が備えるコンピュータに実行させるためのコンピュータプログラムであって、
前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得ステップと、
前記取得ステップにより取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更ステップと、
前記変更ステップにより変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更ステップにより変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割ステップと、
前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行ステップと、
前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー実行装置、ワークフロー実行方法、コンピュータプログラムに関し、特に、ワークフローを実行するために用いて好適なものである。
【背景技術】
【０００２】
近年のオフィス環境では、複合機（ＭＦＰ）、プリンタ、サーバ等の種々のデバイスがネットワークに接続され、それらのデバイスが、ユーザによって共有・使用されている。ネットワークに接続されたデバイスを利用するだけではなく、ネットワークに接続されている複数のデバイスが連携して処理を実行するシステムも存在する。このような複数のデバイスが連携して行う処理の内容をワークフロージョブといい、その具体的な処理の流れをワークフロー、処理の流れを定義・規定するものをワークフロー定義という。
【０００３】
ワークフロージョブを実行するシステムとして、特許文献１に記載されているシステムがある。このシステムでは、サーバが、処理を実行可能なデバイスの情報をディスカバリ装置から取得し、処理速度、コスト、及びネットワークトラフィック等を判断材料にして、取得した情報の中から最も好適なデバイスを選択し、ワークフローを実行する。
この他に、特許文献２に記載されているシステムもある。このシステムでは、複数のタスクを連携して処理するワークフローを実行するときに、実行するユーザ毎に各タスクの実行パラメータ（例えば送信先のメールアドレス等）をカスタマイズして、ユーザに応じたワークフロージョブを実現する。
【０００４】
一方で、近年、多機能・高度化してきているデバイスの機能を使いやすいようにするために、デバイスの機能をユーザ毎にカスタマイズすることも求められるようになってきている。デバイスの機能をユーザ毎にカスタマイズする場合、ユーザは、自身の証明書や専用記憶領域等を、自身がよく使用するデバイスや、自身に最も近いデバイス等に設定する等、自身が使い易いように設定を行ってデバイスを使用することになる。
このように、ユーザによるデバイスの設定のカスタマイズが進んでくると、例えば、次のような環境が得られるようになる。すなわち、『ユーザＡの証明書は、ユーザＡの席に一番近いデバイスＡに、ユーザＢさんの証明書は、ユーザＢの席に一番近いデバイスＢに、ユーザＡとユーザＢの専用記憶領域は、最も大きな記憶領域を持つデバイスＣに設定される』というような環境が得られる。
【０００５】
【特許文献１】特開２００６−１９５８４７号公報
【特許文献２】特開２００７−１２９５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このようにユーザ毎にデバイスの設定が異なったり、デバイスで実行可能な処理が異なったりするようになると、ワークフロージョブを実行する場合に以下のような問題が発生する虞がある。
すなわち、前述した従来の技術では、ワークフローの処理を実行可能なデバイスを検索する場合、デバイスの機能に基づいてデバイスを選択することが前提となっている。そのため、前述した従来の技術では、検索されたデバイスはワークフローの処理を実行するための機能を備えていることになるが、当該ワークフローの実行を指示したユーザに対してその機能の利用が許可されていない虞がある。したがって、ユーザによってその機能を利用することができる場合とできない場合とが生じてしまう虞がある。さらに前述した従来の技術では、ユーザによる設定がデバイス毎に行われる。このため、ユーザに固有の設定に合わせてワークフローの処理を実行するためには、ある特定のデバイスでワークフローの処理を実行しなければならず、そのようにしないとワークフローの処理を正しく実行することができない虞があった。
【０００７】
本発明はこのような問題点に鑑み、複数のデバイスがユーザによる設定に応じてワークフローの処理を従来よりも容易に且つ確実に連携して実行できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のワークフロー実行装置は、複数のステップからなるワークフローをワークフロー定義に従って実行するワークフロー実行装置であって、前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得手段と、前記取得手段により取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更手段と、前記変更手段により変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更手段により変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割手段と、前記分割手段により分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行手段と、前記分割手段により分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信手段とを有することを特徴とする。
【０００９】
本発明のワークフロー実行方法は、複数のステップからなるワークフローをワークフロー定義に従って実行するワークフロー実行装置が行うワークフロー実行方法であって、前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得ステップと、前記取得ステップにより取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更ステップと、前記変更ステップにより変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更ステップにより変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割ステップと、前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行ステップと、前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信ステップとを有することを特徴とする。
【００１０】
本発明のコンピュータプログラムは、複数のステップからなるワークフローをワークフロー定義に従って実行することをワークフロー実行装置が備えるコンピュータに実行させるためのコンピュータプログラムであって、前記ワークフローの実行を指示したユーザの設定情報であって、当該ワークフローの実行に関わる設定情報を取得する取得ステップと、前記取得ステップにより取得された設定情報に基づいて、ユーザにより実行が指示されたワークフローに対応するワークフロー定義を変更する変更ステップと、前記変更ステップにより変更されたワークフロー定義の内容に応じて、前記ワークフローの各ステップを実行するワークフロー実行装置を特定し、当該特定した結果に基づいて、前記変更ステップにより変更されたワークフロー定義を、当該ワークフロー定義を実行するワークフロー実行装置毎に分割する分割ステップと、前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置で実行されるワークフロー定義を実行する実行ステップと、前記分割ステップにより分割されたワークフロー定義のうち、前記ワークフロー実行装置と異なる他のワークフロー実行装置で実行されるワークフロー定義を、当該他のワークフロー実行装置に送信する送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のワークフロー実行装置がユーザの設定に応じてワークフローの処理を従来よりも容易に且つ確実に連携して実行することが可能になる。
【発明を実施するための最良の形態】
【００１２】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
＜システム構成＞
図１は、ワークフロー処理システムの全体構成の一例を示す図である。
図１において、ワークフロー処理システムは、画像形成装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄと、ユーザ認証サーバ１２０とを有する。画像形成装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄと、ユーザ認証サーバ１２０は、ネットワーク１００を介して相互に通信可能に接続されている。尚、図１では、ワークフロー処理システムに画像形成装置１１０を４台設けた場合を例に挙げて示しているが、画像形成装置１１０の数は、これに限定されるものではない。
【００１３】
画像形成装置１１０は、例えば、デジタル複合機（ＭＦＰ）である。画像形成装置１１０は、ワークフロー定義が記載されているワークフロー定義ファイルを保持する機能と、保持するワークフロー定義ファイルに記載されているワークフロー定義の内容を解析する機能とを有する。更に、画像形成装置１１０は、ワークフロー定義（ワークフロー定義ファイル）を更新する機能と、解析したワークフロー定義の内容に従い処理を実行する機能とを有している。
この他、画像形成装置１１０は、紙原稿を読み取るスキャン機能と、データの印刷を行うプリント機能と、データの送受信を行う送受信機能（ＦＡＸ機能等）と、データの保存を行う保存機能と、データの操作を行う編集機能とを有する。
ユーザ認証サーバ１２０は、ユーザを認証するために必要なユーザ識別情報と、画像形成装置１１０の各項目（ワークフロー定義の実行に影響を与える項目）の設定情報であって、ユーザ毎の設定情報であるユーザ設定情報とを管理している。
【００１４】
＜画像形成装置の構成＞
図２は、画像形成装置１１０の構成の一例を示すブロック図である。
コントローラユニット２００は、画像情報やデバイス情報の入出力を行うためのコントローラである。コントローラユニット２００は、画像入力デバイスであるスキャナ２４０や画像出力デバイスであるプリンタ２５０と相互に接続されている。また、コントローラユニット２００は、ＬＡＮ２２１やＷＡＮ（公衆回線）２２２にも相互に接続される。
ＣＰＵ２０１は、画像形成装置１１０のシステム全体を制御するコントローラである。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、画像データを一時的に記憶するための画像メモリでもある。ＲＯＭ２０３は、ブートＲＯＭであり、画像形成装置１１０のシステムのブートプログラムが格納されている。
【００１５】
ＨＤＤ２０４は、ハードディスクドライブであり、システムソフトウェア、画像データ、ワークフロー定義ファイル等を格納する。操作部Ｉ／Ｆ２０６は、操作部（ＵＩ）２３０とのインタフェースとなり、操作部２３０に表示する画像データを操作部２３０に対して出力する。また、操作部Ｉ／Ｆ２０６は、画像形成装置１１０のユーザが操作部２３０を操作して入力した情報を、ＣＰＵ２０１に伝える。ネットワーク処理部２０９は、ＬＡＮ２２１と相互に接続され、ＬＡＮ２２１を介して外部装置と情報の入出力を行う。モデム２１０は、ＷＡＮ２２２と相互に接続され、ＷＡＮ２２２を介して外部装置と情報の入出力を行う。以上のデバイスがシステムバス２０７上に配置される。
イメージバス（Image Bus）Ｉ／Ｆ２０５は、システムバス２０７と画像データを高速で転送する画像バス２０８とを相互に接続し、データ構造を変換するバスブリッジである。画像バス２０８は、ＰＣＩバス又はIEEE1394で構成される。画像バス２０８には、以下のデバイスが配置される。
【００１６】
ラスターイメージプロセッサ（ＲＩＰ）２１２は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ２１３は、画像入出力デバイスであるスキャナ２４０やプリンタ２５０とコントローラユニット２００とを相互に接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１４は、スキャナ２４０等から入力された画像データに対し補正、加工、編集を行う。また、スキャナ画像処理部２１４は、スキャナ２４０等から入力された画像データが、カラー原稿及び白黒原稿の何れのデータであるかを、当該画像データの彩度信号等から判断し、その結果を保持する。
【００１７】
プリンタ画像処理部２１５は、プリンタ２５０等に出力する画像データに対して、補正、加工、編集を行う。画像回転部２１６は、スキャナ画像処理部２１４と連携して、スキャナ２４０から入力された画像データの読み出しと同時に当該画像データを回転してメモリに格納する。また、画像回転部２１６は、メモリにある画像を回転して当該メモリに格納したり、プリンタ画像処理部２１５と連携してメモリにある画像データを回転しながら印字出力したりすることができる。
【００１８】
解像度変換部２１８は、メモリにある画像データの解像度を変換して当該メモリに格納する。色空間変換部２１９は、マトリクス演算により、例えば、メモリにあるＹＵＶ画像をＬａｂ画像に変換して当該メモリに格納する。階調変換部２２０は、例えば、メモリにある８bit、２５６階調の画像データを、誤差拡散処理等の手法により１bit、２階調に変換して当該メモリに格納する。画像圧縮部２１７は、多値画像データを例えばJPEGに従って圧縮伸長し、２値画像データをJBIG、MMR、MR、又はMHに従って圧縮伸張する。
画像回転部２１６、解像度変換部２１８、色空間変換部２１９、階調変換部２２０、画像圧縮部２１７は、夫々連結して動作することが可能である。例えばメモリにある画像データの回転、解像度変換を行う場合には、これらの処理を、メモリを介さずに行うことができる。
【００１９】
図３は、画像形成装置１１０で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。このワークフロー処理ソフトウェア（アプリケーションプログラム）は、ＨＤＤ２０４に格納されており、ＲＡＭ２０２に展開されてＣＰＵ２０１によって実行される。
図３において、ワークフロー処理ソフトウェア３００は、大別すると、処理部３１０と、保存情報管理部３２０とを有している。
処理部３１０は、ＵＩ処理部３１１と、制御部３１２と、ワークフロー処理実行部３１３と、データ解析部３１４と、データ入出力部３１５、ワークフロー定義変更部３１６とを有している。
【００２０】
ＵＩ処理部３１１は、操作部Ｉ／Ｆ２０６を介して操作部２３０からの情報を受信する。また、ＵＩ処理部３１１は、操作部２３０へ情報を送信する。
データ入出力部３１５は、処理部３１０と保存情報管理部３２０との間で行われるデータの入出力を管理する。
データ解析部３１４は、ワークフロー定義ファイルの解析等を行う。
ワークフロー処理実行部３１３は、ワークフロー処理等の処理を行う。
ワークフロー定義変更部３１６は、ワークフロー定義の更新、変更、及び分割処理を行う。
制御部３１２は、ＵＩ処理部３１１、ワークフロー処理実行部３１３、データ解析部３１４、データ入出力部３１５、ワークフロー定義変更部で行われるこれらの処理を制御する。
【００２１】
保存情報管理部３２０は、ワークフロー定義ファイル情報格納部３２１と、ワークフロー定義テンポラリファイル情報格納部３２２とを管理する。ここで、ワークフロー定義ファイル情報格納部３２１は、ワークフロー定義が設定されたファイルであるワークフロー定義ファイルの情報を格納する。一方、ワークフロー定義テンポラリファイル情報格納部３２２は、ワークフロー定義変更部３１６によって生成されたテンポラリのワークフロー定義の情報を格納する。これらの情報の実体は、例えばＨＤＤ２０４に格納される。
【００２２】
図４は、画像形成装置１１０の操作部２３０の外観構成の一例を示す図である。尚、図４では、説明の便宜上、操作部２３０の外観構成を簡略化してしめしている。
図４において、操作部２３０は、キー入力部４００とタッチパネル部４２０とを有する。図５は、キー入力部４００（図５（ａ））とタッチパネル部４２０（図５（ｂ））の外観構成の一例を詳細に示す図である。
図５（ａ）に示すキー入力部４００は、定常的な操作設定を行うことができるキーの入力部分である。
操作部電源スイッチ４０３は、スタンバイモードとスリープモードとを切り替えるためにユーザにより操作されるスイッチである。画像形成装置１１０のシステム全体の電源供給を行う主電源スイッチがＯＮの状態で、操作部電源スイッチ４０３の操作に基づく制御を行うことができる。ここで、スタンバイモードとは、通常動作状態である。スリープモードとは、コントローラユニット２００がネットワークプリントやファクシミリ等に備えて割り込み待ちの状態であり、プログラムの実行を停止して、消費電力を抑えている状態である。
【００２３】
節電キー４０４は、スタンバイモード時の定着器の制御温度を下げるためにユーザにより操作されるキーである。節電キー４０４が操作されると、プリント可能な状態になるまでの時間は要するが、消費電力を抑えることができる。尚、節電率の設定により定着器の制御温度を下げることもできる。
スタートキー４０１は、コピーや送信等の開始を指示するためにユーザにより操作されるキーであり、ストップキー４０２は、コピーや送信等の中断を指示するためにユーザにより操作されるキーである。
【００２４】
テンキー４１０は、画像形成装置１１０の各種設定の置数を与えるためにユーザにより操作されるキーである。クリアキー４１４は、その置数を解除するためにユーザにより操作されるキーである。ＩＤキー４１３は、画像形成装置１１０のユーザを認証するために、予め設定された暗証番号をユーザに入力させるためのキーである。
リセットキー４０７は、画像形成装置１１０の各種設定を無効にし、設定をデフォルトの状態に戻すためにユーザにより操作されるキーである。ヘルプキー４０８は、ガイダンスやヘルプをタッチパネル部４２０に表示させるためにユーザにより操作されるキーである。ユーザモードキー４０９は、ユーザ毎のシステム設定画面に移行するためにユーザにより操作されるキーである。
【００２５】
カウンタ確認キー４０５は、画像形成装置１１０内に設けてあるプリント枚数等をカウントするソフトカウンタに記憶されている出力済み枚数をタッチパネル部４２０に表示させるためにユーザにより操作されるキーである。本実施形態の画像形成装置１１０では、コピー／プリント／スキャン／ファックス等の動作モード、カラー／白黒といった色モード、ラージ／スモールといった紙サイズ等に応じて、夫々の出力済み枚数をタッチパネル部４２０に表示させることができる。
画像コントラストダイヤル４０６は、タッチパネル部４２０の液晶表示のバックライトを調光する等して、画面の見易さを調整するためにユーザにより操作されるダイヤルである。
【００２６】
実行／メモリランプ４１１は、ジョブが実行中であるときや、メモリへのアクセス中であるときに点滅し、それらをユーザに知らせるためのランプである。エラーランプ４１２は、ジョブの実行ができない場合や、サービスマンコール等が発生しエラーが生じた場合や、ジャムや消耗品切れ等をユーザに知らせるオペレータコール等が発生した場合に点滅し、それらをユーザに知らせるためのランプである。
【００２７】
図５（ｂ）に示すタッチパネル部４２０は、ＬＣＤ（Liquid Crystal Display：液晶表示部）と、ＬＣＤの上に貼られた"透明電極を備えたタッチパネルディスプレイ"とを有する。ＬＣＤに表示されるキー相当の部分の透明電極をユーザが指で触れると、タッチパネル部４２０は、それを検知し、検知した内容と予めプログラムされている内容とに従って、別の操作画面を表示する等、各種の表示を行う。図５（ｂ）では、コピータブ５０１が選択されているときの画面の一例を示している。この画面に対するユーザの設定操作に応じて、タッチパネル部４２０は、様々な操作画面を表示することができる。
【００２８】
コピータブ５０１は、コピー動作の操作画面に遷移するためにユーザにより操作されるタブキーである。送信タブ５０２は、ファックスやＥ−ｍａｉｌ送信等、送信（Ｓｅｎｄ）動作を指示する操作画面に遷移するためにユーザにより操作されるタブキーである。ボックスタブ５０３は、ボックス（ユーザ毎にジョブを格納する記憶手段）にジョブを入出力するための画面に遷移するためにユーザにより操作されるタブキーである。オプションタブ５０４は、スキャナ設定やワークフロー処理機能等、拡張機能を追加・設定するためにユーザにより操作されるタブキーである。システムモニタキー５１９は、画像形成装置１１０の状態や状況を表示するためにユーザにより操作されるキーである。ユーザが各タブを選択することで、夫々のタブに応じた操作モードに画像形成装置１１０の操作モードを遷移させることができる。
【００２９】
色選択設定キー５１０は、カラーコピー、白黒コピー、又は自動選択かを予め選択するためにユーザにより操作されるキーである。倍率設定キー５１３は、等倍、拡大、縮小等の倍率設定を行う画面に遷移するためにユーザにより操作されるキーである。後処理設定キー５１４は、ステープルやパンチ等の後処理の有無、個数、位置等を設定する画面に遷移するためにユーザにより操作されるキーである。両面設定キー５１６は、片面印刷か両面印刷かを選択する画面に遷移するためにユーザにより操作されるキーである。紙サイズ設定キー５１７は、給紙段、紙サイズ、メディアタイプを選択する画面に遷移するためにユーザにより操作されるキーである。画像モード設定キー５２１は、文字モードや写真モード等、原稿画像に適した画像モードを選択するためにユーザにより操作されるキーである。濃度設定キー５２２は、出力画像を濃くしたり薄くしたり調整するためにユーザにより操作されるキーである。
【００３０】
ステータス表示部５１１は、スタンバイ状態、ウォームアップ中、ジャム、エラー等の簡易的な状態表示を行う表示部である。倍率表示部５１２は、倍率設定キー５１３で設定された倍率を表示する表示部である。紙サイズ表示部５１８は、紙サイズ設定キー５１７で設定された紙サイズやモードを表示する表示部である。枚数表示部５２３は、テンキー４１０で指定された枚数を表示したり、動作中に何枚目を印刷中かを表示したりする表示部である。
更に、割り込みキー５１５は、コピー動作中に別のジョブを割り込ませる場合にユーザにより操作されるキーである。応用モードキー５２０は、ページ連写、表紙・合紙設定、縮小レイアウト、画像移動等、様々な画像処理やレイアウト等の設定を行う画面に遷移するためにユーザにより操作されるキーである。
【００３１】
図６は、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。
本実施形態では、図６（ａ）に示すように、２台の画像形成装置１１０ａ、１１０ｂが存在する環境で、図６（ｂ）に示すワークフロー定義ファイル１を実行する場合を例に挙げて、処理の詳細な説明を行う。尚、以下では、必要に応じて、画像形成装置１１０ａ、１１０ｂを、夫々デバイス（１）、デバイス（２）と称する。
【００３２】
図６において、デバイス（１）、（２）は、夫々のワークフロー定義ファイル情報格納部３２１内にワークフロー定義ファイル１を保存している。また、デバイス（１）、（２）は、どちらもScan機能、署名付きＰＤＦ作成機能、及びメール送信機能の全てを有している。そして、デバイス（１）にはUserBのユーザ証明書が、デバイス（２）にはUserAのユーザ証明書が夫々登録されている。
【００３３】
図７は、ワークフロー定義ファイル１に基づくワークフローの処理を実行する際のデバイス（１）の処理の一例を説明するフローチャートである。図８は、ワークフローの処理に先立って、デバイス（１）（画像形成装置１１０ａ）のタッチパネル部４２０に表示される認証画面の一例を示す図である。
ユーザは、図８に示すような認証画面８００に表示されている『ユーザＩＤ入力部８０１とパスワード入力部８０２』に、ユーザＩＤとパスワードを入力してＯＫボタン８０３を押下する。そうすると、ステップＳ７０１において、制御部３１２は、ユーザＩＤ及びパスワードを、ネットワーク処理部２０９を介してユーザ認証サーバ１２０に送信する。次に、ステップＳ７０２において、制御部３１２は、ユーザ認証サーバ１２０から受信した情報に基づいて、ユーザの認証に成功したか否かを判定する。尚、ユーザを認証する方式やプロトコルはどのようなものであってもよい。ユーザを認証する処理は、本発明とは関係ないため、ここではその詳細な説明を省略する。
【００３４】
この判定の結果、ユーザの認証に失敗した場合には、図７のフローチャートによる処理を終了する。一方、ユーザの認証に成功した場合には、ステップＳ７０３に進む。ステップＳ７０３に進むと、制御部３１２は、認証されたユーザの情報をＲＡＭ２０２等に記憶する。
図９は、ユーザ認証サーバ１２０でユーザの情報を管理するために使用される管理テーブルの一例を示す図である。ユーザの認証に成功した場合、制御部３１２は、ユーザ認証サーバ１２０から、ユーザの情報として、ユーザのメールアドレス情報と、ユーザの証明書が保持されている画像形成装置１１０（デバイス）の情報とを、ステップＳ７０２の判定の前に取得する。
以上のように本実施形態では、例えば、ユーザの情報により、設定情報の一例が実現される。そして、例えば、ステップＳ７０２、Ｓ７０３の処理を実行することにより、取得手段の一例が実現される。
【００３５】
次に、ステップＳ７０４において、ＵＩ処理部３１１は、認証されたユーザに対して、デバイス（１）のワークフロー定義ファイル情報格納部３２１に保存されているワークフロー定義ファイルの情報の一覧を、タッチパネル部４２０に表示する。
次に、ステップＳ７０５において、ＵＩ処理部３１１は、ステップＳ７０４で表示されたワークフロー定義ファイル情報の一覧の中からユーザから指示されたワークフロー定義ファイルを特定する。ここでは、ユーザＩＤ「UserA」で認証されたユーザが、ワークフロー定義ファイル１の実行を指示した場合を例に挙げて説明する。
【００３６】
次に、ステップＳ７０６において、データ入出力部３１５は、ステップＳ７０５で特定されたワークフロー定義ファイルを、ワークフロー定義ファイル情報格納部３２１から取得する。ここでは、ワークフロー定義ファイル１が設定されたワークフロー定義ファイルが取得される。そして、ワークフロー定義変更部３１６は、制御部３１２からの指示によって、ワークフロー定義ファイル１が設定されたワークフロー定義ファイルのコピーを作成する。その後、データ入出力部３１５は、ワークフロー定義ファイル１のコピーを、ワークフロー定義テンポラリファイル情報格納部３２２に格納する。
以上のように本実施形態では、例えば、ステップＳ７０６の処理を行うことにより複製手段の一例が実現される。
【００３７】
次に、ステップＳ７０７において、ワークフロー定義変更部３１６は、ワークフロー処理システム全体でユニークな識別子を生成して、ステップＳ７０６で作成した（複製された）ワークフロー定義ファイル１に、生成した識別子を付与する。
【００３８】
次に、ステップＳ７０８において、データ解析部３１４及びワークフロー定義変更部３１６は、ステップＳ７０３で記憶されたユーザの情報を、ステップＳ７０７で識別子を付与したワークフロー定義ファイルに反映して、ワークフロー定義ファイルを更新する。ここでは、認証されたユーザはUserAである。このUserAの情報として、メールアドレス「user＿a@xxx.xxx.xx.xx」と、ユーザ証明書がある画像形成装置「デバイス（２）（IP：XXX.XXX.XXX.XXX）」とがＲＡＭ２０２等に記憶されている。また、ワークフロー定義ファイル１では、「Scan」、「ユーザ署名付きＰＤＦ作成」、「ＰＤＦをメールに添付して自分に送信」という３つのステップからワークフロー定義が構成されている。そこで、データ解析部３１４は、ユーザ署名付きＰＤＦを作成するためにはユーザ署名が存在するデバイスでの処理が必要であることと、メールの送信先となるアドレスはUserAのメールアドレスとなることとを判断する。以上のことを勘案して、ワークフロー定義変更部３１６は、図６（ｂ）に示したワークフロー定義ファイル１を、図１０に示すワークフロー定義ファイル１００１に変更する。
以上のように本実施形態では、例えば、ステップＳ７０８の処理を行うことにより変更手段の一例が実現される。
【００３９】
次に、ステップＳ７０９において、データ解析部３１４及びワークフロー定義変更部３１６は、ワークフロー定義ファイルを複数に分割して、ステップＳ７０８で変更したワークフロー定義ファイル１００１を複数に分割するワークフロー分割処理を実行する。このワークフロー分割処理の詳細については、図１１のフローチャートを参照しながら後述する。
【００４０】
次に、ステップＳ７１０において、制御部３１２は、ステップＳ７０９の結果に基づいて、他のデバイス（デバイス（２））でワークフローの処理が実行されるか否かを判定する。この判定の結果、他のデバイスでワークフローの処理が実行されない場合には、ステップＳ７１１、Ｓ７１２を省略して後述するステップＳ７１３に進む。一方、他のデバイスでワークフローの処理が実行される場合には、ステップＳ７１１に進む。
ステップＳ７１１に進むと、制御部３１２は、ステップＳ７０９で分割されたワークフロー定義ファイルの少なくとも１つを、ネットワーク処理部２０９を介して、当該ワークフロー定義ファイルに基づくワークフローを実行するデバイスに送信する。ここでは、ステップＳ７０９で分割されたワークフロー定義ファイルのうち、デバイス（２）で実行されるワークフロー定義が設定されたワークフロー定義ファイルが、デバイス（２）に送信される。
以上のように本実施形態では、例えば、ステップＳ７１１の処理を行うことにより送信手段の一例が実現される。
【００４１】
次に、ステップＳ７１２において、制御部３１２は、ステップＳ７０９の結果に基づいて、自身（デバイス（１））がワークフローの処理を実行するか否かを判定する。この判定の結果、自身がワークフローの処理を実行しない場合には、ステップＳ７１３を省略して、図７のフローチャートによる処理を終了する。一方、自身がワークフローの処理を実行する場合には、ステップＳ７１３に進む。
【００４２】
ステップＳ７１３に進むと、ワークフロー処理実行部３１３は、ステップＳ７０９で分割されたワークフロー定義ファイルのうち、デバイス（１）で実行するワークフロー定義が設定されたワークフロー定義ファイルに従って、ワークフローの処理を実行する。具体的に、Scan処理で生成された画像データをデバイス（２）にワークフロージョブとして送信する処理が実行される。尚、ワークフロー処理実行部３１３は、ワークフローの処理を実行することにより得られたワークフロージョブの属性に、ステップＳ７０７で生成された識別子と同じ識別子を付与する。そして、図７のフローチャートによる処理を終了する。
以上のように本実施形態では、例えば、ステップＳ７１３の処理を行うことにより実行手段の一例が実現される。
【００４３】
次に、図１１のフローチャートを参照しながら、ステップＳ７０８のワークフロー分割処理の一例を詳細に説明する。
まず、ステップＳ１００１において、データ解析部３１４は、ステップＳ７０８で変更したワークフロー定義ファイル１００１におけるステップを先頭から順番に１つ選択する。
次に、ステップＳ１００２において、データ解析部３１４は、ステップＳ１００１で選択したステップの処理を実行できるデバイスを１つ以上特定する。尚、ここでは、ステップＳ１００１で選択したステップを実行できるデバイスが１つも存在しない場合は想定しない。すなわち、ここでは、ユーザが、そのようなワークフロー定義を選択し得ないことを前提として説明する。
【００４４】
次に、ステップＳ１００３において、データ解析部３１４は、ステップＳ１００２で特定したデバイスに対して、ステップＳ１００１で選択したステップの処理を実行することが可能かどうかを問い合わせる。
次に、ステップＳ１００４において、データ解析部３１４は、ステップＳ１００３における問い合わせの結果に基づいて、ステップＳ１００２で特定したデバイスが、ステップＳ１００１で選択したステップの処理を実行することが可能かを判定する。この判定の結果、実行することが可能でない場合には、後述するステップＳ１０１３に進む。一方、実行することが可能である場合には、ステップＳ１００５に進む。
【００４５】
ステップＳ１００５に進むと、データ解析部３１４は、ステップＳ１００２で特定したデバイスを、実行可能デバイスの候補として、そのデバイスの情報を一時的にＲＡＭ２０２等に記憶する。
次に、ステップＳ１００６において、データ解析部３１４は、ステップＳ１００２で特定されたデバイスが他に存在するか否かを判定する。この判定の結果、デバイスが他にも存在する場合には、ステップＳ１００３へ戻る。一方、デバイスが他に存在しない場合には、ステップＳ１００７に進む。
【００４６】
ステップＳ１００７に進むと、データ解析部３１４は、ステップＳ７０８で変更したワークフロー定義ファイル１００１におけるステップを全て選択したか否かを判定する。この判定の結果、ワークフロー定義ファイル１００１におけるステップを全て選択していない場合には、ステップＳ１００１に戻り、次のステップが選択される。一方、ワークフロー定義ファイル１００１におけるステップを全て選択した場合には、ステップＳ１００８に進む。
【００４７】
UserAが、ワークフロー定義ファイル１をデバイス（１）に実行させようとした場合には、以下のようにして各ステップに対する判定処理が実行される。
まず、ステップＳ１００１において、データ解析部３１４は、「Scan」のステップを選択する。次に、ステップＳ１００２において、データ解析部３１４は、処理を開始するデバイスのみでScan処理を実行することが可能であることを判断材料にして、デバイス（１）のみを特定する。そして、ステップＳ１００４において、データ解析部３１４は、デバイス（１）でScanを実行することが可能であるか否かを判定する。デバイス（１）
はScanを行うことが可能であるため、ステップＳ１００５において、データ解析部３１４は、Scanの実行可能デバイスの候補としてデバイス（１）の情報を保持する。
【００４８】
そして、ここではデバイス（１）のみが特定されており、ワークフロー定義ファイル１で未選択のステップがある。よって、ステップＳ１００６、Ｓ１００７を経由してステップＳ１００１に戻り、データ解析部３１４は、「ユーザ署名付きＰＤＦ作成」ステップを選択する。次に、ステップＳ１００２において、データ解析部３１４は、UserAの証明書がデバイス（２）に存在していることを判断材料にして、デバイス（２）のみを特定する。そして、ステップＳ１００４において、データ解析部３１４は、デバイス（２）で、ユーザ署名付きのＰＤＦデータを作成することが可能であるか否かを判定する。デバイス（２）は、UserAのユーザ署名付きのＰＤＦデータを作成することが可能である。このため、ステップＳ１００５において、データ解析部３１４は、UserAのユーザ署名付きのＰＤＦデータの作成が実行可能デバイスの候補としてデバイス（２）の情報を保持する。
【００４９】
そして、ここではデバイス（２）のみが特定されており、ワークフロー定義ファイル１で未選択のステップがあるので、ステップＳ１００６、Ｓ１００７を経由してステップＳ１００１に戻る。そして、データ解析部３１４は、「ＰＤＦをメールに添付して自分に送信」ステップを選択する。次に、ステップＳ１００２において、データ解析部３１４は、デバイス（１）、（２）で、電子メールの送信が可能であることを判断材料にして、デバイス（１）、（２）を特定する。そして、ステップＳ１００４において、データ解析部３１４は、デバイス（１）で、ユーザ署名付きのＰＤＦデータを添付して電子メールを送信することが可能であるか否かを判定する。デバイス（１）は、UserAのユーザ署名付きのＰＤＦデータを添付して電子メールをアドレス「user＿a@xxx.xxx.xx.xx」に送信することが可能である。このため、ステップＳ１００５において、データ解析部３１４は、UserAのユーザ署名付きのＰＤＦデータを添付して電子メールの送信が実行可能デバイスの候補としてデバイス（１）の情報を保持する。
そして、ここでは、デバイス（１）の他にデバイス（２）が特定されているので、ステップＳ１００６からステップＳ１００３に戻る。そして、ステップＳ１００５において、データ解析部３１４は、UserAのユーザ署名付きのＰＤＦデータを添付して電子メールの送信が実行可能デバイスの候補としてデバイス（２）の情報も保持する。
以上のようにしてステップＳ１００７において、ワークフロー定義ファイル１で未選択のステップがなくなったと判定されると、ステップＳ１００８に進む。
【００５０】
ステップＳ１００８に進むと、ワークフロー定義変更部３１６は、ステップＳ１００７までにチェックされた結果を利用して、ワークフロー定義ファイル１の各ステップにおける『実行可能デバイスの候補』を作成する。前述した例では、「Scan」、「ユーザ証明書でユーザ署名付きＰＤＦ作成」、及び「ＰＤＦをメールに添付して自分に送信」の各ステップにおける『実行可能デバイスの候補』として次の候補が作成される。すなわち、「デバイス（１）−デバイス（２）−デバイス（１）」の組み合わせと「デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせとが作成される。
【００５１】
ステップＳ１００９に進むと、ワークフロー定義変更部３１６は、ステップＳ１００８で作成された候補に基づいて、ワークフローの処理を実行するデバイスの変更が何回発生するのかをチェックする。そして、ワークフロー定義変更部３１６は、チェックした結果に基づいて、ステップＳ１００８で作成された候補のうち、ワークフロー定義ファイルの分割数が最も少ない組み合わせを特定する。前述した例では、「デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせが特定される。
【００５２】
次に、ステップＳ１０１０において、ワークフロー定義変更部３１６は、ステップＳ１００９で特定された候補が、デバイスの組み合わせでなく、１つのデバイスからなるか否かを判定する。この判定の結果、ステップＳ１００９で特定された候補が、１つのデバイスからなる場合には、ステップＳ１０１１〜Ｓ１０１３を省略して図１１のフローチャートによる処理を終了し、図７のステップＳ７１０に進む。一方、ステップＳ１００９で特定された候補が、デバイスの組み合わせからなる場合には、ステップＳ１０１１に進む。
【００５３】
尚、ユーザがワークフローの実行を指示したデバイス（デバイス（１））が、ワークフロー定義の少なくとも１つのステップの処理を実行できることを前提としている場合には、ステップＳ１０１０で次のような判定を行ってもよい。すなわち、ワークフロー定義変更部３１６は、ステップＳ１００９で特定された候補の中に、デバイス（１）以外のデバイスを含んでいるか否かを判定してもよい。そして、この判定の結果、ステップＳ１００９で特定された候補の中に、デバイス（１）以外のデバイスを含んでいる場合にはステップＳ１０１１に進み、含んでいない場合には、図７のステップＳ７１０に進む。言い換えると、デバイス（１）で実行することができないステップが、ワークフロー定義の中にある場合には、ステップＳ１０１１に進み、そうでない場合には、図７のステップＳ７１０に進む。このようにした場合、本実施形態では、例えば、ステップＳ１００９の処理を実行することにより、第３の判定手段の一例が実現される。
【００５４】
ステップＳ１０１１に進むと、ワークフロー定義変更部３１６は、ステップＳ１００９で特定された組み合わせに基づいて、ワークフローの処理を実行するデバイスの変更箇所で、ワークフロー定義ファイル１におけるワークフロー定義を分割する。これにより、ワークフロー定義ファイル１が設定されたワークフロー定義ファイルが、ワークフローの処理を実行するデバイス毎に、複数のワークフロー定義ファイルに分割される（複数のファイルが生成される）。尚、分割されたワークフロー定義ファイルの夫々には、図７ステップＳ７０７で生成された識別子が付与される。尚、本実施形態では、図７のステップＳ７０７で識別子を生成したが、例えば、このステップＳ１０１１の後に識別子を生成してもよい。
以上のように本実施形態では、例えば、ステップＳ１００８〜Ｓ１０１１の処理を行うことにより分割手段の一例が実現される。
【００５５】
次に、ステップＳ１０１２において、ワークフロー定義変更部３１６は、ステップＳ１０１１で分割されたワークフロー定義ファイルを相互に結びつけるための送受信処理を、当該ワークフロー定義ファイルに追加してワークフロー定義ファイルを更新する。これにより、分割されたワークフロー定義に基づく処理が連結される。図１２は、更新後のワークフロー定義ファイルの一例を概念的に示す図である。図１２（ａ）は、デバイス（１）で実行されるワークフロー定義ファイル１２０１の一例を示し、図１２（ｂ）は、デバイス（１）で実行されるワークフロー定義ファイル１２０２の一例を示す図である。
以上のように本実施形態では、例えば、ステップＳ１０１２の処理を行うことにより追加手段の一例が実現される。
次に、ステップＳ１０１３において、ワークフロー定義変更部３１６は、ステップＳ７０６で付与された識別子を、ステップＳ１０１２で更新された分割後のワークフロー定義ファイルの夫々に付与する。これにより、分割後のワークフロー定義ファイルの夫々に、分割前のワークフロー定義ファイルに付与された識別子と同じ識別子が共通の識別子として付与される。そして、図１１のフローチャートによる終了し、図７のステップＳ７１０に進む。
以上のように本実施形態では、例えば、ステップＳ１０１３の処理を行うことにより設定手段の一例が実現される。
【００５６】
前記ステップＳ１００４において、ステップＳ１００２で特定したデバイスが、ステップＳ１００１で選択したステップの処理を実行することが可能でないと判定されると、ステップＳ１０１４に進む。ステップＳ１０１４に進むと、データ解析部３１４は、ステップＳ１００２で特定されたデバイスが他にあるか否かを判定する。この判定の結果、このようなデバイスがある場合には、ステップＳ１００３に戻る。一方、このようなデバイスがない場合には、ステップＳ１０１５に進む。ステップＳ１０１５に進むと、データ解析部３１４は、ワークフローの処理を実行できないことを示す画像をタッチパネル部４２０に表示する等して、ワークフローの処理を実行できないことをユーザに通知する。この場合には、エラー終了となる。
以上のように本実施形態では、例えば、ステップＳ１００４、Ｓ１０１４の処理を行うことにより第２の判定手段の一例が実現される。
【００５７】
次に、図１３のフローチャートを参照しながら、ワークフロー定義ファイル１に基づくワークフローの処理を実行する際のデバイス（２）の処理の一例を説明する。
まず、ステップＳ１２０１において、制御部３１２は、図７のステップＳ７１１でデバイス（１）から送信されたワークフロー定義ファイルを、ネットワーク処理部２０９を介して取得する。そして、データ入出力部３１５は、そのワークフロー定義ファイルを、ワークフロー定義テンポラリファイル情報格納部３２２に保存する。
【００５８】
次に、ステップＳ１２０２において、制御部３１２は、デバイス（１）から送信されたワークフロージョブがネットワーク処理部２０９で受信されるまで待機する。このワークフロージョブは、図７のステップＳ７１１でワークフローの処理が実行されることにより得られるものである。そして、ワークフロージョブの受信を検知すると、ステップＳ１２０３に進む。
ステップＳ１２０３に進むと、データ解析部３１４は、受信したワークフロージョブから識別子を取り出す。
【００５９】
次に、ステップＳ１２０４において、データ解析部３１４は、ステップＳ１２０３で取り出された識別子と同じ識別子を含むワークフロー定義ファイルが、ワークフロー定義テンポラリファイル情報格納部３２２内に存在するか否かを判定する。この判定の結果、ステップＳ１２０３で取り出された識別子と同じ識別子を含むワークフロー定義ファイルが存在する場合には、ステップＳ１２０５に進む。
ステップＳ１２０５に進むと、ワークフロー処理実行部３１３は、ステップＳ１２０３で取り出された識別子と同じ識別子を含むワークフロー定義ファイルに設定されているワークフロー定義に従ってワークフローの処理を実行する。そして、図１３のフローチャートによる処理を終了する。
一方、ステップＳ１２０３で取り出された識別子と同じ識別子を含むワークフロー定義ファイルが存在しない場合には、ステップＳ１２０６に進む。ステップＳ１２０６に進むと、制御部３１２は、ワークフロージョブの送信元であるデバイス（１）に対して、処理を行うことができない旨を通知する。そして、図１３のフローチャートによる処理を終了する。
【００６０】
尚、前述した具体例では、UserAが、ワークフロー定義ファイル１をデバイス（１）に実行させようとした場合を説明した。しかしながら、図７、図１１、図１３に示した処理と同じ処理を行うことで、UserAが、ワークフロー定義ファイル１をデバイス（２）に実行させることもできる。この場合、図１１のステップＳ１００８において、「Scan」、「ユーザ証明書でユーザ署名付きＰＤＦ作成」、及び「ＰＤＦをメールに添付して自分に送信」の各ステップにおける『実行可能デバイスの候補』として次の組み合わせが作成される。すなわち、「デバイス（２）−デバイス（２）−デバイス（１）」と「デバイス（２）−デバイス（２）−デバイス（２）」とが作成される。
そして、ステップＳ１００９において、「デバイス（２）−デバイス（２）−デバイス（２）」が特定される。この場合、全てデバイス（２）で実行する組み合わせとなるため、ステップＳ１０１０において、候補が１つのデバイスのみと判定される。そのため、ステップＳ１０１１〜Ｓ１０１３の処理を行わない。更に、分割したワークフロー定義が存在しないため、ステップＳ７１０からステップＳ７１３に進んで全てのワークフローの処理が実行されて、処理が終了する。
【００６１】
以上のように本実施形態では、デバイス（画像形成装置１１０）は、ワークフロー定義の実行を指示したユーザの情報を、ユーザ認証サーバ１２０から取得し、そのユーザの情報が反映されるように、ワークフロー定義を変更する。そして、変更したワークフロー定義を、ワークフローの処理を実行するデバイスが変更される箇所で切り離して複数に分割して複数のファイルに個別に格納することにより、ワークフロー定義をワークフロー実行装置毎に分割する。更に、分割した複数のワークフロー定義を相互に結びつけるために、当該複数のワークフロー定義を補足する。このようにして得られた複数のワークフロー定義に従って画像形成装置１１０は、ワークフローの処理を実行する。
【００６２】
したがって、ユーザが設定している情報やデバイスの能力といった情報に応じて、ワークフローの処理の実行時に、ワークフロー定義ファイルの実行内容を、適切に判断して更新することができる。これにより、各ユーザが夫々のデバイスでワークフロー定義を実行した場合の全てのパターンを想定してワークフロー定義を準備しておく必要がなくなる。よって、複数のデバイスがワークフローの処理を連携して実行するに際し、ユーザの設定をデバイス毎に行わなくても、当該ワークフローの処理をユーザによる設定に応じて実行できる。また、実行できるデバイスの機能がユーザによって異なる場合でも、ワークフローの処理をユーザによる設定に応じて実行できる。以上のように、本実施形態では、どのデバイスからユーザがワークフローの実行を指示しても、複数のデバイスが、ユーザに固有の設定を反映させて容易に且つ確実にワークフローの処理を連携して実行することができる。
更に、ユーザが設定を変更した場合であっても、元のワークフロー定義ファイルには変更が生じないため、メンテナンスも非常に楽になる。また、各ユーザの設定情報等に関係なく元のワークフロー定義ファイルを更新することができるため、メンテナンスが楽になり、ユーザ間でワークフロー定義ファイルの不整合がおきてしまうような可能性を低くすることができる。
【００６３】
また、本実施形態では、ワークフロー定義を分割するに際し、ワークフローの処理を実行する画像形成装置１１０が変更される回数が少なくなるようにしたので、ワークフローの処理を効率よく行うことができる。
【００６４】
尚、本実施形態では、デバイスの実行能力を把握していないことを前提に説明しているため、ワークフロー定義の各ステップの処理を実行することが可能かどうかをデバイスに問い合わせるようにした（図１１のステップＳ１００３）。しかしながら、必ずしもこのようにする必要はない。例えば、各デバイスが最初から他のデバイスの能力を把握し、このような問い合わせを行わないようにしてもよい。
【００６５】
また、本実施形態では、デバイス間のデータ送受信を、分割された各ワークフロー定義を相互に結びつけるためのワークフロー処理として補足する場合を例に挙げて説明した（図１１のステップＳ１０１１）。しかしながら、補足する内容はこのようなものに限定されない。例えば、処理完了後に処理結果を依頼元のデバイスに通知する補足処理を追加しても問題ない。
更に、本実施形態では、ワークフロー定義を分割した後、ワークフローの処理を実行する前に（図７のステップＳ７１１で）、分割したワークフロー定義を、当該ワークフロー定義に従ってワークフローの処理を実行するデバイスに送信するようにした。しかしながら、ワークフロー定義を送信するタイミングはこのようなものに限定されない。例えば、ワークフロージョブを送信するタイミングで当該ワークフロージョブと一緒にワークフロー定義をデバイスに送信するようにしてもよい。
【００６６】
尚、前述したように本実施形態では、図１１のステップＳ１００２において、ステップＳ１００１で選択されたステップの処理を実行できるデバイスを１つ以上特定するときに、当該ステップの処理を実行できるデバイスが１つも存在しない場合を想定している。すなわち、事前にワークフローをチェックすること等を想定している。
例えば、図７のステップＳ７０３において、当該ユーザのユーザ証明書を保持しているデバイスの情報がユーザの情報として取得できなった場合には、次のようにすればよい。すなわち、ステップＳ７０４の実行時に、ユーザ証明書を使用するワークフロー定義を、ユーザに提示するワークフロー定義の一覧から削除すればよい。例えば、図６に示した環境において、UserCが認証された場合には、UserCのユーザ証明書を使用するワークフロー定義を、UserCに提示するワークフロー定義の一覧から削除することになる。この他、ステップＳ７０８において、複製したワークフロー定義にユーザの情報を反映させる際に、反映させるための情報がないと判断し、エラーとしてもよい。また、Scan機能（スキャナ機能）を有していないデバイスについては、Scanで開始されるワークフロー定義を適用しないようにすることができる。更に、Scanで開始されるワークフロー定義をワークフロー定義の一覧から削除したり、複製したワークフロー定義にユーザの情報を反映させる際にエラーとしたりすることができる。
以上のように、処理することができないワークフロー定義を、ワークフロー定義を分割する前に判断して、エラー等にすることによって、無駄な処理を省略することが可能となる。
【００６７】
また、本実施形態では、ステップＳ７０８において、ステップＳ７０３で記憶されたユーザの情報を使って、ワークフロー定義を変更するようにしたが（図１０を参照）、次のようにしてもよい。すなわち、ユーザの情報に加えて、デバイス（１）、（２）の能力に関する情報を使うようにしてもよい。このようにする場合、ステップＳ７０８の処理を行う前に、デバイスの能力に関する情報を、デバイスやサーバから取得することになる。
【００６８】
また、ユーザの情報は、図９に示すものに限定されない。ユーザの情報としては、ユーザによる設定が行われているデバイスを特定する情報と、ユーザが通常使用する設定となっているデバイスを特定する情報とのうち、少なくとも何れか一方を含むようにすることができる。
【００６９】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、ワークフロー定義ファイルを分割し、分割した各ワークフロー定義を個別に複数のファイルに格納するようにした。これに対し、本実施形態では、ワークフロー定義ファイルを分割せずにワークフロー定義を分割するようにしている。このように本実施形態と前述した第１の実施形態とは、ワークフロー定義を分割する際の処理の一例が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図１３に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００７０】
図１４は、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。本実施形態では、図１４（ａ）に示すように、２台の画像形成装置１１０ａ、１１０ｂが存在する環境で、図１４（ｂ）に示すワークフロー定義ファイル２を実行する場合を例に挙げて、処理の詳細な説明を行う。尚、以下では、必要に応じて、画像形成装置１１０ａ、１１０ｂを、夫々デバイス（１）、デバイス（２）と称する。また、図１５は、ユーザ認証サーバ１２０でユーザの情報を管理するために使用される管理テーブルの一例を示す図である。本実施形態では、例えば、このユーザの情報により、設定情報の一例が実現される。尚、本実施形態においても、ユーザの情報は、図１５に示すものに限定されない。ユーザの情報としては、ユーザによる設定が行われているデバイスを特定する情報と、ユーザが通常使用する設定となっているデバイスを特定する情報とのうち、少なくとも何れか一方を含むようにすることができる。
【００７１】
図１５において、UserAのユーザ専用の保存領域は、デバイス（１）のBox-AというＢｏｘであり、UserAのユーザ専用のアドレス帳は、デバイス（２）のＡというアドレス帳であることがユーザ情報として管理テーブルで管理されている。
ここで、デバイス（１）が保持しているBox-Aに対しては、どのデバイスからでも直接データの保存を実行することができる。また、どのデバイスからでもアドレス帳Ａの宛先データを参照できる。しかしながら、宛先データを使用して送信する処理はアドレス帳が存在するデバイスでのみで実行することが可能であるとする。
【００７２】
次に、図１６のフローチャートを参照しながら、ワークフロー定義ファイル２に基づくワークフローの処理を実行する際のデバイス（１）の処理の一例を説明する。
図１６において、ステップＳ１４０１〜Ｓ１４０４では、図７のステップＳ７０１〜Ｓ７０４と同様にして処理が行われ、ワークフロー定義ファイル情報格納部３２１に保存されているワークフロー定義ファイルの情報の一覧が、タッチパネル部４２０に表示される。このように本実施形態では、例えば、ステップＳ１４０２、Ｓ１４０３の処理を実行することにより、取得手段の一例が実現される。
【００７３】
次に、ステップＳ１４０５において、ＵＩ処理部３１１は、ワークフロー定義ファイルの情報の一覧において、ワークフローの実行のために使用されるパラメータがユーザによって指定されると、そのパラメータを所得する。例えば、UserAが、ワークフロー定義ファイルの情報の一覧の中から、ワークフロー定義ファイル２を指定するときに、UserAのアドレス帳Ａの４番のアドレスに、ＰＤＦデータが添付されたメールを送信することを指定したとする。この場合、UserAのアドレス帳Ａの４番が、パラメータとなる。このように本実施形態では、例えば、このパラメータの情報により、設定情報の一例が実現される。尚、このパラメータの情報のみで設定情報を実現するようにしてもよい。
【００７４】
次に、ステップＳ１４０６において、ＵＩ処理部３１１は、ワークフロー定義ファイル情報の一覧の中からユーザから指示されたワークフロー定義ファイルを特定する。ここでは、UserAが、ワークフロー定義ファイル２の実行を指示するので、ワークフロー定義ファイル２が特定される。
次に、ステップＳ１４０７において、データ入出力部３１５は、ステップＳ１４０６で特定されたワークフロー定義ファイル２を、ワークフロー定義ファイル情報格納部３２１から取得する。そして、ワークフロー定義変更部３１６は、制御部３１２からの指示によって、ワークフロー定義ファイル２が設定されたワークフロー定義ファイルのコピーを作成する。その後、データ入出力部３１５は、ワークフロー定義ファイル２のコピーを、ワークフロー定義テンポラリファイル情報格納部３２２に格納する。
以上のように本実施形態では、例えば、ステップＳ１４０７の処理を行うことにより複製手段の一例が実現される。
【００７５】
次に、ステップＳ１４０８において、ワークフロー定義変更部３１６は、ワークフロー処理システム全体でユニークな識別子を生成して、ステップＳ１４０７で作成した（複製された）ワークフロー定義ファイル２に、生成した識別子を付与する。
次に、ステップＳ１４０９において、データ解析部３１４及びワークフロー定義変更部３１６は、ワークフロー定義ファイルを更新する。本実施形態では、ステップＳ１４０３で記憶されたユーザの情報と、ステップＳ１４０５で取得されたワークフロー実行パラメータとが、ワークフロー定義ファイルに反映される。図１７は、ユーザの情報とワークフロー実行パラメータとが反映されるように変更されたワークフロー定義ファイル１７０１の一例を示す図である。
以上のように本実施形態では、例えば、ステップＳ１４０９の処理を行うことにより変更手段の一例が実現される。
【００７６】
次に、ステップＳ１４１０において、データ解析部３１４及びワークフロー定義変更部３１６は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１を複数に分割するワークフロー分割処理を実行する。このワークフロー分割処理の詳細については、図１８のフローチャートを参照しながら後述する。
【００７７】
次に、ステップＳ１４１１において、制御部３１２は、ステップＳ１４１０の結果に基づいて、自身（デバイス（１））がワークフローの処理を実行するか否かを判定する。この判定の結果、自身がワークフローの処理を実行しない場合には、ステップＳ１４１２を省略して、後述するステップＳ１４１３に進む。一方、自身がワークフローの処理を実行する場合には、ステップＳ１４１２に進む。
次に、ステップＳ１４１２において、ワークフロー処理実行部３１３は、ステップＳ１４１０で分割されたワークフロー定義のうち、デバイス（１）で実行するワークフロー定義に従って、ワークフローの処理を実行する。ここで、ワークフロー処理実行部３１３は、ワークフローの処理を実行することにより得られたワークフロージョブの属性に、ステップＳ１４０８で生成された識別子と同じ識別子を付与する。
以上のように本実施形態では、例えば、ステップＳ１４１２の処理を行うことにより実行手段の一例が実現される。
次に、ステップＳ１４１３において、データ解析部３１４は、ステップＳ１４１０で得られたワークフロー定義に基づいて、ワークフロージョブを送信するか否かを判定する。この判定の結果、ワークフロージョブを送信しない場合には、図１６のフローチャートによる処理を終了する。一方、ワークフロージョブを送信する場合には、ステップＳ１４１４に進む。ステップＳ１４１４に進むと、制御部３１２は、ワークフロージョブを、ステップＳ１４１０で分割された複数のワークフロー定義を含むワークフロー定義ファイルと一緒に、当該ワークフロージョブの送信先であるデバイスに送信する。そして、図１６のフローチャートによる処理を終了する。
以上のように本実施形態では、例えば、ステップＳ１４１４の処理を行うことにより送信手段の一例が実現される。
【００７８】
次に、図１８のフローチャートを参照しながら、ステップＳ１４１０のワークフロー分割処理の一例を詳細に説明する。本実施形態では、第１の実施形態とは異なり、各デバイスが、他のデバイスで実行できる能力を先に取得して把握している場合を例に挙げて説明する。
まず、ステップＳ１６０１において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを先頭から順番に１つ選択する。
次に、ステップＳ１６０２において、データ解析部３１４は、ステップＳ１６０１で選択したステップの処理を実行できるデバイスを１つ以上特定する。
【００７９】
次に、ステップＳ１６０３において、データ解析部３１４は、ステップＳ１６０２で特定したデバイスを、実行可能デバイスの候補として、そのデバイスの情報を一時的にＲＡＭ２０２等に記憶する。
次に、ステップＳ１６０４において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを全て選択したか否かを判定する。この判定の結果、ワークフロー定義ファイル１７０１におけるステップを全て選択していない場合には、ステップＳ１６０１に戻り、次のステップが選択される。一方、ワークフロー定義ファイル１７０１におけるステップを全て選択した場合には、ステップＳ１６０５に進む。
【００８０】
ステップＳ１６０５に進むと、ワークフロー定義変更部３１６は、ステップＳ１６０４までにチェックされた結果を利用して、ワークフロー定義ファイル２の各ステップにおける『実行可能デバイスの候補』を作成する。ここでは、「Scan」「ユーザ署名付きＰＤＦ作成」、「ＰＤＦを自分のアドレス帳の指定された番号の宛先に送信」、「ＰＤＦを自分専用のＢｏｘに保存」の各ステップにおける『実行可能デバイスの候補』として次の候補が作成される。すなわち、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（１）」の組み合わせと「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」の組み合わせとが作成される。
【００８１】
次に、ステップＳ１６０６に進むと、ワークフロー定義変更部３１６は、ステップＳ１６０５で作成された候補のうち、ワークフロー定義の分割数が最も少ない候補を特定する。前述した例では、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」の組み合わせが特定される。
【００８２】
次に、ステップＳ１６０７において、ワークフロー定義変更部３１６は、ステップＳ１６０６で特定された候補が、デバイスの組み合わせでなく、１つのデバイスからなるか否かを判定する。この判定の結果、ステップＳ１６０６で特定された候補が、１つのデバイスからなる場合には、ステップＳ１６０８〜Ｓ１６０９を省略して図１８のフローチャートによる処理を終了し、図１６のステップＳ１４１１に進む。一方、ステップＳ１６０６で特定された候補が、デバイスの組み合わせからなる場合には、ステップＳ１６０８に進む。
ステップＳ１６０８に進むと、ワークフロー定義変更部３１６は、ワークフロー定義ファイルに含まれるワークフロー定義を分割する。本実施形態では、ワークフロー定義ファイルをファイルとして分割せずに、ステップＳ１６０７で特定された組み合わせに基づいて、ワークフローの処理を実行するデバイスの変更箇所で、ワークフロー定義ファイル内でワークフロー定義を分割する。
以上のように本実施形態では、例えば、ステップＳ１６０５〜Ｓ１６０８の処理を行うことにより分割手段の一例が実現される。
【００８３】
次に、ステップＳ１６０９において、ワークフロー定義変更部３１６は、ステップＳ１６０８で分割されたワークフロー定義を相互に結びつけるための送受信処理を、当該ワークフロー定義に追加してワークフロー定義ファイルを更新する。これにより、分割されたワークフロー定義に基づく処理が連結される。そして、図１８のフローチャートによる終了し、図１６のステップＳ１４１１に進む。
以上のように本実施形態では、例えば、ステップＳ１６０９の処理を行うことにより追加手段の一例が実現される。
図１９は、更新後のワークフロー定義ファイル１９０１の一例を概念的に示す図である。
【００８４】
次に、図２０のフローチャートを参照しながら、ワークフロー定義ファイル２に基づくワークフローの処理を実行する際のデバイス（２）の処理の一例を説明する。
まず、ステップＳ１８０１において、制御部３１２は、図１６のステップＳ１４１３でデバイス（１）から送信されたワークフロージョブが、ネットワーク処理部２０９で受信されるまで待機する。そして、ワークフロージョブが受信されると、ステップＳ１８０２に進む。
【００８５】
次に、ステップＳ１８０２において、データ解析部３１４は、受信したワークフロージョブから識別子を取り出す。
次に、ステップＳ１８０３において、制御部３１２は、ワークフロージョブと同時に受信されたワークフロー定義ファイルを取得する。
次に、ステップＳ１８０４において、データ解析部３１４は、ステップＳ１８０３で取得したワークフロー定義ファイルの識別子と、ステップＳ１８０２で取得した識別子とが一致するか否かを判定する。この判定の結果、識別子が一致している場合には、ステップＳ１８０５に進む。ステップＳ１８０５に進むと、ワークフロー処理実行部３１３は、ステップＳ１８０３で取得されたワークフロー定義ファイルから、デバイス（２）で実行されるワークフロー定義を抽出し、抽出したワークフロー定義に従ってワークフローの処理を実行する。そして、図２０のフローチャートによる処理を終了する。
一方、識別子が一致していない場合には、ステップＳ１８０６に進む。ステップＳ１８０６に進むと、制御部３１２は、ワークフロージョブの送信元であるデバイス（１）に対して、処理を行うことができない旨を通知する。そして、図２０のフローチャートによる処理を終了する。
【００８６】
以上のように本実施形態では、デバイスは、ワークフロー定義の実行を指示したユーザの情報として、ユーザ認証サーバ１２０の管理テーブルに格納されている情報に加え、ワークフロー設定パラメータの情報が反映されるように、ワークフロー定義を変更する。そして、変更したワークフロー定義を、ワークフロー定義ファイル内で、ワークフローの処理を実行するデバイスが変更される箇所で分割する。したがって、第１の実施形態で説明した効果に加えて、ワークフロー定義ファイルを複数ファイルに分割して複数のテンポラリファイルを作成せずに、ワークフローの処理を行うことが可能となるという効果が得られる。
第１の実施形態のようにテンポラリファイルをワークフロージョブよりも先に送信すると、例えば、ワークフローの処理が途中で止まった場合や、ワークフローの処理が途中でキャンセルされた場合に、複数のテンポラリファイルを探し出して削除する必要がある。これに対し、本実施形態のように、ワークフロー定義ファイルを分割せずにテンポラリのワークフロー定義ファイルを１つのみにすることで、ワークフローの処理の状況に応じてワークフロー定義ファイルを容易に削除することが可能となる。
【００８７】
尚、本実施形態では、ワークフローの実行のために使用されるパラメータを、ユーザによるデバイスの入力操作に基づいて取得する場合を例に挙げて説明したが、必ずしもこのようにする必要はない。例えば、ユーザ認証サーバの管理テーブルに、パラメータをユーザの情報として記憶しておき、そのパラメータを取得するようにしてもよい。
また、本実施形態のように、識別子を用いれば、ワークフロー定義とワークフロージョブとを確実に管理することができ好ましい。ただし、本実施形態ではワークフロー定義とワークフロージョブとを一緒に送信するようにしているので、必ずしも識別子を用いる必要はない。
また、本実施形態においても、第１の実施形態で説明した種々の変形例を採ることができる。
【００８８】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。前述した第１及び第２の実施形態では、ワークフロー定義を分割する際に、ワークフロー定義の分割数が最も少なくなるデバイスの組み合わせが１つのみになる場合を例に挙げて説明を行った。これに対し、本実施形態では、ワークフロー定義の分割数が最も少なくなるデバイスの組み合わせが２つ以上になることがあり得る場合を例に挙げて説明する。このように本実施形態と前述した第１及び第２の実施形態とは、ワークフロー定義を分割する際の処理の一部が主として異なる。したがって、本実施形態の説明において、前述した第１及び第２の実施形態と同一の部分については、図１〜図２０に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００８９】
図２１は、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。本実施形態では、図２１（ａ）に示すように、２台の画像形成装置１１０ａ、１１０ｂが存在する環境で、図２１（ｂ）に示すワークフロー定義ファイル２を実行する場合を例に挙げて、処理の詳細な説明を行う。尚、以下では、必要に応じて、画像形成装置１１０ａ、１１０ｂを、夫々デバイス（１）、デバイス（２）と称する。また、図２２は、ユーザ認証サーバ１２０でユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
図２１（ａ）に示す環境では、デバイス（１）がUserBの証明書に加えてUserAの証明書も保持しており、デバイス（１）、（２）の双方がUserAの証明書を保持している。この点以外は、図２１（ａ）に示す環境と、図１４（ａ）に示した環境とは同じである。
また、図２２に示す管理テーブルでは、UserAのユーザ証明書の保持デバイスが、デバイス（１）とデバイス（２）になっている。この他については、図２２に示す管理テーブルと図１５に示した管理テーブルとは同じである。本実施形態では、図２２に示すユーザの情報により、設定情報の一例が実現される。
【００９０】
次に、図２３のフローチャートを参照しながら、ステップＳ１４１０のワークフロー分割処理の一例を詳細に説明する。尚、ワークフロー定義ファイル２に基づくワークフローの処理を実行する際のデバイス（１）の処理は、図１６に示した処理と同じであるため、その詳細な説明を省略する。
【００９１】
まず、ステップＳ２００１において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを先頭から順番に１つ選択する。
次に、ステップＳ２００２において、データ解析部３１４は、ステップＳ２００１で選択したステップの処理を実行できるデバイスを１つ以上特定する。
【００９２】
次に、ステップＳ２００３において、データ解析部３１４は、ステップＳ２００２で特定したデバイスを、実行可能デバイスの候補として、そのデバイスの情報を一時的にＲＡＭ２０２等に記憶する。
次に、ステップＳ２００４において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを全て選択したか否かを判定する。この判定の結果、ワークフロー定義ファイル１７０１におけるステップを全て選択していない場合には、ステップＳ２００１に戻る。一方、ワークフロー定義ファイル１７０１におけるステップを全て選択した場合には、ステップＳ２００５に進む。
【００９３】
ステップＳ２００５に進むと、ワークフロー定義変更部３１６は、ステップＳ２００４までにチェックされた結果を利用して、ワークフロー定義ファイル２の各ステップにおける『実行可能デバイスの候補』を作成する。ここでは、「Scan」「ユーザ署名付きＰＤＦ作成」、「ＰＤＦを自分のアドレス帳の指定された番号の宛先に送信」、「ＰＤＦを自分専用のＢｏｘに保存」の各ステップにおける『実行可能デバイスの候補』として次の候補が作成される。すなわち、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（１）」と「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」の組み合わせが作成される。更に、「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（１）」と「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせも作成される。
【００９４】
次に、ステップＳ２００６において、ワークフロー定義変更部３１６は、ステップＳ２００５で作成された候補のうち、ワークフロー定義ファイルの分割数が最も少ない候補を特定する。前述した例では、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」と「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせが特定される。
以上のように本実施形態では、例えば、ワークフロー定義ファイルの分割数が最も少ないということが、第１の判断基準の一例となり、ステップＳ２００６のようにして第１の判断基準を満たす候補が抽出される。
【００９５】
次に、ステップＳ２００７において、ワークフロー定義変更部３１６は、ワークフロー定義ファイルの分割数が最も少ない候補が２つ以上あるか否かを判定する。この判定の結果、ワークフロー定義ファイルの分割数が最も少ない候補が１つだけである場合には、後述するステップＳ２０１０に進む。
一方、ワークフロー定義ファイルの分割数が最も少ない候補が２つ以上ある場合には、ステップＳ２００８に進む。前述した例では、ワークフロー定義ファイルの分割数が最も少ない候補が２つ以上あると判定され、ステップＳ２００８に進む。
【００９６】
ステップＳ２００８に進むと、ワークフロー定義変更部３１６は、他のデバイス（デバイス（２））に転送するデータ量の総量を、ステップＳ２００７で２つ以上あると判定された夫々の候補について計算する。前述した例では、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」と「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」の夫々の組み合わせで、デバイス（２）に転送するデータ量の総量が見積もられる。そして、「デバイス（１）−デバイス（２）−デバイス（２）−デバイス（２）」の組み合わせでは、デバイス（１）からデバイス（２）へ行われるデータの転送は、Scan処理の後に行われるのでScanデータになる。一方、「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせでは、デバイス（１）からデバイス（２）へ行われるデータの転送は、ユーザ署名が付けられたＰＤＦデータになる。本実施形態では、Scanデータ及びＰＤＦデータの夫々のページ毎のデータ量の概算値が、デバイス（１）で実行されるプログラム内に定義されている。したがって、ワークフロー定義変更部３１６は、この概算値を使用して転送するデータ量の総量を計算する。
【００９７】
次に、ステップＳ２００９において、ワークフロー定義変更部３１６は、ステップＳ２００８で計算したデータ量（Scanデータ及びＰＤＦデータの総量）』のうち、最も値の小さなデータ量に対応する候補を特定する。前述した例では、Scanデータを転送するよりも、署名付きのＰＤＦデータを転送する方が、転送するデータ量が少ない。よって、「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」の組み合わせが特定される。そして、ステップＳ２０１０に進む。
以上のように本実施形態では、転送するデータ量が最も少ないことが、第２の判断基準の一例となり、ステップＳ２００９のようにして第２の判断基準を満たす候補が抽出される。
【００９８】
そして、ステップＳ２０１０に進むと、ワークフロー定義変更部３１６は、ステップＳ２００６で特定された候補が、デバイスの組み合わせでなく、１つのデバイスからなるか否かを判定する。この判定の結果、ステップＳ２００６で特定された候補が、１つのデバイスからなる場合には、ステップＳ２０１１、Ｓ２０１２を省略して図２３のフローチャートによる処理を終了し、図１６のステップＳ１４１１に進む。一方、ステップＳ２００６で特定された候補が、デバイスの組み合わせからなる場合には、ステップＳ２０１１に進む。
【００９９】
ステップＳ２０１１に進むと、ワークフロー定義変更部３１６は、ワークフロー定義ファイルに含まれるワークフロー定義を、ステップＳ２００６又はＳ２００９で特定された組み合わせに基づいて、ワークフローの処理を実行するデバイスの変更箇所で分割する。
以上のように本実施形態では、例えば、ステップＳ２００５〜Ｓ２０１１の処理を行うことにより分割手段の一例が実現される。
次に、ステップＳ２０１２において、ワークフロー定義変更部３１６は、ステップＳ２０１１で分割されたワークフロー定義を相互に結びつけるための送受信処理を、当該ワークフロー定義に追加してワークフロー定義ファイルを更新する。これにより、分割されたワークフロー定義に基づく処理が連結される。そして、図２３のフローチャートによる終了し、図１６のステップＳ１４１１に進む。
以上のように本実施形態では、例えば、ステップＳ２０１２の処理を行うことにより追加手段の一例が実現される。
図２４は、更新後のワークフロー定義ファイル２４０１の一例を概念的に示す図である。
図２４において、ワークフロー定義ファイル２４０１は、図１９に示した第２の実施形態におけるワークフロー定義ファイル１７０１と異なり、次のようなワークフロー定義となる。すなわち、ワークフロー定義ファイル２４０１では、署名付きのＰＤＦデータの作成までがデバイス（１）で行われ、アドレス帳Ａの宛先への送信と、デバイス（１）のＢｏｘ−Ａへの保存とがデバイス（２）で実行されるワークフローとなる。
【０１００】
以上のように本実施形態では、ワークフロー定義の分割数が最も少なくなるデバイスの組み合わせが２つ以上になる場合には、各組み合わせにおける『転送データの総量』を算出し、それら２つ以上の組み合わせのうち、データ量が最小の組み合わせを選択する。したがって、第１及び第２の実施形態で説明した効果に加え、ワークフローの処理をより一層効率よく行う（ワークフローの処理負荷をより一層小さくする）ことが可能になるという効果が得られる。
【０１０１】
尚、本実施形態では、転送データの総量を判断基準にして、ワークフロー定義の分割数が最も少なくなるデバイスの組み合わせを特定する場合を例に挙げて説明した。しかしながら、判断基準はこのようなものに限定されるわけではない。例えば、ネットワーク的に自身（デバイス（１））により近いデバイスにデータが転送されるような組み合わせを優先して選択するようにしてもよい。また、この判断を行う時点での各デバイスの実行状況を確認し、処理するジョブが最も少ないデバイスを優先して選択するようにしてもよい。更に、スリープしていないデバイスを優先して選択するようにしてもよいし、ユーザのデバイスの使用履歴を調べて、使用頻度の高いデバイスを優先して選択するようにしてもよい。
【０１０２】
また、本実施形態では、ワークフロー定義の分割が最少となる組み合わせを特定し、その組み合わせが複数である場合に、複数の組み合わせの中から転送データ量の総量が最小となる組み合わせを特定する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、転送データ量の総量が最小となる組み合わせを特定し、その組み合わせが複数である場合に、複数の組み合わせの中からワークフロー定義の分割が最少となる組み合わせを特定するようにしてもよい。本実施形態で説明した例であれば、転送データ量の総量で候補となる組み合わせは、「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（１）」と「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」に絞られる。これらの組み合わせの中から、ワークフロー定義の分割が最少となる組み合わせとして、「デバイス（１）−デバイス（１）−デバイス（２）−デバイス（２）」が特定される。
尚、本実施形態においても、第１の実施形態で説明した種々の変形例を採ることができる。また、本実施形態では、第２の実施形態のように、ワークフロー定義ファイル２を実行する場合を例に挙げて説明したが、第１の実施形態のように、ワークフロー定義ファイル１を実行する場合にも、本実施形態の処理を適用することができる。
【０１０３】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。前述した第１〜第３の実施形態では、ワークフロー定義を分割した場合、各ワークフロー定義に基づくワークフローを、必ず実行できる場合を例に挙げて説明を行った。これに対し、本実施形態では、分割した各ワークフロー定義に基づくワークフローが実行できないことがあり得る場合を例に挙げて説明する。このように本実施形態と前述した第１〜第３の実施形態とは、ワークフロー定義を分割した後の一部が主として異なる。したがって、本実施形態の説明において、前述した第１〜第３の実施形態と同一の部分については、図１〜図２４に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【０１０４】
図２５は、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。本実施形態では、図２５（ａ）に示すように、２台の画像形成装置１１０ａ、１１０ｂ、１１０ｃが存在する環境で、図２５（ｂ）に示すワークフロー定義ファイル２を実行する場合を例に挙げて、処理の詳細な説明を行う。尚、以下では、必要に応じて、画像形成装置１１０ａ、１１０ｂ、１１０ｃを、夫々デバイス（１）、デバイス（２）、デバイス（３）と称する。
【０１０５】
図２５において、デバイス（１）、（２）、（３）は、夫々Scan機能、メール送信機能を有している。また、デバイス（１）、（２）は署名付きＰＤＦ作成機能も有している。そして、デバイス（１）にはUserBのユーザ証明書が、デバイス（２）にはUserAのユーザ証明書が、デバイス（３）にはUserAのアドレス帳が登録されている。ユーザ専用の保存領域として、UserA用のBox-AとUserC用のBox-Cとがデバイス（１）に存在する。更に、デバイス（１）とデバイス（２）、デバイス（２）とデバイス（３）はネットワーク１００を経由して相互に通信を行うことが可能である。これに対し、デバイス（１）とデバイス（３）は、ネットワーク１００を経由して相互に通信を行うことができない。
【０１０６】
図２６は、ユーザ認証サーバ１２０でユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
ここで、本実施形態でも第２の実施形態と同様に、デバイス（１）が保持しているBox-Aに対しては、どのデバイスからでも直接データの保存を実行することができる。また、どのデバイスからでもアドレス帳Ａの宛先データを参照できる。しかしながら、宛先データを使用して送信する処理はアドレス帳が存在するデバイスでのみで実行することが可能であるとする。本実施形態では、図２６に示すユーザの情報により、設定情報の一例が実現される。
【０１０７】
次に、図２７のフローチャートを参照しながら、ステップＳ１４１０のワークフロー分割処理の一例を詳細に説明する。尚、ワークフロー定義ファイル２に基づくワークフローの処理を実行する際のデバイス（１）の処理は、図１６に示した処理と同じであるため、その詳細な説明を省略する。尚、本実施形態でも、第２の実施形態と同様に、ユーザは、ユーザ署名付きのＰＤＦデータが添付されたメールの送信先のアドレスとして、UserAのアドレス帳Ａの４番のアドレスがパラメータとして指定された場合を例に挙げて説明を行う。本実施形態では、このパラメータも設定情報の一例となる。
【０１０８】
まず、ステップＳ２３０１において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを先頭から順番に１つ選択する。
次に、ステップＳ２３０２において、データ解析部３１４は、ステップＳ２３０１で選択したステップの処理を実行できるデバイスを１つ以上特定する。
次に、ステップＳ２３０３において、データ解析部３１４は、ステップＳ２３０２で特定したデバイスを、実行可能デバイスの候補として、そのデバイスの情報を一時的にＲＡＭ２０２等に記憶する。
【０１０９】
次に、ステップＳ２３０４において、データ解析部３１４は、ステップＳ１４０９で変更したワークフロー定義ファイル１７０１におけるステップを全て選択したか否かを判定する。この判定の結果、ワークフロー定義ファイル１７０１におけるステップを全て選択していない場合には、ステップＳ２３０１に戻り、次のステップが選択される。一方、ワークフロー定義ファイル１７０１におけるステップを全て選択した場合には、ステップＳ２３０５に進む。
【０１１０】
ステップＳ２３０５に進むと、ワークフロー定義変更部３１６は、ステップＳ２３０４までにチェックされた結果を利用して、ワークフロー定義ファイル２の各ステップにおける『実行可能デバイスの候補』を作成する。ここでは、「Scan」「ユーザ署名付きＰＤＦ作成」、「ＰＤＦを自分のアドレス帳の指定された番号の宛先に送信」、「ＰＤＦを自分専用のＢｏｘに保存」の各ステップにおける『実行可能デバイスの候補』の組み合わせとして次の組み合わせが作成される。すなわち、「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（１）」と「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（２）」と「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（３）」の組み合わせが作成される。
【０１１１】
次に、ステップＳ２３０６において、ワークフロー定義変更部３１６は、ステップＳ２３０５で作成された候補のうち、ワークフロー定義ファイルの分割数が最も少ない候補を特定する。前述した例では、「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（３）」の組み合わせが特定される。
次に、ステップＳ２３０７において、ワークフロー定義変更部３１６は、ステップＳ２３０６で特定された候補が、デバイスの組み合わせでなく、１つのデバイスからなるか否かを判定する。この判定の結果、ステップＳ２３０６で特定された候補が、１つのデバイスからなる場合には、後述するステップＳ２３１０に進む。一方、ステップＳ２３０６で特定された候補が、デバイスの組み合わせからなる場合には、ステップＳ２３０８に進む。
【０１１２】
ステップＳ２３０８に進むと、ワークフロー定義変更部３１６は、ステップＳ２３０６で特定された組み合わせに基づいて、ワークフローの処理を実行するデバイスの変更箇所で、ワークフロー定義ファイル内のワークフロー定義を分割する。
以上のように本実施形態では、例えば、ステップＳ２３０５〜Ｓ２３０８の処理を行うことにより分割手段の一例が実現される。
次に、ステップＳ２３０９において、ワークフロー定義変更部３１６は、ステップＳ２３０７で分割されたワークフロー定義を相互に結びつけるための送受信処理を、当該ワークフロー定義に追加してワークフロー定義ファイルを更新する。これにより、分割されたワークフロー定義に基づく処理が連結される。
以上のように本実施形態では、例えば、ステップＳ２３０９の処理を行うことにより追加手段の一例が実現される。
図２８は、更新後のワークフロー定義ファイル２８０１の一例を概念的に示す図である。
【０１１３】
次に、ステップＳ２３１０において、ワークフロー定義変更部３１６は、ワークフロー定義ファイルに基づくワークフローの処理を実行することが可能であるか否かを判定する。この判定の結果、ワークフロー処理を実行することが可能である場合には、図２７のフローチャートによる処理を終了して図１６のステップＳ１４１１に進む。
以上のように本実施形態では、例えば、ステップＳ２３１０の処理を行うことにより判定手段の一例が実現される。
一方、ワークフロー処理を実行することが不可能である場合には、ステップＳ２３１１に進む。本実施形態では、前述したように、デバイス（１）とデバイス（３）はネットワーク１００を経由して相互に通信を行うことが不可能である。そのため、図２８に示すワークフロー定義ファイル２８０１内のワークフロー定義において、デバイス（３）の実行処理である『ＰＤＦをデバイス（１）のBox-Aに保存」という処理を行うことができないと判定される。
【０１１４】
そして、ステップＳ２３１１に進むと、ワークフロー定義変更部３１６は、未だ選択されていない候補があるか否かを判定する。
この判定の結果、全ての候補が選択された場合には、ワークフロー定義ファイル２の各ステップを実行するデバイスの組み合わせがないと判断して、ステップＳ２３１３に進む。ステップＳ２３１３に進みと、ＵＩ処理部３１１は、ワークフローの処理を実行することが不可能であることを示す画像をタッチパネル部４２０に表示する等して、ワークフローの処理を実行することが不可能であることをユーザに通知して、処理を終了する。
【０１１５】
一方、未だ選択されていない候補がある場合には、ステップＳ２３１２に進む。ステップＳ２３１２に進むと、ワークフロー定義変更部３１６は、その候補の中から、ワークフロー定義の分割数が最も少ない候補を特定する。このとき、候補が複数存在する場合には、第３の実施形態で説明したように、ワークフロー定義の分割数以外の別の判断基準（例えば転送データ量の総量や、デバイスの使用状況等）を元に、候補を１つに絞る。そして、ステップＳ２３０７に戻る。
【０１１６】
本実施形態では、ステップＳ２３０５で作成された組み合わせのうち、ステップＳ２３０６で特定されなかった組み合わせ（残りの候補）として、次の組み合わせがある。すなわち、「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（１）」、「デバイス（１）−デバイス（２）−デバイス（３）−デバイス（２）」の２つが存在している。ここで、例えば、デバイス（１）とデバイス（２）の使用状況がチェックされて、ジョブを抱えていないデバイスがデバイス（２）であったとする。
そうすると、ステップＳ２３１１において、次の候補としてデバイス（１）−デバイス（２）−デバイス（３）−デバイス（２）」が選択され、再度、ステップＳ２３０６の処理が実行される。そして、ステップＳ２３０７に戻り、選択された候補が１つのデバイスからなるものではないと判定され、ステップＳ２３０８において、ワークフローの処理を実行するデバイスの変更箇所で、ワークフロー定義ファイル内のワークフロー定義が分割される。更に、ステップＳ２３０９において、分割されたワークフロー定義を相互に結びつけるための送受信処理が、分割されたワークフロー定義の夫々に追加される。図２９は、このようにして作成されたワークフロー定義ファイル２９０１の一例を概念的に示す図である。
【０１１７】
ここでワークフロー定義変更部３１６は、ステップＳ２３０９において、分割されたワークフロー定義を相互に結びつけるための送受信処理を追加するときに、送受信されるデータ量が最少となるようにするためのつなぎ合わせの処理も追加して行うのが好ましい。図２９に示す例では、ワークフロー定義変更部３１６は、デバイス（２）からデバイス（３）に送信されるデータは、デバイス（３）では一切変更されないと判断する。そして、ワークフロー定義変更部３１６は、デバイス（３）からデバイス（２）へのワークフロージョブを送信する際に、ＰＤＦデータの送信を行わないように、ワークフロー定義を変更する。更に、ワークフロー定義変更部３１６は、次のようにしてワークフロー定義を変更する。すなわち、デバイス（３）にワークフロージョブを送信する前に、デバイス（２）が、署名付きのＰＤＦデータをテンポラリファイルとして、ワークフロー定義テンポラリファイル情報格納部３２２に保存するように、ワークフロー定義を変更する。そして、ワークフロー定義変更部３１６は、デバイス（２）が、ＰＤＦデータのファイルを、デバイス（１）のBox-Aへ送信する際には、テンポラリファイルとして保存されているＰＤＦデータのファイルを使用するようにワークフロー定義を変更する。
これらの処理がステップＳ２３０９で実行される。そして、ステップＳ２３１０において、このワークフロー定義に基づくワークフローの実行が可能であると判断されて、図２７のフローチャートによる処理を終了して、図１６のステップＳ１４１１に進む。
【０１１８】
以上のように本実施形態では、ワークフロー定義の分割が最適になるように分割した後、そのワークフローを実行可能であるかどうか判断する。そして、実行不可能である場合には、ワークフロー定義の分割が最適でなくても実行可能となるように、前回の分割箇所とは異なる箇所でワークフロー定義の分割を行う。したがって、前述した第１〜第３の実施形態で説明した効果に加えて、実行環境に応じて最適なワークフロー定義を動的に生成して実行することが可能になるという効果が得られる。
更に本実施形態では、分割されたワークフロー定義を相互に結びつけるためのデータの送受信処理をワークフロー定義に追加する際に、送受信を行う必要がないデータを送受信しないようにした。したがって、より最適なワークフロー定義を動的に生成して実行することが可能になる。
尚、このような送受信を行う必要がないデータを送受信しないようにする処理を第１〜第３の実施形態に適用するようにしてもよい。
また、本実施形態においても、第１の実施形態で説明した種々の変形例を採ることができる。
【０１１９】
（本発明の他の実施形態）
前述した本発明の実施形態におけるワークフロー実行装置を構成する各手段、並びにワークフロー実行方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１２０】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１２１】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図７、１１、１３、１６、１８、２０、２３、２７のフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１２２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１２４】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１２５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１２６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１３０】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１３１】
【図１】本発明の第１の実施形態を示し、ワークフロー処理システムの全体構成の一例を示す図である。
【図２】本発明の第１の実施形態を示し、画像形成装置の構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態を示し、画像形成装置で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。
【図４】本発明の第１の実施形態を示し、画像形成装置の操作部２３０の外観構成の一例を示す図である。
【図５】本発明の第１の実施形態を示し、キー入力部とタッチパネル部の外観構成の一例を詳細に示す図である。
【図６】本発明の第１の実施形態を示し、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。
【図７】本発明の第１の実施形態を示し、ワークフロー定義ファイルに基づくワークフローの処理を実行する際のデバイス（１）の処理の一例を説明するフローチャートである。
【図８】本発明の第１の実施形態を示し、ワークフローの処理に先立って、デバイス（１）のタッチパネル部に表示される認証画面の一例を示す図である。
【図９】本発明の第１の実施形態を示し、ユーザ認証サーバでユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
【図１０】本発明の第１の実施形態を示し、ワークフロー定義ファイルの一例を概念的に示す図である。
【図１１】本発明の第１の実施形態を示し、ワークフロー分割処理の一例を詳細に説明するフローチャートである。
【図１２】本発明の第１の実施形態を示し、更新後のワークフロー定義ファイルの一例を概念的に示す図である。
【図１３】本発明の第１の実施形態を示し、ワークフロー定義ファイルに基づくワークフローの処理を実行する際のデバイス（２）の処理の一例を説明するフローチャートである。
【図１４】本発明の第２の実施形態を示し、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。
【図１５】本発明の第２の実施形態を示し、ユーザ認証サーバでユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
【図１６】本発明の第２の実施形態を示し、ワークフロー定義ファイルに基づくワークフローの処理を実行する際のデバイス（１）の処理の一例を説明するフローチャートである。
【図１７】本発明の第２の実施形態を示し、ユーザの情報とワークフロー実行パラメータとが反映されるように変更されたワークフロー定義ファイルの一例を示す図である。
【図１８】本発明の第２の実施形態を示し、ワークフロー分割処理の一例を詳細に説明するフローチャートである。
【図１９】本発明の第２の実施形態を示し、更新後のワークフロー定義ファイルの一例を概念的に示す図である。
【図２０】本発明の第２の実施形態を示し、ワークフロー定義ファイルに基づくワークフローの処理を実行する際のデバイス（２）の処理の一例を説明するフローチャートである。
【図２１】本発明の第３の実施形態を示し、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。
【図２２】本発明の第３の実施形態を示し、ユーザ認証サーバでユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
【図２３】本発明の第３の実施形態を示し、ワークフロー分割処理の一例を詳細に説明するフローチャートである。
【図２４】本発明の第３の実施形態を示し、更新後のワークフロー定義ファイルの一例を概念的に示す図である。
【図２５】本発明の第４の実施形態を示し、ワークフロー定義の内容と、そのワークフロー定義に基づくワークフローの処理を実行する画像形成装置（デバイス）の環境の一例を示す図である。
【図２６】本発明の第４の実施形態を示し、ユーザ認証サーバでユーザの情報を管理するために使用される管理テーブルの一例を示す図である。
【図２７】本発明の第４の実施形態を示し、ワークフロー分割処理の一例を詳細に説明するフローチャートである。
【図２８】本発明の第４の実施形態を示し、更新後のワークフロー定義ファイルの一例を概念的に示す図である。
【図２９】本発明の第４の実施形態を示し、最終的に得られるワークフロー定義ファイルの一例を概念的に示す図である。
【符号の説明】
【０１３２】
１００  ネットワーク
１１０  画像形成装置
１２０  ユーザ認証サーバ
３１０  処理部
３１１  ＵＩ処理部
３１２  制御部
３１３  ワークフロー処理実行部
３１４  データ解析部
３１５  データ入出力部
３１６  ワークフロー定義変更部
３２０  保存情報管理部
３２１  ワークフロー定義ファイル情報格納部
３２２  ワークフロー定義テンポラリファイル情報格納部
【図１】
0005121560.tif 000002
【図２】
0005121560.tif 000003
【図３】
0005121560.tif 000004
【図４】
0005121560.tif 000005
【図５】
0005121560.tif 000006
【図６】
0005121560.tif 000007
【図７】
0005121560.tif 000008
【図８】
0005121560.tif 000009
【図９】
0005121560.tif 000010
【図１０】
0005121560.tif 000011
【図１１】
0005121560.tif 000012
【図１２】
0005121560.tif 000013
【図１３】
0005121560.tif 000014
【図１４】
0005121560.tif 000015
【図１５】
0005121560.tif 000016
【図１６】
0005121560.tif 000017
【図１７】
0005121560.tif 000018
【図１８】
0005121560.tif 000019
【図１９】
0005121560.tif 000020
【図２０】
0005121560.tif 000021
【図２１】
0005121560.tif 000022
【図２２】
0005121560.tif 000023
【図２３】
0005121560.tif 000024
【図２４】
0005121560.tif 000025
【図２５】
0005121560.tif 000026
【図２６】
0005121560.tif 000027
【図２７】
0005121560.tif 000028
【図２８】
0005121560.tif 000029
【図２９】
0005121560.tif 000030