(57)【要約】【課題】  ネットワークを介してコンピュータに接続されるハードウェアデバイスをサポートするためのコンピュータ実施方法およびシステムを提供すること。【解決手段】  ネットワーク上に接続された任意のハードウェアデバイスの存在が、この方法において検出される。次いで、その接続されたデバイスを記述している情報が、デバイスから、あるいはユーザから得られる。得られた情報に基づいて、その接続されたデバイスの論理表現が作成される。次いで、その検出されたデバイスのためのドライバが探し出され、インストールされる。この時点から先は、ネットワーク接続されたハードウェアデバイスは、コンピュータにローカル接続されたハードウェアデバイスと同じように見える。【選択図】  図３
2004355635.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続されたハードウェアデバイスをサポートするためのコンピュータ実施方法であって、ネットワーク上に接続されたハードウェアデバイスの存在を検出するステップと、前記接続されたデバイスを記述している情報を得るステップと、前記得られた情報に基づいて、前記接続されたデバイスの論理表現を作成するステップとを備えることを特徴とするコンピュータ実施方法。
【請求項２】
前記接続されたデバイスのためのドライバを探し出してインストールするステップをさらに備えることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項３】
前記検出するステップがサービスによって実行されることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項４】
前記検出するステップがオペレーティングシステムのユーザモードにおいて実行されることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項５】
前記論理表現はデバイスノードであることを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
前記検出するステップは、前記ネットワーク上に接続された自動発見可能デバイスのデバイス特有のアナウンスメントをリッスンするステップをさらに備えることを特徴とする請求項５に記載のコンピュータ実施方法。
【請求項７】
前記ハードウェアデバイスはデジタルイメージングデバイスであることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項８】
プロセッサ、メモリおよびオペレーティング環境を有するコンピュータシステムであって、請求項１に記載の方法を実行するように動作可能であることを特徴とするコンピュータシステム。
【請求項９】
請求項１に記載の方法を実行するための命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
ローカルのホストコンピュータによりネットワーク接続されたハードウェアデバイスの使用のためのコンピュータ実施方法であって、前記ネットワークへのハードウェアデバイスの接続をリッスンするステップと、前記接続されたデバイスを記述している情報を得るステップと、前記得られた情報に基づいて、前記接続されたデバイスの論理表現を作成するステップと、前記接続されたデバイスに関連付けられたドライバをインストールするステップとを備えることを特徴とするコンピュータ実施方法。
【請求項１１】
前記リッスンするステップがサービスによって実行されることを特徴とする請求項１０に記載のコンピュータ実施方法。
【請求項１２】
前記記述している情報がユーザから得られることを特徴とする請求項１１に記載のコンピュータ実施方法。
【請求項１３】
前記記述している情報が自動発見可能デバイスから得られることを特徴とする請求項１１に記載のコンピュータ実施方法。
【請求項１４】
前記ユーザに前記ネットワーク接続されたデバイスの使用可能性を通知するステップをさらに備えることを特徴とする請求項１１に記載のコンピュータ実施方法。
【請求項１５】
前記リッスンするステップがユーザモードにおいて実行されることを特徴とする請求項１０に記載のコンピュータ実施方法。
【請求項１６】
ネットワーク接続されたハードウェアデバイスを検出するためのコンピュータ実施サービスリスナーであって、前記ネットワーク上に存在するハードウェアデバイスを示すメッセージを受信するための命令を含む、少なくとも１つのリスニングモジュールコンポーネント、および、前記ネットワーク上に存在する前記ハードウェアデバイスのためのドライバを探し出してインストールするための命令を含む、インストールコンポーネントを備えることを特徴とするコンピュータ実施サービスリスナー。
【請求項１７】
前記リスニングモジュールコンポーネントは、前記ネットワーク上に存在するハードウェアデバイスの特定のクラスを示すメッセージを受信するための命令を含むことを特徴とする請求項１６に記載のコンピュータ実施サービスリスナー。
【請求項１８】
前記サービスリスナーがユーザモードにおいて実施されることを特徴とする請求項１７に記載のコンピュータ実施サービスリスナー。
【請求項１９】
前記リスニングモジュールコンポーネントは、それについてメッセージが受信されるいずれかのハードウェアデバイスの論理表現の作成をリクエストするための命令をさらに含むことを特徴とする請求項１８に記載のコンピュータ実施サービスリスナー。
【請求項２０】
前記インストールコンポーネントは、前記コンピュータ上で実行するアプリケーションに、前記ネットワーク接続されたハードウェアデバイスの前記存在を通知するための命令を含むことを特徴とする請求項１９に記載のコンピュータ実施サービスリスナー。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク対応デバイスをサポートするためのコンピュータシステムおよび方法に関する。
【背景技術】
【０００２】
長年の間に、コンピュータシステムはスタンドアロンデバイス（独立型装置）から、ネットワークを介して通信するデバイスへとますます発展してきた。このネットワーク環境は、ホームネットワーキングおよび他の小規模ネットワーク環境に道を開いてきた。これらのネットワークの利点の１つは、多数のコンピューティングステーションを有すると同時に、周辺デバイスに対して費やされる資金を最小限にできることである。これらの周辺デバイスにはしばしば、プリンタ、スキャナおよび／またはファクシミリ装置が含まれる。多機能デバイスであるいくつかの周辺デバイスが、現在入手可能である。これらの多機能デバイスはしばしば、プリンタ、スキャナおよびファクシミリ装置等を結合する。多機能デバイスは現在、ネットワーク環境でのそれらの使用を可能にするモデルに移行しつつある。これらのデバイスの製造者は、ネットワーク内のオペレーションにとってのますます増える利点を認識しつつあり、したがって、他のハードコネクタおよびバスプロトコルから離れつつある。加えて、技術はワイヤレス環境内のオペレーションに向かって移行し続けている。このワイヤレス環境では、周辺デバイスはホストコンピュータと、ハードまたはケーブル接続なしで通信する。このワイヤレス通信モデルでは、接続の最下位レベルがネットワーク化されるようになる。したがって、周辺デバイスをネットワーク環境内でサポートおよび管理する必要性が存在する。
【０００３】
現在のコンピューティングの世界では、いくつかの異なるバス構造がある。各異なるバス構造は異なるサポーティング（支援）ソフトウェアを必要とし、これはしばしばサポートスタックと呼ばれる。例えば、１３９４、８０２．１１およびＵＳＢなど、異なるバスが現在コンピュータにおいて使用されている。各異なるバスについて、ユーザインターフェース層、ドライバ層およびバスアダプタ層を有するサポートスタックが必要である。バスアダプタ層は、ソフトウェアの重要な部分である。バスに変更が加えられるたびに、また、新しいバスが追加されるたびにやり直さなければならないのは、この部分である。これらの変更、追加および改変は、安定するまでに数年かかる可能性がある。したがって、その上にバスアダプタが基礎を置くトランスポートレベルが汎用化されるシステムを開発する必要性が存在することがわかる。すべての周辺デバイスがネットワークを介して通信するシステムが開発される場合、ネットワークスタックを、周辺デバイスがローカルバス上に存在するときでさえ、導入することが可能となる。これは、周辺デバイスのすべてをサポートすることができ、ソフトウェアの保守および安定性におけるより低いコストにつながる、単一のスタックを可能にするようになる。
【０００４】
ネットワークモデルに向かって移行する必要性を認識して、イメージングデバイスなど、あるデバイスの製造者は、イーサネット（登録商標）ネットワーク接続を組み込むデバイスを製造し始めている。これは、ユーザが周辺デバイスをネットワークにプラグインすることを可能にする。これらのデバイスはまた、ネットワーク上のコンピュータが特定のデバイスと通信して、そのデバイスがスキャンなどのその機能を実行できるようにすることを可能にする、関連ソフトウェアも有する。しかし、これは非常にデバイス特有のソリューション（問題解決手法）である。このソリューションは、特定のソフトウェアが各デバイスについて開発されることを必要とする。また、書かれるソフトウェアは事実上、低レベルのバスエニュメレータ（bus enumerator）である。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、このソフトウェアはカーネルモードで書かれる。通常、ソフトウェアをカーネルモードで開発および変更することは、困難なタスクである。したがって、世界中で今日存在するデバイス特有のソリューションを汎用化する必要性がある。イメージングデバイス製造者など、すべてのデバイス製造者が、それらのデバイスと通信するために必要とされるドライバをインストールすることができた場合、また、そのようなインストールの後、そのデバイスがコンピュータにローカル接続されているかのように見え、機能することは、有益となるであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現在のオペレーティングシステムでは、この汎用化はサポートされておらず、存在しない。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムファミリでは、ネットワークを通じて接続されるイメージングデバイス(撮像装置)は、オペレーティングシステムに実際のデバイスとして見えない。したがって、スキャナがコンピュータへ、ネットワークを通じて接続された場合、スキャナはデバイスマネージャにおいてハードウェアの１つとして見えない。したがって、ネットワークデバイスを、ローカル接続されたデバイスでできるように、管理およびコントロールすることはできない。このように、デバイスのためのドライバを適切に管理することができず、更新されたドライバは見つからず、インストールされないなどとなる。したがって、ネットワーク接続された周辺イメージングデバイスをサポートする、コンピュータシステムおよび方法の必要性が存在することがわかる。この必要性は世界的規模で、デバイス特有のソリューションのために必要とされるリソースなしに、対処されるべきである。
【０００６】
本発明は、ネットワーク接続された周辺デバイスをサポートする方法およびコンピュータシステムを対象とする。
【課題を解決するための手段】
【０００７】
より具体的には、本発明は、ネットワークを介してコンピュータに接続されるハードウェアデバイスをサポートするためのコンピュータ実施方法およびシステムを提供する。ネットワーク上に接続された任意のハードウェアデバイスの存在が、この方法において検出される。次いで、接続されたデバイスを記述している情報が、デバイスから、あるいはユーザから得られる。得られた情報に基づいて、接続されたデバイスの論理表現（logical representation）が作成される。次いで、検出されたデバイスのためのドライバが探し出され、インストールされる。この時点から先は、ネットワーク接続されたハードウェアデバイスはコンピュータに、ローカル接続されたハードウェアデバイスと同じように見える。
【０００８】
加えて、コンピュータ実施サービスリスナー(待ち受け)コンポーネントが提供される。サービスリスナーは部分的には、その上にコンピュータも接続されるネットワークに接続されるハードウェアデバイスを検出するように機能する。サービスリスナーはリスニングモジュールコンポーネントを含み、これは、ハードウェアデバイスがネットワークに接続されることを示すメッセージを受信するための命令を含む。サービスリスナーはまたインストールコンポーネントも含み、これは、ネットワークに接続されるハードウェアデバイスのためのドライバを探し出してインストールするための命令を含む。
【０００９】
本発明の追加の利点および新規な特徴を以下の説明において示し、これは部分的には以下の考察において当業者には明らかとなり、あるいは本発明の実施から知ることができる。
【００１０】
本発明を詳細に、以下で添付の図面を参照して説明する。
【発明を実施するための最良の形態】
【００１１】
本発明は、ネットワーク接続された周辺デバイスをサポートすることにおいて使用するための方法およびコンピュータシステムを提供する。この方法では、コンピュータユーザはイメージングデバイスをネットワークに接続する。この方法は、デバイスが自動発見可能であるかどうかを、ネットワーク上の発見可能デバイスを探索するためのユーザにより開始されたアクションによって、あるいは自動デバイス通知などを通じて、判断する。デバイスが自動発見可能である場合、新しいイメージングデバイスがネットワーク上で検出される。デバイスが発見された後、デバイスの論理表現が作成され、発見されたデバイスのためのドライバがインストールされる。ドライバがインストールされた後、新しいデバイスが到着したというメッセージが、コンピュータ上で実行するすべてのアプリケーションにブロードキャストされる。メッセージが受信されると、サービスアプリケーションはそのデバイスのための適切なドライバを発見し、そのドライバをロードする。その後、ロードされたドライバはこのデバイスとの通信を容易にし、このデバイスはオペレーティングシステムに、他のいかなるローカル接続された周辺デバイスとも同じように見えるようになる。このデバイスが自動発見可能でない場合、ユーザはデバイス情報を入力して、そのデバイスのためのコンピュータシステムのサポートを可能にすることができる。
【００１２】
本発明の概観を簡単に説明したが、本発明のための典型的なオペレーティング環境を以下で説明する。
【００１３】
典型的なオペレーティング環境
図１は、本発明を実施することができる、適切なコンピューティングシステム環境１００の一例を例示する。コンピューティングシステム環境１００は適切なコンピューティング環境の一例でしかなく、本発明の使用または機能性の範囲についてのいかなる限定をも示唆するように意図されない。コンピューティング環境１００は、典型的なオペレーティング環境１００において例示したコンポーネントのいずれか１つまたは組合せに関係するいかなる依存性も要件も有するものとして解釈されるべきではない。
【００１４】
本発明を一般に、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実施する。また、本発明を他のコンピュータシステム構成により実施することができ、これには、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルなコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどが含まれることは、当業者には理解されよう。本発明をまた分散コンピューティング環境において実施することもでき、ここでは、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実行される。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含む、ローカルおよびリモートのコンピュータストレージメディアに位置することができる。
【００１５】
図１を参照すると、本発明を実施および使用するための典型的なシステム１００は、コンピュータ１１０の形態における汎用コンピューティングデバイスを含み、これは、処理装置１２０、システムメモリ１３０、および、システムメモリを含む様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１を含む。
【００１６】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。例として、限定ではなく、コンピュータ可読媒体は、コンピュータストレージメディアおよび通信メディアを含むことができる。システムメモリ１３０は、揮発性および／または不揮発性メモリの形態におけるコンピュータストレージメディアを含み、これは読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などである。基本入出力システム１３３（ＢＩＯＳ）は、起動中など、コンピュータ１１０内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は通常、処理装置１２０によって即時アクセス可能および／または現在動作中であるデータおよび／またはプログラムモジュールを含む。例として、限定ではなく、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７を例示する。
【００１７】
コンピュータ１１０はまた、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージメディアも含むことができる。例としてのみ、図１は、非リムーバブル、不揮発性の磁気メディアに対する読み書きを行うハードディスクドライブ１４１、リムーバブル、不揮発性磁気ディスク１５２に対する読み書きを行う磁気ディスクドライブ１５１、および、ＣＤ  ＲＯＭまたは他の光メディアなど、リムーバブル、不揮発性の光ディスク１５６に対する読み書きを行う光ディスクドライブ１５５を例示する。典型的なオペレーティング環境で使用することができる他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージメディアには、それだけに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は通常システムバス１２１に、インターフェース１４０などの非リムーバブルメモリインターフェースを通じて接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常システムバス１２１に、インターフェース１５０などのリムーバブルメモリインターフェースによって接続される。
【００１８】
上述し、図１に例示したドライブおよびそれらの関連付けられたコンピュータストレージメディアは、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータのストレージを提供する。図１では、例えば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６およびプログラムデータ１４７を格納するものとして例示される。これらのコンポーネントを、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７と同じものにも異なるものにもすることができることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６およびプログラムデータ１４７にはここで異なる番号が与えられて、少なくとも、それらが異なるコピーであることが例示される。ユーザはコマンドおよび情報をコンピュータ１１０へ、キーボード１６２、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを通じて、入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスがしばしば処理装置１２０へ、システムバスに結合されるユーザ入力インターフェース１６０を通じて接続されるが、これを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続することができる。モニタ１９１または他のタイプの表示デバイスもまたシステムバス１２１へ、ビデオインターフェース１９０などのインターフェースを介して接続される。モニタに加えて、コンピュータはまた、スピーカ１９７およびプリンタ１９６など、出力周辺インターフェース１９５を通じて接続することができる他の周辺出力デバイスを含むこともできる。
【００１９】
本発明のコンピュータ１１０はネットワーク環境において、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作するようになる。リモートコンピュータ１８０は、パーソナルコンピュータにすることができ、通常は、コンピュータ１１０に関連して上述した要素の多数またはすべてを含むが、メモリストレージデバイス１８１のみを図１に例示した。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークも含むことができる。
【００２０】
ＬＡＮネットワーキング環境において使用するとき、コンピュータ１１０がＬＡＮ１７１へ、ネットワークインターフェースまたはアダプタ１７０を通じて接続される。ＷＡＮネットワーキング環境において使用するとき、コンピュータ１１０は通常、モデム１７２、またはインターネットなどのＷＡＮ１７３を介して通信を確立するための他の手段を含む。モデム１７２を内部または外部にすることができ、システムバス１２１へ、ユーザ入力インターフェース１６０または他の適切なメカニズムを介して接続することができる。ネットワーク環境では、コンピュータ１１０に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。例として、限定ではなく、図１はリモートアプリケーションプログラム１８５をメモリデバイス１８１上に存在するものとして例示する。図示のネットワーク接続は典型的であり、複数のコンピュータの間で通信リンクを確立する他の手段を使用できることは理解されよう。
【００２１】
コンピュータ１１０の多数の他の内部コンポーネントを図示しないが、このようなコンポーネントおよび相互接続は周知であることは、当業者には理解されよう。したがって、コンピュータ１１０の内部構成に関する追加の詳細を、本発明と関連して開示する必要はない。
【００２２】
ネットワークデバイスをサポートするためのシステムおよび方法
今日のコンピュータオペレーティングシステムでは、ネットワークデバイスは通常、ローカル接続されたデバイスとは異なるように扱われる。例えば、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＷｉｎｄｏｗｓ（登録商標）ファミリのオペレーティングシステムでは、ネットワークデバイスは、ホストコンピュータにローカル接続されるハードウェアデバイスのように扱われない。したがって現在、リモート接続されたネットワークデバイスを、コンピュータに物理的に接続されたハードウェアの１つとして論理的に表現する方法はない。本発明はこの欠乏に、ネットワーク接続されたデバイスを発見し、これを、ローカル接続されたデバイスのように扱うための方法およびメカニズムを提供することによって対処する。
【００２３】
本発明をよりよく理解するため、図２の概略図は、本発明の基本コンポーネントおよびそれらの関係を例示する。図２を見ると、ネットワークデバイス２００が示される。このデバイスを、図１に関して上述したものなど、いかなる数の様々な周辺デバイスにすることもできる。例えば、デバイス２００を、ネットワークに接続されたスキャナにすることができる。デバイス２００はネットワーク２０２に接続される。例えば、ネットワーク２０２をイーサネット（登録商標）ネットワークにすることができ、次いでデバイス２００は、その上でイーサネット（登録商標）接続を有するようになる。ネットワークはバススタック２０４を通じて通信する。Ｗｉｎｄｏｗｓ（登録商標）オペレーティング環境では、バススタック２０４を、イーサネット（登録商標）ネットワーク２０２と通信するために装備されたカーネルバススタックにすることができる。このネットワークスタック２０４を、ローカルバス上に接続されたデバイスのためにも使用することができる。この環境では、すべてのデバイス（ローカルデバイスまでも）が、ネットワークを介して通信する。そうするために、変換またはマッピング層がスタック内に提供され、これは、ネットワークスタックがローカル接続されたスタック上に配置されることを可能にする。バスは、ネットワークでもローカルでも、このように最高の層から抽象化される。これは、すべてのデバイスをサポートする単一のスタックが使用されることを可能にする。単一のスタックの使用は、より安定したシステムおよびより低い保守コストを生じる結果となる。また、単一のネットワークスタックを利用することにより、バスに変更が行われるたびに、あるいはバスが追加されるたびに、バススタックのバスアダプタ層を書き直す必要がなくなる。提供されたマッピング層はオペレーティングシステムが提供する層であり、これは、サードパーティのベンダー（売り手、供給者）から、カーネルドライバソリューションを提供する必要性を除く。なお、あらゆるバスについて小さいバス特有の層が存在するようになるが、この層のサイズはネットワーク環境内で最小限にされ、これを他のベンダーの代わりにオペレーティングシステムによって提供することができる。
【００２４】
図２を続けると、カーネルバススタック２０４は通信コンジット（導管）２０６と通信する。Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの例を続けると、通信コンジット２０６は通常、Ｗｉｎｓｏｃｋとして知られる。一般的な背景上、バススタック２０４はカーネルモードで動作し、通信コンジット２０６はユーザモードで動作する。図２のライン２０８はこのモードの区別を示す。カーネルはオペレーティングシステムのコアであり、システムの中で、メモリ、ファイルおよび周辺デバイスを管理する部分である。カーネルはまた、時間および日付を保守するようにも機能し、アプリケーションを起動し、通常はシステムリソースを割り振る。通常、カーネルにおける変更または追加は、開発および実施することがより困難である。
【００２５】
サービスリスナー２１０が提供され、これもまたコンジット２０６を通じて通信する。サービスは一般に、サポートを他のプログラムに提供するプログラムまたはルーチンである。この例では、サービスリスナー２１０は、それを通じて１つまたは複数のリスニングモジュール２１２が通信するインターフェースを定義する。リスニングモジュール２１２はネットワーク上の特定のデバイスのアナウンスメント（告知、通知）をリッスン（待機、聴取）する。例えば、リスニングモジュール２１２ａを、ＰｎＰデバイスをリッスンするモジュールにすることができる。ＰｎＰは、コンピュータがそれ自体を自動的に、モニタ、モデムおよびプリンタなどの周辺デバイスと共に動作するように構成することを可能にする、仕様のセットである。ＰｎＰリスニングモジュール２１２ａはこのようにネットワーク上で、ネットワークへのＰｎＰデバイス接続のいかなるアナウンスメントをもリッスンする。別法として、リスニングモジュール２１２ｂを、製造者独自のデバイスをリッスンするモジュールにすることができる。例えば、このリスニングモジュールは、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄのスキャナまたは他のデバイスをリッスンすることができる。リスニングモジュール２１２はネットワーク２０２と通信しており、ネットワーク上で接続されたデバイスについてのアナウンスメントを待機する。上記の例を続けると、ＰｎＰデバイス２００がネットワーク上で接続される場合、リスニングモジュール２１２ａはアナウンスメントをネットワーク上で発見し、そのデバイスを認識するようになる。次いで、リスニングモジュール２１２はいかなるアナウンスメントをもサービスリスナー２１０に通信する。サービスリスナー２１０は、新しいデバイスを知ると、そのデバイスがすでに認識されているかどうかを判断する。各デバイスは一意のＩＤを有し、それによってデバイスが認識される。デバイスＩＤがすでに認識されている場合、サービスリスナー２１０は、デバイスに関して、ＩＰアドレスなどのいずれかの改変が必要とされるかどうかを判断するようになる。デバイスが認識されていない場合、サービスリスナーは、このデバイスの論理接続が作成されることを求めるようになる。この機能はクリエータ（作成）コンポーネント２１４によって実行される。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）環境では、デバイスの論理表現はデバイスノードと呼ばれる。したがって、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）環境では、クリエータコンポーネント２１４は、発見されたデバイスのためのデバイスノードを作成するようになる。
【００２６】
デバイスノードが作成された後、デバイスの論理表現がコンピュータに見え、コンピュータは、デバイスが接続されることを理解する。この時点から、デバイスは、ローカルで接続されたデバイスとほぼ同じように扱われる。クリエータコンポーネント２１４は、カーネルインストールコンポーネント２１６と通信する。ＰｎＰの例では、コンポーネント２１６はＰｎＰサブシステムである。コンポーネント２１６はデバイスインストーラ２１８と、ユーザモードで通信する。デバイスインストーラを、Ｗｉｎｄｏｗｓ（登録商標）Ｉｍａｇｉｎｇ  Ａｃｑｕｉｓｉｔｉｏｎ（ＷＩＡ）クラスインストーラ、または、デバイスおよびデバイスのためのドライバのインストールを調整する他の機能にすることができる。したがって、デバイスインストーラ２１８は、新たにアタッチされ、発見されたいかなるネットワークデバイスのためのドライバをもインストールするようになる。ドライバがインストールされた後、メッセージが別のサービス２２０にブロードキャストされる。サービス２２０は、通信特有のライブラリをロードし、様々なデバイスに伝える方法を知るアプリケーションである。サービス２２０はまた、通信のためのインターフェースも提供する。Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、サービス２２０はＷＩＡサービスとして知られる。サービス２２０はブロードキャストメッセージを、オペレーティングシステム内で実行するすべてのアプリケーション２２２に通信する。このメッセージは、新しいデバイスが到着しており、接続されることを通信する。典型的なアプリケーション２２２は、いくつかのソフトウェアアプリケーションのいずれを含むこともできる。メッセージを受信すると、サービス２２０はまた、新たにアナウンスされ、発見されたデバイスに関連付けられた適切なドライバ２２４も発見する。次いで、適切なドライバ２２４がロードされる。ロードされたドライバ２２４は、関連付けられたデバイス２００に伝える方法を知り、コンジット２０６を通じて通信する。デバイス２００はこの時点でコンピュータに、物理的に接続されたローカルデバイスと同じように見える。したがって、このデバイスを、ローカル接続されたデバイスと同じ程度までコントロールおよび管理することができる。
【００２７】
簡略化した流れ図を図３に示し、これは、図２のコンポーネントによって使用される基本的方法を例示する。図３の流れを論じた後、より詳細な流れを、図２を参照して説明する。図３では、ユーザがデバイスをネットワークに接続し、これをステップ３００に示す。デバイスが接続された後、この方法は、このデバイスが自動発見可能であるかどうかを判断し、これを３０２に示す。ますます増加する数の現代のネットワークデバイスが、コンピュータシステムによって自動発見可能である。しかし、なお今日使用されている、より古いデバイスは、時に自動発見可能ではない。このデバイスが自動発見可能でない場合、ユーザはコンピュータによって、デバイスを追加するようにプロンプト（指示）され、これを３０４に示す。例えば、ウィザードまたは他のヘルプ機能を使用して、ユーザをデバイスのインストールにおいてガイド（案内）することができる。このプロセスの一部として、ユーザは、ユーザがインストールすることを望むデバイスの製造者およびモデルを選択および提供し、これを３０６に示す。加えて３０８に示すように、ユーザはまた、デバイスアドレッシング情報も入力する。
【００２８】
しかし、デバイスが自動発見可能である場合、ネットワークに接続されるときにデバイスが検出され、これを３１０に示す。この検出を、オペレーティングシステムソフトウェアを通じて、あるいは、他のサードパーティベンダーのソフトウェアを通じて達成することができる。３１０でデバイスが検出されるとき、この方法は、デバイスからそのアドレッシング情報およびデバイス記述を得ることによって継続し、これを３１２に示す。ステップ３１２および３０８の後に続いて、３１４で、新たに接続されたデバイスのための論理表現が作成される。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）環境では、デバイスノードがＰｎＰサブシステムによって作成される。デバイスノードが作成されると、イントレーションコンポーネントはデバイスのための関連ドライバをインストールし、これを３１６に示す。ドライバがロードされ、ユーザに、デバイスを使用する準備ができていることが通知され、これを３１８に示す。
【００２９】
この流れをより詳細に、図２を参照して見ることもできる。図２では、ユーザはデバイス２００をネットワーク２０２に接続する。自動発見可能デバイスでは、デバイスがそれ自体をアナウンスし、これを、ネットワークを介してメッセージを送信することによって行う。これらのメッセージはバススタック２０４およびコンジット２０６中を移動し、関連付けられたリスニングモジュール２１２に到着する。リスニングモジュール２１２はサービスリスナー２１０にデバイスの到着を通知する。次いで、サービスリスナー２１０はオペレーティングシステムにデバイスの到着を通知し、デバイスの論理表現がクリエータコンポーネント２１４によって作成されることを求める。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）の例では、デバイスノードがコンポーネント２１４によって作成される。サービスリスナー２１０はユーザモードで、コンジット２０６およびネットワークスタック２０４を通じてカーネルモードに通信し、デバイスノードが作成されることを求める。そのため、事実上、サービスリスナーはほぼバスエニュメレータのように動作するが、ユーザモードでそのように行う。通常のバスエニュメレータはカーネルの深くで動作する。ユーザモードのサービスリスナー２１０の結果は、デバイスが特定のバス上に接続されるたびに低レベルのカーネルドライバを書く必要性がなくなることである。ネットワーク接続されたデバイスを発見するための方法が提供され、そのため、カーネルモードにおけるバスドライバは小さいままで残ることができる。デバイスを発見するためのメカニズムは、カーネルよりはるかに高いレベルで定義される。上述のように、カーネル層への変更および追加は通常、ユーザモードにおける変更よりも実施することが困難である。クリエータコンポーネント２１４は、オペレーティングシステムによって提供されたシンカーネルドライバであり、これは、これをコールするいかなるものもデバイスノードを作成できるようにする。
【００３０】
デバイスノード作成の後に続いて、ＰｎＰサブシステムなどのインストールコンポーネントは、インストールコンポーネント２１８を開始して、デバイス２００のためのドライバをインストールするようになる。ドライバがインストールされた後、新しいデバイス２００が到着したというメッセージが、すべての実行中のアプリケーション２２２にブロードキャストされる。ＷＩＡサービスなどのサービス２２０は、この通知メッセージを受信し、適切なドライバを発見およびロードする。次いで、ロードされたドライバはデバイス２００と通信し、デバイス２００への通信チャネルが確立されるようにする。この時点から先は、デバイス２００は、コンピュータにローカル接続されるデバイスと同じように見える。次いで、ネットワーク接続されたデバイスを、コンピュータに接続されたハードウェアのいずれかの他の部分として扱うことができる。例えば、ドライバを管理することができ、あるいはコンピュータが、デバイスのための更新されたドライバを探索およびインストールすることなどができる。したがって、上述のシステムおよび方法は、いかなる数のネットワーク接続されたデバイスをも収容し、これらを既存のコンピュータシステムにより有意義な方法で組み込む。
【００３１】
本発明の特定の実施形態を、本明細書で例示し、詳細に説明したが、本発明の範囲および意図から逸脱することなく、様々な変更および修正を本発明に行うことができることを理解されたい。本明細書で説明した実施形態は、あらゆる点で、限定的ではなく例示的であるように意図される。代替実施形態は、その範囲から逸脱することなく、本発明が関係する当技術分野の当業者には明らかになるであろう。
【００３２】
前述から、本発明が、上記で用意されたすべての目的および目標を、明白でありこのシステムおよび方法に固有である他の利点と共に達成するように十分に適合されることは、わかるであろう。ある特徴およびサブコンビネーションは有益であり、他の特徴およびサブコンビネーションを参照することなく使用できることは、理解されよう。これが企図され、特許請求の範囲の範囲内である。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施において使用するために適切なコンピューティングシステム環境のブロック図である。
【図２】本発明の一実施形態における基本コンポーネントの概略図である。
【図３】本発明のある態様を例示する流れ図である。
【符号の説明】
【００３４】
２００  ネットワークデバイス
２０２  ネットワーク
２０４  バススタック
２０６  通信コンジット
２０８  ライン
２１０  サービスリスナー
２１２ａ  リスニングモジュール
２１２ｂ  リスニングモジュール
２１４  クリエータコンポーネント
２１６  カーネルインストールコンポーネント
２１８  デバイスインストーラ
２２０  サービス
２２２  アプリケーション
２２４  ドライバ
【図１】
2004355635.tif 000003
【図２】
2004355635.tif 000004
【図３】
2004355635.tif 000005