(57)【特許請求の範囲】
【請求項１】
入力文書に対しワークフローの１以上の処理を順に実行させる情報処理装置であって、
前記ワークフローを識別するためのワークフロー識別情報を受け付け、前記ワークフロー識別情報を基に、実行すべき前記１以上の処理の各々を識別するための処理識別情報と各前記処理の実行すべき順番と当該処理に対して処理結果が記憶されている場合には当該処理結果を識別するための結果識別情報とを含むワークフロー情報をワークフロー情報記憶部から取得するワークフロー制御部と、
取得した前記ワークフロー情報に前記結果識別情報を含む場合に、当該結果識別情報を基に結果記憶部から処理結果を取得する結果取得部とを含み、
前記ワークフロー制御部が、前記結果取得部から取得した前記処理結果を、前記ワークフローにおける当該処理結果に対応する処理の次の処理を実行する機器へ送信し、前記ワークフローの途中の処理から実行することを可能にし、
前記情報処理装置は、前記ワークフロー制御部が、実行すべき各前記処理の処理識別情報と当該各処理の実行すべき順番とを含むワークフロー情報を登録すべきワークフロー情報としてユーザから受け付けたことに応答して、前記ワークフロー情報記憶部に登録済みワークフロー情報が存在するか否かを判定し、存在する場合、前記登録済みワークフロー情報に含まれる処理識別情報と前記登録すべきワークフロー情報に含まれる処理識別情報とを実行すべき処理の順に比較し、少なくとも１つの異なる処理識別情報を含むか否かを判定する処理判断部をさらに含む、情報処理装置。
【請求項２】
前記ワークフロー情報に前記結果識別情報を含まない場合、前記ワークフロー制御部は、前記ワークフローにおける前記１以上の処理のすべてを順に実行させるために、前記入力文書を最初の処理を実行する機器へ送信する、請求項１に記載の情報処理装置。
【請求項３】
前記ワークフロー制御部は、前記最初の処理を実行した機器から取得した処理結果を次の処理を実行する機器へ送信するとともに、当該処理結果に結果識別情報を割当て前記結果記憶部に記憶させ、当該結果識別情報を前記ワークフロー情報の前記処理識別情報と対応付けて前記ワークフロー情報記憶部へ記憶させる、請求項２に記載の情報処理装置。
【請求項４】
前記ワークフロー制御部は、前記入力文書を識別するための文書識別情報も受け付け、前記ワークフロー情報に含まれる前記文書識別情報と一致するか否かを判定し、一致すると判定し、かつ前記ワークフロー情報に前記結果識別情報を含む場合に、前記結果取得部が前記結果記憶部から前記処理結果を取得する、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記処理判断部において実行すべき順に前記処理識別情報が比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断する記憶対象判断部をさらに含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記記憶対象判断部は、複数の登録済みワークフロー情報と前記登録すべきワークフロー情報の処理識別情報が実行すべき順に比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断する、請求項５に記載の情報処理装置。
【請求項７】
前記記憶対象判断部は、前記処理の実行にかかる利用料金または処理時間に応じて、処理結果を記憶対象とするか否かを判断する、請求項５に記載の情報処理装置。
【請求項８】
前記記憶対象判断部は、処理を実行する機器が処理途中の途中結果を記憶する機能を有する場合、当該途中結果を記憶対象の処理結果として判断する、請求項５に記載の情報処理装置。
【請求項９】
前記ワークフローの最初の処理が画像読み取り処理である場合、前記ワークフロー制御部は、読み取った画像の画像データに、前記ワークフロー情報の記憶対象の処理結果の結果識別情報を割当て、当該画像データと当該結果識別情報とを関連付けて前記結果記憶部に記憶する、請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記ワークフローの最初の処理が画像読み取り処理であって、読み取る画像がマーキング情報を含む場合、前記ワークフロー制御部は、読み取ったマーキング情報に、前記ワークフロー情報の記憶対象の処理結果の結果識別情報を割当て、当該マーキング情報と当該結果識別情報とを関連付けて前記結果記憶部に記憶する、請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１１】
前記ワークフロー情報記憶部に記憶された前記ワークフロー情報が削除または更新されたとき、前記ワークフロー制御部は、削除または更新前の当該ワークフロー情報に対応付けて前記結果記憶部に記憶されていた前記記憶対象の処理結果を削除する、請求項５〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
請求項１〜１１のいずれか１項に記載の情報処理装置と、前記各処理を実行する機器とから構成される、ワークフロー管理システム。
【請求項１３】
入力文書に対しワークフローの１以上の処理を順に実行するワークフロー実行方法であって、前記方法は情報処理装置により実行され、
前記ワークフローを識別するためのワークフロー識別情報を受け付け、前記ワークフロー識別情報を基に、実行すべき前記１以上の処理の各々を識別するための処理識別情報と各前記処理の実行すべき順番と当該処理に対して処理結果が記憶されている場合には当該処理結果を識別するための結果識別情報とを含むワークフロー情報をワークフロー情報記憶部から取得するステップと、
取得した前記ワークフロー情報に前記結果識別情報を含む場合に、当該結果識別情報を基に結果記憶部から処理結果を取得するステップと、
前記結果記憶部から取得した前記処理結果を、前記ワークフローにおける当該処理結果に対応する処理の次の処理を実行する機器へ送信するステップとを含み、
前記ワークフローの途中の処理から実行し、
前記方法は、実行すべき各前記処理の処理識別情報と当該各処理の実行すべき順番とを含むワークフロー情報を登録すべきワークフロー情報としてユーザから受け付けたことに応答して、前記ワークフロー情報記憶部に登録済みワークフロー情報が存在するか否かを判定するステップと、
存在する場合、前記登録済みワークフロー情報に含まれる処理識別情報と前記登録すべきワークフロー情報に含まれる処理識別情報とを実行すべき処理の順に比較し、少なくとも１つの異なる処理識別情報を含むか否かを判定するステップとをさらに含む、ワークフローの実行方法。
【請求項１４】
前記取得したワークフロー情報に前記結果識別情報を含まない場合、前記ワークフローにおける前記１以上の処理のすべてを順に実行させるために、前記入力文書を最初の処理を実行する機器へ送信するステップを含む、請求項１３に記載のワークフローの実行方法。
【請求項１５】
前記最初の処理を実行した機器から取得した処理結果を次の処理を実行する機器へ送信するステップと、当該処理結果に結果識別情報を割当て前記結果記憶部に記憶するステップと、当該結果識別情報を前記ワークフロー情報の前記処理識別情報と対応付けて前記ワークフロー情報記憶部へ記憶するステップとを含む、請求項１４に記載のワークフローの実行方法。
【請求項１６】
前記入力文書を識別するための文書識別情報を受け付け、前記ワークフロー情報に含まれる前記文書識別情報と一致するか否かを判定するステップと、一致すると判定し、かつ前記ワークフロー情報に前記結果識別情報を含む場合に、前記結果記憶部から前記処理結果を取得するステップとをさらに含む、請求項１３〜１５のいずれか１項に記載のワークフローの実行方法。
【請求項１７】
実行すべき順に前記処理識別情報が比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断するステップをさらに含む、請求項１３〜１６のいずれか１項に記載のワークフローの実行方法。
【請求項１８】
複数の登録済みワークフロー情報と前記登録すべきワークフロー情報の処理識別情報が実行すべき順に比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断するステップをさらに含む、請求項１３〜１６のいずれか１項に記載のワークフローの実行方法。
【請求項１９】
前記処理の実行にかかる利用料金または処理時間に応じて、処理結果を記憶対象とするか否かを判断するステップをさらに含む、請求項１３〜１６のいずれか１項に記載のワークフローの実行方法。
【請求項２０】
処理を実行する機器が処理途中の途中結果を記憶する機能を有する場合、当該途中結果を記憶対象の処理結果として判断するステップを含む、請求項１３〜１６のいずれか１項に記載のワークフローの実行方法。
【請求項２１】
前記ワークフローの最初の処理が画像読み取り処理である場合、読み取った画像の画像データに、前記ワークフロー情報の記憶対象の処理結果の結果識別情報を割当て、当該画像データと当該結果識別情報とを関連付けて前記結果記憶部に記憶するステップを含む、請求項１３〜２０のいずれか１項に記載のワークフローの実行方法。
【請求項２２】
前記ワークフローの最初の処理が画像読み取り処理であって、読み取る画像がマーキング情報を含む場合、読み取ったマーキング情報に、前記ワークフロー情報の記憶対象の処理結果の結果識別情報を割当て、当該マーキング情報と当該結果識別情報とを関連付けて前記結果記憶部に記憶するステップを含む、請求項１３〜２０のいずれか１項に記載のワークフローの実行方法。
【請求項２３】
前記ワークフロー情報記憶部に記憶された前記ワークフロー情報が削除または更新されたとき、削除または更新前の当該ワークフロー情報に対応付けて前記結果記憶部に記憶されていた前記記憶対象の処理結果を削除するステップをさらに含む、請求項１７〜２２のいずれか１項に記載のワークフローの実行方法。
【請求項２４】
請求項１３〜２３のいずれか１項に記載のワークフローの実行方法を実行させるためのコンピュータ可読なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置等が提供するサービスをワークフローのサービス処理手順に従って実行するように制御する情報処理装置、その画像形成装置等とその情報処理装置とを含んで構成されるワークフロー管理システム、情報処理装置により行われるワークフローの実行方法およびその方法を実現するためのコンピュータ可読なプログラムに関する。
【背景技術】
【０００２】
近年、ファックス装置、プリンタ装置、ＭＦＰ(Multi Function Peripheral)等の画像形成装置は、ネットワーク対応のものが増加してきており、その画像形成装置が備える機能を、ネットワークを介してサービスとして提供することが行われるようになってきている。また、ネットワーク上には、様々なコンテンツを実装するサーバ装置が散在しており、それらサーバ装置から様々なサービスを提供し、それを利用するクラウドコンピューティング化が進められている。
【０００３】
このように、複数の画像形成装置や複数のサーバ装置がネットワークに接続された構成は、様々なサービスを提供するサービス提供システムとして機能する。このサービス提供システムは、画像形成装置やサーバ装置の１つが１つのサービスを提供するだけではなく、これらの複数の装置を有効に活用するために、複数の装置がネットワークを介して提供するサービスを実行する順につなげてワークフローとして設定し、そのワークフローとして設定された順にサービスを実行し、複数のサービスを提供することが可能である。
【０００４】
例えば、ネットワーク上のサービスプロバイダから提供されている機能を、あたかも自分の持っているＭＦＰの機能であると表示して、機能の選択、実行を行うという目的で、ユーザ環境における画像形成装置と、各種サービスの提供を行うプロバイダ環境とがインターネットで接続されたシステムが提案されている（特許文献１参照）。このシステムは、上記を実現するために、ネットワークで接続された各種サービスの処理に関する情報を取得する手段と、その処理を制御する手段とを主とする構成とされている。
【０００５】
また、ワークフローを構成する各作業項目を実行する際のユーザの作業負担を軽減させることができる画像形成装置、ワークフロー実行方法およびワークフロー実行プログラムを提供するという目的で、ワークフローの設定が可能な画像形成装置が提案されている（特許文献２参照）。この画像形成装置は、ワークフローを構成する作業項目ごとに当該作業項目に関する設定情報が登録された作業項目管理手段と、作業項目管理手段に登録された作業項目ごとに作業項目を示す図形を表示させる表示手段と、図形の選択に応じ、当該図形に係る作業項目に対して登録された設定情報に基づく画像処理を実行させる作業項目実行手段とを主とする構成とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のサービスをつなげたワークフローシステムでは、ユーザが事前によく利用するサービスの実行順序を、ワークフローとして登録しておくことで、ワークフローを利用するたびに実行順序を作成しなくても、登録されたワークフローを選択するだけで同じサービスの手順が実行できるようになっている。ユーザは、同じ文書に対して同じワークフローを何度も繰り返し利用することがあるが、これでは、利用するごとに最初のサービスから順に同じ処理を実行するため、結果は同じであるのに何回利用しても同じ利用料金がかかり、同じ実行時間がかかるという問題があった。
【０００７】
例えば、ある文書をＭＦＰに蓄積し、その蓄積した文書に対して、ＯＣＲ(Optical Character Recognition)をかけ、翻訳し、印刷するワークフローを実行したとする。その後、別のユーザが同じ文書に対して、同じワークフローを実行する場合がある。また、一度印刷した文書は廃棄されることが多く、もう一度その文書が必要になったとき、再び同じワークフローを実行する場合がある。このような場合、ワークフローを実行するたびに、最初のサービスから順に実行するのでは、ＯＣＲ、翻訳、印刷という３つのサービスの実行を繰り返すことになるので、実行時間がかかり、利用料金もかかる。
【０００８】
すなわち、従来の装置やシステムでは、サービスの処理結果を途中結果として記憶しておき、ワークフローの途中から実行することができないことから、上記の問題が生じていた。
【課題を解決するための手段】
【０００９】
本発明は、上記課題に鑑みなされたものであり、入力文書に対し１以上の処理を実行するワークフローを識別するためのワークフロー識別情報を受け付け、ワークフロー識別情報を基に、実行すべき１以上の処理の各々を識別するための処理識別情報と各処理の実行すべき順番と当該処理に対して処理結果が記憶されている場合には当該処理結果を識別するための結果識別情報とを含むワークフロー情報をワークフロー情報記憶部から取得するワークフロー制御部と、取得したワークフロー情報に結果識別情報を含む場合に、当該結果識別情報を基に結果記憶部から処理結果を取得する結果取得部とを含み、ワークフロー制御部が、結果取得部から取得した処理結果を、ワークフローにおける当該処理結果に対する処理の次の処理を実行する機器へ送信し、ワークフローの途中から実行することを可能にする、情報処理装置を提供することができる。
【００１０】
上記の構成により、同じ入力文書に対して、同じワークフローを何度も利用する場合に、サービスの処理を省略し、ワークフローの利用コストを削減することができる。
【００１１】
ワークフロー情報に結果識別情報を含まない場合、ワークフロー制御部は、ワークフローにおける１以上の処理のすべてを実行させるために、最初の処理を実行する機器へ入力文書を送信する。そして、ワークフロー制御部は、最初の処理を実行した機器から取得した処理結果を次の処理を実行する機器へ送信するとともに、処理結果に結果識別情報を割当て結果記憶部に記憶させ、当該結果識別情報をワークフロー情報の処理と対応付けてワークフロー情報記憶部へ記憶させる。これを、その後の処理に対して繰り返す。
【００１２】
ワークフロー制御部は、入力文書を識別するための文書識別情報も受け付け、ワークフロー情報に含まれる文書識別情報と一致するか否かを判定し、一致すると判定し、かつワークフロー情報に結果識別情報を含む場合に、結果取得部が結果記憶部から処理結果を取得する。一致しない場合は、その入力文書に対するワークフローの実行が初めてであるので、途中結果は存在せず、最初の処理から実行される。また、ワークフローを一度実行すると、処理結果が途中結果として記憶され、ワークフロー情報には、その途中結果の結果識別情報が記録されることから、この結果識別情報を含まない場合も、初めての実行であり、上記と同様に、最初の処理から実行される。
【００１３】
この情報処理装置は、ワークフロー制御部が、実行すべき各処理の処理識別情報と当該各処理の実行すべき順番とを含むワークフロー情報を登録すべきワークフロー情報としてユーザから受け付けたことに応答して、ワークフロー情報記憶部に登録済みワークフロー情報が存在するか否かを判定し、存在する場合、登録済みワークフロー情報に含まれる処理識別情報と登録すべきワークフロー情報に含まれる処理識別情報とを実行すべき処理の順に比較し、少なくとも１つの異なる処理識別情報を含むか否かを判定する処理判定部をさらに含むことができる。
【００１４】
また、この情報処理装置は、処理判定部において実行すべき順に処理識別情報が比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断する記憶対象判断部をさらに含むことができる。このとき、ワークフロー制御部は、その処理結果に結果識別情報を割当て、その処理結果と結果識別情報とを関連付けて結果記憶部に記憶させ、当該結果識別情報を登録済みワークフロー情報と登録すべきワークフロー情報の当該処理と対応付けてワークフロー情報記憶部へ記憶させる。これにより、その処理までは実行済みとみなし、その処理に対する処理結果を次の処理の入力として用い、残りの処理を実行することができる。
【００１５】
記憶対象判断部は、複数の登録済みワークフロー情報と登録すべきワークフロー情報の処理識別情報が実行すべき順に比較され、異なると判定した処理識別情報の直前の処理識別情報により識別される処理の処理結果を、記憶対象の処理結果として判断することもできる。
【００１６】
また、記憶対象判断部は、処理の実行にかかる利用料金または処理時間を基に、記憶対象の処理結果を判断することも可能である。例えば、ある処理に対する利用料金が無料であるとき、その処理の処理結果は記憶する必要はなく、有料の処理に対してのみ、処理結果を記憶することができる。これにより、記憶すべき処理結果を少なくし、メモリ不足となることを防止することができる。
【００１７】
ワークフローの最初の処理が画像読み取り処理である場合、ワークフロー制御部は、読み取った画像の画像データに結果識別情報を割当て、当該画像データと当該結果識別情報とを関連付けて結果記憶部に記憶するとともに、当該結果識別情報をワークフロー情報の記憶対象の処理結果の結果識別情報と対応付けてワークフロー情報記憶部へ記憶させることができる。これにより、読み取った画像を、記憶されている画像と比較し、一致すれば、共通の処理を省略して、途中結果としての記憶対象の処理結果を取得し、その処理結果を用いてその後の処理を行うことができる。
【００１８】
上記では、画像同士を比較したが、画像にマーキング情報を含み、マーキング情報同士を比較するように構成することも可能である。
【００１９】
記憶対象判断部は、処理を実行する機器が処理途中の途中結果を記憶する機能を有する場合、当該途中結果を記憶対象の処理結果として判断することができる。例えば、印刷機器が、印刷処理において集約印刷を行うときの集約画像を、途中結果として記憶する場合、その集約画像の画像データを処理結果として判断し、結果記憶部に記憶することができる。これにより、印刷処理を最初から実行することなく、途中から実行することができ、処理時間を短縮することができる。
【００２０】
ワークフロー情報記憶部に記憶されたワークフロー情報が削除または更新されたとき、ワークフロー制御部は、不要な、削除または更新前の当該ワークフロー情報に対応付けて結果記憶部に記憶されていた記憶対象の処理結果を削除する。
【００２１】
本発明では、上記の情報処理装置と、各処理を実行する機器とから構成されるワークフロー管理システムを提供することも可能である。各機器は、各処理を実行するための処理実行部を含む。
【００２２】
また、上記の情報処理装置により実行されるワークフローの実行方法や、その方法を実現するためのコンピュータ可読なプログラム、さらには、そのプログラムが記録された記録媒体も提供することが可能である。
【００２３】
これらの装置、システム、方法およびプログラムを提供することで、上述したように、同じ入力文書に対して、同じワークフローを何度も利用する場合に、サービスの処理を省略し、ワークフローの利用コストを削減することができる。また、ワークフローの実行時にサービスの処理結果を記憶し、再実行時にその記憶した処理結果を利用してワークフローの途中から実行するが、各処理の処理結果を記憶するのでは、記憶量が増加し、メモリ不足が生じるおそれがあるが、本発明の装置、システム、方法およびプログラムでは、必要な処理結果のみを記憶することで、メモリ不足となることを防止することができる。
【図面の簡単な説明】
【００２４】
【図１】ワークフローを例示した図。
【図２】本発明のワークフロー管理システムの１つの構成例を示した図。
【図３】ワークフロー管理システムを構成する情報処理装置のハードウェア構成を例示した図。
【図４】ワークフロー管理サーバとして機能する情報処理装置の第１実施形態を示した機能ブロック図。
【図５】ワークフローを初めて実行する場合の処理の流れを示したシーケンス図。
【図６】ワークフローを再度実行する場合の処理の流れを示したシーケンス図。
【図７】ワークフローを実行する場合の処理の流れを示したフローチャート図。
【図８】ワークフロー情報記憶部に記憶されるワークフロー情報を例示した図。
【図９】ワークフローを例示した図。
【図１０】情報処理装置の第２実施形態を示した機能ブロック図。
【図１１】ワークフロー登録時の処理の流れを示したシーケンス図。
【図１２】ワークフローを初めて実行する場合の処理の流れを示したシーケンス図。
【図１３】ワークフローを再度実行する場合の処理の流れを示したシーケンス図。
【図１４】ワークフローを登録する際の処理の流れを示したフローチャート図。
【図１５】ワークフローを実行する場合の処理の流れを示したフローチャート図。
【図１６】ワークフロー情報記憶部に記憶されるワークフロー情報を例示した図。
【発明を実施するための形態】
【００２５】
本発明について説明する前に、まず、ワークフローについて説明する。ワークフローとは、ネットワーク上のいくつかのサービスを実行する順につなげて組み合わせ、その組み合わせを１つの処理手順とみなして扱う単位のことである。図１に、ワークフローの一例を示す。図１に示すワークフローＡは、ＯＣＲサービス、翻訳サービス、印刷サービスという順番でサービスを実行する処理手順を表している。ワークフローＢは、ＯＣＲサービス、翻訳サービス、メールサービスという順番でサービスを実行する処理手順を表している。
【００２６】
ワークフローＣは、スキャンサービス、ＯＣＲサービス、翻訳サービス、印刷サービスという順番でサービスを実行する処理手順を表している。ワークフローＤは、スキャンサービス、ＯＣＲサービス、翻訳サービス、メールサービスという順番でサービスを実行する処理手順を表している。
【００２７】
ここで、サービスとは、ネットワーク上に接続されている機器が提供している処理機能やネットワーク上で公開されているソフトウェアサービスのことである。機器が提供している処理機能としては、例えば、ＭＦＰのスキャン機能（画像読み取り機能）や印刷機能等を挙げることができる。また、ネットワーク上で公開されているソフトウェアサービスとしては、画像から文字認識を行い、文字を抽出するＯＣＲサービス、他言語等への翻訳処理を行う翻訳サービス、メールの配信を行うメールサービス等を挙げることができる。
【００２８】
これらのワークフローは、ユーザによってネットワーク上に接続されているワークフロー管理サーバが有する記憶装置にワークフロー情報として記憶され登録される。ワークフローの登録後、ユーザが入力文書を選択し、ワークフローを実行するように指示すると、その指示を受け付けてワークフロー管理サーバが、ネットワーク上の各サービスの処理を実行する機器に対して実行依頼を行う。入力文書は、最初に実行依頼を行う機器に対するインプットとされ、その機器へ実行依頼とともに送信される。
【００２９】
図２は、ワークフロー管理システムの構成例を示した図である。ワークフロー管理システム１０は、上述したワークフロー管理サーバ１１と、入力文書を選択し、ワークフロー管理サーバに指示する、ユーザが利用するＰＣ１３と、ワークフロー管理サーバ１１と接続され、入力文書が記憶され登録される記憶装置１２と、各サービスを提供するＭＦＰ１４、１５やサーバ装置１６〜１８とを含んで構成される。
【００３０】
ワークフロー管理サーバ１１、ＰＣ１３、ＭＦＰ１４、１５、サーバ装置１６〜１８は、ネットワーク１９を介して互いに接続されており、図３に示すように、ネットワーク１９を介して通信を行うためのネットワークインタフェース（NIC）２０を含む。例えば、ワークフロー管理サーバ１１は、ＮＩＣ２０を介してネットワーク１９へ接続し、ネットワーク１９に接続される他の機器、具体的にはＰＣ１３、ＭＦＰ１４、１５、サーバ装置１６〜１８との間でデータの送受信を行うことができる。
【００３１】
また、ワークフロー管理サーバ１１等は、処理を実行するＣＰＵ２１、記憶装置としてのＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４を含み、これらはシステムバス２５により互いに接続される。システムバス２５は、ワークフロー管理サーバ１１において、画像バスインタフェース２６を介して画像バス２７と接続され、この画像バス２７には、画像処理を行う画像処理部２８が接続される。
【００３２】
ＲＯＭ２２は、システムのブートプログラムを格納する。ブートプログラムは、機器を起動するプログラムであり、例えば、機器がＰＣであれば、ＨＤＤ２４に格納されているＯＳ(Operating System)をメモリに読み込んで起動し、機器を操作可能な状態にする。ＲＡＭ２３は、ＣＰＵ２１が動作するための作業メモリや、画像データを一時記憶するためのメモリとして使用される。ＨＤＤ２４は、上記のＯＳのほか、ハードウェアを動作させるためのドライバやユーティリティソフトウェア等のシステムソフトウェア、入力文書の文書データ等を格納する。
【００３３】
ワークフロー管理サーバ１１が備える画像処理部２８は、特定の用途向けの集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）を含み、濃淡画像を白黒２値へ変換する２値化や、濃度変化から物体の境界を検出するエッジ検出等の処理を行う。ＭＦＰ１４、１５においては、これらのほかに、スキャンサービスや印刷サービスを提供するために、スキャナ装置、印刷装置をさらに含む。
【００３４】
スキャナ装置は、これまでに知られた光源、ミラー、レンズ、ＣＣＤ(Charge Coupled Device)やＣＭＯＳ(Complementary Metal Oxide Semiconductor)の撮像素子を含んで構成される。印刷装置は、電子写真方式のプリンタであれば、画像書き込み光を照射する露光装置、その書き込み光が照射される感光体ドラム、感光体ドラムを帯電させる帯電ユニット、感光体ドラムの表面に書き込み光により形成された潜像にトナーを付着させ、現像を行う現像ユニット、現像により形成されたトナー像を用紙に転写する転写ユニット、転写されたトナー像を用紙に熱および圧力を加えて定着させる定着ユニット、用紙を給紙する給紙ユニット、トナー像が定着された用紙を排紙する排紙ユニットを含んで構成される。
【００３５】
図１に示すワークフローＡのように、ＯＣＲサービス、翻訳サービス、印刷サービスという順のワークフローを実行する場合、図２に示すワークフロー管理サーバ１１が、まず最初に、ＯＣＲサービスを実行するサーバ装置１６に対し、ＯＣＲ処理の実行を依頼するとともに、入力文書を送信する。サーバ装置１６がＯＣＲ処理を終了すると、ワークフロー管理サーバ１１へＯＣＲ処理完了通知を送信し、そのときにＯＣＲ処理結果も送信する。ワークフロー管理サーバ１１は、ＯＣＲ処理完了通知を受けて、受信したＯＣＲ処理結果を、翻訳処理の実行依頼とともに、翻訳サービスを実行するサーバ装置１７へ送信する。サーバ装置１７が翻訳処理を終了すると、ワークフロー管理サーバ１１へ翻訳処理完了通知を送信し、そのときに翻訳処理結果も送信する。
【００３６】
ワークフロー管理サーバ１１は、翻訳処理完了通知を受けて、受信した翻訳処理結果を、印刷処理の実行依頼とともに、印刷サービスを実行するＭＦＰ１５へ送信する。印刷処理の実行依頼には、用紙サイズ、枚数、集約印刷や両面印刷をするか否かの情報等の印刷設定情報を含むことができる。ＭＦＰ１５は、この印刷設定情報を基に、各種設定を行い、その設定に基づき印刷処理を実行することができる。ＭＦＰ１５は、印刷処理を実行後、印刷処理完了通知をワークフロー管理サーバ１１へ送信する。印刷処理は、紙に印刷し、出力することから、その処理結果はワークフロー管理サーバ１１へは送信されない。なお、ワークフロー管理サーバ１１は、この印刷処理完了通知を受けて、このワークフローＡの実行を終了する。
【００３７】
このワークフロー管理システム１０は、ユーザが事前によく利用するサービスの組み合わせを選択してワークフロー情報として登録しておくことで、ワークフローを利用するたびに、各サービスを選択したり、サービスの組み合わせを考えたりする手間を省いている。
【００３８】
なお、ユーザは、ワークフロー情報を登録するだけのシステム管理者やワークフローを実行するだけの利用者に限らず、このシステムを利用するすべての者を意味する。また、入力文書は、蓄積された電子ファイルに限られるものではなく、紙文書であってもよい。
【００３９】
ここで、従来のワークフローを実行するシステムの問題点について簡単に説明する。ユーザは、同じワークフローを何度も繰り返し実行する場合があり、複数のユーザが同じワークフローを実行する場合もある。ユーザは、ワークフローを利用するたびに、同じサービスの処理を行っているにもかかわらず、各サービスの利用料金や処理時間といったコストがかかってしまうという問題がある。これは、複数のユーザが同じワークフローを実行する場合も同様である。
【００４０】
例えば、ユーザがある文書を用いて図１に示すワークフローＡを実行したとする。ワークフローＡは、ＯＣＲサービス、翻訳サービス、印刷サービスを順に実行するものである。ある時間が経過後、ユーザが再び同じ文書を用いてワークフローＡを実行するものとする。この場合、一度実行した結果を記憶していれば、その結果を出力するのみで簡易かつ安価にサービスを提供することができるが、従来では、記憶しないので、同じＯＣＲサービス、翻訳サービス、印刷サービスを再度実行し、処理結果を出力する。このため、処理時間がかかり、利用コストもかかる。
【００４１】
これは、同じユーザが同じ文書を用いて図１に示すワークフローＢを実行する場合も同様である。ワークフローＢは、ワークフローＡと同じＯＣＲサービス、翻訳サービスを含み、その後、ワークフローＡとは異なるメールサービスを実行する。したがって、ＯＣＲサービス、翻訳サービスまでは同じである。従来のワークフローでは、このように同じサービスであっても、再度要求があれば、再度ＯＣＲサービス、翻訳サービスを実行し、その後、メールサービスを実行することとなる。したがって、この場合も処理時間がかかり、利用コストもかかる。
【００４２】
こういった従来のシステムの問題点を解決するために、本発明では、一度実行したワークフローの途中の処理結果を記憶しておき、再び同じワークフローを実行した場合、その記憶した処理結果を利用して途中から実行することで、それまでのサービスの実行を省略することができるようにする。これにより、処理時間を短縮することができ、それまでのサービスを実行しない分、利用コストを削減することができる。
【００４３】
具体的には、ユーザが初めてワークフローＡを実行する場合、ワークフロー管理サーバ１１は、入力文書を、ＯＣＲサービスを実行するサーバ装置１６へ送り、サーバ装置１６からＯＣＲ処理された処理結果を受け取り、その後、翻訳サービスを実行するサーバ装置１７へ送り、サーバ装置１７から翻訳処理された処理結果を受け取る。ワークフロー管理サーバ１１は、この翻訳処理された処理結果についてコピーを生成し、そのコピーを記憶装置１２に記憶し、その処理結果については次の印刷サービスを実行するＭＦＰ１５へ送信する。ＭＦＰ１５は、その処理結果を基に、用紙へ印刷を行い、出力してこのワークフローＡの実行を終了する。
【００４４】
その後再度、同じ文書で、かつ同じワークフローＡの実行依頼があった場合、翻訳処理された処理結果を記憶装置１２から読み出し、その処理結果をワークフローＡにおける次のサービスである印刷サービスを実行するＭＦＰ１５へ送信し、印刷サービスのみを実行してワークフローＡの実行を終了する。
【００４５】
このように同じ文書についての２回目のワークフローＡの実行では、ＯＣＲサービスおよび翻訳サービスの実行を省略し、印刷サービスのみを実行することができるので、処理時間を短縮し、利用コストを削減することができる。
【００４６】
こういった１回目のワークフローの途中における処理結果を記憶しておき、２回目のワークフローの実行の際、その処理結果を利用して途中から実行することができるようにするために、ワークフロー管理サーバ１１として機能する情報処理装置を、図４に示す各部を備える構成とすることができる。この情報処理装置３０は、少なくともワークフロー制御部３１とワークフロー情報記憶部３２と結果取得部３３と結果記憶部３４とを備える。図４ではさらに、ワークフロー条件設定部３５を備えるが、このワークフロー条件設定部３５は備えていなくてもよい。
【００４７】
この情報処理装置３０は、図２に示すネットワーク１９を介してＭＦＰ１４、１５、サーバ装置１６〜１８と接続され、それらの機器は、各種サービスを実行するためにサービス実行部４０を備えている。サービス実行部４０は、ＯＣＲサービスを提供するものの場合、ＯＣＲ処理を実行し、その処理結果を出力する。より具体的には、入力文書内の文字を１字ずつ切り分け、テンプレートを利用し、どの文字に最も近いかを判断し、その最も近い文字へ変換し、出力する。翻訳サービスを提供するものの場合は、文字認識処理された文書を構成する文を切り分け、単語辞書を用いて他の言語等へ翻訳し、その結果を出力する。印刷サービスを提供するものの場合は、実行依頼に含まれる印刷設定情報から用紙サイズ、字体、フォント、字数、枚数、カラー印刷か、両面印刷するか、集約印刷するか等の情報を取り出して設定し、その設定に基づき画像形成を行い、用紙へ印字し出力する。これらの処理は一例であるので、これまでに知られたいかなる方法を用いて文字認識処理、翻訳処理、印刷処理を行ってもよい。
【００４８】
情報処理装置３０のワークフロー条件設定部３５は、ユーザがワークフロー情報を登録する際に、サービスを選択して順につなげてワークフローを作成し、ワークフローを実行する際に入力文書を設定する。このため、ワークフロー条件設定部３５は、ユーザから文書、ワークフローの選択を受け付け、それらを設定する。
【００４９】
ワークフロー制御部３１は、ユーザからのワークフロー実行要求に従い、ユーザがワークフロー条件設定部３５に設定した文書およびワークフローを識別するための識別情報、すなわち文書ＩＤおよびワークフローＩＤの取得を要求し、ワークフロー条件設定部３５からそれらを受け付ける。
【００５０】
ワークフロー制御部３１は、受け付けたワークフローＩＤを基に、ワークフロー情報記憶部３２に記憶されているワークフロー情報を検索し、対応するワークフロー情報を取得する。
【００５１】
ワークフロー情報記憶部３２は、ワークフロー情報を記憶する。ワークフロー情報は、ワークフローＩＤ、サービス識別ＩＤ、設定条件、入力文書ＩＤ、処理結果ＩＤを含む。ワークフローＩＤは、ワークフローを識別するための情報で、ワークフロー情報を登録する際に設定される。例えば、「ワークフローＡ」等である。サービス識別ＩＤは、サービスを識別するための情報で、サービスが固有でもつものである。これは、ワークフロー情報の登録時にサービスから取得し、設定される。例えば、ＩＰアドレス、サービスを実行するソフトウェアの名前やバージョンを挙げることができる。ワークフローが３つのサービスから構成される場合、３つのサービスの処理を識別するための識別情報を含む。具体的には、ＯＣＲサービスに対し「ＯＣＲ_Ａ」、翻訳サービスに対し「翻訳_Ｂ」、印刷サービスに対し「印刷_Ａ」等である。
【００５２】
設定条件は、サービスの実行時に必要な実行条件であり、ワークフロー情報の登録時にユーザによって設定される。例えば、上記の「翻訳_Ｂ」に対応付けて「英語」等という変換先の言語が設定され、上記の「印刷_Ａ」に対応付けて「白黒」等という印刷色が設定される。入力文書ＩＤは、実行時の入力文書を識別するための情報で、処理結果ＩＤと結び付けられ、サービスの処理結果が記憶されたときに設定される。例えば、入力文書の文書名やバージョンを挙げることができ、上記の「翻訳_Ｂ」に対応付けて「文書_Ａ」等が設定される。処理結果ＩＤは、処理結果を取得するための情報で、入力文書ＩＤと結び付けられ、サービスの処理結果が記憶されたときに設定される。例えば、処理結果のファイル名や、記憶している場所を示すアドレスを挙げることができ、上記の「翻訳_Ｂ」に対応付けて「結果_Ａ」等が設定される。
【００５３】
結果取得部３３は、ワークフロー制御部３１が取得したワークフロー情報に処理結果ＩＤが設定されている場合、そのＩＤを基に、結果記憶部３４から対応する処理結果を取得する。一方、初めてワークフローを実行する場合は、処理結果が存在しないので、ワークフロー制御部３１がＭＦＰ１４やサーバ装置１６〜１８へ処理を依頼し、その結果を取得する。ワークフロー制御部３１は、取得した処理結果のコピーを生成し、処理結果については次の処理を行う機器（図２でいうＭＦＰ１４、１５、サーバ装置１６〜１８）へ送り、コピーに対しては処理結果ＩＤを割当て、その処理結果ＩＤをワークフロー情報に設定するとともに、結果記憶部３４に処理結果ＩＤとともにそのコピーを記憶する。
【００５４】
図５および図６に示すシーケンス図および図７に示すフローチャート図を参照しながら、本発明のワークフロー実行方法について詳細に説明する。図５を参照して、ワークフローを初めて実行する場合について説明する。システム利用者であるユーザが自己の管理するＰＣ１３等を用いて入力文書、ワークフローを選択し、それをワークフロー条件設定部３５へ送り、それを設定する。その後、ユーザはＰＣ１３を用いてワークフローの実行をワークフロー制御部３１に対して指示する。
【００５５】
ワークフロー制御部３１は、その指示を受け、ワークフロー条件設定部３５に設定条件の取得を要求し、ワークフロー条件設定部３５から設定条件、すなわち入力文書の入力文書ＩＤとワークフローＩＤを受け付ける。その後、ワークフローＩＤに基づき、ワークフロー情報記憶部３２に記憶されているワークフロー情報を検索し、対応するワークフロー情報を取得する。
【００５６】
ワークフロー制御部３１は、ワークフロー情報に設定されている処理結果ＩＤを基に処理結果の取得を試みる。具体的には、結果取得部３３へアクセスし、結果取得部３３に指示し、処理結果を取得させる。しかしながら、ワークフローの実行が初めてである場合、処理結果は存在しないため、結果取得部３３は、処理結果なしという結果をワークフロー制御部３１に返す。この結果を受けて、ワークフロー制御部３１は、ワークフローにおける最初のサービスから実行すべく、最初のサービスを実行する機器へ文書および実行依頼を送信する。ワークフロー制御部３１は、その機器から処理した結果を受け取り、その処理結果のコピーを生成し、処理結果を次のサービスを実行する機器へ実行依頼とともに送信する。一方、コピーは、結果記憶部３４に処理結果ＩＤを関連付けて記憶される。この処理結果の結果記憶部３４への記憶は、各サービスの実行後に処理結果が得られるたびに行われる。
【００５７】
ワークフロー制御部３１は、最後の機器から処理結果を取得した後、入力文書ＩＤと各処理結果に対応する処理結果ＩＤを関連付けてワークフロー情報記憶部３２に記憶されているワークフロー情報に登録し、このワークフローの実行を終了する。
【００５８】
次に、図６を参照して、同じ文書について同じワークフローを再度実行する場合について説明する。ワークフローの実行であるので、ユーザからの文書、ワークフローの選択、ワークフロー実行要求を送り、ワークフロー制御部３１がワークフロー条件設定部３５に設定されている設定条件の取得、ワークフロー情報記憶部３２に記憶されているワークフロー情報の取得までの処理は同様である。
【００５９】
ワークフロー制御部３１は、取得したワークフロー情報から処理結果ＩＤを取り出し、その処理結果ＩＤと処理結果の取得依頼を結果取得部３３へ送る。結果取得部３３は、処理結果ＩＤを基に結果記憶部３４内を検索し、対応する処理結果を取得し、それをワークフロー制御部３１へ送る。その後、次のサービスを実行する機器へ実行依頼とともに送信し、その機器から処理結果を取得するという処理を繰り返し、最後のサービスを実行した機器から処理結果を取得したところで、このワークフローの実行を終了する。このように、ワークフローにおける最初のサービスから順に実行するのではなく、途中のサービスから実行することができるので、処理時間を短縮することができ、その利用コストを抑制することができる。
【００６０】
上記のワークフロー実行処理をまとめると、図７に示すようなフローとなる。図７のステップ７００から処理を開始し、ユーザが、自己が使用するＰＣ１３とワークフロー管理サーバ１１として機能する情報処理装置３０との間で通信を確立し、その情報処理装置３０から、入力文書、ワークフローの選択画面を取得し、表示させる。例えば、Ｗｅｂブラウザを実装するＰＣ１３において、Ｗｅｂブラウザを起動し、予め登録してあるログイン画面を開き、ユーザＩＤおよびパスワードを入力して、それらを情報処理装置３０へ送り、情報処理装置３０がそれを認証することにより、情報処理装置３０が保持する上記の入力文書、ワークフローの選択画面をその情報処理装置３０から取得し、ＰＣ１３のディスプレイ上に表示させることができる。
【００６１】
ユーザは、その表示された１以上の入力文書の中から処理を実行すべき文書を、入力装置を使用して選択し、１以上のワークフローの中からその処理を実行すべきワークフローを、入力装置を使用して選択し、実行ボタンを押下する等してその実行を要求する。すると、情報処理装置３０は、ステップ７０５において、ワークフロー条件設定部３５が選択された文書およびワークフローを識別するための入力文書ＩＤおよびワークフローＩＤを受け付ける。そして、ステップ７１０において、実行要求を、ワークフロー制御部３１が受け付ける。ワークフロー制御部３１は、その実行要求を受け付けたことに応答して、ワークフロー条件設定部３５に設定された設定条件の取得を要求し、その設定条件を取得する。ここでは、入力文書ＩＤおよびワークフローＩＤを、ワークフロー条件設定部３５から取得する。
【００６２】
次に、ステップ７１５において、ワークフロー制御部３１が、取得したワークフローＩＤに基づき、ワークフロー情報記憶部３２に格納されている実行すべきワークフローのワークフロー情報を取得する。また、ワークフロー制御部３１は、結果取得部３３に対し、ワークフロー条件設定部３５に設定された入力文書の入力文書ＩＤに一致する入力文書ＩＤに対応した処理結果を取得するように要求する。これを受けて、ステップ７２０において、結果取得部３３が、ワークフロー情報の中の入力文書ＩＤを、実行するのが最も遅いサービスから順に一致するかどうか調べる。
【００６３】
そして、ステップ７２５で、ワークフロー情報の入力文書ＩＤと、ワークフロー条件設定部３５に設定された入力文書の入力文書ＩＤが一致するかどうかを判定する。図５に示すような初めてワークフローを実行する場合、結果記憶部３４に、その入力文書の入力文書ＩＤは記憶されていないので、一致しないと判定する。
【００６４】
ステップ７２５で、一致しないと判定された場合は、ステップ７３０へ進み、ワークフロー制御部３１が、ワークフローにおける最初のサービスから順にサービスの実行を依頼する。すなわち、ワークフローにおける最初のサービスを実行する機器へ入力文書を送り、その処理結果を受け付けると、ステップ７３５で、ワークフロー制御部３１は、その処理結果のコピーを生成し、処理結果については次の機器へ送り、コピーを結果記憶部３４に記憶する。これは、コピーを次の機器へ送信し、処理結果を記憶するようにしてもよい。そして、ステップ７４０で、ワークフロー制御部３１は、次の機器からその処理結果を受け付けると、入力文書ＩＤと処理結果に対応する処理結果ＩＤを関連付け、ワークフロー情報に含めてワークフロー情報記憶部３２に記憶し、ステップ７５５において初めてのワークフローの実行を終了する。
【００６５】
一方、ステップ７２５で、一致すると判定した場合は、再度のワークフローの実行であるため、ステップ７４５へ進み、結果取得部３３が、調査して見つけた入力文書ＩＤに対応する処理結果ＩＤに基づき、結果記憶部３４からその処理結果ＩＤに対応する処理結果を取得する。ステップ７５０において、ワークフロー制御部３１は、結果取得部３３から、結果取得部３３が特定したサービスおよびそのサービスに対する処理結果を取得した後、途中からサービスを実行するべく、ワークフローにおける次のサービスを実行する機器へその処理結果を実行依頼とともに送信し、その機器から処理結果を受け取ったところで、ステップ７５５において終了する。
【００６６】
ここで、ワークフロー情報記憶部３２へのワークフロー情報の記憶は、ワークフロー情報を図８に示すようなテーブルとして構成し、そのテーブルの入力フィールドに入力文書ＩＤおよび処理結果ＩＤを記録し登録することにより行うことができる。図８では、ＯＣＲサービスと印刷サービスに対し、入力文書ＩＤと処理結果ＩＤが記録することができるようにされており、図８（ａ）はワークフローが一度も実行されておらず、未だ何も記録されていない状態を示し、図８（ｂ）は一度ワークフローが実行された結果、ＯＣＲサービス実行後の処理結果の処理結果ＩＤと入力文書ＩＤが記録された状態を示している。図８（ｂ）では入力文書ＩＤとして「文書Ａ」が、処理結果ＩＤとして「結果Ａ」が記録されている。
【００６７】
上記の図７に示すフローで言えば、図８（ａ）に示すワークフロー情報である場合、ステップ７２５で一致しないと判定され、ステップ７３０〜７４０の処理を実行し、その結果、図８（ｂ）に示すワークフロー情報が設定される。一方、既に図８（ｂ）に示すワークフロー情報である場合は、ステップ７２５で一致すると判定され、ステップ７４５でＯＣＲサービスの処理結果を取得し、ステップ７５０で次の印刷サービスを実行する機器へその処理結果を送信し、その機器から処理結果を取得する。
【００６８】
これまでに説明してきた実施形態では、ワークフローの実行時に各サービスの処理結果を記憶し、ワークフロー再実行時にその記憶した処理結果を利用して途中からワークフローを実行している。このため、迅速かつ低コストでの実施を実現している。しかしながら、ネットワーク上でサービスをつなげる組み合わせは無数に存在するため、ワークフロー毎の途中結果をすべて記憶することになると、記憶装置の記憶領域を大幅に使用してしまうという問題がある。
【００６９】
そこで、処理結果の記憶量を抑制するために、次の方法を採用することができる。図９（ａ）および（ｂ）では、ワークフローＡと、ワークフローＢとが示され、それらワークフロー内のＯＣＲサービス、翻訳サービスまでが共通している。
【００７０】
例えば、ワークフローＡが登録されている状態で、ユーザがワークフローＢを登録し、一度ワークフローＡを実行し、次にワークフローＢを実行する流れを考えてみる。上記の実施例であれば、ワークフローＢの実行は１回目であるから、ＯＣＲサービス、翻訳サービス、メールサービスの順に実行し、各サービスの実行結果を記録することになる。上述したように、このワークフローＢは、ＯＣＲサービス、翻訳サービスまでが、ワークフローＡと同じである。このため、ユーザがワークフローＢを登録する際に、どの処理結果を記憶対象とするかを設定し、重複した処理結果を記憶しないようにすることで、記憶領域の使用量を削減する。
【００７１】
具体的には、登録しようとしているワークフローと、既に登録してあるワークフローに含まれるサービスをその実行順に比較し、サービスの処理内容が異なるサービスを判断する。その異なるサービスの前のサービスまでが、比較したワークフロー同士で同じ実行手順であるとみなして、異なるサービスの前のサービス処理結果を記憶対象とする。例えば、上記例では、ＯＣＲサービス、翻訳サービスまでが同じであるため、記憶対象が、翻訳サービスの処理結果となる。
【００７２】
ワークフローＡを実行時に、ワークフローＡの記憶対象である翻訳サービスの処理結果を記憶する。また、同じ入力文書に対してワークフローＢを実行する際に、ワークフローＡの実行時に記憶した処理結果を利用して、メールサービスのみを実行する。このように、実行するワークフローが異なっていたとしても、入力文書と途中までのサービスの実行手順が同じである場合、記憶した途中の処理結果を利用して、ワークフローを途中から実行することができる。このため、２つのワークフローに対して、１つの処理結果の記憶のみで済み、他の途中結果を記憶しないので、記憶量を削減することができる。
【００７３】
ワークフロー管理システムは、図２に示す装置構成と同様で、ワークフロー管理システムを構成するＭＦＰ、サーバ装置、情報処理装置としてのワークフロー管理サーバも、図３に示すハードウェア構成と同様である。しかしながら、情報処理装置のモジュール構成は、図４とは異なり、図１０に示すように、ワークフロー管理サーバとして機能する情報処理装置３０は、ワークフロー条件設定部３５、ワークフロー制御部３１、ワークフロー情報記憶部３２、結果取得部３３、結果記憶部３４のほか、サービス情報収集部３６、変動サービス判断部３７、記憶対象判断部３８をさらに含んで構成される。
【００７４】
また、各種サービスを実行するＭＦＰ１４、１５およびサーバ装置１６〜１８は、図４に示すサービス実行部４０のほか、サービス情報通知部４１をさらに含んで構成される。
【００７５】
ワークフロー情報も同様に、ワークフローＩＤ、サービス識別ＩＤ、設定条件、入力文書ＩＤ、処理結果ＩＤを含むが、それに加えて、記憶対象、記憶対象が同じワークフローＩＤが含まれる。
【００７６】
ワークフローＩＤ等は、上述したものと同じであるので、ここでは説明を省略し、記憶対象、記憶対象が同じワークフローＩＤについて説明する。記憶対象は、記憶対象か設定されているか判断するための情報で、ワークフローの登録時に設定される。記憶対象が設定されている場合は「○」、設定されていない場合は「×」等を設定することができる。記憶対象が同じワークフローＩＤは、同じ処理結果を有するワークフローを取得するための情報で、記憶対象設定時に比較対象であるワークフローＩＤが設定される。例えば、ワークフローＢであれば「Ｂ」等を設定することができる。
【００７７】
上記のサービス情報収集部３６は、サービスを識別するための情報であるサービス情報を、ＭＦＰ１４、１５、サーバ装置１６〜１８から取得する。サービス情報には、サービス識別ＩＤがある。サービス識別ＩＤは、例えば、ＩＰアドレス、サービスを実行するソフトウェアの名前およびバージョンを挙げることができる。
【００７８】
上記の変動サービス判断部３７は、登録するワークフローと既に登録されているワークフローを比較して、異なるサービスを変動サービスとして判断する。記憶対象判断部３８は、ワークフロー実行時に処理結果を記憶しておくサービスを判断する。
【００７９】
上記のサービス情報通知部４１は、サービスを識別するためのサービス識別ＩＤをワークフロー管理サーバとしての情報処理装置３０に通知する。
【００８０】
図１１〜図１３に示すシーケンス図および図１４および１５に示すフローチャート図を参照しながら、本発明の別の実施形態のワークフロー実行方法について詳細に説明する。図１１は、ワークフロー登録時のシーケンス図である。システム利用者であるユーザが自己の管理するＰＣ１３等を用いてサービスを選択し、サービスの組み合わせおよびその順番をワークフロー条件設定部３５へ送り、それらを設定する。その後、ユーザはＰＣ１３を用いてワークフロー登録要求をワークフロー制御部３１へ送信する。
【００８１】
ワークフロー制御部３１は、その登録要求を受け付け、ワークフロー条件設定部３５に設定条件の取得を要求し、ワークフロー条件設定部３５から設定条件、すなわちサービスの組み合わせおよびその順番を受け付ける。その後、サービス情報収集部３６が、それらの情報を受け取り、サービスの組み合わせから、サービス情報通知部４１に各サービスのサービス情報の取得を要求し、サービス情報通知部４１から各機器のサービス情報を取得する。上述したようにサービス情報には、その機器のＩＰアドレスやサービス識別ＩＤ等を含み、そのＩＰアドレスを使用してその機器との通信を可能にし、その機器を識別することができる。なお、サービス情報は、登録しようとするワークフローを構成するサービスを実行するすべての機器と通信を行い、それら機器から取得される。
【００８２】
ワークフロー制御部３１は、サービス情報収集部３６が収集したサービス情報を受け取り、登録しようとするワークフローと、既に登録されているワークフローとを比較し、異なるサービスを判断するために、変動サービス判断部３７へ取得したサービス情報を実行順に並べたものを送る。変動サービス判断部３７は、ワークフロー情報記憶部３２へアクセスし、ワークフロー情報を取得し、そのワークフロー情報の最初のサービスから順に比較し、異なるサービスを変動サービスとして判断する。
【００８３】
記憶対象判断部３８は、変動サービス判断部３７から判断結果を受け取り、その変動サービス判断部３７で判断された異なるサービスの前のサービスにおいて得られる処理結果を、記憶対象として判断する。記憶対象判断部３８は、判断した記憶対象の処理結果に関する情報をワークフロー制御部３１へ送る。ワークフロー制御部３１は、登録しようとするワークフローのワークフロー情報をワークフロー情報記憶部３２に記憶する。
【００８４】
図１２は、ワークフローを最初のサービスから順に実行する場合のシーケンス図である。システム利用者であるユーザは、自己の管理するＰＣ１３を用いて入力文書を選択し、ワークフローを選択してワークフロー条件設定部３５へ送り、それらを設定する。その後、ユーザは、ＰＣ１３を用いてワークフローの実行要求をワークフロー制御部３１へ送信する。
【００８５】
ワークフロー制御部３１は、ワークフロー条件設定部３５と通信を行い、設定条件、すなわち入力文書の入力文書ＩＤおよびワークフローのワークフローＩＤの取得を要求し、ワークフロー条件設定部３５からそれらＩＤを取得する。その後、ワークフロー制御部３１は、ワークフロー情報記憶部３２に記憶されているワークフロー情報を、取得したワークフローＩＤを基に取得する。
【００８６】
ワークフロー制御部３１は、ワークフロー情報を基に、ワークフローにおける最初のサービスから実行すべく、最初のサービスを実行する機器へ文書および実行依頼を送信する。ワークフロー制御部３１は、その機器から処理した結果を受け取り、その処理結果のコピーを生成し、処理結果を次のサービスを実行する機器へ実行依頼とともに送信する。一方、コピーは、結果記憶部３４に処理結果ＩＤを関連付けて記憶される。この処理結果の結果記憶部３４への記憶は、各サービスの実行後に処理結果が得られるたびに行われる。
【００８７】
ワークフロー制御部３１は、最後の機器から処理結果を取得した後、入力文書ＩＤと各処理結果に対応する処理結果ＩＤを関連付けてワークフロー情報記憶部３２に記憶されているワークフロー情報に登録し、このワークフローの実行を終了する。
【００８８】
図１３は、同じ文書について同じワークフローを再度実行する場合のシーケンス図である。ワークフローの実行であるので、ユーザからの文書、ワークフローの選択、ワークフロー実行要求を送り、ワークフロー制御部３１がワークフロー条件設定部３５に設定されている設定条件の取得、ワークフロー情報記憶部３２に記憶されているワークフロー情報の取得までの処理は同様である。
【００８９】
ワークフロー制御部３１は、取得したワークフロー情報から処理結果ＩＤを取り出し、その処理結果ＩＤと処理結果の取得依頼を結果取得部３３へ送る。結果取得部３３は、処理結果ＩＤを基に結果記憶部３４内を検索し、対応する処理結果を取得し、それをワークフロー制御部３１へ送る。その後、次のサービスを実行する機器へ実行依頼とともに送信し、その機器から処理結果を取得するという処理を繰り返し、最後のサービスを実行した機器から処理結果を取得したところで、このワークフローの実行を終了する。このように、ワークフローにおける最初のサービスから順に実行するのではなく、途中のサービスから実行することができるので、処理時間を短縮することができ、その利用コストを抑制することができる。
【００９０】
上記のワークフロー登録および実行処理をまとめると、図１４および図１５に示すようなフローとなる。まず、ワークフローの登録について説明すると、図１４のステップ１４００から処理を開始し、ユーザが、自己が使用するＰＣ１３とワークフロー管理サーバ１１として機能する情報処理装置３０との間で通信を確立し、その情報処理装置３０から、ワークフローの登録画面を取得し、表示させる。例えば、Ｗｅｂブラウザを実装するＰＣ１３において、Ｗｅｂブラウザを起動し、予め登録してあるログイン画面を開き、ユーザＩＤおよびパスワードを入力して、それらを情報処理装置３０へ送り、情報処理装置３０がそれを認証することにより、情報処理装置３０が保持するワークフローを登録するための画面をその情報処理装置３０から取得し、ＰＣ１３のディスプレイ上に表示させることができる。
【００９１】
ユーザは、登録画面内に表示された１以上のサービスからワークフローを構成するサービスを実行順に選択し、登録ボタンを押下する等してその登録を依頼する。すると、情報処理装置３０は、ステップ１４０５において、ワークフロー条件設定部３５が選択されたサービスの組み合わせおよびその実行の順番を受け付ける。そして、ステップ１４１０において、登録要求を、ワークフロー制御部３１が受け付ける。ステップ１４１５において、ワークフロー制御部３１は、その登録要求を受け付けたことに応答して、サービス情報収集部３６に指示し、サービス情報収集部３６が、ユーザが選択したサービスを実行する各機器に対し、サービス情報の取得を要求し、サービス情報を取得する。
【００９２】
次に、ステップ１４２０において、変動サービス判断部３７が、ワークフロー制御部３１が取得したサービス情報を受け取り、また、ワークフロー情報記憶部３２に格納されているワークフロー情報を取得する。そして、ステップ１４２５において、変動サービス判断部３７は、まず、登録済みのワークフロー情報が存在するかを判断する。登録済みのワークフロー情報が存在する場合、ステップ１４３０へ進み、変動サービス判断部３７は、実行順に並べられたサービス情報のサービス識別ＩＤと、登録済みのワークフロー情報のサービス識別ＩＤとを、その実行順に比較する。そして、ステップ１４３５において、サービス識別ＩＤが１つでも異なるかを判断する。
【００９３】
ステップ１４３５において１つでも異なると判断した場合、ステップ１４４０へ進み、記憶対象判断部３８が、その異なるサービスの前のサービスを実行した結果を記憶対象と判断する。そして、ステップ１４４５において、ワークフロー制御部３１は、登録済みのワークフロー情報と登録しようとするワークフローのワークフロー情報に記憶対象を判断するために比較したワークフローＩＤを記憶する。
【００９４】
ステップ１４５０で、すべての登録済みのワークフロー情報と比較したかを判断し、すべて比較し終えている場合、ステップ１４５５へ進み、ワークフロー制御部３１は、その登録しようとするワークフローのワークフロー情報をワークフロー情報記憶部３２に記憶し登録する。この登録により、ステップ１４６０において登録処理を終了する。
【００９５】
ステップ１４２５で、登録済みのワークフロー情報が存在しない場合、ステップ１４５５へ進み、登録しようとするワークフローのワークフロー情報をそのまま登録する。また、ステップ１４３５において、サービス情報がすべて同じと判断された場合、ステップ１４５０へ進み、すべて比較し終えたかを判断する。すべて比較し終えていない場合は、ステップ１４３０へ戻り、次の登録済みのワークフロー情報のサービス識別ＩＤを実行順に比較する。
【００９６】
次に、ワークフローの実行について説明すると、図１５のステップ１５００から処理を開始し、ユーザが、自己が使用するＰＣ１３とワークフロー管理サーバ１１として機能する情報処理装置３０との間で通信を確立し、その情報処理装置３０から、入力文書、実行するワークフローの選択画面を取得し、表示させる。例えば、Ｗｅｂブラウザを実装するＰＣ１３において、Ｗｅｂブラウザを起動し、予め登録してあるログイン画面を開き、ユーザＩＤおよびパスワードを入力して、それらを情報処理装置３０へ送り、情報処理装置３０がそれを認証することにより、情報処理装置３０が保持するワークフローの選択画面をその情報処理装置３０から取得し、ＰＣ１３のディスプレイ上に表示させることができる。
【００９７】
ユーザは、その表示された１以上の入力文書の中から処理を実行すべき文書を、入力装置を使用して選択し、１以上のワークフローの中からその処理を実行すべきワークフローを、入力装置を使用して選択し、実行ボタンを押下する等してその実行を要求する。すると、情報処理装置３０は、ステップ１５０５において、ワークフロー条件設定部３５が選択された文書およびワークフローを識別するための入力文書ＩＤおよびワークフローＩＤを受け付ける。そして、ステップ１５１０において、実行要求を、ワークフロー制御部３１が受け付ける。ワークフロー制御部３１は、その実行要求を受け付けたことに応答して、ワークフロー条件設定部３５に設定された設定条件の取得を要求し、その設定条件を取得する。ここでは、入力文書ＩＤおよびワークフローＩＤを、ワークフロー条件設定部３５から取得する。
【００９８】
次に、ステップ１５１５において、ワークフロー制御部３１が、取得したワークフローＩＤに基づき、ワークフロー情報記憶部３２に格納されている実行すべきワークフローのワークフロー情報を取得する。また、ワークフロー制御部３１は、結果取得部３３に対し、ワークフロー条件設定部３５に設定された入力文書の入力文書ＩＤに一致する入力文書ＩＤに対応した処理結果を取得するように要求する。これを受けて、ステップ１５２０において、結果取得部３３が、ワークフロー情報の中の入力文書ＩＤを、実行するのが最も遅いサービスから順に一致するかどうか調べる。
【００９９】
そして、ステップ１５２５で、ワークフロー情報の入力文書ＩＤと、ワークフロー条件設定部３５に設定された入力文書の入力文書ＩＤが一致するかどうかを判定する。図５に示すような初めてワークフローを実行する場合、結果記憶部３４に、その入力文書の入力文書ＩＤは記憶されていないので、一致しないと判定する。
【０１００】
ステップ１５２５で、一致しないと判定された場合は、ステップ１５３０へ進み、記憶対象が同じワークフローがあるかどうかを判定する。ある場合は、ステップ１５３５へ進み、結果取得部３３が、記憶対象が同じワークフローＩＤを基に、ワークフロー情報記憶部３２からその記憶対象が同じワークフローＩＤを有するワークフロー情報を取得する。
【０１０１】
ステップ１５４０で、取得したワークフロー情報の中の入力文書ＩＤが、ワークフロー条件設定部３５により設定された入力文書ＩＤと一致しているかを判断する。一致していると判定された場合およびステップ１５２５で一致していると判定された場合、ステップ１５４５へ進み、この場合は再度のワークフローの実行であるため、結果取得部３３が、調査して見つけた入力文書ＩＤに対応する処理結果ＩＤに基づき、結果記憶部３４からその処理結果ＩＤに対応する処理結果を取得する。ステップ１５５０において、ワークフロー制御部３１は、結果取得部３３から、結果取得部３３が特定したサービスおよびそのサービスに対する処理結果を取得した後、途中からサービスを実行するべく、ワークフローにおける次のサービスを実行する機器へその処理結果を実行依頼とともに送信し、ステップ１５６０へ進む。
【０１０２】
一方、ステップ１５３０で同じワークフロー情報がないと判定された場合またはステップ１５４０で一致していないと判定された場合は、ステップ１５５５へ進み、ワークフロー制御部３１が、ワークフローにおける最初のサービスから順にサービスの実行を依頼する。次に、ステップ１５６０において、ワークフローにおける最初のサービスを実行する機器からその処理結果を受け付けると、ワークフロー制御部３１は、その処理結果のコピーを生成し、処理結果については次の機器へ送り、コピーを結果記憶部３４に記憶する。これは、コピーを次の機器へ送信し、処理結果を記憶するようにしてもよい。そして、ステップ１５６５で、ワークフロー制御部３１は、次の機器からその処理結果を受け付けると、入力文書ＩＤと処理結果に対応する処理結果ＩＤを関連付け、ワークフロー情報に含めてワークフロー情報記憶部３２に記憶し、ステップ１５７０において初めてのワークフローの実行を終了する。
【０１０３】
ここで、図１４のステップ１４３０における比較は、例えば、登録済みのワークフロー情報に、ＯＣＲサービス、印刷サービスの順に実行するワークフローＡが設定され、登録しようとするワークフロー情報が、ＯＣＲサービス、メールサービスの順に実行するワークフローＢが設定されるものの場合、最初のＯＣＲサービスは共通であるので、同じと判断し、次の印刷サービスとメールサービスは異なるので、サービスが異なると判断する。そして、ステップ１４３５で、異なるサービスの前のサービス、すなわちＯＣＲサービスの処理結果を記憶対象と判断する。
【０１０４】
ワークフロー情報記憶部３２へのワークフロー情報の記憶は、ワークフロー情報を図１６に示すようなテーブルとして構成し、そのテーブルの入力フィールドに入力文書ＩＤおよび処理結果ＩＤを記録し登録することにより行うことができる。図１６では、ＯＣＲサービスと印刷サービスまたはメールサービスに対し、記憶対象が同じワークフローＩＤ、入力文書ＩＤ、処理結果ＩＤが記録することができるようにされている。
【０１０５】
図１６（ａ）および（ｂ）は、ワークフローＡおよびＢのワークフロー登録後でそれらワークフローを一度も実行していないときのワークフロー情報を例示した図である。図１４のステップ１４４５で比較したワークフローＩＤを記憶することから、ワークフローＡのワークフロー情報には、ワークフローＢのワークフローＩＤである「Ｂ」が、ワークフローＢのワークフロー情報には、ワークフローＡのワークフローＩＤである「Ａ」がそれぞれ記憶されている。
【０１０６】
図１６（ｃ）は、ワークフローＡを実行した後のワークフロー情報を例示した図で、ワークフローの実行により、入力文書ＩＤ「文書Ａ」および処理結果ＩＤ「場所Ａ」がそれぞれ記憶されている。
【０１０７】
なお、ワークフロー登録時に各サービスを実行する機器から収集するサービス情報として、利用料金情報を収集し、利用料金情報に応じて記憶対象とするか否かを判断することも可能である。上記の例でいうと、ワークフローＡのＯＣＲサービスは利用料金０円で、ワークフローＢのＯＣＲサービスは利用料金３００円であった場合、利用料金がかからないワークフローＡのＯＣＲサービスを実行した結果は記憶せず、利用料金がかかるワークフローＢのＯＣＲサービスを実行した結果のみ記憶するように設定することができる。
【０１０８】
ワークフローＤが、ＯＣＲサービス、印刷サービスの順に実行するワークフローで、ワークフローＥが、ＯＣＲサービス、翻訳サービス、印刷サービスを順に実行するワークフローで、ワークフローＦが、ＯＣＲサービス、翻訳サービス、メールサービスを順に実行するワークフローとする。この場合、ワークフローＥとワークフローＦを比較すると、ＯＣＲサービス、翻訳サービスが一致し、変動サービスとなる印刷サービス、メールサービスの前のサービスである翻訳サービスを実行した結果が、記憶対象となる。しかしながら、複数のワークフロー、すなわちワークフローＤ〜Ｆで比較すると、ワークフローＤは共通しないため、共通するＯＣＲサービスを実行した結果を記憶対象とし、それ以外は記憶しないように設定することができる。これにより、ワークフローＥおよびＦに共通な翻訳サービスを実行した結果を記憶しないこととなり、記憶量を削減することができる。
【０１０９】
入力文書が文書データである場合は、上記のようにしてワークフローを実行することができるが、文書は文書データに限らず、紙の場合もある。紙の場合に実行されるワークフローとして、スキャンサービス、ＯＣＲサービス、印刷サービスの順に実行されるワークフローＧ、スキャンサービス、ＯＣＲサービス、メールサービスの順に実行されるワークフローＨ等がある。
【０１１０】
このワークフローＧを最初に実行し、次にワークフローＨを実行する場合、スキャンサービス、ＯＣＲサービスは共通することから、文書が同じかどうかを判断し、同じであれば、ＯＣＲサービスを実行した結果を利用して、メールサービスのみを実行することで、処理時間を短縮し、利用コストを削減することができる。
【０１１１】
具体的には、ワークフローＧの実行時に、スキャンした画像を入力文書画像として、ＯＣＲサービスを実行する機器へ送り、ＯＣＲサービスの実行後、記憶対象であるその処理結果の処理結果ＩＤと関連付けてワークフロー情報に記憶しておく。そして、ワークフローＨの実行時にスキャンした画像と、記憶しておいた入力文書画像とを比較し、一致する場合、それに関連付けられた処理結果ＩＤを用いて処理結果を取得し、その処理結果を、メールサービスを実行する機器へ送信し、メールサービスを実行することができる。
【０１１２】
紙文書は、文字や画像を含むことができるが、文書を識別するための記号や印等のマーキングを含むこともできる。マーキングは、例えばバーコードやＱＲコードであってもよい。このような場合、ワークフローＧの実行時に、マーキングを読み取り、マーキング情報を、記憶対象であるＯＣＲサービス実行後の処理結果の処理結果ＩＤと関連付けてワークフロー情報に記憶しておく。そして、ワークフローＨを実行する際、読み取ったマーキングのマーキング情報と、記憶しておいたマーキング情報とを比較し、一致する場合、それに関連付けられた処理結果ＩＤを用いて処理結果を取得し、その処理結果を、メールサービスを実行する機器へ送信し、メールサービスを実行することができる。
【０１１３】
サービスを実行する機器によっては、サービスの処理を行っている途中、その途中結果を記憶する機能を有するものが存在する。例えば、印刷サービスを実行するＭＦＰやプリンタにおいては、集約印刷を実行する際、集約した画像を一時的に記憶しておくことができる。異なるワークフローが印刷枚数の違いであれば、集約した画像に変更はないため、その一時的に記憶した途中結果である集約した画像のデータを利用することが可能である。このように途中結果を利用することで、さらに処理時間を短縮し、利用コストを削減することができる。
【０１１４】
例えば、スキャンサービス、印刷サービスの順に実行するワークフローＩと、同じくスキャンサービス、印刷サービスの順に実行するが、ワークフローＩにおける印刷サービスとは印刷枚数が異なる印刷サービスを実行するワークフローＪとがあり、最初にワークフローＩを実行し、次にワークフローＪを実行する場合を考える。
【０１１５】
ワークフローＩを実行するとき、紙文書の画像を読み取り、その読み取った画像を、記憶対象である印刷サービスの実行途中に記憶した途中結果の処理結果ＩＤと関連付けてワークフロー情報に記憶しておく。そして、ワークフローＪの実行時に読み取った画像と、記憶しておいた画像とを比較し、一致する場合、それに関連付けられた処理結果ＩＤを用いて途中結果を取得し、その途中結果を、印刷サービスを実行する機器へ送信し、印刷サービスを途中から実行することができる。
【０１１６】
これまで本発明を、ワークフロー管理システム、情報処理装置、ワークフローの実行方法として上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、本発明は、上記の情報処理装置、ワークフロー管理システム、ワークフローの実行方法のみならず、その方法を実行するためのコンピュータ可読なプログラムや、そのプログラムが記録された記録媒体も提供することができるものである。
【符号の説明】
【０１１７】
１０…ワークフロー管理システム、１１…ワークフロー管理サーバ、１２…記憶装置、１３…ＰＣ、１４、１５…ＭＦＰ、１６、１７、１８…サーバ装置、１９…ネットワーク、２０…ＮＩＣ、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＨＤＤ、２５…システムバス、２６…画像バスインタフェース、２７…画像バス、２８…画像処理部、３０…情報処理装置、３１…ワークフロー制御部、３２…ワークフロー情報記憶部、３３…結果取得部、３４…結果記憶部、３５…ワークフロー条件設定部、３６…サービス情報収集部、３７…変動サービス判断部、３８…記憶対象判断部、４０…サービス実行部、４１…サービス情報通知部
【先行技術文献】
【特許文献】
【０１１８】
【特許文献１】特開２００５−１６７９８８号公報
【特許文献２】特開２００７−１６６４２６号公報
【図１】
0005633317.tif 000002
【図２】
0005633317.tif 000003
【図３】
0005633317.tif 000004
【図４】
0005633317.tif 000005
【図５】
0005633317.tif 000006
【図６】
0005633317.tif 000007
【図７】
0005633317.tif 000008
【図８】
0005633317.tif 000009
【図９】
0005633317.tif 000010
【図１０】
0005633317.tif 000011
【図１１】
0005633317.tif 000012
【図１２】
0005633317.tif 000013
【図１３】
0005633317.tif 000014
【図１４】
0005633317.tif 000015
【図１５】
0005633317.tif 000016
【図１６】
0005633317.tif 000017