以下に添付図面を参照して、情報処理装置、プログラム、及び記録媒体の実施の形態を詳細に説明する。図1は、本実施の形態にかかる、情報処理システムの構成を示す図である。
図1に示すように、本実施の形態の情報処理システム1000は、情報処理装置100、サーバ200、及び機種の異なる複数種類の周辺機器としての画像形成装置400が、ネットワーク300を介して接続されている。
ネットワークは、有線通信網であっても無線通信網であってもよい。ネットワークは、例えば、LAN(Local Area Network)を用い、Ethernet(登録商標)やTCP/IPなどの通信プロトコルを利用する。
画像形成装置400は、記録媒体に画像を形成する画像形成機能等を備えた公知の画像形成装置である。なお、図1には、説明を簡略化するために、1台の画像形成装置400がネットワーク300に接続されている図を示したが、実際には、機種の異なる複数種類の周辺機器が接続される。
また、本実施の形態の情報処理システムでは、ネットワーク300に接続された周辺機器が、画像形成装置400である場合を説明するが、周辺機器は、画像形成装置に限られない。周辺機器は、例えば、ファクシミリ機能を備えたファックス装置や、スキャナ機能を備えたスキャナ装置、画像を投影する投影機能を備えた投影装置等であってもよい。また、周辺機器は、画像形成機能、ファクシミリ機能、スキャナ機能、及び投影機能等の複数の機能の内の2以上を備えた複合機であってもよい。
画像形成装置400は、コントローラ402とエンジン部404とを備える。コントローラ402は、CPU(Central Processing Unit)と、ROM(Read Only Memory)、及びRAM(Random Access Memory)などの主記憶部と、HDDなどの補助記憶部と、通信部とを有する。主記憶部は、各種プログラムや各種データを記憶する。補助記憶部は、各種プログラムや各種データを記憶する。通信部は、情報処理装置100などの外部装置との通信を行う。CPUは、補助記憶部や主記憶部に記憶された各種プログラムを実行することにより、画像形成装置400全体の制御と描画、外部装置との通信部を介した通信、操作パネル(不図示)を介したユーザからの操作入力や操作パネルへの情報の表示を制御する。エンジン部404は、画像の印刷を行う公知のプリンタエンジンである。
画像形成装置400のコントローラ402は、情報処理装置100からサーバ200を介して印刷ジョブを受信する。印刷ジョブは、印刷条件や、印刷対象の画像データ等を含む。エンジン部404は、コントローラ402の制御によって、印刷ジョブに含まれる印刷条件に応じて、印刷ジョブに含まれる画像データの画像を記録媒体等に形成する。
サーバ200は、CPU、ROM、及びRAMなどを含んで構成されるコンピュータである。サーバ200は、ネットワーク300に接続された各画像形成装置400を管理して、情報処理装置100から受信した印刷ジョブを画像形成装置400へ送信する。本実施の形態では、サーバ200は、バージョン間互換性情報ファイル201を予め記憶している。
バージョン間互換性情報ファイル201は、ユニバーサルプリンタドライバのバージョン間における、互換性を示す情報である。なお、以下、ユニバーサルプリンタドライバを、UPDと称して説明する場合がある。
バージョン間互換性情報ファイル201は、詳細には、各バージョンのUPDに対して、新たにUPDをインストールするときに、バージョンアップインストール(詳細後述)が必要となるUPDのバージョン情報や、機種情報の追加で対応可能なデバイスドライバのバージョン情報や、バージョンアップインストールが必要であるが追加対象の新機能の内の一部を制限機能として制限すれば機能情報の追加により対応することが可能である事を示す制約情報、等を規定したファイルである。
図2は、バージョン間互換性情報ファイル201の一例を示す模式図である。
バージョン間互換性情報ファイル201は、UPDのバージョン情報(VERSION)毎に、互換性情報を定めたファイルである。各UPDのバージョン情報毎の互換性情報は、旧バージョンのUPDに対する当該UPDの追加機能(ADD FUNCTION)、当該UPDの対応機種(SUPPORT MODEL)、当該バージョンのUPDに対して機種情報の追加で対応可能なUPDのバージョン情報(MODEL ADDITIONABLE)、バージョンアップインストールが必要であるが追加対象の新機能の内の一部を制限機能として制限すれば機能情報の追加により対応することが可能であるか否かを示す制約情報(追加機能に対する制約、とも称する)(FUNCTION LIMITATION VERSION UP)、当該バージョンのUPDに対してバージョンアップインストールが必要となるUPDのバージョン情報(NEED VERSION UP)、を規定している。
図2の例では、バージョン間互換性情報ファイル201は、例えば、情報処理装置100に既にインストールされているUPDのバージョン(Ver)が1.0.0.0であるときに、バージョン1.1.0.0のUPDをインストールする場合、追加機能(ADD FUNCTION)は無い“NONE”が、NX110,NX210の2機種の機種が対応機種(SUPPORT MODEL)として増えることが示されている。
また、図2のバージョン間互換性情報ファイル201には、バージョン1.0.0.0のUPDにおいて、機種追加で対応することの可能なUPDのバージョン情報(MODEL ADDITIONABLE)として、バージョン1.1.0.0から1.2.0.0までの範囲が示されている。また、図2のバージョン間互換性情報ファイル201には、バージョン1.0.0.0のUPDにおいて、バージョンアップインストールが必要であるが追加対象の新機能の内の一部を制限機能として制限すれば機能情報の追加により対応することが可能であるか否かを示す制約情報(FUNCTION LIMITATION VERSION UP)は、対応否、を示す“NONE”が示されている。また、図2のバージョン間互換性情報ファイル201には、バージョン1.0.0.0のUPDに対して、バージョンアップインストールが必要なUPDのバージョン情報(NEED VERSION UP)として、2.0.0.0以降のバージョンが示されている。
このように、バージョン間互換性情報ファイル201は、UPDのバージョン情報毎に、互換性情報を規定したファイルである。なお、バージョン間互換性情報ファイル201は、例えば、新たなUPDがリリースされたとき等に、リリース元の製造会社等によって提供または更新される。また、このバージョン間互換性情報ファイル201は、後述するバージョン間互換性ファイル140及びバージョン間互換性情報ファイル125と同じファイルである(図3参照、詳細後述)。
図1に戻り、情報処理装置100は、CPU、ROM(Read Only Memory)、及びRAM(Random Access Memory)などを含んで構成されるコンピュータである。また、情報処理装置10には、情報を表示する表示部と、ユーザの指示入力を受け付けるキーボードやマウス等の操作入力部と、画像形成装置400などの周辺機器やサーバ200との通信を制御する通信I/F(InterFace)とが有線又は無線により各々接続されている。表示部には、液晶等の公知の表示装置を用いればよい。
図3は、情報処理装置100のソフトウェア構成を示す模式図である。
情報処理装置100は、UPD101、及びインストーラ120を含む。本実施の形態では、この情報処理装置100に、インストール対象のUPDとして、UPDパッケージ110をインストールする場合を説明する。また、情報処理装置100の図示を省略するROM等の記憶部には、バージョン間互換性ファイル140が格納されている。
なお、新たにインストールする対象のUPDパッケージ110は、各周辺機器の製造メーカ側等で新たにUPDパッケージ110がリリースされた場合や、新たな機種の周辺機器がネットワーク300に接続された場合等に、適宜、該製造メーカの管理する管理サーバや、製造メーカから提供された記憶媒体等から取得すればよい。このUPDパッケージ110の取得は、ユーザによる情報処理装置100の操作部の操作指示によって「インストール」が指示された場合に行ってもよいし、該管理サーバや該記憶媒体等から、自動で配信されるようにしてもよい。
バージョン間互換性ファイル140は、サーバ200に記憶されているバージョン間互換性情報ファイル201と同じファイルである。例えば、サーバ200に記憶されているバージョン間互換性情報ファイル201が更新されると、更新後のバージョン間互換性情報ファイル201がバージョン間互換性ファイル140として情報処理装置100に配信されるものとする。
UPD101は、情報処理装置100内に既にインストールされているユニバーサルプリンタドライバである。なお、UPD101は、第1デバイスドライバに相当する。
UPD101は、UI(ユーザ・インターフェース)部102、描画部103、機種情報ファイル104(第1機種情報ファイル)、及びバージョン情報ファイル105を含む。UI部102は、情報処理装置100に設けられている表示部に、各種入力画面や選択画面等を表示するためのモジュール(機能部)である。描画部103は、UPD101で印刷処理時に実行する描画処理を機能させる描画モジュールである。
機種情報ファイル104は、UPD101で対応可能な機種を示す機種情報や、該機種の機能を示す機能情報を格納したファイルである。機種とは、上述したように、ネットワーク300に接続されるまたは接続された画像形成装置400等の周辺機器の機種を示す。また、機能とは、各周辺機器の有する機能を示す。機能は、例えば、画像形成装置400で印刷を行うときの各種印刷条件を実行するための機能を示す。
バージョン情報ファイル105は、UPD101のバージョンを示すバージョン情報を含むファイルである。
UPDパッケージ110は、情報処理装置100に新たにインストールする対象のUPDである。UPDパッケージ110は、第2デバイスドライバに相当する。
UPDパッケージ110は、UI部111、描画部112、機種情報ファイル113(第2機種情報ファイル)、バージョン情報ファイル114、及びインストール情報ファイル115を含む。
UI部111は、UPDパッケージ110のインストールされる装置(ここでは情報処理装置100)の表示部に、各種入力画面や選択画面等を表示するためのモジュールである。描画部112は、UPDパッケージ110で印刷処理時に実行する描画処理を機能させる描画モジュールである。
機種情報ファイル113は、UPDパッケージ110で対応可能な機種を示す機種情報や、該機種の機能を示す機能情報を格納したファイルである。バージョン情報ファイル114は、UPDパッケージ110のバージョンを示すバージョン情報を含むファイルである。
インストール情報ファイル115は、インストール先の情報処理装置100にUPDパッケージ110がインストールされるときに、該情報処理装置100のインストーラ120がインストール時に用いる各種情報を含むファイルである。インストール情報ファイル115には、例えば、UPDパッケージ110の圧縮状態等を示す情報等が格納されている。インストーラ120では、インストール情報ファイル115に基づいてUPDパッケージ110を読取り、後述するインストールを実行する。
インストーラ120は、インストール対象のUPD(本実施の形態ではUPDパッケージ110)の情報処理装置100へのインストールを実行するための各種アプリケーションやファイルを1つにまとめたものである。
インストーラ120は、第1特定部123、第2特定部126、検証部124、実行部131、バージョン間互換性情報ファイル125、及びUI部127を含む。
なお、バージョン間互換性情報ファイル125は、上述したように、バージョン間互換性情報ファイル201と同じである。例えば、サーバ200に記憶されているバージョン間互換性情報ファイル201が更新されると、更新後のバージョン間互換性情報ファイル201がバージョン間互換性ファイル125として情報処理装置100に配信されるものとする。
第1特定部123は、インストール済の第1デバイスドライバとしてのUPD101から、該UPD101のバージョン情報及び該UPD101で対応可能な周辺機器の機種及び機能を特定する。第1特定部123は、UPD101の機種情報ファイル104及びバージョン情報ファイル105を読み取ることで、該UPD101のバージョン情報及び該UPD101で対応可能な周辺機器の機種及び機能を特定する。
第2特定部126は、インストール対象の第2デバイスドライバとしてのUPDパッケージ110から、該UPDパッケージ110のバージョン情報及び該UPDパッケージ110で対応可能な周辺機器の機種及び機能を特定する。第2特定部126は、UPDパッケージ110の機種情報ファイル113及びバージョン情報ファイル114を読み取ることで、該UPDパッケージ110のバージョン情報及び該UPDパッケージ110で対応可能な周辺機器の機種及び機能を特定する。
検証部124は、第1特定部123及び第2特定部126の取得結果、及びバージョン間互換性情報ファイル125に基づいて、UPDパッケージ110のインストールが機種情報の追加で対応可能であるか否かを検証する。
また、検証部124は、差分抽出部128を含む。差分抽出部128は、インストール対象のUPDパッケージ110の機種情報ファイル113によって示される機種及び機能と、インストール済のUPD101の機種情報ファイル104によって示される機種及び機能と、の差分を差分情報として抽出する。
差分情報は、すなわち、インストール対象のUPDパッケージ110の対応可能な機種及び機能の内、インストール済のUPD101に対応可能な機種及び機能以外の、機種及び機能である。換言すれば、差分情報は、インストール対象のUPDパッケージ110によって対応可能となる新しい機種(新機種)及び新しい機能(新機能)である。
本実施の形態では、差分抽出部128は、バージョン間互換性情報ファイル125に基づいて、情報処理装置100に既にインストールされているUPD101のバージョン情報に対応する互換性情報と、インストール対象のUPDパッケージ110のバージョン情報に対応する互換性情報と、に基づいて、差分情報を抽出する。
実行部131は、インストール等の処理を実行する実行モジュールである。実行部131は、検証部124による検証結果等に基づいて、バージョンアップインストール、または機種追加インストールを行う。
バージョンアップインストールとは、インストール対象のUPDパッケージ110を、インストール済のUPD101に置換えることで、UPDパッケージ110の全てを情報処理装置100へインストールすることを示す。このバージョンアップインストールによって、情報処理装置100のUPDのバージョンは、UPDパッケージ110のバージョンにバージョンアップされることとなる。
機種追加インストールとは、詳細は後述するが、UPDパッケージ110の機種情報ファイル113によって示される機種及び機能と、インストール済のUPD101の機種情報ファイル104によって示される機種及び機能と、の差分の内の少なくとも一部を、インストール済のUPD101の機種情報ファイル104へ追加することを示す。この場合、情報処理装置100のUPDのバージョンは、インストール済のUPD101のバージョンのままで、インストール対象のUPDパッケージ110に含まれる新たな機種及び機能の内の少なくとも一部が機種情報ファイル104に追加されることとなる。
実行部131は、詳細には、インストール実行部121、バージョンアップインストール部122、機種情報ファイル作成部129、及び機種情報ファイル更新部130を含む。
インストール実行部121は、情報処理装置100にユニバーサルプリンタドライバがインストールされていない場合に、ユニバーサルプリンタドライバを情報処理装置100にインストールするモジュールである。
バージョンアップインストール部122は、インストール済のUPD101に対して、インストール対象のUPDパッケージ110へのバージョンアップインストールを実行する。機種情報ファイル作成部129は、インストール対象のUPDパッケージ110に含まれる機種情報ファイル113を新たに作成または該機種情報ファイル113に、差分抽出部128によって抽出された差分情報によって示される機能及び機種の内、ユーザによって選択された機能及び機種を追加する。機種情報ファイル更新部130は、インストール済のUPD101の機種情報ファイル104に、差分抽出部128によって抽出された差分情報によって示される機能及び機種の内、ユーザによって選択された機能及び機種を追加することで、該機種情報ファイル104を更新する。
UI部127は、インストーラ120で各種処理を実行するときに、情報処理装置100に設けられている表示部に、各種入力画面を表示するための機能部である。
次に、情報処理装置100で実行するインストール処理の手順を説明する。
図4は、情報処理装置100で実行するインストール処理の手順を示すフローチャートである。情報処理装置100では、情報処理装置100にUPDをインストールするときに、インストーラ120が起動され、図4に示す処理ルーチンを実行する。
例えば、情報処理装置100では、情報処理装置100をネットワーク300に接続したときに、図4に示す処理ルーチンを実行する。なお、インストール対象のUPDであるUPDパッケージ110は、ネットワークに接続された、各機種の周辺機器のメーカの管理するWebサーバ等から取得すればよい。このサーバには、例えば、サーバ200を用いればよい。
まず、第1特定部123が、情報処理装置100にインストール済のプリンタドライバを調査する(ステップS501)。本実施の形態では、例えば、ステップS501の処理において、第1特定部123は、UPD101のバージョン情報ファイル105を読み取り、該UPD101のバージョン情報を取得する。
次に、第2特定部126が、情報処理装置100にインストールする対象のUPDパッケージ110のバージョン情報を特定する(ステップS502)。ステップS502では、第2特定部126は、UPDパッケージ110のバージョン情報ファイル114を読み取ることで、UPDパッケージ110のバージョン情報を特定する。
次に、第1特定部123が、情報処理装置100にユニバーサルプリンタドライバがインストール済みであるか否かを判断する(ステップS503)。ステップS503では、ステップS501で調査した情報処理装置100にインストール済のプリンタドライバが、ユニバーサルプリンタドライバであるか否かを判別することで、ステップS503の判断を行う。例えば、第1特定部123は、情報処理装置100にインストール済のプリンタドライバのバージョン情報が、ユニバーサルプリンタドライバを示すバージョン情報であるか否かを判別することで、ステップS503の判断を行えばよい。
次に、ステップS503で否定判断すると(ステップS503:No)、ステップS504へ進む。ステップS504では、インストール実行部121が、インストール対象のUPDパッケージ110を情報処理装置100へインストールする、通常インストールを行う(ステップS504)。そして、本ルーチンを終了する。
一方、ステップS503で肯定判断すると(ステップS503:Yes)、ステップS505へ進む。
ステップS505では、第1特定部123が、情報処理装置100にインストール済のUPD101のバージョン情報ファイル105を読み取り、該UPD101のバージョン情報を特定する(ステップ505)。
次に、検証部124が、バージョンアップを行うか否かを判断する(ステップS506)。ステップS506では、検証部124は、第2特定部126が取得した、インストール対象のUPDパッケージ110のバージョン情報によって示されるバージョンが、上記ステップS505で特定したインストール済のUPD101のバージョン情報に示されるバージョンより新しいか否かを判別することで、ステップS506の判断を行う。
ステップS506で否定判断すると(ステップS506:No)、本ルーチンを終了する。一方、ステップS506で肯定判断すると(ステップS506:Yes)、ステップS507へ進む。
ステップS507では、検証部124が、インストール対象のUPDパッケージ110と、情報処理装置100にインストール済のUPD101と、の互換性を検証する(ステップS507)。
検証部124は、情報処理装置100に格納されているバージョン間互換性情報ファイル125、バージョン間互換性ファイル140、及びサーバ200に格納されているバージョン間互換性情報ファイル201の何れかを参照することで、互換性を検証する。
バージョン間の互換性の検証とは、具体的には、バージョン間互換性情報ファイル125(またはバージョン間互換性ファイル140、またはバージョン間互換性情報ファイル201)に格納されている、情報処理装置100にインストール済のUPD101のバージョン情報に対応する互換性情報と、インストール対象のUPDパッケージ110のバージョン情報に対応する互換性情報と、を比較検証することを意味する。なお、本実施の形態では、バージョン間互換性情報ファイル125を用いる場合を説明する。
次に、検証部124は、ステップS507の検証結果に基づいて、インストール対象のUPDパッケージ110のインストールが、機種情報の追加で対応可能であるか否かを判断(検証)する(ステップS508)。
例えば、バージョン間互換性情報ファイル125が、図2に示す内容であったとする。そして、情報処理装置100にインストール済のUPD101のバージョン情報(Ver)が、1.0.0.0であったとする。また、インストール対象のUPDパッケージ110のバージョン情報(Ver)が、1.1.0.0であったとする。
この場合、図2に示されるように、バージョン間互換性情報ファイル125における、バージョン1.0.0.0のUPDに対して機種情報の追加で対応可能なUPDのバージョン情報(MODEL ADDITIONABLE)は、1.1.0.0から1.2.0.0までの範囲である。このため、この場合、検証部124は、機種情報の追加で対応可能であると判断する(ステップS508:Yes)。
上記ステップS508で肯定判断すると(ステップS508:Yes)、ステップS509へ進む。ステップS509では、差分抽出部128が、追加機種を選定する(ステップS509)。
ステップS509の処理において、差分抽出部128は、インストール対象のUPDパッケージ110の対応する周辺機器の機種及び機能と、インストール済のUPD101の対応する周辺機器の機種及び機能と、の差分を差分情報として抽出することで、追加機種を選定する。
本実施の形態では、まず、差分抽出部128は、例えば、バージョン間互換性情報ファイル125に示される、情報処理装置100に既にインストールされているUPD101のバージョン情報(Ver)1.0.0.0に対応する、当該バージョンのUPDの対応機種(SUPPORT MODEL)として、NX100及びNX200を読み取る。また、差分抽出部128は、バージョン間互換性情報ファイル125を検証し、インストール対象のUPDパッケージ110のバージョン情報(Ver)1.1.0.0に対応する、当該バージョンのUPDの対応機種(SUPPORT MODEL)として、NX100、NX200、NX110、及びNX210を読み取る。
そして、差分抽出部128は、読み取ったこれらの各バージョンに対応する機種及び機能を比較し、これらの差分を示す差分情報を抽出する。そして、差分抽出部128は、抽出した差分情報に含まれる機種を選定することで、追加機種を選定する。
この場合、差分抽出部128は、NX110、及びNX210を追加機種として選定する。
次に、UI部127が、インストール方式を選択するためのインストール方式選択画面(選択UI)を情報処理装置100の表示部に表示する(ステップS510)。
ステップS510で表示するインストール方式選択画面は、「バージョンアップインストール」か、「機種追加」か、をユーザに選択させるための画面である。「バージョンアップインストール」とは、新たにインストールする対象のUPDをインストールすることを示す。「機種追加」とは、バージョンアップインストールではなく機種情報の追加で対応することを示す。
図5は、インストール方式選択画面の一例を示す模式図である。図5に示すように、UI部127は、ステップS510の処理によって、インストール方式選択画面を情報処理装置100の表示部に表示する。図5に示す例では、該インストール方式選択画面は、インストール済のUPD101のバージョンと、インストール対象のUPDパッケージ110のバージョンと、を表示すると共に、「バージョンアップインストール」または「機種追加」を選択するためのチェックボックスと、を含む。また、「機種追加」の欄には、上記ステップS509で選定した機種の一覧と、各機種を選択するためのチェックボックスと、が表示される。例えば、NX110、及びNX210が追加可能な機種として選択可能に表示される。
ユーザは、該インストール方式選択画面を参照しながら、図示を省略する操作部を操作することで、「バージョンアップインストール」または「機種追加」を選択する。また、「機種追加」を選択した場合には、追加可能な機種として表示された一覧の機種の内の少なくとも1つを選択する。そして、ユーザの操作部の操作指示によって、インストール方式選択画面における「OK」ボタンが選択されることで、該インストール方式選択画面を介してユーザによって指示された選択情報がインストーラ120に入力される。
この選択情報は、「バージョンアップインストール」、または「機種追加」及び選択された「機種」を含む。
次に、実行部131が、ユーザによって「機種追加」が指示されたか否かを判断する(ステップS511)。実行部131では、ステップS510の表示処理によって、インストーラ120で受け付けた選択情報が「機種追加」を示すか否かを判別することで、ステップS511の判断を行う。
ステップS511で肯定判断すると(ステップS511:Yes)、ステップS512へ進む。
ステップS512では、機種情報ファイル更新部130が、機種追加インストールを実行する(ステップS512)。そして、本ルーチンを終了する。
ステップS512の処理において、機種情報ファイル更新部130は、上記ステップS510の処理によってインストーラ120で受け付けた選択情報に含まれる、ユーザによって選択された「機種」を示す機種情報を、情報処理装置100にインストール済のUPD101の機種情報ファイル104に追加する。これによって、機種情報ファイル更新部130は、機種追加インストールを実行する。
すなわち、ステップS512の処理が実行されることによって、UPD101のバージョン情報ファイル105によって示されるバージョン情報は、インストール対象のUPDパッケージ110のバージョンにバージョンアップされない状態で、機種情報ファイル104が更新される。具体的には、機種情報ファイル104には、UPD101では未対応で且つUPDパッケージ110で対応可能な機種の機種情報が追加されることとなる。
このため、ステップS512の処理によって、追加された新たな機種が、情報処理装置100のUPD101で対応可能な機種として選択可能となる。
図6は、ステップS512の機種追加インストールが行われる前の状態において、UI部102が情報処理装置100の表示部に表示する、選択可能な機種リストを示す画面である。また、図7は、ステップS512の機種追加インストールが行われた後の状態において、UI部102が情報処理装置100の表示部に表示する、選択可能な機種リストを示す画面である。
ステップS512の機種追加インストール後では、UPD101のバージョンは、旧バージョンである1.0.0.0のままであるが、図6及び図7に示すように、選択可能な機種が、NX100とNX200の2機種(図6参照)から、NX100、NX200、NX110、及びNX210の4機種(図7参照)となる。
図4に戻り、一方、上記ステップS511で否定判断されると(ステップS511:No)、すなわち、ユーザによって「バージョンアップインストール」が指示された場合には、ステップS513へ進む。
ステップS513では、バージョンアップインストール部122が、バージョンアップインストールを実行する(ステップS513)。詳細には、バージョンアップインストール部122は、インストール済のUPD101を、インストール対象のUPDパッケージ110に置換えることで、UPDパッケージ110の全てを情報処理装置100へインストールする。そして、本ルーチンを終了する。
ステップS513の処理が実行されることによって、情報処理装置100にインストール済のUPDは、UPDパッケージ110となる。
一方、上記ステップS508の処理において否定判断すると(ステップS508:No)、ステップS515へ進む。
例えば、バージョン間互換性情報ファイル125が、図2に示す内容であったとする。そして、情報処理装置100にインストール済のUPD101のバージョン情報(Ver)が、1.2.0.0であったとする。また、インストール対象のUPDパッケージ110のバージョンが、2.0.0.0であったとする。
この場合、図2に示されるように、バージョン間互換性情報ファイル125における、バージョン1.2.0.0のUPDに対して機種情報の追加で対応することの可能なUPDのバージョンの範囲(MODEL ADDITIONABLE)は、無(NONE)である。このため、この場合、検証部124は、機種情報の追加で対応することは不可と判別し、ステップS508で否定判断する。そして、ステップS515へ進む。
ステップS515では、検証部124が、機能選択バージョンアップが不可であるか否かを判断する(ステップS515)。
ステップS515では、検証部124は、バージョン間互換性情報ファイル125における、インストール済のUPD101のバージョン情報に対応する制約情報(FUNCTION LIMITATION VERSION UP)が、不可を示す“NONE”であるか否か判別することで、ステップS515の判断を行う。
例えば、バージョン1.2.0.0のUPD101がインストール済であるとする。この場合、図2に示すバージョン間互換性情報ファイル125における、バージョン情報1.2.0.0に対応する制約機能(FUNCTION LIMITATION VERSION UP)は、不可(NONE)である。このため、この場合、検証部124は、ステップS515で肯定判断する(ステップS515:Yes)。
ステップS515で肯定判断した場合、UI部127は、インストール方式選択画面として、「バージョンアップインストール」のみを選択可能なインストール方式選択画面を、情報処理装置100の図示を省略する表示部に表示する。
図8は、インストール方式選択画面の一例を示す模式図である。図8に示すように、UI部127は、上記ステップS515で肯定判断された場合には、図8に示すインストール方式選択画面を情報処理装置100の表示部に表示可能となる。図8に示すように、該インストール方式選択画面は、インストール済のUPD101のバージョンと、インストール対象のUPDパッケージ110のバージョンと、を表示すると共に、「バージョンアップインストール」のみを選択するためのチェックボックスと、を含む。
そして、ユーザが、該インストール方式選択画面を参照しながら、図示を省略する操作部を操作することで、「バージョンアップインストール」を選択すると共に、該インストール方式選択画面における「OK」ボタンを選択することで、該インストール方式選択画面を介してユーザによって指示された選択情報がインストーラ120に入力される。この選択情報は、「バージョンアップインストール」を示す情報を含むものとなる。図4に戻り、そして、上記ステップS513へ進む。そして、上述したように、バージョンアップインストールが実行される。
一方、上記ステップS515で否定判断(ステップS515:No)されると、ステップS516へ進む。ステップS515で否定判断される場合とは、バージョンアップインストールが必要であるが追加対象の新機能の内の一部を制限機能として制限すれば機能情報の追加により対応することが可能である場合である。具体的には、図2に示すバージョン間互換性情報ファイル125によって示される、インストール済のUPD101のバージョン情報に対応する制約情報(FUNCTION LIMITATION VERSION UP)に、不可を示す“NONE”ではなく、何らかの制限機能を示す情報が設定されている場合である。
図9は、インストール済みのUPD101のバージョン(Ver)が2.1.0.0であり、インストール対象のUPDパッケージ110のバージョン(Ver)が3.0.0.0である場合に、UI部127が表示部に表示するインストール方式選択画面の一例を示す図である。
バージョン間互換性情報ファイル125の一例である図2に示すように、UPD101のバージョン(Ver)2.1.0.0の、該バージョンのUPDに対して機種情報の追加で対応可能なUPDのバージョン情報(MODEL ADDITIONABLE)は、無しを示す“NONE”である。このため、この場合、既にインストールされているUPD101のバージョン情報がバージョン2.1.0.0である場合には、該2.1.0.0より新しい(上位の)バージョンのUPDパッケージ110をインストール対象のUPDとした場合、機種追加インストールは不可である。
また、バージョン間互換性情報ファイル125の一例である図2に示すように、UPD101のバージョン(Ver)2.1.0.0では、当該バージョンのUPDに対してバージョンアップインストールが必要となるUPDのバージョン(NEED VERSION UP)は“3.0.0.0 LATER”となっている。これは、既にインストールされているUPD101のバージョン情報がバージョン2.1.0.0であり、インストール対象のUPDパッケージ110のバージョンがVer3.0.0.0以降である場合には、バージョンアップインストールが必要であることを示す。
また、図2に示す例では、バージョン(Ver)2.1.0.0がインストール済のUPD101である場合の制約情報(FUNCTION LIMITATION VERSION UP)は、“NONE”ではなく、“3.0.0.0[BANNER PAGE]”となっている。これは、バージョン3.0.0.0以降のUPDパッケージ110をインストールする場合には、“BANNER PAGE”機能を制限機能として制限すれば、それ以外の機能情報の追加により対応することができることを意味する。
このため、このような場合には、上記ステップS508で否定判断され(ステップS508:No)、ステップS515へ進み、さらに、ステップS515で否定判断され(ステップS515:No)、ステップS516へ進むこととなる。
ステップS516では、差分抽出部128が機能差分抽出を行う(ステップS516)。ステップS516の処理において、差分抽出部128は、インストール済のUPD101で対応可能な機能と、インストール対象のUPDパッケージ110で対応可能な機能と、の差分から、インストール済のUPD101の制約情報によって示される機能(追加機能に対する制約)を除外した機能を、差分情報として抽出する。
例えば、インストール済みのUPD101のバージョン(Ver)が2.1.0.0であり、インストール対象のUPDパッケージ110のバージョン(Ver)が3.0.0.0であるとする。この場合、図2に示す、バージョン間互換性情報ファイル125における、バージョン3.0.0.0に対応する追加機能(ADD FUNCTION)は、“SECURTY PRINT,TRUSTY PRINT,BANNER PAGE”の3機能である。また、バージョン3.0.0.0のUPDの対応機種(SUPPORT MODEL)は、“NX100,NX200,NX110,NX210,NX300,NX500,NX510,NX600”である。
一方、バージョン(Ver)2.1.0.0の対応機種(SUPPORT MODEL)は、“NX100,NX200,NX110,NX210,NX300,NX500,NX510”である。このため、この場合、差分抽出部128は、インストール済のバージョンのUPD101の対応機種と、インストール対象のUPDの対応機種との差分である機種“NX510”の新機能である“SECURTY PRINT,TRUSTY PRINT,BANNER PAGE”の3機能を抽出する。そして、さらに、差分抽出部128は、抽出した3機能から、インストール済のバージョン2.1.0.0のUPD101の制約情報によって示される機能(追加機能に対する制約)である、“BANNER PAGE”を除外した機能である、“SECURITY PRINT,TRUSTY PRINT”の機能を、インストール可能な機能、すなわち、差分情報として抽出する。
このため、この場合、差分抽出部128は、Ver2.1.0.0からVer3.0.0.0のバージョンアップに関しては、“NX600”と言う機種を、“SECURTY PRINT,TRUSTY PRINT”の2機能に関して機種追加インストールが可能であるとして、差分情報を抽出する。
次に、UI部127が、インストール方式と、インストールする機種と、インストールする機能と、を選択するためのインストール方式選択画面を表示部に表示する(ステップS517)。
例えば、インストール済みのUPD101のバージョン(Ver)が2.1.0.0であり、インストール対象のUPDパッケージ110のバージョン(Ver)が3.0.0.0であるとする。そして、上記ステップS516の処理によって、差分抽出部128が、インストール済のバージョンのUPD101の対応機種と、インストール対象のUPDの対応機種と、の差分から制約機能を除外し、機種“NX510”と、機能“SECURITY PRINT,TRUSTY PRINT”とを、差分情報として抽出したとする。
この場合、ステップS517の処理において、UI部127は、図9に示すインストール方式選択画面を表示する。
図9に示す例では、該インストール方式選択画面は、インストール済のUPD101のバージョン(図9では、バージョン2.1.0.0)と、インストール対象のUPDパッケージ110のバージョン(図9では、バージョン3.0.0.0)と、を表示すると共に、「バージョンアップインストール」または「機種追加」を選択するためのチェックボックスと、を含む。また、「機種追加」の欄には、上記ステップS516で抽出した差分情報によって特定される機種(図9では、NX600)と、ステップS516で抽出した差分情報によって示される機能(図9では、SECURITY PRINT,TRUSTY PRINT)と、各機種及び機能を選択するためのチェックボックスと、が表示される。
すなわち、上述したように、例えば、Ver2.1.0.0からVer3.0.0.0のバージョンアップに関しては、“NX600”と言う機種を、“SECURTY PRINT,TRUSTY PRINT”の2機能に関して機種追加インストールが可能である。このため、この場合、UI部127は、図9に示すようにインストール方式選択画面に、インストール方式以外に、機種と機能を選択できるチェックボックスを配置して表示する。
ユーザは、該インストール方式選択画面を参照しながら、図示を省略する操作部を操作することで、「バージョンアップインストール」または「機種追加」を選択する。また、「機種追加」を選択した場合には、追加可能な機種として表示された一覧の機種の内の少なくとも1つと、追加可能な機能として表示された機能の内の少なくとも1つと、を選択する。そして、ユーザの操作部の操作指示によって、インストール方式選択画面における「OK」ボタンが選択されることで、該インストール方式選択画面を介してユーザによって指示された選択情報がインストーラ120に入力される。
この選択情報は、「バージョンアップインストール」または「機種追加」を含み、「機種追加」を含む場合には、「機種」及び「機能」を含む。なお、この選択情報が「バージョンアップインストール」を含む場合には、ステップS517の処理の後に、上記ステップS513へ進めばよい。
そして、ユーザによって選択された「機種追加」、「機種」、及び「機能」を含む選択情報を受け付けたインストーラ120では、機種情報ファイル作成部129が、インストール対象のUPDパッケージ110に含まれる機種情報ファイル113を修正する(ステップS518)。詳細には、機種情報ファイル作成部129は、インストール対象のUPDパッケージ110に含まれる機種情報ファイル113に、ステップS516の処理によって抽出された差分情報によって示される機能及び機種の内、ステップS517によってユーザによって選択された機能及び機種を追加する。なお、機種情報ファイル作成部129は、該内容の機種情報ファイル113を新たに作成してもよい。
次に、機種情報ファイル更新部130が、機種追加インストールを実行する(ステップS519)。そして、本ルーチンを終了する。
ステップS519の処理において、機種情報ファイル更新部130は、インストール済のUPD101の機種情報ファイル104に、ステップS516の処理によって抽出された差分情報によって示される機能及び機種の内、ステップS517によってユーザによって選択された機能及び機種を追加する。
すなわち、ステップS519の処理が実行されることによって、UPD101のバージョン情報ファイル105によって示されるバージョン情報は、インストール対象のUPDパッケージ110のバージョンにバージョンアップされない状態で、機種情報ファイル104が更新される。具体的には、機種情報ファイル104には、UPD101では未対応で且つUPDパッケージ110で対応可能な機種の機種情報と、UPD101では未対応で且つUPDパッケージ110で対応可能な機種の内の制約情報以外で且つユーザによって選択された機能の機能情報と、が追加されることとなる。
このため、ステップS519の処理によって追加された新たな機種及び機能が、情報処理装置100のUPD101で対応可能な機種及び機能として選択可能となる。
そして、本ルーチンを終了する。
ここで、インストール対象のバージョン(Ver)3.0.0.0のUPDパッケージ110の保持している機種情報ファイル113の一例を、図10に示した。図10は、機種情報ファイルの一例を示す模式図である。
図10に示す例では、バージョン(Ver)3.0.0.0のUPDパッケージ110の保持している機種情報ファイル113には、機種“NX600”の機能を示す項目として、<VALIDACCESS>の項があり、この中にはTrusty Printの項目の<TRAUSTYPRINT>、Security Printの項目の<SECURITYPRINT>、Banner Pageの項目の<BANNERPAGE>がある。
ここで、図2に示すバージョン間互換性情報ファイル125には、機能“Banner Page”は、バージョン(Ver)2.1.0.0のUPDでは制約情報として示され、使用不可であることが示されている。このため、この場合、機種情報ファイル作成部129は、バージョン(Ver)3.0.0.0のUPDパッケージ110の保持している機種情報ファイル113に含まれる、<BANNERPAGE>の項を削除あるいはコメントアウト等で無効化する。これによって、機種情報ファイル作成部129は、機種情報ファイル113を修正する。
図11は、ステップS519で機種情報ファイル更新部130が機種追加インストールを行う前において、UI部102が表示する印刷設定画面における機能表示画面(Valid Access)の一例である。図11に示すように、ステップS519で機種情報ファイル更新部130が機種追加インストールを行う前の状態では、該機能表示画面には、例えば、User Codeの選択肢しか表示されない。
図12は、ステップS519の機種情報ファイル更新部130が機種追加インストールを行った後に、UI部102が表示する印刷設定画面における機能表示画面(Valid Access)の一例である。なお、図12は、情報処理装置100にインストール済のUPD101のバージョンがVer2.1.0.0であり、インストール対象のUPDパッケージ110のバージョンがVer3.0.0.0である場合に、機種“NX600”の機能“Security Print”と“Trusty Print”を、機種情報ファイル更新部130が機種追加インストールした場合に、UI部102が表示する機能表示画面の一例である。
図12に示すように、機種情報ファイル更新部130が機種追加インストールを行った後の状態では、該機能表示画面には、選択可能な機能として、“Security Print”と“Trusty Print”の選択項目が表示される。一方、該機能表示画面には、制約情報として示されていた“Banner Page”の選択肢は表示されない。
以上説明したように、本実施の形態の情報処理装置100では、情報処理装置100にインストール済のUPD101、インストール対象のUPDパッケージ110、及びバージョン間互換性情報ファイル125(またはバージョン間互換性ファイル140、またはバージョン間互換性情報ファイル125)に基づいて、インストール対象のUPDパッケージ110のインストールが機種情報の追加で対応可能であると検証された場合には、バージョンアップインストールは行わず、インストール済のUPD101の機種情報ファイル104に、追加対象の機種及び機能を追加することで対応する。
このため、バージョンアップインストールを行うことなく、対応可能な機種を追加することができる。
従って、本実施の形態の情報処理装置100では、機種の異なる複数種類の周辺装置を制御するためのユニバーサルデバイスドライバについて、容易に新たな機種を対応させることができる。
また、バージョンアップインストールが必要であるが、追加対象の新機能の内の一部を制限機能として制限すれば機能情報の追加により対応することが可能である場合には、制限機能以外で、且つ追加可能な機能及び機種をンストール済のUPD101の機種情報ファイル104に追加する。
このため、機種の異なる複数種類の周辺装置を制御するためのユニバーサルデバイスドライバについて、更に容易に、新たな機種を対応させることができる。
また、追加可能な機種及び機能の内、ユーザによって選択された機種及び機能を、機種情報ファイル104に追加することができるので、ユーザ側で容易にカスタマイズすることができる。
なお、本実施の形態の情報処理装置100で実行されるインストール処理を実行するためのプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記録されて提供される。
また、本実施の形態の情報処理装置100で実行されるインストール処理を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態の情報処理装置100で実行されるインストール処理を実行するためのプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施の形態の情報処理装置100で実行されるインストール処理を実行するためのプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
なお、本実施の形態の情報処理装置100で実行されるインストール処理を実行するためのプログラムは、上述したインストール処理を実行するための機能部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から当該プログラムを読み出して実行することにより上記各機能部が主記憶装置上にロードされ、主記憶装置上に生成されるようになっている。
なお、上記には、本発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。