(57)【要約】【課題】WAN帯域の負荷を軽減するとともにデータ消失のリスクを軽減し、さらにファイルを管理する手間を軽減することである。【解決手段】ユーザ端末装置１２は、外部ネットワーク上のストレージ１８に対して論理的に異なる内部ネットワーク１１を介してファイルを共有し読み書きする。ファイル情報管理部３７は、ストレージ１８に存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置１２に関連付けたファイル所有者情報とを記憶し管理する。ファイル情報通知部３８は、送信要求のあったファイルリストやファイル所有者情報を通知する。ファイル情報確認部３９は、ファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかをユーザ端末装置群に問い合わせる。ファイル情報更新部４０は、ファイル情報更新のための情報を受信したときはファイル情報管理部３７に記憶したファイル情報を更新する。【選択図】図１
2013054525.tif 000002
【特許請求の範囲】
【請求項１】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置おいて、
前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報とを記憶し管理するファイル情報管理部と、
前記ユーザ端末装置から送信要求のあったファイルリストやファイル所有者情報を前記ユーザ端末装置に通知するファイル情報通知部と、
前記ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかを前記ユーザ端末装置群に問い合わせるファイル情報確認部と、
前記ユーザ端末装置からファイル情報更新のための情報を受信したときは前記ファイル情報管理部に記憶した前記ファイル情報を更新するファイル情報更新部とを備えた管理サーバ装置。
【請求項２】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に管理サーバ装置で受け付け、前記ストレージのファイルを読み書きする複数のユーザ端末装置において、
前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、
前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持し前記管理サーバ装置からの問い合わせに応じてキャッシュの有無を通知するキャッシュ情報通知部と、
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせるファイル情報要求部と、
他のユーザ端末装置または前記ストレージとファイルを送受信するファイル送受信部とを備えたユーザ端末装置。
【請求項３】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置をコンピュータで構成するとともに、前記コンピュータに、前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報とを記憶させ、
前記コンピュータを、
前記ユーザ端末装置から送信要求のあったファイルリストやファイル所有者情報を前記ユーザ端末装置に通知する手段と、
前記ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかを前記ユーザ端末装置群に問い合わせる手段と、
前記ユーザ端末装置からファイル情報更新のための情報を受信したときは前記ファイル情報管理部に記憶した前記ファイル情報を更新する手段として機能させるためのプログラム。
【請求項４】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群を前記内部ネットワークに接続し、ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に管理サーバ装置で受け付け、前記ストレージのファイルを読み書きする複数のユーザ端末装置をコンピュータで構成するとともに、
前記コンピュータに、
前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、
前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持する所有ファイル検索用情報を保持する所有ファイル検索用データベースとを設け、
前記コンピュータを、
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせる手段と、
他のユーザ端末装置または前記ストレージとファイルを送受信する手段として機能させるためのプログラム。
【請求項５】
請求項１の管理サーバ装置と、請求項２のユーザ端末装置とを備えたファイル共有システム。
【請求項６】
前記管理サーバ装置に記憶した前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持する前記キャッシュ記憶部に関連付けたファイル所有者情報とを問い合わせるファイル情報要求部と、
他のユーザ端末装置または前記ストレージとファイルを送受信するファイル送受信部とを備えたユーザ端末装置を有した請求項５記載のファイル共有システム。
【請求項７】
外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有し読み書きするユーザ端末装置群と、前記ユーザ端末装置群が前記ストレージにアクセスする際の通信を一次的に受け付ける管理サーバ装置と、
前記管理サーバ装置に設けられ、前記ストレージに存在するファイルのリストと当該ファイルのコピーを保持するユーザ端末装置に関連付けたファイル所有者情報を記憶するファイル情報管理データベースと、
前記ユーザ端末装置群に設けられ、前記ストレージに存在するファイルのうち一部のファイルのコピーをキャッシュとして保持するキャッシュ記憶部と、前記キャッシュ記憶部に存在するファイルのキャッシュの検索用情報を保持する所有ファイル検索用情報を保持する所有ファイル検索用データベースとを有し、
前記ユーザ端末装置から前記ファイル情報管理データベースのファイルリストの送信要求するときは前記ユーザ端末装置は前記管理サーバ装置に対してファイルリストの送信要求を送信し、
前記管理サーバは前記ファイル情報管理データベースからファイルリストを読み出して前記ユーザ端末装置に送信し、
前記ストレージにファイルを書き込みするときは前記ユーザ端末装置は前記ストレージ及び書き込み対象のキャッシュ記憶部に対してファイルを作成し、
前記ユーザ端末装置は前記管理サーバ装置及び所有ファイル検索用データベースにファイルのキャッシュ所有者情報の更新を要求し、
前記管理サーバ装置はファイルのキャッシュ所有者情報の更新要求を受けると前記ファイル情報管理データベースにファイル所有者情報を更新し、
前記ストレージからファイルを読み込みするときは前記ユーザ端末装置は読み込み対象のファイルのキャッシュ所有者情報の要求を前記管理サーバ装置に送信し、
前記管理サーバ装置は読み込み対象のファイルのファイル所有者情報の要求を受けると前記ユーザ端末装置が保有するファイルのキャッシュ有無を前記ユーザ端末装置群に問い合わせし、
前記管理サーバ装置は前記ユーザ端末装置群から当該ファイルを保有の確認結果を受信してその確認結果をファイル所有者情報要求をしたユーザ端末装置に送信し、
ファイル所有者情報要求をしたユーザ端末装置は前記ユーザ端末装置群のうちいずれかのユーザ端末装置が当該ファイルを保有するとの確認結果を受信したときは当該ファイルを保有するユーザ端末装置から当該ファイルを読み込み、
一方、ファイル所有者情報要求をしたユーザ端末装置がいずれかユーザ端末装置も当該ファイルを保有しないとの確認結果を受信したときは前記ストレージから当該ファイルを読み込み、
ファイル所有者情報要求をしたユーザ端末装置は自己のキャッシュ記憶部に当該ファイルを読み込むとともに前記管理サーバ装置にファイル所有者情報の更新要求をし、
前記管理サーバ装置はファイル所有者情報の更新要求を受けたときは前記ファイル情報管理データベースに当該ファイルを読み込んだユーザ端末装置の所有情報を更新するファイル共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、外部ネットワーク上のストレージに対して論理的に異なる内部ネットワークを介してファイルを共有して利用するための管理サーバ装置、ユーザ端末装置、プログラム、ファイル共有システム及び方法に関する。
【背景技術】
【０００２】
従来、外部ネットワークにあるストレージをファイル共有装置として利用するシステムがある。このシステムを利用することにより、ストレージの利用者はストレージの運用及び管理の手間を省き、ファイルを共有できる。
【０００３】
また、ファイル共有装置を複数のユーザで利用する環境においては、１つの共有ファイルに対して複数のユーザが同時に編集をしようとアクセスした場合、最初にアクセスしたユーザ以外はそのファイルに対する編集権限が与えられずロックされるが、このロックが解除されるタイミングは通知されないため、ユーザは逐次アクセス状況を確認する必要があり煩雑であるという問題がある。これについては、アクセス状況を管理する装置を用意し、アクセス状況の変化をユーザに通知することによってユーザの確認の手間を省く方法が提案されている。
【０００４】
さらに、ファイル共有装置を複数のユーザで利用する環境においては、複数のユーザで共有しているファイルを一人のユーザの意思で変更・削除する運用方法では不都合が生じる場合がある。これについては、ファイルに変更等が発生した場合、他のユーザにその旨を通知し、その変更等を承認するかの判断を仰ぐ、共有ファイル管理システムが提案されている。
【０００５】
しかしながら、従来のシステムでは、外部ネットワークにあるストレージと内部ネットワークにある端末との間で逐一ファイルリスト及びファイルをやりとりする構成であったため、頻繁に大きなファイルをやりとりする環境では、LANに比べ高価なWAN帯域を圧迫してしまう問題があった。また、外部ネットワークにあるストレージの運用及び管理がブラックボックスになっている構成であるため、外部ネットワークにあるストレージに障害が発生した場合などに、保存したデータが失われる可能性があるという問題もあった。
【０００６】
また、同時にファイルを編集できるユーザは一人であるという動作であったため、アクセス権を持っているユーザがアクセス権を離し忘れた場合などに他のユーザがいつまでもファイルを編集することが出来ないという問題は解決されないままであった。
【０００７】
また、ファイルの更新に対して関係者が承認をする動作が必要であったため、頻繁に更新が行われるような環境では、承認に手間がかかってしまうという問題があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−１２２８７２号公報
【特許文献２】特開２００９−２８２７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明が解決しようとする課題は、WAN帯域の負荷を軽減するとともにデータ消失のリスクを軽減し、さらにファイルを管理する手間を軽減することである。
【課題を解決するための手段】
【００１０】
本発明の実施形態の管理サーバ装置は、論理的に同一の内部ネットワークに接続されたユーザ端末装置群が論理的に異なる外部ネットワーク上のストレージにアクセスする際の通信を一次的に受け付けるものであり、ユーザ端末装置は、外部ネットワーク上のストレージに存在するファイルを読み込む際、内部ネットワークの他のユーザ端末装置が当該ファイルのコピー（以下、キャッシュという）を所有していれば、それを優先的に読み込む。ファイル情報管理部は、ストレージに存在するファイルと当該ファイルのキャッシュを保持するユーザ端末装置を関連付けたキャッシュ所有者情報とを記憶し管理する。ファイル情報通知部は、ユーザ端末装置からの要求に応じてファイルリストやキャッシュ所有者情報をユーザ端末装置に送信する。ファイル情報確認部は、ユーザ端末装置から読み込み対象のファイルのキャッシュ所有者情報の要求があったときはそのファイルを保有するかをユーザ端末装置群に問い合わせる。ファイル情報更新部は、ユーザ端末装置からファイル情報更新のための情報を受信したときはファイル情報管理部に記憶したキャッシュ所有者情報を更新する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るファイル共有システムのハードウエア構成を示すブロック構成図。
【図２】本発明の実施形態に係るファイル共有システムの管理サーバ装置及びユーザ端末装置の機能ブロック図。
【図３】本発明の実施形態に係るファイル共有システムのファイルリスト要求の動作を示すシーケンス図。
【図４】本発明の実施形態に係るファイル共有システムのファイル書き込みの動作を示すシーケンス図。
【図５】本発明の実施形態に係るファイル共有システムのファイル読み込みの動作を示すシーケンス図。
【図６】本発明の実施形態におけるファイル情報管理DB及び所有ファイル検索用DBのデータ構造とストレージのファイルシステムに記録される情報の一部の説明図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の実施形態を説明する。図１は本発明の実施形態に係るファイル共有システムのハードウエア構成を示すブロック構成図である。
【００１３】
図１において、内部ネットワーク１１には複数のユーザ端末装置１２ａ〜１２ｎが接続されるとともに、管理サーバ装置１３が接続されている。複数のユーザ端末装置１２ａ〜１２ｎはそれぞれ内部ストレージ１４ａ〜１４ｎと所有ファイル検索用DB（所有ファイル検索用データベース）１５ａ〜１５ｎを持つ。図１では、内部ストレージ１４ａ〜１４ｎと所有ファイル検索用DB１５ａ〜１５ｎとをユーザ端末装置１２ａ〜１２ｎの外部に図示しているが、ユーザ端末装置１２ａ〜１２ｎの内部に設けるようにしてもよい。
【００１４】
管理サーバ装置１３はファイル情報管理DB（ファイル情報管理データベース）１６を持つ。図１では、ファイル情報管理DB１６を管理サーバ装置１３の外部に図示しているが、管理サーバ装置１３の内部に設けるようにしてもよい。
【００１５】
複数のユーザ端末装置１２ａ〜１２ｎ及び管理サーバ装置１３は内部ネットワーク１１を介して接続される。また、内部ネットワーク１１にあるユーザ端末装置１２ａ〜１２ｎ及び管理サーバ装置１３はWAN１７を介して外部ネットワークのストレージ１８と接続される。
【００１６】
ユーザ端末装置１２ａ〜１２ｎの持つ内部ストレージ１４ａ〜１４ｎには、ストレージ１８上にあるファイルの一部がキャッシュとして保存されている。また、所有ファイル検索用DB１５ａ〜１５ｎには、所有するキャッシュのフィンガプリント（例えばハッシュ値）と、キャッシュのコピー元であるストレージ１８上のファイルパスの一部（以下、仮想ファイルパスという）と、キャッシュの内部ストレージ１４ａ〜１４ｎ上のファイルパス（以下、キャッシュファイルパスという）が格納されている。管理サーバ装置１３の持つファイル情報管理DB１６には、仮想ファイルパス、タイムスタンプ、フィンガプリント、キャッシュ所有者が格納されている。所有ファイル検索用DB１５ａ〜１５ｎ及びファイル情報管理DB１６の詳細については後述する。
【００１７】
ユーザ端末装置１２ａ〜１２ｎは利用者が操作する端末装置であり、ファイルリスト（仮想ファイルパス、タイムスタンプ、フィンガプリントが関連付けられた情報）の取得、読み込み、書き込みといった操作を行うことが可能となっている。これらの操作は、すべて管理サーバ装置１３が一次受付を行う。
【００１８】
ユーザ端末装置１２ａがファイルの読み込みまたは書き込みの操作を行う際には、対象のファイルのキャッシュを内部ネットワーク１１にある他のユーザ端末装置１２ｂ〜１２ｎのいずれかが所持していれば、対象ファイルはキャッシュを所持するユーザ端末装置１２ｉから取得する。対象ファイルのキャッシュを内部ネットワーク１１にある他の全てのユーザ端末装置１２ｂ〜１２ｎが保持していなければ、対象ファイルはストレージ１８から取得する。
【００１９】
図２は、本発明の実施形態に係るファイル共有システムの管理サーバ装置及びユーザ端末装置の機能ブロック図である。複数のユーザ端末装置１２ａ〜１２ｎは同一構成であるので、図２では１台のユーザ端末装置１２のみを示している。
【００２０】
ユーザ端末装置１２は、ファイル情報要求部１９と、ファイル送受信部２０と、キャッシュ記憶部２１と、キャッシュ情報通知部２２とを持つ。ファイル情報要求部１９は、ファイルリスト要求送信部２３、ファイルリスト受信部２４、ファイル所有者情報要求送信部２５、ファイル所有者情報受信部２６を備える。
【００２１】
ファイル送受信部２０は、ファイル転送依頼送信部２７、ファイル受信部２８、ファイル書き込み部２９、ファイル転送依頼受信部３０、ファイル送信部３１を備える。キャッシュ記憶部２１は内部ストレージ１４を備える。また、キャッシュ情報通知部２２は、キャッシュ有無確認依頼受信部３２、キャッシュ有無確認部３３、キャッシュ有無確認結果送信部３４、所有ファイル検索用DB更新部３５、所有ファイル検索用DB１５、ファイル更新情報送信部３６を備える。なお、図２では、内部ストレージ１４ａ〜１４ｎと所有ファイル検索用DB１５ａ〜１５ｎとをユーザ端末装置１２ａ〜１２ｎの内部に設けた場合を図示している。
【００２２】
また、管理サーバ装置１３は、ファイル情報管理部３７と、ファイル情報通知部３８と、ファイル情報確認部３９と、ファイル情報更新部４０とを持つ。ファイル情報管理部３７は、ファイル情報管理DB１６、ファイル所有者情報取得部４１を備える。
【００２３】
ファイル情報通知部３８は、ファイルリスト要求受信部４２、ファイルリスト取得部４３、ファイルリスト送信部４４、ファイル所有者情報要求受信部４５、ファイル所有者情報送信部４６を備える。ファイル情報確認部３９は、キャッシュ有無確認依頼送信部４７、キャッシュ有無確認結果受信部４８を備える。ファイル情報更新部４０は、ファイル更新情報受信部４９、ファイル情報管理DB更新部５０を備える。なお、図２では、ファイル情報管理DB１６を管理サーバ装置１３の内部に設けた場合を示している。
【００２４】
ユーザ端末装置１２は、ストレージ１８のファイルを読み書きするものである。ユーザ端末装置１２のキャッシュ記憶部２１は、ストレージ１８に存在するファイルのうち一部のファイルのコピーをキャッシュとして保持している。キャッシュ情報通知部２２は、キャッシュ記憶部２１に存在するファイルのキャッシュの検索用情報を保持し、管理サーバ装置１３からの問い合わせに応じてキャッシュの有無を管理サーバ１３に通知する。ファイル情報要求部１９は、管理サーバ１３のファイル情報管理DB１６に記憶したストレージ１８に存在するファイルと当該ファイルのキャッシュを保持するキャッシュ記憶部２１に関連付けたキャッシュ所有者情報とを管理サーバ１３に問い合わせるものである。ファイル送受信部２０は、他のユーザ端末装置１２またはストレージ１８とファイルを送受信するものである。
【００２５】
また、管理サーバ装置１３は、ユーザ端末装置１２ａ〜１２ｎがストレージ１８にアクセスする際の通信を一次的に受け付け、ストレージ１８に格納されたファイルをストレージ１８から送信するか、そのファイルのキャッシュを保持している他のユーザ端末装置１２から送信するかを決定するものである。
【００２６】
管理サーバ装置１３のファイル情報管理部３７は、ファイル情報管理DB１６に格納されたストレージ１８に存在するファイルと当該ファイルのキャッシュを保持するユーザ端末装置に関連付けたキャッシュ所有者情報とを管理するものである。
【００２７】
ファイル情報通知部３８は、ユーザ端末装置１２からの要求に応じてファイルリストやキャッシュ所有者情報をユーザ端末装置１２に通知するものである。ファイル情報確認部３９は、ユーザ端末装置１２ａから読み込み対象のファイルのキャッシュ所有者情報の要求があったときは、そのファイルを保有するか否かをユーザ端末装置１２ｂ〜１２ｎに問い合わせるものである。ファイル情報更新部４０は、ユーザ端末装置１２からファイル情報更新のための情報を受信したときは、ファイル情報管理部３７に記憶したファイル情報を更新するものである。
【００２８】
以下、ユーザ端末装置１２の機能について説明する。まず、ユーザ端末装置１２のファイル要求側機能について説明する。ファイルリスト要求送信部２３は、管理サーバ装置１３に対して、ファイルリスト要求を送信する。ファイルリスト受信部２４は、管理サーバ装置１３からファイルリストを受信する。このとき、受信するファイルリストは、ユーザが読み書きを行う対象のファイルを指定するための情報であり、仮想ファイルパス、タイムスタンプ、フィンガプリントといった情報を有する。ここで、仮想ファイルパスが同じでもフィンガプリントが異なれば別のファイルとみなす。この仕組みにより、仮想ファイルパスが同じでもバージョンが異なるファイルの存在を許容する。
【００２９】
ファイル所有者情報要求送信部２５は、管理サーバ装置１３に対して、指定したファイルのキャッシュ所有者情報を要求する。ファイル所有者情報受信部２６は、管理サーバ装置１３から、ファイル所有者情報を受信し、ファイル送受信部２０のファイル転送依頼送信部２７へ渡す。ファイル所有者情報は、ファイルまたはキャッシュの所有者のアドレス、仮想ファイルパス、フィンガプリント、タイムスタンプ、などの情報を有する。
【００３０】
ファイル転送依頼送信部３０は、ファイル所有者情報受信部から渡された情報に対応して、他のユーザ端末装置１２またはストレージ１８に対して、指定したファイルを転送するよう要求する。この要求にはファイルの仮想ファイルパス、フィンガプリントなどの情報が含まれる。
【００３１】
ファイル受信部２８では、他のユーザ端末装置１２またはストレージ１８からファイルを受信する。受信したファイルは自己のユーザ端末装置１２のキャッシュ記憶部２１の内部ストレージ１４にキャッシュとして保存する。また、キャッシュ情報通知部２２のファイル更新情報送信部３６に対して、受信したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。ファイル更新情報送信部３６は、ファイル受信部２８から渡された情報を管理サーバ装置１３に対して送信する。
【００３２】
ファイル書き込み部２９では、ストレージ１８にファイルを作成し、自己のユーザ端末装置１２の内部ストレージ１４にキャッシュを保存する。また、ファイル更新情報送信部３６に対して、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。また、キャッシュ情報通知部２２の所有ファイル検索用DB更新部３５に対して、作成したファイルの仮想ファイルパス、内部ストレージ１４上のファイルパス（以下、キャッシュファイルパスという）、フィンガプリント、及び「ファイル書き込み」という情報を渡す。
【００３３】
次に、ユーザ端末装置１２のファイル転送側機能について説明する。キャッシュ情報通知部２２のキャッシュ有無確認依頼受信部３２は、管理サーバ装置１３から、キャッシュ有無確認依頼を受信し、キャッシュ有無確認部３３へ渡す。キャッシュ有無確認依頼は、仮想ファイルパス、フィンガプリントなどの情報を有する。
【００３４】
キャッシュ有無確認部３３は、キャッシュ有無確認依頼受信部３２から渡された情報をもとに、所有ファイル検索用DB１５から対応するキャッシュファイルパスを検索し、キャッシュが実際に存在するかを問い合わせる。
【００３５】
問い合わせの結果、キャッシュが存在した場合、キャッシュのフィンガプリントを計算し、計算した結果のフィンガプリントがキャッシュ有無確認依頼受信部３２で受信したフィンガプリントと等しいかどうかチェックを行う。等しければキャッシュ有無確認結果送信部３４に「ファイル有り」という情報を渡す。等しくなければキャッシュ有無確認結果送信部３４に「ファイル変更」という情報と、計算した結果のフィンガプリントとを渡し、また、所有ファイル検索用DB更新部３５に、キャッシュ有無確認依頼受信部３２から渡された情報と「ファイル変更」という情報とを渡す。
【００３６】
一方、問い合わせの結果、ファイルが存在しなかった場合、所有ファイル検索用DB更新部３５にキャッシュ有無確認依頼受信部３２から渡された情報と「ファイル無し」という情報とを渡す。キャッシュ有無確認結果送信部３２は、キャッシュ有無確認部３３から渡された情報を管理サーバ装置１３に対して送信する。
【００３７】
ファイル転送依頼受信部３０は、他のユーザ端末装置１２からファイル転送依頼を受信し、これをもとに、所有ファイル検索用DB１５から対応するファイルのキャッシュファイルパスを検索し、ファイル送信部３１に対して、検索結果のキャッシュファイルパスと、ファイル転送依頼を送信したユーザ端末装置１２のアドレス渡す。
【００３８】
ファイル送信部３１は、ファイル転送依頼受信部３０から渡された情報をもとに、ファイル転送依頼を送信したユーザ端末装置１２に対し、検索結果のキャッシュファイルパスのファイルを送信する。
【００３９】
次に、ユーザ端末装置１２の共有機能について説明する。所有ファイル検索用DB更新部３５は、渡された情報をもとに、所有ファイル検索用DB１５を更新する。「ファイル無し」という情報を渡された場合、所有ファイル検索用DB１５からファイルのレコードを削除する。また、「ファイル変更」という情報を渡された場合、所有ファイル検索用DB１５のファイルのレコードのフィンガプリントを、その時点におけるファイルのフィンガプリントに変更する。また、「ファイル書き込み」という情報を渡された場合、所有ファイル検索用DB１５にファイルのレコードを追加する。
【００４０】
次に、管理サーバ装置１３の機能について説明する。ファイルリスト要求受信部４２は、ユーザ端末装置１２からファイルリスト要求を受信しファイルリスト取得部４３へ渡す。ファイルリスト取得部４３は、ファイルリスト要求受信部４２から渡された情報をもとに、ファイル情報管理DB１６から本システムで管理するファイルの情報を取得し、ファイルリスト送信部４４に渡す。ここで渡す情報は、仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を有する。ファイルリスト送信部４４は、ファイルリスト取得部４３から渡された情報をユーザ端末装置１２へ送信する。
【００４１】
また、ファイル所有者情報要求受信部４５は、ユーザ端末装置１２から指定ファイルのファイル所有者情報の要求を受信し、ファイル情報管理部３７のファイル所有者情報取得部４１へ渡す。この要求は、仮想ファイルパス、フィンガプリントなどの情報を有する。ファイル所有者情報取得部４１は、ファイル所有者情報要求受信部４５から渡された情報をもとに、ファイル情報管理DB１６から指定ファイルのキャッシュ所有者情報を取得し、ファイル情報確認部３９のキャッシュ有無確認依頼送信部４７に渡す。このキャッシュ所有者情報は、ユーザ端末装置１２のアドレスなどの情報を含む。
【００４２】
キャッシュ有無確認依頼送信部４７は、ファイル所有者情報取得部４１から渡された情報をもとに、所有者リストにあるユーザ端末装置１２に対して、キャッシュ有無確認依頼を順次送信する。キャッシュ有無確認依頼は仮想ファイルパス、フィンガプリントなどの情報を有する。
【００４３】
キャッシュ有無確認結果受信部４８は、ユーザ端末装置１２からキャッシュ有無確認結果の情報を受信する。「ファイル有り」という情報を受信した場合、ファイル所有者情報送信部４６に、情報を送信したユーザ端末装置１２のアドレス、仮想ファイルパス、フィンガプリントなどの情報を渡す。また、「ファイル変更」という情報を受信した場合、ファイル情報管理DB更新部５０に、情報を送信したユーザ端末装置１２のアドレス、情報に含まれる仮想ファイルパス、情報に含まれるタイムスタンプ、情報に含まれるフィンガプリントなどの情報を渡す。ファイル所有者情報送信部４６は、ユーザ端末装置１２に対してキャッシュ有無確認結果受信部４８から受け取った情報を送信する。
【００４４】
ファイル情報更新部４０のファイル更新情報受信部４９は、ユーザ端末装置１２からファイル情報を更新するための情報を受信し、ファイル情報管理DB更新部５０に渡す。この情報には、仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を有する。ファイル情報管理DB更新部５０は、渡された情報をもとにファイル情報管理DB１６を更新する。
【００４５】
次に、本発明の実施形態に係るファイル共有システムの動作を説明する。まず、ファイル共有システムのファイルリスト要求時の動作について説明する。図３は、本発明の実施形態に係るファイル共有システムのファイルリスト要求の動作を示すシーケンス図である。
【００４６】
（１）ユーザ端末装置１２は管理サーバ装置に対してファイルリスト（仮想ファイルパス、タイムスタンプ、フィンガプリントが関連付けられた情報）の要求を行う。  
このファイルリストの要求は、ユーザ端末装置１２におけるファイル情報要求部１９のファイルリスト要求送信部２３から送信される。
【００４７】
（２）管理サーバ装置１３はこのファイルリストの要求をファイル情報管理DB１６に転送する。  
ユーザ端末装置１２から送信されたファイルリストの要求は、管理サーバ装置１３におけるファイル情報通知部３８のファイルリスト要求受信部４２で受信され、ファイルリスト取得部４３へ渡す。
【００４８】
（３）ファイル情報管理DB１６からファイルリストを送信する。  
ファイル情報通知部３８のファイルリスト取得部４３は、ファイル情報管理DB１６からファイルリストの情報を取得し、ファイル情報通知部３８のファイルリスト送信部４４に渡す。
【００４９】
（４）管理サーバ装置１３はファイルリストをユーザ端末装置１２に送信する。  
ファイル情報通知部３８のファイルリスト送信部４４は、取得したファイルリストをユーザ端末装置１２に送信する。ユーザ端末装置１２では、ファイル情報要求部１９のファイルリスト受信部２４でファイルリストを受信する。なお、ファイルリストを受信したユーザ端末装置１２は、図示省略の表示装置や印刷装置などに出力し、ユーザにファイルリストを提供する。これにより、ストレージ１８に存在するファイルのリストと、当該ファイルのコピーを保持するユーザ端末装置１２との関連付けや、そのファイルのファイル所有者情報などがユーザに提供される。
【００５０】
次に、ファイル共有システムのファイル書き込み時の動作について説明する。図４は、本発明の実施形態に係るファイル共有システムのファイル書き込みの動作を示すシーケンス図である。
【００５１】
（１）ユーザ端末装置１２はストレージ１８にファイルを作成する。  
ユーザ端末装置１２がストレージ１８に新たにファイルを作成するには、ファイル送信部２０のファイル書き込み部２９は、ストレージ１８に新たなファイルを作成する。
【００５２】
（２）ユーザ端末装置１２は内部ストレージ１４にファイル（キャッシュ）を作成する。  また、ファイル送信部２０のファイル書き込み部２９は、ストレージ１８に送信したファイルのキャッシュをキャッシュ記憶部２１の内部ストレージ１４に作成する。
【００５３】
（３）ユーザ端末装置１２は管理サーバ装置１３に対してファイル所有者情報の更新を依頼する。  
また、ファイル送信部２０のファイル書き込み部２９は、ファイル更新情報送信部３６に対して、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を渡す。ファイル更新情報送信部３６は、作成したファイルの仮想ファイルパス、タイムスタンプ、フィンガプリントなどの情報を管理サーバ装置１３に対して送信する。管理サーバ装置１３では、ファイル更新情報送信部３６から送信されてきた情報をファイル情報更新部４０のファイル更新情報受信部４９で受信し、ファイル更新情報受信部４９は、ユーザ端末装置１２からファイル情報を更新するための情報を受信すると、ファイル情報管理DB更新部５０に渡す。
【００５４】
（４）管理サーバ装置１３はファイル情報管理DB１６にファイル所有者情報を更新する。ファイル情報管理DB更新部５０は、渡された情報をもとにファイル情報管理DB１６に新たなレコードを追加しファイル所有者情報を更新する。仮想ファイルパスにはストレージ１８上のファイルパスの一部を、タイムスタンプにはファイルのタイムスタンプを、フィンガプリントにはファイルのフィンガプリントを、所有者にはユーザ端末装置のアドレスを代入する。これにより、作成されたファイルのファイル所有者情報が更新される。
【００５５】
（５）ユーザ端末装置１２は所有ファイル検索用DB１５にファイル所有者情報を更新する。  
また、ファイル送信部２０のファイル書き込み部２９は、キャッシュ情報通知部２２の所有ファイル検索用DB更新部３５に対して、作成したファイルの仮想ファイルパス、フィンガプリント、及び「ファイル書き込み」という情報を渡す。
【００５６】
所有ファイル検索用DB更新部３５は、新たなレコードの仮想ファイルパスにはストレージ１８上のファイルパスの一部を、フィンガプリントにはファイルのフィンガプリントを、キャッシュファイルパスには内部ストレージ上のファイルパスを代入する。
【００５７】
次に、ファイル共有システムのファイル読み込み時の動作について説明する。図５は、本発明の実施形態に係るファイル共有システムのファイル読み込みの動作を示すシーケンス図である。
【００５８】
（１）ファイル要求側のユーザ端末装置１２ａは管理サーバ装置１３に読み込み対象のファイルのキャッシュ所有者情報を要求する。  
いま、ユーザ端末装置１２ａがファイル要求側のユーザ端末装置であるとし、ストレージ１８に格納されたファイルを読み込もうとした場合には、ユーザ端末装置１２ａは、ファイル情報要求部１９のファイル所有者情報要求送信部２５から管理サーバ装置１３に対して、指定したファイルのキャッシュ所有者情報を要求する。
【００５９】
（２）管理サーバ装置１３はファイル情報管理DB１６を検索する。  
管理サーバ装置１３では、読み込み対象のファイルのキャッシュ所有者情報の要求をファイル情報通知部３８のファイル所有者情報要求受信部４５で受信し、ファイル所有者情報要求受信部４５は、その要求をファイル情報管理部３７のファイル所有者情報取得部４１へ渡す。この要求は、仮想ファイルパス、フィンガプリントなどの情報を有する。ファイル所有者情報取得部４１は、ファイル情報管理DB１６から指定ファイルのキャッシュ所有者情報を検索する。
【００６０】
（３）管理サーバ装置１３はファイル情報管理DB１６からキャッシュ所有者情報を取得する。  
ファイル所有者情報取得部４１は、読み込み対象のファイルの仮想ファイルパス及びフィンガプリントを検索キーとしてキャッシュ所有者情報を取得する。そして、取得したキャッシュ所有者情報をファイル情報確認部３９のキャッシュ有無確認依頼送信部４７に渡す。このキャッシュ所有者情報は、ユーザ端末装置１２のアドレスなどの情報を含む。
【００６１】
（４）管理サーバ装置１３は、取得したキャッシュ所有者情報にあるユーザ端末装置１２ｉに対しキャッシュ有無確認依頼を行う。  
ファイル情報確認部３９のキャッシュ有無確認依頼送信部４７は、ファイル所有者情報取得部４１から渡された情報をもとに、キャッシュ所有者情報にあるユーザ端末装置１２ｉに対して、キャッシュ有無確認依頼をファイル所有者情報送信部４６に順次送信する。キャッシュ有無確認依頼は仮想ファイルパス、フィンガプリントなどの情報を有する。
【００６２】
（５）キャッシュ有無確認依頼を受け取ったユーザ端末装置１２ｉは、キャッシュファイルパスを検索する。  
ユーザ端末装置１２ｉでは、キャッシュ有無確認依頼をキャッシュ情報通知部２２のキャッシュ有無確認依頼受信部３２で受信し、キャッシュ有無確認部３３へ渡す。キャッシュ有無確認部３３は、キャッシュ有無確認依頼受信部３２から渡された情報をもとに、所有ファイル検索用DB１５ｉから対応するキャッシュのファイルパスを検索し、キャッシュが実際に存在するかを問い合わせる。
【００６３】
（６）キャッシュファイルパスを取得する。  
ユーザ端末装置１２ｉは、所有ファイル検索用DB１５ｉから、仮想ファイルパス及びフィンガプリントを検索キーとしてキャッシュファイルパスを取得する。
【００６４】
（７）キャッシュの有無確認を行う。  
ユーザ端末装置１２ｉのキャッシュ有無確認部３３は、内部ストレージ１４ｉから上記ステップ（６）で取得したキャッシュファイルパスにファイルが存在しているか確認する。
【００６５】
（８）キャッシュ有無確認結果を受信する。  
ユーザ端末装置１２ｉのキャッシュ有無確認部３３は、ファイル有無確認結果を受信する。ファイルが存在している場合、上記ステップ（４）で受け取ったフィンガプリントとファイルのフィンガプリントとが一致しているか比較を行う。
【００６６】
（９）キャッシュ有無確認結果を管理サーバ１３に送信する。  
ユーザ端末装置１２ｉのキャッシュ有無確認結果送信部３４は上記ステップ（７）の確認結果を管理サーバ装置１３に送信する。
【００６７】
（１０）ファイル所有者情報の更新を行う。  
管理サーバ装置１３のキャッシュ有無確認結果受信部４８は、上記ステップ（９）の確認結果に応じて、ファイル情報管理DB１６を更新する。ファイルが存在していない場合には、ファイル情報管理DB１６から、キャッシュ所有者が確認結果を送信したユーザ端末装置１２ｉであるレコードを削除する。フィンガプリントが一致していなかった場合には、ファイル情報管理DB１６のレコードのフィンガプリントを更新する。
【００６８】
（１１）ファイル所有者情報を送信する。  
管理サーバ装置１３のキャッシュ有無確認結果受信部４８は、ファイル有無確認結果によりフィンガプリントが一致していた場合には、そのユーザ端末装置１２ｉのアドレスをファイル要求側のユーザ端末装置１２ａに対して送信する。一方、管理サーバ装置１３のキャッシュ有無確認結果受信部４８は、ファイル所有者情報にある全てのユーザ端末装置１２のフィンガプリントが一致していなかった場合には、ストレージ１８のアドレスをファイル要求側のユーザ端末装置１２ｉに対して送信する。
【００６９】
（１２−Ａ）ファイル要求をする。  
ファイル要求側のユーザ端末装置１２ａは、他のユーザ端末装置１２ｉがファイルを保持しているときは、上記ステップ（１１）で受け取ったアドレスに応じて、他のユーザ端末装置１２ｉに対してファイル要求を行う。
【００７０】
（１３−Ａ）ファイル要求をする。  
他のユーザ端末装置１２ｉは、内部ストレージ１４ｉにファイル要求をする。
【００７１】
（１４−Ａ）ファイル転送をする。  
他のユーザ端末装置１２ｉは、内部ストレージ１４ｉからファイルを読み出し転送する。
【００７２】
（１５−Ａ）ファイル転送をする。  
他のユーザ端末装置１２ｉは、内部ストレージ１４ｉからを読み出したファイルをファイル要求側のユーザ端末装置１２ａに転送する。
【００７３】
（１２−Ｂ）ファイル要求をする。  
ファイル要求側のユーザ端末装置１２ａは、他の全てのユーザ端末装置１２がファイルを保持していないときは、上記ステップ（１１）で受け取ったアドレスに応じて、ストレージ１８に対してファイル要求を行う。
【００７４】
（１３−Ｂ）ファイル転送をする。  
ストレージ１８は読み出したファイルをファイル要求側のユーザ端末装置１２ａに転送する。
【００７５】
（１６）ファイルの作成を行う。  
ファイル要求側のユーザ端末装置１２ａは内部ストレージ１４ａに対して、上記ステップ（１５−Ａ）または上記ステップ（１３−Ｂ）で受け取ったファイルをコピーする。
【００７６】
（１７）ファイル所有者情報の更新を行う。  
ファイル要求側のユーザ端末装置１２ａは管理サーバ装置１３に対して、ファイル所有者情報を更新するよう依頼する。
【００７７】
（１８）ファイル所有者情報の更新を行う。  
管理サーバ装置１３はファイル情報管理DB１６に新たなレコードを追加する。レコードの仮想ファイルパスにはストレージ１８上のファイルパスの一部を、タイムスタンプにはファイルのタイムスタンプを、フィンガプリントにはファイルのフィンガプリントを、キャッシュ所有者にはユーザ端末装置１２ａのアドレスを記入する。
【００７８】
（１９）ファイル所有者情報の更新を行う。  
ファイル要求側のユーザ端末装置１２ａは所有ファイル検索用ＤＢ１５ａに新たなレコードを追加する。レコードの仮想ファイルパスにはストレージ１８上のファイルパスの一部を、フィンガプリントにはファイルのフィンガプリントを、キャッシュファイルパスには内部ストレージ１４ａ上のファイルパスを記入する。
【００７９】
次に、本発明の実施形態におけるファイル情報管理DB１６及び所有ファイル検索用DB１５のデータ構造、ストレージ１８のファイルシステムに記録される情報の一部について説明する。図６は、本発明の実施形態に係るファイル共有システムのファイル情報管理DB１６及び所有ファイル検索用DB１５のデータ構造とストレージ１８のファイルシステムに記録される情報の一部の説明図であり、図６（ａ）はファイル情報管理DB１６の説明図、図６（ｂ）は所有ファイル検索用DB１５の説明図、図６（ｃ）はストレージ１８の説明図である。
【００８０】
まず、ファイル情報管理DB１５について説明する。ファイル情報管理DB１６は、管理サーバ装置１３が持つデータベースであり、図６（ａ）に示すように、仮想ファイルパス、タイムスタンプ、フィンガプリント、キャッシュ所有者などのフィールドを持つ。
【００８１】
仮想ファイルパスには、ファイル共有システムにおけるファイルの位置情報が格納される。これは、ストレージ１８におけるファイルの保存場所と対応している。本システムではファイルパスが同一であっても、後述するフィンガプリントが異なれば別のファイルとして管理する。タイムスタンプには、ファイルの最終更新時刻が格納される。これは、本システムを利用するユーザがUI上で同名のファイルを区別するために用いる。フィンガプリントには、ファイルの内容から計算されるハッシュ値が格納される。これは、ファイルの内容が一部でも異なれば全く別の値となる。所有者には、ファイルのキャッシュを所有するユーザ端末装置１２のアドレスが格納される。
【００８２】
次に、所有ファイル検索用DB１５について説明する。所有ファイル検索用BD１５は、ユーザ端末装置１２それぞれが持つデータベースであり、図６（ｂ）に示すように、仮想ファイルパス、フィンガプリント、キャッシュファイルパスなどのフィールドを持つ。
【００８３】
仮想ファイルパスとフィンガプリントは、ファイル情報管理DB１６の仮想ファイルパス及びフィンガプリントと対応する。キャッシュファイルパスは、仮想ファイルパスとフィンガプリントとの組み合わせから特定されるファイルのキャッシュを保存している、ユーザ端末装置１２の内部ストレージ１４のアドレスである。
【００８４】
次に、ストレージ１８のファイルシステムについて説明する。ストレージ１８は、図６（ｃ）に示すように、ファイルパスを有し、このファイルパスはストレージ１８のファイルシステムにおいて、ファイルの位置を管理するための情報である。
【００８５】
図６において、ストレージ１８上の/public配下に、sample.txtと、sample2.txtが2バージョンと、sample3.txtとが保存されている一例を示している。ここでは、ストレージ１８のファイルシステムのファイルパスの一例のように、それぞれのファイルパスの末尾にフィンガプリントを付加することで、同名だが内容が異なるファイルの存在を可能にしている。
【００８６】
ストレージ１８上のファイルの情報は、管理サーバ装置１３のファイル情報管理DB１６によって管理される。ここでは、sample.txtのキャッシュが192.168.1.2によって保持、sample2.txtの１バージョンのキャッシュが192.168.1.1と192.168.1.3とによって保持、もう１バージョンのキャッシュが192.168.1.2によって保持、sample3.txtのキャッシュがどの端末からも保持されていない状態を表している。
【００８７】
図６中の所有ファイル検索用DB１５はユーザ端末装置192.168.1.2の所有ファイル検索用DBの例である。ここでは、sample.txtを192.168.1.2の内部ストレージのc:\cache\public\sample.txtに、sample2.txtを内部ストレージ１４のc:\cache\public\sample2.txtに保存している状態を表している。
【００８８】
このようにすることによって、以下のような効果を得ることができる。
【００８９】
（１）ストレージ１８に保存されるファイルは、ファイルにアクセスしたユーザ端末装置１２にキャッシュされる仕組みになっているため、内部ネットワーク１１内にファイルをキャッシュしているユーザ端末装置１２が存在すれば、ストレージ１８からファイルを取得する必要がなくなるので、結果的にWAN帯域の負荷を軽減することができる。
【００９０】
（２）使用頻度の高いファイルは、多くのユーザ端末装置１２にキャッシュされる仕組みになっているため、使用頻度の高さに比例してファイルのバックアップがとられている状態となり、結果的にデータの消失のリスクを軽減することができる。
【００９１】
（３）ストレージ１８上のファイルパスが全く同一のものであっても、フィンガプリントが異なれば別ファイルとして扱う仕組みになっているため、複数のユーザに同時に編集された結果としてファイルの派生が複数作成されるような場合でも、一方のファイルを失うリスクを避けることが可能となり、結果的にファイルを管理する手間を軽減することができる。
【００９２】
このように、本発明の実施形態のファイル共有システムでは、ユーザ端末装置１２が外部のストレージ１８のファイルをダウンロードしようとする際、当該ファイルと同一のものを内部ネットワーク１１の異なるユーザ端末装置１２が所持していた場合、そちらからダウンロードすることにより、外部ネットワークの負荷を低減できる。
【００９３】
以上の説明では、ユーザ端末装置１２は内部ストレージ１４及び所有ファイル検索用DB１５を有し、ファイル交換ネットワークへの参加を可能としているが、内部ストレージ１４及び所有ファイル検索用DB１５を有しないユーザ端末装置１２を追加して内部ネットワーク１１に接続するようにしてもよい。すなわち、ファイル情報要求部１９及びファイル送受信部２０のみを有するユーザ端末装置１２を接続し、ファイル交換ネットワークに参加しないユーザ端末装置１２を存在させるようにしてもよい。
【００９４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９５】
１１…内部ネットワーク、１２…ユーザ端末装置、１３…管理サーバ装置、１４…内部ストレージ、１５…所有ファイル検索用DB、１６…ファイル情報管理DB、１７…WAN、１８…ストレージ、１９…ファイル情報要求部、２０…ファイル送受信部、２１…キャッシュ記憶部、２２…キャッシュ情報通知部、２３…ファイルリスト要求送信部、２４…ファイルリスト受信部、２５…ファイル所有者情報要求送信部、２６…ファイル所有者情報受信部、２７…ファイル転送依頼送信部、２８…ファイル受信部、２９…ファイル書き込み部、３０…ファイル転送依頼受信部、３１…ファイル送信部、３２…キャッシュ有無確認依頼受信部、３３…キャッシュ有無確認部、３４…キャッシュ有無確認結果送信部、３５…所有ファイル検索用DB更新部、３６…ファイル更新情報送信部、３７…ファイル情報管理部、３８…ファイル情報通知部、３９…ファイル情報確認部、４０…ファイル情報更新部、４１…ファイル所有者情報取得部、４２…ファイルリスト要求受信部、４３…ファイルリスト取得部、４４…ファイルリスト送信部、４５…ファイル所有者情報要求受信部、４６…ファイル所有者情報送信部、４７…キャッシュ有無確認依頼送信部、４８…キャッシュ有無確認結果受信部、４９…ファイル更新情報受信部、５０…ファイル情報管理DB更新部
【図１】
2013054525.tif 000003
【図２】
2013054525.tif 000004
【図３】
2013054525.tif 000005
【図４】
2013054525.tif 000006
【図５】
2013054525.tif 000007
【図６】
2013054525.tif 000008