(57)【特許請求の範囲】
【請求項１】
ネットワーク通信手段を介してネットワークデバイスを検出し、当該検出したネットワークデバイスに対応するデバイスドライバを自動インストールする情報処理装置であって、
接続するネットワークを特定するネットワーク環境情報と当該ネットワーク環境情報で示されるネットワークに対して前記デバイスドライバの自動インストールのための機能の利用の可否を設定する設定手段と、
前記設定手段により設定された情報を記述した設定情報を記憶する記憶手段と、
接続中のネットワークに関するネットワーク環境情報を取得する取得手段と、
前記記憶手段により記憶されている設定情報の中から、前記取得手段で取得されたネットワーク環境情報に対応する設定情報を特定する特定手段と、
前記特定手段により特定された設定情報の内容を表示する表示手段と、
前記特定手段により特定された設定情報に従い、接続中のネットワークのネットワークデバイスに対応するデバイスドライバの自動インストールの制御を行う制御手段とを備え、
前記デバイスドライバの自動インストールのための機能には、接続中のネットワーク上のネットワークデバイスから発行されたネットワーク参加メッセージを前記情報処理装置が搭載しているインストールの制御のためのシステムへ通知する第１機能と、ネットワークデバイスの探索メッセージをネットワークへ送信する第２機能とが含まれ、
前記設定手段は、ネットワーク環境情報に応じて前記第１機能及び前記第２機能のそれぞれの利用の可否を設定し、
前記制御手段は、前記設定情報において、前記第１機能の利用が可と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第１機能の利用が否と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行わず、前記第２機能の利用が可と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第２機能の利用が否と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行わないことを特徴とする情報処理装置。
【請求項２】
前記ネットワーク環境情報は、ＤＨＣＰを利用する／しない、自身のＩＰアドレス、サブネットマスク、デフォルトゲートウェイアドレス、ＤＮＳサーバアドレス、及びＤＨＣＰサーバアドレスの少なくともいずれかを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ネットワーク環境情報は、前記ネットワークに接続するために用いた通信機能の種類を含むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記特定手段が前記取得手段で取得されたネットワーク環境情報に対応する設定情報が前記記憶手段になく、特定できなかった場合、前記設定手段により新規の設定情報に関する設定が行われることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
更に、前記表示手段により設定情報の内容を表示した際に、ユーザの指示に応じて、当該設定情報の内容を編集する編集手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
ネットワークデバイスのデバイスドライバの自動インストールは、ネットワークプラグアンドプレイを利用し、前記ネットワーク参加メッセージはＨｅｌｌｏメッセージ、前記探索メッセージはＰｒｏｂｅメッセージであることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
ネットワーク通信手段を介してネットワークデバイスを検出し、当該検出したネットワークデバイスに対応するデバイスドライバを自動インストールする情報処理装置の制御方法であって、
接続するネットワークを特定するネットワーク環境情報と当該ネットワーク環境情報で示されるネットワークに対して前記デバイスドライバの自動インストールのための機能の利用の可否を設定する設定工程と、
前記設定手段により設定された情報を記述した設定情報を記憶手段に格納する格納工程と、
接続中のネットワークに関するネットワーク環境情報を取得する取得工程と、
前記記憶手段により記憶されている設定情報の中から、前記取得工程で取得されたネットワーク環境情報に対応する設定情報を特定する特定工程と、
前記特定工程により特定された設定情報の内容を表示する表示工程と、
前記特定工程により特定された設定情報に従い、接続中のネットワークのネットワークデバイスに対応するデバイスドライバの自動インストールの制御を行う制御工程とを有し、
前記デバイスドライバの自動インストールのための機能には、接続中のネットワーク上のネットワークデバイスから発行されたネットワーク参加メッセージを前記情報処理装置が搭載しているインストールの制御のためのシステムへ通知する第１機能と、ネットワークデバイスの探索メッセージをネットワークへ送信する第２機能とが含まれ、
前記設定工程では、ネットワーク環境情報に応じて前記第１機能及び前記第２機能のそれぞれの利用の可否を設定し、
前記制御工程では、前記設定情報において、前記第１機能の利用が可と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第１機能の利用が否と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行わず、前記第２機能の利用が可と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第２機能の利用が否と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行わないことを特徴とする情報処理装置の制御方法。
【請求項８】
ネットワーク通信手段を介してネットワークデバイスを検出し、当該検出したネットワークデバイスに対応するデバイスドライバを自動インストールするコンピュータである情報処理装置が実行するコンピュータプログラムであって、
前記コンピュータを、
接続するネットワークを特定するネットワーク環境情報と当該ネットワーク環境情報で示されるネットワークに対して前記デバイスドライバの自動インストールのための機能の利用の可否を設定する設定手段と、
前記設定手段により設定された情報を記述した設定情報を記憶手段に格納する手段と、
接続中のネットワークに関するネットワーク環境情報を取得する取得手段と、
前記記憶手段により記憶されている設定情報の中から、前記取得手段で取得されたネットワーク環境情報に対応する設定情報を特定する特定手段と、
前記特定手段により特定された設定情報の内容を表示する表示手段と、
前記特定手段により特定された設定情報に従い、接続中のネットワークのネットワークデバイスに対応するデバイスドライバの自動インストールの制御を行う制御手段として機能させ、
前記デバイスドライバの自動インストールのための機能には、接続中のネットワーク上のネットワークデバイスから発行されたネットワーク参加メッセージを前記情報処理装置が搭載しているインストールの制御のためのシステムへ通知する第１機能と、ネットワークデバイスの探索メッセージをネットワークへ送信する第２機能とが含まれ、
前記設定手段は、ネットワーク環境情報に応じて前記第１機能及び前記第２機能のそれぞれの利用の可否を設定し、
前記制御手段は、前記設定情報において、前記第１機能の利用が可と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第１機能の利用が否と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行わず、前記第２機能の利用が可と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第２機能の利用が否と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行わないことを特徴とするコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに対応した周辺装置（デバイス）を制御するためのデバイスドライバのインストール技術に関するものである。
【背景技術】
【０００２】
従来から、ネットワーク上のクライアント装置からのサービス要求に応えるサービス提供装置及び、サービス提供システムが知られている。また、インターネットによる通信の飛躍的な普及に伴い、ネットワーク対応型機器として、従来のパーソナルコンピュータ以外の種類の多様な機器が開発されている。例えば、ＰＤＡ（Personal Digital Assistance）、携帯電話等のユーザインタラクティブなデバイスは勿論こと、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置が挙げられる。また、更には、テレビ、エアコン、冷蔵庫等の家電製品などまでもが、ネットワーク対応になってきている。
【０００３】
これに伴い、サービスを提供するネットワークデバイスの探索・検索する技術が開発されている。特に、ネットワーク対応型デバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップを行ない技術、プロトコル、アーキテクチャが提案されている(特許文献１，２)。
【０００４】
また、複数の企業、標準化団体が、ローカルＩ／Ｏ接続デバイス対して適用されてきたプラグアンドプレイをネットワークデバイスに対して拡張対応すべく、仕様策定作業を進めている。
【０００５】
例えば、米国Ｍｉｃｒｏｓｏｆｔ社が主体となって策定を進めるＵＰｎＰ（登録商標）、およびＷＳＤ（Web Services for Devices）、ジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ、米国Ａｐｐｌｅ社が開発したＯＳ  ＸでサポートされるＲｅｎｅｄｚｖｏｕｓなどがその一例である。
【０００６】
上記のように、ネットワークプラグアンドプレイが普及することによって利便性が向上することが期待されている。
【特許文献１】特開２００４−０３８９５６公報
【特許文献２】特開２００４−３６２５９４公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ノートＰＣ、ＰＤＡ、携帯電話のように、異なるネットワーク環境を常時移動するようなモバイルデバイスを利用する場合、上記のネットワークプラグアンドプレイデバイスによる弊害が予想される。なぜなら、モバイルデバイスを利用する際に、ユーザの意図に反した不必要なネットワークデバイスが検索されてしまい、そのドライバ、アプリケーションがモバイルデバイスにインストールされてしまうからである。
【０００８】
例えば、ノートパソコンを自宅、あるいは勤務先のオフィスから移動し、訪問先オフィス、あるいは公共施設に設けられたホットスポットなど、異なるネットワーク環境で利用するケースについて考察すると分かりやすい。この場合、ユーザー自身は利用する意図がなくても、ノートパソコンのプラグアンドプレイ機能が、そのネットワーク環境で稼動しているネットワークデバイスを発見してしまうことが起こりえる。すなわち、必要としないネットワークデバイスのドライバ、アプリケーションが自動的にインストールされてしまう事態が起こる。
【０００９】
この結果、モバイルデバイスのハードウェア資源、特にメモリ資源をいたずらに消費してしまう。また、セキュリティ上信頼できないソフトウエアがユーザが意識しないうちにインストールされてしまい、情報の破壊、漏洩といった深刻な被害につながることにもなろう。
【００１０】
また、同様に、ノートＰＣ、ＰＤＡ、携帯電話のようなモバイルデバイスが備えるプラグアンドプレイ機能が、ネットワークデバイスを発見するたびに、インストールを促すポップアップメッセージ、あるいは警告メッセージ等を表示することになる。従って、ネットワークデバイスの総数が数十台から数百台に及ぶ場合、モバイルデバイスのユーザは、それらメッセージをキャンセルする手続き、作業に煩わされることになる。
【００１１】
本発明はかかる問題点に鑑みなされたものであり、接続中のネットワークのネットワーク環境に応じて、発見されたネットワークデバイスのデバイスドライバの自動インストールを行う／行わないを設定可能とする技術を提供しようとするものである。
【課題を解決するための手段】
【００１２】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
ネットワーク通信手段を介してネットワークデバイスを検出し、当該検出したネットワークデバイスに対応するデバイスドライバを自動インストールする情報処理装置であって、
接続するネットワークを特定するネットワーク環境情報と当該ネットワーク環境情報で示されるネットワークに対して前記デバイスドライバの自動インストールのための機能の利用の可否を設定する設定手段と、
前記設定手段により設定された情報を記述した設定情報を記憶する記憶手段と、
接続中のネットワークに関するネットワーク環境情報を取得する取得手段と、
前記記憶手段により記憶されている設定情報の中から、前記取得手段で取得されたネットワーク環境情報に対応する設定情報を特定する特定手段と、
前記特定手段により特定された設定情報の内容を表示する表示手段と、
前記特定手段により特定された設定情報に従い、接続中のネットワークのネットワークデバイスに対応するデバイスドライバの自動インストールの制御を行う制御手段とを備え、
前記デバイスドライバの自動インストールのための機能には、接続中のネットワーク上のネットワークデバイスから発行されたネットワーク参加メッセージを前記情報処理装置が搭載しているインストールの制御のためのシステムへ通知する第１機能と、ネットワークデバイスの探索メッセージをネットワークへ送信する第２機能とが含まれ、
前記設定手段は、ネットワーク環境情報に応じて前記第１機能及び前記第２機能のそれぞれの利用の可否を設定し、
前記制御手段は、前記設定情報において、前記第１機能の利用が可と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第１機能の利用が否と設定されている場合には前記ネットワーク参加メッセージにより特定されるネットワークデバイスに対応するデバイスドライバの自動インストールを行わず、前記第２機能の利用が可と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行い、前記第２機能の利用が否と設定されている場合には前記探索メッセージにより発見されたネットワークデバイスに対応するデバイスドライバの自動インストールを行わないことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、接続中のネットワークのネットワーク環境に応じて、発見されたネットワークデバイスのデバイスドライバの自動インストールを行う／行わないを設定可能となる。その結果、或るネットワークに接続した際に、ユーザが利用する情報処理装置のメモリ等のハードウェア資源が不必要に消費されることを防止できる。また、セキュリティ上信頼できないソフトウエアによる情報の破壊、漏洩といった被害を防止することも可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下の説明におけるプロトコル、バージョン、アドレス、その他の数値等は一例であって、特に特定的な記載がない限りは、本発明を限定するものとはならないことに注意されたい。
【００１５】
＜第１の実施形態＞
図１は第１の実施形態におけるネットワークプラグアンドプレイシステムの構成を示すブロック図である。
【００１６】
図中、１００は、クライアントデバイスで、オフィスからホームネットワーク、あるいは訪問先のネットワーク環境へと接続環境が頻繁に変化する可能性の大きなクライアント端末としてのノートＰＣであるものとする。勿論、ＰＤＡ、携帯電話等でも構わない。
【００１７】
クライアント端末１００は、通信機能としてEthernet(登録商標）, Wi-Fi(IEEE80.11a/b/g), Bluetoothに対応しており、それぞれEthernet(登録商標）コントローラ１、Wi-Fiコントローラ２、Bluetoothコントローラ３を備えるか、それ専用のカードとして搭載可能とする。これらコントローラの上位レイヤには、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を備え、そのプロトコルスタック上にＨＴＴＰ５を備え、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。
【００１８】
ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４、およびＨＴＴＰ５の上位層にはＳＯＡＰ（Simple Object Access Protocol）プロセッサ６を備え、プラグアンドプレイモード設定ユーティリティ７、WSDモジュール８、およびユーティリティ１４、アプリケーション １５が、それぞれ該処理部を介してeXtensible Markup Language(XML)で記述されたデータによる双方向通信を実現する。
【００１９】
ネットワークマネージャ９は、各Ethernet(登録商標）コントローラ１、 Wi-Fコントローラ２、 Bluetoothコントローラ３を管理するモジュールであり、各コントローラの設定情報、通信状態に関する情報を取得する機能を備える。
【００２０】
プラグアンドプレイモード設定ユーティリティ７はネットワークマネージャ９を制御し、現在稼動中のネットワークコントローラ情報、およびその設定情報を取得し、その設定情報をメモリコントローラ１０を介して、メモリ（ハードディスクでも構わない）上に記録する機能を有する。
【００２１】
また、プラグアンドプレイモード設定ユーティリティ７はＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４よりネットワーク構成情報を取得する機能を備え、その設定情報をモード設定情報１２としてメモリコントローラ１０を介して、メモリ（ハードディスク等の不揮発性メモリ）上に記録する機能を有する。
【００２２】
また、プラグアンドプレイモード設定ユーティリティ７は、プラグアンドプレイ設定のＵＩを制御し、その設定内容をメモリコントローラ １０をメモリ上に記録する。
【００２３】
これら設定情報は、プラグアンドプレイモード設定ユーティリティ７によりＸＭＬ(eXtensible Markup Language)に変換され、ＸＭＬの形式でメモリ上に記録される。設定情報の詳細、および書式に関しては後述する。
【００２４】
プラグアンドプレイモード設定ユーティリティ７は、記録されたプラグアンドプレイモードに従い、ＲＣＰ／ＵＤＰ／ＩＰプロトコルスタック４に対し、Ｈｅｌｌｏメッセージ受信ポートのEnable/Disableを制御する。
【００２５】
また、プラグアンドプレイモード設定ユーティリティ７は、記録されたプラグアンドプレイモードに従い、ＳＯＡＰプロセッサ６に対し、Probeメッセージ送信Enable/Disableを制御する。
【００２６】
ＷＳＤモジュール８はＳＯＡＰプロセッサ６を介して、米国Microsoft社らが、その仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークデバイスから通知されるＨｅｌｌｏメッセージに対する応答処理、および、ネットワークデバイス検索のためのＰｒｏｂｅメッセージの発行処理を実行する。また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、ＧｅｔＭｅｔａｄａｔａメッセージを発行することで、ネットワークデバイスの属性情報を取得する。
【００２７】
これらメッセージ処理により、ネットワークデバイスを発見した場合、ＷＳＤモジュール８はプラグアンドプレイコントローラ１１に対して、発見したネットワークデバイスの属性情報を通知する。プラグアンドプレイコントローラ１１は該属性情報をもとに該当するドライバ、ユーティリティソフトウエアをメモリコントローラ１０を介してメモリより読み込み、クライアント端末１００に対してインストールを実行する機能を備える。
【００２８】
アプリケーションは例えばワードプロセッサなどで編集した書類をネットワークデバイス・プリンタに印刷する際、プラグアンドプレイコントローラ １１によりインストールされたドライバ、ユーティリティを介して、ネットワーク対応デバイス２００に対してジョブデータ、印刷データを送信する。
【００２９】
一方、ネットワーク対応デバイス２００（本実施の形態ではネットワーク対応型プリンタとしている）は、通信機能としてEthernet(登録商標）, Wi-Fi(IEEE80.11a/b/g), Bluetoothに対応しており、それぞれEthernet(登録商標）コントローラ１６、Wi-Fiコントローラ１７により制御される。これらコントローラの上位レイヤには、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１８を備え、そのプロトコルスタック上にＨＴＴＰ１９を備え、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。
【００３０】
ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１８、およびＨＴＴＰ１９の上位層にはＳＯＡＰプロセッサ２０を備え、ＷＳＤモジュール２１、およびプリンタコントローラ２２が、それぞれ該処理部を介してＸＭＬで記述されたデータの双方向通信を実現する。
【００３１】
ここで、ＷＳＤモジュール２１はＳＯＡＰプロセッサ２０を介して、米国Microsoft社らが、その仕様策定を推進するＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づき、ネットワークに接続した際に、Ｈｅｌｌｏメッセージの送信、およびクライアント端末１００から発行されるＰｒｏｂｅメッセージに対する応答処理を実行する。
【００３２】
また、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づき、クライアント端末１００から発行されたGetMetadataメッセージに応じ、ネットワーク対応デバイス（本例では、ネットワーク対応プリンタ）が持つ属性情報を返信する。
【００３３】
ワイヤレスＬＡＮアクセスポイント２３は、ネットワーク上の通信の中継装置として機能する。クライアント端末１００がＷｉ−Ｆｉコントローラ２を介してネットワーク接続する際にも、このワイヤレスＬＡＮアクセスポイント２３を介してEthernet(登録商標）に接続することになる。
【００３４】
ここで、クライアント端末１００とネットワーク対応デバイス２００間のＷＳＤの仕様に基づく探索及びそのネットワーク対応デバイス２００用のデバイスドライバのインストールの手順を図１９に従って簡単に説明する。
【００３５】
図１９（ａ）は、クライアント端末１００がネットワークに接続する際、もしくはユーザによるネットワークデバイスの探索の指示入力がなされた場合の手順を示している。
【００３６】
クライアント端末１００は、ネットワークにデバイス検索要求であるＰｒｏｂｅメッセージをマルチキャスト（ブロードキャスト）送信する。このＰｒｏｂｅメッセージを受信したネットワーク対応デバイス（実施形態でネットワーク対応プリンタ）２００は、それに応じるべくクライアント端末１００に向けて応答メッセージ（ＰｒｏｂｅＭａｔｃｈ）をユニキャスト送信する。これ以降、通信相手先が互いに判明しているので、送受信はユニキャストになる。
【００３７】
クライアント端末１００は、上記の応答メッセージを受信することで、ネットワーク上にネットワーク対応デバイス２００の存在することが検出できる。従って、次の段階に進み、そのネットワーク対応デバイスに対してデバイス情報要求メッセージ（ＧｅｔＭｅｔａＤａｔａ）を送信（ユニキャスト）し、デバイス情報（ＭｅｔａＤａｔａ ｆｏｒ  Ｄｅｖｉｃｅ）を取得する。この後、クライアント端末１００は、サービス情報要求メッセージ（ＧｅｔＭａｔａＤａｔａ）を送信し、サービス情報（ＭｅｔａＤａｔａ ｆｏｒ Ｓｅｒｖｉｃｅ）を取得する。
【００３８】
以上の結果、クライアント端末１００は、ネットワーク対応デバイス２００の機種名、属性情報（プリンタであることを示す情報）を得ることができるので、ＯＳに該当するデバイスドライバ（上記の場合にはプリンタドライバ）のインストールが行われることになる。
【００３９】
図１９（ｂ）は、クライアント端末１００は既にネットワークに接続が完了した後、ネットワーク対応デバイス２００をネットワークに参加させた場合の手順を示している。なお、ネットワーク対応デバイス２００のネットワークへの参加とは、そのネットワーク対応デバイス２００の電源が投入された場合と考えると分かりやすい。
【００４０】
先ず、ネットワーク対応デバイスはネットワークに参加するための参加メッセージ（Ｈｅｌｌｏ）をマルチキャスト送信する。クライアント端末１００は、この参加メッセージを受信することで、ネットワーク対応デバイス２００の存在を検出するので、デバイス情報要求メッセージを送信する。この後の手順は、図１９（ａ）と同じである。
【００４１】
さて、上記のようにして、クライアント端末１００が未知のネットワーク対応デバイスを検出して、デバイスドライバが自動インストールされるので、ユーザにかかる負担は少なくなる。しかしながら、クライアント端末１００を自宅等の小規模のＬＡＮ環境から、ネットワーク対応デバイスが多数存在する社内ＬＡＮ環境に移動させると、図１９（ａ）、（ｂ）のいずれの場合においても、多数のデバイスが検索されてしまい、結局のところ、多数のデバイスドライバが次々とインストールされてしまう。また、ネットワーク対応デバイスがネットワークスキャナ、ネットワークプリンタとして機能する複合機である場合には、それぞれの機能に関するドライバがインストールされることになる。更には、ネットワークプリンタ１つを例にしても、多数のＰＤＬ（ページ記述言語）に対応する場合には、そのＰＤＬの数分のデバイスドライバがインストールされることになり、インストールされるデバイスドライバの数は、もはや無視できない数になり得る。１つのデバイスドライバのインストールに要する時間も数十秒乃至数分になるわけであるから、クライアント端末１００を利用した本来の作業を行えるまでに多くの時間を必要とする。なにより不必要なデバイスドライバのためにメモリが消費され、本来の作業に支障を来すことにもなりかねない。
【００４２】
そこで、本実施形態では、クライアント端末１００がデバイス探索要求メッセージ（Ｐｒｏｂｅ）の送信する／しない、ネットワーク対応デバイスのネットワーク参加メッセージ（Ｈｅｌｌｏ）に応答する／しないを、そのクライアント端末１００が接続するネットワーク環境に応じて設定することで、上記の問題を解決する。
【００４３】
以下に本実施形態のクライアント端末１００の制御の流れを図２のフローチャートに従い説明する。この処理は、クライアント端末のインストールしたメモリ常駐型のプラグアンドプレイモード設定ユーティリティ（アプリケーションプログラム）の処理でもある。
【００４４】
クライアントデバイス１００のメモリに常駐しているプラグアンドプレイモード設定ユーティリティ７は、Ethernet(登録商標），Wi−Fi，Bluetoothのいずれかの通信コントローラを介してネットワーク接続が開始し、ネットワークマネージャ９よりプラグアンドプレイモード設定ユーティリティ７に対しNotifyが通知されるのを待つ(ステップＳ１)。この通知を受けることをトリガにして、プラグアンドプレイモード設定ユーティリティ ７は、ネットワークマネージャ９を介して現在稼動中のネットワークコントローラが、Ehternet、Wi-FI、Bluetooth Controllerのいずれであるか情報を取得する(ステップＳ２)。
【００４５】
次にプラグアンドプレイモード設定ユーティリティ７はＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック ４より、以下のネットワーク設定情報を取得する(ステップＳ３)。
DHCP Enabled：YES/NO （DHCPによるアドレス取得か否かを意味する）。
IP Address:  IPアドレス（ローカルＩＰアドレス）
Subnet Mask：サブネットマスク値
Default Gateway：Gatewayアドレス
DNS Server：DNSサーバーアドレス
DHCP Server：DHCPサーバーアドレス
【００４６】
プラグアンドプレイモード設定ユーティリティ７は、次に取得したデータをメモリコントローラ１０を介して、メモリ（ハードディスク）上に、過去に記録されたプラグアンドプレイ設定データファイル（特定の拡張子を持つか、特定のフォルダに格納されているものとする）を検索し（ステップＳ４）、現在接続されているネットワークの設定情報と一致するプラグアンドプレイ設定データファイルがあるか否かを判断する（ステップＳ５）。なお、クライアント端末１００が過去の一度もネットワークに説明していない場合には、該当するプラグアンドプレイ設定データが存在しないので、不一致と判断する。
【００４７】
図３は記録されるプラグアンドプレイ設定データ（ファイル）の構成を示すものであり、ネットワーク情報、およびそのネットワーク環境に対するプラグアンドプレイ設定データであるProbe発行の許可、禁止、Helloメッセージに対する応答許可、禁止の設定情報がXML(eXtensible Markup Language)で記述される。なお、タグ＜ＤＨＣＰＥｎａｂｌｅｄ＞〜＜／ＤＨＣＰＥｎａｂｌｅｄ＞で挟まれた記述が「ＹＥＳ」である場合には、タグ＜ＩＰＡｄｄｒｅｓｓ＞〜＜／ＩＰＡｄｄｒｅｓｓ＞の行は存在しない。ＤＨＣＰを利用する場合には、クライアント端末１００のローカルＩＰアドレスは、接続する度に変化する可能性があるためである。
【００４８】
また、図３のプラグアンドプレイ設定データファイルにおいて、タグ＜Ｐｒｏｂｅ＞〜＜／Ｐｒｏｂｅ＞は、クライアント端末１００からデバイス検索要求メッセージ（Ｐｒｏｂｅ）をマルチキャスト送信する／しないを記述するものである。また、タグ＜Ｈｅｌｌｏ＞〜＜／Ｈｅｌｌｏ＞は、ネットワークデバイスが発行するネットワーク参加メッセージ（Ｈｅｌｌｏ）に対して応答するか否かを記述するものである。
【００４９】
図１８は、既に記憶されたプラグアンドプレイ設定データファイルとの比較手順を示すフローチャートである。
【００５０】
プラグアンドプレイモード設定ユーティリティ７は、メモリコントローラ１０を介して順次プラグアンドプレイ設定データファイルを読み込む処理を行う（ステップＳ１００）。次のステップＳ１０１では、読込むべきデータが存在し、正常に読み込まれたか否かを判断する。
【００５１】
データの読み込みが行われた場合には、ステップＳ１０２に進み、読み込んだデータのタグ＜ＤＨＣＰＥｎａｂｌｅｄ＞〜＜ＤＨＣＰＥｎａｂｌｅｄ＞の記述がＹＥＳ、ＮＯのいずれであるかを判断する。つまり、読み込んだデータのネットワーク接続環境がＤＨＣＰを利用することが設定されているか否かを判断する。
【００５２】
ＤＨＣＰを利用する記述がなされていると判断した場合には、ステップＳ１０４に進んで、現在ネットワークに接続中のネットワークコントローラがＤＨＣＰクライアントとして設定されているか否かを判断する。つまり、読み込んだデータ中のＤＨＣＰに関する記述が、現在のネットワーク接続中のＤＨＣＰの状態と同じであるか否かを判断する。否の場合には、読み込んだプラグアンドプレイ設定データファイルは、現在のネットワーク接続環境とは異なるものであるので、ステップＳ１００に戻り、次のプラグアンドプレイ設定データファイルの読み込みを行う。
【００５３】
また、ステップＳ１０４にて、読み込んだプラグアンドプレイ設定データファイル中のＤＨＣＰに関する記述と、現在のネットワーク接続環境とが一致していると判断した場合には、ステップＳ１０５に進んで、読み込んだプラグアンドプレイ設定データファイル中のＤＮＳサーバ、Ｄｅｆｏｕｌｔ  ＧａｔｅｗａｙのＩＰアドレスが、現在のネットワーク接続環境におけるそれらのＩＰアドレスと一致するか否かを判断する。不一致の場合には、ステップＳ１００に戻り、一致する場合にはステップＳ１０６に進む。
【００５４】
ステップＳ１０６では、読み込んだプラグアンドプレイ設定データファイル中のＳｕｂｎｅｔ Ｍａｓｋの情報と、現在のネットワーク接続環境におけるＳｕｂｎｅｔ Ｍａｓｋが一致しているか否かを判断する。否の場合には、ステップＳ１００に戻り、一致していればステップＳ１０７に進んで、現在の接続中のネットワーク環境と同じ情報を記述したプラグアンドプレイ設定データファイルが存在すると判定し、本処理を終了する。
【００５５】
また、ステップＳ１０２にて、読み込んだプラグアンドプレイ設定データファイル中のＤＨＣＰに関する記述が“ＮＯ”であった場合には、ステップＳ１０３に進む。ここでは、読み込んだプラグアンドプレイ設定データファイル中のタグＩＰａｄｒｅｓｓに記述されたＩＰアドレスが、現在の接続中のネットワークコントローラに設定されたＩＰアドレスと一致するか否かを判断する。不一致であれば、読み込んだプラグアンドプレイ設定データファイルは、ステップＳ１００に戻る。また、一致している場合には、ステップＳ１０５に処理を進める。
【００５６】
上記のようにして、ステップＳ１００に戻って上記処理を繰り返し、現在接続中のネットワーク環境に一致するプラグアンドプレイ設定データファイルが見つからない場合には、ステップＳ１０１からステップＳ１０８に進み、一致データファイル無しとして判定し、本処理を終了することになる。
【００５７】
図２のフローチャートの説明に戻る。上記のようにして、ステップＳ５において、現在接続中のネットワーク環境と同一の環境を記載したプラグアンドプレイ設定データファイルが存在すると判断した場合には、ステップＳ６に進んで、そのプラグアンドプレイ設定データファイルを読み込み、クライアント端末１００のユーザにその記述内容を変更するか否かを選択させるため、図４に示すポップアップメニューを表示し、変更／変更無しをステップＳ７にて判断する。
【００５８】
図４では、接続されたネットワーク接続環境に対し、ネットワークデバイスの検索を行う（Ｐｒｏｂｅメッセージの送信許可）、ネットワークデバイスの参加メッセージ（Ｈｅｌｌｏ）に対して応答しないことが選択されている状態を示している。
【００５９】
ユーザは表示されたポップアップメニューに対して変更するか否かを選択するため、図示のボタンＹｅｓ、Ｎｏの何れかをポインティングデバイスで指示することになる。
【００６０】
変更無し、すなわち、図４のボタンＮｏが指示されたと判断した場合には、ステップＳ７からステップＳ８に進んで、読み込んだプラグアンドプレイ設定データファイルの記述に従ってプラグアンドプレイ制御処理を実行する。
【００６１】
一方、ステップＳ５において、現在接続中のネットワーク環境に一致するプラグアンドプレイ設定データファイルが存在しない、或いは、ステップＳ７にて変更するとの指示が入力された場合には、処理はステップＳ９に進み、図５のポップアップメニューを表示し、現在接続中のネットワーク環境に対するプラグアンドプレイモードの設定を利用者に促す。
【００６２】
このポップアップメニューには、現在クライアント端末１００が接続しているネットワーク種別、およびネットワーク情報の一部が表示されており、ネットワークデバイスの検索機能、およびＨｅｌｌｏメッセージ応答に対して、それぞれ許可、禁止の設定が可能となっている。
【００６３】
ステップＳ１０では、設定が完了したか否かを判断する。図５の画面にて、ＯＫボタンがポインティングデバイスで指示されると設定が完了したと判断し、ステップＳ１０に進んで設定内容を、図３に示すフォーマットにて、メモリコントローラ１０を介してメモリ１１上に登録し、該設定情報にもとづきプラグアンドプレイ制御を実施する(ステップＳ８）。
【００６４】
なお、ステップＳ５からステップＳ９に処理が進んだ場合には、プラグアンドプレイ設定データファイルは新規保存となり、ステップＳ７からステップＳ９に進んだ場合には、既存のプラグアンドプレイ設定データファイルを変更し、再保存となる。
【００６５】
図６は、プラグアンドプレイモード設定に従い、ネットワークデバイスの検索機能、およびHelloメッセージ応答に対して、それぞれ許可、禁止する具体的手段を説明するフローチャートである。
【００６６】
プラグアンドプレイモード設定ユーティリティ７は、現在、接続中であるネットワークに対するプラグアンドプレイモード設定に基づき、その設定がＨｅｌｌｏ応答禁止になっているか否かを判断する（ステップＳ２１）。Ｈｅｌｌｏ応答禁止になっていると判断した場合には、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４モジュールに対し、マルチキャストポート(239.255.255.250)の無効化を通知する(ステップＳ２２）。この結果、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４モジュールは該ポートをＤｉｓａｂｌｅとするため、ネットワークデバイスから通知されるＨｅｌｌｏメッセージは、その上位レイヤに位置する各モジュール、およびユーティティ１４、アプリケーション１５には通知されない。すなわち、ネットワーク上のデバイスがＨｅｌｌｏメッセージを発行したとしても、上位に通知されなくなり、そのデバイスのデバイスドライバのインストール処理に進むことがなくなる。
【００６７】
また、Ｈｅｌｌｏ応答許可が設定されていると判断した場合には、ステップＳ２３に進んで、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４モジュールに対し、マルチキャストポート(239.255.255.250)の有効化を通知する。この結果、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４モジュールは該ポートをEnableとするため、ネットワークデバイスから通知されるＨｅｌｌｏメッセージは、その上位レイヤに位置する各モジュール、およびユーティティ１４、アプリケーション１５に通知される。
【００６８】
次に処理はステップＳ２４に進む。ここでは、Probe発行禁止設定がされているか否かを判断する。Probe発行禁止が設定されている場合、ステップＳ２５に進み、Add Printer Wizard等、ネットワークデバイスの検索機能を有するユーティリティ１４、およびアプリケーション１５に対し、該当機能のDisableを通知 するように設定する。また、ＳＯＡＰプロセッサ６に対し、Probeパケットの生成禁止を通知する(ステップＳ２６)。この結果、ＳＯＡＰプロセッサ６は上位レイヤに位置するモジュール、あるいはユーティリティ１４、アプリケーション１５からProbeパケット発行要求があった場合、エラーを通知する。従って、クライアント端末１００から、ネットワークに対してネットワークデバイス検索メッセージ（Ｐｒｏｂｅ）が発行されることは無い。
【００６９】
また、Ｐｒｏｂｅ発行許可の設定がなされている場合には、ステップＳ２７に進み、Add Printer Wizard等、ネットワークデバイスの検索機能を有するユーティリティ１４、およびアプリケーション１５に対し、該当機能のEnableを通知 する。併せてＳＯＡＰプロセッサ６に対し、Probeパケットの生成許可を通知する(ステップＳ２８）。ＳＯＡＰプロセッサ６は上位レイヤに位置するモジュール、あるいはユーティリティ１４、アプリケーション１５からProbeパケット発行要求に応じ、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様で定義されたProbeパケットを生成、TCP/UDP/IPコントローラ４を介してProbeパケットをネットワーク上に送信することになる。
【００７０】
以上、プラグアンドプレイモード設定に対する制御が完了した後、クライアント端末１００はネットワークデバイスに対するプラグアンドプレイ処理を実施する。
【００７１】
ここでは、ネットワーク対応デバイスがネットワークに参加する際に発行するＨｅｌｌｏメッセージが発行される場合の例を図７のフローチャートに従って簡単に説明する。
【００７２】
本実施形態において、ネットワーク対応デバイス２００は、ネットワークに新規に導入されてネットワーク上で通信を開始する際、あるいは、電源オフの状態から電源オンされてネットワーク上での通信を再開する際、ＷＳＤモジュール２１は、ＳＯＡＰプロセッサ２０に対してHelloメッセージの送信を要求する。ＳＯＡＰプロセッサ２０は、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づきＨｅｌｌｏメッセージを生成し、プロトコルスタックを介してマルチキャストアドレス239.255.255.250に対してマルチキャスト送信する(ステップＳ３１)。
【００７３】
このＨｅｌｌｏメッセージはＸＭＬ−ＳＯＡＰで記述されており、一例を示すのであれば図８に示すフォーマットである。
【００７４】
クライアント端末１００において、プラグアンドプレイモードの設定がＨｅｌｌｏメッセージに対して応答禁止するように設定された場合には、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４は、マルチキャストポート239.255.255.250を無効としているため、ネットワークデバイス２００から送信されたＨｅｌｌｏメッセージは破棄される (ステップＳ３２)。すなわち、受信したＨｅｌｌｏメッセージの、ＯＳが有するＳＯＡＰプロセッサへの通知を遮断する。
【００７５】
従って、ネットワーク上に新規ネットワーク対応デバイスが稼動を開始した場合であっても、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４より上位レイヤーに位置するアプリケーション１５、ユーティリティ１４、およびＷＳＤモジュール８は、ネットワーク対応デバイス２００の稼動開始情報を取得することは無く、そのため、例えば、ネットワークデバイスをインストールするためのユーティリティが起動したり、あるいは新規デバイス発見を通知するメッセージがディスプレイ上に表示されることもなくなる。
【００７６】
一方、Ｈｅｌｌｏ応答許可設定の場合は、ＨｅｌｌｏメッセージはＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介して、ＳＯＡＰプロセッサ６に通知される。ＳＯＡＰプロセッサ６は、Ｈｅｌｌｏメッセージの内容を解析し、その結果をＷＳＤモジュール８に通知する (ステップＳ３３)。
【００７７】
ＷＳＤモジュール８は、Ｈｅｌｌｏメッセージに記述されたアドレスに対し、該メッセージを発行したネットワークデバイスの属性情報を取得するために、ＳＯＡＰプロセッサ６に対してＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅで規定されるＧｅｔＭｅｔａｄａｔａメッセージ発行を要求することになる。
【００７８】
ＳＯＡＰプロセッサ６は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づきＧｅｔＭｅｔａｄａｔａメッセージを生成し、生成されたメッセージをＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介してネットワーク対応デバイス２００に対してユニキャスト送信する(ステップＳ３４)。
【００７９】
ＧｅｔＭｅｔａｄａｔａメッセージはＸＭＬ−ＳＯＡＰで記述されており、一例として、図９にそのメッセージフォーマットを示す。
【００８０】
ネットワーク対応デバイス２００が、上記ＧｅｔＭｅｔａｄａｔａメッセージを受信すると、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１８を介して、ＳＯＡＰプロセッサ２０にそのメッセージが通知される(ステップＳ３５)。ＳＯＡＰプロセッサ２０は、ＧｅｔＭｅｔａｄａｔａメッセージの内容を解析し、その結果をＷＳＤモジュール２１に通知する。ＷＳＤモジュール２１は、指定された属性情報をクライアントに対して返信するために、ＳＯＡＰプロセッサ２０に対してＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅで規定されるＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージ発行を要求する。
【００８１】
ＳＯＡＰプロセッサ２０は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づきＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージを生成し、プロトコルスタックを介してクライアント端末１００に対してユニキャスト送信する ことになる（ステップＳ３６）。
【００８２】
ＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージはＸＭＬ−ＳＯＡＰで記述されており、一例を示すのであれば図１０のフォーマットである。
【００８３】
クライアント端末１００がＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージを受信すると、そのメッセージがＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介して、ＳＯＡＰプロセッサ６に通知される(ステップＳ３７)。
【００８４】
ＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージに記述されたデバイスの属性情報は、クライアント端末１００のＳＯＡＰプロセッサ６を介して、デバイス属性情報がＷＳＤモジュール８に通知される。
【００８５】
次に、ＷＳＤモジュール８は、プラグアンドプレイコントローラ１１を起動し(ステップＳ３８)、デバイス属性情報をプラグアンドプレイコントローラ１１に対し通知する。通知をうけたプラグアンドプレイコントローラ１１は、メモリコントローラを介してデバイス属性情報に一致するドライバを、自身が有する記憶装置上より検索し、該当するドライバをＯＳにインストールする処理を実行する (ステップＳ３９）。
【００８６】
次に、クライアント端末のネットワーク対応デバイスの検索処理について図１１のフローチャートに従って簡単に説明する。
【００８７】
通常、クライアント端末１００内のユーティリティ１４、あるいはアプリケーション１５が、ＳＯＡＰプロセッサ６に対しＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様にて規定されるＰｒｏｂｅメッセージの送信を要求すると、ＳＯＡＰプロセッサ６は、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づきＰｒｏｂｅメッセージを生成し、プロトコルスタックを介してマルチキャストアドレス239.255.255.250に対してマルチキャスト送信する。そして、そのメッセージに対するネットワーク対応デバイス２００からの応答であるＰｒｏｂｅ Ｍａｔｃｈメッセージの有無により検索処理を実現している。
【００８８】
ただし、プラグアンドプレイモードの設定で、Ｐｒｏｂｅ発行禁止が設定されている場合（図６のステップＳ２５、Ｓ２６）、ユーティリティ１４、アプリケーション１５は、該当機能がＤｉｓａｂｌｅとなっているため、ＳＯＡＰプロセッサ６に対してProbeメッセージ発行要求が通知されることは無い。
【００８９】
また、先に説明したように、プラグアンドプレイモード設定ユーティリティ７より、ＳＯＡＰプロセッサ６に対してＰｒｏｂｅパケット生成禁止が通知されているため、ＳＯＡＰプロセッサ６は上位レイヤに位置するモジュール、あるいはアプリケーションからＰｒｏｂｅパケット発行要求があった場合、エラーを通知する（ステップＳ４１） 。そのため、クライアント端末１００から、ネットワークに対してネットワークデバイス検索のＰｒｏｂｅメッセージが発行されることは無い。従って、ネットワーク対応デバイスのデバイスドライバのインストールされることも無い。
【００９０】
一方、プラグアンドプレイモードが、Probe発行許可に設定されている場合、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様で規定されるＰｒｏｂｅメッセージがＳＯＡＰプロセッサ６より、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介してマルチキャストアドレス239.255.255.250に対してマルチキャスト送信される (ステップＳ４２）。
【００９１】
Ｐｒｏｂｅメッセージは、ＸＭＬ−ＳＯＡＰで記述されており、一例を示すのであれば図１２のメッセージフォーマットである。
【００９２】
ネットワーク対応デバイス２００は、このＰｒｏｂｅメッセージを受信すると(ステップＳ４３）、受信したＰｒｏｂｅメッセージはＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１６を介して、ＳＯＡＰプロセッサ２０に通知される。ＳＯＡＰプロセッサ２０は、Ｐｒｏｂｅメッセージの内容を解析し、その結果をＷＳＤモジュール２１に通知する。ＷＳＤモジュール２１は、通知されたメッセージの内容が、このネットワーク対応デバイス２００が提供する機能と一致しているか否かを判断し（ステップＳ４４）、一致しないと判断した場合、その情報を無視する。したがって、この場合はネットワーク対応デバイス２００からＰｒｏｂｅレスポンスが発行されることは無い。
【００９３】
一方、一致すると判断した場合、ＷＳＤモジュール２１においては、ＳＯＡＰプロセッサ２０に対してＰｒｏｂｅ Ｍａｔｃｈメッセージ発行を要求する。
【００９４】
ＳＯＡＰプロセッサ６は、ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様に基づきＰｒｏｂｅ Ｍａｔｃｈメッセージを生成し、プロトコルスタックを介してクライアント端末１００に対してユニキャスト送信する (ステップＳ４５)。
【００９５】
Ｐｒｏｂｅ ＭａｔｃｈメッセージはＸＭＬ−ＳＯＡＰで記述されており、図１３はそのメッセージフォーマットの一例である。
【００９６】
クライアント端末１００が、上記のＰｒｏｂｅ Ｍａｔｃｈメッセージを受信すると(ステップＳ４６）、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介して、ＳＯＡＰプロセッサ６に通知される。ＳＯＡＰプロセッサ６は、Ｐｒｏｂｅ Ｍａｔｃｈメッセージの内容を解析し、その結果をＷＳＤモジュール８に通知する。
【００９７】
ＷＳＤモジュール８は、Ｐｒｏｂｅ Ｍａｔｃｈメッセージに記述されたアドレスに対し、該メッセージを発行したネットワーク対応デバイス２００の属性情報を取得するために、ＳＯＡＰプロセッサ６に対してＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅで規定されるＧｅｔＭｅｔａｄａｔａメッセージ発行を要求する。
【００９８】
ＳＯＡＰプロセッサ６は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づきＧｅｔＭｅｔａｄａｔａメッセージを生成し、プロトコルスタックを介してネットワーク対応デバイス２００に対してユニキャスト送信する (ステップＳ４７)。
【００９９】
ＧｅｔＭｅｔａｄａｔａメッセージはＸＭＬ−ＳＯＡＰで記述されており、既に図９で示した通りである。
【０１００】
ネットワーク対応デバイス２００は、このＧｅｔＭｅｔａｄａｔａメッセージを受信すると、ＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック１８を介して、ＳＯＡＰプロセッサ２０に通知する（ステップＳ４８）。ＳＯＡＰプロセッサ２０は、ＧｅｔＭｅｔａｄａｔａメッセージの内容を解析し、その結果をＷＳＤモジュール２１に通知する。ＷＳＤモジュール２１は、指定された属性情報をクライアントに対して返信するために、ＳＯＡＰプロセッサ２０に対してＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅで規定されるＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージ発行を要求する。
【０１０１】
ＳＯＡＰプロセッサ２０は、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様に基づきＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージを生成し、プロトコルスタックを介してクライアント端末１００に対してユニキャスト送信する (ステップＳ４９)。
【０１０２】
ＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージはＸＭＬ−ＳＯＡＰで記述されており、その記載フォーマットは既に説明した図１０に示した通りである。
【０１０３】
クライアント端末１００が、このＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージを受信すると（ステップＳ５１）、受信したメッセージはＴＣＰ／ＵＤＰ／ＩＰプロトコルスタック４を介して、ＳＯＡＰプロセッサ６に通知される。
【０１０４】
ＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージに記述されたデバイスの属性情報は、クライアント端末１００のＳＯＡＰプロセッサ６を介して、デバイス属性情報がＷＳＤモジュール８に通知される。この結果、ＷＳＤモジュール８は、プラグアンドプレイコントローラ１１を起動し(ステップＳ５２)、デバイス属性情報をプラグアンドプレイコントローラ１１に通知する。通知をうけたプラグアンドプレイコントローラ１１はメモリコントローラを介してデバイス属性情報に一致するドライバを、ハードディスク等の記憶装置上より検索し、該当するドライバのインストールを実行する (ステップＳ５３)。
【０１０５】
以上、説明した各工程を実行することで、クライアント端末１００は異なるネットワーク環境に対して、個別にプラグアンドプレイのモードを設定することが可能となり、それぞれのネットワーク環境に適するプラグアンドプレイが実行可能となる。特に、未知にネットワークに接続した際に、無条件にネットワーク対応デバイスのデバイスドライバがインストールされることがなくなるので、携帯端末を利用した作業が直ちに行え、且つ、携帯端末が有する限られたメモリを有効利用することも可能になる。
【０１０６】
なお、実施形態では、クライアント端末１００がネットワークに接続した際に、そのネットワークが過去に接続経験のあるネットワークの場合（図２のステップＳ５でＹｅｓの場合）、設定内容を変更するか否かを確認するためのポップアップメニューを表示したが、表示しないで直ちにプラグアンドプレイ設定データファイルに従った処理を行うようにしても構わない。ただし、このままでは、プラグアンドプレイ設定データファイルを再編集することができなくなるので、別途ユーティリティアプリケーションから編集できるようにしても良い。
【０１０７】
また、上記実施形態では、接続経験のあるネットワークの数分のプラグアンドプレイ設定データファイルが作成されることになるが、これらを１つのファイルで記憶管理するようにしても良い。１つのファイルで管理する場合、そのデータ構造はバイナリ形式になるが、図２０のようなものとすることができる。図示では、過去に３つのネットワークに接続したことがある例を示している。なお、図中「…」は、そのデータ項目はネットワーク判定の条件には含めないことを示している。
【０１０８】
＜第２の実施形態＞
上記第１の実施形態では、プラグアンドプレイ設定データファイルには、ネットワークの通信にかかるパラメータを記述するものであったが、利用する通信コントローラの種類（実施形態では、Ethernet(登録商標）, Wi-Fi, Bluetoothコントローラの３つ）に従ってＰｒｏｂｅメッセージ発行許可／不許可、Ｈｅｌｌｏメッセージに対する応答／応答禁止を設定する例を第２の実施形態として説明する。
【０１０９】
図１４は、第２の実施形態における、各ネットワークコントローラ毎に、ネットワークプラグアンドプレイモードを設定する手順を示すフローチャートである。
【０１１０】
プラグアンドプレイモード設定ユーティリティ７を起動する(ステップＳ６１）、ネットワークマネージャ９に対して、現在利用可能な状態にあるネットワークコントローラの情報を取得する(ステップＳ６２）。
【０１１１】
図１５は、第２の実施形態におけるプラグアンドプレイモード設定ユーティリティ７のユーザインターフェイスを示すものであるが、ネットワークマネージャより取得した情報は、“ネットワークを指定してください”の指定項目において、プルダウンメニューの形で表示される。実施形態の場合、Ethernet(登録商標）, Wi-Fi, Bluetoothのいずれかを選択することが可能である。そして、選択したネットワーク接続形態に対して、ネットワーク対応デバイス２００の検索機能、およびＨｅｌｌｏメッセージ応答に対して、それぞれ許可、禁止の設定が可能となっており、いずれもプルダウンメニューにより、許可、禁止のいずれかを選択設定することが可能である(ステップＳ６３)。
【０１１２】
ここでＯＫボタンをポインティングデバイスで指示すると、設定完了であるものとして判断し（ステップＳ６４）、設定情報を図１６に示すフォーマットにてハードディスク等のメモリ上に記録する(ステップＳ６５)。
【０１１３】
この設定はクライアントデバイス１００がネットワークに接続していない状態であっても可能であり、現在使用中のネットワーク環境から、例えば訪問先オフィスにおいてネットワーク利用することが予めわかっている場合などにおいて、事前にプラグアンドプレイモードを設定しておくことが可能となる。
【０１１４】
図１７は、クライアント端末１００がネットワーク接続した際のプラグアンドプレイモード設定ユーティリティ７の処理手順を示すフローチャートである。
【０１１５】
クライアント端末１００がEthernet(登録商標），Wi−Fi，Bluetoothのいずれかの通信媒体を介してネットワーク接続が開始されると、ネットワークマネージ９よりプラグアンドプレイモード設定ユーティリティ７に対しNotifyが通知される（ステップＳ７１）。プラグアンドプレイモード設定ユーティリティ７は、この通知をトリガーとしネットワークマネージャ９を介して現在稼動中のネットワークコントローラが、Ehternet、Wi-FI、Bluetooth Controllerのいずれであるか情報を取得する(ステップＳ７２)。
【０１１６】
次に取得したデータをメモリコントローラ１０を介して、メモリ上に記録されたプラグアンドプレイ設定データの検索と比較処理を行う（ステップＳ７３）。そして、現在稼動中のネットワーク接続しているネットワークコントローラを記述したプラグアンドプレイ設定データが発見できたか否かを判断する（ステップＳ７４）。
【０１１７】
一致するプラグアンドプレイ設定データが発見できた場合には、ステップＳ７５に進み、そのプラグアンドプレイ設定情報を読み込み、その設定情報を図４に示すとおりポップアップメニューを表示し、ユーザに対し、設定を変更するか否かの判断を促す。ここでユーザがＮｏボタンがポインティングデバイスで指示された場合、読み込んだプラグアンドプレイ設定データに従ってプラグアンドプレイ制御を実施する(ステップＳ７７）。
【０１１８】
また、図４のメニューにてＹｅｓボタンが指示された場合、すなわち、プラグアンドプレイ設定を変更する指示が入力された場合はステップＳ７８に進む。また、ステップＳ７４にて、現在ネットワーク接続しているネットワークコントローラの種類を記述したプラグアンドプレイ設定データが存在しなかった場合、即ち事前に利用が想定されていなかったネットワーク環境であり、プラグアンドプレイモード設定が実行されていない場合にもステップＳ７８に進む。ステップＳ７８では、図５に示すポップアップメニューを表示、このネットワーク環境に対するプラグアンドプレイモードの設定を利用者に促す。
【０１１９】
ポップアップメニューには、現在クライアントデバイス１００が接続しているネットワーク種別、およびネットワーク情報の一部が表示されており、ネットワーク対応デバイス２００の検索機能、およびHelloメッセージ応答に対して、それぞれ許可、禁止の設定が可能となっている。
【０１２０】
図５のメニューにて、ＯＫボタンが指示されると、設定が完了したものとして判断し（ステップＳ７９）、その設定内容を前述の図１６に示すフォーマットにてハードディスク等のメモリ上に保存する（ステップＳ８０）。なお、このステップＳ８０の保存処理であるが、ステップＳ７６からステップＳ７８に処理が進んだ場合には再保存となる。そして、ステップＳ７４からステップＳ７８に処理が進んだ場合には、新規保存となる。この後、設定内容に従って、プラグアンドプレイ制御を実行する（ステップＳ７７）。
【０１２１】
この設定に基づく、ネットワーク対応デバイス  ２００の検索処理、およびＨｅｌｌｏメッセージ応答に対するそれぞれ許可、禁止する具体的な処理は、先に説明した第１の実施形態と同様であるので、その説明は省略する。
【０１２２】
＜第３の実施形態＞
上記第１の実施形態では、Ｐｒｏｂｅ発行の許可／禁止、Ｈｅｌｌｏメッセージに対する応答可／不可の判定を、ネットワーク接続環境のＤＣＨＰを利用する／しない、ローカルＩＰアドレス、サブネットマスク、ＤＮＳサーバやＤＨＣＰサーバのＩＰアドレス等のネットワーク環境に基づき判定した。また、第２の実施形態では、ネットワークコントローラの種類をネットワーク環境として判定した。
【０１２３】
Ｐｒｏｂｅ発行の許可／禁止、Ｈｅｌｌｏメッセージに対する応答可／不可の判定を、ネットワーク接続環境のＤＣＨＰを利用する／しない、ローカルＩＰアドレス、サブネットマスク、ＤＮＳサーバやＤＨＣＰサーバのＩＰアドレス、更には、ネットワークコントローラの種類に基づいて判定するようにしても構わない。
【０１２４】
＜その他の実施形態＞
上述した各実施形態においては、ネットワークデバイスの検索、およびネットワークデバイスがネットワークに参加したことの通知を、ＷＳ−Ｄｉｓｃｏｖｅｒｙで定義されるプロトコルを採用しているが、この限りではなく例えばＵＰｎＰ v１で規定されるＳＳＤＰ(Simple Service Discovery Protocol)、ＧＥＮＡ(General Event Notification Architecture)などを利用することでも実現可能である。また、ネットワークデバイスの検索プロトコルとして、ネットワークデバイスの属性情報を取得するためのアドレス、およびネットワークデバイスを制御するための制御情報送信先が取得することが可能であるプロトコルであれば、いずれのプロトコルであっても適用可能である。従って、本発明は上記実施形態によって限定されるものではない。
【０１２５】
また上述した実施形態においては、通信媒体としてEthernet(登録商標）, Wi-Fi(ワイヤレス通信IEEE802.1 a/b/g)、およびBluetoothを利用する例を説明したが、デバイスの発見、およびデバイスが機能実行を開始したことを通知することが可能な通信媒体であれば、ローカルI/O、ネットワークのいずれの場合も適用可能である。
【０１２６】
また上述した実施形態においては、プラグアンドプレイの一例として、発見したネットワークデバイスに対応したドライバのインストールを採用しているが、ネットワークデバイスを利用、制御するために必要なユーティリティ、アプリケーションなどをクライアントデバイス１００に自動的にインストールする場合においても適用可能である。
【０１２７】
また、上述した実施形態においてネットワーク対応デバイスとしてプリンタを例に挙げたが、これはあくまで例示であり、通信媒体を介して利用、制御可能なデバイスであれば、スキャナ、ストレージデバイス等、いずれのデバイスに対しても適用可能である。
【０１２８】
また、上述した実施形態においては、クライアント端末１００がネットワークデバイスを制御するためのドライバをメモリ上に保持する形態を示したが、ドライバに限らずアプリケーション、ユーティリティソフトウエアに対しても適用可能であり、また、これらソフトウエアはネットワークデバイス上に保持されている場合、あるいは第３のサーバー上に保持されている場合にも適用可能である。
【０１２９】
また、上述した実施形態においては、ネットワーク環境を識別するための情報として、DHCP Enabled、IP Address、Subnet Mask、Default Gateway、DNS Server、DHCP Server
を利用した実施形態を示したが、一義的にネットワーク環境を識別することが可能であれば良いので他の情報でも構わない。
【０１３０】
また、上述した実施形態におけるクライアント端末１００及びネットワーク対応デバイス２００における各処理機能は、各処理機能を実現する為のプログラムをメモリから読み出してＣＰＵ（中央演算装置）が実行することによりその機能を実現させるものであるが、これに限定さるものではなく、各処理機能の全部または一部の機能を専用のハードウェアにより実現してもよい。また、上述したメモリは、光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ−ＲＯＭ等の読み出しのみが可能な記録媒体、ＲＡＭ以外の揮発性のメモリ、あるいはこれらの組合せによるコンピュータ読み取り、書き込み可能な記録媒体より構成されてもよい。
【０１３１】
また、上記実施形態で説明したように、本発明の主要な特徴はクライアント端末１００におけるアプリケーションプログラムにある。通常、アプリケーションプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に記憶されている。そして、そのコンピュータ可読記憶媒体をコンピュータが読み込み可能な読取装置（例えばＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで、実行可能になる。従って、このようなコンピュータ可読記憶媒体も、当然に本発明の範疇になるのは明らかである。
【図面の簡単な説明】
【０１３２】
【図１】実施形態におけるネットワークプラグアンドプレイシステムの概略構成を示すブロック図である。
【図２】実施形態におけるプラグアンドプレイモード情報の取得、および設定手順を示すフローチャートである。
【図３】実施形態におけるプラグアンドプレイ設定データのフォーマットを示す図である。
【図４】実施形態におけるプラグアンドプレイモード設定情報示すポップアップメニューの一例を示す図である。
【図５】実施形態におけるプラグアンドプレイモード設定用ポップアップメニューの一例を示す図である。
【図６】実施形態におけるプラグアンドプレイモード設定に従い、ネットワークデバイスの検索とＨｅｌｌｏメッセージ応答に対する処理内容を示すフローチャートである。
【図７】実施形態におけるクライアント端末とネットワークデバイスとの間でのプラグアンドプレイ処理の流れを示すフローチャートである。
【図８】ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様で定義されるＨｅｌｌｏメッセージフォーマットを示す図である。
【図９】ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様で定義されるＧｅｔＭｅｔａｄａｔａメッセージのフォーマットを示す図である。
【図１０】ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ仕様で定義されるＧｅｔＭｅｔａｄａｔａＲｅｓｐｏｎｓｅメッセージのフォーマットを示す図である。
【図１１】実施形態におけるクライアント端末とネットワークデバイスとの間でのプラグアンドプレイ処理の流れを示すフローチャートである。
【図１２】ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様で定義されるＰｒｏｂｅメッセージのフォーマットを示す図である。
【図１３】ＷＳ−Ｄｉｓｃｏｖｅｒｙ仕様で定義されるＰｒｏｂｅＭａｔｃｈメッセージフォーマットを示す図である。
【図１４】第２の実施形態におけるネットワークコントローラの種類毎のネットワークプラグアンドプレイモードを設定する手順を示すフローチャートである。
【図１５】第２の実施形態におけるプラグアンドプレイモード設定ユーティリティのユーザインターフェイスを示す図である。
【図１６】第２の実施形態におけるプラグアンドプレイ設定データのフォーマット示す図である。
【図１７】第２の実施形態におけるプラグアンドプレイモード情報の取得、および設定手順を示すフローチャートである。
【図１８】第１の実施形態におけるネットワーク環境の比較処理手順を示すフローチャートである。
【図１９】ＵＰｎＰネットワークデバイスの発見からそのデバイスドライバのインストールされるまでの一般的なシーケンスを示す図である。
【図２０】第１の実施形態におけるプラグアンドプレイ設定データのテーブル形式で保持する場合のデータフォーマットを示す図である。
【図１】
0004667175.tif 000002
【図２】
0004667175.tif 000003
【図３】
0004667175.tif 000004
【図４】
0004667175.tif 000005
【図５】
0004667175.tif 000006
【図６】
0004667175.tif 000007
【図７】
0004667175.tif 000008
【図８】
0004667175.tif 000009
【図９】
0004667175.tif 000010
【図１０】
0004667175.tif 000011
【図１１】
0004667175.tif 000012
【図１２】
0004667175.tif 000013
【図１３】
0004667175.tif 000014
【図１４】
0004667175.tif 000015
【図１５】
0004667175.tif 000016
【図１６】
0004667175.tif 000017
【図１７】
0004667175.tif 000018
【図１８】
0004667175.tif 000019
【図１９】
0004667175.tif 000020
【図２０】
0004667175.tif 000021