(57)【特許請求の範囲】
【請求項１】
ユーザ端末と、
前記ユーザ端末とネットワークを介して接続可能なストレージサーバと
を含み、
前記ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータを前記ストレージサーバに送信し、
前記ストレージサーバは、前記メタデータと前記ユーザデータのキャッシュとを記憶し、認証済みの端末に対して前記メタデータに基づく情報を提示し、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認し、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信し、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信し、
前記ストレージサーバは、前記認証済みの端末から書込み要求されたユーザデータをキャッシュとして記憶し、前記認証済みの端末から書込み要求されたユーザデータを前記ユーザ端末に送信する
ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末から書込み要求されたユーザデータをキャッシュとして記憶する処理と、前記認証済みの端末から書込み要求されたユーザデータを前記ユーザ端末に送信する処理とを並列に処理する
ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末からユーザデータの書込み要求があった場合、前記認証済みの端末から取得したユーザデータをキャッシュとして記憶し、前記ユーザ端末との接続状況を確認し、前記ユーザ端末がオンラインになった際に、前記キャッシュとして記憶したユーザデータを前記ユーザ端末に送信する
ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザ端末からユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信する際に、前記ユーザデータをキャッシュとして記憶する
ストレージシステム。
【請求項５】
請求項１乃至４のいずれか一項に記載のストレージシステムであって、
前記ストレージサーバは、前記ユーザデータのキャッシュの有無、及び、前記ユーザ端末との接続状況を確認し、前記認証済みの端末に対して、前記メタデータに基づく情報と共に、前記ユーザデータのキャッシュの有無を示す情報と、前記ユーザ端末との接続状況を示す情報とを提示する
ストレージシステム。
【請求項６】
請求項１乃至５のいずれか一項に記載のストレージシステムであって、
前記ユーザ端末は、前記ユーザ端末上のマスタファイルとなるユーザデータに変更があった場合、改めてユーザデータに関するメタデータを収集して前記ストレージサーバに送信し、
前記ストレージサーバは、受信したメタデータを基に、記憶しているメタデータを更新する
ストレージシステム。
【請求項７】
請求項１乃至５のいずれか一項に記載のストレージシステムであって、
前記ストレージサーバは、
前記ユーザ端末がオフラインになってから既定時間後に、或いは、既定記憶容量になった際に、或いは、登録された日時が古いキャッシュ又はアクセス頻度が低いキャッシュである場合に、或いは、前記ユーザ端末から削除要求があった際に、或いは、前記ユーザ端末上のユーザデータが削除された際に、前記ユーザ端末から取得したユーザデータのキャッシュを削除する
ストレージシステム。
【請求項８】
ユーザ端末とネットワークを介して接続する手段と、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、
前記メタデータと前記ユーザデータのキャッシュとを記憶する手段と、
認証済みの端末に対して前記メタデータに基づく情報を提示する手段と、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認する手段と、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信する手段と、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得する手段と、
前記ユーザデータを前記認証済みの端末に送信する手段と、
前記認証済みの端末から書込み要求されたユーザデータをキャッシュとして記憶する手段と、
前記認証済みの端末から書込み要求されたユーザデータを前記ユーザ端末に送信する手段と
を具備する
ストレージサーバ。
【請求項９】
計算機により実施されるユーザデータ共有方法であって、
ユーザ端末とネットワークを介して接続することと、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、
前記メタデータと前記ユーザデータのキャッシュとを記憶することと、
認証済みの端末に対して前記メタデータに基づく情報を提示することと、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認することと、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信することと、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得することと、
前記ユーザデータを前記認証済みの端末に送信することと、
前記認証済みの端末から書込み要求されたユーザデータをキャッシュとして記憶することと、
前記認証済みの端末から書込み要求されたユーザデータを前記ユーザ端末に送信することと
を含む
ユーザデータ共有方法。
【請求項１０】
ユーザ端末とネットワークを介して接続するステップと、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、
前記メタデータと前記ユーザデータのキャッシュとを記憶するステップと、
認証済みの端末に対して前記メタデータに基づく情報を提示するステップと、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認するステップと、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信するステップと、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得するステップと、
前記ユーザデータを前記認証済みの端末に送信するステップと、
前記認証済みの端末から書込み要求されたユーザデータをキャッシュとして記憶するステップと、
前記認証済みの端末から書込み要求されたユーザデータを前記ユーザ端末に送信するステップと
を計算機に実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージサーバ、ユーザデータ共有方法、及びプログラムに関し、特にクラウドコンピューティングにおけるネットワークストレージを利用したストレージシステム、ストレージサーバ、ユーザデータ共有方法、及びプログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティング（ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ）では、ユーザからは構成ノードが不明なネットワークである「クラウド」の中にある不特定多数のサーバのいずれか又はそれらの組合せが、ユーザに対してサービスを提供している。
【０００３】
従来、オンラインストレージ型のサービスでは、クラウドを構成するサーバに予め専用に確保したストレージエリアを設け、確保したストレージエリアのサイズ（容量）に応じてユーザに課金している。ユーザは、クラウドを構成するサーバに保存したいファイル（各種データ）やフォルダ（ディレクトリ）を予め選定し、アプリケーションソフトウェア（以下、アプリケーション）に設定する。アプリケーションは、設定内容に従って、選定されたファイルを自動的に、確保したストレージエリアにアップロードする。オンラインストレージ型のサービスは、ミラーリング（ｍｉｒｒｏｒｉｎｇ）等の目的で使用されることが多い。
【０００４】
また、クラウドストレージ同期型のサービスでは、ＰＣ（パソコン）やスマートフォン等の端末に対応した専用のアプリケーションを介し、端末と、クラウドを構成するサーバとの間で、ファイルを同期させる。これにより、各端末は、クラウドを構成するサーバを介してファイルを共有している状態になる。ある端末が同期状態のファイルを更新した場合、クラウドを構成するサーバを介して、他の端末側にある同期状態のファイルにも更新した内容が反映される。すなわち、クラウド上のファイルをマスタファイルとし、ある端末で更新された内容をクラウド上のマスタファイルに反映することで、他の端末側のファイルに更新された内容を反映している。
【０００５】
また、宅内ストレージ型のサービスでは、エンドユーザに、ネットワーク機能を持ったストレージ装置を販売する。ネットワーク機能を持ったストレージ装置の例として、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）が考えられる。ＮＡＳ自体が持つネットワークファイル共有機能により、各エンドユーザが自宅に設置したＮＡＳの大容量ストレージをインターネット経由で共有する。
【０００６】
しかし、オンラインストレージ型のサービスでは、仕組みが単純すぎるため、ファイルのバックアップ程度にしか活用できず、他のストレージサービスに比べて、機能的に劣る。
【０００７】
また、オンラインストレージ型のサービスやクラウドストレージ同期型のサービスでは、基本的に、受け取ったファイルを全てクラウド側で確保しておく必要があるため、サービスを提供する事業者にストレージコストがかかる。このため、ユーザが使用する容量に応じた課金が必要となり、ユーザ負担が大きくなる。更に、ユーザに対して、超大容量のネットワークストレージを提供できない。
【０００８】
また、宅内ストレージ型のサービスでは、ユーザ宅内のストレージがオフラインであると利用できない。多地点から多人数がアクセスすると、対象ユーザ宅の回線速度がボトルネックとなり、スケーラビリティ（ｓｃａｌａｂｉｌｉｔｙ：拡張性）が低い。セキュリティ対策を個々のユーザの対応状況に依存しているため、ネットワークからのＤｏＳ攻撃等に対して脆弱である場合がある。
【０００９】
関連する技術として、特許文献１（特開２０１０−１９８５４０号公報）に仮想フォルダ作成装置が開示されている。この関連技術では、クライアントとファイルサーバの間に管理装置が置かれている。クライアントは、ＧＵＩ画面上で仮想フォルダの配置場所、仮想フォルダ名、メタデータの入力を受付け、入力されたメタデータに対応するメタデータが付与されたファイルをファイルサーバから検索する。その検索結果のファイルリストを作成した上、配置場所、仮想フォルダ名、メタデータに仮想フォルダ識別情報を付加して、管理装置内の仮想フォルダ設定データベースに保存する。ファイルリストを仮想フォルダ識別情報に対応したファイルリストとして、管理装置内の仮想フォルダキャッシュデータベースに保存する。
【００１０】
しかし、上記技術では、宅内ユーザ端末と宅外ユーザ端末との間でファイルをやり取りする際に、いずれかのネットワーク接続環境の障害（速度の低下、接続切れ等）により、ファイルが送受信できないことがある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−１９８５４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、ストレージサーバにユーザデータをキャッシュするという概念を基に、複数のストレージ技術を組み合わせ、シームレスに統合したストレージシステムを提供することである。
【課題を解決するための手段】
【００１３】
本発明に係るユーザ端末と、ユーザ端末とネットワークを介して接続可能なストレージサーバとを含む。ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータをストレージサーバに送信する。ストレージサーバは、メタデータとユーザデータのキャッシュとを記憶する。また、認証済みの端末に対してメタデータに基づく情報を提示する。また、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する。また、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する。また、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する。また、ユーザデータを認証済みの端末に送信する。
【００１４】
本発明に係るストレージサーバは、ユーザ端末とネットワークを介して接続する手段と、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、メタデータとユーザデータのキャッシュとを記憶する手段と、認証済みの端末に対してメタデータに基づく情報を提示する手段と、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する手段と、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する手段と、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する手段と、ユーザデータを認証済みの端末に送信する手段とを具備する。
【００１５】
本発明に係るユーザデータ共有方法は、計算機により実施されるユーザデータ共有方法であって、ユーザ端末とネットワークを介して接続することと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、メタデータとユーザデータのキャッシュとを記憶することと、認証済みの端末に対してメタデータに基づく情報を提示することと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認することと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信することと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得することと、ユーザデータを認証済みの端末に送信することとを含む。
【００１６】
本発明に係るプログラムは、ユーザ端末とネットワークを介して接続するステップと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、メタデータとユーザデータのキャッシュとを記憶するステップと、認証済みの端末に対してメタデータに基づく情報を提示するステップと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認するステップと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信するステップと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得するステップと、ユーザデータを認証済みの端末に送信するステップとを計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【００１７】
エンドユーザに対し、従来のサービスと比べて、低コスト・大容量・高信頼性・高付加価値のネットワークストレージを提供できる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係るストレージシステムの構成例を示す図である。
【図２】本発明に係るメタデータ（インデックス情報）登録処理の流れを説明するための図である。
【図３】本発明に係るメタデータ（インデックス情報）取得処理の流れを説明するための図である。
【図４】本発明に係るサーバアクセス処理の流れを説明するための図である。
【図５】本発明に係るユーザデータ取得処理の流れを説明するための図である。
【図６】本発明に係るユーザデータ外部編集処理の流れを説明するための図である。
【図７】本発明に係るユーザデータ外部登録処理の流れを説明するための図である。
【図８】本発明に係るユーザデータ削除処理１の流れを説明するための図である。
【図９】本発明に係るユーザデータ削除処理２の流れを説明するための図である。
【図１０】本発明に係るＷｅｂＵＩ用のファイル選択画面の例を説明するための図である。
【図１１】本発明に係るＷｅｂＵＩ用のユーザデータ登録画面（ユーザデータ書込画面）の例を説明するための図である。
【発明を実施するための形態】
【００１９】
＜実施形態＞
以下に、本発明の実施形態について添付図面を参照して説明する。
【００２０】
［システム構成］
図１に示すように、本発明に係るストレージシステムは、ユーザ端末１０と、ストレージサーバ２０と、外部端末３０を含む。なお、各装置の台数は任意である。
【００２１】
ユーザ端末１０は、ユーザ宅内（所定の建物又は部屋の中）にあり、当該端末や、当該端末に接続されたサーバ／ストレージ装置等が保有するファイルやフォルダ等のユーザデータに関するメタデータ（インデックス情報：ユーザデータの識別に用い、ユーザデータを管理、検索、取得するためのデータ）をストレージサーバ２０に送信し、メタデータ（インデックス情報）に基づいてユーザデータを送信した際等にキャッシュ（ｃａｃｈｅ）する。「キャッシュする」とは、元のユーザデータの読み出しを高速化するために、当該ユーザデータの複製データである「キャッシュ」を、相対的に高速な記憶装置に蓄えておくことである。すなわち、ユーザ端末１０は、当該端末が管理しているユーザデータのキャッシュをストレージサーバ２０に格納する。また、ユーザ端末１０は、他の端末によりストレージサーバ２０に格納されたユーザデータのキャッシュを利用することもできる。ユーザ端末１０は、常時／定期的に、ストレージサーバ２０に接続されていると好適である。なお、ユーザ宅は、ユーザデータ本体の所在地（ｌｏｃａｔｉｏｎ）の一例に過ぎない。実際には、ユーザ宅に限定されない。
【００２２】
ストレージサーバ２０は、個々のユーザ端末１０から取得したユーザデータのキャッシュを格納する。ストレージサーバ２０は、クラウドを構成するサーバ（少なくとも１台のサーバ、複数のサーバの組合せも可）でも良い。また、ストレージサーバ２０は、ユーザ端末１０や外部端末３０から、格納されたメタデータ（インデックス情報）を基にユーザデータの要求があった場合、要求元の端末やそのユーザに対する認証を行い、認証の結果、当該ユーザデータの利用権限が与えられている端末（認証済みの端末）やそのユーザに対し、格納されたキャッシュから、又はマスタファイルとなるユーザデータが格納されたユーザ端末１０から当該ユーザデータを取得して、当該ユーザデータを提供する。
【００２３】
外部端末３０は、ユーザ宅外（上記ユーザ宅以外の場所）にあり、ユーザ端末１０がストレージサーバ２０に格納したキャッシュを利用することで、間接的に、ユーザ端末１０が管理しているユーザデータを利用する。ここでは、外部端末３０の例として、一般的なＰＣ（パソコン）やスマートフォン等の端末を想定している。なお、外部端末３０は、ユーザ端末１０の１つでも良い。すなわち、外部端末３０は、ユーザ端末１０と同じ機能を有していても良い。例えば、ユーザ端末１０のユーザが、他人のユーザデータのキャッシュを利用する場合、当該ユーザ端末１０は外部端末３０となる。また、同一ユーザにより使用される端末であっても、「ユーザ宅内で使用される端末」をユーザ端末１０とし、「ユーザ宅外で使用される端末」を外部端末３０としても良い。また、同一の端末であっても、「ユーザ宅内で使用される場合」にユーザ端末１０とし、「ユーザ宅外で使用される場合」に外部端末３０とすることもできる。ユーザ宅内か否かは、端末や中継機器のＩＰアドレスやＧＰＳ情報（位置情報）等により判別可能であるが、ユーザ自身がストレージサーバ２０やクライアントアプリにて設定しても良い。
【００２４】
［ユーザ端末の構成］
ユーザ端末１０は、クライアントアプリ実行部１１と、データ格納部１２を備える。
【００２５】
クライアントアプリ実行部１１は、ユーザからの実行操作等に従って、或いはユーザ端末１０の起動時に、クライアントアプリ（クライアント用のアプリケーションソフトウェア）を実行する。クライアントアプリ実行部１１は、クライアントアプリに従って、ユーザデータに関するメタデータ（インデックス情報）を収集してストレージサーバ２０に送信する。また、クライアントアプリ実行部１１は、クライアントアプリに従って、ストレージサーバ２０経由で、外部端末３０からメタデータ（インデックス情報）に基づく要求があったユーザデータを、ストレージサーバ２０に送信してキャッシュする。また、クライアントアプリ実行部１１は、クライアントアプリに従って、予め指定したユーザデータをストレージサーバ２０に送信してキャッシュしても良い。このとき、クライアントアプリ実行部１１は、クライアントアプリに従って、ユーザ端末１０とストレージサーバ２０との間で、ユーザデータを同期しても良い。同期の方式は、「プッシュ型」（ｐｕｓｈ  ｔｙｐｅ）／「プル型」（ｐｕｌｌ  ｔｙｐｅ）のいずれでも良い。
【００２６】
なお、クライアントアプリ実行部１１は、ストレージサーバ２０に格納するキャッシュのサイズが規定値よりも大きい場合、キャッシュをブロック単位に分割し、全部又は差分を、ブロック毎にストレージサーバ２０に送信する。反対に、ストレージサーバ２０から取得するキャッシュのサイズが規定値よりも大きい場合には、ブロック単位に分割された当該キャッシュの全部又は差分を、ブロック毎にストレージサーバ２０から受信する。
【００２７】
また、クライアントアプリ実行部１１は、予め指定されたユーザデータの内容に変更（更新、追加、削除等）がある場合、変更されたユーザデータに関するメタデータ（インデックス情報）をストレージサーバ２０に送信し、変更されたユーザデータに関するメタデータ（インデックス情報）をストレージサーバ２０に格納する。例えば、変更後のユーザデータに関するメタデータ（インデックス情報）を、変更前のユーザデータに関するメタデータ（インデックス情報）に上書きする。変更前のユーザデータがキャッシュとしてストレージサーバ２０に格納されている場合、変更後のユーザデータをストレージサーバ２０に送信し、ストレージサーバ２０に格納されたキャッシュを更新しても良い。例えば、変更後のユーザデータのキャッシュを、変更前のユーザデータのキャッシュに上書きする。
【００２８】
データ格納部１２は、マスタファイルとなるユーザデータ本体を格納する。データ格納部１２は、ユーザ端末１０の内部の記憶装置に限らず、外部のファイルサーバ等でも良い。また、データ格納部１２は、記憶装置内の所定の記憶領域でも良い。すなわち、データ格納部１２は、ユーザ端末１０のユーザにより管理されていれば良い。また、データ格納部１２は、常時／定期的に、ネットワーク接続されていると好適である。
【００２９】
［ストレージサーバの構成］
ストレージサーバ２０は、クライアントマネージャ実行部２１と、コアマネージャ実行部２２と、キャッシュ格納部２３と、メタデータ格納部２４と、ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）管理部２５と、ＷｅｂＵＩ（Ｗｅｂ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）実行部２６を備える。
【００３０】
クライアントマネージャ実行部２１は、クライアントアプリに対応するクライアントマネージャ（サーバ用のアプリケーション）を実行する。クライアントマネージャ実行部２１は、個々のユーザ端末１０のクライアントアプリ実行部１１と通信し、個々のユーザ端末１０のデータ格納部１２に格納されたユーザデータや、当該ユーザデータに関するメタデータ（インデックス情報）を取得する。
【００３１】
コアマネージャ実行部２２は、クライアントマネージャに対応するコアマネージャ（サーバ用のアプリケーション）を実行する。コアマネージャ実行部２２は、クライアントマネージャ実行部２１を管理し、個々のユーザデータやメタデータ（インデックス情報）を収集する。また、コアマネージャ実行部２２は、ストレージサーバ２０の内部制御を行う。
【００３２】
キャッシュ格納部２３は、ユーザデータのキャッシュを格納する。ここでは、キャッシュ格納部２３は、ユーザ端末毎（或いはユーザ毎）に、キャッシュを格納する領域を確保する。なお、ストレージサーバ２０を運営する事業者は、キャッシュ自体の容量（サイズ）やキャッシュを格納する領域の容量を課金の対象とすることができる。例えば、一定容量まで無料とし、超過した分についてユーザに課金する。
【００３３】
なお、キャッシュには、一時的なキャッシュと、恒久的なキャッシュ（ｐｅｒｍａｎｅｎｔ）がある。一時的なキャッシュは、確保された領域に余裕がなくなった場合に、自動的に領域内から削除されるキャッシュである。恒久的なキャッシュは、確保された領域に余裕がなくなった場合でも、自動的には削除されないキャッシュである。但し、ユーザ端末１０のユーザの操作に従って、恒久的なキャッシュを削除することは可能である。一時的なキャッシュとするか、恒久的なキャッシュとするかは、ユーザ端末１０のユーザがキャッシュ毎に設定できるものとする。
【００３４】
メタデータ格納部２４は、個々のユーザデータに関するメタデータ（インデックス情報）を格納する。メタデータ（インデックス情報）の内容については後述する。また、メタデータ格納部２４は、メタデータに関連付けて、ユーザデータのキャッシュの有無、ユーザ識別子、端末識別子等の情報を格納するようにしても良い。
【００３５】
ＡＣＬ管理部２５は、個々のユーザ／端末のアクセス権限や、個々のユーザ／端末がアクセス可能なファイル等の資源を列挙したリスト（ＡＣＬ）を格納する。ここでは、ＡＣＬの管理対象を自分以外の複数の宅外ユーザ／端末にも対応できるように拡張し、複数の宅外ユーザ／端末にメタデータ（インデックス情報）を公開して、個々のユーザ／端末からキャッシュの参照や編集ができるようにする。ユーザ端末１０は、ユーザからの入力操作等に従って、個々のユーザ／端末のアクセス権限や、個々のユーザ／端末がアクセス可能なファイル等の設定を行う。ストレージサーバ２０は、ユーザ端末１０からの設定に基づいて、ＡＣＬを作成する。なお、実際には、ユーザ端末１０は、ユーザからの入力操作等に従って、直接ＡＣＬを編集しても良い。また、ユーザ端末１０は、アクセス頻度の高いキャッシュ等を有料情報として課金し、支払い料金に応じたアクセス権限を付与するように設定することも可能である。ストレージサーバ２０を運営する事業者は、支払い料金の一部を管理料／手数料として徴収できる。
【００３６】
ＷｅｂＵＩ実行部２６は、ユーザ端末１０や外部端末３０に対し、ネットワークを介して、データの表示やデータの入力を行うためのＷｅｂＵＩを提供する。ＷｅｂＵＩの例として、ブラウザ等に表示されるＷｅｂページや、ネットワーク対応のアプリケーションの操作画面等が考えられる。
【００３７】
［メタデータ（インデックス情報）の内容］
メタデータ（インデックス情報）の内容の例として、以下の（１）〜（３）のいずれか又は組合せが考えられる。
【００３８】
（１）一般的なファイル情報
識別情報（フルパスのファイル名等）、作成／更新日時、ファイルサイズ等
【００３９】
（２）主なプロパティ
文書データ：タイトル名、アプリケーション名、属性情報等
音楽データ：曲名、アルバム名、アーティスト情報、曲の長さ、その他のタグ情報等
画像データ：縦横サイズ、解像度、カメラ情報、サムネイル画像等
【００４０】
（３）システム情報
ハッシュ関数（一方向要約関数）：ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）等
ブロック情報、端末識別子（デバイスＩＤ）等
【００４１】
但し、実際には、これらの例に限定されない。
【００４２】
［ハードウェアの例示］
以下に、本発明に係るストレージシステムを実現するための具体的なハードウェアの例について説明する。
【００４３】
ここでは、ユーザ端末１０、ストレージサーバ２０、及び外部端末３０の例として、ＰＣ（パソコン）、携帯電話機、スマートフォン、スマートブック、アプライアンス（ａｐｐｌｉａｎｃｅ）、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、端末やサーバに限らず、中継機器や周辺機器でも良い。また、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）でも良い。
【００４４】
図示しないが、ユーザ端末１０、ストレージサーバ２０、及び外部端末３０の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。
【００４５】
上記のプロセッサの例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ネットワークプロセッサ（ＮＰ：Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等が考えられる。
【００４６】
上記のメモリの例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。また、バッファ（ｂｕｆｆｅｒ）やレジスタ（ｒｅｇｉｓｔｅｒ）でも良い。或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を用いたストレージ装置でも良い。
【００４７】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の１チップ化が進んでいる。従って、電子機器等に搭載される１チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例が考えられる。
【００４８】
上記のインターフェースの例として、ネットワーク通信に対応した基板（マザーボード、Ｉ／Ｏボード）やチップ等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。
【００４９】
また、ネットワークの例として、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等が考えられる。
【００５０】
なお、ユーザ端末１０、ストレージサーバ２０、及び外部端末３０の各々の内部の構成要素は、モジュール（ｍｏｄｕｌｅ）、コンポーネント（ｃｏｍｐｏｎｅｎｔ）、或いは専用デバイス、又はこれらの起動（呼出）プログラムでも良い。
【００５１】
但し、実際には、これらの例に限定されない。
【００５２】
［処理手順］
以下に、本発明に係るストレージシステムにおける処理の流れについて説明する。
【００５３】
［メタデータ（インデックス情報）登録処理］
図２を参照して、ユーザ端末１０からストレージサーバ２０にメタデータ（インデックス情報）を格納する際の処理の流れについて説明する。
【００５４】
（１）ステップＳ１０１
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの実行操作等に従って、或いはユーザ端末１０の起動時に、クライアントアプリを実行する。
【００５５】
（２）ステップＳ１０２
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの入力操作／事前設定情報等に従って、ストレージサーバ２０に対し、ユーザデータを格納するデータ格納部１２を指定し、設定する。必要であれば、ユーザデータ自体を指定し、設定しても良い。なお、外部端末３０に送信しても良いユーザデータを格納するデータ格納部１２と、外部端末３０から受信したユーザデータを格納するデータ格納部１２は、同じ記憶装置／記憶領域でも良いし、異なる記憶装置／記憶領域でも良い。また、クライアントアプリ実行部１１は、外部端末３０に送信しても良いユーザデータや、外部端末３０から受信したユーザデータをデータ格納部１２に格納する。クライアントアプリ実行部１１は、ユーザからの入力操作等に従って、ストレージサーバ２０に対し、指定されたユーザデータに関するアクセス権限等の設定を行う。また、クライアントアプリ実行部１１は、データ格納部１２に格納しているユーザデータ自体／データ格納部１２自体に対しては、ストレージサーバ２０のみアクセス可能とする制限をかける。例えば、クライアントアプリ実行部１１は、データ格納部１２に格納しているユーザデータのアクセス許可を、クライアントアプリに対して付与し、ストレージサーバ２０をＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）等によるサーバ認証やＩＰアドレス等で識別し、ストレージサーバ２０からのアクセス要求のみ受諾し、処理を実行するようにする。また、ストレージサーバ２０以外からのアクセス要求は受け付けず、処理を実行しないようにする。
【００５６】
（３）ステップＳ１０３
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの指示を受けた際に／定期的に／ユーザ端末又はクライアントアプリの起動時に／ユーザデータの作成・変更時に、データ格納部１２に格納されている（又は予め指定されている）ユーザデータに関するメタデータ（インデックス情報）を収集する。クライアントアプリ実行部１１は、収集されたメタデータ（インデックス情報）を、一括して、データベースやテーブル等の一覧情報の形式にしても良い。
【００５７】
（４）ステップＳ１０４
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）と共に、収集されたメタデータ（インデックス情報）を、ストレージサーバ２０に送信する。クライアントアプリ実行部１１は、ユーザデータの作成・変更時に、変更があったメタデータ（インデックス情報）を個別にストレージサーバ２０に送信しても良いし、収集されたメタデータ（インデックス情報）を一覧情報の形式にして保有しておき、定期的にストレージサーバ２０に送信しても良い。これにより、クライアントアプリ実行部１１は、ユーザ端末１０とストレージサーバ２０との間で、ユーザデータに関するメタデータ（インデックス情報）を同期させることができる。なお、ユーザ端末１０のクライアントアプリ実行部１１は、収集されたメタデータ（インデックス情報）をストレージサーバ２０に送信する際／ストレージサーバ２０や外部端末３０からメタデータ（インデックス情報）に基づいて要求を受けた際に／ユーザからの指示を受けた際に／定期的に／ユーザ端末又はクライアントアプリの起動時に／ユーザデータの作成・変更時に、ユーザデータを取得し、そのユーザデータをストレージサーバ２０にキャッシュするようにしても良い。
【００５８】
［メタデータ（インデックス情報）取得処理］
図３を参照して、ストレージサーバ２０上で、ユーザ端末１０からメタデータ（インデックス情報）を取得する際の処理の流れについて説明する。
【００５９】
（１）ステップＳ２０１
ストレージサーバ２０のクライアントマネージャ実行部２１は、個々のユーザ端末１０のクライアントアプリ実行部１１との接続を確立し、個々のユーザ端末１０のクライアントアプリ実行部１１から、当該ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）と共に、メタデータ（インデックス情報）を受信する。メタデータ（インデックス情報）は、一覧情報の形式でも良い。
【００６０】
（２）ステップＳ２０２
ストレージサーバ２０のコアマネージャ実行部２２は、受信したメタデータ（インデックス情報）と、ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）とを対応付けて、メタデータ格納部２４に格納する。メタデータ（インデックス情報）は、一覧情報の形式でも良い。このとき、コアマネージャ実行部２２は、既に同じユーザ端末１０の識別情報に対応するメタデータ（インデックス情報）がある場合、古いメタデータ（インデックス情報）の削除や上書きを行い、メタデータ（インデックス情報）を更新する。
【００６１】
（３）ステップＳ２０３
ストレージサーバ２０のコアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）に対応しないユーザデータのキャッシュがキャッシュ格納部２３に格納されている場合、当該キャッシュをキャッシュ格納部２３から削除する。反対に、コアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）に対応するユーザデータのキャッシュがキャッシュ格納部２３に格納されていない場合、キャッシュ格納部２３の容量に余裕（空き）があれば、クライアントアプリ実行部１１を介して、当該ユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部２３に格納しても良い。
【００６２】
（４）ステップＳ２０４
ストレージサーバ２０のコアマネージャ実行部２２は、個々のユーザ／端末のアクセス権限や、アクセス可能なファイル等の資源を列挙したリスト（ＡＣＬ）を作成し、ＡＣＬをＡＣＬ管理部２５に格納する。
【００６３】
このとき、ストレージサーバ２０のクライアントマネージャ実行部２１は、個々のユーザ端末１０のクライアントアプリ実行部１１から、当該ユーザ端末１０のデータ格納部１２に格納されている予め指定されたユーザデータを取得するようにしても良い。なお、実際には、クライアントマネージャ実行部２１は、クライアントアプリ実行部１１に対して当該ユーザデータの取得要求を送信し、応答として当該ユーザデータを受信しても良い。
【００６４】
また、ストレージサーバ２０のコアマネージャ実行部２２は、クライアントマネージャ実行部２１からユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部２３に格納するようにしても良い。
【００６５】
［サーバアクセス処理］
図４を参照して、外部端末３０（他のユーザ端末１０を含む）からストレージサーバ２０にアクセスする際の処理の流れについて説明する。
【００６６】
（１）ステップＳ３０１
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、外部端末３０からのアクセス要求に応じて、ＷｅｂＵＩの初期画面データを外部端末３０に送信する。なお、ストレージサーバ２０のＷｅｂＵＩ実行部２６は、ＷｅｂＵＩの初期画面データを、Ｗｅｂページとしてネットワーク上に公開しても良い。ここでは、ＷｅｂＵＩの初期画面データには、認証情報（ユーザ識別子とパスワード等）の入力欄が設けられているものとする。
【００６７】
（２）ステップＳ３０２
外部端末３０は、当該端末のユーザからの入力操作等に従って、ＷｅｂＵＩの初期画面データに認証情報（ユーザ識別子とパスワード等）を入力し、ストレージサーバ２０に送信する。
【００６８】
（３）ステップＳ３０３
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、外部端末３０からＷｅｂＵＩの初期画面データに入力された認証情報（ユーザ識別子とパスワード等）を受信した場合、認証情報（ユーザ識別子とパスワード等）をコアマネージャ実行部２２に渡す。
【００６９】
（４）ステップＳ３０４
ストレージサーバ２０のコアマネージャ実行部２２は、ＡＣＬ管理部２５に格納されたＡＣＬに基づいて、認証情報（ユーザ識別子とパスワード等）に対する認証を行う。
【００７０】
（５）ステップＳ３０５
ストレージサーバ２０のコアマネージャ実行部２２は、認証の結果、外部端末３０に対して、所定のユーザデータに関するアクセス権限が与えられている場合、当該ユーザデータに関するメタデータ（インデックス情報）を参照し、当該ユーザデータのキャッシュがキャッシュ格納部２３に格納されているか（キャッシュの有無を）確認する。
【００７１】
（６）ステップＳ３０６
ストレージサーバ２０のコアマネージャ実行部２２は、ストレージサーバ２０のクライアントマネージャ実行部２１とユーザ端末１０のクライアントアプリ実行部１１との接続状況を確認し、ユーザ端末１０がオンラインであるか確認する。なお、実際には、クライアントアプリの動作状況や、通信回線速度等を確認しても良い。
【００７２】
（７）ステップＳ３０７
ストレージサーバ２０のコアマネージャ実行部２２は、確認結果を基に、ＷｅｂＵＩ用のファイル選択画面データを作成する。ここでは、ＷｅｂＵＩ用のファイル選択画面データには、ユーザデータに関するメタデータ（インデックス情報）と共に、キャッシュの有無を示す情報や、ユーザ端末１０のオンライン／オフラインを示す情報、選択したユーザデータを取得するための取得ボタン等が含まれるものとする。なお、外部端末３０に対してアクセス権限が与えられていないユーザデータについては、ユーザデータに関するメタデータ（インデックス情報）やキャッシュの有無を示す情報がＷｅｂＵＩ用のファイル選択画面データに含まれていなくても良い。
【００７３】
（８）ステップＳ３０８
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、ＷｅｂＵＩ用のファイル選択画面データを外部端末３０に送信する。
【００７４】
ここでは、外部端末３０は、ＷｅｂＵＩを介してストレージサーバ２０にアクセスしているが、実際には、クライアントアプリを用いてストレージサーバ２０にアクセスしても良い。
【００７５】
［ユーザデータ取得処理］
図５を参照して、外部端末３０（他のユーザ端末１０を含む）がストレージサーバ２０を介してキャッシュ等を利用する際の処理の流れについて説明する。
【００７６】
（１）ステップＳ４０１
外部端末３０は、ＷｅｂＵＩ用のファイル選択画面データに基づいて、ＷｅｂＵＩ用のファイル選択画面を表示する。外部端末３０は、ユーザからの入力操作等に従って、ＷｅｂＵＩ用のファイル選択画面に表示された所定のユーザデータに関するメタデータ（インデックス情報）を指定し、取得ボタンが押下された際、当該ユーザデータの識別情報をストレージサーバ２０に送信する。
【００７７】
（２）ステップＳ４０２
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、外部端末３０から、所定のユーザデータの識別情報を受信した場合、この識別情報をコアマネージャ実行部２２に渡す。
【００７８】
（３）ステップＳ４０３
ストレージサーバ２０のコアマネージャ実行部２２は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部２３に格納されているか（キャッシュの有無を）確認する。なお、コアマネージャ実行部２２は、キャッシュの有無の確認に先立って、ＡＣＬに基づいて、外部端末３０又はそのユーザのアクセス権限を確認し、この識別情報に該当するユーザデータを外部端末３０に送信しても良いか判断するようにしても良い。
【００７９】
（４）ステップＳ４０４
ストレージサーバ２０のコアマネージャ実行部２２は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部２３に格納されている場合、キャッシュ格納部２３から当該キャッシュを読み出し、当該キャッシュを当該ユーザデータとして外部端末３０に送信する。
【００８０】
（５）ステップＳ４０５
ストレージサーバ２０のコアマネージャ実行部２２は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部２３に格納されていない場合、この識別情報に該当するユーザデータを管理するユーザ端末１０を、当該ユーザデータに関連付けられた端末識別子に基づいて特定し、特定されたユーザ端末１０のクライアントアプリ実行部１１を介して、当該ユーザ端末１０のデータ格納部１２にアクセスし、この識別情報に該当するユーザデータを抽出・取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部２３に格納する。なお、実際には、クライアントマネージャ実行部２１は、クライアントアプリ実行部１１に対してキャッシュ取得要求を送信し、応答としてユーザデータを受信し、当該ユーザデータのキャッシュをキャッシュ格納部２３に格納しても良い。
【００８１】
（６）ステップＳ４０６
ストレージサーバ２０のコアマネージャ実行部２２は、当該ユーザデータのキャッシュをキャッシュ格納部２３に格納した場合、当該ユーザデータのキャッシュの有無を示す情報を更新し、ＷｅｂＵＩ用のファイル選択画面データに反映し、キャッシュ格納部２３から当該キャッシュを読み出して外部端末３０に送信する。なお、ストレージサーバ２０は、キャッシュ格納部２３に格納したキャッシュではなく、ユーザ端末１０から取得したユーザデータを外部端末３０に送信しても良い。すなわち、キャッシュ格納部２３へのユーザデータのキャッシュの格納と、外部端末３０へのユーザデータの送信とは、並列に処理しても良い。
【００８２】
（７）ステップＳ４０７
ストレージサーバ２０のコアマネージャ実行部２２は、この識別情報に該当するユーザデータの取得処理を開始してから、規定時間内に、当該ユーザデータを管理するユーザ端末１０から、当該ユーザデータを取得できない場合、当該ユーザ端末１０のネットワーク接続環境や、当該ユーザ端末１０自体（電源等）に障害が発生していると判断し、キャッシュ取得エラーや、ユーザ端末１０のオフラインを示す情報を、ＷｅｂＵＩ用のファイル選択画面データに反映し、外部端末３０に通知する。
【００８３】
［端末とサーバ間の送受信処理］
ユーザ端末１０とストレージサーバ２０と外部端末３０との間のネットワーク接続環境の通信品質に応じてユーザデータの送受信処理を変更することも考えられる。
【００８４】
例えば、ユーザ端末１０とストレージサーバ２０との間のネットワーク接続環境の通信品質が高品質で、ストレージサーバ２０と外部端末３０との間のネットワーク接続環境の通信品質が低品質である場合、ストレージサーバ２０は、ユーザ端末１０から、ユーザデータをファイル／フォルダ単位で一括して受信する。このとき、外部端末３０がクライアントアプリを実行していれば、その受信したユーザデータ又はそのユーザデータのキャッシュをブロック単位に分割して、ブロック毎に外部端末３０に送信する。ブロック単位での送受信には、クライアントアプリが必要である。また、バイトレンジ操作対応のＷｅｂクライアントであれば、途中からのデータ送受信も可能である。
【００８５】
反対に、ユーザ端末１０とストレージサーバ２０との間のネットワーク接続環境の通信品質が低品質で、ストレージサーバ２０と外部端末３０との間のネットワーク接続環境の通信品質が高品質である場合、ストレージサーバ２０は、ユーザ端末１０のユーザデータをブロック単位に分割して、ブロック毎にユーザデータを受信し、当該ユーザデータ又は当該ユーザデータのキャッシュをファイル／フォルダ単位で一括して外部端末３０に送信する。
【００８６】
これにより、動画や音楽のデータのストリーミング配信等で、再生位置移動、トランスコードデータの一時保存や次のコンテンツの先読みを行い、最初のコンテンツ（１話目、１曲目等）は遅くても次のコンテンツ（２話目、２曲目等）以降は先読みでストレージサーバにキャッシュしておき、早く読み出せるようにすることが可能になる。
【００８７】
ここでは、「ユーザ端末１０→ストレージサーバ２０→外部端末３０」の流れでのユーザデータの送信について説明したが、「外部端末３０→ストレージサーバ２０→ユーザ端末１０」の流れでのユーザデータの送信についても、同様に実施することが可能である。
【００８８】
［キャッシュ削除のタイミング］
例えば、ストレージサーバ２０のコアマネージャ実行部２２は、以下のようなタイミングでキャッシュを削除する。
【００８９】
（１）既定時間
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザ端末１０がオフライン（非アクティブ）になってから既定時間後に、当該ユーザ端末１０のユーザデータのキャッシュをキャッシュ格納部２３から削除する。
【００９０】
（２）既定容量
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザ端末１０のために確保した領域に蓄積されたキャッシュが既定容量に達した時、当該ユーザ端末１０のユーザデータのキャッシュをキャッシュ格納部２３から削除する。
【００９１】
［削除するキャッシュの順番］
キャッシュをキャッシュ格納部２３から削除する際には、以下のような順番でキャッシュを削除する。
【００９２】
（１）利用頻度
ストレージサーバ２０のコアマネージャ実行部２２は、登録された日時が古いキャッシュやアクセス頻度が低いキャッシュから順に削除する。
【００９３】
（２）ユーザからの要求
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザ端末１０から削除要求があったユーザデータのキャッシュを削除する。なお、反対に、ユーザ端末１０から保存要求があったユーザデータのキャッシュ以外を削除するようにしても良い。
【００９４】
（３）連携
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザ端末１０がデータ格納部１２上で管理するユーザデータが削除されたことを検出した際に（又は通知を受けた際に）、当該ユーザデータのキャッシュを削除する。
【００９５】
なお、ストレージサーバ２０のコアマネージャ実行部２２は、ユーザデータのキャッシュをキャッシュ格納部２３から削除した後、削除されたユーザデータのキャッシュの有無を示す情報を更新する。
【００９６】
［ユーザデータ外部編集処理］
図６を参照して、外部端末３０（他のユーザ端末１０を含む）から、ストレージサーバ２０上にキャッシュされているユーザデータを編集する際の処理の流れについて説明する。
【００９７】
例えば、ユーザ端末１０のユーザ以外の者がユーザ宅外の外部端末３０を用いてキャッシュされているユーザデータを編集する場合に限らず、ユーザ端末１０のユーザがユーザ宅外の外部端末３０を用いてキャッシュされているユーザデータを編集する場合も考えられる。
【００９８】
（１）ステップＳ５０１
外部端末３０は、ストレージサーバ２０からキャッシュされているユーザデータを受信する。このとき、ストレージサーバ２０のコアマネージャ実行部２２は、キャッシュされているユーザデータの内容を含むＷｅｂＵＩ用のユーザデータ編集画面データを作成し、ＷｅｂＵＩ実行部２６を介して、ＷｅｂＵＩ用のユーザデータ編集画面データを外部端末３０に送信しても良い。
【００９９】
（２）ステップＳ５０２
外部端末３０は、キャッシュされているユーザデータの内容を参照する。このとき、外部端末３０は、ストレージサーバ２０から受信したＷｅｂＵＩ用のユーザデータ編集画面データに基づき、ＷｅｂＵＩ用のユーザデータ編集画面を表示しても良い。なお、ＷｅｂＵＩ用のユーザデータ編集画面には、キャッシュされているユーザデータの識別情報（ファイル名等）及び内容を直接表示しても良いし、或いは、キャッシュされているユーザデータのアイコン等を表示しておき、当該アイコン等がクリックされた際に、当該キャッシュされているユーザデータの内容を表示するようにしても良い。
【０１００】
（３）ステップＳ５０３
外部端末３０は、当該端末のユーザからの入力操作等に従って、キャッシュされているユーザデータに対する編集を行う。このとき、外部端末３０は、ＷｅｂＵＩ用のユーザデータ編集画面に表示された編集ボタンが押下された際に、当該キャッシュされているユーザデータの内容を編集するための画面を表示するようにしても良い。なお、実際には、当該キャッシュされているユーザデータの内容を編集するため、一般的なファイル編集用アプリケーションを起動しても良い。外部端末３０は、ＷｅｂＵＩ用のユーザデータ編集画面、又はファイル編集用アプリケーション上で、キャッシュされているユーザデータに対する編集を行う。
【０１０１】
（４）ステップＳ５０４
外部端末３０は、キャッシュされているユーザデータに対する編集が完了した場合、編集後のユーザデータをストレージサーバ２０に送信する。このとき、外部端末３０は、当該端末のユーザからの入力操作等に従って、ＷｅｂＵＩ用のユーザデータ編集画面に表示された完了ボタンが押下された際に、編集後のユーザデータをストレージサーバ２０に送信するようにしても良い。
【０１０２】
（５）ステップＳ５０５
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、外部端末３０から編集後のユーザデータを受信した場合、編集後のユーザデータをコアマネージャ実行部２２に渡す。
【０１０３】
（６）ステップＳ５０６
ストレージサーバ２０のコアマネージャ実行部２２は、編集後のユーザデータを受け取った場合、ＡＣＬ管理部２５に格納されたＡＣＬに基づいて、外部端末３０の認証情報（ユーザ識別子とパスワード等）に対する認証を行う。なお、当該認証は、編集後のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末３０からストレージサーバ２０に最初にアクセスした際に行われた認証を、当該認証としても良い。
【０１０４】
（７）ステップＳ５０７
ストレージサーバ２０のコアマネージャ実行部２２は、認証の結果、外部端末３０に対し、当該ユーザデータを更新する権限が与えられている場合、メタデータ格納部２４に格納されたメタデータを基に、編集後のユーザデータを、キャッシュ格納部２３に格納されたキャッシュに反映する。例えば、コアマネージャ実行部２２は、キャッシュ格納部２３に格納されたキャッシュのうち、編集後のユーザデータと識別情報（ファイル名等）が同じキャッシュの内容に、編集後のユーザデータの内容を上書きする。或いは、コアマネージャ実行部２２は、キャッシュ格納部２３に格納されたキャッシュを、編集後のユーザデータに差し替える。このとき、ストレージサーバ２０のコアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）を更新しても良い。例えば、ストレージサーバ２０のコアマネージャ実行部２２は、編集後のユーザデータに関するメタデータ（インデックス情報）を、メタデータ格納部２４に格納されたメタデータ（インデックス情報）に反映する。
【０１０５】
（８）ステップＳ５０８
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザデータに関連付けられた端末識別子に基づいてユーザ端末１０を特定し、ストレージサーバ２０のクライアントマネージャ実行部２１とユーザ端末１０のクライアントアプリ実行部１１との接続状況を確認し、ユーザ端末１０がオンラインであるか確認し、ユーザ端末１０がオンラインである場合、編集後のユーザデータをユーザ端末１０に送信する。例えば、コアマネージャ実行部２２は、キャッシュ格納部２３内のユーザ毎に確保された領域に編集後のユーザデータのキャッシュを格納することで、当該領域を使用しているユーザのユーザ端末１０に、当該編集後のユーザデータを送信する。或いは、外部端末３０により指定されたユーザ端末１０に、当該編集後のユーザデータを送信するようにしても良い。このとき、コアマネージャ実行部２２は、ＡＣＬを基に、編集後のユーザデータが所定の権限を与えられた外部端末３０により編集されたユーザデータであるか確認し、許可された外部端末３０により編集されたユーザデータであれば、編集後のユーザデータをユーザ端末１０に送信するようにしても良い。或いは、コアマネージャ実行部２２は、送信前に、ユーザ端末１０に対し、編集後のユーザデータを送信しても良いか確認するようにしても良い。ユーザ端末１０のクライアントアプリ実行部１１は、編集後のユーザデータを受信した場合、編集後のユーザデータをデータ格納部１２に格納する。例えば、クライアントアプリ実行部１１は、元のユーザデータ（マスタファイル）の内容に、編集後のユーザデータの内容を上書きする。或いは、クライアントアプリ実行部１１は、元のユーザデータ（マスタファイル）を、編集後のユーザデータに差し替える。その後、クライアントアプリ実行部１１は、ストレージサーバ２０のクライアントマネージャ実行部２１に、書込完了通知を送信する。コアマネージャ実行部２２は、ＷｅｂＵＩ実行部２６を介して、この書込完了通知を外部端末３０に通知しても良い。また、コアマネージャ実行部２２は、ユーザ端末１０がオンラインでない場合（オフラインである場合）、或いは、ユーザ端末１０から編集後のユーザデータの受信／格納を拒否された場合、ＷｅｂＵＩ実行部２６を介して、保存エラーを外部端末３０に通知しても良い。また、この場合、ＡＣＬを参照し、ユーザの会員グレード（有料会員／無料会員等）に応じて、保存エラーを送信する前に、編集後のユーザデータをキャッシュとしてキャッシュ格納部２３に格納し、一定時間後に再度、上記の接続状況の確認を実施し、ユーザ端末１０がオンラインになり次第、編集後のユーザデータをユーザ端末１０に送信しても良い。
【０１０６】
（９）ステップＳ５０９
ユーザ端末１０のクライアントアプリ実行部１１は、編集後のユーザデータをデータ格納部１２に格納した場合、ユーザデータに関するメタデータ（インデックス情報）を更新する。例えば、ユーザ端末１０のクライアントアプリ実行部１１は、編集後のユーザデータに基づくユーザデータに関するメタデータ（インデックス情報）を収集し、ストレージサーバ２０に反映する。なお、ストレージサーバ２０上で既に当該ユーザデータに関するメタデータ（インデックス情報）が更新されている場合、この処理を行わなくても良い。
【０１０７】
［ユーザデータ外部登録処理］
図７を参照して、外部端末３０（他のユーザ端末１０を含む）からストレージサーバ２０を介してユーザ端末１０に新規のユーザデータを登録する際の処理の流れについて説明する。
【０１０８】
例えば、ユーザ端末１０のユーザ以外の者がユーザ宅外の外部端末３０からストレージサーバ２０を介してユーザ端末１０に新規のユーザデータを登録する場合に限らず、ユーザ端末１０のユーザ自身がユーザ宅外の外部端末３０からストレージサーバ２０を介してユーザ端末１０に新規のユーザデータを登録する場合も考えられる。
【０１０９】
（１）ステップＳ６０１
外部端末３０は、当該端末のユーザからの入力操作等に従って、一旦、新規のユーザデータをストレージサーバ２０に送信する。このとき、ストレージサーバ２０のコアマネージャ実行部２２は、ＷｅｂＵＩ用のユーザデータ登録画面データを作成し、ＷｅｂＵＩ実行部２６を介して、ＷｅｂＵＩ用のユーザデータ登録画面データを外部端末３０に送信しても良い。外部端末３０は、ＷｅｂＵＩ用のユーザデータ登録画面データに基づき、ＷｅｂＵＩ用のユーザデータ登録画面を表示し、ＷｅｂＵＩ用のユーザデータ登録画面に表示された送信ボタンが押下された際に、新規のユーザデータをストレージサーバ２０に送信する。
【０１１０】
（２）ステップＳ６０２
ストレージサーバ２０のＷｅｂＵＩ実行部２６は、外部端末３０から新規のユーザデータを受信した場合、新規のユーザデータをコアマネージャ実行部２２に渡す。
【０１１１】
（３）ステップＳ６０３
ストレージサーバ２０のコアマネージャ実行部２２は、新規のユーザデータを受け取った場合、ＡＣＬ管理部２５に格納されたＡＣＬに基づいて、外部端末３０の認証情報（ユーザ識別子とパスワード等）に対する認証を行う。なお、当該認証は、新規のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末３０からストレージサーバ２０に最初にアクセスした際に行われた認証を、当該認証としても良い。
【０１１２】
（４）ステップＳ６０４
ストレージサーバ２０のコアマネージャ実行部２２は、認証の結果、外部端末３０に対し、新規のユーザデータを登録する権限が与えられている場合、新規のユーザデータのキャッシュをキャッシュ格納部２３に格納する。このとき、ストレージサーバ２０のコアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）を更新しても良い。例えば、ストレージサーバ２０のコアマネージャ実行部２２は、新規のユーザデータに関するメタデータ（インデックス情報）をメタデータ格納部２４に格納されたメタデータ（インデックス情報）に反映する。
【０１１３】
（５）ステップＳ６０５
ストレージサーバ２０のコアマネージャ実行部２２は、ユーザデータに関連付けられた端末識別子に基づいてユーザ端末１０を特定し、ストレージサーバ２０のクライアントマネージャ実行部２１とユーザ端末１０のクライアントアプリ実行部１１との接続状況を確認し、ユーザ端末１０がオンラインであるか確認し、ユーザ端末１０がオンラインである場合、新規のユーザデータをユーザ端末１０に送信する。例えば、コアマネージャ実行部２２は、キャッシュ格納部２３内のユーザ毎に確保された領域に新規のユーザデータのキャッシュを格納することで、当該領域を使用しているユーザのユーザ端末１０に、当該新規のユーザデータを送信する。或いは、外部端末３０により指定されたユーザ端末１０に、当該新規のユーザデータを送信するようにしても良い。このとき、コアマネージャ実行部２２は、ＡＣＬを基に、新規のユーザデータが所定の権限を与えられた外部端末３０により編集されたユーザデータであるか確認し、許可された外部端末３０により編集されたユーザデータであれば、新規のユーザデータをユーザ端末１０に送信するようにしても良い。或いは、コアマネージャ実行部２２は、送信前に、ユーザ端末１０に対し、新規のユーザデータを送信しても良いか確認するようにしても良い。ユーザ端末１０のクライアントアプリ実行部１１は、新規のユーザデータを受信した場合、新規のユーザデータをデータ格納部１２に格納する。その後、クライアントアプリ実行部１１は、ストレージサーバ２０のクライアントマネージャ実行部２１に、書込完了通知を送信する。コアマネージャ実行部２２は、ＷｅｂＵＩ実行部２６を介して、この書込完了通知を外部端末３０に通知しても良い。また、コアマネージャ実行部２２は、ユーザ端末１０がオンラインでない場合（オフラインである場合）、或いは、ユーザ端末１０から編集後のユーザデータの受信／格納を拒否された場合、ＷｅｂＵＩ実行部２６を介して、保存エラーを外部端末３０に通知しても良い。また、この場合、ＡＣＬを参照し、ユーザの会員グレード（有料会員／無料会員等）に応じて、保存エラーを送信する前に、編集後のユーザデータをキャッシュとしてキャッシュ格納部２３に格納し、一定時間後に再度、上記の接続状況の確認を実施し、ユーザ端末１０がオンラインになり次第、編集後のユーザデータをユーザ端末１０に送信しても良い。
【０１１４】
（６）ステップＳ６０６
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザデータに関するメタデータ（インデックス情報）を更新する。例えば、ユーザ端末１０のクライアントアプリ実行部１１は、新規のユーザデータに関するメタデータ（インデックス情報）を収集し、ストレージサーバ２０に反映する。なお、ストレージサーバ２０上で既に当該ユーザデータに関するメタデータ（インデックス情報）が更新されている場合、この処理を行わなくても良い。
【０１１５】
［ユーザ端末のオフライン時の接続試行］
必須ではないが、図６に示す「ユーザデータ外部編集処理」や図７に示す「ユーザデータ外部登録処理」において、ストレージサーバ２０のコアマネージャ実行部２２は、ユーザ端末１０がオンラインでない場合（オフラインである場合）、ストレージサーバ２０のクライアントマネージャ実行部２１に対し、ユーザ端末１０のクライアントアプリ実行部１１との接続を指示するようにしても良い。ストレージサーバ２０のクライアントマネージャ実行部２１は、ユーザ端末１０のクライアントアプリ実行部１１との接続を試みる。クライアントマネージャ実行部２１は、ユーザ端末１０のクライアントアプリ実行部１１との接続が確立すれば、ストレージサーバ２０のコアマネージャ実行部２２に、ユーザ端末１０がオンラインである旨を通知する。また、ストレージサーバ２０のクライアントマネージャ実行部２１は、所定の回数／一定期間、接続を試みてもユーザ端末１０のクライアントアプリ実行部１１との接続が確立できない場合、ストレージサーバ２０のコアマネージャ実行部２２に、ユーザ端末１０にアクセスできない旨を通知するようにしても良い。
【０１１６】
また、図６に示す「ユーザデータ外部編集処理」や図７に示す「ユーザデータ外部登録処理」において、ストレージサーバ２０は、キャッシュ格納部２３に格納したキャッシュではなく、外部端末３０から取得したユーザデータをユーザ端末１０に送信しても良い。すなわち、キャッシュ格納部２３へのユーザデータのキャッシュの格納と、ユーザ端末１０へのユーザデータの送信とは、並列に処理しても良い。
【０１１７】
［ユーザデータ外部登録処理を利用したユーザデータ外部編集処理］
なお、図７に示す「ユーザデータ外部登録処理」において、「新規のユーザデータ」を、「編集後のキャッシュ」と読み替えた場合、この「ユーザデータ外部登録処理」を「ユーザデータ外部編集処理」とすることができる。すなわち、ＷｅｂＵＩ上でユーザデータの編集を行わない場合、図７に示す「ユーザデータ外部登録処理」のみで対応可能となり、図６に示す「ユーザデータ外部編集処理」は不要となる。
【０１１８】
「ユーザデータ外部登録処理」により「ユーザデータ外部編集処理」を行う場合、ストレージサーバ２０のコアマネージャ実行部２２は、受信したユーザデータが「編集後のユーザデータ」であるか「新規のユーザデータ」であるかを判断するために、受信したユーザデータの識別情報（ファイル名等）やその他の属性情報と、メタデータ格納部２４に格納されたメタデータ（インデックス情報）とを比較し判断するようにしても良い。
【０１１９】
［ユーザデータ削除処理１］
図８を参照して、ユーザ端末１０上のユーザデータ（マスタファイル）を削除する際の第１の処理の流れについて説明する。
【０１２０】
（１）ステップＳ７０１
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの入力操作等に従って、データ格納部１２に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末１０のクライアントアプリ実行部１１は、クライアントアプリを用いずに、ＯＳのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。
【０１２１】
（２）ステップＳ７０２
クライアントアプリ実行部１１は、ユーザからの指示を受けた際に／定期的に／ユーザ端末又はクライアントアプリの起動時に／ユーザデータの削除時に、ユーザデータに関するメタデータを更新すると共に、ユーザデータの削除履歴や更新前のメタデータとの比較により、削除されたユーザデータを特定し、当該ユーザデータのキャッシュの削除要求をストレージサーバ２０に送信する。
【０１２２】
（３）ステップＳ７０３
ストレージサーバ２０のクライアントマネージャ実行部２１は、個々のユーザ端末１０のクライアントアプリ実行部１１との接続を確立し、個々のユーザ端末１０のクライアントアプリ実行部１１から、当該ユーザデータのキャッシュの削除要求を受信する。
【０１２３】
（４）ステップＳ７０４
ストレージサーバ２０のコアマネージャ実行部２２は、削除要求があったユーザデータのキャッシュをキャッシュ格納部２３から削除する。
【０１２４】
（５）ステップＳ７０５
コアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）を更新する。例えば、コアマネージャ実行部２２は、キャッシュの削除要求があったユーザデータに関するメタデータ（インデックス情報）を破棄する。
【０１２５】
［ユーザデータ削除処理２］
図９を参照して、ユーザ端末１０上のユーザデータ（マスタファイル）を削除する際の第２の処理の流れについて説明する。
【０１２６】
（１）ステップＳ８０１
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの入力操作等に従って、データ格納部１２に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末１０のクライアントアプリ実行部１１は、クライアントアプリを用いずに、ＯＳのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。
【０１２７】
（２）ステップＳ８０２
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザからの指示を受けた際に／定期的に／ユーザ端末又はクライアントアプリの起動時に／ユーザデータの削除時に、ユーザデータに関するメタデータ（インデックス情報）を収集する。ここでは、ユーザ端末１０のデータ格納部１２上の対象となる全てのユーザデータ（マスタファイル）に関するメタデータ（インデックス情報）を収集する。このとき、削除されたユーザデータに関するメタデータ（インデックス情報）は収集されない。
【０１２８】
（３）ステップＳ８０３
ユーザ端末１０のクライアントアプリ実行部１１は、ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）と共に、収集されたメタデータ（インデックス情報）を、ストレージサーバ２０に送信する。
【０１２９】
（４）ステップＳ８０４
ストレージサーバ２０のクライアントマネージャ実行部２１は、個々のユーザ端末１０のクライアントアプリ実行部１１から、当該ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）と共に、メタデータ（インデックス情報）を受信する。
【０１３０】
（５）ステップＳ８０５
ストレージサーバ２０のコアマネージャ実行部２２は、受信したメタデータ（インデックス情報）と、ユーザ端末１０の識別情報（ユーザ識別子、端末識別子、ＩＰアドレス等）とを対応付けて、メタデータ格納部２４に格納する。このとき、ストレージサーバ２０のコアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）を更新し、受信したメタデータ（インデックス情報）と一致しないメタデータ（インデックス情報）がメタデータ格納部２４に格納されている場合、当該メタデータ（インデックス情報）を、削除したユーザデータに関するメタデータと判断し、消去（削除）する。ここでは、ユーザ端末１０上の対象となる全てのユーザデータ（マスタファイル）に関するメタデータ（インデックス情報）が収集されているが、削除されたユーザデータに関するメタデータ（インデックス情報）は収集されないため、受信したメタデータ（インデックス情報）と一致しないメタデータ（インデックス情報）は、当然に、削除したユーザデータに関するメタデータということになる。
【０１３１】
（６）ステップＳ８０６
ストレージサーバ２０のコアマネージャ実行部２２は、メタデータ格納部２４に格納されたメタデータ（インデックス情報）に対応しないユーザデータのキャッシュがキャッシュ格納部２３に格納されている場合、当該キャッシュをキャッシュ格納部２３から削除する。
【０１３２】
なお、ユーザ端末１０上のユーザデータ（マスタファイル）を削除した後も、ストレージサーバ２０上にキャッシュを残しておきたい場合、上記のユーザデータ削除処理を行わなくても良い。この場合、ユーザ端末１０のクライアントアプリ実行部１１が、ユーザからの入力操作等に従って、データ格納部１２に格納しているユーザデータの中から、指定されたユーザデータを削除した時点で、処理が完了する。また、メタデータ格納部２４に格納されたメタデータ（インデックス情報）から、削除されたユーザデータに関するメタデータ（インデックス情報）が消去されないようにする必要がある。例えば、メタデータ格納部２４に格納されたメタデータ（インデックス情報）の破棄／消去については、ユーザ端末１０のユーザからの指示があった場合にのみ行われるようにする。
【０１３３】
［ファイル選択画面例］
図１０を参照して、ＷｅｂＵＩ用のファイル選択画面の一例として、ファイル選択画面例について説明する。但し、実際には、この例に限定されない。
【０１３４】
ファイル選択画面には、ユーザを示すユーザ識別子（ユーザＩＤ）と、ユーザ端末を示す端末識別子（デバイスＩＤ）と、当該ユーザ端末のオンライン／オフラインを示す情報とが表示される。
【０１３５】
また、端末識別子（デバイスＩＤ）毎に、ユーザデータを選択するための選択チェックボックスと、当該ユーザデータの識別情報（ファイル名等）と、当該ユーザデータの更新日時と、当該ユーザデータのキャッシュの有無を示す情報と、ユーザが当該ユーザデータのキャッシュを一時的なキャッシュとするか恒久的なキャッシュとするかを選択するためのラジオボタンとが対応付けられたレコードがテーブル形式で表示される。
【０１３６】
なお、ユーザデータを選択するための選択チェックボックスが選択された際、ユーザデータがフォルダである場合、当該フォルダ内のファイルに関する情報が一覧表示されるようにしても良い。
【０１３７】
更に、ファイル選択画面には、取得ボタンと、書込ボタンが表示される。
【０１３８】
ユーザデータを選択するための選択チェックボックスが選択された後、取得ボタンが押下された場合、当該ユーザデータのキャッシュがストレージサーバ上に存在しているか、当該ユーザデータをユーザ端末から取得可能であれば、当該ユーザデータ／当該ユーザデータのキャッシュが表示／ダウンロードされる。
【０１３９】
ユーザデータを書き込む（ユーザ端末１０に登録する）ための書込ボタンが押下された場合、ユーザデータ書込画面が表示される。
【０１４０】
［ユーザデータ書込画面例］
図１１を参照して、ＷｅｂＵＩ用のユーザデータ登録画面の一例として、ユーザデータ書込画面例について説明する。但し、実際には、この例に限定されない。
【０１４１】
ユーザデータ書込画面には、書き込むユーザデータの保存先のユーザ端末を示す端末識別子（デバイスＩＤ）や、書き込むユーザデータを示す情報（所在情報、識別情報等）を入力／選択するための領域が表示される。
【０１４２】
更に、ユーザデータ書込画面には、送信ボタンと、戻るボタンが表示される。
【０１４３】
書き込むユーザデータの保存先のユーザ端末を示す端末識別子（デバイスＩＤ）や、書き込むユーザデータを示す情報が入力／選択された後、送信ボタンが押下されると、書き込むユーザデータがストレージサーバ２０に送信され、キャッシュされる。
【０１４４】
戻るボタンが押下されると、ユーザデータ書込画面からファイル選択画面に戻る。
【０１４５】
＜本発明の特徴＞
以上のように、本発明では、外部端末がストレージサーバを介してユーザ端末上のユーザデータを利用することができる。
【０１４６】
本発明では、ストレージサーバが、ユーザ端末上のユーザデータに関するメタデータ（インデックス情報）を収集しており、外部端末に対し、ユーザデータに関するメタデータ（インデックス情報）の一覧を提示する。外部端末は、メタデータ（インデックス情報）の一覧に基づいて、ユーザ端末上のユーザデータを要求する。
【０１４７】
このとき、ユーザ端末は、外部端末がユーザ端末上のユーザデータ本体を直接操作することがないように、ストレージサーバがユーザ端末上のユーザデータを取得し、間接的に、外部端末に提供する。このとき、ストレージサーバは、一旦、ユーザデータをキャッシュとして記憶している。ユーザデータが大量である場合には、一部のユーザデータのみキャッシュとして記憶する。ストレージサーバは、外部端末から要求されたユーザデータのキャッシュがストレージサーバ上にある場合には、当該キャッシュを当該ユーザデータとして外部端末に提供する。また、ストレージサーバは、要求されたユーザデータのキャッシュがストレージサーバ上にない場合には、ユーザ端末に対して、該当するユーザデータを要求し、取得できれば、当該ユーザデータをキャッシュとして記憶し、当該ユーザデータ又はそのキャッシュを外部端末に提供する。
【０１４８】
＜備考＞
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【０１４９】
１０…  ユーザ端末
１１…  クライアントアプリ実行部
１２…  データ格納部
２０…  ストレージサーバ
２１…  クライアントマネージャ実行部
２２…  コアマネージャ実行部
２３…  キャッシュ格納部
２４…  メタデータ格納部
２５…  ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）管理部
２６…  ＷｅｂＵＩ（Ｗｅｂ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）実行部
３０…  外部端末
【図１】
0005552720.tif 000002
【図２】
0005552720.tif 000003
【図３】
0005552720.tif 000004
【図４】
0005552720.tif 000005
【図５】
0005552720.tif 000006
【図６】
0005552720.tif 000007
【図７】
0005552720.tif 000008
【図８】
0005552720.tif 000009
【図９】
0005552720.tif 000010
【図１０】
0005552720.tif 000011
【図１１】
0005552720.tif 000012