(57)【特許請求の範囲】
【請求項１】
複数の文書記憶装置の格納場所に格納されている、同じ文書を抽出する抽出手段と、
前記複数の格納場所のうち、代表となる格納場所である代表格納場所を決定する決定手段と、
前記代表格納場所以外の格納場所にある文書を、該代表格納場所を示すリンクに置換する置換手段
を有し、
前記決定手段は、文書記憶装置のタイプ毎に定義されている保有料金とアクセス料金から算出される各格納場所における文書の保有コストを用いて、代表格納場所を決定する、
情報処理装置。
【請求項２】
前記決定手段は、文書に対するアクセスの履歴を用いて、代表格納場所を決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、複数の格納場所を有する集合を生成し、該集合内の格納場所におけるアクセスの履歴を用いて、該集合内の代表格納場所を決定する、
請求項２に記載の情報処理装置。
【請求項４】
文書のアクセス権管理リストを前記リンク毎に付与する付与手段
をさらに有する請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
コンピュータを、
複数の文書記憶装置の格納場所に格納されている、同じ文書を抽出する抽出手段と、
前記複数の格納場所のうち、代表となる格納場所である代表格納場所を決定する決定手段と、
前記代表格納場所以外の格納場所にある文書を、該代表格納場所を示すリンクに置換する置換手段
として機能させ、
前記決定手段は、文書記憶装置のタイプ毎に定義されている保有料金とアクセス料金から算出される各格納場所における文書の保有コストを用いて、代表格納場所を決定する、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザーが保存する情報は、同じデータやファイルをユーザー毎に個別に保存しているケースが多く見られ、このため、管理者は、ストレージには同じデータが複数箇所に重複保存されているものの、ユーザーが異なるため共有化／削除することもできず、余分なストレージエリアを消費しているが、本ストレージ仮想化装置により、データ重複除外機能を利用してリソース効率化が可能となるストレージ仮想化装置の新たな機能を生み出すことを課題とし、ストレージ仮想化装置は、配下のデータの同一性をチェックし、同一データがあれば、１データのみ特定のストレージエリアに移動させ代表データとし、それ以外のデータは削除するが、ただし、ユーザー毎に本ファイルを用意する必要があるため、代表実データと、各ユーザー上の仮想化エリア上の仮想ファイルとマッピングさせて、参照できるようにすることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−００８８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、重複して格納される新規ファイルを仮想ファイルとして、既存ファイルにマッピングすることが行われている。
ところで、複数の文書記憶装置における重複ファイルに対して、この仮想ファイルを適用した場合は、既存ファイルのみがマッピング先とされてしまう。このような場合、例えば、アクセスが多いにもかかわらず、仮想ファイルであると、通信時間が必要であり、アクセス時間が長くかかってしまうことが起こり得る。しかし、特許文献１に記載の技術では、１つの文書記憶装置内における重複ファイルの排除であるため、代表とするファイルをいずれにするかについては、何ら考慮されていない。
そこで、本発明は、同じ文書を、代表格納場所を示すリンクに置換する場合にあって、その代表格納場所を決定することができるようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、複数の文書記憶装置の格納場所に格納されている、同じ文書を抽出する抽出手段と、前記複数の格納場所のうち、代表となる格納場所である代表格納場所を決定する決定手段と、前記代表格納場所以外の格納場所にある文書を、該代表格納場所を示すリンクに置換する置換手段を有し、前記決定手段は、文書記憶装置のタイプ毎に定義されている保有料金とアクセス料金から算出される各格納場所における文書の保有コストを用いて、代表格納場所を決定する、情報処理装置である。
【０００６】
請求項２の発明は、前記決定手段は、文書に対するアクセスの履歴を用いて、代表格納場所を決定する、請求項１に記載の情報処理装置である。
【０００７】
請求項３の発明は、前記決定手段は、複数の格納場所を有する集合を生成し、該集合内の格納場所におけるアクセスの履歴を用いて、該集合内の代表格納場所を決定する、請求項２に記載の情報処理装置である。
【０００８】
請求項４の発明は、文書のアクセス権管理リストを前記リンク毎に付与する付与手段をさらに有する請求項１から３のいずれか一項に記載の情報処理装置である。
【０００９】
請求項５の発明は、コンピュータを、複数の文書記憶装置の格納場所に格納されている、同じ文書を抽出する抽出手段と、前記複数の格納場所のうち、代表となる格納場所である代表格納場所を決定する決定手段と、
前記代表格納場所以外の格納場所にある文書を、該代表格納場所を示すリンクに置換する置換手段として機能させ、前記決定手段は、文書記憶装置のタイプ毎に定義されている保有料金とアクセス料金から算出される各格納場所における文書の保有コストを用いて、代表格納場所を決定する、情報処理プログラムである。
【発明の効果】
【００１０】
請求項１の情報処理装置によれば、同じ文書を、代表格納場所を示すリンクに置換する場合にあって、その代表格納場所を決定することができる。
【００１１】
請求項２の情報処理装置によれば、文書に対するアクセスの履歴を用いて、代表格納場所を決定することができる。
【００１２】
請求項３の情報処理装置によれば、複数の格納場所を有する集合を生成し、その集合内の格納場所におけるアクセスの履歴を用いて、その集合内の代表格納場所を決定することができる。
【００１３】
請求項４の情報処理装置によれば、文書のアクセス権管理リストをリンク毎に付与することができる。
【００１４】
請求項５の情報処理プログラムによれば、同じ文書を、代表格納場所を示すリンクに置換する場合にあって、その代表格納場所を決定することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】本実施の形態による処理例を示すフローチャートである。
【図４】実体ファイルテーブルのデータ構造例を示す説明図である。
【図５】本実施の形態が対象とする実体ファイルテーブル４００の例を示す説明図である。
【図６】集約実体ファイルテーブルのデータ構造例を示す説明図である。
【図７】同一ファイルテーブルのデータ構造例を示す説明図である。
【図８】リンク−ファイル管理テーブルのデータ構造例を示す説明図である。
【図９】ローカルリンク−ファイル管理テーブルのデータ構造例を示す説明図である。
【図１０】本実施の形態による処理例を示す説明図である。
【図１１】本実施の形態による処理例を示すフローチャートである。
【図１２】本実施の形態による処理例を示すフローチャートである。
【図１３】本実施の形態による処理例を示すフローチャートである。
【図１４】集約アクセスログのデータ構造例を示す説明図である。
【図１５】保有コストテーブルのデータ構造例を示す説明図である。
【図１６】要求元カウントテーブルのデータ構造例を示す説明図である。
【図１７】本実施の形態による処理例を示すフローチャートである。
【図１８】本実施の形態による処理例を示す説明図である。
【図１９】本実施の形態による処理例を示す説明図である。
【図２０】本実施の形態による処理例を示す説明図である。
【図２１】本実施の形態による処理例を示す説明図である。
【図２２】中心サーバー適用テーブルのデータ構造例を示す説明図である。
【図２３】本実施の形態による処理例を示すフローチャートである。
【図２４】本実施の形態による処理例を示すフローチャートである。
【図２５】集約実体ファイルテーブルのデータ構造例を示す説明図である。
【図２６】同一ファイルテーブルのデータ構造例を示す説明図である。
【図２７】リンク−ファイル管理テーブルのデータ構造例を示す説明図である。
【図２８】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、すべての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１７】
本実施の形態である情報処理装置１００は、同じ文書（以下、ファイルともいう）を、代表格納場所を示すリンクに置換するものであって、図１の例に示すように、通信モジュール１１０、実体ファイルテーブル作成モジュール１２０、集約実体ファイルテーブル作成モジュール１３０、同一ファイルテーブル作成モジュール１４０、リンク・ファイル管理テーブル作成モジュール１５０、記憶モジュール１８０を有している。なお、文書とは、主にテキストデータ、場合によっては図形、画像、動画、音声等の電子データ（ファイルともいわれる）、又はこれらの組み合わせであり、記憶、編集及び検索等の対象となり、システム又は利用者間で個別の単位として交換できるものをいい、これらに類似するものを含む。具体的には、文書作成プログラムによって作成された文書、Ｗｅｂページ等を含む。
情報処理装置１００は、文書の個別リンクと実体の関係を管理する。そして、文書のアクセス権管理リストはこの個別リンク毎にもつようにしてもよい。
【００１８】
通信モジュール１１０は、実体ファイルテーブル作成モジュール１２０、リンク・ファイル管理テーブル作成モジュール１５０、記憶モジュール１８０と接続されている。通信モジュール１１０は、文書記憶装置との通信を行う。ここでの文書記憶装置として、例えば、文書サーバー（以下、ファイルサーバーともいう）、個人が用いる情報処理装置等がある。また、個人が用いる情報処理装置として、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、スマートフォンを含む携帯端末装置等がある。
【００１９】
実体ファイルテーブル作成モジュール１２０は、通信モジュール１１０、集約実体ファイルテーブル作成モジュール１３０、記憶モジュール１８０と接続されている。実体ファイルテーブル作成モジュール１２０は、リロケーションクローラ―１５５によって収集された文書に関する情報を管理する。例えば、実体ファイルテーブル４００を生成する。図４は、実体ファイルテーブル４００のデータ構造例を示す説明図である。実体ファイルテーブル４００は、ＩＤ欄４１０、ファイル名欄４２０、ハッシュ欄４３０、物理位置欄４４０、ＡＣＬ欄４５０を有している。ＩＤ欄４１０は、本実施の形態において、実体ファイルテーブル４００内の各行（ファイル（文書））を一意に識別するための情報（ＩＤ：ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を記憶している。ファイル名欄４２０は、ファイル名を記憶している。ハッシュ欄４３０は、そのファイルのハッシュ値を記憶している。物理位置欄４４０は、そのファイルの物理位置を記憶している。ＡＣＬ欄４５０は、そのファイルのアクセス権管理リストを記憶している。実体ファイルテーブル４００は、文書を記憶している装置（後述するノード、各ユーザー用端末２１０、各ファイルサーバー２５０）毎に生成する。なお、実体ファイルテーブル作成モジュール１２０が生成するのではなく、文書を記憶している装置が生成した実体ファイルテーブル４００を収集してもよい。
【００２０】
集約実体ファイルテーブル作成モジュール１３０は、実体ファイルテーブル作成モジュール１２０、同一ファイルテーブル作成モジュール１４０、記憶モジュール１８０と接続されている。集約実体ファイルテーブル作成モジュール１３０は、複数の文書記憶装置の格納場所に格納されている、同じ文書を抽出する。例えば、対応する文書の内容をマッチングさせて、同じ文書であるか否かを判断してもよいし、文書に対してハッシュ値を計算して、そのハッシュ値が同じものを、同じ文書として抽出してもよい。なお、「複数の文書記憶装置」であるので、もちろんのことながら、「複数の格納場所」である。同じ文書は、複数の文書記憶装置内にあるが、そのうちの１つの文書記憶装置内において複数の格納場所にある場合を含めてもよい。
集約実体ファイルテーブル作成モジュール１３０は、例えば、集約実体ファイルテーブル６００を生成する。図６は、集約実体ファイルテーブル６００のデータ構造例を示す説明図である。集約実体ファイルテーブル６００は、ＩＤ欄６１０、ファイル名欄６２０、ハッシュ欄６３０、ＬＯＣコード欄６４０、ノードＩＤ欄６５０、物理位置欄６６０、ＡＣＬ欄６７０を有している。ＩＤ欄６１０は、本実施の形態において、集約実体ファイルテーブル６００内の各行を一意に識別するための情報（ＩＤ）を記憶している。ファイル名欄６２０は、ファイル名を記憶している。ハッシュ欄６３０は、そのファイルのハッシュ値を記憶している。ＬＯＣコード欄６４０は、そのファイルが格納されている装置の位置を示すＬＯＣコード（ロケーションコード）を記憶している。つまりＬＯＣコードは、ユーザー用端末２１０、ファイルサーバー２５０等が設置されている場所を示しており、例えば、「０♯０４５０」は、横浜にあるユーザー用端末２１０を示し、「１♯０７５０」は、京都にあるファイルサーバー２５０を示し、「２♯００００」は、アーカイブの機能を有しているファイルサーバー２５０を示している。ノードＩＤ欄６５０は、本実施の形態において、そのファイルを格納していた装置（ノード、具体的には、ユーザー用端末２１０、ファイルサーバー２５０）を一意に識別するための情報（ノードＩＤ）を記憶している。物理位置欄６６０は、そのファイルの格納場所である物理位置を記憶している。ＡＣＬ欄６７０は、そのファイルのアクセス権管理リストを記憶している。
【００２１】
同一ファイルテーブル作成モジュール１４０は、集約実体ファイルテーブル作成モジュール１３０、リンク・ファイル管理テーブル作成モジュール１５０、記憶モジュール１８０と接続されている。
同一ファイルテーブル作成モジュール１４０は、例えば、同一ファイルテーブル７００を生成する。図７は、同一ファイルテーブル７００のデータ構造例を示す説明図である。同じファイルを抽出したものである。実体へのリンクを有している。同一ファイルテーブル７００は、集約ＩＤ欄７１０、ハッシュ欄７２０、実体１欄７３０、実体２欄７４０を有している。集約ＩＤ欄７１０は、本実施の形態において、同一ファイルテーブル７００内の各行を一意に識別するための情報（集約ＩＤ）を記憶している。ハッシュ欄７２０は、ハッシュ値を記憶している。実体１欄７３０は、実体１のＩＤ（集約実体ファイルテーブル６００のＩＤ欄６１０の内容）を記憶している。実体２欄７４０は、実体２のＩＤ（集約実体ファイルテーブル６００のＩＤ欄６１０の内容）を記憶している。さらに、実体１欄７３０と同等の欄が続いてもよい。
【００２２】
リンク・ファイル管理テーブル作成モジュール１５０は、リロケーションクローラ―１５５、リロケーション分析モジュール１６０、クラスター分割モジュール１６５、リロケーションモジュール１７０を有しており、通信モジュール１１０、同一ファイルテーブル作成モジュール１４０、記憶モジュール１８０と接続されている。
リロケーションクローラ―１５５は、通信モジュール１１０を介して、複数の文書記憶装置と通信を行い、文書又は文書のハッシュ値を収集する。定期的に複数回の収集を行ってもよい。そして、実体ファイルテーブル作成モジュール１２０による処理を行わせる。さらに、リロケーションクローラ―１５５は、文書に対するアクセスの履歴を収集してもよい。なお、文書記憶装置側でハッシュ値を算出する場合は、文書のハッシュ値を収集する。
【００２３】
リロケーション分析モジュール１６０は、複数の格納場所のうち、代表となる格納場所である代表格納場所を決定する。
また、リロケーション分析モジュール１６０は、文書に対するアクセスの履歴を用いて、代表格納場所を決定するようにしてもよい。
リロケーション分析モジュール１６０は、例えば、リンク−ファイル管理テーブル８００又はローカルリンク−ファイル管理テーブル９００を生成する。リンク−ファイル管理テーブル８００は、ファイルサーバー２５０用に作成したものであり、個々のファイルサーバー２５０毎にあるリンクが、どのファイル実体を指すか示すものである。
図８は、リンク−ファイル管理テーブル８００のデータ構造例を示す説明図である。リンク−ファイル管理テーブル８００は、ＬｉｎｋＩＤ欄８１０、ファイル名欄８２０、集約ＩＤ欄８３０、実体ＩＤ欄８４０、ＡＣＬ欄８５０を有している。ＬｉｎｋＩＤ欄８１０は、リンク−ファイル管理テーブル８００内の各行を一意に識別するための情報（ＬｉｎｋＩＤ）を記憶している。ファイル名欄８２０は、ファイル名を記憶している。集約ＩＤ欄８３０は、集約ＩＤ（同一ファイルテーブル７００の集約ＩＤ欄７１０の内容）を記憶している。実体ＩＤ欄８４０は、実体ＩＤ（集約実体ファイルテーブル６００のＩＤ欄６１０の内容）を記憶している。ＡＣＬ欄８５０は、その実体（ファイル）のアクセス権管理リストを記憶している。
ローカルリンク−ファイル管理テーブル９００は、ユーザー用端末２１０用に作成したものであり、個々のユーザー用端末２１０毎にあるリンクが、どのファイル実体を指すか示すものである。
図９は、ローカルリンク−ファイル管理テーブル９００のデータ構造例を示す説明図である。ローカルリンク−ファイル管理テーブル９００は、ＬｉｎｋＩＤ欄９１０、ファイル名欄９２０、集約ＩＤ欄９３０、実体ＩＤ欄９４０、ＡＣＬ欄９５０を有している。ＬｉｎｋＩＤ欄９１０は、ローカルリンク−ファイル管理テーブル９００内の各行を一意に識別するための情報（ＬｉｎｋＩＤ）を記憶している。ファイル名欄９２０は、ファイル名を記憶している。集約ＩＤ欄９３０は、集約ＩＤ（同一ファイルテーブル７００の集約ＩＤ欄７１０の内容）を記憶している。実体ＩＤ欄９４０は、実体ＩＤ（集約実体ファイルテーブル６００のＩＤ欄６１０の内容）を記憶している。ＡＣＬ欄９５０は、その実体（ファイル）のアクセス権管理リストを記憶している。
【００２４】
クラスター分割モジュール１６５は、同じ文書に対する複数の格納場所を対象として、複数の格納場所を有する集合（以下、クラスターともいう）を生成する。
そして、リロケーション分析モジュール１６０は、クラスター分割モジュール１６５による処理結果である集合内の格納場所におけるアクセスの履歴を用いて、その集合内の代表格納場所を決定するようにしてもよい。集合毎に代表格納場所が生成される。したがって、集合が複数ある場合は、複数の代表格納場所が生成されることになる。
【００２５】
リロケーションモジュール１７０は、代表格納場所以外の格納場所にある文書を、その代表格納場所を示すリンクに置換する。つまり、文書の実体は、代表格納場所に格納されており、その文書以外の文書は、その代表格納場所を示すリンクに置換する。なお、代表格納場所は、１つであってもよいし、複数であってもよい。
また、リロケーションモジュール１７０は、文書のアクセス権管理リストをリンク毎に付与する。ここで「アクセス権管理リスト」とは、ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）ともいわれ、文書への利用者（複数人の利用者によって構成されるグループを含む）のアクセス権限を列挙したリストをいう。利用者から文書への操作を指示されると、その文書のアクセス権管理リストが照合されて、適切な権限があるかを調べ、操作の実行の可否が判断される。
アクセス権管理リストはリンク毎に有しており、同じ文書間で統一していない。例えば、グループＡで共有されている文書をコピーして、新しいアクセス権管理リストによってグループＢに共有させるような利用をする場合、リンク毎にアクセス権管理リストを付与することで、文書の実体をコピーしなくてもよい。
【００２６】
記憶モジュール１８０は、通信モジュール１１０、実体ファイルテーブル作成モジュール１２０、集約実体ファイルテーブル作成モジュール１３０、同一ファイルテーブル作成モジュール１４０、リンク・ファイル管理テーブル作成モジュール１５０と接続されている。記憶モジュール１８０は、リロケーションクローラ―１５５が収集したファイル又はファイルのハッシュ値、実体ファイルテーブル４００、集約実体ファイルテーブル６００、同一ファイルテーブル７００、リンク−ファイル管理テーブル８００、ローカルリンク−ファイル管理テーブル９００等を記憶する。
【００２７】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
情報処理装置１００、ユーザー用端末２１０Ａ、ユーザー用端末２１０Ｂ、ユーザー用端末２１０Ｃ、ユーザー用端末２１０Ｄ、ファイルサーバー２５０Ａ、ファイルサーバー２５０Ｂ、ファイルサーバー２５０Ｃは、通信回線２９０を介してそれぞれ接続されている。通信回線２９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。ユーザー用端末２１０、ファイルサーバー２５０は、地域的に分散されていてもよい。例えば、東京、大阪等にあってもよいし、世界的に分散されていてもよい。また、情報処理装置１００、ファイルサーバー２５０による機能は、クラウドサービスとして実現してもよい。情報処理装置１００は、各ユーザー用端末２１０、各ファイルサーバー２５０内のファイルを対象とする。リロケーションクローラ―１５５は、クローラとしての機能を用いて、各ユーザー用端末２１０、各ファイルサーバー２５０内のファイルを収集する。また、各ユーザー用端末２１０、各ファイルサーバー２５０において、ファイルのハッシュ値を算出させ、ハッシュ値を収集してもよい。また、各ユーザー用端末２１０、各ファイルサーバー２５０において、実体ファイルテーブル４００を生成させて、その実体ファイルテーブル４００を収集してもよい。
ユーザー用端末２１０は、ブラウザ等のユーザーインタフェースにより、文書の実体とリンクに使用上の差がないようにする。つまり、そのユーザー用端末２１０内にある文書（実体）と、そのユーザー用端末２１０ではない異なった場所（他のユーザー用端末２１０、ファイルサーバー２５０）にある文書（そのユーザー用端末２１０内ではリンク）の表示上の区別を設けない。したがって、統一的に見せることができ、実体の格納場所を気にする必要がなくなる。
また、ユーザー用端末２１０は情報処理装置１００を含んで構成してもよいし、ファイルサーバー２５０は情報処理装置１００を含んで構成してもよい。
【００２８】
図３は、本実施の形態による処理例を示すフローチャートである。
ステップＳ３０２では、実体ファイルテーブル作成モジュール１２０は、各ノード内の実体ファイルに対し、ハッシュ値を算出し、実体ファイルテーブル４００を作成する。
具体的には、図５（ａ）の例に示す実体ファイルテーブル４００Ａ、図５（ｂ）の例に示す実体ファイルテーブル４００Ｂを作成する。実体ファイルテーブル４００Ａは、ユーザー用端末２１０Ａ内のファイルを対象としたものであり、実体ファイルテーブル４００Ｂは、ファイルサーバー２５０Ａ内のファイルを対象としたものである。
ハッシュ値（ハッシュ欄４３０Ａ、ハッシュ欄４３０Ｂ内の値）を比較することによって、実体ファイルテーブル４００Ａ内の対象行５８２（ＩＤ：１２３４）のファイルと実体ファイルテーブル４００Ｂ内の対象行５８４（ＩＤ：２８６６）のファイルは同一であるが、まだ共通化されていない状態であることを示している。
なお、実体ファイルテーブル４００Ｂ内の対象行５８６（ＩＤ：４３３１）は共通化されたファイルである。ＡＣＬ欄４５０Ｂ内の“−−−−”は、共通化されたＡＣＬであることを示す。
【００２９】
ステップＳ３０４では、集約実体ファイルテーブル作成モジュール１３０は、対象となる実体ファイルテーブル４００を収集し、集約実体ファイルテーブル６００を作成する。
具体的には、図６の例に示す集約実体ファイルテーブル６００は、図５（ａ）の例に示す実体ファイルテーブル４００Ａ、図５（ｂ）の例に示す実体ファイルテーブル４００Ｂをマージしたものである。ＩＤ欄６１０、ファイル名欄６２０、ハッシュ欄６３０、物理位置欄６６０、ＡＣＬ欄６７０は、それぞれ実体ファイルテーブル４００のＩＤ欄４１０、ファイル名欄４２０、ハッシュ欄４３０、物理位置欄４４０、ＡＣＬ欄４５０に対応している。そして、ノードＩＤ欄６５０は、そのファイルが格納されている装置（具体的には、実体ファイルテーブル４００Ａのユーザー用端末２１０Ａ、実体ファイルテーブル４００Ｂのファイルサーバー２５０Ａ等）を示している。対象行６８２は対象行５８２、対象行６８４は対象行５８４、対象行６８６は対象行５８６に対応している。
【００３０】
ステップＳ３０６では、同一ファイルテーブル作成モジュール１４０は、ハッシュ値が同じファイルを集約ＩＤを付して、同一ファイルテーブル７００を作成する。
具体的には、図７の例に示す同一ファイルテーブル７００は、集約実体ファイルテーブル６００から作成したものである。対象行７８２は、対象行６８２、対象行６８４から生成したものである。対象行７８４は、対象行６８６から生成したものである。
【００３１】
ステップＳ３０８では、リンク・ファイル管理テーブル作成モジュール１５０は、同一ファイルテーブル７００を用いて、リンク−ファイル管理テーブル８００又はローカルリンク−ファイル管理テーブル９００を作成する。この処理の詳細は、図１１から図１３に示すフローチャートを用いて後述する。図８の例に示すリンク−ファイル管理テーブル８００、図９の例に示すローカルリンク−ファイル管理テーブル９００は、同一ファイルテーブル７００から作成したものである。リンク−ファイル管理テーブル８００を、ファイルサーバー２５０Ａに送信し、ローカルリンク−ファイル管理テーブル９００をユーザー用端末２１０Ａに送信する。
リンク−ファイル管理テーブル８００の対象行８８２（実体ＩＤ：１２３４）と対象行８８４（実体ＩＤ：２８６６）は同一であるが、まだ共通化されていない状態である。対象行８８６（実体ＩＤ：４３３１）、対象行８８８（実体ＩＤ：４３３１）は共通化されたファイルである。なお、それぞれに異なったＡＣＬをもつ。つまり、リンク毎にＡＣＬをつけることで、実体をコピーしなくてよいようにしている。
そして、ローカルリンク−ファイル管理テーブル９００の対象行９８２では、ファイルの実体はユーザー用端末２１０Ａにあることを示している。対象行９８４では、ファイルの実体はファイルサーバー２５０Ａ、ＡＣＬはファイルサーバー２５０Ａのものであることを示している。
【００３２】
図１０は、本実施の形態による処理例を示す説明図である。
例えば、ユーザー用端末２１０は、ローカルリンク−ファイル管理テーブル９００を用いて、アクセス画面１０００を表示する。アクセス画面１０００は、フォルダ一覧表示領域１０４０、ファイル一覧表示領域１０５０を有している。フォルダ一覧表示領域１０４０はフォルダを木構造として表示し、ファイル一覧表示領域１０５０は、フォルダ一覧表示領域１０４０で指定されたフォルダ内のファイルをリスト表示している。
つまり、各ノード（ユーザー用端末２１０、ファイルサーバー２５０）でリンク（ローカルリンク−ファイル管理テーブル９００、リンク−ファイル管理テーブル８００）を保持する。そのリンクを用いて、ファイルのリスト表示、ファイルのオープンなどの操作ができる。
【００３３】
図１１から図１３は、本実施の形態による処理例を示すフローチャートである。
ステップＳ１１０２では、同一ファイルテーブル７００で、同じ実体が複数あるものを探す。その複数の実体を内容とする統一候補リストを生成する。
ステップＳ１１０４では、統一候補リストから１行取り出す。
【００３４】
ステップＳ１１０６では、それぞれの実体ファイルのアクセスログを集約する。各ユーザー用端末２１０、各ファイルサーバー２５０から、文書のアクセスログを収集し、例えば、集約アクセスログ１４００を生成する。図１４は、集約アクセスログ１４００のデータ構造例を示す説明図である。集約アクセスログ１４００は、ＩＤ欄１４１０、要求元ＬＯＣ欄１４２０、日時欄１４３０を有している。ＩＤ欄１４１０は、本実施の形態において、集約アクセスログ１４００内の各行を一意に識別するための情報（ＩＤ）を記憶している。要求元ＬＯＣ欄１４２０は、アクセスを要求したユーザー用端末２１０（ファイルサーバー２５０であってもよい）のＬＯＣコードを記憶している。日時欄１４３０は、アクセスが行われた日時（年、月、日、時、分、秒、秒以下、又はこれらの組み合わせであってもよい）を記憶している。
【００３５】
ステップＳ１１０８では、ファイルの保有コストをストレージタイプ毎に試算する。例えば、「ファイルサイズ＊保有料金＋アクセス回数＊アクセス料金」によって算出する。保有料金、アクセス料金は、ストレージタイプによって異なっているので、例えば、保有コストテーブル１５００によって定義されている。図１５は、保有コストテーブル１５００のデータ構造例を示す説明図である。保有コストテーブル１５００は、タイプ欄１５１０、保有料金欄１５２０、アクセス料金欄１５３０を有している。タイプ欄１５１０は、ストレージタイプを記憶している。保有料金欄１５２０は、そのストレージタイプにおける保有料金を記憶している。アクセス料金欄１５３０は、そのストレージタイプにおけるアクセス料金を記憶している。
【００３６】
ステップＳ１１１０では、ストレージタイプでの標準が最も安いか否かを判断し、標準が最も安い場合はステップＳ１１１２へ進み、それ以外の場合はステップＳ１１３８へ進む。
ステップＳ１１１２では、要求元とファイルロケーションが一致するアクセスのアクセス頻度を計算する。
ステップＳ１１１４では、頻度が週５回以下であるか否かを判断し、週５回以下の場合はステップＳ１１１８へ進み、それ以外の場合はステップＳ１１１６へ進む。なお、もちろんのことながら、閾値としての５回は予め定められた値の例示であって、５回以外の数値であってもよい。
ステップＳ１１１６では、リロケーションせず同じ格納場所に置き、検討対象から除外する。
【００３７】
ステップＳ１１１８では、アクセス日時を時間単位で切り取り、最もアクセス数の多い時間帯を抽出する。
ステップＳ１１２０では、アクセスカウント数を合計する。
ステップＳ１１２２では、合計が閾値以下であるか否かを判断し、合計が閾値以下の場合はステップＳ１１２８へ進み、それ以外の場合はステップＳ１１２４へ進む。ここでの閾値は、予め定められた値である。
ステップＳ１１２４では、要求元ロケーション毎にその時間帯のカウント数を集計する。例えば、要求元カウントテーブル１６００を生成する。図１６は、要求元カウントテーブル１６００のデータ構造例を示す説明図である。要求元カウントテーブル１６００は、要求元ＬＯＣ欄１６１０、カウント欄１６２０を有している。要求元ＬＯＣ欄１６１０は、アクセスの要求を行った装置（ユーザー用端末２１０、ファイルサーバー２５０）のＬＯＣコードを記憶している。カウント欄１６２０は、その装置によるアクセスのカウント値を記憶している。なお、図１６では、最終行にカウント値の合計を示している。
【００３８】
ステップＳ１１２６では、各クラスターのアクセスカウントが閾値以下になるようクラスター分割を行う。図１７の例に示すフローチャートを用いて後述する。ここでの閾値は、予め定められた値である。
ステップＳ１１２８では、全体を一つの抽出クラスターとして、ステップＳ１１３０へ進む。
ステップＳ１１３０では、クラスターから１個選択する。
ステップＳ１１３２では、クラスターの中心に近い標準ファイルサーバーを選択する。
【００３９】
ステップＳ１１３４では、すべてのクラスターの処理が終わったか否かを判断し、すべてのクラスターの処理が終わった場合はステップＳ１１４０へ進み、それ以外の場合はステップＳ１１３６へ進む。
ステップＳ１１３６では、次のクラスターを対象として、ステップＳ１１３２に戻る。
ステップＳ１１３８では、最も安いタイプのファイルサーバーを候補として、ステップＳ１１４０へ進む。
ステップＳ１１４０では、クラスターから１個選択する。
【００４０】
ステップＳ１１４２では、選択されたファイルサーバーにファイルを置き、実体ＩＤを取得する。
ステップＳ１１４４では、同一ファイルテーブルに追加する。
ステップＳ１１４６では、各ノードからのリンク先をこの実体ＩＤに置き換える。
ステップＳ１１４８では、すべてのクラスターの処理が終わったか否かを判断し、すべてのクラスターの処理が終わった場合はステップＳ１１５２へ進み、それ以外の場合はステップＳ１１５０へ進む。
【００４１】
ステップＳ１１５０では、次のクラスターを対象として、ステップＳ１１４２に戻る。
ステップＳ１１５２では、選択されたファイルサーバー以外の旧実体ファイルを削除し、同一ファイルテーブルから旧実体ＩＤを削除する。
ステップＳ１１５４では、すべての統一候補の処理が終わったか否かを判断し、すべての統一候補の処理が終わった場合は処理を終了し（ステップＳ１１９９）、それ以外の場合はステップＳ１１５６へ進む。
ステップＳ１１５６では、次の統一候補を対象として、ステップＳ１１０６に戻る。
【００４２】
図１７は、本実施の形態による処理例を示すフローチャートである。前述のステップＳ１１２６（クラスター分割処理）の詳細な処理例を示すものである。
ステップＳ１７０２では、アクセス要求元の近いところからボトムアップに樹状クラスターを形成する。
ステップＳ１７０４では、残ったクラスターが１であるか否かを判断し、残ったクラスターが１である場合はステップＳ１７１６へ進み、それ以外の場合はステップＳ１７０６へ進む。
【００４３】
ステップＳ１７０６では、距離の最も近いクラスター対を選択する。
ステップＳ１７０８では、２つのアクセスカウントを合計する。
ステップＳ１７１０では、合計が閾値以下であるか否かを判断し、合計が閾値以下である場合はステップＳ１７１４へ進み、それ以外の場合はステップＳ１７１２へ進む。ここでの閾値は、予め定められた値である。
【００４４】
ステップＳ１７１２では、大きいほうのクラスターを抽出クラスターに追加し、樹状クラスターから取り除く。そして、ステップＳ１７０４に戻る。
ステップＳ１７１４では、２つのクラスターをマージし、中心地のロケーションコードを与える。アクセスカウントを合計する。そして、ステップＳ１７０４に戻る。
ステップＳ１７１６では、残ったクラスターを抽出クラスターに追加する。
【００４５】
図１８から図２２の具体例を用いて、クラスター分割処理を説明する。
ステップＳ１７０２の処理では、以下のようになる。
図１８は、図１８（ａ）の例に示す要求元カウントテーブル１６００に対して、図１８（ｂ）の例に示す樹状クラスターを形成したことを示している。４行目と５行目でクラスターＡを形成し、要求元カウントテーブル１６００の１行目と２行目でクラスターＢを形成し、６行目とクラスターＡでクラスターＣを形成し、３行目とクラスターＣでクラスターＤを形成し、クラスターＢとクラスターＤでクラスターＥを形成していることを示している。なお、「アクセス要求元の近い」とは、アクセス要求をした装置の位置が近いことをいい、ここで近いと判定するための距離は、装置が設置されている位置間における距離（地図上での距離）としてもよいし、通信回線上でのトポロジカル的な距離（例えば、通信相手に到達するまでに経由する中継設備の数を示すホップ数）としてもよい。
【００４６】
ステップＳ１７０４からステップＳ１７１４までの処理では、以下のようになる。
図１９は、最初のループでは、図１８の例に示す要求元カウントテーブル１６００では、４行目と５行目の対（クラスターＡ）が該当する。４行目（０＃０９２０）と５行目（０＃０９３０）のカウント数をマージすると合計のアクセスカウントが閾値（例えば、ここでは「１００００」とする）を超える。したがって、４行目（＃０９２０）を抽出して、図１９（ｂ）の例に示す抽出クラスターテーブル１９００を生成する。
次のループでは、以下のようになる。
図２０（ａ）の例に示す要求元カウントテーブル１６００は、図１８（ａ）の例に示す要求元カウントテーブル１６００の４行目（０＃０９２０）を削除したものである。
図２０（ｂ）の例に示す要求元カウントテーブル１６００は、図２０（ａ）の例に示す要求元カウントテーブル１６００の１行目と２行目をマージし、４行目と５行目をマージしたものである。それぞれのアクセスカウントの合計は閾値以下であるので、それぞれの中心地のロケーションコード（０＃０４４０、０＃０９４２）を付与する。これによって、図２０（ｂ）の例に示す要求元カウントテーブル１６００が生成される。
次に、図２０（ｂ）の例に示す要求元カウントテーブル１６００の２行目（０＃０７８０）と３行目（０＃０９４２）をマージすると合計のアクセスカウントが閾値を超える。したがって、３行目（０＃０９４２）を抽出して、図２１の例に示す抽出クラスターテーブル１９００の２行目を生成する。そして、図２０（ｂ）の例に示す要求元カウントテーブル１６００の１行目（０＃０４４０）と２行目（０＃０７８０）をマージすると合計のアクセスカウントは閾値以下であるので、中心地のロケーションコード（０＃０５００）を付与する。これによって、図２１の例に示す抽出クラスターテーブル１９００が生成される。
【００４７】
ステップＳ１７１６の処理では、以下のようになる。
図２２は、中心サーバー適用テーブル２２００のデータ構造例を示す説明図である。
中心サーバー適用テーブル２２００は、図２１の例に示す抽出クラスターテーブル１９００に中心サーバー欄２２３０を付加したものである。中心サーバー適用テーブル２２００は、要求元ＬＯＣ欄２２１０、カウント欄２２２０、中心サーバー欄２２３０を有している。要求元ＬＯＣ欄２２１０は、要求元ＬＯＣを記憶している。カウント欄２２２０は、カウントを記憶している。中心サーバー欄２２３０の中心サーバーは、要求元の中心の場所である要求元ＬＯＣに最も近い場所にあるファイルサーバーを割り当てる。例えば０＃０５００の位置に近い地域にファイルサーバーがない場合、その中で最も近いファイルサーバーであるＦＳ２＃０７５０ が選択されている。このファイルサーバーに、文書の実体が置かれることになる。そして、この実体へのリンクで、そのファイルサーバーが含まれているクラスター内における他の装置（ユーザー用端末２１０）での実体の文書を置き換える。
【００４８】
図２３は、本実施の形態による処理例（ファイルへのアクセス処理例）を示すフローチャートである。例えば、ファイルアクセスとして、情報処理装置１００を含むユーザー用端末２１０において、ユーザーがリンクＩＤ：＄ＦＳ２−２４１を選択し、閲覧コマンドを発行する等がある。
ステップＳ２３０２では、アクセス装置であるユーザー用端末２１０は、アクセスの対象としているファイルについて、ローカルリンク−ファイル管理テーブルから集約ＩＤと実体ＩＤを取得する。
ステップＳ２３０４では、ステップＳ２３０２で対象としたファイルがローカルファイルであるか否か（実体はユーザー用端末２１０内にあるか否か）を判断し、ローカルファイルである場合はステップＳ２３１２へ進み、それ以外の場合はステップＳ２３０６へ進む。
ステップＳ２３０６では、リソース管理装置である情報処理装置１００に集約ＩＤと実体ＩＤを送る。
ステップＳ２３０８では、リソース管理装置である情報処理装置１００は集約実体ファイルから実体があるファイルサーバー２５０を特定する。
ステップＳ２３１０では、実体があるファイルサーバー２５０にファイルリクエストを送り、得られた結果をユーザー用端末２１０に返す。
ステップＳ２３１２では、ユーザー用端末２１０内のローカルファイルをオープンする。そして、処理を終了する（ステップＳ２３９９）。
【００４９】
なお、ファイルの編集処理又は更新処理は、自分用のコピーとして編集する場合と、共通に使うファイルを更新する場合がある。これらはリンクに対して、別名で保存するか、上書き保存するか、ユーザーのオペレーションによって決まる。
別名で保存する場合は、ユーザーが決めた実体の場所（ファイルサーバー２５０又はユーザー用端末２１０）に実体を置き、実体ファイルテーブル、同一ファイルテーブル、リンク−ファイル管理テーブルに新しいエントリーを作る。
上書き保存する場合は、図２４の例に示すフローチャートによる処理を行う。
【００５０】
図２４は、本実施の形態による処理例（ファイルの編集処理又は更新処理）を示すフローチャートである。
ステップＳ２４０２では、元のファイルロケーションに別ファイルとして作成する。
ステップＳ２４０４では、集約実体ファイルテーブルに新しいエントリーを作成する。
ステップＳ２４０６では、同一ファイルテーブルに新しいエントリーを作成する。
ステップＳ２４０８では、リンク−ファイル管理テーブルで新しいリンクに書き換える。なお、旧集約ＩＤに対応するリンクがなくなったら同一ファイルテーブルから削除する。
【００５１】
次に、図２５から図２７の具体例を用いて、図２４の例に示す処理を説明する。
ＬｉｎｋＩＤ：＄ＦＳ１−０６３とＬｉｎｋＩＤ：＄ＦＳ２−２４１は、同一の実体（実体ＩＤ：４３３１）を指す別ファイルである。ここでＬｉｎｋＩＤ：＄ＦＳ１−０６３のファイルを書き換えるとする。
図２５は、集約実体ファイルテーブル２５００のデータ構造例を示す説明図である。
集約実体ファイルテーブル２５００は、図６の例に示した集約実体ファイルテーブル６００と同等のデータ構成である。集約実体ファイルテーブル２５００は、ＩＤ欄２５１０、ファイル名欄２５２０、ハッシュ欄２５３０、ＬＯＣコード欄２５４０、ノードＩＤ欄２５５０、物理位置欄２５６０、ＡＣＬ欄２５７０を有している。ＩＤ欄２５１０は、ＩＤを記憶している。ファイル名欄２５２０は、ファイル名を記憶している。ハッシュ欄２５３０は、ハッシュを記憶している。ＬＯＣコード欄２５４０は、ＬＯＣコードを記憶している。ノードＩＤ欄２５５０は、ノードＩＤを記憶している。物理位置欄２５６０は、物理位置を記憶している。ＡＣＬ欄２５７０は、ＡＣＬを記憶している。
ステップＳ２４０４の処理として、集約実体ファイルテーブル２５００の２行目（対象行２５８４）を作成する。
【００５２】
図２６は、同一ファイルテーブル２６００のデータ構造例を示す説明図である。同一ファイルテーブル２６００は、図７の例に示した同一ファイルテーブル７００と同等のデータ構成である。同一ファイルテーブル２６００は、集約ＩＤ欄２６１０、ハッシュ欄２６２０、実体１欄２６３０、実体２欄２６４０を有している。集約ＩＤ欄２６１０は、集約ＩＤを記憶している。ハッシュ欄２６２０は、ハッシュを記憶している。実体１欄２６３０は、実体１のＩＤを記憶している。実体２欄２６４０は、実体２のＩＤを記憶している。
ステップＳ２４０６の処理として、同一ファイルテーブル２６００の２行目（対象行２６８４）を作成する。
【００５３】
図２７は、リンク−ファイル管理テーブル２７００のデータ構造例を示す説明図である。リンク−ファイル管理テーブル２７００は、図８の例に示したリンク−ファイル管理テーブル８００と同等のデータ構成である。リンク−ファイル管理テーブル２７００は、ＬｉｎｋＩＤ欄２７１０、ファイル名欄２７２０、集約ＩＤ欄２７３０、実体ＩＤ欄２７４０、ＡＣＬ欄２７５０を有している。ＬｉｎｋＩＤ欄２７１０は、ＬｉｎｋＩＤを記憶している。ファイル名欄２７２０は、ファイル名を記憶している。集約ＩＤ欄２７３０は、集約ＩＤを記憶している。実体ＩＤ欄２７４０は、実体ＩＤを記憶している。ＡＣＬ欄２７５０は、ＡＣＬを記憶している。
ステップＳ２４０８の処理として、リンク−ファイル管理テーブル２７００の３行目（対象行２７８４）を４行目（対象行２７８６）に書き換える。
【００５４】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図２８に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ２８０１を用い、記憶装置としてＲＡＭ２８０２、ＲＯＭ２８０３、ＨＤ２８０４を用いている。ＨＤ２８０４として、例えばハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてもよい。通信モジュール１１０、実体ファイルテーブル作成モジュール１２０、集約実体ファイルテーブル作成モジュール１３０、同一ファイルテーブル作成モジュール１４０、リンク・ファイル管理テーブル作成モジュール１５０、リロケーションクローラ―１５５、リロケーション分析モジュール１６０、クラスター分割モジュール１６５、リロケーションモジュール１７０等のプログラムを実行するＣＰＵ２８０１と、そのプログラムやデータを記憶するＲＡＭ２８０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ２８０３と、記憶モジュール１８０としての機能を有する補助記憶装置（フラッシュ・メモリ等であってもよい）であるＨＤ２８０４と、キーボード、マウス、タッチスクリーン、マイク等に対する利用者の操作に基づいてデータを受け付ける受付装置２８０６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置２８０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース２８０７、そして、それらをつないでデータのやりとりをするためのバス２８０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００５５】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図２８に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２８に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図２８に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００５６】
文書のアクセス履歴から、予め定められた回数より多く又は以上のアクセスがあるファイルを提示するようにしてもよい。又は、予め定められた期間内に予め定められた回数より多く又は以上のアクセスがあるファイルを提示するようにしてもよい。重要な知識を発見するためである。なお、提示する先は、そのアクセスを行った利用者であってもよいし、他の利用者（例えば、管理者、グループリーダー等）であってもよい。
利用者の個人が有しているユーザー用端末２１０にだけあるファイルで、更新が長期間（予め定められた期間よりも長い又は以上）なされていないものを通知し、ファイルサーバー２５０への移動を促すコメントを出力（レコメンド）してもよい。
アクセスカウントが予め定められた閾値よりも低い又は以下である場合、アーカイブ専用のファイルサーバー２５０（ストレージ）に実体を移行するようにしてもよい。コストダウンを図ることができる。
ユーザー用端末２１０内のファイル（ユーザー用端末２１０内におけるローカルファイル等が該当する）に対して、そのユーザー用端末２１０からのアクセスカウントが予め定められた閾値より多い又は以上である場合は、実体の移動は行わないようにしてもよい。なお、ここでの閾値は、実体の移動を行う場合に用いた閾値よりも低い値とする。
また、前述の実施の形態の説明内での比較処理において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００５７】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００５８】
１００…情報処理装置
１１０…通信モジュール
１２０…実体ファイルテーブル作成モジュール
１３０…集約実体ファイルテーブル作成モジュール
１４０…同一ファイルテーブル作成モジュール
１５０…リンク・ファイル管理テーブル作成モジュール
１５５…リロケーションクローラ―
１６０…リロケーション分析モジュール
１６５…クラスター分割モジュール
１７０…リロケーションモジュール
１８０…記憶モジュール
２１０…ユーザー用端末
２５０…ファイルサーバー
２９０…通信回線
【図１】
0006651915.tif 000002
【図２】
0006651915.tif 000003
【図３】
0006651915.tif 000004
【図４】
0006651915.tif 000005
【図５】
0006651915.tif 000006
【図６】
0006651915.tif 000007
【図７】
0006651915.tif 000008
【図８】
0006651915.tif 000009
【図９】
0006651915.tif 000010
【図１０】
0006651915.tif 000011
【図１１】
0006651915.tif 000012
【図１２】
0006651915.tif 000013
【図１３】
0006651915.tif 000014
【図１４】
0006651915.tif 000015
【図１５】
0006651915.tif 000016
【図１６】
0006651915.tif 000017
【図１７】
0006651915.tif 000018
【図１８】
0006651915.tif 000019
【図１９】
0006651915.tif 000020
【図２０】
0006651915.tif 000021
【図２１】
0006651915.tif 000022
【図２２】
0006651915.tif 000023
【図２３】
0006651915.tif 000024
【図２４】
0006651915.tif 000025
【図２５】
0006651915.tif 000026
【図２６】
0006651915.tif 000027
【図２７】
0006651915.tif 000028
【図２８】
0006651915.tif 000029