(57)【要約】【課題】利便性の高いデータの比較処理を実現する。【解決手段】実施の一形態の検証装置１４は、第１のデータ列とそのデータ列を置き換えるための第２のデータ列とを定めた比較規則を保持する比較規則保持部２４と、原本レコードと被験レコードとが一致するか否かを判定し、これらが不一致であっても、原本レコードに第１のデータ列が含まれれば、それを第２のデータ列へ置換した場合に原本レコードと前記被験レコードとが一致するとき、原本レコードと被験レコードとが一致することとする比較判定部３２とを備える。【選択図】図２
2011248799.tif 000002
【特許請求の範囲】
【請求項１】
原本レコードの保持部と、
被験レコードの保持部と、
第１のデータ列と、その第１のデータ列を置き換えるための第２のデータ列とを定めた比較規則の保持部と、
前記原本レコードと前記被験レコードとが一致するか否かを判定し、これらが不一致であっても、前記原本レコードに前記第１のデータ列が含まれれば、それを前記第２のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、前記原本レコードと前記被験レコードとが一致することとする比較判定部と、
前記比較判定部による判定結果を所定の記憶領域へ記録する比較結果記録部と、
を備えることを特徴とする検証装置。
【請求項２】
前記比較規則は、前記第２のデータ列として、前記第１のデータ列と同じ意味内容を示すデータ列を定めたものであることを特徴とする請求項１に記載の検証装置。
【請求項３】
前記比較規則は、スキップすべき被験レコードに関する条件をさらに定めたものであり、
前記比較判定部は、原本レコードとの比較対象である被験レコードが前記条件を充足する場合、これらの比較をスキップして、当該原本レコードと次の被験レコードとを比較することを特徴とする請求項１または２に記載の検証装置。
【請求項４】
前記比較判定部は、前記原本レコードの第１のデータ列を第２のデータ列へ置換した場合、その置換箇所を特定し、置換後も前記原本レコードと前記被験レコードとの不一致が残存する場合、残存する不一致箇所を特定し、
前記比較結果記録部は、前記比較判定部により前記原本レコードと前記被験レコードとが不一致であると判定された場合、前記置換箇所と前記残存する不一致箇所とを識別可能に記録することを特徴とする請求項１から３のいずれかに記載の検証装置。
【請求項５】
前記比較結果記録部は、前記原本レコードと前記被験レコードとが不一致であるものの、前記原本レコードの前記第１のデータ列を前記第２のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、詳細確認用のログに対して前記原本レコードと前記被験レコードとの不一致が検出された旨を記録する一方で、総括的な確認用のログに対して前記原本レコードと前記被験レコードとが一致した旨を記録することを特徴とする請求項１から４のいずれかに記載の検証装置。
【請求項６】
前記原本レコードおよび前記被験レコードは、異なる時点では異なる内容が設定されうるものであり、
前記比較判定部は、複数の異なる時点において前記原本レコードと前記被験レコードとが一致するか否かを判定し、
前記比較結果記録部は、前記原本レコードと前記被験レコードとの一致状況を時系列で記録することを特徴とする請求項１から５のいずれかに記載の検証装置。
【請求項７】
検証装置に、
第１のデータ列と、その第１のデータ列を置き換えるための第２のデータ列とを定めた比較規則を参照して、原本レコードと被験レコードとが一致するか否かを判定し、前記原本レコードと前記被験レコードとが不一致であっても、前記原本レコードに前記第１のデータ列が含まれれば、それを前記第２のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、前記原本レコードと前記被験レコードとが一致することとする機能と、
前記原本レコードと前記被験レコードとが一致するか否かの判定結果を所定の記憶領域へ記録する機能と、
を実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、特に、あるデータと別のデータが一致するか否かを検証するための技術に関する。
【背景技術】
【０００２】
メインフレーム上で動作していた既存のアプリケーションを、オープン系のサーバ上で動作するように移行するポーティングが行われることがある。また、メインフレーム上で既存のアプリケーションが出力したデータと、オープン系のサーバ上で移行後のアプリケーションが出力したデータを照合することにより、ポーティングの成否が確認されることもある。
【０００３】
本出願人は、以下の特許文献１において、２つのファイルの差分抽出に関し、作成時間が短く、作成されるファイルのサイズが小さい差分ファイル作成技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１７３７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーションのポーティングが正常に行われた場合でも、アプリケーションの動作環境の変化に伴い、旧環境でのアプリケーションの出力データと、新環境でのアプリケーションの出力データとは完全には一致しないことがある。また、ポーティングに際し、アプリケーションが改変される場合もあり、新旧環境でのアプリケーションの出力データに差異を生じることもある。
【０００６】
このように、比較対照となるデータ間にはユーザにとって許容すべき差異が含まれることがあり、そのような差異を加味した上で一致・不一致を判定することにより、ユーザにとって望ましい比較結果を得られると本発明者は考えた。
【０００７】
本発明は、本発明者の上記課題認識にもとづきなされたものであり、その主たる目的は、利便性の高いデータの比較処理を実現するための技術を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様の検証装置は、原本レコードの保持部と、被験レコードの保持部と、第１のデータ列と、その第１のデータ列を置き換えるための第２のデータ列とを定めた比較規則の保持部と、原本レコードと被験レコードとが一致するか否かを判定し、これらが不一致であっても、原本レコードに第１のデータ列が含まれれば、それを第２のデータ列へ置換した場合に原本レコードと被験レコードとが一致するとき、原本レコードと被験レコードとが一致することとする比較判定部と、比較判定部による判定結果を所定の記憶領域へ記録する比較結果記録部と、を備える。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、利便性の高いデータの比較処理を実現できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態の検証システムの構成を示す図である。
【図２】図１の検証装置の機能構成を示すブロック図である。
【図３】原本ファイルの一例を示す図である。
【図４】被験ファイルの一例を示す図である。
【図５】比較規則の一例を示す図である。
【図６】アンマッチリストを示す図である。
【図７】件数リストを示す図である。
【図８】差分リストを示す図である。
【図９】差分リストを示す図である。
【図１０】推移リストを示す図である。
【図１１】推移サマリを示す図である。
【図１２】検証装置の動作を示すフローチャートである。
【図１３】図１２のＳ１４の比較処理を詳細に示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の実施の形態を説明する前にまず概要を説明する。
同じ処理ロジックが実装された２つのアプリケーションに同じ入力データを与えた場合、通常、それらの出力データは同じになる。しかし、それぞれのアプリケーションの動作環境（例えば、ハードウェア環境・ソフトウェア環境・動作日時等）が異なれば、出力データに差異を生ずることがある。また、ある環境で動作しているアプリケーションを別の環境に移植する場合は、その移植に際しビジネス側の要請により処理ロジックが一部変更される場合もあり、やはり出力データに差異を生ずることがある。
【００１３】
異なる環境で生成された第１ファイルと第２ファイルとを素朴に比較する場合、上記のような差異が検出されて不一致と判定されることがある。しかし、形式的には不一致であっても、ユーザにとって不一致箇所の意味内容が一致するものであれば、一致と見なした方がユーザにとって都合がいいこともある。
【００１４】
例えば、第１ファイルが作成された環境における２バイトの文字列「ＡＡ」が、第２ファイルが作成された環境における３バイトの文字列「ＢＢＢ」に相当する場合、形式上不一致であっても、判定結果としては一致することとした方がユーザにとって都合がよい。別の例として、企業Ａ（本社は東京）の人事アプリケーションａを企業Ｂ（本社は大阪）の人事アプリケーションｂとして移植することを考える。この場合、人事アプリケーションａの出力データ中の本社「東京」と、人事アプリケーションｂの出力データ中の本社「大阪」とはユーザにとっては同じ意味を表しており、形式上不一致であっても、判定結果としては一致することとしたほうがよい。
【００１５】
本実施の形態では、第１ファイルと第２ファイルとの間に形式上不一致が存在しても、その不一致部分の意味内容が一致する場合、第１ファイルと第２ファイルとが一致するものと判定する検証装置を提案する。後述するように、この検証装置は、ユーザにより定められた比較規則にしたがって２つのファイルのレコード比較を実行する。ユーザはこの比較規則を調整することにより検証装置における比較態様を柔軟に調整できる。また、この検証装置は、比較処理の結果を各種ログとして出力することにより、ユーザの意思決定を支援する。以下、このような構成を説明する。
【００１６】
図１は、実施の形態の検証システムの構成を示す。検証システム１００は、メインフレーム１０と、オープン系サーバ１２と、検証装置１４と、ユーザ端末１６とを備える。図１の各装置は、ＬＡＮ・ＷＡＮ・インターネット等、公知の通信手段を含む通信網１８を介して接続される。
【００１７】
メインフレーム１０は、アプリケーション（以下、「ＡＰ」とも呼ぶ。）のポーティング前の実行環境を提供する汎用大型コンピュータである。このＡＰは、所定のビジネスロジックを実行して、その処理結果を記録したファイルを生成する。オープン系サーバ１２は、ＡＰのポーティング先であり、ポーティング後の実行環境を提供するサーバ装置であり、例えばＵＮＩＸ（登録商標）サーバである。
【００１８】
検証装置１４は、メインフレーム１０においてＡＰが生成したファイルと、オープン系サーバ１２においてＡＰが生成したファイルとを比較してこれらが一致するか否かを検証する情報処理装置である。検証装置１４の詳細な構成は後述する。ユーザ端末１６は、ＡＰのポーティングを担当するユーザにより操作される情報処理装置である。ユーザ端末１６は、ユーザが定めた規則であり、検証装置１４におけるファイル比較処理の態様を定めた規則情報（以下、「比較規則」とも呼ぶ。）を検証装置１４へ送信する。
【００１９】
検証システム１００では、ポーティングの成否を確認するために、メインフレーム１０のＡＰとオープン系サーバ１２のＡＰとの双方に同じ入力データを与える。したがって、ポーティングに成功している場合は、メインフレーム１０においてＡＰが生成したファイルのデータと、オープン系サーバ１２でＡＰが生成したファイルのデータとは、形式上の不一致が存在するか否かは別として、少なくとも意味内容が同一となる。なお、メインフレーム１０とオープン系サーバ１２とのそれぞれにおいてファイルが日々生成され、検証装置１４において両装置で生成されたファイルが日々突合される。
【００２０】
本実施の形態では、メインフレーム１０においてＡＰが生成したファイルを、原本としてのファイルの意味で「原本ファイル」と称する。また、オープン系サーバ１２でＡＰが生成したファイルを、原本ファイルと一致するか否かを検証すべきファイルの意味で「被験ファイル」と称する。原本ファイルと被験ファイルのそれぞれには、ＡＰの処理結果である１以上のレコード（以下、「原本レコード」、「被験レコード」とも呼ぶ。）が記録される。検証装置１４は、原本ファイルと被験ファイルとをレコード単位に比較して、一致するレコード数や不一致のレコード数を集計する。
【００２１】
図２は、図１の検証装置１４の機能構成を示すブロック図である。検証装置１４は、各種データが格納される記憶領域として、原本レコード保持部２０と、被験レコード保持部２２と、比較規則保持部２４と、検証結果保持部２６とを備える。また、各種データ処理を実行するデータ処理部として、ファイル取得部２８と、比較規則取得部３０と、比較判定部３２と、比較結果記録部３４と、ユーザ通知部３６と、推移状況解析部３８と、検証結果提供部４０とを備える。なお、検証装置１４は、各種通信プロトコルにしたがって、メインフレーム１０等の外部装置とデータを送受する通信処理部（不図示）をさらに備えている。
【００２２】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図２の各ブロックは、ソフトウェアとして記録媒体に格納され、検証装置１４のハードディスクにインストールされてもよい。また、データ処理に関する各ブロックは、検証装置１４のメインメモリに適宜読み出されて、プロセッサにより実行されてもよい。
【００２３】
原本レコード保持部２０は、原本レコードを記録した原本ファイルを保持する。原本レコードを格納するデータベース（テーブル）であってもよい。被験レコード保持部２２は、被験レコードを記録した被験ファイルを保持する。被験レコードを格納するデータベース（テーブル）であってもよい。比較規則保持部２４は、比較規則を保持する。検証結果保持部２６は、比較判定部３２による原本レコードと被験レコードとの比較結果等、検証装置１４における検証処理の結果を示す各種情報を保持する。
【００２４】
ファイル取得部２８は、メインフレーム１０から原本ファイルを取得して原本レコード保持部２０へ格納する。また、オープン系サーバ１２から被験ファイルを取得して被験レコード保持部２２へ格納する。比較規則取得部３０は、ユーザ端末１６から比較規則を取得してそのデータを比較規則保持部２４へ格納する。
【００２５】
図３は、原本ファイルの一例を示す。同図の原本ファイルには、それぞれ２０文字からなる原本レコード５０〜原本レコード５６の７レコードが含まれる。図４は、被験ファイルの一例を示す。同図の被験ファイルには、それぞれ２０文字からなる被験レコード６０〜被験レコード６６の７レコードが含まれる。なお、本実施の形態では原本ファイルと被験ファイルとの文字コードは一致することとするが、異なる場合、ファイル取得部２８等により同じ文字コードへ変換されてもよいことはもちろんである。
【００２６】
図５は、比較規則の一例を示す。同図の比較規則には以下の４種類の規則が含まれる。いずれの規則についても複数個指定可能であることはもちろんである。
（１）範囲規則７０
原本レコードと被験レコードの比較対象とする範囲を設定する。形式は、ＫＥＹ＝（開始位置，桁数）、と指定する。図５の例では、いずれのパラメータにも「００００」が指定されているため、レコードの全データが比較対象となる。
（２）マスク規則７２
原本レコードと被験レコードの比較対象から除外する範囲を設定する。形式は、ＭＳＫ＝（開始位置，桁数）、と指定する。図５の例では、いずれのパラメータにも「００００」が指定されているため除外範囲はなく、レコードの全データが比較対象となる。
【００２７】
（３）置換規則７４
レコード比較処理において原本レコードを置き換えるデータを指定する。典型的には、ユーザにとって意味上同意とみなせるデータの組み合わせを指定する。形式は、ＭＣＣ＝（第１文字列，第２文字列）、と指定する。図５の例では、文字列「ＢＢ」と文字列「ＣＣ」が置換対象として指定されている。比較処理では、「ＢＢ」と「ＣＣ」とは同じものとして見なされることになる。なお、置換規則７４のパラメータには、文字コードが指定されてもよく、例えば、文字コードを１６進数で表した文字列が指定されてもよい。以下では、一般的な意味での文字列を「キャラ文字列」とも呼び、キャラ文字列の文字コードを１６進数で示す文字列を「ヘキサ文字列」とも呼ぶ。例えば、キャラ文字列「Ａ」「０」「半角スペース」に対応するヘキサ文字列はそれぞれ、「Ｃ１」「３０」「２０」となる。なお、図３で示した原本レコード、図４で示した被験レコードはいずれもキャラ文字列で示している。
【００２８】
（４）スキップ規則７６
レコード比較処理において特定の文字列を含むレコードをスキップするための条件を指定する。形式は、ＳＫＰ＝（特定文字列の開始位置，特定文字列のバイト数）Ｃ（特定キャラ文字列）、と指定する。図５の例では、レコードの１バイト目から２バイト目にキャラ文字列「１５」が存在する場合、そのレコードは比較処理においてスキップされることになる。なお、第３パラメータは、Ｃ（特定キャラ文字列）の指定に代えて、Ｘ（特定ヘキサ文字列）が指定されてもよい。
【００２９】
図２に戻り、比較判定部３２は、比較規則保持部２４に保持された比較規則を参照し、その比較規則にしたがって原本レコードと被験レコードとを比較する。以下、比較処理を詳細に説明するが、この比較処理はキャラ文字列を基準として行われてもよく、ヘキサ文字列を基準として行われてもよく、適宜組み合わされてもよいため、特に断らない限り単に「文字列」と表記する。
【００３０】
比較判定部３２は、原本レコード保持部２０に保持された原本ファイルから１レコードずつ原本レコードを読み出し、被験レコード保持部２２に保持された被験ファイルから１レコードずつ被験レコードを読み出す。そして、範囲規則７０にしたがって比較対象となる文字列を特定し、マスク規則７２にしたがって比較対象外とすべき文字列を比較対象から除外する。例えば、比較対象外を示す特定の文字列へ置き換えてもよい。
【００３１】
また比較判定部３２は、スキップ規則７６にしたがって、原本レコードの比較対象文字列もしくは被験レコードの比較対象文字列において特定の位置に特定の文字列が含まれる場合は、そのレコードをスキップして次のレコードを読み出す。例えば、原本レコードがスキップ規則７６の条件を充足する場合は次の原本レコードを取得し、被験レコードがスキップ規則７６の条件を充足する場合は次の被験レコードを取得する。一方で、スキップ規則の条件を充足しない側のレコードはそのまま維持される。
【００３２】
比較判定部３２は、原本レコードの比較対象文字列と、被験レコードの比較対象文字列とをヘキサ文字列にて比較して一致するか否かを判定する。不一致である場合、比較判定部３２は、置換規則７４にしたがって比較対象文字列を置き換えた上で再度の一致判定を実行する。具体的には、原本レコードの比較対象文字列から置換規則７４の第１文字列を検索し、第１文字列が存在すればそれを第２文字列に置き換えた場合に、原本レコードの比較対象文字列と被験レコードの比較対象文字列とが一致するか否かを判定する。また、原本レコードの比較対象文字列から置換規則７４の第２文字列を検索し、第２文字列が存在すればそれを第１文字列に置き換えた場合に、原本レコードの比較対象文字列と被験レコードの比較対象文字列とが一致するか否かを判定する。
【００３３】
比較判定部３２は、置換を経ることなく原本レコードと被験レコードとがそもそも一致した場合（以下、「形式一致」とも呼ぶ。）、および、置換後に原本レコードと被験レコードとが一致した場合（以下、「置換一致」とも呼ぶ。）のいずれについても、原本レコードと被験レコードとが一致すると判定する。その一方で、原本レコードと被験レコードとが不一致でかつ置換が行われなかった（置換規則７４に合致しなかった）場合、および、置換は行われたがその後も原本レコードと被験レコードとが不一致である場合（両方を総称して「完全不一致」とも呼ぶ。）、原本レコードと被験レコードとが不一致であると判定する。
【００３４】
比較判定部３２は、原本レコードと被験レコードとの比較処理において、レコード間での置換一致の箇所、すなわち原本レコードを置き換えることにより被験レコードと一致した箇所を検出する。さらに、レコード間での完全不一致の箇所を検出する。比較判定部３２は、原本レコード、被験レコード、判定結果（形式一致、置換一致、完全不一致）、置換一致の箇所、完全不一致の箇所を示す情報を比較結果記録部３４へ適宜通知する。また比較判定部３２は、比較相手となるレコードが存在しなかった未比較の原本レコードもしくは被験レコードを、未比較レコードとして比較結果記録部３４へ通知する。
【００３５】
比較結果記録部３４は、比較判定部３２による比較処理の状況（比較判定部３２からの通知内容）に応じて、その比較処理の結果を示す各種ログファイルを設定して検証結果保持部２６へ格納する。具体的には、比較判定部３２による比較処理の結果として一致と判定された原本レコードおよび被験レコードを「マッチリスト」へ記録する。また、不一致と判定された原本レコードおよび被験レコード、および未比較レコードを「アンマッチリスト」へ記録する。また、原本レコードと被験レコードとの比較処理における総括的な検証結果を示す情報、言い換えれば、原本ファイルと被験ファイルとの全体的な一致状況を示す情報を、総括的な確認用のログである「件数リスト」へ記録する。また、原本ファイルと被験ファイルとの詳細な差分情報、言い換えれば、形式一致でなかった原本レコードと被験レコードとを、詳細な確認用のログである「差分リスト」へ記録する。各種ログファイルの具体的な構成は後述する。
【００３６】
ユーザ通知部３６は、比較判定部３２における比較処理において完全不一致が検出された場合、その旨をユーザへ通知する。例えば、完全不一致が存在する旨を示す情報がアンマッチリストや件数リストへ記録された場合に、件数リストの内容を記載した電子メールをユーザ端末１６宛に送信してもよい。
【００３７】
推移状況解析部３８は、検証結果保持部２６に格納された各種ログファイルを参照して、原本レコードと被験レコードとの一致状況について、その時系列での推移を示す情報を設定して検証結果保持部２６へ格納する。具体的には、原本ファイルと被験ファイルとの日々の比較結果を順次記録した「推移リスト」を設定する。また、比較結果の推移の状況を集約し、その状況を概略的に示す「推移サマリ」を設定する。これらの具体的な構成は後述する。
【００３８】
検証結果提供部４０は、ユーザ端末１６から検証結果の取得要求や参照要求を受け付け、検証結果保持部２６に格納された各種情報をユーザ端末１６へ提供する。具体的には、比較結果記録部３４により設定された各種ログファイルや、推移状況解析部３８により設定された時系列での推移を示す情報を提供してユーザに参照させる。
【００３９】
以下、図３の原本ファイルと、図４の被験ファイルと、図５の比較規則にもとづく比較処理と、その比較結果にもとづいて設定される各種ログ情報や推移情報を具体的に説明する。
【００４０】
比較判定部３２は、原本レコード５０と被験レコード６０、原本レコード５１と被験レコード６１、および原本レコード５５と被験レコード６５は形式一致と判定する。原本レコード５２と被験レコード６２とは、先頭の２文字が異なり、かつ置換条件も充足しないため完全不一致と判定する。原本レコード５３と被験レコード６３とは不一致であるものの、原本レコードには第１文字列「ＢＢ」が存在し、それを第２文字列「ＣＣ」に置き換えた場合、原本レコード５３と被験レコード６３とは一致するため置換一致と判定する。その一方で、原本レコード５４と被験レコード６４とは不一致であり、原本レコードの第１文字列「ＢＢ」を第２文字列「ＣＣ」に置き換えた場合も、原本レコード５４と被験レコード６４とは不一致であるため完全不一致と判定する。原本レコード５６と被験レコード６６の比較においては、原本レコード５６がスキップ規則の条件を充足し、次の原本レコードが存在しないため、被験レコード６６は未比較レコードとして特定される。
【００４１】
図６は、比較結果記録部３４により設定されるアンマッチリストを示す。不一致レコード領域８０には、比較判定部３２により完全不一致と判定された原本レコードと被験レコードのそれぞれが対照して記録される。未比較レコード領域８２には比較判定部３２により未比較レコードと判定された原本レコードおよび被験レコードが記録される。ヘキサ文字列フィールド８４には、原本レコードおよび被験レコードがヘキサ文字列で記録され、キャラ文字列フィールド８６には原本レコードおよび被験レコードがキャラ文字列で記録される。
【００４２】
アンマッチリストの不一致レコード領域８０には、完全不一致のレコードが記録されるため、図６では原本レコード５２と被験レコード６２の組み合わせと、原本レコード５４と被験レコード６４の組み合わせとが記録されている。不一致フラグ８８は、原本レコードと被験レコードとの完全不一致の箇所を示すために、その箇所のヘキサ文字列と対応づけて設定される。置換フラグ９０は、置換一致の箇所を示すために、その箇所のヘキサ文字列と対応づけて設定される。図６で示すように、不一致フラグ８８と置換フラグ９０は、完全不一致の箇所と置換一致の箇所をユーザが容易に判別可能なように異なる態様で設定される。なお、マッチリストについては図示しないが、不一致レコード領域８０と同様に、形式一致もしくは置換一致とされた原本レコードと被験レコードとが対照して設定されてよい。また、マッチリストでは不一致フラグ８８は常に未設定となるが、マッチリストにおいても置換フラグ９０は設定されることが望ましい。
【００４３】
図７は、比較結果記録部３４により設定される件数リストを示す。「原本レコード総数」欄には、原本ファイルに記録された原本レコード数である７レコードが設定される。「被験レコード総数」欄も同様である。「一致数」欄には、比較判定部３２において一致（形式一致、置換一致）と判定されたレコード数である４レコードが設定される。「不一致数」欄には、比較判定部３２において不一致（完全不一致）と判定されたレコード数である２レコードが設定される。「原本未比較数」欄には、未比較の原本レコード数、この例では０レコードが設定される。「被験未比較数」欄には、未比較の被験レコード数、この例では１レコードが設定される。「置換総数」欄には、置換規則にもとづく置き換え処理がなされた原本レコード数、この例では２レコードが設定される。「原本スキップ数」欄には、スキップ規則にもとづきスキップされた原本レコード数、この例では１レコードが設定される。「被験スキップ数」欄には、スキップされた被験レコード数、この例では０レコードが設定される。
【００４４】
図８は、比較結果記録部３４により設定される差分リストを示す。同図は原本レコードの差分リストを示している。差分レコード２００は、図３の原本レコード５２に対応し、完全不一致であったことを理由として記録されている。差分レコード２０１は、図３の原本レコード５３に対応し、置換一致であったことを理由として記録されている。また、差分レコード２０２は、図３の原本レコード５４に対応し、完全不一致であったことを理由として記録されている。
【００４５】
図９は、比較結果記録部３４により設定される差分リストを示す。同図は被験レコードの差分リストを示している。差分レコード２１０は、図４の被験レコード６２に対応し、完全不一致であったことを理由として記録されている。差分レコード２１１は、図４の被験レコード６３に対応し、置換一致であったことを理由として記録されている。差分レコード２１２は、図４の被験レコード６４に対応し、完全不一致であったことを理由として記録されている。また、差分レコード２１３は、図４の被験レコード６６に対応し、未比較レコードであったことを理由として記録されている。なお、差分リストでは、差分リストへの追加理由（置換一致、完全不一致）を示す情報が各レコードと対応づけて設定されてもよい。
【００４６】
図１０は、推移状況解析部３８により設定される推移リストを示す。同図の各行は、ある原本ファイルとある被験ファイルとの比較処理「Ａ」、別の原本ファイルと別の被験ファイルとの比較処理「Ｂ」・・・を示している。比較結果欄には、各比較処理の結果が時系列に記録される。比較結果「○」は、完全不一致が０件であった場合に設定される。比較結果「×」は、完全不一致が１件以上であった場合に設定される。比較結果「△」は、被験ファイルは作成されたものの、その中身がない、すなわち被験レコードが０件である場合に設定される。比較結果「−」は、被験ファイルがそもそも作成されなかった（例えば、ＡＰが未起動の日であった）場合に設定される。この推移リストによれば、ユーザは各比較処理の結果や、その時系列での推移を容易に把握できる。例えば、比較結果「×」の比較処理について、比較規則の調整の必要性や、ＡＰポーティングにおけるバグの存在等を迅速に認識しやすくなる。
【００４７】
図１１は、推移状況解析部３８により設定される推移サマリを示す。同図の推移状況欄には、比較結果の推移を踏まえての検証状況が記録される。推移状況「常時一致」は、比較結果が常に「○」であった場合に設定される。推移状況「対応済」は、比較結果が「×」から「○」に変化した場合に設定される。推移状況「常時０件」は、比較結果が常に「△」であった場合に設定される。推移状況「不一致再発」は、比較結果が「○」から「×」に変化した場合に設定される。この推移サマリによれば、ユーザは各処理の結果の推移をさらに容易に把握できる。例えば、推移状況「不一致再発」について、比較規則の調整等によるデグレードの発生を迅速に認識しやすくなる。また、推移状況「常時０件」についてもポーティングの不具合の存在を迅速に認識しやすくなる。
【００４８】
変形例として、推移状況解析部３８は、図１０の比較結果を集計して所定形式のグラフを設定し、検証結果保持部２６へ格納してもよい。このグラフは、横軸に日時を設定し、縦軸に比較結果「○」「×」「△」「−」それぞれの合計値を設定したものであってもよい。同様に、図１１の推移状況を集計して同様のグラフを設定してもよい。例えば、横軸に日時を設定し、縦軸に推移状況「常時一致」、「対応済」、「常時０件」、「不一致再発」それぞれの合計値を設定したものであってもよい。この変形例によれば、複数の比較処理に亘る比較結果の推移傾向をユーザに容易に把握させることができる。例えば、メインフレーム１０からオープン系サーバ１２へのＡＰポーティングプロジェクトにおいて、プロジェクト全体の進捗把握が容易になる。
【００４９】
以上の構成による動作を以下説明する。
図１２は、検証装置１４の動作を示すフローチャートである。比較規則については、比較規則取得部３０がユーザ端末１６から予め取得し、参照可能な状態としておく。予め定められた検証開始タイミングになったことを検出すると（Ｓ１０のＹ）、ファイル取得部２８は、メインフレーム１０から原本ファイルを取得し、オープン系サーバ１２から被験ファイルを取得する（Ｓ１２）。比較判定部３２および比較結果記録部３４は、比較規則にしたがって後述する比較処理を実行する（Ｓ１４）。その比較処理において原本ファイルと被験ファイルとが不一致と判定された場合（Ｓ１６のＹ）、ユーザ通知部３６はその旨をユーザ端末１６へ通知する（Ｓ１８）。原本ファイルと被験ファイルとが一致していれば（Ｓ１６のＮ）、Ｓ１８はスキップされる。検証開始タイミングでなければ（Ｓ１０のＮ）、Ｓ１２〜Ｓ１８はスキップされる。なお、Ｓ１０〜Ｓ１８の処理は、比較処理のバリエーションの分だけ並行実行されてもよいことはもちろんである。
【００５０】
予め定められた比較結果の集計タイミングになったことを検出すると（Ｓ２０のＹ）、推移状況解析部３８は、各比較処理の結果を参照して、比較結果の時系列での推移を示す各種情報を設定する（Ｓ２２）。集計タイミングでなければ（Ｓ２０のＮ）、Ｓ２２はスキップされる。ユーザ端末１６から検証結果の取得要求を受け付けると（Ｓ２４のＹ）、検証結果提供部４０は、その取得要求にて指定された比較処理の結果を示す情報をユーザ端末１６へ提供する（Ｓ２６）。検証結果の取得要求を受け付けなければ（Ｓ２４のＮ）、Ｓ２６はスキップされる。
【００５１】
図１３は、図１２のＳ１４の比較処理を詳細に示すフローチャートである。原本ファイルおよび被験ファイルを参照して、未処理の原本レコードと未処理の被験レコードの両方が残存する場合（Ｓ３０のＹ）、範囲規則にしたがって原本レコードおよび被験レコードそれぞれの比較対象データを抽出する（Ｓ３２）。マスク規則が指定されている場合（Ｓ３４のＹ）、マスク条件で指定された部分を比較対象から除外する（Ｓ３６）。マスク規則が未指定であれば（Ｓ３４のＮ）、Ｓ３６はスキップする。原本レコードの比較対象データもしくは被験レコードの比較対象データがスキップ規則の条件を充足する場合（Ｓ３８のＹ）、その条件を充足するレコードをスキップし（Ｓ４０）、件数リストのスキップ数をインクリメントし（Ｓ４２）、Ｓ３０へ戻る。原本レコードの比較対象データおよび被験レコードの比較対象データの双方がスキップ規則の条件を充足しなければ（Ｓ３８のＮ）、これらを比較する（Ｓ４４）。
【００５２】
比較対象データが一致すると（Ｓ４６のＹ）、原本レコードおよび被験レコードをマッチリストへ追加し（Ｓ４８）、件数リストの一致数をインクリメントし（Ｓ４２）、Ｓ３０へ戻る。比較対象データが不一致であると（Ｓ４６のＮ）、原本レコードおよび被験レコードを差分リストへ記録する（Ｓ５０）。置換規則にしたがって原本レコードを置き換えた場合に被験レコードと一致するときには（Ｓ５２のＹ）、Ｓ４８を実行して、件数リストの一致数および置換総数をインクリメントし（Ｓ４２）、Ｓ３０へ戻る。置換規則による置換対象とならない場合、もしくは、置換後も依然として不一致である場合（Ｓ５２のＮ）、原本レコードおよび被験レコードをアンマッチリストへ記録する（Ｓ５４）。その際、置換一致の箇所および完全不一致の箇所を異なる態様で示す情報を付加して記録する。そして、件数リストの不一致数をインクリメントし（Ｓ４２）、Ｓ３０へ戻る。
【００５３】
未処理の原本レコードと未処理の被験レコードの少なくとも一方が残存せず（Ｓ３０のＮ）、一方のみが残存する場合（Ｓ５６のＹ）、残存する原本レコードもしくは被験レコードを未比較レコードとして差分リストへ追加する。未処理の原本レコードと未処理の被験レコードの両方が残存しなければ（Ｓ５６のＮ）、Ｓ５８をスキップする。そして、件数リストの未比較数をインクリメントするとともに、処理した原本レコードおよび被験レコードの総数を設定する（Ｓ６０）。
【００５４】
なお、図１０で示したように、同じ原本ファイルと被験ファイルとの組み合わせ（すなわち同じ比較処理）であっても、複数の異なる時点に亘り追跡して、原本ファイルと被験ファイルとが一致するか否かを検証する。具体的には、各装置で日々生成された原本ファイルと被験ファイルとの組み合わせを日々検証する。ファイルの作成時点が異なれば、ＡＰへの入力データ等が異なり、原本レコードの内容および被験レコードの内容が異なるものとなって、潜在的なポーティングの不具合が検出される場合があるからである。
【００５５】
本実施の形態の検証装置１４によれば、原本レコードと一致することとする被験レコードの範囲を置換規則により拡大できる。すなわち、原本レコードと被験レコードとが形式上不一致であっても、その不一致箇所がユーザにとって意味上一致する場合は一致するものと見なして、一致した場合の後処理を実行する。これにより、原本レコードと被験レコードとの実質的な不一致をユーザに認識させやすくなり、不具合への効率的な対応を支援する利便性の高いデータ比較処理を実現できる。なお、マスク処理と異なり置換による一致の再判定は、置換条件に合致しなければ実行されないため、一致したことと見なす範囲に制約を設けることができる。また、マスク処理と異なり形式上の不一致は検出されるため、その旨を証跡として残すこともできる。
【００５６】
また検証装置１４によれば、ユーザはスキップ規則を指定できるため、ＡＰの動作環境の変化に伴ってレコード数そのものが変化した場合、具体的には新たなレコードの追加や旧レコードの削除が発生した場合でも、その変化に追従して比較態様を調整できる。
【００５７】
また検証装置１４によれば、アンマッチリストにおいて置換一致の箇所と完全不一致の箇所との識別が容易になり、完全不一致の箇所へのユーザの対応（例えば、比較規則のチューニングや、ポーティングのデバッグ）を支援できる。
【００５８】
また検証装置１４によれば、置換処理により原本レコードと被験レコードが一致した場合、総括的な確認用の件数リストには一致した旨を記録する一方で、詳細確認用の差分リストには原本レコードおよび被験レコードを記録する。これにより、原本レコードと被験レコードとの間に差分があったことを証跡として残しつつ、ユーザに対しては一致した旨を通知することにより効率的な作業を支援できる。
【００５９】
また検証装置１４によれば、同じファイルの組み合わせであっても、複数の時点に亘って比較処理を実行し、複数の時点に亘る追跡結果（時系列での比較結果）をユーザに提示できる。これにより、比較結果の推移をユーザに認識させやすくして、ユーザの意思決定を支援できる。
【００６０】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６１】
上記実施の形態では特に言及していないが、比較結果記録部３４は、アンマッチリストのデータを、所定の表計算ソフトに取込可能な形式（例えばＣＳＶ形式等）で出力してもよい。アンマッチリストでは、原本レコードおよび被験レコードのヘキサ文字列とキャラ文字列とが並記されるため、表計算ソフトの機能を利用した不一致の原因特定を支援できる。例えば、キャラ文字列に対して種々のフィルタ条件を設定することにより、不一致が発生しているキャラ文字列の傾向を把握しやすくなり、比較規則のチューニングや、ポーティングのデバッグを効率的に行いやすくなる。
【００６２】
上記実施の形態では、置換一致を判定するために、置換規則にしたがって原本レコードに対して置換処理を施すこととしたが、変形例として、被験レコードに対して置換処理を施してもよい。また、原本レコードと被験レコードの両方に対して一時に置換処理を施してもよい。
【００６３】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。
【００６４】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。例えば、請求項に記載の比較結果記録部は、実施の形態に記載の比較結果記録部３４、推移状況解析部３８等の組み合わせにより実現されてもよい。また、請求項に記載の原本レコードと被験レコードは便宜的に定めた名称であり、それぞれのレコードとして何を指定するかは適宜決定されてよい。
【符号の説明】
【００６５】
１０  メインフレーム、  １２  オープン系サーバ、  １４  検証装置、  １６  ユーザ端末、  ２０  原本レコード保持部、  ２２  被験レコード保持部、  ２４  比較規則保持部、  ２６  検証結果保持部、  ２８  ファイル取得部、  ３０  比較規則取得部、  ３２  比較判定部、  ３４  比較結果記録部、  ３６  ユーザ通知部、  ３８  推移状況解析部、  ４０  検証結果提供部、  １００  検証システム。
【図１】
2011248799.tif 000003
【図２】
2011248799.tif 000004
【図３】
2011248799.tif 000005
【図４】
2011248799.tif 000006
【図５】
2011248799.tif 000007
【図６】
2011248799.tif 000008
【図７】
2011248799.tif 000009
【図８】
2011248799.tif 000010
【図９】
2011248799.tif 000011
【図１０】
2011248799.tif 000012
【図１１】
2011248799.tif 000013
【図１２】
2011248799.tif 000014
【図１３】
2011248799.tif 000015