(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置が接続されている第１のサブネット及び該第１のサブネットとは別個の第２のサブネットをデバイスの検索範囲とする第１のネットワークプロトコルを用いて、前記第１のサブネット及び前記第２のサブネットからデバイスを検索する第１の検索手段と、
前記第１のサブネットをデバイスの検索範囲とする第２のネットワークプロトコルを用いて、前記第１のサブネットからデバイスを検索する第２の検索手段と、
前記第１の検索手段によって検索されたデバイスのうちユーザによって選択された選択デバイスが前記第２の検索手段によって検索可能か否かに応じて、前記選択デバイスに対する通信ポートを決定する決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記第１の検索手段によって検索されたデバイスに係る情報を表示する表示手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の検索手段は、前記表示手段に表示された情報のうちユーザによって選択された情報に対応する前記選択デバイスを検索し、
前記決定手段は、
前記第２の検索手段による検索によって前記選択デバイスを検出した場合には、前記第２のネットワークプロトコルで使用可能な通信ポートを、前記選択デバイスに対する通信ポートとして決定し、
前記第２の検索手段による検索によって前記選択デバイスを検出できなかった場合には、前記第１のネットワークプロトコルで使用可能な通信ポートを、前記選択デバイスに対する通信ポートとして決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記決定手段は、
前記表示手段に表示された情報のうちユーザによって選択された情報に対応する前記選択デバイスが前記第２の検索手段によっても検索されたデバイスである場合には、前記第２のネットワークプロトコルで使用可能な通信ポートを、前記選択デバイスに対する通信ポートとして決定し、
前記表示手段に表示された情報のうちユーザによって選択された情報に対応する前記選択デバイスが前記第２の検索手段によって検索されていないデバイスである場合には、前記第１のネットワークプロトコルで使用可能な通信ポートを、前記選択デバイスに対する通信ポートとして決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記表示手段は、前記第１の検索手段によって検索されたデバイスのうち、ドライバINFファイルに含まれているデバイス名情報と一致するデバイス名情報を有するドライバに係る情報を表示することを特徴とする請求項２乃至４の何れか１項に記載の情報処理装置。
【請求項６】
更に、
前記情報処理装置にインストールするドライバを、前記決定手段が決定した通信ポートに割り付けて、該情報処理装置にインストールする手段を備えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記第１のネットワークプロトコルは、ＴＣＰ／ＩＰプロトコルであることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記第２のネットワークプロトコルは、WSD（Web Services for Devices）プロトコルであることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の第１の検索手段が、前記情報処理装置が接続されている第１のサブネット及び該第１のサブネットとは別個の第２のサブネットをデバイスの検索範囲とする第１のネットワークプロトコルを用いて、前記第１のサブネット及び前記第２のサブネットからデバイスを検索する第１の検索工程と、
前記情報処理装置の第２の検索手段が、前記第１のサブネットをデバイスの検索範囲とする第２のネットワークプロトコルを用いて、前記第１のサブネットからデバイスを検索する第２の検索工程と、
前記情報処理装置の決定手段が、前記第１の検索工程で検索されたデバイスのうちユーザによって選択された選択デバイスが前記第２の検索工程で検索可能か否かに応じて、前記選択デバイスに対する通信ポートを決定する決定工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関し、特に、ネットワークに接続されたデバイスの通信ポートを決定する技術に関する。
【背景技術】
【０００２】
コンピュータから、ネットワークに接続された画像形成装置等のデバイスを検索し、該検索によって特定されたデバイスに対応するデバイスドライバを当該コンピュータにインストールする方法において、次のような方法が広く知られている。すなわち、プリンタドライバやスキャナドライバを予め定められたネットワークプロトコルに対応した通信ポートに関連付ける方法である。
【０００３】
従来、デバイス検索プロトコルを、デバイスを開発するメーカが独自に開発してきた。しかし近年では、OSの標準機能として、UPnPプロトコルに対応したデバイスを検索し、そのプロトコルに対応した通信ポートに関連付けてデバイスドライバをインストールすることが可能となっている。なお、OSはOperating Systemの略、UPnPはUniversal Plug and Playの略である。
【０００４】
そして独自のデバイス検索プロトコルとOS標準のデバイス検索プロトコルの両方に対応したデバイスが普及しているが、ネットワークの状態やデバイスの状態によってはデバイスを検出できない可能性がある。特許文献１では、第一のプロトコルで検出され、優先順位の高い第二のプロトコルで検出されなかったプリンタを第二のプロトコルで再検索する事により、特定のプロトコルに対応したデバイスを確実に検出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第4877127号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えばオフィス環境においては、デバイスを異なるサブネット上に設置する場面が多々あり、異なるサブネット上に設置されたデバイスを確実にかつ安定して利用できる事が求められる。
【０００７】
しかしながら、OS標準のUPｎPプロトコルによるデバイス検索は同一サブネット内に限定されている場合があり、異なるサブネット上に設置されたデバイスを検出できない場合がある。
【０００８】
また、デバイスドライバをネットワークプロトコルに対応した通信ポートに関連付ける事に成功して、はじめてデバイスを使用可能となる。しかし、ユーザがデバイスドライバをインストールする際に、コンピュータとデバイスが同一サブネット内に存在するか否かをユーザ自身が判断し、その判断結果に応じて通信ポートを決定しなくてはならない。例えばユーザがＯＳ標準のプロトコルを用いた通信ポートを使用したい場合、コンピュータとデバイスが同一サブネット内に存在するか否かをユーザ自身が確認しなくてはならない。そして、同一サブネット内に存在する場合には、ＯＳ標準のものを、同一サブネット内に存在しなければ、コンピュータとは別のサブネットに存在するデバイスを検出可能な別のプロトコルの通信ポートをユーザ自身が決定しなくてはならない。
【０００９】
本発明はこのような問題に鑑みてなされたものであり、情報処理装置とデバイスとが同一サブネット内に存在するか否かによらず、ユーザがデバイスを確実にかつ安定して利用可能とするための技術を提供する。
【課題を解決するための手段】
【００１０】
本発明の一様態は、情報処理装置であって、前記情報処理装置が接続されている第１のサブネット及び該第１のサブネットとは別個の第２のサブネットをデバイスの検索範囲とする第１のネットワークプロトコルを用いて、前記第１のサブネット及び前記第２のサブネットからデバイスを検索する第１の検索手段と、前記第１のサブネットをデバイスの検索範囲とする第２のネットワークプロトコルを用いて、前記第１のサブネットからデバイスを検索する第２の検索手段と、前記第１の検索手段によって検索されたデバイスのうちユーザによって選択された選択デバイスが前記第２の検索手段によって検索可能か否かに応じて、前記選択デバイスに対する通信ポートを決定する決定手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、情報処理装置とデバイスとが同一サブネット内に存在するか否かによらず、ユーザがデバイスを確実にかつ安定して利用可能とすることができる。
【図面の簡単な説明】
【００１２】
【図１】システムの構成例を示すブロック図。
【図２】コンピュータ１０１のハードウェア構成例を示すブロック図。
【図３】デバイス１０３，１０４のハードウェア構成例を示すブロック図。
【図４】補助記憶装置２０５に保存されているソフトウェア構成例を示すブロック図。
【図５】コンピュータ１０１が行う処理のフローチャート。
【図６】デバイス検出部４０８によるデバイスに係る情報の表示例を示す図。
【図７】アプリケーション４０１による表示例を示す図。
【図８】コンピュータ１０１が行う処理のフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１４】
以下の各実施形態では、次のような情報処理装置の一例について説明する。即ち、情報処理装置が接続されている第１のサブネット及び該第１のサブネットとは別個の第２のサブネットをデバイスの検索範囲とする第１のネットワークプロトコルを用いて、第１のサブネット及び第２のサブネットからデバイスを検索する（第１の検索）。また、第１のサブネットをデバイスの検索範囲とする第２のネットワークプロトコルを用いて、第１のサブネットからデバイスを検索する（第２の検索）。そして、第１の検索によって検索されたデバイスのうちユーザによって選択された選択デバイスが第２の検索によって検索可能か否かに応じて、選択デバイスに対する通信ポートを決定する。
【００１５】
先ず、以下の各実施形態に係るシステムの構成例について、図１のブロック図を用いて説明する。図１に示す如く、本実施形態に係るシステムは、コンピュータ１０１及びデバイス１０３が属するサブネット１と、デバイス１０４が属するサブネット２と、を含み、サブネット１とサブネット２とは、ルータ１０２を介して接続されている。
【００１６】
コンピュータ１０１は、ＰＣ（パーソナルコンピュータ）やタブレット端末装置などのコンピュータ装置である。デバイス１０３、１０４は、プリンタ、複写機、ファクシミリ、スキャナ等の周辺機器またはそれらの複合機能を備える装置である。本実施形態では、デバイス１０３、１０４は、ＴＣＰ／ＩＰプロトコルに対応すると共に、UPｎPに対応したWindows OS標準のネットワークプロトコルであるWSD（Web Services for Devices）にも対応している。
【００１７】
なお、図１に示したシステムの構成は以下の説明のために挙げた一例であり、このような構成に限定することを意図するものではない。例えば、サブネット１に属するデバイスの数、サブネット２に属するデバイスの数は図１の通り１に限るものではなく複数であっても良い。また、サブネットの数も、図１の通り２に限るものではなく、３以上であっても良い。
【００１８】
次に、コンピュータ１０１のハードウェア構成例について、図２のブロック図を用いて説明する。なお、図２に示した構成は、コンピュータ１０１に適用可能な構成の一例に過ぎない。
【００１９】
モニタ２０１は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０２による処理結果を画像や文字などでもって表示することができる表示装置である。また、モニタ２０１は、画像や文字を投影する投影装置（例えばプロジェクタ装置）であっても良いし、表示機能及びユーザインターフェース機能を有するタッチパネル画面であっても構わない。
【００２０】
ＣＰＵ２０２は、ＲＯＭ２０３やＲＡＭ２０４に格納されているコンピュータプログラムやデータを用いて処理を実行することで、コンピュータ１０１全体の動作制御を行うと共に、コンピュータ１０１が行うものとして後述する各処理を実行若しくは制御する。
【００２１】
ＲＯＭ２０３には、ＢＩＯＳ等の基本ソフトウェアや、変更不要の設定データなどが格納されている。
【００２２】
ＲＡＭ２０４は、補助記憶装置２０５やＲＯＭ２０３からロードされたコンピュータプログラムやデータ、ネットワークボード２０８を介して外部から受信した様々なコンピュータプログラムやデータを格納するためのエリアを有する。更に、ＲＡＭ２０４は、ＣＰＵ２０２が各種の処理を実行する際に用いるワークエリアも有する。このように、ＲＡＭ２０４は、各種のエリアを適宜提供することができる。
【００２３】
補助記憶装置２０５は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。補助記憶装置２０５には、ＯＳ、各種のドライバソフトウェア、各種のアプリケーションソフトウェア等が保存されている。
【００２４】
補助記憶装置２０５に保存されているドライバソフトウェアには、例えば、モニタ２０１による表示を制御するための表示制御ドライバソフトウェアが含まれている。また、補助記憶装置２０５に保存されているドライバソフトウェアには、キーボード２０６を制御するためのキーボードドライバソフトウェア、ポインティングデバイス２０７を制御するためのポインティングデバイスドライバソフトウェアが含まれている。また、補助記憶装置２０５に保存されているドライバソフトウェアには、ネットワークボード２０８による通信を制御するためのネットワークドライバが含まれている。また、補助記憶装置２０５に保存されているドライバソフトウェアには、デバイス１０３、１０４を含む様々なデバイス（それぞれのサブネットに接続されているデバイス）を制御するためのドライバソフトウェアも含まれている。デバイス１０３、１０４を制御するためのドライバソフトウェアとは、例えば、スキャナドライバ、プリンタドライバ、ファクシミリドライバ等である。
【００２５】
また、補助記憶装置２０５には、ドライバソフトウェアをコンピュータ１０１にインストールするためのドライバインストーラも保存されている。このドライバインストーラには、ＴＣＰ／ＩＰプロトコルによるデバイスの検索機能と、WSDによるデバイス検索機能と、が含まれている。なお、ＴＣＰ／ＩＰプロトコルによるデバイスの検索機能とWSDによるデバイス検索機能とをそれぞれ専用モジュールに設け、デバイスドライバやアプリケーションから呼び出してデバイス検索を実行させるようにしてもよい。
【００２６】
このほか、補助記憶装置２０５には、コンピュータ１０１が行うものとして後述する各処理をＣＰＵ２０２に実行させるためのコンピュータプログラムやデータも保存されている。補助記憶装置２０５に保存されているコンピュータプログラムやデータは、ＣＰＵ２０２による制御に従って適宜ＲＡＭ２０４にロードされ、ＣＰＵ２０２による処理対象となる。
【００２７】
キーボード２０６、ポインティングデバイス２０７は何れも、コンピュータ１０１の操作者が操作することで、各種の指示をＣＰＵ２０２に入力するためのユーザインターフェースである。
【００２８】
ネットワークボード２０８は、外部の機器との間のデータ通信を行う。上記のモニタ２０１、ＣＰＵ２０２、ＲＯＭ２０３、ＲＡＭ２０４、補助記憶装置２０５、キーボード２０６、ポインティングデバイス２０７、ネットワークボード２０８は何れも、バス２０９に接続されている。
【００２９】
次に、デバイス１０３、１０４のハードウェア構成例について、図３のブロック図を用いて説明する。なお、以下では説明を簡単にするために、デバイス１０３とデバイス１０４とは同じ構成を有する機器であるものとしている。そのため、図３では、デバイス１０３のハードウェア構成例を示しており、同様の説明はデバイス１０４にも適用される。なお、図３に示した構成は、デバイス１０３に適用可能な構成の一例に過ぎない。もちろん、デバイス１０３とデバイス１０４とが互いに異なる構成を有する機器（例えば一方がプリンタで、他方がスキャナ）であっても構わない。
【００３０】
ＣＰＵ３０１は、ＲＯＭ３０２やＲＡＭ３０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、デバイス１０３全体の動作制御を行うと共に、デバイス１０３が行うものとして説明する各処理を実行若しくは制御する。
【００３１】
ＲＯＭ３０２には、デバイス１０３が行うものとして説明する各処理をＣＰＵ３０１に実行若しくは制御させるためのコンピュータプログラムやデータが格納されている。ＲＡＭ３０３は、ＲＯＭ３０２からロードされたコンピュータプログラムやデータ、通信部３０４が外部から受信したコンピュータプログラムやデータを格納するためのエリアを有する。更にＲＡＭ３０３は、ＣＰＵ３０１が各種の処理を実行する際に用いるワークエリアも有する。このように、ＲＡＭ３０３は、各種のエリアを適宜提供する。
【００３２】
通信部３０４は、外部の機器との間のデータ通信を行う。記録部３０５は、印刷データに基づいて、紙などの記録媒体に画像や文字などを記録する。操作部３０６は、タッチパネルやハードキーなどの入力機器である。表示部３０７は、液晶画面であり、ＣＰＵ３０１による処理結果を画像や文字などでもって表示することができる。
【００３３】
上記のＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、通信部３０４、記録部３０５、操作部３０６、表示部３０７は何れも、バス３０８に接続されている。なお、図３に示した構成は、プリンタとしてのデバイス１０３の構成例であり、例えばデバイス１０３がスキャナである場合には、更に、紙などの記録媒体に記録された情報を画像として読み取る構成を有することになる。
【００３４】
［第１の実施形態］
補助記憶装置２０５に保存されているソフトウェア構成例を図４に示す。以下では、図４に示したソフトウェア（機能部）を処理の主体として説明する場合もあるが、実際には、対応するソフトウェアをＣＰＵ２０２が実行することで、対応する機能が実現されることになる。
【００３５】
アプリケーション４０１は、次のように動作するインストーラである。即ち、ネットワーク上のデバイスを検索し、該検索により検出したデバイスに係る情報をモニタ２０１に表示させ、該表示された情報のうちユーザにより選択された情報に対応するデバイスのドライバをコンピュータ１０１にインストールするインストーラである。なお、アプリケーション４０１は、ユーザによって選択されたデバイスがプリンタであれば、コンピュータ１０１はプリンタドライバ４０３をインストールする。また、アプリケーション４０１は、ユーザによって選択されたデバイスがスキャナであれば、コンピュータ１０１はスキャナドライバ４０４をインストールする。また、ユーティリティ４０５は、選択されたデバイスに応じて適宜インストールされる。
【００３６】
アプリケーション４０１を起動すると、ＴＣＰ／ＩＰデバイス検索部４０６は、コンピュータ１０１が属するサブネット（図１ではサブネット１）と同一サブネットからデバイスを検索する。更にＴＣＰ／ＩＰデバイス検索部４０６は、ルータ１０２を超えた先のサブネット（図１ではサブネット２）からデバイスを検索する。図１の場合、アプリケーション４０１を起動すると、これらの検索により、サブネット１上のデバイス１０３と、サブネット２上のデバイス１０４と、が検出される。
【００３７】
ドライバINFファイル４０２には、アプリケーション４０１がインストールするドライバ（プリンタドライバ４０３および／またはスキャナドライバ４０４）に対応するデバイスの機種が含まれる。
デバイス検出部４０８は、ドライバ情報を含むドライバINFファイル４０２から得たターゲットデバイス（アプリケーション４０１が対応するデバイスの機種）のデバイス名情報と、ＴＣＰ／ＩＰデバイス検索部４０６が検索したデバイスのデバイス名情報と、を比較する。そしてデバイス検出部４０８は、デバイス名情報が一致したデバイスに係る情報をモニタ２０１に表示する。図１の場合、仮にデバイス１０３及びデバイス１０４が、ＴＣＰ／ＩＰデバイス検索部４０６による検出対象となるべきデバイス（アプリケーション４０１が対応するデバイスの機種）であった場合、デバイス１０３に係る情報及びデバイス１０４に係る情報がモニタ２０１に表示される。表示する情報は、デバイス名、IPアドレス、MACアドレス等、ユーザが所望するデバイスを識別するために利用できる情報である。
即ち、例えばネットワーク上に複数の機種のデバイスが含まれていたとしても、モニタ２０１には、アプリケーション４０１がインストールするドライバに対応するデバイスの機種のみが表示される。そして、当該機種のデバイスが複数検出された場合、ユーザはIPアドレス、MACアドレスを参照することで、同一機種の複数のデバイスから、所望のデバイスを選択することができる。上記の表示については、図６を用いて詳細に説明する。
【００３８】
ユーザがキーボード２０６やポインティングデバイス２０７を用いて、モニタ２０１に表示されたデバイスに係る情報のうち何れか１つを指示（選択）すると、WSDデバイス検索部４０７は、該指示（選択）された情報に対応するデバイスを検索する。このとき、WSDプロトコルによるデバイス検索の範囲は、アプリケーション４０１が起動しているコンピュータ１０１と同一サブネットに限定される。そのため、WSDデバイス検索部４０７は、コンピュータ１０１が属するサブネット（図１ではサブネット１）と同一サブネットからはデバイスを検索することはできる。しかし、WSDプロトコルによるデバイス検索の範囲の制約により、ＷＳＤデバイス検索部４０７は、ルータ１０２を超えた先のサブネット（図１ではサブネット２）からはデバイスを検索することはできない。然るに図１の場合、ＷＳＤデバイス検索部４０７による検索結果は、サブネット１にデバイス１０３が接続されていれば「デバイス１０３」となるが、サブネット１にデバイス１０３が接続されていなければ「デバイス無し」となる。
【００３９】
WSDデバイス検索部４０７が、コンピュータ１０１が属するサブネットと同一サブネットからデバイス（ユーザによって選択されたデバイス）を検出した場合、アプリケーション４０１はWSDプロトコルでの通信が可能と判断する。そしてアプリケーション４０１は、該デバイス用のドライバソフトウェアをWSD通信ポートに割り付けてコンピュータ１０１にインストールする。
【００４０】
一方、WSDデバイス検索部４０７が、コンピュータ１０１が属するサブネットと同一サブネットからデバイス（ユーザによって選択されたデバイス）を検出することができなかった場合、アプリケーション４０１はWSDプロトコルでの通信が不可能と判断する。そしてアプリケーション４０１は、該デバイス用のドライバソフトウェアをＴＣＰ／ＩＰ通信ポートに割り付けてコンピュータ１０１にインストールする。
【００４１】
デバイス検出部４０８によるデバイスに係る情報の表示例を図６に示す。ウィンドウ６０１は、デバイス検出部４０８によりモニタ２０１に表示されるものである。ウィンドウ６０１内には、デバイス検出部４０８による比較においてデバイス名情報が一致したデバイスに係る情報として、デバイス名、ＭＡＣアドレス、ＩＰアドレスが表示されている。図６の例では、１行目には、デバイス名が「Ｃａｎｏ  ＡＢＣ−１２３」であるデバイスのデバイス名、ＭＡＣアドレス、ＩＰアドレスが表示されている。また２行目、３行目には、同一機種「Ｃａｎｏ  ＡＢＣ−１２３」である他のデバイスのデバイス名、ＭＡＣアドレス、ＩＰアドレスが表示される。３つの行において、同一機種のデバイスが表示されるためデバイス名は同じであるが、ＭＡＣアドレス、ＩＰアドレスはデバイスに個別に割り当てられるため、その値が異なる。そのためユーザは、アプリケーション４０１に対応するデバイス機種「Ｃａｎｏ  ＡＢＣ−１２３」が適切に検出されたことを確認できるとともに、それぞれのデバイスのＭＡＣアドレス、ＩＰアドレスを確認することができる。このように、デバイス毎の情報が各行に表示される。ユーザは、ＭＡＣアドレス、ＩＰアドレスを確認し、キーボード２０６やポインティングデバイス２０７を用いて、所望のデバイスに対応する行を指示（選択）することができる。ユーザが何れかの行を指示した後、「次へ」ボタンを指示すると、WSDデバイス検索部４０７は、該指示された行に対応するデバイスを検索する。
【００４２】
一方、ＴＣＰ／ＩＰデバイス検索部４０６がデバイスを検索することができなかった場合、アプリケーション４０１は、図７に例示するウィンドウ７０１をモニタ２０１に表示する。このウィンドウ７０１は、何れのサブネットからもデバイスを検出することができなかったことを示すメッセージを含むウィンドウである。ここでユーザが「再試行」ボタン７０２を指示すると、ＴＣＰ／ＩＰデバイス検索部４０６は再度、検索を開始する。一方、ユーザが「中止」ボタン７０３を指示すると、処理を中止する。
【００４３】
コンピュータ１０１のＣＰＵ２０２が、補助記憶装置２０５からＲＡＭ２０４にロードされたアプリケーション４０１を実行することで行われる処理について、図５のフローチャートを用いて説明する。ステップＳ１０２では、デバイス検出部４０８は、ドライバ情報を含むドライバINFファイル４０２から、アプリケーション４０１に対応するデバイスのドライバ名情報を取得する。
【００４４】
ステップＳ１０３では、ＴＣＰ／ＩＰデバイス検索部４０６は、コンピュータ１０１が属するサブネットと同一サブネットからデバイスを検索する。更にＴＣＰ／ＩＰデバイス検索部４０６は、ルータ１０２を超えた先のサブネットからデバイスを検索する。
【００４５】
ステップＳ１０４では、デバイス検出部４０８は、ステップＳ１０２で取得したデバイス名情報と、ＴＣＰ／ＩＰデバイス検索部４０６が検索したデバイスのデバイス名情報と、を比較する。この比較の結果、デバイス名情報が一致するものがあれば、処理はステップＳ１０５に進み、一致するものがなければ、処理はステップＳ１１１に進む。一致するものがあった場合とは、即ち、アプリケーション４０１がインストール可能なドライバに対応する機種のデバイスがネットワーク上に存在した場合である。
【００４６】
ステップＳ１０５では、デバイス検出部４０８は、デバイス名情報が一致したデバイスに係る情報をモニタ２０１に表示する。Ｓ１０４、Ｓ１０５における処理により、モニタ２０１には、ネットワーク上に存在する複数のデバイスのうち、アプリケーション４０１に対応するデバイスに限定されて、表示が行われる。
【００４７】
ステップＳ１０６では、ＷＳＤデバイス検索部４０７は、モニタ２０１に表示された同一機種のデバイスに係る情報のうちユーザによって指示（選択）された情報に対応するデバイスを「コンピュータ１０１と同一サブネット」から検索する。この検索の結果、デバイスを検索することができた場合には、処理はステップＳ１０７を介してステップＳ１０８に進み、デバイスを検索することができなかった場合には、処理はステップＳ１０７を介してステップＳ１０９に進む。
【００４８】
ステップＳ１０８では、アプリケーション４０１はWSDプロトコルでの通信が可能と判断し、通信ポートを、WSDプロトコルで使用可能な通信ポートであるWSD通信ポートに決定する。
【００４９】
一方、ステップＳ１０９では、アプリケーション４０１はWSDプロトコルでの通信が不可能と判断し、通信ポートを、ＴＣＰ／ＩＰプロトコルで使用可能な通信ポートであるＴＣＰ／ＩＰ通信ポートに決定する。
【００５０】
ステップＳ１１０では、アプリケーション４０１は、ユーザによって選択されたデバイス用のドライバソフトウェアを、ステップＳ１０８若しくはステップＳ１０９において決定した通信ポートに割り付けてコンピュータ１０１にインストールする。
【００５１】
図１の場合、ユーザがデバイス１０３を選択した場合、デバイス１０３は「コンピュータ１０１と同一サブネット」であるサブネット１上に接続されているため、ＷＳＤデバイス検索部４０７により検出可能である。このような場合、通信ポートはＷＳＤ通信ポートに決定される。一方、ユーザがデバイス１０４を選択した場合、デバイス１０４は「コンピュータ１０１と同一サブネット」であるサブネット１上ではなくサブネット２上に接続されているため、ＷＳＤデバイス検索部４０７により検出不可能である。このような場合、通信ポートはＴＣＰ／ＩＰ通信ポートに決定される。
【００５２】
ステップＳ１１１では、アプリケーション４０１は、図７に例示したウィンドウ７０１をモニタ２０１に表示する。このウィンドウ７０１において「中止」ボタン７０３が指示されると、図５のフローチャートに従った処理は終了し、「再試行」ボタン７０２が指示されると、処理はステップＳ１０３に戻る。
【００５３】
図５に示した処理によれば、Ｓ１０３において、サブネット１、サブネット２の両方からデバイス検索が可能なＴＣＰ／ＩＰにより検索された、同一機種のデバイスが一覧表示される。そのため、ユーザはコンピュータ１０１が含まれるサブネット１のみならず、サブネット２からもデバイスを検索することができる。またユーザにより一覧表示から選択されたデバイスが、Ｓ１０６においてＷＳＤにより検索される。そしてＷＳＤで検索された場合には、ＷＳＤの通信ポート、ＷＳＤで検索されなかった場合には、ＴＣＰ／ＩＰの通信ポートが自動的に設定される。そのためユーザは通信ポートを意識しなくても、選択したデバイスが存在するサブネットに応じた通信ポートを容易に決定させることができる。
【００５４】
なお、例えばＳ１０８またはＳ１０９において決定された通信ポートがモニタ２０１を通じてユーザに通知されてもよい。その場合、Ｓ１１０のドライバのインストール後に通知されてもよいし、ドライバのインストールの前に通知され、ユーザが了承の旨の指示を行ったことに応じて、インストールが開始されてもよい。
【００５５】
また以上の説明では、ドライバINFファイル４０２には、アプリケーション４０１がインストールするドライバに対応するデバイスの機種として、１種類のデバイス（「Ｃａｎｏ  ＡＢＣ−１２３」）の情報が含まれる例を説明した。しかしこれに限らず、アプリケーション４０１がインストールするドライバが、複数の機種に対して使用可能なものであれば、その複数の機種の情報がドライバINFファイル４０２に含まれる。この場合において、当該複数の機種に対応する複数のデバイスがネットワーク上で検出されたとき、図６に示した一覧表示画面には、複数の機種に対応する情報が表示される。
【００５６】
［第２の実施形態］
以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。本実施形態では、コンピュータ１０１は、図５のフローチャートに従った処理の代わりに、図８のフローチャートに従った処理を行う点が、第１の実施形態と異なる。図８において、図５に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００５７】
ステップＳ２０３では、ＷＳＤデバイス検索部４０７は、「コンピュータ１０１と同一サブネット」からデバイスを検索する。
【００５８】
ここで、ＴＣＰ／ＩＰデバイス検索部４０６の検索範囲はＷＳＤデバイス検索部４０７の検索範囲を含んでいるため、ＷＳＤデバイス検索部４０７の検索結果は、ＴＣＰ／ＩＰデバイス検索部４０６による検索結果に含まれる場合がある。然るに、モニタ２０１に表示しているデバイス名情報には、ＴＣＰ／ＩＰデバイス検索部４０６によって検索されたデバイスのデバイス名情報だけでなく、ＷＳＤデバイス検索部４０７によって検索されたデバイスのデバイス名情報をも含む。ただし、ＯＳの設定やネットワーク設定等によりＴＣＰ／ＩＰでは検索できず、ＷＳＤでのみ検索できる場合がある。そのため、Ｓ１０４では、ＷＳＤまたはＴＣＰ／ＩＰで検出されたか否かが判定される。そして、モニタ２０１に表示された情報のうちユーザによって指示（選択）された情報に対応するデバイスが、ＷＳＤデバイス検索部４０７でも検索されたデバイスであれば、処理はステップＳ２０７を介してステップＳ１０８に進む。一方、モニタ２０１に表示された情報のうちユーザによって指示（選択）された情報に対応するデバイスが、ＷＳＤデバイス検索部４０７で検索されたデバイスではない場合には、処理はステップＳ２０７を介してステップＳ１０９に進む。
【００５９】
＜変形例＞
ＷＳＤに対応したデバイスの代わりに、Bonjour等の他の標準プロトコルや、独自のプロトコルに対応するデバイスを用いても構わないし、種々のプロトコルを複数備えるデバイスを用いても構わない。また、デバイス検索に使用する通信方式は、その用途に応じて、ユニキャスト、マルチキャスト、ブロードキャストを適宜使い分けても構わない。このように、第１，２の実施形態で用いた構成、フォーマット、通信形式は、あくまでも一例である。
【００６０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６１】
４０１：アプリケーション  ４０６：ＴＣＰ／ＩＰデバイス検索部  ４０７：ＷＳＤデバイス検索部  ４０８：デバイス検出部
【図１】
0006433378.tif 000002
【図２】
0006433378.tif 000003
【図３】
0006433378.tif 000004
【図４】
0006433378.tif 000005
【図５】
0006433378.tif 000006
【図６】
0006433378.tif 000007
【図７】
0006433378.tif 000008
【図８】
0006433378.tif 000009