(57)【要約】【課題】ベンダによる情報の登録が行われていないドライバの情報を取得可能とする。【解決手段】サーバ装置は、プログラムが対応する機器の機種を識別する識別情報と、プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を格納する。端末装置は、インストールされているプログラムのプログラム情報を第１のプログラム情報として取得し、サーバ装置に格納されるプログラム情報を第２のプログラム情報として取得する。端末装置は、第１のプログラム情報に含まれ、且つ、第２のプログラム情報に含まれないプログラム情報を第３のプログラム情報としてサーバ装置に送信する。サーバ装置は、端末装置から送信された第３のプログラム情報を格納する。【選択図】図９
2017058776.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と端末装置とを含む情報処理システムであって、
前記サーバ装置は、
プログラムが対応する機器の機種を識別する識別情報と、該プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を格納する格納部と、
前記端末装置から送信された前記プログラム情報を前記格納部に格納する登録部と
を備え、
前記端末装置は、
インストールされているプログラムの前記プログラム情報を第１のプログラム情報として取得し、前記格納部に格納される前記プログラム情報を第２のプログラム情報として取得する取得部と、
前記第１のプログラム情報に含まれ、且つ、前記第２のプログラム情報に含まれないプログラム情報を第３のプログラム情報として前記サーバ装置に送信する送信部と
を備える
情報処理システム。
【請求項２】
前記端末装置は、
前記第１のプログラム情報に含まれ、且つ、前記第２のプログラム情報に含まれないプログラム情報の前記取得情報を入力するための取得情報入力部をさらに備え、
前記送信部は、
前記取得情報入力部に入力された前記取得情報を前記第３のプログラム情報に含めて前記サーバ装置に送信する
請求項１に記載の情報処理システム。
【請求項３】
前記端末装置は、
前記プログラムの追加を入力に応じて指定し、指定した該プログラムを、該プログラムに対応する前記第１のプログラム情報に含まれる前記取得情報に従い取得する指定部をさらに備え、
前記取得部は、
前記格納部から、接続された機器を探索して該機器から取得した前記識別情報と一致する識別情報を含む前記プログラム情報を第４のプログラム情報として取得し、
前記指定部は、
前記追加する前記プログラムを、前記第４のプログラム情報に含まれ、且つ、前記第１のプログラム情報に含まれないプログラム情報に対応する前記プログラムから指定する
請求項２に記載の情報処理システム。
【請求項４】
前記プログラム情報は、該プログラム情報が対応する前記プログラムが対応する機能を示す機能情報をさらに含み、
前記端末装置は、
前記プログラムの追加を入力に応じて指定し、指定した該プログラムを、該プログラムに対応する前記第１のプログラム情報に含まれる前記取得情報に従い取得する指定部をさらに備え、
前記取得部は、
前記格納部から、接続された機器を探索して該機器から取得した前記識別情報と一致する識別情報を含む前記プログラム情報を第５のプログラム情報として取得し、
前記指定部は、
前記追加する前記プログラムを、前記第５のプログラム情報のうち、前記識別情報が前記第１のプログラム情報に含まれる前記識別情報と一致し、且つ、前記機能情報が該第１のプログラム情報に含まれる前記機能情報と一致しないプログラム情報に対応する前記プログラムから指定する
請求項２に記載の情報処理システム。
【請求項５】
前記プログラム情報は、バージョンを示すバージョン情報をさらに含み、
前記端末装置は、
前記第１のプログラム情報のうち、該第１のプログラム情報に含まれる前記バージョン情報が該第１のプログラム情報と対応する前記第２のプログラム情報の前記バージョン情報よりも古いバージョンを示しているプログラム情報に対応する前記プログラムの更新を、入力に応じて指示する更新指示部をさらに備える
請求項２乃至請求項４の何れか１項に記載の情報処理システム。
【請求項６】
前記プログラム情報は、該プログラム情報に対応するプログラムが制御する機器の数を示す利用数をさらに含み、
前記登録部は、
前記端末装置から送信された前記第１のプログラム情報に含まれる利用数を、前記格納部に格納される前記プログラム情報のうち該第１のプログラム情報に対応するプログラム情報が含む前記利用数に加算して該格納部に格納し、
前記取得部は、
前記第１のプログラム情報に対応する前記利用数をさらに取得し、
前記送信部は、
前記第１のプログラム情報に前記取得部で取得された前記利用数を含めて送信し、
前記更新指示部は、
前記指示の入力を促す指示画面を提示し、前記古いバージョンを示しているプログラム情報に対応する前記第２のプログラム情報に含まれる前記利用数を該指示画面に含めて提示する
請求項５に記載の情報処理システム。
【請求項７】
インストールされているプログラムの、プログラムが対応する機器の機種を識別する識別情報と、該プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を第１のプログラム情報として取得し、サーバ装置の格納部に格納される前記プログラム情報を第２のプログラム情報として取得する取得部と、
前記第１のプログラム情報に含まれ、且つ、前記第２のプログラム情報に含まれないプログラム情報を前記サーバ装置に送信する送信部と
を備える
端末装置。
【請求項８】
インストールされているプログラムの、プログラムが対応する機器の機種を識別する識別情報と、該プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を第１のプログラム情報として取得し、サーバ装置の格納部に格納される前記プログラム情報を第２のプログラム情報として取得する取得ステップと、
前記第１のプログラム情報に含まれ、且つ、前記第２のプログラム情報に含まれないプログラム情報を前記サーバ装置に送信する送信ステップと
をコンピュータに実行させるための情報処理プログラム。
【請求項９】
プログラムが対応する機器の機種を識別する識別情報と、該プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を格納する格納部と、
前記プログラム情報を前記格納部に格納する登録部と、
インストールされている前記プログラムの前記プログラム情報を第１のプログラム情報として取得し、前記格納部に格納される前記プログラム情報を第２のプログラム情報として取得する取得部と、
前記第１のプログラム情報に含まれ、且つ、前記第２のプログラム情報に含まれないプログラム情報を前記登録部に送信する送信部と
を備える
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、端末装置および情報処理プログラムに関する。
【背景技術】
【０００２】
プリンタ機能、スキャナ機能などの複数の機能を１台の筐体で実現するＭＦＰ(Multi  Function  Printer)といった外部機器をコンピュータから制御するためには、各機能に対応するドライバプログラム（以下、ドライバと呼ぶ）をコンピュータにインストールする必要がある。このドライバについて、新しいバージョンのドライバが例えばＷｅｂ上で配布されたことを検知し、コンピュータにインストール済みのドライバの更新を実行するドライバ管理プログラムが知られている（例えば特許文献１）。
【０００３】
従来では、ドライバの提供元（ベンダと呼ぶ）は、予めドライバのバージョンや入手先、対応する機種名を示す情報をサーバに登録しておく。ドライバ管理プログラムは、このサーバ対して機種名に基づき問い合わせを行うことで、ドライバの更新の検知および更新と、新規ドライバの取得およびインストールとを可能としている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のドライバ管理プログラムは、ベンダにより予めサーバに情報が登録されていないドライバについては、新規インストールや、更新検知および更新に対応することが困難であるという問題点があった。すなわち、インストールしたいドライバの情報がベンダにより予めサーバに情報が登録されていない場合、ドライバ管理プログラムがサーバに問い合わせを行っても、当該ドライバの入手先をサーバから取得できず、ドライバの入手が困難である。
【０００５】
本発明は、上記に鑑みてなされたものであって、ベンダによる情報の登録が行われていないドライバの情報を取得可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、サーバ装置と端末装置とを含む情報処理システムであって、サーバ装置は、プログラムが対応する機器の機種を識別する識別情報と、プログラムの取得方法を示す取得情報とを少なくとも含むプログラム情報を格納する格納部と、端末装置から送信されたプログラム情報を格納部に格納する登録部とを備え、端末装置は、インストールされているプログラムのプログラム情報を第１のプログラム情報として取得し、格納部に格納されるプログラム情報を第２のプログラム情報として取得する取得部と、第１のプログラム情報に含まれ、且つ、第２のプログラム情報に含まれないプログラム情報を第３のプログラム情報としてサーバ装置に送信する送信部とを備える情報処理システムである。
【発明の効果】
【０００７】
本発明によれば、ベンダによる情報の登録が行われていないドライバの情報を取得可能となるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理システムの一例の構成を概略的に示す図である。
【図２】図２は、ドライバ保存サーバにおけるドライバの一例の保存の様子を概略的に示す図である。
【図３】図３は、実施形態に適用可能なドライバ情報サーバの一例のハードウェア構成を示すブロック図である。
【図４】図４は、実施形態に係るドライバ情報サーバの機能を説明するための一例の機能ブロック図である。
【図５】図５は、実施形態に係る、ドライバ情報サーバに登録されるドライバ情報の例を示す図である。
【図６】図６は、実施形態に適用可能な端末装置の一例のハードウェア構成の例を示すブロック図である。
【図７】図７は、実施形態に係る端末装置の機能を説明するための一例の機能ブロック図である。
【図８】図８は、実施形態に係る端末装置のプログラムおよびデータ構成の例を示すブロック図である。
【図９】図９は、実施形態に係るドライバ情報の登録処理について概略的に説明するための図である。
【図１０】図１０は、実施形態に係るドライバ情報の登録処理を示す一例のフローチャートである。
【図１１】図１１は、実施形態に係る、ドライバ情報サーバに送信される識別情報の一覧の例を示す図である。
【図１２】図１２は、実施形態に係る、スドライバ情報サーバから送信されるドライバ情報リストの例を示す図である。
【図１３】図１３は、実施形態に係るドライバ登録画面の一例を示す図である。
【図１４】図１４は、実施形態に係る、ドライバ情報サーバに送信する登録情報の例を示す図である。
【図１５】図１５は、実施形態に係る、ドライバ情報サーバに送信する利用数を含むドライバ情報の例を示す図である。
【図１６】図１６は、実施形態に係る、ドライバ情報サーバが更新したドライバ情報リストの例を示す図である。
【図１７】図１７は、実施形態に係る、更新後の利用ドライバ情報の例を示す図である。
【図１８】図１８は、実施形態に係るドライバの登録処理の例を示すシーケンス図である。
【図１９】図１９は、実施形態に係るドライバの追加、更新処理について概略的に説明するための図である。
【図２０】図２０は、実施形態に係るドライバ情報の追加、更新処理を示す一例のフローチャートである。
【図２１】図２１は、実施形態に係る、ドライバ情報サーバに送信される識別情報の一覧の例を示す図である。
【図２２】図２２は、実施形態に係る、ドライバ情報サーバから送信されるドライバ情報リストの例を示す図である。
【図２３】図２３は、実施形態に係るドライバ追加画面の例を示す図である。
【図２４】図２４は、実施形態に係るドライバ更新画面の例を示す図である。
【図２５−１】図２５−１は、実施形態に係るドライバの追加、更新処理の例を示すシーケンス図である。
【図２５−２】図２５−２は、実施形態に係るドライバの追加、更新処理の例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下に、情報処理システム、端末装置および情報処理プログラムの実施形態を詳細に説明する。
【００１０】
図１は、実施形態に係る情報処理システムの一例の構成を概略的に示す。図１において、情報処理システム１は、インターネットなどのネットワーク１１により互いに通信可能に接続されたドライバ情報サーバ１０と、ドライバ保存サーバ３０ａ、３０ｂ、…と、ドライバ配布サイト３１ａ、３１ｂ、…と、内部ネットワーク２０ａ、２０ｂ、…とを含む。
【００１１】
なお、図１の例では、ドライバ保存サーバ３０ａ、３０ｂをそれぞれドライバ保存サーバ＃Ａ、ドライバ保存サーバ＃Ｂとして示している。同様に、ドライバ配布サイト３１ａ、３１ｂをそれぞれドライバ配布サイト＃Ａ、ドライバ配布サイト＃Ｂとして示している。
【００１２】
内部ネットワーク２０ａ、２０ｂ、…は、例えばファイアウォール（ＦＷ）などを介してネットワーク１１に接続され、互いにＬＡＮ(Local  Area  Network)などのネットワークを介して接続される、それぞれ端末装置としてのパーソナルコンピュータ（ＰＣ）と、それぞれＰＣから制御される１以上の機器とを含む。以下では、ＰＣから制御される機器を、少なくともプリンタ機能およびスキャナ機能を含む複数の機能を１台の筐体で実現するＭＦＰ(Multi  Function  Printer)であるものとする。図１の例では、内部ネットワーク２０ａにＭＦＰ＃Ａ、ＭＦＰ＃Ｂが含まれ、内部ネットワーク２０ｂにＭＦＰ＃Ｃ、ＭＦＰ＃Ｄが含まれているものとして示している。
【００１３】
ドライバ保存サーバ３０ａ、３０ｂは、それぞれ、内部ネットワーク２０ａ、２０ｂ、…に含まれる各機器を制御するためのドライバプログラム（以下、ドライバと呼ぶ）を複数（ドライバ＃１、＃２、＃３、…）、保存する。以下、ドライバ保存サーバ３０ａ、３０ｂ、…を特に区別しない場合、これらをドライバ保存サーバ３０で代表させる。
【００１４】
図２は、ドライバ保存サーバ３０におけるドライバの一例の保存の様子を概略的に示す。ドライバ保存サーバ３０は、ドライバ保存サーバ３０に接続されるハードディスクドライブといったストレージに、１以上のドライバ３００1、３００2、…を保存する。
【００１５】
このとき、ドライバ保存サーバ３０は、保存される各ドライバ３００1、３００2、…に対して、それぞれ、ネットワーク１１上での位置を示すＵＲＬ(Uniform  Resource  Locator)３０１1、３０１2、…を割り当てる。これにより、ネットワーク１１に接続されるＰＣなどにおいて、ＵＲＬ３０１1、３０１2、…を指定することで、ドライバ保存サーバ３ａに保存される各ドライバ３００1、３００2、…に対して、当該ＰＣからネットワーク１１を介してアクセスすることができる。
【００１６】
なお、図１では、内部ネットワーク２０ａ、２０ｂがそれぞれ１台のＰＣと２台の機器とを含むように示しているが、これはこの例に限定されず、内部ネットワーク２０ａ、２０ｂが複数のＰＣを含んでもよいし、３台以上、または、１台の機器を含んでいてもよい。また、ドライバ情報サーバ１０は、１台のコンピュータで構成してもよいし、複数のコンピュータで処理を分散させて構成してもよい。さらに、ドライバ情報サーバ１０は、クラウドネットワーク上で構成してもよい。
【００１７】
また、ドライバ配布サイト３１ａ、３１ｂ、…は、実際には、ネットワーク１１に接続されるサーバにおいて、ネットワーク１１に向けて公開される情報であり、より具体的にはＷｅｂページである。ドライバ配布サイト３１ａ、３１ｂは、それぞれ、ドライバ保存サーバ３０ａ、３０ｂに保存される各ドライバ＃１、＃２、＃３、…に割り当てられたＵＲＬ＃１、＃２、＃３、…を、ネットワーク１１に対して公開する。以下では、便宜上、ドライバ配布サイト３１ａ、３１ｂ、…をハードウェアに模して説明を行う。また、以下では、ドライバ配布サイト３１ａ、３１ｂ、…を特に区別しない場合、これらをドライバ配布サイト３１で代表させる。
【００１８】
図３は、実施形態に適用可能なドライバ情報サーバ１０の一例のハードウェア構成を示す。図３において、ドライバ情報サーバ１０は、ＣＰＵ(Central  Processing  Unit)１００と、ＲＯＭ(Read  Only  Memory)１０１と、ＲＡＭ(Random  Access  Memory)１０２と、ストレージ１０３と、通信Ｉ／Ｆ１０４とを含み、これら各部がバス１０５により互いに通信可能に接続されている。
【００１９】
ストレージ１０３は、例えばハードディスクドライブや、フラッシュメモリといった不揮発性の半導体メモリであって、ＣＰＵ１００上で動作するプログラムや各種データが格納されると共に、後述するドライバ情報が格納される。これらプログラムおよび各種データと、ドライバ情報とは、ストレージ１０３において互いに異なる記憶領域に格納される。なお、ストレージ１０３は、ドライバ情報サーバ１０に内蔵されている構成に限らず、ストレージ１０３に対して外部接続されるものであってもよい。
【００２０】
ＣＰＵ１００は、ＲＯＭ１０１やストレージ１０３から読み出したプログラムに従い、ＲＡＭ１０２をワークメモリとして用いて、ドライバ情報サーバ１０の全体の動作を制御する。通信Ｉ／Ｆ１０４は、ＣＰＵ１００の指示に従い、ネットワーク１１を介した通信を制御する。
【００２１】
ドライバ情報サーバ１０の構成は、図３の例に限られず、例えば一般的なコンピュータと同様に、ＣＰＵ１００により生成された画面情報に従った画面をディスプレイに表示させる表示制御部や、外部機器との間でのデータの入出力を行うデータＩ／Ｆ、ユーザ入力を受け付ける入力デバイスをさらに含んでいてもよい。
【００２２】
図４は、実施形態に係るドライバ情報サーバ１０の機能を説明するための一例の機能ブロック図である。図４において、ドライバ情報サーバ１０は、格納部１１０と、検索部１１１と、登録部１１２と、通信部１１３とを含む。これら格納部１１０、検索部１１１、登録部１１２および通信部１１３は、ＣＰＵ１００上で所定のプログラムが動作することにより実現される。これに限らず、格納部１１０、検索部１１１、登録部１１２および通信部１１３のうち一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００２３】
格納部１１０は、ドライバ情報をストレージ１０３に格納し、ストレージ１０３に格納されたドライバ情報を読み出す。検索部１１１は、要求に従いドライバ情報リスト１２０の各レコードを検索する。登録部１１２は、要求に従い図５にて後述するドライバ情報リスト１２０にレコードを追加する。通信部１１３は、通信Ｉ／Ｆ１０４を制御して、ネットワーク１１を介した通信を行う。ネットワーク１１を介してドライバ情報サーバ１０に送信された検索部１１１や登録部１１２に対する要求は、通信部１１３により受信され、検索部１１１や登録部１１２に渡される。また、検索部１１１による検索結果は、通信部１１３によりネットワーク１１を介して送信される。
【００２４】
図５は、実施形態に係る、格納部１１０によりストレージ１０３に格納されてドライバ情報サーバ１０に登録されるドライバ情報の例を示す。なお、以下では、格納部１１０がドライバ情報をストレージ１０３に格納する処理を、「格納部１１０がドライバ情報を格納する」、または、単に「ドライバ情報サーバ１０がドライバ情報を格納する」などのように記述する。また、図５および図５に類似した各図において、リストの各行をレコードと呼び、各列を項目と呼ぶ。
【００２５】
図５において、ドライバ情報リスト１２０は、各レコードがそれぞれ１つのドライバのドライバ情報を示し、各レコードは、「識別情報」、「ドライバ名」、「ドライバ種類」、「バージョン」、「オブジェクトＵＲＬ」、「入手サイトＵＲＬ」および「利用数」の各項目を含む。
【００２６】
項目「識別情報」は、そのレコードのドライバが制御する機器を識別する識別情報が格納される。識別情報は、機器の機種に対してユニークな情報を用いることが好ましい。この例では、識別情報として、ＰｎＰ(Plug  and  Play）名が用いられている。項目「ドライバ名」は、そのレコードのドライバの名前が格納される。項目「ドライバ種類」は、そのレコードのドライバが制御する機能を示す情報がドライバ種類として格納される。例えば、そのレコードのドライバが対応する機器が、プリンタ機能およびスキャナ機能を含むＭＦＰであれば、各機能に対応して「プリンタ」および「スキャナ」がドライバ種類として格納される。
【００２７】
項目「バージョン」は、そのレコードのドライバのバージョンを示すバージョン情報が格納される。
【００２８】
項目「オブジェクトＵＲＬ」は、そのレコードが示すドライバ（ドライバプログラム）そのものが保存されるネットワーク１１上での位置を示すＵＲＬであるオブジェクトＵＲＬが格納される。すなわち、項目「オブジェクトＵＲＬ」は、図２を用いて説明した、ドライバ３００1、３００2、…に割り当てられるＵＲＬ３０１1、３０１2、…が格納される。項目「入手サイトＵＲＬ」は、そのレコードのドライバを入手（ダウンロード）するためのＵＲＬが記述されるＷｅｂページを含むＷｅｂサイトのＵＲＬが入手サイトＵＲＬとして格納される。図１の例では、例えばドライバ配布サイト３１ａ、３１ｂ、…のＵＲＬが格納される。
【００２９】
項目「利用数」は、そのレコードのドライバが制御する機器の数が格納される。例えば、図１の内部ネットワーク２０ｂにおいて、ＰＣにインストールされたド１つのライバが、ＭＦＰ＃ＣおよびＭＦＰ＃Ｄの２台の機器を制御する場合、このＰＣにおける当該ドライバによる利用数は、「２」となる。ドライバ情報サーバ１０は、ネットワーク１１を介して接続される各ＰＣから収集した利用数を、ドライバ情報毎に累計し、累計値をドライバ情報リスト１２０における対応するドライバ情報の項目「利用数」に格納する。
【００３０】
図５の例では、識別情報（ＰｎＰ名）「MFP#A」を持つ機器に対して、ドライバ種類がそれぞれプリンタのドライバ名「MFP#A  Driver  PCL」、「Generic  Driver  PCL」のドライバと、ドライバ種類がスキャナの「MFP#A  Driver  Scan」とが登録されている。ドライバ名「Generic  Driver  PCL」のドライバは、バージョン「2.0.0.0」および「1.0.0.0」の２種類のバージョンが登録されている。また、ドライバ名「MFP#A  Driver  PCL」および「MFP#A  Driver  Scan」のドライバは、入手サイトとしてＵＲＬ「http://2.example.com/mfp_a/」のサイトが登録され、ドライバ「Generic  Driver  PCL」は、入手サイトとしてＵＲＬ「http://2.example.com/generic/」が登録されている。
【００３１】
なお、以下では、「ドライバ名「Ｘ」のドライバ」を、適宜、「ドライバ「Ｘ」」のように記述する。
【００３２】
さらに、識別情報「MFP#B」を持つ機器に対して、ドライバ種類がプリンタのドライバ「MFP#B  Driver  PCL」が登録されており、そのバージョンがバージョン「1.0.0.0」であり、そのドライバが格納されるオブジェクトＵＲＬ「http://1.example.com/mfp_b/pcl1.0.0.0.exe」が登録されている。
【００３３】
また、各ドライバの利用数は、ドライバ「MFP#A  Driver  PCL」のバージョン「1.0.0.0」が利用数「1000」、ドライバ「Generic  Driver  PCL」のバージョン「2.0.0.0」および「1.0.0.0」がそれぞれ利用数「500」および「200」、ドライバ「MFP#A  Driver  Scan」のバージョン「1.0.0.0」が利用数「200」、ドライバ「MFP#B  Driver  PCL」のバージョン「1.0.0.0」が利用数「1000」となっている。
【００３４】
図６は、実施形態に適用可能な端末装置２００の一例のハードウェア構成の例を示す。なお、以下では、特に記載の無い限り、内部ネットワーク２０ａおよび２０ｂを、内部ネットワーク２０ａで代表させて説明し、端末装置２００は、図１において内部ネットワーク２０ａに含まれるＰＣに対応するものとする。
【００３５】
図６において、端末装置２００は、ＣＰＵ２０００と、ＲＯＭ２００１と、ＲＡＭ２００２と、ストレージ２００４と、表示制御部２００３と、入出力Ｉ／Ｆ２００５と、通信Ｉ／Ｆ２００６とがバスを介して互いに通信可能に接続されている。
【００３６】
ＣＰＵ２０００は、ＲＯＭ２００１やストレージ２００４に予め記憶されるプログラムに従い、ＲＡＭ２００２をワークメモリとして用いて、この端末装置２００の全体の動作を制御する。ストレージ２００４は、ハードディスクドライブや不揮発性の半導体メモリ（フラッシュメモリ）からなり、ＣＰＵ２０００が動作するためのプログラムや、各種データが格納される。
【００３７】
表示制御部２００３は、ＣＰＵ２０００によりプログラムに従い生成された表示制御信号を、ディスプレイ２０１１で表示可能な表示信号に変換してディスプレイ２０１１に供給する。ディスプレイ２０１１は、例えばＬＣＤ(Liquid  Crystal  Display)を表示デバイスとして用い、表示制御部２００３から供給された表示信号に従った画面を表示デバイスに表示させる。
【００３８】
入出力Ｉ／Ｆ２００５は、外部機器との間で通信を行うインタフェースである。図６の例では、入出力Ｉ／Ｆ２００５に対して、外部機器としてキーボードやポインティングデバイス（マウスなど）を含む操作部２０１０が接続されている。入出力Ｉ／Ｆ２００５は、これに限らず、ＣＤ(Compact  Disk)やＤＶＤ(Digital  Versatile  Disk)といったディスク記憶媒体からのデータの読み出しなどを行うドライブ装置や、不揮発性の半導体メモリなどのストレージを接続してもよい。入出力Ｉ／Ｆ２００５としては、例えばＵＳＢ(Universal  Serial  Bus)を用いることができる。
【００３９】
通信Ｉ／Ｆ２００６は、ＴＣＰ／ＩＰ(Transmission  Control  Protocol/Internet  Protocol)など所定のプロトコルを用いて内部ネットワーク２０ａを介した通信を制御する。
【００４０】
図７は、実施形態に係る端末装置２００の機能を説明するための一例の機能ブロック図である。図７において、端末装置２００は、取得部２１００と、通信部２１０１と、取得情報入力部２１０２と、指定部２１０３と、更新指示部２１０４と、表示部２１０５とを含む。これら取得部２１００、通信部２１０１、取得情報入力部２１０２、指定部２１０３、更新指示部２１０４および表示部２１０５は、ＣＰＵ２０００上で動作する情報処理プログラムにより実現される。これに限らず、取得部２１００、通信部２１０１、取得情報入力部２１０２、指定部２１０３、更新指示部２１０４および表示部２１０５の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００４１】
通信部２１０１は、内部ネットワーク２０ａ内におけるネットワークを介した通信を行う。また、通信部２１０１は、ファイアウォール（ＦＷ）を介することで、ネットワーク１１を介した通信を行うこともできる。表示部２１０５は、表示制御信号を生成して表示制御部２００３に渡し、表示制御信号に応じた画面をディスプレイ２０１１に表示させる。以下、表示部２１０５におけるこの処理を、「表示部２１０５が表示する」などのように記述する。
【００４２】
取得部２１００は、端末装置２００にインストールされているドライバの情報を取得する。また、取得部２１００は、ドライバ情報サーバ１０の格納部１１０に格納されているドライバ情報リスト１２０を取得する。取得情報入力部２１０２は、ドライバの取得方法を示す取得情報を入力する。ドライバの取得方法は、例えば、上述した入手サイトＵＲＬやオブジェクトＵＲＬである。指定部２１０３は、ユーザ操作に従いドライバを指定し、指定されたドライバを例えばドライバ保存サーバ３０やドライバ配布サイト３１から取得する。更新指示部２１０４は、ユーザ操作に従い、端末装置２００にインストール済みのドライバの更新を行う。
【００４３】
実施形態に係る情報処理プログラムは、インストール可能な形式また実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、情報処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該情報処理プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。さらに、情報処理プログラムを、それぞれ管理用ＰＣ２０が備えるＲＯＭに予め組み込んで提供するように構成してもよい。
【００４４】
情報処理プログラムは、上述した各部（取得部２１００、通信部２１０１、取得情報入力部２１０２、指定部２１０３、更新指示部２１０４および表示部２１０５）を含むモジュール構成となっている。実際のハードウェアとしては、端末装置２００においてＣＰＵ２０００が、ストレージ２００４などの記憶媒体から当該情報処理プログラムを読み出して実行することにより、上述した各部がＲＡＭ２００２などの主記憶装置上にロードされ、取得部２１００、通信部２１０１、取得情報入力部２１０２、指定部２１０３、更新指示部２１０４および表示部２１０５が主記憶装置上に生成されるようになっている。
【００４５】
図８は、実施形態に係る端末装置２００のプログラムおよびデータ構成の例を示す。なお、図８の例では、端末装置２００に対して、ＭＦＰ４０ａおよび４０ｂの２台の機器が接続されているものとする。ここで、端末装置２００とＭＦＰ４０ａおよび４０ｂは、ＬＡＮといったネットワークを介して接続されていてもよいし、ＵＳＢなどを用いて入出力Ｉ／Ｆ２００５を介して接続されていてもよい。
【００４６】
端末装置２００は、ＯＳ(Operating  System)２２００と、記憶領域２２０１と、機器管理プログラム２２０２と、各ドライバ２２２０ａ〜２２２０ｅとを含む。記憶領域２２０１は、ＲＡＭ２００２およびストレージ２００４の記憶領域内の所定の領域である。なお、以下では、ドライバ２２２０ａ〜２２２０ｅは、特に区別しない場合、ドライバ２２２０で代表させて説明する。
【００４７】
機器管理プログラム２２０２は、上述した情報処理プログラムに対応し、利用ドライバ情報２２１０と、ドライバ情報取得部２２１１と、ドライバ追加更新部２２１２とを含む。
【００４８】
利用ドライバ情報２２１０は、記憶領域２２０１に記憶される情報である。利用ドライバ情報２２１０は、現在端末装置２００にインストールされているドライバであって、且つ、ＭＦＰ４０ａやＭＦＰ４０ｂといった、端末装置２００に接続される機器の制御に関わるドライバの情報が含まれる。利用ドライバ情報２２１０に含まれるドライバの情報は、図５の各項目を参照し、例えばドライバ名、ドライバ種類、バージョン情報および利用数を含む。
【００４９】
ドライバ情報取得部２２１１は、図７の取得部２１００、通信部２１０１および取得情報入力部２１０２の機能を含み、端末装置２００にインストールされている各ドライバ２２２０の情報や、ドライバ情報サーバ１０に格納されるドライバ情報リスト１２０を取得する。また、ドライバ情報取得部２２１１は、ユーザ操作に応じて入力されたドライバの取得情報をドライバ情報サーバ１０に送信する。
【００５０】
ドライバ追加更新部２２１２は、図７の通信部２１０１、指定部２１０３および更新指示部２１０４の機能を含み、端末装置２００に接続される機器の識別情報（ＰｎＰ名）を取得し、取得した識別情報に基づきドライバ情報サーバ１０から各機器のドライバ情報を取得する。ドライバ追加更新部２２１２は、ドライバ情報サーバ１０から取得したドライバ情報と、端末装置２００にインストールされる各ドライバ２２２０のドライバ情報とを比較して、端末装置２００においてドライバの更新や、未使用の機能に対応するドライバの追加などを行う。
【００５１】
各ドライバ２２２０ａ〜２２２０ｅのうち、ドライバ２２２０ａ〜２２２０ｄは、内部ネットワーク２０ａにおいて端末装置２００に接続されるＭＦＰ４０ａ（図８ではＭＦＰ＃Ａと記載）を制御する。また、ドライバ２２２０ａ〜２２２０ｄのうち、ドライバ２２２０ａおよび２２２０ｂは、それぞれＭＦＰ４０ａの機種に専用のドライバであって、互いに異なるページ記述言語に従いＭＦＰ４０ａのプリンタ機能を制御する。ドライバ２２２０ｃは、各機種に汎用的にプリンタ機能を制御することができ、この例では、ＭＦＰ４０ａを制御するように設定されている。また、ドライバ２２２０ｄは、ＭＦＰ４０ａのスキャナ機能を制御する。さらに、ドライバ２２２０ｅは、ＭＦＰ４０ｂ（図８ではＭＦＰ＃Ｂと記載）のプリンタ機能を制御する。
【００５２】
なお、以下では、ドライバが、端末装置２００に接続された機器を制御可能な状態にある場合、「ドライバが機器に接続される」のように記述する。図８の例では、ドライバ２２２０ａ〜２２２０ｄがＭＦＰ４０ａに接続され、ドライバ２２２０ｅがＭＦＰ４０ｂに接続される。
【００５３】
（実施形態に係るドライバ情報登録処理の概要）
図９を用いて、実施形態に係るドライバ情報の登録処理について、概略的に説明する。なお、図９において、上述した図８と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００５４】
図９の例では、端末装置２００は、ＭＦＰ４０ａおよび４０ｂが接続され、ＭＦＰ４０ａのプリンタ機能を制御するドライバ２２２０ａ〜２２２０ｃがインストールされ、ＭＦＰ４０ｂを制御するためのドライバはインストールされていないものとする。また、ドライバ２２２０ａは、ドライバ名が「MFP#A  Driver  PCL」、バージョンが「2.0.0.0」、ドライバ２２２０ｂは、ドライバ名が「MFP#A  Driver  PS」、バージョンが「1.0.0.0」、ドライバ２２２０ｃは、ドライバ名が「Generic  Driver  PCL」、バージョンが「1.0.0.0」であるものとする。
【００５５】
なお、ドライバ名「MFP#A  Driver  PCL」のドライバと、ドライバ名「MFP#A  Driver  PS」のドライバは、何れも識別情報「ＭＦＰ＃Ａ」の機器（ＭＦＰ４０ａ）におけるプリンタ機能を制御するドライバである。一方、これらのドライバ名の末尾の「PCL」および「PS」は、それぞれのドライバが互いに異なるページ記述言語に対応していることを示している。したがって、ドライバ名「MFP#A  Driver  PCL」のドライバと、ドライバ名「MFP#A  Driver  PS」のドライバは、機器の別の機能を制御するドライバであると見做すことができる。
【００５６】
端末装置２００において、ドライバ情報取得部２２１１は、端末装置２００の環境内にあるドライバ、例えば端末装置２００にインストールされている各ドライバ２２２０ａ〜２２２０ｃの情報の取得と（ステップＳ１０）、各ドライバ２２２０ａ〜２２２０ｃに接続される機器（図９の例ではＭＦＰ４０ａ）の識別情報（ＰｎＰ名）の取得とを行う（ステップＳ１１）。また、ドライバ情報取得部２２１１は、記憶領域２２０１から利用ドライバ情報２２１０を取得する（ステップＳ１２）。
【００５７】
ドライバ情報取得部２２１１は、ステップＳ１１で取得した識別情報の一覧をドライバ情報サーバ１０に送信し（ステップＳ１３）、ドライバ情報サーバ１０から、送信した識別情報の一覧に含まれる識別情報で特定される機器で利用可能なドライバのドライバ情報を取得する（ステップＳ１４）。
【００５８】
ドライバ情報取得部２２１１は、ステップＳ１０で端末装置２００内で取得したドライバ情報に含まれ、且つ、ステップＳ１４でドライバ情報サーバ１０から取得したドライバ情報に含まれないドライバ情報を抽出する。ドライバ情報取得部２２１１は、抽出したドライバ情報をドライバ情報サーバ１０に送信し（ステップＳ１５）、このドライバ情報の登録を要求する。ドライバ情報サーバ１０は、この要求に応じて、端末装置２００から送信されたドライバ情報を、ドライバ情報サーバ１０が保存するドライバ情報リスト１２０に追加して登録する。
【００５９】
なお、ドライバ情報取得部２２１１は、ステップＳ１０で端末装置２００内で取得したドライバ情報と、ステップＳ１４でドライバ情報サーバ１０から取得したドライバ情報とでドライバ名が一致し、且つ、バージョンが異なる場合も、端末装置２００から取得したドライバ情報を抽出する。
【００６０】
さらに、ドライバ情報取得部２２１１は、ステップＳ１２で取得した利用ドライバ情報２２１０と、ステップＳ１０で取得した、現在端末装置２００において利用されているドライバの情報とを比較する。そして、ドライバ情報取得部２２１１は、比較の結果、利用数の差分をドライバ情報サーバ１０に送信すると共に、利用ドライバ情報２２１０を、ステップＳ１０で取得したドライバの情報に基づき更新し（ステップＳ１６）、利用ドライバ情報２２１０を最新の状態にする。
【００６１】
このように、実施形態では、ドライバ情報サーバ１０に保存されるドライバ情報に対する、端末装置２００で機器に接続され利用中のドライバのドライバ情報の差分をドライバ情報サーバ１０に保存されるドライバ情報リスト１２０に対して追加して登録するようにしている。そのため、端末装置２００は、ドライバ情報サーバ１０から、ドライバのベンダによるドライバ情報の登録が行われていないドライバ情報を取得することができる。
【００６２】
（実施形態に係るドライバ情報登録処理の詳細）
次に、実施形態に係るドライバ情報登録処理について、より詳細に説明する。図１０は、実施形態に係るドライバ情報の登録処理を示す一例のフローチャートである。図１０のフローチャートによる各処理は、ドライバ情報取得部２２１１において実行される。
【００６３】
なお、ここでは、端末装置２００は、図９に示したように、ＭＦＰ４０ａおよび４０ｂが接続されており、ドライバ２２２０ａ〜２２２０ｃがインストールされ、これらドライバ２２２０ａ〜２２２０ｃがＭＦＰ４０ａに接続されているものとする。また、ＭＦＰ４０ｂは、ドライバが接続されていないものとする。
【００６４】
図１０のドライバ情報の取得処理は、ドライバ情報取得部２２１１により例えば定期的に実行される。これに限らず、ドライバ情報の取得処理を端末装置２００に対するユーザ操作に応じて開始してもよいし、端末装置２００の起動に応じて開始してもよい。
【００６５】
ドライバ情報の取得処理が開始されると、ステップＳ１００で、ドライバ情報取得部２２１１は、端末装置２００にインストールされているドライバからドライバ情報および当該ドライバの接続先を示す情報を取得する。ここで取得されるドライバ情報は、少なくとも、ドライバのドライバ名、ドライバ種類およびバージョン情報を含む。また、接続先を示す情報は、ドライバが制御する機器に接続するための接続情報であって、機器のＩＰアドレスやＵＳＢポート番号である。
【００６６】
図９の例では、ドライバ情報取得部２２１１は、ドライバ２２２０ａ〜２２２０ｃからドライバ情報を取得する。より具体的には、ドライバ情報取得部２２１１は、ドライバ２２２０ａから、ドライバ名「MFP#A  Driver  PCL」、ドライバ種類「プリンタ」およびバージョン情報「2.0.0.0」をドライバ情報として取得する。また、ドライバ情報取得部２２１１は、ドライバ２２２０ｂから、ドライバ名「MFP#A  Driver  PS」、ドライバ種類「プリンタ」およびバージョン情報「1.0.0.0」をドライバ情報として取得する。さらに、ドライバ情報取得部２２１１は、ドライバ２２２０ｃから、ドライバ名「Generic  Driver  PCL」、ドライバ種類「プリンタ」およびバージョン情報「1.0.0.0」を取得する。また、各ドライバ２２２０ａ〜２２２０ｃの接続先として、ＭＦＰ４０ａに対する接続情報を取得する。
【００６７】
次のステップＳ１０１で、ドライバ情報取得部２２１１は、端末装置２００にインストールされているドライバに接続されている機器の識別情報（この例ではＰｎＰ名）を取得する。図９の例では、各ドライバ２２２０ａ〜２２２０ｃは、ＭＦＰ４０ａに接続されているため、ドライバ情報取得部２２１１は、ＭＦＰ４０ａの識別情報（「ＭＦＰ＃Ａ」とする）を取得する。
【００６８】
次のステップＳ１０２で、ドライバ情報取得部２２１１は、記憶領域２２０１から利用ドライバ情報２２１０を取得する。そして、次のステップＳ１０３で、ドライバ情報取得部２２１１は、ステップＳ１００で取得したドライバ情報と、ステップＳ１０２で取得した利用ドライバ情報２２１０とを比較して、端末装置２００に、利用ドライバ情報２２１０にドライバ情報が含まれないドライバがインストールされているか否かを判定する。ドライバ情報取得部２２１１は、利用ドライバ情報２２１０にドライバ情報が含まれていないドライバがインストールされてない、すなわち、インストールされている全てのドライバのドライバ情報が利用ドライバ情報２２１０に含まれていると判定した場合（ステップＳ１０３「Ｎｏ」）、処理をステップＳ１０８に移行させる。
【００６９】
一方、ドライバ情報取得部２２１１は、ステップＳ１０３で、利用ドライバ情報２２１０にドライバ情報が含まれていないドライバがインストールされていると判定した場合（ステップＳ１０３「Ｙｅｓ」）、処理をステップＳ１０４に移行させる。ステップＳ１０４で、ドライバ情報取得部２２１１は、ステップＳ１０１で取得した識別情報の一覧をドライバ情報サーバ１０に送信し、ドライバ情報サーバ１０から、ドライバ情報サーバ１０に保存されているドライバ情報リスト１２０のうち、送信した識別情報の一覧に含まれる各識別情報について、一致する識別情報を含むドライバ情報を取得する。
【００７０】
図１１は、実施形態に係る、ステップＳ１０３でドライバ情報取得部２２１１からドライバ情報サーバ１０に送信される識別情報の一覧の例を示す。この例では、識別情報一覧は、一対の括弧「［」および「］」に挟んで、ステップＳ１０１で取得した識別情報の一覧が記述される。図９の例では、端末装置２００においてドライバが接続される機器がＭＦＰ４０ａの１台のみであるので、識別情報一覧は、当該ＭＦＰ４０ａの識別情報「ＭＦＰ＃Ａ」のみを含んでいる。
【００７１】
図１２は、実施形態に係る、ステップＳ１０４でドライバ情報サーバ１０から送信されるドライバ情報リスト１２０’の例を示す。なお、図１２および図１２に類似する各図において、特に記載の無い限り、各行の先頭の数字は説明のための行番号を示し、続くコロン（：）でデータ本体を示すコードと区別されている。また、図１２および図１２に類似する各図に例示されるコードは、ＪＳＯＮ(JavaScript（登録商標）  Object  Notation)形式を模した疑似コードである。
【００７２】
図１２において、一対の括弧「［」および「］」に挟んで、先頭の括弧「［」の直前に記述される識別情報（この例では「ＭＦＰ＃Ａ」）が示す１台の機器に対応する各ドライバのドライバ情報が、それぞれ一対の括弧「｛」および「｝」に挟んで記述される。一組の括弧「｛」および「｝」内において、ドライバ情報として「driver_name」に続けてドライバ名が、「driver_type」に続けてドライバ種類が、「version」に続けてバージョン情報が、「site_url」に続けて入手サイトのＵＲＬが、「using_num」に続けて利用数が、それぞれ記述される。なお、ドライバ情報がオブジェクトＵＲＬを含む場合、「object_url」に続けてオブジェクトＵＲＬが記述される。また、入手サイトＵＲＬは、記述されないこともある。
【００７３】
図１２の例では、識別情報「ＭＦＰ＃Ａ」に対応する４つのドライバのドライバ情報が記述されている。より具体的には、３行目〜９行目に、ドライバ名が「MFP#A  Driver  PCL」、ドライバ種類「printer（プリンタ）」、バージョン情報「1.0.0.0」および入手サイト「http://2.example.com/mfp_a/」であり、利用数が「1000」のドライバ情報が記述される。１０行目〜１６行目に、ドライバ名が「Generic  Driver  PCL」、ドライバ種類「printer」、バージョン情報「2.0.0.0」および入手サイト「http//2.example.com/generic/」であり、利用数が「500」のドライバ情報が記述される。１７行目〜２３行目には、１０行目〜１６行目とドライバ名、ドライバ種類および入手サイトが同じドライバであって、異なるバージョン情報「1.0.0.0」であり、利用数が「200」のドライバ情報が記述される。また、２４行目〜３０行目に、ドライバ名が「MFP#A  Driver  Scan」、ドライバ種類「Scanner」、バージョン情報「1.0.0.0」および入手サイト「http//2.example.com/mfp_a/」であり、利用数が「200」のドライバ情報が記述される。
【００７４】
次のステップＳ１０５で、ドライバ情報取得部２２１１は、端末装置２００にインストールされているドライバのドライバ情報に、ドライバ情報サーバ１０から取得したドライバ情報リスト１２０に含まれないドライバ情報が存在するか否かを判定する。ドライバ情報取得部２２１１は、当該ドライバ情報が存在しないと判定した場合（ステップＳ１０５「Ｎｏ」）、処理をステップＳ１０８に移行させる。
【００７５】
一方、ドライバ情報取得部２２１１は、ステップＳ１０５で、当該ドライバ情報が存在すると判定した場合（ステップＳ１０５「Ｙｅｓ」）、処理をステップＳ１０６に移行させる。図９の例では、端末装置２００にインストールされているドライバ２２２０ａ、２２２０ｂおよび２２２０ｃの各ドライバ情報は、それぞれドライバ名「MFP#A  Driver  PCL」およびバージョン情報「2.0.0.0」、ドライバ名「MFP#A  Driver  PS」およびバージョン情報「1.0.0.0」、ならびに、ドライバ名「Generic  Driver  PCL」およびバージョン情報「1.0.0.0」となっている。
【００７６】
したがって、これらドライバ２２２０ａ、２２２０ｂおよび２２２０ｃのドライバ情報と、図１２に示した、ドライバ情報取得部２２１１がドライバ情報サーバ１０から取得したドライバ情報リスト１２０’と比較すると、ドライバ２２２０ａのドライバ名「MFP#A  Driver  PCL」およびバージョン情報「2.0.0.0」のドライバ情報と、ドライバ２２２０ｂの、ドライバ名「MFP#A  Driver  PS」およびバージョン情報「1.0.0.0」のドライバ情報とが、ドライバ情報リスト１２０’に含まれないことが分かる。実施形態では、この、端末装置２００にインストールされるドライバのドライバ情報のうち、ドライバ情報サーバ１０から取得したドライバ情報リスト１２０’に含まれないドライバ情報を、ドライバ情報サーバ１０に登録する。
【００７７】
ステップＳ１０６で、ドライバ情報取得部２２１１は、表示部２１０５によりドライバ登録画面を表示させる。図１３は、実施形態に係るドライバ登録画面の一例を示す。図１３において、ドライバ登録画面４００は、メッセージ表示領域４０００と、入力領域４００１および４００２と、キャンセルボタン４００３と、登録ボタン４００４とを含む。
【００７８】
ドライバ登録画面４００において、メッセージ表示領域４０００は、ドライバ情報サーバ１０への登録対象となるドライバ情報が表示される。登録対象となるドライバは、上述した、端末装置２００にインストールされるドライバのドライバ情報のうち、ドライバ情報サーバ１０から取得したドライバ情報リスト１２０’に含まれないドライバ情報に対応するドライバとなる。
【００７９】
この例では、登録対象のドライバ情報は、上述の、ドライバ名「MFP#A  Driver  PCL」およびバージョン情報「2.0.0.0」を含むドライバ情報と、ドライバ名「MFP#A  Driver  PS」およびバージョン情報「1.0.0.0」を含むドライバ情報の２つのドライバ情報となる。図１３の例では、ドライバ登録画面４００は、複数のドライバ情報のうち１つに関する表示を行っている。すなわち、図１３に例示されるドライバ登録画面４００は、ドライバ名「MFP#A  Driver  PS」およびバージョン情報「1.0.0.0」を含むドライバ情報を登録対象のドライバ情報として、メッセージ表示領域４０００に、当該ドライバ情報のうちドライバ名およびバージョン情報を含むメッセージが表示され、このドライバ情報の登録が促される。
【００８０】
入力領域４００１は、登録対象のドライバ情報に対応するドライバの入手サイトＵＲＬ（図１３の例では「ダウンロードリンクＵＲＬ」と表示）を入力する領域である。入力領域４００２は、登録対象のドライバ情報に対応するドライバのオブジェクトＵＲＬ（図１３の例では「ダウンロードサイトＵＲＬ」と表示）を入力する領域である。登録ボタン４００４は、操作されることで入力領域４００１および４００２に対する入力内容を確定する。ここで、ドライバ情報を端末装置２００からドライバ情報サーバ１０に登録するためには、これら入力領域４００１および４００２のうち少なくとも一方に入力がなされている必要がある。登録ボタン４００４は、入力領域４００１および４００２の何れにも入力がなされていない場合、例えば表示がグレーアウト表示などとされ、操作不可の状態とされる。
【００８１】
キャンセルボタン４００３は、入力領域４００１および４００２の入力内容を破棄し、例えば次のステップＳ１０７の処理をスキップする。
【００８２】
ステップＳ１０６で表示されたドライバ登録画面４００において、登録ボタン４００４が操作されると、処理がステップＳ１０７に移行される。なお、上述のように、登録対象のドライバ情報が複数存在する場合、ステップＳ１０６の処理が、登録対象のドライバ情報の数だけ繰り返され、順次、ドライバ情報の入力が行われる。これに限らず、ドライバ登録画面４００に登録対象のドライバ情報の数だけメッセージ表示領域４０００と、入力領域４００１および４００２とを設けてもよい。
【００８３】
ステップＳ１０７で、ドライバ情報取得部２２１１は、ドライバ登録画面４００の入力領域４００１および４００２に入力された入手サイトＵＲＬおよびオブジェクトＵＲＬを、登録対象となるドライバ情報に含める。入力領域４００１および４００２の一方のみにＵＲＬが入力された場合は、この入力されたＵＲＬを、当区対象のドライバ情報に含める。そして、ドライバ情報取得部２２１１は、入手サイトＵＲＬおよびオブジェクトＵＲＬのうち少なくとも一方を含めたドライバ情報を、登録情報としてドライバ情報サーバ１０に送信し、登録情報のドライバ情報リスト１２０への登録を要求する。
【００８４】
図１４は、実施形態に係る、ドライバ情報取得部２２１１がドライバ情報サーバ１０に送信する登録情報の例を示す。図１４の例では、図１２を用いて説明したドライバ情報リスト１２０’と同様に、一対の括弧「［」および「］」に挟んで、先頭の括弧「［」の直前に記述される識別情報（この例では「ＭＦＰ＃Ａ」）が示す１台の機器に対応する各ドライバについて、ドライバ情報が記述される。登録情報に含まれるドライバ情報は、ドライバ名、ドライバ種類およびバージョン情報を含む。さらに、このドライバ情報は、上述のドライバ登録画面４００において入力領域４００１および４００２に共に入力がなされた場合は、第７行目、第８行目に示されるように、入力領域４００１の入力内容が「object_url」に続けて記述され、入力領域４００２の入力内容が「site_url」に続けて記述される。
【００８５】
説明は図１０のフローチャートに戻り、ドライバ情報取得部２２１１は、登録するドライバ情報をステップＳ１０７でドライバ情報サーバ１０に送信すると、処理をステップＳ１０８に移行する。ステップＳ１０８で、ドライバ情報取得部２２１１は、ステップＳ１００で情報を取得した各ドライバについて利用数を取得する。そして、取得した各ドライバの利用数と、ステップＳ１０２で取得した利用ドライバ情報２２１０に含まれる各利用数との差分を求める。
【００８６】
例えば、取得したドライバの利用数が「１」であって、利用ドライバ情報２２１０に含まれる対応する利用数が「０」であれば、その差分は「１」となる。また例えば、取得したドライバの利用数が「０」であって、利用ドライバ情報２２１０に含まれる対応する利用数が「１」であれば、その差分は「−１」となる。すなわち、ステップＳ１００で取得した各ドライバのドライバ情報と、ステップＳ１０２で取得した利用ドライバ情報２２１０とのうち、何れか一方に対応するドライバ情報が存在しない場合、そのドライバ情報に対応するドライバの利用数を「０」として差分を求める。一例として、図１０のフローチャートによる前回の処理において端末装置２００上で利用されたドライバが、今回の処理までに端末装置２００上から削除されたような場合、差分が「−１」となる。
【００８７】
ドライバ情報取得部２２１１は、ステップＳ１０８で求めた差分を、対応するドライバの利用数として、当該ドライバのドライバ情報に含めてドライバ情報サーバ１０に送信する。図９の例では、ドライバ２２２０ａ、２２００ｂおよび２２００ｃは、それぞれ１台のＭＦＰ４０ａに接続されているため、各ドライバ２２２０ａ、２２００ｂおよび２２００ｃの利用数は、それぞれ「１」となる。
【００８８】
図１５は、実施形態に係る、ステップＳ１０８でドライバ情報取得部２２１１がドライバ情報サーバ１０に送信する、利用数を含むドライバ情報の例を示す。図１５に例示されるドライバ情報は、図１２を用いて説明したドライバ情報リスト１２０’と同様に、一対の括弧「［」および「］」に挟んで、先頭の括弧「［」の直前に記述される識別情報（この例では「ＭＦＰ＃Ａ」）が示す機器に対応する１つのドライバについて、ドライバ情報が記述される。
【００８９】
図１５に示される利用ドライバ情報２２１０は、端末装置２００にインストールされているドライバ２２２０ａ、２２２０ｂおよび２２２０ｃのドライバ情報を含む。図１５の例では、利用ドライバ情報２２１０は、図９に示すドライバ２２２０ａのドライバ情報（第３行目〜第８行目）と、ドライバ２２２０ｂのドライバ情報（第９行目〜第１４行目）と、ドライバ２２２０ｃのドライバ情報（第１５行目〜第２０行目）とを含む。
【００９０】
また、利用ドライバ情報２２１０において、各ドライバ情報は、ドライバ名、ドライバ種類、バージョン情報および利用数を含む。図１５の例では、ドライバ２２２０ａについて、第７行目の「using_num」に続けて利用数「1」が記述される。同様に、ドライバ２２２０ｂおよび２２２０ｃについても、第１３行目および第１９行目に、それぞれ「using_num」に続けて利用数「1」が記述される。
【００９１】
ドライバ情報サーバ１０は、ステップＳ１０７およびステップＳ１０８で送信されたドライバ情報を登録し、ドライバ情報リスト１２０を更新する。図１６は、実施形態に係る、ドライバ情報サーバ１０がステップＳ１０８で更新したドライバ情報リスト１２０の例を示す。図５に示したドライバ情報リスト１２０に対して、ステップＳ１０７で登録情報として送信された、ドライバ名「MFP#A  Driver  PCL」、バージョン情報「2.0.0.0」のドライバ情報のレコード（１行目）と、ドライバ名「MFP#A  Driver  PS」、バージョン情報「1.0.0.0」のドライバ情報のレコード（３行目）との２つのレコードが追加されているのが分かる。
【００９２】
また、これら追加された２つのドライバ情報は、ステップＳ１０８で送信された利用数に従い、利用数がそれぞれ「1」とされている。一方、ドライバ名「Generic  Driver  PCL」、バージョン情報「1.0.0.0」のドライバ情報は、既存の利用数「200」に（図５参照）、端末装置２００において対応するドライバ２２２０ｃの利用数「1」が加算されて、利用数「201」となっている。
【００９３】
図１０において、ステップＳ１０８で利用数がドライバ情報サーバ１０に送信されると、処理はステップＳ１０９に移行される。ステップＳ１０９で、ドライバ情報取得部２２１１は、ステップＳ１００およびステップＳ１０１でそれぞれ取得したドライバ情報および識別情報により、記憶領域２２０１に記憶される利用ドライバ情報２２１０を更新する。図１７は、実施形態に係る、ステップＳ１０９で更新後の利用ドライバ情報２２１０の例を示す。図１７の例では、利用ドライバ情報２２１０は、図１５で説明した、利用数を含んでドライバ情報サーバ１０に送信されるドライバ情報と同一の内容となっている。
【００９４】
ドライバ情報取得部２２１１は、ステップＳ１０９で利用ドライバ情報２２１０の更新を行うと、処理をステップＳ１００に戻す。
【００９５】
図１８は、実施形態に係るドライバの登録処理の例を示すシーケンス図である。図１８は、上述の図１０のフローチャートと対応する処理を示している。なお、図１８において、上述の図９と対応する部分には同一の符号を付して、詳細な説明を省略する。また、図１８において、ＭＦＰ４０ａおよび４０ｂを機器４０として、ドライバ２２２０ａ〜２２２０ｃをドライバ２２２０として、それぞれ代表させて示している。
【００９６】
ドライバ情報取得部２２１１は、端末装置２００が備えるタイマによる計数結果に基づく時刻情報などをトリガとして、処理を開始する（ステップＳ２００）。ドライバ情報取得部２２１１は、端末装置２００にインストール済みのドライバ２２２０から、ドライバ情報と、接続先の情報とを取得する（ステップＳ２０１）。また、ドライバ情報取得部２２１１は、端末装置２００に接続されている機器４０から識別情報を取得する（ステップＳ２０２）。ドライバ情報取得部２２１１は、次に、端末装置２００の記憶領域２２０１から利用ドライバ情報２２１０を取得する（ステップＳ２０３）。
【００９７】
ドライバ情報取得部２２１１は、利用ドライバ情報２２１０と、インストール済みのドライバ２２２０から取得したドライバ情報とを比較して（ステップＳ２０４）、利用ドライバ情報２２１０に含まれないドライバ情報がドライバ２２２０から取得したドライバ情報に含まれるか否かを判定する。ドライバ情報取得部２２１１は、含まれないと判定した場合、次のステップＳ２０５〜ステップＳ２０９の処理をスキップして、ステップＳ２１０に処理を移行させる。
【００９８】
ドライバ情報取得部２２１１は、利用ドライバ情報２２１０に含まれないドライバ情報がドライバ２２２０から取得したドライバ情報に含まれると判定した場合、ステップＳ２０２で機器４０から取得した識別情報をドライバ情報サーバ１０に送信し、送信した識別情報に対応するドライバ情報を要求する。ドライバ情報取得部２２１１は、この要求に応じて、ドライバ情報サーバ１０からドライバ情報を取得する（ステップＳ２０５）。
【００９９】
ドライバ情報取得部２２１１は、ステップＳ２０５で取得したドライバ情報と、ステップＳ２０１でドライバ２２２０から取得したドライバ情報とに基づき、ドライバ情報サーバ１０へのドライバ情報の登録の必要性を判定する（ステップＳ２０６）。すなわち、ドライバ情報取得部２２１１は、ドライバ２２２０から取得したドライバ情報に含まれ、且つ、ドライバ情報サーバ１０から取得したドライバ情報に含まれないドライバ情報があった場合に、当該ドライバ情報をドライバ情報サーバ１０に登録する必要があると判定する。
【０１００】
ドライバ情報取得部２２１１は、ドライバ情報をドライバ情報サーバ１０に登録する必要が無いと判定した場合、次のステップＳ２０７〜ステップＳ２０９の処理をスキップして、処理をステップＳ２１０に移行させる。
【０１０１】
ドライバ情報取得部２２１１は、ドライバ情報をドライバ情報サーバ１０に登録する必要があると判定した場合、表示部２１０５によりドライバ登録画面４００を表示させる（ステップＳ２０７）。ドライバ情報取得部２２１１は、ドライバ登録画面４００の入力領域４００１および４００２のうち少なくとも一方に入力がなされ、登録ボタン４００４が操作されると（ステップＳ２０８）、登録情報をドライバ情報サーバ１０に送信し、ドライバ情報サーバ１０が保存するドライバ情報リスト１２０への登録情報の登録を要求する（ステップＳ２０９）。ドライバ情報サーバ１０は、この要求に応じて、端末装置２００から送信された登録情報をドライバ情報リスト１２０に追加して、登録情報の登録を行う。
【０１０２】
さらに、ドライバ情報取得部２２１１は、ドライバ２２２０の利用数を取得してドライバ情報サーバ１０送信し、ドライバ情報サーバ１０に保存されるドライバ情報リスト１２０に含まれる利用数の更新を要求する（ステップＳ２１０）。ドライバ情報サーバ１０は、この要求に応じて、ドライバ情報リスト１２０に含まれるドライバ２２２０に対応するドライバ情報の利用数を更新する。
【０１０３】
ドライバ情報取得部２２１１は、ステップＳ２０１で取得したドライバ情報に基づき、ステップＳ２０３で取得した利用ドライバ情報２２１０を更新する（ステップＳ２１１）。ドライバ情報取得部２２１１は、利用ドライバ情報２２１０の更新を行った後、処理をステップＳ２００に戻す。
【０１０４】
（実施形態に係るドライバの追加、更新処理の概要）
図１９を用いて、実施形態に係るドライバの追加、更新処理について、概略的に説明する。なお、図１９において、上述した図８および図９と共通する部分には同一の符号を付して、詳細な説明を省略する。ここでは、図９に示した、ドライバ２２２０ａ〜２２２０ｃがインストールされている端末装置２００に対し、図１９に示されるように、ドライバ２２２０ｄおよび２２２０ｅを追加し、さらに、ドライバ２２２０ｃを新しいバージョンに更新する場合について説明する。
【０１０５】
なお、図１９において、端末装置２００にインストール済みの各ドライバ２２２０ａ〜２２２０ｃのうち、ドライバ２２２０ａは、ドライバ名が「MFP#A  Driver  PCL」、バージョンが「2.0.0.0」、ドライバ２２２０ｂは、ドライバ名が「MFP#A  Driver  PS」、バージョンが「1.0.0.0」、ドライバ２２２０ｃは、ドライバ名が「Generic  Driver  PCL」、後述する更新処理の前のバージョンが「1.0.0.0」であるものとする。
【０１０６】
端末装置２００において、ドライバ追加更新部２２１２は、端末装置２００にインストールされている各ドライバ２２２０ａ〜２２２０ｃの情報を取得する（ステップＳ２０）。
【０１０７】
次に、ドライバ追加更新部２２１２は、各ドライバ２２２０ａ〜２２２０ｃに接続される機器（図１９の例ではＭＦＰ４０ａ）の識別情報を取得する（ステップＳ２１）。また、ドライバ追加更新部２２１２は、ステップＳ２１において、ＬＡＮなどのネットワークや、ＵＳＢなどを介して端末装置２００に接続される機器の探索を行い、探索された機器の識別情報を取得する。図１９の例では、ＭＦＰ４０ａおよび４０ｂが探索される。ドライバ追加更新部２２１２は、探索されたＭＦＰ４０ａおよび４０ｂのうち、ドライバが接続されていないＭＦＰ４０ｂの識別情報を取得する。
【０１０８】
ドライバ追加更新部２２１２は、ステップＳ２１で取得した各識別情報をドライバ情報サーバ１０に送信し、送信した識別情報に対応するドライバ情報を要求する（ステップＳ２２）。ドライバ情報サーバ１０は、この要求に従い、ドライバ情報サーバ１０が保存するドライバ情報リスト１２０から、ドライバ追加更新部２２１２から送信された識別情報に対応するドライバ情報を取得する。このドライバ情報は、端末装置２００においてドライバが接続されていない機器（ＭＦＰ４０ｂ）のドライバ情報を含むことができる。ドライバ情報サーバ１０は、取得したドライバ情報のリストを端末装置２００に送信する（ステップＳ２３）。ドライバ情報サーバ１０から送信されたドライバ情報リストは、端末装置２００に受信され、ドライバ追加更新部２２１２に渡される。
【０１０９】
ドライバ追加更新部２２１２は、ステップＳ２３でドライバ情報サーバ１０から送信されたドライバ情報リストに含まれるドライバ情報と、ステップＳ２０で端末装置２００にインストール済みの各ドライバ２２２０ａ〜２２２０ｃから取得したドライバ情報とを比較する。このドライバ情報の比較により、ドライバ追加更新部２２１２は、端末装置２００に接続されているが利用されていない機器や、端末装置２００に接続され利用もされているが、一部の機能が利用されていない機器および機能の有無を判定することができる。また、ドライバ追加更新部２２１２は、このドライバ情報の比較により、インストール済みのドライバ２２２０ａ〜２２２０ｃについて、より新しいバージョンの有無を判定することができる。
【０１１０】
ドライバ追加更新部２２１２は、これら判定結果に応じて、ドライバの追加を行うためのドライバ追加画面や、ドライバの更新を行うためのドライバ更新画面を表示部２１０５により表示させ、ユーザに、ドライバの追加、更新を促す。ドライバ追加更新部２２１２は、ドライバ追加画面やドライバ更新画面に対するユーザ入力に応じて、追加インストールを行うドライバや、更新を行うドライバを取得する。
【０１１１】
例えば、ドライバ追加画面またはドライバ更新画面において追加または更新するドライバの入手サイトＵＲＬが入力された場合、ドライバ追加更新部２２１２は、入手サイトＵＲＬに従いドライバ配布サイト３１にアクセスし（ステップＳ２４）、ドライバ配布サイト３１を介してドライバを取得する（ステップＳ２５）。また、ドライバ追加画面またはドライバ更新画面において追加またはするドライバのオブジェクトＵＲＬが入力された場合、ドライバ追加更新部２２１２は、オブジェクトＵＲＬに従いドライバ保存サーバ３０にアクセスし（ステップＳ２６）、ドライバ保存サーバ３０からドライバを取得する（ステップＳ２７）。
【０１１２】
ドライバ追加更新部２２１２は、ステップＳ２５やステップＳ２７で取得したドライバを端末装置２００にインストールする（ステップＳ２８）。この場合、例えば、取得したドライバとドライバ名が一致するドライバが端末装置２００にインストールされていなければ、ドライバの追加となる。また、取得したドライバとドライバ名が一致し、バージョン情報が当該ドライバより古いドライバが端末装置２００に既にインストールされていれば、当該ドライバの更新となる。
【０１１３】
図１９の例では、ドライバ２２２０ｄおよび２２２０ｅは、ステップＳ２０の各ドライバのドライバ情報取得の時点で端末装置２００にインストールされていないので、追加のインストールとなる。また、ドライバ２２２０ｃは、ステップＳ２０の時点でのバージョン情報が「1.0.0.0」であり、ステップＳ２５またはステップＳ２７で取得された、当該ドライバ２２２０ｃとドライバ名が一致するドライバ情報に含まれるバージョン情報が、より新しいバージョンを示していれば（例えば「2.0.0.0」）、更新となる。
【０１１４】
また、実施形態に係るドライバ追加更新部２２１２は、ドライバ追加画面またはドライバ更新画面の表示の際に、追加または更新の対象となるドライバについて、ドライバ情報サーバ１０から送信されたドライバ情報に含まれる利用数を表示させることができる。この利用数の表示は、ユーザによる、ドライバの追加または更新を実行するか否かの判断に利用できる。
【０１１５】
ドライバ追加更新部２２１２は、ステップＳ２８によるドライバの追加、更新の結果に従い、利用ドライバ情報２２１０を更新する（ステップＳ２９、ステップＳ３０）。
【０１１６】
（実施形態に係るドライバ追加、更新処理の詳細）
次に、実施形態に係るドライバ追加、更新処理について、より詳細に説明する。図２０は、実施形態に係るドライバ情報の追加、更新処理を示す一例のフローチャートである。図２０のフローチャートによる各処理は、ドライバ追加更新部２２１２において実行される。
【０１１７】
なお、ここでは、端末装置２００は、図１９に示したように、ＭＦＰ４０ａおよび４０ｂが接続されており、ドライバ２２２０ａ〜２２２０ｃがインストールされ、これらドライバ２２２０ａ〜２２２０ｃがＭＦＰ４０ａに接続されているものとする。また、ＭＦＰ４０ｂは、ドライバが接続されていないものとする。また、ドライバ情報サーバ１０は、上述したドライバ情報登録処理により、図５で示したドライバ情報リスト１２０に対して２のレコードが追加された、図１６で示したドライバ情報リスト１２０が保存されているものとする。
【０１１８】
例えば端末装置２００に対するユーザ操作をトリガとしてドライバの追加、更新処理が開始されると、ステップＳ１２０で、ドライバ追加更新部２２１２は、端末装置２００にインストールされているドライバからドライバ情報および当該ドライバの接続先を示す情報を取得する。ここで取得されるドライバ情報は、少なくとも、ドライバのドライバ名、ドライバ種類およびバージョン情報を含む、また、接続先は、ドライバが制御する機器に接続するための接続情報であって、機器のＩＰアドレスやＵＳＢポート番号である。
【０１１９】
図１９の例では、端末装置２００にはドライバ２２２０ａ〜２２２０ｃがインストールされており、ドライバ追加更新部２２１２は、これらドライバ２２２０ａ〜２２２０ｃからドライバ情報を取得する。ドライバ追加更新部２２１２が各ドライバ２２２０ａ〜２２２０ｃから取得されるドライバ情報は、図９を用いて説明したのと同様に、ドライバ２２２０ａからドライバ名「MFP#A  Driver  PCL」、ドライバ種類「プリンタ」およびバージョン情報「2.0.0.0」を、ドライバ２２２０ｂからドライバ名「MFP#A  Driver  PS」、ドライバ種類「プリンタ」およびバージョン情報「1.0.0.0」を、ドライバ２２２０ｃからドライバ名「Generic  Driver  PCL」、ドライバ種類「プリンタ」およびバージョン情報「1.0.0.0」を、それぞれ取得する。また、各ドライバ２２２０ａ〜２２２０ｃの接続先として、ＭＦＰ４０ａに対する接続情報を取得する。
【０１２０】
次のステップＳ１２１で、ドライバ追加更新部２２１２は、端末装置２００にインストールされドライバに接続されている機器の識別情報を取得する。図１９の例では、ドライバ２２２０ａ〜２２２０ｃがＭＦＰ４０ａに接続されているため、ドライバ追加更新部２２１２は、ＭＦＰ４０ａの識別情報（「ＭＦＰ＃Ａ」とする）を取得する。
【０１２１】
次のステップＳ１２２で、ドライバ追加更新部２２１２は、端末装置２００にネットワークやＵＳＢなどを介して接続された機器を探索し、探索された機器の識別情報を取得する。図１９の例では、ドライバ追加更新部２２１２は、ＭＦＰ４０ａおよびＭＦＰ４０ｂの識別情報（「ＭＦＰ＃Ａ」および「ＭＦＰ＃Ｂ」）を取得する。これらのうち、識別情報「ＭＦＰ＃Ｂ」のＭＦＰ４０ｂは、端末装置２００に接続されているが、ドライバが接続されていない機器である。
【０１２２】
次のステップＳ１２３で、ドライバ追加更新部２２１２は、ステップＳ１２１およびステップＳ１２２で取得した識別情報の一覧をドライバ情報サーバ１０に送信し、ドライバ情報サーバ１０から、ドライバ情報サーバ１０に保存されているドライバ情報リスト１２０のうち、送信した識別情報の一覧に含まれる各識別情報について、一致する識別情報を含むドライバ情報を取得する。
【０１２３】
図２１は、実施形態に係る、ステップＳ１２３でドライバ追加更新部２２１２からドライバ情報サーバ１０に送信される識別情報の一覧の例を示す。上述した図１１と同様に、識別情報一覧は、一対の括弧「［」および「］に挟んで、ステップＳ１２１およびステップＳ１２２で取得した識別情報の一覧が記述される。図１９の例では、ステップＳ１２１で識別情報「ＭＦＰ＃Ａ」が、ステップＳ１２２で識別情報「ＭＦＰ＃Ｂ」がそれぞれ取得されているため、識別情報一覧は、これら識別情報「ＭＦＰ＃Ａ」および「ＭＦＰ＃Ｂ」を含んでいる。
【０１２４】
図２２は、実施形態に係る、ステップＳ１２３でドライバ情報サーバ１０から送信されるドライバ情報リスト１２０”の例を示す。この例では、ドライバ情報サーバ１０は、端末装置２００から送信された識別情報一覧に基づき、ドライバ情報サーバ１０に保存されるドライバ情報リスト１２０から、識別情報「ＭＦＰ＃Ａ」に対応する６つのドライバ情報と、識別情報「ＭＦＰ＃Ｂ」に対応する１つのドライバ情報をと取得している。
【０１２５】
より具体的には、図２２のドライバ情報リスト１２０”は、２行目および４６行目の一対の括弧「［」および「］」に挟んで、先頭（２行目）の括弧「［」の直前に記述される識別情報「ＭＦＰ＃Ａ」が示す１台の機器に対応する各ドライバのドライバ情報が、それぞれ一対の括弧「｛」および「｝」に挟んで記述される。同様に、４７行目および５５行目の一対の括弧「［」および「］」に挟んで、先頭（４７行目）の括弧「［」の直前に記述される識別情報「ＭＦＰ＃Ｂ」が示す１台の機器に対応するドライバのドライバ情報が一対の括弧「｛」および「｝」に挟んで記述される。
【０１２６】
識別情報「ＭＦＰ＃Ａ」に対し、３行目〜１０行目、１１行目〜１７行目、１８行目〜２４行目、２５行目〜３１行目、３２行目〜３８行目、および、３９行目〜４５行目にそれぞれドライバ情報が記述される。
【０１２７】
これらのうち、３行目〜１０行目に、ドライバ名が「MFP#A  Driver  PCL」、ドライバ種類「printer（プリンタ）」、バージョン情報「2.0.0.0」、オブジェクトＵＲＬ「http://2.example.com/mfp_a/pcl2.0.0.0.exe」および入手サイトＵＲＬ「http//2.example.com/mfp_a/」であり、利用数が「1」のドライバ情報が記述される。
【０１２８】
１１行目〜１７行目に、ドライバ名が「MFP#A  Driver  PCL」、ドライバ種類「printer（プリンタ）」、バージョン情報「1.0.0.0」および入手サイトＵＲＬ「http//2.example.com/mfp_a/」であり、利用数が「1000」のドライバ情報が記述される。この１１行目〜１７行目に記述されるドライバ情報は、３行目〜１０行目に記述されるドライバ情報に対してドライバ名が同一で、バージョン情報がより古いバージョンを示すドライバのドライバ情報である。
【０１２９】
１８行目〜２４行目に、ドライバ名が「MFP#A  Driver  PS」、ドライバ種類「printer（プリンタ）」、バージョン情報「1.0.0.0」および入手サイトＵＲＬ「http//2.example.com/mfp_a/」であり、利用数が「1」のドライバ情報が記述される。
【０１３０】
２５行目〜３１行目に、ドライバ名が「Generic  Driver  PCL」、ドライバ種類「printer」、バージョン情報「2.0.0.0」および入手サイト「http//2.example.com/generic/」であり、利用数が「500」のドライバ情報が記述される。
【０１３１】
３２行目〜３８行目に、ドライバ名が「Generic  Driver  PCL」、ドライバ種類「printer」、バージョン情報「1.0.0.0」および入手サイト「http//2.example.com/generic/」であり、利用数が「201」のドライバ情報が記述される。３２行目〜３８行目に記述されるドライバ情報は、２５行目〜３１行目に記述されるドライバ情報とドライバ名が同一で、バージョン情報がより古いバージョンを示すドライバのドライバ情報である。
【０１３２】
３９行目〜４５行目に、ドライバ名が「MFP#A  Driver  Scan」、ドライバ種類「Scanner」、バージョン情報「1.0.0.0」および入手サイト「http//2.example.com/mfp_a/」であり、利用数が「200」のドライバ情報が記述される。
【０１３３】
さらに、４８行目〜５４行目に、識別情報「ＭＦＰ＃Ｂ」に対応する、ドライバ名が「MFP#B  Driver  PCL」、ドライバ種類「printer（プリンタ）」、バージョン情報「1.0.0.0」および入手サイトＵＲＬ「http//3.example.com/mfp_b/」であり、利用数が「1000」のドライバ情報が記述される。
【０１３４】
説明は図２０のフローチャートに戻り、ステップＳ１２４で、ドライバ追加更新部２２１２は、ステップＳ１２３でドライバ情報サーバ１０から取得したドライバ情報リスト１２０”に記述されるドライバ情報と、ステップＳ１２０で取得したドライバ情報とを比較する。そして、比較の結果、（１）ステップＳ１２２で探索された機器のうち、ドライバに接続されていない機器があるか、または、（２）ステップＳ１２１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器があるかが判定される。
【０１３５】
図１９および図２２の例を用いて、ステップＳ１２４における上述の（１）および（２）の判定について具体的に説明する。
【０１３６】
（１）の、「ステップＳ１２２で探索された機器のうち、ドライバに接続されていない機器があるか」の判定について説明する。図１９の例において、端末装置２００に接続されるＭＦＰ４０ａおよび４０ｂのうち、ＭＦＰ４０ｂにはドライバが接続されていない。したがって、ドライバ追加更新部２２１２は、「ステップＳ１２２で探索された機器のうち、ドライバに接続されていない機器がある」と判定する。
【０１３７】
この場合、端末装置２００は、ＭＦＰ４０ｂに対応するドライバをインストールすることで、インストールされたドライバがＭＦＰ４０ｂに接続され、端末装置２００からＭＦＰ４０ｂを利用することができるようになる。
【０１３８】
（２）の、「ステップＳ１２１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器があるか」の判定について説明する。図２２の例において、ドライバに接続されるＭＦＰ４０ａ（識別情報「ＭＦＰ＃Ａ）について、３９行目〜４５行目に記述されるドライバ名「MFP#A  Driver  Scan」のドライバは、ドライバ種類が「スキャン」であり、端末装置２００にはインストールされていない。そのため、ＭＦＰ４０ａは、端末装置２００からスキャン機能を利用することができない。したがって、ドライバ追加更新部２２１２は、「ステップＳ１２１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器がある」と判定する。
【０１３９】
この場合、端末装置２００は、ドライバ名「MFP#A  Driver  Scan」のドライバをインストールすることで、スキャン機能を利用することができるようになる。
【０１４０】
ドライバ追加更新部２２１２は、ステップＳ１２４で、「ステップＳ１２２で探索された機器のうち、ドライバに接続されていない機器がある」、または、「ステップＳ１２１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器がある」と判定した場合、処理をステップＳ１２５に移行させる。
【０１４１】
ステップＳ１２５で、ドライバ追加更新部２２１２は、表示部２１０５によりユーザにドライバの追加インストールを促すためのドライバ追加画面を表示させる。図２３は、実施形態に係るドライバ追加画面の例を示す。図２３（ａ）は、ドライバに接続されていない機器に対応するドライバを追加インストールするためのドライバ追加画面４０１ａの例を示す。また、図２３（ｂ）は、ドライバに接続されている機器に対して、新たな機能を追加するためのドライバを追加インストールするためのドライバ追加画面４０１ｂの例を示す。
【０１４２】
ドライバ追加更新部２２１２は、例えば、ドライバ情報サーバ１０から送信されたドライバ情報リスト１２０”に含まれる各ドライバ情報の記述順に従い、ドライバ情報毎にステップＳ１２４〜ステップＳ１３０の処理を繰り返して、ドライバの追加処理を行う。
【０１４３】
図２３（ａ）において、ドライバ追加画面４０１ａは、メッセージ表示領域４０１０ａと、インストールボタン４０１１と、入手サイト表示ボタン４０１２と、キャンセルボタン４０１３と、中止ボタン４０１４とを含む。
【０１４４】
ドライバ追加画面４０１ａにおいて、メッセージ表示領域４０１０ａは、ドライバ名と、このドライバ名のドライバを追加インストールすることで利用可能になる機器の識別情報とを含むメッセージを表示する。図２３（ａ）の例では、さらに、ドライバのバージョン情報が表示されている。
【０１４５】
例えば、ドライバ追加更新部２２１２は、ステップＳ１２０で取得した端末装置２００にインストール済みのドライバの情報と、ステップＳ１２２の機器探索の結果とに基づき、端末装置２００に接続され、且つ、ドライバが接続されていない機器の識別情報を取得する。そして、ドライバ追加更新部２２１２は、取得した識別情報に対応するドライバ情報を、ステップＳ１２３で取得したドライバ情報リスト１２０”に含まれる各ドライバ情報から１つ抽出する。ドライバ追加更新部２２１２は、この抽出したドライバ情報に基づき、メッセージ表示領域４０１０ａに表示させるメッセージを生成する。
【０１４６】
図１９および図２２の例では、ドライバ追加更新部２２１２は、端末装置２００に接続され、且つ、ドライバが接続されていない機器として、ＭＦＰ４０ｂの識別情報「ＭＦＰ＃Ｂ」を取得する。ドライバ追加更新部２２１２は、さらに、ドライバ情報リスト１２０”から、識別情報「ＭＦＰ＃Ｂ」に対応するドライバ情報（図２２の４７行目〜５５行目）を抽出する。ドライバ追加更新部２２１２は、抽出したドライバ情報から、ドライバ名「MFP#B  Driver  PCL」とバージョン情報「1.0.0.0」とを取得して、メッセージ表示領域４０１０ａに表示させるメッセージを生成する。
【０１４７】
ドライバ追加画面４０１ａにおいて、インストールボタン４０１１は、ドライバを、ドライバ情報に含まれるオブジェクトＵＲＬに従いドライバ保存サーバ３０から直接的に取得してインストールする処理を、ドライバ追加更新部２２１２に指示するためのボタンである。また、入手サイト表示ボタン４０１２は、ドライバ情報に含まれる入手サイトＵＲＬに従いドライバ配布サイト３１にアクセスする処理を、ドライバ追加更新部２２１２に指示するためのボタンである。ドライバ追加更新部２２１２は、これらインストールボタン４０１１および入手サイト表示ボタン４０１２を、それぞれ、ドライバ情報に対応するＵＲＬが記述されている場合に操作可能とする。
【０１４８】
図２２のドライバ情報リスト１２０”の場合、識別情報「ＭＦＰ＃Ｂ」に対応するドライバ情報には、オブジェクトＵＲＬが含まれ、入手サイトＵＲＬが含まれていない。したがって、ドライバ追加画面４０１ａにおいて、インストールボタン４０１１が操作可能とされ、入手サイト表示ボタン４０１２は、例えばグレーアウト表示などにより操作不可とされる。
【０１４９】
ドライバ追加画面４０１ａにおいて、キャンセルボタン４０１３は、現在のドライバ追加画面４０１ａに示されるドライバの追加のキャンセルを、ドライバ追加更新部２２１２に指示するためのボタンである。また、中止ボタン４０１４は、ドライバの追加処理そのものの中止をドライバ追加更新部２２１２に指示するためのボタンである。
【０１５０】
図２３（ｂ）において、ドライバ追加画面４０１ｂは、上述のドライバ追加画面４０１ａと共通の画面構成とされ、メッセージ表示領域４０１０ｂと、インストールボタン４０１１と、入手サイト表示ボタン４０１２と、キャンセルボタン４０１３と、中止ボタン４０１４とを含む。これらのうち、インストールボタン４０１１、入手サイト表示ボタン４０１２、キャンセルボタン４０１３および中止ボタン４０１４は、図２３（ａ）のドライバ追加画面４０１ａの対応するボタンと同等の機能を備える。
【０１５１】
ドライバ追加画面４０１ｂにおいて、メッセージ表示領域４０１０ｂは、機器の識別情報と、ドライバ名と、このドライバ名のドライバを追加インストールすることで当該機器において利用可能になる機能を示す情報とを含むメッセージを表示する。図２３（ｂ）の例では、さらに、ドライバのバージョン情報が表示されている。
【０１５２】
例えば、ドライバ追加更新部２２１２は、ステップＳ１２０で取得したインストール済みのドライバの情報と、ステップＳ１２４で取得したドライバ情報リスト１２０”とに基づき、インストール済みのドライバが接続される機器において、未利用の機能のドライバのドライバ情報を、ドライバ情報リスト１２０”から１つ抽出する。ドライバ追加更新部２２１２は、この抽出したドライバ情報に基づき、メッセージ表示領域４０１０ｂに表示させるメッセージを生成する。
【０１５３】
図１９および図２２の例では、ドライバ追加更新部２２１２は、ドライバ情報リスト１２０”と、インストール済みの各ドライバ２２２０ａ〜２２２ｃのドライバ情報とから、識別情報「ＭＦＰ＃Ａ」の機器においてスキャン機能が未利用の機能であると判定する。ドライバ追加更新部２２１２は、ドライバ情報リスト１２０”に含まれる、識別情報「ＭＦＰ＃Ａ」に対応する各ドライバ情報のうち、ドライバ種類が「スキャナ」であるドライバ情報（図２２の３９行目〜４５行目）。ドライバ追加更新部２２１２は、抽出したドライバ情報から、ドライバ名「MFP#A  Driver  Scan」とバージョン情報「1.0.0.0」とを取得して、メッセージ表示領域４０１０ｂに表示させるメッセージを生成する。
【０１５４】
説明は図２０のフローチャートに戻り、ドライバ追加更新部２２１２は、ステップＳ１２５でドライバ追加画面４０１ａまたは４０１ｂを表示させると、処理をステップＳ１２６に移行させる。ステップＳ１２６で、ドライバ追加更新部２２１２は、ドライバ追加画面４０１ａまたは４０１ｂのインストールボタン４０１１、入手サイト表示ボタン４０１２、キャンセルボタン４０１３および中止ボタン４０１４の何れが操作されたかを判定する。
【０１５５】
ドライバ追加更新部２２１２は、中止ボタン４０１４が操作されたと判定した場合、処理をステップＳ１３１に移行させ、キャンセルボタン４０１３が操作されたと判定した場合、処理をステップＳ１２４に戻す。
【０１５６】
ドライバ追加更新部２２１２は、インストールボタン４０１１が操作されたと判定した場合、処理をステップＳ１２７に移行させ、オブジェクトＵＲＬに従いドライバ保存サーバ３０からドライバをダウンロードする。そして、処理は次のステップＳ１２８に移行され、ドライバ追加更新部２２１２は、ダウンロードしたドライバを端末装置２００にインストールする。
【０１５７】
ここでは、ドライバ追加画面４０１ａにおいてインストールボタン４０１１が操作され、ドライバ２２２０ｅ、すなわち、ドライバ名「MFP#B  Driver  PCL」、バージョン情報「1.0.0.0」のドライバが端末装置２００に追加してインストールされたものとする。
【０１５８】
ドライバ追加更新部２２１２は、ステップＳ１２８でのドライバのインストールを実行後、処理をステップＳ１２４に戻す。
【０１５９】
また、ドライバ追加更新部２２１２は、入手サイト表示ボタン４０１２が操作されたと判定した場合、処理をステップＳ１２９に移行させる。ステップＳ１２９で、ドライバ追加更新部２２１２は、入手サイトＵＲＬに従いドライバ配布サイト３１にアクセスし、ドライバをダウンロードするためのダウンロード（ＤＬ）サイトを表示部２１０５により表示させる。
【０１６０】
そして、処理は次のステップＳ１３０に移行され、ドライバ追加更新部２２１２は、ユーザ操作に応じてＤＬサイトからダウンロードされたドライバを端末装置２００にインストールする。なお、ＤＬサイトにおいて、ユーザ操作に応じてドライバのダウンロードがキャンセルされる場合も有り得る。この場合、ドライバ追加更新部２２１２は、処理をステップＳ１２４に戻すことが考えられる。
【０１６１】
ここでは、ドライバ追加画面４０１ｂにおいて入手サイト表示ボタン４０１２が操作され、ドライバ２２２０ｄ、すなわち、ドライバ名「MFP#A  Driver  Scan」、バージョン情報「1.0.0.0」のドライバが端末装置２００に追加してインストールされたものとする。
【０１６２】
ドライバ追加更新部２２１２は、ステップＳ１３０でのドライバのインストールを実行後、処理をステップＳ１２４に戻す。
【０１６３】
ドライバ追加更新部２２１２は、上述のステップＳ１２４で、ステップＳ１２２で探索された機器のうち、ドライバに接続されていない機器が無く、且つ、ステップＳ１２１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器が無いと判定した場合、処理をステップＳ１３１に移行させる。
【０１６４】
なお、この時点では、上述したステップＳ１２８およびステップＳ１３０でのドライバのインストール処理により、端末装置２００にドライバ２２２０ａ〜２２２０ｅがインストールされているものとする。
【０１６５】
ステップＳ１３１で、ドライバ追加更新部２２１２は、ステップＳ１２０で取得したドライバ情報と、ステップＳ１２３でドライバ情報サーバ１０から取得したドライバ情報リスト１２０”とに基づき、ステップＳ１２３の時点で端末装置２００にインストール済みのドライバ２２２０ａ〜２２２０ｃのうち、より新しいバージョンのドライバで更新可能なドライバが存在するか否かを判定する。ドライバ追加更新部２２１２は、更新可能なドライバが存在しないと判定した場合、図２０のフローチャートによる一連の処理を終了させる。
【０１６６】
一方、ドライバ追加更新部２２１２は、ステップＳ１３１で更新可能なドライバが存在すると判定した場合、処理をステップＳ１３２に移行させる。ステップＳ１３２で、ドライバ追加更新部２２１２は、表示部２１０５により、ユーザにドライバの更新を促すためのドライバ更新画面を表示させる。
【０１６７】
図２４は、実施形態に係るドライバ更新画面の例を示す。図２４において、ドライバ更新画面４０２は、メッセージ表示領域４０２０ａおよび４０２０ｂと、更新ボタン４０２１と、入手サイト表示ボタン４０２２と、キャンセルボタン４０２３と、中止ボタン４０２４とを含む。
【０１６８】
ドライバ更新画面４０２において、メッセージ表示領域４０２０ａは、インストール済みのドライバのドライバ名とバージョン情報とを含み、さらに、当該ドライバについて、より新しいバージョンを示すバージョン情報を含むメッセージを表示する。
【０１６９】
例えば、ドライバ追加更新部２２１２は、ステップＳ１２４でドライバ情報サーバ１０から取得したドライバ情報リスト１２０”から、ステップＳ１２０で取得した端末装置２００にインストール済みのドライバの情報とドライバ名が一致し、且つ、バージョン情報が当該インストール済みのドライバのドライバ情報に含まれるバージョン情報よりも新しいバージョンを示しているドライバ情報を１つ抽出する。ドライバ追加更新部２２１２は、抽出したドライバ情報に含まれるバージョン情報と、対応するインストール済みのドライバのドライバ情報に含まれるドライバ名およびバージョン情報とに基づき、メッセージ表示領域４０２０ａに表示させるメッセージを生成する。
【０１７０】
図１９および図２２の例では、ドライバ追加更新部２２１２は、ドライバ情報リスト１２０”に含まれるドライバ情報から、インストール済みのドライバのドライバ情報とドライバ名が一致し、且つ、バージョン情報が当該インストール済みのドライバのドライバ情報に含まれるバージョン情報よりも新しいバージョンを示しているドライバ情報として、ドライバ名「Generic  Driver  PCL」、バージョン情報「2.0.0.0」のドライバ情報とを取得する。さらに、ドライバ追加更新部２２１２は、当該インストール済みのドライバのドライバ情報に含まれるバージョン情報「1.0.0.0」を取得する。
【０１７１】
ドライバ追加更新部２２１２は、取得したドライバ名「Generic  Driver  PCL」のドライバを更新対象とする。ドライバ追加更新部２２１２は、この当該更新対象のドライバのドライバ名「Generic  Driver  PCL」と、バージョン情報「2.0.0.0」およびバージョン情報「1.0.0.0」とに基づき、メッセージ表示領域４０２０ａに表示させるメッセージを生成する。
【０１７２】
ドライバ更新画面４０２において、メッセージ表示領域４０２０ｂは、メッセージ表示領域４０２０ａに表示したドライバの更新を行った割合を示すメッセージを表示する。
【０１７３】
ドライバ追加更新部２２１２は、上述したメッセージ表示領域４０２０ａに表示させるメッセージを生成する際にドライバ情報リスト１２０”から取得した、バージョン情報が、端末装置２００にインストール済みの対応するドライバのドライバ情報のバージョン情報よりも新しいドライバ情報から第１の利用数を抽出し、ドライバ情報リスト１２０”に含まれるドライバ情報であって、当該ドライバ情報とドライバ名が一致し、且つ、バージョン情報が当該ドライバ情報よりも古いドライバ情報から第２の利用数を抽出する。
【０１７４】
ドライバ追加更新部２２１２は、第１の利用数と第２の利用数とを合計した値を、当該ドライバ名のドライバの、各バージョンの利用数の合計である総利用数とし、総利用数と、新しいバージョンの利用数である第１の利用数とに基づき、メッセージ表示領域４０２０ｂに表示させるメッセージを生成する。
【０１７５】
図２２の例では、ドライバ追加更新部２２１２は、ドライバ情報リスト１２０”から、更新対象のドライバのドライバ名「Generic  Driver  PCL」と一致し、バージョンの異なる２つのドライバ情報（図２２の２５行目〜３１行目、３２行目〜３８行目）を取得する。ドライバ追加更新部２２１２は、取得した２つのドライバ情報のうち、新しいバージョンのドライバ情報に含まれる利用数「using_num」から第１の利用数「500」を抽出し、古いバージョンのドライバ情報に含まれる利用数「using_num」から第２の利用数「201」を抽出する。ドライバ追加更新部２２１２は、抽出した各利用数を合計して総利用数「701」を算出する。ドライバ追加更新部２２１２は、算出した総利用数「701」と、第１の利用数「500」とに基づき、メッセージ表示領域４０２０ｂに表示させるメッセージを生成する。
【０１７６】
ユーザは、この総利用数「701」と、更新対象のドライバの新しいバージョンの利用数である第１の利用数「500」とに基づき、当該ドライバを更新するか否かを判定することができる。
【０１７７】
説明は図２０のフローチャートに戻り、ドライバ追加更新部２２１２は、ステップＳ１３２でドライバ更新画面４０２を表示させると、処理をステップＳ１３３に移行させる。ステップＳ１３３で、ドライバ追加更新部２２１２は、ドライバ更新画面４０２の更新ボタン４０２１、入手サイト表示ボタン４０２２、キャンセルボタン４０２３および中止ボタン４０２４の何れが操作されたかを判定する。
【０１７８】
ここで、ドライバ更新画面４０２において、更新ボタン４０２１は、ドライバを、ドライバ情報に含まれるオブジェクトＵＲＬに従いドライバ保存サーバ３０から直接的に取得してインストールする処理を、ドライバ追加更新部２２１２に指示するためのボタンである。また、入手サイト表示ボタン４０２２は、ドライバ情報に含まれる入手サイトＵＲＬに従いドライバ配布サイト３１にアクセスする処理を、ドライバ追加更新部２２１２に指示するためのボタンである。ドライバ追加更新部２２１２は、これら更新ボタン４０２１および入手サイト表示ボタン４０２２を、それぞれ、ドライバ情報に対応するＵＲＬが記述されている場合に操作可能とする。
【０１７９】
図２２のドライバ情報リスト１２０”の場合、ドライバ名「Generic  Driver  PCL」、バージョン情報「2.0.0.0」を含むドライバ情報には、オブジェクトＵＲＬが含まれておらず、入手サイトＵＲＬが含まれている。したがって、ドライバ更新画面４０２において、更新ボタン４０２１が例えばグレーアウト表示などにより操作不可とされ、入手サイト表示ボタン４０２２が操作可能とされる。
【０１８０】
ドライバ追加更新部２２１２は、ステップＳ１３３で中止ボタン４０２４が操作されたと判定した場合、図２０のフローチャートにおける一連の処理を終了させる。
【０１８１】
ドライバ追加更新部２２１２は、更新ボタン４０２１が操作されたと判定した場合、処理をステップＳ１３４に移行させ、オブジェクトＵＲＬに従いドライバ保存サーバ３０からドライバをダウンロードする。そして、処理は次のステップＳ１３５に移行され、ドライバ追加更新部２２１２は、ダウンロードしたドライバを端末装置２００にインストールし、ドライバの更新を行う。
【０１８２】
ドライバ追加更新部２２１２は、ステップＳ１３５でのドライバのインストールを実行後、処理をステップＳ１３１に戻す。
【０１８３】
また、ドライバ追加更新部２２１２は、入手サイト表示ボタン４０２２が操作されたと判定した場合、処理をステップＳ１３６に移行させる。ステップＳ１３６で、ドライバ追加更新部２２１２は、入手サイトＵＲＬに従いドライバ配布サイト３１にアクセスし、ドライバをダウンロードするためのＤＬサイトを表示部２１０５により表示させる。
【０１８４】
そして、処理は次のステップＳ１３７に移行され、ドライバ追加更新部２２１２は、ユーザ操作に応じてＤＬサイトからダウンロードされたドライバを端末装置２００にインストールする。なお、ＤＬサイトにおいて、ユーザ操作に応じてドライバのダウンロードがキャンセルされる場合も有り得る。この場合、ドライバ追加更新部２２１２は、処理をステップＳ１３１に戻すことが考えられる。
【０１８５】
ドライバ追加更新部２２１２は、ステップＳ１３７でのドライバのインストールを実行後、処理をステップＳ１３１に戻す。
【０１８６】
図２５−１および図２５−２は、実施形態に係るドライバの追加、更新処理の例を示すシーケンス図である。図２５−１および図２５−２は、上述の図２０のフローチャートと対応する処理を示している。なお、図２５−１および図２５−２において、上述の図１９と対応する部分には同一の符号を付して、詳細な説明を省略する。また、図２５−１および図２５−２において、符号Ａ〜Ｇは、図２５−１および図２５−２の間で符号が対応する処理に移行することを示す。
【０１８７】
端末装置２００に対するユーザ操作によりドライバ追加、更新の処理開始が指示されると（ステップＳ３００）、ドライバ追加更新部２２１２は、端末装置２００にインストール済みのドライバ２２２０から、ドライバ情報と接続先の情報とを取得する（ステップＳ３０１）。ドライバ追加更新部２２１２は、機器４０にドライバ２２２０が接続されている場合、ステップＳ３０１で取得した接続先の情報に基づき、機器４０から識別情報を取得する（ステップＳ３０２）。また、ドライバ追加更新部２２１２は、機器４０にドライバ２２２０が接続されていない場合、機器の探索を行って機器４０の識別情報を取得する（ステップＳ３０３）。
【０１８８】
ドライバ追加更新部２２１２は、次に、ドライバ情報サーバ１０に保存されるドライバ情報リスト１２０から、ステップＳ１２１およびステップＳ１２２で取得された識別情報の一覧をドライバ情報サーバ１０に送信する。そして、識別情報一覧に含まれる識別情報に対応するドライバ情報を含むドライバ情報リスト１２０”を取得する（ステップＳ３０４）。
【０１８９】
ドライバ追加更新部２２１２は、ステップＳ３０４でドライバ情報サーバ１０から取得したドライバ情報リスト１２０”に記述されるドライバ情報と、ステップＳ３０１で取得したドライバ情報とを比較し、ステップＳ３０３で探索された機器のうち、ドライバに接続されていない機器があるか、または、ステップＳ３０１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器があるかを判定する（ステップＳ３１０）。何れも無い場合、ドライバ追加更新部２２１２は、処理をステップＳ３４０に移行させる。
【０１９０】
ドライバ追加更新部２２１２は、ステップＳ３０３で探索された機器のうち、ドライバに接続されていない機器がある、または、ステップＳ３０１で取得された、ドライバに接続される機器のうち、利用可能な全てのドライバを利用していない機器がある、と判定した場合、図２３（ａ）および図２３（ｂ）で示したドライバ追加画面４０１ａまたは４０１ｂを表示させる（ステップＳ３１１）。
【０１９１】
ステップＳ３２０〜ステップＳ３２４は、ドライバ追加画面４０１ａまたは４０１ｂにおいてインストールボタン４０１１が操作された場合の処理を示す。ドライバ追加更新部２２１２は、ドライバ追加画面４０１ａまたは４０１ｂにおいてインストールボタン４０１１が操作された場合（ステップＳ３２０）、ドライバ情報に含まれるオブジェクトＵＲＬに従い、ドライバ保存サーバ３０からドライバをダウンロードする（ステップＳ３２１）。ドライバ追加更新部２２１２は、ダウンロードしたドライバ２２２０’を端末装置２００にインストールし（ステップＳ３２２）、インストールが完了すると（ステップＳ３２３）、次のドライバを追加するためのドライバ追加画面４０１ａまたは４０１ｂを表示させる（ステップＳ３２４）。
【０１９２】
ステップＳ３３０〜ステップＳ３３２は、ドライバ追加画面４０１ａまたは４０１ｂにおいて入手サイト表示ボタン４０１２が操作された場合の処理を示す。ドライバ追加更新部２２１２は、ドライバ追加画面４０１ａまたは４０１ｂにおいて入手サイト表示ボタン４０１２が操作された場合（ステップＳ３３０）、ドライバ情報に含まれる入手サイトのＵＲＬに従いドライバ配布サイト３１にアクセスし、ドライバをダウンロードするためのＤＬサイトを表示させる（ステップＳ３３１）。ドライバ追加更新部２２１２は、次のドライバを追加するためのドライバ追加画面４０１ａまたは４０１ｂを表示させる（ステップＳ３３２）。
【０１９３】
上述のステップＳ３２０〜ステップＳ３２４、および、ステップＳ３３０〜ステップＳ３３２の処理により、ドライバ情報リスト１２０”に基づき追加可能な全てのドライバの追加が完了した場合、処理がステップＳ３４０に移行される。ステップＳ３４０で、ドライバ追加更新部２２１２は、ステップＳ３０１で端末装置２００内部で取得したドライバ情報と、ステップＳ３０４でドライバ情報サーバ１０から取得したドライバ情報リスト１２０”とに基づき、更新可能なドライバ２２２０が存在するか否かを判定する。更新可能なドライバが無いと判定された場合、図２５−１および図２５−２のシーケンス図による一連の処理が終了される。
【０１９４】
更新可能なドライバ２２２０が存在すると判定した場合、ドライバ追加更新部２２１２は、図２４で示したドライバ更新画面４０２を表示させる（ステップＳ３４１）。
【０１９５】
ステップＳ３５０〜ステップＳ３５４は、ドライバ更新画面４０２において更新ボタン４０２１が操作された場合の処理を示す。ドライバ追加更新部２２１２は、ドライバ更新画面４０２において更新ボタン４０２１が操作された場合（ステップＳ３５０）、ドライバ情報に含まれるオブジェクトＵＲＬに従い、ドライバ保存サーバ３０からドライバをダウンロードする（ステップＳ３５１）。ドライバ追加更新部２２１２は、ダウンロードしたドライバを端末装置２００にインストールして、ドライバ２２２０を更新する（ステップＳ３５２）。ドライバ追加更新部２２１２は、ドライバ２２２０の更新が完了すると（ステップＳ３５３）、次のドライバを更新するためのドライバ更新画面４０２を表示させる（ステップＳ３５４）。
【０１９６】
ステップＳ３６０〜ステップＳ３６２は、ドライバ更新画面４０２において入手サイト表示ボタン４０２２が操作された場合の処理を示す。ドライバ追加更新部２２１２は、ドライバ更新画面４０２において入手サイト表示ボタン４０２２が操作された場合（ステップＳ３６０）、ドライバ情報に含まれる入手サイトのＵＲＬに従いドライバ配布サイト３１にアクセスし、ドライバをダウンロードするためのＤＬサイトを表示させる（ステップＳ３６１）。ドライバ追加更新部２２１２は、次のドライバを更新するためのドライバ更新画面４０２を表示させる（ステップＳ３６２）。
【０１９７】
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１９８】
１  情報処理システム
１０  ドライバ情報サーバ
３０，３０ａ，３０ｂ  ドライバ保存サーバ
３１，３１ａ，３１ｂ  ドライバ配布サイト
４０ａ，４０ｂ  ＭＦＰ
１０３  ストレージ
１１０  格納部
１１１  検索部
１１２  登録部
１１３  通信部
１２０，１２０’，１２０”  ドライバ情報リスト
２００  端末装置
４００  ドライバ登録画面
４０１ａ，４０１ｂ  ドライバ追加画面
４０２  ドライバ更新画面
２０１１  ディスプレイ
２１００  取得部
２１０１  通信部
２１０２  取得情報入力部
２１０３  指定部
２１０４  更新指示部
２１０５  表示部
２２１０  利用ドライバ情報
２２１１  ドライバ情報取得部
２２１２  ドライバ追加更新部
２２２０，２２２０’，２２２０ａ，２２２０ｂ，２２２０ｃ，２２２０ｄ，２２２０ｅ  ドライバ
【先行技術文献】
【特許文献】
【０１９９】
【特許文献１】特開２０１０−１０２５４２号公報
【図１】
2017058776.tif 000003
【図２】
2017058776.tif 000004
【図３】
2017058776.tif 000005
【図４】
2017058776.tif 000006
【図５】
2017058776.tif 000007
【図６】
2017058776.tif 000008
【図７】
2017058776.tif 000009
【図８】
2017058776.tif 000010
【図９】
2017058776.tif 000011
【図１０】
2017058776.tif 000012
【図１１】
2017058776.tif 000013
【図１２】
2017058776.tif 000014
【図１３】
2017058776.tif 000015
【図１４】
2017058776.tif 000016
【図１５】
2017058776.tif 000017
【図１６】
2017058776.tif 000018
【図１７】
2017058776.tif 000019
【図１８】
2017058776.tif 000020
【図１９】
2017058776.tif 000021
【図２０】
2017058776.tif 000022
【図２１】
2017058776.tif 000023
【図２２】
2017058776.tif 000024
【図２３】
2017058776.tif 000025
【図２４】
2017058776.tif 000026
【図２５−１】
2017058776.tif 000027
【図２５−２】
2017058776.tif 000028