JP2005284547A - デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体 - Google Patents

デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体 Download PDF

Info

Publication number
JP2005284547A
JP2005284547A JP2004095620A JP2004095620A JP2005284547A JP 2005284547 A JP2005284547 A JP 2005284547A JP 2004095620 A JP2004095620 A JP 2004095620A JP 2004095620 A JP2004095620 A JP 2004095620A JP 2005284547 A JP2005284547 A JP 2005284547A
Authority
JP
Japan
Prior art keywords
driver
server
flash memory
memory card
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004095620A
Other languages
English (en)
Inventor
Masaru Tanaka
大 田中
Fumio Koyama
文夫 小山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004095620A priority Critical patent/JP2005284547A/ja
Publication of JP2005284547A publication Critical patent/JP2005284547A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】デバイス装置の一つであるメモリカードを用いて、ネットワーク上の特定のアドレスにアクセスする手段を提供する方法において、接続したサーバをホスト装置上のアプリケーション等から認識するためには、例えばドライブへの割り当てのように、ユーザにとって煩雑な操作が必要であった。また、メモリカードは、サーバと接続するための鍵として機能しているため、このメモリカードへの入出力操作によって、サーバに対する入出力を行うことはできなかった。
【解決手段】デバイス装置は、当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とする。
【選択図】 図2

Description

