(57)【要約】【課題】処理が中断した後処理を再開する場合に適切な動作を行う。【解決手段】サーバーに処理データの送信要求を行う要求部と、前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信部と、受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理部と、を備え、前記処理部が前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求部は、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う。【選択図】図４
2013059931.tif 000002
【特許請求の範囲】
【請求項１】
サーバーに処理データの送信要求を行う要求部と、
前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信部と、
受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理部と、
を備え、
前記処理部が前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求部は、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う、
データ処理装置。
【請求項２】
前記要求部は、前記処理部が未取得である部分の前記処理データについての送信要求を、ＨＴＴＰのｒａｎｇｅヘッダーを用いて範囲指定することで行う、
請求項２に記載のデータ処理装置。
【請求項３】
前記処理データは、印刷データであり、
前記処理部は、取得した前記印刷データに基づいて印刷を行う処理部であり、
前記第一のグループに分類される前記理由には、印刷媒体なし、色材なし、印刷媒体タイプの不一致、装置カバーオープンのうちの少なくともいずれかのエラーの発生が該当し、
前記第二のグループに分類される前記理由には、印刷媒体詰まり、前記処理部の機械的異常、停電のうちの少なくともいずれかのエラーの発生が該当する、
請求項１または請求項２に記載のデータ処理装置。
【請求項４】
データ処理装置に処理させる処理データを記憶する記憶部と、
前記データ処理装置に前記処理データを送信する送信部と、
を備え、
前記送信部が前記処理データの全体の送信を完了する前に前記処理データの送信を中断した後前記処理データを再送信する場合に、前記送信部は、前記処理データの送信を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記送信部が未送信である部分を含む一部分についての送信を行い、前記処理データの送信を中断した理由が第二のグループに分類される場合には前記処理データの全体についての送信を行う、
サーバー。
【請求項５】
サーバーに処理データの送信要求を行う要求工程と、
前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信工程と、
受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理工程と、
を含み、
前記処理工程において前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求工程においては、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う、
データ処理装置のデータ処理方法。
【請求項６】
データ処理装置に処理させる処理データを記憶する記憶工程と、
前記データ処理装置に前記処理データを送信する送信工程と、
を含み、
前記送信工程において前記処理データの全体の送信を完了する前に前記処理データの送信を中断した後前記処理データを再送信する場合に、前記送信工程においては、前記処理データの送信を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記送信部が未送信である部分を含む一部分についての送信を行い、前記処理データの送信を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信を行う、
サーバーのデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、サーバー、データ処理方法に関し、クラウドコンピューティングシステムにおいてユーザーからサーバー経由で取得した要求に応じて処理を実行する技術に関する。
【背景技術】
【０００２】
従来、電子メールの送信によって特定のプリンターに印刷を実行させることができるサービスを提供するクラウドコンピューティングシステムが知られている（例えば特許文献１）。このクラウドコンピューティングシステム（以下、単に印刷システムという）は、特定の電子メールを受信すると電子メールに基づいて特定のプリンターに対応した印刷データを生成するサーバーを備え、サーバーに登録されている特定のプリンターはサーバーから印刷データを取得して印刷を実行する。したがって印刷システムの利用者は、ＰＣ（Personal Computer）、スマートフォン等のクライアント端末にプリンタードライバーがインストールされていない場合であっても、印刷システムに登録されているプリンターを利用することが可能になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７１２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような印刷システムにおいては、ユーザーが送信した電子メールに基づいてサーバーが印刷データを生成し、プリンターに対して印刷ジョブの存在を通知し、通知を受けたプリンターはサーバーに対して印刷データの送信要求を行って印刷データを取得しながら印刷を実行している。プリンターが搭載しているメモリサイズにはコストの観点から制限があるので、印刷が終了した部分の印刷データについてはメモリから破棄し次に処理すべき印刷データのためにメモリ領域を確保する。このようにプリンターは、印刷データを取得しながら印刷を行うため、印刷データの取得途中でプリンターにおいてエラーが発生した場合、印刷を続行することができないため印刷データをメモリから破棄することができず、やがて後続して送信された印刷データを受信できない状態となる。
【０００５】
このような場合、従来はエラーが発生したため印刷を終了するという動作となっており、エラーで中断した後のエラー復帰後の動作について特に考慮されていなかった。
本発明は上記課題にかんがみてなされたもので、処理が中断した後処理を再開する場合に適切な動作を行う技術の提供を目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためのデータ処理装置は、要求部と、受信部と、処理部と、を備える。要求部は、サーバーに処理データの送信要求を行う。受信部は、送信要求に応じてサーバーから送信された処理データを受信する。処理部は、受信した処理データを順次取得し、当該処理データを用いて処理を行う。そして要求部は、処理部が処理データの取得を完了する前に処理データの取得を中断した後、処理データの取得を再開する場合に、次のように送信要求を行う。すなわち要求部は、処理データの取得を中断した理由が第一のグループに分類される場合にデータ全体のうちの処理部が未取得である部分についての送信要求を行い、処理データの取得を中断した理由が第二のグループに分類される場合にデータ全体についての送信要求を行う。
【０００７】
ここで、第一のグループに分類される理由には、次のような事象の発生が想定される。すなわち、中断した処理を中断の理由となる事象が解消された後にその続きから再開することが望ましい事象の発生である。第二のグループに分類される理由には、次のような事象の発生が想定される。すなわち、中断した処理を中断の理由となる事象が解消された後にもう一度最初から処理しなおすことが望ましい事象の発生である。中断の理由（となる事象）が分類されるグループは、データ処理装置において予め決められている。
【０００８】
したがって本発明の構成によると、処理データの取得を再開する場合に、中断の理由に応じて、データ全体を取得しなおすか、未取得の部分のみを取得するかを切り替えることができる。その結果、中断時の続きから処理を再開することが望ましいと予め決められている事象が発生した場合は、処理部が未取得の処理データを取得することができるので、処理済みのデータを含めて全体を取得し直す構成と比較すると処理に要する時間を短縮できる。また、中断後に再開する場合は再度はじめから処理をし直すことが望ましいと予め決められている事象が発生した場合は、処理データの全体を取得しなおすことができるため、再度処理データ全体を対象に処理を行うことができる。
【０００９】
さらに、上記目的を達成するためのデータ処理装置において、要求部は、処理部が未取得である部分の処理データについての送信要求を、ＨＴＴＰのｒａｎｇｅヘッダーを用いて範囲指定することで行ってもよい。
ＨＴＴＰのｒａｎｇｅヘッダーを用いることで、処理データの部分的な送信要求を実現することができる。
【００１０】
さらに、上記目的を達成するためのデータ処理装置において、処理データは印刷データであり、処理部は、取得した印刷データに基づいて印刷を行う処理部であってもよい。その場合、第一のグループに分類される理由には、印刷媒体なし、色材なし、印刷媒体タイプの不一致、装置カバーオープンのうちの少なくともいずれかのエラーの発生が含まれ、第二のグループに分類される理由には、印刷媒体詰まり、処理部の機械的異常、停電のうちの少なくともいずれかのエラーの発生が含まれてもよい。
上述のような様々なエラーが発生した後当該エラーが解消された場合に、当該エラーが分類されるグループに応じて、印刷データの全体の送信要求を行うか、印刷データの部分的な送信要求を行うかを切り替えることができる。
【００１１】
また、上記目的を達成するためのサーバーは、記憶部と、送信部と、を備える。記憶部は、データ処理装置に処理させる処理データを記憶する。送信部は、データ処理装置に処理データを送信する。そして、送信部が処理データの全体の送信を完了する前に処理データの送信を中断した後処理データを再送信する場合に、送信部は、処理データの送信を中断した理由が第一のグループに分類される場合には処理データの全体のうちの送信部が未送信である部分を含む、処理データの一部分についての送信を行い、処理データの送信を中断した理由が第二のグループに分類される場合に処理データ全体についての送信を行う。
【００１２】
サーバーが以上のような構成を採用していることにより、処理データの送信を中断した理由に応じて、送信再開後にデータ処理装置に送信する処理データの範囲を切り替えることができる。すなわち、未送信部分を含む一部分の印刷データの送信か、または、印刷データ全体の送信か、を切り替えることができる。そしてデータ処理装置は、サーバーから送信された処理データを用いて処理を行うことができる。
【００１３】
なお、請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、サーバーは１台のコンピューター装置から構成されるものに限らず、複数のコンピューター装置が協働して上述のサーバーとして動作する構成を含む。さらに、本発明は方法としても、コンピュータープログラムとしても、そのプログラムの記録媒体としても成立する。むろん、そのコンピュータープログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
【図面の簡単な説明】
【００１４】
【図１】第一実施形態にかかるデータ処理装置のブロック図。
【図２】第一実施形態にかかるバッファーの構成例を示す模式図。
【図３】第一実施形態にかかるエラーの分類を示す図。
【図４】第一実施形態にかかる印刷シーケンスのシーケンスチャート。
【図５】第一実施形態にかかる印刷データの各部の状態を説明する模式図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
１．第一実施形態
１−１．構成
図１は、本実施形態におけるプリンター（データ処理装置、印刷装置）３とサーバー２とを含む印刷システム全体の構成を示すブロック図である。図１に示す印刷システムは、サーバー２に登録されたプリンター３に対応付けられた電子メールアドレスを宛先とする電子メールを任意の通信端末１から送信すると、宛先の電子メールアドレスに対応付けられたプリンター３において電子メールの添付ファイルや本文が印刷される機能を実現する。サーバー２、プリンター３、通信端末１はインターネット４に接続される。
【００１６】
サーバー２は１以上のコンピューターによって構成され、アプリケーションサーバー２１，ＳＭＴＰサーバー２２，ＨＴＴＰサーバー２３およびＸＭＰＰサーバー２４を含む。アプリケーションサーバー２１，ＳＭＴＰサーバー２２，ＨＴＴＰサーバー２３，ＸＭＰＰサーバー２４のそれぞれは、図示しないＣＰＵとＲＡＭとＲＯＭとハードディスク装置と通信部とそれらを接続する内部インターフェースとを備えている。通信部はインターネットからＬＡＮを経由して受信する信号をプロトコルに従って変換して内部バスに送出し、内部バスから取り込んだ信号をプロトコルに従って変換してＬＡＮを経由してインターネットに送出する。
【００１７】
ＳＭＴＰサーバー２２は、アプリケーションサーバー２１に登録されたプリンター３に割り当てられた電子メールアドレス宛の電子メールをＳＭＴＰ（Simple Mail Transfer Protocol）に基づいて送受信する機能を有する。ＨＴＴＰサーバー２３はプリンター３とＨＴＴＰ（Hyper Text Transfer Protocol）に基づいて通信する機能を有し、印刷データをプリンター３に送信する「送信部」として機能する。ＸＭＰＰサーバー２４はプリンター３とＸＭＰＰ（Extensible Messaging and Presence Protocol）に基づいて通信する機能を有し、プリンター３に印刷ジョブ有り通知を送信する。アプリケーションサーバー２１は、ＳＭＴＰに基づいて電子メールを受信すると、当該電子メールに基づいて対応するプリンター３に応じた印刷データを生成してサーバー２内のメモリに記憶し（「記憶部」に相当）、ＸＭＰＰに基づいて対応するプリンター３に印刷ジョブ有り通知を送信し、生成した印刷データをプリンター３からのＨＴＴＰに基づいた送信要求に応じてプリンター３に送信する機能を有する。
【００１８】
プリンター３は、サーバー２とのＸＭＰＰを用いた常時接続によってサーバー２から印刷ジョブ有り通知を通知されると、ＨＴＴＰを用いて印刷データをサーバー２から受信し、印刷を実行する機能を有する。したがってプリンター３は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えたコントローラー３１、印刷部３５等の通常のプリンターの構成要素に加えて、インターネット４を介して各種のデータを送受信するための通信部３４を備えている。通信部３４はインターネット４からＬＡＮを経由して受信する信号をプロトコルに従って変換して内部バスに送出し、内部バスから取り込んだ信号をプロトコルに従って変換してＬＡＮを経由してインターネットに送出する。コントローラー３１のＲＯＭにはＲＡＭに読み込まれＣＰＵによって実行される通信プログラムや印刷プログラムなどの種々のコンピュータープログラムが記憶されている。これらのコンピュータープログラムをＣＰＵが実行することによって、プリンター３の各種の機能が実現される。
【００１９】
通信プログラムは、サーバー２とＴＣＰ／ＩＰ、ＨＴＴＰ、ＸＭＰＰ等の通信プロトコルに従った通信を行うためのプログラムである。なお、ＨＴＴＰやＸＭＰＰを用いてサーバー２と接続するために必要な情報は予めコントローラー３１は取得済みである。受信バッファー３２は、通信プログラムを実行するコントローラー３１が通信部３４を介して外部から受信したデータを記憶するメモリであり、印刷データやなど様々なデータが一旦格納されるメモリである。通信プログラムを実行するコントローラー３１および通信部３４は、印刷データの送信要求をサーバー２に対して行う「要求部」に相当する。また、通信プログラムを実行するコントローラー３１と通信部３４と受信バッファー３２とは、サーバー２から送信された印刷データを受信する「受信部」に相当する。
【００２０】
印刷プログラムは、受信バッファー３２に記憶されている印刷データを読み出して処理バッファー３３に転送し、印刷前処理を施してプリンター３における印刷に適した形式のデータに印刷データを変換し、変換後のデータに基づいて印刷部３５を制御して印刷を行う機能を有するプログラムである。印刷プログラムを実行するコントローラー３１と、印刷部３５と処理バッファー３３とは「処理部」に相当する。本実施形態においては、サーバー２が印刷対象をレンダリングして印刷データを生成しプリンター３に送信する。また本実施形態において、印刷前処理は、サーバー２から受信した印刷データに対して施す、解像度変換処理や、色変換処理や、ハーフトーン処理や、並べ替え処理等を指す。処理バッファー３３は、受信バッファー３２に記憶された様々なデータの中から抽出され読み出された印刷データに対して前述の印刷前処理を施す際に処理前や処理過程や処理後のデータを記憶するためのメモリである。印刷前処理に含まれる前述の各処理のデータ受け渡しのためにそれぞれ設けられたバッファーメモリをまとめて処理バッファー３３と呼ぶ。
【００２１】
図２は各バッファーについて説明するための模式図である。図２に示すように例えば本実施形態では処理バッファー３３は、受信バッファー３２から読み出した解像度変換処理前の印刷データを記憶する第一の処理バッファー３３１と、解像度変換後のデータであり色変換処理前のデータを記憶する第二の処理バッファー３３２と、色変換処理後のデータであってハーフトーン処理前のデータを記憶する第三の処理バッファー３３３と、ハーフトーン処理後のデータであって並べ替え処理前のデータを記憶する第四の処理バッファー３３４と、並べ替え処理後のデータを記憶する第五の処理バッファー３３５とを含んでいる。第五の処理バッファー３３５に記憶されたデータは印刷部３５による印刷に用いられる。「処理部が処理データを取得する」とは、本実施形態では具体的に、印刷処理プログラムを実行するコントローラー３１が、受信バッファー３２に記憶されている印刷データを受信バッファー３２から読み出し、処理バッファー３３（第一の処理バッファー３３１）に転送することに相当する。受信バッファー３２から読み出され、処理バッファー３３（第一の処理バッファー３３１）に転送された印刷データは、受信バッファー３２からは破棄され、受信する新たなデータのための格納場所に当てられる。印刷プログラムは受信バッファー３２から処理バッファー３３に印刷データを転送するごとに、転送された印刷データの累積のデータ量をサイズｎとして計測する計測機能を有している。
【００２２】
コントローラー３１は、第一の処理バッファー３３１に記憶されている印刷データに対する解像度変換処理を終了すると処理後のデータを第二の処理バッファー３３２に書き込み、当該印刷データを第一の処理バッファー３３１から破棄する。そして、後続の印刷データを受信バッファー３２から読み出し第一の処理バッファー３３１に転送する。第二の処理バッファー３３２〜第五の処理バッファー３３５についても同様にコントローラー３１は、前段のバッファーからデータを読み出して処理し後段のバッファーに書込みが終了すると前段のバッファーからはデータを破棄し後続のデータを前段のバッファーに転送可能な状態とする。印刷部３５は、インクジェット方式、レーザー方式など周知の印刷方式で写真用紙・普通紙・ＯＨＰシートなどの印刷媒体に印刷を実行するためのアクチュエーターやセンサーや駆動回路や機械部品を備えている。印刷部３５によって印刷が完了した部分に相当する印刷データは処理バッファー３３（第五の処理バッファー３３５）から破棄される。
【００２３】
図３は、プリンター３において識別されるエラーの内容とエラーコードと各エラーが分類されるグループとの対応関係を例示する図である。コントローラー３１のＲＯＭには、エラーコードとエラーが分類されるグループとが対応付けて記憶されている。「印刷媒体なし」は所定の印刷媒体がプリンター３にセットされていないため印刷が実行できないエラーである。「色材なし」はインクやトナーなどの印刷に使用する色材（記録剤）がないために印刷が実行できないエラーである。「印刷媒体のタイプ不一致」は、例えば印刷ジョブにおいて指定されている、写真紙や普通紙などのような印刷媒体の種類と、プリンター３にセットされている印刷媒体の種類とが一致していないエラーである。「カバーオープン」は、印刷ヘッドなどの印刷動作を行う機械部品が収容されている筐体を覆う可動式のカバーが開放された状態であるため印刷を実行できないエラーである。以上のエラーは、エラー解消後はエラーによる中断時の続きから印刷を再開することが望ましいエラーである。よって以上のエラーは、続きから印刷を再開するエラーのグループとしての「第一のグループ」に分類されている。
【００２４】
「印刷媒体詰まり」は、印刷媒体の搬送路上で印刷媒体が詰まったために印刷を実行できないエラーである。「機械的異常」は、プリンター３においてなんらかの機械的な異常が発生したため印刷を実行できないエラーである。「停電」は電力が供給されないために印刷を実行できないエラーである。これらのエラーは、エラー解消後は印刷ジョブを最初から再度実行することが望ましいエラーである。よってこれらのエラーは、最初から印刷をし直すエラーのグループとしての「第二のグループ」に分類されている。
【００２５】
１−２．印刷シーケンス
図１に示す印刷システムにおいては、通信端末１からプリンター３に対応付けられた電子メールアドレス宛の電子メールが添付ファイルとともに送信されたとき、プリンター３において添付ファイルの印刷が即座に実行されることが望まれる。また、プリンター３が印刷要求を即時に取得するためにサーバー２をＨＴＴＰに基づいたメッセージを使ってポーリングすることはサーバー２の負荷とネットワークトラフィックの観点から望ましくない。そこで、プリンター３はＸＭＰＰに基づいた印刷ジョブ有り通知をサーバー２から受信する。ＸＭＰＰは、双方向にメッセージを送信できる所謂プッシュ型のプロトコルであるため、プリンター３によるサーバー２のポーリングは不要となる。プリンター３の電源がオン状態のとき、通信エラーやその他のエラーが特に発生していなければ、サーバー２とプリンター３とは、ＸＭＰＰ接続が常時確立された状態である。
【００２６】
図４は、本実施形態における印刷シーケンスのシーケンスチャートであって、さらに詳細には、一つの印刷ジョブに含まれる印刷データをプリンター３が全て取得して処理バッファー３３に転送する前にプリンター３にエラーが発生する場合のシーケンスチャートである。なお、図４のシーケンスチャートでは、発明の要部を明確にするため、セッションの確立や切断のシーケンスの詳細や、各通信に応答するＡＣＫパケットやＦＩＮパケット等の記載を発明に関連する部分を除いて省略している。
【００２７】
はじめに、プリンター３に対応付けられた電子メールアドレス宛に通信端末１から送信された電子メールをサーバー２が受信する（Ｓ１００）と、電子メールに基づいて添付ファイルなどの印刷対象をレンダリングして印刷データを生成し、ＸＭＰＰを用いてサーバー２は印刷ジョブ有り通知をプリンター３に送信する（Ｓ１０５）。通信部３４はサーバー２からＸＭＰＰで送信された印刷ジョブ有り通知を受信すると、サーバー２とＨＴＴＰセッションを確立し（Ｓ１１０）、ＨＴＴＰのｇｅｔリクエストでコンテンツ情報の送信要求をサーバー２に送信する（Ｓ１１５）。プリンター３から送信されたコンテンツ情報の送信要求を受信したサーバー２は、印刷ジョブのコンテンツ情報をプリンター３に送信する（Ｓ１２０）。ここでコンテンツ情報には、印刷データのダウンロード先ＵＲＩや、印刷データのドキュメントフォーマット等の印刷ジョブに含まれる印刷データに関する情報が含まれている。コンテンツ情報は通信部３４を経て受信バッファー３２に記憶される。コントローラー３１は受信バッファー３２に記憶されているデータを解析しコンテンツ情報を取得する。コンテンツ情報取得後コントローラー３１はコンテンツ情報を受信バッファー３２から破棄する。
【００２８】
続いてコントローラー３１は、ＨＴＴＰのｇｅｔリクエストで印刷データの送信要求をサーバー２に送信する（Ｓ１２５）。印刷データのダウンロード先ＵＲＩはＳ１２０でプリンター３が取得したコンテンツ情報に含まれている。なおＳ１２５においては、Ｓ１０５で通知された印刷ジョブに含まれる印刷データ全体を対象とした送信要求を行う。サーバー２はプリンター３からの印刷データ送信要求を受けて、ＨＴＴＰを用いて印刷データを先頭から所定サイズずつプリンター３に送信する（Ｓ１３０）。Ｓ１３０で送信される印刷データは、Ｓ１２５のｇｅｔリクエストに対応する応答メッセージの中に含まれた形でプリンター３に送信される。応答メッセージに含まれるＨＴＴＰヘッダーには、プリンター３に送信する印刷データ全体のサイズ（サイズＭ）を示す情報が含まれている（Content-Lengthヘッダー）。
【００２９】
サーバー２から送信された印刷データは通信部３４や通信プログラムを実行するコントローラー３１により、受信バッファー３２に格納される。前述の印刷データ全体のサイズＭも受信バッファー３２に格納される。コントローラー３１は、受信バッファー３２内のデータを解析してサイズＭを取得して記憶する。このサイズＭの記憶は、コントローラー３１により印刷データの印刷完了に応じて消去される。続いてコントローラー３１は、受信バッファー３２に格納されている印刷データを処理バッファー３３（第一の処理バッファー３３１）に空きがあれば処理バッファー３３（第一の処理バッファー３３１）に転送するとともに、転送した累積の印刷データのデータ量（サイズｎ）を計測する。また処理バッファー３３に転送済みの印刷データは受信バッファー３２から破棄される。データ量（サイズｎ）は１印刷ジョブごとに計測される（一つの印刷ジョブの印刷が終了するとサイズｎの値はリセットされる）。コントローラー３１は、処理バッファー３３に転送した印刷データを対象に印刷前処理を施す。そして、印刷前処理を施されたデータに基づいてコントローラー３１は印刷部３５を制御して印刷を実行する。印刷が完了した部分に相当する処理バッファー３３内のデータは破棄される。
【００３０】
コントローラー３１が、印刷データの受信、印刷データの受信バッファー３２から処理バッファー３３への転送、転送されたデータ量の計測、印刷前処理、印刷実行の工程を繰り返している途中で、プリンター３においてエラーが発生した場合のシーケンスについて以降で説明する。プリンター３においてエラーが発生すると、プリンター３では印刷を続行できないため、コントローラー３１は印刷動作を中断する。また、コントローラー３１は処理バッファー３３内のデータを印刷再開に備えて破棄せずに一旦残す。処理バッファー３３内に空きが生じないため、コントローラー３１は受信バッファー３２内の印刷データを処理バッファー３３に転送しない。そのため受信バッファー３２は、サーバー２から続々と受信した印刷データであってまだ印刷前処理の処理対象でない印刷データを含むデータで満たされ、後続の印刷データを受信できない状態となる。
【００３１】
この状態をサーバー２に通知するため、コントローラー３１は、Ｓ１３０のサーバー２からの印刷データの送信に対応するＡＣＫパケットにおいてウィンドウサイズを「０」と設定してサーバー２に送信する（Ｓ１３５）。この状態をゼロウィンドウ状態と呼ぶ。サーバー２は、所定の期間（例えば５分間）、ゼロウィンドウ状態が継続していると判断すると、ＨＴＴＰセッションを切断するためのデータを送信する（Ｓ１４０）。具体的には例えば、サーバー２はＲＳＴ（Reset）パケットをプリンター３に送信する。この結果、プリンター３とサーバー２との間のセッションは切断される。セッションが切断されると、コントローラー３１は受信バッファー３２に格納されていた印刷データを破棄する。
【００３２】
エラーが解消され印刷の再開が可能となる時期は未定であり、当該時期までＨＴＴＰセッションを維持し続けることは、サーバー２に負荷を与える。具体的には、セッションごとに確保しておくメモリ領域を長期間解放できない状態となり、その結果、他の通信端末から送信された電子メールを受信してから印刷を実行するまでの時間が遅延する。この遅延を防止するために、サーバー２とプリンター３との間のセッションが一旦切断されるのである。
【００３３】
プリンター３におけるエラーが解消されたことを検出するとコントローラー３１は、再びサーバー２とのＨＴＴＰセッションを確立し（Ｓ１４５）、サーバー２に印刷データ送信要求を送信する（Ｓ１５０）。Ｓ１５０では、発生していたエラーの内容を判別し、エラーの内容に応じて送信要求の態様を切り替える。具体的には、エラーが第一のグループに分類される場合、エラーによる中断の続きの範囲を指定して送信要求を行い、エラーが第二のグループに分類される場合は、印刷データ全体について再度送信要求を行う。
【００３４】
まず、第一のグループのエラーの場合（範囲指定する場合）について説明する。コントローラー３１は、エラーが解消されたことを検出すると、処理バッファー３３に蓄えられている印刷データを用いて印刷前処理や印刷を再開する。また、コントローラー３１は、エラーが発生した時点の印刷データのダウンロード先ＵＲＩと、処理バッファー３３に転送済みのデータ量（サイズｎ）の値に基づいて既に印刷前処理の処理対象となった印刷データを除く残りの印刷データの部分を示す範囲と、を指定して、送信要求を行う。サーバー２から受信して受信バッファー３２に記憶されていた印刷データはセッションの切断にともなって破棄されているので、受信バッファー３２に記憶されていた部分の印刷データも再取得の対象とする。具体的にはコントローラー３１は、印刷データ全体のサイズＭとサイズｎとを比較しサイズＭ＞サイズｎ＞０であれば、印刷データの先頭からサイズｎ分のデータに後続する位置から、印刷データの末尾（サイズＭの位置）までの（サイズＭ−サイズｎ）分の印刷データを範囲指定する。範囲指定には、ＨＴＴＰのｒａｎｇｅヘッダーを用いる。
【００３５】
図５は、一つの印刷ジョブに含まれる印刷データを示す模式図であり、プリンター３におけるエラーが発生した時点の印刷データの状態の一例を説明するための模式図である。この例では、印刷データをその先頭から４つの部分に分け、先頭に近い順からｄ１、ｄ２、ｄ３、ｄ４と呼ぶ。印刷データはその先頭から順にサーバー２から送信され、順に受信バッファー３２に記憶され、処理バッファー３３に転送されて印刷前処理を施され、印刷され、破棄される。エラーが発生したとき、印刷データのうち先頭から所定サイズ分の印刷データｄ１は既に印刷済みで処理バッファー３３から破棄されているデータであり、印刷データｄ１に後続する印刷データｄ２は処理バッファー３３に転送され印刷前処理中のデータおよび印刷中のデータであり、印刷データｄ２に後続する印刷データｄ３は受信バッファー３２に格納されている状態でまだ処理バッファー３３には転送されていない状態のデータであるとする。印刷データｄ３に後続する印刷データｄ４についてはプリンター３にまだ受信されていないデータであるとする。この状態の時点でエラーが発生した場合、コントローラー３１は印刷データｄ３と印刷データｄ４の部分をＳ１５０における印刷データの送信要求において指定する範囲とする。
【００３６】
サーバー２は上述のように範囲指定された印刷データの送信要求を受信すると、要求された部分の印刷データ（ｄ３とｄ４）を抽出してプリンター３に送信する（Ｓ１６０）。なお、印刷データｄ４はサーバー２が未送信の部分の印刷データに相当する。したがって、印刷データｄ３と印刷データｄ４とをサーバー２が送信することは、「処理データの全体のうち未送信の部分を含む一部分を送信する」ことに相当する。プリンター３のコントローラー３１は印刷データを受信し受信バッファー３２に格納すると、上述と同様に、処理バッファー３３に転送し印刷前処理を施して印刷を実行する。よって、エラーが解消した後、印刷データｄ２はそのまま印刷前処理や印刷が再開され、印刷が終了した後に処理バッファー３３から破棄される。また、印刷データｄ３および印刷データｄ４は、サーバー２からプリンター３に送信され、印刷前処理と印刷とが行われる。
【００３７】
次に、第二のグループのエラーの場合（全体を再取得する場合）について説明する。発生したエラーが第二のグループに分類される場合は、コントローラー３１は、処理バッファー３３に記憶されている印刷前処理前や処理中や処理後のデータを破棄し、Ｓ１２５と同様に印刷ジョブに含まれる印刷データ全体についての送信要求を行う（Ｓ１５０）。すなわち、図５を用いて説明すると、コントローラー３１は、印刷データｄ１，ｄ２，ｄ３，ｄ４に対する送信要求を行う。サーバー２は、プリンター３からの送信要求に応じて印刷ジョブに含まれる印刷データ全体（ｄ１，ｄ２，ｄ３，ｄ４）を順次プリンター３に送信する（Ｓ１５５）。そしてプリンター３のコントローラー３１は、サーバー２から送信された印刷データをＳ１３０と同様に順次受信バッファー３２に格納し、もう一度、印刷ジョブが示す印刷データの先頭部分の印刷データｄ１の先頭から処理バッファー３３に転送し、印刷前処理と印刷を実行する。したがってエラーが解消した後、再度はじめから印刷が実行されることになる。一つの印刷ジョブに対応する印刷が完了するとプリンター３は印刷ジョブステータスとして印刷終了をサーバー２に通知し（Ｓ１６０）、他にプリンター３に対する印刷ジョブが存在しなければサーバー２はプリンター３とのＨＴＴＰセッションを切断する（Ｓ１６５）。なお、印刷を再開した後に再びエラーが生じた場合には、Ｓ１３５と同様にサーバー２からの印刷データの送信に対応するＡＣＫパケットにおいてウィンドウサイズを「０」と設定してサーバー２に送信し、Ｓ１４０以降の動作が繰り返される。
【００３８】
以上説明したように、本実施形態によると、発生したエラーの内容に応じてセッション再接続後の印刷データの送信要求の態様を切り替えることができる。エラーによる中断時の続きから印刷を再開することが望ましいエラーが発生した場合は、処理バッファー３３に既に転送済みで印刷前処理の処理対象となっている（処理中あるいは処理済みの）印刷データの送信要求は行わず、処理バッファー３３にまだ転送されておらず印刷前処理の処理対象にまだなっていない印刷データの送信要求をサーバーに対して行う。そのため、既に印刷済みの部分や印刷前処理中の部分の印刷データに対して再度印刷前処理を行って印刷を実行することを防止できる。その結果、印刷中断時の続きから印刷を再開することができるため、インクや印刷媒体などの消耗品が無用に消費されることを防止できる。また、続きから印刷再開するため、再度最初から印刷する場合と比較して、印刷に要する時間も短縮することができる。一方、最初から印刷しなおすことが望ましいエラーが発生した場合は、セッション再接続後に、再度印刷データ全体に対する送信要求をサーバーに対して行い、サーバーから印刷データ全体を受信しなおす。そして印刷データの先頭から順に印刷前処理を再度行い、印刷ジョブに含まれる印刷データ全体の印刷をやり直すことができる。
【００３９】
２．他の実施形態
尚、本発明の技術的範囲は、上述した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上記実施形態ではデータ処理装置がプリンターに適用される例を説明したが、サーバーに対して処理データを要求し、サーバーから取得した処理データを用いてなんらかの処理を行う様々な装置に適用可能である。例えば、サーバーからゲームデータを受信してゲームを提供するゲーム機に適用し、アクションゲームやシューティングゲームのステージ中のエラーであれば第二のグループに分類し、その他のエラーであれば、第一のグループに分類するようにしても良い。
【００４０】
また、上記実施形態で例示したエラーとその分類は一例であって、他にも様々なエラーを第一のグループ又は第二のグループに分類することや、上記実施形態で例示したエラーを分類に含めないことや、上記実施形態で例示したエラーの分類を変更することが考えられる。例えば、インクの廃液を貯留する容器において廃液が許容量を超えたため印刷を続行できないエラーである「廃液オーバーフロー」は、第二のグループに分類されるエラーとして想定可能である。また、例えばプリンター３のカバーが印刷中にロックされる場合、印刷中には「カバーオープン」のエラーは検出されない（発生しない）ので、印刷中は「カバーオープン」を第一のグループと第二のグループとのいずれにも分類しなくても良い。さらに、例えば「停電」を第一のグループに分類して、通電後はエラーによる中断時の続きから印刷を再開しても良い。
【００４１】
また、上記実施形態で説明したバッファーの構成（図２）はあくまでも一例であってこれに限定されるものではない。また、上記実施形態で示した印刷前処理の一部または全てをサーバー２が行っても良い。また、サーバー２は未レンダリングの印刷対象をプリンター３に通知し、プリンター３が印刷対象をレンダリングして印刷データを生成し、当該印刷データに対して印刷前処理を行ってもよい。したがってサーバー２から送信される印刷データの形式も上記実施形態で示した例に限定されない。
また、上記実施形態は、エラーとエラーからの復帰について説明していたがこれに限られず、エラー以外で中断した後に復帰した場合に適用し、中断理由を第一のグループ又は第二のグループに分類しても良い。
【００４２】
なお、第一実施形態においては、コンテンツ情報の送信要求〜受信、および、印刷データの送信要求〜受信は、一続きのＨＴＴＰセッションで行われているが、コンテンツ情報の送信要求〜受信（図４のＳ１１５〜Ｓ１２０）の後にＨＴＴＰセッションを切断し、印刷データの送信要求（Ｓ１２５）の前に新たにＨＴＴＰセッションを確立するようにして印刷データの送信要求〜受信を行ってもよい。また、第一実施形態において、エラー解消後にＨＴＴＰセッションを再び確立（Ｓ１４５）した後、印刷データ全体に対する送信要求を行う（Ｓ１５０）場合に、ＨＴＴＰセッションを再確立した後、印刷データ全体に対する送信要求を行う前に、Ｓ１１５〜Ｓ１２０と同様に、再びコンテンツ情報の送信要求〜受信を行っても良い。そしてその後、ＨＴＴＰセッションを一度切断して、再度ＨＴＴＰセッションを確立してＳ１２５にて印刷データ全体の送信要求を行うようにしてもよい。
【符号の説明】
【００４３】
１：通信端末、２：サーバー、３：プリンター、４：インターネット、２１：アプリケーションサーバー、２２：ＳＭＴＰサーバー、２３：ＨＴＴＰサーバー、２４：ＸＭＰＰサーバー、３１：コントローラー、３２：受信バッファー、３３：処理バッファー、３４：通信部、３５：印刷部
【図１】
2013059931.tif 000003
【図２】
2013059931.tif 000004
【図３】
2013059931.tif 000005
【図４】
2013059931.tif 000006
【図５】
2013059931.tif 000007