(57)【特許請求の範囲】
【請求項１】
機種を識別する識別情報を取得する識別情報取得部と、
前記識別情報に基づき前記機種に適用可能な複数のプログラムそれぞれの属性を示す属性情報を取得する属性情報取得部と、
前記属性情報に対して予め定められた優先順位に基づき前記複数のプログラムからインストール対象とするプログラムを選択する選択部と
を備え、
前記属性情報は、少なくとも、該属性情報が対応するプログラムの前記機種に対する命令の種類を示す命令種類情報を含み、
前記選択部は、
前記複数のプログラムから、前記識別情報および前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムを選択する
情報処理装置。
【請求項２】
前記選択部は、
前記識別情報に対応する前記複数のプログラムのうち前記優先順位が最も高い前記属性情報に対応するプログラムを選択する
請求項１に記載の情報処理装置。
【請求項３】
前記属性情報取得部により取得された前記属性情報を、前記優先順位に従い一覧で表示する表示部をさらに備え、
前記選択部は、
前記複数のプログラムのうち前記一覧の表示に応じて指定された前記属性情報に対応するプログラムを選択する
請求項１に記載の情報処理装置。
【請求項４】
前記属性情報は、該属性情報が対応するプログラムが対応するオペレーティングシステムを示すシステム情報をさらに含み、
前記選択部は、
前記複数のプログラムから、前記システム情報に基づきプログラムを選択し、選択されたプログラムのうち、前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムをさらに選択する
請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記属性情報は、該属性情報が対応するプログラムが対応する表示言語を示す言語情報をさらに含み、
前記選択部は、
前記複数のプログラムのうち、前記属性情報に含まれる言語情報が示す表示言語と、当該情報処理装置に搭載されるオペレーティングシステムにおいて選択されている表示言語とが一致するプログラムを選択し、選択されたプログラムのうち、前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムをさらに選択する
請求項１乃至請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記属性情報は、該属性情報に対応するプログラムの取得方法を示す取得情報をさらに含み、
前記複数のプログラムのうち前記選択部で選択されたプログラムを前記取得情報に基づき取得するプログラム取得部をさらに備える
請求項１乃至請求項５の何れか１項に記載の情報処理装置。
【請求項７】
前記プログラム取得部により取得されたプログラムを当該情報処理装置にインストールするインストール部をさらに備える
請求項６に記載の情報処理装置。
【請求項８】
機種を識別する識別情報と該機種に適用可能な複数のプログラムそれぞれの属性を示す属性情報とを関連付けて記憶する記憶部と、
機器から該機器の機種を識別する識別情報を取得する識別情報取得部と、
前記記憶部から、前記識別情報取得部により取得された前記識別情報に関連付けられた前記属性情報を取得する属性情報取得部と、
前記属性情報に対して予め定められた優先順位に基づき、前記識別情報に対応する前記複数のプログラムのうち該優先順位が最も高い前記属性情報に対応するプログラムを選択する選択部と
を備え、
前記属性情報は、少なくとも、該属性情報が対応するプログラムの前記機種に対する命令の種類を示す命令種類情報を含み、
前記選択部は、
前記複数のプログラムから、前記識別情報および前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムを選択する
情報処理システム。
【請求項９】
機種を識別する識別情報を取得する識別情報取得ステップと、
前記識別情報に基づき前記機種に適用可能な複数のプログラムそれぞれの属性を示す属性情報を取得する属性情報取得ステップと、
前記属性情報に対して予め定められた優先順位に基づき、前記識別情報に対応する前記複数のプログラムのうち該優先順位が最も高い前記属性情報に対応するプログラムを選択する選択ステップと
を有し、
前記属性情報は、少なくとも、該属性情報が対応するプログラムの前記機種に対する命令の種類を示す命令種類情報を含み、
前記選択ステップでは、
前記複数のプログラムから、前記識別情報および前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムを選択する
情報処理方法。
【請求項１０】
機種を識別する識別情報を取得する識別情報取得ステップと、
前記識別情報に基づき前記機種に適用可能な複数のプログラムそれぞれの属性を示す属性情報を取得する属性情報取得ステップと、
前記属性情報に対して予め定められた優先順位に基づき、前記識別情報に対応する前記複数のプログラムのうち該優先順位が最も高い前記属性情報に対応するプログラムを選択する選択ステップと
をコンピュータに実行させ、
前記属性情報は、少なくとも、該属性情報が対応するプログラムの前記機種に対する命令の種類を示す命令種類情報を含み、
前記選択ステップでは、
前記複数のプログラムから、前記識別情報および前記命令種類情報に対して予め定められた前記優先順位に基づきプログラムを選択するための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
プリンタの機種を特定してネットワーク上のサーバと通信を行い、その機種が対応しているＰＤＬ(Page  Description  Language)をキーとしてサーバからドライバプログラムを検索してダウンロードし、ダウンロードしたドライバプログラムをコンピュータにインストールするインストーラが知られている。プリンタを製造および販売するメーカは、製造および販売するプリンタに適したＰＤＬに対応するドライバプログラムと、このドライバプログラムに対応するインストーラとをユーザに提供するのが一般的である。
【０００３】
また、特許文献１には、サーバに管理者がドライバプログラムをアップロードしてそのドライバプログラムをユーザに通知し、そのドライバプログラムのダウンロード数に基づき画面を自動生成するようにした技術が記載されている。特許文献１によれば、ユーザは、利用頻度が高いドライバプログラムを容易に取得可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、同じ機種に対して、それぞれ異なるＰＤＬに対応する複数のドライバプログラムが存在するのが一般的である。このとき、機種毎の複数のドライバプログラムそれぞれが対応しているＰＤＬが、機種によって異なる場合がある。そのため、従来では、複数の機種に共通して推奨できる１つのＰＤＬを決定することが困難であった。一例として、メーカが、ＯＥＭ(Original  Equipment  Manufacturer)のような、他メーカから調達したプリンタを販売する場合が挙げられる。
【０００５】
ＯＥＭ製のプリンタは、適したＰＤＬが自メーカ開発のプリンタに適したＰＤＬとは異なる場合が有り得る。従来のインストーラは、ドライバプログラムを取得する際に、複数のＰＤＬから適切なＰＤＬを自動的に選択することができず、自メーカ製からＯＥＭ製までのプリンタを対応可能とすることが困難であった。
【０００６】
したがって、ユーザは、必要なＰＤＬを明示的に選択してドライバプログラムを取得する必要があるという問題点があった。また、上述した特許文献１においても、ユーザがドライバプログラムを明示的に選択する必要がある点は、解消できていない。
【０００７】
本発明は、上記に鑑みてなされたものであって、機種に対して適切なドライバプログラムを容易に取得可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、機種を識別する識別情報を取得する識別情報取得部と、識別情報に基づき機種に適用可能な複数のプログラムそれぞれの属性を示す属性情報を取得する属性情報取得部と、属性情報に対して予め定められた優先順位に基づき複数のプログラムからインストール対象とするプログラムを選択する選択部とを備え、属性情報は、少なくとも、属性情報が対応するプログラムの機種に対する命令の種類を示す命令種類情報を含み、選択部は、複数のプログラムから、識別情報および命令種類情報に対して予め定められた優先順位に基づきプログラムを選択する。
【発明の効果】
【０００９】
本発明によれば、機種に対して適切なドライバプログラムを容易に取得可能となるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、各実施形態に適用可能な情報処理システムの一例の構成を示す図である。
【図２】図２は、各実施形態に適用可能な、ＰＣによるドライバプログラムの取得処理を概略的に示す図である。
【図３】図３は、各実施形態に適用可能なＰＣのハードウェア構成の例を示すブロック図である。
【図４】図４は、各実施形態に適用可能なサーバのハードウェア構成の例を示すブロック図である。
【図５】図５は、各実施形態に適用可能なプリンタのハードウェア構成の例を示すブロック図である。
【図６】図６は、第１の実施形態に係るＰＣの機能を説明するための一例の機能ブロック図である。
【図７】図７は、第１の実施形態に係るインストーラの機能を説明するための一例の機能ブロック図である。
【図８】図８は、第１の実施形態に適用可能なプリンタの機能を説明するための一例の機能ブロック図である。
【図９】図９は、第１の実施形態に適用可能なサーバの機能を説明するための一例の機能ブロック図である。
【図１０】図１０は、第１の実施形態に係るドライバプログラムのＰＣへの導入処理の流れを示す一例のシーケンス図である。
【図１１】図１１は、第１の実施形態に適用可能な、制御部からサーバに送信される検索要求の例を示す図である。
【図１２】図１２は、第１の実施形態に適用可能な、サーバから送信される検索結果の例を示す図である。
【図１３】図１３は、第１の実施形態に係る、アーキテクチャ判定部による判定処理の例を示すフローチャートである。
【図１４】図１４は、第１の実施形態に係る、表示言語判定部による判定処理の例を示すフローチャートである。
【図１５】図１５は、第１の実施形態に係る、ＰＤＬ判定部による判定処理の例を示すフローチャートである。
【図１６】図１６は、第２の実施形態に係るインストーラの機能を説明するための一例の機能ブロック図である。
【図１７】図１７は、第２の実施形態に係るドライバプログラムのＰＣへの導入処理の流れを示す一例のシーケンス図である。
【図１８】図１８は、第２の実施形態に係る、ＰＤＬ判定部による判定処理の例を示すフローチャートである。
【図１９】図１９は、第１の実施形態に係る選択肢一覧画面の例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、情報処理装置、情報処理システム、情報処理方法および情報処理プログラムの実施形態を詳細に説明する。
【００１２】
（各実施形態に適用可能な構成）
図１は、各実施形態に適用可能な情報処理システムの一例の構成を示す。図１において、情報処理システムは、パーソナルコンピュータ（ＰＣ）１０と、プリンタ２０ａおよび２０ｂと、サーバ３０とを含む。なお、図１において、プリンタ２０ａおよび２０ｂは、プリンタ＃Ａおよびプリンタ＃Ｂとも示している。図１の例では、ＰＣ１０、プリンタ２０ａおよびサーバ３０がＬＡＮ(Local  Area  Network)などによるネットワーク４０に、互いに通信可能に接続されている。また、図１の例では、プリンタ２０ｂは、ＰＣ１０に対して例えばＵＳＢ(Universal  Serial  Bus)などにより直接的に接続されている。
【００１３】
このような構成において、ＰＣ１０は、例えばプリンタ２０ａやプリンタ２０ｂに対応するドライバプログラムをインストールすることで、プリンタ２０ａやプリンタ２０ｂに対して印刷処理を実行させることができる。ここで、ＰＣ１０は、プリンタ２０ａやプリンタ２０ｂに対応するドライバプログラムを、ネットワーク４０を介して、例えばサーバ３０から取得することができる。
【００１４】
なお、上述では、ＰＣ１０と、プリンタ２０ａと、サーバ３０とがＬＡＮであるネットワーク４０を介して接続されているように説明したが、これはこの例に限定されない。例えば、ＰＣ１０、プリンタ２０ａおよびサーバ３０のうち１以上を、インターネットを介して接続するようにしてもよい。また、ネットワーク４０は、有線通信および無線通信の何れを用いてもよいし、有線通信および無線通信を混在させてもよい。
【００１５】
さらに、図１の例では、ＰＣ１０が利用可能な機器がプリンタ２０ａおよび２０ｂであるように示されているが、これはこの例に限定されない。ＰＣ１０が利用可能な機器は、スキャナであってもよいし、プリンタ機能、スキャナ機能、複写機能など複数の機能を１の筐体で実現させたＭＦＰ(Multi  Function  Printer)であってもよい。
【００１６】
なお、プリンタ２０ａおよび２０ｂは、ＰＣ１０に対する接続方法が異なる以外は、同等に扱うことができるため、以下では、特に記載の無い限り、プリンタ２０ａおよび２０ｂを、プリンタ２０ａで代表させて説明を行う。
【００１７】
図２は、各実施形態に適用可能な、ＰＣ１０によるドライバプログラムの取得処理を、概略的に示す。ＰＣ１０は、プリンタ２０ａを利用するためのドライバプログラムを取得する場合、先ず、プリンタ２０ａから、当該プリンタ２０ａを識別するための識別情報を取得する（ステップＳ１、ステップＳ２）。プリンタ２０ａを識別するための識別情報としては、例えばＰｎＰ（プラグアンドプレイ）デバイスＩＤを適用することができる。
【００１８】
ＰＣ１０は、プリンタ２０ａの識別情報を取得すると、サーバ３０に対して、取得した識別情報と、プリンタ２０ａに対応するドライバプログラムの要求とを送信する（ステップＳ３）。ここで、サーバ３０は、プリンタのドライバプログラムの属性情報を、プリンタの複数の機種に関連付けてそれぞれ記憶する。ドライバプログラムの属性情報は、少なくとも、対応するドライバプログラムを取得するための取得情報を含む。取得情報は、例えば、ドライバプログラムのネットワーク４０上、または、ネットワーク４０を介して接続されるインターネット上での位置を示すＵＲＬ(Uniform  Resource  Locator)を含む。サーバ３０がドライバプログラムを記憶している場合は、取得情報は、サーバ３０におけるドライバプログラムの記憶領域の、ネットワーク４０上での位置を示すＵＲＬを用いることができる。
【００１９】
サーバ３０は、ＰＣ１０から送信された要求および識別情報に従い、識別情報に対応するドライバプログラムの属性情報を、記憶している属性情報から検索し、検索された１以上の属性情報をＰＣ１０に送信する（ステップＳ４）。ＰＣ１０は、サーバ３０から送信された１以上の属性情報に基づき、インストールを行いたいドライバプログラムを選択する（ステップＳ５）。ＰＣ１０は、選択されたドライバプログラムに対応する属性情報に含まれる取得情報に従い、ドライバプログラムのダウンロード（ＤＬ）を要求する（ステップＳ６）。
【００２０】
図２の例では、説明のため、サーバ３０がドライバプログラムを記憶しているように示しているが、これはこの例に限定されない。例えば、ドライバプログラムは、ネットワーク４０上の他のサーバや、ネットワーク４０を介して接続されるインターネット上のサーバが記憶していてもよい。
【００２１】
ＰＣ１０は、ステップＳ６のダウンロード要求に応じてダウンロードされたドライバプログラムを取得する（ステップＳ７）。ＰＣ１０は、取得したドライバプログラムを自身にインストールする（ステップＳ８）。これにより、ＰＣ１０からのプリンタ２０ａの利用が可能になる。
【００２２】
図３は、各実施形態に適用可能なＰＣ１０のハードウェア構成の例を示す。図３において、ＰＣ１０は、ＣＰＵ(Central  Processing  Unit)１０００と、ＲＯＭ(Read  Only  Memory)１００１と、ＲＡＭ(Random  Access  Memory)１００２と、ストレージ１００５と、グラフィクスＩ／Ｆ１００３と、入出力Ｉ／Ｆ１００６と、通信Ｉ／Ｆ１００８とがバス１０１０を介して互いに通信可能に接続されている。
【００２３】
ＣＰＵ１０００は、ＲＯＭ１００１やストレージ１００５に予め記憶されるプログラムに従い、ＲＡＭ１００２をワークメモリとして用いて、このＰＣ１０の全体の動作を制御する。ストレージ１００５は、ハードディスクドライブや不揮発性の半導体メモリ（フラッシュメモリ）からなり、ＣＰＵ１０００が動作するためのプログラムや、各種データが格納される。
【００２４】
グラフィクスＩ／Ｆ１００３は、ＣＰＵ１０００によりプログラムに従い生成された表示制御信号を、ディスプレイ１００４で表示可能な表示信号に変換してディスプレイ１００４に供給する。ディスプレイ１００４は、例えばＬＣＤ(Liquid  Crystal  Display)を表示デバイスとして用い、グラフィクスＩ／Ｆ１００３から供給された表示信号に従った画面を表示デバイスに表示させる。
【００２５】
入出力Ｉ／Ｆ１００６は、外部機器との間で通信を行うインタフェースである。図３の例では、入出力Ｉ／Ｆ１００６に対して、外部機器としてキーボードやポインティングデバイス（マウスなど）を含む操作部１００７が接続されている。入出力Ｉ／Ｆ１００６は、これに限らず、ＣＤ(Compact  Disk)やＤＶＤ(Digital  Versatile  Disk)といったディスク記憶媒体からのデータの読み出しなどを行うドライブ装置や、不揮発性の半導体メモリなどのストレージを接続してもよい。入出力Ｉ／Ｆ１００６としては、例えばＵＳＢを用いることができる。
【００２６】
通信Ｉ／Ｆ１００８は、ＣＰＵ１０００の制御に従い、ＴＣＰ／ＩＰ(Transmission  Control  Protocol/Internet  Protocol)など所定のプロトコルを用いて、ネットワーク４０を介した通信を行う。
【００２７】
図４は、各実施形態に適用可能なサーバ３０のハードウェア構成の例を示す。図４において、サーバ３０は、ＣＰＵ３０００と、ＲＯＭ３００１と、ＲＡＭ３００２と、ストレージ３００３と、通信Ｉ／Ｆ３００４とを含み、これら各部がバス３０１０により互いに通信可能に接続されている。
【００２８】
ストレージ３００３は、例えばハードディスクドライブや、フラッシュメモリといった不揮発性の半導体メモリであって、ＣＰＵ３０００上で動作するプログラムや各種データが格納されると共に、後述する、ドライバプログラムの属性情報が格納される。なお、ストレージ３００３は、サーバ３０に内蔵されている構成に限らず、サーバ３０に対して外部接続されるものであってもよい。
【００２９】
ＣＰＵ３０００は、ＲＯＭ３００１やストレージ３００３から読み出したプログラムに従い、ＲＡＭ３００２をワークメモリとして用いて、サーバ３０の全体の動作を制御する。通信Ｉ／Ｆ３００４は、ＣＰＵ３０００の制御に従い、例えばＴＣＰ／ＩＰをプロトコルとして用いて、ネットワーク４０を介した通信を行う。
【００３０】
サーバ３０の構成は、図４の例に限られず、例えば一般的なコンピュータと同様に、ＣＰＵ３０００により生成された画面情報に従った画面をディスプレイに表示させる表示制御部や、外部機器との間でのデータの入出力を行うデータＩ／Ｆ、ユーザ入力を受け付ける入力デバイスをさらに含んでいてもよい。
【００３１】
図５は、各実施形態に適用可能なプリンタ２０ａのハードウェア構成の例を示す。図５において、プリンタ２０ａは、ＣＰＵ２０００と、ＲＯＭ２００１と、ＲＡＭ２００２と、ＮＶＲＡＭ（不揮発性ＲＡＭ）２００３と、ストレージ２００６と、データＩ／Ｆ２００７と、通信Ｉ／Ｆ２００８と、機能部Ｉ／Ｆ２００４とを含み、これら各部がバス２０１０により互いに通信可能に接続される。
【００３２】
ストレージ２００６は、ハードディスクドライブや、フラッシュメモリといった不揮発性メモリであって、ＣＰＵ２０００を動作させるためのプログラムや、各種のデータが記憶される。ＲＯＭ２００１は、例えばプリンタ２０ａを起動させるために用いるプログラムおよびデータや、このプリンタ２０ａの機種を識別する識別情報（例えばＰｎＰデバイスＩＤ）が予め記憶される。ＮＶＲＡＭ２００３は、プリンタ２０ａに対して設定された設定値などが記憶される。ＣＰＵ２０００は、ストレージ２００６およびＲＯＭ２００１に記憶されるプログラムと、ストレージ２００６およびＮＶＲＡＭ２００３に記憶される各データとに従い、ＲＡＭ２００２をワークメモリとして用いて、このプリンタ２０ａの全体の動作を制御する。
【００３３】
データＩ／Ｆ２００７は、外部機器に対するインタフェースであって、例えばＵＳＢを適用できる。通信Ｉ／Ｆ２００８は、ＣＰＵ２０００の制御に従い、例えばＴＣＰ／ＩＰをプロトコルとして用いて、ネットワーク４０を介した通信を行う。
【００３４】
機能部Ｉ／Ｆ２００４は、プリンタ２０ａにおけるプリンタ機能を実現するためのプリンタエンジン２００５に対するインタフェースである。機能部Ｉ／Ｆ２００４は、プリンタエンジン２００５とＣＰＵ２０００との間のデータの調停処理や、制御情報の送受信などを行う。
【００３５】
なお、スキャナの場合、プリンタエンジン２００５の代わりに、スキャナ機能を実現するためのスキャナエンジンが接続される。また、ＭＦＰの場合、ＭＦＰが実行可能な複数の機能、例えばスキャナ機能、プリンタ機能およびＦＡＸ機能をそれぞれ実現するためのスキャナエンジン、プリンタエンジンおよびＦＡＸユニットが機能部Ｉ／Ｆ２００４に接続される。
【００３６】
（第１の実施形態）
次に、第１の実施形態について説明する。第１の実施形態では、サーバ３０が記憶する各ドライバプログラムについて、同一機種に適用可能な複数のドライバプログラムそれぞれの属性情報に対して、予め優先順位を定める。そして、上述した図２におけるステップＳ５の、ドライバプログラムの選択処理において、この優先順位に従いＰＣ１０に適合したドライバプログラムが選択されるようにした。
【００３７】
図６は、第１の実施形態に係るＰＣ１０の機能を説明するための一例の機能ブロック図である。ＰＣ１０は、制御部１００と、通信部１０１と、インストーラ１０２と、表示部１０３と、入力部１０４とを含む。これら制御部１００、通信部１０１、インストーラ１０２、表示部１０３および入力部１０４は、ＣＰＵ１０００上で動作するプログラムにより実現される。これに限らず、これら制御部１００、通信部１０１、インストーラ１０２、表示部１０３および入力部１０４の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００３８】
制御部１００は、プログラムに従い各種の判定処理などを行い、このＰＣ１０の全体の動作を制御する。通信部１０１は、入出力Ｉ／Ｆ１００６や通信Ｉ／Ｆ１００８による通信を制御する。インストーラ１０２は、ＰＣ１０に対するドライバプログラムのインストール処理を実行する。表示部１０３は、グラフィクスＩ／Ｆ１００３を制御してディスプレイ１００４に対して画像を表示させる。入力部１０４は、操作部１００７に対してなされた入力を受け付ける。
【００３９】
図７は、第１の実施形態に係るインストーラ１０２の機能を説明するための一例の機能ブロック図である。インストーラ１０２は、インストール部１２０と、選択部１２１とを含み、選択部１２１は、ＰＤＬ判定部１２１０と、表示言語判定部１２１１と、アーキテクチャ判定部１２１２とを含む。
【００４０】
インストール部１２０は、ドライバプログラムのＰＣ１０へのインストール処理を実行する。選択部１２１は、各属性情報に対して予め定められた優先順位に基づき、サーバ３０から取得した属性情報の順位を判定し、判定結果に従いインストールすべきドライバプログラムを選択する。
【００４１】
より具体的には、選択部１２１は、ＰＤＬ判定部１２１０と、表示言語判定部１２１１と、アーキテクチャ判定部１２１２とを含む。ＰＤＬ判定部１２１０は、ＰＤＬ(Page  Description  Language)の種類に対して予め定められた優先順位を示す情報を有し、この優先順位に基づいた判定処理を行う。優先順位を示す情報は、例えば、ＰＤＬ判定部１２１０が含まれるインストーラ１０２を実現するプログラム中に埋め込んでおいてもよいし、独立したデータとしてインストーラ１０２と共に提供され、ストレージ１００５などに記憶しておいてもよい。
【００４２】
表示言語判定部１２１１は、ＰＣ１０のＯＳ(Operating  System)が現在表示している表示言語に従い、インストールすべきドライバプログラムの表示言語を判定する。アーキテクチャ判定部１２１２は、ＰＣ１０のＯＳの情報に基づき、インストールすべきドライバプログラムのアーキテクチャを判定する。
【００４３】
ＰＣ１０において第１の実施形態に係る各機能を実現するための情報処理プログラムは、インストール可能な形式また実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、情報処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、情報処理プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
【００４４】
情報処理プログラムは、上述した各部（制御部１００、通信部１０１、インストーラ１０２、表示部１０３および入力部１０４）を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ１０００がストレージ１００５などの記憶媒体から当該情報処理プログラムを読み出して実行することにより、上述した各部がＲＡＭ１００２などの主記憶装置上にロードされ、制御部１００、通信部１０１、インストーラ１０２、表示部１０３および入力部１０４が主記憶装置上に生成されるようになっている。
【００４５】
図８は、第１の実施形態に適用可能なプリンタ２０ａの機能を説明するための一例の機能ブロック図である。プリンタ２０ａは、通信部２００と、機器情報記憶部２０１と、プリンタ機能部２０２とを含む。これら通信部２００、機器情報記憶部２０１およびプリンタ機能部２０２は、ＣＰＵ２０００で動作するプログラムにより実現される。これに限らず、これら通信部２００、機器情報記憶部２０１およびプリンタ機能部２０２の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００４６】
通信部２００は、データＩ／Ｆ２００７や通信Ｉ／Ｆ２００８による通信を制御する。機器情報記憶部２０１は、通信Ｉ／Ｆ２００８が備えるレジスタやＲＯＭ２００１などに予め記憶された、プリンタ２０ａの識別情報（例えばＰｎＰデバイスＩＤ）や、プリンタ２０ａの仕向け先を示す情報の読み出しを制御する。なお、仕向け先は、当該プリンタ２０ａの出荷先に設定された地域であり、例えば「国内」および「海外」である。仕向け先は、当該プリンタ２０ａで用いられるデフォルトの言語に関連する。プリンタ機能部２０２は、プリンタ２０ａにおける印刷機能を制御する。
【００４７】
図９は、第１の実施形態に適用可能なサーバ３０の機能を説明するための一例の機能ブロック図である。サーバ３０は、通信部３００と、配信部３０１と、ドライバ属性情報記憶部３０２とを含む。これら通信部３００、配信部３０１およびドライバ属性情報記憶部３０２は、ＣＰＵ３０００上で動作するプログラムにより実現される。これに限らず、これら通信部３００、配信部３０１およびドライバ属性情報記憶部３０２の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００４８】
通信部３００は、通信Ｉ／Ｆ３００４による通信を制御する。ドライバ属性情報記憶部３０２は、例えばストレージ３００３に記憶される複数のドライバプログラムの属性情報の読み出しなどを制御する。配信部３０１は、通信部３００により受信された要求に従い、ドライバ属性情報記憶部３０２に対してドライバプログラムの属性情報を要求し、ドライバ属性情報記憶部３０２から渡された属性情報を通信部３００から送信する。また、ストレージ３００３にドライバプログラムの本体が記憶されている場合、配信部３０１は、通信部３００により受信された要求に従いドライバ属性情報記憶部３０２に対してドライバプログラムを要求し、ドライバ属性情報記憶部３０２から渡されたドライバプログラムを通信部３００から送信する。
【００４９】
表１は、サーバ３０の例えばストレージ３００３に記憶される、ドライバプログラムの属性情報の例を示す。表１において、１行に、１つのドライバプログラムの属性情報が記述されている。属性情報は、「識別情報」、「ドライバアーキテクチャ」、「ＰＤＬ」、「表示言語」、「バージョン」および「取得情報」の各項目を含む。各属性情報は、これら各項目の組み合わせにより区別される。すなわち、各項目について同一の内容の複数の属性情報が存在する。
【００５０】
【表１】
0006613927.tif 000002
【００５１】
表１において、項目「識別情報」は、その行の属性情報のドライバプログラムが対応する機器の機種を識別するための識別情報であって、例えばＰｎＰデバイスＩＤが用いられる。表１の例では、項目「識別情報」の値として、プリンタの機種「プリンタ＃Ａ」、「プリンタ＃Ｂ」および「プリンタ＃Ｃ」が例示されている。
【００５２】
項目「ドライバアーキテクチャ」は、当該ドライバプログラムに適用されているアーキテクチャを示す。ドライバプログラムのアーキテクチャは、そのドライバプログラムの仕組みを示す。表１の例では、項目「ドライバアーキテクチャ」は、ドライバアーキテクチャとして、そのドライバプログラムが３２ビットＯＳおよび６４ビットＯＳの何れで動作可能であるかを示す値と、ドライバアーキテクチャの機能を示す値（高機能、中機能）とを含んでいる。
【００５３】
これら高機能および中機能のドライバアーキテクチャによるドライバプログラム（それぞれ高機能ドライバ、中機能ドライバと呼ぶ）をＰＣ１０に適用可能か否かは、例えば、当該ＰＣ１０のＯＳのバージョンに依存する。一例として、高機能のドライバアーキテクチャによるドライバプログラムは、所定以上のバージョンのＯＳが対応可能である。
【００５４】
機能を示す値は、例えば、ドライバアーキテクチャ自身のバージョン情報を用いることができる。ドライバプログラムが対応するＯＳがＷｉｎｄｏｗｓ（登録商標）であれば、例えば、ドライバアーキテクチャのＶｅｒｓｉｏｎ  ４（Ｖ４）、Ｖｅｒｓｉｏｎ  ３（Ｖ３）を適用することができる。Ｖ４は、Ｖ３に対して、より高機能のドライバプログラムを提供可能である。この例では、Ｖ４は、Ｗｉｎｄｏｗｓ８（登録商標）以降のバージョンのＯＳが対応可能であり、Ｖ３は、Ｗｉｎｄｏｗｓ２０００（登録商標）以降のバージョンのＯＳが対応可能である。
【００５５】
項目「ＰＤＬ」は、そのドライバプログラムが対応するＰＤＬの種類を示す。表１の例では、項目「ＰＤＬ」の値として、ＰＤＬの種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」が例示されている。
【００５６】
ＰＤＬは、ページ記述言語であって、例えば、コンピュータなどで作成された画像情報や文字情報などを、プリンタが印刷可能に解釈できる形式に変換した言語である。換言すれば、ＰＤＬは、プリンタに対する命令種類、命令形式、あるいは、命令セットであるといえる。このＰＤＬの概念は、コンピュータが制御する、プリンタ以外の外部機器に対する命令言語、命令種類、命令形式、命令セットなどにも拡張可能である。代表的なＰＤＬの種類の例としては、ＲＰＣＳ(Refined  Printing  Command  Stream)、ＰＣＬ６(Printer  Command  Language  6)、ＰＳ(PostScript（登録商標）)が挙げられる。
【００５７】
ここで、機種「プリンタ＃Ａ」のプリンタは、ＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」のうちＰＤＬ種類「ＰＤＬ＃１」に対応するプリンタドライバを用いた場合に、最も高い機能あるいは多くの機能を実現でき、ＰＤＬ種類「ＰＤＬ＃２」、「ＰＤＬ＃３」の順に機能が制限されるものとする。同様に、機種「プリンタ＃Ｂ」のプリンタは、ＰＤＬ種類「ＰＤＬ＃２」に対応するプリンタドライバを用いた場合に最も高い機能あるいは多くの機能を実現でき、ＰＤＬ種類「ＰＤＬ＃３」では機能が制限され、ＰＤＬ種類「ＰＤＬ＃１」には対応していないものとする。また、機種「プリンタ＃Ｃ」のプリンタは、ＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」のうちＰＤＬ種類「ＰＤＬ＃１」に対応し、他のＰＤＬ種類には対応していないものとする。
【００５８】
項目「表示言語」は、そのドライバプログラムが対応する、ＯＳの表示言語を示す。表１の例では、項目「表示言語」の値として「日本語」および「英語」が含まれている。項目「バージョン」は、そのドライバプログラムのバージョン情報を示す値が含まれる。
【００５９】
項目「取得情報」は、そのドライバプログラムを取得するための情報を示す。項目「取得情報」は、ドライバプログラムを取得するための情報として、例えば、上述した、そのドライバプログラムが置かれるインターネット上、ネットワーク４０上、ネットワーク４０に接続されるサーバ３０上の位置を示すＵＲＬを用いることができる。
【００６０】
次に、第１の実施形態に係るドライバプログラムのＰＣ１０に対する導入処理について、より具体的に説明する。図１０は、第１の実施形態に係るドライバプログラムのＰＣ１０への導入処理の流れを示す一例のシーケンス図である。なお、図１０において、上述した図６〜図９と対応する部分には同一の符号を付して、詳細な説明を省略する。
【００６１】
例えば、ＰＣ１０に対するユーザ操作によりドライバプログラムのインストールが指示される（ステップＳ１００）。ユーザ操作は、ＰＣ１０において入力部１０４に受け付けられ、制御部１００に渡される。制御部１００は、渡された指示に従い、通信部１０１を介して、プリンタ２０ａに対して識別情報と、プリンタ２０ａの仕向け先を示す仕向け情報とを要求する問い合わせを行う（ステップＳ１０１、ステップＳ１０２）。この問い合わせは、プリンタ２０ａにおいて通信部２００に受信され、機器情報記憶部２０１に渡される（ステップＳ１０３）。
【００６２】
なお、プリンタ２０ａに対する識別情報の問い合わせは、ネットワーク４０経由の場合、ＳＮＭＰ(Simple  Network  Management  Protocol)におけるＭＩＢ(Management  Information  Base)のＯＩＤ(Object  IDentifier)から取得することができる。また、プリンタ２０ｂのように、ＰＣ１０にＵＳＢにより接続される場合には、ＰＪＬ(Printer  Job  Language)コマンドをＰＣ１０からプリンタ２０ａに送信し、その応答に基づき識別情報を取得する技術が知られている。
【００６３】
機器情報記憶部２０１は、例えば通信Ｉ／Ｆ２００８のレジスタやＲＯＭ２００１から、予め記憶される識別情報および仕向け情報を読み出す。機器情報記憶部２０１に読み出された識別情報および仕向け情報は、通信部２００を介してＰＣ１０に送信される（ステップＳ１０４、ステップＳ１０５）。プリンタ２０ａから送信された識別情報および仕向け情報は、ＰＣ１０において通信部１０１に受信され、制御部１００に渡される（ステップＳ１０６）。すなわち、制御部１００は、プリンタ２０ａの機種を識別する識別情報を取得する識別情報取得部としても機能する。
【００６４】
制御部１００は、ステップＳ１０７で、ＰＣ１０のＯＳの情報（以下、ＯＳ情報）を取得する。ここで取得されるＯＳ情報は、少なくとも、ＯＳのバージョンを示すＯＳバージョン情報と、ＯＳが３２ビットＯＳおよび６４ビットＯＳの何れであるかといったアーキテクチャを示す情報とを含む。
【００６５】
次に、制御部１００は、ステップＳ１０６で取得したプリンタ２０ａの識別情報と、ステップＳ１０７で取得したＯＳ情報とに基づき、識別情報およびＯＳ情報に対応するドライバプログラムの属性情報の検索を要求する検索要求を、通信部１０１を介してサーバ３０に送信する（ステップＳ１０８、ステップＳ１０９）。
【００６６】
図１１は、第１の実施形態に適用可能な、ステップＳ１０８、ステップＳ１０９で制御部１００からサーバ３０に送信される検索要求の例を示す。図１１に例示されるように、検索要求は、例えば、サーバ３０の検索先のＵＲＬおよび検索要求コマンド（"https://1.example.com/Sreach/Web?Query"）に対して、検索コマンドにおける検索条件である識別情報（"PrinterA"）とＯＳ情報（"32bit")とが引数として付加されて構成される。なお、ＯＳ情報は、ＯＳバージョン情報やＯＳ名を明示的に示していてもよい。また、適用可能なＯＳが予め制限されている場合は、図１１の例のように、ＯＳのアーキテクチャを示す情報（"32bit"）のみを指定することで、ＯＳを特定することが可能である。
【００６７】
ステップＳ１０９でＰＣ１０から送信された検索要求は、サーバ３０において通信部３００により受信される。通信部３００は、例えば、受信した検索要求を配信部３０１に渡す。配信部３０１は、通信部３００から渡された検索要求に含まれる検索コマンドに従い、検索条件をドライバ属性情報記憶部３０２に渡し、ドライバ属性情報記憶部３０２に対して検索条件に適合するドライバプログラムの属性情報の検索を要求する。ドライバ属性情報記憶部３０２は、この要求に応じて、配信部３０１から渡された検索条件（この例では、識別情報およびＯＳ情報）に適合するドライバプログラムの属性情報を記憶している属性情報から検索し、検索結果として得られた属性情報を一覧として配信部３０１に渡す。
【００６８】
配信部３０１は、ドライバ属性情報記憶部３０２から渡された属性情報一覧を、検索要求に応じた検索結果として、通信部３００を介してＰＣ１０に送信する（ステップＳ１１０）。サーバ３０から送信された検索結果は、ＰＣ１０において、通信部１０１に受信されて制御部１００に渡される（ステップＳ１１１）。すなわち、制御部１００は、プリンタ２０ａの機種およびＰＣ１０のＯＳ情報に対応するドライバプログラムの属性情報を取得する属性情報取得部としても機能する。
【００６９】
図１２は、第１の実施形態に適用可能な、サーバ３０から送信される検索結果の例を示す。なお、図１２において、特に記載の無い限り、各行の先頭の数字は説明のための行番号を示し、続くコロン（：）でデータ本体を示すコードと区別されている。また、図１２に例示されるコードは、タグを用いてデータの意味や構造を定義して記述するマークアップ言語の一種であるＸＭＬ(Extensible  Markup  Language)を用いて記述される。これは一例であって、検索結果の記述方式は、特に限定されない。例えば、検索結果は、ＪＳＯＮ(JavaScript（登録商標）  Object  Notation)により記述してもよいし、バイナリ形式で記述してもよい。
【００７０】
図１２において、第１行目でこのデータが記述されるＸＭＬのバージョンと、エンコード方式とが定義され、第２行目の開始タグ「<Software>」と、４行目の終了タグ「</Software>」との間（第３行目）に、検索結果が記述される。検索結果は、１つのドライバプログラムに対応する属性情報が、１対の文字「<」および文字「>」により挟んで記述される。図１２の例では、第３行目において、表１で説明した属性情報の各項目「識別情報」、「ドライバアーキテクチャ」、「ＰＤＬ」、「表示言語」、「バージョン」および「取得情報」にそれぞれ対応する各値が、文字「<」に続けて「Driver  name」、「DriverArchitecture」、「PDL」、「language」、「version」および「DownloadURL」として記述され、文字「>」で終了されている。
【００７１】
この１対の文字「<」および文字「>」で挟んだ属性情報の記述を、開始タグ「<Software>」および終了タグ「</Software>」の間に複数記述することで、複数の属性情報を含む検索結果を構成できる。
【００７２】
制御部１００は、ステップＳ１１１で通信部１０１から渡された検索結果（属性情報一覧）に基づき、以下のステップＳ１１２〜ステップＳ１１８の処理により、ＰＣ１０にインストールすべきドライバプログラムを特定する。
【００７３】
先ず、制御部１００は、ステップＳ１１２およびステップＳ１１３で、ドライバプログラムのアーキテクチャによる絞り込みを行う。制御部１００は、ステップＳ１１２で、ステップＳ１１１で取得した検索結果をインストーラ１０２に渡し、アーキテクチャによる絞り込みを行うよう、インストーラ１０２に指示する。インストーラ１０２において、アーキテクチャ判定部１２１２は、この指示に従い、渡された検索結果における項目「ドライバアーキテクチャ」に示される情報と、ステップＳ１０７で制御部１００が取得したＰＣ１０のＯＳ情報とに基づき、検索結果に含まれる各属性情報から、インストール候補のドライバプログラムに対応する属性情報を抽出する。
【００７４】
図１３は、第１の実施形態に係る、アーキテクチャ判定部１２１２による判定処理の例を示すフローチャートである。ステップＳ１０で、アーキテクチャ判定部１２１２は、ＯＳ情報に基づき、ＰＣ１０のＯＳが高機能ドライバに対応しているか否かを判定する。一例として、高機能ドライバは、特定のバージョンのＯＳ（例えば高機能ドライバが開発された時点での最新のバージョンのＯＳ）が対応しているものとし、アーキテクチャ判定部１２１２は、ＯＳ情報に示されるＯＳバージョン情報が、この特定のバージョンを示しているか否かを判定する。アーキテクチャ判定部１２１２は、対応していると判定した場合（ステップＳ１０、「Ｙｅｓ」）、処理をステップＳ１１に移行させる。
【００７５】
ステップＳ１１で、アーキテクチャ判定部１２１２は、検索結果である属性情報一覧における各属性情報の項目「ドライバアーキテクチャ」に、高機能ドライバを示す値が含まれるか否かを判定する。アーキテクチャ判定部１２１２は、含まれると判定した場合（ステップＳ１１、「Ｙｅｓ」）、処理をステップＳ１２に移行させる。
【００７６】
ステップＳ１２で、アーキテクチャ判定部１２１２は、インストール対象のドライバプログラムを、高機能ドライバに絞り込む。より具体的には、アーキテクチャ判定部１２１２は、ステップＳ１１２で取得した属性情報一覧に含まれる各属性情報のうち、項目「ドライバアーキテクチャ」の値が「高機能」である各属性情報を抽出する。アーキテクチャ判定部１２１２は、抽出した各属性情報を検索結果として制御部１００に渡し（図１０のステップＳ１１３）、図１３のフローチャートによる一連の処理を終了させる。
【００７７】
アーキテクチャ判定部１２１２は、上述したステップＳ１０においてＰＣ１０のＯＳが高機能ドライバに対応していないと判定した場合（ステップＳ１０、「Ｎｏ」）、または、ステップＳ１１で検索結果が高機能ドライバを含まないと判定した場合（ステップＳ１１、「Ｎｏ」）、処理をステップＳ１３に移行させる。ステップＳ１３で、アーキテクチャ判定部１２１２は、ステップＳ１１２で取得した属性情報一覧に含まれる各属性情報のうち、項目「ドライバアーキテクチャ」の値が「中機能」である各属性情報を抽出する。
【００７８】
アーキテクチャ判定部１２１２は、抽出した各属性情報を検索結果として制御部１００に渡し（図１０のステップＳ１１３）、図１３のフローチャートによる一連の処理を終了させる。
【００７９】
なお、アーキテクチャ判定部１２１２は、図１３のフローチャートの処理において、ＯＳ情報に基づき、ＯＳが３２ビットＯＳおよび６４ビットＯＳの何れであるかを示す情報をさらに用いて各判定を行うことができる。一例として、高機能ドライバが６４ビットＯＳに対応し、３２ビットＯＳに対応しておらず、ＯＳ情報が３２ビットＯＳを示している場合、ステップＳ１０の判定において、高機能ドライバが対応していないＯＳであると判定される（ステップＳ１０、「Ｎｏ」）。また、ステップＳ１３において、インストール対象のドライバを中機能ドライバに絞り込む際に、この３２ビットＯＳおよび６４ビットＯＳを示すＯＳ情報に基づき、中機能ドライバに対してさらに絞りこみを行う。
【００８０】
図１０の説明に戻り、次に、制御部１００は、ステップＳ１１４〜ステップＳ１１６で、表示言語による絞り込みを行う。制御部１００は、ステップＳ１１４で、上述した図１３のフローチャートの処理に従いステップＳ１１３で渡された検索結果と、ステップＳ１０６で取得した仕向け情報とをインストーラ１０２に渡し、表示言語による絞り込みを行うよう、インストーラ１０２に指示する。インストーラ１０２において、表示言語判定部１２１１は、この指示に応じて、ＰＣ１０のＯＳから、現在設定されている表示言語（日本語、英語、など）を取得する（ステップＳ１１５）。表示言語判定部１２１１は、渡された検索結果における項目「表示言語」に示される情報と、ステップＳ１１５で制御部１００が取得した表示言語とに基づき、検索結果に含まれる各属性情報から、インストール候補のドライバプログラムに対応する属性情報を抽出する。
【００８１】
図１４は、第１の実施形態に係る、表示言語判定部１２１１による判定処理の例を示すフローチャートである。ステップＳ２０で、表示言語判定部１２１１は、ＰＣ１０のＯＳにおいて現在設定されている表示言語を取得する（図１０のステップＳ１１５）。例えば、ＯＳがＷｉｎｄｏｗｓ（登録商標）であれば、ＯＳの表示言語は、Ｗｉｎｄｏｗｓ（登録商標）  ＡＰＩ(Application  Programming  Interface)に装備される関数「GetUserDefaultUILanguage()」を用いて取得することができる。
【００８２】
次のステップＳ２１で、表示言語判定部１２１１は、制御部１００から渡された検索結果に含まれる各属性情報から、項目「表示言語」の値が、ステップＳ２０で取得した表示言語と一致する属性情報を検索する。次のステップＳ２２で、表示言語判定部１２１１は、検索の結果、該当する属性情報が見つかったか否かを判定する。表示言語判定部１２１１は、該当する属性情報が見つかったと判定した場合（ステップＳ２２、「Ｙｅｓ」）、処理をステップＳ２３に移行させる。
【００８３】
ステップＳ２３で、表示言語判定部１２１１は、ステップＳ２１の検索結果に基づきインストール対象のドライバプログラムを絞り込む。より具体的には、表示言語判定部１２１１は、ステップＳ１１４で取得した検索結果としての属性情報一覧に含まれる各属性情報のうち、項目「表示言語」の値として、ステップＳ２０で取得された表示言語が含まれる各属性情報を検索結果として制御部１００に渡し（図１０のステップＳ１１６）、図１４のフローチャートによる一連の処理を終了させる。
【００８４】
表示言語判定部１２１１は、上述したステップＳ２２において、該当する属性情報が見つからなかったと判定した場合（ステップＳ２２、「Ｎｏ」）、処理をステップＳ２４に移行させる。ステップＳ２４で、表示言語判定部１２１１は、インストーラ１０２から、図１０のステップＳ１０６において制御部１００に取得された仕向け情報を取得する。そして、表示言語判定部１２１１は、ステップＳ１１４で取得した検索結果に含まれる各属性情報のうち、項目「表示言語」の値が仕向け情報に対応する各属性情報を、検索結果として制御部１００に渡し（図１０のステップＳ１１６）、図１４のフローチャートによる一連の処理を終了させる。
【００８５】
なお、上述したように、仕向け情報は、プリンタ２０ａの出荷先に設定された、「国内」および「海外」といった地域を示す情報である。例えば、表示言語判定部１２１１は、仕向け情報に示される地域を示す情報と、当該地域に対して設定されるプリンタ２０ａのデフォルト言語との対応関係を示すテーブルを予め持っているものとする。このテーブルにおいて、デフォルト言語を示す値として、例えば仕向け情報の値「国内」には日本語を示す値「ｊａ」が対応付けられ、仕向け情報の値「海外」には英語を示す値「ｅｎ」が対応付けられる。
【００８６】
表示言語判定部１２１１は、検索結果に含まれる各属性情報のうち、項目「表示言語」の値が、プリンタ２０ａの仕向け情報を示す値に対応付けられるデフォルト言語を示す値に示される言語と一致または対応する各属性情報を、検索結果として制御部１００に渡す。
【００８７】
図１０の説明に戻り、次に、制御部１００は、ステップＳ１１７およびステップＳ１１８で、ＰＤＬによる絞り込みを行う。制御部１００は、ステップＳ１１７で、図１４のフローチャートの処理に従いステップＳ１１６で渡された検索結果をインストーラ１０２に渡し、ＰＤＬによる絞り込みを行うよう、インストーラ１０２に指示する。インストーラ１０２において、ＰＤＬ判定部１２１０は、この指示に応じて、検索結果に含まれる各属性情報における項目「ＰＤＬ」の値に対して、優先順位に従った判定を行う。
【００８８】
上述したように、ＰＤＬ判定部１２１０は、ＰＤＬの種類に対して予め定められた優先順位を示す情報を有している。ここでは、上述した表１に示した項目「ＰＤＬ」に示される各ＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」に対し、優先順位が「ＰＤＬ＃１」＞「ＰＤＬ＃２」＞「ＰＤＬ＃３」とされ、ＰＤＬ種類「ＰＤＬ＃１」が最も優先順位が高く、ＰＤＬ種類「ＰＤＬ＃３」が最も優先順位が低く設定されているものとする。
【００８９】
なお、各ＰＤＬ種類に対して設定される優先順位は、例えば、第１の実施形態に係る情報処理プログラムの提供元が策定した最も高機能なＰＤＬ種類を、最も高い優先順位に設定する。一例として、プリンタ２０ａの製造元であるメーカが提供する当該情報処理プログラムにおいて、プリンタ２０ａにおいて最も高機能、多機能を実現可能なＰＤＬ種類の優先順位を、最も高く設定する。例えば、プリンタ２０ａは、当該プリンタ２０ａの製造元により開発されたＰＤＬを適用することで、最も高機能、多機能を実現可能である。
【００９０】
他のＰＤＬ種類については、例えばプリンタ２０ａに適用した場合にこの最高優先順位のＰＤＬ種類に対して機能が低くなる順に、順次低い優先順位を設定する。この、他のＰＤＬ種類については、例えば、当該プリンタ２０ａと、当該プリンタ２０ａの製造元とは異なる、他メーカにより提供されるプリンタとに共通して対応可能な、標準的なＰＤＬ種類であってもよい。
【００９１】
一例として、上述したＲＰＣＳ、ＰＣＬ６およびＰＳの各ＰＤＬ種類において、プリンタ２０ａがＰＤＬ種類「ＲＰＣＳ」に対応したドライバプログラムを適用した場合に最も高機能、多機能を実現可能である場合について考える。この場合、プリンタ２０ａの機種に対して、ＰＤＬ種類「ＰＲＣＳ」の優先順位を最も高く設定し、他のＰＤＬ種類「ＰＣＬ６」、「ＰＳ」の優先順位をＰＤＬ種類「ＰＲＣＳ」の優先順位よりも低く設定することが考えられる。
【００９２】
なお、各ＰＤＬ種類に対する優先順位の設定ルールは、この例に限定されない。
【００９３】
図１５は、第１の実施形態に係る、ＰＤＬ判定部１２１０による判定処理の例を示すフローチャートである。なお、以下では、上述したＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」を、適宜、優先順位の高い方からそれぞれＰＤＬ種類「第１のＰＤＬ」、「第２のＰＤＬ」および「第３のＰＤＬ」として説明する。
【００９４】
図１５において、ステップＳ３０で、ＰＤＬ判定部１２１０は、検索結果の各属性情報のうち少なくとも１つが、最も優先順位が高く設定されたＰＤＬ種類「第１のＰＤＬ」に対応しているか否かを判定する。より具体的には、ＰＤＬ判定部１２１０は、検索結果の各属性情報のうち、項目「ＰＤＬ」の値がＰＤＬ種類「第１のＰＤＬ」を示す属性情報が存在するか否かを判定する。
【００９５】
ＰＤＬ判定部１２１０は、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ３０、「Ｙｅｓ」）、処理をステップＳ３１に移行させる。ステップＳ３１で、ＰＤＬ判定部１２１０は、ステップＳ３０の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択する。ＰＤＬ判定部１２１０は、選択したドライバプログラムの属性情報を、検索結果として制御部１００に渡す（図１０のステップＳ１１８）。そして、図１５のフローチャートによる一連の処理を終了させる。
【００９６】
なお、この段階では、上述した図１３および図１４のフローチャートの各処理により、識別情報に対応する各属性情報が、項目「ドライバアーキテクチャ」および「表示言語」の値で絞り込まれているので、１つのドライバプログラムがインストール対象として選択されることになる。
【００９７】
ＰＤＬ判定部１２１０は、ステップＳ３０において、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ３０、「Ｎｏ」）、処理をステップＳ３２に移行させる。ステップＳ３２で、ＰＤＬ判定部１２１０は、検索結果の各属性情報のうち少なくとも１つが、ＰＤＬ種類「第１のＰＤＬ」の次に優先順位が高く設定されたＰＤＬ種類「第２のＰＤＬ」に対応しているか否かを判定する。
【００９８】
ＰＤＬ判定部１２１０は、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ３２、「Ｙｅｓ」）、処理をステップＳ３３に移行する。ステップＳ３３で、ＰＤＬ判定部１２１０は、ステップＳ３２の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択する。ＰＤＬ判定部１２１０は、選択したドライバプログラムの属性情報を、検索結果として制御部１００に渡す（図１０のステップＳ１１８）。そして、図１５のフローチャートによる一連の処理を終了させる。
【００９９】
ＰＤＬ判定部１２１０は、ステップＳ３２において、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ３２、「Ｎｏ」）、処理をステップＳ３４に移行させる。ステップＳ３４で、ＰＤＬ判定部１２１０は、検索結果の各属性情報のうち少なくとも１つが、ＰＤＬ種類「第２のＰＤＬ」の次に優先順位が高く設定されたＰＤＬ種類「第３のＰＤＬ」に対応しているか否かを判定する。
【０１００】
ＰＤＬ判定部１２１０は、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ３４、「Ｙｅｓ」）、処理をステップＳ３５に移行する。ステップＳ３５で、ＰＤＬ判定部１２１０は、ステップＳ３４の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択する。ＰＤＬ判定部１２１０は、選択したドライバプログラムの属性情報を、検索結果として制御部１００に渡す（図１０のステップＳ１１８）。そして、図１５のフローチャートによる一連の処理を終了させる。
【０１０１】
ＰＤＬ判定部１２１０は、ステップＳ３４において、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ３４、「Ｎｏ」）、処理をステップＳ３６に移行させる。ステップＳ３６で、ＰＤＬ判定部１２１０は、図１０のステップＳ１０５、ステップＳ１０６で取得した識別情報に対応するドライバプログラムが存在しないと判定し、図１５のフローチャートによる一連の処理を終了させる。この場合、ＰＤＬ判定部１２１０は、例えば制御部１００に対して、対応するドライバプログラムが存在しない旨を通知することができる。
【０１０２】
なお、図１５では、判定対象のＰＤＬ種類を３種類とし、ステップＳ３０、ステップＳ３２およびステップＳ３４の３段階でＰＤＬの判定を行っているが、これはこの例に限定されない。すなわち、図１５のフローチャートにおいて、属性情報が優先順位に応じたＰＤＬ種類に対応するか否かの判定処理（例えばステップＳ３０）と、ＰＤＬ種類に対応する属性情報に対応するドライバプログラムをインストール対象として選択する処理（例えばステップＳ３１）との組を、判定対象のＰＤＬ種類の数に応じて繰り返すことができる。これにより、４種類以上のＰＤＬ種類、あるいは、２種類以下のＰＤＬ種類についても、同様に判定処理を実行できる。
【０１０３】
説明は、図１０に戻り、制御部１００は、ステップＳ１１８でＰＤＬ判定部１２１０から取得した検索結果に基づき、インストール対象のドライバプログラムを特定する（ステップＳ１１９）。制御部１００は、ＰＤＬ判定部１２１０から取得した検索結果である属性情報から、項目「取得情報」の値（ＵＲＬ）を抽出し、抽出したＵＲＬを宛先として、ドライバプログラムのダウンロード（ＤＬ）を要求する（ステップＳ１２０、ステップＳ１２１）。図１０の例では、サーバ３０がドライバプログラムを記憶し、当該ＵＲＬがサーバ３０内にドライバプログラムが記憶される位置を示しているものとする。
【０１０４】
サーバ３０は、ＰＣ１０からの、制御部１００によるダウンロード要求に応じて、当該ＵＲＬに記憶されるドライバプログラムをＰＣ１０に送信する（ステップＳ１２２）。ＰＣ１０において、通信部１０１は、サーバ３０から送信されダウンロードされたドライバプログラムを受信し、受信したドライバプログラムを制御部１００に渡す（ステップＳ１２３）。すなわち、制御部１００は、取得情報に基づきドライバプログラムを取得するプログラム取得部としても機能する。
【０１０５】
制御部１００は、インストール部１２０に対して、ダウンロードされたドライバプログラムのＰＣ１０へのインストール処理を指示する（ステップＳ１２４）。インストール部１２０は、この指示に従い、ドライバプログラムをＰＣ１０にインストールする（ステップＳ１２５）。
【０１０６】
ここで、上述したステップＳ１１２〜ステップＳ１１８によるドライバプログラムの絞り込み処理について、表１を参照して、より具体的に説明する。なお、ここでは、プリンタ２０ａに対応するドライバプログラムをインストールする場合において、ステップＳ１０６で制御部１００が取得した識別情報が機種「プリンタ＃Ａ」を示し、且つ、プリンタ２０ａの仕向け先が「日本」であるものとする。また、ＰＣ１０において、ＯＳは、表示言語が「日本語」とされ、３２ビットＯＳであり、且つ、バージョンが、高機能ドライバに対応する特定バージョンとは異なるバージョンであるものとする。
【０１０７】
先ず、ステップＳ１０１〜ステップＳ１１１により、制御部１００は、プリンタ２０ａから識別情報および仕向け情報を取得し、識別情報に基づき、サーバ３０から識別情報が対応する属性情報を取得する。表１の例では、項目「識別情報」の値が「プリンタ＃Ａ」である、第１行目〜第７行目（項目名行を除く。以下同様）の７の属性情報が取得される。
【０１０８】
制御部１００は、ステップＳ１１２〜ステップＳ１１３において、アーキテクチャ判定部１２１２により、図１３のフローチャートによる処理に従い、取得した各属性情報に対してドライバアーキテクチャによる絞り込みを行う。この例では、ＰＣ１０のＯＳが、高機能ドライバには対応しておらず、且つ、アーキテクチャが３２ビットＯＳであるため、表１において第３行目、第５行目および第７行目の属性情報が検索結果として取得される。
【０１０９】
次に、制御部１００は、ステップＳ１１４〜ステップＳ１１６において、表示言語判定部１２１１により、図１４のフローチャートによる処理に従い、ステップＳ１１２〜ステップＳ１１３の検索結果として取得された各属性情報に対して、ＯＳの表示言語による絞り込みを行う。この例では、ＯＳの現在の表示言語が「日本語」であるため、上述のステップＳ１１２〜ステップＳ１１３で絞り込まれた各属性情報、すなわち、表１の第３行目、第５行目および第７行目の属性情報がそのまま、検索結果として取得される。
【０１１０】
次に、制御部１００は、ステップＳ１１７〜ステップＳ１１８において、ＰＤＬ判定部１２１０により、図１５のフローチャートによる処理に従い、ステップＳ１１４〜ステップＳ１１６の検索結果として取得された各属性情報に対して、項目「ＰＤＬ」に対する優先順位判定を行う。この例では、優先順位がＰＤＬ情報「ＰＤＬ＃１」＞「ＰＤＬ＃２」＞「ＰＤＬ＃３」となっている。そのため、上述のステップＳ１１４〜ステップＳ１１６で絞り込まれた各属性情報、すなわち、表１の第３行目、第５行目および第７行目の属性情報のうち、項目「ＰＤＬ」の値が最も高い優先順位を示す値「ＰＤＬ＃１」である、第３行目の属性情報が検索結果として取得される。
【０１１１】
制御部１００は、この、検索結果として取得された、表１における第３行目の属性情報の項目「取得情報」に示されるＵＲＬに従い、ドライバプログラムのダウンロードを行う。
【０１１２】
このように、第１の実施形態では、例えばプリンタ２０ａをＰＣ１０から利用するためのドライバプログラムを、プリンタ２０ａから取得した情報と、ＰＣ１０のＯＳ情報とに基づき選択している。そのため、ユーザがドライバプログラムを明示的に指定すること無く、プリンタ２０ａおよびＰＣ１０に適合したドライバプログラムを自動的に取得することができる。
【０１１３】
また、このとき、ＰＤＬ種類に予め優先順位を設定し、ドライバプログラムを、優先順位が高く設定されたＰＤＬ種類から順に選択するようにしている。そのため、ユーザがドライバプログラムを明示的に指定すること無く、プリンタ２０ａの機能を適切に利用可能なドライバプログラムを自動的に取得することができる。
【０１１４】
さらに、ドライバプログラムの提供側においては、各機種に対応する複数のドライバプログラムそれぞれが機種毎に異なるＰＤＬに対応する場合であっても、優先的にインストールさせたいＰＤＬを機種毎に指定する必要が無い。すなわち、各機種に対して適切なＰＤＬに対応するドライバプログラムを、共通のインストーラによりインストールさせることが可能である。
【０１１５】
なお、上述において、第１の実施形態では、図１０のステップＳ１１２〜ステップＳ１１８に示したように、ドライバアーキテクチャによる絞り込みを行い（ステップＳ１１２〜ステップＳ１１３）、次にＯＳの表示現語による絞り込みを行い（ステップＳ１１４〜ステップＳ１１６）、最後にＰＤＬ種類による絞り込みを行っている（ステップＳ１１７〜ステップＳ１１８）が、これはこの例に限定されない。例えば、ステップＳ１１２〜ステップＳ１１３におけるドライバアーキテクチャによる絞り込みと、ステップＳ１１４〜ステップＳ１１６におけるＯＳの表示現語による絞り込みとのうち、何れか一方または両方を省略してもよい。
【０１１６】
なお、上述では、ドライバプログラムがプリンタを制御するためのプリンタドライバプログラムであるとして説明したが、これはこの例に限定されない。例えば、第１の実施形態に対して、スキャナを制御するためのスキャナドライバプログラムを適用することも可能である。例えば、Ｗｉｎｄｏｗｓ（登録商標）がＯＳである場合、適用可能なスキャナドライバプログラムとして代表的なものに、ＴＷＡＩＮおよびＷＩＡ(Windows（登録商標）  Image  Acquisition)がある。これらのドライバプログラムの属性情報において共通する項目の情報に優先順位を設定することで、上述したような、プリンタドライバと同様にして、適切なドライバプログラムを選択してインストールすることが可能である。
【０１１７】
（第２の実施形態）
次に、第２の実施形態について説明する。上述した第１の実施形態では、図１０のステップＳ１００によるドライバプログラムのインストール指示後の処理が、制御部１００により全て自動で進行するようにしていた。これに対して、第２の実施形態は、インストールするドライバプログラムをユーザ操作により選択するためのＵＩ(User  Interface)を設けている。
【０１１８】
図１６は、第２の実施形態に係るインストーラ１０２’の機能を説明するための一例の機能ブロック図である。なお、図１６において、上述した図７と共通する部分には同一の符号を付して、詳細な説明を省略する。図１６において、インストーラ１０２’は、図７に示したインストーラ１０２に対してＵＩ部１２２が追加されている。ＵＩ部１２２は、制御部１００の指示に従いユーザに情報を提示し、ユーザ操作を促すための表示画面を生成し、表示部１０３により表示させる。また、ＵＩ部１２２は、生成した表示画面に応じてなされたユーザ操作を、入力部１０４を介して受け取り、制御部１００に渡す。
【０１１９】
また、インストーラ１０２’において、ＰＤＬ判定部１２１０’は、検索結果に含まれる各属性情報における項目「ＰＤＬ」の値に対して、優先順位に従った判定を行い、インストール対象の候補のドライバプログラムを抽出する。
【０１２０】
第２の実施形態において、プリンタ２０ａおよびサーバ３０の機能は、図８および図９を用いて説明した機能と同一であるので、ここでの説明を省略する。
【０１２１】
次に、第２の実施形態に係るドライバプログラムのＰＣ１０に対する導入処理について、より具体的に説明する。図１７は、第２の実施形態に係るドライバプログラムのＰＣ１０への導入処理の流れを示す一例のシーケンス図である。なお、図１７において、上述した図１０および図１６と対応する部分には同一の符号を付して、詳細な説明を省略する。
【０１２２】
図１７において、ステップＳ１００〜ステップＳ１１６の処理は、上述した図１０におけるステップＳ１００〜ステップＳ１１６の処理と同一であるので、ここでの説明を省略する。
【０１２３】
制御部１００は、ステップＳ１１６までの処理によりドライバアーキテクチャおよびＯＳの表示言語により絞り込まれた検索結果に対して、ステップＳ２００およびステップＳ２０１で、ＰＤＬ種類に基づきインストール対象の候補のドライバプログラムの一覧を作成する。制御部１００は、ステップＳ２００で、図１４のフローチャートの処理に従いステップＳ１１６で渡された検索結果をインストーラ１０２’に渡し、ＰＤＬによる判定を行ってインストール対象の候補となる属性情報を抽出するよう、インストーラ１０２’に指示する。
【０１２４】
図１８は、第２の実施形態に係る、ＰＤＬ判定部１２１０’による判定処理の例を示すフローチャートである。各ＰＤＬ情報の優先順位は、図１５で説明した優先順位と同一であるものとする。図１８において、ステップＳ４０で、ＰＤＬ判定部１２１０’は、検索結果の各属性情報のうち少なくとも１つが、最も優先順位が高く設定されたＰＤＬ種類「第１のＰＤＬ」に対応しているか否かを判定する。
【０１２５】
ＰＤＬ判定部１２１０’は、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ４０、「Ｙｅｓ」）、処理をステップＳ４１に移行させる。ステップＳ４１で、ＰＤＬ判定部１２１０’は、ステップＳ４０の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択し、選択したドライバプログラムを、インストール候補のドライバプログラム一覧に追加する。そして、ＰＤＬ判定部１２１０’は、処理をステップＳ４２に移行させる。
【０１２６】
一方、ＰＤＬ判定部１２１０’は、ステップＳ４０において、ＰＤＬ種類「第１のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ４０、「Ｎｏ」）、処理をステップＳ４２に移行させる。
【０１２７】
ステップＳ４２で、ＰＤＬ判定部１２１０’は、検索結果の各属性情報のうち少なくとも１つがＰＤＬ種類「第２のＰＤＬ」に対応しているか否かを判定する。
【０１２８】
ＰＤＬ判定部１２１０’は、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ４２、「Ｙｅｓ」）、処理をステップＳ４３に移行する。ステップＳ４３で、ＰＤＬ判定部１２１０’は、ステップＳ４２の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択し、上述した、インストール候補のドライバプログラム一覧に追加する。そして、ＰＤＬ判定部１２１０’は、処理をステップＳ４４に移行させる。
【０１２９】
一方、ＰＤＬ判定部１２１０’は、ステップＳ４２において、ＰＤＬ種類「第２のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ４２、「Ｎｏ」）、処理をステップＳ４４に移行させる。
【０１３０】
ステップＳ４４で、ＰＤＬ判定部１２１０’は、検索結果の各属性情報のうち少なくとも１つがＰＤＬ種類「第３のＰＤＬ」に対応しているか否かを判定する。
【０１３１】
ＰＤＬ判定部１２１０’は、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報が存在すると判定した場合（ステップＳ４４、「Ｙｅｓ」）、処理をステップＳ４５に移行する。ステップＳ４５で、ＰＤＬ判定部１２１０’は、ステップＳ４４の判定結果に従い、検索結果の各属性情報のうち、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報に対応するドライバプログラムを、インストール対象として選択し、上述した、インストール候補のドライバプログラム一覧に追加する。そして、ＰＤＬ判定部１２１０’は、処理をステップＳ４６に移行させる。
【０１３２】
一方、ＰＤＬ判定部１２１０’は、ステップＳ４４において、ＰＤＬ種類「第３のＰＤＬ」に対応する属性情報が存在しないと判定した場合（ステップＳ４４、「Ｎｏ」）、処理をステップＳ４６に移行させる。
【０１３３】
ステップＳ４６で、ＰＤＬ判定部１２１０’は、ステップＳ４１、ステップＳ４３およびステップＳ４５においてインストール候補のドライバプログラムが追加されたドライバプログラム一覧を出力し、制御部１００に渡す（図１７のステップＳ２０１）。
【０１３４】
制御部１００は、ＰＤＬ判定部１２１０’から渡されたインストール候補のドライバプログラム一覧に基づき、インストールを行うドライバプログラムを選択するための選択肢一覧を作成する。表２は、表１の各属性情報に基づき作成された選択肢一覧の例を、プリンタの識別情報毎に示す。
【０１３５】
【表２】
0006613927.tif 000003
【０１３６】
表２に例示されるように、例えば、ＰＣ１０から利用するために選択されたプリンタが、識別情報「プリンタ＃Ａ」の機種である場合、インストール候補のドライバプログラムは、ＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」にそれぞれ対応するドライバプログラムとなる。制御部１００は、これらＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」にそれぞれ対応するドライバプログラムを含めて選択肢一覧を作成する。
【０１３７】
このとき、制御部１００は、ＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」にそれぞれ対応するドライバプログラムを示すドライバ名「ＰＤＬ＃１ドライバ」、「ＰＤＬ＃２ドライバ」および「ＰＤＬ＃３ドライバ」を、それぞれ対応するＰＤＬ種類「ＰＤＬ＃１」、「ＰＤＬ＃２」および「ＰＤＬ＃３」の優先順位に従った順番で並べて、選択肢一覧を作成する。表２の例では、最も優先順位の高いＰＤＬ種類「ＰＤＬ＃１」に対応するドライバプログラムのドライバ名「ＰＤＬ＃１ドライバ」が選択肢一覧の先頭に配置される。また、最も優先順位の低いＰＤＬ種類「ＰＤＬ＃３」に対応するドライバプログラムのドライバ名「ＰＤＬ＃３ドライバ」が選択肢一覧の末尾に配置される。
【０１３８】
選択されたプリンタが識別情報「プリンタ＃Ｂ」や「プリンタ＃Ｃ」の場合も、同様にして、各ドライバプログラムが、対応するＰＤＬ種類の優先順位に従った順番で並べられて、選択肢一覧が作成される。
【０１３９】
図１７の説明に戻り、制御部１００は、作成した選択肢一覧をＵＩ部１２２に渡し、選択肢一覧からインストールを行うドライバプログラムを選択するための選択肢一覧画面を作成するようにＵＩ部１２２に指示する（ステップＳ２０２）。ＵＩ部１２２は、制御部１００から渡された選択肢一覧に基づき選択肢一覧画面を作成し、表示部１０３によりＰＣ１０のディスプレイ１００４に表示させる。
【０１４０】
図１９は、第１の実施形態に係る、ＵＩ部１２２により作成された選択肢一覧画面４００の例を示す。図１９において、選択肢一覧画面４００は、メッセージ表示部４０１と、選択部４０２と、拡張ボタン４０３と、「ＯＫ」ボタン４０４と、「キャンセル」ボタン４０５とを含む。メッセージ表示部４０１は、例えばドライバプログラムの選択を促すメッセージが表示される。選択部４０２は、選択肢一覧における各ドライバプログラムのドライバ名「ＰＤＬ＃１ドライバ」、「ＰＤＬ＃２ドライバ」および「ＰＤＬ＃３ドライバ」が、対応するＰＤＬ種類の優先順位に従った順番で表示される。
【０１４１】
拡張ボタン４０３は、選択部４０２の表示領域を拡張する。例えば、選択部４０２は、デフォルトの状態では、選択肢一覧に含まれる各ドライバプログラムのうち、対応するＰＤＬ種類の優先順位が最も高いドライバプログラムのみが表示される。この状態で拡張ボタン４０３を操作することで、選択部４０２に対して、選択肢一覧に含まれる全てのドライバプログラムの情報が表示されるようになる。図１９の例は、拡張ボタン４０３が操作され選択肢一覧に含まれる全てのドライバプログラムの情報が表示されている状態を示している。
【０１４２】
「ＯＫ」ボタン４０４は、操作することで、選択部４０２で指定されたドライバプログラムがインストール対象として選択される。図１９の例では、選択部４０２に表示されるドライバ名「ＰＤＬ＃１ドライバ」、「ＰＤＬ＃２ドライバ」および「ＰＤＬ＃３ドライバ」のうちドライバ名「ＰＤＬ＃２ドライバ」が指定されている。この状態で「ＯＫ」ボタン４０４を操作することで、指定されたドライバ名「ＰＤＬ＃２ドライバ」のドライバプログラムが、インストールを行うドライバプログラムとして選択される。
【０１４３】
「キャンセル」ボタン４０５は、この選択肢一覧画面４００に係る処理をキャンセルする。例えば、「キャンセル」ボタン４０５を操作することで、例えばＰＣ１０に対するドライバプログラムのインストール処理が中止される。
【０１４４】
説明は図１７に戻り、ＵＩ部１２２は、選択肢一覧画面４００に対して、選択部４０２でドライバプログラムが指定され、「ＯＫ」ボタン４０４が操作されるユーザ入力がなされると（ステップＳ２０３）、ドライバプログラムの選択結果を制御部１００に渡す（ステップＳ２０４）。
【０１４５】
制御部１００は、ステップＳ２０４でＵＩ部１２２から渡されたドライバプログラムの選択結果に基づき、インストール対象のドライバプログラムを特定する（ステップＳ１１９）。以降、ステップＳ１２０〜ステップＳ１２５の処理は、図１０で説明した処理と同様であるので、ここでの説明を省略する。
【０１４６】
このように、第２の実施形態においては、インストールを行うドライバプログラムを、選択肢一覧画面４００に表示されたインストール候補の各ドライバプログラムから、ユーザ操作に応じて選択することができる。そのため、ユーザは、例えば最も高機能ではなくても用途に適したドライバプログラムをインストールすることが可能である。また、選択肢一覧画面４００は、各ドライバプログラムが優先順位に従った順序で表示されるため、より高機能なドライバプログラムを選択することも容易である。
【０１４７】
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１４８】
１０  ＰＣ
２０ａ，２０ｂ  プリンタ
３０  サーバ
４０  ネットワーク
１００  制御部
１０１，２００，３００  通信部
１０２，１０２’  インストーラ
１０３  表示部
１０４  入力部
１２０  インストール部
１２１  選択部
１２２  ＵＩ部
２０１  機器情報記憶部
３０１  配信部
３０２  ドライバ属性情報記憶部
４００  選択肢一覧画面
４０２  選択部
１２１０，１２１０’  ＰＤＬ判定部
１２１１  表示言語判定部
１２１２  アーキテクチャ判定部
【先行技術文献】
【特許文献】
【０１４９】
【特許文献１】特開２０１２−２５２５２６号公報
【図１】
0006613927.tif 000004
【図２】
0006613927.tif 000005
【図３】
0006613927.tif 000006
【図４】
0006613927.tif 000007
【図５】
0006613927.tif 000008
【図６】
0006613927.tif 000009
【図７】
0006613927.tif 000010
【図８】
0006613927.tif 000011
【図９】
0006613927.tif 000012
【図１０】
0006613927.tif 000013
【図１１】
0006613927.tif 000014
【図１２】
0006613927.tif 000015
【図１３】
0006613927.tif 000016
【図１４】
0006613927.tif 000017
【図１５】
0006613927.tif 000018
【図１６】
0006613927.tif 000019
【図１７】
0006613927.tif 000020
【図１８】
0006613927.tif 000021
【図１９】
0006613927.tif 000022