本発明は、ホスト装置と接続してホスト装置の周辺機能を提供する周辺機器のようなデバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体に関する。
従来、デバイス装置の一つであるメモリカードを用いて、ネットワーク上の特定のアドレスにアクセスする手段を提供する方法については、下記の特許文献1および特許文献2に記載のように、接続するサーバのアドレス等の情報をメモリカード内に保管しておき、ユーザは、このメモリカードをサーバと接続するための鍵としてホスト装置に接続することで、ホスト装置をネットワーク上の目的とするサーバに接続していた。
特開2001−155075 特開2003−216586
しかしながら、従来の方法では、接続したサーバをホスト装置上のアプリケーション等から認識するためには、例えばネットワークドライブへの割り当てのように、ユーザにとって煩雑な操作が必要であった。また、メモリカードは、サーバと接続するための鍵として機能しているため、アプリケーション上からメモリカードへの入出力操作によって、サーバに対する入出力を行うことはできなかった。
上記した課題を解決するために、本発明のデバイス装置は、デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバを介して定義された機能を実現するデバイス装置であって、当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とする。
上記構成によれば、デバイス装置に対応したデバイスドライバにより、ホスト装置に対するデバイス装置の特定の機能は擬似されることから、ユーザは、特定の機能を使うための特別な操作は不要で、アプリケーション上でデバイス装置に対して通常の操作をすれば良いため、特定の機能を容易に実行できる。
上記した本発明のデバイス装置では、前記情報は、前記デバイスドライバから得られる場合と、前記デバイス装置から得られる場合が考えられる。
また、上記した本発明のデバイス装置では、前記情報は、前記ホスト装置が接続されたネットワークに関する情報であり、前記本来の機能は、記憶媒体とのデータの入出力機能であることに加えて、前記擬似される機能は、前記ネットワークとのデータの入出力機能であることが好ましい。
更に、上記した本発明のデバイス装置では、前記デバイスドライバは、前記ホスト装置から前記デバイスに対して送受するコマンドを、前記ネットワークに対するコマンドに変換することが好ましい。
上記構成によれば、デバイス装置に対するコマンドは、デバイスドライバによりネットワークに対するコマンドに変換されるため、ユーザは、ネットワークに対するコマンド等を使うことなく、ネットワークに対する入出力機能を使える。
上記した本発明のデバイス装置では、前記デバイス装置は、前記デバイスドライバにより擬似されることで、前記ホスト装置にメモリデバイスとして認識されることが好ましい。
また、上記した本発明のデバイス装置では、前記デバイス装置は、データの記憶領域を備えることが好ましい。
更に、上記した本発明のデバイス装置では、前記デバイス装置は切替えスイッチを備え、当該切替えスイッチにより、前記ネットワークの接続先が切り換わることが好ましい。
本発明のネットワークサーバとのデータの入出力方法では、デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバで定義した機能を実現するデバイス装置によるネットワークサーバとのデータの入出力方法であって、当該デバイス装置を当該ホスト装置に接続する工程と、当該デバイス装置に対応付けられた当該デバイスドライバが、当該ネットワークに関する情報を取得する工程と、当該情報に基づいて、当該ホスト装置を当該サーバに接続する工程と、当該デバイスドライバが、当該デバイス装置を当該サーバに接続された記憶装置として擬似する工程と、当該デバイス装置を介して、当該ホスト装置と当該サーバとの間で、データの入出力を行う工程とを備えることを特徴とする。
上記方法によれば、デバイス装置はネットワークサーバに接続された記憶装置として擬似されるため、ユーザは、ホスト装置とサーバとのファイルデータの入出力をデバイス装置を介して容易に操作できる。
また、本発明はデバイスドライバプログラムおよびそのプログラムを記録した記録媒体として捉えることもできる。すなわち、オペレーティングシステムを実行するホスト装置に接続されたデバイス装置を制御するデバイスドライバのデバイスドライバプログラムであって、当該ホスト装置と当該デバイス装置とを接続することで得られる情報に基づいて、当該ホスト装置に対する当該デバイス装置の本来の機能とは異なる機能に擬似する処理を、コンピュータに実現させることを要旨とする。デバイスドライバプログラムの記録媒体としては、ROM、RAMおよびICカードなどコンピュータが読み取り可能な種々の媒体を利用することができる。
以下、本発明に係るデバイス装置の実施例について、図面を参照して説明する。
図1は、本発明のデバイス装置の一実施形態が適用されるコンピュータシステムを示す図である。
この図には、ホスト装置であるコンピュータ1と、コンピュータ1に接続可能なフラッシュメモリを内蔵するフラッシュメモリカード70と、ネットワーク60を介して接続されるサーバ50とが示されている。
コンピュータ1には、制御部10と、通信手段20と、外部記憶手段であるHDD40と、記憶媒体の入出力手段であるメモリドライブ30とが設けられている。
なお、このコンピュータ1には、上記以外にも、図示を略したユーザとのインターフェイス手段、内部記憶手段、演算手段、電源供給手段などが設けられている。
制御部10は、コンピュータ1全体の基本的な管理を行うOS(Operating System)110と、コンピュータ1を所定の役目の装置として動作させるアプリケーション100と、通信手段20やHDD40やメモリドライブ30などを制御するデバイスドライバ120とを備える。
ここで、通信手段20、HDD40およびメモリドライブ30は、デバイス装置と呼ばれる。これらの仕様や制御方法は製品により大きく異なるため、デバイスドライバ120は、これらの仕様や制御方法の差異を吸収して、OS110から直接制御できるように機能する。このため、デバイスドライバ120は、デバイスの製品によって異なるのに加えて、多くはOS110によっても異なる。従って、ユーザは、デバイス装置を使用する際に、デバイス装置およびOS110に対応したデバイスドライバ120をコンピュータ1にインストールする必要がある。
なお、制御部10は、前記したOS110、アプリケーション100およびデバイスドライバ120に加えて、図示を略すが、ハードウェア資源としてのCPU、ROM、RAM、論理回路およびレジスタと、ROM等に記憶されたBIOSなどの基本ソフトウェアとが有機的に協働して、所定の機能を実現している。
メモリドライブ30は、記憶媒体であるフラッシュメモリカード70を装着して、フラッシュメモリカード70の情報の読み込みおよび書き込みを行う。このフラッシュメモリカード70は、何度でも電気的に記憶の消去および書き込みが可能なROMの一種を内蔵する。具体的には、このフラッシュメモリカード70には、コンパクトフラッシュ(登録商標)、スマートメディア、メモリースティックなどのようなメモリーカードを採用できる。なお、本実施例において、このフラッシュメモリカード70は、数百文字程度のキャラクタコードを記憶できれば良く、ユーザが使用できる領域が数キロバイト程度の記憶容量で充分である。
通信手段20は、コンピュータ1に装着して、LANのようなネットワーク60に接続するネットワークインターフェイスカードを採用できる。ここで、ネットワーク60は、例えば、TCP/IPを通信プロトコルとするネットワークであり、サーバ50はこのネットワークに接続されているファイルサーバである。このサーバ50と接続するために必要なアドレスやポートに関する情報は、フラッシュメモリカード70に記憶されている。
なお、フラッシュメモリカード70のように、デバイス側でサーバ50の情報を記憶する以外にも、デバイスドライバ120がサーバ50の情報をデータとして保持している形態や、デバイスドライバ120は、接続されたフラッシュメモリカード70のデバイスIDを取得して識別し、デバイスドライバ120が保持する情報からサーバ50に関する情報を選択する形態を採用できる。
図2は、コンピュータ1の階層構造を示すレイヤー図である。この図では、下層から、ハードウェア130の層、ハードウェア130を制御するデバイスドライバ120の層、デバイスドライバ120を介してハードウェア130を制御するOS110の層、OS110を利用して動作するアプリケーション100の層という順序で積層される。
ここで、ハードウェア130の層がフラッシュメモリカード70の場合、HDD40の場合およびネットワークインターフェイス20の場合について説明する。
先ず、ハードウェア130の層がフラッシュメモリカード70の場合、対応するデバイスドライバ120の層は、フラッシュメモリドライバ121およびフラッシュメモリカード70を異なるデバイスとして擬似する擬似ドライバ124である。
ここでデバイスドライバ120の層に擬似ドライバ124が存在せず、フラッシュメモリドライバ121のみが存在する場合は、フラッシュメモリドライバ121は、OS110からの指示に従い、記憶媒体であるフラッシュメモリカード70に対して、データの書き込みと、読み込みとを制御する。なお、このフラッシュメモリドライバ121は、メモリドライブ30のドライバ機能も包含している。
本実施例では、擬似ドライバ124は、フラッシュメモリドライバ121がOS110にインストールされた後にインストールされ、デバイスドライバ120の層に存在する。
この擬似ドライバ124は、フラッシュメモリドライバ121が公開するエクスポート関数のエントリポイントを、擬似ドライバ124のエントリポイントに置き換えることで、OS110側からのフラッシュメモリドライバ121に対する命令を取得できる。
即ち、本実施例においては、フラッシュメモリドライバ121は、デバイスドライバ120の層に存在はするが、OS110からフラッシュメモリドライバ121への命令は、擬似ドライバ124が取得するため、OS110からの指示でフラッシュメモリドライバ121の機能が実行されることはない。この擬似ドライバ124の各機能については、後述する。
次に、ハードウェア130の層がHDD40の場合、対応するデバイスドライバ120の層は、HDDドライバ122である。更に、ハードウェア130の層が通信手段であるネットワークインターフェイス20の場合、対応するデバイスドライバ120の層は、ネットワークインターフェイスドライバ123である。
ここで、デバイスドライバ120の層が、フラッシュメモリドライバ121およびHDDドライバ122である場合、OS110の層ではブロックデバイス111およびファイルシステム112が対応する。ブロックデバイス111は、概念として、小容量の単位に分割されたブロックの集合体であり、ランダムアクセスをサポートする記憶デバイスである。また、ファイルシステム112は、このブロックデバイス111を介してファイルに対するデータの読み書きを行う。従って、このファイルシステム112から見ると、ブロックデバイス111は、ハードウェア130に依存したデバイスドライバ120の違いを吸収すると共に、デバイスドライバ120に依存しないハードウェア130とのインターフェイスを、ファイルシステム112に提供している。
図3は、デバイス装置とネットワークのサーバとのデータ入出力方法を示すフローチャートであり、図2も参照して説明する。
最初に、デバイス装置をホスト装置に接続する工程であり、具体的には、ユーザは、フラッシュメモリを内蔵したフラッシュメモリカード70を、コンピュータ1のメモリドライブ30に装着する(ステップS200)。
次に、デバイス装置に対応付けられたデバイスドライバが、ネットワークに関する情報を取得する工程であり、フラッシュメモリカード70に対応した擬似ドライバ124は、フラッシュメモリカード70に記憶されたサーバ50に関する情報を読み込む(ステップS201)。なお、サーバ50に関する情報とは、ネットワーク60上のサーバ50に接続するために必要なサーバ50のアドレス、ポート番号などである。また、図2におけるサーバ50は、図示を略したが、ネットワークインターフェイス20の下部に位置し、このネットワークインターフェイス20と接続されている。
次に、情報に基づいてホスト装置をサーバに接続する工程であり、サーバ50と接続するために必要な情報に基づき、コンピュータ1は、通信手段20を介してネットワーク60上のサーバ50と接続する(ステップS202)。
次に、デバイスドライバが、デバイス装置をサーバに接続された記憶装置として擬似する工程であり、先ず、ネットワーク60上のサーバ50に対する入出力方法を、NBD(Network Block Device)というプロトコルで確保するため、コンピュータ1は、サーバ50のブロックデバイス情報を取得する(ステップS203)。ここで、NBDは、サーバ50が提供するブロックデバイスを、ネットワークを経由してローカルのブロックデバイスとして扱えるプロトコルである。
次に、コンピュータ1はサーバ50とNBDによる接続を行い、これを受けて、擬似ドライバ124は、サーバ50をブロックデバイスの記憶装置としてマウントすると共に、フラッシュメモリカード70をサーバ50に接続された記憶装置として擬似する(ステップS204)。
最後に、擬似されたデバイス装置を介して、ホスト装置とサーバとの間で、データの入出力を行う工程であり、コンピュータ1のアプリケーション100は、記憶装置として擬似されたフラッシュメモリカード70を介して、ネットワーク60のサーバ50との間でファイルの入出力を行う(ステップS205)。
次に、擬似ドライバ124で実行する命令について、図4、図5、図6、図7および図8を参照して説明する。
擬似ドライバ124がハードウェア130層のデバイスに対して実行する命令は、通常のデバイスドライバがデバイスに対して実行する命令と同様に、次のような命令である。
(1)open
(2)close
(3)ioctl
(4)read
(5)write
ここで、上記した命令について詳説する。
図4は、擬似ドライバ124のopen命令を示すフローチャートであり、本図を用いてopen命令の処理を説明する。
最初に、擬似ドライバ124は、フラッシュメモリカード70に対してopen命令を実行して、フラッシュメモリカード70と接続する(ステップS210)。
次に、擬似ドライバ124は、フラッシュメモリカード70に対してread命令を実行する(ステップS211)。
次に、擬似ドライバ124は、read命令で得られる情報から、フラッシュメモリカード70に記憶されているネットワーク60のサーバ50のアドレス番号、ポート番号などを読み込む(ステップS212)。
次に、擬似ドライバ124は、ネットワーク60にアクセスするためのI/Oアドレスを指定して、割り込み番号を設定する(ステップS213)。
次に、擬似ドライバ124は、必要なデバイスからの割り込みを許可する(ステップS214)。
次に、擬似ドライバ124は、読み込んだアドレス番号およびポート番号に従い、ネットワーク60のサーバ50に接続する(ステップS215)。
最後に、擬似ドライバ124は、サーバ50からブロックデバイスのブロックサイズやブロック数などのブロックデバイスに関する情報を取得して記憶する(ステップS216)。
図5は、擬似ドライバ124のclose命令を示すフローチャートであり、本図を用いてclose命令の処理を説明する。
最初に、擬似ドライバ124は、ネットワーク60のサーバ50との接続を解除する(ステップS220)。
次に、擬似ドライバ124は、記憶していたサーバ50の情報を破棄する(ステップS221)。
次に、擬似ドライバ124は、フラッシュメモリカード70に対してclose命令を実行してフラッシュメモリカード70との接続を解除する(ステップS222)。
次に、擬似ドライバ124は、デバイスからの割り込みを禁止する(ステップS223)。
最後に、擬似ドライバ124は、設定した割り込み番号を破棄して割り込み設定を解除する(ステップS224)。
図6は、擬似ドライバ124のioctl命令を示すフローチャートであり、本図を用いてioctl命令の処理を説明する。
最初に、擬似ドライバ124は、ブロックサイズを取得する命令かどうかを判定する(ステップS230)。
ここで、ioctl命令がブロックサイズを取得する命令であった場合(S230でYes)、サーバ50から取得したブロックサイズの情報を返して終了する(ステップS231)。また、ブロックサイズを取得する命令でなかった場合(S230でNo)、擬似ドライバ124は、ioctl命令がブロック数を取得する命令かどうかを判定する(ステップS232)。
ここで、ブロック数を取得する命令であった場合(S232でYes)、サーバ50から取得したブロック数の情報を返して終了する(ステップS233)。また、ブロック数を取得する命令でなかった場合(S232でNo)は、何もしないで終了する。
図7は、擬似ドライバ124のread命令を示すフローチャートであり、本図を用いてread命令の処理を説明する。
最初に、擬似ドライバ124は、読み出すブロック番号とブロック数とを指定する(ステップS240)。
次に、擬似ドライバ124は、read命令、ブロック番号およびブロック数をネットワーク60のプロトコルに合わせて整形する(ステップS241)。
次に、擬似ドライバ124は、整形したread命令、ブロック番号およびブロック数の情報をサーバ50に送信する(ステップS242)。
次に、擬似ドライバ124は、サーバ50からの応答を受信する(ステップS243)。
次に、擬似ドライバ124は、受信した信号から、ネットワーク60のプロトコルに従って書き込まれた種々のデータを抽出する(ステップS244)。
次に、擬似ドライバ124は、抽出したデータを正常に読み込めたかどうかを判定する(ステップS245)。
ここで、抽出データを正常に読み込めたと判定した場合(ステップS245でYes)、読み込みは成功したと判定し(ステップS247)、読み込みが成功したという情報と共に、読み込んだデータをOS110に転送する(ステップS248)。また、抽出データを正常に読み込めなかったと判定した場合(ステップS245でNo)、読み込みが失敗したという情報をサーバに送る(ステップS246)。
図8は、擬似ドライバ124のwrite命令を示すフローチャートである。
最初に、擬似ドライバ124は、書き込むデータのアドレスを指定する(ステップS250)。
次に、擬似ドライバ124は、書き込むブロック番号およびブロック数を指定する(ステップS251)。
次に、擬似ドライバ124は、write命令、ブロック番号およびブロック数をネットワーク60のプロトコルに合わせて整形する(ステップS252)。
次に、擬似ドライバ124は、整形したwrite命令、ブロック番号およびブロック数の情報をサーバ50に送信する(ステップS253)。
次に、擬似ドライバ124は、サーバ50からの応答を受信する(ステップS254)。
次に、擬似ドライバ124は、受信した信号から、ネットワーク60のプロトコルに従って書き込まれた種々のデータを抽出する(ステップS255)。
次に、擬似ドライバ124は、抽出データから正常に書き込めたかどうかを判定する(ステップS256)。
ここで、抽出データから正常に書き込めたと判定した場合(ステップS256でYes)、書き込みは成功したと判定し、書き込みが成功したという情報をOS110に送る(ステップS257)。また、正常に書き込めなかったと判定した場合(ステップS256でNo)、書き込みが失敗したという情報をOS110に送る(ステップS258)。
前述したような実施例1によれば、次のような効果がある。
(1)OS110側、アプリケーション100側およびコンピュータ1のユーザ側から見ると、サーバ50に接続された記憶装置として擬似されるフラッシュメモリカード70と、内部の記憶媒体を使用する通常のフラッシュメモリカード70とを等価に扱うことができる。
(2)フラッシュメモリカード70は、サーバ50と接続するために必要なアドレスおよびポート番号のような情報を記憶できる容量があれば十分であり、フラッシュメモリカード70の記憶素子の容量を節約できる。
本発明の実施例2について、図1、図2、図9、図10および図11を参照して説明する。なお、以下の説明では、既に説明した部分と同一の部分については、同一符号を付してその説明を省略する。
実施例1では、フラッシュメモリカード70は、サーバ50と接続するために必要な情報を保持するために、数キロバイト程度の記憶容量であったが、本実施例では、フラッシュメモリカード70は、数十メガバイトから数百メガバイト程度の記憶容量を備える。
擬似ドライバ124は、サーバ50とのデータの入出力時において、必要に応じてこのデータをフラッシュメモリカード70内に一時的に保存する。即ち、擬似ドライバ124は、外部に対しては、フラッシュメモリカード70をサーバ50に接続された記憶装置として擬似する。また、擬似ドライバ124は、デバイスドライバ120の層の内部において、フラッシュメモリドライバ121のエントリポイントに関する情報に従い、フラッシュメモリカード70のデータを記憶する機能を呼び出すことで、フラッシュメモリカード70を本来のメモリデバイスとしても使用する。本実施例によるファイルの書き込み処理および読み込み処理について、以下に説明する。
最初に、ファイルの書き込み処理について説明する。
図9は、本実施例におけるファイル書き込み処理を示すフローチャートであり、本図を用いて、ファイル書き込み処理を説明する。
最初に、擬似ドライバ124は、データを一時的にフラッシュメモリカード70に書き込むかを判定する(ステップS260)。判定の基準については、後述する。
ここで、フラッシュメモリカード70にデータを一時的に書き込むと判定された場合(ステップS260でYes)、データをフラッシュメモリカード70に書き込み(ステップS261)、ネットワーク60が利用可能かどうか調べる(ステップS262)。
また、フラッシュメモリカード70にデータを一時的に書き込むと判定されない場合(ステップS260でNo)、ネットワーク60が利用可能かどうか調べる(ステップS262)。
ここで、ネットワーク60が利用可能でない場合(ステップS262でNo)、何もしないで終了する。
また、ネットワーク60が利用可能である場合(ステップS262でYes)、擬似ドライバ124は、ネットワーク60のサーバ50にデータを書き込む(ステップS263)。
次に、擬似ドライバ124は、フラッシュメモリカード70の空き容量が十分かどうかを判定する(ステップS264)。
ここで、フラッシュメモリカード70の空き容量が十分でないと判定された場合(ステップS264でNo)、擬似ドライバ124は、フラッシュメモリカード70内の不要なファイルを削除して(ステップS265)、フラッシュメモリカード70の空き容量が十分かどうかを判定する工程(ステップS264)に戻る。
また、フラッシュメモリカード70の空き容量が十分であると判定された場合(ステップS264でYes)、何もせずに終了する。
ここで、フラッシュメモリカード70にデータを書き込む基準を説明する。擬似ドライバ124は、以下の場合にデータをフラッシュメモリカード70に一時的に書き込む。
(1)サーバ50とのデータ転送速度が想定した基準に達しない場合。
(2)サーバ50に書き込むデータ容量や必要なブロック数が想定した基準を超えた場合。
(3)サーバ50にデータを書き込む所要時間が、想定した基準を越えそうな場合。
(4)フラッシュメモリカード70の記憶容量に十分な余裕がある場合。
次に、ファイルの読み込み処理について説明する。読み込み対象のファイルは、前記した条件に合致する場合、フラッシュメモリカード70に一時的に書き込まれている可能性がある。この場合、擬似ドライバ124は、読み込み対象のファイルが最新のファイルであることを確認できれば、フラッシュメモリカード70から読み込むファイルを、読み込み対象ファイルとして扱える。図10は、本実施例におけるファイル読み込み処理を示すフローチャートであり、本図を用いて、ファイル読み込み処理を説明する。
最初に、擬似ドライバ124は、フラッシュメモリカード70に記憶されているファイルに関する情報を取得する(ステップS270)。
次に、この情報から、対象ファイルがフラッシュメモリカード70に保存されているかを調べる(ステップS271)。
ここで、フラッシュメモリカード70に対象ファイルが保存されている場合、(ステップS271でYes)、ネットワーク60が利用可能かどうか調べる(ステップS272)。
ここで、ネットワーク60が利用可能でない場合(ステップS272でNo)、擬似ドライバ124は、フラッシュメモリカード70に記憶されている対象ファイルを読み込み終了する(ステップS278)。
また、ネットワーク60が利用可能である場合(ステップS272でYes)、擬似ドライバ124は、サーバ50にある対象ファイルに関する情報を取得する(ステップS274)。
次に、擬似ドライバ124は、フラッシュメモリカード70の対象ファイルおよびサーバ50の対象ファイルについて、それぞれタイムスタンプを比較して、フラッシュメモリカード70の対象ファイルの方が最新かどうか判定する(ステップS276)。
ここで、フラッシュメモリカード70の対象ファイルの方が最新である場合(ステップS276でYes)、擬似ドライバ124は、フラッシュメモリカード70に記憶されている対象ファイルを読み込み終了する(ステップS278)。
また、サーバ50の対象ファイルの方が最新である場合(ステップS276でNo)、擬似ドライバ124は、サーバ50にある対象ファイルを読み込み終了する(ステップS279)。
また、フラッシュメモリカード70に対象ファイルが保存されていない場合(ステップS271でNo)、ネットワーク60が利用可能かどうか調べる(ステップS273)。
ここで、ネットワーク60が利用可能である場合(ステップS273でYes)、擬似ドライバ124は、サーバ50にある対象ファイルに関する情報を取得する(ステップS275)。次に、この情報から、対象ファイルがサーバ50に保存されているか調べる(ステップS277)。
ここで、サーバ50に対象ファイルが保存されている場合(ステップS277でYes)、擬似ドライバ124は、サーバ50にある対象ファイルを読み込み終了する(ステップS279)。
また、ネットワーク60が利用可能でない場合(ステップS273でNo)、あるいはサーバ50に対象ファイルが保存されていない場合(ステップS277でNo)、対象ファイルが見つからないため、ファイル読み込み処理を終了する。
次に、ファイルの読み込み処理において、読み込み対象ファイルと同一グループのファイルに対する先読み処理について説明する。
即ち、擬似ドライバ124は、ネットワーク60が利用可能である場合は、対象ファイルに加えて、対象ファイルが存在するディレクトリの配下にあって、対象ファイルの読み込みに続いて読み込まれる可能性があると判断されるファイルをリストアップする。
続いて、擬似ドライバ124は、リストアップしたファイルを、サーバ50から先に読み込んでフラッシュメモリカード70に記憶させておき、必要に応じてフラッシュメモリカード70から読み込む。
図11は、フラッシュメモリカード70からファイルを先読みする処理を示すフローチャートであり、本図を用いて、ファイルの先読み処理を説明する。
最初に、擬似ドライバ124は、一定の期間以内にアクセスしたファイルに関する情報を取得する(ステップS280)。
次に、擬似ドライバ124は、最後にアクセスしたファイルと、このファイルが格納されるディレクトリ配下にあるファイルについてのファイルリストを作成する(ステップS281)。
次に、擬似ドライバ124は、フラッシュメモリカード70の空き容量が、ファイルリストに記載された全てのファイルの容量以上かどうかを判定する(ステップS282)。
ここで、フラッシュメモリカード70の空き容量が十分でないと判定された場合(ステップS282でNo)、擬似ドライバ124は、フラッシュメモリカード70内の不要なファイルを削除して(ステップS283)、フラッシュメモリカード70の空き容量が十分かどうかを判定する工程(ステップS282)に戻る。
また、フラッシュメモリカード70の空き容量は十分あると判定された場合(ステップS282でYes)、擬似ドライバ124は、ファイルリストに記載されたファイルを、サーバ50から読み込む(ステップS284)。
最後に、擬似ドライバ124は、サーバ50から読み込んだファイルをフラッシュメモリカード70に書き込む(ステップS285)。
前述したような実施例2によれば、次のような効果がある。
(1)フラッシュメモリカード70は、擬似された記憶装置(以下、擬似記憶装置と略す)であることに加えて、一時的にデータを記憶するバッファとしても機能するため、ネットワーク60のデータ転送速度に影響されにくい擬似記憶装置を実現できる。
本発明の実施例3について、図1、図2、図12および図13を参照して説明する。本実施例では、ブロックデバイス内のファイル情報やディレクトリの階層構造などを管理する管理領域は、フラッシュメモリカード70の管理領域とサーバ50の管理領域とに区別されて管理される。
本実施例による擬似記憶装置としての接続処理および管理領域への記録処理について、以下に説明する。
最初に、擬似記憶装置としての接続処理について説明する。
図12は、本実施例における擬似記憶装置としての接続処理を示すフローチャートであり、本図を用いて、ファイルの書き込み処理を説明する。
最初に、擬似ドライバ124は、フラッシュメモリカード70を擬似記憶装置としてマウントする(ステップS290)。
次に、擬似ドライバ124は、ネットワーク60に接続されているサーバ50に関する情報を取得する(ステップS291)。
次に、コンピュータ1は、通信手段20を介してネットワーク60上のサーバ50と接続する(ステップS292)。
次に、サーバ50との接続を判定する(ステップS293)。
ここで、サーバ50との接続が成功した場合(ステップS293でYes)、擬似ドライバ124は、フラッシュメモリカード70と、ネットワーク60のサーバ50とをブロックデバイスとして用いる(ステップS294)。
また、サーバ50との接続が成功しなかった場合(ステップS293でNo)、擬似ドライバ124は、フラッシュメモリカード70のみをブロックデバイスとして用いる(ステップS295)。
なお、フローチャートによる図示は略すが、サーバ50との接続が成功しなかった場合(ステップS293でNo)でも、サーバ50の管理領域がフラッシュメモリカード70内に存在する場合においては、サーバ50は、フラッシュメモリカード70をブロックデバイスとして使用することで、管理領域から取得できるファイル名やファイル更新日時などのインデックス情報のみを表示する。
続いて、管理領域への記録処理について説明する。
図13は、本実施例における管理領域への記録処理を示すフローチャートであり、本図を用いて、ファイル書き込み処理を説明する。
最初に、コンピュータ1は、通信手段20を介してネットワーク60上のサーバ50と接続する(ステップS300)。
次に、擬似ドライバ124は、サーバ50上の管理領域をフラッシュメモリカード70に記録する(ステップS301)。
次に、擬似ドライバ124は、ユーザがサーバ50を継続して利用するかどうかを判定する(ステップS302)。
ここで、擬似ドライバ124は、ユーザがサーバ50の利用を継続すると判定した場合(ステップS302でYes)、ユーザによるファイルの入出力を確認する(ステップS303)。
ここで、ユーザによるファイルの入出力が確認できない場合(ステップS303でNo)、ユーザがサーバ50を継続して利用するかどうかを判定する工程(ステップS302)に戻る。
また、ユーザによるファイルの入出力が確認できた場合(ステップS303でYes)、サーバ50の管理領域をフラッシュメモリカード70に記録して(ステップS304)、ユーザがサーバ50の利用を継続するかを判定する工程(ステップS302)に戻る。
他方で、擬似ドライバ124は、ユーザがサーバ50の利用を継続しないと判定した場合(ステップS302でNo)、サーバ50の管理領域をフラッシュメモリカード70に記録する(ステップS305)。
最後に、ネットワーク60上のサーバ50との接続を切断する(ステップS306)。
前述したような実施例3によれば、次のような効果がある。
(1)擬似ドライバ124はサーバ50と接続できない場合でも、サーバ50の管理領域はフラッシュメモリカード70側に作成されるため、サーバ50との接続に依らず、サーバ50のファイルに関するインデックス情報を取得できる。
本発明の実施例4について、図1、図2、図14および図15を参照して説明する。本実施例では、実施例2と同様に、フラッシュメモリカード70は、数十メガバイトから数百メガバイト程度の記憶容量を備える。実施例2では、この記憶容量は、擬似ドライバ124が必要に応じてデータのバッファとして使用していたが、本実施例では、ユーザが利用可能な記憶領域を設ける。
図14は、本実施例におけるフラッシュメモリカード70による擬似記憶装置の機能構成図である。このフラッシュメモリカード70による擬似記憶装置は、メモリカード領域74と、擬似記憶領域73と、フラッシュメモリコントローラ72と、接続インターフェイス71とで構成される。メモリカード領域74は、フラッシュメモリ部77を備え、ユーザが通常のメモリーカードとして使用する領域である。また、擬似記憶領域73は、ネットワーク60のサーバ50と接続するための情報を記憶する記憶領域である。フラッシュメモリコントローラ72は、メモリカード領域74および擬似記憶領域73におけるデータの記憶を制御する。接続インターフェイス71は、コンピュータ1のメモリドライブ30と接続して、データの入出力を行う。
上記したフラッシュメモリカード70をコンピュータ1に接続した場合、コンピュータ1から見ると、publicおよびprivateの2つのボリュームがマウントされる。即ち、メモリカード領域74はpublicボリュームにマウントされ、擬似記憶領域73はprivateボリュームにマウントされる。従って、ユーザは、フラッシュメモリカード70内部の記憶領域が2つに分割されたように見えるため、privateボリュームの実際の記憶領域であるネットワーク60のサーバ50を意識することなく、サーバ50の記憶領域を使用できる。
図15は、複数のフラッシュメモリカード70を適用した場合の概略構成図である。複数のユーザが、それぞれフラッシュメモリカード(70A,70B,70C)を保持することで、例えば、メモリカードAというフラッシュメモリカード70Aを保持するユーザは、フラッシュメモリカード70Aのprivateボリューム74Aを占有できる。即ち、他のユーザは、フラッシュメモリカード70Aのprivateボリューム74Aに対して、データの参照を含む全てのアクセスを行うことはできない。また、フラッシュメモリカード70Aのpublicボリューム73Aは、サーバ50の記憶領域であるため、他のユーザとデータを共有できる。
前述したような実施例4によれば、次のような効果がある。
(1)フラッシュメモリカード70は、ユーザのアクセスのみ可能なボリュームと、サーバの記憶領域を共有するボリュームとを備えるため、ユーザは、データ内容に応じて、データの記憶先を容易に切り換えることができる。
本発明の実施例5について、図1、図2、図16および図17を参照して説明する。本実施例では切替えスイッチを備え、ユーザはこの切替えスイッチを操作することで、ネットワークの接続先を切り換えることができる擬似記憶装置を説明する。
図16は、本実施例におけるフラッシュメモリカード70Dによる擬似記憶装置の外観構成図である。フラッシュメモリカード70Dの側面側には、ロータリ式の切替えスイッチ75が備わり、フラッシュメモリカード70Dのユーザは、この切替えスイッチ75を回転させることにより、ネットワークの接続先の切り換えが可能になる。また、フラッシュメモリカード70Dの表面側には、切替えスイッチ75による切り換え状態を表示する表示窓76を備える。
図17は、本実施例におけるフラッシュメモリカード70Dによる擬似記憶装置の機能構成図である。フラッシュメモリカード70Dは、接続インターフェイス71Dと、フラッシュメモリコントローラ72Dと、切り換えスイッチ75と、フラッシュメモリ部77とを備える。ここで、フラッシュメモリ部77は、接続先のサーバ50に関する情報を保持する3種類の擬似記憶領域(73D,73E,73F)を具備する。ユーザは、切替えスイッチ75により、接続先のサーバ50を選択できる。また、ユーザのサーバ50の権限に応じて、切り換えスイッチ75により選択できる接続先の数を変更することもできる。
前述したような実施例5によれば、次のような効果がある。
(1)ユーザは、必要に応じて切り換えスイッチ75を切り換えることで、接続先のサーバ50を変更することができ、複数のサーバ50の情報を選択的に共有できる。
なお、本発明は前述の実施の形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、擬似ドライバ124は、デバイスドライバ120の層に独立したデバイスドライバとして存在したが、独立したドライバではなく、フラッシュメモリドライバ121に擬似ドライバ124の必要な機能が付随して、フラッシュメモリドライバ121のエントリポイントから処理を強制的に分岐させる形式であっても良い。
本発明のデバイス装置の一実施形態が適用されるコンピュータシステムを示す図。 コンピュータの階層構造を示すレイヤー図。 デバイス装置による、ネットワークのサーバとのデータ入出力方法を示すフローチャート。 擬似ドライバのopen命令を示すフローチャート。 擬似ドライバのclose命令を示すフローチャート。 擬似ドライバのioctl命令を示すフローチャート。 擬似ドライバのread命令を示すフローチャート。 擬似ドライバのwrite命令を示すフローチャート。 本実施例におけるファイル書き込み処理を示すフローチャート。 本実施例におけるファイル読み込み処理を示すフローチャート。 フラッシュメモリカードからファイルを先読みする処理を示すフローチャート。 本実施例における擬似記憶装置としての接続処理を示すフローチャート。 本実施例における管理領域への記録処理を示すフローチャート。 本実施例におけるフラッシュメモリカードによる擬似記憶装置の機能構成図。 本実施例における複数のフラッシュメモリカードを適用した場合の概略構成図。 本実施例におけるフラッシュメモリカードによる擬似記憶装置の外観構成図。 本実施例におけるフラッシュメモリカードによる擬似記憶装置の機能構成図。
符号の説明
1…コンピュータ、10…制御部、20…通信手段、30…メモリドライブ、40…HDD、50…サーバ、60…ネットワーク、70…フラッシュメモリカード、71…接続インターフェイス、72…フラッシュメモリコントローラ、73…擬似記憶領域、74…メモリカード領域、75…スイッチ、76…表示窓、77…フラッシュメモリ部、100…アプリケーション、110…OS、111…ブロックデバイス、112…ファイルシステム、120…デバイスドライバ、121…フラッシュメモリドライバ、122…HDDドライバ、123…ネットワークインターフェイスドライバ、124…擬似ドライバ、130…ハードウェア。

