(57)【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを含んで構成されるデータ処理システムにおいて、
前記プロセッサに接続された、実際には第１の入出力装置でない可能性がある周辺装置を第１の入出力装置として、該プロセッサが認識するステップと、
該プロセッサが、選択された前記第１の入出力装置内に含まれる実行可能ファイルを実行することにより、前記メモリにエージェントをロードするステップと、
前記エージェントを実行することにより、前記プロセッサが前記周辺装置をそれ自体として再認識するステップと、を含む方法。
【請求項２】
前記周辺装置がユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、請求項１に記載の方法。
【請求項３】
前記認識するステップは、前記周辺装置が実際の大容量記憶装置ではないが、該周辺装置を大容量記憶装置として前記プロセッサが認識するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記プロセッサが、前記エージェント内に含まれるかまたは前記エージェントによって呼び出されるアプレットを使用してウェブ・サイトにアクセスするステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記ウェブ・サイトから前記アプレットを立ち上げるステップであって、前記ウェブ・サイトからの前記アプレットが前記周辺装置に関する動作を実行するために動作可能であるステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記ウェブ・サイトからの前記アプレットが前記周辺装置を診断するために動作可能である、請求項５に記載の方法。
【請求項７】
前記ウェブ・サイトからの前記アプレットが前記周辺装置の機能性を使用可能にするか、更新するか、または拡張するために動作可能である、請求項５に記載の方法。
【請求項８】
前記ウェブ・サイトからの前記アプレットが前記周辺装置を保守するために動作可能である、請求項５に記載の方法。
【請求項９】
請求項１に記載の方法を実現するデータ処理システムにて使用されるエージェントおよびコードを記憶した記憶装置を有する周辺装置。
【請求項１０】
前記コードは、前記データ処理システムのメモリに前記エージェントをロードするように実行可能なファイルを含む、請求項９に記載の周辺装置。
【請求項１１】
ユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、請求項１０に記載の周辺装置。
【請求項１２】
前記エージェント内に含まれるアプレットを使用してウェブ・サイトにアクセスするために動作可能なコードをさらに含む、請求項１１に記載の周辺装置。
【請求項１３】
プロセッサと、
バス・システムにより前記プロセッサに接続されたメモリと、
前記バス・システムにより前記プロセッサに接続された周辺装置と、を含んで構成されるデータ処理システムであって、
実際の大容量記憶装置ではない前記周辺装置を大容量記憶装置として認識する手段と、
前記大容量記憶装置として認識された前記周辺装置を選択する手段と、
前記周辺装置に含まれる実行可能ファイルを実行することにより前記メモリにエージェントをロードする手段と、
前記エージェントが前記周辺装置をそれ自体として再認識する手段と、を備えたデータ処理システム。
【請求項１４】
前記周辺装置がユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、請求項１３に記載のデータ処理システム。
【請求項１５】
前記エージェント内に含まれるアプレットを使用してウェブ・サイトにアクセスするための手段をさらに含む、請求項１３に記載のデータ処理システム。
【請求項１６】
前記ウェブ・サイトから前記アプレットを立ち上げるための手段であって、
前記ウェブ・サイトからの前記アプレットが前記データ処理システムに接続された前記周辺装置に関する動作を実行するために動作可能である手段をさらに含む、請求項１５に記載のデータ処理システム。
【請求項１７】
前記ウェブ・サイトからの前記アプレットが前記周辺装置を使用可能にし、診断するために動作可能である、請求項１６に記載のデータ処理システム。
【請求項１８】
前記ウェブ・サイトからの前記アプレットが前記周辺装置の機能性を使用可能にするか、更新するか、または拡張するために動作可能である、請求項１６に記載のデータ処理システム。
【請求項１９】
前記ウェブ・サイトからの前記アプレットが前記周辺装置を保守するために動作可能である、請求項１６に記載のデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にデータ処理システムに関し、特にＵＳＢ装置に結合するために適合可能なデータ処理システムに関する。
【０００２】
【従来の技術】
過去数年間に民間製造業者の協会は、多数の周辺装置を１台のパーソナル・コンピュータに同時にリンクするための汎用規格および方法を作成した。この規格はユニバーサル・シリアル・バス（ＵＳＢ）という。ＵＳＢは、比較的単純なケーブルにより広範囲の装置または周辺装置に相互接続する能力をパーソナル・コンピュータに提供する通信アーキテクチャまたは「バス」である。ケーブル接続した周辺装置は、ホストがスケジューリングしたブール・ベース・プロトコルによりＵＳＢ帯域幅を共用する。このバスにより、ホストおよびその他の周辺装置が動作中の間に周辺装置の接続、構成、使用、切離しを行うことができる。ＵＳＢは、事前に専用インタフェースに接続され、直接ハードウェア方式によってアクセスされた周辺装置の交換を可能にする。
【０００３】
入出力（Ｉ／Ｏ）装置は、インストールまたはセットアップ・データ、診断プログラム、ドライバ、チュートリアル、「readme」ファイル、その他の情報を含むディスケットとともに出荷される場合が多い。このようなディスケットは、置き場所を間違えたり、必要なときに使用不能であることがよくある。
【０００４】
【発明が解決しようとする課題】
ＵＳＢ装置に関しては、本発明によりこのようなディスケットが不要になり、機能性が追加される。
【０００５】
【課題を解決するための手段】
本発明は上記の必要性に対処するものである。電源投入後、ＵＳＢ装置は、実際には「大容量記憶装置」（通常はハード・ファイル、ＣＤ−ＲＯＭ、またはフロッピー・ドライブである）ではない場合でも「大容量記憶装置」として列挙される。オペレーティング・システム（ＯＳ）非依存の（たとえば、Ｊａｖａで作成された）ＵＳＢ装置エージェントは、実行可能ファイル（．ｅｘｅ）の形でＵＳＢ装置のＲＯＭまたはＥＰＲＯＭに含まれることになる。装置が最初に「大容量記憶装置」として列挙された後、ユーザはＷｉｎｄｏｗｓのエクスプローラまたはＤＯＳのウィンドウ（または同等のもの）に移行し、その「大容量記憶装置」（ｊ：またはｋ：などの文字が示す）を選択し、エージェントを含む適切な．ｅｘｅファイルを実行することを求められることになる。次にエージェントは、それ自体をホストのハード・ファイル上にインストールすることになり、その後、互換性のある他のＵＳＢ装置とともに機能することができる。エージェント・ソフトウェアは、１回だけロードすればよい。
【０００６】
装置エージェントは、互換性のあるＵＳＢ装置が列挙された場合を検出し、次いで装置依存情報を求めて装置に照会することになる。この情報は、その装置をサポートするためにどの種類の情報およびソフトウェアが使用可能であるかと、その情報をどこで入手できるかを含むことになる。
【０００７】
あるいは、ＵＳＢ装置は、追加のドライバの必要性なしにホストにデータを入力でき、オペレーティング・システムによって認識可能な装置として列挙することができる。
【０００８】
上記の説明では、以下に示す本発明の詳細説明をよりよく理解できるように、本発明の特徴および技術的利点をかなり広く概説した。本発明の特許請求の範囲の主題を形成する本発明の追加の特徴および利点については、以下に説明する。
【０００９】
本発明およびその利点をより完全に理解するために、添付図面に関連して示す以下の説明を参照する。
【００１０】
【発明の実施の形態】
以下の説明では、本発明を徹底的に理解するために、具体的なワードまたはバイト長など、多数の具体的な詳細を示す。しかし、本発明はこのような具体的な詳細なしでも実施可能であることは、当業者には明白になるだろう。その他の事例では、不必要な詳細で本発明を不明確にしないために、周知の回路をブロック図形式で示した。タイミングの考慮事項などに関する詳細は、大部分は、このような詳細が本発明の完全な理解を得るために不要であり、当業者の技能の範囲内であるので、省略されている。
【００１１】
次に添付図面を参照すると、図示の要素は必ずしも一定の縮尺で示されておらず、類似または同様の要素は複数の図にわたって同じ参照番号で示されている。
【００１２】
図１を参照すると、ＵＳＢ装置１０１は通常、読取り専用メモリ（ＲＯＭ）またはフラッシュＥＰＲＯＭ（電子的にプログラム可能な読取り専用メモリ）などの何らかのタイプの記憶装置を有する。本発明の一実施形態では、このようなメモリ装置はＪａｖａベースのソフトウェア・プログラムを記憶するための十分なメモリ容量を有することになり、そのプログラムは、Ｗｉｎｄｏｗｓおよびその他のほとんどのオペレーティング・システムとともに含まれるＪａｖａ仮想計算機（ＪＶＭ）と、ネットスケープ・ナビゲータを利用することができるだろう。未使用のＥＰＲＯＭ空間は、特定のＩ／Ｏ装置に関連して顧客が使用できる１つまたは複数のプログラムを記憶するために使用することができるだろう。本開示では、このようなプログラムの１つ、すなわち「エージェント」がＵＳＢ装置１０１からホスト１０３にどのようにアップロードされるかを説明する。このエージェントはホスト１０３とともに機能し、ホストはその他のＵＳＢ装置固有プログラムとの人間の対話に必要なディスプレイ、キーボード、マウスなどを提供することになる。装置エージェントは、ＵＳＢ装置固有情報またはソフトウェアあるいはその両方をホストのハード・ファイルに記憶することができ、（任意選択で）ホストのディスプレイ・デスクトップ上にアイコンを作成することもできるだろう。ユーザは、拡張機能を後で再利用することができる。
【００１３】
基本的な考え方は、ＯＳ非依存Ｊａｖａエージェントがホスト１０３にロードされると、そのエージェントはカストマイズ・クラス・ローダを使用し、そのローダが装置１０１（ＵＳＢ記憶装置として現れる）から対話（診断など）クラスをロードするということになる。これらのクラス・ファイル（Ｊａｖａ実行可能ビット・コード）は、ＵＳＢ装置１０１との対話方法をそのエージェントに説明することになる。ＵＳＢ装置１０１との対話後、エージェントは通常使用のために再列挙するよう装置に命令することになる。その後、エージェントは、互換性のあるＵＳＢ装置が大容量記憶装置として列挙された場合を検出し、（適宜）それが実際にそうであるものとして再列挙するようその装置に命令することになる。このようなエージェントは、ＵＳＢＪａｖａＡＰＩ（アプリケーション・プログラミング・インタフェース）と、ＵＳＢ装置１０１へのＪａｖａアクセスを可能にする何らかの固有コードとを使用することになる。
【００１４】
ＵＳＢ装置は、ホストに接続されたときに、それが何であるかをホストに通知する。ＵＳＢ装置はそれがどのように動作することになっているかを把握している限り、ＵＳＢ装置は他の何かであるふりをし、すなわち、それが実際にそうであるもの以外の装置として列挙することができる。
【００１５】
もう一度、図１を参照すると、ＵＳＢ装置１０１は、ホスト・コンピュータ１０３に結合されたＨＵＢ１０２に接続されている。ステップ１１１でＵＳＢ装置１０１は大容量記憶装置として列挙される。ただし、装置１０１は追加のドライバの必要性なしにデータを入力でき、オペレーティング・システムによって認識可能な装置として列挙することができる。以下、このような装置は「列挙済み入力装置」ともいうことができる。
【００１６】
ステップ１１２では、エージェント・プログラムがすでにホスト・コンピュータ１０３にロードされているかどうかの判定を行う。ｙｅｓの場合、ステップ１１４では、列挙後にオペレーティング・システムによってロードされたエージェントによって装置１０１内の実行可能プログラムが立ち上げられる。しかし、エージェントがホスト１０３にまだロードされていない場合、ユーザはステップ１１３で、オペレーティング・システムのファイル・エクスプローラに移行し、列挙によって作成された大容量記憶装置用のセットアップ・ファイルをクリックしなければならないか（ＤＯＳコマンドも使用することができる）、またはホスト・コンピュータ１０３に記憶するためにインターネットからエージェントをダウンロードしなければならない。ステップ１２０では、所望の機能を提供するためにそのエージェントがインターネットからアプレットをダウンロードする必要があるかどうかを判定する。その必要がある場合、ステップ１１５が実行される。その必要がない場合、ステップ１２１でプロセスは、追加のアプレットなしでそれが実行できる機能を実行する。その後、エージェントはステップ１２９で完了する。
【００１７】
ステップ１１５では、ネットワーク・ブラウズが使用可能になっているかどうかの判定を行う。ネットワーク・ブラウズが使用可能になっているかどうかを判定する方法は２通りある。１つの方法は、システムがシステム・レジストリを見回って、ブラウザ（すなわち、マイクロソフトのインターネット・エクスプローラ（ＩＥ）またはネットスケープ・ナビゲータ）用の項目が存在するかどうかを確認し、ブラウザの立上げを試みることである。それが失敗するかまたはレジストリ内の項目が見つからない場合、ネットワーク・ブラウズは使用不能にしなければならない。ただし、マイクロソフトはそのオペレーティング・システムとＩＥをバンドルしているので、そのブラウザは必ず存在する。第２の方法は、ほとんどのオペレーティング・システムおよびシステム・ミドルウェア（すなわち、Ｊａｖａ）には、「部外者」がプログラム式かつ動的に照会または通信するために構成要素がインタフェースを公開できるという概念が存在することである。たとえば、マイクロソフトのインターネット・エクスプローラはＣＯＭおよびＣＯＭ＋インタフェースを公開し、それによりプログラマはインターネット・エクスプローラの機能性をそれぞれのプログラムに組み込むかまたはインターネット・エクスプローラを（マイクロソフトのＷｉｎ３２／ＣＯＭ  ＡＰＩにより）直接立ち上げるかあるいはその両方を行うことができる。このインタフェースは、ネットワーク・ブラウズが使用可能になっている場合にプログラムの検出を可能にするプロパティも公開する。ただし、ロータス・ノーツと、マイクロソフトのマネー９９および２０００はいずれもＩＥのＣＯＭインタフェースを使用するアプリケーションの例である。他のオペレーティング・システムは同様の手法を有するが、ＣＯＲＢＡ、ＪａｖａＢｅａｎｓ（ＨｏｔＪａｖａネットワーク・ブラウザ）など、他のオブジェクト通信ミドルウェアを使用する。
【００１８】
ブラウズが使用可能になっていない場合、ステップ１１６で、このようなブラウズが使用可能になっていないという適切なメッセージがユーザに示される。しかし、ネットワーク・ブラウズが使用可能になっている場合、ステップ１１７でプロセスは、システム・レジストリを介してブラウザの外部インタフェースにアクセスし、ブラウザを立ち上げ、その装置用のデフォルト・ウェブ・サイトを伝える。これは、ネットワーク・ブラウズが使用可能であるかどうかを判定するための第２のオプションで上記と同様に実施することができる。公開された機能性の一部は、特定のサイトに移行するようブラウザに動的に命令するためのインタフェースである。このウェブ・サイトは訪れたときに立ち上げられる実行可能アプレットを含むことになり、これは装置１０１の機能性の診断、更新、保守、または拡張を行うことができる。
【００１９】
以下に記載する機能を提供することに加え、エージェント・プログラムは、互換性のあるＵＳＢ装置が大容量記憶装置として列挙された場合を感知することになる。その場合、エージェントは、最近列挙された互換性のある「大容量記憶装置」にコマンドを送ることになる。エージェントのコマンドにより、ＵＳＢ装置はＵＳＢから切り離され、それが実際にそうであるものとして再列挙されることになる。これについては図２に示すが、同図のステップ２０１では新しいＵＳＢ装置が差し込まれ、すべての登録済みエージェントに関するオペレーティング・システム・イベント通知が行われる。その後、ステップ２０２では、新しいＵＳＢ装置が差し込まれたときに通知を受けるためにそのエージェントがオペレーティング・システムに登録されているかどうかの判定を行う。登録されていない場合、ステップ２０３では、エージェントは何も行わない。しかし、ステップ２０２で回答が肯定の場合、プロセスはステップ２０４に移行する。ステップ２０４では、新しい装置が「大容量記憶装置」であるかどうかの判定を行う。この場合も、代わりに入力が可能な装置であればどのような装置でも十分だろう。ホストまたはホスト内のエージェントは、列挙中に装置がホストに提供する記述子を調べることにより、新たに列挙した装置の特性を決定することができる。ＵＳＢにより列挙するＵＳＢ装置の標準プロセスは、標準のＵＳＢホスト・システムに精通したプログラマ間で共通の知識である。新しい装置が「大容量記憶装置」として列挙された場合、ステップ２０７で、新しい装置がエージェントと互換性があるかどうかの判定を行う。言い換えれば、新しい装置がエージェントのコマンドに応答して、それが実際にそうであるものとして再列挙することになるかどうかである。互換性がない場合、プロセスはステップ２０６に移行し、そこで新しい装置が大容量記憶装置ではないものとして指定され、そのプロセスで何も実行されない。ステップ２０７で新しい装置がエージェントと互換性がある場合、プロセスはステップ２０８に移行し、そこでエージェントはアプレット（ある場合）を実行し、それが実際にそうであるものとして再列挙するよう装置に命令する。
【００２０】
上記の一部を言い換えると、装置エージェントは、互換性のあるＵＳＢ装置が列挙された場合を検出し、装置依存情報を求めて装置に照会することになるだろう。この情報は、その装置をサポートするためにどの種類の情報およびソフトウェアが使用可能であるかと、その情報をどこで入手できるかを含むことになる。情報自体を提供することに加え、装置は、追加情報を提供するウェブのＵＲＬを提供することができるだろう。
【００２１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００２２】
（１）データ処理システムにおいて、
周辺装置をプロセッサに結合するステップと、
第１の列挙済み入力装置として周辺装置を列挙するステップであって、周辺装置が実際にはその列挙によって表される入力装置ではない可能性があるステップと、
第１の列挙済み入力装置を選択するステップと、
第１の列挙済み入力装置内に含まれる実行可能ファイルを実行するステップであって、その結果、プロセッサに結合されたデータ処理システムのメモリにエージェントがロードされるステップと、
周辺装置がそれ自体として列挙されるようにエージェントによって周辺装置を再列挙するステップとを含む方法。
（２）周辺装置がユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、上記（１）に記載の方法。
（３）列挙するステップが、大容量記憶装置として周辺装置を列挙するステップをさらに含み、周辺装置が実際の大容量記憶装置ではない、上記（１）に記載の方法。
（４）エージェント内に含まれるかまたはエージェントによって呼び出されるアプレットを使用してウェブ・サイトにアクセスするステップをさらに含む、上記（１）に記載の方法。
（５）ウェブ・サイトからアプレットを立ち上げるステップであって、ウェブ・サイトからのアプレットが周辺装置に関する動作を実行するために動作可能であるステップをさらに含む、上記（４）に記載の方法。
（６）ウェブ・サイトからのアプレットが周辺装置を診断するために動作可能である、上記（５）に記載の方法。
（７）ウェブ・サイトからのアプレットが周辺装置の機能性を使用可能にするか、更新するか、または拡張するために動作可能である、上記（５）に記載の方法。
（８）ウェブ・サイトからのアプレットが周辺装置を保守するために動作可能である、上記（５）に記載の方法。
（９）データ処理システムに結合するために適合可能な周辺装置と、
周辺装置がデータ処理システムに結合されたときに周辺装置が第１の列挙済み入力装置として列挙されるようにするために動作可能なエージェントおよびコードを含む記憶装置とを含むＵＳＢ装置。
（１０）コードが実行可能ファイルも含み、その結果、データ処理システムに結合されたメモリにエージェントがロードされ、
周辺装置がそれ自体として列挙されるようにエージェントによって周辺装置を再列挙するためにエージェントが動作可能である、上記（９）に記載のＵＳＢ装置。
（１１）周辺装置がユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、上記（１０）に記載のＵＳＢ装置。
（１２）エージェント内に含まれるアプレットを使用してウェブ・サイトにアクセスするために動作可能なコードをさらに含む、上記（１１）に記載のＵＳＢ装置。
（１３）プロセッサと、
バス・システムによってプロセッサに結合されるメモリと、
バス・システムによってプロセッサに結合される周辺装置と、
偽の大容量記憶装置として周辺装置を列挙するための回路であって、周辺装置が実際の大容量記憶装置ではない回路と、
偽の大容量記憶装置を選択するための回路と、
偽の大容量記憶装置内に含まれる実行可能ファイルを実行するための回路であって、その結果、プロセッサに結合されたメモリにエージェントがロードされる回路と、
周辺装置がそれ自体として列挙されるようにエージェントによって周辺装置を再列挙するための回路とを含むデータ処理システム。
（１４）周辺装置がユニバーサル・シリアル・バス（「ＵＳＢ」）装置である、上記（１３）に記載のシステム。
（１５）エージェント内に含まれるアプレットを使用してウェブ・サイトにアクセスするための回路をさらに含む、上記（１３）に記載のシステム。
（１６）ウェブ・サイトからアプレットを立ち上げるための回路であって、ウェブ・サイトからのアプレットがデータ処理システムに結合された周辺装置に関する動作を実行するために動作可能である回路をさらに含む、上記（１５）に記載のシステム。
（１７）ウェブ・サイトからのアプレットが周辺装置を使用可能にし、診断するために動作可能である、上記（１６）に記載のシステム。
（１８）ウェブ・サイトからのアプレットが周辺装置の機能性を使用可能にするか、更新するか、または拡張するために動作可能である、上記（１６）に記載のシステム。
（１９）ウェブ・サイトからのアプレットが周辺装置を保守するために動作可能である、上記（１６）に記載のシステム。
【図面の簡単な説明】
【図１】本発明による流れ図である。
【図２】互換性のある他のＵＳＢ装置が大容量記憶装置として列挙された場合を感知するエージェントの流れ図である。
【符号の説明】
１０１  ＵＳＢ装置
１０２  ＨＵＢ
１０３  ホスト
【図１】
0003636080.tif 000002
【図２】
0003636080.tif 000003