(57)【特許請求の範囲】
【請求項１】
情報格納手段を介して情報記憶部に保持されるデータにアクセスし前記データに対して所定の演算処理を行う情報処理手段と、
互いに異なる複数の情報格納形式に対応可能とされ、データに対応した所定の情報格納形式で前記データを前記情報記憶部に格納する前記情報格納手段と、
前記情報処理手段によるデータに対するアクセス及び演算処理の履歴を記憶する処理履歴記憶手段と、
前記処理履歴記憶手段に記憶された前記アクセス及び前記演算処理の履歴情報に基づき、前記情報格納手段によって格納されるデータの情報格納形式を変更し、前記情報処理手段で行われるデータの演算操作に適した情報格納形式となるように制御する情報格納形式制御手段と、
を備えたことを特徴とする情報処理システム。
【請求項２】
前記情報処理手段がデータに対してアクセスする際に、アクセス対象の前記データに対応する情報格納手段を特定し、前記情報処理手段からの前記アクセス要求を、前記特定した情報格納手段に振り分ける情報アクセス手段を含む、ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記情報アクセス手段が、前記データと、前記データの情報格納形式を特定する情報とを関連付けて保持する情報格納形式記憶部を含む、ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記情報格納形式制御手段が、
前記データの情報格納形式を変更するための条件を保持し、
前記処理履歴記憶手段に記憶された前記アクセス及び前記演算処理の履歴情報に基づいて前記情報格納形式の変更の条件判定を行い、
前記判定結果に基づき、前記データの情報格納形式の変更処理を行う、ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記情報処理手段が、前記データに対する処理を検出し、前記処理履歴記憶手段に、前記データに対する処理の履歴情報を格納する、ことを特徴とする請求項１記載の情報処理システム。
【請求項６】
前記情報処理手段が、前記データに対する処理を処理実行時に検出する、ことを特徴とする請求項５記載の情報処理システム。
【請求項７】
前記情報処理手段が、処理を記述したプログラムソースコードを実行命令群に変換する手段を備え、
前記データに対する処理を実行する命令と共に、前記処理履歴記憶手段へ、前記データに対する処理の履歴情報を格納する命令を生成する、ことを特徴とする請求項５記載の情報処理システム。
【請求項８】
前記情報処理手段上で実行されるプログラムに対して、前記処理履歴記憶手段へ処理の履歴情報を格納するプログラムコードを付与する手段を備えた、ことを特徴とする請求項５記載の情報処理システム。
【請求項９】
前記情報格納手段が実現する複数の情報格納形式のうち少なくとも１つが前記情報格納形式記憶部を含む、ことを特徴とする請求項３記載の情報処理システム。
【請求項１０】
前記情報格納手段は、互いに異なる複数の情報格納形式にそれぞれ関連付けられる複数の情報記憶媒体を含む、ことを特徴とする請求項５記載の情報処理システム。
【請求項１１】
前記情報格納形式制御手段が、前記データの情報格納形式を変更するための条件として、情報記憶媒体の容量を用いる、ことを特徴とする請求項１０記載の情報処理システム。
【請求項１２】
前記情報アクセス手段が、データに対するアクセスの種類に応じて、前記情報格納手段を選定する、ことを特徴とする請求項２記載の情報処理システム。
【請求項１３】
１つ又は複数の前記情報記憶部と、
１つ又は複数の前記情報格納手段と、
前記情報処理手段からのデータのアクセス要求を受ける情報アクセス手段であって、
アクセス対象の前記データが前記情報記憶部のどこに記憶されているか特定し、前記情報処理手段からのアクセス要求を、対応する前記情報格納手段に対して発行するアクセス先特定手段と、データを特定するための第１の情報と前記データの格納先を特定する第２の情報とを関連付けて保持する情報格納形式記憶部と、を含む情報アクセス手段と、
を備え、
前記情報アクセス手段の前記情報格納形式記憶部は、
前記第１の情報としてデータのＩＤ、前記第２の情報としてデータ格納先を関連付けて保持するテーブルと、
前記第１の情報としてメタ情報、前記第２の情報としてデータのＩＤを関連付けて保持するテーブル、又は、
前記第１の情報としてデータの中身に含まれる単語情報、前記第２の情報として前記データのＩＤを関連付けて保持するテーブルを含み、
前記情報格納形式制御手段は、情報格納形式を変更する場合、処理対象のデータの格納先を、前記情報格納形式記憶部から取得し、対応する前記情報格納手段を介して前記情報記憶部から処理対象のデータを取得し、
処理対象のデータを、変換先の前記情報格納手段向けに変形して前記情報格納手段を介して前記情報記憶部に格納し、
前記情報格納形式記憶部に記憶されている前記処理対象のデータのデータ格納先を更新する、ことを特徴とする請求項１記載の情報処理システム。
【請求項１４】
情報格納手段を介して情報記憶部に保持されるデータにアクセスし前記データに対して所定の演算処理を行う情報処理手段による前記データに対するアクセス及び演算処理の履歴を処理履歴記憶手段に記憶し、
前記情報格納手段は、互いに異なる複数の情報格納形式に対応可能とされ、データに対応した所定の情報格納形式で前記データを前記情報記憶部に格納し、
情報格納形式制御手段は、前記処理履歴記憶手段に記憶された前記アクセス及び前記演算処理の履歴情報に基づき、前記情報格納手段によって格納されるデータの情報格納形式を変更し、前記情報処理手段で行われるデータの演算操作に適した情報格納形式となるように制御する、ことを特徴とする情報処理方法。
【請求項１５】
前記情報処理手段がデータに対してアクセスする際に、アクセス対象の前記データに対応する情報格納手段を特定し、前記情報処理手段からの前記アクセス要求を、前記特定した情報格納手段に振り分ける情報アクセス手段を含み、
前記情報アクセス手段は、データに対するアクセスの種類及び演算処理に応じて、前記情報処理手段がいずれの情報格納手段で情報処理記憶部にアクセスすればよいかを選定する、ことを特徴とする請求項１記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の記載］
本発明は、日本国特許出願：特願２００９−０５３５８７号（２００９年３月６日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。【０００２】
本発明は、情報処理技術に関し、特に、情報格納形式を変更するシステムと方法に関する。
【背景技術】
【０００３】
近年、処理対象とされる情報量は増大し続け、これらを格納するシステムや、格納されている情報を利用して処理を行うシステムの必要性が増加している。【０００４】
＜メタ情報の定義＞  
このようなシステムに格納する情報（データ）は、次の２つに分けて考えることが出来る。【０００５】
情報（データ）本体と、情報（データ）についての情報（データ）、すなわちメタ情報（メタデータ）である。【０００６】
一般的なメタ情報の例としては、
・オフィス文書の著者名や作成日時、
・図書館における書誌情報
等が挙げられる。【０００７】
また、情報格納システムの一例であるファイルシステムソフトウェアであれば、
・ファイルの存在場所を示すファイルパス、
・ファイルの所有者を示すユーザやアクセスタイム
等がメタ情報の例といえる。【０００８】
本書では、これらのメタ情報として一般的な例の他に、情報自体から抽出又は作成／加工することで得られる情報についてもメタ情報として扱うこととする。この種の情報自体から得れるメタ情報の例として、情報検索システムにおけるインデックスの為の情報（文書から抽出された索引語とその出現位置、出現箇所、またその他の情報から演算されるスコア情報等）が挙げられる。【０００９】
また、情報を格納するシステムで、データを管理するために必要な情報も、情報についての情報としてメタ情報として扱われる。【００１０】
例えば、ファイルシステム等において、
・ファイルの記録場所を示す情報、
・アクセスコントロールのための情報
等が挙げられる。【００１１】
このように、これらのメタ情報は、ユーザが利用・参照するだけではなく、情報格納システム自体も利用する。【００１２】
そのため、性能を維持するため等の理由で、情報本体とは別の方法で管理・格納されていることが多い。【００１３】
従来の情報格納システムの一例として、特許文献１には、記録媒体とＣＰＵを含んだ処理装置をネットワークを介して複数接続し、それらが互いに連動しながら並列計算処理を実行する並列計算システムに関し、特に、その中でも、複数の処理装置の記録媒体にそれぞれ記録された複数のデータファイルを管理するデータ管理システムに関する。当該サーバ装置は、複数の処理装置に記録された複数のデータファイルのそれぞれに対して、パス情報を含んだ管理ファイルを生成し保持することによって、ユーザまたはプログラムに対して各処理装置に存在するデータファイルへのアクセスを可能にしている。【００１４】
また、非特許文献１に記載の技術でも、同様に、メタデータとしてファイル名からチャンクの存在箇所を格納する管理サーバを用意している。非特許文献１には、高速化のために、メタデータを半導体メモリ上に格納する構成が開示されている。【００１５】
一般に、半導体メモリは容量が磁気ディスク等の記憶装置と比較して小さいため、メタデータとして格納する情報としては、ファイルのディレクトリーツリーの情報や、チャンクの存在箇所等の限られたメタ情報に制限されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００５−６３２１４号公報
【非特許文献】
【００１７】
【非特許文献１】Ｓａｎｊａｙ  Ｇｈｅｍａｗａｔ，  Ｈｏｗａｒｄ  Ｇｏｂｉｏｆｆ，  ａｎｄ  Ｓｈｕｎ−Ｔａｋ  Ｌｅｕｎｇ，  Ｔｈｅ  Ｇｏｏｇｌｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ，  １９ｔｈ  ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｐｒｉｎｃｉｐｌｅｓ，  ＬａｋｅＧｅｏｒｇｅ，  ＮＹ，  Ｏｃｔｏｂｅｒ，  ２００３．
【発明の概要】
【発明が解決しようとする課題】
【００１８】
以下の分析は、本発明によって与えられたものである。【００１９】
以下に本発明による関連技術の分析を与える。【００２０】
メタデータ管理サーバで管理する情報は、サーバのシステム設計時に決定される。このため、メタ情報の利用は、システム設計時に想定した用途に制限される。【００２１】
特許文献１や非特許文献１に記載されている情報システムにおいては、ファイル内の情報に対してアクセスするためには、必ず、管理ファイル（又は管理サーバ）へアクセスし、実体のファイル情報が格納されている場所を明らかにして、その後に、実体のファイル情報へアクセスしなければならない。【００２２】
しかしながら、実体のファイル情報全体へのアクセスを必ずしも必要としない処理が、システムの利用時に起こる可能性がある。例えば、任意の指定されたファイルの容量を調査する例について考える。【００２３】
メタ情報として各ファイルの容量が記録されるように、システム設計を行うことで、ファイルの容量の調査を、メタ情報へのアクセスによって実現することができる。【００２４】
しかし、このような処理（ファイルの容量の調査）があまり起きないという前提で設計されたシステムにおいては、メタ情報としてファイル容量を管理することはない。このため、この情報システムにおいて、ファイルの容量を調査する場合、ファイルの実体にアクセスしてファイル容量を調査しなければならない。【００２５】
上記の如く、システムの設計時点で情報格納形式が決定される場合、情報格納形式がその情報が実際に利用される形態に適したものになっていないことがある。【００２６】
したがって、本発明の目的は、情報格納形式をデータの利用形態に適した形式に変更自在な情報処理システム、方法を提供することにある。
【課題を解決するための手段】
【００２７】
本発明によれば、互いに異なる複数の情報格納形式に対応可能とされ、データを前記データに対応する情報格納形式で格納する情報格納手段と、データに対する情報処理の履歴を記憶する処理履歴記憶手段と、前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、データの情報格納形式を制御する情報格納形式制御手段と、を備えたシステムが提供される。【００２８】
本発明によれば、互いに異なる複数の情報格納形式に対応可能とされる情報格納手段が、データを前記データに対応する情報格納形式で格納し、
データに対する情報処理の履歴を処理履歴記憶手段に記憶し、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、データの情報格納形式を変更する方法が提供される。【００２９】
本発明によれば、互いに異なる複数の情報格納形式に対応可能とされる情報格納手段により、データを前記データに対応する情報格納形式で格納する処理と、
データに対する情報処理の履歴を処理履歴記憶手段に記憶する処理と、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、データの情報格納形式を変更する処理と、をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【００３０】
本発明によれば、情報格納形式をデータの利用形態に適した形式に変更することを可能としている。
【図面の簡単な説明】
【００３１】
【図１】本発明の第１の実施の形態の構成を示す図である。
【図２】本発明の第１の実施の形態における処理履歴記憶手段の構成を示す図である。
【図３】本発明の第１の実施の形態の動作を示す流れ図である。
【図４】本発明の第１の実施の形態の流れを示す流れ図である。
【図５】本発明の第１の実施の形態の動作を示す流れ図である。
【図６】本発明の第２実施の形態の構成を示す図である。
【図７】本発明の第１の実施の形態における処理履歴記録内容の一例を示す図である。
【図８】本発明の第１の実施の形態における情報格納形式記憶部の内容の一例を示す図である。
【図９】本発明の第１の実施の形態における情報格納形式記憶部の内容の一例を示す図である。
【図１０】本発明の第１の実施の形態における情報格納形式記憶部の内容の一例を示す図である。
【発明を実施するための形態】
【００３２】
本発明の実施の形態について説明する。はじめに、本願で扱う情報格納形式について説明しておく。なお、以下に説明する情報格納形式は、あくまで、後述する実施例の理解を容易とするためのものであり、本発明を制限するためのものと解すべきでないことは勿論である。
【００３３】
情報格納形式は、任意のデータを記録する際の記録媒体（例えば磁気ディスク（ＨＤＤ）、半導体メモリ、ＳＳＤ（ソリッドステートディスク）など）、記録フォーマット、記録のための手順、およびソフトウェアの少なくとも１つ又は組み合せをいう。ソフトウェアとしては、ファイルシステム、データベース、検索エンジン等が挙げられる。異なる情報格納形式とは、これらのうち少なくとも１つが異なることをいう。例えば、データをデータベースで保持する場合と、データをファイルで保持する場合とでは情報格納形式が互いに異なる。
【００３４】
以下では、オフィス向けの文書ドキュメントファイルを例に挙げて説明する。この文書ドキュメントファイルのデータを保持する方法として、本発明を特に制限するものではないが、例えば下記のような形式がある。
【００３５】
（Ａ１）ＭｉｃｒｏｓｏｆｔＷｏｒｄ（登録商標）等に代表されるような文書を扱うアプリケーション向けのバイナリ形式ファイル。
【００３６】
（Ａ２）文書内の文字列を抽出したテキストファイル。
【００３７】
（Ａ３）構造情報を共に保持するｈｔｍｌ形式やｘｍｌ形式のテキストファイル。
【００３８】
（Ａ４）データベースのレコード（例えば、各メタ情報をデータベースの各フィールドに格納し、文書中身のデータをＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  ＯＢｊｅｃｔ）形式のフィールドに格納する）。
【００３９】
（Ａ５）検索エンジンのインデックス。
【００４０】
例えば文書内の文字列を単語などで分割し、文書内の単語の出現回数や出現位置を検索エンジンの転置ファイル形式で格納する。
【００４１】
これらは、いずれも、情報格納形式の一例であり、同一の情報と同等か任意の一部を元の形式とは別の形式で格納することを「情報格納形式の変換」と呼ぶ。また、他の例として、Ｃ言語の構造体のような、複数のデータの組み合わせからなるデータを挙げる。
【００４２】
Parameter1 int[] = {1,2,3,4,5,3,6,23,10}
Parameter2 string = "name"
Parameter3 int = 8;
Parameter4 int = 1;
Parameter5 int = 3;
．．．
（なお、intは整数型、stringは文字列を表す）
【００４３】
上記のような複数のデータを１つのデータとして保持する方法として、幾つかの方法がある。本発明を特に制限するものではないが、例えば、次のような形式がある。
【００４４】
（Ｂ１）数値を予め定められたフォーマットで格納する（例えば、12345362310name813、という内容が記録されたファイル）。
【００４５】
（Ｂ２）１つ目の配列を予めソートした状態のフォーマットで格納する（例えば23106543321name813,といった内容が記録されたファイル）。
【００４６】
（Ｂ３）１つ目の配列を合計した数値を共に記録する（例えば57, 12345362310name813）。
【００４７】
（Ｂ４）データベースのレコードとして記録する。例えばParameter1〜5のフィールドがあり、それぞれに分けて全体の１レコードとして記録する。あるいは、例えばParameter1の配列要素１つずつを別のレコードとして保持し、他のフィールドは上と同様に格納することで、全体で９個のレコードとして記録する。
【００４８】
（Ｂ５）一部のデータだけ別の形式で記録する。例えばParameter2だけデータベースに格納し、他のデータを前述したようなファイル形式として格納する。
【００４９】
上記の如く、様々なバリエーション（変形例）が存在するのは、そのデータの利用のされ方によって、適切な保存形態が存在するためである。
【００５０】
例えば、１つ目の配列に対してアクセスする際に、合計値を必要とするケースが多ければ、一番目の（Ｂ１）の形式よりも、三番目の（Ｂ３）の形式のほうが効率的といえる。
【００５１】
また、複数のデータを参照して、Parameter3に５より大きく、Parameter4に２より小さい値が入っているデータに対して処理をする、という場合には、データベースのレコードとして記録することが効率的であると言える。
【００５２】
また、Parameter2に入っている文字列が条件を満たしたデータに対して処理を行う場合には、Parameter2だけをデータベースに保持して、他のデータの格納先を共に記録するような形式のほうが適切な場合がある。
【００５３】
そこで、本発明においては、後述される実施の形態（第２の実施の形態）において、Parameter2を、情報格納形式記録部（２２）に格納し、それ以外のデータを、情報記憶部（６）に格納している。
【００５４】
本発明は、様々な方法が混在するデータの保持形式を、アプリケーションによるデータの利用形態に応じて、適切な形に変換して効率的なシステムを提供するものである。システム設計時点でデータの利用のされ方が分かっていれば、比較的容易に効率化されたシステムを提供することが出来る。システムの設計時点でデータの利用のされ方が不明であるか、あるいは、システムの設計時点とは利用形態が変わってしまう場合、情報格納形式が実際の利用形態に適したものになっていないことがある。
【００５５】
そこで、本発明は、システムの設計時点でデータの利用のされ方が不明であるか、あるいは、システムの設計時点とは当該データの利用形態が変わってしまう場合にも、対応可能としたシステムを提供するものである。
【００５６】
＜実施形態１＞
図１は、本発明の第１の実施の形態の構成を示す図である。図１を参照すると、本発明の第１の実施の形態のシステムは、情報処理手段１と、情報アクセス手段２と、処理履歴記憶手段３と、情報格納手段４〜５と、情報記憶部６〜７と、情報格納形式制御手段８と、を備えている。図１において、情報格納手段４、５、情報記憶部６、７を２つ備えた構成とされるが、情報格納手段、情報記憶部の個数はいずれも２つに制限されるものでないことは勿論であり、任意としてよい。
【００５７】
情報処理手段１は、情報記憶部６、７に格納されているデータ（情報）を用いて行う演算処理、又は処理結果を情報記憶部６、７に格納する演算処理を実現するソフトウェア（プログラム）を含む。具体的には、情報処理手段１は、任意のプログラミング言語で記述されたロジック（ソースコード）を実行する環境である。処理履歴記憶手段３への情報に対する処理履歴の記録を実現することができるものであれば、任意のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作する実行バイナリであってもよいし、情報処理手段１内でソースコードをコンパイルして実行バイナリを生成してもよい。
【００５８】
また、ソースコードを情報処理手段１でコンパイルする際（またはそれ以前に）、処理履歴記憶手段３への記録機能を持つよう変換しても良い。
【００５９】
情報アクセス手段２は、情報アクセス送受信手段２０と、アクセス先特定手段２１と、情報格納形式記憶部２２と、を備え、情報処理手段１による情報記憶部６、７に対する読み出し又は書き出しの機能を提供する。
【００６０】
情報アクセス送受信手段２０は、情報処理手段１による任意の情報（データ）へのアクセス要求を受け付け、また結果を応答する。
【００６１】
アクセス先特定手段２１は、情報処理手段１が指定するデータ（情報）が、情報記憶部６、７のどこに格納されているかを判断し、格納先の情報格納手段に対してアクセス要求を発行する。
【００６２】
情報処理手段１が指定するデータ（情報）が、情報記憶部６、７のいずれに格納されているか否かを、アクセス先特定手段２１で判断するための情報（メタ情報）は、情報格納形式記憶部２２に記憶保持されている。
【００６３】
情報格納形式記憶部２２は、単数のデータ（情報）又は複数のデータ群（情報群）が、どの情報記憶部に存在するか、についての情報（メタ情報）を記憶する。
【００６４】
情報格納形式記憶部２２は、例えば、分散ファイルシステムにおけるメタサーバとして構成され、記憶装置及び該記憶装置を該サーバとして機能させるソフトウェアによって実現される。情報格納形式記憶部２２は、具体的には、非特許文献１に記載されるデータ管理システム等で実現される。情報格納形式記憶部２２を実現するソフトウェアとしては、任意の手法で実現してよいが、高速な検索性能、応答性能が求められるため、本実施の形態では、データベース・ソフトウェアや検索エンジン・ソフトウェアが用いられる。情報格納形式記憶部２２の記憶装置は、磁気ディスク装置や半導体メモリ装置等を用いる。
【００６５】
処理履歴記憶手段３は、情報処理手段１によって行われた情報に対するアクセスの履歴を記録する。
【００６６】
処理履歴記憶手段３において、このアクセスの履歴は、
・ファイルに順次追記していくログファイル形式で保持してもよいし、あるいは、
・任意の形式でデータベースとして保持してもよい。
【００６７】
処理履歴記憶手段３は、
・情報処理手段１によってアクセスされた情報を特定する情報（例えばデータのユニークなＩＤや、ファイルパスに相当する情報等が当てはまる）と、
・該情報に対して行われた処理の内容（種類）と
を少なくとも記録する。
【００６８】
該情報に対して行われた処理の内容（種類）としては、例えば、
・リードに類する処理であることを示す情報、
・ライトに類する処理であることを示す情報、
・プログラム内で呼び出された関数名（メソッド名）を示す情報、
・アクセスの特性を示す情報（例えばランダムアクセス、シーケンシャルアクセス、新規作成、更新処理等）、
が挙げられる。
【００６９】
また、処理履歴記憶手段３には、単にアクセスされた、ということだけを記録しても良い。これらのいずれかの任意の情報を処理履歴記憶手段３に対して格納する。
【００７０】
また、処理履歴記憶手段３に対して格納される情報は途中で消去（又は削除）しても良い。例えば、一定サイズを超えたら古い情報を消去するよう動作してもよいし、後述する情報形式の変更処理が行われたらその情報に対する履歴を消去しても良い。
【００７１】
情報格納手段４、５は、それぞれ情報記憶部６、７に対して情報の読み出しおよび書き出しを行うソフトウェアを含む。情報格納手段４、５は、それぞれの情報記憶部６、７に対して、異なる手法で情報の読み出しおよび書き出しを行う。
【００７２】
具体例として、例えば、
情報格納手段４は、ファイルシステム・ソフトウェア、
情報格納手段５は、データベース・ソフトウェア、
をそれぞれ含む。
【００７３】
また、情報格納手段４、５は、ファイルシステム・ソフトウェアや、データベース・ソフトウェア等を用いて、情報の読み出しおよび書き出し機能を実装したソフトウェアを含むものであってもよい。また、それぞれの情報格納手段４、５単独で、任意の情報に対して複数の情報格納形態を備えても良い。例えば、データベース・ソフトウェアの場合では、同じ情報に対して、異なるスキーマによって格納する。また、ファイルシステムの場合においても、オフィス文書アプリケーション向けのバイナリ・ファイルとして格納する場合と、テキスト部分を抽出してテキスト・ファイルとして格納することを使い分けたり、テキスト・ファイルであっても、内部の格納順序を変更したり（例えば、先頭文字列でソートする）することが当てはまる。
【００７４】
また、任意の複数の情報を単一のファイルやデータベーステーブル等に格納することと、それぞれ情報単独で別のファイルやデータベーステーブルとして格納することも、本発明における情報格納形式の使い分けに該当する。
【００７５】
情報記憶部６、７は、情報の実記憶部として動作する。情報記憶部６、７は、磁気記憶装置等の任意の記憶素子を備えた任意の数の装置が用いられる。情報記憶部６、７は、更に具体的には、ディスクアレイ装置や、演算装置を備えファイルシステムが動作するファイルサーバ、半導体メモリを利用した記憶装置等が用いられる。情報格納手段と情報記憶部の構成を変更してもよい。
【００７６】
図１に示す例では、情報格納手段４と情報記憶部６、情報格納手段５と情報記憶部７という組み合わせとされているが、本発明はこのような構成に限定されるものではないことは勿論である。情報記憶部６、７は、同じ装置又はシステムとして実現し、複数の情報格納手段によって共有されてもよい。
【００７７】
また、逆に、複数の情報記憶部を単一の情報格納手段が利用する形となってもよい。情報格納形式記憶部２２と情報記憶部６、７の同一としてもよい。また、任意の情報記憶部を情報格納形式記憶部２２と同一のものとして扱っても良い。つまり、情報格納形式記憶部２２に格納される情報を、情報記憶部６、７内に格納してもよい。また、処理履歴記憶手段３の記録内容を、情報記憶部６、７に格納してもよいし、情報格納形式記憶部２２に格納しても良い。
【００７８】
情報格納形式制御手段８は、処理履歴記憶手段３に記述された履歴情報を用いて、任意の情報に対する情報格納形式の変更を行う。つまり、情報格納形式制御手段８は、情報格納手段４によって格納されていた情報に対して、情報格納手段５によって格納するように変換する役割を果たす。また、情報格納形式制御手段８は、情報に対して情報格納形式を変更する条件を記録する記憶手段を備えていてもよい。
【００７９】
図２は、図１の処理履歴記憶手段３の構成例を示す図である。図２を参照すると、処理履歴記憶手段３は、情報受付手段３２と、情報記録手段３３と、記録媒体３１を備えている。
【００８０】
情報受付手段３２は、情報処理手段１から
・情報処理手段１が行う演算の種類、および、
・該演算に利用するデータを特定するための情報の種類
を受ける。
【００８１】
前述したように、情報処理手段１が行う演算の種類を示す情報の例として例えば次のものがあげられる。
【００８２】
（Ｃ１）アクセスすることを示す情報。
【００８３】
（Ｃ２）リードに類する処理であることを示す情報（Read）。
【００８４】
（Ｃ３）ライトに類する処理であることを示す情報(Write)。
【００８５】
（Ｃ４）アクセスの特性を示す情報（例えば、
ランダムアクセス（Random-Read、Random-Write）、
シーケンシャルアクセス(Sequential-Write、Sequential-Read)、
新規作成(Create)、
更新処理(Update)等）。
【００８６】
（Ｃ５）プログラム内で呼び出された関数名（メソッド名）を示す情報（例えば、
Class#methodname, sort, join, ...、あるいは、fopen, ・・等）。
【００８７】
これらの情報を用いて、情報格納形式制御手段８は、情報格納形式の変更を行うか否か、また変更の種類について判断する。記録する情報の粒度については、本発明を実現するシステムが任意に設定して良い。ただし、情報格納形式制御手段８が行う判断に必要とする情報にとって十分な精度が必要である。
【００８８】
例えば、アクセスがリードであるかライトであるか、その回数、頻度だけによって形式変更の判断を行う場合には、例（Ｃ２）、（Ｃ３）の情報で十分である。より細かい精度の情報を利用する場合には、例（Ｃ５）に挙げたような、プログラム内での呼ばれ方やメソッド名までを記録する必要がある。
【００８９】
情報処理手段１が行う演算に利用するデータを特定するための情報（この情報は情報受付手段３２で利用される）の例としては、本発明を特に制限するものでないが、下記のものがある。
【００９０】
（Ｄ１）データのファイルパス（例えば /home/user/~~~.dat  等）。
【００９１】
（Ｄ２）データのファイルパスおよびデータが格納されているホスト名（IPアドレス）（例えば、 /home/user/~~~.dat, host1.abc.com、  IPアドレス：10.**.**.**等)。
【００９２】
（Ｄ３）データのＩＤ（データを特定するためのＩＤ情報：例えば、120321）。
【００９３】
（Ｄ４）データのハッシュ値（例えば、5a579238e591f8b95569613f8cdc5b26）。
【００９４】
（Ｄ５）データのメタ情報 （例えばデータの所有者＝○○、作成日時＝YY/MM/DD/hh/mm等）。
【００９５】
これらの情報から、当該データの配置場所（どの情報記憶部（情報格納手段４、５））に格納されているかを、情報格納形式制御手段８が特定することが出来る必要がある。
【００９６】
例えば、演算に利用するデータを特定するための情報が、「データのファイルパスおよびデータが格納されているホスト名（IPアドレス）」である場合、処理履歴記憶手段３に格納されている情報によってデータの配置場所を特定できる。
【００９７】
また、情報格納形式制御手段８が情報アクセス手段２に問い合わせることによりデータの配置場所を特定するようにしてもよい（情報格納形式記憶部２２の保持する情報と合わせて解決する）。
【００９８】
例えば、「データのファイルパス」や「データのＩＤ」、「データのハッシュ値」であれば、情報アクセス手段２が「データのファイルパス」や「データのＩＤ」、「データのハッシュ値」などの情報からデータの配置場所を応答する機能を具備していれば、情報アクセス手段２に問い合わせることにより、データの配置場所を特定できる。同様に、「メタ情報」から問い合わせて、データの配置場所を特定するようにしてもよい。
【００９９】
また、情報格納形式制御手段８が単独でデータの配置場所を特定するようにしてもよい。例えば、「データのハッシュ値」や「データのＩＤ」から、Consistent Hashing（コンシステント・ハッシュ法）などの手法を用いることにより、データの配置場所を算出することが出来る。
【０１００】
情報記録手段３３は、情報受付手段３２が受けとった情報を記録媒体３１に記録する。記録媒体３１は、磁気ディスクや半導体メモリなどの記憶装置によって実現される。記録媒体３１に記録するフォーマットは任意の方法によって実現できる。本発明を特に制限するものでないが、ログファイルとして、例えば次のような手法が用いられる。
【０１０１】
処理履歴記憶手段３において、データの処理履歴をログファイルに記録する場合について説明する。例えばログメッセージをIPネットワークに転送する標準規格（ロギングの標準）であるSyslogなどに代表されるログ形式でファイルの末尾に追記する。例えば次のような形式である(“_”はスペースを示す)。
【０１０２】
Date(日時情報)_server名(情報処理手段1の名前など)_ Read (情報処理手段１が行う演算の種類を示す情報)_ /home/user/A.dat (データを特定するための情報)
【０１０３】
Date_server名_ Read_ /home/user/A.dat 
Date_server名_ Write_ /home/user/B.dat 
Date_server名_ Read_ /home/user/B.dat 
【０１０４】
この例のログの場合、Ａ．ｄａｔというファイルにＲｅａｄが２回、Ｂ．ｄａｔにＷｒｉｔｅが１回、Ｒｅａｄが１回起きたことが記録されていることが分かる。
【０１０５】
情報記録手段３３は、情報受付手段３２の受け取った情報を解釈し、ログフォーマットの形式で情報を作成し、ログファイルの末尾に追記する。
【０１０６】
次に処理履歴記憶手段３において、データの処理履歴を、データベースで管理する場合について説明する。この場合、処理履歴記憶手段３では、データベース管理ソフトウェア（データベース管理ソフトウェアは図２の情報記録手段３３を構成する）等を用いて、データベースの表形式として記録する。
【０１０７】
例えば、図７に示すようなテーブルによって情報を記録する。図７は、処理履歴記憶手段３において、データの処理履歴をデータベースで管理した場合のデータベースのテーブル構成の一例を示す図である。
【０１０８】
図７に示した例の場合、データのｉｄが「１」のデータに対して、ｓｏｒｔ（ソート）処理が１回行われ、ａｎａｌｙｓｉｓ（分析）処理が３回行われたことが記録されていることが分かる。同様に、データのｉｄが「２」のデータに対して、ｇｅｔ（検索）処理が３回行われたことが記録されていることが分かる。
【０１０９】
情報記録手段３３は、情報受付手段３２の受け取った情報を解釈し、テーブルの必要箇所を更新する。必要ならば、レコード（行）を追加したり、カラム（列）を追加したりしてもよい。
【０１１０】
また、情報格納形式制御手段８のアクセス特性に応じて、インデックスを作成してもよい。例えば、主としてｓｏｒｔ回数により、情報格納形式の変更を判断する場合には、ｓｏｒｔ回数のカラムに、インデックスを作成するテーブル構成とする。
【０１１１】
また、メモリ上にハッシュテーブル等による連想配列として保持してもよい。例えば、データのｉｄをｋｅｙとし、演算が実行された回数をＶａｌｕｅとして保持する。
【０１１２】
また、ログファイル、データベース、連想配列らの形式の１つあるいは複数の形式で記録媒体３１に記録することが可能である。例えば、ログ形式とデータベースのテーブル形式の２つを持つ等の構成としてもよい。
【０１１３】
あるいは、前述したように、コンパイラ型による実現を採っても良い。この場合、情報受付手段３２、情報記録手段３３が果たす機能は、情報処理手段１において実現され、情報処理手段１が記録媒体３１に対する書き出し機能を提供する。
【０１１４】
次に、本実施形態における情報格納形式記憶部２２についてその詳細な一例を説明する。情報処理手段１が、データに対してアクセスするためには、アクセスしたいデータの格納先を知る必要がある。図１においては、データは、情報記憶部６あるいは情報記憶部７のいずれか（または両方に）格納されている。
【０１１５】
情報アクセス手段２は、情報処理手段１が情報記憶部６あるいは７のいずれにアクセスすればよいかを回答する役割を果たす。具体的には、情報処理手段１のアクセス対象のデータ（情報）が、情報記憶部６、７のいずれにあるか、あるいは、両方に格納されている場合にはどちらにアクセスすべきかを応答として情報処理手段１に返す。なお、図１の構成において、情報処理手段１は、常に、情報アクセス手段２を介して情報格納手段４又は５にアクセスする構成とされているが、情報処理手段１側でアクセス対象のデータの格納先について既に知っている場合（例えば以前に特定済みである当等の理由により）、情報処理手段１は、情報格納手段４又は５に直接アクセスする構成としてもよい。この場合、情報アクセス手段２は、情報処理手段１からのアクセス要求をスルーさせる。
【０１１６】
情報格納形式記憶部２２は、情報アクセス手段２が情報処理手段１に対して、アクセス対象データの格納先を応答する機能を果たす際に必要な記憶部の役割を果たす。情報格納形式記憶部２２で保持される情報としては、少なくとも次の２つが必要である。
（Ｅ）データを特定するための情報；
（Ｆ）データの格納先を特定するための情報。
【０１１７】
データを特定するための情報の例は、本発明を特に制限するものではないが、前記と同一のものが挙げられる。
（Ｅ１）データのファイルパス；
（Ｅ２）データのファイルパスおよびデータが格納されているホスト名（ＩＰアドレス）；
（Ｅ３）データのＩＤ；
（Ｅ４）データのハッシュ値；
（Ｅ５）データのメタ情報；
（Ｅ６）データの中に含まれるキーワード、出現単語（例えば“秘密文書”や“ストレージ”等）。
【０１１８】
データの格納先を特定するための情報の例として、本発明を特に制限するものではないが、次のものがある。
【０１１９】
（Ｆ１）データの格納先となるホストの名称、IPアドレスなど（例えばホスト名：host1、IPアドレス：192.168.0.1等）。
【０１２０】
（Ｆ２）データの格納先となる仮想ボリュームの名称（例えば 、/shared/vol1）。
【０１２１】
（Ｆ３）データの格納先となるデータベース名称、テーブル名称、ユニークレコードＩＤなど（例えばデータベース名称：metadatabase、テーブル名称：hosttable、ユニークレコードＩＤ: 123）。
【０１２２】
（Ｆ４）データの格納先となるファイル名、パス名（例えば /home/data/123.obj、host1, /home/data/123.obj等）。
【０１２３】
（Ｆ５）データのＩＤ、ハッシュ値など（例えばデータのＩＤ：123、ハッシュ値： 5a579238e591f8b95569613f8cdc5b26）。
【０１２４】
（Ｆ６）データ形式（例えばdatabase形式、plane file、 sorted file）。
【０１２５】
これらの情報を格納する方法としては、データベースを用いる方法や、検索エンジンを用いる方法が適用可能である。
【０１２６】
本発明を特に制限するものではないが、本実施例では、データベースを用いる方法の例について説明する。
【０１２７】
図８、図９、図１０は、図１の情報格納形式記憶部２２としてデータベースを用いた場合のテーブル構成例を示す図である。
【０１２８】
図８は、データを特定するためのＩＤ（ｉｄ）から、データの格納先を探索するためのテーブルの例を示す図である。図８に示す例では、データのｉｄによってインデックスを作成しておく構成を前提とする。すなわち、データベースには、ホスト名とファイルパス情報、形式（ファイルかデータベースか）とからなるデータの格納先情報（レコード）がデータのｉｄと関連付けて格納されている。
【０１２９】
アクセス先特定手段２１は、アクセスしたいデータのｉｄが分かれば、図８のテーブルを用いて、そのレコードを取得することにより、データの格納先を得ることが出来る。
【０１３０】
この例の場合、データのｉｄが「１」のデータの格納先は、host1の/home/data/1.objで通常のファイルとして格納されていることがわかる。このとき、host1のサーバ上で動作するファイルシステムなどのソフトウェアが、情報格納手段４の例であり、記憶媒体(/home/data/1.objが記録されるハードディスク（ＨＤＤ）など）が情報記憶部６の例である。
【０１３１】
また、データのｉｄが「１」の例のように、データのｉｄが「１」であれば/home/data/1.objとfile pathを自動的に算出できる場合には、この情報は必ずしも必要ないことは明かである。
【０１３２】
ホスト名（Ｈｏｓｔ  ｎａｍｅ）についてもデータのｉｄからconsistent hashing（コンシステントハッシュ法）のような手法で、自動的に格納先のホストを決定する手法を取る場合には必要がない。形式についても、情報格納手段４に実際にアクセスするまで知る必要がないなどには必要がない。
【０１３３】
情報格納形式記憶部２２に、図８の情報しか存在しない場合には、情報処理手段１は、データのｉｄによってデータの格納先にアクセスする。
【０１３４】
図９、図１０は、データのｉｄ以外の情報によりデータにアクセスする場合のテーブル構成の例を示す図である。図９に示す例では、データの特定するための情報として、メタ情報（データの作成年月日）と、データの格納先を特定する情報（ｉｄ）とが対応させて格納されている。
【０１３５】
情報格納形式記憶部２２が、図９に示したテーブルを備えている場合、メタ情報としてデータの作成日付を有する。このメタ情報によって、データを特定してアクセスするシステムを実現することができる。
【０１３６】
例えば、作成日付（年月日）２００８．１０．１に作成したデータにアクセスしたい場合、ｉｄが「１」、「３」、「５」のデータに対してアクセスすればよい。
【０１３７】
ｉｄが「１」、「３」、「５」のデータは、それぞれ、図８のテーブルを用いて当該データの格納先を得ることが出来る。ただし、データのｉｄだけでデータの格納先が分かる場合には、図８のテーブルを検索する必要はない。また、図９のテーブルを、図８の右３列分のカラムデータをｉｄの代わりに列挙するような形としてもよい。すなわち、データの特定するための情報としてメタ情報（データの作成年月日）と、ホスト名とファイルパス情報、形式（ファイルかデータベースか）とからなるデータの格納先情報（レコード）とが互いに関連付けて格納されている構成としてもよい。
【０１３８】
図１０は、情報処理手段１からみたファイルパスからデータの実格納先を得る場合に必要な、情報格納形式記憶部２２のテーブル構成の例を示す図である。データを特定するための情報としてファイル名と、データ格納先を特定する情報としてデータのｉｄが関連付けて格納されている。
【０１３９】
例えば、情報処理手段１から、
/home/hoge/テストデータ.dat
というファイルにアクセスしたいという要求があった場合、アクセス先特定手段２１は、情報格納形式記憶部２２のテーブル（図１０）を用いて、ｉｄが「１」であるデータにアクセスすればよいことが分かる。
【０１４０】
また、図８のテーブルを用いることにより、
/home/hoge/テストデータ.dat
というファイルはｉｄが「１」の
host1の/home/data/1.obj
であることがわかる。
【０１４１】
図９、図１０に示したテーブルの例のように、情報格納形式記憶部２２に、データを特定する際に用いたい情報とデータの格納先を特定する情報とを組み合わせて（関連付けて）保持することにより、柔軟な形式でデータにアクセスすることが出来るシステムを構築することが出来る。
【０１４２】
例えば、データの作成者のような他のメタ情報でデータにアクセスしたい場合には、データの作成者とｉｄの組み合わせを関連付けるテーブルを情報格納形式記憶部２２に保持すればよい。
【０１４３】
また、検索エンジンの転置インデックスのように、データの中身に含まれる単語情報を、データを特定するための情報として保持し、その単語を含むデータのｉｄを、データの格納先を特定する情報として記録すれば、検索エンジンのように中身のデータの内容でデータに対してアクセスすることが出来る。
【０１４４】
図３は、本実施の形態の情報処理システム上で、情報記憶部６、７に格納されている情報を用いて行う演算処理又は処理結果を、情報記憶部６、７に格納する演算処理を行う手順を示すフローチャートである。次に、図１、図３を参照して、本実施例の全体の動作について詳細に説明する。
【０１４５】
まず、情報処理手段１が、情報処理システム上で動作させるソフトウェアの実行バイナリ又はソースコードを読み出し、ソフトウェア実行処理を開始する（図３のステップＳ１０１）。この実行バイナリ又はソースコードは、情報処理手段１が記憶手段を備えて保持していてもよいし、本実施の形態のいずれかの記憶部から読み出しても良いし、あるいは本実施の形態以外のシステム又はユーザから受け取っても良い。
【０１４６】
次に、情報処理手段１は、ソフトウェア内の演算処理がデータ（情報）に対する処理であるか否かを確認する（ステップＳ１０２）。データに対する処理ではない場合（データ操作を伴わない処理）、この処理（データ操作を伴わない）を実行し（ステップＳ１０４）、ステップＳ１０６へ進む。
【０１４７】
データに対する処理であった場合、情報処理手段１は、このデータ操作を伴う処理を実行し（ステップＳ１０３）、データに対する処理の内容と対象データを識別できる情報を、処理履歴記憶手段３に記録する（ステップＳ１０５）。
【０１４８】
なお、情報処理手段１において、ステップＳ１０３とステップＳ１０５は入れ替えて実行してもよいし、同時に並列に実行しても良い。また、ステップＳ１０５は、処理履歴を完全に記録することを保障する必要は無いため、情報処理手段１において、ステップＳ１０３を終え、ステップＳ１０５の完了を待たずに、次の処理（ステップＳ１０６）に進むよう動作してもよい。
【０１４９】
ステップＳ１０６では、情報処理手段１は、該ソフトウェアで行う実行処理が完了したか否かについて確認する。完了している場合には、終了となる。完了してない場合には、次の処理へ進み（ステップＳ１０７）、情報処理手段１は、次の処理の内容がデータに対する処理か否かについて確認する（ステップＳ１０２）。このように実行ソフトウェア内の処理ステップについて繰り返す。
【０１５０】
図３のフローチャートにおいて、「処理」とは、
・機械語命令等の計算機に対する実行命令、
・システムコール等を含む関数、
・ソースコード内で定義された関数、
・ソースコード内の任意の範囲（ブロック）、
・ソースコード内の文の任意の数、
等を処理単位として扱ってよい。
【０１５１】
また、ステップＳ１０２において、情報処理手段１が、データ（情報）に対する処理であるか否かを識別する際に、実行命令やソースコードを解析する代わりに、
・ソースコード記述者に、ソースコード内に任意の予め決められたアノテーションを付けて貰う）、
・予め決められた関数を、データ処理として自動的に扱う（予め決められた関数を検出時、データ処理として認識する）、
・予め任意に決められた関数名の処理を、データ処理として扱う、
等の方法を取っても良い。このようにすることで、データ処理か否かを識別するのが容易になり、処理が高速化されるという効果がある。
【０１５２】
また、図３は、実行時に、判断および記録を行う手順とされているが、コンパイル時に次のような手順で行っても良い。
【０１５３】
まず、情報処理手段１がソースコードの読み込みを行い、コンパイル時のソースコードの解析（Lexical Analysis Phase等）時点において、データに対する処理部分を抽出する。
【０１５４】
そして、情報処理手段１で実行されるコンパイラは、実行命令（バイナリ形式）の生成処理時に、処理履歴記憶手段３への記録命令の実行コードの生成処理を行う。
【０１５５】
このようにすることにより、情報処理手段１において、コンパイルされリンクされたソフトウェア（実行モジュール）を実行時に、図３に示したようなチェック処理（ステップＳ１０２）を実行することは不要となり、情報処理手段１は、通常の実行基盤としてプログラムの実行バイナリを動作させればよい。このため、処理が高速化するという効果を奏する。
【０１５６】
また、コンパイル処理で実行命令を生成するのではなく、ソースコードの字句解析を行うプリコンパイラとして、ソースコードを入力して、処理履歴記憶手段３への記録処理が追加されたソースコードを出力するような形で実現しても良い。この場合も、図２のフローチャートのようなチェック処理を行う必要がないため、処理が高速化するという効果がある。また、コンパイルには任意の別のコンパイラが利用できる、という効果もある。
【０１５７】
図４は、図３のフローチャートにおけるステップＳ１０３の手順を示す流れ図である。図１及び図４を参照して、図３のフローチャートにおけるステップＳ１０３のデータ操作を伴う処理の動作について説明する。
【０１５８】
まず、情報処理手段１からデータへのアクセス命令を、情報アクセス手段２へ発行する（図４のステップＳ３０１）。ステップＳ３０１では、情報アクセス手段２内の情報アクセス送受信手段２０がアクセス命令を受け取る。
【０１５９】
次に、情報アクセス手段２において、アクセス先特定手段２１が情報格納形式記憶部２２に格納されている情報から、処理対象のデータの格納先（格納手段）を特定できる情報を取得する（ステップＳ３０２）。データの読み出し処理等、既にいずれかの情報格納先（格納手段）にデータが存在する場合には、前述したように行うことができる。
【０１６０】
データの新規書き出し処理（例えば新しいファイルを作成してデータを書き出す）等、書き出し先のデータがいずれかの情報格納先（格納手段）に無い場合には、アクセス先特定手段２１が新しいファイルの情報格納先を決定し、格納先情報を、情報格納形式記憶部２２へ書き出す。
【０１６１】
新しいファイルを作成してデータを書き出す場合、例えば、新しいファイル名（ファイルパス）を情報格納手段４へ保存したことを示す情報を、任意の形式で、情報格納形式記憶部２２へ記録すればよい。ここで、任意の形式とは、例えば、
・ファイル名をキーとし、
・格納先情報（情報格納手段４の計算機のＩＰアドレスなどのファイルの保持場所を特定する情報）を値としたハッシュテーブル等が当てはまる。
【０１６２】
ステップＳ３０２で、処理対象のデータのアクセス先を特定した後に、当該アクセス先の情報格納手段に対して、情報アクセス命令を発行する（ステップＳ３０３）。
【０１６３】
次に、アクセス先の情報格納手段４又は５が、指定データへのアクセス命令を実行する（ステップＳ３０４）。
【０１６４】
そして、アクセス先の情報格納手段４又は５は、処理対象のデータのアクセスの結果を、情報アクセス手段２へ応答する（ステップＳ３０５）。
【０１６５】
最後に、情報アクセス手段２は、情報処理手段１へ受け取った結果を応答する（ステップＳ３０６）。
【０１６６】
なお、ステップＳ３０５において、アクセス先の情報格納手段４又は５は、結果を情報アクセス手段２へ応答せず、直接、情報処理手段１へ応答するようにしてもよい。この場合、ステップＳ３０６が不要であるため、性能（アクセス時間）が向上する。
【０１６７】
また、ステップＳ３０４において、情報の更新を行う伴う際に、情報格納形式記憶部２２に対して更新が必要になった際には、情報格納形式記憶部２２への情報の更新を情報アクセス手段２（または任意の他の手段）が行う。
【０１６８】
図５は、情報格納形式制御手段８による、情報格納形式の変更処理手順を示すフローチャートである。図１及び図５のフローチャートを用いて、情報格納形式制御手段８による、情報格納形式の変更処理について説明する。
【０１６９】
情報格納形式制御手段８は、任意の契機によって情報格納形式の変換処理を開始する。そして、変換処理の最初に、処理履歴記憶手段３から処理履歴情報を取得する（図５のステップＳ４０１）。
【０１７０】
次に、処理履歴記憶手段３の処理履歴情報から、処理対象の情報を選定する（ステップＳ４０２）。なお、変換処理開始時に処理対象となる情報が決まっている場合には、ステップＳ４０２の処理は不要であり、ステップＳ４０１で、処理対象の情報に関する処理履歴情報を取得すればよい。
【０１７１】
次に、処理対象の情報（データ）の情報格納先（データ格納先）を情報格納形式記憶部２２から取得する（ステップＳ４０３）。
【０１７２】
次に、データ格納先の情報格納手段から、処理対象の情報（データ）を取得する（ステップＳ４０４）。
【０１７３】
次に、処理対象の情報（データ）を、変換先の情報格納手段向けに変形して格納する（ステップＳ４０５）。
【０１７４】
最後に、情報格納形式記憶部２２に格納されている、処理対象の情報（データ）のデータ格納先情報を更新する（ステップＳ４０６）。
【０１７５】
次に、情報格納形式制御手段８が、図５のフローチャートによる情報格納形式の変更処理を行う契機について説明する。本実施例において、情報格納形式の変更処理を行う契機を次のような時点に基づいて実行するようにしてもよい。
【０１７６】
（Ｇ１）処理履歴記憶手段３に格納されている処理履歴の情報が任意の条件を超えた時、図５に示したような実行フローチャートで処理を行う。
【０１７７】
（Ｇ２）一定時間経過毎（定期的）に、図５に示したような実行フローチャートで処理を行う。
【０１７８】
まず、（Ｇ１）の「処理履歴記憶手段３に格納されている処理履歴の情報が任意の条件を超えた時」について説明する。
【０１７９】
これは、図３のフローチャートのステップＳ１０５において、処理情報を記録した際に、処理履歴記憶手段３に格納された処理対象の情報の履歴情報を確認し、任意の条件（以降、「情報格納形式変更条件」という）を満たした際に、情報格納形式の変更処理を開始する。
【０１８０】
ここで、情報格納形式変更条件として、「任意の情報に対して、情報格納手段４に格納されている情報が３度以上情報処理手段１によって読み出された場合に、情報格納手段５に変更する」という条件が予め定められているものとする。この条件は、情報格納形式制御手段８が保持するか、処理履歴記憶手段３の情報変化に応じて、情報格納形式制御手段８に通知する役割を持つ手段（例えば処理履歴記憶手段３を管理するソフトウェア）が保持しているものとする。
【０１８１】
情報格納形式変更条件を満たしたことを示す（ここでは、３度目以上の情報処理手段１からの情報の読み出し処理が情報格納形式変更条件）履歴情報が、処理履歴記憶手段３に格納されたときに、該情報に対する情報格納形式制御手段８による情報格納形式の変更処理を行う。その際、この条件で、該情報が情報格納手段４により格納されていることを確認する必要がある。この確認としては、情報格納形式記憶部２２にアクセスして確認してもよいし、処理履歴記憶手段３の処理履歴情報として、該情報が情報格納手段４により格納されていることを示す情報を記録するようにしてもよい。
【０１８２】
この時、情報格納形式制御手段８の動作フローによって、該情報の情報格納手段４から情報格納手段５への変更処理が行われる。この時点で、図５のステップＳ４０１〜４０３までについては完了しているので、情報格納形式制御手段８は、ステップＳ４０４〜４０６の手順を実行すればよい。
【０１８３】
次に、（Ｇ２）の一定時間経過毎に、図５に示した実行フローチャートにより、情報格納形式制御手段８による変更処理を行う場合について説明する。これは、情報格納形式制御手段８が、任意の時間経過毎に、変更処理（図５のフローチャート参照）の実行を行う。
【０１８４】
まず、処理履歴記憶手段３に格納されている任意の情報に対して、情報格納形式変更条件を満たしているか否か確認する。具体的には、例えばデータベース（図７参照）等で処理履歴記憶手段３に処理履歴が格納されており、該データベースへ接続し（図５のステップＳ４０１）、該データベース内に格納されている情報を１つ選び（ステップＳ４０２）、選択された情報の情報格納先を取得する（ステップＳ４０３）。
【０１８５】
情報格納形式変更条件を満たしていれば、情報格納形式制御手段８は、図５のステップＳ４０４〜Ｓ４０６の処理を実行する。情報格納形式変更条件を満たしていなければ、情報格納形式制御手段８は、ステップＳ４０２で他の情報を選び、対象情報の情報格納先を取得する（ステップＳ４０３）。
【０１８６】
そして、情報格納形式制御手段８は、再度、情報格納形式変更条件の判定を行う。このように処理を繰り返して処理履歴情報内の情報について、情報格納形式変更条件を満たしているか否か確認して変更処理を行うよう動作する。
【０１８７】
また、情報格納形式変更条件として、情報記憶部６、７のような情報記憶部の容量といった情報を用いてもよい。
【０１８８】
あるいは、任意の情報に対して、情報処理手段１のアクセス方法に応じて情報格納手段を切り替えて動作させるようにしてもよい。アクセス先特定手段２１において、この切り替え処理を実現する。例えば、読み込みに類する処理は、情報格納手段５が行い、書き込みに類する処理は、情報格納手段４が行う。そして、情報格納形式変更条件として、情報格納手段４に対して任意の回数書き込み処理が行われた際に、情報格納手段４に格納されている情報の内容を、情報格納手段５に格納するよう動作する。
【０１８９】
このように動作させ、情報格納手段５では読み込みに適した形式に情報を保持させ、情報格納手段４では書き込みに適した形式に情報を保持することによって、書き込み性能を高く維持しつつ、読み込みは最新ではないが高速性を維持する情報格納システムを実現することが出来る。
【０１９０】
また、ある情報の全体の情報を、情報格納手段４に格納し、情報の中の任意の情報や、任意の種類のメタ情報だけを情報格納手段５へ格納するよう動作してもよい。
【０１９１】
情報処理手段１により書き込みに類する情報アクセスが行われる際に、両方の情報格納手段４、５へ格納するよう動作しても良いし、情報処理手段１による情報アクセス実行時には、情報格納手段４に対して書き込み動作を行い、情報格納手段５への情報格納は、情報格納形式制御手段８の情報変換処理によって行うよう動作してもよい。このように動作することによって、情報格納手段５への情報格納性能の良し悪しに関係なく、情報格納手段４へ情報格納を行うことで、情報処理手段１の情報アクセス処理を完了させることが出来る。
【０１９２】
次に、情報格納形式制御手段８の処理について説明する。情報格納形式制御手段８は、処理履歴記憶手段３に格納されている履歴情報を用いて情報格納形式を変換する。履歴情報として図７に示した内容が記録されているものとする。
【０１９３】
以下では、変換ルールとして、ｓｏｒｔ処理が３回以上発生すると、ｐｌａｎｅ  ｆｉｌｅからｓｏｒｔｅｄ  ｆｉｌｅに変換するというルールがある場合の変換処理について説明する。
【０１９４】
ここで、ｐｌａｎｅ  ｆｉｌｅの例としては、“数値を予め決められたフォーマットで格納する”とする。
【０１９５】
Ｓｏｒｔｅｄ  ｆｉｌｅの例としては、“１つ目の配列を予めソートした状態のフォーマットで格納する”とする。
【０１９６】
まず、処理履歴記憶手段３からｓｏｒｔ処理が３回以上起きているデータを特定する。
【０１９７】
図７のテーブルを用いて、ｓｏｒｔ処理が３回以上あるデータ（処理ルールに適合しているデータ）を検索すると、ｉｄ：３のデータが適合することがわかる（図５のステップＳ４０１，４０２）。
【０１９８】
ｉｄ：３は、図８のテーブルを参照すると、ｉｄ：３のデータの格納先と現在の形式がｐｌａｎｅ  ｆｉｌｅであることがわかる（図５のステップＳ４０３）。
【０１９９】
変換ルールよりｐｌａｎｅ  ｆｉｌｅであった場合には、ｐｌａｎｅ  ｆｉｌｅからｓｏｒｔ  ｆｉｌｅへ変更する必要があることから、ｈｏｓｔ３から３．ｏｂｊファイルを読み込み、ｓｏｒｔ  ｆｉｌｅへ変換し、ｈｏｓｔ３へ保存する（ｈｏｓｔ３へこのような処理をするよう指示をだしてもよい）（図５のステップＳ４０４，Ｓ４０５）。そして、図８のｉｄ：３の形式のレコードを変更する（図５のステップＳ４０６）。
【０２００】
このような変換を行うことにより、ｓｏｒｔが頻繁に行われるデータに関しては、データを予めｓｏｒｔされた後の形式に変換して保持する。このため、その後のｓｏｒｔ処理に関しては実際にｓｏｒｔを行わずに、データを読むだけで行うことが出来る。その結果、システムの性能が向上し効率性が向上する、という効果が得られる。また、システムの動作に応じて変換するので、データに対するアクセス状態が分からなくても、ｓｏｒｔアクセスが増えたらその時点で変換するような適応的なシステムを提供することが出来る。
【０２０１】
＜実施形態２＞
次に、本発明の第２の実施形態について説明する。図５は、本発明の第２の実施形態の構成を示す図である。前記実施例の構成のうち、情報格納手段５の情報記憶先となる情報記憶部６が情報格納形式記憶部２２と同一となる構成である。本実施形態は、第１の実施の形態と同様に動作する。
【０２０２】
本実施形態において、アクセス先特定手段２１では情報格納形式記憶部２２の更新を行わず、情報格納手段５が更新を行うよう動作しても良い。さらに、情報を、常に情報格納手段４に格納するようにしておき、情報格納形式記憶部２２は、情報格納形式制御手段８による更新で行うようにしても良い。このように動作することによって、情報格納形式記憶部２２に格納される情報の更新が伴う処理に対して、情報格納手段４による更新によって更新処理が完了するため、処理が高速化できる。
【０２０３】
本発明は、情報処理システムや情報格納システムに適用して好適とされる。
【０２０４】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０２０５】
上記した本発明、実施形態は以下に付記としてまとめることができる。
（付記１）
互いに異なる複数の情報格納形式に対応可能とされ、データを前記データに対応する情報格納形式で格納する情報格納手段と、
データに対する情報処理の履歴を記憶する処理履歴記憶手段と、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、前記データの情報格納形式を制御する情報格納形式制御手段と、
を備えた、ことを特徴とする情報処理システム。
【０２０６】
（付記２）
前記情報格納手段に保持される前記データに対して所定の処理を行い、前記処理履歴記憶手段に、前記データに対する処理履歴を格納する情報処理手段を備えた、ことを特徴とする付記１記載の情報処理システム。
【０２０７】
（付記３）
前記情報処理手段がデータに対してアクセスする際に、アクセス対象の前記データに対応する情報格納手段を特定し、
前記情報処理手段からの前記アクセス要求を、前記特定した情報格納手段に振り分ける情報アクセス手段を含む、ことを特徴とする付記２記載の情報処理システム。
【０２０８】
（付記４）
前記情報アクセス手段が、前記データと前記データの情報格納形式を特定する情報とを関連付けて保持する情報格納形式記憶部を含む、ことを特徴とする付記３記載の情報処理システム。
【０２０９】
（付記５）
前記情報格納形式制御手段が、前記データの情報格納形式を変更するための条件を保持し、
前記処理履歴記憶手段の処理履歴の情報に基づいて前記情報格納形式を変更の条件判定を行い、
前記判定結果に基づき、前記データの情報格納形式の変更処理を行う、ことを特徴とする付記１乃至４のいずれか一に記載の情報処理システム。
【０２１０】
（付記６）
前記情報処理手段が、前記データに対する処理を検出し、前記処理履歴記憶手段に、前記データに対する処理履歴情報を格納する、ことを特徴とする付記２記載の情報処理システム。
【０２１１】
（付記７）
前記情報処理手段が、前記データに対する処理を処理実行時に検出する、ことを特徴とする付記６記載の情報処理システム。
【０２１２】
（付記８）
前記情報処理手段が、処理を記述したプログラムソースコードを実行命令群に変換する手段を備え、
前記データに対する処理を実行する命令と共に、前記処理履歴記憶手段へ、前記データに対する処理履歴の情報を格納する命令を生成する、ことを特徴とする付記６記載の情報処理システム。
【０２１３】
（付記９）
前記情報処理手段上で実行されるプログラムに対して、前記処理履歴記憶手段へ処理履歴情報を格納するプログラムコードを付与する手段を備えた、ことを特徴とする付記６記載の情報処理システム。
【０２１４】
（付記１０）
前記情報格納手段が実現する複数の情報格納形式のうち少なくとも１つが前記情報格納形式記憶部を含む、ことを特徴とする付記１又は４記載の情報処理システム。
【０２１５】
（付記１１）
前記情報格納手段は、互いに異なる複数の情報格納形式にそれぞれ関連付けられる複数の情報記憶媒体を含む、ことを特徴とする付記５記載の情報処理システム。
【０２１６】
（付記１２）
前記情報格納形式制御手段が、前記データの情報格納形式を変更するための条件として、情報記憶媒体の容量を用いる、ことを特徴とする付記１１記載の情報処理システム。
【０２１７】
（付記１３）
前記情報アクセス手段が、データに対するアクセスの種類に応じて、前記情報格納手段を選定する、付記３記載の情報処理システム。
【０２１８】
（付記１４）
互いに異なる複数の情報格納形式に対応可能とされる情報格納手段が、データを前記データに対応する情報格納形式で格納し、
データに対する情報処理の履歴を処理履歴記憶手段に記憶し、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、データの情報格納形式を変更する、ことを特徴とする情報処理方法。
【０２１９】
（付記１５）
前記情報格納手段に保持される前記データに対して所定の処理を行い、前記処理履歴記憶手段に前記データに対する処理履歴の情報を記録する、ことを特徴とする付記１４記載の情報処理方法。
【０２２０】
（付記１６）
データに対してアクセスする際に、アクセス対象の前記データに対応する情報格納手段を特定し、
前記アクセス要求を、前記特定した情報格納手段に振り分ける、ことを特徴とする付記１５記載の情報処理方法。
【０２２１】
（付記１７）
前記データと前記データの情報格納形式を特定する情報とを関連付けて情報格納形式記憶部に保持する、ことを特徴とする付記１６記載の情報処理方法。
【０２２２】
（付記１８）
前記データの情報格納形式を変更するための条件を保持し、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づいて情報格納形式の変更の条件判定を行い、
前記判定結果に基づき、前記データの情報格納形式の変更処理を行う、ことを特徴とする、付記１４乃至１７のいずれか一に記載の情報処理方法。
【０２２３】
（付記１９）
前記データに対する情報処理を検出し、前記データに対する情報処理の処理履歴情報を前記処理履歴記憶手段に格納する、ことを特徴とする付記１５記載の情報処理方法。
【０２２４】
（付記２０）
前記データに対する情報処理を、処理実行時に検出する、ことを特徴とする付記１９記載の情報処理方法。
【０２２５】
（付記２１）
前記データに対する情報処理を記述したプログラムソースコードを、実行命令群に変換し、
前記データに対する情報処理を実行する命令と共に、前記処理履歴記憶手段へ処理履歴情報を格納する命令を生成する、ことを特徴とする付記１９記載の情報処理方法。
【０２２６】
（付記２２）
実行するプログラムに対して、前記処理履歴記憶手段へ処理履歴情報を格納するプログラムコードを付与する、ことを特徴とする付記１９記載の情報処理方法。
【０２２７】
（付記２３）
前記情報格納手段が実現する複数の情報格納形式のうち、少なくとも１つが前記情報格納形式記憶部を含む、ことを特徴とする付記１４又は１７記載の情報処理方法。
【０２２８】
（付記２４）
前記複数の情報格納形式を実現する前記情報格納手段が、互いに異なる複数の情報格納形式にそれぞれ関連付けられる複数の情報記憶媒体を含む、ことを特徴とする付記１８記載の情報処理方法。
【０２２９】
（付記２５）
前記情報格納形式を制御するにあたり、前記データの情報格納形式を変更するための条件として、情報記憶媒体の容量を用いる、ことを特徴とする付記２１記載の情報処理方法。
【０２３０】
（付記２６）
前記データに対するアクセスの種類に応じて前記データを格納する情報格納手段を選定する、ことを特徴とする付記２５記載の情報処理方法。
【０２３１】
（付記２７）
互いに異なる複数の情報格納形式に対応可能とされる情報格納手段により、データを前記データに対応する情報格納形式で格納する処理と、
データに対する情報処理の履歴を処理履歴記憶手段に記憶する処理と、
前記処理履歴記憶手段に記憶された処理履歴の情報に基づき、前記データの情報格納形式を変更する処理と、
をコンピュータに実行させるプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３２】
（付記２８）
前記情報格納手段に保持される前記データに対して所定の処理を行い、前記処理履歴記憶手段に、前記データに対する処理履歴の情報を格納する処理を、前記コンピュータに実行させる付記２７記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３３】
（付記２９）
データに対してアクセスする際に、アクセス対象の前記データに対応する情報格納手段を特定し、該アクセス要求を前記特定した情報格納手段に振り分ける処理を、前記コンピュータに実行させる付記２８記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３４】
（付記３０）
前記データと前記データの情報格納形式を特定する情報とを関連付けて情報格納形式記憶部に保持する処理を、前記コンピュータに実行させる付記２９記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３５】
（付記３１）
前記データの情報格納形式を変更するための条件を保持し、
前記処理履歴記憶手段の処理履歴のデータに基づいて情報格納形式の変更の条件判定を行い、
前記判定結果に基づき、前記データの情報格納形式の変更を行う処理を、前記コンピュータに実行させる付記２７乃至３０のいずれか１項に記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３６】
（付記３２）
前記データに対する処理を検出し、前記処理履歴記憶手段に、前記データに対する処理履歴を格納する処理を、前記コンピュータに実行させる付記２８記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３７】
（付記３３）
前記データに対する処理を処理実行時に検出する処理を、前記コンピュータに実行させる付記３２記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３８】
（付記３４）
プログラムソースコードを実行命令群に変換する処理と、
前記データに対する処理を実行する命令と共に、前記処理履歴記憶手段へ処理履歴情報を格納する命令を生成する処理と、前記コンピュータに実行させる付記３２記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２３９】
（付記３５）
実行するプログラムに対して、前記処理履歴記憶手段へ処理履歴情報を格納するプログラムコードを付与する処理を、前記コンピュータに実行させる付記３２記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２４０】
（付記３６）
前記情報格納手段が実現する複数の情報格納形式のうち少なくとも１つが、前記情報格納形式記憶部を含む、付記２９記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２４１】
（付記３７）
前記複数の情報格納形式を実現する情報格納手段が、互いに異なる複数の情報格納形式にそれぞれ関連付けられる複数の情報記憶媒体を備える、付記３１記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２４２】
（付記３８）
前記データの情報格納形式を変更するための条件として、情報記憶媒体の容量を用いる、付記３７記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【０２４３】
（付記３９）
前記データに対するアクセスの種類に応じて前記情報格納手段を選定する、付記２９記載のプログラム（又は該プログラムを記録したコンピュータ読み出し可能な記録媒体）。
【符号の説明】
【０２４４】
１  情報処理手段
２  情報アクセス手段
３  処理履歴記憶手段
４  情報格納手段
５  情報格納手段
６  情報記憶部
７  情報記憶部
８  情報格納形式制御手段
２０  情報アクセス送受信手段
２１  アクセス先特定手段
２２  情報格納形式記憶部
３１  記録媒体
３２  情報受付手段
３３  情報記録手段
【図１】
0005488587.tif 000002
【図２】
0005488587.tif 000003
【図３】
0005488587.tif 000004
【図４】
0005488587.tif 000005
【図５】
0005488587.tif 000006
【図６】
0005488587.tif 000007
【図７】
0005488587.tif 000008
【図８】
0005488587.tif 000009
【図９】
0005488587.tif 000010
【図１０】
0005488587.tif 000011