(57)【特許請求の範囲】
【請求項１】
印刷ジョブのジョブデータを生成する複数のホスト装置と、
前記複数のホスト装置から前記ジョブデータを受けて印刷を行うプリンタと
を有し、
前記プリンタは、
前記ジョブデータについての属性データを前記複数のホスト装置に要求し、各要求に応答して最も早く属性データを受信したら、他の属性データの取得を中止し、前記複数のホスト装置のうち、その最も早く受信した属性データを送って来たホスト装置に対してのみ前記ジョブデータを要求するジョブ要求部と、
前記ジョブ要求部からの要求に応答して前記ホスト装置から送られてくる前記ジョブデータを受けて印刷を行う印刷処理部と
を備える、
プリントシステム。
【請求項２】
前記各ホスト装置は、印刷ジョブが発生したとき前記ジョブデータの場所を示すジョブ場所データを発生し、
前記プリンタは、前記複数のホスト装置から前記ジョブ場所データを受けて一時保管するプリントサーバ部を備え、
前記ジョブ要求部は、プリントサーバ部が保管している前記ジョブ場所データが示す前記複数のホスト装置に対して前記属性データを要求する、
請求項１記載のプリントシステム。
【請求項３】
印刷ジョブのジョブデータについての属性データを複数のホスト装置に要求し、各要求に応答して最も早く属性データを受信したら、他の属性データの取得を中止し、前記複数のホスト装置のうち、その最も早く受信した属性データを送って来たホスト装置に対してのみ、前記ジョブデータを要求するジョブ要求部と、
前記ジョブ要求部からの要求に応答して送られてくる前記ジョブデータを受けて印刷を行う印刷処理部と
を備えたプリンタ。
【請求項４】
各ホスト装置が生成する前記ジョブデータの場所を示すジョブ場所データを、前記複数のホスト装置から受けて一時保管するプリントサーバ部を備え、
前記ジョブ要求部は、前記プリントサーバ部が保管する前記ジョブ場所データが示す前記複数のホスト装置に対して前記属性データを要求する、
請求項３記載のプリンタ。
【請求項５】
印刷ジョブのジョブデータについての属性データを複数のホスト装置に要求する属性要求ステップと、
各要求に応答して属性データを受信する受信ステップと、
最も早く受信した属性データ以外の他の属性データの取得を中止するステップと、
前記複数のホスト装置のうち、最も早く受信した属性データを送って来たホスト装置に対してのみ、前記ジョブデータを要求するジョブデータ要求ステップと、
前記ジョブ要求部からの要求に応答して送られて来る前記ジョブデータを受けて印刷を行う印刷ステップと
を備えたプリンタの動作方法。
【請求項６】
各ホスト装置が生成する前記ジョブデータの場所を示すジョブ場所データを一時保管するステップを更に備え、
前記属性要求ステップでは、前記保管したジョブ場所データが示す前記複数のホスト装置に対して、属性データを要求する、
請求項５記載の動作方法。
【請求項７】
印刷ジョブのジョブデータについての属性データを複数のホスト装置に要求するステップと、
前記要求に応答して送られて来る前記属性データを受信するステップと、
最も早く受信した属性データ以外の他の属性データの取得を中止するステップと、
前記複数のホスト装置のうち、最も早く受信した属性データを送って来たホスト装置に対してのみ、前記ジョブデータを要求するステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
更に、
前記ホスト又はプリントサーバからの前記ジョブデータの場所を示すジョブ場所データを受けるステップを記録し、
前記要求するステップでは、前記ジョブ場所データが示す前記複数のホスト装置に対して、属性データを要求する、
請求項７記載のコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上で、ホストから印刷ジョブをプリンタが受けて印刷を行うネットワークプリントシステムに係わり、特に複数台のホストからの印刷ジョブを処理する技術の改良に関する。
【０００２】
【従来の技術】
従来のネットワークプリントシステムは、プリンタが、ホスト又はプリントサーバから印刷ジョブを一方的に送り付けられて、それを受動的に受け取って順次に処理する。
【０００３】
【発明が解決しようとする課題】
プリンタは、常にホストやプリントサーバから印刷ジョブを与えられたとき受動的に印刷を行うだけであり、自発的に印刷を行うことはできない。また、プリンタは、１つの印刷ジョブを開始すると、そのジョブを終了するまで他のジョブを開始しないので、一旦ネットワーク転送速度が遅いジョブが始まると、全体のプリントアウトの終了が遅くなる。
【０００４】
従って、本発明の目的は、複数のホストからの印刷ジョブをできるだけ効率的に処理できるようにすることにある。
【０００５】
本発明の別の目的は、プリンタが、ホストに対して印刷ジョブの要求を行い、自発的に印刷を行えるようにすることにある。
【０００６】
本発明の更に別の目的は、プリンタが、複数の印刷ジョブを受け、並行して各ジョブ処理を行えるようにすることにある。
【０００７】
【課題を解決するための手段】
本発明のプリントシステムでは、印刷ジョブのジョブデータを生成する１又は複数のホスト装置と、１又は複数のホスト装置からジョブデータを受けて印刷を行うプリンタとを有し、プリンタは、１又は複数のホスト装置に対してジョブデータを要求するジョブ要求部と、ジョブ要求部からの要求に応答して１又は複数のホスト装置から送られてくる前記ジョブデータを受けて印刷を行う印刷処理部とを備える。それにより、プリンタは、どのジョブから優先的に処理すべきか判断して、効率的に複数ホストからの印刷ジョブを処理できる。
【０００８】
本発明の実施形態では、各ホストは、印刷ジョブが発生するとジョブデータの場所をプリントサーバに通知し、プリントサーバは通知されたジョブ場所を一旦記憶してプリンタに送る。又は、各ホストはプリンタに直接、ジョブの場所データを送る。プリンタは、ジョブを実行しようとするときに、受けたジョブ場所が示す全てのホストに対して、ジョブデータについての属性データ(例えばジョブデータの大きさ)を要求する。プリンタは、その要求に応答して最も早く送られて来た属性データに係るジョブデータを、そのジョブデータを持つホストへ要求する。
【０００９】
好適な実施形態では、プリンタは、複数の出力ビンを備え、出力ビン数までの数のジョブデータを受信し、それらのジョブデータを各出力ビンに割り当て、複数のジョブ処理を並行して行い、そのジョブ処理で作成した印刷ジョブ毎の印刷結果を、割り当てた出力ビンにそれぞれ出力する。それにより、印刷ジョブの中にネットワーク転送速度の遅いジョブが含まれていたとしても、他のジョブと並行して効率良くプリントアウトを行うことができるので、全体のプリントアウトにかかる時間を大幅に縮めることができる。
【００１０】
プリントサーバやホストは典型的にはコンピュータにより実施することができるが、そのためのコンピュータプログラムは、ディスク型ストレージ、半導体メモリおよび通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。
【００１１】
【発明の実施の形態】
図１は、本発明の一実施形態にかかる全体構成を示す。
【００１２】
ＬＡＮのような通信ネットワークに、プリンタ２９、プリントサーバ２７、及び何台かのホストコンピュータ７、９、１１が接続されている（ただし、プリントサーバ２７は、必ずしも接続されるわけではない）。
【００１３】
各ホスト７、９、１１は、固定ディスクなどの補助記憶装置１、３、５を備えている。また、各ホスト７、９、１１の内部にはプリンタドライバが備えられている。各プリンタドライバは、ユーザからの印刷命令を受けると印刷ジョブデータ１９、２１、２３を生成し、そのジョブデータ１９、２１、２３をそれぞれの補助記憶装置１、３、５に保存する。そして、各ホスト７、９、１１内のプリンタドライバは、そのジョブデータ１９、２１、２３の場所を示すデータ（例えば、ホスト７、９、１１のネットワーク上でのアドレスと、ジョブデータ１９、２１、２３のホスト７、９、１１内でのローカルなディレクトリ又は識別名称とのセット）１３、１５、１７をプリントサーバ２７に送信する。また、各ホスト７，９，１１のプリンタドライバは、プリンタ２９から後述するジョブ要求を受けたら、それぞれのホスト７，９，１１の補助記憶装置１、３、５からジョブデータ１９、２１、２３を読み出してプリンタ２９へ送る。或いは、各ホスト７、９、１１のプリンタドライバは、印刷ジョブが発生したときは、その場ではジョブデータを作らずに、ジョブ場所データ（例えばネットワーク上のアドレスとローカルなジョブ名）だけをプリントサーバ２７に送り、その後にプリンタ２９からジョブ要求が来たときに、ジョブデータを作成してプリンタ２９に送るようにする。
【００１４】
プリントサーバ２７は、固定ディスクなどの補助記憶装置７を有し、ホスト７、９、１１からのジョブ場所データ１３、１５、１７を受け取り、補助記憶装置７に一旦保存してキューインし、そして、そのジョブ場所データ１３、１５、１７をプリンタ２９へ送り出す。
【００１５】
プリンタ２９は、印刷ジョブデータを一時蓄積するための受信バッファメモリ３１と、ジョブ場所データ１３、１５、１７を記憶するためのジョブ場所データメモリ３０を備える。プリンタ２９は、プリントサーバ２７から送られるジョブ場所データ１３、１５、１７をジョブ場所データメモリ３０に記憶する。その後、プリンタ２９は、印刷ジョブを実行しようとするとき、記憶したジョブ場所データ１３、１５、１７をリストアップして、それらジョブ場所データ１３、１５、１７が示す全てのホスト７、９、１１に対して一斉に、そのジョブデータ１９、２１、２３の属性データ（例えば印刷ジョブの大きさや、データ種別等を示すデータであり、典型的には印刷ジョブデータのヘッダ部分）の送信を要求する。プリンタ２９は、要求した属性データのうち最も速く送信されて来た属性データを受けたら、その属性データを送って来たホストに対してのみ印刷ジョブデータの送信を要求し、他のホストへは印刷ジョブデータを要求しない。そして、プリンタ２９は、その要求に応答してホストから送られて来た印刷ジョブデータを受信バッファメモリメモリ２５に一時蓄積した上で、それを受信バッファメモリ２５から読み出し、印刷処理を行う。
【００１６】
図２は、プリンタ２９の動作を示す。
【００１７】
プリンタ２９は、処理中の印刷ジョブがなければ（Ｓ１でＹｅｓ）、その時点までに到着しているジョブ場所データをリストアップして（Ｓ２）、リストアップしたｎ箇所のジョブ場所（ホスト）の全てに、一斉に印刷ジョブに関する属性データ取得を要求する（Ｓ３）。要求した属性データのうちいずれか１つの属性データを取得したら（Ｓ４でＹｅｓ）、その最も早く取得した属性データを持つジョブの処理プロセスを開始し、他のジョブの属性データの取得は中止する（Ｓ５）。そして、その取得した属性データを送って来たホストへ、そのジョブの内容取得要求を発する（Ｓ６）。要求したジョブ内容データを受けたら、そのジョブ内容データを解析し、印刷イメージを作成して、自己の印刷エンジンへ渡し印刷する（Ｓ７）。
【００１８】
図３は、各ホスト７、９、１１のプリンタドライバの動作を示す。
【００１９】
各ホスト７、９、１１は、ユーザから印刷命令を受けると（Ｓ９）、印刷ジョブデータを作成し(又はこれを後回しにして)、プリントサーバ２７（又はプリンタ２９）へ印刷ジョブ場所データを送信し（Ｓ１０）、その後に、プリンタ２９からの要求を待つ（Ｓ１１）。プリンタ２９から属性データ取得要求が来たら（Ｓ１２でＹｅｓ）、印刷ジョブの属性データ（前述したように、ジョブの大きさ等を示すデータで、例えばジョブデータのヘッダ部分）をプリンタ２９へ送信する（Ｓ１５）。尚、ホストが、プリンタ２９から属性データ取得要求を受けてからジョブデータを作成する形態を採っている場合（Ｓ１３でＮｏ）、印刷ジョブデータを作成してから（Ｓ１４）、その属性データをプリンタ２９へ送信する（Ｓ１５）。その後、プリンタ２９からジョブ内容取得要求が来たら（Ｓ１６でＹｅｓ）、印刷ジョブデータをプリンタ２９へ送信する（Ｓ１９）。尚、ホストが、上述したようにプリンタ２９からのジョブ内容取得要求を受けてからジョブデータを作成する形態を採っている場合は（Ｓ１７でＮｏ）、印刷ジョブデータを作成してから（Ｓ１８）、それをプリンタ２９へ送信する。
【００２０】
上述した実施形態によれば、プリンタ２９は、印刷ジョブが発生した全ホストへ一斉にジョブ要求を行い、早く取得したジョブから順次処理していくので、効率的に複数ホストからのジョブを処理できる。また、プリンタ２９は、最初のジョブ要求ではジョブデータの属性データ(例えばヘッダ部分)だけを要求し、その属性データが最も早く到着したジョブから先に処理するようにしているので、データ量の少ない属性データのみから早期にどのジョブを優先的に処理すべきか判断できる。プリントサーバ２７は、ジョブデータの場所だけを記憶しておけばよいので、補助記憶装置の必要容量は大幅に減る。なお、プリンタ２９は、ジョブ内容取得要求を発する際、そのジョブデータの全部でなく指定した部分だけを送るように要求することができ、しかも、所望の時点で各部分の取得要求を発することができる（例えば、初め奇数ページのみを要求し、処理終了後に偶数ページを要求する等）。それにより、プリンタ２９は、印刷エンジンの状況や確保できるジョブ受信バッファメモリの容量などに応じて、受け取るジョブデータの量を調整することができ、また、それにより必要なメモリ容量を小さくすることができる。
【００２１】
ホスト７、９、１１は、ジョブ発生時にジョブデータをすぐに作らず、プリンタから要求が来て初めてジョブデータを作成するようにすると、記憶装置にジョブデータを長い時間保管しておくという無駄が省ける。
【００２２】
図４は、本発明の第２の実施形態に係るネットワークプリンタ３３の構造を示す。
【００２３】
このプリンタ３３は、取得された複数のジョブデータ１９、２１、２３のジョブ処理プロセスを並行して実行することができるＣＰＵ３９と、インタフェース４１、４３と、複数の出力ビン３５ａ、３５ｂ、３５ｃと、所定の出力ビンに配紙する印刷エンジン３７と、受信バッファや印刷バッファ等として使われるメモリ４５とを備える。メモリ４５には、取得したジョブデータ１９、２１、２３を格納する受信バッファ４７と、ジョブデータ１９、２１、２３を基にＣＰＵ３９により作成される印刷イメージが格納される印刷バッファ４９、５１、５３などが確保される。ＣＰＵ３９は、備えられる出力ビンのビン数分の印刷ジョブを並行して処理することができる。そして、各出力ビンは並行して処理される各ジョブに割り当てられる。例えば、ジョブデータ１９の印刷結果は出力ビン３５ａに、ジョブデータ２１の印刷結果は出力ビン３５ｂに、ジョブデータ２３の印刷結果は出力ビン３５ｃにそれぞれ出力される。
【００２４】
図５は、プリンタ３３のＣＰＵ３９の動作を示す。
【００２５】
プリンタ３３は、まず前のジョブ処理が終わって空き出力ビンが生じると（Ｓ２２でＹｅｓ）、その時点までに到着した印刷ジョブの場所データ（ホスト）をリストアップする（Ｓ２３）。そして、リストアップしたｎ箇所のジョブ場所(ホスト)の全てに一斉に属性データ取得要求を送る。空き出力ビン総数ｍ以内の数の属性データを取得したら（Ｓ２５でＹｅｓ）、それらのジョブ処理を開始し、各ジョブに空き出力ビンを割り当て、空き出力ビンがなくなると他のジョブ取得を中止する（Ｓ２６）。続いて、取得した属性データに係るジョブのホストに対して、ジョブの内容データ取得要求を送る（Ｓ２７）。各ジョブデータを取得したら、それぞれのジョブの印刷イメージを並行して作成する（Ｓ２８）。そして、印刷イメージが出来上がった順に（Ｓ２９でＹｅｓ）、出来上がった印刷イメージを印刷エンジン３７に転送し、所定の出力ビンに出力する。いずれか１つのジョブ処理プロセスが終了したら（Ｓ３１）、Ｓ２２〜Ｓ３０の動作を繰り返す。
【００２６】
ステップＳ２８〜Ｓ３０の動作として、ＣＰＵ３９は、例えば３つのジョブデータ１９、２１、２３を受けたとすると、それらの印刷イメージを、それぞれ並行して作成する。ＣＰＵ３９は、作成された順序で印刷イメージを印刷エンジン３７へ送り、所定の出力ビンにそれぞれ出力させる。例えば、ＣＰＵ３９は、最初に取得されたジョブデータ１９の３頁分の印刷イメージを最初に作成したとすると、それをまず印刷エンジン３７へ送る。その後にジョブデータ２１の１頁分の印刷イメージを作成したとすると、続いてこれを印刷エンジン３７に送る。最初のジョブデータ１９の３頁の印刷結果は出力ビン３５ａに出力され、次のジョブデータ２１の１頁は、出力ビン３５ｂに出力される。その後、例えば最初のジョブデータ１９の４頁目が出来たので、これを印刷して出力ビン３５ａに出力し、次に、２番目のジョブデータ２１の２頁目が出来たので、その印刷結果を出力ビン３５ｂに出力し、次に３番目のジョブデータ２３の１頁目が出来たので、これを印刷して出力ビン３５ｃに出力し、という様に、３つのジョブデータ１９，２１，２３を並行処理して、早くできたイメージから順に印刷していく。このようにして、複数のジョブが効率的に並行処理される。
【００２７】
上述した実施形態によれば、プリンタ３３は、複数のジョブ処理プロセスを並行して行い、複数のジョブの内容を並行してプリントアウトする。それにより、印刷ジョブの中にネットワーク転送速度の遅いジョブが含まれていたとしても、他のジョブと並行して効率良くプリントアウトを行うことができるので、全体のプリントアウトにかかる時間を大幅に縮めることができる。
【００２８】
上述した実施形態では、各プリンタ２９、３３は、最も早く受けたジョブデータから印刷処理を開始するが、最も早くジョブデータの全てを受信したジョブから優先的に印刷を開始するという動作も考えられる。
【００２９】
例えば、ネットワーク上のウェブサーバなどからＨＴＭＬで書かれたページを受信して印刷するような場合、通常、そのページはＨＴＭＬファイルと、これにリンクされたＪＰＥＧやＧＩＦの画像ファイルなどから構成される。図６は、その一例を示す。同図において、ページ６１は、ＨＴＭＬファイルＡと、それにリンクされたＪＰＥＧファイルＢ、Ｃから構成され、ページ６３は、ＨＴＭＬファイルＤと、これにリンクされたＧＩＦファイルＥ、Ｆから構成されている。この２つのページを印刷するジョブが発生した場合、プリンタは、それぞれのページを持つウェブサーバのＵＲＬへ、それぞれのページ６１、６３の送信を一斉に要求する。要求を受けた各サーバは、各ページを構成するＨＴＭＬファイル及びそれにリンクされた各画像ファイルをプリンタに送る。プリンタは、各ページ６１、６３を構成するそれぞれのファイルを、例えばＡ→Ｂ→Ｄ→Ｅ→Ｆ→Ｃの順番で受けた場合（それぞれのファイルを受ける順番は、そのときのネットワークの状態によって様々である）、最初にページ６３の３つのファイルＤ、Ｅ、Ｆが揃ったので、ページ６３の印刷を開始する。このページ６３の印刷が終わった後、後から３つのファイルＡ、Ｂ、Ｃが揃ったページ６１の印刷を行う。
【００３０】
以上、本発明の実施形態を説明したが、これらの実施形態はあくまで本発明の説明のための例示であり、本発明をこれら実施形態にのみ限定する趣旨ではない。従って、本発明は、上記実施形態以外の様々な形態でも実施することができるものである。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる全体構成を示すブロック図。
【図２】プリンタ２９の動作を示すフローチャート。
【図３】ホスト７、９、１１のプリンタドライバの動作を示すフローチャート。
【図４】本発明の第２の実施形態に係るネットワークプリンタ３３の構造を示すブロック図。
【図５】ネットワークプリンタ３３の動作を示すフローチャート。
【図６】プリンタが印刷するページの一例。
【符号の説明】
１、３、５  補助記憶装置
７、９、１１  ホストコンピュータ
１３、１５、１７  ジョブ場所データ
１９、２１、２３  印刷ジョブデータ
２５  補助記憶装置
２７  プリントサーバ
２９  ネットワークプリンタ
３０  ジョブ場所データメモリ
３１  受信バッファメモリ
３３  ネットワークプリンタ
３５  出力ビン
３７  印刷エンジン
３９  ＣＰＵ
４１、４３  インタフェース
４５  メモリ
４７  受信バッファ
４９、５１、５３  印刷バッファ
６１、６３  ページ
【図１】
0003800380.tif 000002
【図２】
0003800380.tif 000003
【図３】
0003800380.tif 000004
【図４】
0003800380.tif 000005
【図５】
0003800380.tif 000006
【図６】
0003800380.tif 000007