(57)【要約】      （修正有）【課題】標準ポートモニタしか動作しないシステムにおいて、プリンタドライバに手を加えることなく、拡張機能を用いてクライアント端末とプリントサーバ間の通信を行う情報処理装置を提供する。【解決手段】クライアント端末１０１〜１０３に、標準ポートモニタ３０４からの要求をプリントサーバ１０４への要求に変換して中継するプリントプロキシ３０５を設ける。標準ポートモニタしか動作しないシステムにおいては、クライアント端末とプリントサーバ間を拡張機能を用いて通信することができる。【選択図】図３
2016130970.tif 000002
【特許請求の範囲】
【請求項１】
プリンタを管理するプリントサーバと通信する情報処理装置であって、
前記プリントサーバに対応する仮想プリンタの情報で管理されるプリンタオブジェクトを用いた印刷が行われる場合に、当該プリンタオブジェクトに対応するプリンタドライバで生成された印刷データを、スプーラを介して受信する受信手段と、
受信した前記印刷データから、ドキュメント情報を含むジョブ情報を特定する特定手段と、
前記プリントサーバに対して、前記印刷データと前記特定されたジョブ情報との送信を制御する制御手段と、を有し、
前記制御手段は、前記印刷データの圧縮送信と、前記情報処理装置と前記プリントサーバとの間のネットワークの帯域制限の制御と、印刷のリトライ処理との少なくともいずれかを行うことを特徴とする情報処理装置。
【請求項２】
前記プリンタドライバから前記スプーラを介して行われる印刷要求はＩｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＩＰＰ）に準拠することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
宛先の仮想プリンタが保存専用の場合には、前記保存専用の仮想プリンタに関連付けられたプリンタドライバ名を含むプリンタ情報を前記スプーラから取得する取得手段を更に有し、
前記制御手段は、前記印刷データと前記プリンタドライバ名の送信を制御することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記プリントサーバとの間のプロトコルに準拠したメッセージとＩＰＰに準拠したメッセージとの間でメッセージを変換するメッセージ変換手段を更に有することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記受信手段は、前記印刷データを、前記情報処理装置を管理するオペレーティングシステムに搭載された標準ポートモニタを更に介して受信することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記印刷データの圧縮送信と、前記情報処理装置と前記プリントサーバとの間のネットワークの帯域制限の制御と、印刷のリトライ処理とのうち少なくともいずれかを、予め設定された転送設定情報に基づいて行うことを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
プリンタ情報取得要求を前記スプーラから受信した場合には、前記プリントサーバに対して、登録された仮想プリンタ情報のうちから該当する仮想プリンタ情報を要求し、要求に応じて取得した仮想プリンタ情報を前記スプーラに送信することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
プリンタを管理するプリントサーバと通信する情報処理装置の制御方法であって、
前記プリントサーバに対応する仮想プリンタの情報で管理されるプリンタオブジェクトを用いた印刷が行われる場合に、当該プリンタオブジェクトに対応するプリンタドライバで生成された印刷データを、スプーラを介して受信する受信工程と、
受信した前記印刷データから、ドキュメント情報を含むジョブ情報を特定する特定工程と、
前記プリントサーバに対して、前記印刷データと前記特定されたジョブ情報との送信を制御する制御工程と、を有し、
前記制御工程では、前記印刷データの圧縮送信と、前記情報処理装置と前記プリントサーバとの間のネットワークの帯域制限の制御と、印刷のリトライ処理との少なくともいずれかを行うことを特徴とする制御方法。
【請求項９】
プリンタを管理するプリントサーバと通信する情報処理装置により実行されるプログラムであって、
前記プリントサーバに対応する仮想プリンタの情報で管理されるプリンタオブジェクトを用いた印刷が行われる場合に、当該プリンタオブジェクトに対応するプリンタドライバで生成された印刷データを、スプーラを介して受信する受信手段と、
受信した前記印刷データから、ドキュメント情報を含むジョブ情報を特定する特定手段と、
前記プリントサーバに対して、前記印刷データと前記特定されたジョブ情報との送信を制御する制御手段と、してコンピュータを機能させ、
前記制御手段は、前記印刷データの圧縮送信と、前記情報処理装置と前記プリントサーバとの間のネットワークの帯域制限の制御と、印刷のリトライ処理との少なくともいずれかを行うためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその制御方法、およびプログラムに関する。
【背景技術】
【０００２】
一般的に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が動作するシステムにおいて、印刷処理を実行する際、ユーザは、当該ＯＳにあらかじめ組み込まれている標準ポートモニタを指定して印刷指示を行う。そして前記標準ポートモニタによって、プリンタドライバが生成する印刷データが印刷装置に送信される。プリントサーバを含む大規模なプリントシステムにおいても、ユーザは、標準ポートモニタを指定してプリントサーバ上に管理される仮想プリンタに対して印刷指示を行うことでプリントサーバへ印刷ジョブの入稿ができる。しかし、標準ポートモニタには印刷データを送信する単純な機能しかなく、送信時の通信制御等の機能がないため、送信中の一時的な通信断等でエラーとなってしまう。そのため、プリントサーバでは通信制御やリトライ処理等を実装したカスタムポートモニタを用意し、ユーザが印刷指示をする際に、カスタムポートモニタを指定することで、より安定した入稿処理をおこなう方法が知られている。
【０００３】
しかし、新たにＯＳが提供するシステム環境では、当該ＯＳの標準ポートモニタしか動作しない環境が考えられる。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ８（登録商標）の環境では、新しいプリンタドライバのアーキテクチャが導入されており、前記カスタムポートモニタをＷｉｎｄｏｗｓ（登録商標）システムに登録できない仕組みとなっている。このようなシステムでは、これまでカスタムポートモニタで実現していた、通信制御やリトライ処理といった拡張機能が実現できない。
【０００４】
このように標準的な機能しか提供されないシステムにおいて、印刷データの送信や印刷ジョブの制御などの拡張機能を実現するための技術として、例えば、先行技術文献１記載の技術がある。特許文献１では、クライアント端末が印刷デバイス（たとえばプリンタ）の情報を取得し、その情報を基に、プリンタドライバが印刷デバイスに対応したプリンタアダプタをインストールし、起動することで、双方向通信を用いた拡張プリンタドライバの機能を実現する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２４３０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術は、プリンタドライバ毎の対応が必要となる。特に、過去の機種を含む多種の印刷デバイスを使い分けるプリントシステムでは、使用する全プリンタドライバに対応を行うのは困難であり、その開発や、アップデート作業には、多大なコストを要してしまう。
【０００７】
本発明は上記従来例に鑑みて成されたもので、標準ポートモニタしか動作しないシステムにおいて、プリンタドライバに手を加えることなく、拡張機能を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を有する。すなわち、プリンタを管理するプリントサーバと通信する情報処理装置であって、
前記プリントサーバに対応する仮想プリンタの情報で管理されるプリンタオブジェクトを用いた印刷が行われる場合に、当該プリンタオブジェクトに対応するプリンタドライバで生成された印刷データを、スプーラを介して受信する受信手段と、
受信した前記印刷データから、ドキュメント情報を含むジョブ情報を特定する特定手段と、
前記プリントサーバに対して、前記印刷データと前記特定されたジョブ情報との送信を制御する制御手段と、を有し、
前記制御手段は、前記印刷データの圧縮送信と、前記情報処理装置と前記プリントサーバとの間のネットワークの帯域制限の制御と、印刷のリトライ処理との少なくともいずれかを行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、標準ポートモニタしか動作しないシステムにおいて、プリンタドライバに手を加えることなく、拡張機能を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】ネットワーク構成を示すブロック図
【図２】クライアント端末、プリントサーバのハードウェア構成図
【図３】クライアント端末、プリントサーバのモジュール構成図
【図４】プリントプロキシ、印刷管理モジュールのソフトウェア構成図
【図５】プリントシステムで管理される各種情報の構成例
【図６】プリンタ作成と、入稿処理のフローを示すシーケンス図
【図７】実施例２における、各種情報の構成例
【図８】実施例２における、入稿処理のフローを示すシーケンス図
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
［実施例１］
＜システム構成＞
図１は、本発明の実施の形態に係るプリントシステムの全体構成を示す図である。図１においてクライアント端末１０１〜１０３、プリントサーバ１０４、印刷デバイス１０５〜１０８は、ネットワーク１０９〜１１１を介して接続されている。クライアント端末１０１〜１０３、プリントサーバ１０４はいずれもコンピュータなどの情報処理装置で実現される。図１において、クライアント端末１０１〜１０３、印刷デバイス１０５〜１０８は、それぞれ複数台接続されているが、いずれか又は両方が１台であってもよい。ネットワーク１０９〜１１１は、データの送受信が可能な、いわゆる通信ネットワークで、例えば、インターネット等のＬＡＮ、ＷＡＮ等や、その他のあらゆるネットワークの組み合わせにより実現されるものでよい。また、クライアント端末１０１〜１０３とプリントサーバ１０４間、印刷デバイス１０５〜１０８間の通信手段、プリントサーバ１０４と印刷デバイス１０５〜１０８間の通信手段は夫々異なっていてもよい。クライアント端末１０１〜１０３は、例えばデスクトップパソコン、ノートパソコン、スマートフォンやタブレットＰＣ等から成る。クライアント端末１０１〜１０３では、対象の文書（ドキュメント情報）を参照して印刷実行可能な、ビューワやエディタ機能を備えたアプリケーション等を実行する環境が内蔵されている。
【００１２】
＜ハードウェア構成＞
図２は、本発明の実施形態に係るプリントシステムのクライアント端末１０１〜１０３、プリントサーバ１０４のハードウェア構成図である。図２において、ＣＰＵ２０２は、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ（オペレーティングシステム）等を実行して装置全体の制御を行い、たとえばＲＡＭ２０３にプログラムの実行に必要な情報やファイルを一時的に格納する制御を行う。ＲＯＭ２０４には、基本Ｉ／Ｏプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンタ情報等の各種データを記憶する。ＲＡＭ２０３は一時記憶であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ハードディスク（ＨＤＤ）２０５は外部記憶の一つであり、大容量メモリとして機能する。ハードディスク（ＨＤＤ）２０５は文書エディタ等のアプリケーションプログラム、プリントサーバプログラム、ＯＳ、各種ドライバ、関連プログラム等を格納している。ディスプレイ２０６は、キーボード２０７から入力したコマンドや、アプリケーションの出力画面、プリンタのステータス等を表示したりするものである。外部装置Ｉ／Ｆ２０８は、印刷デバイス、ＵＳＢ機器、周辺機器を接続するためのＩ／Ｆである。キーボード２０７は不図示のポインティングデバイスとともに指示等の入力手段である。システムバス２０１は、クライアント端末、プリントサーバ内におけるデータの流れを司るものである。ネットワークインタフェースカード（ＮＩＣ）２０９は、インタフェース２０９およびネットワーク１０９〜１１１を介して外部装置とのデータのやり取りを行う。なお、図２に示すコンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤＤなどで変更することも可能である。
【００１３】
＜システム構成＞
図３は本発明の実施形態に係るプリントシステムのシステム構成図である。クライアント端末１０１〜１０３には、ＧＤＩアプリケーション３０１、スプーラ３０２、プリンタドライバ３０３、標準ポートモニタ３０４、プリントプロキシ３０５の各機能モジュールが備えられている。
【００１４】
ＧＤＩアプリケーション３０１は、印刷対象の文書ファイルのグラフィカルな描画を、ディスプレイやスプーラ３０２等に出力可能なアプリケーションである。本実施例では、ＯＳのＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）による印刷機能を備えたエディタアプリケーションや文書処理アプリケーション等を想定するが、これに限らず、スプーラ３０２に描画データを出力可能なその他のアプリケーションでもよい。ＧＤＩアプリケーション３０１は、ユーザの印刷指示に従って、予めＯＳに登録されたプリンタオブジェクトに印刷指示を行う。ここで、プリンタオブジェクトは、スプーラ３０２で管理され、後述のプリンタ情報５１０を含む。
【００１５】
スプーラ３０２は、プリンタオブジェクトに係る情報であるプリンタ情報５１０の管理と、印刷データのスプールとを行う。スプーラ３０２は、ＧＤＩアプリケーション３０１からの印刷指示に応じて、プリンタオブジェクトに関連付けられたプリンタドライバ３０３に印刷データの生成指示を行う。また、スプーラ３０２は、プリントプロキシ３０５を通してプリントサーバ１０４上の仮想プリンタ情報５３０の取得や、プリンタドライバ３０３から受け取った印刷データのスプールを行う。さらに、スプーラ３０２は、スプールした印刷データを、標準ポートモニタ３０４が制御する所定の印刷ポートに転送する。
【００１６】
プリンタドライバ３０３は、スプーラ３０２からの要求に応じて、印刷デバイス１０５〜１０８で解釈可能なＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等の印刷データを生成し、生成した印刷データをスプーラ３０２に送る。ここでプリンタドライバ３０３が生成する印刷データには、文書名、印刷設定等の情報を含めることができ、生成したプリンタドライバ３０３に対応した印刷デバイス１０５〜１０８でのみ解釈が可能なデータである。プリンタドライバ３０３は、出力先の印刷デバイス１０５〜１０８の種類に応じて複数種存在し、クライアント端末１０１〜１０３には、利用する印刷デバイス１０５〜１０８の種類に合わせてひとつ以上のプリンタドライバ３０３がインストールされている。
【００１７】
標準ポートモニタ３０４は、ＯＳに標準で搭載されるポートモニタである。標準ポートモニタ３０４は、スプーラ３０２からの出力である印刷ポートを制御し、ＴＣＰ／ＩＰ等の印刷ポートの種類に従い、プリントプロキシ３０５に対し、印刷データの出力処理や、仮想プリンタ情報５３０の取得要求を行う。また、標準ポートモニタ３０４は、一般的なプリントプロトコルに対応しており、本実施例では、ＴＣＰ／ＩＰポートを用いた、ＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）に準拠してプリントプロキシ３０５との通信を行うものとする。標準ポートモニタ３０４とプリントプロキシ３０５間の通信プロトコルについては、ＩＰＰに限らず、後述する処理フローが実現できるプロトコルであればよい。
【００１８】
プリントプロキシ３０５は、標準ポートモニタ３０４を通したスプーラ３０２からの要求に従って、プリントサーバ１０４上の印刷管理モジュール３０６と通信を行い、クライアント端末１０１〜１０３とプリントサーバ１０４との間の印刷データや仮想プリンタ情報５３０の受け渡しを行う。さらに、プリントプロキシ３０５は、後述の転送設定情報５２０に従い、通信の帯域制限制御や、印刷データの圧縮送信、リトライ制御等の少なくともいずれかを含む、プリントサーバ１０４が対応する拡張機能処理を行う。
【００１９】
プリントサーバ１０４には、印刷管理モジュール３０６が含まれている。印刷管理モジュール３０６は、後述の仮想プリンタ情報５３０や印刷ジョブ情報５４０（単にジョブ情報とも呼ぶ）を管理し、クライアント端末１０１〜１０３のプリントプロキシ３０５の要求に応じて、応答を返す。また、印刷管理モジュール３０６は、仮想プリンタ情報５３０に保持している仮想プリンタに関連付けられた、ひとつ以上の印刷デバイス１０５〜１０８と接続している。印刷管理モジュール３０６は、仮想プリンタへの印刷要求等に従い、関連づけられた印刷デバイス１０５〜１０８への印刷データ送信や、印刷デバイス１０５〜１０８のステータス監視等を行う機能を持つ。
【００２０】
＜ソフトウェア構成＞
ここから、本実施例の特徴であるプリントプロキシ３０５と、印刷管理モジュール３０６それぞれのソフトウェア構成を説明する。図４は本発明の実施形態に係るプリントシステムのソフトウェア構成図である。なお、標準ポートモニタ３０４とプリントプロキシ３０５はクライアント端末１０１〜１０３に、印刷管理モジュール３０６はプリントサーバ１０４にそれぞれ位置するソフトウェアである。
【００２１】
プリントプロキシ３０５のデータ送受信部４０１は、プリントプロキシ３０５の外部との通信を司る。データ送受信部４０１は、ＯＳの標準ポートモニタ３０４からＩＰＰでの要求メッセージを受けると、メッセージ変換部４０２に要求内容を渡し、その戻りとしてプリントサーバ１０４への要求メッセージを受け取り、プリントサーバ１０４へ転送する。また、データ送受信部４０１は、プリントサーバ１０４から要求の応答メッセージを受け取ると、メッセージ変換部４０２に渡し、その戻りとしてＩＰＰに従った応答メッセージを受け取り、標準ポートモニタ３０４に応答メッセージを転送する。さらにデータ送受信部４０１は、プリントサーバ１０４との通信において、後述の転送設定情報５２０内のネットワークに関する設定に従って、印刷データの圧縮や、ネットワーク帯域の制御、リトライ処理等を行う。データ送受信部４０１が、これらのＩＰＰプロトコルを用いた標準ポートモニタ３０４だけでは実現できない処理を行うことにより、クライアント端末１０１〜１０３とプリントサーバ１０４との間で、標準機能には含まれない拡張機能を提供してより安定した通信を実現できる。
【００２２】
メッセージ変換部４０２は、プリントプロキシ３０５と標準ポートモニタ３０４と間のＩＰＰメッセージと、プリントプロキシ３０５とプリントサーバ１０４との間のプロトコルメッセージの相互変換を行う。本実施例で、プリントプロキシ３０５とプリントサーバ１０４間の通信は、プリントプロキシ３０５がプリントサーバ１０４のＷｅｂサービスを呼び出すためのＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）によるメッセージである。当該メッセージは、プリントプロキシ３０５とプリントサーバ１０４双方で解釈可能で、後述の各フローを実施できる任意のメッセージでよい。また、メッセージ変換部４０２は、データ送受信部４０１から印刷要求メッセージを受け取った場合、印刷データをＰＤＬデータ解析部４０３に渡し、ＰＤＬデータ解析部４０３により注出された、印刷データに含まれる文書名や印刷設定等の情報を受け取る。ＰＤＬデータ解析部４０３は、この情報をプリントサーバ１０４へ送る要求に含める。
【００２３】
ＰＤＬデータ解析部４０３は、メッセージ変換部４０２から印刷データを受けると、印刷データの解析を行う。ＰＤＬデータ解析部４０３は、印刷データに前述のジョブに関する情報が含まれる場合、それを抽出し、メッセージ変換部４０２に返す。
【００２４】
印刷管理モジュール３０６に位置するデータ送受信部４０４は、印刷管理モジュール３０６の外部との通信を司る。データ送受信部４０４は、プリントプロキシ３０５からの要求を受付け、その内容に従って、印刷ジョブ管理部４０６、仮想プリンタ管理部４０５に処理を依頼する。仮想プリンタ情報取得要求を受けた場合、データ送受信部４０４は、要求に含まれる仮想プリンタ名を指定して仮想プリンタ管理部４０５に問い合わせ、該当の仮想プリンタ情報５３０を取得する。印刷ジョブ入稿要求を受けた場合には、データ送受信部４０４は、要求に含まれる印刷ジョブ情報５４０と印刷データとを印刷ジョブ管理部４０６に渡し、印刷ジョブ情報５４０の登録を依頼する。また、データ送受信部４０４は、プリントサーバ１０４とネットワークで接続されている印刷デバイス１０５〜１０８との通信を行う。データ送受信部４０４は、印刷中の印刷ジョブのステータスや印刷デバイス１０５〜１０８の情報、例えば状態情報を監視し、仮想プリンタ管理部４０５、印刷ジョブ管理部４０６に通知する機能を持つ。
【００２５】
仮想プリンタ管理部４０５は、後述の仮想プリンタ情報５３０を管理する。仮想プリンタ情報５３０の問い合わせを受けた場合、事前に登録されている仮想プリンタ情報５３０から、該当の仮想プリンタ情報５３０を検索して返す。また、印刷デバイス１０５〜１０８の情報を受けた場合には、その内容で該当の仮想プリンタ情報５３０を更新する。
【００２６】
印刷ジョブ管理部４０６は、後述の印刷ジョブ情報５４０を管理する。印刷ジョブ入稿要求を受け付けた場合、要求に含まれる内容で印刷ジョブ情報５４０を登録するとともに、印刷ジョブ情報５４０に関連付けられる印刷データを保持する。また、印刷中の印刷ジョブ情報５４０を受け付けた場合には、その内容で、印刷ジョブ情報５４０を更新する。
【００２７】
＜管理情報＞
図５は、本発明の実施形態に係るプリントシステムで管理される各種情報の構成例である。プリンタ情報５１０は、クライアント端末１０１〜１０３上のスプーラ３０２で管理され、ＯＳに登録されているプリンタオブジェクトの情報である。プリンタ名５１１は、ＧＤＩアプリケーション３０１等で参照されるプリンタ名であり、ＯＳ上でプリンタオブジェクトを一意に決定する識別子である。プリンタドライバ名５１２は、プリンタオブジェクトに対し印刷指示が行われた際に使用するプリンタドライバ３０３を表し、クライアント端末１０１〜１０３にインストールされているプリンタドライバ３０３のいずれかを指す。印刷ポートＵＲＩ５１３は、該当のＯＳプリンタで印刷指示が行われた際の印刷データの出力先を表す。本実施例では、印刷ポートＵＲＩ５１３は、プリントプロキシ３０５を指す宛先と、ポート、プリントサーバ１０４上の仮想プリンタを識別する仮想プリンタ名を含む。プリンタプロキシ３０５の宛先はＩＰアドレスのループバックアドレスであり、本例では１２７．０．０．１である。またポートは、プリントプロキシ３０５のために割り当てられたポートであり、図５では例として８０００が指定されている。このＩＰアドレスとポートの指定により、標準ポートモニタ３０４からの出力はプリントプロキシ３０５に引き渡される。また図５では仮想プリンタ名としてはｍｙｐｒｉｎｔｅｒが指定されているがこれは一例であり、プリンタに応じた仮想プリンタ名が指定される。プリンタ情報５１０は、図６に示す手順で登録される。
【００２８】
転送設定情報５２０は、クライアント端末１０１〜１０３上のプリントプロキシ３０５が保持する、プリントサーバ１０４との間の通信に関する転送設定値である。プリントサーバＵＲＬ５２１はプリントサーバ１０４の受付エンドポイントを表し、プリントプロキシ３０５が各要求を送信する際の宛先を表す。圧縮送信設定５２２、帯域制限設定５２３、リトライ設定５２４は夫々、プリントプロキシ３０５がプリントサーバ１０４と通信する際の制御を行うための設定値である。転送設定情報５２０は、プリントプロキシ３０５とプリントサーバ１０４との間のプロトコルに応じて決めることができるので、プリントプロキシ３０５とともにクライアント端末にインストールすることができる。
【００２９】
仮想プリンタ情報５３０は、プリントサーバ１０４上の印刷管理モジュール３０６で管理され、プリントサーバ１０４に登録されている仮想プリンタの情報である。仮想プリンタ名５３１は、プリントサーバ１０４上の仮想プリンタの名前であり該当の仮想プリンタ情報５３０を一意に決定する識別子である。印刷デバイスＩＰ５３２は、該当の仮想プリンタと関連付けられる印刷デバイス１０５〜１０８のＩＰアドレスを指す。また、プリンタドライバ名５３３は、関連付けられる印刷デバイス１０５〜１０８に対応したプリンタドライバ３０３の名前であり、該当の仮想プリンタが、このプリンタドライバ名５３３を持つプリンタドライバ３０３で生成された印刷データを印刷可能であることを表す。プリントシステムで利用可能になったプリンタについての仮想プリンタ情報５３０は、プリントサーバ１０４に登録され、クライアント端末１０１−１０３からアクセスできる。仮想プリンタ情報５３０の登録は、従来のプリントサーバと同様の方法で行えばよく、たとえばネットワーク上の新たな印刷デバイスを検知して、その印刷デバイスからプリントサーバ１０４が収集して行ってもよいし、管理者によりマニュアル入力して行ってもよい。
【００３０】
印刷ジョブ情報５４０は、プリントサーバ１０４上の印刷管理モジュール３０６で管理され、プリントサーバ１０４に入稿されている印刷ジョブの情報である。印刷ジョブＩＤ５４１は、プリントサーバ１０４上の印刷ジョブを一意に決定する識別子である。文書名５４２は、入稿時に指定される印刷ジョブの元となった文書ファイルのファイル名であり、本実施例では、クライアント端末１０１〜１０３のＧＤＩアプリケーション３０１が印刷を行ったファイルの名前が入る。出力先仮想プリンタ名５４３は、該当の印刷ジョブに関連付けられる仮想プリンタ情報５３０を指す識別子である。ＰＤＬデータ保存先５４４は、当該印刷ジョブに係る印刷データ(本例ではＰＤＬデータ)の保存先を示す。印刷設定５４５は、当該印刷ジョブの印刷設定情報あるいは印刷設定情報の保存先である。印刷ジョブ情報は、図６に示す手順でプリントサーバ１０４に登録される。
【００３１】
＜処理フロー＞
図６は、本発明の実施形態に係るプリントシステムにおける、クライアント端末１０１〜１０３上でプリンタオブジェクトの作成フローと、プリントサーバ１０４への印刷ジョブ入稿フローを示すシーケンス図である。
【００３２】
＜プリンタオブジェクト作成シーケンス６００＞
シーケンス６００は、クライアント端末１０１〜１０３上でプリンタオブジェクトの作成フローを示すシーケンスである。Ｓ６００１において、スプーラ３０２は、ユーザの操作により、プリンタ名５１１と、プリンタドライバ名５１２、印刷ポートＵＲＩ５１３の指定を含めたプリンタオブジェクト作成指示を受ける。スプーラ３０２は、プリンタオブジェクト作成指示を受けると、Ｓ６００２で、標準ポートモニタ３０４を通して、Ｓ６００１で指定された印刷ポートＵＲＩ５１３にＩＰＰによるプリンタ情報取得要求を送る。ここで、指定された印刷ポートＵＲＩ５１３は、前述した通り、プリントプロキシ３０５の宛先、ポートと、仮想プリンタ名を含むＵＲＩである。なおプリンタオブジェクトとは、プリンタ名５１１や、プリンタドライバ名５１２、印刷ポートＵＲＩ５１３などと関連付けられたソフトウェア上の仮想的なプリンタであり、プリンタに関する操作をプログラムで行う場合には、プリンタオブジェクトを対象としてメッセージの入出力を行うことで、所望の操作を実現する。プリンタオブジェクトは、たとえば印刷管理モジュール３０６により実際のプリンタと関連付けられ、プリンタオブジェクトに入力されたメッセージに応じた操作が実際のプリンタで行われる。本例では、プリンタ情報５１０に含まれたひとつのプリンタに関するプリンタ情報のことをプリンタオブジェクトと呼ぶこともある。すなわち、プリンタ情報５１０にはひとつ又は複数のプリンタオブジェクトが含まれている。
【００３３】
プリントプロキシ３０５は、データ送受信部４０１でプリンタ情報取得要求（Ｓ６００２）を受け付ける。次に、Ｓ６００３では、メッセージ変換部４０２において、受け取ったプリンタ情報取得要求に宛先として含まれる印刷ポートＵＲＩ５１３から、仮想プリンタ名を抽出し、プリントサービス１０４への仮想プリンタ情報取得要求に変換する。この要求は、抽出された仮想プリンタ名を持つ仮想プリンタの仮想プリンタ情報を取得する要求である。メッセージの変換（Ｓ６００３）後、プリントプロキシ３０５は、データ送受信部４０１において、転送設定情報５２０を参照し、プリントサーバＵＲＬ５２１に対して、変換した仮想プリンタ情報取得要求の送信処理を行う。このとき、プリントプロキシ３０５は、データ送受信部４０１において、圧縮送信設定５２２、帯域制限設定５２３、リトライ設定５２４に従って、プリントサーバ１０４と通信を行う。たとえば、圧縮送信設定５２２に従って送信するデータを圧縮し、帯域制限設定５２３に従った帯域でデータを送信する。また、エラー等があればリトライ設定５２４に従ってリトライを試みる。
【００３４】
印刷管理モジュール３０６は、データ送受信部４０４で仮想プリンタ情報取得要求（Ｓ６００４）を受けると、仮想プリンタ管理部４０５に情報取得を指示する。Ｓ６００５において、印刷管理モジュール３０６は、仮想プリンタ管理部４０５で、要求に含まれる仮想プリンタ名５３１を用いて、仮想プリンタ情報５３０から該当の仮想プリンタ情報５３０を検索する。Ｓ６００６において、印刷管理モジュール３０６は、データ送受信部で、Ｓ６００５の検索で取得した仮想プリンタの情報をプリントプロキシ３０５に返す。
【００３５】
プリントプロキシ３０５は、データ送受信部４０１で仮想プリンタ情報取得要求の応答（Ｓ６００６）を受けると、Ｓ６００７において、メッセージ変換部４０２で、ＩＰＰに従った応答にメッセージ変換する。メッセージ変換（Ｓ６００７）後、Ｓ６００８において、プリントプロキシ３０５は、データ送受信部４０１を通して標準ポートモニタ３０４からのプリンタ情報取得要求（Ｓ６００２）の応答として送信する。
スプーラ３０２は、標準ポートモニタ３０４を通してプリンタ情報取得要求の応答（Ｓ６００８）を受け取ると、Ｓ６００９において、ユーザからのプリンタオブジェクト作成指示（Ｓ６００１）に含まれる内容でプリンタ情報５１０を登録する。登録されたプリンタ情報５１０が、作成されたプリンタオブジェクトに係るプリンタ情報である。すなわちプリンタ情報５１０への新たなプリンタ情報登録により、新たなプリンタオブジェクトが登録されたこととなる。プリンタ情報５１０には、ユーザに指定されたプリンタ名５１１や、プリンタドライバ名５１２、印刷ポートＵＲＩ５１３に加えて、仮想プリンタ情報５３０から取得した印刷デバイスＩＰ５３２（印刷デバイスのＩＰアドレス）などが含まれる。プリンタオブジェクトがクライアント端末に作成されると、対応するプリンタをそのクライアント端末により利用可能となる。  ＜印刷ジョブ入稿シーケンス６１０＞
シーケンス６１０は、クライアント端末１０１〜１０３上からプリントサーバ１０４へ、印刷ジョブを入稿する処理のシーケンスである。ＧＤＩアプリケーション３０１は、Ｓ６１０１において、ユーザから印刷対象の文書データと印刷先のプリンタ名５１１、印刷設定の指定を含む印刷要求を受けると、Ｓ６１０２において、その内容でスプーラ３０２に印刷指示を行う。
【００３６】
スプーラ３０２は、Ｓ６１０３において、受け取った印刷指示に含まれるプリンタ名５１１を用いて、プリンタ情報５１０から該当のプリンタオブジェクトを特定し、プリンタドライバ名５１２を取得する。スプーラ３０２は、プリンタオブジェクト（すなわち該当するプリンタのプリンタ情報５１０）の取得（Ｓ６１０３）後、Ｓ６１０４において、対応のプリンタドライバ名５１２を特定してそのプリンタドライバ３０３に印刷データ生成要求を行う。
【００３７】
プリンタドライバ３０３は、印刷データ生成要求（Ｓ６１０４）を受けると、Ｓ６１０５において、印刷データ生成要求に含まれる、文書データの識別情報である文書名や、印刷設定を含めた印刷データであるＰＤＬ（ページ記述言語）データを生成する。ＰＤＬデータの生成（Ｓ６１０５）後、プリンタドライバ３０３は、Ｓ６１０６において、ＰＤＬデータをスプーラ３０２に返す。
【００３８】
スプーラ３０２は、プリンタドライバ３０３からＰＤＬデータを受け取る（Ｓ６１０６）と、Ｓ６１０７において、対象のプリンタ情報５１０の印刷ポートＵＲＩ５１３を宛先として、印刷要求をプリントプロキシ３０５に送信する。この印刷要求は、ＰＤＬデータを含むＩＰＰメッセージであり、標準ポートモニタ３０４を通して送信される。またスプーラ３０２は、印刷要求（Ｓ６１０７）の送信が完了した時点で、プリンタオブジェクトへの印刷要求を完了とし、Ｓ６１０８において、ＧＤＩアプリケーション３０１に印刷要求完了を通知する。
【００３９】
一方、プリントプロキシ３０５は、標準ポートモニタ３０４を通してスプーラ３０２からＰＤＬデータを含む印刷要求（Ｓ６１０７）をデータ送受信部４０１で受け取る。プリントプロキシ３０５は印刷要求（Ｓ６１０７）を受け取ると、Ｓ６１０９で、ＰＤＬ解析部４０３にてＰＤＬの解析を行い、ＰＤＬデータに含まれる文書名、印刷設定等の情報を抽出する。Ｓ６１１０において、プリントプロキシ３０５は、Ｓ６１０９で抽出した情報と、印刷要求（Ｓ６１０７）の宛先である印刷ポートＵＲＩ５１３に含まれる仮想プリンタ名とを用いて、メッセージ変換部４０２で、プリントサーバ１０４への印刷ジョブ入稿要求を生成する。生成された印刷ジョブ入稿要求には、ＰＤＬデータに加えて、文書名、仮想プリンタ名、印刷設定が含まれる。メッセージ変換（Ｓ６１１０）が完了すると、プリントプロキシ３０５は、Ｓ６１１１において、データ送受信部４０１により、転送設定情報５２０の設定値に従って、プリントサーバ１０４へ印刷ジョブ入稿要求を送信する。
【００４０】
プリントサーバ１０４上の印刷管理モジュール３０６は、データ送受信部４０４で、プリントプロキシ３０５から、印刷ジョブ入稿要求（Ｓ６１１１）を受け付ける。Ｓ６１１２では、印刷管理モジュール３０６は、印刷ジョブ管理部４０６で、新しい印刷ジョブＩＤ５４１を発行するとともに、印刷ジョブ入稿要求（Ｓ６１１１）に含まれる情報で、印刷ジョブ情報５４０を登録する。また対応するＰＤＬデータを保存し、その保存先をＰＤＬデータ保存先５４４に記録する。印刷管理部モジュール３０６は、印刷ジョブ情報５４０の登録を完了すると、Ｓ６１１３において、データ送受信部４０４を通して印刷ジョブ入稿完了の通知をプリントプロキシ３０５に返す。この後、印刷管理モジュール３０６は、新たに登録した印刷ジョブ情報５４０の出力先仮想プリンタ名５４３に対応する仮想プリンタ名５３１で仮想プリンタ情報５３０を検索して、印刷デバイスＩＰアドレスを取得する。そして、そのＩＰアドレスのプリンタに対して、印刷ジョブ情報５４０に含まれたＰＤＬデータ保存先５４４からＰＤＬデータを読み出して送信し、印刷を実行させる。
【００４１】
プリントプロキシ３０５は、印刷ジョブ入稿要求（Ｓ６１１１）の結果として、印刷ジョブ入稿完了の通知（Ｓ６１１３）をデータ送受信部４０１で受ける。プリントプロキシ３０５は、Ｓ６１１４において、メッセージ変換部４０１で、この通知（Ｓ６１１３）をＩＰＰに従った応答に変換し、Ｓ６１１５において、標準ポートモニタ３０４を通してスプーラ３０２に印刷完了のメッセージを返す。
【００４２】
このように、本発明の方法によると、標準ポートモニタ３０４の後段にプリントプロキシ３０５を設け、プリントプロキシ３０５にて、プリンタ情報取得要求や印刷要求などの要求メッセージの変換を行うことで、クライアント端末１０２〜１０３とプリントサーバ１０４との間の通信を制御可能となり、安定した通信を実現できる。また、本実施形態の方法によれば、標準ポートモニタ３０４やプリンタドライバ３０３に手を加える必要がなく、標準ポートモニタしか動作しないシステムにおいても、既存のプリンタドライバ３０３を利用したプリントシステムを実現できる。
【００４３】
またたとえば、このほかにも、プリンタの状態やジョブの状態を問い合わせるメッセージを処理する機能など、標準ポートモニタでは実現が困難な拡張機能をプリントプロキシ３０５に持たせることもできる。それによりプリントプロキシ３０５がそのメッセージを標準ポートモニタ経由で受信し、メッセージに応じてプリントサーバ１０４に対する問い合わせの発行や応答の受信などを行って拡張機能を実施することができる。
【００４４】
また、本実施形態では、転送設定情報５２０をプリントサーバ１０４との間のプロトコルに応じて設定することができ、プリントサーバに対する柔軟な設定が可能となる。
【００４５】
［実施例２］
実施例２として、印刷デバイス１０５〜１０８に関連付けられていない保存専用の仮想プリンタを利用した場合の印刷ジョブ入稿について説明する。保存専用仮想プリンタは、入稿した印刷ジョブを直ちに印刷することなく保持しておくために用意される仮想プリンタである。ユーザは、保存専用仮想プリンタを指定して入稿することで、事前にプリントサーバ１０４上に自身が使用する仮想プリンタ情報５３０を登録していなくても印刷ジョブの入稿が行える。保存専用仮想プリンタは、印刷デバイスＩＰ５３２や、プリンタドライバ名５３３等の印刷デバイス１０５〜１０８に関する情報を保持しない仮想プリンタである。そのため、保存専用プリンタで入稿された印刷ジョブは、後にプリントサーバから印刷ジョブを配信する際に使用可能な仮想プリンタ情報５３０を特定するために、別途プリンタドライバ名を保持しておく必要がある。  ＜管理情報＞
図７は、本発明の実施例２の形態に係るプリントシステムで管理される情報を示す図である。保存専用仮想プリンタ情報７００は、プリントサーバ１０４の印刷管理モジュール３０６で管理される仮想プリンタ情報５３０に登録されている保存専用仮想プリンタ情報の例である。仮想プリンタ名５３１には、保存専用仮想プリンタを示す文字列の一例"ｓａｖｅｐｒｉｎｔｅｒ"が登録されており、印刷デバイスＩＰ５３２、プリンタドライバ名５３３には、値が存在しないことを表す。また、保存専用仮想プリンタ情報７００は、プリントプロキシ３０５および印刷管理モジュール３０６が、指定された仮想プリンタが保存専用であることを識別できればよく、例えば、保存専用仮想プリンタであるか否かを示す項目を新たに設ける方法等でも実施できる。
【００４６】
印刷ジョブ情報７１０は、実施例１における印刷ジョブ情報５４０の項目に、プリンタドライバ名７１１を追加したものであり、プリンタドライバ名７１１以外の項目については、前述の印刷ジョブ情報５４０と同様である。印刷ジョブ情報７１０は、プリンタドライバ名７１１を保持することで、プリンタドライバ名７１１から各印刷ジョブ情報７１０のＰＤＬデータを生成したプリンタドライバ３０３を把握できる。
【００４７】
転送設定情報７２０は、プリントプロキシ３０５で保持される。転送設定情報７２０は、実施例１における転送設定情報５２０の項目に、保存専用仮想プリンタ名７２１を追加したものであり、保存専用仮想プリンタ名７２１以外の項目については、前述の転送設定情報５２０と同様である。保存専用仮想プリンタ名７２１は、プリントプロキシ３０５が、スプーラ３０２から印刷要求（Ｓ６１０７）を受けた際に、対象の（すなわち当該印刷要求で指定された）仮想プリンタが保存専用であるかを判断するために参照する。本実施例では、前述の保存専用仮想プリンタ情報７００の仮想プリンタ名５３１と同値である、"ｓａｖｅｐｒｉｎｔｅｒ"が値として保持される。
【００４８】
＜保存専用プリンタオブジェクトの作成＞
保存専用仮想プリンタを用いるためにも、そのプリンタオブジェクトが必要であり、実施例１と同様に、図６のＳ６００１〜Ｓ６０１０の手順で作成される。スプーラ３０２は、ユーザの操作により、保存専用仮想プリンタに付与するプリンタ名５１１と、ＰＤＬデータ生成のために用いるプリンタドライバ名５１２、保存専用仮想プリンタ名を含む印刷ポートＵＲＩ５１３の指定を含めたプリンタオブジェクト作成指示を受けると、図６の手順でそれら指定された情報を含む保存専用仮想プリンタ情報７００を取得し、保存専用仮想プリンタオブジェクトを作成してプリンタ情報５１０として登録する。このとき登録するプリンタドライバ名は、指定されたプリンタドライバ名を用いる。このプリンタドライバが、保存する印刷ジョブを作成する際にＰＤＬデータへの変換に用いられ、また、保存した印刷ジョブを実際に印刷する際に用いるプリンタの特定のためにも参照される。したがって、保存専用仮想プリンタオブジェクトは、ＰＤＬ変換のために用いるプリンタドライバごとに作成される。
【００４９】
＜処理シーケンス＞
図８は、本発明の実施例２の形態に係るプリントシステムで、保存専用仮想プリンタに印刷ジョブを入稿する処理フローを示す図である。ここでは、実施例２の特徴について説明し、それ以外の処理については、実施例１と同様である。図８においては、Ｓ６２００−Ｓ６２０４が新たに加わり、Ｓ６２０５，Ｓ６２０６が、それぞれ図６のＳ６１１０、Ｓ６１１２に置き換わっている。そこで、ここではそれら実施例１との相違点を中心に説明する。
【００５０】
ユーザは、印刷ジョブを印刷サーバ１０４に登録するだけで印刷を望まない場合には、たとえば印刷要求において、プリンタ名として、使用する保存専用仮想プリンタのプリンタ名を指定する。アプリケーション３０１から印刷指示を受けたスプーラ３０２は、指定された名称のプリンタ、すなわち保存専用仮想プリンタのプリンタ情報５１０に含まれたプリンタドライバ名で特定されるプリンタドライバに印刷データ生成要求を発行し、文書ＰＤＬデータを生成させる。そして、保存専用仮想プリンタの印刷ポートＵＲＩ５１３に指定された印刷ポート（すなわちプリントプロキシ３０５）に対して、ＰＤＬデータを含む印刷要求を送信する。プリントプロキシ３０５は、スプーラ３０２から印刷要求（Ｓ６１０７）を受け取ると、Ｓ６２０１で、宛先である印刷ポートＵＲＩ５１３に含まれる仮想プリンタ名と、転送設定情報７２０の保存専用仮想プリンタ名７２１と比較する。プリントプロキシ３０５は、印刷要求（Ｓ６１０７）の対象の仮想プリンタが保存専用であると判断すると、Ｓ６２００を実行する。保存専用仮想プリンタでない場合には、実施例と同様にＳ６１０９を実行する。Ｓ６２００にはＳ６２０２−Ｓ６２０４を含む。
【００５１】
Ｓ６２０２で、要求元の標準ポートモニタ３０４を通して、スプーラ３０２にプリンタオブジェクト情報取得要求を送信する。スプーラ３０２は、プリンタオブジェクト情報取得要求（Ｓ６２０２）を受けると、Ｓ６２０４で、対象の印刷ポートを使用しているプリンタオブジェクトのプリンタ情報５１０（すなわち保存専用仮想プリンタのプリンタ情報）を返す。このプリンタ情報５１０には、印刷要求の対象となっている印刷データ（ＰＤＬデータ）の生成のために用いたプリンタドライバ名が含まれている。なお対象の印刷ポートとは、印刷指示要求（Ｓ６１０７）の送信の宛先となった印刷ポートであり、これはたとえばＩＰアドレスとポート番号とから特定できる。スプーラ３０２は、印刷完了６１１５まで各印刷ポートとのコネクションをプリンタオブジェクトごとに維持しており、プリンタオブジェクト情報取得要求に対して、該当するプリンタオブジェクト情報をコネクションから特定することができる。
【００５２】
プリントプロキシ３０５は、Ｓ６２０５でプリントサーバ１０４への印刷ジョブ入稿要求メッセージを生成する際に、Ｓ６２０４で受け取ったプリンタ情報５１０のプリンタドライバ名５１２を印刷ジョブ入稿要求メッセージに含める。これにより、Ｓ６１１１の印刷ジョブ入稿要求には、該当の印刷ジョブのＰＤＬデータを生成したプリンタドライバ３０３のプリンタドライバ名５１２が含まれる。なお、Ｓ６２００が実行されていない場合には、プリンタドライバ名は空欄でよい。
【００５３】
印刷管理モジュール３０６は、Ｓ６２０６において、印刷ジョブ入稿要求（Ｓ６１１１）の内容で、印刷ジョブ管理部４０６で、印刷ジョブ情報７１０の登録を行う。この際、指定された仮想プリンタ名が保存専用仮想プリンタ名である場合には、印刷ジョブ入稿要求（Ｓ６１１１）に含まれるプリンタドライバ名５１２を、プリンタドライバ名７１１に登録し、出力先仮想プリンタ名５４３は登録しない。これにより、登録された印刷ジョブ情報７１０は、仮想プリンタ情報５３０とは関連付けられないが、ＰＤＬデータを生成したプリンタドライバを識別することができる。よって、ユーザがプリントサーバ１０４に該当の印刷ジョブの印刷実行指示する場合に、印刷可能な仮想プリンタを正しく選択することができる。
【００５４】
たとえば、保存された印刷ジョブを印刷する場合、ユーザはクライアント端末１０１−１０３のＷｅｂブラウザ等を用いて登録済み印刷ジョブのリストをプリントサーバから取得し、表示し、実行する印刷ジョブを選択する。そして、たとえば選択した印刷ジョブのＩＤとともに印刷要求をプリントサーバ１０４に送信する。プリントサーバ１０４ではＷｅｂサーバを介して印刷管理モジュール３０６に印刷要求を引き渡す。印刷管理モジュール３０６は、印刷要求に含まれた印刷ジョブＩＤから印刷ジョブ情報７１０を特定し、出力先仮想プリンタ名５４３が空欄であれば、プリンタドライバ名７１１で仮想プリンタ情報５３０を検索する。そしてプリンタドライバ名７１１と一致するプリンタドライバ名５３３を含む仮想プリンタを用いて印刷を実行する。なおプリンタドライバ名が空欄の場合には、出力先仮想プリンタ名５４３を用いて実施例１と同様の手順で印刷を実行する。
【符号の説明】
【００５５】
１０１〜１０３  クライアント端末、１０４  プリントサーバ、１０５〜１０８  印刷デバイス、３０１  ＧＤＩアプリケーション、３０２  スプーラ、３０３  プリンタドライバ、３０４  標準ポートモニタ、３０５  プリントプロキシ、３０６  印刷管理モジュール
【図１】
2016130970.tif 000003
【図２】
2016130970.tif 000004
【図３】
2016130970.tif 000005
【図４】
2016130970.tif 000006
【図５】
2016130970.tif 000007
【図６】
2016130970.tif 000008
【図７】
2016130970.tif 000009
【図８】
2016130970.tif 000010