(57)【特許請求の範囲】
【請求項１】
ネットワーク上のクライアントの有する印刷データ生成部が印刷データを前記ネットワークを通じて送信して印刷する印刷システムであって、
印刷装置駆動部は、ドライバ履歴情報を記憶する第１の記憶手段を有し、
印刷装置は、前記印刷装置が行った印刷装置履歴情報を記憶する第２の記憶手段を有し、
印刷管理装置は、
前記第１の記憶手段が記憶するドライバ履歴情報と、前記第２の記憶手段が記憶する印刷装置履歴情報とを読み出す手段と、
前記読み出し手段によって読み出された前記ドライバ履歴情報および前記印刷装置履歴情報を記憶する第３の記憶手段と、
前記読み出された前記ドライバ履歴情報および前記印刷装置履歴情報のいずれかに含まれるデータに示される処理を選択し、基準の処理を決定する基準ジョブ決定手段と、
前記基準ジョブ決定手段によって決定された基準の処理とは別のデータで示される処理が、同一の印刷ジョブで行われているか否かを判断する判断手段と、
前記基準の処理を示すデータとは別の処理を示すデータを基準の処理を示すデータに追加し、また、前記基準の処理とは別のデータで示される処理が前記判断手段によって前記印刷ジョブで行われていると判断された場合に追加されるデータ追加手段と、
前記データ追記手段により追加され、１つの印刷ジョブのジョブ情報として統合された統合履歴情報を前記クライアントに転送する転送手段と、を有することを特徴とする印刷システム。
【請求項２】
前記追加手段によって追加された別の処理を示すデータを、前記追加手段によって追加される前に格納されていた前記ドライバ履歴情報および前記印刷装置履歴情報のいずれか１つを削除する第１の削除手段を有することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記印刷データ生成部は、前記ネットワーク上および該ネットワークに接続される端末内で共通で、各々の前記印刷ジョブによって区別される識別情報を前記印刷データに組み込む識別情報組み込み手段を有し、
前記判断手段による判断の基準は、前記識別情報組み込み手段によって組み込まれた識別情報に基づくことを特徴とする請求項１又は２に記載の印刷システム。
【請求項４】
前記印刷管理装置は、前記ドライバ履歴情報および前記印刷装置履歴情報のいずれか１つに含まれる１つの情報を構成する１つの要素である情報項目を削除する第２の削除手段を有し、
前記判断手段によって判断される際に、前記ドライバ履歴情報の情報項目と前記印刷装置履歴情報の情報項目とが一致する場合、前記ドライバ履歴情報の情報項目および前記印刷装置履歴情報の情報項目のいずれか一方を前記第２の削除手段によって削除することを特徴とする請求項１から３のいずれか１項に記載の印刷システム。
【請求項５】
前記ネットワークにはさらにサーバが接続され、前記サーバは前記印刷ジョブにおいて前記サーバがどのような処理を行ったかというサーバ履歴情報を記憶し、保存する第４の記憶手段を有し、
前記読み出し手段は、前記第４の記憶手段が記憶するサーバ履歴情報をさらに読み出すことを特徴とする請求項１に記載の印刷システム。
【請求項６】
前記ネットワークにはさらにサーバが接続され、前記第３の記憶手段は前記サーバ履歴情報をさらに記憶することを特徴とする請求項１に記載の印刷システム。
【請求項７】
前記ネットワークにはさらにサーバが接続され、前記基準ジョブ決定手段の選択の対象は前記サーバ履歴情報に含まれる任意の１つのデータに示される処理も含まれることを特徴とする請求項１又は３に記載の印刷システム。
【請求項８】
前記ネットワークにはさらにサーバが接続され、前記第１の削除手段の削除の対象には前記サーバ履歴情報も含まれることを特徴とする請求項２に記載の印刷システム。
【請求項９】
前記ネットワークにはさらにサーバが接続され、前記第２の削除手段による削除の対象には前記サーバ履歴情報に含まれる１つのデータを構成する１つの要素である情報項目も含まれることを特徴とする請求項４に記載の印刷システム。
【請求項１０】
複数のサブシステムを有する印刷システムであって、
該印刷システムは、各印刷ジョブを識別するジョブ識別子と、前記印刷システムの所定の範囲内で前記ジョブ識別子を検索するために用いられるキーとを対応づけて保存するジョブＩＤ一覧保持部を有し、
前記複数のサブシステムは、前記キーによって前記識別子を検索し、該識別子によって、前記印刷ジョブにおいて前記複数のサブシステム各々で行われるジョブである断片ジョブをまとめることを特徴とする印刷システム。
【請求項１１】
前記ジョブＩＤ一覧保持部は、前記ジョブ識別子を破棄する識別子破棄手段と、該破棄する時期を決める破棄時期決定手段と、をさらに有し、
前記破棄する時期は前記複数のサブシステムの通知によって決定されることを特徴とする請求項１０記載の印刷システム。
【請求項１２】
前記複数のサブシステムは、該サブシステムにおける前記断片ジョブの開始と終了とを前記ジョブＩＤ一覧保持部に通知するジョブ開始終了通知手段をさらに有し、
前記サブシステムは、前記ジョブ開始終了通知手段が前記断片ジョブの終了を通知してから、前記断片ジョブをまとめることを特徴とする請求項１０又は１１記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアントから送信された印刷データが、ネットワークを経由して、印刷サーバあるいは印刷装置に受信、処理され、印刷される印刷システムに関し、特に、各モジュールの印刷ジョブの履歴を取得、管理する印刷システムに関する。
【０００２】
【従来の技術】
ネットワークを経由して複数のクライアント装置からデータを送信し、ネットワークに接続される印刷装置あるいは印刷サーバにより送信されたデータを受信して処理し、印刷を行う印刷システムが実用化されている。
【０００３】
上記印刷システムにおいて、「印刷ジョブの履歴」を取得する方法として、例えばクライアント上の印刷ドライバが生成するジョブの情報を印刷ドライバ自体がデータとして保管する技術、印刷サーバがサービスする印刷ジョブの情報を印刷サーバ自体が保管する技術、および印刷装置が印刷するジョブの情報を印刷装置自体が保管するという技術が知られている。
【０００４】
このような従来技術として、特開平１０−２８３１３１号公報には、印刷履歴情報をプリンタ内の記憶媒体に蓄積し、蓄積された印刷履歴情報を印刷したり、ホストコンピュータに送信したりすることによってユーザに表示する技術が提案されている。
【０００５】
【発明が解決しようとする課題】
本来、印刷ジョブは、ジョブの生成箇所「クライアント」から始まり、印刷サーバ等を経由し、最終的に印刷装置に到達して印刷データが印刷され、処理が終了するという、一連のパスを通る。
【０００６】
しかしながら、上記従来技術において、各印刷ドライバ、印刷サーバおよび印刷装置は、通過するパスの中のただ１点において、その点（場所）で採取し得る印刷ジョブ情報を保管するのみに限られていた。
【０００７】
例えば印刷ドライバは、ジョブの開始点であるクライアント上に存在するため、ジョブを要求したユーザ名や印刷を行ったアプリケーション名など、「ジョブの開始点」に関する情報は詳細に採取できる。しかしながら、最終的に何枚出力されたかなどの「ジョブの終了点」に関する情報や、印刷サーバが行う予定の印刷付加価値ジョブスケジューリングに関する情報を保管することができない。
【０００８】
また印刷サーバは、印刷サーバ上のジョブスケジュールリング、分散印刷、正常に動作しない印刷装置回避による別の印刷装置への出力等、印刷サーバがサービスする情報に関しては詳細に採取可能である。しかしながら、印刷サーバは、ジョブ開始点や終了点に関する情報を保管できない。
【０００９】
さらに印刷装置は、実際に出力された枚数など、ジョブの終了点に関する情報は詳細に採取できるが、要求者などの開始点の情報や、サーバによる印刷付加価値情報などは保管できない。
【００１０】
印刷ジョブは開始点からサービス点を通過して、終了点に到達するが、その間の各点で取得し得る印刷ジョブ情報は異なっており、従来技術によって生成されるジョブ履歴情報は、このパス上のいずれか一点のジョブ情報に偏っているという問題点があった。
【００１１】
また、ジョブ履歴は、課金、負荷分析など様々な用途で用いられる。必要なジョブ情報は用途によって異なっており、場合によってジョブのパス上での全情報が必要になる場合もある。上記されたような問題点があると、ジョブ情報を使用する上で不便な場合があった。
【００１２】
本発明は、上記問題点に鑑みてなされたものであり、印刷ジョブに関する一連の情報を統合化し、統合化されたジョブの全体像をユーザに提供する印刷システムを提供することを目的とする。
【００１３】
さらに、１つの印刷ジョブの生成から消滅までに与えられる識別情報を印刷システム上の各々のサブシステムが取得するものを提供することも目的とする。また、ジョブ情報断片が増えなくなり、情報をクローズするタイミングを認識するものを提供することを目的とする。
【００１４】
【課題を解決するための手段】
かかる目的を達成するため、請求項１に記載の発明は、ネットワーク上のクライアントの有する印刷データ生成部が印刷データを前記ネットワークを通じて送信して印刷する印刷システムであって、印刷装置駆動部は、ドライバ履歴情報を記憶する第１の記憶手段を有し、印刷装置は、前記印刷装置が行った印刷装置履歴情報を記憶する第２の記憶手段を有し、印刷管理装置は、前記第１の記憶手段が記憶するドライバ履歴情報と、前記第２の記憶手段が記憶する印刷装置履歴情報とを読み出す手段と、前記読み出し手段によって読み出された前記ドライバ履歴情報および前記印刷装置履歴情報を記憶する第３の記憶手段と、前記読み出された前記ドライバ履歴情報および前記印刷装置履歴情報のいずれかに含まれるデータに示される処理を選択し、基準の処理を決定する基準ジョブ決定手段と、前記基準ジョブ決定手段によって決定された基準の処理とは別のデータで示される処理が、同一の印刷ジョブで行われているか否かを判断する判断手段と、前記基準の処理を示すデータとは別の処理を示すデータを基準の処理を示すデータに追加し、また、前記基準の処理とは別のデータで示される処理が前記判断手段によって前記印刷ジョブで行われていると判断された場合に追加されるデータ追加手段と、前記データ追記手段により追加され、１つの印刷ジョブのジョブ情報として統合された統合履歴情報を前記クライアントに転送する転送手段と、を有することを特徴とする。
【００１５】
請求項２に記載の発明は、請求項１に記載の発明において、前記追加手段によって追加された別の処理を示すデータを、前記追加手段によって追加される前に格納されていた前記ドライバ履歴情報および前記印刷装置履歴情報のいずれか１つを削除する第１の削除手段を有することを特徴とする。
【００１６】
請求項３に記載の発明は、請求項１または２に記載の発明において、前記印刷データ生成部は、前記ネットワーク上および該ネットワークに接続される端末内で共通で、各々の前記印刷ジョブによって区別される識別情報を前記印刷データに組み込む識別情報組み込み手段を有し、前記判断手段による判断の基準は、前記識別情報組み込み手段によって組み込まれた識別情報に基づくことを特徴とする。
【００１７】
請求項４に記載の発明は、請求項１から３のいずれか１項に記載の発明において、前記印刷管理装置は、前記ドライバ履歴情報および前記印刷装置履歴情報のいずれか１つに含まれる１つの情報を構成する１つの要素である情報項目を削除する第２の削除手段を有し、前記判断手段によって判断される際に、前記ドライバ履歴情報の情報項目と前記印刷装置履歴情報の情報項目とが一致する場合、前記ドライバ履歴情報の情報項目および前記印刷装置履歴情報の情報項目のいずれか一方を前記第２の削除手段によって削除することを特徴とする。
【００１８】
請求項５に記載の発明は、請求項１記載の発明において、前記ネットワークにはさらにサーバが接続され、前記サーバは前記印刷ジョブにおいて前記サーバがどのような処理を行ったかというサーバ履歴情報を記憶し、保存する第４の記憶手段を有し、前記読み出し手段は、前記第４の記憶手段が記憶するサーバ履歴情報をさらに読み出すことを特徴とする。
【００１９】
請求項６に記載の発明は、請求項１に記載の発明において、ネットワークにはさらにサーバが接続され、第３の記憶手段はサーバ履歴情報をさらに記憶することを特徴とする。
【００２０】
請求項７に記載の発明は、請求項１または３に記載の発明において、ネットワークにはさらにサーバが接続され、基準ジョブ決定手段の選択の対象はサーバ履歴情報に含まれる任意の１つのデータに示される処理も含まれることを特徴とする。
【００２１】
請求項８に記載の発明は、請求項２に記載の発明において、ネットワークにはさらにサーバが接続され、第１の削除手段の削除の対象はサーバ履歴情報も含まれることを特徴とする。
【００２２】
請求項９に記載の発明は、請求項４に記載の発明において、ネットワークにはさらにサーバが接続され、第２の削除手段による削除の対象はサーバ履歴情報に含まれる１つのデータを構成する１つの要素である情報項目も含まれることを特徴とする。
【００２３】
請求項１０に記載の発明は、複数のサブシステムを有する印刷システムであって、印刷システムは、印刷システムで行われる各々の印刷ジョブを識別するジョブ識別子と、印刷システムの所定の範囲内でジョブ識別子を検索するために用いられるキーとを対応づけて保存するジョブＩＤ一覧保持部をさらに有し、複数のサブシステムは、キーによって識別子を検索し、識別子によって、印刷ジョブにおいて複数のサブシステム各々で行われるジョブである断片ジョブをまとめることを特徴とする。
【００２４】
請求項１１に記載の発明は、請求項１０の印刷システムにおいて、ジョブＩＤ一覧保持部は、ジョブ識別子を破棄する識別子破棄手段と、破棄する時期を決める破棄時期決定手段と、をさらに有し、破棄する時期は複数のサブシステムの通知によって決定されることを特徴とする。
【００２５】
請求項１２記載の印刷システムの発明は、請求項１０または１１の印刷システムにおいて、複数のサブシステムは、サブシステムにおける断片ジョブの開始と終了とをジョブＩＤ一覧保持部に通知するジョブ開始終了通知手段をさらに有し、サブシステムは、ジョブ開始終了通知手段が断片ジョブの終了を通知してから、断片ジョブをまとめることを特徴とする。
【００２８】
【発明の実施の形態】
以下に添付図面を参照した本発明に係る印刷システムの実施形態を詳細に説明する。図１から図１０に、本発明に係る印刷システムの一実施例が示す。
【００２９】
［第１の実施例］
図１に、本発明に係る印刷システムの第１の実施例を示す。図１に示すように、本実施例は、クライアント１０、サーバＰＣ２０、印刷装置３０およびジョブ情報履歴装置４０がネットワークを介して接続されて構成されている。
【００３０】
以下に、一般的な印刷ジョブの流れを示す。まずアプリケーション１１で印刷データの生成が指示されて、ドライバ１２で印刷データが生成する。生成した印刷データは、サーバ通信１３によってサーバＰＣ２０の付加サービス２１に送信される。付加サービス２１によって分散印刷、異常プリンタ回避などの付加サービスが提供され、印刷装置３０において印刷データが印刷される。
【００３１】
上記された印刷ジョブにおいて、ドライバ１２、サーバ通信１３、付加サービス２１および印刷装置３０のそれぞれにおいて、行ったジョブの履歴が蓄積される。しかしながら、上記された各モジュール（ドライバ１２、サーバ通信１３等）に保存される履歴情報だけでは、一連の印刷ジョブの全体的な流れで各モジュールが行った動作を把握できるように、以下のように行う。ここで本実施例では、図１に示されるように、各々のモジュールが保存する履歴情報を統合し、管理するジョブ情報履歴装置４０がネットワークに接続されている。
【００３２】
以下では図４に基づいて、ジョブ情報履歴装置４０が各モジュールの履歴情報を収集し、一連の印刷ジョブの流れを示す情報が作成される。
【００３３】
ジョブ情報履歴装置４０は、図２に示されるような各モジュールが生成したジョブ履歴情報を収集する（ステップＳ１）。収集された複数のジョブ履歴情報の内、一つの履歴情報を選択して、選択された履歴情報を基準履歴情報とする（ステップＳ２）。基準履歴情報に含まれるジョブ情報を全部走査する（ステップＳ３）。走査されたジョブの内の任意の１つを基準ジョブとし（ステップＳ４）、以下このジョブが行われた印刷ジョブの他のモジュールに格納される履歴が収集される。
【００３４】
マージの対象となる任意の履歴情報を１つ取り出す（ステップS ５）。基準ジョブと同一の印刷データを印刷する際に行われたと判断されるジョブを残りの各履歴情報の中から抽出し（ステップＳ６）、基準ジョブのジョブ情報に追加する（ステップＳ７）。本実施例では判断の基準は印刷が行われた日時と印刷データのサイズに基づいている。
【００３５】
抽出されたジョブ情報を履歴情報から削除する（ステップＳ８）、追加したジョブ情報でその印刷ジョブの全情報がマージされていなければ（ステップＳ９／Ｎｏ）、別の履歴情報を取り出す（ステップＳ５）。すべての履歴情報がマージされていれば（ステップＳ９／Ｙｅｓ）、取得したすべてのジョブ情報を１つの印刷ジョブのジョブ情報として統合化して、先に統合化されている統合化履歴情報に追加する（ステップＳ１０）。
【００３６】
基準履歴情報中のすべてのジョブが基準ジョブになっていなければ（ステップＳ１１／Ｎｏ）、別の任意のジョブを基準ジョブにする（ステップＳ４）。基準履歴情報中のすべてのジョブが基準ジョブになっており（ステップＳ１１／Ｙｅｓ）、かつ、収集した履歴情報が基準履歴情報になっていれば（ステップＳ１２／Ｙｅｓ）、処理は終了する。収集した履歴情報がすべて基準履歴情報になっていなければ（ステップＳ１２／Ｎｏ）、別の履歴情報が基準履歴情報になる（ステップＳ２）。
【００３７】
上記されたように１回の印刷ジョブについて、各モジュールに保存されるジョブ情報が統合化することによって、例えば、その結果を印刷するなどしてユーザが入手すれば、ユーザは従来に比べてそれぞれの印刷ジョブについて全体的な情報を入手することが容易になる。
【００３８】
本実施例では、ジョブ情報履歴装置４０は各モジュールの生成した履歴情報を統合化する時に、ある基準履歴情報中の基準ジョブと同一の印刷ジョブの際に行われたと判断されるジョブ情報を、残りの各履歴情報中から取得する際に判断基準が使用される。この判断基準は、その印刷ジョブが行われた日時とサイズの一致に基づいて行われる。
【００３９】
［第２の実施例］
以下に、第２の実施例を示す。本実施例では、上記第１の実施例において、上記された判断基準に基づいて判断された場合、同一の日時に同一のサイズの印刷ジョブが行われた時、別の印刷処理のジョブであったとしても、同一の印刷ジョブと判断してしまう可能性がある場合の回避例を示す。これ以下、第２の実施例としてＰＪＬ等の印刷制御情報中に「ＪＯＢＩＤ＝識別情報」を埋め込む方法について説明する。図５に、各モジュールが保存する履歴情報の内容を示す全体の構成図が示されている。
【００４０】
本実施例では、ドライバ１２等の印刷ジョブの開始点となるモジュールが、印刷データ中にジョブの識別情報を埋め込む。この識別情報は、システムやネットワーク全体の中で、その印刷ジョブであると特定できるものであるとする。識別情報を埋め込む方法としては、上記されたようにＰＪＬ等の印刷制御情報中に「ＪＯＢＩＤ＝識別情報」を付加する方法が選択される。
【００４１】
以下、図７（ａ）に示されるフローチャートに基づいて、本実施例におけるドライバ１２等のジョブの開始点において、識別情報をジョブデータに埋め込む処理を説明する。アプリケーションやシステムから、印刷要求の開始と印刷データの生成が依頼される（ステップＳ１１）。
【００４２】
印刷データとジョブの識別情報とを生成し（ステップＳ１２）、生成した印刷データとジョブの識別情報とをセットにして履歴情報に保管し（ステップＳ１３）、ジョブの識別情報をジョブデータに埋め込み、その後、印刷工程（付加サービス等）に送る（ステップＳ１４）。
【００４３】
以下、図７（ｂ）に示すフローチャートに基づいて、本実施例におけるジョブの開始点以外の点における処理を説明する。
モジュールの前の工程から送信されたジョブデータを受け取り（ステップＳ２１）、ジョブデータに従って各モジュールの一般の処理（付加サービス２１ならサーバサービスで、印刷装置３０なら紙出力）を行う（ステップＳ２２）。
【００４４】
ジョブデータ中のジョブ識別情報を抽出し、ジョブ識別情報とその他の情報（処理結果の情報やジョブ情報など）とをセットにして履歴情報に保管する（ステップＳ２３）。上記各モジュールが保存したジョブ履歴情報を、図６に示す。
【００４５】
各モジュールが保存したジョブ履歴情報群を統合するときは、基本的な統合化処理の流れは前記第１の実施例の場合と同様である。第１の実施例では、基準ジョブと同じ印刷ジョブで行われたジョブを他の履歴情報中から検索する場合は、日時とサイズの一致を判断基準としていた。本実施例では各ジョブの識別情報の一致により検索を実行する。
【００４６】
システム全体で印刷ジョブを特定できるジョブ識別情報の生成に関しては、クライアント１０のネットワークアドレスを使用する方法などが考えられる。ネットワークアドレスを用いることによりシステム上のネットワークノードが特定されるのため、識別情報の前半にクライアントのネットワークアドレスあるいはそれに基づいた値を用いる。
【００４７】
識別情報の後半には、そのネットワークノード（具体的にはクライアント１０）内で特有の値を付加する。例えば、特有の値としては、ミリ秒やマイクロ秒レベルの時間情報、あるいは、インクリメント・カウンタなどが考えられる。さらに分散コンピューティング技術におけるいくつかの「ユニーク値生成方式」（ＵＵＩＤなど）を用いてもよい。
【００４８】
また、ドライバ１２等の印刷データを生成するモジュールが、ジョブ識別情報を埋め込めないシステム構成の場合は、その後の工程モジュールが、前工程モジュールから送られた印刷データに対し、後から識別情報を付加する方法が採用される。
【００４９】
また印刷データの形式によっては識別情報を埋め込むことができない場合もあるが、その場合は前工程から後工程に印刷データを渡す通信手段の中で、識別情報を送信してもよい。つまり印刷データ内に識別情報を埋め込むのではなく、パケットのヘッダやコマンドの引数など、データ受け渡し手段の方を経由してジョブ識別情報を送信してもよい。
【００５０】
また通信手段によっては、ジョブを送信するのではなく、受信側が識別情報を付加する場合には、前工程（ジョブを送信する側）が後工程（ジョブを受け取る側）からその識別情報を受け取って、履歴情報に追加してもよい。
【００５１】
上記した本実施例に示すように、印刷ジョブに識別情報を新たに埋め込むことによって、印刷ジョブ情報を統合化する際に、違う印刷ジョブで行われたジョブであっても同じ印刷ジョブで行われたジョブと判断される可能性がなくなる。これにより、ユーザはより正確なジョブ情報を把握することができるようになる。
【００５２】
［第３の実施例］
以下、第１の実施例において、文書名（ジョブ名）、要求者情報や課金情報など、ジョブが開始されてから完了するまで変化しないと予想される情報が同一印刷ジョブの複数の履歴情報中で重複して現れる場合の、重複する情報を１つにマージして情報を統合化する方法について、第３の実施例として説明する。図８に、第３の実施例における全体の構成図を示す。図８において、各モジュールが保存する履歴情報の内容も示す。
【００５３】
以下に、図１０に示すフローチャートに基づいて、本実施例における動作を示す。以下の動作は図４に示すフローチャートのＳ６とＳ７との間で行われる。まず基準ジョブの中から情報項目の項目識別子をすべて取得する（ステップＳ３１）。ステップＳ６において抽出された統合化対象のジョブ中で、Ｓ３１で取得した項目識別子と重なるものを削除する（ステップＳ３２）。
【００５４】
この第３の実施例では、例としてジョブ情報は、ジョブ識別情報、日付、ユーザ名およびバイト数の４つから構成されるものとする。これら４つの情報は、ジョブ情報を表現する個々の構成要素であると考えられ、これらの構成要素は、以下に示すように、「タイプと値」の組から構成される。
【００５５】
例えば、ジョブ情報が上記４つの上記４つの要素から構成される場合は、１つのジョブ情報は「”jobid ＝１２３４”」「”date＝０６／０１”」「”user＝浅谷”」「”size＝１８０”」という４つの「タイプ＋値」組から成る。
【００５６】
各履歴情報は各モジュールにおけるジョブの履歴を並べたものでり、その個々のジョブ情報に、その値だけでなく、項目識別情報も含まれる。項目識別情報は情報要素のタイプを意味し、具体的には日時を表す情報の場合には日時情報を、バイト数を表す情報の場合にはバイト数情報のタイプである。
【００５７】
履歴情報がＣＳＶ（comma separated value ）形式のデータである場合、
jobid,    date，      user
１２３４，０６／０１，浅谷
１２３５，０６／０１，井上
の様になり、一行目にどの様なタイプのデータがどの順で並んでいるかを表す行を設けて識別するという方法がある。
【００５８】
あるいは履歴情報をＸＭＬ（extensible markup language）などのタグ付け形式にして、各情報要素が異なるタグ名で記載される方法もある。また履歴情報がバイナリデータの場合、各情報要素はその値だけではなく「タイプ、値」の列で格納される方法もある。
【００５９】
履歴情報を生成する各モジュールは、同じ意味の情報要素については同じ情報識別子で識別するようにする。例えば「ジョブ識別情報」という情報要素は、同じ印刷ジョブで行われている以上、ジョブのパスの開始から終了のいかなる点で採取しても同じ意味を持つ。
【００６０】
システムによっては、ジョブ名やジョブの要求者名も、ジョブの開始から終了まで同じ意味を持つ場合がある。上記されたような情報要素については、すべてのログ情報保存モジュールが、jobid 、jobname あるいはuserなどの同一の情報要素識別子を用いるようにする。
【００６１】
上記されたように型が付けられた履歴情報において、これらを統合化する場合には、同じ情報要素であれば一つにまとめることが可能になる。その処理の流れを図１０に示す。以下、まとめる処理について、図１０に基づいて説明する。
【００６２】
第１の実施例において、基準ジョブに別の履歴情報中の同一の印刷ジョブで行われたと判断されるジョブの情報を追加する時に、単に追加するのではなく、基準ジョブ情報内に既に存在する情報要素を１つ列挙する。そして各々の既存情報要素に対して、情報要素識別子をもつ情報要素を探し、一致する情報要素があれば、それを削除する。こうして残された情報要素だけが基準ジョブ情報に追加される。
【００６３】
本実施例では、２つのジョブ情報の中に重複する情報要素があった時に、基準ジョブ情報の値を優先する方法であった。しかしながら、基準ジョブ情報の値を統合化対象のジョブ情報の値で上書きしてもよい。また、双方の値を比較して、一致しない場合には、ユーザに一方の値を選択させたり、一致しなかった場合には、あらかじめユーザがどちらの値を選ぶかを指定できるようにするという方法を採用する。
【００６４】
上記されたように、複数の履歴情報に存在する同一印刷ジョブで行われたジョブの情報が統合化される際に、重複する情報要素を検知しマージすることで、統合化されたジョブ履歴情報は、情報を失わずに簡素化され、ユーザがデータを閲覧する際にも見易くなる。
【００６５】
［第４の実施例］
ジョブ識別情報に関する上記の説明では、印刷ジョブの情報断片に識別情報を必ず埋め込むむものとして説明したが、ジョブのデータ形式によっては、埋め込むことができない場合がある。また、ジョブ情報断片を供給するサブシステムの中には、ジョブデータの中身を見ることができない場合がある。
【００６６】
また、サブシステム間のジョブ搬送手段は、ジョブデータを埋め込まない場合もあり、さらには、ジョブ情報断片を供給するサブシステムの中にジョブの搬送に関与しないものもある。
【００６７】
以下、図１１の本発明の一実施形態として適用される印刷システムの構成図に基づいて、キーによって識別子を得る処理について説明する。ジョブの識別子を採番したサブシステムは、その識別子と、そのジョブを検索し得るキーのペアを、ジョブＩＤ一覧保持部に登録する。一方、ジョブ情報断片を供給するサブシステムは、そのジョブを検索し得るキーをジョブＩＤ一覧保持部に渡して、対応する識別子を受け取る。
【００６８】
以下、「ジョブを検索し得るキー」と「ジョブを識別する識別子」との違いについて説明する。
まず、「ジョブを識別する識別子」とは、ジョブの生成から消滅までの時間、システム全体でジョブを一意に識別するようなものである。
【００６９】
一般に印刷を行うシステムでは、ジョブは例えばClient  ＰＣ上で生成され、ＰＣ上の様々なモジュールを通り、やがて、そのジョブはＰＣの外を出て、印刷サーバに渡され、サーバＰＣ内の様々なモジュールを通り、さらに、サーバＰＣを出て印刷装置に渡される。
【００７０】
他方、キーとは範囲の限定されたコンテキスト内で、ジョブを識別可能な値である。例えば、Client  ＰＣ上でＯＳが番号をふる、すなわち採番するジョブＩＤは、そのＰＣ内に限定すれば、ジョブを識別できる。しかし、この値は、ジョブが印刷サーバや印刷装置など、Client  ＰＣ外ではジョブの識別に用いることができない。また、ＯＳによっては、再起動するだけでジョブ識別ができなくなるものもある。この場合、Client  ＰＣ上でＯＳが番号をふるＩＤは上記キーである。
【００７１】
ジョブＩＤ一覧保持部がこのClient  ＰＣ上で稼働する場合、ジョブＩＤ一覧保持部は、ＯＳが番号を振ったＩＤであるキーとジョブ識別子とのペアを保持する。Client  ＰＣ上でジョブ情報を供給する様々なモジュール（例えば、印刷アプリケーションや、プリンタドライバ、ポートドライバ、印刷プロセッサなど）は、ＯＳのジョブＩＤから、システム全体に渡って有効なジョブ識別子を入手することができる。
【００７２】
以下、サブシステム間でジョブを搬送する例について説明する。例えば、ネットワーク印刷プロトコルの中には、ジョブ受信側（印刷サーバなど）が、ジョブを受け取るときにふったＩＤをジョブ送出側（印刷クライアントなど）に渡すものがある。
【００７３】
この場合、ＩＤとしてどのような値を用いるかの決定権は、ジョブ受信側にある。本来、ジョブの生成時に識別子を生成し、ジョブの生成と同じ時点からのそのジョブの識別を可能にしなければ、ジョブの生成初期の時点で関与するサブシステムはジョブ情報を生成できない（生成できても、識別子は埋め込めない）。
【００７４】
また、ジョブ受信側の中には、このジョブ受信側のみでジョブを識別可能な値、すなわち、他のサブシステムでは識別不能な値を返すものもある。また、印刷プロトコルによっては、ジョブ受信側が返すジョブＩＤのデータ形式が決められている場合がある。この場合、システム全体でジョブを識別するための共通の情報を埋め込むことができない。
【００７５】
従って、システム全般でジョブを識別可能な識別子は、別途に採番される。例えば、ジョブの生成時点で番号をふられるようにしてもよい。そして、この例では、キーは印刷サーバなどが生成するＩＤとなる。
【００７６】
この場合、「ClientなどのサブシステムＡと、サーバなどのサブシステムＢの間のジョブ搬送」という限定されたコンテキストで、搬送プロトコル上のＩＤは有用なものである。従って、この間の授受に対してジョブＩＤ一覧保持部を起き、ジョブ送出側と受信側の二者間で有効なＩＤをキーとして、ジョブフローの上流から引き継がれてきたジョブ識別子を検索可能にする。
【００７７】
このように既存の技術で導入されているジョブＩＤ値とは、Client  ＰＣ内のＯＳ範囲内や、二者間のジョブ搬送通信など、限定されたコンテキストで有用な値である。既存技術ではこのようなＩＤは多いので、それをそのコンテキスト内における「キー」とし、そのキーからシステム全体でジョブを識別できる識別子を検索する。
【００７８】
なお、本例では、「ジョブＩＤ一覧保持部をCleint  ＰＣ内に置き、Cleint  ＰＣ内の各モジュールでのジョブ識別子検索を可能にする」「ジョブ送信側と受信側の二者間にジョブＩＤ一覧保持部を置き、この二者間でのジョブ識別子検索を可能にする」という方法を例示した。この例は、ジョブＩＤ一覧保持部を、各々のコンテキスト内に置くモデルである。
【００７９】
しかし、別の方法として、ジョブＩＤ一覧保持部を各々のコンテキストの外に置き、システム全体で活用できる位置付けとすることもできる。そのためには、例えば、［key-識別子］というペアの配列でなくて、［contexｔ‐Ａのkeｙ，context - Ｂのkey ，context - Ｃのkey - 識別子］というように、一つのジョブ識別子に対して、各コンテキスト毎のkey を結び付けられるようにすればよい。
【００８０】
以下、図１２（ａ）および（ｂ）に基づいてジョブ生成側サブシステムおよびジョブ受信／監視側サブシステムが行う処理について説明する。まず、ジョブ生成側サブシステムがジョブＩＤ一覧保管部にキーと識別子のペアを保管する処理について説明する。
【００８１】
ジョブ識別子を生成する（ステップＳ４１）と、そのジョブを限定されたコンテキスト内であれば別の方法で特定できるようなキーを決定する（ステップＳ４２）。ジョブ識別子とキーとを、ジョブＩＤ一覧保持部に通知する（ステップＳ４３）。ジョブＩＤ一覧保持部は、キーと識別子とのペアを保管して（ステップＳ４４）、処理が終了する。
【００８２】
次に、ジョブ受信／監視側サブシステムがキーと一致する識別子を返す処理について説明する。ジョブ情報を取得すると（ステップＳ５１）、そのジョブを限定されたコンテキスト内であれば別の方法で特定できるようなキーを決定する（ステップＳ５２）。
【００８３】
キーをジョブＩＤ一覧保持部に送り、対応する識別子を要求する（ステップＳ５３）。ジョブＩＤ一覧保持部はＩＤ一覧を検索し、キーと一致する識別子を返す（ステップＳ５４）。
以下、消去する時期を認識する処理について説明する。
【００８４】
ジョブ識別子一覧は各サブシステムが保持する。各サブシステムは、自分がジョブを処理する過程で、必要なジョブ識別子のみ記憶し、ジョブ情報を送出し終えた場合に不要となった識別子が発生する。この識別子は、サブシステム自身の適切なタイミングで破棄すればよい。
【００８５】
ＩＤ通知部が［key ］−［識別子] の情報を各サブシステムに通知する手段としては、予めそのような情報を必要とするサブシステムが自身を通知先として登録する方法もあるし、あるいは、ネットワーク上のbroadcast/multicast のようにあらかじめ、決められた手段で情報を不特定多数に流し、各サブシステムが必要な分だけ拾うという方法もある。
【００８６】
以下、図１５の（ａ）および（ｂ）に基づいて、識別子の番号をふる処理（採番処理）について説明する。まず、（ａ）に基づいてこの処理を説明する。
【００８７】
アプリケーションやドライバなどジョブ識別子の番号をふるモジュールは、識別子とキーとをＩＤ通知部に渡す（ステップＳ６１）。ＩＤ通知部はこのキーと識別子とを各サブシステムに通知する（ステップＳ６２）。キーと識別子とを受信した各サブシステムは、それを自身で保持して（ステップＳ６３）、処理は終了する。
【００８８】
次に、（ｂ）に基づいてサブシステムによるジョブ情報生成時の処理について説明する。対象とするジョブのキーをもとにして、自身が持つテーブルから対応する識別子を取り出す（ステップＳ７１）。そのジョブの情報を送出し、自身のテーブルからそのジョブの［キー］−［識別子］を削除する（ステップＳ７２）。
【００８９】
以下、ジョブ履歴保持部が、任意のジョブ情報において、情報断片の受信待機時間の判断方法について説明する。ここで、ジョブが通るパス上のサブシステムは様々なタイミングでジョブ情報断片をジョブ履歴保持部に供給するものとする。
【００９０】
図１６に、本発明の一実施形態として適用される印刷システムの構成図が示す。各サブシステムは、自身のもとにジョブが搬送された時に、開始を表す通知をジョブ履歴保持部αに送る。この時、この通知だけでなく、開始に関するジョブ情報断片を一緒に送ってもよい。
【００９１】
サブシステムはジョブ処理を行った後、次工程のサブシステムにジョブを搬送する。
サブシステムはジョブ処理を開始したら、Start の通知をジョブ履歴情報保持部に送る。前工程のサブシステムは、ジョブの転送が完了した後、ジョブ情報断片を送らないことを表す通知を送る。なお、前記同様に、自身のジョブ処理の終了に関するジョブ情報断片を一緒に送るようにしてもよい。
【００９２】
次工程のサブシステムも同様に、ジョブ処理を行った後に次工程に送り、End の通知（必要ならばジョブ情報断片も）ジョブ履歴保持部に送る。サブシステムの中には、ジョブのフローに介在せず、ジョブパスの外から監視を行うものもある。本例では、印刷装置を監視するサブシステムがあるとする。
【００９３】
このサブシステムは、自身が監視するポイントでジョブが発生（あるいは受信）したことを発見した場合、前記同様にStart の通知や補足のジョブ情報断片をジョブ履歴保持部に送る。また、そのポイントにおいてジョブが消滅したら、End の通知や補足のジョブ情報断片をジョブ履歴保持部に送る。
【００９４】
一方、ジョブ履歴保持部は、Start - End やそれに付随するジョブ情報断片を蓄積する。任意のジョブに対し、一のサブシステムからEnd の通知が来ても、他のサブシステムからはStart の通知しかきていない場合、このジョブは、システム上で生存し、今後も情報断片が寄せられる可能性がある。その場合は、そのジョブに関しては、まだオープン状態とする。
【００９５】
Start を送ったすべてのサブシステムから、そのジョブに対するEnd の通知が来たら、システム上でそのジョブに対する情報断片はそれ以上寄せられないと判断し、そのジョブの情報をクローズし、情報断片のマージを行う。以上のようにすれば、システム上の様々なサブシステムが、様々なタイミングでジョブ情報断片を供給する場合でも、情報断片をまとめあげる正確なタイミングを得ることができる。
【００９６】
図１７に、上記の処理についての処理の流れを示す。まず、Subsystem Ａにジョブが搬送されると、開始を示す通知がジョブ履歴保持部に送られ、ジョブ処理が開始される。そのジョブ処理が終了したら次工程のサブシステムであるSubsystem Ｂにそのジョブは搬送される。
【００９７】
その搬送が終了すると、終了を示す通知をジョブ履歴保持部に送る。一方、ジョブが搬送されたSubsystem Ｂは開始を示す通知をジョブ履歴保持部に送り、搬送されたジョブの処理を開始する。
【００９８】
同様に、処理が終了したら次工程のサブシステムである印刷装置にジョブを搬送する。搬送が終了したら終了を示す通知をジョブ履歴保持部に送る。一方、ジョブが搬送された印刷装置では搬送が終了したら、印刷処理を行って処理を終了する。
【００９９】
また、ジョブのフローに参加しないSubsystem Ｘでは、Subsystem Ｂから印刷装置へのジョブの搬送が開始したら、ジョブ履歴保持部へその開始を示す通知を行い、上記システムにおけるすべての処理が終了したら、その終了を示す通知をジョブ履歴保持部へ行う。
【０１００】
【発明の効果】
以上の説明から明らかなように、本発明によれば、１回１回の印刷ジョブについて、各モジュールに保存されるジョブ情報が統合化されるので、その結果を印刷するなどしてユーザが入手しやすくすれば、ユーザは従来に比べてそれぞれの印刷ジョブについての全体的な情報を入手することが容易になる。
【０１０１】
さらに印刷ジョブに識別情報を新たに埋め込むことによって、印刷ジョブ情報を統合化する際に、違う印刷ジョブで行われたジョブであっても同じ印刷ジョブで行われたジョブと判断される可能性がなくなるので、ユーザはより正確なジョブ情報を把握することができるようになる。
【０１０２】
さらに、複数の履歴情報に存在する同一印刷ジョブで行われたジョブの情報が統合化される際に、重複する情報要素を検知しマージすることで、統合化されたジョブ履歴情報は、情報を失わずに簡素化され、ユーザがデータを閲覧する際にも見易くなる。
【０１０３】
また、ジョブ識別子を直接読み出すことができなくても、検索して読み出すことができるので、確実に識別子を読み出すことができ、より正確に印刷ジョブをまとめることが可能になる。
【０１０４】
また、ジョブ履歴保持部において必要がなくなった識別子を破棄することができるようになったので、より効率よくジョブ履歴保持部を識別子の記憶領域を使用することが可能になった。
【０１０５】
また、ジョブをまとめるタイミングをサブシステムが把握することが可能になったので、各サブシステムはジョブをまとめる適切なタイミングのもとにジョブをまとめることが可能になった。
【図面の簡単な説明】
【図１】本発明の印刷システムに係る第１の実施例の全体構成図である。
【図２】ドライバ１２に保存される履歴情報１２ａ、付加サービス２１に保存される履歴情報２１ａおよび印刷装置３０に保存される３０ａ各々の履歴情報の内容の一例である。
【図３】第１の実施例における処理動作を実行するプログラムの内容が示されている。
【図４】第１の実施例における動作が示されるフローチャートである。
【図５】本発明の印刷システムに係る第２の実施例の全体構成図である。
【図６】第２の実施例において各モジュールが保存する履歴情報の一例が示されている。
【図７】第２の実施例において各モジュールの動作が示されるフローチャートである。
【図８】本発明の印刷システムに係る第３の実施例における全体構成図である。
【図９】第３の実施例における処理動作を実行するプログラムが示されている。
【図１０】第３の実施例における動作が示されるフローチャートである。
【図１１】本発明の一実施形態として適用される印刷システムの構成図である。
【図１２】ジョブ生成側のサブシステムがキーと識別子を保管する処理およびジョブ受信／監視側のサブシステムがキーから識別子を検索する処理が示されたフローチャートである。
【図１３】印刷ジョブの基本モデル、ジョブデータへの埋め込みおよびジョブ搬送手段でのＩＤ通知について示される図である。
【図１４】本発明の一実施形態として適用される印刷システムの構成図である。
【図１５】識別子の番号をふる処理とサブシステムによってジョブ情報の生成時に行われる処理とが示されたフローチャートである。
【図１６】本発明の一実施形態として適用される印刷システムの構成図である。
【図１７】ジョブ履歴保持部に各サブシステムがジョブの開始と終了とを示すフローチャートである。
【符号の説明】
１０  クライアント
１１  アプリケーション
１２  ドライバ
１２ａ  ドライバに保存される履歴情報
１２ｂ  ドライバに保存される履歴情報
１２ｃ  ドライバに保存される履歴情報
１３  サーバ通信
１３ａ  サーバ通信に保存される履歴情報
１３ｂ  サーバ通信に保存される履歴情報
１３ｃ  サーバ通信に保存される履歴情報
２０  サーバＰＣ
２１  付加サービス
２１ａ  付加サービスに保存される履歴情報
２１ｂ  付加サービスに保存される履歴情報
２１ｃ  付加サービスに保存される履歴情報
３０  印刷装置
３０ａ  印刷装置に保存される履歴情報
３０ｂ  印刷装置に保存される履歴情報
３０ｃ  印刷装置に保存される履歴情報
４０  ジョブ情報履歴装置
４０ａ  ジョブ情報履歴装置に保存される履歴情報
４０ｂ  ジョブ情報履歴装置に保存される履歴情報
４０ｃ  ジョブ情報履歴装置に保存される履歴情報
Ａ  サブシステム
Ｂ  サブシステム
Ｃ  サブシステム
Ｘ  サブシステム
【図１】
0004121006.tif 000002
【図２】
0004121006.tif 000003
【図３】
0004121006.tif 000004
【図４】
0004121006.tif 000005
【図５】
0004121006.tif 000006
【図６】
0004121006.tif 000007
【図７】
0004121006.tif 000008
【図８】
0004121006.tif 000009
【図９】
0004121006.tif 000010
【図１０】
0004121006.tif 000011
【図１１】
0004121006.tif 000012
【図１２】
0004121006.tif 000013
【図１３】
0004121006.tif 000014
【図１４】
0004121006.tif 000015
【図１５】
0004121006.tif 000016
【図１６】
0004121006.tif 000017
【図１７】
0004121006.tif 000018