(57)【特許請求の範囲】
【請求項１】
情報処理装置から画像処理装置に送信されるジョブ情報に対するログ情報を管理するサーバ装置であって、
前記情報処理装置から受信する前記ログ情報を一時記憶領域に記憶する記憶手段と、
前記情報処理装置から受信するログ情報に基づいて、前記情報処理装置で取得した前記ログ情報を識別するための識別情報を発行する発行手段と、
前記発行手段により発行された前記識別情報が自身により生成されたことを認証するための情報として、前記識別情報に基づき認証情報を生成する生成手段と、
前記発行手段により発行された前記識別情報、及び前記生成手段により生成される前記認証情報を前記情報処理装置に送信する送信手段と、
前記画像処理装置が情報処理装置から受信するジョブ情報から抽出した識別情報、及び認証情報を、前記画像処理装置から受信する受信手段と、
前記受信手段が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されているか否かを判断する判断手段と、
前記判断手段による判断結果を前記画像処理装置に通知する通知手段と、
を有することを特徴とするサーバ装置。
【請求項２】
前記ログ情報は、前記ジョブ情報により形成される画像データに基づく画像ログであることを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記判断手段により、前記受信手段が前記画像処理装置から受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていると判断した場合、前記一時記憶領域に記憶されている前記ログ情報を前記一時記憶領域とは異なる記憶領域に保持する保持手段を備えることを特徴とする請求項１または請求項２のいずれか１項に記載のサーバ装置。
【請求項４】
前記通知手段により、前記判断手段において前記受信手段が前記画像処理装置から受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていない旨の判断結果が前記画像処理装置に通知された場合、前記画像処理装置において前記ジョブ情報に基づく画像処理が実行されないことを特徴とする請求項１乃至請求項３のいずれか１項に記載のサーバ装置。
【請求項５】
前記受信手段が受信した識別情報、及び認証情報を用いて、当該認証情報により当該識別情報が前記サーバ装置により発行されたものか否かを認証する認証手段を更に有し、
前記判断手段は、前記認証手段により認証された識別情報を用いて判断処理を行う事を特徴とする請求項１乃至請求項４のいずれかに１項に記載のサーバ装置。
【請求項６】
前記認証手段により識別情報の認証が失敗した場合、前記画像処理装置に対して認証失敗の旨を通知する認証情報通知手段を更に有することを特徴とする請求項５に記載のサーバ装置。
【請求項７】
ジョブ情報を生成する情報処理装置、前記情報処理装置から受信したジョブ情報に基づく画像処理を実行する画像処理装置及び前記ジョブ情報に対するログ情報を管理するサーバ装置を含む管理システムであって、
前記情報処理装置は、
自身が生成したジョブ情報に対するログ情報を取得するログ取得手段と、
前記取得手段により取得した前記ログ情報を前記サーバ装置に送信するログ送信手段と、
前記サーバ装置から受信する識別情報、及び認証情報を前記ジョブ情報とともに前記画像処理装置に送信するジョブ送信手段と、
前記サーバ装置は、
前記ログ送信手段から受信した前記ログ情報を一時記憶領域に記憶する記憶手段と、
前記ログ送信手段から受信した前記ログ情報に基づいて、前記情報処理装置で取得した前記ログ情報を識別するための識別情報を発行する発行手段と、
前記発行手段により発行された前記識別情報が自身により生成されたことを認証するための情報として、前記識別情報に基づき認証情報を生成する生成手段と、
前記ログ送信手段から受信した前記ログ情報の応答として、前記発行手段により発行された前記識別情報、及び前記生成手段により生成される前記認証情報を前記情報処理装置に応答する応答手段と、
前記画像処理装置から前記情報処理装置から前記ジョブ情報とともに受信した識別情報、及び認証情報を受信する受信手段と、
前記受信手段が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されているか否かを判断する判断手段と、
前記判断手段による判断結果を前記画像処理装置に通知する通知手段と、
前記画像処理装置は、
前記情報処理装置から前記ジョブ情報とともに受信した識別情報を前記サーバ装置に送信する送信手段と、
前記サーバ装置の通知手段により通知される判断結果に基づき、前記ジョブ情報に基づく処理を制御する制御手段と、
を有することを特徴とする管理システム。
【請求項８】
前記画像処理装置は、前記情報処理装置から前記ジョブ情報とともに受信した識別情報と認証情報とを用いて、当該認証情報により当該識別情報が前記サーバ装置により発行されたものか否かを認証する認証手段を更に有し、
前記送信手段は、前記認証手段により認証された識別情報を前記サーバ装置に送信することを特徴とする請求項７記載の管理システム。
【請求項９】
前記画像処理装置の制御手段は、前記サーバ装置の通知手段により通知される判断結果において前記受信手段が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていないと判断された旨が通知された場合、前記ジョブ情報に対するログ情報を取得して前記サーバ装置に送信するとともに前記ジョブ情報に基づく画像処理を実行することを特徴とする請求項７記載の管理システム。
【請求項１０】
情報処理装置から画像処理装置に送信されるジョブ情報に対するログ情報を管理するサーバ装置における管理方法であって、
前記情報処理装置から受信する前記ログ情報を一時記憶領域に記憶する記憶工程と、
前記情報処理装置から受信するログ情報に基づいて、前記情報処理装置で取得した前記ログ情報を識別するための識別情報を発行する発行工程と、
前記発行工程により発行された前記識別情報が自身により生成されたことを認証するための情報として、前記識別情報に基づき認証情報を生成する生成工程と、
前記発行工程により発行された前記識別情報、及び前記生成工程により生成される前記認証情報を前記情報処理装置に送信する送信工程と、
前記画像処理装置が情報処理装置から受信するジョブ情報から抽出した識別情報、及び認証情報を、前記画像処理装置から受信する受信工程と、
前記受信工程が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されているか否かを判断する判断工程と、
前記判断工程による判断結果を前記画像処理装置に通知する通知工程と、
を有することを特徴とする管理方法。
【請求項１１】
前記ログ情報は、前記ジョブ情報により形成される画像データに基づく画像ログであることを特徴とする請求項１０に記載の管理方法。
【請求項１２】
前記判断工程により、前記受信工程が前記画像処理装置から受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていると判断した場合、前記一時記憶領域に記憶されている前記ログ情報を前記一時記憶領域とは異なる記憶領域に保持する保持工程を備えることを特徴とする請求項１０または請求項１１のいずれか１項に記載の管理方法。
【請求項１３】
前記通知工程により、前記判断工程において前記受信工程が前記画像処理装置から受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていない旨の判断結果が前記画像処理装置に通知された場合、前記画像処理装置は前記ジョブ情報に基づく画像処理を実行しないことを特徴とする請求項１０乃至請求項１２のいずれか１項に記載の管理方法。
【請求項１４】
前記受信工程が受信した識別情報、及び認証情報を用いて、当該認証情報により当該識別情報が前記サーバ装置により発行されたものか否かを認証する認証工程を更に有し、
前記判断工程は、前記認証工程により認証された識別情報を用いて判断処理を行う事を特徴とする請求項１０乃至請求項１３のいずれかに１項に記載の管理方法。
【請求項１５】
前記認証工程により識別情報の認証が失敗した場合、前記画像処理装置に対して認証失敗の旨を通知する認証情報通知工程を更に有することを特徴とする請求項１４に記載の管理方法。
【請求項１６】
ジョブ情報を生成する情報処理装置、前記情報処理装置から受信したジョブ情報に基づく画像処理を実行する画像処理装置及び前記ジョブ情報に対するログ情報を管理するサーバ装置を含む管理システムにおける管理方法であって、
前記情報処理装置は、
自身が生成したジョブ情報に対するログ情報を取得するログ取得工程と、
前記取得工程により取得した前記ログ情報を前記サーバ装置に送信するログ送信工程と、
前記サーバ装置から受信する識別情報、及び認証情報を前記ジョブ情報とともに前記画像処理装置に送信するジョブ送信工程と、
前記サーバ装置は、
前記ログ送信工程から受信した前記ログ情報を一時記憶領域に記憶する記憶工程と、
前記ログ送信工程から受信した前記ログ情報に基づいて、前記情報処理装置で取得した前記ログ情報を識別するための識別情報を発行する発行工程と、
前記発行工程により発行された前記識別情報が自身により生成されたことを認証するための情報として、前記識別情報に基づき認証情報を生成する生成工程と、
前記ログ送信工程から受信した前記ログ情報の応答として、前記発行工程により発行された前記識別情報、及び前記生成工程により生成される前記認証情報を前記情報処理装置に応答する応答工程と、
前記画像処理装置から前記情報処理装置から前記ジョブ情報とともに受信した識別情報、及び認証情報を受信する受信工程と、
前記受信工程が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されているか否かを判断する判断工程と、
前記判断工程による判断結果を前記画像処理装置に通知する通知工程と、
前記画像処理装置は、
前記情報処理装置から前記ジョブ情報とともに受信した識別情報を前記サーバ装置に送信する送信工程と、
前記サーバ装置の通知工程により通知される判断結果に基づき、前記ジョブ情報に基づく処理を制御する制御工程と、
を有することを特徴とする管理方法。
【請求項１７】
前記画像処理装置は、前記情報処理装置から前記ジョブ情報とともに受信した識別情報と認証情報とを用いて、当該認証情報により当該識別情報が前記サーバ装置により発行されたものか否かを認証する認証工程を更に有し、
前記送信工程は、前記認証工程により認証された識別情報を前記サーバ装置に送信することを特徴とする請求項１６記載の管理方法。
【請求項１８】
前記画像処理装置の制御工程は、前記サーバ装置の通知工程により通知される判断結果において前記受信工程が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されていないと判断された旨が通知された場合、前記ジョブ情報に対するログ情報を取得して前記サーバ装置に送信するとともに前記ジョブ情報に基づく画像処理を実行することを特徴とする請求項１６記載の管理方法。
【請求項１９】
請求項１０乃至１８のいずれか１項に記載の管理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項２０】
請求項１０乃至１８のいずれか１項に記載の管理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ情報を生成する情報処理装置、ジョブ情報に基づく画像処理を実行する画像処理装置、ジョブ情報に対するログ情報を管理するサーバ装置を含む管理システムにおけるジョブ管理処理に関するものである。
【背景技術】
【０００２】
従来から、ネットワークに接続されたプリンタ、スキャナ、ファクシミリ、複写機など、およびそれらを統合したマルチファンクション機器（ＭＦＰ）などの周辺機器を管理する管理システムが提案されている。
【０００３】
このような管理システムにおいて、多数の印刷ジョブ情報を取得して管理する画像処理システムに関するジョブ管理方式が開発されてきている。
【０００４】
ユーザや部門ごとの適切なジョブの管理（ジョブアカウント）を行うためには、周辺機器で実行されたジョブの情報を取得することが必要である。
【０００５】
また、別の観点よりユーザが印刷したジョブに含まれる文字列やページイメージを保存し印刷履歴の監査を行うシステムも存在する。
【０００６】
従来、ジョブの情報を取得するためには、図２２から図２４に示すような方法があった。
【０００７】
以下、図２２〜図２４を参照して、プリンタでＰＤＬよりログ情報を生成する処理について説明する。
【０００８】
図２２〜図２４は、従来の印刷システムの構成を説明する図である。本例は、ホストと、プリンタと、ログ情報を管理するサーバとが通信可能な印刷システム例である。
【０００９】
図２２に示すように、ホスト１００にインストールされるプリンタドライバにより生成したジョブ情報５００に含まれるログ情報をプリンタ２００で生成し、ログ情報４００Ｂとしてサーバ３００へ転送する。サーバ３００は、プリンタ２００で生成されたログ情報４００Ｂを受信して、サーバ３００が備える記憶装置に保存する。
【００１０】
一般にプリンタ２００は、複数台のホスト１００で共有されることが多い。
【００１１】
この方式では、ジョブに含まれる文字列やページイメージを保存し印刷履歴の監査を行う場合、プリンタ２００でのログ生成する処理負荷が非常に高くなる。
【００１２】
また、プリンタ２００がローコストなプリンタの場合、文字列やページイメージのログ情報の生成がハード制限などで難しい。さらに、ジョブ情報５００に含まれる情報が正しいと保証されない場合がある。
【００１３】
一方、ホストでログ情報を生成する印刷システムでは、図２３に示すように、ホスト１００にインストールされるプリンタドライバが、印刷ジョブのログ情報４００Ａを生成し、サーバ３００へ転送後、ジョブ情報５００をプリンタ２００へ転送する。
【００１４】
この場合、ホスト１００上でユーザ認証方式が導入されていれば実際に印刷したユーザ名などの精度の高いログ情報４００Ａを取得可能である。
【００１５】
また、一般にプリンタ２００よりホスト１００の方が高性能である可能性が高く、個々のホストでログを収集可能であるので、ログ情報４００Ａの処理効率が高い。
【００１６】
しかし、本例は実際の印刷を行うプリンタ２００で、ホスト１００でログ情報を取得した印刷ジョブであるか保証できないという問題があった。
【００１７】
また、ホスト１００とプリンタ２００でログ情報を生成する印刷システムでは、図２４に示すように、ホスト１００のプリンタドライバにより印刷ジョブのログ情報４００Ａを生成し、サーバ３００へ転送後、ジョブ情報５００をプリンタ２００へ転送する。さらに、プリンタ２００でもログ情報４００Ｂを生成しサーバ３００へ転送する。サーバ３００は、ログ情報４００Ａ、４００Ｂを記憶装置に保存する。
【００１８】
この方法は、一番確実な方法であるが、サーバ３００で１つの印刷ジョブに対して２つのログ情報４００Ａ，４００Ｂを保存して管理する構成となる。
【００１９】
このように２つのログ情報４００Ａ，４００Ｂを保存するのはメモリ資源を考慮すると無駄となる。そこで、下記特許文献１では、印刷ジョブに関するＩＤを設けて、２つのログ情報４００Ａとログ情報４００ＢへそのＩＤを含め、サーバ３００でログ情報４００Ａ、４００Ｂのマージを行う。
【００２０】
また、この方式では、図２２のプリンタでＰＤＬよりログ情報を生成する従来例と同様の問題がある。
【００２１】
まず、ジョブに含まれる文字列やページイメージを保存し印刷履歴の監査を行う場合、プリンタ２００でのログ生成負荷が非常に高くなる。
【００２２】
さらに、プリンタ２００がローコストなプリンタの場合、文字列やページイメージのログ情報の生成がハード制限などで難しい。
【００２３】
また、下記特許文献１には、クライアントコンピュータがプリンタと通信して取得するジョブ情報をジョブアカウントサーバが管理するジョブ管理システムが開示されている。
【００２４】
さらに、下記特許文献２には、プリンタが複数のクライアントコンピュータから受信刷るジョブを取得して、ジョブログをジョブアカウントサーバに送信して、ジョブアカウントサーバがジョブログを管理するシステムが開示されている。
【００２５】
このように、従来のログ管理システムでは、ホストまたはプリンタからジョブ情報を取得して、ジョブアカウントサーバがジョブ情報をマージして管理することが可能であった。
【特許文献１】特開２００３−３０８１８４号公報
【特許文献２】特開２００３−３１６５５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
これらの従来例に共通する課題は以下の通りである。
【００２７】
実際にユーザが印刷を行ったホスト１００で、ログ情報４００Ａを生成した方が精度の高い情報を入手可能なので、ホスト１００でログ情報４００Ａを生成したいという要求に対応できない。
【００２８】
プリンタ２００のハード資源より、ホスト１００のハード資源が高性能であるので、ホスト１００でログ情報４００Ａを生成したいという要求に対応できない。
【００２９】
しかし、実際に印刷動作を行うプリンタ２００で、ホスト１００でログ情報を取得したことを証明することが困難となってしまう。
【００３０】
さらに、従来のジョブ管理システムでは、ジョブアカウントサーバがホストログ又はプリンタログをマージして管理することは可能であるが、画像ログに関してはマージして管理することを前提としていない。
【００３１】
このため、ジョブアカウントサーバは、ホストから取得するログ情報と、プリンタから取得するログ情報とをそれぞれ取得してそれぞれ記憶して管理する構成となる。
【００３２】
したがって、ジョブアカウントサーバはホスト又はプリンタから取得する画像ログを重複して管理するため、リソースを無駄に使用してしまうという課題があった。
【００３３】
さらに、ジョブ管理システムにおいて、印刷装置がホストから取得するジョブで各ページの画像を印刷する場合に、各ページのデータが改竄されているかどうかを容易に確認することができないという課題があった。
【００３４】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、情報処理装置からジョブ情報を受信する画像処理装置に対して、当該ジョブ情報のログ情報を当該情報処理装置から取得しているかどうかを通知できる仕組みを提供することである。
【課題を解決するための手段】
【００３５】
上記目的を達成する本発明のサーバ装置は以下に示す構成を備える。
【００３６】
情報処理装置から画像処理装置に送信されるジョブ情報に対するログ情報を管理するサーバ装置であって、前記情報処理装置から受信する前記ログ情報を一時記憶領域に記憶する記憶手段と、前記情報処理装置から受信するログ情報に基づいて、前記情報処理装置で取得した前記ログ情報を識別するための識別情報を発行する発行手段と、前記発行手段により発行された前記識別情報が自身により生成されたことを認証するための情報として、前記識別情報に基づき認証情報を生成する生成手段と、前記発行手段により発行された前記識別情報、及び前記生成手段により生成される前記認証情報を前記情報処理装置に送信する送信手段と、前記画像処理装置が情報処理装置から受信するジョブ情報から抽出した識別情報、及び認証情報を、前記画像処理装置から受信する受信手段と、前記受信手段が受信した識別情報に対応するログ情報が前記一時記憶領域に記憶されているか否かを判断する判断手段と、前記判断手段による判断結果を前記画像処理装置に通知する通知手段と、を有することを特徴とする。
【発明の効果】
【００３７】
本発明によれば、情報処理装置からジョブ情報を受信する画像処理装置に対して、当該ジョブ情報のログ情報を当該情報処理装置から取得しているかどうかを通知できる。
【発明を実施するための最良の形態】
【００３８】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００３９】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の第１実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。なお、本例は、ホストとプリンタとサーバがネットワークを介して通信可能な印刷システムの例である。本例は、画像処理装置として、プリンタの例を示すが、デジタル複写機や複合機であっても本発明を適用可能である。
【００４０】
また、プリンタの台数は、図示される台数を超えていても本発明を適用可能である。
【００４１】
以下、図１に示す印刷システムについて、各デバイス間での情報のやり取りについて説明する。
【００４２】
図１において、ホスト１００と、プリンタ２００と、そしてサーバ３００は通信媒体９００を介して相互に通信可能に接続されている。ここで、通信媒体９００は、ローカルエリアネットワーク（ＬＡＮ）を想定したシステムとするが、サーバ３００は、ルータを介して別のネットワーク上に存在しているシステムであってもよい。
【００４３】
サーバ３００は、サーバ３００内に備える記憶装置にＨＭＡＣ（Keyed−Hashing for Message Authentication code）用共通鍵６００を保持している。なお、通信媒体９００は、盗聴防止や改ざん防止のために、暗号化や電子署名に基づく処理を適用可能である。
【００４４】
また、本印刷システムは、盗聴防止や改ざん防止のために、暗号化や電子署名に基づく処理を備える印刷システムに限定するものではない。
【００４５】
ユーザがホスト１００でアプリケーションより印刷を実行した場合、ホスト１００は、図３に示すログ情報４００を生成し、通信媒体９００を介してサーバ３００へ送信する。このようにホスト１００は、図３に示すログ情報４００をサーバ３００に送信するログ送信機能（図９に示すＳ１０２）を備える。
【００４６】
ここで、ログ情報には、ホスト１００の環境情報や、印刷ユーザ名や、そしてページ毎に含まれる文字列や、ページイメージが含まれる。本実施形態におけるログ情報４００の詳細については、図３を参照して詳述する。
【００４７】
サーバ３００は、そのログ情報４００に対してＵＵＩＤ(Universally Unique Identifier)を発行する。ここで、ＵＵＩＤは、生成日時とネットワークカードの ＭＡＣアドレス(Media Access Control address)や乱数を組み合わせて、自動的に一意となる識別情報（ＩＤ）である。
【００４８】
さらに、サーバ３００は、記憶装置に保持しているＨＭＡＣ用共通鍵６００、ＵＵＩＤに対する任意のハッシュ値に基づきＭＡＣ（Message  Authentication Code）値を生成する。このＭＡＣ値は、サーバ３００自身が発行したＵＵＩＤであることを認証するために用いる認証情報として機能する。ここで、ＭＡＣ値とは、ハッシュ値と同意であり、ハッシュアルゴリズムは、任意のハッシュ関数によりMAC値を算出する。なお、任意のハッシュ関数には、HMAC-MD5、HMAC-SHA1などがある。
【００４９】
サーバ３００が行うＵＵＩＤが正しいと証明する処理は、ＭＡＣ値を生成した同じ方法を取ることで生成したＭＡＣ値と、プリンタ２００からＵＵＩＤと共に送られてきたＭＡＣ値が等しいことを確認することにより行われる。
【００５０】
サーバ３００は、生成されるＵＵＩＤとＭＡＣ値と含む情報７００を、通信媒体９００を介してホスト１００へ送信する。ＵＵＩＤ（識別情報）、及びＭＡＣ値（認証情報）を含む情報７００は、図４のようなデータ構造をしている。
【００５１】
ホスト１００は、通信媒体９００を介してサーバ３００より取得したＵＵＩＤとＭＡＣ値を含む情報７００が設定されるジョブ情報５００を生成し、通信媒体９００を介してプリンタ２００へ送信する。なお、ジョブ情報５００は、図６に示すように記述言語としてＰＤＬが含まれるデータ構造を備える。
【００５２】
ホスト１００は、サーバ３００より取得した情報７００ＡよりＵＵＩＤとそのＭＡＣ値を抽出して図６に示すデータ構造に基づいて、ログブロックのＵＵＩＤ７１１、７２１をジョブ情報５００に含ませる。ジョブ情報５００のデータ構造の詳細については後述する。
【００５３】
プリンタ２００は、通信媒体９００を介してホスト１００より受け取ったジョブ情報５００より、ＵＵＩＤとＭＡＣ値と含む情報７００Ｂを取得し、サーバ３００へ送信する。
【００５４】
サーバ３００は、ＵＵＩＤとＭＡＣ値と含む情報７００Ｂをもとに、ホスト１００でログ情報を取得したことを判断し、その結果をホストログ取得情報８００として通信媒体９００を介してプリンタ２００へ送信する。
【００５５】
プリンタ２００は、通信媒体９００を介してサーバ３００から受信したホストログ取得情報８００を参照し、ホスト１００でログ情報の取得が実施済みであると判断した場合、ホスト１００から受信したジョブ情報５００に対する印刷処理を行う。
【００５６】
一方、プリンタ２００は、ホストログ取得情報８００からホスト１００でログ情報の取得が未実施であると判断した場合は、ログ情報４０５を生成し、サーバ３００へ送信する。
【００５７】
なお、ログ情報４０５の内容および構造は、ログ情報４００と同じでも良いし異なっていても良い。
【００５８】
また、プリンタ２００によるログ情報４０５の送信は、印刷前であっても印刷後でも良い。また、プリンタ２００は、プリンタ２００上のメモリ又はＨＤＤなどの記録領域にログ情報４０５を一時記録し、印刷とは非同期のタイミングで一時記録したログ情報４０５をサーバ３００へ送信しても良い。
【００５９】
図２は、図１に示した印刷システムを構成するホスト１００，プリンタ２００，サーバ３００が備えるモジュールの構成を説明するブロック図である。なお、図２において、図１と同一のものには、同一の符号を付してある。
【００６０】
本実施形態の印刷システムは、ホスト１００と、プリンタ２００と、そしてサーバ３００は、それぞれのホスト側通信装置１７０、サーバ側通信装置３１０、プリンタ側通信装置２１０で通信媒体９００へ接続され、データ通信が可能である。
【００６１】
さらに、ホスト１００とサーバ３００は、双方向通信可能であり、プリンタ２００とサーバ３００も双方向通信可能である。
【００６２】
しかし、ホスト１００とプリンタ２００は、ホスト１００からプリンタ２００への片方向通信でも構わないし、双方向通信可能でも構わない。
【００６３】
また、ホスト側通信装置１７０、プリンタ側通信装置２１０、サーバ側通信装置３１０間の通信は、盗聴防止や改ざん防止のために、暗号化や電子署名がなされていればさらに良い。
【００６４】
また、本発明を適用するための印刷システムは、盗聴防止や改ざん防止のために、暗号化や電子署名に基づく処理を備える印刷システムに限定されるものではない。
【００６５】
ホスト１００を構成するモジュールは、オペレーションシステム１１０上で動作している。オペレーションシステム１１０上で動作することにより、不図示のキーボードやマウスなどの入力装置や、モニタなどの出力装置や、さらにハードディスク又はＲＡＭなどの記憶装置を利用できる。
【００６６】
ユーザがホスト１００上のアプリケーション１２０で印刷命令を実行することにより印刷が開始される。
【００６７】
アプリケーション１２０は、オペレーションシステム（ＯＳ）１１０で提供されるグラフィックスシステム１３０をコールすることにより印刷動作を開始する。
【００６８】
グラフィックスシステム１３０は、共通化された描画インタフェースを持ち、アプリケーション１２０に提供している。このことによりアプリケーション１２０は、プリンタに依存しない構造となっている。
【００６９】
また、グラフィックスシステム１３０は、それぞれのプリンタに対応するプリンタドライバ１４０を管理している。プリンタドライバ１４０は、それぞれのプリンタに依存するジョブ情報５００を生成する能力をもっている。グラフィックスシステム１３０は、プリンタドライバ１４０をコールすることにより、それぞれのプリンタに対するジョブ情報５００を生成する。
【００７０】
本実施形態では、さらにプリンタドライバ１４０に、ホスト側ログ生成手段１５０を備える。
【００７１】
ここで、ホスト側ログ生成手段１５０は、プリンタドライバ１４０がジョブ情報５００を生成する際に、図３に示すようなログ情報４００を生成し、ホスト側通信装置１７０を経由してサーバ３００へ送信する。
【００７２】
また、ホスト側ログ生成手段１５０は、図１に示した、サーバ３００のＵＵＩＤとＭＡＣ値と含む情報７００を受けて、ＵＵＩＤとＭＡＣ値と含む情報７００をプリンタドライバ１４０へ伝える。
【００７３】
プリンタドライバ１４０は、サーバ３００から受信したＵＵＩＤとＭＡＣ値と含む情報７００が設定されたジョブ情報５００を生成する。
【００７４】
そして、プリンタドライバ１４０は、生成したジョブ情報５００をプリンタスプーラ１６０に集めて、その後、ホスト側通信装置１７０を経由して、プリンタ２００へ送信される。
【００７５】
プリンタ２００は、プリンタ側通信装置２１０を介して通信媒体９００と接続されている。
【００７６】
プリンタ２００は、ホスト１００からのジョブ情報５００を、このプリンタ側通信装置２１０を経由して受信する。受信したジョブ情報５００は、プリンタコントローラ２２０で処理され、ＲＩＰ２５０で描画可能な状態まで解釈される。なお、必要に応じて描画可能な状態まで解釈されたデータは一時的にプリンタ内記憶装置２３０へ格納される。
【００７７】
なお、描画可能な状態まで解釈されたデータの形式に関しては、基本的な印刷処理動作であり、本発明に関係ないので省略する。
【００７８】
このようにして描画可能な状態まで解釈されたデータは、ＲＩＰ２５０でイメージビットマップへ変換される。ＲＩＰ２５０は、変換されたイメージビットマップをプリンタエンジン２６０へ渡すことで、紙などの印刷媒体への印刷が可能になる。
【００７９】
プリンタ２００は、印刷状況の表示や印刷設定などの変更を行うためにプリンタ２００はＵＩパネル２７０を持ち、プリンタコントローラ２２０と接続されている。
【００８０】
本実施形態では加えて、プリンタ側ログ処理手段２４０とプリンタ側ログ生成手段２８０がプリンタコントローラ２２０に接続されている。
【００８１】
プリンタ側ログ処理手段２４０には、ＰＤＬ解析時にプリンタコントローラ２２０より、ＵＵＩＤとＭＡＣ値と含む情報７００Ｂが渡される。
【００８２】
プリンタ側ログ処理手段２４０は、プリンタ側通信装置２１０を介して、サーバ３００へＵＵＩＤとＭＡＣ値と含む情報７００Ｂを送信する。
【００８３】
また、プリンタ側ログ処理手段２４０は、サーバ３００より、プリンタ側通信装置２１０を介して、ホストログ取得情報８００を受信する。
【００８４】
さらに、プリンタ側ログ生成手段２８０は、プリンタコントローラ２２０にてジョブ情報５００から抽出された情報（ＵＵＩＤ、ＭＡＣ値を含む）およびＲＩＰ２５０で解釈された描画データを、プリンタ側通信装置２１０を経由してサーバ３００へ送信する。
【００８５】
サーバ３００は、サーバ側通信装置３１０を介して通信媒体９００と接続されている。
【００８６】
サーバ３００は、ホスト１００からのログ情報４００を受けて、サーバ側ログ管理手段３２０でＵＵＩＤとＭＡＣ値と含む情報７００を生成し、サーバ側通信装置３１０を介して、ホスト１００へ送信する。その際に、サーバ側ログ管理手段３２０はＵＵＩＤ生成手段３３０を用いてログを識別するためのＵＵＩＤを生成する。
【００８７】
また、サーバ側ログ管理手段３２０は、ＨＭＡＣ生成手段３４０を用いてＵＵＩＤのためのＭＡＣ値（ハッシュ値）を生成する。なお、ＭＡＣ値生成に用いられるＨＭＡＣ（Keyed−Hashing for Message Authentication code）用共通鍵は、ログ主記憶手段３６０に格納されている。なお、ログ主記憶手段３６０は、ログ一時記憶手段３５０と異なる記憶領域でログ情報を記憶する。
【００８８】
さらに、サーバ側ログ管理手段３２０は、ＵＵＩＤに関連付けてログ一時記憶手段３５０に、ログ情報４００を一時的に格納する。ここで、ログ一時記憶手段３５０は、サーバ側ログ管理手段３２０がホスト１００から受信するログ情報４００を一時的に記憶する一時記憶領域として機能する。
【００８９】
サーバ３００は、通信媒体９００を介してプリンタ２００から送信されるＵＵＩＤとＭＡＣ値を含む情報７００Ｂを受けて、サーバ側ログ管理手段３２０で一時記録しているＵＵＩＤとＭＡＣ値の検証を行う。
【００９０】
さらに、サーバ側ログ管理手段３２０は、ＵＵＩＤに関連付けられたログ情報４００がログ一時記憶手段３５０へ格納されているかを確認し、その結果をホストログ取得情報８００として、通信媒体９００を介してプリンタ２００へ送信する。
【００９１】
ここで、サーバ側ログ管理手段３２０は、該当のログ情報があると判断した場合は、該当のログ情報をログ一時記憶手段３５０からログ主記憶手段３６０へ移動する。
【００９２】
このように本実施形態では、ホスト１００がプリンタドライバ１４０を介してジョブ情報５００を生成する際に、サーバ３００で生成されたＵＵＩＤとＭＡＣ値と含む情報７００Ａに基づいて、ＵＵＩＤ，ＭＡＣ値が設定されたジョブ情報５００をプリンタ２００に送信する。
【００９３】
そして、プリンタ２００は、ホスト１００から受信したジョブ情報５００から抽出されるＵＵＩＤ，ＭＡＣ値を含む情報７００Ｂとしてサーバ３００に送信する。これにより、サーバ３００がホスト１００から受信するログ情報４００の保存状態を判断することができる。
【００９４】
これにより、サーバ３００がホスト１００とプリンタ２００とからログ情報を重複して受信して、サーバ３００が備える記憶装置に蓄積してしまうことを防止することができる。
【００９５】
図３は、図２に示したプリンタ２００からサーバ３００へ転送されるログ情報４００のデータ構造を説明する図である。
【００９６】
なお、本例において、ログ情報４００は３種類のログブロックで形成されている。
【００９７】
第一のログブロックは、ドキュメント情報ヘッダログブロック４１０で、ログ情報４００の先頭に位置している。
【００９８】
ドキュメント情報ヘッダログブロック４１０は、印刷ジョブで一意に決定される情報である、印刷先プリンタの、ポート名、名称やホスト名称などのホスト環境情報と、印刷ジョブ情報としてジョブ名、ジョブのＵＵＩＤなどの情報を保持している。ここで、ホスト環境情報にはＩＰアドレス、ＭＡＣアドレスが含まれる。
【００９９】
また、第一のログブロックは、ジョブに関するＵＵＩＤ４１１を保持しており、下に続くログブロックへのＵＵＩＤを記載することで関連付けを行っている。
【０１００】
第二のログブロックは、ページ情報ログブロック４２０であり、ドキュメント情報ヘッダログブロック４１０に続いて、ジョブに含まれるページ数分続く。
【０１０１】
ページ情報ログブロック４２０は、複数のページ情報ログブロック４２０−１〜４２０−Ｎから構成され、ジョブに関連するＵＵＩＤ４１１を、ジョブのＵＵＩＤ４２１として保持し、ジョブとの関連性を明示する。
【０１０２】
また、ページ情報ログブロック４２０は、ページに関するモノクロ印刷／カラー印刷などの設定値が含まれる。さらに、ページ情報ログブロック４２０は、必要に応じてページ内に含まれるテキスト情報４２２や、ページイメージ４２３を含まれる。
【０１０３】
ページイメージ４２３は確認用であるため印刷より解像度を落としたもので良い。ここで、ページイメージ４２３は、プリンタ２００で印刷される画像データに基づく画像ログとして機能する。
【０１０４】
第三のログブロックは、ドキュメント情報ターミネータログブロック４３０で、ログ情報４００の最後尾に位置する。
【０１０５】
ドキュメント情報ターミネータログブロック４３０は、ジョブに関連するＵＵＩＤ４１１を、ジョブのＵＵＩＤ４３１として保持し、ジョブとの関連性を明示する。また、ドキュメント情報ターミネータログブロック４３０は、ジョブに含まれる総ページ数４３２を含む。
【０１０６】
以下、図２に戻り、印刷システムの構成について説明する。
【０１０７】
ホスト１００は、通信エラーなどによるログ取得抜けを防ぐために、例えばページに関するログ情報をサーバ３００に登録したのを確認して、そのページに関するジョブ情報５００をプリンタ２００へ送信する。
【０１０８】
ジョブに関するログ情報４００の全てをサーバ３００に登録した後、ジョブ情報５００をプリンタ２００へ送信すると、1ページ目の印刷開始時間が遅くなる。
【０１０９】
そのため、図３に示すようにログ情報４００はブロック構造となっており、ブロック毎にホスト１００はサーバ３００へログを登録し、登録後該当するジョブ情報５００をプリンタ２００へ発行する。サーバ３００からのＵＵＩＤとＭＡＣ値と含む情報７００は、ログのブロック毎にホスト１００へ発行される。
【０１１０】
図４は、図１に示したＵＵＩＤとＭＡＣ値と含む情報７００Ａ、７００Ｂのデータ構造を説明する図である。なお、ＵＵＩＤとＭＡＣ値と含む情報７００Ａは、サーバ３００により生成され、ホスト１００に返信される。また、ＵＵＩＤとＭＡＣ値と含む情報７００Ｂは、プリンタ２００からサーバ３００に送信される。
【０１１１】
図４において、ＵＵＩＤとＭＡＣ値と含む情報７００Ａ、７００Ｂは、ログブロックのＵＵＩＤ７１０と、そのＭＡＣ値（ハッシュ値）であるログブロックのＵＵＩＤのＭＡＣ値７２０を有している。
【０１１２】
ＵＵＩＤとＭＡＣ値と含む情報７００Ａは、サーバ３００からホスト１００への通信で使用され、ＵＵＩＤとＭＡＣ値と含む情報７００Ｂはプリンタ２００からサーバ３００への通信で使用される。
【０１１３】
本実施形態では、サーバ３００からホスト１００への通信のための情報７００Ａと、プリンタ２００からサーバ３００へ送信される情報７００Ｂとを同じデータ構造とする場合を説明するが、特にそのほかの情報を含んでも構わない。
【０１１４】
例えばプリンタ２００からサーバ３００への通信時は、印刷先の検証のためプリンタの名称を含んでもよい。
【０１１５】
本実施形態では説明のために、以下、ログブロックのＵＵＩＤ７１１、７１２、７１３に関するログブロックのＵＵＩＤのＭＡＣ値にそれぞれ７２１、７２２、７２３という番号を振って説明する。
【０１１６】
図５は、図２に示したログ一時記憶手段３５０に格納されるログ情報のデータ構造を説明する図である。
【０１１７】
本実施形態において、ログ一時記憶手段３５０に記憶されるデータは、ログのＵＵＩＤ７１０で、ログ情報４００を管理する構造となっている。
【０１１８】
サーバ側ログ管理手段３２０は、ログ一時記憶手段３５０にＵＵＩＤ７１０に関連付けてログ情報４００を一時的に格納する際にレコードを追加する。
【０１１９】
また、サーバ側ログ管理手段３２０は、ＵＵＩＤに関連付けられたログ情報４００がログ一時記憶手段３５０に格納されているかを確認する。
【０１２０】
さらに、サーバ側ログ管理手段３２０がログ情報４００がログ一時記憶手段３５０へ格納されていると判断した場合、ログ主記憶手段３６０へログ情報４００を移動する。
【０１２１】
ここでは説明のために、ドキュメント情報ヘッダログブロック４１０と、ページ情報ログブロック４２０と、そしてドキュメント情報ターミネータログブロック４３０をそれぞれＵＵＩＤ７１１、７１２、７１３で管理している。
【０１２２】
なお、ログ一時記憶手段３５０が一杯になるのを防ぐために、レコード毎の有効期間を設けても良い。
【０１２３】
図６は、図１に示したホスト１００よりプリンタ２００へ転送されるジョブ情報５００のデータ構造を説明する図である。本例では、ジョブ情報５００の記述言語としてＰＤＬが含まれる例を示す。
【０１２４】
本実施形態では、ジョブ情報５００は、ログ情報４００同様に３種類のブロックで形成されている。
【０１２５】
第一のブロックは、ＰＤＬヘッダブロック５１０で、ジョブ情報５００の先頭に位置する。ＰＤＬヘッダブロック５１０は、ログ情報４００のドキュメント情報ヘッダログブロック４１０に対応するブロックである。
【０１２６】
ＰＤＬヘッダブロック５１０は、ドキュメント情報ヘッダログブロック４１０の情報５１１を含んでいる。本実施形態では加えて、ＰＤＬヘッダブロック５１０は、ドキュメント情報ヘッダログブロック４１０のＵＵＩＤ７１１とそのＭＡＣ値であるログブロックのＵＵＩＤのＭＡＣ値７２１を含んでいる。
【０１２７】
第二のブロックは、ページ描画ブロック５２０で、ＰＤＬヘッダブロック５１０に続いて、ジョブに含まれるページ数分続く。５２０ａは最終のページ描画ブロックである。
【０１２８】
ページ描画ブロック５２０は、ページ情報ログブロック４２０に対応するブロックである。ページ描画ブロック５２０は、カラー印刷/モノクロ印刷などのページへの印刷設定５２１と、実際のページを形成する描画情報５２２が含まれる。描画情報５２２は、標準的なＰＤＬ描画コマンドでよく、本実施形態では、特に限定されることはない。
【０１２９】
本実施形態では加えて、ページ情報ログブロック４２０のＵＵＩＤ７１２とそのＭＡＣ値であるログブロックのＵＵＩＤのＭＡＣ値７２２を含んでいる。
【０１３０】
第三のブロックは、ＰＤＬターミネータブロック５３０で、ジョブ情報５００の最後尾に位置する。
【０１３１】
ＰＤＬターミネータブロック５３０はドキュメント情報ターミネータログブロック４３０に対応するブロックである。ＰＤＬターミネータブロック５３０は、ジョブ情報５００を構成する総ページ数５３１が含まれる。
【０１３２】
本実施形態では加えて、ＰＤＬターミネータブロック５３０は、ドキュメント情報ターミネータログブロック４３０のＵＵＩＤ７１３とそのＭＡＣ値であるログブロックのＵＵＩＤのＭＡＣ値７２３を含んでいる。
【０１３３】
なお、ＰＤＬのブロックの改ざん防止のために、ＰＤＬブロックのＭＡＣ値である改ざん防止署名５１２、５２３、５３２をそれぞれのブロックに格納している。
【０１３４】
本実施形態ではブロック毎に格納したが、任意のデータサイズ毎に署名を設けてもよい。
【０１３５】
図７は、図２に示したサーバ３００からプリンタ２００へ渡されるホストログ取得情報８００のデータ構造を説明する図である。
【０１３６】
図７において、ホストログ取得情報８００は、ホスト１００よりサーバ３００へログ情報が渡されたかどうかを示すデータであり、実施済み、または、未実施を示すログ取得情報８１０を含む。
【０１３７】
図８は、図２に示したホスト１００、プリンタ２００、サーバ３００の第１のシーケンス例を説明する図である。本例は、シーケンスが正常系の場合のデータの流れに対応する。Ｈ１〜Ｈ４は、ホスト１００のステップを示す。また、Ｓ１〜Ｓ８はサーバ３００のステップを示す。さらに、Ｐ１〜Ｐ５はプリンタ２００のステップを示す。
【０１３８】
図８において、Ｈ１で、ホスト１００は、ユーザの印刷指示により、ホスト側ログ生成手段１５０を用いて、以下のブロックを生成する。ここで、ホスト側ログ生成手段１５０が生成するブロックには、図５に示したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１３９】
そして、Ｈ２で、ホスト１００は、ホスト側ログ生成手段１５０が生成した以下のブロックを、ホスト側通信装置１７０を介してサーバ３００へ転送する。ここで、ホスト１００が転送するブロックには、図５に示したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１４０】
一方、サーバ３００は、Ｓ１で、図５に示したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を、サーバ側通信装置３１０を介してホスト１００より受け取る。
【０１４１】
サーバ側ログ管理手段３２０は、受け取った図５に示したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０に関して、ＵＵＩＤ生成手段３３０を用いて、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３を生成する
そして、Ｓ２で、サーバ３００は、ＨＭＡＣ用共通鍵をキーとしてＨＭＡＣ生成手段３４０を用いてＵＵＩＤのＭＡＣ値７２１、７２２、またはＭＡＣ値７２３を生成する。ＵＵＩＤのＭＡＣ値７２１、７２２、７２３は、それぞれハッシュ値である。
【０１４２】
次に、Ｓ３で、サーバ３００は、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と関連付けて、図８に示すデータ構造でログ一時記憶手段３５０へ以下のブロックを一時保存する。ここで、一時保存するブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１４３】
そして、Ｓ４で、サーバ３００は、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と、対応するＭＡＣ値７２１、７２２、またはＭＡＣ値７２３を、図４に示したデータ構造でホスト１００へ送信する。
【０１４４】
そして、Ｈ３で、ホスト１００は、プリンタドライバ１４０を使って、図６に示すＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０を生成する。ＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０は、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と、対応するＭＡＣ値７２１、７２２、またはＭＡＣ値７２３が含まれている。
【０１４５】
次に、Ｈ４で、ホスト１００は、図６に示すＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０をプリンタ２００へ送信する。
【０１４６】
一方、プリンタ２００は、ホスト１００からのＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０を、プリンタ側通信装置２１０を介して受信する。
【０１４７】
ここで、受信されたＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０はプリンタコントローラ２２０に渡され解釈される。
【０１４８】
プリンタコントローラ２２０は、プリンタ側ログ処理手段２４０に、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と、対応するＭＡＣ値７２１、７２２、またはＭＡＣ値７２３を渡す。プリンタ側ログ処理手段２４０は、Ｐ１で、プリンタ側通信装置２１０を介して、図４に示すデータ構造で、サーバ３００へＵＵＩＤとＭＡＣ値と含む情報７００を送信する。
【０１４９】
そして、サーバ３００は、Ｓ５で、サーバ側通信装置３１０を介してプリンタ２００から受け取ったＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３を、ＨＭＡＣ用共通鍵を参照しＨＭＡＣ生成手段３４０を用いて、ＭＡＣ値'（ハッシュ値）を生成する。
【０１５０】
サーバ３００は、生成したＭＡＣ値'とホスト１００より受け取ったログ情報４００中のＭＡＣ値（ログ一時記憶手段３５０に記憶される）と比べて、サーバ３００が発行したＵＵＩＤと同一であるか判断する。ここで、サーバ３００がＭＡＣ値'とＭＡＣ値とが等しい（同一）と判断した場合は、サーバ３００が発行したＵＵＩＤと判断でき、両者が異なればサーバ３００が発行したＵＵＩＤでないと判断できる。
【０１５１】
そして、Ｓ６で、サーバ３００は、ログ一時記憶手段３５０に格納されているログ情報４００のうち、図５に示したデータ構造より、プリンタ２００より受け取ったＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３に該当するレコードを検索する。
【０１５２】
ここで、サーバ３００が該当のレコードがログ一時記憶手段３５０に格納されていると判断できる場合は、ホスト１００でログが発行されていることが分かる。
【０１５３】
次に、サーバ３００は、Ｓ７で、ログ一時記憶手段３５０に該当レコードが存在すれば、そのレコードのログブロックをログ主記憶手段３６０へ移動する。
【０１５４】
これにより、ログ一時記憶手段３５０から該当するレコードが削除される。したがってユーザがジョブ情報５００をコピーして複数回発行した場合に、２回目以降のＰＤＬデータは、ログ一時記憶手段３５０に対応するログブロックが存在しない。このため、サーバ３００は、ホスト１００からのジョブ情報５００に対する印刷要求が正しくない状態であると判断することが可能になる。
【０１５５】
そして、Ｓ８で、サーバ３００は、Ｓ６とＳ７の結果を受けて、プリンタ２００で受け取ったジョブ情報５００に関して、ホスト１００で生成されたログ情報４００がサーバ３００で格納されているかを判断する。
【０１５６】
サーバ３００は、その判断結果をホストログ取得情報８００に記載して、サーバ側通信装置３１０を介してプリンタ２００へ送信する。
【０１５７】
一方、プリンタ２００は、Ｐ２で、プリンタ側通信装置２１０を介してサーバ３００が生成したホストログ取得情報８００を受信する。
【０１５８】
ここで、プリンタ２００は、ホストログ取得情報８００のログ取得情報８１０に「実施済」の記録があると判断した場合は、Ｐ３、Ｐ４は実行せず、Ｐ５へ進む。
【０１５９】
一方、Ｐ２で、ログ取得情報８１０に、「未実施」が記録されていると判断した場合は、Ｐ３で、プリンタ２００は、プリンタ側ログ生成手段２８０を用いて、以下のブロックを生成する。ここで、プリンタ側ログ生成手段２８０を用いて、生成するブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１６０】
そして、Ｐ４で、プリンタ２００は、生成したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を、プリンタ側通信装置２１０を介してサーバ３００へ転送する。
【０１６１】
そして、Ｐ５で、プリンタコントローラ２２０がＲＩＰ２５０を使って印刷を実行する。
【０１６２】
このようにしてホスト１００で生成されたログ情報４００Ａに対してサーバ３００が生成したＵＵＩＤとＭＡＣ値とを含むジョブ情報５００をプリンタ２００に転送する。この場合において、ＰＤＬデータに既にサーバ３００において保持されているログ情報と同一のＵＵＩＤとＭＡＣ値を再現できる場合は、正常シーケンスとなる。
【０１６３】
そして、正常シーケンスの場合には、プリンタ２００はログ情報を生成する処理を行わず、サーバ３００がプリンタ２００から同一のログ情報を取得してログ主記憶手段３６０に重複して登録してしまうことを防止できる。
【０１６４】
なお、上記シーケンスにおいて、処理順がＳ６→Ｓ７の順番であったが特に処理順番は前後しても構わない。
【０１６５】
図９は、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、ホスト１００で実行される処理を示すもので、ユーザがアプリケーションで印刷指示を出したときに実行される。Ｓ１００〜Ｓ１０５は各ステップを示す。また、各ステップは、図２に示したホスト１００のＣＰＵがモジュールをＲＡＭにロードして実行することで実現される。ここで、モジュールは、図２に示したホスト側ログ生成手段１５０，プリンタドライバ１４０、プリンタスプーラ１６０等を含む。
【０１６６】
Ｓ１００で、ホスト１００のプリンタスプーラ１６０は、印刷ジョブのために生成した以下のブロックを全てサーバ３００に対して送信したかどうかを判断する。ここで、送信されるブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１６７】
ここで、ホスト１００のプリンタスプーラ１６０がドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０をサーバ３００に対して全て送ったと判断した場合は、本処理を終了する。
【０１６８】
一方、Ｓ１００で、プリンタスプーラ１６０がドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０をサーバ３００に対して全て送っていないと判断した場合は、Ｓ１０１へ進む。
【０１６９】
そして、Ｓ１０１で、ホスト１００は、ホスト側ログ生成手段１５０を用いてドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を生成する。なお、ホスト側ログ生成手段１５０が生成するドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０は、図３に示したデータ構造をしており、詳細は前で説明した通りである。
【０１７０】
次に、Ｓ１０２で、ホスト１００のプリンタドライバ１４０がホスト側通信装置１７０を用いて、Ｓ１０１で生成した以下のブロックをサーバ３００へ送信する。ここで、ホスト側ログ生成手段１５０が生成するブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。そして、ホスト１００は、サーバ３００からのＵＵＩＤとＭＡＣ値と含む情報７００を受信するのを待つ。
【０１７１】
そして、Ｓ１０３で、ホスト側通信装置１７０を介して、サーバ３００からのＵＵＩＤとＭＡＣ値と含む情報７００を受信する。ＵＵＩＤとＭＡＣ値と含む情報７００は、図４に示したデータ構造を備えるが、詳細は前で説明した通りである。
【０１７２】
次に、Ｓ１０４で、ホスト１００のプリンタドライバ１４０を用いて、ＵＵＩＤとＭＡＣ値と含む情報７００に含まれるＵＵＩＤとＭＡＣ値を含むＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０を生成する。
【０１７３】
ここで、ジョブ情報５００のデータ構造は図６に示したデータ構造を備えるが、詳細は前で説明した通りである。
【０１７４】
次に、Ｓ１０５で、ホスト側通信装置１７０を用いて、Ｓ１０４で生成したＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０をプリンタ２００へ送信して、Ｓ１００へ戻り、同様の処理を繰り返す。なお、Ｓ１０５において、ＵＵＩＤとＭＡＣ値とを含むジョブ情報５００をプリンタ２００に対して送信する処理は、ホスト１００によるジョブ送信機能に対応する。
【０１７５】
図１０は、本実施形態を示すサーバ装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、図２に示したサーバ３００で実行される処理例である。なお、Ｓ３００〜Ｓ３１３は各ステップを示す。各ステップは、サーバ３００のＣＰＵがサーバ側ログ管理手段３２０を実行することで実現される。
【０１７６】
Ｓ３００で、サーバ３００は、サーバ側通信装置３１０を介して、外部装置からの情報を受信する。次に、Ｓ３０１で、サーバ側ログ管理手段３２０が外部装置から受信した受信情報の種類を判断する。ここで、本実施形態において、外部装置は、プリンタ２００とホスト１００のいずれかである。
【０１７７】
ここで、サーバ側ログ管理手段３２０が受信した情報がホスト１００又はプリンタ２００からの以下のブロックであると判断した場合は、Ｓ３０２へ進む。ここで、ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１７８】
一方、Ｓ３０１で、受信した情報をプリンタ２００からのＵＵＩＤとＭＡＣ値と含む情報７００であるとサーバ側ログ管理手段３２０が判断した場合、Ｓ３０８へ進む。
【０１７９】
そして、Ｓ３０２で、サーバ側ログ管理手段３２０は、受信したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を受信した外部装置の種類を判断する。ここで、サーバ側ログ管理手段３２０が、ホスト１００から受信したログブロックであると判断した場合、Ｓ３０３へ進む。
【０１８０】
一方、Ｓ３０２で、サーバ側ログ管理手段３２０が、以下のブロックを、プリンタ２００から受信したと判断した場合は、Ｓ３０７へ進む。ここで、ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１８１】
そして、Ｓ３０３で、ホスト１００からの受信した以下のブロックのためにサーバ３００はＵＵＩＤ生成手段３３０を使ってＵＵＩＤを生成する。ここで、ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１８２】
次に、Ｓ３０４で、サーバ３００は、Ｓ３０３で生成したＵＵＩＤに関してＨＭＡＣ生成手段３４０を使ってＭＡＣ値（ハッシュ値）を生成する。なお、ＨＭＡＣ生成手段３４０によるＭＡＣ値の生成処理では、ログ主記憶手段３６０に格納されているＨＭＡＣ用共通鍵６００を使用する。
【０１８３】
そして、Ｓ３０５で、サーバ３００は、サーバ側ログ管理手段３２０を用いてログ一時記憶手段３５０に、図５に示したデータ構造でＵＵＩＤと関連付けた各ブロックのレコードを保存する。ここで、各ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１８４】
そして、Ｓ３０６で、サーバ３００は、サーバ側ログ管理手段３２０を用いて、Ｓ３０３とＳ３０４で生成したＵＵＩＤとそのＭＡＣ値を、図４に示したデータ構造を持つＵＵＩＤとＭＡＣ値と含む情報７００Ａにまとめる。そして、サーバ３００は、ＵＵＩＤとＭＡＣ値と含む情報７００Ａを、サーバ側通信装置３１０を介してホスト１００へ送信して、Ｓ３００へ戻り、次の外部装置からの情報を受信するのを待つ。この場合、サーバ側ログ管理手段３２０は、ホスト１００から送信されるログ情報４００Ａに対する応答として、生成したＵＵＩＩＤとＭＡＣ値をホスト１００に送信する。
【０１８５】
一方、Ｓ３０７へ進んだ場合、サーバ３００は、サーバ側ログ管理手段３２０を用いてログ主記憶手段３６０に、各ブロックのレコードを保存して、Ｓ３００へ戻る。ここで、各ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。
【０１８６】
一方、Ｓ３０１からＳ３０８へ進んだ場合は、サーバ３００は、プリンタ２００から受信するＵＵＩＤとＭＡＣ値と含む情報７００ＢよりＵＵＩＤを取得し、ＨＭＡＣ生成手段３４０を用いてＭＡＣ値'を生成する。
【０１８７】
なお、ＭＡＣ値'の生成には、ログ主記憶手段３６０に格納されているＨＭＡＣ用共通鍵６００を使用する。
【０１８８】
次に、Ｓ３０９で、Ｓ３０８においてサーバ側ログ管理手段３２０がプリンタ２００から受信するＵＵＩＤとＭＡＣ値と含む情報７００ＢよりＭＡＣ値’を生成する。そして、生成したＭＡＣ値’と、Ｓ３０５でログ一時記憶手段３５０に一時記憶されているＭＡＣ値とを比較して、上記ＭＡＣ値とＭＡＣ値'が等しいかどうかを判断する。なお、サーバ側ログ管理手段３２０は、ホスト１００から取得するログ情報が一時記憶領域であるログ一時記憶手段３５０に記憶されているかどうかを判断する場合に、サーバ３００が発行するＵＵＩＤに基づい以下のように判断する。
【０１８９】
つまり、サーバ側ログ管理手段３２０は、ログ一時記憶手段３５０に記憶されているＵＵＩＤと、プリンタ２００から取得する情報７００Ｂから取得するＵＵＩＤに対してあらかじめ記憶されるＨＭＡＣ用の鍵情報となるＨＭＡＣ用共通鍵６００を用いてＭＡＣ値とＭＡＣ’値とを生成する。そして、サーバ側ログ管理手段３２０は、生成したＭＡＣ値とＭＡＣ’値とが一致するかどうかの判断処理を後述する図１０に示すＳ３０９で行う。ここで、サーバ側ログ管理手段３２０がＭＡＣ値とＭＡＣ’値とが一致しないと判断した場合、つまり、認証処理を失敗したと判断した場合は、認証失敗の旨をプリンタ２００に対して通知する。ここで、サーバ側ログ管理手段３２０は、認証失敗の旨を図１に示すホストログ取得情報８００のログ取得情報８１０に設定する実施済み或いは未実施の旨でプリンタ２００に通知する認証情報通知処理を行う。
【０１９０】
ここで、サーバ側ログ管理手段３２０がＭＡＣ値とＭＡＣ値'が等しいと判断した場合は、つまり、ＵＵＩＤが正しいと判断した場合は、Ｓ３１０へ進む。
【０１９１】
一方、Ｓ３０９で、サーバ側ログ管理手段３２０がＭＡＣ値とＭＡＣ値'が等しくないと判断した場合は、Ｓ３１３へ進む。
【０１９２】
そして、Ｓ３１０で、サーバ３００のサーバ側ログ管理手段３２０は、ログ一時記憶手段３５０に該当するＵＵＩＤに関連するレコードが存在するか判断する。ここで、サーバ側ログ管理手段３２０が該当するＵＵＩＤに関連するレコードが存在すると判断した場合は、ホスト１００から取得したログ情報４００がサーバ３００へ登録されていることが分かり、Ｓ３１１へ進む。
【０１９３】
一方、Ｓ３１０で、サーバ側ログ管理手段３２０が該当するＵＵＩＤに関連するレコードが存在しないと判断した場合、Ｓ３１３へ進む。
【０１９４】
そして、Ｓ３１１で、サーバ側ログ管理手段３２０は、ログ一時記憶手段３５０内の該当するＵＵＩＤのレコードに保管されている各ブロックをログ主記憶手段３６０へ移動する。ここで、各ブロックには、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０が含まれる。これにより、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０がログ一時記憶手段３５０から消去される。
【０１９５】
そして、Ｓ３１２で、サーバ側ログ管理手段３２０は、ホスト１００で正しくログが取得されているので、ホストログ取得情報８００のログ取得情報８１０に「実施済」を記録する。そして、Ｓ３１３で、サーバ側ログ管理手段３２０は、サーバ側通信装置３１０を介してプリンタ２００へホストログ取得情報８００を送信して、Ｓ３００へ進み、次の外部装置からの情報受信を待つ。
【０１９６】
一方、Ｓ３０９、Ｓ３１０からＳ３１３へ進んだ場合は、ホスト１００で正しくログが取得されていないので、ホストログ取得情報８００のログ取得情報８１０に「未実施」と記録する。その後、サーバ３００は、サーバ側通信装置３１０を介してプリンタ２００へ、ホストログ取得情報８００を送信する。そして、サーバ３００の処理は、Ｓ３００へ進み、次の外部装置からの情報受信を待つ。
【０１９７】
なお、Ｓ３１３で、サーバ側ログ管理手段３２０は、正しくホスト１００でログ取得できない状態であることをメールなどで管理者へ通知してもよい。
【０１９８】
図１１は、本実施形態を示す印刷装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、図２に示したプリンタ２００での印刷処理例である。なお、Ｓ２００〜Ｓ２０６は各ステップを示す。また、各ステップは、プリンタ２００のプリンタコントローラ２２０がＲＡＭにモジュールをロードして実行することで実現される。なお、ここで、モジュールとは、図２に示したプリンタ側ログ処理手段２４０、プリンタ側ログ生成手段２８０等を含む。
【０１９９】
Ｓ２００で、プリンタ２００は、プリンタ側通信装置２１０を介して、ホスト１００からのＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０を受信する。
【０２００】
次に、プリンタ２００は、プリンタコントローラ２２０を用いてＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０の解釈を行い、ＵＵＩＤとＭＡＣ値を取得する。そして、Ｓ２０１で、プリンタコントローラ２２０がＵＵＩＤとＭＡＣ値が取得できたか、すなわちＵＵＩＤとＭＡＣ値が存在するかどうかを判断する。
【０２０１】
ここで、プリンタコントローラ２２０がＵＵＩＤとＭＡＣ値が取得できたと判断した場合は、Ｓ２０２へ進み、ＵＵＩＤとＭＡＣ値が取得できなかったと判断した場合、Ｓ２０６へ進む。
【０２０２】
そして、Ｓ２０２で、プリンタ２００は、プリンタ側ログ処理手段２４０を用い、図４に示すデータ構造のＵＵＩＤとＭＡＣ値と含む情報７００Ｂを生成する。そして、プリンタ２００は、プリンタ側通信装置２１０を介して、サーバ３００へＵＵＩＤとＭＡＣ値と含む情報７００Ｂを送信する。
【０２０３】
次に、Ｓ２０３で、プリンタ２００は、プリンタ側通信装置２１０を介して、サーバ３００からのホストログ取得情報８００を受信するのを待つ。
【０２０４】
そして、Ｓ２０４で、プリンタコントローラ２２０は、ホストログ取得情報８００のログ取得情報８１０の記録が、ホスト１００において、既にログ取得状態が実施済みか、それとも未実施であるかを判断する。
【０２０５】
ここで、プリンタコントローラ２２０が実施済であると判断した場合は、Ｓ２０５へ進み、プリンタコントローラ２２０が未実施であると判断した場合は、Ｓ２０６へ進む。
【０２０６】
ここで、Ｓ２０５へ進んだ場合は、正しくホスト１００からログ情報４００がサーバ３００へ送られているので、プリンタコントローラ２２０がＲＩＰ２５０を使って各ブロックの印刷を実行する。ここで、各ブロックには、ＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０が含まれる。そして、Ｓ２００へ進み、次の外部装置からの情報受信を待つ。
【０２０７】
一方、Ｓ２０６へ進んだ場合は、ホスト１００からログ情報４００がサーバに３００へ送られていないので、プリンタコントローラ２２０は、ホストログ取得未実施の処理を行う。そして、Ｓ２００へ進み、次の外部装置からの情報受信を待つ。
【０２０８】
以下、Ｓ２０６におけるホストログ取得未実施の処理について説明する。
【０２０９】
図１２は、本実施形態を示す印刷装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、図１１に示したＳ２０６におけるホストログ取得未実施の処理の詳細例である。Ｓ２５１はステップを示す。また、ステップは、プリンタ２００のプリンタコントローラ２２０がＲＡＭにモジュールをロードして実行することで実現される。なお、ここで、モジュールとは、図２に示したプリンタ側ログ処理手段２４０、プリンタ側ログ生成手段２８０等を含む。
【０２１０】
Ｓ２５１で、ホスト１００からログ情報４００がサーバに３００へ送られていないので正しくないとみなし、プリンタ２００は印刷を中止して、処理をリターンする。
【０２１１】
その際、ユーザもしくは管理者へメールなどの通信手段を用いてホスト１００よりログ情報４００が取得できていない旨、並びに印刷中止の要因を併せて通知してもよい。
【０２１２】
図１３は、本実施形態を示す印刷装置における第３のデータ処理手順の一例を示すフローチャートである。本例は、図１１に示したＳ２０６におけるホストログ取得未実施の処理の詳細例である。Ｓ２５２、Ｓ２５３はステップを示す。また、各ステップは、プリンタ２００のプリンタコントローラ２２０がＲＡＭにモジュールをロードして実行することで実現される。なお、ここで、モジュールとは、図２に示したプリンタ側ログ処理手段２４０、プリンタ側ログ生成手段２８０等を含む。
【０２１３】
Ｓ２５２で、プリンタ２００がジョブ情報５００よりログ情報４０５を生成し、サーバ３００に生成したログ情報４０５を送信する。そして、サーバ３００にログ情報４０５が、登録される。その後、Ｓ２５３でジョブ情報５００を解析して生成されるビットマップイメージをプリンタエンジン２６０で印刷して、本処理をリターンする。これにより、ログ取得情報８１０が未実施であっても、受信したジョブ情報５００を印刷することができる。
【０２１４】
その際に、図１２に示した処理と同様にユーザもしくは管理者へメールなどの通信手段を用いてホスト１００よりログ情報４００が取得できていない旨を通知してもよい。
【０２１５】
本実施形態によれば、ログ一時記憶手段３５０にログ情報を一時記憶した後、ホスト１００がプリンタ２００に送信したジョブ情報５００に関するログ情報が既に格納されている場合は、プリンタ２００でＰＤＬデータを正常に印刷処理を実行する。そして、プリンタ２００でＰＤＬデータを正常に印刷処理された場合、サーバ３００において、ログ一時記憶手段３５０に記憶されたログ情報がログ主記憶手段３６０に移動してしまう。
【０２１６】
これにより、ホスト１００から何度もジョブ情報５００をプリンタ２００に送信しても、サーバ３００は、ログ一時記憶手段３５０に対応するＵＵＩＤとＭＡＣ値が記憶されていないため、そのようなＰＤＬデータの印刷を実行しないように制御できる。
【０２１７】
〔第２実施形態〕
図１４は、本発明の第２実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。なお、本例は、ホストとプリンタとサーバがネットワークを介して通信可能な印刷システムの例である。
【０２１８】
また、プリンタの台数は、図示される台数を超えていても本発明を適用可能である。
【０２１９】
以下、図１４に示す印刷システムについて、各デバイス間での情報のやり取りについて説明する。
【０２２０】
本実施形態において、第１実施形態と異なるところは、プリンタ２００とサーバ３００でＨＭＡＣ用共通鍵を共有していることである。
【０２２１】
図１４において、プリンタ２００は、ホスト１００より各ブロックをプリンタ側通信装置２１０より受信した場合、プリンタ側ログ処理手段２４０でＭＡＣ値の検証を行う。ここで、各ブロックには、ＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０が含まれる。
【０２２２】
一般に、サーバ３００は、複数のプリンタ２００を管理するので、この構成によりサーバ３００での処理負荷を軽減することができる。
【０２２３】
また、ＵＵＩＤとＭＡＣ値の検証は、プリンタ２００で実施済なので、プリンタ２００からサーバ３００に渡されるＵＵＩＤとＭＡＣ値と含む情報７００のうちで、ＵＵＩＤのみ送信してもよい。
【０２２４】
図１５は、図２に示したホスト１００、プリンタ２００、サーバ３００の第２のシーケンス例を説明する図である。本例は、シーケンスが正常系の場合のデータの流れに対応する。Ｈ１〜Ｈ４は、ホスト１００のステップを示す。また、Ｓ１〜Ｓ７はサーバ３００のステップを示す。さらに、Ｐ１〜Ｐ３はプリンタ２００のステップを示す。
【０２２５】
図１５において、図８に示した第１実施形態との違いは、Ｐ１において、プリンタ２００がＨＭＡＣ用共通鍵でＵＵＩＤとＭＡＣ値の検証を行い、サーバ３００で行わないところである。
【０２２６】
また、Ｈ１〜Ｈ４までは、図８の説明と同じであるので説明を省略する。
【０２２７】
Ｐ１で、プリンタ２００は、ホスト１００からのＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０を含むジョブ情報５００を、プリンタ側通信装置２１０を介して受信する。
【０２２８】
ＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０はプリンタコントローラ２２０に渡され解釈される。
【０２２９】
プリンタコントローラ２２０は、プリンタ側ログ処理手段２４０に、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と、対応するＭＡＣ値７２１、７２２、またはＭＡＣ値７２３を渡す。
【０２３０】
また、プリンタ２００は、プリンタ側ログ処理手段２４０を用いて、ＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３と、対応するＭＡＣ値７２１、７２２、またはＭＡＣ値７２３の正当性をチェックする。その際にサーバ３００と共有しているＨＭＡＣ用共通鍵を用いる。
【０２３１】
そして、Ｐ２で、プリンタ側ログ処理手段２４０は、プリンタ側通信装置２１０を介して、図４に示したデータ構造で、サーバ３００へＵＵＩＤとＭＡＣ値を含む情報７００Ｂを送信する。
【０２３２】
次に、Ｓ５で、サーバ３００は、ログ一時記憶手段３５０に格納されている図５に示したデータ構造より、プリンタ２００より受け取ったＵＵＩＤ７１１、７１２、またはＵＵＩＤ７１３に該当するレコードが保存されているか否かを判断する。ここで、サーバ３００が、該当のレコードが保存されていると判断した場合は、ホスト１００でログが発行されていることが分かる。
【０２３３】
次に、Ｓ６で、サーバ３００は、Ｓ５においてログ一時記憶手段３５０に該当レコードが存在すると判断した場合は、そのレコードのログブロックをログ主記憶手段３６０へ移動する。これにより、ジョブ情報５００を悪意のあるユーザがコピーして複数回発行した場合に、２回目のＰＤＬ処理時にはログ一時記憶手段３５０に対応するＵＵＩＤ７１３に該当するレコードが存在しないので、正しくない状態であると判断することが可能になる。
【０２３４】
そして、サーバ３００は、Ｓ６とＳ７の結果をうけて、プリンタ２００で受け取ったジョブ情報５００に関して、ホスト１００で生成されたログがサーバ３００で格納されているかを判断する。
【０２３５】
サーバ３００は、Ｓ７で、その結果をホストログ取得情報８００に記載して、サーバ側通信装置３１０を介してプリンタ２００へ送信する。
【０２３６】
一方、プリンタ２００は、Ｐ３で、サーバ３００よりプリンタ側通信装置２１０を介してホストログ取得情報８００のログ取得情報８１０を受信する。プリンタ２００は、受信したホストログ取得情報８００のログ取得情報８１０に実施済が記録されている場合は、プリンタコントローラ２２０がＲＩＰ２５０を使って印刷を実行する。
【０２３７】
上記第１，第２実施形態ではＵＵＩＤを用いたが、システム上で一意に区別がつけば、他のＩＤ生成方法を使用して管理しても構わない。
【０２３８】
また、上記第１，第２実施形態では、ＭＡＣ値を生成する手段としてＨＭＡＣ関数を使ったが、特にＭＡＣ値を生成する手段としてＨＭＡＣ関数に限定する必要はない。
【０２３９】
つまり、サーバ３００が発行したことを証明できれば他の方法でもかまわない。
【０２４０】
さらに、ＭＡＣ値生成の際にＵＵＩＤの他に、あらかじめ定めた定数やログ情報の一部の情報を混合して用いてもよい。
【０２４１】
さらに、第１，第２実施形態では、サーバ３００にログ一時記憶手段３５０を設けて、プリンタ２００からのＵＵＩＤとＭＡＣ値の情報を受けた際に、ログをログ主記憶装置手段３６０へ転送し印刷されたことをチェックした場合について説明した。
【０２４２】
これに対して、図５に示したＵＵＩＤとログのデータ構造に、印刷実施済/印刷未実施のチェックを設けるなどの他の手段を用いても良い。
【０２４３】
〔第３実施形態〕
図１６は、本発明の第３実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。なお、本例は、ホスト１００とプリンタ２００とサーバ３００がネットワークを介して通信可能な印刷システムの例である。
【０２４４】
また、プリンタの台数は、図示される台数を超えていても本発明を適用可能である。
【０２４５】
以下、図１６に示す印刷システムについて、各デバイス間での情報のやり取りについて説明する。
【０２４６】
本実施形態において、第１実施形態と異なるところは、プリンタ２００のログ生成能力８５０を取得してあらかじめサーバ３００の記憶装置に蓄積していることである。
【０２４７】
図１６において、ホスト１００は、印刷時、サーバ３００に対して、印刷先のプリンタ２００のログ生成能力を問合せて取得する。ここで、ホスト１００が印刷先のプリンタ２００がログ生成能力を有しないと判断した場合、ホスト１００はログ情報４００を生成してサーバ３００へ送信し、これ以降の処理は第１実施形態と同様である。
【０２４８】
また、ホスト１００が印刷先のプリンタ２００がログ生成能力を有すると判断した場合は、ジョブ情報５００を生成しプリンタ２００に送信し、これ以降の処理は第１実施形態と同様である。
【０２４９】
本実施形態では、プリンタ２００のログ生成能力を、サーバ３００の記憶装置にあらかじめ蓄積しているが、ホスト１００に蓄積させておいてもよく、また印刷実行時にプリンタ２００に対して問合せても良い。
【０２５０】
図１７は、図２に示したホスト１００、プリンタ２００、サーバ３００の第３のシーケンス例を説明する図である。本例は、プリンタにログ生成能力がなくホストでログ情報を生成する場合の処理であって、シーケンスが正常系の場合のデータの流れに対応する。Ｈ１〜Ｈ４，Ｈ１０，Ｈ１１は、ホスト１００のステップを示す。また、Ｓ１〜Ｓ８，Ｓ１０，Ｓ１１はサーバ３００のステップを示す。さらに、Ｐ２、Ｐ５はプリンタ２００のステップを示す。
【０２５１】
図８において、第１実施形態における図８に示すシーケンスとの違いは、Ｓ１０〜Ｓ１１、Ｈ１０からＨ１１において、プリンタのログ生成能力情報の送受信およびそれに伴う判断を行うことである。
【０２５２】
また、本シーケンスは、ホストでログ情報を生成する場合の正常系であるため、異常系であるＰ３、Ｐ４を省略している。
【０２５３】
Ｓ１０で、サーバ３００は、プリンタ２００に対してログ生成能力情報８５０を要求して、プリンタ２００よりログ生成能力情報８５０を取得してログ一時記憶手段３５０に記憶する。
【０２５４】
そして、Ｈ１０で、ホスト１００は、サーバ３００に対して、印刷先のプリンタ２００のログ生成能力情報８５０を問い合わせる。
【０２５５】
そして、Ｓ１１で、サーバ３００は、Ｓ１０で取得しているプリンタ２００のログ生成能力情報８５０を、ホスト１００に対して送信する。
【０２５６】
次に、Ｈ１１で、ホスト１００は、プリンタ２００にログ生成能力がないと判断した場合、ホスト１００でログ情報を生成すると決定する。
【０２５７】
一方、プリンタ２００がログ生成能力を有すると判断した場合については、図１８に示すシーケンス例に基づいて説明する。
【０２５８】
なお、Ｈ１〜Ｈ４、Ｓ１〜Ｓ８、Ｐ２〜Ｐ５は図１１の説明と同じであるので説明を省略する。
【０２５９】
図１８は、図２に示したホスト１００、プリンタ２００、サーバ３００の第４のシーケンス例を説明する図である。本例は、プリンタ２００にログ生成能力があり、プリンタ２００でログ情報を生成する場合の処理であって、シーケンスが正常系の場合のデータの流れに対応する。Ｈ４、Ｈ１０、Ｈ１１は、ホスト１００のステップを示す。また、Ｓ１０はサーバ３００のステップを示す。さらに、Ｐ２〜Ｐ５はプリンタ２００のステップを示す。
【０２６０】
まず、Ｓ１０で、サーバ３００は、プリンタ２００に対してログ生成能力情報８５０を取得してログ一時記憶手段３５０に記憶する。
【０２６１】
次に、Ｈ１０で、ホスト１００は、サーバ３００に対して、印刷先のプリンタ２００のログ生成能力情報を問い合わせる。
【０２６２】
一方、サーバ３００は、Ｓ１１で、プリンタ２００のログ生成能力情報８５０を、ホスト１００に対して送信する。
【０２６３】
これに応じて、ホスト１００は、Ｈ１１で、プリンタ２００にログ生成能力があると判断した場合、プリンタ２００でログを生成すると決定する。
【０２６４】
一方、ホスト１００は、Ｈ４で、図６に示すＰＤＬヘッダブロック５１０、ページ描画ブロック５２０、またはＰＤＬターミネータブロック５３０をプリンタ２００へ送信する。
【０２６５】
一方、プリンタ２００は、Ｐ２で、プリンタ側通信装置２１０を介してホストログ取得情報８００を受信する。
【０２６６】
そして、Ｐ３で、プリンタ２００は、プリンタ側ログ生成手段２８０を用いて、ドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を生成する。
【０２６７】
そして、Ｐ４で、プリンタ２００は、生成したドキュメント情報ヘッダログブロック４１０、ページ情報ログブロック４２０、又はドキュメント情報ターミネータログブロック４３０を、プリンタ側通信装置２１０を介してサーバ３００へ転送する。
【０２６８】
そして、Ｐ５で、プリンタコントローラ２２０がＲＩＰ２５０を使って印刷を実行する。
【０２６９】
本実施形態によれば、ログ情報を生成できないプリンタがネットワーク上に混在する印刷システム環境、ログ情報を生成できない或いは確実でないホストがネットワーク上に混在する印刷システム環境においても、ログ情報を記録することができる。この際、システム全体の処理能力(通信回線も含む)、サーバの記録領域、プリンタの一時記録領域などへの負荷をも抑えることができる。
【０２７０】
〔第４実施形態〕
以下、図１９、図２０、図２１に示すメモリマップを参照して本発明に係る管理装置、印刷装置、情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０２７１】
図１９は、本発明に係る管理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０２７２】
図２０は、本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０２７３】
図２１は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０２７４】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２７５】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２７６】
本実施形態における図９、図１０、図１１、図１２，図１３に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２７７】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２７８】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２７９】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０２８０】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０２８１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２８２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０２８３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２８６】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０２８７】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０２８８】
【図１】本発明の第１実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。
【図２】図１に示した印刷システムを構成するホスト，プリンタ，サーバが備えるモジュールの構成を説明するブロック図である。
【図３】図２に示したプリンタからサーバへ転送されるログ情報のデータ構造を説明する図である。
【図４】図１に示したＵＵＩＤとＭＡＣ値の情報のデータ構造を説明する図である。
【図５】図２に示したログ一時記憶装置に格納されるデータ構造を説明する図である。
【図６】図１に示したホストよりプリンタへ転送されるＰＤＬデータのデータ構造を説明する図である。
【図７】図２に示したサーバからプリンタへ渡されるホストログ取得情報のデータ構造を説明する図である。
【図８】図２に示したホスト、プリンタ、サーバの第１のシーケンス例を説明する図である。
【図９】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図１０】本実施形態を示すサーバ装置における第１のデータ処理手順の一例を示すフローチャートである。
【図１１】本実施形態を示す印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図１２】本実施形態を示す印刷装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１３】本実施形態を示す印刷装置における第３のデータ処理手順の一例を示すフローチャートである。
【図１４】本発明の第２実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。
【図１５】図２に示したホスト、プリンタ、サーバの第２のシーケンス例を説明する図である。
【図１６】本発明の第３実施形態を示すログ管理装置を適用可能な印刷システムを示す図である。
【図１７】図２に示したホスト、プリンタ、サーバの第３のシーケンス例を説明する図である。
【図１８】図２に示したホスト、プリンタ、サーバの第４のシーケンス例を説明する図である。
【図１９】本発明に係る管理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図２０】本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図２１】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図２２】従来の印刷システムの構成を説明する図である。
【図２３】従来の印刷システムの構成を説明する図である。
【図２４】従来の印刷システムの構成を説明する図である。
【符号の説明】
【０２８９】
１００  ホスト
２００  プリンタ
３００  サーバ
【図１】
0004936549.tif 000002
【図２】
0004936549.tif 000003
【図３】
0004936549.tif 000004
【図４】
0004936549.tif 000005
【図５】
0004936549.tif 000006
【図６】
0004936549.tif 000007
【図７】
0004936549.tif 000008
【図８】
0004936549.tif 000009
【図９】
0004936549.tif 000010
【図１０】
0004936549.tif 000011
【図１１】
0004936549.tif 000012
【図１２】
0004936549.tif 000013
【図１３】
0004936549.tif 000014
【図１４】
0004936549.tif 000015
【図１５】
0004936549.tif 000016
【図１６】
0004936549.tif 000017
【図１７】
0004936549.tif 000018
【図１８】
0004936549.tif 000019
【図１９】
0004936549.tif 000020
【図２０】
0004936549.tif 000021
【図２１】
0004936549.tif 000022
【図２２】
0004936549.tif 000023
【図２３】
0004936549.tif 000024
【図２４】
0004936549.tif 000025