(57)【要約】【課題】デバイス装置の一つであるメモリカードを用いて、ネットワーク上の特定のアドレスにアクセスする手段を提供する方法において、接続したサーバをホスト装置上のアプリケーション等から認識するためには、例えばドライブへの割り当てのように、ユーザにとって煩雑な操作が必要であった。また、メモリカードは、サーバと接続するための鍵として機能しているため、このメモリカードへの入出力操作によって、サーバに対する入出力を行うことはできなかった。【解決手段】デバイス装置は、当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とする。【選択図】      図２
2005284547.tif 000002
【特許請求の範囲】
【請求項１】
デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバを介して定義された機能を実現するデバイス装置であって、
当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とするデバイス装置。
【請求項２】
請求項１に記載のデバイス装置において、
前記情報は、前記デバイスドライバから得られることを特徴とするデバイス装置。
【請求項３】
請求項１に記載のデバイス装置において、
前記情報は、前記デバイス装置から得られることを特徴とするデバイス装置。
【請求項４】
請求項１乃至３のいずれか一項に記載のデバイス装置において、
前記情報は、前記ホスト装置が接続されたネットワークに関する情報であり、
前記本来の機能は、記憶媒体とのデータの入出力機能であることに加えて、
前記擬似される機能は、前記ネットワークとのデータの入出力機能であることを特徴とするデバイス装置。
【請求項５】
請求項４に記載のデバイス装置において、
前記デバイスドライバは、前記ホスト装置から前記デバイスに対して送受するコマンドを
、前記ネットワークに対するコマンドに変換することを特徴とするデバイス装置。
【請求項６】
請求項４乃至５のいずれかに記載のデバイス装置において、
前記デバイス装置は、前記ホスト装置にメモリデバイスとして認識されることを特徴とするデバイス装置。
【請求項７】
請求項４乃至６のいずれか一項に記載のデバイス装置において、
前記デバイス装置は、データの記憶領域を備えることを特徴とするデバイス装置。
【請求項８】
請求項４乃至７のいずれか一項に記載のデバイス装置において、
前記デバイス装置は切替えスイッチを備え、
当該切替えスイッチにより、前記ネットワークの接続先が切り換わることを特徴とするデバイス装置。
【請求項９】
デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバで定義した機能を実現するデバイス装置によるネットワークサーバとのデータの入出力方法であって、
当該デバイス装置を当該ホスト装置に接続する工程と、
当該デバイス装置に対応付けられた当該デバイスドライバが、当該ネットワークに関する情報を取得する工程と、
当該情報に基づいて、当該ホスト装置を当該サーバに接続する工程と、
当該デバイスドライバが、当該デバイス装置を当該サーバに接続された記憶装置として擬似する工程と、
当該デバイス装置を介して、当該ホスト装置と当該サーバとの間で、データの入出力を行う工程とを備えることを特徴とするネットワークサーバとのデータの入出力方法。
【請求項１０】
オペレーティングシステムを実行するホスト装置に接続されたデバイス装置を制御するデバイスドライバのデバイスドライバプログラムであって、
当該ホスト装置と当該デバイス装置とを接続することで得られる情報に基づいて、当該ホスト装置に対する当該デバイス装置の本来の機能とは異なる機能に擬似する処理を備えることを特徴とするデバイスドライバプログラム。
【請求項１１】
請求項１０に記載のデバイスドライバプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置と接続してホスト装置の周辺機能を提供する周辺機器のようなデバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
従来、デバイス装置の一つであるメモリカードを用いて、ネットワーク上の特定のアドレスにアクセスする手段を提供する方法については、下記の特許文献１および特許文献２に記載のように、接続するサーバのアドレス等の情報をメモリカード内に保管しておき、ユーザは、このメモリカードをサーバと接続するための鍵としてホスト装置に接続することで、ホスト装置をネットワーク上の目的とするサーバに接続していた。
【０００３】
【特許文献１】特開２００１−１５５０７５
【特許文献２】特開２００３−２１６５８６
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、接続したサーバをホスト装置上のアプリケーション等から認識するためには、例えばネットワークドライブへの割り当てのように、ユーザにとって煩雑な操作が必要であった。また、メモリカードは、サーバと接続するための鍵として機能しているため、アプリケーション上からメモリカードへの入出力操作によって、サーバに対する入出力を行うことはできなかった。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために、本発明のデバイス装置は、デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバを介して定義された機能を実現するデバイス装置であって、当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とする。
【０００６】
上記構成によれば、デバイス装置に対応したデバイスドライバにより、ホスト装置に対するデバイス装置の特定の機能は擬似されることから、ユーザは、特定の機能を使うための特別な操作は不要で、アプリケーション上でデバイス装置に対して通常の操作をすれば良いため、特定の機能を容易に実行できる。
【０００７】
上記した本発明のデバイス装置では、前記情報は、前記デバイスドライバから得られる場合と、前記デバイス装置から得られる場合が考えられる。
【０００８】
また、上記した本発明のデバイス装置では、前記情報は、前記ホスト装置が接続されたネットワークに関する情報であり、前記本来の機能は、記憶媒体とのデータの入出力機能であることに加えて、前記擬似される機能は、前記ネットワークとのデータの入出力機能であることが好ましい。
更に、上記した本発明のデバイス装置では、前記デバイスドライバは、前記ホスト装置から前記デバイスに対して送受するコマンドを、前記ネットワークに対するコマンドに変換することが好ましい。
【０００９】
上記構成によれば、デバイス装置に対するコマンドは、デバイスドライバによりネットワークに対するコマンドに変換されるため、ユーザは、ネットワークに対するコマンド等を使うことなく、ネットワークに対する入出力機能を使える。
【００１０】
上記した本発明のデバイス装置では、前記デバイス装置は、前記デバイスドライバにより擬似されることで、前記ホスト装置にメモリデバイスとして認識されることが好ましい。
また、上記した本発明のデバイス装置では、前記デバイス装置は、データの記憶領域を備えることが好ましい。
更に、上記した本発明のデバイス装置では、前記デバイス装置は切替えスイッチを備え、当該切替えスイッチにより、前記ネットワークの接続先が切り換わることが好ましい。
【００１１】
本発明のネットワークサーバとのデータの入出力方法では、デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバで定義した機能を実現するデバイス装置によるネットワークサーバとのデータの入出力方法であって、当該デバイス装置を当該ホスト装置に接続する工程と、当該デバイス装置に対応付けられた当該デバイスドライバが、当該ネットワークに関する情報を取得する工程と、当該情報に基づいて、当該ホスト装置を当該サーバに接続する工程と、当該デバイスドライバが、当該デバイス装置を当該サーバに接続された記憶装置として擬似する工程と、当該デバイス装置を介して、当該ホスト装置と当該サーバとの間で、データの入出力を行う工程とを備えることを特徴とする。
【００１２】
上記方法によれば、デバイス装置はネットワークサーバに接続された記憶装置として擬似されるため、ユーザは、ホスト装置とサーバとのファイルデータの入出力をデバイス装置を介して容易に操作できる。
【００１３】
また、本発明はデバイスドライバプログラムおよびそのプログラムを記録した記録媒体として捉えることもできる。すなわち、オペレーティングシステムを実行するホスト装置に接続されたデバイス装置を制御するデバイスドライバのデバイスドライバプログラムであって、当該ホスト装置と当該デバイス装置とを接続することで得られる情報に基づいて、当該ホスト装置に対する当該デバイス装置の本来の機能とは異なる機能に擬似する処理を、コンピュータに実現させることを要旨とする。デバイスドライバプログラムの記録媒体としては、ＲＯＭ、ＲＡＭおよびＩＣカードなどコンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明に係るデバイス装置の実施例について、図面を参照して説明する。
【実施例１】
【００１５】
図１は、本発明のデバイス装置の一実施形態が適用されるコンピュータシステムを示す図である。
この図には、ホスト装置であるコンピュータ１と、コンピュータ１に接続可能なフラッシュメモリを内蔵するフラッシュメモリカード７０と、ネットワーク６０を介して接続されるサーバ５０とが示されている。
【００１６】
コンピュータ１には、制御部１０と、通信手段２０と、外部記憶手段であるＨＤＤ４０と、記憶媒体の入出力手段であるメモリドライブ３０とが設けられている。
なお、このコンピュータ１には、上記以外にも、図示を略したユーザとのインターフェイス手段、内部記憶手段、演算手段、電源供給手段などが設けられている。
【００１７】
制御部１０は、コンピュータ１全体の基本的な管理を行うＯＳ（Operating System）１１０と、コンピュータ１を所定の役目の装置として動作させるアプリケーション１００と、通信手段２０やＨＤＤ４０やメモリドライブ３０などを制御するデバイスドライバ１２０とを備える。
ここで、通信手段２０、ＨＤＤ４０およびメモリドライブ３０は、デバイス装置と呼ばれる。これらの仕様や制御方法は製品により大きく異なるため、デバイスドライバ１２０は、これらの仕様や制御方法の差異を吸収して、ＯＳ１１０から直接制御できるように機能する。このため、デバイスドライバ１２０は、デバイスの製品によって異なるのに加えて、多くはＯＳ１１０によっても異なる。従って、ユーザは、デバイス装置を使用する際に、デバイス装置およびＯＳ１１０に対応したデバイスドライバ１２０をコンピュータ１にインストールする必要がある。
【００１８】
なお、制御部１０は、前記したＯＳ１１０、アプリケーション１００およびデバイスドライバ１２０に加えて、図示を略すが、ハードウェア資源としてのＣＰＵ、ＲＯＭ、ＲＡＭ、論理回路およびレジスタと、ＲＯＭ等に記憶されたＢＩＯＳなどの基本ソフトウェアとが有機的に協働して、所定の機能を実現している。
【００１９】
メモリドライブ３０は、記憶媒体であるフラッシュメモリカード７０を装着して、フラッシュメモリカード７０の情報の読み込みおよび書き込みを行う。このフラッシュメモリカード７０は、何度でも電気的に記憶の消去および書き込みが可能なＲＯＭの一種を内蔵する。具体的には、このフラッシュメモリカード７０には、コンパクトフラッシュ（登録商標）、スマートメディア、メモリースティックなどのようなメモリーカードを採用できる。なお、本実施例において、このフラッシュメモリカード７０は、数百文字程度のキャラクタコードを記憶できれば良く、ユーザが使用できる領域が数キロバイト程度の記憶容量で充分である。
【００２０】
通信手段２０は、コンピュータ１に装着して、ＬＡＮのようなネットワーク６０に接続するネットワークインターフェイスカードを採用できる。ここで、ネットワーク６０は、例えば、ＴＣＰ／ＩＰを通信プロトコルとするネットワークであり、サーバ５０はこのネットワークに接続されているファイルサーバである。このサーバ５０と接続するために必要なアドレスやポートに関する情報は、フラッシュメモリカード７０に記憶されている。
なお、フラッシュメモリカード７０のように、デバイス側でサーバ５０の情報を記憶する以外にも、デバイスドライバ１２０がサーバ５０の情報をデータとして保持している形態や、デバイスドライバ１２０は、接続されたフラッシュメモリカード７０のデバイスＩＤを取得して識別し、デバイスドライバ１２０が保持する情報からサーバ５０に関する情報を選択する形態を採用できる。
【００２１】
図２は、コンピュータ１の階層構造を示すレイヤー図である。この図では、下層から、ハードウェア１３０の層、ハードウェア１３０を制御するデバイスドライバ１２０の層、デバイスドライバ１２０を介してハードウェア１３０を制御するＯＳ１１０の層、ＯＳ１１０を利用して動作するアプリケーション１００の層という順序で積層される。
【００２２】
ここで、ハードウェア１３０の層がフラッシュメモリカード７０の場合、ＨＤＤ４０の場合およびネットワークインターフェイス２０の場合について説明する。
先ず、ハードウェア１３０の層がフラッシュメモリカード７０の場合、対応するデバイスドライバ１２０の層は、フラッシュメモリドライバ１２１およびフラッシュメモリカード７０を異なるデバイスとして擬似する擬似ドライバ１２４である。
ここでデバイスドライバ１２０の層に擬似ドライバ１２４が存在せず、フラッシュメモリドライバ１２１のみが存在する場合は、フラッシュメモリドライバ１２１は、ＯＳ１１０からの指示に従い、記憶媒体であるフラッシュメモリカード７０に対して、データの書き込みと、読み込みとを制御する。なお、このフラッシュメモリドライバ１２１は、メモリドライブ３０のドライバ機能も包含している。
【００２３】
本実施例では、擬似ドライバ１２４は、フラッシュメモリドライバ１２１がＯＳ１１０にインストールされた後にインストールされ、デバイスドライバ１２０の層に存在する。
この擬似ドライバ１２４は、フラッシュメモリドライバ１２１が公開するエクスポート関数のエントリポイントを、擬似ドライバ１２４のエントリポイントに置き換えることで、ＯＳ１１０側からのフラッシュメモリドライバ１２１に対する命令を取得できる。
即ち、本実施例においては、フラッシュメモリドライバ１２１は、デバイスドライバ１２０の層に存在はするが、ＯＳ１１０からフラッシュメモリドライバ１２１への命令は、擬似ドライバ１２４が取得するため、ＯＳ１１０からの指示でフラッシュメモリドライバ１２１の機能が実行されることはない。この擬似ドライバ１２４の各機能については、後述する。
【００２４】
次に、ハードウェア１３０の層がＨＤＤ４０の場合、対応するデバイスドライバ１２０の層は、ＨＤＤドライバ１２２である。更に、ハードウェア１３０の層が通信手段であるネットワークインターフェイス２０の場合、対応するデバイスドライバ１２０の層は、ネットワークインターフェイスドライバ１２３である。
【００２５】
ここで、デバイスドライバ１２０の層が、フラッシュメモリドライバ１２１およびＨＤＤドライバ１２２である場合、ＯＳ１１０の層ではブロックデバイス１１１およびファイルシステム１１２が対応する。ブロックデバイス１１１は、概念として、小容量の単位に分割されたブロックの集合体であり、ランダムアクセスをサポートする記憶デバイスである。また、ファイルシステム１１２は、このブロックデバイス１１１を介してファイルに対するデータの読み書きを行う。従って、このファイルシステム１１２から見ると、ブロックデバイス１１１は、ハードウェア１３０に依存したデバイスドライバ１２０の違いを吸収すると共に、デバイスドライバ１２０に依存しないハードウェア１３０とのインターフェイスを、ファイルシステム１１２に提供している。
【００２６】
図３は、デバイス装置とネットワークのサーバとのデータ入出力方法を示すフローチャートであり、図２も参照して説明する。
最初に、デバイス装置をホスト装置に接続する工程であり、具体的には、ユーザは、フラッシュメモリを内蔵したフラッシュメモリカード７０を、コンピュータ１のメモリドライブ３０に装着する（ステップＳ２００）。
次に、デバイス装置に対応付けられたデバイスドライバが、ネットワークに関する情報を取得する工程であり、フラッシュメモリカード７０に対応した擬似ドライバ１２４は、フラッシュメモリカード７０に記憶されたサーバ５０に関する情報を読み込む（ステップＳ２０１）。なお、サーバ５０に関する情報とは、ネットワーク６０上のサーバ５０に接続するために必要なサーバ５０のアドレス、ポート番号などである。また、図２におけるサーバ５０は、図示を略したが、ネットワークインターフェイス２０の下部に位置し、このネットワークインターフェイス２０と接続されている。
【００２７】
次に、情報に基づいてホスト装置をサーバに接続する工程であり、サーバ５０と接続するために必要な情報に基づき、コンピュータ１は、通信手段２０を介してネットワーク６０上のサーバ５０と接続する（ステップＳ２０２）。
次に、デバイスドライバが、デバイス装置をサーバに接続された記憶装置として擬似する工程であり、先ず、ネットワーク６０上のサーバ５０に対する入出力方法を、ＮＢＤ（Network Block Device）というプロトコルで確保するため、コンピュータ１は、サーバ５０のブロックデバイス情報を取得する（ステップＳ２０３）。ここで、ＮＢＤは、サーバ５０が提供するブロックデバイスを、ネットワークを経由してローカルのブロックデバイスとして扱えるプロトコルである。
【００２８】
次に、コンピュータ１はサーバ５０とＮＢＤによる接続を行い、これを受けて、擬似ドライバ１２４は、サーバ５０をブロックデバイスの記憶装置としてマウントすると共に、フラッシュメモリカード７０をサーバ５０に接続された記憶装置として擬似する（ステップＳ２０４）。
最後に、擬似されたデバイス装置を介して、ホスト装置とサーバとの間で、データの入出力を行う工程であり、コンピュータ１のアプリケーション１００は、記憶装置として擬似されたフラッシュメモリカード７０を介して、ネットワーク６０のサーバ５０との間でファイルの入出力を行う（ステップＳ２０５）。
【００２９】
次に、擬似ドライバ１２４で実行する命令について、図４、図５、図６、図７および図８を参照して説明する。
擬似ドライバ１２４がハードウェア１３０層のデバイスに対して実行する命令は、通常のデバイスドライバがデバイスに対して実行する命令と同様に、次のような命令である。
（１）ｏｐｅｎ
（２）ｃｌｏｓｅ
（３）ｉｏｃｔｌ
（４）ｒｅａｄ
（５）ｗｒｉｔｅ
ここで、上記した命令について詳説する。
【００３０】
図４は、擬似ドライバ１２４のｏｐｅｎ命令を示すフローチャートであり、本図を用いてｏｐｅｎ命令の処理を説明する。
最初に、擬似ドライバ１２４は、フラッシュメモリカード７０に対してｏｐｅｎ命令を実行して、フラッシュメモリカード７０と接続する（ステップＳ２１０）。
次に、擬似ドライバ１２４は、フラッシュメモリカード７０に対してｒｅａｄ命令を実行する（ステップＳ２１１）。
次に、擬似ドライバ１２４は、ｒｅａｄ命令で得られる情報から、フラッシュメモリカード７０に記憶されているネットワーク６０のサーバ５０のアドレス番号、ポート番号などを読み込む（ステップＳ２１２）。
次に、擬似ドライバ１２４は、ネットワーク６０にアクセスするためのＩ／Ｏアドレスを指定して、割り込み番号を設定する（ステップＳ２１３）。
次に、擬似ドライバ１２４は、必要なデバイスからの割り込みを許可する（ステップＳ２１４）。
次に、擬似ドライバ１２４は、読み込んだアドレス番号およびポート番号に従い、ネットワーク６０のサーバ５０に接続する（ステップＳ２１５）。
最後に、擬似ドライバ１２４は、サーバ５０からブロックデバイスのブロックサイズやブロック数などのブロックデバイスに関する情報を取得して記憶する（ステップＳ２１６）。
【００３１】
図５は、擬似ドライバ１２４のｃｌｏｓｅ命令を示すフローチャートであり、本図を用いてｃｌｏｓｅ命令の処理を説明する。
最初に、擬似ドライバ１２４は、ネットワーク６０のサーバ５０との接続を解除する（ステップＳ２２０）。
次に、擬似ドライバ１２４は、記憶していたサーバ５０の情報を破棄する（ステップＳ２２１）。
次に、擬似ドライバ１２４は、フラッシュメモリカード７０に対してｃｌｏｓｅ命令を実行してフラッシュメモリカード７０との接続を解除する（ステップＳ２２２）。
次に、擬似ドライバ１２４は、デバイスからの割り込みを禁止する（ステップＳ２２３）。
最後に、擬似ドライバ１２４は、設定した割り込み番号を破棄して割り込み設定を解除する（ステップＳ２２４）。
【００３２】
図６は、擬似ドライバ１２４のｉｏｃｔｌ命令を示すフローチャートであり、本図を用いてｉｏｃｔｌ命令の処理を説明する。
最初に、擬似ドライバ１２４は、ブロックサイズを取得する命令かどうかを判定する（ステップＳ２３０）。
ここで、ｉｏｃｔｌ命令がブロックサイズを取得する命令であった場合（Ｓ２３０でＹｅｓ）、サーバ５０から取得したブロックサイズの情報を返して終了する（ステップＳ２３１）。また、ブロックサイズを取得する命令でなかった場合（Ｓ２３０でＮｏ）、擬似ドライバ１２４は、ｉｏｃｔｌ命令がブロック数を取得する命令かどうかを判定する（ステップＳ２３２）。
ここで、ブロック数を取得する命令であった場合（Ｓ２３２でＹｅｓ）、サーバ５０から取得したブロック数の情報を返して終了する（ステップＳ２３３）。また、ブロック数を取得する命令でなかった場合（Ｓ２３２でＮｏ）は、何もしないで終了する。
【００３３】
図７は、擬似ドライバ１２４のｒｅａｄ命令を示すフローチャートであり、本図を用いてｒｅａｄ命令の処理を説明する。
最初に、擬似ドライバ１２４は、読み出すブロック番号とブロック数とを指定する（ステップＳ２４０）。
次に、擬似ドライバ１２４は、ｒｅａｄ命令、ブロック番号およびブロック数をネットワーク６０のプロトコルに合わせて整形する（ステップＳ２４１）。
次に、擬似ドライバ１２４は、整形したｒｅａｄ命令、ブロック番号およびブロック数の情報をサーバ５０に送信する（ステップＳ２４２）。
次に、擬似ドライバ１２４は、サーバ５０からの応答を受信する（ステップＳ２４３）。
【００３４】
次に、擬似ドライバ１２４は、受信した信号から、ネットワーク６０のプロトコルに従って書き込まれた種々のデータを抽出する（ステップＳ２４４）。
次に、擬似ドライバ１２４は、抽出したデータを正常に読み込めたかどうかを判定する（ステップＳ２４５）。
ここで、抽出データを正常に読み込めたと判定した場合（ステップＳ２４５でＹｅｓ）、読み込みは成功したと判定し（ステップＳ２４７）、読み込みが成功したという情報と共に、読み込んだデータをＯＳ１１０に転送する（ステップＳ２４８）。また、抽出データを正常に読み込めなかったと判定した場合（ステップＳ２４５でＮｏ）、読み込みが失敗したという情報をサーバに送る（ステップＳ２４６）。
【００３５】
図８は、擬似ドライバ１２４のｗｒｉｔｅ命令を示すフローチャートである。
最初に、擬似ドライバ１２４は、書き込むデータのアドレスを指定する（ステップＳ２５０）。
次に、擬似ドライバ１２４は、書き込むブロック番号およびブロック数を指定する（ステップＳ２５１）。
次に、擬似ドライバ１２４は、ｗｒｉｔｅ命令、ブロック番号およびブロック数をネットワーク６０のプロトコルに合わせて整形する（ステップＳ２５２）。
次に、擬似ドライバ１２４は、整形したｗｒｉｔｅ命令、ブロック番号およびブロック数の情報をサーバ５０に送信する（ステップＳ２５３）。
次に、擬似ドライバ１２４は、サーバ５０からの応答を受信する（ステップＳ２５４）。
【００３６】
次に、擬似ドライバ１２４は、受信した信号から、ネットワーク６０のプロトコルに従って書き込まれた種々のデータを抽出する（ステップＳ２５５）。
次に、擬似ドライバ１２４は、抽出データから正常に書き込めたかどうかを判定する（ステップＳ２５６）。
ここで、抽出データから正常に書き込めたと判定した場合（ステップＳ２５６でＹｅｓ）、書き込みは成功したと判定し、書き込みが成功したという情報をＯＳ１１０に送る（ステップＳ２５７）。また、正常に書き込めなかったと判定した場合（ステップＳ２５６でＮｏ）、書き込みが失敗したという情報をＯＳ１１０に送る（ステップＳ２５８）。
【００３７】
前述したような実施例１によれば、次のような効果がある。
（１）ＯＳ１１０側、アプリケーション１００側およびコンピュータ１のユーザ側から見ると、サーバ５０に接続された記憶装置として擬似されるフラッシュメモリカード７０と、内部の記憶媒体を使用する通常のフラッシュメモリカード７０とを等価に扱うことができる。
（２）フラッシュメモリカード７０は、サーバ５０と接続するために必要なアドレスおよびポート番号のような情報を記憶できる容量があれば十分であり、フラッシュメモリカード７０の記憶素子の容量を節約できる。
【実施例２】
【００３８】
本発明の実施例２について、図１、図２、図９、図１０および図１１を参照して説明する。なお、以下の説明では、既に説明した部分と同一の部分については、同一符号を付してその説明を省略する。
実施例１では、フラッシュメモリカード７０は、サーバ５０と接続するために必要な情報を保持するために、数キロバイト程度の記憶容量であったが、本実施例では、フラッシュメモリカード７０は、数十メガバイトから数百メガバイト程度の記憶容量を備える。
擬似ドライバ１２４は、サーバ５０とのデータの入出力時において、必要に応じてこのデータをフラッシュメモリカード７０内に一時的に保存する。即ち、擬似ドライバ１２４は、外部に対しては、フラッシュメモリカード７０をサーバ５０に接続された記憶装置として擬似する。また、擬似ドライバ１２４は、デバイスドライバ１２０の層の内部において、フラッシュメモリドライバ１２１のエントリポイントに関する情報に従い、フラッシュメモリカード７０のデータを記憶する機能を呼び出すことで、フラッシュメモリカード７０を本来のメモリデバイスとしても使用する。本実施例によるファイルの書き込み処理および読み込み処理について、以下に説明する。
【００３９】
最初に、ファイルの書き込み処理について説明する。
図９は、本実施例におけるファイル書き込み処理を示すフローチャートであり、本図を用いて、ファイル書き込み処理を説明する。
最初に、擬似ドライバ１２４は、データを一時的にフラッシュメモリカード７０に書き込むかを判定する（ステップＳ２６０）。判定の基準については、後述する。
ここで、フラッシュメモリカード７０にデータを一時的に書き込むと判定された場合（ステップＳ２６０でＹｅｓ）、データをフラッシュメモリカード７０に書き込み（ステップＳ２６１）、ネットワーク６０が利用可能かどうか調べる（ステップＳ２６２）。
また、フラッシュメモリカード７０にデータを一時的に書き込むと判定されない場合（ステップＳ２６０でＮｏ）、ネットワーク６０が利用可能かどうか調べる（ステップＳ２６２）。
ここで、ネットワーク６０が利用可能でない場合（ステップＳ２６２でＮｏ）、何もしないで終了する。
また、ネットワーク６０が利用可能である場合（ステップＳ２６２でＹｅｓ）、擬似ドライバ１２４は、ネットワーク６０のサーバ５０にデータを書き込む（ステップＳ２６３）。
【００４０】
次に、擬似ドライバ１２４は、フラッシュメモリカード７０の空き容量が十分かどうかを判定する（ステップＳ２６４）。
ここで、フラッシュメモリカード７０の空き容量が十分でないと判定された場合（ステップＳ２６４でＮｏ）、擬似ドライバ１２４は、フラッシュメモリカード７０内の不要なファイルを削除して（ステップＳ２６５）、フラッシュメモリカード７０の空き容量が十分かどうかを判定する工程（ステップＳ２６４）に戻る。
また、フラッシュメモリカード７０の空き容量が十分であると判定された場合（ステップＳ２６４でＹｅｓ）、何もせずに終了する。
【００４１】
ここで、フラッシュメモリカード７０にデータを書き込む基準を説明する。擬似ドライバ１２４は、以下の場合にデータをフラッシュメモリカード７０に一時的に書き込む。
（１）サーバ５０とのデータ転送速度が想定した基準に達しない場合。
（２）サーバ５０に書き込むデータ容量や必要なブロック数が想定した基準を超えた場合。
（３）サーバ５０にデータを書き込む所要時間が、想定した基準を越えそうな場合。
（４）フラッシュメモリカード７０の記憶容量に十分な余裕がある場合。
【００４２】
次に、ファイルの読み込み処理について説明する。読み込み対象のファイルは、前記した条件に合致する場合、フラッシュメモリカード７０に一時的に書き込まれている可能性がある。この場合、擬似ドライバ１２４は、読み込み対象のファイルが最新のファイルであることを確認できれば、フラッシュメモリカード７０から読み込むファイルを、読み込み対象ファイルとして扱える。図１０は、本実施例におけるファイル読み込み処理を示すフローチャートであり、本図を用いて、ファイル読み込み処理を説明する。
【００４３】
最初に、擬似ドライバ１２４は、フラッシュメモリカード７０に記憶されているファイルに関する情報を取得する（ステップＳ２７０）。
次に、この情報から、対象ファイルがフラッシュメモリカード７０に保存されているかを調べる（ステップＳ２７１）。
ここで、フラッシュメモリカード７０に対象ファイルが保存されている場合、（ステップＳ２７１でＹｅｓ）、ネットワーク６０が利用可能かどうか調べる（ステップＳ２７２）。
ここで、ネットワーク６０が利用可能でない場合（ステップＳ２７２でＮｏ）、擬似ドライバ１２４は、フラッシュメモリカード７０に記憶されている対象ファイルを読み込み終了する（ステップＳ２７８）。
また、ネットワーク６０が利用可能である場合（ステップＳ２７２でＹｅｓ）、擬似ドライバ１２４は、サーバ５０にある対象ファイルに関する情報を取得する（ステップＳ２７４）。
【００４４】
次に、擬似ドライバ１２４は、フラッシュメモリカード７０の対象ファイルおよびサーバ５０の対象ファイルについて、それぞれタイムスタンプを比較して、フラッシュメモリカード７０の対象ファイルの方が最新かどうか判定する（ステップＳ２７６）。
ここで、フラッシュメモリカード７０の対象ファイルの方が最新である場合（ステップＳ２７６でＹｅｓ）、擬似ドライバ１２４は、フラッシュメモリカード７０に記憶されている対象ファイルを読み込み終了する（ステップＳ２７８）。
また、サーバ５０の対象ファイルの方が最新である場合（ステップＳ２７６でＮｏ）、擬似ドライバ１２４は、サーバ５０にある対象ファイルを読み込み終了する（ステップＳ２７９）。
また、フラッシュメモリカード７０に対象ファイルが保存されていない場合（ステップＳ２７１でＮｏ）、ネットワーク６０が利用可能かどうか調べる（ステップＳ２７３）。
ここで、ネットワーク６０が利用可能である場合（ステップＳ２７３でＹｅｓ）、擬似ドライバ１２４は、サーバ５０にある対象ファイルに関する情報を取得する（ステップＳ２７５）。次に、この情報から、対象ファイルがサーバ５０に保存されているか調べる（ステップＳ２７７）。
ここで、サーバ５０に対象ファイルが保存されている場合（ステップＳ２７７でＹｅｓ）、擬似ドライバ１２４は、サーバ５０にある対象ファイルを読み込み終了する（ステップＳ２７９）。
また、ネットワーク６０が利用可能でない場合（ステップＳ２７３でＮｏ）、あるいはサーバ５０に対象ファイルが保存されていない場合（ステップＳ２７７でＮｏ）、対象ファイルが見つからないため、ファイル読み込み処理を終了する。
【００４５】
次に、ファイルの読み込み処理において、読み込み対象ファイルと同一グループのファイルに対する先読み処理について説明する。
即ち、擬似ドライバ１２４は、ネットワーク６０が利用可能である場合は、対象ファイルに加えて、対象ファイルが存在するディレクトリの配下にあって、対象ファイルの読み込みに続いて読み込まれる可能性があると判断されるファイルをリストアップする。
続いて、擬似ドライバ１２４は、リストアップしたファイルを、サーバ５０から先に読み込んでフラッシュメモリカード７０に記憶させておき、必要に応じてフラッシュメモリカード７０から読み込む。
図１１は、フラッシュメモリカード７０からファイルを先読みする処理を示すフローチャートであり、本図を用いて、ファイルの先読み処理を説明する。
【００４６】
最初に、擬似ドライバ１２４は、一定の期間以内にアクセスしたファイルに関する情報を取得する（ステップＳ２８０）。
次に、擬似ドライバ１２４は、最後にアクセスしたファイルと、このファイルが格納されるディレクトリ配下にあるファイルについてのファイルリストを作成する（ステップＳ２８１）。
次に、擬似ドライバ１２４は、フラッシュメモリカード７０の空き容量が、ファイルリストに記載された全てのファイルの容量以上かどうかを判定する（ステップＳ２８２）。
ここで、フラッシュメモリカード７０の空き容量が十分でないと判定された場合（ステップＳ２８２でＮｏ）、擬似ドライバ１２４は、フラッシュメモリカード７０内の不要なファイルを削除して（ステップＳ２８３）、フラッシュメモリカード７０の空き容量が十分かどうかを判定する工程（ステップＳ２８２）に戻る。
また、フラッシュメモリカード７０の空き容量は十分あると判定された場合（ステップＳ２８２でＹｅｓ）、擬似ドライバ１２４は、ファイルリストに記載されたファイルを、サーバ５０から読み込む（ステップＳ２８４）。
最後に、擬似ドライバ１２４は、サーバ５０から読み込んだファイルをフラッシュメモリカード７０に書き込む（ステップＳ２８５）。
【００４７】
前述したような実施例２によれば、次のような効果がある。
（１）フラッシュメモリカード７０は、擬似された記憶装置（以下、擬似記憶装置と略す）であることに加えて、一時的にデータを記憶するバッファとしても機能するため、ネットワーク６０のデータ転送速度に影響されにくい擬似記憶装置を実現できる。
【実施例３】
【００４８】
本発明の実施例３について、図１、図２、図１２および図１３を参照して説明する。本実施例では、ブロックデバイス内のファイル情報やディレクトリの階層構造などを管理する管理領域は、フラッシュメモリカード７０の管理領域とサーバ５０の管理領域とに区別されて管理される。
本実施例による擬似記憶装置としての接続処理および管理領域への記録処理について、以下に説明する。
【００４９】
最初に、擬似記憶装置としての接続処理について説明する。
図１２は、本実施例における擬似記憶装置としての接続処理を示すフローチャートであり、本図を用いて、ファイルの書き込み処理を説明する。
最初に、擬似ドライバ１２４は、フラッシュメモリカード７０を擬似記憶装置としてマウントする（ステップＳ２９０）。
次に、擬似ドライバ１２４は、ネットワーク６０に接続されているサーバ５０に関する情報を取得する（ステップＳ２９１）。
次に、コンピュータ１は、通信手段２０を介してネットワーク６０上のサーバ５０と接続する（ステップＳ２９２）。
【００５０】
次に、サーバ５０との接続を判定する（ステップＳ２９３）。
ここで、サーバ５０との接続が成功した場合（ステップＳ２９３でＹｅｓ）、擬似ドライバ１２４は、フラッシュメモリカード７０と、ネットワーク６０のサーバ５０とをブロックデバイスとして用いる（ステップＳ２９４）。
また、サーバ５０との接続が成功しなかった場合（ステップＳ２９３でＮｏ）、擬似ドライバ１２４は、フラッシュメモリカード７０のみをブロックデバイスとして用いる（ステップＳ２９５）。
なお、フローチャートによる図示は略すが、サーバ５０との接続が成功しなかった場合（ステップＳ２９３でＮｏ）でも、サーバ５０の管理領域がフラッシュメモリカード７０内に存在する場合においては、サーバ５０は、フラッシュメモリカード７０をブロックデバイスとして使用することで、管理領域から取得できるファイル名やファイル更新日時などのインデックス情報のみを表示する。
【００５１】
続いて、管理領域への記録処理について説明する。
図１３は、本実施例における管理領域への記録処理を示すフローチャートであり、本図を用いて、ファイル書き込み処理を説明する。
最初に、コンピュータ１は、通信手段２０を介してネットワーク６０上のサーバ５０と接続する（ステップＳ３００）。
次に、擬似ドライバ１２４は、サーバ５０上の管理領域をフラッシュメモリカード７０に記録する（ステップＳ３０１）。
【００５２】
次に、擬似ドライバ１２４は、ユーザがサーバ５０を継続して利用するかどうかを判定する（ステップＳ３０２）。
ここで、擬似ドライバ１２４は、ユーザがサーバ５０の利用を継続すると判定した場合（ステップＳ３０２でＹｅｓ）、ユーザによるファイルの入出力を確認する（ステップＳ３０３）。
ここで、ユーザによるファイルの入出力が確認できない場合（ステップＳ３０３でＮｏ）、ユーザがサーバ５０を継続して利用するかどうかを判定する工程（ステップＳ３０２）に戻る。
また、ユーザによるファイルの入出力が確認できた場合（ステップＳ３０３でＹｅｓ）、サーバ５０の管理領域をフラッシュメモリカード７０に記録して（ステップＳ３０４）、ユーザがサーバ５０の利用を継続するかを判定する工程（ステップＳ３０２）に戻る。
他方で、擬似ドライバ１２４は、ユーザがサーバ５０の利用を継続しないと判定した場合（ステップＳ３０２でＮｏ）、サーバ５０の管理領域をフラッシュメモリカード７０に記録する（ステップＳ３０５）。
最後に、ネットワーク６０上のサーバ５０との接続を切断する（ステップＳ３０６）。
【００５３】
前述したような実施例３によれば、次のような効果がある。
（１）擬似ドライバ１２４はサーバ５０と接続できない場合でも、サーバ５０の管理領域はフラッシュメモリカード７０側に作成されるため、サーバ５０との接続に依らず、サーバ５０のファイルに関するインデックス情報を取得できる。
【実施例４】
【００５４】
本発明の実施例４について、図１、図２、図１４および図１５を参照して説明する。本実施例では、実施例２と同様に、フラッシュメモリカード７０は、数十メガバイトから数百メガバイト程度の記憶容量を備える。実施例２では、この記憶容量は、擬似ドライバ１２４が必要に応じてデータのバッファとして使用していたが、本実施例では、ユーザが利用可能な記憶領域を設ける。
【００５５】
図１４は、本実施例におけるフラッシュメモリカード７０による擬似記憶装置の機能構成図である。このフラッシュメモリカード７０による擬似記憶装置は、メモリカード領域７４と、擬似記憶領域７３と、フラッシュメモリコントローラ７２と、接続インターフェイス７１とで構成される。メモリカード領域７４は、フラッシュメモリ部７７を備え、ユーザが通常のメモリーカードとして使用する領域である。また、擬似記憶領域７３は、ネットワーク６０のサーバ５０と接続するための情報を記憶する記憶領域である。フラッシュメモリコントローラ７２は、メモリカード領域７４および擬似記憶領域７３におけるデータの記憶を制御する。接続インターフェイス７１は、コンピュータ１のメモリドライブ３０と接続して、データの入出力を行う。
【００５６】
上記したフラッシュメモリカード７０をコンピュータ１に接続した場合、コンピュータ１から見ると、ｐｕｂｌｉｃおよびｐｒｉｖａｔｅの２つのボリュームがマウントされる。即ち、メモリカード領域７４はｐｕｂｌｉｃボリュームにマウントされ、擬似記憶領域７３はｐｒｉｖａｔｅボリュームにマウントされる。従って、ユーザは、フラッシュメモリカード７０内部の記憶領域が２つに分割されたように見えるため、ｐｒｉｖａｔｅボリュームの実際の記憶領域であるネットワーク６０のサーバ５０を意識することなく、サーバ５０の記憶領域を使用できる。
【００５７】
図１５は、複数のフラッシュメモリカード７０を適用した場合の概略構成図である。複数のユーザが、それぞれフラッシュメモリカード（７０Ａ，７０Ｂ，７０Ｃ）を保持することで、例えば、メモリカードＡというフラッシュメモリカード７０Ａを保持するユーザは、フラッシュメモリカード７０Ａのｐｒｉｖａｔｅボリューム７４Ａを占有できる。即ち、他のユーザは、フラッシュメモリカード７０Ａのｐｒｉｖａｔｅボリューム７４Ａに対して、データの参照を含む全てのアクセスを行うことはできない。また、フラッシュメモリカード７０Ａのｐｕｂｌｉｃボリューム７３Ａは、サーバ５０の記憶領域であるため、他のユーザとデータを共有できる。
【００５８】
前述したような実施例４によれば、次のような効果がある。
（１）フラッシュメモリカード７０は、ユーザのアクセスのみ可能なボリュームと、サーバの記憶領域を共有するボリュームとを備えるため、ユーザは、データ内容に応じて、データの記憶先を容易に切り換えることができる。
【実施例５】
【００５９】
本発明の実施例５について、図１、図２、図１６および図１７を参照して説明する。本実施例では切替えスイッチを備え、ユーザはこの切替えスイッチを操作することで、ネットワークの接続先を切り換えることができる擬似記憶装置を説明する。
図１６は、本実施例におけるフラッシュメモリカード７０Ｄによる擬似記憶装置の外観構成図である。フラッシュメモリカード７０Ｄの側面側には、ロータリ式の切替えスイッチ７５が備わり、フラッシュメモリカード７０Ｄのユーザは、この切替えスイッチ７５を回転させることにより、ネットワークの接続先の切り換えが可能になる。また、フラッシュメモリカード７０Ｄの表面側には、切替えスイッチ７５による切り換え状態を表示する表示窓７６を備える。
【００６０】
図１７は、本実施例におけるフラッシュメモリカード７０Ｄによる擬似記憶装置の機能構成図である。フラッシュメモリカード７０Ｄは、接続インターフェイス７１Ｄと、フラッシュメモリコントローラ７２Ｄと、切り換えスイッチ７５と、フラッシュメモリ部７７とを備える。ここで、フラッシュメモリ部７７は、接続先のサーバ５０に関する情報を保持する３種類の擬似記憶領域（７３Ｄ，７３Ｅ，７３Ｆ）を具備する。ユーザは、切替えスイッチ７５により、接続先のサーバ５０を選択できる。また、ユーザのサーバ５０の権限に応じて、切り換えスイッチ７５により選択できる接続先の数を変更することもできる。
前述したような実施例５によれば、次のような効果がある。
（１）ユーザは、必要に応じて切り換えスイッチ７５を切り換えることで、接続先のサーバ５０を変更することができ、複数のサーバ５０の情報を選択的に共有できる。
【００６１】
なお、本発明は前述の実施の形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、擬似ドライバ１２４は、デバイスドライバ１２０の層に独立したデバイスドライバとして存在したが、独立したドライバではなく、フラッシュメモリドライバ１２１に擬似ドライバ１２４の必要な機能が付随して、フラッシュメモリドライバ１２１のエントリポイントから処理を強制的に分岐させる形式であっても良い。
【図面の簡単な説明】
【００６２】
【図１】本発明のデバイス装置の一実施形態が適用されるコンピュータシステムを示す図。
【図２】コンピュータの階層構造を示すレイヤー図。
【図３】デバイス装置による、ネットワークのサーバとのデータ入出力方法を示すフローチャート。
【図４】擬似ドライバのｏｐｅｎ命令を示すフローチャート。
【図５】擬似ドライバのｃｌｏｓｅ命令を示すフローチャート。
【図６】擬似ドライバのｉｏｃｔｌ命令を示すフローチャート。
【図７】擬似ドライバのｒｅａｄ命令を示すフローチャート。
【図８】擬似ドライバのｗｒｉｔｅ命令を示すフローチャート。
【図９】本実施例におけるファイル書き込み処理を示すフローチャート。
【図１０】本実施例におけるファイル読み込み処理を示すフローチャート。
【図１１】フラッシュメモリカードからファイルを先読みする処理を示すフローチャート。
【図１２】本実施例における擬似記憶装置としての接続処理を示すフローチャート。
【図１３】本実施例における管理領域への記録処理を示すフローチャート。
【図１４】本実施例におけるフラッシュメモリカードによる擬似記憶装置の機能構成図。
【図１５】本実施例における複数のフラッシュメモリカードを適用した場合の概略構成図。
【図１６】本実施例におけるフラッシュメモリカードによる擬似記憶装置の外観構成図。
【図１７】本実施例におけるフラッシュメモリカードによる擬似記憶装置の機能構成図。
【符号の説明】
【００６３】
１…コンピュータ、１０…制御部、２０…通信手段、３０…メモリドライブ、４０…ＨＤＤ、５０…サーバ、６０…ネットワーク、７０…フラッシュメモリカード、７１…接続インターフェイス、７２…フラッシュメモリコントローラ、７３…擬似記憶領域、７４…メモリカード領域、７５…スイッチ、７６…表示窓、７７…フラッシュメモリ部、１００…アプリケーション、１１０…ＯＳ、１１１…ブロックデバイス、１１２…ファイルシステム、１２０…デバイスドライバ、１２１…フラッシュメモリドライバ、１２２…ＨＤＤドライバ、１２３…ネットワークインターフェイスドライバ、１２４…擬似ドライバ、１３０…ハードウェア。
【図１】
2005284547.tif 000003
【図２】
2005284547.tif 000004
【図３】
2005284547.tif 000005
【図４】
2005284547.tif 000006
【図５】
2005284547.tif 000007
【図６】
2005284547.tif 000008
【図７】
2005284547.tif 000009
【図８】
2005284547.tif 000010
【図９】
2005284547.tif 000011
【図１０】
2005284547.tif 000012
【図１１】
2005284547.tif 000013
【図１２】
2005284547.tif 000014
【図１３】
2005284547.tif 000015
【図１４】
2005284547.tif 000016
【図１５】
2005284547.tif 000017
【図１６】
2005284547.tif 000018
【図１７】
2005284547.tif 000019