(58)【調査した分野】(Int.Cl.,DB名)
前記第1のプリントデータの優先順位が前記第2のプリントデータの優先順位よりも低いと判定された場合に、前記持続接続制御手段は、前記第1のプリントデータに含まれるページの区切りを示す情報が検出されたタイミングで、前記第1のプリントデータの送信元に対して前記持続接続制御を実行し、前記展開手段は、前記ページの区切りを示す情報で区切られたページまでラスターデータに展開することを特徴とする請求項1に記載のネットワークプリンタ。
前記優先順位判定手段は、プリントデータに含まれる優先度情報に基づいて、前記第1のプリントデータと前記第2のプリントデータの優先順位を判定することを特徴とする請求項1〜3のいずれか1項に記載のネットワークプリンタ。
前記優先順位判定手段は、プリントデータに含まれる前記優先度情報に加え、セキュリティプリント情報をさらに考慮して、前記第1のプリントデータと前記第2のプリントデータの優先順位を判定することを特徴とする請求項4に記載のネットワークプリンタ。
前記優先順位判定手段は、前記第1のプリントデータと前記第2のプリントデータの優先順位が同じ場合に、前記第1のプリントデータを優先することを特徴とする請求項4又は5に記載のネットワークプリンタ。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、各図において、同一要素には同一符号を付して重複する説明を省略する。なお、ここでは、実施形態に係るネットワークプリンタをネットワーク複合機(MFP)に適用した場合を例にして説明する。また、ネットワーク複合機がLANを介して2台のパーソナルコンピュータ(以下「PC」という。特許請求の範囲に記載の通信端末に相当)と接続されているネットワーク構成を例にして説明する。なお、例示するネットワークシステムは、理解を容易にするためにその構成を簡略化したものである。
【0024】
(第1実施形態)
まず、
図1を用いて、第1実施形態に係るネットワーク複合機1の全体構成について説明する。
図1は、LAN51に接続されたネットワーク複合機1の全体構成を示すブロック図である。
【0025】
ネットワーク複合機1は、原稿を読み取り画像データを生成するスキャナ機能、読み取り生成した画像データを用紙にプリントアウトするコピー機能、及びファクシミリ通信により受信した画像データを用紙にプリントアウトするFAX受信機能に加え、LAN51を介して接続されているPC30、PC31から受信したPCプリントデータを用紙にプリントアウトするPCプリント機能を備えている。また、ネットワーク複合機1は、読み取った画像データをファクシミリ送信するFAX送信機能に加え、外部のPC30、PC31から受信した画像データをファクシミリ送信するPC−FAX機能を備えている。さらに、ネットワーク複合機1は、電子メールを利用してIP網経由で画像データを送受信するインターネットFAX(IFAX)機能等も有している。これらの各機能を実現するためにネットワーク複合機1は、NIC10、制御部11、記録部12、操作部13、表示部14、読取部15、コーデック16、画像記憶部17、モデム18、NCU19、IFAX制御部20、及び、Webサーバ21等を備えている。なお、上記各部はバス(通信路)23で相互に通信可能に接続されている。
【0026】
NIC10は、各種通信プロトコルの送受信制御処理、及び各種通信プロトコル上のデータ解析処理及びデータ作成処理を行なうネットワークインターフェースである。NIC10は、LAN51を介してPC30,31に接続されており、PC30,31との間で、例えばTCP/IPに従ってデータの通信を行なう。すなわち、NIC10は、特許請求の範囲に記載された通信手段として機能する。例えば、NIC10は、TCP/IPに従い、PC30、PC31との間にセッションを形成して、PDL(Page Description Language)で記述されたPCプリントデータ(以下、「プリントデータ」又は「PDLデータ」ともいう)を受信する。なお、受信されたプリントデータは、制御部11に転送される。
【0027】
NIC10は、演算を行なうマイクロプロセッサ、マイクロプロセッサに各処理を実行させるためのプログラム等を記憶するROM、マイクロプロセッサにより制御されて通信処理を行う通信用チップ(IC)、及び通信用チップにより受信され、該通信用チップから読み出された受信データなどを一時的に記憶するRAM、及びデータがバックアップされているバックアップRAM等により構成されている。なお、NIC10は、上述したマイクロプロセッサ、通信用チップ、ROM、RAM等がワンチップに収められたマイクロコンピュータを用いて構成してもよい。
【0028】
NIC10では、上述したハードウェアとソフトウェアの組み合わせにより、優先順位判定部10a、持続接続制御部10bが構築されている。
【0029】
優先順位判定部10aは、先に受け付けた第1のプリントデータ(第1のPDLデータ)を受信している途中で、新たに第2のプリントデータ(第2のPDLデータ)が受け付けられた場合に、第1のプリントデータと第2のプリントデータの優先順位を判定する。より具体的には、優先順位判定部10aは、まず、第1のプリントデータが受信された際に、第1のプリントデータに含まれるPJL(Printer Job Language)データを解析して、優先度情報等を抽出し、記憶する。次に、優先順位判定部10aは、第2のプリントデータが受信された際に、第2のプリントデータに含まれるPJLデータを解析して、優先度情報等を抽出する。そして、優先順位判定部10aは、記憶されている第1のプリントデータの優先度情報等と第2のプリントデータの優先度情報等を比較し、第1のプリントデータと第2のプリントデータの優先順位を判定する。
【0030】
ここで、優先順位判定部10aは、プリントデータ(PJLデータ)に含まれる、ユーザにより設定された、例えば、高、中、低などの優先度情報に基づいて、第1のプリントデータと第2のプリントデータの優先順位を判定する。また、優先順位判定部10aは、優先度情報に加え、プリントデータ(PJLデータ)に含まれる時刻指定プリント情報、及び/又は、セキュリティプリント情報を考慮して、第1のプリントデータと第2のプリントデータの優先順位を判定する。ここで、時刻指定プリントは、プリントデータを一時的に蓄積し、指定された時刻に用紙にプリントアウトする機能である。また、セキュリティプリントは、プリントデータ(又はラスタライズされたプリントデータ)を一時的に蓄積し、例えば、ユーザによりパスワードが入力されたときに、用紙にプリントアウトする機能である。
【0031】
優先順位判定部10aは、時刻指定プリントの設定がされている場合、プリントアウトの指定時刻を比較して優先順位を判定する。また、優先順位判定部10aは、セキュリティプリントの設定がされている場合には、すぐにプリントアウトする必要がないため、そのプリントデータは、優先順位が低いと判定する。なお、優先順位判定部10aは、第1のプリントデータと第2のプリントデータの優先順位が同じ場合には、先に受け付けられた第1のプリントデータを優先する。また、優先順位判定部10aによる優先順位の判定結果は、持続接続制御部10bへ出力される。
【0032】
持続接続制御部10bは、例えば、PC30からのPDLデータの受信処理中(セッション確立中)に、さらに例えばPC31からセッション確立要求信号を受信した場合、該セッション確立要求信号を送信したPC31との間にセッションを確立する。そして、持続接続制御部10bは、優先順位判定部10aにより、優先順位が低いと判定されたプリントデータの送信元(PC30又はPC31)に対して、セッションを張った状態でプリントデータの送信を禁止する持続接続制御(キープアライブ)を実行する。一方、持続接続制御部10bは、優先順位が高いと判定されたプリントデータの送信元(PC30又はPC31)に対して、持続接続制御を実行することなく、プリントデータの送信を許可する。すなわち、持続接続制御部10bは、特許請求の範囲に記載の持続接続制御手段として機能する。
【0033】
より詳細には、持続接続制御部10bは、例えば、第1のPDLデータの優先順位が第2のPDLデータの優先順位よりも低いと判定された場合には、第1のPDLデータに含まれるページの区切りを示す情報(ページクローズ情報)が検出されたタイミングで、第1のPDLデータの送信元に対して持続接続制御を実行する。なお、その際に、NIC10は、制御部11(プリンタコントローラ11a)に対して、ページクローズ情報で区切られたページまでのデータを転送するとともに、処理を終了する指示を通知する。
【0034】
一方、持続接続制御部10bは、第1のPDLデータ及び第2のPDLデータのうち、優先順位が高いと判定されたPDLデータの受信が終了したときに、優先順位が低いと判定されたPDLデータの送信元に対して、持続接続制御を終了し、PDLデータの送信を許可する。なお、例えば第1のプリントデータの送信が許可された場合には、NIC10は、制御部11(プリンタコントローラ11a)に対して、持続接続制御が開始された際に受信されておりかつ転送されなかったPDLデータを先に転送し、その後、新たに受信される第1のPDLデータを転送する。
【0035】
ここで、持続接続制御部10bは、持続接続制御を行う際に、PC30,PC31に対して、windows sizeがゼロのACK(win=0)を返信する。ACK(win=0)が返信されると、送信元(PC30,PC31)は、受信バッファが空いたか否かを問い合わせる信号TCP Zero Window Probe(win=0)を定期的に送出する。この信号に対して、持続接続制御部10bが、受信バッファに空き容量がないことを示す信号TCP Zero Window Probe ACK(win=0)を返すことにより持続接続制御が行われる。すなわち、持続接続制御が維持されている間、TCP Zero Window Probe(win=0)に対してTCP Zero Window Probe ACK(win=0)が返信される。一方、持続接続制御部10bは、持続接続制御を解除する際に、例えば、ACK(win=4096)を送信元へ送信する。
【0036】
制御部11は、演算を行なうマイクロプロセッサ、マイクロプロセッサに各処理を実行させるためのプログラム等を記憶するROM、演算結果等の各種データを一時的に記憶するRAM、及びバックアップデータを記憶するバックアップRAM等により構成されている。制御部11は、ROMに記憶されているプログラムを実行することにより、ネットワーク複合機1を構成する記録部12及びその他のハードウェアを統合的に制御し、PCプリント機能、PC−FAX機能などの各種機能を実現する。
【0037】
また、制御部11は、例えばPC30,PC31などから入力されるPDLデータを解釈・展開してラスターデータを生成するプリンタコントローラ11a有している。プリンタコントローラ11aは、特許請求の範囲に記載の展開手段として機能する。プリンタコントローラ11aは、NIC10から転送されたPDLデータを一時的に格納するスプールバッファを有しており、ラスターデータを生成する際に、該スプールバッファに格納されているPDLデータを読み出して処理する。プリンタコントローラ11aにより生成されたラスターデータは、制御部11を介して記録部12に出力される。
【0038】
記録部12は、電子写真方式のプリンタであり、プリンタコントローラ11aにより生成されたラスターデータを用紙にプリントアウトする。すなわち、記録部12は、特許請求の範囲に記載の記録手段として機能する。また、記録部12は、読取部15により読み取られ生成された画像データ、及びFAX、IFAX等で受信された画像データを用紙にプリントアウトする。そのため、記録部12は、プリンタエンジン12aを備えている。
【0039】
プリンタエンジン12aは、印刷を行う印刷機構である。プリンタエンジン12aは、プリンタコントローラ11aから入力されるラスターデータを用紙に印刷する。より詳細には、プリンタエンジン12aは、給紙、ドラムへの帯電、レーザの照射、トナーの塗布、用紙への転写、定着等の印刷工程を実行し、ラスターデータのプリントアウトを行う。
【0040】
操作部13は、ネットワーク複合機1の各機能を利用するために用いられる複数のキー、例えば、テンキー、短縮キー、スタートキー、ストップキー、及び各種のファンクションキー等を備えている。表示部14は、LCD等を用いた表示装置であり、ネットワーク複合機1の動作状態及び/又は各種設定内容等を表示する。読取部15は、光源及びCCD等によって構成されており、紙文書等の原稿を設定された副走査線密度に応じてライン毎に読み取り、画像データを生成する。
【0041】
コーデック16は、読取部15で読み取られた画像データを符号化圧縮するとともに符号化圧縮されている画像データを復号する。画像記憶部17は、DRAM等で構成されており、コーデック16で符号化圧縮された画像データ、FAX受信された画像データ、及び、外部のPC30、PC31から受信されて符号化圧縮された画像データ等を記憶する。
【0042】
モデム(変復調器)18は、ディジタル信号とアナログ信号との間の変復調を行なう。また、モデム18は、ディジタル命令信号(DCS)等の各種機能情報の発生及び検出を行なう。NCU(Network Control Unit)19は、モデム18と接続されており、モデム18と公衆交換電話網(PSTN)50との接続を制御する。また、NCU19は、送信先のファクシミリ番号に対応した呼出信号の送出、及びその着信を検出する機能を備えている。
【0043】
IFAX制御部20は、インターネット環境を利用したIFAX機能を司る。IFAX制御部20は、SMTP(Simple Mail Transfer Protocol)に従って電子メールを送信する機能、及び、POP(Post Office Protocol)に従って電子メールを受信する機能を有している。IFAX制御部20は、送信原稿をTIFF形式等の画像データとして電子メールに添付し、メールアドレス(SMTPサーバ)宛てに送信する。また、IFAX制御部20は、設定された時間毎にPOPサーバから電子メールを受信して添付ファイルをプリントアウトする。Webサーバ21は、例えばHTMLで記述されたホームページ、ログインページ、及びファクシミリ操作ページ等のデータに対して、PC30、PC31からアクセスして所定のHTTPタスクを実行することを可能にする。
【0044】
次に、
図2〜
図5を併せて参照しつつ、ネットワーク複合機1による、PDLデータ(PCプリントデータ)のプリント処理について説明する。
図2及び
図3は、第1のPDLデータのプリント処理の処理手順を示すフローチャート(1ページ目及び2ページ目)である。また、
図4及び
図5は、第2のPDLデータのプリント処理の処理手順を示すフローチャート(1ページ目及び2ページ目)である。
【0045】
まず、
図2,3を参照しつつ、第1のPDLデータのプリント処理について説明する。ステップS100では、セッション確立要求があるか否か(SYN信号が受信されたか否か)の判断が行われる。ここで、セッション確立要求がある場合は、ステップS102に処理が移行する。一方、セッション確立要求がないときには、セッション確立要求があるまで本ステップが繰り返し実行される。
【0046】
セッション確立要求があった場合、ステップS102では、セッション確立処理が実行され、セッション確立要求の送信元(例えばPC30)との間でセッションが確立する。より具体的には、SYN信号に対してACK/SYN信号を返すことによりセッションが確立する。
【0047】
続いて、ステップS104では、受信データがPDLデータであるか否かについての判断が行われる。ここで、受信データがPDLデータではない場合には、ステップS106に処理が移行する。一方、受信データがPDLデータである場合には、ステップS112に処理が移行する。
【0048】
受信データがPDLデータではない場合、ステップS106では、該受信データに対応したネットワーク処理が実行される。続いて、ステップS108では、セッション切断要求があるか否か(すなわち、セッションを切断するためのFIN信号が受信されたか否か)についての判断が行われる。ここで、セッション切断要求があった場合には、ステップS110に処理が移行する。一方、セッション切断要求がないときには、ステップS106に処理が移行し、セッション切断要求があるまで上述したステップS106の処理が繰り返し実行される。
【0049】
セッション切断要求があった場合、ステップS110では、セッション切断処理が実行される。より具体的には、ACK/FIN信号が返され、セッションが切断される。その後、本処理から一旦抜ける。
【0050】
受信データがPDLデータである場合、ステップS112では、PDLデータを受信中であることを示すフラグが記憶される。続いて、ステップS114において、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。
【0051】
次に、ステップS116では、第1のPDLデータのPJLの優先度情報等が記憶される。その後、ステップS118において、第1のPDLデータがプリントコントローラ11aに転送される。
【0052】
次に、ステップS120では、第2のPDLデータの受信開始要求(詳細は後述する)があるか否かについての判断が行われる。ここで、第2のPDLデータの受信開始要求があった場合には、ステップS136に処理が移行する。一方、第2のPDLデータの受信開始要求がないときには、ステップS122処理が移行する。
【0053】
ステップS122では、第1のPDLデータが受信されたか否かについての判断が行われる。ここで、第1のPDLデータが受信された場合には、ステップS124に処理が移行する。一方、第1のPDLデータが受信されていないときには、ステップS120に処理が移行し、第2のPDLデータの受信開始要求があるか、又は、第1のPDLデータが受信されるまで、上述した、ステップS120、S122の処理が繰り返して実行される。
【0054】
第1のPDLデータが受信された場合、ステップS124において、受信された第1のPDLデータが、プリンタコントローラ11aに転送される。その後、ステップS126では、セッション切断要求があるか否かについての判断が行われる。ここで、セッション切断要求があった場合には、ステップS128に処理が移行する。一方、セッション切断要求がないときには、ステップS120に処理が移行し、上述したステップS120以降の処理が繰り返して実行される。
【0055】
セッション切断要求があった場合、ステップS128では、セッション切断処理が実行され、(例えばPC30との間の)セッションが切断される。続いて、ステップS130では、プリンタコントローラ11aに対して、PCプリント処理の終了が指示される。その後、ステップS132において、第1のPDLデータの優先度情報が削除されるとともに、ステップS134において、PDLデータを受信中であることを示すフラグが削除される。その後、本処理から一旦抜ける。
【0056】
上述したステップS120において、第2のPDLデータの受信開始要求があると判断された場合、ステップS136では、第1のPDLデータが受信されたか否かについての判断が行われる。ここで、第1のPDLデータが受信された場合には、ステップS138に処理が移行する。一方、第1のPDLデータが受信されていないときには、第1のPDLデータが受信されるまで、本ステップが繰り返して実行される。
【0057】
ステップS138では、第1のPDLデータにページの終了を示すページ終了指示子(ページクローズ情報)があるか否かについての判断が行われる。ここで、ページ終了指示子がある場合には、
図3に示される、ステップS146に処理が移行する。一方、ページ終了指示子がないときには、ステップS140に処理が移行する。
【0058】
ステップS140では、第1のPDLデータがプリントコントローラ11aに転送される。その後、ステップS142では、セッション切断要求があるか否かについての判断が行われる。ここで、セッション切断要求があった場合には、ステップS144に処理が移行する。一方、セッション切断要求がないときには、ステップS136に処理が移行し、上述したステップS136以降の処理が繰り返して実行される。
【0059】
セッション切断要求があった場合、ステップS144では、セッション切断処理が実行され、(例えばPC30との間の)セッションが切断される。その後、上述したステップS130に処理が移行する。
【0060】
上述したステップS138において、第1のPDLデータにページ終了指示子があると判断された場合、ステップS146では、第1のPDLデータのページ終了指示子までのデータがプリントコントローラ11aに転送される。続く、ステップS148では、第1のPDLデータのページ終了指示子から後のデータが記憶される。続いて、ステップS150では、プリンタコントローラ11aに対して、PCプリント処理の終了が指示される。
【0061】
次に、ステップS152では、Window Size=0のACKが送出され、第1のPDLデータの送信元(例えばPC30)に対して、セッションを張った状態でPDLデータの送信を禁止する持続接続制御が開始される。続いて、ステップS154では、受信バッファが空いたか否かを問い合わせるTCP Zero Windowが受信されたか否かについての判断が行われる。ここで、TCP Zero Windowが受信されていない場合には、TCP Zero Windowが受信されるまで、本ステップが繰り返して実行される。一方、TCP Zero Windowが受信されたときには、ステップS156に処理が移行する。
【0062】
ステップS156では、第2のPDLデータの受信終了指示があるか否かについての判断が行われる。ここで、第2のPDLデータの受信終了指示があった場合には、ステップS160に処理が移行する。一方、第2のPDLデータの受信終了指示がないときには、ステップS158に処理が移行する。
【0063】
ステップS158では、第1のPDLデータの送信元(例えばPC30)に対して、受信バッファに空き容量がないことを示すTCP Zero Window Probe ACKが送出され持続接続制御が継続される。その後、ステップS154に処理が移行し、上述したステップS154以降の処理が繰り返して実行される。
【0064】
第2のPDLデータの受信終了指示があった場合、ステップS160では、Window Size=4096のACKが送出され、第1のPDLデータの送信元(例えばPC30)に対する持続接続制御が解除される。続いて、ステップS162では、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。そして、ステップS164において、ステップS1
48で記憶された第1のPDLデータのページ終了指示子から後のデータがプリンタコントローラ11aに転送される。その後、
図2に示されるステップS120に処理が移行し、上述したステップS120以降の処理が実行される。
【0065】
続いて、
図4,5を参照しつつ、第2のPDLデータのプリント処理について説明する。ステップS200では、セッション確立要求があるか否か(SYN信号が受信されたか否か)の判断が行われる。ここで、セッション確立要求がある場合は、ステップS202に処理が移行する。一方、セッション確立要求がないときには、セッション確立要求があるまで本ステップが繰り返し実行される。
【0066】
セッション確立要求があった場合、ステップS202では、セッション確立処理が実行され、セッション確立要求の送信元(例えばPC31)との間でセッションが確立する。より具体的には、SYN信号に対してACK/SYN信号を返すことによりセッションが確立する。
【0067】
続いて、ステップS204では、受信データがPDLデータであるか否かについての判断が行われる。ここで、受信データがPDLデータではない場合には、ステップS206に処理が移行する。一方、受信データがPDLデータである場合には、ステップS212に処理が移行する。
【0068】
受信データがPDLデータではない場合、ステップS206では、該受信データに対応したネットワーク処理が実行される。続いて、ステップS208では、セッション切断要求があるか否か(すなわち、セッションを切断するためのFIN信号が受信されたか否か)についての判断が行われる。ここで、セッション切断要求があった場合には、ステップS210に処理が移行する。一方、セッション切断要求がないときには、ステップS206に処理が移行し、セッション切断要求があるまで上述したステップS206の処理が繰り返し実行される。
【0069】
セッション切断要求があった場合、ステップS210では、セッション切断処理が実行される。より具体的には、ACK/FIN信号が返され、セッションが切断される。その後、本処理から一旦抜ける。
【0070】
受信データがPDLデータである場合、ステップS212では、PDLデータを受信中であることを示すフラグが記憶されているか否かについての判断が行われる。ここで、PDLデータを受信中であることを示すフラグが記憶されている場合には、ステップS236に処理が移行する。一方、PDLデータを受信中であることを示すフラグが記憶されていないときには、ステップS214に処理が移行する。
【0071】
ステップS214では、PDLデータを受信中であることを示すフラグが記憶される。続いて、ステップS216において、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。
【0072】
次に、ステップS218では、第2のPDLデータのPJLの優先度情報等が記憶される。その後、ステップS220において、第2のPDLデータがプリントコントローラ11aに転送される。
【0073】
次に、ステップS222では、第2のPDLデータが受信されたか否かについての判断が行われる。ここで、第2のPDLデータが受信された場合には、ステップS224に処理が移行する。一方、第2のPDLデータが受信されていないときには、第2のPDLデータが受信されるまで、本ステップが繰り返して実行される。
【0074】
第2のPDLデータが受信された場合、ステップS224において、受信された第2のPDLデータが、プリンタコントローラ11aに転送される。その後、ステップS226では、セッション切断要求があるか否かについての判断が行われる。ここで、セッション切断要求があった場合には、ステップS228に処理が移行する。一方、セッション切断要求がないときには、ステップS222に処理が移行し、上述したステップS222以降の処理が繰り返して実行される。
【0075】
セッション切断要求があった場合、ステップS228では、セッション切断処理が実行され、(例えばPC31との間の)セッションが切断される。続いて、ステップS230では、プリンタコントローラ11aに対して、PCプリント処理の終了が指示される。その後、ステップS232において、PDLデータを受信中であることを示すフラグが削除されるとともに、ステップS234において、第2のPDLデータの優先度情報等が削除される。その後、本処理から一旦抜ける。
【0076】
上述したステップS212において、PDLデータを受信中であることを示すフラグが記憶されている場合、ステップS236では、第2のPDLデータの優先順位が、記憶されている第1のPDLデータの優先順位よりも高いか否かについての判断が行われる。なお、優先順位の判定方法については、上述した通りであるので、ここでは詳細な説明を省略する。ここで、第2のPDLデータの優先順位が第1のPDLデータの優先順位よりも低い場合には、
図5に示されるステップS258に処理が移行する。一方、第2のPDLデータの優先順位が第1のPDLデータの優先順位よりも高いときには、ステップS238に処理が移行する。
【0077】
ステップS238では、第2のPDLデータの受信開始要求があったことを示す情報が第1のPDLデータ処理(
図2のステップS120参照)に通知される。続いて、ステップS240において、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。
【0078】
次に、ステップS242では、第2のPDLデータのPJLの優先度情報等が記憶される。その後、ステップS244において、第2のPDLデータがプリントコントローラ11aに転送される。
【0079】
次に、ステップS246では、第2のPDLデータが受信されたか否かについての判断が行われる。ここで、第2のPDLデータが受信された場合には、ステップS248に処理が移行する。一方、第2のPDLデータが受信されていないときには、第2のPDLデータが受信されるまで、本ステップが繰り返して実行される。
【0080】
第2のPDLデータが受信された場合、ステップS248において、受信された第2のPDLデータが、プリンタコントローラ11aに転送される。その後、ステップS250では、セッション切断要求があるか否かについての判断が行われる。ここで、セッション切断要求があった場合には、ステップS252に処理が移行する。一方、セッション切断要求がないときには、ステップS246に処理が移行し、上述したステップS246以降の処理が繰り返して実行される。
【0081】
セッション切断要求があった場合、ステップS252では、セッション切断処理が実行され、(例えばPC31との間の)セッションが切断される。続いて、ステップS254では、プリンタコントローラ11aに対して、PCプリント処理の終了が指示される。そして、ステップS256において、PDLデータを受信中であることを示すフラグが削除される。その後、ステップS234に処理が移行する。
【0082】
ステップS236において、第2のPDLデータの優先順位が第1のPDLデータの優先順位よりも低いと判断された場合、ステップS258では、Window Size=0のACKが送出され、第2のPDLデータの送信元(例えばPC31)に対して、セッションを張った状態でPDLデータの送信を禁止する持続接続制御が開始される。続いて、ステップS260では、受信バッファが空いたか否かを問い合わせるTCP Zero Windowが受信されたか否かについての判断が行われる。ここで、TCP Zero Windowが受信されていない場合には、TCP Zero Windowが受信されるまで、本ステップが繰り返して実行される。一方、TCP Zero Windowが受信されたときには、ステップS262に処理が移行する。
【0083】
ステップS262では、PDLデータを受信中であることを示すフラグが記憶されているか否かについての判断が行われる。ここで、PDLデータを受信中であることを示すフラグが記憶されている場合には、ステップS264に処理が移行する。一方、PDLデータを受信中であることを示すフラグが記憶されていないときには、ステップS266に処理が移行する。
【0084】
ステップS264では、第2のPDLデータの送信元(例えばPC31)に対して、受信バッファに空き容量がないことを示すTCP Zero Window Probe ACKが送出され持続接続制御が継続される。その後、ステップS260に処理が移行し、上述したステップS260以降の処理が繰り返して実行される。
【0085】
PDLデータを受信中であることを示すフラグが記憶されていない場合、ステップS266では、Window Size=4096のACKが送出され、第2のPDLデータの送信元(例えばPC31)に対する持続接続制御が解除される。その後、
図4に示されるステップS216に処理が移行し、上述したステップS216以降の処理が実行される。
【0086】
本実施形態によれば、先に受け付けられた第1のPDLデータが受信されている途中で、新たに第2のPDLデータが受け付けられた場合に、第1のPDLデータと第2のPDLデータの優先順位が判定される。そして、優先順位が高いと判定されたプリントデータの送信元に対して、プリントデータの送信が許可される。一方、優先順位が低いと判定されたプリントデータの送信元に対しては、セッションを張った状態でプリントデータの送信を禁止する持続接続制御が実行される。そのため、例えば、後から受け付けられた第2のPDLデータの優先順位が、先に受け付けられた第1のPDLデータの優先順位よりも高い場合には、第1のPDLデータの送信が禁止されるとともに、第2のPDLデータの送信が許可される。よって、後から受け付けられた、より優先順位が高い第2のPDLデータが、優先的に受信され、用紙にプリントアウトされる。その結果、先に受け付けられたPDLデータの受信中に、より優先順位が高いPDLデータが受け付けられた場合に、該優先順位が高いPDLデータを優先してプリントアウトすることが可能となる。
【0087】
また、本実施形態によれば、優先順位が高いPDLデータの受信が終了した時点で持続接続制御が解除され、優先順位が低いPDLデータの送信元に対してPDLデータの送信が許可される。そのため、優先順位が高いPDLデータに続いて、優先順位が低いPDLデータを受信し、用紙にプリントアウトすることができる。また、持続接続制御が終了される時点では、送信元との間で既にセッションが張られているため、迅速にPDLデータの受信を開始することができる。
【0088】
さらに、本実施形態によれば、第1のPDLデータのページの区切りで、持続接続制御が実行されて第1のPDLデータの送信が禁止される。そのため、第1のPDLデータのページの区切りで、第1のPDLデータから第2のPDLデータへプリント処理を切替えることができる。また、第1のPDLデータを一時的に格納するためのメモリ量を低減することが可能となる。
【0089】
また、本実施形態によれば、プリントデータ(PJLデータ)に含まれる、ユーザにより設定された優先度情報に基づいて、第1のPDLデータと第2のPDLデータの優先順位が判定される。よって、ユーザが設定した、例えば、高、中、低などの優先度情報に応じて、適切に優先順位を判定することができる。
【0090】
また、本実施形態によれば、PDLデータに含まれる優先度情報に加え、時刻指定プリント情報、及び/又は、セキュリティプリント情報がさらに考慮されてプリントデータの優先順位が判定される。よって、より適切にプリントデータの優先順位を判定することが可能となる。
【0091】
(第2実施形態)
上記実施形態では、先に受け付けられた第1のPDLデータが、後から受け付けられた第2のPDLデータよりも優先順位が低いと判断された場合、第1のPDLデータに含まれるページの終わりが検出されるのを待って持続接続制御を開始したが、優先順位が低いと判断された時点で、すぐに持続接続制御を開始する構成としてもよい。
【0092】
次に、
図6を用いて、第2実施形態に係るネットワーク複合機2の構成について説明する。
図6は、ネットワーク複合機2の全体構成を示すブロック図である。なお、
図6において第1実施形態と同一又は同等の構成要素については同一の符号が付されている。
【0093】
ネットワーク複合機2は、NIC10に代えて、メモリ10cを有するNIC10Bを備えている点で上述したネットワーク複合機1と異なっている。また、NIC10Bは、持続接続制御部10bに代えて、持続接続制御部10dを有している点でNIC10と異なっている。その他の構成は、上述したネットワーク複合機1と同一又は同様であるので、ここでは説明を省略する。
【0094】
メモリ10cは、例えば、DRAMなどで構成されており、受信された第1のPDLデータを一時的に記憶する。より詳細には、NIC10Bでは、ページの区切りを示す情報(ページオープン情報及びページクローズ情報)を監視しており、メモリ10cは、ページオープン情報からページクローズ情報まで(ページクローズ情報が検出されていないときは受信されたところまで)のPDLデータを記憶する。メモリ10cは、特許請求の範囲に記載の記憶手段に相当する。
【0095】
持続接続制御部10dは、例えば、第1のPDLデータの優先順位が第2のPDLデータの優先順位よりも低い場合には、第1のPDLデータの優先順位が第2のPDLデータの優先順位よりも低いと判定された時点で、第1のPDLデータの送信元に対して持続接続制御を実行する。なお、その際に、NIC10Bは、制御部11(プリンタコントローラ11a)に対して、処理中のページのラスタライズデータを破棄するとともに、処理を終了する指示を通知する。
【0096】
また、持続接続制御部10dは、第2のPDLデータの受信が終了した後に、第1のPDLデータの送信元(例えばPC30)に対して第1のPDLデータの送信を許可する。なお、第1のPDLデータの送信が許可された場合、NIC10Bは、制御部11(プリンタコントローラ11a)に対して、メモリ10cに一時的に記憶されている第1のPDLデータを先に転送し、その後、新たに受信される第1のPDLデータを転送する。
【0097】
次に、
図7〜
図10を併せて参照しつつ、ネットワーク複合機2による、PDLデータ(PCプリントデータ)のプリント処理について説明する。
図7及び
図8は、第1のPDLデータのプリント処理の処理手順を示すフローチャート(1ページ目及び2ページ目)である。また、
図9及び
図10は、第2のPDLデータのプリント処理の処理手順を示すフローチャート(1ページ目及び2ページ目)である。
【0098】
まず、
図7,8を参照しつつ、第1のPDLデータのプリント処理について説明する。ステップS300では、セッション確立要求があるか否か(SYN信号が受信されたか否か)の判断が行われる。ここで、セッション確立要求がある場合は、ステップS302に処理が移行する。一方、セッション確立要求がないときには、セッション確立要求があるまで本ステップが繰り返し実行される。
【0099】
セッション確立要求があった場合、ステップS302では、セッション確立処理が実行され、セッション確立要求の送信元(例えばPC30)との間でセッションが確立する。より具体的には、SYN信号に対してACK/SYN信号を返すことによりセッションが確立する。
【0100】
続いて、ステップS304では、受信データがPDLデータであるか否かについての判断が行われる。ここで、受信データがPDLデータではない場合には、ステップS306に処理が移行する。一方、受信データがPDLデータである場合には、ステップS312に処理が移行する。
【0101】
受信データがPDLデータではない場合、ステップS306では、該受信データに対応したネットワーク処理が実行される。続いて、ステップS308では、セッション切断要求があるか否か(すなわち、セッションを切断するためのFIN信号が受信されたか否か)についての判断が行われる。ここで、セッション切断要求があった場合には、ステップS310に処理が移行する。一方、セッション切断要求がないときには、ステップS306に処理が移行し、セッション切断要求があるまで上述したステップS306の処理が繰り返し実行される。
【0102】
セッション切断要求があった場合、ステップS310では、セッション切断処理が実行される。より具体的には、ACK/FIN信号が返され、セッションが切断される。その後、本処理から一旦抜ける。
【0103】
受信データがPDLデータである場合、ステップS312では、PDLデータを受信中であることを示すフラグが記憶される。続いて、ステップS314において、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。
【0104】
次に、ステップS316では、第1のPDLデータのPJLの優先度情報等が記憶される。その後、ステップS318において、第1のPDLデータがプリントコントローラ11aに転送される。続くステップS320では、第1のPDLデータの一時的な仮記憶が開始される。
【0105】
次に、ステップS322では、第2のPDLデータの受信開始要求があるか否かについての判断が行われる。ここで、第2のPDLデータの受信開始要求があった場合には、
図8に示されるステップS348に処理が移行する。一方、第2のPDLデータの受信開始要求がないときには、ステップS324処理が移行する。
【0106】
ステップS324では、第1のPDLデータが受信されたか否かについての判断が行われる。ここで、第1のPDLデータが受信された場合には、ステップS326に処理が移行する。一方、第1のPDLデータが受信されていないときには、ステップS322に処理が移行し、第2のPDLデータの受信開始要求があるか、又は、第1のPDLデータが受信されるまで、上述した、ステップS322、S324の処理が繰り返して実行される。
【0107】
第1のPDLデータが受信された場合、ステップS326では、受信された第1のPDLデータにページの終了を示すページ終了指示子(ページクローズ情報)があるか否かについての判断が行われる。ここで、ページ終了指示子がある場合には、ステップS328において、仮記憶された第1のPDLデータが削除された後、ステップS336に処理が移行する。一方、ページ終了指示子がないときには、ステップS330に処理が移行する。
【0108】
ステップS330では、受信された第1のPDLデータにページの開始を示すページ開始指示子(ページオープン情報)があるか否かについての判断が行われる。ここで、ページ開始指示子がある場合には、ステップS332において、受信された第1のPDLデータの仮記憶が開始された後、ステップS336に処理が移行する。一方、ページ
開始指示子がないときには、ステップS334に処理が移行する。
【0109】
ステップS334では、受信された第1のPDLデータが仮記憶される。続くステップS336では、受信された第1のPDLデータが、プリンタコントローラ11aに転送される。その後、ステップS338では、セッション切断要求があるか否かについての判断が行われる。ここで、セッション切断要求があった場合には、ステップS340に処理が移行する。一方、セッション切断要求がないときには、ステップS322に処理が移行し、上述したステップS322以降の処理が繰り返して実行される。
【0110】
セッション切断要求があった場合、ステップS340では、セッション切断処理が実行され、(例えばPC30との間の)セッションが切断される。続いて、ステップS342では、プリンタコントローラ11aに対して、PCプリント処理の終了が指示される。その後、ステップS344において、第1のPDLデータの優先度情報が削除されるとともに、ステップS346において、PDLデータを受信中であることを示すフラグが削除される。その後、本処理から一旦抜ける。
【0111】
上述したステップS322において、第2のPDLデータの受信開始要求があると判断された場合、
図8に示されるステップS348において、Window Size=0のACKが送出され、第1のPDLデータの送信元(例えばPC30)に対して、セッションを張った状態でPDLデータの送信を禁止する持続接続制御が開始される。続いて、ステップS350では、受信バッファが空いたか否かを問い合わせるTCP Zero Windowが受信されたか否かについての判断が行われる。ここで、TCP Zero Windowが受信されていない場合には、TCP Zero Windowが受信されるまで、本ステップが繰り返して実行される。一方、TCP Zero Windowが受信されたときには、ステップS352に処理が移行する。
【0112】
ステップS352では、第2のPDLデータの受信終了指示があるか否かについての判断が行われる。ここで、第2のPDLデータの受信終了指示があった場合には、ステップS356に処理が移行する。一方、第2のPDLデータの受信終了指示がないときには、ステップS354に処理が移行する。
【0113】
ステップS354では、第1のPDLデータの送信元(例えばPC30)に対して、受信バッファに空き容量がないことを示すTCP Zero Window Probe ACKが送出され持続接続制御が継続される。その後、ステップS350に処理が移行し、上述したステップS350以降の処理が繰り返して実行される。
【0114】
第2のPDLデータの受信終了指示があった場合、ステップS356では、Window Size=4096のACKが送出され、第1のPDLデータの送信元(例えばPC30)に対する持続接続制御が解除される。続いて、ステップS358では、プリンタコントローラ11aに対して、PCプリント処理の開始が指示される。続いて、ステップS360において、仮記憶されている第1のPDLデータがプリンタコントローラ11aに転送される。そして、ステップS362において、仮記憶されている第1のPDLデータが削除された後、
図7に示されるステップS322に処理が移行し、上述したステップS322以降の処理が実行される。
【0115】
なお、
図9,10に示される、ネットワーク複合機2による、第2のPDLデータのプリント処理(ステップS400〜ステップS466)は、上述したステップS200〜ステップS266の処理と同一であるので、ここでは、詳細な説明を省略する。
【0116】
本実施形態によれば、第1のPDLデータの優先順位が第2のPDLデータの優先順位よりも低いと判定された時点で、持続接続制御が実行されて第1のPDLデータの送信が禁止される。よって、より迅速に第1のPDLデータから第2のPDLデータへプリント処理を切替えることができ、優先順位が高いプリントデータを迅速にプリントアウトすることが可能となる。また、第1のPDLデータの送信が禁止される際に、途中まで受信された第1のPDLデータが、一時的にメモリ10cに記憶される。そして、第2のPDLデータの受信が終了し、第1のPDLデータの送信が許可されるときに、まず、メモリ10cに記憶されている第1のPDLデータがラスターデータに展開され、その後、新たに受信される第1のPDLデータがラスターデータに展開される。よって、プリントデータを欠落させることなく、第1のPDLデータをプリントアウトすることができる。
【0117】
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に限定されるものではなく種々の変形が可能である。例えば、上記実施形態では本発明に係るネットワークプリンタをネットワーク複合機に適用したが、単機能のネットワークプリンタであってもよい。
【0118】
上記実施形態では、第1のPDLデータと第2のPDLデータの優先順位を判定した後、持続接続制御を実行したが、例えば、第2のPDLデータが受け付けられた際、又は、優先順位を判定する際に、持続接続制御を実行する構成としてもよい。
【0119】
また、ネットワーク複合機1,2を構成する機能的な要素の配置は、上記実施形態には限られない。例えば、メモリ10cを、NIC10Bではなく、プリンタコントローラ11a側に設ける構成としてもよい。