以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における画像処理システムの構成例を示す図である。図1において、画像処理システム1は、画像形成装置10a及び10b等、一台以上の画像形成装置(以下、総称する場合「画像形成装置10」という。)と、管理サーバ20と、クライアントPC30a及び30b等、一台以上のクライアントPC(以下、総称する場合「クライアントPC30」という。)と等を構成要素としている。各構成要素は、LAN(Local Area Network)等のネットワークによって接続されている。
画像形成装置10は、コピー機、プリンタ又は複合機等の画像形成装置であり、画像処理装置又は画像処理装置を含む機器の一例である。画像形成装置10は、その出荷後にJava(登録商標)言語又はC言語等によって開発されたアプリケーションの追加又は削除等が可能である。本実施の形態でアプリケーションとは、画像形成装置10が、ユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスを提供するソフトウェアをいう。かかる意味において、厳密には、画像形成装置10は、アプリケーションを構成する機能単位での追加又は削除等が可能である。本発明者は、画像形成装置のアプリケーションは、データの入力処理、加工処理、及び出力処理等によって構成されるものと考える。アプリケーションの構成要素をこのように分類し、かかる構成要素(以下「処理部品」という。)を単位として機能の追加又は削除等を可能とすれば、アプリケーション単位で機能の追加又は削除等が可能な場合にくらべて、開発効率を向上させることができるとともに、ユーザに対して、柔軟なサービスを提供することができる。なお、本実施の形態において、入力処理を実行する処理部品を特に入力部品という。また、加工処理を実行する処理部品を特に加工部品という。また、出力処理を実行する処理部品を特に出力部品という。
管理サーバ20は、一台以上の画像形成装置10を統合的に管理するための機能が実装された汎用的なコンピュータである。クライアントPC30は、画像形成装置10又は管理サーバ20に対する操作手段(ユーザインタフェース)を提供するための汎用的なコンピュータである。
図2は、第一の実施の形態における画像処理システムの機能構成例を示す図である。なお、図2においては、便宜上、本実施の形態の説明に必要な構成要素のみが示されている。図2において、画像形成装置10は、ハードウェアとして、操作パネル11、HDD(Hard Disk Drive)12、プロッタ13、画像情報加工装置14、及びスキャナ15等を有する。また、画像形成装置10は、ソフトウェアによって構成される機能として、通信部101、操作パネル制御部102、フロー登録部103、フロー解析処理部104、フロー記憶部105、HDD制御部106、プロッタ制御部107、画像情報加工装置制御部108、及びスキャナ制御部109等を有する。
通信部101は、ネットワークを介した通信を制御する。操作パネル制御部102は、操作パネル11を介した情報の入出力制御を行う。フロー登録部103は、ユーザにジョブフローを登録させるための処理を制御する。ここで、ジョブフローとは、アプリケーションにおける処理の流れを制御するための情報をいい、処理部品の組み合わせとその実行順を示す情報等によって構成される。すなわち、本実施の形態における画像形成装置10は、予め、処理部品の組み合わせ等をジョブフローとして登録することが可能であり、画像形成装置10のユーザは、その利用時にはジョブフローを選択することでサービスの提供を受けることができる。フロー記憶部105は、フロー登録部103が登録させたジョブフローを所定の形式でHDD12に記録し、管理する。フロー解析処理部104は、ユーザによって実行が指示されたジョブフローの実行制御等を行う。フロー解析処理部104は、また、フロー登録部103がジョブフローを登録させる際に必要となる、画像形成装置10において利用可能な処理部品の一覧の提供等を行う。
HDD制御部106、プロッタ制御部107、画像情報加工装置制御部108,及びスキャナ制御部109等は、処理部品に相当する。HDD制御部106は、HDD12へのデータ登録(出力)や、HDD12からのデータの読み込み(入力)を行う処理部品である。プロッタ制御部107は、画像データをプロッタ13に出力させる処理部品である。画像情報加工装置制御部108は、画像変換(加工)を画像情報加工装置14に実行させる処理部品である。スキャナ制御部109は、スキャナ15に原稿を読み取らせ、画像データを入力するための処理部品である。すなわち、本実施の形態において、ジョブフローは、HDD制御部106、プロッタ制御部107、画像情報加工装置制御部108、又はスキャナ制御部109等によって提供される機能の組み合わせによって構成される。なお、上述したように、画像形成装置10は、処理部品単位で追加又は削除等が可能である。したがって、図中に示される以外の処理部品を運用に応じて適宜開発し、インストールすることが可能である。
一方、管理サーバ20は、ソフトウェアによって構成される機能として通信部201及びフロー登録部202等を有する。これらは、画像形成装置10における通信部101又はフロー登録部103と同様の機能を実現する。
また、クライアントPC30は、ソフトウェアによって構成される機能として通信部301及びリモートUI302等を有する。通信部301は、ネットワークを介した通信を制御する。リモートUI302は、ネットワークを介して画像形成装置10又は管理サーバ20等を操作するためのユーザインタフェースを提供する。リモートUI302は、本実施の形態では汎用的なWebブラウザが相当する。但し、専用のアプリケーションによってリモートUI302を構成してもよい。
以下、画像処理システム1の処理手順について説明する。まず、ジョブフローの登録時において実行される処理手順について説明する。図3及び図4は、一台の画像形成装置に対するジョブフローの登録処理の処理手順を説明するためのシーケンス図である。
クライアントPC30において、ユーザが、リモートUI302に特定の画像形成装置10(例えば、画像形成装置10a)のジョブフロー生成画面の表示を指示すると、リモートUI302は、ジョブフロー生成画面の取得を通信部301に要求する(S101)。ここで、ジョブフロー生成画面とは、処理部品を組み合わせることによりジョブフローを生成し、登録するための画面をいう。また、ユーザによるジョブフロー生成画面の表示指示は、例えば画像形成装置10によって提供されるホームページ等において入力され、その際に、ジョブフローの登録先の画像形成装置10が選択される。ここでは、画像形成装置10aが選択されたこととする。通信部301は、画像形成装置10aの通信部101にジョブフロー生成画面の送信を要求する(S102)。
通信部101は、クライアントPC30からの要求に応じ、フロー登録部103を呼び出し、ジョブフロー生成画面の生成を要求する(S103)。フロー登録部103は、ジョブフロー生成画面の生成に必要な情報として、画像形成装置10aにおいて利用可能な処理部品の一覧をフロー解析処理部104に要求する(S104)。すなわち、各画像形成装置10には、当該画像形成装置10において利用可能な処理部品の一覧(処理部品一覧)が、例えばHDD12に保存されている。したがって、フロー解析処理部104は、保存されている処理部品一覧を取得し、フロー登録部103に返却する(S105)。なお、処理部品一覧は、処理部品の追加又は削除(インストール又はアンインストール)に応じて更新される。フロー登録部103は、ジョブフロー生成画面を表示させるHTMLデータを、処理部品一覧を用いて生成し(S106)、処理部品一覧が表示内容として含まれているHTMLデータを通信部101に出力する(S107)。
当該HTMLデータは、通信部101によってクライアントPC30に送信され、クライアントPC30の通信部301によって受信される(S108)。通信部301が、受信したHTMLデータをリモートUI302に出力すると(S109)、リモートUI302は、当該HTMLデータに基づいてジョブフロー生成画面をクライアントPC30の表示装置に表示させる(S110)。
図5は、ジョブフロー生成画面の表示例を示す図である。図5において、(A)は、ジョブフロー生成画面510の初期状態(表示直後の状態)を示し、(B)は、ユーザによってジョブフローが生成(又は定義)された状態を示す。
ジョブフロー生成画面510は主に、ジョブフロー生成領域501と処理部品一覧領域502とより構成されている。処理部品一覧領域502は、画像形成装置10aにおいて利用可能な処理部品のアイコン又はボタン等の一覧が表示される領域である。ジョブフロー生成領域501は、処理部品一覧領域502において表示されている処理部品のアイコン(処理部品アイコン)を用いて一つのジョブフローを生成させるための領域である。図中(B)に示されるように、ジョブフローの生成は、処理部品一覧領域502における処理部品アイコンをドラッグ・アンド・ドロップにより処理の実行順に接続することにより行われる。例えば、コピーを実行させるためのジョブフローは、スキャナ入力を実行する処理部品(スキャナ入力部品)、画像変換を実行するための処理部品(画像変換部品)、及びプロッタ出力を実行するための処理部品(プロッタ出力部品)等を接続することで定義される。また、ジョブフロー生成領域501に配置された処理部品アイコンをダブルクリックすると、当該処理部品アイコンの実行条件を設定させるための画面が表示され、当該画面において当該処理部品の実行条件(例えば、スキャナ入力部品であれば、解像度、用紙サイズ等)を設定することができる。なお、本実施の形態において、リモートUI302は、Webブラウザであるため、厳密にはその表示画面の遷移の際はWebサーバ(本実施の形態では、画像形成装置10a)と通信が行われるが、便宜上、当該通信の発生については省略して説明する。
なお、一つのジョブフローにおいて、入力部品、加工部品、及び出力部品はそれぞれ複数利用することができる。例えば、スキャンされた画像と、画像形成装置10のHDD12に保存されている画像とを合成して印刷すると共にFAX送信するといったような場合、少なくとも二つの入力部品と二つの出力部品とが選択される。
ジョブフロー生成画面510においてジョブフローの生成が完了し、OKボタン503がクリックされると、リモートUI302は、ジョブフローの名前(ジョブフロー名)を入力させるための画面を表示させる。当該画面においてジョブフロー名が入力されると、リモートUI302は、ジョブフローの登録要求を通信部301に対して出力する(図4:S121)。ジョブフローの登録要求には、ジョブフロー生成画面510等において設定された情報、すなわち、ジョブフロー名、ジョブフローを構成する処理部品の識別情報、処理部品の実行順、及び各処理部品の実行条件等を内容とする情報(以下「ジョブフロー情報」という。)が含まれている。ジョブフローの登録要求は、通信部301によって画像形成装置10aに送信され、画像形成装置10aの通信部101によって受信される(S122)。
通信部101は、ジョブフローの登録要求に応じ、フロー登録部103を呼び出し、ジョブフローの登録を指示する(S123)。フロー登録部103は、フロー記憶部105に対し、ジョブフロー情報の保存を要求する(S124)。フロー記憶部105は、HDD制御部106を介して、HDD12に所定の形式でジョブフロー情報を保存し(S125、S126)、ジョブフロー情報の保存を完了した旨をフロー登録部103に通知する。(S127)。
図6は、ジョブフロー情報の保存形式の例を概念的に示す図である。図6に示されるジョブフロー情報1040は、ジョブフローごとにジョブフロー名、フロー作成者、及びフロー登録日等(表1041参照)と、ジョブフローを構成する処理部品およびその実行情報(実行順及び実行条件)(表1042参照)と等を含むように保存される。なお、図中では、「コピー+FAXフロー」については、処理部品がスキャナ(入力部品)、プロッタ(出力部品)、ファクス(出力部品)等より構成される旨が示されている。すなわち、「コピー+FAXフロー」は、スキャナで読み込んだ画像を、プロッタで出力すると共に、FAX送信するといったアプリケーションを実現するジョブフローである。なお、ジョブフロー名は、ユーザに入力させるのではなく、例えば、ジョブフローを構成する処理部品の機能等に基づいて自動的に作成されるようにしてもよい。
ジョブフローの登録完了通知は、ジョブフロー登録部103及び通信部101を介してクライアントPC30に送信され(S128、S129)、クライアントPC30の通信部301を介してリモートUI302に通知される(S130)。リモートUI302は、ジョブフローの登録が完了した旨を表示させる(S131)。なお、ここで、ユーザに確認させるため、登録されたジョブフローの内容を表示させてもよい。
次に、複数台の画像形成装置10に対して一度にジョブフローを登録する例について説明する。図7及び図8は、複数の画像形成装置に対するジョブフローの一括登録処理の処理手順を説明するためのシーケンス図である。なお、図7及び図8において、画像形成装置10a及び10bの構成要素を区別するために、画像形成装置10aの構成要素には「a」を、画像形成装置10bの構成要素には「b」を参照番号の後に付加している。
クライアントPC30において、ユーザが、リモートUI302に複数の画像形成装置10(ここでは、画像形成装置10a及び10bとする)に対するジョブフロー生成画面の表示を指示すると(すなわち、ジョブフローの登録先として画像形成装置10a及び10bが選択されると)、リモートUI302は、ジョブフロー生成画面の取得を通信部301に要求する(S151)。当該ジョブフロー生成画面の取得要求には、画像形成装置10a及び10bを登録先とすることが示されている。通信部301は、画像形成装置10aの通信部101aにジョブフロー生成画面の送信を要求する(S152)。通信部101aは、クライアントPC30からの要求に応じ、フロー登録部103を呼び出し、画像形成装置10a及び10bに対するジョブフロー生成画面の生成を要求する(S153)。ジョブフローの登録先が、画像形成装置10a及び10bであることは、ジョブフロー生成画面の生成要求によってフロー登録部103aに伝達される。
フロー登録部103aは、ジョブフロー生成画面の生成要求に基づいて、登録先に含まれている全ての画像形成装置10の処理部品一覧を収集する。まず、フロー解析処理部104aより、画像形成装置10aにおいて利用可能な処理部品の一覧を取得する(S154、S155)。続いて、フロー登録部103aは、通信部101aに対して、画像形成装置10bにおいて利用可能な処理部品の一覧の取得を要求する(S156)。通信部101aは、画像形成装置10bに対し処理部品の一覧を要求する(S157)。画像形成装置10bの通信部101bは、当該要求に応じ、フロー解析部104bより画像形成装置10bにおける処理部品一覧を取得し(S158、S159)、当該処理部品一覧を返信する(S160)。
画像形成装置10aの通信部101aは、画像形成装置10bの処理部品一覧を受信すると、フロー登録部103aに出力する(S161)。フロー登録部103aは、画像形成装置10aの処理部品一覧と、画像形成装置10bの処理部品一覧との論理和を求め、論理和によって得られた処理部品一覧を用いてジョブフロー生成画面を表示させるHTMLデータを生成し(S162)、当該処理部品一覧が表示内容として含まれているHTMLデータを通信部101aに出力する(S163)。以降ステップS163〜S166までは、図3におけるステップS107〜S110までと同様である。したがって、ステップS166において表示されるジョブフロー生成画面510の処理部品一覧には、2台の画像形成装置10の処理部品一覧の論理和による一覧が表示される。なお、ジョブフロー生成画面510の操作方法は、図5において説明した通りである。よって、ユーザは、論理和による処理部品一覧から利用する処理部品を選択しジョブフローを生成する。
ジョブフロー生成画面510においてジョブフローの生成が完了し、OKボタン503がクリックされ、更に、ジョブフロー名が入力されると、リモートUI302は、ジョブフローの一括登録要求を通信部301を介して画像形成装置10aに送信する(図8:S171)。図8において、ジョブフローの一括登録要求には、ジョブフロー情報の他にジョブフローの登録先の画像形成装置10の識別情報(ホスト名又はIPアドレス等)が含まれている。したがって、ここでは、画像形成装置10a及び10bの識別情報が含まれている。なお、図8では通信部301は表示されていないが、これは便宜的なものである。
画像形成装置10aの通信部101aは、ジョブフローの一括登録要求に応じ、フロー登録部103aを呼び出し、ジョブフローの一括登録を指示する(S172)。フロー登録部103aは、フロー記憶部105aに対し、ジョブフロー情報の保存を要求する(S173)。フロー記憶部105aは、HDD制御部106aを介して、HDD12に所定の形式でジョブフロー情報を保存し(S174、S175)、ジョブフロー情報の保存を完了した旨をフロー登録部103aに通知する。(S176)。続いて、フロー登録部103aは、ジョブフローの一括登録要求において、登録先に画像形成装置10bが含まれていることに基づいて、画像形成装置10bへのジョブフローの登録を通信部101aに要求する(S177)。
通信部101aは、画像形成装置10bに対しジョブフローの登録を要求する(S178)。ジョブフローの登録要求は、画像形成装置10bの通信部101bによって受信され、図4のステップS123〜S128と同様の手順で、画像形成装置10bにジョブフロー情報が登録される(S179〜S184)。なお、画像形成装置10bには、画像形成装置10aと同一のジョブフロー情報が登録される。通信部101bは、画像形成装置10bにおいてジョブフロー情報の登録が完了したことを画像形成装置10aの通信部101aに通知する(S185)。当該通知は、フロー登録部102aに伝えられる(S186)。フロー登録部102aは、ジョブフローの一括登録要求において登録先に含まれている全ての画像形成装置10へのジョブフローの登録が完了したことを確認すると、ジョブフローの登録完了通知を通信部101aを介してクライアントPC30に送信する(S187、S188)。クライアントPC30のリモートUI302は、ジョブフローの登録が完了した旨を表示させる(S189)。
このように、ジョブフロー生成画面510における一度の操作で、複数の画像形成装置10にジョブフローを登録することができる。したがって、個々にジョブフローを登録する場合に比べ、作業効率を向上させることができる。なお、図7及び図8では、画像形成装置10aがクライアントPC30に対する窓口としての役割を果たしていたが、当該窓口は、管理サーバ20が行ってもよい。すなわち、管理サーバ20がクライアントPC30よりジョブフローの一括登録の要求を受け付け、登録先に指定されている各画像形成装置10に対して、ジョブフロー情報の登録を要求するといった具合である。この場合、管理サーバ20における通信部201、フロー登録部202は、図8における通信部101a、フロー登録部103aと同様の処理を実行する。但し、管理サーバ20自身にはジョブフローは登録されないため、管理サーバ20に対するジョブフローの登録処理は実行されない。
また、図3〜図8においては、リモートUI302を介してジョブフローの登録操作が行われる例を示したが、画像形成装置10の操作パネル11を介してジョブフローの登録操作が行われてもよい。この場合、操作パネル11が表示装置として機能し、ジョブフロー生成画面の表示等が行われる。
次に、登録されたジョブフローを実行する際の処理手順について説明する。図9は、ジョブフローの実行処理の第一の処理手順を説明するためのシーケンス図である。
画像形成装置10に電源が投入されると、各処理部品は、自らが利用可能であることをフロー解析処理部104に通知する。例えば、スキャナ制御部109は、スキャナ15の状態をチェックし、異常が無ければスキャナ制御部109(スキャナ15からの入力機能)が利用可能であることをフロー解析処理部104に通知する(S201)。プロッタ制御部107は、プロッタ13の状態をチェックし、異常が無ければプロッタ制御部107(プロッタ13への出力機能)が利用可能であることをフロー解析処理部104に通知する(S202)。画像情報加工装置制御部108は、画像情報加工装置14の状態をチェックし、異常が無ければ画像情報加工装置制御部108(画像情報の加工機能)が利用可能であることをフロー解析処理部104に通知する(S203)。HDD制御部106は、HDD12の状態をチェックし、異常が無ければHDD制御部16(HDD12に対する入出力機能)が利用可能であることをフロー解析処理部104に通知する(S204)。なお、他の処理部品がインストールされた場合、当該他の処理部品からも利用可能の通知が行われる。
また、フロー記憶部105は、電源の投入に応じ、HDD12に保存されているジョブフロー情報を読み出し、当該ジョブフロー情報を操作パネル制御部102に出力する(S205)。操作パネル制御部102は、当該ジョブフロー情報に基づいて、画像形成装置10に登録されているジョブフロー(ジョブフロー名)の一覧画面(ジョブフロー一覧画面)を操作パネル11に表示させる。(S206)。但し、ジョブフロー一覧画面は、ネットワークを介して画像形成装置10と接続するPC等の外部機器の表示装置に表示させてもよい。
ユーザが、操作パネル11に表示されたジョブフロー一覧画面の中から所望のジョブフローを選択すると、操作パネル制御部102は、選択されたジョブフローの識別情報(例えば、ジョブフロー名)を通知することにより、当該ジョブフロー(以下「カレントジョブフロー」という。)の実行をフロー解析処理部104に指示する(S208)。ここでは、スキャナ13によって画像データを入力し、当該画像データを集約加工し、集約加工された画像データをプロッタ13に出力すると共に、HDD12に蓄積保存するといったジョブフローがカレントジョブフローとして選択されたものとする。
フロー解析処理部104は、操作パネル制御部102より通知されたジョブフロー名に基づいてカレントジョブフローのジョブフロー情報を取得し、当該ジョブフロー情報等に基づいて以降の処理を動的に制御する。フロー解析処理部104は、まず、カレントジョブフローを構成する処理部品を判断し、当該各処理部品に対して処理の実行を指示する。具体的には、図9においては、スキャナ入力部品としてのスキャナ制御部109と、集約加工部品としての画像情報加工装置制御部108と、プロッタ出力部品としてのプロッタ制御部107と、HDD出力部品としてのHDD制御部106に対して、並列的に実行指示が行われる(S209〜S212)。
各処理部品に対し並列的に実行指示が行われるのは、本実施の形態では各処理部品間の同期はそれぞれの処理部品を接続するパイプによってとられるからである。ここで、パイプとは、各処理部品間のデータの伝達手段を抽象的に表現した概念であり、その実体は各種のメモリによって実現される。フロー解析部104は、各処理部品に対し処理の実行指示の際に入力側のパイプと出力側のパイプとを指定する。各処理部品は、入力側のパイプにデータが入力されるのを待機し、入力側のパイプにデータが入力されると当該データに対して処理を実行し、出力側のパイプに処理結果としてのデータを出力する。ここで、一つ前の処理を実行する処理部品の出力側のパイプと、次の処理を実行する入力側のパイプとは一致する。したがって、或る処理部品が、出力側のパイプに処理結果としてのデータを出力すれば、次の処理部品は当該処理部品にとっての入力側のパイプへのデータの入力を検知し、処理を開始するというわけである。但し、入力部品として機能する処理部品は、パイプからの入力ではなく、当該処理部品が対応するデバイス(スキャナ15又はネットワーク等)からデータの入力を受け付ける。また、出力部品として機能する処理部品は、パイプへの出力ではなく、当該処理部品が対応するデバイス(HDD12又はプロッタ13等)にデータを出力する。なお、本発明の実施にあたり、必ずしもパイプによって同期をとる必要はなく、フロー解析部104が処理部品間の処理の同期を制御するようにしてもよい。この場合、フロー解析部104は、或る処理部品の処理の終了に応じ、次の処理部品に対して処理の実行指示を行うといった制御を行えばよい。
フロー解析処理部104からの実行指示に応じ、まず、入力部品(スキャナ入力部品)であるスキャナ制御部109は、スキャナ15からの画像データの読み取りを実行する(S213)。スキャナ制御部109は、読みとられた画像データを画像情報加工装置制御部108との間のパイプ(以下、「パイプA」という。)に出力すると共に(S214)、処理の完了をフロー解析処理部104に通知する(S215)。
画像情報加工装置制御部108は、パイプAへの画像データの入力を検知すると当該画像データの加工処理(ここでは、集約処理)を実行する(S216)。加工処理が完了すると、画像情報加工装置制御部108は、プロッタ制御部107との間のパイプ(以下、「パイプB」という。)と、HDD制御部106と間のパイプ(以下、「パイプC」という。)とに加工データを出力すると共に(S217、S218)、処理の完了をフロー解析処理部104に通知する(S219)。
続いて、プロッタ制御部107及びHDD制御部106は、並列的に処理を実行する。プロッタ制御部107は、パイプBへの加工データの入力を検知すると、当該加工データをプロッタ13に出力(印刷)させる(S220)。また、HDD制御部106は、パイプCへの加工データの入力を検知すると、当該加工データをHDD12に出力(保存)する(S221)。プロッタ制御部107及びHDD制御部106は、それぞれの処理が完了すると、その完了をフロー解析処理部104に通知する(S219)。
フロー解析処理部104は、処理の実行指示を行った全ての処理部品から処理の完了通知を受け取ると、操作パネル制御部102に対してジョブフローの完了を通知する(S224)。操作パネル制御部102は、当該通知に応じて、例えば処理の完了を通知するメッセージを操作パネル11に表示させる。
このように、本実施の形態における画像形成装置10によれば、予め登録されたジョブフローに従って処理を実行させることができる。
ところで、画像形成装置10は、処理部品単位でインストール又はアンインストールが可能である。したがって、ジョブフローの登録時に存在した処理部品が、当該ジョブフローの実行時には存在しない場合が有り得る。当該ジョブフローの登録後に、処理部品がアンインストールされてしまう可能性が有るからである。また、図7及び図8において説明したようなジョブフローの登録処理では、複数の画像形成装置10より収集された処理部品の一覧に基づいてジョブフローが生成され、そのように生成された同一のジョブフローが各画像形成装置10に登録される。したがって、それぞれの画像形成装置10にインストールされている処理部品が異なる場合、インストールされていない処理部品を利用するジョブフローが画像形成装置10に登録される可能性がある。また、デバイスの異常等によって、インストールはされていても利用できない処理部品が存在する可能性もある。
そこで、かかる事態(利用できない処理部品を含むジョブフローが登録されている事態)の発生を考慮したジョブフローの実行処理を図10において説明する。図10は、ジョブフローの実行処理の第二の処理手順を説明するためのシーケンス図である。
ステップS301〜S304までは、図9のステップS201〜S204までと同様であるため、ここでの説明は省略する。
ステップS305において、フロー記憶部105は、電源の投入に応じHDD12に保存されているジョブフロー情報を読み出し、当該ジョブフロー情報をフロー解析処理部104に出力する(S305)。フロー解析処理部104は、ジョブフロー情報等に基づいて、登録されている各ジョブフローの実行の可否を判断する(S306)。図11は、ジョブフローの実行可否の判断方法を説明するための図である。図11において(A)は、ジョブフローが実行可能であると判断される場合を示し、(B)は、ジョブフローが実行不可能であると判断される場合を示す。
(A)又は(B)において、表1042a及び表1042bは、図6の表1042に相当する。すなわち、表1042a及び表1042bは、ジョブフロー情報の一部を構成する情報であり、ジョブフローを構成する処理部品及びその実行順を示す情報である。また、処理部品情報1050は、各処理部品からの利用可否の通知に基づいて、フロー解析処理部104によって生成される情報であり、利用可能通知があった処理部品ごとに当該処理部品が実装されているプログラムのプログラム名との関連付けが定義されている。ここで、プログラム名は、当該プログラムを動的に呼び出すために必要とされる識別名であり、例えば、プログラムの保存位置を示すアドレス情報であってもよい。当該プログラム名は、利用可能通知の際に各処理部品よりフロー解析処理部104に通知される。処理部品情報1050を動的に作成することで、フロー解析処理部104は、インストールされている処理部品を事前に知らなくても、その実行時に画像形形成装置10がとのような機能(処理部品)を保有しており、どのプログラムがどの機能を実行できるのかを実行時に知ることができる。
フロー解析処理部104は、これらの情報を用いて各ジョブフローの実行の可否を判断する。例えば、(A)の場合、ジョブフローを構成する処理部品は、スキャナ入力部品とプロッタ出力部品である。したがって、フロー解析処理部104は、処理部品情報1050において、スキャナ入力部品とプロッタ出力部品とのエントリを検索する。図11においては、処理部品情報1050に両処理部品のエントリが存在するため、フロー解析処理部104は、当該ジョブフローは実行可能であると判断する。
一方、(B)の場合、ジョブフローを構成する処理部品は、スキャナ入力部品とメール送信部品である。しかし、処理部品情報1050には、メール送信部品のエントリは存在しない。この場合、少なくとも一部の処理(メール送信)が実行できないため、ジョブフロー解析処理部104は、当該ジョブフローは実行不可能であると判断する。
各ジョブフローの実行の可否の判断を完了すると、フロー解析処理部104は、各ジョブフローについて実行の可否と共に、ジョブフロー情報を操作パネル制御部102に通知する(S307、S308)。
操作パネル制御部102は、フロー解析処理部104より通知される情報に基づいて、ジョブフロー一覧画面を操作パネル11に表示させる。(S309)。図12は、ジョブフロー一覧画面の表示例を示す図である。
図12に示されるように、ジョブフロー一覧画面111には実行可能なジョブフローと実行不可能なジョブフローとが区別されて表示されている。したがって、ユーザは、実行可能なジョブフローと実行不可能なジョブフローとを容易に識別することができる。
ジョブフロー一覧画面111において、各ジョブフローは、選択可能なボタンによって表示されている。いずれかのジョブフローが選択され、詳細ボタン1113が押下されると、操作パネル制御部102は、選択されたジョブフローの詳細画面(ジョブフロー詳細画面)を操作パネル11に表示させる。図13は、ジョブフロー詳細画面の表示例を示す図である。
図13において、(A)は、実行可能なジョブフローのジョブフロー詳細画面112を示す。ジョブフロー詳細画面112では、当該ジョブフローの処理の流れが処理部品単位で表示される。(A)では、図9及び図10において説明されるジョブフローの処理の流れが表示されている。すなわち、スキャナ入力が行われ、集約加工が行われ、その後に、プロッタ出力とHDD蓄積とが並列的に実行される旨が表示されている。
一方、(B)は、実行不可能なジョブフローのジョブフロー詳細画面112を示す。実行不可能な場合も、ジョブフローの処理の流れが処理部品単位で表示される。但し、実行不可能の原因となった処理部品が識別可能なように(例えば、グレーアウトされて)表示される。(B)では、メール送信がグレーアウトされて表示されている。したがって、ユーザは、当該ジョブフローが実行不可能である理由を容易に確認することができる。
なお、図12のジョブフロー一覧画面111において、実行可能なジョブフローのみを表示させるようにしてもよい。
ジョブフロー一覧画面111において、実行可能なジョブフローが選択され、実行ボタン1112が押下されると、操作パネル制御部102は、選択されたジョブフローの識別情報(例えば、ジョブフロー名)を通知することにより、当該ジョブフローの実行をフロー解析処理部104に指示する(S310)。ステップS311以降は、図9におけるステップS209以降と同様であるのでここでの説明は省略する。なお、ステップS311〜S314においてフロー解析処理部104は、図11に示される処理部品情報1050に基づいて、各処理部品に対応するプログラムを動的に呼び出す。この点は、図9においても同様である。処理部品が対応するプログラムが、実行時に動的に呼び出されることにより、処理部品の追加による機能拡張に対して柔軟に対応することができる。
次に、ジョブフローの他のバリエーションの処理手順について説明する。まず、図14に示されるようなジョブフロー(以下「ジョブフローA」という。)の処理手順について説明する。図14は、ジョブフローAの詳細画面の表示例を示す図である。
図14に示されるように、ジョブフローAは、スキャナより画像データを入力し、その画像データに対して集約加工を施し、加工データをプロッタ出力した後にHDD12に蓄積するといったものである。すなわち、ジョブフローAは、プロッタ出力とHDD蓄積とが直列的に順次実行される点が、図10において説明したジョブフローと異なる。
図15は、ジョブフローAの実行処理の処理手順を説明するためのシーケンス図である。図15中、図10と同一ステップ(S301〜S310)については同一ステップ番号を付し、その説明は省略する。
操作パネル制御部102よりカレントジョブフロー(ジョブフローA)の実行指示を受けると、フロー解析処理部104は、ジョブフローAを構成する各処理部品に対して処理の実行指示を並列的に出力する(S411〜S413)。但し、HDD制御部106に対してはこのタイミングでは実行指示は行わない。すなわち、フロー解析処理部104はカレントジョブフローが出力部品を複数含んでおり、当該出力部品が直列的に実行される場合は、このタイミングでは出力部品内で一番目の処理部品に対してのみ実行指示を出力する。したがって、ここでは、スキャナ制御部109、画像情報加工装置制御部108及びプロッタ制御部107に対して実行指示が出力される。
フロー解析処理部104からの実行指示に応じ、まず、入力部品(スキャナ入力部品)であるスキャナ制御部109は、スキャナ15からの画像データの読み取りを実行する(S414)。スキャナ制御部109は、読みとられた画像データを画像情報加工装置制御部108との間のパイプAに出力すると共に(S415)、処理の完了をフロー解析処理部104に通知する(S416)。
画像情報加工装置制御部108は、パイプAへの画像データの入力を検知すると当該画像データの加工処理(ここでは、集約処理)を実行する(S417)。加工処理が完了すると、画像情報加工装置制御部108は、プロッタ制御部107との間のパイプBと、HDD制御部106と間のパイプCとに加工データを出力すると共に(S418、S419)、処理の完了をフロー解析処理部104に通知する(S420)。
プロッタ制御部107は、パイプBへの加工データの入力を検知すると、当該加工データをプロッタ13に出力(印刷)させると共に(S421)、処理の完了をフロー解析処理部104に通知する(S422)。一方、パイプCに加工データが入力されても、HDD制御部106は処理を開始しない。HDD制御部106にはフロー解析処理部104より実行指示が入力されておらず、HDD制御部106はパイプCに対する加工データの入力を待ち合わせていないからである。
プロッタ制御部107からの完了通知に応じ、フロー解析処理部104は、出力部品として二番目の処理部品であるHDD制御部106に対して実行指示を行う(S423)。HDD制御部106は、当該実行指示に応じパイプCへの加工データの入力を検知し、当該加工データをHDD12に出力(保存)する(S424)。HDD12への出力が完了すると、HDD制御部106は、処理の完了をフロー解析処理部104に通知する(S425)。
フロー解析処理部104は、処理の実行指示を行った全ての処理部品から処理の完了通知を受け取ると、操作パネル制御部102に対してジョブフローの完了を通知する(S426)。操作パネル制御部102は、当該通知に応じて、例えば処理の完了を通知するメッセージを操作パネル11に表示させる。
このように、本実施の形態における画像形成装置10は、出力部品が直列的に順次実行されるジョブフローの実行も制御することができる。したがって、ジョブフローについて多様な設定が可能となり、利便性を向上させることができる。
次に、図16に示されるようなジョブフロー(以下「ジョブフローB」という。)の処理手順について説明する。図16は、ジョブフローBの詳細画面の表示例を示す図である。図16のジョブフロー詳細画面112において、三角記号は、ユーザからの入力(例えば、スタートボタンの押下)の待ち合わせを意味する。したがって、ジョブフローBは、スキャナより画像データを入力し、その画像データに対して集約加工を施し、ユーザからの入力を待ち合わせた後、その加工データのプロッタ出力処理とHDD蓄積処理とを並列的に実行するといったものである。すなわち、ジョブフローBは、画像データの加工後に、ユーザによる入力(例えば、スタートボタンの押下等)を待ち合わせる点が、図10において説明したジョブフローと異なる。
図17は、ジョブフローBの実行処理の処理手順を説明するためのシーケンス図である。図17中、図10と同一ステップ(S301〜S310)については同一ステップ番号を付し、その説明は省略する。
操作パネル制御部102よりカレントジョブフロー(ジョブフローB)の実行指示を受けると、フロー解析処理部104は、ジョブフローBを構成する各処理部品に対して処理の実行指示を並列的に出力する(S511、S512)。但し、プロッタ制御部107及びHDD制御部106に対してはこのタイミングでは実行指示は行わない。すなわち、フロー解析処理部104は、カレントジョブフローがユーザ入力の待ち合わせを含む場合は、当該待ち合わせ後に実行される処理部品についてはこのタイミングでは実行指示を行わない。したがって、ここでは、スキャナ制御部109及び画像情報加工装置制御部108に対して実行指示が出力される。
フロー解析処理部104からの実行指示に応じ、まず、入力部品(スキャナ入力部品)であるスキャナ制御部109は、スキャナ15からの画像データの読み取りを実行する(S513)。スキャナ制御部109は、読みとられた画像データを画像情報加工装置制御部108との間のパイプAに出力すると共に(S514)、処理の完了をフロー解析処理部104に通知する(S515)。
画像情報加工装置制御部108は、パイプAへの画像データの入力を検知すると当該画像データの加工処理(ここでは、集約処理)を実行する(S516)。加工処理が完了すると、画像情報加工装置制御部108は、処理の完了をフロー解析処理部104に通知すると共に(S517)、プロッタ制御部107との間のパイプBと、HDD制御部106と間のパイプCとに加工データを出力する(S518、S519)。なお、パイプB又はパイプCに加工データが入力されても、フロー解析処理部104より実行指示が入力されていないため、プロッタ制御部107及びHDD制御部106は処理を開始しない。
画像情報加工装置制御部106からの完了通知を受けると、フロー解析処理部104は、操作パネル制御部102に対してユーザからの入力を要求することにより、ユーザからの入力を待ち合わせる(S520)。操作パネル制御部102は、例えば、「処理を継続しますか?」等のメッセージを表示させ、ユーザに対して入力を促進する。スタートボタンが押下される等、ユーザによって処理の継続が指示されると、操作パネル制御部102は、フロー解析処理部104に対してジョブフローの継続を指示する(S521)。
ジョブフローの継続指示に応じ、フロー解析処理部104は、ユーザ入力の待ち合わせ後に実行する処理部品に対して実行指示を行う。ここでは、プロッタ制御部107とHDD制御部106とに対して並列的に実行指示が行われる(S522、S523)。ステップS524以降(プロッタ出力処理及びHDD蓄積処理)は、図10におけるステップS322以降と同様であるのでここでの説明は省略する。
このように、本実施の形態における画像形成装置10は、ユーザの入力を待ち合わせるようなジョブフローの実行も制御することができる。したがって、処理部品の実行タイミングをユーザの任意に応じて変更させることができ、利便性を向上させることができる。
なお、図17のジョブフローBでは、ユーザ入力について簡便化して説明したが、現実的なユーザの入力の待ち合わせは、例えば、図18に示されるジョブフロー(以下「ジョブフローC」という。)の場合に考えられる。図18は、ジョブフローCの詳細画面の表示例を示す図である。
図18に示されるように、ジョブフローCは、スキャナより読み取られた画像データとPCより転送されるデータとを合成し、合成されたデータを操作部(操作パネル11)にプレビュー表示させる。ユーザは、所望の出力結果が得られる場合は、処理の継続を指示する。当該指示に応じて、プロッタ出力処理とHDD蓄積処理とが実行される。所望の出力結果が得られない場合、ユーザは、画像の加工条件を変更する。この場合、改めて画像の合成処理が行われ、プレビュー表示が実行される。
次に、図19に示されるようなジョブフロー(以下「ジョブフローD」という。)の処理手順について説明する。図19は、ジョブフローDの詳細画面の表示例を示す図である。図19のジョブフロー詳細画面112において、円記号は、円内に記された時間の待機を意味する。したがって、ジョブフローDは、スキャナより画像データを入力し、その画像データに対して集約加工を施し、30秒間待機した後、その加工データのプロッタ出力処理とHDD蓄積処理とを並列的に実行するといったものである。すなわち、ジョブフローDは、画像データの加工の後に所定時間待機する点が、図10において説明したジョブフローと異なる。
図20は、ジョブフローDの実行処理の処理手順を説明するためのシーケンス図である。図20中、図10と同一ステップ(S301〜S310)については同一ステップ番号を付し、その説明は省略する。
操作パネル制御部102よりカレントジョブフロー(ジョブフローD)の実行指示を受けると、フロー解析処理部104は、ジョブフローDを構成する各処理部品に対して処理の実行指示を並列的に出力する(S611、S612)。但し、プロッタ制御部107及びHDD制御部106に対してはこのタイミングでは実行指示は行わない。すなわち、フロー解析処理部104は、カレントジョブフローが待機時間を含む場合は、当該待機後に実行される処理部品についてはこのタイミングでは実行指示を行わない。したがって、ここでは、スキャナ制御部109及び画像情報加工装置制御部108に対して実行指示が出力される。
フロー解析処理部104からの実行指示に応じ、まず、入力部品(スキャナ入力部品)であるスキャナ制御部109は、スキャナ15からの画像データの読み取りを実行する(S613)。スキャナ制御部109は、読みとられた画像データを画像情報加工装置制御部108との間のパイプAに出力すると共に(S614)、処理の完了をフロー解析処理部104に通知する(S615)。
画像情報加工装置制御部108は、パイプAへの画像データの入力を検知すると当該画像データの加工処理(ここでは、集約処理)を実行する(S616)。加工処理が完了すると、画像情報加工装置制御部108は、処理の完了をフロー解析処理部104に通知すると共に(S617)、プロッタ制御部107との間のパイプBと、HDD制御部106と間のパイプCとに加工データを出力する(S618、S619)。なお、パイプB又はパイプCに加工データが入力されても、フロー解析処理部104より実行指示が入力されていないため、プロッタ制御部107及びHDD制御部106は処理を開始しない。
画像情報加工装置制御部106からの完了通知を受けると、フロー解析処理部104は、待機時間分のタイマーのカウントを開始する(S620)。タイマーのカウントが終了すると(すなわち、待機時間の経過を検知すると)、フロー解析処理部104は、待機後に実行する処理部品に対して実行指示を行う。ここでは、プロッタ制御部107とHDD制御部106とに対して並列的に実行指示が行われる(S622、S623)。ステップS624以降(プロッタ出力処理及びHDD蓄積処理)は、図10におけるステップS322以降と同様であるのでここでの説明は省略する。
このように、本実施の形態における画像形成装置10は、途中で待機時間を含むようなジョブフローの実行も制御することができる。したがって、待機時間を指定することにより処理部品の実行タイミングを調節することができ、利便性を向上させることができる。なお、待機時間は、入力部品と加工部品との間や、出力部品を直列的に実行する場合には、当該出力部品間の間に設定してもよい。また、待機時間ではなく、時刻の指定(例えば、FAXの送信時刻等の指定)によって実行タイミングを調節してもよい。
上述したように、第一の形態における画像形成装置10によれば、処理部品の組み合わせ及びその実行順を示す制御情報を予めジョブフローとして名前を付加して登録しておくことができる。また、登録されているジョブフローに従って動的に処理制御を行うことができる。したがって、ユーザは、ジョブフローの名前を呼び出すだけで(又は選択するだけで)、ジョブフローによって実現されるアプリケーションを実行することができる。
また、画像形成装置10は、動的な処理制御が可能な構成を有することにより、処理部品の追加又は削除等に対して柔軟に対応することができ、処理部品の追加又は処理部品の新たな組み合わせ等によって容易に、すなわち、既存部分に対するソースコードの修正等を比較的少なく抑えつつ機能拡張を行うことができる。
次に、第二の実施の形態について説明する。第二の実施の形態では、処理部品間のパイプによる同期のタイミングについて詳しく説明する。なお、第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については、第一の実施の形態と同様でよい。
第一の実施の形態では、処理部品は、パイプに対する画像データの入力を待機しており、当該パイプに対して画像データが入力されると、当該画像データに対する処理を開始すると説明した。ここで、処理部品が処理を開始するタイミングは、必ずしも画像データの全部がパイプに書き込まれるまで待機しなくてもよい。例えば、画像データが複数のページから構成される場合、ページごとに同期がとられてもよい。更に、ページを構成する単位ごとに同期がとられてもよい。例えば、第二の実施の形態では、画像データの構成単位を次のように定義する。
図21は、第二の実施の形態における画像データの構成単位を説明するための図である。図21において、画像データとは一つの文書に対応する。すなわち、スキャナ15から文書を読み取る際に、一回の読み取り操作によって生成されるデータをいう。したがって、画像データは、一つ以上のページ(画像)によって構成される。各ページは、その色空間に応じて複数のプレーン(カラープレーン)によって構成される。例えば、RGB空間であれば、Rプレーン、Gプレーン、及びBプレーンの三つのプレーンより構成される。更に、各プレーンは、バンドメモリの大きさに応じたバンドと呼ばれる単位に分割される。図中では、一つのバンドは、256ラインより構成される例が示されている。
画像データが斯かる構成を有する場合、同期のタイミングは、画像データごと、ページごと、プレーンごと、又はバンドごとのバリエーションを持たせることができる。第二の実施の形態では、画像データごと以外の同期による処理部品の動作を並列動作という。すなわち、パイプに対する画像データの入力を待機している処理部品は、出力側の(前段階の)処理部品の処理が画像データの全部に対して完全に処理が完了する前に処理を開始することができ、二つの処理部品が並列的に動作する状態が発生し得るからである。これに対し、画像データごとに同期がとられる場合の処理部品の動作を直列動作という。
処理部品間を並列動作及び直列動作のいずれによって接続するかは、ジョブフロー生成画面510において処理部品間を接続している線に対する操作によって設定させればよい。例えば、当該線を右クリックすることにより「直列」及び「並列」といったメニュー項目を有するコンテキストメニューを表示させ、「直列」が選択されたら当該線によって接続される処理部品は直列動作とし、「並列」が選択された当該線によって接続される処理部品は並列動作とする。なお、ジョブフロー生成画面510において当該設定結果が確認可能なように、直列動作又は並列動作かによって処理部品を接続する線の形態を変えるようにしてもよい。
図22は、直列動作と並列動作との識別を可能としたジョブフロー生成画面の表示例を示す図である。図22中、図5と同一部分には同一符号を付し、その説明は省略する。
図22では、処理部品Aの後に処理部品B及び処理部品Cが実行されるジョブフローが生成された例が示されている。ここで、処理部品Aと処理部品Cとを接続する線l2の先端には矢印が付加されている。これは、処理部品Aと処理部品Cとの間は直列動作として同期がとられることを示す。一方、処理部品Aと処理部品Bとを接続する線l1の先端には矢印が付加されていない。これは、処理部品Aと処理部品Cとの間は並列動作によって同期がとられることを示す。
図22に示されるようなジョブフローの生成後、ジョブフロー生成画面510においてOKボタン503がクリックされると、図4において説明した処理が実行され、HDD12に当該ジョブフローのジョブフロー情報が登録される。
図23は、第二の実施の形態におけるジョブフロー情報の保存形式の例を示す図である。図23中、図6と同一部分には同一符号を付し、その説明は省略する。図23に示されるように、第二の実施の形態のジョブフロー情報1040には、各ジョブフローについて、ジョブフローを構成する処理部品およびその実行情報(実行順及び実行条件)の他、処理部品ごとに、前の処理部品と並行動作をするか否かを示す情報が含まれる。図中では、「○」(並行動作)又は「×」(直列動作)によって示されている。すなわち、図23における「コピー+FAXフロー」は、処理部品としてのスキャナの後にプロッタ及びファクスが実行され、プロッタについては並列動作、ファクスについては直列動作が実行されるジョブフローであることが示されている。並列動作における同期の処理単位(ページ単位、プレーン単位、又はバンド単位)は、別途HDD12に定義しておけばよい。また、処理部品ごとに同期の処理単位(タイミング)を変える場合は、ジョブフロー生成画面510において、処理部品間を接続する線について、単に「直列」又は「並列」の別を設定させるのではなく、同期の処理単位を選択させるようにすればよい。この場合、図23に示されるジョブフロー情報1040には、処理部品ごとに並列動作か否かではなく、同期の処理単位を示す情報が登録される。
斯かるジョブフロー情報に基づいてジョブフローが実行される場合、設定された同期の処理単位にしたがって、処理部品は処理を開始する。すなわち、同期の処理単位がページ単位の場合、1ページ分のデータがパイプに入力されたら処理部品は処理を開始する。また、同期の処理単位がプレーン単位の場合、1プレーン分のデータがパイプに入力された処理部品は処理を開始する。また、同期の処理単位がバンド単位の場合、1バンド分のデータがパイプに入力された処理部品は処理を開始する。パイプに対して処理単位分のデータが入力されたか否かは、当該データの入力を待機している処理部品が監視してもよいし、他のプログラムモジュールに監視させ、当該プログラムモジュールが、待機している処理部品に通知するようにしてもよい。
上述したように、第二の実施の形態における画像形成装置10によれば、処理部品間の同期のタイミング(処理単位)について、より柔軟な設定を行うことができる。
次に、第三の実施の形態について説明する。第三の実施の形態では、ジョブフローを登録する際に、処理部品の属性情報に基づいて、ジョブフローの実行の可否を判定する例について説明する。なお、第三の実施の形態では、第一の実施の形態又は第二の実施の形態と異なる点について説明する。したがって、特に言及しない点については、第一の実施の形態又は第二の実施の形態と同様でよい。
図24は、第三の実施の形態におけるジョブフローの登録処理の処理手順を説明するためのシーケンス図である。図24中、図4と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。すなわち、図24の処理は、図3の処理に続けて実行される処理である。
ステップS123におけるジョブフローの登録指示に応じ、フロー登録部103は、当該登録指示に含まれているジョブフロー情報においてジョブフローの構成要素とされている各処理部品の属性情報に基づいて当該ジョブフローの実行の可否を判定する(S701)。本実施の形態では、フロー登録部103は、各処理部品がパイプを介して入力可能なデータ形式と出力可能なデータ形式とに基づいて接続の可否を判定することにより、ジョブフローの実行を判定する。すなわち、画像形成装置10において、処理部品の属性情報として、パイプを介してデータを入力する処理部品に関しては入力可能なデータ形式が定義されており、パイプを介してデータを出力する処理部品に関しては出力可能なデータ形式が定義されている。斯かる定義情報を、以下「処理部品インタフェース情報」という。したがって、ステップS701において、フロー登録部103は、処理部品インタフェース情報に基づいて各処理部品の接続の可否を判定する。
図25は、処理部品インタフェース情報を概念的に示す図である。図中、円は処理部品を示し、矩形は、処理部品に入力可能な、又は処理部品から出力可能な(すなわち、処理部品が扱える)データ形式を示す。図25において、例えば、スキャナ処理部品601は、RGB形式又はJPEG形式によって画像データを出力可能であることが示されている。集約処理部品602は、RGB形式の画像データを入力可能であり、RGB形式又はCMYK形式によって画像データを出力可能であることが示されている。プロッタ処理部品603は、CMYK形式の画像データを入力可能であることが示されている。ページ印字処理部品604は、CMYK形式又はRGB形式の画像データを入力可能であり、CMYK形式によって画像データを出力可能であることが示されている。メール送信処理部品605は、RGB形式の画像データを入力可能であることが示されている。
フロー登録部103は、接続される前後の処理部品について、前の処理部品の出力可能なデータ形式と、後の処理部品が入力可能なデータ形式とを比較することで、当該前後の処理部品の接続の可否を判定する。すなわち、前の処理部品の出力可能なデータ形式の中で、後の処理部品が入力可能なデータ形式があれば当該前後の処理部品は接続可能であると判定する。一方、前の処理部品の出力可能なデータ形式のいずれについても、後の処理部品が入力可能でない場合、当該前後の処理部品は接続不可能であると判定する。
例えば、図26は、全ての処理部品が接続可能なジョブフローの例を示す図である。図26では、スキャナ処理部品601の次に集約処理部品602が接続され、集約処理部品602の次に、メール送信処理部品605とプロッタ処理部品603とが接続されるジョブフローの例が示されている。スキャナ処理部品601はRGB形式又はJPEG形式で出力可能であり、集約処理部品602はRGB形式が入力可能である。したがって、スキャナ処理部品601と集約処理部品602とはRGB形式によって接続可能である。また、集約処理部品602は、RGB形式又はCMYK形式で出力可能であるところ、メール送信処理部品605はRGB形式が入力可能であり、プロッタ処理部品603はCMYK形式が入力可能である。したがって、集約処理部品602とメール送信処理部品605との間はRGB形式によって接続可能であり、集約処理部品602とプロッタ処理部品603との間はCMYK形式によって接続可能である。よって、図26の処理部品は、全ての処理部品が接続可能である。
また、図27は、少なくとも一部の処理部品について接続不可能なジョブフローの例を示す図である。図27では、スキャナ処理部品601の次にページ印刷処理部品604が接続され、ページ印刷処理部品604の次に、メール送信処理部品605とプロッタ処理部品603とが接続されるジョブフローの例が示されている。ここで、ページ印刷処理部品604は、CMYKでのみ出力可能であるところ、メール送信処理部品605は、RGB形式でのみ入力可能である。したがって、図27のジョブフローでは、ページ印刷処理部品604とメール送信処理部品605との間が接続不可能である。
なお、処理部品インタフェース情報は、処理部品ごとに当該処理部品に関する情報が保持されていても良いし、HDD12に各処理部品の情報が一括して記録されていてもよい。前者の場合、フロー登録部103は、各処理部品に問い合わせることにより処理部品インタフェース情報を取得する。後者の場合、フロー登録部103は、HDD12より処理部品インタフェース情報を取得する。
ステップS701の判定の結果、ジョブフローを構成する全ての処理部品間の接続が可能な場合、フロー登録部103は、当該ジョブフローは実行可能であると判定し、図4におけるステップS124〜S131の処理が実行される。
一方、ステップS701の判定の結果、ジョブフローを構成する処理部品間のうち、接続不可能な箇所が一つでもある場合、フロー登録部103は、当該ジョブフローは実行不可能であると判定し、実行不可能であることを通知するための画面(エラー画面)を表示させるHTMLデータを生成し(S702)、当該HTMLデータを通信部101に出力する(S703)。
当該HTMLデータは、通信部101によってクライアントPC30に送信され、クライアントPC30の通信部301によって受信される(S704)。通信部301が、受信したHTMLデータをリモートUI302に出力すると(S705)、リモートUI302は、当該HTMLデータに基づいてエラー画面をクライアントPC30の表示装置に表示させる(S706)。
図28は、エラー画面の表示例を示す図である。図28に示されるエラー画面610では、登録が要求されたジョブフローが表示され、当該ジョブフローにおいて処理部品間の接続が不可能な箇所(「ページ印刷」と「プロッタ」との間)に「×印」が表示されている。したがって、ユーザは、エラー画面610を参照することにより、当該処理部品間の接続が不可能であることを認識することができ、改めてジョブフローを生成し直すことができる。
上述したように、第三の実施の形態における画像形成装置10によれば、処理部品間の接続の可否に基づいてジョブフローの実行の可否を判定し、斯かる点において適切な設定がなされたジョブフローのみを登録することができる。したがって、処理部品間における扱えるデータ形式の相違に基づく動作不正の発生を防止することができる。
なお、本実施の形態において、画像形成装置10におけるフロー登録部103は、登録手段の一例である。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。