Claims (11)

  1. デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバを介して定義された機能を実現するデバイス装置であって、
    当該ホスト装置と接続することで得られる情報に基づいて、当該ホスト装置に対する本来の機能が、当該デバイスドライバにより異なる機能に擬似されることを特徴とするデバイス装置。
  2. 請求項1に記載のデバイス装置において、
    前記情報は、前記デバイスドライバから得られることを特徴とするデバイス装置。
  3. 請求項1に記載のデバイス装置において、
    前記情報は、前記デバイス装置から得られることを特徴とするデバイス装置。
  4. 請求項1乃至3のいずれか一項に記載のデバイス装置において、
    前記情報は、前記ホスト装置が接続されたネットワークに関する情報であり、
    前記本来の機能は、記憶媒体とのデータの入出力機能であることに加えて、
    前記擬似される機能は、前記ネットワークとのデータの入出力機能であることを特徴とするデバイス装置。
  5. 請求項4に記載のデバイス装置において、
    前記デバイスドライバは、前記ホスト装置から前記デバイスに対して送受するコマンドを
    、前記ネットワークに対するコマンドに変換することを特徴とするデバイス装置。
  6. 請求項4乃至5のいずれかに記載のデバイス装置において、
    前記デバイス装置は、前記ホスト装置にメモリデバイスとして認識されることを特徴とするデバイス装置。
  7. 請求項4乃至6のいずれか一項に記載のデバイス装置において、
    前記デバイス装置は、データの記憶領域を備えることを特徴とするデバイス装置。
  8. 請求項4乃至7のいずれか一項に記載のデバイス装置において、
    前記デバイス装置は切替えスイッチを備え、
    当該切替えスイッチにより、前記ネットワークの接続先が切り換わることを特徴とするデバイス装置。
  9. デバイスドライバを登録したホスト装置と接続することで、当該デバイスドライバで定義した機能を実現するデバイス装置によるネットワークサーバとのデータの入出力方法であって、
    当該デバイス装置を当該ホスト装置に接続する工程と、
    当該デバイス装置に対応付けられた当該デバイスドライバが、当該ネットワークに関する情報を取得する工程と、
    当該情報に基づいて、当該ホスト装置を当該サーバに接続する工程と、
    当該デバイスドライバが、当該デバイス装置を当該サーバに接続された記憶装置として擬似する工程と、
    当該デバイス装置を介して、当該ホスト装置と当該サーバとの間で、データの入出力を行う工程とを備えることを特徴とするネットワークサーバとのデータの入出力方法。
  10. オペレーティングシステムを実行するホスト装置に接続されたデバイス装置を制御するデバイスドライバのデバイスドライバプログラムであって、
    当該ホスト装置と当該デバイス装置とを接続することで得られる情報に基づいて、当該ホスト装置に対する当該デバイス装置の本来の機能とは異なる機能に擬似する処理を備えることを特徴とするデバイスドライバプログラム。
  11. 請求項10に記載のデバイスドライバプログラムを記録した記録媒体。
