(57)【要約】【課題】  完成したページの印刷データをプリンターへ順次送信し印刷するシステムにおいて、不完全な印刷データを検知し、不完全な印刷物を印刷物として出力しないことを目的とする。【解決手段】  文書データを印刷データに変換するプリントサーバーと、前記印刷データを用いて印刷処理を実行する画像処理装置と、を有する情報処理システムであって、前記プリントサーバーが、前記印刷データで構成される印刷データに基づいて第一のハッシュ値を算出する第一の算出手段と、前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する第二の算出手段と、前記第一のハッシュ値と前記第二のハッシュ値とを比較する比較手段と、前記比較手段によって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセル手段と、を有する。【選択図】  図１０
2019091379.tif 000002
【特許請求の範囲】
【請求項１】
文書データを印刷データに変換するプリントサーバーと、
前記印刷データを順次取得して印刷処理を実行する画像処理装置と、
を有する情報処理システムであって、
前記プリントサーバーが、前記印刷データに基づいて第一のハッシュ値を算出する第一の算出手段と、
前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する第二の算出手段と、
前記第一のハッシュ値と前記第二のハッシュ値とを比較する比較手段と、
前記比較手段によって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセル手段と、
を有する情報処理システム。
【請求項２】
前記情報処理システムは、
前記比較手段によって同一であると判定された場合、前記印刷データを用いて印刷処理を実行する実行手段を更に有する、請求項１に記載の情報処理システム。
【請求項３】
前記第一の算出手段は、
前記印刷データに基づいて算出された第一のハッシュ値を、前記印刷データの取得先である印刷データＵＲＬが記載されたインデックスファイルに記載する請求項１または２に記載の情報処理システム。
【請求項４】
前記第二の算出手段は、
前記インデックスファイルに記載された印刷データＵＲＬによって特定された印刷データを取得し、取得した印刷データを用いて前記第二のハッシュ値を算出する請求項３に記載の情報処理システム。
【請求項５】
前記第一のハッシュ値は、
前記インデックスファイルに前記印刷データＵＲＬを記載する際に加算して、前記インデックスファイルに記載されるハッシュ値であり、
前記第二のハッシュ値は、
前記印刷データを取得した際に加算されるハッシュ値である請求項３または４に記載の情報処理システム。
【請求項６】
前記情報処理システムは、
前記印刷データと、前記印刷データの取得先である印刷データＵＲＬが記載されたインデックスファイルとを格納するストレージサーバーを更に含み、
前記画像処理装置が前記ストレージサーバーから印刷データを取得するための第一の通信ストリームと、
前記画像処理装置が有し、前記印刷処理を実行するコントローラに対して印刷データを送信する第二の通信ストリームと、を一つのストリームとして維持する請求項１乃至５のいずれか一項に記載の情報処理システム。
【請求項７】
前記比較手段によって前記第一のハッシュ値と前記第二のハッシュ値とが同一でないと判定された場合、
前記キャンセル手段によって前記印刷処理をキャンセルにした後、前記印刷データの取得先である印刷データＵＲＬが記載されたインデックスファイルを再度取得する請求項１乃至６のいずれか一項に記載の情報処理システム。
【請求項８】
前記情報処理システムは、
前記印刷データが、印刷ジョブを構成する印刷データファイルのうち、初回データファイルであるかを判定する判定手段を更に有し、
前記判定手段によって前記印刷データファイルが初回データファイルでないと判定された後、
前記比較手段によって前記第一のハッシュ値と前記第二のハッシュ値とが同一でないと判定された場合は、
前記第一の通信ストリームに存在する前記印刷データを削除する請求項７に記載の情報処理システム。
【請求項９】
前記判定手段によって前記印刷データファイルが初回データファイルであると判定された後、
前記プリントサーバーが、前記初回データファイルに基づいて算出した第一のハッシュ値と、
前記画像処理装置が、前記初回データファイルを用いて算出した第二のハッシュ値と、を比較し、
比較した結果、同一であると判定された場合は、
前記初回データファイルを、前記印刷処理を実行するコントローラに送信する請求項８に記載の情報処理システム。
【請求項１０】
文書データを印刷データに変換するプリントサーバーと、
前記印刷データを順次取得して印刷処理を実行する画像処理装置と、
を有する情報処理システムの制御方法であって、
前記プリントサーバーが、前記印刷データに基づいて第一のハッシュ値を算出する第一の算出ステップと、
前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する第二の算出ステップと、
前記第一のハッシュ値と前記第二のハッシュ値とを比較する比較ステップと、
前記比較ステップによって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセルステップと、
を有する情報処理システムの制御方法。
【請求項１１】
印刷データを順次取得して印刷処理を実行する画像処理装置の制御方法であって、
前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する算出ステップと、
文書データを前記印刷データに変換するプリントサーバーから受信した第一のハッシュ値と、前記第二のハッシュ値とを比較する比較ステップと、
前記比較ステップによって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセルステップと、
を有する画像処理装置の制御方法。
【請求項１２】
コンピュータを、
印刷データを順次取得して印刷処理を実行する画像処理装置として機能させるためのプログラムであって、
前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する算出手段と、
文書データを前記印刷データに変換するプリントサーバーから受信した第一のハッシュ値と、前記第二のハッシュ値とを比較する比較手段と、
前記比較手段によって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセル手段と、
を有する画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードした印刷データをプリンターで印刷する情報処理システム、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドシステム上の仮想サーバーを用いて、クラウドサービスを提供するビジネスが展開されている。サービス内容としては例えば、データをファイル形式に保存するストレージサービスや、データベース機能を提供するデータベースサービスがある。
【０００３】
また、印刷システムを実現する際にも、クラウドシステム上の仮想サーバーを用いてプリントサービスやデータ変換サービスを提供する形態がある。その場合、顧客ごとにハードウェアのプリントサーバーを管理する必要がないというメリットがある。また、仮想サーバーの負荷に応じてコンピューティング・リソースを追加することが容易に行えるメリットがある。
【０００４】
このクラウドサービスの普及に伴い、プリンターがプリントサーバーからインターネットを介して印刷データを取得し、印刷を行うプルプリント環境が普及しつつある。プルプリント環境では、多くのコンピューティング・リソースを用いて文書データのデータ処理をクラウドシステムで分散処理するため、多くのクライアントからの要求を同時に処理することができる。クラウドシステムで印刷データを管理するためには、多種多様のプリンターが解釈可能なデータフォーマットに変換するデータ変換機能がクラウドシステム側で必要となる。このデータ変換機能は、クライアント端末のデータ変換ドライバーでデータ変換を行う従来の機能を、クラウドシステム上で実現したものである。特許文献１では、文書の種類ごとのデータ変換処理を異なる複数のサーバーで行うジョブレンダリングシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５０９９６５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
入稿された文書データのファーストプリントを早くするために、印刷サーバーは全ての印刷データの完成を待たずに、完成したページの印刷データをプリンターへ順次送信し印刷させる形態が考えられる。具体的には、分割生成された１つの印刷データをプリンターが随時ダウンロードして印刷を実行する。
【０００７】
この際、プリンターに印刷データを順次送信する場合や、ストレージサーバーから印刷データを取得する場合などに、印刷データの一部が不完全なものになる可能性がある。ここでの不完全な状態とは、一部の文字欠け、描画がずれる等の状態を示す。印刷物の印刷設定において、Ｎ−ｕｐや両面印刷、ステイプル印刷等、全頁が所望の状態で印刷される設定が数多くあり、一頁でも不完全なページが混ざると、印刷物としては不完全なものとなる。
【０００８】
印刷データの不完全を検知する手段として、一般的にネットワーク転送路であればチェックサム（誤り検出符号の一種）等を使用すれば検知することは可能である。しかし、完成したページの印刷データがプリンターへ順次送信し印刷される形態では、全印刷データを受信した後に検知しても、プリンターでは印刷処理が開始されているため不完全な印刷物が出力されてしまう。
【０００９】
本発明は、完成したページの印刷データをプリンターへ順次送信し印刷するシステムにおいて、不完全な印刷データを検知し、不完全な印刷物を印刷物として出力しないことを目的とする。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するために、文書データを印刷データに変換するプリントサーバーと、前記印刷データを用いて印刷処理を実行する画像処理装置と、を有する情報処理システムであって、前記プリントサーバーが、前記印刷データで構成される印刷データに基づいて第一のハッシュ値を算出する第一の算出手段と、前記画像処理装置が、前記印刷データを用いて第二のハッシュ値を算出する第二の算出手段と、前記第一のハッシュ値と前記第二のハッシュ値とを比較する比較手段と、前記比較手段によって同一でないと判定された場合、前記印刷データを用いた印刷処理をキャンセルとするキャンセル手段と、を有する。
【発明の効果】
【００１１】
本発明によれば、完成したページの印刷データをプリンターへ順次送信し印刷するシステムにおいて、不完全な印刷データを検知し、不完全な印刷物を印刷物として出力しないことができる。
【図面の簡単な説明】
【００１２】
【図１】ネットワーク構成を示すブロック図
【図２】各種サーバー１０１〜１０３、各種装置１０４、１０５のハードウェア構成図
【図３】情報処理システムの各種サーバー、装置の動作を示すイメージ図
【図４】プリントサーバー１０１とプリンターが有する機能を示すブロック図
【図５】Ｗｅｂブラウザ３０２のＷｅｂ画面の一例を示す図
【図６】プリントサーバー１０１、またはプルプリントアプリケーション３０３で管理される各種データ
【図７】インデックスファイル７０１の一例を示す図
【図８】プルプリントアプリケーションの通信方式の概念図
【図９】プリントサーバーの印刷データ変換処理フロー
【図１０】プルプリントアプリケーション３０３の印刷処理フロー
【図１１】プリンターＡ１０４、１０５の印刷処理フロー
【図１２】プルプリントアプリケーション３０３の印刷処理の概念図
【図１３】プルプリントアプリケーション３０３の初回データファイル取得時の印刷処理フロー
【図１４】プルプリントアプリケーション３０３の後続データファイル取得時の印刷処理フロー
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１４】
＜ネットワーク構成＞
図１は、本発明の実施形態に係る情報処理システムのネットワーク構成を示す図である。図において、プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０はローカルネットワーク１０７を介して複数台接続されていることを想定している。今回、図１においてプリンターが３台、クライアント端末が２台である場合を示しているが、それぞれの台数はこれに限定されない。
【００１５】
プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０は、ローカルネットワーク１０７を介してインターネットワーク１０８にアクセスし、プリントサーバー１０１、ストレージサーバー１０２、認証サーバー１０３にアクセスする。プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０は有線または無線ＬＡＮを介してネットワークに接続する。本実施例では、プリンターＡ１０４とクライアント端末Ａ１０９は、無線ＬＡＮターミナル１０６を介してネットワークに接続することを想定している。一方、プリンターＢ１０５とクライアント端末Ｂ１１０は、有線でネットワークに接続されているものとする。
【００１６】
無線ＬＡＮターミナル１０６は、一般的なネットワーク・ルーター機能を有した無線ＬＡＮの親機であり、家庭内や事務所などの中で無線ＬＡＮを提供している。ネットワーク１０７〜１０８はインターネット等のＬＡＮ、ＷＡＮなど、データの送受信が可能で通信ネットワークであればどのような形態でもよい。また、クライアント端末Ａ１０９とクライアント端末Ｂ１１０から各種サーバー１０１〜１０３への通信手段、プリンターＡ１０４とプリンターＢ１０５から各種サーバー１０１〜１０３への通信手段は異なっていてもよい。また、プリンターＡ１０４とプリンターＢ１０５は少なくとも印刷機能を有する画像処理装置であり、例えばＭＦＰ等が挙げられる。
【００１７】
クライアント端末Ａ１０９とクライアント端末Ｂ１１０は例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）、プログラムの実行環境が内蔵された携帯電話等が挙げられる。クライアント端末Ａ１０９とクライアント端末Ｂ１１０では、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  ＷｉＤｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。以降の説明では、プリンターＡ１０４とクライアント端末Ａ１０９を例に説明するが、特に断りがない限り、プリンターＢ１０５とクライアント端末Ｂ１１０の場合、またはそれ以外のプリンターとクライアント端末との組み合わせでも同様である。
【００１８】
プリントサーバー１０１は、印刷する文書を識別する識別情報とプリンターＡ１０４を識別する識別情報を、印刷リクエストと共にクライアント端末Ａ１０９のＷｅｂブラウザから受信する。そして、印刷指示を行う印刷コマンドを含めたレスポンスをクライアント端末Ａ１０９のＷｅｂブラウザに送信する。クライアント端末Ａ１０９のＷｅｂブラウザは、プリンターＡ１０４に対し印刷コマンドを発行する。プリンターＡ１０４は、クライアント端末Ａ１０９のＷｅｂブラウザから印刷コマンドを受信すると、ストレージサーバー１０２のＵＲＬを記載した後述のインデックスファイル７０１、７０２を取得する。プリンターＡ１０４は、インデックスファイル７０１、７０２のＵＲＬにアクセスし、ストレージサーバー１０２から印刷データを取得し印刷を行う。
【００１９】
認証サーバー１０３は、プリントサーバー１０１にアクセスするためのユーザー名、パスワード、認証トークン、認可トークンなどの認証情報を保持する。
【００２０】
＜プリントサーバーのハードウェア構成＞
図２（ａ）は、プリントサーバー１０１、ストレージサーバー１０２、認証サーバー１０３のハードウェア構成の一例を示す図である。特に断らない限り、本発明の機能が実行可能であるならば単体の機器であっても、複数の機器からなるシステムであっても、本発明が適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行可能であるならば、ＬＡＮ、ＷＡＮ等のネットワークを介して接続が為され、処理が行われるシステムであっても本発明を適用できることは言うまでもない。本実施例ではシステムバス２１９により各構成要素が接続されているものとして説明する。
【００２１】
ＣＰＵ２２０は情報処理装置の制御装置であり、記憶装置２２４に格納されているプリントサーバーのアプリケーションプログラム、オペレーティングシステム等を実行する。また、ＣＰＵ２２０はＲＡＭ２２２に、プログラム実行に必要な情報、ファイル等を一時的に格納する制御を行う。また、ＣＰＵ２２０はプリントサーバープログラムにおける印刷データへの変換処理等を実行する。
【００２２】
ＲＯＭ２２１は記憶手段であり、内部には基本Ｉ／Ｏプログラム等のプログラム、印刷データへのデータ変換の際に使用するフォントデータ、印刷処理、データ変換処理に必要な各種データを記憶する。ＲＡＭ２２２は一時記憶手段であり、ＣＰＵ２２０の主メモリやワークエリア等として機能する。記憶装置２２４は外部記憶手段の一つで、大容量メモリとして機能し、アプリケーションプログラム、ＯＳ等を格納している。ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２２３は、ネットワークインターフェースカード（ＮＩＣ）であり、ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２２３を介して外部装置とのデータのやり取りを行う。後述のＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２３４も同様である。
【００２３】
＜プリンターのハードウェア構成＞
図２ｂは、プリンターＡ１０４、プリンターＢ１０５のハードウェア構成図である。ハードウェアの各構成要素は、システムバス２３０に接続されている。ここでもプリンターＡ１０４を例に説明するが、プリンターＢ１０５の場合でも同様である。
【００２４】
ＣＰＵ２３１は装置全体の制御を行い、システムバス２３０に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２３２に記憶された制御プログラム、あるいはディスクコントローラ（ＤＫＣ２３５）等を介して接続された外部メモリ２３６に記憶された制御プログラムやリソースデータ（資源情報）等に基づく。
【００２５】
ＲＡＭ２３３はＣＰＵ２３１の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００２６】
記憶装置２４０は大容量メモリとして機能する外部記憶手段である。操作パネル２３９（操作部）は画面を表示、または、画面を介したユーザーの操作指示を受け付ける。また、プリンターＡ１０４の動作モード等の設定やプリンターＡ１０４の動作状況の表示、印刷するコンテンツデータを指定する等の操作を行うためのボタンおよび液晶パネル等の表示部も配置される。
【００２７】
プリントエンジン２３８は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方（熱転写）方式等が挙げられる。
【００２８】
ラスタコントローラ２３７は、ＰＤＬ形式の印刷データを画像データに変換するコントローラである。機器Ｉ／Ｆ２４１は、ＵＳＢ等で接続可能な外部機器との接続Ｉ／Ｆである。
【００２９】
＜情報処理システムのシステム構成＞
図３の情報処理システムの構成図を用いて、各種装置の動作について説明する。これらの動作は、各種装置のメモリに保存されたプログラムをＣＰＵが実行することにより実現される。
【００３０】
プリントサーバー１０１は文書データの取得先を示すＵＲＬを作成し、作成したＵＲＬを他サーバーに送信する。作成されたＵＲＬは、ストレージサーバー１０２への文書データのアップロード先を示す。プリントサーバー１０１はユーザーからの印刷リクエストを受信したことに伴い、そのＵＲＬに対して印刷対象の文書データがアップロードする。プリントサーバー１０１は、アップロードの完了の旨を他サーバーから受信すると、入稿された文書データの文書情報６２０をデータベース３０１に格納する。
【００３１】
また、プリントサーバー１０１は、Ｗｅｂブラウザ３０２からの印刷リクエストとともに受信した文書ＩＤ６２１で特定される文書データをストレージサーバー１０２から取得し、印刷データに変換する。印刷データを作成するとプリントサーバー１０１は、ストレージサーバー１０２上のダウンロードＵＲＬを作成する。プリントサーバー１０１は、インデックスファイルにそのダウンロードＵＲＬを記載し、印刷データをダウンロードＵＲＬにアップロードする。そして、インデックスファイルをストレージサーバー１０２にアップロードする。
【００３２】
プリントサーバー１０１は、Ｗｅｂブラウザ３０２からのリクエストに含まれる認証トークンを認証サーバー１０３に送信し、認証サーバー１０３が認証トークンを検証する。リクエストに認証トークンが存在しない場合、プリントサーバー１０１はリクエストを認証サーバー１０３にリダイレクトさせる。そして認証サーバー１０３は、Ｗｅｂブラウザ３０２にログイン画面５００を送信する。ログイン画面５００の一例を図５（ａ）に示す。
【００３３】
認証サーバー１０３は、ログイン画面５００を介して入力されたユーザー名とパスワードを、認証サーバー１０３が保持するユーザー名とパスワードと照合して検証する。検証が成功すると、認証サーバー１０３はユーザー情報に紐づく認証トークンを発行し、Ｗｅｂブラウザ３０２に送信する。
【００３４】
Ｗｅｂブラウザ３０２は、認証トークンを含めたリクエストをプリントサーバー１０１に送信し、プリントサーバー１０１からのレスポンスに基づいてＷｅｂ画面を表示する。Ｗｅｂ画面の一例を図５（ｂ）〜（ｅ）に示す。Ｗｅｂ画面の詳細は後述する。
【００３５】
認証サーバー１０３が発行する認可トークンは、プルプリントアプリケーション３０３がプリントサーバー１０１にアクセスするためのトークンである。認証サーバー１０３は、プルプリントアプリケーション３０３からプリントサーバー１０１へのリクエストに含まれる認可トークンを検証する。
【００３６】
プルプリントアプリケーション３０３は、認可トークンを含むリクエストをプリントサーバー１０１に送信し、インデックスファイルを取得する。プルプリントアプリケーション３０３はそのインデックスファイルに従い、ストレージサーバー１０２から印刷データを取得し、その印刷データを印刷装置制御部３０４に送信する。印刷装置制御部３０４は印刷データを用いて印刷を実行する。以上が情報処理システムのシステム構成図とその動作である。
【００３７】
＜プリントサーバーのソフトウェア構成＞
図４（ａ）は、本発明の実施形態に係るプリントサーバー１０１のソフトウェア構成図である。なお、プリントサーバー１０１の各種機能は図２（ａ）で示した記憶装置２２４に記憶されており、ＣＰＵ２２０によってＲＡＭ２２２にロードされ実行される。図４（ａ）を用いて、プリントサーバー１０１が外部からのリクエストを受信した際の、プリントサーバー１０１の機能について説明する。
【００３８】
プリントサーバー１０１は、外部リクエストを受信するＷｅｂサーバー４０１と、文書や印刷ジョブ、プリンター情報を管理し、印刷処理の制御を行う制御サーバー４０２、文書データを印刷データに変換する変換サーバー４０３を有する。各種サーバー（４０１、４０２、４０３）はそれぞれ独立したプログラムであり、別の情報処理装置に配置することも可能である。これらのプログラムはそれぞれネットワークに繋がった情報処理装置に配置し、それぞれのプログラム間で通信を行う。今回は、これらのプログラムを同じ情報処理装置に配置されているものとして説明する。また、それぞれのサーバーは単体構成または、冗長構成をとるように配備されるので、１つのサーバーに対し複数の情報処理装置で構成されることもある。
【００３９】
Ｗｅｂサーバー４０１は、文書データの入稿、または印刷リクエスト、印刷データ取得リクエストを受信する機能であるリクエスト受付部４０４と、認証サーバー問い合わせ部４０５を有する。認証サーバー問い合わせ部４０５は、リクエスト受付部４０４がリクエストを受信した際に、リクエストに含まれるトークンの検証リクエストを認証サーバー１０３に送信する機能である。
【００４０】
制御サーバー４０２は、印刷ジョブ管理部４０６とプリンター管理部４０７を有する。印刷ジョブ管理部４０６は、受信した文書データの入稿リクエストに基づいて文書情報６２０を作成し、データベース３０１に保存する機能である。また、印刷ジョブ管理部４０６は、受信した印刷リクエストに基づいてジョブ情報６００を作成し、データベース３０１に保存する機能でもある。
【００４１】
プリンター管理部４０７は、プリンターＡ１０４に関する情報（プリンター情報６１０）を管理し、印刷ジョブ管理部４０６に対してプリンター情報６１０を提供する機能である。
【００４２】
変換サーバー４０３は、印刷データ管理部４０８とデータ変換部４０９を有する。印刷データ管理部４０８は、制御サーバー４０２からの印刷データ変換指示に基づいて、ストレージサーバー１０２から文書データをダウンロードする機能である。データ変換部４０９は、ダウンロードされた文書データを印刷データに変換する機能である。印刷データ管理部４０８は、データ変換部４０９で作成された印刷データファイルを、生成が完了した印刷データファイル数分の印刷データファイルＵＲＬをストレージサーバー１０２に作成し、そのＵＲＬを記載したインデックスファイルを作成する機能でもある。以上が、プリントサーバー１０１が有する機能と、各種機能の動作である。
【００４３】
本発明における各種サーバー１０１〜１０３はクラウドコンピューティングであるものとし、各種サーバーは処理負荷や障害発生に応じて自動的にサーバーの台数を増減させる（オートスケール）機能が実現可能である。例えば、アクセス数や、メッセージキューサービスに存在するリクエスト数などの状況に応じて、各種サーバー１０１〜１０３、または特定のサーバーだけを自動的に増減させることができる。
【００４４】
今回は、Ｗｅｂサーバー４０１と制御サーバー４０２と変換サーバー４０３を、プリントサーバー１０１が有する機能であるものとして説明した。しかし、その形態に限らず、Ｗｅｂサーバー４０１と制御サーバー４０２と変換サーバー４０３夫々が実現する機能を、独立した別々のサーバー内でそれぞれ実現させてもよい。
【００４５】
＜プリンターのソフトウェア構成＞
図４（ｂ）を用いて、プリンターＡ１０４とプリンターＢ１０５のソフトウェア構成図を説明する。プリンターＡ１０４の各種機能は記憶装置２４０に記憶されており、ＣＰＵ２３１によってＲＡＭ２３３にロードされ実行される。ここでは、プリンターＡ１０４が、外部リクエストを受信した際のプリンターＡ１０４の各機能の動作について説明する。
【００４６】
プルプリントアプリケーション３０３は、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）４１０で動作するアプリケーションソフトである。プルプリントコントローラ４１４は、プルプリントアプリケーション３０３全体の動作管理を行う。各部への動作指示等はプルプリントコントローラ４１４を介して実行される。
【００４７】
リクエスト受信部４１１は、Ｗｅｂブラウザ３０２から印刷リクエストを受信する機能であり、受信した印刷リクエストに基づいて印刷リクエスト情報を印刷データ取得部４１２に送信する。印刷リクエスト情報にはジョブＩＤ６０１とプリンターＩＤ６０５が含まれる。印刷データ取得部４１２は、印刷リクエスト情報に基づいて印刷データの取得を取得したり、認可トークンを印刷キュー情報６３０として管理する機能である。
【００４８】
認証問い合わせ部４１３は、認証サーバー１０３が認めるクライアント証明書を管理する機能である。その証明書を用いて認証問い合わせ部４１３は、認可サーバー問い合わせ部４０５から認可トークンを取得する。
【００４９】
印刷制御部４１５は印刷中、仮想マシン４１０を介して印刷装置制御部３０４に印刷ジョブの状態を問い合わせる機能である。印刷ジョブ送信部４１６は、印刷データ取得部４１２から取得した印刷データを後述の送信バッファストリームに保持し、その印刷データを印刷装置制御部３０４に送信する機能である。印刷装置制御部３０４は、印刷データを用いて印刷を実行するコントローラである。
【００５０】
ネットワークインタフェース部４１７は、印刷装置制御部３０４と印刷ジョブ送信部４１６との間の印刷データの受送信を仲介する機能である。以上が、プリンターＡ１０４が有する機能と、各種機能の動作である。
【００５１】
＜各種情報について＞
図６を用いて各種サーバーで管理される情報について説明する。
【００５２】
ジョブ情報６００は印刷ジョブ管理部４０６によって作成され、データベース３０１で管理される。また、ジョブ情報６００は次のような情報を含む。それは、印刷ジョブを識別するジョブＩＤ６０１、文書情報６２０の文書ＩＤ６２１に対応した文書ＩＤ６０２、認証トークンに紐づくユーザー名６０３、印刷リクエストの受付日時６０４、プリンターＡ１０４の識別子であるプリンターＩＤ６０５、インデックスファイルＵＲＬ６０６、変換ステータス６０７である。変換ステータス６０７の初期値は「未処理」であり、制御サーバー４０２によって「変換開始」、「変換完了」、「変換エラー」に更新される。
【００５３】
プリンター情報６１０はプリンター管理部４０７で管理される。また、プリンター情報６１０は次のような情報を含む。それは、プリンター名６１１、プリンターＩＤ６０５に対応したプリンターＩＤ６１２、Ｗｅｂブラウザ３０２がプリンターＡ１０４に印刷リクエストを送信するためのプリンターＵＲＬ６１３、構成情報６１４、印刷データの扱える圧縮方式６１５である。プリンターＩＤ６１２は、Ｗｅｂブラウザ３０２で表示される印刷設定画面５２０のプリンター名５２４に紐づく。また、構成情報６１４は印刷設定画面５２０の印刷設定５２１に対応する、プリンターＡ１０４の機能を示すものである。たとえば、両面機能、カラー機能等がある。
【００５４】
文書情報６２０はデータベース３０１で管理される。また、文書情報６２０は次のような情報を含む。それは、文書ＩＤ６２１、文書名６２２、認証トークンに紐づくユーザー名６２３、ストレージサーバー１０２に文書をアップロードするための文書ＵＲＬ６２４、ステータス６２５である。文書情報６２０は印刷ジョブ管理部４０６によって作成され、データベース３０１に保存される。文書ＩＤ６２１は、Ｗｅｂブラウザ３０２に表示される文書一覧画面５１０の文書名５１２に対応した、文書情報６２０の文書名６２２に紐づく。
【００５５】
文書ＵＲＬ６２４には文書ＩＤ６２１が含まれる。また、ステータス６２５は「受信中」「待機中」「印刷待ち」「印刷中」「正常終了」「エラー終了」「不明終了」の各ステータスを示す情報である。
【００５６】
プリントキュー情報６４０は印刷ジョブ管理部４０６で管理される。また、プリントキュー情報６４０はプリントＩＤ６４１と、ジョブＩＤ６０１を管理するジョブリスト６４２を含む。
【００５７】
印刷キュー情報６３０は印刷データ取得部４１２で管理される。また、印刷キュー情報６３０は次のような情報を含む。ジョブＩＤ６３１、インデックスファイルＵＲＬ６３２、認可トークン６３３、プリンターＩＤ６３４、印刷データＵＲＬリスト６３５である。また、印刷データＵＲＬリスト６３５は、印刷データＵＲＬ６３６、ハッシュ値６３７、合計ハッシュ値６３８をリスト形式で保持している。以上が各種情報に関する説明である。
【００５８】
＜インデックスファイル＞
図７を用いてインデックスファイル７０１について説明する。上記で示した通り、インデックスファイル７０１は印刷データＵＲＬ７０４とハッシュ値７０５を含む。ハッシュ値７０５は、印刷データＵＲＬ７０４に対応する印刷データファイルをハッシュ計算した値である。
【００５９】
図７のインデックスファイル７０１のｅｎｄフラグ７０３がｆａｌｓｅである場合は、プリントサーバー１０１でおける印刷データの変換処理が途中であり、印刷データファイルＵＲＬがさらに追加されることを示す。その場合、印刷データ取得部４１２は、印刷データファイルが記載されているＵＲＬ分の印刷データファイルの取得処理が終わり次第、再度インデックスファイルＵＲＬ６３２をストレージサーバー１０２から取得する。その際のインデックスファイル７０１の一例を図７（ａ）に示す。
【００６０】
ｅｎｄフラグ７０３がｔｒｕｅである場合は、印刷データをすべて取得したことになり、印刷ジョブ送信部４１６は、後述のプリンター通信ストリーム８０２をクローズする。その際のインデックスファイル７０１の一例を図７（ｂ）に示す。以上がインデックスファイル７０１に関する説明である。
【００６１】
＜プルプリントアプリケーション３０３の通信方式の仕組み＞
図８を用いて、通信方式の仕組みについて説明する。図８は、プルプリントアプリケーション３０３の印刷データ取得部４１２がストレージサーバー１０２から印刷データファイルを取得しながら、印刷ジョブ送信部４１６が印刷装置制御部３０４に１つの通信接続で印刷データファイルを送信する概念図である。
【００６２】
まず、プリントサーバー１０１は印刷データ変換が実行され次第、生成された印刷データを１つの印刷データファイルとしてストレージサーバー１０２にアップロードする。プルプリントアプリケーション３０３が印刷装置制御部３０４に印刷データを早く送信することで、時間のかかるプリントエンジン２３８の事前処理を早く開始することが可能となり、プリンターＡ１０４のファーストプリントが早くなる。
【００６３】
プルプリントアプリケーション３０３の印刷ジョブ送信部４１６は印刷装置制御部３０４に１つの通信接続で印刷ジョブを送信する必要がある。そのため、プルプリントコントローラ４１４は、印刷データファイル取得通信ストリーム８０１と、プリンター通信ストリーム８０２とを一つの通信ストリームとして維持する。印刷データファイル取得通信ストリーム８０１は、プリンターＡ１０４の印刷データ取得部４１２と、ストレージサーバー１０２の間の通信である。具体的には、インターネットを介した通信であり、通信プロトコルはＨＴＴＰＳ（Ｈｙｐｅｒ  Ｔｅｓｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ）である。
【００６４】
一方のプリンター通信ストリーム８０２は、印刷ジョブ送信部４１６と印刷装置制御部３０４のネットワークインタフェース部４１７の間の通信である。具体的には、プリンターＡ１０４から異なるポートのプリンターＡ１０４へのローカルネットワーク通信であり、通信プロトコルはＲＡＷプロトコルである。
【００６５】
印刷データ取得部４１２が、印刷ジョブの構成する印刷データファイルのうち、２つ目以降の印刷データファイルを取得する際の処理は次の通りである。プルプリントコントローラ４１４は、印刷データ取得部４１２が新たに作成した印刷データファイル取得通信ストリーム８０１を既存のプリンター通信ストリーム８０２につなぎ変えて１つの通信ストリームとして維持する。これにより、複数に分割された印刷データファイルを１つの印刷ジョブとして印刷することを実現する。
【００６６】
以上が、ストレージサーバー１０２とプリンターとの通信方式の仕組みである。
【００６７】
＜Ｗｅｂブラウザ３０２を介した印刷リクエストの送信処理＞
図５を用いて、プリントサーバー１０１のＷｅｂサーバー４０１によって作成され、クライアント端末Ａ１０９のＷｅｂブラウザ３０２に表示されるＷｅｂ画面と、そのＷｅｂ画面を介して実行される印刷リクエストの送信処理について説明する。
【００６８】
Ｗｅｂブラウザ３０２からプリントサーバー１０１に文書一覧リクエストを送信すると、プリントサーバー１０１は文書一覧画面５１０を作成し、Ｗｅｂブラウザ３０２に送信する。文書一覧画面５１０の一例を図５（ｂ）に示す。文書一覧画面５１０は文書選択チェックボックス５１１、文書名５１２、ステータス５１３、印刷ボタン５１４を含む。ステータス５１３は文書情報６２０のステータス６２５に対応し、プリントサーバー１０１は、文書一覧リクエストを受信したときのステータス６２５を文書一覧画面のステータス５１３として文書一覧画面５１０に表示する。文書選択チェックボックス５１１は、印刷する文書を選択するチェックボックスであり、複数の文書を選択できる形態でも良い。Ｗｅｂブラウザ３０２が印刷ボタン５１４の押下を検知すると文書選択チェックボックス５１１が選択された文書の一覧がプリントサーバー１０１に送信される。
【００６９】
文書一覧を受信したプリントサーバー１０１は印刷設定画面５２０を作成し、Ｗｅｂブラウザ３０２に送信する。印刷設定画面５２０の一例を図５（ｃ）に示す。印刷設定画面５２０は印刷設定５２１の設定画面であり、プリンター名５２４は印刷を行うプリンターの名称である。
【００７０】
Ｗｅｂブラウザ３０２は、変更ボタン５２２の押下を検知するとプリントサーバー１０１に対してリクエストを送信する。リクエストを受信したプリントサーバー１０１は、プリンター情報６１０からプリンター一覧画面５３０を作成し、Ｗｅｂブラウザ３０２に送信する。プリンター一覧画面５３０の一例を図５（ｄ）に示す。プリンター一覧画面５３０は、プリンター選択ラジオボタン５３１、プリンター名５３２、変更ボタン５３３を含む。Ｗｅｂブラウザ３０２が変更ボタン５３３の押下を検知すると、プリンター選択ラジオボタン５３１で選択されたプリンター情報をプリントサーバー１０１へ送信する。
【００７１】
プリントサーバー１０１は、印刷設定画面５２０のプリンター名５２４をプリンター選択ラジオボタン５３１が選択されていたプリンター名に更新し、更新された印刷設定画面５２０をＷｅｂブラウザ３０２に送信する。
【００７２】
印刷設定画面５２０においてＷｅｂブラウザ３０２が印刷ボタン５２３の押下を検知すると、印刷設定５２１と、プリンター名５２４と、文書選択チェックボックス５１１で選択されていた文書一覧とがプリントサーバー１０１に送信される。ここで、印刷設定画面５２０では、文書一覧画面５１０で文書選択チェックボックス５１１が選択されていた文書一覧隠しパラメータとして画面に保持する。
【００７３】
以上がＷｅｂブラウザ３０２を介してプリントサーバー１０１に印刷リクエストを送信する処理である。
【００７４】
＜プリントサーバー１０１の印刷データ変換処理＞
ファーストプリントを早くし、且つ印刷データの不完全を検知し、不完全な印刷データの印刷を抑止する手段に関してフローチャート図９〜図１１を用いて説明する。
【００７５】
プリントサーバー１０１における印刷データ変換処理について説明する。図９は、プリントサーバー１０１の印刷データ変換処理を示すフローである。なお、上記（図４ｂ）で説明済みの箇所に関しては、簡単に説明する。
【００７６】
印刷データ管理部４０８は制御サーバー４０２から印刷指示を受信した後、ストレージサーバー１０２の文書ＵＲＬ６２４から文書データを取得し、印刷データ変換処理のリクエストをデータ変換部４０９に対して送信する（Ｓ９０１）。
【００７７】
データ変換部４０９における印刷データ変換処理で印刷データが生成されると、印刷データ管理部４０８は印刷データファイルＵＲＬを生成する（Ｓ９０２）。尚、印刷データ変換処理で生成される印刷データは、文書データの少なくとも一部であるものとする。
【００７８】
印刷データ管理部４０８は、Ｓ９０２で生成された印刷データファイルＵＲＬに対応する印刷データのハッシュ値を計算する（Ｓ９０３）。ハッシュ値とはハッシュ関数により演算された結果の値であり、同一の入力データに対しては常に同じ値となることから、データの完全性を確保するために使用される技術である。
【００７９】
印刷データ管理部４０８は、印刷データファイルＵＲＬと算出されたハッシュ値をインデックスファイル７０１に記載し、ストレージサーバー１０２にアップロードする（Ｓ９０４）。この時点で、後述のＳ９１２（図１０）において、取得可能な印刷データが存在することになるので、プルプリントアプリケーション３０３の印刷データの取得処理（Ｓ９１３以降の処理）が開始される。Ｓ９０４の処理を実行する際、すでにインデックスファイル７０１に印刷データファイルＵＲＬとハッシュ値が記載されている場合は追記する。ストレージサーバー１０２上のインデックスファイルを更新することでＳ９０４の処理は繰り返される。
【００８０】
Ｓ９０４でインデックスファイルのアップロードが完了した後、残りの印刷データファイルが無いかを確認することで印刷データ変更処理が完了したかを判定する（Ｓ９０５）。
【００８１】
印刷データ管理部４０８はデータ変換部４０９の印刷データ変換処理が完了していれば処理を終了し、印刷データ変換処理が完了していなければ残りの印刷データファイルに対しても同様の処理を繰り返す（Ｓ９０２〜Ｓ９０５）。
【００８２】
Ｓ９０５でデータ変換部４０９の変換処理が完了しているかの判断は、印刷データ取得部４１２が行う。具体的に、印刷データ管理部４０８は、印刷データ変換処理の状態（変換開始、変換完了、変換エラー）を管理しており、インデックスファイルのｔｒｕｅ／ｆａｌｓｅを更新する。その更新結果に基づいて印刷データ取得部４１２が変換処理の完了の判断を行う。以上が、プリントサーバー１０１の印刷データ変換処理である。
【００８３】
＜プルプリントアプリケーション３０３の印刷処理＞
図１０を用いて、プルプリントアプリケーション３０３における印刷データの取得処理、および印刷データの不完全を検知し印刷を抑止する処理について説明する。本処理は、印刷データ管理部４０８がインデックスファイルＵＲＬ６０６をプルプリントアプリケーション３０３に送信することをきっかけに開始される。
【００８４】
プルプリントアプリケーション３０３の印刷データ取得部４１２は、Ｓ９０４でアップロードしたインデックスファイル７０１をストレージサーバー１０２から取得する（Ｓ９１１）。その際、印刷データ取得部４１２はインデックスファイル７０１に記載の印刷データＵＲＬ７０４、ハッシュ値７０５を、印刷キュー情報６３０の印刷データＵＲＬ６３６，ハッシュ値６３７として保存する。
【００８５】
印刷データ取得部４１２は、印刷データＵＲＬ６３６に基づいてストレージサーバー１０２にアクセスし、取得可能な印刷データが存在するかどうかを判定する（Ｓ９１２）。取得可能な印刷データが存在していると判定された場合は、Ｓ９１３の処理を行う。取得可能な印刷データが存在しないと判定された場合は処理を終了する。
【００８６】
印刷データ取得部４１２はストレージサーバー１０２から印刷データを取得する（Ｓ９１３）。なお、圧縮方式６１５で印刷データが圧縮されている場合はＳ９１３の処理を実行する時点で解凍処理を実行する。
【００８７】
Ｓ９１３で解凍した印刷データに対して、印刷データ取得部４１２はハッシュ値を計算し、合計ハッシュ値６３８を更新する（Ｓ９１４）。
【００８８】
Ｓ９１４の処理について、図１２を用いて具体的に説明する。図１２はストレージサーバー１０２からプルプリントアプリケーション３０３を介して印刷装置制御部３０４がストリーム１００１で接続されているイメージ図である。ストリーム１００１は、印刷データファイル取得通信ストリーム８０１とプリンター通信ストリーム８０２とが一つの通信ストリームとして維持されている状態を示す。今回は、１つの印刷ジョブが３つの印刷データファイル（１００６〜１００８）で構成されているものとする。プルプリントアプリケーション３０３が１つの印刷データファイルを取得する際、ネットワーク上では複数のネットワークパケット（１００２〜１００４）単位で印刷データファイルが送信される。印刷データ取得部４１２がこの一つのネットワークパケット毎に解凍してハッシュ計算し、印刷ジョブ送信部４１６は印刷装置制御部３０４にハッシュ値１００５を送信する。ネットワークパケット単位でハッシュ値を更新していくことで最終的に、印刷データファイルの合計ハッシュ値が得られる。以上が、Ｓ９１４における処理の詳細である。
【００８９】
図１０の説明に戻る。印刷ジョブ送信部４１６は、印刷データ取得部４１２が取得した印刷データを、ネットワークパケット単位で印刷装置制御部３０４に送信する（Ｓ９１５）。その際、印刷装置制御部３０４における印刷処理（後述の図１１）が開始される。
【００９０】
印刷ジョブ送信部４１６は、１つの印刷データファイル分の印刷データ受信が完了しているかどうかを判定する（Ｓ９１６）。１つの印刷データファイル分の印刷データ受信が完了していると判定された場合はＳ９１７の処理を行う。印刷データ受信が完了していないと判定された場合は、Ｓ９１３の処理に戻る。
【００９１】
印刷データ取得部４１２は、Ｓ９１１で取得したハッシュ値６３７と、Ｓ９１４で算出した合計ハッシュ値６３８を比較する（Ｓ９１７）。ハッシュ値６３７と合計ハッシュ値６３８が一致するかどうかを判定した結果（Ｓ９１８）、一致しないと判定された場合は取得した印刷データは不完全であると判断し、Ｓ９１９の処理を行う。Ｓ９１８において一致が確認された場合は、Ｓ９１１の処理に戻り、後続のインデックスファイルの取得処理を行う。
【００９２】
Ｓ９１７〜Ｓ９１８における比較処理について、説明する。ハッシュ値６３７はインデックスファイルに記載されたハッシュ値７０５であり、プリントサーバー１０１で計算された値である。一方の合計ハッシュ値６３８は、プリンターＡ１０４の印刷データ取得部４１２が通信データ１００２〜１００４に基づいて計算したハッシュ値を加算した際の合計値である。「通信データ１００２のハッシュ値＋通信データ１００３のハッシュ値＋通信データ１００４のハッシュ値＝合計ハッシュ値６３８」であれば、ネットワーク転送路で欠落等が発生していないと判断される。
【００９３】
印刷データ取得部４１２は印刷制御部４１５に対して、印刷装置制御部３０４の印刷ジョブキャンセル要求を送信する（Ｓ９１９）。印刷データ取得部４１２は印刷データ管理部４０８に対し印刷がエラーとなった旨を通知する（Ｓ９２０）。以上が、印刷データの取得処理、および印刷データの不完全を検知し印刷を抑止する処理である。
【００９４】
＜プリンターの印刷処理＞
図１１を用いて、プリンターＡ１０４の印刷処理を説明する。本処理は、Ｓ９１５において印刷装置制御部３０４が印刷データを受信したことをきっかけに開始される。
【００９５】
印刷装置制御部３０４は、ネットワークインタフェース部４１７を介して印刷データ取得部４１２から印刷データを受信する（Ｓ９３０）。印刷装置制御部３０４は受信した印刷データを解析する（Ｓ９３１）。印刷装置制御部３０４はＳ９３１で解析した印刷データに基づいて、印刷処理が可能な画像データを生成する（Ｓ９３２）。印刷装置制御部３０４はプリンターエンジンに対して、生成された画像データを送信して印刷処理を行う（Ｓ９３３）。
【００９６】
本実施例では、ファーストプリントの早さを優先しているため、不完全な印刷データを検知するよりも先に印刷処理が開始することで、不用な印刷物が出力されることを完全に止めることはできない。しかし、一般的なプリンターにおいて、Ｓ９３０〜Ｓ９３２までの処理に加え、実際にプリンターエンジンが動作して印字を開始するまでの処理時間は、ネットワークの通信速度（Ｓ９１５〜Ｓ９１８）よりも時間を要することが考えられる。したがって、不完全な印刷データを検知した後に印刷キャンセルする（Ｓ９１９）ことは可能である。以上が、プリンターＡ１０４における印刷処理についてである。
【００９７】
本実施例により、印刷サーバーは全ての印刷データの完成を待たずに、完成したページの印刷データからプリンターへ順次送信し印刷させるシステムにおいて、不完全な印刷データを検知し、不完全な印刷物を印刷物として出力しないことができる。
【実施例２】
【００９８】
実施例１の処理の場合、ユーザーは不完全な印刷データによるエラーを検知できるが、手動で再印刷を行う必要があり利便性に欠ける。本実施例では、不完全な印刷データによるエラーが発生した場合に、自動でリカバリーを行う形態を説明する。なお、図中の番号および名称は特に断らない限り実施例１と同様である。
【００９９】
また、印刷データ管理部４０８が生成する印刷データのうち、最初に生成された印刷データファイルＵＲＬに対応する印刷データファイルを「初回データファイル」と称し、それ以外を「後続データファイル」と称する。例えば図１２の１００６は「初回データファイル」であり、１００７と１００８は「後続データファイル」である。
【０１００】
＜初回データファイル取得時の印刷データ取得部４１２における処理＞
図１３は、印刷データ取得部４１２が初回データファイルを取得した際の処理を示すフローチャートである。
【０１０１】
印刷データ取得部４１２はストレージサーバー１０２から取得する印刷データが、対象の印刷ジョブの初回データファイルであるかを判定する（Ｓ１１０１）。ここでの判定方法については特に限定しない。例えば、インデックスファイル７０１の記載から判断したり、アプリケーションで取得情報を管理したり、先に印刷データを受信してその内容から判断する方法等が考えられる。
【０１０２】
初回データファイルと判断された場合は、取得した初回データファイルに基づいてハッシュ値の計算、合計ハッシュ値６３８の更新処理を行う（Ｓ９１３〜Ｓ９１６）。初回データファイルではない（後続データファイル）と判定された場合はＳ１１０２の処理を行う。Ｓ１１０２の処理に関しては図１４を用いて後述する。
【０１０３】
Ｓ９１８においてハッシュ値の不一致が判定され、Ｓ９１９において印刷キャンセル処理が実行された後、印刷データ取得部４１２は印刷ジョブをエラーとせずにＳ９１１の処理に戻る（Ｓ１１０３）。これにより、初回データファイルで不完全を検知した場合に、ユーザーによる手動の操作を要することなく、自動的にリトライ処理を実行できる。
【０１０４】
＜継続データ取得時の印刷データ取得部４１２における処理＞
図１４は、印刷データ取得部４１２が後続データファイルを取得した際の処理を示すフローチャートである。本処理は、Ｓ１１０１において印刷データ取得部４１２が取得した印刷データファイルが後続データファイルであると判定されたことをきっかけに開始される。
【０１０５】
まず、印刷データ取得部４１２は取得した印刷データからハッシュ値を計算し比較する処理を実行する（Ｓ９１３〜Ｓ９１７）。印刷データ取得部４１２がハッシュ値を比較した結果（Ｓ１１１１）、ハッシュ値が不一致であると判定された場合は、Ｓ１１１２の処理を行う。ハッシュ値が一致することが判定された場合は、Ｓ９１５の処理を行う。
【０１０６】
Ｓ１１１１においてハッシュ値が一致しないことが判定された後、印刷データ取得部４１２は印刷データファイル取得通信ストリーム８０１にある印刷データを削除する（Ｓ１１１２）。Ｓ１１１２の処理の後、印刷データ取得部４１２は再度同じ印刷データＵＲＬ６３６に対しＳ９１３の処理を行う。
【０１０７】
以上が、継続データ取得時の印刷データ取得部４１２における処理である。図１４の処理により、継続データで不完全を検知した場合でも、ユーザーによる手動の操作を要することなく、自動的にリトライ処理を実行できる。
【０１０８】
［その他の実施例］
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０９】
１０１  プリントサーバー
４０６  印刷ジョブ管理部
４０８  印刷データ管理部
４１２  印刷データ取得部
４１６  印刷データ送信部
６３７  ハッシュ値
【図１】
2019091379.tif 000003
【図２】
2019091379.tif 000004
【図３】
2019091379.tif 000005
【図４】
2019091379.tif 000006
【図５】
2019091379.tif 000007
【図６】
2019091379.tif 000008
【図７】
2019091379.tif 000009
【図８】
2019091379.tif 000010
【図９】
2019091379.tif 000011
【図１０】
2019091379.tif 000012
【図１１】
2019091379.tif 000013
【図１２】
2019091379.tif 000014
【図１３】
2019091379.tif 000015
【図１４】
2019091379.tif 000016