以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、画像処理システムの例として、スキャンにより読み取った画像を、予め登録されたワークフローに従って処理することにより、文書の配信や格納を行う文書管理システムを例として説明する。
図1は、本実施の形態に係る文書管理システムの運用形態の例を示す図である。図1に示すように、本実施形態に係る文書管理システムは、プリンタやスキャナ等の入出力機能を含む画像形成装置1a、1b、1c(以降、総じて画像形成装置1とする)、各種の画像処理サービスを提供する翻訳サーバ2a、メールサーバ2b、OCR(Optical Character Recognition)サーバ2c(以降、総じてサービス提供サーバ2とする)、ユーザが操作するPC(Personal Computer)等の情報処理端末であるクライアント端末3を含む。
尚、本実施形態においては、クライアント端末3と画像形成装置1とが同一のネットワークに接続されており、サービス提供サーバ2が接続されたネットワークと公衆回線4を介して接続されている。
画像形成装置1は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機である。クライアント端末3は、ユーザが操作する情報処理端末であり、PC(Personal Computer)等の情報処理装置によって実現される。また、本実施形態に係るクライアント端末3には、ワークフローを管理、制御するためのアプリケーションであるフロー管理アプリがインストールされており、クライアント端末3は、予め登録されたワークフローの実行を命令するためのユーザインタフェースとしても機能する。
サービス提供サーバ2は、上述したように、各種の画像処理サービスを提供するサーバであり、翻訳サーバ2aは入力されたテキストを翻訳する機能を、メールサーバ2bは入力された情報を指定された宛先にメール配信する機能を、OCRサーバ2cは、入力された画像情報に対してOCRを実行することによりテキストを生成する機能を、夫々提供する。
尚、本実施形態においては、フロー管理アプリがクライアント端末3にインストールされている場合を例として説明するが、画像形成装置1にフロー管理アプリがインストールされていても良い。また、ユーザインタフェースが設けられていないサーバにフロー管理アプリがインストールされており、クライアント端末3にインストールされたブラウザアプリを介してフロー管理アプリの機能を用いるようにしても良い。
次に、本実施形態に係る画像形成装置1、サービス提供サーバ2及びクライアント端末3のハードウェア構成について説明する。図2は、本実施形態に係るクライアント端末3のハードウェア構成を示すブロック図である。尚、画像形成装置1は、図2に示すハードウェア構成に加えて、スキャナ、プリンタ等を実現するためのエンジンを備える。以下の説明においては、クライアント端末3のハードウェア構成を例として説明するが、画像形成装置1及びサービス提供サーバ2についても同様である。
図2に示すように、本実施形態に係るクライアント端末3は、一般的なサーバやPC等と同様の構成を含む。即ち、本実施形態に係るクライアント端末3は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、HDD(Hard Disk Drive)40及びI/F50がバス80を介して接続されている。また、I/F50にはLCD(Liquid Crystal Display)60及び操作部70が接続されている。
CPU10は演算手段であり、情報処理端末全体の動作を制御する。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。HDD40は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納される。
I/F50は、バス80と各種のハードウェアやネットワーク等を接続し制御する。LCD60は、ユーザが画像形成装置1の状態を確認するための視覚的ユーザインタフェースである。操作部70は、キーボードやマウス等、ユーザがクライアント端末3に情報を入力するためのユーザインタフェースである。尚、図1において説明したように、本実施形態に係るサービス提供サーバ2は、サーバとして運用される。従って、LCD60及び操作部70等のユーザインタフェースは省略可能である。
このようなハードウェア構成において、ROM30やHDD40若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがRAM20に読み出され、CPU10の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置1やクライアント端末3、サービス提供サーバ2の機能を実現する機能ブロックが構成される。
次に、本実施形態に係るクライアント端末3の機能構成について、図3を参照して説明する。図3は、本実施形態に係るクライアント端末3の機能構成を示すブロック図である。図3に示すように、本実施形態に係るクライアント端末3は、コントローラ300、ユーザI/Fデバイス301、ネットワークI/F302を有する。また、コントローラ300は、操作制御部310、表示制御部320、フロー管理アプリ330及びネットワーク制御部340を含む。
ユーザI/Fデバイス301は、図2に示すLCD60や操作部70等、ユーザがクライアント端末3を操作するためのインタフェースである。ネットワークI/F302は、クライアント端末3がネットワークを介して他の機器と通信するためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースが用いられる。ネットワークI/F302は、図2に示すI/F50によって実現される。
コントローラ300は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM30や不揮発性メモリ並びにHDD40や光学ディスク等の不揮発性記憶媒体に格納されたプログラムが、RAM20等の揮発性メモリ(以下、メモリ)にロードされ、そのプログラムに従ってCPU10が演算を行うことにより構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ300が構成される。コントローラ300は、クライアント端末3全体を制御する制御部であり、要旨となる機能を実現する。
操作制御部310は、ユーザI/Fデバイス301に対するユーザの操作によって入力された情報を取得する。表示制御部320は、ユーザI/Fデバイス301に情報表示を行う。ネットワーク制御部340は、ネットワークI/F302を介して入力される情報を取得すると共に、ネットワークI/F302を介して他の機器に情報を送信する。
フロー管理アプリ330は、上述したフロー管理アプリのプログラムがRAM20に読み出され、そのプログラムに従ってCPU10が演算を行うことにより構成される機能部であり、本実施形態の要旨に係る機能を提供する。図4を参照して、フロー管理アプリ330の詳細について説明する。
図4に示すように、本実施形態に係るフロー管理アプリ330は、ユーザインタフェース部331、フロー制御部332、フロー作成部333、サービス管理部334、フロー記憶部335、サービス情報テーブル336、サービス制御部337及びネットワーク管理部338を含む。
ユーザインタフェース部331は、表示制御部320がユーザI/Fデバイス301に表示させるための画面を生成して出力すると共に操作制御部310を介して入力される操作情報を取得する。フロー制御部332は、フロー記憶部335に記憶されているワークフローの情報に基づき、ワークフローの実行を制御する。その際、フロー制御部332は、ワークフローの実行開始及び終了や、ワークフローに含まれる各処理の実行中、停止中等の状態を保持している。
フロー作成部333は、ユーザインタフェース部331から入力される操作情報に基づいて動作することにより、ユーザの操作に従ってワークフローを作成し、フロー記憶部335に記憶させる。サービス管理部334は、ワークフローを構成するための各種のサービス、即ち、画像形成装置1やサービス提供サーバ2によって提供されるサービスを、サービス情報テーブル336に記憶される情報として管理する。
フロー記憶部335は、ユーザによって登録されたワークフローの情報を記憶している。フロー記憶部335が記憶している情報について、図5を参照して説明する。図5は、フロー情報の内容を示す図である。図5に示すように、フロー情報は、ワークフローを識別するためのID、ワークフローの名称及びワークフローに含まれる処理の内容の情報を含む。例えば、ID“001”のワークフローであれば、名称は“projectA”であり、“処理a”、“処理b”、“処理c”・・・といった処理が含まれる。
図5に示す“処理a”、“処理b”、“処理c”・・・等の各処理は、画像形成装置1において実行されるスキャン処理や、サービス提供サーバ2において実行される画像処理である。ここで、図5“処理a”、“処理b”、“処理c”・・・等は、夫々のサービスを提供するサービス提供サーバ2や画像形成装置1等の機器、即ちデバイスを指定する情報ではなく、あくまでも、“スキャン”や、“プリント”、“OCR”等のサービスを指定する情報である。即ち、本実施形態に係るフロー記憶部335に記憶されているワークフロー情報は、夫々のワークフロー毎に、実行するべきサービスの種類及びその順番が指定されている情報であり、夫々のサービスを実行するデバイスは指定されていない。
図5に示す “処理a”、“処理b”、“処理c”等の各処理を実行する機能は、画像形成装置1やサービス提供サーバ2において提供される機能である。即ち、上記各機能を実現する機能部を構成するプログラムが画像形成装置1若しくはサービス提供サーバ2にインストールされること、若しくは上記各機能を実現するデバイスが実装されることにより、図5に示す各処理が本実施形態に係る画像処理システムにおいて実行可能となる。
尚、フロー情報としては、図5に示す情報の他、夫々の処理についての設定値の情報等も含まれる。また、図5に示すフロー情報は、クライアント端末3においてHDD40に格納されており、フロー制御部332がワークフローフロー情報を参照してワークフロー選択画面の表示情報を生成する。
サービス情報テーブル336は、上述した“スキャン”や、“プリント”、“OCR”等のサービスの種類夫々について、そのサービスを実行可能なデバイスの情報を記憶している。図6を参照して、サービス情報テーブル336に記憶されている情報について説明する。図6に示すように、サービス情報テーブル336に記憶されているサービス情報は、夫々のサービス種類を識別するための“サービス名”、各サービスを実行可能な“機器”、各機器がサービスを実行する際の“速度”、各機器のサービスの“評価”、各機器の“故障率”及び各機器の“利用回数”の情報を含む。
即ち、サービス情報テーブル336に含まれるサービス情報は、ワークフローに組み込み可能な処理を示す情報、それらの処理を実行可能な機器であるサービス提供サーバ2を識別する情報、各機器が夫々の処理を実行する際の機能が関連付けられた処理対応機器情報であり、サービス情報テーブル336は、処理対応機器情報記憶部として機能する。
サービス制御部337は、フロー制御部332によるワークフローの実行制御に基づき、ワークフローに含まれる各サービスの実行を制御する。サービス制御部337は、ネットワーク制御部340を介して、サービスを実行させるべき各デバイスにサービスの実行命令を送信する。また、サービス制御部337は、サービス管理部334によるサービス管理の動作に基づき、各デバイスの情報を取得する。
図7に、サービス制御部337がネットワークを介して各デバイスから取得することのできる情報の例を示す。図7に示すように、本実施形態において、サービス制御部337は、各デバイスからサービスの“料金”及び機器が接地された場所を示す“ロケーション”の情報を取得することができる。この他、サービス制御部337は、各デバイスの状態を取得する。ネットワーク管理部338は、ネットワーク上のパケットを採取し、採取したパケットの単位時間当たりのデータ量からネットワーク負荷を判断する。
次に、本実施形態に係る画像形成装置1の機能構成について、図8を参照して説明する。図8に示すように、本実施形態に係る画像形成装置1は、コントローラ100、ADF(Auto Documennt Feeder:原稿自動搬送装置)101、スキャナユニット102、排紙トレイ103、ディスプレイパネル104、給紙テーブル105、プリントエンジン106、排紙トレイ107及びネットワークI/F108を有する。
また、コントローラ100は、主制御部110、エンジン制御部120、画像処理部130、操作表示制御部140及び入出力制御部150を含む。図8に示すように、本実施形態に係る画像形成装置1は、スキャナユニット102、プリントエンジン106を有する複合機として構成されている。尚、図8においては、電気的接続を実線の矢印で示しており、用紙若しくは文書束の流れを破線の矢印で示している。
ディスプレイパネル104は、画像形成装置1の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置1を直接操作し、若しくは画像形成装置1に対して情報を入力する際の入力インタフェース(操作部)でもある。ディスプレイパネル104は、図2に示すLCD60及び操作部70によって実現される。
ネットワークI/F108は、画像形成装置1がネットワークを介して他の機器と通信するためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースが用いられる。ネットワークI/F108は、図2に示すI/F50によって実現される。また、ネットワークI/F108には、FAXモデムとしての機能も含まれ、画像形成装置1がネットワークを介してFAX送受信を行うためのインタフェースとしても機能する。
コントローラ100は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM30や不揮発性メモリ並びにHDD40や光学ディスク等の不揮発性記憶媒体に格納されたプログラムが、RAM20等の揮発性メモリ(以下、メモリ)にロードされ、CPU10の制御に従って動作することにより構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ100が構成される。コントローラ100は、画像形成装置1全体を制御する制御部として機能する。
主制御部110は、コントローラ100に含まれる各部を制御する役割を担い、コントローラ100の各部に命令を与える。エンジン制御部120は、プリントエンジン106やスキャナユニット102等を制御若しくは駆動する駆動手段としての役割を担う。画像処理部130は、主制御部110の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン106が画像形成動作において形成すべき画像を描画するための情報である。また、画像処理部130は、スキャナユニット102から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像形成装置1の記憶領域に格納され若しくはネットワークI/F108を介してクライアント端末2やワークフローサーバ3に送信される情報である。
操作表示制御部140は、ディスプレイパネル104に情報表示を行い若しくはディスプレイパネル104を介して入力された情報を主制御部110に通知する。入出力制御部150は、ネットワークI/F108を介して入力される情報を主制御部110に入力する。また、主制御部110は、入出力制御部150を制御し、ネットワークI/F108及びネットワークを介してクライアント端末2やワークフローサーバ3若しくは公衆回線4に接続された他の機器にアクセスする。
画像形成装置1がプリンタとして動作する場合は、まず、入出力制御部150がネットワークI/F108を介して印刷ジョブを受信する。入出力制御部150は、受信した印刷ジョブを主制御部110に転送する。主制御部110は、印刷ジョブを受信すると、画像処理部130を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成する。
画像処理部130によって描画情報が生成されると、エンジン制御部120は、プリントエンジン106を制御し、上記生成された描画情報に基づき、給紙テーブル105から搬送される用紙に対して画像形成を実行させる。プリントエンジン106の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン106によって画像形成が施された文書は排紙トレイ107に排紙される。
画像形成装置1がスキャナとして動作する場合は、ユーザによるディスプレイパネル104の操作若しくはネットワークI/F108を介して外部のクライアント端末3等から入力されるスキャン実行指示に応じて、操作表示制御部140若しくは入出力制御部150が主制御部110にスキャン実行信号を転送する。主制御部110は、受信したスキャン実行信号に基づき、エンジン制御部120を制御する。
エンジン制御部120は、ADF101を駆動し、ADF101にセットされた撮像対象原稿をスキャナユニット102に搬送する。また、エンジン制御部120は、スキャナユニット102を駆動し、ADF101から搬送される原稿を撮像する。また、ADF101に原稿がセットされておらず、スキャナユニット102に直接原稿がセットされた場合、スキャナユニット102は、エンジン制御部120の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット102が撮像部として動作する。
撮像動作においては、スキャナユニット102に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部120は、スキャナユニット102が生成した撮像情報を画像処理部130に転送する。画像処理部130は、主制御部110の制御に従い、エンジン制御部120から受信した撮像情報に基づき画像情報を生成する。画像処理部130が生成した画像情報はHDD40等の画像形成装置1に装着された記憶媒体に保存される。即ち、スキャナユニット102、エンジン制御部120及び画像処理部130が連動して、原稿読み取り部として機能する。
画像処理部130によって生成された画像情報は、ユーザの指示に応じてそのままHDD40等に格納され若しくは入出力制御部150及びネットワークI/F108を介してクライアント端末3等の外部の装置に送信される。
また、画像形成装置1が複写機として動作する場合は、エンジン制御部120がスキャナユニット102から受信した撮像情報若しくは画像処理部130が生成した画像情報に基づき、画像処理部130が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部120がプリントエンジン106を駆動する。尚、描画情報と撮像情報との情報形式が同一である場合は、撮像情報をそのまま描画情報として用いることも可能である。
また、画像形成装置1がファクシミリとして動作する場合は、まず、スキャナ動作の場合と同様に画像処理部130によって画像情報が生成される。そして、主制御部110が入出力制御部150を制御し、FAX送信を実行させる。FAX送信に際しては、入出力制御部150が、主制御部110の制御に従い、ネットワークI/F108のうちFAXモデムの機能を駆動して指定された送信先に画像を送信する。
次に、図5に示すようなワークフロー情報が生成される際の動作について、図9を参照して説明する。図9は、ワークフロー情報の生成動作を示すシーケンス図である。図9に示すように、ユーザがクライアント端末3を操作することによりフロー管理アプリ330のユーザインタフェース部331に操作情報が入力され、ワークフローの作成が開始される(S901)。
ワークフロー作成部333は、ユーザインタフェース部331からの通知に基づいてワークフローの作成を開始すると、サービス管理部334に、サービスの一覧を要求する(S902)。サービス管理部334は、ワークフロー作成部333からの要求を受けて、図6において説明した情報に基づき、“スキャン”、“プリント”、“OCR”等のサービスの種類の一覧をサービス情報テーブル336から取得し(S903)、ワークフロー作成部333に転送する(S904)。
ワークフロー作成部333は、サービス管理部334から入力されたサービス一覧に基づき、ワークフローに組み込み可能なサービスが表示されたワークフローの作成画面を生成してユーザインタフェース部331に出力する(S905)。これにより、ユーザインタフェース部331は、表示制御部320を介してユーザI/Fデバイス301にワークフロー作成画面を表示させる(S906)。S906においてユーザI/Fデバイス301に表示されるワークフロー作成画面の例を図10に示す。
図10に示すように、ワークフロー作成画面においては、選択可能なサービス種類のボタンが表示されており、ユーザは、夫々のボタンをワークフローにおいて実行させたい順番に押下する。これにより、図10下部に示されるように、各サービスを示す情報が順番に登録され、ユーザインタフェース部331が夫々のサービスを示す情報をフロー情報として順番に保持する。
そして、図10に示されている“登録”ボタンをユーザが押下すると、操作制御部310にその操作情報が入力されてユーザインタフェース部331がその情報を取得し、保持しているフロー情報をワークフロー作成部333に送信する(S907)。ユーザインタフェース部331からフロー情報を取得したワークフロー作成部333は、フロー記憶部335にフロー情報を記憶する(S908)。このような処理により、図5に示すようなワークフロー情報が記憶される。
このような文書管理システムにおいて、本実施形態に係る要旨は、ワークフロー実行時におけるサービスの選択態様にある。以下、本実施形態に係るワークフロー実行時の動作について、図11を参照して説明する。図11は、本実施形態に係る文書管理システムにおけるワークフロー実行時の動作を示すシーケンス図である。図11に示すように、まずは、ユーザインタフェース部331が、ユーザによる操作に応じてワークフローの選択・実行を行うための画面の表示要求を取得する(S1101)。
ユーザインタフェース部331は、画面表示要求を取得すると、フロー制御部332に対して、フロー情報を要求する(S1102)。フロー制御部332は、ユーザインタフェースからの要求に応じて、フロー記憶部335に記憶されているフロー情報を取得し(S1103)、取得したフロー情報をユーザインタフェース部に転送する(S1104)。ユーザインタフェース部331は、フロー制御部332からフロー情報を取得すると、ユーザがフローを選択し、実行要求を入力するためのフロー選択画面を生成し、表示制御部320を介して、ユーザI/Fデバイス301に表示させる(S1105)。
S1105においてユーザI/Fデバイス301に表示されるフロー選択画面の例を図12に示す。図12に示すように、フロー選択画面においては、実行するべきワークフローを選択する部分に加えて、ワークフローを構成する各サービスの実行デバイスの選択に関するインタフェースが設けられている。図12の例においては、上記各サービスの実行デバイスの選択に関するインタフェースとして、“品質優先実行”、“速度優先実行”及び“サービス選択”のボタンが設けられている。
“品質優先実行”のボタンは、各サービスの選択に際して、処理結果の品質を重視することを指定してワークフローの実行要求を行うためのボタンである。“速度優先実行” のボタンは、各サービスの選択に際して、処理速度を重視することを指定してワークフローの実行要求を行うためのボタンである。“サービス選択”のボタンは、ユーザが個別にサービスを選択することを要求するためのボタンである。
図11においては、図12に示す“サービス選択”のボタンが押下された場合を例として説明する。図12の画面においてワークフローが選択された上で、“サービス選択”のボタンがユーザによって押下されると、ユーザインタフェース部331はユーザの操作に応じてワークフローを選択し、その結果をフロー制御部332に送信する(S1106)。これにより、フロー制御部332が、選択されたワークフローを識別する情報を保持する。
更に、ユーザインタフェース部331は、“サービス選択”のボタンが押下された場合、サービス管理部334に対してサービス情報を要求する(S1107)。サービス管理部334は、ユーザインタフェース部331からの要求に応じてサービス情報テーブル336から図6において説明したサービス情報を取得し、ユーザインタフェース部331に送信する(S1108)。
ユーザインタフェース部331は、サービス管理部334から取得したサービス情報に基づき、デバイス選択画面をユーザI/Fデバイス301に表示させる(S1109)。これにより、ユーザは、ワークフローに含まれる各サービスを実行するデバイスを選択することができる。S1109においてユーザI/Fデバイス301に表示されるデバイス選択画面の例を図13に示す。図13に示すように、デバイス選択画面においては、サービス毎に夫々のサービスを実行可能なデバイスが表示される。また、サービスによっては、条件を指定する項目が表示される。
尚、サービス管理部334は、ユーザインタフェース部331にサービス情報を送信する際、図7において説明したような、各デバイスから取得可能な情報を取得し、その情報に基づいて図6に示すサービス情報を更新しても良い。これにより、常に最新の状態に基づいてサービス選択画面を表示することが可能となる。また、デバイスからの応答の有無を確認することにより、動作可能なデバイスのみを選択対象とすることもできる。
図13において“実行”と表示されている実行ボタンをユーザが押下すると、ユーザインタフェース部331は、操作制御部310から入力された操作情報に従い、サービス管理部334に対して選択されたデバイスの情報を送信する(S1110)。これにより、サービス管理部334は、フロー制御部332に対して、各サービスを実行するデバイスの設定を行い(S1111)、処理結果をユーザインタフェース部331に通知する。尚、S1107〜S1111の処理は、上述したように“サービス選択”のボタンが押下された場合にのみ実行される処理である。
図12の画面において“品質優先実行”や“速度優先実行”のボタンが押下された場合、ユーザインタフェース部331は、フロー制御部332に対して選択されたワークフローを指定する情報を送信(S1106)した後、サービス管理部334に対して、同じくワークフローを指定する情報と、“品質優先実行”や“速度優先実行”等の条件を指定する情報を送信する。これにより、サービス管理部334は、S1111の処理として、サービス情報に基づいて各サービスを実行するデバイスを選択する処理を実行し、フロー制御部332へのサービスの設定及びユーザインタフェース部331への通知を行う。これについては後に詳述する。
サービス管理部334からの通知を受けると、ユーザインタフェース部331は、フロー制御部332に対して、ワークフローの実行を要求する(S1112)。ユーザインタフェース部331からの実行要求を受けると、フロー制御部332は、S1106において選択されたワークフロー及びS1111において設定された各サービスを実行するデバイスに基づき、ワークフローにおける各サービスの順番に基づいてサービス制御部337にサービスの実行要求を行う(S1113)。
サービス制御部337は、フロー制御部332からサービスの実行要求を受けると、そのサービスを実行するべきデバイスとして設定されたデバイスに対して、実行可否のチェックを行った上で(S1114)、サービスの実行を要求し、実行結果を取得する(S1115)。即ち、サービス制御部337が、処理実行制御部として機能する。1つのサービスについて実行が完了すると、サービス制御部337は、サービス情報テーブル336に含まれるサービス情報のうち、そのサービスを実行したデバイスに関する情報を更新するように、サービス管理部334に要求する(S1116)。この際、サービス制御部337は、サービスの実行結果の情報をサービス管理部334に入力する。
サービス管理部334は、サービス制御部337からの要求に基づき、サービスを実行したデバイスについてのサービス情報を更新し、更新結果をサービス制御部337に通知する(S1117)。即ち、サービス管理部334が、処理対応機器情報更新部として機能する。サービス制御部337は、ワークフローに含まれる全てのサービスについて実行完了するまで、S1114〜S1116までの処理を繰り返す。そして、ワークフローに含まれる全てのサービスの実行が完了すると、サービス制御部337が、ワークフローの実行結果をフロー制御部332に通知し(S1118)、フロー制御部332が、サービス制御部337から通知された実行結果をユーザインタフェース部331に転送する(S1119)。このような処理により、本実施形態に係るワークフローの実行動作が完了する。
図12のS1116、S1117にある様に、サービス情報テーブル336に記憶されているサービス情報を逐次更新することにより、S1109におけるデバイスの選択において、より現状に沿った情報に基づいた判断を行うことが可能となる。以下、本実施形態におけるサービス情報の更新について説明する。
図14(a)は、サービス情報の更新方法を示す図である。図14(a)に示すように、サービス情報を更新する方法としては、サンプルデータを用いてサービスを定期的に実行することにより情報を更新する“1”の態様、ワークフローを実行した結果に対するユーザによるフィードバックを用いて情報を更新する“2”の態様、そして、図11のS1116、S1117のように、実際のワークフローの実行結果によりサービス情報を更新する“3”の態様がある。
図14(b)は、“速度”、“品質評価”、“故障率”等、図6に示すようなサービス情報に含まれる各項目について、“スキャン”、“プリント”、“OCR”、“翻訳”等の夫々のサービスに対応するデバイスがどのようにサービス情報を更新するかを、図14(a)に示す“1”、“2”、“3”の数字によって示す図である。
ここで、図14(a)の“1”の態様によるサービス情報の更新のため、ユーザは、予めサービスの定期実行についての設定を行う。図15は、サービス定期実行の設定画面の例を示す図である。図15に示す画面は、ユーザインタフェース部331が、ユーザによる操作に応じて、表示制御部320を介してユーザI/Fデバイス301に表示させる。
図15に示すように、サービス定期実行の設定画面には、定期的に実行させたいサービスを選択するチェックボックスと、定期的に実行するものとして選択されたサービスについて必要な情報を指定する部分とが表示されている。図15の例においては、定期的に実行するサービスとして“OCR”が選択されており、“sample1.tif”、“sample2.jpeg”という情報を入力データとして、“sample1.txr”,“sample2.txt”という情報を期待結果として用いることが指定されている。
尚、各サービスを定期実行する際に必要となる情報を図16に示す。例えば、“OCR”サービスの場合、tifやjpeg等の画像が入力に用いられ、期待される実行結果は文字情報であるため、txt形式の情報が用いられる。このように、サンプルデータとしての入力データに加えて、期待される実行結果の情報をも登録することにより、実際の実行結果との差異に基づいてサービスの品質判断を自動的に行うことができる。このように設定された情報は、サービス管理部334が保持する。そして、サービス管理部334は、バックエンドにおいてサービス制御部337を制御し、各サービスを実行する。これによりサービス制御部337が実行結果を取得し、サービス情報テーブルが更新される。
図17を参照して、サービスの定期実行動作について説明する。図17においては、定期実行のサービスとしてOCRを例として説明する。サービス管理部334は、図15において説明した画面を介して設定されたサービスの定期実行の情報に基づいて定期実行のタイミングが否かを判断し、定期実行のタイミングになると、サービス制御部がワークフローを実行中か否か(S1701)、夫々のデバイスにおけるサービスの実行が無料か否か(S1702)、ネットワーク負荷が所定値以下か否か(S1703)について判断する。
そして、サービス管理部334は、ワークフローが非実行中であり(S1701/YES)、サービスが無料であり(S1702/YES)、ネットワーク負荷が所定値以下である(S1703/YES)場合にのみ、サービスの定期実行を許可する。このような判断を行うことにより、ユーザの発意に基づくワークフローの実行を阻害することや、ユーザの意図しないところで料金が発生するようなことを防ぐことができる。
サービスの定期実行を許可すると、サービス管理部334は、図15において説明した画面により登録された情報に基づき、サービス制御部337にOCRの実行を要求する。これにより、サービス制御部337の制御に従ってOCRを実行可能な各デバイスでサンプルOCRが実行され、実行結果が取得される(S1704)。
サンプルOCRが完了すると、サービス管理部334は、実行開始タイミングと完了タイミングとから、実行時間を計測し、図6に示す“速度”の情報を更新する(S1705)。また、サービス管理部334は、図6に示す“利用回数”をインクリメントし、“故障率”を更新する(S1706)。尚、S1704〜S1705の処理は、図11のS1116、S1117においても同様に実行される。更に、サービス管理部334は、図15において説明した期待結果の情報と、S1704において取得した実行結果、即ち、認識された文字情報とを比較して認識率を計測し、図16に示す“評価”を更新する(S1707)。
サービス管理部334は、サービス情報テーブル336においてOCR用のデバイスとして登録されている全てのデバイスについてS1704〜S1707の処理を繰り返し、全てのデバイスについて完了すると(S1708/YES)、処理を終了する。このような処理により、図15において説明したような画面を介してサービス管理部334に登録されたサービス定期実行の動作が完了し、サービス情報テーブル336に含まれるサービス情報が新しい情報に保たれる。
次に、図14(b)の“2”の態様によるサービス情報の更新について説明する。図18は、ユーザフィードバックによるサービス情報の更新動作を示すシーケンス図である。図18の動作は、例えば、図11のS1119の後に実行される。即ち、図11のS1119によってユーザインタフェース部331に実行結果が通知されると、ユーザインタフェース部331は、フィードバックの入力画面を表示制御部320を介してユーザI/Fデバイス301に表示させる(S1801)。即ち、ユーザインタフェース部331が、フィードバック取得部として機能する。
クライアント端末3のユーザI/Fデバイス301にフィードバック入力画面が表示されると、ユーザが、キーボードやマウスなどのユーザI/Fデバイス301を操作してフィードバックを入力する。例えば、1〜5の5段階の数値により入力するように促す画面をフィードバック入力画面において表示することにより、ユーザインタフェース部331は、フィードバックとして1〜5のいずれかの数値を取得し、ワークフロー制御部332にフィードバックの内容を示す情報を通知する(S1802)。
ユーザインタフェース部331からフィードバックを取得すると、ワークフロー制御部332は、図19に示すように、ワークフローに含まれるサービスの組み合わせ毎に、フィードバック結果の平均の計算結果及びフィードバック回数を記憶する(S1803)。図19の状態においては、ユーザによって入力されたフィードバックは、ワークフローに対するフィードバックとして記憶されている。
更にワークフロー制御部332は、図8に示すように記憶したフィードバック結果に基づき、各サービスの評価を行ってサービス管理部334に通知する(S1804)。即ち、ワークフローに対するフィードバックを各処理に対するフィードバックに変換する。S1804の処理については後述する。ワークフロー制御部332からサービスの評価結果を取得したサービス管理部334は、取得したサービスの評価結果に基づいて図6に示すように情報を更新して記憶し(S1805)、処理を終了する。
S1804において、ワークフロー制御部332は、様々な方法によりサービスの評価を行う。例えば、フィードバック結果が図19に示すような状態の場合、ワークフローに含まれるサービスは、“Scan”、“OCR”、“翻訳”、“Print”である。そして、“翻訳A”、“翻訳B”、“翻訳C”、“翻訳D”のように、“翻訳”のみ、サービスを実行するデバイスが異なるため、FB結果の違いは、“翻訳”サービスの品質の違いによってもたらされていると推測することができる。従って、ワークフロー制御部332は、図19に示すようなフィードバック結果を記憶している場合、各フィードバック結果に基づいて“翻訳A”、“翻訳B”、“翻訳C”、“翻訳D”夫々のサービス評価値を決定する。
また、ワークフローに含まれるサービスの組み合わせ毎に、各サービスに重み値を設定し、ワークフローに対するフィードバック結果を重み値に従って各サービスに割り振る様にしても良い。そのような例を図20に示す。図20は、各サービスの組み合わせ毎の、各サービスの重み値を示す図である。
例えば、“Scan”、“Print”が含まれる場合、夫々の重み値は“0.5”である。この場合、フィードバック結果が“4.5”であれば、“Scan”、“Print”夫々に“2.25”の値が割り振られる。また、“Scan”、“OCR”、“Mail”が含まれる場合、重み値は夫々“0.3”、“0.6”、“0.1”であるから、フィードバック結果が“4.0”であれば、“Scan”、“OCR”、“Mail”に、“1.2”、“2.4”、“0.4”の値が夫々割り振られる。このように夫々のサービスの組み合わせ毎のフィードバック結果を各サービスに割り振り、その合計値を求めることによっても、サービス評価を行うことができる。
次に、図12の画面において、“品質優先実行”や“速度優先実行”のボタンが押下された場合のサービス管理部334の動作について、図21を参照して説明する。サービス管理部334は、ユーザインタフェース部331から、図11のS1106の後の処理として、ワークフローを指定する情報及び条件を指定する情報を取得すると(S2101)、サービス情報テーブル336からサービス情報を取得する(S2102)。即ち、サービス管理部334が、実行するべきワークフローを指定する情報及びワークフローの実行に際して前記処理を実行する機器を選択する際の条件を指定する情報を取得する指定情報取得部として機能する。
サービス情報を取得すると、サービス管理部334は、ワークフローを指定する情報の入力元のIPアドレス等に基づいてサービス情報を参照し、入力元の機器、即ちユーザが操作している操作デバイスが、入出力デバイスであるか否か判断する(S2103)。“スキャン”や“プリント”等の紙媒体の入出力サービスは、ユーザが操作しているデバイスにおいて実行されることがユーザにとっては便利である。従って、操作デバイスが入出力デバイスであった場合(S2103/YES)、サービス管理部334は、“スキャン”や“プリント”等の入出力のサービスとして、操作デバイスを選択する(S2104)。尚、操作デバイスが入出力デバイスである場合とは、本実施形態においては、フロー管理アプリ330が画像形成装置1にインストールされており、ユーザが画像形成装置1を操作してワークフローを実行する場合である。
その後、サービス管理部334は、各サービスを実行可能な機器の状態の情報を各機器から取得し(S2105)、異常状態の機器を選択可能な機器の一覧から除外する(S2106)。これにより、ワークフローが中断してしまうような事態を回避することができる。その後、サービス管理部334は、各サービス毎のデバイス、即ちサービス提供サーバ2の選択に写る。各サービス毎のデバイスの選択において、サービス管理部334は、1つのサービスについて、実行デバイスの選択があるか否か確認し(S2107)、選択があれば(S2107/YES)、選択されたデバイスを実行デバイスとして設定する(S2108)。
他方、実行デバイスの選択が無い場合(S2107/NO)、サービス管理部334は、そのサービスを実行可能なデバイスにおけるサービスの利用回数を確認し(S2109)、いずれのデバイスも利用回数が所定の閾値を超えていれば(S2110)、指定された条件に基づき、図6に示す“速度”や“評価”の情報を参照してデバイスを設定する(S2111)。即ち、サービス管理部334が、機器選択部として機能する。
他方、利用回数が所定の閾値を超えていないデバイスがある場合(S2110/NO)、サービス管理部334は、図6に示す“利用回数”の少ないデバイスを実行デバイスとして設定する(S2112)。“利用回数”が少ないデバイスは、“評価”の値の元となるサンプル数が少ないため、その値の信頼性が低い事が考えられる。これに対して、“利用回数”の少ないデバイスを優先的に選択してサービスを実行させることにより、“評価”の値の算出元となるサンプル数を増やし、値の信頼性を早期に向上することができる。尚、S2110における閾値は任意に設定することが可能であり、例えば20回である。
S2108、S2111、S2112いずれかの処理が完了すると、サービス管理部334は、指定されたワークフローに含まれる全サービスについてのデバイスの設定が完了したか否か確認し(S2113)、全サービスについてのデバイスの設定が完了するまでS2107からの処理を繰り返し(S2113/NO)、全サービスについてのデバイスの設定が完了すると(S2113/YES)、処理を終了する。
このようなサービス管理部334の処理により、不慣れなユーザであっても、“品質優先実行”や“速度優先実行” 等の理解の容易な情報に基づいて好適なデバイスを選択することができ、ユーザの利便性を向上することができる。
以上説明したように、本実施形態に係る文書管理システムにおいては、フロー管理アプリ330がインストールされた機器が画像処理装置として機能し、ワークフローの作成に際してはサービスの種類のみが指定される。そして、サービス、デバイス及びその機能が関連付けられたサービス情報に基づき、ワークフローの実行の際に、ユーザの意図に最適なデバイスが選択される。このような構成により、各処理を実行するデバイスの選択を容易化することができる。