(57)【要約】【課題】  ネットワーク装置を構成および管理するシステムおよび方法を提供すること。【解決手段】  ネットワーク上のデバイスの出現（およびネットワークからの離脱）をモニタによって検出することができる。検出されると、例えば自動的にデバイスドライバをロードし、デバイス用のリソースを割り振ることにより、エンドユーザの介在をほとんどあるいは全く受けずにネットワーク装置を単純かつ動的に構成することができる。さらに、パーソナルコンピュータなどの他のネットワーク装置にネットワーク装置を関連付けて、コンピュータのオペレーティングシステムへのネットワーク装置のシームレスな組み込みを容易にすることができる。【選択図】  図１
2005135414.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク装置を利用することを求めるアプリケーションコンポーネントと、
前記アプリケーションコンポーネントとともに動作するように前記ネットワーク装置を自動的に構成する構成システムと
を備えることを特徴とするネットワークデバイス対話システム。
【請求項２】
前記ネットワーク装置の構成は、前記装置に関連付けられたドライバをロードすることを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記システムの構成はさらに、１つまたは複数のレジストリキーを設定することを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記デバイスドライバは、ローカルデータストアからロードされることを特徴とする請求項２に記載のシステム。
【請求項５】
前記デバイスドライバは、インターネットを介してダウンロードされることを特徴とする請求項２に記載のシステム。
【請求項６】
前記デバイスドライバは、前記ネットワーク装置から受け取られることを特徴とする請求項２に記載のシステム。
【請求項７】
前記デバイスドライバは、コンピュータ読み取り可能な媒体から取り出されることを特徴とする請求項２に記載のシステム。
【請求項８】
前記デバイスドライバは、ローカルエリアネットワークを介してコンピュータから取り出されることを特徴とする請求項２に記載のシステム。
【請求項９】
前記ネットワーク装置の構成はさらに、デバイスのファームウェアを、前記デバイスドライバとともにパッケージされた新しいファームウェアバージョンに更新することを含むことを特徴とする請求項２に記載のシステム。
【請求項１０】
前記ネットワーク装置の構成はさらに、最も新しい、または現在のデバイスドライバパッケージのコピーを前記ネットワーク装置に書き込むことを含むことを特徴とする請求項２に記載のシステム。
【請求項１１】
ネットワーク装置の出現を求めてローカルエリアネットワークを監視するモニタコンポーネントと、
前記モニタコンポーネントによって検出されたネットワーク装置を、コンピュータシステムと連動して動作するように自動的に構成する構成コンポーネントと
を備えることを特徴とするネットワーク装置構成システム。
【請求項１２】
前記ネットワーク装置は、ワイヤレス装置であることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記ネットワークは、電力線ネットワークであることを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記モニタコンポーネントは、ＳＳＤＰを利用してネットワーク装置の出現を検出することを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記モニタコンポーネントは、ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルを利用してネットワーク装置の出現を検出することを特徴とする請求項１１に記載のシステム。
【請求項１６】
少なくとも１つの他のアクティブなネットワークコンポーネントへのネットワークコンポーネントの関連付けを指定する関連付けコンポーネントと、
構成される前記デバイスに関する情報を提供する物理デバイスオブジェクト（ＰＤＯ）コンポーネントを生成する列挙コンポーネントと、
前記ＰＤＯコンポーネントを利用して、関連付けられたネットワークコンポーネントにデバイスの機能を公開する機能デバイスオブジェクト（ＦＤＯ）コンポーネントを生成するＰｎＰシステムと
を備えることを特徴とする動的ネットワークデバイス構成システム。
【請求項１７】
前記ＰｎＰシステムは、ＰＤＯコンポーネントを受け取り前記ＦＤＯコンポーネントを生成するドライバコンポーネントを見つけるドライバインストール管理コンポーネントを備えることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記インストール管理コンポーネントは、前記ＰＤＯコンポーネントから前記ネットワーク装置に関する情報を抽出し、そのデータを情報コンポーネントに対応付けて、前記デバイスに関連付けられたドライバコンポーネントを判定することを特徴とする請求項１６に記載のシステム。
【請求項１９】
前記ドライバコンポーネントは、データストアから取り出され、ロードされることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記関連付けコンポーネントは、ネットワーク装置へのアクセスが、関連付けられたネットワーク装置に限定されることを保証する認証コンポーネントを含むことを特徴とする請求項１６に記載のシステム。
【請求項２１】
ネットワーク装置と対話する方法であって、
ローカルネットワーク上の装置の出現を検出するステップと、
検出されると前記装置を自動的に構成するステップと
を備えることを特徴とする方法。
【請求項２２】
ＳＳＤＰを利用してネットワーク装置の出現を検出することを特徴とする請求項２１に記載の方法。
【請求項２３】
ＷＳ−Ｄｉｓｃｏｖｅｒｙプロトコルを利用してネットワーク装置の出現を検出することを特徴とする請求項２１に記載の方法。
【請求項２４】
前記装置を構成するステップは、前記装置に関連付けられたドライバをロードするステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２５】
前記装置を構成するステップは、装置を少なくとも１つの他のネットワーク装置に関連付けるステップを備えることを特徴とする請求項１８に記載の方法。
【請求項２６】
請求項２４に記載の方法を実施するコンピュータ実行可能命令が格納されたことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２７】
ネットワーク装置を構成する方法であって、
ネットワーク装置を、少なくとも１つの他のインストールされたネットワーク装置に関連付けるステップと、
前記ネットワーク装置に関連付けられたドライバコンポーネントを見つけるステップと、
前記ドライバコンポーネントを取り出すステップと、
前記ドライバコンポーネントをロードして、前記ネットワーク装置のインストールを容易にするステップと
を備えることを特徴とする方法。
【請求項２８】
前記少なくとも１つの他のネットワーク装置はパーソナルコンピュータであることを特徴とする請求項２７に記載の方法。
【請求項２９】
ドライバコンポーネントを見つけるステップは、前記コンピュータのローカルデータストアを検索するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
ドライバコンポーネントを見つけるステップは、リモートサーバを検索するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３１】
リモートサーバを検索するステップは、インターネットを介して行われることを特徴とする請求項３０に記載の方法。
【請求項３２】
前記ドライバコンポーネントは、前記ネットワーク装置から取り出されることを特徴とする請求項２７に記載の方法。
【請求項３３】
前記ドライバコンポーネントは、前記関連付けられたネットワーク装置から取り出されることを特徴とする請求項２７に記載の方法。
【請求項３４】
請求項２７に記載の方法を実施するコンピュータ実行可能命令が格納されたことを特徴とするコンピュータ読み取り可能な媒体。
【請求項３５】
ネットワーク装置の動的な構成の手順であって、
ネットワークへのネットワーク装置の出現を検出するステップと、
前記装置を表す物理デバイスオブジェクトコンポーネントを作成するステップと、
前記装置に関連付けられたドライバコンポーネントを見つけるステップと、
前記ドライバコンポーネントを利用して、前記装置の機能をアプリケーションに公開する機能デバイスオブジェクトを生成するステップと
を備えることを特徴とする手順。
【請求項３６】
前記ネットワーク装置を１つまたは複数のアクティブなネットワーク装置に関連付けるステップをさらに含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記１つまたは複数のネットワーク装置の１つはパーソナルコンピュータであることを特徴とする請求項３６に記載の方法。
【請求項３８】
前記ネットワーク装置と前記他の１つまたは複数のネットワーク装置との間にセキュアな通信チャネルを確立するステップをさらに含むことを特徴とする請求項３６に記載の方法。
【請求項３９】
前記物理デバイスオブジェクトコンポーネントは、ネットワーク装置に関する識別および状態の情報を提供することを特徴とする請求項３５に記載の方法。
【請求項４０】
請求項３５に記載の方法を実施するコンピュータ実行可能命令が格納されたことを特徴とするコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはコンピュータに関し、特にネットワーク装置の制御と管理に関する。
【背景技術】
【０００２】
プラグアンドプレイ（ＰｎＰ）技術は、ローカルに接続されたデバイスが自動的に検出され、コンピュータ上で動作するように構成されることを可能にする。ＰｎＰ機能はコンピュータのオペレーティングシステムに組み込まれて、コンピュータが、新たに接続された周辺機器を検出するとともに、そのデバイスをインストールして、コンピュータシステムに登録できるようにする。ＰｎＰ技術以前は、ユーザが、例えば通信チャネルと割り込み要求値（ＩＲＱ）を指定することにより、手動で周辺機器を設定することが必要であった。ＰｎＰは、コンピュータがシステムブート時に新たに接続されたデバイスを検出することを可能にし、そのデバイスを識別して自動的にリソースを割り当て、そのコンピュータシステムとともに機能するようにデバイスを構成する。さらに、ＰｎＰでは、オペレーティングシステムが、システムブート後にホットバス（例えばユニバーサルシリアルバス（ＵＳＢ）、ＰＣＭＣＩＡバスなど）に追加された、またはホットバスから切断された周辺機器を検出することができる。ローカルバスまたはホットバスに接続されたデバイスは、一度セットアップされると、そのコンピュータシステムですぐに利用できるようにすることができる。オペレーティングシステムは、特定のデバイスに関する特定の情報およびドライバを含むことができる。そのような場合、オペレーティングシステムは、デバイスがシステムに出現すると単純かつ自動的にデバイスをセットアップすることができる。他の例では、デバイスのセットアップを容易にするために、ＣＤ−ＲＯＭやインターネットなどの代替ソースからドライバおよび情報を取り出さなければならないかもしれない。一度デバイスがセットアップされると、その設定をレジストリに保存することができ、デバイスが取り外され後で再接続された場合に、オペレーティングシステムとデバイス間で対話ができるように、システムがそのデバイス設定を取り出し、適切なドライバをロードすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
有線および無線両方のネットワーク装置が普及しつつある。従来、ネットワーク装置の管理と制御には複数の異なるネットワーキング技術が用いられていた。例えば、ネットワークプリンタは、通例、イーサネット（登録商標）を通じたネットワーク印刷プロトコルを利用して実装される。別の例は、電力線ネットワークを使用してデバイス（例えば照明のスイッチやビデオカメラなど）を遠隔制御するために利用されるＸ１０ネットワークプロトコルである。これらの技術は、遠隔からデバイスにアクセスし制御することを可能にするが、多くの消費者は、ネットワーク装置の利点を活用していない。消費者がネットワーク装置を活用していない理由の１つとして、ユーザが、家庭ネットワーク（例えばオートメーション、ネットワークコンピューティング、あるいはネットワークプリンティング用の）の設定が単に煩雑過ぎると感じていることが考えられる。
【０００４】
したがって、ネットワーク装置を接続し制御するための単純で効率的なシステムおよび方法が求められる。そのようなシステムおよび方法は、ネットワーク装置が、ＰｎＰを利用して、ローカルに接続されたデバイスと同程度に、発見し、関連付け、使用するのが容易であることを保証するのに好都合であろう。
【課題を解決するための手段】
【０００５】
以下に、本発明のいくつかの態様についての基本的な理解を提供するために、本発明の簡略化した要約を述べる。この要約は、本発明の広範な概要ではない。本発明の主要／重要な要素を示すことや、本発明の範囲を詳細に述べることを意図するものではない。その唯一の目的は、後で述べるより詳細な説明への前置きとして、簡略化した形で本発明のいくつかの概念を提示することである。
【０００６】
ネットワークデバイス構成システムおよび方法が開示される。このネットワーク装置構成システムは、動的かつ自動的にネットワーク装置をインストールまたは構成し、それによりエンドユーザの負担を軽減するか、または完全に取り除く。本発明の一態様によれば、ネットワーク装置の出現および離脱を検出するモニタコンポーネントが提供される。そのような機能を容易にするために、モニタコンポーネントは、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｐｒｏｔｏｃｏｌ）やＷＳ−Ｄｉｓｃｏｖｅｒｙ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ）プロトコルなどの複数の発見プロトコルを利用して、存在するネットワーク装置を能動的に探すか、または新たに出現するネットワーク装置がないかネットワークを監視することができる。
【０００７】
本発明の別の態様によれば、ネットワーク装置を、パーソナルコンピュータ（例えば、デスクトップ、ラップトップ、携帯情報端末（ＰＤＡ））などの１つまたは複数の他のネットワーク装置に関連付けることができる。したがって、本発明は、一態様によれば、周辺機器を遠隔からパーソナルコンピュータ（ＰＣ）に接続することを可能にするコンポーネントの集合とみなすことができる。したがって、このシステムは、ＩＯをトンネリングするためにコンピュータのローカルエリアネットワーク接続（有線または無線）を利用することができる。さらに、本発明の別の態様によれば、ここに開示されるシステムは、ＰＣ周辺機器の範囲を非従来のデバイス（例えば家庭電化製品、家庭内のオートメーションなど）に拡張するように構成することができる。したがって、パーソナルコンピュータは、非従来型のデバイスを含む多数のネットワーク装置を管理および制御するように働くことができる。
【０００８】
本発明の別の態様によれば、直接接続される周辺機器のために確立された、オペレーティングシステムの既存のプラグアンドプレイ（ｐｌｕｇ  ａｎｄ  ｐｌａｙ）システムを活用して、ユーザとの対話をほとんどあるいは全く行わずに、ネットワーク装置の単純で堅牢な構成を可能にすることができる。そのために、本発明の一態様によれば、ユニバーサルプラグアンドプレイ（ＵＰｎＰ（商標））準拠デバイスを、オペレーティングシステムのプラグアンドプレイサブシステムに組み込めるようにする。ＵＰｎＰ（商標）は、単に、ネットワーク装置間で情報を転送する方式を定義するワイヤプロトコル（ｗｉｒｅ  ｐｒｏｔｏｃｏｌ）またはアーキテクチャである。
【０００９】
デバイスの発見と関連付けに加えて、本発明のいくつかの態様は、チャネルのセキュリティ、認証、デバイス制御、ストリーミングあるいは等時性の（ｉｓｏｃｈｒｏｎｏｕｓ）振る舞いもサポートする。
【００１０】
本発明のさらに別の態様によれば、堅牢なネットワーク装置の管理と構成を助けるグラフィカルユーザインタフェースが提供される。このインタフェースは、ローカルネットワーク装置を関連付け、検索し、編成するためのグラフィカル機構を提供する。
【００１１】
上述の目的およびそれに関連する目的を達成するために、以下の説明および添付図面との関連で本発明の特定の例示的態様をここに説明する。これらの態様は、本発明を実施することが可能な各種方式を示し、それら方式はすべて本発明によって包含されるものとする。本発明のその他の利点および新規の特性は、図面と併せて以下の本発明の詳細な説明を検討することから明らかになろう。
【００１２】
本発明の前述および他の態様は、以下の詳細な説明と、下記で簡単に説明する添付図面とから明らかになろう。
【発明を実施するための最良の形態】
【００１３】
次いで、添付図面を参照して本発明を説明する。図面では同様の要素は同様の参照符号で示す。ただし、図面とその詳細な説明は、本発明をここに開示される特定の形態に限定することを意図するものではないことを理解されたい。本発明は、本発明の要旨および範囲内のすべての変形形態、均等物、および代替形態を包含する。
【００１４】
本願で使用する用語「コンポーネント」および「システム」は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータに関連するエンティティを指すものとする。例えば、コンポーネントは、これらに限定しないが、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および／またはコンピュータ等である。例示として、サーバで実行されるアプリケーションと、サーバの両方がコンポーネントとなることができる。１つまたは複数のコンポーネントがプロセスおよび／または実行のスレッド中に存在することができ、コンポーネントは、１つのコンピュータに局所化することができ、かつ／または２つ以上のコンピュータに分散することができる。
【００１５】
さらに、本発明は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを作成するための標準的なプログラミング技術および／またはエンジニアリング技術を使用して、方法、装置、または製造物として実施することができる。ここで使用する用語「製造物」（あるいは「コンピュータプログラム製品」）とは、どのコンピュータ読み取り可能なデバイス、キャリア、あるいは媒体からでもアクセス可能なコンピュータプログラムを包含するものとする。無論、当業者は、本発明の範囲または要旨から逸脱せずにこの構成に多くの変更を加えることができることを理解されよう。
【００１６】
図１に戻り、本発明の一態様によるネットワーク装置対話システム１００を説明する。システム１００は、アプリケーションコンポーネント１１０、デバイス構成システム１２０、およびネットワーク装置１３０を備える。アプリケーションコンポーネント１１０は、システムソフトウェアとアプリケーションソフトウェアの両方（例えばオペレーティングシステム、ワードプロセッシングアプリケーション）を含む任意のソフトウェアプログラムでよい。有用なアプリケーションコンポーネント１１０は、しばしば周辺ネットワーク装置を利用する。例えば、ワードプロセッシングプログラムは、ネットワークプリンタを利用して文書および／または報告書を印刷することができる。ただし、ネットワーク装置１３０は、ネットワークに接続することが可能な任意の物理的エンティティに対応できることに留意されたい。したがって、典型的なネットワーク装置には、プリンタ、スキャナ、コピー機、携帯情報端末（ＰＤＡ）、およびあらゆる種類のコンピュータ（例えば、デスクトップ、ラップトップ、ポケットＰＣ）などの物が含まれる。それでも、ネットワーク装置には、これらに限定しないが、時計、皿洗い機、冷蔵庫、電子写真フレーム、洗濯機、乾燥機、照明のスイッチ、サーモスタット、テレビ、セットトップボックス、ＤＶＤプレーヤ、およびゲーム機またはコンソール（ＸＢｏｘなど）などの他の種類の家庭電化製品も含めることができる。アプリケーションコンポーネント１１０は、ネットワーク装置にＩ／Ｏ制御コマンドを提供することを試みることができる。例えば、ユーザが午後５：３０に仕事から帰宅した時に、台所の照明をつけ、サーモスタットを華氏７０度に設定し、テレビの電源を入れ、特定のチャンネルに合わせる。アプリケーションコンポーネント１１０とネットワーク装置１３０間の通信を可能にするために、ネットワーク装置は、アプリケーションコンポーネントとともに機能するように構成しなければならない。
【００１７】
デバイス構成システム１２０は、アプリケーションコンポーネント１３０とともに動作するようにネットワーク装置１１０を構成する。本発明の一態様によれば、構成システム１２０は、デバイスドライバをロードすることができる。ドライバは、関連付けられたデバイスとの通信を容易にするソフトウェアコンポーネントである。ネットワーク装置は、独自の特化された命令（ｉｎｓｔｒｕｃｔｉｏｎｓ）またはコマンドセットを有し、一方、アプリケーションプログラムは、デバイスとは異なるコマンドを用いて同じ機能を指定する。したがって、デバイスドライバコンポーネントは、アプリケーションコマンドを特定のデバイス命令に対応付けること（ｍａｐｐｉｎｇ）により、トランスレータとして機能する。デバイスドライバ（本明細書ではデバイスドライバパッケージとも称する）は、コンピュータのローカルデータストアからロードすることができ、インターネットからダウンロードすることができ、コンピュータ読み取り可能な媒体（ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスクなど）から取り出すことができ、またはネットワーク装置から取り出すことができる。構成システム１２０は、コンピュータシステム中でレジストリキーなどを設定することもできる。レジストリは、単に、アプリケーションについての構成情報を保持するキー（ファイル）を含んだデータベースでよい。例えば、キーは、特に、ユーザ設定、ファイルの関連付け、オブジェクトリンク、および他の物との間のアプリケーションの設定に関連付けることができる。構成システム１２０は、ネットワーク装置１１０に自動的かつ動的にリソースを割り振ることもでき、例えば、中央演算処理装置（ＣＰＵ）にサービスを要求するための割り込み要求ライン（ＩＲＱ）を選択および設定すること、通信チャネルおよびダイナミックメモリアクセス（ＤＭＡ）チャネルを選択および設定すること、ならびにデバイスが使用するためにメモリの一部を割り当てることができる。さらに、構成システム１２０は、デバイスファームウェアを、デバイスドライバと併せてパッケージされた新しいファームウェアバージョンに更新するなどのタスクも実行できることを理解されたい。ネットワーク装置がインストールされ、（例えばドライバをそのデバイスにコピーすることにより）構成されると、関連付けられたアプリケーションコンポーネントは、そのデバイスを利用することができる。最初の構成後に、ネットワーク装置設定（ＩＲＱ、ＤＭＡチャネル、割り振られたメモリなど）を例えばレジストリあるいは他の場所に保存することができる。デバイスがネットワークを離脱し、後に再接続した場合は、保存された情報を構成システム１２０によって見つけ、取り出し、利用して、デバイスが例えばコンピュータシステムの特定のアプリケーションコンポーネント１３０とともに動作することを迅速かつ自動的に再度可能にすることができる。
【００１８】
次いで図２に、本発明の一態様によるネットワーク装置構成システム２００を開示する。構成システム２００は、モニタコンポーネント２１０、ネットワーク２２０、ネットワーク装置２２２（デバイス１〜デバイスＮ。Ｎは１以上の整数）、および構成コンポーネント２３０を備える。モニタコンポーネント２１０は、ネットワーク装置２２２の出現および／または離脱を検出する。出現するとネットワーク装置２２２が検出され、構成コンポーネント２３０は、コンピュータシステムで動作するようにデバイス２２２を自動的に構成する。例えば、構成コンポーネント２３０は、デバイスドライバあるいはデバイスパッケージをロードし、通信チャネルを割り当て、レジストリキーを保存し、デバイス２２２に使用するメモリを割り振ることができる。離脱時には、構成コンポーネント２３０は、他のデバイス２２２が使用するために記憶領域と通信チャネルを解放することができる。その後、ネットワーク装置が再度接続されると、構成コンポーネント２３０は、適正に動作するようにデバイスを自動的かつ迅速に構成することができる。それにより、システム２１０は、コンピュータシステムへのネットワーク装置２２２のシームレスな組み込みを助ける。この組み込みを通じて、ユーザは、より容易に、例えば自分のパーソナルコンピュータからネットワーク装置２２２を構成し、管理し、アクセスすることができる。したがって、エンドユーザは、ネットワーク装置を購入し、構成をほとんどあるいは全く行わずにそのデバイスを家庭ネットワークあるいは企業ネットワークに接続することができる。ネットワーク装置は、ネットワークに接続されると、単純に機能する。
【００１９】
モニタコンポーネント２１０は、ネットワーク２２０に照会してネットワーク２２０に接続されたネットワーク装置２２２を分析する。ネットワーク２２０は、有線および／または無線のローカルエリアネットワーク（ＬＡＮ）とすることができる。ＬＡＮとは、多くの場合、数例を挙げるとオフィスビル、家庭、倉庫、およびキャンパスで使用される、地理的な規模がそれほど大きくないネットワークである。ネットワーク装置２２２は、ネットワークに接続することが可能な任意の電子デバイスなど（例えば目覚まし時計、電話機、カメラ、テレビ、冷蔵庫、洗濯機、乾燥機、ＤＶＤプレーヤ、デジタルオーディオレシーバ（ＤＡＲ）、携帯情報端末（ＰＤＡ）、コンピュータ（デスクトップ、ラップトップ、パームトップ）、ページャ、携帯電話、プリンタ、スキャナ、コピー機、セットトップボックス、ゲーム機、電子写真など）である。ネットワーク装置２２２は、配線を介して（例えばより対線、光ファイバー、同軸ケーブル、電力線など）、かつ／または、ワイヤレスに（例えばＩＥＥＥ８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、赤外線、無線、Ｂｌｕｅｔｏｏｔｈ、衛星など）ネットワーク２２０と通信することができる。モニタコンポーネント２１０は、１つまたは複数の発見プロトコルまたはプラグインを利用または照会することにより、ネットワーク装置２２２の出現および／または離脱を検出することができる。例えば、モニタコンポーネントは、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を用いてＵＰｎＰデバイスを検出し、ＷＳ−Ｄｉｓｃｏｖｅｒｙ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ）プロトコルを用いてＷＳ  Ｄｉｓｃｏｖｅｒｙ／ＷＳ−Ｄｅｓｃｒｉｐｔｉｏｎデバイスを識別することができる。発見プロトコルは、能動方式、受動方式、またはそれらの組み合わせで使用できることを理解されたい。能動方式で使用される場合、発見プロトコルは、ネットワーク２２０に接続された既存のデバイスを探索する。受動的な監視システムでは、発見プロトコルは、新しく出現したデバイスがネットワーク２２０におけるその存在を通知するのを単にリッスン（ｌｉｓｔｅｎ）することができる。さらに、これらおよび他のプロトコルは、ネットワーク装置の存在を指示するだけでなく、デバイスを構成する際に利用することができるデバイスについてのメタデータを（例えばＳＳＤＰ、ＨＴＴＰ、およびＸＭＬ解析（ｐａｒｓｉｎｇ）を利用して）収集することもできる。
【００２０】
構成コンポーネント２３０は、モニタコンポーネント２１０から、接続されたネットワーク装置２２２に関する通知およびメタデータを受け取る。ネットワーク装置のメタデータには、これらに限定しないが、ハードウェアＩＤ、互換性ＩＤ、インスタンスＩＤ、フレンドリー名、トランスポートアドレス、認証パラメータ、および親インスタンスＩＤなどの情報が含まれる。ハードウェアＩＤおよび互換性ＩＤは、構成コンポーネント２３０が使用し、デバイスのインストールのために使用すべきファイルを識別することができる。インスタンスＩＤは、ネットワーク装置を一意に識別する。フレンドリー名（例えば主寝室のテレビ）は、デバイスとのユーザ対話で使用することができる。トランスポートアドレスは、ドライバおよびミドルウェアが利用し、デバイスとコンタクトすることができる。認証パラメータは、どの認証を行わなければならないかを判定するために使用することができる（下記の項でより詳細に述べる）。最近追加されたネットワーク装置の通知を受け、関連付けられたメタデータを受け取ると、構成コンポーネントは、自動的にそのネットワーク装置をインストールし、構成することができる。構成コンポーネントは、ハードウェアＩＤや互換性ＩＤなどのメタデータ情報を使用してコンピュータシステム上のデバイスファイルを見つけ、これらに限定しないがコピーすべきドライバファイルやレジストリキーを含む構成情報を取り出すことができる。コンピュータシステムが適切なドライバファイルを有する場合は、そのファイルが自動的にロードされる。コンピュータシステム（例えばハードドライブ）でファイルを見つけることができない場合は、（接続されている場合には）インターネットからドライバファイルをダウンロードするか、または、必要なファイルを含むコンピュータ読み取り可能媒体（例えばコンパクトディスク（ＣＤ）やフロッピー（登録商標）ディスク）を挿入するようにユーザに要求することができる。続いて、ドライバファイルがロードされ、デバイスプロパティおよび設定が構成される（例えばシステムリソース、ＩＲＱ、通信ポートの割り当て、…）。
【００２１】
図３に、本発明の一態様による構成コンポーネント２３０を示す。構成コンポーネント２３０は、関連付けコンポーネント３１０、列挙コンポーネント３２０、ＰｎＰシステム３３０、ならびにＰＤＯコンポーネント３２２およびＦＤＯコンポーネント３３２を含む。関連付けコンポーネント３１０は、デバイスとコンピュータの間に関係（マスタースレーブ関係など）を確立する。この関係は、当然ながら、物理的接続に基づいてローカルデバイスに対して確立されるが、これは、接続（ａｔｔａｃｈ）されたネットワーク装置には適用することができない。さらに、関連付けコンポーネント３１０は、デバイスへの不正アクセスを防止することができる認証コンポーネント３１２を含むことができる。認証コンポーネント３１２は、関連付けられたデバイスだけがネットワーク装置へのアクセス権を持つことを保証するセキュリティ機構を提供する。例えば、デバイスを関連付けるために、ユーザは、暗証番号（ＰＩＮ）を入力しなければならないか、何らかの他の機構を通じて信用（ｔｒｕｓｔ）を確立しなければならない。証明書など認証コンポーネント３１２によって提供される追加的なセキュリティ機構については、下記の項で説明する。関連付けが成功すると、デバイスはその後ユーザ識別を行わずに自身を認証することができる。列挙コンポーネント３２０は、デバイスが発見され、関連付けられた後、物理デバイスオブジェクト（ＰＤＯ）コンポーネント３２２を生成する。ＰＤＯコンポーネント３２２は、各種のドライバおよびソフトウェアコンポーネントに対してデバイスを表す。ＰＤＯコンポーネント３２２は、特にデバイスの状態（例えばオン、オフ、待機状態（ｓｕｓｐｅｎｄｅｄ））に関する情報をソフトウェアコンポーネントに供給することができる。したがって、ＰＤＯコンポーネント３２２は、デバイスのハードウェアＩ／Ｏを各種の他のソフトウェアコンポーネント（例えばオペレーティングシステム）から抽出（ａｂｓｔｒａｃｔ）し、デバイスとの対話を容易にする。列挙コンポーネント３２０は、生成されたＰＤＯコンポーネント３２２をプラグアンドプレイ（ＰｎＰ）システム３３０に渡す。ＰｎＰシステム３３０は、ハードウェアデバイス、デバイスドライバ、およびコンピュータオペレーティングシステムソフトウェア間の対話を調整する。ＰＤＯコンポーネント３２２を受け取ると、ＰｎＰシステム３３０は、特定のネットワーク装置に関する、ＰＤＯに記憶された情報を取り出し、その固有の情報を使用して、ＰＤＯコンポーネント３２２に関連付けられたデバイスドライバを見つけることができる。ドライバが見つけられると、そのドライバがロードまたは実行され、ネットワーク装置の機能を管理するために利用できる機能デバイスオブジェクトコンポーネント３３２が生成される。したがって、アプリケーションは、機能デバイスオブジェクトコンポーネントと対話してデバイス動作を指定することができる。
【００２２】
図４に、本発明の一態様によるネットワーク装置ドライバを見つけるシステム４００を示す。システム４００は、ドライバインストール管理コンポーネント４１０、デバイスＰＤＯコンポーネント４２０、情報コンポーネント４３０、ドライバストア４４０、および見つけられたドライバコンポーネント４５０を含む。ドライバコンポーネント４５０は、それに関連付けられたネットワーク装置の適正なインストールと構成に関連する情報を保持する。ドライバコンポーネント４５０は、ダイナミックリンクライブラリ（ＤＬＬ）、インストーラ、コインストーラ（ｃｏ−ｉｎｓｔａｌｌｅｒｓ）、アプリケーション、または他の種類のファイルを含むことができる。ドライバインストール管理コンポーネント４１０は、特定のデバイスに関連付けられたドライバコンポーネント４５０を取り出す。ドライバインストール管理コンポーネント４１０は、デバイスＰＤＯコンポーネント４２０を受け取るか、または取り出す。デバイスＰＤＯコンポーネント４２０は、上述のように、ネットワーク上のデバイスの出現が検出された時に生成することができる。ＰＤＯコンポーネント４２０は、ネットワークバス上のデバイスを表す。ＰＤＯコンポーネントは、ハードウェアＩＤおよび／または互換性ＩＤなどデバイスに関する一意の情報を含むことができる。ＰＤＯコンポーネント４２０を受け取ると、インストール管理コンポーネント４１０は、ＰＤＯコンポーネント４２０から、ハードウェアＩＤなどの一意のデバイス情報を取り出すことができる。次いで、ドライバインストール管理コンポーネント４１０は、その一意の情報と情報コンポーネント４３０を利用して、デバイスに適する構成を判定することができる。情報コンポーネント４３０（ＩＮＦファイルやデータベースなど）は、デバイス構成情報のリポジトリ（ｒｅｐｏｓｉｔｏｒｙ）として機能することができる。構成情報は、これらに限定しないがドライバコンポーネントおよびレジストリキーを含むことができる。そのような構成情報は、情報の迅速な発見を容易にする方式で配置することができる。例えば、構成をハードウェアＩＤに関連付けて記憶することができる。したがって、インストール管理コンポーネント４１０は、取り出したハードウェアＩＤを利用するか、または情報コンポーネント４３０に供給し、デバイスに対して適切な構成情報を取り出すことができる。例えば、インストール管理コンポーネントに、適切なドライバコンポーネントの識別を通知することができる。その後、インストール管理コンポーネントは、ドライバストア４４０からドライバを取り出すことができる。ドライバストア４４０は、コンピュータからローカルにまたは遠隔に配置することができる。事例によっては、コンピュータはそのようなドライバをローカルに記憶することができるが、あらゆる可能なネットワーク装置のためのすべてのドライバが例えばオペレーティングシステムの製造者によってローカルに記憶されることは保証することができない。したがって、ドライバストアは、例えば中央サーバや、デバイス製造者に関連付けられたサーバ上に遠隔に置くことができる。ドライバインストール管理コンポーネント４１０は、遠隔にあるサーバから、ドライバコンポーネントおよび他のインストール情報または構成情報（例えばパッチ、レジストリキー）を取り出すように動作する。さらに、本発明の一態様によれば、インストール管理コンポーネント４１０は、ローカルのネットワーク装置上のドライバストアを見つけることができる。例えば、ネットワーク上の別のコンピュータが、必要なドライバコンポーネントを有し、一方、インストールされるデバイスに関連付けられたコンピュータはそのドライバコンポーネントを持たない場合がある。そのような状況では、管理コンポーネント４１０は、そのドライバコンポーネントをそのもう一方のコンピュータから受け取る、あるいは取り出すことができる。また、インストールまたは構成されるデバイスが必要なドライバをローカルに記憶することができ、ドライバインストール管理コンポーネントがそのデバイスからドライバコンポーネントを取り出せることに留意されたい。さらに、ドライバストア４４０は、適切なドライバコンポーネント４５０を収容したコンピュータ読み取り可能な媒体（例えばＣＤ、ＤＶＤ、フロッピー（登録商標）ディスク、メモリカードなど）であってもよいことも理解されたい。
【００２３】
図５に、本発明の一態様によりネットワーク装置を動的に構成するシステム５００を示す。システム５００は、モニタコンポーネント２１０、ネットワーク機能デバイスオブジェクト（ネットワークＦＤＯ）コンポーネント５１０、バス列挙コンポーネント３２０、ネットワークデバイス物理デバイスオブジェクト（デバイスＰＤＯ）５２０、デバイスドライバコンポーネント４５０、およびネットワークデバイス機能デバイスオブジェクト（デバイスＦＤＯ）コンポーネント５３０を備える。モニタコンポーネント２１０は、ネットワークを精査して、新たに追加された、または離脱しようとしているネットワーク装置を判定する。このような機能を容易にするために、ネットワークＦＤＯコンポーネント５１０を提供することができる。ネットワークＦＤＯコンポーネント５１０は、モニタコンポーネント２１０にネットワーク機能を公開することができる。例えば、ネットワークＦＤＯコンポーネント５１０は、発見プロトコルがネットワークノードをスキャンすることを可能にすることができる。新しいネットワーク装置を発見すると、バス列挙コンポーネント３２０を用いてデバイスＰＤＯコンポーネント５３０を生成することができる。デバイスＰＤＯコンポーネント５３０は、ネットワーク装置およびデバイス状態を記述する情報を備えることができる。次いで、デバイスインストール管理コンポーネント４１０（図４）は、デバイスＰＤＯコンポーネント５３０を利用して、ネットワーク装置およびしたがってそのデバイスＰＤＯコンポーネント５３０に関連付けられたデバイスドライバコンポーネント４５０を見つけ、取り出すことができる。デバイスドライバコンポーネント４５０は、そのネットワーク装置に関連付けられたデバイスＦＤＯコンポーネントを生成することができる。デバイスＦＤＯコンポーネント５３０は、そのネットワーク装置を制御することを要求した１つまたは複数のアプリケーションまたはアプリケーションプログラミングインタフェース（ＡＰＩ）に、ネットワーク装置の機能を公開することができる。例えばネットワーク装置が目覚まし時計である場合は、デバイスＦＤＯコンポーネント５３０は、時刻を設定し、アラームを設定するサービスを公開することができる。したがって、停電の発生が検出された後にデバイスＦＤＯコンポーネント５３０を利用して目覚まし時計の時刻を自動的に現在の時刻に再設定するアプリケーションを開発することができる。
【００２４】
次いで図６に、本発明の一態様によりネットワーク装置を関連付けるシステム６００を示す。システム６００は、モニタコンポーネント２１０、関連付けインタフェースコンポーネント６１０、および関連付けコンポーネント３１０を含む。ユニバーサルシリアルバス（ＵＳＢ）または何らかの他のバス（ＰＣＩ、ＰＭＣＩＡなど）を介してローカルに接続されたデバイスは、本来コンピュータに関連付けられる。したがって、プリンタがＵＳＢケーブルで直接コンピュータに接続される場合、そのプリンタはそのコンピュータに関連付けられる。これと同じことは、ネットワーク装置には当てはまらない。したがって、ネットワーク装置がネットワークに接続される場合、コンピュータなど関連付けられたネットワーク装置を選択する機会をユーザに与えることができる。ネットワークへの新しいネットワーク装置の出現を（例えばネットワーク発見プロトコルを利用して）検出すると、モニタコンポーネント２１０は、関連付けインタフェースコンポーネント６１０を用いて、新しく出現したデバイスを関連付ける別のネットワーク装置を決定することができる。関連付けインタフェースコンポーネント６１０を利用して、ネットワークに対して帯域外の認証データを収集することもできる。例えばプリンタを関連付けるために、ユーザは、そのような関連付けは４桁の数を入力することによって行うべきことを確認する必要がある場合がある。これは、共有キーを使用する一例である。ただし、セキュアな認証されたチャネルを確立するために使用することができるより堅牢な秘密を、後に行われるブートストラッププロセスで交換することもできる。例えば、デバイス証明書などの証明書に基づくクリデンシャル（例えば委託された証明機関（ＣＡ）、製造者、ネットワーク管理者、自己署名証明書など）、またはコンピュータ証明書（委託されたＣＡ、ネットワーク管理者、自己署名証明書など）を用いることもできる。さらに、セキュリティが実際問題となる場合には、暗号化を介してセキュアチャンネルまたは仮想ケーブルを確立することができる。関連付けインタフェースコンポーネント６１０は、デバイスとコンピュータの間でネゴシエートされた認証方式に依存することができる。ただし、本発明の一態様による関連付けインタフェースコンポーネント６１０は、あらゆる認証方式およびプロトコルにわたって可能な限り画一になるように設計することができる。本発明の一態様によれば、関連付けインタフェースコンポーネントは、当技術分野で知られるグラフィカルユーザインタフェースとすることができる。詳細には、グラフィカルユーザインタフェースは、特に、これに限定しないが、発見されたデバイスの関連付けを含むユーザ選択のためのグラフィカルオブジェクト（例えばボタン、メニュー、進行状況表示バーなど）を備えることができる。ただし、インタフェースは単にテキストベースまたはグラフィックとテキストの組み合わせとしてもよいことを理解されたい。関連付けインタフェースコンポーネント６１０は、関連付け情報を関連付けコンポーネントに提供して、記憶し、適切に実行することができる。さらに、最初の認証時にユーザがいくつかのステップを経ることができることを理解されたい。そのステップが成功すると、デバイスは、その後は追加的なユーザの介在なしに自身を認証することができる。そのデバイスは信頼できると考えることができ、個々のクリデンシャル（ｃｒｅｄｅｎｔｉａｌｓ）を、例えば関連付けられたコンピュータとデバイスに記憶することができる。したがって、モニタコンポーネント２１０が、例えばそれ自体の内部データベースあるいは関連付けコンポーネント３１０のデータベースを調べることにより、そのデバイスがこれまでに見られたことがないと判定した場合は、関連付けインタフェースコンポーネント６１０を用いて１つまたは複数の関連付けを設定することができる。しかし、デバイスが「信頼できる」とマークされる場合（すなわち以前に認証が成功している場合）は、以前に少なくともそのデバイスの認証と権限付与が成功しているので、ユーザ対話は必要とされない。このような状況は、ネットワーク装置がインストールおよび構成され、ネットワークから取り外され、そして後に再度接続された場合に生じる可能性がある。一方、デバイスが信頼できない、あるいは認証またはインストールが失敗したとマークされていることが判明した場合は、そのデバイスは「無視された」とマークすることができ、関連付けの提案は破棄される。
【００２５】
さらに、例えば２つ以上のコンピュータがネットワーク装置（プリンタ、カメラなど）を共有することにより、デバイス共有を可能できることを理解されたい。本発明のシステムは、デバイスの関連付けを要求に応じて変更できるように構成することもできる（例えば多機能プリンタやカメラの場合）。さらには、このシステムは、デバイスの集約を行うように構成することができる。例えば、複数のデバイスを集約して、よりリッチなエンドユーザエクスペリエンス（ｅｎｄ−ｕｓｅｒ  ｅｘｐｅｒｉｅｎｃｅｓ）を作り出すことができる。したがって、複数のウェブカメラを集約して１つのより大きなバーチャルウェブカメラとすることができる（すなわち小さな個々のウェブカメラ画像から１つの大きな画像が形成される）。
【００２６】
図７に、本発明の一態様による例示的なグラフィカルユーザインタフェース７００を示す。ネットワーク装置がコンピュータに関連付けられている場合、オペレーティングシステムは、利用可能なネットワーク装置（オンライン状態のデバイス）をユーザに表示することができる。インタフェース７００は、ネットワーク装置をユーザに対して表示できる１方式の例示である。ローカルに取り外しできる記憶装置７２０およびハードディスク７３０などの他の情報と併せて、ウィンドウ枠内の関連付けられたネットワーク装置のヘッダの下にネットワーク装置７１０を表示することができる。表示アイコンは、この例示的システムでは、ネットワーク装置にプリンタ、パームパイロット、およびラップトップ機が含まれることを表している。ネットワーク装置は個々に表示しても、論理的にグループ（プリンタグループ、カメラグループなど）に分けてもよいことが理解されよう。さらに、ポインティングデバイス（マウス、タッチパッド、トラックボール、タッチ画面、スタイラスなど）を使用してデバイスアイコンを選択することができる。選択されると、これらに限定しないが名前、タイプ、機種、場所、およびステータスを含むデバイスプロパティを表示することができる。表示アイコンは、ネットワーク装置のプロキシとして機能することができ、したがって例えばデバイスアイコンを削除または除去することによりデバイスの関連付けを操作することができる。さらに、グラフィカルユーザインタフェース７００は、ゴースト表示（ｇｈｏｓｔｉｎｇ）およびゴースト表示解除をサポートできることを理解されたい。例えばユーザが自分のラップトップ機を自宅からオフィスに持っていくと、そのデバイスは、もはやローカルの家庭ネットワークからは利用することができなくなる。その結果、ユーザインタフェース７００は、家庭ネットワーク内でそのネットワーク装置を表示することができるが、そのデバイスにはゴースト表示された視覚的外観を与えることができる。ユーザがラップトップ機を家庭ネットワーク内に持ち帰ると、アイコンのゴースト表示を解除して、ラップトップ機が利用できることをネットワークに通知することができる。さらに、インタフェース７００は、ネットワーク装置の探索を容易にする機構（図示せず）を提供することができる。例えばユーザが新しいＢｌｕｅｔｏｏｔｈ携帯電話を購入し、その電話を自分のパーソナルコンピュータと対にする、または関連付けしたいとする。ユーザがユーザインタフェースにアクセスしてもデバイスは表示されない。ユーザは検索機構またはタスクを利用して電話機を見つける。そして、システムは、インタフェースに利用可能なデバイスを取り込み始めることができ、フィルタを適用して携帯電話だけが表示されるようにすることができる。その後、ユーザは、検索結果に携帯電話を見つけ、例えば、その電話を自分のデフォルトデバイスに加えることができる。
【００２７】
グラフィカルユーザインタフェースの説明を助けるためにインタフェース７００について述べた。当業者には、グラフィカルインタフェースの設計には各種の方式があることに留意され理解されたい。例えば、カルーセル構成でネットワーク装置を表示することができ、その場合ネットワーク装置は選択されると回転または旋回した後表示される。したがって、ここに開示されるインタフェースは例示的なものであり、決して本発明の範囲に対する制限を意味するものではない。
【００２８】
上記で説明した例示的システムに照らして、図８〜１０のフローチャートを参照すると、本発明により実施することが可能な手順がよりよく理解されよう。説明を簡潔にするためにこの手順は一連のブロックとして図示し、説明するが、本発明はブロックの順序によって制限されず、本発明によれば、一部のブロックは、ここに図示し、説明するものとは異なる順序で、かつ／または他のブロックと同時に行うことができることを理解および認識されたい。さらに、本発明によりこの手順を実施するために、図示するすべてのブロックが必要であるとは限らない。
【００２９】
また、この明細書に開示される手順は、そのような手順をコンピュータに移送および転送することを容易にするために製造物に記憶することができることをさらに理解されたい。本明細書で使用する用語、製造物は、任意のコンピュータ読み取り可能なデバイス、キャリア（ｃａｒｒｉｅｒ）、または媒体からでもアクセス可能なコンピュータプログラムを包含するものとする。
【００３０】
図８に、本発明の一態様によるネットワーク装置と対話する手順８００を示す。８１０で、ネットワーク装置の出現が検出される。ネットワーク装置は、配線（より対線、光ファイバー、同軸ケーブル、電力線など）を介して物理的にネットワークに接続された時、または無線ネットワーク（ＩＥＥＥ８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、赤外線、無線、Ｂｌｕｅｔｏｏｔｈ、衛星など）の地理的距離内に入った時にネットワーク中に出現する。ネットワーク装置の検出は、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｐｒｏｔｏｃｏｌ）やＷＳ−Ｄｉｓｃｏｖｅｒｙ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ）プロトコルなどの発見プロトコルを利用して達成することができる。さらに、検出は能動的でも受動的でもよい。例えば、能動的なシナリオでは、ネットワークを通じて信号をブロードキャストしてネットワーク装置からの応答を要求することができる。受動的な状況では、発見プロトコルは、単にネットワークをリッスンし、デバイスによる出現の通知を待つことができる。８３０で、ネットワーク装置を自動的に構成することができる。一般に、構成は、デバイスを１つまたは複数のネットワーク装置に関連付け、その特定のネットワーク装置に関連付けられたドライバコンポーネントをロードすることを含むことができる。本発明の一態様によると、デバイスをパーソナルコンピュータに関連付けることができ、パーソナルコンピュータが、そのデバイスの機能をコンピュータユーザに公開するドライバコンポーネントを自動的かつ動的にロードする。例えば新しいネットワークプリンタがローカルネットワークに接続される場合、プリンタの出現は、多数の発見プロトコルの１つによって検出することができる。その後、プリンタは、例えばコンピュータに関連付けることができる。次いで、コンピュータは、ローカルストアからドライバをロードするか、リモートストア（例えばウェブサーバ）からドライバを取り出し、ロードすることができる。その結果、コンピュータは、ユーザによる介在をほとんどまたは全く受けずにプリンタを利用することができる。
【００３１】
図９に、本発明の一態様による、ネットワーク装置を構成する手順９００を示す。９１０で、ネットワーク装置を１つまたは複数の他のネットワーク装置に関連付ける。本発明の一態様によれば、ネットワーク装置はパーソナルコンピュータに関連付けられる。９２０で、そのネットワーク装置に関連付けられたドライバコンポーネントが見つけられる。ドライバコンポーネントは、そのコンポーネントに関連付けられたネットワーク装置の適切なインストールと構成に関連する情報を含む。ドライバコンポーネントは、ダイナミックリンクライブラリ（ＤＬＬ）、インストーラ、コインストーラ、アプリケーション、または他の種類のファイルを含むことができる。ドライバは、パーソナルコンピュータのローカルストアなど関連付けられたネットワーク装置とともに、または、リモートサーバ（例えば製造者のウェブサーバ、中央のドライバサーバ）、構成されるデバイスに関連付けられたローカルストア、または他のネットワーク装置に置くことができる。９３０でドライバコンポーネントを取り出す。例えば、リモートサーバからドライバコンポーネントをダウンロードする、あるいはネットワーク装置から取り出すことができる。９４０で、ドライバコンポーネントをロードまたはインストールしてネットワーク装置を構成し、デバイスの機能を関連付けられたネットワーク装置に公開する。
【００３２】
次いで図１０に、本発明の一態様による、ネットワーク装置を構成し、インストールする手順１０００を説明するフローチャートを示す。１０１０で、ネットワーク装置の出現が検出される。上述したように、ＳＳＤＰやＷＳ  Ｄｉｓｃｏｖｅｒｙなどのいくつかの発見プロトコルの１つを利用して、ネットワークを精査してデバイスの出現を判定することができる。さらに、検出は能動的であっても受動的であってもよい。１０２０で、デバイスを１つまたは複数の他のアクティブなネットワーク装置（パーソナルコンピュータなど）に関連付ける。１０３０で、物理デバイスオブジェクトコンポーネントが生成される。物理デバイスオブジェクトコンポーネントは、ドライバおよび他のソフトウェアに対してネットワーク装置を表す。物理デバイスオブジェクトコンポーネントは、これらに限定しないがベンダ名、デバイスのフレンドリー名、およびデバイスＩＤを含む情報を提供する。提供される情報は、関連付けられたドライバコンポーネントを見つけるのに十分である。１０４０で、物理デバイスオブジェクトコンポーネントから提供された情報に少なくとも部分的に基づいて、ネットワーク装置に関連付けられたドライバコンポーネントを見つける。１０５０で、ドライバコンポーネントを利用して、デバイスの機能をアプリケーションおよび／またはアプリケーションプログラミングインタフェース（ＡＰＩ）に公開する機能デバイスオブジェクトコンポーネントを生成する。最後に１０６０で、ネットワーク装置と、関連付けられたネットワーク装置（パーソナルコンピュータなど）との間に、セキュアな通信チャネルが確立される。例えば、各種の暗号化技術を使用して通信の安全性を保証することができる。
【００３３】
本発明の各種態様についてのコンテキストを提供するために、図１１および１２ならびに以下の説明では、本発明の各種態様を実施することが可能な適切なコンピューティング環境についての簡単で概略的な説明を提供する。上記では１つまたは複数のコンピュータで実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストで本発明を説明したが、当業者は、本発明は他のプログラムモジュールと組み合わせて実施することも可能であることを認識されよう。一般に、プログラムモジュールには、特定のタスクを行うか、および／または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などが含まれる。さらに、当業者は、本発明の方法は、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピューティング装置、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルド型コンピューティング装置、マイクロプロセッサを利用した、またはプログラム可能な家庭電化製品などの他のコンピュータシステム構成とともに実施できることを理解されよう。ここに例示する本発明の態様は、通信ネットワークを通じてリンクされた遠隔の処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。ただし、本発明のすべてではなくとも一部の態様は、スタンドアロンコンピュータで実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
【００３４】
図１１を参照すると、本発明の各種態様を実施する例示的環境１１１０は、コンピュータ１１１２を含む。コンピュータ１１１２は、処理装置１１１４、システムメモリ１１１６、およびシステムバス１１１８を含む。システムバス１１１８は、これに限定しないがシステムメモリ１１１６を含むシステムコンポーネントを処理装置１１１４に結合する。処理装置１１１４は、各種の利用可能なプロセッサのいずれでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも処理装置１１１４として用いることができる。
【００３５】
システムバス１１１８は、これに限定しないが１１ビットバス、ＩＳＡ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＭＳＡ（Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＥＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＬＢ（ＶＥＳＡ  Ｌｏｃａｌ  Ｂｕｓ）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ  ｂｕｓ）、およびＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）を含む各種の利用可能なバスアーキテクチャを使用した、メモリバスまたはメモリコントローラ、ペリフェラルバスあるいは外部バス、および／またはローカルバスを含む数種のバス構造のいずれでもよい。
【００３６】
システムメモリ１１１６は、揮発性メモリ１１２０および不揮発性メモリ１１２２を含む。起動時などにコンピュータ１１１２内の構成要素間で情報を転送する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が不揮発性メモリ１１２２に格納される。制限ではなく例示として、不揮発性メモリ１１２２には、読み取り専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリを含めることができる。揮発性メモリ１１２０は、外部キャッシュメモリとして機能するランダムアクセスメモリ（ＲＡＭ）を含む。制限ではなく例示として、ＲＡＭは、ＳＲＡＭ(シンクロナスＲＡＭ)、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ダブルデータレートＳＤＲＡＭ）、ＥＳＤＲＡＭ（エンハンストＳＤＲＡＭ）、ＳＬＤＲＡＭ（Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ）、およびＤＲＲＡＭ（ｄｉｒｅｃｔ  Ｒａｍｂｕｓ（登録商標）  ＲＡＭ）などの多数の形態のものを利用することができる。
【００３７】
コンピュータ１１１２は、取り外し可能／固定のコンピュータ記憶媒体、揮発性／不揮発性のコンピュータ記憶媒体も含む。図１１には例えばディスクストレージ１１２４を示す。ディスクストレージ１１２４には、これらに限定しないが、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚ（登録商標）ドライブ、Ｚｉｐ（登録商標）ドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスが含まれる。また、ディスクストレージ１１２４は、記憶媒体を単独で、またはこれらに限定しないがコンパクトディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ書き換え可能ドライブ（ＣＤ−ＲＷドライブ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブを含む他の記憶媒体と組み合わせた記憶媒体を含むことができる。ディスク記憶装置１１２４をシステムバス１１１８に接続するのを助けるために、通常インタフェース１１２６などの取り外し可能または固定のインタフェースが用いられる。
【００３８】
図１１には、ユーザと、適切な動作環境１１１０に示した基本的なコンピュータリソースとの間の仲介として機能するソフトウェアを図示していることを理解されたい。そのようなソフトウェアにはオペレーティングシステム１１２８が含まれる。オペレーティングシステム１１２８は、ディスクストレージ１１２４に格納することができ、コンピュータシステム１１１２のリソースを制御および割り振るように機能する。システムアプリケーション１１３０は、プログラムモジュール１１３２、および、システムメモリ１１１６またはディスクストレージ１１２４に記憶されたプログラムデータ１１３４を通じたオペレーティングシステム１１２８によるリソースの管理を利用する。本発明は、各種のオペレーティングシステムまたはオペレーティングシステムの組み合わせを用いて実施できることを理解されたい。
【００３９】
ユーザは、入力装置１１３６を通じてコンピュータ１１１２にコマンドまたは情報を入力する。入力装置１１３６には、これらに限定しないが、マウス、トラックボール、スタイラス、タッチパッドなどのポインティングデバイス、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれる。これらおよびその他の入力装置は、インタフェースポート１１３８を介してシステムバス１１１８を通じて処理装置１１１４に接続する。インタフェースポート１１３８には、例えばシリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス（ＵＳＢ）が含まれる。出力装置１１４０は、入力装置１１３６と同じ種類のポートのいくつかを使用する。したがって、例えば、ＵＳＢポートを使用してコンピュータ１１１２に入力を提供し、コンピュータ１１１２から出力装置１１４０に情報を出力することができる。出力アダプタ１１４２は、モニタ、スピーカ、プリンタなど、他の出力装置１１４０の中には特殊なアダプタを必要とするものがあることを示すために図示している。出力アダプタ１１４２には、制限ではなく例示として、出力装置１１４０とシステムバス１１１８間の接続手段を提供するビデオカードおよびサウンドカードが含まれる。リモートコンピュータ１１４４など他のデバイスおよび／またはデバイスシステムが、入力および出力の両機能を提供することに留意されたい。
【００４０】
コンピュータ１１１２は、リモートコンピュータ１１４４などの１つまたは複数のコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１１４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサを使用した電気器具、ピアデバイス（ｐｅｅｒ  ｄｅｖｉｃｅ）、または他の一般的なネットワークノードなどであり、通常は、コンピュータ１１１２に関連して説明した構成要素の多くまたはすべてを含む。簡単のため、リモートコンピュータ１１４４とともにメモリ記憶装置１１４６のみ図示している。リモートコンピュータ１１４４は、ネットワークインタフェース１１４８を通じて論理的にコンピュータ１１１２に接続され、次いで通信接続１１５０を介して物理的に接続される。ネットワークインタフェース１１４８は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などの通信ネットワークを包含する。ＬＡＮ技術には、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、ＣＤＤＩ（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、イーサネット（登録商標）／ＩＥＥＥ８０２．３、トークンリング／ＩＥＥＥ８０２．５などがある。ＷＡＮ技術には、これらに限定しないが、２地点間（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ）リンク、ＩＳＤＮ（総合デジタル通信網）およびその変形のような回路交換ネットワーク（ｃｉｒｃｕｉｔ  ｓｗｉｔｃｈｉｎｇ  ｎｅｔｗｏｒｋｓ）、パケット交換ネットワーク、およびデジタル加入者回線（ＤＳＬ）が含まれる。
【００４１】
通信接続１１５０は、ネットワークインタフェース１１４８をバス１１１８に接続するために使用されるハードウェア／ソフトウェアを指す。図を分かりやすくするためにコンピュータ１１１２の内部に通信接続１１５０を図示するが、通信接続１１５０はコンピュータ１１２０の外部にあってもよい。ネットワークインタフェース１１４８に接続するために必要なハードウェア／ソフトウェアには、単なる例示として、標準的な電話グレードモデム、ケーブルモデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネット（登録商標）カードなどの内部技術および外部技術が含まれる。
【００４２】
図１２は、本発明が対話することが可能な例示的コンピューティング環境１２００の模式的ブロック図である。システム１２００は、１つまたは複数のクライアント１２１０を含む。クライアント１２１０は、ハードウェアおよび／またはソフトウェア（スレッド、プロセス、コンピューティング装置など）である。システム１２００は、１つまたは複数のサーバ１２３０も含む。サーバ１２３０もハードウェアおよび／またはソフトウェア（スレッド、プロセス、コンピューティングデバイスなど）である。サーバ１２３０は、例えば本発明を用いることにより変換を行うスレッドを収容することができる。クライアント１２１０とサーバ１２３０間で可能な通信の１つは、２つ以上のコンピュータプロセス間で送信されるように適合されたデータパケットの形態である。システム１２００は、クライアント１２１０とサーバ１２３０間の通信を容易にするために用いることができる通信フレームワーク１２５０を含む。クライアント１２１０は、クライアント１２１０にとってローカルな情報を記憶するために用いることができる１つまたは複数のクライアントデータストア１２６０に動作的に（ｏｐｅｒａｂｌｙ）接続される。同様に、サーバ１２３０は、サーバ１２３０にとってローカルな情報を記憶するために用いることができる１つまたは複数のサーバデータストア１２４０に動作的に接続される。
【００４３】
上記の説明には本発明の複数の例が含まれる。言うまでもなく、本発明を説明する目的でコンポーネントおよび手順の着想しうるすべての組み合わせを述べることは不可能であり、当業者は、本発明の多くのさらなる組み合わせおよび置換が可能であることを認識できよう。したがって、本発明は、添付の特許請求の範囲の要旨および範囲に含まれるすべての改変形態、変更形態、および変形形態を包含するものとする。さらに、用語「〜を含む（ｉｎｃｌｕｄｅｓ）」が詳細な説明または特許請求の範囲で用いられる限りでは、この語は、特許請求の範囲で用語「〜を備える（ｃｏｍｐｒｉｓｉｎｇ）」が接続語として用いられる場合の意味と同様に包含的な意味とする。
【図面の簡単な説明】
【００４４】
【図１】本発明の一態様によるネットワークデバイス対話システムの模式ブロック図である。
【図２】本発明の一態様によるネットワークデバイス構成システムの模式ブロック図である。
【図３】本発明の一態様による構成コンポーネントの模式ブロック図である。
【図４】本発明の一態様によるデバイスドライバを見つけるシステムの模式ブロック図である。
【図５】本発明の一態様による動的にネットワーク装置を構成するシステムの模式ブロック図である。
【図６】本発明の一態様によるデバイスを関連付けるシステムの模式ブロック図である。
【図７】本発明の一態様による例示的グラフィカルユーザインタフェースの図である。
【図８】本発明の一態様によるネットワーク装置と対話する手順を説明するフローチャート図である。
【図９】本発明の一態様によるネットワーク装置を構成する手順を説明するフローチャート図である。
【図１０】本発明の一態様によるネットワーク装置を構成する手順を説明するフローチャート図である。
【図１１】本発明の一態様による適切な動作環境を示す模式ブロック図である。
【図１２】本発明が対話することが可能な例示的コンピューティング環境の模式ブロック図である。
【符号の説明】
【００４５】
１１０  ネットワーク装置
１２０  デバイス構成システム
１３０  アプリケーションコンポーネント
２１０  モニタコンポーネント
２２０  ネットワーク
２２２  装置１、装置２、装置Ｎ
２３０  構成コンポーネント
３１０  関連付けコンポーネント
３１２  認証コンポーネント
３２０  列挙コンポーネント（バス列挙コンポーネント）
３３０  ＰｎＰシステム
４１０  ドライバインストール管理コンポーネント
４２０  デバイスＰＤＯコンポーネント
４３０  情報コンポーネント
４４０  ドライバストア
４５０  ドライバコンポーネント（デバイスドライバコンポーネント）
５１０  ネットワークＦＤＯコンポーネント
５２０  デバイスＰＤＯコンポーネント
５３０  デバイスＦＤＯコンポーネント
６１０  関連付けインタフェースコンポーネント
１１１４  処理装置
１１１６  システムメモリ
１１２０  揮発性
１１２２  不揮発性
１１２４  ディスクストレージ
１１２６  インタフェース
１１２８  オペレーティングシステム
１１３０  アプリケーション
１１３２  モジュール
１１３４  データ
１１３６  入力装置
１１３８  インタフェースポート
１１４０  出力装置
１１４２  出力アダプタ
１１４４  リモートコンピュータ
１１４６  メモリストレージ
１１４８  ネットワークインタフェース
１２００  システム
１２１０  クライアント
１２３０  サーバ
１２４０  サーバデータストア
１２５０  通信フレームワーク
１２６０  クライアントデータストア
【図１】
2005135414.tif 000003
【図２】
2005135414.tif 000004
【図３】
2005135414.tif 000005
【図４】
2005135414.tif 000006
【図５】
2005135414.tif 000007
【図６】
2005135414.tif 000008
【図７】
2005135414.tif 000009
【図８】
2005135414.tif 000010
【図９】
2005135414.tif 000011
【図１０】
2005135414.tif 000012
【図１１】
2005135414.tif 000013
【図１２】
2005135414.tif 000014