以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の画像供給システムの一実施形態であるシステム1の構成の一例を示すブロック図である。システム1は、多機能周辺装置(以下「MFP」と称す)10と、仲介サーバ100とから構成される。MFP10は、印刷機能、スキャン機能、コピー機能などの複数の機能を有する。仲介サーバ100は、MFP10をクライアントとするサーバである。
システム1において、MFP10は、仲介サーバ100と連継して、処理サーバ200に処理対象の画像データを供給する。より詳細には、システム1は、MFP10が、2種類のテンプレートをスキャン機能を用いてそれぞれ読み取り、当該読み取りにより得られた画像データ(以下「読取データ」と称す)を、処理サーバ200に送信する。処理サーバ200は、システム1から供給された読取データに対し所定の処理を施し、処理後の画像の画像ファイルをMFP10に送信する。
詳細は後述するが、本実施形態のシステム1は、2種類のテンプレートのうち、一方のテンプレートの読取データ(以下「第1読取データ」と称す)を処理サーバ200に送信した後、第1読取データに対する解析要求を処理サーバ200に送信する。システム1は、当該解析要求に対する処理サーバ200の解析結果に基づき、第1読取データにエラーがないことを条件として、他方のテンプレートの読取データ(以下「第2読取データ」と称す)を処理サーバ200に送信する。その後、システム1は、第2読取データに対する解析要求を送信する。システム1は、当該解析要求に対する処理サーバ200の解析結果に基づき、第2読取データにエラーがないことを条件として、処理要求を処理サーバ200に送信する。
処理サーバ200は、処理要求を受信したことに応じて、先に送信した第1読取データ、および、後に送信した第2読取データに所定の画像処理を施す。本実施形態において、第1読取データは、ポストカードにおける差出人情報を記入させるテンプレート(以下「差出人テンプレート」と称す)の読み取りにより得られた画像データである。一方、第2読取データは、ポストカードにおける宛先情報を記入させるテンプレート(以下「宛先テンプレート」と称す)の読み取りにより得られた画像データである。処理サーバ200は、システム1から受信した処理要求に従い、第1読取データと第2読取データとから、ポストカードの宛名面に印刷するための画像(以下「宛名面画像」と称す)を生成する。つまり、処理サーバ200は、第1読取データに含まれる差出人情報を宛名面における差出人の記載位置に配置し、第2読取データに含まれる宛先情報を宛名面における宛先の記載位置に配置した宛名面画像を生成する。
上述した通り、本実施形態のシステム1は、先に送信した第1読取データにエラーがないことを条件として、第2読取データを処理サーバ200に送信し、当該第2読取データにエラーがないことを条件として、画像処理要求を処理サーバ200に送信する。よって、処理サーバ200は、エラーのない第1読取データおよび第2読取データを処理できる。これにより、ユーザが、MFP10が処理サーバ200から処理後の画像の画像ファイルを受信したときに初めてエラーの存在を知る状況を回避できるので、利便性に優れる。
MFP10には、CPU11、ROM12、RAM13、NVRAM14、操作キー15、LCD16、タッチパネル17、スキャナ部18、プリンタ部19、NCU20、モデム21、ローカルエリアネットワークインターフェイス(以下「LAN_I/F」と称す)23が主に設けられている。これらの各部は、入出力ポート24を介して互いに接続されている。
CPU11は、ROM12、RAM13、NVRAM14に記憶されるプログラムやデータ、あるいは、NCU20を介して送受信される各種信号に従って、MFP10が有する各機能の制御や、入出力ポート24と接続された各部を制御する。ROM12は、CPU11により実行される各種プログラムや、そのプログラムを実行する際に参照する定数やテーブルを記憶する読み出し専用のメモリである。ROM12には、MFP10の動作を制御する制御プログラム12aなどが格納される。後述する図4、図5、および図7の各シーケンス図においてCPU11が実行する各処理は、CPU11が制御プログラム12aに従い実行する処理である。
RAM13は、CPU11が制御プログラム12aを実行するにあたり、各種データを一時的に記憶するためのテンポラリエリアを有する書換可能な揮発性のメモリである。NVRAM14は、不揮発性のRAMである。操作キー15は、MFP10の筐体に設けられるメカニカルキーであり、各種の設定値や指示などをユーザから受け付ける。LCD16は、液晶表示装置であり、各種画面を表示する。LCD16の画面には、タッチパネル17がLCD16に重ねて設けられる。タッチパネル17は、例えば、指や棒などの指示体がLCD16の画面に対して接触又は近づいた場合に、接触又は近づいた位置を検知し、検知した位置をMFP10に入力する。
スキャナ部18は、原稿を読み取って画像データに変換する。プリンタ部19は、画像ファイルに基づく画像を記録用紙に印刷する。モデム21は、FAX送信時には送信すべき画像データを、電話回線網(図示せず)に伝送可能な信号に変調してNCU20を介して送信し、または、電話回線網からNCU20を介して入力された信号を画像データに復調する。NCU20は、図示されない電話回線網の交換機に対して回線を閉結または切断することにより、電話回線網への接続を制御する。
LAN_I/F23は、MFP10が、ローカルエリアネットワークを介した通信を実行するためのインターフェイスである。MFP10は、LAN_I/F23を介して、ルータ30に接続される。MFP10は、ルータ30を介してインターネット800に接続される。
仲介サーバ100は、MFP10による処理サーバ200の利用を管理するサーバである。仲介サーバ100は、処理サーバ200の利用に係わるユーザインターフェイスとしての各種画面をMFP10に提供する。仲介サーバ100は、周知のサーバ機能を有する装置であればよい。
仲介サーバ100には、制御部101、記憶部102、ネットワークインターフェイス(以下「ネットワークI/F」と称す)103が主に設けられている。これらの各部は、入出力ポート104を介して互いに接続されている。制御部101は、図示されていないCPUと、CPUに電気的に接続されたROM及びRAMとを含み、コンピュータを構成する。CPUは、ROMおよび記憶部102に記憶されるプログラムやデータに従って、仲介サーバ100の動作を制御する。
記憶部102は、不揮発性の記憶装置である。記憶部102は、例えば、ハードディスクドライブである。記憶部102には、仲介サーバ100の動作を制御する各種のプログラム、例えば、後述する図4〜図8の各シーケンス図において制御部101が各処理を実行するためのプログラムなどが記憶されている。ネットワークI/F103は、ネットワーク800に接続された他の装置と通信するための機器である。ネットワークI/F103としては、周知のネットワークカードを採用できる。仲介サーバ100は、ネットワークI/F103を介してインターネット800に接続される。
処理サーバ200は、システム1から供給された読取データに対し所定の処理を施す画像処理サーバである。本実施形態の処理サーバ200は、2種類のテンプレートのうち、差出人テンプレート50(図2参照)の読取データである第1読取データと、宛先テンプレート60(図2参照)の読取データである第2読取データとから宛名面画像を生成する画像処理を実行するサーバとして構成される。処理サーバ200は、周知のサーバ機能を有する装置であればよい。
処理サーバ200には、制御部201、記憶部202、ネットワークI/F203が主に設けられている。これらの各部は、入出力ポート204を介して互いに接続されている。制御部201は、図示されていないCPUと、CPUに電気的に接続されたROM及びRAMとを含み、コンピュータを構成する。CPUは、ROMおよび記憶部202に記憶されるプログラムやデータに従って、処理サーバ200の動作を制御する。
記憶部202は、不揮発性の記憶装置である。記憶部202は、例えば、ハードディスクドライブである。記憶部202には、処理サーバ200の動作を制御する各種のプログラム、例えば、後述する図5、図6、および図8の各シーケンス図において制御部201が各処理を実行するためのプログラムなどが記憶されている。ネットワークI/F203は、ネットワーク800に接続された他の装置と通信するための機器である。ネットワークI/F203としては、周知のネットワークカードを採用できる。処理サーバ200は、ネットワークI/F203を介してインターネット800に接続される。
MFP10と仲介サーバ100との間の通信は、接続確立型のプロトコル、より詳細には、XMPP over BOSH(Extensible Messaging and Presence Protocol Over Bidirectional−Streams Over Synchronous HTTPの略)に従って行われる。XMPP over BOSHは、接続を確立した状態をほぼ常時維持する、常時接続型または接続維持型のプロトコルである。一方、MFP10と処理サーバ200との間の通信は、HTTP(Hypertext Transfer Protocolの略)に従って行われる。
図2は、差出人テンプレート50の一例を示す模式図である。差出人テンプレート50には、記入領域51が設けられる。記入領域51は、差出人情報を記入するための領域である。記入領域51は、差出人の郵便番号を記入するための領域51aと、差出人の住所を記入するための領域51bと、差出人の名前を記入するための領域51cとを有する。差出人情報は、領域51aに記入された郵便番号と、領域51bに記入された住所と、領域51cに記入された名前とから構成される。
差出人テンプレート50における左上、左下、および右下の角部には、それぞれ、マークM1,M2,M3が設けられている。処理サーバ200は、システム1から受信した読取データを解析した場合に、左上、左下、および右下の各角部にマークM1,M2,M3があると判断した場合、受信した読取データが、差出人テンプレート50の読取データであると特定する。
図3は、宛先テンプレート60の一例を示す模式図である。宛先テンプレート60には、3つの記入領域61〜63が設けられる。記入領域61〜63は、いずれも、宛先情報を記入するための領域である。つまり、宛先テンプレート60には、最大3人分の宛先情報を記入領域61〜63に記入できる。
記入領域61〜63は、それぞれ、宛先の郵便番号を記入するための領域61a〜63aと、宛先の住所を記入するための領域61b〜63bと、宛先の名前を記入するための領域61c〜63cとを有する。宛先情報は、記入領域61〜63毎に、領域61a〜63aに記入された郵便番号と、領域61b〜63bに記入された住所と、領域61c〜63cに記入された名前とから構成される。
記入領域61〜63には、それぞれ、チェックボックス61d〜63dが設けられる。チェックボックス61d〜63dは、対応する記入領域61〜63を宛先として使用するか否かをユーザに選択させる領域である。チェックボックス61d〜63dのうち、チェックマークが入ったチェックボックスに対応する記入領域61〜63は、領域61a〜63aなどに宛先情報が記入されているか否かに依らず、宛先として使用されない。
宛先テンプレート60における左下、右下、および右上の角部には、それぞれ、マークM1,M2,M3が設けられている。処理サーバ200は、システム1から受信した読取データを解析した場合に、左下、右下、および右上の各角部にマークM1,M2,M3があると判断した場合、受信した読取データが、宛先テンプレート60の読取データであると特定する。よって、処理サーバ200は、宛先テンプレート60と差出人テンプレート50とを、読取データにおけるマークM1,M2,M3の配置と、マークM1,M2,M3の配置とで区別する。
図4から図8を参照して、MFP10が処理サーバ200を用いてポストカードの宛名面印刷を行う場合における、MFP10、仲介サーバ100、および処理サーバ200の動作を説明する。図4から図8の各シーケンス図に示す各処理は、MFP10のCPU11、仲介サーバ100の制御部101、または、処理サーバ200の制御部201のいずれかが、各装置10,100,200に搭載される制御プログラム12aやプログラムに従い実行する。なお、以下では、「MFP10のCPU11」、「仲介サーバ100の制御部101」、および「処理サーバ200の制御部201」を、それぞれ、「MFP10」、「仲介サーバ200」、および「処理サーバ200」と称することがある。
図4は、宛名面印刷におけるメイン処理のシーケンス図である。本処理は、MFP10が宛名面印刷の実行を指示する入力を受け付けた場合に開始される。MFP10は、仲介サーバ100に画面情報要求を送信する(P1)。仲介サーバ100は、MFP10から画面情報要求を受信すると、差出人テンプレートのスキャン画面を表示させるための画面情報をMFP10に送信する(Q1)。MFP10は、仲介サーバ100から画面情報を受信すると、受信した画面情報に従う画面、すなわち、差出人テンプレートのスキャン画面をLCD16に表示する(P2)。差出人テンプレートのスキャン画面は、差出人テンプレート50をスキャナ部18を用いて読み取るよう、ユーザに促す画面である。
MFP10がP2の処理を実行した後、MFP10、仲介サーバ100、および処理サーバ200は、アップロード処理を実行する(S1)。詳細は図5を参照して後述するが、アップロード処理(S1)は、MFP10に、スキャナ部18が読み取った差出人テンプレート50の読取データを、処理サーバ200にアップロードさせる処理である。
アップロード処理(S1)の実行後、仲介サーバ100および処理サーバ200は、解析処理を実行する(S2)。詳細は図6を参照して後述するが、解析処理(S2)は、処理サーバ200に、アップロード処理(S1)にてアップロードされた差出人テンプレート50の読取データに対する解析を実行させる処理である。
仲介サーバ100は、解析処理(S2)にて処理サーバ200が行った解析の結果が、アップロード処理(S1)にてアップロードされた読取データが正しいデータであるか、すなわち、エラーのないデータであるかを判断する(Q2)。具体的に、Q2において、仲介サーバ100は、処理サーバ200から受信した解析結果が、アップロードされた読取データが差出人テンプレート50のものであることを示す場合に、アップロードされた読取データが正しいデータであると判断する。一方、仲介サーバ100は、処理サーバ200から受信した解析結果が、アップロードされた読取データが差出人テンプレート50のものでないことを示す場合に、アップロードされた読取データが正しいデータでないと判断する。
仲介サーバ100が、アップロードされた読取データが正しいデータである、すなわち、エラーのないデータであると判断した場合(Q2:Yes)、仲介サーバ100は、宛先テンプレートのスキャン画面を表示させるための画面情報をMFP10に送信する(Q3)。MFP10は、仲介サーバ100から画面情報を受信すると、受信した画面情報に従う画面、すなわち、宛先テンプレートのスキャン画面をLCD16に表示する(P3)。宛先テンプレートのスキャン画面は、宛先テンプレート60をスキャナ部18を用いて読み取るよう、ユーザに促す画面である。
一方、仲介サーバ100が、アップロードされた読取データが正しいデータでない、すなわち、エラーのあるデータであると判断した場合(Q2:No)、MFP10、仲介サーバ100、および処理サーバ200は、エラー処理を実行する(S3)。詳細は図7を参照して後述するが、エラー処理(S3)は、読取データのエラーを解消する処理である。エラー処理(S3)の実行により、読取データのエラーが解消されたことを条件として、仲介サーバ100は、Q3の処理を実行する。
MFP10がP3の処理を実行した後、MFP10、仲介サーバ100、および処理サーバ200は、アップロード処理を実行する(S4)。アップロード処理(S4)は、アップロード対象が宛先テンプレート60の読取データであること以外、上述したアップロード処理(S1)と同様の処理である。アップロード処理(S4)の実行後、仲介サーバ100および処理サーバ200は、解析処理を実行する(S5)。解析処理(S5)は、解析の対象が宛先テンプレート60の読取データであること以外、上述した解析処理(S2)と同様の処理である。
仲介サーバ100は、解析処理(S5)において処理サーバ200が行った解析の結果が、アップロード処理(S4)にてアップロードされた全ての読取データが正しいデータであるか、すなわち、全ての読取データにエラーがないかを判断する(Q4)。ポストカードの宛名面を作成する上で、差出人情報は1つであるのに対し、宛先情報は1つとは限らない。よって、宛先テンプレート60の読取データが複数ある場合、仲介サーバ100は、Q4において、それら複数の読取データの全てが正しいデータであるかを判断する。
具体的に、Q4において、仲介サーバ100は、処理サーバ200から受信した解析結果が、アップロードされた1または複数の読取データの全てが宛先テンプレート60のものであることを示す場合に、アップロードされた全ての読取データが正しいデータであると判断する。一方、仲介サーバ100は、処理サーバ200から受信した解析結果が、アップロードされた1または複数の読取データの一部が宛先テンプレート60のものでないことを示す場合に、アップロードされた全ての読取データが正しいデータでないと判断する。
このように、Q4の判断処理と上述したQ2の判断処理とでは、処理サーバ200から受信した解析結果に対して、エラーと判断する基準が異なる。よって、処理サーバ200から返される解析結果に対し、仲介サーバ100は、アップロードした読取データの種類に応じた各々の判断基準で、エラーの有無を判断できる。
仲介サーバ100が、アップロードされた全ての読取データが正しいデータである、すなわち、全ての読取データにエラーがないと判断した場合(Q4:Yes)、仲介サーバ100および処理サーバ200は、変換処理を実行する(S7)。詳細は図8を参照して後述するが、変換処理(S7)は、処理サーバ200に、アップロードされた差出人テンプレート50の読取データおよび宛先テンプレート60の読取データから、宛名面画像を生成させる処理である。
変換処理(S7)の実行後、MFP10、仲介サーバ100、および処理サーバ200は、ダウンロード処理を実行する(S8)。ダウンロード処理(S8)の終了をもって、メイン処理が終了する。ダウンロード処理(S8)は、変換処理(S7)にて処理サーバ200が生成した宛名面画像の画像ファイルをMFP10にダウンロードさせ、当該画像ファイルに基づく画像、つまり、宛名面画像をプリンタ部19に印刷させる処理である。ダウンロード処理(S8)は、本発明に関係しない処理であるので、詳細については省略する。
一方、仲介サーバ100が、アップロードされた全ての読取データが正しいデータでない、すなわち、少なくとも一部の読取データにエラーがあると判断した場合(Q4:No)、MFP10、仲介サーバ100、および処理サーバ200は、エラー処理を実行する(S6)。エラー処理(S6)は、上述したエラー処理(S3)と同様、読取データのエラーを解消する処理である。エラー処理(S6)の実行により、読取データのエラーが解消されたことを条件として、仲介サーバ100および処理サーバ200は、変換処理を実行する(S7)。
図5は、上述したアップロード処理(S1,S4)のシーケンス図である。本処理は、後述するエラー処理(図7参照)の中で実行されるアップロード処理(S61)でもある。MFP10は、差出人テンプレートまたは宛先テンプレートのスキャン画面に表示されたスタートキーに対する操作を読取指示として受け付けると、仲介サーバ100に読取指示を送信する(P21)。なお、スタートキーが操作キー15の1つとして設けられている場合には、読取指示は、当該スタートキーに対する操作であってもよい。
仲介サーバ100は、MFP10から読取指示を受信すると、読取実行命令情報を生成し(Q21)、当該読取実行命令情報をMFP10に送信する(Q22)。MFP10は、仲介サーバ100から読取実行命令情報を受信すると、スキャナ部18による読み取りを実行する(P22)。P22の読み取りは、ユーザが準備した差出人テンプレート50または宛先テンプレート60の全てについて行う。差出人情報は1つであるので、読取対象の差出人テンプレート50は1であるのに対し、宛先情報は1つとは限らないので、読取対象の宛先テンプレート60は複数であることもある。
MFP10は、P22の読み取りにより得られた読取データのうち、1の読取データをアップロードするために、アップロード先URL取得要求およびテンプレート取得要求を仲介サーバ100に送信する(P23)。仲介サーバ100は、P23にてMFP10から送信された各要求を受信すると、ファイルID取得要求およびアップロード先URL取得要求を処理サーバ200に送信する(Q23)。
処理サーバ200は、Q23にて仲介サーバ100から送信された各要求を受信すると、ファイルIDおよびアップロード先URLを仲介サーバ100に送信する(R21)。ファイルIDは、読取データを個別に識別するための識別情報である。アップロード先URLは、アップロード対象となる1の読取データの格納先を示す情報である。処理サーバ200は、1の読取データに対し、1のファイルIDおよび1のアップロード先URLを割り当てる。
仲介サーバ100は、ファイルIDおよびアップロード先URLを受信すると、制御部101のRAM内に設けたファイルIDリストを更新する(Q24)。ファイルIDリストは、処理サーバ200から受信したファイルIDのリスト、すなわち、アップロードされた読取データに対して個々に割り当てられたファイルIDのリストである。ファイルIDリストは、アップロード対象の読取データが、差出人テンプレート50の読取データである場合と、宛先テンプレート60の読取データである場合とで、別々に作成される。
詳細には、仲介サーバ100は、差出人テンプレート50の読取データをアップロードするアップロード処理(S1)、または、宛先テンプレート60の読取データをアップロードするアップロード処理(S4)にて、最初のファイルIDを受信した場合、Q24において、制御部101のRAM内にファイルIDリストを作成し、受信したファイルIDをファイルIDリストにおける最初のファイルIDとして格納する。仲介サーバ100は、アップロード処理(S4)にて2番目以降のファイルIDを受信した場合、Q24において、受信したファイルIDをファイルIDリストに順次追加することによって、ファイルIDリストを更新する。
また、仲介サーバ100は、後述するエラー処理(図7参照)の中で実行されるアップロード処理(S61)にて、最初のファイルIDを受信した場合、Q24において、制御部101のRAM内にファイルIDリストを作成し、受信したファイルIDをファイルIDリストにおける最初のファイルIDとして格納する。仲介サーバ100は、アップロード処理(S61)にて2番目以降のファイルIDを受信した場合、Q24において、受信したファイルIDをファイルIDリストに順次追加することによって、ファイルIDリストを更新する。なお、仲介サーバ100は、ファイルIDリストに格納される個々のファイルIDに対し、各ファイルIDを特定できるインデックスを割り当てる。
仲介サーバ100は、Q24の処理後、アップロード用のテンプレートを作成し(Q25)、作成したテンプレートと、処理サーバ200から受信したアップロード先URLとを、MFP10に送信する(Q26)。MFP10は、仲介サーバ100から受信したテンプレートに、アップロード対象となる1の読取データを合成して、アップロードメッセージを作成する(P24)。
MFP10は、作成したアップロードメッセージを、仲介サーバ100から受信したアップロード先URLを宛先として、処理サーバ200に送信する(P25)。処理サーバ200は、アップロードされたアップロードメッセージを、アップロード先URLに対応するファイルIDに関連付けて格納する。つまり、アップロード対象の読取データは、ファイルIDに関連付けられて処理サーバ200に格納される。
処理サーバ200は、アップロード結果情報をMFP10に送信する(R22)。アップロード結果情報は、アップロードが成功したか否かを示す情報である。MFP10は、アップロード結果情報を処理サーバ200から受信すると、受信したアップロード結果情報を、仲介サーバ100に送信する(P26)。仲介サーバ100は、アップロード結果情報をMFP10から受信すると、処理サーバ200におけるアップロードの結果を示す解読結果を作成し(Q27)、作成した解読結果をMFP10に送信する(Q28)。
MFP10は、仲介サーバ100から受信した解読結果をRAMに記憶する。MFP10は、P22の読み取りにより得られた読取データが全てアップロードされたかを判断する(P27)。MFP10が、全ての読取データがアップロードされていないと判断した場合(P27:No)、MFP10は、処理をP23に移行し、アップロードされていない次の読取データをアップロード対象として処理を続ける。
一方、MFP10が、全ての読取データがアップロードされたと判断した場合(P27:Yes)、MFP10は、アップロード完了情報を仲介サーバ100に送信する(P28)。P28の処理が実行されると、アップロード処理(S1、S4,S61)が終了する。
図6は、上述した解析処理(S2,S5)のシーケンス図である。本処理は、後述するエラー処理(図7参照)の中で実行される解析処理(S62)でもある。仲介サーバ100は、解析要求を処理サーバ200に送信する(Q41)。詳細には、仲介サーバ100は、解析処理(S2,S5,S62)の直前に実行されたアップロード処理(S1、S4,S61)のQ24の処理により得られたファイルIDリストを、解析要求とともに処理サーバ200に送信する。
つまり、解析処理(S2)において、仲介サーバ100は、直前に実行されたアップロード処理(S1)にて得られたファイルIDリスト、すなわち、差出人テンプレート50の読取データのファイルIDリストを、解析要求とともに処理サーバ200に送信する。一方、解析処理(S5)において、仲介サーバ100は、直前に実行されたアップロード処理(S4)にて得られたファイルIDリスト、すなわち、宛先テンプレート60の読取データのファイルIDリストを、解析要求とともに処理サーバ200に送信する。また、解析処理(S62)において、仲介サーバ100は、直前に実行されたアップロード処理(S61)にて得られたファイルIDリスト、すなわち、再読み取りにより得られた読取データのファイルIDリストを、解析要求とともに処理サーバ200に送信する。
処理サーバ200は、解析要求とともに受信したファイルIDリストに対し、1の変換IDを割り当て、当該1の変換IDを仲介サーバ100に送信する(R41)。処理サーバ200は、R41にて変換IDを仲介サーバ100に送信すると、処理サーバ200に送信した変換IDに対応するファイルIDリストに含まれる各ファイルIDにより特定される全ての読取データを解析対象として、各読取データについてデータ解析を実行する(R42)。なお、データ解析(R42)は、処理サーバ200が仲介サーバ100との通信に対して非同期に実行する処理である。
データ解析(R42)を詳細に説明する。処理サーバ200は、読取データに含まれるマークM1,M2,M3の配置に基づき、各ファイルIDにより特定される各読取データについて、読取データの種別を特定し、特定された種別に応じた解析結果を作成する。読取データの種別は、差出人テンプレート50の読取データと、宛先テンプレート60の読取データとで区別される。
処理サーバ200は、特定された種別が、差出人テンプレート50の読取データである場合、アップロードされた読取データが差出人テンプレート50のものであることを示す情報と、当該読取データに関連付けられたファイルIDとを含む解析結果を作成する。一方、処理サーバ200は、特定された種別が、宛先テンプレート60の読取データである場合、アップロードされた読取データが宛先テンプレート60のものであることを示す情報と、当該読取データに関連付けられたファイルIDとを含む解析結果を作成する。また、処理サーバ200は、特定された種別が、差出人テンプレート50の読取データのものでも、宛先テンプレート60の読取データのものでもない場合、アップロードされた読取データがその他の読取データであることを示す情報と、当該読取データに関連付けられたファイルIDとを含む解析結果を作成する。
解析処理(S2,S5,S62)の説明に戻る。仲介サーバ100は、処理サーバ200から変換IDを受信すると、解析結果取得要求を処理サーバ200に送信する(Q42)。詳細には、仲介サーバ100は、処理サーバ200がR41にて送信した変換IDを、解析結果取得要求とともに処理サーバ200に送信する。
処理サーバ200は、仲介サーバ100から解析結果取得要求を受信すると、データ解析(R42)が完了したかを判断する(R43)。処理サーバ200が、データ解析が完了していないと判断した場合(R43:No)、処理サーバ200は、解析未完了通知を仲介サーバ100に送信する(R44)。仲介サーバ100は、解析未完了通知を受信すると、処理をQ42に移行する。
処理サーバ200が、データ解析が完了したと判断した場合(R43:Yes)、処理サーバ200は、データ解析(R42)にて作成した解析結果を仲介サーバ100に送信する(R45)。仲介サーバ100から受信したファイルIDリストに複数のファイルIDが含まれる場合、処理サーバ200は、それら複数のファイルIDの各々に対して作成された解析結果を仲介サーバ100に送信する。R45の処理が実行されると、解析処理(S2、S5,S62)が終了する。
図7は、上述したエラー処理(S3,S6)のシーケンス図である。仲介サーバ100は、処理サーバ200から受信した解析結果に基づき、再読み取りが必要な読取データ、すなわち、エラーがあった読取データのインデックスを取得する(Q61)。なお、エラー処理(S3)のQ61にて参照する解析結果は、解析処理(S2)のR45にて処理サーバ200が仲介サーバ100に送信した解析結果である。一方、エラー処理(S6)のQ61にて参照する解析結果は、解析処理(S5)のR45にて処理サーバ200が仲介サーバ100に送信した解析結果である。
仲介サーバ100は、エラー通知と、再スキャン画面を表示させるための画面情報とをMFP10に送信する(Q62)。詳細には、エラー処理(S3)にて送信される画面情報は、差出人テンプレート50の再スキャン画面を表示させるための画面情報である。一方で、エラー処理(S6)にて送信される画面情報は、宛先テンプレート60の再スキャン画面を表示させるための画面情報である。画面情報は、Q61にて取得したインデックスを含む。
MFP10は、仲介サーバ100から画面情報を受信すると、受信した画面情報に従う画面、すなわち、再スキャン画面をLCD16に表示する(P61)。再スキャン画面は、エラーのあった読取データについて、差出人テンプレート50または宛先テンプレート60をスキャナ部18を用いて再度読み取るよう、ユーザに促す画面である。
詳細には、MFP10が差出人テンプレート50の再スキャン画面を表示させるための画面情報を受信した場合、差出人テンプレート50の読み取りを促す再スキャン画面が表示される。一方、MFP10が宛先テンプレート60の再スキャン画面を表示させるための画面情報を受信した場合、宛先テンプレート60の読み取りを促す再スキャン画面が表示される。宛先テンプレート60の読み取りを促す再スキャン画面には、画像情報に含まれるインデックスに基づき、P22にて実行された読み取りのうち、何番目の宛先テンプレート60の読取データにエラーがあったかを示す情報が表示される。よって、ユーザは、どの宛先テンプレート60にエラーがあったかを知ることができる。
MFP10がP61の処理を実行した後、MFP10、仲介サーバ100、および処理サーバ200は、アップロード処理を実行する(S61)。アップロード処理(S61)は、アップロード対象が再読み取りにより得られた読取データであること以外、上述したアップロード処理(S1)と同様の処理である。アップロード処理(S61)によれば、エラーがあった読取データに対応する差出人テンプレート50または宛先テンプレート60について再度読み取った読取データが、処理サーバ200にアップロードされる。これにより、エラーが修正された読取データを処理サーバ200にアップロードできる。
アップロード処理(S61)の実行後、仲介サーバ100および処理サーバ200は、解析処理を実行する(S62)。解析処理(S62)は、解析の対象がアップロード処理(S61)にてアップロードされた読取データであること以外、上述した解析処理(S2)と同様の処理である。
仲介サーバ100は、解析処理(S2)の処理後、アップロード処理(S61)にて作成されたファイルIDリストで、アップロード処理(S1)またはアップロード処理(S4)にて作成されたファイルIDリストを更新する(Q63)。具体的に、Q63において、仲介サーバ100は、アップロード処理(S1)またはアップロード処理(S4)にて作成されたファイルIDリストに含まれるファイルIDのうち、エラーのある読取データに対応するファイルIDを、アップロード処理(S61)にて作成されたファイルIDリストに含まれる各ファイルIDに置換する。
なお、エラー処理(S3)のQ63にて更新されるファイルIDリストは、アップロード処理(S1)にて作成されたファイルIDリストである。一方、エラー処理(S6)のQ63にて更新されるファイルIDリストは、アップロード処理(S4)にて作成されたファイルIDリストである。
仲介サーバ100は、Q63の処理後、仲介サーバ100は、解析処理(S62)にて処理サーバ200が行った解析の結果が、アップロード処理(S61)にてアップロードされた全ての読取データが正しいデータであるか、すなわち、全ての読取データにエラーがないかを判断する(Q64)。具体的に、エラー処理(S3)のQ64において、仲介サーバ100は、全ての読取データが正しいデータであるかの判断を、上述したQ2と同様に行う。一方、エラー処理(S6)のQ64において、仲介サーバ100は、全ての読取データが正しいデータであるかの判断を、上述したQ4と同様に行う。
仲介サーバ100が、アップロードされた全ての読取データが正しいデータでない、すなわち、少なくとも一部の読取データにエラーがあると判断した場合(Q64:No)、仲介サーバ100は、処理をQ61に移行する。一方、仲介サーバ100が、アップロードされた全ての読取データが正しいデータである、すなわち、全ての読取データにエラーがないと判断した場合(Q64:Yes)、当該判断をもって、エラー処理(S3、S6)が終了する。つまり、エラー処理(S3、S6)は、読取データにおける全てのエラーが解消されたことを条件として終了する。
図8は、上述した変換処理(S7)のシーケンス図である。仲介サーバ100は、画像処理要求を処理サーバ200に送信する(Q81)。詳細には、仲介サーバ100は、差出人テンプレート50の読取データのファイルIDリストと宛先テンプレート60の読取データのファイルIDリストとを合わせたファイルIDリストを、画像処理要求とともに処理サーバ200に送信する。
Q81にて処理サーバ200に送信されるファイルIDリストのうち、差出人テンプレート50の読取データのファイルIDリストは、アップロード処理(S1)において作成され、必要に応じて、エラー処理(S3)のQ63にて更新されたファイルIDリストである。一方、宛先テンプレート60の読取データのファイルIDリストは、アップロード処理(S4)において作成され、必要に応じて、エラー処理(S6)のQ63にて更新されたファイルIDリストである。
処理サーバ200は、画像処理要求とともに受信したファイルIDリストに対し、1の変換IDを割り当て、当該1の変換IDを仲介サーバ100に送信する(R81)。処理サーバ200は、変換IDを仲介サーバ100に送信すると、処理サーバ200に送信した変換IDに対応するファイルIDリストに含まれる各ファイルIDにより特定される全ての読取データを処理対象として、画像処理を実行する(R82)。なお、画像処理(R82)は、処理サーバ200が仲介サーバ100との通信に対して非同期に実行する処理である。
画像処理(R82)を詳細に説明する。処理サーバ200は、対象のファイルIDリストに含まれるファイルIDに関連付けられた読取データのうち、差出人テンプレート50の読取データから、記入領域51に記入された差出人情報を含む画像を抽出する。具体的に、処理サーバ200の記憶部202には、領域51a〜51cを含む所定の矩形領域を特定する座標情報が記憶されている。処理サーバ200は、記憶部202に記憶される座標情報に基づいて、領域51a〜51cを含む所定の矩形領域の画像、すなわち、差出人情報を含む画像を抽出する。
なお、処理サーバ200は、対象のファイルIDリストに含まれる各ファイルIDに関連付けられた各読取データが、差出人テンプレート50の読取データであるか、宛先テンプレート60の読取データであるかを、読取データに含まれるマークM1,M2,M3の配置に基づいて区別する。
一方、処理サーバ200は、対象のファイルIDリストに含まれるファイルIDに関連付けられた読取データのうち、宛先テンプレート60の読取データから、記入領域61〜63のうち、チェックボックス61d〜63dにチェックマークが入っていない記入領域に記入された宛先情報を含む画像を抽出する。処理サーバ200は、宛先情報を含む画像の抽出を、対象のファイルIDリストに含まれるファイルIDに関連付けられた、宛先テンプレート60の読取データの全てについてそれぞれ行う。
具体的に、処理サーバ200の記憶部202には、チェックボックス61d〜63dを特定する座標情報が記憶されている。処理サーバ200は、記憶部202に記憶される座標情報に基づいて、チェックボックス61d〜63dにチェックマークが入っているかを特定する。処理サーバ200の記憶部202には、領域61a〜61cを含む所定の矩形領域と、領域62a〜62cを含む所定の矩形領域と、領域63a〜63cを含む所定の矩形領域とをそれぞれ特定する座標情報が記憶されている。処理サーバ200は、記入領域61〜63のうち、チェックボックス61d〜63dにチェックマークが入っていない記入領域を抽出対象として特定する。
処理サーバ200は、記憶部202に記憶される座標情報に基づいて、抽出対象として特定された記入領域について、領域61a〜61c、領域62a〜62c、または領域63a〜63cを含む所定の矩形領域、すなわち、宛先情報を含む画像を抽出する。宛先テンプレート60には、最大3人分の宛先情報を記入できる。つまり、宛先情報を含む画像は、1の読取データから最大で3つ抽出される。
差出人情報を含む画像と宛先情報を含む画像とが抽出されると、処理サーバ200は、差出人テンプレート50の読取データから抽出された差出人情報を含む画像と、宛先テンプレート60の読取データから抽出された宛先情報を含む画像とから、宛名面画像、すなわち、ポストカードの宛名面に印刷するための画像を生成する。詳細には、処理サーバ200は、差出人情報を含む画像が、ポストカードの宛名面における差出人の記載位置に配置され、宛先情報を含む画像が、宛名面における宛先の記載位置に配置された宛名面画像を生成する。
処理サーバ200は、宛名面画像が生成される毎に、宛名面画像の画像ファイル(以下「出力ファイル」と称す)に対し、出力ファイルを個々に特定できるインデックスを割り当てる。宛名面画像は、宛先情報を含む画像の数だけ生成される。よって、出力ファイルに割り当てられるインデックスの最大値は、宛先情報を含む画像の全数に相当する。
変換処理(S7)の説明に戻る。仲介サーバ100は、処理サーバ200から変換IDを受信すると、インデックスiに初期値として0を設定する(Q82)。インデックスiは、処理サーバ200にてi番目のインデックスが割り当てられた出力ファイルを特定する変数である。仲介サーバ100は、インデックスiを1カウントアップする(Q83)。処理サーバ100は、処理完了確認要求を処理サーバ200に送信する(Q84)。詳細には、仲介サーバ100は、処理サーバ200がR81にて送信した変換IDと、現在のインデックスiとを、解析結果取得要求とともに処理サーバ200に送信する。
処理サーバ200は、仲介サーバ100がQ84にて送信した処理完了確認要求を受信すると、処理完了確認要求に含まれるインデックスiに対応する出力ファイルの処理が完了しているかを判断する(R83)。処理サーバ200が、インデックスiに対応する出力ファイルの処理が完了していないと判断した場合(R83:No)、処理サーバ200は、処理未完了通知を仲介サーバ100に送信する(R84)。仲介サーバ100は、処理未完了通知を受信すると、処理をQ84に移行する。
一方、処理サーバ200が、インデックスiに対応する出力ファイルの処理が完了していると判断した場合(R83:Yes)、処理サーバ200は、インデックスiに対応する出力ファイルが存在するかを判断する(R85)。なお、インデックスiの値が、(出力ファイルに割り当てられるインデックスの最大値+1)である場合、画像処理(R82)にて生成可能な宛名面画像が全て生成されていることを示す。かかる場合、処理サーバ200は、R83において、インデックスiに対応する出力ファイルの処理が完了したと判断する。
処理サーバ200が、インデックスiに対応する出力ファイルが存在すると判断した場合(R85:Yes)、処理サーバ200は、処理完了通知を仲介サーバ100に送信する(R86)。仲介サーバ100は、処理完了通知を受信すると、処理をQ83に移行する。一方、処理サーバ200が、インデックスiに対応する出力ファイルが存在しないと判断した場合(R85:No)、当該判断は、画像処理(R82)にて生成可能な宛名面画像が全て生成されたことを示す。よって、かかる場合、処理サーバ200は、全処理完了通知を仲介サーバ100に送信する(R87)。R87の処理が実行されると、変換処理(S7)が終了する。
本実施形態のシステム1によれば、差出人テンプレート50の読取データ(すなわち、第1読取データ)が先ず処理サーバ200に送信され、差出人テンプレート50の読取データにエラーがないことを条件として、宛先テンプレート60の読取データ(すなわち、第2読取データ)が処理サーバ200に送信される。そして、宛先テンプレート60の読取データにエラーがないことを条件として、画像処理要求が処理サーバ200に送信される。よって、先に処理サーバに送信された第1読取データにエラーがある場合には、第2読取データの送信前に当該エラーの存在を知ることができるとともに、第2読取データにエラーがある場合には、画像処理要求の送信前に当該エラーの存在を知ることができる。これにより、処理サーバ200は、エラーのない各読取データから宛名面画像を生成できるので、ユーザが、MFP10が処理サーバ200から宛名面画像の画像ファイルを受信したときに初めてエラーの存在を知る状況を回避できる。
また、差出人テンプレート50または宛先テンプレート60の読取データにエラーがあった場合、エラー処理(S3,S6)にて表示される再スキャン画面には、どの読取データにエラーがあったかを示す情報が表示されるので、ユーザは、エラーがあった読取データを特定できる。エラーがあった読取データに対応する差出人テンプレート50または宛先テンプレート60のみ、再読み取りにより得られた読取データが処理サーバ200にアップロードされるので、エラーがない読取データについて、再読み取りを実行する必要がないので、MFP10の処理負荷を抑制できるとともに、無駄な処理時間がかかることも抑制できる。
また、解析処理(S2、S5,S62)では、仲介サーバ100は、1のファイルIDリストに対し、1の解析要求を処理サーバに送信する。よって、ファイルIDリストには、複数のファイルIDが含まれる場合には、1の解析要求で、ファイルIDリストに含まれる複数のファイルIDにそれぞれ対応する複数の読取データのデータ解析を実行させることができる。よって、複数の読取データに対し1つずつ解析要求を処理サーバ200に送信し、1つずつ読取データのデータ解析を実行させる場合に比べ、処理サーバ200にかかる処理負荷を軽くできる。
また、処理サーバ200は、MFP10からアップロードされた読取データを、個々に割り当てたファイルIDにより管理する。よって、仲介サーバ100は、ファイルIDリストを処理サーバ200に送信することにより、処理サーバ200に解析対象または処理対象とする読取データを特定させることができる。
上記実施形態において、システム1が、画像供給システムの一例である。MFP10が、読取装置の一例である。仲介サーバ100が、管理サーバの一例である。処理サーバ200が、処理サーバの一例である。アップロード処理(S1)のP22の処理を実行するMFP10が、第1画像取得手段の一例である。アップロード処理(S1)のP25の処理を実行するMFP10が、第1画像送信手段の一例である。解析処理(S2)のQ41の処理を実行する仲介サーバ100が、第1解析要求手段の一例である。解析処理(S2)のR41にて処理サーバ200が送信した解析結果を受信する仲介サーバ100が、第1結果受信手段の一例である。アップロード処理(S4)のP22の処理を実行するMFP10が、第2画像取得手段の一例である。アップロード処理(S4)のP25の処理を実行するMFP10が、第2画像送信手段の一例である。解析処理(S5)のQ41の処理を実行する仲介サーバ100が、第2解析要求手段の一例である。解析処理(S5)のR41にて処理サーバ200が送信した解析結果を受信する仲介サーバ100が、第2結果受信手段の一例である。
変換処理(S7)のQ81の処理を実行する仲介サーバ100が、処理要求手段の一例である。Q2の処理を実行する仲介サーバ100が、第1判断手段の一例である。Q4の処理を実行する仲介サーバ100が、第2判断手段の一例である。エラー処理(S3)のP61の処理を実行するMFP10が、第1エラー表示手段の一例である。エラー処理(S6)のP61の処理を実行するMFP10が、第2エラー表示手段の一例である。エラー処理(S3,S6)のQ61の処理を実行する仲介サーバ100が、特定情報取得手段の一例である。アップロード処理(S1)のQ23の処理を実行する仲介サーバ100が、第1識別情報要求手段の一例である。アップロード処理(S1)のR21にて処理サーバ200が送信したファイルIDを受信する仲介サーバ100が、第1識別情報要求手段の一例である。アップロード処理(S4)のQ23の処理を実行する仲介サーバ100が、第2識別情報要求手段の一例である。アップロード処理(S4)のR21にて処理サーバ200が送信したファイルIDを受信する仲介サーバ100が、第2識別情報要求手段の一例である。Q1の処理を実行する仲介サーバ100が、第1画面情報送信手段の一例である。P2の処理を実行するMFP10が、第1画面表示手段の一例である。Q3の処理を実行する仲介サーバ100が、第2画面情報送信手段の一例である。P3の処理を実行するMFP10が、第2画面表示手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、本発明の画像供給システムとして、MFP10と仲介サーバ100とから構成されるシステム1を例示した。MFP10に仲介サーバ200の機能を持たせる構成としてもよい。かかる場合、仲介サーバ100の機能を有するMFP10が、本発明の画像供給システムとなる。
上記実施形態では、本発明の画像供給システムを構成する装置の1つとして、多機能周辺装置であるMFP10を例示した。少なくともスキャン機能、もしくは、読取データを他の装置から取得する機能を有する装置であれば、MFP10に代わる装置として本発明の画像供給システムに適用できる。また、上記実施形態では、システム1を構成する仲介サーバ100を、物理的に存在する1つのサーバとして説明した。仲介サーバ100は、複数の物理的な装置が協働して1つのサーバとして機能するヴァーチャルマシンであってもよい。
上記実施形態では、処理サーバ200が実行する画像処理の一例として、差出人テンプレート50の読取データと、宛先テンプレート60の読取データとから宛名面画像を生成する処理を例示した。2つの画像データから1つの画像を生成する処理であれば、処理サーバ200が実行する画像処理は、上述した宛名面画像の生成に限られない。例えば、処理サーバ200が実行する画像処理が、季節に応じた画像の画像データと、各月のカレンダーを示す画像の画像データとから、カレンダー画像を生成する処理であってもよい。
上記実施形態では、処理サーバ200にアップロードされる順が、差出人テンプレート50の読取データが先で、宛先テンプレート60の読取データが後であるとした。これに代えて、宛先テンプレート60の読取データが先にアップロードされ、差出人テンプレート50の読取データが後にアップロードされる構成としてもよい。
上記実施形態では、差出人テンプレート50または宛先テンプレート60の読み取りにより得られた読取データを処理サーバ200にアップロードする構成としたが、NVRAM14に記憶されている画像データ、ファクシミリ受信した画像データを処理サーバ200にアップロードする構成としてもよい。本変形例では、NVRAM14に記憶されている画像データを取得する処理や、画像データをファクシミリ受信する処理が、第1画像取得手段または第2画像取得手段の一例となる。本変形例によれば、例えば、差出人テンプレート50または宛先テンプレート60の読み取りにより得られた読取データをNVRAM14に記憶させておき、翌年などの次の機会にNVRAM14に記憶されていた読取データを再利用して、宛名面画像を生成できる。
上記実施形態では、エラー処理(S3、S6)のQ63にて、仲介サーバ100は、解析処理(S2)の処理後、アップロード処理(S61)にて作成されたファイルIDリストで更新する構成とした。これに代えて、Q63の処理を省略し、仲介サーバ100は、アップロード処理(S61)のQ24にて、再読み取りにより得られた読取データに対して割り当てられたファイルIDを、アップロード処理(S1)またはアップロード処理(S4)にて作成されたファイルIDリストのうち、エラーのある読取データに対応するファイルIDと置換する構成としてもよい。
あるいは、仲介サーバ100は、アップロード処理(S61)にて作成されたファイルIDリストに含まれるファイルIDを対象として、Q64の判断を行う構成としてもよい。本変形例では、仲介サーバ100は、Q63の処理を、Q64にて、アップロードされた全ての読取データが正しいデータであると判断された場合に実行すればよい。
上記実施形態では、ダウンロード処理(S8)にて、MFP10が、処理サーバ200が生成した宛名面画像の画像ファイルをダウンロードし、プリンタ部19を用いて宛名面画像を印刷する構成とした。ダウンロードした画像ファイルの用途は、印刷に限られない。例えば、MFP10は、ダウンロードした画像ファイルを、NVRAM14に記憶させたり、ファクシミリ機能を用いて送信したりしてもよい。
上記実施形態では、差出人テンプレート50または宛先テンプレート60の読取データにエラーがあった場合、エラーがあった読取データに対応する差出人テンプレート50または宛先テンプレート60についてのみ、再読み取りを行う構成とした。これに代えて、差出人テンプレート50または宛先テンプレート60の読取データにエラーがあった場合、エラーの有無にかかわらず、差出人テンプレート50または宛先テンプレート60を再度読み取る構成としてもよい。
上記実施形態では、処理サーバ200が、特定された種別に応じた解析結果を作成し、仲介サーバ100が、処理サーバ200から受信した解析結果に基づき、アップロードされた読取データが正しいデータであるかを判断する構成とした。これに代えて、処理サーバ200が、アップロードされた読取データが正しいデータであるかを判断し、その判断結果を示す情報を仲介サーバ100に送信する構成としてもよい。
上記実施形態では、仲介サーバ100は、アップロード先URL取得要求をMFP10から取得した場合に、Q23において、アップロード先URL取得要求を処理サーバ200に送信する構成とした。これに代えて、仲介サーバ100は、MFP10からアップロード先URL取得要求を受信した場合に、当該仲介サーバ100が静的に保持するアップロード先URLをMFP10に送信する構成としてもよい。
上記実施形態では、図4〜図8のシーケンス図に記載される各処理のうち、MFP10が実行する処理について、CPU11が実行するものとして説明したが、これら各図に記載される該当処理を、複数のCPUが協同的に実行する構成としてもよい。また、ASICなどのICが、単独で、または、複数によって協働的に、上記各図に記載される該当処理を実行する構成してもよい。また、CPU11とASICなどのICとが協同して、上記各図に記載される該当処理を実行する構成してもよい。