(57)【特許請求の範囲】
【請求項１】
ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理プログラムであって、
ポータブル記憶デバイスの装着を検出すると、前記ポータブル記憶デバイスに記憶されている、前記ポータブル記憶デバイスにアクセスするためのドライバをインストールする手順と、
前記ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定手順と、
前記空領域有無判定手順により必要な空領域がないと判定された場合に、前記ポータブル記憶デバイスに実データが記憶されている場合には、アクセス履歴の古い実データを特定し、前記アクセス履歴の古い実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、該アクセス履歴の古い実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成し、前記ポータブル記憶デバイスに実データが記憶されていない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空容量を作り出す空領域生成手順と、
をコンピュータに実行させることを特徴とする記憶デバイス管理プログラム。
【請求項２】
ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定するメタデータ判定手順と、
前記メタデータ判定手順によりメタデータで記憶されていると判定された場合に、前記空領域生成手順により前記記憶装置に保存された実データをポータブル記憶装置に回復する実データ回復手順と、
をさらにコンピュータに実行させることを特徴とする請求項１に記載の記憶デバイス管理プログラム。
【請求項３】
ポータブル記憶デバイスの記憶容量保持領域の内容を前記空領域生成手順により実データが保存される記憶装置の容量を含めた容量に変更する容量変更手順をさらにコンピュータに実行させることを特徴とする請求項１または２に記載の記憶デバイス管理プログラム。
【請求項４】
ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理方法であって、
ポータブル記憶デバイスの装着を検出すると、前記ポータブル記憶デバイスに記憶されている、前記ポータブル記憶デバイスにアクセスするためのドライバをインストールする工程と、
前記ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定工程と、
前記空領域有無判定工程により必要な空領域がないと判定された場合に、前記ポータブル記憶デバイスに実データが記憶されている場合には、アクセス履歴の古い実データを特定し、前記アクセス履歴の古い実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、該アクセス履歴の古い実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成し、前記ポータブル記憶デバイスに実データが記憶されていない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空容量を作り出す空領域生成工程と、
を含んだことを特徴とする記憶デバイス管理方法。
【請求項５】
ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定するメタデータ判定工程と、
前記メタデータ判定工程によりメタデータで記憶されていると判定された場合に、前記空領域生成工程により前記記憶装置に保存された実データをポータブル記憶装置に回復する実データ回復工程と、
をさらに含んだことを特徴とする請求項４に記載の記憶デバイス管理方法。
【請求項６】
ポータブル記憶デバイスの記憶容量保持領域の内容を前記空領域生成工程により実データが保存される記憶装置の容量を含めた容量に変更する容量変更工程をさらに含んだことを特徴とする請求項４または５に記載の記憶デバイス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理プログラムおよび記憶デバイス管理方法に関し、特に、ポータブル記憶デバイスの容量をシームレスに拡張し、ポータブル記憶デバイスの容量制限を取り除くことができる記憶デバイス管理プログラムおよび記憶デバイス管理方法に関するものである。
【背景技術】
【０００２】
近年、ＰＣ（パソコン）の低価格により、職場だけでなく、自宅や出先のＰＣ（パソコン）を利用して仕事をする環境が整ってきている。ただし、自宅や出先のＰＣを利用して仕事をする場合には、仕事に使うデータに何らかの形でアクセスできることが必要となる。
【０００３】
そこで、自宅や出先のＰＣなどから仕事に使うデータにアクセスするために、ネットワークを介してアクセスが可能なネットディスクにデータを置くか、あるいは、ＵＳＢメモリやポータブルＨＤなどの大容量ポータブル記憶デバイスにデータを入れて持ち運ぶことが行われている。
【０００４】
また、ＵＳＢメモリにデータだけでなく、メーラー等のソフトウェアを格納して携帯し、ＵＳＢメモリを出先のＰＣに装着するだけで、メーラー等のソフトウェアをインストールすることなく使えるようにする技術も開発されている（例えば、特許文献１参照。）。
【０００５】
【特許文献１】特開２００４−１５１７８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ネットディスクにデータを置く方法には、職場のネットワークにアクセスできる場所でないとデータにアクセスすることができないという問題がある。また、近年、ストレージの大容量化やＣＰＵパワーの向上に伴い、企業や個人がＰＣ上で取り扱うデータは肥大化する傾向にあり、ネットワークにアクセスできる場合でも、携帯電話やＰＨＳを使ったインターネット接続では、帯域が細く、画像データなど大規模なデータを扱うときにはデータの転送に時間がかかるという問題がある。
【０００７】
また、ＵＳＢメモリなどのポータブル記憶デバイスを携帯する場合には、記憶容量に制限があるため、大規模なデータを記憶することができないという問題がある。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ポータブル記憶デバイスの容量をシームレスに拡張し、ポータブル記憶デバイスの容量制限を取り除くことができる記憶デバイス管理プログラムおよび記憶デバイス管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明に係る記憶デバイス管理プログラムは、ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理プログラムであって、ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定手順と、前記空領域有無判定手順により必要な空領域がないと判定された場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータ（後述する実施例のネットディスクサーバ３０に相当）が管理する記憶装置に保存するとともに、該実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成する空領域生成手順と、をコンピュータに実行させることを特徴とする。
【００１０】
本発明によれば、ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定し、必要な空領域がないと判定した場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、実データからサイズを小さくしたメタデータを作成し、作成したメタデータで実データを置き換えて必要な空領域を生成するよう構成したので、ポータブル記憶デバイスの容量をシームレスに拡張することができる。
【００１１】
また、本発明に係る記憶デバイス管理プログラムは、請求項１の発明において、ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定するメタデータ判定手順と、前記メタデータ判定手順によりメタデータで記憶されていると判定された場合に、前記空領域生成手順により前記記憶装置に保存された実データをポータブル記憶装置に回復する実データ回復手順と、をさらにコンピュータに実行させることを特徴とする。
【００１２】
本発明によれば、ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定し、メタデータで記憶されていると判定した場合に、リモートコンピュータが管理する記憶装置に保存された実データをポータブル記憶装置に回復するよう構成したので、リモートコンピュータが管理する記憶装置に格納されたデータをポータブル記憶装置デバイスに格納されたデータと同様に読み出すことができる。
【００１３】
また、本発明に係る記憶デバイス管理プログラムは、請求項１または２の発明において、ポータブル記憶デバイスの記憶容量保持領域の内容を前記空領域生成手順により実データが保存される記憶装置の容量を含めた容量に変更する容量変更手順をさらにコンピュータに実行させることを特徴とする。
【００１４】
本発明によれば、ポータブル記憶デバイスの記憶容量保持領域の内容を、リモートコンピュータが管理する記憶装置の容量を含めた容量に変更するよう構成したので、ＯＳはポータブル記憶デバイスの記憶容量としてリモートコンピュータが管理する記憶装置の容量を含めた容量を取得することができる。
【００１５】
また、本発明に係る記憶デバイス管理プログラムは、請求項１、２または３の発明において、前記空領域生成手順は、ポータブル記憶デバイスに実データがない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空領域を作り出すことを特徴とする。
【００１６】
本発明によれば、ポータブル記憶デバイスに実データがない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空領域を作り出すよう構成したので、ポータブル記憶デバイスに、より必要性の高いデータを記憶することができる。
【００１７】
また、本発明に係る記憶デバイス管理方法は、ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理方法であって、ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定工程と、前記空領域有無判定工程により必要な空領域がないと判定された場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、該実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成する空領域生成工程と、を含んだことを特徴とする。
【００１８】
本発明によれば、ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定し、必要な空領域がないと判定した場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、実データからサイズを小さくしたメタデータを作成し、作成したメタデータで実データを置き換えて必要な空領域を生成するよう構成したので、ポータブル記憶デバイスの容量をシームレスに拡張することができる。
【発明の効果】
【００１９】
本発明によれば、ポータブル記憶デバイスの容量をシームレスに拡張するので、ポータブル記憶デバイスの容量制限を取り除くことができるという効果を奏する。
【００２０】
また、本発明によれば、リモートコンピュータが管理する記憶装置に格納されたデータをポータブル記憶装置デバイスに格納されたデータと同様に読み出すことができるので、利用者はリモートコンピュータが管理する記憶装置を意識することなくポータブル記憶装置からデータ読み出すことができるという効果を奏する。
【００２１】
また、本発明によれば、ＯＳはポータブル記憶デバイスの記憶容量としてリモートコンピュータが管理する記憶装置の容量を含めた容量を取得するので、利用者はリモートコンピュータが管理する記憶装置の容量を含めた容量をＯＳに標準搭載された機能を用いて知ることができるという効果を奏する。
【００２２】
また、本発明によれば、ポータブル記憶デバイスに、より必要性の高いデータを記憶するので、ポータブル記憶デバイスを効率良く使用することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明に係る記憶デバイス管理プログラムおよび記憶デバイス管理方法の好適な実施例を詳細に説明する。なお、ここでは、ポータブル記憶デバイスとしてＵＳＢメモリを用いる場合について説明が、ＰＣに接続が簡単であるデバイスであれば、ＵＳＢインタフェースを有するＨＤ、ＰＣＭＣＩＡやＰＣＩ Ｅｘｐｒｅｓｓのインタフェースを有するメモリ、ＨＤなどをポータブル記憶デバイスとして用いることもできる。
【実施例】
【００２４】
まず、本実施例に係るストレージ提供システムについて説明する。図１は、本実施例に係るストレージ提供システムを説明するための説明図である。同図に示すように、このストレージ提供システムは、ＵＳＢメモリ１００と、ＵＳＢメモリ１００を装着して使用するＰＣ２００と、ＶＰＮ１０を介してＰＣ２００に接続されるリモートコンピュータおよびリモートディスクを有するサーバシステム５０とから構成される。
【００２５】
ＵＳＢメモリ１００は、ＰＣ２００に装着して使用するデータを格納したポータブル記憶デバイスであり、複数のファイルを記憶する。サーバシステム５０は、ＶＰＮのゲートウェイであるＶＰＮＧＷ２０と、ＶＰＮＧＷ２０を介してＰＣ２００に接続されるリモートコンピュータであるネットディスクサーバ３０と、ネットディスクサーバ３０が管理する記憶装置であってＰＣ２００にとってはリモートディスクとなるネットディスク４０とから構成され、ＰＣ２００は、ＶＰＮ１０を介してネットディスク４０にアクセスすることができる。
【００２６】
ＰＣ２００で動作するアプリケーションプログラムは、専用ドライバ２２１を用いてＵＳＢメモリ１００のファイルにアクセスする。また、専用ドライバ２２１は、データを書き込む際にＵＳＢメモリ１００の容量が不足すると、ストレージサービス提供プログラム２３０に容量不足を通知する。
【００２７】
すると、ストレージサービス提供プログラム２３０は、ＵＳＢメモリ１００の一部のデータをネットディスク４０に移すとともに、ネットディスク４０に移したデータからメタデータを作成し、ＵＳＢメモリ１００上のデータをメタデータで置き換える。
【００２８】
ここで、メタデータとは、ネットディスクに移したデータよりサイズが小さいデータであり、ここでは、ファイル名だけから構成されるデータである。なお、メタデータとしては、先頭から所定のサイズのデータなどを用いることもできる。また、データがＸＭＬで構成されている場合には、概要が書かれているタグのデータのみを残してメタデータとすることもできる。また、ここでは、ネットディスクに移されたデータおよびＵＳＢメモリ１００上でメタデータに置き換えられていないデータを「実データ」と呼ぶこととする。
【００２９】
また、専用ドライバ２２１は、ＵＳＢメモリ１００からファイルを読み出す際に、読み出すファイルについてＵＳＢメモリ１００がメタデータを記憶している場合には、ストレージサービス提供プログラム２３０と連携してネットディスク４０から対応する実データを読み出し、ＵＳＢメモリ１００に自動ロードする。
【００３０】
このように、本実施例に係るストレージ提供システムでは、ＵＳＢメモリ１００の容量が不足すると、専用ドライバ２２１とストレージサービス提供プログラム２３０が連携して、ＵＳＢメモリ１００の一部のデータをネットディスク４０に移すとともに、ネットディスク４０に移したデータからメタデータを作成し、ＵＳＢメモリ１００上のデータをメタデータで置き換えることによって、ＵＳＢメモリ１００の容量をシームレスに拡張することができる。
【００３１】
なお、このストレージ提供システムの利用者は、ストレージ提供サービスを提供するレンタルストレージ会社とサービス利用契約の締結を行うときに、ネットディスク４０で利用する最大容量を決定する。ここで、利用できる最大容量は、月額費用などでランクわけされる。また、レンタルストレージ会社は、利用者がオフラインの状態にある場合に使用できるストレージとしてＵＳＢメモリ１００を提供する。このＵＳＢメモリ１００の容量も月額費用などでランクわけされる。
【００３２】
そして、サービス利用契約の締結を行うと、レンタルストレージ会社は、利用者に専用ドライバ２２１およびストレージサービス提供プログラム２３０を格納したＵＳＢメモリ１００を提供する。なお、レンタルストレージ会社は、専用ドライバ２２１およびストレージサービス提供プログラム２３０を、別途ＣＤ−ＲＯＭなどに格納して利用者に提供することもできる。
【００３３】
次に、本実施例に係るストレージ提供システムの構成について説明する。図２は、本実施例に係るストレージ提供システムの構成を示す機能ブロック図である。同図に示すように、このストレージ提供システムでは、ＵＳＢメモリ１００は、容量保持用ＦＲＡＭ１１０と、Ｒ／Ｗメモリ１２０とを有し、ＰＣ２００は、ＵＳＢデバイスコントローラ２１０と、ネットワークデバイス２６０とを有する。
【００３４】
また、ＰＣ２００では、ストレージデバイスドライバ２２０、ストレージサービス提供プログラム２３０、ファイルアクセスプログラム２４０、ネットワークデバイスドライバ２５０などのプログラムが実行される。
【００３５】
容量保持用ＦＲＡＭ１１０は、ＵＳＢメモリ１００の記憶容量を保持するＦＲＡＭであり、ＯＳの標準の動作によって、この容量保持用ＦＲＡＭ１１０が記憶する容量がＵＳＢメモリの記憶容量として確認される。ただし、この容量保持用ＦＲＡＭ１１０は、ＵＳＢメモリ１００だけの記憶容量ではなく、ネットディスク４０で利用者が利用できる記憶容量も含めた容量を記憶する。したがって、利用者は、ＯＳの標準機能によって、ＵＳＢメモリ１００の記憶容量ではなく、契約によって使用可能なネットディスク４０を含めた容量を使用可能な記憶容量として知ることができる。
【００３６】
Ｒ／Ｗメモリ１２０は、データを記憶するメモリである。図３は、Ｒ／Ｗメモリ１２０のデータフォーマットを示す図である。同図に示すように、このＲ／Ｗメモリ１２０は、管理テーブル１２４と、データ保存領域１２５とを有する。
【００３７】
管理テーブル１２４は、通常のファイルシステムが使用する管理テーブルを拡張したものであり、ファイルごとに、前回同期が行われているどうかを示す同期フラグ、ＵＳＢメモリ１００上にファイルの実データが存在しているかどうかを示す実データフラグ、ＵＳＢメモリ１００が挿入されてからファイルが更新されたかどうかを示す更新フラグ、ファイル名、最終アクセス時刻、実データの保存先の開始アドレスと終了アドレスを記憶する。
【００３８】
データ保存領域１２５は、データを保存する領域であり、ファイルごとにファイル名とデータを記憶する。ただし、ファイルがメタデータに置き換えられた場合には、ファイル名だけを記憶する。
【００３９】
また、このＲ／Ｗメモリ１２０は、インストーラ１２１と、専用ドライバプログラム１２２と、ストレージサービス提供プログラム１２３とを記憶する。
【００４０】
インストーラ１２１は、ＵＳＢメモリ１００がＰＣ２００に挿入されると自動的に実行されるプログラムであり、専用ドライバプログラム１２２をＰＣ２００にインストールし、ストレージサービス提供プログラム１２３を実行する。
【００４１】
専用ドライバプログラム１２２は、ＰＣ２００に専用ドライバ２２１としてインストールされＵＳＢメモリ１００へのアクセスに用いられるドライバプログラムであり、ストレージサービス提供プログラム１２３は、ＰＣ２００で実行され、ストレージサービスの提供に必要な機能を備えたプログラムである。
【００４２】
ＵＳＢデバイスコントローラ２１０は、ＵＳＢメモリ１００を制御するコントローラであり、ネットワークデバイス２６０は、ネットワークを介して他のコンピュータと通信を行うデバイスである。
【００４３】
ストレージデバイスドライバ２２０は、ＵＳＢメモリ１００をファイルシステムとしてアクセスするためのドライバであり、専用ドライバ２２１と、マスストレージドライバ２２２とから構成される。
【００４４】
専用ドライバ２２１は、ＵＳＢデバイスコントローラ２１０を制御してＵＳＢメモリ１００にアクセスするドライバであり、インストーラ１２１によって専用ドライバプログラム１２２がＰＣ２００にインストールされたものである。
【００４５】
マスストレージドライバ２２２は、ストレージデバイスをファイルシステムとして管理するドライバであり、専用ドライバ２２１を介してＵＳＢメモリ１００にアクセスしてファイルの読み書きを行う。なお、マスストレージドライバ２２２は標準のＯＳが備えるドライバである。
【００４６】
ファイルアクセスプログラム２４０は、ファイルにアクセスするアプリケーションプログラムである。ネットワークデバイスドライバ２５０は、ネットワークデバイス２６０を制御するドライバである。
【００４７】
ストレージサービス提供プログラム２３０は、ＵＳＢメモリ１００に格納されたストレージサービス提供プログラム１２３がＰＣ２００で実行され、ストレージサービスに必要な機能を提供するプログラムであり、ＶＰＮ通信プログラム２３１、同期プログラム２３２、メタデータ作成プログラム２３３、容量書き換えプログラム２３４、イベント通知プログラム２３５から構成される。
【００４８】
ＶＰＮ通信プログラム２３１は、ＶＰＮ通信機能を提供するプログラムであり、ＰＣ２００をＶＰＮＧＷ２０に接続し、ＰＣ２００からネットディスク４０に安全にアクセスすることを可能としている。
【００４９】
ここで、ＶＰＮ方式としては、ＳＳＬ−ＶＰＮ、ＩＰＳｅｃ−ＶＰＮなどを用いることができる。また、ＶＰＮソフトウェアとサーバ間で利用する個人認証の方法は、利用者がサービス契約締結時に設定したＩＤとパスワードを使う方法や、ＰＫＩを使う方法などがある。ＰＫＩの場合、個人の証明書をＲ／Ｗメモリ１２０に３ＤＥＳやＡＥＳ、Ｂｌｏｗｆｉｓｈなどによって暗号化して保存し、容易に解読できないようにする。
【００５０】
同期プログラム２３２は、ＵＳＢメモリ１００の実データとネットディスク４０の実データとを同期するための同期機能を提供するプログラムである。
【００５１】
メタデータ作成プログラム２３３は、ＵＳＢメモリ１００が記憶するファイルの中からアクセス履歴の古いファイルを特定し、特定したファイルの実データからメタデータを作成してファイルをメタデータで置き換えるプログラムである。
【００５２】
このメタデータ作成プログラム２３３が、ＵＳＢメモリ１００のファイルの実データからメタデータを作成し、そのファイルをメタデータで置き換えることによって、ＵＳＢメモリ１００にデータを書き込む十分な大きさの空領域がない場合に、空領域を生成し、データの書き込みを可能とすることができる。
【００５３】
容量書き換えプログラム２３４は、ＵＳＢメモリ１００の容量保持用ＦＲＡＭ１１０を書き換えるプログラムである。この容量書き換えプログラム２３４が容量保持用ＦＲＡＭ１１０を書き換えることによって、容量保持用ＦＲＡＭ１１０にネットディスク４０での容量を含めた記憶容量を記憶させることができる。
【００５４】
また、利用者がサービス途中でネットディスク４０の容量を増量した場合でも、ストレージサービス提供プログラム２３０とネットディスクサーバ３０がＶＰＮ１０によって通信を確立したときに、ネットディスクサーバ３０からストレージサービス提供プログラム２３０へ容量値の増量通知を行い、容量書き換えプログラム２３４によって、容量保持用ＦＲＡＭ１１０を更新することができる。
【００５５】
イベント通知プログラム２３５は、専用ドライバ２２１からイベントを受信し、受信したイベントに対応した処理を実行するように制御するプログラムである。
【００５６】
次に、ストレージサービス提供プログラム１２３の起動処理の処理手順について説明する。図４は、ストレージサービス提供プログラム１２３の起動処理の処理手順を示すフローチャートである。
【００５７】
同図に示すように、この起動処理では、ＵＳＢメモリ１００の挿入を検出すると（ステップＳ１０１）、ＰＣ２００のＯＳは汎用のＵＳＢストレージドライバを導入し（ステップＳ１０２）、ＵＳＢメモリ１００内のAutoRun.infを参照して、ＵＳＢメモリ１００内のインストーラ１２１を実行する（ステップＳ１０３）。
【００５８】
そして、インストーラ１２１は、専用ドライバ２２１の導入状況を確認し（ステップＳ１０４）、未導入か否かを判定する（ステップＳ１０５）。その結果、未導入である場合には、インストーラ１２１は専用ドライバプログラム１２２をＵＳＢメモリ１００から読み出して専用ドライバ２２１としてインストールする（ステップＳ１０６）。
【００５９】
そして、インストーラ１２１は、ＵＳＢメモリ１００内のストレージサービス提供プログラム１２３を実行する（ステップＳ１０７）。これにより、ＰＣ２００上で、ストレージサービス提供プログラム２３０としての利用が可能となる。
【００６０】
このように、ＵＳＢメモリ１００がＰＣ２００に挿入されると、インストーラ１２１が起動されて専用ドライバ２２１をインストールし、ストレージサービス提供プログラム２３０を利用可能とすることによって、ファイルアクセスプログラム２４０は、通常のＵＳＢメモリをアクセスするのと同様に、ＵＳＢメモリ１００をアクセスすることができる。
【００６１】
次に、ＵＳＢメモリ１００への書き込み処理の処理手順について説明する。図５は、ＵＳＢメモリ１００への書き込み処理の処理手順を示すフローチャートである。同図に示すように、この書き込み処理では、ファイルアクセスプログラム２４０がマスストレージドライバ２２２へ書き込み依頼を行うと（ステップＳ２０１）、マスストレージドライバ２２２は専用ドライバ２２１に書き込み依頼を行う（ステップＳ２０２）。
【００６２】
そして、専用ドライバ２２１は、書き込みを依頼されたファイルがＵＳＢメモリ１００上にあるかを確認し（ステップＳ２０３）、ＵＳＢメモリ１００上にあるか否かを判定する（ステップＳ２０４）。その結果、ＵＳＢメモリ１００上にある場合には、専用ドライバ２２１は新たに書き込むファイルのサイズと記憶されたファイルのサイズの差分を確認する（ステップＳ２０５）。
【００６３】
そして、専用ドライバ２２１は、ＵＳＢメモリ１００の容量を確認し（ステップＳ２０６）、データを書き込む容量があるか否かを判定する（ステップＳ２０７）。その結果、データを書き込む容量がある場合には、専用ドライバ２２１は、書き込み処理を実行し（ステップＳ２０８）、アクセス時刻など管理テーブル１２４を更新する（ステップＳ２０９）。そして、専用ドライバ２２１は書き込み完了をマスストレージドライバ２２２へ通知し（ステップＳ２１０）、マスストレージドライバ２２２はファイルアクセスプログラム２４０へ書き込み完了を通知する（ステップＳ２１１）。
【００６４】
一方、データを書き込む容量がない場合には、専用ドライバ２２１は、イベント通知プログラム２３５にメタデータ化を依頼するイベントを通知し（ステップＳ２１２）、イベント通知プログラム２３５はメタデータ作成プログラム２３３にメタデータ化を依頼する（ステップＳ２１３）。
【００６５】
そして、メタデータ作成プログラム２３３は管理テーブル１２４の実データフラグを確認し（ステップＳ２１４）、実データがあるか否かを判定する（ステップＳ２１５）。その結果、実データがある場合には、メタデータ作成プログラム２３３は、アクセス履歴の古いファイルを検索して特定し（ステップＳ２１６〜ステップＳ２１７）、特定したファイルの更新フラグを確認する（ステップＳ２１８）。
【００６６】
そして、特定したファイルが更新されているか否かを判定し（ステップＳ２２５）、更新されていない場合には、ステップＳ２３０に進み、更新されている場合には、メタデータ作成プログラム２３３は同期プログラム２３２に同期を依頼し（ステップＳ２２６）、同期プログラム２３２はＶＰＮ通信プログラムを使用してネットディスク４０にデータを保存する（ステップＳ２２７）。
【００６７】
そして、同期プログラム２３２は保存完了をメタデータ作成プログラム２３３に通知し（ステップＳ２２８）、メタデータ作成プログラム２３３は更新フラグを消去し（ステップＳ２２９）、該当ファイルをメタデータ化する（ステップＳ２３０）。
【００６８】
そして、メタデータ作成プログラム２３３は、該当ファイルをメタデータ化したファイルに置き換え（ステップＳ２３１）、管理テーブル１２４の対応する実データフラグを消去し（ステップＳ２３２）、イベント通知プログラム２３５を介して専用ドライバ２２１に容量確認の再実行を依頼する（ステップＳ２３３）。すなわち、ステップＳ２０６に戻る。
【００６９】
一方、実データがない場合には（ステップＳ２１５、Ｎｏ）、実データをメタデータ化することでは空領域を生成することができないので、メタデータ作成プログラム２３３は、設定値に基づいて古いメタデータを削除可能か確認する（ステップＳ２１９）。ここで、設定値は、例えば、最後のアクセスからの経過時間であり、ここでは、この経過時間を過ぎた古いファイルのメタデータは削除するものとする。
【００７０】
そして、古いメタデータを削除可能か否かを判定し（ステップＳ２２０）、削除可能である場合には、古いメタデータを削除し（ステップＳ２２１）、ステップＳ２０６に戻る。一方、削除可能でない場合には、メタデータ作成プログラム２３３はイベント通知プログラム２３５を介して専用ドライバ２２１に書き込み容量不足を通知し（ステップＳ２２２）、専用ドライバ２２１はマスストレージドライバ２２２に容量不足を通知する（ステップＳ２２３）。そして、マスストレージドライバ２２２はファイルアクセスプログラム２４０に容量不足を通知する（ステップＳ２２４）。
【００７１】
このように、ＵＳＢメモリ１００にデータを書き込む際に、ＵＳＢメモリ１００の空容量が不足している場合に、メタデータ作成プログラム２３３が、実データをネットディスク４０に保存するように制御するとともに、メタデータを作成して実データと置き換えることによって、ＵＳＢメモリ１００の容量をシームレスに拡張することができる。
【００７２】
次に、ＵＳＢメモリ１１０からの読み出し処理の処理手順について説明する。図６は、ＵＳＢメモリ１１０からの読み出し処理の処理手順を示すフローチャートである。同図に示すように、この読み出し処理では、ファイルアクセスプログラム２４０がマスストレージドライバ２２２へ読み出し依頼を行うと（ステップＳ３０１）、マスストレージドライバ２２２は専用ドライバ２２１に読み出し依頼を行う（ステップＳ３０２）。
【００７３】
そして、専用ドライバ２２１は、読み出しを依頼されたファイルの実データフラグを確認し（ステップＳ３０３）、そのファイルの実データがＵＳＢメモリ１００上にあるか否かを判定する（ステップＳ３０４）。その結果、ＵＳＢメモリ１００上にある場合には、専用ドライバ２２１はデータを読み出してマスストレージドライバ２２２に渡し（ステップＳ３０５）、マスストレージドライバ２２２はデータをファイルアクセスプログラム２４０に渡す（ステップＳ３０６）。
【００７４】
一方、読み出すファイルの実データがＵＳＢメモリ１００上にない場合には、専用ドライバ２２１はイベント通知プログラム２３５に、読み出しを依頼されたデータのネットディスク４０からのダウンロード依頼を通知し（ステップＳ３０７）、イベント通知プログラム２３５は、読み出しを依頼されたデータのダウンロードを同期プログラム２３２に依頼する（ステップＳ３０８）。
【００７５】
そして、同期プログラム２３２は、ＶＰＮ通信プログラム２３１を介して、読み出しを依頼されたデータをＰＣ２００のメモリ上にダウンロードし（ステップＳ３０９）、ＵＳＢメモリ１００に書き込む（ステップＳ３１０）。なお、ＵＳＢメモリ１００への書き込みは、図５に示した書き込み処理によって行う。
【００７６】
そして、同期プログラム２３２はイベント通知プログラム２３５にダウンロード完了を通知し（ステップＳ３１１）、イベント通知プログラム２３５は読み出しを依頼されたデータのダウンロード完了を専用ドライバ２２１に通知する（ステップＳ３１２）。そして、ステップＳ３０５に進む。
【００７７】
このように、実データがＵＳＢメモリ１００にない場合には、専用ドライバ２２１がイベント通知プログラム２３５に実データのダウンロード依頼を通知することによって、ネットディスク４０からの実データのダウンロードを行い、ファイルアクセスプログラム２４０に対しては、ＵＳＢメモリ１００上にデータがあるのと同様にデータ引き渡すことができる。
【００７８】
なお、ここでは、実データがＵＳＢメモリ１００上にない場合には、ネットディスク４０から実データを読み出してＵＳＢメモリ１００に格納してファイルアクセスプログラム２４０に渡す場合について説明したが、ファイルアクセスプログラム２４０からの指定によって、メタデータを渡すようにすることもできる。
【００７９】
次に、容量書き換え処理の処理手順について説明する。図７は、容量書き換え処理の処理手順を示すフローチャートである。同図に示すように、この容量書き換え処理では、容量書き換えプログラム２３４は、専用ドライバ２２１に容量値を通知する（ステップＳ４０１）。
【００８０】
そして、専用ドライバ２２１は、ＵＳＢメモリ１００上の容量保持用ＦＲＡＭ１１０の値を書き換える（ステップＳ４０２）。
【００８１】
このように、容量書き換えプログラム２３４が専用ドライバ２２１に容量値を通知し、専用ドライバ２２１がＵＳＢメモリ１００上の容量保持用ＦＲＡＭ１１０の値を書き換えることによって、ストレージ提供サービスで提供する仮想的なＵＳＢメモリ１００の容量を変更し、ネットディスク４０によって拡張された記憶容量を利用者に対してＵＳＢメモリ１００の容量として通知することが可能となる。
【００８２】
なお、本実施例では、メタデータの作成をＰＣ２００で行う場合について説明したが、メタデータの作成をネットディスクサーバ３０で行うこともできる。図８は、メタデータの作成をネットディスクサーバ３０で行うストレージ提供システムの構成を示す図である。
【００８３】
同図に示すように、このストレージ提供システムでは、ＰＣ２００でメタデータ作成プログラム２３３が実行される代わりにネットディスクサーバ３０でメタデータ作成プログラム３１が実行される。このように、ネットディスクサーバ３０でメタデータを作成することによって、ＰＣ２００の処理能力が低い場合にも、高速にメタデータを作成することができる。
【００８４】
また、メタデータの作成は、ＵＳＢメモリにマイコンを搭載し、ＵＳＢメモリで行うこともできる。ＵＳＢメモリでメタデータの作成を行うことによって、ＰＣ２００との間のデータ転送を不要とすることができる。
【００８５】
次に、本実施例に係る専用ドライバ２２１およびストレージサービス提供プログラム２３０を実行するコンピュータのハードウェア構成について説明する。なお、専用ドライバ２２１とストレージサービス提供プログラム２３０は同一のコンピュータで実行されるため、ここでは、専用ドライバ２２１を実行する場合について説明する。
【００８６】
図９は、本実施例に係る専用ドライバ２２１を実行するコンピュータのハードウェア構成を示す機能ブロック図である。なお、このコンピュータ３００は図２に示したＰＣ２００に対応する。
【００８７】
図９に示すように、このコンピュータ３００は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ネットワークデバイス２６０と、入出力インタフェース３５０と、ＵＳＢデバイスコントローラ２１０とを有する。
【００８８】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。
【００８９】
ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ネットワークデバイス２６０は、コンピュータ３００をＶＰＮ１０経由でネットディスクサーバ３０など他のコンピュータに接続するためのデバイスである。
【００９０】
入出力インタフェース３５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＵＳＢデバイスコントローラ２１０は、ＵＳＢメモリ１００へのアクセスを制御するコントローラである。
【００９１】
そして、このコンピュータ３００において実行される専用ドライバ２２１は、ＵＳＢメモリ１００に記憶され、インストーラ１２１によってＵＳＢメモリ１００から読み出されてコンピュータ３００にインストールされる。そして、インストールされた専用ドライバ２２１は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によって実行される。
【００９２】
上述してきたように、本実施例では、専用ドライバ２２１がＵＳＢデバイスコントローラ２１０を制御してＵＳＢメモリ１００へのアクセス機能を提供し、ストレージサービス提供プログラム２３０が専用ドライバ２２１と連携してＵＳＢメモリ１００の記憶容量をネットディスク４０を用いてシームレスに拡張するために必要な機能を提供することとしたので、ＵＳＢメモリ１００の容量に制限されることなくデータをＵＳＢメモリ１００に保存して使用することができる。
【００９３】
また、データを書き込む際に、ＵＳＢメモリ１００の空領域が不足する場合には、メタデータ作成プログラム２３３が、ＵＳＢメモリ１００の実データからメタデータを作成して実データを置き換えることとしたので、空領域を確保するとともに、必要に応じて利用者にメタデータを提供することができる。
【００９４】
（付記１）ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理プログラムであって、
ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定手順と、
前記空領域有無判定手順により必要な空領域がないと判定された場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、該実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成する空領域生成手順と、
をコンピュータに実行させることを特徴とする記憶デバイス管理プログラム。
【００９５】
（付記２）ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定するメタデータ判定手順と、
前記メタデータ判定手順によりメタデータで記憶されていると判定された場合に、前記空領域生成手順により前記記憶装置に保存された実データをポータブル記憶装置に回復する実データ回復手順と、
をさらにコンピュータに実行させることを特徴とする付記１に記載の記憶デバイス管理プログラム。
【００９６】
（付記３）ポータブル記憶デバイスの記憶容量保持領域の内容を前記空領域生成手順により実データが保存される記憶装置の容量を含めた容量に変更する容量変更手順をさらにコンピュータに実行させることを特徴とする付記１または２に記載の記憶デバイス管理プログラム。
【００９７】
（付記４）前記空領域生成手順は、ポータブル記憶デバイスに実データがない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空領域を作り出すことを特徴とする付記１、２または３に記載の記憶デバイス管理プログラム。
【００９８】
（付記５）ポータブル記憶デバイスはファイルを記憶し、
前記空領域生成手順は、ファイル名だけのデータをメタデータとして作成することを特徴とする付記１〜４のいずれか一つに記載の記憶デバイス管理プログラム。
【００９９】
（付記６）ポータブル記憶デバイスが記憶するデータを管理する記憶デバイス管理方法であって、
ポータブル記憶デバイスにデータの書き込みに必要な空領域があるか否かを判定する空領域有無判定工程と、
前記空領域有無判定工程により必要な空領域がないと判定された場合に、ポータブル記憶デバイスが記憶する実データをネットワークを介して接続されたリモートコンピュータが管理する記憶装置に保存するとともに、該実データからサイズを小さくしたメタデータを作成し、該作成したメタデータで実データを置き換えて必要な空領域を生成する空領域生成工程と、
を含んだことを特徴とする記憶デバイス管理方法。
【０１００】
（付記７）ポータブル記憶デバイスから読み出すデータがメタデータで記憶されているか否かを判定するメタデータ判定工程と、
前記メタデータ判定工程によりメタデータで記憶されていると判定された場合に、前記空領域生成工程により前記記憶装置に保存された実データをポータブル記憶装置に回復する実データ回復工程と、
をさらに含んだことを特徴とする付記６に記載の記憶デバイス管理方法。
【０１０１】
（付記８）ポータブル記憶デバイスの記憶容量保持領域の内容を前記空領域生成工程により実データが保存される記憶装置の容量を含めた容量に変更する容量変更工程をさらに含んだことを特徴とする付記６または７に記載の記憶デバイス管理方法。
【０１０２】
（付記９）前記空領域生成工程は、ポータブル記憶デバイスに実データがない場合には、所定の経過時間以前にアクセスされたメタデータを削除して必要な空領域を作り出すことを特徴とする付記６、７または８に記載の記憶デバイス管理方法。
【０１０３】
（付記１０）ポータブル記憶デバイスはファイルを記憶し、
前記空領域生成工程は、ファイル名だけのデータをメタデータとして作成することを特徴とする付記６〜９のいずれか一つに記載の記憶デバイス管理方法。
【産業上の利用可能性】
【０１０４】
以上のように、本発明に係る記憶デバイス管理プログラムおよび記憶デバイス管理方法は、ポータブル記憶デバイスに有用であり、特に、ポータブル記憶デバイスの容量制限を越える大量のデータを扱う必要がある場合に適している。
【図面の簡単な説明】
【０１０５】
【図１】本実施例に係るストレージ提供システムを説明するための説明図である。
【図２】本実施例に係るストレージ提供システムの構成を示す機能ブロック図である。
【図３】Ｒ／Ｗメモリのデータフォーマットを示す図である。
【図４】ストレージサービス提供プログラムの起動処理の処理手順を示すフローチャートである。
【図５】ＵＳＢメモリへの書き込み処理の処理手順を示すフローチャートである。
【図６】ＵＳＢメモリからの読み出し処理の処理手順を示すフローチャートである。
【図７】容量書き換え処理の処理手順を示すフローチャートである。
【図８】メタデータの作成をネットディスクサーバで行うストレージ提供システムの構成を示す図である。
【図９】本実施例に係る専用ドライバを実行するコンピュータのハードウェア構成を示す機能ブロック図である。
【符号の説明】
【０１０６】
１０    ＶＰＮ
２０    ＶＰＮＧＷ
３０    ネットディスクサーバ
３１    メタデータ作成プログラム
４０    ネットディスク
１００    ＵＳＢメモリ
１１０    容量保持用ＦＲＡＭ
１２０    Ｒ／Ｗメモリ
１２１    インストーラ
１２２    専用ドライバプログラム
１２３    ストレージサービス提供プログラム
１２４    管理テーブル
１２５    データ保存領域
２００    ＰＣ
２１０    ＵＳＢデバイスコントローラ
２２０    ストレージデバイスドライバ
２２１    専用ドライバ
２２２    マスストレージドライバ
２３０    ストレージサービス提供プログラム
２３１    ＶＰＮ通信プログラム
２３２    同期プログラム
２３３    メタデータ作成プログラム
２３４    容量書き換えプログラム
２３５    イベント通知プログラム
２４０    ファイルアクセスプログラム
２５０    ネットワークデバイスドライバ
２６０    ネットワークデバイス
３００    コンピュータ
３１０    ＲＡＭ
３２０    ＣＰＵ
３３０    ＨＤＤ
３５０    入出力インタフェース
【図１】
0004734150.tif 000002
【図２】
0004734150.tif 000003
【図３】
0004734150.tif 000004
【図４】
0004734150.tif 000005
【図５】
0004734150.tif 000006
【図６】
0004734150.tif 000007
【図７】
0004734150.tif 000008
【図８】
0004734150.tif 000009
【図９】
0004734150.tif 000010