説明

管理サーバ装置、ユーザ端末装置、プログラム、ファイル共有システム及び方法

【課題】WAN帯域の負荷を軽減するとともにデータ消失のリスクを軽減し、さらにファイルを管理する手間を軽減することである。
【解決手段】ユーザ端末装置12は、外部ネットワーク上のストレージ18に対して論理的に異なる内部ネットワーク11を介してファイルを共有し読み書きする。ファイル情報管理部37は、ストレージ18に存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置12に関連付けたファイル所有者情報とを記憶し管理する。ファイル情報通知部38は、送信要求のあったファイルリストやファイル所有者情報を通知する。ファイル情報確認部39は、ファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかをユーザ端末装置群に問い合わせる。ファイル情報更新部40は、ファイル情報更新のための情報を受信したときはファイル情報管理部37に記憶したファイル情報を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有して利用するための管理サーバ装置、ユーザ端末装置、プログラム、ファイル共有システム及び方法に関する。
【背景技術】
【0002】
従来、外部ネットワークにあるストレージをファイル共有装置として利用するシステムがある。このシステムを利用することにより、ストレージの利用者はストレージの運用及び管理の手間を省き、ファイルを共有できる。
【0003】
また、ファイル共有装置を複数のユーザで利用する環境においては、1つの共有ファイルに対して複数のユーザが同時に編集をしようとアクセスした場合、最初にアクセスしたユーザ以外はそのファイルに対する編集権限が与えられずロックされるが、このロックが解除されるタイミングは通知されないため、ユーザは逐次アクセス状況を確認する必要があり煩雑であるという問題がある。これについては、アクセス状況を管理する装置を用意し、アクセス状況の変化をユーザに通知することによってユーザの確認の手間を省く方法が提案されている。
【0004】
さらに、ファイル共有装置を複数のユーザで利用する環境においては、複数のユーザで共有しているファイルを一人のユーザの意思で変更・削除する運用方法では不都合が生じる場合がある。これについては、ファイルに変更等が発生した場合、他のユーザにその旨を通知し、その変更等を承認するかの判断を仰ぐ、共有ファイル管理システムが提案されている。
【0005】
しかしながら、従来のシステムでは、外部ネットワークにあるストレージと内部ネットワークにある端末との間で逐一ファイルリスト及びファイルをやりとりする構成であったため、頻繁に大きなファイルをやりとりする環境では、LANに比べ高価なWAN帯域を圧迫してしまう問題があった。また、外部ネットワークにあるストレージの運用及び管理がブラックボックスになっている構成であるため、外部ネットワークにあるストレージに障害が発生した場合などに、保存したデータが失われる可能性があるという問題もあった。
【0006】
また、同時にファイルを編集できるユーザは一人であるという動作であったため、アクセス権を持っているユーザがアクセス権を離し忘れた場合などに他のユーザがいつまでもファイルを編集することが出来ないという問題は解決されないままであった。
【0007】
また、ファイルの更新に対して関係者が承認をする動作が必要であったため、頻繁に更新が行われるような環境では、承認に手間がかかってしまうという問題があった。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−122872号公報
【特許文献2】特開2009−282757号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする課題は、WAN帯域の負荷を軽減するとともにデータ消失のリスクを軽減し、さらにファイルを管理する手間を軽減することである。
【課題を解決するための手段】
【0010】
本発明の実施形態の管理サーバ装置は、論理的に同一の内部ネットワークに接続されたユーザ端末装置群が論理的に異なる外部ネットワーク上のストレージにアクセスする際の通信を一次的に受け付けるものであり、ユーザ端末装置は、外部ネットワーク上のストレージに存在するファイルを読み込む際、内部ネットワークの他のユーザ端末装置が当該ファイルのコピー(以下、キャッシュという)を所有していれば、それを優先的に読み込む。ファイル情報管理部は、ストレージに存在するファイルと当該ファイルのキャッシュを保持するユーザ端末装置を関連付けたキャッシュ所有者情報とを記憶し管理する。ファイル情報通知部は、ユーザ端末装置からの要求に応じてファイルリストやキャッシュ所有者情報をユーザ端末装置に送信する。ファイル情報確認部は、ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかをユーザ端末装置群に問い合わせる。ファイル情報更新部は、ユーザ端末装置からファイル情報更新のための情報を受信したときはファイル情報管理部に記憶したキャッシュ所有者情報を更新する。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態に係るファイル共有システムのハードウエア構成を示すブロック構成図。
【図2】本発明の実施形態に係るファイル共有システムの管理サーバ装置及びユーザ端末装置の機能ブロック図。
【図3】本発明の実施形態に係るファイル共有システムのファイルリスト要求の動作を示すシーケンス図。
【図4】本発明の実施形態に係るファイル共有システムのファイル書き込みの動作を示すシーケンス図。
【図5】本発明の実施形態に係るファイル共有システムのファイル読み込みの動作を示すシーケンス図。
【図6】本発明の実施形態におけるファイル情報管理DB及び所有ファイル検索用DBのデータ構造とストレージのファイルシステムに記録される情報の一部の説明図。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら本発明の実施形態を説明する。図1は本発明の実施形態に係るファイル共有システムのハードウエア構成を示すブロック構成図である。
【0013】
図1において、内部ネットワーク11には複数のユーザ端末装置12a〜12nが接続されるとともに、管理サーバ装置13が接続されている。複数のユーザ端末装置12a〜12nはそれぞれ内部ストレージ14a〜14nと所有ファイル検索用DB(所有ファイル検索用データベース)15a〜15nを持つ。図1では、内部ストレージ14a〜14nと所有ファイル検索用DB15a〜15nとをユーザ端末装置12a〜12nの外部に図示しているが、ユーザ端末装置12a〜12nの内部に設けるようにしてもよい。
【0014】
管理サーバ装置13はファイル情報管理DB(ファイル情報管理データベース)16を持つ。図1では、ファイル情報管理DB16を管理サーバ装置13の外部に図示しているが、管理サーバ装置13の内部に設けるようにしてもよい。
【0015】
複数のユーザ端末装置12a〜12n及び管理サーバ装置13は内部ネットワーク11を介して接続される。また、内部ネットワーク11にあるユーザ端末装置12a〜12n及び管理サーバ装置13はWAN17を介して外部ネットワークのストレージ18と接続される。
【0016】
ユーザ端末装置12a〜12nの持つ内部ストレージ14a〜14nには、ストレージ18上にあるファイルの一部がキャッシュとして保存されている。また、所有ファイル検索用DB15a〜15nには、所有するキャッシュのフィンガプリント(例えばハッシュ値)と、キャッシュのコピー元であるストレージ18上のファイルパスの一部(以下、仮想ファイルパスという)と、キャッシュの内部ストレージ14a〜14n上のファイルパス(以下、キャッシュファイルパスという)が格納されている。管理サーバ装置13の持つファイル情報管理DB16には、仮想ファイルパス、タイムスタンプ、フィンガプリント、キャッシュ所有者が格納されている。所有ファイル検索用DB15a〜15n及びファイル情報管理DB16の詳細については後述する。
【0017】
ユーザ端末装置12a〜12nは利用者が操作する端末装置であり、ファイルリスト(仮想ファイルパス、タイムスタンプ、フィンガプリントが関連付けられた情報)の取得、読み込み、書き込みといった操作を行うことが可能となっている。これらの操作は、すべて管理サーバ装置13が一次受付を行う。
【0018】
ユーザ端末装置12aがファイルの読み込みまたは書き込みの操作を行う際には、対象のファイルのキャッシュを内部ネットワーク11にある他のユーザ端末装置12b〜12nのいずれかが所持していれば、対象ファイルはキャッシュを所持するユーザ端末装置12iから取得する。対象ファイルのキャッシュを内部ネットワーク11にある他の全てのユーザ端末装置12b〜12nが保持していなければ、対象ファイルはストレージ18から取得する。
【0019】
図2は、本発明の実施形態に係るファイル共有システムの管理サーバ装置及びユーザ端末装置の機能ブロック図である。複数のユーザ端末装置12a〜12nは同一構成であるので、図2では1台のユーザ端末装置12のみを示している。
【0020】
ユーザ端末装置12は、ファイル情報要求部19と、ファイル送受信部20と、キャッシュ記憶部21と、キャッシュ情報通知部22とを持つ。ファイル情報要求部19は、ファイルリスト要求送信部23、ファイルリスト受信部24、ファイル所有者情報要求送信部25、ファイル所有者情報受信部26を備える。
【0021】
ファイル送受信部20は、ファイル転送依頼送信部27、ファイル受信部28、ファイル書き込み部29、ファイル転送依頼受信部30、ファイル送信部31を備える。キャッシュ記憶部21は内部ストレージ14を備える。また、キャッシュ情報通知部22は、キャッシュ有無確認依頼受信部32、キャッシュ有無確認部33、キャッシュ有無確認結果送信部34、所有ファイル検索用DB更新部35、所有ファイル検索用DB15、ファイル更新情報送信部36を備える。なお、図2では、内部ストレージ14a〜14nと所有ファイル検索用DB15a〜15nとをユーザ端末装置12a〜12nの内部に設けた場合を図示している。
【0022】
また、管理サーバ装置13は、ファイル情報管理部37と、ファイル情報通知部38と、ファイル情報確認部39と、ファイル情報更新部40とを持つ。ファイル情報管理部37は、ファイル情報管理DB16、ファイル所有者情報取得部41を備える。
【0023】
ファイル情報通知部38は、ファイルリスト要求受信部42、ファイルリスト取得部43、ファイルリスト送信部44、ファイル所有者情報要求受信部45、ファイル所有者情報送信部46を備える。ファイル情報確認部39は、キャッシュ有無確認依頼送信部47、キャッシュ有無確認結果受信部48を備える。ファイル情報更新部40は、ファイル更新情報受信部49、ファイル情報管理DB更新部50を備える。なお、図2では、ファイル情報管理DB16を管理サーバ装置13の内部に設けた場合を示している。
【0024】
ユーザ端末装置12は、ストレージ18のファイルを読み書きするものである。ユーザ端末装置12のキャッシュ記憶部21は、ストレージ18に存在するファイルのうち一部のファイルのコピーをキャッシュとして保持している。キャッシュ情報通知部22は、キャッシュ記憶部21に存在するファイルのキャッシュの検索用情報を保持し、管理サーバ装置13からの問い合わせに応じてキャッシュの有無を管理サーバ13に通知する。ファイル情報要求部19は、管理サーバ13のファイル情報管理DB16に記憶したストレージ18に存在するファイルと当該ファイルのキャッシュを保持するキャッシュ記憶部21に関連付けたキャッシュ所有者情報とを管理サーバ13に問い合わせるものである。ファイル送受信部20は、他のユーザ端末装置12またはストレージ18とファイルを送受信するものである。
【0025】
また、管理サーバ装置13は、ユーザ端末装置12a〜12nがストレージ18にアクセスする際の通信を一次的に受け付け、ストレージ18に格納されたファイルをストレージ18から送信するか、そのファイルのキャッシュを保持している他のユーザ端末装置12から送信するかを決定するものである。
【0026】
管理サーバ装置13のファイル情報管理部37は、ファイル情報管理DB16に格納されたストレージ18に存在するファイルと当該ファイルのキャッシュを保持するユーザ端末装置に関連付けたキャッシュ所有者情報とを管理するものである。
【0027】
ファイル情報通知部38は、ユーザ端末装置12からの要求に応じてファイルリストやキャッシュ所有者情報をユーザ端末装置12に通知するものである。ファイル情報確認部39は、ユーザ端末装置12aから読み込み対象のファイルのキャッシュ所有者情報の要求があったときは、そのファイルを保有するか否かをユーザ端末装置12b〜12nに問い合わせるものである。ファイル情報更新部40は、ユーザ端末装置12からファイル情報更新のための情報を受信したときは、ファイル情報管理部37に記憶したファイル情報を更新するものである。
【0028】
以下、ユーザ端末装置12の機能について説明する。まず、ユーザ端末装置12のファイル要求側機能について説明する。ファイルリスト要求送信部23は、管理サーバ装置13に対して、ファイルリスト要求を送信する。ファイルリスト受信部24は、管理サーバ装置13からファイルリストを受信する。このとき、受信するファイルリストは、ユーザが読み書きを行う対象のファイルを指定するための情報であり、仮想ファイルパス、タイムスタンプ、フィンガプリントといった情報を有する。ここで、仮想ファイルパスが同じでもフィンガプリントが異なれば別のファイルとみなす。この仕組みにより、仮想ファイルパスが同じでもバージョンが異なるファイルの存在を許容する。
【0029】
ファイル所有者情報要求送信部25は、管理サーバ装置13に対して、指定したファイルのキャッシュ所有者情報を要求する。ファイル所有者情報受信部26は、管理サーバ装置13から、ファイル所有者情報を受信し、ファイル送受信部20のファイル転送依頼送信部27へ渡す。ファイル所有者情報は、ファイルまたはキャッシュの所有者のアドレス、仮想ファイルパス、フィンガプリント、タイムスタンプ、などの情報を有する。
【0030】
ファイル転送依頼送信部30は、ファイル所有者情報受信部から渡された情報に対応して、他のユーザ端末装置12またはストレージ18に対して、指定したファイルを転送するよう要求する。この要求にはファイルの仮想ファイルパス、フィンガプリントなどの情報が含まれる。
【0031】
ファイル受信部28では、他のユーザ端末装置12またはストレージ18からファイルを受信する。受信したファイルは自己のユーザ端末装置12のキャッシュ記憶部21の内部ストレージ14にキャッシュとして保存する。また、キャッシュ情報通知部22のファイル更新情報送信部36に対して、受信したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。ファイル更新情報送信部36は、ファイル受信部28から渡された情報を管理サーバ装置13に対して送信する。
【0032】
ファイル書き込み部29では、ストレージ18にファイルを作成し、自己のユーザ端末装置12の内部ストレージ14にキャッシュを保存する。また、ファイル更新情報送信部36に対して、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。また、キャッシュ情報通知部22の所有ファイル検索用DB更新部35に対して、作成したファイルの仮想ファイルパス、内部ストレージ14上のファイルパス(以下、キャッシュファイルパスという)、フィンガプリント、及び「ファイル書き込み」という情報を渡す。
【0033】
次に、ユーザ端末装置12のファイル転送側機能について説明する。キャッシュ情報通知部22のキャッシュ有無確認依頼受信部32は、管理サーバ装置13から、キャッシュ有無確認依頼を受信し、キャッシュ有無確認部33へ渡す。キャッシュ有無確認依頼は、仮想ファイルパス、フィンガプリントなどの情報を有する。
【0034】
キャッシュ有無確認部33は、キャッシュ有無確認依頼受信部32から渡された情報をもとに、所有ファイル検索用DB15から対応するキャッシュファイルパスを検索し、キャッシュが実際に存在するかを問い合わせる。
【0035】
問い合わせの結果、キャッシュが存在した場合、キャッシュのフィンガプリントを計算し、計算した結果のフィンガプリントがキャッシュ有無確認依頼受信部32で受信したフィンガプリントと等しいかどうかチェックを行う。等しければキャッシュ有無確認結果送信部34に「ファイル有り」という情報を渡す。等しくなければキャッシュ有無確認結果送信部34に「ファイル変更」という情報と、計算した結果のフィンガプリントとを渡し、また、所有ファイル検索用DB更新部35に、キャッシュ有無確認依頼受信部32から渡された情報と「ファイル変更」という情報とを渡す。
【0036】
一方、問い合わせの結果、ファイルが存在しなかった場合、所有ファイル検索用DB更新部35にキャッシュ有無確認依頼受信部32から渡された情報と「ファイル無し」という情報とを渡す。キャッシュ有無確認結果送信部32は、キャッシュ有無確認部33から渡された情報を管理サーバ装置13に対して送信する。
【0037】
ファイル転送依頼受信部30は、他のユーザ端末装置12からファイル転送依頼を受信し、これをもとに、所有ファイル検索用DB15から対応するファイルのキャッシュファイルパスを検索し、ファイル送信部31に対して、検索結果のキャッシュファイルパスと、ファイル転送依頼を送信したユーザ端末装置12のアドレス渡す。
【0038】
ファイル送信部31は、ファイル転送依頼受信部30から渡された情報をもとに、ファイル転送依頼を送信したユーザ端末装置12に対し、検索結果のキャッシュファイルパスのファイルを送信する。
【0039】
次に、ユーザ端末装置12の共有機能について説明する。所有ファイル検索用DB更新部35は、渡された情報をもとに、所有ファイル検索用DB15を更新する。「ファイル無し」という情報を渡された場合、所有ファイル検索用DB15からファイルのレコードを削除する。また、「ファイル変更」という情報を渡された場合、所有ファイル検索用DB15のファイルのレコードのフィンガプリントを、その時点におけるファイルのフィンガプリントに変更する。また、「ファイル書き込み」という情報を渡された場合、所有ファイル検索用DB15にファイルのレコードを追加する。
【0040】
次に、管理サーバ装置13の機能について説明する。ファイルリスト要求受信部42は、ユーザ端末装置12からファイルリスト要求を受信しファイルリスト取得部43へ渡す。ファイルリスト取得部43は、ファイルリスト要求受信部42から渡された情報をもとに、ファイル情報管理DB16から本システムで管理するファイルの情報を取得し、ファイルリスト送信部44に渡す。ここで渡す情報は、仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を有する。ファイルリスト送信部44は、ファイルリスト取得部43から渡された情報をユーザ端末装置12へ送信する。
【0041】
また、ファイル所有者情報要求受信部45は、ユーザ端末装置12から指定ファイルのファイル所有者情報の要求を受信し、ファイル情報管理部37のファイル所有者情報取得部41へ渡す。この要求は、仮想ファイルパス、フィンガプリントなどの情報を有する。ファイル所有者情報取得部41は、ファイル所有者情報要求受信部45から渡された情報をもとに、ファイル情報管理DB16から指定ファイルのキャッシュ所有者情報を取得し、ファイル情報確認部39のキャッシュ有無確認依頼送信部47に渡す。このキャッシュ所有者情報は、ユーザ端末装置12のアドレスなどの情報を含む。
【0042】
キャッシュ有無確認依頼送信部47は、ファイル所有者情報取得部41から渡された情報をもとに、所有者リストにあるユーザ端末装置12に対して、キャッシュ有無確認依頼を順次送信する。キャッシュ有無確認依頼は仮想ファイルパス、フィンガプリントなどの情報を有する。
【0043】
キャッシュ有無確認結果受信部48は、ユーザ端末装置12からキャッシュ有無確認結果の情報を受信する。「ファイル有り」という情報を受信した場合、ファイル所有者情報送信部46に、情報を送信したユーザ端末装置12のアドレス、仮想ファイルパス、フィンガプリントなどの情報を渡す。また、「ファイル変更」という情報を受信した場合、ファイル情報管理DB更新部50に、情報を送信したユーザ端末装置12のアドレス、情報に含まれる仮想ファイルパス、情報に含まれるタイムスタンプ、情報に含まれるフィンガプリントなどの情報を渡す。ファイル所有者情報送信部46は、ユーザ端末装置12に対してキャッシュ有無確認結果受信部48から受け取った情報を送信する。
【0044】
ファイル情報更新部40のファイル更新情報受信部49は、ユーザ端末装置12からファイル情報を更新するための情報を受信し、ファイル情報管理DB更新部50に渡す。この情報には、仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を有する。ファイル情報管理DB更新部50は、渡された情報をもとにファイル情報管理DB16を更新する。
【0045】
次に、本発明の実施形態に係るファイル共有システムの動作を説明する。まず、ファイル共有システムのファイルリスト要求時の動作について説明する。図3は、本発明の実施形態に係るファイル共有システムのファイルリスト要求の動作を示すシーケンス図である。
【0046】
(1)ユーザ端末装置12は管理サーバ装置に対してファイルリスト(仮想ファイルパス、タイムスタンプ、フィンガプリントが関連付けられた情報)の要求を行う。
このファイルリストの要求は、ユーザ端末装置12におけるファイル情報要求部19のファイルリスト要求送信部23から送信される。
【0047】
(2)管理サーバ装置13はこのファイルリストの要求をファイル情報管理DB16に転送する。
ユーザ端末装置12から送信されたファイルリストの要求は、管理サーバ装置13におけるファイル情報通知部38のファイルリスト要求受信部42で受信され、ファイルリスト取得部43へ渡す。
【0048】
(3)ファイル情報管理DB16からファイルリストを送信する。
ファイル情報通知部38のファイルリスト取得部43は、ファイル情報管理DB16からファイルリストの情報を取得し、ファイル情報通知部38のファイルリスト送信部44に渡す。
【0049】
(4)管理サーバ装置13はファイルリストをユーザ端末装置12に送信する。
ファイル情報通知部38のファイルリスト送信部44は、取得したファイルリストをユーザ端末装置12に送信する。ユーザ端末装置12では、ファイル情報要求部19のファイルリスト受信部24でファイルリストを受信する。なお、ファイルリストを受信したユーザ端末装置12は、図示省略の表示装置や印刷装置などに出力し、ユーザにファイルリストを提供する。これにより、ストレージ18に存在するファイルのリストと、当該ファイルのコピーを保持するユーザ端末装置12との関連付けや、そのファイルのファイル所有者情報などがユーザに提供される。
【0050】
次に、ファイル共有システムのファイル書き込み時の動作について説明する。図4は、本発明の実施形態に係るファイル共有システムのファイル書き込みの動作を示すシーケンス図である。
【0051】
(1)ユーザ端末装置12はストレージ18にファイルを作成する。
ユーザ端末装置12がストレージ18に新たにファイルを作成するには、ファイル送信部20のファイル書き込み部29は、ストレージ18に新たなファイルを作成する。
【0052】
(2)ユーザ端末装置12は内部ストレージ14にファイル(キャッシュ)を作成する。 また、ファイル送信部20のファイル書き込み部29は、ストレージ18に送信したファイルのキャッシュをキャッシュ記憶部21の内部ストレージ14に作成する。
【0053】
(3)ユーザ端末装置12は管理サーバ装置13に対してファイル所有者情報の更新を依頼する。
また、ファイル送信部20のファイル書き込み部29は、ファイル更新情報送信部36に対して、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。ファイル更新情報送信部36は、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を管理サーバ装置13に対して送信する。管理サーバ装置13では、ファイル更新情報送信部36から送信されてきた情報をファイル情報更新部40のファイル更新情報受信部49で受信し、ファイル更新情報受信部49は、ユーザ端末装置12からファイル情報を更新するための情報を受信すると、ファイル情報管理DB更新部50に渡す。
【0054】
(4)管理サーバ装置13はファイル情報管理DB16にファイル所有者情報を更新する。ファイル情報管理DB更新部50は、渡された情報をもとにファイル情報管理DB16に新たなレコードを追加しファイル所有者情報を更新する。仮想ファイルパスにはストレージ18上のファイルパスの一部を、タイムスタンプにはファイルのタイムスタンプを、フィンガプリントにはファイルのフィンガプリントを、所有者にはユーザ端末装置のアドレスを代入する。これにより、作成されたファイルのファイル所有者情報が更新される。
【0055】
(5)ユーザ端末装置12は所有ファイル検索用DB15にファイル所有者情報を更新する。
また、ファイル送信部20のファイル書き込み部29は、キャッシュ情報通知部22の所有ファイル検索用DB更新部35に対して、作成したファイルの仮想ファイルパス、フィンガプリント、及び「ファイル書き込み」という情報を渡す。
【0056】
所有ファイル検索用DB更新部35は、新たなレコードの仮想ファイルパスにはストレージ18上のファイルパスの一部を、フィンガプリントにはファイルのフィンガプリントを、キャッシュファイルパスには内部ストレージ上のファイルパスを代入する。
【0057】
次に、ファイル共有システムのファイル読み込み時の動作について説明する。図5は、本発明の実施形態に係るファイル共有システムのファイル読み込みの動作を示すシーケンス図である。
【0058】
(1)ファイル要求側のユーザ端末装置12aは管理サーバ装置13に読み込み対象のファイルのキャッシュ所有者情報を要求する。
いま、ユーザ端末装置12aがファイル要求側のユーザ端末装置であるとし、ストレージ18に格納されたファイルを読み込もうとした場合には、ユーザ端末装置12aは、ファイル情報要求部19のファイル所有者情報要求送信部25から管理サーバ装置13に対して、指定したファイルのキャッシュ所有者情報を要求する。
【0059】
(2)管理サーバ装置13はファイル情報管理DB16を検索する。
管理サーバ装置13では、読み込み対象のファイルのキャッシュ所有者情報の要求をファイル情報通知部38のファイル所有者情報要求受信部45で受信し、ファイル所有者情報要求受信部45は、その要求をファイル情報管理部37のファイル所有者情報取得部41へ渡す。この要求は、仮想ファイルパス、フィンガプリントなどの情報を有する。ファイル所有者情報取得部41は、ファイル情報管理DB16から指定ファイルのキャッシュ所有者情報を検索する。
【0060】
(3)管理サーバ装置13はファイル情報管理DB16からキャッシュ所有者情報を取得する。
ファイル所有者情報取得部41は、読み込み対象のファイルの仮想ファイルパス及びフィンガプリントを検索キーとしてキャッシュ所有者情報を取得する。そして、取得したキャッシュ所有者情報をファイル情報確認部39のキャッシュ有無確認依頼送信部47に渡す。このキャッシュ所有者情報は、ユーザ端末装置12のアドレスなどの情報を含む。
【0061】
(4)管理サーバ装置13は、取得したキャッシュ所有者情報にあるユーザ端末装置12iに対しキャッシュ有無確認依頼を行う。
ファイル情報確認部39のキャッシュ有無確認依頼送信部47は、ファイル所有者情報取得部41から渡された情報をもとに、キャッシュ所有者情報にあるユーザ端末装置12iに対して、キャッシュ有無確認依頼をファイル所有者情報送信部46に順次送信する。キャッシュ有無確認依頼は仮想ファイルパス、フィンガプリントなどの情報を有する。
【0062】
(5)キャッシュ有無確認依頼を受け取ったユーザ端末装置12iは、キャッシュファイルパスを検索する。
ユーザ端末装置12iでは、キャッシュ有無確認依頼をキャッシュ情報通知部22のキャッシュ有無確認依頼受信部32で受信し、キャッシュ有無確認部33へ渡す。キャッシュ有無確認部33は、キャッシュ有無確認依頼受信部32から渡された情報をもとに、所有ファイル検索用DB15iから対応するキャッシュのファイルパスを検索し、キャッシュが実際に存在するかを問い合わせる。
【0063】
(6)キャッシュファイルパスを取得する。
ユーザ端末装置12iは、所有ファイル検索用DB15iから、仮想ファイルパス及びフィンガプリントを検索キーとしてキャッシュファイルパスを取得する。
【0064】
(7)キャッシュの有無確認を行う。
ユーザ端末装置12iのキャッシュ有無確認部33は、内部ストレージ14iから上記ステップ(6)で取得したキャッシュファイルパスにファイルが存在しているか確認する。
【0065】
(8)キャッシュ有無確認結果を受信する。
ユーザ端末装置12iのキャッシュ有無確認部33は、ファイル有無確認結果を受信する。ファイルが存在している場合、上記ステップ(4)で受け取ったフィンガプリントとファイルのフィンガプリントとが一致しているか比較を行う。
【0066】
(9)キャッシュ有無確認結果を管理サーバ13に送信する。
ユーザ端末装置12iのキャッシュ有無確認結果送信部34は上記ステップ(7)の確認結果を管理サーバ装置13に送信する。
【0067】
(10)ファイル所有者情報の更新を行う。
管理サーバ装置13のキャッシュ有無確認結果受信部48は、上記ステップ(9)の確認結果に応じて、ファイル情報管理DB16を更新する。ファイルが存在していない場合には、ファイル情報管理DB16から、キャッシュ所有者が確認結果を送信したユーザ端末装置12iであるレコードを削除する。フィンガプリントが一致していなかった場合には、ファイル情報管理DB16のレコードのフィンガプリントを更新する。
【0068】
(11)ファイル所有者情報を送信する。
管理サーバ装置13のキャッシュ有無確認結果受信部48は、ファイル有無確認結果によりフィンガプリントが一致していた場合には、そのユーザ端末装置12iのアドレスをファイル要求側のユーザ端末装置12aに対して送信する。一方、管理サーバ装置13のキャッシュ有無確認結果受信部48は、ファイル所有者情報にある全てのユーザ端末装置12のフィンガプリントが一致していなかった場合には、ストレージ18のアドレスをファイル要求側のユーザ端末装置12iに対して送信する。
【0069】
(12−A)ファイル要求をする。
ファイル要求側のユーザ端末装置12aは、他のユーザ端末装置12iがファイルを保持しているときは、上記ステップ(11)で受け取ったアドレスに応じて、他のユーザ端末装置12iに対してファイル要求を行う。
【0070】
(13−A)ファイル要求をする。
他のユーザ端末装置12iは、内部ストレージ14iにファイル要求をする。
【0071】
(14−A)ファイル転送をする。
他のユーザ端末装置12iは、内部ストレージ14iからファイルを読み出し転送する。
【0072】
(15−A)ファイル転送をする。
他のユーザ端末装置12iは、内部ストレージ14iからを読み出したファイルをファイル要求側のユーザ端末装置12aに転送する。
【0073】
(12−B)ファイル要求をする。
ファイル要求側のユーザ端末装置12aは、他の全てのユーザ端末装置12がファイルを保持していないときは、上記ステップ(11)で受け取ったアドレスに応じて、ストレージ18に対してファイル要求を行う。
【0074】
(13−B)ファイル転送をする。
ストレージ18は読み出したファイルをファイル要求側のユーザ端末装置12aに転送する。
【0075】
(16)ファイルの作成を行う。
ファイル要求側のユーザ端末装置12aは内部ストレージ14aに対して、上記ステップ(15−A)または上記ステップ(13−B)で受け取ったファイルをコピーする。
【0076】
(17)ファイル所有者情報の更新を行う。
ファイル要求側のユーザ端末装置12aは管理サーバ装置13に対して、ファイル所有者情報を更新するよう依頼する。
【0077】
(18)ファイル所有者情報の更新を行う。
管理サーバ装置13はファイル情報管理DB16に新たなレコードを追加する。レコードの仮想ファイルパスにはストレージ18上のファイルパスの一部を、タイムスタンプにはファイルのタイムスタンプを、フィンガプリントにはファイルのフィンガプリントを、キャッシュ所有者にはユーザ端末装置12aのアドレスを記入する。
【0078】
(19)ファイル所有者情報の更新を行う。
ファイル要求側のユーザ端末装置12aは所有ファイル検索用DB15aに新たなレコードを追加する。レコードの仮想ファイルパスにはストレージ18上のファイルパスの一部を、フィンガプリントにはファイルのフィンガプリントを、キャッシュファイルパスには内部ストレージ14a上のファイルパスを記入する。
【0079】
次に、本発明の実施形態におけるファイル情報管理DB16及び所有ファイル検索用DB15のデータ構造、ストレージ18のファイルシステムに記録される情報の一部について説明する。図6は、本発明の実施形態に係るファイル共有システムのファイル情報管理DB16及び所有ファイル検索用DB15のデータ構造とストレージ18のファイルシステムに記録される情報の一部の説明図であり、図6(a)はファイル情報管理DB16の説明図、図6(b)は所有ファイル検索用DB15の説明図、図6(c)はストレージ18の説明図である。
【0080】
まず、ファイル情報管理DB15について説明する。ファイル情報管理DB16は、管理サーバ装置13が持つデータベースであり、図6(a)に示すように、仮想ファイルパス、タイムスタンプ、フィンガプリント、キャッシュ所有者などのフィールドを持つ。
【0081】
仮想ファイルパスには、ファイル共有システムにおけるファイルの位置情報が格納される。これは、ストレージ18におけるファイルの保存場所と対応している。本システムではファイルパスが同一であっても、後述するフィンガプリントが異なれば別のファイルとして管理する。タイムスタンプには、ファイルの最終更新時刻が格納される。これは、本システムを利用するユーザがUI上で同名のファイルを区別するために用いる。フィンガプリントには、ファイルの内容から計算されるハッシュ値が格納される。これは、ファイルの内容が一部でも異なれば全く別の値となる。所有者には、ファイルのキャッシュを所有するユーザ端末装置12のアドレスが格納される。
【0082】
次に、所有ファイル検索用DB15について説明する。所有ファイル検索用BD15は、ユーザ端末装置12それぞれが持つデータベースであり、図6(b)に示すように、仮想ファイルパス、フィンガプリント、キャッシュファイルパスなどのフィールドを持つ。
【0083】
仮想ファイルパスとフィンガプリントは、ファイル情報管理DB16の仮想ファイルパス及びフィンガプリントと対応する。キャッシュファイルパスは、仮想ファイルパスとフィンガプリントとの組み合わせから特定されるファイルのキャッシュを保存している、ユーザ端末装置12の内部ストレージ14のアドレスである。
【0084】
次に、ストレージ18のファイルシステムについて説明する。ストレージ18は、図6(c)に示すように、ファイルパスを有し、このファイルパスはストレージ18のファイルシステムにおいて、ファイルの位置を管理するための情報である。
【0085】
図6において、ストレージ18上の/public配下に、sample.txtと、sample2.txtが2バージョンと、sample3.txtとが保存されている一例を示している。ここでは、ストレージ18のファイルシステムのファイルパスの一例のように、それぞれのファイルパスの末尾にフィンガプリントを付加することで、同名だが内容が異なるファイルの存在を可能にしている。
【0086】
ストレージ18上のファイルの情報は、管理サーバ装置13のファイル情報管理DB16によって管理される。ここでは、sample.txtのキャッシュが192.168.1.2によって保持、sample2.txtの1バージョンのキャッシュが192.168.1.1と192.168.1.3とによって保持、もう1バージョンのキャッシュが192.168.1.2によって保持、sample3.txtのキャッシュがどの端末からも保持されていない状態を表している。
【0087】
図6中の所有ファイル検索用DB15はユーザ端末装置192.168.1.2の所有ファイル検索用DBの例である。ここでは、sample.txtを192.168.1.2の内部ストレージのc:\cache\public\sample.txtに、sample2.txtを内部ストレージ14のc:\cache\public\sample2.txtに保存している状態を表している。
【0088】
このようにすることによって、以下のような効果を得ることができる。
【0089】
(1)ストレージ18に保存されるファイルは、ファイルにアクセスしたユーザ端末装置12にキャッシュされる仕組みになっているため、内部ネットワーク11内にファイルをキャッシュしているユーザ端末装置12が存在すれば、ストレージ18からファイルを取得する必要がなくなるので、結果的にWAN帯域の負荷を軽減することができる。
【0090】
(2)使用頻度の高いファイルは、多くのユーザ端末装置12にキャッシュされる仕組みになっているため、使用頻度の高さに比例してファイルのバックアップがとられている状態となり、結果的にデータの消失のリスクを軽減することができる。
【0091】
(3)ストレージ18上のファイルパスが全く同一のものであっても、フィンガプリントが異なれば別ファイルとして扱う仕組みになっているため、複数のユーザに同時に編集された結果としてファイルの派生が複数作成されるような場合でも、一方のファイルを失うリスクを避けることが可能となり、結果的にファイルを管理する手間を軽減することができる。
【0092】
このように、本発明の実施形態のファイル共有システムでは、ユーザ端末装置12が外部のストレージ18のファイルをダウンロードしようとする際、当該ファイルと同一のものを内部ネットワーク11の異なるユーザ端末装置12が所持していた場合、そちらからダウンロードすることにより、外部ネットワークの負荷を低減できる。
【0093】
以上の説明では、ユーザ端末装置12は内部ストレージ14及び所有ファイル検索用DB15を有し、ファイル交換ネットワークへの参加を可能としているが、内部ストレージ14及び所有ファイル検索用DB15を有しないユーザ端末装置12を追加して内部ネットワーク11に接続するようにしてもよい。すなわち、ファイル情報要求部19及びファイル送受信部20のみを有するユーザ端末装置12を接続し、ファイル交換ネットワークに参加しないユーザ端末装置12を存在させるようにしてもよい。
【0094】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0095】
11…内部ネットワーク、12…ユーザ端末装置、13…管理サーバ装置、14…内部ストレージ、15…所有ファイル検索用DB、16…ファイル情報管理DB、17…WAN、18…ストレージ、19…ファイル情報要求部、20…ファイル送受信部、21…キャッシュ記憶部、22…キャッシュ情報通知部、23…ファイルリスト要求送信部、24…ファイルリスト受信部、25…ファイル所有者情報要求送信部、26…ファイル所有者情報受信部、27…ファイル転送依頼送信部、28…ファイル受信部、29…ファイル書き込み部、30…ファイル転送依頼受信部、31…ファイル送信部、32…キャッシュ有無確認依頼受信部、33…キャッシュ有無確認部、34…キャッシュ有無確認結果送信部、35…所有ファイル検索用DB更新部、36…ファイル更新情報送信部、37…ファイル情報管理部、38…ファイル情報通知部、39…ファイル情報確認部、40…ファイル情報更新部、41…ファイル所有者情報取得部、42…ファイルリスト要求受信部、43…ファイルリスト取得部、44…ファイルリスト送信部、45…ファイル所有者情報要求受信部、46…ファイル所有者情報送信部、47…キャッシュ有無確認依頼送信部、48…キャッシュ有無確認結果受信部、49…ファイル更新情報受信部、50…ファイル情報管理DB更新部

