(57)【特許請求の範囲】
【請求項１】
予め認証されている認証対象のファイルと、前記認証対象のファイルの認証情報が記述された認証情報ファイルと、動作を規定するデフォルト設定ファイルとを有し、
情報処理装置にインストールされる際、前記認証情報ファイルの認証情報に基づき前記認証対象のファイルの認証を受けるプログラムであって、
ＣＰＵに、
情報処理装置に予め定められたファイル名の設定ファイルが存在する場合、前記設定ファイルに記述された設定データを、当該プログラムが格納される第１の記憶領域とは異なる第２の記憶領域に登録するデータ登録ステップと、
前記第２の記憶領域に前記設定データが記憶されているか否かを判定する判定ステップと、
前記設定データが記憶されていると判定された場合、前記設定データを当該プログラムの動作に反映させる設定反映処理ステップと、を実行させるプログラム。
【請求項２】
前記データ登録ステップでは、前記第２の記憶領域としてPrinterDriverDataレジストリに前記設定ファイルに記述された設定データを記憶する、
ことを特徴とする請求項１記載のプログラム。
【請求項３】
前記設定データが記憶されていると判定された場合、
前記設定データを、前記第１の記憶領域の前記デフォルト設定ファイルに記述されているデフォルトの設定データよりも優先して、当該プログラムの動作に反映させる、
ことを特徴とする請求項１記載のプログラム。
【請求項４】
前記データ登録ステップでは、
当該プログラムが制御する１つのハードウェアに対し、オペレーティングシステムが前記ハードウェアに対する設定を識別するために生成する重複しない論理プリンタ情報に対応づけて、前記第２の記憶領域に前記設定ファイルに記述された設定データを登録する、
ことを特徴とする請求項１記載のプログラム。
【請求項５】
前記設定データには複数の設定項目が記述可能であり、
前記設定反映処理ステップにおいて、前記設定データに全ての前記設定項目の記述がない場合、
ＣＰＵに、記述がない前記設定項目の規定値を機能管理データベースから読み出す規定値取得ステップを実行させる、ことを特徴とする請求項１記載のプログラム。
【請求項６】
前記データ登録ステップでは、前記設定ファイルのファイル名を指定する設定ファイル指示情報ファイルを探索し、
前記設定ファイル指示情報ファイルの指定する前記設定ファイルに記述された前記設定データを前記第２の記憶領域に登録する、ことを特徴とする請求項１記載のプログラム。
【請求項７】
前記論理プリンタ情報をフォルダ名又はディレクトリ名に含むフォルダ又はディレクトリに、前記設定ファイルが記憶されており、
前記データ登録ステップでは、フォルダ又はディレクトリ毎に、前記設定ファイルに記述された前記設定データを、前記論理プリンタ情報に対応づけて前記第２の記憶領域に登録することを特徴とする請求項４記載のプログラム。
【請求項８】
前記データ登録ステップでは、前記設定ファイルの電子署名を読み出し、情報処理装置に記憶されている前記設定ファイルから作成した電子署名と一致する場合に、前記設定ファイルに記述された設定データを、前記第２の記憶領域に登録する、
ことを特徴とする請求項１記載のプログラム。
【請求項９】
前記設定反映処理ステップでは、前記情報処理装置と接続された装置が提供する機能の設定値を表示し受け付ける表示受け付け画面を表示装置に表示し、
前記第２の記憶領域に前記設定データが記憶されている場合、前記設定データを用いて前記表示受け付け画面を生成し、
前記第２の記憶領域に前記設定データが記憶されていない場合、前記デフォルト設定ファイルを用いて前記表示受け付け画面を生成する、
ことを特徴とする請求項１記載のプログラム。
【請求項１０】
予め認証されている認証対象のファイルと、前記認証対象のファイルの認証情報が記述された認証情報ファイルと、動作を規定するデフォルト設定ファイルとが含まれるプログラムパッケージが、インストールされる際、前記認証情報ファイルの認証情報に基づき前記認証対象のファイルの認証を行う認証手段を有する情報処理装置であって、
予め定められたファイル名の設定ファイルが存在する場合、前記設定ファイルに記述された設定データを、プログラムパッケージのプログラムが格納される第１の記憶領域とは異なる第２の記憶領域に登録するデータ登録手段と、
前記第２の記憶領域に前記設定データが記憶されているか否かを判定する判定手段と、
前記設定データが記憶されていると判定された場合、前記設定データを当該プログラムの動作に反映させる設定反映処理手段と、を有する情報処理装置。
【請求項１１】
前記データ登録手段は、前記第２の記憶領域としてPrinterDriverDataレジストリに前記設定ファイルに記述された設定データを記憶する、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
前記設定データが記憶されていると判定された場合、
前記設定反映処理手段は、前記設定データを、前記第１の記憶領域の前記デフォルト設定ファイルに記述されているデフォルトの設定データよりも優先して、当該プログラムの動作に反映させる、ことを特徴とする請求項１０記載の情報処理装置。
【請求項１３】
前記データ登録手段は、当該情報処理装置が制御する１つのハードウェアに対し、オペレーティングシステムがハードウェアに対する設定を識別するために生成する重複しない論理プリンタ情報に対応づけて、前記第２の記憶領域に前記設定ファイルに記述された設定データを登録する、ことを特徴とする請求項１０記載の情報処理装置。
【請求項１４】
前記設定データには複数の設定項目が記述可能であり、  
前記設定データに全ての前記設定項目の記述がない場合、
前記設定反映処理手段は、記述がない前記設定項目の規定値を機能管理データベースから読み出す、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１５】
前記データ登録手段は、前記設定ファイルのファイル名を指定する設定ファイル指示情報ファイルを探索し、
前記設定ファイル指示情報ファイルの指定する前記設定ファイルに記述された前記設定データを前記第２の記憶領域に登録する、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１６】
前記論理プリンタ情報をフォルダ名又はディレクトリ名に含むフォルダ又はディレクトリに、前記設定ファイルが記憶されており、
前記データ登録手段は、フォルダ又はディレクトリ毎に、前記設定ファイルに記述された前記設定データを、前記論理プリンタ情報に対応づけて前記第２の記憶領域に登録する、
ことを特徴とする請求項１３記載の情報処理装置。
【請求項１７】
前記データ登録手段は、前記設定ファイルの電子署名を読み出し、情報処理装置に記憶されている前記設定ファイルから作成した電子署名と一致する場合に、前記設定ファイルに記述された前記設定データを、前記第２の記憶領域に登録する、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１８】
前記情報処理装置と接続された装置が提供する機能の設定値を表示し受け付ける表示受け付け画面を表示する表示装置を有し、
前記設定反映処理手段は、前記第２の記憶領域に前記設定データが記憶されている場合、前記設定データを用いて前記表示受け付け画面を生成し、
前記第２の記憶領域に前記設定データが記憶されていない場合、前記デフォルト設定ファイルを用いて前記表示受け付け画面を生成する、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１９】
請求項１〜９いずれか1項記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルがＯＳ（Operating System）により情報処理装置のフォルダにインストールされる際、認証を受けるプログラム等に関する。
【背景技術】
【０００２】
ユーザが文書などをプリンタで印刷する場合、プリンタドライバが表示する設定画面で印刷条件を設定することができる。プリンタが高機能化するほどユーザが設定可能な機能の項目が多くなる傾向がある。
【０００３】
しかし、日常的にユーザが使用するプリンタの機能はそれほど多岐に渡るものではなく、２〜３種類などの設定パターンのいずれかとなることが多い。そこで、ユーザがプリンタドライバで設定する印刷条件の設定パターンをテキストなどの変更しやすいフォーマットで記述し、インストール時にそのファイルに基づきカスタマイズを行い、動的にユーザに最適な操作環境を提供する技術が知られている（例えば、特許文献１参照。）。
【０００４】
特許文献１には、画像形成装置における各印刷条件の初期設定値を管理する管理手段と、初期設定値を示す識別子を印刷条件に設定可能とし、該識別子が設定された印刷条件を含む設定パターンを登録可能とする登録手段と、登録手段により登録された設定パターンに含まれる印刷条件の中に、識別子が設定された印刷条件がある場合、該印刷条件には、前記管理手段から取得した初期設定値を設定する設定手段と、を有する報処理装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のカスタマイズ方法では、プリンタドライバのパッケージに含まれる一連のファイルのいずれかを変更する必要があった。プリンタドライバなどのデバイスドライバは、証明機関によって信頼性が高いことが証明されると、パッケージに対し電子署名が与えられる（例えば、Microsoft社が与える「Windows（登録商標）ロゴ」）。電子署名は、証明機関により所定のファイル（例えば、ＣＡＴファイル）として与えられ、プリンタメーカはそれをパッケージに含めることでプリンタドライバが「認証されたドライバ」であるものとして配布することができる。
【０００６】
しかし、上記のカスタマイズを行うと、プリンタドライバのパッケージに含まれるファイルが変更されることになる。パッケージに含まれるファイルが１バイトでも変更されると、認証されたプリンタドライバとは違うプリンタドライバであるとみなされてしまう。このため、例えばインストール時に「信頼されていないドライバ」である旨がユーザに対して表示されてしまうという問題があった。ユーザとしてはこのメッセージがカスタマイズによるものか、何らかの対応をすべきものなのかの判断が難しい。
【０００７】
本発明は、上記課題に鑑み、設定パターンがカスタマイズされても、信頼されたドライバであるという認証が解除されないプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、予め認証されている認証対象のファイルと、前記認証対象のファイルの認証情報が記述された認証情報ファイルと、動作を規定するデフォルト設定ファイルとを有し、  情報処理装置にインストールされる際、前記認証情報ファイルの認証情報に基づき前記認証対象のファイルの認証を受けるプログラムであって、ＣＰＵに、
情報処理装置に予め定められたファイル名の設定ファイルが存在する場合、前記設定ファイルに記述された設定データを、当該プログラムが格納される第１の記憶領域とは異なる第２の記憶領域に登録するデータ登録ステップと、前記第２の記憶領域に前記設定データが記憶されているか否かを判定する判定ステップと、前記設定データが記憶されていると判定された場合、前記設定データを当該プログラムの動作に反映させる設定反映処理ステップと、を実行させる。
【発明の効果】
【０００９】
設定パターンがカスタマイズされても、信頼されたドライバであるという認証が解除されないプログラム等を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】プリンタドライバの概略的な特徴を説明する図の一例である。
【図２】プリンタドライバが使用されるシステム構成例を示す図の一例である。
【図３】クライアントＰＣのハードウェア構成図の一例である。
【図４】クライアントＰＣの機能について模式的に説明する図の一例である。
【図５】プリンタが有する機能、仕様や性能のリポジトリを模式的に説明する図の一例である。
【図６】１つ以上のデフォルト設定パターンが登録されている設定ファイル指示情報ファイル「Config_patterns.xml」の記述例を示す図である。
【図７】設定パターンファイル「pattern01.xml, pattern02.xml」の記述例を示す図の一例である。
【図８】設定パターン指示情報ファイルと設定パターンファイルにより表示部が表示するＵＩ画面の一例を示す図である。
【図９】カスタマイズされた設定パターンが登録されている設定ファイル指示情報ファイル「Config_patterns.xml」の一例を示す図である。
【図１０】設定パターンファイル「custom01.xml, custom02.xml」の記述例を示す図の一例である。
【図１１】システム管理者が作成した設定ファイル指示情報ファイルと設定パターンファイルをPrinterDriverDataレジストリに登録するための登録指示ファイルの一例を示す図である。
【図１２】クライアントＰＣの機能について模式的に説明する図の一例である。
【図１３】PrinterDriverDataレジストリに登録されたカスタマイズデータを模式的に説明する図の一例である。
【図１４】システム管理者がパッケージをインストールする手順を示すシーケンス図の一例である。
【図１５】設定パターン管理部がＵＩ画面を生成する手順を示すフローチャート図の一例である。
【図１６】UI画面の一例を示す図である。
【図１７】ユーザがUI画面の任意の設定パターンを選択した場合に、設定パターン管理部が処理する手順を示すフローチャート図の一例である。
【図１８】Point&Printの概略を説明する図の一例である。
【図１９】クライアントＰＣの機能について模式的に説明する図の一例である（実施例２）。
【図２０】システム管理者がパッケージをインストールする手順を示すシーケンス図の一例である。
【図２１】カスタマイズデータ認証部が署名ファイルを認証する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００１２】
図１は、本実施形態のプリンタドライバの概略的な特徴を説明する図の一例である。
（１）まず、例えばシステム管理者（プリンタドライバ１００をインストールする権限を有するものであればよくシステム管理者に限定されない）が、例えばカスタマイズツール１２を使用してユーザがよく使用する設定パターンを設定する。カスタマイズされた設定パターンをカスタマイズデータ１４と称する。カスタマイズデータ１４は、プリンタドライバ１００の構成モジュールが含まれるプリンタドライバインストールパッケージ（以下、単にパッケージという）１５の構成モジュールには含まれない。
（２）ユーザにはプリンタメーカなどからパッケージ１５が提供される。パッケージ１５はＯＳ（Operating  System）のメーカやその証明機関からすでに認証を受けている。インストーラ１１はＯＳにインストールを要求する。ＯＳは、パッケージ１５の内容が改竄されていないかどうかを、ＣＡＴファイルを参照して判定する。パッケージ１５には変更がないのでＯＳは改竄されていないと判定し、パッケージ１５をシステムフォルダなどにコピーする。
【００１３】
なお、パッケージ内にはデフォルトの設定パターンが予め登録されている（以下、デフォルト設定パターンという。）。
（３）また、プリンタドライバ１００がインストールされると、プリンタドライバ１００はカスタマイズデータ１４をPrinterDriverDataレジストリ１３に書き込む。PrinterDriverDataレジストリ１３は、論理プリンタごとに用意されたデータ保存領域であり、プリンタの設定などを規定する各種のデータが登録されている。
（４）これにより、プリンタドライバ１００はデフォルト設定パターンを使用することも、カスタマイズデータの設定パターンを使用することも可能になった。
【００１４】
プリンタドライバ１００の実行時（印刷時等）、プリンタドライバ１００はPrinterDriverDataレジストリ１３を参照して、PrinterDriverDataレジストリ１３にカスタマイズデータ１４がある場合はそちらを優先し、PrinterDriverDataレジストリ１３にカスタマイズデータ１４がない場合は、デフォルト設定パターンを読み出し、UI（User  Interface）画面を作成する。
【００１５】
このように、カスタマイズデータ１４をプリンタドライバ１００の構成外に構築することで、認証対象のプリンタドライバ１００は１バイトも変更されず、認証が解除されることがない。また、プリンタドライバ１００の構成外のカスタマイズデータ１４に対応したプリンタドライバ１００が、カスタマイズデータ１４をインストールするので、カスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録することができる。プリンタドライバ１００は、論理プリンタ毎にPrinterDriverDataレジストリ１３の設定を参照して動作するので、カスタマイズデータ１４により、ユーザがよく使用する印刷条件が設定されたＵＩ画面を表示できる。
【００１６】
〔構成例〕
図２は、プリンタドライバが使用される機器システム７００のシステム構成例を示す図の一例である。図２では、ネットワーク５００にサーバＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）２００、プリンタ３００（区別する場合、プリンタ１，２という）、及び、クライアントＰＣ４００（区別する場合、クライアントＰＣ１，２という）が接続されている。ユーザが印刷するためには、１台のクライアントＰＣ４００と１台のプリンタ３００があればよい。また、印刷しないのであれば、１台のクライアントＰＣ４００があれば、ユーザはプリンタドライバ１００を動作させることができる。
【００１７】
しかしながら、複数のプリンタ１，２がある場合、同じカスタマイズデータ１４をプリンタ１，２に適用しても、プリンタドライバ１００が警告などを出力することで、カスタマイズデータ１４を複数のプリンタ１，２に適用できるという効果が得られる。
【００１８】
ネットワーク５００は、例えば、ＬＡＮ、ＷＡＮ、又は、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）などであるが、ルータを介してサブネット同士が接続された複数のネットワークをネットワーク５００という場合もある。また、ネットワーク５００がインターネットを含んでいてもよい。ネットワーク５００は有線接続でも無線接続でもよい。また、ネットワーク５００を用いずプリンタ３００とクライアントＰＣ４００が直接、接続されていてもよい。
【００１９】
プリンタ３００は、例えば、ＭＦＰ（Multifunction Peripheral）である。ＭＦＰは、プリンタ機能、ＦＡＸ（送信）機能、スキャナ機能、複写機能等の複数の機能が統合された機器である。本実施形態では主にプリンタドライバ１００について説明するため、ＭＦＰとしてはプリンタ３００の機能を有していればよい。ただし、ＦＡＸにおいてもデバイスドライバが使用されるため、ＭＦＰがどのような機能を有すべきかはデバイスドライバによって変わりうる。
【００２０】
サーバＰＣ２００、及び、クライアントＰＣ４００は、一般的なＰＣや情報処理装置である。クライアントＰＣ４００は、プリンタドライバ１００のみ、又は、プリンタドライバ１００及びアプリケーション４１２が動作するＰＣであればよく、ノートＰＣ、タブレットＰＣ、スマートフォンなども含まれ、呼称に制限されない。一方、好ましくは、Windows（登録商標。以下、省略する。）が動作可能なＰＣであるとする。以下では、特に説明しない場合、ＯＳはWindows系ＯＳのことをいう。しかし、本実施例で説明するWindows系ＯＳと同等の機能を有するＯＳであれば、ＯＳを制限しない。
【００２１】
サーバＰＣ２００のＯＳは、クライアントＰＣ４００との親和性を考慮して、Windowsサーバであることが好ましい。この場合、サーバＰＣ２００とクライアントＰＣ４００はPoint  ＆  Print  という形態で、デバイスドライバをインストールできる。Point  ＆  Printについては後述する。
【００２２】
図３は、クライアントＰＣ４００のハードウェア構成図の一例を示す。クライアントＰＣ４００は、それぞれバスで相互に接続されているＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３、外部Ｉ／Ｆ４０４、通信装置４０５、入力装置４０６、表示制御部４０７及び記憶装置４０８を有する。ＣＰＵ４０１は、ＲＡＭ４０３を作業メモリにして、ＯＳ上でアプリケーション４１２及びプリンタドライバ１００を実行する。
【００２３】
アプリケーション４１２は、プリンタ３００に印刷要求するものであればよく、例えば、文書作成ソフト、ブラウザソフト、プレゼン資料作成ソフト等、種々のものがある。印刷対象となる文書データを、作成、編集、表示、管理などして、印刷可能なアプリケーションであればどのようなものでもよい。なお、文書データは、文字や記号、数値だけを含むものではなく、画像、写真など種々の印刷対象物を含む。
【００２４】
ＲＡＭ４０３は必要なデータを一時保管する作業メモリ（主記憶メモリ）になり、ＲＯＭ４０２にはＢＩＯＳや初期設定されたデータ、ブートプログラム等が記憶されている。
【００２５】
外部Ｉ／Ｆ４０４はＵＳＢケーブル等のケーブルや、可搬型の記憶媒体４２０が装着されるためのインタフェースである。通信装置４０５は、ＬＡＮカードやイーサネット（登録商標）カードであり、ＣＰＵ４０１からの指示によりプリンタ３００にフレームデータ（本実施形態では主に印刷データ）を送信する。
【００２６】
入力装置４０６は、キーボード、マウスなど、ユーザの様々な操作指示を受け付けるユーザインタフェースである。タッチパネルや音声入力装置を入力装置とすることもできる。表示制御部４０７は、アプリケーション４１２が指示する画面情報に基づき所定の解像度や色数等でディスプレイ４０９の描画を制御する。ディスプレイ４０９は、液晶や有機ＥＬなどのＦＰＤ（Flat  Panel  Display）である。ＵＩ画面はディスプレイ４０９に表示される。
【００２７】
記憶装置４０８は、ＨＤＤ（Hard  Disk Drive）やフラッシュメモリなどの不揮発メモリを実体とし、ＯＳ４１０、アプリケーション４１２、及び、プリンタドライバ１００を記憶している。記憶媒体４２０は、例えば、ＳＤカードやＵＳＢメモリなど不揮発性のメモリである。プリンタドライバ１００は、記憶媒体４２０に記録された状態又はサーバＰＣ２００からダウンロードされる態様で配布される。配布される際はパッケージ１５の形態であることが多いく、例えば圧縮されていてもよい。本実施形態では、プリンタドライバ１００が記憶装置４０８にインストールされる過程、及び、その後のプリンタドライバ１００の動作に特徴がある。
【００２８】
サーバＰＣ２００はクライアントＰＣ４００と同様のハードウェア構成を有しているので説明は省略する。
【００２９】
〔クライアントＰＣの機能１〕
図４は、クライアントＰＣ４００の機能について模式的に説明する図の一例である。図４では、クライアントＰＣ４００にすでにプリンタドライバ１００がインストールされている状態として説明する。
【００３０】
クライアントＰＣ４００はインストールされたプリンタドライバ１００を有している。また、クライアントＰＣ４００は、Windows系ＯＳが提供する機能としてレジストリというデータベースを予め有している。レジストリは、アプリケーション４１２の設定、デバイスドライバの設定、Windows系ＯＳの設定など、ＰＣ上の多様な設定を格納することが可能なデータベースである。従来ではアプリケーション４１２が個別に設定情報を管理してる時代があったが、Windows系ＯＳが一元管理することで設定上の管理の効率化が可能になっている。レジストリにどのような情報を登録するかはアプリケーション４１２に依存する。本実施形態では、インストール時にPrinterDriverDataレジストリ１３にカスタマイズデータ１４が登録されている。
【００３１】
プリンタドライバ１００は、主にＵＩドライバ２１とグラフィックドライバ２２という機能を有している。ＵＩドライバ２１は、例えばアプリケーション４１２からの要求により印刷条件の設定項目を表示し、ユーザが設定した印刷設定を受け付ける。また、グラフィックドライバ２２は、文書データから、印刷設定を反映した印刷データを作成し、印刷データを、スプーラ等を介してプリンタ３００に送出する。
【００３２】
そして、ＵＩドライバ２１は、表示部３１、設定パターン管理部３２、プリンタ機能管理部３３、及び、設定パターンＤＢ３４、を有している。
・表示部３１は、上記のＵＩドライバ２１の機能を提供するブロックである。
・設定パターン管理部３２は、ユーザがＵＩ画面を開く際、表示部３１からの命令を受けて実行される。
【００３３】
設定パターン管理部３２は、複数の設定パターン（カスタマイズデータ１４又はデフォルト設定パターン）の名前をリスト状にＵＩ画面を表示する。設定パターン管理部３２は、設定パターンを用いて、各設定パターンの設定状態をＵＩ画面に提示し、ユーザからの設定パターンの選択を受け付ける。
【００３４】
設定パターン管理部３２は、ユーザが設定パターンを選択した場合、変更後の設定パターンに基づき、ＵＩ画面を変更する。カスタマイズデータ１４がある場合、ＵＩ画面の表示には、PrinterDriverDataレジストリ１３が参照され、カスタマイズデータ１４がない場合、設定パターンＤＢ３４が参照される。
【００３５】
最終的に、印刷が実行されると、設定パターンの各機能に設定されている値は、グラフィックドライバ２２に提供される。例えば、両面印刷や部数などの設定が印刷結果に反映される。
・プリンタ機能管理部３３は、プリンタ３００の機能、仕様や性能を管理するリポジトリ（規則に従ってデータが格納されているデータベース）を管理している。
図５は、プリンタ３００が有する機能、仕様や性能のリポジトリを模式的に説明する図の一例である。プリンタ機能管理部３３は、プリンタ３００が有している機能毎に、「設定可能な値」を管理している。
【００３６】
プリンタ機能管理部３３は、プリンタ３００と通信をして、プリンタ３００の機能、仕様や性能を随時、更新する。また、各機能のデフォルト値は、予め決まっており、プリンタ機能管理部３３は、デフォルト値をプリンタ３００から取得することができる。図５では例えば、左端の「設定可能な値」がデフォルト値である。
【００３７】
また、プリンタ機能管理部３３は、機能毎に、あるプリンタ３００に対し印刷設定として設定された値が適正か否かをプリンタ３００に問い合わせることができる。
【００３８】
設定パターンＤＢ３４には、１つ以上のデフォルト設定パターンが登録されている。１つのデフォルト設定パターンは、表示部３１が表示するＵＩ画面に含まれる設定項目を一まとめに保持している。例えば、「両面印刷（Duplex）：ON、集約印刷（Layout）：2ページ、ステープル（Staple）：左上」などのように、機能と値が対応づけられている。設定パターンのフォーマット（データの記述形式）は、デフォルト設定パターンとカスタマイズデータ内の設定パターンとで同様である。
【００３９】
〔設定パターン〕
設定パターンについて説明する。設定パターンは、パッケージ１５に含まれている設定パターンＤＢ３４に記憶されているデフォルト設定パターンと、PrinterDriverDataレジストリ１３に記憶されているカスタマイズされた設定パターンがある。
【００４０】
＜デフォルト設定パターン＞
まず、設定パターンＤＢ３４に記憶されているデフォルト設定パターンについて説明する。各デフォルト設定パターンは、設定ファイル指示情報ファイルに登録されている。設定ファイル指示情報ファイルは、デフォルト設定パターンをプリンタドライバ１００が検索するための元（ルート）となるファイルである。これに対し、デフォルト設定パターンの印刷条件が設定されたファイルが設定パターンファイルである。ファイルの構成はカスタマイズデータ１４と共通である。
【００４１】
図６は、設定ファイル指示情報ファイル「Config_patterns.xml」の一例を示す図である。本実施形態では、各ファイルはＸＭＬで記述されているが、YAMLやJSONなどのテキストベースのファイルフォーマットを使用することが好ましい。設定パターンのファイルフォーマットは、カスタマイズデータ１４と共通なので、システム管理者がカスタマイズデータ１４の設定パターンを編集することが容易になる。
【００４２】
設定ファイル指示情報ファイルには、設定パターン全体の設定が記述される。
・featuresタグ：デフォルト設定パターンに含めることが可能な機能名が一覧にして記述されている
・patternsタグ：デフォルト設定パターンの設定パターンファイル名が一覧にして記述されている
このように、各デフォルト設定パターンが含みうる機能がfeaturesタグのfeatures name属性で記述されている。これらのfeatures name属性の値はＵＩ画面に表示される「機能名」となる。「機能名」の値は、patternsタグに記述されている設定パターンファイルに記述されている。
【００４３】
図７（ａ）（ｂ）はデフォルト設定パターンの設定パターンファイル「pattern01.xml, pattern02.xml」の記述例を示す図の一例である。それぞれの設定パターンファイルは、設定ファイル指示情報ファイルのfeaturesタグで記述されたファイル名を有している。いずれも同様のタグを有している。
【００４４】
設定パターンファイルには、予め（デフォルトの）メーカ等がパッケージ１５に含める個別の印刷条件が記述されている。従来技術では、このファイルをシステム管理者が変更したため認証が解除されるという状況が生じていた。
・pattern_nameタグ：デフォルト設定パターンにつけられた設定パターンの名前が記述される（ＵＩ画面に設定パターンの名前として表示される）
・settingsタグ：config_patterns.xmlのfeaturesタグで記述されたfeatures name属性の値（機能名）に対し、value属性の値により設定値が記述されている
なお、value属性の値が"@default"の機能、又は、設定ファイル指示情報ファイルのfeaturesタグにあって設定パターンファイルのsettingsタグで記述されていない機能は、プリンタドライバ１００がその機能のデフォルト値をＵＩ画面に表示することを意味する。デフォルト値は上述したように、プリンタ機能管理部３３が管理している。
【００４５】
図８（ａ）（ｂ）は、設定パターン指示情報ファイルと設定パターンファイルにより設定パターン管理部３２が表示するＵＩ画面の一例を示す図である。「Configuration  patterns」欄４１には、設定パターン指示情報ファイルのpatternsタグで記述されている設定パターンファイルの、pattern_nameタグで記述されている属性（設定パターンの名前）が表示される。また、項目４２には、設定パターン指示情報ファイルのfeaturesタグで記述されている属性の値（機能名）が表示される。
【００４６】
図８（ａ）では、ユーザが"Pattern01"を選択したため、各項目４２のプルダウンメニュー４３には、pattern01.xmlのsettingsタグで記述されているvalue属性の値（設定値）が表示される。図８（ｂ）では、ユーザが"Pattern02"を選択したため、pattern02.xmlのsettingsタグで記述されているvalue属性の値（設定値）が表示される。それぞれ、設定パターンファイルで記述のない項目４２にはデフォルト値が表示される。
【００４７】
なお、ＵＩ画面として、より詳細な設定が可能な画面が用意されており、本実施例のＵＩ画面はカスタマイズされる画面を主に説明している。本実施例では両者を区別することなくＵＩ画面としている。
【００４８】
＜カスタマイズデータの設定パターン＞
カスタマイズデータ１４の設定ファイル指示情報ファイルと設定パターンファイルはPrinterDriverDataレジストリ１３に記憶されている。
【００４９】
図９は、カスタマイズされた設定パターンが登録されている設定ファイル指示情報ファイル「Config_patterns.xml」の一例を、図１０（ａ）（ｂ）は設定パターンファイル「custom01.xml, custom02.xml」の記述例を示す図の一例である。各タグの意味は設定パターンＤＢ３４のファイルと同様なので省略する。
【００５０】
システム管理者は、タグの意味に基づき、設定パターンをカスタマイズする。ＸＭＬの知識があるシステム管理者であれば、単純なエディターを使って図９の設定ファイル指示情報ファイル、図１０（ａ）（ｂ）の設定パターンファイルを作成することができる。また、プリンタメーカなどがカスタマイズツール１２をユーザ側に提供することも好適である。カスタマイズツール１２は、例えば、図８のようなＵＩ画面の各項目に、プリンタ機能管理部３３が管理している値を選択可能に表示する。そして、システム管理者が各項目を設定したら、Pattern_nameタグの記述とファイル名の入力を受け付け（又は自動生成し）ることで、カスタマイズされた設定パターンファイルを作成する。カスタマイズツール１２は、この設定パターンファイルのファイル名をPatternsタグのpattern filename属性の値として指定して、設定ファイル指示情報ファイルを作成する。
【００５１】
本実施例では、図１０（ａ）（ｂ）に示すようにシステム管理者は２つの設定パターンファイル「custom01.xml, custom02.xml」を作成している。また、図９に示すように、システム管理者は、デフォルト設定パターンのうち「pattern01.xml」をカスタマイズ後も使用するように、設定ファイル指示情報ファイルに「pattern01.xml」を登録している。
【００５２】
なお、図６と図９を比較すると、カスタマイズされたConfig_patterns.xmlにはfuturesタグがない。カスタマイズされた設定パターンファイルにないタグについては、デフォルト設定パターンが優先される。すなわち、システム管理者は、
・featuresタグを記述しないことで、featuresタグについてはデフォルト設定パターンのconfig_patterns.xmlと同じ設定を利用する
・patternsタグを記述することで、デフォルトの設定ファイル指示情報ファイルにおいてconfig_patterns.xmlのpatternsタグを上書きし、custom01.xml,custom02.xml, pattern01.xmlを利用する
ということを指示している。
【００５３】
＜設定ファイル指示情報ファイルと設定パターンファイルをPrinterDriverDataレジストリ１３に登録するための登録指示ファイル＞
図１１は、システム管理者が作成した（カスタマイズした）設定ファイル指示情報ファイルと設定パターンファイルをPrinterDriverDataレジストリ１３に登録するための登録指示ファイルの一例を示す図である。登録指示ファイル「customregistry．xml」は、設定ファイル指示情報ファイルと設定パターンファイルをどのようにPrinterDriverDataレジストリ１３に登録するかを指示する。valuesタグには以下の指示が記述されている。
・PrinterDriverDataレジストリ１３に「custom_config_pattern::root」という名前の値を作成し、値の内容は「config_patterns.xml」というファイルの内容をコピーする
・PrinterDriverDataに「custom_config_pattern::custom01.xml」という名前の値を作成し、値の内容は「custom01.xml」というファイルの内容をコピーする
・PrinterDriverDataに「custom_config_pattern::custom02.xml」という名前の値を作成し、値の内容は「custom02.xml」というファイルの内容をコピーする
登録指示ファイルもシステム管理者が作成する。システム管理者はカスタマイズツール１２を使用して登録指示ファイルを使用することも可能である。この場合、カスタマイズツール１２は、システム管理者又はカスタマイズツール１２が作成した設定パターンファイルのファイル名をvaluesタグに記述すればよい。
【００５４】
設定ファイル指示情報ファイルのファイル名は固定なので、登録指示ファイルの作成時にvaluesタグに記述でき、また、予め登録指示ファイルのテンプレートに記述しておくこともできる。
【００５５】
登録指示ファイルは、PrinterDriverDataレジストリ１３に設定ファイル指示情報ファイルと設定パターンファイルの内容（内容としたのはファイルそのものが登録されるわけではないためである）が登録された後は、プリンタドライバ１００が使用しない。しかし、登録時には必要なので、登録指示ファイルを含めてカスタマイズデータ１４と称することにする。
【００５６】
なお、登録指示ファイルは必須とまでは言えず、例えば、「config_patterns.xml」に登録指示ファイルの内容を記述することもできる。しかし、登録指示ファイルを独立に作成することで、カスタマイズデータ１４を論理プリンタ毎にプリンタPrinterDriverDataレジストリ１３に登録する場合、登録指示ファイルを再利用できるようになる。また、カスタマイズデータ１４を論理プリンタの単位で管理しやすくなる。
【００５７】
〔クライアントＰＣの機能２〕
図１２は、クライアントＰＣ４００の機能について模式的に説明する図の一例である。ここでは、クライアントＰＣ４００にプリンタドライバ１００をインストールする際の機能を説明する。クライアントＰＣ４００は、カスタマイズツール１２、カスタマイズデータ１４、パッケージ１５、及び、インストーラ１１等を有している。
【００５８】
インストールの際は、例えばカスタマイズツール１２が作成したカスタマイズデータ１４及びパッケージ１５が、記憶装置４０８は所定のフォルダに記憶されている状態又は記憶媒体４２０に記憶されている状態である。
【００５９】
パッケージ１５は、プリンタドライバ１００のインストールに必要な構成ファイルの集合である。最低限以下のモジュールを有している。
・プリンタドライバ１００のユーザインタフェースを表示したり、ドライバの構成を管理するためのUIドライバＤＬＬ
・画像の描画を行うための描画ドライバＤＬＬ
・Windows系ＯＳに対してプリンタドライバ１００の構成を示すためのINFファイル
・Windows認証プログラムによって提供されたCATファイル
インストーラ１１は、プリンタドライバ１００のインストールを行うためのユーティリティである。プリンタドライバ１００のインストールはユーザが手動で行うことも可能だが、一般ユーザには難しいため、パッケージ１５にインストーラ１１が添付されることが一般的である。
【００６０】
インストーラ１１は、Windows系ＯＳと協働してプリンタドライバ１００をクライアントＰＣ４００にインストールする。こうすることで、Windows系ＯＳはパッケージ１５が認証されているか否かを判定できる。インストーラ１１及びWindows系ＯＳは、ユーザの設定を受け付けてクライアントＰＣ４００のシステムフォルダ（例えばSystem32）１６又はドライバ用のフォルダに、パッケージ１５の内容をコピーする（あるいはそれらを圧縮したファイルを展開する）。Windows系ＯＳは、デバイスドライバのインストールに必要な一連の処理を行う。
【００６１】
本実施例ではコピーの後、プリンタドライバ１００がカスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録する処理を行う。図では、ＵＩドライバ２１が、この処理を行うカスタマイズデータ登録部３５を有しているが、カスタマイズデータ登録部３５はプリンタドライバ１００が有していればよい。
【００６２】
カスタマイズデータ登録部３５は、カスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録する。このため、カスタマイズデータ登録部３５は、カスタマイズデータ１４の場所を知っているか、探索する必要がある。カスタマイズツール１２を使用した場合、カスタマイズツール１２は所定のフォルダ（又はディレクトリ）にカスタマイズデータ１４を出力する。「所定のフォルダ」としては、一例としてはシステムテンポラリフォルダの直下に、導入しようとしている論理プリンタ３００の名前（ファイルシステムで利用不可能な文字は適切にエスケープ）と同一の名前又は一部に含む名前で作成されたフォルダが挙げられる。このフォルダもカスタマイズツール１２が作成する。論理プリンタ３００の名前は、例えばシステム管理者が付与するか、又は、カスタマイズツール１２がパッケージ１５などを参照して付与する。
【００６３】
カスタマイズツール１２は、システムテンポラリフォルダの下にカスタマイズデータ１４のファイルを出力する。カスタマイズデータ登録部３５は、この場所からカスタマイズデータ１４を探す。こうすることで、大規模な組織で、システム管理者が大量の論理プリンタを生成する場合、カスタマイズデータ１４を論理プリンタ毎に作成できるので、論理プリンタ毎にカスタマイズ内容を変えることなどが容易になる。
【００６４】
カスタマイズツール１２を使用しないでシステム管理者がカスタマイズデータを作成した場合は、この所定のフォルダを作成して、カスタマイズデータ１４のファイルをコピーする。
【００６５】
なお、論理プリンタとは、Windows系ＯＳのプリンタフォルダに、プリンタ３００のアイコンとして表示されている論理的なプリンタである。１つのパッケージ１５に対して、複数の論理プリンタを作成することができる。論理プリンタは、アプリケーション４１２からみた仮想的な出力先ともいえ、論理プリンタが描画した印刷データは、Windows系ＯＳが論理プリンタから物理プリンタに提供する。
【００６６】
論理プリンタには、１つずつ名前を付与することができ、システム管理者が任意に付けたり、プリンタドライバ１００のパッケージ名などから自動的に付与される。論理プリンタには、機能、共有の有無、スプール形式、オプション構成などが設定可能になっている。
【００６７】
カスタマイズデータ登録部３５は、カスタマイズデータ１４の登録指示ファイル「customregistry．xml」を最初に読み出し、PrinterDriverDataレジストリ１３に作成する値及び値の内容を特定する。そして、それらをPrinterDriverDataレジストリ１３に登録する。
【００６８】
図１３は、PrinterDriverDataレジストリ１３に登録されたカスタマイズデータ１４を模式的に説明する図の一例である。図１３はレジストリエディタで表示されている画面例であり「名前」にそのデータの「種類（バイナリ、テキストなど）」と「データ」が登録されている。プリンタドライバ１００はPrinterDriverDataレジストリ１３を参照して動作している。データは実際には、１６進数表示であり、また、暗号化することも可能ためテキストでは表示されない。
【００６９】
〔インストール時の動作手順〕
図１４は、システム管理者がパッケージ１５をインストールする手順を示すシーケンス図の一例を示す。
【００７０】
システム管理者が例えばカスタマイズツール１２を使用し、カスタマイズデータ１４を作成する（Ｓ１，２）。カスタマイズツール１２は所定のフォルダにカスタマイズデータ１４を出力する。
【００７１】
次に、システム管理者はインストーラ１１を実行し、Windows系ＯＳに対してプリンタドライバ１００のインストールを要求する（Ｓ３、Ｓ４）。インストーラ１１とパッケージ１５は同梱されているので、インストーラ１１にとってパッケージ１５の場所は特定されている。
【００７２】
Windows系ＯＳはパッケージ１５のＩＮＦファイルを読み、パッケージ１５に必要なファイルが含まれているか否かの確認を行う。ＩＮＦ ファイルは、プリンタドライバ１００ のパッケージ１５のインストールを制御する。ＩＮＦ ファイルに、ＣＡＴファイルへの参照行が記述されている場合、Windows系ＯＳはパッケージ１５の認証を行う（Ｓ５）。
【００７３】
認証が成立した場合、Windows系ＯＳはパッケージ１５の構成モジュールをシステムフォルダ１６へコピーする（Ｓ６）。Windows系ＯＳは、プリンタドライバ１００のシステムへの登録などの処理を行う。
【００７４】
次に、Windows系ＯＳは、ＵＩドライバ２１を呼び出し、プリンタドライバ１００の初期化などを行わせる（Ｓ７）。プリンタドライバ１００は初期化などの必要な処理を行う。なお、PrinterDriverDataレジストリ１３は論理プリンタ毎の設定領域なので、PrinterDriverDataレジストリ１３への登録はこの段階では行わない。
【００７５】
Windows系ＯＳは、論理プリンタを作成する（Ｓ８）。Windows系ＯＳは、ＵＩドライバ２１を呼び出し、プリンタドライバ１００で必要な初期化などの設定を要求する（Ｓ９）。ＵＩドライバ２１は、プリンタ機能管理部３３が管理する例えばデフォルトの設定値などを論理プリンタに登録する。
【００７６】
ＵＩドライバ２１は、論理プリンタに初期値として各種の設定を行う設定の中で、PrinterDriverDataレジストリ１３のカスタマイズを行う（Ｓ１０）。すなわち、カスタマイズデータ登録部３５は、カスタマイズデータ１４の場所を特定しカスタマイズデータ１４を読み出す（Ｓ１１）。
【００７７】
このように、論理プリンタの初期設定においてカスタマイズデータ１４を登録することで、論理プリンタ毎に設定パターンのカスタマイズをWindowsロゴプログラムの認証を保持したまま行うことができる。
【００７８】
そして、カスタマイズデータ登録部３５は、登録指示ファイルcustomregistry.xmlを探し、登録指示ファイルが存在した場合、その内容に基づいてPrinterDriverDataレジストリ１３に設定ファイル指示情報ファイルと設定パラメータファイルの内容を登録する（Ｓ１２）。
【００７９】
以上のように、カスタマイズデータ１４がパッケージの構成外にあることで、パッケージ内の構成要素に一切、変更が行われないので、Windowsロゴプログラムの認証が解除されることなくプリンタドライバ１００をインストールできる。また、カスタマイズデータ１４を登録することで、ユーザ側がよく使用する印刷条件を柔軟にカスタマイズすることができる。
【００８０】
〔ＵＩ画面の生成〕
図１５は、設定パターン管理部３２がＵＩ画面を生成する手順を示すフローチャート図の一例である。図１５の手順は、ユーザがアプリケーション４１２などからＵＩ画面を表示させる操作を行うと、表示部３１からの命令を受けて設定パターン管理部３２が実行する。
【００８１】
まず、設定パターン管理部３２は、設定パターンＤＢ３４に記憶されている設定ファイル指示情報ファイルconfig_patterns.xmlを読み込む（Ｓ１００）。設定ファイル指示情報ファイルによってプリンタ３００の機能（futures)と設定パターンファイル（patterns）が読み込まれる。
【００８２】
次に、PrinterDriverDataレジストリ１３に、custom_config_pattern::rootが存在するか否かを判定する（Ｓ１１０）。カスタマイズデータが登録されている場合（システム管理者によって設定パターンがカスタマイズされていた場合）、ここにcustom_config_pattern::root等が存在する。
【００８３】
設定パターンがカスタマイズされていた場合（Ｓ１１０のＹｅｓ）、設定パターン管理部３２は設定パターンＤＢ３４から読み込んでいる設定ファイル指示情報ファイルのpatternsタグに記述されていた属性を、PrinterDriverDataレジストリ１３のcustom_config_pattern::rootに登録されている設定ファイル指示情報ファイルのpattern filename属性の値により上書きする（Ｓ１２０）。これによって、カスタマイズされた設定パターンファイル「custom01.xml, custom02.xml，pattern01.xml」が有効になる。
【００８４】
設定パターンがカスタマイズされていない場合（Ｓ１１０のＮｏ）、設定パターンＤＢ３４から読み込んでいる設定ファイル指示情報ファイルのpattern filename属性の値をそのまま保持する。
【００８５】
次に、全てのpattern要素（設定パターンファイル）について以下の処理を繰り返す。
【００８６】
まず、設定パターン管理部３２は、PrinterDriverDataレジストリ１３に"custom_config_pattern::"とpattern filename属性（図９では"custom01.xml"、"custom02.xml"、"pattern01.xml")を連結した名前の値が存在するか否かを判定する（Ｓ１３０）。設定パターンがカスタマイズされていなければ、当然、この判定はＮｏになる。
【００８７】
"custom_config_pattern::"＋pattern filename属性の名前が存在する場合（Ｓ１３０のＹｅｓ）、PrinterDriverDataレジストリ１３に設定パターンファイルの内容が登録されているので、その名前のpattern_name要素の値を「設定パターンの名前」として取得する（Ｓ１４０）。
【００８８】
存在しない場合（Ｓ１４０のＮｏ）、設定パターンＤＢ３４の設定パターンファイルのpattern_name要素の値を「設定パターンの名前」として取得する（Ｓ１５０）。
【００８９】
設定パターン管理部３２は、「設定パターンの名前」をＵＩ画面の「Configuration  patterns」欄４１のリストに追加する（Ｓ１６０）。
【００９０】
以上の処理を、pattern要素（設定パターンファイル）について繰り返すと、ＵＩ画面の「Configuration  patterns」欄４１に"custom01.xml"、"custom02.xml"、"pattern01.xml"が表示される。
【００９１】
ＵＩ画面の項目４２とプルダウンメニュー４３の設定のうち、項目４２は、設定パターンＤＢ３４から読み出した設定ファイル指示情報ファイルのfutures要素の値を用いる。プルダウンメニュー４３の初期値には、設定パターンＤＢ３４から読み出した設定パターンファイル、又は、PrinterDriverDataレジストリ１３のSetting要素の値を用いる。詳しくは、次述する。
【００９２】
この後、ユーザが例えばＯＫボタンを押下することで、プリンタドライバ１００の表示部３１は設定を受け付ける（Ｓ１７０）。
【００９３】
図１６は、UI画面の一例を示す図である。「Configuration  patterns」欄４１にシステム管理者がカスタマイズして作成した「設定パターンの名前」が表示されている。各項目４２の値はプルダウンしてユーザが選択できるようになっている。プルダウンされる値は、プリンタ機能管理部３３が管理している。
【００９４】
図１７は、ユーザがUI画面の任意の設定パターンを選択した場合に、設定パターン管理部３２が処理する手順を示すフローチャート図の一例である。
【００９５】
まず、設定パターン管理部３２はPrinterDriverDataレジストリ１３に、"custom_config_pattern::"とユーザによって選択された設定パターンの名前("custom01"、"custom02"、"pattern01")がpattern_nameタグに記述されている設定パターンファイルの"ファイル名"を連結させた名前が存在するか否かを判定する（Ｓ２００）。
【００９６】
PrinterDriverDataレジストリ１３に"custom_config_pattern::"＋"ファイル名"が存在した場合（Ｓ２００のＹｅｓ）、PrinterDriverDataレジストリ１３の"custom_config_pattern::"＋"ファイル名"に登録されている「データ」を設定パターンの内容として取得する（Ｓ２１０）。
【００９７】
存在しない場合（Ｓ２００のＮＯ）、ユーザによって選択された設定パターンの名前の設定パターンファイルを設定パターンＤＢ３４から読み出し、設定パターンとして扱う（Ｓ２２０）。
【００９８】
次に、設定ファイル指示情報ファイル（config_patterns.xml）の全てのfeatures要素について以下の処理を繰り返す。図１５の処理で、設定ファイル指示情報ファイルが、設定パターンＤＢ３４のものと、PrinterDriverDataレジストリ１３のものとでマージされている場合はその全てのfeatures要素を抽出する。
【００９９】
設定パターン管理部３２は、着目しているfeatures要素の「機能名」と、ユーザが選択した設定パターンのsetting要素のfuture name属性の値と一致するものを探し出す（Ｓ２３０）。
【０１００】
future name属性の値に一致する「機能名」がない場合（Ｓ２４０のＮｏ）、その機能のvalue属性の値が不明なので、着目しているfeatures要素の「機能名」のデフォルト値をプリンタ機能管理部３３より取得し、その値を機能の設定値としてセットする（Ｓ２５０）。
【０１０１】
デフォルト値を利用可能とすることで、システム管理者はデフォルト設定パターンから変更する必要のない機能と値をカスタマイズデータ１４に記述する必要がなくなり、カスタマイズデータ１４の作成が容易になる。また、機種依存性が高い機能についてはデフォルト設定パターンを利用し、複数の機種共通の機能だけをカスタマイズする場合、１つのカスタマイズデータ１４を複数機種で再利用できるようになる。
【０１０２】
future name属性の値に一致する「機能名」がある場合（Ｓ２４０のＹｅｓ）、設定パターンのsetting要素のValue属性の値を「機能」に対応づけて使えるか否かをプリンタ機能管理部３３に問い合わせる（Ｓ２５０）。
【０１０３】
なお、value属性の値が"@default"の場合は、プリンタ機能管理部３３への問い合わせは不要である。
【０１０４】
プリンタ機能管理部３３が可能であると応答した場合（Ｓ２６０のＹｅｓ）、着目しているfeatures要素の「機能名」に、設定パターンのsetting要素のValue属性の値を設定値としてセットする（Ｓ２８０）。
【０１０５】
プリンタ機能管理部３３が不可能であると応答した場合（Ｓ２６０のＮｏ）、着目しているfeatures要素の「機能名」に、Value属性の値が使用できないことを表示部３１に表示するよう要求する（Ｓ２７０）。表示部３１は、例えば、「エラー  ○○機能に××という値は設定できませんでした」というメッセージを表示する。
【０１０６】
以上のように、本実施例のプリンタドライバ１００は、パッケージ１５とは別に設定ファイルのカスタマイズデータ１４をインストールするので、Windowsロゴが解除されない。また、UI画面は、カスタマイズデータ１４を優先して使用して作成するので、UI画面をカスタマイズすることができる。仮にカスタマイズデータ１４が削除されても、プリンタドライバ１００にはデフォルトの設定パターンファイルがあるので、ユーザは設定パターンを選ぶことができる。
【０１０７】
また、本実施例ではプリンタドライバ１００を例に説明したが、ＦＡＸドライバに対しても同様に適用できる。また、本実施例では印刷条件を設定するＵＩ画面を例に説明したが、デバイスドライバのデフォルトの値を証明機関で管理し、ユーザ側でカスタマイズする使用形態において好適に適用できる。
【０１０８】
〔Point  ＆  Print  への適用〕
図１８は、Point & Printの概略を説明する図の一例である。Point & Print は、Windows系ＯＳのプリンタドライバ１００のインストール形式である。なお、サーバＰＣ２００及びクライアントＰＣ４００にWindows系ＯＳ(サーバはサーバ用)がインストールされている。
【０１０９】
クライアントＰＣ４００は、このサーバＰＣ２００をプリントサーバとして、プリンタ３００に対して印刷要求することができる。このようなシステムでは、クライアントＰＣ４００にはサーバＰＣ２００と同じプリンタドライバ１００がインストールされている必要がある。ネットワーク５００上の個々のクライアントＰＣ４００に、システム管理者などがプリンタドライバ１００をインストールするには非常にコストがかかってしまう。
【０１１０】
Point & Printではこの不都合を解決する手段として、サーバＰＣ２００からクライアントＰＣ４００にプリンタドライバ１００をダウンロードしてインストールすることを可能にしている。これは、Windows系ＯＳ標準の機能である。
【０１１１】
システム管理者は、最初にサーバＰＣ２００にプリンタドライバ１００をインストールする。この時、上記のように、サーバＰＣ２００のPrinterDriverDataレジストリ１３にはカスタマイズデータ１４が登録される。サーバＰＣ２００がWindows系ＯＳの機能を使用して、プリンタドライバ１００をクライアントＰＣ４００にインストールする場合、PrinterDriverDataレジストリ１３のカスタマイズデータ１４はサーバＰＣ２００からクライアントＰＣ４００に同期される。ＵＩドライバはクライアントＰＣ４００上で動作するので、ＵＩ画面のカスタマイズが可能になる。したがって、本実施例のプリンタドライバ１００及びカスタマイズ方法は、Point＆Printにも好適に適用できる。
【０１１２】
換言すると、カスタマイズデータ１４をレジストリでなく、Windows系ＯＳの管理外のファイルに登録した場合、システム管理者が、Point＆PrintにおいてはサーバＰＣ２００からクライアントＰＣ４００にカスタマイズデータ１４を移動する操作が必要になる。本実施例では、PrinterDriverDataレジストリ１３にカスタマイズデータ１４を登録することでPoint＆Printにも活用できる。
【実施例２】
【０１１３】
本実施例では、カスタマイズデータ１４についても認証が可能なプリンタドライバ１００について説明する。
【０１１４】
図１９は、本実施例のクライアントＰＣ４００の機能について模式的に説明する図の一例である。図１９は、クライアントＰＣ４００にプリンタドライバ１００をインストールする際の機能について説明している。クライアントＰＣ４００にプリンタドライバ１００がインストールされた後の機能ブロック図は実施例１と同様である。
【０１１５】
本実施例のクライアントＰＣ４００は図１２と比較して、新たに署名ファイル３７が図示されている。本実施例のカスタマイズツール１２は、プリンタメーカが提供するＷｅｂＡＰＩ１７にアクセスして、カスタマイズデータ１４の電子署名を作成する。ＷｅｂＡＰＩ１７は、インターネット経由で利用できるＡＰＩであり、SOAPなどのプロトコルで例えばXMLで記述された要求と応答をやりとりする。電子署名が記述されたファイルが署名ファイル３７である。署名ファイル３７は、カスタマイズデータ１４と同様に予め定められたフォルダに記憶される。ＷｅｂＡＰＩ１７は一例であって、Ｗｅｂサーバを利用してもよい。
【０１１６】
プリンタドライバ１００のインストール時、ＵＩドライバ２１のカスタマイズデータ認証部３６はカスタマイズデータ１４から電子署名を作成し、署名ファイル３７の電子署名と比較することで、カスタマイズデータ１４を認証する。認証が成立した場合は、カスタマイズデータ登録部がカスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録する。
【０１１７】
図２０は、システム管理者がパッケージ１５をインストールする手順を示すシーケンス図の一例を示す。図２０では、カスタマイズデータ１４の生成後、署名ファイル３７が生成される点で図１２と異なっている。
【０１１８】
カスタマイズツール１２は、カスタマイズデータ１４と共に署名要求をＷｅｂＡＰＩ１７に送信する（Ｓ３）。この処理はシステム管理者が手動で行うこともできる。ＷｅｂＡＰＩ１７は非公開キーを使用して電子署名を生成する。
【０１１９】
カスタマイズツール１２は、ＷｅｂＡＰＩ１７から電子署名を取得すると、署名ファイル３７を生成する（Ｓ４）。この後、システム管理者はインストールを開始する。インストールの開始後のステップＳ５〜Ｓ１２までの処理は実施例１と同様である。  
その後、ＵＩドライバ２１のカスタマイズデータ認証部３６は、カスタマイズデータ１４を読み込み（Ｓ１３）、電子署名（署名データ）を作成する（Ｓ１４）。
【０１２０】
カスタマイズデータ認証部３６は署名ファイル３７を読み出し、作成した電子署名と比較する（Ｓ１５）。署名ファイル３７が一致した場合に、カスタマイズデータ登録部３５は、カスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録する（Ｓ１６）。
【０１２１】
図２１は、カスタマイズデータ認証部３６が署名ファイル３７を認証する手順を示すフローチャート図の一例である。
【０１２２】
まず、カスタマイズデータ認証部３６は、署名ファイル３７が存在するか否かを判定する（Ｓ３００）。署名ファイル３７が定められたフォルダに存在しない場合（Ｓ３００のＮｏ）、認証できないものとして処理を終了する。
【０１２３】
署名ファイル３７が定められたフォルダに存在する場合（Ｓ３００のＹｅｓ）、カスタマイズデータ認証部３６はカスタマイズデータ１４を読み出す（Ｓ３１０）。
【０１２４】
そして、カスタマイズデータ１４の内容から非公開キーを用いて電子署名を作成する（Ｓ３２０）。ＵＩドライバ２１はＷｅｂＡＰＩ１７と同じ非公開キーを有している、署名アルゴリズムも同じである。
【０１２５】
カスタマイズデータ認証部３６は、生成された電子署名と、署名ファイル３７の電子署名が一致するか否かを判定する（Ｓ３３０）。これにより、ＷｅｂＡＰＩ１７によって署名発行後にカスタマイズデータ１４が変更されていれば、２つの電子証明が異なったものとなる。
【０１２６】
電子署名が一致しない場合（Ｓ３３０のＮｏ）、認証できないものとして処理を終了する。
【０１２７】
電子署名が一致した場合（Ｓ３３０のＹｅｓ）、カスタマイズデータ認証部３６は、カスタマイズデータ１４をPrinterDriverDataレジストリ１３に登録する（Ｓ３４０）。
【０１２８】
以上のように、本実施例のプリンタドライバ１００は、実施例１の効果に加え、カスタマイズデータ１４が正規のものであることを認証してからPrinterDriverDataレジストリ１３に登録できるのでプリンタドライバ１００の信頼性をさらに向上できる。
【符号の説明】
【０１２９】
１１    インストーラ
１２    カスタマイズツール
１３    PrinterDriverDataレジストリ
１４    カスタマイズデータ
１５    プリンタドライバインストールパッケージ
２１    ＵＩドライバ
２２    グラフィックドライバ
３１    表示部
３２    設定パターン管理部
３３    プリンタ機能管理部
３４    設定パターンＤＢ
３５    カスタマイズデータ登録部
３６    カスタマイズデータ認証部
１００  プリンタドライバ
２００  サーバＰＣ
３００  プリンタ
４００  クライアントＰＣ
５００  ネットワーク
７００  機器システム
【先行技術文献】
【特許文献】
【０１３０】
【特許文献１】特開２００９−２７１９１３号公報
【図１】
0005915278.tif 000002
【図２】
0005915278.tif 000003
【図３】
0005915278.tif 000004
【図４】
0005915278.tif 000005
【図５】
0005915278.tif 000006
【図６】
0005915278.tif 000007
【図７】
0005915278.tif 000008
【図８】
0005915278.tif 000009
【図９】
0005915278.tif 000010
【図１０】
0005915278.tif 000011
【図１１】
0005915278.tif 000012
【図１２】
0005915278.tif 000013
【図１３】
0005915278.tif 000014
【図１４】
0005915278.tif 000015
【図１５】
0005915278.tif 000016
【図１６】
0005915278.tif 000017
【図１７】
0005915278.tif 000018
【図１８】
0005915278.tif 000019
【図１９】
0005915278.tif 000020
【図２０】
0005915278.tif 000021
【図２１】
0005915278.tif 000022