説明

ストレージシステム、ストレージサーバ、ユーザデータ共有方法、及びプログラム

【課題】ストレージシステムにおいて、サーバにユーザデータをキャッシュするという概念を基に、複数のストレージ技術を組み合わせ、シームレスに統合する。
【解決手段】ストレージシステムは、ユーザ端末(10)と、ストレージサーバ(20)とを含む。ユーザ端末(10)は、ユーザデータをストレージサーバ(20)にキャッシュし、ユーザデータに関するメタデータを収集してストレージサーバ(20)に送信する。ストレージサーバ(20)は、ユーザデータのキャッシュ及びメタデータを格納し、認証済みの端末に対してメタデータに基づく情報を提示し、認証済みの端末からキャッシュの取得要求があった場合、キャッシュを認証済みの端末に送信する。これにより、外部端末(30)がストレージサーバ(20)を介してユーザ端末(10)上のユーザデータを利用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム、ストレージサーバ、ユーザデータ共有方法、及びプログラムに関し、特にクラウドコンピューティングにおけるネットワークストレージを利用したストレージシステム、ストレージサーバ、ユーザデータ共有方法、及びプログラムに関する。
【背景技術】
【0002】
クラウドコンピューティング(cloud computing)では、ユーザからは構成ノードが不明なネットワークである「クラウド」の中にある不特定多数のサーバのいずれか又はそれらの組合せが、ユーザに対してサービスを提供している。
【0003】
従来、オンラインストレージ型のサービスでは、クラウドを構成するサーバに予め専用に確保したストレージエリアを設け、確保したストレージエリアのサイズ(容量)に応じてユーザに課金している。ユーザは、クラウドを構成するサーバに保存したいファイル(各種データ)やフォルダ(ディレクトリ)を予め選定し、アプリケーションソフトウェア(以下、アプリケーション)に設定する。アプリケーションは、設定内容に従って、選定されたファイルを自動的に、確保したストレージエリアにアップロードする。オンラインストレージ型のサービスは、ミラーリング(mirroring)等の目的で使用されることが多い。
【0004】
また、クラウドストレージ同期型のサービスでは、PC(パソコン)やスマートフォン等の端末に対応した専用のアプリケーションを介し、端末と、クラウドを構成するサーバとの間で、ファイルを同期させる。これにより、各端末は、クラウドを構成するサーバを介してファイルを共有している状態になる。ある端末が同期状態のファイルを更新した場合、クラウドを構成するサーバを介して、他の端末側にある同期状態のファイルにも更新した内容が反映される。すなわち、クラウド上のファイルをマスタファイルとし、ある端末で更新された内容をクラウド上のマスタファイルに反映することで、他の端末側のファイルに更新された内容を反映している。
【0005】
また、宅内ストレージ型のサービスでは、エンドユーザに、ネットワーク機能を持ったストレージ装置を販売する。ネットワーク機能を持ったストレージ装置の例として、NAS(Network Attached Storage)が考えられる。NAS自体が持つネットワークファイル共有機能により、各エンドユーザが自宅に設置したNASの大容量ストレージをインターネット経由で共有する。
【0006】
しかし、オンラインストレージ型のサービスでは、仕組みが単純すぎるため、ファイルのバックアップ程度にしか活用できず、他のストレージサービスに比べて、機能的に劣る。
【0007】
また、オンラインストレージ型のサービスやクラウドストレージ同期型のサービスでは、基本的に、受け取ったファイルを全てクラウド側で確保しておく必要があるため、サービスを提供する事業者にストレージコストがかかる。このため、ユーザが使用する容量に応じた課金が必要となり、ユーザ負担が大きくなる。更に、ユーザに対して、超大容量のネットワークストレージを提供できない。
【0008】
また、宅内ストレージ型のサービスでは、ユーザ宅内のストレージがオフラインであると利用できない。多地点から多人数がアクセスすると、対象ユーザ宅の回線速度がボトルネックとなり、スケーラビリティ(scalability:拡張性)が低い。セキュリティ対策を個々のユーザの対応状況に依存しているため、ネットワークからのDoS攻撃等に対して脆弱である場合がある。
【0009】
関連する技術として、特許文献1(特開2010−198540号公報)に仮想フォルダ作成装置が開示されている。この関連技術では、クライアントとファイルサーバの間に管理装置が置かれている。クライアントは、GUI画面上で仮想フォルダの配置場所、仮想フォルダ名、メタデータの入力を受付け、入力されたメタデータに対応するメタデータが付与されたファイルをファイルサーバから検索する。その検索結果のファイルリストを作成した上、配置場所、仮想フォルダ名、メタデータに仮想フォルダ識別情報を付加して、管理装置内の仮想フォルダ設定データベースに保存する。ファイルリストを仮想フォルダ識別情報に対応したファイルリストとして、管理装置内の仮想フォルダキャッシュデータベースに保存する。
【0010】
しかし、上記技術では、宅内ユーザ端末と宅外ユーザ端末との間でファイルをやり取りする際に、いずれかのネットワーク接続環境の障害(速度の低下、接続切れ等)により、ファイルが送受信できないことがある。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2010−198540号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、ストレージサーバにユーザデータをキャッシュするという概念を基に、複数のストレージ技術を組み合わせ、シームレスに統合したストレージシステムを提供することである。
【課題を解決するための手段】
【0013】
本発明に係るユーザ端末と、ユーザ端末とネットワークを介して接続可能なストレージサーバとを含む。ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータをストレージサーバに送信する。ストレージサーバは、メタデータとユーザデータのキャッシュとを記憶する。また、認証済みの端末に対してメタデータに基づく情報を提示する。また、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する。また、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する。また、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する。また、ユーザデータを認証済みの端末に送信する。
【0014】
本発明に係るストレージサーバは、ユーザ端末とネットワークを介して接続する手段と、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、メタデータとユーザデータのキャッシュとを記憶する手段と、認証済みの端末に対してメタデータに基づく情報を提示する手段と、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認する手段と、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信する手段と、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得する手段と、ユーザデータを認証済みの端末に送信する手段とを具備する。
【0015】
本発明に係るユーザデータ共有方法は、計算機により実施されるユーザデータ共有方法であって、ユーザ端末とネットワークを介して接続することと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、メタデータとユーザデータのキャッシュとを記憶することと、認証済みの端末に対してメタデータに基づく情報を提示することと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認することと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信することと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得することと、ユーザデータを認証済みの端末に送信することとを含む。
【0016】
本発明に係るプログラムは、ユーザ端末とネットワークを介して接続するステップと、ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、メタデータとユーザデータのキャッシュとを記憶するステップと、認証済みの端末に対してメタデータに基づく情報を提示するステップと、認証済みの端末からユーザデータの取得要求があった場合、ユーザデータのキャッシュを記憶しているか確認するステップと、ユーザデータのキャッシュを記憶している場合、ユーザデータのキャッシュを認証済みの端末に送信するステップと、ユーザデータのキャッシュを記憶していない場合、ユーザ端末からユーザデータを取得するステップと、ユーザデータを認証済みの端末に送信するステップとを計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【0017】
エンドユーザに対し、従来のサービスと比べて、低コスト・大容量・高信頼性・高付加価値のネットワークストレージを提供できる。
【図面の簡単な説明】
【0018】
【図1】本発明に係るストレージシステムの構成例を示す図である。
【図2】本発明に係るメタデータ(インデックス情報)登録処理の流れを説明するための図である。
【図3】本発明に係るメタデータ(インデックス情報)取得処理の流れを説明するための図である。
【図4】本発明に係るサーバアクセス処理の流れを説明するための図である。
【図5】本発明に係るユーザデータ取得処理の流れを説明するための図である。
【図6】本発明に係るユーザデータ外部編集処理の流れを説明するための図である。
【図7】本発明に係るユーザデータ外部登録処理の流れを説明するための図である。
【図8】本発明に係るユーザデータ削除処理1の流れを説明するための図である。
【図9】本発明に係るユーザデータ削除処理2の流れを説明するための図である。
【図10】本発明に係るWebUI用のファイル選択画面の例を説明するための図である。
【図11】本発明に係るWebUI用のユーザデータ登録画面(ユーザデータ書込画面)の例を説明するための図である。
【発明を実施するための形態】
【0019】
<実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
【0020】
[システム構成]
図1に示すように、本発明に係るストレージシステムは、ユーザ端末10と、ストレージサーバ20と、外部端末30を含む。なお、各装置の台数は任意である。
【0021】
ユーザ端末10は、ユーザ宅内(所定の建物又は部屋の中)にあり、当該端末や、当該端末に接続されたサーバ/ストレージ装置等が保有するファイルやフォルダ等のユーザデータに関するメタデータ(インデックス情報:ユーザデータの識別に用い、ユーザデータを管理、検索、取得するためのデータ)をストレージサーバ20に送信し、メタデータ(インデックス情報)に基づいてユーザデータを送信した際等にキャッシュ(cache)する。「キャッシュする」とは、元のユーザデータの読み出しを高速化するために、当該ユーザデータの複製データである「キャッシュ」を、相対的に高速な記憶装置に蓄えておくことである。すなわち、ユーザ端末10は、当該端末が管理しているユーザデータのキャッシュをストレージサーバ20に格納する。また、ユーザ端末10は、他の端末によりストレージサーバ20に格納されたユーザデータのキャッシュを利用することもできる。ユーザ端末10は、常時/定期的に、ストレージサーバ20に接続されていると好適である。なお、ユーザ宅は、ユーザデータ本体の所在地(location)の一例に過ぎない。実際には、ユーザ宅に限定されない。
【0022】
ストレージサーバ20は、個々のユーザ端末10から取得したユーザデータのキャッシュを格納する。ストレージサーバ20は、クラウドを構成するサーバ(少なくとも1台のサーバ、複数のサーバの組合せも可)でも良い。また、ストレージサーバ20は、ユーザ端末10や外部端末30から、格納されたメタデータ(インデックス情報)を基にユーザデータの要求があった場合、要求元の端末やそのユーザに対する認証を行い、認証の結果、当該ユーザデータの利用権限が与えられている端末(認証済みの端末)やそのユーザに対し、格納されたキャッシュから、又はマスタファイルとなるユーザデータが格納されたユーザ端末10から当該ユーザデータを取得して、当該ユーザデータを提供する。
【0023】
外部端末30は、ユーザ宅外(上記ユーザ宅以外の場所)にあり、ユーザ端末10がストレージサーバ20に格納したキャッシュを利用することで、間接的に、ユーザ端末10が管理しているユーザデータを利用する。ここでは、外部端末30の例として、一般的なPC(パソコン)やスマートフォン等の端末を想定している。なお、外部端末30は、ユーザ端末10の1つでも良い。すなわち、外部端末30は、ユーザ端末10と同じ機能を有していても良い。例えば、ユーザ端末10のユーザが、他人のユーザデータのキャッシュを利用する場合、当該ユーザ端末10は外部端末30となる。また、同一ユーザにより使用される端末であっても、「ユーザ宅内で使用される端末」をユーザ端末10とし、「ユーザ宅外で使用される端末」を外部端末30としても良い。また、同一の端末であっても、「ユーザ宅内で使用される場合」にユーザ端末10とし、「ユーザ宅外で使用される場合」に外部端末30とすることもできる。ユーザ宅内か否かは、端末や中継機器のIPアドレスやGPS情報(位置情報)等により判別可能であるが、ユーザ自身がストレージサーバ20やクライアントアプリにて設定しても良い。
【0024】
[ユーザ端末の構成]
ユーザ端末10は、クライアントアプリ実行部11と、データ格納部12を備える。
【0025】
クライアントアプリ実行部11は、ユーザからの実行操作等に従って、或いはユーザ端末10の起動時に、クライアントアプリ(クライアント用のアプリケーションソフトウェア)を実行する。クライアントアプリ実行部11は、クライアントアプリに従って、ユーザデータに関するメタデータ(インデックス情報)を収集してストレージサーバ20に送信する。また、クライアントアプリ実行部11は、クライアントアプリに従って、ストレージサーバ20経由で、外部端末30からメタデータ(インデックス情報)に基づく要求があったユーザデータを、ストレージサーバ20に送信してキャッシュする。また、クライアントアプリ実行部11は、クライアントアプリに従って、予め指定したユーザデータをストレージサーバ20に送信してキャッシュしても良い。このとき、クライアントアプリ実行部11は、クライアントアプリに従って、ユーザ端末10とストレージサーバ20との間で、ユーザデータを同期しても良い。同期の方式は、「プッシュ型」(push type)/「プル型」(pull type)のいずれでも良い。
【0026】
なお、クライアントアプリ実行部11は、ストレージサーバ20に格納するキャッシュのサイズが規定値よりも大きい場合、キャッシュをブロック単位に分割し、全部又は差分を、ブロック毎にストレージサーバ20に送信する。反対に、ストレージサーバ20から取得するキャッシュのサイズが規定値よりも大きい場合には、ブロック単位に分割された当該キャッシュの全部又は差分を、ブロック毎にストレージサーバ20から受信する。
【0027】
また、クライアントアプリ実行部11は、予め指定されたユーザデータの内容に変更(更新、追加、削除等)がある場合、変更されたユーザデータに関するメタデータ(インデックス情報)をストレージサーバ20に送信し、変更されたユーザデータに関するメタデータ(インデックス情報)をストレージサーバ20に格納する。例えば、変更後のユーザデータに関するメタデータ(インデックス情報)を、変更前のユーザデータに関するメタデータ(インデックス情報)に上書きする。変更前のユーザデータがキャッシュとしてストレージサーバ20に格納されている場合、変更後のユーザデータをストレージサーバ20に送信し、ストレージサーバ20に格納されたキャッシュを更新しても良い。例えば、変更後のユーザデータのキャッシュを、変更前のユーザデータのキャッシュに上書きする。
【0028】
データ格納部12は、マスタファイルとなるユーザデータ本体を格納する。データ格納部12は、ユーザ端末10の内部の記憶装置に限らず、外部のファイルサーバ等でも良い。また、データ格納部12は、記憶装置内の所定の記憶領域でも良い。すなわち、データ格納部12は、ユーザ端末10のユーザにより管理されていれば良い。また、データ格納部12は、常時/定期的に、ネットワーク接続されていると好適である。
【0029】
[ストレージサーバの構成]
ストレージサーバ20は、クライアントマネージャ実行部21と、コアマネージャ実行部22と、キャッシュ格納部23と、メタデータ格納部24と、ACL(Access Control List)管理部25と、WebUI(Web User Interface)実行部26を備える。
【0030】
クライアントマネージャ実行部21は、クライアントアプリに対応するクライアントマネージャ(サーバ用のアプリケーション)を実行する。クライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11と通信し、個々のユーザ端末10のデータ格納部12に格納されたユーザデータや、当該ユーザデータに関するメタデータ(インデックス情報)を取得する。
【0031】
コアマネージャ実行部22は、クライアントマネージャに対応するコアマネージャ(サーバ用のアプリケーション)を実行する。コアマネージャ実行部22は、クライアントマネージャ実行部21を管理し、個々のユーザデータやメタデータ(インデックス情報)を収集する。また、コアマネージャ実行部22は、ストレージサーバ20の内部制御を行う。
【0032】
キャッシュ格納部23は、ユーザデータのキャッシュを格納する。ここでは、キャッシュ格納部23は、ユーザ端末毎(或いはユーザ毎)に、キャッシュを格納する領域を確保する。なお、ストレージサーバ20を運営する事業者は、キャッシュ自体の容量(サイズ)やキャッシュを格納する領域の容量を課金の対象とすることができる。例えば、一定容量まで無料とし、超過した分についてユーザに課金する。
【0033】
なお、キャッシュには、一時的なキャッシュと、恒久的なキャッシュ(permanent)がある。一時的なキャッシュは、確保された領域に余裕がなくなった場合に、自動的に領域内から削除されるキャッシュである。恒久的なキャッシュは、確保された領域に余裕がなくなった場合でも、自動的には削除されないキャッシュである。但し、ユーザ端末10のユーザの操作に従って、恒久的なキャッシュを削除することは可能である。一時的なキャッシュとするか、恒久的なキャッシュとするかは、ユーザ端末10のユーザがキャッシュ毎に設定できるものとする。
【0034】
メタデータ格納部24は、個々のユーザデータに関するメタデータ(インデックス情報)を格納する。メタデータ(インデックス情報)の内容については後述する。また、メタデータ格納部24は、メタデータに関連付けて、ユーザデータのキャッシュの有無、ユーザ識別子、端末識別子等の情報を格納するようにしても良い。
【0035】
ACL管理部25は、個々のユーザ/端末のアクセス権限や、個々のユーザ/端末がアクセス可能なファイル等の資源を列挙したリスト(ACL)を格納する。ここでは、ACLの管理対象を自分以外の複数の宅外ユーザ/端末にも対応できるように拡張し、複数の宅外ユーザ/端末にメタデータ(インデックス情報)を公開して、個々のユーザ/端末からキャッシュの参照や編集ができるようにする。ユーザ端末10は、ユーザからの入力操作等に従って、個々のユーザ/端末のアクセス権限や、個々のユーザ/端末がアクセス可能なファイル等の設定を行う。ストレージサーバ20は、ユーザ端末10からの設定に基づいて、ACLを作成する。なお、実際には、ユーザ端末10は、ユーザからの入力操作等に従って、直接ACLを編集しても良い。また、ユーザ端末10は、アクセス頻度の高いキャッシュ等を有料情報として課金し、支払い料金に応じたアクセス権限を付与するように設定することも可能である。ストレージサーバ20を運営する事業者は、支払い料金の一部を管理料/手数料として徴収できる。
【0036】
WebUI実行部26は、ユーザ端末10や外部端末30に対し、ネットワークを介して、データの表示やデータの入力を行うためのWebUIを提供する。WebUIの例として、ブラウザ等に表示されるWebページや、ネットワーク対応のアプリケーションの操作画面等が考えられる。
【0037】
[メタデータ(インデックス情報)の内容]
メタデータ(インデックス情報)の内容の例として、以下の(1)〜(3)のいずれか又は組合せが考えられる。
【0038】
(1)一般的なファイル情報
識別情報(フルパスのファイル名等)、作成/更新日時、ファイルサイズ等
【0039】
(2)主なプロパティ
文書データ:タイトル名、アプリケーション名、属性情報等
音楽データ:曲名、アルバム名、アーティスト情報、曲の長さ、その他のタグ情報等
画像データ:縦横サイズ、解像度、カメラ情報、サムネイル画像等
【0040】
(3)システム情報
ハッシュ関数(一方向要約関数):MD5(Message Digest 5)等
ブロック情報、端末識別子(デバイスID)等
【0041】
但し、実際には、これらの例に限定されない。
【0042】
[ハードウェアの例示]
以下に、本発明に係るストレージシステムを実現するための具体的なハードウェアの例について説明する。
【0043】
ここでは、ユーザ端末10、ストレージサーバ20、及び外部端末30の例として、PC(パソコン)、携帯電話機、スマートフォン、スマートブック、アプライアンス(appliance)、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、端末やサーバに限らず、中継機器や周辺機器でも良い。また、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。
【0044】
図示しないが、ユーザ端末10、ストレージサーバ20、及び外部端末30の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。
【0045】
上記のプロセッサの例として、CPU(Central Processing Unit)、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路(IC:Integrated Circuit)等が考えられる。
【0046】
上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。また、バッファ(buffer)やレジスタ(register)でも良い。或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)等を用いたストレージ装置でも良い。
【0047】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。従って、電子機器等に搭載される1チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例が考えられる。
【0048】
上記のインターフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。
【0049】
また、ネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。
【0050】
なお、ユーザ端末10、ストレージサーバ20、及び外部端末30の各々の内部の構成要素は、モジュール(module)、コンポーネント(component)、或いは専用デバイス、又はこれらの起動(呼出)プログラムでも良い。
【0051】
但し、実際には、これらの例に限定されない。
【0052】
[処理手順]
以下に、本発明に係るストレージシステムにおける処理の流れについて説明する。
【0053】
[メタデータ(インデックス情報)登録処理]
図2を参照して、ユーザ端末10からストレージサーバ20にメタデータ(インデックス情報)を格納する際の処理の流れについて説明する。
【0054】
(1)ステップS101
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの実行操作等に従って、或いはユーザ端末10の起動時に、クライアントアプリを実行する。
【0055】
(2)ステップS102
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作/事前設定情報等に従って、ストレージサーバ20に対し、ユーザデータを格納するデータ格納部12を指定し、設定する。必要であれば、ユーザデータ自体を指定し、設定しても良い。なお、外部端末30に送信しても良いユーザデータを格納するデータ格納部12と、外部端末30から受信したユーザデータを格納するデータ格納部12は、同じ記憶装置/記憶領域でも良いし、異なる記憶装置/記憶領域でも良い。また、クライアントアプリ実行部11は、外部端末30に送信しても良いユーザデータや、外部端末30から受信したユーザデータをデータ格納部12に格納する。クライアントアプリ実行部11は、ユーザからの入力操作等に従って、ストレージサーバ20に対し、指定されたユーザデータに関するアクセス権限等の設定を行う。また、クライアントアプリ実行部11は、データ格納部12に格納しているユーザデータ自体/データ格納部12自体に対しては、ストレージサーバ20のみアクセス可能とする制限をかける。例えば、クライアントアプリ実行部11は、データ格納部12に格納しているユーザデータのアクセス許可を、クライアントアプリに対して付与し、ストレージサーバ20をSSL(Secure Socket Layer)等によるサーバ認証やIPアドレス等で識別し、ストレージサーバ20からのアクセス要求のみ受諾し、処理を実行するようにする。また、ストレージサーバ20以外からのアクセス要求は受け付けず、処理を実行しないようにする。
【0056】
(3)ステップS103
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの作成・変更時に、データ格納部12に格納されている(又は予め指定されている)ユーザデータに関するメタデータ(インデックス情報)を収集する。クライアントアプリ実行部11は、収集されたメタデータ(インデックス情報)を、一括して、データベースやテーブル等の一覧情報の形式にしても良い。
【0057】
(4)ステップS104
ユーザ端末10のクライアントアプリ実行部11は、ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)と共に、収集されたメタデータ(インデックス情報)を、ストレージサーバ20に送信する。クライアントアプリ実行部11は、ユーザデータの作成・変更時に、変更があったメタデータ(インデックス情報)を個別にストレージサーバ20に送信しても良いし、収集されたメタデータ(インデックス情報)を一覧情報の形式にして保有しておき、定期的にストレージサーバ20に送信しても良い。これにより、クライアントアプリ実行部11は、ユーザ端末10とストレージサーバ20との間で、ユーザデータに関するメタデータ(インデックス情報)を同期させることができる。なお、ユーザ端末10のクライアントアプリ実行部11は、収集されたメタデータ(インデックス情報)をストレージサーバ20に送信する際/ストレージサーバ20や外部端末30からメタデータ(インデックス情報)に基づいて要求を受けた際に/ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの作成・変更時に、ユーザデータを取得し、そのユーザデータをストレージサーバ20にキャッシュするようにしても良い。
【0058】
[メタデータ(インデックス情報)取得処理]
図3を参照して、ストレージサーバ20上で、ユーザ端末10からメタデータ(インデックス情報)を取得する際の処理の流れについて説明する。
【0059】
(1)ステップS201
ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11との接続を確立し、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)と共に、メタデータ(インデックス情報)を受信する。メタデータ(インデックス情報)は、一覧情報の形式でも良い。
【0060】
(2)ステップS202
ストレージサーバ20のコアマネージャ実行部22は、受信したメタデータ(インデックス情報)と、ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)とを対応付けて、メタデータ格納部24に格納する。メタデータ(インデックス情報)は、一覧情報の形式でも良い。このとき、コアマネージャ実行部22は、既に同じユーザ端末10の識別情報に対応するメタデータ(インデックス情報)がある場合、古いメタデータ(インデックス情報)の削除や上書きを行い、メタデータ(インデックス情報)を更新する。
【0061】
(3)ステップS203
ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)に対応しないユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、当該キャッシュをキャッシュ格納部23から削除する。反対に、コアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)に対応するユーザデータのキャッシュがキャッシュ格納部23に格納されていない場合、キャッシュ格納部23の容量に余裕(空き)があれば、クライアントアプリ実行部11を介して、当該ユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納しても良い。
【0062】
(4)ステップS204
ストレージサーバ20のコアマネージャ実行部22は、個々のユーザ/端末のアクセス権限や、アクセス可能なファイル等の資源を列挙したリスト(ACL)を作成し、ACLをACL管理部25に格納する。
【0063】
このとき、ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10のデータ格納部12に格納されている予め指定されたユーザデータを取得するようにしても良い。なお、実際には、クライアントマネージャ実行部21は、クライアントアプリ実行部11に対して当該ユーザデータの取得要求を送信し、応答として当該ユーザデータを受信しても良い。
【0064】
また、ストレージサーバ20のコアマネージャ実行部22は、クライアントマネージャ実行部21からユーザデータを取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納するようにしても良い。
【0065】
[サーバアクセス処理]
図4を参照して、外部端末30(他のユーザ端末10を含む)からストレージサーバ20にアクセスする際の処理の流れについて説明する。
【0066】
(1)ステップS301
ストレージサーバ20のWebUI実行部26は、外部端末30からのアクセス要求に応じて、WebUIの初期画面データを外部端末30に送信する。なお、ストレージサーバ20のWebUI実行部26は、WebUIの初期画面データを、Webページとしてネットワーク上に公開しても良い。ここでは、WebUIの初期画面データには、認証情報(ユーザ識別子とパスワード等)の入力欄が設けられているものとする。
【0067】
(2)ステップS302
外部端末30は、当該端末のユーザからの入力操作等に従って、WebUIの初期画面データに認証情報(ユーザ識別子とパスワード等)を入力し、ストレージサーバ20に送信する。
【0068】
(3)ステップS303
ストレージサーバ20のWebUI実行部26は、外部端末30からWebUIの初期画面データに入力された認証情報(ユーザ識別子とパスワード等)を受信した場合、認証情報(ユーザ識別子とパスワード等)をコアマネージャ実行部22に渡す。
【0069】
(4)ステップS304
ストレージサーバ20のコアマネージャ実行部22は、ACL管理部25に格納されたACLに基づいて、認証情報(ユーザ識別子とパスワード等)に対する認証を行う。
【0070】
(5)ステップS305
ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対して、所定のユーザデータに関するアクセス権限が与えられている場合、当該ユーザデータに関するメタデータ(インデックス情報)を参照し、当該ユーザデータのキャッシュがキャッシュ格納部23に格納されているか(キャッシュの有無を)確認する。
【0071】
(6)ステップS306
ストレージサーバ20のコアマネージャ実行部22は、ストレージサーバ20のクライアントマネージャ実行部21とユーザ端末10のクライアントアプリ実行部11との接続状況を確認し、ユーザ端末10がオンラインであるか確認する。なお、実際には、クライアントアプリの動作状況や、通信回線速度等を確認しても良い。
【0072】
(7)ステップS307
ストレージサーバ20のコアマネージャ実行部22は、確認結果を基に、WebUI用のファイル選択画面データを作成する。ここでは、WebUI用のファイル選択画面データには、ユーザデータに関するメタデータ(インデックス情報)と共に、キャッシュの有無を示す情報や、ユーザ端末10のオンライン/オフラインを示す情報、選択したユーザデータを取得するための取得ボタン等が含まれるものとする。なお、外部端末30に対してアクセス権限が与えられていないユーザデータについては、ユーザデータに関するメタデータ(インデックス情報)やキャッシュの有無を示す情報がWebUI用のファイル選択画面データに含まれていなくても良い。
【0073】
(8)ステップS308
ストレージサーバ20のWebUI実行部26は、WebUI用のファイル選択画面データを外部端末30に送信する。
【0074】
ここでは、外部端末30は、WebUIを介してストレージサーバ20にアクセスしているが、実際には、クライアントアプリを用いてストレージサーバ20にアクセスしても良い。
【0075】
[ユーザデータ取得処理]
図5を参照して、外部端末30(他のユーザ端末10を含む)がストレージサーバ20を介してキャッシュ等を利用する際の処理の流れについて説明する。
【0076】
(1)ステップS401
外部端末30は、WebUI用のファイル選択画面データに基づいて、WebUI用のファイル選択画面を表示する。外部端末30は、ユーザからの入力操作等に従って、WebUI用のファイル選択画面に表示された所定のユーザデータに関するメタデータ(インデックス情報)を指定し、取得ボタンが押下された際、当該ユーザデータの識別情報をストレージサーバ20に送信する。
【0077】
(2)ステップS402
ストレージサーバ20のWebUI実行部26は、外部端末30から、所定のユーザデータの識別情報を受信した場合、この識別情報をコアマネージャ実行部22に渡す。
【0078】
(3)ステップS403
ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されているか(キャッシュの有無を)確認する。なお、コアマネージャ実行部22は、キャッシュの有無の確認に先立って、ACLに基づいて、外部端末30又はそのユーザのアクセス権限を確認し、この識別情報に該当するユーザデータを外部端末30に送信しても良いか判断するようにしても良い。
【0079】
(4)ステップS404
ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、キャッシュ格納部23から当該キャッシュを読み出し、当該キャッシュを当該ユーザデータとして外部端末30に送信する。
【0080】
(5)ステップS405
ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータのキャッシュがキャッシュ格納部23に格納されていない場合、この識別情報に該当するユーザデータを管理するユーザ端末10を、当該ユーザデータに関連付けられた端末識別子に基づいて特定し、特定されたユーザ端末10のクライアントアプリ実行部11を介して、当該ユーザ端末10のデータ格納部12にアクセスし、この識別情報に該当するユーザデータを抽出・取得し、当該ユーザデータをキャッシュとしてキャッシュ格納部23に格納する。なお、実際には、クライアントマネージャ実行部21は、クライアントアプリ実行部11に対してキャッシュ取得要求を送信し、応答としてユーザデータを受信し、当該ユーザデータのキャッシュをキャッシュ格納部23に格納しても良い。
【0081】
(6)ステップS406
ストレージサーバ20のコアマネージャ実行部22は、当該ユーザデータのキャッシュをキャッシュ格納部23に格納した場合、当該ユーザデータのキャッシュの有無を示す情報を更新し、WebUI用のファイル選択画面データに反映し、キャッシュ格納部23から当該キャッシュを読み出して外部端末30に送信する。なお、ストレージサーバ20は、キャッシュ格納部23に格納したキャッシュではなく、ユーザ端末10から取得したユーザデータを外部端末30に送信しても良い。すなわち、キャッシュ格納部23へのユーザデータのキャッシュの格納と、外部端末30へのユーザデータの送信とは、並列に処理しても良い。
【0082】
(7)ステップS407
ストレージサーバ20のコアマネージャ実行部22は、この識別情報に該当するユーザデータの取得処理を開始してから、規定時間内に、当該ユーザデータを管理するユーザ端末10から、当該ユーザデータを取得できない場合、当該ユーザ端末10のネットワーク接続環境や、当該ユーザ端末10自体(電源等)に障害が発生していると判断し、キャッシュ取得エラーや、ユーザ端末10のオフラインを示す情報を、WebUI用のファイル選択画面データに反映し、外部端末30に通知する。
【0083】
[端末とサーバ間の送受信処理]
ユーザ端末10とストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質に応じてユーザデータの送受信処理を変更することも考えられる。
【0084】
例えば、ユーザ端末10とストレージサーバ20との間のネットワーク接続環境の通信品質が高品質で、ストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質が低品質である場合、ストレージサーバ20は、ユーザ端末10から、ユーザデータをファイル/フォルダ単位で一括して受信する。このとき、外部端末30がクライアントアプリを実行していれば、その受信したユーザデータ又はそのユーザデータのキャッシュをブロック単位に分割して、ブロック毎に外部端末30に送信する。ブロック単位での送受信には、クライアントアプリが必要である。また、バイトレンジ操作対応のWebクライアントであれば、途中からのデータ送受信も可能である。
【0085】
反対に、ユーザ端末10とストレージサーバ20との間のネットワーク接続環境の通信品質が低品質で、ストレージサーバ20と外部端末30との間のネットワーク接続環境の通信品質が高品質である場合、ストレージサーバ20は、ユーザ端末10のユーザデータをブロック単位に分割して、ブロック毎にユーザデータを受信し、当該ユーザデータ又は当該ユーザデータのキャッシュをファイル/フォルダ単位で一括して外部端末30に送信する。
【0086】
これにより、動画や音楽のデータのストリーミング配信等で、再生位置移動、トランスコードデータの一時保存や次のコンテンツの先読みを行い、最初のコンテンツ(1話目、1曲目等)は遅くても次のコンテンツ(2話目、2曲目等)以降は先読みでストレージサーバにキャッシュしておき、早く読み出せるようにすることが可能になる。
【0087】
ここでは、「ユーザ端末10→ストレージサーバ20→外部端末30」の流れでのユーザデータの送信について説明したが、「外部端末30→ストレージサーバ20→ユーザ端末10」の流れでのユーザデータの送信についても、同様に実施することが可能である。
【0088】
[キャッシュ削除のタイミング]
例えば、ストレージサーバ20のコアマネージャ実行部22は、以下のようなタイミングでキャッシュを削除する。
【0089】
(1)既定時間
ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10がオフライン(非アクティブ)になってから既定時間後に、当該ユーザ端末10のユーザデータのキャッシュをキャッシュ格納部23から削除する。
【0090】
(2)既定容量
ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10のために確保した領域に蓄積されたキャッシュが既定容量に達した時、当該ユーザ端末10のユーザデータのキャッシュをキャッシュ格納部23から削除する。
【0091】
[削除するキャッシュの順番]
キャッシュをキャッシュ格納部23から削除する際には、以下のような順番でキャッシュを削除する。
【0092】
(1)利用頻度
ストレージサーバ20のコアマネージャ実行部22は、登録された日時が古いキャッシュやアクセス頻度が低いキャッシュから順に削除する。
【0093】
(2)ユーザからの要求
ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10から削除要求があったユーザデータのキャッシュを削除する。なお、反対に、ユーザ端末10から保存要求があったユーザデータのキャッシュ以外を削除するようにしても良い。
【0094】
(3)連携
ストレージサーバ20のコアマネージャ実行部22は、ユーザ端末10がデータ格納部12上で管理するユーザデータが削除されたことを検出した際に(又は通知を受けた際に)、当該ユーザデータのキャッシュを削除する。
【0095】
なお、ストレージサーバ20のコアマネージャ実行部22は、ユーザデータのキャッシュをキャッシュ格納部23から削除した後、削除されたユーザデータのキャッシュの有無を示す情報を更新する。
【0096】
[ユーザデータ外部編集処理]
図6を参照して、外部端末30(他のユーザ端末10を含む)から、ストレージサーバ20上にキャッシュされているユーザデータを編集する際の処理の流れについて説明する。
【0097】
例えば、ユーザ端末10のユーザ以外の者がユーザ宅外の外部端末30を用いてキャッシュされているユーザデータを編集する場合に限らず、ユーザ端末10のユーザがユーザ宅外の外部端末30を用いてキャッシュされているユーザデータを編集する場合も考えられる。
【0098】
(1)ステップS501
外部端末30は、ストレージサーバ20からキャッシュされているユーザデータを受信する。このとき、ストレージサーバ20のコアマネージャ実行部22は、キャッシュされているユーザデータの内容を含むWebUI用のユーザデータ編集画面データを作成し、WebUI実行部26を介して、WebUI用のユーザデータ編集画面データを外部端末30に送信しても良い。
【0099】
(2)ステップS502
外部端末30は、キャッシュされているユーザデータの内容を参照する。このとき、外部端末30は、ストレージサーバ20から受信したWebUI用のユーザデータ編集画面データに基づき、WebUI用のユーザデータ編集画面を表示しても良い。なお、WebUI用のユーザデータ編集画面には、キャッシュされているユーザデータの識別情報(ファイル名等)及び内容を直接表示しても良いし、或いは、キャッシュされているユーザデータのアイコン等を表示しておき、当該アイコン等がクリックされた際に、当該キャッシュされているユーザデータの内容を表示するようにしても良い。
【0100】
(3)ステップS503
外部端末30は、当該端末のユーザからの入力操作等に従って、キャッシュされているユーザデータに対する編集を行う。このとき、外部端末30は、WebUI用のユーザデータ編集画面に表示された編集ボタンが押下された際に、当該キャッシュされているユーザデータの内容を編集するための画面を表示するようにしても良い。なお、実際には、当該キャッシュされているユーザデータの内容を編集するため、一般的なファイル編集用アプリケーションを起動しても良い。外部端末30は、WebUI用のユーザデータ編集画面、又はファイル編集用アプリケーション上で、キャッシュされているユーザデータに対する編集を行う。
【0101】
(4)ステップS504
外部端末30は、キャッシュされているユーザデータに対する編集が完了した場合、編集後のユーザデータをストレージサーバ20に送信する。このとき、外部端末30は、当該端末のユーザからの入力操作等に従って、WebUI用のユーザデータ編集画面に表示された完了ボタンが押下された際に、編集後のユーザデータをストレージサーバ20に送信するようにしても良い。
【0102】
(5)ステップS505
ストレージサーバ20のWebUI実行部26は、外部端末30から編集後のユーザデータを受信した場合、編集後のユーザデータをコアマネージャ実行部22に渡す。
【0103】
(6)ステップS506
ストレージサーバ20のコアマネージャ実行部22は、編集後のユーザデータを受け取った場合、ACL管理部25に格納されたACLに基づいて、外部端末30の認証情報(ユーザ識別子とパスワード等)に対する認証を行う。なお、当該認証は、編集後のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末30からストレージサーバ20に最初にアクセスした際に行われた認証を、当該認証としても良い。
【0104】
(7)ステップS507
ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対し、当該ユーザデータを更新する権限が与えられている場合、メタデータ格納部24に格納されたメタデータを基に、編集後のユーザデータを、キャッシュ格納部23に格納されたキャッシュに反映する。例えば、コアマネージャ実行部22は、キャッシュ格納部23に格納されたキャッシュのうち、編集後のユーザデータと識別情報(ファイル名等)が同じキャッシュの内容に、編集後のユーザデータの内容を上書きする。或いは、コアマネージャ実行部22は、キャッシュ格納部23に格納されたキャッシュを、編集後のユーザデータに差し替える。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)を更新しても良い。例えば、ストレージサーバ20のコアマネージャ実行部22は、編集後のユーザデータに関するメタデータ(インデックス情報)を、メタデータ格納部24に格納されたメタデータ(インデックス情報)に反映する。
【0105】
(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に送信しても良い。
【0106】
(9)ステップS509
ユーザ端末10のクライアントアプリ実行部11は、編集後のユーザデータをデータ格納部12に格納した場合、ユーザデータに関するメタデータ(インデックス情報)を更新する。例えば、ユーザ端末10のクライアントアプリ実行部11は、編集後のユーザデータに基づくユーザデータに関するメタデータ(インデックス情報)を収集し、ストレージサーバ20に反映する。なお、ストレージサーバ20上で既に当該ユーザデータに関するメタデータ(インデックス情報)が更新されている場合、この処理を行わなくても良い。
【0107】
[ユーザデータ外部登録処理]
図7を参照して、外部端末30(他のユーザ端末10を含む)からストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する際の処理の流れについて説明する。
【0108】
例えば、ユーザ端末10のユーザ以外の者がユーザ宅外の外部端末30からストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する場合に限らず、ユーザ端末10のユーザ自身がユーザ宅外の外部端末30からストレージサーバ20を介してユーザ端末10に新規のユーザデータを登録する場合も考えられる。
【0109】
(1)ステップS601
外部端末30は、当該端末のユーザからの入力操作等に従って、一旦、新規のユーザデータをストレージサーバ20に送信する。このとき、ストレージサーバ20のコアマネージャ実行部22は、WebUI用のユーザデータ登録画面データを作成し、WebUI実行部26を介して、WebUI用のユーザデータ登録画面データを外部端末30に送信しても良い。外部端末30は、WebUI用のユーザデータ登録画面データに基づき、WebUI用のユーザデータ登録画面を表示し、WebUI用のユーザデータ登録画面に表示された送信ボタンが押下された際に、新規のユーザデータをストレージサーバ20に送信する。
【0110】
(2)ステップS602
ストレージサーバ20のWebUI実行部26は、外部端末30から新規のユーザデータを受信した場合、新規のユーザデータをコアマネージャ実行部22に渡す。
【0111】
(3)ステップS603
ストレージサーバ20のコアマネージャ実行部22は、新規のユーザデータを受け取った場合、ACL管理部25に格納されたACLに基づいて、外部端末30の認証情報(ユーザ識別子とパスワード等)に対する認証を行う。なお、当該認証は、新規のユーザデータを受け取った時点に限らず、事前に行われていても良い。例えば、外部端末30からストレージサーバ20に最初にアクセスした際に行われた認証を、当該認証としても良い。
【0112】
(4)ステップS604
ストレージサーバ20のコアマネージャ実行部22は、認証の結果、外部端末30に対し、新規のユーザデータを登録する権限が与えられている場合、新規のユーザデータのキャッシュをキャッシュ格納部23に格納する。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)を更新しても良い。例えば、ストレージサーバ20のコアマネージャ実行部22は、新規のユーザデータに関するメタデータ(インデックス情報)をメタデータ格納部24に格納されたメタデータ(インデックス情報)に反映する。
【0113】
(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に送信しても良い。
【0114】
(6)ステップS606
ユーザ端末10のクライアントアプリ実行部11は、ユーザデータに関するメタデータ(インデックス情報)を更新する。例えば、ユーザ端末10のクライアントアプリ実行部11は、新規のユーザデータに関するメタデータ(インデックス情報)を収集し、ストレージサーバ20に反映する。なお、ストレージサーバ20上で既に当該ユーザデータに関するメタデータ(インデックス情報)が更新されている場合、この処理を行わなくても良い。
【0115】
[ユーザ端末のオフライン時の接続試行]
必須ではないが、図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にアクセスできない旨を通知するようにしても良い。
【0116】
また、図6に示す「ユーザデータ外部編集処理」や図7に示す「ユーザデータ外部登録処理」において、ストレージサーバ20は、キャッシュ格納部23に格納したキャッシュではなく、外部端末30から取得したユーザデータをユーザ端末10に送信しても良い。すなわち、キャッシュ格納部23へのユーザデータのキャッシュの格納と、ユーザ端末10へのユーザデータの送信とは、並列に処理しても良い。
【0117】
[ユーザデータ外部登録処理を利用したユーザデータ外部編集処理]
なお、図7に示す「ユーザデータ外部登録処理」において、「新規のユーザデータ」を、「編集後のキャッシュ」と読み替えた場合、この「ユーザデータ外部登録処理」を「ユーザデータ外部編集処理」とすることができる。すなわち、WebUI上でユーザデータの編集を行わない場合、図7に示す「ユーザデータ外部登録処理」のみで対応可能となり、図6に示す「ユーザデータ外部編集処理」は不要となる。
【0118】
「ユーザデータ外部登録処理」により「ユーザデータ外部編集処理」を行う場合、ストレージサーバ20のコアマネージャ実行部22は、受信したユーザデータが「編集後のユーザデータ」であるか「新規のユーザデータ」であるかを判断するために、受信したユーザデータの識別情報(ファイル名等)やその他の属性情報と、メタデータ格納部24に格納されたメタデータ(インデックス情報)とを比較し判断するようにしても良い。
【0119】
[ユーザデータ削除処理1]
図8を参照して、ユーザ端末10上のユーザデータ(マスタファイル)を削除する際の第1の処理の流れについて説明する。
【0120】
(1)ステップS701
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末10のクライアントアプリ実行部11は、クライアントアプリを用いずに、OSのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。
【0121】
(2)ステップS702
クライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの削除時に、ユーザデータに関するメタデータを更新すると共に、ユーザデータの削除履歴や更新前のメタデータとの比較により、削除されたユーザデータを特定し、当該ユーザデータのキャッシュの削除要求をストレージサーバ20に送信する。
【0122】
(3)ステップS703
ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11との接続を確立し、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザデータのキャッシュの削除要求を受信する。
【0123】
(4)ステップS704
ストレージサーバ20のコアマネージャ実行部22は、削除要求があったユーザデータのキャッシュをキャッシュ格納部23から削除する。
【0124】
(5)ステップS705
コアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)を更新する。例えば、コアマネージャ実行部22は、キャッシュの削除要求があったユーザデータに関するメタデータ(インデックス情報)を破棄する。
【0125】
[ユーザデータ削除処理2]
図9を参照して、ユーザ端末10上のユーザデータ(マスタファイル)を削除する際の第2の処理の流れについて説明する。
【0126】
(1)ステップS801
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除する。なお、実際には、ユーザ端末10のクライアントアプリ実行部11は、クライアントアプリを用いずに、OSのファイル管理プログラムを利用して、ユーザから指定されたユーザデータを削除するようにしても良い。
【0127】
(2)ステップS802
ユーザ端末10のクライアントアプリ実行部11は、ユーザからの指示を受けた際に/定期的に/ユーザ端末又はクライアントアプリの起動時に/ユーザデータの削除時に、ユーザデータに関するメタデータ(インデックス情報)を収集する。ここでは、ユーザ端末10のデータ格納部12上の対象となる全てのユーザデータ(マスタファイル)に関するメタデータ(インデックス情報)を収集する。このとき、削除されたユーザデータに関するメタデータ(インデックス情報)は収集されない。
【0128】
(3)ステップS803
ユーザ端末10のクライアントアプリ実行部11は、ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)と共に、収集されたメタデータ(インデックス情報)を、ストレージサーバ20に送信する。
【0129】
(4)ステップS804
ストレージサーバ20のクライアントマネージャ実行部21は、個々のユーザ端末10のクライアントアプリ実行部11から、当該ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)と共に、メタデータ(インデックス情報)を受信する。
【0130】
(5)ステップS805
ストレージサーバ20のコアマネージャ実行部22は、受信したメタデータ(インデックス情報)と、ユーザ端末10の識別情報(ユーザ識別子、端末識別子、IPアドレス等)とを対応付けて、メタデータ格納部24に格納する。このとき、ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)を更新し、受信したメタデータ(インデックス情報)と一致しないメタデータ(インデックス情報)がメタデータ格納部24に格納されている場合、当該メタデータ(インデックス情報)を、削除したユーザデータに関するメタデータと判断し、消去(削除)する。ここでは、ユーザ端末10上の対象となる全てのユーザデータ(マスタファイル)に関するメタデータ(インデックス情報)が収集されているが、削除されたユーザデータに関するメタデータ(インデックス情報)は収集されないため、受信したメタデータ(インデックス情報)と一致しないメタデータ(インデックス情報)は、当然に、削除したユーザデータに関するメタデータということになる。
【0131】
(6)ステップS806
ストレージサーバ20のコアマネージャ実行部22は、メタデータ格納部24に格納されたメタデータ(インデックス情報)に対応しないユーザデータのキャッシュがキャッシュ格納部23に格納されている場合、当該キャッシュをキャッシュ格納部23から削除する。
【0132】
なお、ユーザ端末10上のユーザデータ(マスタファイル)を削除した後も、ストレージサーバ20上にキャッシュを残しておきたい場合、上記のユーザデータ削除処理を行わなくても良い。この場合、ユーザ端末10のクライアントアプリ実行部11が、ユーザからの入力操作等に従って、データ格納部12に格納しているユーザデータの中から、指定されたユーザデータを削除した時点で、処理が完了する。また、メタデータ格納部24に格納されたメタデータ(インデックス情報)から、削除されたユーザデータに関するメタデータ(インデックス情報)が消去されないようにする必要がある。例えば、メタデータ格納部24に格納されたメタデータ(インデックス情報)の破棄/消去については、ユーザ端末10のユーザからの指示があった場合にのみ行われるようにする。
【0133】
[ファイル選択画面例]
図10を参照して、WebUI用のファイル選択画面の一例として、ファイル選択画面例について説明する。但し、実際には、この例に限定されない。
【0134】
ファイル選択画面には、ユーザを示すユーザ識別子(ユーザID)と、ユーザ端末を示す端末識別子(デバイスID)と、当該ユーザ端末のオンライン/オフラインを示す情報とが表示される。
【0135】
また、端末識別子(デバイスID)毎に、ユーザデータを選択するための選択チェックボックスと、当該ユーザデータの識別情報(ファイル名等)と、当該ユーザデータの更新日時と、当該ユーザデータのキャッシュの有無を示す情報と、ユーザが当該ユーザデータのキャッシュを一時的なキャッシュとするか恒久的なキャッシュとするかを選択するためのラジオボタンとが対応付けられたレコードがテーブル形式で表示される。
【0136】
なお、ユーザデータを選択するための選択チェックボックスが選択された際、ユーザデータがフォルダである場合、当該フォルダ内のファイルに関する情報が一覧表示されるようにしても良い。
【0137】
更に、ファイル選択画面には、取得ボタンと、書込ボタンが表示される。
【0138】
ユーザデータを選択するための選択チェックボックスが選択された後、取得ボタンが押下された場合、当該ユーザデータのキャッシュがストレージサーバ上に存在しているか、当該ユーザデータをユーザ端末から取得可能であれば、当該ユーザデータ/当該ユーザデータのキャッシュが表示/ダウンロードされる。
【0139】
ユーザデータを書き込む(ユーザ端末10に登録する)ための書込ボタンが押下された場合、ユーザデータ書込画面が表示される。
【0140】
[ユーザデータ書込画面例]
図11を参照して、WebUI用のユーザデータ登録画面の一例として、ユーザデータ書込画面例について説明する。但し、実際には、この例に限定されない。
【0141】
ユーザデータ書込画面には、書き込むユーザデータの保存先のユーザ端末を示す端末識別子(デバイスID)や、書き込むユーザデータを示す情報(所在情報、識別情報等)を入力/選択するための領域が表示される。
【0142】
更に、ユーザデータ書込画面には、送信ボタンと、戻るボタンが表示される。
【0143】
書き込むユーザデータの保存先のユーザ端末を示す端末識別子(デバイスID)や、書き込むユーザデータを示す情報が入力/選択された後、送信ボタンが押下されると、書き込むユーザデータがストレージサーバ20に送信され、キャッシュされる。
【0144】
戻るボタンが押下されると、ユーザデータ書込画面からファイル選択画面に戻る。
【0145】
<本発明の特徴>
以上のように、本発明では、外部端末がストレージサーバを介してユーザ端末上のユーザデータを利用することができる。
【0146】
本発明では、ストレージサーバが、ユーザ端末上のユーザデータに関するメタデータ(インデックス情報)を収集しており、外部端末に対し、ユーザデータに関するメタデータ(インデックス情報)の一覧を提示する。外部端末は、メタデータ(インデックス情報)の一覧に基づいて、ユーザ端末上のユーザデータを要求する。
【0147】
このとき、ユーザ端末は、外部端末がユーザ端末上のユーザデータ本体を直接操作することがないように、ストレージサーバがユーザ端末上のユーザデータを取得し、間接的に、外部端末に提供する。このとき、ストレージサーバは、一旦、ユーザデータをキャッシュとして記憶している。ユーザデータが大量である場合には、一部のユーザデータのみキャッシュとして記憶する。ストレージサーバは、外部端末から要求されたユーザデータのキャッシュがストレージサーバ上にある場合には、当該キャッシュを当該ユーザデータとして外部端末に提供する。また、ストレージサーバは、要求されたユーザデータのキャッシュがストレージサーバ上にない場合には、ユーザ端末に対して、該当するユーザデータを要求し、取得できれば、当該ユーザデータをキャッシュとして記憶し、当該ユーザデータ又はそのキャッシュを外部端末に提供する。
【0148】
<備考>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【0149】
10… ユーザ端末
11… クライアントアプリ実行部
12… データ格納部
20… ストレージサーバ
21… クライアントマネージャ実行部
22… コアマネージャ実行部
23… キャッシュ格納部
24… メタデータ格納部
25… ACL(Access Control List)管理部
26… WebUI(Web User Interface)実行部
30… 外部端末

