JP2020095589A - 仮想ファイル処理システム及び仮想ファイル処理プログラム - Google Patents

仮想ファイル処理システム及び仮想ファイル処理プログラム Download PDF

Info

Publication number
JP2020095589A
JP2020095589A JP2018234441A JP2018234441A JP2020095589A JP 2020095589 A JP2020095589 A JP 2020095589A JP 2018234441 A JP2018234441 A JP 2018234441A JP 2018234441 A JP2018234441 A JP 2018234441A JP 2020095589 A JP2020095589 A JP 2020095589A
Authority
JP
Japan
Prior art keywords
file
list information
virtual
upload
remote storage
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.)
Granted
Application number
JP2018234441A
Other languages
English (en)
Other versions
JP7164176B2 (ja
Inventor
敦 小川
Atsushi Ogawa
敦 小川
勝也 石原
Katsuya Ishihara
勝也 石原
敦 阿部
Atsushi Abe
敦 阿部
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.)
RI CO Ltd
Original Assignee
RI CO Ltd
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 RI CO Ltd filed Critical RI CO Ltd
Priority to JP2018234441A priority Critical patent/JP7164176B2/ja
Publication of JP2020095589A publication Critical patent/JP2020095589A/ja
Application granted granted Critical
Publication of JP7164176B2 publication Critical patent/JP7164176B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有できる仮想ファイル処理システム及び仮想ファイル処理プログラムを提供する。【解決手段】クライアントコンピュータ2と、ネットワーク1を介してクライアントコンピュータ2と通信可能に接続されるリモートストレージ3とを備える仮想ファイル処理システム100であって、クライアントコンピュータ2は、仮想ファイルの実体をリモートストレージ3にアップロードした後、ローカルストレージ11上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージ3にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージ3にリビジョン付きでアップロードする。【選択図】図3

Description

