(57)【要約】【課題】  プリンタドライバなどのデバイス制御プログラムの更新処理を行うための情報処理装置、プログラムおよび記録媒体を提供すること。【解決手段】  本情報処理装置は、本体部１２２と、本体部１２２に対し付加された付加機能部１２４とを含み構成されるデバイス制御プログラムと、デバイス制御プログラムの前記本体部の更新を検出する検出手段１５０と、本体部１２２の更新が検出されたことに対応して、更新された本体部１２２と付加機能部１２４との間の整合性を検証する検証手段１５２と、検証の結果、本体部１２２と付加機能部１２４との間に不整合が有った場合に、不整合を解消する処理を施す不整合解消手段１５４とを含む。【選択図】  図３
2013235312.tif 000002
【特許請求の範囲】
【請求項１】
本体部と、前記本体部に対し付加された付加機能部とを含み構成されるデバイス制御プログラムと、
前記デバイス制御プログラムの前記本体部の更新を検出する検出手段と、
前記本体部の更新が検出されたことに対応して、更新された前記本体部と前記付加機能部との間の整合性を検証する検証手段と、
前記検証の結果、前記本体部と前記付加機能部との間に不整合が有った場合に、前記付加機能部に対し、前記不整合を解消する処理を施す不整合解消手段と
を含む、情報処理装置。
【請求項２】
前記本体部は、該本体部が対応している記述規則を示す属性情報を含み、前記付加機能部は、該付加機能部の機能を記述する記述規則を示す属性情報を含み、前記検証手段は、前記本体部の属性情報と前記付加機能部の機能の属性情報とを比較して、更新された前記本体部と前記付加機能部の機能との組み合わせの不整合を判定する、請求項１に記載の情報処理装置。
【請求項３】
前記不整合解消手段は、前記付加機能部の不整合な機能を無効化する操作を行う、請求項１または２に記載の情報処理装置。
【請求項４】
前記不整合解消手段は、前記本体部が対応する記述規則と、前記付加機能部の機能を記述する記述規則との差分情報に基づいて、前記付加機能部の不整合な機能を、更新された前記本体部に整合する機能に変換する、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記本体部および前記付加機能部の間で重複する機能について、前記重複する機能のうちいずれを用いるかの設定を受ける設定手段をさらに含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記本体部および前記付加機能部の間で重複する機能について、前記付加機能部が有する該機能に対し施されたカスタマイズを、前記本体部が有する該機能に引き継がせる手段をさらに含む、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記本体部および前記付加機能部の間で重複する機能を、前記本体部が有する機能と、前記付加機能部が有する機能とを識別して共存させる手段をさらに含む、請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
コンピュータを、
本体部と、前記本体部に対し付加された付加機能部とを含み構成されるデバイス制御プログラムの前記本体部の更新を検出する検出手段、
前記本体部の更新が検出されたことに対応して、更新された前記本体部と前記付加機能部との間の整合性を検証する検証手段、および
前記検証の結果、前記本体部と前記付加機能部との間に不整合が有った場合に、前記付加機能部に対し、前記不整合を解消する処理を施す不整合解消手段
として機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムをコンピュータ可読に格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよび記録媒体に関し、より詳細には、プリンタドライバなどのデバイス制御プログラムの更新処理を行うための情報処理装置、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、複数の機種固有のモードを搭載し、接続されている機種に応じて動作を変更する、ユニバーサル・ドライバと呼ばれる形態のプリンタドライバが提供されている。上記ユニバーサル・ドライバは、機種固有の機種ファイル複数をドライバ・パッケージ内に保持し、これにより各機種固有の動作を実現している。
【０００３】
上述のようなユニバーサル・ドライバにおいては、新しい機種がリリースされると、典型的には、新規機種に対応した新しいバージョンのドライバが提供される。利用者は、新しいバージョンのドライバを取得し、ドライバをインストールし直すことによって、新しい機種も利用することができるようになる。一方で、新しい機種がリリースされる毎に新しいバージョンのドライバを取得および導入する作業を行うとすると、大きな作業負担となる。このような負担を低減するために、ドライバのコア自体は更新せず、機種ファイルを追加することで、新しい機種を使用可能にするユニバーサル・ドライバが知られている（特開２００９−２５８６５号公報：特許文献１）。
【０００４】
官公庁や企業などの組織においては、ドライバの動作を事前評価した上で使用されることも多い。ドライバのバージョンが変わると、通常、上記事前評価を再度行わなければならなくなるため、頻繁なバージョンアップは望まれない。上記特許文献１の従来技術によれば、ドライバ自体を更新せずに、新しい機種を追加できるので、このような評価による負担を低減することができる。
【０００５】
しかしながら、上記特許文献１の従来技術では、インストール済のドライバに後から機種や機能を追加することができるものの、ドライバ自体が更新された場合に対応していなかった。そのため、上記従来技術では、最新のドライバをインストールし直した場合に、正常な利用が妨げられ、また利便性が損なわれる可能性があった。
【０００６】
通常のバージョンアップであれば、ドライバコアのバージョンがあがっても、古い機種ファイルをそのまま使用しても問題がないことも多い。しかしながら、障害対応や仕様変更によっては、ドライバコアの更新と同時に機種ファイルを更新しなければならない場合もある。このような場合に、片方のファイルだけが更新されてしまうと、不整合な状態となり、正常動作が妨げられてしまう。
【０００７】
また、ある機種に関し、従前の標準で対応していなかったユニバーサル・ドライバから、標準で対応するユニバーサル・ドライバへ更新が行われると、通常は、最新のユニバーサル・ドライバに含まれる、より新しい機種ファイルが使用される。しかしながら、従前追加ファイルとして使用していた機種ファイルをそのまま使用することが望まれる場合がある。
【０００８】
例えば、企業などの組織においては、ドライバの評価が行われることが多いが、機種ファイルに変更がある場合、機種ファイルの評価も行う必要となることが一般的である。機種ファイルに変更がなければ、機種ファイルの評価は不要であるので、新しいドライバコアとの組み合わせで使用可能であれば、古い機種ファイルをそのまま使用したいという要望があった。また、ユーザ側で古い機種ファイルをカスタマイズして使用していた場合、新しい機種ファイルに変更するとそのカスタマイズ内容が破棄されてしまうので、古い機種ファイルをそのまま使用したいという要望があった。従来技術では、このような要望に応えることができなかった。
【０００９】
すなわち、ドライバコアおよび機種ファイルから構成されるユニバーサル・ドライバにおいて、ユニバーサル・ドライバが更新された場合に、ドライバコアと機種ファイルとの整合性を維持できるユニバーサル・ドライバの開発が望まれていた。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明は、本体部および、追加で対応した機能の情報を保持する付加機能部を含み構成されるデバイス制御プログラムにおいて、本体部が更新される場合でも、本体部と付加部との整合性を検証することが可能な情報処理装置、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では、上記課題を解決するために、本体部と、上記本体部に対し付加された付加機能部とを含み構成されるデバイス制御プログラムを含み、下記特徴を有する情報処理装置を提供する。本情報処理装置は、
上記デバイス制御プログラムの本体部の更新を検出する検出手段と、
上記本体部の更新が検出されたことに対応して、更新された本体部と付加機能部との間の整合性を検証する検証手段と、
上記検証の結果、上記本体部と付加機能部との間に不整合が有った場合に、前記付加機能部に対し、前記不整合を解消する処理を施す処理手段と
を含む、情報処理装置。
【発明の効果】
【００１２】
上記構成によれば、本体部および、追加で対応した機能の情報を保持する付加機能部を含み構成されるデバイス制御プログラムにおいて、本体部が更新される場合でも、本体部と付加部との整合性を検証することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態によるプリンタドライバの概略図。
【図２】本実施形態によるプリンタドライバの更新動作を説明する図。
【図３】本実施形態によるコンピュータ装置の機能ブロック図。
【図４】本実施形態によるコンピュータ装置が実行する、整合性検証および不整合解消処理の全体フローを示すフローチャート。
【図５】本実施形態によるコンピュータ装置が実行する、他の整合性検証および不整合解消処理の全体フローを示すフローチャート。
【図６】（Ａ）ドライバコア・ファイルと追加機種ファイルとの互換性について説明する図および（Ｂ）本実施形態による機種ファイルの文法差分データのデータ構造を例示する図。
【図７】本実施形態によるコンピュータ装置が実行する、更新インストール処理を示すフローチャート。
【図８】（Ａ）優先設定ダイアログおよび（Ｂ）ドライバの機種の切り替え画面を例示する図。
【図９】（Ａ）カスタマイズされた機種ファイルのデータ構造および（Ｂ）追加機種ファイルのカスタマイズ内容を標準機種ファイルに引き継ぐ処理を説明する図。
【図１０】本実施形態によるコンピュータ装置のハードウェア構成図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の説明では、デバイス制御プログラムが動作する情報処理装置の一例として、ユニバーサル・プリンタドライバが動作するコンピュータ装置を用いて説明する。
【００１５】
以下、図１および図２を参照しながら、本実施形態によるユニバーサル・プリンタドライバ（以下、単に本プリンタドライバと参照する。）の基本的な動作について説明する。図１は、本実施形態によるプリンタドライバの概略を示す図である。本プリンタドライバは、実行形式またはシステム定義ファイルの形態で提供されるプリンタドライバ・パッケージ１００を用いてコンピュータ装置上にインストールすることができる。
【００１６】
図１に示すプリンタドライバ・パッケージ（以下、単にパッケージという。）１００は、ドライバコア・ファイル１０２と、１以上の機種ファイル１０４とを含む。ドライバコア・ファイル１０２は、本プリンタドライバのユーザ・インターフェイス（以下、ＵＩと参照する。）を表示させたり、描画データを生成したりするなどの中核的な機能を担当するプログラムのファイルである。機種ファイル１０４は、ドライバコア・ファイル１０２と分離して提供され、機種固有の動作を実現するための定義情報を記述した定義データである。機種ファイル１０４は、ドライバコア・ファイル１０２に追加の機能を付与する。図１の例示では、パッケージ１００内に２つの機種ファイル１０４ａ，１０４ｂが含まれている。
【００１７】
パッケージ１００を用いてインストールが行われると、本プリンタドライバを構成する各種ドライバ構成ファイルが、オペレーティング・システム上に準備された所定の記憶領域１２０内に保存される。図１に示す例では、ドライバコア・ファイル１３０、機種Ａ用機種ファイル１３２ａおよび機種Ｂ用機種ファイル１３２ｂといったドライバ構成ファイルが記憶領域１２０に保存される。上記記憶領域１２０は、特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）環境においては、”３”フォルダ、”ｓｙｓｔｅｍ３２”フォルダ、”ＡｐｐｌｉｃａｔｉｏｎＤａｔａ”フォルダなどである。
【００１８】
本プリンタドライバのドライバコア・ファイル１３０は、コンピュータ装置上で実行されて、記憶領域１２０に保存された機種ファイル１３２ａ，１３２ｂの情報をＵＩに出力し、またＵＩで設定された内容に応じて描画データを生成する。これにより、複数の機種固有のモードが実現され、接続されているプリンタの機種に応じて動作が変更される。
【００１９】
さらに、本プリンタドライバでは、インストール後に、外部の機種ファイルを用いて機種を追加可能に構成されており、パッケージ１００を用いたインストール後の任意のタイミングで、ドライバコアなどの更新を伴わずに、新たな機種ファイルを追加導入することが可能である。図１に示す例では、外部の機種ファイル１０６ｃ，１０６ｄを用いて、機種Ｃ用機種ファイル１３４ｃおよび機種Ｄ用機種ファイル１３４ｄが記憶領域１２０に追加されている。
【００２０】
機種ファイルの追加は、典型的には、入手した機種ファイルを手動で、または機種ファイルの管理ツールや機種ファイルのインストーラなどのアプリケーションを用いて、記憶領域１２０の適切な保存位置に格納することによって行われる。追加された機種ファイルを追加機種ファイル１３４と参照する。
【００２１】
以下、パッケージ１００のインストールにより導入されたドライバ構成ファイル（図１の例では、ドライバコア・ファイル１３０，機種Ａ用機種ファイル１３２ａ，機種Ｂ用機種ファイル１３２ｂ）を格納する部分を、パッケージのインストールにより導入された本体部分として、本体部１２２と参照する。これに対し、追加機種ファイル１３４を格納する部分を、プリンタドライバの本体部１２２に付加された機能を含む付加機能部１２４と参照する。
【００２２】
また、本プリンタドライバは、更新されたプリンタドライバ・パッケージを用いて、またはプリンタドライバのアップデート機能を用いて、更新することができる。図２は、本実施形態によるプリンタドライバの更新動作を説明する図である。例えば、図１に示した状態において、更新されたプリンタドライバ・パッケージ（以下、更新パッケージと参照する。）１１０を用いて更新インストールが行われると、記憶領域１２０内のドライバ構成ファイルが更新される。
【００２３】
図２に示す更新パッケージ１１０は、更新されたドライバコア・ファイル１１２と、更新された機種ファイル１１４ａ，１１４ｂと、本バージョンから標準対応する機種ファイル１１４ｃとを含んでいる。更新パッケージ１１０を用いて更新インストールが行われると、記憶領域１２０で、ドライバコア・ファイル１３０および機種ファイル１３２ａ，１３２ｂが新しいもので上書き更新され、機種ファイル１３２ｃが新規保存される。このとき、本体部１２２が本プリンタドライバ自体の更新の対象となるのに対して、付加機能部１２４の追加機種ファイル１３４ｃ，１３４ｄは、通常、何ら更新されない。
【００２４】
このとき、上述したように、更新されたドライバコア・ファイル１３０と従前から在る追加機種ファイル１３４との組み合わせの問題が生じる。障害対応や仕様変更によって、互換性が失われ、ドライバコア・ファイル１３０と追加機種ファイル１３４とを同時に変更しなければ、正常動作が妨げられる場合があるためである。図２に例示する機種Ｄ用機種ファイル１３４ｄは、更新されたドライバコア・ファイル（Ｖｅｒ１．１）１３０との組み合わせでは正常に動作することができず、不整合な状態となっている。
【００２５】
また、更新された本体部１２２の機種ファイル１３２と従前から在る追加機種ファイル１３４との組み合わせの問題も生じる。更新パッケージにおいて、従前標準で対応しておらず追加機種ファイルで対応していた機種が、標準対応される場合があるためである。図２に示す例では、追加機種ファイル１３４ｃと共通の機種ファイル１１４ｃが更新パッケージ１１０内に存在し、更新インストール後に重複が生じる。
【００２６】
本実施形態によるプリンタドライバは、上述した本体部１２２の更新に伴う不整合な状態を解消するべく整合性検証機能および不整合解消機能を備える。以下、図３を参照して、本実施形態による整合性検証機能および不整合解消機能について説明する。図３は、本実施形態によるコンピュータ装置の機能ブロック図である。
【００２７】
図３に示すコンピュータ装置の機能ブロックは、図２に示した記憶領域１２０と、更新検出部１５０と、整合性検証部１５２と、不整合解消部１５４とを含む。記憶領域１２０は、本プリンタドライバ自体の更新の対象となる本体部１２２と、本体部１２２に対し付加され、本プリンタドライバ自体の更新の対象とはならない付加機能部１２４とを含み構成される、デバイス制御プログラムを格納するファイル・システム上の記憶領域である。更新検出部１５０、整合性検証部１５２および不整合解消部１５４は、本プリンタドライバが実行されてコンピュータ装置上に実現される処理手段である。
【００２８】
更新検出部１５０は、例えばドライバの機種の切り替え画面のＵＩ表示指示に応答して呼び出され、上記本体部１２２が更新されたことを検出する。更新の検出は、例えば、前回起動時のドライバコア・ファイル１３０のバージョン情報を記録し、今回起動時のバージョン情報と比較することによって行われる。整合性検証機能および不整合解消機能は、典型的には、新たに本プリンタドライバ自体の更新が行われた後、初回に呼び出される。あるいは、整合性検証機能および不整合解消機能は、本プリンタドライバの更新が行われた際に呼び出される。更新検出部１５０は、本体部１２２の更新を検出すると、整合性検証部１５２を呼び出す。
【００２９】
整合性検証部１５２は、上記本体部１２２の更新が検出されたことに対応して、本体部１２２のドライバコア・ファイル１３０と、付加機能部１２４の追加機種ファイル１３４とを参照して、更新された本体部１２２と付加機能部１２４との間の整合性を検証する。ここでいう整合性の検証とは、ドライバコア・ファイル１３０と追加機種ファイル１３４との間の互換性の有無を判定することである。また、整合性の検証は、本体部１２２の機種ファイル１３２と追加機種ファイル１３４との間の重複の有無を判定することを含んでいてもよい。
【００３０】
詳細は後述するが、整合性検証部１５２は、ドライバコア・ファイル１３０内の該ドライバコアが対応している記述規則を示す属性情報と、追加機種ファイル１３４内の該ファイルを記述する記述規則を示す属性情報とを比較して、更新された本体部１２２と付加機能部１２４が有する追加機種ファイル１３４との組み合わせの不整合を判定する。また、整合性検証部１５２は、本体部１２２の機種ファイル１３２と、付加機能部１２４の追加機種ファイル１３４とを比較して、重複の有無を判定することができる。整合性検証部１５２は、判定結果を不整合解消部１５４に渡す。
【００３１】
不整合解消部１５４は、検証の結果、本体部１２２と付加機能部１２４との間に不整合が有った場合に、付加機能部１２４の追加機種ファイル１３４に対し操作を行って、本プリンタドライバの不整合を解消する不整合解消処理を実行する。不整合解消処理としては、不整合解消部１５４は、付加機能部１２４の不整合な追加機種ファイル１３４を無効化する操作を行うことができる。あるいは、好適には、不整合解消部１５４は、本体部１２２が対応する記述規則と、付加機能部１２４の追加機種ファイル１３４を記述する記述規則との差分情報を格納する文法差分データ１５６を参照して、上記不整合な追加機種ファイル１３４を、更新されたドライバコア・ファイル１３０に整合する追加機種ファイルに変換する操作を行うことができる。さらに、不整合解消部１５４は、重複する機種ファイルのいずれを使用するかを選択し、または両方を使用できるように共存させる操作を行うことができる。なお、不整合解消処理の詳細については後述する。
【００３２】
以下、図４〜図６を参照しながら、本実施形態の整合性検証機能および不整合解消機能について詳細を説明する。図４は、本実施形態によるコンピュータ装置が実行する、整合性検証および不整合解消処理の全体フローを示すフローチャートである。図４に示す処理は、更新検出部１５０が更新を検出したことに応答して、ステップＳ１０１から開始される。
【００３３】
ステップＳ１０２では、整合性検証部１５２は、付加機能部１２４内の追加機種ファイル１３４を列挙し、ステップＳ１０３〜ステップＳ１０８のループにおいて、各追加機種ファイル毎に、ステップＳ１０４〜ステップＳ１０７の処理を実行する。ステップＳ１０４では、整合性検証部１５２は、当該追加機種ファイルが、更新されたドライバコア・ファイルに対し、互換性を有しているかを確認する。
【００３４】
図６（Ａ）は、ドライバコア・ファイル１３０と、追加機種ファイル１３４との互換性について説明する図である。かかる互換性を判定しようとする場合、機種ファイルのバージョンに基づいて判定することもできるが、本実施形態では、文法バージョンと呼ぶ記述規則を示す属性情報を用いて判定する。
【００３５】
プリンタドライバの開発過程を詳細に検討してみると、仕様変更や障害対応を理由として機種ファイルに変更を施したとき、その結果として、ドライバコア・ファイルとの互換性が失われてしまうというケースは、機種ファイルの文法（記載ルール）が変更された場合であるということができる。機能追加によって機種のデフォルト情報が変更されたり、機種ファイルに追加機能が増えたりしたとしても、このような変更は、ドライバコア・ファイルとの互換性を妨げる要因とならない。一方、機種ファイル内のキーワードの意味定義が変更されたり、記述方式が変更されたり、記述すべき情報が変更された場合、すなわち文法が変更されたときに互換性に影響を与え得る。
【００３６】
本実施形態では、文法バージョンという概念を導入し、機種ファイルに該機種ファイルの内容を記述する文法バージョンを記述する。そして、ドライバコア・ファイルに、該ドライバが対応可能な文法バージョンを記述することによって、互換性を検証することを可能とする。開発者側では、機種ファイルの内容を変更した場合でも、記述規則に変更がなければ、同一の文法バージョンを記載する。
【００３７】
図６（Ａ）に示す例では、「バージョン１．０」で識別される機種ファイルは、「文法バージョン２．０」で記述されており、「文法バージョン２．０」に対応している「コアファイルＡ」および「コアファイルＢ」で識別されるドライバコア・ファイルとの組み合わせでは、正常動作が可能とされる。
【００３８】
一方、「バージョン１．０」で識別される機種ファイルは、「文法バージョン２．０」に対応していない「コアファイルＣ」および「コアファイルＤ」で識別されるドライバコア・ファイルとの組み合わせで実行されると、正常動作が妨げられることになる。また、ドライバコア・ファイル１３０は、複数の記述規則に対応可能な場合もあるので、「コアファイルＣ」で識別されるドライバコア・ファイルのように、複数のバージョンが記述される場合もある。
【００３９】
再び図４を参照すると、ステップＳ１０５では、不整合解消部１５４は、互換性を有しているか否かを判定し、処理を分岐させる。ステップＳ１０５で、互換性を有していると判定された場合（ＹＥＳ）は、ステップＳ１０６へ処理が分岐される。ステップＳ１０６では、不整合解消部１５４は、当該追加機種ファイルを、本プリンタドライバの対応可能な機種を管理する対応機種リストに追加し、追加機種ファイルが使用できるようにする。
【００４０】
一方、ステップＳ１０５で、互換性を有しないと判定された場合（ＮＯ）は、ステップＳ１０７へ処理が分岐される。ステップＳ１０７では、不整合解消部１５４は、当該追加機種ファイル１３４を対応機種リストから除外し、無効化する。ここで無効化とは、当該追加機種ファイル１３４がユーザから使用されないように、対応機種リストに含めないようにすることをいう。また、互換性の無い追加機種ファイルを削除、または所定の記憶領域に待避させるようにしてもよい。すべての追加機種ファイル１３４に対する処理が終了すると、ステップＳ１０３〜ステップＳ１０８のループを抜け、ステップＳ１０９で、本処理が終了する。
【００４１】
図５は、本実施形態によるコンピュータ装置が実行する、他の整合性検証および不整合解消処理の全体フローを示すフローチャートである。図４に示す処理が、一律に互換性の無い追加機種ファイル１３４を無効化するのに対し、図５に示す処理では、文法差分データ１５６の内容に基づいて、上記不整合な追加機種ファイル１３４を、更新されたドライバコア・ファイル１３０に整合する追加機種ファイル１３４に変換する操作が試みられる。
【００４２】
図５に示す処理は、図４に示す処理と同様に、更新検出部１５０が更新を検出したことに応答して、ステップＳ２０１から開始される。ステップＳ２０２では、整合性検証部１５２は、付加機能部１２４内の追加機種ファイル１３４を列挙し、ステップＳ２０３〜ステップＳ２１０のループにおいて、各追加機種ファイル毎に、ステップＳ２０４〜ステップＳ２０９の処理を実行する。ステップＳ２０４では、整合性検証部１５２は、当該追加機種ファイル１３４が、更新されたドライバコア・ファイル１３０に対し、互換性を有しているかを確認する。
【００４３】
ステップＳ２０５では、不整合解消部１５４は、互換性を有しているか否かを判定し、互換性を有していると判定された場合（ＹＥＳ）は、ステップＳ２０６へ処理を分岐させる。ステップＳ２０６では、不整合解消部１５４は、追加機種ファイル１３４を対応機種リストに追加し、ループ端Ｓ２１０へ処理を進める。一方、ステップＳ２０５で、互換性を有しないと判定された場合（ＮＯ）は、ステップＳ２０７へ処理が分岐される。
【００４４】
ステップＳ２０７では、不整合解消部１５４は、当該追加機種ファイル１３４の変換が可能であるか否かを判定する。図６（Ｂ）は、機種ファイルの文法差分データ１５６を例示する図である。追加機種ファイル１３４のバージョン情報と、ドライバコア・ファイル１３０の対応バージョン情報との差分が、文法差分データ１５６内に記述されていれば、変換可能と判定される。ステップＳ２０７で、変換可能であると判定された場合（ＹＥＳ）は、ステップＳ２０８へ処理を分岐させる。ステップＳ２０８では、不整合解消部１５４は、追加機種ファイル１３４に対し変換処理を行う。
【００４５】
図６（Ｂ）に例示する文法差分データ１５６では、バージョン２（Ｖｅｒ２．０）とバージョン１（Ｖｅｒ１．０）との差分として、バージョン２では、バージョン１にあった２つの記述が削除され、新たに３つの記述が追加されていることが示されている。また、バージョン３（Ｖｅｒ３．０）とバージョン２（Ｖｅｒ２．０）との差分として、バージョン３では、バージョン２にあった用語「Ｏｐｔｉｏｎ３０」が、「Ｆｉｎｉｓｈｅｒ」という用語に変更されていることが示されている。
【００４６】
このような文法差分データ１５６を参照することで、文法間の差分が判定できるので、不整合解消部１５４は、従前の付加機能部１２４の追加機種ファイル１３４を、更新されたドライバコア・ファイル１３０に整合する機種ファイルに変換することができる。なお、文法差分データ１５６は、パッケージ１００，１１０内に含ませてもよいし、本プリンタドライバ外に準備し、読み込む態様としてもよい。変換処理が完了すると、ステップＳ２０６へ処理が進められて、追加機種ファイルに対応する機種を対応機種リストに追加される。
【００４７】
一方、ステップＳ２０７で、変換可能ではないと判定された場合（ＮＯ）は、ステップＳ２０９へ処理を分岐させる。ステップＳ２０９では、不整合解消部１５４は、当該追加機種ファイル１３４を、対応機種リストから除外して無効化し、ループ端Ｓ２１０へ処理を進める。すべての追加機種ファイル１３４に対する処理が終了すると、ステップＳ２０２〜ステップＳ２１０のループを抜け、ステップＳ２１１で、本処理が終了する。
【００４８】
図４に示した不整合な追加機種ファイルの無効化により、正常動作ができない機種ファイルが使用され続けることを防止し、問題を発生させる蓋然性を低減することができる。また、図５のステップＳ２０８に示した機種ファイルの変換処理により、本体部１２２のドライバコア・ファイル１３０と、付加機能部１２４の追加機種ファイル１３４とに不整合があっても、可能な限り整合な状態として追加機種ファイルを使用可能にすることができる。これにより、本プリンタドライバの利便性が向上される。
【００４９】
以下、図７〜図９を参照しながら、上述した機種ファイルの重複に対処する処理について説明する。図７は、本実施形態によるコンピュータ装置が実行する、更新インストール処理を示すフローチャートである。図７に示す処理は、更新パッケージ１１０を用いて更新インストールが指令されたことに応答して、ステップＳ３００から開始される。ステップＳ３０１では、コンピュータ装置は、更新パッケージ１１０内のドライバコア・ファイル１１２で、記憶領域１２０内のものを上書きし、更新パッケージ１１０内の機種ファイル１１４（以下、標準機種ファイルと参照する。）を保存し、記憶領域１２０内のドライバ構成ファイルを更新する。ここでは、上述したように機種ファイルが重複する可能性があることから、標準機種ファイル１３２および追加機種ファイル１３４は、異なる保存場所に保存するか、あるいは異なるファイル名で保存される。
【００５０】
本プリンタドライバの本体部１２２の更新を検出して、ステップＳ３０２〜ステップＳ３１８のループにおいて、コンピュータ装置は、各標準機種ファイル毎に、ステップＳ３０３〜ステップＳ３１７の処理を実行する。ステップＳ３０３では、整合性検証部１５２は、標準機種ファイル１３２が追加機種ファイル１３４と重複しているかを確認する。
【００５１】
ステップＳ３０４で、重複がないと判定された場合（ＮＯ）は、ステップＳ３０５へ処理が分岐される。ステップＳ３０５では、不整合解消部１５４は、当該標準機種ファイル１３２を、本プリンタドライバから参照されるように有効化し、ループ端Ｓ３１８へ処理を進める。一方、ステップＳ３０４で、重複ありと判定された場合（ＹＥＳ）は、ステップＳ３０６へ処理が分岐される。ステップＳ３０６では、不整合解消部１５４は、重複があった場合にいずれを優先させて用いるかの優先設定情報に基づいて処理を分岐させる。
【００５２】
図８（Ａ）は、更新インストール処理で参照される優先設定情報を設定するための機種ファイル優先設定ダイアログ２００を示す。図８（Ａ）に示す機種ファイル優先設定ダイアログ２００は、機種ファイルの優先設定の選択を求めるメッセージ表示２０２と、優先設定を指定するためのラジオボタン２０４ａ〜２０４ｆと、ＯＫボタン２０６と、キャンセル・ボタン２０８とを含む。ラジオボタン２０４には、５つの選択肢が提示され、ユーザは、当該ダイアログ２００のラジオボタン２０４ａ〜２０４ｆから、ユーザ側の方針にあった選択肢を選ぶことができる。
【００５３】
ラジオボタン２０４ａは、最新の機種ファイルを優先する旨を指定するボタンであり、これが選択されると、更新パッケージ１１０内の標準機種ファイル１１４が使用され、追加機種ファイル１３４が使用されなくなる。ラジオボタン２０４ｂは、追加された機種ファイルを優先する旨を指定するボタンであり、これが選択されると、更新パッケージ１１０内の標準機種ファイル１１４が使用されなくなり、追加機種ファイル１３４が使用されるようになる。ラジオボタン２０４ｃは、すべての機種ファイルを共存する旨を指定するボタンであり、これが選択されると、標準機種ファイル１３２および追加機種ファイル１３４が共に使用され、いずれを使用するかは、プリンタのプロパティ画面のドライバの機種の切り替え画面で指定されることになる。
【００５４】
ラジオボタン２０４ｄは、差がある場合のみ機種ファイルを共存する旨を指定するためのボタンであり、これが選択されると、標準および追加の機種ファイル間で差がある場合に標準機種ファイル１３２および追加機種ファイル１３４が共に使用され、差がない場合は、標準機種ファイル１３２に統合される。ラジオボタン２０４ｅは、カスタマイズされているときのみ追加機種ファイルを使用する旨を指定するボタンであり、これが選択されると、追加機種ファイル１３４がカスタマイズされている場合は、その追加機種ファイル１３４を使用し、カスタマイズされていない場合は、標準機種ファイル１３２が使用される。
【００５５】
ラジオボタン２０４ｆは、最新の機種ファイルを、カスタマイズを引き継いで、使用する旨を指定するボタンであり、これが選択されると、詳細は後述するが、追加機種ファイル１３４のカスタマイズ内容を、標準機種ファイル１３２に引き継がせた上で、標準機種ファイル１３２が使用される。ＯＫボタン２０６がクリックされると、優先設定情報が、例えばレジストリに書き込まれ、更新インストール時に参照されることになる。
【００５６】
再び図７を参照すると、ステップＳ３０６で、優先選定情報にて最新の機種ファイルを優先する指定があった場合（最新優先）は、ステップＳ３０７へ処理が分岐される。ステップＳ３０７では、不整合解消部１５４は、標準機種ファイルを有効化し、一方で追加機種ファイルを無効化し、ループ端Ｓ３１８へ処理を進める。ここで、有効化とは、本プリンタドライバのドライバコアが当該機種ファイルを読み込むように設定することであり、無効化とは、本プリンタドライバのドライバコアが当該機種ファイルを無視し、読み込まないように設定することである。無効化された追加機種ファイルについては、記憶領域１２０から削除してもよい。
【００５７】
ステップＳ３０６で、優先選定情報にて追加機種ファイルを優先する指定があった場合（追加優先）は、ステップＳ３０８へ処理が分岐される。ステップＳ３０８では、不整合解消部１５４は、追加機種ファイル１３４を有効なまま維持し、標準機種ファイル１３２を無効化し、ループ端Ｓ３１８へ処理を進める。ステップＳ３０６で、機種ファイルを共存する指定があった場合（共存）は、ステップＳ３０９へ処理が分岐される。ステップＳ３０９では、不整合解消部１５４は、追加機種ファイル１３４を有効なまま維持し、標準機種ファイル１３２を、別個の機種ファイルとして有効化し、ループ端Ｓ３１８へ処理を進める。
【００５８】
図８（Ｂ）は、標準機種ファイル１３２および追加機種ファイル１３４の機種を別個の機種として選択可能に表示するドライバの機種の切り替え画面を例示する。プリンタドライバのプロパティ画面２２０は、複数のタブを有し、タブ２２２は、本プリンタドライバの機種の切り替え画面を表示するためのタブである。本プリンタドライバのプロパティ画面２２０における機種の切り替え画面は、現在選択されているプリンタの機種を表示する現在機種表示２２４と、機種を手動で切り替えるためのプルダウン・メニュー２２６と、設定内容を適用するための更新ボタン２２８と、設定内容を確定するためのＯＫボタン２３４と、設定をキャンセルするためのキャンセル・ボタン２３６とを含む。
【００５９】
図８（Ｂ）においてカーソル２２６ａで示すように、追加機種ファイル１３４および標準機種ファイル１３２を共存させる場合において、共存させる機種ファイルの表示名を異ならしめてリストアップされている。このように、表示名を異ならしめることで、ユーザに追加機種ファイル１３４と標準機種ファイル１３２とを別個の機種として識別させるとともに、プリンタドライバの動作上も区別され、両方の機種ファイルが使用可能となる。
【００６０】
また、表示名としては、追加機種ファイル１３４については、図８（Ｂ）に例示するように、例えばモデル名のあとに「（Ａｄｄｅｄ）」などの文字列を追加することができ、また、複数の追加機種ファイルが追加される場合は、「（Ａｄｄｅｄ  １）」、「（Ａｄｄｅｄ  ２）」というように連番を付して識別させることもできる。その他、ユーザ側で任意の文字列を付けられるように構成してもよい。またこのような表示名の変更は、機種ファイル内に表示名を保存できるような項目を設けることで対応することができる。好適な実施形態では、本プリンタドライバのＵＩ画面から、機種表示名を変更するインタフェースを提供することができる。
【００６１】
再び図７を参照すると、ステップＳ３０６で、差がある場合に機種ファイルを共存する指定があった場合（差があれば共存）は、ステップＳ３１０へ処理が分岐される。ステップＳ３１０では、不整合解消部１５４は、追加機種ファイル１３４と標準機種ファイル１３２とをパースして比較する。ステップＳ３１１では、比較した結果、追加機種ファイル１３４と標準機種ファイル１３２との間にバージョンや内容の差があるか否かを判定する。ステップＳ３１１で、差があると判定された場合（ＹＥＳ）は、ステップＳ３０９へ処理を分岐させて、追加機種ファイル１３４を有効なまま維持し、標準機種ファイル１３２を別個の機種ファイルとして有効化する。一方、ステップＳ３１１で、差がないと判定された場合（ＮＯ）は、ステップＳ３１２へ処理を分岐させる。ステップＳ３１２では、不整合解消部１５４は、標準機種ファイル１３２を有効化し、追加機種ファイル１３４を無効化し、ループ端Ｓ３１８へ処理を進める。
【００６２】
ステップＳ３０６で、カスタマイズされた場合に追加機種ファイルを使用する指定があった場合（カスタマイズ優先）は、ステップＳ３１３へ処理が分岐される。ステップＳ３１３では、追加機種ファイルをパースして、カスタマイズされているか否かを判定する。図９（Ａ）は、カスタマイズされた機種ファイルのデータ構造を例示する図である。図９（Ａ）に示すように、機種ファイル中には、「ＤｅｆａｕｌｔＳｅｔｔｉｎｇ」のタグで囲まれた部分に、カスタマイズされた内容が記述される。このような、機種ファイルのデータ構造では、「ＤｅｆａｕｌｔＳｅｔｔｉｎｇ」のタグが存在するか否かで、カスタマイズされているか否かを判定することができる。また、図９（Ａ）の例は、デフォルト設定値のカスタマイズ内容を例示するが、機能を制限する機能ロックやオプションの選択肢を制限する選択肢ロックがカスタマイズされる場合でも、同様にカスタマイズ情報を判定することができる。
【００６３】
再び図７を参照すると、ステップＳ３１３で、カスタマイズされていないと判定された場合（ＮＯ）は、ステップＳ３１２へ分岐させて、不整合解消部１５４は、標準機種ファイル１３２を有効化し、一方で追加機種ファイル１３４を無効化し、ループ端Ｓ３１８へ処理を進める。一方、ステップＳ３１３で、カスタマイズされていると判定された場合（ＹＥＳ）は、ステップＳ３１４へ分岐させる。ステップＳ３１４では、不整合解消部１５４は、追加機種ファイル１３４を有効なまま維持し、標準機種ファイル１３２を無効化し、ループ端Ｓ３１８へ処理を進める。
【００６４】
ステップＳ３０６で、カスタマイズされた場合に標準機種ファイルに引き継いで使用する指定があった場合（カスタマイズ引継統合）は、ステップＳ３１５へ処理が分岐される。ステップＳ３１５では、追加機種ファイル１３４をパースして、カスタマイズされているか否かを判定する。ステップＳ３１５で、カスタマイズされていると判定された場合（ＹＥＳ）は、ステップＳ３１６へ分岐させる。ステップＳ３１６では、不整合解消部１５４は、追加機種ファイル１３４のカスタマイズ部分を標準機種ファイル１３２に統合する。
【００６５】
図９（Ｂ）は、追加機種ファイル１３４のカスタマイズ内容を、標準機種ファイル１３２に引き継ぐ処理を説明する図である。図９（Ｂ）に示すように、追加機種ファイル１３４は、基本部分Ａ１３４ａおよび基本部分Ｂ１３４ｂに加えて、カスタマイズ情報部分１３４ｃを含んでおり、引き継ぎ処理により、標準機種ファイル１３２内の基本部分Ａ１３２ａと基本部分１３２ｂとの間に、カスタマイズ情報部分１３２ｃが挿入される。
【００６６】
ステップＳ３１７では、不整合解消部１５４は、カスタマイズ内容が統合された標準機種ファイル１３２を有効化し、追加機種ファイル１３４を無効化し、ループ端Ｓ３１８へ処理を進める。一方、ステップＳ３１５で、カスタマイズされていないと判定された場合（ＮＯ）は、直接ステップＳ３１７へ分岐させ、不整合解消部１５４は、カスタマイズされていない元の標準機種ファイル１３２を有効化し、追加機種ファイル１３４を無効化し、ループ端Ｓ３１８へ処理を進める。すべての標準機種ファイルに対する処理が終了すると、ステップＳ３０２〜ステップＳ３１８のループを抜け、ステップＳ３１９で、本処理を終了する。
【００６７】
図７に示した、重複状態にある標準機種ファイルと追加機種ファイルとについて優先設定に基づいて、いずれを使用するか、共存させるかを判定し、不整合を解消させる処理により、重複状態が解消される。ひいては、いずれか一方または両方を選択して使用したいというユーザの要望に応えることが可能となり、利便性が向上する。
【００６８】
以下、図１０を参照しながら、本実施形態によるコンピュータ装置１０のハードウェア構成について説明する。図１０は、本実施形態によるコンピュータ装置のハードウェア構成を示す図である。本実施形態によるコンピュータ装置１０は、デスクトップ型、ノート型あるいはモバイル型のパーソナル・コンピュータ、ワークステーションなどの汎用コンピュータ、またはタブレット端末やスマートフォン端末などの携帯情報端末として構成される。図１０に示すコンピュータ装置１０は、シングルコアまたはマルチコアのＣＰＵ（Central Processing Unit）を含む制御部１２と、ＲＡＭ（Random Access Memory）などの主記憶部１４と、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの補助記憶部１６と、外部記憶装置Ｉ／Ｆ部１８と、ＮＩＣ（Network interface Card）などのネットワークＩ／Ｆ部２０と、入力部２２と、ディスプレイ部２４とを含む。
【００６９】
補助記憶部１６は、コンピュータ装置を制御するためのＯＳ、パッケージ１００，１１０、上述した機能部を実現するための制御プログラムや各種システム情報や各種設定情報を格納する。外部記憶装置Ｉ／Ｆ部１８は、ＵＳＢフラッシュメモリ、スマートメディア（登録商標）、ＳＤメモリーカード（登録商標）などの外部記憶メディアと接続するためインタフェース機器である。ネットワークＩ／Ｆ部２０は、コンピュータ装置１０をネットワークに接続させるインタフェース機器である。
【００７０】
入力部２２およびディスプレイ部２４は、当該コンピュータ装置１０のオペレータからの、ドライバ更新やＵＩ表示などの各種指示の入力を受け付けるためのユーザ・インタフェースを提供する。入力部２２は、マウス、キーボード、タッチパネルなどの入力装置を含む。コンピュータ装置１０は、補助記憶部１６からＯＳのプログラムや上記パッケージ１００，１１０などを読み出し、主記憶部１４が提供する作業空間に展開することにより、制御部１２の制御の下、上述した各機能部および各処理を実現する。
【００７１】
以上説明したように、本実施形態によれば、本体部および、追加で対応した機能の情報を保持する付加機能部を含み構成されるデバイス制御プログラムにおいて、本体部が更新される場合でも、本体部と付加部との整合性を検証することが可能な情報処理装置、プログラムおよび記録媒体を提供することができる。
【００７２】
障害対応や仕様変更のバージョンアップによって、互換性の問題からドライバコアの更新と同時に機種ファイルを更新しなければならない場合でも、上記構成によれば、片方のファイルだけが更新されてしまうことを回避し、正常動作を維持することができる。
【００７３】
また、上記構成によれば、ある機種を従前の標準で対応していなかったドライバから、標準で対応するドライバへ更新が行われた場合でも、当該機種について、従前の追加機種ファイルおよび新しい標準機種ファイルのいずれかを選択して使用することができる。このため、古い追加機種ファイルをそのまま使用できるので、ドライバの更新により再評価が必要な組織内のルールでも、再評価が不要となり、作業負担が軽減される。また、ユーザ側で追加機種ファイルをカスタマイズして使用していた場合でも、新しい標準機種ファイルにカスタマイズ内容を引き継ぐことができるので、カスタマイズ内容を継続して利用することができる。
【００７４】
なお、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【００７５】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７６】
１００，１１０…パッケージ、１０２，１１２…ドライバコア・ファイル、１０４，１１４…機種ファイル、１０６…外部機種ファイル、１２０…記憶領域、１２２…本体部、１２４…付加機能部、１３０…ドライバコア・ファイル、１３２…機種ファイル、１３４…追加機種ファイル、１５０…更新検出部、１５２…整合性検証部、１５４…不整合解消部、１５６…文法差分データ、２００…機種ファイル優先設定ダイアログ、２０２…メッセージ表示、２０４…ラジオボタン、２０６，２３４…ＯＫボタン、２０８，２３６…キャンセルボタン、２２０…プロパティ画面、２２２…プリンタ選択タブ、２２４…現在のプリンタドライバ表示、２２６…プルダウン・メニュー、２２８…更新ボタン、１０…コンピュータ装置、１２…制御部、１４…主記憶部、１６…補助記憶部、１８…外部記憶装置Ｉ／Ｆ部、２０…ネットワークＩ／Ｆ部、２２…入力部、２４…ディスプレイ部
【先行技術文献】
【特許文献】
【００７７】
【特許文献１】特開２００９−２５８６５号公報
【図１】
2013235312.tif 000003
【図２】
2013235312.tif 000004
【図３】
2013235312.tif 000005
【図４】
2013235312.tif 000006
【図５】
2013235312.tif 000007
【図６】
2013235312.tif 000008
【図７】
2013235312.tif 000009
【図８】
2013235312.tif 000010
【図９】
2013235312.tif 000011
【図１０】
2013235312.tif 000012