説明

スプールサーバ及びデータ通信制御方法

【課題】サーバの負荷を低減することを目的とする。
【解決手段】端末20とスプールサーバ30とプリンタ40とがネットワーク60で繋げられたシステム10におけるスプールサーバ30である。スプールサーバ30は、前記端末20に設けられた送信部との間でコネクションを形成し、前記プリンタ40により印刷されるデータを前記送信部から受信する受信部350と、前記コネクションが形成されているときに、所定のタイミングで所定の条件を判断する判断部320と、前記判断結果に基づいて、前記受信部に前記コネクションを維持させたまま前記送信部からの前記データの受信を中断させる制御部330とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークプリンタシステムに関する。
【背景技術】
【0002】
従来のネットワークプリンタシステムでは、クライアントPCからサーバにデータが送られ、サーバにデータが一時的に蓄積され、サーバからプリンタにデータが送られて印刷が実行される。ここで、データ受信側のCPU負荷が大きい場合に通信帯域を制限し、CPU負荷が閾値以下になったときに制限を解除するシステムが知られている(特許文献1)。
【0003】
【特許文献1】特開2007−188226号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
クライアントPCからサーバにデータを送る場合、サーバが受信を拒否する場合がある。かかる場合にサーバが通信路を切ってデータ受信を拒否しても、クライアントPCの構成によっては、クライアントPCからデータが再送信されることがある。その場合、サーバの受信拒否とクライアントPCからのデータ送信とが延々と繰り返され、サーバの負荷が大きくなるおそれがあった。
【0005】
本発明は、上記課題の少なくとも1つを解決し、サーバの負荷を低減することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は、以下の態様を備える。
【0007】
本発明の第1の態様は、端末とスプールサーバとプリンタとがネットワークで繋げられたシステムにおけるスプールサーバである。スプールサーバは、前記端末に設けられた送信部との間でコネクションを形成し、前記プリンタにより印刷されるデータを前記送信部から受信する受信部と、前記コネクションが形成されているときに、所定のタイミングで所定の条件を判断する判断部と、前記判断結果に基づいて、前記受信部に前記コネクションを維持させたまま前記送信部からの前記データの受信を中断させる制御部とを備える。この態様によれば、コネクションが維持されるため、スプールサーバからの通信路の切断による受信拒否と端末の送信部からのデータ送信とが延々と繰り返されることがなく、スプールサーバの負荷を少なくできる。
【0008】
本発明の第1の態様に係るスプールサーバにおいて、前記端末から受信するデータには端末または端末の利用者を特定する特定情報が含まれ、前記判断部は、前記端末から前記データを取得したときに、前記特定情報に基づいて前記判断をするように構成されていてもよい。この態様によれば、特定の端末から送信あるいは端末における特定の利用者の操作により送信されるデータについて、受信処理を継続しあるいは受信処理を中断できる。
【0009】
本発明の第1の態様に係るスプールサーバにおいて、前記特定情報は端末を利用する利用者のユーザアカウントであるように構成してもよい。この態様によれば、特定のユーザアカウントを持つ利用者の操作により送信されるデータについて、受信処理を継続しあるいは受信処理を中断できる。
【0010】
本発明の第1の態様に係るスプールサーバにおいて、前記端末から受信するデータには前記端末を特定する特定情報が含まれ、前記判断部は、前記特定情報を取得する前に、スプールサーバの負荷状態に基づいて判断するように構成してもよい。一般的に端末を特定する情報は、通信データのヘッダ部などデータの始めの方に含まれている。したがって、この態様によれば初期段階で受信処理の継続の可否を決めることができる。
【0011】
本発明の第1の態様に係るスプールサーバにおいて、前記条件は、前記プリンタが前記データを印刷することができることであるように構成されていてもよい。この態様によれば、プリンタがデータを印刷できない場合は、データ受信を中断するため、スプールサーバの負荷を少なくできる。
【0012】
本発明の第1の態様に係るスプールサーバにおいて、前記端末から受信するデータには前記端末を特定する特定情報が含まれ、前記判断部は、前記特定情報を取得したときに、前記特定情報に基づいて前記判断をするように構成されていてもよい。一般的に端末を特定する情報は、通信データのヘッダ部などデータの始めの方に含まれている。したがって、この態様によれば、初期段階で受信処理の継続の可否を決めることができる。
【0013】
本発明の第1の態様に係るスプールサーバにおいて、前記判断部は、前記中断が行われた後、前記所定の条件を再度判断し、前記制御部は、前記再度の判断結果に基づいて、前記送信部からの前記データの受信の中断を維持させ、あるいは、前記データの受信を再び開始させるように構成されていてもよい。この態様によれば、受信中断中はスプールサーバの負荷を少なくできる。また、再度の判断で、受信の再開の判断がなされれば、データが受信され、印刷がされるので利用者の利便性が図れる。
【0014】
本発明の第1の態様に係るスプールサーバにおいて、前記判断部が前記所定の条件を判断するのは、判断の根拠となった条件もしくは、判断の根拠となった情報の値が変わったときであるように構成してもよい。この態様によれば、判断の根拠となった条件もしくは、判断の根拠となった情報の値が変われば、スプールサーバの負荷が変わるからである。
【0015】
本発明の第2の態様は、端末とスプールサーバとプリンタとをネットワークで繋いだシステムのスプールサーバにおけるデータ通信制御方法である。このデータ通信制御方法においては、前記端末に設けられた送信部と前記スプールサーバの受信部と間でコネクションを形成し、所定のタイミングで所定の条件を判断し、前記判断結果に基づいて、前記受信部に前記コネクションを維持したまま前記端末からのデータ受信を中断させる制御を行う。この態様によれば、コネクションが維持されるため、スプールサーバからの通信路の切断による受信拒否と端末の送信部からのデータ送信とが延々と繰り返されることがなく、スプールサーバの負荷を少なくできる。
【発明を実施するための最良の形態】
【0016】
本発明の実施の形態について図面を用いて説明する。図1は、本実施例に係るネットワークプリンタシステムの構成を示す説明図である。ネットワークプリンタシステム10は、ネットワーク60に接続されているクライアントPC20、スプールサーバ30、プリンタ40を備える。プリンタ40には認証装置50が接続されている。
【0017】
クライアントPC20は、種々のアプリケーションを実行し、利用者から印刷指示を受けたときには、所定の印刷データを作成してスプールサーバ30に送る。ネットワークプリンタシステム10にはクライアントPC20が複数台接続されていてもよい。スプールサーバ30は、クライアントPC20から送られた印刷データを管理・格納し、印刷データをプリンタ40に送信する。プリンタ40は、印刷データを印刷する。なお、ネットワークプリンタシステム10には、プリンタ40として、例えば、カラー印刷機能を有するプリンタ、両面印刷機能を有するプリンタなど複数のプリンタ40が接続されていてもよい。
【0018】
認証装置50は、プリンタ40における印刷の際に認証が必要なユーザを認証するために用いられる。例えば、認証装置50において認証が成功すると、プリンタ40はスプールサーバ30に印刷データを要求し、印刷データを取得して印刷を実行する。
【0019】
図2は、クライアントPC20の構成を示す説明図である。クライアントPC20は、CPU200、入力装置210、ハードディスク220、ネットワークインターフェース240を備える。
【0020】
CPU200は、クライアントPC20全体の動作を制御する。入力装置210は、クライアントPC20へのデータの入力、及びクライアントPC20への操作を受け付ける。本実施例では、入力装置210として、例えば、キーボード、マウスなどが用いられる。ハードディスク220は、アプリケーションプログラム225、プリンタドライバ230、通信プログラム235を格納する。ネットワークインターフェース240はクライアントPC20をネットワーク60に接続させる。
【0021】
アプリケーションプログラム225は、CPU200により実行され、例えば、ワードプロセッサ機能、表計算機能などのアプリケーション機能を実現する。プリンタドライバは、CPU200により実行され、所定の形式の印刷データを作成する。通信プログラム235は、CPU200により実行され、CPU200とCPU300とを結ぶコネクションのうちクライアントPC20側のコネクションを形成する。コネクションとは、データを確実に送るために、送信側のCPUと受信側のCPUとの間において結ぶばれる仮想の通信路をいう。CPU200は、コネクションを介して、CPU300にデータを送ることにより、CPU300に対してデータを確実に送ることができる。
【0022】
図3は、スプールサーバ30の構成を示す説明図である。スプールサーバ30は、CPU300、ハードディスク310、ネットワークインターフェース380を備える。
【0023】
CPU300は、スプールサーバ30全体の動作を制御する。ハードディスク310は、印刷データ管理プログラム315、受信可否判断プログラム320、判断用データ325、受信制御プログラム330、印刷権限管理プログラム335、負荷監視プログラム340、プリンタ監視プログラム345、及び通信プログラム350及びを格納する。また、ハードディスク310には、印刷データを蓄積するためのバッファー領域355が設けられている。ネットワークインターフェース380は、スプールサーバ30をネットワーク60に接続させる。
【0024】
印刷データ管理プログラム315は、CPU300により実行され、印刷データの管理を実行する。ここで、印刷データの管理とは、例えば、CPU300が、どの印刷データがどのユーザの印刷データであるのか等を管理することをいう。
【0025】
受信可否判断プログラム320は、CPU300により実行され印刷データの受信を継続するか否かを判断する。本実施例では判断の条件・基準は判断用データ325に格納されている。判断には、判断用データ325に格納された条件・基準が満たされたときにCPU300が受信を継続し満たされなかった時に受信を中断するという判断と、逆に判断用データ325に格納された条件・基準が満たされたときに受信を中断し満たされなかった場合には受信を継続するという判断の2つがある。受信制御プログラム330は、CPU300により実行され、前記判断がデータの受信を継続するとの判断の場合にはデータの受信を継続し、データの受信を中断するとの判断の場合にはデータの受信を中断する。
【0026】
印刷権限管理プログラム335は、CPU300により実行され、印刷データについての印刷権限を管理する。印刷権限とは、例えば、認証が必要な印刷データについてプリンタ40を用いて印刷することができる権利が有るか否かをいう。CPU300は、プリンタ40からの印刷データ要求が権限なき印刷データ要求の場合には、プリンタ40に印刷データを送ることができない。CPU300は、プリンタ40の認証装置50から認証データが送られてきたときに、当該認証データを用いて印刷権限の有無を判断する。
【0027】
負荷監視プログラム340は、CPU300により実行され、CPU300の使用率、コネクションの数、ハードディスクの残量など、スプールサーバ30あるいはCPU300にどれだけの負荷がかかっているか、負荷状況を監視する。プリンタ監視プログラム345は、CPU300により実行され、ネットワークプリンタシステム10にどのようなプリンタが接続されているか監視する。CPU300は、例えばネットワークプリンタシステムに接続されているプリンタの電源が入っているか否か、プリンタの種類、プリンタがカラー印刷機能や両面印刷機能などの機能を有しているか等についての情報をプリンタから取得する。
【0028】
通信プログラム350は、CPU300により実行され、CPU200とのコネクションのうちスプールサーバ30側のコネクションを形成し、CPU200とデータの送受信を行う。なお、CPU300が印刷データをプリンタ40に送る場合には、CPU300とプリンタ40のCPU(図示せず)との間のコネクションのうちスプールサーバ30側のコネクションを形成し、プリンタ40のCPUとデータの送受信を行う。CPU300は、バッファー領域355に受信したデータを格納・蓄積する。
【0029】
図4を用いて、印刷データのスプールサーバへの送信時におけるクライアントPC20の動作について説明する。図4は、印刷データのスプールサーバへの送信時におけるクライアントPC20の動作フローチャートである。
【0030】
クライアントPC20のCPU200は、入力装置210に対して印刷指示が行われると、印刷指示を検知する(ステップS100)。
【0031】
CPU200は、プリンタドライバ230を起動・実行し、印刷データのヘッダ部を生成する(ステップS110)。CPU110は、印刷データのヘッダ部に、例えば、利用者のユーザアカウント情報、プリンタ40を指定するためのプリンタ指定情報、カラー印刷機能・両面印刷機能・ステープラ機能などプリンタ40のどのオプション機能を使用するかを指定するためのオプション機能情報を格納する。印刷データのヘッダ部に格納されるこれらのユーザアカウント情報、プリンタ指定情報、オプション機能情報を印刷属性情報ということにする。ユーザアカウント情報、プリンタ指定情報、オプション機能情報は印刷属性情報の一例であり、印刷属性情報には他の情報が含まれていてもよい。
【0032】
CPU200は、印刷データのヘッダ部以外を生成する(ステップS120)。CPU200は、印刷を実行するプリンタのデータ形式に適合する印刷データを作成する。CPU200は、ネットワーク60を介してスプールサーバ30に作成した印刷データを送る(ステップS130)。
【0033】
CPU200は、通信プログラム235を実行し、印刷データにTCPヘッダを付加する。TCPヘッダは、送信元であるクライアントPC20のポート番号と送信先であるスプールサーバ30のポート番号とフラグ情報を含んでいる。ポート番号はクライアントPC20あるいはスプールサーバ30において、CPU200、300が、そのデータについて、それぞれどのプログラムを実行するかを示すために用いられる。また、TCPヘッダは、フラグ情報として、例えば、コネクションの確立を要求するための同期フラグ(SYN)、要求に対する確認を応答するための応答確認フラグ(ACK)、コネクションの終了を通知するための終了フラグ(FIN)についての情報を含んでいる。
【0034】
CPU200は、通信プログラム235を実行して印刷データのヘッダ部の前にIPヘッダを付加する。IPヘッダは、送信元であるクライアントPC20のIPアドレスと送信先であるスプールサーバ30のIPアドレスとを含んでいる。IPアドレスは、ネットワークに接続されたネットワーク機器に所定の規則に基づいて付けられたユニーク番号である。IPヘッダのIPアドレスは、どのネットワーク機器からどのネットワーク機器にデータが送られるかを示すために用いられる。
【0035】
以下、TCPヘッダ、IPヘッダに含まれる情報を通信接続属性情報ということにする。印刷データはTCPヘッダ、IPヘッダが付加された後、ネットワーク60に送り出される。なお、印刷データのデータ量は一般に大きいので、通常、印刷データは、細かく分割された後、それぞれにTCPヘッダ、IPヘッダが付加されて送られる。これらの分割された印刷データのそれぞれをパケットという。
【0036】
図5から図7を用いて、スプールサーバ30における印刷データの受信処理について説明する。図5は、スプールサーバ30における印刷データの受信処理の動作フローチャートである。図6は、図5に示すフローチャート中の受信処理可否判断1の判断基準を示す説明図である。図7は、図5に示すフローチャート中の受信処理可否判断2の判断基準を示す説明図である。
【0037】
ネットワーク60に送られた印刷データは、IPヘッダのIPアドレスに基づいてスプールサーバ30に送られる。スプールサーバ30に印刷データが到達し、印刷データのTCPヘッダに同期フラグが立っている場合には、スプールサーバのCPU300は、通信接続要求を受ける(ステップS200)。
【0038】
CPU200とCPU300は、コネクションを確立する(ステップS205)。CPU300は、受信したTCPヘッダに同期フラグが立っている場合には、応答確認フラグを及び同期フラグが立っているTCPヘッダを含むデータをCPU200に送る。CPU200は、送られたデータのTCPヘッダの同期フラグが立っている場合には、応答確認フラグが立っているTCPヘッダを含むデータをCPU300に送る。このようにCPU200、300は、同期フラグの送信、応答確認フラグ・同期フラグの送信、応答確認フラグの送信の3つのステップを介することによりコネクションを確立する。
【0039】
CPU300は、到達した印刷データから通信接続属性情報を取得する(S210)。本実施例では、CPU300は、クライアントPC20のIPアドレス、ポート番号及びスプールサーバ30のIPアドレス、ポート番号を取得する。
【0040】
CPU300は、クライアントPCのIPアドレスに基づいて受信処理を継続するか、コネクションを維持したまま受信処理を中断するかを判断する(ステップS215)。なお、CPU300は、取得したIPアドレスと同一のIPアドレスが判断用データ325に格納されている場合に受信処理を継続し、含まれていない場合にコネクションを維持したまま受信処理を中断する制御と、取得したIPアドレスと同一のIPアドレスが判断用データ325に格納されている場合にコネクションを維持したまま受信処理を中断し、含まれていない場合に受信処理を継続する制御の両方が可能である。CPU300は、IPアドレスに基づいて受信処理を継続するか、受信処理を中断するかを判断するので、セキュリティを向上させることができる。
【0041】
本実施例では、CPU300は、IPアドレスを用いて印刷データの受信を継続するか、中断するかを判断しているが、他の判断基準を利用してもよい。図6に一例を示す。なお、図6に示すものは一例であり、これ以外の基準を除外するものではない。
【0042】
CPU300は、通信接続属性情報にクライアントPC20のホスト名が含まれている場合にはホスト名を利用して、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。ここで、ホスト名とは例えば人間がネットワークに接続された装置を認識しやすくするために当該装置に付けられる名前をいう。CPU300は、特定のクライアントPC20から送信されるデータについて、受信処理を継続しあるいは受信処理を中断できるので、セキュリティを向上させることができる。
【0043】
CPU300は、他のクライアントPCとの通信接続数を用いて、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。通信接続数が多いと同時に受信するデータ量が多くなりCPU300の負荷が大きくなるからである。本実施例では、CPU300は、他のクライアントPCとの通信接続数が所定の数以下に場合には印刷データの受信処理を継続し、所定の数以上の場合には印刷データの受信処理を中断する。したがって、CPU300は、CPU300の負荷、すなわちスプールサーバ30の負荷の増大を抑制することができる。
【0044】
CPU300は、CPU200とコネクションを確立している時間が通信を許可されている時間帯に含まれるか否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPU300は、許可されている時間帯以外に通信を受けた場合には、受信処理を中断するので、セキュリティを向上させることができる。
【0045】
CPU300は、ハードディスク310への同時アクセス数が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。ハードディスク310への同時アクセス数が所定の閾値以上ある場合には、CPU300及びハードディスク310の負荷が大きいからである。CPU300は、CPU300の付加、すなわちスプールサーバ30の負荷の増大を抑制することができる。
【0046】
CPU300は、CPU300の使用率が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPU300の使用率が所定の閾値以上の場合には、CPU300の負荷が大きいからである。CPU300は、CPU300の負荷、すなわちスプールサーバ30の負荷の増大を抑制できる。
【0047】
CPU300は、印刷データの格納量が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。印刷データの格納量が所定の閾値以上の場合には、印刷データを受信しても格納できなくなる恐れがあるからである。CPU300は、受信した印刷データを格納できなくなることを抑制できる。
【0048】
CPU300は、受信継続する判断をした場合には(ステップS215、可)、印刷データの受信処理を継続し印刷データのヘッダ部を受信する(ステップS220)。CPU300は、応答確認フラグ(ACK)が立っているTCPヘッダを有する応答確認パケットをCPU200に送ることにより、CPU200に印刷データのヘッダ部を送信させ、CPU300は印刷データのヘッダ部を受信する。
【0049】
CPU300は、印刷データのヘッダ部から印刷属性情報を取得する(ステップS225)。CPU300は、印刷属性情報に含まれているユーザアカウント情報に基づいて受信処理を継続するか、コネクションを維持したまま受信処理を中断するかを判断する(ステップS230)。なお、CPU300は、取得したユーザアカウント情報と同一のユーザアカウント情報が判断用データ325に格納されている場合に受信処理を継続し、含まれていない場合にコネクションを維持したまま受信処理を中断する制御と、取得したユーザアカウント情報と同一のユーザアカウント情報が判断用データ325に格納されている場合にコネクションを維持したまま受信処理を中断し、含まれていない場合に受信処理を継続する制御の両方が可能である。CPU300は、ユーザアカウントに基づいて受信処理を継続するか、受信処理を中断するかを判断するので、セキュリティを向上できる。
【0050】
本実施例では、CPU300は、ユーザアカウントを用いて印刷データの受信を継続するか、中断するかを判断しているが、他の判断基準を利用してもよい。図7に一例を示す。なお、図7に示すものは一例であり、これ以外の基準を除外するものではない。
【0051】
CPU300は、ユーザアカウントごとにハードディスクに格納している印刷データの格納数が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。これによりハードディスクの使用容量を抑制できる。なお、CPU300は、印刷データの格納数だけでなく、印刷データの格納量が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPU300は、ユーザアカウントごとにハードディスクの使用容量を抑制することができる。
【0052】
CPU300は、ユーザアカウントごとに格納している印刷データの数と受信処理中の通信接続数の合計が所定の閾値以下か否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。受信処理が完了すると印刷データはハードディスク310に格納される。したがって、CPU300は、ユーザアカウントごとにハードディスクの使用容量を抑制することができる。
【0053】
CPU300は、ユーザアカウントごとに、CPU200とコネクションを確立している時間が通信を許可されている時間帯に含まれるか否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPU300は、セキュリティを向上できる。
【0054】
CPU300は、受信した印刷データを印刷可能なプリンタ40がネットワークプリンタシステム10に接続されているか否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPU300は、プリンタ40に印刷させることができない印刷データの受信を中断できる。
【0055】
CPU300は、ユーザアカウントごとに、使用が許可されているプリンタ、あるいは使用が許可されているオプション機器を備えるプリンタがネットワークプリンタシステム10に接続されているか否かにより、印刷データの受信処理を継続するか、印刷データの受信処理を中断するかを判断してもよい。CPUは、プリンタ40に印刷させることができない印刷データの受信を中断できる。
【0056】
CPU300は、印刷データの受信を継続する場合には(ステップS230、可)、印刷データの残部を受信する(ステップS235)。CPU300は、応答確認フラグ(ACK)が立っているTCPヘッダを有する応答確認パケットをCPU200に送る。CPU200は、応答確認フラグが立っているTCPヘッダを含むパケットを受信した場合には、印刷データの残りのパケットをCPU300に送る。CPU300は印刷データの残部を受信する。なお、CPU300は、所定の数のパケットを受信するごとに、CPU200に対して応答確認フラグが立っているTCPヘッダを含むパケットを送る。CPU300は受信したパケットを結合し、ハードディスク310に格納する。
【0057】
CPU300は、印刷データの受信が完了すると(ステップS240)、TCPヘッダに終了フラグが立っているデータをCPU200に送り、コネクションを切断して処理を終了する(ステップS245)。
【0058】
CPU300は、ステップS215において受信処理を中断する判断をした場合には(ステップS215、否)、受信処理を中断する(ステップS260)。例えば、CPU300は、CPU200に対して応答確認フラグが立っているTCPヘッダを含むデータを送らない。CPU200は、CPU300からの受信確認を得ることができないため、残りのパケットを送ることができない。したがって、CPU300は受信中断をすることができる。なお、CPU300は、TCPヘッダに終了フラグが立っているデータをCPU200に送っていない。したがって、CPU200とCPU300の間のコネクションは維持されたままである。
【0059】
CPU300は、受信処理の中断を継続するか、あるいは受信処理を再開するかについて、再度判断する場合には(ステップS265、Yes)、ステップS215に戻る。CPU300は、受信処理を中断してから所定の時間が経過したとき、あるいは、所定の条件が変化したときに再度の判断を行う。
【0060】
所定の条件が変化したときの例については、図6の右欄に示す。所定の条件が変化したときの例として、例えば、IPアドレス・ホスト名については判断用データ325への追加・削除が行われたとき、通信接続数については他の通信接続における通信の完了あるいは通信接続の切断が行われたとき、時刻については時間の経過により許可時間内になったときあるいは許可時間が変更されたとき、ハードディスクのアクセス状態及びCPU300の使用率については所定の時間経過ごと、印刷データの保存量については印刷実行により印刷データが削除されたとき、が挙げられる。なお、これらの例は一例であり、他の条件が変化したときを排除するものではない。
【0061】
CPU300は、再度の判断を行わない場合には(ステップS265、No)、TCPヘッダに終了フラグが立っているデータをCPU200に送り、コネクションを切断する(ステップS270)。CPU300が再度の判断を行わない場合として、例えば、一定期間中断が続き、受信処理を再度開始する見込みがない場合が挙げられる。CPU300は、コネクションを維持するためにリソースを消費する。CPU300が使用できるリソースの量には限度があるので、CPU300は、受信処理を再度開始する見込みがない場合には、コネクションを切ることにしたものである。
【0062】
CPU300は、ステップS230において受信処理を中断する判断をした場合には(ステップS230、否)、受信処理を中断する(ステップS280)。例えば、CPU300は、印刷データのヘッダ部の受信に対する受信確認について、CPU200に対して応答確認フラグが立っているTCPヘッダを含むデータを送らない。CPU200は、CPU300からの受信確認を得ることができない場合には、残りのパケットを送ることができない。したがって、CPU300は受信中断をすることができる。なお、CPU300はTCPヘッダに終了フラグが立っているデータをCPU200に送っていない。したがって、CPU200とCPU300の間のコネクションは維持されたままである。
【0063】
CPU300は、受信処理の中断を継続するか、あるいは受信処理を再開するかを再度判断する場合には(ステップS285、Yes)、ステップS230に戻る。CPU300は、受信処理を中断してから所定の時間が経過したとき、あるいは、所定の条件が変化したときに再度の判断を行う。
【0064】
所定の条件が変化したときの例については、図7の右欄に示す。所定の条件が変化したときとして、例えば、ユーザアカウントについては判断用データ325への追加・削除が行われたとき、印刷データの数、印刷データ量については印刷実行により印刷データの削除が行われたとき、利用可能なデータの数については印刷実行による印刷データの削除あるいは通信切断による通信接続数の変化が有ったとき、時刻については時間の経過により許可時間内になったときあるいは許可時間が変更されたとき、プリンタの接続状況についてはプリンタの電源オンがされたとき、オプション機器の変更がされたとき、あるいは消耗品の交換・補充によりプリンタが使用可能になったとき、印刷オプションの使用権限についてはプリンタの電源オンがされたとき、オプション機器の変更がされたとき、消耗品の交換・補充によりプリンタが使用可能になったとき、あるいはオプション機器の使用許可の変更が行われたとき、が挙げられる。なお、これらの例は一例であり、他の条件が変化した場合を排除するものではない。
【0065】
CPU300は、再度の判断をしない場合には(ステップS285、No)、CPU300は、TCPヘッダに終了フラグが立っているデータをCPU200に送り、コネクションを切断する(ステップS290)。
【0066】
図8を用いて、プリンタ40及び認証装置50の動作について説明する。図8は、印刷処理の動作フローチャートである。なお、ここでは、プリンタ40と認証装置50は一体のものとして説明する。
【0067】
認証装置50に対して認証操作が行われると、認証装置50のCPU500(図示せず)は、認証情報を読み取る(ステップS300)。CPU500は、例えば、ICカードから認証情報を読みとってもよく、あるいは、利用者から指紋などの生体情報を読み取ってもよい。本実施例では、ICカードから認証情報を読み取るとして説明する。
【0068】
CPU500は、認証情報を用いて認証処理を行う(ステップS310)。CPU500は、例えば、利用者がプリンタ40を使用する権限を有しているか判断する。CPU500は、利用者がプリンタ40を使用する権限を有している場合には、取得した認証情報に対応するユーザアカウント情報を取得する(ステップS320)。ユーザアカウント情報は、例えば、認証装置50内の記憶装置(図示せず)に格納されている。
【0069】
CPU500は、ユーザアカウント情報と、プリンタ40を使用する権限を有している旨の情報(以下「認証許可情報」という)をプリンタ40のCPU400(図示せず)に送る。CPU400は、ユーザアカウント情報と認証許可情報とをスプールサーバ30にCPU300に送り、CPU300から印刷データを取得する(ステップS330)。
【0070】
CPU400は、取得した印刷データを用いて印刷を実行する(ステップS340)。印刷処理については、説明を省略する。CPU400は、印刷処理の完了を検知すると(ステップS350)、CPU300に対して印刷データの削除を指示する(ステップS360)。
【0071】
以上、本実施例によれば、CPU300は、コネクションを維持したままCPU200からのデータの受信処理を中断する。その結果、CPU300によるコネクションの切断と、及びCPU200により再度のデータ送信とが絶え間無く延々と繰り返されることが防止される。もしくは、その繰り返しの発生頻度が下げられる。これにより、CPU300の負荷を少なくできる。
【0072】
本実施例によれば、印刷データのIPヘッダ部には、クライアントPC20のIPアドレスが含まれているの。その結果、CPU300は、特定のクライアントPC20から送信されるデータについて、受信処理を継続しあるいは受信処理を中断でき、セキュリティを向上させることができる。なお、IPヘッダはデータの始めの方に含まれているので、データ受信の初期段階で受信処理の継続の可否を決めることができる。
【0073】
本実施例によれば、印刷データのヘッダ部には、クライアントPC20のホスト名が含まれている。その結果、CPU300は、特定のクライアントPC20から送信されるデータについて、受信処理を継続しあるいは受信処理を中断でき、セキュリティを向上させることができる。
【0074】
本実施例によれば、印刷データのヘッダ部には、クライアントPCを利用する利用者のユーザアカウントが含まれている。その結果、CPU300は、特定のユーザアカウントを持つ利用者の操作により送信されるデータについて、受信処理を継続しあるいは受信処理を中断でき、セキュリティを向上させることができる。
【0075】
本実施例によれば、CPU300は、印刷データを印刷可能なプリンタ40がネットワークプリンタシステム10に接続されているかを判断し、印刷可能なプリンタが接続されていない場合にデータの受信を中断する。その結果、CPU300の負荷を少なくできる。
【0076】
本実施例によれば、CPU300は、印刷データの受信を中断した場合には、所定のタイミングで印刷データの受信中断を継続するか、受信を再開するかを判断する。再度の判断により、受信処理が再開された場合には、印刷データが受信され、印刷が実行されるので、利用者の利便性が図れる。
【0077】
変形例:
本実施例では、CPU300は、IPアドレスなどの通信接続属性情報を取得したのちに、受信処理を中断するか、受信処理を継続するかを判断しているが、例えば、IPアドレスを取得する前において、CPU300あるいはハードディスク310の負荷状況など、スプールサーバ30の負荷状況に基づいて受信処理を中断するか、受信処理を継続するかを判断してもよい。IPアドレスはデータの始めの方に含まれているので、データ受信の初期段階で受信処理の継続の可否を決めることができる。
【0078】
以上、いくつかの実施例に基づいて本発明の実施の形態について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物が含まれることはもちろんである。
【図面の簡単な説明】
【0079】
【図1】本実施例に係るネットワークプリンタシステムの構成を示す説明図である。
【図2】クライアントPCの構成を示す説明図である。
【図3】スプールサーバの構成を示す説明図である。
【図4】印刷データのスプールサーバへの送信時におけるクライアントPCの動作フローチャートである。
【図5】スプールサーバにおける印刷データの受信処理の動作フローチャートである。
【図6】図5に示すフローチャート中の受信処理可否判断1の判断基準を示す説明図である。
【図7】図5に示すフローチャート中の受信処理可否判断2の判断基準を示す説明図である。
【図8】印刷処理の動作フローチャートである。
【符号の説明】
【0080】
10…ネットワークプリンタシステム
20…クライアントPC
30…スプールサーバ
40…プリンタ
50…認証装置
60…ネットワーク
200…CPU
210…入力装置
220…ハードディスク
225…アプリケーションプログラム
230…プリンタドライバ
235…通信プログラム
240…ネットワークインターフェース
300…CPU
310…ハードディスク
315…印刷データ管理プログラム
320…受信可否判断プログラム
325…判断用データ
330…受信制御プログラム
335…印刷権限管理プログラム
340…負荷監視プログラム
345…プリンタ監視プログラム
350…通信プログラム
355…バッファー領域
380…ネットワークインターフェース

