(57)【特許請求の範囲】
【請求項１】
プリンタドライバにより生成されたジョブを記憶手段に保存して、クライアントからの要求に従い保存されたジョブを印刷処理するためのプリンタを特定する情報処理装置であって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを受信し、前記記憶手段に保存する保存手段と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理手段と、
前記要求により印刷指示されたジョブがジェネリックドライバで生成されたジョブであるか否かを判定する判定手段と、
前記判定手段により前記印刷指示されたジョブがジェネリックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブの設定情報より当該ジョブを印刷可能なプリンタのデバイスタイプを特定するデバイスタイプ特定手段と、
前記デバイスタイプ特定手段にて特定したデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定するプリンタ特定手段とを有し、
前記プリンタ特定手段は、前記印刷指示されたジョブがスペシフィックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブを生成したスペシフィックドライバに対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定することを特徴とする情報処理装置。
【請求項２】
前記デバイスタイプは、Ａ３及びＡ４サイズに対応してカラー印刷及びモノクロ印刷が可能なタイプ、Ａ４サイズに対応してカラー印刷及びモノクロ印刷が可能なタイプ、Ａ３及びＡ４サイズに対応してカラー印刷が不可能なタイプ、Ａ４サイズに対応してカラー印刷が不可能なタイプのうち、少なくとも１つを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段により前記印刷指示された複数のジョブが全てジェネリックドライバで生成されたジョブであると判定されたことに応じて、
前記デバイスタイプ特定手段が、当該印刷指示された複数のジョブの設定情報より当該ジョブを印刷可能なプリンタのデバイスタイプを特定し、
前記プリンタ特定手段が、当該特定したデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定手段により前記印刷指示された複数のジョブにジェネリックドライバで生成されたジョブとスペシフィックドライバで生成されたジョブとを含むと判定されたことに応じて、
前記デバイスタイプ特定手段が、前記ジェネリックドライバで生成されたジョブを印刷可能なプリンタのデバイスタイプを特定し、
前記プリンタ特定手段が、当該特定したデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記ジェネリックドライバで生成されたジョブを印刷可能なプリンタとして特定し、
さらに、当該ジェネリックドライバで生成されたジョブを印刷可能として特定されたプリンタが、前記スペシフィックドライバで生成されたジョブのドライバ情報に対応するプリンタと一致した場合、当該プリンタを前記印刷指示されたジョブを印刷可能なプリンタとして特定することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記判定手段により前記印刷指示された複数のジョブにジェネリックドライバで生成されたジョブとスペシフィックドライバで生成された複数のジョブとを含むと判定されたことに応じて、
前記プリンタ特定手段は、前記スペシフィックドライバで生成された複数のジョブの夫々のドライバ情報に対応するプリンタが異なる場合、印刷可能なプリンタが無いことを特定し、
前記クライアントには、前記印刷指示された複数のジョブを印刷可能なプリンタが無いことが通知されることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記プリンタ特定手段により特定されたプリンタを、前記クライアントに通知し、前記クライアントで選択されたプリンタにおいて、前記印刷指示されたジョブが印刷処理されることを特徴とする請求項１乃至５の何れか１項の情報処理装置。
【請求項７】
プリンタドライバにより生成されたジョブを記憶手段に保存して、プリンタからの要求に従い当該プリンタで印刷可能なジョブを特定する情報処理装置であって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを受信し、前記記憶手段に保存する保存手段と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理手段と、
前記要求を行ったプリンタのデバイスタイプを前記管理手段で管理されるプリンタ情報により特定する第１の特定手段と、
（１）前記記憶手段に保存されているジェネリックドライバで生成されたジョブに関しては前記第１の特定手段により特定されたデバイスタイプで印刷可能かを判定し、（２）前記記憶手段に保存されているスペシフィックドライバで生成されたジョブに関しては当該ジョブのドライバ情報から前記要求を行ったプリンタで印刷可能かを判定する判定手段と、
前記判定手段による判定結果に従い、前記記憶手段に保存されているジョブから、前記要求を行ったプリンタで印刷可能なジョブを特定する第２の特定手段と、
を有することを特徴とする情報処理装置。
【請求項８】
前記第２の特定手段により特定された複数のジョブを前記要求を行ったプリンタに通知し、前記要求を行ったプリンタで選択されたジョブの印刷指示に応じて、選択されたジョブが前記要求を行ったプリンタで印刷処理されることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
クライアントと、プリンタドライバにより生成されたジョブを記憶手段に保存する情報処理装置とを含み、印刷の要求に従い保存されたジョブをプリンタで印刷処理するためのシステムであって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを前記記憶手段に保存する保存手段と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理手段と、
前記記憶手段に保存されたジェネリックドライバで生成されたジョブを印刷可能なプリンタのデバイスタイプを特定するデバイスタイプ特定手段と、を有し、
前記クライアントからの印刷の要求に従い、前記デバイスタイプ特定手段にて特定された、当該要求で印刷指示されたジェネリックドライバで生成されたジョブを印刷可能なプリンタのデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記クライアントに通知し、前記クライアントで選択されたプリンタにおいて当該ジョブが印刷処理されることを特徴とするシステム。
【請求項１０】
プリンタからの印刷の要求に従い、
前記デバイスタイプ特定手段が、前記記憶手段に保存されているジェネリックドライバで生成されたジョブに関しては前記印刷の要求を行ったプリンタのデバイスタイプで印刷可能かを判定し、前記記憶手段に保存されているジョブから前記プリンタで印刷可能なジョブを特定し、
当該特定されたジョブを前記プリンタに通知し、前記プリンタで選択されたジョブの印刷指示に応じて、選択されたジョブが前記プリンタで印刷処理されることを特徴とする請求項９に記載のシステム。
【請求項１１】
プリンタドライバにより生成されたジョブを記憶手段に保存して、クライアントからの要求に従い保存されたジョブを印刷処理するためのプリンタを特定する情報処理装置における制御方法であって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを受信し、前記記憶手段に保存する保存工程と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理工程と、
前記要求により印刷指示されたジョブがジェネリックドライバで生成されたジョブであるか否かを判定する判定工程と、
前記判定工程で前記印刷指示されたジョブがジェネリックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブの設定情報より当該ジョブを印刷可能なプリンタのデバイスタイプを特定するデバイスタイプ特定工程と、
前記デバイスタイプ特定工程で特定したデバイスタイプと一致する前記管理されたプリンタ情報に対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定するプリンタ特定工程とを有し、
前記プリンタ特定工程では、前記印刷指示されたジョブがスペシフィックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブを生成したスペシフィックドライバに対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定することを特徴とする制御方法。
【請求項１２】
プリンタドライバにより生成されたジョブを記憶手段に保存して、プリンタからの要求に従い当該プリンタで印刷可能なジョブを特定する情報処理装置における制御方法であって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを受信し、前記記憶手段に保存する保存工程と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理工程と、
前記要求を行ったプリンタのデバイスタイプを前記管理されるプリンタ情報により特定する第１の特定工程と、
（１）前記記憶手段に保存されているジェネリックドライバで生成されたジョブに関しては前記第１の特定工程において特定されたデバイスタイプで印刷可能かを判定し、（２）前記記憶手段に保存されているスペシフィックドライバで生成されたジョブに関しては当該ジョブのドライバ情報から前記要求を行ったプリンタで印刷可能かを判定する判定工程と、
前記判定工程における判定結果に従い、前記記憶手段に保存されているジョブから、前記要求を行ったプリンタで印刷可能なジョブを特定する第２の特定工程とを有することを特徴とする制御方法。
【請求項１３】
クライアントと、プリンタドライバにより生成されたジョブを記憶手段に保存する情報処理装置とを含み、印刷の要求に従い保存されたジョブをプリンタで印刷処理するためのシステムにおける制御方法であって、
複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを前記記憶手段に保存する保存工程と、
プリンタのデバイスタイプを含むプリンタ情報を管理する管理工程と、
前記記憶手段に保存されたジェネリックドライバで生成されたジョブを印刷可能なプリンタのデバイスタイプを特定するデバイスタイプ特定工程と、を有し、
前記クライアントからの印刷の要求に従い、前記デバイスタイプ特定手段にて特定された、当該要求で印刷指示されたジェネリックドライバで生成されたジョブを印刷可能なプリンタのデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記クライアントに通知し、前記クライアントで選択されたプリンタにおいて当該ジョブが印刷処理されることを特徴とする制御方法。
【請求項１４】
請求項１乃至６の何れか１項に記載の手段としてコンピュータを機能させるプログラム。
【請求項１５】
請求項７または８に記載の手段としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はジェネリックドライバで生成されたＰＤＬジョブをプリントサーバに保存後、印刷対象のジョブを印刷するプリンタを特定する技術に関する。
【背景技術】
【０００２】
ジェネリックドライバはカラー複合機、モノクロ複合機、ＳＦＰなどのプリント機器に対して、汎用的に共通のプリンタドライバでＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された印刷データを印刷ジョブとして出力することができる。一方、従来のデバイスモデル毎の固有のドライバをスペシフィックドライバという。印刷ジョブを保存し、一度溜め置いてから印刷を開始するプリントサーバにおいて、印刷開始リクエスト時にプリンタの選択が行われる。
【０００３】
ここで、スペシフィックドライバで生成された印刷ジョブはドライバに紐付けられたプリンタでしか印刷することができない。一方、ジェネリックドライバで生成される印刷ジョブは、生成時は印刷するプリンタを意識する必要がない。そして、印刷開始時にジェネリックドライバが対応するプリンタを選択することもでき、より柔軟なプリントシステムを構成することができる。
【０００４】
従来のジェネリックドライバによる印刷では、ＰＤＬの種類（ＰＳ、ＰＣＬなど）に応じて、印刷可能なプリンタをジョブ生成時にネットワーク上から特定している。（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−９１７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ジェネリックドライバで生成した印刷データは複数のデバイスモデルに汎用的なジョブであるが、例えばＡ３カラー設定で生成された印刷データをＡ４モノクロ専用のプリンタで印刷することはできない。すなわち、ジョブの設定（Ａ４、Ａ３、モノクロ、カラー等）によって印刷できるプリンタが異なる。
【０００７】
プリントサーバに印刷データを一度保存し、その後、印刷開始するようなプリントシステムがある。このシステムにおいて、ユーザは、プリントサーバに保存された印刷データを選択し、印刷可能なプリンタ一覧の中からプリンタを選択することで印刷指示を行い、選択されたデータがプリンタにジョブとして出力されることで印刷が開始される。従来、このようなシステムにおいては、スペシフィックドライバで生成された印刷データの場合は、生成したドライバ名を参照して印刷可能なプリンタを特定されていた。
【０００８】
しかし、前述のようにジェネリックドライバで生成された印刷データはその設定（Ａ４、Ａ３、モノクロ、カラー）によって印刷可能なプリンタが異なるため、ドライバ名を参照して印刷可能なプリンタを特定することができないという課題がある。
【０００９】
そこで、本発明においては、上述のシステムにおいてサーバに保存されるジョブ（印刷データ）にジェネリックドライバにより生成されたジョブが含まれていても、実際の印刷要求時に印刷可能なプリンタを適切に特定できる手法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するために成されたものであり、例えば、以下の構成を有する。プリンタドライバにより生成されたジョブを記憶手段に保存して、クライアントからの要求に従い保存されたジョブを印刷処理するためのプリンタを特定する情報処理装置であって、複数のデバイスタイプのプリンタに対応するジェネリックドライバにより生成されたジョブ及び特定のプリンタに対応するスペシフィックドライバにより生成されたジョブを受信し、前記記憶手段に保存する保存手段と、プリンタのデバイスタイプを含むプリンタ情報を管理する管理手段と、前記要求により印刷指示されたジョブがジェネリックドライバで生成されたジョブであるか否かを判定する判定手段と、前記判定手段により前記印刷指示されたジョブがジェネリックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブの設定情報より当該ジョブを印刷可能なプリンタのデバイスタイプを特定するデバイスタイプ特定手段と、前記デバイスタイプ特定手段にて特定したデバイスタイプと一致する前記管理手段により管理されたプリンタ情報に対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定するプリンタ特定手段とを有し、前記プリンタ特定手段は、前記印刷指示されたジョブがスペシフィックドライバで生成されたジョブであると判定されたことに応じて、当該ジョブを生成したスペシフィックドライバに対応するプリンタを、前記印刷指示されたジョブを印刷可能なプリンタとして特定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、上述のシステムにおいてサーバに保存されるジョブ（印刷データ）にジェネリックドライバにより生成されたジョブが含まれていても、その保存ジョブの例えばデバイスタイプとドライバ名といった設定情報より、実際の印刷要求時に印刷可能なプリンタを適切に特定することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係るシステム構成を示すブロック図。
【図２】本実施形態に係るコンピュータのハードウェア構成図。
【図３】本実施形態に係るプリンタのハードウェア構成図。
【図４】本実施形態に係る各サーバのソフトウェア構成図。
【図５】本実施形態に係る各種データのデータ構造を示す図。
【図６】本実施形態に係るプリンタのソフトウェア構成図。
【図７】本実施形態に係るプルプリントアプリケーションのソフトウェア構成図。
【図８】第一の実施形態に係るクライアントからの印刷処理のシーケンス図。
【図９】第一の実施形態に係るＷｅｂサーバが生成する画面例を示す図。
【図１０】第一の実施形態に係る代行印刷時のシーケンス図。
【図１１】第一の実施形態に係るジョブを印刷可能なプリンタ特定の処理フローの図。
【図１２】本実施形態に係る印刷可否を判定するための表を示す図。
【図１３】第二の実施形態に係るプリンタからの印刷処理のシーケンス図。
【図１４】第二の実施形態に係るプルプリントアプリケーションが生成する画面例の図。
【図１５】第二の実施形態に係る印刷可能なジョブを特定するための処理フローの図。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。ここで、本発明のシステムにおいては、クライアントやプリンタなどのネットワークに接続された表示手段を備えるネットワーク機器が、システム内の外部サーバにリクエストを行うことで、ジョブをプリンタに出力させ、所望な印刷を行うものである。
【００１４】
＜第一の実施形態＞
＜システム構成＞
図１は、本発明に係るシステムの構成例を示すブロック図である。図１において、Ｗｅｂサーバ１０１、ドキュメントサーバ１０２、印刷サーバ１０３、キャッシュサーバ１０４、システム管理サーバ１０５、クライアント１０６、プリンタ１０７、ネットワークストレージ１０８、認証サーバ１０９は通信回線を介して接続される。通信回線は、いわゆる通信ネットワークである。本実施形態では、例えばインターネットやイントラネット等のＴＣＰ／ＩＰネットワークであり、データリンクレイヤはＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか又はこれらの組み合わせにより実現される。各種サーバは通信回線を介して、データの送受信が可能であればよく、各装置間の通信手段がそれぞれ異なっていてもよい。例えば、クライアント１０６からＷｅｂサーバ１０１への通信手段、印刷サーバ１０３からネットワークストレージ１０８、プリンタ１０７への通信手段、及び各サーバ間の通信手段などが該当する。なお、本実施形態において、各種サーバは機能ごとにそれぞれ別の装置として示しているが、これに限られるものではなく、各機能をまとめて備える装置にて実現されても良い。
【００１５】
＜コンピュータのハードウェア構成＞
図２は、Ｗｅｂサーバ１０１、ドキュメントサーバ１０２、印刷サーバ１０３、キャッシュサーバ１０４、システム管理サーバ１０５、クライアント１０６、ネットワークストレージ１０８、認証サーバ１０９の基本的なハードウェア構成を示すブロック図である。これらの装置は、一般的な情報処理装置としての機能を実現できる構成を有していれば良い。図２において外部機器Ｉ／Ｆ２０１、ＮｅｔＷｏｒｋＩ／Ｆ２０２、ＣＰＵ２０３、ＲＯＭ２０４、ＲＡＭ２０５、ＨＤＤ２０６、入力装置２０７、表示装置２０８は、それぞれシステムバスを介して互いに接続されている。システムバスは、例えば、ＰＣＩバス、ＡＧＰバス、及びメモリバス等から成る。なお、図２では、各バス問の接続用チッブや、いわゆるＳＣＳＩやＡＴＡＰＩのような構成要素間の入出力用インターフェースは省略されている。
【００１６】
ＣＰＵ２０３は、ＨＤＤ２０６に記憶されたプログラムをＲＡＭ２０５に読み込み、このプログラムに基づき処理を実行することによって、コンピュータ上の各処理を司る。ＲＯＭ２０４は、本装置の各処理に関わるプログラムやデータを記憶し、書換え不可能である。ＲＡＭ２０５は、本装置の各処理に関わる一時的なデータを電気的に記憶でき、かつ書き換え可能である。本装置の各処理に関わるプログラムやデータ、及び一時的なデータ等はＨＤＤ２０６に記憶される。入力装置２０７は、本装置への指示入力を受け付けるキーボードやポインティングデバイスである。表示装置２０８は、本装置の動作状況や、本装置上で動作する各プログラムが出力する情報を表示する。ＮｅｔｗｏｒｋＩ／Ｆ２０２は、ネットワーク経由でＬＡＮ及びインターネットに接続し、外部と情報交換を行う。外部機器Ｉ／Ｆ２０１は外部記憶機器等を接続する。
【００１７】
＜プリンタのハードウェア構成＞
図３は、プリンタ１０７のハードウェア構成の一例を示す図である。図３において原稿給送部３０１、イメージリーダ３０２、画像形成部３０３、排紙部３０４、ＮｅｔｗｏｒｋＩ／Ｆ３０５、ＣＰＵ３０６、ＲＯＭ３０７、ＲＡＭ３０８、ＨＤＤ３０９、操作部３１０は、それぞれシステムバスを介して互いに接続されている。システムバスは、例えば、ＰＣＩバス、ＡＧＰバス、及びメモリバス等から成る。なお、図３では、各バス問の接続用チッブや、いわゆるＳＣＳＩやＡＴＡＰＩのような構成要素間の入出力用インターフェースは省略されている。
【００１８】
イメージリーダ３０２は、原稿給送部３０１で原稿を読み込む。イメージリーダ３０２及び画像形成部３０３は、読み込んだ原稿や、ネットワーク経由で受信したデータを印刷画像に変換・印刷出力する。排紙部３０４は印刷出力した紙を排出し、ソートやステイプル等の処理を施す。ＮｅｔｗｏｒｋＩ／Ｆ３０５はネットワーク経由でＬＡＮ及びＷＡＮに接続することができ、外部と情報交換を行う。ＣＰＵ３０６は、ＲＯＭ３０７、又はＨＤＤ３０９に記憶されたプログラムをＲＡＭ３０８に読み込み、このプログラムに基づき処理を実行することによって、本装置（プリンタ）上の各処理を司る。不揮発性記憶手段のＲＯＭ３０７は本装置の各処理に関わるプログラムやデータを記憶する。書き換え可能なＲＡＭ３０８は本装置の各処理に関わる一時的なデータを電気的に記憶する。ＨＤＤ３０９は本装置の各処理に関わるプログラムやデータ、及び一時的なデータ等を記憶する。操作部３１０は画面を表示したり、画面を介したユーザの操作指示を受け付けたりする。
【００１９】
［Ｗｅｂサーバ１０１］
図４（ａ）は、Ｗｅｂサーバ１０１のソフトウェア構成を示した図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００２０】
Ｗｅｂサーバ１０１は、リクエスト処理部４０１、インターフェース部４０２、Ｗｅｂページ生成部４０３、ロジック部４０４を有する。リクエスト処理部はクライアント１０６やプルプリントアプリケーション６０２からのリクエストを受信し、レスポンスを返す。クライアント１０６からのリクエストにはレスポンスとしてＷｅｂページを返し、プルプリントアプリケーション６０２からのリクエストにはＸＭＬ形式にフォーマットした情報をレスポンスとして返す。インターフェース部４０２はドキュメントサーバ１０２、キャッシュサーバ１０４、システム管理サーバ１０５、認証サーバ１０９との通信を処理する。ロジック部４０４はリクエスト処理部４０１で受け付けたリクエストに応じて処理を実行する。
【００２１】
Ｗｅｂサーバ１０１へのリクエストとしてログイン、保存ドキュメントの印刷開始・中止・表示・削除などがある。Ｗｅｂサーバ１０１はリクエストに応じて、各サーバからデータを取得したり、他のサーバへドキュメント操作のリクエストを行ったりし、その結果をレスポンスとして返す。
【００２２】
［ドキュメントサーバ１０２］
図４（ｂ）はドキュメントサーバ１０２のソフトウェア構成を示した図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００２３】
ドキュメントサーバ１０２は、インターフェース部４１１、ドキュメントマネージャ４１２、データ管理部４１３を有する。インターフェース部４１１はＷｅｂサーバ１０１、印刷サーバ１０３、キャッシュサーバ１０４との通信を処理する。ドキュメントマネージャ４１２はインターフェース部４１１で受け付けたリクエストに応じて処理を実行する。データ管理部４１３はドキュメント情報５００をデータベースで管理し、ドキュメントマネージャ４１２からの指示で更新する。データベースは図２で示したＨＤＤ２０６に記憶されている。またデバイスモデル情報５３０やプリンタ情報５４０をシステム管理サーバより定期的に取得し、ＲＡＭ２０５上に保存している。
【００２４】
［印刷サーバ１０３］
図４（ｃ）は印刷サーバ１０３のソフトウェア構成を示した図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００２５】
印刷サーバ１０３は、インターフェース部４２１、ジョブマネージャ４２２、デバイスマネージャ４２３、データ管理部４２４を有する。インターフェース部４１１はドキュメントサーバ１０２、キャッシュサーバ１０４、システム管理サーバ１０５との通信を処理する。ジョブマネージャ４２２はインターフェース部４１１で受け付けたリクエストに応じて、ネットワークストレージ１０８に保存された印刷文書データを読み出し、プリンタ１０７に送信する。また、プリンタ１０７の印刷ジョブを監視し、印刷が完了するまで印刷ジョブを追跡する。デバイスマネージャ４２３はプリンタ１０７の状態監視を行っている。データ管理部４２４はジョブ情報５２０をデータベースで管理し、ジョブマネージャ４２２やデバイスマネージャ４２３からの指示で更新する。データベースは図２で示したＨＤＤ２０６に記憶されている。また印刷の際に必要なデバイスモデル情報５３０やプリンタ情報５４０をシステム管理サーバより定期的に取得し、ＲＡＭ２０５上に保存している。なお、印刷指示に基づいて、実行される印刷ジョブは、ＰＤＬ（ページ記述言語）にて定義されており、ジェネリックドライバもしくはスペシフィックドライバにて生成されている。また、ここで実行される印刷ジョブ（ＰＤＬジョブ）は、特に明記しない限り、単にジョブと記載する。また、本実施形態において、記述されるＰＤＬの種類は特に限定しない。
【００２６】
［キャッシュサーバ１０４］
図４（ｄ）は、キャッシュサーバ１０４のソフトウェア構成を示した図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００２７】
キャッシュサーバ１０４は、インターフェース部４３１、キャッシュ管理マネージャ４３２、データ管理部４３３を有する。インターフェース部４３１はＷｅｂサーバ１０１、ドキュメントサーバ１０２、キャッシュサーバ１０４、システム管理サーバ１０５との通信を処理する。キャッシュ管理マネージャ４３２はインターフェース部４３１で受け付けたリクエストに応じて処理を実行する。データ管理部４３３はドキュメント情報５００、ジョブ情報５２０、デバイスモデル情報５３０、プリンタ情報５４０のキャッシュをデータベースで管理する。データ管理部４３３はキャッシュ管理マネージャ４３２からの指示でデータの更新を行う。データベースは図２で示したＨＤＤ２０６に記憶されている。
【００２８】
キャッシュサーバ１０４で保持するドキュメント情報５００、ジョブ情報５２０、デバイスモデル情報５３０、プリンタ情報５４０はキャッシュである。キャッシュサーバ１０４で保持するそれぞれドキュメントサーバ１０２、印刷サーバ１０３、システム管理サーバ１０５で管理するものと同等である。ドキュメントサーバ１０２、印刷サーバ１０３、システム管理サーバ１０５において、それぞれで管理する情報を更新する際に、キャッシュサーバ１０４にも更新を通知する。更新通知に従ってキャッシュサーバ１０４で管理するキャッシュの更新を行う。
【００２９】
［システム管理サーバ１０５］
図４（ｅ）は、システム管理サーバ１０５のソフトウェア構成を示した図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００３０】
システム管理サーバ１０５は、インターフェース部４４１、マスタ管理マネージャ４４２、データ管理部４４３を有する。インターフェース部４４１はＷｅｂサーバ１０１、ドキュメントサーバ１０２、印刷サーバ１０３、キャッシュサーバ１０４との通信を処理する。マスタ管理マネージャ４４２はインターフェース部４４１で受け付けたリクエストに応じて処理を実行する。データ管理部４４３はデバイスモデル情報５３０、プリンタ情報５４０のキャッシュをデータベースで管理し、キャッシュ管理マネージャ４３２からの指示でデータの更新を行う。データベースは図２で示したＨＤＤ２０６に記憶されている。
【００３１】
［クライアント１０６］
クライアント１０６は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）等から成るが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント１０６はユーザインタフェースアプリケーションとしてＷｅｂブラウザを備えており、Ｗｅｂブラウザを介してＷｅｂサーバ１０１にアクセスする事が出来る。
【００３２】
［プリンタ１０７］
プリンタ１０７は、ネットワークに接続が可能な印刷処理を行うプリンタ（例えば、複合機やレーザプリンタ等）である。図１においては、便宜上、１台のプリンタ１０７のみを示しているが、これに限定されるものではなく、システム上に複数の異なるモデルのプリンタを有していてもよい。
【００３３】
［ネットワークストレージ１０８］
ネットワークストレージ１０８は、ＳＡＮ（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｒａｇｅ）など、ネットワークに直接、接続することが可能なストレージである。本実施形態では、例えばＮＡＳを用いる。ネットワークストレージ１０８は、ドキュメント情報５００に紐づく印刷文書データを保持する。
【００３４】
［認証サーバ１０９］
認証サーバ１０９は、ＬＤＡＰなどのプロトコルをサポートし、ディレクトリサービスを提供するサーバであり、本システムにおけるユーザの情報を管理する。認証サーバ１０９は、Ｗｅｂサーバ１０１からのリクエストを受けて、ユーザ認証を行い、認証情報を返す。
【００３５】
＜データ構造＞
続いて、本実施形態にて用いるデータ構造に関して述べる。なお、ここで述べるデータ構造は一例であり、ここに示された情報に限定されるものではない。
【００３６】
［ドキュメント情報５００］
図５（ａ）はドキュメント情報５００であり、ドキュメントサーバ１０２で管理され、キャッシュサーバ１０４によりキャッシュされる。ドキュメント情報５００はドキュメントサーバ１０２がドキュメント登録受付時に保存される。
【００３７】
ドキュメント情報５００はドキュメントＩＤ５０１、ドキュメント名５０２、ユーザ名５０３、データパス５０４、ドライバ名５０５、デバイスタイプ５０６を有する。ドキュメントＩＤ５０１は保存されたドキュメントの識別子であり、ドキュメントサーバ１０２によりドキュメント登録時に発行され登録される。ドキュメント名５０２はユーザによって付与されたドキュメントの名前である。ユーザ名はドキュメントを登録したユーザのアカウント名である。データパス５０４はドキュメントに紐付けられた印刷データが保存されているパスである。
【００３８】
ドライバ名５０５は印刷データを生成したプリンタドライバの名前である。デバイスタイプ５０６はとくにジェネリックドライバが生成した場合に設定される。ここでは、プリンタの機能（用紙サイズ、カラー印刷など）に応じたデバイスタイプとして、Ａ３カラー、Ａ３モノクロ、Ａ４カラー、及びＡ４モノクロといった情報の何れかが設定される。
【００３９】
ドキュメントサーバ１０２がドキュメント登録時にジェネリックドライバで生成された印刷データを解析し、埋め込んである情報に基づいてデバイスタイプ５０６を登録する。デバイスタイプは印刷データの先頭部分に埋め込まれるため全データを解析する必要はないが、全データ（他の設定情報など）を解析することでデバイスタイプを特定してもよい（デバイスタイプ特定）。なお、本実施形態においては、デバイスタイプを４種類に定義して扱っているが、これに限定されるものではなく、ジョブの後処理設定（ステープルなど）や用紙サイズ等の各種印刷設定に応じて更なるデバイスタイプを定義しても良い。
【００４０】
［ジョブ情報５２０］
図５（ｂ）はジョブ情報５２０であり、印刷サーバ１０３で管理され、キャッシュサーバ１０４によりキャッシュされる。ジョブ情報５２０は印刷サーバ１０３が印刷リクエスト受付時に保存される。
【００４１】
ジョブ情報５２０はジョブＩＤ５２１、ドキュメントＩＤ５２２、ユーザ名５２３、ステータス５２４、プリンタ名５２５、ドライバ名５２６有する。ジョブＩＤ５２１はジョブの識別子であり、印刷サーバ１０３により印刷リクエスト受付時に発行され登録される。ドキュメントＩＤ５２２はドキュメント情報５００のものと同じである。ユーザ名５２３は印刷を実行したユーザ名である。ステータス５２４はジョブのステータスである。ステータスとしては印刷順序待ちである「受付待ち」、データをプリンタ１０７へ転送している「転送中」、プリンタ１０７で印刷が行われている「印刷中」といった状態がある。プリンタ名５２５はジョブの印刷を行うプリンタの名である。ドライバ名５２６は印刷データ生成に使われたドライバの名前である。
【００４２】
［デバイスモデル情報５３０］
図５（ｃ）はデバイスモデル情報５３０であり、システム管理サーバ１０５で管理され、キャッシュサーバ１０４によりキャッシュされる。デバイスモデル情報５３０はシステム管理サーバ１０５の起動時に保存される。デバイスモデル情報５３０はデバイスモデルごとに固定値であり、ジョブの処理やドキュメントの生成に伴っての更新は行われない。
【００４３】
デバイスモデル情報５３０はモデル名５３１、ドライバ名５３２、デバイスタイプ５３３を有する。モデル名５３１はプリンタ１０７のモデル名である。モデル名はプリンタ１０７で固定であり変更されることはない。ドライバ名５３２はモデル名５３１のプリンタ１０７で印刷することができるプリンタドライバの名前である。デバイスタイプ５３３はモデル名５３１のプリンタ１０７を印刷可能なジョブの種類で分類したものである。デバイスタイプ５３３にはＡ３カラー、Ａ３モノクロ、Ａ４カラー、Ａ４モノクロの種類がある。例えば、Ａ３カラーとは、Ａ３及びＡ４サイズの用紙サイズ、モノクロ印刷及びカラー印刷に対応する機種のプリンタを示す。なお、デバイスモデルの性能に応じて、デバイスタイプの種類は変更可能である。すなわち、上記４種類のデバイスタイプに追加して定義してもよい。
【００４４】
［プリンタ情報５４０］
図５（ｄ）はプリンタ情報５４０であり、システム管理サーバ１０５で管理され、キャッシュサーバ１０４によりキャッシュされる。また印刷サーバ１０３がシステム管理サーバ１０５より取得し、ＲＡＭ２０５上に保存する。プリンタ情報５４０はユーザによりシステム管理サーバ１０５に登録されるが、登録方法は省略する。
【００４５】
プリンタ情報５４０はプリンタ名５４１、アドレス５４２、ポート番号５４３、転送方法５４４、ステータス５４５、代行条件５４６、代行プリンタ５４７、モデル名５４８、デバイスタイプ５４９、プルプリントフラグ５５０、ドライバ名５５１を有する。プリンタ名５４１はユーザにより付与されたプリンタの名前である。アドレス５４２はプリンタ１０７に接続可能なＩＰアドレスであり、その仕様にはＩＰｖ４やＩＰｖ６などがある。ポート番号５４３はプリンタ１０７に印刷データを送信する際のポート番号である。転送方法５４４はプリンタ１０７に印刷データを送信する際の転送方法である。転送方式は例えば、データをストリームとしてＴＣＰ／ＩＰにより連続送信するＲＡＷ、ＬＰＲ（Ｌｉｎｅ  ＰＲｉｎｔｅｒ  ｄｅａｍｏｎ  ｐｒｏｔｏｃｏｌ）、ＨＴＴＰにより送信する方式などがある。
【００４６】
ステータス５４５はプリンタ１０７の状態を示し、スケジュールアプリケーション６０１により通知されるものを格納する。代行条件５４６は印刷が失敗・中断した際に他のプリンタ１０７で代行印刷を行うかどうか判定するための条件である。代行条件５４６はプリンタのステータス５４５を複数指定することができ、印刷実行中のプリンタのステータス５４５が代行条件５４６と一致した場合に代行印刷が行われる。代行プリンタ５４７は代行印刷を行う代行先のプリンタ名であり優先順位をつけて複数のプリンタを登録することができる。モデル名５４８はプリンタ登録の際にユーザによって指定される。デバイスタイプ５４９はモデル名５４８をもとに、デバイスモデル情報５３０のモデル名５３１とデバイスタイプ５３３を参照し、設定される。プルプリントフラグ５５０はプリンタ１０７上のプルプリントアプリケーション６０２から印刷を行うプリンタを特定するためのフラグであり真／偽の値をとる。プルプリントアプリケーション６０２から印刷するプリンタのプルプリントフラグが真となる。ドライバ名５５１はプリンタに対応するドライバ名である。ドライバ名が設定されていないプリンタ情報も存在する。
【００４７】
＜プリンタ構成＞
図６は、プリンタ１０７の構成を階層的に示す図である。なお各モジュールは図３で示したＨＤＤ３０９に記憶されており、前述したようにＣＰＵ３０６によってＲＡＭ３０８にロードされ実行される。
【００４８】
図６において、画像形成部６１３は、紙のハンドリングや画像転写・定着等の一連の画像形成プロセスを実行して、記録紙等の記録媒体上に画像を形成する。この画像形成部６１３は、例えばインクジェットプリンタや電子写真方式の画像形成ユニットを備えている。
【００４９】
画像読み取り部６１７は、スキャナ等を備え、原稿画像を光学的に読み取ってデジタル画像情報に変換する。また、画像読み取り部６１７は、前記デジタル画像情報を画像形成部６１３に出力して画像を形成したり、又はファックス部６１２やネットワークインタフェース部６１４等に渡して回線を介して伝送したりする。
【００５０】
デバイスコントローラ６１０は、画像形成部６１３と、画像読み取り部６１７とのそれぞれの動作を制御し、例えば画像読み取り部６１７で読み取った原稿情報を画像形成部６１３で複写するよう制御する。また、デバイスコントローラ６１０は、ネットワークインタフェース部６１４、プリント処理部６１５、ファックス部６１２、操作部制御部６１１を有し、これら各部の間での情報のやり取りも制御する。ファックス部６１２は、ファクシミリ画像の送受信、即ち、画像読み取り部６１７で読み取ったデジタル画像情報を送信したり、また逆に、受信したファクシミリ信号を復号し、画像形成部６１３で記録したりする等の処理を実行する。
【００５１】
操作部制御部６１１は、操作部の操作パネルを使用したユーザの操作に応じた信号を発生したり、また操作部（又は表示部）等に各種データやメッセージ等を表示したりするよう、制御を行う。プリント処理部６１５は、例えばネットワークインタフェース部６１４を介して入力された印刷データを処理して画像形成部６１３に出力し、印刷する等の制御を行う。ネットワークインタフェース部６１４は、通信回線を介して他の通信端末との間のデータの送受信を制御する。
【００５２】
仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）６０５は、デバイスコントローラ６１０の上位に位置し、この仮想マシン６０５からデバイスコントローラ６１０を制御できるように構成されている。また、ネットワークインタフェース部６１４は、デバイスコントローラ６１０と、仮想マシン６０５との双方から直接利用でき、それぞれ独立して外部ネットワークにアクセスすることができるよう構成されている。
【００５３】
更に、仮想マシン６０５の上位には、仮想マシン６０５が提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）に対応したプログラミング言語で記述されたアプリケーションが存在している。これらのアプリケーションは、仮想マシン６０５を介して間接的にデバイスコントローラ６１０に働きかけることができ、また画像形成部６１３や画像読み取り部６１７を動作させることができる。
【００５４】
本実施形態としては、アプリケーションとして、スケジュールアプリケーション６０１、プルプリントアプリケーション６０２、認証アプリケーション６０３を備える。また、これらアプリケーションは仮想マシン６０５上からアンインストールしたり、更に新たにアプリケーション６０４としてインストールしたりするといった事が可能なように構成されている。また、上述したアプリケーションは本実施形態としてはプリンタ１０７にインストールされるアプリケーションとして説明したが、ハードウェアとして備えられていても良い。また外部装置としてプリンタ１０７と通信可能に接続されたコンピュータ上のアプリケーションとして備えていても良い。
【００５５】
外部記憶装置制御部６１６は、画像読み取り部６１７で読み取った画像を画像形成部６１３で外部記憶装置に保存可能なデータフォーマットに変換し、外部記憶装置に保存する。また、外部記憶装置制御部６１６は、外部記憶装置に保存したデータを読み出し、画像形成部６１３を介して印刷処理を行ったり、ネットワークインタフェース部６１４を介して外部にネットワーク送信したりする。また、本実施形態においてはプリンタ１０７へのログイン手段としてＩＣカードリーダ６１８が通信可能に接続されており、このＩＣカードリーダを介してユーザのアカウント情報を認証アプリケーション６０３に通知することが可能である。このログイン手段としては他の手段でも勿論問題なく、例えば、ＩＤカードリーダや、操作部制御部６１１が管理するデバイスパネルからの入力といった方法が考えられる。
【００５６】
［スケジュールアプリケーション６０１］
スケジュールアプリケーション６０１は印刷サーバ１０３からの接続やリクエストの受け付け、デバイスコントローラ６１０から仮想マシン６０５を通して通知される印刷ジョブのステータス変化の通知を行う。スケジュールアプリケーション６０１は印刷サーバ１０３から受け付けた印刷ジョブのスケジューリングや管理を行うモジュールであり、スケジュール通りに印刷が順次行われるよう制御する。また、仮想マシン６０５を介してデバイスコントローラ６１０との通信を行いプリンタ１０７の状態変化を取得し、印刷サーバ１０３に通知する。
【００５７】
［プルプリントアプリケーション６０２］
図７はプルプリントアプリケーション６０２の構成を示すブロック図である。プルプリントアプリケーション６０２はプルプリント画面７０１、プルプリントコントローラ７０２、画面起動モジュール７０３有する。画面起動モジュール７０３は、認証アプリケーション６０３からのログイン、ログアウトの通知を受け付け、プルプリントコントローラ７０２に通知する。通知を受けたプルプリントコントローラ７０２は、ログインの場合はプルプリント画面７０１の初期化および生成を行う。またプルプリントコントローラ７０２はログアウトの通知を受けると、生成した各画面の破棄を行う。
【００５８】
［認証アプリケーション６０３］
認証アプリケーション６０３は、プリンタ１０７に通信可能に接続したＩＣカードリーダ６１８からＩＣカードの情報を取得し、自身が管理しているユーザ管理テーブルからユーザのＩＤを取得する。ユーザ管理テーブルは、ＩＣカードの情報とユーザのＩＤの２次元テーブルである。
【００５９】
そして取得したユーザのＩＤをプルプリントアプリケーション６０２に通知する。また、ユーザのログアウトを検知し、同様にプルプリントアプリケーション６０２にログアウトを通知する。ログアウトの検知は、例えばプリンタ１０７が備えているハードキーの押下の検知や、ユーザの無操作状態が一定時間経過したときに自動ログアウトする方法が考えられる。
【００６０】
＜クライアントからの指示に基づく印刷＞
図８は、図１のプリントシステムにおいて、ユーザが、クライアント１０６から入力を行い、ユーザがドキュメントを選択し印刷を行うまでの処理の流れをシーケンス図で示したものである。
【００６１】
図９（ａ）は、Ｗｅｂサーバ１０１が初回アクセス時に生成するログイン画面９００を示す図である。Ｓ８０１においてクライアント１０６上のＷｅｂブラウザでＷｅｂサーバにアクセスすると、ログイン画面９００がレスポンスとして返され（Ｓ８０２）、Ｗｅｂブラウザに表示される。Ｗｅｂブラウザに表示されたログイン画面９００においてユーザがユーザ名入力部９０１とパスワード入力部９０２にユーザ名及びパスワードを入力し、ログインボタン９０３を押下すると、Ｗｅｂサーバ１０１にログインリクエストが送信される（Ｓ８０３）。ログインリクエスト（Ｓ８０３）にはユーザが入力したユーザ名とパスワードが含まれる。ログインリクエストを受けたＷｅｂサーバ１０１により、認証サーバ１０９に認証リクエストが送信され、認証サーバ１０９により認証を行われる。（Ｓ８０４）。認証リクエスト８０４には、ユーザが入力したユーザ名とパスワードが含まれる。
【００６２】
Ｗｅｂサーバ１０１は認証サーバ１０９から認証成功のレスポンス（不図示）を受け取ると、キャッシュサーバ１０４から認証成功したユーザのドキュメント情報５００の一覧を取得しＲＡＭ２０５上に保持する（Ｓ８０５）。ここで取得されるドキュメント情報５００は認証されたユーザ名とドキュメント情報５００に登録されているユーザ名５０３が一致するものの一覧である。Ｗｅｂサーバ１０１はドキュメント情報５００の一覧をもとに図９（ｂ）で示すドキュメント一覧画面を生成しクライアント１０６に送信する（Ｓ８０６）。
【００６３】
次にクライアント１０６上のＷｅｂブラウザに図９（ｂ）で示すドキュメント一覧画面９１０が表示され、画面上でユーザによるドキュメント選択が行われる（Ｓ８０７）。ドキュメント選択チェックボックス９１５によって、１以上のドキュメント選択が同時に行うことができる。ドキュメント一覧画面９１０においてユーザによりドキュメント選択後、印刷ボタン９１１が押下されると、ＷｅｂブラウザからＷｅｂサーバ１０１に選択されたドキュメントの印刷リクエストが行われる（Ｓ８０８）。印刷リクエスト（Ｓ８０８）にはドキュメント選択チェックボックス９１５でチェックされたドキュメントのドキュメントＩＤ５０１一覧が含まれる。
【００６４】
印刷リクエスト（Ｓ８０８）を受け付けたＷｅｂサーバ１０１は印刷リクエストに含まれるドキュメントＩＤ５０１一覧により印刷対象のドキュメント情報５００を特定する。次にＷｅｂサーバ１０１は印刷対象のドキュメント情報５００の一覧に対し印刷可能なプリンタの特定を行う（Ｓ８０９）。ここで図示を省略しているが、プリンタ特定（Ｓ８０９）に使用するデバイスモデル情報５３０、プリンタ情報５４０はキャッシュサーバ１０４より取得し、Ｗｅｂサーバ１０１のＲＡＭ３０８上に保存される。取得のタイミングはプリンタ特定時（Ｓ８０９）でも、定期的に取得・更新を行ってもよい。Ｓ８０９におけるドキュメント情報５００を印刷可能なプリンタの特定方法についての詳細は後述する。
【００６５】
Ｗｅｂサーバ１０１は印刷可能なプリンタ特定（Ｓ８０９）を行うと、特定したプリンタをもとに図９（ｃ）に示すプリンタ選択画面９２０を生成し、クライアント１０６に送信する。そしてプリンタ選択画面９２０はクライアント１０６上のＷｅｂブラウザで表示される。ユーザによりプリンタ選択画面９２０のプリンタ選択チェックボックス９２３が選択され、印刷ボタン９２１が押下されると、ＷｅｂブラウザよりＷｅｂサーバ１０１に印刷リクエストが送信される（Ｓ８１２）。印刷リクエスト（Ｓ８１２）にはプリンタ選択チェックボックス９２３により選択されたプリンタ名５４１が含まれる。
【００６６】
印刷リクエスト（Ｓ８１２）を受け付けたＷｅｂサーバ１０１はドキュメントサーバ１０２に対して印刷実行を指示する（Ｓ８１３）。この印刷リクエスト（Ｓ８１３）にはＳ８０８、Ｓ８１２におけるクライアント１０６からの印刷リクエストに含まれるドキュメントＩＤ５０１一覧とプリンタ名５４１が含まれる。印刷リクエスト（Ｓ８１３）を受け付けたドキュメントサーバ１０２は、印刷サーバ１０３に対して印刷実行を指示する（Ｓ８１４）。この印刷リクエストにはドキュメントＩＤ５０１一覧とプリンタ名５４１が含まれる。印刷リクエスト（Ｓ８１４）に従い印刷サーバ１０３はジョブ情報５２０を生成しプリンタ１０７に印刷指示を行う。
【００６７】
図９（ａ）は、クライアント１０６に表示されるログイン画面９００を示す図である。ユーザは、ユーザ名入力部９０１にユーザ名を入力し、パスワード入力部９０２にパスワードを入力して、ログインボタン９０３を押下することにより、Ｗｅｂサーバ１０１にログインリクエストＳ８０３を送信する。
【００６８】
図９（ｂ）は、クライアント１０６に表示されるドキュメント一覧画面９１０である。ユーザは、ドキュメント選択チェックボックス９１５でドキュメントを選択し、印刷ボタン９１１を押下して印刷を行う。あるいは、印刷中止ボタン９１２を押下して、印刷を中止する。ページ切り替えボタン９１４をクリックすると、表示されるドキュメントが次ページに切り替わる。ログアウトボタン９１３をすることによりログアウトする。
【００６９】
図９（ｃ）は、クライアント１０６に表示されるプリンタ選択画面９２０である。ユーザはプリンタ選択チェックボックス９２３でプリンタを選択し、印刷ボタン９２１を押下して印刷を実行する。あるいは戻るボタン９２２を押下してドキュメント一覧画面９１０に戻る。
【００７０】
＜代行印刷＞
図１０は、印刷サーバ１０３から印刷リクエストされたジョブが印刷に失敗した場合に、代行印刷を行う際の処理の流れをシーケンス図で示したものである。代行印刷とは、印刷に失敗した場合にバックアップのプリンタで印刷を実行する機能である。図１０では、印刷サーバ１０３が印刷エラーを検知し、バックアッププリンタへの印刷リクエストを行うまでの処理を示す。
【００７１】
印刷サーバ１０３はプリンタ１０７への印刷を実行しており、ジョブの印刷エラーを検知することができる。印刷エラーの検知方法については、例えばプリンタ１０７に接続できない場合や、排紙途中に紙詰まりにより印刷エラーしスケジュールアプリケーション６０１より印刷エラーが通知される場合などが考えられる。印刷サーバ１０３が印刷エラーを検知すると、例えば図８の応答として、ドキュメントサーバ１０２に印刷エラーを通知する（Ｓ１００１）。この印刷エラー通知（Ｓ１００１）には印刷エラーしたエラー原因、プリンタ名５４１やドキュメントＩＤ５２２が含まれ、ドキュメントサーバ１０２はジョブ情報５２０とプリンタ情報５４０を特定することができる。
【００７２】
印刷エラー通知（Ｓ１００１）を受けたドキュメントサーバ１０２は代行判定を行う（Ｓ１００２）。代行判定は印刷エラーしたプリンタのプリンタ情報５４０に設定される代行条件５４６によって行われ、代行条件５４６と印刷サーバ１０３より通知されるエラー原因が一致した場合に代行印刷を実行する。代行判定（Ｓ１００２）によりエラー原因が代行条件５４６を満たす場合、ドキュメントサーバ１０２は代行するプリンタの特定を行う（Ｓ１００３）。代行先のプリンタは印刷したプリンタの代行プリンタ５４７より選ばれる。代行プリンタ５４７のうち印刷エラーした印刷ジョブを印刷可能なプリンタを代行先とする。Ｓ１００３において印刷エラーしたジョブが代行プリンタ５４７で印刷可能かどうかの判定の詳細は後述する。ドキュメントサーバ１０２は代行先のプリンタを特定すると（Ｓ１００３）、印刷サーバ１０３に対して、印刷リクエストを行う（Ｓ１００４）。印刷リクエスト（Ｓ１００４）には印刷エラーしたドキュメントＩＤと代行先プリンタのプリンタ名が含まれる。その後、印刷サーバ１０３は、代行先プリンタへ印刷指示を行う。
【００７３】
＜ジョブを印刷可能なプリンタの特定＞
図１１はジョブが印刷可能なプリンタを特定するためのフローチャートである。先述のクライアント１０６からの印刷指示を受信した時と代行印刷時に用いる。クライアント１０６からの印刷指示を受信した時においては、Ｗｅｂサーバ１０１が選択されたジョブを印刷可能なプリンタを特定する（Ｓ８０９）際に用いる。また代行印刷時では、ドキュメントサーバ１０２が代行先プリンタの中から印刷エラーしたジョブを印刷可能なプリンタを特定する際（Ｓ１００３）に用いる。なお、図１１のフローチャートで示す手順はＷｅｂサーバ１０１やドキュメントサーバ１０２のそれぞれにおいてＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００７４】
クライアントからの印刷時のＷｅｂサーバ１０１の処理フローとして説明する。Ｗｅｂサーバ１０１は印刷リクエスト（Ｓ８０８）を受け付けたジョブの一覧にジェネリックドライバで生成されたジョブ（印刷データ）があるか判定する（Ｓ１１０１）。Ｓ１１０１における判定はドキュメントのドライバ名５０５がジェネリックドライバ名と一致するかどうかで判定する。Ｓ１１０１においてジェネリックドライバで生成されたジョブが印刷リクエストされたジョブ一覧にある場合、Ｓ１１０２において全ジョブがジェネリックドライバで生成されたジョブ（印刷データ）かどうかＳ１１０１と同様にドライバ名５０５で判定する。Ｓ１１０２において全ジョブがジェネリックドライバで生成されたジョブ（印刷データ）であると判定された場合、Ｓ１１０３へ移行し、図１２（ａ）に示す「ジョブを印刷可能なプリンタ判定表１２００」に基づいて印刷可能なプリンタを決定する。そして、本処理フローを終了する。なお、本フローにおいて、ドライバ名を判定の基準として用いたが、ドライバを識別できるドライバ情報であれば、これ以外の情報を用いても良い。その場合には、データ中に対応する情報を保持しておく必要がある。
【００７５】
ここで「ジョブを印刷可能なプリンタ判定表１２００」について説明する。プリンタ判定表１２００は、ジョブのデバイスタイプ５０６とプリンタのデバイスタイプ５４９の比較による印刷可否を判定するための対応表である。デバイスタイプがＡ３カラーのジョブは、デバイスタイプがＡ３カラーのプリンタで印刷可能である（１２０１）。デバイスタイプがＡ４カラーのジョブは、デバイスタイプがＡ３カラー、Ａ４カラーのいずれかのプリンタで印刷可能である（１２０２）。デバイスタイプがＡ３モノクロのジョブは、デバイスタイプがＡ３カラー、Ａ３モノクロのいずれかのプリンタで印刷可能である（１２０３）。デバイスタイプがＡ４モノクロのジョブは、デバイスタイプがＡ３カラー、Ａ４カラー、Ａ３モノクロ、Ａ４モノクロのいずれかのプリンタで印刷可能である（１２０４）。Ｓ１１０３において印刷リクエストされた全ジョブのデバイスタイプ５０６とプリントシステムに登録されている全てのプリンタのデバイスタイプ５４９より「ジョブを印刷可能なプリンタ判定表１２００」を用いて印刷可否を判定する。印刷リクエストされた全ジョブを印刷可能なプリンタが特定される。なお、本実施形態においては、４種類のジョブとそれに対応付けられるプリンタとの対応表となっているが、プリンタデバイスの機能等に応じて、デバイスタイプを追加した場合には、それらに合わせて、本判定表についても新たに定義することが可能である。
【００７６】
Ｓ１１０２において印刷リクエストされたジョブがジェネリックドライバで生成されたジョブ（印刷データ）だけではないと判定された場合、Ｓ１１０４へ移行し、スペシフィックドライバの種類が１種類か否かを判定する。この判定はドキュメントのドライバ名５０５を参照して判定する。複数種類のスペシフィックドライバがあった場合には印刷可能なプリンタはないと判定し、エラーを出力する（Ｓ１１１０）。そして、本処理フローを終了する。Ｓ１１０４においてスペシフィックドライバの種類が１種類であると判定された場合、１種類のスペシフィックドライバのドライバ名よりデバイスモデルを特定する。デバイスモデルはデバイスモデル情報５３０によりドライバ名５３２が一致するモデル名５３１である。そして印刷リクエストされたジョブのうちジェネリックドライバで生成されたジョブを特定したモデル名５３１で印刷可能かどうか判定する（Ｓ１１０５）。この判定にはジェネリックドライバで生成された全ジョブのデバイスタイプ５０６とモデル名５３１のデバイスタイプ５３３より、「ジョブを印刷可能なプリンタ判定表１２００」を用いて判定する。ジョブを印刷可能なプリンタ判定表１２００」による判定の詳細は前述のとおりである。
【００７７】
Ｓ１１０５においてジェネリックドライバで生成されたジョブがスペシフィックドライバに紐付けられたデバイスモデルで印刷できないと判定された場合、印刷可能なプリンタはないと判定し、エラーを出力とする（Ｓ１１１０）。そして、本処理フローを終了する。
【００７８】
一方、Ｓ１１０５にて、印刷可能であると判定された場合、Ｓ１１０６へ進み、次なる判定を行う。Ｓ１１０６において、１種類のスペシフィックドライバに紐付けられたデバイスモデルと、モデル名５４８とが一致するプリンタ情報５４０を特定し、そのドライバ名５５１がスペシフィックドライバか否かを判定する。Ｓ１１０６にて、そのドライバ名５５１がスペシフィックドライバであると判定された場合、印刷リクエストされたジョブを生成したスペシフィックドライバと同じかを確認し、そのプリンタをリクエストされたジョブを印刷可能なプリンタの候補として決定する（Ｓ１１０７）。そして、本処理フローを終了する。
【００７９】
Ｓ１１０６にて、スペシフィックドライバでは無いと判定された場合、Ｓ１１０８へ移行する。そして、Ｓ１１０８にてＳ１１０６と同様に特定したプリンタ情報５４０において、ドライバ名でドライバ指定がないものがあるかを判定する。Ｓ１１０８において、ドライバが指定されていないと判定された場合、Ｓ１１０９へ移行する。Ｓ１１０９にて、プリンタ情報のデバイスモデルに紐付けられたドライバ名が、印刷リクエストされたスペシフィックドライバで生成されたジョブのドライバ名と一致する場合に、印刷可能なプリンタの候補として決定する。そして、本処理フローを終了する。Ｓ１１０８においてドライバ指定がされてないものがないと判定された場合は、印刷可能なプリンタはないと判定し、エラーを出力する（Ｓ１１１０）。そして、本処理フローを終了する。
【００８０】
Ｓ１１０１において、印刷リクエストされたジョブにジェネリックドライバで生成されたジョブがないと判定された場合、Ｓ１１１１においてジョブのドライバ名の種類を判定する（Ｓ１１１１）。Ｓ１１１１にて、ジョブのドライバ名が複数種類であると判定された場合には印刷可能なプリンタはないと判定しエラーを出力する（Ｓ１１１０）。
【００８１】
Ｓ１１１１にて、ドライバの種類が１種類であると判定された場合、Ｓ１１１２へ移行する。Ｓ１１１２にて、プリンタ情報５４０の中でそのドライバ名５５１がスペシフィックドライバであるものを判定する。Ｓ１１１２にてスペシフィックドライバが指定されていると判定されたプリンタ情報に関して、そのスペシフィックドライバ名とジョブのドライバ名が等しいプリンタを印刷可能なプリンタ候補として決定する（Ｓ１１１３）。そして、本処理フローを終了する。Ｓ１１１２にて、スペシフィックドライバが指定されるプリンタ情報がないと判定された場合、Ｓ１１１４へ移行する。Ｓ１１１４にてプリンタ情報５４０において、ドライバ名でドライバ指定がないものがあるかを判定する。Ｓ１１１４において、ドライバ指定がないと判定された場合、Ｓ１１１５へ移行する。そして、プリンタ情報のデバイスモデルに紐付けられたドライバ名が、印刷リクエストされたスペシフィックドライバで生成されたジョブのドライバ名と一致する場合に、印刷可能なプリンタの候補として決定する（Ｓ１１１５）。そして、本処理フローを終了する。Ｓ１１１４において、ドライバ指定がされてないものがないと判定された場合は、印刷可能なプリンタはないと判定し、エラーを出力する（Ｓ１１１０）。そして、本処理フローを終了する。
【００８２】
以上により、サーバに保存されるジョブ（印刷データ）に、ジェネリックドライバにより生成されたジョブ（印刷データ）が含まれていても、ジョブのデバイスタイプとドライバ名より、印刷リクエスト時に印刷可能なプリンタを特定することができる。また、ユーザは印刷時に、１つ以上の指定したジョブを印刷するプリンタを、それらジョブの設定から特定した複数のプリンタの中から指定することが可能となる。
【００８３】
＜第二の実施形態＞
第一の実施形態においては、クライアントから印刷指示を行う処理フローについて述べた。続いて、第二の実施形態として、プリンタからの印刷指示を行う場合について説明をする。なお、第一の実施形態と重複している箇所については、説明を省略し、差異についてのみ説明する。
【００８４】
＜プリンタからの印刷＞
ユーザがＩＣカードリーダ６１８よりログインし、プルプリントアプリケーション６０２が画面表示を行うシーケンスを図１３に示す。
【００８５】
Ｓ１３０１においてＩＣカードリーダ６１８からログインを受けた認証アプリケーション６０３は、ユーザアカウント（ユーザ名）を取得し、プルプリントアプリケーション６０２にログインを通知する（Ｓ１３０２）。プルプリントアプリケーション６０２はログインをプルプリントコントローラ７０２で受け付ける。
【００８６】
Ｓ１３０３においてプルプリントアプリケーション６０２はＷｅｂサーバ１０１へログインを行う。この際、ログイン情報として前述の認証アプリケーション６０３から得たユーザアカウント（ユーザＩＤ）を利用する。またプリンタを特定する情報としてプリンタ１０７のＩＰアドレスを通知する。ＩＣカードリーダ６１８の代替として画面でのＩＤ、パスワード入力という方法を用いることも可能である。
【００８７】
プルプリントアプリケーション６０２からログイン通知を受けたＷｅｂサーバ１０１は認証サーバ１０９に対して認証を行う（Ｓ１３０４）。認証サーバ１０９はあらかじめ登録されているユーザ情報を参照し、認証を行う。図示省略しているが、認証に成功した場合は、ユーザ情報およびユーザが所属するドメイングループ情報を認証情報として返却する。また認証に失敗した場合は失敗を返却し、ログイン失敗となる。
【００８８】
認証に成功した場合、Ｗｅｂサーバ１０１は、ログイン時（Ｓ１３０３）に通知されるプリンタ１０７のＩＰアドレスと一致し、プルプリントフラグ５５０が真となっているプリンタを特定する（Ｓ１３０５）。そして、特定したプリンタのプリンタ情報５４０をキャッシュサーバ１０４から取得する（Ｓ１３０６）。ここでＳ１３０５とＳ１３０６は説明のため、図１１にて別フローで図示したが、キャッシュサーバ１０４に保存されているデータベースの検索によりドキュメントを特定し、取得を行うため同時に実施される。
【００８９】
次に特定したプリンタで印刷可能なドキュメントの特定を行い（Ｓ１３０７）、キャッシュサーバ１０４よりドキュメント情報５００の一覧を取得する。ここでＳ１３０７とＳ１３０８は説明のため図１５にて別フローで図示したが、キャッシュサーバ１０４に保存されているデータベースの検索によりドキュメントを特定し、取得を行うため同時に実施される。また印刷可能なジョブの特定方法の詳細については後述する。プルプリントアプリケーション６０２はプリンタ１０７で印刷可能なドキュメント情報５００の一覧が取得できると、プルプリント画面７０１を生成する（Ｓ１３１０）。
【００９０】
図１４はプルプリントアプリケーション６０２が生成しプリンタ１０７のパネルに表示するプルプリント画面７０１の画面例である。ユーザはドキュメント選択チェックボックス１４０２でドキュメントを選択し印刷ボタン１４０５を押下することでパネル操作中のプリンタ１０７で印刷開始することができる。またドキュメント選択が１つの場合に詳細ボタン１４０３を押下することで選択されたドキュメントの詳細を見ることができる。削除ボタン１４０４を押下するとドキュメント選択チェックボックス１４０２で選択されているドキュメントを削除する。また認証アプリケーション６０３より通知されるユーザ名を１４０１に表示する。
【００９１】
＜プリンタにて印刷可能なドキュメントの特定＞
図１５は、ドキュメント取得要求を受けた際に、プリンタで印刷可能なジョブ特定するためのフローチャートである。プリンタからの印刷時にＷｅｂサーバ１０１がプルプリントアプリケーション６０２からログイン要求を受けた際にＳ１３０５で特定されるプリンタで印刷可能なドキュメントを特定する際（Ｓ１３０７）に用いる。なお、図１５のフローチャートで示す手順はＷｅｂサーバ１０１においてＨＤＤ２０６に記憶されており、前述したようにＣＰＵ２０３によってＲＡＭ２０５にロードされ実行される。
【００９２】
まずＳ１５０１においてジョブがジェネリックドライバで生成されたものか否かを、ドキュメント情報５００に設定されているドライバ名５０５により判定する。ジェネリックドライバで生成されたジョブであると判定された場合、Ｓ１５０２へ移行する。Ｓ１５０２にて、印刷リクエストを行ったプリンタのプリンタ情報５４０のデバイスタイプ５４９とドキュメントのデバイスタイプ５０６とに基づき、図１２（ｂ）の「プリンタで印刷可能なジョブ判定表１２１０」を用いて印刷可否を決定する（Ｓ１５０２）。そして、本処理フローを終了する。
【００９３】
ここで、「プリンタで印刷可能なジョブ判定表１２１０」について説明する。ジョブ判定表１２１０において、デバイスタイプがＡ３カラーに対応するプリンタで印刷可能なジョブは、デバイスタイプがＡ３カラー、Ａ４カラー、Ａ３モノクロ、Ａ４モノクロのいずれかのジョブである（１２１１）。デバイスタイプがＡ４カラーに対応するプリンタで印刷可能なジョブは、デバイスタイプがＡ４カラー、Ａ４モノクロのいずれかのジョブである（１２１２）。デバイスタイプがＡ３モノクロに対応するプリンタで印刷可能なジョブは、デバイスタイプがＡ３モノクロ、Ａ４モノクロのいずれかのジョブである（１２１３）。デバイスタイプがＡ４モノクロに対応するプリンタで印刷可能なジョブは、デバイスタイプがＡ４モノクロのジョブである（１２１４）。
【００９４】
Ｓ１５０１において、ジェネリックドライバにて生成されたジョブで無いと判定された場合、Ｓ１５０３へ移行する。Ｓ１５０３にて、プリンタ情報５４０のドライバ名５５１としてスペシフィックドライバが設定されているか否かを判定する。Ｓ１５０３にて、スペシフィックドライバが設定されていると判定された場合、そのスペシフィックドライバのドライバ名と一致するドライバ名５０５であるジョブを印刷可能とする（Ｓ１５０４）。そして、本処理フローを終了する。
【００９５】
Ｓ１５０３にて、スペシフィックドライバが設定されていないと判定された場合、Ｓ１５０５へ移行する。Ｓ１５０５において、プリンタ情報のドライバ名５５１でドライバ指定されているか否かを判定する。ドライバ指定されていないと判定された場合、プリンタ情報のモデル名５４８より特定できるドライバ名５３２と、一致するドライバ名５０５であるジョブを印刷可能とする（Ｓ１５０６）。そして、本処理フローを終了する。Ｓ１５０５において、プリンタのドライバ名５５１の設定内容がその他の情報である場合は、ジョブを印刷不可として決定する（Ｓ１５０７）。そして、本処理フローを終了する。
【００９６】
以上により、プリントサーバに保存されたジョブのデバイスタイプとドライバ名より、保存されたジョブを印刷可能なプリンタが特定され、それにより印刷要求したプリンタで印刷可能なジョブを特定することができる。
【００９７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005595035.tif 000002
【図２】
0005595035.tif 000003
【図３】
0005595035.tif 000004
【図４】
0005595035.tif 000005
【図５】
0005595035.tif 000006
【図６】
0005595035.tif 000007
【図７】
0005595035.tif 000008
【図８】
0005595035.tif 000009
【図９】
0005595035.tif 000010
【図１０】
0005595035.tif 000011
【図１１】
0005595035.tif 000012
【図１２】
0005595035.tif 000013
【図１３】
0005595035.tif 000014
【図１４】
0005595035.tif 000015
【図１５】
0005595035.tif 000016