(57)【要約】【課題】クライアント装置のデバイスドライバーのバージョン管理を容易に実現する。【解決手段】ネットワークを介して他のクライアント装置に接続可能なクライアント装置は、前記ネットワークを介して、他のクライアントに、特定のデバイスドライバーを保持しているかどうかを問い合わせる、問い合わせ手段と、前記ネットワークを介して、他のクライアントから、前記問い合わせに対する回答を受信する回答受信手段と、前記回答受信手段で受信した回答に基づいて、最も新しいバージョンの前記特定のデバイスドライバーを保持する他のクライアント装置を特定クライアント装置として特定し、この特定クライアント装置から、前記特定のデバイスドライバーを取得する、ドライバー取得手段と、を備えて構成されている。【選択図】図１
2010170380.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他のクライアント装置に接続可能なクライアント装置であって、
前記ネットワークを介して、他のクライアントに、特定のデバイスドライバーを保持しているかどうかを問い合わせる、問い合わせ手段と、
前記ネットワークを介して、他のクライアントから、前記問い合わせに対する回答を受信する回答受信手段と、
前記回答受信手段で受信した回答に基づいて、最も新しいバージョンの前記特定のデバイスドライバーを保持する他のクライアント装置を特定クライアント装置として特定し、この特定クライアント装置から、前記特定のデバイスドライバーを取得する、ドライバー取得手段と、
を備えることを特徴とするクライアント装置。
【請求項２】
前記問い合わせ手段が行う問い合わせには、前記特定のデバイスドライバーを用いるデバイスを特定する情報が含まれている、ことを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記受信手段が受信する回答には、前記特定のデバイスドライバーのバージョンを特定する情報が含まれている、ことを特徴とする請求項１又は請求項２に記載のクライアント装置。
【請求項４】
前記ドライバー取得手段は、
前記特定クライアント装置に、前記ネットワークを介して、デバイスドライバーの取得を要求する取得要求を送信した後、
前記特定クライアント装置の所定のフォルダーをアクセスし、この所定のフォルダーから、前記特定のデバイスドライバーのファイルを取得する、
ことを特徴とする請求項１乃至請求項３のいずれかに記載のクライアント装置。
【請求項５】
前記デバイスドライバーは、プリンター用のプリンタードライバーであり、
前記所定のタイミングは、当該クライアント装置において、前記プリンター用のプリンターキューを作成した際である、
ことを特徴とする請求項１乃至請求項４のいずれかに記載のクライアント装置。
【請求項６】
前記ネットワークを介して、他のクライアント装置から、問い合わせ対象のデバイスドライバーを保持しているかどうかの問い合わせを受信する、問い合わせ受信手段と、
前記問い合わせ受信手段が問い合わせを受信した場合に、前記問い合わせ対象のデバイスドライバーを保持しているかどうかを判断する、判断手段と、
前記判断手段で、前記問い合わせ対象のデバイスドライバーを保持していると判断した場合には、問い合わせをしてきた他のクライアント装置に、前記問い合わせ対象のデバイスドライバーを保持していることを回答する、回答手段と、
前記回答手段で回答した他のクライアント装置から、前記問い合わせ対象のデバイスドライバーを取得する取得要求があった場合に、前記問い合わせ対象のデバイスドライバーを、前記取得要求を送信した他のクライアント装置と共有にして、前記取得要求を送信した他のクライアント装置が前記問い合わせ対象のデバイスドライバーにアクセスできるようにする、共有化手段と、
をさらに備えることを特徴とする請求項１乃至請求項６のいずれかに記載のクライアント装置。
【請求項７】
前記判断手段は、デバイスドライバーが格納されているドライバー用のフォルダーを検索して、このドライバー用のフォルダーに、前記問い合わせ対象のデバイスドライバーのファイルが格納されているか否かにより、前記問い合わせ対象のデバイスドライバーを保持しているかどうかを判断する、ことを特徴とする請求項６に記載のクライアント装置。
【請求項８】
ネットワークを介して他のクライアント装置に接続可能なクライアント装置を制御するためのプログラムであって、
前記クライアント装置が、前記ネットワークを介して、他のクライアントに、特定のデバイスドライバーを保持しているかどうかを問い合わせるステップと、
前記クライアント装置が、前記ネットワークを介して、他のクライアントから、前記問い合わせに対する回答を受信するステップと、
前記クライアント装置が、受信した前記回答に基づいて、最も新しいバージョンの前記特定のデバイスドライバーを保持する他のクライアント装置を特定クライアント装置として特定し、この特定クライアント装置から、前記特定のデバイスドライバーを取得するステップと、
を前記クライアント装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクライアント装置に関し、特に、デバイスドライバーを他のクライアント装置から取得する機能を有するクライアント装置に関する。
【背景技術】
【０００２】
ユーザーが使用するコンピューターなどのクライアント装置からプリンターに印刷を行わせるためには、クライアント装置にプリンタードライバーをインストールする必要がある。プリンタードライバーは、クライアント装置が生成した印刷データに基づいてプリンターで印刷を行う場合に、そのプリンターに対する様々な制御を行うためのソフトウェアである。
【０００３】
このプリンタードライバーは、プリンターメーカーから、ユーザーに供給されるのが一般的である。すなわち、ユーザーがプリンターを購入すると、プリンターとともに、ＣＤ−ＲＯＭなどに格納されたプリンタードライバーも、一緒に梱包されている。ユーザーは、このＣＤ−ＲＯＭから、プリンタードライバーを、自らのクライアント装置にインストールして、クライアント装置とプリンターとの間の制御が適正に行われるようにしている。
【０００４】
しかし、プリンタードライバーは、ソフトウェアであることから、機能の向上を図ったり、バグを解消したりした、新しいバージョンのプリンタードライバーが供給されることもある。このようにバージョンアップがなされた最新のプリンタードライバーをユーザーが取得するためには、プリンターメーカーのホームページにアクセスし、このホームページから最新のプリンタードライバーをクライアント装置にダウンロードする必要があった。
【０００５】
しかし、最新のプリンタードライバーがプリンターメーカーのホームページ上に提供されたとしても、ユーザーは、その存在を知らないまま、従来のプリンタードライバーを使用し続けることも多かった。また、最新のプリンタードライバーがホームページ上に掲載されたことをユーザーが知ったとしても、そのダウンロードはユーザーが能動的に行わなければならず、そのためのクライアント装置の操作が煩雑であるという問題もあった。
【０００６】
このような問題を解決するために、特開２００４−１９９３８７号公報（特許文献１）では、管理パソコンがプリンターに最新のプリンタードライバーを保持させるように管理し、このプリンターにアクセスしてきたクライアント装置に、プリンターから最新のプリンタードライバーを供給する技術を開示している。これにより、クライアント装置は、プリンターから最新のプリンタードライバーを自動的に取得できるようにしている。
【０００７】
しかし、このような仕組みでは、プリンターに最新のバージョンのプリンタードライバーを保持させる必要があり、そのためには、管理パソコンの管理者が絶えず最新のプリンタードライバーを管理パソコンが保持しているように管理しなければならない。このため、管理者の管理負担が大きくなってしまうとともに、管理パソコンを別途設ける必要も生じて複雑なシステムになってしまう。
【０００８】
また、特開２００６−８２５４１号公報（特許文献２）では、クライアント装置においてプリンタードライバーのプロパティーを開くタイミングで、プリンターへ問い合わせを自動的に行い、プリンターの保持するプリンタードライバーのバージョンと、クライアント装置の保持するプリンタードライバーのバージョンとを比較する。そして、プリンターの保持するプリンタードバイバーのバージョンの方が新しい場合には、クライアント装置がプリンターからプリンタードライバーを取得する技術を開示している。
【０００９】
しかし、この仕組みにおいても、プリンターに最新のバージョンのプリンタードライバーを保持させなければならないのは同様である。しかも、特開２００６−８２５４１号公報（特許文献２）では、プリンターに最新のバージョンのプリンタードライバーを保持させるために、プリンターは、インターネットを介して定期的にＷＥＢサーバーにアクセスすることとしており、セキュリティー上、問題がないとは言えない。
【００１０】
このようなドライバーのバージョン管理に対する問題は、プリンターに限らず、スキャナーやプロジェクターなどの周辺デバイスに関するデバイスドライバーであれば、同様に生じ得る。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−１９９３８７号公報
【特許文献２】特開２００６−８２５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
そこで本発明は、前記課題に鑑みてなされたものであり、クライアント装置のデバイスドライバーのバージョン管理を容易に実現することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明に係るクライアント装置は、ネットワークを介して他のクライアント装置に接続可能なクライアント装置であって、
前記ネットワークを介して、他のクライアントに、特定のデバイスドライバーを保持しているかどうかを問い合わせる、問い合わせ手段と、
前記ネットワークを介して、他のクライアントから、前記問い合わせに対する回答を受信する回答受信手段と、
前記回答受信手段で受信した回答に基づいて、最も新しいバージョンの前記特定のデバイスドライバーを保持する他のクライアント装置を特定クライアント装置として特定し、この特定クライアント装置から、前記特定のデバイスドライバーを取得する、ドライバー取得手段と、
を備えることを特徴とする。
【００１４】
この場合、前記問い合わせ手段が行う問い合わせには、前記特定のデバイスドライバーを用いるデバイスを特定する情報が含まれているようにしてもよい。
【００１５】
また、前記受信手段が受信する回答には、前記特定のデバイスドライバーのバージョンを特定する情報が含まれているようにしてもよい。
【００１６】
また、前記ドライバー取得手段は、
前記特定クライアント装置に、前記ネットワークを介して、デバイスドライバーの取得を要求する取得要求を送信した後、
前記特定クライアント装置の所定のフォルダーをアクセスし、この所定のフォルダーから、前記特定のデバイスドライバーのファイルを取得するようにしてもよい。
【００１７】
また、前記デバイスドライバーは、プリンター用のプリンタードライバーであり、
前記所定のタイミングは、当該クライアント装置において、前記プリンター用のプリンターキューを作成した際であるようにしてもよい。
【００１８】
また、クライアント装置は、前記ネットワークを介して、他のクライアント装置から、問い合わせ対象のデバイスドライバーを保持しているかどうかの問い合わせを受信する、問い合わせ受信手段と、
前記問い合わせ受信手段が問い合わせを受信した場合に、前記問い合わせ対象のデバイスドライバーを保持しているかどうかを判断する、判断手段と、
前記判断手段で、前記問い合わせ対象のデバイスドライバーを保持していると判断した場合には、問い合わせをしてきた他のクライアント装置に、前記問い合わせ対象のデバイスドライバーを保持していることを回答する、回答手段と、
前記回答手段で回答した他のクライアント装置から、前記問い合わせ対象のデバイスドライバーを取得する取得要求があった場合に、前記問い合わせ対象のデバイスドライバーを、前記取得要求を送信した他のクライアント装置と共有にして、前記取得要求を送信した他のクライアント装置が前記問い合わせ対象のデバイスドライバーにアクセスできるようにする、共有化手段と、
をさらに備えるようにしてもよい。
【００１９】
この場合、前記判断手段は、デバイスドライバーが格納されているドライバー用のフォルダーを検索して、このドライバー用のフォルダーに、前記問い合わせ対象のデバイスドライバーのファイルが格納されているか否かにより、前記問い合わせ対象のデバイスドライバーを保持しているかどうかを判断するようにしてもよい。
【００２０】
本発明に係るプログラムは、ネットワークを介して他のクライアント装置に接続可能なクライアント装置を制御するためのプログラムであって、
前記クライアント装置が、前記ネットワークを介して、他のクライアントに、特定のデバイスドライバーを保持しているかどうかを問い合わせるステップと、
前記クライアント装置が、前記ネットワークを介して、他のクライアントから、前記問い合わせに対する回答を受信するステップと、
前記クライアント装置が、受信した前記回答に基づいて、最も新しいバージョンの前記特定のデバイスドライバーを保持する他のクライアント装置を特定クライアント装置として特定し、この特定クライアント装置から、前記特定のデバイスドライバーを取得するステップと、
を前記クライアント装置に実行させることを特徴とする。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るデバイスドライバー管理システムの全体構成を示すブロック図。
【図２】図１のクライアント装置の内部構成の一例を示すブロック図。
【図３】図１のデバイスドライバー管理システムで行われるデバイスドライバー管理取得処理の内容の一例を説明するためのフローを示す図。
【図４】図１のクライアント装置で実行されるドライバー検索処理の内容の一例を説明するためのフローチャートを示す図。
【図５】図１のクライアント装置で実行されるドライバー情報回答処理の内容の一例を説明するためのフローチャートを示す図。
【図６】図１のクライアント装置で実行されるドライバー提供処理の内容の一例を説明するためのフローチャートを示す図。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の一実施形態を説明する。なお、以下に説明する実施形態は、本発明の技術的範囲を限定するものではない。
【００２３】
図１は、本実施形態に係るデバイスドライバー管理システム１０の全体構成を示すブロック図である。この図１に示すように、本実施形態に係るデバイスドライバー管理システム１０は、ネットワーク１２に接続された、１又は複数のクライアント装置１４と、１又は複数のプリンター１６とを備えて、構成されている。この図１の例では、３台のクライアント装置１４Ａ〜１４Ｃが、ネットワーク１２に接続されており、１台のプリンター１６が、ネットワーク１２に接続されている。本実施形態においては、ネットワーク１２には複数のクライアント装置１４が接続されていることが前提であるが、ネットワーク１２に接続されているプリンター１６の台数は任意である。
【００２４】
本実施形態においては、ネットワーク１２は、例えば、ＴＣＰ／ＩＰの規格に準拠しており、このネットワーク１２に、同じくＴＣＰ／ＩＰの規格に準拠したクライアント装置１４とプリンター１６とが接続されている。クライアント装置１４は、プリンター１６に情報を送信したり、プリンター１６から情報を受信したりするクライアントの一例であり、例えば、パーソナルコンピューターやＰＤＡ（Personal Digital Assistant）などにより構成されている。プリンター１６は、クライアント装置がデバイスドライバーを用いて、クライアント装置１４から情報を送信したり、クライアント装置１４に情報を送信したりするデバイスの一例である。
【００２５】
図２は、本実施形態に係るクライアント装置１４の内部構成の一例を示すブロック図である。この図２に示すように、本実施形態に係るクライアント装置１４は、ＣＰＵ（Central Processing Unit）２０と、ＲＡＭ（Random Access Memory）２２と、ＲＯＭ（Read Only Memory）２４と、ハードディスクドライブ２６と、ユーザーインターフェース２８と、表示画面３０と、通信インターフェース３２とを備えて構成されている。これらＣＰＵ２０と、ＲＡＭ２２と、ＲＯＭ２４と、ハードディスクドライブ２６と、ユーザーインターフェース２８と、表示画面３０と、通信インターフェース３２とは、内部バス３４を介して相互に接続されている。
【００２６】
ＣＰＵ２０は、このクライアント装置１４の全体的な制御を行う制御部を構成する。特に、本実施形態においては、ＣＰＵ２０は、クライアント装置１４が出力情報である印刷データを、ネットワーク１２を介してプリンター１６に送信し、印刷を行うための制御を行う。この制御を行うにあたり、ＣＰＵ２０は、このクライアント装置１４の保持するプリンタードライバーを用いて、プリンター１６に指示を送信したり、プリンター１６から得た情報をユーザーに提供したりして、快適な印刷環境をユーザーに提供する。また、ＣＰＵ２０は、このクライアント装置１４で行われる各種の制御を実現するにあたり、必要なプログラムをＲＯＭ２４やハードディスクドライブ２６から読み込んだり、生成されたデータをＲＡＭ２２に書き込んだりする。
【００２７】
ハードディスクドライブ２６は、いわゆる大容量の補助記憶装置を構成しており、プログラムの他、代表的な出力情報である印刷データなども不揮発的に記憶される。ユーザーインターフェース２８は、ユーザーがこのクライアント装置１４に各種の情報や指示を入力するためのインターフェースである。例えば、このユーザーインターフェースは、キーボードやマウスなどにより、構成されている。
【００２８】
表示画面３０は、クライアント装置１４が各種の情報を表示するための画面である。例えば、この表示画面３０は、ＬＣＤ（Liquid Crystal Display）装置により構成されていてもよいし、ＣＲＴ（Cathode Ray Tube）装置により構成されていてもよい。また、図２では、表示画面３０は、このクライアント装置１４の本体に一体に設けられている場合を図示しているが、表示画面３０はクライアント装置１４の本体とは別個に設けられるようにしてもよい。この場合、クライアント装置１４の本体と表示画面３０との間は、ケーブル等により接続されることとなる。
【００２９】
通信インターフェース３２は、クライアント装置１４をネットワーク１２に接続するためのインターフェースである。本実施形態においては、この通信インターフェース３２は、ＴＣＰ／ＩＰのプロトコルに準拠しており、ネットワーク１２を介して、プリンター１６に出力情報である印刷データを送信することができるように構成されている。
【００３０】
次に、本実施形態に係るデバイスドライバー管理システム１０で実行されるデバイスドライバー管理取得処理を説明する。図３は、このデバイスドライバー管理取得処理で、クライアント装置１４の間でなされるやり取りを説明するためのフローを示している。
【００３１】
また、図４は、本実施形態に係るクライアント装置１４で実行されるドライバー検索処理の内容を説明するためのフローチャートを示す図である。このドライバー検索処理は、クライアント装置１４で任意のタイミングで実行される処理である。例えば、このドライバー検索処理は、１日に１回、１０日に一回というように、定期的に起動させるようにしてもよい。或いは、新たにプリンター１６が導入された際にクライアント装置１４でプリンターキューを生成したときに、そのプリンター１６に対応するプリンタードライバーを取得するために、起動されるようにしてもよい。
【００３２】
また、このドライバー検索処理は、クライアント装置１４のＣＰＵ２０が、ＲＯＭ２４又はハードディスクドライブ２６に格納されているドライバー検索処理プログラムを読み込んで実行することにより、実現される処理である。以下の説明では、特に、クライアント装置１４Ａで、このドライバー検索処理が起動され、クライアント装置１４Ｂからプリンタードライバーを取得する場合を想定して、説明をする。
【００３３】
これら図３及び図４に示すように、このドライバー検索処理が起動されると、まず、クライアント装置１４Ａは、ネットワーク１２を介して、他のクライアント装置１４に対して問い合わせを行う（ステップＳ１０）。具体的には、クライアント装置１４Ａは、取得しようとしているプリンタードライバーのプリンターを特定する情報であるプリンター特定情報を含む問い合わせを行う。この問い合わせは、ブロードキャスト通信を用いて、ネットワーク１２上にある他のクライアント装置１４に対して、一斉に行われ、プリンター特定情報で特定されるプリンターのプリンタードライバーを持っている場合には、そのバージョンを特定する情報であるバージョン情報を回答するように要求する。ここでは、プリンター１６のプリンタードライバーを取得しようとしている場合を想定する。
【００３４】
プリンター特定情報には、種々のものが考えられるが、例えば、プリンター１６の機種名や、プリンター１６のプリンターキュー名など、プリンター１６固有の様々な情報を用いることができる。ここでは、プリンター１６の機種名を用いる場合を例にして、以下の説明を行う。また、同一の機種でもプリンター毎に個別に特定する必要がある場合には、プリンター１６のＭＡＣアドレス（Media Access Control address）や、プリンター１６のシリアル番号を用いるようにすることもできる。
【００３５】
なお、ＴＣＰ／ＩＰ規格では、ネットワーク１２上の同一セグメント内にある他のクライアント装置１４に対しては、特定の相手を指定せずともパケットを送信できるブロードキャスト通信がサポートされている。本実施形態では、このブロードキャスト通信を用いて、プリンタードライバーのバージョンの問い合わせを行うのである。図１の例では、この問い合わせは、クライアント装置１４Ｂ、１４Ｃで受信されるとする。
【００３６】
次に、クライアント装置１４Ａは、他のクライアント装置１４から回答を取得する（ステップＳ１２）。具体的には、ネットワーク１２上の同一セグメント内にある他のクライアント装置１４から、回答を受信し、そのクライアント装置１４が保持するプリンタードライバーのバージョン情報を取得する。
【００３７】
本実施形態においては、他のクライアント装置１４は、問い合わせに含まれているプリンター特定情報と合致するプリンターのプリンタードライバーを保持している場合に、そのバージョン情報を、問い合わせをしたクライアント装置１４Ａに回答することとしている。したがって、問い合わせに含まれているプリンター特定情報と合致するプリンターのプリンタードライバーを保持していない場合には、回答をしない。但し、保持していないことを問い合わせのあったクライアント装置１４Ａに回答するようにしてもよい。
【００３８】
次に、クライアント装置１４Ａは、他のクライアント装置１４から取得できた回答の中で、自らが保持するプリンター１６のプリンタードライバーのバージョン情報よりも新しいバージョン情報を含む回答が、いくつあるかを判断する（ステップＳ１４）。すなわち、クライアント装置１４Ａ自体が保持するプリンター１６のプリンタードライバーのバージョン情報と、受信した回答に含まれているバージョン情報とを比較して、自らが保持するプリンタードライバーのバージョンよりも新しいバージョンを保持するという回答の数をカウントする。
【００３９】
その結果、自らが保持するプリンター１６のプリンタードライバーのバージョンよりも新しいバージョンを保持するという回答の数がゼロである場合には、クライアント装置１４Ａは、このドライバー検索処理を終了する。すなわち、他のクライアント装置１４Ａから、プリンタードライバーを取得しても、プリンタードライバーのバージョンは新たらしいものにはならないため、このドライバー検索処理を終了する。
【００４０】
一方、自らが保持するプリンタードライバーのバージョンよりも新しいバージョンを保持するという回答の数が２個以上の場合には、クライアント装置１４Ａは、最も新しいプリンタードライバーのバージョンを回答してきたクライアント装置１４を特定する（ステップＳ１６）。
【００４１】
このステップＳ１６の後、或いは、自らが保持するプリンタードライバーのバージョンよりも新しいバージョンを保持するという回答の数が１個であるとステップＳ１４で判断した場合には、クライアント装置１４は、ネットワーク１２を介してドライバー取得要求を送信する（ステップＳ１８）。具体的には、ステップＳ１６において、最も新しいプリンタードライバーのバージョンを回答してきたクライアント装置１４を特定した場合には、その特定した他のクライアント装置１４に、ドライバー取得要求を送信する。一方、クライアント装置１４Ａが保持するプリンタードライバーのバージョンよりも新しいバージョンを保持するという回答の数が１個である場合には、その回答をしてきたクライアント装置１４に、ドライバー取得要求を送信する。ここでは、クライアント装置１４Ｂに対して、このドライバー取得要求を送信したと仮定する。
【００４２】
次に、クライアント装置１４Ａは、ドライバー取得要求を送信したクライアント装置１４Ｂから、プリンタードライバー取得の準備が完了したことを示す準備完了通知を受信したかどうかを判断する（ステップＳ２０）。この準備完了通知を受信していない場合には、クライアント装置１４Ａは、準備完了通知を受信するまで待機する。
【００４３】
そして、この準備完了通知を受信した場合には、クライアント装置１４Ａは、クライアント装置１４Ｂにアクセスし、クライアント装置１４Ｂの保持するプリンター１６のプリンタードライバーを取得する（ステップＳ２２）。本実施形態においては、クライアント装置１４Ｂのハードディスクドライブ２６内に形成されているホルダーの１つに、プリンター１６のプリンタードライバーのファイルが格納されており、また、このフォルダーがクライアント装置１４Ａもアクセスできる共有ホルダーになっている。このため、クライアント装置１４Ａは、このクライアント装置１４Ｂの共有ホルダーにアクセスし、プリンター１６のプリンタードライバーのファイルを取得する。プリンター１６のプリンタードライバーが複数のファイルで構成されている場合には、共有ホルダーに複数のファイルがあるので、これらすべてのファイルを取得する。クライアント装置１４Ａは、取得したプリンタードライバーを、例えばハードディスクドライブ２６に格納しておく。
【００４４】
クライアント装置１４Ｂからプリンタードライバーを取得し終えたクライアント装置１４Ａは、ネットワーク１２を介して、クライアント装置１４Ｂに、取得完了通知を送信する（ステップＳ２４）。
【００４５】
そして、クライアント装置１４Ａは、取得したプリンタードライバーのインストールを行う（ステップＳ２６）。すなわち、クライアント装置１４Ａが現在使用しているプリンタードライバーを削除し、新たに取得したプリンタードライバーをハードディスクドライブ２６から読み込んで、クライアント装置１４Ａで使用できる状態にする。これにより、本実施形態に係るドライバー検索処理は終了する。
【００４６】
図５は、本実施形態に係るデバイスドライバー管理取得処理において、クライアント装置１４で実行されるドライバー情報回答処理を説明するためのフローチャートを示す図である。このドライバー情報回答処理は、ネットワーク１２を介して、他のクライアント装置１４から問い合わせを受けた場合に起動される処理である。すなわち、上述したステップＳ１０の処理により、他のクライアント装置１４から、自らが保持するプリンタードライバーのバージョンに関する問い合わせを受けた場合に、起動される処理である。
【００４７】
また、このドライバー情報回答処理は、クライアント装置１４のＣＰＵ２０が、ＲＯＭ２４又はハードディスクドライブ２６に格納されているドライバー情報回答処理プログラムを読み込んで実行することにより、実現される処理である。以下の説明では、特に、クライアント装置１４Ａからの問い合わせにより、クライアント装置１４Ｂ、１４Ｃのそれぞれで、このドライバー情報回答処理が起動された場合を想定して、説明をする。
【００４８】
この図５及び上述した図３に示すように、このドライバー情報回答処理が起動されると、まず、クライアント装置１４Ｂ、１４Ｃは、問い合わせ対象のプリンタードライバーを保持しているかどうかを判断する（ステップＳ４０）。本実施形態においては、ハードディスクドライブ２６において、各種ドライバーが格納されているフォルダーを検索し、問い合わせに含まれているプリンター特定情報で特定されるプリンターのプリンタードライバーを保持しているかどうかを判断する。プリンタードライバーが格納されているフォルダーは、一般に、クライアント装置１４で定まっていることが多い。特に、オペレーティングシステムとして、Windows OS（登録商標）を用いている場合には、「ドライバーストア」というフォルダーを、検索する。Windows OSにおいては、この「ドライバーストアー」内には、プリンター毎にプリンタードライバーがまとまって格納されており、他のクライアント装置１４にプリンタードライバーを提供するのに都合が良いからである。
【００４９】
但し、プリンタードライバーを構成するファイルが１つのフォルダーにまとまっていない場合には、これら離散して存在するファイルを１つ１つ検索して、問い合わせのあったプリンターのプリンタードライバーを保持しているか否かを判断するようにしてもよい。
【００５０】
問い合わせ対象のプリンターのプリンタードライバーを保持していると判断した場合（ステップＳ４０：ＹＥＳ）には、クライアント装置１４Ｂ、１４Ｃは、そのプリンタードライバーのバージョンを特定し、このバージョンを特定する情報であるバージョン情報を含んだ回答を、問い合わせのあったクライアント装置１４Ａに送信する（ステップＳ４２）。一方、問い合わせ対象のプリンターのプリンタードライバーを保持していないと判断した場合（ステップＳ４０：ＮＯ）には、クライアント装置１４Ｂ、１４Ｃは、このステップＳ４２をスキップする。
【００５１】
本実施形態においては、クライアント装置１４Ｂとクライアント装置１４Ｃの双方で、問い合わせ対象のプリンターのプリンタードライバーを保持しており、このため、ステップＳ４２において、クライアント装置１４Ｂ、１４Ｃがともに、バージョン情報を含む回答を、クライアント装置１４Ａに送信したと仮定する。但し、クライアント装置１４Ｂの保持するプリンタードライバーのバージョンの方が、クライアント装置１４Ｃの保持するプリンタードライバーのバージョンよりも、新しいものであったと仮定する。
【００５２】
これにより、問い合わせを受けたクライアント装置１４で実行される、ドライバー情報回答処理が終了する。
【００５３】
図６は、本実施形態に係るデバイスドライバー管理取得処理において、クライアント装置１４で実行されるドライバー提供処理を説明するためのフローチャートを示す図である。このドライバー提供処理は、ネットワーク１２を介して、他のクライアント装置１４からドライバー取得要求を受けた場合に起動される処理である。すなわち、上述したステップＳ１８の処理により、他のクライアント装置１４から、ドライバー取得要求を受信したクライアント装置１４で、起動される処理である。
【００５４】
また、このドライバー提供処理は、クライアント装置１４のＣＰＵ２０が、ＲＯＭ２４又はハードディスクドライブ２６に格納されているドライバー提供処理プログラムを読み込んで実行することにより、実現される処理である。以下の説明では、クライアント装置１４Ａからのドライバー取得要求により、クライアント装置１４Ｂで、このドライバー提供処理が起動された場合を想定して、説明をする。
【００５５】
この図６及び上述した図３に示すように、このドライバー提供処理が起動されると、まず、クライアント装置１４Ｂは、指定されたプリンタードライバーを、ハードディスクドライブ２６から取得する（ステップＳ５０）。本実施形態においては、クライアント装置１４Ａから送信されたドライバー取得要求に、取得を要求するプリンタードライバーを特定する情報が含まれている。このプリンタードライバーを特定する情報は、上述したように、プリンターを特定するためのプリンター特定情報を用いてもよいし、プリンタードライバーを何らかの方法で直接指定する情報を用いてもよい。
【００５６】
次に、クライアント装置１４Ｂは、ステップＳ５０で取得したプリンタードライバーのファイルを、ドライバー取得要求を送信したクライアント装置１４Ａと共有できるようにする（ステップＳ５２）。具体的には、クライアント装置１４Ｂは、ハードディスクドライブ２６に新しい共有ホルダーを１つ作成し、この共有フォルダーに、ステップＳ５０で取得したプリンタードライバーのファイルをコピーして格納する。プリンタードライバーのファイルは、必ずしも１つであるとは限らず、複数のファイルで構成されていることもある。このような場合には、プリンタードライバーを構成する複数のファイルを、この共有フォルダーにコピーして格納しておく。
【００５７】
次に、クライアント装置１４Ｂは、クライアント装置１４Ａから、取得完了通知を受信したかどうかを判断する（ステップＳ５６）。すなわち、ステップＳ５４で共有化したファイルを、上述したステップＳ２２においてクライアント装置１４Ａが取得し終えた場合には、ステップＳ２４を実行して、取得完了通知を送信してくる。このため、クライアント装置１４Ｂは、このクライアント装置１４Ａからの取得完了通知の受信を待つのである。
【００５８】
この取得完了通知を受信したクライアント装置１４Ｂは、ステップＳ５２で生成したプリンタードライバーのファイルの共有を終了する（ステップＳ５８）。具体的には、ステップＳ５２でコピーしたプリンタードライバーのファイルを削除し、このプリンタードライバーを格納していた共有フォルダーも削除する。これにより、本実施形態に係るドライバー提供処理を終了する。
【００５９】
以上のように、本実施形態に係るデバイスドライバー管理システム１０によれば、プリンター１６のプリンタードライバーに関する特定の管理者が存在せずとも、ネットワーク１２上で１台のクライアント装置１４が最新のプリンタードライバーを保持しているだけで、他のクライアント装置１４もこれを自動的に取得できる。このため、各クライアント装置１４のユーザーが、プリンター１６を製造したプリンターメーカーのホームページから新しいバージョンのプリンタードライバーをダウンロードしてクライアント装置１４にインストールしたり、新しいバージョンのプリンタードライバーが格納されたＣＤ−ＲＯＭを取得してクライアント装置１４にインストールしたりする必要が無くなる。このため、各クライアント装置１４のユーザーのプリンタードライバーに関する維持管理の手間を大幅に軽減することができる。
【００６０】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、デバイスドライバー管理システム１０で管理し配信するデバイスドライバーがプリンタードライバーである場合を例に本発明を説明したが、デバイスドライバー管理システム１０で管理し配信するデバイスドライバーは、プリンタードライバーに限るものではない。例えば、スキャナー用のスキャナードライバーや、プロジェクター用のプロジェクタードライバーなどを、このデバイスドライバー管理システム１０で管理し配信するようにしてもよい。
【００６１】
また、上述した実施形態では、クライアント装置１４は、問い合わせをする側の処理である図４のドライバー検索処理を実行するとともに、問い合わせを受ける側の処理である図５のドライバー情報回答処理と図６のドライバー提供処理のいずれをも実行するとしたが、どちらか一方だけを実行できるようにしてもよい。すなわち、クライアント装置１４は、問い合わせをする側の処理である図４のドライバー検索処理は実行するが、問い合わせを受ける側の処理である図５のドライバー情報回答処理と図６のドライバー提供処理は実行しないようにすることもできる。このようなクライアント装置１４は、新しいバージョンのプリンタードライバーを取得することはあっても、提供することはないこととなる。或いは、クライアント装置１４は、問い合わせをする側の処理である図４のドライバー検索処理は実行しないが、問い合わせを受ける側の処理である図５のドライバー情報回答処理と図６のドライバー提供処理は実行するようにすることもできる。このようなクライアント装置１４は、新しいバージョンのプリンタードライバーを提供することはあっても、他のクライアント装置１４からの自動的取得はしないこととなる。
【００６２】
また、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ、メモリーカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録されたプログラムをクライアント装置１４に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【００６３】
また、クライアント装置１４は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、クライアント装置１４の備える他のプログラムを活用するために、そのクライアント装置１４が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を含むプログラムを、記録媒体に記録するようにしてもよい。
【００６４】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、クライアント装置１４に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【００６５】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだクライアント装置１４は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【００６６】
また、上述した実施形態では、各処理をソフトウェアにより実現する場合を例に説明したが、これらの各処理をＡＳＩＣ（Application Specific IC）などのハードウェアにより実現するようにしてもよい。さらには、これらの各処理を、ソフトウェアとハードウェアとが協働して実現するようにしてもよい。
【符号の説明】
【００６７】
１０  デバイスドライバー管理システム
１２  ネットワーク
１４（１４Ａ、１４Ｂ、１４Ｃ）  クライアント装置
２０  ＣＰＵ
２２  ＲＡＭ
２４  ＲＯＭ
２６  ハードディスクドライブ
２８  ユーザーインターフェース
３０  表示画面
３２  通信インターフェース
【図１】
2010170380.tif 000003
【図２】
2010170380.tif 000004
【図３】
2010170380.tif 000005
【図４】
2010170380.tif 000006
【図５】
2010170380.tif 000007
【図６】
2010170380.tif 000008