ユーザ端末と、前記ユーザ端末とネットワークを介して接続可能なストレージサーバとを含み、前記ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータを前記ストレージサーバに送信し、前記ストレージサーバは、前記メタデータと前記ユーザデータのキャッシュとを記憶し、認証済みの端末に対して前記メタデータに基づく情報を提示し、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認し、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信し、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信するストレージシステム。請求項1に記載のストレージシステムであって、前記ストレージサーバは、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザ端末からユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信する際に、前記ユーザデータをキャッシュとして記憶するストレージシステム。請求項1又は2に記載のストレージシステムであって、前記ストレージサーバは、前記認証済みの端末からユーザデータの書込み要求があった場合、前記認証済みの端末からユーザデータを取得し、該ユーザデータを前記ユーザ端末に送信する際に、該ユーザデータをキャッシュとして記憶するストレージシステム。請求項3に記載のストレージシステムであって、前記ストレージサーバは、前記認証済みの端末からユーザデータの書込み要求があった場合、前記ユーザ端末との接続状況を確認し、前記ユーザ端末がオフラインであった場合、前記認証済みの端末から取得したユーザデータをキャッシュとして記憶し、前記ユーザ端末がオンラインになった際に、前記キャッシュとして記憶したユーザデータを前記ユーザ端末に送信するストレージシステム。請求項1乃至4のいずれか一項に記載のストレージシステムであって、前記ストレージサーバは、前記ユーザデータのキャッシュの有無、及び、前記ユーザ端末との接続状況を確認し、前記認証済みの端末に対して、前記メタデータに基づく情報と共に、前記ユーザデータのキャッシュの有無を示す情報と、前記ユーザ端末との接続状況を示す情報とを提示するストレージシステム。請求項1乃至5のいずれか一項に記載のストレージシステムであって、前記ユーザ端末は、前記ユーザ端末上のマスタファイルとなるユーザデータに変更があった場合、改めてユーザデータに関するメタデータを収集して前記ストレージサーバに送信し、前記ストレージサーバは、受信したメタデータを基に、記憶しているメタデータを更新するストレージシステム。請求項1乃至5のいずれか一項に記載のストレージシステムであって、前記ストレージサーバは、前記ユーザ端末がオフラインになってから既定時間後に、或いは、既定記憶容量になった際に、或いは、登録された日時が古いキャッシュ又はアクセス頻度が低いキャッシュである場合に、或いは、前記ユーザ端末から削除要求があった際に、或いは、前記ユーザ端末上のユーザデータが削除された際に、前記ユーザ端末から取得したユーザデータのキャッシュを削除するストレージシステム。ユーザ端末とネットワークを介して接続する手段と、前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、前記メタデータと前記ユーザデータのキャッシュとを記憶する手段と、認証済みの端末に対して前記メタデータに基づく情報を提示する手段と、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認する手段と、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信する手段と、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得する手段と、前記ユーザデータを前記認証済みの端末に送信する手段とを具備するストレージサーバ。計算機により実施されるユーザデータ共有方法であって、ユーザ端末とネットワークを介して接続することと、前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、前記メタデータと前記ユーザデータのキャッシュとを記憶することと、認証済みの端末に対して前記メタデータに基づく情報を提示することと、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認することと、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信することと、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得することと、前記ユーザデータを前記認証済みの端末に送信することとを含むユーザデータ共有方法。ユーザ端末とネットワークを介して接続するステップと、前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、前記メタデータと前記ユーザデータのキャッシュとを記憶するステップと、認証済みの端末に対して前記メタデータに基づく情報を提示するステップと、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認するステップと、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信するステップと、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得するステップと、前記ユーザデータを前記認証済みの端末に送信するステップとを計算機に実行させるためのプログラム。本発明の目的は、ストレージサーバにユーザデータをキャッシュするという概念を基に、複数のストレージ技術を組み合わせ、シームレスに統合したストレージシステムを提供することである。本発明に係るユーザ端末と、ユーザ端末とネットワークを介して接続可能なストレージサーバとを含む。ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータをストレージサーバに送信する。ストレージサーバは、メタデータとユーザデータのキャッシュとを記憶する。また、認証済みの端末に対してメタデータに基づく情報を提示する。また、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する。また、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する。また、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する。また、ユーザデータを認証済みの端末に送信する。本発明に係るストレージサーバは、ユーザ端末とネットワークを介して接続する手段と、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、メタデータとユーザデータのキャッシュとを記憶する手段と、認証済みの端末に対してメタデータに基づく情報を提示する手段と、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する手段と、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する手段と、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する手段と、ユーザデータを認証済みの端末に送信する手段とを具備する。本発明に係るユーザデータ共有方法は、計算機により実施されるユーザデータ共有方法であって、ユーザ端末とネットワークを介して接続することと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、メタデータとユーザデータのキャッシュとを記憶することと、認証済みの端末に対してメタデータに基づく情報を提示することと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認することと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信することと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得することと、ユーザデータを認証済みの端末に送信することとを含む。本発明に係るプログラムは、ユーザ端末とネットワークを介して接続するステップと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、メタデータとユーザデータのキャッシュとを記憶するステップと、認証済みの端末に対してメタデータに基づく情報を提示するステップと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認するステップと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信するステップと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得するステップと、ユーザデータを認証済みの端末に送信するステップとを計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。エンドユーザに対し、従来のサービスと比べて、低コスト大容量高信頼性高付加価値のネットワークストレージを提供できる。<実施形態>以下に、本発明の実施形態について添付図面を参照して説明する。[システム構成]図1に示すように、本発明に係るストレージシステムは、ユーザ端末10と、ストレージサーバ20と、外部端末30を含む。なお、各装置の台数は任意である。ユーザ端末10は、ユーザ宅内所定の建物又は部屋の中にあり、当該端末や、当該端末に接続されたサーバ/ストレージ装置等が保有するファイルやフォルダ等のユーザデータに関するメタデータインデックス情報:ユーザデータの識別に用い、ユーザデータを管理、検索、取得するためのデータをストレージサーバ20に送信し、メタデータインデックス情報に基づいてユーザデータを送信した際等にキャッシュcacheする。キャッシュするとは、元のユーザデータの読み出しを高速化するために、当該ユーザデータの複製データであるキャッシュを、相対的に高速な記憶装置に蓄えておくことである。すなわち、ユーザ端末10は、当該端末が管理しているユーザデータのキャッシュをストレージサーバ20に格納する。また、ユーザ端末10は、他の端末によりストレージサーバ20に格納されたユーザデータのキャッシュを利用することもできる。ユーザ端末10は、常時/定期的に、ストレージサーバ20に接続されていると好適である。なお、ユーザ宅は、ユーザデータ本体の所在地locationの一例に過ぎない。実際には、ユーザ宅に限定されない。ストレージサーバ20は、個々のユーザ端末10から取得したユーザデータのキャッシュを格納する。ストレージサーバ20は、クラウドを構成するサーバ少なくとも1台のサーバ、複数のサーバの組合せも可でも良い。また、ストレージサーバ20は、ユーザ端末10や外部端末30から、格納されたメタデータインデックス情報を基にユーザデータの要求があった場合、要求元の端末やそのユーザに対する認証を行い、認証の結果、当該ユーザデータの利用権限が与えられている端末認証済みの端末やそのユーザに対し、格納されたキャッシュから、又はマスタファイルとなるユーザデータが格納されたユーザ端末10から当該ユーザデータを取得して、当該ユーザデータを提供する。外部端末30は、ユーザ宅外上記ユーザ宅以外の場所にあり、ユーザ端末10がストレージサーバ20に格納したキャッシュを利用することで、間接的に、ユーザ端末10が管理しているユーザデータを利用する。ここでは、外部端末30の例として、一般的なPCパソコンやスマートフォン等の端末を想定している。なお、外部端末30は、ユーザ端末10の1つでも良い。すなわち、外部端末30は、ユーザ端末10と同じ機能を有していても良い。例えば、ユーザ端末10のユーザが、他人のユーザデータのキャッシュを利用する場合、当該ユーザ端末10は外部端末30となる。また、同一ユーザにより使用される端末であっても、ユーザ宅内で使用される端末をユーザ端末10とし、ユーザ宅外で使用される端末を外部端末30としても良い。また、同一の端末であっても、ユーザ宅内で使用される場合にユーザ端末10とし、ユーザ宅外で使用される場合に外部端末30とすることもできる。ユーザ宅内か否かは、端末や中継機器のIPアドレスやGPS情報位置情報等により判別可能であるが、ユーザ自身がストレージサーバ20やクライアントアプリにて設定しても良い。[ユーザ端末の構成]ユーザ端末10は、クライアントアプリ実行部11と、データ格納部12を備える。クライアントアプリ実行部11は、ユーザからの実行操作等に従って、或いはユーザ端末10の起動時に、クライアントアプリクライアント用のアプリケーションソフトウェアを実行する。クライアントアプリ実行部11は、クライアントアプリに従って、ユーザデータに関するメタデータインデックス情報を収集してストレージサーバ20に送信する。また、クライアントアプリ実行部11は、クライアントアプリに従って、ストレージサーバ20経由で、外部端末30からメタデータインデックス情報に基づく要求があったユーザデータを、ストレージサーバ20に送信してキャッシュする。また、クライアントアプリ実行部11は、クライアントアプリに従って、予め指定したユーザデータをストレージサーバ20に送信してキャッシュしても良い。このとき、クライアントアプリ実行部11は、クライアントアプリに従って、ユーザ端末10とストレージサーバ20との間で、ユーザデータを同期しても良い。同期の方式は、プッシュ型pushtype/プル型pulltypeのいずれでも良い。なお、クライアントアプリ実行部11は、ストレージサーバ20に格納するキャッシュのサイズが規定値よりも大きい場合、キャッシュをブロック単位に分割し、全部又は差分を、ブロック毎にストレージサーバ20に送信する。反対に、ストレージサーバ20から取得するキャッシュのサイズが規定値よりも大きい場合には、ブロック単位に分割された当該キャッシュの全部又は差分を、ブロック毎にストレージサーバ20から受信する。また、クライアントアプリ実行部11は、予め指定されたユーザデータの内容に変更更新、追加、削除等がある場合、変更されたユーザデータに関するメタデータインデックス情報をストレージサーバ20に送信し、変更されたユーザデータに関するメタデータインデックス情報をストレージサーバ20に格納する。例えば、変更後のユーザデータに関するメタデータインデックス情報を、変更前のユーザデータに関するメタデータインデックス情報に上書きする。変更前のユーザデータがキャッシュとしてストレージサーバ20に格納されている場合、変更後のユーザデータをストレージサーバ20に送信し、ストレージサーバ20に格納されたキャッシュを更新しても良い。例えば、変更後のユーザデータのキャッシュを、変更前のユーザデータのキャッシュに上書きする。データ格納部12は、マスタファイルとなるユーザデータ本体を格納する。データ格納部12は、ユーザ端末10の内部の記憶装置に限らず、外部のファイルサーバ等でも良い。また、データ格納部12は、記憶装置内の所定の記憶領域でも良い。すなわち、データ格納部12は、ユーザ端末10のユーザにより管理されていれば良い。また、データ格納部12は、常時/定期的に、ネットワーク接続されていると好適である。[ストレージサーバの構成]ストレージサーバ20は、クライアントマネージャ実行部21と、コアマネージャ実行部22と、キャッシュ格納部23と、メタデータ格納部24と、ACLAccessControlList管理部25と、WebUIWebUserInterface実行部26を備える。クライアントマネージャ実行部21は、クライアントアプリに対応するクライアントマネージャサーバ用のアプリケーションを実行する。クライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11と通信し、個々のユーザ端末10のデータ格納部12に格納されたユーザデータや、当該ユーザデータに関するメタデータインデックス情報を取得する。コアマネージャ実行部22は、クライアントマネージャに対応するコアマネージャサーバ用のアプリケーションを実行する。コアマネージャ実行部22は、クライアントマネージャ実行部21を管理し、個々のユーザデータやメタデータインデックス情報を収集する。また、コアマネージャ実行部22は、ストレージサーバ20の内部制御を行う。キャッシュ格納部23は、ユーザデータのキャッシュを格納する。ここでは、キャッシュ格納部23は、ユーザ端末毎或いはユーザ毎に、キャッシュを格納する領域を確保する。なお、ストレージサーバ20を運営する事業者は、キャッシュ自体の容量サイズやキャッシュを格納する領域の容量を課金の対象とすることができる。例えば、一定容量まで無料とし、超過した分についてユーザに課金する。なお、キャッシュには、一時的なキャッシュと、恒久的なキャッシュpermanentがある。一時的なキャッシュは、確保された領域に余裕がなくなった場合に、自動的に領域内から削除されるキャッシュである。恒久的なキャッシュは、確保された領域に余裕がなくなった場合でも、自動的には削除されないキャッシュである。但し、ユーザ端末10のユーザの操作に従って、恒久的なキャッシュを削除することは可能である。一時的なキャッシュとするか、恒久的なキャッシュとするかは、ユーザ端末10のユーザがキャッシュ毎に設定できるものとする。メタデータ格納部24は、個々のユーザデータに関するメタデータインデックス情報を格納する。メタデータインデックス情報の内容については後述する。また、メタデータ格納部24は、メタデータに関連付けて、ユーザデータのキャッシュの有無、ユーザ識別子、端末識別子等の情報を格納するようにしても良い。ACL管理部25は、個々のユーザ/端末のアクセス権限や、個々のユーザ/端末がアクセス可能なファイル等の資源を列挙したリストACLを格納する。ここでは、ACLの管理対象を自分以外の複数の宅外ユーザ/端末にも対応できるように拡張し、複数の宅外ユーザ/端末にメタデータインデックス情報を公開して、個々のユーザ/端末からキャッシュの参照や編集ができるようにする。ユーザ端末10は、ユーザからの入力操作等に従って、個々のユーザ/端末のアクセス権限や、個々のユーザ/端末がアクセス可能なファイル等の設定を行う。ストレージサーバ20は、ユーザ端末10からの設定に基づいて、ACLを作成する。なお、実際には、ユーザ端末10は、ユーザからの入力操作等に従って、直接ACLを編集しても良い。また、ユーザ端末10は、アクセス頻度の高いキャッシュ等を有料情報として課金し、支払い料金に応じたアクセス権限を付与するように設定することも可能である。ストレージサーバ20を運営する事業者は、支払い料金の一部を管理料/手数料として徴収できる。WebUI実行部26は、ユーザ端末10や外部端末30に対し、ネットワークを介して、データの表示やデータの入力を行うためのWebUIを提供する。WebUIの例として、ブラウザ等に表示されるWebページや、ネットワーク対応のアプリケーションの操作画面等が考えられる。[メタデータインデックス情報の内容]メタデータインデックス情報の内容の例として、以下の1~3のいずれか又は組合せが考えられる。1一般的なファイル情報識別情報フルパスのファイル名等、作成/更新日時、ファイルサイズ等2主なプロパティ文書データ:タイトル名、アプリケーション名、属性情報等音楽データ:曲名、アルバム名、アーティスト情報、曲の長さ、その他のタグ情報等画像データ:縦横サイズ、解像度、カメラ情報、サムネイル画像等3システム情報ハッシュ関数一方向要約関数:MD5MessageDigest5等ブロック情報、端末識別子デバイスID等但し、実際には、これらの例に限定されない。[ハードウェアの例示]以下に、本発明に係るストレージシステムを実現するための具体的なハードウェアの例について説明する。ここでは、ユーザ端末10、ストレージサーバ20、及び外部端末30の例として、PCパソコン、携帯電話機、スマートフォン、スマートブック、アプライアンスappliance、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、端末やサーバに限らず、中継機器や周辺機器でも良い。また、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシンVM:VirtualMachineでも良い。図示しないが、ユーザ端末10、ストレージサーバ20、及び外部端末30の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。上記のプロセッサの例として、CPUCentralProcessingUnit、ネットワークプロセッサNP:NetworkProcessor、マイクロプロセッサmicroprocessor、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路IC:IntegratedCircuit等が考えられる。上記のメモリの例として、RAMRandomAccessMemory、ROMReadOnlyMemory、EEPROMElectricallyErasableandProgrammableReadOnlyMemoryやフラッシュメモリ等の半導体記憶装置、HDDHardDiskDriveやSSDSolidStateDrive等の補助記憶装置、又は、DVDDigitalVersatileDisk等のリムーバブルディスクや、SDメモリカードSecureDigitalmemorycard等の記憶媒体メディア等が考えられる。また、バッファbufferやレジスタregisterでも良い。或いは、DASDirectAttachedStorage、FC-SANFibreChannel-StorageAreaNetwork、NASNetworkAttachedStorage、IP-SANIP-StorageAreaNetwork等を用いたストレージ装置でも良い。なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。従って、電子機器等に搭載される1チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例が考えられる。上記のインターフェースの例として、ネットワーク通信に対応した基板マザーボード、I/Oボードやチップ等の半導体集積回路、NICNetworkInterfaceCard等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口コネクタ等の通信ポート等が考えられる。また、ネットワークの例として、インターネット、LANLocalAreaNetwork、無線LANWirelessLAN、WANWideAreaNetwork、バックボーンBackbone、ケーブルテレビCATV回線、固定電話網、携帯電話網、WiMAXIEEE802.16a、3G3rdGeneration、専用線leaseline、IrDAInfraredDataAssociation、Bluetooth登録商標、シリアル通信回線、データバス等が考えられる。なお、ユーザ端末10、ストレージサーバ20、及び外部端末30の各々の内部の構成要素は、モジュールmodule、コンポーネントcomponent、或いは専用デバイス、又はこれらの起動呼出プログラムでも良い。但し、実際には、これらの例に限定されない。[処理手順]以下に、本発明に係るストレージシステムにおける処理の流れについて説明する。[メタデータインデックス情報登録処理]図2を参照して、ユーザ端末10からストレージサーバ20にメタデータインデックス情報を格納する際の処理の流れについて説明する。1ステップS101ユーザ端末10のクライアントアプリ実行部11は、ユーザからの実行操作等に従って、或いはユーザ端末10の起動時に、クライアントアプリを実行する。2ステップS102ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作/事前設定情報等に従って、ストレージサーバ20に対し、ユーザデータを格納するデータ格納部12を指定し、設定する。必要であれば、ユーザデータ自体を指定し、設定しても良い。なお、外部端末30に送信しても良いユーザデータを格納するデータ格納部12と、外部端末30から受信したユーザデータを格納するデータ格納部12は、同じ記憶装置/記憶領域でも良いし、異なる記憶装置/記憶領域でも良い。また、クライアントアプリ実行部11は、外部端末30に送信しても良いユーザデータや、外部端末30から受信したユーザデータをデータ格納部12に格納する。クライアントアプリ実行部11は、ユーザからの入力操作等に従って、ストレージサーバ20に対し、指定されたユーザデータに関するアクセス権限等の設定を行う。また、クライアントアプリ実行部11は、データ格納部12に格納しているユーザデータ自体/データ格納部12自体に対しては、ストレージサーバ20のみアクセス可能とする制限をかける。例えば、クライアントアプリ実行部11は、データ格納部12に格納しているユーザデータのアクセス許可を、クライアントアプリに対して付与し、ストレージサーバ20をSSLSecureSocketLayer等によるサーバ認証やIPアドレス等で識別し、ストレージサーバ20からのアクセス要求のみ受諾し、処理を実行するようにする。また、ストレージサーバ20以外からのアクセス要求は受け付けず、処理を実行しないようにする。3ステップS103ユーザ端末10のクライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの作成変更時に、データ格納部12に格納されている又は予め指定されているユーザデータに関するメタデータインデックス情報を収集する。クライアントアプリ実行部11は、収集されたメタデータインデックス情報を、一括して、データベースやテーブル等の一覧情報の形式にしても良い。4ステップS104ユーザ端末10のクライアントアプリ実行部11は、ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等と共に、収集されたメタデータインデックス情報を、ストレージサーバ20に送信する。クライアントアプリ実行部11は、ユーザデータの作成変更時に、変更があったメタデータインデックス情報を個別にストレージサーバ20に送信しても良いし、収集されたメタデータインデックス情報を一覧情報の形式にして保有しておき、定期的にストレージサーバ20に送信しても良い。これにより、クライアントアプリ実行部11は、ユーザ端末10とストレージサーバ20との間で、ユーザデータに関するメタデータインデックス情報を同期させることができる。なお、ユーザ端末10のクライアントアプリ実行部11は、収集されたメタデータインデックス情報をストレージサーバ20に送信する際/ストレージサーバ20や外部端末30からメタデータインデックス情報に基づいて要求を受けた際に/ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの作成変更時に、ユーザデータを取得し、そのユーザデータをストレージサーバ20にキャッシュするようにしても良い。[メタデータインデックス情報取得処理]図3を参照して、ストレージサーバ20上で、ユーザ端末10からメタデータインデックス情報を取得する際の処理の流れについて説明する。1ステップS201ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11との接続を確立し、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等と共に、メタデータインデックス情報を受信する。メタデータインデックス情報は、一覧情報の形式でも良い。2ステップS202ストレージサーバ20のコアマネージャ実行部22は、受信したメタデータインデックス情報と、ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等とを対応付けて、メタデータ格納部24に格納する。メタデータインデックス情報は、一覧情報の形式でも良い。このとき、コアマネージャ実行部22は、既に同じユーザ端末10の識別情報に対応するメタデータインデックス情報がある場合、古いメタデータインデックス情報の削除や上書きを行い、メタデータインデックス情報を更新する。3ステップS203ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報に対応しないユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、当該キャッシュをキャッシュ格納部23から削除する。反対に、コアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報に対応するユーザデータのキャッシュがキャッシュ格納部23に格納されていない場合、キャッシュ格納部23の容量に余裕空きがあれば、クライアントアプリ実行部11を介して、当該ユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納しても良い。4ステップS204ストレージサーバ20のコアマネージャ実行部22は、個々のユーザ/端末のアクセス権限や、アクセス可能なファイル等の資源を列挙したリストACLを作成し、ACLをACL管理部25に格納する。このとき、ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10のデータ格納部12に格納されている予め指定されたユーザデータを取得するようにしても良い。なお、実際には、クライアントマネージャ実行部21は、クライアントアプリ実行部11に対して当該ユーザデータの取得要求を送信し、応答として当該ユーザデータを受信しても良い。また、ストレージサーバ20のコアマネージャ実行部22は、クライアントマネージャ実行部21からユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納するようにしても良い。[サーバアクセス処理]図4を参照して、外部端末30他のユーザ端末10を含むからストレージサーバ20にアクセスする際の処理の流れについて説明する。1ステップS301ストレージサーバ20のWebUI実行部26は、外部端末30からのアクセス要求に応じて、WebUIの初期画面データを外部端末30に送信する。なお、ストレージサーバ20のWebUI実行部26は、WebUIの初期画面データを、Webページとしてネットワーク上に公開しても良い。ここでは、WebUIの初期画面データには、認証情報ユーザ識別子とパスワード等の入力欄が設けられているものとする。2ステップS302外部端末30は、当該端末のユーザからの入力操作等に従って、WebUIの初期画面データに認証情報ユーザ識別子とパスワード等を入力し、ストレージサーバ20に送信する。3ステップS303ストレージサーバ20のWebUI実行部26は、外部端末30からWebUIの初期画面データに入力された認証情報ユーザ識別子とパスワード等を受信した場合、認証情報ユーザ識別子とパスワード等をコアマネージャ実行部22に渡す。4ステップS304ストレージサーバ20のコアマネージャ実行部22は、ACL管理部25に格納されたACLに基づいて、認証情報ユーザ識別子とパスワード等に対する認証を行う。5ステップS305ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対して、所定のユーザデータに関するアクセス権限が与えられている場合、当該ユーザデータに関するメタデータインデックス情報を参照し、当該ユーザデータのキャッシュがキャッシュ格納部23に格納されているかキャッシュの有無を確認する。6ステップS306ストレージサーバ20のコアマネージャ実行部22は、ストレージサーバ20のクライアントマネージャ実行部21とユーザ端末10のクライアントアプリ実行部11との接続状況を確認し、ユーザ端末10がオンラインであるか確認する。なお、実際には、クライアントアプリの動作状況や、通信回線速度等を確認しても良い。7ステップS307ストレージサーバ20のコアマネージャ実行部22は、確認結果を基に、WebUI用のファイル選択画面データを作成する。ここでは、WebUI用のファイル選択画面データには、ユーザデータに関するメタデータインデックス情報と共に、キャッシュの有無を示す情報や、ユーザ端末10のオンライン/オフラインを示す情報、選択したユーザデータを取得するための取得ボタン等が含まれるものとする。なお、外部端末30に対してアクセス権限が与えられていないユーザデータについては、ユーザデータに関するメタデータインデックス情報やキャッシュの有無を示す情報がWebUI用のファイル選択画面データに含まれていなくても良い。8ステップS308ストレージサーバ20のWebUI実行部26は、WebUI用のファイル選択画面データを外部端末30に送信する。ここでは、外部端末30は、WebUIを介してストレージサーバ20にアクセスしているが、実際には、クライアントアプリを用いてストレージサーバ20にアクセスしても良い。[ユーザデータ取得処理]図5を参照して、外部端末30他のユーザ端末10を含むがストレージサーバ20を介してキャッシュ等を利用する際の処理の流れについて説明する。1ステップS401外部端末30は、WebUI用のファイル選択画面データに基づいて、WebUI用のファイル選択画面を表示する。外部端末30は、ユーザからの入力操作等に従って、WebUI用のファイル選択画面に表示された所定のユーザデータに関するメタデータインデックス情報を指定し、取得ボタンが押下された際、当該ユーザデータの識別情報をストレージサーバ20に送信する。2ステップS402ストレージサーバ20のWebUI実行部26は、外部端末30から、所定のユーザデータの識別情報を受信した場合、この識別情報をコアマネージャ実行部22に渡す。3ステップS403ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されているかキャッシュの有無を確認する。なお、コアマネージャ実行部22は、キャッシュの有無の確認に先立って、ACLに基づいて、外部端末30又はそのユーザのアクセス権限を確認し、この識別情報に該当するユーザデータを外部端末30に送信しても良いか判断するようにしても良い。4ステップS404ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、キャッシュ格納部23から当該キャッシュを読み出し、当該キャッシュを当該ユーザデータとして外部端末30に送信する。5ステップS405ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されていない場合、この識別情報に該当するユーザデータを管理するユーザ端末10を、当該ユーザデータに関連付けられた端末識別子に基づいて特定し、特定されたユーザ端末10のクライアントアプリ実行部11を介して、当該ユーザ端末10のデータ格納部12にアクセスし、この識別情報に該当するユーザデータを抽出取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納する。なお、実際には、クライアントマネージャ実行部21は、クライアントアプリ実行部11に対してキャッシュ取得要求を送信し、応答としてユーザデータを受信し、当該ユーザデータのキャッシュをキャッシュ格納部23に格納しても良い。6ステップS406ストレージサーバ20のコアマネージャ実行部22は、当該ユーザデータのキャッシュをキャッシュ格納部23に格納した場合、当該ユーザデータのキャッシュの有無を示す情報を更新し、WebUI用のファイル選択画面データに反映し、キャッシュ格納部23から当該キャッシュを読み出して外部端末30に送信する。なお、ストレージサーバ20は、キャッシュ格納部23に格納したキャッシュではなく、ユーザ端末10から取得したユーザデータを外部端末30に送信しても良い。すなわち、キャッシュ格納部23へのユーザデータのキャッシュの格納と、外部端末30へのユーザデータの送信とは、並列に処理しても良い。7ステップS407ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータの取得処理を開始してから、規定時間内に、当該ユーザデータを管理するユーザ端末10から、当該ユーザデータを取得できない場合、当該ユーザ端末10のネットワーク接続環境や、当該ユーザ端末10自体電源等に障害が発生していると判断し、キャッシュ取得エラーや、ユーザ端末10のオフラインを示す情報を、WebUI用のファイル選択画面データに反映し、外部端末30に通知する。[端末とサーバ間の送受信処理]ユーザ端末10とストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質に応じてユーザデータの送受信処理を変更することも考えられる。例えば、ユーザ端末10とストレージサーバ20との間のネットワーク接続環境の通信品質が高品質で、ストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質が低品質である場合、ストレージサーバ20は、ユーザ端末10から、ユーザデータをファイル/フォルダ単位で一括して受信する。このとき、外部端末30がクライアントアプリを実行していれば、その受信したユーザデータ又はそのユーザデータのキャッシュをブロック単位に分割して、ブロック毎に外部端末30に送信する。ブロック単位での送受信には、クライアントアプリが必要である。また、バイトレンジ操作対応のWebクライアントであれば、途中からのデータ送受信も可能である。反対に、ユーザ端末10とストレージサーバ20との間のネットワーク接続環境の通信品質が低品質で、ストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質が高品質である場合、ストレージサーバ20は、ユーザ端末10のユーザデータをブロック単位に分割して、ブロック毎にユーザデータを受信し、当該ユーザデータ又は当該ユーザデータのキャッシュをファイル/フォルダ単位で一括して外部端末30に送信する。これにより、動画や音楽のデータのストリーミング配信等で、再生位置移動、トランスコードデータの一時保存や次のコンテンツの先読みを行い、最初のコンテンツ1話目、1曲目等は遅くても次のコンテンツ2話目、2曲目等以降は先読みでストレージサーバにキャッシュしておき、早く読み出せるようにすることが可能になる。ここでは、ユーザ端末10→ストレージサーバ20→外部端末30の流れでのユーザデータの送信について説明したが、外部端末30→ストレージサーバ20→ユーザ端末10の流れでのユーザデータの送信についても、同様に実施することが可能である。[キャッシュ削除のタイミング]例えば、ストレージサーバ20のコアマネージャ実行部22は、以下のようなタイミングでキャッシュを削除する。1既定時間ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10がオフライン非アクティブになってから既定時間後に、当該ユーザ端末10のユーザデータのキャッシュをキャッシュ格納部23から削除する。2既定容量ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10のために確保した領域に蓄積されたキャッシュが既定容量に達した時、当該ユーザ端末10のユーザデータのキャッシュをキャッシュ格納部23から削除する。[削除するキャッシュの順番]キャッシュをキャッシュ格納部23から削除する際には、以下のような順番でキャッシュを削除する。1利用頻度ストレージサーバ20のコアマネージャ実行部22は、登録された日時が古いキャッシュやアクセス頻度が低いキャッシュから順に削除する。2ユーザからの要求ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10から削除要求があったユーザデータのキャッシュを削除する。なお、反対に、ユーザ端末10から保存要求があったユーザデータのキャッシュ以外を削除するようにしても良い。3連携ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10がデータ格納部12上で管理するユーザデータが削除されたことを検出した際に又は通知を受けた際に、当該ユーザデータのキャッシュを削除する。なお、ストレージサーバ20のコアマネージャ実行部22は、ユーザデータのキャッシュをキャッシュ格納部23から削除した後、削除されたユーザデータのキャッシュの有無を示す情報を更新する。[ユーザデータ外部編集処理]図6を参照して、外部端末30他のユーザ端末10を含むから、ストレージサーバ20上にキャッシュされているユーザデータを編集する際の処理の流れについて説明する。例えば、ユーザ端末10のユーザ以外の者がユーザ宅外の外部端末30を用いてキャッシュされているユーザデータを編集する場合に限らず、ユーザ端末10のユーザがユーザ宅外の外部端末30を用いてキャッシュされているユーザデータを編集する場合も考えられる。1ステップS501外部端末30は、ストレージサーバ20からキャッシュされているユーザデータを受信する。このとき、ストレージサーバ20のコアマネージャ実行部22は、キャッシュされているユーザデータの内容を含むWebUI用のユーザデータ編集画面データを作成し、WebUI実行部26を介して、WebUI用のユーザデータ編集画面データを外部端末30に送信しても良い。2ステップS502外部端末30は、キャッシュされているユーザデータの内容を参照する。このとき、外部端末30は、ストレージサーバ20から受信したWebUI用のユーザデータ編集画面データに基づき、WebUI用のユーザデータ編集画面を表示しても良い。なお、WebUI用のユーザデータ編集画面には、キャッシュされているユーザデータの識別情報ファイル名等及び内容を直接表示しても良いし、或いは、キャッシュされているユーザデータのアイコン等を表示しておき、当該アイコン等がクリックされた際に、当該キャッシュされているユーザデータの内容を表示するようにしても良い。3ステップS503外部端末30は、当該端末のユーザからの入力操作等に従って、キャッシュされているユーザデータに対する編集を行う。このとき、外部端末30は、WebUI用のユーザデータ編集画面に表示された編集ボタンが押下された際に、当該キャッシュされているユーザデータの内容を編集するための画面を表示するようにしても良い。なお、実際には、当該キャッシュされているユーザデータの内容を編集するため、一般的なファイル編集用アプリケーションを起動しても良い。外部端末30は、WebUI用のユーザデータ編集画面、又はファイル編集用アプリケーション上で、キャッシュされているユーザデータに対する編集を行う。4ステップS504外部端末30は、キャッシュされているユーザデータに対する編集が完了した場合、編集後のユーザデータをストレージサーバ20に送信する。このとき、外部端末30は、当該端末のユーザからの入力操作等に従って、WebUI用のユーザデータ編集画面に表示された完了ボタンが押下された際に、編集後のユーザデータをストレージサーバ20に送信するようにしても良い。5ステップS505ストレージサーバ20のWebUI実行部26は、外部端末30から編集後のユーザデータを受信した場合、編集後のユーザデータをコアマネージャ実行部22に渡す。6ステップS506ストレージサーバ20のコアマネージャ実行部22は、編集後のユーザデータを受け取った場合、ACL管理部25に格納されたACLに基づいて、外部端末30の認証情報ユーザ識別子とパスワード等に対する認証を行う。なお、当該認証は、編集後のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末30からストレージサーバ20に最初にアクセスした際に行われた認証を、当該認証としても良い。7ステップS507ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対し、当該ユーザデータを更新する権限が与えられている場合、メタデータ格納部24に格納されたメタデータを基に、編集後のユーザデータを、キャッシュ格納部23に格納されたキャッシュに反映する。例えば、コアマネージャ実行部22は、キャッシュ格納部23に格納されたキャッシュのうち、編集後のユーザデータと識別情報ファイル名等が同じキャッシュの内容に、編集後のユーザデータの内容を上書きする。或いは、コアマネージャ実行部22は、キャッシュ格納部23に格納されたキャッシュを、編集後のユーザデータに差し替える。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報を更新しても良い。例えば、ストレージサーバ20のコアマネージャ実行部22は、編集後のユーザデータに関するメタデータインデックス情報を、メタデータ格納部24に格納されたメタデータインデックス情報に反映する。8ステップS508ストレージサーバ20のコアマネージャ実行部22は、ユーザデータに関連付けられた端末識別子に基づいてユーザ端末10を特定し、ストレージサーバ20のクライアントマネージャ実行部21とユーザ端末10のクライアントアプリ実行部11との接続状況を確認し、ユーザ端末10がオンラインであるか確認し、ユーザ端末10がオンラインである場合、編集後のユーザデータをユーザ端末10に送信する。例えば、コアマネージャ実行部22は、キャッシュ格納部23内のユーザ毎に確保された領域に編集後のユーザデータのキャッシュを格納することで、当該領域を使用しているユーザのユーザ端末10に、当該編集後のユーザデータを送信する。或いは、外部端末30により指定されたユーザ端末10に、当該編集後のユーザデータを送信するようにしても良い。このとき、コアマネージャ実行部22は、ACLを基に、編集後のユーザデータが所定の権限を与えられた外部端末30により編集されたユーザデータであるか確認し、許可された外部端末30により編集されたユーザデータであれば、編集後のユーザデータをユーザ端末10に送信するようにしても良い。或いは、コアマネージャ実行部22は、送信前に、ユーザ端末10に対し、編集後のユーザデータを送信しても良いか確認するようにしても良い。ユーザ端末10のクライアントアプリ実行部11は、編集後のユーザデータを受信した場合、編集後のユーザデータをデータ格納部12に格納する。例えば、クライアントアプリ実行部11は、元のユーザデータマスタファイルの内容に、編集後のユーザデータの内容を上書きする。或いは、クライアントアプリ実行部11は、元のユーザデータマスタファイルを、編集後のユーザデータに差し替える。その後、クライアントアプリ実行部11は、ストレージサーバ20のクライアントマネージャ実行部21に、書込完了通知を送信する。コアマネージャ実行部22は、WebUI実行部26を介して、この書込完了通知を外部端末30に通知しても良い。また、コアマネージャ実行部22は、ユーザ端末10がオンラインでない場合オフラインである場合、或いは、ユーザ端末10から編集後のユーザデータの受信/格納を拒否された場合、WebUI実行部26を介して、保存エラーを外部端末30に通知しても良い。また、この場合、ACLを参照し、ユーザの会員グレード有料会員/無料会員等に応じて、保存エラーを送信する前に、編集後のユーザデータをキャッシュとしてキャッシュ格納部23に格納し、一定時間後に再度、上記の接続状況の確認を実施し、ユーザ端末10がオンラインになり次第、編集後のユーザデータをユーザ端末10に送信しても良い。9ステップS509ユーザ端末10のクライアントアプリ実行部11は、編集後のユーザデータをデータ格納部12に格納した場合、ユーザデータに関するメタデータインデックス情報を更新する。例えば、ユーザ端末10のクライアントアプリ実行部11は、編集後のユーザデータに基づくユーザデータに関するメタデータインデックス情報を収集し、ストレージサーバ20に反映する。なお、ストレージサーバ20上で既に当該ユーザデータに関するメタデータインデックス情報が更新されている場合、この処理を行わなくても良い。[ユーザデータ外部登録処理]図7を参照して、外部端末30他のユーザ端末10を含むからストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する際の処理の流れについて説明する。例えば、ユーザ端末10のユーザ以外の者がユーザ宅外の外部端末30からストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する場合に限らず、ユーザ端末10のユーザ自身がユーザ宅外の外部端末30からストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する場合も考えられる。1ステップS601外部端末30は、当該端末のユーザからの入力操作等に従って、一旦、新規のユーザデータをストレージサーバ20に送信する。このとき、ストレージサーバ20のコアマネージャ実行部22は、WebUI用のユーザデータ登録画面データを作成し、WebUI実行部26を介して、WebUI用のユーザデータ登録画面データを外部端末30に送信しても良い。外部端末30は、WebUI用のユーザデータ登録画面データに基づき、WebUI用のユーザデータ登録画面を表示し、WebUI用のユーザデータ登録画面に表示された送信ボタンが押下された際に、新規のユーザデータをストレージサーバ20に送信する。2ステップS602ストレージサーバ20のWebUI実行部26は、外部端末30から新規のユーザデータを受信した場合、新規のユーザデータをコアマネージャ実行部22に渡す。3ステップS603ストレージサーバ20のコアマネージャ実行部22は、新規のユーザデータを受け取った場合、ACL管理部25に格納されたACLに基づいて、外部端末30の認証情報ユーザ識別子とパスワード等に対する認証を行う。なお、当該認証は、新規のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末30からストレージサーバ20に最初にアクセスした際に行われた認証を、当該認証としても良い。4ステップS604ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対し、新規のユーザデータを登録する権限が与えられている場合、新規のユーザデータのキャッシュをキャッシュ格納部23に格納する。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報を更新しても良い。例えば、ストレージサーバ20のコアマネージャ実行部22は、新規のユーザデータに関するメタデータインデックス情報をメタデータ格納部24に格納されたメタデータインデックス情報に反映する。5ステップS605ストレージサーバ20のコアマネージャ実行部22は、ユーザデータに関連付けられた端末識別子に基づいてユーザ端末10を特定し、ストレージサーバ20のクライアントマネージャ実行部21とユーザ端末10のクライアントアプリ実行部11との接続状況を確認し、ユーザ端末10がオンラインであるか確認し、ユーザ端末10がオンラインである場合、新規のユーザデータをユーザ端末10に送信する。例えば、コアマネージャ実行部22は、キャッシュ格納部23内のユーザ毎に確保された領域に新規のユーザデータのキャッシュを格納することで、当該領域を使用しているユーザのユーザ端末10に、当該新規のユーザデータを送信する。或いは、外部端末30により指定されたユーザ端末10に、当該新規のユーザデータを送信するようにしても良い。このとき、コアマネージャ実行部22は、ACLを基に、新規のユーザデータが所定の権限を与えられた外部端末30により編集されたユーザデータであるか確認し、許可された外部端末30により編集されたユーザデータであれば、新規のユーザデータをユーザ端末10に送信するようにしても良い。或いは、コアマネージャ実行部22は、送信前に、ユーザ端末10に対し、新規のユーザデータを送信しても良いか確認するようにしても良い。ユーザ端末10のクライアントアプリ実行部11は、新規のユーザデータを受信した場合、新規のユーザデータをデータ格納部12に格納する。その後、クライアントアプリ実行部11は、ストレージサーバ20のクライアントマネージャ実行部21に、書込完了通知を送信する。コアマネージャ実行部22は、WebUI実行部26を介して、この書込完了通知を外部端末30に通知しても良い。また、コアマネージャ実行部22は、ユーザ端末10がオンラインでない場合オフラインである場合、或いは、ユーザ端末10から編集後のユーザデータの受信/格納を拒否された場合、WebUI実行部26を介して、保存エラーを外部端末30に通知しても良い。また、この場合、ACLを参照し、ユーザの会員グレード有料会員/無料会員等に応じて、保存エラーを送信する前に、編集後のユーザデータをキャッシュとしてキャッシュ格納部23に格納し、一定時間後に再度、上記の接続状況の確認を実施し、ユーザ端末10がオンラインになり次第、編集後のユーザデータをユーザ端末10に送信しても良い。6ステップS606ユーザ端末10のクライアントアプリ実行部11は、ユーザデータに関するメタデータインデックス情報を更新する。例えば、ユーザ端末10のクライアントアプリ実行部11は、新規のユーザデータに関するメタデータインデックス情報を収集し、ストレージサーバ20に反映する。なお、ストレージサーバ20上で既に当該ユーザデータに関するメタデータインデックス情報が更新されている場合、この処理を行わなくても良い。[ユーザ端末のオフライン時の接続試行]必須ではないが、図6に示すユーザデータ外部編集処理や図7に示すユーザデータ外部登録処理において、ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10がオンラインでない場合オフラインである場合、ストレージサーバ20のクライアントマネージャ実行部21に対し、ユーザ端末10のクライアントアプリ実行部11との接続を指示するようにしても良い。ストレージサーバ20のクライアントマネージャ実行部21は、ユーザ端末10のクライアントアプリ実行部11との接続を試みる。クライアントマネージャ実行部21は、ユーザ端末10のクライアントアプリ実行部11との接続が確立すれば、ストレージサーバ20のコアマネージャ実行部22に、ユーザ端末10がオンラインである旨を通知する。また、ストレージサーバ20のクライアントマネージャ実行部21は、所定の回数/一定期間、接続を試みてもユーザ端末10のクライアントアプリ実行部11との接続が確立できない場合、ストレージサーバ20のコアマネージャ実行部22に、ユーザ端末10にアクセスできない旨を通知するようにしても良い。また、図6に示すユーザデータ外部編集処理や図7に示すユーザデータ外部登録処理において、ストレージサーバ20は、キャッシュ格納部23に格納したキャッシュではなく、外部端末30から取得したユーザデータをユーザ端末10に送信しても良い。すなわち、キャッシュ格納部23へのユーザデータのキャッシュの格納と、ユーザ端末10へのユーザデータの送信とは、並列に処理しても良い。[ユーザデータ外部登録処理を利用したユーザデータ外部編集処理]なお、図7に示すユーザデータ外部登録処理において、新規のユーザデータを、編集後のキャッシュと読み替えた場合、このユーザデータ外部登録処理をユーザデータ外部編集処理とすることができる。すなわち、WebUI上でユーザデータの編集を行わない場合、図7に示すユーザデータ外部登録処理のみで対応可能となり、図6に示すユーザデータ外部編集処理は不要となる。ユーザデータ外部登録処理によりユーザデータ外部編集処理を行う場合、ストレージサーバ20のコアマネージャ実行部22は、受信したユーザデータが編集後のユーザデータであるか新規のユーザデータであるかを判断するために、受信したユーザデータの識別情報ファイル名等やその他の属性情報と、メタデータ格納部24に格納されたメタデータインデックス情報とを比較し判断するようにしても良い。[ユーザデータ削除処理1]図8を参照して、ユーザ端末10上のユーザデータマスタファイルを削除する際の第1の処理の流れについて説明する。1ステップS701ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末10のクライアントアプリ実行部11は、クライアントアプリを用いずに、OSのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。2ステップS702クライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの削除時に、ユーザデータに関するメタデータを更新すると共に、ユーザデータの削除履歴や更新前のメタデータとの比較により、削除されたユーザデータを特定し、当該ユーザデータのキャッシュの削除要求をストレージサーバ20に送信する。3ステップS703ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11との接続を確立し、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザデータのキャッシュの削除要求を受信する。4ステップS704ストレージサーバ20のコアマネージャ実行部22は、削除要求があったユーザデータのキャッシュをキャッシュ格納部23から削除する。5ステップS705コアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報を更新する。例えば、コアマネージャ実行部22は、キャッシュの削除要求があったユーザデータに関するメタデータインデックス情報を破棄する。[ユーザデータ削除処理2]図9を参照して、ユーザ端末10上のユーザデータマスタファイルを削除する際の第2の処理の流れについて説明する。1ステップS801ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末10のクライアントアプリ実行部11は、クライアントアプリを用いずに、OSのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。2ステップS802ユーザ端末10のクライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの削除時に、ユーザデータに関するメタデータインデックス情報を収集する。ここでは、ユーザ端末10のデータ格納部12上の対象となる全てのユーザデータマスタファイルに関するメタデータインデックス情報を収集する。このとき、削除されたユーザデータに関するメタデータインデックス情報は収集されない。3ステップS803ユーザ端末10のクライアントアプリ実行部11は、ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等と共に、収集されたメタデータインデックス情報を、ストレージサーバ20に送信する。4ステップS804ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等と共に、メタデータインデックス情報を受信する。5ステップS805ストレージサーバ20のコアマネージャ実行部22は、受信したメタデータインデックス情報と、ユーザ端末10の識別情報ユーザ識別子、端末識別子、IPアドレス等とを対応付けて、メタデータ格納部24に格納する。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報を更新し、受信したメタデータインデックス情報と一致しないメタデータインデックス情報がメタデータ格納部24に格納されている場合、当該メタデータインデックス情報を、削除したユーザデータに関するメタデータと判断し、消去削除する。ここでは、ユーザ端末10上の対象となる全てのユーザデータマスタファイルに関するメタデータインデックス情報が収集されているが、削除されたユーザデータに関するメタデータインデックス情報は収集されないため、受信したメタデータインデックス情報と一致しないメタデータインデックス情報は、当然に、削除したユーザデータに関するメタデータということになる。6ステップS806ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータインデックス情報に対応しないユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、当該キャッシュをキャッシュ格納部23から削除する。なお、ユーザ端末10上のユーザデータマスタファイルを削除した後も、ストレージサーバ20上にキャッシュを残しておきたい場合、上記のユーザデータ削除処理を行わなくても良い。この場合、ユーザ端末10のクライアントアプリ実行部11が、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除した時点で、処理が完了する。また、メタデータ格納部24に格納されたメタデータインデックス情報から、削除されたユーザデータに関するメタデータインデックス情報が消去されないようにする必要がある。例えば、メタデータ格納部24に格納されたメタデータインデックス情報の破棄/消去については、ユーザ端末10のユーザからの指示があった場合にのみ行われるようにする。[ファイル選択画面例]図10を参照して、WebUI用のファイル選択画面の一例として、ファイル選択画面例について説明する。但し、実際には、この例に限定されない。ファイル選択画面には、ユーザを示すユーザ識別子ユーザIDと、ユーザ端末を示す端末識別子デバイスIDと、当該ユーザ端末のオンライン/オフラインを示す情報とが表示される。また、端末識別子デバイスID毎に、ユーザデータを選択するための選択チェックボックスと、当該ユーザデータの識別情報ファイル名等と、当該ユーザデータの更新日時と、当該ユーザデータのキャッシュの有無を示す情報と、ユーザが当該ユーザデータのキャッシュを一時的なキャッシュとするか恒久的なキャッシュとするかを選択するためのラジオボタンとが対応付けられたレコードがテーブル形式で表示される。なお、ユーザデータを選択するための選択チェックボックスが選択された際、ユーザデータがフォルダである場合、当該フォルダ内のファイルに関する情報が一覧表示されるようにしても良い。更に、ファイル選択画面には、取得ボタンと、書込ボタンが表示される。ユーザデータを選択するための選択チェックボックスが選択された後、取得ボタンが押下された場合、当該ユーザデータのキャッシュがストレージサーバ上に存在しているか、当該ユーザデータをユーザ端末から取得可能であれば、当該ユーザデータ/当該ユーザデータのキャッシュが表示/ダウンロードされる。ユーザデータを書き込むユーザ端末10に登録するための書込ボタンが押下された場合、ユーザデータ書込画面が表示される。[ユーザデータ書込画面例]図11を参照して、WebUI用のユーザデータ登録画面の一例として、ユーザデータ書込画面例について説明する。但し、実際には、この例に限定されない。ユーザデータ書込画面には、書き込むユーザデータの保存先のユーザ端末を示す端末識別子デバイスIDや、書き込むユーザデータを示す情報所在情報、識別情報等を入力/選択するための領域が表示される。更に、ユーザデータ書込画面には、送信ボタンと、戻るボタンが表示される。書き込むユーザデータの保存先のユーザ端末を示す端末識別子デバイスIDや、書き込むユーザデータを示す情報が入力/選択された後、送信ボタンが押下されると、書き込むユーザデータがストレージサーバ20に送信され、キャッシュされる。戻るボタンが押下されると、ユーザデータ書込画面からファイル選択画面に戻る。<本発明の特徴>以上のように、本発明では、外部端末がストレージサーバを介してユーザ端末上のユーザデータを利用することができる。本発明では、ストレージサーバが、ユーザ端末上のユーザデータに関するメタデータインデックス情報を収集しており、外部端末に対し、ユーザデータに関するメタデータインデックス情報の一覧を提示する。外部端末は、メタデータインデックス情報の一覧に基づいて、ユーザ端末上のユーザデータを要求する。このとき、ユーザ端末は、外部端末がユーザ端末上のユーザデータ本体を直接操作することがないように、ストレージサーバがユーザ端末上のユーザデータを取得し、間接的に、外部端末に提供する。このとき、ストレージサーバは、一旦、ユーザデータをキャッシュとして記憶している。ユーザデータが大量である場合には、一部のユーザデータのみキャッシュとして記憶する。ストレージサーバは、外部端末から要求されたユーザデータのキャッシュがストレージサーバ上にある場合には、当該キャッシュを当該ユーザデータとして外部端末に提供する。また、ストレージサーバは、要求されたユーザデータのキャッシュがストレージサーバ上にない場合には、ユーザ端末に対して、該当するユーザデータを要求し、取得できれば、当該ユーザデータをキャッシュとして記憶し、当該ユーザデータ又はそのキャッシュを外部端末に提供する。<備考>以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。