情報処理装置、情報処理装置の制御方法、インストール方法及びコンピュータプログラム
【課題】ネットワークに接続されたデバイスについてPnPXを実行することを契機として、デバイスの機能を使用可能にするドライバをインストールする。
【解決手段】PC1が、ネットワーク4に複合機3が接続されたことを認識し、認識されたデバイスが有する情報機器に対応する第1のドライバをPC1インストールする。PC1が、上記デバイスの機能を使用可能にする第2のドライバをPC1にインストールする追加インストーラを、第1のドライバをPC1にインストールしたことを契機としてIHV用Webサーバ100から取得する。そして、追加インストーラが、PC1に第2のドライバのインストールが必要であるかを判断し、PC1に第2のドライバのインストールが必要である場合に、第2のドライバをPC1にインストールする。
【解決手段】PC1が、ネットワーク4に複合機3が接続されたことを認識し、認識されたデバイスが有する情報機器に対応する第1のドライバをPC1インストールする。PC1が、上記デバイスの機能を使用可能にする第2のドライバをPC1にインストールする追加インストーラを、第1のドライバをPC1にインストールしたことを契機としてIHV用Webサーバ100から取得する。そして、追加インストーラが、PC1に第2のドライバのインストールが必要であるかを判断し、PC1に第2のドライバのインストールが必要である場合に、第2のドライバをPC1にインストールする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、インストール方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータ(以下、PCとも記述)のオペレーティングシステム(以下OSとも記述)で情報機器を扱えるようにするためには、その情報機器をOS上で使うためのドライバを、OS上にインストールしなくてはならない。このドライバのインストール方法の一つとして、Plug and Play Extensions(以下、PnPXと記述)がある(非特許文献1、2を参照)。PnPXは、Windows(登録商標)VistaOSに標準搭載されている機能であり、ユーザの命令を受けて、ネットワーク上に存在する情報機器のドライバをOSが独自の手法で取得し、インストールする技術である。また、PnPXには、Web Services on Devices(以下WSD)という、ネットワーク上の情報機器をOSが見つけるための仕組みが使われる(非特許文献3を参照)。また、PnPXを行う際に、OSがドライバを取得する方法には、PC上のハードディスク内を検索して取得する方法と、インターネット上に設置されたOS専用のWebサーバから取得する方法などがある。なお、情報機器には、見た目は一つの情報機器に見えても、内部的には複数の情報機器から構成されているものが存在する。例えば、見た目は一つの情報機器だが、内部的にはプリンタやスキャナ、FAXなどの情報機器を搭載しているものがある。このような情報機器をMulti Function Printerや複合機と称することもある。
【0003】
上記複合機に対してPnPXが発生した場合、内部的に存在する複数の情報機器のそれぞれについて、ドライバが必要である。例えば、プリンタとスキャナが内部的に搭載されている複合機であれば、プリンタ用ドライバとスキャナ用ドライバという2種類のドライバがPnPXによってインストールされる。ここで、ドライバは、開発者とその配布方法を主眼におくと、以下のような三種類に分類することができる。一つ目は、OS開発会社が情報機器の最低限の機能が使えるように開発したOS標準ドライバである。プリンタやFAXなど、多くの一般的な情報機器には、このOS標準ドライバが用意されている。二つ目は、情報機器の全ての機能をOS上で使えるように、情報機器開発会社(IHV)が独自に開発したフルスペックドライバである。IHVは、Independent Hardware Vendorの略語である。一般的に、OS標準ドライバには、必要最低限の機能しか搭載されていないため、各IHVが情報機器に実装した独自の機能を使用できない。従って、フルスペックドライバをインストールすることが望ましい。しかし、一般的には、ユーザはフルスペックドライバを自ら探して手に入れる必要があり、手間がかかる。また、どのような手段でフルスペックドライバを取得すれば良いのか、ユーザが知ることが難しい場合もある。さらには、複合機の場合、内蔵されている情報機器の数に応じて、複数のドライバを取得する必要があり、これも一般のユーザが理解することは困難である。三つ目は、前述のユーザがフルスペックドライバを取得することが困難であるという問題を解決するため、IHVからOS開発会社に提供される、OS提供用ドライバである。OS開発会社は、提供されたOS提供用ドライバを、OSが認識できる場所に保存しておくことで、OSがPnPX時にIHV製のOS提供用ドライバをインストールできるようにする。
【0004】
OS提供用ドライバには制限が設けられることが多い。その制限の代表的な例としては、容量制限がある。OS提供用ドライバは、主にPCのハードディスク上に保存されたり、インターネット上に設置されたOS専用のWebサーバに保存されたりすることが多い。しかし、あらゆる情報機器のIHV製のフルスペックドライバを上記ハードディスクやOS専用のWebサーバに保存してしまうと、膨大な容量が必要になり、PCやWebサーバにとって大きな負担となってしまう。そこで、ドライバの容量に制限が設けられることがある。この容量制限を満たすため、OS提供用ドライバは、フルスペックドライバより機能が削られてしまう場合がある。従って、OS提供用ドライバがインストールされてしまうことにより、ユーザは情報機器の全ての機能を使えなくなってしまうという問題が発生する。この問題に対処するため、OSがIHVによって開発されたPnPXモジュールを実行してフルスペックドライバをダウンロード及びインストールする技術が提案されている。例えば、特許文献1は、WSDモジュールによって発見したプリンタの性能情報と、現在インストールしているプリンタの性能情報のうち、いずれが優位かを判定し、判定結果に従ってドライバをインストールするプログラムを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−27006号公報
【非特許文献】
【0006】
【非特許文献1】マイクロソフト株式会社," 探索テクノロジ : PnPX",[online],Windows Hardware Developer Center ,インターネットURL :(http://www.microsoft.com/japan/whdc/connect/rally/rallyPnpx.mspx 〉
【非特許文献2】マイクロソフト株式会社,Building Develoyable Device Driver Package" [online],Windows Hardware Developer Center ,インターネットURL :http://download.microsoft.com/download/a/f/d/afdfd50d-6eb9-425e-84e1-b4085a80e34e/DVR-T393_WH07.pptx 〉
【非特許文献3】Windows Rally テクノロジ,インターネットURL :http://www.microsoft.com/japan/windows/marketplace/rally/rallyfeatures.aspx
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、ユーザがデバイスのフルスペックドライバを自ら探して手に入れることは困難である。また、特許文献1が開示するような技術では、ユーザが、フルスペックドライバを自ら探す代わりに、IHV製PnPXモジュールを別途手に入れる必要がある。しかし、ユーザがIHV製PnPXモジュールをどのような場所から、どうやって入手するかを認識することは困難である。
本発明は、ネットワークに接続されたデバイスについてPnPXを実行することを契機として、デバイスの機能を使用可能にするドライバをインストールする情報処理装置の提供を目的とする。
【課題を解決するための手段】
【0008】
本発明の一実施形態の情報処理装置は、ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識手段と、前記ネットワークにデバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段とを備える。前記第1インストール手段は、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、前記第2インストール手段は、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする。
【発明の効果】
【0009】
本発明によれば、ネットワークに接続されたデバイスについてPnPXが実行されることを契機として、デバイスの機能を使用可能にするドライバを情報処理装置にインストールすることができる。従って、例えば、ユーザは、使用したいデバイスのドライバを自ら探すことなく、プラグアンドプレイを行うだけで、このデバイスのフルスペックドライバを情報処理装置にインストールさせることが可能となる。
【図面の簡単な説明】
【0010】
【図1】第1の実施形態のシステム構成例を示す図である。
【図2】PCと複合機のハードウェア構成例を示す図である。
【図3】PCのソフトウェア構成例を表す図である。
【図4】NMが表示する画面の例を示す図である。
【図5】WSDiscoveryメッセージの例である。
【図6】PnPXの実行時に発行される情報機器の情報を示す図(1)である。
【図7】PnPXの実行時に発行される情報機器の情報を示す図(2)である。
【図8】追加インストーラの構成とフルスペックドライバ表の例を示す図である。
【図9】PCの全体動作処理フローの例を示す図である。
【図10】後処理の呼び出し処理を説明するフローチャートである。
【図11】追加インストーラの実行処理を説明するフローチャート(1)である。
【図12】第2の実施形態の情報処理装置の構成例を示す図である。
【図13】追加インストーラの構成例とドライバ部品表の例を示す図である。
【図14】ドライバ機能一覧表とアプリ機能表の例を示す図である。
【図15】追加インストーラの実行処理を説明するフローチャート(2)である。
【図16】必須機能表の例を示す図である。
【発明を実施するための形態】
【0011】
以下に、添付図面を参照して本実施形態について説明する。なお、本実施形態は、本発明を限定するものではない。また、本実施形態で説明されている特徴の組み合わせの全てが、本発明の必須の構成要素とは限らない。また、以下で引用するWindows(登録商標)Vista OSに関する技術のうち、特に説明していない技術は、http://msdn.microsoft.com/ja−jp/default.aspxにおいて開示されている。
【0012】
図1は第1の実施形態のシステム構成例を示す図である。図1に示すシステムは、PC(Personal Computer )1と、複合機3と、IHV用Webサーバ100とを備える。PC1と複合機3とIHV用Webサーバ100とは、ネットワーク4を介して互いに接続されている。ネットワーク4は、例えばEthernet(登録商標)で構成される。PC1は、本実施形態の情報処理装置である。PC1は、図2(A)を参照して後述するようなハードウェア構成を有し、OSとして、例えば米国マイクロソフト社のWindows(登録商標)Vistaと同等のOSがインストールされている。図1に示す例では、PC1は、スキャナドライバ50、プリンタドライバ70、ネットワークモニタ80を備える。プリンタドライバ70は、複合機3が備えるプリンタ122の機能を使用するためのプログラムである。スキャナドライバ50は、複合機3が備えるスキャナ121の機能を使用するためのプログラムである。ネットワークモニタ(NM)80は、ネットワーク4に接続された、デバイス(例えば複合機3)やPC1以外のPC等を表示するプログラムである。
【0013】
複合機3は、本実施形態のデバイスであり、情報機器としてプリンタ122とスキャナ121とを備える。複合機3は、例えばXXX社製のCというモデル名の複合機である。本実施形態のデバイスが、プリンタ122、スキャナ121以外の任意の情報機器(例えば、複写機、ファクシミリ、デジタルカメラ等)を備えるようにしてもよい。複合機3は図2(B)で後述するようなハードウェアで構成され、PC1とネットワーク4を介して双方向通信可能に接続されている。IHV用Webサーバ100は、Web141上に設けられている。IHV用Webサーバ100は、情報機器開発会社(IHV)が利用又は管理するWebサーバである。本実施形態のシステムが、IHV用Webサーバ100の代わりに、ネットワーク4を介してPC1等の情報処理装置に対して該情報処理装置から要求されたソフトウェアを提供できる任意のサーバを備えるようにしてもよい。図2(A)に示すPC1のハードウェア構成と同様のハードウェア構成を有する。IHV用Webサーバ100は、IHVが開発した情報機器用に、追加インストーラ131、プリンタドライバ132、スキャナドライバ133、アプリケーション134、ドライバ部品135を備える。
【0014】
図2は、PCと複合機のハードウェア構成例を示す図である。図2(A)は、PC1のハードウェア構成例を示す。PC1はランダムアクセスメモリ(RAM)1201、ハードディスクドライブ(HDD)1202、キーボード(KBD)1203、マウス(MOUSE)1208を備える。また、PC1は、CPU(Central Processing Unit)1204、LCD(Liquid Crystal Display)1205、ネットワークボード(NB)1207を備える。CPU1204は、PC1全体を制御する。具体的には、CPU1204は、HDDに記憶されたコンピュータプログラムをRAM1201上に読み出し、このコンピュータプログラムを実行する。このコンピュータプログラムは、本実施形態の情報処理装置の制御方法を実現するプログラムである。PC1が、HDD1202の代わりに、可搬性CD−ROM又は内部据付のROM(Read Only Memory)等を備えるようにしてもよい。KBD1203、MOUSE1208は、ユーザの操作に応じた情報を入力する。NB1207はPC1と複合機3との通信を制御する。図2(A)に示すPC1が備える構成部は、互いにバス1206を介して接続されている。
【0015】
図2(B)は、複合機3のハードウェア構成例を示す。複合機3は、CPU15、ROM16、RAM17、通信部18、記録部19、操作部20、表示部21、画像取得部22を備える。CPU15が、複合機3全体を制御する。具体的には、CPU15が、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19、操作部20、表示部21、画像取得部22を制御する。ROM16には、PC1が備えるプリンタドライバ70の制御に従って、記録(印刷)処理を行ったり、複合機3の状態をPC1へ通知する処理を行ったりするプログラムが記憶されている。また、ROM16には、PC1が備えるスキャナドライバ50の制御に従って複合機3が画像取得部22より画像を取得する処理や、取得画像をPC1へ伝える処理を行うプログラムも記憶されている。また、ROM16には、複合機3が備える情報機器であるプリンタ122、スキャナ121の各々に対応するIHV製ドライバ(第1のドライバ)が予め記憶されている。RAM17には、PC1から送信されて記録部19によって印刷される印字データが一時的に記憶される。RAM17に、画像取得部22により取得された画像データが一時的に記憶されるようにしてもよい。
【0016】
通信部18は、ネットワーク4用の接続ポートを備える。通信部18は、Ethernet(登録商標)の通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等を有する記録ユニットと、印字データに基づいて記録ヘッドにて印字用パルスを発生させるためのASIC等を有する電気回路とを備える。PC1のユーザが、印刷可能なアプリケーションを用いて印刷することを指示すると、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC1のHDD1202に一時的に格納される。そして、格納されたスプールファイルは、プリンタドライバ70を介して複合機3の制御用コマンドを含む印字データに変換された後、ネットワーク4を介して複合機3に送られる。複合機3の通信部18がこの印字データを受信し、記録部19が印字データを印字用パルスに変換して、記録紙上に印刷する。操作部20は、電源ボタン、リセットボタン等の各種ボタンを有する。ユーザが操作部20が備える各種ボタンを押し下げることによって、複合機3を操作することができる。表示部21は、例えばタッチパネルの液晶ディスプレイを備える。表示部21は、複合機3の状態の表示や、各種設定の表示や入力等を行うことができる。画像取得部22は、スキャナ121を介して画像データを取得する。このために、画像取得部22は、CIS方式やCSS方式のスキャンヘッドを有する。
【0017】
図3はPCのソフトウェア構成例を表す図である。PC1は、Ethernet(登録商標)を制御するEthernet(登録商標)制御スタック92、IP(Internet Protocol )Networkを制御するIP Network制御スタック91、WSDを制御するWSD制御スタック90を備える。また、PC1は、IHVの独自プロトコルを制御するIHVネイティブプロトコル制御スタック89を備える。また、PC1は、例えば、PnPXを制御して、つまりプラグアンドプレイを行って、ネットワーク4へのデバイスの接続を認識するPnPX制御モジュール88を備える。PnPX制御モジュール88は、OSの指示に従ってデバイスの接続を認識する。すなわち、OS及びPnPX制御モジュール88は、ネットワーク4を介して、該ネットワーク4にデバイス(複合機3等)が接続されたことを認識するデバイス認識手段として機能する。PnPXは、Plug and Play Extensionsの略語である。PnPXは、ネットワーク接続情報機器に対するサポートを提供するプラグアンドプレイの一連の拡張機能としてWindows(登録商標)Vista OSに標準搭載されている。以下の説明では、PnPX制御モジュール88は、例えば、PnPXの一種であるN−PnPを用いた制御を実行する。
【0018】
また、PC1は、情報機器ドライバ群85を備える。情報機器ドライバ群85は、OSに標準で同梱されている標準ドライバ群87とIHVから提供されるIHV製ドライバ(群)86とを備える。IHV製ドライバ86は、ネットワーク4に接続され得る任意のデバイス、該デバイスが備える情報機器に対応するドライバであり、PC1の所定の記憶手段内に予め記憶される。IHV製ドライバは、OS提供用ドライバであってもよいし、フルスペックドライバであってもよい。IHV製ドライバ86には、FinishInstallアクション(以後、後処理とも記述)が実装されている。FinishInstallアクションは、PnPXの制御によってPC1にインストールされるIHV製ドライバ86の設定ファイルに予め定義されるアクションである。OSが、インストールされたIHV製のドライバの設定ファイルにFinishInstallアクションが定義されていることを確認すると、IHV製ドライバ86に指示してドライバの後処理を実行させる。ドライバの後処理はIHV用Webサーバ100からの追加インストーラの取得処理である。
【0019】
具体的には、OSは、後処理実行を命令するメッセージであるDIF_FINISHINSTALL_ACTIONメッセージをIHV製ドライバに対して送信する。DIF_FINISHINSTALL_ACTIONメッセージを受けたIHVドライバ86は、ドライバの後処理を実行する。なお、IHVドライバ86に後処理が必ず実装されているわけではない。本実施形態では、プリンタドライバの設定ファイルに後処理が実装されているものとする。上述したFinishInstallアクションは、下記の参考文献1に開示されている。
参考文献1:WindowsVistaでの情報機器のFinish−Installアクション,URL:https://www.microsoft.com/japan/whdc/driver/install/Finish_Install.mspx
【0020】
また、PC1は、API/DDI84を備える。APIはApplication Programing Interfaceの略語である。DDIは、Device Driver Interfaceの略語である。API/DDI84は、例えば、図5を参照して後述するWSDiscoveryのイベントをネットワークモニタ(NM)80に渡す。NM80は、図6を参照して後述するデバイス(複合機3)が備える情報機器の情報を、API/DDI84を介して取得する。また、NM80は、図4(A)乃至(C)に示す画面をAPI/DDI84を介して表示する。アプリケーション30は、印刷指示やスキャン指示を発行可能なアプリケーションである。OSが元々アプリケーション30を備えていてもよく、また、PC1がIHV製Webサーバ100からアプリケーション134を取得して、これをアプリケーション30としてOSにインストールするようにしてもよい。上述したPCのソフトウェア構成に含まれるモジュールのうち、IHVネイティブプロトコル制御スタック89とIHV製ドライバ86が、IHV製モジュールであり、これら以外のモジュールは、OSに標準で同梱されているモジュールである。
【0021】
図4はNMが表示する画面の例を示す図である。図4(A)に示すように、NM80は、ネットワーク4上に存在するPCや周辺装置を表示する。同図において、42はPC1を表すアイコンである。図4(B)、(C)は、NM80が表示する画面の他の例を示す。例えば複合機3がネットワーク4に接続されると、複合機3は、WSDの機能により、図5に示すようなWSDiscoveryメッセージをネットワーク4上の全ての機器に送信する。WSDiscoveryメッセージは、複合機3がネットワーク4上に参加したことを示す情報である。NM80は、このWSDiscoveryメッセージを受信すると、図4(B)に示すように、複合機3を表すアイコン43を画面上に表示する。ユーザがアイコン43をマウスで指定すると、図4(C)に示すように、NM80がインストールメニュー51を画面表示する。ユーザがインストールメニュー51を選択すると、OSが、プラグアンドプレイにより、複合機3が備えるプリンタ122に対応するプリンタドライバと、複合機3が備えるスキャナ121に対応するIHV製ドライバであるスキャナドライバとをインストールする。具体的には、OSは、PC1の記憶手段内に記憶されているプリンタ122とスキャナ121の各々に対応するIHV製ドライバを、これらのIHV製ドライバが当初記憶されていた記憶領域と異なる他の記憶領域に記憶(インストール)する。すなわち、OSは、ネットワーク4にデバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段として機能する。
【0022】
図6及び図7は、OSによるPnPXの実行時に複合機から発行される、複合機が備える情報機器の情報を示す図である。PC1のOSがPnPXを実行すると、PC1のOSが、複合機3に対して、複合機3が備える情報機器の情報を問い合わせる。この問い合わせに応じて、複合機3は、図6、図7に示す情報機器の情報をPC1に対して発行する。図6は、複合機3が備えるプリンタ122の情報の例を示す。図6中の符号90はPnPXの情報機器カテゴリ要素である。この例では、情報機器カテゴリ要素90は、プリンタ122のカテゴリを表す。図7は、複合機が備えるスキャナ121の情報の例を示す。図7中の91はPnPXの情報機器カテゴリ要素である。この例では、情報機器カテゴリ要素91は、スキャナ121のカテゴリを示す。PC1のOSは、発行された情報機器の情報に基づいて、インストールするIHV製ドライバ(第1のドライバ)を決定する。
【0023】
図8は、追加インストーラの構成とフルスペックドライバ表の例を示す図である。図8(A)は追加インストーラの構成例を示す。追加インストーラ131は、デバイスの機能を使用可能にする第2のドライバをPC1にインストールする第2インストール手段として機能する。第1の実施形態では、上記第2のドライバは、デバイスが備える情報機器の機能を全て使用可能にするフルスペックドライバである。追加インストーラ131は、インストール処理部201、ソフトウェアダウンロード部202、フルスペックドライバ表203を備える。ソフトウェアダウンロード部202は、ソフトウェア(例えば、ドライバ)をダウンロードする。インストール処理部201は、ダウンロードされたソフトウェアをインストールする。フルスペックドライバ表203は、デバイスが備える情報機器に対応するフルスペックドライバの情報が設定される表である。
【0024】
図8(B)は、フルスペックドライバ表の例を示す。フルスペックドライバ表203は、機種名、デバイスタイプ、ドライバ名、ダウンロードURLといったデータ構成を有する。機種名は、デバイスの機種名、又はデバイスが有する情報機器の機種名である。デバイスタイプは、デバイス又はデバイスが有する情報機器のタイプである。ドライバ名は、機種名が示すデバイス又は情報機器の機能を使用するために必要な、フルスペックドライバである。ダウンロードURLは、ドライバ名に対応するフルスペックドライバの位置情報である。具体的には、ダウンロードURLは、IHV用Webサーバ100が有するフルスペックドライバの位置情報である。
【0025】
図9は、PCの全体動作処理フローの例を示す図である。まず、ユーザが、PC1のNM80を起動する(ステップS1)。NM80が、ネットワーク4上に接続されている情報機器の一覧をネットワークモニタ上に表示する。ユーザが複合機3をネットワーク4に接続する(ステップS2)。複合機3は、図5に示すWSDiscoveryメッセージ(WSDメッセージ)をPC1に対して送信するので、PC1のOSがそのWSDメッセージを受け取る(ステップS3)。次に、NM80が、OSの指示に従って、複合機3を示すアイコン43(図4(B)を参照)を画面表示する(ステップS4)。
【0026】
ユーザがマウス操作によってアイコン43を指定すると、NM80がインストールメニュー51(図4(C)を参照)を画面表示する。ユーザがインストールメニュー51を選択すると、OS及びPnPX制御モジュール88が、複合機3を対象としてPnPXの実行を開始する(ステップS5)。すなわち、第1インストール手段として機能するOSは、プラグアンドプレイによって、複合機3に対応する第1のドライバをインストールする。なお、OSが、NB80に複合機3を示すアイコン43を画面表示させることなく、複合機3がネットワーク4に接続されたことを契機として複合機3を対象として自動的にPnPXの実行を開始するようにしてもよい。PnPXの実行が開始されると、OSが、WSDの機能を用いて、複合機3に対して、複合機3が備える情報機器の情報を取得するよう命令を出し、この命令に応じた複合機3から例えば図6、図7に示すような情報機器の情報を取得する(ステップS6)。
【0027】
PC1は、ステップS6において取得した情報機器の情報に対応する全ての情報機器について、下記のステップS8乃至S11の処理を実行する(ステップS7、S12)。PC1のOSは、例えば、図6、図7に示す情報機器の情報に基づいて、複合機3がプリンタとスキャナという2つの情報機器を備えることを認識する。従って、OSは、認識したプリンタとスキャナの各々を対象情報機器として、ステップS8乃至S11の処理を実行する。
【0028】
PC1のOSが、対象情報機器用のIHV製ドライバを検索する(ステップS8)。検索の結果、IHV製ドライバがある場合、PC1のOSが、このIHV製ドライバを第1のドライバとしてインストールする(ステップS9)。この第1ドライバは、OSに同梱されるため、容量削減や、OSの機能との連動のために制限がかけられているOSに提供する為のドライバ(OS提供用ドライバ)である。続いて、OSが、インストールされたIHV製ドライバの設定ファイルに後処理が定義されているかを判断する(ステップS10)。IHV製ドライバの設定ファイルに後処理が定義されていない場合は、ループを終了する(ステップS12)。IHV製ドライバの設定ファイルに後処理が定義されている場合、OSが、後処理を呼び出す(ステップS11)。具体的には、OSが、IHV製ドライバにDIF_FINISHINSTALL_ACTIONを通知して、IHV製ドライバに追加インストーラ131をインストールさせる。全ての情報機器について処理が終わればループを終了する(ステップS12)。その後、OSが、PnPXの完了を示す情報を表示する(ステップS13)。
【0029】
図10は図9のステップS11における後処理の呼び出し処理を説明するフローチャートである。IHV製ドライバが、OSからのメッセージを受け取る(ステップS111)。IHV製ドライバが、受け取ったメッセージがDIF_FINISHINSTALL_ACTIONであるかを判断する(ステップS112)。受け取ったメッセージがDIF_FINISHINSTALL_ACTIONではない場合は、処理を終了する(ステップS115)。受け取ったメッセージがDIF_FINISHINSTALL_ACTIONメッセージである場合は、IHV製ドライバは、ネットワーク4を介して、IHV用Webサーバ100から追加インストーラ131を取得する(ステップS113)。続いて、IHV製ドライバが、取得した追加インストーラ131を実行し(ステップS114)、処理を終了する。IHV製ドライバは、追加インストーラ131の実行の際に、対象情報機器の機種名を追加インストーラに伝える。
【0030】
図9、図10を参照して説明したことから、第1インストール手段(OS)は、デバイスの機能を使用可能にする第2のドライバをPC1にインストールする第2インストール手段を、第1のドライバをPC1にインストールしたことを契機として取得する。
【0031】
図11は、図10のステップS114における追加インストーラの実行処理を説明するフローチャートである。追加インストーラ131は、起動される時に(ステップS201)、IHV製ドライバから対象情報機器の機種名を受け取る。その後、ステップS202乃至S204のループにて、追加インストーラ131は、OSがPnPX中でなくなるまで待つ。具体的には、追加インストーラ131は、OSがPnPX中であるかをOSに問い合わせて調べ、(ステップS203)、OSがPnPX中でなくなるまで待機する。この処理により、全ての情報機器のPnPXが終わってからステップS205以降の処理に進むことになり、その結果、一旦、OSがインストールすることができる情報機器のドライバ(第1のドライバ)が全てインストールされていることになる。
【0032】
次に、追加インストーラ131が、追加インストールを開始することを表示する(ステップS205)。追加インストールは、インストール済みの第1のドライバ(図9のS9を参照)に加えて、情報機器の機能を使用可能にする第2のドライバをインストールすることである。続いて、追加インストーラ131が、図13(B)に示すフルスペックドライバ表と、起動される時に伝えられた対象情報機器の機種名とに基づいて、対象情報機器に対応するフルスペックドライバをリストアップする(ステップS206)。
【0033】
次に、追加インストーラ131が、複合機3が備える全ての対象情報機器について、ステップS208乃至S212の処理を実行する(ステップS207)。まず、追加インストーラ131は、以下に説明するように、ステップS208及びS209の処理により、PC1にフルスペックドライバのインストールが必要であるかを判断する。追加インストーラ131が、ある情報機器に関して、その情報機器に対応する第1のドライバがPC1にインストール済みであるかを調べる(ステップS208)。情報機器に対応する第1のドライバがインストール済みである場合、追加インストーラ131は、この第1のドライバがステップS206においてリストアップされたこの情報機器に対応するフルスペックドライバと一致するかを判断する(ステップS209)。
【0034】
第1のドライバがフルスペックドライバと一致する場合は、ステップS212に進んでループを終了する。第1のドライバがフルスペックドライバと一致しない場合、追加インストーラ131が、PC1にフルスペックドライバのインストールが必要であると判断する。そして、追加インストーラ131が、図8(B)に示すフルスペックドライバ表を参照して、このフルスペックドライバに対応するダウンロードURLを取得する。そして、追加インストーラ131が、取得されたダウンロードURLに基づいて、IHV用Webサーバ100からフルスペックドライバをダウンロードする(ステップS210)。
【0035】
上記ステップS208において、追加インストーラ131が、第1のドライバがPC1にインストール済みでないと判断した場合、追加インストーラ131は、PC1にフルスペックドライバのインストールが必要であると判断して、上記ステップ210に進む。続いて、追加インストーラ131が、ダウンロードされたフルスペックドライバをインストールして(ステップS211)、ループを終了する(ステップS212)。このフルスペックドライバは、前述の第1のドライバに比べ、機能が制限されていない多くの機能が使えるドライバである。全てのループが終了すると、追加インストーラ131が、追加インストールが終了したことを表示し(ステップS213)、処理を終了する。
【0036】
上述した第1の実施形態の情報処理装置は、ネットワーク4にデバイスが接続されてこのデバイスについてPnPXが実行されることを契機として、デバイスに対応する第1のドライバをインストールするとともに、以下の処理を実行する。情報処理装置の追加インストーラ131は、デバイスが有する情報機器のフルスペックドライバがインストール済みであるかを判断し、この判断結果に基づいて、第2のドライバ(フルスペックドライバ)のインストールが必要であるかを判断する。そして、追加インストーラ131は、第2のドライバのインストールが必要であると判断した場合に、ネットワーク4を介して該第2のドライバを情報処理装置にインストールする。従って、この情報処理装置によれば、デバイスについてのPnPXの実行を通じて、このデバイスが有する全ての情報機器のフルスペックドライバをインストールすることができる。本実施形態のインストール方法は、追加インストーラ131の機能により実現される。このインストール方法は、デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行される。このインストール方法は、インストールされているドライバがフルスペックドライバであるか判断する判断ステップを有する。また、このインストール方法は、前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップを有する。また、本実施形態のコンピュータプログラムが、上記インストール方法を実現するプログラムであってもよい。
【0037】
次に、第2の実施形態について説明する。第2の実施形態の情報処理装置の全体動作処理は、図9を参照して説明した動作処理と同様である。また、第2の実施形態の情報処理装置が実行する後処理の呼び出し処理は、図10を参照して説明した後処理の呼び出し処理と同様である。但し、第2の実施形態においては、IHV用Webサーバ100は、追加インストーラ131とは異なる機能を有する追加インストーラ132を備える。従って、OSは、図10のステップS113、S114において、追加インストーラ132を取得し、実行する。また、第2の実施形態においては、後述する必須ドライバが第2のドライバである。
【0038】
図12は第2の実施形態の情報処理装置の構成例を示す図である。PC10は、第2の実施形態の情報処理装置である。PC1の基本的な構成は、実施例1の情報処理装置(PC1)の構成と同様である。PC10が備えるプリンタドライバ70は、符号33乃至38が示す複数のモジュールを備える。プリントプロセッサ33は、印刷レイアウトの変更や印刷画像に対する特殊処理を実行する。グラフィックスドライバ34は、GDI31から送られて来る描画命令に基づいて、印刷用の画像処理を行い、印刷制御コマンドを作成する。UIモジュール35は、プリンタドライバのユーザインタフェースの提供及び制御を行う。ランゲージモニタ36は、データの通信I/F(Interface)であり、データの送受信を制御する。ポートモニタ37は、ランゲージモニタ36から送信されるデータを受信して適切なポートに対して送信したり、複合機3から送信されるデータをクラスドライバ38を介して受信したりする。クラスドライバ38は、最もポートに近いローレベルのモジュールである。本実施形態におけるプリンタドライバ70は、WSDやIHVの独自プロトコルのプリンタクラスのドライバに相当し、ポート(本実施例ではネットワークポート)を制御する。プリンタドライバ70の構成は、OS標準ドライバ、OS提供用ドライバ、フルスペックドライバのいずれについても同様である。
【0039】
アプリケーション30は、印刷指示を発行可能なアプリケーションである。アプリケーション30は、例えば、OSに標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。GDI(Graphics Device Interface )31は、印刷命令を受信する機能を有する。なお、GDIを通して印刷命令を受信できるプリンタドライバのことをGDIプリンタドライバという。プリンタキュー32には印刷ジョブがキューイングされる。プリンタキュー32はスプーラ40に設けられている。キューイングされた印刷ジョブは、不図示のプリンタキューフォルダに表示される。
【0040】
図13は、第2の実施形態における追加インストーラの構成例とドライバ部品表の例を示す図である。図13(A)に示す追加インストーラ132は、第2の実施形態における追加インストーラである。追加インストーラ132は、インストール処理部201、ソフトウェアダウンロード部202、ドライバ部品表204、ドライバ機能一覧表205、アプリ機能表206を備える。インストール処理部201、ソフトウェアダウンロード部202は、それぞれ、図8(A)に示す追加インストーラ131が備えるインストール処理部201、ソフトウェアダウンロード部202と同様である。
【0041】
ドライバ部品表204は、ドライバ部品に関する情報が設定された表である。ドライバ部品は、ドライバと組み合わさって動作する部品である。例えば、図12中に示すポートモニタ37等が、ドライバ部品に該当する。ドライバ機能一覧表205は、デバイスに含まれる情報機器に対応するドライバに関する情報が設定された表である。アプリ機能表206は、アプリケーションの実行に必要な情報機器、ドライバ、及び出力ポートに関する情報が設定された表である。
【0042】
図13(B)は、ドライバ部品表204の例を示す。ドライバ部品表204は、ドライバ部品名、対応情報機器タイプ、対応ドライバタイプ、対応ドライバポート、URLいったデータ構成を有する。ドライバ部品名はドライバ部品の名称である。対応情報機器タイプは、当該ドライバ部品に対応する情報機器のタイプである。対応ドライバタイプは、当該ドライバ部品に対応するドライバのタイプである。対応ドライバポートは、当該ドライバ部品に対応する出力ポートである。URLは、ドライバ部品の位置情報である。具体的には、URLは、IHV用Webサーバ100(図1を参照)内の、ドライバ部品の位置情報を示す。
【0043】
図14は、ドライバ機能一覧表とアプリ機能表の例を示す図である。図14(A)は、ドライバ機能一覧表205の例を示す。ドライバ機能一覧表205は、機種名、情報機器タイプ、ドライバタイプ、ドライバ名、出力可能ポート、優先度、URLといったデータ構成を有する。機種名は、デバイスの機種名である。情報機器タイプは、デバイスが有する情報機器のタイプである。ドライバ名は、当該情報機器の機能を使用するために必要なドライバの名称である。出力可能ポートは、当該ドライバに対応する出力ポートである。優先度は、当該ドライバの優先度である。優先度は、予め決められている。優先度は、例えば、ドライバのインストールに関する優先順位に対応する。優先度として設定されている数字が小さいほど、優先度すなわち優先順位が高いことを示す。URLは、各々のドライバの位置情報である。具体的には、URLは、各々のドライバの、IHV用Webサーバ100内の位置情報を示す。
【0044】
図14(B)は、アプリ機能表206の例を示す。アプリ機能表206は、アプリ名、必須情報機器タイプ、必須ドライバタイプ、必須出力ポートといったデータ構成を有する。アプリ名は、アプリケーションの名称である。必須情報機器タイプは、アプリケーションの実行に必要な情報機器(必須情報機器)のタイプである。必須ドライバタイプは、当該必須情報機器の機能を使用するために必要なドライバ(必須ドライバ)のタイプである。必須出力ポートは、当該必須ドライバに対応する出力ポート(必須出力ポート)である。
【0045】
図15は、第2の実施形態における追加インストーラの実行処理を説明するフローチャートである。図15に示すステップS301乃至S305の処理は、図11に示すステップS201乃至S205の処理と同様である。第2の実施形態においては追加インストーラ132が第2インストーラとして機能する。ステップS306において、追加インストーラ132が、インストール可能アプリ一覧を表示する(ステップS306)。インストール可能アプリ一覧は、PC10にインストール可能であるアプリケーションの一覧である。続いて、ユーザの操作入力に従って、追加インストーラ132が、アプリケーションを選択すると(ステップS307)、追加インストーラ132が、選択されたアプリケーションをPC10にインストールする(ステップS308)。
【0046】
次に、追加インストーラ132が、インストールされたアプリケーション毎に、アプリ機能表206を用いて必須機能表を作成する(ステップS309)。必須機能表は、インストールされたアプリケーションの実行に必要な機能(必須機能)を示す表である。例えば、図14(B)のアプリ機能表206中に示す写真印刷アプリA、写真印刷アプリB、スキャン補助アプリCの全てがインストールされた場合を想定する。追加インストーラ132は、図14(B)のアプリ機能表206を参照して、図16に示すような必須機能表を作成する。
【0047】
図16に示す必須機能表は、必須情報機器タイプ、必須ドライバタイプ、必須ドライバポートといったデータ構成を有する。必須情報機器タイプは、インストールされたアプリケーションの実行に必要な情報機器のタイプである。必須ドライバタイプは、当該情報機器の機能を使用するために必要なドライバ(必須ドライバ)のタイプである。必須ドライバタイプは、当該ドライバに対応する出力ポート(必須出力ポート)である。すなわち、必須機能表は、アプリケーションの実行に必要な情報機器である必須情報機器と、該アプリケーションの実行に必要な必須ドライバと、該アプリケーションの実行に必要な必須出力ポートとの対応情報を示す。以下では、必須機能表に載っている必須情報機器タイプ、必須ドライバタイプ、必須ドライバポートを、必須機能とも記述する。
【0048】
図15に戻って、追加インストーラ132が、ステップS309において作成した必須機能表を参照して、必須情報機器毎に、以下の処理を実行する(ステップS310)。追加インストーラ132が、PC10に対象情報機器に対応するドライバがインストールされているかを判断する(ステップS311)。PC10に対象情報機器に対応するドライバがインストールされていない場合、追加インストーラ132がドライバ機能一覧表205を検索し必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在するかを判断する(ステップS312)。検索の結果、必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在しない場合は、ループを終了する(ステップS327)。これにより、追加インストーラの実行処理が終了する(ステップS328)。必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在する場合は、ステップS313に進む。なお、ステップS312において、追加インストーラ132が、ドライバ機能一覧205に必須機能の一部を満たすドライバ(例えば、必須ドライバタイプに対応する必須ドライバ)が存在するかを判断するようにしてもよい。
【0049】
次に、追加インストーラ132が、ステップS312における検索の結果得られたドライバが一つだけであるかを判断する(ステップS313)。検索の結果得られたドライバが一つだけである場合は、追加インストーラ132が、得られたドライバをインストールすることを決定し(ステップS314)、ステップS315に進む。検索の結果得られたドライバが複数ある場合は、追加インストーラ132が、ドライバ機能一覧表205を参照して、得られた複数のドライバのうち、優先度が最も高いドライバをインストールすることを決定し(ステップS319)、ステップS315に進む。
【0050】
次に、追加インストーラ132が、インストールすることを決定したドライバに対応するURLを、ドライバ機能一覧表205に基づいて取得する(ステップS315)。追加インストーラ132が、ステップS315において取得したURLからドライバをダウンロードする(ステップS316)。追加インストーラ132が、ダウンロードしたドライバをインストールする。そして、追加インストーラ132が、出力ポートを必須機能表における当該対象情報機器に対応する必須ドライバポートに設定し(ステップS318)、ステップS327に進む。
【0051】
ステップS311における判断処理の結果、PC10に対象情報機器に対応するドライバがインストールされている場合、追加インストーラ132が、以下の処理を実行する。追加インストーラ132が、PC10に必須機能表上の対象情報機器に対応する必須ドライバタイプのドライバがインストールされているかを判断する(ステップS320)。PC10に必須ドライバタイプのドライバがインストールされていない場合は、ステップS312に進む。PC10に必須ドライバタイプのドライバがインストールされている場合は、ステップS321に進む。
【0052】
次に、追加インストーラ132が、必須機能表に対象情報機器に対応する必須ドライバポート(必須出力ポート)が設定されているかを判断する(ステップS321)。必須機能表に対象情報機器に対応する必須出力ポートが設定されていない場合は、ステップS327に進む。必須機能表に対象情報機器に対応する必須出力ポートが設定されている場合は、ステップS322に進む。
【0053】
次に、追加インストーラ132が、インストールされているドライバに対応する出力ポートとして現在PC10に設定されている出力ポートが必須出力ポートであるかを判断する(ステップS322)。設定されている出力ポートが必須出力ポートである場合は、ステップS327に進む。設定されている出力ポートが必須出力ポートでない場合、追加インストーラ132が、PC10に対象情報機器に対応する必須出力ポートがないと判断し、ステップS327に進む。
【0054】
ステップS327において、追加インストーラ132が、必須出力ポートを実現するポートモジュールをインストールすることを決定する(ステップS323)。具体的には、追加インストーラ132が、図13(B)に示すようなドライバ部品表204を参照して、上記必須出力ポートに対応するポートモニタをインストールすることを決定する。また、追加インストーラ132が、ドライバ部品表を参照して、インストールすることが決定されたポートモジュールのURLを取得する(ステップS324)。続いて、追加インストーラ132が、取得されたURLからポートモジュールをダウンロードする(ステップS325)。そして、追加インストーラ132が、ダウンロードしたポートモジュールをインストールして(ステップS326)、ステップS327に進む。
【0055】
上述した第2の実施形態の情報処理装置は、ネットワーク4にデバイスが接続されてこのデバイスについてPnPXが実行されることを契機として、デバイスに対応する第1のドライバをインストールするとともに、以下の処理を行う。この情報処理装置が備える追加インストーラ132が、選択されたアプリケーションの実行に必要な必須情報機器に対応する必須ドライバが情報処理装置にインストール済みであるかを判断する(ステップS311、S320)。そして、追加インストーラ132は、情報処理装置必須情報機器に対応する必須ドライバがインストール済みでない場合に、該必須ドライバをネットワーク4を介してインストールする。従って、この情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な全ての情報機器の必須ドライバをインストールすることができる。
【0056】
また、追加インストーラ132は、PC10に必須ドライバがインストール済みでない場合に、例えば、必須ドライバのうち、ドライバのインストールに関して予め決められた優先順位に従って選択した必須ドライバをインストールする(S319、S317)。従って、第2の実施形態の情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な全ての情報機器について、第1優先順位の必須ドライバをインストールすることができる。
【0057】
また、追加インストーラ132は、PC10に必須ドライバがインストール済みである場合に、PC10に、必須機能表において必須ドライバに対応づけられている必須出力ポートがあるかを判断する(S321及びS322)。そして、追加インストーラ132は、PC10に必須ドライバに対応づけられている必須出力ポートがない場合に、該必須出力ポートを実現する手段(ポートモジュール)をインストールする(S326)。従って、第2の実施形態の情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な必須ドライバに対応する必須出力ポートを設定することができる。
【0058】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0059】
1 PC
3 複合機
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、インストール方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータ(以下、PCとも記述)のオペレーティングシステム(以下OSとも記述)で情報機器を扱えるようにするためには、その情報機器をOS上で使うためのドライバを、OS上にインストールしなくてはならない。このドライバのインストール方法の一つとして、Plug and Play Extensions(以下、PnPXと記述)がある(非特許文献1、2を参照)。PnPXは、Windows(登録商標)VistaOSに標準搭載されている機能であり、ユーザの命令を受けて、ネットワーク上に存在する情報機器のドライバをOSが独自の手法で取得し、インストールする技術である。また、PnPXには、Web Services on Devices(以下WSD)という、ネットワーク上の情報機器をOSが見つけるための仕組みが使われる(非特許文献3を参照)。また、PnPXを行う際に、OSがドライバを取得する方法には、PC上のハードディスク内を検索して取得する方法と、インターネット上に設置されたOS専用のWebサーバから取得する方法などがある。なお、情報機器には、見た目は一つの情報機器に見えても、内部的には複数の情報機器から構成されているものが存在する。例えば、見た目は一つの情報機器だが、内部的にはプリンタやスキャナ、FAXなどの情報機器を搭載しているものがある。このような情報機器をMulti Function Printerや複合機と称することもある。
【0003】
上記複合機に対してPnPXが発生した場合、内部的に存在する複数の情報機器のそれぞれについて、ドライバが必要である。例えば、プリンタとスキャナが内部的に搭載されている複合機であれば、プリンタ用ドライバとスキャナ用ドライバという2種類のドライバがPnPXによってインストールされる。ここで、ドライバは、開発者とその配布方法を主眼におくと、以下のような三種類に分類することができる。一つ目は、OS開発会社が情報機器の最低限の機能が使えるように開発したOS標準ドライバである。プリンタやFAXなど、多くの一般的な情報機器には、このOS標準ドライバが用意されている。二つ目は、情報機器の全ての機能をOS上で使えるように、情報機器開発会社(IHV)が独自に開発したフルスペックドライバである。IHVは、Independent Hardware Vendorの略語である。一般的に、OS標準ドライバには、必要最低限の機能しか搭載されていないため、各IHVが情報機器に実装した独自の機能を使用できない。従って、フルスペックドライバをインストールすることが望ましい。しかし、一般的には、ユーザはフルスペックドライバを自ら探して手に入れる必要があり、手間がかかる。また、どのような手段でフルスペックドライバを取得すれば良いのか、ユーザが知ることが難しい場合もある。さらには、複合機の場合、内蔵されている情報機器の数に応じて、複数のドライバを取得する必要があり、これも一般のユーザが理解することは困難である。三つ目は、前述のユーザがフルスペックドライバを取得することが困難であるという問題を解決するため、IHVからOS開発会社に提供される、OS提供用ドライバである。OS開発会社は、提供されたOS提供用ドライバを、OSが認識できる場所に保存しておくことで、OSがPnPX時にIHV製のOS提供用ドライバをインストールできるようにする。
【0004】
OS提供用ドライバには制限が設けられることが多い。その制限の代表的な例としては、容量制限がある。OS提供用ドライバは、主にPCのハードディスク上に保存されたり、インターネット上に設置されたOS専用のWebサーバに保存されたりすることが多い。しかし、あらゆる情報機器のIHV製のフルスペックドライバを上記ハードディスクやOS専用のWebサーバに保存してしまうと、膨大な容量が必要になり、PCやWebサーバにとって大きな負担となってしまう。そこで、ドライバの容量に制限が設けられることがある。この容量制限を満たすため、OS提供用ドライバは、フルスペックドライバより機能が削られてしまう場合がある。従って、OS提供用ドライバがインストールされてしまうことにより、ユーザは情報機器の全ての機能を使えなくなってしまうという問題が発生する。この問題に対処するため、OSがIHVによって開発されたPnPXモジュールを実行してフルスペックドライバをダウンロード及びインストールする技術が提案されている。例えば、特許文献1は、WSDモジュールによって発見したプリンタの性能情報と、現在インストールしているプリンタの性能情報のうち、いずれが優位かを判定し、判定結果に従ってドライバをインストールするプログラムを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−27006号公報
【非特許文献】
【0006】
【非特許文献1】マイクロソフト株式会社," 探索テクノロジ : PnPX",[online],Windows Hardware Developer Center ,インターネットURL :(http://www.microsoft.com/japan/whdc/connect/rally/rallyPnpx.mspx 〉
【非特許文献2】マイクロソフト株式会社,Building Develoyable Device Driver Package" [online],Windows Hardware Developer Center ,インターネットURL :http://download.microsoft.com/download/a/f/d/afdfd50d-6eb9-425e-84e1-b4085a80e34e/DVR-T393_WH07.pptx 〉
【非特許文献3】Windows Rally テクノロジ,インターネットURL :http://www.microsoft.com/japan/windows/marketplace/rally/rallyfeatures.aspx
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、ユーザがデバイスのフルスペックドライバを自ら探して手に入れることは困難である。また、特許文献1が開示するような技術では、ユーザが、フルスペックドライバを自ら探す代わりに、IHV製PnPXモジュールを別途手に入れる必要がある。しかし、ユーザがIHV製PnPXモジュールをどのような場所から、どうやって入手するかを認識することは困難である。
本発明は、ネットワークに接続されたデバイスについてPnPXを実行することを契機として、デバイスの機能を使用可能にするドライバをインストールする情報処理装置の提供を目的とする。
【課題を解決するための手段】
【0008】
本発明の一実施形態の情報処理装置は、ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識手段と、前記ネットワークにデバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段とを備える。前記第1インストール手段は、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、前記第2インストール手段は、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする。
【発明の効果】
【0009】
本発明によれば、ネットワークに接続されたデバイスについてPnPXが実行されることを契機として、デバイスの機能を使用可能にするドライバを情報処理装置にインストールすることができる。従って、例えば、ユーザは、使用したいデバイスのドライバを自ら探すことなく、プラグアンドプレイを行うだけで、このデバイスのフルスペックドライバを情報処理装置にインストールさせることが可能となる。
【図面の簡単な説明】
【0010】
【図1】第1の実施形態のシステム構成例を示す図である。
【図2】PCと複合機のハードウェア構成例を示す図である。
【図3】PCのソフトウェア構成例を表す図である。
【図4】NMが表示する画面の例を示す図である。
【図5】WSDiscoveryメッセージの例である。
【図6】PnPXの実行時に発行される情報機器の情報を示す図(1)である。
【図7】PnPXの実行時に発行される情報機器の情報を示す図(2)である。
【図8】追加インストーラの構成とフルスペックドライバ表の例を示す図である。
【図9】PCの全体動作処理フローの例を示す図である。
【図10】後処理の呼び出し処理を説明するフローチャートである。
【図11】追加インストーラの実行処理を説明するフローチャート(1)である。
【図12】第2の実施形態の情報処理装置の構成例を示す図である。
【図13】追加インストーラの構成例とドライバ部品表の例を示す図である。
【図14】ドライバ機能一覧表とアプリ機能表の例を示す図である。
【図15】追加インストーラの実行処理を説明するフローチャート(2)である。
【図16】必須機能表の例を示す図である。
【発明を実施するための形態】
【0011】
以下に、添付図面を参照して本実施形態について説明する。なお、本実施形態は、本発明を限定するものではない。また、本実施形態で説明されている特徴の組み合わせの全てが、本発明の必須の構成要素とは限らない。また、以下で引用するWindows(登録商標)Vista OSに関する技術のうち、特に説明していない技術は、http://msdn.microsoft.com/ja−jp/default.aspxにおいて開示されている。
【0012】
図1は第1の実施形態のシステム構成例を示す図である。図1に示すシステムは、PC(Personal Computer )1と、複合機3と、IHV用Webサーバ100とを備える。PC1と複合機3とIHV用Webサーバ100とは、ネットワーク4を介して互いに接続されている。ネットワーク4は、例えばEthernet(登録商標)で構成される。PC1は、本実施形態の情報処理装置である。PC1は、図2(A)を参照して後述するようなハードウェア構成を有し、OSとして、例えば米国マイクロソフト社のWindows(登録商標)Vistaと同等のOSがインストールされている。図1に示す例では、PC1は、スキャナドライバ50、プリンタドライバ70、ネットワークモニタ80を備える。プリンタドライバ70は、複合機3が備えるプリンタ122の機能を使用するためのプログラムである。スキャナドライバ50は、複合機3が備えるスキャナ121の機能を使用するためのプログラムである。ネットワークモニタ(NM)80は、ネットワーク4に接続された、デバイス(例えば複合機3)やPC1以外のPC等を表示するプログラムである。
【0013】
複合機3は、本実施形態のデバイスであり、情報機器としてプリンタ122とスキャナ121とを備える。複合機3は、例えばXXX社製のCというモデル名の複合機である。本実施形態のデバイスが、プリンタ122、スキャナ121以外の任意の情報機器(例えば、複写機、ファクシミリ、デジタルカメラ等)を備えるようにしてもよい。複合機3は図2(B)で後述するようなハードウェアで構成され、PC1とネットワーク4を介して双方向通信可能に接続されている。IHV用Webサーバ100は、Web141上に設けられている。IHV用Webサーバ100は、情報機器開発会社(IHV)が利用又は管理するWebサーバである。本実施形態のシステムが、IHV用Webサーバ100の代わりに、ネットワーク4を介してPC1等の情報処理装置に対して該情報処理装置から要求されたソフトウェアを提供できる任意のサーバを備えるようにしてもよい。図2(A)に示すPC1のハードウェア構成と同様のハードウェア構成を有する。IHV用Webサーバ100は、IHVが開発した情報機器用に、追加インストーラ131、プリンタドライバ132、スキャナドライバ133、アプリケーション134、ドライバ部品135を備える。
【0014】
図2は、PCと複合機のハードウェア構成例を示す図である。図2(A)は、PC1のハードウェア構成例を示す。PC1はランダムアクセスメモリ(RAM)1201、ハードディスクドライブ(HDD)1202、キーボード(KBD)1203、マウス(MOUSE)1208を備える。また、PC1は、CPU(Central Processing Unit)1204、LCD(Liquid Crystal Display)1205、ネットワークボード(NB)1207を備える。CPU1204は、PC1全体を制御する。具体的には、CPU1204は、HDDに記憶されたコンピュータプログラムをRAM1201上に読み出し、このコンピュータプログラムを実行する。このコンピュータプログラムは、本実施形態の情報処理装置の制御方法を実現するプログラムである。PC1が、HDD1202の代わりに、可搬性CD−ROM又は内部据付のROM(Read Only Memory)等を備えるようにしてもよい。KBD1203、MOUSE1208は、ユーザの操作に応じた情報を入力する。NB1207はPC1と複合機3との通信を制御する。図2(A)に示すPC1が備える構成部は、互いにバス1206を介して接続されている。
【0015】
図2(B)は、複合機3のハードウェア構成例を示す。複合機3は、CPU15、ROM16、RAM17、通信部18、記録部19、操作部20、表示部21、画像取得部22を備える。CPU15が、複合機3全体を制御する。具体的には、CPU15が、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19、操作部20、表示部21、画像取得部22を制御する。ROM16には、PC1が備えるプリンタドライバ70の制御に従って、記録(印刷)処理を行ったり、複合機3の状態をPC1へ通知する処理を行ったりするプログラムが記憶されている。また、ROM16には、PC1が備えるスキャナドライバ50の制御に従って複合機3が画像取得部22より画像を取得する処理や、取得画像をPC1へ伝える処理を行うプログラムも記憶されている。また、ROM16には、複合機3が備える情報機器であるプリンタ122、スキャナ121の各々に対応するIHV製ドライバ(第1のドライバ)が予め記憶されている。RAM17には、PC1から送信されて記録部19によって印刷される印字データが一時的に記憶される。RAM17に、画像取得部22により取得された画像データが一時的に記憶されるようにしてもよい。
【0016】
通信部18は、ネットワーク4用の接続ポートを備える。通信部18は、Ethernet(登録商標)の通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等を有する記録ユニットと、印字データに基づいて記録ヘッドにて印字用パルスを発生させるためのASIC等を有する電気回路とを備える。PC1のユーザが、印刷可能なアプリケーションを用いて印刷することを指示すると、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC1のHDD1202に一時的に格納される。そして、格納されたスプールファイルは、プリンタドライバ70を介して複合機3の制御用コマンドを含む印字データに変換された後、ネットワーク4を介して複合機3に送られる。複合機3の通信部18がこの印字データを受信し、記録部19が印字データを印字用パルスに変換して、記録紙上に印刷する。操作部20は、電源ボタン、リセットボタン等の各種ボタンを有する。ユーザが操作部20が備える各種ボタンを押し下げることによって、複合機3を操作することができる。表示部21は、例えばタッチパネルの液晶ディスプレイを備える。表示部21は、複合機3の状態の表示や、各種設定の表示や入力等を行うことができる。画像取得部22は、スキャナ121を介して画像データを取得する。このために、画像取得部22は、CIS方式やCSS方式のスキャンヘッドを有する。
【0017】
図3はPCのソフトウェア構成例を表す図である。PC1は、Ethernet(登録商標)を制御するEthernet(登録商標)制御スタック92、IP(Internet Protocol )Networkを制御するIP Network制御スタック91、WSDを制御するWSD制御スタック90を備える。また、PC1は、IHVの独自プロトコルを制御するIHVネイティブプロトコル制御スタック89を備える。また、PC1は、例えば、PnPXを制御して、つまりプラグアンドプレイを行って、ネットワーク4へのデバイスの接続を認識するPnPX制御モジュール88を備える。PnPX制御モジュール88は、OSの指示に従ってデバイスの接続を認識する。すなわち、OS及びPnPX制御モジュール88は、ネットワーク4を介して、該ネットワーク4にデバイス(複合機3等)が接続されたことを認識するデバイス認識手段として機能する。PnPXは、Plug and Play Extensionsの略語である。PnPXは、ネットワーク接続情報機器に対するサポートを提供するプラグアンドプレイの一連の拡張機能としてWindows(登録商標)Vista OSに標準搭載されている。以下の説明では、PnPX制御モジュール88は、例えば、PnPXの一種であるN−PnPを用いた制御を実行する。
【0018】
また、PC1は、情報機器ドライバ群85を備える。情報機器ドライバ群85は、OSに標準で同梱されている標準ドライバ群87とIHVから提供されるIHV製ドライバ(群)86とを備える。IHV製ドライバ86は、ネットワーク4に接続され得る任意のデバイス、該デバイスが備える情報機器に対応するドライバであり、PC1の所定の記憶手段内に予め記憶される。IHV製ドライバは、OS提供用ドライバであってもよいし、フルスペックドライバであってもよい。IHV製ドライバ86には、FinishInstallアクション(以後、後処理とも記述)が実装されている。FinishInstallアクションは、PnPXの制御によってPC1にインストールされるIHV製ドライバ86の設定ファイルに予め定義されるアクションである。OSが、インストールされたIHV製のドライバの設定ファイルにFinishInstallアクションが定義されていることを確認すると、IHV製ドライバ86に指示してドライバの後処理を実行させる。ドライバの後処理はIHV用Webサーバ100からの追加インストーラの取得処理である。
【0019】
具体的には、OSは、後処理実行を命令するメッセージであるDIF_FINISHINSTALL_ACTIONメッセージをIHV製ドライバに対して送信する。DIF_FINISHINSTALL_ACTIONメッセージを受けたIHVドライバ86は、ドライバの後処理を実行する。なお、IHVドライバ86に後処理が必ず実装されているわけではない。本実施形態では、プリンタドライバの設定ファイルに後処理が実装されているものとする。上述したFinishInstallアクションは、下記の参考文献1に開示されている。
参考文献1:WindowsVistaでの情報機器のFinish−Installアクション,URL:https://www.microsoft.com/japan/whdc/driver/install/Finish_Install.mspx
【0020】
また、PC1は、API/DDI84を備える。APIはApplication Programing Interfaceの略語である。DDIは、Device Driver Interfaceの略語である。API/DDI84は、例えば、図5を参照して後述するWSDiscoveryのイベントをネットワークモニタ(NM)80に渡す。NM80は、図6を参照して後述するデバイス(複合機3)が備える情報機器の情報を、API/DDI84を介して取得する。また、NM80は、図4(A)乃至(C)に示す画面をAPI/DDI84を介して表示する。アプリケーション30は、印刷指示やスキャン指示を発行可能なアプリケーションである。OSが元々アプリケーション30を備えていてもよく、また、PC1がIHV製Webサーバ100からアプリケーション134を取得して、これをアプリケーション30としてOSにインストールするようにしてもよい。上述したPCのソフトウェア構成に含まれるモジュールのうち、IHVネイティブプロトコル制御スタック89とIHV製ドライバ86が、IHV製モジュールであり、これら以外のモジュールは、OSに標準で同梱されているモジュールである。
【0021】
図4はNMが表示する画面の例を示す図である。図4(A)に示すように、NM80は、ネットワーク4上に存在するPCや周辺装置を表示する。同図において、42はPC1を表すアイコンである。図4(B)、(C)は、NM80が表示する画面の他の例を示す。例えば複合機3がネットワーク4に接続されると、複合機3は、WSDの機能により、図5に示すようなWSDiscoveryメッセージをネットワーク4上の全ての機器に送信する。WSDiscoveryメッセージは、複合機3がネットワーク4上に参加したことを示す情報である。NM80は、このWSDiscoveryメッセージを受信すると、図4(B)に示すように、複合機3を表すアイコン43を画面上に表示する。ユーザがアイコン43をマウスで指定すると、図4(C)に示すように、NM80がインストールメニュー51を画面表示する。ユーザがインストールメニュー51を選択すると、OSが、プラグアンドプレイにより、複合機3が備えるプリンタ122に対応するプリンタドライバと、複合機3が備えるスキャナ121に対応するIHV製ドライバであるスキャナドライバとをインストールする。具体的には、OSは、PC1の記憶手段内に記憶されているプリンタ122とスキャナ121の各々に対応するIHV製ドライバを、これらのIHV製ドライバが当初記憶されていた記憶領域と異なる他の記憶領域に記憶(インストール)する。すなわち、OSは、ネットワーク4にデバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段として機能する。
【0022】
図6及び図7は、OSによるPnPXの実行時に複合機から発行される、複合機が備える情報機器の情報を示す図である。PC1のOSがPnPXを実行すると、PC1のOSが、複合機3に対して、複合機3が備える情報機器の情報を問い合わせる。この問い合わせに応じて、複合機3は、図6、図7に示す情報機器の情報をPC1に対して発行する。図6は、複合機3が備えるプリンタ122の情報の例を示す。図6中の符号90はPnPXの情報機器カテゴリ要素である。この例では、情報機器カテゴリ要素90は、プリンタ122のカテゴリを表す。図7は、複合機が備えるスキャナ121の情報の例を示す。図7中の91はPnPXの情報機器カテゴリ要素である。この例では、情報機器カテゴリ要素91は、スキャナ121のカテゴリを示す。PC1のOSは、発行された情報機器の情報に基づいて、インストールするIHV製ドライバ(第1のドライバ)を決定する。
【0023】
図8は、追加インストーラの構成とフルスペックドライバ表の例を示す図である。図8(A)は追加インストーラの構成例を示す。追加インストーラ131は、デバイスの機能を使用可能にする第2のドライバをPC1にインストールする第2インストール手段として機能する。第1の実施形態では、上記第2のドライバは、デバイスが備える情報機器の機能を全て使用可能にするフルスペックドライバである。追加インストーラ131は、インストール処理部201、ソフトウェアダウンロード部202、フルスペックドライバ表203を備える。ソフトウェアダウンロード部202は、ソフトウェア(例えば、ドライバ)をダウンロードする。インストール処理部201は、ダウンロードされたソフトウェアをインストールする。フルスペックドライバ表203は、デバイスが備える情報機器に対応するフルスペックドライバの情報が設定される表である。
【0024】
図8(B)は、フルスペックドライバ表の例を示す。フルスペックドライバ表203は、機種名、デバイスタイプ、ドライバ名、ダウンロードURLといったデータ構成を有する。機種名は、デバイスの機種名、又はデバイスが有する情報機器の機種名である。デバイスタイプは、デバイス又はデバイスが有する情報機器のタイプである。ドライバ名は、機種名が示すデバイス又は情報機器の機能を使用するために必要な、フルスペックドライバである。ダウンロードURLは、ドライバ名に対応するフルスペックドライバの位置情報である。具体的には、ダウンロードURLは、IHV用Webサーバ100が有するフルスペックドライバの位置情報である。
【0025】
図9は、PCの全体動作処理フローの例を示す図である。まず、ユーザが、PC1のNM80を起動する(ステップS1)。NM80が、ネットワーク4上に接続されている情報機器の一覧をネットワークモニタ上に表示する。ユーザが複合機3をネットワーク4に接続する(ステップS2)。複合機3は、図5に示すWSDiscoveryメッセージ(WSDメッセージ)をPC1に対して送信するので、PC1のOSがそのWSDメッセージを受け取る(ステップS3)。次に、NM80が、OSの指示に従って、複合機3を示すアイコン43(図4(B)を参照)を画面表示する(ステップS4)。
【0026】
ユーザがマウス操作によってアイコン43を指定すると、NM80がインストールメニュー51(図4(C)を参照)を画面表示する。ユーザがインストールメニュー51を選択すると、OS及びPnPX制御モジュール88が、複合機3を対象としてPnPXの実行を開始する(ステップS5)。すなわち、第1インストール手段として機能するOSは、プラグアンドプレイによって、複合機3に対応する第1のドライバをインストールする。なお、OSが、NB80に複合機3を示すアイコン43を画面表示させることなく、複合機3がネットワーク4に接続されたことを契機として複合機3を対象として自動的にPnPXの実行を開始するようにしてもよい。PnPXの実行が開始されると、OSが、WSDの機能を用いて、複合機3に対して、複合機3が備える情報機器の情報を取得するよう命令を出し、この命令に応じた複合機3から例えば図6、図7に示すような情報機器の情報を取得する(ステップS6)。
【0027】
PC1は、ステップS6において取得した情報機器の情報に対応する全ての情報機器について、下記のステップS8乃至S11の処理を実行する(ステップS7、S12)。PC1のOSは、例えば、図6、図7に示す情報機器の情報に基づいて、複合機3がプリンタとスキャナという2つの情報機器を備えることを認識する。従って、OSは、認識したプリンタとスキャナの各々を対象情報機器として、ステップS8乃至S11の処理を実行する。
【0028】
PC1のOSが、対象情報機器用のIHV製ドライバを検索する(ステップS8)。検索の結果、IHV製ドライバがある場合、PC1のOSが、このIHV製ドライバを第1のドライバとしてインストールする(ステップS9)。この第1ドライバは、OSに同梱されるため、容量削減や、OSの機能との連動のために制限がかけられているOSに提供する為のドライバ(OS提供用ドライバ)である。続いて、OSが、インストールされたIHV製ドライバの設定ファイルに後処理が定義されているかを判断する(ステップS10)。IHV製ドライバの設定ファイルに後処理が定義されていない場合は、ループを終了する(ステップS12)。IHV製ドライバの設定ファイルに後処理が定義されている場合、OSが、後処理を呼び出す(ステップS11)。具体的には、OSが、IHV製ドライバにDIF_FINISHINSTALL_ACTIONを通知して、IHV製ドライバに追加インストーラ131をインストールさせる。全ての情報機器について処理が終わればループを終了する(ステップS12)。その後、OSが、PnPXの完了を示す情報を表示する(ステップS13)。
【0029】
図10は図9のステップS11における後処理の呼び出し処理を説明するフローチャートである。IHV製ドライバが、OSからのメッセージを受け取る(ステップS111)。IHV製ドライバが、受け取ったメッセージがDIF_FINISHINSTALL_ACTIONであるかを判断する(ステップS112)。受け取ったメッセージがDIF_FINISHINSTALL_ACTIONではない場合は、処理を終了する(ステップS115)。受け取ったメッセージがDIF_FINISHINSTALL_ACTIONメッセージである場合は、IHV製ドライバは、ネットワーク4を介して、IHV用Webサーバ100から追加インストーラ131を取得する(ステップS113)。続いて、IHV製ドライバが、取得した追加インストーラ131を実行し(ステップS114)、処理を終了する。IHV製ドライバは、追加インストーラ131の実行の際に、対象情報機器の機種名を追加インストーラに伝える。
【0030】
図9、図10を参照して説明したことから、第1インストール手段(OS)は、デバイスの機能を使用可能にする第2のドライバをPC1にインストールする第2インストール手段を、第1のドライバをPC1にインストールしたことを契機として取得する。
【0031】
図11は、図10のステップS114における追加インストーラの実行処理を説明するフローチャートである。追加インストーラ131は、起動される時に(ステップS201)、IHV製ドライバから対象情報機器の機種名を受け取る。その後、ステップS202乃至S204のループにて、追加インストーラ131は、OSがPnPX中でなくなるまで待つ。具体的には、追加インストーラ131は、OSがPnPX中であるかをOSに問い合わせて調べ、(ステップS203)、OSがPnPX中でなくなるまで待機する。この処理により、全ての情報機器のPnPXが終わってからステップS205以降の処理に進むことになり、その結果、一旦、OSがインストールすることができる情報機器のドライバ(第1のドライバ)が全てインストールされていることになる。
【0032】
次に、追加インストーラ131が、追加インストールを開始することを表示する(ステップS205)。追加インストールは、インストール済みの第1のドライバ(図9のS9を参照)に加えて、情報機器の機能を使用可能にする第2のドライバをインストールすることである。続いて、追加インストーラ131が、図13(B)に示すフルスペックドライバ表と、起動される時に伝えられた対象情報機器の機種名とに基づいて、対象情報機器に対応するフルスペックドライバをリストアップする(ステップS206)。
【0033】
次に、追加インストーラ131が、複合機3が備える全ての対象情報機器について、ステップS208乃至S212の処理を実行する(ステップS207)。まず、追加インストーラ131は、以下に説明するように、ステップS208及びS209の処理により、PC1にフルスペックドライバのインストールが必要であるかを判断する。追加インストーラ131が、ある情報機器に関して、その情報機器に対応する第1のドライバがPC1にインストール済みであるかを調べる(ステップS208)。情報機器に対応する第1のドライバがインストール済みである場合、追加インストーラ131は、この第1のドライバがステップS206においてリストアップされたこの情報機器に対応するフルスペックドライバと一致するかを判断する(ステップS209)。
【0034】
第1のドライバがフルスペックドライバと一致する場合は、ステップS212に進んでループを終了する。第1のドライバがフルスペックドライバと一致しない場合、追加インストーラ131が、PC1にフルスペックドライバのインストールが必要であると判断する。そして、追加インストーラ131が、図8(B)に示すフルスペックドライバ表を参照して、このフルスペックドライバに対応するダウンロードURLを取得する。そして、追加インストーラ131が、取得されたダウンロードURLに基づいて、IHV用Webサーバ100からフルスペックドライバをダウンロードする(ステップS210)。
【0035】
上記ステップS208において、追加インストーラ131が、第1のドライバがPC1にインストール済みでないと判断した場合、追加インストーラ131は、PC1にフルスペックドライバのインストールが必要であると判断して、上記ステップ210に進む。続いて、追加インストーラ131が、ダウンロードされたフルスペックドライバをインストールして(ステップS211)、ループを終了する(ステップS212)。このフルスペックドライバは、前述の第1のドライバに比べ、機能が制限されていない多くの機能が使えるドライバである。全てのループが終了すると、追加インストーラ131が、追加インストールが終了したことを表示し(ステップS213)、処理を終了する。
【0036】
上述した第1の実施形態の情報処理装置は、ネットワーク4にデバイスが接続されてこのデバイスについてPnPXが実行されることを契機として、デバイスに対応する第1のドライバをインストールするとともに、以下の処理を実行する。情報処理装置の追加インストーラ131は、デバイスが有する情報機器のフルスペックドライバがインストール済みであるかを判断し、この判断結果に基づいて、第2のドライバ(フルスペックドライバ)のインストールが必要であるかを判断する。そして、追加インストーラ131は、第2のドライバのインストールが必要であると判断した場合に、ネットワーク4を介して該第2のドライバを情報処理装置にインストールする。従って、この情報処理装置によれば、デバイスについてのPnPXの実行を通じて、このデバイスが有する全ての情報機器のフルスペックドライバをインストールすることができる。本実施形態のインストール方法は、追加インストーラ131の機能により実現される。このインストール方法は、デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行される。このインストール方法は、インストールされているドライバがフルスペックドライバであるか判断する判断ステップを有する。また、このインストール方法は、前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップを有する。また、本実施形態のコンピュータプログラムが、上記インストール方法を実現するプログラムであってもよい。
【0037】
次に、第2の実施形態について説明する。第2の実施形態の情報処理装置の全体動作処理は、図9を参照して説明した動作処理と同様である。また、第2の実施形態の情報処理装置が実行する後処理の呼び出し処理は、図10を参照して説明した後処理の呼び出し処理と同様である。但し、第2の実施形態においては、IHV用Webサーバ100は、追加インストーラ131とは異なる機能を有する追加インストーラ132を備える。従って、OSは、図10のステップS113、S114において、追加インストーラ132を取得し、実行する。また、第2の実施形態においては、後述する必須ドライバが第2のドライバである。
【0038】
図12は第2の実施形態の情報処理装置の構成例を示す図である。PC10は、第2の実施形態の情報処理装置である。PC1の基本的な構成は、実施例1の情報処理装置(PC1)の構成と同様である。PC10が備えるプリンタドライバ70は、符号33乃至38が示す複数のモジュールを備える。プリントプロセッサ33は、印刷レイアウトの変更や印刷画像に対する特殊処理を実行する。グラフィックスドライバ34は、GDI31から送られて来る描画命令に基づいて、印刷用の画像処理を行い、印刷制御コマンドを作成する。UIモジュール35は、プリンタドライバのユーザインタフェースの提供及び制御を行う。ランゲージモニタ36は、データの通信I/F(Interface)であり、データの送受信を制御する。ポートモニタ37は、ランゲージモニタ36から送信されるデータを受信して適切なポートに対して送信したり、複合機3から送信されるデータをクラスドライバ38を介して受信したりする。クラスドライバ38は、最もポートに近いローレベルのモジュールである。本実施形態におけるプリンタドライバ70は、WSDやIHVの独自プロトコルのプリンタクラスのドライバに相当し、ポート(本実施例ではネットワークポート)を制御する。プリンタドライバ70の構成は、OS標準ドライバ、OS提供用ドライバ、フルスペックドライバのいずれについても同様である。
【0039】
アプリケーション30は、印刷指示を発行可能なアプリケーションである。アプリケーション30は、例えば、OSに標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。GDI(Graphics Device Interface )31は、印刷命令を受信する機能を有する。なお、GDIを通して印刷命令を受信できるプリンタドライバのことをGDIプリンタドライバという。プリンタキュー32には印刷ジョブがキューイングされる。プリンタキュー32はスプーラ40に設けられている。キューイングされた印刷ジョブは、不図示のプリンタキューフォルダに表示される。
【0040】
図13は、第2の実施形態における追加インストーラの構成例とドライバ部品表の例を示す図である。図13(A)に示す追加インストーラ132は、第2の実施形態における追加インストーラである。追加インストーラ132は、インストール処理部201、ソフトウェアダウンロード部202、ドライバ部品表204、ドライバ機能一覧表205、アプリ機能表206を備える。インストール処理部201、ソフトウェアダウンロード部202は、それぞれ、図8(A)に示す追加インストーラ131が備えるインストール処理部201、ソフトウェアダウンロード部202と同様である。
【0041】
ドライバ部品表204は、ドライバ部品に関する情報が設定された表である。ドライバ部品は、ドライバと組み合わさって動作する部品である。例えば、図12中に示すポートモニタ37等が、ドライバ部品に該当する。ドライバ機能一覧表205は、デバイスに含まれる情報機器に対応するドライバに関する情報が設定された表である。アプリ機能表206は、アプリケーションの実行に必要な情報機器、ドライバ、及び出力ポートに関する情報が設定された表である。
【0042】
図13(B)は、ドライバ部品表204の例を示す。ドライバ部品表204は、ドライバ部品名、対応情報機器タイプ、対応ドライバタイプ、対応ドライバポート、URLいったデータ構成を有する。ドライバ部品名はドライバ部品の名称である。対応情報機器タイプは、当該ドライバ部品に対応する情報機器のタイプである。対応ドライバタイプは、当該ドライバ部品に対応するドライバのタイプである。対応ドライバポートは、当該ドライバ部品に対応する出力ポートである。URLは、ドライバ部品の位置情報である。具体的には、URLは、IHV用Webサーバ100(図1を参照)内の、ドライバ部品の位置情報を示す。
【0043】
図14は、ドライバ機能一覧表とアプリ機能表の例を示す図である。図14(A)は、ドライバ機能一覧表205の例を示す。ドライバ機能一覧表205は、機種名、情報機器タイプ、ドライバタイプ、ドライバ名、出力可能ポート、優先度、URLといったデータ構成を有する。機種名は、デバイスの機種名である。情報機器タイプは、デバイスが有する情報機器のタイプである。ドライバ名は、当該情報機器の機能を使用するために必要なドライバの名称である。出力可能ポートは、当該ドライバに対応する出力ポートである。優先度は、当該ドライバの優先度である。優先度は、予め決められている。優先度は、例えば、ドライバのインストールに関する優先順位に対応する。優先度として設定されている数字が小さいほど、優先度すなわち優先順位が高いことを示す。URLは、各々のドライバの位置情報である。具体的には、URLは、各々のドライバの、IHV用Webサーバ100内の位置情報を示す。
【0044】
図14(B)は、アプリ機能表206の例を示す。アプリ機能表206は、アプリ名、必須情報機器タイプ、必須ドライバタイプ、必須出力ポートといったデータ構成を有する。アプリ名は、アプリケーションの名称である。必須情報機器タイプは、アプリケーションの実行に必要な情報機器(必須情報機器)のタイプである。必須ドライバタイプは、当該必須情報機器の機能を使用するために必要なドライバ(必須ドライバ)のタイプである。必須出力ポートは、当該必須ドライバに対応する出力ポート(必須出力ポート)である。
【0045】
図15は、第2の実施形態における追加インストーラの実行処理を説明するフローチャートである。図15に示すステップS301乃至S305の処理は、図11に示すステップS201乃至S205の処理と同様である。第2の実施形態においては追加インストーラ132が第2インストーラとして機能する。ステップS306において、追加インストーラ132が、インストール可能アプリ一覧を表示する(ステップS306)。インストール可能アプリ一覧は、PC10にインストール可能であるアプリケーションの一覧である。続いて、ユーザの操作入力に従って、追加インストーラ132が、アプリケーションを選択すると(ステップS307)、追加インストーラ132が、選択されたアプリケーションをPC10にインストールする(ステップS308)。
【0046】
次に、追加インストーラ132が、インストールされたアプリケーション毎に、アプリ機能表206を用いて必須機能表を作成する(ステップS309)。必須機能表は、インストールされたアプリケーションの実行に必要な機能(必須機能)を示す表である。例えば、図14(B)のアプリ機能表206中に示す写真印刷アプリA、写真印刷アプリB、スキャン補助アプリCの全てがインストールされた場合を想定する。追加インストーラ132は、図14(B)のアプリ機能表206を参照して、図16に示すような必須機能表を作成する。
【0047】
図16に示す必須機能表は、必須情報機器タイプ、必須ドライバタイプ、必須ドライバポートといったデータ構成を有する。必須情報機器タイプは、インストールされたアプリケーションの実行に必要な情報機器のタイプである。必須ドライバタイプは、当該情報機器の機能を使用するために必要なドライバ(必須ドライバ)のタイプである。必須ドライバタイプは、当該ドライバに対応する出力ポート(必須出力ポート)である。すなわち、必須機能表は、アプリケーションの実行に必要な情報機器である必須情報機器と、該アプリケーションの実行に必要な必須ドライバと、該アプリケーションの実行に必要な必須出力ポートとの対応情報を示す。以下では、必須機能表に載っている必須情報機器タイプ、必須ドライバタイプ、必須ドライバポートを、必須機能とも記述する。
【0048】
図15に戻って、追加インストーラ132が、ステップS309において作成した必須機能表を参照して、必須情報機器毎に、以下の処理を実行する(ステップS310)。追加インストーラ132が、PC10に対象情報機器に対応するドライバがインストールされているかを判断する(ステップS311)。PC10に対象情報機器に対応するドライバがインストールされていない場合、追加インストーラ132がドライバ機能一覧表205を検索し必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在するかを判断する(ステップS312)。検索の結果、必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在しない場合は、ループを終了する(ステップS327)。これにより、追加インストーラの実行処理が終了する(ステップS328)。必須機能表上の当該対象情報機器に対応する必須機能を全て満たすドライバが存在する場合は、ステップS313に進む。なお、ステップS312において、追加インストーラ132が、ドライバ機能一覧205に必須機能の一部を満たすドライバ(例えば、必須ドライバタイプに対応する必須ドライバ)が存在するかを判断するようにしてもよい。
【0049】
次に、追加インストーラ132が、ステップS312における検索の結果得られたドライバが一つだけであるかを判断する(ステップS313)。検索の結果得られたドライバが一つだけである場合は、追加インストーラ132が、得られたドライバをインストールすることを決定し(ステップS314)、ステップS315に進む。検索の結果得られたドライバが複数ある場合は、追加インストーラ132が、ドライバ機能一覧表205を参照して、得られた複数のドライバのうち、優先度が最も高いドライバをインストールすることを決定し(ステップS319)、ステップS315に進む。
【0050】
次に、追加インストーラ132が、インストールすることを決定したドライバに対応するURLを、ドライバ機能一覧表205に基づいて取得する(ステップS315)。追加インストーラ132が、ステップS315において取得したURLからドライバをダウンロードする(ステップS316)。追加インストーラ132が、ダウンロードしたドライバをインストールする。そして、追加インストーラ132が、出力ポートを必須機能表における当該対象情報機器に対応する必須ドライバポートに設定し(ステップS318)、ステップS327に進む。
【0051】
ステップS311における判断処理の結果、PC10に対象情報機器に対応するドライバがインストールされている場合、追加インストーラ132が、以下の処理を実行する。追加インストーラ132が、PC10に必須機能表上の対象情報機器に対応する必須ドライバタイプのドライバがインストールされているかを判断する(ステップS320)。PC10に必須ドライバタイプのドライバがインストールされていない場合は、ステップS312に進む。PC10に必須ドライバタイプのドライバがインストールされている場合は、ステップS321に進む。
【0052】
次に、追加インストーラ132が、必須機能表に対象情報機器に対応する必須ドライバポート(必須出力ポート)が設定されているかを判断する(ステップS321)。必須機能表に対象情報機器に対応する必須出力ポートが設定されていない場合は、ステップS327に進む。必須機能表に対象情報機器に対応する必須出力ポートが設定されている場合は、ステップS322に進む。
【0053】
次に、追加インストーラ132が、インストールされているドライバに対応する出力ポートとして現在PC10に設定されている出力ポートが必須出力ポートであるかを判断する(ステップS322)。設定されている出力ポートが必須出力ポートである場合は、ステップS327に進む。設定されている出力ポートが必須出力ポートでない場合、追加インストーラ132が、PC10に対象情報機器に対応する必須出力ポートがないと判断し、ステップS327に進む。
【0054】
ステップS327において、追加インストーラ132が、必須出力ポートを実現するポートモジュールをインストールすることを決定する(ステップS323)。具体的には、追加インストーラ132が、図13(B)に示すようなドライバ部品表204を参照して、上記必須出力ポートに対応するポートモニタをインストールすることを決定する。また、追加インストーラ132が、ドライバ部品表を参照して、インストールすることが決定されたポートモジュールのURLを取得する(ステップS324)。続いて、追加インストーラ132が、取得されたURLからポートモジュールをダウンロードする(ステップS325)。そして、追加インストーラ132が、ダウンロードしたポートモジュールをインストールして(ステップS326)、ステップS327に進む。
【0055】
上述した第2の実施形態の情報処理装置は、ネットワーク4にデバイスが接続されてこのデバイスについてPnPXが実行されることを契機として、デバイスに対応する第1のドライバをインストールするとともに、以下の処理を行う。この情報処理装置が備える追加インストーラ132が、選択されたアプリケーションの実行に必要な必須情報機器に対応する必須ドライバが情報処理装置にインストール済みであるかを判断する(ステップS311、S320)。そして、追加インストーラ132は、情報処理装置必須情報機器に対応する必須ドライバがインストール済みでない場合に、該必須ドライバをネットワーク4を介してインストールする。従って、この情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な全ての情報機器の必須ドライバをインストールすることができる。
【0056】
また、追加インストーラ132は、PC10に必須ドライバがインストール済みでない場合に、例えば、必須ドライバのうち、ドライバのインストールに関して予め決められた優先順位に従って選択した必須ドライバをインストールする(S319、S317)。従って、第2の実施形態の情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な全ての情報機器について、第1優先順位の必須ドライバをインストールすることができる。
【0057】
また、追加インストーラ132は、PC10に必須ドライバがインストール済みである場合に、PC10に、必須機能表において必須ドライバに対応づけられている必須出力ポートがあるかを判断する(S321及びS322)。そして、追加インストーラ132は、PC10に必須ドライバに対応づけられている必須出力ポートがない場合に、該必須出力ポートを実現する手段(ポートモジュール)をインストールする(S326)。従って、第2の実施形態の情報処理装置によれば、PnPXの実行を契機として、選択されたアプリケーションの実行に必要な必須ドライバに対応する必須出力ポートを設定することができる。
【0058】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0059】
1 PC
3 複合機
【特許請求の範囲】
【請求項1】
ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識手段と、
前記ネットワークに前記デバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段とを備え、
前記第1インストール手段は、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、
前記第2インストール手段は、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする
ことを特徴とする情報処理装置。
【請求項2】
前記第2インストール手段は、前記デバイスが有する情報機器毎に、前記情報処理装置に前記情報機器の機能を全て使用可能にするフルスペックドライバがインストール済みであるかを判断し、該情報処理装置に前記フルスペックドライバがインストール済みでない場合に、該フルスペックドライバを該情報処理装置にインストールする
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2インストール手段は、選択されたアプリケーションを前記情報処理装置にインストールし、該アプリケーション毎に、該アプリケーションの実行に必要な情報機器である必須情報機器と、該アプリケーションの実行に必要な必須ドライバと、該アプリケーションの実行に必要な必須出力ポートとの対応情報を作成し、該対応情報を参照して、前記必須情報機器毎に、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みであるかを判断し、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みでない場合に、該必須ドライバを前記ネットワークを介してインストールする
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記第2インストール手段は、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みでない場合に、前記必須ドライバのうち、ドライバのインストールに関して予め決められた優先順位に従って選択した必須ドライバをインストールする
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記第2インストール手段は、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みである場合に、前記情報処理装置に、前記対応情報において前記必須ドライバに対応づけられている必須出力ポートがあるかを判断し、前記情報処理装置に該必須出力ポートがない場合に、該必須出力ポートを実現する手段をインストールする
ことを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記第1インストール手段は、プラグアンドプレイによって、前記第1のドライバをインストールする
ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識ステップと、
前記ネットワークに前記デバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストールステップとを有し、
前記第1インストールステップは、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、
前記第2インストールステップは、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする
ことを特徴とする情報処理装置の制御方法。
【請求項8】
請求項7に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項9】
デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行されるインストール方法であって、
インストールされているドライバがフルスペックドライバであるか判断する判断ステップと、
前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップとを有することを特徴とするインストール方法。
【請求項10】
デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行されるプログラムであって、
インストールされているドライバがフルスペックドライバであるか判断する判断ステップと、
前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項1】
ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識手段と、
前記ネットワークに前記デバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストール手段とを備え、
前記第1インストール手段は、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、
前記第2インストール手段は、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする
ことを特徴とする情報処理装置。
【請求項2】
前記第2インストール手段は、前記デバイスが有する情報機器毎に、前記情報処理装置に前記情報機器の機能を全て使用可能にするフルスペックドライバがインストール済みであるかを判断し、該情報処理装置に前記フルスペックドライバがインストール済みでない場合に、該フルスペックドライバを該情報処理装置にインストールする
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2インストール手段は、選択されたアプリケーションを前記情報処理装置にインストールし、該アプリケーション毎に、該アプリケーションの実行に必要な情報機器である必須情報機器と、該アプリケーションの実行に必要な必須ドライバと、該アプリケーションの実行に必要な必須出力ポートとの対応情報を作成し、該対応情報を参照して、前記必須情報機器毎に、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みであるかを判断し、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みでない場合に、該必須ドライバを前記ネットワークを介してインストールする
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記第2インストール手段は、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みでない場合に、前記必須ドライバのうち、ドライバのインストールに関して予め決められた優先順位に従って選択した必須ドライバをインストールする
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記第2インストール手段は、前記情報処理装置に前記必須情報機器に対応する必須ドライバがインストール済みである場合に、前記情報処理装置に、前記対応情報において前記必須ドライバに対応づけられている必須出力ポートがあるかを判断し、前記情報処理装置に該必須出力ポートがない場合に、該必須出力ポートを実現する手段をインストールする
ことを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記第1インストール手段は、プラグアンドプレイによって、前記第1のドライバをインストールする
ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
ネットワークを介して、該ネットワークにデバイスが接続されたことを認識するデバイス認識ステップと、
前記ネットワークに前記デバイスが接続されたことが認識された場合に、該デバイスが有する情報機器に対応する第1のドライバを情報処理装置にインストールする第1インストールステップとを有し、
前記第1インストールステップは、前記デバイスの機能を使用可能にする第2のドライバを前記情報処理装置にインストールする第2インストール手段を、前記第1のドライバを前記情報処理装置にインストールしたことを契機として前記ネットワークを介して取得し、
前記第2インストールステップは、前記情報処理装置に前記第2のドライバのインストールが必要であるかを判断し、前記情報処理装置に前記第2のドライバのインストールが必要である場合に、前記ネットワークを介して該第2のドライバを前記情報処理装置にインストールする
ことを特徴とする情報処理装置の制御方法。
【請求項8】
請求項7に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項9】
デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行されるインストール方法であって、
インストールされているドライバがフルスペックドライバであるか判断する判断ステップと、
前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップとを有することを特徴とするインストール方法。
【請求項10】
デバイスがネットワークに接続されたことに応じてドライバがインストールされた後の後処理で実行されるプログラムであって、
インストールされているドライバがフルスペックドライバであるか判断する判断ステップと、
前記判断ステップによりインストールされているドライバがフルスペックドライバでないと判断された場合、フルスペックドライバをインストールするステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−186969(P2011−186969A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−53951(P2010−53951)
【出願日】平成22年3月11日(2010.3.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願日】平成22年3月11日(2010.3.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]