(57)【要約】【課題】  情報処理装置から描画命令生成装置への再描画要求を減らし、ネットワーク負荷を低減させる。【解決手段】  クライアント端末６〜８は、ターミナルサーバ１によって生成されるプリンタドライバに対する第１の描画命令と、プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを対応付けて管理する。そして、クライアント端末６〜８は、ターミナルサーバ１から第１の描画命令を受信し、受信した第１の描画命令をプリンタドライバにおいてＰＤＬに変換可能か否かを判定し、ＰＤＬに変換できないと判定された場合、第１の描画命令に対応する第２の描画命令を検索する。次に、クライアント端末６〜８は、検索された第２の描画命令をプリンタドライバに対して提供する。【選択図】  図１
2009181344.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置であって、
前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを対応付けて管理する管理手段と、
前記描画命令生成装置から前記第１の描画命令を受信する受信手段と、
前記受信手段により受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定手段と、
前記判定手段により前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索手段と、
前記検索手段により検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供手段とを有することを特徴とする情報処理装置。
【請求項２】
前記描画命令生成装置に対して前記プリンタの能力情報を送信する送信手段を更に有し、
前記第１の描画命令は、前記描画命令生成装置が前記プリンタの能力情報に応じて生成した描画命令であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
プリンタドライバを備える情報処理装置と通信可能に接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置であって、
前記プリンタドライバに対する第１の描画命令を生成する第１の生成手段と、
前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信手段と、
前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する第１の受信手段と、
前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成手段と、
前記第２の生成手段により生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信手段とを有することを特徴とする描画命令生成装置。
【請求項４】
前記プリンタドライバであるネイティブプリンタドライバに対応するプリンタドライバが前記描画命令生成装置において存在しない場合、前記プリンタの能力情報を前記情報処理装置から受信する第２の受信手段を更に有し、
前記第１の生成手段は、前記プリンタの能力情報に応じて前記第１の描画命令を生成することを特徴とする請求項３に記載の描画命令生成装置。
【請求項５】
前記プリンタドライバであるネイティブプリンタドライバに対応するプリンタドライバが前記描画命令生成装置において存在しない場合、前記プリンタの能力情報に応じて前記第１の描画命令を生成するか否かを前記情報処理装置に対して問い合わせる問い合わせ手段と、
前記問い合わせ手段による問い合わせの結果、前記プリンタの能力情報に応じて前記第１の描画命令を生成することが選択されなかった場合、汎用プリンタドライバを介して描画命令を前記情報処理装置に対して送信する第３の送信手段とを更に有することを特徴とする請求項４に記載の描画命令生成装置。
【請求項６】
前記プリンタドライバであるネイティブプリンタドライバに対応するプリンタドライバが前記描画命令生成装置において存在する場合、前記描画命令生成装置内の前記ネイティブプリンタドライバに対応するプリンタドライバを介して描画命令を前記情報処理装置に対して送信する第４の送信手段を更に有することを特徴とする請求項４又は５に記載の描画命令生成装置。
【請求項７】
前記プリンタの設定が更新された場合、前記プリンタの能力の更新情報を前記情報処理装置から受信する第３の受信手段と、
前記プリンタの能力の更新情報に応じて、前記プリンタの能力情報を更新する更新手段とを更に有することを特徴とする請求項３乃至６の何れか１項に記載の描画命令生成装置。
【請求項８】
プリンタドライバを備える情報処理装置と、前記プリンタドライバに対する描画命令を生成する描画命令生成装置とが通信可能に接続される情報処理システムであって、
前記情報処理装置は、
前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを対応付けて管理する管理手段と、
前記描画命令生成装置から前記第１の描画命令を受信する受信手段と、
前記受信手段により受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定手段と、
前記判定手段により前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索手段と、
前記検索手段により検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供手段とを有し、
前記描画命令生成装置は、
前記プリンタドライバに対する第１の描画命令を生成する第１の生成手段と、
前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信手段と、
前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信手段と、
前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成手段と、
前記第２の生成手段により生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信手段とを有することを特徴とする情報処理システム。
【請求項９】
プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと、前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置の制御方法であって、
前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを管理手段において対応付けて管理する管理ステップと、
前記描画命令生成装置から前記第１の描画命令を受信する受信ステップと、
前記受信ステップにより受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定ステップと、
前記判定ステップにより前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索ステップと、
前記検索ステップにより検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供ステップとを含むことを特徴とする情報処理装置の制御方法。
【請求項１０】
プリンタドライバを備える情報処理装置と通信可能に接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置の制御方法であって、
前記プリンタドライバに対する第１の描画命令を生成する第１の生成ステップと、
前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信ステップと、
前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信ステップと、
前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成ステップと、
前記第２の生成ステップにより生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信ステップとを含むことを特徴とする描画命令生成装置の制御方法。
【請求項１１】
プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと、前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを管理手段において対応付けて管理する管理ステップと、
前記描画命令生成装置から前記第１の描画命令を受信する受信ステップと、
前記受信ステップにより受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定ステップと、
前記判定ステップにより前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索ステップと、
前記検索ステップにより検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供ステップとをコンピュータに実行させるためのプログラム。
【請求項１２】
接続されるプリンタに対応するプリンタドライバを備える情報処理装置と接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記プリンタドライバに対する第１の描画命令を生成する第１の生成ステップと、
前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信ステップと、
前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信ステップと、
前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成ステップと、
前記第２の生成ステップにより生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク負荷を考慮して再描画要求に対する描画命令をプリンタドライバに提供するための技術に関するものである。
【背景技術】
【０００２】
近年、情報セキュリティ保持の観点から業務情報及びその処理についてユーザ各自のコンピュータで行っていたものを中央のサーバに移す事例がよく見られる。例えばマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）やＷｉｎｄｏｗｓ上で動作するＣｉｔｒｉｘ社のＭｅｔａＦｒａｍｅ（登録商標）という製品では、業務情報を保持するデータ及びそれを処理するアプリケーションがターミナルサーバと呼ばれるサーバ装置上に配置される。ユーザ各自のコンピュータには、入出力のみを行うクライアントソフトウェアが配置されて利用されている。
【０００３】
この場合、データ及びアプリケーションについてはサーバ装置上で集中管理されるものの、プリンタについてはユーザの身近にあるものを利用する必要がある。そのため、ユーザのコンピュータに構成されているプリンタドライバをそのまま利用したいという要望がある。
【０００４】
この要望に応えるべく、ＭｅｔａＦｒａｍｅではユーザが自身のコンピュータからクライアントソフトウェアを通してターミナルサーバを利用するときに、仮想プリンタを構成してターミナルサーバ内で処理しているデータを普段ユーザが利用しているプリンタから印刷することを可能としている（例えば、特許文献１、２参照）。
【０００５】
この仮想プリンタを構成して印刷する方法は、ターミナルサーバの管理者が予め各ユーザが使用しているプリンタメーカが提供するプリンタのプリンタドライバ（ネイティブドライバ）をターミナルサーバに構成しておく方法である。この方法ではユーザが普段利用しているプリンタドライバを使うことから、高い利便性が得られる。
【０００６】
また、仮想プリンタを構成して印刷する方法は、ターミナルサーバにユニバーサルプリンタドライバという汎用（様々な種類のプリンタに適用可能）プリンタドライバを構成する。そして、クライアントにも汎用プリンタドライバを構成し、汎用プリンタドライバ同士が設定情報や描画情報の送受信を行う方法である。この方法ではターミナルサーバの管理者は汎用プリンタドライバのみを構成しておけば、ユーザが利用するプリンタ製品の種類が多岐に渡っても、クライアント端末に構成されているプリンタドライバのバージョンが更新されても、更新作業は実施する必要がなく、プリンタドライバの維持管理の手間がかからず管理が容易であった。
【０００７】
【特許文献１】特開２００５−３４６７３７号公報
【特許文献２】特開２００５−３４６７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、１つ目の、ターミナルサーバの管理者が予め各ユーザが使用しているプリンタのプリンタドライバをターミナルサーバに構成しておく方法は、ユーザが利用しているプリンタ製品の種類が多岐にわたる場合や、プリンタドライバのバージョンアップが頻繁に行われる場合においては、ターミナルサーバ内に構成したプリンタドライバの維持管理に大変手間がかかるといった課題が存在していた。
【０００９】
また、２つ目のターミナルサーバにユニバーサルプリンタドライバという汎用プリンタドライバを構成する。そしてクライアント側にも汎用プリンタドライバを構成し、汎用プリンタドライバ同士が設定情報や描画情報の送受信を行う方法は、ターミナルサーバ上で動作するプリンタドライバは汎用（基本）機能しか持ち合わせていないことから、機能面で制限が発生するという技術的課題が存在していた。
【００１０】
このように、２つの方法で印刷処理がなされるため、ターミナルサーバを導入する企業は、上記どちらかの方法を選択して印刷システムを構築しなければならなかった。
【００１１】
特に上述した１つ目の方法では、仮にクライアント端末のプリンタドライバのバージョンが上がる、或いは新規のプリンタドライバがインストールされた場合、クライアント端末と、サーバ間でのプリンタドライバの整合性が合わない。そのため、サーバから描画命令を取得したクライアント端末のプリンタドライバは解釈できない描画命令を受信することになる。従って、クライアント端末のプリンタドライバはサーバに再描画を要求し、クライアント端末とサーバ間の処理が頻繁に行われ、ネットワークの負荷を高めてしまっていた。
【００１２】
そこで、本発明の目的は、情報処理装置から描画命令生成装置への再描画要求を減らし、ネットワーク負荷を低減させることにある。
【課題を解決するための手段】
【００１３】
本発明の情報処理装置は、プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置であって、前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを対応付けて管理する管理手段と、前記描画命令生成装置から前記第１の描画命令を受信する受信手段と、前記受信手段により受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定手段と、前記判定手段により前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索手段と、前記検索手段により検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供手段とを有することを特徴とする。
本発明の描画命令生成装置は、プリンタドライバを備える情報処理装置と通信可能に接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置であって、前記プリンタドライバに対する第１の描画命令を生成する第１の生成手段と、前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信手段と、前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する第１の受信手段と、前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成手段と、前記第２の生成手段により生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信手段とを有することを特徴とする。
本発明の情報処理システムは、プリンタドライバを備える情報処理装置と、前記プリンタドライバに対する描画命令を生成する描画命令生成装置とが通信可能に接続される情報処理システムであって、前記情報処理装置は、前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを対応付けて管理する管理手段と、前記描画命令生成装置から前記第１の描画命令を受信する受信手段と、前記受信手段により受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定手段と、前記判定手段により前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索手段と、前記検索手段により検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供手段とを有し、前記描画命令生成装置は、前記プリンタドライバに対する第１の描画命令を生成する第１の生成手段と、前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信手段と、前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信手段と、前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成手段と、前記第２の生成手段により生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信手段とを有することを特徴とする。
本発明の情報処理装置の制御方法は、プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと、前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置の制御方法であって、前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを管理手段において対応付けて管理する管理ステップと、前記描画命令生成装置から前記第１の描画命令を受信する受信ステップと、前記受信ステップにより受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定ステップと、前記判定ステップにより前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索ステップと、前記検索ステップにより検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供ステップとを含むことを特徴とする。
本発明の描画命令生成装置の制御方法は、プリンタドライバを備える情報処理装置と通信可能に接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置の制御方法であって、前記プリンタドライバに対する第１の描画命令を生成する第１の生成ステップと、前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信ステップと、前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信ステップと、前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成ステップと、前記第２の生成ステップにより生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信ステップとを含むことを特徴とする。
本発明のプログラムの第１の態様は、プリンタドライバを備えるとともに、前記プリンタドライバに対応するプリンタと、前記プリンタドライバに対する描画命令を生成する描画命令生成装置と通信可能に接続される情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、前記描画命令生成装置によって生成される前記プリンタドライバに対する第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置によって生成される第２の描画命令とを管理手段において対応付けて管理する管理ステップと、前記描画命令生成装置から前記第１の描画命令を受信する受信ステップと、前記受信ステップにより受信した前記第１の描画命令を前記プリンタドライバにおいて前記プリンタが解釈可能な言語に変換可能か否かを判定する判定ステップと、前記判定ステップにより前記第１の描画命令を前記プリンタドライバが前記プリンタで解釈可能な言語に変換できないと判定された場合、前記管理手段から前記第１の描画命令に対応する前記第２の描画命令を検索する検索ステップと、前記検索ステップにより検索された前記第２の描画命令を前記プリンタドライバに対して提供する提供ステップとをコンピュータに実行させることを特徴とする。
本発明のプログラムの第２の態様は、接続されるプリンタに対応するプリンタドライバを備える情報処理装置と接続され、前記プリンタドライバに対する描画命令を生成する描画命令生成装置の制御方法をコンピュータに実行させるためのプログラムであって、前記プリンタドライバに対する第１の描画命令を生成する第１の生成ステップと、前記第１の描画命令と、前記プリンタドライバからの再描画要求に応じて前記描画命令生成装置により生成される第２の描画命令とを対応付けて管理する前記情報処理装置に対し、前記第１の描画命令を送信する第１の送信ステップと、前記第１の描画命令を前記プリンタドライバにおいて前記プリンタで解釈可能な言語に変換できず、且つ前記第１の描画命令に対応する前記第２の描画命令が前記情報処理装置において管理されていない場合、前記プリンタドライバからの再描画要求を前記情報処理装置から受信する受信ステップと、前記プリンタドライバからの再描画要求に応じて、前記プリンタドライバに対する前記第２の描画命令を生成する第２の生成ステップと、前記第２の生成ステップにより生成される前記第２の描画命令を前記情報処理装置に対して送信する第２の送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明においては、描画命令生成装置において生成される第１の描画命令に対してプリンタドライバからの再描画要求が発生し、第１の描画命令に対応する第２の描画命令が情報処理装置側で管理されている場合、管理されている第２の描画命令を情報処理装置に対して提供するようにしている。従って、本発明によれば、情報処理装置から描画命令生成装置への再描画要求を減らし、ネットワーク負荷を低減させることが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１６】
先ず、本発明の実施形態を説明するために必要な用語の定義を以下に記載する。
本説明においてプリンタドライバは３種類存在し、内１種類、つまりキャッシュモードプリンタドライバが新規に追加した種類のプリンタドライバとなる。以下に３種類のプリンタドライバについて説明する。
【００１７】
ネイティブプリンタドライバとは、従来のプリンタ本体に同梱されるプリンタベンダーが提供するプリンタドライバソフトウェアであり、ＯＳからの描画要求に応じてプリンタ本体が解釈可能なＰＤＬというデータに変換するものである。尚、ネイティブプリンタドライバは、後述する汎用プリンタドライバとは異なり、様々な印刷機能を利用した印刷が可能である。
【００１８】
汎用プリンタドライバ（ユニバーサルプリンタドライバ）とは、ターミナルサーバ内に唯一存在する汎用（基本）機能を有したプリンタドライバであり、ネイティブプリンタドライバの代替として機能することができるプリンタドライバである。汎用プリンタドライバは、ＯＳからの描画要求をまとめたＥＭＦファイルを生成した上でこれをクライアント端末上のネイティブプリンタドライバに送付し、以降の描画処理はネイティブプリンタドライバに行わせる。
【００１９】
キャッシュモードプリンタドライバとは、ターミナルサーバ側にのみ構成されるプリンタドライバである。キャッシュモードプリンタドライバは、プリンタドライバになされる各要求や問い合わせについて、ターミナルサーバ内にあるキャッシュデータにある情報はそれを用い、ないものについてはクライアント端末に構成されるネイティブプリンタドライバに転送する機能を持つ。また、キャッシュモードプリンタは、ネイティブプリンタドライバへの転送とターミナルサーバ内のキャッシュデータの検索機能のみを持ち、ネイティブプリンタドライバが持つようなＰＤＬの生成機能は持たない。自身で描画要求を処理しない点において汎用プリンタドライバと類似するが、ＥＭＦという一時ファイルを生成する汎用プリンタドライバと比較し、キャッシュモードプリンタドライバは一時ファイルを生成しない。
【００２０】
ＧＤＩとはグラフィックスデバイスインタフェースの略語であり、ＯＳ（Ｗｉｎｄｏｗｓ）が備えるグラフィックスエンジンであり、画面への描画やプリンタへの印刷要求を担当する。
【００２１】
ＤＤＩとはデバイスドライバインタフェースの略語であり、Ｗｉｎｄｏｗｓのプリンタドライバを含むデバイスドライバが公開すべきインタフェースである。プリンタドライバの場合、これらのインタフェースはＧＤＩから呼び出される。
【００２２】
本実施形態におけるキャッシュモードとは、ターミナルサーバ上でキャッシュモードプリンタドライバが構成され、それに付随してクライアント端末上でＧＤＩ擬装モジュールが構成される動作モードである。このときターミナルサーバ側ではＧＤＩからのプリンタ能力情報の要求について、逐一クライアント端末側のネイティブプリンタドライバに問い合わせずに済ませることを目的としてクライアント端末の接続時、つまり印刷が開始される前に予め、ネイティブプリンタドライバに一括して問合せを行い、その問い合わせ内容と結果とターミナルサーバ側にキャッシュする。また、実際の描画処理はクライアント端末上のネイティブプリンタドライバで実施するが、ネイティブプリンタドライバが処理しきれない複雑な描画に関するＧＤＩへの再描画処理要求を従来どおり処理すると、１度の再描画要求で必ずターミナルサーバへの問合せとその回答が発生することから、ターミナルサーバ側に１度行った再描画要求とその結果をクライアント端末側で印刷用キャッシュデータとして保持することにより、ターミナルサーバへの問合せ処理を削減する。
【００２３】
図１は、本発明の実施形態に係るネットワーク印刷システムの構成を示すシステム図である。
【００２４】
図１において、２つのネットワーク２、３が存在し、同一構内にある異なるフロアのネットワークを想定している。１はターミナルサーバであり、本実施形態ではマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）上でＣｉｔｒｉｘ社のＭｅｔａＦｒａｍｅ（登録商標）が稼働していることを前提として説明する。
【００２５】
６、７、８はターミナルサーバ１と通信可能に接続されるクライアント端末であり、これらもマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が稼働していることを前提としている。ユーザはこのクライアント端末６、７、８を操作することにより、実際にはターミナルサーバ１に存在するアプリケーションプログラムを用いて、業務を遂行する。なお、ターミナルサーバ１は、本発明の描画命令生成装置の適用例となる構成であり、クライアント端末６は、本発明の情報処理装置の適用例となる構成である。
【００２６】
４、５はプリンタであり、ユーザは各自操作しているクライアント端末６、７、８から近い場所にあるプリンタから印刷することを志向するものとする。例えばクライアント端末８を使用しているユーザは同じネットワーク３上に存在する、プリンタ５に印刷する。
【００２７】
＜ターミナルサーバ１及びクライアント端末６〜８のハードウェア構成＞
図２は、ターミナルサーバ１及びクライアント端末６〜８となるコンピュータの機器構成を示すブロック図である。
【００２８】
ターミナルサーバ１及びクライアント端末６〜８は同じマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）を搭載したコンピュータであり、ハードウェアの構成としては特に変わるものではなく、動作しているソフトウェアによってその役割が異なっている。
【００２９】
図２において、１１はＣＰＵであり演算処理を行う。なお、ＣＰＵ１１の演算に用いるデータやその結果についてはＲＡＭ１２に保持される。また、ＲＡＭ１２に保持されているデータは揮発することから、最終的にはＨＤＤ１３に格納するよう制御する。
【００３０】
ＨＤＤ１３にはＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）を構成するシステムファイルやコンピュータ本体の内外に存在する機器類のデバイスドライバファイルが格納されており、ＣＰＵ１１は制御に際してそれらのファイルをＲＡＭ１２にロードして処理を行う。
【００３１】
コンピュータの内部の機器はバス１５で連結されており、ＣＰＵ１１がバス１５を制御することにより内部機器間の通信を行う。またバス１６には外部の記憶媒体からデータを読み出すためのＣＤ−ＲＯＭドライブ１４が接続されており、記憶媒体に格納されているデータをＲＡＭ１２やＨＤＤ１３に読み出すことができる。
【００３２】
その他に入力用Ｉ／Ｆ１６を通してマウス２０が、入力用Ｉ／Ｆ１７を通してキーボード２１が接続されている。また、出力用Ｉ／Ｆ１８を通してディスプレイ２２が接続されている。さらに、通信用Ｉ／Ｆ１９を通してコンピュータはネットワーク２もしくは３と接続されており、後述するクライアント端末６〜８とターミナルサーバ１の間の通信はこのネットワークを通して送受信する。
【００３３】
＜ターミナルサービスプログラム＞
図３は、ターミナルサーバ１にて動作しているターミナルサービスプログラムを概念的に示す図である。
【００３４】
図３においてＲＡＭ１２のメモリ空間はセッションという形で分離されている。３１は共通セッションであり、ターミナルサーバ１が起動するとＯＳの初期化処理によって、ＨＤＤ１３に格納されているファイルを読み込む。
【００３５】
３４及び４０はＯＳを構成する核となるシステムファイルであり、ＨＤＤ１３に格納されているシステムファイル４０がＲＡＭ１２にシステムファイル３１という形で読み込まれる。
【００３６】
この初期化処理において周辺機器を動作させるために、ＣＰＵ１１はＨＤＤ１３からデバイスドライバファイル４１を読み込み、ＲＡＭ１２内の共通セッション３５として格納する。以降、ＣＰＵ１１は周辺機器制御についてはデバイスドライバファイル３５を適時読み込んで実施する。なお、プリンタドライバはデバイスドライバの１種であることから、同様にして共通セッション３１にて動作する。
【００３７】
クライアント端末６〜８からユーザがターミナルサーバ１にログオンすると、ＣＰＵ１１はその時点でＲＡＭ１２にそのユーザ用のセッションを作成する。
【００３８】
３２は仮にＡというユーザがいる場合に、Ａがログオンした際に作成されるユーザＡのセッションである。同様にＺというユーザがログオンした際にはＡのセッションや共通セッションとは独立した３３、つまりユーザＺのセッションが作成される。
【００３９】
ユーザセッション３２、３３ではユーザが利用するアプリケーションプログラム４２がＨＤＤ１３から読み込まれて、メモリ上でアプリケーションプログラム３６、３８として動作する。アプリケーションプログラム４２はＨＤＤ１３の中で共通の領域に格納され、ユーザが使用するときはＣＰＵ１１が各ユーザのセッションに個別に読み込んで動作させる。
【００４０】
実際にユーザ毎に個別の内容が保持されているデータについてはＨＤＤ１３でユーザ毎に区画されたデータ領域４３に格納される。データ領域４３はユーザ毎にユーザデータＡ４４やユーザデータＺ４５というように区画されており、ユーザＡセッション３２にはユーザデータＡ４４のみがユーザデータ３７としてＲＡＭ１２に読み込まれ、同様にユーザＺセッション３３にはユーザデータＺ４５がユーザデータＺ３９として読み込まれる。
【００４１】
ユーザＡがターミナルサーバ１に接続したことを識別し、ＨＤＤ１３に格納されているユーザデータＡ４４へのアクセスを許可することは、ＣＰＵ１１がＨＤＤ１３内のシステムファイル４０に格納されているセキュリティデータベースの内容を参照することによって実施している。
【００４２】
＜クライアント接続時のプリンタ構成＞
図４は、クライアント端末６〜８がターミナルサーバ１に接続した際の処理の流れを示すフローチャートである。
【００４３】
ターミナルサーバ１では、クライアント端末６〜７の接続時に３種類のプリンタドライバのどれを用いるかについて決定し、その結果として図５又は図６のようなシステムが構成される。ターミナルサーバ１、クライアント端末６〜８の処理はそれぞれのＯＳ内で動作しているスプーラモジュール内で行われる。
【００４４】
図４にて、Ｓ１０１でクライアント端末６〜８はターミナルサーバ１に接続要求を送信する。クライアント端末６〜８からの接続要求を受信したターミナルサーバ１は接続処理を開始する。
【００４５】
Ｓ１０２にて、クライアント端末６〜８はクライアント端末上に構成されているプリンタの機種名をターミナルサーバ１に送信する。
【００４６】
ターミナルサーバ１は、Ｓ１５１でプリンタ機種名を受信する。続いて、ターミナルサーバ１は、Ｓ１５２にてプリンタ機種名でターミナルサーバ１に構成済みのネイティブプリンタドライバを検索する。
【００４７】
Ｓ１５３にて、ターミナルサーバ１は、当該プリンタ機種名のネイティブプリンタドライバの有無をクライアント端末６〜８に通知する。続いて、ターミナルサーバ１は、Ｓ１５４にて、当該プリンタ機種名のネイティブプリンタドライバの有無を判定する。
【００４８】
既にネイティブプリンタドライバが構成されていれば、ターミナルサーバ１は、Ｓ１５７にてネイティブドライバファイルを読み込んで処理を行う。これにより、ターミナルサーバ１は、ネイティブプリンタドライバを介して描画命令をクライアント端末６に対して送信することになる。なお、本処理は、本発明の第４の送信手段の一処理例である。
【００４９】
一方、ネイティブドライバがターミナルサーバ１上になかった場合、ターミナルサーバ１は、Ｓ１５５にてクライアント端末６〜８に対してキャッシュモード利用の適否を問い合わせる。なお、Ｓ１５５は、本発明の問い合わせ手段の一処理例である。
【００５０】
クライアント端末６〜８は、Ｓ１０３にてターミナルサーバ１におけるネイティブプリンタドライバの有無について取得する。続いて、クライアント端末６〜８は、Ｓ１０４にてネイティブプリンタドライバの有無を判定する。その結果、Ｓ１０４にてネイティブプリンタドライバがないと判断された場合、クライアント端末６〜８は、Ｓ１５５の問い合わせに応じて、Ｓ１０５にてキャッシュモードを利用するかを問うメッセージ画面を表示する。
【００５１】
続いて、クライアント端末６〜８は、メッセージ画面に対するユーザからの回答をＳ１０６で受け取り、それをターミナルサーバ１に返信するとともに、Ｓ１０７にてユーザからの回答を判定する。一方、ターミナルサーバ１は、クライアント端末６〜８からの回答を受信し、Ｓ１５８で回答を確認する。
【００５２】
Ｓ１５８の確認の結果、キャッシュモードを利用しない場合は汎用プリンタドライバを利用するケースとなり、ターミナルサーバ１ではＳ１５９にて汎用ドライバファイルがＲＡＭ１２に読み込まれる。これにより、ターミナルサーバ１は、汎用プリンタドライバを介して描画命令をクライアント端末６に対して送信することになる。なお、本処理は、本発明の第３の送信手段の一処理例である。
【００５３】
Ｓ１０７の判定の結果、キャッシュモードを利用する場合は、クライアント端末６〜８では、Ｓ１０８にてＧＤＩ擬装モジュールが起動される。ＧＤＩ擬装モジュールの構成では本来プリンタドライバと処理を行うモジュールがＧＤＩであるところをその処理をフックすることによって、ＧＤＩになりすます。
【００５４】
一方、Ｓ１５８の確認の結果、キャッシュモードを利用する場合、ターミナルサーバ１では、Ｓ１６０にてまずキャッシュモードプリンタドライバのファイルを読み込む。そして、ターミナルサーバ１は、Ｓ１６１でクライアント端末６〜８のＧＤＩ擬装モジュールを通してネイティブプリンタドライバからプリンタの能力情報を取得し、ターミナルサーバ１内でキャッシュモードプリンタドライバがアクセスするキャッシュデータに格納する。なお、Ｓ１６１は、本発明の第２の受信手段の一処理例である。
【００５５】
３つのモードのいずれかでドライバファイルを読み込んだ後にターミナルサーバ１ではＳ１６２にて仮想論理プリンタの構成を行い、ユーザが利用可能なプリンタアイコンを作成する。ターミナルサーバ１は、ここで決定した仮想論理プリンタの名称をＳ１６３にてクライアント端末６〜８に送信する。
【００５６】
クライアント端末６〜８ではＳ１０９にて仮想論理プリンタの名称を取得した後、Ｓ１１０にて実際にクライアント端末６〜８上のプリンタを共有し、ターミナルサーバ１上の仮想プリンタからの接続を許可する処理を行う。
【００５７】
＜モジュール構成＞
図５は、ターミナルサーバ１とクライアント端末６における一連の処理を実行するためのモジュール構成とその処理の流れを示した図である。なお、クライアント端末７、８のモジュール構成についてもクライアント端末６と同様のものとなる。図６は、ＭｅｔａＦｒａｍｅの処理の流れを示した図である。
【００５８】
図５において、アプリケーションプログラム３６はユーザデータＡ３７を読み込んで処理をした上で印刷命令を送信するが、それに先んじてプリンタの能力情報を取得する。
【００５９】
例えばカラー印刷をサポートしているかであるとか、用紙の種類と言った情報を取得する。このとき、アプリケーションプログラム３６はＧＤＩ５１にプリンタの能力情報を要求する。これを受けてＧＤＩ５１はキャッシュモードプリンタドライバ５２にプリンタ能力の問い合わせを行う。
【００６０】
キャッシュモードプリンタドライバ５２自体は汎用のプリンタドライバであるため、本来はプリンタの能力情報は持っていないが、クライアント端末６の接続時に実施した初期化処理において、プリンタの能力情報がキャッシュデータ５４に格納されている。キャッシュモードプリンタドライバ５２はここから必要な能力情報を読み出してＧＤＩ５１を通じてアプリケーションプログラム３６にプリンタの能力情報を返す。
【００６１】
必要なプリンタの能力情報を得た後、アプリケーションプログラム３６はユーザデータＡ３７を読み込んで処理をした上で印刷命令を送信する。この印刷命令に呼応して共通セッションに読み込まれているＧＤＩ５１が印刷命令を解釈してキャッシュモードプリンタドライバ５２に描画命令を送信する。
【００６２】
キャッシュモードプリンタドライバ５２は、描画命令の内容そのものを通信モジュール５３及び５４を通してクライアント端末６内のＧＤＩ擬装モジュール５５に送信する。
【００６３】
図６に示すＭｅｔａＦｒａｍｅの処理では、アプリケーションプログラム３６からの印刷命令から発生する描画命令を全てＥＭＦファイル５８に格納する。アプリケーションプログラム３６の印刷命令が終了した後に初めてＥＭＦファイル５８は通信モジュール５３及び５４を通してクライアント端末６に送信される。
【００６４】
ここに図５に示す処理と図６に示す処理と異なる点の１つがあり、図５に示す処理では、ターミナルサーバ１にＥＭＦファイルという一時ファイルを生成しなくてよいことが利点となる。特にユーザデータのファイルサイズが大きい場合やアプリケーションプログラムの種類によってはこのＥＭＦファイルのサイズが肥大化することがある。多数のユーザが接続するターミナルサーバ１で一斉に印刷処理がなされるとターミナルサーバ１上のディスク資源を逼迫しかねない。図５に示す処理では、印刷処理時に一時ファイルは生成しない。ＲＡＭ１２上にキャッシュデータ５４は生成するが、プリンタの能力情報のみを格納した非常に小さいものである。
【００６５】
図５にて、描画命令を受け取ったＧＤＩ擬装モジュール５５はその内容を再生し、ネイティブプリンタドライバ５６に描画の要求を行う。
【００６６】
ネイティブプリンタドライバ５６は描画要求に対し、ネイティブプリンタドライバ５６で処理可能なものについては、ＰＤＬに変換してスプーラモジュール５７を通してプリンタ４に送信する。また、ネイティブプリンタドライバ５６で処理不可能なもの、つまりプリンタの能力に対して要求がより高度であるものについては、ＧＤＩ５１に対して要求を差し戻し、より低レベルの描画要求を発行するよう求める。
【００６７】
図６に示すＭｅｔａＦｒａｍｅの場合では、ネイティブプリンタドライバ５６は自ら描画できない要求についてＧＤＩ５９に対して再描画を要求する。
【００６８】
一方で、図５に示す処理では、実際に処理を行うＧＤＩモジュールはターミナルサーバ１にあるＧＤＩ５１に一本化するため、クライアント端末６のＧＤＩは用いない。その代わりとしてＧＤＩ擬装モジュール５５が処理を行う。ＧＤＩ擬装モジュール５５はネイティブプリンタドライバ５６から差し戻された描画要求の内容をクライアント端末６のＲＡＭ１２上にある印刷用キャッシュデータ６０に格納する。そして次回に同じパターンの再描画要求があった場合、ＧＤＩ擬装モジュール５５は、印刷用キャッシュデータ６０から読み込んでネイティブプリンタドライバ５６に再描画要求を送信する。
【００６９】
また、印刷用キャッシュデータ６０に同じパターンの再描画要求がなかった場合、ＧＤＩ擬装モジュール５５は、通信モジュール５４を通してターミナルサーバ１に再描画要求を送信し、ＧＤＩ５１がこれを受け取って再度描画要求を送信する。
【００７０】
クライアント端末６上の印刷用キャッシュデータ６０は特に複雑な描画要求を大量に発生させるようなアプリケーションプログラム３６での印刷に効果を発揮する。このようなケースではネイティブプリンタドライバ５６で処理できないデータがターミナルサーバ１に戻るケースが多くなるため、そこで速度低下することをクライアント端末６〜８上に印刷用キャッシュデータ６０を持つことによって抑制する。
【００７１】
＜キャッシュデータの構成＞
図７は、ターミナルサーバ１にてキャッシュモードプリンタドライバ５２が操作するキャッシュデータ５４の内容について示した図である。キャッシュデータ５４は、本発明の管理手段の適用例となる構成である。
【００７２】
図７において、Ｄ７０１はキャッシュデータ全体を示す。キャッシュデータは仮想プリンタ毎に１つずつ存在し、クライアント端末６の接続、つまり仮想プリンタの生成に伴ってＲＡＭ１２上に生成され、クライアント端末６の切断に伴う仮想プリンタの削除に伴ってＲＡＭ１２から消去される。
【００７３】
Ｄ７０１はプリンタ毎に存在するためプリンタ識別子をキャッシュデータに付与し、それを仮想プリンタと関連付けて管理する。
【００７４】
Ｄ７０２は、キャッシュデータＤ７０１を構成する各レコードである。どのような能力情報に対する要求かを示す命令（ＤＤＩ）があり、ここで命令はプリンタの能力情報を要求する命令であり、パラメータは要求する情報の種類を示す。この命令とパラメータの組み合わせによって、一意に戻り値と付加情報が決定される。
【００７５】
Ｄ７０３は、キャッシュデータＤ７０１に格納するデータであり、仮想プリンタの初期化時にキャッシュモードプリンタドライバ５２がクライアント端末６側のネイティブプリンタドライバ５６に対して一斉に全ての問い合わせを行い、その内容をＤ７０３の形式で得てこれをＤ７０１内にＤ７０２として格納する。よって、クライアント端末の接続時（仮想プリンタ生成時）には一通りのデータがキャッシュデータＤ７０１に揃っていることになる。
【００７６】
Ｄ７０４は、ＧＤＩ５１からプリンタの能力情報の問い合わせが来た際にキャッシュモードプリンタドライバ５２がキャッシュデータ５４を検索するためのデータ形式である。Ｄ７０５は、ＧＤＩ５１からのプリンタの能力情報の問い合わせに対して、キャッシュモードプリンタドライバ５２が返すデータの形式である。
【００７７】
＜キャッシュデータに関連する処理＞
図８〜図１０は、キャッシュデータを操作・参照するための処理を示すフローチャートである。図８は、キャッシュモードプリンタドライバ５２においてプリンタの能力情報を格納する処理を示しており、図４のＳ１６１に対応する処理である。
【００７８】
キャッシュモードプリンタドライバ５２は、Ｓ８０１にてプリンタの能力を要求する命令（ＤＤＩ）とパラメータの組み合わせをクライアント端末６のネイティブプリンタドライバ５６に送信する。
【００７９】
続いて、キャッシュモードプリンタドライバ５２は、Ｓ８０２にてＳ８０１の結果としてネイティブプリンタドライバ５６から戻り値やデータを受信する。命令によっては戻り値が結果を示すこともあればデータが結果を示すこともあるため、両方ともに格納する。このようにクライアント端末６からターミナルサーバ１に対して戻り値やデータを送信する処理は、本発明の送信ステップＳダンの一処理例である。
【００８０】
続いて、キャッシュモードプリンタドライバ５２は、Ｓ８０３で得られた戻り値とデータを命令及びパラメータと組み合わせて図７のＤ７０３の形式にしてキャッシュデータ５４に格納する。
【００８１】
続いて、キャッシュモードプリンタドライバ５２は、Ｓ８０４で全ての命令とパラメータの組み合わせについて格納したかを確認し、全ての命令とパラメータの組み合わせを格納するまで処理を繰り返す。
【００８２】
図９は、キャッシュモードプリンタドライバ５２において、ＧＤＩ５１からプリンタの能力情報について問い合わせを受けた際の処理を示している。
【００８３】
キャッシュモードプリンタドライバ５２は、Ｓ９００にてＧＤＩ５１から印刷開始の指示を受けるまで待機する。
【００８４】
続いて、キャッシュモードプリンタドライバ５２は、Ｓ９０１にてＧＤＩ５１から印刷開始に伴い、プリンタの能力を要求する命令（ＤＤＩ）とパラメータの組み合わせを受信する。
【００８５】
続いて、キャッシュモードプリンタドライバ５２は、Ｓ９０２にてキャッシュデータを命令とパラメータの組み合わせをキーに検索する。例えばＤ７０４が検索用のデータであり、プリンタの能力要求をする命令と「カラー印刷可否」という能力情報のパラメータの組み合わせをキーとして検索している。基本的には、ここで必ずキャッシュデータには該当データが入っているはずであるが、エラー処理も考慮して、キャッシュモードプリンタドライバ５２は、Ｓ９０３にてキャッシュデータが実際に存在するかを確認する。
【００８６】
実際にキャッシュデータに該当データが存在する場合には、キャッシュモードプリンタドライバ５２は、Ｓ９０４にてキャッシュから読み込んだデータをデータ形式Ｄ７０５にてＧＤＩ５１に送信する。
【００８７】
また仮にもキャッシュデータ５４に該当データが存在しなかった場合、キャッシュモードプリンタドライバ５２は、Ｓ９０５にて実際にクライアント端末６上のネイティブドライバ５６に問い合わせを行い、得られた結果をやはりＤ７０５の形式のデータでＧＤＩ５１に送信する。
【００８８】
この一連の能力問合せの後で、キャッシュモードプリンタドライバ５２は、Ｓ９０６にてＧＤＩ５１が実際の描画要求を開始するので、ここでＧＤＩ５１から描画命令やそのパラメータ（座標等）を受信する。
【００８９】
Ｓ９０７では、キャッシュモードプリンタドライバ５２は、Ｓ９０６にて得られた描画命令の種類やパラメータをクライアント端末６側のＧＤＩ擬装モジュール５５に転送する目的で通信モジュール５３に送信する。
【００９０】
図１０は、プリンタの能力情報が更新されたときの処理を示すフローチャートである。Ｓ１０００〜Ｓ１００１−２まではクライアント端末６上のネイティブプリンタドライバ５６での処理であり、Ｓ１００２及びＳ１００３はターミナルサーバ１上のキャッシュモードプリンタドライバ５２での処理である。
【００９１】
ネイティブプリンタドライバ５６は、Ｓ１０００にてクライアント端末６上のプリンタ設定が変更になるのを待ち受ける。ここでのプリンタ設定は印刷設定ではなく、プリンタの機器設定である。例えば両面印刷を可能とするようなオプション機器をプリンタに装着することにより、プリンタが両面印刷可能になる場合、オプション機器を装着した後にクライアント端末６上のプリンタの設定を変更し、機器装着状態の旨を設定することによりプリンタは両面印刷可能がなる。
【００９２】
ネイティブプリンタドライバ５６は、Ｓ１００１にてＳ１０００のプリンタ設定変更を受けてクライアント端末６上のプリンタの能力情報を更新する。
【００９３】
このような能力情報の更新が発生した場合、Ｓ１００１−２にてネイティブプリンタドライバ５６が更新情報をキャッシュモードプリンタドライバ５２に送信する。
【００９４】
キャッシュモードプリンタドライバ５２は、Ｓ１００２にて更新情報を受信する。続いて、キャッシュモードプリンタドライバ５２は、Ｓ１００３にて更新情報に応じてキャッシュデータ５４の更新を行う。なお、Ｓ１００２は、本発明の第３の受信手段、Ｓ１００３は、本発明の更新手段の一処理例である。
【００９５】
＜印刷データキャッシュの構成＞
図１１は、クライアント端末６にてＧＤＩ擬装モジュール５５から操作・参照される印刷用キャッシュデータ６０のデータ構造を示す図である。
【００９６】
Ｄ１１０１は、印刷用キャッシュデータ全体を示している。印刷用キャッシュデータはクライアント端末６上のＲＡＭ１２に存在する揮発性データであり、１回の印刷処理毎に１つの印刷用キャッシュデータが生成される。印刷処理が終了すると破棄される。データは印刷ジョブの識別子をキーとして管理される。
【００９７】
Ｄ１１０２は、印刷用キャッシュデータの中のレコードである。印刷用キャッシュデータはＧＤＩ擬装モジュール５５からネイティブプリンタドライバ５６に対して描画命令を発行した際にネイティブプリンタドライバ５６で処理できないために再描画要求のあったデータをキャッシュする。
【００９８】
ここでの描画命令（ＤＤＩ）は、当初のネイティブプリンタドライバ５６が処理できない命令であり、そのパラメータもコピーして同じく保持する。
【００９９】
Ｄ１１０３は、ネイティブプリンタドライバ５６からＧＤＩ擬装モジュール５５に対して再描画要求時に与えられるデータである。ＧＤＩ擬装モジュール５５は、この描画命令とパラメータに一致するデータが印刷用キャッシュデータになければ、Ｄ１１０３の形式でターミナルサーバ１のＧＤＩ５１に送信して再描画を要求する。
【０１００】
Ｄ１１０４は、ＧＤＩ５１への再描画要求の結果、返ってきた新たな描画命令とパラメータである。ＧＤＩ５１から返ってきた描画命令とパラメータをＧＤＩ擬装モジュール５５が送信した描画命令とパラメータの組み合わせ（Ｄ１１０３）と組み合わせてＤ１１０２という形で印刷用キャッシュデータに格納する。
【０１０１】
＜印刷用キャッシュデータに関連する処理＞
図１２は、ＧＤＩ擬装モジュール５５が印刷処理時に印刷用キャッシュデータをどのように処理するかを示したフローチャートである。図１２のうち、Ｓ１２０１、Ｓ１２０２、Ｓ１２０７−２、Ｓ１２０８〜Ｓ１２１２は、ＧＤＩ擬装モジュール５５により行われる処理である。Ｓ１２０３〜Ｓ１２０５及びＳ１２０７はネイティブプリンタドライバ５６で行われる処理である。Ｓ１２０６はクライアント端末６上のスプーラモジュール５７で行われる処理である。
【０１０２】
ＧＤＩ擬装モジュール５５は、Ｓ１２０１にてターミナルサーバ１から描画命令とパラメータを受信する。これは、Ｓ９０７にてキャッシュモードプリンタドライバ５２がＧＤＩ擬装モジュール５５へ描画命令を転送した処理に続く処理である。当該描画命令は、本発明の第１の描画命令の適用例となる構成である。また、Ｓ９０７は、本発明の第１の送信手段の一処理例であり、Ｓ９０７において、クライアント端末が当該描画命令を受信する処理は、本発明の受信手段の一処理例である。さらに、当該描画命令をターミナルサーバ１が生成する処理は、本発明の第１の生成手段の一処理例である。
【０１０３】
続いて、ＧＤＩ擬装モジュール５５は、Ｓ１２０２にて、得られた命令とパラメータをネイティブプリンタドライバ５６に送信する。
【０１０４】
続いて、ネイティブプリンタドライバ５６は、Ｓ１２０３にて、受信した命令とパラメータを元にＰＤＬへの変換処理を試みる。次に、ネイティブプリンタドライバ５６は、Ｓ１２０４にて、ＰＤＬ、即ちプリンタが解釈可能な言語への変換が実施できたかを確認する。ＰＤＬに変換できた場合、ネイティブプリンタドライバ５６は、Ｓ１２０５にてＰＤＬをスプーラモジュール５７に送信する。スプーラモジュール５７は、Ｓ１２０６にてこれをプリンタ４に転送する。
【０１０５】
仮にネイティブプリンタドライバ５６でＰＤＬへの変換処理ができなかった場合、描画要求の内容が高度であったとしてＳ１２０７にてネイティブプリンタドライバ５６からＧＤＩ５１に対して再描画要求がなされる。
【０１０６】
続いて、ＧＤＩ擬装モジュール５５は、Ｓ１２０７−２にて、Ｓ１２０７で行われたクライアント端末６上のＧＤＩ５９への再描画要求をフックしてその内容を取得する。
【０１０７】
続いて、ＧＤＩ擬装モジュール５５は、Ｓ１２０８にて、印刷用キャッシュデータ６０内において、データ形式Ｄ１１０３のデータをキーとして検索を行う。Ｓ１２０８は、本発明の検索手段の一処理例である。
【０１０８】
続いて、ＧＤＩ擬装モジュール５５は、Ｓ１２０９にて、検索条件に合致するデータ形式Ｄ１１０２のデータを存在するか否かを判定する。Ｓ１２０９にて検索条件に合致するデータ形式Ｄ１１０２のデータが存在する場合、ＧＤＩ擬装モジュール５５は、合致したデータをＤ１１０４形式にてネイティブプリンタドライバ５６に送信する。これにより、ネイティブプリンタドライバ５６は再度Ｓ１２０３の描画処理を実施することができる。なお、Ｓ１２０９は、本発明の判定手段の一処理例である。Ｓ１２０８とＳ１２０９の処理順序は入れ替えてもよい。また、ＧＤＩ擬装モジュール５５が、合致したデータをＤ１１０４形式にてネイティブプリンタドライバ５６に送信する処理は、本発明の提供手段の一処理例である。
【０１０９】
一方、印刷用キャッシュデータ６０が存在しない場合、ＧＤＩ擬装モジュール５５は、Ｓ１２１０にてターミナルサーバ１のＧＤＩ５１へ再描画要求を転送する。このように転送された再描画要求をターミナルサーバ１が受信する処理は、本発明の第１の受信手段の一処理例である。
【０１１０】
その結果、再度低レベルになった描画命令がターミナルサーバ１から送信され、ＧＤＩ擬装モジュール５５は、Ｓ１２１１にてこれを受信する。なお、再描画要求に応じて低レベルとなった描画命令をターミナルサーバ１が生成する処理は、本発明の第２の生成手段の一処理例であり、ターミナルサーバ１が当該描画命令を送信する処理は、本発明の第２の送信手段の一処理例である。続いて、ＧＤＩ擬装モジュール５５は、Ｓ１２１２にてデータをＤ１１０２の形式にして印刷用キャッシュデータに格納した後、ネイティブプリンタドライバ５６に送信する。
【０１１１】
＜ターミナルサーバ１内の構成済みプリンタドライバ情報＞
図１３は、ターミナルサーバ１内にて構成済みのプリンタドライバの情報を格納しているデータを示す図である。
【０１１２】
本実施形態においては、ターミナルサーバ１内には、最低限でも汎用プリンタドライバ（図１３内の「Citrix Universal Driver」）とキャッシュモードプリンタドライバ（同じく「Cash mode Driver」）は構成済みとなっている。この他にターミナルサーバ１の管理者がユーザの要請に応じて、ネイティブプリンタドライバ５６（同じく上記２つ以外のプリンタドライバ）を構成する。
【０１１３】
ターミナルサーバ１は、Ｓ１５２にてネイティブプリンタドライバ５６の有無を検索する場合、このデータ内を検索する。検索のキーとしては、プリンタドライバ名称と環境及びＯＳの組み合わせとなり、三者がクライアント端末で利用している論理プリンタのプリンタドライバと一致する場合にはネイティブプリンタドライバ５６が用いられる。
【０１１４】
＜ターミナルサーバ／クライアント端末内の一時データ＞
図１４及び図１５では、接続情報等を管理するための一時データについて示している。図１４は、ターミナルサーバ１内にて接続しているユーザ、クライアント端末及びプリンタ４についての情報を格納しているデータを示す図である。
【０１１５】
ユーザ名とクライアント端末の名称は紐付けて格納され、それに対してクライアント端末上に構成されている複数の論理プリンタに対応する仮想論理プリンタ情報が格納される。
【０１１６】
本データはＳ１６２にて生成され、ユーザがクライアント端末をターミナルサーバ１から切断した時点で削除が行われる。
【０１１７】
図１５は、図１４と同様の仮想論理プリンタ情報をクライアント端末内に保持する際の情報を格納しているデータを示す図である。
【０１１８】
Ｓ１６２にてターミナルサーバ１内で仮想論理プリンタが構成された後に仮想論理プリンタの名称がＳ１６３にてクライアント端末側に送信される。クライアント端末６ではＳ１０９でこれを受信した後に、Ｓ１１０で図１５に示すデータを生成して格納する。
【０１１９】
上述した実施形態によれば、ターミナルサーバ１上には汎用プリンタドライバのみを１度だけ構成するだけでよく、従来の汎用プリンタドライバを利用する方法と同様にターミナルサーバ１の管理者の管理の手間が軽減される。一方で、クライアント端末６〜８上には、製品版のプリンタドライバ（ネイティブプリンタドライバ）を構成した上で、ターミナルサーバ１に構成した仮想プリンタは、クライアント端末６〜８に構成されているプリンタドライバの機能を十全に利用することできることから機能性も損なわずに済む。特に同じ構内にターミナルサーバ１とクライアント端末６〜８がある環境では、高速なネットワークにより応答速度が向上するため、印刷処理速度が速くなる。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施形態に係るネットワーク印刷システムの構成を示すシステム図である。
【図２】ターミナルサーバ及びクライアント端末となるコンピュータの機器構成を示すブロック図である。
【図３】ターミナルサーバにて動作しているターミナルサービスプログラムを概念的に示す図である。
【図４】クライアント端末がターミナルサーバに接続した際の処理の流れを示すフローチャートである。
【図５】ターミナルサーバとクライアント端末における一連の処理を実行するためのモジュール構成とその処理の流れを示した図である。
【図６】ＭｅｔａＦｒａｍｅの処理における処理の流れを示した図である。
【図７】ターミナルサーバにてキャッシュモードプリンタドライバが操作するキャッシュデータの内容について示した図である。
【図８】キャッシュモードプリンタドライバにおいてプリンタの能力情報を格納する処理の流れを示すフローチャートである。
【図９】キャッシュモードプリンタドライバにおいて、ＧＤＩからプリンタの能力情報について問い合わせを受けた際の処理を示すフローチャートである。
【図１０】プリンタの能力情報が更新されたときの処理を示すフローチャートである。
【図１１】クライアント端末にてＧＤＩ擬装モジュールから操作・参照される印刷用キャッシュデータのデータ構造を示す図である。
【図１２】ＧＤＩ擬装モジュールが印刷処理時に印刷用キャッシュデータをどのように処理するかを示したフローチャートである。
【図１３】ターミナルサーバ内にて構成済みのプリンタドライバの情報を格納しているデータを示す図である。
【図１４】ターミナルサーバ内にて接続しているユーザ、クライアント端末及びプリンタについての情報を格納しているデータを示す図である。
【図１５】図１４と同様の仮想論理プリンタ情報をクライアント端末内に保持する際の情報を格納しているデータを示す図である。
【符号の説明】
【０１２１】
１  ターミナルサーバ
２、３  ネットワーク
４、５  プリンタ
６、７、８  クライアント端末
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＨＤＤ
１４  ＣＤ−ＲＯＭドライブ
１５  システムバス
１６、１７  入力用インタフェース
１８  出力用インタフェース
１９  通信用インタフェース
２０  マウス
２１  キーボード
２２  ディスプレイ
３１  ＲＡＭ内のシステム共通のセッション領域
３２  ＲＡＭ内のユーザＡが占有するセッション領域
３３  ＲＡＭ内のユーザＺが占有するセッション領域
３４  ＯＳのシステムファイル
３５  周辺機器類のデバイスドライバファイル
３６、３８  アプリケーションプログラム
３７、３９  ユーザデータ
４０  ＨＤＤに格納されているＯＳのシステムファイル
４１  ＨＤＤに格納されているデバイスドライバファイル
４２  ＨＤＤに格納されているアプリケーションプログラム
４３  ＨＤＤ内のデータ格納用領域
４４、４５  ＨＤＤ内のユーザデータ
５１、５９  ＯＳのグラフィックス担当モジュール（ＧＤＩ）
５２  キャッシュモードプリンタドライバ
５３  通信モジュール
５４  キャッシュデータ
５５  ＧＤＩ擬装モジュール
５６  ネイティブプリンタドライバ
５７  ＯＳのスプーラモジュール
５８  ＥＭＦファイル
６０  印刷用キャッシュデータ
【図１】
2009181344.tif 000003
【図２】
2009181344.tif 000004
【図３】
2009181344.tif 000005
【図４】
2009181344.tif 000006
【図５】
2009181344.tif 000007
【図６】
2009181344.tif 000008
【図７】
2009181344.tif 000009
【図８】
2009181344.tif 000010
【図９】
2009181344.tif 000011
【図１０】
2009181344.tif 000012
【図１１】
2009181344.tif 000013
【図１２】
2009181344.tif 000014
【図１３】
2009181344.tif 000015
【図１４】
2009181344.tif 000016
【図１５】
2009181344.tif 000017