本発明は、クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システム及び仮想ファイル処理プログラムに関する。
クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システムが知られている(例えば、特許文献1参照)。この種の仮想ファイル処理システムは、クライアントコンピュータが、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステムからの要求をフックする手段と、ファイルシステムから仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じてクライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出し、又はリモートストレージから仮想ファイル一覧情報をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの読み込み要求に応じてリモートストレージから仮想ファイルの実体をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体をリモートストレージにアップロードする手段と、を備えることにより実現できる。
また、特許文献1の仮想ファイル処理システムでは、仮想ファイル一覧情報がリモートストレージにアップロードされるので、ローカルストレージに最新の仮想ファイル一覧情報がないクライアントコンピュータ(例えば、同一ユーザの2台目のPC)であっても、リモートストレージから最新の仮想ファイル一覧情報をダウンロードすれば、リモートストレージに保存された仮想ファイルの実体を読み出したり、更新することが可能になる。
特開2016−148904号公報
しかしながら、この種の仮想ファイル処理システムでは、リモートストレージに対する仮想ファイル実体のアップロード処理と、仮想ファイル一覧情報の更新処理と、リモートストレージに対する仮想ファイル一覧情報のアップロード処理と、が同期して実行されるとは限らず、クライアントコンピュータが異常終了した場合などでは、リモートストレージに保存されている仮想ファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性があるため、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有するには、さらに改善の余地があった。
本発明は、上記の如き実情に鑑みこれらの課題を解決することを目的として創作されたものであって、請求項1の発明は、クライアントコンピュータと、ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、前記クライアントコンピュータは、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項2の発明は、請求項1に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項3の発明は、請求項1又は2に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
また、請求項4の発明は、ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、前記クライアントコンピュータを、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項5の発明は、請求項4に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項6の発明は、請求項4又は5に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
請求項1又は4の発明によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージにアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。また、アップロード管理手段は、ローカルストレージ上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージにリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。また、要求処理手段は、起動時に、リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージに保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージに保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有することが可能になる。
また、請求項2又は5の発明によれば、アップロード管理手段は、一定時間毎にリモートストレージにアップロードすべき仮想ファイルの実体がローカルストレージに存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージにアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
また、請求項3又は6の発明によれば、アップロード管理手段は、シャットダウン時にローカルストレージ上のアップロードファイル一覧情報本体をリモートストレージにアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
本発明の一実施形態に係る仮想ファイル処理システムの概略構成を示すブロック図である。 クライアントコンピュータのハードウェア構成を示すブロック図である。 クライアントコンピュータの機能構成を示すブロック図である。 リモートストレージに保存されている仮想ファイルの実体を複数のクライアントコンピュータで共有する場合の基本的な流れを示す説明図である。 ローカルストレージ上にあるアップロードファイル一覧情報とリモートストレージ上にあるアップロードファイル一覧情報とが一致しない状態を示す説明図である。 起動時におけるアップロードファイル一覧情報及び更新ログのダウンロード処理を示す説明図である。 起動時にダウンロードしたアップロードファイル一覧情報及び更新ログから仮想ファイル一覧情報を構築する処理を示す説明図である。 ファイル書き込み要求時の処理手順を示す処理シーケンス図である。 起動時の処理手順を示す処理シーケンス図である。
[仮想ファイル処理システム]
以下、本発明の実施の形態について、図面に基づいて説明する。図1において、100は仮想ファイル処理システムであって、該仮想ファイル処理システム100は、クライアントコンピュータ2と、リモートストレージ3(クラウドストレージ)と、ユーザ認証サーバ4と、これらを通信可能に接続するインターネットなどのネットワーク1と、を備えて構成されている。
[クライアントコンピュータ]
図2に示すように、クライアントコンピュータ2は、CPU5、RAM6、ROM7、入力部8、表示部9、通信部10及びローカルストレージ11を備えており、これらがバス12を介して接続されている。
CPU5は、中央制御装置であり、ROM7やローカルストレージ11に記憶されている各種プログラムをRAM6上に読み出して実行し、各部の制御を行う。RAM6は、揮発性のメモリであり、各種プログラムの一時的な記憶領域やCPU5の作業領域として使用される。ROM7は、不揮発性のメモリであり、BIOSなどの基本プログラムが記憶されている。また、入力部8は、キーボード、マウスなどの入力装置であり、表示部9は、液晶ディスプレイなどの表示装置であり、通信部10は、ネットワーク1を介したリモートストレージ3及びユーザ認証サーバ4との通信を可能にする通信インタフェースである。
ローカルストレージ11は、ハードディスクドライブなどの不揮発性記憶装置であり、ファイルシステム13を含むオペレーティングシステム、各種のアプリケーションソフト14、アプリケーションソフト14で作成した各種のファイル(非仮想ファイル)などに加え、本発明に係る仮想ファイル処理プログラム15が格納されている。仮想ファイル処理プログラム15は、クライアントコンピュータ2上のファイルを仮想化し、ファイルの実体をリモートストレージ3に保存するソフトウェアであり、その詳細は後述する。
[リモートストレージ]
リモートストレージ3は、クライアントコンピュータ2からネットワーク1を介してファイルの書き込み及び読み出しが可能な遠隔記憶装置である。本発明の実施形態に係るクライアントコンピュータ2は、仮想ファイル処理プログラム15との協働により、リモートストレージ3に対するファイルの書き込み及び読み出しを自動的に行う。
[ユーザ認証サーバ]
ユーザ認証サーバ4は、仮想ファイル処理プログラム15の起動に際してユーザ認証(ログイン認証)を行うためのサーバであり、このユーザ認証に成功した場合にのみ仮想ファイル処理プログラム15の実行が許容される。また、仮想ファイル処理プログラム15は、起動に際して実行環境を一意に表すキー情報をユーザIDに紐付けてユーザ認証サーバ4に登録するとともに、同一ユーザIDに紐付けて登録されているキー情報の有無を判断する。そして、仮想ファイル処理プログラム15は、同一ユーザIDに紐付けて登録されているキー情報が存在する場合、キー情報を比較し、キー情報が異なる場合は、同一ユーザの複数のクライアントコンピュータ2において仮想ファイル処理プログラム15が同時起動されることを防止するために、仮想ファイル処理プログラム15の起動制限又は起動している仮想ファイル処理プログラム15の強制終了処理を行う。
[仮想ファイル処理プログラム]
本発明の実施形態に係る仮想ファイル処理プログラム15は、ローカルストレージ11に格納されており、例えばクライアントコンピュータ2の起動に際して自動的に起動される。そして、仮想ファイル処理プログラム15は、図3に示すように、クライアントコンピュータ2を、後述するファイル仮想化手段16、要求処理手段17、アップロード管理手段18及びリモートストレージアダプタ19として機能させる。これら機能構成の詳細は後述する。
また、仮想ファイル処理プログラム15は、図3に示すように、ローカルストレージ11にローカルキャッシュ領域21、仮想ファイル一覧情報記憶領域22、アップロードファイル一覧情報記憶領域23などの記憶領域を確保する。ローカルキャッシュ領域21は、リモートストレージ3からダウンロードしたファイルの実体、リモートストレージ3にアップロードするファイルの実体などを格納するキャッシュ領域であり、ダウンロードしたファイルの実体及びアップロードしたファイルの実体は、セキュリティ上、クライアントコンピュータ2又は仮想ファイル処理プログラム15のシャットダウン時に消去される。
仮想ファイル一覧情報記憶領域22は、仮想ファイル一覧情報を記憶する領域である。仮想ファイル一覧情報は、アプリケーションソフト14が仮想ファイルの一覧表示を行う際に必要な情報群(データベース)であり、具体的には、リモートストレージ3において仮想ファイルを特定するためのキー情報、クライアントコンピュータ2における仮想ファイルのパス、仮想ファイルのファイル名、仮想ファイル又はディレクトリを一意に表すID、仮想ファイルのサイズ(byte)、仮想ファイルのファイル属性、仮想ファイルのファイル作成日時、ファイルアクセス日時、ファイル最終更新日時、仮想ファイルとディレクトリとを識別するフォルダフラグ、リモートストレージ3に対する最終アップロード日時、仮想ファイルの圧縮後のファイルサイズ、仮想ファイルの圧縮の有無を識別する圧縮フラグ、通常の仮想ファイルと削除された仮想ファイルを識別する削除フラグ、リモートストレージ3に対するアップロードの有無を識別するアップロードフラグなどの項目が含まれている。
アップロードファイル一覧情報記憶領域23は、アップロードファイル一覧情報を記憶する領域である。アップロードファイル一覧情報は、ユーザIDに紐付けてリモートストレージ3にアップロードされているファイル(仮想ファイルの実体)の一覧情報(データベース)であり、その項目は、仮想ファイル一覧情報と略同様であるが、本実施形態の仮想ファイル処理プログラム15は、リモートストレージ3にアップロードされているファイルの世代管理も行うため、仮想ファイル一覧情報よりもファイルサイズが大きい。
アップロードファイル一覧情報は、リモートストレージ3に対するファイルのアップロード、アップロードファイルの更新及び削除をトリガーとして更新される。また、更新されたアップロードファイル一覧情報は、リモートストレージ3にアップロードされる。
ファイル仮想化手段16は、ファイルシステム13に仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステム13からの要求をフックし、要求処理手段17に処理を要求する機能構成である。具体的に説明すると、ファイル仮想化手段16は、ファイルシステム13から仮想ファイル一覧情報の読み込み要求があった場合、これを要求処理手段17に要求するとともに、要求処理手段17から仮想ファイル一覧情報を受け取ってファイルシステム13に渡す。また、ファイル仮想化手段16は、ファイルシステム13から仮想ファイルの読み込み要求があった場合、これを要求処理手段17に要求するとともに、要求処理手段17から仮想ファイルの実体を受け取ってファイルシステム13に渡す。また、ファイル仮想化手段16は、ファイルシステム13から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体を要求処理手段17に渡し、リモートストレージ3にアップロードさせる。
要求処理手段17は、ファイルシステム13(ファイル仮想化手段16)からの要求に応じて、仮想ファイル一覧情報の読み込み処理、仮想ファイルの実体のダウンロード処理、仮想ファイルの実体のアップロード処理などを行う。具体的に説明すると、要求処理手段17は、ファイルシステム13から仮想ファイル一覧情報の読み込み要求があった場合、仮想ファイル一覧情報記憶領域22から仮想ファイル一覧情報を読み込み、これをファイル仮想化手段16を介してファイルシステム13に渡す。
また、要求処理手段17は、ファイルシステム13から仮想ファイルの読み込み要求があった場合、該当ファイルの実体がローカルキャッシュ領域21にあるか否かを確認し、ローカルキャッシュ領域21にある場合は、ローカルキャッシュ領域21から読み出した該当ファイルの実体をファイル仮想化手段16を介してファイルシステム13に渡す。一方、要求処理手段17は、該当ファイルの実体がローカルキャッシュ領域21にない場合、リモートストレージアダプタ19を介してリモートストレージ3から該当ファイルの実体をダウンロードし、これをローカルキャッシュ領域21にキャッシュするとともに、ファイル仮想化手段16を介してファイルシステム13に渡す。
また、要求処理手段17は、ファイルシステム13から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体をローカルキャッシュ領域21に書き込み、その後、アップロード管理手段18によってリモートストレージ3にアップロードさせる。そして、要求処理手段17は、各種の処理を実行した後、処理内容に応じて仮想ファイル一覧情報記憶領域22の仮想ファイル一覧情報を更新する。
アップロード管理手段18は、リモートストレージ3にアップロードすべき仮想ファイルの実体がローカルキャッシュ領域21に存在するか否かを一定時間毎に判断し、アップロードすべき仮想ファイルの実体がある場合は、アップロードすべき仮想ファイルの実体をローカルキャッシュ領域21から読み出し、リモートストレージアダプタ19を介してリモートストレージ3にアップロードする。そして、アップロード管理手段18は、アップロード終了後、アップロードファイル一覧情報記憶領域23のアップロードファイル一覧情報を更新する。また、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時に、アップロードファイル一覧情報記憶領域23からアップロードファイル一覧情報を読み出し、リモートストレージアダプタ19を介してリモートストレージ3にアップロードする。なお、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時以外にも、アップロードファイル一覧情報をリモートストレージ3にアップロードするようにしてもよい。例えば、一定時間毎にアップロードファイル一覧情報が更新されたか否かを判断し、更新されたと判断した場合にのみ、アップロードファイル一覧情報をリモートストレージ3にアップロードするようにすれば、アップロードファイル一覧情報の頻繁なアップロードも抑制できる。
リモートストレージアダプタ19は、様々なリモートストレージ3に対応するために、アップロード管理手段18などから分離されたアダプタである。つまり、仮想ファイル処理プログラム15は、様々なリモートストレージ3に対応する複数のリモートストレージアダプタ19を有し、使用するリモートストレージ3に応じてリモートストレージアダプタ19が選択される。
[仮想ファイル共有機能]
つぎに、仮想ファイル処理プログラム15の仮想ファイル共有機能について、図4以降を参照して説明する。
仮想ファイル共有機能は、リモートストレージ3に保存された仮想ファイルの実体を仮想ファイル処理プログラム15がインストールされた複数のクライアントコンピュータ2で共有することを可能にする。例えば、図4に示すように、ユーザが所有するデスクトップPC及びノートPCのうち、いずれのPCからでもリモートストレージ3に保存された仮想ファイルの実体をダウンロードしたり、更新した仮想ファイルの実体をリモートストレージ3にアップロードすることが可能になる。
この機能を実現するために、要求処理手段17は、仮想ファイル処理プログラム15の起動時に、リモートストレージ3からアップロードファイル一覧情報をダウンロードするとともに(S11)、ダウンロードしたアップロードファイル一覧情報に基づいて仮想ファイル一覧情報を構築する(S12)。これにより、ファイルシステム13からの要求に応じて仮想ファイル一覧情報を渡し(S13)、アプリケーションソフト14における仮想ファイルの一覧表示が可能になるとともに、ファイルシステム13からの仮想ファイル読み込み要求に応じてリモートストレージ3から仮想ファイルの実体をダウンロードしてアプリケーションソフト14に渡すことが可能になる(S14)。
また、要求処理手段17は、仮想ファイルの新規作成や更新が行われた場合、仮想ファイル一覧情報を更新する(S21)。アップロード管理手段18は、仮想ファイル一覧情報が更新されると、該当する仮想ファイルの実体をリモートストレージ3にアップロードするとともに(S22)、アップロードファイル一覧情報を更新する(S23)。また、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時に、更新されたアップロードファイル一覧情報をリモートストレージ3にアップロードする(S24)。これにより、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で共有することが可能になるが、アップロードファイル一覧情報の更新処理と、リモートストレージ3に対するアップロードファイル一覧情報のアップロード処理は、異なるタイミングで実行されるので、クライアントコンピュータ2が異常終了した場合は、リモートストレージ3に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性がある。
上記の問題を解決するために、アップロード管理手段18は、仮想ファイルの実体をリモートストレージ3にアップロードした後、ローカルストレージ11上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログ(直前リビジョンとの差分情報)をリビジョン付きでリモートストレージ3にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミング(シャットダウン時)でリモートストレージ3にリビジョン付きでアップロードする。このような処理手順によれば、例えば、仮想ファイル処理プログラム15の起動中に同一の仮想ファイルを2回更新した後、仮想ファイル処理プログラム15が異常終了すると、図5に示すように、クライアントコンピュータ2のローカルストレージ11には、例えば、リビジョン5のアップロードファイル一覧情報及び仮想ファイル一覧情報が存在する一方、リモートストレージ3には、リビジョン3のアップロードファイル一覧情報と、リビジョン4の更新ログと、リビジョン5の更新ログと、リビジョン4及びリビジョン5で更新された仮想ファイルの実体と、が存在する状況となる。つまり、リモートストレージ3に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる状況が発生する。
要求処理手段17は、仮想ファイル処理プログラム15の起動時に、リモートストレージ3からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードする。例えば、図6は、ローカルストレージ11にリビジョン1基準の仮想ファイル一覧情報が存在する2台目のクライアントコンピュータ2で仮想ファイル処理プログラム15を起動した場合の処理手順を示しており、リモートストレージ3からリビジョン3のアップロードファイル一覧情報をダウンロードするとともに(S31)、リビジョン4の更新ログ及びリビジョン5の更新ログをダウンロードする(S32)。
つぎに、要求処理手段17は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する。例えば、図7に示すように、ダウンロードしたリビジョン3のアップロードファイル一覧情報にリビジョンの新しいリビジョン4及びリビジョン5の更新ログを適用してアップロードファイル一覧情報を最新のリビジョン5に更新し(S33)、該リビジョン5のアップロードファイル一覧情報からリビジョン5基準の仮想ファイル一覧情報を構築する(S34)。
このような処理手順によれば、リモートストレージ3に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ3に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができるので、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で安全に共有することが可能になる。
[仮想ファイル処理システムの処理手順]
つぎに、本発明の実施形態に係る仮想ファイル処理システム100の処理手順について、図8及び図9を参照して説明する。
図8に示すように、クライアントコンピュータ2のユーザがアプリケーションソフト14においてファイルの作成操作(仮想ファイルの書き込み操作)を行うと(S101)、ファイルシステム13は、アプリケーションソフト14からの要求(S102)に応じて、仮想ファイルの書き込み要求を行う(S103)。ファイル仮想化手段16は、ファイルシステム13からの仮想ファイルの書き込み要求をフックするとともに、要求処理手段17に対して仮想ファイルの書き込みを要求する(S104)。要求処理手段17は、書き込みを行う仮想ファイルの実体をローカルキャッシュ領域21に書き込むとともに(S105)、ローカルストレージ11の仮想ファイル一覧情報を更新する(S106)。
アップロード管理手段18は、一定時間毎に仮想ファイル一覧情報を参照してアップロードすべき仮想ファイルの有無を判断し(S107)、アップロードすべき仮想ファイルがある場合は、アップロード対象の仮想ファイルの実体をローカルキャッシュ領域21から読み出し(S108)、リモートストレージ3にアップロードする(S109)。また、アップロード管理手段18は、仮想ファイルの実体をアップロードした後、ローカルストレージ11のアップロードファイル一覧情報を更新するとともに(S110)、アップロードファイル一覧情報の更新ログをリモートストレージ3にアップロードし(S111)、アップロードファイル一覧情報のリビジョンをインクリメントする(S112)。また、アップロード管理手段18は、更新ログとは異なるタイミング、例えば仮想ファイル処理プログラム15のシャットダウン時にローカルストレージ11のアップロードファイル一覧情報をリモートストレージ3にアップロードするとともに(S113)、アップロードしたリビジョン以前のアップロードファイル一覧情報及び更新ログをリモートストレージ3から削除する(S114)。
図9に示すように、仮想ファイル処理プログラム15の起動時、要求処理手段17は、ユーザ認証サーバ4に対するログイン処理を実行する(S201)。このとき要求処理手段17は、同一ユーザIDに紐付けてユーザ認証サーバ4に登録されているキー情報に基づいて、前回起動したクライアントコンピュータ2を特定するとともに、前回起動したクライアントコンピュータ2が今回起動するクライアントコンピュータ2と異なる場合は、リモートストレージ3からアップロードファイル一覧情報をダウンロードするとともに、そのリビジョンを取得する(S202)。また、取得したリビジョンよりも後のリビジョンの更新ログがリモートストレージ3にある場合は、更新ログもダウンロードする(S203)。
つぎに、要求処理手段17は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し(S204)、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する(S205)。また、ローカルストレージ11に未アップロードのまま残っている仮想ファイルの実体がある場合は、仮想ファイル一覧情報に登録する(S206)。
叙述の如く構成された本実施形態によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージ3にアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。
また、アップロード管理手段18は、ローカルストレージ11上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージ3にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージ3にリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。
また、要求処理手段17は、起動時に、リモートストレージ3からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージ3に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ3に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で安全に共有することが可能になる。
また、アップロード管理手段18は、一定時間毎にリモートストレージ3にアップロードすべき仮想ファイルの実体がローカルストレージ11に存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージ3にアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
また、アップロード管理手段18は、シャットダウン時にローカルストレージ11上のアップロードファイル一覧情報本体をリモートストレージ3にアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
100 仮想ファイル処理システム
1 ネットワーク
2 クライアントコンピュータ
3 リモートストレージ
4 ユーザ認証サーバ
11 ローカルストレージ
13 ファイルシステム
15 仮想ファイル処理プログラム
16 ファイル仮想化手段
17 要求処理手段
18 アップロード管理手段
19 リモートストレージアダプタ

