説明

データ処理装置、サーバー、データ処理方法

【課題】処理が中断した後処理を再開する場合に適切な動作を行う。
【解決手段】サーバーに処理データの送信要求を行う要求部と、前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信部と、受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理部と、を備え、前記処理部が前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求部は、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、サーバー、データ処理方法に関し、クラウドコンピューティングシステムにおいてユーザーからサーバー経由で取得した要求に応じて処理を実行する技術に関する。
【背景技術】
【0002】
従来、電子メールの送信によって特定のプリンターに印刷を実行させることができるサービスを提供するクラウドコンピューティングシステムが知られている(例えば特許文献1)。このクラウドコンピューティングシステム(以下、単に印刷システムという)は、特定の電子メールを受信すると電子メールに基づいて特定のプリンターに対応した印刷データを生成するサーバーを備え、サーバーに登録されている特定のプリンターはサーバーから印刷データを取得して印刷を実行する。したがって印刷システムの利用者は、PC(Personal Computer)、スマートフォン等のクライアント端末にプリンタードライバーがインストールされていない場合であっても、印刷システムに登録されているプリンターを利用することが可能になる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−71257号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような印刷システムにおいては、ユーザーが送信した電子メールに基づいてサーバーが印刷データを生成し、プリンターに対して印刷ジョブの存在を通知し、通知を受けたプリンターはサーバーに対して印刷データの送信要求を行って印刷データを取得しながら印刷を実行している。プリンターが搭載しているメモリサイズにはコストの観点から制限があるので、印刷が終了した部分の印刷データについてはメモリから破棄し次に処理すべき印刷データのためにメモリ領域を確保する。このようにプリンターは、印刷データを取得しながら印刷を行うため、印刷データの取得途中でプリンターにおいてエラーが発生した場合、印刷を続行することができないため印刷データをメモリから破棄することができず、やがて後続して送信された印刷データを受信できない状態となる。
【0005】
このような場合、従来はエラーが発生したため印刷を終了するという動作となっており、エラーで中断した後のエラー復帰後の動作について特に考慮されていなかった。
本発明は上記課題にかんがみてなされたもので、処理が中断した後処理を再開する場合に適切な動作を行う技術の提供を目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するためのデータ処理装置は、要求部と、受信部と、処理部と、を備える。要求部は、サーバーに処理データの送信要求を行う。受信部は、送信要求に応じてサーバーから送信された処理データを受信する。処理部は、受信した処理データを順次取得し、当該処理データを用いて処理を行う。そして要求部は、処理部が処理データの取得を完了する前に処理データの取得を中断した後、処理データの取得を再開する場合に、次のように送信要求を行う。すなわち要求部は、処理データの取得を中断した理由が第一のグループに分類される場合にデータ全体のうちの処理部が未取得である部分についての送信要求を行い、処理データの取得を中断した理由が第二のグループに分類される場合にデータ全体についての送信要求を行う。
【0007】
ここで、第一のグループに分類される理由には、次のような事象の発生が想定される。すなわち、中断した処理を中断の理由となる事象が解消された後にその続きから再開することが望ましい事象の発生である。第二のグループに分類される理由には、次のような事象の発生が想定される。すなわち、中断した処理を中断の理由となる事象が解消された後にもう一度最初から処理しなおすことが望ましい事象の発生である。中断の理由(となる事象)が分類されるグループは、データ処理装置において予め決められている。
【0008】
したがって本発明の構成によると、処理データの取得を再開する場合に、中断の理由に応じて、データ全体を取得しなおすか、未取得の部分のみを取得するかを切り替えることができる。その結果、中断時の続きから処理を再開することが望ましいと予め決められている事象が発生した場合は、処理部が未取得の処理データを取得することができるので、処理済みのデータを含めて全体を取得し直す構成と比較すると処理に要する時間を短縮できる。また、中断後に再開する場合は再度はじめから処理をし直すことが望ましいと予め決められている事象が発生した場合は、処理データの全体を取得しなおすことができるため、再度処理データ全体を対象に処理を行うことができる。
【0009】
さらに、上記目的を達成するためのデータ処理装置において、要求部は、処理部が未取得である部分の処理データについての送信要求を、HTTPのrangeヘッダーを用いて範囲指定することで行ってもよい。
HTTPのrangeヘッダーを用いることで、処理データの部分的な送信要求を実現することができる。
【0010】
さらに、上記目的を達成するためのデータ処理装置において、処理データは印刷データであり、処理部は、取得した印刷データに基づいて印刷を行う処理部であってもよい。その場合、第一のグループに分類される理由には、印刷媒体なし、色材なし、印刷媒体タイプの不一致、装置カバーオープンのうちの少なくともいずれかのエラーの発生が含まれ、第二のグループに分類される理由には、印刷媒体詰まり、処理部の機械的異常、停電のうちの少なくともいずれかのエラーの発生が含まれてもよい。
上述のような様々なエラーが発生した後当該エラーが解消された場合に、当該エラーが分類されるグループに応じて、印刷データの全体の送信要求を行うか、印刷データの部分的な送信要求を行うかを切り替えることができる。
【0011】
また、上記目的を達成するためのサーバーは、記憶部と、送信部と、を備える。記憶部は、データ処理装置に処理させる処理データを記憶する。送信部は、データ処理装置に処理データを送信する。そして、送信部が処理データの全体の送信を完了する前に処理データの送信を中断した後処理データを再送信する場合に、送信部は、処理データの送信を中断した理由が第一のグループに分類される場合には処理データの全体のうちの送信部が未送信である部分を含む、処理データの一部分についての送信を行い、処理データの送信を中断した理由が第二のグループに分類される場合に処理データ全体についての送信を行う。
【0012】
サーバーが以上のような構成を採用していることにより、処理データの送信を中断した理由に応じて、送信再開後にデータ処理装置に送信する処理データの範囲を切り替えることができる。すなわち、未送信部分を含む一部分の印刷データの送信か、または、印刷データ全体の送信か、を切り替えることができる。そしてデータ処理装置は、サーバーから送信された処理データを用いて処理を行うことができる。
【0013】
なお、請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、サーバーは1台のコンピューター装置から構成されるものに限らず、複数のコンピューター装置が協働して上述のサーバーとして動作する構成を含む。さらに、本発明は方法としても、コンピュータープログラムとしても、そのプログラムの記録媒体としても成立する。むろん、そのコンピュータープログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
【図面の簡単な説明】
【0014】
【図1】第一実施形態にかかるデータ処理装置のブロック図。
【図2】第一実施形態にかかるバッファーの構成例を示す模式図。
【図3】第一実施形態にかかるエラーの分類を示す図。
【図4】第一実施形態にかかる印刷シーケンスのシーケンスチャート。
【図5】第一実施形態にかかる印刷データの各部の状態を説明する模式図。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
1.第一実施形態
1−1.構成
図1は、本実施形態におけるプリンター(データ処理装置、印刷装置)3とサーバー2とを含む印刷システム全体の構成を示すブロック図である。図1に示す印刷システムは、サーバー2に登録されたプリンター3に対応付けられた電子メールアドレスを宛先とする電子メールを任意の通信端末1から送信すると、宛先の電子メールアドレスに対応付けられたプリンター3において電子メールの添付ファイルや本文が印刷される機能を実現する。サーバー2、プリンター3、通信端末1はインターネット4に接続される。
【0016】
サーバー2は1以上のコンピューターによって構成され、アプリケーションサーバー21,SMTPサーバー22,HTTPサーバー23およびXMPPサーバー24を含む。アプリケーションサーバー21,SMTPサーバー22,HTTPサーバー23,XMPPサーバー24のそれぞれは、図示しないCPUとRAMとROMとハードディスク装置と通信部とそれらを接続する内部インターフェースとを備えている。通信部はインターネットからLANを経由して受信する信号をプロトコルに従って変換して内部バスに送出し、内部バスから取り込んだ信号をプロトコルに従って変換してLANを経由してインターネットに送出する。
【0017】
SMTPサーバー22は、アプリケーションサーバー21に登録されたプリンター3に割り当てられた電子メールアドレス宛の電子メールをSMTP(Simple Mail Transfer Protocol)に基づいて送受信する機能を有する。HTTPサーバー23はプリンター3とHTTP(Hyper Text Transfer Protocol)に基づいて通信する機能を有し、印刷データをプリンター3に送信する「送信部」として機能する。XMPPサーバー24はプリンター3とXMPP(Extensible Messaging and Presence Protocol)に基づいて通信する機能を有し、プリンター3に印刷ジョブ有り通知を送信する。アプリケーションサーバー21は、SMTPに基づいて電子メールを受信すると、当該電子メールに基づいて対応するプリンター3に応じた印刷データを生成してサーバー2内のメモリに記憶し(「記憶部」に相当)、XMPPに基づいて対応するプリンター3に印刷ジョブ有り通知を送信し、生成した印刷データをプリンター3からのHTTPに基づいた送信要求に応じてプリンター3に送信する機能を有する。
【0018】
プリンター3は、サーバー2とのXMPPを用いた常時接続によってサーバー2から印刷ジョブ有り通知を通知されると、HTTPを用いて印刷データをサーバー2から受信し、印刷を実行する機能を有する。したがってプリンター3は、CPU、ROM、RAM等を備えたコントローラー31、印刷部35等の通常のプリンターの構成要素に加えて、インターネット4を介して各種のデータを送受信するための通信部34を備えている。通信部34はインターネット4からLANを経由して受信する信号をプロトコルに従って変換して内部バスに送出し、内部バスから取り込んだ信号をプロトコルに従って変換してLANを経由してインターネットに送出する。コントローラー31のROMにはRAMに読み込まれCPUによって実行される通信プログラムや印刷プログラムなどの種々のコンピュータープログラムが記憶されている。これらのコンピュータープログラムをCPUが実行することによって、プリンター3の各種の機能が実現される。
【0019】
通信プログラムは、サーバー2とTCP/IP、HTTP、XMPP等の通信プロトコルに従った通信を行うためのプログラムである。なお、HTTPやXMPPを用いてサーバー2と接続するために必要な情報は予めコントローラー31は取得済みである。受信バッファー32は、通信プログラムを実行するコントローラー31が通信部34を介して外部から受信したデータを記憶するメモリであり、印刷データやなど様々なデータが一旦格納されるメモリである。通信プログラムを実行するコントローラー31および通信部34は、印刷データの送信要求をサーバー2に対して行う「要求部」に相当する。また、通信プログラムを実行するコントローラー31と通信部34と受信バッファー32とは、サーバー2から送信された印刷データを受信する「受信部」に相当する。
【0020】
印刷プログラムは、受信バッファー32に記憶されている印刷データを読み出して処理バッファー33に転送し、印刷前処理を施してプリンター3における印刷に適した形式のデータに印刷データを変換し、変換後のデータに基づいて印刷部35を制御して印刷を行う機能を有するプログラムである。印刷プログラムを実行するコントローラー31と、印刷部35と処理バッファー33とは「処理部」に相当する。本実施形態においては、サーバー2が印刷対象をレンダリングして印刷データを生成しプリンター3に送信する。また本実施形態において、印刷前処理は、サーバー2から受信した印刷データに対して施す、解像度変換処理や、色変換処理や、ハーフトーン処理や、並べ替え処理等を指す。処理バッファー33は、受信バッファー32に記憶された様々なデータの中から抽出され読み出された印刷データに対して前述の印刷前処理を施す際に処理前や処理過程や処理後のデータを記憶するためのメモリである。印刷前処理に含まれる前述の各処理のデータ受け渡しのためにそれぞれ設けられたバッファーメモリをまとめて処理バッファー33と呼ぶ。
【0021】
図2は各バッファーについて説明するための模式図である。図2に示すように例えば本実施形態では処理バッファー33は、受信バッファー32から読み出した解像度変換処理前の印刷データを記憶する第一の処理バッファー331と、解像度変換後のデータであり色変換処理前のデータを記憶する第二の処理バッファー332と、色変換処理後のデータであってハーフトーン処理前のデータを記憶する第三の処理バッファー333と、ハーフトーン処理後のデータであって並べ替え処理前のデータを記憶する第四の処理バッファー334と、並べ替え処理後のデータを記憶する第五の処理バッファー335とを含んでいる。第五の処理バッファー335に記憶されたデータは印刷部35による印刷に用いられる。「処理部が処理データを取得する」とは、本実施形態では具体的に、印刷処理プログラムを実行するコントローラー31が、受信バッファー32に記憶されている印刷データを受信バッファー32から読み出し、処理バッファー33(第一の処理バッファー331)に転送することに相当する。受信バッファー32から読み出され、処理バッファー33(第一の処理バッファー331)に転送された印刷データは、受信バッファー32からは破棄され、受信する新たなデータのための格納場所に当てられる。印刷プログラムは受信バッファー32から処理バッファー33に印刷データを転送するごとに、転送された印刷データの累積のデータ量をサイズnとして計測する計測機能を有している。
【0022】
コントローラー31は、第一の処理バッファー331に記憶されている印刷データに対する解像度変換処理を終了すると処理後のデータを第二の処理バッファー332に書き込み、当該印刷データを第一の処理バッファー331から破棄する。そして、後続の印刷データを受信バッファー32から読み出し第一の処理バッファー331に転送する。第二の処理バッファー332〜第五の処理バッファー335についても同様にコントローラー31は、前段のバッファーからデータを読み出して処理し後段のバッファーに書込みが終了すると前段のバッファーからはデータを破棄し後続のデータを前段のバッファーに転送可能な状態とする。印刷部35は、インクジェット方式、レーザー方式など周知の印刷方式で写真用紙・普通紙・OHPシートなどの印刷媒体に印刷を実行するためのアクチュエーターやセンサーや駆動回路や機械部品を備えている。印刷部35によって印刷が完了した部分に相当する印刷データは処理バッファー33(第五の処理バッファー335)から破棄される。
【0023】
図3は、プリンター3において識別されるエラーの内容とエラーコードと各エラーが分類されるグループとの対応関係を例示する図である。コントローラー31のROMには、エラーコードとエラーが分類されるグループとが対応付けて記憶されている。「印刷媒体なし」は所定の印刷媒体がプリンター3にセットされていないため印刷が実行できないエラーである。「色材なし」はインクやトナーなどの印刷に使用する色材(記録剤)がないために印刷が実行できないエラーである。「印刷媒体のタイプ不一致」は、例えば印刷ジョブにおいて指定されている、写真紙や普通紙などのような印刷媒体の種類と、プリンター3にセットされている印刷媒体の種類とが一致していないエラーである。「カバーオープン」は、印刷ヘッドなどの印刷動作を行う機械部品が収容されている筐体を覆う可動式のカバーが開放された状態であるため印刷を実行できないエラーである。以上のエラーは、エラー解消後はエラーによる中断時の続きから印刷を再開することが望ましいエラーである。よって以上のエラーは、続きから印刷を再開するエラーのグループとしての「第一のグループ」に分類されている。
【0024】
「印刷媒体詰まり」は、印刷媒体の搬送路上で印刷媒体が詰まったために印刷を実行できないエラーである。「機械的異常」は、プリンター3においてなんらかの機械的な異常が発生したため印刷を実行できないエラーである。「停電」は電力が供給されないために印刷を実行できないエラーである。これらのエラーは、エラー解消後は印刷ジョブを最初から再度実行することが望ましいエラーである。よってこれらのエラーは、最初から印刷をし直すエラーのグループとしての「第二のグループ」に分類されている。
【0025】
1−2.印刷シーケンス
図1に示す印刷システムにおいては、通信端末1からプリンター3に対応付けられた電子メールアドレス宛の電子メールが添付ファイルとともに送信されたとき、プリンター3において添付ファイルの印刷が即座に実行されることが望まれる。また、プリンター3が印刷要求を即時に取得するためにサーバー2をHTTPに基づいたメッセージを使ってポーリングすることはサーバー2の負荷とネットワークトラフィックの観点から望ましくない。そこで、プリンター3はXMPPに基づいた印刷ジョブ有り通知をサーバー2から受信する。XMPPは、双方向にメッセージを送信できる所謂プッシュ型のプロトコルであるため、プリンター3によるサーバー2のポーリングは不要となる。プリンター3の電源がオン状態のとき、通信エラーやその他のエラーが特に発生していなければ、サーバー2とプリンター3とは、XMPP接続が常時確立された状態である。
【0026】
図4は、本実施形態における印刷シーケンスのシーケンスチャートであって、さらに詳細には、一つの印刷ジョブに含まれる印刷データをプリンター3が全て取得して処理バッファー33に転送する前にプリンター3にエラーが発生する場合のシーケンスチャートである。なお、図4のシーケンスチャートでは、発明の要部を明確にするため、セッションの確立や切断のシーケンスの詳細や、各通信に応答するACKパケットやFINパケット等の記載を発明に関連する部分を除いて省略している。
【0027】
はじめに、プリンター3に対応付けられた電子メールアドレス宛に通信端末1から送信された電子メールをサーバー2が受信する(S100)と、電子メールに基づいて添付ファイルなどの印刷対象をレンダリングして印刷データを生成し、XMPPを用いてサーバー2は印刷ジョブ有り通知をプリンター3に送信する(S105)。通信部34はサーバー2からXMPPで送信された印刷ジョブ有り通知を受信すると、サーバー2とHTTPセッションを確立し(S110)、HTTPのgetリクエストでコンテンツ情報の送信要求をサーバー2に送信する(S115)。プリンター3から送信されたコンテンツ情報の送信要求を受信したサーバー2は、印刷ジョブのコンテンツ情報をプリンター3に送信する(S120)。ここでコンテンツ情報には、印刷データのダウンロード先URIや、印刷データのドキュメントフォーマット等の印刷ジョブに含まれる印刷データに関する情報が含まれている。コンテンツ情報は通信部34を経て受信バッファー32に記憶される。コントローラー31は受信バッファー32に記憶されているデータを解析しコンテンツ情報を取得する。コンテンツ情報取得後コントローラー31はコンテンツ情報を受信バッファー32から破棄する。
【0028】
続いてコントローラー31は、HTTPのgetリクエストで印刷データの送信要求をサーバー2に送信する(S125)。印刷データのダウンロード先URIはS120でプリンター3が取得したコンテンツ情報に含まれている。なおS125においては、S105で通知された印刷ジョブに含まれる印刷データ全体を対象とした送信要求を行う。サーバー2はプリンター3からの印刷データ送信要求を受けて、HTTPを用いて印刷データを先頭から所定サイズずつプリンター3に送信する(S130)。S130で送信される印刷データは、S125のgetリクエストに対応する応答メッセージの中に含まれた形でプリンター3に送信される。応答メッセージに含まれるHTTPヘッダーには、プリンター3に送信する印刷データ全体のサイズ(サイズM)を示す情報が含まれている(Content-Lengthヘッダー)。
【0029】
サーバー2から送信された印刷データは通信部34や通信プログラムを実行するコントローラー31により、受信バッファー32に格納される。前述の印刷データ全体のサイズMも受信バッファー32に格納される。コントローラー31は、受信バッファー32内のデータを解析してサイズMを取得して記憶する。このサイズMの記憶は、コントローラー31により印刷データの印刷完了に応じて消去される。続いてコントローラー31は、受信バッファー32に格納されている印刷データを処理バッファー33(第一の処理バッファー331)に空きがあれば処理バッファー33(第一の処理バッファー331)に転送するとともに、転送した累積の印刷データのデータ量(サイズn)を計測する。また処理バッファー33に転送済みの印刷データは受信バッファー32から破棄される。データ量(サイズn)は1印刷ジョブごとに計測される(一つの印刷ジョブの印刷が終了するとサイズnの値はリセットされる)。コントローラー31は、処理バッファー33に転送した印刷データを対象に印刷前処理を施す。そして、印刷前処理を施されたデータに基づいてコントローラー31は印刷部35を制御して印刷を実行する。印刷が完了した部分に相当する処理バッファー33内のデータは破棄される。
【0030】
コントローラー31が、印刷データの受信、印刷データの受信バッファー32から処理バッファー33への転送、転送されたデータ量の計測、印刷前処理、印刷実行の工程を繰り返している途中で、プリンター3においてエラーが発生した場合のシーケンスについて以降で説明する。プリンター3においてエラーが発生すると、プリンター3では印刷を続行できないため、コントローラー31は印刷動作を中断する。また、コントローラー31は処理バッファー33内のデータを印刷再開に備えて破棄せずに一旦残す。処理バッファー33内に空きが生じないため、コントローラー31は受信バッファー32内の印刷データを処理バッファー33に転送しない。そのため受信バッファー32は、サーバー2から続々と受信した印刷データであってまだ印刷前処理の処理対象でない印刷データを含むデータで満たされ、後続の印刷データを受信できない状態となる。
【0031】
この状態をサーバー2に通知するため、コントローラー31は、S130のサーバー2からの印刷データの送信に対応するACKパケットにおいてウィンドウサイズを「0」と設定してサーバー2に送信する(S135)。この状態をゼロウィンドウ状態と呼ぶ。サーバー2は、所定の期間(例えば5分間)、ゼロウィンドウ状態が継続していると判断すると、HTTPセッションを切断するためのデータを送信する(S140)。具体的には例えば、サーバー2はRST(Reset)パケットをプリンター3に送信する。この結果、プリンター3とサーバー2との間のセッションは切断される。セッションが切断されると、コントローラー31は受信バッファー32に格納されていた印刷データを破棄する。
【0032】
エラーが解消され印刷の再開が可能となる時期は未定であり、当該時期までHTTPセッションを維持し続けることは、サーバー2に負荷を与える。具体的には、セッションごとに確保しておくメモリ領域を長期間解放できない状態となり、その結果、他の通信端末から送信された電子メールを受信してから印刷を実行するまでの時間が遅延する。この遅延を防止するために、サーバー2とプリンター3との間のセッションが一旦切断されるのである。
【0033】
プリンター3におけるエラーが解消されたことを検出するとコントローラー31は、再びサーバー2とのHTTPセッションを確立し(S145)、サーバー2に印刷データ送信要求を送信する(S150)。S150では、発生していたエラーの内容を判別し、エラーの内容に応じて送信要求の態様を切り替える。具体的には、エラーが第一のグループに分類される場合、エラーによる中断の続きの範囲を指定して送信要求を行い、エラーが第二のグループに分類される場合は、印刷データ全体について再度送信要求を行う。
【0034】
まず、第一のグループのエラーの場合(範囲指定する場合)について説明する。コントローラー31は、エラーが解消されたことを検出すると、処理バッファー33に蓄えられている印刷データを用いて印刷前処理や印刷を再開する。また、コントローラー31は、エラーが発生した時点の印刷データのダウンロード先URIと、処理バッファー33に転送済みのデータ量(サイズn)の値に基づいて既に印刷前処理の処理対象となった印刷データを除く残りの印刷データの部分を示す範囲と、を指定して、送信要求を行う。サーバー2から受信して受信バッファー32に記憶されていた印刷データはセッションの切断にともなって破棄されているので、受信バッファー32に記憶されていた部分の印刷データも再取得の対象とする。具体的にはコントローラー31は、印刷データ全体のサイズMとサイズnとを比較しサイズM>サイズn>0であれば、印刷データの先頭からサイズn分のデータに後続する位置から、印刷データの末尾(サイズMの位置)までの(サイズM−サイズn)分の印刷データを範囲指定する。範囲指定には、HTTPのrangeヘッダーを用いる。
【0035】
図5は、一つの印刷ジョブに含まれる印刷データを示す模式図であり、プリンター3におけるエラーが発生した時点の印刷データの状態の一例を説明するための模式図である。この例では、印刷データをその先頭から4つの部分に分け、先頭に近い順からd1、d2、d3、d4と呼ぶ。印刷データはその先頭から順にサーバー2から送信され、順に受信バッファー32に記憶され、処理バッファー33に転送されて印刷前処理を施され、印刷され、破棄される。エラーが発生したとき、印刷データのうち先頭から所定サイズ分の印刷データd1は既に印刷済みで処理バッファー33から破棄されているデータであり、印刷データd1に後続する印刷データd2は処理バッファー33に転送され印刷前処理中のデータおよび印刷中のデータであり、印刷データd2に後続する印刷データd3は受信バッファー32に格納されている状態でまだ処理バッファー33には転送されていない状態のデータであるとする。印刷データd3に後続する印刷データd4についてはプリンター3にまだ受信されていないデータであるとする。この状態の時点でエラーが発生した場合、コントローラー31は印刷データd3と印刷データd4の部分をS150における印刷データの送信要求において指定する範囲とする。
【0036】
サーバー2は上述のように範囲指定された印刷データの送信要求を受信すると、要求された部分の印刷データ(d3とd4)を抽出してプリンター3に送信する(S160)。なお、印刷データd4はサーバー2が未送信の部分の印刷データに相当する。したがって、印刷データd3と印刷データd4とをサーバー2が送信することは、「処理データの全体のうち未送信の部分を含む一部分を送信する」ことに相当する。プリンター3のコントローラー31は印刷データを受信し受信バッファー32に格納すると、上述と同様に、処理バッファー33に転送し印刷前処理を施して印刷を実行する。よって、エラーが解消した後、印刷データd2はそのまま印刷前処理や印刷が再開され、印刷が終了した後に処理バッファー33から破棄される。また、印刷データd3および印刷データd4は、サーバー2からプリンター3に送信され、印刷前処理と印刷とが行われる。
【0037】
次に、第二のグループのエラーの場合(全体を再取得する場合)について説明する。発生したエラーが第二のグループに分類される場合は、コントローラー31は、処理バッファー33に記憶されている印刷前処理前や処理中や処理後のデータを破棄し、S125と同様に印刷ジョブに含まれる印刷データ全体についての送信要求を行う(S150)。すなわち、図5を用いて説明すると、コントローラー31は、印刷データd1,d2,d3,d4に対する送信要求を行う。サーバー2は、プリンター3からの送信要求に応じて印刷ジョブに含まれる印刷データ全体(d1,d2,d3,d4)を順次プリンター3に送信する(S155)。そしてプリンター3のコントローラー31は、サーバー2から送信された印刷データをS130と同様に順次受信バッファー32に格納し、もう一度、印刷ジョブが示す印刷データの先頭部分の印刷データd1の先頭から処理バッファー33に転送し、印刷前処理と印刷を実行する。したがってエラーが解消した後、再度はじめから印刷が実行されることになる。一つの印刷ジョブに対応する印刷が完了するとプリンター3は印刷ジョブステータスとして印刷終了をサーバー2に通知し(S160)、他にプリンター3に対する印刷ジョブが存在しなければサーバー2はプリンター3とのHTTPセッションを切断する(S165)。なお、印刷を再開した後に再びエラーが生じた場合には、S135と同様にサーバー2からの印刷データの送信に対応するACKパケットにおいてウィンドウサイズを「0」と設定してサーバー2に送信し、S140以降の動作が繰り返される。
【0038】
以上説明したように、本実施形態によると、発生したエラーの内容に応じてセッション再接続後の印刷データの送信要求の態様を切り替えることができる。エラーによる中断時の続きから印刷を再開することが望ましいエラーが発生した場合は、処理バッファー33に既に転送済みで印刷前処理の処理対象となっている(処理中あるいは処理済みの)印刷データの送信要求は行わず、処理バッファー33にまだ転送されておらず印刷前処理の処理対象にまだなっていない印刷データの送信要求をサーバーに対して行う。そのため、既に印刷済みの部分や印刷前処理中の部分の印刷データに対して再度印刷前処理を行って印刷を実行することを防止できる。その結果、印刷中断時の続きから印刷を再開することができるため、インクや印刷媒体などの消耗品が無用に消費されることを防止できる。また、続きから印刷再開するため、再度最初から印刷する場合と比較して、印刷に要する時間も短縮することができる。一方、最初から印刷しなおすことが望ましいエラーが発生した場合は、セッション再接続後に、再度印刷データ全体に対する送信要求をサーバーに対して行い、サーバーから印刷データ全体を受信しなおす。そして印刷データの先頭から順に印刷前処理を再度行い、印刷ジョブに含まれる印刷データ全体の印刷をやり直すことができる。
【0039】
2.他の実施形態
尚、本発明の技術的範囲は、上述した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上記実施形態ではデータ処理装置がプリンターに適用される例を説明したが、サーバーに対して処理データを要求し、サーバーから取得した処理データを用いてなんらかの処理を行う様々な装置に適用可能である。例えば、サーバーからゲームデータを受信してゲームを提供するゲーム機に適用し、アクションゲームやシューティングゲームのステージ中のエラーであれば第二のグループに分類し、その他のエラーであれば、第一のグループに分類するようにしても良い。
【0040】
また、上記実施形態で例示したエラーとその分類は一例であって、他にも様々なエラーを第一のグループ又は第二のグループに分類することや、上記実施形態で例示したエラーを分類に含めないことや、上記実施形態で例示したエラーの分類を変更することが考えられる。例えば、インクの廃液を貯留する容器において廃液が許容量を超えたため印刷を続行できないエラーである「廃液オーバーフロー」は、第二のグループに分類されるエラーとして想定可能である。また、例えばプリンター3のカバーが印刷中にロックされる場合、印刷中には「カバーオープン」のエラーは検出されない(発生しない)ので、印刷中は「カバーオープン」を第一のグループと第二のグループとのいずれにも分類しなくても良い。さらに、例えば「停電」を第一のグループに分類して、通電後はエラーによる中断時の続きから印刷を再開しても良い。
【0041】
また、上記実施形態で説明したバッファーの構成(図2)はあくまでも一例であってこれに限定されるものではない。また、上記実施形態で示した印刷前処理の一部または全てをサーバー2が行っても良い。また、サーバー2は未レンダリングの印刷対象をプリンター3に通知し、プリンター3が印刷対象をレンダリングして印刷データを生成し、当該印刷データに対して印刷前処理を行ってもよい。したがってサーバー2から送信される印刷データの形式も上記実施形態で示した例に限定されない。
また、上記実施形態は、エラーとエラーからの復帰について説明していたがこれに限られず、エラー以外で中断した後に復帰した場合に適用し、中断理由を第一のグループ又は第二のグループに分類しても良い。
【0042】
なお、第一実施形態においては、コンテンツ情報の送信要求〜受信、および、印刷データの送信要求〜受信は、一続きのHTTPセッションで行われているが、コンテンツ情報の送信要求〜受信(図4のS115〜S120)の後にHTTPセッションを切断し、印刷データの送信要求(S125)の前に新たにHTTPセッションを確立するようにして印刷データの送信要求〜受信を行ってもよい。また、第一実施形態において、エラー解消後にHTTPセッションを再び確立(S145)した後、印刷データ全体に対する送信要求を行う(S150)場合に、HTTPセッションを再確立した後、印刷データ全体に対する送信要求を行う前に、S115〜S120と同様に、再びコンテンツ情報の送信要求〜受信を行っても良い。そしてその後、HTTPセッションを一度切断して、再度HTTPセッションを確立してS125にて印刷データ全体の送信要求を行うようにしてもよい。
【符号の説明】
【0043】
1:通信端末、2:サーバー、3:プリンター、4:インターネット、21:アプリケーションサーバー、22:SMTPサーバー、23:HTTPサーバー、24:XMPPサーバー、31:コントローラー、32:受信バッファー、33:処理バッファー、34:通信部、35:印刷部