【特許請求の範囲】
【請求項1】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置おいて、
前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報とを記憶し管理するファイル情報管理部と、
前記ユーザ端末装置から送信要求のあったファイルリストやファイル所有者情報を前記ユーザ端末装置に通知するファイル情報通知部と、
前記ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかを前記ユーザ端末装置群に問い合わせるファイル情報確認部と、
前記ユーザ端末装置からファイル情報更新のための情報を受信したときは前記ファイル情報管理部に記憶した前記ファイル情報を更新するファイル情報更新部とを備えた管理サーバ装置。
【請求項2】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に管理サーバ装置で受け付け、前記ストレージのファイルを読み書きする複数のユーザ端末装置において、
前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、
前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持し前記管理サーバ装置からの問い合わせに応じてキャッシュの有無を通知するキャッシュ情報通知部と、
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせるファイル情報要求部と、
他のユーザ端末装置または前記ストレージとファイルを送受信するファイル送受信部とを備えたユーザ端末装置。
【請求項3】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置をコンピュータで構成するとともに、前記コンピュータに、前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報とを記憶させ、
前記コンピュータを、
前記ユーザ端末装置から送信要求のあったファイルリストやファイル所有者情報を前記ユーザ端末装置に通知する手段と、
前記ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかを前記ユーザ端末装置群に問い合わせる手段と、
前記ユーザ端末装置からファイル情報更新のための情報を受信したときは前記ファイル情報管理部に記憶した前記ファイル情報を更新する手段として機能させるためのプログラム。
【請求項4】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に管理サーバ装置で受け付け、前記ストレージのファイルを読み書きする複数のユーザ端末装置をコンピュータで構成するとともに、
前記コンピュータに、
前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、
前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持する所有ファイル検索用情報を保持する所有ファイル検索用データベースとを設け、
前記コンピュータを、
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせる手段と、
他のユーザ端末装置または前記ストレージとファイルを送受信する手段として機能させるためのプログラム。
【請求項5】
請求項1の管理サーバ装置と、請求項2のユーザ端末装置とを備えたファイル共有システム。
【請求項6】
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせるファイル情報要求部と、
他のユーザ端末装置または前記ストレージとファイルを送受信するファイル送受信部とを備えたユーザ端末装置を有した請求項5記載のファイル共有システム。
【請求項7】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群と、前記ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置と、
前記管理サーバ装置に設けられ、前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報を記憶するファイル情報管理データベースと、
前記ユーザ端末装置群に設けられ、前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持する所有ファイル検索用情報を保持する所有ファイル検索用データベースとを有し、
前記ユーザ端末装置から前記ファイル情報管理データベースのファイルリストの送信要求するときは前記ユーザ端末装置は前記管理サーバ装置に対してファイルリストの送信要求を送信し、
前記管理サーバは前記ファイル情報管理データベースからファイルリストを読み出して前記ユーザ端末装置に送信し、
前記ストレージにファイルを書き込みするときは前記ユーザ端末装置は前記ストレージ及び書き込み対象のキャッシュ記憶部に対してファイルを作成し、
前記ユーザ端末装置は前記管理サーバ装置及び所有ファイル検索用データベースにファイルのキャッシュ所有者情報の更新を要求し、
前記管理サーバ装置はファイルのキャッシュ所有者情報の更新要求を受けると前記ファイル情報管理データベースにファイル所有者情報を更新し、
前記ストレージからファイルを読み込みするときは前記ユーザ端末装置は読み込み対象のファイルのキャッシュ所有者情報の要求を前記管理サーバ装置に送信し、
前記管理サーバ装置は読み込み対象のファイルのファイル所有者情報の要求を受けると前記ユーザ端末装置が保有するファイルのキャッシュ有無を前記ユーザ端末装置群に問い合わせし、
前記管理サーバ装置は前記ユーザ端末装置群から当該ファイルを保有の確認結果を受信してその確認結果をファイル所有者情報要求をしたユーザ端末装置に送信し、
ファイル所有者情報要求をしたユーザ端末装置は前記ユーザ端末装置群のうちいずれかのユーザ端末装置が当該ファイルを保有するとの確認結果を受信したときは当該ファイルを保有するユーザ端末装置から当該ファイルを読み込み、
一方、ファイル所有者情報要求をしたユーザ端末装置がいずれかユーザ端末装置も当該ファイルを保有しないとの確認結果を受信したときは前記ストレージから当該ファイルを読み込み、
ファイル所有者情報要求をしたユーザ端末装置は自己のキャッシュ記憶部に当該ファイルを読み込むとともに前記管理サーバ装置にファイル所有者情報の更新要求をし、
前記管理サーバ装置はファイル所有者情報の更新要求を受けたときは前記ファイル情報管理データベースに当該ファイルを読み込んだユーザ端末装置の所有情報を更新するファイル共有方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−54525(P2013−54525A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−192014(P2011−192014)
【出願日】平成23年9月2日(2011.9.2)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)