Claims (6)

  1. クライアントコンピュータと、
    ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、
    前記クライアントコンピュータは、
    当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
    前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
    前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、
    前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
    前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理システム。
  2. 前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項1に記載の仮想ファイル処理システム。
  3. 前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項1又は2に記載の仮想ファイル処理システム。
  4. ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、
    前記クライアントコンピュータを、
    当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
    前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
    前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、
    前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
    前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理プログラム。
  5. 前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項4に記載の仮想ファイル処理プログラム。
  6. 前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項4又は5に記載の仮想ファイル処理プログラム。
JP2018234441A 2018-12-14 2018-12-14 仮想ファイル処理システム及び仮想ファイル処理プログラム Active JP7164176B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018234441A JP7164176B2 (ja) 2018-12-14 2018-12-14 仮想ファイル処理システム及び仮想ファイル処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018234441A JP7164176B2 (ja) 2018-12-14 2018-12-14 仮想ファイル処理システム及び仮想ファイル処理プログラム

Publications (2)

Publication Number Publication Date
JP2020095589A true JP2020095589A (ja) 2020-06-18
JP7164176B2 JP7164176B2 (ja) 2022-11-01

Family

ID=71085222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018234441A Active JP7164176B2 (ja) 2018-12-14 2018-12-14 仮想ファイル処理システム及び仮想ファイル処理プログラム

