(57)【要約】【課題】ユーザがネットワークからログアウトし、再ログインした場合に、ジョブの終了結果をイベントにより確実に通知することが困難であった。【解決手段】印刷制御装置及び複数のクライアント装置とネットワークを介して接続されるサーバ装置であって、前記複数のクライアント装置のそれぞれにログインしているユーザのリストを保持する保持手段と、前記複数のクライアント装置のログイン状況をそれぞれ取得し、前記リストを更新する更新手段と、前記印刷制御装置から、該印刷制御装置に印刷要求を行ったユーザのログイン状況の問い合わせを受け付ける受け付け手段と、前記問い合わせに応じて、前記リストにおいて前記ユーザがログインしているクライアント装置を特定する特定手段と、特定された前記クライアント装置の情報を前記印刷制御装置へ送信する送信手段とを備える。【選択図】図１
2007280045.tif 000002
【特許請求の範囲】
【請求項１】
印刷制御装置及び複数のクライアント装置とネットワークを介して接続されるサーバ装置であって、
前記複数のクライアント装置のそれぞれにログインしているユーザのリストを保持する保持手段と、
前記複数のクライアント装置のログイン状況をそれぞれ取得し、前記リストを更新する更新手段と、
前記印刷制御装置から、該印刷制御装置に印刷要求を行ったユーザのログイン状況の問い合わせを受け付ける受け付け手段と、
前記問い合わせに応じて、前記リストにおいて前記ユーザがログインしているクライアント装置を特定する特定手段と、
特定された前記クライアント装置の情報を前記印刷制御装置へ送信する送信手段と
を備えることを特徴とするサーバ装置。
【請求項２】
前記クライアント装置の情報には、前記ネットワーク上でのアドレスが少なくとも含まれることを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記送信手段は、前記特定手段により前記ユーザがログインしているクライアント装置を特定できなかった場合に、前記ユーザが現在ログインしていないことを示す情報を前記印刷制御装置へ送信することを特徴とする請求項１又は２に記載のサーバ装置。
【請求項４】
複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置であって、
前記複数のクライアント装置のいずれかからの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報を含む印刷要求を受け付ける受付手段と、
前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御手段と、
前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ手段と、
前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしているクライアント装置が通知された場合に、該クライアント装置に対し前記印刷処理の完了を通知する通知手段と
を備えることを特徴とする印刷制御装置。
【請求項５】
前記ユーザが前記複数のクライアント装置のいずれにもログインしていない旨が前記サーバ装置より通知された場合には、前記問い合わせ手段が再度の前記問い合わせを行い、
前記通知手段は、該再度の問い合わせに応じて前記サーバ装置より前記ユーザがログインしているクライアント装置が通知されるまで、前記印刷処理の完了の通知を抑制することを特徴とする請求項４に記載の印刷制御装置。
【請求項６】
前記印刷制御手段は、前記印刷装置における印刷処理の実行状況を取得する取得手段を備え、
前記問い合わせ手段は、前記実行状況が変化した場合に前記問い合わせを行い、
前記通知手段は、前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしているクライアント装置が通知された場合には、該通知時における最新の実行状況のみを該クライアント装置に通知することを特徴とする請求項４又は５に記載の印刷制御装置。
【請求項７】
複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置であって、
前記複数のクライアント装置のうち第１のクライアント装置からの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報と、前記第１のクライアント装置の第１のホスト名を含む該印刷要求の識別情報とを含む印刷要求を受け付ける受付手段と、
前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御手段と、
前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ手段と、
前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしている第２のクライアント装置の第２のホスト名が通知された場合に、前記第１のホスト名を前記第２のホスト名により置き換えた前記識別情報を含む前記印刷処理の完了通知を、前記複数のクライアント装置に送信する通知手段と
を備えることを特徴とする印刷制御装置。
【請求項８】
印刷制御装置及び複数のクライアント装置とネットワークを介して接続されるサーバ装置の制御方法であって、
前記複数のクライアント装置のログイン状況をそれぞれ取得し、
保持部に保持されている、前記複数のクライアント装置のそれぞれにログインしているユーザのリストを更新する更新工程と、
前記印刷制御装置から、該印刷制御装置に印刷要求を行ったユーザのログイン状況の問い合わせを受け付ける受け付け工程と、
前記問い合わせに応じて、前記リストにおいて前記ユーザがログインしているクライアント装置を特定する特定工程と、
特定された前記クライアント装置の情報を前記印刷制御装置へ送信する送信工程と
を備えることを特徴とするサーバ装置の制御方法。
【請求項９】
前記クライアント装置の情報には、前記ネットワーク上でのアドレスが少なくとも含まれることを特徴とする請求項８に記載のサーバ装置の制御方法。
【請求項１０】
前記送信工程では、前記特定工程において前記ユーザがログインしているクライアント装置を特定できなかった場合に、前記ユーザが現在ログインしていないことを示す情報が前記印刷制御装置に送信されることを特徴とする請求項８又は９に記載のサーバ装置の制御方法。
【請求項１１】
複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置の制御方法であって、
前記複数のクライアント装置のいずれかからの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報を含む印刷要求を受け付ける受付工程と、
前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御工程と、
前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ工程と、
前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしているクライアント装置が通知された場合に、該クライアント装置に対し前記印刷処理の完了を通知する通知工程と
を備えることを特徴とする印刷制御装置の制御方法。
【請求項１２】
前記ユーザが前記複数のクライアント装置のいずれにもログインしていない旨が前記サーバ装置より通知された場合には、前記問い合わせ工程において再度の前記問い合わせが行われ、
該再度の問い合わせに応じて前記サーバ装置より前記ユーザがログインしているクライアント装置が通知されるまで、前記通知工程における通知が抑制されることを特徴とする請求項１１に記載の印刷制御装置の制御方法。
【請求項１３】
前記印刷制御工程は、前記印刷装置における印刷処理の実行状況を取得する取得工程を備え、
前記問い合わせ工程では、前記実行状況が変化した場合に前記問い合わせが行われ、
前記通知工程では、前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしているクライアント装置が通知された場合には、該通知時における最新の実行状況のみが該クライアント装置に通知されることを特徴とする請求項１１又は１２に記載の印刷制御装置の制御方法。
【請求項１４】
複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置の制御方法であって、
前記複数のクライアント装置のうち第１のクライアント装置からの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報と、前記第１のクライアント装置の第１のホスト名を含む該印刷要求の識別情報とを含む印刷要求を受け付ける受付工程と、
前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御工程と、
前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ工程と、
前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしている第２のクライアント装置の第２のホスト名が通知された場合に、前記第１のホスト名を前記第２のホスト名により置き換えた前記識別情報を含む前記印刷処理の完了通知を、前記複数のクライアント装置に送信する通知工程と
を備えることを特徴とする印刷制御装置の制御方法。
【請求項１５】
請求項８乃至１４のいずれかに記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、印刷制御装置及びそれらの制御方法、コンピュータプログラム並びに記憶媒体に関する。
【背景技術】
【０００２】
近年のネットワーク環境では、ＤＨＣＰ(Dynamic Host Configuration Protocol)を利用したネットワークが一般化している。ＤＨＣＰを利用したネットワークでは、ＰＣ（パーソナル・コンピュータ）がネットワークに参加した時点で、ネットワークに参加するＰＣの識別番号であるIPアドレスが決まる。
【０００３】
また、ネットワークを介して、ＰＣ等からプリンタに印刷するシステムが広く普及している。その環境においては、プリンタから得た印刷結果を印刷指示したＰＣに即時に通知するアプリケーションが存在する。
【０００４】
ネットワークを介して、印刷指示したユーザに印刷結果を知らせる方法として、特許文献１には次のような発明が提案されている。即ち、クライアント・サーバーシステムにおいて、イベント購読ユーザがログインしているときには、イベントをクライアントＰＣ宛に送信し、ログアウトするとイベント送信を停止・無効化する（特許文献１を参照。）。
【０００５】
これ以外にも、より具体的に以下のような方法がある。
【０００６】
＜CJLのジョブ終了通知＞
まず、ＣＪＬに従ったジョブ終了通知がある。ＰＣは、割り当てられているIPアドレスを印刷ジョブに付加し、プリンタへ送信する。印刷ジョブを受け取ったプリンタは、印刷完了後に印刷ジョブに付加されたIPアドレスに従って、ＰＣにジョブ終了通知を行う。通知を受け取ったＰＣ上のアプリケーションは、ユーザにジョブの終了を知らせる。このように、ＣＪＬのジョブ終了通知では、印刷ジョブに付された、印刷指示時点においてユーザが使用するＰＣのＩＰアドレスに基づいてユーザへの印刷完了通知が行われることとなる。
【０００７】
しかし、ユーザがジョブ終了通知を受けるまで同一のＰＣにログインしているとは限らない。即ち、ネットワーク上のＰＣからの印刷指示後にログアウトし、一定時間後に再びログインするというネットワークの利用方法が考えられる。この場合、ＰＣはネットワークに２度ログインすることになり、必ずしも同じIPアドレスが割り当てられるとは限らない。
【０００８】
従って、プリンタからのジョブ終了通知は、ユーザーがジョブ作成時に使っていたＰＣに割り当てられていたIPアドレス宛に送付されることになり、印刷指示を行ったユーザーにはジョブの終了通知が届かない虞がある。この場合、該IPアドレスが他人が使用中のＰＣに割り当てられている場合、他人にジョブ終了通知がなされるという問題もあった。
【０００９】
＜CPCAのジョブ終了通知＞
別の方法として、オフィス機器のための制御コマンド群であるＣＰＣＡ（Common Peripheral Controlling Architecture）に従ったジョブ終了通知がある。
この方法では、ＰＣは印刷ジョブ送信前に、プリンタに対してイベント送付登録をしておき、印刷ジョブに自分のホスト名に相当する任意の文字列や数字からなる一意のジョブID（ジョブ識別子）を付加してプリンタに送付する。ジョブIDが付いた印刷ジョブを受け取ったプリンタは、印刷完了後に、ネットワークを介してプリンタに接続可能な全てのＰＣに対し、ジョブIDを付加してイベントを送付する。ジョブID付きのイベントを受け取った各ＰＣ上のアプリケーションは、ジョブIDを見て、自分のホスト名に相当する文字列や数字を見つけると、ユーザにジョブの終了した旨を知らせる。一方、ジョブIDが自分のホスト名に対応しない場合にはジョブを破棄する。
【００１０】
この方法でも、ユーザが印刷ジョブ送信後にＰＣからログアウトして、別のＰＣにログインしていた場合は、イベントに埋め込まれたジョブＩＤのホスト名と、再ログイン後のＰＣのホスト名とが不一致となる。従って、再ログイン後のＰＣのアプリケーションがジョブＩＤ付イベントを受け取ったとしても、自ＰＣ宛と判断できず、捨ててしまうという問題がある。
【００１１】
更に、以下のような方法も考えられる。まず、ネットワーク上の全クライアントＰＣは、デバイスに対しジョブ状態変化イベント通知登録をしておく。デバイス側では、ジョブオーナ名をジョブの状態変化イベントに付加してＰＣに返す。そして、イベントを受けたクライアントＰＣのアプリケーションは、イベントに付加されているジョブオーナ名と現在ログイン中のユーザ名とが一致する場合にのみ、ジョブ結果を該ユーザに通知するものである。
【００１２】
この方法によれば、印刷実行したユーザが別のＰＣに再ログインした場合でも、再ログイン先のＰＣにイベントが送信され、ユーザ名とオーナ名が一致する限りにおいて、別ＰＣで動作するアプリケーションでもジョブ結果を通知できる。
【００１３】
しかしながら、これはユーザが共通のユーザ名を使用している場合に限られ、例えば再ログイン先のＰＣでユーザ名として『Guest』という共通ユーザ名を使った場合には、通知を受けることができない。また、ユーザ名『Guest』で印刷指示を行った場合には、誰が印刷してもジョブ結果が通知されてしまうことになる。更に、ネットワークやデバイスの制限により、デバイスから通知されるオーナ名が特定名（例『anonymous』）に固定される場合、ログインユーザ名とオーナ名が一致せず、結果をユーザに通知することができない。
【特許文献１】特開２００４−１９９３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
以上のように、従来は、ユーザがネットワークからログアウトし、再ログインした場合に、ジョブの終了結果をイベントにより確実に通知することが困難であった。
【課題を解決するための手段】
【００１５】
上記課題を解決するための本発明は、実施形態のある側面において、印刷制御装置及び複数のクライアント装置とネットワークを介して接続されるサーバ装置であって、前記複数のクライアント装置のそれぞれにログインしているユーザのリストを保持する保持手段と、前記複数のクライアント装置のログイン状況をそれぞれ取得し、前記リストを更新する更新手段と、前記印刷制御装置から、該印刷制御装置に印刷要求を行ったユーザのログイン状況の問い合わせを受け付ける受け付け手段と、前記問い合わせに応じて、前記リストにおいて前記ユーザがログインしているクライアント装置を特定する特定手段と、特定された前記クライアント装置の情報を前記印刷制御装置へ送信する送信手段とを備える。
【００１６】
上記課題を解決するための本発明は、実施形態の他の側面において、複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置であって、前記複数のクライアント装置のいずれかからの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報を含む印刷要求を受け付ける受付手段と、前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御手段と、前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ手段と、前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしているクライアント装置が通知された場合に、該クライアント装置に対し前記印刷処理の完了を通知する通知手段とを備える。
【００１７】
上記課題を解決するための本発明は、実施形態の更に他の側面において、複数のクライアント装置及びサーバ装置とネットワークを介して接続される印刷制御装置であって、前記複数のクライアント装置のうち第１のクライアント装置からの印刷要求であって、少なくとも該印刷要求を行ったユーザに関する情報と、前記第１のクライアント装置の第１のホスト名を含む該印刷要求の識別情報とを含む印刷要求を受け付ける受付手段と、前記印刷要求に応じた印刷処理を印刷装置に実行させる印刷制御手段と、前記ユーザのログイン状況を前記サーバ装置に問い合わせる問い合わせ手段と、前記問い合わせに応じて前記サーバ装置から前記ユーザがログインしている第２のクライアント装置の第２のホスト名が通知された場合に、前記第１のホスト名を前記第２のホスト名により置き換えた前記識別情報を含む前記印刷処理の完了通知を、前記複数のクライアント装置に送信する通知手段とを備える。
【発明の効果】
【００１８】
本発明によれば、ユーザがネットワークからログアウトし、再ログインした場合でも、ジョブの終了結果をイベントにより通知することできる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら本発明の実施の形態に係る印刷システムについて説明する。
【００２０】
図１は、本発明の実施の形態にかかる印刷システムの構成を示すブロック図である。図１において、サーバ（以下、プリントサーバと呼ぶ）１０１は、ネットワークケーブルによってネットワーク１０６に接続された情報処理装置である。プリントサーバ１０１は、ネットワーク１０６で使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。また、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えており、複数のプリンタの管理も行っている。
【００２１】
プリントサーバ１０１は更に、クライアント１０２〜１０４より印刷要求が出された印字データを含む印刷ジョブを格納して印刷する機能を備える。また、クライアント１０２〜１０４より印字データを含まないジョブ情報のみを受け付けてクライアント１０２〜１０４の印刷順序を管理し、印刷の順番が来たクライアントに対して印字データを含む印刷ジョブの送信許可を通知することもできる。更に、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得してクライアント１０２〜１０４に通知したりする機能を揃えている。
【００２２】
クライアント１０２〜１０４は、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続された情報処理装置であって、アプリケーションプログラム等の各種のプログラムを実行可能である。また、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、プリンタドライバは複数のプリンタをサポートするものである。更に、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えている。
【００２３】
以上においてプリントサーバ１０１及びクライアント１０２〜１０４は、情報処理装置であって、汎用のパーソナルコンピュータで実現することができる。また、プリントサーバ１０１は、クライアント１０２〜１０４としての機能を併せて持つこともできる。プリントサーバ１０１及びクライアント１０２〜１０４には、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００２４】
なお、以下では説明の簡単のために、クライアント１０２〜１０４のうち、特にクライアント１０２について説明する。但し、クライアント１０２についての説明事項は、クライアント１０３及び１０４にも同様に適用可能である。
【００２５】
次に、ネットワークプリンタ１０５は印刷装置であって所定のネットワークインタフェースを介してネットワーク１０６に接続されている。ネットワークプリンタ１０５は、クライアント１０２より送信される印字データを含む印刷ジョブを解析して１ページずつイメージに変換して、１ページ毎に印刷する。このネットワークプリンタ１０５は、電子写真方式を採用したレーザービームプリンタ、インクジェット方式を採用したインクジェットプリンタ、熱転写方式を利用したプリンタ等の様々な方式のもののうち何れであってもよい。ここで、ネットワークプリンタ１０５は、単体の印刷装置として実現されても良い。或いは、プリンタエンジンを搭載する印刷装置と、印刷ジョブを解析して１ページずつイメージ変換を行って印刷装置に供給し、印刷装置における印刷処理を制御する印刷制御装置の組合せにより実現されても良い。
【００２６】
ネットワーク１０６にはプリントサーバ１０１、クライント１０２、ネットワークプリンタ１０５等が接続されている。ネットワーク１０６は、好ましくはローカル・エリア・ネットワーク（ＬＡＮ）として実現される。
【００２７】
次に、図２を参照して、情報処理装置としてのプリントサーバ１０１又はクライアント１０２、及び、ネットワークプリンタ１０５のハードウェア構成の一例を説明する。
【００２８】
図２において、情報処理装置としてのプリントサーバ１０１又はクライアント１０２と、ネットワークプリンタ１０５とは、ネットワーク１０６により接続されている。
【００２９】
２００はプリントサーバ１０１やクライアント１０２の全体的な動作を制御するの制御手段としてのＣＰＵである。ＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行する。また、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３０】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００３１】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブである。このＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。
【００３２】
２０５は外部記憶装置の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等が格納されている。さらにスプーラがここに確保される。このスプーラは、クライアント１０２においてはクライアントスプーラであり、プリントサーバ１０１ではサーバスプーラである。また、プリントサーバ１０１では、クライアント１０２から受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶装置に生成されて格納される。
【００３３】
２０６はキーボード（指示入力部）であり、ユーザがクライアント１０２に対して、また、オペレータや管理者がプリントサーバ１０１に対して、デバイスの制御コマンドの命令等を入力するものである。２０７はディスプレイ（表示部）であり、キーボード２０６から入力されたコマンドや、プリンタの状態等を表示するものである。２０８はシステムバスであり、各ブロック間のデータの流れを司るものである。
【００３４】
本実施形態では、ネットワークプリンタ制御プログラム及び関連データはＦＤ２０４から直接にＲＡＭ２０２にロードして実行することができる。また、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にＨＤ２０５にインストールされているネットワークプリンタ制御プログラムをＲＡＭ２０２にロードするようにしてもよい。
【００３５】
なお、ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接にＣＰＵ２００で実行することも可能である。
【００３６】
次に、印刷制御装置としてのネットワークプリンタ１０５のハードウェア構成の一例を説明する。ネットワークプリンタ１０５は、詳細を後述する接続部２２６、データ制御部（プリンタエンジン）２２５、操作部２２４、外部メモリ２２３、ＰＣＰＵ２２０、ＰＲＡＭ２２２、及びＰＲＯＭ２２１を主要な構成要素とする。これらの構成要素は、システムバス２２７を介して互いに接続されている。
【００３７】
プリンタＣＰＵ（ＰＣＰＵ）２２０は、ネットワークプリンタ１０５の全体制御を司るものである。ＰＣＰＵ２２０は、後述するＰＲＯＭ２２１或いは外部メモリ２２３に記憶された制御プログラムに基づいて、接続部２２６で受信したプリンタ制御コマンド（送信データ）より、画像信号をデータ制御部２２５に送信する。
【００３８】
プリンタＲＡＭ（ＰＲＡＭ）２２２は、ＰＣＰＵ２２０の主メモリとして、ＰＣＰＵ２２０による制御実行時、ワークデータエリアとして使用される各種データの一時記憶領域を備えている。外部メモリ２２３は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。プリンタＲＯＭ（ＰＲＯＭ）２２１はプリンタ内部メモリであり、外部メモリと同様に、各種データやネットワークプリンタ１０５を制御するプリンタ制御プログラム等を記憶している。
【００３９】
データ制御部２２５はプリンタエンジンであり、ＰＣＰＵ２２０により制御され、ＰＲＯＭ２２１、或いは外部メモリ２２３に記憶された制御プログラムよりシステムバス２２７を介して出力された画像信号を受け、実際の印刷処理を行う。データ制御部２２５は、印刷制御装置内に格納されていても良いし、印刷制御装置の外部に設置されるプリンタとしての印刷装置において実現され、印刷制御装置とケーブル等で接続されても良い。
【００４０】
操作部２２４は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作を受けたり結果を表示するものである。オペレータは操作部２２４を介して本実施形態に対応するネットワークプリンタ１０５の設定を指示したり確認することが可能である。
【００４１】
２２６は接続部であり、ネットワーク１０６を介して情報処理装置１０１等の接続部２１０に接続し、印刷制御コマンド（送信データ）を受信したり、ネットワークプリンタ１０５内部の状態等を通知することも可能である。
【００４２】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００４３】
［第１の実施形態］
以下に、CJLのジョブ終了通知に関連する実施形態として、本発明の第１の実施形態について説明する。まず、図３は、プリントサーバ１０１やクライアント１０２で作成されるジョブスクリプトの一例を示す図である。
【００４４】
印刷データ３０４の前後で、PJL（Printer Job Language）コマンドを用いて、ジョブ属性が設定される。ジョブ属性を設定するための形式は『@PJL コマンド = "パラメータ"』であり、パラメータを必要としないコマンドのときは、『=』以下が省略可能となっている。たとえば、『JOB NAME』コマンド３０２は、『"+UDP172.024・・・"』をパラメータとして持ち、パラメータがジョブ識別情報として扱われることとなる。また、同じパラメータを持つ『EOJ NAME』コマンド３０５を受け付けるまで同一のジョブとして扱われる。
【００４５】
図３において、『JOB NAME』コマンド３０２のパラメータは、２６バイトのプロトコルアドレスと４０バイトのジョブＩＤとで構成される。プロトコルアドレスのフォーマットは、先頭４バイトで通知プロトコル（図３の例ではＵＤＰ）を指定する。そして、続く２６バイトでプロトコル規定のアドレス（図３の例では、IPアドレス 192.024.159.166 に、ポート番号 11D7）を指定し、残りがスペースで埋められる。ジョブＩＤはジョブ投入したクライアントが指定する任意の数字や文字列からなり、ジョブ毎に異なり、ジョブを特定するものである。図３の場合、ジョブＩＤは“10000005PC-ABC            00000002”となる。
【００４６】
このようなジョブスクリプトを受け取ったデバイスは、ジョブ処理終了後に、『JOB NAME』コマンド３０２で指定されたパラメータを用いてジョブ処理終了を通知する。即ち、パラメータに記載のプロトコルアドレスに、UDPプロトコル所定の方法で『JOB NAME』コマンド３０２のパラメータ部をデータとして送信する。
【００４７】
次に、図４を参照して情報処理装置から情報送信する際に利用されるパケットのデータ構成の一例について説明する。図４において、４０１はパケットを識別するためのヘッダ部である。４０２は、オペレーションコード部であり、パケットの動作を特定するためのコードが設定される。４０３はサイズ部であり、パラメータのサイズが設定される。４０４はパラメータ部であり、オペレーションコマンド４０２に対応するパラメータが設定される。
【００４８】
次に、図７を参照して、本実施形態に対応するネットワークプリンタ１０５の動作の一例を説明する。以下では説明の簡単のために、イベントの例としてジョブ完了を通知する場合を説明する。図７のフローチャートに示す処理は、ＰＲＯＭ２２１或いは外部メモリ２２３に記憶された対応するプログラムをＰＲＡＭ２２２に読み出して、ＰＣＰＵ２２０が実行することで実現されるものである。
【００４９】
ステップＳ７０１では、ネットワーク１０６を介し、接続部２２６を経由して情報処理装置としてのクライアント１０２からデータを受信したか否かが判定される。もし、データを受信したと判定された場合には（ステップＳ７０１において「ＹＥＳ」）、ステップＳ７０２に移行する。一方、データを受信しない場合には（ステップＳ７０１において「ＮＯ」）、データ受信の監視を継続する。
【００５０】
次にステップ７０２では、ＰＣＰＵ２２０がステップＳ７０１で受信されたデータを解析し、データ中の解析対象がジョブ設定に関するデータであるか否かが判定される。ここで、もしＰＪＬコマンドに『JOB NAME』コマンド３０２や『OUTPUT PRINTER』コマンド３０３が含まれる場合には、ジョブ設定に関するデータであると判定される。
【００５１】
ジョブ設定に関するデータであると判定された場合（ステップＳ７０２において「ＹＥＳ）、ステップＳ７０３に移行する。ステップＳ７０３では、受信したデータから、『JOB NAME』コマンド３０２及び『OUTPUT PRINTER』コマンド３０３のパラメータを抽出する。具体的には、『JOB NAME』コマンド３０３のパラメータからは例えばジョブＩＤ（図３の例では“10000005PC-ABC            00000002”）等を取得することができる。また、『OUTPUT PRINTER』コマンド３０３のパラメータからは、例えばユーザ名（図３の例では、“Ｕ１２３４”）等を取得することができる。取得したジョブＩＤ及びユーザ名等の情報は、ＰＲＡＭ２２２内の予め用意された記憶領域に、ジョブ設定値として設定・保持される。
【００５２】
ステップＳ７０２においてジョブ設定に関するデータでないと判定された場合（ステップＳ７０２において「ＮＯ」）、ステップＳ７０４に移行する。ステップＳ７０４では、ＰＣＰＵ２２０がステップＳ７０１で受信されたデータを解析し、データ中の解析対象が印刷データであるか否かが判定される。図３に示すようなジョブスクリプトの場合、『OUTPUT PRINTER』コマンド３０３と『EOJ NAME』コマンド３０５とで挟まれるデータが印刷データと判定される。印刷データと判定された場合には、ステップＳ７０５に移行して、データ制御部２２５にて印刷データを用いた印刷処理が実行される。もし、印刷データでないと判定された場合には（ステップＳ７０４において「ＮＯ」）、ステップＳ７０１に戻って以上の処理を繰り返す。
【００５３】
ステップＳ７０５における印刷処理が終了した後は、ステップＳ７０６に移行する。ステップＳ７０６では、プリントサーバ１０１に対してユーザが現在使用中のクライアント１０２の情報を、図１２のような要求パケット１２００を送信して問い合わせる。要求パケット１２００は、ＰＣＰＵ２２０により生成され、まず図４のフォーマットに従ってオペレーションコード部４０２に、コード"Get_Machine_info"が設定される（図１２の１２０２）。このコード"Get_Machine_info"は、パラメータ部４０４で指定するユーザが現在使用中の情報処理装置の情報要求を意味するコードである。また、パラメータ部４０４には、ＰＲＡＭ２２２内の記憶領域に保存されているユーザ名（図３の例では、“Ｕ１２３４”）が設定される（図１２の１２０４）。ヘッダ部４０１及びサイズ部４０３は適宜設定される（図１２の１２０１及び１２０４）。作成された要求パケットは、接続部２２６を介してネットワーク１０６を通じてプリントサーバ１０１に送信される。
【００５４】
プリントサーバ１０１は、保存しているユーザ名とクライアントのリストから、図１３に示すような応答パケット１３００を作成し、ユーザが現在使用中のクライアントの情報をネットワークプリンタ１０５に送信する。なお、この応答手順は、図８を参照して後で説明する。ネットワークプリンタ１０５は、プリントサーバ１０１が送信した応答パケット１３００を、ネットワーク１０６を通じ接続部２２６を介して受信する。
【００５５】
次に、ステップＳ７０７では、ＣＰＵ２２０が受信した応答パケット１３００を解析し、パラメータ部１３０４に記載されているユーザが現在使用中の情報処理装置の情報から、ＩＰアドレスを抽出する。
【００５６】
次に、ステップＳ７０８では、ステップＳ７０７で取得されたＩＰアドレスに対し、図１４に示すようなイベントパケット１４００を送付して、イベント配信を行う。イベントパケット１４００は、ＰＣＰＵ２２０によって生成され、まず図４のフォーマットに従ってオペレーションコード部４０２にコード"EV_JOB_STATE_CHANGE"が設定される（図１４の１４０２）。このコード"EV_JOB_STATE_CHANGE"は、予め決められたジョブ状態変化イベントを意味するコードである。また、ヘッダ部４０１及びサイズ部４０３が適宜設定される（図１４の１４０１及び１４０３）。また、パラメータ部４０４に、ジョブ状態を示す属性 state に完了を意味する complete が設定され（図１４の１４０４）、状態変化理由を示す reason 属性にsuccess が設定される（図１４の１４０５）。更に、ジョブＩＤにステップＳ７０３で保存されたジョブＩＤが設定される（図１４の１４０６）。なお、イベントパケットの送付に併せて、ステップＳ７０３で保存したジョブ設定が初期化される。
【００５７】
以上により、ネットワークプリンタ１０５からクライアント１０２へ、印刷処理が終了した旨の通知を行うことができる。
【００５８】
次に、図８を参照して、本実施形態に対応するプリントサーバ１０１の動作の一例を説明する。図８のフローチャートに示す処理は、ＲＯＭ２０１或いはハードディスク装置２０５に記憶された対応するプログラムをＲＡＭ２０２に読み出して、ＣＰＵ２００が実行することで実現されるものである。
【００５９】
まず、ステップＳ８０１では、プリントサーバ１０１によりネットワーク１０６にログインしているユーザ数が取得され、ユーザ数の増加又は減少があったか否かが判定される。ログインユーザ数の取得は、例えばネットワークがＷｉｎｄｏｗｓ（登録商標）ドメインコントローラを利用している場合、予め用意されている関数NetSessonEnum() により、現在ログインしているユーザ名を列挙することができる。
【００６０】
もし、ステップＳ８０１においてユーザ数が増加している場合には（ステップＳ８０１において「増加」）、ステップＳ８０２に移行する。この場合、新規にネットワーク１０６にログインしたユーザが確認されたこととなるので、ステップＳ８０２でＲＡＭ２０２の予め確保された領域に保持されているユーザリストを更新する。このユーザリストは、ネットワーク１０６上に接続された各クライアントにおけるログイン状況を管理するリストであって、ログインユーザのユーザ名、クライアントのホスト名、クライアントに割り当てられているＩＰアドレス等が保持されている。よって、新たにログインが確認されたユーザは、ユーザ名とクライアントのホスト名、ＩＰアドレス等がリストに追加され、リストが更新される。その後、ステップＳ８０４に移行する。
【００６１】
一方、ステップＳ８０１においてユーザ数が減少している場合には（ステップＳ８０１において「減少」）、ステップＳ８０３に移行する。ステップＳ８０３では、取得されたユーザ名とＲＡＭ２０２に保持されているユーザリストとが比較されてログアウトしたユーザが特定され、該ユーザがユーザリストから削除される。その後、ステップＳ８０４に移行する。
【００６２】
こののようにして、プリントサーバ１０１は、ネットワーク１０６上の各クライアントにおけるログイン状況を取得し、取得したログイン状況に基づいてユーザリストを更新することができる。
【００６３】
また、ステップＳ８０１においてユーザ数の増減がない場合には（ステップＳ８０１において「増減なし」）、ステップＳ８０４に移行する。
【００６４】
ステップＳ８０４では、ネットワークプリンタ１０５やクライアント１０２からユーザ問い合わせを受け付けたか否かが判定される。より具体的に、ネットワーク１０６を介し、接続部２１０を通じて図１２に示すような要求パケット１２００を受信したか否かが判定される。ＣＰＵ２００は、受信した要求パケット１２００を解析し、図４のフォーマットに従いオペレーションコード部４０２が"Get_Machine_info"に設定されているかを確認する。もし、"Get_Machine_info"が設定されている場合は、ユーザ問い合わせ要求であると判定することができる。
【００６５】
ステップＳ８０５においてユーザ問い合わせを受け付けたと判定された場合には（ステップＳ８０４にて「ＹＥＳ」）、ステップＳ８０５に移行する。一方、ユーザ問い合わせを受け付けていない場合には（ステップＳ８０４において「ＮＯ」）、ステップＳ８０１に戻る。
【００６６】
続くステップＳ８０６では、プリントサーバ１０１からユーザ問い合わせに対する回答を行う。まず、プリントサーバ１０１のＣＰＵ２００は、受信した要求パケット１２００のパラメータ部４０４からユーザ名（図１２の場合は、“Ｕ１２３４”）を抽出する。抽出したユーザ名に基づき、ＲＡＭ２０２に保存されているユーザリストをリストを検索し、該当ユーザが現在ログインしているクライアントの情報を抽出する。次に、図４に示すフォーマットに従い、図１３に示すような応答パケット１３００を作成する。具体的に、オペレーションコード部４０２に、"Get_Machine_info"コマンドへの応答を示す "Rep_Get_Machine_info" を設定する（図１３の１３０２）。また、ヘッダ部４０１及びサイズ４０３を適宜設定する（図１３の１３０１、１３０３）。更に、パラメータ部４０４に該当ユーザが使用するクライアントのネットワーク１０６上のアドレスであるＩＰアドレス及びホスト名を設定する（図１３の１３０４）。このようにして作成された応答パケットは、接続部２１０を通りネットワーク１０６を介して、要求コマンドの送付先に返信される。
【００６７】
以上のように、本実施形態によれば、印刷指示を行ったユーザがログイン先のクライアントを変更した場合であっても、再ログインしたクライアントに対しイベントパケットを送信することができる。これにより、再ログイン先のクライアントでも、現在自機にログインしているユーザ宛に届いたイベントパケットを利用して、ジョブの状態変化をリアルタイムにユーザに通知することができる。
【００６８】
［第２の実施形態］
次に、CPCAのジョブ終了通知に関連する実施形態として、本発明の第２の実施形態を説明する。本実施形態における印刷システムの構成は、図１及び図２に示したものと同様であり、基本的な動作も第１の実施形態と同様である。以下、本実施形態に特有の構成、機能について説明する。
【００６９】
図５は、本実施形態に対応するジョブスクリプトの一例を示す図である。ジョブスクリプト５００は、図４に示すようなパケットの組み合わせで構成される。ジョブスクリプト５００の先頭パケット５０１から５０３では、オペレーションコード部４０２にジョブ属性を設定するための“Set_job”がそれぞれ指定される。また、パラメータ部４０４には、設定属性としてジョブオーナ名、ドキュメント名、ジョブＩＤがそれぞれ設定され、各設定値がそれぞれ与えられる。即ち、パケット５０１では、ジョブオーナ名として“Ｕ１２３４”、パケット５０２ではドキュメント名として“Test Print”が設定されている。また、パケット５０３では、ジョブＩＤとして“00000001PC-ABC____0000001”が設定されている。
【００７０】
図５のパケット５０４では、オペレーションコード部４０２に“Job_Start”が指定されているが、この場合はパラメータ部４０４に描画命令が指定される。パケット５０４以降、オペレーションコード部４０２が“Job_End”のとき（５０６）に描画命令が終了する。
【００７１】
図５に示すようなジョブスクリプト５００を受け取ったネットワークプリンタ１０５は、ジョブ設定に従ってジョブ情報を作成すると共に、描画命令に従って印刷を行う。
【００７２】
また、図１５を参照して、本実施形態に対応するクライアント１０２からネットワークプリンタ１０５に送信されるイベント配信登録用のパケットの構成例を説明する。オペレーションコード部４０２は、イベント配信登録を意味する “Append_To_List” が指定され、パラメータ部４０４には、イベント発生対象（OBJ）、イベント種(EV)、配信先(IP)等が設定される。クライアント１０２は、モニタリング中のデバイスであるネットワークプリンタ１０５に対し、このようなイベント配信登録パケットを送信し、配信を希望するイベントを登録することができる。
【００７３】
次に、図６を参照してジョブＩＤの構成例を説明する。ジョブＩＤ６００は、先頭からクライアントＰＣ内で一意に決まるジョブＮｏ６０１（８バイト）、ホスト名６０２（１６バイト）及び、クライアントが発行したジョブＩＤ６０３（８バイト）からなる。
【００７４】
次に、図９を参照して、本実施形態に対応するネットワークプリンタ１０５における処理の一例を説明する。図９のフローチャートに示す処理は、ＰＲＯＭ２２１或いは外部メモリ２２３に記憶された対応するプログラムをＰＲＡＭ２２２に読み出して、ＰＣＰＵ２２０が実行することで実現されるものである。
【００７５】
ステップＳ９０１において、ネットワークプリンタ１０５は、ネットワーク１０６を通じ接続部２２６を経由してクライアント１０２からのデータを受信したか否かが判定される。もし、データを受信したと判定された場合には（ステップＳ９０１において「ＹＥＳ」）、ステップＳ９０２に移行する。一方、データを受信しない場合には（ステップＳ９０１において「ＮＯ」）、データ受信の監視を継続する。
【００７６】
次に、ステップＳ９０２では、ＰＣＰＵ２２０がステップＳ９０１で受信されたデータを解析し、データ中の解析対象がジョブ設定に関するデータであるか否かが判定される。ここで、受信したデータのオペレーションコード部４０２が『Set_job』の場合、ジョブ設定と判定される。
【００７７】
もし、ジョブ設定と判定された場合には（ステップＳ９０２において「ＹＥＳ」）、ステップＳ９０３に移行する。一方、ジョブ設定と判定されなかった場合には（ステップＳ９０２において「ＮＯ」）、ステップＳ９０４に移行する。
【００７８】
ステップＳ９０３では、受信データからジョブ設定値が抽出されＰＲＡＭ２２２内の予め用意した記憶領域に保存される。図５の例で説明すると、受信したジョブスクリプト内のパケット５０１〜５０３が、ジョブ設定に関するデータに相当する。従って、ステップＳ９０３では、各パケットにおいてパラメータ部４０４に設定された設定値が抽出され、ＰＲＡＭ２２２内の記憶領域に保存される。その後、ステップＳ９０２に戻る。
【００７９】
次にステップＳ９０４では、ＰＣＰＵ２２０がステップＳ９０１で受信されたデータを解析し、データ中の解析対象が印刷データであるか否かが判定される。図５に示すようなジョブスクリプトの場合、オペレーションコード部４０２が “job_start” の場合に印刷データと判定される。もし、印刷データと判定された場合には（ステップＳ９０４において「ＹＥＳ」）、ステップＳ９０５に移行する。ステップＳ９０５では、データ制御部２２５にて、描画命令５０５に従った印刷処理が実行される。一方、印刷データでないと判定された場合には（ステップＳ９０４において「ＮＯ」）、ステップＳ９０９に移行する。
【００８０】
ステップＳ９０５における印刷処理が終了した後、ステップＳ９０６に移行する。ステップＳ９０６では、プリントサーバ１０１に対してユーザが現在使用中のクライアント１０２の情報を図１２に示す要求パケットを送信して問い合わせる。
【００８１】
プリントサーバ１０１は、図１０を参照して後で説明する応答手順に基づき、保存しているユーザ名とクライアントのリストから、図１３に示すような応答パケットを作成し、ユーザ現在が使用中のクライアントの情報をネットワークプリンタ１０５に送信する。ネットワークプリンタ１０５は、プリントサーバ１０１が送信した応答パケットを、ネットワーク１０６を通じ接続部２２６を介して受信する。
【００８２】
次に、ステップＳ９０７では、ＣＰＵ２２０が受信した応答パケットを解析し、パラメータ部１３０４に記載されているユーザが現在使用中の情報処理装置の情報から、ホスト名を抽出する。また、ステップＳ９０３でＲＡＭ２２２内の記憶領域に保存したジョブ設定値のうち、ジョブＩＤを抽出したホスト名にて書き換えると共に、上書き保存する。すなわち、図５のパケット５０３にて示されるジョブＩＤが、ステップＳ９０６で取得されたホスト名により書き換えられることとなる。
【００８３】
次に、ステップ９０８では、ＰＣＰＵ２２０が図４のフォーマットに従って、図１４に示すようなイベントパケット１４００を生成し、イベント配信登録先のＩＰアドレスに送信する。このイベントパケット１４００において、オペレーションコード部４０２にはコード"EV_JOB_STATE_CHANGE"が設定される。この"EV_JOB_STATE_CHANGE"は、予め決められたジョブ状態変化終了イベントを意味するコードである。また、ヘッダ部４０１及びサイズ部４０３が適宜設定される。更に、パラメータ部４０４にジョブ状態を示す属性 state に完了を意味する complete が設定され、状態変化理由を示す reason 属性に、success が設定される。更に、ジョブＩＤには、ステップＳ９０７で書き換えられたジョブＩＤが設定される。また、イベントパケットの送付に併せて、ステップＳ９０３で保存されたジョブ設定が初期化される。
【００８４】
次に、ステップＳ９０４で印刷データでないと判定され、ステップＳ９０９に移行した場合を説明する。ステップＳ９０９では、ステップＳ９０１で受信したデータがＰＣＵＰ２２０により解析され、データ中の処理対象がイベント配信登録に関するデータか否かが判定される。ここでの判定は、オペレーションコード部４０２が『Append_To_List』か否かに基づいて行うことができる。
【００８５】
ステップＳ９０９においてイベント配信登録と判定された場合（ステップＳ９０９において「ＹＥＳ」）、ステップＳ９１０に移行する。ステップＳ９１０では、ＰＣＰＵ２２０が、ステップＳ９０１で受信したパケットデータから、イベント配信先のＩＰアドレス、イベント種別等を抽出する。図１５の例で説明すれば、ＩＰアドレス１５０６やイベント種別１５０５が抽出される。抽出された情報は、ＰＲＡＭ２２２内の予め用意されたイベント配信先記憶領域に設定、保存される。また、ステップＳ９０９においてイベント配信登録でない判定された場合（ステップＳ９０９において「ＮＯ」）、ステップＳ９０１に戻って以上の処理を繰り返す。
【００８６】
以上のように、本実施形態によれば、印刷指示を行ったユーザがログイン先のクライアントを変更する場合であっても、クライアント宛のイベントパケットの情報を、変更先のクライアントにあわせて変更することができる。これにより、再ログイン先のクライアントでも、現在自機にログインしているユーザ宛に届いたイベントパケットを利用して、ジョブの状態変化をリアルタイムにユーザに通知することができる。
【００８７】
［第３の実施形態］
上述の第１及び第２の実施形態では、デバイスにおけるジョブ終了時点で、ユーザがネットワーク１０６上のいずれかのクライアントにログインしている場合について説明した。しかし、第１及び第２の実施形態では、ユーザがジョブ終了時にいずれかのクライアントにログインしていないと、イベントを返すクライアントが見つからないことがある。
【００８８】
そこで、本実施形態では、ジョブ終了時にユーザがログインしていない場合について説明する。本実施形態におけるシステム構成及び基本的な動作は第１の実施の形態と同じであるため、説明の簡便のため、異なる点のみ説明する。
【００８９】
図１０は、本実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。図１０のフローチャートに示す処理は、ＰＲＯＭ２２１或いは外部メモリ２２３に記憶された対応するプログラムをＰＲＡＭ２２２に読み出して、ＰＣＰＵ２２０が実行することで実現されるものである。
【００９０】
ステップＳ１００１では、ネットワーク１０６を介し、接続部２２６を経由して情報処理装置としてのクライアント１０２からデータを受信したか否かが判定される。もし、データを受信したと判定された場合には（ステップＳ７０１において「ＹＥＳ」）、ステップＳ１００２に移行する。一方、データを受信しない場合には（ステップＳ１００１において「ＮＯ」）、ステップＳ１００９に移行する。
【００９１】
ステップＳ１００３からステップＳ１００６までの処理は、第１の実施形態における図７のステップＳ７０３からステップＳ７０６までと同様である。ステップＳ１００６に続くステップＳ１００７では、ＰＣＰＵ２２０が、ステップＳ１００６で受信した応答パケット１３００を解析し、ユーザが現在ログインしているかが判定される。この判定は、応答パケット１３００のパラメータ部１３０４にデータが存在するか否かに基づいて行うことができる。もし、ユーザがログインしていない場合には、プリントサーバ１０１は返すべき値を持っていないので、応答パケット１３００のパラメータ部１３０４にはデータが存在しない。よって、該データの有無により、ユーザがログインしているか否かを判定することができる。
【００９２】
ステップＳ１００７においてユーザがログインしていないと判定された場合は（ステップＳ１００７において「ＮＯ」）、ステップＳ１００８に移行する。ステップＳ１００８では、ステップＳ１００３においてＰＲＡＭ２２２のジョブ設定記憶領域に保持されたＩＰアドレスの領域を初期化し、再保存する。その後、ステップＳ１００１に戻って、処理を繰り返す。
【００９３】
ステップＳ１００７でユーザがログインしていると判定された場合は（ステップＳ１００７において「ＹＥＳ」）、ステップＳ１０１２に移行する。ステップＳ１０１２及びステップＳ１０１３は、図７のステップＳ７０７及びステップＳ７０８に対応するので、ここでの説明は省略する。
【００９４】
次に、ステップＳ１００９以降の処理について説明する。ステップＳ１００９では、未送信イベントがあるか否かが判定される。具体的に、ＰＣＰＵ２２０は、ＰＲＡＭ２２２内のジョブ設定記憶領域に保存されたジョブ設定の内容を解析し、ＩＰアドレス領域が初期化されているエントリがあるか否かを調べる。もし、ＩＰアドレス領域が初期化されているエントリが発見された場合には、未送信イベントがあると判定される。一方、ＩＰアドレス領域が初期化されているエントリが発見されない場合には、未送信イベントはないと判定される。
【００９５】
ステップＳ１００９で未送信イベントがないと判定された場合（ステップＳ１００９において「ＮＯ」）、ステップ１００１に戻って処理を繰り返す。一方、ステップＳ１００９で未送信イベントがあると判定された場合（ステップ１００９において「ＹＥＳ」）、ステップＳ１０１０に移行する。ステップＳ１０１０では、プリントサーバ１０１に対し、ユーザが再ログインしたか否かの問い合わせを行う。具体的にはステップＳ１００６における処理、即ち、図７のステップＳ７０６における処理と同様にして問い合わせを行うことができる。
【００９６】
続くステップＳ１０１１では、受信した応答パケット１３００に基づいて対象のユーザがいずれかのクライアントに再ログインしたか否かが判定される。この判定は、ステップＳ１００７におけるものと同様である。もし、ユーザが再ログインしていないと判定された場合には（ステップ１０１１において「ＮＯ」）、ステップＳ１００１に戻って処理を継続する。一方、ユーザが再ログインしたと判定された場合には（ステップ１０１１において「ＹＥＳ」）、ステップＳ１０１２に移行する。
【００９７】
次に、本実施形態に対応するプリントサーバ１０１における処理について説明する。本実施形態に対応するプリントサーバ１０１の動作は、第１の実施形態において図８を参照して説明した動作と基本的には同じである。但し、ステップＳ８０６における処理が異なる。
【００９８】
本実施形態では、ステップＳ８０６において、プリントサーバ１０１のＣＰＵ２００は、受信パケットのパラメータ部４０４からユーザ名（図１２の場合は、“Ｕ１２３４”）を抽出する。抽出したユーザ名に基づき、ＲＡＭ２０２に保存されているユーザリストをリストを検索し、該当ユーザが現在ログインしているクライアントの情報を抽出する。次に、図４に示すフォーマットに従い、図１３に示すような応答コマンドパケットを作成する。具体的に、オペレーションコード部４０２に、"Get_Machine_info"コマンドへの応答を示す "Rep_Get_Machine_info" を設定する（図１３の１３０２）。また、ヘッダ部４０１及びサイズ４０３を適宜設定する（図１３の１３０１、１３０３）。更に、パラメータ部４０４には、該当ユーザがユーザリスト中で見つかった場合には、使用するクライアントのＩＰアドレス及びホスト名を設定する（図１３の１３０４）。一方、ユーザリスト中で見つからなかった場合には、パラメータ部には何も設定せず、サイズに０を設定する。これにより、ユーザが現在いずれのクライアントにもログインしていないことを通知することができる。このようにして作成された応答パケットは、接続部２１０を通りネットワーク１０６を介して、要求コマンドの送付先に返信される。
【００９９】
以上のように本実施形態では、印刷指示を行ったユーザがネットワークにログインしていない時にデバイスで通知すべきイベントが発生しても、イベント捨てられることなく、再ログイン時に通知することができる。よって、ユーザに対し、必要な情報を漏れなく通知することができる。
【０１００】
［第４の実施形態］
以上の説明は、説明の簡便のためイベントの例としてジョブ終了イベントについて説明した。このジョブ終了イベントは、基本的には１つのジョブに１度だけ発生するものである。しかし、実際の運用では、ジョブの状態変化イベントとして、「印刷中」、「中断中」、「一時停止中」といった、ジョブ終了以前の状態を複数ユーザに通知するのが普通である。従って、上記第３の実施形態に複数状態のイベント通知を適用すると、ユーザが再ログインすると、ユーザに未送信だった複数のイベントが同時に届くことになる。
【０１０１】
また、ネットワークの特性として、ほぼ同時に送信したパケットでも一部の時系列が逆転して送信先に届くこともある。大量のイベントが時系列が逆転して届いた場合、そのまま通知を行うとユーザは混乱を招く可能性もある。
【０１０２】
そこで、本実施形態では、ユーザが再ログインした時点で最新の状態だけを通知することを特徴とする。以下に、本実施形態に対応する処理について説明する。図１１は、本実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。図１１のフローチャートに示す処理は、ＰＲＯＭ２２１或いは外部メモリ２２３に記憶された対応するプログラムをＰＲＡＭ２２２に読み出して、ＰＣＰＵ２２０が実行することで実現されるものである。
【０１０３】
図１１において、ステップＳ１１０１からステップＳ１１０５までは、第３の実施形態における図１０のステップＳ１００１からステップＳ１００５までと同様であるので、ここでの説明を省略する。
【０１０４】
ステップＳ１１０５において印刷処理を行い、ステップＳ１１０６ではジョブの状態変化イベントが発生したかが判定される。例えば、紙なしなどで印刷が停止した、外部からの要求により印刷を一時停止した等のケースでは、デバイス内部で保持しているジョブの状態を変化させる。ネットワークプリンタ１０５は各種センサー等の印刷処理の実行状況をジョブ状態として監視するため手段を備えており、印刷処理の実行状況の変化が検知された場合には、イベントが発生したと判定される。該センサーには、例えば、トレー内の記録紙の有無を検知するためのセンサー、記録紙の搬送過程における紙詰まりを検知するためのセンサー、トナーやインクの残量を検知するためのセンサーなどが含まれる。またＰＣＰＵ２２０は、印刷処理の実行状況を制御・管理すると共に、各種センサーからの情報を受け付ける。
【０１０５】
ステップＳ１１０６においてイベントが発生したと判定された場合（ステップＳ１１０６において「ＹＥＳ」）、ステップＳ１１０７においてジョブ状態が更新される。ジョブ状態はＰＲＡＭ２２２内のジョブ設定記憶領域に保存されており、保存内容がステップＳ１１０６において検知された現在のジョブ状態により更新される。なお、本実施形態においてジョブ状態には、例えば『印刷中』、『一時停止中』、『再開』、『割り込み中』、『準備中』、『削除中』、『完了』等）及び現在のジョブ状態に至った理由、が含まれる。この現在のジョブ状態に至った理由には、例えば、『正常』、『ユーザ指示』、『エラー』、『上限エラー』等が含まれる。ステップＳ１１０６においてイベントが発生していないと判定された場合は（ステップＳ１１０６において「ＮＯ」）、ステップＳ１１０５に戻って印刷処理が継続される。
【０１０６】
続くステップＳ１１０８以降、ステップＳ１１１５までの処理は、図１０のステップＳ１００６乃至ステップＳ１０１３における処理と同様であるので、ここでの説明を省略する。
【０１０７】
ステップＳ１１１０においてジョブ設定保存処理が行われた後、或いは、ステップＳ１１１５においてイベント配信が行われた後は、ステップＳ１１１６に移行する。ステップＳ１１１６では、ステップＳ１１０５における印刷処理が終了したか否かが判定される。この印刷処理の終了判定は、ＰＲＡＭ２２２内のジョブ設定記憶領域で保持されているジョブ状態が印刷終了を示す内容となっているかにより行うことができる。即ち、ステップＳ１１０５における印刷処理が継続されない状態、例えば『完了』或いは『エラー』といったジョブ状態の場合には、印刷終了と判定することができる。
【０１０８】
ステップＳ１１１６において印刷終了と判定された場合には（ステップＳ１１１６において「ＹＥＳ」）、ステップＳ１１０１に戻って処理を継続する。また印刷終了でない判定された場合には（ステップＳ１１１６において「ＮＯ」）、ステップＳ１１０５に戻って印刷処理を継続する。これにより、印刷処理が継続されイベントが発生するたびにジョブ状態が更新され、ユーザがログインしていれば随時イベントが配信される一方で、ユーザがログインしていなければログイン時のジョブ状態が配信されることとなる。
【０１０９】
以上の本実施形態では、印刷指示したユーザがネットワークにログインしていない時にデバイスで通知すべきイベントが発生しても、捨てられることなく、再ログインした時にイベント通知される。さらに、該当ジョブにおいて最新の状態のみを通知されることにより、ユーザは、新しく有益な情報のみ知ることができる。
【０１１０】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１１１】
また、本発明の目的は、前述した機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムに供給し、そのシステムがプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【０１１２】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【０１１３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施形態に対応する印刷システムの構成例を示す図である。
【図２】本発明の実施形態に対応する印刷システムのハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施形態に対応する、ジョブスクリプトのデータ構成の一例を示す図である。
【図４】本発明の実施形態に対応するパケットデータの構成の一例を示す図である。
【図５】本発明の第２の実施形態に対応する、ジョブスクリプトの構成の一例を示す図である。
【図６】本発明の第２の実施形態に対応するジョブＩＤの構成の一例を示す図である。
【図７】本発明の第１の実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。
【図８】本発明の第１の実施形態に対応するプリントサーバ１０１の動作の一例を示すフローチャートである。
【図９】本発明の第２の実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。
【図１０】本発明の第３の実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。
【図１１】本発明の第４の実施形態に対応するネットワークプリンタ１０５の動作の一例を示すフローチャートである。
【図１２】本発明の第１の実施形態に対応する、クライアント１０２からプリントサーバ１０１に送信される要求パケットのデータ構成の一例を示す図である。
【図１３】本発明の第１の実施形態に対応する、プリントサーバ１０１からクライアント１０２へ送信される応答パケットのデータ構成の一例を示す図である。
【図１４】本発明の第１の実施形態に対応する、ネットワークプリンタ１０５からイベント配信の際に送信されるパケットデータの構成の一例を示す図である。
【図１５】本発明の第２の実施形態に対応するクライアント１０２からネットワークプリンタ１０５に送信されるイベント配信登録用のパケットの構成例を示す図である。
【図１】
2007280045.tif 000003
【図２】
2007280045.tif 000004
【図３】
2007280045.tif 000005
【図４】
2007280045.tif 000006
【図５】
2007280045.tif 000007
【図６】
2007280045.tif 000008
【図７】
2007280045.tif 000009
【図８】
2007280045.tif 000010
【図９】
2007280045.tif 000011
【図１０】
2007280045.tif 000012
【図１１】
2007280045.tif 000013
【図１２】
2007280045.tif 000014
【図１３】
2007280045.tif 000015
【図１４】
2007280045.tif 000016
【図１５】
2007280045.tif 000017