(57)【要約】【課題】利用頻度が低下しているデータについては、分割して他の情報処理装置に格納するようにした情報処理装置を提供する。【解決手段】情報処理装置のデータ格納手段は、データと該データを識別する識別子が添えられたデータ格納依頼を受け付けて、該データを分割して、分割されたデータに該分割されたデータを識別する識別子を添えて、他の情報処理装置に格納し、データ取得手段は、識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、該元データを取得し、格納依頼手段は、データが取得された日時から予め定められた期間が経過しているデータに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う。【選択図】図１
2019061408.tif 000002
【特許請求の範囲】
【請求項１】
データと該データを識別する識別子が添えられたデータ格納依頼を受け付けて、該データを分割して、分割されたデータに該分割されたデータを識別する識別子を添えて、他の情報処理装置に格納するデータ格納手段と、
識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、該元データを取得するデータ取得手段と、
データが取得された日時から予め定められた期間が経過しているデータに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う格納依頼手段
を有する情報処理装置。
【請求項２】
前記データ格納手段は、
前記データ格納依頼を受け付ける格納依頼受付手段と、
前記データ格納依頼内のデータを分割する分割手段と、
前記分割手段によって分割された複数の分割データを識別する識別子である第２の識別子を生成する識別子生成手段と、
前記データ格納依頼内の識別子と複数の前記第２の識別子とを対応付けて、記憶手段に記憶させるように制御する記憶制御手段と、
前記分割データに前記第２の識別子を添えて、他の情報処理装置にデータ格納依頼を行う第２の格納依頼手段
を有する請求項１に記載の情報処理装置。
【請求項３】
前記分割データを複製する複製手段
をさらに有し、
前記第２の格納依頼手段は、前記複製手段によって複製された分割データに前記第２の識別子を添えて、他の情報処理装置にデータ格納依頼を行う
請求項２に記載の情報処理装置。
【請求項４】
前記第２の格納依頼手段は、ランダムに他の情報処理装置にデータ格納依頼を行う
請求項３に記載の情報処理装置。
【請求項５】
前記第２の格納依頼手段は、前記他の情報処理装置が信頼できる場合は、前記分割データをそのまま格納するように、データ格納依頼を行う
請求項２に記載の情報処理装置。
【請求項６】
前記第２の格納依頼手段は、前記他の情報処理装置が信頼できない場合は、前記分割データを暗号化して格納するように、データ格納依頼を行う
請求項２に記載の情報処理装置。
【請求項７】
前記データ取得手段は、
前記データ取得依頼を受け付ける取得依頼受付手段と、
前記データ取得依頼内の識別子に対応する元データがある場合は、該元データを依頼元の情報処理装置に送信する送信手段と、
前記データ取得依頼内の識別子に対応する複数の第２の識別子がある場合は、他の情報処理装置に、該第２の識別子を添えたデータ取得依頼を行う取得依頼手段と、
前記取得依頼手段が行ったデータ取得依頼に応じて、前記第２の識別子に対応する分割データを取得し、元データを構築する構築手段と、
前記構築手段によって構築された元データを前記識別子と対応付けて、記憶手段に記憶させるように制御する第２の記憶制御手段と、
前記取得依頼受付手段が受け付けた前記データ取得依頼内の識別子に対応付けてアクセス日時を保存する保存手段
を有し、
前記送信手段は、前記構築手段によって構築された元データを、依頼元の情報処理装置に送信する
請求項１に記載の情報処理装置。
【請求項８】
前記構築手段は、前記アクセス日時に基づいて、元データを構築する
請求項７に記載の情報処理装置。
【請求項９】
前記構築手段は、前記アクセス日時に基づいて、利用頻度が高まる時期に、予め元データを構築する
請求項８に記載の情報処理装置。
【請求項１０】
前記格納依頼手段は、
アクセス日時から予め定められた期間が経過している識別子に対応付けられたデータを取得し、該データに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う
請求項１に記載の情報処理装置。
【請求項１１】
前記格納依頼手段は、前記アクセス日時から予め定められた期間が経過しているか否かの判断を定期的に行う
請求項１０に記載の情報処理装置。
【請求項１２】
コンピュータを、
データと該データを識別する識別子が添えられたデータ格納依頼を受け付けて、該データを分割して、分割されたデータに該分割されたデータを識別する識別子を添えて、他の情報処理装置に格納するデータ格納手段と、
識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、該元データを取得するデータ取得手段と、
データが取得された日時から予め定められた期間が経過しているデータに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う格納依頼手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、個人が使用するような複数のパーソナルコンピュータを用いて、データの共有を行い、共有するデータの可用性及び信頼性を高めることを課題とし、他のノードの可用性を確認するために、ノード確認部から他のノードにノード確認要求を送信し、他のノードのノード確認応答メッセージ送信部から可用性を示す情報を含むノード確認応答メッセージをノード確認部が受信し、分散保存設定部が、ノード確認応答メッセージの内容に応じてパラメータを決定し、分散保存部が、共有データをＮ分割して前記可用性が確認されているＮ台のノードにＭ重に分散して保存し、分割データ収集部が前記Ｎ分割された分割データを選択的にＮ個集め、データ復元部が、集めたＮ個の分割データを結合し元のデータを復元することが開示されている。
【０００３】
特許文献２には、複数の記憶装置に対する記憶対象データの記憶動作を制御する少なくとも１つの第一サーバーと、前記複数の記憶装置を構成する複数の第二サーバーと、を備えると共に、記憶対象データを分割した複数のブロックデータを前記複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を備え、前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶し、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置である前記第二サーバーから前記格納位置特定テーブルを前記第一サーバーに読み出し、前記第二サーバーから前記第一サーバーに読み出した前記格納位置特定テーブルに基づいて、さらに新たに記憶する記憶対象データを分割したブロックデータが記憶装置に既に記憶されているか否かの判定を行う、ストレージシステムについて開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−０３７３１８号公報
【特許文献２】特許第５５００２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データを分割して、相互接続された複数の情報処理装置に分散して格納することが行われている。利用頻度が低下しているデータについて、自情報処理装置がそのまま格納しておくことは、記憶装置の容量を圧迫してしまうことになる。
本発明は、利用頻度が低下しているデータについては、分割して他の情報処理装置に格納するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、データと該データを識別する識別子が添えられたデータ格納依頼を受け付けて、該データを分割して、分割されたデータに該分割されたデータを識別する識別子を添えて、他の情報処理装置に格納するデータ格納手段と、識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、該元データを取得するデータ取得手段と、データが取得された日時から予め定められた期間が経過しているデータに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う格納依頼手段を有する情報処理装置である。
【０００７】
請求項２の発明は、前記データ格納手段は、前記データ格納依頼を受け付ける格納依頼受付手段と、前記データ格納依頼内のデータを分割する分割手段と、前記分割手段によって分割された複数の分割データを識別する識別子である第２の識別子を生成する識別子生成手段と、前記データ格納依頼内の識別子と複数の前記第２の識別子とを対応付けて、記憶手段に記憶させるように制御する記憶制御手段と、前記分割データに前記第２の識別子を添えて、他の情報処理装置にデータ格納依頼を行う第２の格納依頼手段を有する請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記分割データを複製する複製手段をさらに有し、前記第２の格納依頼手段は、前記複製手段によって複製された分割データに前記第２の識別子を添えて、他の情報処理装置にデータ格納依頼を行う請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記第２の格納依頼手段は、ランダムに他の情報処理装置にデータ格納依頼を行う請求項３に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記第２の格納依頼手段は、前記他の情報処理装置が信頼できる場合は、前記分割データをそのまま格納するように、データ格納依頼を行う請求項２に記載の情報処理装置である。
【００１１】
請求項６の発明は、前記第２の格納依頼手段は、前記他の情報処理装置が信頼できない場合は、前記分割データを暗号化して格納するように、データ格納依頼を行う請求項２に記載の情報処理装置である。
【００１２】
請求項７の発明は、前記データ取得手段は、前記データ取得依頼を受け付ける取得依頼受付手段と、前記データ取得依頼内の識別子に対応する元データがある場合は、該元データを依頼元の情報処理装置に送信する送信手段と、前記データ取得依頼内の識別子に対応する複数の第２の識別子がある場合は、他の情報処理装置に、該第２の識別子を添えたデータ取得依頼を行う取得依頼手段と、前記取得依頼手段が行ったデータ取得依頼に応じて、前記第２の識別子に対応する分割データを取得し、元データを構築する構築手段と、前記構築手段によって構築された元データを前記識別子と対応付けて、記憶手段に記憶させるように制御する第２の記憶制御手段と、前記取得依頼受付手段が受け付けた前記データ取得依頼内の識別子に対応付けてアクセス日時を保存する保存手段を有し、前記送信手段は、前記構築手段によって構築された元データを、依頼元の情報処理装置に送信する請求項１に記載の情報処理装置である。
【００１３】
請求項８の発明は、前記構築手段は、前記アクセス日時に基づいて、元データを構築する請求項７に記載の情報処理装置である。
【００１４】
請求項９の発明は、前記構築手段は、前記アクセス日時に基づいて、利用頻度が高まる時期に、予め元データを構築する請求項８に記載の情報処理装置である。
【００１５】
請求項１０の発明は、前記格納依頼手段は、アクセス日時から予め定められた期間が経過している識別子に対応付けられたデータを取得し、該データに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う請求項１に記載の情報処理装置である。
【００１６】
請求項１１の発明は、前記格納依頼手段は、前記アクセス日時から予め定められた期間が経過しているか否かの判断を定期的に行う請求項１０に記載の情報処理装置である。
【００１７】
請求項１２の発明は、コンピュータを、データと該データを識別する識別子が添えられたデータ格納依頼を受け付けて、該データを分割して、分割されたデータに該分割されたデータを識別する識別子を添えて、他の情報処理装置に格納するデータ格納手段と、識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、該元データを取得するデータ取得手段と、データが取得された日時から予め定められた期間が経過しているデータに該識別子を添えて、前記データ格納手段に、データ格納依頼を行う格納依頼手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１８】
請求項１の情報処理装置によれば、利用頻度が低下しているデータについては、分割して他の情報処理装置に格納することができる。
【００１９】
請求項２の情報処理装置によれば、データを分割して他の情報処理装置に格納することができる。
【００２０】
請求項３の情報処理装置によれば、データの耐障害性を高めることができる。
【００２１】
請求項４の情報処理装置によれば、ランダムに他の情報処理装置にデータ格納依頼を行うことができる。
【００２２】
請求項５の情報処理装置によれば、他の情報処理装置が信頼できる場合は、復号化処理を行う必要がなくなる。
【００２３】
請求項６の情報処理装置によれば、他の情報処理装置が信頼できない場合は、分割データのセキュリティを確保することができる。
【００２４】
請求項７の情報処理装置によれば、分割データから元データを再構築することができる。
【００２５】
請求項８の情報処理装置によれば、予め元データを構築しておくことができる。
【００２６】
請求項９の情報処理装置によれば、利用頻度が高まる時期に、予め元データを構築しておくことができる。
【００２７】
請求項１０の情報処理装置によれば、アクセスされていないデータを、分割して他の情報処理装置に格納することができる。
【００２８】
請求項１１の情報処理装置によれば、定期的に、アクセスされていないデータを、分割して他の情報処理装置に格納することができる。
【００２９】
請求項１２の情報処理プログラムによれば、利用頻度が低下しているデータについては、分割して他の情報処理装置に格納することができる。
【図面の簡単な説明】
【００３０】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】本実施の形態による処理例を示すフローチャートである。
【図４】データ格納依頼データのデータ構造例を示す説明図である。
【図５】本実施の形態による処理例を示す説明図である。
【図６】分割リストのデータ構造例を示す説明図である。
【図７】データ格納依頼データのデータ構造例を示す説明図である。
【図８】本実施の形態による処理例を示す説明図である。
【図９】本実施の形態による処理例を示すフローチャートである。
【図１０】本実施の形態による処理例を示す説明図である。
【図１１】本実施の形態による処理例を示すフローチャートである。
【図１２】データ格納依頼データのデータ構造例を示す説明図である。
【図１３】格納データのデータ構造例を示す説明図である。
【図１４】識別子・アクセス日時対応データのデータ構造例を示す説明図である。
【図１５】本実施の形態による処理例を示すフローチャートである。
【図１６】本実施の形態による処理例を示すフローチャートである。
【図１７】ログテーブルのデータ構造例を示す説明図である。
【図１８】プリフェッチ時テーブルのデータ構造例を示す説明図である。
【図１９】本実施の形態による処理例を示すフローチャートである。
【図２０】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００３１】
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する情報処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
例えば、ＦｕｌｌＨＤ、４Ｋカメラ、全方位カメラ等で撮影された高解像度な静止画・動画を始めとして、デジタルコンテンツのデータサイズは肥大化を続けている。また、デジタルコンテンツは複数のユーザーによって共有されることも多く、データ共有方法として様々なサービスが作り出されてきた。
データをいかに効率よく保存して共有するかがデータ共有方法の課題である。データ共有方法の例として、（１）ある特定の事業者が提供する中央サーバーにデータを保存するサービスや、（２）シェアしようとするユーザーの端末自体を相互通信可能なデータ保存機能として連携させて使用するシステムがある。特に、後者はＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）型の分散データストアとして発展してきた。
【００３２】
特許文献１で示される技術では、共有しようとするデータをＮ分割し、相互通信可能なデータ保存機器Ｎ台にＭ重に分散して保存する手段を提供している。これにより、分割数を調整することで耐障害性（ロバスト性）を高めるとともに、個別のデータ保存機能に求める容量を抑えている。
また、特許文献２で示される技術では、データを分割・分散記憶すると共に、既に記憶されている記憶対象データと同じデータ内容を他の記憶装置に格納する場合は、既に記憶されているデータを他の記憶対象データとして参照することで重複排除を行っている。
どちらも実際に対象のデジタルコンテンツを利用しようとする際には、分割・分散されたデータを全て取り寄せて元のデジタルコンテンツを再構築する必要がある。
しかしながら、頻繁に利用するデジタルコンテンツに対する再構築手続きはオーバーヘッドが大きく、パフォーマンスに悪影響を与える。
【００３３】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００３４】
本実施の形態である情報処理装置１００は、データ（以下、デジタルコンテンツともいう）を格納又は格納依頼するものであって、図１の例に示すように、通信モジュール１０５、データ格納モジュール１１０、データ取得モジュール１４５、格納依頼モジュール１８０、データ記憶モジュール１９５を有している。
なお、処理対象とするデータの種類は問わない。例えば、文書、画像、音声情報、動画情報であってもよいし、ツリー構造を有しているものであってもよい。例えば、ＩｏＴ（  Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）やＭ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）の隆盛に伴い、データをツリー構造で保持することが行われるようになっているが、これらを処理対象のデータとしてもよい。
また、サービス利用者が情報処理装置１００に記憶させるデータ、又は、情報処理装置１００から取得するデータについて、サービス利用者によって偏りがある場合がある。つまり、特定のサービス利用者に高頻度で扱われるデータは、他のサービス利用者にとって全く扱うことのないデータである場合もある。一般的に、このような状況は生じ得るが、そのような状況の場合に、情報処理装置１００は、特に有効である。
【００３５】
通信モジュール１０５は、データ格納モジュール１１０、データ取得モジュール１４５、格納依頼モジュール１８０と接続されている。通信モジュール１０５は、他の情報処理装置１００との通信を行う。例えば、他の情報処理装置１００からデータ格納依頼、データ取得依頼を受信し、それぞれデータ格納モジュール１１０、データ取得モジュール１４５へ渡す。また、逆に、データ格納モジュール１１０、データ取得モジュール１４５から、それぞれデータ格納依頼、データ取得依頼を受け取り、他の情報処理装置１００に送信する。その他、データ格納依頼、データ取得依頼に対する応答（成功、失敗を示す情報、データ取得依頼に対するデータ等）等を送受信する。
【００３６】
データ格納モジュール１１０は、格納依頼受付モジュール１１５、分割モジュール１２０、識別子生成モジュール１２５、記憶制御（Ａ）モジュール１３０、複製モジュール１３５、格納依頼処理（Ａ）モジュール１４０を有しており、通信モジュール１０５、データ記憶モジュール１９５と接続されている。データ格納モジュール１１０は、データとそのデータを識別する識別子が添えられたデータ格納依頼を受け付けて、そのデータを分割して、分割されたデータにその分割されたデータを識別する識別子を添えて、他の情報処理装置１００に格納する機能を有している。
【００３７】
格納依頼受付モジュール１１５は、データ格納依頼を受け付ける。例えば、後述するデータ格納依頼データ４００を受け付ける。
分割モジュール１２０は、データ格納依頼内のデータを分割する。
識別子生成モジュール１２５は、分割モジュール１２０によって分割された複数の分割データを識別する識別子である第２の識別子を生成する。例えば、ハッシュ関数等を用いて、分割データから第２の識別子を生成する。
記憶制御（Ａ）モジュール１３０は、データ格納依頼内の識別子と複数の第２の識別子とを対応付けて、データ記憶モジュール１９５に記憶させるように制御する。例えば、後述する分割リスト６００を生成し、データ記憶モジュール１９５に記憶させる。
複製モジュール１３５は、分割データを複製する。耐障害性を高めるためである。詳細な処理については、図９、図１０の例を用いて後述する。
【００３８】
格納依頼処理（Ａ）モジュール１４０は、分割データに第２の識別子を添えて、他の情報処理装置１００にデータ格納依頼を行う。つまり、分割データを分散して記憶させるものである。例えば、後述するデータ格納依頼データ７００を生成して、他の情報処理装置１００に送信する。
また、格納依頼処理（Ａ）モジュール１４０は、複製モジュール１３５によって複製された分割データに第２の識別子を添えて、他の情報処理装置１００にデータ格納依頼を行うようにしてもよい。
また、格納依頼処理（Ａ）モジュール１４０は、ランダムに他の情報処理装置１００にデータ格納依頼を行うようにしてもよい。ランダムの他に、予め定められた順番にしたがって、データ格納依頼を行う情報処理装置１００を決定してもよい。例えば、ホップ数（通信相手である情報処理装置１００に到達するまでに経由する中継設備の数）の少ない順に情報処理装置１００を選択してもよい。
また、格納依頼処理（Ａ）モジュール１４０は、他の情報処理装置１００が信頼できる場合は、分割データをそのまま格納するように、データ格納依頼を行うようにしてもよい。例えば、「他の情報処理装置１００が信頼できる」か否かの判断は、後述するように、同じファイアーウォール装置２５０に接続されている情報処理装置１００（例えば、社内の情報処理装置１００）であれば信頼できると判断し、ファイアーウォール装置２５０外の情報処理装置１００（例えば、社外の情報処理装置１００）であれば信頼できないと判断してもよい。また、予め定められた情報処理装置１００を信頼できる情報処理装置１００としてもよい。
また、格納依頼処理（Ａ）モジュール１４０は、他の情報処理装置１００が信頼できない場合は、分割データを暗号化して格納するように、データ格納依頼を行うようにしてもよい。
【００３９】
データ取得モジュール１４５は、取得依頼受付モジュール１５０、送信モジュール１５５、取得依頼モジュール１６０、構築モジュール１６５、記憶制御（Ｂ）モジュール１７０、保存モジュール１７５を有しており、通信モジュール１０５、データ記憶モジュール１９５と接続されている。データ取得モジュール１４５は、識別子が添えられたデータ取得依頼を受け付け、分割されたデータから元データを構築して、その元データを取得する機能を有している。
【００４０】
取得依頼受付モジュール１５０は、データ取得依頼を受け付ける。例えば、後述するデータ格納依頼データ１２００を受け付ける。
送信モジュール１５５は、データ取得依頼内の識別子に対応する元データがデータ記憶モジュール１９５内にある場合は、その元データを依頼元の情報処理装置１００（データ取得依頼を送信してきた情報処理装置１００）に送信する。
また、送信モジュール１５５は、データ取得依頼内の識別子に対応する元データがデータ記憶モジュール１９５内に無い場合（データ記憶モジュール１９５内には、データ取得依頼内の識別子に対応する複数の第２の識別子がある場合）は、構築モジュール１６５によって構築された元データを、依頼元の情報処理装置１００に送信する。
【００４１】
取得依頼モジュール１６０は、データ取得依頼内の識別子に対応する複数の第２の識別子がある場合は、他の情報処理装置１００に、その第２の識別子を添えたデータ取得依頼を行う。そして、そのデータ取得依頼の返信として、他の情報処理装置１００から分割データを受信する。
構築モジュール１６５は、取得依頼モジュール１６０が行ったデータ取得依頼に応じて、第２の識別子に対応する分割データを取得し、元データを構築する。つまり、分割モジュール１２０とは逆の処理を行って、分割データから元データを生成する。
また、構築モジュール１６５は、アクセス日時に基づいて、元データを構築するようにしてもよい。いわゆるプリフェッチ処理を行うものであって、予想されたアクセス日時が近づいている場合、分割データを収集して、元データを構築するものである。図１６〜図１９の例を用いて後述する。
また、構築モジュール１６５は、アクセス日時に基づいて、利用頻度が高まる時期に、予め元データを構築するようにしてもよい。特に、利用頻度が高まる時期に、プリフェッチ処理を行えば、元データの構築処理を事前に行うことになり、データ取得依頼に対して（データ取得依頼を受けた後に、元データの構築処理を行う場合に比べて、）高速に対応することができるようになる。
【００４２】
記憶制御（Ｂ）モジュール１７０は、構築モジュール１６５によって構築された元データを識別子と対応付けて、データ記憶モジュール１９５に記憶させるように制御する。したがって、この後（かつ、格納依頼モジュール１８０による処理が行われる前）は、データ記憶モジュール１９５内に、識別子に対応する元データが記憶されていることになる。
保存モジュール１７５は、取得依頼受付モジュール１５０が受け付けたデータ取得依頼内の識別子に対応付けてアクセス日時を保存する。いわゆるログ情報を記憶するものであって、例えば、後述する識別子・アクセス日時対応データ１４００を生成し、データ記憶モジュール１９５内に記憶する。
【００４３】
格納依頼モジュール１８０は、アクセス日時判定モジュール１８５、格納依頼処理（Ｂ）モジュール１９０を有しており、通信モジュール１０５、データ記憶モジュール１９５と接続されている。格納依頼モジュール１８０は、データが取得された日時から予め定められた期間が経過しているデータにその識別子を添えて、データ格納モジュール１１０に、データ格納依頼を行う機能を有している。
【００４４】
格納依頼モジュール１８０は、アクセス日時から予め定められた期間が経過している識別子に対応付けられたデータを取得し、そのデータにその識別子を添えて、データ格納モジュール１１０に、データ格納依頼を行う。
また、格納依頼モジュール１８０は、アクセス日時から予め定められた期間が経過しているか否かの判断を定期的に行うようにしてもよい。
アクセス日時判定モジュール１８５は、データ記憶モジュール１９５内に記憶されている元データのアクセス日時が、予め定められた期間経過しているか否かを判断する。つまり、しばらくアクセスのない元データがデータ記憶モジュール１９５に記憶されているか否かを判断する。この判断処理は、定期的に行うようにしてもよい。また、ユーザーの操作に応じて、この判断処理を行うようにしてもよい。また、データ記憶モジュール１９５内に記憶されている元データの容量が予め定められた閾値より大きく又は以上となった場合に、この判断処理を行うようにしてもよい。また、逆に、データ記憶モジュール１９５内の空き領域の容量が予め定められた閾値未満又は以下となった場合に、この判断処理を行うようにしてもよい。
格納依頼処理（Ｂ）モジュール１９０は、アクセス日時判定モジュール１８５によって、アクセス日時から予め定められた期間が経過しているデータがあると判断された場合は、そのデータにそのデータの識別子を添えて、データ格納モジュール１１０に、データ格納依頼を行う。つまり、データを分割して分散させるものである。なお、この対象となった元データは、データ記憶モジュール１９５から削除してもよい。
【００４５】
データ記憶モジュール１９５は、データ格納モジュール１１０、データ取得モジュール１４５、格納依頼モジュール１８０と接続されている。データ記憶モジュール１９５は、データ等を記憶している。例えば、元データ又は分割データそのものを記憶する格納データ１３００、分割データの識別子群を記憶する分割リスト６００、ログとしての識別子・アクセス日時対応データ１４００、ログテーブル１７００、プリフェッチの起動タイミングを記憶するプリフェッチ時テーブル１８００等を記憶している。
【００４６】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｃ、情報処理装置１００Ｄ、データ記憶装置２００、ファイアーウォール装置２５０、は、通信回線２９０を介してそれぞれ接続されている。データ記憶装置２００は、情報処理装置１００Ｅを有している。通信回線２９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット等であってもよい。また、データ記憶装置２００による機能は、クラウドサービスとして実現してもよい。
ファイアーウォール装置２５０、情報処理装置１００Ｆ、情報処理装置１００Ｇ、情報処理装置１００Ｈ、情報処理装置１００Ｉは、通信回線を介してそれぞれ接続されている。例えば、これらは、通信インフラとしてのイントラネット等によって接続されている。
また、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｃ、情報処理装置１００Ｄ、データ記憶装置２００、情報処理装置１００Ｆ、情報処理装置１００Ｇ、情報処理装置１００Ｈ、情報処理装置１００Ｉは、ファイアーウォール装置２５０、通信回線２９０を介してそれぞれ接続されている。
例えば、情報処理装置１００Ａ内に記憶されているデータを分割し、他の情報処理装置１００（例えば、情報処理装置１００Ｂ、データ記憶装置２００等）に記憶させる。
また、例えば、情報処理装置１００Ｆにとって、ファイアーウォール装置２５０によって外界から守られている情報処理装置１００Ｇ、情報処理装置１００Ｈ、情報処理装置１００Ｉは、信頼できる情報処理装置である。したがって、情報処理装置１００Ｆが情報処理装置１００Ｇにデータ格納依頼を行う場合は、分割データをそのまま格納するように、データ格納依頼を行うようにしてもよい。逆に、情報処理装置１００Ｆにとって、ファイアーウォール装置２５０の外界である情報処理装置１００Ａ等は、信頼できない情報処理装置である。したがって、情報処理装置１００Ｆが情報処理装置１００Ａにデータ格納依頼を行う場合は、分割データを暗号化して格納するように、データ格納依頼を行うようにしてもよい。もちろんのことながら、この場合、返信されたデータを、情報処理装置１００Ｆは復号する必要がある。
【００４７】
本実施の形態は、例えば、以下のような処理を行う。特に、この説明（本段落内の説明）は、本実施の形態の理解を容易にすることを目的とするものであり、この説明を用いて限定解釈することは意図していない。そして、この説明部分のみを用いて、特許を受けようとする発明が発明の詳細な説明に記載したものであること（特許法第３６条第６項第１号）の判断を行うべきではないことは当然である。
情報処理装置１００は、デジタルコンテンツの利用頻度に応じて、データ再構築コストを低減させる分散データ保存方法に関するものである。
そのために、個々のデータのアクセス履歴を保持する。そして、利用頻度が低下したデータを分割・分散保存して元のデータは参照データにする。また、保存されているデータを再構築したデータで上書きする。
情報処理装置１００は、データを、分割して、相互接続された複数のデータ保存機能（他の情報処理装置１００）に分散・冗長化して保存する。情報処理装置１００は、以下のステップ（データ格納ステップ、データ取得ステップ、再分割・再分散ステップ）で構成されているデータ保存方法を行う。
（１）データ格納ステップでは、以下の処理を行う。
データとＩＤが添えられたデータ格納依頼を受け、そのデータをＸ個に分割した分割データそれぞれにＩＤ（分割ＩＤ）を生成し、元ＩＤとＸ個の分割した分割ＩＤとを対応付けた分割リストとして記憶領域に保存し、Ｘ個の分割データをそれぞれＹ個複製し、複製した分割データをＺ個の他のデータ保存機能にランダムに振り分けてデータ格納依頼する。
（２）データ取得ステップでは、以下の処理を行う。
ＩＤが添えられたデータ取得依頼を受け、そのＩＤから記憶領域を検索し、データそのものが存在すれば引き出して返し、分割リストが存在すれば分割リストに含まれるＩＤを添えて他のデータ保存機能に対しデータ取得依頼を繰り返して、全ての分割データを取得してデータを再構築し、当該ＩＤに対応付けてそのデータを記憶領域に保存し、当該ＩＤのメタ情報としてアクセス日時を保存し、そのデータを返す。
（３）再分割・再分散ステップでは、以下の処理を行う。
データ保存機能内部で定期的に呼び出され、記憶領域に含まれる全てのＩＤに対し、アクセス日時を取得し、現時刻から所定の期間以上古いアクセス日時だった場合は、そのＩＤに対応付けられたデータを取得し、そのＩＤとそのデータを自身に対しデータ格納依頼することで、分割して分散保存する。
（２−１）さらに、データ取得ステップは以下の処理を行うようにしてもよい。
データ保存機能が存在する領域が、信頼できる通信回線（例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、イントラネット）内に配置されている場合はデータをそのまま保存し、信頼できない通信回線内に配置されている場合はデータを暗号化して保存する。
（４）さらに、次のプリフェッチステップを付加してもよい。
過去のアクセス履歴から、特定の時期（時季を含む）に利用頻度が高まる等、利用頻度の増減に周期性が見られる場合、当該時期に合わせて予めデータを再構築し、当該ＩＤに対応付けてそのデータを記憶領域に保存する。
【００４８】
図３は、本実施の形態（主に、データ格納モジュール１１０）による処理例を示すフローチャートである。
ステップＳ３０２では、格納依頼受付モジュール１１５は、データ格納依頼を受け付ける。依頼元は、他の情報処理装置１００であってもよいし、同じ情報処理装置１００内のデータ格納モジュール１１０又は格納依頼モジュール１８０であってもよい。データ格納依頼には、少なくともデータとそのデータを識別するための識別子が含まれている。データ格納依頼は、例えば、データ格納依頼データ４００のデータ構造を有している。図４は、データ格納依頼データ４００のデータ構造例を示す説明図である。データ格納依頼データ４００は、データ格納依頼欄４１０、識別子Ａ欄４２０、データ欄４３０で構成されている。データ格納依頼欄４１０は、データ格納依頼の指示を記憶している。通信モジュール１０５が、受信したデータ内に、データ格納依頼欄４１０があると判断した場合は、データ格納依頼データ４００を格納依頼受付モジュール１１５に渡す。識別子Ａ欄４２０は、識別子Ａを記憶している。この識別子Ａは、依頼元で生成されたものである。その生成方法は、データ欄４３０内のデータを一意に識別できる情報を生成することができる方法であれば、いずれの方法であってもよい。例えば、データ欄４３０内のデータに対するハッシュ値であってもよい。データ欄４３０は、データ（元データ）を記憶している。このデータは、分散して記憶させるデータである。
【００４９】
ステップＳ３０４では、分割モジュール１２０は、データ格納依頼内のデータを分割する。図５の例に示すように、データ格納依頼データ４００のデータ欄４３０内のデータを複数のデータ（分割データ５００、分割データ５０２、…、分割データ５９８）に分割する。分割は、いずれの方法であってもよい。例えば、予め定められた容量毎に分割してもよいし、予め定められた分割数に分割してもよいし、データに応じて分割方法を変更してもよい（例えば、画像であればブロック毎、動画であればシーン毎等）。また、再構築可能であるならば、分割データ間で、重複無く分割してもよいし、重複が生じるように分割してもよい。
【００５０】
ステップＳ３０６では、識別子生成モジュール１２５は、分割データを識別する識別子を生成する。その生成方法は、分割データを一意に識別できる情報を生成することができる方法であれば、いずれの方法であってもよい。例えば、分割データに対するハッシュ値であってもよい。
【００５１】
ステップＳ３０８では、記憶制御（Ａ）モジュール１３０は、データ格納依頼内の識別子と、ステップＳ３０６で生成した複数の識別子を対応付けて、データ記憶モジュール１９５に格納する。例えば、分割リスト６００を生成する。図６は、分割リスト６００のデータ構造例を示す説明図である。分割リスト６００は、識別子Ａ欄６１０、分割識別子群欄６２０を有している。識別子Ａ欄６１０は、元データの識別子（データ格納依頼データ４００の識別子Ａ欄４２０内の識別子Ａ）を記憶している。分割識別子群欄６２０は、ステップＳ３０６で生成した識別子群（データ格納依頼データ４００のデータ欄４３０内のデータを分割した分割データのそれぞれを識別する分割識別子Ｂｎ）を記憶している。つまり、識別子Ａから、元データを構築可能にするために、分割識別子Ｂ１等を取得可能としている。
【００５２】
ステップＳ３１０では、分割データにそれぞれの識別子を添えて、他の情報処理装置１００にデータ格納依頼を行う。例えば、データ格納依頼データ７００を生成する。分割数のデータ格納依頼データ７００が生成されることになる。データ格納依頼データ７００は、データ格納依頼欄７１０、分割識別子Ｂ欄７２０、分割データ欄７３０で構成されている。データ格納依頼データ７００は、データ格納依頼データ４００と同等のデータ構造を有している。データ格納依頼欄７１０は、データ格納依頼の指示を記憶している。分割識別子Ｂ欄７２０は、識別子Ｂを記憶している。分割データ欄７３０は、分割データを記憶している。
例えば、図８に示すように、情報処理装置１００ａから複数の情報処理装置１００（情報処理装置１００ｂ、情報処理装置１００ｃ、・・・、情報処理装置１００ｚ）に対して、それぞれデータ格納依頼データ７００（データ格納依頼データ７００ａ、データ格納依頼データ７００ｂ、・・・、データ格納依頼データ７００ｚ）を送信している。
データ格納依頼データ７００を受信した情報処理装置１００では、各データ格納依頼データ７００を記憶する。なお、データ格納依頼欄４１０内の格納依頼指示とデータ格納依頼欄７１０内の格納依頼指示は、異ならせてもよい。例えば、データ格納依頼欄４１０内の格納依頼指示は、分散して格納することを意味する指示であり、データ格納依頼欄７１０内の格納依頼指示は、そのまま格納することを意味する指示としてもよい。また、データ格納依頼欄４１０内の格納依頼指示とデータ格納依頼欄７１０内の格納依頼指示は同じであるが、データ欄４３０又は分割データ欄７３０内のデータ容量にしたがって、分散して格納するか、そのまま格納するかを決定するようにしてもよい。例えば、予め定められた閾値より大きい又は以上のデータ量であるならば、分散して格納し、その閾値以下又は未満のデータ量であるならば、そのまま格納すればよい。
【００５３】
図９は、本実施の形態（主に、データ格納モジュール１１０）による処理例を示すフローチャートである。図３の例に示したフローチャートにステップＳ９１０を付加したものであり、分割データを複製して、より多くの情報処理装置１００に分散して記憶させることによって、耐障害性を高めるものである。ステップＳ９０２からステップＳ９０８までの処理は、図３の例に示したフローチャートのステップＳ３０２からステップＳ３０８までの処理と同等である。
【００５４】
ステップＳ９０２では、格納依頼受付モジュール１１５は、データ格納依頼を受け付ける。
ステップＳ９０４では、分割モジュール１２０は、データ格納依頼内のデータを分割する。
ステップＳ９０６では、識別子生成モジュール１２５は、分割データを識別する識別子を生成する。
ステップＳ９０８では、記憶制御（Ａ）モジュール１３０は、データ格納依頼内の識別子と、ステップＳ９０６で生成した複数の識別子を対応付けて、データ記憶モジュール１９５に格納する。
【００５５】
ステップＳ９１０では、複製モジュール１３５は、分割データを複製する。図１０の例に示すように、データ格納依頼データ４００のデータ欄４３０内のデータを複数のデータ（分割データ５００ａ、分割データ５０２ａ…、分割データ５９８ａ）に分割した後、複製データ（分割データ５００ｂ、分割データ５０２ｂ…、分割データ５９８ｂ、…、分割データ５００ｚ、分割データ５０２ｚ…、分割データ５９８ｚ）を生成する。ここでは、各分割データを同じ数だけ複製しているが、各分割データで異なる数の複製データを生成するようにしてもよい。
ステップＳ９１２では、格納依頼処理（Ａ）モジュール１４０は、複製した分割データにそれぞれの識別子を添えて、他の情報処理装置１００にデータ格納依頼を行う。図３の例に示したフローチャートにステップＳ３１０での処理よりも、多くの情報処理装置１００に対して分散して格納することができるようになる。
【００５６】
図１１は、本実施の形態（主に、データ取得モジュール１４５）による処理例を示すフローチャートである。
ステップＳ１１０２では、取得依頼受付モジュール１５０は、データ取得依頼を受け付ける。依頼元は、他の情報処理装置１００であってもよいし、同じ情報処理装置１００内のデータ取得モジュール１４５であってもよい。データ取得依頼には、少なくとも取得したいデータを識別するための識別子が含まれている。データ取得依頼は、例えば、データ格納依頼データ１２００のデータ構造を有している。図１２は、データ格納依頼データ１２００のデータ構造例を示す説明図である。データ格納依頼データ１２００は、データ格納依頼欄１２１０、識別子欄１２２０で構成されている。データ格納依頼欄１２１０は、データ取得依頼の指示を記憶している。識別子欄１２２０は、取得したいデータの識別子を記憶している。
【００５７】
ステップＳ１１０４では、取得依頼受付モジュール１５０は、データ取得依頼内の識別子に対応する元データが、データ記憶モジュール１９５内にあるか否かを判断し、ある場合はステップＳ１１１８へ進み、それ以外の場合はステップＳ１１０６へ進む。ここで「それ以外の場合」とは、分割リスト６００の形式で、データ記憶モジュール１９５に格納されている場合である。また、「ある場合」とは、データ記憶モジュール１９５内に、識別子と元データが対応付けられて記憶されている場合である。例えば、格納データ１３００が記憶されている場合である。図１３は、格納データ１３００のデータ構造例を示す説明図である。格納データ１３００は、識別子欄１３１０、元データ欄１３２０で構成されている。識別子欄１３１０は、元データ欄１３２０内の元データの識別子を記憶している。元データ欄１３２０は、元データを記憶している。なお、「データ記憶モジュール１９５内に識別子と元データが対応付けられて記憶されている場合」として、例えば、ステップＳ１１１４で記憶された場合、図１９の例に示すフローチャートによるプリフェッチ処理が行われた場合、又は、分割記憶せずに、元データをそのまま記憶している場合等が該当する。
もちろんのことながら、ステップＳ１１０４の処理は、取得依頼受付モジュール１５０は、データ取得依頼内の識別子に対応する複数の分割識別子が、データ記憶モジュール１９５内にあるか否かを判断し、ない場合はステップＳ１１１８へ進み、それ以外の場合はステップＳ１１０６へ進むようにしてもよい。
【００５８】
ステップＳ１１０６では、取得依頼モジュール１６０は、データ取得依頼内の識別子に対応する複数の分割識別子を取得する。具体的には、分割リスト６００の分割識別子群欄６２０から、複数の分割識別子を取得すればよい。
ステップＳ１１０８では、取得依頼モジュール１６０は、他の情報処理装置１００に対して、データ取得依頼を送信する。具体的には、データ格納依頼データ１２００の識別子欄１２２０に分割識別子を入れて、他の情報処理装置１００に送信すればよい。
ステップＳ１１１０では、取得依頼モジュール１６０は、他の情報処理装置１００から返信として分割データを受信する。
【００５９】
ステップＳ１１１２では、構築モジュール１６５は、分割データから元データを構築する。分割処理と逆の処理を行えばよい。
ステップＳ１１１４では、記憶制御（Ｂ）モジュール１７０は、ステップＳ１１０２で受け付けたデータ取得依頼内の識別子に対応付けて元データを記憶する。アクセスがあったので、次のアクセスに対応するために、データ記憶モジュール１９５に元データを記憶する。つまり、同じ識別子について次回のデータ取得依頼があった場合は、ステップＳ１１０４で「Ｙｅｓ」の判断となり、分割データを収集し構築する処理が不要となる。
【００６０】
ステップＳ１１１６では、保存モジュール１７５は、ステップＳ１１０２で受け付けたデータ取得依頼内の識別子に対応付けてアクセス日時を記憶する。例えば、識別子・アクセス日時対応データ１４００を生成し、データ記憶モジュール１９５に記憶させる。図１４は、識別子・アクセス日時対応データ１４００のデータ構造例を示す説明図である。
図１４（ａ）の例に示す識別子・アクセス日時対応データ１４００ａは、識別子欄１４１０、アクセス日時欄１４２０で構成されている。識別子欄１４１０は、識別子を記憶している。アクセス日時欄１４２０は、その識別子のデータに対してアクセスがあった日時（年、月、日、時、分、秒、秒以下、又はこれらの組み合わせであってもよい）を記憶している。
図１４（ｂ）の例に示す識別子・アクセス日時対応データ１４００ｂは、識別子欄１４１０、元データ欄１４１５、アクセス日時欄１４２０で構成されている。つまり、識別子・アクセス日時対応データ１４００ａに元データ欄１４１５を付加したものである。元データ欄１４１５は、その識別子に対応するデータを記憶している。又は、識別子・アクセス日時対応データ１４００ｂは、格納データ１３００に、アクセス日時欄１４２０を付加したものであり、格納データ１３００の代替として、識別子・アクセス日時対応データ１４００ｂのデータ構造としてもよい。
【００６１】
ステップＳ１１１８では、元データを返信し、ステップＳ１１１６へ進む。
なお、この処理では、元データであるか分割データであるかの区別は不要であり、データ取得依頼のあった識別子に対応するデータがあれば、そのまま返信し、その識別子に分割識別子が対応している場合は、元データを構築する。したがって、データ取得依頼の識別子が分割識別子であっても、同等の処理を行えばよい。
【００６２】
図１５は、本実施の形態（主に、格納依頼モジュール１８０）による処理例を示すフローチャートである。
ステップＳ１５０２では、アクセス日時判定モジュール１８５は、アクセス日時を取得する。具体的には、データ記憶モジュール１９５内の各識別子について、識別子・アクセス日時対応データ１４００のアクセス日時欄１４２０からアクセス日時を取得する。
ステップＳ１５０４では、アクセス日時判定モジュール１８５は、予め定められた期間が経過しているか否かを判断し、経過している場合はステップＳ１５０６へ進み、それ以外の場合はステップＳ１５０８へ進む。
ステップＳ１５０６では、格納依頼処理（Ｂ）モジュール１９０は、データに識別子を添えて、データ格納モジュール１１０（他の情報処理装置１００におけるデータ格納モジュール１１０であってもよい）に対してデータ格納依頼を行う。つまり、アクセスされていないデータを、元データのままではなく、分割して他の情報処理装置１００に記憶させるものである。
ステップＳ１５０８では、全ての元データに対して処理したか否かを判断し、処理した場合は処理を終了し（ステップＳ１５９９）、それ以外の場合はステップＳ１５０２へ戻る。
なお、ステップＳ１５０６では、格納依頼を行った後、そのデータを削除してもよい。
【００６３】
図１６は、本実施の形態（主に、データ取得モジュール１４５）による処理例を示すフローチャートである。
ステップＳ１６０２では、構築モジュール１６５は、例えば、ログテーブル１７００を用いて、利用頻度が高まる時期を特定する。図１７は、ログテーブル１７００のデータ構造例を示す説明図である。ログテーブル１７００は、ログＩＤ欄１７１０、アクセス日時欄１７２０、識別子欄１７３０を有している。ログＩＤ欄１７１０は、本実施の形態において、ログを一意に識別するための情報（ログＩＤ：ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を記憶している。アクセス日時欄１７２０は、データへのアクセスがあった日時を記憶している。識別子欄１７３０は、そのデータの識別子を記憶している。
例えば、予め定められた期間（１年、１か月、１週間等）内で、予め定められた回数以上にアクセスがある日時（日、曜日、月末、月初、季節等）を抽出してもよいし、日時におけるアクセス回数で降順にソートして、予め定められた順位までの日時を抽出してもよい。また、機械学習を用いて、利用頻度が高まる時期を特定してもよい。
【００６４】
ステップＳ１６０４では、構築モジュール１６５は、例えば、プリフェッチ時テーブル１８００を生成する。図１８は、プリフェッチ時テーブル１８００のデータ構造例を示す説明図である。
プリフェッチ時テーブル１８００は、識別子欄１８１０、プリフェッチ時欄１８２０を有している。識別子欄１８１０は、識別子を記憶している。プリフェッチ時欄１８２０は、その識別子のデータのプリフェッチ時を記憶している。ここでのプリフェッチ時とは、データ取得依頼を受けずに、分割データから元データを構築する処理を行う日時である。つまり、そのプリフェッチ時になったならば、対応する識別子の元データを分割データから構築する処理を開始する。
ステップＳ１６０６では、全ての識別子に対して処理したか否かを判断し、処理した場合は処理を終了し（ステップＳ１６９９）、それ以外の場合はステップＳ１６０２へ戻る。
【００６５】
図１９は、本実施の形態による処理例を示すフローチャートである。
ステップＳ１９０２では、構築モジュール１６５は、プリフェッチ時か否かを判断し、プリフェッチ時の場合はステップＳ１９０４へ進み、それ以外の場合はプリフェッチ時となるまで待機する。具体的には、プリフェッチ時テーブル１８００のプリフェッチ時欄１８２０内のプリフェッチ時を用いればよい。
ステップＳ１９０４では、構築モジュール１６５は、分割されたデータか否かを判断し、分割されたデータの場合はステップＳ１９０６へ進み、それ以外の場合はステップＳ１９０２へ戻る。
ステップＳ１９０６では、取得依頼モジュール１６０は、他の情報処理装置１００（又は取得依頼受付モジュール１５０）に対してデータ取得依頼を送信する。
ステップＳ１９０８では、取得依頼モジュール１６０は、分割データを受信する。
ステップＳ１９１０では、構築モジュール１６５は、分割データから元データを構築する。
ステップＳ１９１２では、記憶制御（Ｂ）モジュール１７０は、識別子に対応付けて元データをデータ記憶モジュール１９５に記憶する。ステップＳ１９０８からステップＳ１９１２までの処理は、図１１の例に示したフローチャート内のステップＳ１１１０からステップＳ１１１４までの処理と同等である。
なお、図１９の例に示す処理を行う場合は、図１１の例に示したフローチャート内のステップＳ１１１６の処理を行う必要はない。
【００６６】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図２０に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ２００１を用い、記憶装置としてＲＡＭ２００２、ＲＯＭ２００３、ＨＤ２００４を用いている。ＨＤ２００４として、例えばハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてもよい。通信モジュール１０５、データ格納モジュール１１０、格納依頼受付モジュール１１５、分割モジュール１２０、識別子生成モジュール１２５、記憶制御（Ａ）モジュール１３０、複製モジュール１３５、格納依頼処理（Ａ）モジュール１４０、データ取得モジュール１４５、取得依頼受付モジュール１５０、送信モジュール１５５、取得依頼モジュール１６０、構築モジュール１６５、記憶制御（Ｂ）モジュール１７０、保存モジュール１７５、格納依頼モジュール１８０、アクセス日時判定モジュール１８５、格納依頼処理（Ｂ）モジュール１９０等のプログラムを実行するＣＰＵ２００１と、そのプログラムやデータを記憶するＲＡＭ２００２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ２００３と、データ記憶モジュール１９５としての機能を有する補助記憶装置（フラッシュ・メモリ等であってもよい）であるＨＤ２００４と、キーボード、マウス、タッチスクリーン、マイク、カメラ（視線検知カメラ等を含む）等に対する利用者の操作（動作、音声、視線等を含む）に基づいてデータを受け付ける受付装置２００６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置２００５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース２００７、そして、それらをつないでデータのやりとりをするためのバス２００８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００６７】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図２０に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２０に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図２０に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００６８】
また、前述の実施の形態の説明内での比較処理において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００６９】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７０】
１００…情報処理装置
１０５…通信モジュール
１１０…データ格納モジュール
１１５…格納依頼受付モジュール
１２０…分割モジュール
１２５…識別子生成モジュール
１３０…記憶制御（Ａ）モジュール
１３５…複製モジュール
１４０…格納依頼処理（Ａ）モジュール
１４５…データ取得モジュール
１５０…取得依頼受付モジュール
１５５…送信モジュール
１６０…取得依頼モジュール
１６５…構築モジュール
１７０…記憶制御（Ｂ）モジュール
１７５…保存モジュール
１８０…格納依頼モジュール
１８５…アクセス日時判定モジュール
１９０…格納依頼処理（Ｂ）モジュール
１９５…データ記憶モジュール
２００…データ記憶装置
２５０…ファイアーウォール装置
２９０…通信回線
【図１】
2019061408.tif 000003
【図２】
2019061408.tif 000004
【図３】
2019061408.tif 000005
【図４】
2019061408.tif 000006
【図５】
2019061408.tif 000007
【図６】
2019061408.tif 000008
【図７】
2019061408.tif 000009
【図８】
2019061408.tif 000010
【図９】
2019061408.tif 000011
【図１０】
2019061408.tif 000012
【図１１】
2019061408.tif 000013
【図１２】
2019061408.tif 000014
【図１３】
2019061408.tif 000015
【図１４】
2019061408.tif 000016
【図１５】
2019061408.tif 000017
【図１６】
2019061408.tif 000018
【図１７】
2019061408.tif 000019
【図１８】
2019061408.tif 000020
【図１９】
2019061408.tif 000021
【図２０】
2019061408.tif 000022