Country Status (1)

Country Link
JP (1) JP7164176B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312264A (zh) * 2023-12-01 2023-12-29 中孚信息股份有限公司 虚拟磁盘系统中的文件同步方法、系统、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203187A (ja) * 1998-01-12 1999-07-30 Casio Comput Co Ltd ネットワーク端末装置及び記憶媒体
WO2013035517A1 (ja) * 2011-09-07 2013-03-14 株式会社 オレガ ファイル管理システム及びファイル管理方法
WO2014128819A1 (ja) * 2013-02-19 2014-08-28 株式会社 日立製作所 情報処理システム及びそのデータ同期制御方式
JP2015211457A (ja) * 2014-04-30 2015-11-24 株式会社Pfu 端末装置、画像読取装置、情報処理システム、および、情報処理方法
JP2016148904A (ja) * 2015-02-10 2016-08-18 株式会社アール・アイ ファイル管理システム及びファイル管理プログラム
JP2016162168A (ja) * 2015-03-02 2016-09-05 株式会社メガチップス キャッシュファイルシステム
JP2017529625A (ja) * 2014-09-23 2017-10-05 アマゾン テクノロジーズ インコーポレイテッド 共有フォルダ及び共有ファイルの同期

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203187A (ja) * 1998-01-12 1999-07-30 Casio Comput Co Ltd ネットワーク端末装置及び記憶媒体
WO2013035517A1 (ja) * 2011-09-07 2013-03-14 株式会社 オレガ ファイル管理システム及びファイル管理方法
WO2014128819A1 (ja) * 2013-02-19 2014-08-28 株式会社 日立製作所 情報処理システム及びそのデータ同期制御方式
JP2015211457A (ja) * 2014-04-30 2015-11-24 株式会社Pfu 端末装置、画像読取装置、情報処理システム、および、情報処理方法
JP2017529625A (ja) * 2014-09-23 2017-10-05 アマゾン テクノロジーズ インコーポレイテッド 共有フォルダ及び共有ファイルの同期
JP2016148904A (ja) * 2015-02-10 2016-08-18 株式会社アール・アイ ファイル管理システム及びファイル管理プログラム
JP2016162168A (ja) * 2015-03-02 2016-09-05 株式会社メガチップス キャッシュファイルシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
石坂 俊成: "END USER FIRST 「使いやすく低コストのファイル仮想化でモバイルPCの 安全な持ち出しを実現」 fi", PC−WEBZINE, vol. 第309巻, JPN6022039614, 25 October 2017 (2017-10-25), pages 18 - 19, ISSN: 0004879168 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312264A (zh) * 2023-12-01 2023-12-29 中孚信息股份有限公司 虚拟磁盘系统中的文件同步方法、系统、设备及介质
CN117312264B (zh) * 2023-12-01 2024-02-20 中孚信息股份有限公司 虚拟磁盘系统中的文件同步方法、系统、设备及介质

