(57)【要約】【課題】コンテンツオブジェクト方式によるアクセスとファイル形式によるアクセスを併用したデータ保存または管理ができなかった。【解決手段】ホスト計算機にて実行するアプリケーションプログラムの処理に従ってコンテンツオブジェクトを記憶するための第一の要求を、ホスト計算機または中間サーバーまたはストレージ装置にて実行するオブジェクトアーカイブ制御機能へ送信し、当該オブジェクトアーカイブ制御機能は、前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、前記オブジェクト識別子に対応するディレクトリ名と、コンテンツオブジェクトに含まれる複数のフィールドに対応した複数のファイル名と、を生成し、ストレージ装置は前記第二の要求に従って前記ディレクトリ名を有するディレクトリと、前記複数のファイル名を有する複数のファイルを格納する。【選択図】図１
2010039966.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムにおけるアプリケーションのデータ格納方法であって、
第一の計算機にて実行するアプリケーションプログラムの処理に従って生成したコンテンツデータを含む第一のフィールド及び前記コンテンツデータの属性情報を含む第二のフィールドを含むコンテンツオブジェクトを記憶するための第一の要求を送信する第一のステップと、
前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、所定のルールに従って前記オブジェクト識別子に対応するディレクトリ名と、前記所定のルールに従って前記第一のフィールドの識別情報に対応する第一のファイル名と、前記所定のルールに従って、前記第二のフィールドの識別情報に対応する第二のファイル名と、を生成する第二のステップと、
前記ディレクトリ名を持つディレクトリと、前記ディレクトリに第一のフィールドのコンテンツデータを含む第一のファイル名を持つ第一のファイルと、前記ディレクトリに第二のフィールドの属性情報を含む第二のファイル名を持つ第二のファイルと、前記ディレクトリに前記第一のフィールドの識別情報と前記第一のファイル名の対応と前記第二のフィールドの識別情報と前記第二のファイル名の対応とを含む前記コンテンツオブジェクトに関するフィールドリストファイルと、を作成する第二の要求を送信する第三のステップと、
前記アーカイブストレージシステムに送信するプログラムと、前記アプリケーションプログラムによる前記コンテンツデータの参照または更新で指定するために、前記オブジェクト識別子を前記第一の計算機に送信する第四のステップと、
前記第二の要求に従って前記ディレクトリに前記第一のファイルと前記第二のファイルと前記フィールドリストファイルを記憶する第五のステップと、
を有することを特徴とするデータ格納方法。
【請求項２】
請求項１記載のデータ格納方法であって、
前記所定のルールは、コンテンツオブジェクトが含むフィールドのフィールド名をファイル名とするルールと、コンテンツオブジェクトのオブジェクト識別子をディレクトリ名とするルールと、を有することを特徴とするデータ格納方法。
【請求項３】
請求項１記載のデータ格納方法であって、
第一の計算機にて実行するアプリケーションプログラムの処理に従って前記コンテンツオブジェクトを編集するための前記オブジェクト識別子を指定した第三の要求を送信する第六のステップと、
前記第一の要求に従って受信した前記オブジェクト識別子と前記ルールに従って、前記ディレクトリ名と、前記フィールドリストファイルを特定する第七のステップと、
前記フィールドリストファイルに従って前記第一のファイル名と前記第二のファイル名とを特定し、前記第一のファイルと前記第二のファイルに格納されたデータを読み出す第四の要求を送信する第八のステップと、
前記第四の要求に従って、前記第一のファイルと前期第二のファイルとに格納されたデータを送信する第九のステップと、
を有することを特徴とするデータ格納方法。
【請求項４】
請求項１記載のデータ格納方法であって、
前記第一のファイルと、前記第二のファイルと、前記フィールドリストファイルはストレージシステムに記憶することを特徴とするデータ格納方法。
【請求項５】
請求項４記載のデータ格納方法であって、
第二の計算機にて実行するファイルアプリケーションの処理に従って、前記第一のファイル名または前記第二のファイル名を指定した第三の要求をストレージシステムに送信する第十のステップと、
前記ストレージシステムは、第三の要求の受信に従って、前記第一のファイルと前記第二のファイルの一つであって、指定されたファイルを、前記第二の計算機にて送信する第十一のステップと、
を有することを特徴とするデータ格納方法。
【請求項６】
請求項５記載のデータ格納方法であって、
ストレージシステムは前記第二の計算機によって生成された第三のファイルをストレージシステムに格納する第十二のステップを有することを特徴とするデータ格納方法。
【請求項７】
請求項６記載のデータ格納方法であって、
前記ストレージシステムに格納する、前記第一のファイルと前記第二のファイルと前記フィールドリストファイルとは、前記第三のファイルが格納されたファイルシステムに格納する、ことを特徴とするデータ格納方法。
【請求項８】
情報処理システムにおけるアプリケーションのデータ格納方法であって、
第一の計算機にて実行するアプリケーションプログラムの処理に従ってコンテンツオブジェクトを記憶するための第一の要求を送信し、
前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、前記オブジェクト識別子に対応するディレクトリ名と、コンテンツオブジェクトに含まれる複数のフィールドに対応した複数のファイル名と、を生成し、前記ディレクトリ名と前記複数のファイル名とを指定した第二の要求を送信し、
前記第二の要求に従って前記ディレクトリ名を有するディレクトリと、前記複数のファイル名を有する複数のファイルを格納する、
ことを特徴とするデータ格納方法。
【請求項９】
請求項８記載のデータ格納方法であって、
前記ディレクトリと前記複数のファイルとの格納先はストレージシステムであることを特徴とするデータ格納方法。
【請求項１０】
請求項９記載のデータ格納方法であって、
第二の計算機にて実行するファイルアプリケーションの処理に従って、前記複数のファイル名の一つを指定した第三の要求をストレージシステムに送信し、
前記ストレージシステムは、第三の要求の受信に従って、前記複数のファイルの一つであって、前記複数のファイル名の一つに対応するファイルを、前記第二の計算機にて送信する、
ことを特徴とするデータ格納方法。
【請求項１１】
第一の計算機と、ストレージシステムと、前記第一の計算機と前記ストレージシステムとに接続するアーカイブ管理計算機とで構成する情報処理システムであって、
前記第一の計算機は、アプリケーションプログラムと、前記アプリケーションプログラムの処理に従って生成したコンテンツデータを含む第一のフィールド及び前記コンテンツデータの属性情報を含む第二のフィールドを含むコンテンツオブジェクトを記憶するための第一の要求を前記アーカイブ管理計算機に送信するプログラムと、を有し
前記アーカイブ管理計算機は、前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、所定のルールに従って前記オブジェクト識別子に対応するディレクトリ名と、前記所定のルールに従って前記第一のフィールドの識別情報に対応する第一のファイル名と、前記所定のルールに従って、前記第二のフィールドの識別情報に対応する第二のファイル名と、を生成するプログラムと、前記ディレクトリ名を持つディレクトリと、前記ディレクトリに第一のフィールドのコンテンツデータを含む第一のファイル名を持つ第一のファイルと、前記ディレクトリに第二のフィールドの属性情報を含む第二のファイル名を持つ第二のファイルと、前記ディレクトリに前記第一のフィールドの識別情報と前記第一のファイル名の対応と前記第二のフィールドの識別情報と前記第二のファイル名の対応とを含む前記コンテンツオブジェクトに関するフィールドリストファイルと、を作成する第二の要求を前記アーカイブストレージシステムに送信するプログラムと、前記アプリケーションプログラムによる前記コンテンツデータの参照または更新で指定するために、前記オブジェクト識別子を前記第一の計算機に送信するプログラムと、を有し、
前記アーカイブストレージシステムは、前記第二の要求に従って前記ディレクトリに前記第一のファイルと前記第二のファイルと前記フィールドリストファイルを記憶する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書に開示される技術は、クライアント計算機によって生成されるデータを格納する方法、装置、システム及びプログラムに関する。
【背景技術】
【０００２】
多様なデータアーカイブ法が多数知られている中で、いずれの方法にも何がしかの欠点がある。最近まで、テープによるアーカイブが最も一般的なデータアーカイブ法であった。しかし、テープによるアーカイブはしばしばアクセス（読み込み、書き込み、状態取得等を含む）が難しく、アーカイブデータの迅速で容易な取り出しができない。この理由で、アーカイブ媒体として、より迅速かつ容易にアーカイブデータにアクセスすることが可能なディスクアレイを選択することが、より一般的になっている。なお、アーカイブとは長期に渡った保存を意味するが、本願明細書におけるアーカイブは必ずしも長期間の保存を目的としたものに限定解釈する必要はなく、保存することを指す。
【０００３】
フィックス・コンテンツ・アウェアストレージ（ＦＣＡＳ：Ｆｉｘｅｄ  Ｃｏｎｔｅｎｔ  Ａｗａｒｅ  Ｓｔｏｒａｇｅ）は、多様なネーミングスキーマに基づく不変データ（フィックス・コンテンツ）及び関連するメタデータを記憶するストレージとして、ＳＮＩＡ（ストレージネットワーク工業会）によって一般的に定義されており、コンテンツ・アドレッサブルストレージ（ＣＡＳ）及びコンテンツに無関係なグローバルな識別子を含む。その例としてＳＮＩＡで策定されたＸＡＭ（ｅＸｔｅｎｓｉｂｌｅ  Ａｃｃｅｓｓ  Ｍｅｔｈｏｄ）がある。ストレージ業界では、ＣＡＳは時としてコンテンツ・アドレスストレージ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓｅｄ  ｓｔｏｒａｇｅ）、コンテンツ・アウェアストレージ、或いはコンテンツ・アーカイブストレージとも呼ばれる。
【０００４】
ＣＡＳに於いて、ＣＡＳに接続したクライアント計算機の生成・更新の対象となるコンテンツデータは、標準のファイルとして処理されるのではなく、コンテンツデータとメタデータ（コンテンツデータに係る一つ以上の属性を指す）とから成るオブジェクト（本明細書では、オブジェクトがコンテンツデータを格納していることを明確に示す場合にコンテンツオブジェクトと呼ぶことがある）として扱われる。コンテンツデータにはメタデータが伴い、「オブジェクトＩＤ」として知られる固有のコンテンツオブジェクト識別子が割り当てられる。アーカイブのために、コンテンツオブジェクトはハードディスク上のいずれかのロケーションに保存される。そして、クライアント計算機はオブジェクトＩＤを指定することで、ＣＡＳにアーカイブされたオブジェクトのコンテンツデータまたはメタデータを参照または編集する。
【０００５】
一方、ネットワーク・アタッチド・ストレージ（ＮＡＳ：Ｎｅｔｗｏｒｋ  Ａｔｔａｔｃｈｅｄ  Ｓｔｏｒａｇｅ）と呼ばれるストレージをアーカイブに利用する方法もある。ＮＡＳにおいては、クライアント計算機が命名可能なディレクトリ名とファイル名から構成されるパス名によってファイルを特定することで、生成や更新や削除に代表されるファイルの管理を行う。さらに、ＮＡＳでは一つ以上のファイルが含まれるディレクトリ名を指定することで、指定されたディレクトリに含まれる一つ以上のファイルに対する操作をまとめて行うことができる。そのため、ＮＡＳをファイルストレージと呼ぶことがある。アーカイブに利用するファイルストレージの実装の一例として、特許文献１に示すストレージシステム及びデータ管理方法が開示されている。
【０００６】
【特許文献１】米国特許第７、１５５、４６６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前に述べたＣＡＳでは、オブジェクトは一つ以上のコンテンツデータの集合体として扱われ、それらはオブジェクトＩＤを指定して、ＣＡＳにアクセスする計算機上のソフトウェア等からアーカイブ要求や参照要求が指示される。
【０００８】
一方ファイルストレージでは、パス名によってファイルを指定し、アーカイブ要求や参照要求が指示される。またディレクトリ名を指定した複数ファイルの一括した管理要求が指示される。
【０００９】
そのため、両方の指定方法を併用したデータ格納及び管理ができなかった。
【課題を解決するための手段】
【００１０】
本発明は、一つ以上のホスト計算機と、ストレージ装置から構成される情報処理システムの、ファイルを考慮したコンテンツオブジェクトの格納に関する、装置、システム、方法、プログラム、記憶メディアを提供する。
本発明の一実施例によると、第一の計算機にて実行するアプリケーションプログラムの処理に従ってコンテンツオブジェクトを記憶するための第一の要求を送信し、前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、前記オブジェクト識別子に対応するディレクトリ名と、コンテンツオブジェクトに含まれる複数のフィールドに対応した複数のファイル名と、を生成し、前記ディレクトリ名と前記複数のファイル名とを指定した第二の要求を送信し、前記第二の要求に従って前記ディレクトリ名を有するディレクトリと、前記複数のファイル名を有する複数のファイルを格納する。
【００１１】
なお、前記ディレクトリと前記複数のファイルとの格納先はストレージシステムであってもよい。
【００１２】
なお、第二の計算機にて実行するファイルアプリケーションの処理に従って、前記複数のファイル名の一つを指定した第三の要求をストレージシステムに送信し、前記ストレージシステムは、第三の要求の受信に従って、前記複数のファイルの一つであって、前記複数のファイル名の一つに対応するファイルを、前記第二の計算機にて送信してもよい。
また、本発明の別な一実施例によると、第一の計算機にて実行するアプリケーションプログラムの処理に従って生成したコンテンツデータを含む第一のフィールド及び前記コンテンツデータの属性情報を含む第二のフィールドを含むコンテンツオブジェクトを記憶するための第一の要求を送信する第一のステップと、前記第一の要求に従って受信したコンテンツオブジェクトに対応するオブジェクト識別子と、所定のルールに従って前記オブジェクト識別子に対応するディレクトリ名と、前記所定のルールに従って前記第一のフィールドの識別情報に対応する第一のファイル名と、前記所定のルールに従って、前記第二のフィールドの識別情報に対応する第二のファイル名と、を生成する第二のステップと、前記ディレクトリ名を持つディレクトリと、前記ディレクトリに第一のフィールドのコンテンツデータを含む第一のファイル名を持つ第一のファイルと、前記ディレクトリに第二のフィールドの属性情報を含む第二のファイル名を持つ第二のファイルと、前記ディレクトリに前記第一のフィールドの識別情報と前記第一のファイル名の対応と前記第二のフィールドの識別情報と前記第二のファイル名の対応とを含む前記コンテンツオブジェクトに関するフィールドリストファイルと、を作成する第二の要求を送信する第三のステップと、前記アーカイブストレージシステムに送信するプログラムと、前記アプリケーションプログラムによる前記コンテンツデータの参照または更新で指定するために、前記オブジェクト識別子を前記第一の計算機に送信する第四のステップと、前記第二の要求に従って前記ディレクトリに前記第一のファイルと前記第二のファイルと前記フィールドリストファイルを記憶する第五のステップを実行する。
なお、第一の計算機にて実行するアプリケーションプログラムの処理に従って前記コンテンツオブジェクトを編集するための前記オブジェクト識別子を指定した第三の要求を送信する第六のステップと、前記第一の要求に従って受信した前記オブジェクト識別子と前記ルールに従って、前記ディレクトリ名と、前記フィールドリストファイルを特定する第七のステップと、前記フィールドリストファイルに従って前記第一のファイル名と前記第二のファイル名とを特定し、前記第一のファイルと前記第二のファイルに格納されたデータを読み出す第四の要求を送信する第八のステップと、前記第四の要求に従って、前記第一のファイルと前期第二のファイルとに格納されたデータを送信する第九のステップとを実行してもよい。
【００１３】
また、前記フィールドリストファイルまたは前記第一のファイルまたは前記第二のファイルの少なくともいずれか一つが消失したことを検知し、前記第三の要求に対応するメッセージを返しても良い。
【００１４】
なお、前記第一のファイルと、前記第二のファイルと、前記フィールドリストファイルはストレージシステムに記憶しても良い。
【００１５】
なお、第二の計算機にて実行するファイルアプリケーションの処理に従って、前記第一のファイル名または前記第二のファイル名を指定した第三の要求をストレージシステムに送信し、前記ストレージシステムは、第三の要求の受信に従って、前記第一のファイルと前記第二のファイルの一つであって、指定されたファイルを、前記第二の計算機にて送信してもよい。この場合、ファイルアプリケーションはオブジェクト方式で保存されたコンテンツデータを参照したり、バックアップを採取したり、変更することができる。
【００１６】
なお、ストレージシステムは第二の計算機によって生成された第三のファイルをストレージシステムに格納してもよい。
【００１７】
また、コンテンツオブジェクトに対応した前記第一のファイルと前記第二のファイルと前記フィールドリストファイルとを、前記第三のファイルが格納されたファイルシステムに格納してもよい。この場合、各ファイルは少なくとも同じルートディレクトリの中に直接的または階層的に格納されるため、ファイルアプリケーションからディレクトリを指定したデータ管理操作を行うことで、オブジェクト方式で格納されたコンテンツデータとメタデータと、ファイル方式で格納されたファイルを一括して管理することが可能となる。
【発明の効果】
【００１８】
本発明によれば、オブジェクトＩＤを指定するアクセス要求とパス名またはディレクトリ名を指定したアクセス要求を併用したデータ管理が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明の実施の形態を説明する。
【実施例１】
【００２０】
図１は、本発明の計算機システムの構成を示すブロック図である。
本実施例の計算機システムは、ホスト計算機１１００、ホスト計算機１１００からアクセスするアーカイブストレージシステム１０００、及びデータネットワーク１３００を備える。
【００２１】
データネットワーク１３００は、ホスト計算機１１００、アーカイブストレージシステム１０００を相互に接続するデータ通信用のネットワークである。本実施例のデータネットワーク１３００は、ＩＰネットワークである。なお、データネットワーク１３００は、データ通信用のネットワークであれば、ＩＰネットワーク以外のネットワーク（例えばＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））であってもよい。
【００２２】
なお、説明の都合上、本実施例では、ホスト計算機１１００、アーカイブストレージシステム１０００を各々１台のみ記述したが、これらは複数あってもよい。また、ホスト計算機１１００はオブジェクトＩＤを指定した要求をアーカイブストレージシステムに送信するが、パス名を指定した要求をアーカイブストレージシステムに送信してもよい。また、図示はしていないが、パス名を指定した要求をアーカイブストレージシステムに送信する別なホスト計算機（以後、省略してパス名指定ホスト計算機と呼ぶことがある）がデータネットワーク１３００に接続してもよい。なお、以後の説明では、「ホスト計算機１１００」と記載した場合はオブジェクトＩＤを指定するホスト計算機を指し、「ホスト計算機」と記載した場合はパス名指定ホスト計算機を含めるものとする。また、パス名指定ホスト計算機にはファイル方式によるアクセスでアーカイブストレージシステム１０００に格納されたファイルに読み書きに代表されるアクセスを行うファイルアプリケーションが存在してもよい。
【００２３】
なお、実施例１に限らず本明細書では、情報のやりとりに関する用語（例えば送信、受信）は通常の意味である物理的に別な存在（例えば計算機同士や計算機とストレージ装置や部品同士等）間の情報などのやり取りを意味することに加えて、論理的に別な存在（例えば、計算機やストレージ装置にて実行中の別なソフトウェア同士や、プログラム本体とライブラリのように階層構造を持つ場合や、同じソフトウェアでもプロセスやスレッド等の論理的なプログラム実行主体が別同士の場合など）間の情報などのやり取りも含むものとして説明を行う。
【００２４】
ホスト計算機１１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１、メモリ１１０２、入出力装置１１０３及びネットワークＩ／Ｆ１１０４を備え、各々が相互に接続されている。
【００２５】
ネットワークＩ／Ｆ１１０４は、ホスト計算機１１００をデータネットワーク１３００に接続するネットワークインタフェースである。ネットワークＩ／Ｆ１１０４は、データネットワーク１３００を介してアーカイブストレージシステム１０００との間でデータを送受信する。
【００２６】
ＣＰＵ１１００は、メモリ１１０２に格納されたプログラムを実行するプロセッサである。以下の説明においてメモリ１１０２に格納されたプログラムが実行する処理は、実際にはＣＰＵ１１００によって実行される。なお、本発明を実現するにあたって、ＣＰＵ１１００に付随して専用ハードウェアを設置し、プログラムの一部またはすべての処理をこの専用ハードウェアにて実現してもよい。
【００２７】
メモリ１１０２には、アプリケーション１１０５、オブジェクトアーカイブライブラリ７１００が格納される。
【００２８】
アプリケーション１１０５は、アーカイブストレージシステム１０００に対し、コンテンツデータを含むオブジェクトを読み書きする。例えば、アプリケーション１１０５は、文書管理ソフトウェア等である。
【００２９】
なお、説明の都合上、図１では、アプリケーション１１０５を一つ示すが、複数のアプリケーション１１０５があってもよい。
【００３０】
オブジェクトアーカイブライブラリ７１００は、アプリケーション１１０５がオブジェクトアーカイブ制御プログラム７２００にアーカイブに関する要求を送るためのインタフェースを提供するプログラムのライブラリプログラムである。このアーカイブに関する要求については、その手順とともに説明するため後述する。
【００３１】
入出力装置１１０３は、例えば、キーボード、マウス及びディスプレイ等であってもよい。
【００３２】
なお、ホスト計算機１１００は、物理的に一つの計算機であってもよいし、物理的に一つの計算機を論理的に分割することによって生成された仮想計算機であってもよい。後者の場合、ＣＰＵ１１０１、メモリ１１０２、入出力装置１１０３及びネットワークＩ／Ｆ１１０４等のリソースは、物理的なリソースを論理的に分割することによって生成された仮想的なリソースである。
【００３３】
アーカイブストレージシステム１０００は、内部ノード装置２０００及びストレージ装置３０００を備えるアーカイブストレージである。
内部ノード装置２０００（以後、アーカイブコントローラーと呼ぶことがある）は、ＣＰＵ２１００、メモリ２２００、ホストインタフェース（Ｉ／Ｆ）２３００及びストレージＩ／Ｆ２４００を備え、各々が相互に接続されている。
【００３４】
ストレージＩ／Ｆ２４００は、内部ノード装置２０００をストレージ装置３０００に接続するネットワークインタフェースである。ストレージＩ／Ｆ２４００は、ストレージ装置３０００との間でデータ及び制御命令を送受信する。
【００３５】
ホストＩ／Ｆ２３００は、内部ノード装置２０００をデータネットワーク１３００に接続するネットワークインタフェースである。ホストＩ／Ｆ２３００は、データネットワーク１３００を介してホスト計算機１１００との間でデータ及び制御命令を送受信する。
【００３６】
ＣＰＵ２１００は、メモリ２２００に格納されたプログラムを実行するプロセッサである。以下の説明においてメモリ２２００に格納されたプログラムが実行する処理は、実際にはＣＰＵ２１００によって実行される。なお、本発明を実現するにあたって、ＣＰＵ２１００に付随して専用ハードウェアを設置し、プログラムの一部またはすべての処理をこの専用ハードウェアにて実現してもよい。
【００３７】
メモリ２２００には、オブジェクトアーカイブ制御プログラム７２００、フィールド管理情報７３００、フィールド更新履歴情報７４００、アーカイブ制御プログラム２２０１、メタデータ４０００及び対応管理テーブル５０００が格納される。
【００３８】
オブジェクトアーカイブ制御プログラム７２００は、オブジェクトアーカイブライブラリ７１００を使ったアプリケーション１１０２からのアーカイブに関する要求を受信し、オブジェクトの管理、ファイルへのマッピング、オブジェクトＩＤの発行など必要な処理を行う。処理の詳細は後述する。
【００３９】
フィールド管理情報７３００は、オブジェクト作成時又はオブジェクト編集時にフィールドを管理する領域である。図２で詳細を後述する。
【００４０】
なお、本発明にてホスト計算機１１００が取り扱うオブジェクトにはオブジェクトＩＤと呼ばれる識別子が割り当てられ、複数のフィールドと呼ばれる情報を含む。各フィールドは、オブジェクトのコンテンツデータまたはメタデータとして管理するコンテンツデータの属性を保存し、管理するための情報である。そして、各フィールドには、フィールドの名前と、コンテンツデータまたはメタデータとして管理するコンテンツデータの属性が含まれるほかに、当該フィールドの読み取り専用の可否を示す情報と、Ｂｉｎｄｉｎｇと呼ばれる動作を実行するか否かを示す情報を含む。
【００４１】
Ｂｉｎｄｉｎｇは、フィールドごとに設定可能な動作であり、当該動作が許可されたフィールドに対する更新が発生した場合は、オブジェクト中の更新された当該フィールド以外のフィールドと、更新された当該フィールドと、が含まれるオブジェクトを新規作成することで、更新後のフィールド内容と更新前のフィールド内容の両方を格納する動作である。
【００４２】
各オブジェクトはオブジェクトＩＤを格納するフィールドに加えて、メタデータとして以下のフィールドを含むことがある。なお、それぞれのフィールドの意味はフィールド管理情報７３００にて説明を行う。
（１）「保存期間」フィールド。当該オブジェクトの保存期間または保存期間終了日時を格納するフィールドである。
（２）「所有者」フィールド。当該オブジェクトの所有者の情報を格納するフィールドである。
（３）「ホールド」フィールド。当該オブジェクトが保存期間によらず削除を防止したい場合に指示する情報を格納するフィールドである。
【００４３】
フィールド更新履歴情報７４００は、フィールドの更新履歴を管理する領域である。構造及び説明は図３で後述する。
【００４４】
アーカイブ制御プログラム２２０１はホスト計算機やアーカイブ制御プログラム２２０１からファイルまたはディレクトリに関する要求を受信し、処理するプログラムである。より具体的なアーカイブ制御プログラム２２０１の処理内容の一例は以下の通りである。ただし、それぞれの処理は一つ以上の命令及び通信によってホスト計算機やアーカイブ制御プログラム２２０１から必要な情報の指定を受けても良い。
【００４５】
（１）ファイルリード。ホスト計算機やアーカイブ制御プログラム２２０１から指定されたパス名とパス名で指定されたファイル中の位置に格納されたファイルのデータを読み出し、指定を行ったホスト計算機やアーカイブ制御プログラム２２０１へ送信する。なお、パス名やファイル中の位置の指定はホスト計算機やアーカイブ制御プログラムから直接指定される以外に、ネットワークファイルシステムのプロトコルに従った、複数命令による指定やその他間接的にパス名とファイル中の位置が分かる方法を採用した方式も含まれる。
【００４６】
（２）ファイルライト。ホスト計算機やアーカイブ制御プログラム２２０１から受信した新規書き込みデータまたは更新データを、指定されたパス名とパス名で指定されたファイル中の位置に書き込む。なお、パス名やファイル中の位置の指定はホスト計算機やアーカイブ制御プログラムから直接指定される以外に、ネットワークファイルシステムのプロトコルに従った、複数命令による指定やその他間接的にパス名とファイル中の位置が分かる方法を採用した方式も含まれる。
【００４７】
（３）ファイル名とファイル属性の取得。パス名を指定された場合は、ホスト計算機やアーカイブ制御プログラムから受信したパス名によって指定されたファイルの属性（ファイル所有者、読み込み許可、書き込み許可、実行許可、最終アクセス時刻、最終更新時刻、ファイル作成時刻等が含まれるが、これ以外にも改編禁止解除時刻が含まれていても良い）をホスト計算機やアーカイブ制御プログラムに送信する。ディレクトリ名を指定された場合は、指定されたディレクトリに格納されたファイルのファイル名と属性を返す。なお、指定ディレクトリにさらにディレクトリが含まれる場合は再帰的な処理を行っても良い。
【００４８】
（４）ファイル名またはディレクトリ名の変更。
【００４９】
（５）ファイルまたはディレクトリに対する改編禁止解除日時または保存期間の設定。
【００５０】
（６）ファイルに対するメタデータの生成、更新、または削除。
【００５１】
（７）ファイルに対して生成されたメタデータを対象としたキーワード検索。ファイルに対するメタデータに含まれる文字列、数字、識別子等を検索対象として検索を行い、該当するファイルのパス名を返す。
【００５２】
（８）ファイルの生成。
【００５３】
（９）ファイルの削除。
【００５４】
ストレージ装置３０００は、複数のボリューム３２０１−１、ボリューム３２０１−２、及びボリューム３２０１−３を備える。これら複数のボリューム３２０１−１、ボリューム３２０１−２、及びボリューム３２０１−３を総称してボリューム３２０１と記載する。
【００５５】
ボリューム３２０１は、物理的な記憶領域であるハードディスクドライブ（ＨＤＤ）又は論理的な記憶領域である論理デバイス（Ｌｏｇｉｃａｌ  Ｄｅｖｉｃｅ）のいずれであってもよい。本発明では、ボリュームの種類を問わない。なお、説明の都合上、図１には三つのボリューム３２０１を示したが、ボリューム３２０１の数はいくつであってもよい。
【００５６】
なお、プログラムの一部またはすべての実行または実現は、ＣＰＵ２１００以外の内部ノード装置２０００も含めて実現してもよい。さらに、これまで説明した内部ノード装置のハードウェア構成は一例であり、ホスト計算機からの要求およびデータを送受信でき、本発明のオブジェクトアーカイブ制御プログラム７２００及びアーカイブ制御プログラム２２０１を処理可能なプロセッサ、そしてストレージ装置に対しする要求及びデータを送受信可能なハードウェア構成であれば、当該ハードウェアは内部ノード装置の一形態と考えられる。より具体的には、内部ノード装置２０００のハードウェア構成が複数の装置やボードから構成され、プログラムの処理を複数の装置やボードに分けて実行してもよい。また、内部ノード装置２０００には本発明以外の処理を行っても良い。
【００５７】
図２は、フィールド管理情報７３００を示す一例である。
【００５８】
フィールド管理情報７３００は、オブジェクト毎に作成される表で、一つ以上のフィールド情報１１１０Ｄを含む。そのため、フィールド管理情報７３００は、複数オブジェクトを操作する場合等で複数個存在することがあり、各々はオブジェクトＩＤで識別される。なお、フィールド管理情報７３００は、オブジェクトアーカイブ制御プログラム７２００によって読み書きされることから、当該プログラムから読み書き可能な場所にあれば、内部ノード装置２０００以外の部位に存在してもよい。
【００５９】
フィールド管理情報７３００のフィールド情報は、対応するオブジェクトのフィールドに対応し、フィールドを識別する「フィールド名」欄１１１０Ａと、フィールドの属性を管理する「属性」欄１１１０Ｂと、フィールドの内容を格納する「内容」エリア１１１０Ｃから構成される。
【００６０】
また、「属性」欄１１１０Ｂは、フィールドの型を識別する「型」欄１１１０Ｂ１、フィールドが“Ｂｉｎｄｉｎｇ”か否かを管理する「Ｂｉｎｄｉｎｇ」欄１１１０Ｂ２、フィールドが“読み取り専用”か否かを関する「読み取り専用」欄１１１０Ｂ３、フィールドのデータ長を管理する「長さ」欄１１１０Ｂ４、ストレージ装置のボリュームにオブジェクトを格納する場合に、フィールドの「内容」欄１１１０Ｃの情報を格納する展開先ファイルのファイル名（またはパス名）を記述した「展開ファイル名」欄１１１０Ｂ５から構成される。なお、フィールド管理情報７３００は、「型」欄１１００Ｂ１または「展開ファイル名」欄１１１０Ｂ５を省略した表であったり、その他の属性を省略したデータ構造であってもよい。さらに、フィールド管理情報７３００は、オブジェクト単位でフィールドのフィールド名、Ｂｉｎｄｉｎｇ、読み取り専用、内容、そして展開ファイル名を格納可能な情報であれば良く、表以外の形式であってもよい。また、以後は複数のフィールド管理情報７３００をまとめた情報をオブジェクト管理情報と呼ぶことがある。
なお、フィールド管理情報７３００の各フィールド情報は、フィールド情報のフィールド名と同じオブジェクトのフィールドの情報を格納しているが、図２の例を用いてより具体的に述べると以下の通りである。
「オブジェクトＩＤ」のフィールド名を持つフィールド情報は、オブジェクトのオブジェクトＩＤを格納する。
「画像１」のフィールド名を持つフィールド情報は、アプリケーション１１０５が指定したフィールド名「画像１」と対応する画像のコンテンツデータを格納する。なお、当該フィールド情報の「画像１」というフィールド名の代わりにアプリケーション１１０５の指定された他の名前が用いられても良い。また、一つのオブジェクト中に複数のコンテンツデータに対応したフィールドが含まれても良いため、あるオブジェクトＩＤに対応したコンテンツデータを格納するフィールドが複数存在してもよい。
「保存期間」のフィールド名を持つフィールド情報は、当該オブジェクトの保存期間または保存期間終了日時を格納する。
「所有者」のフィールド名を持つフィールド情報は、当該オブジェクトの所有者を示す情報を格納する。
「ホールド」のフィールド名を持つフィールド情報は、当該オブジェクトが保存期間によらず削除を防止したい場合に指示する情報を格納する。なお、以後は、当該フィールド情報の内容が「ＯＮ」の場合に保存期間によらず削除防止され、「ＯＦＦ」の場合に保存期間で削除の可否が判定される状態であるものとして説明する。
【００６１】
図３は、フィールド更新履歴情報７４００を示す一例である。フィールド更新履歴情報７４００はオブジェクト毎に作成される表で、一つ以上の履歴情報を含む。そのため、フィールド管理情報７３００は、複数オブジェクトを操作する場合等で複数個存在することがあり、各々はオブジェクトＩＤで識別される。なお、フィールド更新履歴情報７４００は、オブジェクトアーカイブ制御プログラム７２００によって読み書きされることから、当該プログラムから読み書き可能な場所にあれば、内部ノード装置２０００以外の部位に存在してもよい。
【００６２】
フィールド更新履歴情報７４００の履歴情報は、フィールドが作成されたのか、修正されたのか、削除されたのかを管理する「更新情報」欄１１１１Ｄと、フィールドを識別する「フィールド名」欄１１１１Ａと、フィールドの属性を管理する「属性」欄１１１１Ｂと、フィールドの内容を管理する「内容」欄１１１１Ｃから構成される。
【００６３】
また、「属性」欄１１１１Ｂは、フィールドの型を識別する「型」欄１１１１Ｂ１、フィールドが“Ｂｉｎｄｉｎｇ”か否かを管理する「Ｂｉｎｄｉｎｇ」欄１１１１Ｂ２、フィールドが“読み取り専用”か否かを関する「読み取り専用」欄１１１１Ｂ３、フィールドのデータ長を管理する「長さ」欄１１１１Ｂ４、ストレージ装置のボリュームにオブジェクトを格納する場合に、フィールドの「内容」欄１１１１Ｃの情報を格納する展開先ファイルのファイル名（またはパス名）を記述した「展開ファイル名」欄１１１１Ｂ５から構成される。なお、フィールド更新履歴情報７４００は、「型」欄１１１１Ｂ１または「展開ファイル名」欄１１１１Ｂ５を省略したデータ構造であったり、その他の属性を省略したデータ構造であってもよい。さらに、フィールド更新履歴情報７４００は、オブジェクト単位で作成または修正または削除される度にフィールドのフィールド名、Ｂｉｎｄｉｎｇ、読み取り専用、内容、そして展開ファイル名を格納可能な情報であれば良く、表以外の形式であってもよい。また、以後は複数のフィールド更新履歴情報７４００をまとめた情報をオブジェクト更新履歴情報と呼ぶことがある。
【００６４】
図１７は、フィールドリストファイルを示す一例である。フィールドリストファイルはオブジェクトをファイルとして扱う時の管理に用いる。
【００６５】
フィールドリストファイルは、オブジェクトのフィールドとフィールドの内容を格納したファイルとの対応を記録する情報である。フィールドリストファイルは、オブジェクト毎に作成される表で、一つ以上のフィールド情報１１１２Ｄを含む。また、一時的に作成されるフィールド管理情報７３００やフィールド更新履歴情報７４００とは異なり、アーカイブストレージシステムとして格納したオブジェクトに対応して必ず存在するファイルである。
【００６６】
フィールドリストファイルのフィールド情報は、対応するオブジェクトのフィールドに対応し、フィールドを識別する「フィールド名」欄１１１２Ａと、フィールドの属性を管理する「属性」欄１１１２Ｂと、フィールドの内容を保存したファイルへのポインタである「ポインタ」欄１１１２Ｃとから構成される。
【００６７】
また、「属性」欄１１１２Ｂは、フィールドの型を識別する「型」欄１１１２Ｂ１、フィールドが“Ｂｉｎｄｉｎｇ”か否かを管理する「Ｂｉｎｄｉｎｇ」欄１１１２Ｂ２、フィールドが“読み取り専用”か否かを関する「読み取り専用」欄１１１２Ｂ３、フィールドのデータ長を管理する「長さ」欄１１１２Ｂ４、ストレージ装置のボリュームにオブジェクトを格納する場合に、フィールドの「内容」欄１１１０Ｃの情報を格納する展開先ファイルのファイル名（またはパス名）を記述した「展開ファイル名」欄１１１２Ｂ５から構成される。なお、フィールドリストファイルは、「型」欄１１０２Ｂ１または「展開ファイル名」欄１１１２Ｂ５を省略した表であったり、その他の属性を省略したデータ構造であってもよい。
【００６８】
フィールドリストファイル１１１２は、フィールド管理情報７３００の内容を保持するために、又は、フィールド管理情報７３００を作成するために用いられる。したがって、フィールドリストファイルに保存される各欄の情報はフィールド管理情報７３００の各欄と同じであるが、データ表現形式まで同じである必要はなく、また一部の情報が不要な場合は当該部分についてまで同じである必要はない。フィールドリストファイル１１１２は、オブジェクト単位でフィールドのフィールド名、Ｂｉｎｄｉｎｇ、読み取り専用、内容、展開ファイル名、とフィールドの内容を格納したファイルへのポインタ（例えば、ファイル名、パス名などがあるがこれ以外にファイルを特定可能な識別子を用いても良い）を格納可能なファイルであれば良く、表構造以外の構造を持つファイルであってもよい。
【００６９】
アプリケーション１１０５が行うアーカイブに関する要求について説明する。
【００７０】
本実施例のオブジェクトストレージのインタフェースでは、以下のように図２で示した構成のオブジェクトの操作を要求する。
【００７１】
（アプリケーションがオブジェクトを作成する場合）
オブジェクトをアーカイブ、すなわち保存を要求する場合を説明する。まず、アプリケーション１１０５は、オブジェクトアーカイブライブラリ７１００内の「オブジェクト作成要求処理」（図４Ａ）を呼び出すことで、フィールド管理情報７３００の領域を確保する。次に「フィールド作成要求処理」（図５Ａ）を呼び出し、コンテンツデータとメタデータとして管理する属性情報毎に、確保したフィールド管理情報７３００にフィールドとして情報格納を要求する。この操作を、コンテンツデータとメタデータとして管理する属性情報分だけ繰り返し呼び出す。次に「コミット要求処理」（図６Ａ）を呼び出し、コンテンツデータ及びメタデータとして格納する属性情報が格納されたフィールド管理情報７３００の領域の情報のストレージ格納を要求する。最後に「オブジェクト作成・編集終了要求処理」（図１０Ａ）を呼び出し、フィールド管理情報７３００の領域を解放する。
【００７２】
（アプリケーションがオブジェクトを参照または更新する場合）
オブジェクトのコンテンツデータを更新する場合を説明する。まず、アプリケーション１１０５は、オブジェクトＩＤを指定して、オブジェクトアーカイブライブラリ７１００内の「オブジェクト編集要求処理」（図７Ａ）を呼び出し、オブジェクトＩＤで指定したオブジェクトのコンテンツデータとメタデータとして格納した属性情報とを含むフィールド管理情報７３００の作成を依頼する。次に「フィールド編集要求処理」（図８Ａ）を呼び出し、確保したフィールド管理情報７３００の領域に保存したいデータを含むフィールド情報の上書きを要求する。もしくは、「フィールド作成要求処理」（図４Ａ）を呼び出し、確保したフィールド管理情報７３００の領域に保存したいデータを含むフィールド情報追加を要求する。もしくは「フィールド削除要求処理」（図９Ａ）を呼び出し、確保したフィールド管理情報７３００の領域のフィールド情報削除を要求する。これらの操作を、必要なフィールドの数に相当する回数呼び出す。次に「コミット要求処理」（図６Ａ）を呼び出し、データが格納されたフィールド管理情報７３００の領域の情報のストレージ格納を要求する。最後に「オブジェクト作成・編集終了要求処理」（図１０Ａ）を呼び出し、一時的にデータを格納したフィールド管理情報７３００の領域を解放する。
【００７３】
なお、上記オブジェクトＩＤはホスト計算機１１００にてオブジェクト生成時にて記憶する方法や、オブジェクトアーカイブライブラリ７１００とオブジェクトアーカイブ制御プログラム７２００によるオブジェクトのフィールドに関するキーワード検索によってオブジェクトＩＤを抽出する方法を用いても良い。
【００７４】
なお、オブジェクトのコンテンツデータまたはメタデータを参照する場合も、上記更新手順同様にフィールド管理情報７３００を確保することで実現する。まず、アプリケーション１１０５は、「オブジェクト編集要求処理」（図７Ａ）でフィールド管理情報７３００の領域を確保する。その後、「フィールド参照要求処理」（図示せず）を呼び出し、指定したフィールド名の情報を取得する。これらの操作を、必要な回数行う。最後に最後に「オブジェクト作成・編集終了要求処理」（図１０Ａ）を呼び出し、一時的にデータを格納したフィールド管理情報７３００の領域を解放する。
【００７５】
さらに、オブジェクトに含まれるフィールド名は、ホスト計算機１１００にてオブジェクト生成時にフィールド名を記憶しておく方法や、オブジェクトアーカイブライブラリ７１００とオブジェクトアーカイブ制御プログラム７２００によって、オブジェクトが有する各フィールドのフィールド名を提供することで把握してもよい。
【００７６】
（アプリケーションがオブジェクトを削除する場合）
オブジェクトを削除する場合を説明する。アプリケーション１１０５は、オブジェクトアーカイブライブラリ７１００内の「オブジェクト削除要求処理」（図１２Ａ）を呼び出し、指定したオブジェクトＩＤに対応したオブジェクトの削除を実施する。
【００７７】
（アプリケーションがオブジェクトに保存期間を設定する場合）
オブジェクトに保存期間を設定する場合を説明する。まず、アプリケーション１１０５は、オブジェクトアーカイブライブラリ７１００内の「オブジェクト編集要求処理」（図７Ａ）を呼び出し、指定したオブジェクトＩＤのデータを格納したフィールド管理情報７３００の領域を確保する。次に、「保管期間設定要求処理」（図１３Ａ）を呼び出し、保存期間をフィールドデータとして格納する。次に「コミット要求処理」（図６Ａ）を呼び出し、データが格納されたフィールド管理情報７３００の領域の情報のストレージ格納を要求する。最後に「オブジェクト作成・編集終了要求処理」（図１０Ａ）を呼び出し、一時的にデータを格納したフィールド管理情報７３００の領域を解放する。
【００７８】
オブジェクト作成処理手順について、図４Ａ及び図４Ｂに示すフローチャートを用いて説明する。
【００７９】
まず、図４Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００の「オブジェクト作成要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【００８０】
ステップＳ１００１において、オブジェクトアーカイブライブラリ７１００は、アプリケーション１１０５から受け取ったオブジェクト作成処理要求を、オブジェクトアーカイブ制御プログラム７２００へ送信する。ここで、要求を受信したオブジェクトアーカイブ制御プログラム７２００はオブジェクト作成処理を実行するが、その説明は図４Ｂにて後述する。
【００８１】
次に、ステップＳ１００２において、アーカイブライブラリ７１００は、オブジェクトアーカイブ制御プログラム７２００から、編集用のインスタンスＩＤを受信し、インスタンスＩＤをアプリケーション１１０５へ送信し、処理を終了する。
【００８２】
次に、図４Ｂで、オブジェクトアーカイブライブラリ７１００からオブジェクト作成処理要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「オブジェクト作成処理」の手順を説明する。
【００８３】
オブジェクトアーカイブライブラリ７１００からオブジェクト作成処理要求を受信したオブジェクトアーカイブ制御プログラム７２００は、ステップＳ１１０１において、フィールド管理情報７３００、フィールド更新履歴情報７４００を作成する。
次に、ステップＳ１１０２において、インスタンスＩＤを要求元に送信し、処理を終了する。なお、このインスタンスＩＤは、要求を受信したオブジェクトアーカイブ制御プログラム７２００のプロセスＩＤや論理的なアドレスなど、作成したフィールド管理情報を一意に特定できるＩＤを用いる。
【００８４】
フィールド作成処理手順について、図５Ａ及び図５Ｂに示すフローチャートを用いて説明する。
【００８５】
まず、図５Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「フィールド作成要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【００８６】
ステップＳ２００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すインスタンスＩＤと作成したいフィールドの内容を入力値として受け取る。
【００８７】
次に、ステップＳ２００２で、フィールド作成要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ２００１にて受け取ったインスタンスＩＤとフィールドの内容とともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００はフィールド作成処理を実行するが、その説明は図５Ｂにて後述する。
以上でフィールド作成要求処理を終了する。
【００８８】
次に、図５Ｂで、オブジェクトアーカイブライブラリからフィールド作成要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「フィールド作成処理」の手順を説明する。
【００８９】
オブジェクトアーカイブライブラリ７１００からフィールド作成処理要求とインスタンスＩＤとフィールドの内容を受信したオブジェクトアーカイブ制御プログラム７２００は、ステップＳ２１０１において作成フィールド情報を読み込むとともに、受信したインスタンスＩＤが示すフィールド管理情報７３００を特定する。
【００９０】
次に、ステップＳ２１０２において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトのフィールド名１１１０Ａが「ホールド」であるフィールドの内容１１１０Ｃを参照し、ホールド中かどうかを確認する。もし、当該オブジェクトがホールド中でなければ（Ｆ）、ステップＳ２１０３に進む。当該オブジェクトがホールド中であれば（Ｔ）、フィールド作成に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ２１０４）。
【００９１】
次に、ステップＳ２１０３において、オブジェクトアーカイブ制御プログラム７２００は、ステップＳ２１０１で受け取ったフィールド名が、フィールド管理情報７３００及びフィールド更新履歴情報７４００に存在しないことを確認する。もし、当該フィールド名がフィールド管理情報７３００及びフィールド更新履歴情報７４００に存在しなければ（Ｔ）、ステップＳ２１０５に進む。当該フィールド名がフィールド管理情報７３００及びフィールド更新履歴情報７４００に存在するならば（Ｆ）、フィールド作成に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ２１０６）。
【００９２】
次に、ステップＳ２１０５において、オブジェクトアーカイブ制御プログラム７２００は、ステップＳ２１０１で受け取ったフィールド情報を、フィールド管理情報７３００とフィールド更新履歴情報７４００とに追加し、処理を終了する。
【００９３】
なお、本手順中にフィールド作成に失敗したことを示す情報を受信したオブジェクトアーカイブライブラリ７１００は、フィールド作成に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
コミット処理手順について、図６Ａ及び図６Ｂに示すフローチャートを用いて説明する。
【００９４】
まず、図６Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「コミット要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【００９５】
ステップＳ３００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すインスタンスＩＤを入力値としてアプリケーション１１０５から受け取る。
【００９６】
次に、ステップＳ３００２において、コミット処理要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ３００１にて受け取ったインスタンスＩＤとともに送信する。ここで、要求を受信したオブジェクトアーカイブ制御プログラム７２００はコミット処理を実行するが、その説明は図６Ｂにて後述する。
【００９７】
次に、ステップＳ３００３において、オブジェクトアーカイブライブラリ７１００は、オブジェクトアーカイブ制御プログラム７２００から、オブジェクトＩＤを受信し、当該オブジェクトＩＤをアプリケーション１１０５へ返答して、処理を終了する。
【００９８】
次に、図６Ｂで、オブジェクトアーカイブライブラリからコミット処理要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「コミット処理」の手順を説明する。
【００９９】
ステップＳ３１０１において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトがホールド中かどうかを確認する。確認手順は図５Ｂと同様である。もし、当該オブジェクトがホールド中でなければ（Ｆ）、ステップＳ３１０２に進む。当該オブジェクトがホールド中であれば（Ｔ）、フィールド作成に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ３１０３）。
【０１００】
次に、ステップＳ３１０２において、オブジェクトアーカイブ制御プログラム７２００は、フィールド更新履歴情報７４００を参照し、“Ｂｉｎｄｉｎｇ”１１１１Ｂ２がＴＲＵＥであるフィールドが更新されているかどうかを確認する。もし、“Ｂｉｎｄｉｎｇ”１１１１Ｂ２がＴＲＵＥである少なくとも１つのフィールドが更新されていれば（Ｔ）、ステップＳ３１０４に進む。“Ｂｉｎｄｉｎｇ”１１１１Ｂ２がＴＲＵＥであるフィールドが更新されていなければ（Ｆ）、ステップＳ３１０５に進む。
【０１０１】
ステップＳ３１０５において、変更対象のオブジェクトは既存のオブジェクトＩＤを保ちつつ、フィールド更新履歴情報７４００に記載された個々のフィールドの更新情報を反映する。具体的には、更新情報１１１１Ｄが「修正」のエントリの場合は、該当オブジェクトのフィールドリストファイル１１１２からフィールド名が一致するフィールド情報のポインタ１１１２Ｃの情報が指し示すファイルを更新し、必要に応じてフィールドリストファイル１１１２の該当フィールド情報の「属性」欄も更新する。また、更新情報１１１１Ｄが「削除」の場合は、同様に対象となるフィールドのファイルを見つけ、それを削除し、フィールドリストファイル１１１２の該当フィールドのエントリも削除する。「作成」のエントリは残し、以上の処理を行ってステップＳ３１０６に進む。なお、当該ステップで同じフィールドに対して生成、修正、削除を含めて複数回のフィールド操作が行われている場合は最後の操作のみ実行することによる高速化を図っても良い。
【０１０２】
次に、ステップＳ３１０４において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトに対応するオブジェクトＩＤを生成する。なお、オブジェクトＩＤの生成としてはオブジェクトＩＤ生成専用のカウンタを生成したり、日時の情報を用いて作成する方法があるが、これ以外の方法であっても生成したオブジェクトＩＤが重ならない方法であればその方法を用いても良い。ただし、カウンタや日時であっても限られたビット数にて管理しているため、「オブジェクトＩＤが重ならない」期間は永遠を指すのではなく、ユーザーの指定や規格などで定められた生成回数や期間を指す。
【０１０３】
次に、ステップＳ３１０６において、オブジェクトアーカイブ制御プログラム７２００は、オブジェクトからファイルへのデータマッピング処理を実行する。オブジェクトからファイルへのデータマッピング処理は、後述する。
【０１０４】
次に、ステップＳ３１０７において、オブジェクトアーカイブ制御プログラム７２００は、オブジェクトからファイルへのメタデータマッピング処理を実行する。オブジェクトからファイルへのメタデータマッピング処理は、後述する。
次に、ステップＳ３１０８において、オブジェクトアーカイブ制御プログラム７２００は、オブジェクトＩＤを、オブジェクトアーカイブライブラリ７１００へ送信し、処理を終了する。
オブジェクト編集処理手順について、図７Ａ及び図７Ｂに示すフローチャートを用いて説明する。
【０１０５】
まず、図７Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「オブジェクト編集要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１０６】
ステップＳ４００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すオブジェクトＩＤを入力値として受け取る。
【０１０７】
次に、ステップＳ４００２において、オブジェクト編集処理要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ４００１にて受け取ったオブジェクトＩＤとともに送信する。ここで、要求を受信したオブジェクトアーカイブ制御プログラム７２００はオブジェクト編集処理を実行するが、その説明は図７Ｂにて後述する。
【０１０８】
次に、ステップＳ４００３において、オブジェクトアーカイブライブラリ７１００は、オブジェクトアーカイブ制御プログラム７２００から、インスタンスＩＤを受信して、処理を終了する。
【０１０９】
次に、図７Ｂで、オブジェクトアーカイブライブラリ７１００からオブジェクト編集処理要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「オブジェクト編集処理」の手順を説明する。
【０１１０】
まず、ステップＳ４１０１において、オブジェクトアーカイブ制御プログラム７２００は、オブジェクトアーカイブライブラリ７１００から受信する。
次に、ステップＳ４１０２において、オブジェクトＩＤを持つオブジェクトが存在するかどうかを確認する。もし、当該オブジェクトＩＤを持つオブジェクトが存在するならば（Ｔ）、ステップＳ４１０３に進む。当該オブジェクトＩＤを持つオブジェクトが存在しなければ（Ｆ）、オブジェクト編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ４１０４）。なお、オブジェクト存在の確認処理の一例としては、受信したオブジェクトＩＤのディレクトリ名を有するディレクトリの有無を確認するために、ディレクトリ名を指定した要求をアーカイブ制御プログラム２２０１に送信することや、オブジェクトＩＤによって指定されたディレクトリにフィールドリストファイルが存在するかどうかを確認する要求をアーカイブ制御プログラム２２０１に送信してもよい。
【０１１１】
次に、ステップ４１０３において、存在したオブジェクトＩＤに対応する情報が揃っているか否かを判定する。具体的には、オブジェクトＩＤのフィールドリストファイル１１１２の内容を参照し、記載されているフィールドに対応する展開ファイルが全て存在することを確認する。もし、当該オブジェクトＩＤのオブジェクトに対応する情報が揃っていれば（Ｔ）、ステップＳ４１０５に進む。当該オブジェクトＩＤのオブジェクトに対応する情報が揃っていなければ（Ｆ）、オブジェクト編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ４１０４）。
【０１１２】
次に、ステップＳ４１０５において、オブジェクトアーカイブ制御プログラム７２００は、フィールドリストファイル１１１２の内容をもとに、メモリ２２００上に当該オブジェクトＩＤで指示されたオブジェクトのフィールド管理情報７３００を作成する。具体的には、フィールドリストファイル１１１２に記述されたフィールド名１１１０Ａ、及び、属性１１１０Ｂを読み込み、フィールドリストファイル１１１２のポインタ１１１２Ｃで示されたファイルの内容を内容１１１０Ｃに読み込み、当該オブジェクトのフィールド管理情報７３００を作成する。そして処理を終了する。
【０１１３】
なお、本手順中にオブジェクト編集に失敗したことを示す情報を受信したオブジェクトアーカイブライブラリ７１００は、オブジェクト編集に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
【０１１４】
なお、本手順では、フィールドリストファイルが見つからない場合に失敗のメッセージを返すほかに、フィールドリストファイルに登録されたフィールドに対応するファイルが存在しない場合も失敗のメッセージを返す。これによって、ファイル形式の操作で改変・削除された情報を検知することができる。しかし、フィールドリストファイルに登録されたフィールドに対応するファイルが存在しない場合、は当該存在しないファイルに対応するフィールドは無いものとして処理を開始してもよいし、開始に伴って警告メッセージを送信してもよい。これによって一部のフィールドがない場合でもオブジェクトの参照を止めると無くアプリケーション１１０５の処理を継続できるからである。またその他、オブジェクトの編集に必要なファイルが存在しない場合に何らかのメッセージを送信してもよい。
【０１１５】
フィールド編集処理手順について、図８Ａ及び図８Ｂに示すフローチャートを用いて説明する。
【０１１６】
まず、図８Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「フィールド編集要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１１７】
ステップＳ５００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すインスタンスＩＤと編集したいフィールドの情報（フィールド名と、Ｂｉｎｄｉｎｇまたは読み取り専用または内容の情報）を入力値として受け取る。
【０１１８】
次に、ステップＳ５００２で、フィールド編集要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ５００１で受け取ったインスタンスＩＤと編集したいフィールドの情報（フィールド名と、Ｂｉｎｄｉｎｇまたは読み取り専用または内容の情報）とともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００はフィールド編集処理を実行するが、その説明は図８Ｂにて後述する。
【０１１９】
以上でフィールド編集要求処理を終了する。
【０１２０】
次に、図８Ｂで、オブジェクトアーカイブライブラリ７１００からフィールド編集要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「フィールド編集処理」の手順を説明する。
【０１２１】
ステップＳ５１０１において、オブジェクトアーカイブライブラリ７１００は、受け取った対象オブジェクトを示すインスタンスＩＤと編集したいフィールドの情報（フィールド名と、Ｂｉｎｄｉｎｇまたは読み取り専用または内容の情報）を入力値として受け取る。
【０１２２】
次に、ステップＳ５１０２において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトがホールド中かどうかを確認する。確認手順は図５Ｂの説明で示した手順と同様である。もし、当該オブジェクトがホールド中でなければ（Ｆ）、ステップＳ５１０３に進む。当該オブジェクトがホールド中であれば（Ｔ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ５１０４）。
【０１２３】
次に、ステップＳ５１０３において、オブジェクトアーカイブ制御プログラム７２００は、ステップＳ５１０１で受け取ったフィールド名が、フィールド管理情報７３００に存在するかどうかを確認する。もし、当該フィールド名がフィールド管理情報７３００存在すれば（Ｔ）、ステップＳ５１０５に進む。当該フィールド名がフィールド管理情報７３００に存在しなければ（Ｆ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ５１０６）。
【０１２４】
次に、ステップＳ５１０５において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該フィールドの“読み取り専用”１１１０Ｂ３がＴＲＵＥかどうか確認する。もし、当該フィールドの“読み取り専用” １１１０Ｂ３がＦＡＬＳＥならば（Ｆ）、ステップＳ５１０７へ進む。当該フィールドの“読み取り専用” １１１０Ｂ３がＴＲＵＥならば（Ｔ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ５１０８）。
【０１２５】
次に、ステップＳ５１０５において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該オブジェクトのフィールド名１１１０Ａが「保存期間」であるエントリの内容１１１０Ｃに記載された保存期間の値を参照し、保存期間が満了しているかどうか確認する。もし、当該オブジェクトの保存期間が満了していれば（Ｔ）、ステップＳ５１０９へ進む。当該オブジェクトの保存期間が満了していなければ（Ｆ）、ステップＳ５１１０へ進む。
【０１２６】
次に、ステップＳ５１１０において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該フィールドの“Ｂｉｎｄｉｎｇ”１１１０Ｂ２がＴＲＵＥであるかどうかを確認する。もし、“Ｂｉｎｄｉｎｇ” １１１０Ｂ２がＦＡＬＳＥならば（Ｆ）、ステップＳ５１０９に進む。“Ｂｉｎｄｉｎｇ” １１１０Ｂ２がＴＲＵＥならば（Ｔ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ５１１１）。
【０１２７】
次に、ステップＳ５１１０において、オブジェクトアーカイブ制御プログラム７２００は、フィールド更新履歴情報７４００に当該フィールド編集内容を追加しフィールド管理情報７３００の該当フィールドの内容を更新し、処理を終了する。
なお、本手順中にフィールド編集に失敗したことを示す情報またはメッセージを受信したオブジェクトアーカイブライブラリ７１００は、フィールド編集に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
フィールド削除処理手順について、図９Ａ及び図９Ｂに示すフローチャートを用いて説明する。
【０１２８】
まず、図９Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「フィールド削除要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１２９】
ステップＳ６００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すインスタンスＩＤと削除したいフィールドのフィールド名を入力値として受信する。
【０１３０】
次に、ステップＳ６００２で、フィールド削除要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ６００１にて受信したインスタンスＩＤと削除したいフィールドのフィールド名とともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００はフィールド削除処理を実行するが、その説明は図９Ｂにて後述する。
【０１３１】
以上でフィールド削除要求処理を終了する。
【０１３２】
次に、図９Ｂで、オブジェクトアーカイブライブラリ７１００からフィールド削除要求を受信したときに、オブジェクトアーカイブ制御プログラム７２００が行う「フィールド削除処理」の手順を説明する。
【０１３３】
ステップＳ６１０１において、オブジェクトアーカイブライブラリ７１００は、受け取った対象オブジェクトを示すインスタンスＩＤと削除したいフィールドのフィールド名を入力値として受信する。
【０１３４】
次に、ステップＳ６１０２において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトがホールド中かどうかを確認する。確認手順は図５Ｂの説明で示した手順と同様である。もし、当該オブジェクトがホールド中でなければ（Ｆ）、ステップＳ６１０３に進む。当該オブジェクトがホールド中であれば（Ｔ）、フィールド削除に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ６１０４）。
【０１３５】
次に、ステップＳ６１０３において、オブジェクトアーカイブ制御プログラム７２００は、ステップＳ６１０１で受け取ったフィールド名が、フィールド管理情報７３００に存在するかどうかを確認する。もし、当該フィールド名がフィールド管理情報７３００に存在すれば（Ｔ）、ステップＳ６１０５に進む。当該フィールド名がフィールド管理情報７３００に存在しなければ（Ｆ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ６１０６）。
【０１３６】
次に、ステップＳ６１０５において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該フィールドの“読み取り専用”１１１０Ｂ３がＴＲＵＥかどうか確認する。もし、当該フィールドの“読み取り専用”１１１０Ｂ３がＦＡＬＳＥならば（Ｆ）、ステップＳ６１０７へ進む。当該フィールドの“読み取り専用” １１１０Ｂ３がＴＲＵＥならば（Ｔ）、フィールド編集に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ６１０８）。
【０１３７】
次に、ステップＳ６１０５において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該オブジェクトの保存期間が満了しているかどうか確認する。確認手順は図８Ｂの説明で示した手順と同様である。もし、当該オブジェクトの保存期間が満了していれば（Ｔ）、ステップＳ６１０９へ進む。当該オブジェクトの保存期間が満了していなければ（Ｆ）、ステップＳ６１１０へ進む。
【０１３８】
次に、ステップＳ６１１０において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該フィールドの“Ｂｉｎｄｉｎｇ”１１１０Ｂ２がＴＲＵＥであるかどうかを確認する。もし、“Ｂｉｎｄｉｎｇ” １１１０Ｂ２がＦＡＬＳＥならば（Ｆ）、ステップＳ６１０９に進む。“Ｂｉｎｄｉｎｇ” １１１０Ｂ２がＴＲＵＥならば（Ｔ）、フィールド削除に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送信し、処理を終了する（ステップＳ６１１１）。
【０１３９】
次に、ステップＳ６１１０において、オブジェクトアーカイブ制御プログラム７２００は、フィールド更新履歴情報７４００に当該フィールド削除内容を追加し、フィールド管理情報７３００の該当フィールドのエントリを削除し、処理を終了する。
【０１４０】
なお、本手順中にフィールド削除に失敗したことを示す情報またはメッセージを受信したオブジェクトアーカイブライブラリ７１００は、フィールド削除に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
【０１４１】
オブジェクト作成・編集終了処理手順について、図１０Ａ及び図１０Ｂに示すフローチャートを用いて説明する。
【０１４２】
まず、図１０Ａで、アプリケーション１１０５から、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「オブジェクト作成・編集終了要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１４３】
ステップＳ７００１において、オブジェクトアーカイブライブラリ７１００は、作成・編集を終了したい対象オブジェクトを示すインスタンスＩＤを入力値として受信する。
【０１４４】
次に、ステップＳ７００２で、オブジェクト作成・編集終了要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ７００１にて受信したインスタンスＩＤとともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００はオブジェクト作成・編集終了処理を実行するが、その説明は図１０Ｂにて後述する。
【０１４５】
以上でオブジェクト作成・編集終了要求処理を終了する。
【０１４６】
次に、図１０Ｂで、オブジェクトアーカイブライブラリ７１００からオブジェクト作成・編集終了要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「オブジェクト作成・編集終了処理」の手順を説明する。
【０１４７】
ステップ７１０１において、オブジェクトアーカイブ制御プログラム７２００は、対象となるインスタンスＩＤで確保していたフィールド管理情報７３００及びフィールド更新履歴情報７４００の領域を解放し、インスタンスＩＤを破棄（例えば、インスタンスＩＤに空の値（ＮＵＬＬ）を設定）し、処理を終了する。
【０１４８】
オブジェクト削除処理手順について、図１１Ａ及び図１１Ｂに示すフローチャートを用いて説明する。
【０１４９】
まず、図１１Ａで、アプリケーション１１０５が、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「オブジェクト削除要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１５０】
ステップＳ８００１において、オブジェクトアーカイブライブラリ７１００は、削除対象のオブジェクトＩＤを入力値として受信する。
【０１５１】
次に、ステップＳ８００２で、オブジェクト削除要求を、オブジェクトアーカイブ制御プログラム７２００へ、入力値とともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００はオブジェクト削除処理を実行するが、その説明は図１１Ｂにて後述する。
【０１５２】
以上でオブジェクト削除要求処理を終了する。
【０１５３】
次に、図１１Ｂで、オブジェクトアーカイブ制御プログラム７２００が行う「オブジェクト削除処理」の手順を説明する。
【０１５４】
まず、ステップＳ８１０１において、オブジェクトアーカイブ制御プログラム７２００は、削除対象オブジェクトのオブジェクトＩＤを受け取る。
次に、ステップＳ８１０２において、オブジェクトアーカイブ制御プログラム７２００は、オブジェクトアーカイブライブラリ７１００から受け取ったオブジェクトＩＤを持つオブジェクトが存在するかどうかを確認する。もし、当該オブジェクトＩＤを持つオブジェクトが存在するならば（Ｔ）、ステップＳ８１０３に進む。当該オブジェクトＩＤを持つオブジェクトが存在しなければ（Ｆ）、オブジェクト削除に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ８１０４）。
次に、ステップＳ８１０３において、オブジェクトアーカイブ制御プログラム７２００は、メモリ２２００上に、当該オブジェクトＩＤで指示されたオブジェクトのフィールド管理情報７３００を作成する。作成手順は図７Ｂの説明で示した手順と同様である。
次に、ステップＳ８１０５において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトがホールド中かどうかを確認する。確認手順は図５Ｂの説明で示した手順と同様である。もし、当該オブジェクトがホールド中でなければ（Ｆ）、ステップＳ８１０６に進む。当該オブジェクトがホールド中であれば（Ｔ）、オブジェクト削除に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ８１０７）。
次に、ステップＳ８１０６において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００を参照し、当該オブジェクトの保存期間が満了しているかどうか確認する。確認手順は図８Ｂの説明で示した手順と同様である。もし、当該オブジェクトの保存期間が満了していれば（Ｔ）、ステップＳ８１０８へ進む。当該オブジェクトの保存期間が満了していなければ（Ｆ）、オブジェクト削除に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（Ｓ６１１０）。
次に、ステップＳ８１０８において、削除対象オブジェクトのフィールドリストファイル１１１２に記載された各フィールドのファイルを削除し、フィールドリストファイル自体を削除し、削除対象オブジェクト用ディレクトリを削除し、処理を終了する。
【０１５５】
なお、本手順中にオブジェクト削除に失敗したことを示す情報またはメッセージを受信したオブジェクトアーカイブライブラリ７１００は、オブジェクト削除に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
【０１５６】
本実施例におけるフィールドの作成や編集処理は上記に示すように、フィールドの内容を設定・更新している。本実施例のアーカイブに関する要求では、これらの他に、フィールドの内容を設定・変更するとともに、アーカイブストレージシステム１０００への操作を行うものもある。以下にその例であるオブジェクトの保管期間の設定を説明する。
【０１５７】
保存期間設定処理手順について、図１２Ａ及び図１２Ｂに示すフローチャートを用いて説明する。
【０１５８】
まず、図１２Ａで、アプリケーション１１０５から、アーカイブアプリケーション１１０５にリンクしたオブジェクトアーカイブライブラリ７１００内の「保管期間設定要求処理」を呼び出した時の、オブジェクトアーカイブライブラリ７１００の処理手順を説明する。
【０１５９】
ステップＳ９００１において、オブジェクトアーカイブライブラリ７１００は、対象オブジェクトを示すインスタンスＩＤと、保管期間のフィールドのフィールド名を入力値として受信する。
【０１６０】
次に、ステップＳ９００２で、保管期間設定要求を、オブジェクトアーカイブ制御プログラム７２００へ、ステップＳ９００１にて受信したインスタンスＩＤとともに送信する。ここで要求を受信したオブジェクトアーカイブ制御プログラム７２００は保管期間設定処理を実行するが、その説明は図１２Ｂにて後述する。
【０１６１】
以上で保管期間設定要求処理を終了する。
【０１６２】
次に、図１２Ｂで、オブジェクトアーカイブライブラリ７１００から保管期間設定要求を受信したときの、オブジェクトアーカイブ制御プログラム７２００が行う「保管期間設定処理」の手順を説明する。
【０１６３】
ステップＳ９１０１において、オブジェクトアーカイブライブラリ７１００は、受け取った対象オブジェクトを示すインスタンスＩＤを入力値として受信する。
【０１６４】
次に、ステップＳ９１０２において、オブジェクトアーカイブ制御プログラム７２００は、当該オブジェクトに保存期間が未設定かどうかを確認する。具体的には、当該オブジェクトのフィールド管理情報７３００で、フィールド名１１１０Ａが「保存期間」であるエントリがあり、かつ、その内容１１１０Ｃに値が設定されているかを確認する。もし、当該オブジェクトに保存期間が未設定であれば（Ｔ）、ステップＳ９１０３に進む。当該オブジェクトに保存期間が設定されていれば（Ｆ）、ステップＳ９１０４に進む。なお、保存期間の設定値としては、保存期間が終了する日時を設定及び情報提供することが考えられるが、これ以外にも現在から未来への期間を設定し、参照の際は保存期間設定時の日時と共に当該期間を情報提供してもよく、また参照の際は残りの期間を情報提供してもよい。
【０１６５】
次に、ステップＳ９１０４において、オブジェクトアーカイブ制御プログラム７２００は、ステップＳ９１０１で受け取った保存期間を適用した場合の保存期間終了日時が、既に設定されている保存期間に関する終了日時より延長される（保存期間延長設定）かどうかを判定する。もし、ステップＳ９１０１で受け取った保存期間が、既に設定されている保存期間による終了日時を延長するのであれば、ステップＳ９１０３へ進む。ステップＳ９１０１で受け取った保存期間が、既に設定されている保存期間による終了日時を短縮するのであれば（保存期間短縮設定）、保存期間設定に失敗したことを示す情報をオブジェクトアーカイブライブラリ７１００に送り、処理を終了する（ステップＳ９１０５）。
【０１６６】
次に、ステップ９１０３において、オブジェクトアーカイブ制御プログラム７２００は、フィールド管理情報７３００の保存期間設定用のフィールドを更新し、処理を終了する。
【０１６７】
なお、本手順中に保存期間設定に失敗したことを示す情報またはメッセージを受信したオブジェクトアーカイブライブラリ７１００は、保存期間設定に失敗したことを示すメッセージをアプリケーション１１０５に送信する。
【０１６８】
図６Ｂのコミット処理のステップＳ３１０６にて呼び出される、オブジェクトからファイルへのデータマッピング処理について、図１３に示すフローチャートを用いて説明する。
【０１６９】
まず、ステップＳ１０００１において、オブジェクトアーカイブ制御プログラム７２００は、対象のオブジェクトが既存か否かを判定する。既存（Ｔ）の場合は、ステップＳ１０００２に進む。新規（Ｆ）の場合は、ステップＳ１０００３に進む。
ステップＳ１０００２において、本手順での処理対象を、対象オブジェクトのフィールド更新履歴情報７４００内の更新情報１１１１Ｄが「作成」であるフィールドと特定し、ステップＳ１０００６に進む。
【０１７０】
ステップＳ１０００３において、本手順での処理対象となるフィールドを、対象オブジェクトのフィールド管理情報７３００の全フィールドと特定する。
【０１７１】
次に、ステップＳ１０００４において、オブジェクトアーカイブ制御プログラム７２００は、アーカイブ制御プログラム２２０１に対して、オブジェクト用のディレクトリ作成要求を送る。アーカイブ制御プログラム２２０１はオブジェクトＩＤを元に所定のルールを用いてディレクトリ名を生成し、当該ディレクトリ名を持つオブジェクト用ディレクトリを作成する要求をアーカイブ制御プログラムに送信する。当該要求を受信したアーカイブ制御プログラムはオブジェクト用ディレクトリを作成する。
【０１７２】
次に、ステップＳ１０００５において、オブジェクトアーカイブ制御プログラム７２００は、アーカイブ制御プログラム２２０１に対して、作成したディレクトリ内に当該オブジェクトのためのフィールドリストファイルの作成指示を送る。アーカイブ制御プログラム２２０１は指示に従ってフィールドリストファイルを作成し、Ｓ１０００５に進む。
【０１７３】
ステップＳ１０００６において、ステップＳ１０００２またはステップＳ１０００３にて特定されたフィールドに関して、処理対象があるかを判定する。ある場合（Ｔ）はステップＳ１０００６に進む。無い場合は、対象の処理が終わったものとして処理を終了する。
【０１７４】
ステップＳ１０００６において、オブジェクトアーカイブ制御プログラム７２００は、処理対象のフィールドについて、フィールド名を元に所定のルールを用いてフィールドの内容を保存するためのファイルのファイル名を生成する。そして、アーカイブ制御プログラム２２０１に対して、生成したファイル名を持つファイルをオブジェクト用ディレクトリ内に生成し、フィールドの内容を当該ファイルに書きこむように要求を送る。アーカイブ制御プログラム２２０１は、要求に従ってフィールドの内容をファイルに書き、ディレクトリ内へ格納する。
【０１７５】
次に、ステップＳ１０００８において、オブジェクトアーカイブ制御プログラム７２００は、アーカイブ制御プログラム２２０１に対して、処理対象のフィールドについて、フィールド管理情報７３００のうちの少なくともフィールド名欄とＢｉｎｄｉｎｇ欄と読み取り専用欄の情報についてと、ポインタ１１２Ｃの情報としてステップＳ１０００６で生成したファイル名（またはファイルのパス名）とを、フィールドリストファイルに追記する要求を送る。アーカイブ制御プログラム２２０１は、受信した要求に従って、フィールドリストファイルに、当該フィールドに関するフィールド名欄とＢｉｎｄｉｎｇ欄と読み取り専用欄の情報についてと、ポインタ１１２Ｃの情報としてステップＳ１０００６で生成したファイル名（またはファイルのパス名）とを追記し、当該フィールドをＳ１０００２またはＳ１０００３にて特定したフィールドから外し、ステップＳ１０００６に戻る。
【０１７６】
以上で手順の説明を終わる。 
図６Ｂのコミット処理のステップＳ３１０７にて呼び出される、オブジェクトからファイルへのメタデータマッピング処理について、図１４に示すフローチャートを用いて説明する。
【０１７７】
まず、ステップＳ１０１０１において、オブジェクトアーカイブ制御プログラム７２００は、対象のオブジェクトが既存か否かを判定する。既存（Ｔ）の場合は、ステップＳ１０１０２に進む。新規（Ｆ）の場合は、ステップＳ１０１０３に進む。
ステップＳ１０１０２において、本手順での処理対象を、対象オブジェクトのフィールド更新履歴情報７４００内の更新情報１１１１Ｄが「作成」であるフィールドを特定し、ステップＳ１０１０４に進む。
【０１７８】
ステップＳ１０１０３において、本手順での処理対象となるフィールドを、対象オブジェクトのフィールド管理情報７３００の全フィールドと特定する。
【０１７９】
ステップＳ１０１０４において、ステップＳ１０１０２またはステップＳ１０１０３にて特定されたフィールドに関して、処理対象があるかを判定する。ある場合（Ｔ）はステップＳ１０１０５に進む。無い場合は、対象の処理が終わったものとして処理を終了する。
【０１８０】
ステップＳ１０１０５において、対象フィールドがアーカイブストレージシステムのメタデータとして保存するかどうかを判定する。メタデータである場合（Ｔ）はステップＳ１０１０６に進む。異なる場合（Ｆ）は、次のエントリの処理のため、ステップＳ１０１０４に戻る。なお、判定にあたっての具体的な方法の一つとしては、アプリケーション１１０５からオブジェクトアーカイブライブラリ７１００とオブジェクトアーカイブ制御プログラム７２００の処理にてアプリケーションから予めフィールドを指定してもらうことで、当該フィールドをメタデータであるとして判定する方法がある。また、アーカイブ制御プログラム２２０１がファイルまたはディレクトリを対象にした保存期間の設定（とそれに伴う当該ファイルまたはディレクトリの改変及び削除の禁止処理の実行）としてアーカイブストレージシステムのメタデータを編集する必要がある場合は、フィールド名が「保存期間」であるフィールドについてはメタデータ書き込み対象と判定してもよい。
【０１８１】
ステップＳ１０１０６において、オブジェクトアーカイブ制御プログラム７２００は、アーカイブ制御プログラム２２０１に対して、フィールド管理情報７３００のうち、上記判定したフィールドに加えて、予め定められたフィールド（例えば、保存期間設定、ホールド設定、シュレッディング有効／無効等）については、当該フィールドの内容を当該オブジェクトに関するアーカイブストレージシステムが提供するメタデータとして設定する要求を送る。アーカイブ制御プログラム２２０１は、オブジェクトアーカイブ制御プログラム７２００から受け取った情報を、メタデータに設定する。そして次のフィールドの処理のため、ステップＳ１０１０４に戻る。なお、本手順にてメタデータに格納したフィールドについては、図７Ｂに記載のオブジェクトアーカイブ制御プログラム７２００のフィールド内容の読み込みを行う時に、読み込み元をフィールド名を持つファイルではなくて当該オブジェクトに関連するメタデータとする必要がある。
【０１８２】
なお、アーカイブストレージシステムの機能によっては、メタデータとして保存期間の設定を行う以外の実現形態（例えば、最終ファイルアクセス時刻を保存期間の設定値として設定及び参照を可能とする形態や、特別な管理コマンドを用いて保存期間の設定を行う形態がある）を有する場合がある。そうした場合でも、少なくともあるオブジェクトのフィールド内容を保存した全ファイルに対して、さらには各フィールドの設定内容次第ではフィールドリストファイルやオブジェクト用のディレクトリに対して、当該オブジェクトの「保存期間」フィールドの内容を元に保存期間を一括で設定さえすれば、当該オブジェクトのコンテンツデータは、オブジェクトアーカイブ制御プログラム経由のオブジェクト形式のアクセスと、アーカイブ制御プログラムのファイル形式のアクセスとの両方のアクセス方法に対して改変または削除を防ぐことができる。
【０１８３】
上記で説明した本実施例でのファイルストレージへのオブジェクトデータのアーカイブを、図１６のディレクトリ構造を説明した模式図を用いて説明する。
【０１８４】
図１６（Ａ）が、図２に示したオブジェクトをアーカイブする前の、アーカイブストレージシステム１０００がデータを保持しているディレクトリ構造である。既に「file1」という名称のファイルがファイルストレージのインタフェースでアーカイブされているものとする。「fcfs_data」というデータ格納用ディレクトリツリーのルート以下に、「dir1」というディレクトリがあり、更にその下に「dir2」というディレクトリがあり、その下に「file1」が存在するものとして管理されている。本実施例でのアーカイブストレージシステム１０００は、データ格納用のディレクトリツリーとは別に、メタデータ管理用のディレクトリツリーが自動的に生成され、「fcfs_metadata」の下に、「fcfs_data」以下のパスに相当するディレクトリツリーの下に、「file1」に対応する「file1の保存期間」がファイルとして保持されている。この「file1の保存期間」に保存期間を書き込むことで、「file1」の保存期間が設定される。
【０１８５】
図１６（Ｂ）が、図２に示したオブジェクトをアーカイブした後のファイルへ展開された状態を示したディレクトリ構造である。なお、ここでは図２に示したオブジェクトがオブジェクトＩＤ「００」で作成されたものとして説明する。「fcfa_data」の下に、オブジェクトに対応するディレクトリを作成し、そのディレクトリ下に図２に示したオブジェクトＩＤのファイル、フィールドのデータを管理するフィールドリストファイル、及び、オブジェクトのフィールドの内容を格納したファイルを各々作成する。必要に応じて保存期間も設定する。
【０１８６】
次に、ファイル形式で作成され、アーカイブストレージシステムに格納したファイルを、本実施例のオブジェクトとしてマッピングする処理のフローチャートを、図１５を用いて説明する。
【０１８７】
ステップＳ１１００１において、オブジェクトアーカイブ制御プログラム７２００が、「ファイルからオブジェクトへのマッピング処理」要求を、対象となるファイルのファイル名と共に受け取る。この要求は、ホスト計算機から指示してもよく、管理計算機（図示せず）を設け、そこから指示してもよい。なお、当該指示はこれから生成する新規のファイル格納の際に、ファイル格納処理にあわせて本処理を実施してもよい。
【０１８８】
次にステップＳ１１００２において、ファイル名によって指定されたファイルをオブジェクトとしてアクセスするための、オブジェクトＩＤを生成する。
【０１８９】
ステップ１１００３において、指定されたファイルの情報を用い、本実施例におけるオブジェクトとして必要な情報を作成する。具体的には、まずステップＳ１１００２で作成したオブジェクトＩＤを格納したオブジェクトＩＤファイルを、対象となるファイルと同じディレクトリに作成する。次に、当該オブジェクトＩＤファイルをフィールド名１１１２Ａが「オブジェクトＩＤ」であるフィールドとして有し、対象となるファイルを一つのフィールドとして有し、対象となるファイルの保存期間をフィールド名１１１２Ａが「保存期間」であるフィールドとして有するフィールドリストファイル１１１２を、対象となるファイルと同じディレクトリに作成する。以上で処理を終了する。
【０１９０】
なお、図１３のオブジェクトからファイルへのフィールドマッピング処理の、オブジェクト用ディレクトリのディレクトリ名を生成する際の所定のルールとしては以下が考えられる。
（Ａ）オブジェクトＩＤ以外の文字列をオブジェクトＩＤの最初や最後に加えた文字列をディレクトリ名とする。この文字列は予め定められたパス名を先頭に追加するものであったり、ディレクトリ自体の名前として判別しやすい文字列を追加するものであってもよい。また、オブジェクトの所有者に応じてオブジェクトの格納先を分けるために、先頭の文字列をオブジェクトの所有者フィールドを元に決定してもよい。
（Ｂ）オブジェクトＩＤとして受付可能な文字列にディレクトリ名としては利用不可能な文字列がある場合などに、変換処理を行う。これにはファイル名やパス名の長さの限定も含まれる。
（Ｃ）オブジェクトＩＤをそのままディレクトリ名とする。つまり何も変換しない。
（Ｄ）フィールドで記述されたディレクトリパスを使用する。
（Ｅ）その他、オブジェクトＩＤから一意にファイル名を導出可能な関数またはルールを使う。
【０１９１】
なお、この所定のルールは図１３以外の処理であってもオブジェクトＩＤからディレクトリ名を特定する処理が存在すればそこに適用可能である。
【０１９２】
また、図１３のオブジェクトからファイルへのフィールドマッピング処理の、フィールドの内容を格納するファイルのファイル名を生成する際のルールとしては以下が考えられる。
（ａ）フィールド名以外の文字列をフィールド名の最初や最後に加えた文字列をファイル名とする。この文字列は予め定められたパス名を先頭に追加するものであったり、ファイル自体の名前として判別しやすい文字列を追加するものであってもよい。また、オブジェクトの所有者に応じたファイル名とするために、先頭の文字列をオブジェクトの所有者フィールドを元に決定してもよい。
（ｂ）フィールド名として受付可能な文字列にファイル名としては利用不可能な文字列がある場合などに、変換処理を行う。これにはファイル名やパス名の長さの限定も含まれる。
（ｃ）フィールド名をそのままファイル名とする。つまり何も変換しない。
（ｄ）その他、フィールド名から一意にファイル名を導出可能な関数またはルールを使う。
【０１９３】
なお、この所定のルールは図１３以外の処理であってもフィールド名からファイル名を特定する処理が存在すればそこに適用可能である。
【０１９４】
また、第一の実施例では、図１６（Ｂ）に示すように、オブジェクトとしてアーカイブした場合に、ディレクトリのルートである「fcfs_data」の直下に展開される。これを、上記所定のルールを用いるなどして、あらかじめパス情報をオブジェクトアーカイブ制御プログラム７２００に指示しておき、オブジェクトアーカイブ制御プログラム７２００は、「オブジェクトからファイルへのフィールドマッピング処理」及び、「オブジェクトからファイルへのメタデータマッピング処理」の時に、そのパスの下に展開するようにしても良い。その場合、例えば、あらかじめ「/dir8/dir9」というパスを指示しておいた場合、図１６（Ｂ）に示されるオブジェクトＩＤが００のオブジェクトは「/fcfs_data/dir8/dir9/00/」の下にファイルとして展開される。
【０１９５】
以上、第一の実施例と以後開示する第二の実施例と第三の実施例の開示によれば、オブジェクトをディレクトリに、フィールドをファイルに対応させることで、オブジェクトとして見つけやすく、まとめて操作できるようにするとともに、フィールド個々対して別々の管理ができるようになる。その例としては下記に示すような状況がある。
（１）アーカイブストレージシステム１０００が、内容が同じファイルについて一つのファイルを保管しつつ、仮想的に２つのファイルとして扱うことで、必要なディスク容量を削減する重複排除機能を持っていた場合、フィールドを別のファイルとして扱うことで、特定のフィールドに対して重複排除機能を適用することができる。
（２）ホスト計算機にて実行するファイルを対象としたデータ管理プログラム（ファイルマネージャーや、容量監視プログラム、コピープログラム）を用いてオブジェクトの管理が可能である。また、その管理はファイル形式のデータと共に一括して行うことができる。
【０１９６】
また、第一の実施例と以後開示する第二の実施例と第三の実施例の開示によれば、内部ノード装置は従来からのファイル方式のアクセスを処理可能であるため、追加的にオブジェクトＩＤ方式のアクセスを許可するオブジェクトアーカイブ制御プログラム７２００を実行することで、ボリュームの再フォーマットや再配置を省略して、オブジェクトＩＤ方式によるアクセスを処理可能とすることもできる。同様に、プログラムライセンスの都合等の理由によってオブジェクトアーカイブプログラム７２００を無効化したとしても、無効化前に保存したオブジェクトは参照及び更新しつづけることができる。
【０１９７】
コンテンツを長期間、安全に（すなわち改竄及びデータロスト無く）保管する目的を考えた場合、アーカイブするストレージの世代変更、アーカイブするストレージをＣＡＳからＮＡＳへ、もしくは逆への変更、コンテンツを参照するアプリケーションの世代変更、又は、社会情勢の変化によるアプリケーションそのものの消滅など様々な事象の発生が起こりうる。こうした状況であっても第一の実施例から第三の実施例によるストレージはアクセス可能であり続けることができる。
【０１９８】
また、例えばＣＡＳからＮＡＳにストレージを変更する際、第一から第三の実施例によるアーカイブストレージシステムを移行元または移行先のいずれかに設置することで、長期保管のため膨大に蓄積量となっているコンテンツが移行中であっても移行元のストレージと移行先のストレージに同じアクセス方式でアクセス可能であるため、全て移行完了するまで、アクセスを待つ必要がない。
【０１９９】
また、第一の実施例ではオブジェクトＩＤ方式のアクセスからファイル方式のアクセスへの変換に必要となる処理（オブジェクトアーカイブ制御プログラム７２００）と共に、フィールド管理情報７３００のように生成または編集途上に作成される一時データをアーカイブストレージシステム１０００または内部ノード装置２０００内部にて行う。アーカイブストレージシステムまたは内部ノード装置が物理的にセキュリティが確保された状態またはパッケージングを行うことで、本構成ではオブジェクトアーカイブプログラムとフィールド管理情報の不正改変によるオブジェクト及びファイルの不正操作ができなくなる。
【０２００】
また、本実施例では、変換に必要な装置を別途用意せずに実現できる柔軟性を備える。
【実施例２】
【０２０１】
次に、本発明の第二の実施例を図１８を用いて説明する。第二の実施例は、以下に説明する相違点を除き、第一の実施例と同様であるため、第一の実施例に開示の内容と第二の実施例に開示の内容の任意の組み合わせが可能である。
【０２０２】
ホスト計算機１１００が、オブジェクトアーカイブ制御プログラム７２００と、フィールド管理情報７３００と、フィールド更新履歴情報７４００とを有する。これによってオブジェクト方式のアクセスからファイル方式のアクセスへの変換をホスト計算機１１００にて行う。なお、フィールド管理情報７３００と、フィールド更新履歴情報７４００はホスト計算機１１００のメモリ１１０２以外の記憶領域（例えば、内蔵ＨＤＤ）に保存してもよい。
【０２０３】
第二の実施例では、上記変換をホスト計算機１１００で行い、編集中のデータをホスト計算機１１００に存在するフィールド管理情報７３００へ一時保存するため、本実施例編集途中（つまり、オブジェクト作成要求処理からコミット要求処理の間や、オブジェクト編集要求処理からコミット要求処理の間）のフィールドに対する変更内容がアーカイブストレージシステム１０００へ転送されない。また、オブジェクト編集要求処理の対象となったオブジェクトに対しては編集途中のフィールド内容の参照を行ってもホスト計算機１１００が主導で処理可能である。そのため、第二の実施例はアーカイブストレージシステム１０００の負荷を軽減することができる。
【０２０４】
また第二の実施例を別な視点で見た場合、アーカイブストレージシステム１０００に対する機能拡張が不要（またはオブジェクトＩＤの生成に必要な値のみアーカイブストレージシステムにて管理することはしても良い）であるため、柔軟な運用が可能となる。
【０２０５】
また、本実施例では、変換に必要な装置を別途用意せずに実現できる柔軟性を備える。
【実施例３】
【０２０６】
次に、本発明の第三の実施例を図１９を用いて説明する。第三の実施例は、以下に説明する相違点を除き、第一の実施例と同様であるため、第一の実施例に開示の内容と第三の実施例に開示の内容の任意の組み合わせが可能である。
【０２０７】
アーカイブ管理サーバー８１００が、オブジェクトアーカイブ制御プログラム７２００と、フィールド管理情報７３００と、フィールド更新履歴情報７４００とを有する。これによってオブジェクト方式のアクセスからファイル方式のアクセスへの変換をアーカイブ管理サーバー８１００にて行う。なお、フィールド管理情報７３００と、フィールド更新履歴情報７４００はアーカイブ管理サーバー８１００のメモリ８１０２以外の記憶領域（例えば、内蔵ＨＤＤ）に保存してもよい。
【０２０８】
第三の実施例では、上記変換をアーカイブ管理サーバー８１００で行い、編集中のデータをアーカイブ管理サーバー８１００に存在するフィールド管理情報７３００へ一時保存するため、本実施例編集途中（つまり、オブジェクト作成要求処理からコミット要求処理の間や、オブジェクト編集要求処理からコミット要求処理の間）のフィールドに対する変更内容がアーカイブストレージシステム１０００へ転送されない。また、オブジェクト編集要求処理の対象となったオブジェクトに対しては編集途中のフィールド内容の参照を行ってもアーカイブ管理サーバー８１００が主導で処理可能である。そのため、第二の実施例はアーカイブストレージシステム１０００の負荷を軽減することができる。
【０２０９】
また第二の実施例を別な視点で見た場合、アーカイブストレージシステム１０００に対する機能拡張が不要（またはオブジェクトＩＤの生成に必要な値のみアーカイブストレージシステムにて管理することはしても良い）であり、またホスト計算機１１００にフィールド管理情報７２００を一時記憶するような特別な領域が不要なため、柔軟な運用が可能となる。
【図面の簡単な説明】
【０２１０】
【図１】本発明の第一の実施例の計算機システムの構成を示すブロック図である。
【図２】本発明の第一の実施例のオブジェクト及びフィールド管理情報の構成を示す説明図である。
【図３】本発明の第一の実施例のフィールド更新履歴情報の構成を示す説明図である。
【図４Ａ】本発明の第一の実施例のオブジェクト作成要求処理を説明するフローチャートである。
【図４Ｂ】本発明の第一の実施例のオブジェクト作成処理を説明するフローチャートである。
【図５Ａ】本発明の第一の実施例のフィールド作成要求処理を説明するフローチャートである。
【図５Ｂ】本発明の第一の実施例のフィールド作成処理を説明するフローチャートである。
【図６Ａ】本発明の第一の実施例のコミット要求処理を説明するフローチャートである。
【図６Ｂ】本発明の第一の実施例のコミット処理を説明するフローチャートである。
【図７Ａ】本発明の第一の実施例のオブジェクト編集要求処理を説明するフローチャートである。
【図７Ｂ】本発明の第一の実施例のオブジェクト編集処理を説明するフローチャートである。
【図８Ａ】本発明の第一の実施例のフィールド編集要求処理を説明するフローチャートである。
【図８Ｂ】本発明の第一の実施例のフィールド編集処理を説明するフローチャートである。
【図９Ａ】本発明の第一の実施例のフィールド削除要求処理を説明するフローチャートである。
【図９Ｂ】本発明の第一の実施例のフィールド削除処理を説明するフローチャートである。
【図１０Ａ】本発明の第一の実施例のオブジェクト作成・編集終了要求処理を説明するフローチャートである。
【図１０Ｂ】本発明の第一の実施例のオブジェクト作成・編集終了処理を説明するフローチャートである。
【図１１Ａ】本発明の第一の実施例のオブジェクト削除要求処理を説明するフローチャートである。
【図１１Ｂ】本発明の第一の実施例のオブジェクト削除処理を説明するフローチャートである。
【図１２Ａ】本発明の第一の実施例の保存期間設定要求処理を説明するフローチャートである。
【図１２Ｂ】本発明の第一の実施例の保存期間設定処理を説明するフローチャートである。
【図１３】本発明の第一の実施例のオブジェクトからファイルへのフィールドマッピング処理を説明するフローチャートである。
【図１４】本発明の第一の実施例のオブジェクトからファイルへのメタデータマッピング処理を説明するフローチャートである。
【図１５】本発明の第一の実施例のファイルからオブジェクトへのマッピング処理を説明するフローチャートである。
【図１６】本発明の第一の実施例におけるファイルツリーの状態の一例の説明図である。
【図１７】本発明の第一の実施例のフィールドリストファイルの構成を示す説明図である。
【図１８】本発明の第二の実施例の計算機システムの構成を示すブロック図である。
【図１９】本発明の第三の実施例の計算機システムの構成を示すブロック図である。
【符号の説明】
【０２１１】
１０００  アーカイブストレージシステム
１１００  ホスト計算機
２０００  内部ノード装置
３０００  ストレージ装置
２２０１  アーカイブ制御プログラム
４０００  メタデータ
５０００  対応管理テーブル
７１００  オブジェクトアーカイブライブラリ
７２００  オブジェクトアーカイブ制御プログラム
７３００  フィールド管理情報
７４００  フィールド更新履歴情報
【図１】
2010039966.tif 000003
【図２】
2010039966.tif 000004
【図３】
2010039966.tif 000005
【図４Ａ】
2010039966.tif 000006
【図４Ｂ】
2010039966.tif 000007
【図５Ａ】
2010039966.tif 000008
【図５Ｂ】
2010039966.tif 000009
【図６Ａ】
2010039966.tif 000010
【図６Ｂ】
2010039966.tif 000011
【図７Ａ】
2010039966.tif 000012
【図７Ｂ】
2010039966.tif 000013
【図８Ａ】
2010039966.tif 000014
【図８Ｂ】
2010039966.tif 000015
【図９Ａ】
2010039966.tif 000016
【図９Ｂ】
2010039966.tif 000017
【図１０Ａ】
2010039966.tif 000018
【図１０Ｂ】
2010039966.tif 000019
【図１１Ａ】
2010039966.tif 000020
【図１１Ｂ】
2010039966.tif 000021
【図１２Ａ】
2010039966.tif 000022
【図１２Ｂ】
2010039966.tif 000023
【図１３】
2010039966.tif 000024
【図１４】
2010039966.tif 000025
【図１５】
2010039966.tif 000026
【図１６】
2010039966.tif 000027
【図１７】
2010039966.tif 000028
【図１８】
2010039966.tif 000029
【図１９】
2010039966.tif 000030