JP6036226B2 - サーバ - Google Patents

サーバ Download PDF

Info

Publication number
JP6036226B2
JP6036226B2 JP2012261689A JP2012261689A JP6036226B2 JP 6036226 B2 JP6036226 B2 JP 6036226B2 JP 2012261689 A JP2012261689 A JP 2012261689A JP 2012261689 A JP2012261689 A JP 2012261689A JP 6036226 B2 JP6036226 B2 JP 6036226B2
Authority
JP
Japan
Prior art keywords
data
partial data
storage device
untransmitted
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012261689A
Other languages
English (en)
Other versions
JP2014106923A (ja
Inventor
功仁彦 櫻井
功仁彦 櫻井
宣夫 水谷
宣夫 水谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012261689A priority Critical patent/JP6036226B2/ja
Priority to US14/038,826 priority patent/US9300747B2/en
Publication of JP2014106923A publication Critical patent/JP2014106923A/ja
Application granted granted Critical
Publication of JP6036226B2 publication Critical patent/JP6036226B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本明細書によって開示される技術は、変換済みデータを外部装置に送信するためのサーバに関する。
特許文献1には、サーバ装置と、印刷装置と、を備えるシステムが開示されている。サーバ装置は、印刷装置からコンテンツのリクエストを受信すると、コンテンツの変換を実行して、PMLデータを生成する。サーバ装置は、上記のリクエストを受信する際に、さらに、印刷装置の受信バッファサイズを受信する。サーバ装置は、受信バッファサイズに応じて、PMLデータを複数個のデータに分割する。サーバ装置は、複数個のデータのそれぞれを印刷装置に順次送信する。
特開2002−14780号公報
上記の特許文献1には、サーバ装置が分割後の各データを印刷装置に送信すべき際に、サーバ装置の内部記憶装置をどのようにして利用するのかについて、何ら開示されていない。
本明細書では、サーバが変換済みデータを外部装置に送信すべき際に、サーバの内部記憶装置に書き込まれるデータ量を低減し得る技術を提供する。
本明細書によって開示される第1のサーバは、受信部と、供給部と、を備える。受信部は、外部装置から複数個の要求コマンドのそれぞれを順次受信する。複数個の要求コマンドのそれぞれは、変換済みデータの送信を第1のサーバに要求するためのコマンドである。変換済みデータは、1回の変換指示に応じて、対象データの変換が実行されることによって生成されるデータである。変換済みデータは、P個(Pは2以上の整数)の部分データに分割された状態で、外部記憶装置に格納される。P個の部分データのうちの少なくともP−1個の部分データのそれぞれは、所定のデータサイズを有する。供給部は、複数個の要求コマンドに応じて、外部記憶装置内の変換済みデータを外部装置に供給する。供給部は、書込部と、送信部と、を備える。書込部は、複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、外部記憶装置から、P個の部分データの一部である1個以上の未送信部分データを取得して、1個以上の未送信部分データを第1のサーバの内部記憶装置に書き込む。未送信部分データは、P個の部分データのうち、外部装置に未だに送信されていない部分を含む部分データである。送信部は、複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、内部記憶装置内の1個以上の未送信部分データのうちの少なくとも一部を外部装置に送信する。
上記の構成によると、第1のサーバは、1個の要求コマンドが受信される毎に、P個の部分データの一部である1個以上の未送信部分データを内部記憶装置に書き込み、内部記憶装置内の1個以上の未送信部分データのうちの少なくとも一部を外部装置に送信する。従って、1個の要求コマンドが受信される毎に、変換済みデータの全てを内部記憶装置に書き込む構成と比べると、内部記憶装置に書き込まれるデータ量を低減し得る。
上記の第1のサーバ及び/又は第2のサーバを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ読取可能記憶媒体も、新規で有用である。
通信システムの構成を示す。 各デバイスによって実行される各処理のシーケンス図を示す。 第1実施例の送信サーバの応答処理のフローチャートを示す。 図2の続きの第1実施例のシーケンス図を示す。 第1実施例で実現されるケースA1及びA2を説明するための図を示す。 第1実施例で実現されるケースA3及びA4を説明するための図を示す。 比較例を説明するための図を示す。 第2実施例の送信サーバの応答処理のフローチャートを示す。 第2実施例で実現されるケースB1を説明するための図を示す。 第2実施例で実現されるケースB2及びB3を説明するための図を示す。
(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、変換サーバ10と、送信サーバ50と、プリンタ100と、携帯端末110と、を備える。各サーバ10,50及びプリンタ100は、インターネット4を介して、様々なデータを相互に通信可能である。また、プリンタ100及び携帯端末110は、例えば、Wi−Fiアライアンスによって定められる無線通信を実行して、様々なデータを相互に通信可能である。
(変換サーバ10の構成)
変換サーバ10は、プリンタ100のベンダによって提供される。変換サーバ10は、プリンタ100が解釈不可能な印刷対象の対象データの変換を実行して、プリンタ100が解釈可能な変換済みデータ(後述の二値データ)を生成するためのサーバである。変換サーバ10は、ネットワークインターフェース20と、制御部30と、を備える。
ネットワークインターフェース20は、有線又は無線のインターフェースであり、インターネット4に接続される。制御部30は、CPU32と、プログラムメモリ34と、を備える。CPU32は、プログラムメモリ34に格納されているプログラムに従って、様々な処理を実行する。CPU32が上記のプログラムに従って処理を実行することによって、生成部40及び格納制御部42の各機能が実現される。なお、上記のプログラムは、例えば、PDF(Portable Document Formatの略)形式のデータを二値データに変換するためのプログラムを含む。
(送信サーバ50の構成)
送信サーバ50は、プリンタ100のベンダによって提供される。送信サーバ50は、変換サーバ10によって生成される変換済みデータ(即ち二値データ)を格納し、プリンタ100からの要求に応じて変換済みデータをプリンタ100に送信するためのサーバである。送信サーバ50は、ネットワークフェース60と、制御部70と、データベース90と、を備える。
ネットワークフェース60は、有線又は無線のインターフェースであり、インターネット4に接続される。制御部70は、CPU72と、プログラムメモリ74と、VRAM76(Volatile Random Access Memoryの略;揮発性RAM)と、を備える。CPU72は、プログラムメモリ74に格納されているプログラムに従って、様々な処理を実行する。CPU72が上記のプログラムに従って処理を実行することによって、受信部80及び供給部82の各機能が実現される。なお、供給部82は、決定部84と、書込部86と、送信部88と、を備える。
VRAM76は、送信サーバ50が各処理を実行する過程において、様々なデータが書き込まれるワークメモリである。データベース90は、変換サーバ10によって生成される変換済みデータ(より具体的には後述の複数個の分割データ)を格納するための記憶装置である。なお、送信サーバ50は、データベース90内のデータを外部(例えばプリンタ100)に送信すべき場合には、データベース90から当該データを取得して、当該データをVRAM76に一旦書き込まなければならない。そして、送信サーバ50は、VRAM76内の当該データを外部に送信することによって、データベース90内の当該データを外部に送信することができる。
(プリンタ100の構成)
プリンタ100は、インクジェット方式又はレーザ方式の印刷機構(図示省略)を備える。プリンタ100は、JPEG(Joint Photographic Experts Groupの略)形式のデータを二値データに変換するためのプログラムを備える。即ち、プリンタ100は、JPEG形式の対象データを解釈可能である。従って、プリンタ100は、対象データがJPEG形式のデータである場合には、当該対象データの変換を実行して、ドットのON又はOFFを示す二値データを生成することができる。そして、生成済みの二値データが印刷機構に供給されるために、印刷機構は、当該二値データに従って、印刷媒体に画像を印刷することができる。
一方において、プリンタ100は、PDF形式のデータを解釈するためのプログラムを備えていない。即ち、プリンタ100は、PDF形式の対象データを解釈不可能である。従って、プリンタ100は、対象データがPDF形式のデータである場合には、当該対象データの変換を実行して、二値データを生成することができない。この場合、プリンタ100は、対象データを変換サーバ10に送信して、送信サーバ50から二値データを受信する。そして、受信済みの二値データが印刷機構に供給されるために、印刷機構は、当該二値データに従って、印刷媒体に画像を印刷することができる。
(携帯端末110の構成)
携帯端末110は、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末装置である。携帯端末110は、例えば、Wi−Fiアライアンスによって定められる無線通信を実行して、印刷対象の対象データをプリンタ100に送信する。
(各デバイスが実行する各処理;図2)
図2に示されるように、例えば、携帯端末110は、ユーザの操作に応じて、JPEG形式の対象データであるJPEGデータ200と、JPEGデータ200に従った印刷の実行を指示するための印刷指示と、をプリンタ100に送信する。
プリンタ100は、携帯端末110からJPEGデータ200及び印刷指示を受信すると、JPEGデータ200を解釈可能であると判断する。この場合、プリンタ100は、JPEGデータ200の変換を実行して、二値データ202を生成する。具体的に言うと、プリンタ100は、まず、RGBの多値データ(例えば256階調)であるJPEGデータ200を、CMYKの多値データ(例えば256階調)に変換する。次いで、プリンタ100は、CMYKの多値データに対してハーフトーン処理等を実行して、CMYKの二値データ(即ちドットのON又はOFFを示すデータ)を生成する。なお、以下では、二値データのことを「BD(Binary Dataの略)」と表現することがある。
次いで、プリンタ100は、生成済みの二値データ(BD)202に従って、印刷媒体に画像を印刷する。このように、プリンタ100は、携帯端末110からJPEGデータ200を受信する場合には、変換サーバ10及び送信サーバ50を用いずに、印刷を実行することができる。
また、例えば、携帯端末110は、ユーザの操作に応じて、PDF形式の対象データであるPDFデータ210と、PDFデータ210に従った印刷の実行を指示するための印刷指示と、をプリンタ100に送信する。
プリンタ100は、携帯端末110からPDFデータ210及び印刷指示を受信すると、PDFデータ210を解釈不可能であると判断する。この場合、プリンタ100は、PDFデータ210と、PDFデータ210の変換の実行を指示するための変換指示と、を変換サーバ10に送信する。変換指示は、プリンタ100のMACアドレスを含む。
変換サーバ10の生成部40は、プリンタ100からPDFデータ210及び変換指示を受信すると、PDFデータ210の変換を実行して、二値データ212を生成する。具体的に言うと、生成部40は、ページ記述言語であるPDFデータ210を、CMYKの多値データ(例えば256階調)に変換する。次いで、生成部40は、CMYKの多値データに対してハーフトーン処理等を実行して、CMYKの二値データ212を生成する。
次いで、格納制御部42は、二値データ212から複数個の分割データ214を生成する。複数個の分割データ214のそれぞれは、ヘッダデータと、部分二値データと、を含む。なお、以下では、分割データ、ヘッダデータ、部分二値データのことを、それぞれ、「DD(Divided Dataの略)」、「HD(Header Dataの略)」、「PBD(Partial Binary Dataの略)」と表現することがある。
図2に示される例を参照しながら、二値データ(BD)212から複数個の分割データ(DD)214を生成するための手法を説明する。格納制御部42は、14Mバイト(Mはメガを表わす)の二値データ212のうち、1バイト目のデータから4Mバイト目までのデータを、1個目の部分二値データ(PBD)として決定する。次いで、格納制御部42は、1個目の部分二値データに対応するID(即ち識別情報)として「ID001」を決定し、1個目の分割データの開始(即ち先頭)を示す開始データと、「ID001」と、を含む1個目のヘッダデータ(HD)を生成する。そして、格納制御部42は、1個目のヘッダデータと、1個目の部分二値データと、を含む1個目の分割データ(DD)を生成する。
同様に、格納制御部42は、2個目の分割データと3個目の分割データとを順次生成する。2個目の分割データに含まれる2個目のヘッダデータは、開始データと「ID002」とを含む。2個目の分割データに含まれる2個目の部分二値データは、14Mバイトの二値データ212のうち、4M+1バイト目のデータから8Mバイト目までのデータを含む。3個目の分割データに含まれる3個目のヘッダデータは、開始データと「ID003」とを含む。3個目の分割データに含まれる3個目の部分二値データは、14Mバイトの二値データ212のうち、8M+1バイト目のデータから12Mバイト目までのデータを含む。
最後に、格納制御部42は、4個目の分割データを生成する。4個目の分割データに含まれる4個目のヘッダデータは、開始データと「ID004」とを含む。4個目の分割データに含まれる4個目の部分二値データは、14Mバイトの二値データ212のうち、12M+1バイト目のデータから14Mバイト目までのデータを含む。即ち、4個目の部分二値データは、1個目〜3個目の各部分二値データ(即ち4Mバイトの各部分二値データ)とは異なり、2Mバイトのデータしか含まない。
上述したように、格納制御部42は、予め決められている4Mバイトという分割の単位で、14Mバイトのデータサイズを有する二値データ212を分割して、4個の部分二値データを生成する。仮に、二値データ212の合計データサイズが上記の分割の単位(即ち4Mバイト)の整数倍である場合には、各部分二値データのデータサイズは同じである。ただし、図2の例のように、二値データ212の合計データサイズ(即ち14Mバイト)が上記の分割の単位(即ち4Mバイト)の整数倍でない場合には、最後に生成される1個の部分二値データのデータサイズ(即ち2Mバイト)は、他の各部分二値データのデータサイズ(即ち4Mバイト)よりも小さくなる。即ち、分割の結果として生成される部分二値データの個数を「P(Pは2以上の整数)」と表現する場合に、格納制御部42は、P個(例えば4個)の部分二値データのうちの少なくともP−1個(例えば3個)の部分二値データのそれぞれが4Mバイトのデータサイズ(即ち同じデータサイズ)を有するように、二値データ212をP個の部分二値データに分割する。なお、変形例では、分割の単位は、4Mバイトよりも小さくてもよいし、4Mバイトよりも大きくてもよい。
また、上述したように、格納制御部42は、1個目の分割データ、2個目の分割データ・・・P個目の分割データのそれぞれについて、「ID001」、「ID002」・・・「ID00P」等のように、数値が昇順で大きくなるように、IDを決定する。このようにして、各分割データに対応する各IDが決定されるために、送信サーバ50は、後述の図3のS30において、各分割データをデータベース90から適切に取得することができる。
次いで、格納制御部42は、変換指示に含まれるプリンタ100のMACアドレスと、生成済みの複数個の分割データ214と、を送信サーバ50に供給して、プリンタ100のMACアドレスと複数個の分割データ214とを対応付けて、送信サーバ50のデータベース90内に格納させる。このように、本実施例によると、変換サーバ10は、プリンタ100から1回の変換指示及びPDFデータ210が受信される場合に、二値データ212から得られる4個の部分二値データ(より具体的には4個の分割データ214)をデータベース90に適切に格納させることができる。
本実施例では、複数個の分割データ214のそれぞれが開始データ及びIDを含むために、送信サーバ50は、データベース90内の各分割データ214を1個のデータとして扱うことができる。即ち、送信サーバ50は、複数個の分割データ214のうちの一部である1個以上の分割データ(例えば1個の分割データ)のみをデータベース90から取得して、当該1個以上の分割データをVRAM76に書き込むことができる。これに対し、仮に、二値データ212が分割されない状態でデータベース90に格納されると、送信サーバ50は、データベース90から二値データ212の全てを取得することしかできず、二値データ212の一部のみを取得して、当該一部をVRAM76に書き込むことができない。本実施例では、二値データ212が分割された状態でデータベース90に格納されるために、送信サーバ50は、後述の図3の各処理を適切に実行することができる。
詳しくは後述するが(図4参照)、プリンタ100は、変換指示及びPDFデータ210を変換サーバ10に送信すると、複数個の要求コマンドのそれぞれを送信サーバ50に順次送信する。複数個の要求コマンドのそれぞれは、二値データ212の送信を送信サーバ50に要求するためのコマンドである。送信サーバ50は、複数個の要求コマンドのそれぞれに応じて、データベース90から各分割データを順次取得して、各分割データをVRAM76に順次書き込む。そして、送信サーバ50は、VRAM76内に順次書き込まれる各分割データを用いて、各部分二値データをプリンタ100に順次送信する。この結果、プリンタ100は、送信サーバ50から二値データ212の全てを受信することができ、二値データ212に従って印刷を実行することができる。図3を参照して、送信サーバ50がこのような処理を実行するためのフローチャートの内容を説明する。
(送信サーバ50の応答処理;図3)
以下では、プリンタ100のMACアドレスに対応付けられている複数個の分割データ214が、送信サーバ50のデータベース90に格納されている状況を前提として、図3の応答処理の内容を説明する。
S10において、送信サーバ50の受信部80は、プリンタ100から要求コマンドを受信することを監視している。要求コマンドは、プリンタ100のMACアドレスと、当該要求コマンドに応じて送信可能なデータサイズを示す情報(以下では「要求データサイズ」と呼ぶ)と、当該要求コマンドに応じて送信されるべきデータの開始位置を示す情報(以下では「要求開始位置」と呼ぶ)と、を含む。
要求データサイズは、プリンタ100によって指定される情報であり、プリンタ100のメモリ(図示省略)の現在の空き容量に依存する。即ち、プリンタ100は、プリンタ100のメモリの現在の空き容量が大きい程、大きい要求データサイズを決定する。また、要求開始位置は、プリンタ100によって指定される情報であり、二値データ212のうち、プリンタ100によって既に受信された部分のデータサイズに依存する。即ち、プリンタ100は、二値データ212のうちの受信済みの部分の次のデータの位置を要求開始位置として決定する。例えば、プリンタ100は、二値データ212を全く受信していない状況では、「1バイト目」を要求開始位置として決定する。また、例えば、プリンタ100は、二値データ212のうちの1バイト目〜4Mバイト目の部分を既に受信している状況では、「4M+1バイト目」を要求開始位置として決定する。
受信部80は、プリンタ100から要求コマンドを受信すると、S10でYESと判断して、S12に進む。S12では、決定部84は、受信済みの要求コマンドに含まれる要求開始位置を含む分割データに対応するID(以下では「IDstart」と呼ぶ)を特定する。上述したように、本実施例では、4Mバイトという分割の単位で二値データ212が各部分二値データに分割され、さらに、各分割データに対応する各IDは、数値が昇順で大きくなるように設定される。決定部84は、これらのルールと、要求開始位置と、に基づいて、IDstartを特定することができる。より具体的に言うと、決定部84は、要求開始位置の値(例えば1バイト目)を分割の単位の値X(即ち4Mバイト)で除算することによって得られる値において、小数点以下を繰り上げて整数値を算出し、算出済みの整数値に対応するIDをIDstartとして特定する。
例えば、要求開始位置が「1バイト目」である場合には、決定部84は、「1バイト」を「4Mバイト」で除算することによって得られる値において、小数点以下を繰り上げて整数値「1」を算出する。そして、決定部84は、算出済みの整数値「1」に対応する「ID001」をIDstartとして特定する。また、例えば、要求開始位置が「4M+1バイト目」である場合には、決定部84は、「4M+1バイト」を「4Mバイト」で除算することによって得られる値において、小数点以下を繰り上げて整数値「2」を算出する。そして、決定部84は、算出済みの整数値「2」に対応する「ID002」をIDstartとして特定する。
次いで、S14では、決定部84は、受信済みの要求コマンドに含まれる要求データサイズYと、分割の単位の値Xと、を比較する。決定部84は、Y<Xである場合には、S14でYESと判断して、S18に進む。一方において、決定部84は、Y≧Xである場合には、S14でNOと判断して、S20に進む。
S18では、決定部84は、データベース90から取得すべき分割データの個数Lとして、「1」を決定する。一方において、S20では、決定部84は、LとXの乗算値がY以下になる関係(即ちL×X≦Y)を満たす最大の整数を個数Lとして決定する。例えば、Xが「4Mバイト」であり、Yが「9Mバイト」である場合には、Lは「2」である。また、例えば、Xが「4Mバイト」であり、Yが「5Mバイト」である場合には、Lは「1」である。このように、本実施例によると、S14〜S20において、決定部84は、分割の単位の値X(即ち4Mバイト)と、要求コマンドに含まれる要求データサイズYと、を用いて、個数Lを適切に決定することができる。
S30では、書込部86は、受信済みの要求コマンドに含まれるプリンタ100のMACアドレスに対応付けられている複数個の分割データ214のうちの1個以上の分割データをデータベース90から取得して、当該1個以上の分割データをVRAM76に書き込む。具体的に言うと、書込部86は、IDstart、IDstart+1、IDstart+2・・・IDstart+(L−1)に対応するL個の分割データをデータベース90から取得して、L個の分割データをVRAM76に書き込む。例えば、IDstartが「ID001」であり、Lが「1」である場合(例えばS18が実行された場合)には、書込部86は、複数個の分割データ214のうち、「ID001」に対応する1個の分割データのみをVRAM76に書き込む。また、例えば、IDstartが「ID003」であり、Lが「2」である場合(例えばS20が実行された場合)には、書込部86は、複数個の分割データ214のうち、「ID003」及び「ID004」に対応する2個の分割データのみをVRAM76に書き込む。
上述したように、S30では、書込部86は、IDstart以降の各IDに対応するL個の分割データをVRAM76に書き込む。このために、書込部86は、プリンタ100によって指定される要求開始位置以降の部分を含むL個の分割データ、即ち、プリンタ100に未だに送信されていない部分を含むL個の分割データを、VRAM76に適切に書き込むことができる。
なお、例えば、「ID001」〜「ID004」に対応する4個の分割データ214がデータベース90に格納されており、IDstartが「ID003」であり、Lが「3」である場合では、書込部86は、Lが「3」であるにも関わらず、「ID003」及び「ID004」に対応する2個の分割データのみをVRAM76に書き込む。「ID005」に対応する分割データが存在しないからである。このように、書込部86は、取得すべきL個の分割データがデータベース90内に存在しない場合には、L個未満の分割データをVRAM76に書き込む。
次いで、S32では、送信部88は、VRAM76内のL個の分割データ(もしくはL個未満の分割データ)に含まれるL個の部分二値データのうち、要求開始位置から、送信データサイズが要求データサイズYを超えない位置までを、プリンタ100に送信する。なお、以下では、「送信データサイズが要求データサイズYを超えない位置」のことを、簡単に、「Yを超えない位置」と記載する。
例えば、IDstartが「ID001」であり、Xが「4Mバイト」であり、Yが「3Mバイト」である第1の状況を想定する。第1の状況では、S14でYESと判断され、S18で個数Lとして「1」が決定され、「ID001」に対応する1個の分割データ(即ち1バイト目〜4Mバイト目の部分二値データ)がVRAM76に書き込まれる。
第1の状況において、例えば、要求開始位置が「1バイト目」であるケースでは、S32において、送信部88は、VRAM76内の1バイト目〜4Mバイト目の部分二値データのうち、要求開始位置「1バイト目」から、Yを超えない位置「3Mバイト目」まで(即ち3Mバイトのデータ)を、プリンタ100に送信する。
また、第1の状況において、例えば、要求開始位置が「3M+1バイト目」であるケースでは、S32において、送信部88は、VRAM76内の1バイト目〜4Mバイト目の部分二値データのうち、要求開始位置「3M+1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「4Mバイト目」まで(即ち1Mバイトのデータ)を、プリンタ100に送信する。
また、例えば、IDstartが「ID001」であり、Xが「4Mバイト」であり、Yが「9Mバイト」である第2の状況を想定する。第2の状況では、S14でNOと判断され、S20で個数Lとして「2」が決定され、「ID001」及び「ID002」に対応する2個の分割データ(即ち1バイト目〜8Mバイト目の部分二値データ)がVRAM76に書き込まれる。第2の状況において、例えば、要求開始位置が「1バイト目」であるケースでは、S32において、送信部88は、VRAM76内の1バイト目〜8Mバイト目の部分二値データのうち、要求開始位置「1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「8Mバイト目」まで(即ち8Mバイトのデータ)を、プリンタ100に送信する。
上述したように、決定部84、書込部86、及び、送信部88が、S12〜S32の処理を実行することによって、供給部82の機能が実現される。即ち、供給部82は、複数個の分割データ214のうちの一部である1個以上の分割データ(即ち1個以上の部分二値データ)をデータベース90から取得して、当該1個以上の分割データをVRAM76に書き込む(S12〜S30)。そして、供給部82は、VRAM76内の1個以上の分割データに含まれる1個以上の部分二値データのうちの少なくとも一部をプリンタ100に供給する(S32)。
次いで、S34では、制御部70は、S30でVRAM76に書き込まれた各分割データを、VRAM76から消去する。これにより、各分割データが書き込まれていた領域が解放されるために、制御部70は、当該領域を用いて、様々な処理(例えば、プリンタ100とは異なるプリンタから受信される要求コマンドに応答するための処理)を実行することができる。
S34が終了すると、S10に戻る。即ち、制御部70は、プリンタ100から1個の要求コマンドを受信する毎に、S12〜S34の処理を実行する。
(図2の続き:図4)
続いて、図4を参照して、図2の続きの各処理の内容を説明する。図4では、図2の携帯端末110及び変換サーバ10が処理を実行しないので、携帯端末110及び変換サーバ10を図示省略している。
プリンタ100は、変換指示及びPDFデータ210を変換サーバ10に送信した後に(図2参照)、1個目の要求コマンドを送信サーバ50に送信する。プリンタ100は、二値データ212のうちのいずれのデータも未だに受信していないので、要求開始位置「1バイト目」を含む1個目の要求コマンドを送信する。また、図4の例では、プリンタ100は、プリンタ100のメモリの空き容量に基づいて、要求データサイズ「9Mバイト」を決定して、当該要求データサイズ「9Mバイト」を含む1個目の要求コマンドを送信する。なお、プリンタ100は、1個目の要求コマンドを送信すべき際に要求データサイズ(即ち9Mバイト)を決定すると、2個目以降の要求コマンドを送信すべき際にも同じ要求データサイズ(即ち9Mバイト)を決定する。
送信サーバ50は、プリンタ100から1個目の要求コマンドを受信すると(図3のS10でYES)、要求開始位置「1バイト目」に基づいて、IDstartとして「ID001」を特定する(S12)。X=4Mバイトであり、Y=9Mバイトであるために、送信サーバ50は、Y≧Xと判断し(S14でNO)、「L×X(4M)≦Y(9M)」を満たす最大の整数「2」を個数Lとして決定する(S20)。
送信サーバ50は、「ID001」〜「ID004」に対応する4個の分割データ214のうち、「ID001」及び「ID002」に対応する2個の分割データのみをデータベース90から取得して、当該2個の分割データをVRAM76に書き込む(S30)。送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち1バイト目〜8Mバイト目の部分二値データ)のうち、要求開始位置「1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「8Mバイト目」まで(即ち8Mバイトのデータ)を、プリンタ100に送信する(S32)。次いで、送信サーバ50は、VRAM76内の2個の分割データを消去する(S34)。
プリンタ100は、送信サーバ50から1バイト目〜8Mバイト目の部分(即ち二値データ212の一部)を受信すると、当該部分に従って印刷を実行する。
次いで、プリンタ100は、2個目の要求コマンドを送信サーバ50に送信する。プリンタ100は、1バイト目〜8Mバイト目の部分を既に受信しているので、要求開始位置「8M+1バイト目」を含む2個目の要求コマンドを送信する。2個目の要求コマンドは、要求データサイズ「9Mバイト」を含む。
送信サーバ50は、プリンタ100から2個目の要求コマンドを受信すると(S10でYES)、要求開始位置「8M+1バイト目」に基づいて、IDstartとして「ID003」を特定する(S12)。送信サーバ50は、1個目の要求コマンドの場合と同様に、Y≧Xと判断し(S14でNO)、個数Lとして「2」を決定する(S20)。
送信サーバ50は、「ID001」〜「ID004」に対応する4個の分割データ214のうち、「ID003」及び「ID004」に対応する2個の分割データのみをデータベース90から取得して、当該2個の分割データをVRAM76に書き込む(S30)。送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち8M+1バイト目〜14Mバイト目の部分二値データ)のうち、要求開始位置「8M+1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「14Mバイト目」まで(即ち6Mバイトのデータ)を、プリンタ100に送信する(S32)。次いで、送信サーバ50は、VRAM76内の2個の分割データを消去する(S34)。
プリンタ100は、送信サーバ50から8M+1バイト目〜14Mバイト目の部分(即ち二値データの一部)を受信すると、当該部分に従って印刷を実行する。これにより、プリンタ100は、送信サーバ50から二値データ212(即ち4個の部分二値データ)の全てを受信して、二値データ212に従って印刷を実行することができる。
上述したように、本実施例によると、プリンタ100は、印刷対象の対象データ(即ちPDFデータ210)を解釈不可能である場合に、変換サーバ10及び送信サーバ50を用いて、印刷を適切に実行することができる。本実施例によると、様々な形式のデータを解釈するためのプログラムをプリンタ100に搭載しなくても、様々な形式の対象データによって表される画像の印刷をプリンタ100に実行させることができる。
なお、フローチャート及びシーケンス図では図示省略しているが、送信サーバ50の制御部70は、プリンタ100のMACアドレスに対応付けられている各分割データ214がデータベース90に格納されてから所定時間が経過すると、各分割データ214をデータベース90から消去する。この構成によると、プリンタ100は、上記の所定時間が経過するまで、送信サーバ50から複数回に亘って二値データ212を取得することができ、複数回に亘って印刷を実行することができる。
ただし、変形例では、制御部70は、上記の所定時間の経過を待たずに、各分割データ214の全てがプリンタ100に送信されると、各分割データ214をデータベース90から消去してもよい。この構成によると、データベース90から二値データ212を迅速に消去することができ、データベース90の空き容量が不足するという事象が発生するのを抑制することができる。
(本実施例によって実現される各ケースの内容;図5及び図6)
図5のケースA1は、図4のケースをテーブルで表現したものである。「回数」の欄は、プリンタ100から送信サーバ50への要求コマンドの送信回数を示す。「パラメータ」の欄は、図3のS12で特定されるIDstartと、S18又はS20で決定される個数Lと、を示す。「取得データ」の欄は、S30でデータベース90から取得される分割データ(即ちVRAM76に書き込まれる分割データ)を模式的に示す。「応答データ」の欄は、S32でプリンタ100に送信されるデータを模式的に示す。
なお、ケースA1以外の各ケース(例えば、図6のケースA3、図9のケースB1等)に対応する各テーブル内の各欄は、ケースA1のテーブル内の各欄と同様である。また、各ケースでは、14Mバイトの二値データ212から生成される4個の分割データ214が、データベース90に格納されている状況を想定している。
(ケースA1)
図4で説明したように、図5のケースA1では、X=4Mバイトであり、Y=9Mバイトである。ケースA1では、送信サーバ50は、1回目の要求コマンドに応じて、「ID001」及び「ID002」に対応する2個の分割データをVRAM76に書き込む(図3のS30)。そして、送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち1バイト目〜8Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)。
送信サーバ50は、2回目の要求コマンドに応じて、「ID003」及び「ID004」に対応する2個の分割データをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち8M+1バイト目〜14Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)。
(ケースA2)
図5のケースA2では、X=4Mバイトであり、Y=13Mバイトである。ケースA2では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S12)、Y≧Xと判断し(S14でNO)、「L×X(4M)≦Y(13M)」を満たす最大の整数「3」を個数Lとして決定する(S20)。従って、送信サーバ50は、「ID001」、「ID002」、及び、「ID003」に対応する3個の分割データをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の3個の分割データに含まれる3個の部分二値データ(即ち1バイト目〜12Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)
1回目の要求コマンドに応じて1バイト目〜12Mバイト目の部分がプリンタ100に送信されているために、2回目の要求コマンドは、要求開始位置「12M+1バイト目」を含む。送信サーバ50は、2回目の要求コマンドを受信すると、IDstartとして「ID004」を特定し(S12)、Y≧Xと判断し(S14でNO)、個数Lとして「3」を決定する(S20)。ただし、データベース90には「ID005」以降に対応する分割データが格納されていないために、送信サーバ50は、個数Lが「3」であるにも関わらず、「ID004」に対応する1個の分割データのみをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち12M+1バイト目〜14Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)。
(ケースA3)
図6のケースA3では、X=4Mバイトであり、Y=5Mバイトである。ケースA3では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S12)、Y≧Xと判断し(S14でNO)、「L×X(4M)≦Y(5M)」を満たす最大の整数「1」を個数Lとして決定する(S20)。従って、送信サーバ50は、「ID001」に対応する1個の分割データをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち1バイト目〜4Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)。
1回目の要求コマンドに応じて1バイト目〜4Mバイト目の部分がプリンタ100に送信されているために、2回目の要求コマンドは、要求開始位置「4M+1バイト目」を含む。送信サーバ50は、2回目の要求コマンドを受信すると、IDstartとして「ID002」を特定し(S12)、Y≧Xと判断し(S14でNO)、個数Lとして「1」を決定する(S20)。従って、送信サーバ50は、「ID002」に対応する1個の分割データをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち4M+1バイト目〜8Mバイト目の部分二値データ)の全てを、プリンタ100に送信する(S32)。
3回目以降の要求コマンドが受信される場合については、1回目及び2回目の要求コマンドが受信される場合と同様である。ケースA3では、送信サーバ50は、4個の要求コマンドに応じて、二値データ212の全てをプリンタ100に送信することができる。
(ケースA4)
図6のケースA4では、X=4Mバイトであり、Y=3Mバイトである。ケースA4では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S12)、Y<Xと判断し(S14でYES)、個数Lとして「1」を決定する(S18)。従って、送信サーバ50は、「ID001」に対応する1個の分割データをVRAM76に書き込む(S30)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち1バイト目〜4Mバイト目の部分二値データ)のうち、要求開始位置「1バイト目」から、Yを超えない位置「3Mバイト目」まで(即ち1バイト目〜3Mバイト目の部分のみ)を、プリンタ100に送信する(S32)。
1回目の要求コマンドに応じて1バイト目〜3Mバイト目の部分がプリンタ100に送信されているために、2回目の要求コマンドは、要求開始位置「3M+1バイト目」を含む。送信サーバ50は、2回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S12)、Y≧Xと判断し(S14でYES)、個数Lとして「1」を決定する(S18)。従って、送信サーバ50は、「ID001」に対応する1個の分割データをVRAM76に再び書き込む(S30)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち1バイト目〜4Mバイト目の部分二値データ)のうち、要求開始位置「3M+1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「4Mバイト目」まで(即ち3M+1バイト目〜4Mバイト目の部分のみ)を、プリンタ100に送信する(S32)。
3回目以降の要求コマンドが受信される場合については、1回目及び2回目の要求コマンドが受信される場合と同様である。ケースA4では、送信サーバ50は、7個の要求コマンドに応じて、二値データ212の全てをプリンタ100に送信することができる。
(本実施例の効果)
例えば、図7の比較例の構成を採用することを想定する。比較例の構成では、14Mバイトの二値データ212が、分割されていない状態で、データベース90に格納されている。即ち、データベース90内の二値データ212は、複数個の開始データ及び複数個のIDによって区別可能な複数個の分割データではない。この場合、送信サーバ50は、二値データ212の一部のみをデータベース90から取得して、当該一部のみをVRAM76に書き込むことができない。即ち、送信サーバ50は、二値データ212の全てをデータベース90から取得して、二値データ212の全てをVRAM76に書き込むことしかができない。
例えば、図6のケースA3と同様に、プリンタ100からの要求データサイズYが「5Mバイト」であるケースを想定する。送信サーバ50は、要求開始位置「1バイト目」及び要求データサイズ「5Mバイト」を含む1回目の要求コマンドを受信すると、14Mバイトの二値データ212の全てをVRAM76に書き込む。そして、送信サーバ50は、VRAM76内の14Mバイトの二値データ212のうち、要求データサイズ「5M」を超えない範囲である1バイト目〜5Mバイト目の部分を、プリンタ100に送信する。次いで、送信サーバ50は、二値データ212をVRAM76から消去する。
同様に、送信サーバ50は、2回目の要求コマンドを受信すると、14Mバイトの二値データ212の全てをVRAM76に再び書き込み、5M+1バイト目〜10Mバイト目の部分をプリンタ100に送信する。送信サーバ50は、3回目の要求コマンドを受信すると、14Mバイトの二値データ212の全てをVRAM76に再び書き込み、10M+1バイト目〜14Mバイト目の部分をプリンタ100に送信する。
このように、比較例の構成によると、送信サーバ50は、1個の要求コマンドを受信する毎に、14Mバイトの二値データ212の全てをVRAM76に書き込まなければならず、この結果、VRAM76のリソースが大きく消費されてしまう。例えば、二値データ212のデータサイズが膨大であれば、VRAM76内の膨大な容量が消費されることになる。そのような状況では、例えば、送信サーバ50が、プリンタ100とは異なる他のプリンタから要求コマンドを受信する場合に、当該要求コマンドに対応する二値データをVRAM76に書き込むことができず、この結果、二値データを当該他のプリンタに送信することができないという事象が発生し得る。
これに対し、本実施例では、14Mバイトの二値データ212が4個の分割データに分割された状態で、データベース90に格納されている。例えば、図6のケースA3に示されるように、比較例と同じ要求データサイズ「5Mバイト」を含む要求コマンドが受信される場合に、送信サーバ50は、14Mバイトの二値データ212の全てをVRAM76に書き込なくて済み、1個の分割データをVRAM76に書き込めば足りる。このために、VRAM76のリソースが大きく消費されるのを抑制することができる。本実施例によると、送信サーバ50は、比較例と比べて、VRAM76に書き込まれるべきデータ量を低減しながら、二値データ212をプリンタ100に適切に供給することができる。この結果、比較例で発生し得る上記の事象が発生するのを適切に抑制することができる。
なお、例えば、図7の比較例によると、送信サーバ50は、3個の要求コマンドに応じて、二値データ212の全てをプリンタ100に供給することができる。これに対し、例えば、本実施例の図6のケースA3では、送信サーバ50は、4個の要求コマンドに応じて、二値データ212の全てをプリンタ100に供給することができる。従って、本実施例では、比較例と比べると、プリンタ100から送信サーバ50に送信される要求コマンドの個数が多くなり得る。このために、本実施例では、比較例と比べると、プリンタ100が、1個目の要求コマンドを送信してから、二値データ212の全てに従って印刷を終了するまでの印刷時間が長くなるように見えるかもしれない。
しかしながら、本実施例と比較例との間では、プリンタ100と送信サーバ50との間で通信される合計のデータ量は変わらない。従って、本実施例と比較例との間では、データの通信時間は変わらない。また、比較例によると、送信サーバ50が、1個の要求コマンドを受信する毎に、二値データ212の全てをVRAM76に書き込まなければならないので、書き込み時間が比較的に長くなる。これに対し、本実施例では、送信サーバ50は、1個の要求コマンドを受信する毎に、二値データ212の一部をVRAM76に書き込めば済むために、書き込み時間が比較的に短くて済む。このために、本実施例によると、送信サーバ50は、比較例と比べて、プリンタ100に二値データ212の全てを迅速に供給し得る。この結果、印刷時間を短縮し得る。
また、本実施例では、図5のケースA1、ケースA2、及び、図6のケースA3に示されるように、Y≧Xである場合には、Y以下のデータサイズを有するL個の部分二値データが、VRAM76に書き込まれ、VRAM76内のL個の部分二値データの全てが、プリンタ100に送信される。即ち、VRAM76に書き込まれる部分二値データのデータサイズと、プリンタ100に送信される部分二値データのデータサイズと、が一致する。従って、Y≧Xである場合には、プリンタ100に送信されない部分がVRAM76に書き込まれることがないために、VRAM76を効率的に利用していると言える。本実施例によると、送信サーバ50は、VRAM76を効率的に利用しながら、二値データ212をプリンタ100に供給することができる。
なお、図6のケースA4に示されるように、Y<Xである場合には、Y(即ち3Mバイト)よりも大きいデータサイズ(即ち4Mバイト)を有する1個の部分二値データが、VRAM76に書き込まれる。即ち、VRAM76に書き込まれる部分二値データのデータサイズ(即ち4Mバイト)は、プリンタ100に送信される部分二値データのデータサイズ(即ち3Mバイト)よりも大きくなる。従って、Y<Xである場合には、プリンタ100に送信されない部分がVRAM76に書き込まれることになる。
ただし、本実施例では、例えば、2個目の要求コマンドが受信される場合でも、「ID001」に対応する1個の部分二値データのみがVRAM76に書き込まれ、3M+1バイト目〜4Mバイト目の部分がプリンタ100に送信される。即ち、この場合、VRAM76に書き込まれる部分二値データのうち、プリンタ100に送信されない部分(即ち1バイト目〜3Mバイト目の部分)のデータサイズは、3Mバイトである。これに代えて、例えば、2個目の要求コマンドが受信される場合に、「ID001」及び「ID002」に対応する2個の部分二値データがVRAM76に書き込まれ、3M+1バイト目〜6Mバイト目の部分がプリンタ100に送信される構成(後述の第2実施例の図10のケースB3参照)を採用することが考えられる。しかしながら、このような構成を採用すると、2個目の要求コマンドに応じてVRAM76に書き込まれる部分二値データのうち、プリンタ100に送信されない部分(1バイト目〜3Mバイト目の部分、及び、6M+1バイト目〜8Mバイト目の部分)のデータサイズは、5Mバイトである。即ち、このような構成を採用すると、本実施例と比べて、VRAM76に書き込まれる部分二値データのうち、プリンタ100に送信されない部分のデータサイズが大きくなり得る。
本実施例では、Y<Xである場合に、常に1個の部分二値データのみがVRAM76に書き込まれる構成を採用しているために、VRAM76に書き込まれる部分二値データのうち、プリンタ100に送信されない部分のデータサイズを小さくし得る。このような観点においても、本実施例の送信サーバ50は、VRAM76を効率的に利用しながら、二値データ212をプリンタ100に供給することができる。
(対応関係)
送信サーバ50、変換サーバ10、プリンタ100が、それぞれ、「第1のサーバ」、「第2のサーバ」、「外部装置」の一例である。データベース90、VRAM76が、それぞれ、「外部記憶装置」、「内部記憶装置」の一例である。PDFデータ210、二値データ212が、それぞれ、「対象データ」、「変換済みデータ」の一例である。4個の分割データ(DD)214に含まれる4個の部分二値データ(PBD)が、「P個の部分データ」の一例である。分割の単位の値X(即ち4Mバイト)、要求データサイズYが、それぞれ、「所定のデータサイズ」、「サイズ情報」の一例である。
例えば、図5のケースA1では、Y=9Mバイト、L=2が、それぞれ、「第1のデータサイズ」、「N1」の一例である。1個目の要求コマンド、2個目の要求コマンドが、それぞれ、「第1の要求コマンド」、「第2の要求コマンド」の一例である。「ID001」及び「ID002」に対応する2個の分割データに含まれる2個の部分二値データが、「第1グループのN1個の未送信部分データ」の一例である。また、「ID003」及び「ID004」に対応する2個の分割データに含まれる2個の部分二値データが、「第2グループのN1個の未送信部分データ」の一例である。
例えば、図6のケースA4では、Y=3Mバイトが、「第3のデータサイズ」の一例である。1個目の要求コマンド、2個目の要求コマンドが、それぞれ、「第5の要求コマンド」、「第6の要求コマンド」の一例である。「ID001」に対応する1個の分割データに含まれる1個の部分二値データが、「第1の未送信部分データ」の一例である。1個目の要求コマンドに応じて送信される1バイト目〜3Mバイト目の部分、2個目の要求コマンドに応じて送信される3M+1バイト目〜4Mバイト目の部分が、それぞれ、「第3の部分」、「第4の部分」の一例である。
(第2実施例)
上述したように、第1実施例では、VRAM76を効率的に利用するという観点に基づいて、以下の(1)及び(2)の処理が実行される。(1)Y≧Xである場合(即ち図3のS14でNOの場合)に、Y以下のデータサイズを有するL個の部分二値データが、VRAM76に書き込まれる(即ちS20を経たS30)。(2)Y<Xである場合(即ちS14でYESの場合)に、常に1個の部分二値データのみがVRAM76に書き込まれる(即ちS18を経たS30)。
これに対し、本実施例では、プリンタ100によって指定される要求データサイズYに一致するデータサイズを有する部分をプリンタ100に送信するという観点に基づいて、以下の(3)及び(4)の処理が実行される。(3)Y≧Xである場合(後述の図8のS54でNOの場合)に、Yよりも大きいデータサイズを有するL個の部分二値データが、VRAM76に書き込まれ得る(即ちS64を経たS70)。(4)Y<Xである場合(即ちS54でYESの場合)に、2個の部分二値データがVRAM76に書き込まれ得る(即ちS62を経たS70)。
(送信サーバ50の応答処理;図8)
本実施例では、送信サーバ50の制御部70は、図3の応答処理の代わりに、図8の応答処理を実行する。S50〜S54は、図3のS10〜S14と同様である。S54でYESの場合(即ちY<Xの場合)には、S58に進み、S54でNOの場合(即ちY≧Xの場合)には、S64に進む。
S58では、決定部84は、まず、IDstartに対応する1個の分割データが、4Mバイト(即ちX)の部分二値データ(以下では「特定の部分二値データ」と呼ぶ)を含む、と仮定する。例えば、IDstartが「ID001」である場合には、決定部84は、特定の部分二値データの始端位置が1バイト目であり、特定の部分二値データの終端位置が4Mバイト目である、と仮定する。このような仮定を行なうのは、以下の理由による。上述したように、データベース90に格納されるP個の分割データ214では、1個目の分割データからP−1個目の分割データまでに含まれるP−1個の部分二値データのそれぞれは、分割の単位の値Xに一致するデータサイズ(即ち4Mバイト)を有する。ただし、P個目の分割データ(即ち最大のIDに対応する1個の分割データ)に含まれる部分二値データは、X未満のデータサイズを有し得る。そして、決定部84は、P個目の分割データがVRAM76に存在しない状態(即ちS58の段階)では、P個目の分割データに含まれる部分二値データのデータサイズを知り得ない。従って、IDstartに対応する1個の分割データがP個目の分割データである場合には、P個目の分割データに含まれる特定の部分二値データの実際のデータサイズが4Mバイト未満であり得るが、決定部84は、当該特定の部分二値データのデータサイズを「4Mバイト」に仮定して、以降の各処理を実行する。
次いで、決定部84は、特定の部分二値データの要求開始位置から、特定の部分二値データの終端位置(例えば上記の例では4Mバイト目)までのデータサイズが、要求データサイズY以上であるのか否かを判断する。
例えば、要求開始位置が「1バイト目」であり、Y=3Mバイトであることを想定する。この場合、特定の部分二値データ(即ち1バイト目〜4Mバイト目)の要求開始位置「1バイト目」から、特定の部分二値データの終端位置「4Mバイト目」までのデータサイズ「4Mバイト」が、Y(即ち3Mバイト)よりも大きいために、決定部84は、S58でYESと判断して、S60に進む。
S58でYESと判断されるということは、IDstartに対応する1個の分割データに含まれる特定の部分二値データのうち、プリンタ100に未だに送信されていない未送信部分のデータサイズが、Y以上であることを意味する。従って、IDstartに対応する1個の分割データをVRAM76に書き込めば、Yに一致するデータサイズを有する未送信部分をプリンタ100に送信し得る。このために、S58でYESの場合には、S60において、決定部84は、データベース90から取得すべき分割データの個数Lとして、「1」を決定する。
また、例えば、要求開始位置が「3M+1バイト目」であり、Y=3Mバイトであることを想定する。この場合、特定の部分二値データ(即ち1バイト目〜4Mバイト目)の要求開始位置「3M+1バイト目」から、特定の部分二値データの終端位置「4Mバイト目」までのデータサイズ「1Mバイト」が、Y(即ち3Mバイト)よりも小さいために、決定部84は、S58でNOと判断して、S62に進む。
S58でNOと判断されるということは、IDstartに対応する1個の分割データに含まれる特定の部分二値データのうち、プリンタ100に未だに送信されていない未送信部分のデータサイズが、要求データサイズY未満であることを意味する。従って、IDstartに対応する1個の分割データをVRAM76に書き込んでも、Yに一致するデータサイズを有する未送信部分をプリンタ100に送信することができない。Yに一致するデータサイズを有する未送信部分をプリンタ100に送信するためには、IDstartに対応する1個の分割データのみならず、IDstartの次のIDに対応する1個の分割データも、VRAM76に書き込まなければならない。このために、S58でNOの場合には、S62において、決定部84は、データベース90から取得すべき分割データの個数Lとして、「2」を決定する。
一方において、S64では、決定部84は、(L−1)とXの乗算値がY未満になる関係(即ち(L−1)×X<Y)を満たす最大の整数を個数Lとして決定する。例えば、X=4Mバイトであり、Y=9Mバイトである場合には、Lは「3」である。この結果、後述のS70において、3個の分割データがVRAM76に書き込まれ得るので、Y(即ち9Mバイト)よりも大きいデータサイズ(即ち12Mバイト)を有する3個の部分二値データがVRAM76に書き込まれ得る。このために、Yに一致するデータサイズを有する未送信部分をプリンタ100に送信し得る。
S60〜S64のいずれかが実行されると、S70に進む。S70〜S74は、図3のS30〜S34と同様である。S74が終了すると、S50に戻る。
(本実施例によって実現される各ケースの内容;図9及び図10)
図9のケースB1では、X=4Mバイトであり、Y=9Mバイトである。ケースB1では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(図8のS52)、Y≧Xと判断し(S54でNO)、「(L−1)×X(4M)≦Y(9M)」を満たす最大の整数「3」を個数Lとして決定する(S64)。従って、送信サーバ50は、「ID001」、「ID002」、及び、「ID003」に対応する3個の分割データをVRAM76に書き込む(S70)。そして、送信サーバ50は、VRAM76内の3個の分割データに含まれる3個の部分二値データ(即ち1バイト目〜12Mバイト目の部分二値データ)のうち、要求開始位置「1バイト目」から、Yを超えない位置「9Mバイト目」まで(即ち1バイト目〜9Mバイト目の部分のみ)を、プリンタ100に送信する(S72)。
1回目の要求コマンドに応じて1バイト目〜9Mバイト目の部分がプリンタ100に送信されているために、2回目の要求コマンドは、要求開始位置「9M+1バイト目」を含む。送信サーバ50は、2回目の要求コマンドを受信すると、IDstartとして「ID003」を特定し(S52)、Y≧Xと判断し(S54でNO)、個数Lとして「3」を決定する(S64)。ただし、データベース90には「ID005」以降に対応する分割データが格納されていないために、送信サーバ50は、個数Lが「3」であるにも関わらず、「ID003」及び「ID004」に対応する2個の分割データのみをVRAM76に書き込む(S70)。そして、送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち8M+1バイト目〜14Mバイト目の部分二値データ)のうち、要求開始位置「9M+1バイト目」から、Yを超えない位置(即ち当該部分二値データの終端位置)「14Mバイト目」まで(即ち9M+1バイト目〜14Mバイト目の部分のみ)を、プリンタ100に送信する(S72)。
(ケースB2)
図10のケースB2では、X=4Mバイトであり、Y=5Mバイトである。ケースB2では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S52)、Y≧Xと判断し(S54でNO)、「(L−1)×X(4M)≦Y(5M)」を満たす最大の整数「2」を個数Lとして決定する(S64)。従って、送信サーバ50は、「ID001」及び「ID002」に対応する2個の分割データをVRAM76に書き込む(S70)。そして、送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち1バイト目〜8Mバイト目の部分二値データ)のうち、要求開始位置「1バイト目」から、Yを超えない位置「5Mバイト目」まで(即ち1バイト目〜5Mバイト目の部分のみ)を、プリンタ100に送信する(S72)。
2回目以降の要求コマンドが受信される場合については、1回目の要求コマンドが受信される場合と同様である。ケースB2では、送信サーバ50は、3個の要求コマンドに応じて、二値データ212の全てをプリンタ100に送信することができる。
(ケースB3)
図10のケースB3では、X=4Mバイトであり、Y=3Mバイトである。ケースB3では、送信サーバ50は、1回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S52)、Y<Xと判断する(S54でYES)。そして、送信サーバ50は、要求開始位置「1バイト目」から特定の部分二値データ(即ち、「ID001」に対応する分割データに含まれる部分二値データ)の終端位置「4Mバイト目」までのデータサイズ(即ち4Mバイト)が、Y(即ち3Mバイト)よりも大きいと判断し(S58でYES)、個数Lとして「1」を決定する(S60)。従って、送信サーバ50は、「ID001」に対応する1個の分割データをVRAM76に書き込む(S70)。そして、送信サーバ50は、VRAM76内の1個の分割データに含まれる1個の部分二値データ(即ち1バイト目〜4Mバイト目の部分二値データ)のうち、要求開始位置「1バイト目」から、Yを超えない位置「3Mバイト目」まで(即ち1バイト目〜3Mバイト目の部分のみ)を、プリンタ100に送信する(S72)。
1回目の要求コマンドに応じて1バイト目〜3Mバイト目の部分がプリンタ100に送信されているために、2回目の要求コマンドは、要求開始位置「3M+1バイト目」を含む。送信サーバ50は、2回目の要求コマンドを受信すると、IDstartとして「ID001」を特定し(S52)、Y<Xと判断する(S54でYES)。そして、送信サーバ50は、要求開始位置「3M+1バイト目」から特定の部分二値データの終端位置「4Mバイト目」までのデータサイズ(即ち1Mバイト)が、Y(即ち3Mバイト)未満であると判断し(S58でNO)、個数Lとして「2」を決定する(S60)。従って、送信サーバ50は、「ID001」及び「ID002」に対応する2個の分割データをVRAM76に書き込む(S70)。そして、送信サーバ50は、VRAM76内の2個の分割データに含まれる2個の部分二値データ(即ち1バイト目〜8Mバイト目の部分二値データ)のうち、要求開始位置「3M+1バイト目」から、Yを超えない位置「6Mバイト目」まで(即ち3M+1バイト目〜6Mバイト目の部分のみ)を、プリンタ100に送信する(S72)。
3回目以降の要求コマンドが受信される場合については、1回目及び2回目の要求コマンドが受信される場合と同様である。ケースB3では、送信サーバ50は、5個の要求コマンドに応じて、二値データ212の全てをプリンタ100に送信することができる。
(本実施例の効果)
本実施例でも、送信サーバ50は、図7の比較例と比べて、VRAM76に書き込まれるべきデータ量を低減しながら、二値データ212をプリンタ100に適切に供給することができる。
なお、例えば、プリンタ100は、プリンタ100のメモリの空き容量のみに基づいて要求データサイズYを決定するのではなく、印刷を実行するのに適したデータサイズ(例えばいわゆる1バンド分のデータサイズ)という観点を考慮してYを決定し得る。このような実情に鑑みて、本実施例では、例えば、図9のケースB1の1個目の要求コマンドが受信される状況に示されるように、Y≧Xである場合に、送信サーバ50は、Y(即ち9Mバイト)に一致するデータサイズを有する部分を、プリンタ100に供給することができる。この点は、図10のケースB2の1個目及び2個目の要求コマンドが受信される場合も同様である。このために、送信サーバ50は、プリンタ100が印刷を実行するのに適したデータサイズを有する部分を、プリンタ100に供給し得る。
また、図10のケースB3の1個目〜4個目の要求コマンドが受信される状況に示されるように、Y<Xである場合に、送信サーバ50は、Y(即ち3Mバイト)に一致するデータサイズを有する部分を、プリンタ100に供給することができる。このために、送信サーバ50は、プリンタ100が印刷を実行するのに適したデータサイズを有する部分を、プリンタ100に供給し得る。
(対応関係)
例えば、図10のケースB2では、Y=5Mバイト、L=2が、それぞれ、「第2のデータサイズ」、「N2」の一例である。1個目の要求コマンド、2個目の要求コマンドが、それぞれ、「第3の要求コマンド」、「第4の要求コマンド」の一例である。「ID001」及び「ID002」に対応する2個の分割データに含まれる2個の部分二値データ、当該2個の部分二値データのうちの1バイト目〜5Mバイト目の部分が、それぞれ、「第3グループのN2個の未送信部分データ」、「第1の部分」の一例である。「ID002」及び「ID003」に対応する2個の分割データに含まれる2個の部分二値データ、当該2個の部分二値データのうちの5M+1バイト目〜10Mバイト目の部分が、それぞれ、「第4グループのN2個の未送信部分データ」、「第2の部分」の一例である。
例えば、図10のケースB3では、Y=3Mバイトが、「第3のデータサイズ」の一例である。1個目の要求コマンド、2個目の要求コマンドが、それぞれ、「第5の要求コマンド」、「第7の要求コマンド」の一例である。「ID001」に対応する1個の分割データに含まれる1個の部分二値データ、「ID002」に対応する1個の分割データに含まれる1個の部分二値データが、それぞれ、「第1の未送信部分データ」、「第2の未送信部分データ」の一例である。1個目の要求コマンドに応じて送信される1バイト目〜3Mバイト目の部分、2個目の要求コマンドに応じて送信される3M+1バイト目〜6Mバイト目の部分が、それぞれ、「第3の部分」、「第5の部分」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
(変形例1)「外部記憶装置」は、データベース90と呼ばれるものなくてもよく、ハードディスクであってもよいし、送信サーバ50に装着されるUSBメモリ、CD、DVD、フロッピーディスク(登録商標)等のメディアであってもよい。また、「外部記憶装置」は、送信サーバ50内に設けられていなくてもよく、送信サーバ50とは別体に構成されている他の機器内に設けられていてもよい。
(変形例2)「内部記憶装置」は、VRAM76でなくてもよく、NVRAM(Non-Volatile RAMの略)であってもよいし、DRAM(Dynamic RAMの略)、SRAM(Static RAMの略)であってもよい。
(変形例3)上記の実施例では、変換サーバ10と送信サーバ50とが別体に構成されている。しかしながら、変換サーバ10と送信サーバ50とは一体に構成されていてもよい。本変形例では、一体に構成されている2個のサーバ10,50が、「サーバシステム」の一例である。
(変形例4)「対象データ」は、PDFデータでなくてもよく、例えば、JPEGデータ、TIFFデータ、文書作成アプリケーションによって生成されるデータ、表計算アプリケーションによって生成されるデータ等であってもよい。即ち、「対象データ」は、変換対象のデータであれば、どのような形式のデータであってもよい。
(変形例5)「変換済みデータ」は、二値データでなくてもよく、例えば、三値以上のデータ(例えば、ドットOFF、小ドット、中ドット、及び、大ドットを示す四値のデータ)であってもよい。また、「変換済みデータ」は、プリンタ100が解釈可能なJPEGデータであってもよい。即ち、「変換済みデータ」は、対象データの変換によって生成されるデータであれば、どのような形式のデータであってもよい。
(変形例6)上記の実施例では、プリンタ100は、1個目の要求コマンドを送信サーバ50に送信すべき際に、要求データサイズYを決定すると、2個目以降の要求コマンドを送信サーバ50に送信すべき際にも、同じ要求データサイズYを利用する。これに代えて、プリンタ100は、1個の要求コマンドを送信すべき毎に、メモリの空き容量に基づいて、Yを決定してもよい。例えば、プリンタ100は、1個目の要求コマンドを送信すべき際に、要求データサイズ「9Mバイト」を決定し、2個目の要求コマンドを送信すべき際に、「9Mバイト」とは異なる要求データサイズ(例えば「8Mバイト」)を決定してもよい。本変形例でも、図3又は図8の応答処理において、送信サーバ50の決定部84は、要求コマンドに含まれるYに応じて、個数Lを適切に決定することができる。即ち、「決定部」は、1個の要求コマンドが受信される毎に、当該要求コマンドに含まれるサイズ情報と、所定のデータサイズと、を用いて、内部記憶装置に書き込まれるべき部分データの個数を決定すればよい。
(変形例7)例えば、プリンタ100から送信サーバ50に送信される複数個の要求コマンドのそれぞれは、要求データサイズYを含んでいなくてもよい。即ち、複数個の要求コマンドのそれぞれは、「サイズ情報」を含んでいなくてもよい。本変形例では、送信サーバ50の決定部84は、プリンタ100から1個の要求コマンドを受信する毎に、IDstartを特定し、さらに、個数Lとして「1」を常に決定してもよい。そして、書込部86は、複数個の分割データ214のうち、IDStartに対応する1個の分割データのみをデータベース90から取得して、当該1個の分割データをVRAM76に書き込んでもよい。送信部88は、VRAM76内の1個の分割データに含まれる1個の部分二値データの全てをプリンタ100に送信してもよい。本変形例でも、送信サーバ50は、VRAM76に書き込まれるデータ量を低減しながら、二値データ212をプリンタ100に供給することができる。
(変形例8)例えば、プリンタ100から送信サーバ50に送信される複数個の要求コマンドのそれぞれは、要求開始位置を含んでいなくてもよい。本変形例では、送信サーバ50は、プリンタ100に既に送信されたデータサイズを管理してもよい。例えば、図5のケースA1において、送信サーバ50の送信部88は、1回目の要求コマンドが受信される場合には、プリンタ100に既に送信されたデータサイズがゼロであるために、1バイト目〜8Mバイト目の部分をプリンタ100に送信する。この際に、送信サーバ50の制御部70は、プリンタ100に既に送信されたデータサイズとして「8Mバイト」を記憶する(即ち管理する)。送信部88は、2回目の要求コマンドが受信される場合には、プリンタ100に既に送信されたデータサイズが「8Mバイト」であるために、8M+1バイト目〜14Mバイト目の部分をプリンタ100に送信する。即ち、要求開始位置を管理する主体は、実施例のように、プリンタ100であってもよいし、本変形例のように、送信サーバ50であってもよい。
(変形例9)「外部装置」は、プリンタ100に限られず、スキャナ、複合機、FAX装置、PC、サーバ、携帯端末等の他の種類の装置であってもよい。
(変形例10)上記の各実施例では、変換サーバ10及び送信サーバ50のCPU32,72がソフトウェアに従って処理を実行することによって、各部40,42,80〜88の機能が実現される。これに代えて、各部40,42,80〜88の機能のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、4:インターネット、10:変換サーバ、50:送信サーバ、90:データベース、100:プリンタ、110:携帯端末、200:JPEGデータ、202:二値データ、210:PDFデータ、212:二値データ、214:複数個の分割データ

