IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7164176仮想ファイル処理システム及び仮想ファイル処理プログラム
<>
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図1
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図2
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図3
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図4
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図5
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図6
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図7
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図8
  • -仮想ファイル処理システム及び仮想ファイル処理プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】仮想ファイル処理システム及び仮想ファイル処理プログラム
(51)【国際特許分類】
   G06F 16/182 20190101AFI20221025BHJP
   G06F 16/17 20190101ALI20221025BHJP
   G06F 16/178 20190101ALI20221025BHJP
   G06F 16/172 20190101ALI20221025BHJP
   G06F 16/188 20190101ALI20221025BHJP
【FI】
G06F16/182
G06F16/17 200
G06F16/178
G06F16/172
G06F16/188
【請求項の数】 6
(21)【出願番号】P 2018234441
(22)【出願日】2018-12-14
(65)【公開番号】P2020095589
(43)【公開日】2020-06-18
【審査請求日】2021-11-01
(73)【特許権者】
【識別番号】506079434
【氏名又は名称】アップデータ株式会社
(74)【代理人】
【識別番号】100085394
【弁理士】
【氏名又は名称】廣瀬 哲夫
(74)【代理人】
【識別番号】100165456
【弁理士】
【氏名又は名称】鈴木 佑子
(74)【代理人】
【識別番号】100206106
【弁理士】
【氏名又は名称】廣瀬 郁夫
(72)【発明者】
【氏名】小川 敦
(72)【発明者】
【氏名】石原 勝也
(72)【発明者】
【氏名】阿部 敦
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2016-148904(JP,A)
【文献】国際公開第2014/128819(WO,A1)
【文献】特開2016-162168(JP,A)
【文献】特開2015-211457(JP,A)
【文献】特表2017-529625(JP,A)
【文献】特開平11-203187(JP,A)
【文献】国際公開第2013/035517(WO,A1)
【文献】石坂 俊成,END USER FIRST 「使いやすく低コストのファイル仮想化でモバイルPCの 安全な持ち出しを実現」 file virtualization Shadow Desktop,PC-Webzine,PC-Webzine編集局,2017年10月25日,第309巻,pp.18~19
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
クライアントコンピュータと、
ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、
前記クライアントコンピュータは、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、
前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理システム。
【請求項2】
前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項1に記載の仮想ファイル処理システム。
【請求項3】
前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項1又は2に記載の仮想ファイル処理システム。
【請求項4】
ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、
前記クライアントコンピュータを、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、
前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、
前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、
前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする仮想ファイル処理プログラム。
【請求項5】
前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする請求項4に記載の仮想ファイル処理プログラム。
【請求項6】
前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする請求項4又は5に記載の仮想ファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システム及び仮想ファイル処理プログラムに関する。
【背景技術】
【0002】
クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システムが知られている(例えば、特許文献1参照)。この種の仮想ファイル処理システムは、クライアントコンピュータが、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステムからの要求をフックする手段と、ファイルシステムから仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じてクライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出し、又はリモートストレージから仮想ファイル一覧情報をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの読み込み要求に応じてリモートストレージから仮想ファイルの実体をダウンロードしてファイルシステムに渡す手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体をリモートストレージにアップロードする手段と、を備えることにより実現できる。
【0003】
また、特許文献1の仮想ファイル処理システムでは、仮想ファイル一覧情報がリモートストレージにアップロードされるので、ローカルストレージに最新の仮想ファイル一覧情報がないクライアントコンピュータ(例えば、同一ユーザの2台目のPC)であっても、リモートストレージから最新の仮想ファイル一覧情報をダウンロードすれば、リモートストレージに保存された仮想ファイルの実体を読み出したり、更新することが可能になる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-148904号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、この種の仮想ファイル処理システムでは、リモートストレージに対する仮想ファイル実体のアップロード処理と、仮想ファイル一覧情報の更新処理と、リモートストレージに対する仮想ファイル一覧情報のアップロード処理と、が同期して実行されるとは限らず、クライアントコンピュータが異常終了した場合などでは、リモートストレージに保存されている仮想ファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性があるため、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有するには、さらに改善の余地があった。
【課題を解決するための手段】
【0006】
本発明は、上記の如き実情に鑑みこれらの課題を解決することを目的として創作されたものであって、請求項1の発明は、クライアントコンピュータと、ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、前記クライアントコンピュータは、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、を備え、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項2の発明は、請求項1に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項3の発明は、請求項1又は2に記載の仮想ファイル処理システムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
また、請求項4の発明は、ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、前記クライアントコンピュータを、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイル一覧情報の読み込み要求に応じて前記クライアントコンピュータのローカルストレージから仮想ファイル一覧情報を読み出して前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡し、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記ローカルストレージに書き込むとともに仮想ファイル一覧情報を更新する要求処理手段と、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在する場合、仮想ファイルの実体を前記リモートストレージにアップロードするとともに、前記リモートストレージにアップロードされているファイルの一覧情報であるアップロードファイル一覧情報を更新するアップロード管理手段と、として機能させ、前記アップロード管理手段は、仮想ファイルの実体を前記リモートストレージにアップロードした後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングで前記リモートストレージにリビジョン付きでアップロードし、前記要求処理手段は、起動時に、前記リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築することを特徴とする。
また、請求項5の発明は、請求項4に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、一定時間毎に前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在するか否かを判断し、前記リモートストレージにアップロードすべき仮想ファイルの実体が前記ローカルストレージに存在すると判断したとき、仮想ファイルの実体を前記リモートストレージにアップロードし、その後、前記ローカルストレージ上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログをリビジョン付きで前記リモートストレージにアップロードすることを特徴とする。
また、請求項6の発明は、請求項4又は5に記載の仮想ファイル処理プログラムであって、前記アップロード管理手段は、シャットダウン時に前記ローカルストレージ上のアップロードファイル一覧情報本体を前記リモートストレージにアップロードすることを特徴とする。
【発明の効果】
【0007】
請求項1又は4の発明によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージにアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。また、アップロード管理手段は、ローカルストレージ上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージにアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージにリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。また、要求処理手段は、起動時に、リモートストレージからアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージに保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージに保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージに保存された仮想ファイルの実体を複数のクライアントコンピュータで安全に共有することが可能になる。
また、請求項2又は5の発明によれば、アップロード管理手段は、一定時間毎にリモートストレージにアップロードすべき仮想ファイルの実体がローカルストレージに存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージにアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
また、請求項3又は6の発明によれば、アップロード管理手段は、シャットダウン時にローカルストレージ上のアップロードファイル一覧情報本体をリモートストレージにアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
【図面の簡単な説明】
【0008】
図1】本発明の一実施形態に係る仮想ファイル処理システムの概略構成を示すブロック図である。
図2】クライアントコンピュータのハードウェア構成を示すブロック図である。
図3】クライアントコンピュータの機能構成を示すブロック図である。
図4】リモートストレージに保存されている仮想ファイルの実体を複数のクライアントコンピュータで共有する場合の基本的な流れを示す説明図である。
図5】ローカルストレージ上にあるアップロードファイル一覧情報とリモートストレージ上にあるアップロードファイル一覧情報とが一致しない状態を示す説明図である。
図6】起動時におけるアップロードファイル一覧情報及び更新ログのダウンロード処理を示す説明図である。
図7】起動時にダウンロードしたアップロードファイル一覧情報及び更新ログから仮想ファイル一覧情報を構築する処理を示す説明図である。
図8】ファイル書き込み要求時の処理手順を示す処理シーケンス図である。
図9】起動時の処理手順を示す処理シーケンス図である。
【発明を実施するための形態】
【0009】
[仮想ファイル処理システム]
以下、本発明の実施の形態について、図面に基づいて説明する。図1において、100は仮想ファイル処理システムであって、該仮想ファイル処理システム100は、クライアントコンピュータ2と、リモートストレージ3(クラウドストレージ)と、ユーザ認証サーバ4と、これらを通信可能に接続するインターネットなどのネットワーク1と、を備えて構成されている。
【0010】
[クライアントコンピュータ]
図2に示すように、クライアントコンピュータ2は、CPU5、RAM6、ROM7、入力部8、表示部9、通信部10及びローカルストレージ11を備えており、これらがバス12を介して接続されている。
【0011】
CPU5は、中央制御装置であり、ROM7やローカルストレージ11に記憶されている各種プログラムをRAM6上に読み出して実行し、各部の制御を行う。RAM6は、揮発性のメモリであり、各種プログラムの一時的な記憶領域やCPU5の作業領域として使用される。ROM7は、不揮発性のメモリであり、BIOSなどの基本プログラムが記憶されている。また、入力部8は、キーボード、マウスなどの入力装置であり、表示部9は、液晶ディスプレイなどの表示装置であり、通信部10は、ネットワーク1を介したリモートストレージ3及びユーザ認証サーバ4との通信を可能にする通信インタフェースである。
【0012】
ローカルストレージ11は、ハードディスクドライブなどの不揮発性記憶装置であり、ファイルシステム13を含むオペレーティングシステム、各種のアプリケーションソフト14、アプリケーションソフト14で作成した各種のファイル(非仮想ファイル)などに加え、本発明に係る仮想ファイル処理プログラム15が格納されている。仮想ファイル処理プログラム15は、クライアントコンピュータ2上のファイルを仮想化し、ファイルの実体をリモートストレージ3に保存するソフトウェアであり、その詳細は後述する。
【0013】
[リモートストレージ]
リモートストレージ3は、クライアントコンピュータ2からネットワーク1を介してファイルの書き込み及び読み出しが可能な遠隔記憶装置である。本発明の実施形態に係るクライアントコンピュータ2は、仮想ファイル処理プログラム15との協働により、リモートストレージ3に対するファイルの書き込み及び読み出しを自動的に行う。
【0014】
[ユーザ認証サーバ]
ユーザ認証サーバ4は、仮想ファイル処理プログラム15の起動に際してユーザ認証(ログイン認証)を行うためのサーバであり、このユーザ認証に成功した場合にのみ仮想ファイル処理プログラム15の実行が許容される。また、仮想ファイル処理プログラム15は、起動に際して実行環境を一意に表すキー情報をユーザIDに紐付けてユーザ認証サーバ4に登録するとともに、同一ユーザIDに紐付けて登録されているキー情報の有無を判断する。そして、仮想ファイル処理プログラム15は、同一ユーザIDに紐付けて登録されているキー情報が存在する場合、キー情報を比較し、キー情報が異なる場合は、同一ユーザの複数のクライアントコンピュータ2において仮想ファイル処理プログラム15が同時起動されることを防止するために、仮想ファイル処理プログラム15の起動制限又は起動している仮想ファイル処理プログラム15の強制終了処理を行う。
【0015】
[仮想ファイル処理プログラム]
本発明の実施形態に係る仮想ファイル処理プログラム15は、ローカルストレージ11に格納されており、例えばクライアントコンピュータ2の起動に際して自動的に起動される。そして、仮想ファイル処理プログラム15は、図3に示すように、クライアントコンピュータ2を、後述するファイル仮想化手段16、要求処理手段17、アップロード管理手段18及びリモートストレージアダプタ19として機能させる。これら機能構成の詳細は後述する。
【0016】
また、仮想ファイル処理プログラム15は、図3に示すように、ローカルストレージ11にローカルキャッシュ領域21、仮想ファイル一覧情報記憶領域22、アップロードファイル一覧情報記憶領域23などの記憶領域を確保する。ローカルキャッシュ領域21は、リモートストレージ3からダウンロードしたファイルの実体、リモートストレージ3にアップロードするファイルの実体などを格納するキャッシュ領域であり、ダウンロードしたファイルの実体及びアップロードしたファイルの実体は、セキュリティ上、クライアントコンピュータ2又は仮想ファイル処理プログラム15のシャットダウン時に消去される。
【0017】
仮想ファイル一覧情報記憶領域22は、仮想ファイル一覧情報を記憶する領域である。仮想ファイル一覧情報は、アプリケーションソフト14が仮想ファイルの一覧表示を行う際に必要な情報群(データベース)であり、具体的には、リモートストレージ3において仮想ファイルを特定するためのキー情報、クライアントコンピュータ2における仮想ファイルのパス、仮想ファイルのファイル名、仮想ファイル又はディレクトリを一意に表すID、仮想ファイルのサイズ(byte)、仮想ファイルのファイル属性、仮想ファイルのファイル作成日時、ファイルアクセス日時、ファイル最終更新日時、仮想ファイルとディレクトリとを識別するフォルダフラグ、リモートストレージ3に対する最終アップロード日時、仮想ファイルの圧縮後のファイルサイズ、仮想ファイルの圧縮の有無を識別する圧縮フラグ、通常の仮想ファイルと削除された仮想ファイルを識別する削除フラグ、リモートストレージ3に対するアップロードの有無を識別するアップロードフラグなどの項目が含まれている。
【0018】
アップロードファイル一覧情報記憶領域23は、アップロードファイル一覧情報を記憶する領域である。アップロードファイル一覧情報は、ユーザIDに紐付けてリモートストレージ3にアップロードされているファイル(仮想ファイルの実体)の一覧情報(データベース)であり、その項目は、仮想ファイル一覧情報と略同様であるが、本実施形態の仮想ファイル処理プログラム15は、リモートストレージ3にアップロードされているファイルの世代管理も行うため、仮想ファイル一覧情報よりもファイルサイズが大きい。
【0019】
アップロードファイル一覧情報は、リモートストレージ3に対するファイルのアップロード、アップロードファイルの更新及び削除をトリガーとして更新される。また、更新されたアップロードファイル一覧情報は、リモートストレージ3にアップロードされる。
【0020】
ファイル仮想化手段16は、ファイルシステム13に仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステム13からの要求をフックし、要求処理手段17に処理を要求する機能構成である。具体的に説明すると、ファイル仮想化手段16は、ファイルシステム13から仮想ファイル一覧情報の読み込み要求があった場合、これを要求処理手段17に要求するとともに、要求処理手段17から仮想ファイル一覧情報を受け取ってファイルシステム13に渡す。また、ファイル仮想化手段16は、ファイルシステム13から仮想ファイルの読み込み要求があった場合、これを要求処理手段17に要求するとともに、要求処理手段17から仮想ファイルの実体を受け取ってファイルシステム13に渡す。また、ファイル仮想化手段16は、ファイルシステム13から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体を要求処理手段17に渡し、リモートストレージ3にアップロードさせる。
【0021】
要求処理手段17は、ファイルシステム13(ファイル仮想化手段16)からの要求に応じて、仮想ファイル一覧情報の読み込み処理、仮想ファイルの実体のダウンロード処理、仮想ファイルの実体のアップロード処理などを行う。具体的に説明すると、要求処理手段17は、ファイルシステム13から仮想ファイル一覧情報の読み込み要求があった場合、仮想ファイル一覧情報記憶領域22から仮想ファイル一覧情報を読み込み、これをファイル仮想化手段16を介してファイルシステム13に渡す。
【0022】
また、要求処理手段17は、ファイルシステム13から仮想ファイルの読み込み要求があった場合、該当ファイルの実体がローカルキャッシュ領域21にあるか否かを確認し、ローカルキャッシュ領域21にある場合は、ローカルキャッシュ領域21から読み出した該当ファイルの実体をファイル仮想化手段16を介してファイルシステム13に渡す。一方、要求処理手段17は、該当ファイルの実体がローカルキャッシュ領域21にない場合、リモートストレージアダプタ19を介してリモートストレージ3から該当ファイルの実体をダウンロードし、これをローカルキャッシュ領域21にキャッシュするとともに、ファイル仮想化手段16を介してファイルシステム13に渡す。
【0023】
また、要求処理手段17は、ファイルシステム13から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体をローカルキャッシュ領域21に書き込み、その後、アップロード管理手段18によってリモートストレージ3にアップロードさせる。そして、要求処理手段17は、各種の処理を実行した後、処理内容に応じて仮想ファイル一覧情報記憶領域22の仮想ファイル一覧情報を更新する。
【0024】
アップロード管理手段18は、リモートストレージ3にアップロードすべき仮想ファイルの実体がローカルキャッシュ領域21に存在するか否かを一定時間毎に判断し、アップロードすべき仮想ファイルの実体がある場合は、アップロードすべき仮想ファイルの実体をローカルキャッシュ領域21から読み出し、リモートストレージアダプタ19を介してリモートストレージ3にアップロードする。そして、アップロード管理手段18は、アップロード終了後、アップロードファイル一覧情報記憶領域23のアップロードファイル一覧情報を更新する。また、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時に、アップロードファイル一覧情報記憶領域23からアップロードファイル一覧情報を読み出し、リモートストレージアダプタ19を介してリモートストレージ3にアップロードする。なお、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時以外にも、アップロードファイル一覧情報をリモートストレージ3にアップロードするようにしてもよい。例えば、一定時間毎にアップロードファイル一覧情報が更新されたか否かを判断し、更新されたと判断した場合にのみ、アップロードファイル一覧情報をリモートストレージ3にアップロードするようにすれば、アップロードファイル一覧情報の頻繁なアップロードも抑制できる。
【0025】
リモートストレージアダプタ19は、様々なリモートストレージ3に対応するために、アップロード管理手段18などから分離されたアダプタである。つまり、仮想ファイル処理プログラム15は、様々なリモートストレージ3に対応する複数のリモートストレージアダプタ19を有し、使用するリモートストレージ3に応じてリモートストレージアダプタ19が選択される。
【0026】
[仮想ファイル共有機能]
つぎに、仮想ファイル処理プログラム15の仮想ファイル共有機能について、図4以降を参照して説明する。
【0027】
仮想ファイル共有機能は、リモートストレージ3に保存された仮想ファイルの実体を仮想ファイル処理プログラム15がインストールされた複数のクライアントコンピュータ2で共有することを可能にする。例えば、図4に示すように、ユーザが所有するデスクトップPC及びノートPCのうち、いずれのPCからでもリモートストレージ3に保存された仮想ファイルの実体をダウンロードしたり、更新した仮想ファイルの実体をリモートストレージ3にアップロードすることが可能になる。
【0028】
この機能を実現するために、要求処理手段17は、仮想ファイル処理プログラム15の起動時に、リモートストレージ3からアップロードファイル一覧情報をダウンロードするとともに(S11)、ダウンロードしたアップロードファイル一覧情報に基づいて仮想ファイル一覧情報を構築する(S12)。これにより、ファイルシステム13からの要求に応じて仮想ファイル一覧情報を渡し(S13)、アプリケーションソフト14における仮想ファイルの一覧表示が可能になるとともに、ファイルシステム13からの仮想ファイル読み込み要求に応じてリモートストレージ3から仮想ファイルの実体をダウンロードしてアプリケーションソフト14に渡すことが可能になる(S14)。
【0029】
また、要求処理手段17は、仮想ファイルの新規作成や更新が行われた場合、仮想ファイル一覧情報を更新する(S21)。アップロード管理手段18は、仮想ファイル一覧情報が更新されると、該当する仮想ファイルの実体をリモートストレージ3にアップロードするとともに(S22)、アップロードファイル一覧情報を更新する(S23)。また、アップロード管理手段18は、仮想ファイル処理プログラム15のシャットダウン時に、更新されたアップロードファイル一覧情報をリモートストレージ3にアップロードする(S24)。これにより、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で共有することが可能になるが、アップロードファイル一覧情報の更新処理と、リモートストレージ3に対するアップロードファイル一覧情報のアップロード処理は、異なるタイミングで実行されるので、クライアントコンピュータ2が異常終了した場合は、リモートストレージ3に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる可能性がある。
【0030】
上記の問題を解決するために、アップロード管理手段18は、仮想ファイルの実体をリモートストレージ3にアップロードした後、ローカルストレージ11上のアップロードファイル一覧情報を更新するとともに、アップロードファイル一覧情報の更新ログ(直前リビジョンとの差分情報)をリビジョン付きでリモートストレージ3にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミング(シャットダウン時)でリモートストレージ3にリビジョン付きでアップロードする。このような処理手順によれば、例えば、仮想ファイル処理プログラム15の起動中に同一の仮想ファイルを2回更新した後、仮想ファイル処理プログラム15が異常終了すると、図5に示すように、クライアントコンピュータ2のローカルストレージ11には、例えば、リビジョン5のアップロードファイル一覧情報及び仮想ファイル一覧情報が存在する一方、リモートストレージ3には、リビジョン3のアップロードファイル一覧情報と、リビジョン4の更新ログと、リビジョン5の更新ログと、リビジョン4及びリビジョン5で更新された仮想ファイルの実体と、が存在する状況となる。つまり、リモートストレージ3に保存されているアップロードファイル一覧情報と仮想ファイルの実体との間に不整合が生じる状況が発生する。
【0031】
要求処理手段17は、仮想ファイル処理プログラム15の起動時に、リモートストレージ3からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードする。例えば、図6は、ローカルストレージ11にリビジョン1基準の仮想ファイル一覧情報が存在する2台目のクライアントコンピュータ2で仮想ファイル処理プログラム15を起動した場合の処理手順を示しており、リモートストレージ3からリビジョン3のアップロードファイル一覧情報をダウンロードするとともに(S31)、リビジョン4の更新ログ及びリビジョン5の更新ログをダウンロードする(S32)。
【0032】
つぎに、要求処理手段17は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する。例えば、図7に示すように、ダウンロードしたリビジョン3のアップロードファイル一覧情報にリビジョンの新しいリビジョン4及びリビジョン5の更新ログを適用してアップロードファイル一覧情報を最新のリビジョン5に更新し(S33)、該リビジョン5のアップロードファイル一覧情報からリビジョン5基準の仮想ファイル一覧情報を構築する(S34)。
【0033】
このような処理手順によれば、リモートストレージ3に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ3に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができるので、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で安全に共有することが可能になる。
【0034】
[仮想ファイル処理システムの処理手順]
つぎに、本発明の実施形態に係る仮想ファイル処理システム100の処理手順について、図8及び図9を参照して説明する。
【0035】
図8に示すように、クライアントコンピュータ2のユーザがアプリケーションソフト14においてファイルの作成操作(仮想ファイルの書き込み操作)を行うと(S101)、ファイルシステム13は、アプリケーションソフト14からの要求(S102)に応じて、仮想ファイルの書き込み要求を行う(S103)。ファイル仮想化手段16は、ファイルシステム13からの仮想ファイルの書き込み要求をフックするとともに、要求処理手段17に対して仮想ファイルの書き込みを要求する(S104)。要求処理手段17は、書き込みを行う仮想ファイルの実体をローカルキャッシュ領域21に書き込むとともに(S105)、ローカルストレージ11の仮想ファイル一覧情報を更新する(S106)。
【0036】
アップロード管理手段18は、一定時間毎に仮想ファイル一覧情報を参照してアップロードすべき仮想ファイルの有無を判断し(S107)、アップロードすべき仮想ファイルがある場合は、アップロード対象の仮想ファイルの実体をローカルキャッシュ領域21から読み出し(S108)、リモートストレージ3にアップロードする(S109)。また、アップロード管理手段18は、仮想ファイルの実体をアップロードした後、ローカルストレージ11のアップロードファイル一覧情報を更新するとともに(S110)、アップロードファイル一覧情報の更新ログをリモートストレージ3にアップロードし(S111)、アップロードファイル一覧情報のリビジョンをインクリメントする(S112)。また、アップロード管理手段18は、更新ログとは異なるタイミング、例えば仮想ファイル処理プログラム15のシャットダウン時にローカルストレージ11のアップロードファイル一覧情報をリモートストレージ3にアップロードするとともに(S113)、アップロードしたリビジョン以前のアップロードファイル一覧情報及び更新ログをリモートストレージ3から削除する(S114)。
【0037】
図9に示すように、仮想ファイル処理プログラム15の起動時、要求処理手段17は、ユーザ認証サーバ4に対するログイン処理を実行する(S201)。このとき要求処理手段17は、同一ユーザIDに紐付けてユーザ認証サーバ4に登録されているキー情報に基づいて、前回起動したクライアントコンピュータ2を特定するとともに、前回起動したクライアントコンピュータ2が今回起動するクライアントコンピュータ2と異なる場合は、リモートストレージ3からアップロードファイル一覧情報をダウンロードするとともに、そのリビジョンを取得する(S202)。また、取得したリビジョンよりも後のリビジョンの更新ログがリモートストレージ3にある場合は、更新ログもダウンロードする(S203)。
【0038】
つぎに、要求処理手段17は、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し(S204)、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築する(S205)。また、ローカルストレージ11に未アップロードのまま残っている仮想ファイルの実体がある場合は、仮想ファイル一覧情報に登録する(S206)。
【0039】
叙述の如く構成された本実施形態によれば、仮想ファイルの実体やアップロードファイル一覧情報をユーザ操作と非同期でリモートストレージ3にアップロードするので、通信障害などのトラブル発生時でも、ユーザの作業を阻害することなく、適切なタイミングでアップロードを実行することができる。
【0040】
また、アップロード管理手段18は、ローカルストレージ11上のアップロードファイル一覧情報を更新する際、アップロードファイル一覧情報の更新ログをリビジョン付きでリモートストレージ3にアップロードし、更新されたアップロードファイル一覧情報本体は更新ログとは異なるタイミングでリモートストレージ3にリビジョン付きでアップロードするので、アップロードファイル数に比例して容量が肥大化するアップロードファイル一覧情報本体の頻繁なアップロードを制限し、パフォーマンスの低下や通信費の増大を抑制できる。
【0041】
また、要求処理手段17は、起動時に、リモートストレージ3からアップロードファイル一覧情報と、該アップロードファイル一覧情報のリビジョンより新しい更新ログをダウンロードするとともに、ダウンロードしたアップロードファイル一覧情報にリビジョンの新しい更新ログを適用してアップロードファイル一覧情報を最新のリビジョンに更新し、該アップロードファイル一覧情報から仮想ファイル一覧情報を構築するので、リモートストレージ3に保存されているアップロードファイル一覧情報が最新のものでなくとも、リモートストレージ3に保存されている仮想ファイルの実体と整合した仮想ファイル一覧情報を構築することができ、その結果、リモートストレージ3に保存された仮想ファイルの実体を複数のクライアントコンピュータ2で安全に共有することが可能になる。
【0042】
また、アップロード管理手段18は、一定時間毎にリモートストレージ3にアップロードすべき仮想ファイルの実体がローカルストレージ11に存在するか否かを判断し、該判断に応じて仮想ファイルの実体やアップロードファイル一覧情報の更新ログをリモートストレージ3にアップロードするので、ユーザ操作と非同期でありながら、大きな遅滞なくアップロードを実行することができる。
【0043】
また、アップロード管理手段18は、シャットダウン時にローカルストレージ11上のアップロードファイル一覧情報本体をリモートストレージ3にアップロードするので、アップロードファイル一覧情報本体のアプロード回数を最小限とし、パフォーマンスの低下や通信費の増大を抑制できる。
【符号の説明】
【0044】
100 仮想ファイル処理システム
1 ネットワーク
2 クライアントコンピュータ
3 リモートストレージ
4 ユーザ認証サーバ
11 ローカルストレージ
13 ファイルシステム
15 仮想ファイル処理プログラム
16 ファイル仮想化手段
17 要求処理手段
18 アップロード管理手段
19 リモートストレージアダプタ
図1
図2
図3
図4
図5
図6
図7
図8
図9