(57)【要約】      （修正有）【課題】オペレーティングシステムの共通機能を利用することで、プリンタードライバーに機能を追加するプラグインをサーバーからユーザー端末に展開する情報処理装置及びコンピュータープログラムを提供する。【解決手段】プリントサーバー１は、インストールされたプリンタードライバー１１０を格納するドライバーストア１０と、プラグイン１２０を格納するユーザーフォルダー１２と、プリンタードライバー１１０の情報を格納するレジストリ１３と、を有している。プリンタードライバー１１０は、プラグイン１２０を検出するプラグイン検出部１１４と、プラグイン検出部１１４が検出したプラグイン１２０をレジストリ１３に登録するレジストリ登録部１１３ａと、を有している。【選択図】図４
2016021203.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処置装置と第２の情報処理装置とからなる情報処理システムであって、
前記第１の情報処理装置は、
第１の記憶装置と第１のプロセッサとを備え、
前記第１の記憶装置は、
デバイスドライバーを格納するための第１のドライバー格納部と、
前記デバイスドライバーに追加するプラグインを格納するための第１のプラグイン格納部と、
前記デバイスドライバーの情報を格納するための第１のレジストリと、を有し、
前記第１のプロセッサは、
前記第１のプラグイン格納部を検索して第１のプラグインを検出し、
検出した前記第１のプラグインを前記第１のレジストリに登録し、
前記第２の情報処理装置は、
第２の記憶装置と第２のプロセッサとを備え、
前記第２の記憶装置は、
前記デバイスドライバーを格納するための第２のドライバー格納部と、
前記デバイスドライバーに追加するプラグインを格納するための第２のプラグイン格納部と、
前記デバイスドライバーの情報を格納するための第２のレジストリと、を有し、
前記第２のプロセッサは、
前記第２のレジストリを検索して第２のプラグインを検出し、
検出した前記第２のプラグインを前記第２のプラグイン格納部に格納する、
ことを特徴とする情報処理システム。
【請求項２】
Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記第１の情報処理装置は、前記第１のドライバー格納部に格納されたデバイスドライバーと前記第１のレジストリに格納されたデバイスドライバーの情報を前記第２の情報処理装置に送信し、
Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記第２の情報処理装置は、前記第１の情報処理装置により送信された前記デバイスドライバーを前記第２のドライバー格納部に格納するとともに前記第１の情報処理装置により送信された前記デバイスドライバーの情報を前記第２のレジストリに格納することを特徴とする請求項１に記載された情報処理システム。
【請求項３】
他の情報処理装置と通信可能な情報処理装置であって、
記憶装置とプロセッサとを備え、
前記記憶装置は、
デバイスドライバーを格納するためのドライバー格納部と、
前記デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、
前記デバイスドライバーの情報を格納するためのレジストリと、を有し、
前記プロセッサは、
前記プラグイン格納部を検索してプラグインを検出し、
検出した前記プラグインを前記レジストリに登録する、
ことを特徴とする情報処理装置。
【請求項４】
Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記ドライバー格納部に格納されたデバイスドライバーと前記レジストリに格納されたデバイスドライバーの情報を前記他の情報処理装置に送信することを特徴とする請求項３に記載された情報処理装置。
【請求項５】
他の情報処理装置と通信可能な情報処理装置であって、
記憶装置とプロセッサとを備え、
前記記憶装置は、
デバイスドライバーを格納するためのドライバー格納部と、
前記デバイスドライバーに追加するプラグインを格納するためのプラグイン格納部と、
前記デバイスドライバーの情報を格納するためのレジストリと、を有し、
前記プロセッサは、
前記レジストリを検索してプラグインを検出し、
検出した前記プラグインを前記プラグイン格納部に格納する、
ことを特徴とする情報処理装置。
【請求項６】
Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記他の情報処理装置により送信されたデバイスドライバーを前記ドライバー格納部に格納するとともに前記他の情報処理装置により送信された前記デバイスドライバーの情報を前記レジストリに格納することを特徴とする請求項５に記載された情報処理装置。
【請求項７】
情報処理装置に所定の処理を実行させるコンピュータープログラムにおいて、
前記情報処理装置は、
デバイスドライバーを格納するためのドライバー格納部と、
前記デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、
前記デバイスドライバーの情報を格納するためのレジストリと、を備える記憶装置を有するものであり、
当該情報処理装置に、
前記プラグイン格納部を検索するステップと、
前記プラグイン格納部において第１のプラグインを検出した場合に、検出した前記プラグインをレジストリに登録するステップと、
前記レジストリを検索するステップと、
前記レジストリにおいて第２のプラグインを検出した場合に、検出した前記プラグインを前記プラグイン格納部に格納するステップと、
を実行させることを特徴とするコンピュータープログラム。
【請求項８】
前記情報処理装置は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記ドライバー格納部に格納されたデバイスドライバーと前記レジストリに格納されたデバイスドライバーの情報を他の情報処理装置に送信する、又は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、他の情報処理装置により送信された前記デバイスドライバーを前記ドライバー格納部に格納するとともに前記デバイスドライバーの情報を前記レジストリに格納することを特徴とする請求項７に記載されたコンピュータープログラム。
【請求項９】
情報処理装置に所定の処理を実行させるコンピュータープログラムにおいて、
前記情報処理装置は、
デバイスドライバーを格納するためのドライバー格納部と、
前記デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、
前記デバイスドライバーの情報を格納するためのレジストリと、を備える記憶装置を有するものであり、
当該情報処理装置に、
当該情報処理装置がサーバーであるか、それともクライアントであるかを判断するステップと、
前記情報処理装置が前記サーバーであると判断された場合に、前記プラグイン格納部を検索するステップと、
前記プラグイン格納部において第１のプラグインを検出した場合に、検出した前記第１のプラグインをレジストリに登録するステップと、
前記情報処理装置が前記クライアントであると判断された場合に、前記レジストリを検索するステップと、
前記レジストリにおいて第２のプラグインを検出した場合に、検出した前記第２のプラグインを前記プラグイン格納部に格納するステップと、
を実行させることを特徴とするコンピュータープログラム。
【請求項１０】
前記情報処理装置は、
当該情報処理装置が前記サーバーである場合には、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記ドライバー格納部に格納されたデバイスドライバーと前記レジストリに格納されたデバイスドライバーの情報を前記ユーザー端末に送信し、
前記情報処理装置が前記ユーザー端末である場合には、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、前記サーバーにより送信された前記デバイスドライバーを前記ドライバー格納部に格納するとともに前記デバイスドライバーの情報を前記レジストリに格納することを特徴とする請求項９に記載されたコンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及びコンピュータープログラムに関する。
【背景技術】
【０００２】
従来より、パーソナルコンピューター（以下「ＰＣ」という）や各種デバイスのネットワーク化が進められており、プリンター等のデバイスが複数のクライアントＰＣで共有して使用されている。また、オフィスなどといった大規模な環境下では、ネットワークにプリントサーバーを設置し、このプリントサーバーにより各クライアントＰＣからの印刷ジョブを管理している。具体的には、クライアントＰＣにより発生する印刷ジョブは一旦管理サーバーに送信される。プリントサーバーは、ネットワークを介して受信する印刷ジョブを、印刷ジョブの送信ユーザーによって指定されたプリンターに出力する。
【０００３】
このようなネットワーク環境においては、マイクロソフト社のＷＩＮＤＯＷＳ（登録商標）が提供するＰｏｉｎｔ＆Ｐｒｉｎｔ（ポイントアンドプリント）機能により、プリンタードライバーをインストールする手法が一般的に用いられている。このＰｏｉｎｔ＆Ｐｒｉｎｔ機能では、その前提として、プリントサーバーが共有するプリンターのプリンタードライバーを予めインストールしておく必要がある。そして、クライアントＰＣでは、プリントサーバーが共有するプリンターを指定することで、プリントサーバーにインストールされたプリンタードライバーが当該プリントサーバーからクライアントＰＣに自動的に送信される。この方法によれば、個々のクライアントＰＣにてプリンタードライバーのインストールメディアを用意したり、プリンターのＩＰアドレスを予め調べたりする手間が必要なく、容易に共有プリンターを使用することができる。
【０００４】
また、基準となるプログラムに対して、機能を自在に追加する手法としてプラグインと呼ばれるものが知られている。この手法によれば、基準となるプログラムに対してプラグインを組み込むことで、基準となるプログラムが備えていない機能を利用することが可能となる。
【０００５】
Ｐｏｉｎｔ＆Ｐｒｉｎｔ機能では、ドライバーパッケージのファイル構成を記述したファイル（ＩＮＦファイル）に記載されたファイルしかクライアントＰＣへ展開されないという仕様がある。そのため、元のドライバーパッケージに含まれていないプラグインについては、クライアントＰＣに展開されないという不都合がある。
【０００６】
例えば特許文献１では、デバイスドライバーに対する機能追加を記述した追加機能データファイルをサーバーの論理プリンターに格納している。これにより、ＷＩＮＤＯＷＳのＰｏｉｎｔ＆Ｐｒｉｎｔ機能により、追加機能をクライアントＰＣのプリンタードライバーに反映させることとしている。
【０００７】
例えば特許文献２では、ドライバー情報ファイル（ＩＮＦファイル）の記述において、ファイルリスト部に、プリンタードライバー本体部を構成するファイル群に属する各ファイル名とともに、プラグイン格納用ファイルのファイル名を記述している。これにより、プリンタードライバー本体に対して複数個のプラグインを追加していっても、ファイルリスト部の記述は変化せず、プラグインファイル格納用ファイルは、ＯＳ側からはプリンタードライバーパッケージを構成する１つのファイルであると認識される。そして、プリンタードライバーのインストール動作を制御するＯＳ側は、ドライバー情報ファイルにおけるファイルリスト部の記述に基づきプリンタードライバーパッケージを構成するファイルのファイル名を取得し、取得したファイル名に従いインストール動作を実行する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２５８６５号公報
【特許文献２】特開２０１３−１４９３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示された技術は、ドライバーコアが提供する機能のうち、新たに追加された機種でどのような機能を使えるかを示したファイルをレジストリに登録するものである。そして、クライアントＰＣ側では、プリンタードライバーのドライバーコアがそのレジストリデータを参照し、プリンタードライバーが提供する機能を変えることとしている。すなわち、ドライバーコアでサポートされていない機能をプラグインとして追加することまでは想定されていない。
【００１０】
また、特許文献２に開示された技術では、ドライバーストアに格納されているプリンタードライバーがクライアント側にコピーされる。しかしながら、オペレーティングシステムの仕様上、ドライバーコアのファイルを改変することができないので、プラグインをクライアントＰＣ側へ展開することができないという問題がある。
【００１１】
本発明はかかる事情に鑑みてなされたものであり、その目的は、プリンタードライバーに追加するプラグインをサーバーからクライアントに展開することができる情報処理システム、情報処理装置及びコンピュータープログラムを提供することである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために、第１の発明は、第１の情報処置装置と第２の情報処理装置とからなる情報処理システムを提供する。ここで、第１の情報処理装置は、第１の記憶装置と第１のプロセッサとを備え、第１の記憶装置は、デバイスドライバーを格納するための第１のドライバー格納部と、デバイスドライバーに追加するプラグインを格納するための第１のプラグイン格納部と、デバイスドライバーの情報を格納するための第１のレジストリと、を有し、第１のプロセッサは、第１のプラグイン格納部を検索して第１のプラグインを検出し、検出した第１のプラグインを第１のレジストリに登録する。また、第２の情報処理装置は、第２の記憶装置と第２のプロセッサとを備え、第２の記憶装置は、デバイスドライバーを格納するための第２のドライバー格納部と、デバイスドライバーに追加するプラグインを格納するための第２のプラグイン格納部と、デバイスドライバーの情報を格納するための第２のレジストリと、を有し、第２のプロセッサは、第２のレジストリを検索して第２のプラグインを検出し、検出した第２のプラグインを第２のプラグイン格納部に格納する。
【００１３】
ここで、第１の発明において、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、第１の情報処理装置は、第１のドライバー格納部に格納されたデバイスドライバーと第１のレジストリに格納されたデバイスドライバーの情報を第２の情報処理装置に送信することが好ましい。また、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、第２の情報処理装置は、第１の情報処理装置により送信されたデバイスドライバーを第２のドライバー格納部に格納するとともに第１の情報処理装置により送信されたデバイスドライバーの情報を第２のレジストリに格納することが望ましい。
【００１４】
また、第２の発明は、他の情報処理装置と通信可能な情報処理装置を提供する。この情報処理装置は、記憶装置とプロセッサとを備え、記憶装置は、デバイスドライバーを格納するためのドライバー格納部と、デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、デバイスドライバーの情報を格納するためのレジストリと、を有し、プロセッサは、プラグイン格納部を検索してプラグインを検出し、検出したプラグインをレジストリに登録する。
【００１５】
ここで、第２の発明は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、ドライバー格納部に格納されたデバイスドライバーとレジストリに格納されたデバイスドライバーの情報を他の情報処理装置に送信することが好ましい。
【００１６】
また、第３の発明は、他の情報処理装置と通信可能な情報処理装置を提供する。この情報処理装置は、記憶装置とプロセッサとを備え、記憶装置は、デバイスドライバーを格納するためのドライバー格納部と、デバイスドライバーに追加するプラグインを格納するためのプラグイン格納部と、デバイスドライバーの情報を格納するためのレジストリと、を有し、プロセッサは、レジストリを検索してプラグインを検出し、検出したプラグインをプラグイン格納部に格納する。
【００１７】
ここで、第３の発明は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、他の情報処理装置により送信されたデバイスドライバーをドライバー格納部に格納するとともに他の情報処理装置により送信されたデバイスドライバーの情報をレジストリに格納することが好ましい。
【００１８】
また、第４の発明は、情報処理装置に所定の処理を実行させるコンピュータープログラムを提供するものであり、この情報処理装置は、デバイスドライバーを格納するためのドライバー格納部と、デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、デバイスドライバーの情報を格納するためのレジストリと、を備える記憶装置を有するものである。このコンピュータープログラムは、当該情報処理装置に、プラグイン格納部を検索するステップと、プラグイン格納部において第１のプラグインを検出した場合に、検出したプラグインをレジストリに登録するステップと、レジストリを検索するステップと、レジストリにおいて第２のプラグインを検出した場合に、検出したプラグインをプラグイン格納部に格納するステップと、を実行させる。
【００１９】
ここで、第４の発明において、情報処理装置は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、ドライバー格納部に格納されたデバイスドライバーとレジストリに格納されたデバイスドライバーの情報を他の情報処理装置に送信する、又は、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、他の情報処理装置により送信されたデバイスドライバーをドライバー格納部に格納するとともにデバイスドライバーの情報をレジストリに格納することが好ましい。
【００２０】
また、第５の発明は、情報処理装置に所定の処理を実行させるコンピュータープログラムを提供するものであり、この情報処理装置は、デバイスドライバーを格納するためのドライバー格納部と、デバイスドライバーに追加するためのプラグインを格納するプラグイン格納部と、デバイスドライバーの情報を格納するためのレジストリと、を備える記憶装置を有するものである。このコンピュータープログラムは、当該情報処理装置に、当該情報処理装置がサーバーであるか、それともクライアントであるかを判断するステップと、情報処理装置がサーバーであると判断された場合に、プラグイン格納部を検索するステップと、プラグイン格納部において第１のプラグインを検出した場合に、検出した第１のプラグインをレジストリに登録するステップと、情報処理装置がクライアントであると判断された場合に、レジストリを検索するステップと、レジストリにおいて第２のプラグインを検出した場合に、検出した第２のプラグインをプラグイン格納部に格納するステップと、を実行させる。
【００２１】
ここで、第５の発明において、情報処理装置は、当該情報処理装置がサーバーである場合には、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、ドライバー格納部に格納されたデバイスドライバーとレジストリに格納されたデバイスドライバーの情報をユーザー端末に送信し、情報処理装置がユーザー端末である場合には、Ｐｏｉｎｔ＆Ｐｒｉｎｔにより、サーバーにより送信されたデバイスドライバーをドライバー格納部に格納するとともにデバイスドライバーの情報をレジストリに格納することが好ましい。
【発明の効果】
【００２２】
本発明によれば、プラグインをレジストリに登録することで、プリンタードライバーのみならず、プラグインも第１の情報処理装置から第２の情報処理装置へと展開することが可能となる。これにより、プリンタードライバーでサポートされていない機能をプリンタードライバーに追加することができる。
【図面の簡単な説明】
【００２３】
【図１】印刷制御システムの構成を示す説明図
【図２】プリントサーバーの構成を示すブロック図
【図３】クライアントＰＣの構成を示すブロック図
【図４】プリントサーバーのシステム構成を示すブロック図
【図５】クライアントＰＣのシステム構成を示すブロック図
【図６】プリントサーバーにおけるレジストリ登録の処理を示すフローチャート
【図７】クライアントＰＣにおけるファイル復元の処理を示すフローチャート
【発明を実施するための形態】
【００２４】
図１は、本実施形態に係る印刷制御システムの構成を示す説明図である。情報処理システムの一例である印刷制御システムは、プリントサーバー１と、クライアントＰＣ２と、プリンター３とで構成されている。プリントサーバー１と、クライアントＰＣ２と、プリンター３とは、ＬＡＮ（Local Area Network）などのネットワーク５に接続されて、互いに通信可能に構成されている。なお、本実施形態では、プリントサーバー１と、クライアントＰＣ２と、プリンター３とがそれぞれ一つずつ設けられているが、一つ以上備える構成であってもよい。また、ネットワーク５は、インターネットなどの外部ネットワークを含む構成であってもよい。
【００２５】
図２は、プリントサーバー１の構成を示すブロック図である。プリントサーバー１は、ＣＰＵ１ａ、ＲＯＭ１ｂ、ＲＡＭ１ｃ、記憶装置１ｄ、表示装置１ｅ、入力装置１ｆ、ネットワークＩ／Ｆ部１ｇなどを備え、これらはバス１ｈを介して相互に接続されている（第１の情報処理装置）。
【００２６】
プロセッサとしてのＣＰＵ１ａは、ＯＳ（Operating System）プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ１ｂは、ＣＰＵ１ａが実行する各種プログラムを、当該ＣＰＵ１ａが読み取り可能なプログラムコードの形態で格納する。また、ＲＯＭ１ｂは、プログラムの実行に必要となるデータを記憶する。ＲＡＭ１ｃは、作業用の記憶領域となる。ＲＯＭ１ｂ及び記憶装置１ｄに格納されたプログラム及びデータは、ＣＰＵ１ａにより読み出されると、ＲＡＭ１ｃ上に展開される。そして、ＣＰＵ１ａは、ＲＡＭ１ｃ上に展開したプログラム及びデータに基づいて、各種の処理を行う。
【００２７】
記憶装置１ｄは、例えばＨＤＤ（Hard Disk Drive）からなる補助記憶装置であり、クライアントＰＣ１から送信されてきた印刷ジョブを一時的に保存したり、その他各種のアプリケーションプログラムやデータ等を保存したりしている。表示装置１ｄは、ＣＲＴや液晶表示装置等からなり、各種のメッセージ及びユーザーに対する入力受付画面、選択画面等を表示する。入力装置１ｆは、キーボードやマウス等からなり、ユーザーによる入力操作に用いられる。ネットワークＩ／Ｆ部１ｇは、クライアントＰＣ２やプリンター３等の外部機器との間で、ネットワーク５を介して、データの送受信を行う通信手段である。
【００２８】
このプリントサーバー１は、オペレーティングシステムとして、例えばＷＩＮＤＯＷＳを搭載している。プリントサーバー１には、ネットワーク５上のプリンター３に対応するデバイスドライバーの一例であるプリンタードライバーがインストールされ、当該プリンター３を共有している。プリントサーバー１は、クライアントＰＣ２から送信される印刷ジョブを受信すると、その印刷ジョブをネットワーク５に接続されているプリンター３に送信し、そのプリンター３により印刷を行わせる。このプリントサーバー１は、ＷＩＮＤＯＷＳのＰｏｉｎｔ＆Ｐｒｉｎｔ機能により、ネットワーク５上のプリンター３に対応するプリンタードライバー１１０をクライアントＰＣに展開することができる。
【００２９】
図３は、クライアントＰＣ２の構成を示すブロック図である。クライアントＰＣ２は、ＣＰＵ２ａ、ＲＯＭ２ｂ、ＲＡＭ２ｃ、記憶装置２ｄ、表示装置２ｅ、入力装置２ｆ、ネットワークＩ／Ｆ部２ｇなどを備え、これらはバス２ｈを介して相互に接続されている（第２の情報処理装置）。
【００３０】
プロセッサとしてのＣＰＵ２ａは、ＯＳ（Operating System）プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ２ｂは、ＣＰＵ２ａが実行する各種プログラムを、当該ＣＰＵ２ａが読み取り可能なプログラムコードの形態で格納する。また、ＲＯＭ２ｂは、プログラムの実行に必要となるデータを記憶する。ＲＡＭ２ｃは、作業用の記憶領域となるメモリである。ＲＯＭ２ｂ及び記憶装置１ｄに格納されたプログラム及びデータは、ＣＰＵ２ａにより読み出されると、ＲＡＭ２ｃ上に展開される。そして、ＣＰＵ２ａは、ＲＡＭ２ｃ上に展開したプログラム及びデータに基づいて、各種の処理を行う。
【００３１】
記憶装置２ｄは、例えばＨＤＤ（Hard Disk Drive）からなる補助記憶装置であり、各種のアプリケーションプログラムやデータ等を保存したりしている。表示装置２ｄは、ＣＲＴや液晶表示装置等からなり、各種のメッセージ及びユーザーに対する入力受付画面、選択画面等を表示する。入力装置２６は、キーボードやマウス等からなり、ユーザーによる入力操作に用いられる。ネットワークＩ／Ｆ部２ｇは、プリントサーバー１やプリンター３等の外部機器との間で、ネットワーク５を介して、データの送受信を行う通信手段である。
【００３２】
このクライアントＰＣ２は、オペレーティングシステムとして、例えばＷＩＮＤＯＷＳを搭載している。クライアントＰＣ２には、オペレーティングシステム上で動作するアプリケーションプログラムがインストールされている。クライアントＰＣ２は、アプリケーションプログラムにより作成された文書に対して印刷要求がなされると、プリンタードライバー１１０が印刷設定に応じた印刷データを作成する。そして、クライアントＰＣ２は、プリントサーバー１に印刷ジョブを送信する。クライアントＰＣ２には、ＷＩＮＤＯＷＳのＰｏｉｎｔ＆Ｐｒｉｎｔ機能により、ネットワーク５上のプリンター３に対応するプリンタードライバー１１０がプリントサーバー１から展開されている。
【００３３】
プリンター３は、プリントサーバー１から印刷ジョブを取得し、その印刷ジョブを実行することによって印刷出力を行う。すなわち、プリンター３は、印刷ジョブを受信すると、その印刷ジョブに基づいて用紙などに画像形成を行うことによって印刷出力を行う画像形成装置である。なお、プリンター３は、印刷出力を行うプリント機能のみを備えた装置であってもよいし、プリント機能の他にスキャン機能やコピー機能などを備えた複合機として構成される装置であってもよい。
【００３４】
図４は、本実施形態に係るプリントサーバー１のシステム構成を示すブロック図である。プリントサーバー１は、ドライバーストア１０と、システムフォルダー１１と、ユーザーフォルダー１２と、レジストリ１３とで構成されている。
【００３５】
ドライバーストア１０は、プリンタードライバー１１０のデータベースシステムであり、管理者によりインストールされたプリンタードライバー１１０を格納する。ドライバーストア１０へのファイルの追加・削除は、オペレーティングシステムが管理しており、プリンタードライバー１１０のインストール及びアンインストールを介して行われる。そのため、プリンタードライバー１１０のインストール後に、ユーザーの操作でドライバーストア１０内のプリンタードライバー１１０の一部ファイルのみを変更することはできない。本実施形態において、Ｐｏｉｎｔ＆Ｐｒｉｎｔ機能によりプリントサーバー１とクライアントＰＣ２との間で授受されるプリンタードライバー１１０は、プリントサーバー１のドライバーストア１０に格納されたデータが対象となる。
【００３６】
システムフォルダー１１は、ドライバーストア１０からコピーされたプリンタードライバー１１０を格納する。このシステムフォルダー１１には、オペレーティングシステム上でプリンタードライバーとして動作するファイルが格納される。プリンタードライバー１１０の構成については後述する。
【００３７】
ユーザーフォルダー１２は、プラグイン１２０のファイルを格納するフォルダーである。ユーザーフォルダー１２は、上述のドライバーストア１０及びシステムフォルダー１１と異なるフォルダーである。プラグイン１２０は、プリンタードライバー１１０に新たな機能を追加するために当該プリンタードライバー１１０に追加するプログラムであり、プリンタードライバー１１０が読み出して利用するライブラリや、それ自身で実行可能な実行ファイルなどから構成される。このユーザーフォルダー１２に格納されたファイルが、プリンタードライバー１１０によりプラグインとして認識され、利用されることとなる。
【００３８】
レジストリ１３は、オペレーティングシステムで用いられている設定情報のデータベースである。このレジストリ１３には、インストールされたプリンタードライバー１１０の情報や、プリンタードライバー１１０で利用する設定情報が格納される。ＷＩＮＤＯＷＳのＰｏｉｎｔ＆Ｐｒｉｎｔ機能では、ドライバーストア１０に格納されたデータのみならず、このレジストリ１３に格納された情報も、プリントサーバー１とクライアントＰＣ２との間で授受される。
【００３９】
プリンタードライバー１１０は、ユーザーインターフェース部（ＵＩ部）１１１と、レンダリング部１１２と、プラグイン操作部１１３と、プラグイン検出部１１４と、を有している。
【００４０】
ＵＩ部１１１は、ユーザーがプリンタードライバー１１０の操作を行うためのダイアログを生成して表示装置（図示せず）に表示させるユーザーインターフェースである。ＵＩ部１１１が生成するダイアログとしては、印刷設定や、プリンター３のオプション設定等が挙げられる。
【００４１】
レンダリング部１１２は、アプリケーションプログラムから印刷を要求されたデータを、ＵＩ部１１１のダイアログを通じて設定された印刷設定及びオプション設定に従い、プリンター３が印刷可能な形式に変換し、これにより、印刷データを生成する。
【００４２】
プラグイン操作部１１３は、後述するプラグイン検出部１１４の指示を受けて、プラグイン１２０に関する操作を行うものである。このプラグイン操作部１１３は、レジストリ登録部１１３ａと、ファイル復元部１１３ｂとを有している。
【００４３】
レジストリ登録部１１３ａは、ユーザーフォルダー１２に格納されたプラグイン１２０のファイルとそのファイル名とをバイナリ化して、そのデータをレジストリ１３のプリンタードライバー１１０の情報内に登録する。このレジストリ登録部１１３ａは、プリンタードライバー１１０がプリントサーバー１に適用された際に、その機能を担うこととなる。
【００４４】
ファイル復元部１１３ｂは、レジストリ１３のプリンタードライバー１１０の情報内に保存されているバイナリ化されたプラグイン１２０とそのファイル名との情報から、プラグインのファイルを復元する（プラグインのファイルに変換する）。そして、ファイル復元部１１３ｂは、プラグイン１２０のファイルをユーザーフォルダー１２に格納する。このファイル復元部１１３ｂは、プリンタードライバー１１０がクライアントＰＣ２に適用された際に、その機能を担うこととなる。
【００４５】
プラグイン検出部１１４は、プリンタードライバー１１０のプラグイン１２０を検出する。具体的には、プリンタードライバー１１０がプリントサーバー１に適用された際には、プラグイン検出部１１４は、ユーザーフォルダー１２を検索し、プラグイン１２０のファイルを検出する（第１の検出部）。プラグイン検出部１１４はユーザーフォルダー１２においてプラグイン１２０のファイルを検出した場合には、レジストリ登録部１１３ａにレジストリ登録の指示を行う。
【００４６】
また、プリンタードライバー１１０がクライアントＰＣ２に適用された際には、プラグイン検出部１１４は、レジストリ１３を検索し、プラグイン１２０のデータを検出する。プラグイン検出部１１４はレジストリ１３においてプラグイン１２０のデータを検出した場合には、ファイル復元部１１３ｂにファイル復元の指示を行う。
【００４７】
図５は、本実施形態に係るクライアントＰＣ２のシステム構成を示すブロック図である。クライアントＰＣ２は、ドライバーストア２０と、システムフォルダー２１と、ユーザーフォルダー２２と、レジストリ２３とで構成されている。これらの要素は、プリントサーバー１におけるドライバーストア１０と、システムフォルダー１１と、ユーザーフォルダー１２と、レジストリ１３と対応しており、その詳細については説明を省略する。
【００４８】
つぎに、図４を参照し、プリントサーバー１に関する処理を説明する。まず、管理者の操作によりプリントサーバー１にプリンタードライバー１１０がインストールされると、プリンタードライバー１１０がドライバーストア１０に格納される。
【００４９】
つぎに、ドライバーストア１０からシステムフォルダー１１にプリンタードライバー１１０がコピーされる。このシステムフォルダー１１にコピーされたドライバーストア１０が、オペレーティングシステム上で動作するファイルとなる。
【００５０】
プリンタードライバー１１０のインストール後には、必要に応じて、管理者の操作によりプリントサーバー１にプラグイン１２０が追加される。このプラグイン１２０が追加されると、そのファイルは、ユーザーフォルダー１２に格納される。
【００５１】
図６は、プリントサーバー１におけるレジストリ登録の処理を示すフローチャートである。プリントサーバー１は、ＲＯＭ１ｂに記憶されたプログラムをＣＰＵ１ａが実行することにより、図６のフローチャートに示す処理を実現する。
【００５２】
まず、ステップＳ１０において、プラグイン検出部１１４は、ユーザーフォルダー１２を探索する。
【００５３】
ステップＳ１１において、プラグイン検出部１１４は、ユーザーフォルダー１２においてプラグイン１２０を検出したか否かを判断する。このステップＳ１１において肯定判定された場合、すなわち、プラグイン１２０を検出した場合には、ステップＳ１２に進む。一方、ステップＳ１１において否定判定された場合、すなわち、プラグイン１２０を検出しない場合には、本処理を終了する（ＥＮＤ）。
【００５４】
ステップＳ１２において、プラグイン検出部１１４は、プラグイン１２０をレジストリ１３に登録するように、レジストリ登録部１１３ａに指示を行う（レジストリ登録の指示）。
【００５５】
ステップＳ１３において、レジストリ登録部１１３ａは、ユーザーフォルダー１２に格納されたプラグイン１２０のファイルとそのファイル名とをバイナリ化する。そして、レジストリ登録部１１３ａは、バイナリ化したプラグイン１２０のデータを、レジストリ１３のプリンタードライバーの情報内に登録し、本処理を終了する（ＥＮＤ）。
【００５６】
この際、レジストリ登録部１１３ａは、既にレジストリ１３にプラグイン１２０のデータが登録されていた場合には、ユーザーフォルダー１２に存在するプラグイン１２０のバージョンと既に登録されていたプラグイン１２０のバージョンとを比較する。そして、ユーザーフォルダー１２に存在するプラグイン１２０の方がバージョンが新しい場合には、レジストリ登録部１１３ａは、レジストリ１３のデータを上書きする。一方、ユーザーフォルダー１２に存在するプラグイン１２０の方がバージョンが古い場合には、レジストリ登録部１１３ａは、何もしない。
【００５７】
つぎに、図５を参照し、クライアントＰＣ２に関する処理を説明する。まず、Ｐｏｉｎｔ＆Ｐｒｉｎｔ機能により、プリントサーバー１からプリンタードライバー１１０がインストールされる。これにより、プリントサーバー１のドライバーストア１０からクライアントＰＣ２へとプリンタードライバー１１０が展開され、クライアントＰＣ２のドライバーストア２０に格納される。同様に、プリントサーバー１のレジストリ１３からクライアントＰＣ２へとその情報が展開され、クライアントＰＣ２のレジストリ２３に格納される。プリントサーバー１にプラグイン１２０が追加されている場合、レジストリ１３の情報には、バイナリ化されたプラグイン１２０のデータが含まれている。これにより、Ｐｏｉｎｔ＆Ｐｒｉｎｔ機能を通じて、クライアントＰＣ２にプラグイン１２０も提供されることとなる。
【００５８】
プリンタードライバー１１０がドライバーストア２０にコピーされると、ドライバーストア２０からシステムフォルダー２１にプリンタードライバー１１０がコピーされる。このシステムフォルダー２１にコピーされたドライバーストア２０が、オペレーティングシステム上で動作する。
【００５９】
図７は、クライアントＰＣ２におけるファイル復元の処理を示すフローチャートである。クライアントＰＣ２は、ＲＯＭ２ｂに記憶されたプログラムをＣＰＵ２ａが実行することにより、図７のフローチャートに示す処理を実現する。
【００６０】
まず、ステップＳ２０において、プラグイン検出部１１４は、レジストリ２３を探索する。
【００６１】
ステップＳ２１において、プラグイン検出部１１４は、レジストリ２３においてプラグイン１２０のデータを検出したか否かを判断する。このステップＳ２１において肯定判定された場合、すなわち、プラグイン１２０を検出した場合には、ステップＳ２２に進む。一方、ステップＳ２１において否定判定された場合、すなわち、プラグイン１２０を検出しない場合には、本処理を終了する（ＥＮＤ）。
【００６２】
ステップＳ２２において、プラグイン検出部１１４は、プラグイン１２０をユーザーフォルダー２２に復元するように、ファイル復元部１１３ｂに指示を行う（ファイル復元の指示）。
【００６３】
ステップＳ２３において、ファイル復元部１１３ｂは、レジストリ２３のプラグイン１２０のデータとそのファイル名とからファイルに復元する。そして、ファイル復元部１１３ｂは、プラグイン１２０のファイルを、ユーザーフォルダー２２の所定の場所にコピーし、本処理を終了する（ＥＮＤ）。
【００６４】
このように本実施形態によれば、プリントサーバー１とクライアントＰＣ２とからなる情報処理システムが構成されている。ここで、プリントサーバー１は、記憶装置１ｄ（第１の記憶装置）とＣＰＵ１ａ（第１のプロセッサ）とを備えている。記憶装置１ｄは、プリンタードライバー１１０を格納するためのドライバーストア（第１のドライバー格納部）１０と、プリンタードライバー１１０に追加するプラグイン１２０を格納するためのユーザーフォルダー１２（第１のプラグイン格納部）と、プリンタードライバー１１０の情報を格納するためのレジストリ１３（第１のレジストリ）と、を有している。そして、ＣＰＵ１ａは、ユーザーフォルダー１２を検索してプラグイン１２０（第１のプラグイン）を検出し、検出したプラグイン１２０をレジストリ１３に登録する。一方、クライアントＰＣ２は、記憶装置２ｄ（第２の記憶装置）とＣＰＵ２ａ（第２のプロセッサ）とを備えている。記憶装置２ｄは、プリンタードライバー１１０を格納するためのドライバーストア２０（第２のドライバー格納部）と、プリンタードライバー１１０に追加するプラグイン１２０を格納するためのユーザーフォルダー２２（第２のプラグイン格納部）と、プリンタードライバー１１０の情報を格納するためのレジストリ２３（第２のレジストリ）と、を有している。そして、ＣＰＵ２ａは、レジストリ２３を検索してプラグイン１２０（第２のプラグイン）を検出し、検出したプラグイン１２０をユーザーフォルダー２２に格納する。
【００６５】
この構成によれば、プリントサーバー１に追加されたプラグイン１２０は、レジストリ１３へと登録されることとなる。オペレーティングシステムのＰｏｉｎｔ＆Ｐｒｉｎｔ機能では、ドライバーストア１０に格納されたデータのみならず、レジストリ１３に格納された情報もプリントサーバー１からクライアントＰＣ２に送信される。これにより、プリンタードライバー１１０のみならず、プラグイン１２０もクライアントＰＣ２に展開されることとなる。このプラグイン１２０により、プリンタードライバー１１０（ドライバーコア）でサポートされていない機能をクライアントＰＣ２に追加することができる。
【００６６】
なお、上述した実施形態では、プリンタードライバー１１０は、プリントサーバー１として動作しているか、それともクライアントＰＣ２として動作しているかを認識せずに、プラグイン検出部１１４によるプラグイン１２０の検出結果に応じて動作している。しかしながら、プリンタードライバー１１０が、サーバーとして動作しているか、クライアントとして動作しているかを認識し、それに応じて動作を切り替えることもできる。プリンタードライバー１１０が、プリントサーバー１として動作しているか、それともクライアントＰＣ２として動作しているかを認識することは、レジストリ１３，２３に含まれる情報を参照することで行うことができる。
【００６７】
具体的には、プリントサーバー１から提供されたプリンタードライバー１１０、すなわち、クライアントＰＣ２のドライバーストア２０に格納されるプリンタードライバー１１０のレジストリ２３には、対応するプリンタードライバー１１０を提供したプリントサーバー１を識別するための識別情報が含まれている。そのため、プリンタードライバー１１０は、レジストリ１３，２３にプリントサーバー１の識別情報が含まれる場合は、自身がクライアントＰＣ２として動作していると認識し、上述のステップ２１以降の処理を行う。また、プリンタードライバー１１０は、レジストリ１３，２３にプリントサーバー１の識別情報が含まれない場合は自身がプリントサーバー１として動作していると認識し、上述のステップ１１以降の処理を行う。
【００６８】
以上、本発明の実施形態にかかるプリントサーバー及びクライアントを含む情報処理装置について説明したが、本発明は上述した実施形態に限定されることなく、その発明の範囲内において種々の変形が可能であることはいうまでもない。例えば、プリンタードライバーに限らず、スキャナードライバーやファクスドライバー等、種々のデバイスに適用するデバイスドライバーについて適用することができる。また、サーバー及びクライアントに上述の処理を実行させるコンピュータープログラム、及びこのコンピュータープログラムを記憶してコンピューター読取可能な情報記憶媒体も本発明の一部として機能する。
【符号の説明】
【００６９】
１      プリントサーバー（情報処理装置）
１０      ドライバーストア
１１      システムフォルダー
１２      ユーザーフォルダー
１３      レジストリ
２      クライアントＰＣ（情報処理装置）
２０      ドライバーストア
２１      システムフォルダー
２２      ユーザーフォルダー
２３      レジストリ
１１０      プリンタードライバー
１１１      ＵＩ部
１１２      レンダリング部
１１３      プラグイン操作部
１１３ａ    レジストリ登録部
１１３ｂ    ファイル復元部
１１４      プラグイン検出部
１２０      プラグイン
【図１】
2016021203.tif 000003
【図２】
2016021203.tif 000004
【図３】
2016021203.tif 000005
【図４】
2016021203.tif 000006
【図５】
2016021203.tif 000007
【図６】
2016021203.tif 000008
【図７】
2016021203.tif 000009