(57)【要約】【課題】  サーバへの処理依頼時のパフォーマンス低下を軽減する技術を提供することを目的とする。【解決手段】  受信した文書データのハッシュ値とサーバに送信済のデータのハッシュ値とを用いた判定をせずに、前記サーバに前記文書データを送信する第１の処理と、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定を行い、判定結果に基づいて、前記サーバに前記文書データを送信する第２の処理とを切り替えて制御する。【選択図】  図４
2015231218.tif 000002
【特許請求の範囲】
【請求項１】
文書データを処理するサーバと通信可能な画像形成装置であって、
文書データを受信する受信手段と、
前記サーバに送信済のデータのハッシュ値を取得する取得手段と、
前記文書データのハッシュ値と前記ハッシュ値とを用いた判定をせずに、前記サーバに前記文書データを送信する第１の処理と、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定を行い、判定結果に基づいて、前記サーバに前記文書データを送信する第２の処理とを切り替えて制御する制御手段を有することを特徴とする画像形成装置。
【請求項２】
前記制御手段は、前記文書データのデータサイズを用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記制御手段は、前記文書データの部分データのハッシュ値を用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項１又は請求項２に記載の画像形成装置。
【請求項４】
前記受信手段で受信した文書データが前記画像形成装置で処理可能であるかを判定する判定手段と、
前記判定手段において前記画像形成装置で処理可能であると判定された場合、前記文書データを処理する処理手段を有し、
前記判定手段において前記画像形成装置で処理可能でないと判定された場合、前記制御手段を実行することを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記第２の処理は、前記文書データのハッシュ値と前記ハッシュ値とを比較し、一致する場合は、前記文書データを識別するための情報を前記サーバに送信し、一致しない場合は、前記文書データを前記サーバに送信することを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
前記制御手段は、前記文書データのヘッダ情報に含まれるデータサイズとユーザＩＤを用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
文書データを処理するサーバと通信可能な画像形成装置の制御方法であって、
受信手段が、文書データを受信する受信工程と、
取得手段が、前記サーバに送信済のデータのハッシュ値を取得する取得工程と、
制御手段が、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定をせずに、前記サーバに前記文書データを送信する第１の処理と、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定を行い、判定結果に基づいて、前記サーバに前記文書データを送信する第２の処理とを切り替えて制御する制御工程を有することを特徴とする画像形成装置の制御方法。
【請求項８】
前記制御工程は、前記文書データのデータサイズを用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項７に記載の画像形成装置の制御方法。
【請求項９】
前記制御工程は、前記文書データの部分データのハッシュ値を用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項７又は請求項８に記載の画像形成装置の制御方法。
【請求項１０】
判定手段が、前記受信工程で受信した文書データが前記画像形成装置で処理可能であるかを判定する判定工程と、
処理手段が、前記判定工程において前記画像形成装置で処理可能であると判定された場合、前記文書データを処理する処理工程を有し、
前記判定工程において前記画像形成装置で処理可能でないと判定された場合に、前記制御工程を実行することを特徴とする請求項７乃至９の何れか１項に記載の画像形成装置の制御方法。
【請求項１１】
前記第２の処理は、前記文書データのハッシュ値と前記ハッシュ値とを比較し、一致する場合は、前記文書データを識別するための情報を前記サーバに送信し、一致しない場合は、前記文書データを前記サーバに送信することを特徴とする請求項７乃至１０の何れか１項に記載の画像形成装置の制御方法。
【請求項１２】
前記制御工程は、前記文書データのヘッダ情報に含まれるデータサイズとユーザＩＤを用いて、前記第１の処理と前記第２の処理とを切り替えて制御することを特徴とする請求項７乃至１１の何れか１項に記載の画像形成装置の制御方法。
【請求項１３】
コンピュータを、請求項１乃至６の何れか１項に記載の画像形成装置が有する各手段と
して機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一つ以上の画像形成装置及びサーバから構成される画像形成システムにおいて、文書データの行う際の技術に関する。
【背景技術】
【０００２】
従来、画像形成装置において、画像形成装置内で印刷やプレビュー表示のために必要な処理が出来ない場合に、外部のサーバを利用して、処理することで印刷またはプレビュー表示を可能にするといった技術が存在する（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３１３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１を用いたシステムにおいて、一度、サーバに処理依頼を行った同じ文書データに対して、再度、サーバに処理依頼を行う場合がある。この場合、同じ文書データをサーバに再度送信することで、通信によるパフォーマンス劣化が生じ、全体として、パフォーマンスが低下する。そのため、サーバで文書データを保持しておき、文書データを送信する前に、サーバに送信したことのある文書データかを確認して、サーバに送信したことのある文書データに対しては、送信しないという方法が考えられる。しかしながら、サーバに送信したことのある文書データかを確認するは、確認するための処理負荷がかかり、確認するために文書データを一旦画像形成装置内にスプールする必要がある。そのため、文書データを送信する前に、全データに対して、確認処理を行うと、全体として、パフォーマンスが低下するという課題があった。
【０００５】
本発明は、上述の問題点に鑑みなされたものであり、サーバへの処理依頼時のパフォーマンス低下を軽減する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の問題点を解決するため、本発明の画像形成装置は以下の構成を備える。すなわち、文書データを処理するサーバと通信可能な画像形成装置であって、文書データを受信する受信手段と、前記サーバに送信済のデータのハッシュ値を取得する取得手段と、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定をせずに、前記サーバに前記文書データを送信する第１の処理と、前記文書データのハッシュ値と前記ハッシュ値とを用いた判定を行い、判定結果に基づいて、前記サーバに前記文書データを送信する第２の処理とを切り替えて制御する制御手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、サーバへの処理依頼時のパフォーマンス低下を軽減することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成システムの構成を表す図。
【図２】サーバ１０５及び画像形成装置１０１の構成を表す図。
【図３】サーバ１０５及び画像形成装置１０１の機能ブロック図。
【図４】画像形成装置１０１における第１の実施形態のフローチャート。
【図５】画像形成装置１０１で管理するテーブルの一例。
【図６】図４のＳ４０６のサブフローチャート。
【図７】図４のＳ４０８のサブフローチャート。
【図８】画像形成装置１０１における第２の実施形態のフローチャート。
【図９】サーバ１０５におけるフローチャート。
【図１０】画像形成装置１０１における第３の実施形態のフローチャート。
【図１１】画像形成装置１０１における第４の実施形態のフローチャート。
【図１２】画像形成装置１０１における第５の実施形態のフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１０】
［第１の実施形態］
図１は、本発明に係る画像形成システムの一例を表す構成図である。画像形成システムは画像形成装置１０１、１０２をはじめとする複数の画像形成装置と、情報処理端末１０３、１０４に加えてサーバ１０５から構成され、各々ネットワークにより接続されて、通信可能な状態である。以下、画像形成装置に関する説明は、代表して画像形成装置１０１について行う。なお、ここでいうネットワークはＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｉｎｔｅｒｎｅｔなど、画像形成システム内の装置が相互に通信できる方式であれば方法は問わない。
【００１１】
画像形成装置１０１は情報処理端末からの画像データの印刷依頼を受信して画像を印刷することや、装置に具備されているスキャナを用いて画像を読み取ること、読み取った画像を印刷することが可能である。また、画像形成装置１０１は、情報処理端末内のＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）共有フォルダや画像形成装置１０１に接続されたＵＳＢメモリの内容をユーザに提示する。そして、この中からユーザが選択した文書データを印刷することが可能である。加えて、画像形成装置１０１は、ネットワークＩ／Ｆ３１４を通じて情報処理端末から文書データをダイレクトに受信することも可能である。前記通信プロトコルについては、ＬＰＲ（Ｌｉｎｅ  ＰＲｉｎｔｅｒ  ｄａｅｍｏｎ  ｐｒｏｔｏｃｏｌ）やＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）などが挙げられるが、手段についてはこれ以外でも構わない。さらに、画像形成装置１０１は、自身で行うことのできない画像処理についてはサーバ１０５に依頼し処理を行わせることが可能である。
【００１２】
図２（ａ）は、サーバ１０５の構成の一例を表す構成図である。
【００１３】
サーバ１０５は、ＣＰＵ２１１、ＲＡＭ２１２、ＨＤＤ２１３、ネットワークＩ／Ｆ２１４から構成される。ＣＰＵ２１１は、装置全体の制御を司り、ＲＡＭ２１２、ＨＤＤ２１３、及びネットワークＩ／Ｆ２１４とのデータの授受を制御可能である。また、ＣＰＵ２１１はＨＤＤ２１３から読みだした制御プログラム（命令）をＲＡＭ２１２に展開し、ＲＡＭ２１２に記憶されている命令を実行する。
【００１４】
ＨＤＤ２１３には、ＣＰＵ２１１で実行可能な、画像処理を実現するための制御プログラム（命令）が格納されている。本明細において前記画像処理とは、様々なファイルフォーマットの入力文書データに対し、印刷データやプレビューデータを生成することを表すが、それ以外の画像処理でも構わない。そのほかにもＨＤＤ２１３には、サーバ１０５が処理可能なファイル形式に関する情報や、受信した変換処理内容や文書データを適宜保存することが可能である。
【００１５】
ＲＡＭ２１２は、ＨＤＤ２１３に記憶された命令やデータを展開してＣＰＵ２１１から読みだし可能とし、命令の実行に必要な各種のデータを記憶しておくことが可能である。
ネットワークＩ／Ｆ２１４は、画像形成システム内の装置とネットワーク通信を行うためのＩ／Ｆであり、データ受信を行ったことをＣＰＵ２１１に伝達することや、ＲＡＭ２１２上のデータをネットワークに送信することが可能である。
【００１６】
図２（ｂ）は、画像形成装置１０１の構成の一例を示す構成図である。
【００１７】
画像形成装置１０１は、コントローラ３１０と、プリンタ３０１、スキャナ３０２、操作部３０３から構成される。コントローラ３１０は、ＣＰＵ３１１、ＲＡＭ３１２、ＨＤＤ３１３、ネットワークＩ／Ｆ３１４、プリンタＩ／Ｆ３１５、スキャナＩ／Ｆ３１６、操作部Ｉ／Ｆ３１７、拡張Ｉ／Ｆ３１８から構成される。ＣＰＵ３１１はＲＡＭ３１２、ＨＤＤ３１３、ネットワークＩ／Ｆ３１４、プリンタＩ／Ｆ３１５、スキャナＩ／Ｆ３１６、操作部Ｉ／Ｆ３１７とデータを授受することが可能である。また、ＣＰＵ３１１はＨＤＤ３１３から読みだした命令をＲＡＭ３１２に展開し、ＲＡＭ３１２に記憶されている命令を実行する。
【００１８】
ＨＤＤ３１３には、ＣＰＵ３１１で実行可能な命令や、装置で使用する設定値、ユーザから依頼された処理に関するデータ等を記憶しておくことが可能である。
【００１９】
ＲＡＭ３１２は、ＨＤＤ３１３に記憶された命令を展開してＣＰＵ３１１から読みだし可能とし、命令の実行に必要な各種のデータを記憶しておくことが可能である。
【００２０】
ネットワークＩ／Ｆ３１４は、画像形成システム内の装置とネットワーク通信を行うためのＩ／Ｆであり、データ受信を行ったことをＣＰＵ３１１に伝達することや、ＲＡＭ３１２上のデータをネットワークに送信することが可能である。
【００２１】
プリンタＩ／Ｆ３１５は、ＣＰＵ３１１から送信された印刷データをプリンタ３０１に送信することや、プリンタ３０１から受信したプリンタの状態をＣＰＵ３１１に伝達することが可能である。スキャナＩ／Ｆ３１６は、ＣＰＵ３１１から送信された画像読み取り指示をスキャナ３０２に送信し、スキャナ３０２から受信した画像データをＣＰＵ３１１に伝達することや、スキャナ３０２から受信した状態をＣＰＵ３１１に伝達することが可能なＩ／Ｆである。操作部Ｉ／Ｆ３１７は、操作部３０３から入力されたユーザからの指示をＣＰＵ３１１に伝達することや、ユーザが操作するための画面情報を操作部３０３に伝達することが可能である。
【００２２】
プリンタ３０１は、プリンタＩ／Ｆ３１５から受信した画像データを用紙に印刷することや、プリンタの状態をプリンタＩ／Ｆ３１５に伝達することが可能である。スキャナ３０２は、スキャナＩ／Ｆ３１６から受信した画像読み取り指示に従って、スキャナに置かれた用紙を読み取りデジタルデータ化してスキャナＩ／Ｆ３１６に伝達することや、スキャナの状態をスキャナＩ／Ｆ３１６に伝達することが可能である。操作部３０３は、画像形成装置１０１をユーザから操作することが可能にする。例えばタッチパネルを有する液晶画面を具備し、ユーザに操作画面を提供すると共に、ユーザからの操作を受け付ける。
【００２３】
拡張Ｉ／Ｆ３１８は、画像形成装置１０１に外部機器を接続することを可能とするＩ／Ｆである。例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）形式のＩ／Ｆを具備し、例えばＵＳＢメモリなどの外部記憶装置を接続してデータの読み取り・書き込みを行うことが可能である。
【００２４】
図３（ａ）は、サーバ１０５の機能ブロック図である。送受信部３２０は、画像形成装置１０１などの外部装置から、データを送受信する。判定部３２１は、受信したデータが、文書ＩＤなのか、文書データなのかなどの種々の判定をする。保持部３２２は、文書データや文書ＩＤを保持する。画像処理部３２３は、文書データに対して、画像処理を行う。検索部３２４は、文書ＩＤを用いて、対応する文書データを検索する。
【００２５】
図３（ｂ）は、画像形成装置１０１の機能ブロック図である。送受信部３３０は、サーバ１０５などの外部装置から、データを送受信する。判定部３３１は、画像形成装置で処理可能な画像処理であるかなどの種々の判定をする。保持部３３２は、文書データや、後述するテーブルを保持する。画像処理部３３３は、文書データに対して、画像処理を行う。ハッシュ処理部３３４は、文書データに対するハッシュ処理を行う。制御部３３５は、画像処理部で処理されたデータに対して、ジョブ実行したり、後述する第１の処理と第２の処理を切り替える処理を行う。
【００２６】
図４は、本実施形態における画像形成装置１０１のフローチャートである。具体的には、ユーザＩＤおよびデータサイズを用いたシーケンス切り替えを表したフローチャートである。
【００２７】
送受信部３３０が、文書データのヘッダ情報を受信する（Ｓ４０１）。具体的には、画像形成装置１０１のＨＤＤ２１３、画像形成装置１０１に接続されたＵＳＢメモリ、情報処理端末内のＳＭＢ共有フォルダなどに保存された文書データのパケットを受信する。また画像形成装置１０１のネットワークＩ／Ｆ２１４を通して外部端末から文書データパケットを受信することも含める。なお文書データの受信の手段については、これらの受信手段以外でも構わない。ここで、Ｓ４０１で、受信される文書データのヘッダ情報は、文書データに処理すべき処理の内容、ユーザＩＤ、文書データのデータサイズを含む。
【００２８】
画像形成装置１０１は、判定部３３１が、画像形成装置１０１の画像処理部３３３で処理可能な処理かどうかを判定する（Ｓ４０２）。具体的には、Ｓ４０１で受信したヘッダ情報に含まれる文書データに処理すべき処理の内容が、画像形成装置１０１で処理できるか判定する。尚、ここでの処理とは、例えば、プレビュー用画像データ生成や、サムネイル用画像データ生成、印刷データ生成、文書データのフォーマット変換などを表し、Ｓ４０４のジョブ実行する上で必要な処理に相当する。画像形成装置１０１のコントローラ３１０の処理が可能な場合は、送受信部３３０が、Ｓ４０１で受信した文書データの、残りの文書データを受信する（Ｓ４０３）。画像処理部３３３が、画像処理を行い（Ｓ４０４）、制御部３３５が、ジョブを実行する（Ｓ４０９）。ここで、ジョブ実行とは、具体的には、プリント、プレビュー、ＦＡＸ、データ送信などである。
【００２９】
画像形成装置１０１の画像処理部３３３で処理可能な画像処理ではない場合（Ｓ４０２）、判定部３３１が、テーブル５０１に、ユーザＩＤが一致するデータが存在するかを判定する（Ｓ４０５）。具体的には、テーブル５０１に、Ｓ４０１で受信したヘッダ情報に含まれるユーザＩＤと一致するデータが存在するかを判定する。
【００３０】
ここで、テーブル５０１について説明する。図５（ａ）は、本実施形態における画像形成装置１０１で管理するテーブルの一例を示した図である。テーブル５０１は、サーバ１０５へ送信済の文書データを示すテーブルである。サーバ１０５は、画像形成装置１０１から送られてきた文書データを保持しているとするので、テーブル５０１を用いることで、文書データがサーバ１０５で保持しているかを確認することが可能となる。また、テーブル５０１は、文書ＩＤ５０２、文書ハッシュ値５０３、ユーザＩＤ５０４、データサイズ５０５が含まれる。文書ＩＤ５０２とは、サーバ１０５で保持されている文書データを識別するためのＩＤである。文書ＩＤ５０２は、文書データを識別するためのものであればよいが、例えば、ＵＲＬなど、文書データにアクセスするための固有のＩＤでもよい。文書ハッシュ値５０３は、文書データに対するハッシュ値である。ユーザＩＤ５０４は、サーバ１０５へ文書データを送信したユーザのＩＤである。データサイズ５０５は、文書データのデータサイズである。
【００３１】
ユーザＩＤが一致するデータがテーブル５０１に存在しない場合は、サーバ１０５に処理対象の文書データが存在しないため、制御部３３５が、第１の処理を行うよう制御し（Ｓ４０６）、ジョブを実行する（Ｓ４０９）。なお、第１の処理（Ｓ４０６）は、文書データとハッシュ値とを用いた判定をせずに、サーバに文書データを送信する処理であって、図６を用いて、後述する。
【００３２】
ユーザＩＤが一致するデータがテーブル５０１に存在する場合、判定部３３１が、続いてユーザＩＤが一致するデータに対して、文書データのデータサイズが一致するデータが、テーブル５０１に存在するかを判定する（Ｓ４０７）。
【００３３】
文書データのデータサイズが一致するデータが存在しない場合、第１の処理を行うよう制御し（Ｓ４０６）、ジョブを実行する（Ｓ４０４）。文書データのデータサイズが一致するデータが存在する場合、制御部３３５が、第２の処理を行うよう制御し（Ｓ４０８）、ジョブを実行する（Ｓ４０９）。なお、第２の処理（Ｓ４０８）は、文書データとハッシュ値とを用いた判定を行い、判定結果に基づいてサーバに文書データを送信する処理であって、図７を用いて、後述する。
【００３４】
図６は、図４のＳ４０６のサブフローチャートである。
【００３５】
まず、送受信部３３０が、画像形成装置１０１は受信した文書データの部分データと、チケットをサーバ１０５へ送信する（Ｓ６０１）。ここで、チケットとは、画像変換処理の細かい内容をサーバ１０５の解釈出来る形で示したものであり、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などで記載する。しかしながら、チケットはサーバ１０５が変換内容を解読可能で、画像処理を実行できるのであれば、手段は問わない。また、Ｓ６０１は、一旦文書データを画像形成装置１０１のＨＤＤ３１３にスプールすることなく、受信した塊ごとにチャンク送信するのでもよい。
【００３６】
ハッシュ処理部３３４は、ハッシュ値の計算を開始する（Ｓ６０２）。文書データの部分データを用いて、ハッシュ値の計算を開始する。ハッシュ値の計算は、第１の部分データを用いて処理行い、その結果と第２の部分データを用いて処理行い、その結果と第３の部分データを用いて処理を行うというように、行われる。つまり、文書データの全てを保持しなくても、ハッシュ値の計算は開始できる。画像形成装置１０１は、文書データのデータを全て受信するのを待つことなく、ハッシュ値の計算を開始できる。
【００３７】
送受信部３３０は、文書データの残りのデータをサーバ１０５へ送信する（Ｓ６０３）。
【００３８】
送受信部３３０は、サーバ１０５で処理された処理済データと文書ＩＤ５０２をサーバ１０５から受信する（Ｓ６０４）。保持部３３２が、計算したハッシュ値（文書ハッシュ値５０３）と文書ＩＤ５０２をテーブル５０１に保持する（Ｓ６０５）。なお、文書ＩＤ５０２、文書ハッシュ値５０３、ユーザＩＤ５０４、文書データのデータサイズ５０５を示す。なお、文書ハッシュ値５０３はサーバ１０５に投入した文書データに対するハッシュ値であり、画像形成装置１０１はサーバ１０５に文書データが存在するか否かを、本ハッシュ値を比較することにより判断することが可能となる。
【００３９】
尚、Ｓ６０１、Ｓ６０２、Ｓ６０３は、必ずしもこの順番である必要はなく、文書データ全てを受信する前に、サーバ１０５へ文書データを送信し始めればよい。サーバ１０５へ文書データの送信タイミングを早めることで、結果として、処理済データを早めに受信可能である。また、ハッシュ値の計算の開始タイミングについても、サーバへ文書データを全て送信した後に、ハッシュ値の計算を開始してもよい。ただ、ハッシュ値の計算の仕組み上、文書データ全てを受信する前に、ハッシュ値の計算を開始することは可能である。
【００４０】
図７は、図４のＳ４０８のサブフローチャートである。
【００４１】
ハッシュ処理部３３４が、処理対象の文書データを一度スプールした上でハッシュ計算を行う（Ｓ７０１）。ハッシュ処理部３３４が、テーブル５０１の文書ハッシュ値５０３に、処理対象の文書データに対して計算したハッシュ値と同じハッシュ値が存在するデータがあるかどうかを判定する（Ｓ７０２）。テーブル５０１にハッシュ値が一致するデータが存在しないと判定された場合、送受信部３３０が、スプールした文書データとチケットをサーバ１０５に送信する（Ｓ７０３）。この時、送信する文書データは画像形成装置１０１の保持部３３２（ＨＤＤ３１３）にスプールしているため、チャンク送信はしない。送受信部３３０は、サーバ１０５からサーバで処理済データと文書ＩＤ５０２を受信すると（Ｓ７０４）、保持部３３２が、関連する属性値とセットにして文書ＩＤをテーブル５０１にセットする（Ｓ７０５）。なお、前記関連する属性値とは、Ｓ７０１にて計算した文書ハッシュ値５０３、ユーザＩＤ５０４、文書データのデータサイズ５０５を表す。
【００４２】
Ｓ７０２においてテーブル５０１に計算したハッシュ値と一致したデータが存在すると判定された場合、サーバ１０５に処理対象の文書データが存在すると判断できる。したがって、送受信部３３０は、サーバ１０５に対して、文書データとサーバ１０５に保存された文書データにアクセスする前の文書ＩＤ５０２を送信する（Ｓ７０６）。なお、文書ＩＤ５０２はサーバ１０５に保存された文書データにアクセスすることが可能な要素であれば手段は問わないため、文書データに対する固有のＵＲＩなどでアクセスしても構わない。
【００４３】
図９は、本実施形態におけるサーバ１０５のフローチャートである。
【００４４】
送受信部３２０は、画像形成装置１０１から、データを受信する（Ｓ９０１）。画像形成装置１０１が、第１の処理を実行した場合は、文書データとチケットを受信し、第２の処理を実行した場合は、文書ＩＤとチケットを受信する。判定部３２１は、受信したデータに文書ＩＤが含まれるか、すなわち、文書ＩＤを受信したかを判定する（Ｓ９０２）。文書ＩＤを受信したと判定された場合は、Ｓ９０３へ進み、文書ＩＤを受信していないと判定された場合は、Ｓ９０６へ進む。検索部３２４は、文書ＩＤを受信したと判定された場合文書ＩＤを用いて、文書データを検索する（Ｓ９０３）。画像処理部３２３は、検索された文書データに対して、画像処理を実行する（Ｓ９０４）。Ｓ９０４は、受信したチケットの内容を解析し、文書データに対して画像処理を実行する。送受信部３２０は、画像形成装置１０１に対して変換後データを送信する（Ｓ９０５）。
【００４５】
判定部３２１は、文書データを受信したかを判定する（Ｓ９０６）。文書データを受信したと判定された場合は、Ｓ９０７へ進み、文書データを受信していないと判定された場合は、終了する。文書データを受信したと判定された場合、文書データを保持部３２２（ＨＤＤ２１３）に保存し、文書ＩＤ５０２を生成する（Ｓ９０７）。画像処理部３２３は、受信したチケットの内容を解析し、文書データに対して画像処理を実行する（Ｓ９０８）。送受信部３２０は、画像形成装置１０１に対して処理済データと文書ＩＤ５０２を送信する（Ｓ９０９）。
【００４６】
本実施形態では、Ｓ７０２で、テーブルのハッシュ値と比較することで、サーバ１０５に処理対象の文書データが存在するかを判定した。しかしながら、比較の手段にハッシュ値を用いることは一例であり、手段は問わない。例えば、実際に画像形成装置１０１のＨＤＤ３１３でサーバ１０５に送信したデータをスプールしておき、それら文書データとバイナリ比較することで判断することも可能である。
【００４７】
本実施形態では、Ｓ４０５で、Ｓ４０１で受信した文書データのヘッダ情報のユーザＩＤを用いる例を説明した。しかしながら、ヘッダ情報のユーザＩＤを用いるのではなく、画像形成装置１０１のユーザＩＤ入力部を用いて、ユーザに、ユーザＩＤをさせ、入力されたユーザＩＤを用いて、判定してもよい。
【００４８】
［第２の実施形態］
第２の実施形態においては、第１の処理と第２の処理の切り替えを、文書データの部分データのハッシュ値を用いて行う例について、説明する。尚、第１の実施形態と異なる箇所だけ説明し、それ以外は、第１の実施形態と同じである。
【００４９】
図５（ｂ）は、本実施形態における画像形成装置１０１で管理するテーブル５０６の一例を示した図である。テーブル５０６は、文書ＩＤ５０７、部分ハッシュ値５０８、文書ハッシュ値５０９が含まれる。文書ＩＤ５０７とは、サーバ１０５で保持されている文書データを識別するためのＩＤである。文書ＩＤ５０７は、文書データを識別するためのものであればよいが、例えば、ＵＲＬなど、文書データにアクセスするための固有のＩＤでもよい。部分ハッシュ値５０８は、文書データの部分データのハッシュ値である。具体的には、文書データの先頭部分で、所定のデータに対してのハッシュ値である。文書ハッシュ値５０９は、文書データに対するハッシュ値である。
【００５０】
図８は、本実施形態における画像形成装置１０１のフローチャートである。本フローチャートについては、ＨＤＤ３１３に格納されたプログラムに従って、画像形成装置１０１のＣＰＵ３１１が実行することによって実現する。尚、Ｓ８０１、Ｓ８０２、Ｓ８０３以外は、第１の実施形態と同様の処理であるので、説明は省略する。
【００５１】
ハッシュ処理部３３４は、受信した文書データの部分データに対して、ハッシュ計算を行い、部分ハッシュ値を取得する（Ｓ８０１）。判定部３３１は、テーブル５０６に、Ｓ８０１で計算したハッシュ値と一致するデータがあるかを判定する（Ｓ８０２）。Ｓ８０２でＹＥＳと判定された場合は、第２の処理（Ｓ４０８）に進み、ＮＯと判定された場合は、第１の処理（Ｓ４０６）に進む。Ｓ８０１で計算した部分ハッシュ値を、テーブル５０６に保持する（Ｓ８０３）。Ｓ８０３では、文書ＩＤ、文書ハッシュ値と関連付けて、部分ハッシュ値を保持する。
【００５２】
＜変形例＞
第２の実施形態では、部分ハッシュ値だけを用いて、第１の処理と第２の処理を切り替えるようにした。変形例では、第１の実施形態と第２の実施形態とを組み合わせて、切り替える。具体的には、図４のＳ４０５のユーザＩＤ判定と、Ｓ４０７のデータサイズ判定とがともにＹＥＳであって、かつ、図８のＳ８０２の部分データハッシュ値判定がＹＥＳの場合のみ、第２の処理を実行する。そして、図４のＳ４０５のユーザＩＤ判定、Ｓ４０７のデータサイズ判定、図８のＳ８０２の部分データハッシュ値判定のいずれか一つでもＮＯの場合は、第１の処理を実行する。図４のＳ４０５のユーザＩＤ判定、Ｓ４０７のデータサイズ判定、図８のＳ８０２の部分データハッシュ値判定の判定順序については、どの順で判定しても構わない。画像形成装置１０１が保持するテーブルは、文書ＩＤ、部分ハッシュ値、文書ハッシュ値、ユーザＩＤ、データサイズが含まれる。
【００５３】
［第３の実施形態］
第３の実施形態においては、サーバ１０５のロケーションに応じて、第１の処理と第２の処理を切り替える例を示す。
【００５４】
図１０は、本実施形態における画像形成装置１０１のフローチャートである。本フローチャートについては、ＨＤＤ３１３に格納されたプログラムに従って、画像形成装置１０１のＣＰＵ３１１が実行することによって実現する。尚、Ｓ１００１、Ｓ１００２以外は、第１の実施形態と同様の処理であるので、説明は省略する。
【００５５】
制御部３３５が、サーバ１０５のＩＰアドレスと画像形成装置１０１のＩＰアドレスを検索し、取得する（Ｓ１００１）。判定部３３１が、ここで取得したＩＰアドレスを比較し（Ｓ１００２）、同じサブネットである場合、通信がボトルネックになる可能性が低い。したがって、第１の処理（Ｓ４０６）へ進む。一方で同じサブネットでない場合、通信がボトルネックになる可能性が高い。したがって、第２の処理（Ｓ４０８）へ進む。
【００５６】
本実施例においてはサーバ１０５と画像形成装置１０１のサブネットを比較することによって、共通のネットワーク環境か否かを判断し、第１の処理か第２の処理かを切り替える例を示した。しかしながら、サーバ１０５のロケーションを判断する手段については問わない。例えば、画像形成装置１０１がサーバ１０５とのＲＴＴ（Ｒｏｕｎｄ−Ｔｒｉｐ  ｄｅｌａｙ  Ｔｉｍｅ）を計測し、一定の閾値を設けることによって、第１の処理と第２の処理を切り替えてもよい。
【００５７】
［第４の実施形態］
第４の実施形態においては、画像形成装置１０１が実行するジョブ種に応じて、第１の処理と第２の処理を切り替える例を示す。
【００５８】
図１１は、本実施形態における画像形成装置１０１のフローチャートである。本フローチャートについては、ＨＤＤ３１３に格納されたプログラムに従って、画像形成装置１０１のＣＰＵ３１１が実行することによって実現する。尚、Ｓ１１０１以外は、第１の実施形態と同様の処理であるので、説明は省略する。
【００５９】
判定部３３１が、ジョブに対してＳｃａｎが含まれるジョブか否かを判定する（Ｓ１１０１）。ここで、Ｓｃａｎが含まれるジョブとは、たとえばＣｏｐｙジョブなど、画像形成装置１０１のスキャナ３０２を用いたジョブを指す。また、Ｓｃａｎが含まれないジョブとは、ＨＤＤ３１３に保存された文書データに対して行うジョブや、ネットワークから投入されるジョブなど画像形成装置１０１のスキャナ３０２を用いないジョブを指す。Ｓｃａｎが含まれるジョブの場合、入力の文書データがバイナリレベルで一致することはあり得ない。したがって、第１の処理（Ｓ４０６）へ進む。一方でＳｃａｎが含まれないジョブの場合、サーバ１０５に投入された文書データと一致する文書データが存在する可能性があるため、第２の処理（Ｓ４０８）へ進む。
【００６０】
［第５の実施形態］
第５の実施形態においては、画像形成装置１０１が文書データを保存するための保存領域に応じて、第１の処理と第２の処理を切り替える例を示す。尚、Ｓ１２０１、Ｓ１２０２以外は、第１の実施形態と同様の処理であるので、説明は省略する。
【００６１】
図１２は、本実施形態における画像形成装置１０１のフローチャートである。本フローチャートについては、ＨＤＤ３１３に格納されたプログラムに従って、画像形成装置１０１のＣＰＵ３１１が実行することによって実現する。
【００６２】
判定部３３１が、画像形成装置１０１に補助記憶領域が存在するか否かを判定する（Ｓ１２０１）。画像形成装置１０１は、ＨＤＤ３１３が存在しない機器構成であっても構わない。したがって、前記判断を行うのだが、ここでの補助記憶領域とは、文書データを一旦保存するための領域であり、内蔵のＨＤＤ３１３だけに限定する必要はない。したがって、拡張Ｉ／Ｆ３１８に接続されたＵＳＢや、外付けＨＤＤ、ＳＤカードなど、文書データを保存できる領域であれば手段は問わない。ここで補助記憶領域が存在しない場合、文書データをスプールしてハッシュ値を計算することが出来ないため、第１の処理（Ｓ４０６）へ進む。一方で、スプール領域が存在する場合、判定部３３１が、画像形成装置１０１のスプール領域に文書データをスプールするために十分な領域が存在するか否かを判定する（Ｓ１２０２）。ここで、十分な領域とは、一般的な文書データを一時的に保存しておくためだけに必要な領域であり、たとえば１ＧＢなどあらかじめシステム上閾値を設定しても構わない。また拡張Ｉ／Ｆ３１８に接続されている機器の場合、書き込みが出来ない補助記憶媒体の場合は、文書データをスプールすることが出来ないため、十分な領域が存在しないと判断できる。ここで十分な領域が存在しない場合、文書データに対してハッシュ計算が出来ないため、第１の処理（Ｓ４０６）へ進む。一方で、十分な領域が存在する場合、文書データをスプールしてハッシュ計算をすることが可能なため、第２の処理（Ｓ４０８）へ進む。
【００６３】
＜その他の変形例＞
以上本発明にかかる実施形態を説明したが、画像形成装置は、装置上で動作するコンピュータプログラムで実現できるものである。よって、本発明はコンピュータプログラムをその範疇とすることは明らかである。また、通常、コンピュータプログラムは、ＣＤＲＯＭ等のコンピュータ読み取り可能な記憶媒体に格納されており、それをコンピュータの対応するドライブにセットしてシステムにコピーやインストール処理することで実行可能となる。よって、本発明は当然にそのようなコンピュータ可読記憶媒体をもその範疇とすることも明らかである。また、図４、６、７、８、１０、１１、１２のフローチャートは、ＨＤＤ３１３に格納されたプログラムに従って、画像形成装置１０１のＣＰＵ３１１が実行することによって実現してもよい。図９のフローチャートは、ＨＤＤ２１３に格納されたプログラムに従って、サーバ１０５のＣＰＵ２１１が実行することによって実現してもよい。
【００６４】
以上説明したように、画像形成装置内の文書データ保存領域の容量、文書データの類似性、サーバのロケーション、ジョブの性質などに応じて、ハッシュ比較処理を実行するかを決定することで、サーバへの処理依頼時のパフォーマンス低下を軽減することできる。
【図１】
2015231218.tif 000003
【図２】
2015231218.tif 000004
【図３】
2015231218.tif 000005
【図４】
2015231218.tif 000006
【図５】
2015231218.tif 000007
【図６】
2015231218.tif 000008
【図７】
2015231218.tif 000009
【図８】
2015231218.tif 000010
【図９】
2015231218.tif 000011
【図１０】
2015231218.tif 000012
【図１１】
2015231218.tif 000013
【図１２】
2015231218.tif 000014