(57)【要約】【課題】  コンピュータ間でコンピュータ・データを共有するための方法、装置、およびコンピュータ・プログラムを提供する。【解決手段】  方法は、ユーザにより、第１のコンピュータ上のユーザ・インターフェースを通じて、第２のコンピュータを通じて共有されるファイルシステムの少なくとも１つのオブジェクトを識別するステップと、第１のコンピュータ上の共有ファイルシステム生成器により、共有ファイルシステムを作成するステップと、共有ファイルシステム生成器により、共有されるオブジェクトを共有ファイルシステムにインストールするステップと、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続を通じて共有ファイルシステムから第２のコンピュータに公開するステップを含む。【選択図】図１
2007172586.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ間でコンピュータ・データを共有するための方法であって、
ユーザにより、第１のコンピュータ上のユーザ・インターフェースを通じて、第２のコンピュータを通じて共有されるファイルシステムのオブジェクトを識別するステップと、
前記第１のコンピュータ上の共有ファイルシステム生成器により、共有ファイルシステムを生成するステップと、
前記共有されるオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記共有されるオブジェクトを、前記第１のコンピュータと前記第２のコンピュータとの間のユニバーサル・シリアル・バス接続を通じて前記共有ファイルシステムから第２のコンピュータに公開するステップと、
を含む、方法。
【請求項２】
前記第１のコンピュータ上の共有ファイルシステムにインストールされる共有されるオブジェクトに影響を与えるファイルシステムコマンドを前記第２のコンピュータ上で実行するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記共有されるファイルのために共有ファイルシステムを前記第１のコンピュータ上に生成するステップは、
前記少なくとも１つの共有されるオブジェクトのサイズを決定するステップと、
前記共有ファイルシステムのサイズを、前記少なくとも１つの共有されるオブジェクトのサイズよりも大きいＵＳＢフラッシュ・ドライブのサイズに設定するステップと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、コンピュータ・メモリを前記共有ファイルシステムに割り当てるステップをさらに含み、前記コンピュータ・メモリは、前記ファイルシステムのストレージをエミュレートするように構成される、請求項１に記載の方法。
【請求項５】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、仮想ディスクドライバを第１のコンピュータ上に提供するステップをさらに含み、前記仮想ディスクドライバは、前記第２のコンピュータのオペレーティング・システムを通じて前記第１のコンピュータ上でアクセス可能であり、前記仮想ディスクドライバは、前記ユニバーサル・シリアル・バス接続を通じて前記第２のコンピュータからもアクセス可能である、請求項１に記載の方法。
【請求項６】
ユーザにより、前記第１のコンピュータ上で、第２のコンピュータと共有される少なくとも１つの追加のオブジェクトを識別するステップであって、前記共有ファイルシステムに以前にインストールされたオブジェクトのサイズに追加された前記追加のオブジェクトのサイズが、前記共有ファイルシステムの前記サイズを超えており、
前記共有ファイルシステムにより、前記ユニバーサル・シリアル・バス接続を解除するステップと、
前記共有ファイルシステム生成器により、前記第１のコンピュータ上の前記共有ファイルシステムの前記サイズを拡大するステップと、
前記共有ファイルシステム生成器により、前記追加のオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記ユニバーサル・シリアル・バス接続を再接続するステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
コンピュータ間でコンピュータ・データを共有するための装置であって、前記装置は、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作するように結合されるコンピュータ・メモリとを備え、前記コンピュータ・メモリは、
ユーザにより、第１のコンピュータ上のユーザ・インターフェースを通じて、第２のコンピュータを通じて共有されるファイルシステムの少なくとも１つのオブジェクトを識別するステップと、
前記第１のコンピュータ上の共有ファイルシステム生成器により、共有ファイルシステムを生成するステップと、
前記共有ファイルシステム生成器により、前記共有されるオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記共有されるオブジェクトを、前記第１のコンピュータと前記第２のコンピュータとの間のユニバーサル・シリアル・バス接続を通じて前記共有ファイルシステムから第２のコンピュータに公開するステップと、
を実行させるコンピュータ・プログラムを含む、装置。
【請求項８】
前記第１のコンピュータ上の前記共有ファイルシステムにインストールされる前記共有されるオブジェクトに影響を与えるファイルシステムコマンドを前記第２のコンピュータ上で実行するステップをさらに前記コンピュータ・プログラムが実行させる、請求項７に記載の装置。
【請求項９】
前記共有されるファイルのために共有ファイルシステムを前記第１のコンピュータ上に生成するステップは、
前記少なくとも１つの共有されるオブジェクトのサイズを決定するステップと、
前記共有ファイルシステムのサイズを、前記少なくとも１つの共有されるオブジェクトのサイズよりも大きいＵＳＢフラッシュ・ドライブのサイズに設定するステップと、
をさらに前記コンピュータ・プログラムが実行させる、請求項７に記載の装置。
【請求項１０】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、コンピュータ・メモリを前記共有ファイルシステムに割り当てるステップをさらに含み、前記コンピュータ・メモリは、前記ファイルシステムのストレージをエミュレートするように構成される、請求項７に記載の装置。
【請求項１１】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、仮想ディスクドライバを第１のコンピュータ上に提供するステップをさらに含み、前記仮想ディスクドライバは、前記第２のコンピュータのオペレーティング・システムを通じて前記第１のコンピュータ上でアクセス可能であり、前記仮想ディスクドライバは、前記ユニバーサル・シリアル・バス接続を通じて前記第２のコンピュータからもアクセス可能である、請求項７に記載の装置。
【請求項１２】
ユーザにより、前記第１のコンピュータ上で、第２のコンピュータと共有される少なくとも１つの追加のオブジェクトを識別するステップであって、前記共有ファイルシステムに以前にインストールされたオブジェクトのサイズに追加された前記追加のオブジェクトのサイズが、前記共有ファイルシステムの前記サイズを超えており、
前記共有ファイルシステムにより、前記ユニバーサル・シリアル・バス接続を解除するステップと、
前記共有ファイルシステム生成器により、前記第１のコンピュータ上の前記共有ファイルシステムの前記サイズを拡大するステップと、
前記共有ファイルシステム生成器により、前記追加のオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記ユニバーサル・シリアル・バス接続を再接続するステップと、
をさらに前記コンピュータ・プログラムが実行させる、請求項７に記載の装置。
【請求項１３】
コンピュータ間でコンピュータ・データを共有するためのコンピュータ・プログラムであって、
ユーザにより、第１のコンピュータ上のユーザ・インターフェースを通じて、第２のコンピュータを通じて共有されるファイルシステムの少なくとも１つのオブジェクトを識別するステップと、
前記第１のコンピュータ上の共有ファイルシステム生成器により、共有ファイルシステムを生成するステップと、
前記共有ファイルシステム生成器により、前記共有されるオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記共有されるオブジェクトを、前記第１のコンピュータと前記第２のコンピュータとの間のユニバーサル・シリアル・バス接続を通じて前記共有ファイルシステムから第２のコンピュータに公開するステップと、
を実行させる、コンピュータ・プログラム。
【請求項１４】
前記第１のコンピュータ上の前記共有ファイルシステムにインストールされる前記共有されるオブジェクトに影響を与えるファイルシステムコマンドを前記第２のコンピュータ上で実行するステップをさらに実行させる、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記共有されるファイルのために共有ファイルシステムを前記第１のコンピュータ上に生成するステップは、
前記少なくとも１つの共有されるオブジェクトのサイズを決定するステップと、
前記共有ファイルシステムのサイズを、前記少なくとも１つの共有されるオブジェクトのサイズよりも大きいＵＳＢフラッシュ・ドライブのサイズに設定するステップと、
をさらに含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、コンピュータ・メモリを前記共有ファイルシステムに割り当てるステップをさらに含み、前記コンピュータ・メモリは、前記ファイルシステムのストレージをエミュレートするように構成される、請求項１３に記載のコンピュータ・プログラム。
【請求項１７】
前記第１のコンピュータ上の共有ファイルシステム生成器により、前記共有されるファイルのためにファイルシステムを生成するステップは、仮想ディスクドライバを第１のコンピュータ上に提供するステップをさらに含み、前記仮想ディスクドライバは、前記第２のコンピュータのオペレーティング・システムを通じて前記第１のコンピュータ上でアクセス可能であり、前記仮想ディスクドライバは、前記ユニバーサル・シリアル・バス接続を通じて前記第２のコンピュータからもアクセス可能である、請求項１３に記載のコンピュータ・プログラム。
【請求項１８】
ユーザにより、前記第１のコンピュータ上で、第２のコンピュータと共有される少なくとも１つの追加のオブジェクトを識別するステップであって、前記共有ファイルシステムに以前にインストールされたオブジェクトのサイズに追加された前記追加のオブジェクトのサイズが、前記共有ファイルシステムの前記サイズを超えており、
前記共有ファイルシステムにより、前記ユニバーサル・シリアル・バス接続を解除するステップと、
前記共有ファイルシステム生成器により、前記第１のコンピュータ上の前記共有ファイルシステムの前記サイズを拡大するステップと、
前記共有ファイルシステム生成器により、前記追加のオブジェクトを前記共有ファイルシステムにインストールするステップと、
前記ユニバーサル・シリアル・バス接続を再接続するステップと
をさらに実行させる、請求項１３に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に関する。より具体的には、本発明は、コンピュータ間でコンピュータ・データを共有するための方法、装置、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、コンピュータ時代の始まりとしてよく引用される。そのとき以来、コンピュータ・システムは、非常に複雑な装置へと発展してきた。今日のコンピュータは、ＥＤＶＡＣのような初期のシステムよりも遥かに高性能である。コンピュータ・システムは、典型的には、ハードウェアおよびソフトウェア要素の組み合わせであり、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入出力装置などを含む。半導体プロセスおよびコンピュータ・アーキテクチャにおける進歩によって、コンピュータの性能がますます高度になるにつれて、ハードウェアのより高度な性能を利用するために、より高性能のコンピュータ・ソフトウェアが発展している。その結果、今日のコンピュータ・システムは、数年前よりも遥かに高性能なものとなっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
コンピュータ間でコンピュータ・データを共有することがコンピュータ技術の分野の一つとして急速に発展してきている。例えば、コンピュータが、ディスケット・ドライブをリモートに搭載すること、メモリ内のディスケット・ドライブ・イメージをリモートに搭載すること、またはＣＤ−ＲＯＭドライブをサーバにリモートに搭載することができる技術が存在する。この技術は、共有されるファイルがリモートに搭載されるドライブと同一の媒体のファイルであれば正しく動作する。この技術は、ドライブを搭載するには比較的良好に動作するが、単一のファイル、ディレクトリ、またはフォルダをリモートにインストールする有用なやり方が現在のところ存在していない。さらに、ファイルまたはディレクトリがそれを搭載することになるリモート・ドライブとは異なる種類である場合に、ファイルまたはディレクトリをリモートにインストールする有用なやり方が現在のところ存在していない。
【課題を解決するための手段】
【０００４】
コンピュータ間でコンピュータ・データを共有するための方法、装置、およびコンピュータ・プログラムが開示される。方法は、ユーザにより、第１のコンピュータ上のユーザ・インターフェースを通じて、第２のコンピュータを通じて共有されるファイルシステムの少なくとも１つのオブジェクトを識別するステップと、第１のコンピュータ上の共有ファイルシステム生成器により、共有ファイルシステムを作成するステップと、共有ファイルシステム生成器により、共有されるオブジェクトを共有ファイルシステムにインストールするステップと、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続を通じて共有ファイルシステムから第２のコンピュータに公開するステップを含む。
【０００５】
本発明の上記および他の目的、特徴、および利点は、添付図面に示すような本発明の実施形態例の以下のより詳細な説明から明らかになるだろう。図面において、同様の参照番号は、一般的に、本発明の実施形態例の同様の部分を表す。
【発明を実施するための最良の形態】
【０００６】
本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための方法、装置、およびコンピュータ・プログラムの例を、図１で始まる添付図面を参照して説明する。図１は、本発明の実施形態に係る、コンピュータ間でコンピュータ・データを共有するためのシステムの一例を示すネットワーク図を示す。図１のシステムは、第１のコンピュータ（４００）上において、第２のコンピュータ（４０１）を通じて共有されるファイルシステム（４０４）の少なくとも１つのオブジェクト（１２２，１２４）を識別するステップと、第１のコンピュータ上において、共有ファイルシステム（４１４）を作成するステップと、共有ファイルシステム生成器により、共有されるオブジェクトを共有ファイルシステム（４１４）にインストールするステップ（４１８）と、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続（２２２）を通じて共有ファイルシステムから第２のコンピュータに公開するステップとによって、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために一般的に動作する。共有されるオブジェクトは、例えば、ファイル、ディレクトリ、サブディレクトリ、フォルダなどのファイルシステムの任意の構成とすることができる。
【０００７】
図１のシステムは、第１のコンピュータ（４００）と、ＵＳＢデバイス（１１２）と、ＵＳＢ接続（２２２）とを含み、第１のコンピュータは、ネットワーク（１０２）を通じて第２のコンピュータ（４０１）に接続されている。本実施例の第１のコンピュータ（４００）は、プログラム可能な汎用コンピュータであって、本発明の実施形態に係るコンピュータ間で共有しうるオブジェクト（１２２，１２４）を包含するファイルシステム（４０４）を含む。また、第１のコンピュータ（４００）は、ファイルシステム（４０４）からのオブジェクト（１２２，１２４）をインストールして本発明の実施形態に係るコンピュータ間で共有しうる共有ファイルシステム（４１４）を含む。
【０００８】
図示のネットワーク（１０２）は、ルータ（１０４，１０６）からなる。ルータは、例えばインターネット・プロトコル（「ＩＰ」）などのデータ通信プロトコル・スタック内でネットワーク層を実現すると通常みなされている、データ通信装置である。しかし、ネットワーク（１０２）をルータと共に図示したのは、説明のためにすぎず、本発明を限定するためのものではない。実際問題として、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するシステム内の第１のコンピュータとＵＳＢデバイスとの間のデータ通信は、当業者が想起するような任意のデータ通信手段によって行われてもよく、例えば、有線のイーサネット・リンク層、無線リンク層、伝送制御プロトコル（「ＴＣＰ」）、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）、公衆交換電話網（「ＰＳＴＮ」）、無線電話ネットワーク、ならびにこれらおよび他の組み合わせであってもよい。
【０００９】
ＵＳＢデバイス（１１２）は、ＵＳＢインプリメンターズ・フォーラムによって公表されたようなユニバーサル・シリアル・バス規格に準拠するデータ通信装置である。ＵＳＢインプリメンターズ・フォーラムは、ユニバーサル・シリアル・バス規格を開発した企業群によって設立された非営利団体である。企業群には、アップル・コンピュータ社、ヒューレット・パッカード社、ＮＥＣ社、マイクロソフト社、インテル社、アギレ社、ルーセント社、およびフィリップス社が含まれる。ＵＳＢネットワークは、非対称的なデザインを有し、ホスト・コントローラと、ホスト・コントローラからツリー状に接続された複数の装置とからなる。ＵＳＢネットワークにおいて、コントローラ毎の分岐数には制約がある。現代のコンピュータは、数個のホスト・コントローラを有することが予想されるので、接続された装置の有用な総数は非常に大きい。どのＵＳＢバス上にも、ＳＰＩ−ＳＣＳＩなどで必要な終端装置は必要ない。ＵＳＢのデザインは、コンピュータのＩＳＡまたはＰＣＩバスに別個の拡張カードを加える必要性を減らし、コンピュータを再起動せずに装置をホット・スワップまたは追加することができるようにすることによって、プラグ・アンド・プレイ機能を改善することが意図されている。新たなＵＳＢデバイスを最初にプラグ・インする場合、ホストは、それを登録して、それを動作させるためにデバイス・ドライバをロードする。ＵＳＢは、マウス、キーボード、ゲームパッドおよびジョイスティック、スキャナ、デジタル・カメラ、プリンタ、ハードディスク、ならびにネットワーキング構成要素などの周辺装置を接続することができる。スキャナ、およびデジタル・カメラなどのマルチメディア装置については、ＵＳＢは、標準的な接続方法となっている。プリンタについても、ＵＳＢは、ますます普及しており、パラレル・ポートに取って代わり始めている。なぜなら、ＵＳＢは、１つ以上のプリンタをコンピュータに追加するのが容易になるからである。２００４年時点で、世界中に約１０億個のＵＳＢデバイスがあった。２００５年時点で、ＵＳＢを使用できない周辺装置（ＵＳＢが提供できるよりも高速のデータ・レートが必要なので）の主な種類は、ディスプレイおよびモニタ、ならびに高品質デジタル・ビデオ構成要素だけである。
【００１０】
ＵＳＢデバイス（１１２）は、ファイルシステムコマンドをＵＳＢ接続（２２２）を通じて受領して、これらのコマンドをネットワーク（１０２）を通じて第１のコンピュータ（４００）へ転送することができるコンピュータ・ハードウェアおよびソフトウェアを含む。このように、ＵＳＢデバイスは、ユーザ・インターフェースまたは第２のコンピュータ（４０１）上のアプリケーション・プログラムにとって、従来のフラッシュ・ドライブのようなディスクドライブのように見える。第２のコンピュータは、そのように実施されたディスクドライブが、実際は、ＵＳＢ接続（２２２）を通じて第１のコンピュータから公開されたデータを含むことを知らない。本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための典型的なシステムにおいて、ＵＳＢデバイスは、フラッシュ・ドライブと同様な形式要素を有するものとされ、すなわち、長さ約１〜２インチ（２．５２〜５・０４ｃｍ）、幅１インチ（２．５２ｃｍ）以下、および厚さ１インチ（２．５４ｃｍ）未満とされる。
【００１１】
本実施例におけるＵＳＢ接続（２２２）は、ＲＪ−４５コネクタ（１１０）を含む。ＲＪ−４５コネクタ（１１０）は、データ通信のためのネットワーク（１０２）へのイーサネット接続（１０８）に典型的に使用される種類のものである。本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するためのシステムにおいて、ＲＪ−４５コネクタ（１１０）は、第１のコンピュータ（４００）に対するデータ通信接続を表し、共有されるオブジェクトを表しかつ備えるデータがそのような第１のコンピュータから第２のコンピュータへＵＳＢ接続（２２２）を通じて通信される。本実施例におけるＲＪ−４５コネクタの使用は、本発明の第１のコンピュータとＵＳＢデバイスとの間のデータ通信を説明するためのものに過ぎず、本発明を限定するためのものではない。当業者が想起するような、第１のコンピュータ（４００）とＵＳＢデバイス（１１２）との間の任意のデータ通信手段を使用することは、本発明の範囲に当然包含されるものである。
【００１２】
本実施例におけるＵＳＢ接続（２２２）は、第２のコンピュータ（４０１）をＵＳＢバス・ケーブル（１１６）を介して接続するＵＳＢコネクタ（１１４）を含む。ＵＳＢバス・ケーブル（１１６）は、ＵＳＢバスを第２のコンピュータ（４０１）からＵＳＢデバイス（１１２）へＵＳＢコネクタ（１１４）を通じて伸張し、ＵＳＢ電力および信号線を第２のコンピュータからＵＳＢデバイスへ提供する。第２のコンピュータにおけるＵＳＢバスは、第２のコンピュータ内のＵＳＢホスト・コントローラに接続する。図示のようなＵＳＢアーキテクチャは、本発明の範囲内であり、例えば、ＵＳＢコネクタを第２のコンピュータ上のＵＳＢコネクタに直接プラグ接続すること、ＵＳＢデバイスをより大きなＵＳＢツリー・ネットワークを通じて第２のコンピュータに接続すること、および当業者が想起するような他のＵＳＢ接続アーキテクチャを含む。
【００１３】
図１に示すシステムの例を構成するコンピュータおよび他の装置の配置は、説明のために過ぎず、本発明の範囲を限定するためのものではない。本発明の様々な実施形態に係るコンピュータ間でコンピュータ・データを共有するために有用なデータ処理システムは、図１には示されていないが、当業者が想起するようなサーバ、ルータ、他の装置、ピア・ツー・ピア・アーキテクチャをさらに含んでもよい。そのようなデータ処理システムにおけるネットワークは、例えば、ＴＣＰ（伝送制御プロトコル）、ＩＰ（インターネット・プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＷＡＰ（無線アクセス・プロトコル）、ＨＤＴＰ（ハンドヘルド装置伝送プロトコル）、および当業者が想起するような他のプロトコルを含む、数多くのデータ通信プロトコルをサポートしてもよい。本発明の様々な実施形態は、図１に示されるものに加えて、様々なハードウェア・プラットフォーム上で実施されてもよい。
【００１４】
さらに説明するために、図２は、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために適用されたＵＳＢデバイス（１１２）の機能ブロック図を示す。図２のＵＳＢデバイスは、ＲＪ−４５コネクタ（１１０）と、ＵＳＢコネクタ（１１４）と、マイクロコントローラ（１３０）とを含む。ＲＪ−４５コネクタ（１１０）は、データ通信のためのネットワークへのイーサネット接続に典型的に使用される種類のものである。本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するためのシステムにおいて、ＲＪ−４５コネクタ（１１０）は、第１のコンピュータに対する接続を表し、共有されるオブジェクトを表しかつ備えるデータがそのような第１のコンピュータから第２のコンピュータへＵＳＢコネクタ（１１４）を通じて通信される。ＵＳＢコネクタ（１１４）は、例えば、ＵＳＢ接続を第２のコンピュータに対して直接、ＵＳＢバス・ケーブルを通じて、またはＵＳＢネットワークを通じて提供することによって、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために使用される、ＵＳＢ規格に従った標準的なＵＳＢコネクタである。
【００１５】
本実施例におけるマイクロコントローラ（１３０）は、マイクロプロセッサ（１２６）と、１つ以上の入出力ポート（１２７）と、ランダム・アクセス・メモリ（「ＲＡＭ」）（１３６）とを提供するエンベデッド・システムであり、これらはすべて、システム・バス（１２８）を通じてデータ通信用に結合されている。マイクロコントローラ（１３０）は、ＲＡＭ（１３６）内に記憶されたコンピュータ・プログラム命令によってマイクロプロセッサ（１２６）が発明の実施形態に係るコンピュータ間でコンピュータ・データを共有することを行うようにプログラムされている、エンベデッド・システムを実施する。コンピュータ間でコンピュータ・データを共有する過程で、ＵＳＢデバイス（１１２）は少なくとも２つのコンピュータ、すなわち、第１のコンピュータおよび第２のコンピュータ間のデータ通信を行うので、マイクロコントローラ（１３０）は、１つ以上の入出力ポート（１２７）を有して構成するのが有用であろう。電力は、ＵＳＢコネクタ（１１４）を通じてＵＳＢデバイス（１１２）に対して供給され、ＵＳＢコネクタ（１１４）は、いつでもプラグ接続が解除されて、マイクロコントローラに対して電力を遮断して、揮発性ＲＡＭに記憶されたコンピュータ・プログラム命令および他のデータを削除してもよい。したがって、少なくともある実施形態においては、例えば電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭまたは「フラッシュ・メモリ」）のような不揮発性メモリとして有用に実施されてもよい。
【００１６】
ＲＡＭ（１３６）にインストールされているのは、ＵＳＢバス・インターフェース（２１４）であり、ＵＳＢコネクタ（１１４）を通じて第２のコンピュータ（４０１）から受信し、かつそこへ送出されるＵＳＢ通信を管理するコンピュータ・プログラム命令のモジュールである。ＵＳＢバス・インターフェース（２１４）は、ＵＳＢコネクタ（１１４）を通じてシリアル・データを受信し、シリアル・データをパラレルであるＵＳＢフレーム化データに変換し、ＵＳＢフレーム化データをＵＳＢ論理デバイス（１３４）へ渡す。
【００１７】
ＵＳＢ物理デバイスは、さらなる機能をホストに対して提供する。ＵＳＢの観点からは、第２のコンピュータ（４０１）は「ホスト」である。ＵＳＢデバイスによって提供される機能の種類は、多種多様である。しかし、すべてのＵＳＢ論理デバイスは、「論理デバイス」と称される機能を通じて、同一の基本インターフェースをホストに提示する。これにより、ホストは、異なるＵＳＢデバイスのＵＳＢ関連の側面を同じように管理することができる。ＵＳＢデバイスを識別および構成する際にホストをサポートするために、各装置は、構成関連情報を保持かつ報告する。報告される情報のいくつかは、すべての論理装置間で共通である。他の情報は、装置によって提供される機能に固有である。ＵＳＢ論理デバイス（１３４）は、ＵＳＢ規格に従って標準的なＵＳＢデバイス機能を提供するコンピュータ・プログラム命令のモジュールであり、例えば以下のものを含む。
【００１８】
「ホスト」または「第２のコンピュータ」に対する、またはそこからの動的な装着および撤去。ＵＳＢデバイスは、いつでも装着および撤去されてもよい。装着ポイントまたはポートを提供するハブは、ポートの状態の変化を報告する役割を担う。ＵＳＢデバイスは、ＵＳＢ［ハブ」上のＵＳＢ「ポート」を通じて、ＵＳＢホストに接続される。ホストは、装着が検出されると、装置が装着されるハブ・ポートをイネーブルする。装置がハブ・ポートから撤去されると、ハブは、装置が装着されていたポートをディスエーブルして、ホストに対して撤去を通知する。
【００１９】
アドレス割り当て。ＵＳＢデバイスが装着されると、ホストは、固有のＵＳＢアドレスを装置に対して割り当てる役割を担う。
【００２０】
構成。ＵＳＢデバイスは、その機能が使用されるであろう前に構成されなければならない。ホストは、ＵＳＢデバイスを構成する役割を担う。ホストは、典型的には、装置の能力を判断するために、ＵＳＢデバイスから構成情報を要求する。
【００２１】
データ転送。データは、ＵＳＢデバイスとホストとの間でいくつかのやり方で転送されてもよく、例えば、コマンド転送、等時性転送、および大量転送が含まれる。
【００２２】
電力管理。ＵＳＢデバイスの電力管理には、電力予算管理およびリモート目覚ましのための機能が含まれる。
【００２３】
要求処理。ＵＳＢは、ポールされたバスである。ホストが、すべてのデータ転送を開始する。ＵＳＢデバイスは、一般的に、装置がセットアップを完了するやいなや、データ転送に対するホストの要求処理を開始してもよい。
【００２４】
この例において、ＵＳＢ論理デバイスは、大量転送用のＵＳＢデバイスを構成し、ホストまたは第２のコンピュータ（４０１）からの処理要求をＵＳＢ大量転送で実行することによって、コンピュータ間でコンピュータ・データを共有することをサポートし、これにより、第１のコンピュータ（４００）上の共有ファイルシステムと第２のコンピュータ（４０１）との間のデータ転送を可能にする。
【００２５】
本実施例におけるＲＡＭ（１３６）にインストールされているのは、仮想化エンジン（２１２）およびデータ通信エンジン（２１０）であって、これらは合わせて、ＵＳＢ規格が意味するところのＵＳＢ「機能」（１３２）を構成する。ＵＳＢ機能（１３２）は、ＵＳＢデバイス（１１２）によってホストに提供された追加の機能を表わす。本実施例において、表わされる追加の機能は、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有することである。この追加の機能は、仮想化エンジン（２１２）およびデータ通信エンジン（２１０）を通じて提供される。仮想化エンジン（２１２）は、コンピュータ・プログラム命令のモジュールであって、ディスクドライブ・コマンドおよび第１のコンピュータから読み出されるかまたはそこへ書き込まれ、ＵＳＢデータとしてフレーム化される他のコンピュータ・データをＵＳＢ論理デバイス（１３４）を通じて第２のコンピュータ（４０１）から受信し、ディスクドライブ・コマンドおよび他のデータをＵＳＢフレームから抽出し、ディスクドライブ・コマンドおよび他のデータをデータ通信エンジン（２１０）を通じて第１のコンピュータ（４００）へおよびそこから通信するように実施される。
【００２６】
本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために有用なディスクドライブ・コマンドの例には、ＳＣＳＩ（小型コンピュータ・システム・インターフェース）コマンドおよびＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）コマンドが含まれる。ＳＣＳＩは、内部および外部両方のコンピュータ・バス上の装置間でデータを転送するための標準的なインターフェースおよびコマンドセットである。ＳＣＳＩは、ハードディスクおよびテープ記憶装置用に最も一般的に使用されるが、スキャナ、ＣＤ−ＲＯＭドライブ、ＣＤレコーダ、およびＤＶＤドライブを含む広範囲の他の装置も接続する。実際、全ＳＣＳＩ標準規格は、装置の独立性を奨励しており、これは、理論的にはすべてがＳＣＳＩにできるという意味であり、ＳＣＳＩプリンタも製造されてきている。ＡＴＡは、コンピュータ内のハードディスクドライブおよびＣＤ−ＲＯＭドライブのような記憶装置を接続するための標準的なインターフェースである。ＡＴＡに関する用語および同義語は数多くあり、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）およびＵＤＭＡ（Ｕｌｔｒａ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）などの省略形が含まれる。ＡＴＡドライブ・インターフェースは、通常、内部コンピュータ記憶インターフェースとして現れ、本発明の実施形態にとって最も一般的かつ最も廉価なインターフェースを提供する。本明細書は、一般的に、ＳＣＳＩまたはＡＴＡの観点から、コンピュータ間でコンピュータ・データを共有することを説明しているが、ドライブ・インターフェースにＳＣＳＩまたはＡＴＡを使用することは、本発明を限定するものではなく、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有することは、当業者が想起するような任意のドライブ・インターフェースによって行われてもよい。
【００２７】
データ通信エンジン（２１０）は、データ通信のためのコンピュータ・プログラム命令のモジュールである。データ通信エンジン（２１０）は、例えば、伝送制御プロトコル、インターネット・プロトコル、およびイーサネット・プロトコルをデータ通信プロトコル・スタックの伝送層、ネットワーク層、およびリンク層としてそれぞれ実施する、ＴＣＰ／ＩＰイーサネット・エンジンとして構成されてもよい。そのような例において、データ通信エンジン（２１０）は、例えば、ソケット・インターフェースなどのＴＣＰインターフェースを、ＴＣＰインターフェースに呼び出しを発行する仮想化エンジン（２１２）に公開して、ＵＳＢデバイス（１１２）と第１のコンピュータ（４００）との間のデータ通信接続を確立する。データ通信エンジン（２１０）は、ＵＳＢデバイス（１１２）と第１のコンピュータ（４００）との間のデータ通信のためのネットワーク・アドレスおよび／またはポート番号と共に、予め構成されていてもよく、製造時であってもよい。仮想化エンジン（２１２）は、ディスクドライブ・コマンドまたは他のデータをＵＳＢ論理デバイス（１３４）から受信されたＵＳＢフレームから抽出しており、その後、ＴＣＰ接続を通じて、第１のコンピュータ（４００）へコマンドを送信し、データをそこへ送信またはそこから受信する。しかし、上述のように、ＴＣＰ／ＩＰ／イーサネットの例は、一例に過ぎず、ＵＳＢデバイス（１１２）と第１のコンピュータ（４００）との間のデータ通信機能は、当業者が想起するような任意のデータ通信手段によって行われてもよい。
【００２８】
さらなる説明のために、図３に、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するためのシステムの機能ブロック図を示す。図３のシステムは、第１のコンピュータ（４００）と、ＵＳＢデバイス（１１２）と、ＵＳＢ接続（２２２）とを含み、第１のコンピュータは、データを共有する目的で、ネットワーク（１０２）を通じて第２のコンピュータ（４０１）に接続されている。ネットワーク（１０２）は、図１を参照して上述したようなデータ通信プロトコルを使用することによって、コンピュータ間のデータ通信を提供するルータのデータ通信ネットワークであってもよい。ＵＳＢデバイス（１１２）は、図２を参照して上述したようなホストに追加の機能を提供するエンベデッド装置としてのマイクロコントローラで実施されてもよい。ＵＳＢデバイス（１１２）は、データ通信エンジン（２１０）と、仮想化エンジン（２１２）と、ＵＳＢ論理デバイス（１３４）と、ＵＳＢバス・インターフェース（２１４）とを含み、これらはすべて、図２を参照して上述したように動作するコンピュータ・ソフトウェア命令のモジュールとして実施されてもよい。
【００２９】
第１のコンピュータ（４００）は、一般的には、オペレーティング・システム（１５４）を含むプログラム可能なコンピュータである。オペレーティング・システムは、共有ファイルシステム（４１４）と、仮想ドライバ（２０４）と、共有ファイルシステム生成器（２０２）と、ユーザ・インターフェース（２０６）と、ファイルシステム（４０４）と、共有されるオブジェクト（４０６）とを含む。共有ファイルシステム（４１４）は、例えば、ディスクドライブをエミュレートするようにトラック、セクタ、およびクラスタに構成されたＲＡＭで実施された仮想ディスクドライブ（４１５）、または、ファイルシステム（４０４）を通じて開かれたファイル内に実施され、かつディスクドライブをエミュレートするようにトラック、セクタ、およびクラスタに構成された仮想ディスクドライブ（４１５）のエミュレーションを含む。エミュレートされたドライブの種類は、ＳＣＳＩドライブ、ＡＴＡドライブ、または当業者が想起するような任意の他の種類のドライブであってもよい。共有ファイルシステムの仮想ディスクドライブ（４１５）が任意の種類であってもよいのと同様に、共有ファイルシステム自体も、当業者が想起するような任意の種類のファイルシステムをエミュレートしてもよく、そのエミュレートされたドライブ・メモリに、共有ファイルシステムのオブジェクト、典型的にはディレクトリおよびファイルをあらわすデータ構造を記憶する。共有ファイルシステムのオブジェクトを表すデータ構造の種類は、共有ファイルシステム（４１４）によって表されるファイルシステムの種類に依存する。共有ファイルシステム（４１４）がＵｎｉｘ（登録商標）型のシステムとして実施される場合には、仮想ディスクドライブ（４１５）に記憶されるデータ構造は、マスタ・ブロックと、ｉノードとを含む。共有ファイルシステムがＭＳ−ＤＯＳとして実施される場合には、仮想ディスクドライブ（４１５）に記憶されるデータ構造は、ファイル・アクセス・テーブル（「ＦＡＴ」）と、ディレクトリ・テーブルとを含む。その他、共有ファイルシステム（４１４）によって実施されるファイルシステムの種類に従う。
【００３０】
仮想ドライバ（２０４）は、仮想ディスクドライバというコンピュータ・ソフトウェア命令のモジュールであって、仮想ディスクドライブ（４１５）を駆動することからそのように称される。仮想ディスクドライブ（４１５）がＳＣＳＩドライブとして実施される場合には、仮想ドライバ（２０４）は、ＳＣＳＩドライバとして構成される。仮想ディスクドライブ（４１５）がＡＴＡドライブとして実施される場合には、仮想ドライバ（２０４）は、ＡＴＡドライバとして構成される。その他、仮想ディスクドライブ（４１５）によってエミュレートされるディスクドライブの種類に従う。仮想ドライバ（２０４）は、ユーザの指令で、共有ファイルシステム生成器（２０２）によって提供される。仮想ドライバ（２０４）は、仮想ディスクドライブ（４１５）のトラック、セクタ、およびクラスタからデータを読み出しまたはそこへ書き込むためのディスクドライブ・コマンドを、ファイルシステム（４０４）から受領する。コマンドは、ユーザ・インターフェース（２０６）を通じて第１のコンピュータ（４００）のユーザ（１００）によって開始されることが多い。ユーザ・インターフェースは、ＧＵＩ（グラフィカル・ユーザ・インターフェース）またはＣＬＩ（コマンド・ライン・インターフェース）であってもよい。
【００３１】
加えて、仮想ドライバ（２０４）は、データ通信エンジン（２０８）のデータ通信クライアントとして機能するように構成される。データ通信エンジン（２１０）は、データ通信のためのコンピュータ・プログラム命令のモジュールである。データ通信エンジン（２０８）は、データ通信エンジン（２１０）と同様のやり方で構成されてもよく、例えば、伝送制御プロトコル、インターネット・プロトコル、およびイーサネット・プロトコルをデータ通信プロトコル・スタックの伝送層、ネットワーク層、およびリンク層としてそれぞれ実施する、ＴＣＰ／ＩＰ／イーサネット・エンジンとして構成されてもよい。そのような例の場合、データ通信エンジン（２０８）は、例えば、ソケット・インターフェースなどのＴＣＰインターフェースを、ＴＣＰインターフェースに呼び出しを発行する仮想ドライバ（２０４）に公開して、ＵＳＢデバイス（１１２）と第１のコンピュータ（４００）との間のデータ通信接続を確立する。そして、仮想ドライバ（２０４）は、ＴＣＰ接続を通じて、ＵＳＢデバイス（１１２）へディスクドライブ・コマンドを送信し、データをそこへ送信またはそこから受信する。しかし、上述のように、ＴＣＰ／ＩＰ／イーサネットの例は、一例に過ぎず、ＵＳＢデバイス（１１２）と第１のコンピュータ（４００）との間のデータ通信機能は、当業者が想起するような任意のデータ通信手段によって行われてもよい。
【００３２】
共有ファイルシステム生成器（２０２）は、コンピュータ・プログラム命令のモジュールであって、第１のコンピュータ（４００）上のユーザ・インターフェース（２０６）を通じて、第２のコンピュータ（４０１）を通じて共有されるファイルシステム（４０４）の少なくとも１つのオブジェクト（４０６）の識別子をユーザ（１００）から受信し、共有ファイルシステム（４１４）を第１のコンピュータ（４００）上に作成し、共有されるオブジェクト（４０６）を共有ファイルシステム（４１４）にインストールするモジュールである。また、共有ファイルシステム生成器（２０２）は、ＵＳＢ大容量記憶装置として分類されるＵＳＢデバイス（１１２）をＵＳＢホストである第２のコンピュータ（４０１）に接続するための命令を、データ通信エンジン（２０８）からＵＳＢ論理デバイス（１３４）通じて送信することによって、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続を通じて共有ファイルシステムから第２のコンピュータ（４０１）に公開するように機能する。
【００３３】
ＵＳＢデバイスは、ハブ（２３６）として知られる特殊なＵＳＢデバイス上のポート（２３４）を通じてＵＳＢコントローラ（２２４）に装着する。ハブは、そのポートのうちの１つにＵＳＢデバイスが装着（ａｔｔａｃｈｍｅｎｔ）または撤去（ｒｅｍｏｖａｌ）されたことを報告するために使用されるステータス・ビットを有する。ホスト・コントローラ（２２４）は、これらのビットを取り出すためにハブに問い合わせる。装着の場合、ホストは、ポートをイネーブルして、デフォルトのアドレスにおける装置の制御パイプを通じてＵＳＢデバイスをアドレス指定する。ホスト・コントローラは、固有のＵＳＢアドレスをＵＳＢデバイスに対して割り当てて、その後、新しく装着されたＵＳＢデバイスがハブかまたは機能かを判断する。ホストは、割り当てられたＵＳＢアドレスとエンドポイント番号０とを使用して、ＵＳＢデバイスのために、制御パイプのその一端を確立する。装着されたＵＳＢデバイスがハブであり、ＵＳＢデバイスがそのポートに装着される場合には、装着された各ＵＳＢデバイスについて上記の手順が採用される。装着されたＵＳＢデバイスが機能の場合には、当該機能に適切なホスト・ソフトウェアによって、装着通知が処理されることになる。
【００３４】
装着が生じると、ＵＳＢ論理デバイス（１３４）内の構成データが、ＵＳＢコントローラ（２２４）に対して、ＸＴ、Ｕｎｉｘ（登録商標）、ｉ５ＯＳ（ＩＢＭ社の登録商標）などかどうかといった、共有ファイルシステム（４１４）の種類およびバージョンを通知するとともに、ＳＣＳＩ、ＡＴＡなどといったエミュレートされた仮想ディスクドライブ（４１５）の種類も通知する。その後、ＵＳＢコントローラは、第１のコンピュータ（４００）上の共有ファイルシステム（４１４）を第２のコンピュータ（４０１）上に表すために、ファイルシステム（２２６）を作成して、共有されるオブジェクトを表す共有ファイルシステム（４１４）のデータ構造の内容をファイルシステム（２２６）に記録する。共有されるオブジェクトは、共有ファイルシステム（４１４）がＵｎｉｘ（登録商標）ファイルシステムである場合にはｉノード・データであり、共有ファイルシステム（４１４）がＭＳ−ＤＯＳファイルシステムである場合にはファイル・アクセス・テーブル・データである、といった具合である。オペレーティング・システム（１５４）は、第１のコンピュータ（４００）の共有ファイルシステム（４１４）を第２のコンピュータ（４０１）上で表すファイルシステム（２２６）を、ファイルシステム動作部（２３０）およびユーザ・インターフェイス（２３２）を通じてユーザへのインターフェースを通じて、アプリケーション・プログラムに公開する。
【００３５】
共有ファイルシステム生成器（２０２）は、共有されるオブジェクトのサイズを決定して、共有ファイルシステム（４１４）のサイズを少なくとも１つの共有されるオブジェクトよりも大きいＵＳＢフラッシュ・ドライブ・サイズに設定することによって、共有されるオブジェクト（４０６）について共有ファイルシステム（４１４）を作成するコンピュータ・プログラム命令を含んでもよい。ＵＳＢフラッシュ・ドライブは、基本的には、小型かつ軽量の着脱可能なコンピュータ・データ記憶装置として使用される、ＵＳＢインターフェースを実装するＮＡＮＤ型フラッシュ・メモリである。このホット・スワップ可能な不揮発性固体装置は、ＵＳＢをサポートするコンピュータ・システムであればほとんどどれとでも互換性がある。ＵＳＢフラッシュ・メモリ・ドライブは、ペン・ドライブ、サム・ドライブ、ＵＳＢキー、その他様々な名称でも知られている。フラッシュ・ドライブは、頑丈なプラスチックまたは金属製のケーシングに入れられた小さなプリント回路基板からなり、これによって、ドライブは、キー・フォブとしてポケットに入れたり、または紐につけて持ち運ぶのに十分なほど頑丈なものとなっている。ＵＳＢコネクタだけがこの保護体から突き出ており、ＵＳＢコネクタは、着脱可能なキャップで覆われることが多い。
【００３６】
共有ファイルシステム生成器（２０２）が、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続を通じて共有ファイルシステム生成器から第２のコンピュータに公開する場合に、共有ファイルシステム生成器（２０２）は、ＵＳＢ論理デバイス（１３４）に対して、ＵＳＢホストの観点から見た場合に第２のコンピュータ（４０１）となるフラッシュ・ドライブをエミュレートするように、実際上指示する。すなわち、共有ファイルシステム生成器（２０２）は、仮想ドライバ（２０４）と、共有ファイルシステム（４１４）と、仮想ディスクドライブ（４１５）と、仮想化エンジン（２１２）と協働して動作して、ＵＳＢデバイス（１１２）が、第２のコンピュータ（４０１）にとってフラッシュ・ドライブとなるようにする。特に、ＵＳＢデバイス（１１２）は、標準的なフラッシュ・ドライブ・サイズと同一のサイズまたは最大容量を有するファイルシステムをエミュレートするフラッシュ・ドライブを提供するように見える。標準的なフラッシュ・ドライブ・サイズは、８，１６，３２，６４，１２８，２５６，および５１２メガバイト、ならびに１，２，４，および８ギガバイトである。
【００３７】
共有されるオブジェクトのサイズを判断して、共有ファイルシステム（４１４）のサイズを少なくとも１つの共有されるオブジェクトのサイズよりも大きいＵＳＢフラッシュ・ドライブ・サイズに設定することは、以下のように行われてもよい。共有されるオブジェクトがファイルの場合には、オブジェクトのサイズは、オブジェクトを表すオペレーティング・システムのデータ構造、Ｕｎｉｘ（登録商標）ではそのｉノード、ＭＳ−ＤＯＳではそのディレクトリ・テーブル・エントリなどから読み出されてもよい。共有されるオブジェクトがディレクトリの場合には、そのサイズは、ディレクトリ内に含まれるあらゆるファイルのサイズの合計としてもよい。したがって、例えば、サイズが４メガバイトのファイルが共有されるオブジェクトの場合には、共有ファイルシステム生成器（２０２）は、共有ファイルシステム（４１４）を作成する際に、共有ファイルシステムのサイズを、次に最も大きな標準的なＵＳＢフラッシュ・ドライブ・サイズ、すなわち、８メガバイトに設定してもよい。共有されるオブジェクトが、合算サイズが２．５ギガバイトのファイルを含むディレクトリである場合には、共有ファイルシステム生成器（２０２）は、共有ファイルシステム（４１４）を作成する際に、共有ファイルシステムのサイズを、次に最も大きな標準的なＵＳＢフラッシュ・ドライブ・サイズ、すなわち、４メガバイトに設定してもよい、といった具合である。
【００３８】
共有ファイルシステム生成器が共有されるオブジェクト（４０６）を共有ファイルシステム（４１４）にインストールすることは、典型的には、共有されるオブジェクトを第１のコンピュータのファイルシステムから第１のコンピュータの共有ファイルシステムにコピーすることによって行われる。これには、オブジェクトと、当該ファイルシステム内のオブジェクトを表すオペレーティング・システムのデータ構造の内容とを備えるデータをコピーすることが含まれる。共有ファイルシステム（４１４）がファイルシステム（４０４）と同じ種類のファイルシステムである必要はない。共有ファイルシステム（４１４）が他の種類またはバージョンのファイルシステムである場合には、共有されるオブジェクトを共有ファイルシステムにインストールすることには、その構造を変換することが含まれてもよい。すなわち、ファイルシステム（４０４）がＵｎｉｘ（登録商標）型のファイルシステムで、共有ファイルシステム（４１４）がＭＳ−ＤＯＳ型のファイルシステムである場合には、共有されるオブジェクトの構造を変換することには、オブジェクトを表すデータをＵｎｉｘ（登録商標）のｉノードにおけるエントリからＭＳ−ＤＯＳのファイル・アクセス・テーブルおよびディレクトリ・テーブルにおけるエントリに変換することが含まれてもよい。
【００３９】
第１のコンピュータのユーザが、共有されるオブジェクトを識別して、共有ファイルシステム生成器に対して共有するためのオブジェクトを共有ファイルシステムにインストールするように指示してもよい回数に制限はない。したがって、ユーザが共有される追加のオブジェクトを識別したときに、追加的に識別されたオブジェクトが大きすぎて、共有ファイルシステム上に記憶するのに現在利用可能な空間に入らない場合がある。すなわち、共有ファイルシステムに以前にインストールされたオブジェクトのサイズに追加された追加のオブジェクトのサイズが、共有ファイルシステムのサイズを超える場合がある。そのような場合には、共有ファイルシステム生成器（２０２）は、ＵＳＢ接続（２２２）を解除して、第１のコンピュータ（４００）上の共有ファイルシステム（４１４）のサイズを増加して、追加のオブジェクトを共有ファイルシステムにインストールして、ＵＳＢ接続（２２２）を再接続することによって、追加のオブジェクトを共有ファイルシステムにインストールしてもよい。
【００４０】
第２のコンピュータ（４０１）は、ファイルシステム（２２６）と、ＵＳＢドライバ（２２８）と、ファイルシステム動作部（２３０）と、ユーザ・インターフェース（２３２）とを含むオペレーティング・システム（１５６）を含む。オペレーティング・システムは、ＭＳ−ＤＯＳ、Ｕｎｉｘ（登録商標）、ｉ５ＯＳ（ＩＢＭ社の登録商標）、ＡＩＸなど、当業者が想起するような任意のオペレーティング・システムであってもよい。ファイルシステムは、当業者が想起するような任意のファイルシステムであってもよい。ファイルシステム動作部は、ファイルシステムのオブジェクトを操作するためのアプリケーションおよびオペレーティング・システム構成要素に公開された機能であり、例えば、ファイルまたはディレクトリを作成するための機能、ファイルまたはディレクトリを削除するための機能、ファイルまたはディレクトリの名前をするための機能、ファイルを開くための機能、データをファイルから読み出すための機能、データをファイルに書き込むための機能、ファイルまたはディレクトリのセキュリティ許可を変更するための機能などを含む。これらのファイルシステムコマンドの中には、第２のコンピュータ上で実行されると、第１のコンピュータ上の共有ファイルシステムにインストールされた共有されるオブジェクトに、影響を与えるものもある。ＵＳＢドライバ（２２８）は、第１のコンピュータ上の共有ファイルシステムにインストールされた共有されるオブジェクトに影響を与える、ファイルシステム動作部からのディスクドライブ・コマンドを受領する。ディスクドライブ・コマンドには、例えば、共有されるオブジェクトにデータを書き込む命令が含まれる。ＵＳＢドライバ（２２８）は、そのようなコマンドをＵＳＢデータ・フレームにカプセル化して、ＵＳＢデータ・フレームをＵＳＢ接続（２２２）を通じてＵＳＢデバイス（１１２）へ送信して、さらに第１のコンピュータ（４００）上の仮想ドライバ（２４０）へ転送することによって動作する。仮想ドライバ（２０４）は、そのようなディスクドライブ・コマンドに従って共有ファイルシステム（４１４）上の共有されたオブジェクトの変更を生じさせる。
【００４１】
本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有することは、一般的には、コンピュータ、すなわち自動計算機械によって実施される。例えば、図１のシステムにおいて、ネットワーク、ルータ、ＵＳＢデバイス、第１のコンピュータ、および第２のコンピュータはすべて、少なくともコンピュータとしてある程度実施される。したがって、さらに説明するために、図４は、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するのに有用なコンピュータ（１５２）の例を備える自動計算機械のブロック図を示す。特に、図４の例は、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための第１のコンピュータまたは第２のコンピュータとして適応されてもよい。
【００４２】
図４のコンピュータ（１５２）は、少なくとも１つのコンピュータ・プロセッサ（１５６）、言い換えれば「ＣＰＵ」と、ランダム・アクセス・メモリ（１６８）（「ＲＡＭ」）とを含み、ＲＡＭは、システム・バス（１６０）を通じて、プロセッサ（１５６）と、コンピュータの他の構成要素とに接続されている。ＲＡＭ（１６８）に記憶されているのは、オペレーティング・システム（１５４）である。本発明の実施形態に係るコンピュータにおいて有用なオペレーティング・システムには、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、ＭｉｃｒｏｓｏｆｔＸＴ（登録商標）、ＩＢＭ社のＡＩＸ（登録商標）、ＩＢＭ社のｉ５／ＯＳ（登録商標）、および当業者が想起するような他のものが含まれる。また、ＲＡＭ（１６８）には、ユーザ・インターフェース（２０６）が記憶されており、これは、ユーザによるシステム制御のためのコンピュータ・プログラム命令のモジュールである。ユーザ・インターフェース（２０６）は、ＧＵＩまたはＣＬＩであってもよい。また、ＲＡＭ（１６８）には、ファイルシステム（４０４）が記憶されており、これは、ディスクドライブ上のデータをファイルおよびディレクトリのようなオブジェクトに組織化することを表すデータ構造を含むソフトウェア・モジュールである。ファイルシステム（４０４）は、ファイルシステムのオブジェクトを操作するための機能も提供し、これには、例えば、ファイルおよびディレクトリを作成および削除する機能、ファイルおよびディレクトリを開くおよび閉じる機能、ファイルおよびディレクトリへおよびそこからデータを読み出しおよび書き込む機能、ファイルおよびディレクトリの名前を変更する機能などが含まれる。
【００４３】
また、ＲＡＭ（１６８）には、共有ファイルシステム生成器（２０２）が記憶される。共有ファイルシステム生成器（２０２）は、コンピュータ・プログラム命令のモジュールであって、第２のコンピュータを通じて共有されるファイルシステム（４０４）の少なくとも１つのオブジェクト（４０６）の識別子を、ユーザ・インターフェース（２０６）を通じてユーザから受信し、共有ファイルシステム（４１４）を第１のコンピュータ上に作成し、共有されるオブジェクト（４１６）を共有ファイルシステム（４１４）にインストールするモジュールである。また、共有ファイルシステム生成器（２０２）は、共有されるオブジェクトを、第１のコンピュータと第２のコンピュータとの間のＵＳＢ接続を通じて共有ファイルシステムから第２のコンピュータに公開するように機能する。
【００４４】
また、ＲＡＭには、仮想ドライバ（２０４）が記憶される。仮想ドライバ（２０４）は、仮想ディスクドライバというコンピュータ・ソフトウェア命令のモジュールであって、仮想ディスクドライブ（４１５）を駆動することからそのように称される。本実施例においては、仮想ディスクドライブ（４１５）は、ＲＡＭドライブとして図示されている。しかし、読者は気づくだろうが、仮想ディスクドライブ（４１５）は、ファイルシステム（４０４）を通じて開かれるファイル内で実施されてもよく、ディスクドライブをエミュレートするようにトラック、セクタ、およびクラスタに構成されてもよい。仮想ドライバ（２０４）は、ディスクドライブ・コマンドを実行して、仮想ディスクドライブ（４１５）のトラック、セクタ、およびクラスタからデータを読み出しまたはそこへ書き込む。加えて、仮想ドライバ（２０４）は、データ通信エンジン（２０８）のデータ通信クライアントとして機能するように構成される。データ通信エンジン（２０８）は、データ通信のためのコンピュータ・プログラム命令のモジュールである。データ通信エンジン（２０８）は、例えばＴＣＰ／ＩＰ／イーサネット・エンジンとして構成されてもよい。そして、仮想ドライバ（２０４）は、データ通信エンジン（２０８）を使用することによって生じたＴＣＰ接続を通じて、ＵＳＢデバイス（１１２）へディスクドライブ・コマンドを送信し、データをそこへ送信またはそこから受信してもよい。
【００４５】
図２の例のオペレーティング・システム（１５４）、ユーザ・インターフェース（２０６）、ファイルシステム（４０４）、共有ファイルシステム生成器（２０２）、仮想ドライバ（２０４）、仮想ディスクドライブ（４１５），共有ファイルシステム（４１４）、およびデータ通信エンジン（２０８）が、ＲＡＭ（１６８）内に示されている。そのようなソフトウェアの数多くの構成要素は、典型的には不揮発性メモリ（１６６）にも記憶される。
【００４６】
図４のコンピュータ（１５２）は、システム・バス（１６０）を通じてプロセッサ（１５６）およびコンピュータ（１５２）の他の構成要素に結合される不揮発性コンピュータ・メモリ（１６６）を含む。不揮発性コンピュータ・メモリ（１６６）は、ハードディスクドライブ（１７０）、光ディスクドライブ（１７２）、電気的消去可能プログラム可能読み出し専用メモリ空間（いわゆる「ＥＥＰＲＯＭ」または「フラッシュ」メモリ）（１７４）、ＲＡＭドライブ、または当業者が想起するような任意の他の種類のコンピュータ・メモリとして実施されてもよい。
【００４７】
また、図４のコンピュータの例は、１つ以上の入出力インターフェース・アダプタ（１７８）を含む。コンピュータ内の入出力インターフェース・アダプタは、例えば、コンピュータ・ディスプレイ画面のような表示装置（１８０）への出力、およびキーボードおよびマウスなどのユーザ入力装置（１８１）からのユーザ入力を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェアを通じて、ユーザ入出力を実施する。
【００４８】
図４のコンピュータの例（１５２）は、他のコンピュータ（１８２）とのデータ通信（１８４）を実施するための通信アダプタ（１６７）を含む。そのようなデータ通信は、ＲＳ−２３２接続、ＵＳＢなどの外部バス、およびＩＰ／イーサネット・ネットワークなどのデータ通信ネットワークを通じて、当業者が想起するような他の方法によって、シリアルに行われてもよい。通信アダプタは、１つのコンピュータが他のコンピュータへデータ通信を直接またはネットワークを通じて送る、ハードウェア・レベルのデータ通信を実施する。本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために有用な通信アダプタの例には、有線のダイアル・アップ通信用のモデム、有線ネットワーク通信用のイーサネット（ＩＥＥＥ８０２．３）アダプタ、および無線ネットワーク通信用の８０２．１１ｂアダプタが含まれる。
【００４９】
さらに説明するために、図５に、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための方法の一例を示すフロー・チャートを示す。当該方法は、ユーザ（１００）により、第１のコンピュータ（４００）上のユーザ・インターフェースを通じて、第２のコンピュータ（４０１）を通じて共有されるファイルシステム（４０４）の少なくとも１つのオブジェクト（４０６）を識別するステップ（４０２）を含む。ユーザは、識別コマンド（ｉｄｅｎｔｉｆｙｉｎｇ  ｃｏｍｍａｎｄ）をＣＬＩを通じて、例えば、以下のようにタイピングすることによって、共有されるオブジェクトを識別してもよい。
ＵＳＢｓｈａｒｅ  ｃ：＼ｍｙＨｏｍｅＤｉｒｅｃｔｏｒｙ＼ｍｙＡｄｄｒｅｓｓＬｉｓｔ．ｄｏｃ
【００５０】
そのような識別コマンドは、第１のコンピュータの共有ファイルシステム生成器（２０２）内のＵＳＢｓｈａｒｅという名の機能を呼び出す。この機能は、パラメータとして、第２のコンピュータと共有されるファイルまたはディレクトリのパスネームを取る。この識別コマンドにおいて、共有するために識別されたオブジェクトは、「ｃ：＼ｍｙＨｏｍｅＤｉｒｅｃｔｏｒｙ＼ｍｙＡｄｄｒｅｓｓＬｉｓｔ．ｄｏｃ」というパスネームのファイルである。ＣＬＩコマンドを使用する代わりに、ユーザは、図７に示すようなＧＵＩを通じて右マウスをクリックすることでオブジェクトを選択することによって、共有されるオブジェクトを識別してもよい。
【００５１】
また、図５の方法は、第１のコンピュータ上の共有ファイルシステム生成器（２０２）により、共有ファイルシステム（４１４）を作成するステップ（４０８）を含む。図５の方法において、第１のコンピュータ上に、共有されるオブジェクトについての共有ファイルシステム（４１４）を作成するステップ（４０８）は、共有されるオブジェクト（４０６）のサイズを決定するステップ（４１０）と、共有ファイルシステム（４１４）のサイズを、少なくとも１つの共有されるオブジェクトのサイズよりも大きいＵＳＢフラッシュ・ドライブ・サイズに設定するステップ（４１２）とを含む。
【００５２】
また、図５の方法において、第１のコンピュータ上の共有ファイルシステム生成器（２０２）により、共有されるオブジェクトについての共有ファイルシステムを作成するステップ（４０８）は、第１のコンピュータ上の仮想ディスクドライバ（２０４）を提供するステップ（４４４）を含む。そのような仮想ディスクドライバは、典型的には、第１のコンピュータのオペレーティング・システムを通じて第１のコンピュータ上でアクセス可能なように提供され、仮想ディスクドライバは、典型的には、ＵＳＢ接続（４２６）を通じて第２のコンピュータ（４０１）からもアクセス可能である。
【００５３】
図５の方法において、第１のコンピュータ上の共有ファイルシステム生成器（２０２）により、共有されるオブジェクトについての共有ファイルシステムを作成するステップ（４０８）は、コンピュータ・メモリを共有ファイルシステムに割り当てるステップ（４４６）を含み、コンピュータ・メモリは、ファイルシステムをエミュレートするように構成される。この例において、コンピュータ・メモリを共有ファイルシステムに割り当てるステップ（４４６）は、仮想ディスクドライブ（４１５）を提供することによって行われる。仮想ディスクドライブ（４１５）は、例えば、ディスクドライブをエミュレートするようにトラック、セクタ、およびクラスタに構成されたＲＡＭで実施されてもよい。または、仮想ディスクドライブ（４１５）は、ファイルシステム（４０４）を通じて開かれたファイル内に実施され、共有ファイルシステム（４１４）のディスクドライブをエミュレートするようにトラック、セクタ、およびクラスタに構成されてもよい。
【００５４】
また、図５の方法は、共有ファイルシステム生成器（２０２）により、共有されるオブジェクト（４１６）を共有ファイルシステム（４１４）にインストールするステップ（４１８）を含む。図５の方法において、共有されるオブジェクトをインストールするステップ（４１８）は、オブジェクト（４０６）を第１のコンピュータのファイルシステム（４０４）から共有ファイルシステム（４１４）にコピーすることによって行われてもよい。共有ファイルシステム（４１４）が、オブジェクトがコピーされるファイルシステム（４０４）と異なる種類である場合には、この方法は、共有されるオブジェクトの構成を変換することを含む。
【００５５】
また、図５の方法は、共有されるオブジェクト（４１６）を、第１のコンピュータと第２のコンピュータとの間のユニバーサル・シリアル・バス（「ＵＳＢ」）接続を通じて共有ファイルシステム（４１４）から第２のコンピュータ（４０１）に公開するステップ（４２０）を含む。図５の方法において、共有されるオブジェクト（４１６）をＵＳＢ接続を通じて共有ファイルシステムから第２のコンピュータに公開するステップ（４２０）は、ＵＳＢ大容量記憶装置に接続するために、ＵＳＢインターフェースを通じて第２のコンピュータを信号接続するステップ（４２２）を含む。
【００５６】
また、図５の方法において、共有されるオブジェクトをＵＳＢ接続を通じて共有ファイルシステムから第２のコンピュータに公開するステップ（４２０）は、第１のコンピュータ上のデータ通信モジュールからネットワークを通じて第２のコンピュータのデータ通信モジュールへ、共有されるオブジェクトを表す共有ファイルシステムのデータを少なくとも送信するステップ（４２４）を含む。これが有用なのは、第２のコンピュータ、または少なくとも第２のコンピュータ上のＵＳＢコントローラは、第１のコンピュータ上の共有ファイルシステムを表すために、第２のコンピュータのオペレーティング・システムに対して、第２のコンピュータ上にファイルシステムを作成させることになり、それによって、ＵＳＢフラッシュ・ドライブをエミュレートするからである。第２のコンピュータは、共有されたオブジェクトに対してまたはそこからデータを実際に読み出しまたは書き出してもよいし、そうしなくてもよい。しかし、第２のコンピュータのオペレーティング・システムは、典型的には、オブジェクトを、ファイル名またはディレクトリ名およびオブジェクトの他の特徴を参照してユーザとアプリケーション・プログラムとによって操作することができるようにすることになる。したがって、第２のコンピュータ上のオペレーティング・システムは、そのような情報に対するアクセス、共有ファイルシステムがＭＳ−ＤＯＳ型のファイルシステム場合にはファイル・アクセス・テーブルおよびディレクトリ・テーブルに対するアクセス、共有ファイルシステムがＵｎｉｘ（登録商標）型のファイルシステム場合にはｉノード・データに対するアクセスなどが必要である。そのような情報は、仮想ディスクドライブ（４１５）の所定のトラックおよびセクタに記憶され、少なくとも共有されるオブジェクトを表す共有ファイルシステムのデータとして送信されるのが、この情報である。
【００５７】
また、図５の方法は、第１のコンピュータ（４００）上の共有ファイルシステム（４１４）にインストールされる共有されるオブジェクト（４１６）に影響を与えるファイルシステムコマンドを第２のコンピュータ（４０１）上で実行するステップ（４２８）を含む。共有ファイルシステム（４１４）は、ここでは、ユーザおよび第２のコンピュータ（４０１）上のアプリケーション・プログラムにとって、第２のコンピュータ（４０１）上のファイルシステム、ディスクドライブ、１つ以上のディレクトリまたはフォルダ、１つ以上のファイルなどのように見える。したがって、共有ファイルシステムのファイルおよびディレクトリは、まるで実際に第２のコンピュータ自体に実際に記憶されたファイルおよびディレクトリのように、アプリケーション・プログラム、ユーザ、および第２のコンピュータ上のオペレーティング・システムの要素によって操作されてもよい。これらが、時には仮想ファイルシステムと呼ばれる特徴であり、第１のコンピュータ（４００）上の共有ファイルシステム（４１４）は、ここでは、ユーザおよび第２のコンピュータ（４０１）上のアプリケーション・プログラムにとって、第２のコンピュータ（４０１）上のファイルシステムのように見える。共有されたオブジェクトを表すファイル・アクセス・テーブル、ディレクトリ・テーブル、ｉノード、およびその他のデータ構造は、第２のコンピュータ上のオペレーティング・システムの構成要素としてインストールされるので、共有されたファイルを開く、共有されたファイルを閉じるなどのファイルシステム動作は、共有されるオブジェクトに影響を与えない、すなわち、共有ファイルシステムにおいて共有するためにインストールされるようなオブジェクトの内容に影響を与えない。しかし、オブジェクトに対してデータを書き込むコマンドは、第１のコンピュータ上の共有ファイルシステムにインストールされるような共有されるオブジェクトに影響を与える。なぜならば、そのようなコマンドは、オブジェクトを表すまたは記述するデータ構造の内容に単に影響を与えるのではなく、オブジェクトの実際のデータ内容を変更するからである。
【００５８】
さらに説明するために、図６に、本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための方法のさらなる一例を示すフロー・チャートを示す。図６の方法は、図５の方法と同様である。図６の方法は、共有されるオブジェクト（４０６）を識別するステップ（４０２）と、共有ファイルシステム（４１４）を作成するステップ（４０８）と、共有されるオブジェクト（４１６）を共有ファイルシステム（４１４）にインストールするステップ（４１８）と、共有されるオブジェクト（４１６）をＵＳＢ接続（４２６）を通じて第２のコンピュータに公開するステップ（４２０）とを含み。図６の方法のすべてのステップは、図５の方法について上述したのと同様に動作する。
【００５９】
しかし、図６の方法は、ユーザ（１００）により、第１のコンピュータ（４００）上で、第２のコンピュータと共有される少なくとも１つの追加のオブジェクト（４３２）を識別するステップ（４３０）も含む。ユーザは、識別コマンドをＣＬＩを通じて、例えば、以下のようにタイピングすることによって、共有される追加のオブジェクトを識別してもよい。
ＵＳＢｓｈａｒｅ  ｃ：＼ｍｙＨｏｍｅＤｉｒｅｃｔｏｒｙ＼ａｄｄｉｔｉｏｎａｌＦｉｌｅ．ｄｏｃ
【００６０】
そのような識別コマンドは、第１のコンピュータの共有ファイルシステム生成器（２０２）内のＵＳＢｓｈａｒｅという名の機能を呼び出す。この機能は、パラメータとして、第２のコンピュータと共有される追加のファイルまたはディレクトリのパスネームを取る。この識別コマンドにおいて、共有するために識別された追加のオブジェクト（４３２）は、「ｃ：＼ｍｙＨｏｍｅＤｉｒｅｃｔｏｒｙ＼ａｄｄｉｔｉｏｎａｌＦｉｌｅ．ｄｏｃ」というパスネームのファイルである。ＣＬＩコマンドを使用する代わりに、ユーザは、図７に示すようなＧＵＩを通じて右マウスをクリックすることでオブジェクトを選択することによって、共有される追加のオブジェクトを識別してもよい。
【００６１】
図６の方法において、共有ファイルシステムに以前にインストールされたオブジェクト（４１６）のサイズに追加された追加のオブジェクト（４３２）のサイズが、共有ファイルシステムのサイズを超える。すなわち、追加のオブジェクト（４３２）が大きすぎて（４３３，４３５）、共有ファイルシステムに現在残っている記憶空間に入らない。追加のオブジェクトは共有ファイルシステムには現在大きすぎるので、図６の方法は、また、ＵＳＢ接続（４２６）を解除するステップ（４３４）と、第１のコンピュータ上の共有ファイルシステムのサイズを拡大するステップ（４３６）と、追加のオブジェクト（４４０）を共有ファイルシステム（４１４）にインストールするステップ（４３８）と、第１のコンピュータと第２のコンピュータとの間のＵＳＢ接続（４２６）を再接続するステップ（４４２）とを含む。これらは上述したが、さらに詳細を以下に示す。
【００６２】
共有ファイルシステム（４１４）のサイズを変更することをサポートして、図６の方法は、共有ファイルシステム生成器（２０２）により、ＵＳＢ接続（４２６）を解除するステップ（４３４）を含む。上述のように、ＵＳＢデバイスは、ＵＳＢ「ハブ」上のＵＳＢ「ポート」を通じてＵＳＢホストに接続される。ＵＳＢホスト、本実施例においては第２のコンピュータ（４０１）は、装着が検出されると、装置が装着されるハブ・ポートをイネーブルする。装置がハブ・ポートから撤去されると、ハブは、装置が装着されていたポートをディスエーブルして、ホストに対して撤去を通知する。共有ファイルシステム生成器（２０２）は、ＵＳＢデバイス（図３の１１２）を第２のコンピュータに接続される際の媒介となるＵＳＢポート（図３の２３４）から取り外すための命令を、データ通信エンジン（例えば、図３の２０８）を通じてＵＳＢ論理デバイス（図３の２３４）に送信することによって、ＵＳＢ接続（４２６）を解除する（４３４）。ＵＳＢデバイスは、ハブ（図３の２３６）として知られる特殊なＵＳＢデバイス上のポート（図３の２３４）を通じてＵＳＢコントローラ（図３の２２４）に装着する。ハブは、そのポートのうちの１つにＵＳＢデバイスが装着または撤去されたことを報告するために使用されるステータス・ビットを有する。ホスト・コントローラ（図３の２２４）は、これらのビットを取り出すためにハブに問い合わせる。撤去の場合には、ホストはポートをディスエーブルして、撤去をそのＵＳＢコントローラに報告する。
【００６３】
また、図６の方法は、共有ファイルシステム生成器（２０２）により、第１のコンピュータ上の共有ファイルシステムのサイズを拡大するステップ（４３６）を含む。この例において、共有ファイルシステムのサイズは、ＲＡＭまたはディスク空間として仮想ディスクドライブ（４１５）に割り当てられたメモリ量である。したがって、共有ファイルシステムのサイズを拡大することは、より多くのメモリ、ＲＡＭ、またはディスク空間を仮想ディスクドライブ（４１５）に割り当てることよって行われる。ＵＳＢフラッシュ・ドライブのエミュレーションをサポートするために、共有ファイルシステムのサイズを拡大することは、典型的には、共有ファイルシステムの新たなサイズを標準的なＵＳＢフラッシュ・ドライブ・サイズに設定することを含む。標準的なフラッシュ・ドライブ・サイズは、８，１６，３２，６４，１２８，２５６，および５１２メガバイト、ならびに１，２，４，および８ギガバイトである。例えば、共有ファイルシステムに先にインストールされたオブジェクトの総サイズに追加された追加のオブジェクト（４３２）が６０メガバイトである場合、共有ファイルシステムのサイズを拡大することは、共有ファイルシステムのサイズを６４メガバイトに拡大することによって行われてもよい。共有ファイルシステムに先にインストールされたオブジェクトの総サイズに追加された追加のオブジェクトが６００メガバイトである場合、共有ファイルシステムのサイズを拡大することは、共有ファイルシステムのサイズを１ギガバイトに拡大することによって行われてもよい、といった具合である。
【００６４】
また、図６の方法は、共有ファイルシステム生成器（２０２）により、追加されるオブジェクト（４３２，４４０）を共有ファイルシステム（４１４）にインストールするステップ（４３８）を含む。共有される追加されるオブジェクトを共有ファイルシステム（４１４）にインストールすること（４３８）は、第１のコンピュータのファイルシステム（４０４）から第１のコンピュータ上の共有ファイルシステム（４１４）へ追加のオブジェクトをコピーすることによって行われてもよく、追加のオブジェクトを備えるデータと共に、当該ファイルシステム内の追加のオブジェクト（４３２）を表すファイルシステム（４０４）のデータ構造の内容をコピーすることを含む。共有ファイルシステム（４１４）がファイルシステム（４０４）と同じ種類のファイルシステムである必要はない。共有ファイルシステム（４１４）が他の種類またはバージョンのファイルシステムである場合には、共有されるオブジェクトを共有ファイルシステムにインストールすることには、その構造を変換することが含まれてもよい。例えば、ファイルシステム（４０４）がＵｎｉｘ（登録商標）型のファイルシステムで、共有ファイルシステム（４１４）がＭＳ−ＤＯＳ型のファイルシステムである場合には、共有されるオブジェクトの構造を変換することには、オブジェクトを表すデータをＵｎｉｘ（登録商標）のｉノードにおけるエントリからＭＳ−ＤＯＳのファイル・アクセス・テーブルおよびディレクトリ・テーブルにおけるエントリに変換することが含まれてもよい。
【００６５】
また、図６の方法は、第１のコンピュータと第２のコンピュータとの間のＵＳＢ接続（４２６）を再接続するステップ（４４２）を含む。共有ファイルシステム生成器（２０２）は、ＵＳＢデバイス（図３の１１２）を第２のコンピュータ（４０１）装着する命令をＵＳＢ論理デバイス（図３の１３４）に送信することによって、第１のコンピュータと第２のコンピュータとの間のＵＳＢ接続を再接続してもよい。装着が生じると、ＵＳＢ論理デバイス内の構成データが、第２のコンピュータ（４０１）内のＵＳＢコントローラ（図３の２２４）に対して、共有ファイルシステム（４１４）の種類、バージョン、およびサイズを通知する。通知される共有ファイルシステムのサイズは、確立されたばかりに新規のサイズであり、本実施例においては、標準的なＵＳＢフラッシュ・ドライブ・サイズである。
【００６６】
図７は、ファイルシステム、本実施例においてはファイルおよびディレクトリのオブジェクト内をナビゲートし、かつそれらを操作するためのファイルシステム・ツールを備えるグラフィカル・ユーザ・インターフェースの一例の線図を示す。本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために改良されるようなそのようなツールの周知の例は、マイクロソフト社のウィンドウズ・エクスプローラ（登録商標）である。図７のファイルシステム・ツールは、ファイル、編集、表示、お気に入り、ツール、およびヘルプと称されたメニュー・アイテムを含むファイルシステムコマンドを表すメニュー・アイテムを含む水平メニュー（６０２）を含む。図７のファイルシステム・ツールは、戻る機能、進む機能、更新機能、および削除機能のためのアイコンを有するツールバー（６０４）を含む。また、ツールバー（６０４）は、ファイルシステムのファイルおよびディレクトリのオブジェクト内をナビゲートするのを助けるアドレス・ボックス（６００）を含む。また、図７のファイルシステム・ツールは、フレキシブル・ディスク［Ａ：］、ローカル・ディスク［Ｃ：］などのファイルシステムのリストを内部に示すテキスト・ボックス（６１０）を含む。図７のファイルシステム・ツールは、アドレス・ボックス（６００）内に「Ｃ：＼」があり、かつテキスト・ボックス（６１０）内の「ローカル・ディスク［Ｃ：］」が強調表示されていることによって示すように、Ｃ：ドライブであるローカル・ディスク［Ｃ：］のルート・ディレクトリをポイントするようにナビゲートされている。図７のファイルシステム・ツールは、Ｃ：ドライブのルート・ディレクトリにおけるサブディレクトリおよびファイルのリストを示すテキスト・ボックス（６０８）を含む。
【００６７】
Ｃ：ドライブのルート・ディレクトリ内のファイルのリストにおいて、「マイ・ファイル１」という名のファイル（６０６）は、選択されたものとして強調表示されている。マイ・ファイル１は、右マウスがクリックされており、これにより、ポップ・アップ・メニュー（６０７）の表示が行われ、そのエントリは、ファイルに関して典型的には有用なファイルシステムコマンドを表し、開く、印刷、切り取り、コピー、削除、名前の変更、などがある。また、ポップ・アップ・メニュー（６０７）は、「ＵＳＢ共有」という名のエントリを含む。マイ・ファイル１を選択した状態でＵＳＢ共有をマウスクリックで呼び出すことによって、共有ファイルシステム生成器に対して、マイ・ファイル１が共有されるファイルであると識別する。その後、共有ファイルシステム生成器は、第１のコンピュータ（すなわち、ファイルシステム・ツールが動作しているコンピュータ）上に、共有ファイルシステムを作成し、マイ・ファイル１のコピーを共有ファイルシステムにインストールし、共有されるマイ・ファイル１を、第１のコンピュータと第２のコンピュータとの間のＵＳＢ接続を通じて共有ファイルシステムから第２のコンピュータに公開することによって、本発明の実施形態に従ってファイルを共有する。
【００６８】
図８は、ファイルシステム、本実施例においてはファイルおよびディレクトリのオブジェクト内をナビゲートし、かつそれらを操作するためのファイルシステム・ツールを備える、グラフィカル・ユーザ・インターフェースのさらなる例の線図を示す。図８のファイルシステム・ツールは、上述の図７のファイルシステム・ツールと非常に類似しており、同様に、ファイルシステムコマンドの水平メニュー（６０２）と、ツールバー（６０４）と、アドレス・ボックス（６００）とを有する。しかし、図８のファイルシステム・ツールは、第２のコンピュータ上にインストールされて動作しており、このコンピュータを使用して、「マイ・ファイル１」という名のファイルは、図７のファイルシステム・ツールが動作するコンピュータから、本発明の実施形態に従って共有されている。「ＵＳＢ共有ディスク［Ｅ：］」が強調表示されているテキスト・ボックス（６１１）と、「Ｅ：＼」を表示するアドレス・ボックス（６００）は、図８のファイルシステム・ツールが、そのＥ：ドライブのルート・ディレクトリをポイントするようにナビゲーとしたことを示す。テキスト・ボックス（６０９）は、Ｅ：ドライブのルート・ディレクトリは、「マイ・ファイル１」という名前の１つのファイル（６１２）を含むことを示す。本実施例において、Ｅ：ドライブは、本発明の実施形態に従って改良されたＵＳＢ大容量記憶装置を第２のコンピュータへ装着して、図８のファイルシステム・ツールが動作しているコンピュータ（「第１のコンピュータ」）と、図７のファイルシステム・ツールが動作しているコンピュータ（「第２のコンピュータ」）との間でディスクドライブ・コマンドを通信するように構成された仮想エンジンを含んだことに応じて、第２のコンピュータのオペレーティング・システムによって作成されたファイルシステムである。第２のコンピュータの観点から見ると、Ｅ：ドライブは、標準のＵＳＢフラッシュ・ドライブのように見え、マイ・ファイル１は、ＵＳＢフラッシュ・ドライブ上のディレクトリにある、第２のコンピュータのファイルシステムの標準的なオブジェクトのように見える。これで、第２のコンピュータのユーザは、あたかもマイ・ファイル１が第２のコンピュータ上にあるように、マイ・ファイル１を開く、編集する、変更を保存する、印刷する、または削除することを行ってもよい。
【００６９】
本発明の実施形態の例を、コンピュータ間でコンピュータ・データを共有するための完全に機能するコンピュータ・システムの場合を主として説明している。しかし、当業者は、本発明は、任意の適切なデータ処理システムと共に使用する信号を載せた媒体上に配置されたコンピュータ・プログラム製品において実施されてもよいことを理解するであろう。そのような信号を載せた媒体は、機械読み取り可能な情報用の伝送媒体または記録可能媒体であってもよく、磁気媒体、光学媒体、または他の適切な媒体であってもよい。記録可能媒体の例には、ハード・ドライブまたはディスケット内の磁気ディスク、光学ドライブ用のコンパクト・ディスク、磁気テープ、および当業者が想起するような他のものが含まれる。伝送媒体の例には、音声通信用の電話ネットワーク、ならびに、例えばイーサネット（登録商標）およびインターネット・プロトコルおよびワールド・ワイド・ウェブと通信するネットワークのようなデジタル・データ通信ネットワークが含まれる。適切なプログラミング手段を有する任意のコンピュータ・システムが、プログラム製品において実施されるような本発明の方法のステップを実行することができることを、当業者はすぐに認識するだろう。本明細書において説明した実施形態の例の中には、コンピュータ・ハードウェア上にインストールされて実行するソフトウェアに向けられているものもあるが、それにもかかわらず、ファームウェアまたはハードウェアとして実施された代替実施形態も十分に本発明の範囲内にあることを、当業者はすぐに認識するだろう。
【００７０】
上述の説明から、修正および変更が、本発明の真の精神から逸脱することなく本発明の様々な実施形態に対して行われてもよいことが理解されるだろう。本明細書における説明は、例示の目的だけであり、限定的な意味に解釈されるべきではない。本発明の範囲は、添付のクレームの言語によってのみ限定される。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するためのシステムの一例を示すネットワーク図を示す。
【図２】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するために適用されたＵＳＢデバイスの機能ブロック図を示す。
【図３】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するためのシステムの機能ブロック図を示す。
【図４】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するのに有用なある種類のコンピュータの例を備える自動計算機械のブロック図を示す。
【図５】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための方法の一例を示すフロー・チャートを示す。
【図６】本発明の実施形態に係るコンピュータ間でコンピュータ・データを共有するための方法のさらなる一例を示すフロー・チャートを示す。
【図７】ファイルシステムのオブジェクト内をナビゲートし、かつそれらを操作するためのファイルシステム・ツールを備えるグラフィカル・ユーザ・インターフェースの一例の線図を示す。
【図８】ファイルシステムのオブジェクト内をナビゲートし、かつそれらを操作するためのファイルシステム・ツールを備える、グラフィカル・ユーザ・インターフェースのさらなる例の線図を示す。
【符号の説明】
【００７２】
１００  ユーザ
１０１  ユーザ
１０２  ネットワーク
１０４  ルータ
１０６  ルータ
１０８  イーサネット・ケーブル
１１０  ＲＪ−４５コネクタ
１１２  ＵＳＢデバイス
１１４  ＵＳＢコネクタ
１１６  ＵＳＢバス・ケーブル
１２２  ファイル
１２４  ディレクトリ
２２２  ＵＳＢ接続
４００  第１のコンピュータ
４０１  第２のコンピュータ
４０４  ファイルシステム
４１４  共有ファイルシステム
【図１】
2007172586.tif 000003
【図２】
2007172586.tif 000004
【図３】
2007172586.tif 000005
【図４】
2007172586.tif 000006
【図５】
2007172586.tif 000007
【図６】
2007172586.tif 000008
【図７】
2007172586.tif 000009
【図８】
2007172586.tif 000010