(57)【特許請求の範囲】
【請求項１】
マルチパート形式のジョブデータを入力する入力手段と、
前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、
前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、
前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段とを有し、
前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、
前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理装置。
【請求項２】
前記判定手段は、ジョブデータの供給元から送られてくる処理データの送信開始を示す情報を受信することにより処理データの開始位置を判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記処理データの送信開始を示す情報を受信した場合、前記処理データの送信開始を示す情報を受信したことを示す情報を前記ジョブデータの供給元に送信する送信手段を更に備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記入力手段により入力されるジョブデータは複数のブロックで区別されており、前記制御手段は、ブロックのサイズが所定のサイズより小さいデータに対しては前記識別手段による区切り位置の識別を実行させることを特徴とする請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記識別手段は、ＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎ）形式のジョブデータのｂｏｕｎｄａｒｙを識別することを特徴とする請求項１〜４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記判定手段により処理データと判定された部分に基づく画像を被記録媒体上に印刷する印刷手段を有することを特徴とする請求項１〜５のいずれか１項に記載のデータ処理装置。
【請求項７】
マルチパート形式のジョブデータを送信するジョブデータ供給装置から送信されたジョブデータをデータ処理装置において受信し、当該ジョブデータに従ってジョブデータの処理を行うためのデータ処理方法であって、
前記データ処理装置において、
前記ジョブデータ供給装置から送信されたジョブデータの各パートの区切り位置を識別する識別工程と、
前記ジョブデータ供給装置から送信されたジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定工程と、
前記ジョブデータ供給装置から送信されたジョブデータのうち前記判定工程において判定された処理データの部分において前記識別工程における区切り位置の識別をスキップするよう制御する制御工程とを行い、
前記処理データの送信終了を示す情報を受信した場合、前記制御工程は、前記識別工程による区切り位置の識別を実行するよう制御し、
前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理方法。
【請求項８】
データ処理装置を、
マルチパート形式のジョブデータを入力する入力手段と、
前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、
前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、
前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段として機能させ、
前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、
前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とする前記データ処理装置において読込可能なプログラム。
【請求項９】
前記判定手段は、ジョブデータの供給元から送られてくる処理データの送信開始を示す情報を受信することにより処理データの開始位置を判定することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記処理データの送信開始を示す情報を受信した場合、前記処理データの送信開始を示す情報を受信したことを示す情報を前記ジョブデータの供給元に送信する送信手段を更に備えることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記入力手段により入力されるジョブデータは複数のブロックで区別されており、前記制御手段は、ブロックのサイズが所定のサイズより小さいデータに対しては前記識別手段による区切り位置の識別を実行させることを特徴とする請求項８〜１０のいずれか１項に記載のプログラム。
【請求項１２】
前記識別手段は、ＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎ）形式のジョブデータのｂｏｕｎｄａｒｙを識別することを特徴とする請求項８〜１１のいずれか１項に記載のプログラム。
【請求項１３】
前記判定手段により処理データと判定された部分に基づく画像を被記録媒体上に印刷する印刷手段を有することを特徴とする請求項８〜１２のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたジョブデータを処理するデータ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ジョブ処理装置にジョブデータを処理させる際のプロトコルとしてＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｄｅｖｉｃｅｓ）が知られている（非特許文献１参照）。ＷＳＤは、デバイスを用いた様々なサービスの要求に応えるために定義された仕様である。ＷＳＤはＷｅｂサービスのアーキテクチャを使用し、定義された通信プロトコル群に従って印刷サービスやスキャナサービス等を提供するものである。
【０００３】
ＷＳＤの印刷サービスでは、印刷データを送信するためのＳｅｎｄＤｏｃｕｍｅｎｔコマンド、プリンタの各種情報を取得するためのＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓコマンドなどが定義されている。これらのコマンドのやり取りには、ＴＣＰ／ＩＰ上ではＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を使用し、ＨＴＴＰ上でＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）を利用する。そしてＳＯＡＰを利用して、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）によって記述されたサービスのコマンドがやり取りされる。
【０００４】
このとき、印刷データを送信するためのＳｅｎｄＤｏｃｕｍｅｎｔコマンドと、印刷データとは同一セッションにおいて、マルチパートに区切られたデータが用いられる。マルチパートに区切られたデータとは、ＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎ）形式のデータである。このようにマルチパートに区切られたデータを用いてジョブ処理を実行するものとして特許文献１が知られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】＜ｈｔｔｐ：／／ｓｐｅｃｓ．ｘｍｌｓｏａｐ．ｏｒｇ／ｗｓ／２００６／０２／ｄｅｖｐｒｏｆ／＞
【特許文献】
【０００６】
【特許文献２】特開２０１０−６１４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このようにマルチパートに区切られたデータを受け取り、ジョブを実行するためには区切り位置を識別し、ジョブ実行対象の処理データ（印刷ジョブであれば印刷データ）を特定する必要がある。そして区切り位置の識別は、区切り文字列を特定し、取得したデータと当該区切り文字列とを順次比較することになる。
【０００８】
しかしながら、従来、印刷データに該当する部分が印刷データであることを識別する術がなかったため、印刷データに該当する部分に対しても区切り文字列との比較を行うことになる。そのため、その区切り文字列（区切り位置）の識別の処理負荷が高いものであった。即ち、ジョブの実行対象のデータ内には区切り位置が存在しないにも関わらず、区切り文字列の比較を行い、無駄な処理を行うことになっていた。
【０００９】
本発明は、以上の点に鑑みなされたものであり、入力されたマルチパートで区切られたジョブデータに従ってジョブ処理を実行させる際、区切り位置の識別処理の負荷を軽減するものである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明のデータ処理装置は、マルチパート形式のジョブデータを入力する入力手段と、前記入力手段により入力されるジョブデータの各パートの区切り位置を識別する識別手段と、前記入力手段により入力されるジョブデータのうちジョブ処理の対象となる処理データの部分を判定する判定手段と、前記入力手段により入力されるジョブデータのうち前記判定手段により判定された処理データの部分において前記識別手段による区切り位置の識別をスキップするよう制御する制御手段とを有し、前記処理データの送信終了を示す情報を受信した場合、前記制御手段は、前記識別手段による区切り位置の識別を実行するよう制御し、前記ジョブデータは、前記ジョブデータの終了を示す情報を含むことを特徴とするデータ処理装置。
【発明の効果】
【００１１】
本発明によれば、ジョブ処理の対象となる処理データの部分ではパートの区切り位置の識別をスキップするので、区切り位置の識別処理の負荷を軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例である印刷システムの構成を示すブロック図である。
【図２】印刷装置１００及びＰＣ２００に含まれるソフトウェア構成を示すブロック図である。
【図３】ジョブデータの例を示す図である。
【図４】ＰＣ２００によるジョブデータ送信の際の処理の流れを示すフローチャートである。
【図５】印刷装置１００による区切りデータの解析の要否を切り替える処理の流れを示すフローチャートである。
【図６】印刷装置１００によるジョブデータの受信及び処理の流れを示すフローチャートである。
【図７】印刷装置１００とＰＣ２００との間におけるジョブデータのやり取りの流れを示すシーケンス図である。
【図８】印刷データ送信開始指示のデータ形式の例を示す図である。
【図９】印刷データ送信終了指示のデータ形式の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態の一例について図面を用いて説明する。図１は、本実施形態における印刷システムの構成を示すブロック図である。図１の印刷システムは、ネットワークを介して互いに接続され、ジョブデータを受け付け、ジョブを処理する印刷装置１００とジョブデータを供給するパーソナルコンピュータ（ＰＣ）２００とを含む。ここでは、印刷装置１００とＰＣ２００とをそれぞれ１台のみ示したが、これらはそれぞれ複数あってもよい。また、ネットワークは有線ネットワークとしてもよいし、無線ネットワークとしてもよい。
【００１４】
印刷装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、操作部１０４、ネットワークコントローラ１０５、印刷機構１０６を有する。ＣＰＵ１０１は印刷装置１００全体の動作を制御する。ＲＯＭ１０２はＣＰＵ１０１が実行するプログラムや印刷装置１００の動作に関わる情報を記憶する。ここではＲＯＭ１０２は書き換え可能なＲＯＭとする。ＲＡＭ１０３はＣＰＵ１０１のワーク領域として用いられ、またジョブデータを含む種々の情報を記憶する。操作部１０４はユーザからの指示を受け付けたり、ユーザに提供すべき情報を表示したりする。ネットワークコントローラ１０５はネットワークを介したデータの送受信の制御を行う。印刷機構１０６は入力された印刷データに基づき、被記録媒体上に記録剤を用いて画像を印刷する。なお、印刷機構１０６を印刷装置１００とは別体（別の筐体）とし、印刷装置１００とローカル接続したり、ネットワーク経由で接続したりするようにしてもよい。
【００１５】
ＰＣ２００は汎用的なパーソナルコンピュータにより実現可能である。ＰＣ２００は印刷装置１００の構成として示したもののうち、印刷機構１０６以外の構成を有し、印刷装置１００に供給する印刷データの生成やネットワークを介したデータのやり取り等を行うためのソフトウェアがインストールされる。
【００１６】
図２は印刷装置１００、ＰＣ２００が自身の記憶装置（ＲＯＭ１０２等）に記憶するソフトウェアの構成を示す図である。オペレーションシステム（ＯＳ）２０１は基本的な動作の制御を行う。印刷装置１００ではリアルタイムＯＳ、ＰＣ２００では汎用的なＰＣで用いられるＯＳを用いることができる。ＯＳ２０１上には、ネットワークの通信制御を担当するミドルウェア２０２が存在し、その上位にアプリケーションが存在する。
【００１７】
ミドルウェア２０２上にはネットワークコントローラ１０５を制御するＬＡＮドライバ２０４が存在し、その上位にはＴＣＰ／ＩＰを用いた通信を制御するＴＣＰ／ＩＰ通信モジュールとＵＤＰを用いた通信を制御するＵＤＰ通信モジュールとが存在する。またその上位にはＨＴＴＰを用いた通信を制御するＨＴＴＰ通信モジュール２０７が存在し、その上位にＷＳＤプロトコルの制御を行うＷＳＤモジュールが存在する。そして、アプリケーション２０３としてＷＳＤプロトコルを利用した印刷処理を行う印刷アプリケーション２０９が存在する。印刷装置１００における印刷アプリケーション２０９は印刷データを受け取って印刷機構１０６を用いた印刷処理を実行し、ＰＣ２００における印刷アプリケーション２０９は印刷装置１００に対して印刷データを供給するための処理を行う。ＰＣ２００における印刷アプリケーション２０９には印刷装置１００に印刷処理を行わせるための制御を行うプリンタドライバも含まれる。
これらのソフトウェア（プログラム）は各装置のＲＯＭ１０２等の記憶装置にインストールされ、各装置のＣＰＵ１０１が実行することにより以下に示す処理がなされる。
【００１８】
図３は、印刷装置１００が受信する（ＰＣ２００が供給する）ジョブデータの例を示す図である。ジョブデータには、コマンド類と印刷装置１００が印刷処理を行う印刷データとが含まれ、これがＸＭＬで記述され、ＭＩＭＥ形式に従ってマルチパートに区切られている。ＰＣ２００から印刷装置１００に対しＨＴＴＰ接続が行われると、まずＨＴＴＰのヘッダ情報がＰＣ２００から印刷装置１００に送られる。
【００１９】
ＨＴＴＰのヘッダ情報には、ＭＩＭＥの形式に従って複数のパートに区切られたデータを取り扱うための情報が記述されており、その情報には複数に区切られたデータの区切り文字列を特定するためのｂｏｕｎｄａｒｙ引数が存在する（３０１）。図３においては３０１に示したＭＩＭＥ−ｂｏｕｎｄａｒｙと示した部分に任意に設定される区切り文字列が記述される。印刷装置１００はＰＣ２００から指定されたＭＩＭＥ−ｂｏｕｎｄａｒｙの区切り文字列を参照してジョブデータの各パートの区切り位置を特定する。
【００２０】
また、ＨＴＴＰのヘッダ情報には、ＨＴＴＰのエンティティボディをブロック化して送信する際に含まれるチャンク形式エンコーディングの指定も含まれる（３０２）。印刷装置１００はこの指定が含まれていることを判定することにより、以降のエンティティボディがチャンク形式エンコーディングされたデータであることを認識し、当該データをチャンク形式データのデコード処理を行う。
【００２１】
図３において、３０３、３０５、３０７、３０９、３１１、３１３は、チャンク形式エンコーディングされたデータのチャンクサイズを示す。印刷装置１００は、このチャンクサイズで指定されたサイズ毎に区切ってデータの受信を行う。３１３に記述されているサイズ０は、エンティティボディの最後を示しており、印刷装置１００はこれを受信すると、データの最後と認識し、ジョブデータの受信処理を終了する。
【００２２】
また図３において、３０４、３０８、３１２には、３０１で示したＭＩＭＥ−ｂｏｕｎｄａｒｙと同一の区切り文字列が記述され、この区切り文字列を境界として、複数のパートのデータのそれぞれがＰＣ２００から印刷装置１００に送信される。ここでは、３０４と３０８とで区切られた区間には３０６に示す印刷コマンドが含まれており、３０８と３１２で区切られた区間には３１０に示す印刷データが含まれている。印刷装置１００はＨＴＴＰのヘッダ情報で指定された区切り文字列に従って各パートのデータを特定し、それぞれのパートのデータ内容に応じた処理を行う。即ち、印刷コマンド３０６に対しては当該コマンドに応じたセッティング等の処理、印刷データに対しては印刷データの解析及び印刷のための展開処理を行い、印刷機構１０６を用いた印刷処理を行う。印刷データの形式としてはＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式のものやラスタ形式のものなど種々の形式を用いることができる。
【００２３】
次に、ＰＣ２００が印刷装置１００に対しジョブデータを送信する際の処理の流れを図４、７〜９を用いて説明する。この処理はＰＣ２００のＣＰＵ１０１がＲＯＭ１０２等に記憶されている図２に示したソフトウェア群のプログラムをＲＡＭ１０３にロードし、それを実行することによりなされる。
【００２４】
ユーザが印刷アプリケーション２０９によって印刷対象のデータを用意し、当該アプリケーションの印刷メニューからＷＳＤに従った印刷指示を行うと図４のフローチャートが開始される。Ｓ４０１では、印刷アプリケーション２０９から印刷装置１００が指定され、印刷指示がなされると、印刷対象のデータの送信処理開始がＯＳ２０１に指示される。ＯＳ２０１は印刷データの送信処理開始の指示を受け取ると、それに応じて自動的に図７に示すＰｒｉｎｔＪｏｂ生成コマンド（Ｓ７０１）を印刷装置１００に送信する（図７の説明は後述する）。そしてＰｒｉｎｔＪｏｂ生成に成功すると、続けて印刷装置１００とＨＴＴＰ接続を行い、図３に示すようなジョブデータのうち３０９より前までを送信する（３０９は送らない）。
【００２５】
続いて印刷アプリケーション２０９は、新たに印刷装置１００に対しＨＴＴＰ接続し、その後印刷データ送信開始指示（合図）を印刷装置１００に対して送信し（Ｓ４０２）、印刷装置１００からの印刷データ受け入れ可を示すＡｃｋの返信を待つ（Ｓ４０３）。このとき、Ｓ４０１で開始したＨＴＴＰ接続は維持したままとする。Ｓ４０２における印刷データ送信開始指示の送信により、印刷装置１００はこれから受信するデータがジョブデータのうち印刷データ（印刷対象のデータ）であり、その開始位置を把握することができる。また、ここで送信する印刷データ送信開始指示は図３に示すＨＴＴＰプロトコルによるやり取りとは別の手順でＰＣ２００から印刷装置１００に送信される。即ち、図３に示すジョブデータを送信するためのＨＴＴＰ接続とは別のセッションによりＨＴＴＰ接続し、印刷データ送信開始指示を送信する。これは本来のＷＳＤにおける処理で用いない指示であるためであるが、同一のセッション内で当該指示を送信するようにしてもよい。また、印刷データ送信開始指示はＨＴＴＰ以外の手順としてもよいし、別のＩ／Ｆを介した通信としてもよいが、ＨＴＴＰの手順を用いることによりジョブデータの送信と同じプロトコルを用いることになるので、制御が簡単になる。本実施形態では、より制御を簡単にするため、ＷＳＤプロトコルにおいて、ジョブデータの送信のＨＴＴＰ接続とは別のＨＴＴＰ接続上で送受信を行えるコマンドを用いる。具体的には、ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓコマンドを用いる。
【００２６】
図８は、印刷データ送信開始指示のデータ形式の例を示す図である。図８に示した指示はＷＳＤプロトコルにおけるＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓコマンド（プリンタ情報取得コマンド）を、応用して印刷データ送信開始指示に適用したものである。図８において、８０１は当該データがＷＳＤプロトコルにおけるプリンタ情報取得コマンドであることを示す。本実施形態ではこれを用いて、プリンタ情報の一つとしてＰＣ２００からの印刷データ送信開始指示の送信と、当該指示に対するＡｃｋ情報の取得を行うことを兼ねたものとしている。８０２が今回のコマンドによって送るプリンタ情報の内容が印刷データ送信開始指示であることを示すとともにＡｃｋ応答を要求していることを示す。また、８０３はＭＩＭＥのパート区切り文字列の解析を行うチャンクの最低サイズを示す。印刷装置１００はここで指定されたサイズを用いた判定処理を行うが、詳細は後述する。
【００２７】
図４に戻る。Ｓ４０３において印刷データ送信開始指示に対するＡｃｋを印刷装置１００から受信すると、Ｓ４０２で開始したＨＴＴＰ接続をクローズし、Ｓ４０４に進み、印刷アプリケーション２０９はＯＳ２０１に対し印刷データの送信指示を行う。そして、図３のチャンクサイズ３０９とそれに対応する印刷データ３１０とを印刷装置１００に対して逐次送信する。印刷データ３１０は複数のチャンクに分割してもよく、その場合、チャンク毎にチャンクサイズを示すデータが付加される。なお、Ａｃｋが所定時間経過しても送られてこなかった場合はタイムアウトによりエラー終了する。
【００２８】
そして、印刷データの送信が終了するとＳ４０５に進み、印刷アプリケーション２０９は新たに印刷装置１００に対しＨＴＴＰ接続する。そして、その後印刷データ送信終了指示（合図）を印刷装置１００に対して送信し（Ｓ４０５）、印刷装置１００からの印刷データ送信終了の了解を示すＡｃｋの返信を待つ（Ｓ４０６）。これにより印刷データの終了位置が把握できる。なお、印刷データ送信終了指示は図９に示す形式である。本実施形態においてはＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔコマンドを応用する点、これ以外でも構わないのは、上述した印刷データ送信開始指示と同様であり、ここでの詳細な説明は省略する。図９において、９０１は当該データがＷＳＤプロトコルにおけるプリンタ情報取得コマンドであることを示す。９０２は今回のコマンドによって送るプリンタ情報の内容が印刷データ送信終了指示であることを示すとともにＡｃｋ応答を要求していることを示す。
【００２９】
Ｓ４０６において印刷データ送信終了指示に対するＡｃｋを印刷装置１００から受信すると、Ｓ４０５で開始したＨＴＴＰ接続をクローズするとともにＳ４０７に進み、印刷アプリケーション２０９はＯＳ２０１に印刷データ送信終了の指示を行う。するとＯＳ２０１は図３の３１１以降のデータを送信する。ここで全てのジョブデータの送信が終了するので、チャンクサイズ３１３は０となる。そしてＳ４０１で開始したＨＴＴＰ接続をクローズする。
【００３０】
次に印刷装置１００側の処理の流れについて図５〜９を用いて説明する。この処理は印刷装置１００のＣＰＵ１０１がＲＯＭ１０２等に記憶されている図２に示したソフトウェア群のプログラムをＲＡＭ１０３にロードし、それを実行することによりなされる。
【００３１】
図５は、ＷＳＤに従った印刷処理の際のＭＩＭＥデータ区切り文字列（ｂｏｕｎｄａｒｙ）の解析の要否を切り替える処理の流れを示すフローチャートである。印刷装置１００の電源が投入されると、印刷装置１００のＣＰＵ１０１はＳ５０１で初期化処理の一つとしてＷＳＤに従った印刷処理の際のＭＩＭＥデータ区切り文字列の解析の状態（解析の要否）を、“解析処理状態（＝解析要）”にセットする。この状態を示す情報はＲＡＭ１０３に記憶される。
【００３２】
そしてＳ５０２において、ＰＣ２００からの指示の受信を待つ。ここでの指示は、ＨＴＴＰ接続要求、プリンタ情報取得要求、ジョブデータの受信要求、印刷データ送信開始指示、印刷データ送信終了指示など種々の指示が含まれる。しかし、ここでは印刷データ送信開始指示及び印刷データ送信終了指示以外の指示を受信した場合の処理の説明については省略する。
【００３３】
Ｓ５０３でＰＣ２００から印刷データ送信開始指示を受信したと判断された場合は、ｂｏｕｄａｒｙの解析をスキップするための処理を行うべき場合であり、Ｓ５０４に進み、印刷データを受け入れることが可能であることを確認し、Ａｃｋを返す。そして、Ｓ５０５に進んで、ＲＡＭ１０３に記憶されているｂｏｕｎｄａｒｙ解析状態を、“解析スキップ状態（＝解析不要）”にセットする。一方、Ｓ５０６でＰＣ２００から印刷データ送信終了指示を受信したと判断された場合は、ｂｏｕｄａｒｙの解析のスキップを終了するための処理を行うべき場合であり、Ｓ５０７に進み、印刷処理が正常に行えたことを確認し、Ａｃｋを返す。そして、Ｓ５０８に進んで、ＲＡＭ１０３に記憶されているｂｏｕｎｄａｒｙ解析状態を、“解析処理状態（＝解析要）”にセットする。
このように、印刷装置１００はＰＣ２００からの印刷データ送信開始指示と印刷データ送信終了指示の受信に応じてｂｏｕｎｄａｒｙ解析状態とスキップ状態とを切り替える。
【００３４】
次に、このようにｂｏｕｎｄａｒｙ解析の要否のいずれかがセットされた印刷装置１００における印刷処理の流れについて説明する。図７は、ＰＣ２００と印刷装置１００との間でのデータのやり取りの流れを時系列で示したシーケンス図である。
【００３５】
ＰＣ２００においてユーザが印刷の指示を行うと、ＰＣ２００の印刷アプリケーション２０９が印刷データの送信処理開始をＯＳ２０１に指示する。指示を受けたＯＳ２０１はそれに従ってＰｒｉｎｔＪｏｂ生成コマンドを印刷装置１００に送信する（Ｓ７０１）。これを受信した印刷装置１００は、印刷処理を開始可能な状態にあればＯＫのレスポンスをＰＣ２００に返す（Ｓ７０２）。ＯＫのレスポンスを受信したＰＣ２００は、印刷コマンド及び印刷データを送信するためのＨＴＴＰ接続を開始する（Ｓ７０３）。そしてＨＴＴＰ接続に成功すると、ＰＣ２００はＨＴＴＰヘッダ情報を印刷装置１００に送信する（Ｓ７０４）。ここで印刷装置１００はＰＣ２００からＨＴＴＰヘッダ情報を受信し、ＭＩＭＥデータ区切り文字列を特定し、チャンク形式エンコーディングを行うべきことを認識する。
【００３６】
そしてＰＣ２００は続けてチャンク形式のエンコーディングでエンティティボディの送信を行うが、まずｂｏｕｄａｒｙ（上記で特定したもの）３０４を送信する（Ｓ７０５）。ここでは、印刷装置１００は図５においてＳ５０１の状態なので、このｂｏｕｎｄａｒｙの解析を行う。印刷装置１００におけるｂｏｕｎｄａｒｙ解析は、ＰＣから受信したデータに含まれる文字列を順次上記で特定したｂｏｕｄａｒｙの文字列と比較し、全ての文字列が一致した箇所を特定し、そこが区切り位置であることを識別するものである。次にＰＣ２００はＷＳＤの印刷コマンド３０６を送信し（Ｓ７０６）、印刷装置１００は印刷処理の準備に入る。そして、ＰＣ２００は印刷データとの区切りを示すｂｏｕｄａｒｙ３０８を送信し（Ｓ７０７）、印刷装置１００はこの解析を行う。ここまでがＰＣ２００による図４のＳ４０１までの処理と、それに対する印刷装置１００の処理に該当する。
【００３７】
次に、ＰＣ２００が図４のＳ４０２において新たに印刷装置１００に対しＨＴＴＰ接続を行い、印刷データ送信開始指示を送信すると（Ｓ７０８）、印刷装置１００からのＡｃｋを受信するまで印刷データの送信を待機する。印刷データ送信開始指示を受信した印刷装置１００は、印刷処理可能な状態であればＳ５０４においてＡｃｋを送信し（Ｓ７０９）、Ｓ５０５でｂｏｕｎｄａｒｙ解析スキップ状態をセットする。
【００３８】
そしてＰＣ２００は図４のＳ４０４において印刷データ（図３のチャンクサイズ３０９と印刷データ３１０）を送信し（Ｓ７１０）、印刷装置１００はこれを受信する。このとき印刷装置１００はｂｏｕｎｄａｒｙ解析スキップ状態がセットされているため、印刷データに対するｂｏｕｄａｒｙ解析は行わない。そして、印刷装置１００の印刷アプリケーション２０９は印刷データの解析及び印刷処理可能な形式への変換を行い、印刷機構１０６による印刷処理を行う。即ち、印刷データに応じた画像を、被記録媒体上に記録剤を付与することにより印刷する。
【００３９】
そしてＰＣ２００がＳ４０５において印刷データ送信終了指示を送信すると（Ｓ７１１）、印刷装置１００は印刷処理が正常に行えたことを確認し、Ｓ５０７でＡｃｋを返す（Ｓ７１２）。そして印刷装置１００はＳ５０８でｂｏｕｄａｒｙ解析処理状態にセットされる。
【００４０】
ＰＣ２００は続いてＳ４０７においてｂｏｕｎｄａｒｙを含む図３の３１１〜３１３のデータを送信し（Ｓ７１３）、印刷装置１００はこれらの解析を行う。印刷装置１００はチャンクサイズ０のデータを認識すると、印刷コマンド３０６に対する応答を返し（Ｓ７１４）、ジョブデータの受信を行っていたＨＴＴＰ接続を終了させる（Ｓ７１５）。
【００４１】
以上のようにしてＰＣ２００は印刷装置１００に対し、印刷データの区間でのｂｏｕｎｄａｒｙ解析をスキップさせることができ、印刷装置１００はその区間のｂｏｕｎｄａｒｙ解析をスキップすることができる。
【００４２】
次に図６を用いて印刷装置１００における処理の他の例について説明する。
先の説明と同様に図７のＳ７０１〜７０４の処理を経て、Ｓ６０１においてＰＣ２００からのＨＴＴＰ接続を受け付けると、図３の３０１、３０２を含むＨＴＴＰヘッダ情報を受信し、その解析を行う。この解析に際してＨＴＴＰヘッダ情報に含まれるＭＩＭＥデータ区切り文字列（３０１の“ＭＩＭＥ−ｂｏｕｎｄａｒｙ”の箇所にある文字列）を取り出し、以降の区切り箇所の判定に使うためにこれをＲＡＭ１０３に記憶する。また、チャンク形式エンコーディングの指定を認識し、以降のエンティティボディを、チャンク形式エンコーディングされたデータとしてデコード処理を行うようにする。
【００４３】
次にＳ６０２において図３の３０３等のチャンクサイズを示すデータを受信する。そしてＳ６０３において受信したチャンクサイズのデータが示すサイズが０かどうかの確認を行う。ここで受信したチャンクサイズのデータが示すサイズが０であった場合は今回の受信では以降のデータがない場合であり、ここで受信処理を終了する。一方、チャンクサイズのデータが示すサイズが０でなかった場合は（チャンクサイズに負の値はないのでここは正の値となる）、続いてＳ６０４においてそのチャンクサイズ分のデータを受信する。
【００４４】
そしてＳ６０５では、受信したチャンクサイズのデータが示すサイズが予め指定されているサイズ（指定値）以上であるか判断する。ここでチャンクサイズが指定値以上であるか判断するのは、ＰＣ２００が印刷データ送信終了指示を送信しなかった、あるいは印刷装置１００が印刷データ送信終了指示を受信できなかった場合であっても印刷データの送信終了を判断できるようにするためである。即ち、チャンクサイズが指定値より小さかった場合は既に印刷データの送信は終了しており、受信したデータが印刷データでない可能性があるため、以降の処理でｂｏｕｎｄａｒｙの解析処理を行うものである。このときデータサイズは小さいため、もしここで受信したデータが印刷データであったとしても処理負荷は高くならない。また、ここでの指定値は任意に変更できるものとしてもよいし、印刷データ以外のコマンド類やｂｏｕｎｄａｒｙの文字列分のデータサイズに多い値（例えば数バイト）などに固定としてもよい。
【００４５】
Ｓ６０５で指定値以上であったと判断された場合はＳ６０６に進み、指定値より小さかった場合はＳ６０７に進み、チャンクデータのＭＩＭＥのｂｏｕｎｄａｒｙ解析処理を行う。Ｓ６０７では印刷装置１００がｂｏｕｎｄａｒｙ解析スキップ状態であっても解析処理を行う。
【００４６】
Ｓ６０６では印刷装置１００がｂｏｕｎｄａｒｙ解析スキップ状態にセットされているか判断する。チャンクサイズが指定値以上であり、ｂｏｕｎｄａｒｙ解析スキップ状態にセットされている場合は受信したチャンクデータが印刷データの場合であり、Ｓ６１０に進み、印刷データであるチャンクデータを印刷アプリケーション２０９に渡す。印刷アプリケーション２０９は受信した印刷データに従って印刷機構１０６を用いた印刷処理を実行する。このとき印刷装置１００のＣＰＵ１０１は受信したチャンクデータのｂｏｕｎｄａｒｙ解析は行わない。
【００４７】
チャンクサイズが指定値より小さい場合またはｂｏｕｎｄａｒｙ解析スキップ状態にセットされていた場合はＳ６０７でチャンクデータのｂｏｕｎｄａｒｙ解析処理を行う。即ち、ＲＡＭ１０３に保存されているＭＩＭＥ−ｂｏｕｎｄａｒｙの文字列と受信したチャンクデータとの照合処理を行う。そして、ｂｏｕｎｄａｒｙの文字列と一致しなければチャンクデータは印刷データであり、Ｓ６１０に進み印刷処理を行う。一方、ｂｏｕｎｄａｒｙの文字列と一致した場合（例えば図３の３０４や３０８における一致）は印刷データではないので、Ｓ６０９に進み、ＷＳＤコマンド処理を行う。なお、ここではｂｏｕｎｄａｒｙの文字列を含むか否かで印刷データか否か判断するようにしたが、チャンクデータを解析した結果、他の条件によって印刷データか否かを判断するようにしてもよい。
【００４８】
そして、受信したチャンクデータについてコマンド処理または印刷処理を行っている間も継続して後続のチャンクデータの受信処理は継続されるので、Ｓ６０２に戻り、以上の処理をチャンクサイズが０を示すチャンクサイズのデータを受信するまで繰り返す。
【００４９】
以上のように印刷データ送信開始指示を受信した後において、受信するチャンクデータのチャンクサイズが指定値より小さい場合にはｂｏｕｎｄａｒｙ解析処理を行う。これにより、例えば図７のＳ７１１における印刷データ送信終了指示を受信しなかった（または受信できなかった）場合に、図３の３１２などのようなデータを印刷データとして扱ってしまうことによる印刷不良を防ぐことができる。即ち、ＰＣ２００側での処理異常や、ＰＣ２００と印刷装置１００との間の通信異常によって印刷データ送信終了指示を印刷装置１００で受信できなかった場合であっても適切にｂｏｕｎｄａｒｙの解析処理を実行可能となる。
【００５０】
以上、これまで説明したような処理を行うことにより、印刷データにおけるｂｏｕｎｄａｒｙ解析処理を省略できるので、印刷装置１００のＣＰＵ１０１の処理負荷を軽減できる。また、ｂｏｕｎｄａｒｙの解析処理用のハードウェア（ＣＰＵ１０１のｂｏｕｎｄａｒｙ解析処理を支援するためのもの）を不要とすることもできる。また、以上の例のように印刷データ送信開始指示や終了指示をＷＳＤのコマンドを流用することにより、共通のＷＳＤプロトコルを利用して印刷処理とｂｏｕｎｄａｒｙ解析の要否の切り替えとを行うことができ効率的である。また、汎用性の向上も図れる。
【００５１】
なお、以上の例のように、印刷データの送信のためのセッションとは異なるセッションにより並行して印刷データ送信開始指示や終了指示の送信を行う場合、ＰＣ２００は印刷データの送信開始や送信終了の状況に合わせて各指示の送信を行う必要がある。即ち、図３の３０９より手前のデータを送った後で、３０９を送る前のタイミングで印刷データ送信開始指示を送信する必要がある。そして、３１１より前を送った後で、３１１を送る前に印刷データ送信終了指示を送る必要がある。
【００５２】
また、以上の例において、内容の異なる複数の印刷データ（例えばそれぞれ別の印刷ジョブに従った印刷データ）を送信する場合、その区切り位置でｂｏｕｎｄａｒｙのデータを挟むようにしてもよい。この場合、印刷データの区切りでは印刷データ送信終了指示と後続の印刷データの送信開始指示とが送信される。
【００５３】
また、以上の例では、ｂｏｕｎｄａｒｙ解析の省略は印刷データの部分としたが、印刷ジョブ以外を行うものにも適用可能である。例えば、データ送信ジョブであれば送信データの部分を、ストアジョブであれば蓄積対象のデータの部分を同様に開始指示と終了指示とを送信することによって解析処理を省略させることができる。いずれにしてもジョブの処理対象である処理データの部分（コマンド類や区切りデータではない部分）において区切りデータの解析を省略できればよい。
【００５４】
また、処理データの部分の判定の仕方として、データ送信開始指示等を用いるのに代え、データのサイズを参照するようにしてもよい。即ち、コマンド類となり得るサイズの上限値を図６で説明した指定値とし、ジョブ処理装置（印刷装置１００等）において受信したデータのサイズがこれを超えているか否かによって判定するようにしてもよい。これによりサイズの大きいデータは処理データであるので、区切りデータの解析処理は省略してジョブ処理を実行し、サイズの小さいデータは区切りデータの解析処理を行う。このとき、サイズの小さいデータが処理データであったとしてもサイズが小さいため処理負荷は高くはならない。
【００５５】
また、以上の例では、マルチパート形式のデータとしてＭＩＭＥ形式を例に説明したが、ＭＩＭＥ以外の形式で、区切りデータの解析を行って各パートの区切りを判定する必要のあるものであれば、種々のものに採用可能である。
【００５６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行することによって実現可能である。また、このプログラムは、１つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部をハードウェアによって実現するようにしてもよい。
【図１】
0005791248.tif 000002
【図２】
0005791248.tif 000003
【図３】
0005791248.tif 000004
【図４】
0005791248.tif 000005
【図５】
0005791248.tif 000006
【図６】
0005791248.tif 000007
【図７】
0005791248.tif 000008
【図８】
0005791248.tif 000009
【図９】
0005791248.tif 000010