(57)【特許請求の範囲】
【請求項１】
ネットワーク内に接続されたクライアントから該ネットワーク内に接続された共用資源へのジョブの転送をサーバから制御し、かつ監視する方法であって、
前記ネットワーク内に接続されたクライアントから、該ネットワーク内に接続された選択された共用資源にジョブを送信することの許可を得るための要求をサーバが受信するステップと、
前記ネットワーク内に接続された共用資源がアクセス可能であり、かつ現時点でジョブを受信する能力を有するか否かをサーバが絶えず検査するステップとを含み、
前記選択された共用資源がアクセス可能であり、かつ現時点でジョブを受信する能力を有する場合には、前記クライアントが前記選択された共用資源に直に前記ジョブを送信することができるという許可が、前記ネットワーク内に接続されたクライアントに直ちに送信され、
前記ネットワーク内に接続された共用資源がアクセス可能であるが、現時点ではジョブを受信する能力を欠いている場合には、前記要求は前記選択された共用資源のためのキューに入れられ、前記キューは絶えず更新され、前記要求が前記キュー内の先頭の位置まで進んでおり、かつ前記選択された共用資源がジョブを受信する能力を有するときに、前記クライアントが前記選択された共用資源に直に前記ジョブを送信することができるという許可が前記ネットワーク内に接続されたクライアントに送信され、
前記選択された共用資源がアクセス可能でない場合には、それがサーバから前記ネットワーク内に接続されたクライアントに通知され、
前記ネットワーク内に接続されたクライアントから要求を受信する前記ステップの後に、サーバが前記ジョブに識別情報を割り当てるステップを含み、前記ジョブは前記ネットワーク内に接続されたクライアントに通知され、前記識別情報は前記許可に含まれ、前記クライアントが前記選択された共用資源に直に前記ジョブを送信することができるという許可は前記ネットワーク内に接続されたクライアントに送信され、結果として、前記ネットワーク内に接続されたクライアントは前記識別情報に基づいて前記ジョブを特定することができ、
前記共用資源によって前記ジョブが首尾良く完了されたという事実の確認、あるいは前記共用資源によって前記ジョブが首尾よく完了されなかったという事実の指標が前記クライアントからサーバに受信され、その後、前記要求は前記キューから削除されることを特
徴とする方法。
【請求項２】
前記共用資源による前記ジョブの完了に関する更新されたステータス情報が、前記許可が前記ネットワーク内に接続されたクライアントに送信されてから、前記共用資源によって前記ジョブが首尾良く完了されたという前記確認、あるいは前記共用資源によって前記ジョブが首尾よく完了されなかったという前記指標が受信されるまでの間に前記ネットワーク内に接続されたクライアントから繰返しサーバに受信され、そのような更新ステータス情報がないことは、前記ネットワーク内に接続されたクライアントのオペレーションエラー、あるいは前記クライアントと前記サーバとの間の通信における通信エラーを示す、請求項１に記載の方法。
【請求項３】
前記割り当てられた識別情報が前記ネットワーク内に接続されたクライアントによって受信されたという確認が受信される、請求項１または２に記載の方法。
【請求項４】
前記ネットワーク内に接続されたクライアントに送信される前記クライアントが前記ジョブを前記選択された共用資源に直に送信することができるという前記許可が、前記ネットワーク内に接続されたクライアントによって受信されたという確認が受信される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記ネットワーク内に接続されたクライアントに送信される前記クライアントが前記ジョブを前記共用資源に直に送信することができるという前記許可が、受信されたという前記確認は、前記ジョブが前記共用資源に直に送信されたか、あるいは送信されることになるという確認でもある、請求項４に記載の方法。
【請求項６】
前記共用資源はプリンタであり、前記ジョブはプリントジョブである、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記共用資源は送信装置、表示装置、あるいはデータを記憶するための装置であり、前記ジョブはデータをそれぞれ送信、表示あるいは記憶するためのジョブである、請求項６に記載の方法。
【請求項８】
前記共用資源のステータスに関する情報は、前記ネットワーク内に接続されたクライアントに送信される、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記選択された共用資源と通信することに関連する、前記ネットワーク内に接続されたクライアントのためのクライアントソフトウエアのバージョンが記憶され、
前記ネットワーク内に接続されたクライアントが前記選択された共用資源との通信のために使用している前記クライアントソフトウエアの前記バージョンに関する情報が、前記ネットワーク内に接続されたクライアントから受信され、
前記クライアントソフトウエアの前記バージョンが比較され、
前記比較が、前記記憶されるクライアントソフトウエアが前記ネットワーク内に接続されたクライアントによって用いられる前記クライアントソフトウエアよりも新しいことを示す場合には、前記記憶されるクライアントソフトウエアのコピーが前記ネットワーク内に接続されたクライアントに転送されるか、あるいはインストールされる、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記ネットワーク内に接続されたクライアントが使用している前記クライアントソフトウエアの前記バージョンに関する前記情報は、前記選択された共用資源にジョブを送信することの許可を得るための前記要求とともに受信される、請求項９に記載の方法。
【請求項１１】
前記選択された共用資源にジョブを送信することの許可を得るための前記要求は、前記ネットワーク内に接続されたクライアントのためのユーザドメインおよびユーザ固有情報を含み、
前記ネットワーク内に接続されたクライアントが前記選択された共用資源にジョブを送信するための権限を有することが検査され、
前記ネットワーク内に接続されたクライアントが前記選択された共用資源にジョブを送信するための権限を持たない場合には、前記ネットワーク内に接続されたクライアントにエラーコードが送信される、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記ネットワーク内に接続されたクライアントが前記選択された共用資源にジョブを送信することの許可を得るための権限を有する場合には、前記ネットワーク内に接続されたクライアントがどのユーザ優先順位を有するかが検査され、
前記要求は、前記ネットワーク内に接続されたクライアントの前記ユーザ優先順位に応じて前記キュー内に入れられる、請求項１１に記載の方法。
【請求項１３】
前記ジョブのサイズの情報が、前記ネットワーク内に接続されたクライアントから受信される、請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
前記ジョブのサイズの情報が、前記ネットワーク内に接続されたクライアントから受信され、前記ジョブのサイズの前記情報は、前記割り当てられた識別情報が受信されたという前記確認とともに受信される、請求項３に記載の方法。
【請求項１５】
前記ネットワーク内の前記共用資源のステータスが絶えず検査される、請求項１〜１４のいずれか１項に記載の方法。
【請求項１６】
前記ネットワーク内の共用資源のステータスに関する情報、キューに関する情報ならびにクライアントおよびジョブに関する情報が、ジョブの転送を制御し、かつ監視するための第２のサーバに絶えずコピーされる、請求項１〜１５のいずれか１項に記載の方法。
【請求項１７】
サーバの内部メモリにダウンロード可能なコンピュータプログラムであって、該コンピュータプログラムが前記サーバ上で実行されるときに、請求項１〜１６のいずれか１項に記載の方法を実行するソフトウエアコード部を含む、コンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムをダウンロードされたサーバ。
【請求項１９】
ネットワーク内に接続されたクライアントから、該ネットワーク内に接続されたいくつかの共用資源の中から前記クライアントによって選択された１つの共用資源にジョブを転送する方法であって、
前記ネットワーク内に接続された共用資源へのジョブの転送を制御し、かつ監視するためのサーバに、前記ネットワーク内に接続された選択された共用資源に直にジョブを送信することの許可を得るための要求をクライアントが送信するステップであって、前記サーバは、前記ネットワーク内に接続されたクライアントに通信される識別情報を前記ジョブに割り当て、前記選択された共用資源のためにキューに前記要求を入れ、前記キューを絶えず更新し、前記クライアントが前記選択された共用資源に前記ジョブを次に送信するときに、前記ネットワーク内に接続されたクライアントに許可を与えるように構成されている、要求を送信するステップと、
前記クライアントが、前記サーバから前記識別情報のメッセージを受信するステップと、
前記クライアントが、前記ジョブを準備し、かつ記憶するステップと、
前記クライアントが、前記サーバから、前記ジョブを前記選択された共用資源に送信す
ることができるという許可を受信するステップであって、該許可は前記識別情報を含み、前記識別情報に基づいて前記ジョブを特定することができる、許可を受信するステップと、
前記クライアントが、前記選択された共用資源に前記ジョブを直に送信するステップと、
前記クライアントが、前記選択された共用資源から、該共用資源によって前記ジョブが首尾良く完了されたという確認、あるいは前記共用資源によって前記ジョブが首尾よく完了されなかったという指標を受信するステップと、
前記クライアントが、前記確認あるいは指標を前記サーバに転送し、前記キューから前記要求を削除できるようにするステップとを含むことを特徴とする方法。
【請求項２０】
前記共用資源による前記ジョブの完了に関する更新されたステータス情報が、前記許可が前記サーバから受信されてから、前記共用資源によって前記ジョブが首尾良く完了されたという前記確認、あるいは前記共用資源によって前記ジョブが首尾よく完了されなかったという前記指標が前記共用資源から前記クライアントに受信され、前記サーバに転送されるまでの間に前記サーバに繰返し送信され、そのような更新ステータス情報がないことは、前記ネットワーク内に接続されたクライアントのオペレーションエラー、あるいは前記クライアントと前記サーバとの間の通信における通信エラーを示す、請求項１９に記載の方法。
【請求項２１】
前記割り当てられた識別情報の前記メッセージが受信されたという確認が前記サーバに送信される、請求項１９または２０に記載の方法。
【請求項２２】
前記ジョブを前記選択された共用資源に送信することができるという前記許可が受信されたという確認が前記サーバに送信される、請求項１９〜２１のいずれか１項に記載の方法。
【請求項２３】
前記許可が受信されたという前記確認は、前記ジョブが前記共用資源に送信されたか、あるいは送信されることになるという確認でもある、請求項２２に記載の方法。
【請求項２４】
前記共用資源はプリンタであり、前記ジョブはプリントジョブである、請求項１９〜２３のいずれか１項に記載の方法。
【請求項２５】
前記共用資源は送信装置、表示装置、あるいはデータを記憶するための装置であり、前記ジョブはデータをそれぞれ送信、表示あるいは記憶するためのジョブである、請求項２４に記載の方法。
【請求項２６】
前記ネットワーク内に接続されたクライアントが前記選択された共用資源と通信するために使用している前記クライアントソフトウエアのバージョンに関する情報が前記サーバに送信され、
前記サーバによって記憶されるクライアントソフトウエアのコピーが、前記ネットワーク内に接続されたクライアントが使用している前記クライアントソフトウエアのバージョン番号よりも後のバージョン番号を有する場合には、前記コピーが前記サーバから受信される、請求項１９〜２５のいずれか１項に記載の方法。
【請求項２７】
前記ネットワーク内に接続されたクライアントが使用している前記クライアントソフトウエアの前記バージョンに関する前記情報は、前記選択された共用資源にジョブを送信することの許可を得るための前記要求とともに前記サーバに送信される、請求項２６に記載の方法。
【請求項２８】
前記選択された共用資源にジョブを送信することの許可を得るための前記要求は、前記ネットワーク内に接続されたクライアントのためのユーザドメインおよびユーザ固有情報を含み、  前記ネットワーク内に接続されたクライアントが前記選択された共用資源にジョブを送信するための権限を持たない場合には、前記サーバからエラーコードが受信される、請求項１９〜２７のいずれか１項に記載の方法。
【請求項２９】
前記ジョブのサイズの情報が前記サーバに送信される、請求項１９〜２８のいずれか１項に記載の方法。
【請求項３０】
前記ジョブのサイズの情報が前記サーバに送信され、前記ジョブのサイズの前記情報は、前記割り当てられた識別情報が受信されたという前記確認とともに前記サーバに送信される、請求項２１に記載の方法。
【請求項３１】
サーバの内部メモリにダウンロード可能なコンピュータプログラムであって、該コンピュータプログラムが前記サーバ上で実行されるときに、請求項１９〜３０のいずれか１項に記載の方法を実行するソフトウエアコード部を含む、コンピュータプログラム。
【請求項３２】
請求項３１に記載のコンピュータプログラムをダウンロードされたクライアント端末。
【請求項３３】
請求項１８に記載の少なくとも１つのサーバと、請求項３２に記載の複数のクライアント端末とを含むネットワーク。
【請求項３４】
前記共用資源は送信装置であり、該送信装置はファクシミリ装置であり、前記ジョブはデータを送信するためのジョブである、請求項７または２５に記載の方法。
【請求項３５】
前記共用資源は表示装置であり、該表示装置はプロジェクタであり、前記ジョブはデータを表示するためのジョブである、請求項７または２５に記載の方法。
【請求項３６】
前記共用資源はデータを記憶するための装置であり、該記憶するための装置はＣＤレコーダ、ＤＶＤレコーダなどであり、前記ジョブはデータを記憶するためのジョブである、請求項７または２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内に接続されたクライアントが、そのネットワーク内の共用資源を使用するための技法に関する。その技法は特に、限定はしないが、クライアントからネットワーク内に接続されたプリンタに直にプリントジョブを転送するために設計される。
【０００２】
具体的には、本発明は、ネットワーク内に接続されたクライアントによる共用資源の使用を、サーバから制御し、かつ監視する方法と、使用を制御し、かつ監視する該方法を実行するコンピュータプログラム製品と、共用資源の使用を制御し、かつ監視する該方法を実行する該コンピュータプログラム製品をインストールされたサーバと、クライアントがネットワーク内の共用資源を使用する方法と、共用資源を使用する該方法を実行するコンピュータプログラム製品と、共用資源を使用する該方法を実行する該コンピュータプログラム製品をインストールされたクライアント端末と、複数の該クライアント端末と、少なくとも１つの該サーバとを含むネットワークとに関する。
【背景技術】
【０００３】
ネットワークのための従来の印刷システムは、サーバにおいてプリントジョブを記憶するという原理に基づいており、それは、ネットワーク内のクライアントが各プリントジョブをプリントサーバに送信することを含み、プリントサーバはプリントジョブを受信し、プリントジョブを処理し、さらにそのプリントジョブを印刷用のプリンタに送信する。
【０００４】
図１には、そのようなネットワークの一例が示される。ネットワークは複数のクライアントあるいはユーザコンピュータ１０１を含み、それらのクライアントは複数のプリンタ１０３とともに、クライアントネットワーク１０５内に接続される。クライアントネットワーク１０５はさらにサーバネットワーク１０７に接続され、オプションとして、それらのネットワーク間にはルータ１０９が介在する。サーバネットワーク１０７は、とりわけ、複数の中央プリントサーバ１１１を含み、中央プリントサーバ１１１はクライアント１０１からのプリントジョブを監視および制御し、それらのプリントジョブをプリンタ１０３に送信する。
【０００５】
クライアントはプリントサーバ１１１のうちの１つにプリントジョブを送信する。それが矢印１１３によって概略的に示される。送信されるデータの量は通常、対応するファイルがクライアントのローカルハードディスクドライブ上にあるときの３倍である。プリントジョブがプリントサーバ１１１に到達すると、そのプリントジョブはプリントサーバのハードディスクドライブにローカルにスプールされ、そのためサーバ上には記憶空間が必要とされる。プリントサーバ１１１がそのプリントジョブを適当なプリントキュー上（すなわち、選択されたプリンタのためのキュー内）にスプールしており、かつ現在のプリントジョブが印刷される時点になったときに、プリントサーバ１１１はそのプリントジョブを印刷用の選択されたプリンタに送信する。それが矢印１１５によって概略的に示される。
【０００６】
図１に示されるように、プリントジョブはプリンタに最短距離で送信されるのではなく、プリントサーバ１１１を経由して遠回りする。
特許文献１は、プリントジョブのためのジョブトークンプリンタ割当てシステムを記載しており、クライアントがプリントサーバにトークンを送信し、そのトークンは、印刷されることになるプリントジョブのプロファイルを含む。プリントサーバはそのトークンを構文解析し、そのプリントジョブに相応しいプリンタを特定し、選択されたプリンタのネ
ットワークアドレスおよび名前を含む、選択プリンタトークンをクライアントに返送する。その後、クライアントは、選択プリンタトークンに付随するプリントジョブを適切なプリンタに送信する。このようにして、プリンタサーバによって、プリントジョブが、そのプリントジョブに適したプリンタに割り当てられる。
【特許文献１】ＰＣＴ国際出願国際公開第９９／３８０６８号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
プリントサーバを使用する上記の概念が、各プリントサーバによって取り扱うことができるプリントキューの数およびプリントジョブの数がサーバのメモリ量、処理能力および記憶空間によって制限されるという問題を抱えていることを、本発明の発明者等は理解している。プリントサーバに高い負荷がかかるとき、プリントジョブの処理は遅くなる。
【０００８】
大きなネットワークは多数のプリントサーバを必要とし、それはハードウエア、ソフトウエアならびに運用および保守の形で高いコストを伴う。
既知のプリントサーバの概念が抱える別の問題は、プリントジョブがネットワーク上で２度、すなわちコンピュータからプリントサーバに一度と、プリントサーバから印刷されることになるプリンタにもう一度、送信されることである。これは、帯域幅の需要が増加することを意味しており、大きなネットワーク、あるいは印刷の頻度が高いネットワークにおいて特に、需要が大きく、コストが高くなる可能性があることを意味する。
【０００９】
特許文献１に記載されるジョブトークンプリンタ割当てシステムは実際に、ネットワーク上で２度、プリントジョブを送信するという上記の問題を解決する。そのプリントサーバは大きなプリントジョブをスプールする必要はなく、クライアントからのトークンに含まれる特徴(feature) を特定し、そのプリントジョブに相応しいプリンタを割り当てることしか必要としない。しかし、特許文献１に記載されるシステムは、書籍などの印刷が大量に実行され、印刷に関する柔軟性が不要であるような、編集などのためのシステムに関連するように思われる。特許文献１に記載されるシステムによれば、たとえば、クライアントは多くのプリンタの中からプリンタを選択できない上に、そのシステムは、選択されたプリンタがある時点で印刷能力を有するか否かを確認するために構文解析することもできない。システムは、種々のキューにおけるプリントジョブの進み具合に応じて、プリントキューをうまく処理しようとすることもなければ、印刷を制御することもない。さらに、クライアントからのいくつかのプリントジョブを同時に処理する能力がないばかりか、特にプリントジョブが完了した場合に、それらのプリントジョブが実際にどのように実行されるかを監視する能力もない。
【００１０】
さらに、ネットワーク上で共用資源が用いられるときに、同様の問題が生じることを本発明の発明者等は理解している。たとえば、ネットワーク内のデータ記憶媒体上にデータを記憶するための装置、たとえばＣＤあるいはＤＶＤレコーダ（ライタ）の場合、或るジョブが記録用の共用資源に送信されることになるときに、上記のプリントサーバに類似のサーバから制御および管理を実行する場合があり、その結果として同様の問題が生じる。別法では、共用資源は、或る時点で１人のユーザだけがその資源を使用できるようにし、キューが全く存在しないようにして、ネットワークに接続される。
【００１１】
それゆえ、本発明の目的は、上記の問題および制約のない、ネットワーク内に接続されたクライアントから、そのネットワーク内に接続され、かつクライアントによって選択される共用資源、詳細にはプリンタ、ファクシミリ装置、プロジェクタあるいは記憶媒体上にデータを記憶するための装置に、ジョブを転送するための技法を提供することである。
【００１２】
これに関して、本発明の或る特定の目的は、ジョブを失うという危険がない、ネットワ
ーク内に接続されたクライアントからジョブを直に、かつ柔軟に転送するための、そのような技法を提供することである。
【００１３】
本発明のさらに別の目的は、単純で、頑強で、信頼性が高い、そのような技法を提供することである。
本発明のさらに別の目的は、最小限のハードウエアおよびソフトウエアを使用し、かつ大きなネットワーク、および上記共用資源の使用頻度が高いネットワークにおいて、ジョブを同時に取り扱うことができる、そのような技法を提供することである。
【００１４】
本発明のさらに別の目的は、ネットワーク内に接続されたクライアントから、そのネットワーク内に接続され、かつクライアントによって選択される共用資源へのジョブの転送を、サーバから制御し、かつ監視する方法と、そのような方法を実行するためのコンピュータプログラム製品と、そのようなプログラム製品をインストールされたサーバおよびクライアント端末と、そのようなサーバおよびクライアント端末を含むネットワークとを用いることによって、そのような技法を提供することである。
【課題を解決するための手段】
【００１５】
上記の目的は、添付の特許請求の範囲による方法、コンピュータプログラム製品、サーバ、クライアント端末およびネットワークを用いて、本発明に従って達成される。
チケットベース集中型サーバシステムを用いて、クライアント、およびクライアントが共用資源にジョブを転送するのを制御する。その技法は、ジョブのフローを制御するプログラムが、クライアントおよび集中型チケットサーバの両方に存在するので、独自である。そのプログラムはクライアントによる共用資源の使用を開始および停止し、ジョブのフローはチケットサーバによって制御される。
【００１６】
サーバによって固有の識別情報がジョブに割り当てられ、その固有の識別情報はサーバによってクライアントに通知される。それにより、クライアントは、共用資源によって実行されることになるいくつかのジョブを、間をあけずに次々に開始することができ、これらのジョブはチケットサーバによって個別に取り扱われる。
【００１７】
個々のジョブが共用資源によって首尾良く完了されたという確認、あるいは共用資源によってジョブが成功していないという指標が、クライアントからチケットサーバによって受信され、その後、対応する要求がキューから削除される。
【００１８】
クライアントが共用資源を使用している間に、共用資源によるジョブの完了に関する更新ステータス情報が繰返し送信されることが好ましく、チケットサーバにおいてそのような更新ステータス情報が存在しない場合には、クライアントにおけるオペレーションエラー、あるいはクライアントとチケットサーバとの間の通信の通信エラーを示す。これは、チケットサーバが、その状態を検査し、その問題を処理するか、あるいはジョブおよび／または共用資源のためのステータスを変更するようにトリガするであろう。ジョブは、キューから削除されても、削除されなくてもよい。サーバにはタイマをインストールすることができ、種々の遅延によって異なる動作を起動することができる。
【００１９】
ネットワークが２度用いられる場合とは対照的に、チケットベースシステムを用いることにより、ネットワーク利用度が大きく制限される。
本発明による技法は、クライアントがデータをサーバに送信し、その後、サーバがそれを共用資源に送信する代わりに、クライアントが使用を処理し、共用資源に任意のデータを直に送信するという事実によって、集中型サーバにかかる負荷も小さくしている。
【００２０】
さらに、チケットベースの概念は、ジョブの優先順位を変更する能力を高めることに繋
がる。たとえば、ジョブが許可を与えられる前に中断された場合には、そのジョブはネットワーク上に全く送信される必要はない。これに対して、既知の技法では、プリントジョブは常にクライアントからプリントサーバに転送される。
【００２１】
また提案される概念は、通常パーソナルコンピュータである最近のクライアント上に存在する、余剰能力および並列処理能力を利用する。より大きなオフィス環境の多くにおいて、電子メール処理、ワードプロセッシングおよびインターネットブラウジングのような処理を簡単にするために、高性能のパーソナルコンピュータが用いられる。これらのコンピュータは、チケットサーバとのバックグラウンド通信に非常に適しており、チケットサーバからの許可時に、共用資源へのジョブの転送を開始する。
【００２２】
本発明のさらに別の利点、およびその特徴は、これ以降に与える本発明の好ましい実施形態の詳細な説明および添付の図面から明らかになるであろう。なお、それらは例示のために与えるにすぎず、それゆえ本発明の制限するものではない。
【００２３】
［図面の簡単な説明］
図１は従来技術によるプリンティング技法が実施されるネットワークの概略図である。
図２は本発明の一実施形態が実施されるネットワークの概略図である。
図２の簡単な説明：
２−１：選択されたプリンタで印刷するために、クライアントがプリンタサーバにジョブＩＤの要求を送信する。
２−２：チケットサーバはリアルタイムデータベース内にプリンタのステータスに関する全ての情報を有し、選択されたプリンタがネットワーク上でアクティブである場合には、チケットサーバはクライアントにジョブＩＤを送信する。
２−３：クライアントがジョブＩＤを受信し、プリンタ上で印刷を実行する。
２−４：クライアントとチケットサーバとの間で多くて２０ｋｂのデータが送信される。
【００２４】
図３−７は本発明の好ましい実施形態の種々の態様を示す流れ図である。
図３の簡単な説明：
３−１：シーケンス、ＤＬＬバージョン、プリントドライババージョン、プリンタ名、ユーザ名およびユーザドメインを送信する。
３−２：何か古すぎるものがないか、あるいはユーザが印刷するのを許されていないかを確認するために、ステップ１において受信された情報を検査し、ステップ４に進む。
３−３：ステップ１において受信されたデータをデータベースに入れ、ＳＱＬサーバによって生成された固有値を取り込み、それをクライアントに返送する。
３−４：エラーコードを読み出し、或る情報のバージョンが古い場合には、新しいバージョンを取り込むために処理されなければならないものを検査する。更新を実行した後に、ユーザに再び印刷するように要求する。ユーザが選択されたプリンタで印刷することを許されていない場合には、ユーザはインタラクティブな選択を実行しなければならない場合がある。その場合、ユーザは、その印刷に対処するためにすべきこと、すなわち印刷をキャンセルするか、あるいは別のプリンタに移ること、を選択することができる。
３−５：ジョブＩＤを受信する。
３−６：シーケンス、ＩＰアドレス、ページ数、プリントジョブのサイズ、ジョブ識別情報、フロントエンド用紙バージョンおよび構成ファイルバージョンを送信する。
３−７：データを処理する。
３−８：データベース内のプリントジョブのための情報を更新し、クライアントに確認を送信する。
３−９：ユーザが許可されていないか？
３−１０：ユーザがプリントジョブを別のプリンタに移すことができるようにするか、あるいはジョブを完全に削除できるようにする。ユーザがプリントジョブを別のプリンタに
移すことを選択する場合には、クライアントはステップ１からやり直さなければならない。
３−１１：クライアントが古すぎたか？
３−１２：クライアントの新しいバージョンを取り込み、クライアントが１つのサービスとして実行される場合には、クライアントは再起動されなければならない。
３−１３：プリントドライババージョンが古すぎたので、プリントドライバを更新し、クライアントを起動する。
３−１４：ＮＡＴでない場合には、ＴＣＰ／ＩＰ接続を閉じる。
図４の簡単な説明：
４−１：シーケンス、ジョブＩＤ、およびプリントジョブの削除を要求するためのエラーコードを送信する。
４−２：データを処理する。
４−３：データベースからプリントジョブを削除し、クライアントにジョブを削除するように命じる。
４−４：ディスク／メモリからジョブを削除する。
図５の簡単な説明：
５−１：サーバがプリントジョブを中断することを要求する。
５−２：データベース内のプリントジョブのステータスを「中断」に変更する。
５−３：プリントジョブの削除を要求するために、クライアントにシーケンスを送信する。
５−４：プリントジョブを削除し、クライアントからジョブが削除されたことをプリンタに通知する。
５−５：データを処理する。
５−６：データベースからプリントジョブを削除する。
図６の簡単な説明：
６−１：プリントキューから第１のジョブを取り込む（最も古いジョブ、そして次に優先順位に従ってソートされている）。
６−２：印刷するためのジョブをハイライトする。
６−３：印刷を開始することをクライアントに通知する。送信されるべき情報はシーケンス番号、ジョブＩＤ、プリンタＩＰアドレス、および印刷のために用いられるべき機能である。
６−４：印刷を開始することができたか？
６−５：データを処理する。
６−６：ジョブのステータスを「印刷中」に更新する。
６−７：許可された最大試行回数よりも多くの試行回数であるか？
６−８：所定の秒数だけ待ち、その後、ステップ４に進む。
６−９：サーバにエラーコードを送信する。たとえば、クライアントがプリンタに接続することができなかった。
６−１０：データを処理する。
６−１１：クライアントから受け取った情報に従ってデータベース内の情報を更新し、プリンタを制御するデーモンによってプリンタを検査する。
６−１２：エラーを生じることなく、そのプリンタから印刷を実行することができたか？６−１３：データを処理する。
６−１４：プリントジョブの情報をデータベース内の個別のテーブルに移し、後にそれを用いて、統計値およびおそらくインボイシング情報を生成することができるようにする。６−１５：サーバにエラーコードを送信する。
６−１６：データを処理する。
６−１７：データベース内の情報を更新し、ジョブを失敗としてハイライトし、プリンタを制御するデーモンによってプリンタを検査する。
図７の簡単な説明：
７−１：キューの動作は停止しているか？
７−２：支援機構に通知する。
７−３：そのプリンタで待機しているプリントジョブを有する全てのクライアントに、そのプリンタが動作していないことを通知する。
７−４：クライアントのためのダイアログウインドウを表示する。そのウインドウにおいて、クライアントはジョブを削除することが可能であること、ジョブを別のプリンタに移すことが可能であること、あるいはプリンタが再び動作するまで待つことが可能であることを受信する。
７−５：クライアントがジョブを削除することを望むか？
７−６：データを処理する。
７−７：データベースからジョブを削除する。
７−８：クライアントがジョブを別のプリンタに移すことを望むか？
７−９：クライアントが選択されたプリンタで印刷することを許可されたか？
７−１０：選択されたプリンタが動作しているか？
７−１１：クライアントが、プリンタが再び動作し始めるのを待つ。
７−１２：プリントジョブを選択されたキューに移す。
７−１３：ユーザが選択されたプリンタで印刷することを許可されなかったことをユーザに通知し、ステップ４からやり直す。
【発明を実施するための最良の形態】
【００２５】
説明することを目的とし、限定することを目的としていない以下の説明では、本発明を完全に理解できるようにするために、特定の応用形態、技法、方法などの具体的な詳細が述べられる。しかしながら、本発明をこれらの具体的な詳細から逸脱する他の実施形態おいて実施できることは当業者には容易に明らかであろう。他の例では、既知の方法、プロトコル、装置あるいは回路の詳細な説明は、不要な詳細によって本説明を不明瞭にしないために省略する。
【００２６】
以下の説明は５つの異なるセクションに分かれており、その最初のセクションでは、本発明の好ましい実施形態による、ネットワーク上で直に印刷するための技法の主な特性が包括的に説明する。その後、チケットサーバおよびクライアントの好ましい実施形態の詳細な説明をそれぞれ続ける。その後、本発明による、共用資源として用いるためのプリンタに対する種々の代替形態を説明する。最後に、その技法の複数の利点を列挙する。
【００２７】
［１．本発明の好ましい実施形態による、ネットワークにおいて直に印刷するための技法の包括的な説明］
図２には、本発明によるプリンティング技法が実施されるネットワークの一例が示されている。ネットワークは、複数のクライアントあるいはユーザコンピュータ２０１を含み、それらは複数のプリンタ２０３とともにクライアントネットワーク２０５内に接続される。クライアントネットワーク２０５はさらに、サーバネットワーク２０７に接続され、オプションとしてそのネットワーク間にルータ２０９が介在する。サーバネットワーク２０７は、チケットサーバ２１１を含み、チケットサーバ２１１は、プリンタ２０３におけるクライアント２０１からの印刷を監視し、かつ制御する。
【００２８】
印刷は以下のようにして実行される。選択されたプリンタで印刷することを望むクライアントは、チケットサーバ２１１に要求を送信し、そのプリンタでプリントジョブを印刷するために許可を得る。そのプリンタが利用可能であり、かつアクティブである、すなわちプリントジョブを受信することができる場合には、チケットサーバ２１１はクライアントに許可を送信し、それにより許可を受信したクライアントは、そのプリントジョブを、印刷するために選択されたプリンタに直に送信する。この目的を果たすために、チケットサーバ２１１はプリンタを監視しており、それゆえそのプリンタがアクティブであるか否
かに関する情報、およびそのプリンタがネットワーク上の同じあるいは別のクライアントからのプリントジョブで占有されているか否かに関する情報を有する。
【００２９】
そのプリンタが占有されている場合には、チケットサーバ２１１によって、その要求はキューに入れられる。このキューは絶えず更新され、上記のプリントジョブが次に印刷されることになるときに、チケットサーバ２１１はクライアントに許可を送信し、クライアントはそのプリントジョブを、印刷するために選択されたプリンタに直に送信することができる。
【００３０】
図２において、双方向の矢印２１３は、チケットサーバ２１１とクライアント２０１のうちの１つとの間のシグナリングを示しており、一方、矢印２１５は、クライアントから選択されたプリンタ２０１へのプリントジョブの転送を示す。
【００３１】
プリントジョブは１つの識別情報を割り当てられており、それがクライアントに送信され、結果として、クライアントは識別情報をプリントジョブに関連付けることができる。その後、チケットサーバ２１１がクライアントに許可を送信するとき、その識別情報がその許可の中に含まれ、クライアントが正しいプリントジョブをプリンタに送信できる（クライアントがいくつかのプリントジョブをアクティブにしている場合）。クライアントは、割り当てられた識別情報を受信したという確認を、チケットサーバ２１１に返送することができる。
【００３２】
さらに、クライアントが印刷するための許可を受信したときに、クライアントはチケットサーバ２１１に確認を送信することができる。この確認は、プリントジョブがクライアントによって送信されたか、あるいは送信されることになるという指標も含むことができる。プリントジョブが完了したときには、そのさらなる確認が、クライアントからチケットサーバ２１１に送信されることができるか、あるいはプリントジョブが首尾よく完了されなかった場合には、この指標がクライアントからサーバに送信され、その後、サーバはキューからその要求を削除することができる。
【００３３】
プリンタがアクティブであるときに、プリントジョブの完了に関する更新ステータス情報がクライアントからチケットサーバ２１１に繰返し、詳細には定期的に送信されることが好ましく、そのような更新ステータス情報がチケットサーバ２１１に届かないことは（すなわち２つのステータス更新間の時間が超過していた場合には）、クライアントのオペレーションエラー、あるいはクライアントとチケットサーバ２１１との間の通信における通信エラーが発生したことを示す（プログラムエラーあるいはネットワークエラー）。これは、チケットサーバがその状態を検査し（たとえばプリンタを検査し）、その問題を処理するか、あるいはジョブおよび／またはプリンタのステータスを変更するようにトリガするだろう。ジョブはキューから削除されても、削除されなくてもよい。サーバにはタイマをインストールすることができ、種々の遅延によって種々の動作を起動することができる。エラーが示された場合には、システムの管理者に通知される。
【００３４】
さらに、クライアントを常に更新しておくために、プリンタのステータスに関する情報を、チケットサーバ２１１からクライアントに送信することができる。これについては後にさらに説明される。
【００３５】
クライアントとチケットサーバ２１１との間で送信されるデータの量は通常多くても２０ｋｂであり（本出願人によって開発されたバージョンの場合であり、後に詳細に説明される）、これは、ネットワークが大きな場合であっても、かなりの帯域幅を節約できると同時に、ネットワーク内の１つのサイトだけにチケットサーバ２１１を集中できる可能性を生じさせる。
【００３６】
［２．チケットサーバの好ましい実施形態の詳細な説明］
本発明による、クライアントからプリンタへのプリントジョブの転送を制御し、かつ監視するためのチケットサーバの詳細な説明が以下に記載される。このセクションおよびそれに続くセクションの両方において、本発明の機能およびサーバとクライアントとの間の通信が説明されることに留意されたい。適当な場合には、図３〜図７の流れ図への参照が括弧で示される（流れ図内のステップを、図面の番号と、その後にダッシュと通し番号が続く数字によって与える）。
【００３７】
チケットサーバは以下の構成要素を含む。
□コンピュータ
□データベース
□クライアントからのプリントジョブの要求を受信するプログラム
□プリントキューを取り扱うプログラム
□プリンタステータスを検査するためのプログラムあるいはサーバデーモン
□ファイルおよびプリンタをウインドウズ、ＯＳ／２およびＤＯＳクライアントで共有できるようにするソフトウエア
□複数のチケットサーバ間でデータをコピーするためのプログラム
以下の説明では、ネットワークはＴＣＰ／ＩＰベースのネットワークであると仮定される。変更した後に、本発明は明らかに、任意の種類のネットワークに適用することができる。
【００３８】
［印刷：第１ステージ（図３）］
印刷の初期設定はクライアントによって実行される。チケットサーバがクライアントからプリントジョブの要求を含むメッセージを受信するとき、チケットサーバはクライアントから以下に記載されるデータを受信する（ステップ３−１）。
□シーケンス番号
□クライアントバージョン番号
□オペレーティングシステム
□プリンタドライババージョン
□プリンタ名
□ユーザドメイン
□ユーザ名
クライアントが送信した情報をサーバが読み出したとき、クライアントデータに不備がないかの検査が実行される。すなわち、その情報が以下の規則に従って検査され（ステップ３−２）、何らかの誤りがある場合には、エラーコードが生成される（ステップ３−４およびステップ３−９〜ステップ３−１３）。
【００３９】
受信されたデータが完全であるか否かが検査される。データが完全でない場合には、エラーコードがそのような情報を要求しているクライアントに送信される。クライアントソフトウエアが古い場合には、クライアントは強制的にクライアントソフトウエアをアップグレードすることができる。そのような場合には、このためのエラーコードが送信される。さらに、クライアントが使用しているプリンタドライバが、或る態様において適していないか否か、たとえば、そのドライバにおいてバグなどが見つかり、直ちに変更されるべきであるか否かが検査される。その場合には、このためのエラーコードが送信される。最後に、ユーザがそのプリンタで印刷することを許可されているか否かが検査される（ステップ３−９）。許可されていない場合には、エラーコードがクライアントに送信され、クライアントは別のプリンタを選択するように促される。
【００４０】
エラーコードが送信されることになる場合には、以下の内容に従って送信される。
□シーケンス番号（送信されるエラーコードに対応する）
□エラーコード
そのエラーはログに記録され、その印刷試行において一般的には、サーバの構成要素からそれ以降の挙動が生じることはなく、新たな印刷試行がクライアントによって引き起こされなければならない。
【００４１】
全ての情報が適切であった場合には、サーバはデータベースに情報を入力し、データベースから固有の識別子を受信する（ステップ３−３）。これは後にクライアントとサーバとの間の通信において用いられる。どのプリントジョブが関係しているかをクライアントが知るために、プリントジョブもこの識別子を「付される」（クライアントはいくつかのプリントジョブを同時に取り扱うことができなければならないので、クライアントはプリントジョブ毎に１つの識別子を有し、誤ったプリントジョブを誤ったプリンタに送信するのを防がなければならない）。
【００４２】
識別子は、以下の内容に従って、１つのシーケンスにおいてクライアントに返送される。
□   シーケンス番号
□ジョブＩＤ（上記の識別子）
クライアントが上記のシーケンスを受信したとき（ステップ３−５）、クライアントは、プリントジョブをさらに詳細に記述するデータを返送する（ステップ３−６）。クライアントから受信される情報は以下の通りである。
□シーケンス番号
□クライアントのＩＰアドレス
□ページ数
□バイト数（プリントジョブのサイズ）
受信されたデータはサーバによって処理され（ステップ３−７）、データベース内のプリントジョブの情報が更新される（ステップ３−８）。
【００４３】
そのクライアントがいわゆるＮＡＴ（ネットワークアドレス変換）ネットワーク上にあるか否かをサーバが判断するために、クライアントのＩＰアドレスが送信される。クライアントがＮＡＴネットワーク上にある場合には、異なる方向において、すなわちサーバからクライアントへの接続を再確立するのは多くの場合に非常に難しいので、これが行われる。その場合には、そのプリントジョブに関する全ての通信が完了するまで（すなわち、この説明における全てのステップが実行されるまで）、接続は開いたままにされるであろう。通常の例では、すなわちクライアントがＮＡＴネットワーク上にない場合には、不要なシグナリングオーバーヘッドが生じない最適なプリンティング技法を可能にするために、接続は異なるセッション間で閉じられる。
【００４４】
一部では如何に大きなプリントジョブが送信されているかを或る程度確認するために、また、一部では統計的に記録する理由から、ページ数およびバイト数が収集される。
サーバは或るシーケンスを用いてクライアントに応答し、そのシーケンスは、サーバが作動可能状態であり、クライアントがサーバからのさらに多くの情報を待たなければならないことを伝える（ステップ３−８）。
【００４５】
そのシーケンスは以下の通りである。
□シーケンス番号
先に示されたように、クライアントがＮＡＴネットワーク上にある場合を除いて、その後、クライアントとサーバとの間の接続は閉じられる。
【００４６】
［印刷：第２ステージ（図６）］
サーバは新たなプリントジョブに関してデータベースに絶えず問い合わせを行う。これは、最初に、キュー内にプリントジョブを有する、ネットワーク上のプリンタを見つけるために探索を実行することにより実行され、その後、個々のプリンタのためのキュー内の全てのプリントジョブを見つけるために、各キューが構文解析される。その後、この情報は、タイムスタンプ、すなわちプリントジョブがサーバに到達した時刻によってソートされる。ＦＩＦＯ原理（ＦＩＦＯ、先入れ先出し）が用いられること、すなわち最も古いプリントジョブが最初に処理されることが好ましい。プリントジョブは他の種類の優先順位を用いてソートされることもできる。すなわち、或るプリントジョブが、以前にキュー内にあった他のプリントジョブよりも優先順位が高い場合には、そのキューにおいて、優先順位が高いプリントジョブが、優先順位が低いプリントジョブの前に動かされる。
【００４７】
ネットワーク内のプリンタのステータスを監視するサーバデーモンについて、このセクションの最後に説明する。
サーバが、印刷されるべきプリントジョブを見つけると、そのプリントジョブはプリントキューから取り込まれ（ステップ６−１）、印刷のために選択される（ステップ６−２）。その後、サーバは、そのプリントジョブが印刷されることになるプリンタの情報を取り込む。サーバは、データベースの種々の部分から情報を取り込む。プリンタのためのＩＰアドレス、およびクライアントからプリンタにプリントジョブを送信するために用いられるべき仕組みの種類が収集される。またサーバは、プリンタのステータスが記憶される、データベースの別の部分からも情報を取り込む。ステータスはプリンタを管理するデーモンによって収集される。
【００４８】
プリンタのステータスがＯＫ以外のものである場合には、プリンタが動作していないことを伝えるシーケンスがクライアントに送信され、クライアントが、そのプリントジョブを削除するか、別のプリンタを選択するか、あるいはプリンタが再び動作し始めるのを待つことができるようにする。
【００４９】
その際に送信されるシーケンスは以下の通りである。
□シーケンス番号
□エラーコード
プリンタがアクティブである、すなわち動作しており、かつアクセス可能である場合には、サーバは、以下の内容に従ってクライアントに情報を送信する（ステップ６−３）。□シーケンス番号
□ジョブＩＤ（固有識別子）
□プリンタのＩＰアドレス
□印刷の仕組み
その後、クライアントは、印刷が開始されていることを通知するシーケンスで応答することにより、印刷の開始を確認する（ステップ６−４）
プリンタに接続できなかった場合には、おそらく或る所定の回数だけ試行が失敗した後に（ステップ６−７〜ステップ６−８）、別のシーケンスが送信される（ステップ６−９）。
【００５０】
印刷の開始に成功したとき、以下の内容に従ってシーケンスが送信される。
□シーケンス番号
一方、印刷を開始できなかった場合には、以下のシーケンスが送信される。
□シーケンス番号
□エラーコード（理由）
サーバは、クライアントからの応答を受信すると、それがどのシーケンスであるかを検査する（ステップ６−５およびステップ６−１０）。印刷の開始に成功したとき、サーバは、データベース内のプリントジョブのステータスを「印刷中」に更新する（ステップ６
−６）。一方、プリントジョブを開始できなかった場合には、プリンタの情報を更新し、プリンタを監視するデーモンが、プリンタを直ちに検査すべきであることがわかるようにする（ステップ６−１１）。サーバとクライアントとの間の接続が閉じられる。
【００５１】
印刷中に、図２を参照して先に説明された、クライアントから更新ステータス情報を受信する方法が用いられる（ここでは示さない）。
印刷に成功した後に、クライアントから以下のシーケンスが受信される（ステップ６−１２）。
□シーケンス番号
□ジョブＩＤ
受信されたデータがサーバにおいて処理され（ステップ６−１３）、プリントジョブが首尾良く完了されたという情報がデータベース内の個別のテーブルに移されて、後に統計値、そしておそらくインボイシング情報を生成することができるようにする（ステップ６−１４）。
【００５２】
印刷が完了しなかった場合には、以下の内容に従ってクライアントからシーケンスが受信される（ステップ６−１５）。
□シーケンス番号
□ジョブＩＤ
□エラーコード
サーバが受信データを処理し（ステップ６−１６）、データベース内の情報を更新し、そのプリントジョブを失敗として印を付ける。さらに、プリンタのための情報が更新され、プリンタを監視するデーモンが、プリンタを直ちに検査すべきであることがわかるようにする（ステップ６−１７）。
【００５３】
プリントジョブのサイズ、および該当するプリンタのメモリあるいは記憶容量に応じて、サーバは、１つのプリンタ上で複数のプリントジョブを同時に印刷することを可能する。サーバは、或る特定のプリンタにおいてアクティブである、プリントジョブの数および／またはプリントジョブのバイト数を監視することができる。
【００５４】
サーバはいつでもプリントジョブを中断する可能性がある（図５のステップ５−１）。その際、データベース内のプリントジョブのステータスは「削除中」に変更され（ステップ５−２）、サーバはクライアントに連絡を取り、プリントジョブを削除することを通知し、その後、それを確認する。以下のシーケンスがサーバからクライアントに送信される（ステップ５−３）。
□シーケンス番号
□ジョブＩＤ
クライアントがプリントジョブを削除したとき、以下の内容に従ってシーケンスを返送することにより応答する（ステップ５−４）。
□シーケンス番号
サーバはデータを処理し（ステップ５−５）、データベースからプリントジョブを削除する（ステップ５−６）。
【００５５】
クライアントおよびそのプリントジョブの情報、プリントキューの処理および更新の情報、ならびにプリンタのステータスの情報は通常、先に説明されたものに従ってクライアントから受信されることに留意されたい。それにもかかわらず、これらのさらに多くの情報を得るために、そしておそらくクライアントから受け取った情報を確認するために、サーバはプリンタと直に通信する。これについてはさらに以下に説明される。
【００５６】
［プリンタのステータス検査］
サーバデーモンは絶えずプリンタのステータスを検査する。これは、ＳＮＭＰ−質問（ＳＮＭＰ、簡易ネットワーク管理プロトコル）を個々のプリンタに転送することにより行われる。受信される情報は以下の通りである。
□プリンタのステータス
□トナー情報（レーザプリンタ）
□用紙情報
検査される情報は、プリンタモデルが対応するものによる。多くの場合に、さらに多くの情報、たとえば、レーザプリンタのプリンタドラムが交換されなければならないか、紙詰まりがあるかなどが取り込まれる場合がある。
【００５７】
プリンタステータスがアクティブでない、すなわち「オフライン」である場合には、サーバデーモンは、紙詰まりがあるか否か、トナーが空であるか否か、ドラムが交換されなければならないか否かを検査することにより、この原因を検査しようとする。
【００５８】
データベース内のプリンタのステータスが「オフライン」に更新され、プリントジョブを有するクライアントが、プリンタが動作していないので、クライアントがプリントジョブを移すことができるか、そのままキューに入れておくことができるか、あるいはそのプリントジョブを削除ことができることを、サーバデーモンによって通知される。
【００５９】
またその情報は、プリンタの問題に対応することができる、ヘルプデスクあるいは類似の部門にも送信される場合がある。サーバデーモンが、用紙がないことを確認することができる場合には、その情報をたとえば、その職務（assignment）がプリンタにもう少し用紙を入れることである、或る特定の部門／人に送信することができる。
【００６０】
プリンタを直に検査する必要がある場合には、そのシステムはデータベースも絶えず検査している。システムが直に検査されなければならないプリンタを見つけた場合には、プリンタが通常検査されることになる次の時点まで待つ代わりに、直ちに検査を実行する。これは、たとえば、クライアントがプリンタに接続できないことを報告した場合に行われる。
【００６１】
図７には、キューが予定通りに動作していないことをサーバデーモンが検出する場合の、サーバとクライアントとの間の通信の流れ図が示される。
［冗長性］
チケットサーバのシャットダウンに対処するために、ネットワークは少なくとも２つのチケットサーバを備えることが好ましい。一方のサーバから別のサーバへのトランスペアレントな転送を達成するために、一方のサーバが或る理由によってシャットダウンされるとき、全てのデータがチケットサーバ間でコピーされる必要がある。これは、冗長技法によって実行することができる。
【００６２】
クライアントはおそらく、連携して動作するチケットサーバのうちのいずれか一方を選択する可能性を与えられる。
［３．クライアントの詳細な説明］
そのシステムには、メインプログラムおよび複数のサブプログラムが含まれ、それらは合わせて、クライアントのオペレーティングシステムに応じたクライアントを形成する。メインプログラムはいくつかのプリントジョブを同時に取り扱い、かつ適切に印刷するための適切な情報を処理するように構成される。さらに、それらのプログラムは、１つあるいはいくつかのプリントジョブで何かが起こっている場合には、重要な情報を、そして個々のプリントジョブのステータスの情報をダイアログウインドウに表示するための機能を有する。
【００６３】
クライアントがプリントジョブを開始する、すなわち印刷用にプレインストールされたプリンタにプリントジョブを送信するようにプログラムに要求するとき、メインプログラムがその役割を担う。その後、チケットサーバとの対話が行われる。
【００６４】
クライアントプログラムは、チケットサーバから許可を得るための要求から開始する。これは、ブロッキングソケットあるいはノンブロッキングソケットを用いるＲＰＣによって行われる。メッセージのサイズを最小限に抑えるために、データは１６進法によって送信され、ＸＯＲアルゴリズムによって変形される。
【００６５】
サーバとの最初の対話において、以下の情報が送信される（図３のステップ３−１）。□シーケンス番号
□クライアントバージョン番号
□オペレーティングシステム
□プリンタドライババージョン
□プリンタ名
□ユーザドメイン
□ユーザ名
サーバからの応答が受信され（ステップ３−５）、それは以下のものを含む。
□シーケンス番号
□ジョブＩＤ
クライアントプログラムソフトウエアのプリンタドライバおよび／またはクライアントバージョンが古すぎる場合、あるいは認証されない場合には、上記のシーケンスの代わりにエラーコードシーケンスが用いられるであろう（ステップ３−４）。そのシーケンスは以下の情報を含む。
□シーケンス番号
□エラーコード
これが生じる場合には、クライアントソフトウエアは、サーバから、ドライバあるいはクライアントソフトウエアのいずれかの適切なバージョンをダウンロードするであろう。
【００６６】
クライアントは、サイズに応じて、メモリに直に、あるいはコンピュータのローカルハードディスクドライブ上のカタログに、プリントジョブをスプールする。プリントジョブがメモリあるいはハードディスクドライブにスプールされると、プリントジョブのさらに多くの情報がサーバに送信される。プリントジョブは、サーバによって受信されているジョブＩＤに関連付けられており、それにより、印刷時に、プリントジョブを特定することができる。
【００６７】
以下の情報がクライアントからサーバに送信される（ステップ３−６）。
□シーケンス番号
□ＩＰアドレス
□ページ数
□バイト数
その後、サーバからの情報受信の確認が受信され、最初のダイアログ部分が完了する（ステップ３−８）。
【００６８】
その後、クライアントのプリントジョブの印刷準備ができるまで、あるいはプリンタがもはやアクセスできなくなるまで、クライアントとサーバとの間で、それ以上のデータは送信されない。
【００６９】
クライアントがＮＡＴネットワーク上にない場合には、クライアントはサーバへのＴＣＰ／ＩＰ接続を閉じる（ステップ３−１４）。
印刷が開始されることになるとき、サーバはクライアントとの新たな対話を開始するであろう。この対話はサーバから以下の情報を受信することで開始される（図６のステップ６−３）。
□シーケンス番号
□ジョブＩＤ
□プリンタのＩＰアドレス
□プリンタ接続−プリントジョブが送信されることになる接続の種類
クライアントはサーバに対して、その情報を受信したという確認を返送し、プリンタに対して直に印刷を開始する（ステップ６−４）。シーケンス番号のみが送信される。
□シーケンス番号
クライアントがプリントジョブを送信できない場合、あるいは何かが起こっており、結果としてプリントジョブが完了できなかった場合には、適当なエラーコードを有する新たなシーケンスが送信される（ステップ６−９）。この情報は以下の通りである。
□シーケンス番号
□エラーコード
印刷中に、図２を参照して説明されたような、更新ステータス情報をクライアントから送信する方法を用いることができる（ここでは示さない）。
【００７０】
印刷の準備ができたとき（あるいはこれから準備ができる場合には）、クライアントはチケットサーバにその印刷が完了したことを示す新たなシーケンスを送信する（ステップ６−１２）。このシーケンスは以下の通りである。
□シーケンス番号
□ジョブＩＤ
クライアントがプリントジョブを中断する場合には、クライアントからサーバに以下のシーケンスが送信される（図４のステップ４−１）。
□シーケンス番号
□ジョブＩＤ
□エラーコード
そのデータはサーバによって処理され（ステップ４−２）、プリントジョブはデータベースから削除される。クライアントはサーバからプリントジョブを削除するための命令を受信し（ステップ４−３）、その後、クライアントはメモリあるいはハードディスクドライブからプリントジョブを削除する（ステップ４−４）。
【００７１】
［４．本発明による、共用資源として用いられるプリンタの代替形態］
上記の好ましい実施形態はネットワーク内に接続されたプリンタを使用することに関連して説明されてきたが、本発明はこの点に限定されないことは理解されたい。より一般的には、ネットワーク内に接続された共用資源のために、プリンタ以外のものを用いることができる。この場合には、プリントキューは、共用資源を使用するためのキューと入れ替えられ、プリントジョブは共用資源に送信されることになるジョブと入れ替えられ、印刷はジョブを送信することと入れ替えられる。共用資源には、たとえば、ファクシミリ装置のようなネットワーク上で共有される送信装置、デジタル映写装置のようなネットワーク上で共有されるディスプレイユニット、あるいはＣＤまたはＤＶＤレコーダのようなネットワーク上のデータ記憶媒体にデータを記憶するための共用資源を用いることができる。適当に修正した後に、上記の説明をそのような共用資源装置に当てはめることができる。
【００７２】
［５．その技法の利点］
本発明の利点は、とりわけ以下のものを含む。
□ネットワークの負荷が低減される。本発明では、処理されたジョブが、共用資源に送信される前に、常にクライアントに記憶されるので、必要とされるネットワーク容量が小さくなる。ジョブは常に、共用資源に直に送信される。サーバ上に介在する記憶機構は不要
である。
□スケーラビリティ。本発明はスケーラブルであり、中企業から大企業にまで適合する。その製品は内部帯域幅に関する要求が小さいので、その製品は多国間にわたる団体において都合よく用いることができる。たとえば、各サーバは２００００キューおよび１０００００ジョブを同時に取り扱う能力を有する。
□サーバへの負荷が小さいので、共用資源をより高速に使用することができる。
□サーバにおけるハードディスクドライブ空間の要求が小さい。
□集中管理および編成。集中化された解決手段によって、コスト効率かつ能動的な監視を達成できる可能性が大きくなり、共用資源を最大限に利用することができる。
□高い自由度。本発明は自由度が高く、共用資源の製造業者が対応することができる、今日の市場に存在する大部分のオペレーティングシステムによって用いられることができる。その解決手段は、何も混乱を生じることなく新たな状況に適合することができる。追加の別のモジュールが存在し、それを実装することができる。
□共用資源のための、特にドライバの自動化された配布および更新。新たな種類の共用資源が市場において購入できるようになるとき、あるいは新たなドライバが開示されるとき、これらが試験され、ネットワーク全体にわたって配布されるであろう。システム内の構成要素のパッチおよび更新も同じ手順に従う。
□認証および検査。全ての構成要素およびドライバが、クライアントの環境において実施される前に、認証され、試験される。
□アクセシビリティ。冗長性を用いることにより、高いアクセシビリティが与えられる。□遠隔監視およびサポート。共用資源、特に共用資源がプリンタである場合の用紙およびトナー補給品の監視が管理インターフェースにおいて利用可能である。これは、企業の共用資源においてシャットダウンタイムを最小限に抑えるために、共用資源の保守の計画を容易にし、特に共用資源がプリンタである場合のトナーおよび用紙を補給するのを容易にする。
□経済性。本発明は実施するのが簡単であり、ハードウエア、ソフトウエアおよびネットワーク容量に対する要求が低い。
□共用資源のコストおよび使用状況を全てのレベル、たとえばクライアント、部門、グループあるいは共用資源において監視することができる。
【００７３】
本発明は、図面にも示されている、上記の好ましい実施形態には限定されないことは明らかであり、添付の特許請求の範囲内で変更することができる。
【図面の簡単な説明】
【００７４】
【図１】従来技術によるプリンティング技法が実施されるネットワークの概略図。
【図２】本発明の一実施形態が実施されるネットワークの概略図。
【図３】本発明の好ましい実施形態の種々の態様を示す流れ図。
【図４】本発明の好ましい実施形態の種々の態様を示す流れ図。
【図５】本発明の好ましい実施形態の種々の態様を示す流れ図。
【図６】本発明の好ましい実施形態の種々の態様を示す流れ図。
【図７】本発明の好ましい実施形態の種々の態様を示す流れ図。
【図１】
0004440107.tif 000002
【図２】
0004440107.tif 000003
【図３】
0004440107.tif 000004
【図４】
0004440107.tif 000005
【図５】
0004440107.tif 000006
【図６】
0004440107.tif 000007
【図７】
0004440107.tif 000008