Claims (11)

  1. 第1のサーバであって、
    外部装置から複数個の要求コマンドのそれぞれを順次受信する受信部であって、前記複数個の要求コマンドのそれぞれは、変換済みデータの送信を前記第1のサーバに要求するためのコマンドであり、前記変換済みデータは、1回の変換指示に応じて、対象データの変換が実行されることによって生成されるデータであり、前記変換済みデータは、P個(前記Pは2以上の整数)の部分データに分割された状態で、外部記憶装置に格納され、前記P個の部分データのうちの少なくともP−1個の部分データのそれぞれは、所定のデータサイズを有する、前記受信部と、
    前記複数個の要求コマンドに応じて、前記外部記憶装置内の前記変換済みデータを前記外部装置に供給する供給部と、を備え、
    前記供給部は、
    前記複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、前記外部記憶装置から、前記P個の部分データの一部である1個以上の未送信部分データを取得して、前記1個以上の未送信部分データを前記第1のサーバの内部記憶装置に書き込む書込部であって、前記未送信部分データは、前記P個の部分データのうち、前記外部装置に未だに送信されていない部分を含む部分データである、前記書込部と、
    前記複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、前記内部記憶装置内の前記1個以上の未送信部分データのうちの少なくとも一部を前記外部装置に送信する送信部と、
    を備える、第1のサーバ。
  2. 前記複数個の要求コマンドのそれぞれは、当該要求コマンドに応じて送信可能なデータサイズを示すサイズ情報を含み、
    前記供給部は、さらに、
    前記複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、当該要求コマンドに含まれる前記サイズ情報と、前記所定のデータサイズと、を用いて、前記内部記憶装置に書き込まれるべき部分データの個数を決定する決定部を備え、
    前記書込部は、前記外部記憶装置から決定済みの個数の未送信部分データを取得して、前記決定済みの個数の未送信部分データを前記内部記憶装置に書き込む、請求項1に記載の第1のサーバ。
  3. 前記所定のデータサイズよりも大きい第1のデータサイズを示す第1のサイズ情報を含む第1の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、N1を決定し、
    前記N1は、前記Pより小さい整数であり、かつ、「前記N1×前記所定のデータサイズ≦前記第1のデータサイズ」の関係を満たす最大の整数であり、
    前記書込部は、前記外部記憶装置から第1グループのN1個の未送信部分データを取得して、前記第1グループのN1個の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第1グループのN1個の未送信部分データの全てを前記外部装置に送信する、請求項2に記載の第1のサーバ。
  4. 前記第1の要求コマンドが受信された後に、前記第1のサイズ情報を含む第2の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、前記N1を決定し、
    前記書込部は、前記外部記憶装置から第2グループのN1個の未送信部分データを取得して、前記第2グループのN1個の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第2グループのN1個の未送信部分データの全てを前記外部装置に送信する、請求項3に記載の第1のサーバ。
  5. 前記所定のデータサイズよりも大きい第2のデータサイズを示す第2のサイズ情報を含む第3の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、N2を決定し、
    前記N2は、前記Pより小さい整数であり、かつ、「(前記N2−1)×前記所定のデータサイズ<前記第2のデータサイズ」の関係を満たす最大の整数であり、
    前記書込部は、前記外部記憶装置から第3グループのN2個の未送信部分データを取得して、前記第3グループのN2個の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第3グループのN2個の未送信部分データのうち、前記第2のデータサイズを有する第1の部分であって、前記外部装置に未だに送信されていない部分である前記第1の部分のみを前記外部装置に送信する、請求項2に記載の第1のサーバ。
  6. 前記第3の要求コマンドが受信された後に、前記第2のサイズ情報を含む第4の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、前記N2を決定し、
    前記書込部は、前記外部記憶装置から第4グループのN2個の未送信部分データを取得して、前記第4グループのN2個の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第4グループのN2個の未送信部分データのうち、前記第2のデータサイズを有する第2の部分であって、前記外部装置に未だに送信されていない部分である前記第2の部分のみを前記外部装置に送信する、請求項5に記載の第1のサーバ。
  7. 前記所定のデータサイズよりも小さい第3のデータサイズを示す第3のサイズ情報を含む第5の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、1を決定し、
    前記書込部は、前記外部記憶装置から、1個の未送信部分データである第1の未送信部分データを取得して、前記第1の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第1の未送信部分データのうち、前記第3のデータサイズを有する第3の部分であって、前記外部装置に未だに送信されていない部分である前記第3の部分のみを前記外部装置に送信する、請求項2から6のいずれか一項に記載の第1のサーバ。
  8. 前記第5の要求コマンドが受信された後に、前記第3のサイズ情報を含む第6の要求コマンドが受信される場合に、
    前記決定部は、前記内部記憶装置に書き込まれるべき部分データの個数として、1を決定し、
    前記書込部は、前記外部記憶装置から前記第1の未送信部分データを再び取得して、前記第1の未送信部分データを前記内部記憶装置に再び書き込み、
    前記送信部は、前記内部記憶装置内の前記第1の未送信部分データのうち、前記第3のデータサイズ以下のデータサイズを有する第4の部分であって、前記外部装置に未だに送信されていない部分である前記第4の部分のみを前記外部装置に送信する、請求項7に記載の第1のサーバ。
  9. 前記第5の要求コマンドが受信された後に、前記第3のサイズ情報を含む第7の要求コマンドが受信される場合に、
    前記決定部は、前記第1の未送信部分データのうち、前記外部装置に未だに送信されていない部分のデータサイズが、前記第3のデータサイズ未満である場合に、前記内部記憶装置に書き込まれるべき部分データの個数として、2を決定し、
    前記書込部は、前記外部記憶装置から、前記第1の未送信部分データと、前記第1の未送信部分データとは異なる第2の未送信部分データと、を取得して、前記第1及び第2の未送信部分データを前記内部記憶装置に書き込み、
    前記送信部は、前記内部記憶装置内の前記第1及び第2の未送信部分データのうち、前記第3のデータサイズを有する第5の部分であって、前記外部装置に未だに送信されていない部分である前記第5の部分のみを前記外部装置に送信する、請求項7に記載の第1のサーバ。
  10. 請求項1から9のいずれか一項に記載の前記第1のサーバと、第2のサーバと、を備えるサーバシステムであって、
    前記第2のサーバは、
    前記外部装置から前記1回の変換指示及び前記対象データが受信される場合に、前記対象データの変換を実行して、前記変換済みデータを生成する生成部と、
    前記P個の部分データのうちの少なくともP−1個の部分データのそれぞれが前記所定のデータサイズを有するように、前記変換済みデータを前記P個の部分データに分割して、前記P個の部分データを前記外部記憶装置に格納させる格納制御部と、
    を備える、サーバシステム。
  11. 第1のサーバのためのコンピュータプログラムであって、
    前記コンピュータプログラムは、前記第1のサーバに搭載されるプロセッサに、以下の各処理、即ち、
    外部装置から複数個の要求コマンドのそれぞれを順次受信する受信処理であって、前記複数個の要求コマンドのそれぞれは、変換済みデータの送信を前記第1のサーバに要求するためのコマンドであり、前記変換済みデータは、1回の変換指示に応じて、対象データの変換が実行されることによって生成されるデータであり、前記変換済みデータは、P個(前記Pは2以上の整数)の部分データに分割された状態で、外部記憶装置に格納され、前記P個の部分データのうちの少なくともP−1個の部分データのそれぞれは、所定のデータサイズを有する、前記受信処理と、
    前記複数個の要求コマンドに応じて、前記外部記憶装置内の前記変換済みデータを前記外部装置に供給する供給処理と、を実行させ、
    前記供給処理は、
    前記複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、前記外部記憶装置から、前記P個の部分データの一部である1個以上の未送信部分データを取得して、前記1個以上の未送信部分データを前記第1のサーバの内部記憶装置に書き込む書込処理であって、前記未送信部分データは、前記P個の部分データのうち、前記外部装置に未だに送信されていない部分を含む部分データである、前記書込処理と、
    前記複数個の要求コマンドのうちの1個の要求コマンドが受信される毎に、前記内部記憶装置内の前記1個以上の未送信部分データのうちの少なくとも一部を前記外部装置に送信する送信処理と、
    を含む、コンピュータプログラム。