【特許請求の範囲】
【請求項1】
ユーザ端末と、
前記ユーザ端末とネットワークを介して接続可能なストレージサーバと
を含み、
前記ユーザ端末は、マスタファイルとなるユーザデータに関するメタデータを前記ストレージサーバに送信し、
前記ストレージサーバは、前記メタデータと前記ユーザデータのキャッシュとを記憶し、認証済みの端末に対して前記メタデータに基づく情報を提示し、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認し、前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信し、前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信する
ストレージシステム。
【請求項2】
請求項1に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザ端末からユーザデータを取得し、前記ユーザデータを前記認証済みの端末に送信する際に、前記ユーザデータをキャッシュとして記憶する
ストレージシステム。
【請求項3】
請求項1又は2に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末からユーザデータの書込み要求があった場合、前記認証済みの端末からユーザデータを取得し、該ユーザデータを前記ユーザ端末に送信する際に、該ユーザデータをキャッシュとして記憶する
ストレージシステム。
【請求項4】
請求項3に記載のストレージシステムであって、
前記ストレージサーバは、前記認証済みの端末からユーザデータの書込み要求があった場合、前記ユーザ端末との接続状況を確認し、前記ユーザ端末がオフラインであった場合、前記認証済みの端末から取得したユーザデータをキャッシュとして記憶し、前記ユーザ端末がオンラインになった際に、前記キャッシュとして記憶したユーザデータを前記ユーザ端末に送信する
ストレージシステム。
【請求項5】
請求項1乃至4のいずれか一項に記載のストレージシステムであって、
前記ストレージサーバは、前記ユーザデータのキャッシュの有無、及び、前記ユーザ端末との接続状況を確認し、前記認証済みの端末に対して、前記メタデータに基づく情報と共に、前記ユーザデータのキャッシュの有無を示す情報と、前記ユーザ端末との接続状況を示す情報とを提示する
ストレージシステム。
【請求項6】
請求項1乃至5のいずれか一項に記載のストレージシステムであって、
前記ユーザ端末は、前記ユーザ端末上のマスタファイルとなるユーザデータに変更があった場合、改めてユーザデータに関するメタデータを収集して前記ストレージサーバに送信し、
前記ストレージサーバは、受信したメタデータを基に、記憶しているメタデータを更新する
ストレージシステム。
【請求項7】
請求項1乃至5のいずれか一項に記載のストレージシステムであって、
前記ストレージサーバは、
前記ユーザ端末がオフラインになってから既定時間後に、或いは、既定記憶容量になった際に、或いは、登録された日時が古いキャッシュ又はアクセス頻度が低いキャッシュである場合に、或いは、前記ユーザ端末から削除要求があった際に、或いは、前記ユーザ端末上のユーザデータが削除された際に、前記ユーザ端末から取得したユーザデータのキャッシュを削除する
ストレージシステム。
【請求項8】
ユーザ端末とネットワークを介して接続する手段と、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信する手段と、
前記メタデータと前記ユーザデータのキャッシュとを記憶する手段と、
認証済みの端末に対して前記メタデータに基づく情報を提示する手段と、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認する手段と、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信する手段と、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得する手段と、
前記ユーザデータを前記認証済みの端末に送信する手段と
を具備する
ストレージサーバ。
【請求項9】
計算機により実施されるユーザデータ共有方法であって、
ユーザ端末とネットワークを介して接続することと、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信することと、
前記メタデータと前記ユーザデータのキャッシュとを記憶することと、
認証済みの端末に対して前記メタデータに基づく情報を提示することと、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認することと、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信することと、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得することと、
前記ユーザデータを前記認証済みの端末に送信することと
を含む
ユーザデータ共有方法。
【請求項10】
ユーザ端末とネットワークを介して接続するステップと、
前記ユーザ端末から、マスタファイルとなるユーザデータに関するメタデータを受信するステップと、
前記メタデータと前記ユーザデータのキャッシュとを記憶するステップと、
認証済みの端末に対して前記メタデータに基づく情報を提示するステップと、
前記認証済みの端末から前記ユーザデータの取得要求があった場合、前記ユーザデータのキャッシュを記憶しているか確認するステップと、
前記ユーザデータのキャッシュを記憶している場合、前記ユーザデータのキャッシュを前記認証済みの端末に送信するステップと、
前記ユーザデータのキャッシュを記憶していない場合、前記ユーザ端末から前記ユーザデータを取得するステップと、
前記ユーザデータを前記認証済みの端末に送信するステップと
を計算機に実行させるための
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−77079(P2013−77079A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−215593(P2011−215593)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(306029774)NECビッグローブ株式会社 (115)