(57)【要約】      （修正有）【課題】ＵＩ操作に対するユーザの負担を軽減可能とする。【解決手段】情報処理装置ＰＣ１０は、機種を特定する機種特定情報とユーザインタフェースの種類とを対応付けたテーブルを予め記憶する記憶部と、接続される機器の機種特定情報を取得する取得部と、接続される機器の機種を、処理対象の第１の機種３０ａと処理対象ではない第２の機種３０ｂとに識別する識別部と、機種特定情報に基づきテーブルを参照し、種類のうち第１の機種に対応する第１の種類と、第２の機種に対応する第２の種類とを特定する特定部とを備える。【選択図】図７
2016177704.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器に接続可能であって、何れかの前記機器に対応する前記機器へ処理の要求を行うための制御プログラムがサーバから送信される情報処理装置であって、
前記接続される複数の機器の機種を特定する機種特定情報を取得する取得部と、
前記接続される複数の機器の機種を、前記サーバから送信される前記制御プログラムと対応する第１の機種と、該第１の機種とは異なる第２の機種とに識別する識別部と、
前記識別部によって識別された機種の前記機種特定情報と、前記機種特定情報と前記機器へ要求する処理に関する設定を受け付けるためのユーザインタフェースの種類とを対応付けた対応情報とに基づいて、前記ユーザインタフェースの種類のうち前記第１の機種に対応する第１の種類と、前記第２の機種に対応する第２の種類とを特定する特定部と
を備える情報処理装置。
【請求項２】
前記制御プログラムによって表示するユーザインタフェースの種類を、前記第１の種類および前記第２の種類の何れかに決定する決定部をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
ユーザ入力に応じて前記決定を行うための選択入力部を表示する画面を生成する画面生成部をさらに備える
請求項２に記載の情報処理装置。
【請求項４】
前記画面は、第１の種類に対応する第１の機種と第２の種類に対応する第２の機種とを識別可能に表示する画面であって、第１の種類と第２の種類の何れかをユーザが選択可能な画面である
請求項３に記載の情報処理装置。
【請求項５】
前記画面生成部は、
前記第１の種類を示す画像と前記第２の種類を示す画像とを前記画面にさらに表示させる
請求項４に記載の情報処理装置。
【請求項６】
前記決定部は、
前記第１の機種に対して適用するユーザインタフェースの種類を、前記第１の種類と前記第２の種類とのうちバージョンの古い方に決定する
請求項２に記載の情報処理装置。
【請求項７】
前記ユーザインタフェースは、前記接続される機器を制御する機器制御部に対して設定を行うための設定入力部を含み、
前記決定部により決定された種類の前記ユーザインタフェースを前記機器制御部に結合する結合部
をさらに備える
請求項２乃至請求項６の何れか１項に記載の情報処理装置。
【請求項８】
前記特定部は、
前記第２の機種に対応する前記種類のうち、前記第１の種類と異なる種類を前記第２の種類として特定する
請求項１乃至請求項７の何れか１項に記載の情報処理装置。
【請求項９】
前記選択部は、
前記第２の種類が前記第１の種類と一致する場合、前記選択画面を表示させない
請求項３乃至請求項５のうち何れか１項に記載の情報処理装置。
【請求項１０】
複数の機器に接続可能であって、何れかの前記機器に対応する前記機器へ処理の要求を行うための制御プログラムがサーバから送信される情報処理装置に情報処理方法をコンピュータに実行させるための情報処理プログラムであって、
前記情報処理方法は、
前記接続される複数の機器の機種を特定する機種特定情報を取得する取得ステップと、
前記接続される複数の機器の機種を、前記サーバから送信される前記制御プログラムと対応する第１の機種と、該第１の機種とは異なる第２の機種とに識別する識別ステプと、
前記識別ステプによって識別された機種の前記機種特定情報と、前記機種特定情報と前記機器へ要求する処理に関する設定を受け付けるためのユーザインタフェースの種類とを対応付けた対応情報とに基づいて、前記ユーザインタフェースの種類のうち前記第１の機種に対応する第１の種類と、前記第２の機種に対応する第２の種類とを特定する特定ステップと
を備える情報処理プログラム。
【請求項１１】
機器の機種を特定するための機種特定情報と、前記機器へ要求する処理に関する設定を受け付けるためのユーザインタフェースの種類とを対応付けた対応情報を記憶する記憶部と、
接続される複数の機器の機種を特定する前記機種特定情報を取得する取得部と、
前記接続される複数の機器の機種を、何れかの前記機器に対応する前記機器へ処理の要求を行うための制御プログラムと対応する第１の機種と、該第１の機種とは異なる第２の機種とに識別する識別部と、
前記識別部によって識別された機種の前記機種特定情報と、前記対応情報とに基づいて、前記ユーザインタフェースの種類のうち前記第１の機種に対応する第１の種類と、前記第２の機種に対応する第２の種類とを特定する特定部と
を備える情報処理システム。
【請求項１２】
画像データに従い媒体に画像を形成する画像形成部を含む機器としての画像処理装置であって、
機器の機種を特定するための機種特定情報と、前記機器へ要求する処理に関する設定を受け付けるためのユーザインタフェースの種類とを対応付けた対応情報を記憶する記憶部と、
当該画像処理装置と、当該画像処理装置に接続される１以上の機器とについて前記機種特定情報を取得する取得部と、
前記前記機種特定情報と、前記対応情報とに基づいて、前記ユーザインタフェースの種類のうち前記第１の機種に対応する第１の種類と、前記第２の機種に対応する第２の種類とを特定する特定部と
を備える画像処理装置。
【請求項１３】
当該画像処理装置は、外部の情報処理装置に搭載される機器制御部により制御され、
前記ユーザインタフェースは、前記機器制御部に対して設定を行うための設定入力部を含み、
前記取得部は、さらに、
接続される前記情報処理装置のうち前記機器制御部の搭載を制御する搭載制御部を含む情報処理装置を示す情報処理装置特定情報を取得し、
前記ユーザインタフェースを適用する情報処理装置を前記情報処理装置特定情報に基づき選択可能な情報処理装置選択部をさらに備える
請求項１２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム、情報処理システムおよび画像処理装置に関する。
【背景技術】
【０００２】
例えばプリンタドライバといった、コンピュータに接続して用いる機器を制御するためのプログラムにおいて、機器から情報を取得して、当該機器のオプション機能を設定するＵＩ(User  Interface)の表示／非表示を変更したり、設定ファイルを読み込んでＵＩにおいて用いられる用語を変更させる技術が知られている。
【０００３】
例えば、特許文献１には、プリンタから言語情報を含む機能情報をプリンタドライバに渡し、ＵＩの表示文字列をＯＳ(Operating  System)の言語環境に応じて変更する技術が開示されている。特許文献１に記載の技術によれば、プリンタの機能可能長に伴い新たに追加された文字列や、ＯＳが用意していない文字列を正しい言語で表示させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来技術では、元となるＵＩがベースとなって、機器オプション機能設定のＵＩの表示／非表示の切り替えや、新たな設定に対応するためにＵＩで用いる用語を置き換えを行っていた。
【０００５】
一方、例えば接続されているプリンタを他のプリンタに交換したような場合、ベンダの都合で、交換前のプリンタに対応するプリンタドライバと、交換後のプリンタに対応するプリンタドライバとで互いに設定の表示位置や表示方法が大幅に異なるＵＩが用いられることがある。このような場合、ユーザは、交換後のＵＩに対する操作を新たに学習する必要があり、負担がかかるという問題点があった。この問題点は、上述した特許文献１の技術によっても解決できていない。
【０００６】
本発明は、上記に鑑みてなされたものであって、ＵＩ操作に対するユーザの負担を軽減可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、複数の機器に接続可能であって、何れかの機器に対応する機器へ処理の要求を行うための制御プログラムがサーバから送信される情報処理装置であって、接続される複数の機器の機種を特定する機種特定情報を取得する取得部と、接続される複数の機器の機種を、サーバから送信される制御プログラムと対応する第１の機種と、第１の機種とは異なる第２の機種とに識別する識別部と、識別部によって識別された機種の機種特定情報と、機種特定情報と機器へ要求する処理に関する設定を受け付けるためのユーザインタフェースの種類とを対応付けた対応情報とに基づいて、ユーザインタフェースの種類のうち第１の機種に対応する第１の種類と、第２の機種に対応する第２の種類とを特定する特定部とを備える。
【発明の効果】
【０００８】
本発明によれば、ＵＩ操作に対するユーザの負担が軽減可能となるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る情報処理システムの一例の構成を示すブロック図である。
【図２】図２は、第１の実施形態に係る配信サーバの機能を説明するための一例の機能ブロック図である。
【図３】図３は、第１の実施形態に適用可能なＵＩテーブルの一例を示す図である。
【図４】図４は、第１の実施形態に係るＰＣの機能を説明するための機能ブロック図である。
【図５】図５は、第１の実施形態に適用可能なＰＣの一例のハードウェア構成を示すブロック図である。
【図６】図６は、第１の実施形態に適用可能な配信サーバの一例のハードウェア構成を示すブロック図である。
【図７】図７は、第１の実施形態に係るインストール処理の流れを示す図である。
【図８】図８は、第１の実施形態に適用可能な選択画面の一例を示す図である。
【図９】図９は、第１の実施形態に係る一連の処理を示す一例のシーケンス図である。
【図１０】図１０は、ＵＩタイプの異なるＵＩの例を示す図である。
【図１１】図１１は、ＵＩ部の構成例を示す図である。
【図１２】図１２は、ＵＩレイアウト情報の例を示す図である。
【図１３】図１３は、機能設定情報の例を示す図である。
【図１４】図１４は、コンボボックスを表示するための部品を１つだけ含むＵＩレイアウト情報の例を示す図である。
【図１５】図１５は、第１の実施形態に適用可能な、ＵＩレイアウト情報と機能設定情報とからＵＩ部を構成するための処理の一例のフローチャートである。
【図１６】図１６は、デフォルトパラメータの例を示す図である。
【図１７】図１７は、第２の実施形態に係るインストール処理の流れを示す図である。
【図１８】図１８は、第２の実施形態に係るＵＩテーブルの例を示す図である。
【図１９】図１９は、第２の実施形態に係る配信サーバにおける一例の処理をより具体的に示すフローチャートである。
【図２０】図２０は、第３の実施形態に係る情報処理システムの一例の構成を示すブロック図である。
【図２１】図２１は、第３の実施形態に係るプリンタ装置の機能を説明するための一例の機能ブロック図である。
【図２２】図２２は、第３の実施形態に適用可能なＰＣの機能を説明するための一例の機能ブロック図である。
【図２３】図２３は、第２の実施形態に適用可能なプリンタ装置の一例のハードウェア構成を示すブロック図である。
【図２４】図２４は、第３の実施形態に係るインストール処理を概略的に説明するための図である。
【図２５】図２５は、第３の実施形態に係る一連の処理を示すシーケンス図である。
【図２６】図２６は、第３の実施形態に適用可能な、各ＵＩタイプの表示イメージの画像を表示可能な選択画面の例を示す図である。
【図２７】図２７は、第３の実施形態に係るＰＣ選択画面の一例を示す図である。
【図２８】図２８は、第４の実施形態に係る情報処理システムの一例の構成を示すブロック図である。
【図２９】図２９は、第４の実施形態に係るＰＣの機能を説明するための一例の機能ブロック図である。
【図３０】図３０は、第４の実施形態に係るインストール処理を概略的に説明するための図である。
【図３１】図３１は、第４の実施形態に係る一連の処理を示す一例のシーケンス図である。
【図３２】図３２は、第４の実施形態に係る、選択画面の表示、非表示を決定する処理の一例のフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、情報処理装置、情報処理プログラム、情報処理システムおよび画像処理装置の実施形態を詳細に説明する。
【００１１】
（第１の実施形態）
図１は、第１の実施形態に係る情報処理システムの一例の構成を示す。図１において、情報処理システムは、パーソナルコンピュータ（ＰＣ）１０と、配信サーバ２０と、複数台のプリンタ装置３０ａおよび３０ｂとを含み、これらがＬＡＮ(Local  Area  Network)などによるネットワーク４０により互いに通信可能に接続されて構成される。なお、図１において、プリンタ装置３０ａおよび３０ｂは、それぞれプリンタ（Ａ）およびプリンタ（Ｂ）とも示されている。
【００１２】
なお、図１の例では、情報処理システムが２台のプリンタ装置３０ａおよび３０ｂを含むように示しているが、これはこの例に限定されない。すなわち、第１の実施形態に係る情報処理システムは、３台以上のプリンタ装置を含んでもよいし、各プリンタ装置は、プリンタ機能、スキャナ機能、コピー機能、ＦＡＸ機能など複数の機能を１つの筐体に内蔵するＭＦＰ(Multi  Function  Printer)であってもよい。
【００１３】
また、図１では、情報処理システムがそれぞれ１台のＰＣ１０および配信サーバ２０を含むように示されているが、これはこの例に限定されない。すなわち、第１の実施形態に係る情報処理システムは、複数台のＰＣ１０を含んでいてもよいし、配信サーバ２０は、１台の情報処理装置で構成されるのに限らず、複数台の情報処理装置が互いに接続された構成としてもよい。また、ネットワーク４０は、有線通信によるネットワークに限らず、無線通信を用いたネットワークであってもよい。また、ネットワーク４０は、ＬＡＮに限らず、ｂｌｕｅｔｏｏｔｈ（登録商標）による無線通信や、ＵＳＢ(Universal  Serial  Bus)といったシリアスバスを介した通信により構成してもよい。
【００１４】
図１の構成において、ＰＣ１０は、例えばプリンタ装置３０ａに対応するドライバプログラムがインストールされている場合に、ユーザによるＰＣ１０に対する操作に応じて、プリンタ装置３０ａに対して印刷指示や各種設定指示を送信することができる。プリンタ装置３０ａは、ＰＣ１０から送信された指示に従った動作を実行する。プリンタ装置３０ｂも同様に、ＰＣ１０に対応するドライバプログラムがインストールされている場合に、ユーザのＰＣ１０に対する操作に応じて、ＰＣ１０からの指示に従い印刷や各種設定動作を実行する。
【００１５】
また、ＰＣ１０に、プリンタ装置３０ａに対応するドライバプログラムと、プリンタ装置３０ｂに対応するドライバプログラムとをインストールすることもできる。この場合、ＰＣ１０は、ユーザ操作に応じて、プリンタ装置３０ａおよび３０ｂのうち選択された側のプリンタ装置に対して印刷や各種設定の指示を送信する。
【００１６】
配信サーバ２０は、例えばＰＣ１０からの要求に応じて、プリンタ装置３０ａやプリンタ装置３０ｂに対応するドライバプログラムをＰＣ１０に配信する。
【００１７】
このような構成において、ＰＣ１０に対して例えばプリンタ装置３０ｂに対応するドライバプログラムをインストールする場合、ＰＣ１０は、インストール指示に応じて、ネットワーク４０に接続される全ての機器から、その機器の機種を特定する機種特定情報を検出する。そして、ＰＣ１０は、検出した機種特定情報を各機器から取得し、対応するドライバプログラムのインストールを行いたいプリンタ装置３０ｂの機種に対応する機種特定情報を特定する。そして、ＰＣ１０は、特定した機種特定情報を配信サーバ２０に送信する。
【００１８】
配信サーバ２０は、各種のプリンタ装置に対応する各ドライバプログラムが、機種特定情報と対応付けて予め記憶されている。配信サーバ２０は、ＰＣ１０から送信された機種特定情報に基づき、プリンタ装置３０ｂに対応するドライバプログラムをＰＣ１０に送信する。ＰＣ１０は、配信サーバ２０から送信されたドライバプログラムを自身にインストールする。これにより、ＰＣ１０からプリンタ装置３０ｂを利用することが可能となる。
【００１９】
第１の実施形態では、ＰＣ１０は、既にドライバプログラムがインストールされているプリンタ装置３０ｂに加えて新たにプリンタ装置３０ａのドライバプログラムをインストールする際に、ネットワーク４０上の全ての機器の機種特定情報を検出し、検出した機種特定情報を取得する。ＰＣ１０は、取得した機種特定情報を配信サーバ２０に送信する。このとき、ＰＣ１０は、対応するドライバプログラムのインストールを行いたいプリンタ装置３０ａを識別するための識別情報を、当該プリンタ装置３０ａに対応する機種特定情報に付加して配信サーバ２０に送信する。
【００２０】
一方、配信サーバ２０は、プリンタ装置３０ａおよび３０ｂの機種特定情報と、ドライバプログラムのユーザインタフェース（以下、ＵＩと記述する）の種類（ＵＩタイプ）とを対応付けたテーブルを予め記憶する。配信サーバ２０は、ＰＣ１０から送信された各機種特定情報によりテーブルを参照して、各機種特定情報に対応付けられたＵＩタイプを取得する。配信サーバ２０は、取得したＵＩタイプを示す情報を、機種特定情報と共にＰＣ１０に送信する。
【００２１】
これにより、ＰＣ１０は、新たにインストールされるドライバプログラムのＵＩが、既にインストールされているドライバプログラムのＵＩと異なるか否かを知ることができる。
【００２２】
さらに、ＰＣ１０は、上述の新たにインストールされるドライバプログラムのＵＩと、既にインストールされているドライバプログラムのＵＩとが異なっている場合に、新たにインストールされるドライバプログラムのＵＩとして、この新たにインストールされるドライバプログラムのＵＩを適用するのか、既にインストールされているドライバプログラムのＵＩを適用するのかを選択することができる。ＰＣ１０は、選択結果を配信サーバ２０に送信する。
【００２３】
配信サーバ２０は、ＰＣ１０から送信された選択結果が、既にインストールされているドライバプログラムのＵＩを適用することを示している場合、新たにインストールするドライバプログラムと、既にインストールされているドライバプログラムのＵＩとを結合して、ＰＣ１０に送信する。ＰＣ１０は、既にインストールされているドライバプログラムのＵＩが結合されたドライバプログラムをインストールする。これにより、ユーザは、新たにインストールされるドライバプログラムを、既にインストールされているドライバプログラムと共通する操作環境で操作することが可能となり、ユーザの負担が軽減される。
【００２４】
図２は、第１の実施形態に係る配信サーバ２０の機能を説明するための一例の機能ブロック図を示す。図２において、配信サーバ２０は、受信部２００と、配信サービス部２０１と、送信部２０２と、ＵＩテーブル２０３と、ドライバ格納部２０４とを含む。ＵＩテーブル２０３は、ハードディスクドライブや不揮発性の半導体メモリといったストレージに記憶される。ドライバ格納部２０４も、このストレージを利用できる。
【００２５】
また、受信部２００、配信サービス部２０１および送信部２０２は、例えばＣＰＵ(Central  Processing  Unit)上で動作するプログラムにより構成することができる。これに限らず、受信部２００、配信サービス部２０１および送信部２０２の一部または全部をハードウェアで構成することもできる。
【００２６】
受信部２００は、ネットワーク４０を介して送信されたデータを受信する。配信サービス部２０１は、ネットワーク４０を介して送信された要求に従い、ドライバプログラムの配信処理を行う。送信部２０２は、ネットワーク４０を介して、指定された宛先にデータを送信する。
【００２７】
ＵＩテーブル２０３は、プリンタ装置の機種を特定する機種特定情報と、ＵＩタイプとを対応付けたテーブル（対応情報）である。ここで、ＵＩは、プリンタ装置をＰＣ１０から制御するためのドライバプログラムに適用されるＵＩである。ＵＩは、プリンタ装置の機種毎、ドライバプログラムのバージョン毎などで異なる可能性がある。ＵＩテーブル２０３は、ネットワーク４０に接続されるプリンタ装置や、ドライバプログラムのバージョンアップなどに応じて更新される。
【００２８】
なお、ＰＣ１０上で動作するＯＳ(Operating  System)がＷｉｎｄｏｗｓ（登録商標）である場合、プリンタ装置３０ａおよび３０ｂの機種を特定する機種特定情報として、ＰｎＰ(Plug  and  Play)名（ＰｎＰデバイスＩＤ）を用いることができる。ＰｎＰ名は、機器の種類毎に割り当てられる機種特定情報である。機種特定情報は、プリンタ装置の機種を一意に識別可能であれば、ＰｎＰ名に限定されない。例えば、機種特定情報としてプリンタ装置の機種名を用いることができる。
【００２９】
図３は、第１の実施形態に適用可能なＵＩテーブル２０３の一例を示す。図３に示されるように、ＵＩテーブル２０３は、機種特定情報と、ＵＩタイプとを対応付けて格納する。上述したように、機種特定情報としてプリンタ装置の機種名を用いてもよい。図３の例では、機種特定情報「プリンタ（Ａ）」対して、ＵＩタイプ「Ｔｙｐｅ＃Ａ」が対応付けられている。同様に、機種特定情報「プリンタ（Ｂ）」に対してＵＩタイプ「Ｔｙｐｅ＃Ｂ」が、機種特定情報「プリンタ（Ｅ）」にＵＩタイプ「Ｔｙｐｅ＃Ａ」が、機種特定情報「プリンタ（Ｆ）」に対してＵＩタイプ「Ｔｙｐｅ＃Ｘ」が、それぞれ対応付けられている。このように、１つのＵＩタイプに対して複数の機種特定情報を対応付けることができる。
【００３０】
ドライバ格納部２０４は、各機種に対応するドライバプログラムを格納する。ここで、ドライバプログラムは、ＰＣ１０などの、プリンタ装置と接続される機器にインストールされ、この機器からプリンタ装置によって実行される処理を制御するためのプログラムである。プリンタドライバは、ドライバ本体と、ＵＩ部とを含む。ＵＩ部は、プリンタ装置によって実行される処理に関する設定をユーザから受け付けるための画面の表示を行う。また、ドライバ本体は、ドライバプログラムにおけるＵＩ部以外の機能を持つ。ドライバ格納部２０４は、例えば、ドライバ本体およびＵＩ部を、それぞれ機種特定情報と対応付けて格納する。これに限らず、ドライバ格納部２０４は、対応する機種が一致するドライバ本体とＵＩ部とが予め結合されたドライバプログラムとして格納してもよい。
【００３１】
配信サービス部２０１は、ＵＩ特定部２１０と、結合部２１１とを含む。ＵＩ特定部２１０は、受信部２００に受信された機種特定情報に従いＵＩテーブル２０３を参照し、機種特定情報に対応付けられたＵＩタイプを特定する。結合部２１１は、ドライバ格納部２０４から、ＵＩ部とドライバ本体とを取得し、取得したＵＩ部とドライバ本体とを結合してドライバプログラムを生成する。結合部２１１は、生成されたドライバプログラムを、送信部２０２により、指定された宛先に向けて送信する。
【００３２】
図４は、第１の実施形態に係るＰＣ１０の機能を説明するための機能ブロック図である。ＰＣ１０は、送受信部１０１と、インストーラ１０２と、画面生成部１０３と、決定部１０４とを含む。これら送受信部１０１、インストーラ１０２、画面生成部１０３および決定部１０４は、ＣＰＵ上で動作するプログラムにより構成することができる。これに限らず、送受信部１０１、インストーラ１０２、画面生成部１０３および決定部１０４の一部または全部をハードウェアにより構成してもよい。
【００３３】
送受信部１０１は、ネットワーク４０を介したデータの送受信を行う。インストーラ１０２は、ＰＣ１０に対するドライバプログラムのインストール処理を行う。画面生成部１０３は、後述するインストール処理部１１０の指示に従い、ＬＣＤ(Liquid  Crystal  Display)といった表示デバイスに対して情報を表示させるための画面情報を生成する。決定部１０４は、ＰＣ１０にインストールする候補のドライバプログラムが複数ある場合に、インストールするドライバプログラムを決定する。
【００３４】
インストーラ１０２は、インストール処理部１１０と取得部１１１とを含む。インストール処理部１１０は、ＰＣ１０に対するドライバプログラムのインストール処理を制御する。取得部１１１は、送受信部１０１を介して、ネットワーク４０に接続されるプリンタ装置３０ａおよび３０ｂと通信を行い、プリンタ装置３０ａおよび３０ｂの機種特定情報の検出を行い、検出された機種特定情報を取得する。
【００３５】
図５は、第１の実施形態に適用可能なＰＣ１０の一例のハードウェア構成を示す。ＰＣ１０は、ＣＰＵ１００１と、ＲＯＭ(Read  Only  Memory)１００２と、ＲＡＭ(Random  Access  Memory)１００３と、表示制御部１００４と、ストレージ１００６と、データＩ／Ｆ１００７と、通信Ｉ／Ｆ１００９とを含み、これら各部がバス１０００により互いに通信可能に接続される。ストレージ１００６は、例えばハードディスクドライブや、フラッシュメモリといった不揮発性の半導体メモリであって、ＣＰＵ１００１上で動作するプログラムや、各種のデータが記憶される。
【００３６】
ＣＰＵ１００１は、ＲＯＭ１００２やストレージ１００６から読み出したプログラムに従い、ＲＡＭ１００３をワークメモリとして用いて、ＰＣ１０の全体の動作を制御する。表示制御部１００４は、ＬＣＤなどによる表示デバイスを含むディスプレイ１００５が接続され、ＣＰＵ１００１から供給された画面情報に従った画面をディスプレイ１００５に表示させる。
【００３７】
データＩ／Ｆ１００７は、外部の機器との間でのデータの入出力を制御する。データＩ／Ｆ１００７は、例えばＵＳＢ(Universal  Serial  Bus)を用いることができる。これに限らず、Ｂｌｕｅｔｏｏｔｈ（登録商標）といった無線通信を利用したインタフェースをデータＩ／Ｆ１００７に適用してもよい。図５の例では、データＩ／Ｆ１００７に対して、ユーザ入力を受け付ける入力デバイス１００８が接続されている。入力デバイス１００８は、マウスやタッチパッドといったポインティングデバイスと、キーボードなどのキャラクタ入力デバイスとを含む。
【００３８】
通信Ｉ／Ｆ１００９は、ＣＰＵ１００１の指示に従い、ネットワーク４０を介した通信を制御する。
【００３９】
上述した送受信部１０１と、インストーラ１０２と、画面生成部１０３と、決定部１０４とは、ＣＰＵ１００１上で動作するプログラムによって実現される。このプログラムは、通信Ｉ／Ｆ１００９が接続されるネットワーク４０に接続されたコンピュータ（例えば配信サーバ２０）上に格納し、ネットワーク４０経由でＰＣ１０にダウンロードさせることにより提供するように構成される。また、このプログラムを、ネットワーク４０経由で提供または配布するように構成してもよい。
【００４０】
これに限らず、このプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。この場合、例えばデータＩ／Ｆ１００７に接続された外部のドライブ装置やコンピュータを介して、プログラムがＰＣ１０に供給される。これに限らず、プログラムは、ＲＯＭ１００２やストレージ１００６に予め記憶させて提供してもよい。
【００４１】
プログラムは、例えば、上述した各部（送受信部１０１、インストーラ１０２、画面生成部１０３および決定部１０４）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１００１が例えばストレージ１００６から当該プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ１００３）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【００４２】
図６は、第１の実施形態に適用可能な配信サーバ２０の一例のハードウェア構成を示す。配信サーバ２０は、一般的なコンピュータ装置を用いて構成可能であるが、入力デバイスやディスプレイといったユーザ操作に関する部分を省略することが可能である。例えば、図６の例では、配信サーバ２０は、図５で示したＰＣ１０の構成に対して表示制御部１０４０と、データＩ／Ｆ１００７とが省略されている。
【００４３】
図６に示される配信サーバ２０は、ＣＰＵ２００１と、ＲＯＭ２００２と、ＲＡＭ２００３と、ストレージ２００４と、通信Ｉ／Ｆ２００５とを含み、これら各部がバス２０００により体外に通信可能に接続されている。
【００４４】
ストレージ２００４は、例えばハードディスクドライブや、フラッシュメモリといった不揮発性の半導体メモリであって、ＣＰＵ２００１上で動作するプログラムや、上述したＵＩテーブル２０３やドライバ格納部２０４に格納されるドライバ本体やＵＩ部を含む各種のデータが記憶される。
【００４５】
ＣＰＵ２００１は、ＲＯＭ２００２やストレージ２００４から読み出したプログラムに従い、ＲＡＭ２００３をワークメモリとして用いて、配信サーバ２０の全体の動作を制御する。通信Ｉ／Ｆ２００５は、ＣＰＵ２００１の指示に従い、ネットワーク４０を介した通信を制御する。
【００４６】
配信サーバ２０の構成は、図６の例に限られず、例えば図５に示したＰＣ１０と同様に、ＣＰＵ２００１により生成された画面情報に従った画面をディスプレイに表示させる表示制御部や、外部機器との間でのデータの入出力を行うデータＩ／Ｆ、ユーザ入力を受け付ける入力デバイスをさらに含んでいてもよい。
【００４７】
上述した受信部２００と、配信サービス部２０１と、送信部２０２とは、ＣＰＵ２００１上で動作する。このプログラムは、通信Ｉ／Ｆ２００５が接続されるネットワーク４０に接続されたコンピュータ上に格納し、ネットワーク４０経由で配信サーバ２０にダウンロードさせることにより提供するように構成される。また、このプログラムを、ネットワーク４０経由で提供または配布するように構成してもよい。
【００４８】
これに限らず、このプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。この場合、例えば配信サーバ２０にデータＩ／Ｆを設け、このデータＩ／Ｆに接続された外部のドライブ装置やコンピュータを介して、プログラムが配信サーバ２０に供給される。また、ＵＩテーブル２０３や、ドライバ格納部２０４に格納される各ドライバ本体、ＵＩ部も、プログラムと同様に、ネットワーク４０経由やＣＤ、ＤＶＤなどの記録媒体を介して配信サーバ２０に提供することができる。
【００４９】
プログラムは、例えば、上述した各部（受信部２００、配信サービス部２０１および送信部２０２）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ２００１が例えばストレージ２００４から当該プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ２００２）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【００５０】
（第１の実施形態による処理の詳細）
次に、第１の実施形態に係る、ドライバプログラムをＰＣ１０にインストールするインストール処理について、より詳細に説明する。図７は、第１の実施形態に係るインストール処理の流れを示す。なお、図７において、上述した図１、図２および図４と共通する部分には同一の符号を付して、詳細な説明を省略する。また、図７において、ＰＣ１０および配信サーバ２０の各機能部は、インストール処理に特に関わりの深い部分を示し、他を省略している。
【００５１】
なお、図７において、プリンタ装置３０ｂは、ＰＣ１０に既に対応するドライバプログラムがインストールされた、導入済みのプリンタ装置であるものとする。また、プリンタ装置３０ａは、プリンタ装置３０ｂに対して新規に導入されるプリンタ装置であり、ＰＣ１０には、当該プリンタ装置３０ａに対応するドライバプログラムは、未だインストールされていないものとする。
【００５２】
以下では、このような状態において、新規に導入されるプリンタ装置３０ａに対応するドライバプログラムをＰＣ１０にインストールする場合の一例の処理について説明する。例えばＰＣ１０に対するユーザ操作により、ＰＣ１０においてインストーラ１０２が起動され、プリンタ装置３０ａに対応するドライバプログラムのインストール処理が開始される。
【００５３】
インストーラ１０２は、プリンタ装置３０ａに対応するドライバプログラムのインストールが例えばユーザ操作により指示されると、ネットワーク４０上の各機器から機種特定情報を検出し、検出した機種特定情報を取得する。図７の例では、インストーラ１０２は、ネットワーク４０上の各プリンタ装置３０ａおよび３０ｂから機種特定情報３１ａおよび３１ｂを検出し、検出した機種特定情報３１ａおよび３１ｂをそれぞれ取得する（ステップＳ１０、ステップＳ１１）。機種特定情報３１ａおよび３１ｂは、各プリンタ装置３０ａおよび３０ｂがそれぞれ有するレジスタやメモリといった記憶媒体に予め記憶されている。
【００５４】
インストーラ１０２は、取得した各機種特定情報３１ａおよび３１ｂを含む機種特定情報のリストを配信サーバ２０に送信する（ステップＳ１２）。このとき、インストーラ１０２は、インストールを行うドライバプログラムに対応するプリンタ装置３０ａの機種特定情報３１ａと、ＰＣ１０に既に対応するドライバプログラムがインストールされたプリンタ装置３０ｂの機種特定情報３１ｂとを識別可能として、各機種特定情報３１ａおよび３１ｂを配信サーバ２０に送信する。例えば、インストーラ１０２は、機種特定情報３１ａおよび３１ｂに対して、ドライバプログラムのインストール対象であるか否かの識別情報をそれぞれ付加して、配信サーバ２０に送信する。このように、インストーラ１０２は、機種特定情報３１ａおよび３１ｂの示す機種が処理対象の機種であるか否かを識別する識別部としても機能する。
【００５５】
ＰＣ１０から送信された機種特定情報のリストと識別情報は、配信サーバ２０に受信され、配信サービス部２０１に渡される。配信サービス部２０１は、受信した機種特定情報のリストに基づきＵＩテーブル２０３を参照し、機種特定情報のリストに含まれる各機種特定情報３１ａおよび３１ｂにそれぞれ対応付けられた各ＵＩタイプを取得する（ステップＳ１３）。
【００５６】
配信サービス部２０１は、ＵＩテーブル２０３から、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａの機種特定情報３１ａに対応付けられたＵＩタイプを取得する。それと共に、配信サービス部２０１は、ＵＩテーブル２０３に格納される各ＵＩタイプから、ＰＣ１０から送信された機種特定情報のリストに含まれる機種特定情報に対応付けられたＵＩタイプのうち、機種特定情報３１ａに対応付けられたＵＩタイプとは異なるＵＩタイプを取得する。
【００５７】
上述した図３の例では、プリンタ装置３０ａの機種特定情報３１ａ（プリンタ（Ａ））には、ＵＩタイプ「Ｔｙｐｅ＃Ａ」が対応付けられている。また、プリンタ装置３０ｂの機種特定情報３１ｂ（プリンタ（Ｂ））には、ＵＩタイプ「Ｔｙｐｅ＃Ｂ」が対応付けられている。これにより、導入済みのプリンタ装置３０ｂに対応付けられたＵＩタイプが、ドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａに対応付けられたＵＩタイプと異なっていることが分かる。
【００５８】
したがって、配信サービス部２０１は、新規導入のプリンタ装置３０ａに対応するＵＩタイプ「Ｔｙｐｅ＃Ａ」であり、導入済みのプリンタ装置３０ｂに対応するＵＩタイプが「Ｔｙｐｅ＃Ｂ」であることをＰＣ１０に送信する（ステップＳ１４）。このとき、配信サービス部２０１は、各ＵＩタイプ「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｂ」を、それぞれ機種特定情報３１ａおよび３１ｂと対応付けてＰＣ１０に送信する。
【００５９】
なお、図３に示されるＵＩテーブル２０３には、プリンタ装置３０ｂに対応付けられたＵＩタイプと異なるＵＩタイプとして、ＵＩタイプ「Ｔｙｐｅ＃Ｘ」が格納されている。しかしながら、ＰＣ１０から送信された機種特定情報のリストには、ＵＩタイプ「Ｔｙｐｅ＃Ｘ」に対応付けられた機種特定情報（プリンタ（Ｆ））が含まれていない。したがって、配信サービス部２０１は、ＰＣ１０に送信するＵＩタイプからこのＵＩタイプ「Ｔｙｐｅ＃Ｘ」を除外する。
【００６０】
配信サービス部２０１から送信されたＵＩタイプ「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｂ」は、ＰＣ１０に受信され、インストーラ１０２に渡される。インストーラ１０２は、ＰＣ１０により受信された各ＵＩタイプ「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｂ」を画面生成部１０３に渡す（ステップＳ１５）。画面生成部１０３は、渡されたＵＩタイプ「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｂ」に基づき、インストール対象であるドライバプログラムに適用するＵＩタイプを選択する選択画面の画面情報を生成する。画面生成部１０３は、生成した画面情報に従った選択画面を、表示制御部１００４によりディスプレイ１００５に表示させる。
【００６１】
図８は、第１の実施形態に適用可能な、画面生成部１０３により生成される選択画面の一例を示す。図８において、選択画面５０は、メッセージ表示領域５００と、選択入力部５０１と、ボタン５０２および５０３とを含む。
【００６２】
メッセージ表示領域５００は、インストーラ１０２がユーザに提示するメッセージが表示される。この例では、導入済みのプリンタ装置３０ｂに対応するドライバプログラムと、新規に導入するプリンタ装置３０ａに対応するドライバプログラムとで、適用されるＵＩタイプが異なっている。そのため、画面生成部１０３は、図８に示されるように、その旨をユーザに通知するようなメッセージを、メッセージ表示領域５００に対して表示させている。
【００６３】
選択入力部５０１は、インストール対象であるドライバプログラムに対して適用するＵＩを選択するためのユーザ入力を受け付ける。図８の例では、選択入力部５０１は、導入済みのプリンタ装置３０ｂを示す項目「Ｐｒｉｎｔｅｒ  Ｂ」と、新たに導入するプリンタ装置３０ａを示す項目「Ｐｒｉｎｔｅｒ  Ａ」とが表示されている。
【００６４】
なお、図８の例では、所謂コンボボックスを用いて選択入力部５０１が構成されているが、これはこの例に限定されず、選択入力部５０１を所謂ラジオボタンを用いて構成してもよい。また、選択入力部５０１は、新たに導入するプリンタ装置３０ａに対応するＵＩが選択された状態をデフォルト状態とすることができる。
【００６５】
ボタン５０２は、選択入力部５０１に対してなされたユーザ入力による選択を決定するためのボタンである。ボタン５０３は、キャンセルボタンである。例えば、ボタン５０３を操作することで、新たに導入するプリンタ装置３０ａに対応するドライバプログラムのインストール処理を中止される。
【００６６】
決定部１０４は、選択画面５０に対してなされたユーザ入力を取得し、取得したユーザ入力に応じて、インストール対象であるドライバプログラムに対して適用するＵＩタイプを決定する。決定部１０４は、決定されたＵＩタイプを示す情報をインストーラ１０２に渡す（ステップＳ１６）。なお、以下では、煩雑さを避けるため、特に記載の無い限り、「ＵＩタイプを示す情報」を「ＵＩタイプ」として説明を行う。
【００６７】
すなわち、決定部１０４は、選択画面５０においてボタン５０２が操作されると、選択入力部５０１において項目「Ｐｒｉｎｔｅｒ  Ａ」および「Ｐｒｉｎｔｅｒ  Ｂ」のうち選択状態にある項目に対応するＵＩタイプを、インストール対象のドライバプログラムに適用するＵＩタイプに決定し、当該ＵＩタイプをインストーラ１０２に渡す。インストーラ１０２は、決定部１０４から渡されたＵＩタイプを配信サーバ２０に送信し、ドライバを要求する（ステップＳ１７）。
【００６８】
配信サーバ２０は、インストーラ１０２から送信されたＵＩタイプを受信して配信サービス部２０１に渡す。配信サービス部２０１は、渡されたＵＩタイプと、先のステップＳ１２でインストーラ１０２から受け取った、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａの機種特定情報３１ａとに基づき、ドライバプログラムを生成する。
【００６９】
生成されたドライバプログラムは、配信サーバ２０からＰＣ１０に送信される（ステップＳ１８）。ＰＣ１０は、配信サーバ２０から送信されたドライバプログラムを受信してインストーラ１０２に渡す。インストーラ１０２は、渡されたドライバプログラムをＰＣ１０にインストールする（ステップＳ１９）。
【００７０】
上述したステップＳ１６以降の処理をより具体的に説明する。第１の例として、新規に導入するプリンタ装置３０ａに対応するドライバプログラムのＵＩタイプと、選択画面５０により選択したＵＩタイプとが一致している場合について説明する。例えば、新規に導入するプリンタ装置３０ａに対して、選択画面５０において項目「Ｐｒｉｎｔｅｒ  Ａ」が選択されたものとする。
【００７１】
決定部１０４からインストーラ１０２に対して、項目「Ｐｒｉｎｔｅｒ  Ａ」に対応するＵＩタイプ「Ｔｙｐｅ＃Ａ」が渡される。インストーラ１０２は、このＵＩタイプ「Ｔｙｐｅ＃Ａ」を配信サーバ２０に送信し、配信サーバ２０に対してドライバプログラムを要求する（ステップＳ１７）。配信サーバ２０は、受信したドライバプログラムの要求を配信サービス部２０１に渡す。
【００７２】
配信サービス部２０１は、渡されたドライバプログラムの要求に従い、ドライバ格納部２０４から、ＵＩタイプ「Ｔｙｐｅ＃Ａ」に対応するＵＩ部を取り出す。また、配信サービス部２０１は、ドライバ格納部２０４から、ステップＳ１２でＰＣ１０から受信した識別情報に基づき、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａの機種特定情報３１ａに対応するドライバ本体を取り出す。配信サービス部２０１が取り出したドライバ本体およびＵＩ部は、結合部２１１により結合され１つのドライバプログラムとされ、ＰＣ１０に送信される（ステップＳ１８）。
【００７３】
第２の例として、新規に導入するプリンタ装置３０ａに対応するドライバプログラムのＵＩタイプと、選択画面５０により選択したＵＩタイプとが異なっている場合について説明する。例えば、選択画面５０において、新規に導入するプリンタ装置３０ａに対して、プリンタ装置３０ｂを示す項目「Ｐｒｉｎｔｅｒ  Ｂ」が選択されたものとする。
【００７４】
インストーラ１０２は、決定部１０４から渡された、項目「Ｐｒｉｎｔｅｒ  Ｂ」に対応するＵＩタイプ「Ｔｙｐｅ＃Ｂ」を配信サーバ２０に送信し、配信サーバ２０に対してドライバプログラムを要求する（ステップＳ１７）。配信サーバ２０は、受信したドライバプログラムの要求を配信サービス部２０１に渡す。
【００７５】
配信サービス部２０１は、渡されたドライバプログラムの要求に従い、ドライバ格納部２０４から、ＵＩタイプ「Ｔｙｐｅ＃Ｂ」に対応するＵＩ部と、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａの機種特定情報３１ａに対応するドライバ本体とを取り出す。結合部２１１は、取り出されたドライバ本体とＵＩ部とを結合して１つのドライバプログラムを生成する。
【００７６】
この場合、ＵＩ部とドライバ本体とでは、対応する機種が異なる。そのため、結合部２１１により生成されたドライバプログラムは、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａに対応するドライバ本体に対して、ＵＩ部が導入済みのプリンタ装置３０ｂのＵＩ部に差し替えられたものとなる。すなわち、生成されたドライバプログラムは、ＵＩタイプがプリンタ装置３０ｂのドライバプログラムのＵＩタイプであり、ドライバ本体がプリンタ装置３０ａに対応する。配信サービス部２０１は、結合により生成されたドライバプログラムを、ＰＣ１０に送信する（ステップＳ１８）。
【００７７】
このように、第１の実施形態によれば、導入済みのプリンタ装置３０ｂのためのドライバプログラムのＵＩを、新規に導入するプリンタ装置３０ａのためのドライバプログラムのＵＩに適用することができる。これにより、ユーザは、新規導入のプリンタ装置３０ａのドライバプログラムに対する操作を、導入済みのプリンタ装置３０ｂのドライバプログラムと同様に行うことが可能となり、ユーザの負担が軽減される。
【００７８】
図９は、第１の実施形態に係る一連の処理を示す一例のシーケンス図である。なお、図９において、上述した図１、図２、図４および図７と共通する部分には同一の符号を付して、詳細な説明を省略する。図９のシーケンスによる処理は、例えばＰＣ１０において、インストーラ１０２が起動され、特定の機器（プリンタ装置）に対応するドライバプログラムのインストールが指示されることで開始される。
【００７９】
ドライバプログラムのインストールが指示されると、インストーラ１０２は、ネットワーク４０上の各機器から機種特定情報を検出し、検出した機種特定情報を取得する（ステップＳ１００、ステップＳ１０１）。この例では、インストーラ１０２は、プリンタ装置３０ａおよび３０ｂから機種特定情報３１ａおよび３１ｂを取得している。インストーラ１０２は、取得した全ての機器の機種特定情報、すなわち、対応するドライバプログラムをＰＣ１０にインストールしたい機器の機種特定情報と、対応するドライバプログラムのＰＣ１０へのインストールを行わないがネットワーク４０を介してＰＣ１０と接続される機器の機種特定情報とを、それぞれ識別可能に配信サーバ２０に送信する。配信サーバ２０は、受信した機種特定情報を配信サービス部２０１に渡す（ステップＳ１０２）。
【００８０】
配信サービス部２０１において、ＵＩ特定部２１０は、渡された機種特定情報に基づきＵＩテーブル２０３を参照し、各機種特定情報に対応付けられたＵＩタイプを検索する（ステップＳ１０３）。このとき、ＵＩ特定部２１０は、対応するドライバプログラムをＰＣ１０にインストールしたい機器の機種特定情報に対応付けられたＵＩタイプとは異なるＵＩタイプをリストアップする。配信サービス部２０１は、こうしてリストアップしたＵＩタイプを取得する（ステップＳ１０４）。配信サービス部２０１は、取得したＵＩタイプのリストをＰＣ１０に送信する。ＰＣ１０は、受信したＵＩタイプのリストをインストーラ１０２に渡す（ステップＳ１０５）。
【００８１】
インストーラ１０２は、渡されたＵＩタイプのリストを画面生成部１０３に渡す。そして、インストーラ１０２は、画面生成部１０３に、ＵＩタイプのリストに含まれる各ＵＩタイプから、インストール対象となるドライバプログラムのＵＩに適用するＵＩタイプを選択するための選択画面５０を生成させる（ステップＳ１０６）。決定部１０４は、選択画面５０に対するユーザ操作により選択されたＵＩタイプを、選択結果としてインストーラ１０２に返す（ステップＳ１０７）。
【００８２】
インストーラ１０２は、決定部１０４から返された選択結果に示されるＵＩタイプを配信サーバ２０に送信する。配信サーバ２０は、受信したＵＩタイプを配信サービス部２０１に渡す（ステップＳ１０８）。配信サービス部２０１において、結合部２１１は、ドライバ格納部２０４から、渡されたＵＩタイプに対応するＵＩ部と、ＰＣ１０にインストールしたい機器に対応するドライバプログラムのドライバ本体とを取り出し、取り出したＵＩ部とドライバ本体とを結合して１つのドライバプログラムを生成する（ステップＳ１０９）。
【００８３】
配信サービス部２０１は、結合部２１１により生成されたドライバプログラムをＰＣ１０に送信する。ＰＣ１０は、受信したドライバオブジェクトをインストーラ１０２に渡す（ステップＳ１１０）。インストーラ１０２は、渡されたドライバプログラムをＰＣ１０にインストールする（ステップＳ１１１）。
【００８４】
（ＵＩ部の差し替え処理）
次に、第１の実施形態に係る、結合部２１１によるＵＩ部の差し替え処理について説明する。図１０（ａ）および図１０（ｂ）は、互いにＵＩタイプの異なるＵＩの例を示す。図１０（ａ）において、ＵＩ画面６０は、複数のタブを含むタブ部６００と、複数の入力領域を含む設定領域６０１を含む。ＵＩ画面６０は、タブ部６００に設けられる複数のタブのうち所望のタブを指定することで、設定領域６０１の内容を、指定されたタブに対応する内容に切り替えることができるようになっている。
【００８５】
一方、図１０（ｂ）において、ＵＩ画面６１は、複数のタブを含むタブ部６１０と、タブ画面領域６１１とを含み、タブ画面領域６１１は、さらに、複数のタブを含む副タブ部６２０と設定領域６２１とを含む。タブ部６１０に設けられる複数のタブのうち所望のタブを指定することで、副タブ部６２０に設けられる複数のタブの内容を、指定されたタブに対応する内容に切り替えることができる。また、副タブ部６２０に設けられる複数のタブのうち所望のタブを指定することで、設定領域６２１の内容を、指定されたタブに対応する内容に切り替えることができるようになっている。
【００８６】
ＵＩ画面６１は、ＵＩ画面６０タブ部６００の各タブおよび各タブに対応する各設定領域６０１の内容をグループ分けし、設定項目などを段階的に選択できるようにしたものである。すなわち、ＵＩ画面６０およびＵＩ画面６１は、共通する設定項目を異なるＵＩタイプを用いてユーザに提示するものである。
【００８７】
一例として、導入済みのプリンタ装置３０ｂに対応するドライバプログラムが図１０（ａ）のＵＩ画面６０を持ち、新規導入するプリンタ装置３０ａに対応するドライバプログラムが図１０（ｂ）のＵＩ画面６１を持つ場合について考える。この場合、ユーザは、プリンタ装置３０ａをＰＣ１０から利用する際に、既存のＵＩ画面６０と構成の異なるＵＩ画面６１の操作方法を新たに修得する必要があり、負担になってしまうおそれがある。
【００８８】
なお、以下では、上述したタブ、タブの集合であるタブ部、各入力領域、メッセージ表示領域といった、ＵＩを構成するための各要素を、適宜、「ＵＩ部品」または単に「部品」と呼ぶ。
【００８９】
図１１は、ＵＩ部の構成例を示す。ＵＩ部は、ＵＩ生成部４００と、ＵＩレイアウト情報４０１と、機能設定情報４０２とを含む。ＵＩレイアウト情報４０１は、ＵＩ部品の画面表示に関する各設定値が含まれる。また、機能設定情報４０２は、各ＵＩ部品によりドライバ本体に設定される各設定値が含まれる。ＵＩ生成部４００は、配信サーバ２０のＣＰＵ２００１上で動作するプログラムであって、ＵＩレイアウト情報４０１と機能設定情報４０２とを読み込んで、それぞれの情報に含まれる設定値に従いＵＩを生成する。
【００９０】
図１２は、ＵＩレイアウト情報４０１の例を示す。なお、図１２および以下の同様のデータ例を示す図において、特に記載のない限り、各行の先頭の数字は説明のための行番号を示し、続くコロン（：）でデータ本体を示すコードと区別されている。また、図１２に例示されるコードは、プログラミング言語として一般的に用いられるＣ言語の記法を模した疑似コードである。
【００９１】
図１２において、第１行目により、第１行目の括弧「｛」からこの括弧「｛」に対応する第１７行目の括弧「｝」の間にＵＩレイアウト情報４０１が記述されることが示される。これら第１行目および第１７行目の括弧に対して１段深くインデントされた第４行目の括弧「［」と、この括弧「［」に対応する第１６行目の括弧「］」に挟まれた部分に、ＵＩ画面に表示される各部品を定義するための情報が記述される。
【００９２】
さらに、これら第４行目および第１６行目の括弧に対して１段深くインデントされた括弧「｛」およびこの括弧「｛」に対応する「｝」の組に挟まれた部分に、ＵＩ部品を定義する部品情報が記述される。図１２の例では、第５行目〜第９行目の部分と、第１０行目〜第１４行目の部分に、それぞれ１つずつ部品情報が記述される。また、部品情報を定義するための各項目は、「，（カンマ）」で区切られて記述される。
【００９３】
第５行目〜第９行目の部分には、項目”ｔｙｐｅ”、”ｎａｍｅ”および”ｐａｒａｍｓ”が記述されている。項目”ｔｙｐｅ”は、その部品がコンボボックスなのかラジオボタンなのかといった、部品の種類が示される。項目”ｎａｍｅ”は、後述する機能設定情報４０２の項目との対応付けを行うための名前が示される。項目”ｐａｒａｍｓ”は、その部品を配置する座標(ｘ，ｙ)と大きさ（幅：ｗｉｄｔｈ）が示される。座標（ｘ，ｙ）は、部品の開始原点の座標を示す。例えば、開始原点は、矩形で定義される部品の左上隅の座標とされ、ｘ座標は右方向に向けて増加し、ｙ座標は下方向に向けて増加する。この例では、第５行目〜第９行目の部分に示される部品が、種類が「ＣｏｍｂｏＢｏｘ（コンボボックス）」、名前が「ｏｒｉｅｎｔａｔｉｏｎ」、座標(ｘ，ｙ)＝（２５，２２）で幅＝１７４の部品であることが分かる。
【００９４】
同様に、第１０行目〜第１４行目に示される部品は、種類が「ＣｏｍｂｏＢｏｘ（コンボボックス）」、名前が「ｃｏｌｏｒｂｗ」、座標(ｘ，ｙ)＝（２２８，２２）で幅＝１７４の部品であることが分かる。
【００９５】
図１３は、機能設定情報４０２の例を示す。図１３に例示されるコードは、タグを用いてデータの意味や構造を定義して記述するマークアップ言語の一種であるＸＭＬ(Extensible  Markup  Language)を用いて記述されている。図１３において、第１行目は、このデータがＸＭＬを用いて記述されていることが示される。第２行目は、このデータのバージョン情報が示される。
【００９６】
第２行目に対して１段深くインデントされた第３行目および第６行目に挟まれた部分に、タグ「ｉｔｅｍ」が記述され、１つの機能が定義される。第７行目および第１０行目に挟まれた部分についても同様に、１つの機能が定義される。
【００９７】
第３行目〜第６行目の記述について、第３行目は、項目「ｃａｔｅｇｏｒｙ」、「ｎａｍｅ」、「ｄｅｆａｕｌｔ」、および「ｔｙｐｅ」を含む。これら各項目のうち、項目「ｎａｍｅ」は、機能を定義する名称であり、図１２を用いて説明したＵＩレイアウト情報４０１の項目”ｎａｍｅ”と対応付けるためのキーとしても用いられる。項目「ｄｅｆａｕｌｔ」は、デフォルト値を示す。項目「ｔｙｐｅ」は、選択肢から選ぶ入力や、自由入力といった、入力の種類を示す。例えば、項目「ｔｙｐｅ」の値は、選択肢から選ぶ入力の場合は”ｐｉｃｋｏｎｅ”とし、自由入力の場合は”ｔｅｘｔ”とする。
【００９８】
項目「ｔｙｐｅ」の値が”ｐｉｃｋｏｎｅ”とされ、選択肢から選ぶ入力が指定された場合、次の行から１段深いインデントがなされ、選択肢が具体的に定義される。図１３の例では、第４行目および第５行目に、それぞれ項目「ｐｉｃｋｏｎｅ  ｎａｍｅ」として値”ｃｏｌｏｒ”および値”ｂｌａｃｋａｎｄｗｈｉｔｅ”が示されている。これにより、第３行目の項目「ｔｙｐｅ」に値”ｐｉｃｋｏｎｅ”で示される入力において、選択肢が”ｃｏｌｏｒ”および”ｂｌａｃｋａｎｄｗｈｉｔｅ”の２つあることが分かる。
【００９９】
第７行目〜第１０行目についても、第３行目〜第６行目と同様にして機能の定義が示される。
【０１００】
ＵＩ生成部４００は、上述したＵＩレイアウト情報４０１に含まれる項目”ｎａｍｅ”の値と機能設定情報４０２に含まれる項目「ｎａｍｅ」の値とを対応付けて、ＵＩレイアウト情報４０１に含まれる座標に従いＵＩ部品を生成してＵＩ画面を構成する。このような仕組みにより、機能の設定項目は変わらずに、ＵＩ画面だけを変更することが可能となる。
【０１０１】
次に、新規に導入するドライバプログラムのドライバ本体と、導入済みのドライバプログラムのＵＩ部とを結合する処理について説明する。ここで、例えば図８の選択画面５０において、新規導入するドライバプログラムのＵＩ画面として、導入済みのドライバプログラムのＵＩ画面を用いるように指定されたものとする。この指定により、新規導入のドライバプログラムの第１のＵＩ部を、導入済みのドライバプログラムの第２のＵＩ部に差し替える処理が行われることになる。この場合、第２のＵＩ部に存在しない部品が第１のＵＩ部に設けられている場合が有り得る。
【０１０２】
第２のＵＩ部は、図１４に例示されるようなＵＩレイアウト情報４０１を持っているものとする。図１４に例示されるＵＩレイアウト情報４０１は、コンボボックスを表示するための部品を１つだけ含む。これに対して、第１のＵＩ部は、上述の図１３に示した、２つの機能が定義された機能設定情報４０２を持っているものとする。この場合、図１４のＵＩレイアウト情報４０１と図１３の機能設定情報４０２とを組み合わせることになる。
【０１０３】
図１３の機能設定情報４０２が２つの機能を定義するものであるのに対し、図１４のＵＩレイアウト情報４０１は、１つの部品しか含んでいない。そのため、図１４のＵＩレイアウト情報４０１に従えば、図１３の機能設定情報４０２の２つの機能のうち一方は、ＵＩ画面に部品が表示できない。図１３および図１４の例では、図１３の機能設定情報４０２に含まれる、「ｎａｍｅ＝”ｃｏｌｏｒｂｗ”」で示される機能について、図１４のＵＩレイアウト情報４０１に定義が存在しない。したがって、図１４のＵＩレイアウト情報４０１によれば、この「ｎａｍｅ＝”ｃｏｌｏｒｂｗ”」で示される機能に関する部品が表示されないことになる。
【０１０４】
そこで、ＵＩ生成部４００は、デフォルトで部品毎の大きさを示す情報（デフォルトパラメータと呼ぶ）を持っておく。ＵＩ生成部４００は、大きさ情報に基づく計算により、ＵＩレイアウト情報４０１に定義される、最も下部に配置される部品の下に、機能設定情報４０２に定義され、ＵＩレイアウト情報４０１に定義されない部品を追加して配置する。
【０１０５】
図１５は、第１の実施形態に適用可能な、ＵＩレイアウト情報と機能設定情報とからＵＩ部を構成するための処理の一例のフローチャートを示す。図１５に示される各処理は、ＵＩ生成部４００により実行される。なお、ＵＩ生成部４００は、第１のＵＩ部および第２のＵＩ部で共通であるものとする。
【０１０６】
ステップＳ２０で、ＵＩ生成部４００は、ＵＩ画面を用いるように指定された第２のＵＩ部からＵＩレイアウト情報４０１を取得する。ステップＳ２１で、ＵＩ生成部４００は、新規導入するドライバプログラムに本来対応する第１のＵＩ部から機能設定情報４０２を取得し、次のステップＳ２２で、取得した機能設定情報４０２に含まれる機能をチェックする。
【０１０７】
次のステップＳ２３で、ＵＩ生成部４００は、ステップＳ２２のチェック結果に基づき、対応する部品が指定されたＵＩレイアウト情報４０１に存在しない機能があるか否かを判定する。ＵＩ生成部４００は、対応する部品が存在しない機能が無いと判定した場合、処理をステップＳ２６に移行させ、ＵＩレイアウト情報４０１に従ったＵＩを生成する。この場合は、ステップＳ２０で取得したＵＩレイアウト情報４０１に従ったＵＩが生成される。ステップＳ２６でＵＩが生成されると、図１５のフローチャートによる一連の処理が終了される。
【０１０８】
ＵＩ生成部４００は、ステップＳ２３で、対応する部品が存在しない機能があると判定した場合、処理をステップＳ２４に移行させる。ステップＳ２４で、ＵＩ生成部４００は、ＵＩ生成部４００が予め持っているデフォルトパラメータに基づき、対応する部品が存在しない機能に対応する部品（追加部品）を生成すると共に、当該部品の開始原点の座標を生成する。ＵＩ生成部４００は、例えば、生成した部品のパラメータをＵＩレイアウト情報４０１に埋め込んで、ＵＩレイアウト情報４０１を更新する。
【０１０９】
図１６は、デフォルトパラメータの例を示す。図１６の例では、デフォルトパラメータは、項目「Ｔｙｐｅ」、項目「Ｗｉｎｄｏｗ  Ｃｏｎｔｒｏｌｌ」、項目「Ｈｅｉｇｈｔ」および項目「Ｗｉｄｔｈ」を含む。項目「Ｔｙｐｅ」は、入力の種類を示し、機能設定情報４０２の項目「ｔｙｐｅ」に対応する。項目「Ｗｉｎｄｏｗ  Ｃｏｎｔｒｏｌｌ」は、部品の種類を示し、ＵＩレイアウト情報４０１の項目”ｔｙｐｅ”に対応する。項目「Ｈｅｉｇｈｔ」および「Ｗｉｄｔｈ」は、部品の大きさを示し、それぞれ部品の高さおよび幅をドット単位で示している。
【０１１０】
ＵＩ生成部４００は、次のステップＳ２５で、対応する部品が存在しない全ての機能に対する処理が終了したか否かを判定する。ＵＩ生成部４００は、未だ対応する部品が存在しない機能があると判定した場合、処理をステップＳ２４に戻し、対応する部品が存在しない次の機能に対して、部品および開始原点を生成する。
【０１１１】
一方、ＵＩ生成部４００は、対応する部品が存在しない全ての機能に対する処理が終了したと判定した場合、処理をステップＳ２６に移行させ、ＵＩレイアウト情報４０１に従ったＵＩを生成する。この場合は、ステップＳ２４にて更新されたＵＩレイアウト情報４０１に従ったＵＩが生成される。ステップＳ２６でＵＩが生成されると、図１５のフローチャートによる一連の処理が終了される。
【０１１２】
ステップＳ２４の追加部品の生成処理について、上述した図１３および図１４の例を用いてより具体的に説明する。この場合、図１４に示されるＵＩレイアウト情報４０１に対して、図１３の機能設定情報４０２に含まれる、「ｎａｍｅ＝”ｃｏｌｏｒｂｗ”」で示される機能（機能”ｃｏｌｏｒｂｗ”と呼ぶ）に対応する部品を追加する必要がある。
【０１１３】
図１４のＵＩレイアウト情報４０１では、項目”ｎａｍｅ”の値が”ｏｒｉｅｎｔａｔｉｏｎ”とされた部品が１つしか含まれておらず、この部品が最も下部に配置される部品となる。また、項目”ｐａｒａｍｓ”の値から、部品”ｏｒｉｅｎｔａｔｉｏｎ”は、座標（２５，２２）を開始原点として配置されることが分かる。
【０１１４】
一方、ステップＳ２１で取得した機能設定情報４０２（図１３参照）によれば、項目「ｎａｍｅ」の値が「ｃｏｌｏｒｂｗ」とされた部品は、項目「Ｔｙｐｅ」として値「ｐｉｃｋｏｎｅ」を持つことが分かる。図１６のデフォルトパラメータを参照すると、項目「Ｔｙｐｅ」の値「ｐｉｃｋｏｎｅ」は、部品の種類がコンボボックスであり、高さが３０ドット、幅が１７４ドットとなっている。
【０１１５】
したがって、ＵＩ生成部４００は、”ｏｒｉｅｎｔａｔｉｏｎ”の座標（２５，２２）の開始原点に対して高さの３０ドットをｙ座標に加算して、機能”ｃｏｌｏｒｂｗ”に対応する部品の開始原点を求める。また、ＵＩ生成部４００は、機能設定情報４０２により、機能”ｃｏｌｏｒｂｗ”は、項目「Ｔｙｐｅ」に従い入力種類が”ｐｉｃｋｏｎｅ”とされていることが分かる。したがって、ＵＩ生成部４００は、デフォルトパラメータの項目「Ｔｙｐｅ」の値「ｐｉｃｋｏｎｅ」に基づき、項目「Ｗｉｎｄｏｗ  Ｃｏｎｔｒｏｌｌ」により種類が「ＣｏｍｂｏＢｏｘ」の部品を生成し、生成した部品を機能”ｃｏｌｏｒｂｗ”の設定項目と対応付ける。
【０１１６】
このようにして、機能”ｃｏｌｏｒｂｗ”に対応する部品が、機能”ｏｒｉｅｎｔａｔｉｏｎ”の部品の下に配置されたＵＩレイアウト情報４０１を生成することができる。以降、ＵＩ生成部４００は、通常のＵＩ生成処理により、機能が追加されたＵＩを生成することができる。
【０１１７】
（第２の実施形態）
次に、第２の実施形態について説明する。上述した第１の実施形態では、新規導入のプリンタ装置３０ａのドライバプログラムのＵＩ部として、導入済みのプリンタ装置３０ｂのドライバプログラムの第１のＵＩ部を適用するか、当該プリンタ装置３０ａのドライバプログラム本来の第２のＵＩ部を適用するかを、ユーザの選択により決定していた。これに対して、第２の実施形態では、第１のＵＩ部および第２のＵＩ部の何れを適用するかの選択を、ＵＩ部の情報に基づき自動的に選択するようにしている。
【０１１８】
より具体的な例としては、第２の実施形態では、ドライバプログラムの情報としてドライバプログラムにおけるＵＩ部のバージョン情報を用いる。バージョン情報は、例えばＵＩ部のリリース日時に応じた情報であり、リリース日時が新しくなるに従い大きな値を取る情報である。
【０１１９】
図１７は、第２の実施形態に係るインストール処理の流れを示す。なお、図１７において、上述した図７と共通する部分には同一の符号を付して、詳細な説明を省略する。また、図１７において、ＰＣ１０および配信サーバ２０の機能は、第１の実施形態において図２および図４を用いて説明した機能と略同一なので、詳細な説明を省略する。同様に、ＰＣ１０および配信サーバ２０のハードウェア構成も、第１の実施形態において図５および図６を用いて説明した構成をそのまま適用できるので、ここでの詳細な説明を省略する。さらに、図１７において、ＰＣ１０および配信サーバ２０の各機能部は、インストール処理に特に関わりの深い部分を示し、他を省略している。
【０１２０】
図１７において、配信サーバ２０は、配信サービス部２０１とＵＩテーブル２０３’とを含む。図１８は、第２の実施形態に係るＵＩテーブル２０３’の例を示す。図１８に例示されるように、第２の実施形態に係るＵＩテーブル２０３’は、機種特定情報（機種名）と、機種特定情報に対応付けられたドライバプログラムに用いられているＵＩ部のバージョン情報とを対応付けて格納する。以下では、ＵＩ部のバージョン情報を、「ＵＩバージョン」と呼ぶ。
【０１２１】
図１８の例では、機種特定情報「プリンタ（Ａ）」対して、ＵＩバージョン「Ｖｅｒ＃２」が対応付けられている。同様に、機種特定情報「プリンタ（Ｂ）」に対してＵＩバージョン「Ｖｅｒ＃１」が、機種特定情報「プリンタ（Ｅ）」にＵＩバージョン「Ｖｅｒ＃２」がそれぞれ対応付けられている。このように、１つのＵＩバージョンに対して複数の機種特定情報を対応付けることができる。なお、ＵＩバージョン「Ｖｅｒ＃２」は、ＵＩバージョン「Ｖｅｒ＃１」に対して新しいバージョンであるものとする。ＵＩバージョンは、例えば、ＵＩ部に含まれるＵＩレイアウト情報４０１および機能設定情報４０２のうち少なくとも一方が更新された場合に、更新される。
【０１２２】
図１７の例においても、図７の例と同様に、プリンタ装置３０ｂが導入済みのプリンタ装置であり、プリンタ装置３０ａが新規に導入されるプリンタ装置であり、ＰＣ１０には、プリンタ装置３０ａに対応するドライバプログラムが、未だインストールされていないものとする。
【０１２３】
例えばＰＣ１０に対するユーザ操作により、ＰＣ１０においてインストーラ１０２が起動され、プリンタ装置３０ａに対応するドライバプログラムのインストール処理が開始される。インストーラ１０２は、インストール処理が開始されると、ネットワーク４０上の各機器から機種特定情報を検出し、検出した機種特定情報を取得する（ステップＳ３０、ステップＳ３１）。この例では、インストーラ１０２は、ネットワーク４０上の各プリンタ装置３０ａおよび３０ｂから、機種特定情報３１ａおよび３１ｂをそれぞれ取得する。
【０１２４】
インストーラ１０２は、取得した各機種特定情報３１ａおよび３１ｂを含む機種特定情報のリストを配信サーバ２０に送信する（ステップＳ３２）。このとき、インストーラ１０２は、図７の例と同様に、プリンタ装置３０ａの機種特定情報３１ａと、プリンタ装置３０ｂの機種特定情報３１ｂとを識別可能として、各機種特定情報３１ａおよび３１ｂを配信サーバ２０に送信する。
【０１２５】
ＰＣ１０から送信された機種特定情報のリストと識別情報は、配信サーバ２０に受信され、配信サービス部２０１に渡される。配信サービス部２０１は、受信した機種特定情報のリストに基づきＵＩテーブル２０３’を参照し、機種特定情報のリストに含まれる各機種特定情報３１ａおよび３１ｂにそれぞれ対応付けられた各ＵＩバージョンを取得する（ステップＳ３３）。
【０１２６】
配信サービス部２０１は、ＵＩテーブル２０３’から、機種特定情報３１ａに対応付けられたＵＩバージョンを取得する。それと共に、配信サービス部２０１は、ＰＣ１０から送信された機種特定情報のリストに含まれる機種特定情報に対応付けられたＵＩバージョンに、機種特定情報３１ａに対応付けられたＵＩバージョンより古いＵＩバージョンが含まれているか否かを判定する。含まれていると判定した場合、配信サービス部２０１は、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａに対応するドライバプログラムのＵＩ部を、この古いＵＩバージョンのＵＩ部に差し替える。
【０１２７】
配信サービス部２０１は、ＵＩ部を差し替えたドライバプログラムをＰＣ１０に送信する（ステップＳ３４）。ＰＣ１０は、配信サーバ２０から送信されたドライバプログラムを受信してインストーラ１０２に渡す。インストーラ１０２は、渡されたドライバプログラムをＰＣ１０にインストールする（ステップＳ３５）。
【０１２８】
図１９は、上述した、第２の実施形態に係る配信サーバ２０における一例の処理をより具体的に示すフローチャートである。配信サーバ２０において、配信サービス部２０１は、ステップＳ４０で、ＰＣ１０から送信された機種特定情報のリストを受信し、受信したリストから、対応するドライバプログラムをＰＣ１０にインストールしたいプリンタ装置３０ａの機種特定情報を取得する。
【０１２９】
次のステップＳ４１で、配信サービス部２０１は、ＵＩテーブル２０３’に格納される各ＵＩバージョンにおいて、未比較のＵＩバージョンの有無を判定する。配信サービス部２０１は、未比較のＵＩバージョンが無いと判定した場合、処理をステップＳ４４に移行させる。例えば、ＰＣ１０に対して１台のプリンタ装置３０ａのみしか接続されていない場合に、未比較のＵＩバージョンが無いと判定される。
【０１３０】
ステップＳ４４で、配信サービス部２０１は、ステップＳ４０で取得された機器特定情報に対応付けられたＵＩバージョンを、インストールを行うドライバプログラムのＵＩ部に適用するＵＩバージョンとして選択する。配信サービス部２０１は、ステップＳ４４での処理が終了すると、処理をステップＳ４５に移行させる。
【０１３１】
一方、配信サービス部２０１は、ステップＳ４１で、未比較のＵＩバージョンが有ると判定した場合、処理をステップＳ４２に移行させる。ステップＳ４２で、配信サービス部２０１は、未比較の機種特定情報のうち、対応するＵＩバージョンがステップＳ４０で取得された機種特定情報に対応付けられているＵＩバージョンよりも古いＵＩバージョンが対応付けられている機種特定情報の有無を判定する。配信サービス部２０１は、当該機種特定情報が無いと判定した場合、処理を上述したステップＳ４４に移行させる。
【０１３２】
一方、配信サービス部２０１は、ステップＳ４２で、当該機種特定情報が有ると判定した場合、処理をステップＳ４３に移行させる。ステップＳ４３で、配信サービス部２０１は、ステップＳ４０でＰＣ１０から受信した機種特定情報のリストに含まれる、対応するドライバプログラムのＰＣ１０へのインストールを行わない機器に対応する機種特定情報に対応付けられたＵＩバージョンのうち、最も古いＵＩバージョンを選択する。配信サービス部２０１は、ＵＩバージョンを選択すると、処理をステップＳ４５に移行させる。
【０１３３】
配信サービス部２０１は、ステップＳ４５で、ステップＳ４３またはステップＳ４４で選択されたＵＩバージョンに応じたＵＩ部の構成データを、ＰＣ１０にインストールするためのドライバプログラムに同梱する。そして、次のステップＳ４６で、配信サービス部２０１は、ステップＳ４５でＵＩ部の構成データが同梱されたドライバプログラムをＰＣ１０に対して配信する。
【０１３４】
このように、第２の実施形態では、ＵＩバージョンに基づき、ＰＣ１０にインストールするドライバプログラムのＵＩ部を、本来インストールするドライバプログラムのＵＩ部よりもＵＩバージョンの古いＵＩ部に差し替えるか否かを判定している。そのため、新規導入するプリンタ装置３０ａに対応するドライバプログラムのインストール処理およびインストールされたドライバプログラムに対する操作に係る負担が軽減される。
【０１３５】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態は、上述した第１の実施形態および第２の実施形態で説明した配信サーバ２０の機能と、ＰＣ１０の一部の機能とを、プリンタ装置そのものが含んでいる例である。
【０１３６】
図２０は、第３の実施形態に係る情報処理システムの一例の構成を示す。図１において、情報処理システムは、１台以上のＰＣ１０ａ、１０ｂおよび１０ｃと、複数台のプリンタ装置３０ｅおよび３０ｆとを含み、これらがＬＡＮなどによるネットワーク４０により互いに通信可能の接続されて構成される。なお、図２０において、ＰＣ１０ａ、１０ｂおよび１０ｃは、それぞれＰＣ（Ａ）、ＰＣ（Ｂ）およびＰＣ（Ｃ）とも示されている。同様に、プリンタ装置３０ｅおよび３０ｆは、それぞれプリンタ（Ｅ）およびプリンタ（Ｆ）とも示されている。
【０１３７】
なお、図２０の例では、情報処理システムが３台のＰＣ１０ａ、１０ｂおよび１０ｃを含み、２台のプリンタ装置３０ｅおよび３０ｆを含むように示しているが、これはこの例に限定されない。すなわち、第２の実施形態に係る情報処理システムは、ＰＣを１台または２台のみ含んでいてもよいし、４台以上含んでいてもよい。また、プリンタ装置についても、３台以上のプリンタ装置を含んでもよい。さらに、情報処理システムが含む複数台のプリンタ装置のうち一部または全部がＭＦＰであってもよい。さらにまた、ネットワーク４０は、有線および無線の何れの通信を用いたものでもよい。
【０１３８】
図２０の構成において、プリンタ装置３０ｆは、ネットワーク４０に既に接続され対応するドライバプログラムがＰＣ１０ａ〜１０ｃのうち少なくとも１台にインストールされているものとする。一方、プリンタ装置３０ｅは、ネットワーク４０に対して新規に接続されたものであって、ＰＣ１０ａ〜１０ｃの何れにも、対応するドライバプログラムがインストールされていないものとする。
【０１３９】
さらに、プリンタ装置３０ｅおよび３０ｆのうち少なくとも一方（プリンタ装置３０ｅとする）は、概略的には、第１の実施形態で説明した配信サーバ２０およびＰＣ１０の一部の機能を含んでいる。第２の実施形態では、このプリンタ装置３０ｅに対応するドライバプログラムのＰＣ１０ａ〜１０ｃに対するインストール処理を、プリンタ装置３０ｅから行う。
【０１４０】
図２１は、第３の実施形態に係るプリンタ装置３０ｅの機能を説明するための一例の機能ブロック図である。図２１において、プリンタ装置３０ｅは、インストール制御部３００と、決定部３０１と、送受信部３０２と、ＵＩテーブル３０３と、記憶制御部３０４と、機種特定情報３１ｅとを備える。これらのうち、インストール制御部３００、決定部３０１および送受信部３０２は、ＣＰＵ上で動作するプログラムにより構成することができる。これに限らず、インストール制御部３００、決定部３０１および送受信部３０２の一部または全部をハードウェアにより構成してもよい。
【０１４１】
インストール制御部３００は、プリンタ装置３０ｅによる各ＰＣ１０ａ〜１０ｃに対するドライバプログラムのインストール処理を制御する。インストール処理部３００は、プリンタ装置３０ｅにおいてユーザに対する情報提示およびユーザ操作の受け付けを行うためのＵＩ機能を含む。それと共に、インストール処理部３００は、図２を用いて説明した、配信サーバ２０が含むＵＩ特定部２１０および結合部２１１に相当する機能と、図４を用いて説明した、取得部１１１に相当する機能とを含む。
【０１４２】
決定部３０１は、プリンタ装置３０ｅのドライバプログラムをインストールする候補となるＰＣが複数台ある場合に、当該ドライバプログラムをインストールするＰＣを決定する。送受信部３０２は、ネットワーク４０を介したデータの送受信を行う。
【０１４３】
ＵＩテーブル３０３は、図３を用いて説明したＵＩテーブル２０３に対応し、プリンタ装置を識別する機種特定情報と、ＵＩタイプとを対応付けたテーブルである。ここでは、説明のため、ＵＩテーブル３０３は、各プリンタ（Ｅ）〜（Ｈ）に対して、ＵＩタイプ「Ｔｙｐｅ＃Ａ」、「Ｔｙｐｅ＃Ｂ」、「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｘ」がそれぞれ対応付けられているものとする。
【０１４４】
記憶制御部３０４は、ハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体に対するデータの記憶と、当該記憶媒体からのデータの読み出しを制御する。記憶制御部３０４に係る当該記憶媒体は、少なくとも、プリンタ装置３０ｅを各ＰＣ１０ａ〜１０ｃから制御するためのドライバプログラムと、当該ドライバプログラムに適用されるＵＩ部を構成するためのデータとが記憶される。ＵＩ部を構成するためのデータは、ＵＩレイアウト情報４０１および機能設定情報４０２を含む。当該データは、ＵＩ生成部４００をさらに含んでもよい。
【０１４５】
記憶制御部３０４に係る記憶媒体は、さらに、当該ドライバプログラムに適用されるＵＩ部による表示イメージの画像データを記憶することができる。表示イメージは、例えば、ＵＩ部により表示されるＵＩ画面を縮小したイメージを用いることができる。表示イメージは、ＵＩ部を構成するＵＩレイアウト情報４０１および機能設定情報４０２に基づき予め作成して、それぞれＵＩ部と対応付けて当該記憶媒体に記憶させておく。
【０１４６】
機種特定情報３１ｅは、プリンタ装置３０ｅの機種を識別するための情報であって、例えばＰｎＰ名を用いることができる。機種特定情報３１ｅは、記憶制御部３０４に係る記憶媒体に記憶してもよいし、プリンタ装置３０ｅが備えるＲＯＭに予め記憶しておいてもよい。
【０１４７】
図２２は、第３の実施形態に適用可能なＰＣ１０ａの機能を説明するための一例の機能ブロック図である。この図２２に示される構成は、ＰＣ１０ｂおよび１０ｃにも同様に適用可能である。図２２において、ＰＣ１０ａは、送受信部１０１と、インストーラ１０２ａとを含む。これら送受信部１０１およびインストーラ１０２ａは、ＣＰＵ上で動作するプログラムにより構成することができる。これに限らず、送受信部１０１およびインストーラ１０２ａの一部または全部をハードウェアにより構成してもよい。
【０１４８】
送受信部１０１は、ネットワーク４０を介してデータの送受信を行う。インストーラ１０２ａは、図４を用いて説明したインストーラ１０２に対応し、ＰＣ１０ａに対するドライバプログラムのインストール処理を行う。
【０１４９】
インストーラ１０２ａは、インストール処理部１１０ａとＡＰＩ(Application  Programming  Interface)１１２とを含む。ＡＰＩ１１２は、インストール処理部１１０ａに対するインタフェースであって、例えばネットワーク４０を介して送信された指示に従い、インストール処理部１１０ａを制御することができる。
【０１５０】
図２３は、第２の実施形態に適用可能なプリンタ装置３０ｅの一例のハードウェア構成を示す。図２３の例では、プリンタ装置３０ｅは、コントローラ３１００と、画像形成エンジン３０４０とをＰＣＩ(Peripheral  Component  Interface)バスで接続した構成となる。コントローラ３１００は、プリンタ装置３０ｅの全体の制御、描画制御、操作表示部３０１０における入力および表示制御など、各種の制御を行う。画像形成エンジン３０４０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタなどである。なお、この画像形成エンジン３０４０は、これらのプロッタなどの所謂エンジン部分に加えて、誤差拡散やガンマ変換などを実行する画像処理部分が含まれる。
【０１５１】
コントローラ３１００は、ＣＰＵ３０００と、ノースブリッジ（ＮＢ）３００２と、システムメモリ（ＭＥＭ−Ｐ）３００１と、サウスブリッジ（ＳＢ）３００３と、ローカルメモリ（ＭＥＭ−Ｃ）３００６と、ＡＳＩＣ(Application  Specific  Integrated  Circuit)３００５と、ハードディスクドライブ（ＨＤＤ）３００７とを有し、ＮＢ３００２とＡＳＩＣ３００５との間をＡＧＰ(Accelerated  Graphics  Port)バス３００４で接続した構成となる。また、ＭＥＭ−Ｐ３００１は、ＲＯＭ３００１ａと、ＲＡＭ３００１ｂとを含む。
【０１５２】
ＣＰＵ３０００は、プリンタ装置３０ｅの全体制御を行うものであり、ＮＢ３００２、ＭＥＭ−Ｐ３００１およびＳＢ３００３からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【０１５３】
ＮＢ３００２は、ＣＰＵ３０００と、ＭＥＭ−Ｐ３００１、ＳＢ３００３およびＡＳＩＣ３００５とを接続するためのブリッジであり、ＭＥＭ−Ｐ３００１に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを含む。
【０１５４】
ＭＥＭ−Ｐ３００１は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ３００１ａとＲＡＭ３００１ｂとを含む。ＲＯＭ３００１ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリである。また、ＲＡＭ３００１ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。このＭＥＭ−Ｐ３００１に対する書き込みおよび読み出しは、上述の記憶制御部３０４により制御することができる。
【０１５５】
ＳＢ３００３は、ＮＢ３００２と、ＰＣＩデバイスおよび周辺デバイスとを接続するためのブリッジである。このＳＢ３００３は、ＰＣＩバスを介してＮＢ３００２と接続されている。また、このＰＣＩバスに対して、ネットワーク４０を介した通信を行う通信Ｉ／Ｆ３０５０が接続される。
【０１５６】
ＡＳＩＣ３００５は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ(Integrated  Circuit)であり、ＡＧＰ３００４、ＰＣＩバス、ＨＤＤ３００７およびＭＥＭ−Ｃ３００６をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ３００５は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ３００５の中核をなすアービタと、ＭＥＭ−Ｃ３００６を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などを行う複数のＤＭＡＣ(Direct  Memory  Access  Controller)と、画像形成エンジン３０４０との間でＰＣＩバスを介したデータ転送を行うＰＣＩユニットとを含む。このＡＳＩＣ３００５には、ＰＣＩバスを介して、さらに、データＩ／Ｆ３０３０が接続される。データＩ／Ｆ３０３０は、例えばＵＳＢを適用することができる。
【０１５７】
操作表示部３０１０は、図２３の例では、ＡＳＩＣ３００５に直接接続されている。操作表示部３０１０は、ユーザ入力を受け付ける入力デバイスと、情報の表示を行う、ＬＣＤ(Liquid  Crystal  Display)などによる表示デバイスとを含む。操作表示部３０１０は、ハードウェアによるキーを用いた入力デバイスを備えてもよいし、入力デバイスと表示デバイスとが一体的に構成された、所謂タッチパネルとして構成してもよい。上述したインストール制御部３００によるＵＩが、この操作表示部３０１０に適用される。
【０１５８】
ＭＥＭ−Ｃ３００６は、画像バッファや符号バッファとして用いるローカルメモリである。ＨＤＤ３００７は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などデータの記憶を行うためのストレージである。上述した記憶制御部３０４は、このＨＤＤ３００７に対する書き込みおよび読み出しを制御することもできる。また、ＵＩテーブル３０３がＨＤＤ３００７に記憶される。
【０１５９】
上述したインストール制御部３００と、決定部３０１と、送受信部３０２とは、ＣＰＵ３０００上で動作するプログラムによって実現される。このプログラムは、ＲＯＭ３００１ａやＨＤＤ３００７に予め記憶させて提供してもよい。これに限らず、このプログラムは、通信Ｉ／Ｆ３０５０が接続されるネットワーク４０に接続されたコンピュータ上に格納し、ネットワーク４０経由でＰＣ１０にダウンロードさせることにより提供するように構成することもできる。また、このプログラムを、ネットワーク４０経由で提供または配布するように構成してもよい。
【０１６０】
さらに、このプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。この場合、例えばデータＩ／Ｆ３０３０に接続された外部のドライブ装置やコンピュータを介して、プログラムがプリンタ装置３０ｅに供給される。
【０１６１】
プログラムは、例えば、上述した各部（インストール制御部３００、決定部３０１および送受信部３０２）を含むモジュール構成となっており、実際のハードウェアとしては、ＣＰＵ３０００が例えばＨＤＤ３００７から当該プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ３００１ｂ）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【０１６２】
図２４を用いて、第３の実施形態に係るインストール処理を概略的に説明する。図２４に示されるように、プリンタ装置３０ｅにおいて、インストール制御部３００は、送受信部３０２により、ネットワーク４０に接続される他のプリンタ装置３０ｆと通信を行いプリンタ装置３０ｆの機種特定情報３１ｆを取得する。そして、インストール制御部３００は、取得した機種特定情報３１ｆと、プリンタ装置３０ｅ自身の機種特定情報３１ｅとに基づき、インストール対象のＰＣ（ＰＣ１０ａとする）にインストールするドライバプログラムに適用するＵＩタイプを、例えばユーザ操作に応じて決定する。
【０１６３】
インストール制御部３００は、決定されたＵＩタイプがプリンタ装置３０ｅ自身の機種特定情報３１ｅに対応付けられたＵＩタイプと異なる場合には、ドライバプログラムのＵＩ部を差し替える。インストール制御部３００は、ＵＩ部が差し替えられたドライバプログラムを、ドライバプログラムのインストール対象であるＰＣ１０ａに送信する。ＰＣ１０ａにおいて、インストーラ１０２ａは、プリンタ装置３０ｅから送信されたドライバプログラムを、ＰＣ１０ａにインストールする。
【０１６４】
図２５は、第３の実施形態に係る一連の処理を示すシーケンス図である。なお、図２５において、上述した図２１、図２２および図２４と共通する部分には同一の符号を付して、詳細な説明を省略する。また、図２５において、煩雑さを避けるため、ＰＣ１０ａは、主要な機能部のみを示すと共に、ＰＣ１０ｂおよび１０ｃは省略されている。
【０１６５】
ネットワーク４０に新規に接続されたプリンタ装置３０ｅにおいて、インストール処理部３００は、操作表示部３０１０へのユーザ操作により、プリンタ装置３０ｅを制御するためのドライバプログラムのＰＣ１０ａ〜１０ｃに対するインストール処理を開始する。インストール処理部３００は、送受信部３０２に対し、ネットワーク４０に接続される他のプリンタ装置の機種特定情報を取得するように指示する（ステップＳ２００）。送受信部３０２は、指示に従いネットワーク４０に接続される各プリンタ装置と通信を行い、各プリンタ装置の機種特定情報を検出し、機種特定情報を取得する（ステップＳ２０１）。図２４の例では、送受信部３０２は、プリンタ装置３０ｆとの通信により、機種特定情報３１ｆを検出して取得する。送受信部３０２は、取得した機種特定情報３１ｆをインストール処理部３００に渡す（ステップＳ２０２）。
【０１６６】
インストール処理部３００は、送受信部３０２から受け取った機種特定情報３１ｅを決定部３０１に渡す（ステップＳ２０３）。決定部３０１は、プリンタ装置３０ｅ自身の機種特定情報を取得する（ステップＳ２０４）。さらに、決定部３０１は、送受信部３０２から受け取った機種特定情報３１ｆによりＵＩテーブル３０３を参照して、機種特定情報３１ｅに対応付けられているＵＩタイプと異なるＵＩタイプが機種特定情報３１ｆに対応付けられているか検索する（ステップＳ２０５）。
【０１６７】
上述したように、ＵＩテーブル３０３では、プリンタ装置３０ｅの機種特定情報３１ｅ（プリンタ（Ｅ））には、ＵＩタイプ「Ｔｙｐｅ＃Ａ」が対応付けられている。また、プリンタ装置３０ｆの機種特定情報３１ｆ（プリンタ（Ｆ））には、ＵＩタイプ「Ｔｙｐｅ＃Ｘ」が対応付けられている。ドライバプログラムのインストール処理を行うプリンタ装置３０ｅと、他のプリンタ装置３０ｆとで、対応付けられたＵＩタイプが異なっていることが分かる。
【０１６８】
また、ネットワーク４０上からは、ＵＩテーブル３０３に格納される、プリンタ（Ｇ）および（Ｈ）にそれぞれ対応する機種特定情報が検出されていない。この場合には、決定部３０１は、プリンタ（Ｇ）および（Ｈ）にそれぞれ対応付けられたＵＩタイプを無視する。さらに、ＵＩテーブル３０３では、プリンタ装置３０ｅに対応付けられたＵＩタイプと異なるＵＩタイプとして、ＵＩタイプ「Ｔｙｐｅ＃Ｘ」が格納されている。しかしながら、ＰＣ１０から送信された機種特定情報のリストには、ＵＩタイプ「Ｔｙｐｅ＃Ｘ」に対応付けられた機種特定情報（プリンタ（Ｈ））が含まれていない。したがって、決定部３０１は、このＵＩタイプ「Ｔｙｐｅ＃Ｘ」も無視する。
【０１６９】
決定部３０１は、ステップＳ２０５で検索された検索結果をインストール制御部３００に渡す（ステップＳ２０６）。より具体的には、上述の例では、決定部３０１は、ＵＩタイプ「Ｔｙｐｅ＃Ａ」と異なり、且つ、ネットワーク４０を介してプリンタ装置３０ｅに接続される機器の機種識別情報（この場合は機種識別情報３１ｆ）に対応する、ＵＩタイプ「Ｔｙｐｅ＃Ｂ」を、ＵＩ部の選択肢としてインストール制御部３００に渡す（ステップＳ２０７）。
【０１７０】
インストール制御部３００は、決定部３０１から渡されたＵＩタイプ「Ｔｙｐｅ＃Ｂ」と、自身のドライバプログラムに含まれるＵＩ部のＵＩタイプ「Ｔｙｐｅ＃Ａ」とに基づき、プリンタ装置３０ｅのドライバプログラムに適用するＵＩタイプを選択する選択画面のＵＩを生成し、表示操作部３０１０に表示させる。ここでは、インストール制御部３００は、記憶制御部３０４により、記憶媒体からＵＩタイプ「Ｔｙｐｅ＃Ａ」および「Ｔｙｐｅ＃Ｂ」の表示イメージを示す画像データを取得し（ステップＳ２０８、ステップＳ２０９）、取得した各画像データに基づく画像を選択画面に表示させる（ステップＳ２１０）。
【０１７１】
図２６は、第３の実施形態に適用可能な、各ＵＩタイプの表示イメージの画像を表示可能な選択画面５１の例を示す。図２６において、選択画面５１は、メッセージ表示領域５１０と、選択入力部５１１と、ボタン５１２および５１３とを含む。メッセージ表示領域５１０は、インストール制御部３００がユーザに提示するメッセージが表示される。メッセージの内容は、図８を用いて説明したメッセージ表示領域５００に表示されるメッセージと同様であるので、ここでの説明を省略する。
【０１７２】
選択入力部５１１は、インストール対象であるドライバプログラムに対して適用するＵＩを選択するためのユーザ入力を受け付ける。図２６の例では、選択入力部５１１は、導入済みのプリンタ装置３０ｅを示す項目「Ｐｒｉｎｔｅｒ  Ｅ」と、新たに導入するプリンタ装置３０ｆを示す項目「Ｐｒｉｎｔｅｒ  Ｆ」とが表示され、ラジオボタンによりこれら各項目のうち何れかを選択するようになっている。
【０１７３】
選択入力部５１１は、さらに、各項目「Ｐｒｉｎｔｅｒ  Ｅ」および「Ｐｒｉｎｔｅｒ  Ｆ」にそれぞれ対応した位置（この例ではｙ座標）に、イメージ表示領域５１１ａおよび５１１ｂが設けられる。イメージ表示領域５１１ａは、項目「Ｐｒｉｎｔｅｒ  Ｅ」に対応するＵＩ部に対応付けられて例えばＭＥＭ−Ｐ３００１やＨＤＤ３００７に記憶される画像データに基づく画像が表示される。同様に、イメージ表示領域５１１ｂには、項目「Ｐｒｉｎｔｅｒ  Ｆ」に対応するＵＩ部に対応付けられて例えばＭＥＭ−Ｐ３００１やＨＤＤ３００７に記憶される画像データに基づく画像が表示される。
【０１７４】
このように、選択入力画面５１に、ＵＩの表示イメージを表示させることで、ユーザは、項目「Ｐｒｉｎｔｅｒ  Ｅ」および「Ｐｒｉｎｔｅｒ  Ｆ」の選択を直感的に行うことができ、好ましい。
【０１７５】
ボタン５１２は、選択入力部５１１に対してなされたユーザ入力による選択を決定するためのボタンである。ボタン５１３は、キャンセルボタンである。例えば、ボタン５１３を操作することで、新たに導入するプリンタ装置３０ｅに対応するドライバプログラムのインストール処理を中止させることができる。
【０１７６】
これに限らず、選択画面として、例えば図８を用いて説明した選択画面５０を用いてもよい。
【０１７７】
説明は図２５に戻り、決定部３０１は、選択画面５１に対してなされたユーザ入力を取得し、取得したユーザ入力に応じて、プリンタ装置３０ｅのドライバプログラムに対して適用するＵＩタイプを決定する。決定部３０１は、決定されたＵＩタイプを示す情報を、インストール制御部３００に渡す。
【０１７８】
インストール制御部３００は、決定部３０１からＵＩタイプを示す情報を受け取ると、送受信部３０２に対し、ネットワーク４０上のＰＣ１０ａ〜１０ｃのうち、インストーラ１０２ａが搭載されているＰＣを検出しリストアップするように指示する（ステップＳ２１１）。送受信部３０２は、この指示に従い、ネットワーク４０上の各ＰＣ１０ａ〜１０ｃに対して、ＡＰＩ１１２の呼び出しを行う（ステップＳ２１２）。各ＰＣ１０ａ〜１０ｃのうちインストーラ１０２ａが搭載されているＰＣは、この要求に対して、インストーラ１０２ａ内のＡＰＩ１１２が応答する（ステップＳ２１３）。
【０１７９】
各ＰＣ１０ａ〜１０ｃからのＡＰＩ１１２による応答は、プリンタ装置３０ｅに送信され、送受信部３０２に受信される。送受信部３０２は、各ＰＣ１０ａ〜１０ｃのうち応答を受信したＰＣの一覧をインストール制御部３００に渡す（ステップＳ２１４）。ＰＣを示す情報としては、ネットワーク４０上でのＰＣの名前やＩＰ(Internet  Protocol)アドレスを用いることができる。
【０１８０】
インストール制御部３００は、送受信部３０２から渡された情報に基づき、当該プリンタ装置３０ｅのドライバプログラムをインストールするＰＣを選択するためのＰＣ一欄を含むＰＣ選択画面のＵＩを生成し、表示操作部３０１０に表示させる（ステップＳ２１５）。
【０１８１】
図２７は、第３の実施形態に係るＰＣ選択画面の一例を示す。図２７において、ＰＣ選択画面５２は、メッセージ表示領域５２０と、ＰＣ選択領域５２１と、ボタン５２２および５２３とを含む。
【０１８２】
メッセージ表示領域５２０は、インストール制御部３００がユーザに提示するメッセージが表示される。この例では、インストール制御部３００は、プリンタ装置３０ｅのドライバプログラムをインストールするＰＣの選択を促すメッセージをメッセージ表示領域５２０に表示させている。
【０１８３】
ＰＣ選択領域５２１は、送受信部３０２にリストアップされたＰＣの情報が一覧で表示される。図２７の例では、ＰＣ選択領域５２１は、項目「ＰＣ名」、「ＩＰアドレス」および「Ｃｏｍｍｅｎｔ」を含む１つのレコードに、１台のＰＣの情報が表示される。項目「ＰＣ名」は、例えばネットワーク４０上でのＰＣの名前が表示される。項目「ＩＰアドレス」は、そのＰＣのネットワーク４０上でのＩＰアドレスが表示される。また、項目「Ｃｏｍｍｅｎｔ」は、そのＰＣに対する補足情報が表示される。
【０１８４】
一例として、各ＰＣ１０ａ〜１０ｃに対してインストーラ１０２ａがそれぞれ搭載されているものとする。この場合、ＰＣ選択領域５２１には、図２７に例示されるように、各ＰＣ１０ａ〜１０ｃに対応するＰＣ名「ＰＣ（Ａ）」、「ＰＣ（Ｂ）」および「ＰＣ（Ｃ）」と、それぞれのＰＣのＩＰアドレスとが、レコード毎に表示される。
【０１８５】
ボタン５２２は、ＰＣ選択領域５２１に対してなされたユーザ入力による選択を決定するためのボタンである。ボタン５２３は、キャンセルボタンである。例えば、ボタン５２３を操作することで、新たに導入するプリンタ装置３０ｅに対応するドライバプログラムのインストール処理を中止させることができる。
【０１８６】
インストール制御部３００は、ＰＣ選択画面５２に対してなされたユーザ入力を取得し、取得したユーザ入力に応じて、プリンタ装置３０ｅのドライバプログラムをインストールするＰＣを決定する。ここでは、プリンタ装置３０ｅのドライバプログラムをインストールするＰＣとして、ＰＣ１０ａが選択されたものとする。なお、ＰＣ選択画面５２において、プリンタ装置３０ｅのドライバプログラムのインストール対象として、複数のＰＣを選択することも可能である。
【０１８７】
説明は図２５に戻り、インストール制御部３００は、ドライバプログラムをインストールするＰＣを決定すると、上述したようにして例えば選択画面５１で選択されたＵＩタイプに対応するＵＩ部を構成するデータと、当該プリンタ装置３０ｅのドライバプログラムとを記憶制御部３０４により例えばＭＥＭ−Ｐ３００１やＨＤＤ３００７から取得する（ステップＳ２１６）。インストール制御部３００は、記憶制御部３０４により例えばＭＥＭ−Ｐ３００１やＨＤＤ３００７から取り出した、ＵＩ部を構成するデータと、ドライバプログラムが含むブログラム本体とを結合する（ステップＳ２１７）。
【０１８８】
インストール制御部３００は、この結合により生成されたドライバプログラムをＰＣ選択画面５２で選択されたＰＣ１０ａに対してインストールする指示を、送受信部３０２に渡す（ステップＳ２１８）。送受信部３０２は、この指示に従い、ドライバプログラムをインストールするように選択されたＰＣ１０ａに対して、ステップＳ２１７の結合処理により生成されたドライバプログラムを送信し、ＡＰＩ１１２を呼び出して、当該ドライバプログラムのインストールを指示する（ステップＳ２１９）。
【０１８９】
ＰＣ１０ａにおいて、ＡＰＩ１１２は、ステップＳ２１９のインストール指示に従い、プリンタ装置３０ｅから送信されたドライバプログラムのインストールをインストール処理部１１０ａに指示する（ステップＳ２２０）。インストール処理部１１０ａは、この指示に従い、ドライバプログラムをＰＣ１０ａにインストールする（ステップＳ２２１）。
【０１９０】
第３の実施形態によれば、ＰＣへのドライバプログラムのインストールをプリンタ装置から行う場合であっても、当該ドライバプログラムに適用するＵＩタイプを、当該ドライバプログラムの本来のＵＩタイプと、導入済みの他のプリンタ装置のドライバプログラムに対応するＵＩタイプとから選択することが可能である。そのため、新規導入するプリンタ装置に対応するドライバプログラムのインストール処理およびインストールされたドライバプログラムに対する操作に係る負担が軽減される。
【０１９１】
（第４の実施形態）
次に、第４の実施形態について説明する。図２８は、第４の実施形態に係る情報処理システムの一例の構成を示す。図２８において、情報処理システムは、ＰＣ１０ｄと、複数台のプリンタ装置３０ａおよび３０ｂとを含み、これらがＬＡＮなどによるネットワーク４０により互いに通信可能に接続されて構成される。なお、図２８において、プリンタ装置３０ａおよび３０ｂは、それぞれプリンタ（Ａ）およびプリンタ（Ｂ）とも示されている。また、図２８において、上述した図１と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１９２】
なお、図２８の例では、情報処理システムが２台のプリンタ装置３０ａおよび３０ｂを含むように示しているが、これはこの例に限定されない。すなわち、第４の実施形態に係る情報処理システムは、３台以上のプリンタ装置を含んでもよいし、各プリンタ装置は、プリンタ機能、スキャナ機能、コピー機能、ＦＡＸ機能など複数の機能を１つの筐体に内蔵するＭＦＰであってもよい。
【０１９３】
第４の実施形態では、ＰＣ１０ｄは、第１の実施形態における配信サーバ２０の機能を含む。すなわち、ＰＣ１０ｄは、機種特定情報とＵＩタイプとを対応付けたＵＩテーブルと、導入済みのプリンタ装置３０ｂに対して新規に導入されるプリンタ装置３０ａのドライバプログラムとを、複数のＵＩタイプそれぞれのＵＩ部の構成データとを含む。
【０１９４】
なお、ＰＣ１０ｄは、ハードウェア構成として、図５を用いて説明したハードウェア構成をそのまま適用するものとする。
【０１９５】
ＰＣ１０ｄは、新規導入のプリンタ装置３０ａに対応するドライバプログラムのインストール指示に応じて、ネットワーク４０に接続されるプリンタ装置３０ａおよびプリンタ装置３０ｂの各機種特定情報を取得する。そして、ＰＣ１０ｄは、取得した各機種特定情報に基づき、インストールを行うドライバプログラムに適用するＵＩタイプを決定する。ＰＣ１０ｄは、決定されたＵＩタイプがプリンタ装置３０ａの機種特定情報に対応付けられたＵＩタイプと異なる場合には、ドライバプログラムのＵＩ部を差し替えて、ＰＣ１０ｄにインストールする。
【０１９６】
図２９は、第４の実施形態に係るＰＣ１０ｄの機能を説明するための一例の機能ブロック図である。ＰＣ１０ｄは、送受信部１０１と、インストーラ１０２ｄと、画面生成部１０３と、決定部１０４と、ＵＩテーブル１２０とを含む。なお、図２９において、上述の図４と共通する部分には同一の符号を付して、詳細な説明を省略する。図２９において、ＵＩテーブル１２０は、機種特定情報とＵＩタイプとを対応付ける。ここでは、説明のため、ＵＩテーブル１２０は、図３を用いて説明したＵＩテーブル２０３と同等の構成とする。
【０１９７】
ＰＣ１０ｄを構成する各部のうち、送受信部１０１、インストーラ１０２ｄ、画面生成部１０３および決定部１０４は、ＣＰＵ上で動作するプログラムにより構成することができる。これに限らず、送受信部１０１、インストーラ１０２、画面生成部１０３および決定部１０４の一部または全部をハードウェアにより構成してもよい。
【０１９８】
インストーラ１０２ｄは、プリンタ装置３０ａに対応するドライバプログラムをＰＣ１０ｄにインストールするもので、インストール処理部１１０ｄと、取得部１１１と、記憶制御部１１３とを含む。記憶制御部１１３は、例えばストレージ１００６やＲＯＭ１００２、ＲＡＭ１００３といった、ＰＣ１０ｄが備える記憶媒体に対するデータの読み書きを制御することができる。例えばプリンタ装置３０ａに対応するドライバプログラムと、複数のＵＩ部構成データとがストレージ１００６に記憶される。記憶制御部１１３は、ストレージ１００６から、これらドライバプログラムやＵＩ部構成データを読み出す。
【０１９９】
上述した送受信部１０１と、インストーラ１０２ｄと、画面生成部１０３と、決定部１０４とは、ＣＰＵ１００１上で動作するプログラムによって実現される。このプログラムと、ＵＩテーブル１２０と、ストレージ１００６に記憶される各データおよびプログラムは、通信Ｉ／Ｆ１００９が接続されるネットワーク４０に接続されたコンピュータ上に格納し、ネットワーク４０経由でＰＣ１０ｄにダウンロードさせることにより提供するように構成してもよいし、ネットワーク４０経由で提供または配布するように構成してもよい。これに限らず、このプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。
【０２００】
プログラムは、例えば、上述した各部（送受信部１０１、インストーラ１０２ｄ、画面生成部１０３および決定部１０４）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１００１が例えばストレージ１００６から当該プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ１００３）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【０２０１】
図３０を用いて、第４の実施形態に係るインストール処理を概略的に説明する。図３０に示されるように、ＰＣ１０ｄにおいて、インストーラ１０２ｄは、ネットワーク４０に接続される各プリンタ装置３０ａおよび３０ｂと通信を行い、各プリンタ装置３０ａおよび３０ｂの機種特定情報３１ａおよび３１ｂをそれぞれ取得する。そして、インストーラ１０２ｄは、取得した機種特定情報３１ａおよび３１ｂに基づきＵＩテーブル１２０を参照し、ＰＣ１０ｄにインストールする、プリンタ装置３０ａに対応するドライバプログラムに適用するＵＩタイプを決定する。
【０２０２】
インストーラ１０２ｄは、決定されたＵＩタイプが、導入済みのプリンタ装置３０ｂの機種特定情報３１ｂに対応付けられたＵＩタイプと異なる場合には、新規導入するプリンタ装置３０ａに対応するドライバプログラムのＵＩ部を、導入済みのプリンタ装置３０ｂに対応するドライバプログラムのＵＩ部に差し替える。インストーラ１０２ｄは、ＵＩ部が差し替えられたドライバプログラムを、ＰＣ１０ｄにインストールする。
【０２０３】
図３１は、第４の実施形態に係る一連の処理を示す一例のシーケンス図である。なお、図３１において、上述した図２９および図３０と共通する部分には同一の符号を付して、詳細な説明を省略する。図３１のシーケンスによる処理は、例えばＰＣ１０ｄにおいて、インストーラ１０２ｄが起動され、プリンタ装置３０ａのドライバプログラムのインストールが指示されることで開始される。
【０２０４】
ドライバプログラムのインストールが指示されると、インストーラ１０２ｄは、ネットワーク４０上の各機器から機種特定情報を検出し、検出した機種特定情報を取得する（ステップＳ３００〜ステップＳ３０５）。この例では、インストーラ１０２ｄは、プリンタ装置３０ａおよび３０ｂから機種特定情報３１ａおよび３１ｂを取得している。インストーラ１０２ｄは、取得した全ての機種特定情報３１ａおよび３１ｂを決定部１０４に渡す（ステップＳ３０６）。
【０２０５】
決定部１０４は、渡された各機種特定情報３１ａおよび３１ｂに基づきＵＩテーブル１２０を参照し、各機種特定情報３１ａおよび３１ｂ名に対応付けられたＵＩタイプを検索する（ステップＳ３０７、ステップＳ３０８）。決定部１０４は、検索結果をインストーラ１０２ｄに渡す（ステップＳ３０９）。
【０２０６】
インストーラ１０２ｄは、渡されたＵＩタイプのうち、インストールするドライバプログラムに適用するＵＩタイプを選択するための選択画面を、画面生成部１０３に生成させる。生成された選択画面は、ディスプレイ１００５に表示される（ステップＳ３１０）。ここでは、画面生成部１０３は、図８を用いて説明した選択画面５０と同等の画面を生成するものとする。決定部１０４は、ディスプレイ１００５に表示された選択画面に対するユーザ操作により選択されたＵＩタイプを、選択結果としてインストーラ１０２ｄに返す。
【０２０７】
インストーラ１０２ｄは、決定部１０４から返された選択結果に示されるＵＩタイプに対応するＵＩ部の構成データと、プリンタ装置３０ａのドライバプログラムのドライバ本体とを、記憶制御部１１３によりストレージ１００６から取り出し、取り出したＵＩ部とドライバ本体とを結合して１つのドライバプログラムを生成する（ステップＳ３１１）。そして、インストーラ１０２ｄは、生成したドライバプログラムをＰＣ１０ｄにインストールする（ステップＳ３１２）。
【０２０８】
ところで、第４の実施形態においては、インストーラ１０２ｄは、ステップＳ３０９で決定部１０４から渡されたＵＩタイプに応じて、ＵＩタイプを選択するための選択画面５０を表示させるか否かを決定する。図３２は、第４の実施形態に係る、選択画面の表示、非表示を決定する処理の一例のフローチャートを示す。
【０２０９】
インストーラ１０２ｄは、ステップＳ５０で、ネットワーク４０に接続される各機器に対応する各ＵＩタイプを取得する（図３１のステップＳ３０６〜ステップＳ３０９に対応）。次のステップＳ５１で、インストーラ１０２ｄは、ステップＳ５０で取得した各ＵＩタイプに、当該インストーラ１０２ｄがインストールを行うドライバプログラムに対応するＵＩタイプと異なるＵＩタイプが存在するか否かを判定する。
【０２１０】
インストーラ１０２ｄは、ステップＳ５１で、異なるＵＩタイプが存在すると判定した場合、処理をステップＳ５２に移行させる。ステップＳ５２で、インストーラ１０２ｄは、ＵＩタイプの選択画面を表示させ（図３１のステップＳ３１０に対応）、次のステップＳ５３で、選択画面に対するユーザ操作による選択入力を待機する。入力が無いと判定した場合、インストーラ１０２ｄは、処理をステップＳ５３に戻す。入力があったと判定した場合、インストーラ１０２ｄは、処理をステップＳ５４に移行させる。
【０２１１】
ステップＳ５４で、インストーラ１０２ｄは、インストールを行うドライバプログラムに適用するＵＩタイプを決定する。例えば、インストーラ１０２ｄは、ステップＳ５３からこのステップＳ５４に処理を移行させた場合には、ＵＩタイプの選択画面で選択されたＵＩタイプを、インストールを行うドライバプログラムに適用するＵＩタイプとして適用する。
【０２１２】
一方、インストーラ１０２ｄは、上述したステップＳ５１で異なるＵＩタイプが存在しないと判定した場合、処理をステップＳ５４に移行させる。この場合には、ＵＩタイプを選択するための選択画面が表示されない。インストーラ１０２ｄは、ステップＳ５１から直接的にこのステップＳ５４に処理を移行させた場合には、インストールを行うドライバプログラムのＵＩタイプとして、当該ドライバプログラムの本来のＵＩタイプを適用する。
【０２１３】
第４の実施形態によれば、ＰＣに特定のプリンタ装置のドライバプログラムをインストールする場合であっても、当該ドライバプログラムに適用するＵＩタイプを、当該ドライバプログラムの本来のＵＩタイプと、導入済みのプリンタ装置のドライバプログラムに対応するＵＩタイプとから選択することが可能である。そのため、新規導入するプリンタ装置に対応するドライバプログラムのインストール処理およびインストールされたドライバプログラムに対する操作に係る負担が軽減される。
【０２１４】
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０２１５】
１０，１０ａ，１０ｂ，１０ｃ，１０ｄ  ＰＣ
２０  配信サーバ
３０ａ，３０ｂ，３０ｅ，３０ｆ  プリンタ装置
３１ａ，３１ｂ，３１ｅ，３１ｆ  機種特定情報
４０  ネットワーク
５０，５１  選択画面
５２  ＰＣ選択画面
６０，６１  ＵＩ画面
１０１，３０２  送受信部
１０２，１０２ａ，１０２ｄ  インストーラ
１０３  画面生成部
１０４，３０１  決定部
１１０，１１０ａ，１１０ｄ  インストール処理部
１１１  取得部
１１２  ＡＰＩ
１１３，３０４  記憶制御部
１２０，２０３，２０３’，３０３  ＵＩテーブル
２００  受信部
２０１  配信サービス部
２０２  送信部
２０４  ドライバ格納部
２１０  ＵＩ特定部
２１１  結合部
３００  インストール制御部
４００  ＵＩ生成部
４０１  ＵＩレイアウト情報
４０２  機能設定情報
【先行技術文献】
【特許文献】
【０２１６】
【特許文献１】特開２０１０−２０４８９４号公報
【図１】
2016177704.tif 000003
【図２】
2016177704.tif 000004
【図３】
2016177704.tif 000005
【図４】
2016177704.tif 000006
【図５】
2016177704.tif 000007
【図６】
2016177704.tif 000008
【図７】
2016177704.tif 000009
【図８】
2016177704.tif 000010
【図９】
2016177704.tif 000011
【図１１】
2016177704.tif 000012
【図１２】
2016177704.tif 000013
【図１３】
2016177704.tif 000014
【図１４】
2016177704.tif 000015
【図１５】
2016177704.tif 000016
【図１６】
2016177704.tif 000017
【図１７】
2016177704.tif 000018
【図１８】
2016177704.tif 000019
【図１９】
2016177704.tif 000020
【図２０】
2016177704.tif 000021
【図２１】
2016177704.tif 000022
【図２２】
2016177704.tif 000023
【図２３】
2016177704.tif 000024
【図２４】
2016177704.tif 000025
【図２５】
2016177704.tif 000026
【図２６】
2016177704.tif 000027
【図２７】
2016177704.tif 000028
【図２８】
2016177704.tif 000029
【図２９】
2016177704.tif 000030
【図３０】
2016177704.tif 000031
【図３１】
2016177704.tif 000032
【図３２】
2016177704.tif 000033
【図１０】
2016177704.tif 000034