Also Published As

Publication number Publication date
JP7164176B2 (ja) 2022-11-01

Similar Documents

Publication Publication Date Title
US7941599B2 (en) IT automation appliance imaging system and method
US8495351B2 (en) Preparing and preserving a system configuration during a hot upgrade
US8825994B2 (en) Atomic switching of images in desktop streaming over wide area networks
US8548944B2 (en) De-duplication based backup of file systems
JP5342302B2 (ja) ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
US8725695B2 (en) Storage system and object management method
US10715637B2 (en) Systems and methods for automated application deployment management
US9075532B1 (en) Self-referential deduplication
US10459893B2 (en) Computer system, file storage apparatus, and storage control method
US10108434B2 (en) Booting a computing device by streaming a desktop image over a network
EP3535955B1 (en) Systems, devices and methods for managing file system replication
US20160162278A1 (en) System and method for applying an update to a device system via a system snapshot
CN114270315A (zh) 应用的水合
US11762738B2 (en) Reducing bandwidth during synthetic restores from a deduplication file system
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
JP7164176B2 (ja) 仮想ファイル処理システム及び仮想ファイル処理プログラム
JP6483459B2 (ja) ファイル管理システム及びファイル管理プログラム
JP2020095588A (ja) 仮想ファイル処理システム及び仮想ファイル処理プログラム
US20110131181A1 (en) Information processing device and computer readable storage medium storing program
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
US11307800B2 (en) Supporting file exclusions and commits in disk-based write filters
JP4907309B2 (ja) シェルプログラム配信システム及び同配信プログラム
US20210334108A1 (en) Bios code to store operating systems on computer-readable media
JP2013228778A (ja) ストレージシステム、バックアップ管理装置、バックアップ方法及びバックアッププログラム
JP2006259874A (ja) コンピュータとコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220922

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221013

R150 Certificate of patent or registration of utility model

Ref document number: 7164176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150