(57)【特許請求の範囲】
【請求項１】
構造の異なる複数のデバイスドライバがインストール可能なオペレーティングシステムを備える情報処理装置であって、
前記情報処理装置にインストール済みのデバイスドライバに対応付けられたデバイスを識別する識別子と、更新対象のデバイスドライバと対応付けるべきデバイスを識別するための識別子とを比較する比較手段と、
前記比較手段の比較により前記２つの識別子が異なると判断された場合に、前記更新対象のデバイスドライバを前記識別子で識別されるデバイスに対応付けてインストールするインストール手段と、
前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なる場合に、前記インストール済みのデバイスドライバを前記更新対象のデバイスドライバで更新するか否かをユーザに問い合わせるメッセージを表示する表示手段と、
前記表示されたメッセージに対してユーザの指示が更新を選択した場合に、前記インストール済みのデバイスドライバを、前記更新対象のデバイスドライバであり、前記異なるアーキテクチャーのデバイスドライバで更新する更新手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記インストール済みのデバイスドライバのモデルを示すモデル情報の一部と、前記更新対象のデバイスドライバのモデル情報の対応する一部とを比較する第２の比較手段と、
前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記第２の比較手段の比較により前記２つのモデル情報の一部が同一と判断された場合に、前記インストール済みのデバイスドライバの世代を表す世代情報の一部と、前記更新対象のデバイスドライバの世代情報の対応する一部とを比較する第３の比較手段と、
前記第３の比較手段の比較により、前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なるか否かを判断する判断手段と、をさらに備え、
前記インストール手段は、前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記第２の比較手段の比較により前記２つのモデル情報の一部が異なると判断された場合に、前記更新対象のデバイスドライバをインストールし、
前記更新手段は、前記判断手段により前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが同一と判断された場合に、前記インストール済みのデバイスドライバを前記更新対象のデバイスドライバで更新し、
前記表示手段は、前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なると判断された場合は、前記メッセージを表示することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記更新手段は、前記指示が更新を選択しない場合に、前記デバイスドライバの更新を行なわないことを特徴とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記表示手段は、前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記第２の比較手段の比較により前記２つのモデル情報の一部が異なると判断された場合に、前記更新対象のデバイスドライバをインストールする際に、前記インストール済みのデバイスドライバを削除するかどうかをユーザに問い合わせる第２のメッセージを表示することを特徴とする、請求項２に記載の情報処理装置。
【請求項５】
前記インストール手段は、前記第２のメッセージに対するユーザの指示が削除を選択する場合、前記インストール済みのデバイスドライバを削除して前記更新対象のデバイスドライバをインストールすることを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
前記表示手段は、前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記第２の比較手段の比較により前記２つのモデル情報の一部が同一と判断された場合、プリントキューごとにデバイスドライバの更新処理を行なうか否かをユーザに問い合わせる第３のメッセージを表示することを特徴とする、請求項２、４及び５のいずれか１項に記載の情報処理装置。
【請求項７】
前記表示手段は、１つのデバイスドライバに対する全てのプリントキューをまとめて更新するか否かをユーザに問い合わせる第４のメッセージを表示することを特徴とする、請求項６に記載の情報処理装置。
【請求項８】
前記表示手段は、それぞれのデバイスドライバについて、自動で更新するか否かをユーザに問い合わせる第５のメッセージを表示することを特徴とする、請求項７に記載の情報処理装置。
【請求項９】
前記オペレーティングシステムは第１のアーキテクチャーのデバイスドライバと動作させるためのドライブアーキテクチャーと前記第１のアーキテクチャーと異なる第２のアーキテクチャーのデバイスドライバを動作させるためのドライブアーキテクチャーとを有し、
前記表示手段は、前記比較手段の比較により前記２つの識別子が同一と判断され、かつ前記判断手段により前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なると判断された場合であって、前記ドライブアーキテクチャーが変更される場合に、前記インストール済みのデバイスドライバを前記更新対象のデバイスドライバに置き換えるか否かを確認するメッセージを表示することを特徴とする、請求項７に記載の情報処理装置。
【請求項１０】
前記更新手段は、外部のサーバまたは画像形成装置から提供されるソフトウェアに基づいて、前記デバイスドライバを更新することを特徴とする、請求項１〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記デバイスドライバはプリンタドライバであることを特徴とする、請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
構造の異なる複数のデバイスドライバがインストール可能なオペレーティングシステムを備える情報処理装置における情報処理方法であって、
前記情報処理装置にインストール済みのデバイスドライバに対応付けられたデバイスを識別する識別子と、更新対象のデバイスドライバと対応付けるべきデバイスを識別するための識別子とを比較する比較ステップと、
前記比較ステップにおいて前記２つの識別子が異なると判断された場合に、前記更新対象のデバイスドライバを前記識別子で識別されるデバイスに対応付けてインストールするステップと、
前記比較ステップにおいて前記２つの識別子が同一と判断され、かつ前記インストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なる場合に、前記インストール済みのデバイスドライバを前記更新対象のデバイスドライバで更新するか否かをユーザに問い合わせるメッセージを表示する表示ステップと、
前記表示されたメッセージに対してユーザの指示が更新を選択した場合に、前記インストール済みのデバイスドライバを、前記更新対象のデバイスドライバであり、前記異なるアーキテクチャーのデバイスドライバで更新する更新ステップと、を含むことを特徴とする情報処理方法。
【請求項１３】
コンピュータを、請求項１〜１１のいずれか１項に記載の情報処理装置に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホストコンピュータにインストールされ、ホストコンピュータの動作を制御するオペレーティングシステムに関するものであって、さらにホストコンピュータにインストールされる各種のアプリケーションソフトウェアの更新処理に関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータなどにインストールされ、ホストコンピュータの動作を制御するオペレーティングシステム（ＯＳ）は常に最新版の状態に保つように配慮されている。この場合、ネットワーク上のＯＳの最新版を提供するサーバ（ＯＳサーバ）にアクセスし、最新版のＯＳが提供されている場合には、更新処理を実行する。また、ＯＳサーバにはホストコンピュータにインストールされる各種のアプリケーションなどのソフトウェアなども含まれることがある。更に、更新されるソフトウェアの中には、従来のソフトウェアの構成やアーキテクチャーなどのベースの部分（以降、「世代」）が大きく変更される場合がある。
【０００３】
例えば、ホストコンピュータと印刷装置とがＵＳＢなどのケーブルで接続された場合に自動でプリンタドライバがインストールされる仕組みが提供されている。さらにそのプリンタドライバが大きく異なる（アーキテクチャーなどのベースが）複数分提供されている。このような場合において、どちらのプリンタドライバをインストールするかをユーザに選択可能な内容が下記の文献１で提供されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４-１６０３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、ソフトウェアなどの更新情報から自動で更新処理を実行するシステムが提供されているが、ユーザは必ずしもすべてのソフトウェアが自動で更新されることを望まない、という課題がある。その理由として、ユーザが使い慣れていること、あるいは企業で厳格管理されていて導入（インストール）時に導入試験を実施していることなどが挙げられる。この課題については、更新時にユーザに更新の可否を確認するメッセージを表示する等の解決策が提示されているが、ある種のソフトウェアでは、バージョンが異なるもの同士やアーキテクチャーなどの違うもの同士などを共存させてインストール可能なものもある。このようなケースでは古いソフトウェアを新しいものに更新する方法と、古いものも新しいものも複数共存可能なインストール方法とが用意されており、利用用途に応じて使い分けることも可能である。そのため、単なる下位バージョンから上位バージョンへの更新処理では不十分である、という課題がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、構造の異なる複数のデバイスドライバがインストール可能なオペレーティングシステムを備え、さらに以下の手段を有する情報処理装置を提供する。即ち、情報処理装置にインストール済みのデバイスドライバに対応付けられたデバイスを識別する識別子と、更新対象のデバイスドライバと対応付けるべきデバイスを識別するための識別子とを比較する比較手段と、比較手段の比較により２つの識別子が異なると判断された場合に、更新対象のデバイスドライバを識別子で識別されるデバイスに対応付けてインストールするインストール手段と、比較手段の比較により２つの識別子が同一と判断され、かつインストール済みのデバイスドライバのアーキテクチャーと前記更新対象のデバイスドライバのアーキテクチャーとが異なる場合に、インストール済みのデバイスドライバを更新対象のデバイスドライバで更新するか否かをユーザに問い合わせるメッセージを表示する表示手段と、表示されたメッセージに対してユーザの指示が更新を選択した場合に、インストール済みのデバイスドライバを、更新対象のデバイスドライバであり、異なるアーキテクチャーのデバイスドライバで更新する更新手段と、を備える。
【発明の効果】
【０００７】
本発明によって、柔軟なドライバソフトウェアのインストールが可能となり、ユーザの使い勝手が向上する。
【図面の簡単な説明】
【０００８】
【図１Ａ】システムの全体図
【図１Ｂ】ホストコンピュータのブロック図
【図１Ｃ】画像形成装置のブロック図
【図１Ｄ】ＯＳサーバのブロック図
【図２】プリンタドライバのモジュール構成図
【図３】プリンタドライバのインストール方法フローチャート
【図４】プリントキュー登録方法フローチャート
【図５】プリントキュー登録ユーザＩ／Ｆ
【図６】プリントキュー追加ユーザＩ／Ｆ
【図７】プリンタドライバシステム構成図
【図８】登録キューファイル
【図９】プリンタ仕様記述ファイル
【図１０】ソフトウェア更新処理詳細フローチャート
【図１１】ソフトウェア更新処理フローチャート
【図１２Ａ】更新対象ソフトウェアの一覧例
【図１２Ｂ】ソフトウェア更新処理詳細フローチャート
【図１３】プリンタドライバ更新処理フローチャート
【図１４Ａ】ＯＳとソフトウェア世代の関係の一例
【図１４Ｂ】プリンタドライバ表示例
【図１４Ｃ】プリンタドライバ登録例
【図１５】本発明の処理を表すフローチャート
【図１６】本発明の処理を表すフローチャート
【図１７】本発明のプリンタドライバ更新時の表示例
【図１８Ａ】本発明のインストーラの表示例
【図１８Ｂ】本発明のプリンタドライバの登録例
【０００９】
以下、図面を参照して、本発明の実施の形態を説明する。なお、以下の記述中、オペレーティングシステムを「ＯＳ」と略記し、フローチャートの各ステップを「Ｓ」で表すこととする。
【発明を実施するための形態】
【００１０】
[システム構成]
図１Ａは本発明の実施形態に係るシステムの全体図である。本システムは、情報処理装置１０１（以降、「ホストコンピュータ」）、オペレーティングシステムサーバ１０２（以降、「ＯＳサーバ」）、及び画像形成装置１０３で構成され、それぞれはネットワーク１００に接続されているものとする。また、ホストコンピュータ１０１上のＯＳのインストールを、ＣＤ−ＲＯＭなどの外部メディアやＯＳサーバ１０２から供給され、ＲＡＭにロードされたプログラムをＣＰＵで実施することによって実現するものとする。ＯＳサーバ１０２はネットワーク上のＯＳの最新版を提供するサーバであり、画像形成装置１０３は単体の印刷装置（プリンタ）、あるいはスキャナ機能やＦＡＸ機能も有する複合機（ＭＦＰ）である。
【００１１】
図１Ｂは、ホストコンピュータ１０１の装置内部構成を示すブロック図である。ホストコンピュータ１０１において、ＣＰＵ１１１は、ＲＡＭ１１２に記憶されているプログラムに従って、システムバス１１４に接続される各デバイスを総括的に制御する。このＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリア等としても機能する。ＲＯＭ１１３は、システムの基本的な各種プログラム及びデータを格納する。表示操作部Ｉ／Ｆ１１５は、表示操作部１１６への情報の表示制御を行う。また、表示操作部１１６は表示機能を持つと同時に、タッチパネルによりユーザからの入力を制御する。ネットワークＩ／Ｆ１１７はネットワークモジュール１１８の制御を行い、ネットワーク通信を実現する。外部メモリＩ／Ｆ１１９は、外部メモリ１２１（例えばフラッシュメモリー、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ等）とのアクセスを制御する。外部メモリ１２１はＯＳ１２２および各種アプリケーション１２６を記憶し、ホストコンピュータ１０１が保存または、読み取り可能な記憶媒体として機能する。
【００１２】
ＯＳ１２２は、アプリケーションを動作させるためのアプリケーションフレームワーク１２３、ＯＳ１２２が提供する各種システムプログラム１２４、及び各種ユーティリティ関数などを格納したライブラリ１２５を備える。アプリケーション１２６は、アプリケーション実行コードを備え、さらに、ユーザＩ／Ｆ制御部１２７と、ＯＳ１２２のシステムプログラム１２４により設定された値を取得するシステム設定取得部１２８を有する。また、アプリケーション１２６は、ユーザがアプリケーション１２６で設定したユーザ設定情報保存領域１２９と、システムプログラム１２４による各種設定を格納するユーザ設定情報システム保存領域１３０を有する。
【００１３】
図１Ｃは画像形成装置１０３の装置構成を示すブロック図である。ＣＰＵ１３２は画像形成装置１０３の全体の動作を制御する。ＲＡＭ１３３はＣＰＵ１３２の主メモリ、ワークエリア等として機能するとともに、画像情報展開領域、環境データ格納領域としても用いられる。ＲＡＭ１３３は、ＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭにより、メモリ容量を拡張することができる。ＲＯＭ１３４は、各種フォントやＣＰＵ１３２により実行される制御プログラム等、および各種データを記憶する。
【００１４】
ネットワークＩ／Ｆ１３５はホストコンピュータ１０１や他のネットワークに接続されたクライアント装置との間でデータの送受信を行なう。プリンタＩ／Ｆ１３８はプリンタエンジンであるプリンタ部１３９とのインターフェースを制御する。通信モジュールＩ／Ｆ１４１はネットワーク上の機器との通信を行うための通信モジュール１４２の制御を行う。外部メモリＩ／Ｆ１４０は外部メモリ１４３（例えばフラッシュメモリー、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ等）とのアクセスを制御する。外部メモリ１４３は、画像形成を行うための印刷制御プログラム１４４、操作パネルの画面表示制御を行うための操作パネル制御プログラム１４５、通信の制御を行うための通信制御プログラム１４６を備える。操作部Ｉ／Ｆ１３６は画像形成装置１０３の印刷処理などを設定する操作部１３７とのインターフェースを制御する。操作部１３７にはユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器、液晶ディスプレイ等が配置される。また、不図示のＮＶＲＡＭを有し、操作パネルからの印刷設定情報を記憶するようにしてもよい。
【００１５】
図１ＤはＯＳサーバ１０２の装置内部構成を示すブロック図である。ＯＳサーバ１０２において、ＣＰＵ１５１は、ＲＡＭ１５２に記憶されているプログラムに従って、システムバス１５４に接続される各デバイスを総括的に制御する。このＲＡＭ１５２はＣＰＵ１５１の主メモリ、ワークエリア等としても機能する。ＲＯＭ１５３はシステムの基本的な各種プログラム及びデータを格納する。表示操作部Ｉ／Ｆ１５５は表示操作部１５６への情報の表示制御を行う。また、表示操作部１５６は表示機能を持つと同時に、タッチパネル構造によりユーザからの入力を制御する。ネットワークＩ／Ｆ１５７はネットワークモジュール１５８の制御を行い、ネットワーク通信を実現する。外部メモリＩ／Ｆ１５９は外部メモリ１６１（例えば、フラッシュメモリー、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ等）とのアクセスを制御する。外部メモリ１６１は、ＯＳ１６２および各種アプリケーション１６６を記憶し、ホストコンピュータ１０１が保存または、読み取り可能な記憶媒体として機能する。
【００１６】
ＯＳ１６２は、アプリケーションを動作させるためのアプリケーションフレームワーク１６３、ＯＳ１６２が提供する各種システムプログラム１６４、及び各種ユーティリティ関数などを格納するライブラリ１６５を備える。アプリケーション１６６はアプリケーション実行コードを備え、さらに、ユーザＩ／Ｆ制御部１６７と、ＯＳ１６２のシステムプログラム１６４により設定された値を取得するシステム設定取得部１６８を有する。またアプリケーション１６６は、ユーザがアプリケーション１６６で設定したユーザ設定情報保存領域１６９と、システムプログラム１６４による各種設定を格納するユーザ設定情報システム保存領域１７０を有する。
【００１７】
また、外部メモリ１６１は、ＯＳ１７２や各種アプリケーションソフトウェア１７３等を保存するデータベース１７１を備える。ＯＳサーバ１０２では、各ホストコンピュータ１０１からの更新情報の問合せを受けた場合、アプリケーション１６６の１つがデータベース１７１に保存されているＯＳ１７２や各種アプリケーションソフトウェア１７３の更新情報を比較する。そして、必要に応じて問合せのあったホストコンピュータ１０１に、データベース１７１に保存されているソフトウェア群（１７２と１７３のいずれか、または両方）を、ネットワークモジュール１５８を介して送信する。
【００１８】
[プリンタドライバインストールおよびプリントキュー登録]
以下、更新対象として、複数種のデバイスドライバのうち、プリンタドライバを例にして動作を説明する。まず、このプリンタドライバのインストールについて説明する。
【００１９】
図２はインストールする際に用意されるプリンタドライバのモジュール群を示す。プリンタドライバ２０１は、グラフィックレンダリングモジュール２０２、ＵＩ制御モジュール２０３、プリンタ仕様記述ファイル２０４、色処理モジュール２０５、入出力制御モジュール２０６から構成される。なお、プリンタドライバの機能によってはこの他のモジュールから構成されることもある。
【００２０】
プリンタドライバの作成にはいくつかの仕方がある。例えば、１つのプリンタドライバで複数のプリンタに対応するために、グラフィックレンダリングモジュール２０２、およびＵＩ制御モジュール２０３を複数のプリンタに対応できるように作成しておく。また、プリンタ仕様記述ファイル２０４に関しては、対応しているプリンタ分、プリンタドライバに同梱しておく、という方法である。このような方法では、ＵＩ制御モジュール２０３はプリンタ仕様記述ファイル２０４に合わせてＵＩを表示、制御する。またグラフィックレンダリングモジュール２０２は各プリンタに合わせたページ記述言語およびプリンタ制御コマンドを発行するような構成となる。
【００２１】
次に、図３を用いて、このような構成のプリンタドライバをホストコンピュータ１０１へインストールする手順を説明する。ユーザはプリンタドライバが格納されたＣＤ−ＲＯＭを準備するか、ネットワーク経由でプリンタドライバインストーラを入手しているものとする。
【００２２】
Ｓ３０１においてユーザは入手したプリンタドライバインストーラを起動する。この動作をきっかけとしてＳ３０２において、インストーラはプリンタドライバモジュールを外部メモリ１２１の所定の場所に格納する。格納場所は印刷システムによって異なる。一例として、CUPS（Common Unix Printing System）では、「/Library/Printers/」のディレクトリ以下にベンダー毎にプリンタドライバモジュールを格納することになっている。さらにベンダー毎のディレクトリの下にさらにプリンタドライバの種類に分けて格納することも可能である。例えば、ベンダーABCのPDL1とPDL2という異なるプリンタドライバがある時、それぞれ、「/Library/Printers/ABC/PDL1/」及び「/Library/Printers/ABC/PDL2/」というディレクトリを作成する。そして、そのディレクトリ下にプリンタドライバを格納することが可能である。このようにして、Ｓ３０２ではプリンタドライバモジュールを外部メモリ１２１の上記ディレクトリに格納する。これでプリンタドライバのインストールは完了するが、実際にプリンタに出力するには、ユーザはプリンタドライバを使用してプリンタを登録する必要がある。その手順について以下説明する。
【００２３】
図４は、プリントキューを登録する手順を示す図である。まず、Ｓ４０１において、ユーザはプリントキュー登録のダイアログを開く。このステップにおいて、ＯＳ１２２はプリンタ登録のためのプログラムコードを外部メモリ１２１からＲＡＭ１１２に読み出して実行する。
【００２４】
図５は、ＯＳ１２２が表示するプリンタ登録ダイアログ５０１を示す図である。プリンタ登録ダイアログ５０１は、現在登録されているプリンタ一覧を表示するための登録プリントキューリスト５０２と、該リストで選択されているプリンタの詳細情報を表示するプリンタ詳細表示領域５０３を含む。また、プリンタ登録ダイアログ５０１は、プリントキューを登録するためのボタン５０４、現在登録プリントキューリスト５０２で選択されているプリンタを削除するためのボタン５０５、このダイアログを閉じるためのボタン５０６も含む。
【００２５】
次にＳ４０２において、ユーザは、プリンタ登録ダイアログ５０１のプリントキュー追加ボタン５０４をクリックする。このユーザ操作により、Ｓ４０３において、ＯＳ１２２はプリンタ追加登録のダイアログを表示する。ここで表示されたダイアログに対して、Ｓ４０４おいて、ユーザは必要な情報を入力し、プリンタの追加を行う。
【００２６】
図６はＯＳ１２２が表示するプリントキュー登録ダイアログ６０１を示す図である。プリントキュー登録ダイアログ６０１において、コントロール６０２で接続されているプリンタのネットワークアドレス（この例ではIPアドレス）を指定し、コントロール６０３でプリントキューを識別するためのプリンタの名前を入力する。また、コントロール６０４でプリンタが設置されている場所を入力する。プリンタの名前（６０３）およびプリンタの場所（６０４）は、登録プリントキューリスト５０２およびプリンタ詳細表示領域５０３に表示する際に使用される文字列となる。コントロール６０５はプリントキューを登録する際に使用するプリンタドライバを指定するものである。ここでリストされるプリンタドライバは、先に説明したＯＳ１２２のプリンタドライバ格納ディレクトリ（/Library/Printers）に格納されているプリンタドライバをＯＳ１２２がリストする。図６の例では、アドレスが192.168.1.10、プリントキューの名前が”Printer C”、場所が”2F”、またプリンタドライバとして”ABC PDL1”を選択している状態である。この状態で追加ボタン６０６をクリックすると、ＯＳ１２２はプリントキュー追加を行う。なお、追加を行わないでこのダイアログを閉じるときはキャンセルボタン６０７をクリックする。
【００２７】
次にＳ４０５において、ＯＳ１２２はユーザが指定したプリントキューをシステムに登録する。このステップの処理について、図７〜図１０を使用して詳細な説明を行う。
【００２８】
図７は既にプリンタドライバがインストールされ、さらにプリントキューが登録された状態を示すシステムブロック図である。図７において、グラフィックレンダリングモジュール７０３は前述した手順によりＯＳ１２２の所定のディレクトリ（/Library/Printers/）にインストールされたプリンタドライバのグラフィックレンダリングモジュール２０２である。同様に、ＵＩ制御モジュール７０５は、インストールされたプリンタドライバのＵＩ制御モジュール２０３である。色処理モジュール７０４は、インストールされたプリンタドライバの色処理モジュール２０５である。入出力制御モジュール７０８は、インストールされたプリンタドライバの入出力制御モジュール２０６である。また、プリンタ仕様記述ファイル７０６は、インストールされたプリンタドライバのプリンタ仕様記述ファイル２０４である。バックエンドモジュール７０７はＯＳ１２２が提供するものであり、グラフィックレンダリングモジュール７０３が生成した印刷データをプリンタへそのデータを送信するための入出力制御モジュール７０８へ受け渡しするためのモジュールである。また、プリントキュー登録情報７０９、プリンタ仕様記述ファイル７１０、プリンタ設定ファイル７１１は、図４のプリンタ登録の過程でＯＳ１２２が生成するものであり、以下その詳細を説明する。
【００２９】
Ｓ４０５において、ＯＳ７０２はプリンタ追加ダイアログの情報を集め、プリンタの登録作業を行う。この登録は以下のように実行される。
【００３０】
図８は登録するプリントキューの情報が記述されたファイル（マークアップ言語）を示す図である。該ファイルでは、プリントキューの識別子８０１は、プリンタ名とアンダースコアで続けてプリンタのアドレスを記述し、識別子８０２はプリンタの名前を記述し、識別子８０３は場所を記述する。識別子８０４は実際のプリントキューの記述を行っており、この例ではlpdプロトコルにより192.168.1.10のアドレスに送信することとなる。識別子８０５はこのプリンタが使用するプリンタドライバ名（ここではABC PDL1）を記述し、識別子８０６はこのプリンタの記述が終了することを示す。図７のＯＳ７０２は、Ｓ４０５においてこの記述を作成し、このプリンタの登録情報を外部メモリ１２１の所定のファイルに追記する。所定のファイルとは、たとえばCUPSシステムでは、/etc/cups/ディレクトリに格納されているprinters.confファイルである。これがプリントキュー登録情報７０９となる。なお、複数のプリントキューが登録されている場合、printers.confにはそのプリントキュー分、それぞれの対応するプリンタに対して図８の記述が繰り返されることになる。
【００３１】
このようにして、Ｓ４０５において、ＯＳ７０２はプリンタ仕様記述ファイル７０６をシステムに登録する。図７において、ＯＳ７０２はプリンタドライバのＵＩ制御モジュール７０５から登録するプリンタのプリンタ仕様記述ファイル７０６を取得し、プリントキューごとに用意されたシステム所定の箇所（プリンタ仕様記述ファイル７１０）に登録する。
【００３２】
プリンタ仕様記述ファイル７０６の登録の方法を説明する前に、当該ファイルそのものの説明を行う。図９はプリンタ仕様記述ファイル７０６の一例を示す図である。このファイルはプリンタの仕様記述フォーマットに沿って記述される。以下、フォーマットも踏まえながら説明する。
【００３３】
図９のファイルにおいて、識別子９０１はコメントを記述し（行頭が“*%“）、識別子９０２はベンダー名を記述し、識別子９０３はこのプリンタ仕様記述ファイル７０６が対応するプリンタ名を記述する。また、識別子９０４はこのプリンタ仕様記述ファイル７０６が対応するページ記述言語を記述し、識別子９０５はプリンタドライバのバージョンを記述する。この後、このプリンタの機能仕様が記述される。機能仕様は、*OpenUIの行から*CloseUIの行までが１つの機能となっている。*OpenUIの後には“*“を先頭に付加した機能名、機能名の後には“:“で区切り、その機能を選択する際の種類を示す。この種類には、“PickOne“と“Boolean“があり、“PickOne“は選択肢の中から１つを選択する機能であることを表し、“Boolean“はこの機能がOn/Offで制御されることを表す。
【００３４】
識別子９０６は、*PageSizeという機能があり、この機能は選択肢の中から１つを選択するものであることを表す。識別子９０６の次の行にはこの機能のデフォルト値を記述する。この行は“*Default“で始まり、続けて前の行で定義した機能名を付加する。この行では、PageSizeという機能のデフォルトがA4であることを示す。次の行から識別子９１０の*CloseUIのところまでは、この機能の選択肢を１行に１選択肢として記述する。たとえば識別子９０８では、PageSizeの選択肢の１つとしてA3があることを表す。なお、これはページサイズを選択する機能を記述しており、ページサイズは選択肢が多いため途中を省略している。この機能の最後の記述は識別子９１０であり、*CloseUIの後に*OpenUIで記述した機能名を記述する。これで１つの機能が表現される。次の識別子９１１〜９１６はもう１つの機能の記述である。重複する説明は省略するが、このブロックでは、Duplexという機能があり、どれか１つの選択肢を選択するものであり、選択肢はNone、Simplex、Duplexから選択することを表す。実際にはこれは両面印刷指定の機能を表現したものであり、Noneは指定しないため、プリンタのデフォルト設定に従い、Simplexは片面、Duplexは両面印刷を意味する。
【００３５】
次に、図７のＯＳ７０２がこのプリンタ仕様記述ファイル７０６を登録する方法について説明する。ＯＳ７０２は、プリンタに対応するプリンタ仕様記述ファイル７０６をＵＩ制御モジュール７０５から取得し、システムの所定の場所に格納する。図１０に格納場所とそのファイルを示す。格納場所は外部メモリ１２１の「/etc/cups/ppd/」ディレクトリ（１００１）、格納するファイルはファイル名「プリンタ名＋アンダースコア＋プリンタアドレス」（１００２、１００３、１００４）を持つファイルとする。ここで追加したプリンタ仕様記述ファイル７１０は、行１００４の“PrinterC_192.168.1.10_.ppd“である。図７において、ＯＳ７０２はプリンタ仕様記述ファイル７０６をプリンタ仕様記述ファイル７１０に格納していることを示す。
【００３６】
以上説明した処理により、プリントキューの登録が完了する。
【００３７】
［ソフトウェアの更新方法］
図１１、図１２Ａ、図１２Ｂを用いて、本発明に係る、ホストコンピュータ１０１内のソフトウェアの更新方法の一例を説明する。
【００３８】
図１１に示す処理において、まずユーザがホストコンピュータ１０１の電源を入れるなどして、起動操作を行う（Ｓ１１０１）。これにより、ＲＯＭ１１３などに記憶されているシステムBIOS、ブートローダーなどが順に起動され、ＯＳ１２２が起動される（Ｓ１１０２）。ＯＳ１２２は起動後、ネットワーク１００上のＯＳサーバ１０２に記憶されているＯＳ１７２やアプリケーションソフトウェア１７３の更新情報を問合せる（Ｓ１１０３）。ＯＳ１２２は、更新情報があるかどうかを判断し（Ｓ１１０４）、更新情報がある場合は、ＯＳサーバ１０２からＯＳ１７２やアプリケーションソフトウェア１７３の更新版をダウンロードし、インストールする（Ｓ１１０５）。この更新処理は更新されるソフトウェアの数の分だけ繰り返される。ＯＳ１２２は、更新が完了したかどうかを判断し（Ｓ１１０６）、未完了の場合はＳ１１０５に戻り、完了の場合はＯＳ起動を完了する（Ｓ１１０７）。また、Ｓ１１０４で更新情報がないと判断した場合、更新処理を行なわずにＯＳ起動を完了する（Ｓ１１０７）。なお、更新処理（Ｓ１１０５）の詳細処理フローについては、以下、図１２Ｂを用いて説明する。
【００３９】
図１２Ａに更新されるソフトウェアの一覧の一例を示す。本図には更新処理を順に行なうための便宜的な番号１２０１、それに紐づくソフトウェア名称１２０２とバージョン番号１２０３を示すが、その他にインストールするためのファイル名なども一覧情報として含まれる（不図示）。
【００４０】
図１２Ｂの更新処理の詳細フローにおいて、まず、更新処理を各ソフトウェアに対して行なうかどうかを判断するための処理番号Ｎ（初期値はＮ＝１）が付与される（Ｓ１２１１）。ＯＳ１２２は、図１２Ａに示す一覧の中で番号１２０１が「１」のソフトウェア（本例では「ワープロ」）について、既にホストコンピュータ１０１にインストールされているかどうかを判断する（Ｓ１２１２及びＳ１２１３）。ＯＳ１２２は、当該ソフトウェアがインストールされていない場合、新規にインストールし（Ｓ１２１４）、既にインストールされている場合、そのソフトウェアの更新処理を行う（Ｓ１２１５）。なお、更新処理とは、インストール済みのソフトウェアをアンインストールしてから、取得したソフトウェアをインストールする処理でも良いし、ファイルを置き換える（上書きする）処理でも良い。
【００４１】
Ｓ１２１６では、ＯＳ１２２は、更新処理対象のソフトウェア番号に１を追加し、他に更新対象となるソフトウェアがあるかどうかを判断する（Ｓ１２１７）。ＯＳ１２２は、更新対象のソフトウェアがある場合はＳ１２１２に戻って処理を続行し、更新対象のソフトウェアがない場合は更新処理を終了する。なお、Ｓ１２１４で新規インストールした後は、処理はＳ１２１７に進む。
【００４２】
なお、ＯＳサーバ１０２上のＯＳ１７２やアプリケーションソフトウェア１７３をホストコンピュータ１０１上で更新対象とするかどうかは、種々の情報から判断する。例えば、ファイルの時間情報や内部に記録されているソフトウェア名称、バージョン情報などから判断する。
【００４３】
［プリンタドライバ更新処理］
図１３を用いて、ＯＳ１２２におけるプリンタドライバの更新処理の一例を説明する。まずＯＳ１２２は、プリンタドライバ２０１のインストール処理の開始後、該ドライバに紐づく機器を識別する識別子（例えば、機器IDなど）がインストール済みのプリンタドライバ２０１の対応識別子と同じかどうかを判別する（Ｓ１３０１）。ＯＳ１２２は、両プリンタドライバ２０１の識別子が同一の場合は、両者のモデル名称が同一かどうかを判断する（Ｓ１３０２）。この処理では、例えば、図５の５０３の「種類」（同図では“ABC PDL1”）が同じかどうかが判断される。モデル名称が同一の場合は、ＯＳ１２２は、両者は同じプリンタドライバであると判断し、更新してよいかどうかの選択をホストコンピュータ１０１のユーザに対して促すメッセージなどを表示する（Ｓ１３０３）。ＯＳ１２２は、ユーザが更新を希望しない場合（Ｓ１３０４でＮＯ、例えば、Ｓ１３０３で表示するメッセージ画面で不図示の「キャンセル」または「Ｎｏ」ボタンをユーザがクリックした時）は、プリンタドライバ２０１の更新処理を行わない（Ｓ１３０６）。一方、Ｓ１３０１で識別子が異なる場合、あるいはＳ１３０２でモデル名称が異なる場合は、ＯＳ１２２はプリンタドライバ２０１の更新処理を行なう（Ｓ１３０５）。また、この更新処理は、Ｓ１３０４でユーザが更新を希望する場合（Ｓ１３０４でＹＥＳ、例えば、上記画面で不図示の「更新」または「ＯＫ」ボタンをユーザがクリックした時）も実行される（Ｓ１３０５）。
【００４４】
なお、上記プリンタドライバ更新処理は、ＯＳサーバ１０２からダウンロードされたソフトウェア群からのインストールの場合に限らない。例えば、プリンタドライバ２０１のインストーラでインストールする場合が可能である。また、ホストコンピュータ１０１にUniversal Serial Bus（以降、「ＵＳＢ」）ケーブルで画像形成装置１０３が接続された時にＯＳ１２２が提供するプラグアンドプレイによるインストールの場合も可能である。
【００４５】
［ＯＳとソフトウェアアーキテクチャー］
昨今、ＯＳの進化は激しく、その進化に応じて、ＯＳの配下で動作するソフトウェアの構造、アーキテクチャーなども進化する必要がある。図１４Ａに、ＯＳ１２２の進化の過程と、そのＯＳ環境で動作するソフトウェアのアーキテクチャーの世代の一例を示す。同図に示すように、バージョン（図では“Ver”と表記）ＮのＯＳでは第６世代と第7世代のソフトウェアの双方が動作するが、Ｎ−１のＯＳでは第６世代のソフトウェア、将来のバージョンＮ＋１のＯＳでは第７世代のソフトウェアしか動作しない。
【００４６】
図１４Ｂはプリンタドライバの一例を示す図である。バージョンＮのＯＳにインストール可能なプリンタドライバの中には、アーキテクチャーが異なるという理由で、モデル名称を変えたものも提供されている。画面１４１０はインストール済みの全てのプリントキューを表示する画面の一例である（この画面はＯＳ１２２が用意するもので、図５の５０１と同義のものである）。この画面は、プリンタドライバ１４１１は第６世代（図では“Gen”と表記）、プリンタドライバ１４１２は第７世代のプリンタドライバであることを示している。また、この画面は、ＯＳ１２２には“Ａ”というプリンタに対して、２つの世代のプリンタドライバがインストールされていることを示している。
【００４７】
図１４ＣはプリンタドライバがＯＳ１２２に登録される場合の登録情報の一例を示す図である。同図において、項目１４２１は機器の独自性を識別する識別子（例えば機器ＩＤ）、項目１４２２はプリンタドライバのモデル名称（モデル情報）、項目１４２３はプリンタドライバの世代番号（世代情報）を表す。
【００４８】
上記のような環境において、本発明に係る処理を図１５のフローチャートを用いて説明する。まず、ＯＳ１２２は、プリンタドライバ２０１のインストール処理の開始後、当該ドライバとインストール済みのプリンタドライバ２０１の識別子を比較し、２つの識別子が同一かどうか判別する（Ｓ１５０１、第１の比較手段）。この識別子はそれぞれのドライバに紐づく機器を識別するためのものである（図１４Ｃの１４２１）。ＯＳ１２２は、当該識別子が同一の場合は、両プリンタドライバ２０１のモデル名称（図１４Ｃの１４２２）を比較し、２つのモデル名称が同一かどうか判断する（Ｓ１５０２、第２の比較手段）。この処理では、例えば、図５の５０３の「種類」（同図では“ABC PDL1”）が同じかどうか判断される。モデル名称が同一の場合、ＯＳ１２２は両者は同じプリンタドライバであると判断する。
【００４９】
次に、ＯＳ１２２は、インストール元の（ＯＳにインストール済みの）プリンタドライバ２０１と更新対象のプリンタドライバ２０１の世代番号（図１４Ｃの１４２３）を比較し、両ドライバが同じ世代のものかどうかを判断する（Ｓ１５０３、第３の比較手段）。両者が同じ世代の場合はＳ１５０７に移行する。一方、両者が同じ世代でない場合、ＯＳ１２２は、インストール元のプリンタドライバ２０１が第６世代で、且つ更新対象のプリンタドライバ２０１が第７世代のものかどうか判断する（Ｓ１５０４）。第６世代から第７世代への更新の場合は、ＯＳ１２２は、更新してよいかどうかの選択をホストコンピュータ１０１のユーザに対して促すメッセージなどを表示する（Ｓ１５０５）。ＯＳ１２２はこのメッセージに対するユーザの指示に応答して、更新処理を行なうかどうか判断する。即ち、ユーザが更新を希望しない場合（Ｓ１５０６でＮＯ、例えばＳ１５０５で表示するメッセージ画面で不図示の「キャンセル」または「Ｎｏ」ボタンをユーザがクリックした時）は、ＯＳ１２２はプリンタドライバ２０１の更新処理を行わない（Ｓ１５０８）。一方、ユーザが更新を希望する場合（Ｓ１５０６でＹＥＳ、例えば上記画面で不図示の「更新」または「ＯＫ」ボタンをユーザがクリックした時）は、ＯＳ１２２はプリンタドライバ２０１の更新処理を行なう（Ｓ１５０７）。さらに、Ｓ１５０１で識別子が異なる場合、Ｓ１５０３で世代が同一の場合、あるいはＳ１５０４で第６世代から第７世代への更新でない場合にも、ＯＳ１２２はプリンタドライバ２０１の更新処理を行なう（Ｓ１５０７）。
【００５０】
上述のように、プリンタドライバ２０１の世代番号（世代情報）を考慮した処理を行なうことにより、世代番号の異なるプリンタドライバ２０１が存在する場合にも、自動で更新するか、あるいはユーザの判断を待って更新することが可能となる。
【００５１】
Ｓ１５０２でモデル名称が異なる場合、ＯＳ１２２は、元の（インストール済みの）プリンタドライバを削除してよいかどうかの選択をユーザに促すメッセージを表示し、ユーザの選択により削除するかどうかを判断する（Ｓ１５０９）。ＯＳ１２２は、ユーザが削除を希望する場合（例えば、Ｓ１５０９で表示したメッセージ画面で不図示の「削除」または「ＯＫ」ボタンをユーザがクリックした時）は、元の（インストール済みの）プリンタドライバの削除処理を行う（Ｓ１５１０）。一方、ユーザが削除を希望しない場合（例えば、上記画面で不図示の「キャンセル」または「ＮＯ」ボタンをユーザがクリックした時）は、ＯＳ１２２は、インストール対象のプリンタドライバをインストールする（Ｓ１５１１）。後者の場合は、同じプリンタに対して異なるプリンタドライバをインストールすることになる。
【００５２】
次に、図１６を用いて、プリンタドライバの更新処理をプリンタドライバ単位ではなく、プリントキュー５０２単位で行なうフローを説明する。なお、Ｓ１６０１〜Ｓ１６０４の処理は図１５のＳ１５０１〜Ｓ１５０４と同様であり、Ｓ１６１３〜Ｓ１６１５の処理は図１５のＳ１５０９〜Ｓ１５１１と同様なので、説明を省略する。
【００５３】
ＯＳ１２２は、Ｓ１６０４で第６世代から第７世代への更新であると判断した場合、該当するプリンタドライバに対するキューごとの更新処理を選択させるため、カウントＮを付与し（初期値はＮ＝１）、Ｎ番目のキューから選択処理を開始する（Ｓ１６０５）。ここで、ＯＳ１２２は、Ｎ番目のキューが存在するかどうかを判断する（Ｓ１６０６）。Ｎ番目のキューが存在していれば、ＯＳ１２２はそのキューに対して、更新処理をしてよいかどうかの選択をホストコンピュータ１０１のユーザに対して促すメッセージなどを表示する（Ｓ１６０７）。ユーザが更新を希望しない場合（Ｓ１６０８でＮＯ、例えばＳ１６０７で表示するメッセージ画面で不図示の「キャンセル」、または「ＮＯ」ボタンをユーザがクリックした時）は、ＯＳ１２２はプリンタドライバ２０１の更新処理を行なわない（Ｓ１６１０）。ユーザが更新を希望する場合（Ｓ１６０８でＹＥＳ、例えば上記画面で不図示の「更新」または「ＯＫ」ボタンをユーザがクリックした時）は、ＯＳ１２２はプリンタドライバ２０１の更新処理を行なう（Ｓ１６１２）。ここで、ＯＳ１２２はカウントを１つ上げて（Ｓ１６１１）、Ｓ１６０６に戻る。
【００５４】
一方、Ｓ１６０１で識別子が異なる場合、Ｓ１６０３で世代が同一の場合、およびＳ１６０４で第６世代から第７世代への更新でない場合も、ＯＳ１２２はプリンタドライバ２０１の更新処理を行う（Ｓ１６０９）。
【００５５】
なお、１番目のキューにおけるＳ１６０７の処理において、図１７に示す画面を表示するようにしてもよい。画面１７００では、複数存在するキューを持つプリンタドライバに対し、該当するキューを列挙してまとめて更新処理をするか、キューごとに更新処理するかを選択することができる。画面１７００の「いいえ」ボタン１７０１がクリックされると、図１６で説明したように、キューごとのドライバ更新処理を行うが、「はい」ボタン１７０３がクリックされると該当するプリントキュー全てに対して更新処理を行う。ここで「キャンセル」ボタン１７０２がクリックされるとＳ１６１０の処理となる。
【００５６】
また、ＯＳ１２２におけるプリンタドライバの登録情報として、ＯＳサーバ１０２からのダウンロード等で、自動で更新処理する際の自動更新を許可するかどうかを示すフラグ（不図示）を用意しても良い。この環境においてプリンタドライバのインストールでの必要な項目の入力（Ｓ４０４）で表示するプリンタドライバインストーラの画面表示例を図１８Ａに示す。画面１８００で「自動更新対象としない」チェックボックス１８０１がチェックされ、「次へ」ボタン１８０３がクリックされ、インストールが行われると、上記フラグを立てることで、ＯＳ１２２におけるプリンタドライバの更新対象から除外される。この場合、例えば、図１５や図１６における更新対象から除外したり、図１７のリストに表示しないなどの処理を行う。図１８Ｂに示すように、自動更新の設定はプリントキューごとに可能であるため、インストールされたプリンタドライバはキューごとに更新の可、不可が設定可能になる。
【００５７】
なお、本実施例では第６世代と第７世代のプリンタドライバで説明したが、これは一例であり、判断基準は古い世代と新しい世代との関係や、アーキテクチャーが異なるプリンタドライバであると判断する情報があるプリンタドライバ間の関係であっても良い。
【００５８】
なお、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
１０１  情報処理装置
１１１  制御する手段（ＣＰＵ）
１２２  オペレーティングシステム
２０１  デバイスドライバ（プリンタドライバ）
Ｓ１５０１  第１の比較手段
Ｓ１５０２  第２の比較手段
Ｓ１５０３〜Ｓ１５０４  第３の比較手段
１４２１    識別子
１４２２    モデル情報
１４２３    世代情報
【図１Ａ】
0006648915.tif 000002
【図１Ｂ】
0006648915.tif 000003
【図１Ｃ】
0006648915.tif 000004
【図１Ｄ】
0006648915.tif 000005
【図２】
0006648915.tif 000006
【図３】
0006648915.tif 000007
【図４】
0006648915.tif 000008
【図５】
0006648915.tif 000009
【図６】
0006648915.tif 000010
【図７】
0006648915.tif 000011
【図８】
0006648915.tif 000012
【図９】
0006648915.tif 000013
【図１０】
0006648915.tif 000014
【図１１】
0006648915.tif 000015
【図１２Ａ】
0006648915.tif 000016
【図１２Ｂ】
0006648915.tif 000017
【図１３】
0006648915.tif 000018
【図１４Ａ】
0006648915.tif 000019
【図１４Ｂ】
0006648915.tif 000020
【図１４Ｃ】
0006648915.tif 000021
【図１５】
0006648915.tif 000022
【図１６】
0006648915.tif 000023
【図１７】
0006648915.tif 000024
【図１８Ａ】
0006648915.tif 000025
【図１８Ｂ】
0006648915.tif 000026