【特許請求の範囲】
【請求項1】
サーバーに処理データの送信要求を行う要求部と、
前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信部と、
受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理部と、
を備え、
前記処理部が前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求部は、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う、
データ処理装置。
【請求項2】
前記要求部は、前記処理部が未取得である部分の前記処理データについての送信要求を、HTTPのrangeヘッダーを用いて範囲指定することで行う、
請求項2に記載のデータ処理装置。
【請求項3】
前記処理データは、印刷データであり、
前記処理部は、取得した前記印刷データに基づいて印刷を行う処理部であり、
前記第一のグループに分類される前記理由には、印刷媒体なし、色材なし、印刷媒体タイプの不一致、装置カバーオープンのうちの少なくともいずれかのエラーの発生が該当し、
前記第二のグループに分類される前記理由には、印刷媒体詰まり、前記処理部の機械的異常、停電のうちの少なくともいずれかのエラーの発生が該当する、
請求項1または請求項2に記載のデータ処理装置。
【請求項4】
データ処理装置に処理させる処理データを記憶する記憶部と、
前記データ処理装置に前記処理データを送信する送信部と、
を備え、
前記送信部が前記処理データの全体の送信を完了する前に前記処理データの送信を中断した後前記処理データを再送信する場合に、前記送信部は、前記処理データの送信を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記送信部が未送信である部分を含む一部分についての送信を行い、前記処理データの送信を中断した理由が第二のグループに分類される場合には前記処理データの全体についての送信を行う、
サーバー。
【請求項5】
サーバーに処理データの送信要求を行う要求工程と、
前記送信要求に応じて前記サーバーから送信された前記処理データを受信する受信工程と、
受信した前記処理データを順次取得し、当該処理データを用いて処理を行う処理工程と、
を含み、
前記処理工程において前記処理データの取得を完了する前に前記処理データの取得を中断した後前記処理データを再取得する場合に、前記要求工程においては、前記処理データの取得を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記処理部が未取得である部分についての送信要求を行い、前記処理データの取得を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信要求を行う、
データ処理装置のデータ処理方法。
【請求項6】
データ処理装置に処理させる処理データを記憶する記憶工程と、
前記データ処理装置に前記処理データを送信する送信工程と、
を含み、
前記送信工程において前記処理データの全体の送信を完了する前に前記処理データの送信を中断した後前記処理データを再送信する場合に、前記送信工程においては、前記処理データの送信を中断した理由が第一のグループに分類される場合には前記処理データの全体のうちの前記送信部が未送信である部分を含む一部分についての送信を行い、前記処理データの送信を中断した理由が第二のグループに分類される場合には前記処理データ全体についての送信を行う、
サーバーのデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−59931(P2013−59931A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−200268(P2011−200268)
【出願日】平成23年9月14日(2011.9.14)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】