(57)【要約】【課題】従来、柔軟にデバイスドライバーとは異なるデバイス制御アプリケーションが、ユーザーに対して容易に提供できる仕組みが無かった。【解決手段】本発明は、第１のＵＩ環境（タッチパネルＵＩ）と、該第１のＵＩ環境とは異なる第２のＵＩ環境とを提供するＯＳが実行される情報処理装置であって、前記第１のＵＩ環境が提供されている際に通信ネットワークに接続された周辺機器の識別情報が取得された場合、該識別情報を利用して、前記第１のＵＩ環境で動作するアプリケーションを管理するサービスから、前記周辺機器を制御するためのデバイス制御アプリケーションを取得することを特徴とする。【選択図】図１２
2014203268.tif 000002
【特許請求の範囲】
【請求項１】
第１のユーザーインターフェイス（ＵＩ）環境と、該第１のＵＩ環境とは異なる第２のＵＩ環境とを提供するオペレーティングシステム（ＯＳ）が実行される情報処理装置であって、
通信ネットワークに接続された周辺機器から該周辺機器の識別情報を取得する第１の取得手段と、
前記第１のＵＩ環境が提供されている際に前記第１の取得手段により前記周辺機器の識別情報が取得された場合、該識別情報を利用して、前記第１のＵＩ環境で動作するアプリケーションを管理するサービスから、前記周辺機器を制御するためのデバイス制御アプリケーションを取得する第２の取得手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記識別情報には、モデル識別情報と互換識別情報とが含まれることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の取得手段は、前記識別情報に対応するデバイス制御アプリケーションが取得できない場合に、該識別情報に対応するデバイスドライバーを、デバイスドライバー検索の対象領域から検索することで、取得することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記デバイスドライバー検索の対象領域は、前記情報処理装置のデバイスドライバーを管理するための記憶領域及び外部のサーバーが提供する記憶領域を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２の取得手段は、前記第２のＵＩ環境が提供されている際に前記取得手段により前記周辺機器の識別情報が取得された場合、該識別情報に対応するデバイスドライバーを、デバイスドライバー検索の対象領域から検索することで、取得することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第２の取得手段は、前記識別情報に対応する複数のデバイス制御アプリケーションのなかで、それぞれが提供する機能に基づいて算出された能力値が最も高いデバイス制御アプリケーションを取得することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記能力値は、デバイス制御アプリケーションが前記識別情報に対応していること、及びデバイス制御アプリケーションが提供する機能の数に応じて、算出されることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記通信ネットワークに周辺機器が参加した際に、前記ＯＳの機能として提供される前記取得手段による当該周辺機器の識別情報の取得が行われることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
デバイスドライバーのインストーラが起動されると、前記取得手段による周辺機器の識別情報の取得が行われることを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記周辺機器はプリンターであることを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記第１のＵＩ環境は、前記第２のＵＩ環境よりもタッチパネルの操作に適したＵＩ環境であることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記第２のＵＩ環境は、前記ＯＳよりもバージョンが低いＯＳとの互換を保つために提供されるＵＩ環境であることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
通信ネットワークに接続された周辺機器から該周辺機器の識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得された識別情報に含まれるクラス情報で前記周辺機器が複合機であることを示す場合には、該識別情報を利用して、前記周辺機器を制御するためのデバイス制御アプリケーションを取得する第２の取得手段と、を有し、
前記第２の取得手段は、前記識別情報に対応するデバイス制御アプリケーションが取得できない場合に、前記識別情報に対応するデバイスドライバーを取得することを特徴とする情報処理装置。
【請求項１４】
第１のユーザーインターフェイス（ＵＩ）環境と、該第１のＵＩ環境とは異なる第２のＵＩ環境とを提供するオペレーティングシステム（ＯＳ）が実行される情報処理装置における制御方法であって、
通信ネットワークに接続された周辺機器から該周辺機器の識別情報を取得する第１の取得工程と、
前記第１のＵＩ環境が提供されている際に前記周辺機器の識別情報が取得された場合、該識別情報を利用して、前記第１のＵＩ環境で動作するアプリケーションを管理するサービスから、前記周辺機器を制御するためのデバイス制御アプリケーションを取得する第２の取得工程と、を有することを特徴とする制御方法。
【請求項１５】
前記識別情報には、モデル識別情報と互換識別情報とが含まれることを特徴とする請求項１４に記載の制御方法。
【請求項１６】
前記第２の取得工程では、前記識別情報に対応するデバイス制御アプリケーションが取得できない場合に、該識別情報に対応するデバイスドライバーが、デバイスドライバー検索の対象領域から検索することで、取得されることを特徴とする請求項１４または１５に記載の制御方法。
【請求項１７】
前記デバイスドライバー検索の対象領域は、前記情報処理装置のデバイスドライバーを管理するための記憶領域及び外部のサーバーが提供する記憶領域を含むことを特徴とする請求項１６に記載の制御方法。
【請求項１８】
前記通信ネットワークに周辺機器が参加した際に、前記ＯＳの機能として当該周辺機器の識別情報の取得が行われることを特徴とする請求項１４乃至１７のいずれか一項に記載の制御方法。
【請求項１９】
デバイスドライバーのインストーラが起動されると、前記周辺機器の識別情報の取得が行われることを特徴とする請求項１４乃至１７のいずれか一項に記載の制御方法。
【請求項２０】
前記第１のＵＩ環境は、前記第２のＵＩ環境よりもタッチパネルの操作に適したＵＩ環境であることを特徴とする請求項１４乃至１９のいずれか一項に記載の制御方法。
【請求項２１】
情報処理装置における制御方法であって、
通信ネットワークに接続された周辺機器から該周辺機器の識別情報を取得する第１の取得工程と、
前記取得された識別情報に含まれるクラス情報で前記周辺機器が複合機であることを示す場合には、該識別情報を利用して、前記周辺機器を制御するためのデバイス制御アプリケーションを取得する第２の取得工程と、を有し、
前記第２の取得工程では、前記識別情報に対応するデバイス制御アプリケーションが取得できない場合に、前記識別情報に対応するデバイスドライバーが取得されることを特徴とする制御方法。
【請求項２２】
請求項１乃至１２のいずれか一項に記載の手段としてコンピューターを機能させるためのプログラム。
【請求項２３】
請求項１３に記載の手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばコンピューターに接続されたプリンターなどの周辺機器を利用するために、適切なデバイスドライバーもしくはデバイス制御アプリケーション等をインストールする技術に関する。
【背景技術】
【０００２】
コンピューターにプリンター等の周辺機器を接続した際に接続された機器を利用するためのデバイスドライバーをコンピューターに組み込む技術として、Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ（プラグアンドプレイ）がよく知られている。
【０００３】
プラグアンドプレイ技術を採用することで、ユーザーは周辺機器を利用するための煩雑なデバイスドライバーのインストール作業や設定の作業から解放され、利便性が格段に向上する。
【０００４】
米国マイクロソフト社のオペレーティングシステム（以降、ＯＳと呼ぶ）であるＷｉｎｄｏｗｓ（登録商標）がプリンター向けに行うプラグアンドプレイはユニバーサルシリアルバス（ＵＳＢ）やＷｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅｓ（ＷＳＤ）のインターフェイスを介してプリンターから識別情報を取得する。取得した識別情報を元にＯＳは最適なデバイスドライバーを探し出し、デバイスドライバーをインストールし、プリンターを検知した接続先を出力先に設定する動作を行う。
【０００５】
このＷｉｎｄｏｗｓ  ＯＳのプラグアンドプレイでは、プリンターからプリンターのモデル識別情報（ＭＤＬ）を取得し、モデル識別情報（ＭＤＬ）に対応するプリンタードライバーを探し、インストールを行い、出力先ポートの設定を行う機能を提供する。もし、モデル識別情報（ＭＤＬ）に対応するプリンタードライバーが見つからなければ、プリンターの互換識別情報（ＣＩＤ）を取得し、この互換識別情報（ＣＩＤ）に対応するプリンタードライバーを探し、インストールを行い、出力先ポートの設定を行う。
【０００６】
この様にすることで、プリンターのモデル識別情報（ＭＤＬ）に応じたモデル毎のプリンタードライバーを優先的にインストールすることができる。もし、モデル毎のプリンタードライバーが見つからないのであれば、互換識別情報（ＣＩＤ）に応じた各プリンターファミリーやクラスに対して共通なプリンタードライバーを導入することになる。
【０００７】
尚、上記のようなオペレーティングシステムの提供するプラグアンドプレイシステムを利用した先行技術として、特許文献１に示すような技術も存在する。この特許文献１ではプリンターが他のプリンターを検索する。その際、共通プリンタードライバー向けの機器ＩＤが設定されているプリンターが見つかった場合に、共通プリンタードライバー向けの機器ＩＤをプラグアンドプレイの機器ＩＤ要求に応答することについて記載されている。この先行技術例ではプリンター側でプラグアンドプレイ要求に応答する機器ＩＤを共通プリンタードライバー向けの機器ＩＤに書き換えることで、インストールされるプリンターを制御する例について述べられている。
【０００８】
また、近年では、携帯電話などのモバイル機器やタブレットなど、タッチパネルしか持たない画面の小さなデバイスも多い。そこで、ＯＳは、新たなユーザーインターフェース（ＵＩ）環境として、タッチパネルの操作に最適化されたＵＩ環境（以降、タッチパネル用ＵＩと呼ぶ）を持つようになってきている。タッチパネルに最適なタッチパネル用ＵＩは、ユーザーの指で操作しやすいようなボタン配置になっている。一方で、マウスやキーボードにより選択指示などを行っていた従来までのＵＩ環境のことを、デスクトップＵＩと呼ぶ。また、タッチパネル用ＵＩからデスクトップＵＩへ手動により表示を切り替えられるように構成されたＯＳも出てきている。このようなＯＳ上で動作するアプリケーションを作成するには、それぞれのＵＩ向けに異なるパッケージを用意する必要がある。
【０００９】
一方、デスクトップＵＩ用に設計されているプリンタードライバーに関しては、タッチパネル用ＵＩのアプリケーションからの印刷要求時でもそのプリンタドライバーが使用可能となるよう、ＯＳが互換性を持たせている。これによってユーザーは、タッチパネル用ＵＩをもつ新たなＯＳの環境においても、従来のＵＩ環境であるデスクトップＵＩ用に作成された従来のプリンタードライバーを使用して、印刷を行なうことができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−０１３８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
モデル識別情報（ＭＤＬ）に紐付けられ各プリンターのモデル毎に提供されるプリンタードライバーを「スペシフィックドライバー」と呼ぶことにする。また、互換識別情報（ＣＩＤ）に紐付けられ該当プリンターのファミリーやクラスに対して共通なプリンタードライバーを「クラスドライバー」と呼ぶことにする。またタッチパネル用ＵＩで動作するアプリケーションとして作成された、プリントやスキャンやファックスの機能をもつ周辺機器を利用し、また制御するためのアプリケーションを「デバイス制御アプリ」と呼ぶことにする。背景技術で述べたように、モデル識別情報（ＭＤＬ）に対応するスペシフィックドライバーが見つからない場合、互換識別情報（ＣＩＤ）に対応するクラスドライバーを導入するプラグアンドプレイの仕組みは既に提供されている。この仕組みを利用することで、プラグアンドプレイでスペシフィックドライバーが見つからない場合であっても、適切なクラスドライバーをインストールすることが可能になった。また、簡便なユーザー操作で必要なプリンタードライバーをインストールすることが可能になった。
【００１２】
しかしながら、プラグアンドプレイの仕組みで導入されるスペシフィックドライバーやクラスドライバーは、背景技術記載のタッチパネル用ＵＩに最適なプリンタードライバーではない。例えば、従来、プリンタードライバーが有しているセキュアプリント機能や部門管理機能などの機能を用いた印刷に際してユーザー情報を確認するような機能に関するＵＩはタッチパネル用ＵＩには提供されない。また印刷時にダイアログをポップアップしてユーザーの入力を促すようなポップアップＵＩは、従来のＵＩ環境であるデスクトップＵＩ上に表示する必要がある等の機能制限がある。
【００１３】
タッチパネル用ＵＩ向けに作成されたデバイス制御アプリにおいては前記のような制限事項はない。しかしながら、デバイス制御アプリを導入するための簡易的な仕組み例えばプラグアンドプレイのような仕組みは存在しないため、ユーザー自らが各プリンターのモデルに対応したデバイス制御アプリのインストール作業を行う必要があるとの課題がある。
【００１４】
よって、本発明は上記従来の技術に鑑みてなされたもので、情報処理装置におけるＵＩ環境などの様々な条件を考慮しつつ、柔軟にデバイス制御アプリを容易にユーザーに提供できる仕組みを構築することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明は、例えば、第１のユーザーインターフェイス（ＵＩ）環境と、該第１のＵＩ環境とは異なる第２のＵＩ環境とを提供するオペレーティングシステム（ＯＳ）が実行される情報処理装置であって、通信ネットワークに接続された周辺機器から該周辺機器の識別情報を取得する第１の取得手段と、前記第１のＵＩ環境が提供されている際に前記第１の取得手段により前記周辺機器の識別情報が取得された場合、該識別情報を利用して、前記第１のＵＩ環境で動作するアプリケーションを管理するサービスから、前記周辺機器を制御するためのデバイス制御アプリケーションを取得する第２の取得手段と、を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ＵＩ環境などの様々な条件を考慮しつつ、柔軟にデバイス制御アプリを容易にユーザーに提供できる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態のシステム構成を示すブロック図
【図２】クライアントコンピューター１０２の構成を示すブロック図
【図３】プリンター１００の構成を示すブロック図
【図４】クライアントコンピューター１０２のソフトウェア構成を示すブロック図
【図５】サーバーコンピューター１０４のソフトウェア構成を示すブロック図
【図６】プリンター１００のソフトウェア構成を示すブロック図
【図７】機器ＩＤ３４０の構成及び例を示す図
【図８】ドライバインストーラ８００のソフトウェア構成を示すブロック図
【図９】デスクトップＵＩ９００の例
【図１０】タッチパネル用ＵＩ１０００の例
【図１１】タッチパネル用ＵＩ向けのアプリケーションのＵＩ１１０１とＯＳが自動生成するＵＩ１１０２の例
【図１２】デバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたプラグアンドプレイ処理のフロー図
【図１３】図１３は機器ＩＤ３４０に最適なデバイス制御アプリ２５０を検索する処理（ステップＳ１３００）のフロー図
【図１４】マッチングスコアの算出方法の一例を示す図
【図１５】デバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたプラグアンドプレイ処理のフロー図
【図１６】デバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたドライバインストーラ８００のインストール処理のフロー図
【図１７】デバイス制御アプリが見つかった場合の処理（ステップＳ１７００）のフロー図
【図１８】プリンタードライバーが見つかった場合の処理（ステップＳ１８００）のフロー図
【図１９】プリンタードライバーが見つからなかった場合の処理（ステップＳ１９００）のフロー図
【図２０】プリンターの追加画面の例
【図２１】機器ＩＤ３４０に含まれるクラス情報（ＣＬＳ）によってインストール処理を切り替える処理のフロー図
【図２２】モデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）に対応するデバイス制御アプリもしくはプリンタードライバーの検索とインストール処理のフロー図
【発明を実施するための形態】
【００１８】
(第１実施形態)
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は本発明のシステム構成の一例を示すブロック図である。図１において、プリンタードライバーおよびデバイス制御アプリケーション（以降、デバイス制御アプリ）のインストールに係るシステムは、周辺機器、クライアントコンピューター１０２、サーバコンピューター１０４で構成される。本発明では、周辺機器の一例として、具体的にプリンター１００を挙げて説明を行う。本発明が適用可能な周辺機器の例としては、他にもスキャナーや複写機や複合機などといった機器が挙げられる。プリンター１００とクライアントコンピューター１０２は双方向通信が可能な接続媒体１０１を介して、クライアントコンピューター１０２とサーバコンピューター１０４はインターネットあるいはイントラネット等の通信可能な接続媒体（通信ネットワーク）１０３を介して接続されている。なお、サーバコンピューター１０４は複数存在していても構わない。
【００１９】
＜コンピューターの構成＞
図２は代表的なクライアントコンピューター１０２である情報処理装置の構成を示すブロック図である。クライアントコンピューター１０２はＣＰＵ１によって制御される。ＣＰＵ１はＲＯＭ３に記憶された基本入出力システム（ＢＩＯＳ制御プログラム）や外部メモリ１１に記憶されたオペレーティングシステム（ＯＳ）や各種アプリケーションプログラムなどをＲＡＭ２にロードし、実行することが可能である。外部メモリ１１は外部メモリーインターフェイス７を介してバス４に接続されている。クライアントコンピューター１０２にはユーザーからの入力を受けるキーボード９や処理の結果を画像としてユーザーに表示するためのディスプレイ１０が接続されている。キーボードやディスプレイはそれじれキーボードインターフェイス５、ディスプレイインターフェイス６を介してバス４に接続されている。更に、他情報機器やプリンターなどの機器と通信を行うためのネットワーク・プリンターＩ／Ｆ８を備える。
【００２０】
なお、サーバコンピューター１０４も図２で説明したクライアントコンピューター１０２と同様のハードウェア構成を持つ単独のサーバ装置あるいはクラスターサーバー装置として構成される。
【００２１】
＜プリンターの構成＞
図３は周辺機器（プリンター１００）の構成を示すブロック図である。プリンター１００はＣＰＵ１２により制御される。ＣＰＵ１２はＲＯＭ１４に記憶された制御プログラムへ外部メモリ２２に格納された各種プログラムをＲＡＭ１３にロードし、実行することが可能である。ＣＰＵ１２は制御プログラムの動作に基づいて入出力部１６を介して入力された印刷データを画像信号に変換し、印刷部インターフェイス１７を介して印刷部２０に出力することで印刷することが可能である。またＣＰＵ１２は制御プログラムの動作に基づいて入出力部１６を介して入力された各種応答要求に対して、処理した結果を入出力部１６から出力する。尚、プリンター１００には操作部２１が接続され、ユーザーからの直接の入力を受け付けることも可能になっている。周辺機器としては、他にもスキャナーやコピー機、ＦＡＸ装置などが挙げられる。なおこれら構成要素はバス１５に接続されており、外部メモリ２２は外部メモリーインターフェイス１８を介してバス１５に接続されている。
【００２２】
＜クライアントコンピューターのソフトウェア構成＞
図４はクライアントコンピューター１０２のソフトウェア構成を示すブロック図である。図４を用いて、クライアントコンピューター１０２のソフトウェア構成について説明する。
【００２３】
プラグアンドプレイ検出部２１０はユニバーサルシリアルバス（ＵＳＢ）やＷｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅｓ（ＷＳＤ）等のインターフェイスを介して、新たにネットワークに参加した周辺機器を検出する。具体的には、プリンター１００がネットワークに接続された場合や、ネットワーク上のプリンター１００の電源がＯＮになった場合に検出が行われる。検知対象の機器はプリンターとは限らないが、本実施形態ではプリンタを対象機器として説明する。機器ＩＤ取得部２２０はプラグアンドプレイで検出されたプリンター１００に機器ＩＤ取得要求を送り、機器ＩＤを取得する。機器ＩＤについては後述する。ドライバー検索部２３０は取得した機器ＩＤに対応したデバイス制御アプリ２５０やスペシフィックドライバー２６０やクラスドライバー２７０の検索を行う。尚、ドライバー検索部２３０の検索範囲（ドライバー検索の対象領域）は、クライアントコンピューター１０２内のＯＳにより管理される記憶領域の一部であるドライバーストアーがある。他にも、ドライバー検索の対象領域は、クライアントコンピューター１０２に接続された外部記憶媒体も含まれてもよい。また、それに留まらず、ドライバー検索の対象領域としては、予め決められた外部のサーバコンピューター１０４に対しても行われてもよい。ドライバーインストール処理部２４０はドライバー検索部２３０が見つけたデバイス制御アプリ２５０やスペシフィックドライバー２６０やクラスドライバー２７０のインストール処理を行う。
尚、デバイス制御アプリ２５０、スペシフィックドライバー２６０、クラスドライバー２７０については後述する。
【００２４】
尚、クライアントコンピューター１０２には、ＯＳと一緒にバンドルされていたり、後から導入されたりしたスペシフィックドライバー２６０やクラスドライバー２７０を保持できるものとする。ＵＩスタイル取得部２９０はディスプレイ１０に表示されているＵＩ環境がタッチパネル用ＵＩかデスクトップＵＩかのＵＩスタイル情報取得処理を行う。なお、タッチパネル用ＵＩは、従来までのデスクトップＵＩに比べて、タッチパネルでの操作により適した表示制御などを行うＵＩ環境である。ドライバインストーラ８００はアプリケーションプログラムであり、プラグアンドプレイ検出部と機器ＩＤ取得部とドライバー検索部とで構成される。
【００２５】
［デバイス制御アプリについて］
デバイス制御アプリ２５０は各々のモデルに対応した印刷やファックスやスキャンの機能を有したアプリケーションであり、タッチパネル用ＵＩ上で動作するアプリケーションとして設計されたものである。また、機器ＩＤ３４０を利用するプラグアンドプレイシステムでは、モデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）の両方、もしくはどちらか片方に対応する。本実施形態のデバイス制御アプリは、周辺機器を制御するための機能を持ち、周辺機器の設定を行うためのＵＩ画面を提供する。その画面は、タッチパネル操作に対応したもので、たとえば選択用のスイッチやボタン類が指先で選択できる程度に大きく、また、キーボードが装備されていないコンピューターであればテキストボックスのための仮想キーボードが表示されるなど、タッチパネル操作で容易に操作を行える。変更可能な設定は従来のプリンタードライバーに準じたものであり、例えばＡ３やＡ４などの用紙サイズや用紙種類、レイアウト、品質、給紙部、部数、縁の有無等である。さらに、複数種類のプリンターに対応したデバイス制御アプリであれば、プリンターの種類を選択することもできる。さらにアプリケーションとしての機能も有しており、例えば印刷対象のデータファイルを選択することができる。
【００２６】
またデバイス制御アプリは周辺機器のベンダにより提供され、たとえばＯＳのベンダなどが提供するサービスである「アプリストアー」などと呼ばれる所定のサーバーシステムからコンピューターに対してダウンロード可能に保持、管理される。
【００２７】
［スペシフィックドライバーについて］
スペシフィックドライバー２６０は、プリンター１００の各々のモデルに対応したプリンタードライバーであり、機器ＩＤ３４０を利用するプラグアンドプレイシステムではモデル識別情報（ＭＤＬ）に対応するプリンタードライバーである。
【００２８】
［クラスドライバーについて］
クラスドライバー２７０はプリンター１００の属するファミリーやクラスに共通したプリンタードライバーであり、機器ＩＤ３４０を利用するプラグアンドプレイシステムでは互換識別情報（ＣＩＤ）に対応するプリンタードライバーである。また、クラスドライバー２７０は、ＯＳに同梱されるインボックスドライバーとして、提供される場合もある。
【００２９】
＜サーバーコンピュータのソフトウェア構成＞
図５はサーバコンピューター１０４のソフトウェア構成を示すブロック図である。図５を用いて、サーバコンピューター１０４のソフトウェア構成について説明する。サーバコンピューター１０４には、クラアントコンピューター１０２のドライバー検索部２３０に応答するためのドライバー管理部２８０を備える。ドライバー管理部２８０を介して、サーバコンピューター１０４はクライアントコンピューター１０２にデバイス制御アプリ２５０やスペシフィックドライバー２６０やクラスドライバー２７０を提供する。尚、サーバコンピューター１０４に各プリンターベンダーが提供する最新のデバイス制御アプリやプリンタードライバーを保持しておく。そうすることで最新のデバイス制御アプリやプリンタードライバーをクライアントコンピューター１０２に提供することが可能になる。
【００３０】
＜プリンターのソフトウェア構成＞
図６はプリンター１００のソフトウェア構成を示すブロック図である。図６を用いて、プリンター１００のソフトウェア構成について説明する。
【００３１】
印刷ジョブ制御部３１０は受信した印刷データを印刷するための印刷ジョブ制御を行う。印刷処理部３２０は実際に印刷処理を実行する。機器情報提供部３３０は機器ＩＤ取得部の要求に応じてプリンター１００内に保持している機器ＩＤ３４０を提供する。
【００３２】
＜機器ＩＤの構成及び例＞  図７は機器ＩＤ３４０の構成及び例を示す図である。まず図７（Ａ）を用いて、本発明で扱う機器ＩＤ３４０の構成及び例を説明する。機器ＩＤ３４０は文字列情報の形で表現され、主な要素として次に示す要素で構成される。
機器の製造者情報を示す"ＭＡＮＵＦＡＣＴＵＲＥＲ"（以下ＭＦＧ）。
機器が対応しているコマンドセット示す"ＣＯＭＭＡＮＤ  ＳＥＴ"（以下ＣＭＤ）。
機器のモデル識別情報を示す"ＭＯＤＥＬ"（以下ＭＤＬ）。
機器のクラス情報を示す"ＣＬＡＳＳ"（以後ＣＬＳ）。
機器の属するファミリーやクラスの互換識別情報を示す"ＣＯＭＰＡＴＩＢＬＥ  ＩＤ"（以下ＣＩＤ）。
尚、ＩＥＥＥ１２８４の規定ではＭＦＧ、ＭＤＬ、ＣＭＤの提供は必須とされているが、ＣＬＳ、ＣＩＤの提供は任意となっている。
【００３３】
図７（Ｂ）は機器ＩＤの一例を示している。この例では製造者は"ＡＢＣ"であり、コマンドセットとして"ＰＣＬ"をサポートしており、モデル名称が"Ｍ１２３"というプリンターである。また、クラスが"ＰＲＩＮＴＥＲ"であり、互換識別情報としては"Ｃｌａｓｓ１"という名称が与えられている機器であることを示している。
【００３４】
＜ドライバインストーラのソフトウェア構成＞
図８はドライバインストーラ８００のソフトウェア構成を示すブロック図である。図８を用いて、ドライバインストーラ８００のソフトウェア構成について説明する。プラグアンドプレイ検出部８１０はユニバーサルシリアルバス（ＵＳＢ）やＷｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅｓ（ＷＳＤ）等のインターフェイスを介して接続されたプリンター１００の検知を行う。機器ＩＤ取得部８２０はインストール対象のプリンター１００に機器ＩＤ取得要求を送り、機器ＩＤを取得する。ドライバー検索部８３０は取得した機器ＩＤに対応したデバイス制御アプリ２５０やスペシフィックドライバー２６０やクラスドライバー２７０の検索を行う。尚、ドライバー検索部８３０の検索範囲は、予め決められたサーバコンピューター１０４に対して行われるものとする。
【００３５】
［タッチパネル用ＵＩとデスクトップＵＩについて］
本実施形態におけるデスクトップＵＩの一例を図９に示す。また、本実施形態におけるタッチパネル用ＵＩの一例を図１０に示す。タッチパネルに最適なタッチパネル用ＵＩ１０００は、ユーザーの指で操作しやすいようなタイル形式のボタン配置（例えば、ボタン１００１やボタン１００２）となっている。ユーザーはそれぞれのボタンをタッチすることで、ボタンに対応した機能、例えばアプリケーションプログラムの実行などをコンピューターに行わせることができる。また、上記タッチパネル用ＵＩ１０００からデスクトップＵＩ９００へ手動により表示を切り替えられるように構成されたＯＳも出てきている。
【００３６】
一方、デスクトップＵＩ９００用に設計されているプリンタードライバーに関しては、タッチパネル用ＵＩ１０００のアプリケーションからの印刷要求時でも使用可能となるよう、ＯＳが互換性を持たせている。これによってユーザーは、タッチパネル用ＵＩ１０００をもつ新たなＯＳの環境においても、従来のＵＩ環境であるデスクトップＵＩ９００用に作成された従来のプリンタードライバーを使用して、印刷を行なうことができる。
【００３７】
しかしながら、タッチパネル用ＵＩ１０００におけるアプリケーションから従来のプリンタードライバーのＵＩを表示すると使い勝手の悪いものとなってしまう。タッチパネルで操作するユーザーにとって、マウスやキーボードの入力を前提とした従来のプリンタードライバーのＵＩは細かすぎ、操作しづらいからである。
【００３８】
このため、タッチパネル用ＵＩ１０００ではプリンタードライバーのＵＩを直接表示せず、ＸＭＬ形式のメタデータを元にＯＳがＵＩを自動生成して印刷設定を指定させることで使い勝手の向上を図るなどしている。本実施形態におけるタッチパネル用ＵＩ１０００におけるアプリケーションのＵＩ１１０１とＸＭＬ形式のメタデータを元にＯＳが自動生成するＵＩ１１０２の一例を図１１に示す。ＸＭＬ形式のメタデータを元に自動生成されるＵＩ１１０２では印刷体裁に関する設定の指定のみ可能である。図１１のＵＩ１１０２では印刷部数、用紙方向、カラー／白黒の指定が可能となっている。
【００３９】
［デバイス制御アプリおよびプリンタードライバーのインストール処理（その１）］
図１２はデバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０とを検索対象としたプラグアンドプレイの処理フローである。この図を用いて、デバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０とを検索対象としたプラグアンドプレイの処理について説明を行う。
【００４０】
まず、クライアントコンピューター１０２のプラグアンドプレイ検出部２１０が接続媒体１０１を介してプリンター１００が接続されたことを検知し、このプラグアンドプレイの処理が開始される。
【００４１】
機器ＩＤ取得部２２０はプリンター１００に対して機器ＩＤ３４０の取得要求を発行し、この取得容要求を受けたプリンター１００の機器情報提供部３３０は、機器ＩＤ３４０を機器ＩＤ取得部２２０に対して返答する。機器ＩＤ取得部２２０は取得した機器ＩＤ３４０に含まれるモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）をドライバー検索部２３０渡す（ステップＳ１２０１）。
【００４２】
ステップＳ１２０２にてＵＩスタイル取得部２９０は、クライアントコンピューター１０２のディスプレイ１０に表示されているＵＩがタッチパネル用ＵＩかデスクトップＵＩどちらであるかのＵＩスタイル情報を取得する。ステップＳ１２０２の処理でタッチパネル用ＵＩであるとの情報が取得された場合ステップＳ１３００へ、デスクトップＵＩであるとの情報が取得された場合はステップＳ１２０５に処理を進める（ステップＳ１２０３）。
【００４３】
ステップＳ１３００にてドライバー検索部２３０はデバイス制御アプリ検索処理を行う。ステップＳ１３００の処理については図１３にて後述する。ステップＳ１３００の検索処理にて、機器ＩＤ３４０に対応するデバイス制御アプリ２５０が見つかった場合ステップＳ１７００へ、見つからなかった場合はステップＳ１２０５に処理を進める（ステップＳ１２０４）。
【００４４】
ステップＳ１７００にて、ドライバーインストール処理部２４０はデバイス制御アプリのインストール処理を行う。ステップＳ１７００の処理については図１７にて後述する。
【００４５】
ステップＳ１２０５にてドライバー検索部２３０は機器ＩＤ取得部２２０から受け取ったモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０の検索を実施する。このステップＳ１２０５の検索処理でスペシフィックドライバー２６０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１２０７に処理を進める（ステップＳ１２０６）。ステップＳ１８００の処理については図１８にて後述する。
【００４６】
ステップＳ１２０６にてモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０が見つからない場合、ステップＳ１２０７へと進む。
【００４７】
ステップＳ１２０７では、ドライバー検索部２３０は機器ＩＤ取得部２２０から受け取った互換識別情報（ＣＩＤ）に対応するクラスドライバー２７０の検索を実施する。もしも機器ＩＤ３４０に互換識別情報（ＣＩＤ）の記載がなかった場合は空の情報を受け取ることになるため、対応するクラスドライバー２７０は見つからない。
【００４８】
このステップＳ１２０７の検索処理でクラスドライバー２７０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１９００に進む。（ステップＳ１２０８）ステップＳ１９００の処理については図１９にて後述する。
【００４９】
図１２の手順では、プリンタードライバーをインストールしようとするコンピューターのユーザーインターフェイスがタッチパネル用ＵＩか否かを判定し、タッチパネルＵＩであればデバイス制御アプリを優先的に探索する。そしてタッチパネル用ＵＩでない場合、または該当するデバイス制御アプリが見つからなかった場合に、従来のユーザーインターフェイスに対応したプリンタードライバーのインストールを試みている。
【００５０】
［ステップＳ１３００の詳細］
図１３は機器ＩＤ３４０に最適なデバイス制御アプリ２５０を検索する処理（ステップＳ１３００）のフローである。この図を用いてデバイス制御アプリ２５０の検索について説明を行う。
【００５１】
ステップＳ１３０１にてサーバコンピューター１０４のデバイス制御アプリすべてを検索し終えた場合ステップＳ１３０７へ、サーバコンピューター１０４のデバイス制御アプリすべてを検索していない場合にはステップＳ１３０２に処理を進める。ステップＳ１３０２にてドライバー検索部２３０は受け取った機器ＩＤ３４０に対応するデバイス制御アプリ２５０の検索を実施する。デバイス制御アプリ２５０の検索はサーバコンピューター１０４に保存されたデバイス制御アプリを対象として、モデル識別情報（ＭＤＬ）もしくは互換識別情報（ＣＩＤ）に対応したデバイス制御アプリかどうか順次検索を行う。モデル識別情報（ＭＤＬ）もしくは互換識別情報（ＣＩＤ）に対応したデバイス制御アプリ２５０が見つかった場合ステップＳ１３０４へ、見つからなかった場合にはステップＳ１３０１に処理を進める。前記の処理を行うことで、サーバコンピューター１０４上のすべてのデバイス制御アプリに対して検索処理を行う（ステップＳ１３０３）。
【００５２】
ステップＳ１３０４にてドライバー検索部２３０は検索で見つかったデバイス制御アプリ２５０の能力情報問い合わせをドライバー管理部２８０に対して行う。デバイス制御アプリの能力情報とは、例えばホチキスやパンチなどのプリンターオプション機能や、セキュアプリント機能や部門管理機能などの印刷機能が利用可能もしくは利用不可能かの情報である。例えば、デバイス制御アプリの能力情報の一例は次のようなものである。
【００５３】
デバイス制御アプリＡ：プリンターオプション機能＝可：セキュアプリント機能＝可：部門管理機能＝不可、
デバイス制御アプリＢ：プリンターオプション機能＝不可：セキュアプリント機能＝不可：部門管理機能＝不可、
デバイス制御アプリＣ：プリンターオプション機能＝不可：セキュアプリント機能＝可：部門管理機能＝不可。
【００５４】
この例ではデバイス制御アプリＡはプリンターオプション機能とセキュアプリント機能が利用可能であり部門管理機能は利用不可能であることを示している。またデバイス制御アプリＢはプリンターオプション機能とセキュアプリント機能と部門管理機能が利用不可であることを示している。またデバイス制御アプリＣはセキュアプリント機能が利用可能でありプリンターオプション機能と部門管理機能が利用不可能であることを示している。
【００５５】
ステップＳ１３０５にてドライバー検索部２３０はデバイス制御アプリ２５０に対するマッチングスコアの算出を行う。マッチングスコアとは検索で見つかったデバイス制御アプリ２５０のモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）の対応状況とその能力値から算出する能力的な適合度を数値で示したものである。図１４はマッチングスコアの算出方法の一例を示している。この例ではモデル識別情報（ＭＤＬ）に対応している場合は１０点、互換識別情報（ＣＩＤ）に対応している場合は５点、能力情報で対応する機能１つにつき１０点とした合計値でマッチングスコアが算出される。例えば、図１４のデバイス制御アプリＡは、モデル識別情報（ＭＤＬ）と２つの機能に対応しているため、マッチングスコアは３０点となる。同様にデバイス制御アプリＢは５点、デバイス制御アプリＣは２５点となり、デバイス制御アプリＡの能力値が最も高い。
【００５６】
ステップＳ１３０６にてドライバー検索部２３０は算出したマッチングスコアと該当デバイス制御アプリの情報とを検索結果テーブルに保存する。検索結果テーブルには、例えば、デバイス制御アプリの情報としてアプリ名とモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）の対応状況とその能力情報（能力値）とが保存され、算出されたマッチングスコアが当該アプリに関連付けて保存される。
【００５７】
ステップＳ１３０７にてドライバー検索部２３０は検索結果テーブルを参照し、検索結果テーブルに情報がある場合ステップＳ１３０８に進み、情報がない場合には該当するデバイス制御アプリが見つからないものとして処理を終了する。
【００５８】
ステップＳ１３０８にてドライバー検索部２３０は検索結果テーブルのマッチングスコアが最も高いデバイス制御アプリ２５０をサーバコンピューター１０４からクライアントコンピューター１０２にダウンロードする。その後に、デバイス制御アプリ２５０のアプリ名を検索結果としてドライバーインストール処理部２４０に渡し、処理を終了する。
【００５９】
［デバイス制御アプリおよびプリンタードライバーのインストール処理（その２）］
図１５はデバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたプラグアンドプレイの、図１２に代わり得る処理フローである。図１５の手順は、従来のプラグアンドプレイの処理にデバイス制御アプリ２５０を検索対象に追加したプラグアンドプレイシステムの処理についての処理フローである。
【００６０】
まず、クライアントコンピューター１０２のプラグアンドプレイ検出部２１０が接続媒体１０１を介してプリンター１００が接続されたことを検知し、このプラグアンドプレイの処理が開始される。
【００６１】
機器ＩＤ取得部２２０はプリンター１００に対して機器ＩＤ３４０の取得要求を発行し、この取得容要求を受けたプリンター１００の機器情報提供部３３０は、機器ＩＤ３４０を機器ＩＤ取得部２２０に対して返答する。機器ＩＤ取得部２２０は取得した機器ＩＤ３４０に含まれるモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）をドライバー検索部２３０に渡す（ステップＳ１５０１）。
【００６２】
ステップＳ１５０２にてドライバー検索部２３０は機器ＩＤ取得部２２０から受け取ったモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０の検索を実施する。このステップＳ１５０２の検索処理でスペシフィックドライバー２６０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１５０４に処理を進める（ステップＳ１５０３）。ステップＳ１８００の処理については図１８にて後述する。
【００６３】
ステップＳ１５０３にてモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０が見つからない場合、ステップＳ１５０４へと進む。
【００６４】
ステップＳ１５０４では、ドライバー検索部２３０は機器ＩＤ取得部２２０から受け取った互換識別情報（ＣＩＤ）に対応するクラスドライバー２７０の検索を実施する。もしも機器ＩＤ３４０に互換識別情報（ＣＩＤ）の記載がなかった場合は空の情報を受け取ることになるため、対応するクラスドライバー２７０は見つからない。
【００６５】
このステップＳ１５０４の検索処理でクラスドライバー２７０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１３００に進む（ステップＳ１５０５）。ステップＳ１３００では前述の図１３の処理が行われる。
【００６６】
前記ステップＳ１３００の探索処理で、機器ＩＤ３４０に対応するデバイス制御アプリ２５０が見つかった場合ステップＳ１７００へ、見つからなかった場合はステップＳ１９００に処理を進める。（ステップＳ１５０６）ステップＳ１７００の処理については図１７にて後述する。またステップＳ１９００の処理については図１９にて後述する。
【００６７】
図１５の手順では、まず従来のユーザーインターフェイスに対応したプリンタードライバーを探索し、該当するプリンタードライバーが見つからなかった場合にデバイス制御アプリを探索してそのインストールを試みる。このためデバイス制御アプリの探索の優先度は図１５に比べて下がる。
【００６８】
［デバイス制御アプリおよびプリンタードライバーのインストール処理（その３）］
図１６はデバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたドライバインストーラ８００のインストール処理のフローである。この処理ではＯＳのプラグアンドプレイシステムを使わない。そのため、ＯＳのプラグアンドプレイシステムの変更なしに、タッチパネル用ＵＩもしくはデスクトップＵＩに最適なプリンタードライバーとデバイス制御アプリをインストールする仕組みを提供することが可能である。したがって図１６の手順は図１２や図１５の手順と併存できないものではなく、例えばプリンターのベンダが提供するインストーラをマニュアルで起動し、プリンタードライバーのインストールを試みる際の手順ということができる。したがって例えばインストーラが起動されるなど、マニュアルインストールの指示に応じて図１６の手順が実行される。この図を用いて、デバイス制御アプリ２５０とスペシフィックドライバー２６０とクラスドライバー２７０を検索対象としたドライバインストーラ８００の処理について説明を行う。
【００６９】
まずドライバインストーラ８００のプラグアンドプレイ検出部８２０が接続媒体１０１を介してプリンター１００が接続されたことを検知し、インストール処理が開始される。
【００７０】
機器ＩＤ取得部８２０はプリンター１００に対して機器ＩＤ３４０の取得要求を発行し、この取得容要求を受けたプリンター１００の機器情報提供部３３０は、機器ＩＤ３４０を機器ＩＤ取得部８２０に対して返答する。機器ＩＤ取得部８２０は取得した機器ＩＤ３４０に含まれるモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）をドライバー検索部８３０渡す（ステップＳ１６０１）。
【００７１】
ステップＳ１３００にて、図１３に示すデバイス制御アプリの検索処理を行う。この際の処理において、デバイス制御アプリの検索処理を行うのはドライバーインストール８００を構成するドライバー検索部８３０である。ステップＳ１３００の検索処理で、機器ＩＤ３４０に対応するデバイス制御アプリ２５０が見つかった場合ステップＳ１７００へ、見つからなかった場合はステップＳ１６０３に処理を進める（ステップＳ１６０２）。ステップＳ１７００の処理については図１７にて後述する。
【００７２】
ステップＳ１６０３にてドライバー検索部８３０は機器ＩＤ取得部８２０から受け取ったモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０の検索を実施する。このステップＳ１６０３の検索処理でスペシフィックドライバー２６０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１６０５に処理を進める（ステップＳ１６０４）。ステップＳ１８００の処理については図１８にて後述する。
【００７３】
ステップＳ１６０４にてモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０が見つからない場合、ステップＳ１６０５へと進む。
【００７４】
ステップＳ１６０５では、ドライバー検索部８３０は機器ＩＤ取得部８２０から受け取った互換識別情報（ＣＩＤ）に対応するクラスドライバー２７０の検索を実施する。もしも機器ＩＤ３４０に互換識別情報（ＣＩＤ）の記載がなかった場合は空の情報を受け取ることになるため、対応するクラスドライバー２７０は見つからない。
【００７５】
このステップＳ１６０５の検索処理でクラスドライバー２７０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１９００に進む（ステップＳ１６０６）。ステップＳ１９００の処理については図１９にて後述する。
【００７６】
以上の手順によれば、プリンタードライバーのインストール指示に応じて、まず該当するデバイス制御アプリが探索されて、発見されればそれがインストールされる。このため、タッチパネル用ＵＩで使用されているコンピューターでプリンタードライバーのマニュアルインストールを試みると、優先的にデバイス制御アプリをインストールすることができ、プラグアンドプレイの手順は変更する必要がない。
【００７７】
［デバイス制御アプリのインストール処理（Ｓ１７００）］
図１７はデバイス制御アプリが見つかった場合の処理（ステップＳ１７００）のフローである。この図を用いて、デバイス制御アプリが見つかった場合の処理について説明を行う。
【００７８】
ドライバーインストール処理部２４０はインストールを指示されたデバイス制御アプリ２５０がクライアントコンピューター１０２にインストール済みかどうかを調べる。例えば、クライアントコンピューター１０２にインストールされているデバイス制御アプリ名のリストを取得する。前記リストにインストールが指示されたデバイス制御アプリ名が記載されているかどうか調べることで、該当デバイス制御アプリが既にインストール済みかどうかを判断することができる（ステップＳ１７０１）。
【００７９】
該当デバイス制御アプリがクライアントコンピューター１０２にインストールされていない場合、ドライバーインストール処理部２４０はクライアントコンピューター１０２に該当デバイス制御アプリをインストールする処理を行う（ステップＳ１７０２）。すなわち、サーバコンピューター１０４から該当するデバイス制御アプリをダウンロードし、レジストリへの登録など必要なインストール処理を行う。一方該当デバイス制御アプリがクライアントコンピューター１０２にインストールされている場合には、ステップＳ１７０３に処理を進める。
【００８０】
ステップＳ１７０３にてドライバーインストール処理部２４０はプラグアンドプレイ検出部２１０がプリンター１００の接続を検知したポートを出力先ポートとしてデバイス制御アプリ２５０に登録して処理を終了する。ここで登録したポートはデバイス制御アプリ２５０でデフォルト出力先として登録する。また、インストールされたデバイス制御アプリ２５０は図１０のタイル１００２で示されるように、タイルとして表示される。なお図１６のマニュアルインストールの手順で呼び出された場合には、プラグアンドプレイ検出部２１０がプリンター１００の接続を検知したポートではなく、指定されたポートを出力先ポートとする。
【００８１】
［ドライバーのインストール処理（Ｓ１８００）］
図１８はスペシフィックドライバー２６０或いはクラスドライバー２７０が見つかった場合の処理（ステップＳ１８００）のフローである。この図を用いて、プリンタードライバーが見つかった場合の処理について説明を行う。ドライバーインストール処理部２４０はインストールを指示されたプリンタードライバーが既にクライアントコンピューター１０２にインストール済みかどうかを調べる。例えば、クライアントコンピューター１０２にインストールされているプリンタードライバー名のリストを取得する。このリストにインストールが指示されたプリンタードライバー名が記載されているかどうか調べることで、該当プリンタードライバーが既にインストール済みかどうかを判断することができる（ステップＳ１８０１）。
【００８２】
該当プリンタードライバーがクライアントコンピューター１０２にインストールされてない場合、ドライバーインストール処理部２４０はクライアントコンピューター１０２に該当プリンタードライバーをインストールする処理を行う（ステップＳ１８０２）。
【００８３】
ステップＳ１８０１の処理で既にプリンタードライバーがインストール済みの場合も含め、ドライバーインストール処理部２４０はプラグアンドプレイ検出部２１０がプリンター１００の接続を検知したポートを出力先ポートとする論理プリンターの作成を行う（ステップＳ１８０３）。ここで、論理プリンターとはプリンタードライバーを利用するための論理的なオブジェクであり、印刷アプリケーションが印刷を行う際に「プリンター」として参照するオブイジェクトである。尚、一つの論理プリンターは一つのプリントキューを持つ。このようにしてプリンタードライバーをインストールすることができる。
【００８４】
［ドライバーが見つからなかった場合の処理（ステップＳ１９００）］
図１９はスペシフィックドライバー２６０或いはクラスドライバー２７０が見つからなかった場合の処理（ステップＳ１９００）のフローである。図１９を用いて、プリンタードライバーが見つからなかった場合の処理について説明を行う。ドライバーインストール処理部２４０は、論理プリンターを追加するためにユーザーの入力を受け付けるダイアログの表示を行う（ステップＳ１９０１）。図２０は、ステップＳ１９０１で表示されるプリンタの追加画面の一例を示す図であり、このようなダイアログを表示しユーザーからインストールを行うプリンタードライバーの入力を受け付ける。
【００８５】
図１９に戻り、インストールするプリンタードライバーが指定されているかどうかの判定を行う（ステップＳ１９０２）。
【００８６】
インストールするプリンタードライバーが指定されていない場合、プリンタードライバーのインストールやプリンターの追加処理は行わず、処理を終了する。
【００８７】
インストールするプリンタードライバーがユーザーにより指定された場合、図１８のステップＳ１８０１、Ｓ１８０２、Ｓ１８０３と同じ処理を行い、プリンタードライバー及びプリンターのインストール・追加処理を行う。
【００８８】
(第２実施形態)
周辺機器がプリントやファックスやスキャンなど１台で複数機能を搭載した複合機の場合についての実施形態を説明する。なおシステムの構成などは第１実施形態と共通であり、またプリンタードライバーのインストール処理に関しても共通である。
【００８９】
本実施形態の場合プラグアンドプレイ時に検出される機器ＩＤ３４０に含まれるクラス情報（ＣＬＳ）の値によって、プリンタードライバーもしくはデバイス制御アプリをインストールする。例えばファックス機能をもつ複合機に対応したファックスドライバーでは、印刷時にファックス宛先を指定するダイアログを必ずポップアップする。ただしユーザーの入力を促すようなポップアップＵＩは、従来のＵＩ環境であるデスクトップＵＩ上に表示する必要がある等の機能制限があるのは前述のとおりである。そのため、機器ＩＤ３４０に含まれるクラス情報（ＣＬＳ）がファックスクラスを示す"ＭＯＤＥＭ"の場合は、前記機能制限のないデバイス制御アプリをインストールすることで、ユーザー利便性を向上させることができる。一方で機器ＩＤ３４０に含まれるクラス情報（ＣＬＳ）がプリントクラスを示す"ＰＲＩＮＴＥＲ"の場合は、プリンタードライバーを優先的にインストールする。これは一般的にクラスドライバーやデバイス制御アプリと比較してもスペシフィックドライバーのほうが機能的に優れている点が多いためである。
【００９０】
図２１は機器ＩＤ３４０に含まれるクラス情報（ＣＬＳ）によってインストール処理を切り替える処理のフローである。まず、クライアントコンピューター１０２のプラグアンドプレイ検出部２１０が接続媒体１０１を介してプリンター１００が接続されたことを検知し、処理が開始される。
【００９１】
機器ＩＤ取得部２２０はプリンター１００に対して機器ＩＤ３４０の取得要求を発行し、この取得容要求を受けたプリンター１００の機器情報提供部３３０は、機器ＩＤ３４０を機器ＩＤ取得部２２０に対して返答する。機器ＩＤ取得部２２０は取得した機器ＩＤ３４０に含まれるモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）とクラス情報（ＣＬＳ）をドライバー検索部２３０渡す（ステップＳ２１０１）。
ステップＳ２１０１の処理で取得したクラス情報（ＣＬＳ）がファックスを示す値であった場合、検出されたデバイスは複合機である可能性ありステップＳ２２００へ、そうでなかった場合はステップＳ２１０３へ処理を進める（ステップＳ２１０２）。ステップＳ２２００にてドライバーインストール処理部２４０は、モデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）に対応するデバイス制御アプリもしくはプリンタードライバーの検索とインストール処理を行う。この処理に際して、ステップＳ２２００の処理については図２２にて後述する。
【００９２】
ステップＳ２１０３にて、ステップＳ２１０１の処理で取得したクラス情報（ＣＬＳ）がプリントを示す値であった場合ステップＳ１５００へ、そうでなかった場合はステップＳ１２００へ処理を進める。（ステップＳ２１０３）ステップＳ１５００では前述の図１５の処理が行われる。またステップＳ１２００では前述の図１２の処理が行われる。本フローにおいては、ステップＳ２１０１にてドライバー検索部２３０に機器ＩＤ３４０に含まれるモデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）が渡されている。そのため図１２のステップＳ１２０１、図１５のステップＳ１５０１の処理は省略することが可能である。図１５の手順では、まずスペシフィックドライバーを最優先として、該当するものがなければ次にクラスドライバー、それがなければ最後にデバイス制御アプリを検索してインストールを試みる。また図１２の手順では、タッチパネル用ＵＩならばまずデバイス制御アプリを最優先として、該当するものがないか、あるいは従来のユーザーインターフェイスであれば次にスペシフィックドライバー、それがなければ最後にクラスドライバーを検索してインストールを試みる。
【００９３】
［デバイス制御アプリまたはプリンタードライバーのインストール処理（Ｓ２２００）］
図２２は、モデル識別情報（ＭＤＬ）と互換識別情報（ＣＩＤ）に対応するデバイス制御アプリもしくはプリンタードライバーの検索とインストール処理のフローである。
【００９４】
ステップＳ１３００にてドライバー検索部２３０はまず検出されたデバイスに対応したデバイス制御アプリの検索処理を行う。ステップＳ１３００では前述の図１３の処理が行われる。ステップＳ１３００の検索処理にて、機器ＩＤ３４０に対応するデバイス制御アプリ２５０が見つかった場合ステップＳ１７００へ、見つからなかった場合はステップＳ２２０２に処理を進める（ステップＳ２２０１）。ステップＳ１７００にて、ドライバーインストール処理部２４０はデバイス制御アプリのインストール処理を行う。ステップＳ１７００では前述の図１７の処理が行われる。すなわち検出された周辺機器が複合機であり、対応するデバイス制御アプリがあれば、そのデバイス制御アプリがインストールされる。
【００９５】
ステップＳ２２０２にてドライバー検索部２３０は機器ＩＤ取得部２２０から受け取ったモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０の検索を実施する。このステップＳ２２０２の検索処理でスペシフィックドライバー２６０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ２２０４に処理を進める（ステップＳ２２０３）。ステップＳ１８００では前述の図１８の処理が行われる。
【００９６】
ステップＳ２２０２にてモデル識別情報（ＭＤＬ）に対応するスペシフィックドライバー２６０が見つからない場合、ステップＳ２２０４へと進む。
【００９７】
ステップＳ２２０４では、ドライバー検索部２３０は機器ＩＤ取得部２２０から受け取った互換識別情報（ＣＩＤ）に対応するクラスドライバー２７０の検索を実施する。もしも機器ＩＤ３４０に互換識別情報（ＣＩＤ）の記載がなかった場合は空の情報を受け取ることになるため、対応するクラスドライバー２７０は見つからない。
【００９８】
このステップＳ２２０４の検索処理でクラスドライバー２７０が見つかった場合ステップＳ１８００へ、見つからない場合にはステップＳ１９００に進む（ステップＳ２２０５）。ステップＳ１９００では前述の図１９の処理が行われる。
【００９９】
以上の手順によって複合機に対応したデバイス制御アプリを優先的にインストールすることができる。
【０１００】
また、周辺機器がプリントやファックスやスキャンなど１台で複数機能を搭載した複合機の場合には、プラグアンドプレイ時に複数の機器ＩＤ３４０が検出される場合がある。その場合は図２１のインストール処理を検出された機器ＩＤ毎に行うことで、それぞれの機器ＩＤに適したプリンタードライバーもしくはデバイス制御アプリをインストールすることが可能である。
【０１０１】
上記実施形態により、タッチパネル用ＵＩもしくはデスクトップＵＩそれぞれに最適なプリンタードライバーかデバイス制御アプリをインストールする簡易的な仕組みを提供することで、ユーザーの利便性を向上させることができる。
【０１０２】
上記実施形態はＷｉｎｄｏｗｓ（登録商標）ＯＳについての実施形態となっている。しかしながら、他ＯＳ（例：Ｍａｃ  ＯＳ）においても、それらＯＳがサポートしているプラグアンドプレイシステムと同機能を有するシステム（例：Ｂｏｎｊｏｕｒ）に本発明を適用することで同様の効果を提供することができる。
【０１０３】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１０４】
さらに、本発明には、上述した実施形態の適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
【図１】
2014203268.tif 000003
【図２】
2014203268.tif 000004
【図３】
2014203268.tif 000005
【図４】
2014203268.tif 000006
【図５】
2014203268.tif 000007
【図６】
2014203268.tif 000008
【図７】
2014203268.tif 000009
【図８】
2014203268.tif 000010
【図９】
2014203268.tif 000011
【図１０】
2014203268.tif 000012
【図１１】
2014203268.tif 000013
【図１２】
2014203268.tif 000014
【図１３】
2014203268.tif 000015
【図１４】
2014203268.tif 000016
【図１５】
2014203268.tif 000017
【図１６】
2014203268.tif 000018
【図１７】
2014203268.tif 000019
【図１８】
2014203268.tif 000020
【図１９】
2014203268.tif 000021
【図２０】
2014203268.tif 000022
【図２１】
2014203268.tif 000023
【図２２】
2014203268.tif 000024