(57)【要約】【課題】リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有できる仮想ファイル処理システム及び仮想ファイル処理プログラムを提供する。【解決手段】クライアントコンピュータ２と、ネットワーク１を介してクライアントコンピュータ２と通信可能に接続されるリモートストレージ３とを備える仮想ファイル処理システム１００であって、クライアントコンピュータ２は、仮想ファイルの実体をリモートストレージ３にアップロードした後、ローカルストレージ１１上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージ３にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージ３にリビジョン付きでアップロードする。【選択図】図３
2020095589.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータと、
ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、
前記クライアントコンピュータは、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、
前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理システム。
【請求項２】
前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項１に記載の仮想ファイル処理システム。
【請求項３】
前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項１又は２に記載の仮想ファイル処理システム。
【請求項４】
ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、
前記クライアントコンピュータを、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、
前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理プログラム。
【請求項５】
前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項４に記載の仮想ファイル処理プログラム。
【請求項６】
前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項４又は５に記載の仮想ファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システム及び仮想ファイル処理プログラムに関する。
【背景技術】
【０００２】
クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システムが知られている（例えば、特許文献１参照）。この種の仮想ファイル処理システムは、クライアントコンピュータが、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステムからの要求をフックする手段と、ファイルシステムから仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じてクライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出し、又はリモートストレージから仮想ファイル一覧情報をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの読み込み要求に応じてリモートストレージから仮想ファイルの実体をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体をリモートストレージにアップロードする手段と、を備えることにより実現できる。
【０００３】
また、特許文献１の仮想ファイル処理システムでは、仮想ファイル一覧情報がリモートストレージにアップロードされるので、ローカルストレージに最新の仮想ファイル一覧情報がないクライアントコンピュータ（例えば、同一ユーザの２台目のＰＣ）であっても、リモートストレージから最新の仮想ファイル一覧情報をダウンロードすれば、リモートストレージに保存された仮想ファイルの実体を読み出したり、更新することが可能になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１４８９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この種の仮想ファイル処理システムでは、リモートストレージに対する仮想ファイル実体のアップロード処理と、仮想ファイル一覧情報の更新処理と、リモートストレージに対する仮想ファイル一覧情報のアップロード処理と、が同期して実行されるとは限らず、クライアントコンピュータが異常終了した場合などでは、リモートストレージに保存されている仮想ファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性があるため、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有するには、さらに改善の余地があった。
【課題を解決するための手段】
【０００６】
本発明は、上記の如き実情に鑑みこれらの課題を解決することを目的として創作されたものであって、請求項１の発明は、クライアントコンピュータと、ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、前記クライアントコンピュータは、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項２の発明は、請求項１に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項３の発明は、請求項１又は２に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
また、請求項４の発明は、ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、前記クライアントコンピュータを、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項５の発明は、請求項４に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項６の発明は、請求項４又は５に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
【発明の効果】
【０００７】
請求項１又は４の発明によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージにアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。また、アップロード管理手段は、ローカルストレージ上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージにリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。また、要求処理手段は、起動時に、リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージに保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージに保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有することが可能になる。
また、請求項２又は５の発明によれば、アップロード管理手段は、一定時間毎にリモートストレージにアップロードすべき仮想ファイルの実体がローカルストレージに存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージにアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
また、請求項３又は６の発明によれば、アップロード管理手段は、シャットダウン時にローカルストレージ上のアップロードファイル一覧情報本体をリモートストレージにアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る仮想ファイル処理システムの概略構成を示すブロック図である。
【図２】クライアントコンピュータのハードウェア構成を示すブロック図である。
【図３】クライアントコンピュータの機能構成を示すブロック図である。
【図４】リモートストレージに保存されている仮想ファイルの実体を複数のクライアントコンピュータで共有する場合の基本的な流れを示す説明図である。
【図５】ローカルストレージ上にあるアップロードファイル一覧情報とリモートストレージ上にあるアップロードファイル一覧情報とが一致しない状態を示す説明図である。
【図６】起動時におけるアップロードファイル一覧情報及び更新ログのダウンロード処理を示す説明図である。
【図７】起動時にダウンロードしたアップロードファイル一覧情報及び更新ログから仮想ファイル一覧情報を構築する処理を示す説明図である。
【図８】ファイル書き込み要求時の処理手順を示す処理シーケンス図である。
【図９】起動時の処理手順を示す処理シーケンス図である。
【発明を実施するための形態】
【０００９】
［仮想ファイル処理システム］
以下、本発明の実施の形態について、図面に基づいて説明する。図１において、１００は仮想ファイル処理システムであって、該仮想ファイル処理システム１００は、クライアントコンピュータ２と、リモートストレージ３（クラウドストレージ）と、ユーザ認証サーバ４と、これらを通信可能に接続するインターネットなどのネットワーク１と、を備えて構成されている。
【００１０】
［クライアントコンピュータ］
図２に示すように、クライアントコンピュータ２は、ＣＰＵ５、ＲＡＭ６、ＲＯＭ７、入力部８、表示部９、通信部１０及びローカルストレージ１１を備えており、これらがバス１２を介して接続されている。
【００１１】
ＣＰＵ５は、中央制御装置であり、ＲＯＭ７やローカルストレージ１１に記憶されている各種プログラムをＲＡＭ６上に読み出して実行し、各部の制御を行う。ＲＡＭ６は、揮発性のメモリであり、各種プログラムの一時的な記憶領域やＣＰＵ５の作業領域として使用される。ＲＯＭ７は、不揮発性のメモリであり、ＢＩＯＳなどの基本プログラムが記憶されている。また、入力部８は、キーボード、マウスなどの入力装置であり、表示部９は、液晶ディスプレイなどの表示装置であり、通信部１０は、ネットワーク１を介したリモートストレージ３及びユーザ認証サーバ４との通信を可能にする通信インタフェースである。
【００１２】
ローカルストレージ１１は、ハードディスクドライブなどの不揮発性記憶装置であり、ファイルシステム１３を含むオペレーティングシステム、各種のアプリケーションソフト１４、アプリケーションソフト１４で作成した各種のファイル（非仮想ファイル）などに加え、本発明に係る仮想ファイル処理プログラム１５が格納されている。仮想ファイル処理プログラム１５は、クライアントコンピュータ２上のファイルを仮想化し、ファイルの実体をリモートストレージ３に保存するソフトウェアであり、その詳細は後述する。
【００１３】
［リモートストレージ］
リモートストレージ３は、クライアントコンピュータ２からネットワーク１を介してファイルの書き込み及び読み出しが可能な遠隔記憶装置である。本発明の実施形態に係るクライアントコンピュータ２は、仮想ファイル処理プログラム１５との協働により、リモートストレージ３に対するファイルの書き込み及び読み出しを自動的に行う。
【００１４】
［ユーザ認証サーバ］
ユーザ認証サーバ４は、仮想ファイル処理プログラム１５の起動に際してユーザ認証（ログイン認証）を行うためのサーバであり、このユーザ認証に成功した場合にのみ仮想ファイル処理プログラム１５の実行が許容される。また、仮想ファイル処理プログラム１５は、起動に際して実行環境を一意に表すキー情報をユーザＩＤに紐付けてユーザ認証サーバ４に登録するとともに、同一ユーザＩＤに紐付けて登録されているキー情報の有無を判断する。そして、仮想ファイル処理プログラム１５は、同一ユーザＩＤに紐付けて登録されているキー情報が存在する場合、キー情報を比較し、キー情報が異なる場合は、同一ユーザの複数のクライアントコンピュータ２において仮想ファイル処理プログラム１５が同時起動されることを防止するために、仮想ファイル処理プログラム１５の起動制限又は起動している仮想ファイル処理プログラム１５の強制終了処理を行う。
【００１５】
［仮想ファイル処理プログラム］
本発明の実施形態に係る仮想ファイル処理プログラム１５は、ローカルストレージ１１に格納されており、例えばクライアントコンピュータ２の起動に際して自動的に起動される。そして、仮想ファイル処理プログラム１５は、図３に示すように、クライアントコンピュータ２を、後述するファイル仮想化手段１６、要求処理手段１７、アップロード管理手段１８及びリモートストレージアダプタ１９として機能させる。これら機能構成の詳細は後述する。
【００１６】
また、仮想ファイル処理プログラム１５は、図３に示すように、ローカルストレージ１１にローカルキャッシュ領域２１、仮想ファイル一覧情報記憶領域２２、アップロードファイル一覧情報記憶領域２３などの記憶領域を確保する。ローカルキャッシュ領域２１は、リモートストレージ３からダウンロードしたファイルの実体、リモートストレージ３にアップロードするファイルの実体などを格納するキャッシュ領域であり、ダウンロードしたファイルの実体及びアップロードしたファイルの実体は、セキュリティ上、クライアントコンピュータ２又は仮想ファイル処理プログラム１５のシャットダウン時に消去される。
【００１７】
仮想ファイル一覧情報記憶領域２２は、仮想ファイル一覧情報を記憶する領域である。仮想ファイル一覧情報は、アプリケーションソフト１４が仮想ファイルの一覧表示を行う際に必要な情報群（データベース）であり、具体的には、リモートストレージ３において仮想ファイルを特定するためのキー情報、クライアントコンピュータ２における仮想ファイルのパス、仮想ファイルのファイル名、仮想ファイル又はディレクトリを一意に表すＩＤ、仮想ファイルのサイズ（ｂｙｔｅ）、仮想ファイルのファイル属性、仮想ファイルのファイル作成日時、ファイルアクセス日時、ファイル最終更新日時、仮想ファイルとディレクトリとを識別するフォルダフラグ、リモートストレージ３に対する最終アップロード日時、仮想ファイルの圧縮後のファイルサイズ、仮想ファイルの圧縮の有無を識別する圧縮フラグ、通常の仮想ファイルと削除された仮想ファイルを識別する削除フラグ、リモートストレージ３に対するアップロードの有無を識別するアップロードフラグなどの項目が含まれている。
【００１８】
アップロードファイル一覧情報記憶領域２３は、アップロードファイル一覧情報を記憶する領域である。アップロードファイル一覧情報は、ユーザＩＤに紐付けてリモートストレージ３にアップロードされているファイル（仮想ファイルの実体）の一覧情報（データベース）であり、その項目は、仮想ファイル一覧情報と略同様であるが、本実施形態の仮想ファイル処理プログラム１５は、リモートストレージ３にアップロードされているファイルの世代管理も行うため、仮想ファイル一覧情報よりもファイルサイズが大きい。
【００１９】
アップロードファイル一覧情報は、リモートストレージ３に対するファイルのアップロード、アップロードファイルの更新及び削除をトリガーとして更新される。また、更新されたアップロードファイル一覧情報は、リモートストレージ３にアップロードされる。
【００２０】
ファイル仮想化手段１６は、ファイルシステム１３に仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステム１３からの要求をフックし、要求処理手段１７に処理を要求する機能構成である。具体的に説明すると、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイル一覧情報の読み込み要求があった場合、これを要求処理手段１７に要求するとともに、要求処理手段１７から仮想ファイル一覧情報を受け取ってファイルシステム１３に渡す。また、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイルの読み込み要求があった場合、これを要求処理手段１７に要求するとともに、要求処理手段１７から仮想ファイルの実体を受け取ってファイルシステム１３に渡す。また、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体を要求処理手段１７に渡し、リモートストレージ３にアップロードさせる。
【００２１】
要求処理手段１７は、ファイルシステム１３（ファイル仮想化手段１６）からの要求に応じて、仮想ファイル一覧情報の読み込み処理、仮想ファイルの実体のダウンロード処理、仮想ファイルの実体のアップロード処理などを行う。具体的に説明すると、要求処理手段１７は、ファイルシステム１３から仮想ファイル一覧情報の読み込み要求があった場合、仮想ファイル一覧情報記憶領域２２から仮想ファイル一覧情報を読み込み、これをファイル仮想化手段１６を介してファイルシステム１３に渡す。
【００２２】
また、要求処理手段１７は、ファイルシステム１３から仮想ファイルの読み込み要求があった場合、該当ファイルの実体がローカルキャッシュ領域２１にあるか否かを確認し、ローカルキャッシュ領域２１にある場合は、ローカルキャッシュ領域２１から読み出した該当ファイルの実体をファイル仮想化手段１６を介してファイルシステム１３に渡す。一方、要求処理手段１７は、該当ファイルの実体がローカルキャッシュ領域２１にない場合、リモートストレージアダプタ１９を介してリモートストレージ３から該当ファイルの実体をダウンロードし、これをローカルキャッシュ領域２１にキャッシュするとともに、ファイル仮想化手段１６を介してファイルシステム１３に渡す。
【００２３】
また、要求処理手段１７は、ファイルシステム１３から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体をローカルキャッシュ領域２１に書き込み、その後、アップロード管理手段１８によってリモートストレージ３にアップロードさせる。そして、要求処理手段１７は、各種の処理を実行した後、処理内容に応じて仮想ファイル一覧情報記憶領域２２の仮想ファイル一覧情報を更新する。
【００２４】
アップロード管理手段１８は、リモートストレージ３にアップロードすべき仮想ファイルの実体がローカルキャッシュ領域２１に存在するか否かを一定時間毎に判断し、アップロードすべき仮想ファイルの実体がある場合は、アップロードすべき仮想ファイルの実体をローカルキャッシュ領域２１から読み出し、リモートストレージアダプタ１９を介してリモートストレージ３にアップロードする。そして、アップロード管理手段１８は、アップロード終了後、アップロードファイル一覧情報記憶領域２３のアップロードファイル一覧情報を更新する。また、アップロード管理手段１８は、仮想ファイル処理プログラム１５のシャットダウン時に、アップロードファイル一覧情報記憶領域２３からアップロードファイル一覧情報を読み出し、リモートストレージアダプタ１９を介してリモートストレージ３にアップロードする。なお、アップロード管理手段１８は、仮想ファイル処理プログラム１５のシャットダウン時以外にも、アップロードファイル一覧情報をリモートストレージ３にアップロードするようにしてもよい。例えば、一定時間毎にアップロードファイル一覧情報が更新されたか否かを判断し、更新されたと判断した場合にのみ、アップロードファイル一覧情報をリモートストレージ３にアップロードするようにすれば、アップロードファイル一覧情報の頻繁なアップロードも抑制できる。
【００２５】
リモートストレージアダプタ１９は、様々なリモートストレージ３に対応するために、アップロード管理手段１８などから分離されたアダプタである。つまり、仮想ファイル処理プログラム１５は、様々なリモートストレージ３に対応する複数のリモートストレージアダプタ１９を有し、使用するリモートストレージ３に応じてリモートストレージアダプタ１９が選択される。
【００２６】
［仮想ファイル共有機能］
つぎに、仮想ファイル処理プログラム１５の仮想ファイル共有機能について、図４以降を参照して説明する。
【００２７】
仮想ファイル共有機能は、リモートストレージ３に保存された仮想ファイルの実体を仮想ファイル処理プログラム１５がインストールされた複数のクライアントコンピュータ２で共有することを可能にする。例えば、図４に示すように、ユーザが所有するデスクトップＰＣ及びノートＰＣのうち、いずれのＰＣからでもリモートストレージ３に保存された仮想ファイルの実体をダウンロードしたり、更新した仮想ファイルの実体をリモートストレージ３にアップロードすることが可能になる。
【００２８】
この機能を実現するために、要求処理手段１７は、仮想ファイル処理プログラム１５の起動時に、リモートストレージ３からアップロードファイル一覧情報をダウンロードするとともに（Ｓ１１）、ダウンロードしたアップロードファイル一覧情報に基づいて仮想ファイル一覧情報を構築する（Ｓ１２）。これにより、ファイルシステム１３からの要求に応じて仮想ファイル一覧情報を渡し（Ｓ１３）、アプリケーションソフト１４における仮想ファイルの一覧表示が可能になるとともに、ファイルシステム１３からの仮想ファイル読み込み要求に応じてリモートストレージ３から仮想ファイルの実体をダウンロードしてアプリケーションソフト１４に渡すことが可能になる（Ｓ１４）。
【００２９】
また、要求処理手段１７は、仮想ファイルの新規作成や更新が行われた場合、仮想ファイル一覧情報を更新する（Ｓ２１）。アップロード管理手段１８は、仮想ファイル一覧情報が更新されると、該当する仮想ファイルの実体をリモートストレージ３にアップロードするとともに（Ｓ２２）、アップロードファイル一覧情報を更新する（Ｓ２３）。また、アップロード管理手段１８は、仮想ファイル処理プログラム１５のシャットダウン時に、更新されたアップロードファイル一覧情報をリモートストレージ３にアップロードする（Ｓ２４）。これにより、リモートストレージ３に保存された仮想ファイルの実体を複数のクライアントコンピュータ２で共有することが可能になるが、アップロードファイル一覧情報の更新処理と、リモートストレージ３に対するアップロードファイル一覧情報のアップロード処理は、異なるタイミングで実行されるので、クライアントコンピュータ２が異常終了した場合は、リモートストレージ３に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性がある。
【００３０】
上記の問題を解決するために、アップロード管理手段１８は、仮想ファイルの実体をリモートストレージ３にアップロードした後、ローカルストレージ１１上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログ（直前リビジョンとの差分情報）をリビジョン付きでリモートストレージ３にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミング（シャットダウン時）でリモートストレージ３にリビジョン付きでアップロードする。このような処理手順によれば、例えば、仮想ファイル処理プログラム１５の起動中に同一の仮想ファイルを２回更新した後、仮想ファイル処理プログラム１５が異常終了すると、図５に示すように、クライアントコンピュータ２のローカルストレージ１１には、例えば、リビジョン５のアップロードファイル一覧情報及び仮想ファイル一覧情報が存在する一方、リモートストレージ３には、リビジョン３のアップロードファイル一覧情報と、リビジョン４の更新ログと、リビジョン５の更新ログと、リビジョン４及びリビジョン５で更新された仮想ファイルの実体と、が存在する状況となる。つまり、リモートストレージ３に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる状況が発生する。
【００３１】
要求処理手段１７は、仮想ファイル処理プログラム１５の起動時に、リモートストレージ３からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードする。例えば、図６は、ローカルストレージ１１にリビジョン１基準の仮想ファイル一覧情報が存在する２台目のクライアントコンピュータ２で仮想ファイル処理プログラム１５を起動した場合の処理手順を示しており、リモートストレージ３からリビジョン３のアップロードファイル一覧情報をダウンロードするとともに（Ｓ３１）、リビジョン４の更新ログ及びリビジョン５の更新ログをダウンロードする（Ｓ３２）。
【００３２】
つぎに、要求処理手段１７は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する。例えば、図７に示すように、ダウンロードしたリビジョン３のアップロードファイル一覧情報にリビジョンの新しいリビジョン４及びリビジョン５の更新ログを適用してアップロードファイル一覧情報を最新のリビジョン５に更新し（Ｓ３３）、該リビジョン５のアップロードファイル一覧情報からリビジョン５基準の仮想ファイル一覧情報を構築する（Ｓ３４）。
【００３３】
このような処理手順によれば、リモートストレージ３に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ３に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができるので、リモートストレージ３に保存された仮想ファイルの実体を複数のクライアントコンピュータ２で安全に共有することが可能になる。
【００３４】
［仮想ファイル処理システムの処理手順］
つぎに、本発明の実施形態に係る仮想ファイル処理システム１００の処理手順について、図８及び図９を参照して説明する。
【００３５】
図８に示すように、クライアントコンピュータ２のユーザがアプリケーションソフト１４においてファイルの作成操作（仮想ファイルの書き込み操作）を行うと（Ｓ１０１）、ファイルシステム１３は、アプリケーションソフト１４からの要求（Ｓ１０２）に応じて、仮想ファイルの書き込み要求を行う（Ｓ１０３）。ファイル仮想化手段１６は、ファイルシステム１３からの仮想ファイルの書き込み要求をフックするとともに、要求処理手段１７に対して仮想ファイルの書き込みを要求する（Ｓ１０４）。要求処理手段１７は、書き込みを行う仮想ファイルの実体をローカルキャッシュ領域２１に書き込むとともに（Ｓ１０５）、ローカルストレージ１１の仮想ファイル一覧情報を更新する（Ｓ１０６）。
【００３６】
アップロード管理手段１８は、一定時間毎に仮想ファイル一覧情報を参照してアップロードすべき仮想ファイルの有無を判断し（Ｓ１０７）、アップロードすべき仮想ファイルがある場合は、アップロード対象の仮想ファイルの実体をローカルキャッシュ領域２１から読み出し（Ｓ１０８）、リモートストレージ３にアップロードする（Ｓ１０９）。また、アップロード管理手段１８は、仮想ファイルの実体をアップロードした後、ローカルストレージ１１のアップロードファイル一覧情報を更新するとともに（Ｓ１１０）、アップロードファイル一覧情報の更新ログをリモートストレージ３にアップロードし（Ｓ１１１）、アップロードファイル一覧情報のリビジョンをインクリメントする（Ｓ１１２）。また、アップロード管理手段１８は、更新ログとは異なるタイミング、例えば仮想ファイル処理プログラム１５のシャットダウン時にローカルストレージ１１のアップロードファイル一覧情報をリモートストレージ３にアップロードするとともに（Ｓ１１３）、アップロードしたリビジョン以前のアップロードファイル一覧情報及び更新ログをリモートストレージ３から削除する（Ｓ１１４）。
【００３７】
図９に示すように、仮想ファイル処理プログラム１５の起動時、要求処理手段１７は、ユーザ認証サーバ４に対するログイン処理を実行する（Ｓ２０１）。このとき要求処理手段１７は、同一ユーザＩＤに紐付けてユーザ認証サーバ４に登録されているキー情報に基づいて、前回起動したクライアントコンピュータ２を特定するとともに、前回起動したクライアントコンピュータ２が今回起動するクライアントコンピュータ２と異なる場合は、リモートストレージ３からアップロードファイル一覧情報をダウンロードするとともに、そのリビジョンを取得する（Ｓ２０２）。また、取得したリビジョンよりも後のリビジョンの更新ログがリモートストレージ３にある場合は、更新ログもダウンロードする（Ｓ２０３）。
【００３８】
つぎに、要求処理手段１７は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し（Ｓ２０４）、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する（Ｓ２０５）。また、ローカルストレージ１１に未アップロードのまま残っている仮想ファイルの実体がある場合は、仮想ファイル一覧情報に登録する（Ｓ２０６）。
【００３９】
叙述の如く構成された本実施形態によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージ３にアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。
【００４０】
また、アップロード管理手段１８は、ローカルストレージ１１上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージ３にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージ３にリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。
【００４１】
また、要求処理手段１７は、起動時に、リモートストレージ３からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージ３に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ３に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージ３に保存された仮想ファイルの実体を複数のクライアントコンピュータ２で安全に共有することが可能になる。
【００４２】
また、アップロード管理手段１８は、一定時間毎にリモートストレージ３にアップロードすべき仮想ファイルの実体がローカルストレージ１１に存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージ３にアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
【００４３】
また、アップロード管理手段１８は、シャットダウン時にローカルストレージ１１上のアップロードファイル一覧情報本体をリモートストレージ３にアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
【符号の説明】
【００４４】
１００  仮想ファイル処理システム
１  ネットワーク
２  クライアントコンピュータ
３  リモートストレージ
４  ユーザ認証サーバ
１１  ローカルストレージ
１３  ファイルシステム
１５  仮想ファイル処理プログラム
１６  ファイル仮想化手段
１７  要求処理手段
１８  アップロード管理手段
１９  リモートストレージアダプタ
【図１】
2020095589.tif 000003
【図２】
2020095589.tif 000004
【図３】
2020095589.tif 000005
【図４】
2020095589.tif 000006
【図５】
2020095589.tif 000007
【図６】
2020095589.tif 000008
【図７】
2020095589.tif 000009
【図８】
2020095589.tif 000010
【図９】
2020095589.tif 000011