(57)【要約】【課題】アプリケーションプログラムやユーザファイルのデータ形式を変更することなく、かつチェックサムを付加したディスク装置へデータを移行することなく、データの正当性を検証することができるデータ検証装置を提供する。【解決手段】ユーザファイルへのデータの書き出し時において、チェックサム作成手段が、ＯＳの階層で、書出しデータに基づいてファイルブロックごとにチェックサムを作成し、そのチェックサムをチェックサム格納ファイルに書き出す。ユーザファイルからのデータ読み出し時は、チェックサム検証手段が、入力データを含むファイルブロックごとのチェックサムをチェックサム格納ファイルから読み出し、読み出したチェックサムと読出しデータとの整合性を比較照合して、ファイルブロックごとのデータの正当性を検証する。なお、ファイルブロックは、ファイル管理表のファイル物理アドレスや入力データ長に基づいて決定される。【選択図】図１
2010191594.tif 000002
【特許請求の範囲】
【請求項１】
ユーザファイルに記録されているデータの正当性を検証するデータ検証装置であって、
ＯＳ階層による入出力制御処理おいて、前記ユーザファイルへ書き出す書出しデータに基づいて作成されたチェックサムと前記ユーザファイルから読み出す読出しデータとの整合性に基づいて前記データの正当性を検証することを特徴とするデータ検証装置。
【請求項２】
ユーザファイルに記録されているデータの正当性を検証するデータ検証装置であって、
前記ユーザファイルへのデータの書き出し時に、ＯＳ階層で、書出しデータに基づいてファイルブロックごとにチェックサムを作成するチェックサム作成手段と、
前記チェックサム作成手段が作成したチェックサムをファイルブロックごとに格納するチェックサム格納ファイルと、
前記データの読の出し時に、前記チェックサム格納ファイルから読み出したファイルブロックごとのチェックサムと読出しデータとの整合性をファイルブロックごとに比較検証するチェックサム検証手段と
を備えることを特徴とするデータ検証装置。
【請求項３】
アプリケーションプログラムからのレコード単位のデータ入出力要求を前記ユーザファイルのブロック単位の入出力要求に変換するアクセスメソッドと、
前記アクセスメソッドからのブロック単位の入出力要求を物理的な単位の入出力処理として実施する入出力制御手段と、
前記チェックサム格納ファイルの制御情報を作成・参照・更新するチェックサム格納ファイル制御手段とを
さらに備えることを特徴とする請求項２に記載のデータ検証装置。
【請求項４】
前記ユーザファイルの管理情報を格納するファイル管理表と、
前記チェックサム格納ファイル制御手段の制御情報を格納するチェックサム格納ファイル管理表とを
さらに備えることを特徴とする請求項３に記載のデータ検証装置。
【請求項５】
前記ファイル管理表は、前記ユーザファイルごとにファイル管理エントリを備え、このユーザファイル管理エントリは、ユーザファイル名、ファイルブロック長、および、前記ユーザファイルの物理的な開始位置であるファイル物理アドレスを含んでいることを特徴とする請求項４に記載のデータ検証装置。
【請求項６】
チェックサム格納ファイル管理表は、前記チェックサム格納ファイルごとにチェックサム格納ファイル管理エントリを備え、このチェックサム格納ファイル管理エントリは、ユーザファイル名、チェックサム格納ファイル名、前記チェックサム格納ファイルの物理歴な開始位置であるチェックサム格納ファイル物理アドレス、および、前記ユーザファイルの各ブロックがチェックサム格納ファイル中にチェックサムを保有しているかを表すチェックサム管理フラグを含んでいることを特徴とする請求項４に記載のデータ検証装置。
【請求項７】
ユーザファイルに記録されているデータの正当性を検証するデータの正当性検証方法であって、
ＯＳ階層による入出力制御処理おいて、前記ユーザファイルへ書き出す書出しデータに基づいて作成されたチェックサムと前記ユーザファイルから読み出す読出しデータとの整合性に基づいて前記データの正当性を検証することを特徴とするデータの正当性検証方法。
【請求項８】
ユーザファイルに記録されているデータの正当性を検証するデータの正当性検証方法であって、
前記ユーザファイルへのデータの書き出し時に、ＯＳ階層で、書出しデータに基づいてファイルブロックごとにチェックサムを生成する第１のステップと、
前記第１のステップで生成された前記チェックサムを、ファイルブロックごとにチェックサム格納ファイルへ格納する第２のステップと、
前記データの読み出し時に、前記チェックサム格納ファイルからファイルブロックごとのチェックサムを読み出す第３のステップと、
読出しデータと前記チェックサム格納用ファイルから読み出したチェックサムとの整合性を前記ファイルブロックごとに比較検証する第４のステップと
を含むことを特徴とするデータの正当性検証方法。
【請求項９】
前記ファイルブロックは、前記ユーザファイルの物理的な開始位置であるファイル物理アドレス、チェックサム格納ファイルの物理的な開始位置であるチェックサム格納ファイル物理アドレス、および入力データ長に基づいて決定されることを特徴とする請求項８に記載のデータの正当性検証方法。
【請求項１０】
請求項７乃至９の何れか１項に記載のデータの正当性検証方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザファイルやデータ記憶装置等へ書込むデータの正当性を検証するデータ検証装置、データの正当性検証方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、ユーザファイルのデータ検証方法に関する技術については種々報告されている。例えば、データ記憶装置へのデータ書込み時において、そのデータ記憶装置への書込みデータと不揮発性メモリからの読出しデータとの排他的論理和をとり、その結果を再度不揮発性メモリへ書込む動作を全書込みデータについて繰り返し行わせることにより、不揮発性メモリにパリティを貯蔵してデータ検証を行う技術が開示されている（例えば、特許文献１参照）。これによって、パリティによりデータの信頼性を上げながら高速にデータの書込み処理を行うことができる。
【０００３】
また、あらかじめ計算しておいたチェックサムデータとＲＯＭに格納されているチェックサムデータとをシステム動作中において随時比較し、両者が等しくなければ直ちにシステム異常を報知すると共にシステム動作を停止させる技術も開示されている（例えば、特許文献２参照）。この技術によれば、プログラムエリアの消去又は破壊等によるシステム異常を、システム動作中においてオペレータに直ちに知らせることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３５１７６４号公報
【特許文献２】特開平８−２８９０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ディスク上にファイルとして格納されたデータの正当性を検証するためには、ファイルを使用する個々のアプリケーションプログラムが、チェックサムの生成、チェックサムのファイルブロックへの格納、および読出し時のチェックサムを利用した正当性のチェックなどを実施する機能を有している必要がある。すなわち、データの正当性を検証できるか否かは、個々のアプリケーションプログラムが持つ機能に依存しているため、アプリケーションプログラムによってはデータの正当性を検証することができない場合もある。
【０００６】
また、アプリケーションプログラムがデータの正当性を検証する機能を有している場合でも、当該機能の利用の有無でファイルブロックの形式が異なるケースがある。このようなケースでは、システム運用開始後に検証機能を有効化させる場合は、ファイル内の全ブロックを、利用するファイルブロックの形式に変換しなくてはならない。そのため、ファイルブロックの形式を変換するたびにシステムの運用を停止しなければ、データの正当性を検証する機能を有効化することができないので、ユーザの使い勝手が著しく低下する。
【０００７】
また、前記特許文献１の技術においては、ディスク装置内にデータ検証機能を設けてユーザファイルのデータ検証を行っているので高速にデータ検証を行うことができるが、このデータ検証方法は既存のディスク装置では実現することができない。言い換えると、特許文献１の技術によるデータ検証方法を実現させるためには、チェックサム機構を付加したディスク装置を新規に導入してファイルの再構築を行わなければならない。さらに、チェックサム付加対象となるデータを、チェックサム機能を備えたディスク装置へ転送しなければならない。
【０００８】
また、前記特許文献２の技術においては、チェックサム付加対象となるデータがＲＯＭに格納されているため、新規にチェックサム付加対象となるデータを追加することができない。言い換えると、ＲＯＭに格納されているデータのみはデータ検証を行うことができるが、新たに追加されたデータについてはデータ検証を行うことができない。
【０００９】
本発明はこのような問題点に鑑みてなされたものであり、アプリケーションプログラムやユーザファイルのデータ形式を変更することなく、かつチェックサムを付加したディスク装置へデータを移行することなく、データの正当性を検証することができるデータ検証装置、データの正当性検証方法、及びその方法をコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係るデータ検証装置は、ユーザファイルに記録されているデータの正当性を検証するデータ検証装置であって、ＯＳ階層による入出力制御処理おいて、ユーザファイルへ書き出す書出しデータに基づいて作成されたチェックサムとユーザファイルから読み出す読出しデータとの整合性に基づいてデータの正当性を検証するように構成されている。
【００１１】
本発明に係るデータ検証装置の好適な実施形態は、ユーザファイルに記録されているデータの正当性を検証するデータ検証装置であって、ユーザファイルへのデータの書き出し時に、ＯＳ階層で、書出しデータに基づいてファイルブロックごとにチェックサムを作成するチェックサム作成手段と、チェックサム作成手段が作成したチェックサムをファイルブロックごとに格納するチェックサム格納ファイルと、データの読の出し時に、チェックサム格納ファイルから読み出したファイルブロックごとのチェックサムと読出しデータとの整合性をファイルブロックごとに比較検証するチェックサム検証手段とを備える構成を採っている。
【００１２】
また、本発明はデータの正当性検証方法を提供することもできる。すなわち、ユーザファイルに記録されているデータの正当性を検証するデータの正当性検証方法であって、ＯＳ階層による入出力制御処理おいて、ユーザファイルへ書き出す書出しデータに基づいて作成されたチェックサムとユーザファイルから読み出す読出しデータとの整合性に基づいてデータの正当性を検証するデータの正当性検証方法を提供することもできる。
【００１３】
本発明によるデータの正当性検証方法の具体的な手順は、ユーザファイルに記録されているデータの正当性を検証するデータの正当性検証方法であって、ユーザファイルへのデータの書き出し時に、ＯＳ階層で、書出しデータに基づいてファイルブロックごとにチェックサムを生成する第１のステップと、第１のステップで生成された前記チェックサムを、ファイルブロックごとにチェックサム格納ファイルへ格納する第２のステップと、データの読み出し時に、チェックサム格納ファイルからファイルブロックごとのチェックサムを読み出す第３のステップと、読出しデータとチェックサム格納用ファイルから読み出したチェックサムとの整合性をファイルブロックごとに比較検証する第４のステップとを含むデータの正当性検証方法を提供することもできる。
【００１４】
また、本発明は、前記各発明のデータの正当性検証方法をコンピュータに実行させるプログラムを提供することもできる。
【発明の効果】
【００１５】
本発明のデータ検証装置によれば、データを検証するための処理がＯＳ階層の入出力制御によって行われ、かつ、検証に必要なデータは、ユーザファイルとは別のチェックサム格納ファイルに格納されている。そのため、アプリケーションプログラムおよびユーザファイルの形式を変更することなく、ユーザファイルのデータを検証することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るデータ検証装置の構成を示すブロック図である。
【図２】図１に示すデータ検証装置によるデータの読み出し処理の流れを示すフローチャートである。
【図３】図１に示すデータ検証装置によるデータの書き出し処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明のデータ検証装置は、ユーザファイルへのデータの書き出し時に、ＯＳの階層で、書出しデータを元にファイルブロックごとにチェックサムを作成し、そのチェックサムをチェックサム格納用ファイルに書き出す。また、ユーザファイルからのデータ読み出し時は、入力データを含むファイルブロックごとのチェックサムをチェックサム格納用ファイルから読み出し、このチェックサムと読出しデータとの整合性を比較照合して、ファイルブロックごとのデータの正当性を検証している。このようにすることにより、アプリケーションプログラムおよびユーザファイルのデータ形式を変更することなく、データの正当性を検証することができる。
【００１８】
すなわち、ＯＳ階層において、ユーザファイルのデータに対するチェックサムを生成する。そして、ユーザファイルとは別に存在する、ユーザファイルのデータに対するチェックサムを格納するチェックサム格納用ファイルへ、先に生成したチェックサムを入力する。次に、ユーザファイルのデータとチェックサム格納用ファイルに存在するチェックサムとを比較して両者の整合性を検証する。このようにすることにより、アプリケーションプログラムやユーザファイルのデータ形式を変更することなくデータの正当性を検証することができる。
【００１９】
以下、図面を参照しながら、本発明に係るデータ検証装置の実施形態について詳細に説明する。図１は、本発明の実施形態に係るデータ検証装置の構成を示すブロック図である。この図は、データ検証機構を備えるホストコンピュータ１とユーザファイル３０とチェックサム格納ファイル４０とによって構成されるデータ検証装置を示している。
【００２０】
ホストコンピュータ１は、各種のアプリケーションを実行するアプリケーションプログラム１１、アプリケーションプログラムからのレコード単位のデータ入出力要求をユーザファイルのブロック単位の入出力要求に変換するアクセスメソッド１２、アクセスメソッド１２からのブロック単位の入出力要求を物理的な単位の入出力処理として実施する入出力制御手段１３、入出力制御手段１３から呼び出されてデータのチェックサムを作成するチェックサム作成手段１４、入出力制御手段１３から呼び出されてデータとチェックサムの整合性を検証するチェックサム検証手段１５、入出力制御手段１３から呼び出されてチェックサム格納ファイルの制御情報を作成・参照・更新するチェックサム格納ファイル制御手段１６、ユーザファイルの管理情報を格納するファイル管理表２１、チェックサム格納ファイル制御手段１６の制御情報を格納するチェックサム格納ファイル管理表２２を備えて構成される。
【００２１】
さらに、詳しく説明すると、ファイル管理表２１は、ユーザファイルごとにファイル管理エントリ２１０を持ち、このユーザファイル管理エントリ２１０には、ユーザファイル名２１１、ファイルブロック長２１２、ユーザファイルの物理的な開始位置であるファイル物理アドレス２１３を含んでいる。
【００２２】
チェックサム格納ファイル管理表２２は、チェックサム格納ファイルごとにチェックサム格納ファイル管理エントリ２２０を持ち、このチェックサム格納ファイル管理エントリ２２０には、ユーザファイル名２２１、チェックサム格納ファイル名２２２、チェックサム格納ファイルの物理的な開始位置であるチェックサム格納ファイル物理アドレス２２３、ユーザファイルの各ブロックがチェックサム格納ファイル中にチェックサムを保有しているかを表すチェックサム管理フラグ２２４を含んでいる。
【００２３】
また、チェックサム格納ファイル４０の各ブロックは、当該ブロック自身のチェックサムであるチェックサム４０１と、ユーザファイルの各ブロックに対応するチェックサムＣＳ４０２を含んでいる。なお、ユーザファイル３０は、ブロック１〜ブロックｎのｎ個のブロックによって構成されている。
【００２４】
次に、フローチャートの流れにしたがって、図１に示すデータ検証装置の動作の流れを説明する。図２は、図１に示すデータ検証装置によるデータの読み出し処理の流れを示すフローチャートである。また、図３は、図１に示すデータ検証装置によるデータの書き出し処理の流れを示すフローチャートである。したがって、図１を参照しながら、図２及び図３のフローチャートを説明する。
【００２５】
まず、図１において、アプリケーションプログラム１１の要求にしたがって、アクセスメソッド１２が入出力制御手段１３に対して入力（ＲＥＡＤ）要求を行った時に、入出力制御手段１３が読出し処理（ＲＥＡＤ処理）を行う場合の処理の流れについて、図２のフローチャートを用いて説明する。
【００２６】
図２において、入出力制御手段１３は、ＲＥＡＤ処理を開始すると（ステップＦ２００）、アクセス対象のファイルブロック番号を元に、ファイル管理表２１に存在する処理対象ユーザファイルのファイル管理エントリ２１０のファイル物理アドレス２１３を参照して、ユーザファイルブロック番号に対応する物理アドレス（つまり、読み込み開始物理アドレス）を取得する（ステップＦ２０１）。次に、入出力制御手段１３は、処理ブロック数とファイル管理エントリ２１０のファイルブロック長２１２から入力データ長を取得する（ステップＦ２０２）。
【００２７】
次に、入出力制御手段１３は、取得されたユーザファイルブロックの物理アドレスから、入力データ長分のデータをユーザファイル３０から読み出す（ステップＦ２０３）。そして、入出力制御手段１３が、チェックサム格納ファイル制御手段１６にチェックサム格納ファイルの有無を問い合わせると、チェックサム格納ファイル制御手段１６は、チェックサム格納ファイル管理表２２に該当するユーザファイル名２２１を持つチェックサム格納ファイル管理エントリ２２０を検索して（ステップＦ２０４）、該当するエントリがあれば、チェックサム格納ファイル有りとして入出力制御手段１３へ回答する（ステップＦ２０４で有）。
【００２８】
すなわち、チェックサム格納ファイル管理エントリ２２０にチェックサム格納ファイルが有る場合には（ステップＦ２０４で有）、入出力制御手段１３は、ファイルブロック番号からチェックサムブロック番号を取得し（ステップＦ２０５）、チェックサムがチェックサム格納ファイル４０中に存在するか否かをチェックサム管理フラグ２２４から確認する（ステップＦ２０６）。ここで、チェックサム格納ファイル４０中にチェックサムが存在する場合には（ステップＦ２０６で有）、入出力制御手段１３は、チェックサム格納ファイルアドレス２２３を元にチェックサム格納ファイル４０から該当するブロックを読み出す（ステップＦ２０７）。
【００２９】
そして、入出力制御手段１３は、ユーザファイル３０から読み出したユーザファイルデータとチェックサム格納ファイル４０から読み出したチェックサム４０２（例えば、ＣＳ１）について、ユーザファイルデータのブロックごとにチェックサム検証手段１５を用いて整合性の確認を行い（ステップＦ２０８）、両者の整合性がＯＫであれば（ステップＦ２０８でＯＫ）、ユーザファイルデータをアクセスメソッド１２に返却する（ステップＦ２０９）。一方、整合性確認の結果がＮＧであれば（ステップＦ２０８でＮＧ）、アクセスメソッド１２にエラー情報を返却する（ステップＦ２１１）。
【００３０】
また、ステップＦ２０６でチェックサムがチェックサム格納ファイル４０に存在しない場合には（ステップＦ２０６で無）、入出力制御手段１３は、ユーザファイルデータをアクセスメソッド１２に返却した後（ステップＦ２２１）、チェックサム作成手段１４を用いてユーザファイルデータのチェックサムを作成する（ステップＦ２２２）。
【００３１】
次に、入出力制御手段１３は、チェックサム格納管理表２１のチェックサム格納ファイルアドレス２２３を元にチェックサム格納ファイル４０から該当するブロックを読み出した後、先に作成したチェックサムで当該ブロックを更新し、チェックサム格納ファイル４０へ書き戻す（ステップＦ２２３）。そして、入出力制御手段１３は、チェックサム格納ファイル４０に当該ユーザファイルブロックに対応するチェックサムが存在するように、チェックサム管理フラグ２２４を更新する（ステップＦ２２４）。
【００３２】
また、ステップＦ２０４で、チェックサム格納ファイル管理エントリ２２０にチェックサム格納ファイル４０が存在しない場合には(ステップＦ２０４で無)、入出力制御手段１３は、ユーザファイルデータをアクセスメソッド１２に返却した後（ステップＦ２３１）、当該ユーザファイルに対応するチェックサム格納ファイル管理エントリを作成し（ステップＦ２３２）、前述のステップＦ２２２以降の処理を行う。
【００３３】
次に、図１において、アプリケーションプログラム１１の要求にしたがって、アクセスメソッド１２が入出力制御手段１３に対して出力（ＷＲＩＴＥ）要求を行った時に、入出力制御手段１３が書き出し処理（ＷＲＩＴＥ処理）を行う場合の処理の流れについて、図３のフローチャートを用いて説明する。
【００３４】
図３において、入出力制御手段１３は、ＷＲＩＴＥ処理を開始すると（ステップＦ３００）、アクセス対象のファイルブロック番号を元に、ファイル管理表２１に存在する処理対象ユーザファイルのファイル管理エントリ２１０のファイル物理アドレス２１２を参照して、ユーザファイルブロックの物理アドレス（つまり、書込み開始物理アドレス）を取得する（ステップＦ３０１）。次に、入出力制御手段１３は、処理ブロック数とファイル管理エントリ２１０のファイルブロック長２１２から出力データ長を取得する（ステップＦ３０２）。
【００３５】
そして、入出力制御手段１３が、チェックサム格納ファイル制御手段１６にチェックサム格納ファイルの有無を問い合わせると、チェックサム格納ファイル制御手段１６は、チェックサム格納ファイル管理表２２に該当するユーザファイル名２２１を持つチェックサム格納ファイル管理エントリ２２０を検索して、該当するチェックサム格納ファイルがあるか否かを判定する（ステップＳ３０３）。
【００３６】
ここで、チェックサム格納ファイル管理エントリ２２０に該当するチェックサム格納ファイルがあれば（ステップＦ３０３で有）、チェックサム格納ファイル制御手段１６から入出力制御手段１３へ、チェックサム格納ファイル有りとして回答する。一方、チェックサム格納ファイル管理エントリ２２０に該当するチェックサム格納ファイルが無い場合には（ステップＦ３０３で無）、チェックサム格納ファイル管理エントリ２２０を作成する（ステップＦ３０４）。次に、入出力制御手段１３は、ユーザファイルブロック番号を元に、対応するチェックサムを含むチェックサムブロック番号を求める（ステップＦ３０５）。
【００３７】
さらに、入出力制御手段１３は、チェックサム作成手段１４を用いて、ユーザファイルデータのチェックサムを作成する（ステップＦ３０６）。そして、既に取得済みのユーザファイルブロックの物理アドレスから、出力データ長分のデータをユーザファイルへ書き出す（ステップＦ３０７）。さらに、入出力制御手段１３は、チェックサム格納ファイル４０からチェックサムブロック４０２を読み出し、ステップＦ３０６で作成したチェックサムで更新した後に、チェックサムブロック４０２をチェックサム格納ファイル４０に書き戻す（ステップＳ３０８）。そして、チェックサム管理フラグ２２４を該当チェックサムが存在するように更新して（ステップＦ３０９）、ＷＲＩＴＥ処理を終了する(ステップ３１０)。
【００３８】
以上、本発明のデータ検証装置について、ＲＥＡＤ処理とＷＲＩＴＥ処理の２つの処理の実施形態について具体的に説明したが、本発明は前記実施形態の処理内容に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【産業上の利用可能性】
【００３９】
本発明によれば、データ検証機能を独自に持たないアプリケーションプログラム、または、データ検証機能を有効にするためには、既存のユーザデータファイルを、アプリケーションプログラムが定義する形式に変換することが必要なアプリケーションプログラムを実行するホストコンピュータにおいて、ユーザファイルデータの正当性を検証する場合に有効に利用することができる。
【符号の説明】
【００４０】
１  ホストコンピュータ
１１アプリケーションプログラム
１２  アクセスメソッド
１３  入出力制御手段
１４  チェックサム作成手段
１５  チェックサム検証手段
１６  チェックサム格納ファイル制御手段
２１  ファイル管理表
２２  チェックサム格納ファイル管理表
３０  ユーザファイル
４０  チェックサム格納ファイル
２１０  ファイル管理エントリ
２１１  ユーザファイル名
２１２  ファイルブロック長
２１３  ファイル物理アドレス
２２０  チェックサム格納ファイル管理エントリ
２２１  ユーザファイル名
２２２  チェックサム格納ファイル名
２２３  チェックサム格納ファイル物理アドレス
２２４  チェックサム管理フラグ
４０１  チェックサム
４０２  チェックサムＣＳ
【図１】
2010191594.tif 000003
【図２】
2010191594.tif 000004
【図３】
2010191594.tif 000005