(57)【要約】【課題】    プリンタドライバの機能を拡張するために動作するプログラムモジュールが無条件に追加インストールされることを防止すること。【解決手段】  プリンタドライバのインストールセットを他の情報処理装置へ送信する情報処理装置の制御方法は、機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信するか否かを決定し、拡張モジュールを動作させるインストールセットを送信すると決定した場合、他の情報処理装置に対して機能拡張モジュールが動作するインストールセットを送信し、機能拡張モジュールを動作させるインストールセットを他の情報処理装置へ送信しないと決定工程が決定した場合、拡張モジュールが動作しないインストールセットを他の情報処理装置へ送信する。【選択図】  図６Ａ
2006099747.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバのインストールセットを他の情報処理装置へ送信する情報処理装置であって、
機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信するか否かを決定する決定手段と、
前記拡張モジュールを動作させるインストールセットを送信すると前記決定手段が決定した場合は、前記他の情報処理装置に対して前記機能拡張モジュールが動作するインストールセットを送信し、前記機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信しないと前記決定手段が決定した場合は、前記拡張モジュールが動作しないインストールセットを前記他の情報処理装置へ送信する送信手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記機能拡張モジュールを動作させるインストールセットとは、機能拡張モジュール及び、前記機能拡張モジュールを動作させるためのキーデータを含むインストールセットであり、前記機能拡張モジュールが動作しないインストールセットとは、当該キーデータと機能拡張モジュールのうち、少なくともひとつを含まないインストールセットであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プリンタドライバが、他の情報処理装置と共有するプリンタを制御する目的で使用されているか否かを判断する判断手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プリンタドライバが、前記他の情報処理装置と共有するプリンタを制御する目的で使用されていると前記判断手段が判断した場合、当該共有プリンタに接続する他の情報処理装置に対して、当該プリンタドライバの構成が変更されることを通知する通知手段を更に備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記インストールセットに登録されている前記キーデータ及び前記機能拡張モジュールを、オペレーティングシステムの記憶領域にコピーするファイル追加手段と、
前記記憶領域にコピーされた、前記キーデータ及び前記機能拡張モジュールの追加ファイルの名称を前記ドライバの構成情報に追加登録するファイル登録手段と、
前記プリンタドライバの構成が変更されることを、オペレーティングシステムのインストール制御モジュールに認識させる認識手段と
を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記認識手段は、前記キーデータ及び機能拡張モジュールの内容を、インストール制御モジュールを再起動させることにより認識させることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記追加インストール手段により追加インストールされた前記キーデータ及び前記機能拡張モジュールを削除する削除手段と、
前記削除手段の削除に応じて、前記プリンタドライバの構成情報を更新する登録解除手段と
を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項８】
前記通知手段は、前記登録解除手段により、前記プリンタドライバの構成情報が更新された場合、当該更新されたドライバ構成情報の内容を前記他の情報処理装置に対して通知することを特徴とする請求項４に記載の情報処理装置。
【請求項９】
機能拡張モジュールを使用するのに必要なキーデータを取得する取得手段と、
機能拡張モジュールのキーデータ前記取得手段が取得していない場合、前記機能拡張モジュールの機能の利用を制限した機能をプリンタドライバに実行させる実行手段と、
を備えることを特徴とする情報処理装置。
【請求項１０】
キーデータと機能拡張モジュールが含まれるインストールセットを取得する手段と、
前記キーデータを前記取得手段が取得した場合、前記キーデータを用いて、拡張モジュールを実行する手段とを更に備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
プリンタドライバのインストールセットを他の情報処理装置へ送信する情報処理装置の制御方法であって、
機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信するか否かを決定する決定工程と、
前記拡張モジュールを動作させるインストールセットを送信すると前記決定工程が決定した場合は、前記他の情報処理装置に対して前記機能拡張モジュールが動作するインストールセットを送信し、前記機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信しないと前記決定工程が決定した場合は、前記拡張モジュールが動作しないインストールセットを前記他の情報処理装置へ送信する送信工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１２】
前記機能拡張モジュールを動作させるインストールセットとは、機能拡張モジュール及び、前記機能拡張モジュールを動作させるためのキーデータを含むインストールセットであり、前記機能拡張モジュールが動作しないインストールセットとは、当該キーデータと機能拡張モジュールのうち、少なくともひとつを含まないインストールセットであることを特徴とする請求項１１に記載の情報処理装置の制御方法。
【請求項１３】
前記プリンタドライバが、他の情報処理装置と共有するプリンタを制御する目的で使用されているか否かを判断する判断工程を更に備えることを特徴とする請求項１１に記載の情報処理装置の制御方法。
【請求項１４】
前記プリンタドライバが、前記他の情報処理装置と共有するプリンタを制御する目的で使用されていると前記判断工程が判断した場合、当該共有プリンタに接続する他の情報処理装置に対して、当該プリンタドライバの構成が変更されることを通知する通知工程を更に備えることを特徴とする請求項１３に記載の情報処理装置の制御方法。
【請求項１５】
前記インストールセットに登録されている前記キーデータ及び前記機能拡張モジュールを、オペレーティングシステムの記憶領域にコピーするファイル追加工程と、
前記記憶領域にコピーされた、前記キーデータ及び前記機能拡張モジュールの追加ファイルの名称を前記ドライバの構成情報に追加登録するファイル登録工程と、
前記プリンタドライバの構成が変更されることを、オペレーティングシステムのインストール制御モジュールに認識させる認識工程と
を更に備えることを特徴とする請求項１２に記載の情報処理装置の制御方法。
【請求項１６】
前記認識工程は、前記キーデータ及び機能拡張モジュールの内容を、インストール制御モジュールを再起動させることにより認識させることを特徴とする請求項１５に記載の情報処理装置の制御方法。
【請求項１７】
前記追加インストール工程により追加インストールされた前記キーデータ及び前記機能拡張モジュールを削除する削除工程と、
前記削除工程の削除に応じて、前記プリンタドライバの構成情報を更新する登録解除工程と
を更に備えることを特徴とする請求項１２に記載の情報処理装置の制御方法。
【請求項１８】
前記通知工程は、前記登録解除工程により、前記プリンタドライバの構成情報が更新された場合、当該更新されたドライバ構成情報の内容を前記他の情報処理装置に対して通知することを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項１９】
情報処理装置の制御方法であって、
機能拡張モジュールを使用するのに必要なキーデータを取得する取得工程と、
機能拡張モジュールのキーデータ前記取得工程が取得していない場合、前記機能拡張モジュールの機能の利用を制限した機能をプリンタドライバに実行させる実行工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項２０】
キーデータと機能拡張モジュールが含まれるインストールセットを取得する工程と、
前記キーデータを前記取得工程が取得した場合、前記キーデータを用いて、拡張モジュールを実行する工程とを更に備えることを特徴とする請求項１９に記載の情報処理装置の制御方法。
【請求項２１】
プリンタドライバのインストールセットを他の情報処理装置へ送信する情報処理装置を制御するプログラムであって、当該プログラムが、
機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信するか否かを決定する決定モジュールと、
前記拡張モジュールを動作させるインストールセットを送信すると前記決定モジュールが決定した場合は、前記他の情報処理装置に対して前記機能拡張モジュールが動作するインストールセットを送信し、前記機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信しないと前記決定モジュールが決定した場合は、前記拡張モジュールが動作しないインストールセットを前記他の情報処理装置へ送信する送信モジュールと、
を備えることを特徴とするプログラム。
【請求項２２】
情報処理装置を制御するプログラムであって、
機能拡張モジュールを使用するのに必要なキーデータを取得する取得モジュールと、
機能拡張モジュールのキーデータ前記取得モジュールが取得していない場合、前記機能拡張モジュールの機能の利用を制限した機能をプリンタドライバに実行させる実行モジュールと、
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
近年、セントロニクスなどのインターフェースあるいはイーサネット（登録商標）などのネットワークを通じてホストコンピュータとプリンタとを接続し、情報処理を行う情報処理システムに関する研究、開発が盛んになされ、実用化されている。
【０００３】
この種の情報処理システムにおいて、例えば、ホストコンピュータに接続するプリンタとしてレーザービームプリンタを使用する場合、レーザービームプリンタは、ホストコンピュータからレーザービームプリンタに入力される印刷データを解析する。そして、レーザービームプリンタは、入力された印刷データを出力データとしてビットマップデータに展開し、その展開したビットマップデータに基づいて変調されたレーザービームを感光ドラムに走査露光して画像記録を行う。
【０００４】
一方、ホストコンピュータには、プリンタの印刷機能に関するアプリケーションプログラム（以下、単に「アプリケーション」ともいう。）が少なくとも一つ組み込まれており、同時に、これらのアプリケーションから特定のプリンタへの印刷処理を仲介し、より詳細な印刷制御を行うプログラム（以下、「プリンタドライバ」という。）も組み込まれている。
【０００５】
プリンタドライバは、通常、複数のプログラムファイルやデータファイルを有するファイル群（以下、これらを総称して、「インストールセット」という。）の形態として配布される。そして、ホストコンピュータにおいて、そのプリンタドライバを使用できる状態にするためのプリンタドライバの導入作業（以下、「インストール」という。）は、通常、ホストコンピュータに対して既に組み込み済みのオペレーティングシステムにより制御され、インストールセットのコピーやプリンタドライバに関する情報をオペレーティングシステムに登録するといった処理がユーザによる操作またはインストールセットにおけるプログラムによって実行される。インストールセットとは、例えば，コンピュータにインストールされる際に用いられるプログラムデータ群をいう。本実施形態では、プログラムデータ群には、プリンタドライバのモジュール、キーデータ、機能拡張モジュールの少なくともひとつが含まれる。
【０００６】
また、情報処理システムをさらに発展させ、プリンタと接続するホストコンピュータをプリントサーバとし、ネットワークを介して接続するクライアントコンピュータからの要求に基づいてプリンタに印刷を実行させるプリントサーバシステムも同様に研究、開発され、実用化されている。
【０００７】
Point&Print機能を利用してプリンタドライバをインストールする利点としては、クライアントコンピュータ２０を操作するユーザが共有プリンタを指定して印刷を行う場合、（i）必要となるプリンタドライバのインストール作業を自動的に行うことができるということ、（ii）プリントサーバにおけるドライバ構成情報の更新が自動的にクライアントコンピュータ側に反映されること、更には、（iii）ユーザの操作により、クライアントコンピュータにプリンタドライバをインストールする際、プリンタドライバを格納したCD-ROMなどの記憶媒体が必要ないという点が挙げられる。
【０００８】
一方、プリンタドライバをインストールするための情報処理技術としては、プリンタドライバのインストール後にプログラムファイルやデータファイルなど、プリンタドライバの機能を拡張するための機能拡張モジュールを追加、削除するための試みもある。
【０００９】
また、機能拡張の対象となるプリンタドライバがPoint&Printによってクライアントコンピュータに既にダウンロードされたものである場合、プリントサーバ側に追加されたモジュールをクライアントコンピュータ上のプリンタドライバに対しても自動的に追加してインストールするといった試みもある。
【００１０】
更に、従来技術として、特許文献１には、既にインストールされているプログラムに対して、新旧のバージョンが異なるプログラムをインストールする際、それぞれのプログラムの正常な動作を可能にする情報処理技術が開示されている。
【００１１】
ホストコンピュータ上において、インストール済みのプリンタドライバに対して機能拡張モジュールを追加インストールすることで、プリンタドライバの機能を拡張する仕組みは、ユーザに対して付加価値を提供することになるのであるから、機能拡張モジュールおよびそれらを追加インストールするプログラムを有償のソフトウェアとして提供することが想定される。このような事後的な機能拡張に対しては、ある条件を付加してプリンタドライバの機能を拡張する仕組みの利用を抑止することで、ソフトウェアの商品価値を保護することが求められている。
【００１２】
上述の従来技術として、例えば、以下の特許文献１に示されるものがある。
【特許文献１】特開２００３-０５８３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来技術における試みでは、プリントサーバ上に記憶されているプリンタドライバを、Point&Printによってクライアントコンピュータとの間で共有すると、ネットワーク上のクライアントコンピュータにおけるプリンタドライバの機能の拡張を実現するための機能拡張モジュールが無制限にインストールされてしまうことになる。機能の拡張を可能にするプログラムモジュールを追加インストールする場合、無制限にプログラムモジュールが配布されることを防止して、かかるプログラムモジュールの商品価値を保護する必要があるが、従来技術においては、この点に関して考慮されていないという問題がある。すなわち、プリンタドライバの機能を拡張する機能拡張モジュールを有償ソフトウェアとして提供するといった場合は、ソフトウェアとしての商品価値を下げてしまうという問題がある。
【００１４】
本発明は、上述の問題点に関し、下記の目的の少なくともひとつを解決するものである。プリンタドライバの機能を拡張するためのプログラムモジュールを動作させるのに必要なデータ（以下、「キーファイル」又は「キーデータ」ともいう。）又は機能拡張モジュールを追加インストールの対象となるインストールセットに含めるか否かを制御することで、機能を拡張するための機能拡張モジュールが無条件に他の情報処理装置にて利用されることを防止する情報処理技術の提供を第１の目的とする。
【００１５】
また、プリンタドライバの機能を拡張させるための機能拡張プログラムが動作するためには、キーデータを必要とし、キーデータが存在しない場合は、機能の拡張を抑制して印刷要求を処理することで、機能を拡張するためのプログラムモジュールの商品価値を保護する情報処理技術の提供を第２の目的とする。
【課題を解決するための手段】
【００１６】
上記のいずれかの目的を達成する、本発明にかかる情報処理装置は、プリンタドライバのインストールセットを他の情報処理装置へ送信する情報処理装置であって、
前記機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信するか否かを決定する決定手段と、
前記拡張モジュールを動作させるインストールセットを送信すると前記決定手段が決定した場合は、前記他の情報処理装置に対して前記機能拡張モジュールが動作するインストールセットを送信し、前記機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信しないと前記決定手段が決定した場合は、前記拡張モジュールが動作しないインストールセットを前記他の情報処理装置へ送信する送信手段と、
を備えることを特徴とする。
【発明の効果】
【００１７】
本発明に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールが無条件に追加インストールされることを防止することが可能になる。
【００１８】
あるいは、本発明に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールの商品価値を保護することが可能になる。
【発明を実施するための最良の形態】
【００１９】
[実施形態１]  以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。
まず、図１乃至図３Ａ，Ｂを参照して本実施形態の前提を説明する。  
図１は、上述のプリントサーバシステムの構成例を示す図であり、ホストコンピュータであるプリントサーバ１０、クライアントコンピュータ２０、レーザービームプリンタ３０とから構成される。プリントサーバ１０とレーザービームプリンタ３０とはセントロニクスなどのインターフェースあるいはイーサネット（登録商標）などのネットワーク１１によって接続し、プリントサーバ１０とクライアントコンピュータ２０とはイーサネット（登録商標）などのネットワーク１２によって接続する。
【００２０】
プリントサーバシステムは、プリントサーバ１０自身が印刷データを生成してレーザービームプリンタ３０に対して印刷を実行させることよりもむしろ、クライアントコンピュータ２０が生成した印刷データをプリントサーバ１０が仲介し、その印刷データに基づいてプリンタ３０が印刷を実行することを目的として構成される。ここで、プリントサーバ１０には、上述のように印刷機能を備えたアプリケーションプログラムが少なくとも一つ組み込まれており、同時にこれらアプリケーションプログラムからプリンタ３０への印刷を仲介するプリンタドライバも組み込まれている。また、クライアントコンピュータ２０においても、少なくとも一つの印刷機能を備えた同様のアプリケーションプログラムが組み込まれているものとする。
【００２１】
このとき、クライアントコンピュータ２０を利用するユーザがプリンタ３０を印刷データの出力先とし、プリンタ３０に印刷処理を実行させるためには、プリントサーバ１０上に組み込まれているものと同じプリンタドライバをクライアントコンピュータ２０に組み込む必要がある。これは、クライアントコンピュータ２０上のアプリケーションによって生成される印刷データは、プリンタ３０に入力される前にプリントサーバ１０上のプリンタドライバの仲介が必要となるためである。
【００２２】
従って、図１に示すようなプリントサーバシステムでは、クライアントコンピュータ２０に対し、プリントサーバ１０にインストールされているものと同じプリンタドライバをインストールする必要があるが、このようなインストール作業はクライアントコンピュータ２０を利用するユーザにとって負担になるという問題がある。
【００２３】
この問題を解決する方法として、Microsoft社製の Windows（登録商標：以下略）における「Point&Print」（登録商標：以下略）（ポイントアンドプリント）機能が知られている。この「Point&Print」とは、プリントサーバから効率的にプリンタドライバをクライアントコンピュータにインストールするオペレーティングシステムの機能である。
【００２４】
以下、Point&Print機能により、プリントサーバからクライアントコンピュータにプリンタドライバをインストールする処理の流れを図２に基づいて説明する。
【００２５】
図２は、プリントサーバ１０及びクライアントコンピュータ２０におけるプリンタドライバのインストールに関連するプログラムモジュールの構成例を示す図である。プリントサーバ１０上の印刷サービスモジュール１００はオペレーティングシステム上で印刷処理やプリンタドライバのインストールを制御するサービスプログラムである。１０１は、プリンタドライバ１０２に関するドライバ構成情報であり、オペレーティングシステムの共有記憶領域に格納されている。クライアントコンピュータ２０上の印刷サービスモジュール２００の処理内容は、プリントサーバ１０の印刷サービスモジュール１００の処理内容と同様である。
【００２６】
２０１はプリンタドライバ２０２と対応するドライバ構成情報であり、Point&Printが機能していない時点ではクライアントコンピュータ２０上には存在しておらず、Point&Printによって、プリンタドライバ２０２及びドライバ構成情報２０１とが組み込まれることになる。
【００２７】
図３Ａは、Point＆Print機能を利用したプリンタドライバの代表的なインストールの流れを示す図であり、まず、クライアントコンピュータ２０を利用するユーザが印刷サービスモジュール２００を通じて共有プリンタを指定し、Point&Printの要求をプリントサーバ１０の印刷サービスモジュールに送信する（Ｓ３０１）。
【００２８】
プリントサーバ１０の印刷サービスモジュール１００は、クライアントコンピュータ２０の印刷モジュール２００から送信された要求に応じてドライバ構成情報１０１を参照して（Ｓ３０２）、クライアントコンピュータ２０にダウンロードすべきプリンタドライバのインストールセットを決定する（Ｓ３０３）。
【００２９】
そして、印刷サービスモジュール２００と連携しながら、プリントサーバ１０の記憶領域に記憶されているプリンタドライバ１０２のインストールセットをクライアントコンピュータ２０にコピーする（Ｓ３０４）。印刷サービスモジュール２００は、そのインストールセットによりダウンロードしたプリンタドライバをクライアントコンピュータ２０のオペレーティングシステム（ＯＳ）に登録し、同時にドライバ構成情報２０１をオペレーティングシステムの共有記憶領域に登録する（Ｓ３０５）。
【００３０】
この結果、プリントサーバ１０と、クライアントコンピュータ２０とは、同一のプリンタドライバとそのドライバ構成情報を共有することとなり、ユーザはクライアントコンピュータ２０から共有プリンタとしてプリンタ３０を指定して、印刷を直ちに実行することができる。
【００３１】
図３Ｂを用いて、Point＆Print機能を利用してインストールされたクライアントコンピュータ２０のプリンタドライバ２０２へ、プリントサーバ１０のプリンタドライバ１０２の構成更新を反映する際の流れを説明する。
ＣＤ−ＲＯＭなどで配布されるインストーラがプリンタサーバ１０上で実行され、プリンタドライバ１０２への新規ファイル追加や、既に存在するファイル更新や、または既存ファイル削除が行われる。これら操作によって更新されたプリンタドライバ１０２は、プリントサーバ１０００のメモリ（ＯＳの記憶領域）に格納される(Ｓ３０６)。
【００３２】
次にインストーラにより、もしＳ３０６で新規追加したファイルがあればドライバ構成情報１０１にそのファイル名が追記される。またもしＳ３０６で既存ファイルを削除した場合、ドライバ構成情報１０１からそのファイル名が削除される（Ｓ３０７）。
ユーザによるクライアントコンピュータ２０からの印刷実行開始や、プリンタサーバでの印刷キューへのアクセスが発生する(Ｓ３０８)と、印刷サービスモジュール１００は、クライアントコンピュータ２０の印刷サービスモジュール２００に対してプリンタドライバ２０２を更新するように通知する（Ｓ３０９）。そして次にドライバ構成情報１０１に記載されているプリンタドライバ１０２を構成するインストールセットをクライアントコンピュータ２０に送信する（Ｓ３１０）。この送信を受けてクライアントコンピュータ２０の印刷サービスモジュール２００は、インストールセットをプリンタドライバ２０２として再登録し、及びそれに伴ってドライバ構成情報２０１の更新を行う（Ｓ３１１）。
【００３３】
図４Ａは、本実施形態に係るプリントサーバのハードウェア構成を示すブロック図である。
【００３４】
図４Ａにおいて、４０１はＣＰＵで、ＲＡＭ４０２にロードされたプログラムに従って本実施形態に係る処理を実行している。ＲＡＭ４０２は、各種プログラムを記憶するメモリエリア、及びＣＰＵ４０１による制御処理の実行時におけるワークエリアとして使用され、各種データを一時的に保存するメモリエリアとしても使用される。ハードディスク（ＨＤ）４０３には、予めＯＳや各種プログラムがインストールされており、サーバの立ち上げ時、或はプログラムの起動が指示されると、その指示されたプログラムがＲＡＭ４０２にロードされてＣＰＵ４０１の制御の下に実行される。表示部４０４は、例えばＣＲＴや液晶などの表示部である。入力部４０５は、キーボードやマウスなどのポインティングデバイスを含み、ユーザの操作に応じたデータの入力に使用される。
【００３５】
ネットワーク・インターフェース（Ｉ/Ｆ）４０６は、イーサネット（登録商標）やインターネットなどのネットワークと接続するためのインターフェースユニットであり、係るインターフェースユニットを介して、ネットワーク上で接続するクライアントコンピュータに対して、追加インストールの対象となる追加ファイル（例えば、キーファイル、機能拡張モジュール（これらの内容は後の図４Ｂで詳細に説明する））やインストールセットは、ＣＰＵ４０１、Add-Inインストーラ１０４（この内容も後の図４Ｂで詳細に説明する）の制御の下、送信される。ネットワーク・インターフェース（Ｉ/Ｆ）４０６及びＣＰＵ４０１、Add-Inインストーラ１０４は、クライアントコンピュータとネットワークを介してデータの送受信を行う通信ユニットとして機能することができる。
【００３６】
システムバス４０７はこれら各部とＣＰＵ４０１とを接続し、データや各種制御信号を伝送している。
【００３７】
尚、クライアントコンピュータのハードウェア構成も、基本的にこのプリントサーバのハードウェア構成と同じであるため、その説明を省略する。
【００３８】
図４Ｂは、本実施形態に係るプリントサーバシステムの機能構成を示すブロック図であり、前述の図２と共通する部分は同じ参照番号で示している。図４Ｂの構成では、Add-inインストーラ１０４、機能拡張モジュール１０５、キーファイル１０６および追加プログラムリスト１０７が加わっている点が、前述の図２の構成と異なっている。
【００３９】
Add-Inインストーラ１０４は、追加プログラムリスト１０７に登録されたファイルについて追加インストールを行う。機能拡張モジュール１０５は予め追加プログラムリスト１０７に登録されており、キーファイル１０６はある条件下で追加プログラムリスト１０７に登録される。
【００４０】
Add-Inインストーラ１０４は、本実施形態の中心となる情報処理部であり、追加プログラムリスト１０７に従ってファイルの追加処理を行うファイル追加モジュールと、追加されたファイル（追加ファイル、追加プログラム）の登録処理を行うファイル登録モジュールと、印刷サービスモジュール１００にモジュール構成の変更を認識させる認識モジュールと、プリンタドライバが共有プリンタを制御する目的で使われているかどうかを判断する判断モジュールと、共有プリンタに接続する他のコンピュータにモジュール構成の変更を通知する通知モジュールと、ファイル追加モジュールを削除する削除モジュールと、ファイル追加モジュールの登録を解除する登録解除モジュールと、キーファイル１０６を追加プログラムリスト１０７に含めるかどうかを判定するキーファイル追加判定モジュールと、キーファイル追加判定モジュールの判定結果に従ってキーファイル１０６を追加プログラムリスト１０７に加える追加プログラムリスト変更モジュールとを有する。
【００４１】
機能拡張モジュール１０５は、例えばＤＬＬ（Dynamic Link Library)などのプログラムファイルであり、追加インストールされることによって、追加の対象となるプリンタドライバに含まれる他のプログラムモジュールと連携して動作が可能である。この機能拡張モジュール１０５のプログラムは、例えば、プリンタドライバによる特殊な印刷（画像処理、暗号化処理）といった機能をプリンタドライバ１０２に付加し、そのプリンタドライバ１０２の機能を拡張させる働きがある。
【００４２】
また、キーファイル１０６は、機能拡張モジュール１０５の機能拡張を動作させるために必要なファイルであり、そのファイル形式は特に制限されないものとする。
【００４３】
Add-Inインストーラ１０４や機能拡張モジュール１０５、キーファイル１０６、追加プログラムリスト１０７は、ソフトウェア使用許諾契約書などの電子ファイルと共に、それらを記録したＣＤ-ＲＯＭメディアやネットワークを通じて配布され、プリントサーバ１０００のシステム上にコピーされる。本実施形態では、プリントサーバ１０００を利用する管理ユーザが、Add-Inインストーラ１０４のプログラムを実行することにより開始される。
【００４４】
図５は、本実施形態に係る、プリントサーバ１０００における機能拡張モジュール１０５およびキーファイル１０６のインストールの流れを示す図である。この動作によりPoint＆Print機能を利用して既にインストールしたクライアントコンピュータ２０のプリンタドライバ２０２が更新される。
【００４５】
図５において、Add-Inインストーラ１０４が起動されることにより、キーファイル追加判定モジュールは、キーファイル１０６を追加プログラムリスト１０７に含めるかどうかを判定し（Ｓ５０１）、キーファイルを追加する場合、ファイル追加モジュールにより、追加プログラムリスト１０７に登録されたキーファイル１０６を、プリントサーバ１０００のメモリ（ＯＳの記憶領域）にコピーする（Ｓ５０２）。
【００４６】
次に、登録モジュールにより、ドライバ構成情報１０１に、その追加した追加プログラムリスト１０７を追加登録する（Ｓ５０３）。
本実施例の場合、図３ＢのＳ３０８でユーザなどの操作時にＯＳが発生させたドライバ更新通知イベントを、能動的に起こすためにAdd-Inインストーラ１０４で、Ｓ５０４、Ｓ５０６、Ｓ５０８、Ｓ５１０を実行してもよい。  
認識モジュールにより、印刷サービスモジュール１００の再起動を指示する（Ｓ５０４）。これによりステップＳ５０５で、印刷サービスモジュール１００が再起動される。
【００４７】
ステップＳ５０６、Ｓ５０７では、判断モジュールにより、プリンタドライバ１０２が共有プリンタを制御する目的で使われているか否かの情報を取得する。
【００４８】
更に、通知モジュールは、印刷サービスモジュール１００に対して印刷キューの解除（Ｓ５０８）、印刷キューの復元を指示する（Ｓ５１０）。ステップＳ５０９，Ｓ５１１のそれぞれは、印刷サービスモジュール１００における印刷キューの解除、印刷キューの追加処理を示している。
【００４９】
こうしてプリントサーバ１０００におけるファイルの追加処理が終了すると、印刷サービスモジュール１００は、次にクライアントコンピュータ２０００の印刷サービスモジュール２００に対してプリンタドライバ２０２を更新するように通知する（Ｓ５１２）。そして次に、追加プログラムリストのファイルを含むインストールセットをクライアントコンピュータ２０００に送信する（Ｓ５１３）。これによりクライアントコンピュータ２０００の印刷サービスモジュール２００は、追加プログラムリストのファイルをプリンタドライバ２０２へ登録し、及びそれに伴ってドライバ構成情報２０１の更新を行う（Ｓ５１４）。
【００５０】
図６Ａは、本実施形態に係るプリントサーバシステムのプリントサーバ１０００における処理の流れを示すフローチャートで、この処理を実行するプログラムはＨＤ４０３にインストールされており、ＲＡＭ４０２にロードされて実行される。この処理は、既に登録されているプリンタドライバ１０２に対して、例えば入力部４０５を使用して新たにファイルを追加するように指示されることにより開始される。尚、追加されるファイルは、プリントサーバ１０００に対してＣＤ−ＲＯＭ等の記憶媒体で提供されてもよく、或はインターネットなどの通信回線を介してダウンロードされてもよい。
【００５１】
まず、ステップＳ６０１において、キーファイルを追加インストールするかどうかを判定する。追加インストールをするか否かの判定は、例えば、図７に示すようなインストーラのユーザインタフェース７０１をＣＰＵ４０１の制御の下、表示部４０４に表示させ、チェックボックス７０２などによって、指定されているネットワークプリンタ（図７の網掛けで指定されているプリンタ）に追加ファイルを利用不可能にする旨の指示が入力されたか否かに基づいて、キーファイル追加判定モジュールが判定の処理を実行する。
【００５２】
ステップＳ６０１の判定処理の結果に基づいて、キーファイル又は拡張機能モジュールを追加プログラムリストに追加せず、クライアントコンピュータ２０００にインストールされているプリンタドライバの機能を拡張しない場合は（Ｓ６０１-Ｎｏ）、処理をステップＳ６１２に進める。
【００５３】
ステップＳ６１２の処理においては、キーファイル又は機能拡張プログラムの少なくとも一方を追加プログラムリスト１０７に登録することなしにプリンタドライバ１０２がアクセス可能なプリントサーバ１０００におけるローカル領域にコピーする。通常、コピーすべきオペレーティングシステムの記憶領域の相対的な位置（ディレクトリ・パス）はプリンタドライバ１０２が記憶されている位置と同じであり、オペレーティングシステムに問い合わせることによって取得可能である。
【００５４】
ステップＳ６１２において、コピーされたキーファイル１０６はクライアントコンピュータ２０００には、追加インストールの対象として指定されていない場合は転送されない。しかし、追加インストール後のプリンタドライバ１０２からは参照可能であり、プリントサーバ１０００上で印刷処理を行う場合はキーファイルに基づく機能の拡張が可能になる。キーファイルと機能拡張モジュールの少なくとも一方を追加プログラムリストから除くことにより、クライアントコンピュータ２０００で機能拡張モジュールを動作させないことができる。
【００５５】
ステップＳ６０１の判定処理の結果に基づいて、キーファイルを追加プログラムリストに追加して、クライアントコンピュータ２０００にインストールされているプリンタドライバの機能を拡張する場合（Ｓ６０１-Ｙｅｓ）、処理をステップＳ６０２に進め、追加プログラムリスト変更モジュールによりキーファイル１０６を追加プログラムリスト１０７に登録する。
【００５６】
次に、ステップＳ６０３において、Add-Inインストーラ１０４は、ファイル追加モジュールにより追加プログラムリスト１０７に登録されているキーファイルの追加インストールを行うために、追加プログラムリストに登録されているキーファイルをプリントサーバ１０００上のオペレーティングシステムの記憶領域にコピーする。ステップＳ６１２の場合と同様、通常、コピーすべきオペレーティングシステムの記憶領域の相対的な位置（ディレクトリ・パス）はプリンタドライバ１０２が記憶されている位置と同じであり、オペレーティングシステムに問い合わせることによって取得可能である。
【００５７】
次に、ステップＳ６０４で、Add-Inインストーラ１０４は、追加ファイルを登録する登録モジュールによって、ステップＳ６０３においてコピーされた追加ファイル名（キーファイル名又はキーデータ名を含む）の情報をドライバ構成情報１０１に追加登録する。
【００５８】
次に、ステップＳ６０５で、Add-Inインストーラ１０４は、印刷サービスモジュール１００にドライバ構成の変更を認識させる認識モジュールによって、印刷サービスモジュール１００を再起動させる。印刷サービスモジュール１００の再起動により、先のステップＳ６０４で、ドライバ構成情報に追加された追加ファイル名が印刷サービスモジュール１００に認識され、結果として追加プログラムリスト１０７に登録された追加ファイルがプリンタドライバ１０２を構成するファイル群の一部として認識される。
【００５９】
以上の各ステップでプリントサーバ１０００上におけるキーファイル１０６の追加インストールは完了であるが、更に、クライアントコンピュータ２０００上のプリンタドライバ２０２に対しても追加プログラムリスト１０７に登録された追加ファイル（キーファイル）のインストールを行う場合はステップＳ６０６以降の処理を実行する。
【００６０】
ステップＳ６０６で、Add-Inインストーラ１０４は、判断モジュールによって、プリンタドライバ１０２が共有プリンタを制御する目的で使われているか否かの情報を取得して判断する。ステップＳ６０６の判断で、共有プリンタを制御する目的でプリンタドライバ１０２が使用されない場合（Ｓ６０６-Ｎｏ）、処理を終了する。
【００６１】
一方、ステップＳ６０６の判断で、共有プリンタを制御する目的でプリンタドライバ１０２が使用される場合（Ｓ６０６-Ｙｅｓ）、処理をステップＳ６０７に進める。ここではプリンタドライバ１０２を仲介して印刷を行うクライアントコンピュータ２０００が存在するので共有プリンタを制御する目的で使われていると判断され、ステップＳ６０７に処理が進められる。
【００６２】
次に、ステップＳ６０７で、Add-Inインストーラ１０４は、プリントサーバ１０００上の印刷キュー１０３の情報を取得し、保持する。これは後述するステップＳ６０９において必要となる情報である。
【００６３】
次に、ステップＳ６０８で、Add-Inインストーラ１０４は、通知モジュールにより、共有プリンタに接続する他のクライアントコンピュータ上の印刷サービスモジュール２００にプリンタドライバの構成（モジュール構成）が変更されたことを通知するため、プリントサーバ１０００上の印刷キュー１０３を削除し、更に、ステップＳ６０９で、Add-Inインストーラ１０４は、通知モジュールによって、印刷キュー１０３の復元を指示し、印刷サービスモジュール１００において、印刷キュー１０３が復元される。この際、先のステップＳ６０７で予め取得しておいた印刷キュー１０３の情報が利用されて印刷キュー１０３が復元される。
【００６４】
ステップＳ６０８とステップＳ６０９の処理の結果に基き、ステップＳ６１０で、印刷サービスモジュール１００は、プリンタドライバ１０２のドライバ構成情報が更新されたことをクライアントコンピュータ２０００上の印刷サービス２００に通知する。
【００６５】
そして、ステップＳ６１１で、追加プログラムリストのファイルを含むインストールセットをクライアントコンピュータ２０００に送信する。
【００６６】
図６Ｂは、本実施形態に係るプリントサーバシステムのクライアントコンピュータ２０００における処理の流れを示すフローチャートである。
【００６７】
ステップＳ６５１では、前述の図６ＡのステップＳ６１１で送信された、追加プログラムリストの追加ファイルを含むインストールセットを受信する。これによりクライアントコンピュータ２０００の印刷サービスモジュール２００は、その更新通知に基づいてドライバ構成情報２０１を参照し、追加ファイルを含むプリンタドライバ１０２のインストールセットをプリントサーバ１０００からダウンロードする。この場合、図６ＡのステップＳ６０１で、キーファイル１０６の内容が追加プログラムリストに含められている場合は、追加インストールの対象として、キーファイル１０６及び機能拡張モジュールがダウンロードされ、キーファイル１０６の内容が追加プログラムリストに含められない場合は、機能拡張モジュールがダウンロードされる。
【００６８】
すなわち、クライアントコンピュータ２０００には、キーファイル１０６の内容がダウンロードされないことになる。
【００６９】
次に、ステップＳ６５２で、印刷サービスモジュール２００は、クライアントコンピュータ２０００のオペレーティングシステムに、追加ファイル（キーファイル及び機能拡張モジュール）を含むプリンタドライバ１０２を、プリンタドライバ２０２として登録する。
【００７０】
そして、ステップＳ６５３で、ステップＳ６５１で受信した追加プログラムリストのファイルとインストールセットとに基づいて、プリンタドライバ２０２のドライバ構成情報２０１を更新する。
【００７１】
以上説明した処理により、キーファイルを追加するか否かの判定に基づいて、追加ファイルのインストールを行う際、キーファイルを含めた追加ファイルをクライアントコンピュータ２０００にインストールするか否かを制御することが可能になる。キーファイルを追加する場合、Point&Printによって、クライアントコンピュータ２０００に予めダウンロードされていたプリンタドライバ２０２に対しても、プリントサーバ１０００の追加ファイル（追加インストールの対象となるプログラムモジュールを特定する追加プログラムリストに登録されているファイル）をインストールすることが可能になる。
次に図５、図６の実施形態１の処理を行った後に、図３Ａで示したPoint＆Print機能を利用したプリンタドライバのクライアントコンピュータ２０００へのインストールを行なってもよい。
【００７２】
もしクライアントコンピュータ２０００にインストールされているプリンタドライバ２０２の機能を拡張しないとADDINインストーラがユーザの入力により決定している場合は、プリントサーバ１０００側のドライバ構成情報１０１にＳ６１２の処理により、キーファイル１０６は登録されない。よってPoint＆Print機能を利用したインストールを行った後(S305)もクライアントコンピュータ２０００のドライバ構成情報２０１にキーファイルは登録されない。
【００７３】
また逆にもしクライアントコンピュータ２０００にインストールされているプリンタドライバ２０２の機能を拡張する場合は、プリントサーバ１０００側のドライバ構成情報１０１にＳ６０２の処理によりキーファイルは登録される。よってPoint＆Print機能を利用したインストールを行った(S305)場合、クライアントコンピュータ２０００のドライバ構成情報にキーファイルが登録され、インストールセットの一部としてキーファイル１０４がクライアントコンピュータ２０００に格納される。
【００７４】
以上説明したように、プリンタドライバのインストールセットをクライアントコンピュータ２０００へ送信するプリントサーバ１０００を開示した。プリントサーバ1000内のCPUは、ADD-INインストーラ104を実行する。これにより、ADD−INインストーラ104は、ポイントアンドプリント時に機能拡張モジュールを動作させるインストールセットをクライアントコンピュータ２０００へ送信するか否かユーザからの入力に応じて決定する。送信すると決定した場合は、追加プログラムリストにキーデータを書き込む。
【００７５】
次に、拡張モジュールを動作させるインストールセットを送信するとADDINモジュールが決定し、追加プログラムリストにキーデータ又は機能拡張モジュールを書き込んでいる場合は、クライアントコンピュータ2000に対して機能拡張モジュールが動作するインストールセットを送信する。インストールセットには、追加プログラムリストに含まれるプログラムデータ群が含まれる。次に、機能拡張モジュールを動作させるインストールセットを前記他の情報処理装置へ送信しないとADD-INインストーラが決定した場合は、ADD-INインストーラ１０４追加プログラムリストからキーデータ又は機能拡張モジュールの少なくとも一つを除く。次に、当該追加プログラムリストに登録されているプログラムデータを、拡張モジュールが動作しないインストールセットとしてクライアントコンピュータ２０００へ印刷サービスモジュール１００が送信する。
【００７６】
図８は、Add-inインストーラ１０４によって機能の拡張に関する追加ファイルがインストールされる前のプリンタドライバのユーザインタフェースを例示する図であり、図９は、Add-inインストーラ１０４によって機能の拡張に関する追加ファイルがインストールされた後のプリンタドライバのユーザインタフェースを例示する図である。
【００７７】
この例では、機能の拡張に関する追加ファイルがインストールされると、ダイアログ８０１内にプロパティシート９０１が追加され、プロパティシート９０１より呼び出し可能な設定（コピー禁止、無効、コピー等）が拡張機能として提供されることを示している。本実施形態では、プロパティシート９０１から設定可能な内容は、後述するアプリケーション２０５から変更させない設定としてコピー禁止が選択されているが、プロパティシート９０１の設定によっては、アプリケーション２０５からコピー可能に変更することも可能である。
【００７８】
また、本実施形態とは逆の関係になる追加ファイルのアンインストール処理は、前述の実施形態のうち、２つの処理ステップを置き換えることにより実現することができる。
【００７９】
すなわち、Add-Inインストーラ１０４は、追加プログラムリスト１０７のファイルをコピーするステップＳ６０３（図６Ａ）の代わりに追加ファイルを削除する削除モジュールによってオペレーティングシステムに記憶されている追加ファイルおよびキーファイル１０６が存在すればキーファイル１０６を削除する。
【００８０】
そして、ドライバ構成情報１０１に追加ファイル情報を追加するステップＳ６０４の代わりに追加ファイルの情報を登録解除する登録解除モジュールによってドライバ構成情報１０１から追加ファイルの情報を削除する。
【００８１】
以上、２つのステップを図６Ａの処理で置き換えることにより、追加インストールされたファイルはサーバコンピュータ１０００からアンインストールすることができる。
【００８２】
更に、図６ＡのステップＳ６０６〜Ｓ６１１及び図６ＢのステップＳ６５１〜Ｓ６５３の処理を実行することにより、ネットワークを介して接続されているクライアントコンピュータ２０００においても、その追加ファイルをアンインストールすることができる。
【００８３】
＜プリンタドライバの処理＞
次に、キーファイル１０６の有無によって、追加インストールされる機能拡張モジュールの動作を抑止する印刷制御プログラム（プリンタドライバ）の処理を説明する。
【００８４】
図１０は、プリンタドライバの処理を説明するプリントサーバシステムの機能構成を示すブロック図であり、前述の図４Ｂと共通する部分は同じ参照番号で示している。図１０は、図４Ａ、Ｂ乃至図９を用いて説明した追加ファイルのインストール処理がなされた状態を表している。
【００８５】
また、プリントサーバシステムにおいて、プリンタドライバ１０２Ａおよび２０２Ａに対応したプリンタ３０が、ネットワークを介して接続されているものとする。更に、クライアントコンピュータ２０１０上には描画エンジン２０４、アプリケーション２０５が別途インストールされており、この点において図４Ｂのクライアントコンピュータ２０００の構成と異なっている。
【００８６】
Microsoft社製Windows（登録商標）のオペレーティングシステムにおいては、描画エンジン２０４は、アプリケーション２０５からＧＤＩ（Graphic Device Interface）関数を描画データとして受け取り、それらの関数をＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０２ＡへＤＤＩ関数を出力する。
【００８７】
プリンタドライバ２０２Ａは、描画エンジン２０４から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能なプリンタ制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、印刷ジョブとして印刷サービスモジュール２００を経てプリントサーバ１０１０の印刷サービスモジュール１０００へ転送される。そして、転送された印刷ジョブはプリンタ３０に該当する印刷キュー１０３に投入され、順次プリンタ３０へ印刷データとして出力される仕組みとなっている。
【００８８】
図１１は、追加ファイルの追加インストールの際、機能拡張モジュールを動作させるためのキーファイルの有無によって、機能の拡張を抑止するプリンタドライバ２０２Ａの処理を説明するフローチャートである。
【００８９】
まず、ステップＳ１１０１において、プリンタドライバ２０２Ａは、アプリケーション２０５からの印刷要求を、描画エンジン２０４を介して受信する。このとき、ステップＳ１１０２において、プリンタドライバ２０２Ａは、要求を受けた印刷処理において、インストール済みのプリンタドライバの機能を拡張した印刷が必要か否かの判定を行う。
【００９０】
ステップＳ１１０２の判定処理において、機能を拡張した印刷が必要でない場合は（Ｓ１１０２-ＮＯ）、印刷処理を抑止する必要はないので、処理をステップＳ１１０８に進め、通常印刷処理を行い、処理を終える。
【００９１】
一方、アプリケーション２０５からの印刷要求が、プリンタドライバの機能を拡張した印刷が必要となる場合は（Ｓ１１０２-ＹＥＳ）、処理をステップＳ１１０３へ進める。
【００９２】
ステップＳ１１０３では、プリンタドライバ２０２Ａ内で、ドライバ構成情報２０１Ａ中に、プリンタドライバの機能を拡張するためのプログラムモジュール（機能拡張モジュール）を動作させるためのキーファイルが存在するか否かの判定を行う。
【００９３】
ここで、キーファイルが存在すれば（Ｓ１１０３-ＹＥＳ）、クライアントコンピュータ２０１０は、予めインストールされているプリンタドライバの機能の拡張をするための機能拡張モジュールを動作させることが可能になるので、処理をステップＳ１１０６に進め、プリンタドライバの機能を拡張した印刷（以下、「機能拡張印刷」ともいう。）を行い、処理を終える。
【００９４】
一方、ドライバ構成情報２０１Ａ中にキーファイルがない場合は（Ｓ１１０３-ＮＯ）、処理をステップＳ１１０４に進め、クライアントコンピュータ２０１０のローカル領域にキーファイル１０６が存在するかを検索する。
【００９５】
キーファイル１０６がクライアントコンピュータ２０１０のローカル領域に存在しない場合は（Ｓ１１０４-ＮＯ）、機能拡張印刷が実行することができないとして、処理をステップＳ１１０７に進め、機能拡張印刷を抑止する。
【００９６】
機能拡張印刷の抑止の動作としては、印刷中止や、機能を拡張した印刷ではなくキーファイルが存在しなくても実行することが可能な他の通常機能のみを反映して印刷を行う動作や、あるいは、追加ファイルのインストールに依らず、プリンタドライバの初期値（初期設定）に基づいて、受信した印刷要求を実行するなどの動作が含まれるが、ここでは、その詳細な説明は割愛する。
【００９７】
一方、クライアントコンピュータ２０１０のローカル領域に、キーファイル１０６が存在する場合は（Ｓ１１０４-ＹＥＳ）、処理をステップＳ１１０５に進める。
【００９８】
ステップＳ１１０５では、プリンタドライバ２０２Ａが、ネットワークを介して、他のコンピュータ（たとえば、プリントサーバシステムにおける、プリントサーバまたはクライアントコンピュータ）と接続しているか否かの判定を行い、ネットワークに接続していれば（Ｓ１１０５-ＹＥＳ）、キーファイル１０６が存在していても、キーファイル１０６が不正にクライアントコンピュータのローカル領域に配置されたものとみなし、処理をステップＳ１１０７へ進め、機能拡張印刷を抑止する。
【００９９】
一方、ネットワークに接続していない状態、すなわち印刷サービスモジュール２００がプリンタ３０と直接通信を行うことが可能な状態であれば、キーファイル１０６に対する追加インストールは、このクライアントコンピュータ２０１０上で、正常になされたものとして、処理をステップＳ１１０６に進め、機能拡張印刷を行い、処理を終える。
【０１００】
ステップＳ１１０４およびステップＳ１１０５の処理は、図６ＡにおけるステップＳ６１２のようにネットワークに接続していないプリンタに対して、印刷抑止を行わないことを実現するための処理である。この処理により、機能拡張印刷を抑止するための印刷処理の対象がPoint&Printにより、予めプリンタドライバが他の情報処理装置として機能するクライアントコンピュータにインストールされている場合に限定されることになる。
ところで、例えばMicrosoft社製Windows（登録商標）の場合、オペレーティングシステムのバージョンによっては、クライアントコンピュータ２０００でユーザが印刷処理を行っても、プリンタサーバ１０００のプリンタドライバ１０２Ａの一部モジュールを使用してプリンタ制御コマンド生成が実行される。その場合も図１１で示した処理は、実際にユーザが印刷要求を出すアプリケーションが動作している環境で動作するプリンタドライバ部、例えばMicrosoft社製Windows（登録商標）の場合プリンタドライバ２０２ＡのＵＩモジュールの印刷イベントハンドリング部で実行される。
【０１０１】
クライアントコンピュータ２０００の印刷サービスモジュール２００は、機能拡張モジュールを使用するのに必要なキーデータを取得する。機能拡張モジュールのキーデータを印刷サービスモジュール２００が取得していない場合、機能拡張モジュールの機能の利用を制限した機能を、クライアントコンピュータ２０００のCPUにプリンタドライバ２０２の機能を実行させて実現する。
【０１０２】
さらに、キーデータと機能拡張モジュールが含まれるインストールセットを印刷サービスモジュール２００は取得する。
【０１０３】
また、キーデータを取得した場合、キーデータを用いて、拡張モジュールをクライアントコンピュータ２０００のCPUが実行する。
【０１０４】
以上説明したように、本発明の実施形態に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールが無条件に追加インストールされることを防止することが可能になる。
【０１０５】
あるいは、本発明の実施形態に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールの商品価値を保護することが可能になる。
【０１０６】
［他の実施の形態］
その他の実施例として、ステップ１１０６で機能拡張印刷を実行する前に、キーファイル１０６が保持する文字列やバイナリなどの暗号キーをチェックし、正しい暗号キーであれば実行し、不正であれば実行しないという処理を行ってもよい。その暗号キーを含むキーファイルはテキスト形式でも良いし、ＤＬＬ等の暗号キーを返す実行ファイルであっても特にかまわない。
【０１０７】
本発明の目的は前述したように、本実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１０８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【０１０９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【０１１０】
以上説明したように、本発明の実施形態に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールが無条件に追加インストールされることを防止することが可能になる。
あるいは、本発明の実施形態に拠れば、予めインストールされている印刷制御プログラムの機能を拡張するためのプログラムモジュールの商品価値を保護することが可能になる。
【図面の簡単な説明】
【０１１１】
【図１】プリントサーバシステムの構成例を示す図である。
【図２】プリントサーバ１０及びクライアントコンピュータ２０におけるプリンタドライバのインストールに関連するプログラムモジュールの構成例を示す図である。
【図３Ａ】Point＆Print機能を利用したプリンタドライバの代表的なインストールの流れを示す図である。
【図３Ｂ】Point＆Print機能を利用してインストールしたプリンタドライバの代表的な更新処理の流れを示す図である。
【図４Ａ】実施形態１に係るプリントサーバのハードウェア構成を示すブロック図である。
【図４Ｂ】実施形態１に係るプリントサーバシステムの機能構成を示すブロック図である。
【図５】実施形態１に係るプリントサーバ１０００における機能拡張モジュール１０５およびキーファイル１０６のインストールの流れを示す図である。
【図６Ａ】実施形態１に係るプリントサーバにおける処理の流れを示すフローチャートである。
【図６Ｂ】実施形態１に係るクライアントコンピュータにおける処理の流れを示すフローチャートである。
【図７】インストーラのユーザインタフェースの一例を示す図である。
【図８】Add-inインストーラ１０４によって拡張機能に関する追加ファイルがインストールされる前のプリンタドライバのユーザインタフェースを例示する図である。
【図９】Add-inインストーラ１０４によって拡張機能に関する追加ファイルがインストールされた後のプリンタドライバのユーザインタフェースを例示する図である。
【図１０】プリンタドライバの処理を説明するための、プリントサーバシステムの機能構成を示すブロック図である。
【図１１】キーファイルの有無によって、追加ファイルのインストールに基づく機能拡張を抑止するプリンタドライバ２０２Ａの処理を説明するフローチャートである。
【図１】
2006099747.tif 000003
【図２】
2006099747.tif 000004
【図３Ａ】
2006099747.tif 000005
【図３Ｂ】
2006099747.tif 000006
【図４Ａ】
2006099747.tif 000007
【図４Ｂ】
2006099747.tif 000008
【図５】
2006099747.tif 000009
【図６Ａ】
2006099747.tif 000010
【図６Ｂ】
2006099747.tif 000011
【図７】
2006099747.tif 000012
【図８】
2006099747.tif 000013
【図９】
2006099747.tif 000014
【図１０】
2006099747.tif 000015
【図１１】
2006099747.tif 000016