JP2012261689A 2012-11-29 2012-11-29 サーバ Active JP6036226B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012261689A JP6036226B2 (ja) 2012-11-29 2012-11-29 サーバ
US14/038,826 US9300747B2 (en) 2012-11-29 2013-09-27 Server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012261689A JP6036226B2 (ja) 2012-11-29 2012-11-29 サーバ

Publications (2)

Publication Number Publication Date
JP2014106923A JP2014106923A (ja) 2014-06-09
JP6036226B2 true JP6036226B2 (ja) 2016-11-30

Family

ID=50774173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012261689A Active JP6036226B2 (ja) 2012-11-29 2012-11-29 サーバ

Country Status (2)

Country Link
US (1) US9300747B2 (ja)
JP (1) JP6036226B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6188464B2 (ja) * 2013-07-17 2017-08-30 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及びプログラム
JP2015157473A (ja) * 2014-01-27 2015-09-03 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970263B2 (en) 2000-06-30 2005-11-29 Canon Kabushiki Kaisha Print system, printing method, and server
JP2002014780A (ja) 2000-06-30 2002-01-18 Canon Inc 印刷システム、印刷方法、印刷装置、端末装置およびサーバ装置
JP2008305018A (ja) * 2007-06-05 2008-12-18 Ricoh Co Ltd 情報処理システムとその情報処理装置およびサーバ装置
JP5287172B2 (ja) * 2008-11-25 2013-09-11 株式会社リコー 情報処理装置、画像処理装置、印刷制御方法、及び印刷制御プログラム
JP5565346B2 (ja) * 2011-03-11 2014-08-06 ブラザー工業株式会社 プリンタ
JP5958086B2 (ja) * 2012-05-29 2016-07-27 ブラザー工業株式会社 画像処理装置、及び、変換プログラム

