(57)【要約】【課題】サーバ・ベースド・コンピューティング環境環境において、サーバ管理者等によるプリンタドライバのインストール作業を発生させることなく、またユーザに意識させることもなく、クライアントと同一プリンタドライバ（バージョンも含めて同一）をサーバ装置にもインストールさせること。【解決手段】サーバ用プリンタ監視プログラム５１３ｘが、ターミナルサービス２１１ｘにログオンしているクライアント２００ａにインストールされているプリンタドライバの情報を取得し、このプリンタドライバの情報に基づいて、クライアント２００ａにインストールされ且つサーバ２００ｘ自身にインストールされていないプリンタドライバを特定し、該特定したプリンタドライバをサーバ２００ｘ自身にインストールし、対応する論理プリンタを該論理プリンタの出力先をクライアント２００ａ上の同一のプリンタドライバの論理プリンタとして作成する構成を特徴とする。【選択図】図２
2006155288.tif 000002
【特許請求の範囲】
【請求項１】
サーバ・ベースド・コンピューティング環境を提供するサーバ装置であって、
前記サーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得する取得手段と、
前記取得手段により取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とを比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定する特定手段と、
前記特定手段により特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するインストール手段と、
を有することを特徴とするサーバ装置。
【請求項２】
前記取得手段により取得される前記プリンタドライバの情報は、プリンタドライバのバージョン情報を含むものであり、
前記特定手段は、プリンタドライバ名が同一であってもバージョン情報が異なる場合には異なるプリンタドライバとして、前記リモートクライアント装置に登録され且つサーバ装置自身に登録されていないプリンタドライバを特定することを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記インストール手段は、前記特定手段により特定されたプリンタドライバをサーバ装置自身にインストールする際に、プリンタドライバ名が同一でバージョン情報が異なるプリンタドライバがサーバ装置自身にインストール済みである場合には、前記特定手段により特定されたプリンタドライバのプリンタドライバ名を別名に擬態してインストールすることを特徴とする請求項１又は２記載のサーバ装置。
【請求項４】
前記取得手段は、前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオンした際に、前記リモートクライアント装置にインストールされているプリンタドライバの情報を取得することを特徴とする請求項１〜３のいずれかに記載のサーバ装置。
【請求項５】
前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオフした際に、前記インストール手段により作成された論理プリンタを削除する削除手段を有することを特徴とする請求項４記載のサーバ装置。
【請求項６】
前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオフした際に、前記インストール手段にインストールされたプリンタドライバと、該プリンタドライバに対応して作成された論理プリンタとを削除する削除手段を有することを特徴とする請求項４記載のサーバ装置。
【請求項７】
サーバ・ベースド・コンピューティング環境を提供するサーバ装置におけるプリンタ設定方法であって、
前記サーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得する取得ステップと、
該取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とを比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定する特定ステップと、
該特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するインストールステップと、
を有することを特徴とするプリンタ設定方法。
【請求項８】
請求項７に記載されたプリンタ設定方法を実行するためのプログラム。
【請求項９】
請求項７に記載されたプリンタ設定方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ・ベースド・コンピューティング環境を提供可能なサーバ装置およびプリンタ設定方法およびプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来、パーソナルコンピュータに導入したクライアントアプリケーションの処理よりサーバに格納されたデータを参照／更新する「クライアント／サーバ（Ｃ／Ｓ）型システム」は、クライアントアプリケーションの配布、バージョンアップ等に多大な管理コストがかかることや、サーバ・クライアント間で多量のデータをやりとりするため低速なＷＡＮ環境でのレスポンス不良等の問題点を抱えていた。
【０００３】
このようなＣ／Ｓ型システムの問題点を解決すべく、各々のパーソナルコンピュータで処理していたクライアントアプリケーションプログラムをサーバで集中管理するサーバ・ベースド・コンピューティングという技術が確立されつつある。
【０００４】
その中の一つが、Ｍｉｃｒｏｓｏｆｔ社のサーバ系のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム（Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ  Ｓｅｒｖｅｒ／２０００Ｓｅｒｖｅｒ／Ｓｅｒｖｅｒ２００３等）で提供するターミナルサービス機能である。また、ターミナルサービス機能を利用したネットワークシステムの事をターミナルサービスネットワークシステムと言う。
【０００５】
ターミナルサービス機能とは、クライアントＰＣがサーバにログインする事によりクライアントがサーバ内の資源（ＣＰＵ，メモリ，記憶装置，ソフトウェア，データ等）を利用できるようになるという機能である。この時クライアントＰＣは、出入力端末として存在し、クライアントＰＣに接続されたキーボードやマウスの入力情報をサーバに送信したり、サーバの仮想デスクトップ画面や動作しているアプリケーションの情報をクライアントＰＣの画面上に表示する。
【０００６】
例えば、クライアントＰＣ上にＭｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）がインストールされていなくても、クライアントユーザはターミナルサービスを利用する事により、Ｅｘｃｅｌ（登録商標）形式のファイルの閲覧、編集が可能というわけである。
【０００７】
しかし、このようなターミナルサービスシステムを利用した場合、ログイン中のクライアントＰＣからの印刷は通常の印刷とは異なる。
【０００８】
以下、ターミナルサービスを利用したローカルプリントへの印刷について、ターミナルサービスを利用しない場合と比較して説明する。
【０００９】
まず、図１７を参照して、ターミナルサービスを利用しない場合のローカルプリンタへの印刷について説明する。
【００１０】
図１７は、従来のローカル印刷の実態を表すハードウェア構成とネットワーク構成の一例を示すブロック図である。
【００１１】
図１７において、１００はホストコンピュータ（ホストＰＣ）を表している。ホストコンピュータ１００は、ＣＰＵ１０５と、ランダムアクセスメモリ（ＲＡＭ）１０１と、ディスプレイ１０４と、記憶媒体（ＨＤＤ）１０６と、入力装置１０７とネットワークアダプタ１０８とを有している。
【００１２】
ＲＡＭ１０１上には、オペレーティングシステム（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ（ＯＳ））１０２とアプリケーション１０３がロードされ、ＣＰＵ１０５により実行されている。このＯＳ１０２内には、プリンタドライバ１０９〜１１１が存在しており、論理プリンタ１１２〜１１４が登録されている。
【００１３】
論理プリンタ１１２〜１１４の実体は、プリンタドライバ１０９〜１１１であり、機能はプリンタドライバ１０９〜１１１に依存する。また、プリンタドライバの制御を行うのはＯＳ１０２であり、その処理はＣＰＵ１０５が行う。
【００１４】
また、アリケーション１０３は、ドキュメントや図等を印刷する機能を持つ。一般に、アプリケーションは、プリンタドライバに印刷ジョブを送信し、プリンタドライバが印刷処理を行う。この時、アプリケーションは、同一ＯＳ上に存在するプリンタドライバにしかジョブを投げる事が出来ない。なぜなら、アプリケーションとプリンタドライバは、同一のＯＳにより制御を受け、ＯＳの機能を用いて印刷を行うからである。
【００１５】
今、ＲＡＭ１０１からアプリケーション１０３が読み込まれＯＳ１０２上に制御されているとする。アプリケーション１０３が作成したドキュメントを印刷する場合、アプリケーション１０３は、プリンタドライバ１０９〜１１１のいずれかに印刷を要求し、印刷データを送信する。プリンタドライバ１０９〜１１１によって解析されたデータは印刷可能な形態となり、物理プリンタ１１５上に印刷される。
【００１６】
以上がローカルプリンタへの印刷の手順である。ところが、ターミナルサービス環境ではこのような手順では、クライアントのローカルプリンタへの印刷ができない。
【００１７】
何故なら、ターミナルサービスネットワーク上では、クライアントユーザが操作するアプリケーションは、実際にはサーバ上で処理されている為、アプリケーションは、印刷要求を同一ＯＳ上のプリンタドライバ（即ち、サーバ上のプリンタドライバ）にしか発行できない。これでは、クライアントとサーバとの間で物理的距離がある場合に、クライアントユーザは、印刷物を取得出来ないという問題点があった。
【００１８】
そこで、現状ではターミナルサービス環境において、サーバ側で作成されたドキュメントをクライアントのプリンタで印刷するためのリダイレクトプリントという方法が行われている。以下、図１８を用いて、このリダイレクトプリントの様子を説明する。
【００１９】
図１８は、従来のネットワークリダイレクト印刷の実態を表すハードウェア構成とネットワーク構成の一例を示すブロック図である。但し、クライアントがセッション状態にあることを前提としている。
【００２０】
図１８において、２００ｘはサーバコンピュータ（サーバ）を表している。サーバ２００ｘは、ＣＰＵ２０３ｘと、記憶媒体（ＨＤＤ）２０５ｘと、ランダムアクセスメモリ（ＲＡＭ）２０１ｘと、ネットワークアダプタ２０２ｘを有している。
【００２１】
このＲＡＭ２０１ｘ上には、オペレーティングシステム（ＯＳ）２１０ｘと、ターミナルサービス２１１ｘと、アプリケーション２１２ｘが存在する。このアプリケーション２１２ｘは、ドキュメントを作成し、印刷をする機能を持つ。なお、ターミナルサーバでは特に入力装置とディスプレイを必要としないため、サーバ２００ｘ上には、入力装置２０４ｘ，ディスプレイは無くてもよい。
【００２２】
２００ａはクライアントコンピュータ（クライアント）を表している。クライアント２００ａは、ＣＰＵ２０３ａと、ディスプレイ２０２ａと、入力装置２０５ａと、記憶媒体（ＨＤＤ）２０４ａと、ランダムアクセスメモリ（ＲＡＭ）２０１ａと、ネットワークアダプタ２０６ａを有している。このＲＡＭ２０１ａ上には、オペレーティングシステム（ＯＳ）２１０ａと、ターミナルサービスクライアント２１１ａが存在する。
【００２３】
サーバ２００ｘとクライアント２００ａはネットワーク２００ｒによって通信可能に接続されている。
【００２４】
以下、ターミナルサービスクライアント２１１ａがターミナルサービス２１１ｘへ接続前の構成について説明する。
【００２５】
クライアント２００ａのＯＳ２１０ａ内には、プリンタメーカの提供するプリンタドライバ２３０ａ，２５０ａが登録されている。また、ＯＳ２１０ａ内には、プリンタドライバ２３０ａを実体とする論理プリンタ２３１ａが登録され、プリンタドライバ２５０ａを実体とする論理プリンタ２５１ａが登録されている。これら論理プリンタ２３１ａ，２５１ａの出力先ポートは、実際のプリンタデバイスに接続されており、それぞれ印刷が可能な状態である。なお、プリンタドライバの制御は、ＯＳ２１０ａによって行われ、その処理はＣＰＵ２０３ａが行う。
【００２６】
一方、サーバ２００ｘのＯＳ２１０ｘ内には、プリンタメーカの提供するプリンタドライバ２３０ｘとＯＳに同梱されているユニドライバ２５０ｘが登録されている。プリンタドライバの制御は、ＯＳ２１０ｘによって行われ、その処理はＣＰＵ２０３ｘが行う。
【００２７】
次に、ターミナルサービスクライアント接続時の構成について説明する。
【００２８】
まず、ターミナルサービスクライアント２１１ａがターミナルサービス２１１ｘに接続されると、サーバ側では、ＣＰＵ２０３ｘにより、ＲＡＭ２０１ｘから読み込まれ実行されるターミナルサービス２１１ｘが、リダイレクト用の論理プリンタ２３１ｘ，２５１ｘを作成する。
【００２９】
この時、ターミナルサービス２１１ｘは、クライアント上に存在する全ての論理プリンタの情報を取得する。該取得した論理プリンタの情報の中には、論理プリンタ名、プリンタドライバ名も含まれる。これらの情報を元に、ターミナルサービス２１１ｘは、自動作成が許可されている論理プリンタをサーバＯＳ２１０ｘ上に自動作成する（ユーザの作成指示によらずターミナルサービス２１１ｘが作成する）。なお、この自動作成された論理プリンタを、自動作成プリンタやオートクリエイテッドプリンタ等という。
【００３０】
該自動作成された論理プリンタは、ターミナルサービス２１１ｘにより、プリンタドライバ名をキーとしてサーバＯＳ２１０ｘ上に存在するプリンタドライバ名と同一のものを検索し、同一と判断されたプリンタドライバを実体として作成される。
【００３１】
また、全ての自動作成された論理プリンタの出力先ポートは、クライアント上に存在する同じプリンタドライバ名を持つ論理プリンタに設定されており、リダイレクト印刷が可能なようになっている。なお、このようにサーバ側の自動作成論理プリンタの出力先をクライアントの論理プリンタに設定してリダイレクト印刷を可能にする作業は「マッピング」と言われている。
【００３２】
上述の自動作成された論理プリンタは、図１８で言うところの論理プリンタ２３１ｘ，２５１ｘに相当し、この論理プリンタ２３１ｘ，２５１ｘは、プリンタドライバ２３０ｘ，ユニドライバ２５０ｘを実体として持つ。なお、プリンタドライバ２３０ｘは、各プリンタメーカが提供するプログラムであり、ユニドライバ２５０ｘはＯＳが提供するプログラムである。また、一般的にＯＳが提供するプリンタドライバは、最小限の機能しかもたず、プリンタメーカが提供するものよりも機能面で劣る。
【００３３】
上述した論理プリンタ２３１ｘ，２５１ｘのマッピングは、２００ｍ，２０１ｍに相当する。これらは物理的に接続されているのではなく、論理的に関連付けが行われている事を意味している。
【００３４】
上記のようなリダイレクトプリントでは、サーバのアプリケーション２１２ｘで作成されたドキュメントの印刷データは、一旦はサーバ２００ｘの論理プリンタ２３１ｘ，２５１ｘに送信され、その後にそれぞれに関連付けられたクライアント２００ａの論理プリンタ２３１ａ，２５１ａに転送される事によって、クライアント２００ａ側の物理プリンタ２０１ｒからの印刷が可能となる。
【００３５】
以上のような論理プリンタを自動作成してマッピングを行う機能を備えたミドルウェアとして、Ｃｉｔｒｉｘ社のＭｅｔａＦｒａｍｅ（登録商標）などが挙げられる。
【００３６】
また、このような論理プリンタを使った印刷に関連して特開２００４-７８２８１，特開２００４-７８２８２などが提案されている。
【特許文献１】特開２００４−７８２８１号公報
【特許文献２】特開２００４−７８２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３７】
しかしながら、上記従来のリダイレクトプリントでは、サーバとクライアントとの間に、同一プリンタドライバがインストールされている事を前提としており、幾つかの問題を抱えている。
【００３８】
上述のように、リダイレクトプリントを可能にするマッピング作業は、サーバとクライアントの双方のプリンタドライバ名をキーに行われる。この時、互いのドライババージョンは確認されず、プリンタドライバ名だけをキーにしてマッピングを行う為、当然バージョンの違う論理プリンタ同士がマッピングされる事があった。
【００３９】
また、サーバ内にクライアントと同じ名前のプリンタドライバが存在しない場合は、ユニドライバと言われる最小限の機能しかもたないＯＳ内蔵のプリンタドライバ（上述のユニドライバ２５０ｘ）で作成された論理プリンタとマッピングを行う場合と、マッピングされない場合がある。
【００４０】
以下、実際にユニドライバやバージョンの違うドライバから作成された論理プリンタとマッピングされる場合に発生する障害について説明する。
【００４１】
まず、ターミナルサービスは、サーバ上に同名のプリンタドライバが見つからない場合、ユニドライバを用いて論理プリンタを作成し、マッピングを行う場合がある。これは図１８に示したマッピング２０１ｍに相当する。
【００４２】
その為、クライアント２００ａには、最新のプリンタドライバ２５０ａがインストールされているにも関わらず、サーバログオン時には最小限の機能でしか印刷ができないという事が起こりうる。また、マッピングが行われない場合もある。この場合、希望のプリンタで印刷が出来ないという問題が起こる。
【００４３】
その為に、問題が発生する度に、サーバ管理者が呼ばれ、サーバマシンに最新のプリンタドライバをインストールするという作業が発生する。また、インストール作業を人間に頼っている為、その人物（サーバ管理者）が不在であった場合、インストール作業は行われず、クライアントユーザは延々と待たされる事になる。
【００４４】
また、クライアントユーザは、サーバへの最新のプリンタドライバのインストールが終わると共に、セッションの再接続をする必要がある。これは、例えサーバに最新のプリンタドライバをインストールしたとしても、クライアントユーザが再接続し、ターミナルサービスのマッピング機能を再実行させない限り、マッピングが行われず、結果として思い通りの印刷が出来ないままであるためである。
【００４５】
また、サーバ２００ｘのプリンタドライバ２３０ｘよりクライアント２００ａのプリンタドライバ２３０ａのバージョンが高い場合で、クライアントユーザがサーバアプリケーション２１２ｘより印刷を行う時、クライアントユーザから見えるプリンタプロパティ画面は、バージョンの低い自動作成された論理プリンタ２３１ｘのプロパティ画面である。プリンタプロパティ画面の一例を図１９に示す。
【００４６】
その為クライアントユーザは、自身のプリンタドライバ２３０ａの機能を最大限生かす事が出来ないという問題が起こる。この場合にも、ユニドライバ２５０ｘでマッピングされる問題と同様、問題が発生する度にサーバ管理者が呼ばれ、クライアントユーザは再接続の手間が発生する。
【００４７】
以上説明したような各種の問題が発生する事により、人件費増大に伴うコスト増大、再接続作業が頻繁化することによるネットワークトラフィックの増大といったデメリットを負う事になる。これらデメリットはローコスト化、ネットワーク高速化を目指す企業にとって痛手となる可能性があり、上記問題点の解決が望まれている。
【００４８】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、サーバ装置により提供されるサーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得し、該取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とをバージョン情報も含めて比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定し、該特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成することにより、特に、サーバ側論理プリンタをクライアント側論理プリンタへマッピングする機能を持ち、ユーザがサーバのプリンタドライバをインストール、更新できないターミナルサービス環境において、人（サーバ管理者等）によるプリンタドライバのインストール作業を発生させることなく、またユーザに意識させることもなく、クライアントと同一プリンタドライバ（バージョンも含めて同一）をサーバ装置にもインストールさせて、クライアントユーザは、サーバ装置とクライアント装置との間で、プリンタドライバのバージョンの違いを意識することなく、クライアント装置と同じバージョンのプリンタドライバを使って、ローカルプリンタによりユーザの所望の印刷を行うことができるサーバ装置およびプリンタ設定方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【００４９】
本発明は、サーバ・ベースド・コンピューティング環境を提供するサーバ装置であって、前記サーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得する取得手段と、前記取得手段により取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とを比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定する特定手段と、前記特定手段により特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するインストール手段とを有することを特徴とする。
【発明の効果】
【００５０】
本発明によれば、サーバ装置により提供されるサーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得し、該取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とをバージョン情報も含めて比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定し、該特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するので、サーバ、クライアント間でプリンタドライバのバージョンの違いを意識することなく、クライアントと同じバージョンのプリンタドライバを使っての思い通りの印刷が可能となる。特に、ターミナルサービス環境ではサーバ側論理プリンタをクライアント側論理プリンタへマッピングする機能を持つ為、ターミナルサービス環境において特に効果を奏する。
【発明を実施するための最良の形態】
【００５１】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００５２】
図１は、本発明の一実施形態を示すサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムのネットワーク構成の一例を示すブロック図であり、背景技術の欄で示した図１８と同一のものには同一の符号を付してある。なお、図１のネットワーク上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。これらは必要に応じて管理者が使用するものであり、本発明を限定するものではない。
【００５３】
図１に示すように、サーバ装置２００ｘは、ネットワーク２００を介して複数のリモートクライアント２００ａ，２００ｂと接続されている。また、複数のリモートクライアント２００ａ，２００ｂは、ネットワーク２００を介してサーバ２００ｘ及びデバイス機器（プリンタ）４１０ａ，４１１ａ，４１０ｂと接続されている。なお、リモートクライアント２００ａ，２００ｂとプリンタ４１０ａ，４１１ａ，４１０ｂとがＵＳＢＩ／Ｆ，パラレルＩ／Ｆを介して直接接続されるように構成してもよい。また、プリンタは幾つ接続されてもよい。
【００５４】
図２は、図１に示したターミナルサービスシステムのハードウェア構成を説明するブロック図であり、特に、クライアントとしてクライアント２００ａを代表して示してあるが、クライアント２００ｂも同様である。但し、ターミナルクライアントがログイン中でセッション状態にあることを前提としている。
【００５５】
また、図２は、背景技術の欄で示した現状の構成図である図１８に本発明を適用した後の構成に対応し、図１８と同一のものには同一の符号を付してある。なお、図２と図１８との相違（即ち、従来の技術との相違点）は以下の点である。
【００５６】
図２に示すように、サーバ２００ｘのＯＳ２１０ｘ上には、サーバ用プリンタ監視プログラム５１３ｘがインストールされている。このサーバ用プリンタ監視プログラム５１３ｘは、本発明の対象となるプログラムであり、ＨＤＤ２０５ｘからＲＡＭ２０１ｘ内にロードされ、ＣＰＵ２０３ｘにより実行される。
【００５７】
また、クライアント２００ａのＯＳ２１０ａ上にも、クライアント用プリンタ監視プログラム５１２ａがインストールされている。このクライアント用プリンタ監視プログラム５１２ａも、本発明の対象となるプログラムであり、ＨＤＤ２０４ａからＲＡＭ２０１ａ内にロードされ、ＣＰＵ２０３ａにより実行される。
【００５８】
ここで、サーバ２００ｘに存在しているプリンタドライバ５４０ｘに注目すると、これは、本発明適用前には存在しなかったプリンタドライバである。
【００５９】
図１８に示した状態では、クライアント２００ａの論理プリンタ２３１ａにマッピングされる自動作成された論理プリンタは、プリンタドライバ２３０ｘを実体として作成されていた。しかしながら、本発明ではサーバ用プリンタ監視プログラム５１３ｘが、クライアントのプリンタドライバ２３０ａと同等の機能を持つプリンタドライバ５４０ｘをインストールさせ、プリンタドライバ５４０ｘを実体とする論理プリンタ５４１ｘを作成し、論理プリンタ５４１ｘの出力先ポートをクライアントプリンタである理論プリンタ２３１ａに設定することにより、クライアント２００ａのプリンタドライバ２３０ａと同等の機能の印刷を可能とする。
【００６０】
また、サーバ２００ｘに存在しているプリンタドライバ５６０ｘに注目すると、これも本発明適用前には存在しなかったプリンタドライバである。図１８に示した状態では、クライアント２００ａの論理プリンタ２５１ａにマッピングされる自動作成プリンタは、ユニドライバ２５０ｘを実体として作成されていたが、本発明ではサーバ用プリンタ監視プログラム５１３ｘがクライアントのプリンタドライバ２５０ａと同等の機能を持つプリンタドライバ５６０ｘをインストールさせ、プリンタドライバ５６０ｘを実体とする論理プリンタ５６１ｘを作成し、論理プリンタ５６１ｘの出力先ポートをクライアントプリンタである論理プリンタ２５１ａに設定する事により、クライアントのプリンタドライバ２５０ａと同等の機能の印刷を可能とする。
【００６１】
また、サーバ用プリンタドライバ監視プログラム５１３ｘは、ＯＳ２１０ｘに常駐しても、クライアント２００ａが接続する度に、その都度起動してもどちらでも良い。クライアント用プリンタドライバ監視プログラム５１２ａもまた、ＯＳ２１０ａに常駐しても、サーバ２００ｘへの接続の度に、その都度起動してもどちらでも良い。
【００６２】
以下、サーバ用プリンタ監視プログラム５１３ｘがプリンタドライバ５４０ｘと論理プリンタ５４１ｘを作成する手順について、フローチャートを用いて説明する。
【００６３】
図３は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第１の制御処理手順の一例を示すフローチャートであり、クライアントユーザがターミナルサーバにログインし、クライアント用プリンタ監視プログラム５１２ａとサーバ用プリンタ監視プログラム５１３ｘが起動し、プリンタドライバをインストールする処理、即ち、本発明のプリンタドライバ監視システムおけるプリンタドライバ監視及びインストールの全体の流れを示したものである。なお、図中、Ｓ６０１〜Ｓ６０６は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。また、図中、Ｓ６５１，Ｓ６５２は、クライアント２００ａ，２００ｂ側の処理に対応し、クライアント２００ａの場合、図２に示したＣＰＵ２０３ａによりＨＤＤ２０５ａからＲＡＭ２０１ａにロードして実行されるクライアント用プリンタ監視プログラム５１２ａの処理に対応する。なお、以下、クライアント２００ａを代表して説明する。
【００６４】
まず、ステップＳ６５１において、ＣＰＵ２０３ａにより実行されるクライアント用プリンタ監視プログラム５１２ａ（以下、クライアント用プリンタ監視プログラム５１２ａ）は、リモートクライアント２０１ａのサーバへのログインのタイミングで、クライアントＯＳ２１０ａ上に存在するローカルプリンタの情報を取得する。
【００６５】
次に、ステップＳ６５２において、クライアント用プリンタ監視プログラム５１２ａは、ステップＳ６５１で取得したローカルプリンタの情報をまとめてクライアントプリンタドライバ一覧６００としてサーバ２００ｘに送信し、処理を終了する。このクライアントプリンタドライバ一覧（クライアントプリンタドライバ情報）６００の一例を図４に示す。
【００６６】
図４は、図３に示したクライアントプリンタドライバ一覧（クライアントプリンタドライバ情報）６００の一例を表形式で示すデータ構成図である。
【００６７】
クライアントプリンタドライバ一覧６００において、１２０１、１２０２、１２０３はそれぞれ項目を表し、１２００がプリンタドライバ名、１２０１がプリンタドライバのバージョン、１２０３が対応ＯＳである。
【００６８】
１２０１ａ、１２０１ｂはプリンタドライバ名の情報である。また、１２０２ａ、１２０２ｂは、プリンタドライバのバージョンの情報であり、１２０３ａ、１２０３ｂは対応ＯＳの情報である。
【００６９】
以下、図３のフローチャートの説明に戻る。
【００７０】
ステップＳ６０１において、ＣＰＵ２０３ｘにより実行されるサーバ用プリンタ監視プログラム５１３ｘ（以下、サーバ用プリンタ監視プログラム５１３ｘ）は、ターミナルサービス２１１ｘのクライアントのログインをトリガとして、ターミナルサービス２１１ｘからクライアントログイン名を取得する。
【００７１】
次に、ステップＳ６０２において、クライアント２００ａから通信を受けたサーバ２００ｘのサーバ用プリンタ監視プログラム５１３ｘは、クライアントローカルに登録されているプリンタドライバ一覧６００（図４）を受けとり、ＲＡＭ２０１ｘに保持する。
【００７２】
なお、本フローチャートでは、クライアント２００ａがターミナルサービス２１１ｘにログインした際に、クライアント２００ａ側からプリンタドライバ一覧６００を送信し、サーバ２００ｘがそのプリンタドライバ一覧６００を受信する構成について説明しているが、サーバ用プリンタ監視プログラム５１３ｘが、ターミナルサービス２１１ｘのクライアントのログインをトリガとして、クライアント２００ａに対して、プリンタドライバ一覧６００の送信を要求し、その要求に基づいてクライアント２００ａ側から送信されるプリンタドライバ一覧６００を受信するように構成してもよい。
【００７３】
次に、ステップＳ６０３において、サーバ用プリンタ監視プログラム５１３ｘは、サーバ２００ｘにインストールが必要だと判断されたプリンタドライバの一覧（後述する図８に示すサーバドライバインストール一覧）を作成する（詳細は図５に示す）。
【００７４】
次に、ステップＳ６０４において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ６０３で作成された一覧に基づいて、サーバ２００ｘにインストールが必要だと判断されたドライバが一つ以上あるか否かを判定し、一つ以上あると判定した場合には、ステップＳ６０５において、サーバ２００ｘに対するインストール処理を実行し（詳細は図９に示す）、ステップＳ６０６に処理を進める。
【００７５】
一方、ステップＳ６０４で、サーバ用プリンタ監視プログラム５１３ｘが、サーバ２００ｘにインストールが必要だと判断されたドライバが一つもないと判定した場合には、そのままステップＳ６０６に処理を進める。
【００７６】
そして、これらの処理を終えると、ステップＳ６０６にて、サーバ用プリンタ監視プログラム５１３ｘは、クライアント用プリンタドライバ監視プログラム５１２ａに対し、終了通知を行い、処理を終了する。
【００７７】
図５は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第２の制御処理手順の一例を示すフローチャートであり、図３のステップＳ６０３に示したサーバにインストールが必要だと判断されたプリンタドライバの一覧を作成する処理（第１のインストール対象プリンタドライバを特定処理）を示したものである。なお、図中、Ｓ７０１〜Ｓ７０４は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。
【００７８】
まず、ステップＳ７０１において、サーバ用プリンタ監視プログラム５１３ｘは、クライアント２００ａのプリンタドライバを一つずつ調べる為の判定を行っており、クライアント２００ａの全てのプリンタドライバについて調べたと判定した場合には、そのまま処理を終了する。
【００７９】
一方、サーバ用プリンタ監視プログラム５１３ｘが、クライアント２００ａの全てのプリンタドライバについて未だ調べていないと判定した場合には、ステップＳ７０２において、サーバ用プリンタ監視プログラム５１３ｘは、ある１つのプリンタドライバを対象として、そのプリンタドライバがクライアント２００ａには存在するがサーバ２００ｘには存在しない（クライアント２００ａのみに存在する）か否かを判定し、クライアントにもサーバにも存在すると判定した場合には、そのままステップＳ７０４に処理を進める。
【００８０】
一方、サーバ用プリンタ監視プログラム５１３ｘが、カレントのプリンタドライバがクライアント２００ａには存在するがサーバ２００ｘには存在しない（クライアント２００ａのみに存在する）と判定した場合には、サーバ用プリンタ監視プログラム５１３ｘは、カレントのプリンタドライバがサーバインストール条件に合致するか否かを判定するステップＳ７０３へと処理を進める。
【００８１】
そして、ステップＳ７０３において、サーバ用プリンタ監視プログラム５１３ｘは、カレントのプリンタドライバのバージョンが、サーバ２００ｘとクライアント２００ａとで同じか否かを判定し、同じと判定した場合には、カレントのプリントドライバのサーバ２００ｘへのインストールは必要ないので、ステップＳ７０１に処理を戻し、次のプリンタドライバを調べる。
【００８２】
一方、ステップＳ７０３で、サーバ用プリンタ監視プログラム５１３ｘが、カレントのプリンタドライバのバージョンが、サーバ２００ｘとクライアント２００ａとで異なると判定した場合には、ステップＳ７０４において、サーバ用プリンタ監視プログラム５１３ｘは、サーバ２００ｘへインストールするプリンタドライバの一覧であるサーバインストールドライバ一覧７００を作成する処理（詳細は図６に示す）を行い、ステップＳ７０１に処理を戻し、次のプリンタドライバを調べる。
【００８３】
図６は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第３の制御処理手順の一例を示すフローチャートであり、図５のステップＳ７０４に示したサーバインストール一覧作成処理（第２のインストール対象プリンタドライバを特定処理）を示したものである。なお、図中、Ｓ８０１〜Ｓ８０２は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。
【００８４】
まず、ステップＳ８０１において、サーバ用プリンタ監視プログラム５１３ｘは、ログインユーザが本システムに対する権限を持っているかどうかを判別する。この権限に関する情報は、サーバ２００ｘのＨＤＤ２０５ｘに予め格納されているユーザ情報ＤＢ８００に保持されている。このユーザ情報ＤＢ８００の例を図７に示す。
【００８５】
図７は、図２に示したサーバ２００ｘのＨＤＤ２０５ｘに格納されているユーザ情報ＤＢ８００の一例を示す図であり、サーバにインストール可能なプリンタドライバ（名称擬態前）情報に対応する。
【００８６】
ユーザ情報ＤＢ８００において、１３０１、１３０２はそれぞれ項目を表し、１３０１はユーザ名、１３０２は権限の有無である。１３０１ａ、１３０１ｂ、１３０１ｃはユーザ名の情報であり、１３０２ａ、１３０２ｂ、１３０２ｃは権限の情報である。権限情報１３０２ａ，１３０２ｂは、ユーザ名「ＣｌｉｅｎｔＡ」，「ＣｌｉｅｎｔＢ」に権限があることを示し、権限情報１３０２ｃは、ユーザ名「ＣｌｉｅｎｔＣ」権限がないことを示す。なお、この場合の権限とは、ＯＳ２１０ｘに対する権限とは異なり、本システムへの権限を意味するものである。
【００８７】
以下、図６のフローチャートの説明に戻る。
【００８８】
ステップＳ８０１で、サーバ用プリンタ監視プログラム５１３ｘが、ユーザ情報ＤＢ８００に基づいてログインユーザが本システムに対する権限を持っていないと判定した場合には、そのまま処理を終了する。
【００８９】
一方、ステップＳ８０１で、サーバ用プリンタ監視プログラム５１３ｘが、ユーザ情報ＤＢ８００に基づいてログインユーザが本システムに対する権限を持っていると判定した場合には、サーバ用プリンタ監視プログラム５１３ｘは、サーバ２００ｘへのドライバのインストールの実行が可能となり、ステップＳ８０２に処理を進める。なお、ステップＳ８０１で、サーバに対しインストールすると判断されたプリンタドライバを、以降「擬態ドライバ」と呼ぶ事とする。
【００９０】
次に、ステップＳ８０２において、サーバ用プリンタ監視プログラム５１３ｘは、カレントのプリントドライバ（擬態ドライバ）をサーバ２００ｘにインストールが必要なドライバとしてＲＡＭ２０１ｘのサーバインストールドライバ一覧７００に追加し、処理を終了する。このサーバインストールドライバ一覧７００の例を図８に示す。
【００９１】
図８は、図６のステップＳ８０２で追加されるサーバインストールドライバ一覧７００の一例を一覧形式で示す図であり、ＲＡＭ２０１ｘに保持される。
【００９２】
ユーザ情報ＤＢ８００において、１７０１、１７０２、１７０３はそれぞれ項目を表し、１７０１がプリンタドライバ名、１７０２がプリンタドライバのバージョン、１７０３が対応ＯＳに対応する。１７０１ａ、１７０１ｂはプリンタドライバ名の情報である。また、１７０２ａ、１７０２ｂはプリンタドライバのバージョン情報であり、１７０３ａ、１７０３ｂは対応ＯＳの情報である。
【００９３】
なお、本実施形態では、図６のフローチャートのステップＳ８０１において、図７に示したユーザ情報ＤＢ８００に基づいて、ユーザの権限を判定し、クライアントユーザに応じた擬態ドライバのインストールの有無を制御する構成について説明したが、図６のフローチャートのステップＳ８０１と図７に示したユーザ情報ＤＢ８００を本発明の構成から除き、ユーザの権限を判定することなく、ステップＳ８０２へ進み、クライアントユーザに関わらず、サーバに擬態ドライバをインストール可能なように構成してもよい。
【００９４】
図９は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第４の制御処理手順の一例を示すフローチャートであり、図３のステップＳ６０５に示したサーバに擬態ドライバをインストールする処理（擬態ドライバインストール処理）を示したものである。なお、図中、Ｓ９０１〜Ｓ９０７は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。
【００９５】
まず、ステップＳ９０１において、サーバ用プリンタ監視プログラム５１３ｘは、サーバインストールドライバ一覧７００からサーバ２００ｘにインストールするプリンタドライバ（擬態ドライバ）の一覧を取得し、該取得した擬態ドライバの一覧に対応するプリンタドライバインストールモジュールセット（以下、ドライバセット）を、後述する図１０に示すドライバＤＢ９００内の項目「インストールモジュールセットの場所」１４０４で特定される記憶場所からローカルの記憶装置（ＲＡＭ２０１ｘ又はＨＤＤ２０５ｘ）上にコピーする。なお、この時点ではドライバＤＢ９００内で指定される記憶場所には適切なドライバセットが格納されているものとする。また、ドライバＤＢ９００は、サーバ２００ｘのＨＤＤ２０５ｘに構築されるものであっても、その他の記憶装置、例えば、通信可能な他のコンピュータ上に構築されるものであってもよい。さらに、ドライバセットが格納される記憶場所は、サーバ２００ｘが取得可能な場所であればどのような記憶場所であってもよい。例えば、サーバ２００ｘのＨＤＤ２０５ｘであっても、サーバ２００ｘが読み取り可能なＣＤ−ＲＯＭドライブにセットされたＣＤ−ＲＯＭであっても、他のコンピュータのＨＤＤ等であってもよい。また、ドライバＤＢ９００に適切なドライバ情報をセットし、また、上記記憶場所にドライバセットを格納する方法としては、サーバ管理者が格納する方法でも良いし、クライアントユーザが格納する方法でも良い。なお、このドライバＤＢ９００の一例を図１０に示す。
【００９６】
図１０は、図２に示したサーバ２００ｘのＨＤＤ２０５ｘに格納されているドライバＤＢ９００の一例を表形式で示す図である。
【００９７】
ドライバＤＢ９００において、１４０１、１４０２、１４０３、１４０４はそれぞれ項目を表し、１４０１がドライバ名、１４０２がプリンタドライバのバージョン、１４０３が対応ＯＳ、１４０４がインストールモジュールセットの格納場所に対応する。１４０１ａ、１４０１ｂ、１４０１ｃはプリンタドライバ名の情報である。また、１４０２ａ、１４０２ｂ、１４０２ｃはプリンタドライバのバージョン情報であり、１４０３ａ、１４０３ｂ、１４０３ｃは対応ＯＳの情報である。そして、１４０４ａ、１４０４ｂ、１４０４ｃはインストールモジュールセットの情報である。
【００９８】
以下、図９のフローチャートの説明に戻る。
【００９９】
次に、ステップＳ９０２において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０１でコピーしたドライバセットの一部（ドライバ名）を編集し、別名プリンタのドライバセットとする処理（詳細は図１２に示す）を行う。なお、このドライバ名の編集（ドライバ名の擬態）は、同一名のプリンタドライバがサーバ２００ｘに登録されているプリンタドライバに対しては全て行うものとする。
【０１００】
次に、ステップＳ９０３において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０２で編集したドライバセットにより擬態ドライバをインストールする。次に、ステップＳ９０４では、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０３でインストールした擬態ドライバを実体とする論理プリンタの作成を行う。
【０１０１】
なお、この論理プリンタの作成処理では、論理プリンタの出力先（出力ポート）をクライアント２００ａ上の同一のプリンタドライバの論理プリンタとして作成するものとする。また、クライアント２００ａ上の論理プリンタの情報は、ターミナルサービス２１１ｘが取得している場合は、ターミナルサービス２１１ｘから取得するようにしてもよいし、この論理プリンタの作成タミングで、クライアント２００ａに問い合わせて取得してもよいし、図３のステップＳ６０２で取得するクライアントプリンタドライバ一覧６００に含めるようにしてもよい。
【０１０２】
さらに、クライアント２００ａ側で、１つのプリンタドライバに対して複数の論理プリンタが設定されている場合には、それぞれの論理プリンタを出力先（出力ポート）に対応する論理プリンタをそれぞれ作成するようにしてもよい。
【０１０３】
また、作成した論理プリンタに対して、クライアント２００ａ上の論理プリンタに設定されているプリント設定情報を、作成した論理プリンタに設定するようにしてもよい。この場合、クライアント２００ａ上の論理プリンタに設定されているプリント設定情報は、論理プリンタを作成するタイミングでクライアント２００ａから取得してもよいし、図３のステップＳ６０２で取得するクライアントプリンタドライバ一覧６００に含めるようにしてもよい。
【０１０４】
次に、ステップＳ９０５において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０３でインストールした擬態ドライバと、ステップＳ９０４で作成した論理プリンタの名称、擬態元のドライバ名、ドライバのバージョン等の情報を、擬態ドライバ一覧に書き込む。この情報はログインクライアント毎に保持しても良いし、全てのログインクライアントを一括して保持しても良い。この擬態ドライバ一覧の一例を図１１に示す。
【０１０５】
図１１は、図９のステップＳ９０５で生成される擬似ドライバ一覧９１０の一例を表形式で示す図である。
【０１０６】
擬似ドライバ一覧９１０において、１８０１、１８０２、１８０３、１８０４はそれぞれ項目を表し、１８０１が擬態ドライバインストール時のプリンタドライバ名（擬態ドライバ名）、１８０２が擬態ドライバのバージョン、１８０３が擬態ドライバの対応ＯＳ、１８０４が作成したユーザ名である。１８０１ａ、１８０１ｂはプリンタドライバ名の情報である。また、１８０２ａ、１８０２ｂは擬態ドライバのバージョンの情報、１８０３ａ、１８０３ｂは擬態ドライバの対応ＯＳであり、１８０４ａ、１８０４ｂは作成したユーザ名の情報である。
【０１０７】
以下、図９のフローチャートの説明に戻る。
【０１０８】
ステップＳ９０６において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０４で作成した論理プリンタの出力先ポートをクライアントプリンタに設定する。次に、ステップＳ９０７において、サーバ用プリンタ監視プログラム５１３ｘは、ステップＳ９０１でローカルの記憶領域にコピーしたドライバセットを削除し、処理を終了する。
【０１０９】
図１２は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第５の制御処理手順の一例を示すフローチャートであり、図９のステップＳ９０５に示したドライバセットを別名のドライバとして擬態するドライバ名の擬態処理を示したものである。なお、図中、Ｓ１００１〜Ｓ１００３は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。
【０１１０】
まず、ステップＳ１００１において、サーバ用プリンタ監視プログラム５１３ｘは、図９のステップＳ９０１でサーバ２００ｘのローカル上にコピーされたドライバセットより、セットアップ情報ファイル（ｉｎｆファイル）を取得する。このセットアップ情報ファイルとは、ドライバのインストールに必要な情報が記述されたファイルであり、その一例を図１３に示す。
【０１１１】
そして、ステップＳ１００２において、サーバ用プリンタ監視プログラム５１３ｘは、セットアップファイルに記述されているドライバ名称を変更する。ドライバ名称の変更の様子を図１４に示す。
【０１１２】
そして、ステップＳ１００３において、サーバ用プリンタ監視プログラム５１３ｘは、変更後のセットアップ情報ファイルで変更前のセットアップ情報ファイルをローカルの記憶装置に上書き保存し、処理を終了する。
【０１１３】
図１３は、図１２のステップＳ１００１で取得されるセットアップ情報ファイル１０００の一例を示す図であり、サーバにインストール可能なプリンタドライバ（名称擬態前）を構成するモジュールに対応する。
【０１１４】
セットアップ情報ファイル１０００において、セクション１５０１はバージョン情報を表している。セクション１５０２は作成元を表している。セクション１５０３はセクション１５０２ａで定義された一意の値（作成元）を示している。セクション１５０４はセクション１５０３ａで定義された一意の値（モデル名称）を示している。なお、インストール時には、この値（モデル名称）がドライバの名称としてインストールされる。
【０１１５】
セクション１５０５は、セットアップ情報ファイルの最後に記述しなくてはならないセクションである。これは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  （登録商標）Ｆａｍｉｌｙ  ＯＳでの取り決めに従って記述した例であるが、どのＯＳの場合でも構わない。
【０１１６】
また、上述したように１５０３ａ，１５０３ｂはプリンタドライバ名を含むセクションであり、ここのプリンタドライバ名を変更する事によって、別名のプリンタドライバとしてのインストールを可能とする。このプリンタドライバ名の変更後のセットアップ情報ファイルの例を図１４に示す。
【０１１７】
図１４は、図１３に示したセットアップ情報ファイル１０００のプリンタドライバ名変更の様子を示す図である。
【０１１８】
図１４に示す例では、変更前のプリンタドライバ名の後にユーザ名とバージョンを付加する事によってユーザ毎、バージョン毎に区別化した名称を決めている。例えば、図１３の１５０３ａ，１６０３ａに示すように、変更前のプリンタドライバ名「ＬＡＳＥＲ  ＳＨｘｘ  ＬＢｘ−１３ｘｘ」にユーザ名「ＣｌｉｅｎｔＡ」を付加して「ＬＡＳＥＲ  ＳＨｘｘ  ＬＢｘ−１３ｘｘ  ＃ＣｌｉｅｎｔＡ＃１」とした。また、図１３の１５０３ｂ，１６０３ｂに示すように、変更前のプリンタドライバ名「ｘＲＣ３２ｘｘ  ＬＩＰＳ」にユーザ名「ＣｌｉｅｎｔＡ」を付加して「ｘＲＣ３２ｘｘ  ＬＩＰＳ  ＃ＣｌｉｅｎｔＡ＃３」とした。なお、プリンタドライバ名の最後に付加されている数字は、ドライバＤＢ９００のレコードの番号に対応する。
【０１１９】
なお、変更後の名称の付け方は、どのような規則に従っても構わない。また、セットアップファイル１０００内の他の記述内容の編集も行っても構わない。
【０１２０】
図１５は、本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第６の制御処理手順の一例を示すフローチャートであり、インストールした擬態ドライバを削除する動作を示している。なお、図中、Ｓ１１０１〜Ｓ１１０４は、サーバ２００ｘ側の処理に対応し、図２に示したＣＰＵ２０３ｘによりＨＤＤ２０５ｘからＲＡＭ２０１ｘにロードして実行するサーバ用プリンタ監視プログラム５１３ｘの処理に対応する。
【０１２１】
まず、ステップＳ１１０１において、サーバ用プリンタ監視プログラム５１３ｘは、削除するドライバがあるかどうかを、図１１に示した擬態ドライバ一覧９１０に基づいて判定し、削除するドライバがないと判定した場合には、そのまま処理を終了する。
【０１２２】
一方、ステップＳ１１０１で、サーバ用プリンタ監視プログラム５１３ｘが、削除するドライバがあると判定した場合には、ステップＳ１１０２において、サーバ用プリンタ監視プログラム５１３ｘは、削除するプリンタドライバに関連する論理プリンタがあれば、その論理プリンタが使用中であるかどうかを判断する。
【０１２３】
そして、ステップＳ１１０２で、サーバ用プリンタ監視プログラム５１３ｘが、削除するプリンタドライバに関連する論理プリンタが使用中であると判定した場合には、ステップＳ１１０２の判定を、該論理プリンタが使用中でなくなるまで繰り返す。この時、再判定までに時間を置く等の処置をしてもよい。
【０１２４】
一方、ステップＳ１１０２で、サーバ用プリンタ監視プログラム５１３ｘが、削除するプリンタドライバに関連する論理プリンタが使用中でないと判定した場合には、ステップＳ１１０３において、削除するプリンタドライバに関連するる論理プリンタがあれば、該論理プリンタを削除する。
【０１２５】
次に、ステップＳ１１０４において、サーバ用プリンタ監視プログラム５１３ｘは、擬態ドライバ（削除するプリンタドライバ）を削除し、ステップＳ１１０１の処理に戻り、次のプリンタドラバに対する処理を行う。
【０１２６】
なお、このステップ１１０１の処理は、必ずしも必要では無く、省略するように構成してもよい。このステップＳ１１０１の処理を省略する場合には、擬態ドライバはターミナルクライアントのログオフ後も、サーバ２００ｘ上に存在し、次回同一ユーザのログインの際には、ドライバＤＢ９００からの擬態ドライバ再インストールの手間を省く事が出来る。
【０１２７】
なお、本実施形態では、ターミナルサービス２１１ｘの他にサーバ用プリンタ監視プログラム５１３ｘを設けているが、上述したサーバ用プリンタ監視プログラム５１３ｘの機能をターミナルサービス２１１ｘに持たせるように構成してもよい。
【０１２８】
この場合、ターミナルサービス２１１ｘは、リモートクライアントのログイン時に、リモートクライアントの論理プリンタ情報を、対応するプリンタドライバ名、対応するプリンタドライバのバージョン情報を含めて取得し、該取得したプリンタドライバ名及びバージョン情報とサーバ２００ｘ自身にインストールされているプリンタドライバ名及びバージョン情報を比較し、前記リモートクライアント装置にインストールされ且つサーバ２００ｘ自身にインストールされていないプリンタドライバを特定し、該特定されたプリンタドライバのインストールモジュールをドライバＤＢ９００から取得してサーバ２００ｘ自身にインストールするとともに、該プリンタドライバの論理プリンタを作成するようにし、最後に、ターミナルサービス２１１ｘは、作成したサーバ２００ｘ側論理プリンタをクライアント２００ａ側論理プリンタへマッピングするように構成する。
【０１２９】
なお、本実施形態内の変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１３０】
また、本実施形態内で示した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１３１】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１３２】
以上説明したように、本発明によれば、特に、サーバ側論理プリンタをクライアント側論理プリンタへマッピングする機能を持ち、ユーザがサーバのプリンタドライバをインストール、更新できないターミナルサービス環境において、人（サーバ管理者等）によるプリンタドライバのインストール作業を発生させることなく、またユーザに意識させることもなく、クライアントと同一プリンタドライバ（バージョンも含めて同一）をサーバにもインストールさせるように制御することにより、クライアントユーザは、サーバとクライアントとの間で、プリンタドライバのバージョンの違いを意識することなく、クライアントと同じバージョンのプリンタドライバを使って、ユーザの所望の印刷を行うことができる等の効果を奏する。
【０１３３】
従って、サーバ・ベースド・コンピューティング環境において、ユーザに意識させることなく、リモートクライアント装置がログオンした際に、該リモートクライアント装置に登録されている論理プリンタに対応する同一バーションのプリンタドライバの論理プリンタを、このサーバ・ベースド・コンピューティング環境上に追加登録することができる。
【０１３４】
以下、図１６示すメモリマップを参照して本発明に係るターミナルサービスネットワークシステム内のサーバ装置およびクライアント装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１３５】
図１６、本発明に係るターミナルサービスネットワークシステム内のサーバ装置およびクライアント装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１３６】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１３７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１３８】
本実施形態における図３，図５，図６，図９，図１２，図１５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１３９】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１４０】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１４１】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１４２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４３】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４４】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１４５】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１４６】
本発明の実施態様の例を以下に列挙する。
【０１４７】
〔第１実施態様〕
サーバ・ベースド・コンピューティング環境を提供するサーバ装置（サーバ２００ｘ）であって、前記サーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置（サーバ２００ａ）にインストールされているプリンタドライバの情報（図４のクライアントプリンタドライバ一覧６００）を取得する取得手段（ＣＰＵ２０３ｘが実行するサーバ用プリンタ監視プログラム，図３のステップＳ６０２）と、前記取得手段により取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とを比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバ（図８のサーバインストールドライバ一覧７００）を特定する特定手段（ＣＰＵ２０３ｘが実行するサーバ用プリンタ監視プログラム，図３のステップＳ６０３，図５，図６）と、
前記特定手段により特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するインストール手段（ＣＰＵ２０３ｘが実行するサーバ用プリンタ監視プログラム，図３のステップＳ６０５，図９，図１２）とを有することを特徴とするサーバ装置。
【０１４８】
〔第２実施態様〕
前記取得手段により取得される前記プリンタドライバの情報は、プリンタドライバのバージョン情報（図４のバージョン情報１２０２）を含むものであり、前記特定手段は、プリンタドライバ名が同一であってもバージョン情報が異なる場合には異なるプリンタドライバとして、前記リモートクライアント装置に登録され且つサーバ装置自身に登録されていないプリンタドライバを特定する（図５のステップＳ７０３）ことを特徴とする第１実施態様記載のサーバ装置。
【０１４９】
〔第３実施態様〕
前記インストール手段は、前記特定手段により特定されたプリンタドライバをサーバ装置自身にインストールする際に、プリンタドライバ名が同一でバージョン情報が異なるプリンタドライバがサーバ装置自身にインストール済みである場合には、前記特定手段により特定されたプリンタドライバのプリンタドライバ名を別名に擬態してインストールする（図９のステップＳ９０２，図１２）ことを特徴とする第１又は２実施態様記載のサーバ装置。
【０１５０】
〔第４実施態様〕
前記取得手段は、前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオンした際に、前記リモートクライアント装置にインストールされているプリンタドライバの情報を取得する（図３のステップＳ６０３）ことを特徴とする第１〜３実施態様のいずれかに記載のサーバ装置。
【０１５１】
〔第５実施態様〕
前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオフした際に、前記インストール手段により作成された論理プリンタを削除する削除手段（ＣＰＵ２０３ｘが実行するサーバ用プリンタ監視プログラム，図１５のステップＳ１１０１〜Ｓ１１０３）を有することを特徴とする第４実施態様記載のサーバ装置。
【０１５２】
〔第６実施態様〕
前記リモートクライアント装置が前記サーバ・ベースド・コンピューティング環境にログオフした際に、前記インストール手段にインストールされたプリンタドライバと、該プリンタドライバに対応して作成された論理プリンタとを削除する削除手段（ＣＰＵ２０３ｘが実行するサーバ用プリンタ監視プログラム，図１５のステップＳ１１０１〜Ｓ１１０４）を有することを特徴とする第４実施態様記載のサーバ装置。
【０１５３】
〔第７実施態様〕
サーバ・ベースド・コンピューティング環境を提供するサーバ装置におけるプリンタ設定方法であって、前記サーバ・ベースド・コンピューティング環境にログオンしているリモートクライアント装置にインストールされているプリンタドライバの情報を取得する取得ステップ（図３のステップＳ６０２）と、該取得した前記プリンタドライバの情報とサーバ装置自身にインストールされているプリンタドライバの情報とを比較し、前記リモートクライアント装置にインストールされ且つサーバ装置自身にインストールされていないプリンタドライバを特定する特定ステップ（図３のステップＳ６０３，図５，図６）と、該特定されたプリンタドライバのインストールモジュールを記憶手段から取得してサーバ装置自身にインストールするとともに、該プリンタドライバの論理プリンタを該論理プリンタの出力先を前記リモートクライアント上の同一のプリンタドライバの論理プリンタとして作成するインストールステップ（図３のステップＳ６０５，図９，図１２）とを有することを特徴とするプリンタ設定方法。
【０１５４】
〔第８実施態様〕
第７実施態様に記載されたプリンタ設定方法を実行するためのプログラム。
【０１５５】
〔第９実施態様〕
第７実施態様に記載されたプリンタ設定方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【図面の簡単な説明】
【０１５６】
【図１】本発明の一実施形態を示すサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムのネットワーク構成の一例を示すブロック図である。
【図２】図１に示したターミナルサービスシステムのハードウェア構成を説明するブロック図である。
【図３】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第１の制御処理手順の一例を示すフローチャートである。
【図４】図３に示したクライアントプリンタドライバ情報の一例を表形式で示すデータ構成図である。
【図５】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第２の制御処理手順の一例を示すフローチャートである。
【図６】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第３の制御処理手順の一例を示すフローチャートである。
【図７】図２に示したサーバのＨＤＤに格納されているユーザ情報ＤＢの一例を示す図である。
【図８】図６のステップＳ８０２で追加されるサーバインストールドライバ一覧の一例を一覧形式で示す図である。
【図９】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第４の制御処理手順の一例を示すフローチャートである。
【図１０】図２に示したサーバのＨＤＤに格納されているドライバＤＢ９００の一例を表形式で示す図である。
【図１１】図９のステップＳ５０５で生成される擬似ドライバ一覧の一例を表形式で示す図である。
【図１２】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第５の制御処理手順の一例を示すフローチャートである。
【図１３】図１２のステップＳ１００１で取得されるセットアップ情報ファイルの一例を示す図である。
【図１４】図１３に示したセットアップ情報ファイルのプリンタドライバ名変更の様子を示す図である。
【図１５】本発明のサーバ装置およびクライアント装置を適用可能なターミナルサービスネットワークシステムにおける第６の制御処理手順の一例を示すフローチャートである。
【図１６】本発明に係るターミナルサービスネットワークシステム内のサーバ装置およびクライアント装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【図１７】従来のローカル印刷の実態を表すハードウェア構成とネットワーク構成の一例を示すブロック図である。
【図１８】従来のネットワークリダイレクト印刷の実態を表すハードウェア構成とネットワーク構成の一例を示すブロック図である。
【図１９】この種のプリンタプロパティ画面の一例を示す模式図である。
【符号の説明】
【０１５７】
２００ａ  クライアントコンピュータ
２００ｘ  サーバコンピュータ
２０１ａ，２０１ｘ  ＲＡＭ
２０３ａ，２０３ｘ  ＣＰＵ
２０５ｘ  ＨＤＤ
２１１ａ  ターミナルサービスクライアント
２１１ｘ  ターミナルサービス
２２０ａ，２２０ｘ  プリンタ
２２０ａ，２３０ｘ，２５０ａ  プリンタドライバ
２３１ａ，２５１ａ  論理プリンタ
５１２ａ  クライアント用プリンタ監視プログラム
５１３ｘ  サーバ用プリンタ監視プログラム
５４０ｘ，５６０ｘ  擬態プリンタドライバ
５４１ｘ，５６１ｘ  擬態プリンタドライバに対応する論理プリンタ
【図１】
2006155288.tif 000003
【図２】
2006155288.tif 000004
【図３】
2006155288.tif 000005
【図４】
2006155288.tif 000006
【図５】
2006155288.tif 000007
【図６】
2006155288.tif 000008
【図７】
2006155288.tif 000009
【図８】
2006155288.tif 000010
【図９】
2006155288.tif 000011
【図１０】
2006155288.tif 000012
【図１１】
2006155288.tif 000013
【図１２】
2006155288.tif 000014
【図１３】
2006155288.tif 000015
【図１４】
2006155288.tif 000016
【図１５】
2006155288.tif 000017
【図１６】
2006155288.tif 000018
【図１７】
2006155288.tif 000019
【図１８】
2006155288.tif 000020
【図１９】
2006155288.tif 000021