(57)【特許請求の範囲】
【請求項１】
ジョブを生成するクライアント装置と、前記クライアント装置から受信するジョブに基づく印刷処理を行う画像形成装置と、印刷処理の制御を行うための管理装置とを含む印刷システムであって、
前記クライアント装置は、
ユーザからの指示に基づきジョブを生成するジョブ生成手段と、
前記画像形成装置において前記ジョブの実行の許可を申請するため、前記ジョブ生成手段で生成したジョブを識別するためのジョブ識別情報とクライアント装置を識別するためのクライアント識別情報と前記ユーザを識別するためのユーザ識別情報を含む許可申請データを生成する許可申請生成手段と、
前記許可申請生成手段で生成された許可申請データを前記管理装置に送信する許可申請送信手段と、
前記ジョブ生成手段で生成したジョブを前記画像形成装置に送信するジョブ送信手段とを有し、
前記管理装置は、
前記クライアント装置より許可申請データを受信する許可申請受信手段と、
前記許可申請データに含まれるユーザ識別情報が、前記画像形成装置での印刷を許可するユーザを識別するユーザ識別情報を管理するユーザリストに管理されていたことに基づき、前記許可申請データに対応する印刷を許可するための前記ジョブ識別情報と前記クライアント識別情報を含む許可コマンドを生成する許可コマンド生成手段と、
前記許可コマンド生成手段により生成された許可コマンドを前記画像形成装置に送信する許可コマンド送信手段とを有し、
前記画像形成装置は、
前記管理装置より許可コマンドを受信する許可コマンド受信手段と、
前記許可コマンド受信手段により受信した許可コマンドに含まれるクライアント識別情報とジョブ識別情報とを対応させて、ジョブの処理を許可するクライアント装置のクライアント識別情報を管理する許可リストに登録する登録手段と、
前記許可リストで管理されているクライアント識別情報で識別されるクライアント装置からの前記ジョブを受信するジョブ受信手段と、
前記ジョブ受信手段により受信したジョブに基づき印刷処理を実行する印刷手段と、
前記印刷手段による印刷処理が実行された後に、前記許可リストにおける、当該実行されたジョブのジョブ識別情報と、当該ジョブ識別情報に対応して管理されているクライアント識別情報を削除する許可解除手段とを有し、
前記ジョブ識別情報は前記ジョブ生成手段で生成されたジョブに関するハッシュ値を含み、
前記画像形成装置は前記ジョブ受信手段で受信したジョブのハッシュ値を取得する取得手段を更に有し、
前記ジョブの送信元のクライアント装置のクライアント識別情報に対応して前記許可リストにおいて管理されているジョブ識別情報のハッシュ値が、前記取得手段で取得したハッシュ値と異なる場合、前記印刷手段により当該ジョブに基づく印刷処理を実行せず、かつ前記許可解除手段は前記許可リストにおける当該クライアント識別情報に対応して管理されている情報を削除することを特徴とする印刷システム。
【請求項２】
前記クライアント装置は、
前記ジョブ生成手段で生成したジョブを前記画像形成装置に送信する際のコネクションを確立するために、前記クライアント識別情報を含む通信データを送信する通信データ送信手段を有し、
前記画像形成装置は、
前記クライアント装置から前記通信データを受信する通信データ受信手段と、
前記通信データ受信手段により受信した通信データに含まれるクライアント識別情報が前記許可リストに管理されているか否かを判断する判断手段と、
前記判断手段により前記クライアント識別情報が前記許可リストに管理されていない場合には前記通信データに対する応答を行わず、前記判断手段により前記クライアント識別情報が前記許可リストに管理されている場合には前記クライアント装置と前記画像形成装置との間の前記コネクションを確立するために、前記通信データに対する応答を行う応答手段とを更に有し、
前記ジョブ受信手段は、前記応答手段による応答の結果に応じて前記クライアント装置と前記画像形成装置との間の前記コネクションが確立した後に、前記ジョブを受信することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記許可コマンド生成手段は、更に前記ジョブの実行を許可する許可時間を含む許可コマンドを生成し、
前記登録手段は、前記許可コマンドに含まれるクライアント識別情報とジョブ識別情報と前記許可時間とを対応させて前記許可リストに登録し、
前記許可解除手段は、前記許可リストで管理される許可時間に基づき、当該許可時間に対応して管理されている情報を削除することを特徴とする請求項１または２に記載の印刷システム。
【請求項４】
前記管理装置は、
前記許可申請データに含まれるユーザ識別情報が前記ユーザリストに管理されていたことに基づき、仮識別情報を発行する発行手段と、
前記クライアント装置に前記発行手段で発行した仮識別情報を送信する送信手段とを更に有し、
前記管理装置の許可コマンド生成手段は、前記発行手段で発行した仮識別情報を更に含む許可コマンドを生成し、
前記クライアント装置のジョブ送信手段は、前記ジョブとともに前記仮識別情報を画像形成装置に対して送信し、
前記前画像形成装置の登録手段は、前記許可コマンドに含まれるクライアント識別情報と前記ジョブ識別情報と仮識別情報とを対応させて、前記許可リストに登録し、前記前画像形成装置の印刷手段は、前記ジョブに含まれる仮識別情報が、当該ジョブを送信したクライアント装置のクライアント識別情報に対応して前記許可リストに登録されていることに応じて、当該ジョブに基づく印刷処理を実行することを特徴とする請求項１乃至３のいずれか１項に記載の印刷システム。
【請求項５】
ジョブを生成するクライアント装置と、印刷処理の制御を行うための管理装置と通信可能な画像形成装置であって、
前記管理装置から印刷を許可するジョブのジョブ識別情報と当該ジョブを送信するクライアント装置のクライアント識別情報とを含む許可コマンドを受信する許可コマンド受信手段と、
前記許可コマンド受信手段により受信した許可コマンドに含まれるクライアント識別情報とジョブ識別情報とを対応させて、ジョブの処理を許可するクライアント装置のクライアント識別情報を管理する許可リストに登録する登録手段と、
前記許可リストで管理されているクライアント識別情報で識別されるクライアント装置からの前記ジョブを受信するジョブ受信手段と、
前記ジョブ受信手段で受信したジョブのハッシュ値を取得する取得手段と、
前記ジョブ受信手段により受信したジョブに基づき印刷処理を実行する印刷手段と、
前記印刷手段による印刷処理が実行された後に、前記許可リストにおける、当該実行されたジョブのジョブ識別情報と、当該ジョブ識別情報に対応して管理されているクライアント識別情報とを削除する許可解除手段と、を有し、
前記ジョブ識別情報は前記ライアント装置で生成されたジョブに関するハッシュ値を含み、
前記ジョブの送信元のクライアント装置のクライアント識別情報に対応して前記許可リストにおいて管理されているジョブ識別情報のハッシュ値が、前記取得手段で取得したハッシュ値と異なる場合、前記印刷手段により当該ジョブに基づく印刷処理を実行せず、かつ前記許可解除手段は前記許可リストにおける当該クライアント識別情報に対応して管理されている情報を削除することを特徴とする画像形成装置。
【請求項６】
前記クライアント装置から前記ジョブを前記画像形成装置に送信する際のコネクションを確立するために、クライアント識別情報を含む通信データを受信する通信データ受信手段と、
前記通信データ受信手段により受信した通信データに含まれるクライアント識別情報が前記許可リストに管理されているか否かを判断する判断手段と、
前記判断手段により前記クライアント識別情報が前記許可リストに管理されていない場合には前記通信データに対する応答を行わず、前記判断手段により前記クライアント識別情報が前記許可リストに管理されている場合には前記クライアント装置と前記画像形成装置との間の前記コネクションを確立するために、前記通信データに対する応答を行う応答手段とを更に有し、
前記ジョブ受信手段は、前記応答手段による応答の結果に応じて前記クライアント装置と前記画像形成装置との間の前記コネクションが確立した後に、前記ジョブを受信することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
請求項５または６に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な印刷を抑制するための印刷システムに関する。
【背景技術】
【０００２】
近年、企業のオフィス等に複写装置、印刷装置などの画像形成装置が普及し、誰でも簡単に複写、印刷ができるようになった。しかしながら、社内文書の印刷物の流出などのセキュリティ上の問題、無駄なプリント、誰が出力したかわからない放置プリントなどの問題が発生している。
【０００３】
これらの問題を解決するために、ユーザ毎に印刷文書名、印刷日時、用紙、部数、カラー／モノクロ等の印刷などの処理に関する情報を集計する印刷管理システムが存在する。また、印刷管理システムにおいて、ユーザごとに印刷可能な枚数を設定し、クライアント装置から画像形成装置への印刷指示の際に、アプリケーションで集計された印刷履歴（ログ）をもとに、印刷可能な枚数を超えた場合に印刷の制限を行うといった技術がある。
【０００４】
さらに、印刷アプリケーションやプリンタドライバでは通常付加されない追加情報（例えば顧客情報、印刷単価または課金先情報など）をクライアント装置などで特殊なアプリケーションを用いて印刷ジョブに対応させて付加する。そして、その追加情報を印刷履歴に含ませて管理するといったことが行われている。
【０００５】
クライアント装置から画像形成装置へ送信するジョブに追加情報を対応付ける方法として、ジョブの生成時に印刷設定ダイアログから入力し、プリンタドライバで印字情報を格納する領域とは別の領域（例えば、ヘッダー）に書き込む方法があった。また、画像形成装置へジョブを送信する際に追加情報と印刷ジョブを予め対応付けておき、その後、別々に送信するといったことも行われている。
【０００６】
特許文献１では、プリントサーバが許可リストを持ち、クライアント装置で生成された印刷ジョブに含まれるクライアント名を見て、自身の許可リストにないときはそのジョブに基づく印刷を禁止するといった開示がある。これにより、印刷ジョブを画像形成装置に送信することなく、許可したクライアント名以外の印刷を抑制することを可能としている。
【０００７】
特許文献２では、印刷装置が許可リストをもち、保守用コンピュータからの保守用メッセージに基づきネットワークアドレスを印刷許可リストに追加・削除する。印刷データとともに印刷要求を受け取った印刷装置は、印刷要求の送信元のネットワークアドレスが印刷許可リストに含まれるときは印刷し、含まれないときはその送信元に対して印刷不許可のメッセージを送信し、印刷を行わない。
【特許文献１】特開２０００−０３５８７１号公報
【特許文献２】特開２００４−１６８０６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１では、クライアント装置ではなく、プリントサーバにおいて印刷許可の判定を行っている。このような構成をとった場合、少なくともクライアント装置からプリントサーバに対して印刷要求に関するパケット送信が行われる必要がある。
【０００９】
また、特許文献２では、印刷装置が静的な情報として印刷許可リストを保持する構成をとっている。また、印刷装置の印刷許可リストにはクライアント装置のネットワークアドレスが登録され、印刷許可・不許可の判定は装置ごとに行われる。ここで、１台のクライアント装置が複数のユーザに利用されるといった際に、ユーザごとの印刷枚数の上限管理などの印刷制御を行うためには更なる技術的な工夫が望まれる。
【００１０】
従って、本発明は、ユーザごとの印刷制御を行いつつ、加えてジョブごとに印刷の許可・不許可を制御する仕組みを提供することを目的とする。
【００１１】
更に、クライアント装置からの不正な印刷要求に基づく印刷データを画像形成装置で受け取らないといったような制御も行える仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明における印刷システムは、ジョブを生成するクライアント装置と、前記クライアント装置から受信するジョブに基づく印刷処理を行う画像形成装置と、印刷処理の制御を行うための管理装置とを含む印刷システムであって、
前記クライアント装置は、ユーザからの指示に基づきジョブを生成するジョブ生成手段と、前記画像形成装置において前記ジョブの実行の許可を申請するため、前記ジョブ生成手段で生成したジョブを識別するためのジョブ識別情報とクライアント装置を識別するためのクライアント識別情報と前記ユーザを識別するためのユーザ識別情報を含む許可申請データを生成する許可申請生成手段と、前記許可申請生成手段で生成された許可申請データを前記管理装置に送信する許可申請送信手段と、前記ジョブ生成手段で生成したジョブを前記画像形成装置に送信するジョブ送信手段とを有し、
前記管理装置は、前記クライアント装置より許可申請データを受信する許可申請受信手段と、前記許可申請データに含まれるユーザ識別情報が、前記画像形成装置での印刷を許可するユーザを識別するユーザ識別情報を管理するユーザリストに管理されていたことに基づき、前記許可申請データに対応する印刷を許可するための前記ジョブ識別情報と前記クライアント識別情報を含む許可コマンドを生成する許可コマンド生成手段と、前記許可コマンド生成手段により生成された許可コマンドを前記画像形成装置に送信する許可コマンド送信手段とを有し、
前記画像形成装置は、前記管理装置より許可コマンドを受信する許可コマンド受信手段と、前記許可コマンド受信手段により受信した許可コマンドに含まれるクライアント識別情報とジョブ識別情報とを対応させて、ジョブの処理を許可するクライアント装置のクライアント識別情報を管理する許可リストに登録する登録手段と、前記許可リストで管理されているクライアント識別情報で識別されるクライアント装置からの前記ジョブを受信するジョブ受信手段と、前記ジョブ受信手段により受信したジョブに基づき印刷処理を実行する印刷手段と、前記印刷手段による印刷処理が実行された後に、前記許可リストにおける、当該実行されたジョブのジョブ識別情報と、当該ジョブ識別情報に対応して管理されているクライアント識別情報を削除する許可解除手段とを有し、
前記ジョブ識別情報は前記ジョブ生成手段で生成されたジョブに関するハッシュ値を含み、
前記画像形成装置は前記ジョブ受信手段で受信したジョブのハッシュ値を取得する取得手段を更に有し、
前記ジョブの送信元のクライアント装置のクライアント識別情報に対応して前記許可リストにおいて管理されているジョブ識別情報のハッシュ値が、前記取得手段で取得したハッシュ値と異なる場合、前記印刷手段により当該ジョブに基づく印刷処理を実行せず、かつ前記許可解除手段は前記許可リストにおける当該クライアント識別情報に対応して管理されている情報を削除することを特徴とする。
【発明の効果】
【００１３】
上記構成によれば、本発明は、ユーザごとの印刷制御を行いつつ、加えてジョブごとに印刷の許可・不許可を制御する仕組みを提供することを目的とする。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら本発明の実施の形態に係る印刷システムについて説明する。
【００１５】
図１は、本実施例の画像形成システムの構成を示す図である。１０１〜１０４は一般的な情報処理装置で実現され、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続されている。
【００１６】
１０３、１０４はクライアント装置であって、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データを印刷装置などの画像形成装置に対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。また、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信部を備えている。
【００１７】
プリンタドライバは複数の画像形成装置をサポートするものである。ここで画像形成装置は、電子写真方式を採用したレーザービームプリンタ、インクジェット方式を採用したインクジェットプリンタ、熱転写方式を利用したプリンタ等、何れの方式であってもよい。
【００１８】
１０１は管理サーバ、１０２はプリントサーバである。管理サーバ１０１およびプリントサーバ１０２はネットワークケーブルによってネットワーク１０６に接続されており、ネットワーク１０６で使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。
【００１９】
管理サーバ１０１、およびプリントサーバ１０２は、クライアント装置１０３〜１０４としての機能を併せて持つこともできる。
【００２０】
プリントサーバ１０２は、さらにクライアント装置１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納し、画像形成装置に対して送信できる。または、クライアント装置１０３、１０４から印字データを含まないジョブ情報のみを受け取ってジョブの印刷順序を管理し、印刷の順番が来たクライアント装置に対して印字データを含むジョブの送信許可を通知する。さらに、画像形成装置のステータスや印刷ジョブの各種情報を取得してクライアント装置１０３、１０４に通知したりする機能を揃えている。
【００２１】
１０５は印刷装置などの画像形成装置であり、不図示のネットワークインターフェィスを介してネットワーク１０６に接続されている。さらに、クライアント装置１０３、１０４から送信される例えば印刷言語などで記述された印字データを含む印刷ジョブを解析して、イメージデータに変換して印刷するといった機能を備える。
【００２２】
図２は、クライアント装置などの情報処理装置とプリンタなどの画像形成装置のハードウェアの構成を示す模式図である。
【００２３】
まず、情報処理装置について説明する。
【００２４】
２００は制御手段であるＣＰＵである。ＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行する。さらに、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２５】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。
【００２６】
２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２７】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブである。後述する図５に示すように、このＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２８】
ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。
【００２９】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等が格納されている。さらにスプーラがここに確保される。スプーラは、クライアントにおいてはクライアントスプーラであり、プリントサーバではサーバスプーラである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００３０】
２０６はキーボードであり、ユーザがクライアントに対して、また、オペレータや管理者がプリントサーバに対して、画像形成装置の制御コマンドの命令等を入力するものである。
【００３１】
２０７はディスプレイであり、キーボード２０６から入力されたコマンドや情報処理装置内の処理に基づく表示、プリンタから取得した状態等を表示するものである。
【００３２】
２０８はシステムバスであり、クライアントであるコンピュータ内のデータの流れを司るものである。
【００３３】
２０９はインターフェィス（入出力手段）であり、該インターフェィス２０９を介してクライアントは外部装置とのデータのやり取りを行う。
【００３４】
本実施の形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関連データを直接にＲＡＭ２０２にロードして実行する例を示す。これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にＨＤ２０５にインストールされているネットワークプリンタ制御プログラムをＲＡＭ２０２にロードするようにしてもよい。なお、ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接にＣＰＵ２００で実行することも可能である。
【００３５】
次に画像形成装置の構成を説明する。画像形成装置２は、詳細を後述する接続部２２６、データ制御部（プリンタエンジン）２２５、操作部２２４、外部メモリ２２３、ＰＣＰＵ２２０、ＰＲＡＭ２２２、及びＰＲＯＭ２２１を主要な構成要素する。これらの構成要素がシステムバス２２７を介して互いに接続されている。
【００３６】
プリンタＣＰＵ（ＰＣＰＵ）２２０は、画像形成装置２の全体制御を司るものである。ＰＣＰＵ２２０は、後述するＰＲＯＭ２２１或いは外部メモリ２２３に記憶された制御プログラムに基づいて、接続部２２６で受信したプリンタ制御コマンドより、画像信号をデータ制御部２２５に送信する。
【００３７】
ＰＲＡＭ２２２は、ＰＣＰＵ２２０の主メモリとして、ＰＣＰＵ２２０による制御実行時、ワークデータエリアとして使用される各種データの一時記憶領域を備えている。外部メモリ２２３は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ＰＲＯＭ２２１はプリンタ内部メモリであり、外部メモリと同様に、各種データや本画像形成装置を制御するプリンタ制御プログラム等を記憶している。
【００３８】
データ制御部２２５はプリンタエンジンであり、ＰＣＰＵ２２０により制御され、ＰＲＯＭ２２１、或いは外部メモリ２２３に記憶された制御プログラムよりシステムバス２２７を介して出力された画像信号を受け、実際の印刷処理を行う。操作部２２４は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作指示の入力を受け付ける、また装置で実行される処理の結果を表示するものである。
【００３９】
２２６は接続部であり、前述の双方向インターフェィス２０９を介して情報処理装置１の接続部２１０に接続し、印刷制御コマンドの受信や、画像形成装置内部の状態等を通知する事も可能である。
【００４０】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００４１】
印刷ジョブを生成するクライアント装置と、印刷ジョブを送信するプリントサーバ、システムを管理する管理サーバは、同一の情報処理装置であっても、別の情報処理装置であっても本発明は適用可能である。
【００４２】
図３は、本実施例における情報入力画面の一例である。このダイアログは、後述の図４記載のスプーラ監視モジュールによって、クライアント装置の表示部２０７に表示され、ユーザからのキーボード２０６等を介した指示を入力するためのＧＵＩ表示である。課金コード入力領域、入力確定ボタン、ジョブ操作ボタン（一時停止、再開、削除）、表示の更新ボタン、ジョブリスト表示部３０４を持つ。ジョブリスト表示部では、１行毎にジョブＩＤ、ドキュメント名、ジョブオナー、課金コード、状態を一覧表示することができる。ユーザの指示により、ジョブを複数選択可能である。選択されたジョブは反転表示される。ジョブが選択されると、課金コード入力領域３０１〜３０３が有効になり、任意の文字列を入力すること可能になる。ここで入力された文字列は、選択されたジョブＩＤで識別されるジョブと対応付けられ、ジョブに関する集計を行う際に管理サーバによって管理される。
【００４３】
図４は、本実施例の印刷システムを構成するクライアント装置上で動作する主要モジュール、画像形成装置で動作する主要モジュールなどを示す図である。
【００４４】
クライアント装置では、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）をオペレーティングシステム（以下、ＯＳと呼ぶ）として使用する。さらに、印刷処理の指示が可能なＭｉｃｒｏｓｏｆｔ社製Ｗｏｒｄ（登録商標）等のアプリケーション４０１を起動されるとする。
【００４５】
ユーザは、アプリケーション４０１を用いてドキュメントを生成し、印刷指示を行う。アプリケーション４０１は、印刷指示されたドキュメントに関するデータをプリンタドライバ４０２に渡し、プリンタドライバではアプリケーションから受け取ったデータに基づき印刷ジョブを生成する（ジョブ生成）。プリンタドライバ４０２は生成した印刷ジョブをスプーラ４０３に渡す。
【００４６】
スプーラ４０３は複数のドライバから渡された印刷ジョブを、指定された画像形成装置ごとに印刷ジョブをスケジューリングする。そして、スケジューリングされた印刷ジョブをプリンタの接続ポートに対応するポーモニタ４０４にジョブを渡す。
【００４７】
ポートモニタ（Ｐｏｒｔ  Ｍｏｎｉｔｏｒ）４０４は、ポート（例えばＵＳＢやネットワーク）に対応するデバイスドライバ４０５を適宜呼び出し、ジョブを渡す。デバイスドライバ４０５は、接続部２１０を介し、通信データ送信（後述するＳＹＮパケットの送信など）をきっかけに画像形成装置４０６とコネクションを確立する。その後、そのコネクションを用いてジョブ送信を行う。
【００４８】
スプーラ監視モジュール４０７は、クライアント装置の起動時に自動的に動作開始し、スプーラ４０３を監視する。プリンタドライバの追加、削除、変更ならびに、プリンタドライバ毎のジョブの生成、状態も監視する。スプーラにジョブが生成されたとことを検出したときは、ジョブリスト４０８（記憶領域）に、ジョブを状態やサイズ、プリンタドライバ名、オーナー、ドキュメント名、日時等の付属情報とともに格納する。同時に情報入力のためＵＩ４０９を表示する。情報入力ＵＩ４０９は、クライアント装置の表示部２０７に、例えば図３に図示する情報入力ダイアログを表示する。情報入力ＵＩ４０９はユーザからの入力を受け取ったら、ジョブリスト４０８に入力情報を反映する。
【００４９】
印刷許可申請モジュール４１０は、クライアント装置の起動時に自動的に動作開始し、ジョブリスト４０８の監視を行う。ユーザの所定の指示に基づくジョブリストの更新に応じて、管理サーバのクライアント管理モジュール４１１に、ユーザに指定された画像形成装置における印刷許可を管理サーバに対して申請する。つまり印刷許可申請モジュール４１０は、ジョブを実行するための許可申請生成、生成後に許可申請送信を行う。
【００５０】
画像形成装置は、受信データ解析モジュール４１３、印刷制御モジュール４１５、コマンド制御モジュール４１４、および、許可リスト４０６を保持する。
【００５１】
受信データ解析モジュール４１３は、クライアント装置からのデータを解析し、受信データが印刷ジョブ以外のコマンドデータ（後述）の場合は、受信データをコマンド制御モジュール４１４に渡し、ジョブ受信の場合は印刷制御モジュールに渡す。
【００５２】
コマンド制御モジュール４１４は、クライアント装置から送信されたコマンドデータを解析し、コマンドデータに基づく制御を行う。例えば、コマンドがステータス要求の場合は、ステータス応答コマンドとして、クライアント装置に画像形成装置のステータス（エラー状態など）を応答する。
【００５３】
印刷制御モジュール４１５は、クライアント装置から送信された印刷ジョブを解析し、印刷の実行を行う。
【００５４】
許可リスト４０６は、印刷を許可するクライアント装置を識別する識別情報を保持する。
【００５５】
印刷制御モジュール４１５は、印刷処理の実行時に許可リスト４０６を参照し、印刷許可されたクライアント装置から渡された印刷ジョブを順次印刷実行する。
【００５６】
クライアント装置の印刷許可申請モジュール４１０から、ジョブ情報またはクライアント情報を受け取った管理サーバのクライアント管理モジュール４１１は、ユーザリスト４１２から該当ユーザが登録されているか検索する。登録されているときは、管理サーバのクライアント管理モジュール４１１は該当画像形成装置に対して該当クラインアントコンピュータの印刷許可を通知する。
【００５７】
管理サーバのクライアント管理モジュール４１１から印刷許可を申請された画像形成装置は、許可リスト４０６に印刷許可申請により申請されたクライアントを識別するための識別情報を追加する。
【００５８】
図６は、本実施例における許可リスト４０６に対して、情報を追加、削除する際に管理サーバから送信される通信パケットの一例である。
【００５９】
パケットの中身は共通ヘッダー、データ領域からなる。共通ヘッダーには、すべてのパケットにおいて共通のフォーマットとなりお、バージョンや、パケットサイズ（パケット長）、コマンドが一意に決まるコマンドＩＤなどが格納されている。
【００６０】
データ領域は、コマンドによって任意の情報を持つ。例えば、ジョブを送信するパケットの場合は、コマンドには、ジョブを意味する０が、データ領域にはジョブデータ（印刷データなど）が格納される。
【００６１】
画像形成装置の許可リストへのリスト追加コマンド（例えば、後述の許可コマンド）、リスト削除コマンドのデータ領域にはクライアント装置を識別する識別情報、ジョブ識別情報などが格納される。
【００６２】
クライアント識別情報には、例えば、ホスト名、ＩＰアドレス、ＭＡＣアドレス等のクライアント装置を識別する情報や、ユーザ名、ユーザＩＤ、ニックネーム等のクライアント装置を使用しているユーザを識別する情報などが格納される。
【００６３】
ジョブ情報には、例えば、スプーラＩＤ、ドキュメント名、ジョブＩＤ、ジョブデータから生成したハッシュ値などジョブを一意に識別する情報が少なくとも格納される。
【００６４】
図７は、本実施例における画像形成装置が保持する許可リストの一例である。予め、ＰＲＡＭ２２２等の記憶装置に確保された領域に保持される。
【００６５】
リストの１レコードはクライアント識別情報、ユーザ識別情報、ジョブ識別情報、許可時間からなる。
【００６６】
クライアント識別情報として、例えば、ホスト名、ＩＰアドレス、ＭＡＣアドレス等のクライアント装置を識別する情報が設定される。
【００６７】
ユーザ識別情報として、ユーザ名、ユーザＩＤ、ニックネーム等のクライアント装置を使用しているユーザを識別する情報が設定される。
【００６８】
また、ジョブ情報として、例えば、スプーラＩＤ、ドキュメント名、ジョブＩＤ、ジョブデータから生成したハッシュ値などジョブを一意に識別する情報が設定される。
【００６９】
許可時間は、印刷許可された時刻が設定される。
【００７０】
以下、図５、図８、図９、図１０、図１１、図１２を用いて説明する。
【００７１】
クライアント装置を識別するクライアント識別情報として、ＩＰアドレスを例に取り説明する。
【００７２】
図５は、本実施例における画像形成装置で実行されるプログラムに基づく処理を示すフローの一例である。
【００７３】
ステップ５０１で、受信データ解析モジュール４１３はデータを受信したか判断する。双方向インターフェィス２０９、接続部２２６を介し、ネットワークからデータを受信したときは、データをＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存する。ここではデータを受信するまでこのステップを繰り返す（待機する）こととする。ステップ５０１でデータを受信した判断したときはステップ５０２に遷移する。
【００７４】
ステップ５０２において、受信データ解析モジュール４１３は受信データが印刷ジョブ以外のコマンドデータ（制御コマンド）であるか否か判断する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データを解析し、所定の制御コマンドフォーマットのときは、制御コマンドと判断する。
【００７５】
ステップ５０２で受信データが制御コマンドであると判断したときは、ステップ５０３で、コマンド制御モジュール４１４が受信データをリスト追加コマンドであるか否か判断する。ここでは、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データを解析し、予め決められたリスト追加コマンドフォーマットのときは、リスト追加コマンドと判断する。
【００７６】
ステップ５０３で、コマンド制御モジュール４１４が受信データをリスト追加コマンド（例えば、後述する許可コマンド）であると判断した場合、ステップ５０４に遷移する。ステップ５０４では、コマンド制御モジュール４１４は許可リスト４０６に受信したリスト追加コマンドにより指定されたクライアントの情報（クライアント識別情報）を追加する。ここではＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データから、図６に図示したデータ領域に格納されたクライアント識別情報（例えば、ＩＰアドレス）を取り出す。次に、ＰＲＡＭ２２２等の記憶装置に保持している許可リストに追加する。例えばここでは、後述する許可コマンド受信が行われた場合には、許可コマンドに含まれるクライアント識別情報、ジョブ識別情報及び許可時間などの情報を対応させて許可リストに追加することになる。その後ステップ５０１に戻る。
【００７７】
ステップ５０３で、コマンド制御モジュール４１４が受信データをリスト追加コマンドでないと判断したときは、ステップ５０５で、リスト削除コマンドか否かを判断する。ここでは、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データを解析し、予め決められたリスト削除コマンドフォーマットのときは、リスト削除コマンドと判断する。
【００７８】
次にステップ５０６で、受信データがリスト削除コマンドであると判断された場合、コマンド制御モジュール４１４は許可リスト４０６からリスト削除コマンドにより指定されたレコードを削除する。ここでは、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データから、図６に図示したデータ領域に格納されたクライアント識別情報（ＩＰアドレス）を取り出す。次に、ＰＲＡＭ２２２等の記憶装置に保持している許可リストから、該当するクライアント識別情報を含むレコードを削除する。その後ステップ５０１に戻る。
【００７９】
ステップ５０２で、受信データ解析モジュール４１３は、受信データを制御コマンドではないと判断した場合、ステップ５０７で受信データが印刷ジョブか否かを判断する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存した受信データを解析し、予め決められた印刷ジョブのフォーマットのときは、印刷ジョブであると判断する。
【００８０】
ステップ５０７で、受信データ解析モジュール４１３が受信データを印刷ジョブと判断しなかったときは、本プログラムで処理されるべきデータではないとして、ステップ５０１に戻る。ステップ５０７で、受信データ解析モジュール４１３が受信データを印刷ジョブと判断したときはステップ５０８に遷移する。
【００８１】
ステップ５０８では、印刷制御モジュール４１５が許可リスト４０６を検索し、受信した印刷ジョブに基づく印刷が許可されているか判断する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ等の２２２に確保したワークエリアに保存した印刷ジョブを解析して、印刷ジョブを送信したクライアント装置のクライアント識別情報（ＩＰアドレス）及び印刷ジョブのジョブ識別情報を取得する。その後、ＰＲＡＭ２２２等の記憶装置に保持した許可リストと印刷ジョブから取得したクライアント識別情報及びジョブ識別情報を照合する。許可リストに該当するものが存在する場合は、印刷許可されていると判断する。
【００８２】
ステップ５０８で、印刷許可がされていると判断したときは、ステップ５０９で印刷制御モジュール４１５は印刷ジョブに基づく印刷を指示する。その後、ステップ５０１に戻る。ステップ５０８で、印刷許可がされていないと判断したときは、ステップ５１０で、印刷制御モジュール４１５は受信した印刷ジョブを印刷せずに、削除する。そして、ステップ５０１に戻る。
【００８３】
図８は、本実施例におけるクライアント装置で実行されるプログラムに基づく処理のフローを示すものであり、スプーラ監視モジュールの基本動作となる。
【００８４】
ステップ８０１で、取得したジョブの一覧を取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）を呼び出し、印刷ジョブの一覧を取得し、予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているワーク領域に保存する。
【００８５】
次にステップ８０２で、前記ステップ８０１で取得したジョブ一覧の中に、新規ジョブが発生したか否かを判断する。すなわち、ＣＰＵ２００によりジョブリスト４０８と比較され、新しいジョブＩＤをもつジョブが追加されている場合は、新規のジョブが発生したと判断する。
【００８６】
ステップ８０２で、新規ジョブが発生したと判断した場合はステップ８０３で、ステップ８０１で取得したジョブの一覧の中の、その新規ジョブとそのジョブに付属する情報をジョブリスト４０８に追加する。ジョブリストでは、ジョブ１件毎に、ジョブＩＤおよび、ドキュメント名等のジョブに付属する情報が管理され、さらに、ジョブ１件毎に、課金コード等の所定のアプリケーションなどで付加する追加情報も併せて管理される。ここで、ジョブに付属する情報は、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）などで取得する。
【００８７】
次に、ステップ８０４で、ジョブリスト４０８にジョブが１件以上あるか否かを判断する。すなわち、ＣＰＵ２００によりジョブリストを検索し、リスト中のレコード数を計算する。ジョブが１件以上ないと判断されたときは、ステップ８０１に戻る。
【００８８】
ステップ８０４で、ジョブが１件以上あると判断された場合、ステップ８０５で、情報入力ＵＩ４０９が表示済か判断する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＦｉｎｄＷｉｎｄｏｗ（）を呼び出し、情報入力ＵＩ４０９が使用するウィンドウが存在する場合は、既に情報入力ＵＩ４０９が表示済と判断する。情報入力ＵＩが表示済の場合は、ステップ８０１以降を繰り返す。
【００８９】
ステップ８０５で情報入力ＵＩが表示していないと判断した場合はステップ８０６で、所定の手続きに基づき、情報入力ＵＩ４０９をＣＲＴ２０７等の表示装置に表示する。
【００９０】
ステップ８０２で新規ジョブが発生が検出されなかった場合は、ステップ８０７でジョブが終了したか判断する。ここでは、ＣＰＵ２００により、ステップ８０１で取得したジョブ一覧とジョブリスト４０８を比較する。ジョブリストに存在するジョブがジョブの一覧の中からなくなっていれば、ジョブリストに保存していたジョブが終了したと判断する。またここで、終了したジョブをジョブリスト４０８から削除してもよい。
【００９１】
図９は、実施の形態にかかる情報入力ＵＩを介した指示の入力を受け付ける際の処理のフローの一例である。
【００９２】
ステップ９０１で、画面上のボタンなどがマウスでクリックするなどして押下されるといったイベントが発生したか否かを判断する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＭＳＤＮＬｉｂｒａｒｙ（登録商標）で開示されている方法では、マウスによるクリックやキーボード入力等の操作と、ウィンドウ内のボタンやリストボックス等の各リソースを一意に決定するＩＤが、イベントとして通知される。ここではイベントが発生するまで待機する。
【００９３】
ステップ９０１において、イベントが発生したと判断した場合、ステップ９０２でイベントがジョブ選択か判断する。すなわち、図３のジョブリスト表示部３０４のいずれかのレコードが選択されたか否かを通知されたイベントに基づき判断するする。
【００９４】
ステップ９０２において、通知されたイベントがジョブ選択と判断された場合、ステップ９０３で該当レコードを画面上で識別可能に反転表示する。
【００９５】
ステップ９０２において、通知されたイベントがジョブ選択と判断されなかった場合、ステップ９０４で「入力」ボタンが押下されたか否かを判断する。すなわち、図３の「入力」ボタンが押下されたか否かを通知されたイベントに基づき判断するする。
【００９６】
ステップ９０４において、通知されたイベントが「入力」ボタンの押下と判断された場合、ステップ９０５でジョブリスト表示部３０４で選択されているジョブのジョブＩＤなどに基づいて、対応するジョブリスト４０８に格納されたジョブに課金コードを設定する。ここでは、ジョブリスト４０８中のそのジョブのレコードの課金コード領域に、図３の第１コード、第２コード、第３コードのそれぞれの値を設定する。
【００９７】
ステップ９０４において、通知されたイベントが「入力」ボタンの押下ではない判断された場合、ステップ９０６で「一時停止」ボタンが押下されたか否かを判断する。すなわち、図３の「一時停止」ボタンが押下されたか否かを通知されたイベントに基づき判断する。
【００９８】
ステップ９０６において、通知されたイベントが「一時停止」ボタンの押下と判断された場合、ステップ９０７でジョブリスト表示部３０４で選択されているジョブのジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの一時停止処理（ｐａｕｓｅ）を行う。
【００９９】
ステップ９０６において、通知されたイベントが「一時停止」ボタンの押下ではないと判断された場合、ステップ９０８で「再開」ボタンが押下されたか否かを判断する。すなわち、図３の「再開」ボタンが押下されたか否かを通知されたイベントに基づき判断するする。
【０１００】
ステップ９０８において、通知されたイベントが「再開」ボタンの押下と判断された場合、ステップ９０９でジョブリスト表示部３０４で選択されているジョブのジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、選択されたジョブの再開（Ｒｅｓｕｍｅ）を行う。
【０１０１】
ステップ９０８において、通知されたイベントが「再開」ボタンの押下ではないと判断された場合、ステップ９１０で「削除」ボタンが押下されたか否かを判断する。すなわち、図３の「削除」ボタンが押下されたか否かを通知されたイベントに基づき判断する。
【０１０２】
ステップ９１０において、通知されたイベントが「削除」ボタンの押下と判断された場合、ステップ９１１でジョブリスト表示部３０４で選択されているジョブのジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、選択されているジョブの削除（Ｄｅｌｅｔｅ）を行う。
【０１０３】
ステップ９１０おいて、通知されたイベントが「削除」ボタンの押下ではないと判断された場合、ステップ９１２で「更新」ボタンが押下されたか否かを判断する。すなわち、図３の「更新」ボタンが押下されたか否かを通知されたイベントに基づき判断する。
【０１０４】
ステップ９１２において、通知されたイベントが「更新」ボタンの押下と判断した場合、ステップ９１３でジョブの一覧を再取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）、Ｗｉｎ３２関数ＧｅｔＪｏｂ（）等により、ジョブおよびその付属情報の一覧を再取得する。ここで取得したジョブ情報で、ジョブリスト４０８の情報を更新する。
【０１０５】
次に、ステップ９１４において、ステップ９１３で更新したジョブリストの情報を元に、図３のジョブリスト表示部３０４の表示を更新する。
【０１０６】
図１０は、本実施例における管理サーバのクライアント管理モジュールが保持する許可リストの一例である。
【０１０７】
許可リストは、管理サーバのＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保された領域に保持される。許可リストの１レコードは、ユーザ識別、クライアント識別、画像形成装置、ジョブ識別、許可時間などからなる。
【０１０８】
ユーザ識別には、ユーザ名、ユーザＩＤ、ニックネーム等のクライアント装置を使用しているユーザを識別する情報が格納される。本実施例では、印刷許可申請があったとき印刷許可を与えるユーザを登録することができ、登録されているユーザはすべて記載されている。
【０１０９】
クライアント識別情報には、例えば、ホスト名、ＩＰアドレス、ＭＡＣアドレス等のクライアント装置を識別する情報が格納される。印刷申請が受理されるまでは、空欄になっている。
【０１１０】
画像形成装置には、例えばＩＰアドレス、ホスト名、ＭＡＣアドレス等の印刷を所望する画像形成装置を識別する情報が格納される。
【０１１１】
ジョブ情報には、例えば、スプーラＩＤ、ドキュメント名、ジョブＩＤ、ジョブデータから生成したハッシュ値などジョブを一意に識別する識別情報が格納される。
【０１１２】
許可時間は、印刷申請の許可が下りた時刻が設定される。
【０１１３】
図１１は、本実施例において印刷許可申請モジュールの基本動作を示すフローの一例である。
【０１１４】
ステップ１１０１で、ユーザによって追加情報が入力されたか判断する。すなわち、ＣＰＵ２００を用いて、ジョブリスト４０８を検索し、追加情報が記載されているレコードが見つかったときは、ユーザによって追加情報が入力されたとジョブがあると判断する。
【０１１５】
ステップ１１０１で、ユーザによって追加情報が入力されたと判断した場合は、ステップ１１０２で、クライアント管理モジュールに送付する印刷の許可申請データを生成する。生成されたデータには、クライアント装置のＩＰアドレス、ログインユーザ名、ジョブ識別情報、印刷したいプリンタのＩＰアドレスを格納したデータパケットを含む。
【０１１６】
次に、ステップ１１０３において、ステップ１１０２で生成した印刷の許可申請データを、管理サーバのクライアント管理モジュールに送付する。
【０１１７】
ステップ１１０１で、ユーザによって追加情報が入力されなかったと判断した場合は、ステップ１１０１を繰り返す。
【０１１８】
図１２は、本実施例における管理サーバのクライアント管理モジュールの基本動作を示すフローの一例である。
【０１１９】
ステップ１２０１で、クライアント装置から許可申請データを受信したか判断する。双方向インターフェィス２０９、接続部２２６を介し、ネットワークから許可申請データを受信したときは、ＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保したワークエリアに保存する。許可申請データを受信するまで本ステップを繰り返す。
【０１２０】
ステップ１２０１で許可申請データを受信したときは、ステップ１２０２で、ユーザリスト４１２に登録された登録ユーザからの印刷許可申請か否かを判断する。ここでは、許可申請データから、ユーザ情報を取得し、ユーザリスト４１２のリストから検索する。同一のユーザ情報が見つかったときは、登録ユーザからの印刷許可申請と判断する。
【０１２１】
ステップ１２０２で、登録ユーザからの印刷許可申請と判断したときは、ステップ１２０３で、ユーザリスト４１２を更新する。具体的には、ここでユーザリストはユーザごとの上限管理を行うためのリストであって、ユーザ識別情報に加えユーザの月ごとの現在までの印刷枚数を管理するものとする。ユーザ識別情報で識別されるユーザの印刷の上限枚数が例えば月ごとに決められているとする。印刷許可申請を受けた際にこの上限枚数に達した場合は、ユーザがその月は印刷をできないように制御するため一時的にユーザリストから削除する。尚、上限管理する際の期間はどのような期間であってもよい。また、管理するものは枚数以外の各種印刷設定や画像形成装置で提供可能な機能であれば何れのものであってもよい。更にユーザリストで管理する印刷枚数などの実績は、許可申請の受け付けた際に更新してもよいが、画像形成装置において処理が実行された後に実行通知を受けて、それに基づいて実績計上を行うといった厳密な実装であってもよい。
【０１２２】
次に、ステップ１２０４で、ＣＰＵ２００の処理により図６に図示するフォーマットで画像形成装置の許可リストへの情報の追加するための許可コマンド生成を行う。また、ワークエリアに保持した許可申請データからクライアント識別情報、ユーザ識別情報、および、ジョブ識別情報を取得し、さらに現在時刻を取得し、許可コマンドに設定する。次に、ワークエリアに保持した許可申請データから取得した画像形成装置へ、生成した許可コマンド送信を行う。許可コマンドに対して課金先情報などの追加情報を含ませても良い。
【０１２３】
ステップ１２０２で、登録ユーザ以外からの印刷許可申請と判断したときは、ステップ１２０１に戻る。
【０１２４】
画像形成装置においては、本実施例で用いるような許可リストへの追加コマンドのフォーマット（図６）のときは、リストへの情報の追加コマンドである判断する。これにより、許可リストの随時更新が行われる。
【０１２５】
（実施例２）
本実施例においては、画像形成装置において許可コマンドを受信後、タイムアウトを設け、ユーザの印刷許可を自動で解除する。ここでは、実施例１と異なる点に関して図１３を用いて説明する。
【０１２６】
図１３は、画像形成装置に保持されるプログラムに基づき実現されるタイムアウト監視処理に関するフローである。図５の画像形成装置のフローとは独立して動作している。
【０１２７】
ステップ１３０１で、ＰＣＵＰ２２０により、ＰＲＡＭ２２２等の記憶装置に保存された許可リストを検索し、印刷許可されているクライアント数が０でないか判断する。
【０１２８】
ステップ１３０１で印刷許可されているクライアント数が０であると判断したときは、ステップ１３０１に戻る。
【０１２９】
ステップ１３０１で印刷許可されているクライアント数が０でないと判断したときはステップ１３０２で、ＰＣＰＵ２２０により許可リストから１レコード取り出し、ＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保存する。
【０１３０】
次に、ステップ１３０３で、ＰＣＰＵ２２０が、画像形成装置は自身が保持する時計などから現在時刻を取得する。そして、ステップ１３０２で取得したレコードに設定されている許可時間からの経過時間が、画像形成装置で予め設定、保持しているタイムアウト値を超えているか否かを判断する。
【０１３１】
ここで許可リストの許可情報（レコード）のタイムアウトを判断する場合は、管理サーバから許可する時間を直接許可コマンドに含ませるような形式で受け取っても良い。そうすることにより、画像形成装置ではタイムアウト値を保持する必要が無く、許可コマンドを受信した時刻を管理し、許可時間との比較により、上記と同様な判断が行える。
【０１３２】
ステップ１３０３でタイムアウト値を超えていると判断したときは、ステップ１３０４で、該当するレコードのユーザに対する印刷許可を解除する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に保持している許可リストから、該当のレコードを削除する。
【０１３３】
次に、ステップ１３０５で、ＰＣＰＵ２２０により全レコードに対してタイムアウトの計算を行ったか否かを判断する。
【０１３４】
ステップ１３０５で全レコード終了したと判断したときは、ステップ１３０１へ戻る。
【０１３５】
ステップ１３０５で全レコード終了していないと判断したときは、ステップ１３０２に戻り、許可リストの次のレコードを取得することになる。
【０１３６】
ステップ１３０３でタイムアウト値を超えていないと判断したときは、ステップ１３０２に戻り、許可リストの次のレコードを取得することになる。
【０１３７】
他の実施例として、管理サーバ、または、クライアント装置において、タイムアウトを監視し、印刷許可の解除申請をすることでも同様な効果を得られる。
【０１３８】
（実施例３）
クライアント装置における許可申請を行った後、画像形成装置に送信したその許可申請に対応するジョブの終了に応じて、そのユーザの許可を自動で解除するという改良が考えられる。この改良は上述する全ての実施例に適用可能である。
【０１３９】
本実施例では、画像形成装置において、印刷の許可解除を行う例を説明する。上述の実施例と異なる点に関して、図５のステップ５０９の処理に関する改良点について図１４を用いて説明する。
【０１４０】
図５のステップ５０８で、印刷許可がされていると判断したときは、ステップ１４０１で、印刷制御モジュール４１５は受信したジョブに基づく印刷を実行する。
【０１４１】
次に、ステップ１４０２で、印刷終了後、印刷制御モジュール４１５は印刷許可の許可解除を行う。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に保持している許可リストから、ステップ１４０１で印刷したジョブと同じジョブ識別情報を持つレコードを削除する。そして、ステップ５０１に戻る。
【０１４２】
これにより、ジョブを送信するために許可申請を行ったクライアントやユーザごとに印刷許可、その許可の解除を厳密にジョブ単位で行えるといった効果を奏する。
【０１４３】
（実施例４）
印刷許可されているクライアント装置からの印刷であっても、不正のジョブを送信した場合は、画像形成装置で印刷許可を解除するという改良が考えられる。実施例１と異なる点に関して、図５のステップ５０９の処理に関する改良点について図１５を用いて説明する。
【０１４４】
図５ステップ５０８で、印刷許可がされていると判断したときは、ステップ１５０１で、印刷制御モジュール４１５はジョブが不正か否かを判断する。
【０１４５】
例えば、ＲＡＭ２２２等の記憶装置に保存された許可リストを検索しジョブ識別情報に格納されたジョブのハッシュ値と、双方向インターフェィス２０９を介して受信したジョブから生成したハッシュ値を比較する。比較結果が異なる場合は、許可後にジョブが改竄されたとみなし、不正なジョブであることを判断する。あるいは、ジョブが所定のフォーマットに基づき生成されていないときは、ジョブが不正と判断する。
【０１４６】
ステップ１５０１でジョブが不正と判断したときは、ステップ１５０２で、印刷制御モジュール４１５は、不正なジョブを送信したクライアント装置自体の印刷許可を解除する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ２２２等の記憶装置に保持している許可リストから、ステップ１５０１で判定したジョブと同じクライアント識別情報を持つレコードを削除する。
【０１４７】
次にステップ１５０３で、印刷制御モジュール４１５は該当ジョブを印刷せずに、削除する。
【０１４８】
ステップ１５０１でジョブが不正でない判断したときは、ステップ１５０４で、印刷制御モジュール４１５は該当ジョブを印刷する。そして、ステップ５０１に戻る。
【０１４９】
（実施例５）
画像形成装置において、クライアント装置間との通信を制限を行うことによって印刷制御するという改良が考えられる。図１６を用いて、上述の実施例と異なる点に関して説明する。この改良は上述する全ての実施例に適用可能である。
【０１５０】
ここでは、画像形成装置のＲＡＭ２２２等の記憶装置に保持した許可リストには、予め管理サーバのＩＰアドレスが登録されているとする。これにより画像形成装置、管理サーバ間の通信は保証される。
【０１５１】
図１６は、画像形成装置の受信データ解析モジュールがネットワーク通信のコネクションを開始する際に動作するフローである。具体的には、図５のステップ５０１を改良する。
【０１５２】
ステップ１６０１、通信コネクションのリクエストを受け付ける。すなわち、双方向インターフェィスを介し、クライアント装置などからのコネクション確立のための通信データ受信を行う。例えば、広く普及しているＴＣＰ通信においては、ＳＹＮパケットと呼ばれるデータを受信する。
【０１５３】
次にステップ１６０２で、ステップ１６０１で受け取った通信データのパケットに含まれるコネクションのリクエスト元が、通信許可されているか判断する。すなわち、ＰＣＰＵ２２０を用いて、ステップ１６０１で取得したコネクションのリクエスト元（クライアント装置）の識別情報が、許可リストのクライアント識別情報に存在するか検索する。見つかったときは、通信が許可されていると判断する。例えば、広く普及しているネットワーク通信方式のＴＣＰ通信においては、ＳＹＮパケットのＩＰヘッダーに発信元ＩＰアドレスが記載されており、このアドレスが、許可リストのクライアント識別に記載があるときは、許可済みと判断する。
【０１５４】
ステップ１６０２で通信が許可されていると判断したときは、ステップ１６０３でコネクション応答を行う。例えば、広く普及しているＴＣＰ通信においては、ＡＣＫパケットを返す。以降、所定の通信手順で、通信経路が確立し、通信コネクション要求元と通信が可能となる。
【０１５５】
次にステップ１６０４で、ネットワークを介した後続のデータ（ジョブ）を受信する。
【０１５６】
ステップ１６０２で通信が許可されていないと判断したときは、ステップ１６０４で要求を拒絶する。例えば、広く普及しているＴＣＰにおいては、ＡＣＫを返さない。
【０１５７】
次に、ステップ１６０１へ戻る。
【０１５８】
本実施例においては、クライアント装置と画像形成装置間のコネクションを張るか否かについて、許可リストを参照して判断することで、実際のジョブを受け取る前に不許可ユーザのアクセスを禁止する。これにより、画像形成装置においては不正なジョブをそもそも受け取ることもなく、装置内での無駄な処理を減らせるといった効果をも奏する。
【０１５９】
本実施例において、許可されたクライアント装置からの印刷ジョブとして受信したジョブを、前記許可リストにクライアント識別情報に対応して保持されたジョブ識別情報を用いて、さらに照合する処理を行ってもよい。許可されていない印刷ジョブは、Ｓ５１０での処理同様、印刷処理が行われない。この構成により、許可されたクライアント装置を用いた、不正な印刷ジョブの印刷が行れることを防ぐことが可能になる。
【０１６０】
（実施例６）
画像形成装置に特別な機能を持たせず、ネットワーク設定により通信を制限するという改良が考えられる。実施例１と異なる点に関して説明する。本実施例では、例えば画像形成装置は、受信した印刷ジョブを印刷するといった処理のみ行うものとする。
【０１６１】
図１７は本実施例における印刷システムの模式図である。印刷システムには、クライアント装置、画像形成装置、管理サーバ、ネットワーク管理装置が含まれる。ここでは、上述した実施例と異なり、管理サーバとネットワーク管理装置がネットワークなどを介して接続されている。
【０１６２】
クライアント装置の印刷許可申請モジュール１７１０は、ジョブリスト１７０８を監視する。ユーザからの指示に基づき、管理サーバのクライアント管理モジュール１７１１に、所望のプリンタへの印刷許可を申請するための許可申請データを送信する。
【０１６３】
クライアント装置の印刷許可申請モジュール１７１０から、許可申請データを管理サーバのクライアント管理モジュール１７１１は、許可申請データに含まれる識別情報をもとにユーザリスト１７１２を検索し、該当ユーザが登録されているか判断する。登録されているときは、ネットワーク管理装置１７１３にクラインアント装置と画像形成装置の通信許可の設定を行う。
【０１６４】
ネットワーク管理装置１７１１は、ゲートウェイやスイッチングハブ等のネットワークに接続している機器の通信を制御できる装置である。管理サーバのクライアント管理モジュール１７１１から通信許可の設定をされたクラインアント装置と画像形成装置の通信を可能に設定する。
【０１６５】
（実施例７）
本実施例では、管理サーバにおける図１２で説明した処理に関する改良を説明する。
【０１６６】
本実施例では、クライアント装置からの印刷許可申請を受信した際に、印刷が許可されるユーザであった場合に管理サーバ内で新たに仮識別情報（仮ＩＤ）を発行する。ここで発行された仮ＩＤは、Ｓ１２０４で画像形成装置に送信され、許可リスト４０６でクライアント識別情報など共に対応付けて管理される。加えて管理サーバは、この仮ＩＤをクライアントに印刷許可申請の応答として送信する。
【０１６７】
クライアント装置では、印刷ジョブを画像形成装置に送信する際に、管理サーバから受信した仮ＩＤを含ませて送信する。
【０１６８】
画像形成装置では、印刷ジョブを受け取った際に、ジョブ識別情報に代わって、この仮ＩＤにより印刷ジョブの実行するか否かの判断を行う。クライアント識別情報に対応して許可リスト４０６にとう録されている仮ＩＤが、印刷ジョブに含まれる仮ＩＤと一致した場合に印刷を許可する。
【０１６９】
本実施例による改良によって、ジョブ識別にかんしても、クライアント装置ではなく、第３者である管理サーバが発行した一時的な情報を用いるので、よりセキュリティが向上する。また、ジョブ識別情報をクライアント装置で発行し、各装置に配信する必要もなくなる。
【０１７０】
以上説明してきた各実施例について、少なくとも以下のような効果が挙げられる。
【０１７１】
実施例１では、ユーザは、クライアント装置でジョブに対して課金先情報のような追加情報の入力実行することにより印刷許可され、追加情報を入力しないと印刷が行えない。
【０１７２】
実施例２では、一定時間後にタイムアウトし、印刷許可が解除されるものとした。これによりジョブが途中で行方不明になる、管理サーバと画像形成装置による通信ができなくなるなどといった不都合が発生しても、印刷の許可がされつづけることがなくなる。
【０１７３】
実施例３では、ジョブの終了後に、そのジョブに対応する印刷許可が解除されるので、印刷を許可している時間を短く抑えることができセキュリティが向上する。
【０１７４】
実施例４では、改竄や複製等の不正ジョブ等の印刷を防ぐことができる。また、そのような不正なジョブを送信してきたクライアント装置の許可を解除することができる。
【０１７５】
実施例５では、印刷許可されていないクライアント装置からの印刷ジョブは、画像形成装置で受信されないので、画像形成装置での冗長な処理や無駄なトラフィックを減らすことができる。
【０１７６】
実施例６では、画像形成装置に特別な機能を設ける必要がない。既に市場に出ている画像形成装置も特別な改造をせずに本発明の印刷システムを適用できる。
【図面の簡単な説明】
【０１７７】
【図１】本発明における印刷システムの構成の一例を示す図である。
【図２】本発明におけるクライアント装置及び画像形成装置の詳細構成の一例を示すブロック図である。
【図３】本発明における情報入力画面の一例である
【図４】本発明における、印刷システムにおけるモジュール構成図である。
【図５】実施例１にかかる画像形成装置における処理動作を示すフローチャートを示す図である。
【図６】実施例１における通信パケットの一例である。
【図７】実施例１における画像形成装置が保持する許可リストの一例である。
【図８】実施例１におけるスプーラ監視モジュールにおける処理動作を示すフローチャートを示す図である。
【図９】実施例１における情報入力ＵＩにおける処理動作を示すフローチャートを示す図である。
【図１０】実施例１における管理サーバのクライアント管理モジュールが保持する許可リストの一例である
【図１１】実施例１における印刷許可申請モジュールにおける処理動作を示すフローチャートを示す図である。
【図１２】実施例１におけるクライアント管理モジュールにおける処理動作を示すフローチャートを示す図である。
【図１３】実施例２における画像形成装置の印刷許可解除の処理動作を示すフローチャートを示す図である。
【図１４】実施例３における画像形成装置の印刷許可解除の処理動作を示すフローチャートを示す図である。
【図１５】実施例４における画像形成装置の処理動作を示すフローチャートを示す図である。
【図１６】実施例５における画像形成装置の処理動作を示すフローチャートを示す図である。
【図１７】実施例６における印刷システムにおけるモジュール構成図である。
【符号の説明】
【０１７８】
１０１  管理サーバ
１０３、１０４  クライアント装置
１０５  画像形成装置
１０６  ネットワーク
【図１】
0005328292.tif 000002
【図２】
0005328292.tif 000003
【図３】
0005328292.tif 000004
【図４】
0005328292.tif 000005
【図５】
0005328292.tif 000006
【図６】
0005328292.tif 000007
【図７】
0005328292.tif 000008
【図８】
0005328292.tif 000009
【図９】
0005328292.tif 000010
【図１０】
0005328292.tif 000011
【図１１】
0005328292.tif 000012
【図１２】
0005328292.tif 000013
【図１３】
0005328292.tif 000014
【図１４】
0005328292.tif 000015
【図１５】
0005328292.tif 000016
【図１６】
0005328292.tif 000017
【図１７】
0005328292.tif 000018