(57)【特許請求の範囲】
【請求項１】
複数の外部装置と連携して画像データに対する画像処理を実行する画像処理装置であって、
前記画像データに対して実行する連携処理の手順が予め定義された連携処理フローを、該連携処理フローを管理する外部の記憶装置から取得する取得手段と、
取得した前記連携処理フローに含まれる複数の機能について、前記複数の外部装置のそれぞれが実行可能か否かを確認する確認手段と、
前記複数の機能のそれぞれについて、実行することを予め定義された外部装置が実行不可能であると確認されると、実行可能であると確認された他の外部装置が代わりに当該機能を実行するように、前記連携処理フローの定義を変更する変更手段と、
前記変更手段によって変更された連携処理フローに従った連携処理を、該連携処理フローに定義された外部装置に実行させる実行制御手段と
を備え、
前記変更手段は、
前記複数の機能のそれぞれについて、前記複数の外部装置の２つ以上で実行可能であると、前記連携処理フローに含まれる前記複数の機能のうち実行可能な機能の数が最も多い外部装置において当該機能を優先的に実行するように、該連携処理フローの定義を変更することを特徴とする画像処理装置。
【請求項２】
前記確認手段は、
前記複数の外部装置のうち前記連携処理フローに予め定義されている外部装置について、前記複数の機能が実行可能か否かを確認することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変更手段は、
前記複数の機能のそれぞれについて、実行することを予め定義された外部装置だけでなく、他の外部装置も実行不可能であると確認されると、実行不可能な当該機能を前記連携処理フローから削除する削除手段を備えることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記変更手段は、
前記複数の機能のそれぞれについて、実行することを予め定義された外部装置だけでなく、他の外部装置も実行不可能であると確認されると、前記連携処理フローの実行を禁止する禁止手段を備えることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記実行制御手段は、
前記画像データと前記変更手段によって変更された連携処理フローとを、前記複数の機能のうち最初の実行対象の機能を実行する外部装置に対して送信することにより、該連携処理フローの定義に従った処理を開始させることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記連携処理フローは、原稿から画像を読み取る際の読取条件をさらに含み、
前記画像データを生成するために、前記連携処理フローに含まれる前記読取条件に従って、原稿から画像を読み取る読取手段をさらに備えることを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
複数の外部装置と連携して画像データに対する画像処理を実行する画像処理装置の制御方法であって、
前記画像データに対して実行する連携処理の手順が予め定義された連携処理フローを、該連携処理フローを管理する外部の記憶装置から取得する取得ステップと、
取得した前記連携処理フローに含まれる複数の機能について、前記複数の外部装置のそれぞれが実行可能か否かを確認する確認ステップと、
前記複数の機能のそれぞれについて、実行することを予め定義された外部装置が実行不可能であると確認されると、実行可能であると確認された他の外部装置が代わりに当該機能を実行するように、前記連携処理フローの定義を変更する変更ステップと、
前記変更ステップで変更された連携処理フローに従った連携処理を、該連携処理フローに定義された外部装置に実行させる実行制御ステップと
を含み、
前記変更ステップでは、
前記複数の機能のそれぞれについて、前記複数の外部装置の２つ以上で実行可能であると、前記連携処理フローに含まれる前記複数の機能のうち実行可能な機能の数が最も多い外部装置において当該機能を優先的に実行するように、該連携処理フローの定義を変更することを特徴とする画像処理装置の制御方法。
【請求項８】
請求項７に記載の画像処理装置の制御方法における各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、スキャナ、ファクシミリ装置、複写機又はこれらを複合した複合機、パーソナルコンピュータ（ＰＣ）、メールサーバ等の装置をネットワークで接続し、各装置が有する機能を連携して処理を実行する画像処理システムが知られている。画像処理システムでは、一般的に、連携処理の手順を定義した連携処理フロー（ワークフロー）が、業務手順に合わせて予め作成される。ユーザは、作成された連携処理フローを実行することにより、当該システムの機能を効率的に組み合わせて利用することができる。
【０００３】
このような画像処理システムにおいて、ネットワーク上の各装置のサービス（機能）が追加又は変更された場合には、予め作成された連携処理フローを変更することが必要となる。例えば、特許文献１では、そのような場合に、ネットワークを介して取得した各装置のサービス情報に基づいて、ユーザに新たなワークフローを容易に作成させることが可能な手法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５１８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の従来技術には、以下のような問題がある。例えば、画像処理システムに含まれる各装置の機能が変更された場合に、当該変更内容に合わせて手作業で連携処理フローを変更する必要があるため、ユーザにとっては煩雑な作業が求められてしまう。また、そのような場合に、ユーザが連携処理フローを変更せずに実行すると、処理が途中で停止してしまい、画像処理システムの処理効率を低下させてしまう。
【０００６】
本発明は、上述の問題に鑑みてなされたものであり、連携処理フローを実行する装置の機能に変更が生じた場合に、ユーザに煩雑な作業を求めることなく、当該連携処理フローの定義を変更して実行する画像処理装置及びその制御方法、並びにプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、例えば、画像処理装置として実現できる。画像処理装置は、複数の外部装置と連携して画像データに対する画像処理を実行する画像処理装置であって、画像データに対して実行する連携処理の手順が予め定義された連携処理フローを、連携処理フローを管理する外部の記憶装置から取得する取得手段と、取得した連携処理フローに含まれる複数の機能について、複数の外部装置のそれぞれが実行可能か否かを確認する確認手段と、複数の機能のそれぞれについて、実行することを予め定義された外部装置が実行不可能であると確認されると、実行可能であると確認された他の外部装置が代わりに当該機能を実行するように、連携処理フローの定義を変更する変更手段と、変更された連携処理フローに従った連携処理を、該連携処理フローに定義された外部装置に実行させる実行制御手段とを備え、変更手段は、複数の機能のそれぞれについて、複数の外部装置の２つ以上で実行可能であると、連携処理フローに含まれる複数の機能のうち実行可能な機能の数が最も多い外部装置において当該機能を優先的に実行するように、連携処理フローの定義を変更することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、例えば、連携処理フローを実行する装置の機能に変更が生じた場合に、ユーザに煩雑な作業を求めることなく、当該連携処理フローの定義を変更して実行する画像処理装置及びその制御方法、並びにプログラムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理システム１０００の構成例を示す図である。
【図２】第１の実施形態に係る画像処理システム１０００におけるスキャナ１０のハードウェア構成例を示す図である。
【図３】第１の実施形態に係る画像処理システム１０００における各サーバ２０、４０、６０、７０のハードウェア構成例を示す図である。
【図４】第１の実施形態に係る画像処理システム１０００におけるチケット生成クライアント３０のハードウェア構成例を示す図である。
【図５】第１の実施形態に係るチケットの一例を示す図である。
【図６】第１の実施形態に係るチケットの一例を示す図である。
【図７】第１の実施形態に係るチケットの一例を示す図である。
【図８】第１の実施形態に係るチケットの一例を示す図である。
【図９】第１の実施形態に係るチケット一覧の一例を示す図である。
【図１０】第１の実施形態に係るスキャナ１０の操作部１０５に表示される表示画面の一例を示す図である。
【図１１】第１の実施形態に係る各処理サーバが有する機能管理テーブルの一例である。
【図１２】第１の実施形態に係るスキャナ１０におけるチケットの実行処理の手順を示すフローチャートである。
【図１３】第１の実施形態に係る各処理サーバにおけるチケットの確認処理の手順を示すフローチャートである。
【図１４】第１の実施形態に係る各処理サーバにおけるチケットの実行処理の手順を示すフローチャートである。
【図１５】第２の実施形態に係るスキャナ１０におけるチケットの変更処理の手順を示すフローチャートである。
【図１６】第２の実施形態に係る機能状態テーブルとチケットの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の実施形態によって限定されるわけではない。
【００１１】
［第１の実施形態］
＜画像処理システム１０００の構成＞
以下では、図１乃至図１４を参照して、本発明における第１の実施形態について説明する。まず、図１を参照して、画像処理システム１０００の構成例について説明する。画像処理システム１０００は、画像処理装置（スキャナ）１０、チケット管理サーバ２０、チケット生成クライアント３０、文書管理サーバ４０、及び処理サーバ６０、７０を備え、これらはネットワーク（ＬＡＮ）５０を介して接続されている。スキャナ１０は、原稿から画像を読み取るスキャナ機能を有する装置であればよく、例えば、ＭＦＰ（Ｍｕｌｔｉｐｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）でもよい。チケット管理サーバ２０は、データを記憶する機能を有する装置であればよく、記憶装置の他にも、例えば、アクティブ・ディレクトリのようなディレクトリ・サービスを提供可能な装置でもよい。また、処理サーバの数は、図１に示すように２台（処理サーバ６０、７０）である必要はなく、ＬＡＮ５０上に何台存在してもよい。
【００１２】
画像処理システム１０００において、スキャナ１０は、ＬＡＮ５０を介して接続された複数の外部装置（処理サーバ６０、７０）と連携して画像データに対する画像処理を実行する。具体的には、複数の外部装置の有する機能を連携して実行する連携処理の手順が予め定義された連携処理フロー（以下では、「チケット」と称する。）に従って、当該画像処理が実行される。このチケットは、チケット生成クライアント３０で生成され、チケット管理サーバ２０に記憶されている。
【００１３】
後述するように、チケットは、スキャナ１０と連携する複数の外部装置が有する複数の機能及びその処理内容に関する定義を含む。チケットは、例えば、スキャナ１０によって生成された画像データに対するファイル形式の変換（例えば、ＰＤＦ形式への変換）、Ｅ−ｍａｉｌ送信、ファイル送信、ＯＣＲ処理等の処理に関する設定を含む。また、チケットは、スキャナ１０において原稿から画像を読み取る際の、解像度・サイズ等の読取条件に関する設定を含んでいてもよい。
【００１４】
（スキャナ１０の構成）
次に、図２を参照して、スキャナ１０のハードウェア構成例について説明する。図２では、特に、コントローラユニット１１８の構成例について説明する。コントローラユニット１１８において、システムバス１０６上には以下のデバイスが配置される。ＣＰＵ１０１は、スキャナ１０全体を制御するプロセッサである。ＮＶＭＥＭ１００は、不揮発性のメモリであり、設定情報等を記憶する。例えば、ＮＶＭＥＭ１００は、ＣＰＵ１０１が動作するためのシステムワークメモリ、プログラムを記録するためのプログラムメモリ、及び画像データを一時記録するための画像メモリとして機能する。Ｆｌａｓｈ  ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、システムを制御するための各種制御プログラムを記憶する。ＵＳＢポート１１０は、ＵＳＢデバイス１１１との接続を可能にする。
【００１５】
操作部Ｉ／Ｆ１０４は、操作部１０５とのインタフェース部である。操作部Ｉ／Ｆ１０４は、操作部１０５に表示する操作画面等の画像データを、操作部１０５に対して出力し、また、操作部１０５から入力された情報を、ＣＰＵ１０１に伝達する。操作部１０５は、システムの操作画面を表示するＬＣＤ表示部、及び操作キーを有し、ＬＣＤ表示部上にはタッチパネルシートが貼られている。操作部１０５は、ユーザによって操作キーが押下された場合の入力情報、及びタッチパネルシートが押下された場合の位置情報を、操作部Ｉ／Ｆ１０４を介してＣＰＵ１０１に伝達する。
【００１６】
ＬＡＮ  Ｉ／Ｆ１０７は、ＬＡＮに接続するためのインタフェースである。スキャナ１０は、ＬＡＮ  Ｉ／Ｆ１０７を介して、ＬＡＮ５０上の他の装置（ＰＣや各サーバ）に対してデータを送信し、又は他の装置からデータを取得する。また、画像バス（ＩＭＡＧＥ  ＢＵＳ）Ｉ／Ｆ１０８は、システムバス１０６と画像バス１１２とを接続し、データ構造を変換するバスブリッジである。画像バス１１２は、ＰＣＩバスやＩＥＥＥ１３９４で構成され、画像データを高速で転送可能である。画像バス１１２上には以下のデバイスが配置される。
【００１７】
ラスタイメージプロセッサＲＩＰ１１３は、ＰＤＬコードのようなベクトルデータをビットマップイメージに展開する。スキャナＩ／Ｆ１１５は、画像読取部として機能するスキャナ部１１７とコントローラユニット１１８とを接続するインタフェース部であり、画像データの変換を行う。スキャナ部１１７は、原稿から画像を読み取ることにより、画像データを生成する。当該読取方式は、例えば、レーザを用いた方式である。コントローラユニット１１８は、スキャナＩ／Ｆ１１５を介して、スキャナ部１１７との間で画像データやデバイス情報等の入出力を行う。
【００１８】
画像処理部１１６は、入力された画像データに対して、補正、加工、又は編集といった画像処理を実行する。例えば、スキャナ部１１７において生成された画像データに対して、補正、解像度変換等を行う。さらに、画像処理部１１６は、入力された画像データに対して回転処理、及び、多値画像データに対してはＪＰＥＧ、２値画像データに対してはＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮・伸張処理を施すことが可能である。
【００１９】
（サーバ２０、４０、６０、７０の構成）
次に、図３を参照して、チケット管理サーバ２０のハードウェア構成例について説明する。なお、文書管理サーバ４０及び処理サーバ６０、７０に関しても同様である。チケット管理サーバ２０において、ＣＰＵ２１は、メインバス２５を介して、ＲＡＭ２２、記憶装置２３、及びネットワーク装置２４を制御する。ＲＡＭ２２は、ＣＰＵ２１に対してワークエリアを提供する。記憶装置２３は、各種のプログラムや設定を記憶する。ネットワーク装置２４は、ＬＡＮ５０を介して接続された他の装置との間で通信を行う。
【００２０】
（チケット生成クライアント３０の構成）
次に、図４を参照して、チケット生成クライアント３０のハードウェア構成例について説明する。チケット生成クライアント３０において、ＣＰＵ３１は、メインバス２５を介して、ＣＰＵ３１、ＲＡＭ３２、記憶装置３３、ユーザ入力装置３４、ＵＩ表示装置３５、及びネットワーク装置３６を制御する。ＲＡＭ３２は、ＣＰＵ３１に対してワークエリアを提供する。記憶装置３３は、例えば、ハードディスクやＮＶＲＡＭであり、各種のプログラムや設定を記憶する。ユーザ入力装置３４は、ユーザがコマンドの入力を行うための入力装置である。ＵＩ表示装置３５は、画面表示を行う装置である。ネットワーク装置３６は、ＬＡＮ５０を介して接続された他の装置との間で通信を行う。
【００２１】
ここで、図５を参照して、チケット生成クライアント３０において生成されるチケットについて説明する。本実施形態では、チケットとしてＸＭＬ形式のファイルを一例として採り上げるが、構造化データを表現可能なファイル形式であれば何れの形式でもよい。チケット５０１は、チケット生成クライアント３０において生成され、チケット管理サーバ２０において保存及び管理される。チケット管理サーバ２０は、図５に示すチケットと同種のチケットを多数管理しており、要求に応じてスキャナ１０に対して何れかのチケットを提供する。
【００２２】
スキャン設定５０２（ＳｃａｎＣｏｎｆｉｇｕｒａｔｉｏｎ要素）には、スキャナ１０において原稿から画像を読み取る際の読取条件を示す設定情報が定義される。当該設定情報には、例えば、カラーモード（ＣｏｌｏｒＭｏｄｅ）、解像度（Ｒｅｓｏｌｕｔｉｏｎ）、両面設定（Ｄｕｐｕｌｅｘ）等の読み取りに必要な設定が含まれるが、他の設定が含まれていてもよい。
【００２３】
フロー設定５０３（ＩｍａｇｉｎｇＰｒｏｃｅｓｓ要素）には、スキャナ１０で生成された画像データに対して複数の外部装置（処理サーバ６０、７０）において実行する画像処理の内容及びその実行順序が定義される。具体的には、フロー設定５０３には、当該画像処理において使用する機能に関する設定（プロセス設定）が定義される。ここで、プロセス設定は複数定義されてもよく、各プロセス設定には、実行対象となる機能及び処理内容、当該機能を実行する順番、並びに当該機能を実行する外部装置に関する設定等が含まれる。
【００２４】
図５では、当該設定として、プロセス設定５０４、５０５、５０６（Ｐｒｏｃｅｓｓ要素）が定義されている。各プロセス設定５０４、５０５、５０６には、実行される順番（ｉｄ）、処理名（Ｎａｍｅ）、処理サーバのＩＤ（ＳｅｒｖｅｒＩＤ）及びＵＲＬ（ＳｅｒｖｅｒＵＲＬ）、並びに処理に必要な設定情報（Ｐａｒａｍ要素）が定義されている。
【００２５】
保存先５０７（Ｄｅｓｔｉｎａｔｉｏｎ要素）には、フロー設定５０３に従って処理された画像データの保存先のサーバのアドレス、フォルダパス、及び通信プロトコルが記載される。また、文書属性５０８（ＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｙ要素）には、保存される画像データに関する属性情報が定義され、例えば、文書名、更新日時、作成者に関する情報が含まれる。
【００２６】
＜スキャナ１０におけるチケットの実行処理＞
次に、図１２を参照して、本実施形態に係るスキャナ１０におけるチケットの実行処理の手順について説明する。まず、Ｓ１０１で、スキャナ１０のＣＰＵ１０１は、外部のチケット管理サーバ２０との通信により、チケットの一覧を要求し、当該一覧を取得する。その後、Ｓ１０２へ移行する。ここで、ＣＰＵ１０１は、図９に示すようなチケット一覧９０１をチケット管理サーバ２０から取得し、ＮＶＭＥＭ１００に格納する。なお、ＣＰＵ１０１は、例えば、スキャナ１０を使用するユーザのログイン認証結果に基づいて、当該ユーザに関連付けられたチケットの一覧を要求する。その場合、ＣＰＵ１０１は、チケット管理サーバ２０に対してユーザの識別情報又は認証情報を送信する。
【００２７】
Ｓ１０２及びＳ１０３で、ＣＰＵ１０１は、各チケットについて、定義に含まれる複数の機能（プロセス）が、各処理サーバにおいて実行可能か否かを確認する処理を実行する。まず、Ｓ１０２で、ＣＰＵ１０１は、チケット一覧９０１から、確認処理を行っていないチケットを選択し、確認処理を実行する。具体的には、ＣＰＵ１０１は、選択したチケットを、当該チケットに予め定義されている処理サーバに対して送信する。これにより、送信先の処理サーバに、確認対象のチケットに定義された各プロセスを実行可能か否かを確認させる。チケットを受信した処理サーバは、当該チケットに定義された全てのプロセスについて確認処理を実行するとともに、その結果を当該チケットに付加する。
【００２８】
ここで、Ｓ１０２における処理は、スキャナ１０が、確認対象のチケットに定義された何れかの処理サーバに対して当該チケットを送信し、定義されたサーバ間で当該チケットを転送することにより実現され得る。例えば、図５のチケット５０１を確認対象とすると、スキャナ１０は、当該チケットにおいて最初に定義されているプロセス設定５０４を実行する処理サーバ６０に対して、当該チケットを送信する。処理サーバ６０は、確認処理の実行後、チケット５０１に定義された他の処理サーバ７０に対して、当該チケットを転送する。チケット５０１に定義された全ての処理サーバにおける確認処理の実行後、当該チケットはスキャナ１０へ返送される。その後、Ｓ１０３へ移行する。なお、Ｓ１０２における処理は、スキャナ１０が各処理サーバに対して個別にチケットを送受信することによっても実現され得る。
【００２９】
ここで、図７に示すチケット７０１は、チケット５０１を確認対象として、各処理サーバにおける確認処理の後に、最終的にスキャナ１０へ返送されたチケットの一例である。チケット５０１には、チケットに含まれるプロセスを実行する処理サーバとして、処理サーバ６０（ＳｅｒｖｅｒＩＤ＝“ＡＡＡ”）、処理サーバ７０（ＳｅｒｖｅｒＩＤ＝“ＢＢＢ”）が定義されている。これに対して、返送されたチケット７０１には、各プロセス設定７０２〜７０３に、当該機能を処理サーバ６０、７０においてそれぞれ実行可能か否かを示す情報７１２〜７１３が付加されている。各情報７１２〜７１３において、“ｎｏｔ  ｉｎｓｔａｌｌ”は、サーバＩＤに指定された処理サーバにおいて、当該機能を実行不可能であることを示す。なお、各処理サーバにおけるチケットの確認処理に関しては図１３を用いて後述する。
【００３０】
次に、Ｓ１０３で、ＣＰＵ１０１は、チケット一覧９０１に含まれる全てのチケットの確認処理が終了したか否かを判定する。ここで、未だ確認処理が終了していないチケットが存在すると判定した場合には、Ｓ１０２へ戻って確認処理を継続する。一方で、全てのチケットの確認処理が終了したと判定した場合には、Ｓ１０４へ移行する。
【００３１】
Ｓ１０４で、ＣＰＵ１０１は、チケット一覧９０１に基づいて、操作部１０５のＬＣＤ表示部にチケットの一覧表示を行う。操作部１０５には、例えば、図１０に示す表示画面１００１が表示される。表示画面１００１には、チケットの一覧表示１００２、表示切替ボタン１００３、及び実行指示ボタン１００４がソフトキーとして表示されている。その後、Ｓ１０５へ移行する。
【００３２】
Ｓ１０５で、ＣＰＵ１０１は、ユーザによってチケットが選択され、チケットの実行指示が与えられたか否かを判定する。当該判定処理は、例えば、表示画面１００１の実行指示ボタン１００４が押下されたことを検知したか否かによって実現される。ここで、ＣＰＵ１０１は、当該実行指示が与えられていないと判定した場合には、Ｓ１０５の処理を繰り返す。一方で、当該実行指示が与えられたと判定した場合には、Ｓ１０６へ移行し、チケットの実行処理を開始する。
【００３３】
Ｓ１０６で、ＣＰＵ１０１は、実行対象のチケットに定義された複数のプロセスのうち、実行することを予め定義された処理サーバが実行不可能であると確認されているプロセスについて、可能な場合には当該プロセスを実行する処理サーバを変更する。より具体的には、ＣＰＵ１０１は、実行不可能と確認されたプロセスが、他の処理サーバにおいて実行可能と確認されている場合には、当該プロセスを当該他の処理サーバで実行するように、チケットの定義を変更する。その後、Ｓ１０７へ移行する。
【００３４】
Ｓ１０７で、ＣＰＵ１０１は、実行対象のチケットに、設定された処理サーバだけでなく、他の何れの処理サーバにおいても実行不可能と確認されたプロセス（実行不可プロセス）が存在するか否かを判定する。ここで、実行不可プロセスは存在しないと判定した場合には、Ｓ１０８へ移行する。一方で、実行不可プロセスが存在すると判定した場合には、Ｓ１１０へ移行する。Ｓ１１０で、ＣＰＵ１０１は、実行対象のチケットにおいて、実行不可プロセスに関する設定を削除して、Ｓ１０８へ移行する。例えば、チケット７０１の場合、プロセス設定７０３における情報７１３が削除対象となる。
【００３５】
Ｓ１０８で、ＣＰＵ１０１は、上述の処理が実行されたチケットに含まれる読取条件（例えば、図７のスキャン設定７０５）に従って、原稿から画像を読み取ることにより、画像データを生成する。その際、外部の処理サーバにおいて展開可能なファイル形式（例えば、ＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）で画像データを生成する。その後、Ｓ１０９で、ＣＰＵ１０１は、チケットに含まれる複数のプロセスのうち、最初の実行対象のプロセスを実行する処理サーバに対して、当該チケット及び画像データを送信する。ここで、Ｓ１０９の処理は、実行制御手段による処理に相当する。チケット７０１の場合、ＣＰＵ１０１は、プロセス設定７０２を実行する処理サーバ６０に対して、それらのデータを送信する。これにより、ＣＰＵ１０１は、最初の処理サーバ６０にプロセス設定７０２の処理を開始させるとともに、当該チケットの定義に従った連携処理を各処理サーバに実行させる。
【００３６】
なお、ＣＰＵ１０１は、図１０において、表示切替ボタン１００３のチェックが外された場合には、実行不可プロセスを含むチケットを表示画面１００１に表示しないように制御してもよい。これにより、実行不可プロセスを含むチケットが表示画面１００１において選択不可能となるため、当該プロセスの実行を禁止することができる。
【００３７】
＜各処理サーバにおけるチケットの確認処理＞
次に、図１３を参照して、本実施形態に係る各処理サーバにおける確認処理（図１２におけるＳ１０２の処理）の実行手順について、処理サーバ６０における処理を一例として説明する。まず、Ｓ２０１で、処理サーバのＣＰＵ２１は、スキャナ１０から送信、又は他の処理サーバから転送された確認対象のチケットを受信する。ここでは、処理サーバ６０がスキャナ１０からチケット５０１を受信した場合を想定する。その後、Ｓ２０２へ移行する。
【００３８】
Ｓ２０２で、ＣＰＵ２１は、受信したチケットから、未確認のプロセス設定を抽出する。さらに、Ｓ２０３で、ＣＰＵ２１は、当該プロセス設定に定義された機能（プロセス）を実行可能か否か判定する。当該判定処理は、例えば、図１１に示すように、処理サーバが記憶装置３３やＲＡＭ３２等に記憶している機能管理テーブル１１０１、１１０２を参照することにより、実行される。確認対象の機能が機能管理テーブル１１０１、１１０２に存在する場合、ＣＰＵ２１は、当該機能が実行可能であると判定する。ここで、当該機能が実行可能であると判定した場合、Ｓ２０４で、ＣＰＵ２１は、確認対象のプロセス設定に対して、実行可能であることを示す情報を付加する。一方で、当該機能が実行不可能であると判定した場合、Ｓ２０５で、ＣＰＵ２１は、当該プロセス設定に対して、実行不可能であることを示す情報を付加する。Ｓ２０４及びＳ２０５の何れかの処理の実行後、Ｓ２０６へ移行する。
【００３９】
Ｓ２０６で、ＣＰＵ２１は、確認対象のチケットにおいて、未だ確認処理を行っていないプロセス設定が存在するか否かを判定する。ここで、未確認のプロセス設定が存在すると判定した場合には、Ｓ２０２へ戻り、確認処理を継続する。一方で、未確認のプロセス設定が存在しないと判定した場合には、Ｓ２０７へ移行する。
【００４０】
Ｓ２０７で、ＣＰＵ２１は、確認対象のチケットに定義されている処理サーバのうち、未だ上述の確認処理を実行していない処理サーバが存在するか否か判定する。当該判定処理は、例えば、チケットに予め定義された処理サーバのＵＲＬやサーバＩＤ等を抽出するとともに、各プロセス設定に既に付加された情報に含まれるＵＲＬやサーバＩＤとの比較によって実現される。ここで、確認処理を実行していない処理サーバが存在すると判定した場合には、Ｓ２０８へ移行する。一方で、確認処理を実行していない処理サーバが存在しないと判定した場合には、Ｓ２０９へ移行する。
【００４１】
ここで、図６に示すチケット６０１は、確認対象のチケット５０１に対して、処理サーバ６０においてＳ２０２〜Ｓ２０６の処理の実行後のチケットの一例である。チケット６０１には、予め定義されたプロセス設定６０２、６０３、６０４に対して、サーバ６０（ＳｅｒｖｅｒＩＤ＝“ＡＡＡ”）における各機能の実行の可否を示す情報６１２、６１３、６１４がそれぞれ付加されている。なお、チケット６０１には、定義された各機能を実行する処理サーバとして、サーバ６０の他にサーバ７０（ＳｅｒｖｅｒＩＤ＝“ＢＢＢ”）も予め定義されている。
【００４２】
Ｓ２０８で、ＣＰＵ２１は、チケットに定義されている処理サーバのうち、確認処理を実行していない処理サーバの何れかに対して、チケットを転送する。例えば、チケット６０１の場合、ＣＰＵ２１は、確認処理を実行していない処理サーバ７０（ＳｅｒｖｅｒＩＤ＝“ＢＢＢ”）に対して転送する。また、Ｓ２０９で、ＣＰＵ２１は、確認処理の実行が完了したチケットを、スキャナ１０へ返送する。あるいは、送信元の処理サーバへ返送することを繰り返すことにより、チケットに定義された各処理サーバを中継してスキャナ１０へ返送してもよい。Ｓ２０８及びＳ２０９の何れかの処理の後、処理が終了する。
【００４３】
＜各処理サーバにおけるチケットの実行処理＞
図１２のＳ１０９においてスキャナ１０からチケット及び画像データが送信されると、当該チケットの定義に従って、複数の処理サーバにおいて当該画像データに対する画像処理が実行される。以下では、図１４を参照して、本実施形態に係る各処理サーバにおけるチケットの実行処理の手順について説明する。
【００４４】
まず、Ｓ３０１で、処理サーバのＣＰＵ２１は、スキャナ１０から送信、又は他の処理サーバから転送される、実行対象のチケット及び当該チケットに従った画像処理の対象となる画像データを受信する。これらのデータを受信すると、Ｓ３０２で、ＣＰＵ２１は、受信したチケットのプロセス設定を予め定義された実行順序に従って確認し、未実行のプロセス設定を抽出する。その後、Ｓ３０３へ移行する。
【００４５】
Ｓ３０３で、ＣＰＵ２１は、抽出したプロセス設定が、実行対象のプロセス設定か否かを判定する。当該判定は、抽出したプロセス設定に含まれるサーバＩＤやＵＲＬに基づいて実行される。ここで、当該プロセス設定が実行対象ではないと判定した場合には、Ｓ３０８へ移行する。Ｓ３０８で、ＣＰＵ２１は、当該プロセス設定の機能を実行することを定義された処理サーバに対して、チケット及び画像データを転送し、処理を終了する。一方で、Ｓ３０３で、ＣＰＵ２１は、当該プロセス設定が実行対象であると判定した場合には、Ｓ３０４へ移行する。
【００４６】
Ｓ３０４で、ＣＰＵ２１は、抽出したプロセス設定に従って、定義された機能を実行することにより、画像データに対して画像処理を行う。さらに、Ｓ３０５で、ＣＰＵ２１は、チケットにおける抽出したプロセス設定の部分に対して、当該プロセス設定が実行済であることを示す情報を付加する。本実施形態では、図８に示すチケット８０１において、設定８０２（Ｒｅｓｕｌｔ要素）がこれに相当する。当該処理の後、Ｓ３０６へ移行する。
【００４７】
Ｓ３０６で、ＣＰＵ２１は、チケットに未実行のプロセスが存在するか否かを判定する。ここで、未実行のプロセスが存在すると判定した場合には、Ｓ３０２へ戻り、上述の処理を繰り返す。一方で、未実行のプロセスが存在しないと判定した場合には、チケットに定義された保存先のサーバへチケット及び画像を転送し、処理を終了する。
【００４８】
以上説明したように、第１の実施形態に係る画像処理装置は、複数の外部装置との連携処理によって画像データに対する画像処理を実行するために、当該連携処理の手順が予め定義された連携処理フローを外部の記憶装置から取得する。また、取得した連携処理フローに従った処理の実行開始前に、当該フローに含まれる複数の機能を、当該フローに予め定義されている複数の外部装置のそれぞれが実行可能か否かを確認する。さらに、実行することを予め定義された外部装置が実行不可能であると確認された機能について、実行可能であると確認された他の外部装置が変わりに当該機能を実行するように、当該フローの定義を変更した後に、当該フローに従った処理の実行を開始する。これにより、連携処理フローを実行する外部装置の機能に変更が生じた場合に、ユーザに煩雑な作業を求めることなく、当該フローの定義を変更して実行することができる。また、連携処理フローに従った処理がエラーにより中止されることを抑制することができる。その結果、画像処理装置は、複数の外部装置とともに、連携処理フローに従った処理の効率の低下を防止できる。
【００４９】
なお、本実施形態に係る画像処理装置は、連携処理フローに含まれる各機能について、実行することを予め定義された外部装置のみならず、他の何れの外部装置においても実行不可能であると確認された場合には、当該機能を当該フローから削除してもよい。その場合、画像処理装置は、削除による変更後の当該フローの定義に従った処理の実行を開始する。あるいは、当該機能を削除するのではなく、当該フローによる処理の実行を禁止してもよい。これにより、連携処理フローを実行する外部装置の機能の変更に起因して、何れの外部装置においても実行不可能な機能が定義に含まれた場合にも、当該フローに従った処理の途中で、エラーで処理が中止されることを抑制し、処理効率の低下を防止できる。
【００５０】
［第２の実施形態］
次に、図１５及び図１６を参照して、本発明における第２の実施形態について説明する。第１の実施形態では、連携処理フローによる処理の実行開始前に、当該フローの定義に含まれる各機能が実行可能か否か予め確認するとともに、当該確認結果に基づいて当該フローの定義を変更する。その場合に、連携処理フローに含まれる各機能を定義された順に各外部装置が実行する際に、当該変更結果に依存して、外部装置間におけるチケット及び画像データの転送が何度も繰り返される可能性がある。そこで、本実施形態では、画像処理装置において連携処理フローを変更する際に、当該フローに含まれる複数の機能のうち実行可能な機能の数が最も多い外部装置が、優先的に各機能を実行するように、当該フローを変更することを特徴とする。
【００５１】
本実施形態に係るスキャナ１０におけるチケットの実行処理の手順は、第１の実施形態にの図１２と基本的に同様であるので、異なる部分についてのみ説明する。なお、本実施形態において、各処理サーバにおけるチケットの確認処理及び実行処理の手順は第１の実施形態の図１３及び図１４と同様であるため、その説明を省略する。
【００５２】
図１２のＳ１０６において、ＣＰＵ１０１は以下の処理を実行する。Ｓ１０６で、ＣＰＵ１０１は、第１の実施形態と同様の処理に加えて、実行することを予め定義された処理サーバが実行不可能であると確認されたプロセスについて、当該プロセスが他の複数の処理サーバで実行可能である場合に、チケットに含まれるプロセスを最も多く実行可能な処理サーバが優先的に各プロセスを実行するように、当該フローを変更する。なお、Ｓ１０６で、ＣＰＵ１０１は、実行することを予め定義された処理サーバが、定義どおりにプロセスを実行可能である場合においても、優先される処理サーバが当該プロセスを実行可能であるときは、上記と同様に当該フローを変更するとよい。以下では、Ｓ１０６の処理について、図１５を参照して、より詳細に説明する。
【００５３】
Ｓ５０１で、ＣＰＵ１０１は、処理対象のチケットに含まれる全てのプロセス設定を抽出する。次に、Ｓ５０２で、ＣＰＵ１０１は、抽出した情報に基づいて、図１６に一例として示すような機能状態テーブル１６０１を作成する。ここで、機能状態テーブル１６０１は、処理対象のチケット１６１１に基づいて作成されたテーブルである。ＣＰＵ１０１は、チケットに定義された処理サーバごとに、各プロセスの実行可否を確認することにより、機能状態テーブル１６０１を作成する。ここで、チケット１６１１には、処理サーバ６０を示すＳｅｒｖｅｒＩＤ＝“ＡＡＡ”と処理サーバ７０を示すＳｅｒｖｅｒＩＤ＝“ＢＢＢ”が含まれている。このため、ＣＰＵ１０１は、プロセス設定１６１２、１６１３、１６１４ごとに、処理サーバ６０、７０における実行の可否を確認する。例えば、プロセス設定１６１２の場合、各サーバに対応する状態（Ｓｔａｔｕｓ要素）がともに“ａｖａｉｌａｂｌｅ”であるので、機能状態テーブル１６０１には何れも実行可能であることを示す情報が設定される。
【００５４】
その後、Ｓ５０３で、ＣＰＵ１０１は、作成した機能状態テーブル１６０１において、各処理サーバが実行可能なプロセスの数（処理スコア）を計算する。さらに、計算した処理スコアに基づいて、Ｓ５０４で、ＣＰＵ１０１は、最も処理スコアの高い処理サーバを、最優先の処理サーバと決定する。その後、Ｓ５０５へ移行する。機能状態テーブル１６０１においては、処理サーバ６０、７０の処理スコアはそれぞれ１及び３と計算される。従って、処理サーバ７０が最優先の処理サーバと決定される。
【００５５】
Ｓ５０５で、ＣＰＵ１０１は、プロセス設定に含まれるプロセスＩＤ（ｉｄ）の順に、チケット１６１１から未選択のプロセス設定を選択する。さらに、Ｓ５０６で、ＣＰＵ１０１は、当該プロセスが最優先の処理サーバで実行可能か否かを判定する。ここで、実行可能であると判定した場合には、Ｓ５０７へ移行し、当該プロセスを最優先の処理サーバで実行するように、プロセス設定を変更する。その後、Ｓ５０８へ移行する。一方で、Ｓ５０６で、ＣＰＵ１０１は、実行不可能であると判定した場合には、プロセス設定を変更せずに、Ｓ５０８へ移行する。
【００５６】
例えば、チケット１６１１のプロセス設定１６１２では、最優先の処理サーバ７０において実行可能であるため、ＣＰＵ１０１は、当該プロセスを処理サーバ７０が実行するように、処理サーバ７０のＩＤ及びＵＲＬ（１６２２）を、プロセスを実行する処理サーバのＩＤ及びＵＲＬ（１６２１）に設定する。
【００５７】
Ｓ５０８で、ＣＰＵ１０１は、チケット１６１１に未選択のプロセスが存在するか否かを判定する。ここで、未選択のプロセスが存在すると判定した場合には、Ｓ５０５へ戻り、変更処理を継続する。一方で、未選択のプロセスが存在しないと判定した場合には、変更処理を終了する。
【００５８】
以上説明したように、第２の実施形態に係る画像処理装置は、連携処理フローによる処理の実行開始前に、当該フローの定義に含まれる各外部装置における、各機能の実行可否の確認結果に基づいて、連携処理フローを変更する。その際に、当該フローに含まれる複数の機能のうち実行可能な機能の数が最も多い外部装置が、優先的に各機能を実行するように、当該フローを変更する。これにより、本実施形態に係る画像処理装置は、連携処理フローに含まれる各機能を実行する処理サーバの数を可能な限り減少させることが可能になる。その結果、第１の実施形態における効果に加えて、連携処理フローによる処理の実行中に、処理サーバ間で転送されるチケット及び画像データの転送回数を減少させることができ、ネットワーク上で送受信されるトラヒック量の低減効果を得ることができる。
【００５９】
なお、本実施形態において、図１５の処理は、スキャナ１０で実行される場合について説明したが、当該処理は何れかの処理サーバで実行されてもよい。即ち、図１３のＳ２０９で、各処理サーバから送信元の装置へチケットを順に中継することによって、チケットをスキャナ１０へ返送する場合には、最後にスキャナ１０へ中継する処理サーバにおいて、当該処理を実行することが可能である。その場合にも、上記と同等の効果を得ることができる。
【００６０】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005451331.tif 000002
【図２】
0005451331.tif 000003
【図３】
0005451331.tif 000004
【図４】
0005451331.tif 000005
【図５】
0005451331.tif 000006
【図６】
0005451331.tif 000007
【図７】
0005451331.tif 000008
【図８】
0005451331.tif 000009
【図９】
0005451331.tif 000010
【図１０】
0005451331.tif 000011
【図１１】
0005451331.tif 000012
【図１２】
0005451331.tif 000013
【図１３】
0005451331.tif 000014
【図１４】
0005451331.tif 000015
【図１５】
0005451331.tif 000016
【図１６】
0005451331.tif 000017