(57)【特許請求の範囲】
【請求項１】
周辺デバイスに関係する情報にアクセスする方法であって、
(a)周辺デバイスがホストデバイスに結合されているとき、前記周辺デバイスにストアされているネットワークアドレスを前記周辺デバイスから前記ホストデバイスに転送するステップであって、
(i)前記ホストデバイスが、ストリング記述子を得るための要求を前記周辺デバイスに対して発行するステップと、
(ii)前記周辺デバイスから、前記ストリング記述子を受け取るステップと、
(iii)前記ストリング記述子から、
前記ネットワークアドレスと、
前記ネットワークアドレスがストアされているロケーションを指すポインタと
のうちの一方を判断するステップと、
(iv)前記ストリング記述子から前記ポインタが存在すると判断された場合に、
前記ポインタを使用して、前記周辺デバイスの前記アドレス可能メモリ内の前記ロケーションにアクセスするステップと、
前記ネットワークアドレスを、前記ロケーションから受け取るステップと
を含むステップと、
(b)前記ホストデバイスと、前記ネットワークアドレスで示されたソースとの間の通信を可能にするステップであって、前記通信は、前記周辺デバイスに関係し、
(i)前記ソースと通信するために、前記ホストデバイスのユーザの許可を要求するステップと、
(ii)前記許可を前記ユーザから受け取ると、前記ホストデバイスと前記ソースとの間の通信を開始して、前記周辺デバイスに関係する情報を前記ソースから自動的に取得するステップと
を含むステップと
を備えたことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記ネットワークアドレスは、前記周辺デバイスのアドレス可能メモリにストアされていることを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記ネットワークアドレスは、前記周辺デバイスによって読み取り可能である取外し可能記憶媒体と再書込み可能記憶媒体のうちの一方にストアされていることを特徴とする方法。
【請求項４】
請求項１に記載の方法において、前記ホストデバイスに接続された前記周辺デバイスの数の変化を検出して、前記周辺デバイスが前記ホストデバイスにいつ接続されたかを判断するステップをさらに含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記周辺デバイスは、
(a) 前記ホストデバイス側の入出力ポートインタフェースとの有線のコネクションと、
(b) 前記ホストデバイスと前記周辺デバイスとの間のワイヤレスのコネクションと
のうちの一方を通して前記ホストデバイスに結合されていることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するデータ、マシン命令、およびドキュメントのうちの少なくとも１つを、前記ネットワークアドレスで示された前記ソースから自動的に取り出すステップを含むことを特徴とする方法。
【請求項７】
請求項１に記載の方法において、前記通信を可能にするステップは、前記ソースから取得され、前記周辺デバイスに関係するセットアッププログラムを、自動的に実行するステップを含むことを特徴とする方法。
【請求項８】
請求項１に記載の方法において、前記通信を可能にするステップは、前記ネットワークアドレスで示された前記ソースに用意されているWebページを自動的に表示するステップを含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するデバイスドライバプログラムを前記ホストデバイスに自動的にインストールするステップを含むことを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、前記通信を可能にするステップは、更新されたファームウェアを自動的にダウンロードして、前記周辺デバイスにインストールするステップを含むことを特徴とする方法。
【請求項１１】
請求項１に記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するアプリケーションプログラムを自動的に実行するステップを含むことを特徴とする方法。
【請求項１２】
請求項１に記載の方法において、前記周辺デバイスのためのプロパティページであって、前記ネットワークアドレスへのリンクを含んでいる前記プロパティページを表示して、ユーザが前記リンクを選択してブラウザ機能をアクチベートできるようにし、前記ソースにアクセス可能とすることを特徴とする方法。
【請求項１３】
請求項１に記載の方法において、前記伝達するステップは、前記ホストデバイス上でブラウザ機能を自動的に実行し、前記ネットワークアドレスへ自動的にナビゲートするステップを含むことを特徴とする方法。
【請求項１４】
請求項１に記載の方法において、ユーザが前記ホストデバイス上でブラウザ機能を実行することを望んでいるかどうかを要求し、前記ユーザによって許可されているときだけ、前記ネットワークアドレスへ自動的にナビゲートするステップをさらに含むことを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、前記ホストデバイス上でブラウザ機能を自動的に実行し、前記ユーザによって許可されていれば、前記ネットワークアドレスへ自動的にナビゲートするステップをさらに含むことを特徴とする方法。
【請求項１６】
請求項１４に記載の方法において、前記ホストデバイス上でブラウザ機能を実行するさらに別の要求を、ユーザが選択的に禁止することを可能とし、それにより前記ネットワークアドレスへ自動的にナビゲートするステップが実行されることを禁止するステップをさらに含むことを特徴とする方法。
【請求項１７】
請求項１に記載の方法を実行するマシン実行可能命令を格納していることを特徴とするマシン読取可能媒体。
【請求項１８】
周辺デバイスに関係する情報に自動的にアクセスするシステムであって、
(a)ストリング記述子がストアされている周辺デバイスと、
(b)(i)マシン命令がストアされているメモリと、
(ii)ネットワーク上で通信するために使用されるネットワークインタフェースと、
(iii)プロセッサと、
(iv)前記周辺デバイスに接続され、前記周辺デバイスと通信するように構成された周辺インタフェースと
を備えたホストデバイスと、
(c)ネットワークアドレスに置かれた、前記周辺デバイスに関係する情報のソースであって、前記ネットワークインタフェースを介して、前記ホストデバイスによってアクセス可能である前記ソースとを備え、
前記メモリにストアされた前記マシン命令は、
(i)前記周辺デバイスが前記ホストデバイスに結合されているとき、前記ストリング記述子を求める要求を前記周辺デバイスに対して発行し、
(ii)前記周辺デバイスから前記ストリング記述子を受け取り、
(iii)前記ストリング記述子から、
前記ネットワークアドレスと、
前記ネットワークアドレスがストアされているロケーションを指すポインタと
のうちの１つを判断し、
(iv)前記ストリング記述子から前記ポインタが存在すると判断された場合には、前記ポインタを使用して、前記ロケーションにアクセスし、前記ネットワークアドレスを取得し、
(v)前記ネットワークアドレスに置かれた前記ソースと通信するために、前記ホストデバイスのユーザの許可を要求し、
(vi)前記許可を前記ユーザから受け取ると、前記ホストデバイスと、前記ネットワークアドレスに置かれたソースとの間の通信を可能にして、前記ホストデバイスが前記ソースにアクセスできるようにする
処理を、前記プロセッサに実行させることを特徴とするシステム。
【請求項１９】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記周辺デバイスに関係するデータ、マシン命令、およびドキュメントのうちの少なくとも１つを、前記ネットワークアドレスで示された前記ソースから自動的に取り出す処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２０】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記ソースから取得され、前記周辺デバイスに関係するセットアッププログラムを自動的に実行する処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２１】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記ネットワークアドレスで示された前記ソースに用意されているWebページを自動的に表示する処理を、前記プロセッサにさらに実行させること特徴とするシステム。
【請求項２２】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記周辺デバイスに関係するデバイスドライバプログラムを前記ホストデバイスに自動的にインストールする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２３】
請求項１８に記載のシステムにおいて、前記マシン命令は、更新されたファームウェアを自動的にダウンロードし、前記周辺デバイスにインストールする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２４】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記周辺デバイスに関係するアプリケーションプログラムを自動的に実行する処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２５】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記周辺デバイスのプロパティページであって、前記ネットワークアドレスへのリンクを含んでいる前記プロパティページを表示し、それにより、ユーザが前記リンクを選択してブラウザ機能をアクチベートできるようにし、前記ソースにアクセス可能とする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２６】
請求項１８に記載のシステムにおいて、前記マシン命令は、前記ホストデバイス上でブラウザ機能を自動的に実行し、前記ネットワークアドレスに置かれた前記ソースに自動的にアクセスする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２７】
請求項１８に記載のシステムにおいて、前記マシン命令は、ユーザが前記ホストデバイス上でブラウザ機能を実行することを望んでいるかどうかを要求し、前記ユーザによって許可されているときだけ、前記ネットワークアドレスに置かれた前記ソースに自動的にアクセスする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２８】
請求項２７に記載のシステムにおいて、前記マシン命令は、前記ホストデバイス上でブラウザ機能を自動的に実行し、前記ユーザによって以前に許可されていれば、前記ネットワークアドレスに置かれた前記ソースに自動的にアクセスする処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【請求項２９】
請求項２７に記載のシステムにおいて、前記マシン命令は、前記ホストデバイス上でブラウザ機能を実行するさらに別の要求を、ユーザが選択的に禁止することを可能にし、前記ネットワークアドレスに置かれた前記ソースに自動的にアクセスすることを禁止する処理を、前記プロセッサにさらに実行させることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、エレクトロニック周辺デバイスのファームウェアメモリにネットワークアドレスをストアしておく方法とシステムに関し、さらに具体的には、かかるエレクトロニック周辺デバイスに具体的に関係するデバイスドライバや他のソフトウェアを、ネットワークアドレスによって特定されたリモートサイトから取り出すことに関する。
【０００２】
【従来の技術】
多くのコンピュータおよび関連の周辺デバイス(peripheral deviceまたはperipheral)は、コンピュータ上で稼動しているオペレーティングシステムに組み込まれたプラグアンドプレイ機能(plug-and-play capability)を取り扱うように設計されている。プラグアンドプレイによると、コンピュータは新たに接続された周辺デバイスを自動的に検出し、その周辺デバイスをコンピュータシステムの一部としてインストールすることが可能になっている。プラグアンドプレイが開発される以前は、ユーザは、新しい周辺デバイスが追加されたことを、明示的にオペレーティングシステムに知らせ、どの周辺デバイスが追加されたかを特定し、例えば、割込み要求値(interrupt request value - IRQ)のように、周辺デバイスが必要とするリソースを手作業でセットする必要があった。プラグアンドプレイの下では、コンピュータオペレーティングシステムは、新たに追加された周辺デバイスの存在を、コンピュータのブートアップ時に自動的に検出し、どのデバイスであるかを特定し、そのあと、そのデバイスが必要とするリソースを自動的に割り当てている。つい最近では、コンピュータがすでにブートアップされ、動作状態になった後で、周辺デバイスがいつ追加されたか、あるいは切り離されたかを「ホット検出(hot-detect)」し、どの周辺デバイスであるかを特定し、そのデバイスをコンピュータシステムの一部としてインストールし、あるいはアンインストールできるようにする機能が、オペレーティングシステムに追加されている。例えば、多くの新しいコンピュータと周辺デバイスはユニバーサルシリアルバス(Universal Serial Bus - USB)をサポートし、USBインタフェースを装備している。これらの新しいコンピュータ上で稼動しているMicrosoft（登録商標）社のWINDOWS（登録商標）オペレーションシステムの最新バージョンでは、スキャナ、プリンタ、デジタルカメラなどのような、新たに接続または切り離されたUSB周辺デバイスを、コンピュータの稼動中にホット検出することが可能になっている。オペレーティングシステムは、どのUSBデバイスがUSBポートに接続されたかを、そのデバイスから得た情報に基づいて特定している。そのあと、該当する周辺デバイスドライバとクライアントアプリケーションソフトウェアが以前にインストールされていれば、コンピュータは、そのデバイスをコンピュータシステムの一部としてインストールしている。具体的には、オペレーティングシステムは、その特定周辺デバイスドライバがカレントデバイスレジストリ(current device registry)に登録されているかどうかを確かめるためのチェックを行い、登録されていれば、対応するデバイスドライバをメモリにロードしている。そのあと、新たに接続されたUSB周辺デバイスは即時に使用可能になる。
【０００３】
しかるに、新しいUSB周辺デバイスが初めてコンピュータに接続されるときは、そのUSB周辺デバイスはデバイスレジストリにはリストされていない。ある種の周辺デバイスでは、情報ファイル（つまり、*.INFファイル）とデバイスドライバはオペレーティングシステムに組み込まれているので、オペレーションシステムは、周辺デバイスに関する必要情報をデバイスレジストリに追加し、デバイスドライバをロードすることが可能になっている。しかし、多くの場合、周辺デバイス情報とデバイスドライバはオペレーティングシステムに組み込まれていない。そのような場合には、現在では、周辺デバイスのための必要情報、ドライバ、および関連するクライアントアプリケーションソフトウェアを取得し、インストールするためには、セットアッププログラムを実行する必要がある。
【０００４】
どのタイプのアプリケーションソフトウェアをインストールする必要が起こるかの１つの例として、USBプリンタと共に使用されるプリンタマネージャプログラム(printer manager program)がある。そのほかにも、アプリケーションソフトウェアとしては、USBデバイスのための追加的フィーチャ(feature)や機能(function)を備えたプログラム、あるいは周辺デバイスの購入者に付加的便益を提供するプログラムがある。
【０００５】
代表例として、必要とされるドライバとユーザアプリケーションソフトウェアは、周辺デバイスと一緒にパッケージされているCD-ROMや１つまたは２つ以上のフロッピディスクに入って提供されている。USB周辺デバイス用のドライバやユーザアプリケーションソフトウェアがオペレーティングシステムと一緒に提供されないときは、ユーザはCD-ROMまたはフロッピディスクをロードするか、さもなければ、必要なマテリアルを手作業で用意しなければならない。従って、周辺デバイスを初期インストールするためにやりとりすることがユーザに要求されるため、上級ユーザの経験が無駄になってしまうが、これは、周辺デバイスの初期インストールが真の意味で「プラグアンドプレイ」オペレーションでないからである。
【０００６】
新しい周辺デバイスがコンピュータに接続されるとき、オペレーティングシステムは、プラグアンドプレイ機能を備えていれば、その新周辺デバイスの存在を検出する。上述したように、そのようなオペレーティングシステムは、そのあと、その周辺デバイスが以前にインストールされていたかどうかを確かめるためのチェックを行う。周辺デバイスが以前にインストールされていなければ、オペレーティングシステムは、新しい周辺デバイスをインストールするためのプロシージャを起動する。オペレーティングシステムが必要なファイルを備えていなければ、オペレーティングシステムは、該当する情報ファイル（例えば、*.INFファイル）、ドライバソフトウェア、およびアプリケーションソフトウェアが入っているCD-ROMまたは他の媒体を、ユーザに挿入させるためのオプションを用意している。
【０００７】
CD-ROMおよび/またはフロッピディスクを作成し、それを周辺デバイスと一緒に配布することは、少なくとも２つの理由で、周辺デバイスベンダにとっては相当の費用負担になっている。第一の理由は、このような有形的コンポーネントを用意すると、媒体とパッケージングのコストが発生することである。第二の理由は、CD-ROMおよび/またはフロッピディスクの作成をスケジューリングすると、新規に開発された周辺デバイスの出荷が遅れたり、利用できるソフトウェア開発時間量が少なくなったりすることである。開発サイクルの後半でデバイスドライバまたは他のソフトウェアの変更が必要になったときは、周辺ハードウェアの製造が完了した後までCD-ROMの作成が待たされることがある。周辺デバイスの出荷が遅延するほかに、完成した周辺デバイスを在庫として保管しておく費用が必要以上に増加することにもなる。これとは別に、周辺ハードウェアの製造と出荷スケジュールに合わせてCD-ROMを作成するためには、プログラム開発を途中で打ち切る必要が起こるため、訂正を行ったり、プログラムフィーチャを追加したりすることができなくなる。プログラムフィーチャが除かれていると、市場におけるプロダクトの競争力と魅力が低下することになる。また、ベンダは、更新されたソフトウェアを別のCD-ROMに入れて配布するとか、あるいは別の方法で、バグを訂正したり、改善されたフィーチャと機能をソフトウェアマテリアルで提供したりすることが強要されることになる。
【０００８】
更新されたデバイスドライバと他のマテリアルは、インターネット(the Internet)上でダウンロードするために利用可能になっていることが多い。多くのコンピュータユーザは、高速で、フルタイムのコネクションでインターネットに結ばれているか、あるいは少なくともダイヤルアップ(dial-up)コネクションでインターネットに結ばれているので、周辺デバイスのベンダは、必ずしも、周辺デバイスと一緒にCD-ROMおよび/またはフロッピディスクを提供しなくても、必要とされるドライバやアプリケーションソフトウェアが得られるようになっている。その代わりに、ベンダは、そのようなソフトウェアをインターネット上の特定サイトから手作業でダウンロードすることを、ユーザに要求できるようになっている。しかし、インターネットに接続し、および/またはドライバや他のソフトウェアマテリアルをダウンロードすることは、手作業による、時間のかかるプロセスでもあるため、大部分のユーザは避けようとしている。さらに、この手作業によるプロセスは、初心者のユーザにとっては問題となり、新規に購入された周辺デバイスをコンピュータに初期インストールすることに手間取ることになるため、周辺デバイスに対するユーザの満足度が低下することは明らかである。
【０００９】
【発明が解決しようとする課題】
以上の説明から理解されるように、好ましいことは、インターネット（または他のネットワーク）を通して、指定のリモートサイトから初めてコンピューティングデバイスに接続されたばかりの周辺デバイスに関連して、必要とされるデバイスドライバや関連のソフトウェア/ドキュメントマテリアルを、コンピューティングデバイス上のオペレーティングシステムが自動的に取得できるようにすることである。ユーザがCD-ROMやフロッピディスクをホストコンピューティングデバイスに挿入したり、さもなければ、必要ソフトウェアを手作業で取得したりしないで済むようにすると、改善されたプラグアンドプレイ機能が得られることになる。ベンダがドライバや他のソフトウェアを提供するために、周辺デバイスと一緒にCD-ROMおよび/またはフロッピディスクを提供しないで済むようにすると、ソフトウェア開発時間が延長され、製造コストが低減されるはずである。
【００１０】
本発明は、周辺デバイスにストアされたネットワークアドレスを取得し、そのネットワークアドレスに置かれたリモートデバイスにアクセスして、周辺デバイスに関係する情報を得るようにした方法とシステムを目的とする。
【００１１】
【課題を解決するための手段】
周辺デバイスがホストコンピュータに接続されているとき、ストアされたネットワークアドレスはホストコンピュータによって読み取られ、ホストデバイスと、そのネットワークアドレスからアクセスされた周辺デバイスとの間の通信を可能にし、周辺デバイスに関係する情報がリモートデバイスからホストデバイスによってダウンロードされるようにしている。
【００１２】
ネットワークアドレスに置かれたリモートデバイスから情報をダウンロードすることのほかに、ホストデバイスは、リモートデバイスにストアされた、あるいはそこからダウンロードされたプログラムを自動的に実行し、周辺デバイス用のデバイスドライバをインストールし、アプリケーションプログラムをインストールし、Webページを表示し、周辺デバイスを登録し、周辺デバイスに関するドキュメンテーションをダウンロードし、ファームウェアをダウンロードして周辺デバイスにインストールし、ヘルプ情報にアクセスし、および/または周辺デバイスに関係する他のマテリアルにアクセスすることが可能になっている。当業者ならば理解されるように、周辺デバイスに関係するさまざまな、異種タイプの情報を、ネットワークアドレスからダウンロードし、表示し、あるいは取得することが可能である。
【００１３】
ネットワークアドレスは、好ましくは、周辺デバイスのリードオンリメモリ(read-only memory - ROM)にストアされる。しかし、別の実施形態では、ネットワークアドレスは、周辺デバイスと関連付けられていて、その周辺デバイスによって読み取り可能な再書込み可能メモリ媒体(rewritable memory medium)にストアされている。
【００１４】
好ましくは、本発明の方法は、周辺デバイスがホストデバイスに接続されて、動作状態にあるとき周辺デバイスを検出して列挙(enumerate)するステップを含んでいる。この列挙を行うとき、周辺デバイスは自身であることを特定し、ホストデバイスへの通信の中でネットワークアドレスを転送する。通信は、ホストデバイス上のオペレーティングシステムが、周辺デバイスに割り当てられたデバイス記述子(device descriptor)を得るために周辺デバイスにクエリ（問い合わせ）したとき開始される。このデバイス記述子は、ベンダ識別子(ID)とプロダクト識別子(ID)などの情報を含んでいる。また、オペレーティングシステムは、ストリング記述子(string descriptor)を得るためにも周辺デバイスにクエリする。周辺デバイスベンダは、ストリング記述子を周辺デバイスのメモリに入れておく。そのストリング記述子には、周辺デバイスに関係するデバイスドライバ、ソフトウェア、ドキュメント、あるいは他のマテリアルをそこから取得できるネットワークアドレスが含まれている。別の方法として、ストリング記述子には、ネットワークアドレスが周辺デバイスにストアされているメモリロケーションを指すポインタを収めておくことも可能である。オペレーティングシステムは、ベンダID、プロダクトID、および他のIDを得るためにデバイス記述子を構文解析(parse)する。また、オペレーティングシステムは、ネットワークアドレスまたはそのネットワークアドレスを指すポインタを得るためにもストリング記述子を構文解析する。
【００１５】
別の方法として、周辺デバイスからホストへネットワークアドレスを転送するステップは、ストリング記述子を周辺デバイスに要求して受け取る他の機能を利用することによって、列挙の後で実行することもできる。例えば、この転送ステップは、ネットワークアドレスを得るためのクラス要求を周辺デバイスに対して出すことによって実行することができ、この場合、クラスはシステム機能を動作させるために割り当てられたクラスであることが好ましい。さらに、別の方法として、この転送ステップは、周辺デバイスからネットワークアドレスを得るための１つまたは複数のベンダ固有コマンド(vendor-specific command)を実装することによって実行することもできる。
【００１６】
さらに、本発明の方法によれば、オペレーティングシステムによる予備的チェックも含まれ、周辺デバイスが以前にホストデバイスにインストールさていたかどうかを判断できるようにしている。そうでなければ、オペレーティングシステムは、デバイス記述子からネットワーク記述子を探し出し、ストリング要求を出し、ベンダ固有コマンドを出し、あるいは他の方法で、ネットワークアドレスを取得するようにしている。別の方法として、このチェックは、ホストデバイスがネットワークアドレスを取得した後で行うこともできる。この場合には、ネットワークアドレスにアクセスし、デバイスドライバおよび/または他の情報を取り出してインストールするタスクを起動するかどうか、および/またはネットワークアドレスにアクセスすることに関係する他のタスクを実行するかどうかが判断される。
【００１７】
ホストデバイスとリモートデバイスとの間の通信を可能にするステップは、周辺デバイスに関係するデータ、マシン命令、またはドキュメントを、ネットワークアドレスに置かれたリモートデバイスを自動的に取り出すステップを含んでいる。好ましくは、通信を可能にするステップは、リモートデバイス側にストアされていて、周辺デバイスに関係するプログラムを自動的に実行するステップを含んでいる。これに加えて、あるいは別の方法として、通信を可能にするステップは、ホストデバイス側にストアされていて、周辺デバイスに関係するプログラムを実行する命令を自動的に受け取るステップを含んでいる。このステップには、周辺デバイス用のドライバをホストデバイスに自動的にインストールし、周辺デバイスに関係するアプリケーションプログラムを自動的に実行し、および/またはネットワークアドレスへのリンクを用意して、ユーザがリモートデバイス側に用意されている情報を選択できるようにするステップを、さらに含めることもできる。
【００１８】
本発明の方法によれば、好ましくは、ブラウザ機能(browser function)をホストデバイス側で自動的に実行し、ネットワークアドレスへ自動的にナビゲートするステップが、さらに含まれている。これとは別に、本発明の方法によれば、ユーザがブラウザ機能をホストデバイス側で実行することを望んでいるかどうかを要求し、その場合、ネットワークアドレスへ自動的にナビゲートするステップが含まれている。ユーザは、ブラウザ機能をホストデバイス側で実行して、ネットワークアドレスへ自動的にナビゲートするための、さらに別の要求を禁止することが許されている。
【００１９】
本発明の別の態様によれば、周辺デバイスに関係する情報に自動的にアクセスするためのシステムを指向している。本発明のシステムは、マシン命令がストアされているメモリを装備したホストデバイスを含んでいる。ホストデバイス内のプロセッサはマシン命令を実行し、これを受けて、ホストデバイスは、周辺デバイスにストアされたネットワークアドレスにアクセスする。ホストデバイスは周辺デバイスに接続されているので、リモートデバイスまたはマシン読取可能媒体の別ソースとの通信を可能にするネットワーク通信インタフェースも含んでいる。好ましくは、リモートデバイスは、ネットワークを利用してホストデバイスと通信するサーバになっている。しかし、リモートデバイスは、外部ストレージデバイスのような、別の周辺デバイスにすることもできる。このようなリモートデバイスは、工業、自動車、または他のシステムで利用すると、情報を見つけるためにホストデバイスに使用させる識別子(ID)を用意しなくても、情報がどこにあるかを、周辺デバイスからホストデバイスに直接に知らせることができるので便利である。いずれの場合も、周辺デバイスに関係するデータ、マシン命令、ドキュメント、または他のマシン読取可能マテリアルは、リモートデバイスにストアされている。
【００２０】
本発明の別の態様は、上述した方法のステップを実行するマシン実行可能命令を格納としているマシン読取可能媒体を指向している。
【００２１】
以下では、本発明の上述した側面とそれに伴う利点の多くの理解を容易にするために、添付図面を参照して詳細に説明する。
【００２２】
【発明の実施の形態】
例示の動作環境
図１と以下の説明は、本発明を実現することができる適当なコンピューティング環境の概要を、Webページをストアしておいてそれを提供するサーバと、そのWebページを要求してそれをユーザに表示するクライアントの両方と関連付けて要約して説明することを目的としている。必ずしもその必要はないが、本発明は、全体的には、プログラムモジュールのように、パーソナルコンピュータによって実行されるコンピュータ実行可能命令を中心にして説明されている。一般的に、プログラムモジュールには、特定のタスクを実行し、あるいは特定の抽象データ型(abstract data type)を実装しているルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。さらに、当業者ならば理解されるように、本発明は、特に、Webページを表示するクライアントデバイスに関しては、他のコンピュータシステム構成で実施することも可能であり、そのような構成には、ハンドヘルドデバイス、ポケットパーソナルコンピューティングデバイス、ネットワークに接続するように構成されたデジタルセル電話、さらには、その他のマイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニックデバイス、ゲームコンソール、TVセットトップボックス、マルチプロセッサシステム、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、工業制御機器、自動車機器、航空宇宙機器などが含まれている。また、本発明は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行されるような、分散型コンピューティング環境で実施することも可能である。分散型コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに置いておくことができる。
【００２３】
図１を参照して説明すると、本発明を実現するための例示システムは、従来のパーソナルコンピュータ２０の形態をした汎用コンピューティングデバイスを含み、処理ユニット２１、システムメモリ２２、およびシステムバス２３を装備している。システムバスは、システムメモリを含む種々のシステムコンポーネントを処理ユニット２１に結合しており、種々タイプのバス構造のいずれかにすることが可能であり、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれている。システムメモリには、リードオンリメモリ(read-only memory - ROM)２４とランダムアクセスメモリ(random access memory - RAM)２５が含まれている。基本入出力システム(basic input/output system - BIOS)２６は、スタートアップ時のときのように、パーソナルコンピュータ２０内のエレメント間の情報転送を支援する基本ルーチンから構成され、ROM ２４に格納されている。パーソナルコンピュータ２０は、さらに、ハードディスク（図示せず）との間で読み書きを行うハードディスクドライブ２７、取り外し可能磁気ディスク２９との間で読み書きを行う磁気ディスクドライブ２８、およびCD-ROMや他の光媒体などの、取り外し可能光ディスク３１との間で読み書きを行う光ディスクドライブ３０を装備している。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ディスクドライブインタフェース３４を介してシステムバス２３に接続されている。これらのドライブとそれぞれに関連するコンピュータ読取可能媒体は不揮発性ストレージとして、コンピュータ読取可能マシン命令、データ構造、プログラムモジュール、およびその他のデータをパーソナルコンピュータ２０用に格納している。ここで説明している例示環境では、ハードディスク、取り外し可能磁気ディスク２９、および取り外し可能光ディスク３１が採用されているが、当業者ならば理解されるように、コンピュータによってアクセス可能なデータを格納しておくことができる他のタイプのコンピュータ読取可能媒体を、例示の動作環境で使用することも可能であり、その中には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)などが含まれている。
【００２４】
いくつかのプログラムモジュールは、ハードディスク、磁気ディスク２９、光ディスク３１、ROM ２４またはRAM ２５に格納しておくことが可能であり、その中には、オペレーティングシステム３５（ブラウザ機能を含む）、１つまたは２つ以上のアプリケーションプログラム３６（セットアッププログラムなど）、他のプログラムモジュール３７、およびプログラムデータ３８が含まれている。ユーザは、キーボード４０やポインティングデバイス４２などの入力デバイスを通して、コマンドや情報をパーソナルコンピュータに入力することができる。その他の入力デバイス（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、デジタルカメラなどがある。上記入力デバイスおよびその他の入力デバイスは、システムバスに結合された入出力(I/O)デバイスインタフェース４６を通して処理ユニット２１に接続されていることが多い。プリンタ（図示せず）などの他の出力デバイスも、システムバスに結合されたI/Oデバイスインタフェース４６を通して処理ユニット２１に接続することが可能になっている。同様に、モニタ４７や他のタイプのディスプレイデバイスも、ビデオアダプタ４８などの、該当インタフェースを介してシステムバス２３に接続され、Webページを表示するために使用可能になっている。モニタのほかに、パーソナルコンピュータは、スピーカなどの、他の周辺出力デバイス（図示せず）に接続されていることがよくある（図示していないが、サウンドカードや他のオーディオインタフェースを介して）。このような入出力デバイスは、周辺デバイス(peripheral device)と総称されている。本発明によれば、説明の便宜上、総称周辺デバイス５６は、I/Oデバイスインタフェース４６を介してパーソナルコンピュータ２０に結合されている。I/Oデバイスインタフェースという用語には、シリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはUSBポート用に使用される、各々の固有インタフェースが含まれている。I/Oデバイスインタフェース４６を通して、情報は、システムバス２３を経由して周辺デバイス５６と処理ユニット２１の間でやりとりされる。周辺デバイス５６は、情報をストアしておくファームウェアメモリ５８を備えている。ファームウェアメモリ５８としては、消去可能プログラマブルリードオンリメモリ(erasable programmable read-only memory - EPROM)、フラッシュメモリ、磁気ストレージ、その他のメモリがある。ファームウェアメモリ５８には、周辺デバイス５６に関係するベンダID、プロダクトID、シリアル番号、ファームウェア改訂(revision)レベル、および/または他の情報がストアされている。また、ファームウェアメモリ５８には、周辺デバイスに関係するドライバ、データ、および/または他のマテリアルを、そこからアクセスし、および/またはダウンロードできるロケーションを示しているURIまたは他のタイプのアドレスもストアされている。
【００２５】
パーソナルコンピュータ２０は、リモートコンピュータ４９などの、１つまたは２つ以上のリモートソースとの論理コネクションを使用するネットワーキング環境で動作させることが可能になっている。本発明によれば、周辺デバイスのメモリにストアされるURIまたはアドレスは、リモートコンピュータ４９を通してアクセスされるロケーションを指定することができる。リモートコンピュータ４９としては、別のパーソナルコンピュータ、サーバ（これは、全体的に、パーソナルコンピュータ２０と非常によく似た構成になっているのが代表的である）、ルータ、ネットワークパーソナルコンピュータ、ピアデバイス、衛星、または他の共通ネットワークノードなどがあり、図１には、外部メモリストレージデバイス５０だけが示されているが、パーソナルコンピュータ２０に関連して上述したエレメントの多くまたは全部を装備しているのが代表的である。図１に示す論理コネクションには、ローカルエリアネットワーク(local area network - LAN)５１と広域ネットワーク(wide area network - WAN)５２が含まれている。このようなネットワーキング環境は、オフィス、企業内(enterprise-wide)コンピュータネットワーク、イントラネット、およびインターネット(the Internet)で幅広く使用されている。
【００２６】
LANネットワーキング環境で使用されるときは、パーソナルコンピュータ２０は、ネットワークインタフェースまたはアダプタ５３を通してLAN ５１に接続されている。WANネットワーキング環境で使用されるときは、パーソナルコンピュータ２０は、インターネットなどのWAN ５２上の通信を確立するためのモデム５４または他の手段を装備しているのが代表的である。モデム５４は内蔵型と外付け型があるが、どちらも、システムバス２３に結合されているか、あるいはI/Oデバイスインタフェース４６を介して、つまり、シリアルポートを通してバスに結合されている。ネットワーキング環境では、パーソナルコンピュータ２０に関連して示したプログラムモジュール、またはその一部は、リモートメモリストレージデバイスにストアしておくことができる。以上の説明から理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間の通信リンクを確立するための他の手段を使用することも可能であり、そのようなものとしては、ワイヤレス通信（無線通信）とワイドバンドネットワークリンクがある。
【００２７】
【実施例】
本発明の実装例
以下では、ホストデバイスとしての働きをするパーソナルコンピュータ２０と、プリンタ、モデム、デジタルカメラ、キーボード、および/またはコンピューティングデバイスと結合されて通信を行うように構成された他の、ほとんどのタイプのデバイス周辺デバイス５６との間で通信を行うためにI/Oデバイスインタフェース４６を使用した好適実施形態の実装例について説明する。本発明は、プラグアンドプレイの設計になっている周辺デバイスと関連して使用すると特に便利であり、さらに具体的には、USB規格（仕様）に準拠する任意の周辺デバイスのように、コンピュータにホット接続される設計になっている周辺デバイスで使用すると便利である。当業者ならば理解されるように、以下に示されている詳細は若干修正するだけで、プラグアンドプレイ以外のテクノロジにも、RS-232Cシリアル、IEEE 1284パラレル、IrDA赤外線、その他の標準などの、周辺デバイスとの他の通信形態にも適用することが可能である。このことから理解されるように、本発明は、ほとんどのタイプの通信プロトコルを使用してホストデバイスと通信する、ほとんどのタイプの周辺デバイスにも適用可能である。しかし、USBポートを通してコンピューティングデバイスに接続される設計になっている周辺デバイスは、以下の例では、本発明の説明と開示を単純化するために統一的に使用されている。
【００２８】
図２は、周辺デバイス用のデバイスドライバをインストールし、および/または周辺デバイスに関係するアプリケーションソフトウェアや他のマテリアルにアクセスする実施形態で採用されている全体ロジックを示す。本発明の重要なアプリケーションは、周辺デバイスが初めてコンピューティングデバイスに接続されるとき、リモートサイトに自動的にアクセスして、周辺デバイス用のデバイスドライバをダウンロードし、インストール可能にすることである。ステップ６０では、ネットワークアドレスが周辺デバイスにストアされる。好ましくは、ネットワークアドレスは、デバイスの製造時か、あるいは少なくとも、周辺デバイスがエンドユーザに販売される前に、周辺デバイスのROMにストアされる。
【００２９】
本発明の別の実施形態は、既存の周辺デバイスに関係するものであり、周辺デバイスの識別子(ID)および/または他の情報は、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ(electrically erasable programmable read-only memory - EEPROM)、または他の形態の再書込み可能不揮発性メモリ（この中には、フロッピディスク、カートリッジ、メモリスティック、またはメモリカードのような、取り外し可能および/または再書込み可能記憶媒体も含まれることがある）内で更新または修正可能になっている。このようなデバイスでは、更新情報や代替情報は直接に得ることが可能である。取り外し可能または再書込み可能記憶媒体を備えた周辺デバイスの例としては、ある種のプリンタ、ゲームコンソール、および工業マシンがある。望ましいことは、周辺デバイスに関係するデバイスドライバおよび/または他のマテリアルを収めている取り外し可能記憶媒体を使用しないで済むようにすることであるが、ネットワークアドレスを含んでいる新しい周辺デバイスで既存周辺デバイスを置き換えるのではなく、既存周辺デバイスをアップグレードした方が、経済的に有利であることがある。従って、場合によっては、取り外し可能および/または再書込み可能記憶媒体からネットワークアドレスを既存周辺デバイスに追加することが可能である。この方法によると、ある種の既存周辺デバイスは、周辺デバイスにすでに入っている他の識別子(ID)の中から、ネットワークアドレスを含むようにアップグレードすることが可能になる。このように既存周辺デバイスを一度更新するだけで、その既存周辺デバイスはホストデバイスにネットワークアドレスを与えることが可能になり、この場合、ホストは、将来のデバイスドライバ修正版および/または他のマテリアルを得るために、引き続いて別のCD-ROMや他の取り外し可能媒体に頼らなくても、将来のデバイスドライバ修正版と他の情報にアクセスすることが可能になる。このようにすると、既存周辺デバイスが、必要なデバイスドライバが存在しない別のホストデバイスに移された場合や、必要なデバイスドライバを収めているオリジナルCD-ROMが紛失した場合に特に好都合である。従って、ステップ６０には、ネットワークアドレスを収めている取り外し可能または再書込み可能媒体を周辺デバイスに装備させ、周辺デバイスに関係する情報がそのネットワークアドレスからアクセス可能とすることが含まれている。
【００３０】
ステップ６１では、ユーザは周辺デバイスをUSBポートに、つまり、I/Oデバイスインタフェース４６（図１に図示）に接続する。別の方法として、ステップ６１は、周辺デバイスがすでに接続されているホストコンピュータ２０に電力を供給するようにすることもできる。さらに別の方法では、ステップ６１を物理コネクションにするのではなく、論理コネクションにすることが可能である。このようなことは、周辺デバイスを、ホストコンピュータ２０の赤外線や無線周波数(RF)範囲内、あるいは他の通信範囲内にするときに行われている。
【００３１】
周辺デバイスがホストに接続されると、オペレーティングシステム３５（図１に図示）は、ステップ６２でその新デバイスを検出し、列挙する。前述したように、この列挙プロセス期間に、オペレーティングシステム３５はデバイス記述子を得るために周辺デバイスにクエリ（問い合わせ）する。デバイス記述子には、周辺デバイスに関する情報フィールドがあり、その中には、ベンダIDとプロダクトIDが含まれている。デバイス記述子のほかに、コンフィギュレーション
（構成）、インタフェースおよびエンドポイント記述子などの、他の標準記述子がデバイスに要求される。
【００３２】
同じく上述したように、オペレーティングシステム３５は、ネットワークアドレス、またはそのアドレスを指すインデックスを得るために周辺デバイスにクエリする。ネットワークアドレスは、0xFFのように、周辺デバイス内の事前定義インデックにストアしておくことができる。既知の事前定義または予約インデックスが使用される場合は、オペレーティングシステムは、ストリング記述子を求める標準要求でそのインデックスにクエリするだけで済むことになる。
【００３３】
別の方法として、オペレーティングシステムは、事前定義インデックスでクラス要求を出すことも可能である。クラス要求は、あるクラスの周辺デバイスによって理解されるコマンドである。例えば、プリンタはあるクラスの周辺デバイスを構成しているのに対し、モニタは別のクラスの周辺デバイスを構成している。準拠するプリンタは、標準要求のほかに、プリンタクラスに固有の要求を理解することができる。同様に、モニタは、標準要求のほかに、モニタクラスに固有の要求を理解する。しかし、URIは、周辺デバイスの種類に関係なく取得できるので、オペレーティングシステムクラスは、ネットワークアドレスを求める要求を追加するように構成されていることが好ましい。
【００３４】
記述子が分かると、オペレーティングシステム３５は、その周辺デバイスは以前にインストールされていたかどうかを、判定ステップ６４で判断する。例えば、オペレーティングシステムは、周辺デバイス情報がオペレーティングシステムのデバイスレジストリにリストされているかどうか、該当のデバイスドライバが使用可能であるかどうかをチェックする。このチェックには、周辺デバイスのファームウェア改訂番号がレジストリにリストされているものと同じであるかどうかを確認することを含めることができる。周辺デバイスが以前にパーソナルコンピュータ２０にインストールされていれば（例えば、そのレジストリにリストされていれば）、オペレーティングシステム３５は、デバイスドライバおよび/または他のソフトウェアをメモリ２２にロードするだけである。
【００３５】
周辺デバイスがパーソナルコンピュータ２０上に登録されていなければ、あるいはデバイスドライバおよび/または他のソフトウェアがパーソナルコンピュータ２０上で使用可能になっていなければ、オペレーティングシステム３５は判定ステップ６６を実行して、ネットワークアドレスが周辺デバイスにストアされているかどうかを判断する。この判断は、図３と図４を参照して下述するように、いく通りかの方法で行うことができる。ネットワークアドレスが周辺デバイスにストアされていなければ、デバイスドライバおよび/または他のソフトウェアは、従来技術で現在行われているように、ステップ６８で、手作業でロードしなければならない。手作業によるローディングは、CD-ROMやフロッピディスクのような記憶媒体を、該当ドライブに挿入して必要ソフトウェアをロードするか、あるいはインターネットを通してデバイスドライバおよび/または他のソフトウェアを手作業でダウンロードするか、あるいはユーザの介入を必要とする他のプロシージャを実行することによって行われるのが代表的である。手作業によるローディングは、ネットワーク通信がパーソナルコンピュータ２０で利用できないか、あるいはアクティブ状態にない場合にも、必要になることがある。
【００３６】
他方、ネットワークアドレスが周辺デバイスにストアされていれば、オペレーティングシステム３５はステップ７０を実行して、ネットワークアドレスからアクセスされたリモートデバイスからデバイスドライバおよび/または他のソフトウェアのダウンロードを開始する。好ましくは、オペレーティングシステム３５は、ネットワークアドレスを通してリモートデバイスとの通信を確立し、そのあと、以前に取得された周辺デバイス情報をリモートデバイスに渡すようにしている。例えば、オペレーティングシステム３５は、プロダクトIDとファームウェア改訂レベルをリモートサーバに渡すことができるので、リモートサーバは、どのデバイスドライバ、アプリケーションソフトウェア、および/または他のマテリアルをダウンロードするのに相応しいかを、その情報を使用して判断する。デバイスに関する情報を周辺デバイスメーカおよび/または企業のイントラネットサーバに渡すことを利用すると、重複するマテリアルを同じ企業に送信する必要性が少なくなり、さもなければ、同一タイプの複数周辺デバイスのインストールを管理する必要性が少なくなることになる。しかし、好ましくは、マテリアルのダウンローディングは、ハイパテキスト転送プロトコル(hypertext transfer protocol - HTTP)、ファイル転送プロトコル(file transfer protocol - FTP)、または他の通信方式で行われるファイル転送要求によって行われる。
【００３７】
最後に、ネットワークアドレスで参照されたサイトからダウンロードされたデバイスドライバおよび/または他のソフトウェアは、ステップ７２でインストールされる。このインストールは完全に自動化することも、ユーザがインストールフィーチャをカストマイズし、あるいは周辺デバイスまたは関連ソフトウェアのパラメータを選択できるようにする「ウィザード(wizard)」またはセットアッププログラムを使用して行うことも可能である。
【００３８】
次に、ネットワークアドレスが周辺デバイスにストアされているかどうかを判断するステップが実装されている好適実施例について、図３を参照して説明する。上述したように、ステップ６２で列挙を行うとき（図２）、オペレーティングシステム３５（図１）は、いくつかの記述子を周辺デバイスに要求し、その中には、ユニフォームリソースID情報ストリング記述子が含まれている。上述したように、ストリング記述子は、ネットワークアドレス、そのネットワークアドレスを含んでいる別のユニフォームリソースID情報ストリングを指すポインタ、またはネットワークアドレスおよび/または追加URI情報を収めておくことができる。USBストリングは、オペレーティングシステム３５が解釈できる、国際標準であるUNICODE（登録商標）でエンコード（符号化）されている。ユニフォームリソースID情報ストリング記述子および他の記述子は、RAM２５（図１）にデータ８０として格納されている。オペレーティングシステム３５は、ステップ８２で、別々のURIデータエレメントになるようにこれらの記述子を構文解析する。判定ステップ８４では、オペレーティングシステム３５は、値がゼロであるかどうかをチェックするか、あるいは周辺デバイスにネットワークアドレスが用意されていないことを示す他の事前定義値をチェックすることによって、ネットワークアドレスを指すポインタが存在するかどうかを判断する。構文解析した記述子からネットワークアドレスが判明しなかったときは、全体的判断の結果（図２のステップ６６）がステップ８６で "NO" にセットされたあと、インストールプロセスは続けられ、ドライバおよび/または他のソフトウェアがCD-ROMまたはフロッピディスクから従来のように手作業でロードされるか、あるいはインターネットまたは他のネットワーク経由で、手作業でダウンロードすることによってロードされる（図２のステップ６８）。しかるに、ネットワークアドレスが上記方法で判明したときは、全体的判断の結果（図２の判定ステップ６６）はステップ８８で、"YES" にセットされるか、あるいは正に符号化される。その結果、全体的インストールプロセスが続けられ、ネットワーク経由で自動的にロードされることになる（図２のステップ７０）。
【００３９】
0xFFのように、URI情報ストリングで要求される事前定義または予約ストリング記述子インデックスを使用しないで済むようにするために、あるいはUSB標準記述子フォーマットを使用しなくても済むようにするために、図４に示す別の実施形態では、ネットワークアドレスが周辺デバイスにストアされているかどうか、そしてそれがどこにストアされているかを判断するようになっている。標準列挙プロセス期間に、ステップ９０で、オペレーティングシステム３５は、周辺デバイスのメモリに置かれているネットワークアドレスまたはネットワークアドレスを指すポインタを返すように、標準外ベンダ固有デバイス(Vendor Specific Device - VSD)要求を周辺デバイスに対して発行する。VSD要求は、ベンダによって定義され、周辺デバイスによって認識されるコマンドである。USB標準では、ベンダが独自の要求コマンドを定義できるようにする要求コードが予約されている。具体的には、ユニバーサルシリアルバス規格（仕様）改訂版2.0、セクション9.3のテーブル9-2には、"bmRequestType" フィールドのビット5と6を2（バイナリ値では10）の値にセットすると、要求がベンダ要求であると特定されることが規定されている。代表例として、ベンダは周辺デバイスメーカであり、VSD要求は、製造時に使用されるように、あるいはインストール後は、周辺デバイスの通常オペレーション期間にデバイスドライバによって使用されるように、ベンダによって定義されている。このフィーチャによると、周辺デバイスメーカは、周辺デバイスに固有のタスクを実行するように周辺デバイスに指示することができる。しかし、本実施形態では、ユニークなVSD要求は、ネットワークアドレスを得るためにオペレーティングシステム３５によって出される。従って、どの周辺デバイスメーカも、オペレーティングシステム３５に用意されているユニークなコマンドを利用することが可能になっている。前記のUSB規格のセクション9.5によれば、コンフィギュレーション情報から独立しているか、あるいは標準外フォーマットを使用しているベンダ固有記述子が周辺デバイスから戻されるようになっている。
【００４０】
すでに述べたように、さらに別の実施形態では、オペレーティングシステムから出されたネットワークアドレス要求に対して、"bmRequestType" のビット5と6を1の値（バイナリ値では01）にセットすることによって新しいUSB「クラス」を設定するようにしている。どちらの場合も、VSDまたはクラス要求、例えば、GET_NETWORK_ADDRESSを用意することができ、列挙期間に、オペレーティングシステム３５は、この要求を周辺デバイスに対して出すことが可能になっている。この要求を受けて、周辺デバイスはストアされたネットワークアドレスを戻すか、あるいは周辺デバイスのファームウェアメモリ内でネットワークアドレスがストアされているロケーションを指すポインタを戻している。周辺デバイスからネットワークアドレスまたはポインタがオペレーティングシステム３５に戻されると、オペレーティングシステムはネットワークアドレス、またはポインタで指されているロケーション（そこにネットワークアドレスがストアされている）を、ステップ９２で読み取ってメモリに入れる。判定ステップ９４では、オペレーティングシステム３５は、読み取った値がゼロに等しいかどうか、あるいはネットワークアドレスが用意されていないことを示す他の事前定義値に等しいかどうかを判断する。そうであれば、全体的判断の結果（図２のステップ６６）は、ステップ８６で "NO" にセットされる。そうでなければ、全体的判断の反対結果（ステップ６６）は、ステップ８８で "YES" にセットされる。
【００４１】
本発明のもっと詳細な実施形態は図５に示されている。この実施形態では、本発明は、Microsoft社のWINDOWS（登録商標）オペレーティングシステムに組み込まれている。具体的には、USB周辺デバイスのホット接続インストールを受け持つ部分は、オペレーティングシステムに組み込まれている。上述したように、USB周辺デバイスのホット接続機能と後続の列挙は、ユーザがUSBデバイスを、パーソナルコンピュータ２０などのホストコンピューティングデバイスに接続するか、あるいはUSB周辺デバイスが接続されたままでホストコンピューティングデバイスに電源が入れられたとき、アクチベートされる。ステップ１１０と１１２は、これらの代替実施形態を示している。ステップ１１４では、バスドライバ(Bus Driver)プログラムは新しいUSB周辺デバイスを検出し、バスに接続されたデバイスの数が変わったことをプラグアンドプレイマネージャ(Plug-and-Play Manager)プログラムに通知する。ステップ１１６では、プラグアンドプレイマネージャは、デバイス記述子と他のデバイス機能を得るために新周辺デバイスにクエリするI/O要求パケット(I/O request packet - IRQ)を送信することによってそのデバイスを列挙する。詳細な列挙タスクは、プラグアンドプレイマネージャプログラムと協力し合ってバスドライバプログラムによって実行される。バスドライバプログラムは、PCI（peripheral component interconnect - 周辺コンポーネント相互接続）またはPCMCIA（Personal Computer Memory Card International Association - パーソナルコンピュータメモリカード国際協議会)の親バスドライバであるのが代表的である。この列挙プロセスは、プラグアンドプレイマネージャが、そのベンダIDやプロダクトIDのように、周辺デバイスに関する情報を収集する点で、上述したものと類似している。同じく上述したように、この時点で、プラグアンドプレイマネージャは、もし存在すれば、ネットワークアドレスと他のストリング記述子を周辺デバイスから取得する。
【００４２】
この実施形態では、ネットワークアドレスは、インターネットリソースに関するWorld Wide Webコンソーシアム標準に準拠するURIの形態になっている。ネットワークアドレスを特定するURIストリングのほかに、他のサポートURI情報を周辺デバイスから取得することが可能になっている。例えば、ユーザフレンドリな名前やタイトルを取得して表示することも、URIの使用に関してオペレーティングシステム３５に指示するための別の指示を取得することも可能になっている。この追加情報が周辺デバイスにストリング記述子としてストアされていれば、これは事前定義ストリングインデックスとして得ることができる。別の方法として、この追加情報は、上述したように、ClassドライバまたはVSD要求を通して取得することが可能である。また、上述したように、情報ストリングは、直接に取得することも、周辺デバイスのファームウェアメモリ内のロケーションを指すポインタを通して取得することもできる。１つまたは２つ以上のストリング内で別の符号化を行うと、種々タイプの情報を区別することができる。例えば、前向きスラッシュ記号(/)を使用すると、情報のタイプまたはその後に続く文字を情報のタイプとして扱うコマンドを示すことができる。スラッシュT(/T)は、その後に続く文字が、表示されるタイトルまたはテキストであることを示すことができ、スラッシュI(/I)は、オペレーティングシステムに対する指示を示すことができ、スラッシュS(/S)は、URIストリングを示すことができる。従来と同じように、これらタイプのコマンドの１つのあとに続く文字は、引用符で囲まれた実際のストリングにすることも、周辺デバイスのファームウェアメモリ内でストリング文字がストアされている別のアドレスを指すポインタにすることも可能である。
【００４３】
周辺デバイスから周辺デバイスIDと他の追加情報を取得すると、プラグアンドプレイマネージャは、以前にインストールされた周辺デバイスのレジストリを、ステップ１１８で検査する。判定ステップ１２０では、プラグアンドプレイマネージャは、新たに接続された周辺デバイスが以前にインストールされていたかどうかを判断する。そうでなければ、プラグアンドプレイマネージャは、その新デバイスドライバをロードするオペレーションをステップ１２２で実行する。これとは逆に、周辺デバイスが以前にインストールされていれば、プラグアンドプレイマネージャは、インストールされているデバイスドライバをステップ１２４でロードする。この場合も、プレイアンドプレイマネージャは、Device-URIダイナミックリンクライブラリ(dynamic link library - DLL)をステップ１２６で実行することによってURIを使用すれば、そのURIを使用するブラウザや他の機能を使用することができる。
【００４４】
図６は、図５のステップ１２２に示すように、新デバイスドライバをロードするときの詳細を示す図である。最初に、プラグアンドプレイマネージャは、ステップ１３０に示すように、周辺デバイスURIストリング情報も含めて、デバイスIDデータをデバイスのレジストリにセーブする。ステップ１３２では、プラグアンドプレイマネージャはNew-Device DLLを実行し、例えば、インターネット上のURIで特定されたリモートサイトからダウンロードするといった方法で、ネットワークコネクション上のURIからデバイスドライバが取得される。ステップ１３４では、New-Device DLLは、デバイスのレジストリからURIと他のデバイスIDおよび情報をロードする。このステップを実行するために、New-Device DLLは、セットアップアプリケーションプログラムインタフェース(application program interface - API)とコンフィギュレーションマネージャAPI機能をコールする。これらの機能は、新しく接続された周辺デバイス用の可能な限りのデバイスドライバのリストを作るために使用される。このリストは、ホストマシン側にまたはURIにストアされている情報(*.INF)から作られる。判定ステップ１３６では、New-Device DLLは、デバイスURIがレジストリに存在するかどうかを確認する。周辺デバイスにURIが用意されていないときは、ユーザは手作業でインストールを行わなければならない。URIがレジストリにすでに存在していれば、オプションとして、New-Device DLLは、ステップ１３８でそのURIをユーザに表示することができる。さらに、オプションとして、New-Device DLLは、そのURIをアクチベートするかどうかをユーザに選択させるか、あるいは手作業のインストールをそのまま続けさせることもできる。判定ステップ１４０でユーザがURIをアクチベートしたか、あるいはオペレーティングシステムがURIを自動的にアクチベートしたときは、New-Device DLLはステップ１４２でブラウザ機能を実行し、URIがブラウザのアドレスラインにロードされる。ブラウザ機能が得られたURI、例えば、http://www.Microsoft.com/hardware/update/default.htmを使用してリモートサイトにアクセスすると、New-Device DLLはそこからデバイスドライバを取得することができる。
【００４５】
当業者ならば理解されるように、URIはアクティブサーバページ(active server page - ASP)にすることも、他のサーバ側機能にすることも可能である。また、上述したように、ファイル転送プロトコル(FTP)通信を開始するときにURIを使用して、リモートサイトからデバイスドライバを取得することもできる。従って、ステップ１４２では、デバイスドライバファイルをパーソナルコンピュータ２０に転送することも、あるいは*.INFファイルのロケーションを示すだけにしてNew-Device DLLがデバイスドライバを見付けるようにすることも可能であり、これは、オペレーティングシステムから要求されたとき、ユーザがデバイスドライバの更新ロケーションを手作業で入力するときに行われるのと同じである。ステップ１４４では、New-Device DLLは、周辺デバイスのインストールを行い、ダウンロードまたは見付けられたデバイスドライバが選択可能デバイスドライバのリストに組み入れられる。最良デバイスドライバが選択され、パーソナルコンピュータ２０にインストールされると、プラグアンドプレイマネージャは、ステップ１４６でそのデバイスドライバをメモリにロードするので、周辺デバイスの使用が可能になる。
【００４６】
図７に示すように、URIを使用すると、URIに置かれたアプリケーションプログラムをアクチベートし、URIに置かれたWebページを表示し、あるいはURIに用意されている追加情報やサービスを得ることもできる。そのために、プラグアンドプレイマネージャは、URIがレジスタに存在するかどうかを判定ステップ１５０で確かめる。存在しなければ、追加情報やサービスがないので、得ることができない。URIが存在すれば、URIをアクチベートすることを求めるプロプトがユーザに出されるのを禁止するように、フラグがセットされていたかどうかが判定ステップ１５２で判断される。このフィーチャは、例えば、広告がURIから表示されるのをユーザが望んでいない場合に使用すると、便利である。「再要求しない(don't ask again)」オプションが以前に選択され、ブラウザ機能のチェックボックスのエントリが、リモートサイトに置かれたWebページを表示していれば、URIをもつブラウザ機能をアクチベートすることを求めるプロプトは、ユーザに出されないことになる。別の方法は、URIをもつブラウザ機能をアクチベートすることを求めるプロプトをユーザに出すのを禁止し、URIをもつブラウザ機能を自動的にアクチベートするだけにすることである。しかし、好ましい方法は、URIをもつブラウザ機能をアクチベートするオプションをユーザに与えることである。
【００４７】
「再要求しない」フラグが偽であれば、つまり、チェックボックスがユーザによって以前に選択されていなければ、プラグアンドプレイマネージャは、ステップ１５４でDevice-URI DLLを実行する。ステップ１５６では、Device-URI DLLは、周辺デバイスにURIがあることをユーザに通知し、そのURIをアクチベートしたいのかどうかを求めるプロンプトをユーザに出す。そのプロンプトでは、ユーザは、オプションとして、チェックボックスをチェックして、「再要求しない」フラグをセットすることもできる。ユーザがプロンプトに対する応答を送ると、ユーザがチェックボックスをチェックしたかどうかが、判定ステップ１５８で判断される。そうであれば、Device-URI DLLは、ステップ１６０で「再要求しない」フラグを真にセットする。チェックしていなければ、Device-URI DLLは、ステップ１６２で「再要求しない」フラグを偽にセットする。判定ステップ１６４では、Device-URI DLLは、ユーザがURIをアクチベートすることを選択したかどうかを、さらに判断する。選択していなければ、プロセスは完了する。しかし、選択していれば、Device-URI DLLは、ステップ１６６でブラウザ機能をアクチベートし、URIで指定されたネットワークアドレスへナビゲートする。前述したように、URIで表されたサイトには、ブラウザ機能にデバイスドライバを表示させ、広告を表示させ、アプリケーションプログラムのダウンロードとセットアップを開始させ、ヘルプ情報を提供させ、周辺デバイスに関するユーザマニュアルをダウンロードさせ、あるいは他のサービスと情報を提供させるものがある。
【００４８】
図８は、デバイスURIを別の利用の仕方をするために採用されたステップを示す図である。このフィーチャによると、ユーザはクリックすると、いつでもURIをアクチベートできるような形でデバイスURIを表示することができる。ステップ１７０では、ユーザは、Microsoft社のWINDOWS（登録商標）オペレーティングシステムのコントロールパネルから選択できるデバイスマネージャ(Device Manager)プログラムを実行する。このデバイスマネージャは、システムに接続されたすべてのハードウェアデバイスのリストを表示し、その中には、URIを収めている周辺デバイスが含まれている。ユーザは、ステップ１７２で周辺デバイスを表すアイコンをクリックし、その周辺デバイスのプロパティを表示することを選択する。ステップ１７４では、デバイスマネージャは、デバイスプロパティシートの表示を開始し、選択した周辺デバイスに関係する種々のプロパティページへは、タブで移るようになっている。判定ステップ１７６では、デバイスマネージャはデバイスのレジストリからデバイスURIストリングを探し出す。選択した周辺デバイスのレジストリにURIストリングがあれば、デバイスマネージャはURIプロパティページを呼び出し、そこには、URIストリングをクリックすると、URIで指定されたネットワークアドレスとの通信がアクチベートされるようなフォーマットで、デバイスURIストリング（１つまたは複数）が表示されている。好ましくは、ステップ１７８では、このオペレーションは、ブラウザ機能を実行し、URIで指定されたロケーションまたはWebページへナビゲートすることによって行われる。URIがアクチベートされると（またはURIストリングがレジストリになければ）、デバイスマネージャはステップ１８０を実行し、標準周辺プロパティページを作成する。
【００４９】
図９を参照して説明すると、図には、特殊目的コンピューティングデバイスに関係する、本発明の別の応用が示されている。このコンピューティングデバイスはパーソナルビークルアシスタント(personal vehicle assistant - PVA)２２０になっている。PVAは、いくつかの点でパーソナルデータアシスタント(personal data assistant - PDA)に類似している。しかし、PVAは、自動車のような車両で使用するのに最適化されている。マイクロプロセッサは、最新車両のオペレーションでますます重要な役割を果たし、車両、その照明システム、エンターテイメントシステムのオペレーションを制御するために使用され、最近では、緊急アシスタンスとナビゲーション機能を提供するのに使用されている。ドライバのドライビング時間がより安全に、より生産的に、より楽しいものになるかは、車両に搭載されたこれらの高度なフィーチャにかかっている。現在市販されている車両および開発中の車両の設計には、ディスプレイスクリーン、スピーカ、セルラ電話に結合されたリモートマイクロホン、デジタルナビゲーションマップのドライブ、およびWebアクセスといったような、エレクトロニックフィーチャが組み込まれている。車両では、各周辺デバイス用の個々のワイヤを配線する必要があるため、各周辺デバイスをPVAに接続する費用がかなりの部分を占めている。この問題を解消するために、周辺バスが使用され、多数の周辺デバイスが一組のワイヤ上でPVAと通信すること（および相互に通信すること）を可能にしている。
【００５０】
当業者ならば理解されるように、図９に示す実施例は、本発明が、パーソナルコンピュータおよび従来からパーソナルコンピュータと関連付けられている周辺デバイス以外にも、多数のタイプのコンピューティングデバイスと周辺デバイスに応用可能であることを示しているにすぎない。本発明は、工業用プログラマブルロジックコントローラ、ビルディング管理コンピュータ、フライトコントロールコンピュータ、および、ほとんどどのタイプの周辺デバイスともやりとりする他のインテリジェントデバイスといった、他の分野における特殊目的コンピューティングデバイスにも応用可能であることは、もちろんである。
【００５１】
PVA ２２０は、処理ユニット２２１、システムメモリ２２２、システムバス２２３、ストレージデバイスインタフェース２３２、バスインタフェース２４６、およびネットワークインタフェース２５３を装備している。ビデオアダプタ、プリンタインタフェースなどの他のコンポーネントを、オプションとしてPVA ２２０に装備させることも可能であるが、これらは、図面を簡単にするため示されていない。システムバスは、システムメモリを含む種々のシステムコンポーネントを処理ユニット２２１に結合しており、従来タイプのバス構造とアーキテクチャの１つまたはいくつかで構成することが可能であり、その中には、メモリバスやメモリコントローラ、周辺バス、およびローカルバスが含まれている。
【００５２】
システムメモリとしては、ROM ２２４とRAM ２２５がある。BIOS ２２６は、PVA ２２０内のコンポーネント間で情報を転送するために使用される基本ルーチンで構成され、ROM ２２４に格納されている。PVA ２２０は、さらに、ストレージデバイス２２７とのインタフェースとなって、永続的または取り外し可能媒体との間で読み書きを行うようにしている。ストレージデバイス２２７は、ストレージデバイスインタフェース２３２を介してシステムバス２２３に接続されている。ストレージデバイスとその関連マシン読取可能媒体は、PVA ２２０用のマシン命令、データ構造、プログラムモジュール、および他のデータをストアしている。当業者ならば理解されるように、プロセッサがアクセスできるデータをストアするために、多種類のマシン読取可能媒体が使用可能であり、そのようなものとしては、フロッピディスク、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、RAM、ROMなどがある。いくつかのプログラムモジュールは、マシン読取可能媒体に格納しておくことが可能であり、その中には、オペレーティングシステム２３５（ブラウザ機能を含む）、１つまたは２つ以上のアプリケーションプログラム（セットアッププログラムなど）、他のプログラムモジュール２３７、およびプログラムデータ２３８が含まれている。
【００５３】
PVA ２２０は、バスインタフェース２４６と周辺バス２５２を介して周辺デバイスと通信する。周辺バス２５２は、IEEE 1394バス、ISO 11898バス（例えば、Bosch社のController Area Network）、または他のタイプのバスにすることができる。当業者ならば理解されるように、本発明を採用できる他の分野には、他にも多数の周辺バスが存在している。例えば、工業製造分野では、EN 50170バス（例えば、Profibus）、スマート周辺デバイス用のISA SP50バス（例えば、Fieldbus Foundationバス）が使用され、航空宇宙分野では、ライン交換可能ユニット用のARINC（登録商標）バスが使用されている。応用分野によっては、システムバス２２３を拡張するだけで済む場合もある。
【００５４】
なお、従来技術のオペレーティングシステムでは、新たに接続された周辺デバイスで使用できるデバイスドライバを探し出すために、特定のディレクトリを指定することが普通になっている。これに対して、本発明では、オペレーティングシステムは、デバイスドライバが置かれているロケーションを周辺デバイスから取得することが要件になっている。言い換えれば、周辺デバイスに用意されているロケーションまたはアドレスから、周辺デバイスに関係する情報、例えば、周辺デバイス用のデバイスドライバが見つかるようにしている。本発明の使い方を示している図９の実施形態では、これと同じ新規機能が実装されている。
【００５５】
図９に示す周辺バス２５２には、デジタルセル電話２３３とGPS（global positioning system - 全地球測位システム)２３４が接続されている。周辺バス２５２に接続される周辺デバイスの代表例として、他にも、コンパクトディスクプレイヤ、デジタルビデオディスクプレイヤなどのように、現在自動車に内蔵されている周辺デバイスがある。デバイスドライバや他のマテリアルが周辺バス２５２に接続されているとき、これらに直接アクセスすることを可能にする追加ソース２４９を設けることも可能である。周辺デバイスを新たに接続することは、初期製造時にも、サービスステーションでの保守時にも、車両が使用状態に置かれた後の他の時期にも行うことができる。
【００５６】
その概要を上述したように、周辺バス２５２に接続される各周辺デバイスは周辺ノード２５６であり、情報を収めておくファームウェアメモリ２５８を装備している。ファームウェアメモリ２５８としては、EPROM、フラッシュメモリ、磁気ストレージ、あるいは他のタイプのメモリがある。ファームウェアメモリ２５８は、周辺デバイス２５６に関係するベンダID、プロダクトID、および/または他の情報をストアしている。そのほかに、ファームウェアメモリにストアされるものとして、周辺ノード用のドライバおよび周辺ノードに関係する他のマテリアルを、そこからアクセスし、および/またはダウンロードできるロケーションを示しているURIまたは他のタイプのアドレスもある。
【００５７】
従来と同じように、周辺ノードのファームウェアメモリにストアされるURIまたはアドレスは、そこから追加ソース２４９にアクセスできるロケーションを指定することができる。追加ソース２４９としては、別のPVA、外部サーバ（これはパーソナルコンピュータ２０と同等機能を備えているのが普通である）、ルータ、ネットワークパーソナルコンピュータ、ピア周辺デバイス、衛星、あるいは別のネットワークノードがある。
【００５８】
パーソナルコンピュータ２０と同じように、PVA ２２０は、ネットワークインタフェース２５３とネットワーク２５１を介した１つまたは２つ以上のデバイスとの論理コネクションを使用するネットワーキング環境で動作する。ネットワーク２５１はモバイル通信用のワイヤレス（無線）ネットワークにすることも、製造サイト、サービスステーション、フリートステーション、または居住地での通信用のワイヤド（有線）ネットワークにすることも可能である。ワイヤレスであるか、ワイヤドであるかに関係なく、ネットワーク２５１は広域ネットワーク(wide area network - WAN)、ローカルエリアネットワーク(local area network - LAN)、または他のタイプの通信ネットワークにすることができる。このようなネットワーキング環境は、デジタルセルラ電話、GPS（global positioning system - 全地球測位システム）、緊急ロードサイドアシスタンスシステム(emergency roadside assistance system)、シッピングフリート通信、およびインターネット用として広く使用されている。ネットワーク２５１を利用すると、PVA ２２０は、追加ソース２４９のような、リモートソースと通信することができる。以上から理解されるように、図示のネットワークコネクションは例示であり、従来のモデムのように、通信リンクを確立する他の手段を使用することが可能である。
【００５９】
追加ソース２４９から周辺ノード２５６に関係する情報にアクセスすることは、USB実施形態に関して上述したのとまったく同じ方法で行われる。しかし、列挙および周辺ノード２５６との通信は、介在する周辺バス２５２を通して行われるので、処理ユニット２２１と周辺デバイス２５６の間に共用通信層を追加するだけで済むことになる。
【００６０】
新しい周辺ノードが周辺バス２５２に接続されたとき、オペレーティングシステム２５３は、USB実施形態に関して概要を上述したように、その新ノードを列挙する。しかし、新しい周辺ノードが周辺バス２５２に接続されたときは、バスインタフェース２４６は、最初に、その新周辺ノード用の周辺バスアドレスを設定しなければならない。USB実施形態では、新デバイスが接続されるUSBポートについては、アドレスが分かっている。これに対して、周辺バスがPVA上のポートに接続されているだけである。従って、新ノードの列挙を可能にするには、各周辺ノード用の介在バスアドレスがその前に設定されていなければならない。上述したように、このステップは、採用されている特定周辺バスに適用可能な周知標準に準拠して行われる。
【００６１】
例えば、新しいノードがIEEE 1394周辺バスに接続されるときは、バスは自身を完全にリセットし、周辺ノードのすべてが相互間で通信し合って、バスに接続された各周辺ノード用の新バスアドレスを判断している。バスアドレスは、ゼロからn-1までの桁数になっており、ここでnは周辺ノードの数である。そのあと、PVA ２２０は、周辺バス上の各周辺ノードを列挙し、その中には、周辺ノード２５６が含まれている。各周辺ノードは、USBにおけるデバイス記述子に類似したバス情報ブロックを収めている。バス情報ブロックの3番目と4番目のクワッドレット(quadlet)はグローバルにユニークなデバイスIDを収めている。
【００６２】
バス情報ブロックの外側のテキスト記述子は、URIをストリングとしてストアしている、ファームウェアメモリ２５８内の別のロケーションに置かれているリーフ(leaf)をポイントすることもできる。このテキスト記述子は、列挙時にも、列挙後にも取得することができる。ネットワークが周辺ノード２５６から取得されると、周辺ノードに関係するネットワークアドレスと情報にアクセスするときの残りの方法ステップは、上述したUSB実施形態で実装されているステップとほぼ類似している。
【００６３】
以上、本発明の好ましい実施形態とその変形実施形態に関して本発明を説明してきたが、当業者ならば理解されるように、請求項に記載されている本発明の範囲を逸脱しない限り、本発明は種々態様に変更することが可能である。従って、本発明の範囲は、いかなる態様においても、上述した説明によって限定されるものではなく、その全体は請求項の記載に従って判断されるものである。
【図面の簡単な説明】
【図１】本発明を実現するのに適しているパーソナルコンピュータ(personal computer - PC)の例を示す概略ブロック図である。
【図２】本発明の好適実施形態に実装されているロジックを示すフローチャートである。
【図３】周辺デバイスは、そのネットワークアドレスが標準外デバイス記述子のフィールドとしてストアされているかどうかを判断する実施形態のロジックを示すフローチャートである。
【図４】周辺デバイスは、そのネットワークアドレスインデックスがストアされているかどうかを、ベンダ固有デバイス(Vendor-Specific Device - VSD)要求を出すことによって判断する実施形態のロジックを示すフローチャートである。
【図５】ユニフォームリソース識別子(uniform resource identifier - URI)を使用して周辺デバイスをインストールし、および/または機能をアクチベートするために採用されたロジックを示すフローチャートである。
【図６】周辺デバイスに用意されているURIを使用して取得された新デバイスドライバをロードするために採用されたロジックを示すフローチャートである。
【図７】周辺デバイスから取得され、周辺デバイスに関係するURIを使用してブラウザ機能を選択的にアクチベートするために採用されたロジックを示すフローチャートである。
【図８】ユーザによって選択的に表示され、アクチベートされる周辺デバイスURIプロパティタグを作成するために採用されたロジックを示すフローチャートである。
【図９】本発明を実現するのに適しているパーソナルビークルアシスタント(personal vehicle assistant - PVA)システムの例を示す概略ブロック図である。
【符号の説明】
２０  ホストコンピュータ
２２  メモリ
３５  オペレーティングシステム
４６  I/Oデバイスインタフェース
【図１】
0004373639.tif 000002
【図２】
0004373639.tif 000003
【図３】
0004373639.tif 000004
【図４】
0004373639.tif 000005
【図５】
0004373639.tif 000006
【図６】
0004373639.tif 000007
【図７】
0004373639.tif 000008
【図８】
0004373639.tif 000009
【図９】
0004373639.tif 000010