JP2004095620A 2004-03-29 2004-03-29 デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体 Withdrawn JP2005284547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004095620A JP2005284547A (ja) 2004-03-29 2004-03-29 デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004095620A JP2005284547A (ja) 2004-03-29 2004-03-29 デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体

Publications (1)

Publication Number Publication Date
JP2005284547A true JP2005284547A (ja) 2005-10-13

Family

ID=35182878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004095620A Withdrawn JP2005284547A (ja) 2004-03-29 2004-03-29 デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP2005284547A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法

Similar Documents

Publication Publication Date Title
KR100341180B1 (ko) 가상어드레싱버퍼회로,및어드레스번역방법,시스템bios의셰도잉방법,실제메모리최적화방법,실제메모리이용방법,cpu제어시스템에서의에뮬레이팅방법및cpu요청리디렉트방법
US8010750B2 (en) Network on chip that maintains cache coherency with invalidate commands
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US20080229046A1 (en) Unified support for solid state storage
RU2427892C2 (ru) Способ и устройство для установки политики кэширования в процессоре
CN111666044B (zh) 一种访问叠瓦式磁记录smr硬盘的方法及服务器
US20030191908A1 (en) Dense server environment that shares an IDE drive
JP5113537B2 (ja) 計算機システム、管理計算機及びデータ管理方法
US6145030A (en) System for managing input/output address accesses at a bridge/memory controller
KR20140005280A (ko) 가상 디스크 저장 기술
JP7326430B2 (ja) 不揮発性メモリエクスプレスデバイスのネットワークをサニタイズするときに使用する方法および装置
JP4521865B2 (ja) ストレージシステム、計算機システムまたは記憶領域の属性設定方法
EP1345113A2 (en) Management server
CN111736945B (zh) 基于智能网卡的虚拟机热迁移方法、装置、设备及介质
CN107329704A (zh) 一种缓存镜像方法及控制器
JP2008527511A (ja) データ記憶装置
US7881921B1 (en) Caching information to map simulation addresses to host addresses in computer system simulations
JP4053842B2 (ja) 計算機システム
CN117608856A (zh) NVMe加速卡内存扩展方法、系统、终端及存储介质
JP2005284547A (ja) デバイス装置、ネットワークサーバとのデータの入出力方法、デバイスドライバプログラムおよび記録媒体
JP4439798B2 (ja) ディスクアレイ装置の制御方法、及びディスクアレイ装置
JP2002312210A (ja) ディスクアレイへのファイルシステムアクセスを提供する方法
US7836247B2 (en) Method, apparatus, and computer program product for permitting access to a storage drive while the drive is being formatted
US8769182B1 (en) Virtual tape library with the ability to perform multiple, simultaneous reads of a single virtual tape
KR20200143922A (ko) 메모리 카드 및 이를 이용한 데이터 처리 방법

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605