(57)【特許請求の範囲】
【請求項１】
ドライバが、該ドライバを識別する識別情報を備えるか否かを判定し、判定結果に応じて該ドライバから識別情報を取得する第１取得ステップと、
前記ドライバを更新するための更新情報が格納される格納場所を特定する特定情報を、前記識別情報に基づき生成する生成ステップと、
前記生成ステップにより生成された前記特定情報に特定される前記格納場所から前記更新情報を取得する第２取得ステップと
をコンピュータに実行させるためのプログラム。
【請求項２】
前記特定情報は、予め定められた規則に従って前記識別情報を含み、
前記生成ステップは、
前記識別情報から前記規則に従い前記特定情報を生成する
請求項１に記載のプログラム。
【請求項３】
前記第２取得ステップは、
前記更新情報に基づき前記ドライバの更新を行うか否かを判定し、更新を行うと判定した前記ドライバを示す情報を表示部に表示させる
請求項１又は請求項２に記載のプログラム。
【請求項４】
前記第１取得ステップは、
前記ドライバのインストール時には、前記識別情報を前記ドライバから取得して前記コンピュータの予め定められた記憶領域に記憶させ、該ドライバの更新時には、該記憶領域から該識別情報を取得する
請求項１乃至請求項３の何れか１項に記載のプログラム。
【請求項５】
前記第１取得ステップは、
前記ドライバから、該ドライバの種別を示す種別情報をさらに取得して、前記識別情報と関連付けて前記記憶領域に記憶させる
請求項４に記載のプログラム。
【請求項６】
前記第２取得ステップに取得された前記更新情報を用いて前記ドライバを更新する更新ステップをさらに有し、
前記更新ステップは、
前記記憶領域から前記種別情報を取得して、取得した該種別情報に示されるドライバの種別に応じた手順で前記ドライバを更新する
請求項５に記載のプログラム。
【請求項７】
ドライバが、該ドライバを識別する識別情報を備えるか否かを判定し、判定結果に応じて該ドライバから識別情報を取得する第１取得部と、
前記ドライバを更新するための更新情報が格納される格納場所を特定する特定情報を、前記識別情報に基づき生成する生成部と、
前記生成部により生成された前記特定情報に特定される前記格納場所から前記更新情報を取得する第２取得部と
を有する情報処理装置。
【請求項８】
ドライバが、該ドライバを識別する識別情報を備えるか否かを判定し、判定結果に応じて該ドライバから識別情報を取得する第１取得ステップと、
前記ドライバを更新するための更新情報が格納される格納場所を特定する特定情報を、前記識別情報に基づき生成する生成ステップと、
前記生成ステップにより生成された前記特定情報に特定される前記格納場所から前記更新情報を取得する第２取得ステップと
を有する情報処理方法。
【請求項９】
ドライバを更新するためのオブジェクトが第１格納場所に格納される第１格納部と、
前記第１格納場所を示す情報を含む更新情報が、前記ドライバを識別する識別情報に基づく特定情報で特定される第２格納場所に格納される第２格納部と、
自身を識別する前記識別情報を含むドライバを記憶する第１記憶部と、
前記第１記憶部に記憶されるドライバが、該ドライバを識別する識別情報を備えるか否かを判定し、判定結果に応じて該ドライバから前記識別情報を取得する第１取得部と、
前記第１取得部に取得された前記識別情報に基づき前記特定情報を生成する生成部と、
前記生成部により生成された前記特定情報に特定される前記第２格納場所から前記更新情報を取得する第２取得部と、
前記第２取得部により取得された前記更新情報に基づき前記第１格納部から前記オブジェクトを取得し、取得した該オブジェクトを用いて前記第１記憶部に記憶されるドライバを更新する更新部と
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置および情報処理方法、ならびに、情報処理システムに関する。
【背景技術】
【０００２】
従来から、ドライバプログラムと、当該ドライバプログラムの更新の有無のチェックおよびインストールを行うインストーラとを例えば同梱して配布することが行われている。これらドライバプログラムおよびインストーラは、同一のＰＣ（パーソナルコンピュータ）に搭載され、インストーラは、対応するドライバプログラムの更新の有無を、例えばインターネットなどのネットワークを介してサーバに問い合わせる。インストーラは、問い合わせの結果、更新が有る場合には、当該サーバから更新用のドライバプログラムを取得して、ＰＣに搭載されるドライバプログラムを、サーバから取得した更新用のドライバプログラムにより更新する。
【０００３】
特許文献１には、クライアント装置に搭載されている、周辺機器のためのドライバの適切なパッケージを取得して、取得したドライバのインストールをユーザに促すようにした技術が開示されている。すなわち、特許文献１では、クライアント装置や周辺機器の情報などに基づき、保持しているドライバのデータベースを参照し、最適なドライバプログラムのパッケージを取得する。そして、自動でインストーラプログラムを起動して、取得したパッケージに含まれるドライバプログラムのインストールをユーザに促す。特許文献１によれば、ユーザは、最新バージョンのドライバプログラムをネットワーク上などから入手してインストールする操作を、容易に実行することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のインストーラが対応可能なドライバプログラムは、当該インストーラと共に配布されたドライバプログラムに限られ、例えば将来新たに提供されるドライバプログラムには対応できなかったという問題点があった。したがって、従来では、新たにドライバプログラムが提供される毎に、対応するインストーラを配布する必要があった。
【０００５】
また、特許文献１の方法は、複数の周辺機器のドライバプログラムに対応可能であるが、将来新たに提供されるドライバプログラムには対応していない。
【０００６】
本発明は、上記に鑑みてなされたものであって、１のインストーラにより、現在提供されるプログラムと、将来提供されるプログラムとに共通して適用可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、ドライバが、該ドライバを識別する識別情報を備えるか否かを判定し、判定結果に応じて該ドライバから識別情報を取得する第１取得ステップと、ドライバを更新するための更新情報が格納される格納場所を特定する特定情報を、識別情報に基づき生成する生成ステップと、生成ステップにより生成された特定情報に特定される格納場所から更新情報を取得する第２取得ステップとをコンピュータに実行させる。
【発明の効果】
【０００８】
本発明によれば、１のインストーラにより、現在提供されるプログラムと、将来提供されるプログラムとに共通して適用可能となるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る情報処理システムの一例の構成を示すブロック図である。
【図２】図２は、第１の実施形態に適用可能なクライアントＰＣの一例の構成を示すブロック図である。
【図３】図３は、第１の実施形態に係るクライアントＰＣの機能を説明するための一例の機能ブロック図である。
【図４】図４は、第１の実施形態に係るインストーラの一例の構成を示すブロック図である。
【図５】図５は、第１の実施形態に係るドライバの一例の構成を示すブロック図である。
【図６】図６は、第１の実施形態に係るドライバの更新手順について概略的に説明するための図である。
【図７】図７は、第１の実施形態に係るドライバの更新手順をより詳細に説明するためのシーケンス図である。
【図８】図８は、第１の実施形態に係るＩＤの例を示す図である。
【図９】図９は、第１の実施形態に係る特定情報の例を示す図である。
【図１０】図１０は、第１の実施形態に係る更新情報の例を示す図である。
【図１１】図１１は、第１の実施形態に係る表示画面の例を示す図である。
【図１２】図１２は、第１の実施形態に係るインストール完了画面の例を示す図である。
【図１３】図１３は、各実施形態に係るＩＤの例について説明するための図である。
【図１４】図１４は、各実施形態に適用可能な更新情報の管理方法の例を示す図である。
【図１５】図１５は、引数に基づきテーブルを参照してＩＤを検索する場合の特定情報の例を示す図である。
【図１６】図１６は、第１の実施形態の変形例に係るドライバのインストール手順の例を示すシーケンス図である。
【図１７】図１７は、第１の実施形態の変形例に係る、ＯＳ管理領域に書き込まれたドライバ情報の例を示す図である。
【図１８】図１８は、第１の実施形態の変形例に係る、ドライバの更新手順の例を示すシーケンス図である。
【図１９】図１９は、第２の実施形態に適用可能な情報処理システムの一例の構成を示すブロック図である。
【図２０】図２０は、第２の実施形態に係るクライアントＰＣの機能を説明するための一例の機能ブロック図である。
【図２１】図２１は、第２の実施形態に係るインストーラの一例の構成を示すブロック図である。
【図２２】図２２は、第２の実施形態に係るドライバのインストール手順の例を示すシーケンス図である。
【図２３】図２３は、第２の実施形態に係る、ＯＳ管理領域に書き込まれたドライバ情報の例を示す図である。
【図２４】図２４は、第２の実施形態に係る、ドライバの更新手順の例を示すシーケンス図である。
【図２５】図２５は、第２の実施形態に係る表示画面の例を示す図である。
【図２６】図２６は、第２の実施形態に係るインストール完了画面の例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、プログラム、情報処理装置および情報処理方法、ならびに、情報処理システムの実施形態を詳細に説明する。
【００１１】
（第１の実施形態）
図１は、第１の実施形態に係る情報処理システムの一例の構成を示す。図１において、クライアント側におけるパーソナルコンピュータなどの情報処理装置１０（以下、クライアントＰＣ１０）と、画像形成装置２０ａおよび２０ｂとが、ＬＡＮ(Local  Area  Network)といったネットワーク２２により互いに通信可能に接続される。図１の例では、画像形成装置２０ａおよび２０ｂは、それぞれプリンタ装置（プリンタ＃１、＃２）とされている。クライアントＰＣ１０は、画像形成装置２０ａおよび２０ｂを駆動するためのドライバプログラム（以下、ドライバと略称する）が搭載される。クライアントＰＣ１０は、搭載されたドライバにより、ネットワーク２２を介して画像形成装置２０ａおよび２０ｂを制御することができる。
【００１２】
クライアントＰＣ１０は、ルータ２１を介して、例えばインターネットといった外部のネットワーク３０に接続される。ネットワーク３０に対し、更新情報サーバ４０およびオブジェクト配置サーバ４１が接続される。クライアントＰＣ１０は、ネットワーク３０を介して、これら更新情報サーバ４０およびオブジェクト配置サーバ４１と互いに通信可能とされる。
【００１３】
オブジェクト配置サーバ４１は、クライアントＰＣ１０に搭載されるドライバを更新するためのオブジェクトが予め定められた格納場所に配置されて格納される。オブジェクト配置サーバ４１に格納されるオブジェクトは、クライアントＰＣ１０に搭載されるドライバと置き換える、例えば当該ドライバに対してバージョンがより新しいドライバそのものであってもよいし、ドライバを構成するためのモジュールであってもよい。これに限らず、オブジェクトは、ドライバに対する更新部分のみを含むモジュールであってもよい。
【００１４】
更新情報サーバ４０は、オブジェクト配置サーバ４１に格納されるオブジェクトを用いてドライバを更新するための更新情報が格納される。更新情報は、少なくとも、当該オブジェクトがオブジェクト配置サーバ４１に格納される格納場所を示す情報を含む。
【００１５】
なお、図１の例では、ネットワーク２２に２台の画像形成装置２０ａおよび２０ｂが接続され、クライアントＰＣ１０がこれら画像形成装置２０ａおよび２０ｂを制御するように示したが、これはこの例に限定されない。すなわち、クライアントＰＣ１０は、ネットワーク２２に接続される２台の画像形成装置２０ａおよび２０ｂのうち一方のみを制御してもよいし、ネットワーク２２に対して１台の例えば画像形成装置２０ａのみが接続されていてもよい。また、ネットワーク２２に対して３台以上の画像形成装置が接続され、クライアントＰＣ１０がこの３台以上の画像形成装置を全て制御可能としてもよい。
【００１６】
また、図１では、更新情報サーバ４０とオブジェクト配置サーバ４１とがそれぞれ個別のサーバ装置であるように示したが、これはこの例に限定されない。例えば、更新情報サーバ４０とオブジェクト配置サーバ４１とを同一のサーバ装置上の別個の機能として構成してもよいし、更新情報サーバ４０とオブジェクト配置サーバ４１とをさらに多数のサーバ装置に分散させて構成してもよい。
【００１７】
図２は、第１の実施形態に適用可能なクライアントＰＣ１０の一例の構成を示す。クライアントＰＣ１０は、ＣＰＵ(Central  Processing  Unit)５１と、ＲＯＭ(Read  Only  Memory)５２と、ＲＡＭ(Random  Access  Memory)５３と、ストレージ５４と、表示制御部５５と、入出力Ｉ／Ｆ５７と、通信Ｉ／Ｆ５９とがバス５０を介して互いに通信可能に接続されている。
【００１８】
ＣＰＵ５１は、ＲＯＭ５２やストレージ５４に予め記憶されるプログラムに従い、ＲＡＭ５３をワークメモリとして用いて、このクライアントＰＣ１０の全体の動作を制御する。ストレージ５４は、ハードディスクドライブや不揮発性の半導体メモリ（フラッシュメモリ）からなり、ＣＰＵ５１が動作するためのプログラムや、各種データが格納される。
【００１９】
表示制御部５５は、ＣＰＵ５１によりプログラムに従い生成された表示制御信号を、ディスプレイ５６で表示可能な表示信号に変換してディスプレイ５６に供給する。ディスプレイ５６は、例えばＬＣＤ(Liquid  Crystal  Display)を表示デバイスとして用い、表示制御部５５から供給された表示信号に従った画面を表示デバイスに表示させる。
【００２０】
入出力Ｉ／Ｆ５７は、外部機器との間で通信を行うインタフェースである。図２の例では、入出力Ｉ／Ｆ５７に対して、外部機器としてキーボードやポインティングデバイス（マウスなど）を含む操作部５８が接続されている。入出力Ｉ／Ｆ５７は、これに限らず、ＣＤ(Compact  Disk)やＤＶＤ(Digital  Versatile  Disk)といったディスク記憶媒体からのデータの読み出しなどを行うドライブ装置や、不揮発性の半導体メモリなどのストレージを接続してもよい。入出力Ｉ／Ｆ５７としては、例えばＵＳＢ(Universal  Serial  Bus)を用いることができる。
【００２１】
通信Ｉ／Ｆ５９は、ＴＣＰ／ＩＰ(Transmission  Control  Protocol/Internet  Protocol)など所定のプロトコルを用いてネットワーク３０を介した通信を制御する。
【００２２】
なお、更新情報サーバ４０およびオブジェクト配置サーバ４１は、クライアントＰＣ１０と同様の構成で実現可能であるので、ここでの説明を省略する。
【００２３】
図３は、第１の実施形態に係るクライアントＰＣ１０の機能を説明するための一例の機能ブロック図である。図３において、クライアントＰＣ１０は、表示部１００と、入力部１０１と、全体制御部１０２と、通信部１０３と、記憶部１０４と、インストーラ１０５と、ドライバ１０６とを有する。
【００２４】
全体制御部１０２は、クライアントＰＣ１０の全体の動作を制御するもので、例えば、ＣＰＵ５１上で動作するプログラムの一つであるＯＳ(Operating  System)に相当する。表示部１００は、全体制御部１０２の指示に従った画面をディスプレイ５６に表示させる。入力部１０１は、入出力Ｉ／Ｆ５７に対して入力された情報を全体制御部１０２に渡す。通信部１０３は、通信Ｉ／Ｆ５９を介した通信を制御する。記憶部１０４は、ＲＡＭ５３やストレージ５４に対するデータの読み書きを制御する。
【００２５】
これら表示部１００、入力部１０１、全体制御部１０２、通信部１０３および記憶部１０４は、ＣＰＵ５１で動作するプログラムにより構成される。これに限らず、表示部１００、入力部１０１、全体制御部１０２、通信部１０３および記憶部１０４のうち一部または全部を、互いに協働するハードウェアによって構成してもよい。
【００２６】
インストーラ１０５およびドライバ１０６は、ＣＰＵ５１上で動作するプログラムにより構成される。ドライバ１０６は、全体制御部１０２がクライアントＰＣ１０に接続される外部機器を制御する際に、全体制御部１０２と当該外部機器との間の仲介を行う。また、ドライバ１０６は、クライアントＰＣ１０から当該外部機器を使用する際に、ユーザに対して適切なＵＩ(User  Interface)を提供する。この例では、ドライバ１０６は、例えば画像形成装置２０ａ（プリンタ＃１）の制御に対応したプリンタドライバであるものとする。
【００２７】
インストーラ１０５は、ドライバ１０６をクライアントＰＣ１０にインストールする。また、インストーラ１０５は、既にクライアントＰＣ１０にインストールされているドライバ１０６の更新処理を行う。例えば、インストーラ１０５は、インストール済みのドライバ１０６を更新可能か否かを判定し、更新可能であると判定した場合に、ドライバ１０６を更新するためのオブジェクトをネットワーク３０を介して取得し、取得したオブジェクトを用いてドライバ１０６を更新する。インストーラ１０５は、例えば対応するドライバ１０６と共に提供され、所定の手順にてクライアントＰＣ１０にインストールされる。
【００２８】
図４は、第１の実施形態に係るインストーラ１０５の一例の構成を示す。図４において、インストーラ１０５は、通信部１２０と、ドライバインストール部１２１と、ＵＩ１２２と、ドライバ情報取得部１２３とを有する。
【００２９】
通信部１２０は、更新情報サーバ４０およびオブジェクト配置サーバ４１と通信を行い、ドライバ１０６を更新するためのオブジェクトを取得する。ドライバインストール部１２１は、通信部１２０により取得されたオブジェクトを用いてクライアントＰＣ１０にドライバをインストールし、ドライバ１０６を更新する。ＵＩ１２２は、ドライバ１０６のインストールや更新の際に、ユーザに対して表示や入力インタフェースなどユーザインタフェースを提供する。ドライバ情報取得部１２３は、クライアントＰＣ１０にインストールされているドライバ１０６から、後述する識別情報を取得する（第１取得部）。
【００３０】
通信部１２０は、更新情報取得部１２０１とオブジェクト取得部１２０２とを有する。更新情報取得部１２０１は、更新情報サーバ４０と通信し、更新情報サーバ４０からドライバ１０６を更新するための更新情報を取得する（第２取得部）。このとき、更新情報取得部１２０１は、ドライバ情報取得部１２３によりドライバ１０６から取得された識別情報に基づき更新情報が格納される格納場所を特定するための特定情報を取得し、取得した特定情報に従い更新情報を取得する。更新情報は、少なくとも、当該ドライバ１０６の更新に用いるオブジェクトの、オブジェクト配置サーバ４１における格納場所を示す情報を含む。
【００３１】
オブジェクト取得部１２０２は、更新情報取得部１２０１に取得された更新情報に基づき、オブジェクト配置サーバ４１から、ドライバ１０６の更新に用いるオブジェクトを取得する。
【００３２】
図５は、第１の実施形態に係るドライバ１０６の一例の構成を示す。ドライバ１０６は、ドライバ処理部１３０と、ＩＤ格納部１３１と、ＩＤ送信部１３２とを有する。ドライバ処理部１３０は、一般的なドライバとしての処理を実行する部分である。一例として、ドライバ１０６がプリンタドライバである場合、ドライバ処理部１３０は、ユーザに対して印刷設定や周辺機設定（プリンタ設定）を促すユーザインタフェースを提供するＵＩ部と、実際の印刷データをＰＣＬ(Printer  Control  Language)やポストスクリプトといった描画コマンドに変換する描画部とを含む。
【００３３】
ＩＤ格納部１３１は、このドライバ１０６に一意の識別情報が格納される。ここで、ドライバ１０６に一意とは、当該ドライバ１０６を更新可能なドライバプログラムを特定するための情報群に対して一意であることを意味する。識別情報の構成のより具体的な例については、後述する。
【００３４】
ＩＤ格納部１３１に格納される識別情報は、ドライバ１０６のベンダ側において予め設定される。識別情報は、ドライバ１０６のプログラム内に埋め込まれていてもよいし、ドライバ１０６のプログラムとは別個のデータとしてクライアントＰＣ１０のストレージ５４に不揮発に記憶させてもよい。
【００３５】
なお、ドライバ１０６を更新するための更新情報が格納される格納場所を特定可能な特定情報は、識別情報を含んで構成される。一例として、ドライバ１０６の更新情報が更新情報サーバ４０に格納される格納場所を示すＵＲＬ(Uniform  Resource  Locator)の、ドライバ１０６を特定可能な部分に、識別情報を用いることができる。
【００３６】
ＩＤ送信部１３２は、インストーラ１０５のドライバ情報取得部１２３からの要求に応じて、ＩＤ格納部１３１に格納される識別情報をインストーラ１０５に対して送信する。ＩＤ送信部１３２がインストーラ１０５に識別情報を送信する方法は特に限定されない。例えば、ＩＤ送信部１３２は、ファイル、レジストリ、PrintTicket、PrintCapability、ドライバ１０６のCapabilityなどを介して、識別情報をインストーラ１０５に送信する。
【００３７】
次に、第１の実施形態に係るドライバ１０６の更新手順について、図６を用いて概略的に説明する。なお、図６において、上述した図１および図３と共通する部分には同一の符号を付して、詳細な説明を省略する。また、以下の説明において、ドライバ１０６に一意な識別情報を、適宜「ＩＤ」として記述する。図６において、既にクライアントＰＣ１０には、バージョンＶｅｒ＃Ａのドライバ１０６がインストールされているものとする。
【００３８】
図６に示されるドライバ１０６の更新手順は、例えば、クライアントＰＣ１０に対するユーザ操作に従い開始される。更新手順が開始されると、インストーラ１０５は、先ず、ドライバ１０６に対してＩＤを要求する（ステップＳ１）。ドライバ１０６は、この要求に応じてＩＤをインストーラ１０５に返す（ステップＳ２）。インストーラ１０５は、ドライバ１０６から受け取ったＩＤに基づき、ドライバ１０６を更新するための更新情報の格納場所を特定するための特定情報を生成する。インストーラ１０５は、生成した特定情報に基づき、更新情報サーバ４０に対してドライバ１０６の更新の有無を問い合わせる（ステップＳ３）。更新情報サーバ４０は、この問い合わせに応じて、更新情報をインストーラ１０５に返す（ステップＳ４）。
【００３９】
インストーラ１０５は、更新情報サーバ４０から渡された更新情報に基づき、ドライバ１０６の更新の有無を判定する。インストーラ１０５は、ドライバ１０６の更新があると判定した場合、更新情報に含まれる、ドライバ１０６を更新するためのオブジェクトの格納場所を示す情報に基づき、当該オブジェクトのダウンロードを、オブジェクト配置サーバ４１に要求する（ステップＳ５）。
【００４０】
オブジェクト配置サーバ４１は、この要求に応じて、ドライバ１０６を更新するためのオブジェクトをクライアントＰＣ１０に送信する（ステップＳ６）。このオブジェクトは、ドライバ１０６のバージョンＶｅｒ＃Ａより新しいバージョンＶｅｒ＃Ｂのドライバ１０６’を構成するオブジェクトであるものとする。クライアントＰＣ１０において、インストーラ１０５は、オブジェクト配置サーバ４１から送信されたドライバ１０６’を構成するオブジェクトを、例えばストレージ５４上の所定の領域に格納する。
【００４１】
インストーラ１０５は、オブジェクト配置サーバ４１から送信されたオブジェクトに対してインストール処理を実行する（ステップＳ７）。例えば、インストーラ１０５は、圧縮されファイルに格納されてオブジェクト配置サーバ４１から送信されたオブジェクトを解凍し、解凍されたオブジェクトに対してインストール処理を実行する。例えば、インストーラ１０５は、このインストール処理によりオブジェクトからドライバ１０６’を構成し、このドライバ１０６’を既にインストールされているドライバ１０６と置き換える（ステップＳ８）。これにより、ドライバ１０６がより新しいバージョンのドライバ１０６’に更新される。
【００４２】
このように、第１の実施形態によれば、クライアントＰＣ１０にインストール済みのドライバ１０６を更新するための更新情報が、ドライバ１０６に含まれる、当該ドライバ１０６を一意に識別する識別情報に基づく特定情報に示される格納場所に格納される。したがって、インストーラ１０５は、ドライバ１０６の未知のバージョンのオブジェクトの取得およびインストールを、当該ドライバ１０６の識別情報に基づき実行することができる。
【００４３】
次に、第１の実施形態に係るドライバ１０６の更新手順について、図７のシーケンス図を用いてより詳細に説明する。なお、図７において、上述した図１〜図５と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００４４】
例えば、クライアントＰＣ１０の入力部１０１に対するユーザ操作に応じて、インストーラ１０５のＵＩ１２２に対してドライバ１０６の更新チェックが指示される（ステップＳ１００）。この指示は、ＵＩ１２２を介してドライバ情報取得部１２３に伝えられる（ステップＳ１０１）。
【００４５】
ドライバ情報取得部１２３は、この更新チェックの指示を受けて、ステップＳ１０２〜ステップＳ１０５の処理で、クライアントＰＣ１０にインストールされている全てのドライバについて、ドライバの情報を取得する。すなわち、ドライバ情報取得部１２３は、ステップＳ１０２で、クライアントＰＣ１０にインストールされている各ドライバに対してドライバ情報をそれぞれ要求する。
【００４６】
若し、ステップＳ１０２でドライバ情報が要求されたドライバが、第１の実施形態に係るＩＤを有するドライバ１０６であれば、この要求に応じて、ＩＤ送信部１３２がＩＤ格納部１３１から当該ＩＤをドライバ情報として取得する（ステップＳ１０３、ステップＳ１０４）。そして、ＩＤ送信部１３２は、取得したＩＤをドライバ情報取得部１２３に送信する（ステップＳ１０５）。
【００４７】
一例として、ドライバ情報取得部１２３とＩＤ送信部１３２とがファイルを介してＩＤの受け渡しを行う場合、ドライバ情報取得部１２３とＩＤ送信部１３２との間で、ＩＤ受け渡しを行うファイルのファイル名および格納場所を予め決めておく。ＩＤ送信部１３２は、このファイルに対してＩＤを書き込み、ドライバ情報取得部１２３は、このファイルからＩＤを読み出す。
【００４８】
一方、ステップＳ１０２でドライバ情報が要求されたドライバが、第１の実施形態に係るＩＤを有しないドライバであれば、ＩＤ送信部１３２からドライバ情報取得部１２３に対してＩＤは送信されないことになる。この場合、例えば、当該ドライバからドライバ情報取得部１２３に対して、一般的なドライバ情報が送信される。
【００４９】
ドライバ情報取得部１２３は、ステップＳ１０２〜ステップＳ１０５の処理をクライアントＰＣ１０にインストールされる全てのドライバに対して実行した結果、ＩＤが取得できたドライバを、更新対象のドライバであると判定する。これにより、クライアントＰＣ１０に例えば新旧のドライバが混在してインストールされＩＤが取得できないドライバが存在する場合であっても、第１の実施形態に係るドライバの更新を実行することが可能となる。
【００５０】
ドライバ情報取得部１２３は、ステップＳ１０２〜ステップＳ１０５の処理で取得した各ＩＤを更新情報取得部１２０１に渡し、各ＩＤに対応する更新情報の取得を更新情報取得部１２０１に要求する（ステップＳ１１０）。更新情報取得部１２０１は、この要求に応じて、ドライバ情報取得部１２３から渡された各ＩＤについて後述するステップＳ１１１およびステップＳ１１２の処理を実行し、更新情報サーバ４０から各ＩＤに対応する各更新情報を取得する。
【００５１】
ステップＳ１１０でドライバ１０６からＩＤを渡された更新情報取得部１２０１は、渡されたＩＤに基づき、当該ＩＤに対応する更新情報の格納場所を特定可能な特定情報を取得する。例えば、更新情報取得部１２０１は、予め定められた規則に従い、ＩＤに基づき特定情報を生成する。
【００５２】
ここで、ＩＤおよび特定情報について、具体例を用いて説明する。図８は、第１の実施形態に係るＩＤの例を示す。図８の例では、ＩＤは、９桁の数字による文字列として示されている。この場合、ＩＤは、例えば９桁の数字を用いた通し番号を用いることが考えられる。これに限らず、ＩＤは、ランダムに生成した文字列を用いてもよい。なお、ＩＤの桁数は９桁に限定されず、１０桁以上でもよいし、９桁未満でもよい。また、ＩＤに数字を用いる場合は、１０進数表記に限らず、例えば１６進数表記を用いてもよい。
【００５３】
図９は、第１の実施形態に係る特定情報の例を示す。図９の例では、特定情報は、ＩＤに対応する更新情報のネットワーク上での位置を示すＵＲＬが用いられている。図９において、特定情報は、ネットワーク上の「1.example.org」で特定される場所に、ファイル名「123456789.xml」というｘｍｌ(Extensible  Markup  Language)形式のファイルとして格納されていることが示されている。
【００５４】
この特定情報は、上述の図９に例示される識別情報を含んで構成される。すなわち、図９の例では、特定情報に含まれるファイル名「123456789.xml」は、先頭からピリオド「.」までの文字列（この例では文字列「123456789」）が、識別情報を示している。また、ファイル名において、ピリオド「.」から後ろの文字列「xml」がこのファイルがｘｍｌ形式であることを示す拡張子となっている。このように、特定情報を識別情報を含んだ形式とすることで、ドライバ情報取得部１２３は、識別情報から容易に特定情報を生成することができる。
【００５５】
説明は図７のステップＳ１１０に戻り、更新情報取得部１２０１は、ＩＤ送信部１３２から送信されたＩＤに基づき取得した特定情報（ＵＲＬ）に従い、更新情報サーバ４０に対して更新情報を要求する（ステップＳ１１１）。更新情報サーバ４０は、この要求に従い、特定情報で特定される格納場所に格納される更新情報を、更新情報取得部１２０１に渡す（ステップＳ１１２）。
【００５６】
図９に示したような、更新情報のファイル名を含むＵＲＬが特定情報として用いられている場合、更新情報取得部１２０１は、このＵＲＬに従い更新情報サーバ４０にアクセスして更新情報のファイルを直接的に取得することができる。
【００５７】
上述したように、各ＩＤに対応して特定情報が生成され、特定情報が更新情報の格納場所、すなわち更新情報ファイルのファイル名を直接的に示している。したがって、更新情報取得部１２０１は、更新情報サーバ４０への更新情報の要求に対し、更新情報ファイルを直接的に取得することができる。これは、更新情報ファイルのファイル名それぞれが、ドライバ１０６の更新情報要求に対するインタフェースとなっていることを意味する。そのため、この更新情報の要求に対する更新情報サーバ４０の負荷を軽減することが可能である。
【００５８】
図１０は、第１の実施形態に係る更新情報の例を示す。なお、図１０において、各行の先頭に、各行の本体とコロン（：）で区切られて記述される数字は、各行を説明するために便宜上付した行番号である。また、図１０に示される更新情報は、図８のＩＤに対応し、図９のＵＲＬに含まれるファイル名のファイルに記述される。図１０において、更新情報は、第１行目の記述により、このファイルに記述されるｘｍｌが定義され、第２行目のタグ「<softwareInfo>」および第１３行目のタグ「</softwareInfo>」で挟まれた部分に、ドライバ１０６を更新するために用いる情報が記述される。
【００５９】
第３行目は、タグ「<softwareId>」および「</softwareId>」に挟まれた部分に、この更新情報に対応するＩＤが記述される。第４行目は、タグ「<version>」および「</version>」に挟まれた部分に、この更新情報によりインストールされるドライバのバージョンが記述される。この例では、ＩＤとしてこの更新情報のファイル名と対応する値「123456789」が記述され、バージョン「1.1.0」が記述されている。第５行目は、タグ「<publishDatetime>」および「</publishDatetime>」に挟まれた部分に、この更新情報によりインストールされるドライバの公開日時が記述される。この例では、公開日時は、「年、月、日、時刻、分、秒」のフォーマットで記述されている。
【００６０】
第６行目は、タグ「<fileSize>」および「</fileSize>」に挟まれた部分に、この更新情報によりインストールされるドライバの本体であるオブジェクトのファイルサイズが記述される。
【００６１】
なお、第３行目〜第６行目の記述のうち、第４行目および第５行目の何れか一方、ならびに、第６行目の記述は、省略可能である。
【００６２】
第７行目〜第１２行目は、この更新情報によりインストールされるドライバの本体であるオブジェクトそのものが格納されるＵＲＬと、当該ドライバの各属性情報が格納されるＵＲＬとが記述される。図１０の例では、第７行目は、タグ「<url1>」および「</url1>」に挟まれた部分に、更新されるドライバの基本的な情報が格納されるファイルのＵＲＬが記述される。なお、ドライバの基本的な情報は、例えば、ドライバの種類（プリンタドライバか、スキャナドライバか、など）や、ドライバが対応する機種名を含むことができる。第８行目は、タグ「<url2>」および「</url2>」に挟まれた部分に、インストールされるドライバの本体であるオブジェクトが格納されるＵＲＬが記述される。例えば、オブジェクトは、ｚｉｐ形式で圧縮されたファイルとされている。
【００６３】
第９行目〜第１２行目は、各タグ「<url3>」および「</url3>」、タグ「<url4>」および「</url4>」、タグ「<url5>」および「</url5>」、ならびに、タグ「<url6>」および「</url6>」に挟まれた部分に、それぞれ、この更新情報によりインストールされるドライバの拡張情報が格納されるファイルのＵＲＬと、変更履歴が格納されるファイルのＵＲＬと、詳細説明が格納されるファイルのＵＲＬと、利用許諾情報が格納されるファイルのＵＲＬとが記述される。
【００６４】
なお、第７行目〜第１２行目の記述のうち、第８行目のオブジェクトが格納されるＵＲＬの記述以外は、省略可能である。また、図１０の例では、第７行目〜第１２行目に記述される各ＵＲＬは、オブジェクト配置サーバ４１のＵＲＬを含んでいる。さらに、更新情報のフォーマットは、同一のＩＤについて共通であることが好ましい。例えば、ＩＤが同一でバージョンなどが異なる更新情報に対して、共通のフォーマットが適用される。
【００６５】
説明は図７に戻り、更新情報取得部１２０１は、ステップＳ１１１およびステップＳ１１２で各ＩＤについて取得した各更新情報を、例えばストレージ５４上のキャッシュファイルを介して、ドライバ情報取得部１２３に渡す（ステップＳ１１３）。ドライバ情報取得部１２３は、更新情報取得部１２０１から渡された各更新情報をＵＩ１２２に通知する（ステップＳ１１４）。ＵＩ１２２は、ドライバ情報取得部１２３から通知された各更新情報に基づき、更新対象となるドライバを示す情報を表示部１００に通知する（ステップＳ１１５）。
【００６６】
なお、更新情報取得部１２０１は、各更新情報に基づき、クライアントＰＣ１０にインストールされている各ドライバのうち、更新対象となるドライバを選択することができる。
【００６７】
例えば、更新情報取得部１２０１は、各更新情報に含まれるＩＤ（図１０の３行目）およびバージョン情報（図１０の４行目）とを、クライアントＰＣ１０に既にインストールされている、例えばドライバ１０６のＩＤおよびバージョン情報と比較する。比較の結果、更新情報取得部１２０１は、ドライバ１０６とＩＤが一致し、且つ、更新情報に記述されるバージョンがドライバ１０６のバージョンよりも新しい場合に、更新情報が示すドライバを更新対象のドライバとして選択する。更新情報取得部１２０１は、選択した更新対象のドライバの更新情報をドライバ情報取得部１２３に渡す。
【００６８】
更新対象のドライバの選択方法は、この例に限定されない。例えば、更新情報取得部１２０１は、ＩＤが一致する更新情報およびインストール済みのドライバ１０６について、公開日時を比較してもよい。この場合、更新情報に記述される公開日時がインストール済みのドライバ１０６の公開日時よりも新しい場合に、更新情報が示すドライバを更新対象のドライバとして選択する。また、現在インストールされているドライバ１０６をインストールした際に取得した更新情報を例えばストレージ５４などにキャッシュしておき、キャッシュされた更新情報と、新たに取得された更新情報とを比較して、両者の差分に基づき更新対象のドライバを選択してもよい。
【００６９】
また、更新対象のドライバは、インストーラ１０５側で選択する例に限定されず、更新情報サーバ４０側で選択してもよい。この場合、インストーラ１０５は、クライアントＰＣ１０にインストール済みのドライバのＩＤおよびバージョン情報を更新情報サーバ４０に送信する。更新情報サーバ４０は、これらＩＤおよびバージョン情報に基づき、ＩＤが一致しバージョンがより新しいドライバの更新情報を検索し、インストーラ１０５に送信する。
【００７０】
なお、インストール済みのドライバ１０６のバージョンや公開日時の情報は、当該ドライバ１０６から直接的に取得するようにできる。これに限らず、当該ドライバ１０６をインストールした際の更新情報を、ファイルやレジストリに格納しておいてもよい。
【００７１】
表示部１００は、ＵＩ１２２から通知された情報に基づき、更新対象のドライバを示す表示画面をディスプレイ５６に表示させる。図１１は、第１の実施形態に係る、表示部１００により表示される表示画面の例を示す。図１１（ａ）の例では、表示画面３００は、領域３０１に、更新対象のドライバが対応するプリンタ名が一覧表示される。インストーラ１０５は、例えば、クライアントＰＣ１０に既にインストールされているドライバのうち、ＵＩ１２２から通知された更新情報に含まれるＩＤと一致するＩＤを有するドライバからプリンタ名を示す情報を取得し、取得した情報に基づきプリンタ名を表示させる。
【００７２】
表示画面３００において、選択入力部３０２は、領域３０１に表示されるドライバを更新するか否かを、入力部１０１に対する操作に応じて選択する。図１１（ａ）の例では、選択入力部３０２に対して「はい」を選択し、ボタン３０３を操作することで、領域３０１に表示されるドライバの更新が開始される。
【００７３】
表示画面３００は、図１１（ａ）の例に限定されない。図１１（ｂ）は、更新するドライバを選択可能とした表示画面３００’の例を示す。表示画面３００’において、領域３０１’に表示される更新対象のドライバ一覧に対し、各プリンタ名にチェックボックス３０４が付加されている。この場合、入力部１０１に対する操作によりチェックボックス３０４がチェックされたドライバに対して選択的に更新処理を実行する。
【００７４】
説明は図７に戻り、表示画面３００に対してドライバの更新操作が行われると、その旨が入力部１０１からＵＩ１２２に通知される（ステップＳ１２０）。ＵＩ１２２は、更新対象となるドライバの更新情報をオブジェクト取得部１２０２に渡し、オブジェクト取得部１２０２に対してドライバの更新を指示する（ステップＳ１２１）。
【００７５】
オブジェクト取得部１２０２は、ＵＩ１２２から渡された更新情報に基づき、オブジェクト配置サーバ４１に対してオブジェクトの取得要求を送信する（ステップＳ１２２）。オブジェクト配置サーバ４１は、この要求に応じて、オブジェクトを送信する。オブジェクト配置サーバ４１から送信されたオブジェクトは、オブジェクト取得部１２０２に取得される（ステップＳ１２３）。オブジェクト取得部１２０２は、ＵＩ１２２から複数の更新情報を渡された場合は、これら複数の更新情報それぞれについて取得要求を送信し、更新情報それぞれのオブジェクトを取得する。
【００７６】
より具体的には、オブジェクト取得部１２０２は、ＵＩ１２２から渡された更新情報に含まれる、インストールされるドライバの本体であるオブジェクトが格納されるＵＲＬの記述（図１０の第８行目）に従い、オブジェクト配置サーバ４１にアクセスして当該ＵＲＬからオブジェクトを取得する。
【００７７】
オブジェクト取得部１２０２は、オブジェクト配置サーバ４１から取得したオブジェクトを、更新情報に含まれるＩＤと関連付けて、例えばストレージ５４に一時的に格納する。
【００７８】
オブジェクト取得部１２０２は、ドライバインストール部１２１に対して、オブジェクト配置サーバ４１から取得したオブジェクトのインストールを指示する（ステップＳ１２４）。ドライバインストール部１２１は、この指示に応じて、オブジェクト配置サーバ４１から取得したオブジェクトのインストール処理を開始する（ステップＳ１２５）。ドライバインストール部１２１は、オブジェクトが圧縮ファイルとされている場合、圧縮ファイルを解凍してインストール処理を実行する。ドライバインストール部１２１は、オブジェクト取得部１２０２が複数の更新情報を取得している場合、オブジェクトに関連付けられたＩＤに基づき、これら複数の更新情報それぞれに対応するオブジェクトについてインストール処理を実行する。
【００７９】
ドライバインストール部１２１は、全てのオブジェクトについてインストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ１２６）。ＵＩ１２２は、ドライバのインストールが完了した旨を示すインストール完了画面を表示させるよう、表示部１００に指示する（ステップＳ１２７）。表示部１００は、この指示に従い、インストールが完了した旨をディスプレイ５６に表示させる。
【００８０】
図１２は、第１の実施形態に係る、表示部１００によりディスプレイ５６に表示されるインストール完了画面の例を示す。図１２において、インストール完了画面３１０は、領域３１１に、インストールが実行され更新されたドライバ（この例ではドライバが対応するプリンタ名）の一覧が表示される。
【００８１】
このように、第１の実施形態によれば、インストーラ１０５は、クライアントＰＣ１０にインストールされるドライバ１０６が含む識別情報（ＩＤ）に基づく特定情報（例えばＵＲＬ）に従い、ドライバ１０６の更新に用いるオブジェクトのＵＲＬを含む更新情報を取得するようにしている。したがって、インストーラ１０５は、ドライバ１０６が含む識別情報に基づく特定情報で特定される格納場所に格納される更新情報が、ドライバ１０６のインストール時には未知であるドライバのものであっても、この未知のドライバをクライアントＰＣ１０にインストールすることができる。
【００８２】
ここで、第１の実施形態に適用可能なＩＤの例について説明する。上述したように、ＩＤは、そのＩＤにより識別されるドライバ１０６を更新可能なドライバプログラムを特定するための情報群に対して一意の値を取る。
【００８３】
図１３を用いて、各実施形態に係るＩＤの例について説明する。図１３において、ドライバ１０６を更新可能なドライバプログラムを特定するための情報群に含まれる各情報の例として、「モデル」、「機種」、「ＰｎＰＩＤ」、「ＯＳ(Operating  System)」、「プログラム種別」および「言語」の各項目の情報が示されている。また、図１３の例では、各情報は、左側の項目を上位、右側の項目を下位として階層的に構成され、各情報をノードとする木構造により、互いに関連付けられる。
【００８４】
図１３に示される各項目のうち、項目「モデル」および項目「機種」は、ドライバ１０６が制御対象とするハードウェアを特定するための情報を示す。図１３の例では、項目「モデル」における１つのモデル「Ｍｏｄｅｌ１２３」に対して、複数の機種「Ｔｙｐｅ０１」、「Ｔｙｐｅ０２」、…が関連付けられている。
【００８５】
項目「ＰｎＰＩＤ」は、ハードウェアに対応付けられるＰｎＰＩＤを示す。図１３の例では、モデル「Ｍｏｄｅｌ１２３」および機種「Ｔｙｐｅ０１」で特定される情報に対して複数のＰｎＰＩＤ「０ｘ１２３４ａｂｃｄ」、「０ｘ３４６２ｂ１ｅｆ」、…が関連付けられている。
【００８６】
項目「ＯＳ」は、ドライバ１０６が対応するＯＳを示す。図１３の例では、項目「ＯＳ」は、さらに、項目「バージョン（ｖｅｒ）」と、項目「バージョン」に対して下位の項目「動作ビット（ｂｉｔ）」とを含み、各バージョンが動作ビット「３２ｂｉｔ」および「６４ｂｉｔ」をそれぞれ含むことが示されている。図１３の例では、モデル「Ｍｏｄｅｌ１２３」、機種「Ｔｙｐｅ０１」およびＰｎＰＩＤ「０ｘ１２３４ａｂｃｄ」で特定される情報に対して、複数のＯＳ「ＷＸＯＳ」、「Ｗ７ＯＳ」、…が関連付けられている。
【００８７】
項目「プログラム種別」は、ドライバ１０６の機能を示す。例えば、項目「プログラム種別」は、ドライバ１０６の制御対象がプリンタ機能およびスキャナ機能のうち何れであるかを示す。また、項目「プログラム種別」は、ドライバ１０６がこれらプリンタ機能やスキャナ機能において細分化される何れの機能に対応するかをさらに示すことができる。一例として、項目「プログラム種別」は、プリンタ機能において対応するＰＤＬ(Page  Description  Language)の種類を示すことができる。
【００８８】
図１３において最下層の項目「言語」は、上位の項目「プログラム種別」に示される機能に対して適用される言語（ＪＰ、ＥＮ、…）を示す。
【００８９】
このような構成において、各実施形態では、木構造における葉ノードのそれぞれに一意にＩＤを関連付ける。これにより、葉ノードから順次親ノードを辿った各ノードによる情報を含む情報群に対して一意にＩＤが関連付けられる。
【００９０】
図１３の例では、モデル「Ｍｏｄｅｌ１２３」、機種「Ｔｙｐｅ０１」、ＰｎＰＩＤ「０ｘ１２３４ａｂｃｄ」、ＯＳバージョン「ＷＸＯＳ」、ＯＳ動作ビット「３２ｂｉｔ」、プログラム種別「ＰＤＬ＃Ａ」および言語「ＪＰ」からなる情報群に対して、ＩＤ「ＩＤ＃１」が一意に関連付けられる。また例えば、モデル「Ｍｏｄｅｌ１２３」、機種「Ｔｙｐｅ０１」、ＰｎＰＩＤ「０ｘ１２３４ａｂｃｄ」、ＯＳバージョン「ＷＸＯＳ」、ＯＳ動作ビット「３２ｂｉｔ」、プログラム種別「ＴＷＡＩＮ＃Ａ」および言語「ＥＮ」からなる情報群に対して、ＩＤ「ＩＤ＃ｌ＋１」が一意に関連付けられる。さらに例えば、モデル「Ｍｏｄｅｌ１２３」、機種「Ｔｙｐｅ０１」、ＰｎＰＩＤ「０ｘ１２３４ａｂｃｄ」、ＯＳバージョン「Ｗ７ＯＳ」、ＯＳ動作ビット「３２ｂｉｔ」、プログラム種別「ＰＤＬ＃Ｂ」および言語「ＪＰ」からなる情報群に対して、ＩＤ「ＩＤ＃ｎ」が一意に関連付けられる。
【００９１】
図１４は、各実施形態に適用可能な更新情報の管理方法の例を示す。各実施形態では、特定情報が示す更新情報のファイルは、更新情報サーバ４０において、図１４（ａ）に示されるように、全てベースフォルダの直下に格納する。なお、ベースフォルダは、例えばＵＲＬ「https://1.example.org/」に対応するものとする。
【００９２】
更新情報の管理方法は、図１４（ａ）の例に限定されない。例えば、図１４（ｂ）に示されるように、更新情報サーバ４０において、特定情報が示す更新情報ファイルを複数のフォルダに分けて格納することで、更新情報の管理を行うことができる。上述したように、特定情報は、ＩＤと対応して設定され、ＩＤは、複数の項目の情報を含む情報群に対して一意に設定される。そのため、特定情報が示す更新情報ファイルの数が膨大となることが予測される。このように、更新情報の各ファイルを、複数のフォルダに分散させて格納することで、更新情報の管理が容易となる。
【００９３】
各フォルダのフォルダ名は、フォルダに格納される各ファイルのファイル名の共通する文字列を用いることが考えられる。例えば、各更新情報ファイルについて、ファイル名を構成するｎ桁の文字列（ピリオドおよび拡張子を除く）の先頭からｍ桁（ｍ＜ｎ）が共通するファイルを集めて、当該ｍ桁の文字列をフォルダ名とするフォルダに格納する。図１４（ｂ）の例では、９桁の数字による文字列からなるファイル名（ピリオドおよび拡張子を除く）の、先頭から４桁が共通するファイルを、当該先頭から４桁の数字による文字列からなるフォルダ名のフォルダに格納している。この図１４（ｂ）の管理方法の場合、更新情報を特定するための特定情報は、図１４（ｃ）に例示されるように、ファイル名とフォルダ名とを含んだ情報となる。
【００９４】
なお、上述では、更新情報サーバ４０は、特定情報が更新情報ファイルのファイル名を直接的に示し、更新情報サーバ４０に対する問い合わせのインタフェースを更新情報ファイル数分、持っているように説明したが、これはこの例に限定されない。例えば、更新情報サーバ４０は、図１３で説明したＩＤの木構造をテーブルとして持ち、木構造の各ノードに対応する情報に基づきＩＤを検索する構成とすることも可能である。
【００９５】
この場合、インストーラ１０５は、例えば、木構造の各ノードに対応する情報を引数として更新情報サーバ４０に渡し、更新情報サーバ４０は、この引数に基づきテーブルを参照してＩＤを検索する。図１５は、この場合の特定情報の例を示す。図１５において、「https://1.example.org/hoge/」の部分がインタフェース（Ｉ／Ｆ）部分であり、「/hoge/」の後ろが引数部分となる。すなわち、インストーラ１０５は、「https://1.example.org/hoge/」の部分を共通のインタフェースとして更新情報サーバ４０にアクセスし、引数部分を更新情報サーバ４０に渡して問い合わせを行う。なお、「/hoge/」の部分は、問い合わせの目的に応じた値が用いられる。
【００９６】
この図１５に示す構成の場合、更新情報サーバ４０は、特定情報に含まれる各引数に基づき検索を行うことになる。一方、上述した図１４（ａ）および図１４（ｂ）に示す、ＩＤ毎の特定情報を持つ例では、特定情報により直接的にＩＤを取得することができる。したがって、図１５に示す構成は、図１４（ａ）および図１４（ｂ）に示す構成と比較してデータベースの負荷が高くなると考えられる。
【００９７】
より具体的には、第１の実施形態では、図１３を用いて説明したように、木構造の葉ノード毎に一意にＩＤが対応付けられるため、ノードの階層が多くなると、ＩＤすなわちドライバ種類の数が膨大となることが予測される。このような膨大なＩＤを更新情報サーバ４０から検索する場合、更新情報サーバ４０は、図１５で説明した各ＩＤでインタフェースを共通とする構成よりも、上述した図１４（ａ）および図１４（ｂ）に示すＩＤ毎にインタフェースを持つ構成とした方が、負荷がより小さくなり好ましい。
【００９８】
例えば、ドライバ１０６をクライアントＰＣ１０にインストールする際には、インストーラ１０５は、ドライバ１０６の制御対象や、ドライバ１０６の動作環境（ＯＳバージョンなど）に応じて適切なドライバプログラムを決定する必要がある。この場合には、この引数に基づきテーブルを参照してＩＤを検索する方法が適している。
【００９９】
（第１の実施形態の変形例）
次に、第１の実施形態の変形例について説明する。上述した第１の実施形態では、インストーラ１０５（ドライバ情報取得部１２３）は、ドライバ１０６の更新チェックに用いるドライバ１０６の情報を、ドライバ１０６（ＩＤ格納部１３１）から取得していた。これに対して、第１の実施形態の変形例では、インストーラ１０５は、ドライバ１０６の更新チェックに用いるドライバ情報を、クライアントＰＣ１０内の所定の記憶領域から取得する。
【０１００】
第１の実施形態の変形例では、インストーラ１０５は、インストールを行うドライバ１０６のドライバ情報を、当該ドライバ１０６のクライアントＰＣ１０へのインストール時に、当該クライアントＰＣ１０が有するストレージ５４内の所定の記憶領域に格納する。インストーラ１０５がドライバ情報を格納する所定の記憶領域としては、例えばクライアントＰＣ１０のＯＳが管理する管理領域を用いることができる。ＯＳがＷｉｎｄｏｗｓ（登録商標）であれば、このＯＳ管理領域は、レジストリを適用可能である。ＯＳ管理領域へのアクセスは、ＯＳを介して行われる。これに限らず、ドライバ情報を、クライアントＰＣ１０のストレージ５４内に所定のフォルダを作成し、このフォルダに格納してもよい。
【０１０１】
図１６は、第１の実施形態の変形例に係るドライバ１０６のインストール手順の例を示すシーケンス図である。なお、図１６において、上述した図１〜図４と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１０２】
図１６において、ドライバパッケージ１０６０は、ドライバ１０６をインストールするためのデータが格納されるファイルである。ドライバパッケージ１０６０は、例えば、ドライバ１０６のプログラムファイル（オブジェクト）と、ドライバ１０６のインストールに用いるドライバ情報が記述されたファイルとが格納される。ドライバ情報は、例えば、このドライバパッケージ１０６０によりインストールされるドライバ１０６のＩＤと、当該ドライバ１０６に付された名称とを含む。
【０１０３】
インストーラ１０５は、ドライバパッケージ１０６０から各ファイルを取り出して、ドライバ１０６のインストールを行う。クライアントＰＣ１０は、ドライバパッケージ１０６０を、ネットワーク３０を介してサーバなどから取得してもよいし、ドライバパッケージ１０６０が記録されたＣＤ(Compact  Disk)やＤＶＤ(Digital  Versatile  Disk)といった記録媒体から取得してもよい。
【０１０４】
図１６の処理に先立って、クライアントＰＣ１０は、ドライバパッケージ１０６０を取得してストレージ５４に格納しているものとする。例えば、クライアントＰＣ１０の入力部１０１に対するユーザ操作に応じて、インストーラ１０５のＵＩ１２２に対してドライバ１０６のインストールが指示される（ステップＳ２００）。ＵＩ１２２は、この指示をドライバ情報取得部１２３に伝えると共に、ドライバ情報取得部１２３に対してドライバ情報の取得を要求する（ステップＳ２０１）。
【０１０５】
ドライバ情報取得部１２３は、ＵＩ１２２からのドライバ情報取得要求に応じて、ドライバパッケージ１０６０からドライバ情報を取得する（ステップＳ２０２、ステップＳ２０３）。ドライバ情報取得部１２３は、取得したドライバ情報を記憶部１０４に渡し、記憶部１０４に対して、渡したドライバ情報の書き込みを要求する（ステップＳ２０４）。記憶部１０４は、この要求に応じて、ドライバ情報取得部１２３から渡されたドライバ情報を、ＯＳの管理領域（例えばレジストリ）に書き込む（ステップＳ２０５）。例えば、記憶部１０４は、クライアントＰＣ１０のＯＳに対して、ドライバ情報のＯＳ管理領域への書き込みを依頼する。
【０１０６】
図１７は、第１の実施形態の変形例に係る、ＯＳ管理領域２００に書き込まれたドライバ情報の例を示す。この例では、ドライバ情報に含まれる、ドライバ１０６のＩＤが、例えばドライバ１０６の種別を示す情報（この例では「プリンタＡ」、「プリンタＢ」）と関連付けられて、ＯＳ管理領域２００に書き込まれている。ＯＳ管理領域２００に対して、ドライバ情報に含まれる他の情報を、さらにＩＤに関連付けて書き込むようにしてもよい。なお、ＯＳ管理領域２００は、インストーラ１０５が対応可能なドライバ以外のドライバのドライバ情報を書き込むことができる。
【０１０７】
ドライバ情報取得部１２３は、ステップＳ２０４のドライバ情報書き込み要求の後、ドライバインストール部１２１に対してドライバのインストールを指示する（ステップＳ２０６）。ドライバインストール部１２１は、ドライバパッケージ１０６０から各ファイルを取り出して、ドライバ１０６のインストール処理を行う（ステップＳ２０７）。ドライバインストール部１２１は、ドライバ１０６のインストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ２０８）。ＵＩ１２２は、インストール完了通知を表示させるよう、表示部１００に指示する（ステップＳ２０９）。表示部１００は、この指示に従い、インストールが完了した旨をディスプレイ５６に表示させる。
【０１０８】
図１８は、第１の実施形態の変形例に係る、ドライバ１０６の更新手順の例を示すシーケンス図である。なお、図１８において、上述した図１〜図４と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１０９】
例えば、クライアントＰＣ１０の入力部１０１に対するユーザ操作に応じて、インストーラ１０５のＵＩ１２２に対してドライバ１０６の更新チェックが指示される（ステップＳ２２０）。この指示は、ＵＩ１２２からドライバ情報取得部１２３に伝えられる（ステップＳ２２１）。
【０１１０】
ドライバ情報取得部１２３は、この更新チェックの指示を受けて、記憶部１０４に対してドライバ情報の取得を要求する（ステップＳ２２２）。記憶部１０４は、この要求に応じて、ＯＳ管理領域２００から、ＩＤとドライバの種別を示す情報とが関連付けられて書き込まれた全てのドライバ情報を取得する。記憶部１０４は、取得したドライバ情報をドライバ情報取得部１２３に渡す（ステップＳ２２３）。
【０１１１】
ドライバ情報取得部１２３は、記憶部１０４から渡されたドライバ情報から、インストーラ１０５が対応可能なドライバ１０６のドライバ情報を選択する。例えば、ドライバ情報取得部１２３は、ドライバ情報に含まれるＩＤに基づき、当該ドライバ情報が、インストーラ１０５が対応可能なドライバ１０６であるか否かを判別する。判別は、例えば、ドライバ情報から、上述した所定のフォーマットに従ったＩＤが取得できたか否かで行う。
【０１１２】
以降の処理は、上述した、図７のステップＳ１１０以降の処理と略同様である。例えばドライバ情報取得部１２３は、ステップＳ２２２およびステップＳ２２３の処理で取得した各ＩＤを更新情報取得部１２０１に渡し、各ＩＤに対応する更新情報の取得を更新情報取得部１２０１に要求する（ステップＳ２２４）。更新情報取得部１２０１は、ドライバ情報取得部１２３から渡されたＩＤに基づき、上述した特定情報を生成する。更新情報取得部１２０１は、生成した特定情報に従い、更新情報サーバ４０に対して更新情報を要求し（ステップＳ２２５）、要求に応じて更新情報サーバ４０から送信された更新情報を取得する（ステップＳ２２６）。
【０１１３】
各ＩＤについて取得された各更新情報は、更新情報取得部１２０１からドライバ情報取得部１２３を介してＵＩ１２２に渡される（ステップＳ２２７、ステップＳ２２８）。なお、この場合においても、更新情報取得部１２０１は、各更新情報に基づき、クライアントＰＣ１０にインストールされている各ドライバのうち、更新対象となるドライバを選択することができる。ＵＩ１２２は、渡された各更新情報に基づき、更新対象となるドライバを示す情報を表示部１００に通知する（ステップＳ２２９）。
【０１１４】
表示部１００は、ＵＩ１２２から通知された情報に基づき、更新対象のドライバを示す表示画面３００（図１１（ａ）参照）をディスプレイ５６に表示させる。このとき、表示部１００は、図１１（ｂ）に示したような、更新するドライバを選択可能な表示画面３００’を表示させてもよい。
【０１１５】
表示画面３００に対するドライバの更新操作が入力部１０１からＵＩ１２２に通知される（ステップＳ２３０）。ＵＩ１２２は、更新対象となるドライバの更新情報をオブジェクト取得部１２０２に渡し、オブジェクト取得部１２０２に対してドライバの更新を指示する（ステップＳ２３１）。
【０１１６】
オブジェクト取得部１２０２は、ＵＩ１２２から渡された更新情報に基づき、オブジェクト配置サーバ４１に対してオブジェクトの取得要求を送信し（ステップＳ２３２）、この要求に応じてオブジェクト配置サーバ４１から送信されたオブジェクトを取得する（ステップＳ２３３）。
【０１１７】
オブジェクト取得部１２０２は、取得したオブジェクトのインストールを、ドライバインストール部１２１に指示する（ステップＳ２３４）。ドライバインストール部１２１は、この指示に応じて、オブジェクト配置サーバ４１から取得したオブジェクトのインストール処理を実行し（ステップＳ２３５）、インストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ２３６）。ＵＩ１２２は、この通知に応じて、ドライバのインストールが完了した旨を示すインストール完了画面を表示させるよう、表示部１００に指示する（ステップＳ２３７）。表示部１００は、この指示に従い、インストールが完了した旨を示すインストール完了画面３１０（図１２参照）をディスプレイ５６に表示させる。
【０１１８】
（第２の実施形態）
次に、第２の実施形態について説明する。上述した第１の実施形態では、クライアントＰＣ１０に１種類のドライバ１０６がインストールされているものとして説明したが、実際には、クライアントＰＣ１０には、複数種類のドライバがインストールされている場合が多い。ここで、ドライバの種類は、クライアントＰＣ１０に対するドライバのインストール方法に応じたものであるとする。例えば、プリンタ装置とスキャナ装置とでは、ドライバの構造が異なり、インストール方法も異なる。
【０１１９】
さらに、クライアントＰＣ１０には、アプリケーションプログラムもインストールされる。アプリケーションプログラムは、ドライバに付随してインストールされる場合もあるし、単独でインストールされる場合もある。なお、アプリケーションプログラムは、比較的狭い範囲の仕事を想定して、ユーザの特定の要求に近接して作成されたプログラムであって、一般的には、プリンタやスキャナといった、クライアントＰＣ１０に対する外部装置の直接的な制御は、行わない。アプリケーションプログラムは、インストール方法が各ドライバとは異なる。
【０１２０】
この第２の実施形態では、このインストール方法が異なる複数種類のドライバおよびアプリケーションプログラムがクライアントＰＣ１０にインストールされている場合の、プログラム（ドライバプログラムおよびアプリケーションプログラム）の更新方法について説明する。
【０１２１】
図１９は、第２の実施形態に適用可能な情報処理システムの一例の構成を示す。なお、図１９において、上述した図１と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１２２】
図１９において、ネットワーク２２に対して、画像形成装置２０ｃとして、プリンタ機能２００およびスキャナ機能２０１を含む複数の機能を有するＭＦＰ(Multi  Function  Printer)が接続されている。クライアントＰＣ１０は、画像形成装置２０ｃとネットワーク２２を介して通信を行い、画像形成装置２０ｃに対してプリンタ機能２００により印刷を実行させることもできるし、スキャナ機能２０１により原稿を読み取った画像データを取得することもできる。また、クライアントＰＣ１０は、プリンタ機能２００により印刷を行うための印刷データの生成、編集や、スキャナ機能２０１により取得した画像データの加工などの各種のデータ処理を実行することもできる。
【０１２３】
図２０は、第２の実施形態に係るクライアントＰＣ１０の機能を説明するための一例の機能ブロック図である。なお、図２０において、上述した図３と共通する部分には同一の符号を付して、詳細な説明を省略する。また、第２の実施形態に係るクライアントＰＣ１０は、ハードウェア構成としては、第１の実施形態において図２を用いて説明した構成をそのまま適用できるので、ここでの説明を省略する。
【０１２４】
図２０において、クライアントＰＣ１０は、ドライバとして、プリンタ機能２００を制御するためのプリンタドライバ１０６ａと、スキャナ機能２０１を制御するためのスキャナドライバ１０６ｂとを有する。
【０１２５】
また、クライアントＰＣ１０は、アプリケーションプログラム１０６ｃを含むことができる。アプリケーションプログラム１０６ｃは、データに所定のデータ処理を施す。例えば、アプリケーションプログラム１０６ｃは、データに処理を施して印刷データを生成し、生成した印刷データをプリンタドライバ１０６ａに渡す。プリンタドライバ１０６ａは、アプリケーションプログラム１０６ｃから渡された印刷データに従いプリンタ機能２００を制御する。また例えば、アプリケーションプログラム１０６ｃは、スキャナドライバ１０６ｂに対して指示を出してスキャナ機能２０１を制御させて画像データを取得し、取得した画像データに画像処理を施すことができる。アプリケーションプログラム１０６ｃの機能は、これらに限られない。
【０１２６】
インストーラ１０５’は、これらの、インストール方法が異なるプリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃをインストール可能とされている。
【０１２７】
ここで、インストーラ１０５’が実行するインストール処理および更新処理について、概略的に説明する。なお、以下では、特に説明のない限り、インストール処理および更新処理を、インストール処理で代表させて説明する。
【０１２８】
インストール処理は、インストール対象のプログラムの種別に応じて、ＯＳにより予め定められた手順に従い実行される。そのため、プログラムの種別毎に専用のインストーラを用意する必要がある。例えば、ドライバプログラムとアプリケーションプログラムとでは、インストール方法が異なる。また、制御対象の機種の種別が互いに異なるドライバプログラムであるプリンタドライバとスキャナドライバとでは、ＯＳに定められるインストール方法が異なる。したがって、アプリケーションプログラム、プリンタドライバおよびスキャナドライバは、それぞれ専用のインストーラが用意される。
【０１２９】
図２１は、第２の実施形態に係るインストーラ１０５’の一例の構成を示す。なお、図２１において、上述した図４と共通する部分には同一の符号を付して、詳細な説明を省略する。図２１において、インストーラ１０５’は、通信部１２０と、プログラムインストール部１２１５と、ＵＩ１２２と、プログラム情報取得部１２３０と、インストーラ判別部１２４とを含む。また、プログラムインストール部１２１５は、プログラム種別毎のインストールを実行するためのプリンタ部１２１０と、スキャナ部１２１１と、アプリケーションプログラム部１２１２とを含む。プリンタ部１２１０は、プリンタドライバ１０６ａのインストールを実行する。スキャナ部１２１１は、スキャナドライバ１０６ｂのインストールを実行する。また、アプリケーションプログラム部１２１２は、アプリケーションプログラム１０６ｃのインストールを実行する。
【０１３０】
プログラム情報取得部１２３０は、クライアントＰＣ１０にインストールされているインストールパッケージから、プログラム情報を取得する。プログラム情報は、上述したドライバ情報に対応するもので、少なくともプログラムの識別情報（ＩＤ）を含む。プログラム情報は、プログラムの種別を示す情報をさらに含んでもよい。インストーラ判別部１２４は、プログラムのインストール時に、プログラムインストール部１２１５に含まれるプリンタ部１２１０、スキャナ部１２１１およびアプリケーションプログラム部１２１２のうち何れを用いるかを判別する。
【０１３１】
インストーラ１０５’は、プログラムインストールの指示に応じて、インストール対象のプログラムが格納されるインストールパッケージからプログラム情報およびメタデータを取得して、インストール可能なプログラムの一覧を作成する。インストーラ１０５’は、インストール対象のプログラム種別に応じたインストール処理を実行する。
【０１３２】
より詳細には、インストーラ１０５’は、インストーラ判別部１２４により、取得したプログラム情報に基づきインストール対象のプログラム種別を判別する。そして、インストーラ１０５’は、インストーラ判別部１２４の判別結果に応じて、プログラムインストール部１２１５に含まれるプリンタ部１２１０、スキャナ部１２１１およびアプリケーションプログラム部１２１２から、インストール対象のプログラム種別に応じたものを選択して、インストール処理を実行する。
【０１３３】
プリンタ部１２１０、スキャナ部１２１１およびアプリケーションプログラム部１２１２それぞれによるインストール処理について、概略的に説明する。
【０１３４】
プリンタ部１２１０は、クライアントＰＣ１０に対するプリンタドライバのインストールを実行する。プリンタ部１２１０が実行するプリンタドライバのインストール処理は、プリンタドライバを構成する各ファイルを、クライアントＰＣ１０上にＯＳが定めたフォルダに格納する処理と、印刷ポートの設定と、論理プリンタキューの作成と、ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合にはレジストリの初期設定とを含む。なお、論理プリンタキューの作成処理は、例えばインストールされるプリンタドライバに対応するプリンタを示すアイコンの作成処理を含む。
【０１３５】
スキャナ部１２１１は、クライアントＰＣ１０に対するスキャナドライバのインストールを実行する。スキャナ部１２１１が実行するスキャナドライバのインストール処理は、スキャナドライバを構成する各ファイルを、クライアントＰＣ１０上にＯＳが定めたフォルダに格納する処理と、スキャンポートの設定処理とを含む。
【０１３６】
アプリケーションプログラム部１２１２は、アプリケーションプログラムのインストールを実行する。アプリケーションプログラム部１２１２が実行するアプリケーションプログラムのインストール処理は、アプリケーションプログラムを構成する各ファイルを、クライアントＰＣ１０上に作成した所定のフォルダに格納する処理と、ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合にはレジストリの初期設定およびスタートメニューへの登録とを含む。
【０１３７】
なお、アプリケーションプログラムの構成ファイルの格納フォルダは、ＯＳにより用意されたフォルダ（ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合フォルダ「Program  Files」）を用いることができる。これに限らず、クライアントＰＣ１０に作成した任意のフォルダに構成ファイルを格納してもよい。
【０１３８】
インストーラ１０５’が対応可能なアプリケーションプログラムとしては、プロジェクションアプリケーション、電子黒板ビューア、ＭＦＰ制御アプリケーションなどが考えられる。これらのうち、プロジェクションアプリケーションは、プロジェクタ装置へのクライアントＰＣ１０の表示画面の投射や、クライアントＰＣ１０からプロジェクタ装置の設定を行うアプリケーションプログラムである。また、電子黒板ビューアは、タッチパネルを用いた描画を可能とした電子黒板にユーザが操作を行うことで生成した画像などのクライアントＰＣ１０での閲覧や、クライアントＰＣ１０から電子黒板に対する設定を行うためのアプリケーションプログラムである。また、ＭＦＰ制御アプリケーションは、ＭＦＰなどの画像形成装置の操作をクライアントＰＣ１０上で行うためのアプリケーションプログラムである。
【０１３９】
さらに、インストーラ１０５’が対応可能なアプリケーションプログラムとして、クラウドストレージを利用するためのアプリケーションプログラムや、ＭＦＰといった画像形成装置や、プロジェクタ装置といった機器の、ＷｉＦｉ（登録商標）などの無線通信の設定を行う設定ツールが考えられる。
【０１４０】
図２２は、第２の実施形態に係るプリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃのインストール手順の例を示すシーケンス図である。なお、図２２において、上述した図１、図２、図２０および図２１と共通する部分には同一の符号を付して、詳細な説明を省略する。以下では、適宜、プリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃを、「プログラム」として代表させて記述する。
【０１４１】
図２２において、インストールパッケージ１０６１は、プログラムをインストールするためのデータが格納されるファイルであって、プログラムを構成する各ファイル（オブジェクト）と、プログラムのインストールに用いるプログラム情報が記述されたファイルとが格納される。インストールパッケージ１０６１の例として、プリンタドライバ１０６ａまたはスキャナドライバ１０６ｂが格納されるドライバパッケージや、アプリケーションプログラム１０６ｃが格納されるアプリケーションパッケージがある。
【０１４２】
プログラム情報は、例えば、このインストールパッケージ１０６１によりインストールされるプログラムのＩＤと、当該プログラムに付された名称と、当該プログラムのクラス（ｃｌａｓｓ）情報とを含む。クラス情報は、例えば、当該プログラムの種別を示す種別情報である。当該プログラムがプリンタドライバ１０６ａやスキャナドライバ１０６ｂといったドライバプログラムの場合、クラス情報は、当該プログラムの制御対象を識別するために用いることができる。この場合のより具体的な例として、クラス情報は、そのドライバの制御対象がプリンタおよびスキャナの何れであるかを示す。
【０１４３】
図２２の処理に先立って、クライアントＰＣ１０は、インストールパッケージ１０６１を、ネットワーク３０や、ＣＤ、ＤＶＤなどの記録媒体を介して取得し、ストレージ５４に格納しているものとする。例えば、クライアントＰＣ１０の入力部１０１に対するユーザ操作に応じて、インストーラ１０５’のＵＩ１２２に対してプログラムのインストールが指示される（ステップＳ３００）。ＵＩ１２２は、この指示をインストーラ判別部１２４に伝える（ステップＳ３０１）。インストーラ判別部１２４は、この指示に応じて、プログラム情報取得部１２３０に対してプログラム情報の取得を要求する（ステップＳ３０２）。
【０１４４】
プログラム情報取得部１２３０は、ＵＩ１２２からのプログラム情報取得要求に応じて、インストールパッケージ１０６１からプログラム情報を取得する（ステップＳ３０３、ステップＳ３０４）。プログラム情報取得部１２３０は、取得したプログラム情報を記憶部１０４に渡し、記憶部１０４に対して、渡したプログラム情報の書き込みを要求する（ステップＳ３０５）。記憶部１０４は、この要求に応じて、プログラム情報取得部１２３０から渡されたプログラム情報を、ＯＳ管理領域２００に書き込む（ステップＳ３０６）。
【０１４５】
図２３は、第２の実施形態に係る、ＯＳ管理領域２００に書き込まれたプログラム情報の例を示す。この例では、プログラム情報に含まれる、プログラムのＩＤと、プログラムのクラス情報（プリンタ、スキャナまたはアプリケーションプログラム）と、プログラムの名称とが関連付けられて、ＯＳ管理領域２００に書き込まれている。図２３の例では、クラス情報は、プログラム種別として記載されている。
【０１４６】
また、プログラム情報取得部１２３０は、ステップＳ３０３およびステップＳ３０４で取得したプログラム情報をインストーラ判別部１２４に渡す（ステップＳ３０７）。インストーラ判別部１２４は、プログラム情報取得部１２３０から渡されたプログラム情報に含まれるクラス情報に基づき、インストールパッケージ１０６１によりインストールされるプログラムの種別を判別する（ステップＳ３０８）。
【０１４７】
ステップＳ３０８で、インストーラ判別部１２４により、インストールパッケージ１０６１によりインストールされるプログラムがプリンタドライバ１０６ａであると判別された場合、ステップＳ３０００の処理が行われ、プリンタドライバ１０６ａのインストールが実行される。ステップＳ３０８で、インストールされるプログラムがスキャナドライバ１０６ｂであると判別された場合、ステップＳ３００１の処理が行われ、スキャナドライバ１０６ｂのインストールが実行される。また、ステップＳ３０８で、インストールされるプログラムがアプリケーションプログラム１０６ｃであると判別された場合、ステップＳ３００２の処理が行われ、アプリケーションプログラム１０６ｃのインストールが実行される。
【０１４８】
ステップＳ３０００において、インストーラ判別部１２４は、プログラムインストール部１２１０におけるプリンタ部１２１０に対してインストールパッケージ１０６１によるプログラムのインストールを指示する（ステップＳ３１０）。プリンタ部１２１０は、インストールパッケージ１０６１から各ファイルを取り出して、プリンタドライバ１０６ａのインストール処理を行う（ステップＳ３１１）。プリンタ部１２１０は、プリンタドライバ１０６ａのインストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３１２）。
【０１４９】
ステップＳ３００１において、インストーラ判別部１２４は、スキャナ部１２１１に対してインストールパッケージ１０６１によるプログラムのインストールを指示する（ステップＳ３１０’）。スキャナ部１２１１は、インストールパッケージ１０６１から各ファイルを取り出して、スキャナドライバ１０６ｂのインストール処理を行う（ステップＳ３１１’）。スキャナ部１２１１は、スキャナドライバ１０６ｂのインストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３１２’）。
【０１５０】
また、ステップＳ３００２において、インストーラ判別部１２４は、アプリケーションプログラム部１２１２に対してインストールパッケージ１０６１によるプログラムのインストールを指示する（ステップＳ３１０”）。アプリケーションプログラム部１２１２は、インストールパッケージ１０６１から各ファイルを取り出して、アプリケーションプログラム１０６ｃのインストール処理を行う（ステップＳ３１１”）。アプリケーションプログラム部１２１２は、アプリケーションプログラム１０６ｃのインストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３１２”）。
【０１５１】
ＵＩ１２２は、プログラムインストール部１２１５のプリンタ部１２１０、スキャナ部１２１１またはアプリケーションプログラム部１２１２からインストール処理の完了が通知されると、その旨を表示させるよう、表示部１００に指示する（ステップＳ３１３）。表示部１００は、この指示に従い、インストールが完了した旨をディスプレイ５６に表示させる。
【０１５２】
図２４は、第２の実施形態に係る、プログラムの更新手順の例を示すシーケンス図である。なお、図２４において、上述した図１、図２、図２０および図２１と共通する部分には同一の符号を付して、詳細な説明を省略する。また、以下では、適宜、プリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃを、「プログラム」として代表させて記述する。
【０１５３】
図２４に示す処理において、ステップＳ３２０でユーザ操作に応じて更新チェックが指示されてから、ステップＳ３３３でオブジェクト配置サーバ４１からオブジェクトが送信されるまでの処理は、第１の実施形態の変形例で説明した図１８のステップＳ２２０〜ステップＳ２３３の処理と略同様である。
【０１５４】
すなわち、例えばクライアントＰＣ１０の入力部１０１に対するユーザ操作に応じて、インストーラ１０５’のＵＩ１２２に対してプログラムの更新チェックが指示される（ステップＳ３２０）。この指示は、ＵＩ１２２からプログラム情報取得部１２３０に伝えられる（ステップＳ３２１）。
【０１５５】
プログラム情報取得部１２３０は、この更新チェックの指示を受けて、記憶部１０４に対してプログラム情報の取得を要求する（ステップＳ３２２）。記憶部１０４は、この要求に応じて、ＯＳ管理領域２００から、ＩＤと、クラス情報と、プログラムの名称とが関連付けられて書き込まれた全てのプログラム情報を取得する。記憶部１０４は、取得したプログラム情報をプログラム情報取得部１２３０に渡す（ステップＳ３２３）。
【０１５６】
プログラム情報取得部１２３０は、記憶部１０４から渡されたプログラム情報から、インストーラ１０５’が対応可能なプログラムのプログラム情報を選択する。例えば、プログラム情報取得部１２３０は、プログラム情報に含まれるＩＤに基づき、当該プログラム情報が、インストーラ１０５’が対応可能なプログラムであるか否かを判別する。判別は、例えば、プログラム情報から、上述した所定のフォーマットに従ったＩＤが取得できたか否かで行う。
【０１５７】
プログラム情報取得部１２３０は、ステップＳ３２２およびステップＳ３２３の処理で取得した各ＩＤを更新情報取得部１２０１に渡し、各ＩＤに対応する更新情報の取得を更新情報取得部１２０１に要求する（ステップＳ３２４）。更新情報取得部１２０１は、プログラム情報取得部１２３０から渡されたＩＤに基づき特定情報を生成し、生成した特定情報に従い、更新情報サーバ４０に対して更新情報を要求する（ステップＳ３２５）。更新情報取得部１２０１は、この要求に応じて更新情報サーバ４０から送信された更新情報を取得する（ステップＳ３２６）。
【０１５８】
この例では、プリンタドライバ１０６ａを更新するための更新情報と、スキャナドライバ１０６ｂを更新するための更新情報と、アプリケーションプログラム１０６ｃを更新するための更新情報とが更新情報サーバ４０から送信され、更新情報取得部１２０１に取得されたものとする。
【０１５９】
各ＩＤについて取得された各更新情報は、更新情報取得部１２０１からプログラム情報取得部１２３０を介してＵＩ１２２に渡される（ステップＳ３２７、ステップＳ３２８）。ＵＩ１２２は、渡された各更新情報を表示部１００に渡す（ステップＳ３２９）。
【０１６０】
表示部１００は、ＵＩ１２２から渡された更新情報に基づき、更新対象のプログラムを示す表示画面をディスプレイ５６に表示させる。図２５（ａ）は、第２の実施形態に係る、表示部１００に表示される表示画面の例を示す。図２５（ａ）の例では、表示画面４００は、領域４０１に、更新対象のプログラムが対応する機種名、クラス情報およびプログラム種別が一覧表示される。
【０１６１】
インストーラ１０５’は、例えば、クライアントＰＣ１０に既にインストールされているプログラムのうち、ＵＩ１２２から通知された更新情報に含まれるＩＤと一致するＩＤを有するプログラムからプログラム情報を取得し、取得したプログラム情報に基づき、機種名と、クラス情報を示す情報と、プログラム種別とを表示画面４００に表示させる。この例では、表示画面４００に、機種名「ＭＦＰ０１」と、プリンタのクラス情報を示す情報「Ｐｒｉｎｔｅｒ  Ａ」と、プログラム種別を示す「Ｄｒｉｖｅｒ」とが関連付けられて、また、機種名「ＭＦＰ０１」と、スキャナのクラス情報を示す情報「Ｓｃａｎｎｅｒ  Ｂ」と、プログラム種別を示す「Ｄｒｉｖｅｒ」とが関連付けられて、それぞれ表示されている。また、表示画面４００において、アプリケーションプログラム１０６ｃについては、アプリケーションプログラムのクラス情報を示す情報「Ａｐｐｌｉｃａｔｉｏｎ  Ｄ」のみが表示され、他が省略されている。この例の場合、機種名「ＭＦＰ０１」であるＭＦＰにおいて、プリンタドライバ１０６ａおよびスキャナドライバ１０６ｂがそれぞれ更新されると共に、アプリケーションプログラム１０６ｃが更新されることが示されている。
【０１６２】
表示画面４００において、選択入力部４０２は、領域４０１に表示される各プログラムを更新するか否かを、入力部１０１に対する操作に応じて選択する。図２５（ａ）の例では、選択入力部４０２に対して「はい」を選択し、ボタン４０３を操作することで、領域４０１に表示される各プログラムの更新が開始される。
【０１６３】
また、表示部１００は、図２５（ｂ）に示したような、更新するプログラムを選択可能な表示画面４００’を表示させてもよい。表示画面４００’において、領域４０１’に表示される更新対象のプログラム一覧に対し、各行にチェックボックス４０４が付加されている。この場合、入力部１０１に対する操作によりチェックボックス４０４がチェックされた行に示されるプログラムに対して選択的に更新処理が実行される。
【０１６４】
表示画面４００に対するプログラムの更新操作が入力部１０１からＵＩ１２２に通知される（ステップＳ３３０）。ＵＩ１２２は、更新対象となるプログラムの更新情報をオブジェクト取得部１２０２に渡し、オブジェクト取得部１２０２に対してプログラムの更新を指示する（ステップＳ３３１）。
【０１６５】
オブジェクト取得部１２０２は、ＵＩ１２２から渡された更新情報に基づき、オブジェクト配置サーバ４１に対してオブジェクトの取得要求を送信し（ステップＳ３３２）、この要求に応じてオブジェクト配置サーバ４１から送信されたオブジェクトを取得する（ステップＳ３３３）。オブジェクト取得部１２０２は、オブジェクトを取得すると、オブジェクト取得通知を、取得したオブジェクトに対応するＩＤと共にインストーラ判別部１２４に渡す（ステップＳ３３４）。
【０１６６】
インストーラ判別部１２４は、オブジェクト取得部１２０２から渡されたＩＤをプログラム情報取得部１２３０に渡し、当該ＩＤに対応するプログラム情報をプログラム情報取得部１２３０に要求する（ステップＳ３３５）。プログラム情報取得部１２３０は、この要求に応じて、渡されたＩＤに対応するプログラム情報をインストーラ判別部１２４に渡す（ステップＳ３３６）。
【０１６７】
インストーラ判別部１２４は、プログラム情報取得部１２３０から渡されたプログラム情報に含まれるクラス情報に基づき、更新によりインストールされるプログラムの種別を判別する（ステップＳ３３７）。
【０１６８】
ステップＳ３３７で、インストーラ判別部１２４により、更新によりインストールされるプログラムがプリンタドライバ１０６ａであると判定された場合、ステップＳ３００３の処理が行われ、プリンタドライバ１０６ａのインストールが実行されプリンタドライバ１０６ａが更新される。ステップＳ３３７で、インストールされるプログラムがスキャナドライバ１０６ｂであると判別された場合、ステップＳ３００４の処理が行われ、スキャナドライバ１０６ｂのインストールが実行されスキャナドライバ１０６ｂが更新される。また、ステップＳ３３７で、インストールされるプログラムがアプリケーションプログラム１０６ｃであると判別された場合、ステップＳ３００５の処理が行われ、アプリケーションプログラム１０６ｃのインストールが実行されアプリケーションプログラム１０６ｃが更新される。
【０１６９】
ステップＳ３００３において、インストーラ判別部１２４は、プログラムインストール部１２１５におけるプリンタ部１２１０に対して、ステップＳ３３３でオブジェクト取得部１２０２に取得されたオブジェクトによるプログラムのインストールを指示する（ステップＳ３４０）。プリンタ部１２１０は、この指示に従い、オブジェクト取得部１２０２に取得されたオブジェクトのインストール処理を実行し（ステップＳ３４１）、インストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３４２）。
【０１７０】
ステップＳ３００４において、インストーラ判別部１２４は、プログラムインストール部１２１５におけるスキャナ部１２１１に対して、ステップＳ３３３でオブジェクト取得部１２０２に取得されたオブジェクトによるプログラムのインストールを指示する（ステップＳ３４０’）。スキャナ部１２１１は、この指示に従い、オブジェクト取得部１２０２に取得されたオブジェクトのインストール処理を実行し（ステップＳ３４１’）、インストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３４２’）。
【０１７１】
また、ステップＳ３００５において、インストーラ判別部１２４は、プログラムインストール部１２１５におけるアプリケーションプログラム部１２１２に対して、ステップＳ３３３でオブジェクト取得部１２０２に取得されたオブジェクトによるプログラムのインストールを指示する（ステップＳ３４０”）。アプリケーションプログラム部１２１２は、この指示に従い、オブジェクト取得部１２０２に取得されたオブジェクトのインストール処理を実行し（ステップＳ３４１”）、インストール処理が完了すると、その旨をＵＩ１２２に通知する（ステップＳ３４２”）。
【０１７２】
ＵＩ１２２は、プログラムインストール部１２１５のプリンタ部１２１０、スキャナ部１２１１またはアプリケーションプログラム部１２１２からインストール処理の完了が通知されると、その旨を表示させるよう、表示部１００に指示する（ステップＳ３４３）。表示部１００は、この指示に従い、インストールが完了した旨をディスプレイ５６に表示させる。
【０１７３】
図２６は、第２の実施形態に係る、表示部１００によりディスプレイ５６に表示されるインストール完了画面の例を示す。図２６において、インストール完了画面４１０は、領域４１１に、インストールが実行され更新されたプログラムの一覧が表示される。
【０１７４】
第２の実施形態によれば、インストーラ１０５’は、プログラム種別が異なるプリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃについても、ＯＳ管理領域２００に書き込まれた各プリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃの各プログラム情報がそれぞれ含む識別情報（ＩＤ）に基づく特定情報（例えばＵＲＬ）に従い、プリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃの更新に用いる各オブジェクトのＵＲＬを含む各更新情報を取得する。インストーラ１０５’は、プログラム情報に含まれるクラス情報に基づき、プログラム種別に応じたインストール処理を行うことができる。
【０１７５】
また、インストーラ１０５’は、プリンタドライバ１０６ａ、スキャナドライバ１０６ｂおよびアプリケーションプログラム１０６ｃが含む各識別情報に基づく各特定情報で特定される格納場所に格納される各更新情報が、プリンタドライバ１０６ａやスキャナドライバ１０６ｂ、アプリケーションプログラム１０６ｃのインストール時には未知であるプログラムのものであっても、各更新情報に基づき、この未知のプログラムをクライアントＰＣ１０にインストールすることができる。
【０１７６】
なお、上述の実施形態および各変形例は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１７７】
１０  クライアントＰＣ
２０ａ，２０ｂ，２０ｃ  画像形成装置
２２，３０  ネットワーク
４０  更新情報サーバ
４１  オブジェクト配置サーバ
５４  ストレージ
５６  ディスプレイ
１００  表示部
１０１  入力部
１０５，１０５’  インストーラ
１０６  ドライバ
１０６ａ  プリンタドライバ
１０６ｂ  スキャナドライバ
１０６ｃ  アプリケーションプログラム
１２１  ドライバインストール部
１２２  ＵＩ
１２３  ドライバ情報取得部
１２４  インストーラ判別部
１３１  ＩＤ格納部
１３２  ＩＤ送信部
３００  表示画面
１２０１  更新情報取得部
１２０２  オブジェクト取得部
１２１５  プログラムインストール部
１２３０  プログラム情報取得部
【先行技術文献】
【特許文献】
【０１７８】
【特許文献１】特許第３８７０７６５号公報
【図１】
0006540256.tif 000002
【図２】
0006540256.tif 000003
【図３】
0006540256.tif 000004
【図４】
0006540256.tif 000005
【図５】
0006540256.tif 000006
【図６】
0006540256.tif 000007
【図７】
0006540256.tif 000008
【図８】
0006540256.tif 000009
【図９】
0006540256.tif 000010
【図１０】
0006540256.tif 000011
【図１１】
0006540256.tif 000012
【図１２】
0006540256.tif 000013
【図１３】
0006540256.tif 000014
【図１４】
0006540256.tif 000015
【図１５】
0006540256.tif 000016
【図１６】
0006540256.tif 000017
【図１７】
0006540256.tif 000018
【図１８】
0006540256.tif 000019
【図１９】
0006540256.tif 000020
【図２０】
0006540256.tif 000021
【図２１】
0006540256.tif 000022
【図２２】
0006540256.tif 000023
【図２３】
0006540256.tif 000024
【図２４】
0006540256.tif 000025
【図２５】
0006540256.tif 000026
【図２６】
0006540256.tif 000027