JP5791248B2 - ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム - Google Patents

ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム Download PDF

Info

Publication number
JP5791248B2
JP5791248B2 JP2010189456A JP2010189456A JP5791248B2 JP 5791248 B2 JP5791248 B2 JP 5791248B2 JP 2010189456 A JP2010189456 A JP 2010189456A JP 2010189456 A JP2010189456 A JP 2010189456A JP 5791248 B2 JP5791248 B2 JP 5791248B2
Authority
JP
Japan
Prior art keywords
data
processing
job data
job
identification
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.)
Expired - Fee Related
Application number
JP2010189456A
Other languages
English (en)
Other versions
JP2012045806A (ja
JP2012045806A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010189456A priority Critical patent/JP5791248B2/ja
Priority to US13/207,131 priority patent/US9269030B2/en
Publication of JP2012045806A publication Critical patent/JP2012045806A/ja
Publication of JP2012045806A5 publication Critical patent/JP2012045806A5/ja
Application granted granted Critical
Publication of JP5791248B2 publication Critical patent/JP5791248B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • 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/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1213Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
    • 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/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
    • 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/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/15Indexing scheme related to printer interfaces for computers, indexing schema related to group G06F3/12
    • G06F2206/1514Sub-job

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、入力されたジョブデータを処理するデータ処理装置、データ処理方法及びプログラムに関する。
従来、ジョブ処理装置にジョブデータを処理させる際のプロトコルとしてWSD(Web Service for Devices)が知られている(非特許文献1参照)。WSDは、デバイスを用いた様々なサービスの要求に応えるために定義された仕様である。WSDはWebサービスのアーキテクチャを使用し、定義された通信プロトコル群に従って印刷サービスやスキャナサービス等を提供するものである。
WSDの印刷サービスでは、印刷データを送信するためのSendDocumentコマンド、プリンタの各種情報を取得するためのGetPrinterElementsコマンドなどが定義されている。これらのコマンドのやり取りには、TCP/IP上ではHTTP(Hyper Text Transfer Protocol)を使用し、HTTP上でSOAP(Simple Object Access Protocol)を利用する。そしてSOAPを利用して、XML(eXtensible Markup Language)によって記述されたサービスのコマンドがやり取りされる。
このとき、印刷データを送信するためのSendDocumentコマンドと、印刷データとは同一セッションにおいて、マルチパートに区切られたデータが用いられる。マルチパートに区切られたデータとは、MIME(Multipurpose Internet Mail Extension)形式のデータである。このようにマルチパートに区切られたデータを用いてジョブ処理を実行するものとして特許文献1が知られている。
<http://specs.xmlsoap.org/ws/2006/02/devprof/>
特開2010−61462号公報
このようにマルチパートに区切られたデータを受け取り、ジョブを実行するためには区切り位置を識別し、ジョブ実行対象の処理データ(印刷ジョブであれば印刷データ)を特定する必要がある。そして区切り位置の識別は、区切り文字列を特定し、取得したデータと当該区切り文字列とを順次比較することになる。
しかしながら、従来、印刷データに該当する部分が印刷データであることを識別する術がなかったため、印刷データに該当する部分に対しても区切り文字列との比較を行うことになる。そのため、その区切り文字列(区切り位置)の識別の処理負荷が高いものであった。即ち、ジョブの実行対象のデータ内には区切り位置が存在しないにも関わらず、区切り文字列の比較を行い、無駄な処理を行うことになっていた。
本発明は、以上の点に鑑みなされたものであり、入力されたマルチパートで区切られたジョブデータに従ってジョブ処理を実行させる際、区切り位置の識別処理の負荷を軽減するものである。
上記課題を解決するため、本発明のデータ処理装置は、マルチパート形式のジョブデータを入力する入力手段と、前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段とを有し、前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理装置。
本発明によれば、ジョブ処理の対象となる処理データの部分ではパートの区切り位置の識別をスキップするので、区切り位置の識別処理の負荷を軽減することができる。
実施形態の一例である印刷システムの構成を示すブロック図である。 印刷装置100及びPC200に含まれるソフトウェア構成を示すブロック図である。 ジョブデータの例を示す図である。 PC200によるジョブデータ送信の際の処理の流れを示すフローチャートである。 印刷装置100による区切りデータの解析の要否を切り替える処理の流れを示すフローチャートである。 印刷装置100によるジョブデータの受信及び処理の流れを示すフローチャートである。 印刷装置100とPC200との間におけるジョブデータのやり取りの流れを示すシーケンス図である。 印刷データ送信開始指示のデータ形式の例を示す図である。 印刷データ送信終了指示のデータ形式の例を示す図である。
以下、本発明を実施するための形態の一例について図面を用いて説明する。図1は、本実施形態における印刷システムの構成を示すブロック図である。図1の印刷システムは、ネットワークを介して互いに接続され、ジョブデータを受け付け、ジョブを処理する印刷装置100とジョブデータを供給するパーソナルコンピュータ(PC)200とを含む。ここでは、印刷装置100とPC200とをそれぞれ1台のみ示したが、これらはそれぞれ複数あってもよい。また、ネットワークは有線ネットワークとしてもよいし、無線ネットワークとしてもよい。
印刷装置100は、CPU101、ROM102、RAM103、操作部104、ネットワークコントローラ105、印刷機構106を有する。CPU101は印刷装置100全体の動作を制御する。ROM102はCPU101が実行するプログラムや印刷装置100の動作に関わる情報を記憶する。ここではROM102は書き換え可能なROMとする。RAM103はCPU101のワーク領域として用いられ、またジョブデータを含む種々の情報を記憶する。操作部104はユーザからの指示を受け付けたり、ユーザに提供すべき情報を表示したりする。ネットワークコントローラ105はネットワークを介したデータの送受信の制御を行う。印刷機構106は入力された印刷データに基づき、被記録媒体上に記録剤を用いて画像を印刷する。なお、印刷機構106を印刷装置100とは別体(別の筐体)とし、印刷装置100とローカル接続したり、ネットワーク経由で接続したりするようにしてもよい。
PC200は汎用的なパーソナルコンピュータにより実現可能である。PC200は印刷装置100の構成として示したもののうち、印刷機構106以外の構成を有し、印刷装置100に供給する印刷データの生成やネットワークを介したデータのやり取り等を行うためのソフトウェアがインストールされる。
図2は印刷装置100、PC200が自身の記憶装置(ROM102等)に記憶するソフトウェアの構成を示す図である。オペレーションシステム(OS)201は基本的な動作の制御を行う。印刷装置100ではリアルタイムOS、PC200では汎用的なPCで用いられるOSを用いることができる。OS201上には、ネットワークの通信制御を担当するミドルウェア202が存在し、その上位にアプリケーションが存在する。
ミドルウェア202上にはネットワークコントローラ105を制御するLANドライバ204が存在し、その上位にはTCP/IPを用いた通信を制御するTCP/IP通信モジュールとUDPを用いた通信を制御するUDP通信モジュールとが存在する。またその上位にはHTTPを用いた通信を制御するHTTP通信モジュール207が存在し、その上位にWSDプロトコルの制御を行うWSDモジュールが存在する。そして、アプリケーション203としてWSDプロトコルを利用した印刷処理を行う印刷アプリケーション209が存在する。印刷装置100における印刷アプリケーション209は印刷データを受け取って印刷機構106を用いた印刷処理を実行し、PC200における印刷アプリケーション209は印刷装置100に対して印刷データを供給するための処理を行う。PC200における印刷アプリケーション209には印刷装置100に印刷処理を行わせるための制御を行うプリンタドライバも含まれる。
これらのソフトウェア(プログラム)は各装置のROM102等の記憶装置にインストールされ、各装置のCPU101が実行することにより以下に示す処理がなされる。
図3は、印刷装置100が受信する(PC200が供給する)ジョブデータの例を示す図である。ジョブデータには、コマンド類と印刷装置100が印刷処理を行う印刷データとが含まれ、これがXMLで記述され、MIME形式に従ってマルチパートに区切られている。PC200から印刷装置100に対しHTTP接続が行われると、まずHTTPのヘッダ情報がPC200から印刷装置100に送られる。
HTTPのヘッダ情報には、MIMEの形式に従って複数のパートに区切られたデータを取り扱うための情報が記述されており、その情報には複数に区切られたデータの区切り文字列を特定するためのboundary引数が存在する(301)。図3においては301に示したMIME−boundaryと示した部分に任意に設定される区切り文字列が記述される。印刷装置100はPC200から指定されたMIME−boundaryの区切り文字列を参照してジョブデータの各パートの区切り位置を特定する。
また、HTTPのヘッダ情報には、HTTPのエンティティボディをブロック化して送信する際に含まれるチャンク形式エンコーディングの指定も含まれる(302)。印刷装置100はこの指定が含まれていることを判定することにより、以降のエンティティボディがチャンク形式エンコーディングされたデータであることを認識し、当該データをチャンク形式データのデコード処理を行う。
図3において、303、305、307、309、311、313は、チャンク形式エンコーディングされたデータのチャンクサイズを示す。印刷装置100は、このチャンクサイズで指定されたサイズ毎に区切ってデータの受信を行う。313に記述されているサイズ0は、エンティティボディの最後を示しており、印刷装置100はこれを受信すると、データの最後と認識し、ジョブデータの受信処理を終了する。
また図3において、304、308、312には、301で示したMIME−boundaryと同一の区切り文字列が記述され、この区切り文字列を境界として、複数のパートのデータのそれぞれがPC200から印刷装置100に送信される。ここでは、304と308とで区切られた区間には306に示す印刷コマンドが含まれており、308と312で区切られた区間には310に示す印刷データが含まれている。印刷装置100はHTTPのヘッダ情報で指定された区切り文字列に従って各パートのデータを特定し、それぞれのパートのデータ内容に応じた処理を行う。即ち、印刷コマンド306に対しては当該コマンドに応じたセッティング等の処理、印刷データに対しては印刷データの解析及び印刷のための展開処理を行い、印刷機構106を用いた印刷処理を行う。印刷データの形式としてはPDL(Page Description Language)形式のものやラスタ形式のものなど種々の形式を用いることができる。
次に、PC200が印刷装置100に対しジョブデータを送信する際の処理の流れを図4、7〜9を用いて説明する。この処理はPC200のCPU101がROM102等に記憶されている図2に示したソフトウェア群のプログラムをRAM103にロードし、それを実行することによりなされる。
ユーザが印刷アプリケーション209によって印刷対象のデータを用意し、当該アプリケーションの印刷メニューからWSDに従った印刷指示を行うと図4のフローチャートが開始される。S401では、印刷アプリケーション209から印刷装置100が指定され、印刷指示がなされると、印刷対象のデータの送信処理開始がOS201に指示される。OS201は印刷データの送信処理開始の指示を受け取ると、それに応じて自動的に図7に示すPrintJob生成コマンド(S701)を印刷装置100に送信する(図7の説明は後述する)。そしてPrintJob生成に成功すると、続けて印刷装置100とHTTP接続を行い、図3に示すようなジョブデータのうち309より前までを送信する(309は送らない)。
続いて印刷アプリケーション209は、新たに印刷装置100に対しHTTP接続し、その後印刷データ送信開始指示(合図)を印刷装置100に対して送信し(S402)、印刷装置100からの印刷データ受け入れ可を示すAckの返信を待つ(S403)。このとき、S401で開始したHTTP接続は維持したままとする。S402における印刷データ送信開始指示の送信により、印刷装置100はこれから受信するデータがジョブデータのうち印刷データ(印刷対象のデータ)であり、その開始位置を把握することができる。また、ここで送信する印刷データ送信開始指示は図3に示すHTTPプロトコルによるやり取りとは別の手順でPC200から印刷装置100に送信される。即ち、図3に示すジョブデータを送信するためのHTTP接続とは別のセッションによりHTTP接続し、印刷データ送信開始指示を送信する。これは本来のWSDにおける処理で用いない指示であるためであるが、同一のセッション内で当該指示を送信するようにしてもよい。また、印刷データ送信開始指示はHTTP以外の手順としてもよいし、別のI/Fを介した通信としてもよいが、HTTPの手順を用いることによりジョブデータの送信と同じプロトコルを用いることになるので、制御が簡単になる。本実施形態では、より制御を簡単にするため、WSDプロトコルにおいて、ジョブデータの送信のHTTP接続とは別のHTTP接続上で送受信を行えるコマンドを用いる。具体的には、GetPrinterElementsコマンドを用いる。
図8は、印刷データ送信開始指示のデータ形式の例を示す図である。図8に示した指示はWSDプロトコルにおけるGetPrinterElementsコマンド(プリンタ情報取得コマンド)を、応用して印刷データ送信開始指示に適用したものである。図8において、801は当該データがWSDプロトコルにおけるプリンタ情報取得コマンドであることを示す。本実施形態ではこれを用いて、プリンタ情報の一つとしてPC200からの印刷データ送信開始指示の送信と、当該指示に対するAck情報の取得を行うことを兼ねたものとしている。802が今回のコマンドによって送るプリンタ情報の内容が印刷データ送信開始指示であることを示すとともにAck応答を要求していることを示す。また、803はMIMEのパート区切り文字列の解析を行うチャンクの最低サイズを示す。印刷装置100はここで指定されたサイズを用いた判定処理を行うが、詳細は後述する。
図4に戻る。S403において印刷データ送信開始指示に対するAckを印刷装置100から受信すると、S402で開始したHTTP接続をクローズし、S404に進み、印刷アプリケーション209はOS201に対し印刷データの送信指示を行う。そして、図3のチャンクサイズ309とそれに対応する印刷データ310とを印刷装置100に対して逐次送信する。印刷データ310は複数のチャンクに分割してもよく、その場合、チャンク毎にチャンクサイズを示すデータが付加される。なお、Ackが所定時間経過しても送られてこなかった場合はタイムアウトによりエラー終了する。
そして、印刷データの送信が終了するとS405に進み、印刷アプリケーション209は新たに印刷装置100に対しHTTP接続する。そして、その後印刷データ送信終了指示(合図)を印刷装置100に対して送信し(S405)、印刷装置100からの印刷データ送信終了の了解を示すAckの返信を待つ(S406)。これにより印刷データの終了位置が把握できる。なお、印刷データ送信終了指示は図9に示す形式である。本実施形態においてはGetPrinterElementコマンドを応用する点、これ以外でも構わないのは、上述した印刷データ送信開始指示と同様であり、ここでの詳細な説明は省略する。図9において、901は当該データがWSDプロトコルにおけるプリンタ情報取得コマンドであることを示す。902は今回のコマンドによって送るプリンタ情報の内容が印刷データ送信終了指示であることを示すとともにAck応答を要求していることを示す。
S406において印刷データ送信終了指示に対するAckを印刷装置100から受信すると、S405で開始したHTTP接続をクローズするとともにS407に進み、印刷アプリケーション209はOS201に印刷データ送信終了の指示を行う。するとOS201は図3の311以降のデータを送信する。ここで全てのジョブデータの送信が終了するので、チャンクサイズ313は0となる。そしてS401で開始したHTTP接続をクローズする。
次に印刷装置100側の処理の流れについて図5〜9を用いて説明する。この処理は印刷装置100のCPU101がROM102等に記憶されている図2に示したソフトウェア群のプログラムをRAM103にロードし、それを実行することによりなされる。
図5は、WSDに従った印刷処理の際のMIMEデータ区切り文字列(boundary)の解析の要否を切り替える処理の流れを示すフローチャートである。印刷装置100の電源が投入されると、印刷装置100のCPU101はS501で初期化処理の一つとしてWSDに従った印刷処理の際のMIMEデータ区切り文字列の解析の状態(解析の要否)を、“解析処理状態(=解析要)”にセットする。この状態を示す情報はRAM103に記憶される。
そしてS502において、PC200からの指示の受信を待つ。ここでの指示は、HTTP接続要求、プリンタ情報取得要求、ジョブデータの受信要求、印刷データ送信開始指示、印刷データ送信終了指示など種々の指示が含まれる。しかし、ここでは印刷データ送信開始指示及び印刷データ送信終了指示以外の指示を受信した場合の処理の説明については省略する。
S503でPC200から印刷データ送信開始指示を受信したと判断された場合は、boudaryの解析をスキップするための処理を行うべき場合であり、S504に進み、印刷データを受け入れることが可能であることを確認し、Ackを返す。そして、S505に進んで、RAM103に記憶されているboundary解析状態を、“解析スキップ状態(=解析不要)”にセットする。一方、S506でPC200から印刷データ送信終了指示を受信したと判断された場合は、boudaryの解析のスキップを終了するための処理を行うべき場合であり、S507に進み、印刷処理が正常に行えたことを確認し、Ackを返す。そして、S508に進んで、RAM103に記憶されているboundary解析状態を、“解析処理状態(=解析要)”にセットする。
このように、印刷装置100はPC200からの印刷データ送信開始指示と印刷データ送信終了指示の受信に応じてboundary解析状態とスキップ状態とを切り替える。
次に、このようにboundary解析の要否のいずれかがセットされた印刷装置100における印刷処理の流れについて説明する。図7は、PC200と印刷装置100との間でのデータのやり取りの流れを時系列で示したシーケンス図である。
PC200においてユーザが印刷の指示を行うと、PC200の印刷アプリケーション209が印刷データの送信処理開始をOS201に指示する。指示を受けたOS201はそれに従ってPrintJob生成コマンドを印刷装置100に送信する(S701)。これを受信した印刷装置100は、印刷処理を開始可能な状態にあればOKのレスポンスをPC200に返す(S702)。OKのレスポンスを受信したPC200は、印刷コマンド及び印刷データを送信するためのHTTP接続を開始する(S703)。そしてHTTP接続に成功すると、PC200はHTTPヘッダ情報を印刷装置100に送信する(S704)。ここで印刷装置100はPC200からHTTPヘッダ情報を受信し、MIMEデータ区切り文字列を特定し、チャンク形式エンコーディングを行うべきことを認識する。
そしてPC200は続けてチャンク形式のエンコーディングでエンティティボディの送信を行うが、まずboudary(上記で特定したもの)304を送信する(S705)。ここでは、印刷装置100は図5においてS501の状態なので、このboundaryの解析を行う。印刷装置100におけるboundary解析は、PCから受信したデータに含まれる文字列を順次上記で特定したboudaryの文字列と比較し、全ての文字列が一致した箇所を特定し、そこが区切り位置であることを識別するものである。次にPC200はWSDの印刷コマンド306を送信し(S706)、印刷装置100は印刷処理の準備に入る。そして、PC200は印刷データとの区切りを示すboudary308を送信し(S707)、印刷装置100はこの解析を行う。ここまでがPC200による図4のS401までの処理と、それに対する印刷装置100の処理に該当する。
次に、PC200が図4のS402において新たに印刷装置100に対しHTTP接続を行い、印刷データ送信開始指示を送信すると(S708)、印刷装置100からのAckを受信するまで印刷データの送信を待機する。印刷データ送信開始指示を受信した印刷装置100は、印刷処理可能な状態であればS504においてAckを送信し(S709)、S505でboundary解析スキップ状態をセットする。
そしてPC200は図4のS404において印刷データ(図3のチャンクサイズ309と印刷データ310)を送信し(S710)、印刷装置100はこれを受信する。このとき印刷装置100はboundary解析スキップ状態がセットされているため、印刷データに対するboudary解析は行わない。そして、印刷装置100の印刷アプリケーション209は印刷データの解析及び印刷処理可能な形式への変換を行い、印刷機構106による印刷処理を行う。即ち、印刷データに応じた画像を、被記録媒体上に記録剤を付与することにより印刷する。
そしてPC200がS405において印刷データ送信終了指示を送信すると(S711)、印刷装置100は印刷処理が正常に行えたことを確認し、S507でAckを返す(S712)。そして印刷装置100はS508でboudary解析処理状態にセットされる。
PC200は続いてS407においてboundaryを含む図3の311〜313のデータを送信し(S713)、印刷装置100はこれらの解析を行う。印刷装置100はチャンクサイズ0のデータを認識すると、印刷コマンド306に対する応答を返し(S714)、ジョブデータの受信を行っていたHTTP接続を終了させる(S715)。
以上のようにしてPC200は印刷装置100に対し、印刷データの区間でのboundary解析をスキップさせることができ、印刷装置100はその区間のboundary解析をスキップすることができる。
次に図6を用いて印刷装置100における処理の他の例について説明する。
先の説明と同様に図7のS701〜704の処理を経て、S601においてPC200からのHTTP接続を受け付けると、図3の301、302を含むHTTPヘッダ情報を受信し、その解析を行う。この解析に際してHTTPヘッダ情報に含まれるMIMEデータ区切り文字列(301の“MIME−boundary”の箇所にある文字列)を取り出し、以降の区切り箇所の判定に使うためにこれをRAM103に記憶する。また、チャンク形式エンコーディングの指定を認識し、以降のエンティティボディを、チャンク形式エンコーディングされたデータとしてデコード処理を行うようにする。
次にS602において図3の303等のチャンクサイズを示すデータを受信する。そしてS603において受信したチャンクサイズのデータが示すサイズが0かどうかの確認を行う。ここで受信したチャンクサイズのデータが示すサイズが0であった場合は今回の受信では以降のデータがない場合であり、ここで受信処理を終了する。一方、チャンクサイズのデータが示すサイズが0でなかった場合は(チャンクサイズに負の値はないのでここは正の値となる)、続いてS604においてそのチャンクサイズ分のデータを受信する。
そしてS605では、受信したチャンクサイズのデータが示すサイズが予め指定されているサイズ(指定値)以上であるか判断する。ここでチャンクサイズが指定値以上であるか判断するのは、PC200が印刷データ送信終了指示を送信しなかった、あるいは印刷装置100が印刷データ送信終了指示を受信できなかった場合であっても印刷データの送信終了を判断できるようにするためである。即ち、チャンクサイズが指定値より小さかった場合は既に印刷データの送信は終了しており、受信したデータが印刷データでない可能性があるため、以降の処理でboundaryの解析処理を行うものである。このときデータサイズは小さいため、もしここで受信したデータが印刷データであったとしても処理負荷は高くならない。また、ここでの指定値は任意に変更できるものとしてもよいし、印刷データ以外のコマンド類やboundaryの文字列分のデータサイズに多い値(例えば数バイト)などに固定としてもよい。
S605で指定値以上であったと判断された場合はS606に進み、指定値より小さかった場合はS607に進み、チャンクデータのMIMEのboundary解析処理を行う。S607では印刷装置100がboundary解析スキップ状態であっても解析処理を行う。
S606では印刷装置100がboundary解析スキップ状態にセットされているか判断する。チャンクサイズが指定値以上であり、boundary解析スキップ状態にセットされている場合は受信したチャンクデータが印刷データの場合であり、S610に進み、印刷データであるチャンクデータを印刷アプリケーション209に渡す。印刷アプリケーション209は受信した印刷データに従って印刷機構106を用いた印刷処理を実行する。このとき印刷装置100のCPU101は受信したチャンクデータのboundary解析は行わない。
チャンクサイズが指定値より小さい場合またはboundary解析スキップ状態にセットされていた場合はS607でチャンクデータのboundary解析処理を行う。即ち、RAM103に保存されているMIME−boundaryの文字列と受信したチャンクデータとの照合処理を行う。そして、boundaryの文字列と一致しなければチャンクデータは印刷データであり、S610に進み印刷処理を行う。一方、boundaryの文字列と一致した場合(例えば図3の304や308における一致)は印刷データではないので、S609に進み、WSDコマンド処理を行う。なお、ここではboundaryの文字列を含むか否かで印刷データか否か判断するようにしたが、チャンクデータを解析した結果、他の条件によって印刷データか否かを判断するようにしてもよい。
そして、受信したチャンクデータについてコマンド処理または印刷処理を行っている間も継続して後続のチャンクデータの受信処理は継続されるので、S602に戻り、以上の処理をチャンクサイズが0を示すチャンクサイズのデータを受信するまで繰り返す。
以上のように印刷データ送信開始指示を受信した後において、受信するチャンクデータのチャンクサイズが指定値より小さい場合にはboundary解析処理を行う。これにより、例えば図7のS711における印刷データ送信終了指示を受信しなかった(または受信できなかった)場合に、図3の312などのようなデータを印刷データとして扱ってしまうことによる印刷不良を防ぐことができる。即ち、PC200側での処理異常や、PC200と印刷装置100との間の通信異常によって印刷データ送信終了指示を印刷装置100で受信できなかった場合であっても適切にboundaryの解析処理を実行可能となる。
以上、これまで説明したような処理を行うことにより、印刷データにおけるboundary解析処理を省略できるので、印刷装置100のCPU101の処理負荷を軽減できる。また、boundaryの解析処理用のハードウェア(CPU101のboundary解析処理を支援するためのもの)を不要とすることもできる。また、以上の例のように印刷データ送信開始指示や終了指示をWSDのコマンドを流用することにより、共通のWSDプロトコルを利用して印刷処理とboundary解析の要否の切り替えとを行うことができ効率的である。また、汎用性の向上も図れる。
なお、以上の例のように、印刷データの送信のためのセッションとは異なるセッションにより並行して印刷データ送信開始指示や終了指示の送信を行う場合、PC200は印刷データの送信開始や送信終了の状況に合わせて各指示の送信を行う必要がある。即ち、図3の309より手前のデータを送った後で、309を送る前のタイミングで印刷データ送信開始指示を送信する必要がある。そして、311より前を送った後で、311を送る前に印刷データ送信終了指示を送る必要がある。
また、以上の例において、内容の異なる複数の印刷データ(例えばそれぞれ別の印刷ジョブに従った印刷データ)を送信する場合、その区切り位置でboundaryのデータを挟むようにしてもよい。この場合、印刷データの区切りでは印刷データ送信終了指示と後続の印刷データの送信開始指示とが送信される。
また、以上の例では、boundary解析の省略は印刷データの部分としたが、印刷ジョブ以外を行うものにも適用可能である。例えば、データ送信ジョブであれば送信データの部分を、ストアジョブであれば蓄積対象のデータの部分を同様に開始指示と終了指示とを送信することによって解析処理を省略させることができる。いずれにしてもジョブの処理対象である処理データの部分(コマンド類や区切りデータではない部分)において区切りデータの解析を省略できればよい。
また、処理データの部分の判定の仕方として、データ送信開始指示等を用いるのに代え、データのサイズを参照するようにしてもよい。即ち、コマンド類となり得るサイズの上限値を図6で説明した指定値とし、ジョブ処理装置(印刷装置100等)において受信したデータのサイズがこれを超えているか否かによって判定するようにしてもよい。これによりサイズの大きいデータは処理データであるので、区切りデータの解析処理は省略してジョブ処理を実行し、サイズの小さいデータは区切りデータの解析処理を行う。このとき、サイズの小さいデータが処理データであったとしてもサイズが小さいため処理負荷は高くはならない。
また、以上の例では、マルチパート形式のデータとしてMIME形式を例に説明したが、MIME以外の形式で、区切りデータの解析を行って各パートの区切りを判定する必要のあるものであれば、種々のものに採用可能である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行することによって実現可能である。また、このプログラムは、1つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部をハードウェアによって実現するようにしてもよい。

Claims (13)

  1. マルチパート形式のジョブデータを入力する入力手段と、
    前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、
    前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、
    前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段とを有し、
    前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、
    前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理装置。
  2. 前記判定手段は、ジョブデータの供給元から送られてくる処理データの送信開始を示す情報を受信することにより処理データの開始位置を判定することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記処理データの送信開始を示す情報を受信した場合、前記処理データの送信開始を示す情報を受信したことを示す情報を前記ジョブデータの供給元に送信する送信手段を更に備えることを特徴とする請求項2に記載のデータ処理装置。
  4. 前記入力手段により入力されるジョブデータは複数のブロックで区別されており、前記制御手段は、ブロックのサイズが所定のサイズより小さいデータに対しては前記識別手段による区切り位置の識別を実行させることを特徴とする請求項1〜3のいずれか1項に記載のデータ処理装置。
  5. 前記識別手段は、MIME(Multipurpose Internet Mail Extension)形式のジョブデータのboundaryを識別することを特徴とする請求項1〜4のいずれか1項に記載のデータ処理装置。
  6. 前記判定手段により処理データと判定された部分に基づく画像を被記録媒体上に印刷する印刷手段を有することを特徴とする請求項1〜5のいずれか1項に記載のデータ処理装置。
  7. マルチパート形式のジョブデータを送信するジョブデータ供給装置から送信されたジョブデータをデータ処理装置において受信し、当該ジョブデータに従ってジョブデータの処理を行うためのデータ処理方法であって、
    前記データ処理装置において、
    前記ジョブデータ供給装置から送信されたジョブデータの各パートの区切り位置を識別する識別工程と、
    前記ジョブデータ供給装置から送信されたジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定工程と、
    前記ジョブデータ供給装置から送信されたジョブデータのうち前記判定工程において判定された処理データの部分において前記識別工程における区切り位置の識別をスキップするよう制御する制御工程とを行い、
    前記処理データの送信終了を示す情報を受信した場合、前記制御工程は、前記識別工程による区切り位置の識別を実行するよう制御し、
    前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理方法。
  8. データ処理装置を、
    マルチパート形式のジョブデータを入力する入力手段と、
    前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、
    前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、
    前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段として機能させ、
    前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、
    前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とする前記データ処理装置において読込可能なプログラム。
  9. 前記判定手段は、ジョブデータの供給元から送られてくる処理データの送信開始を示す情報を受信することにより処理データの開始位置を判定することを特徴とする請求項8に記載のプログラム。
  10. 前記処理データの送信開始を示す情報を受信した場合、前記処理データの送信開始を示す情報を受信したことを示す情報を前記ジョブデータの供給元に送信する送信手段を更に備えることを特徴とする請求項9に記載のプログラム。
  11. 前記入力手段により入力されるジョブデータは複数のブロックで区別されており、前記制御手段は、ブロックのサイズが所定のサイズより小さいデータに対しては前記識別手段による区切り位置の識別を実行させることを特徴とする請求項8〜10のいずれか1項に記載のプログラム。
  12. 前記識別手段は、MIME(Multipurpose Internet Mail Extension)形式のジョブデータのboundaryを識別することを特徴とする請求項8〜11のいずれか1項に記載のプログラム。
  13. 前記判定手段により処理データと判定された部分に基づく画像を被記録媒体上に印刷する印刷手段を有することを特徴とする請求項8〜12のいずれか1項に記載のプログラム。
JP2010189456A 2010-08-26 2010-08-26 ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム Expired - Fee Related JP5791248B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010189456A JP5791248B2 (ja) 2010-08-26 2010-08-26 ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム
US13/207,131 US9269030B2 (en) 2010-08-26 2011-08-10 Job processing apparatus and job processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010189456A JP5791248B2 (ja) 2010-08-26 2010-08-26 ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2012045806A JP2012045806A (ja) 2012-03-08
JP2012045806A5 JP2012045806A5 (ja) 2013-10-10
JP5791248B2 true JP5791248B2 (ja) 2015-10-07

Family

ID=45698900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010189456A Expired - Fee Related JP5791248B2 (ja) 2010-08-26 2010-08-26 ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム

Country Status (2)

Country Link
US (1) US9269030B2 (ja)
JP (1) JP5791248B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180063670A1 (en) * 2016-08-26 2018-03-01 Microsoft Technology Licensing, Llc Background management of mobile applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3890173B2 (ja) * 1998-12-24 2007-03-07 キヤノン株式会社 画像処理装置および画像処理方法、並びに画像処理プログラムを記憶した記憶媒体
US7383321B2 (en) * 2002-07-09 2008-06-03 Moyer Alan L Method and system for communicating between a remote printer and a server
JP2003242093A (ja) * 2001-12-03 2003-08-29 Canon Inc 画像形成装置
JP2005161860A (ja) * 2004-12-24 2005-06-23 Canon Inc 電子メール印刷装置、電子メール印刷方法、および記憶媒体
JP4579807B2 (ja) * 2005-09-26 2010-11-10 キヤノン株式会社 画像形成装置、画像形成装置における電子メール印刷方法、および記憶媒体
JP4677346B2 (ja) * 2006-01-05 2011-04-27 キヤノン株式会社 通信装置及び印刷装置及びこれらを含む印刷システムとその制御方法
WO2009030261A1 (en) * 2007-09-07 2009-03-12 Nec Europe Ltd. Method and system for secure web service data transfer
JP5211602B2 (ja) * 2007-09-14 2013-06-12 株式会社リコー ネットワーク機器、サービス提供方法、及びサービス提供プログラム
JP2009098880A (ja) * 2007-10-16 2009-05-07 Canon Inc 印刷処理システム、印刷処理方法、及びコンピュータプログラム
JP2009255390A (ja) * 2008-04-16 2009-11-05 Ricoh Co Ltd 画像形成装置、機能連携制御方法、及び機能連携制御プログラム
JP5281313B2 (ja) * 2008-05-02 2013-09-04 キヤノン株式会社 印刷制御装置、印刷制御方法及びプログラム
JP5239625B2 (ja) * 2008-08-22 2013-07-17 セイコーエプソン株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2010061462A (ja) 2008-09-04 2010-03-18 Seiko Epson Corp 画像形成装置、データ送信装置およびmimeデータ生成プログラム

Also Published As

Publication number Publication date
US9269030B2 (en) 2016-02-23
JP2012045806A (ja) 2012-03-08
US20120054759A1 (en) 2012-03-01

Similar Documents

Publication Publication Date Title
EP2728459B1 (en) Image Processing System
US8659777B2 (en) Server system, print device, network print system including server system and print device, and downloading method in network print system
US11003401B2 (en) Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device
JP6056795B2 (ja) 画像処理システム、ゲートウェイ装置、ゲートウェイ装置の制御方法、ゲートウェイ装置の制御プログラム
US20130083353A1 (en) Image forming system, image forming apparatus, and processing server
US20120200888A1 (en) Image forming apparatus and control method thereof
JP6371697B2 (ja) 情報処理装置、印刷制御方法、およびプログラム
JP5926514B2 (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP2013073369A (ja) 印刷制御システム、印刷制御方法、画像処理装置、及び印刷制御プログラム
JP6552322B2 (ja) 印刷システム、該システムで用いられる印刷装置およびサーバ
JP5791248B2 (ja) ジョブ処理装置、その制御方法、ジョブ処理システム、ジョブ処理方法及びプログラム
JPH11154061A (ja) プリンタ制御方法および装置
JP4086770B2 (ja) 情報処理装置及びその転送制御方法
JP2011065595A (ja) 情報処理装置、その制御方法、プログラム及び記憶媒体
US8860981B2 (en) Systems and methods for print job scheduling
JP6949578B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
US10691382B2 (en) Information processing device, method of controlling information processing device, and non-transitory computer-readable recording medium containing instructions realizing printer driver
JP4164243B2 (ja) 印刷監視システム、印刷監視方法、及びコンピュータプログラム
JP2003015846A (ja) 画像印刷システム、印刷制御端末装置、接続メディア変換装置、印刷制御方法、印刷制御プログラムおよび接続メディア変換プログラム
JP2015185017A (ja) 印刷制御装置、印刷制御システムおよびプログラム
JP2015099475A (ja) 情報処理システム及びその制御方法、並びにプログラム
JP2002007085A (ja) 印刷処理装置及び印刷処理方法
JP2003330635A (ja) ネットワークプリンティングシステム
JP2019185804A (ja) 印刷システム、該システムで用いられる印刷装置およびサーバ、印刷データの管理方法、ならびにプログラム
JP2011028363A (ja) 印刷システムおよびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130826

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150804

R151 Written notification of patent or utility model registration

Ref document number: 5791248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees