(57)【要約】【課題】ネットワークからの複数の印刷ジョブデータが並行に投入されて、並行に印刷ジョブとして認識されることができるようにする。【解決手段】複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数の受信手段と、対応する受信手段を介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識手段とを設ける。【選択図】　　　図３
2004126943.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロトコルを用いて複数の外部装置と通信可能な印刷処理装置であって、
前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数の受信手段と、
前記複数の受信手段のいずれかに対応し、対応する受信手段を介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識手段と、
前記認識手段によって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納する印刷データ格納手段と、
前記印刷データ格納手段に格納されている印刷データを解析して、画像データを生成する解析手段とを有することを特徴とする印刷処理装置。
【請求項２】
前記複数の受信手段は、ネットワークを介して外部装置から印刷ジョブデータを受信する受信手段と、ローカルインタフェースを介して外部装置から印刷ジョブデータを受信する受信手段とを含むことを特徴とする請求項１に記載の印刷処理装置。
【請求項３】
印刷ジョブの属性に関する情報を格納する属性格納手段を有し、
前記認識手段は、印刷ジョブデータに含まれている印刷データを前記印刷データ格納手段に登録し、印刷ジョブデータに含まれている属性値を前記属性格納手段に登録することを特徴とする請求項１或いは２に記載の印刷処理装置。
【請求項４】
印刷ジョブデータは、印刷ジョブの開始を示すデータ、印刷ジョブの属性の属性値、印刷データ、印刷ジョブの終了を示すデータとから構成されており、
前記認識手段は、印刷ジョブの開始を示すデータを取得するのに応じて、当該印刷ジョブを認識し、属性値を取得するのに応じて、当該属性値を前記属性格納手段に登録し、印刷データを取得するのに応じて、当該印刷データを前記印刷データ格納手段に登録することを特徴とする請求項３に記載の印刷処理装置。
【請求項５】
前記印刷ジョブデータは、印刷ジョブの開始を示すパケット、印刷ジョブの属性の属性値が格納されたパケット、印刷データが格納されたパケット、印刷ジョブの終了を示すパケットから構成されることを特徴とする請求項４に記載の印刷処理装置。
【請求項６】
前記認識手段は、対応する受信手段を介して受信されたデータの所定部分を解析して、前記パケットであるかどうかを判定することを特徴とする請求項５に記載の印刷処理装置。
【請求項７】
複数のプロトコルを用いて複数の外部装置と通信して印刷処理を行う印刷処理方法であって、
前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数のサーバを起動する起動ステップと、
前記複数のサーバのいずれかに対応し、対応するサーバを介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識プロセスを起動する起動ステップと、
前記認識プロセスによって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納部に格納する印刷データ格納ステップと、
前記印刷データ格納部に格納されている印刷データを解析して、画像データを生成する解析ステップとを有することを特徴とする印刷処理方法。
【請求項８】
印刷ジョブの属性に関する情報を属性格納部に格納する属性格納ステップを有し、
前記認識プロセスは、印刷ジョブデータに含まれている印刷データを前記印刷データ格納部に登録し、印刷ジョブデータに含まれている属性値を前記属性格納部に登録することを特徴とする請求項７に記載の印刷処理方法。
【請求項９】
印刷ジョブデータは、印刷ジョブの開始を示すデータ、印刷ジョブの属性の属性値、印刷データ、印刷ジョブの終了を示すデータとから構成されており、
前記認識プロセスは、印刷ジョブの開始を示すデータを取得するのに応じて、当該印刷ジョブを認識し、属性値を取得するのに応じて、当該属性値を前記属性格納部に登録し、印刷データを取得するのに応じて、当該印刷データを前記印刷データ格納部に登録することを特徴とする請求項８に記載の印刷処理方法。
【請求項１０】
前記印刷ジョブデータは、印刷ジョブの開始を示すパケット、印刷ジョブの属性の属性値が格納されたパケット、印刷データが格納されたパケット、印刷ジョブの終了を示すパケットから構成されることを特徴とする請求項９に記載の印刷処理方法。
【請求項１１】
前記認識プロセスは、対応するサーバを介して受信されたデータの所定部分を解析して、前記パケットであるかどうかを判定することを特徴とする請求項１０に記載の印刷処理方法。
【請求項１２】
同一のサーバを複数起動して、同一のプロトコルを用いて複数の印刷ジョブデータを並行に受信できることを特徴とする請求項７乃至１１のいずれかに記載の印刷処理方法。
【請求項１３】
複数のプロトコルを用いて複数の外部装置と通信して印刷処理を行う印刷処理プログラムであって、
前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数のサーバを起動する起動ステップと、
前記複数のサーバのいずれかに対応し、対応するサーバを介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識プロセスを起動する起動ステップと、
前記認識プロセスによって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納部に格納する印刷データ格納ステップと、
前記印刷データ格納部に格納されている印刷データを解析して、画像データを生成する解析ステップとをコンピュータに実行させることを特徴とする印刷処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータ等の外部装置か送信した印刷ジョブデータを受信して、印刷ジョブデータ中の印刷データに基づいて用紙に印刷を行わせる印刷処理装置に関するものである。
【０００２】
【従来の技術】
従来の印刷装置では、印刷データを受信するための物理的なインターフェイスを備え、外部装置から受信した印刷データ、特に、Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅで記述されたＰＤＬデータに基づいて印刷を行っていた。ここでいう物理的なインターフェイスとは、ＲＳ−２３２ＣやＩＥＥＥ１２８４といったローカルインターフェイスを示しており、これらのローカルインターフェイスでは、外部装置と印刷装置とはピアツーピア（１対１）の関係であった。
【０００３】
その後、印刷装置は複数の物理的なインターフェイスを備えるようになった。これらの物理的なインターフェイスには、ＩＥＥＥ１２８４、ＵＳＢ、ＩＥＥＥ１３９４、１０／１００ｂａｓｅ−Ｔ（Ｅｔｈｅｒｎｅｔ（Ｒ））、８０２．１１ｂ無線ＬＡＮなどがある。
【０００４】
また、ＬＡＮに接続するためのインターフェイスを印刷装置に実装するためには、通信プロトコルによる論理的なインターフェイスも必要である。論理的なインターフェイスには、ｌｐｒ、Ｐｏｒｔ９１００、ＳＭＢ、ＩＰＰ、ＡｐｐｌｅＴａｌｋ、Ｎｅｔｗａｒｅなどがある。
【０００５】
特に、印刷装置がネットワーク接続することが可能になったことにより、印刷装置は複数のユーザから印刷ジョブを投入されるようになった（例えば、特許文献１参照）。
【０００６】
図１は、従来の印刷装置の構成を示す模式図である。図１において、１００は印刷装置、１１０はネットワーク通信部（例えば、ネットワークボード）、１２０は印刷制御部である。ネットワーク通信部１１０と印刷制御部１２０は、物理的に異なる装置であり、それぞれがＣＰＵやメモリを有しおり、お互いは物理的なインターフェイスで接続されて通信をしている。
【０００７】
１５１は、印刷装置１００とローカルインターフェイスを介して接続されているホストコンピュータである。ここでいうローカルインターフェイスは、例えばＩＥＥＥ１２８４（いわゆるセントロインターフェイス）、ＵＳＢ、ＩＥＥＥ１３９４などであり、ホストコンピュータと印刷装置がピアツーピアで接続されるものである。１６２は、ローカルインターフェイスに接続されるケーブルである。
【０００８】
１５２と１５３は、印刷装置１００とネットワークを介して接続されているホストコンピュータである。１６１は、例えばＥｔｈｅｒｎｅｔ（Ｒ）、Ｔｏｋｅｎ−ｒｉｎｇなどのネットワークの物理ケーブルである。また、ＩＥＥＥ８０２．１１ｂ（Ｗｉ−Ｆｉ）やＢｌｕｅｔｏｏｔｈなどの無線ネットワークでは物理ケーブルは存在しないが、ネットワークが有線と無線とのどちらで構築されていても良い。
【０００９】
ネットワーク通信部１１０は、ネットワークからの印刷要求を受信し、管理情報の受け渡し要求に対しては応答する。１１１は、ネットワークからの電気的なやりとりを情報に変換するＥｔｈｅｒｎｅｔ（Ｒ）コントローラである。１１２は、ネットワークから伝わる任意のパケットに対して、ネットワーク種別、プロトコル種別、ポート番号を判別し、それぞれに対応するモジュールに情報を転送する転送するディスパッチャである。例えば、パケットがＴＣＰ／ＩＰのものであって、パケットが指定するポート番号が５１５番である場合、そのパケットの情報をｌｐｒサーバ１１３に転送する。
【００１０】
１１３はｌｐｒサーバ、１１４はＰｏｒｔ９１００サーバ、１１５はＮｅｔｗａｒｅサーバ、１１６はＡｐｐｌｅＴａｌｋサーバであり、それぞれは、それぞれが対応するプロトコルを使用して外部装置と通信する。なお、ここでは４つの代表的なプロトコルを例示したが、それ以外のプロトコルを使用するサーバが存在していても良い。これらのサーバは、ネットワークから送られてきた印刷ジョブデータを受け取るためのアプリケーション層プロトコルを処理し、転送されて来た情報の中から印刷データを抽出する。
【００１１】
１１７は、各種サーバから抽出した印刷ジョブデータを印刷制御部１２０に渡す印刷データ通信部である。印刷データ通信部１１７は、同時に１つの印刷ジョブデータだけを受け取り、それ以外の要求に対しては待ち状態を設定する。
【００１２】
１１８は、印刷制御部１２０に接続する物理的な口を持つプリンタＩ／Ｏインターフェイスである。１１９は、印刷制御部からの管理情報を管理し、ネットワークからの状態獲得要求に対して管理情報を返信したり、あるいはネットワークからの制御要求に対して印刷制御部１２０を制御する。プリンタＩ／Ｏインターフェイス１１８では同時には１つの印刷ジョブだけが通過する。
【００１３】
印刷制御部１２０内には、以下のようなものが存在する。１２１は外部装置とピアツーピア接続するためのローカルインターフェイスである。１２２はネットワーク通信部１１０と物理的な接続をするための拡張Ｉ／Ｏインターフェイスである。１２３は、ローカルインターフェイスを介して受信した印刷ジョブデータを印刷ジョブとして認識し、認識した印刷ジョブに関する情報をジョブ属性ＤＢ１２６に登録し、印刷ジョブデータ内に含まれる印刷データ（ＰＤＬデータ）を受信バッファ１２５に蓄えるジョブ認識部である。１２４は、ネットワークインターフェイスを介して受信した印刷ジョブデータを印刷ジョブとして認識し、認識した印刷ジョブに関する情報をジョブ属性ＤＢ１２６に登録し、印刷ジョブデータ内のＰＤＬデータを受信バッファ１２５に蓄えるジョブ認識部である。
【００１４】
１２５はＰＤＬデータを一時的に格納しておく受信バッファである。１２６は印刷ジョブに関する情報を格納するジョブ属性データベース（ＤＢ）である。
【００１５】
１２７は、ジョブ属性ＤＢ１２６から印刷ジョブに関する情報を取得してＰＤＬデータを解釈し、イメージデータを生成するジョブ解釈部である。１２８は、ジョブ解釈部１２７によって生成されたイメージデータを一時的に格納するイメージデータ格納部である。１２９は、生成されたイメージデータを取得してラスターデータに変換し、ラスタデータをプリンタエンジン１３０に出力してプリンタエンジン１３０における印刷を制御するエンジン制御部である。
【００１６】
１３０は、既知の印刷技術を利用して、エンジン制御部１２９から受け取ったラスタデータに基づいて用紙に印刷を行うプリンタエンジンである。
【００１７】
１３１は、ホストコンピュータからの要求に従って、ジョブ属性ＤＢ１２６に格納されている印刷ジョブに関する情報やエンジン制御部１２９またはプリンタエンジン部１３０の状態情報を監視し或いは制御する状態管理部である。また、必要に応じて、監視している情報を外部装置に出力するための制御を行う。
【００１８】
【特許文献１】
特開平０５−２８６４４号公報
【００１９】
【発明が解決しようとする課題】
しかし、図１の構成では、印刷制御部１２０がネットワークを用いて送信された印刷ジョブを同時期に１つしか受信できないという問題点があった。その理由は、ネットワーク通信部１１０と印刷部１２０とがプリンタＩ／Ｏインターフェイス１１８及び拡張インターフェイス１２２を介して接続されており、この間の通信では同時に複数の印刷ジョブが転送されないという制限があるからである。
【００２０】
すると、複数のユーザが同時に印刷ジョブをネットワークを介して印刷装置１００に投入した場合、例えばホストコンピュータ１５２がｌｐｒを用いて印刷ジョブを投入し、ホストコンピュータ１５３がＰｏｒｔ９１００を用いて印刷ジョブを投入した場合、先着の印刷ジョブが印刷データ通信部１１７を占有してしまい、後着の印刷ジョブは排他される。排他された印刷ジョブはフロー制御によって送信が停止される。すると、ホストコンピュータは、処理が進んでいないにもかかわらず、リソース（ＣＰＵパワー、メモリ容量、ディスク容量）を消費しつづけてしまう。
【００２１】
第２の問題として、ネットワークを介して送信された印刷ジョブを認識するのが遅いという問題がある。印刷装置１００において、この印刷ジョブが管理対象として認識されるのはジョブ認識部１２４においてである。具体的には、ジョブ認識部１２４において、ネットワークを介して送信された印刷ジョブに関する情報がジョブ属性ＤＢ１２６に登録される。しかし、複数のホストコンピュータが同時に印刷ジョブを印刷装置１００に投入しようとした場合、後着の印刷ジョブはサーバ１１３〜１１６のいずれかに留まっており、ジョブ認識部１２４は後着の印刷ジョブを認識することができない。
【００２２】
図２は、第１の問題を解決するための一つの方法である。図２においては、印刷制御部とネットワーク通信部が一体化されている。ここでは、受信バッファ２０８がサーバ２０４〜２０７によってアクセスされ、単純なファイルシステムとして、並列的に印刷データの格納が可能である。ジョブ認識部２０９は、受信バッファ２０８に格納されて受信完了された印刷ジョブを認識し、印刷ジョブに関する情報をジョブ属性ＤＢ２１０に登録する。
【００２３】
図２の構成によって、印刷ジョブは受信バッファ２０８に並列的に格納されることが可能になった。それにより、ネットワークを介して送信された印刷ジョブを１つしか受信できないという問題を解決することはできる。
【００２４】
しかし、ジョブ識別部２０９は、受信バッファ２０８に格納された印刷ジョブしか認識できないため、印刷ジョブが認識されるのが遅い。
【００２５】
さらに、ＰＤＬデータが受信バッファ２０８に格納され終わるまで、ジョブ解釈部２１１はＰＤＬデータの解釈処理を開始することができない。そのため、最初のページが出力されるまでの時間が遅くなるという新たな問題が生じる。
【００２６】
そこで、本発明は、印刷制御部がネットワークを介して送信された印刷ジョブを同時に１つしか受信できない、印刷ジョブが認識されるのが遅い、印刷ジョブの最初のページが出力されるまでの時間が遅くなる、という問題を解決することを目的とする。
【００２７】
【課題を解決するための手段】
（１）上記課題を解決するために、本発明に関わる印刷処理装置は、複数のプロトコルを用いて複数の外部装置と通信可能な印刷処理装置であって、前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数の受信手段と、前記複数の受信手段のいずれかに対応し、対応する受信手段を介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識手段と、前記認識手段によって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納する印刷データ格納手段と、前記印刷データ格納手段に格納されている印刷データを解析して、画像データを生成する解析手段とを有することを特徴とする。
【００２８】
また、前記複数の受信手段は、ネットワークを介して外部装置から印刷ジョブデータを受信する受信手段と、ローカルインタフェースを介して外部装置から印刷ジョブデータを受信する受信手段とを含むことを特徴とする。
【００２９】
また、印刷ジョブの属性に関する情報を格納する属性格納手段を有し、前記認識手段は、印刷ジョブデータに含まれている印刷データを前記印刷データ格納手段に登録し、印刷ジョブデータに含まれている属性値を前記属性格納手段に登録することを特徴とする。
【００３０】
また、印刷ジョブデータは、印刷ジョブの開始を示すデータ、印刷ジョブの属性の属性値、印刷データ、印刷ジョブの終了を示すデータとから構成されており、前記認識手段は、印刷ジョブの開始を示すデータを取得するのに応じて、当該印刷ジョブを認識し、属性値を取得するのに応じて、当該属性値を前記属性格納手段に登録し、印刷データを取得するのに応じて、当該印刷データを前記印刷データ格納手段に登録することを特徴とする。
【００３１】
また、前記印刷ジョブデータは、印刷ジョブの開始を示すパケット、印刷ジョブの属性の属性値が格納されたパケット、印刷データが格納されたパケット、印刷ジョブの終了を示すパケットから構成されることを特徴とする。
【００３２】
また、前記認識手段は、対応する受信手段を介して受信されたデータの所定部分を解析して、前記パケットであるかどうかを判定することを特徴とする。
【００３３】
（２）上記課題を解決するために、複数のプロトコルを用いて複数の外部装置と通信して印刷処理を行う印刷処理方法であって、前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数のサーバを起動する起動ステップと、前記複数のサーバのいずれかに対応し、対応するサーバを介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識プロセスを起動する起動ステップと、前記認識プロセスによって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納部に格納する印刷データ格納ステップと、前記印刷データ格納部に格納されている印刷データを解析して、画像データを生成する解析ステップとを有することを特徴とする。
【００３４】
また、印刷ジョブの属性に関する情報を属性格納部に格納する属性格納ステップを有し、前記認識プロセスは、印刷ジョブデータに含まれている印刷データを前記印刷データ格納部に登録し、印刷ジョブデータに含まれている属性値を前記属性格納部に登録することを特徴とする。
【００３５】
また、印刷ジョブデータは、印刷ジョブの開始を示すデータ、印刷ジョブの属性の属性値、印刷データ、印刷ジョブの終了を示すデータとから構成されており、前記認識プロセスは、印刷ジョブの開始を示すデータを取得するのに応じて、当該印刷ジョブを認識し、属性値を取得するのに応じて、当該属性値を前記属性格納部に登録し、印刷データを取得するのに応じて、当該印刷データを前記印刷データ格納部に登録することを特徴とする。
【００３６】
また、前記印刷ジョブデータは、印刷ジョブの開始を示すパケット、印刷ジョブの属性の属性値が格納されたパケット、印刷データが格納されたパケット、印刷ジョブの終了を示すパケットから構成されることを特徴とする。
【００３７】
また、前記認識プロセスは、対応するサーバを介して受信されたデータの所定部分を解析して、前記パケットであるかどうかを判定することを特徴とする。
【００３８】
（３）上記課題を解決するために、複数のプロトコルを用いて複数の外部装置と通信して印刷処理を行う印刷処理プログラムであって、前記複数のプロトコルのうちのいずれかを用いて、異なるプロトコルによる他の印刷ジョブデータの受信と並行に、印刷ジョブデータを受信することができる複数のサーバを起動する起動ステップと、前記複数のサーバのいずれかに対応し、対応するサーバを介して受信された印刷ジョブデータを解析して印刷ジョブとして認識する複数の認識プロセスを起動する起動ステップと、前記認識プロセスによって印刷ジョブとして認識された印刷ジョブデータに含まれている印刷データを格納部に格納する印刷データ格納ステップと、前記印刷データ格納部に格納されている印刷データを解析して、画像データを生成する解析ステップとをコンピュータに実行させることを特徴とする。
【００３９】
【発明の実施の形態】
図３は、本発明に係る印刷装置の構成を示す模式図である。印刷装置３００では、印刷制御部とネットワーク通信部とが一体化されている。３５１は、ローカルインターフェイスを介して印刷装置３００に接続しているホストコンピュータである。３５２及び３５３は、ネットワーク、例えばＬＡＮやインターネット、を介して印刷装置３００に接続しているホストコンピュータである。なお、印刷装置とは、レーザビームプリンタ、インクジェットプリンタ、複写機、複合機などの印刷処理装置である。
【００４０】
印刷装置３００の内部は以下のものから構成されている。３０２は、ネットワークからの電気的なやりとりを情報に変換するＥｔｈｅｒｎｅｔ（Ｒ）コントローラである。３０３は、ネットワークからの任意のパケットに含まれる情報を、ネットワーク種別、プロトコル種別、ポート番号などに従って、対応するモジュールに転送するディスパッチャである。例えば、ネットワーク通信によって受け取ったパケットがＴＣＰ／ＩＰによるものであり、かつパケットで指定されたパート番号が５１５番の場合には、パケットに含まれる情報をｌｐｒサーバに転送する。３０４はｌｐｒサーバ、３０５はＰｏｒｔ９１００サーバ、３０６はＮｅｔｗａｒｅサーバ、３０７はＡｐｐｌｅＴａｌｋサーバである。これらのサーバはそれぞれ、対応するプロトコルを使ってネットワークから印刷ジョブデータを受け取るアプリケーション層のモジュールであり、パケットから印刷ジョブデータを切り出して後段の処理に渡す。３０８は、サーバ３０４〜３０７を介して転送されてきた印刷ジョブデータを、あるいはローカルインターフェイス３０１を介して転送されてきた印刷ジョブデータを印刷ジョブとして認識し、印刷ジョブに関する情報をジョブ属性ＤＢ３１０に登録するジョブ認識部である。また、ジョブ認識部３０８は、印刷ジョブ内に含まれるＰＤＬデータを受信バッファ３０９に送る。図中ではジョブ認識部３０８が複数存在するように記述されているが、これは、ジョブ認識部３０８がサーバ３０４〜３０７からの要求をそれぞれ独立に並行動作して処理可能であるモジュールであることを表現している。
【００４１】
３０９は、ＰＤＬデータを一時的に格納しておく受信バッファである。受信バッファ３０９はＨＤＤなどの２次記憶装置から構成されており、サーバ３０４〜３０７に対してファイルシステムとして動作し、これらのサーバからのデータを並列に格納することができる。
【００４２】
３１０は、印刷ジョブデータに含まれる印刷ジョブに関する情報を登録・格納しておくジョブ属性ＤＢである。３１１は、受信バッファ３０９からはＰＤＬデータを、ジョブ属性ＤＢ３１０からは印刷ジョブに関する情報を取得し、ＰＤＬデータを解釈してイメージデータを生成するジョブ解釈部である。
【００４３】
３１２は、ジョブ解釈部３１１にいよって生成されたイメージデータを一時的に格納するイメージデータ格納部である。３１３は、生成されたイメージデータを獲得して、当該イメージデータをラスタデータに変換し、ラスタデータをプリントエンジン送信して印刷を制御するエンジン制御部である。３１４は、既知の印刷技術を利用して、エンジン制御部３１３から送信されたラスターデータに基づいて用紙に印刷を行うプリンタエンジンである。プリンタエンジンには、インクジェット方式や電子写真方式などがある。
【００４４】
３１５は、ホストコンピュータからの要求に従って、ジョブ属性ＤＢ３１０にある印刷ジョブに関する情報や、エンジン制御部３１３またはプリンタエンジン３１４の状態に関する情報を監視し或いは変更する状態管理部である。また、この状態管理部は必要に応じてそれらの情報をホストコンピュータに転送する処理をも行う。
【００４５】
次に、ジョブ認識部３０８の動作を説明する。図４は、ジョブ認識部３０８の動作を示すフローチャートである。図３中の複数のジョブ認識部３０８は、個々に状態を持ち、個々がフローチャートに従って印刷ジョブの認識処理を実行する。なお、複数のジョブ認識部３０８は、図３のフローチャートが示す１つのプログラムに基づく複数のプロセスによって実現されていても良い。
【００４６】
まず、サーバ３０４〜３０７のいずれかからの接続を確認する（ステップＳ４０１）。次に、接続が確認できたか否かを判定し（ステップＳ４０２）、確認できなかった場合にはステップＳ４０１に戻る。
【００４７】
接続があったと判定された場合には、サーバからのデータを取得し（ステップＳ４０３）、データ種別を判定する（ステップＳ４０４）。さらに、データ種別の判定結果に基づいて、各データ種別固有のデータ処理を行う（ステップＳ４０５）。データがジョブパケットの場合には、１つの印刷ジョブの認識が完了した時点で、ステップＳ４０５の処理が終了する。次に、接続が完了したかを判断し（ステップＳ４０６）、完了した場合にはステップＳ４０１に戻り、完了していない場合には後続のデータの処理を行う。
【００４８】
以下、データ種別による固有の処理について説明する。
【００４９】
印刷ジョブは、アプリケーション層においてジョブパケットと呼ばれるパケットによって構成されている。これは、ジョブ認識部３０８が印刷ジョブを認識しやすくするための工夫である。
【００５０】
図５はジョブパケットのパケット構想を示す図である。縦軸はバイトを示し、横軸は各バイトごとのビットを示している。図中において、０〜１バイト目は、ジョブパケットであることを識別するためのパケット識別子であり、特定の値、例えば０ｘｃｄ、０ｘｃａが格納される。
【００５１】
２〜３バイト目はオペレーションコードであり、パケットの機能を示すＩＤである。ジョブパケットにおいては以下の値が用意されている。
０ｘ０２０１：ジョブ開始を示すオペレーション
０ｘ０２０２：ジョブ属性の設定を示すオペレーション
０ｘ０２０４：ＰＤＬデータの送信を示すオペレーション
０ｘ０２０５：ジョブ終了を示すオペレーション
【００５２】
４〜５バイト目はブロック番号である。通常、１つの印刷ジョブについて複数のジョブパケットが送信される。そこで、ジョブパケットを送信した側（送信側）が、ジョブパケットを受信した側（受信側）からの返答を要求する場合に、受信側からの返答が、どの返答要求に基づくものであるかを識別するために使用される番号である。例えば、送信側が、ブロック番号が１、２、３であるジョブパケットをそれぞれ送信したときに、ブロック番号＝２を示すエラーパケットを受信した場合、送信側は、ブロック番号が２であるジョブパケットにエラーが発生したことを知ることができる。
【００５３】
６〜７バイト目は、データ部のバイト長（データサイズ）を示す領域である。０〜６４Ｋバイトを示すことができる。
【００５４】
８〜９バイト目は、ジョブパケットの各種フラグを示す領域であり、以下のフラグが設定されうる。
【００５５】
エラーフラグ：このフラグの値が１の場合、印刷装置でなんらかのエラーが発生したことを示す。このフラグは、印刷装置からホストコンピュータに送信される返信パケットで使用される。
【００５６】
通知フラグ：このフラグの値が１の場合、ホストコンピュータからの要求に対する返答ではなく、印刷装置が何らかの通知事項があることをホストコンピュータに示す。
【００５７】
継続フラグ：このフラグの値が１の場合、送信したいデータが１つのジョブパケットのデータ部に収まりきれないために、残りのデータが後続のジョブパケットによっても送信されることを示す。よって、次のジョブパケットのオペレーションコードは、前のパケットのオペレーションコードと同じでなければならない。
【００５８】
返答要求：ホストコンピュータが印刷装置に対して返答パケットを要求する場合に、１が設定される。０のときは、パケットが正常に処理されるのに従って返答が行われない。ただし、印刷装置でエラーが発生したときには、返答要求が０であるか１であるかに関わらず、エラーフラグが１である返答パケットが送信される。
【００５９】
１０〜１１バイト目はユーザＩＤ、１２〜１３バイト目はパスワードを格納する領域である。パケットによる操作に制限をかけてセキュリティを向上させるための認証処理に用いられる。
【００６０】
１４バイト目以降は、オペレーションコードに対応した追加データが格納される。ジョブ開始オペレーションの場合には、ジョブの実行モードが追加データとして格納される。指定可能な実行モードは以下の通りである。
０ｘ０１：印刷ジョブの通常実行。当該印刷ジョブは通常ジョブとして扱われ、印刷装置のキューの最後に追加される。キューは、印刷順序をスケジューリングされるためのものであり、順番が回ってきた印刷ジョブが印刷処理される。
０ｘ０４：印刷ジョブの割り込み実行。当該印刷ジョブは割り込みジョブとして扱われ、印刷装置は全ての印刷ジョブの処理を停止し、当該印刷ジョブに基づく印刷を優先的に行う。
【００６１】
ジョブ属性オペレーションコードの場合には、ジョブ属性ＩＤとジョブ属性値とが追加データとして格納される。ジョブ属性ＩＤとは、ジョブ属性の各項目或いは環境設定情報の各項目に対応した識別子である。以下に、ジョブ属性の代表的なものを挙げる。この他、印刷装置の機能に応じて、印刷部数、モノクロまたはカラーの指定などのジョブ属性があり、それぞれに対応するＩＤが割り振られている。
０ｘ０１０１：ジョブ名称
０ｘ０１０３：ジョブオーナ名
０ｘ０１６ａ：ジョブサイズ
０ｘ０００２：ジョブ終了の通知先アドレス
【００６２】
ＰＤＬデータ送信オペレーションの場合には、ＰＤＬデータが追加データとして格納される。１つのジョブパケットでは、６４Ｋバイトまでのデータをデータ部に格納することができるが、それ以上のデータは複数のジョブパケットに分割されて送信される。この場合には、継続フラグを１にセットする。
【００６３】
ジョブ終了オペレーションの場合には、追加データは存在しない。
【００６４】
ジョブ認識部３０８は、ジョブパケットのオペレーションコードを判断し、ジョブの認識に不必要なジョブパケットはデータ部等を読み飛ばすことによって、印刷ジョブの開始と終了とを効率的にかつ素早く認識することができる。なお、読み飛ばされた部分は、ジョブに関する情報をジョブ属性ＤＢ３１０に登録したり、ＰＤＬデータを受信バッファ３０９に格納したりするのに使用される。
【００６５】
以下では、ジョブパケットがジョブ認識部３０８によってどのように処理されるかを説明する。図６は、ジョブパケットであるかどうかを判定するジョブパケット判定処理のフローチャートである。これは、データ種別の判定（ステップＳ４０４）に相当する処理である。
【００６６】
ジョブパケットであるかどうかの判定はパケット識別子を利用して行われる。よって、パケット識別子は他のデータ種別と混同しないようなデータであることが望ましい。本件では、ジョブパケットの０バイト目が０ｘｃｄであり、１バイト目が０ｘｃａである。
【００６７】
まず、データの先頭０バイト目が０ｘｃｄであるかどうかを判定する（ステップＳ６０１）。つぎに、データの１バイト目が０ｘｃａであるかどうかを判定する（ステップＳ６０２）。両方の判定がＹｅｓの場合には、ジョブパケットである旨の判定を返し、いずれかの判定がＮｏの場合にはジョブパケットでない旨の判定を返す。
【００６８】
つぎに、受信データがジョブパケットであると判定された場合のジョブパケットの固有処理について説明する。図７は、ジョブパケット固有の処理の動作を示すフローチャートである。図７の処理はジョブ認識部３０８によって実行され、データ種別固有の処理（ステップＳ４０５）に相当する。
【００６９】
まず、サーバからのデータを取得する（ステップＳ７０１）。次に、取得したデータがあるかどうか、つまりサーバとの接続が完了したかどうかを判断する（ステップＳ７０２）。データがなかった場合には、処理を完了する。
【００７０】
データがある場合には、データの中からジョブパケットのオペレーションコードを読み込む（ステップＳ７０３）。
【００７１】
オペレーションコードが０ｘ０２０１（ジョブ開始オペレーションに相当）の場合には、ジョブ属性ＤＢ３１０に印刷ジョブ生成を指示し、当該印刷ジョブ用のレコードを用意させる（ステップＳ７０５）。そのあと、次のジョブパケットの処理を行うべくステップＳ７０１に戻る。
【００７２】
オペレーションコードが０ｘ０２０２（ジョブ属性設定オペレーションに相当）の場合には、ジョブ属性ＤＢ３１０に属性値を登録する（ステップＳ７０７）。そのあと、次のジョブパケットの処理を行うべくステップＳ７０１に戻る。
【００７３】
オペレーションコードが０ｘ０２０４（ＰＤＬデータ送信オペレーションに相当）の場合には、ＰＤＬデータを受信バッファ３０９に格納する（ステップＳ７０９）。そのあと、次のジョブパケットの処理を行うべくステップＳ７０１に戻る。
【００７４】
いずれでもない場合には、オペレーションコードが０ｘ０２０５（ジョブ終了オペレーションに相当）であると判断して、ジョブパケット固有処理を終了する。
【００７５】
次に、受信バッファ３０９の動作を説明する。図８は、受信バッファ３０９の概念を説明するための図である。８０１は受信バッファ３０９であり、ｌｐｒサーバ８０２、Ｐｏｒｔ９１００サーバ８０３、Ｎｅｔｗａｒｅサーバ８０４にジョブ認識部を介して接続されている。また、ジョブ解釈部８０８とも接続されている。
【００７６】
いま、ｌｐｒサーバ８０２、Ｐｏｒｔ９１００サーバ、Ｎｅｔｗａｒｅサーバ８０４の三者からの印刷ジョブの投入を並行に行いつつ、ジョブ解釈部８０８によって印刷ジョブ「ジョブ１」のＰＤＬデータが読み出されている。三者からのＰＤＬデータはファイルによって個別に管理されるため、並列に格納されることが可能である。
【００７７】
ジョブ１のＰＤＬデータに関しては、受信バッファ８０１内において、Ｒｅａｄ位置とＷｒｉｔｅ位置が管理されている。サーバからのＰＤＬデータはＷｒｉｔｅ位置に対して追加されていき、追加されたデータサイズ分だけＷｒｉｔｅ位置がインクリメントされる。ジョブ解釈部８０８からの読み込み要求に対しては、Ｒｅａｄ位置からＰＤＬデータを読み出して、それをジョブ解釈部８０８に渡す。読み出したデータのサイズ分だけＲｅａｄ位置がインクリメントされる。なお、Ｒｅａｄ位置がＷｒｉｔｅ位置を追い越さないように調整される。
【００７８】
以上説明したことにより、以下の効果がある。
【００７９】
ネットワークからの印刷ジョブが同時に１つしか受信できない点に関しては、ジョブ認識部がローカルインターフェイス及び複数のサーバのそれぞれに対して個々に対応することにより、また受信バッファがＰＤＬデータの投入要求ごとにファイルを生成し管理することにより、複数の印刷ジョブが並列に投入されることができる。
【００８０】
また、印刷ジョブが認識されるのが遅い点に関しては、ジョブ認識部を受信バッファの前段に配置することにより、受信された印刷ジョブが受信バッファに格納される前にジョブ認識部によって認識されるようになる。
【００８１】
また、印刷ジョブの最初のページが出力されるまでの時間が遅い点に関しては、ジョブ認識部が印刷ジョブを認識次第、ＰＤＬデータが受信バッファに格納されることにより、また、受信バッファ内のＰＤＬデータがＲｅａｄ位置及びＷｒｉｔｅ位置によって管理されることにより、ジョブ解釈部は順次受信バッファからＰＤＬデータを読み出して解釈し始めることができる。
【００８２】
つぎは、論理インターフェイス内での並列性について説明する。上記の実施の形態では、ローカルインターフェイスとネットワークインターフェイスとの物理的なインターフェイス間での並列性、及びネットワークインターフェイス内のサーバ間での並列性について説明した。しかし、ネットワーク上の複数のホストコンピュータ、例えばホストコンピュータ１５２と１５３がｌｐｒプロトコルを利用して印刷ジョブを投入した場合でも、ｌｐｒサーバを複数配置することにより、より並列性を確保することができる。
【００８３】
しかし、印刷装置のリソース上、並列性には限度がある。従って、ジョブ認識部３０８が一定の上限以上の印刷ジョブがあった場合には、サーバとジョブ認識部との接続を一時待ち状態にすることも可能である。
【００８４】
本発明に係るプログラム及び関連データは、フロッピー（Ｒ）ディスク（ＦＤ）やＣＤ−ＲＯＭ中に記憶され、そこからコンピュータに供給されることが可能である。また、本発明の目的は、前述した実施形態の機能を実現するソフトウエア（例えば図４、図６、図７の動作を制御するための制御プログラム）のプログラムコードを記録した記憶媒体を装置に供給し、その装置のコンピュータ（特に、装置内のＣＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによって達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８５】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（Ｒ）ディスクやハードディスク以外にも、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００８６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８７】
【発明の効果】
本発明によれば、ネットワークからの複数の印刷ジョブデータが並行に投入されて、並行に印刷ジョブとして認識されることができる。
【００８８】
また、受信された印刷データが格納手段に格納される前に印刷ジョブとして認識されるようになる。
【００８９】
また、印刷ジョブとして認識され次第、印刷データが格納手段に格納されることにより、即座に、印刷データを格納手段から読み出して解釈し始めることができる。
【図面の簡単な説明】
【図１】従来の印刷装置の構成を示す模式図である。
【図２】代案の印刷装置の構成を示す模式図である。
【図３】本発明に係る印刷装置の構成を示す模式図である。
【図４】ジョブ認識部３０８の動作を示すフローチャートである。
【図５】ジョブパケットのパケット構想を示す図である。
【図６】ジョブパケット判定処理のフローチャートである。
【図７】ジョブパケット固有の処理の動作を示すフローチャートである。
【図８】受信バッファ３０９の概念を説明するための図である。
【符号の説明】
３００　印刷装置
３０１　ローカルインターフェイス
３０２　Ｅｔｈｅｒｎｅｔ（Ｒ）コントローラ
３０３　ディスパッチャ
３０４　ｌｐｒサーバ
３０５　Ｐｏｒｔ９１００サーバ
３０６　Ｎｅｔｗａｒｅサーバ
３０７　ＡｐｐｌｅＴａｌｋサーバ
３０８　ジョブ認識部
３０９　受信バッファ
３１０　ジョブ属性ＤＢ
３１１　ジョブ解釈部
３１２　イメージデータ格納部
３１３　エンジン制御部
３１４　プリンタエンジン
３１５　状態管理部
３１６　操作パネル
３５１　ホストコンピュータ
３５２　ホストコンピュータ
３５３　ホストコンピュータ
【図１】
2004126943.tif 000003
【図２】
2004126943.tif 000004
【図３】
2004126943.tif 000005
【図４】
2004126943.tif 000006
【図５】
2004126943.tif 000007
【図６】
2004126943.tif 000008
【図７】
2004126943.tif 000009
【図８】
2004126943.tif 000010