【特許請求の範囲】
【請求項1】
端末とスプールサーバとプリンタとがネットワークで繋げられたシステムにおけるスプールサーバであって、
前記端末に設けられた送信部との間でコネクションを形成し、前記プリンタにより印刷されるデータを前記送信部から受信する受信部と、
前記コネクションが形成されているときに、所定のタイミングで所定の条件を判断する判断部と、
前記判断結果に基づいて、前記受信部に前記コネクションを維持させたまま前記送信部からの前記データの受信を中断させる制御部と、
を備えるスプールサーバ。
【請求項2】
請求項1に記載のスプールサーバにおいて、
前記端末から受信するデータには端末または端末の利用者を特定する特定情報が含まれ、
前記判断部は、前記端末から前記データを取得したときに、前記特定情報に基づいて前記判断をする、スプールサーバ。
【請求項3】
請求項2に記載のスプールサーバにおいて、
前記特定情報は端末を利用する利用者のユーザアカウントである、スプールサーバ。
【請求項4】
請求項1から請求項3のいずれかに記載のスプールサーバにおいて、
前記端末から受信するデータには前記端末を特定する特定情報が含まれ、
前記判断部は、前記特定情報を取得する前に、スプールサーバの負荷状態に基づいて判断する、スプールサーバ。
【請求項5】
請求項1から請求項4のいずれかに記載のスプールサーバにおいて、
前記条件は、前記プリンタが前記データを印刷することができることである、スプールサーバ。
【請求項6】
請求項1から請求項5のいずれかに記載のスプールサーバにおいて、
前記端末から受信するデータには前記端末を特定する特定情報が含まれ、
前記判断部は、前記特定情報を取得したときに、前記特定情報に基づいて前記判断をする、スプールサーバ。
【請求項7】
請求項1から請求項6のいずれかに記載のスプールサーバにおいて、
前記判断部は、前記中断が行われた後、前記所定の条件を再度判断し、
前記制御部は、前記再度の判断結果に基づいて、前記送信部からの前記データの受信の中断を維持させ、あるいは、前記データの受信を再び開始させる、スプールサーバ。
【請求項8】
請求項7に記載のスプールサーバにおいて、
前記判断部が前記所定の条件を再度判断するのは、判断の根拠となった条件もしくは、判断の根拠になった情報の値が変わったときであることを特徴とする、スプールサーバ。
【請求項9】
端末とスプールサーバとプリンタとをネットワークで繋いだシステムのスプールサーバにおけるデータ通信制御方法であって、
前記端末に設けられた送信部と前記スプールサーバの受信部と間でコネクションを形成し、
所定のタイミングで所定の条件を判断し、
前記判断結果に基づいて、前記受信部に前記コネクションを維持したまま前記端末からのデータ受信を中断させる制御を行う、
スプールサーバにおけるデータ通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−151444(P2009−151444A)
【公開日】平成21年7月9日(2009.7.9)
【国際特許分類】
【出願番号】特願2007−327286(P2007−327286)
【出願日】平成19年12月19日(2007.12.19)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】