Also Published As

Publication number Publication date
US20140149394A1 (en) 2014-05-29
US9300747B2 (en) 2016-03-29
JP2014106923A (ja) 2014-06-09

Similar Documents

Publication Publication Date Title
US7800772B2 (en) Data processing apparatus, image forming apparatus, image forming method, and printing system
US9639304B2 (en) Data supplying device and image processing system
JP6036226B2 (ja) サーバ
JP6190207B2 (ja) システム、情報処理方法、処理装置、処理方法、及びプログラム
JP6060573B2 (ja) 出力システム、出力制御装置、出力装置及びプログラム
US20140168667A1 (en) Image forming apparatus and image forming method thereof
US20080038002A1 (en) Image formation device, information processing device, recording medium, log generation method, and computer data signal
JP5310273B2 (ja) 印刷制御装置及びコンピュータプログラム
JP2012060571A (ja) 画像処理装置、ジョブ処理方法及びプログラム
KR100637074B1 (ko) Rip 서버를 이용한 인쇄시스템 및 그 인쇄방법
JP2013050898A (ja) 端末装置のためのコンピュータプログラム及び端末装置
JP4930805B2 (ja) 印刷制御プログラム、及び印刷制御装置
BR112019012023A2 (pt) codificação de dados de impressão e transmissão de dados de impressão por dispositivo hospedeiro
JP2006164152A (ja) 印刷処理方法及びシステム
JP5093576B2 (ja) 印刷制御装置と画像形成システム
JP2018194927A (ja) 画像形成装置、画像形成方法、分散印刷システム及び画像形成プログラム
JP6115253B2 (ja) プリントシステム、スプールサーバ、スプール方法、及びプログラム
JP2020110926A (ja) 画像形成装置、画像形成装置の制御方法、画像形成システム、及びプログラム
JP6248594B2 (ja) 画像処理システム、画像処理装置、処理方法、および制御プログラム
JP2013114405A (ja) 印刷データ受信装置、画像処理装置及びプログラム
JP2018200607A (ja) 印刷システム、データ処理装置およびデータ処理プログラム
JP2004247952A (ja) 画像処理システム
JP6957847B2 (ja) 情報処理装置及びプログラム
JP6347592B2 (ja) 情報処理装置、データ処理方法およびコンピュータプログラム
JP2015095102A (ja) データ供給装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151109

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6036226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150