説明

検証装置

【課題】利便性の高いデータの比較処理を実現する。
【解決手段】実施の一形態の検証装置14は、第1のデータ列とそのデータ列を置き換えるための第2のデータ列とを定めた比較規則を保持する比較規則保持部24と、原本レコードと被験レコードとが一致するか否かを判定し、これらが不一致であっても、原本レコードに第1のデータ列が含まれれば、それを第2のデータ列へ置換した場合に原本レコードと前記被験レコードとが一致するとき、原本レコードと被験レコードとが一致することとする比較判定部32とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ処理技術に関し、特に、あるデータと別のデータが一致するか否かを検証するための技術に関する。
【背景技術】
【0002】
メインフレーム上で動作していた既存のアプリケーションを、オープン系のサーバ上で動作するように移行するポーティングが行われることがある。また、メインフレーム上で既存のアプリケーションが出力したデータと、オープン系のサーバ上で移行後のアプリケーションが出力したデータを照合することにより、ポーティングの成否が確認されることもある。
【0003】
本出願人は、以下の特許文献1において、2つのファイルの差分抽出に関し、作成時間が短く、作成されるファイルのサイズが小さい差分ファイル作成技術を提案している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−173726号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
アプリケーションのポーティングが正常に行われた場合でも、アプリケーションの動作環境の変化に伴い、旧環境でのアプリケーションの出力データと、新環境でのアプリケーションの出力データとは完全には一致しないことがある。また、ポーティングに際し、アプリケーションが改変される場合もあり、新旧環境でのアプリケーションの出力データに差異を生じることもある。
【0006】
このように、比較対照となるデータ間にはユーザにとって許容すべき差異が含まれることがあり、そのような差異を加味した上で一致・不一致を判定することにより、ユーザにとって望ましい比較結果を得られると本発明者は考えた。
【0007】
本発明は、本発明者の上記課題認識にもとづきなされたものであり、その主たる目的は、利便性の高いデータの比較処理を実現するための技術を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある態様の検証装置は、原本レコードの保持部と、被験レコードの保持部と、第1のデータ列と、その第1のデータ列を置き換えるための第2のデータ列とを定めた比較規則の保持部と、原本レコードと被験レコードとが一致するか否かを判定し、これらが不一致であっても、原本レコードに第1のデータ列が含まれれば、それを第2のデータ列へ置換した場合に原本レコードと被験レコードとが一致するとき、原本レコードと被験レコードとが一致することとする比較判定部と、比較判定部による判定結果を所定の記憶領域へ記録する比較結果記録部と、を備える。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、利便性の高いデータの比較処理を実現できる。
【図面の簡単な説明】
【0011】
【図1】実施の形態の検証システムの構成を示す図である。
【図2】図1の検証装置の機能構成を示すブロック図である。
【図3】原本ファイルの一例を示す図である。
【図4】被験ファイルの一例を示す図である。
【図5】比較規則の一例を示す図である。
【図6】アンマッチリストを示す図である。
【図7】件数リストを示す図である。
【図8】差分リストを示す図である。
【図9】差分リストを示す図である。
【図10】推移リストを示す図である。
【図11】推移サマリを示す図である。
【図12】検証装置の動作を示すフローチャートである。
【図13】図12のS14の比較処理を詳細に示すフローチャートである。
【発明を実施するための形態】
【0012】
本発明の実施の形態を説明する前にまず概要を説明する。
同じ処理ロジックが実装された2つのアプリケーションに同じ入力データを与えた場合、通常、それらの出力データは同じになる。しかし、それぞれのアプリケーションの動作環境(例えば、ハードウェア環境・ソフトウェア環境・動作日時等)が異なれば、出力データに差異を生ずることがある。また、ある環境で動作しているアプリケーションを別の環境に移植する場合は、その移植に際しビジネス側の要請により処理ロジックが一部変更される場合もあり、やはり出力データに差異を生ずることがある。
【0013】
異なる環境で生成された第1ファイルと第2ファイルとを素朴に比較する場合、上記のような差異が検出されて不一致と判定されることがある。しかし、形式的には不一致であっても、ユーザにとって不一致箇所の意味内容が一致するものであれば、一致と見なした方がユーザにとって都合がいいこともある。
【0014】
例えば、第1ファイルが作成された環境における2バイトの文字列「AA」が、第2ファイルが作成された環境における3バイトの文字列「BBB」に相当する場合、形式上不一致であっても、判定結果としては一致することとした方がユーザにとって都合がよい。別の例として、企業A(本社は東京)の人事アプリケーションaを企業B(本社は大阪)の人事アプリケーションbとして移植することを考える。この場合、人事アプリケーションaの出力データ中の本社「東京」と、人事アプリケーションbの出力データ中の本社「大阪」とはユーザにとっては同じ意味を表しており、形式上不一致であっても、判定結果としては一致することとしたほうがよい。
【0015】
本実施の形態では、第1ファイルと第2ファイルとの間に形式上不一致が存在しても、その不一致部分の意味内容が一致する場合、第1ファイルと第2ファイルとが一致するものと判定する検証装置を提案する。後述するように、この検証装置は、ユーザにより定められた比較規則にしたがって2つのファイルのレコード比較を実行する。ユーザはこの比較規則を調整することにより検証装置における比較態様を柔軟に調整できる。また、この検証装置は、比較処理の結果を各種ログとして出力することにより、ユーザの意思決定を支援する。以下、このような構成を説明する。
【0016】
図1は、実施の形態の検証システムの構成を示す。検証システム100は、メインフレーム10と、オープン系サーバ12と、検証装置14と、ユーザ端末16とを備える。図1の各装置は、LAN・WAN・インターネット等、公知の通信手段を含む通信網18を介して接続される。
【0017】
メインフレーム10は、アプリケーション(以下、「AP」とも呼ぶ。)のポーティング前の実行環境を提供する汎用大型コンピュータである。このAPは、所定のビジネスロジックを実行して、その処理結果を記録したファイルを生成する。オープン系サーバ12は、APのポーティング先であり、ポーティング後の実行環境を提供するサーバ装置であり、例えばUNIX(登録商標)サーバである。
【0018】
検証装置14は、メインフレーム10においてAPが生成したファイルと、オープン系サーバ12においてAPが生成したファイルとを比較してこれらが一致するか否かを検証する情報処理装置である。検証装置14の詳細な構成は後述する。ユーザ端末16は、APのポーティングを担当するユーザにより操作される情報処理装置である。ユーザ端末16は、ユーザが定めた規則であり、検証装置14におけるファイル比較処理の態様を定めた規則情報(以下、「比較規則」とも呼ぶ。)を検証装置14へ送信する。
【0019】
検証システム100では、ポーティングの成否を確認するために、メインフレーム10のAPとオープン系サーバ12のAPとの双方に同じ入力データを与える。したがって、ポーティングに成功している場合は、メインフレーム10においてAPが生成したファイルのデータと、オープン系サーバ12でAPが生成したファイルのデータとは、形式上の不一致が存在するか否かは別として、少なくとも意味内容が同一となる。なお、メインフレーム10とオープン系サーバ12とのそれぞれにおいてファイルが日々生成され、検証装置14において両装置で生成されたファイルが日々突合される。
【0020】
本実施の形態では、メインフレーム10においてAPが生成したファイルを、原本としてのファイルの意味で「原本ファイル」と称する。また、オープン系サーバ12でAPが生成したファイルを、原本ファイルと一致するか否かを検証すべきファイルの意味で「被験ファイル」と称する。原本ファイルと被験ファイルのそれぞれには、APの処理結果である1以上のレコード(以下、「原本レコード」、「被験レコード」とも呼ぶ。)が記録される。検証装置14は、原本ファイルと被験ファイルとをレコード単位に比較して、一致するレコード数や不一致のレコード数を集計する。
【0021】
図2は、図1の検証装置14の機能構成を示すブロック図である。検証装置14は、各種データが格納される記憶領域として、原本レコード保持部20と、被験レコード保持部22と、比較規則保持部24と、検証結果保持部26とを備える。また、各種データ処理を実行するデータ処理部として、ファイル取得部28と、比較規則取得部30と、比較判定部32と、比較結果記録部34と、ユーザ通知部36と、推移状況解析部38と、検証結果提供部40とを備える。なお、検証装置14は、各種通信プロトコルにしたがって、メインフレーム10等の外部装置とデータを送受する通信処理部(不図示)をさらに備えている。
【0022】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図2の各ブロックは、ソフトウェアとして記録媒体に格納され、検証装置14のハードディスクにインストールされてもよい。また、データ処理に関する各ブロックは、検証装置14のメインメモリに適宜読み出されて、プロセッサにより実行されてもよい。
【0023】
原本レコード保持部20は、原本レコードを記録した原本ファイルを保持する。原本レコードを格納するデータベース(テーブル)であってもよい。被験レコード保持部22は、被験レコードを記録した被験ファイルを保持する。被験レコードを格納するデータベース(テーブル)であってもよい。比較規則保持部24は、比較規則を保持する。検証結果保持部26は、比較判定部32による原本レコードと被験レコードとの比較結果等、検証装置14における検証処理の結果を示す各種情報を保持する。
【0024】
ファイル取得部28は、メインフレーム10から原本ファイルを取得して原本レコード保持部20へ格納する。また、オープン系サーバ12から被験ファイルを取得して被験レコード保持部22へ格納する。比較規則取得部30は、ユーザ端末16から比較規則を取得してそのデータを比較規則保持部24へ格納する。
【0025】
図3は、原本ファイルの一例を示す。同図の原本ファイルには、それぞれ20文字からなる原本レコード50〜原本レコード56の7レコードが含まれる。図4は、被験ファイルの一例を示す。同図の被験ファイルには、それぞれ20文字からなる被験レコード60〜被験レコード66の7レコードが含まれる。なお、本実施の形態では原本ファイルと被験ファイルとの文字コードは一致することとするが、異なる場合、ファイル取得部28等により同じ文字コードへ変換されてもよいことはもちろんである。
【0026】
図5は、比較規則の一例を示す。同図の比較規則には以下の4種類の規則が含まれる。いずれの規則についても複数個指定可能であることはもちろんである。
(1)範囲規則70
原本レコードと被験レコードの比較対象とする範囲を設定する。形式は、KEY=(開始位置,桁数)、と指定する。図5の例では、いずれのパラメータにも「0000」が指定されているため、レコードの全データが比較対象となる。
(2)マスク規則72
原本レコードと被験レコードの比較対象から除外する範囲を設定する。形式は、MSK=(開始位置,桁数)、と指定する。図5の例では、いずれのパラメータにも「0000」が指定されているため除外範囲はなく、レコードの全データが比較対象となる。
【0027】
(3)置換規則74
レコード比較処理において原本レコードを置き換えるデータを指定する。典型的には、ユーザにとって意味上同意とみなせるデータの組み合わせを指定する。形式は、MCC=(第1文字列,第2文字列)、と指定する。図5の例では、文字列「BB」と文字列「CC」が置換対象として指定されている。比較処理では、「BB」と「CC」とは同じものとして見なされることになる。なお、置換規則74のパラメータには、文字コードが指定されてもよく、例えば、文字コードを16進数で表した文字列が指定されてもよい。以下では、一般的な意味での文字列を「キャラ文字列」とも呼び、キャラ文字列の文字コードを16進数で示す文字列を「ヘキサ文字列」とも呼ぶ。例えば、キャラ文字列「A」「0」「半角スペース」に対応するヘキサ文字列はそれぞれ、「C1」「30」「20」となる。なお、図3で示した原本レコード、図4で示した被験レコードはいずれもキャラ文字列で示している。
【0028】
(4)スキップ規則76
レコード比較処理において特定の文字列を含むレコードをスキップするための条件を指定する。形式は、SKP=(特定文字列の開始位置,特定文字列のバイト数)C(特定キャラ文字列)、と指定する。図5の例では、レコードの1バイト目から2バイト目にキャラ文字列「15」が存在する場合、そのレコードは比較処理においてスキップされることになる。なお、第3パラメータは、C(特定キャラ文字列)の指定に代えて、X(特定ヘキサ文字列)が指定されてもよい。
【0029】
図2に戻り、比較判定部32は、比較規則保持部24に保持された比較規則を参照し、その比較規則にしたがって原本レコードと被験レコードとを比較する。以下、比較処理を詳細に説明するが、この比較処理はキャラ文字列を基準として行われてもよく、ヘキサ文字列を基準として行われてもよく、適宜組み合わされてもよいため、特に断らない限り単に「文字列」と表記する。
【0030】
比較判定部32は、原本レコード保持部20に保持された原本ファイルから1レコードずつ原本レコードを読み出し、被験レコード保持部22に保持された被験ファイルから1レコードずつ被験レコードを読み出す。そして、範囲規則70にしたがって比較対象となる文字列を特定し、マスク規則72にしたがって比較対象外とすべき文字列を比較対象から除外する。例えば、比較対象外を示す特定の文字列へ置き換えてもよい。
【0031】
また比較判定部32は、スキップ規則76にしたがって、原本レコードの比較対象文字列もしくは被験レコードの比較対象文字列において特定の位置に特定の文字列が含まれる場合は、そのレコードをスキップして次のレコードを読み出す。例えば、原本レコードがスキップ規則76の条件を充足する場合は次の原本レコードを取得し、被験レコードがスキップ規則76の条件を充足する場合は次の被験レコードを取得する。一方で、スキップ規則の条件を充足しない側のレコードはそのまま維持される。
【0032】
比較判定部32は、原本レコードの比較対象文字列と、被験レコードの比較対象文字列とをヘキサ文字列にて比較して一致するか否かを判定する。不一致である場合、比較判定部32は、置換規則74にしたがって比較対象文字列を置き換えた上で再度の一致判定を実行する。具体的には、原本レコードの比較対象文字列から置換規則74の第1文字列を検索し、第1文字列が存在すればそれを第2文字列に置き換えた場合に、原本レコードの比較対象文字列と被験レコードの比較対象文字列とが一致するか否かを判定する。また、原本レコードの比較対象文字列から置換規則74の第2文字列を検索し、第2文字列が存在すればそれを第1文字列に置き換えた場合に、原本レコードの比較対象文字列と被験レコードの比較対象文字列とが一致するか否かを判定する。
【0033】
比較判定部32は、置換を経ることなく原本レコードと被験レコードとがそもそも一致した場合(以下、「形式一致」とも呼ぶ。)、および、置換後に原本レコードと被験レコードとが一致した場合(以下、「置換一致」とも呼ぶ。)のいずれについても、原本レコードと被験レコードとが一致すると判定する。その一方で、原本レコードと被験レコードとが不一致でかつ置換が行われなかった(置換規則74に合致しなかった)場合、および、置換は行われたがその後も原本レコードと被験レコードとが不一致である場合(両方を総称して「完全不一致」とも呼ぶ。)、原本レコードと被験レコードとが不一致であると判定する。
【0034】
比較判定部32は、原本レコードと被験レコードとの比較処理において、レコード間での置換一致の箇所、すなわち原本レコードを置き換えることにより被験レコードと一致した箇所を検出する。さらに、レコード間での完全不一致の箇所を検出する。比較判定部32は、原本レコード、被験レコード、判定結果(形式一致、置換一致、完全不一致)、置換一致の箇所、完全不一致の箇所を示す情報を比較結果記録部34へ適宜通知する。また比較判定部32は、比較相手となるレコードが存在しなかった未比較の原本レコードもしくは被験レコードを、未比較レコードとして比較結果記録部34へ通知する。
【0035】
比較結果記録部34は、比較判定部32による比較処理の状況(比較判定部32からの通知内容)に応じて、その比較処理の結果を示す各種ログファイルを設定して検証結果保持部26へ格納する。具体的には、比較判定部32による比較処理の結果として一致と判定された原本レコードおよび被験レコードを「マッチリスト」へ記録する。また、不一致と判定された原本レコードおよび被験レコード、および未比較レコードを「アンマッチリスト」へ記録する。また、原本レコードと被験レコードとの比較処理における総括的な検証結果を示す情報、言い換えれば、原本ファイルと被験ファイルとの全体的な一致状況を示す情報を、総括的な確認用のログである「件数リスト」へ記録する。また、原本ファイルと被験ファイルとの詳細な差分情報、言い換えれば、形式一致でなかった原本レコードと被験レコードとを、詳細な確認用のログである「差分リスト」へ記録する。各種ログファイルの具体的な構成は後述する。
【0036】
ユーザ通知部36は、比較判定部32における比較処理において完全不一致が検出された場合、その旨をユーザへ通知する。例えば、完全不一致が存在する旨を示す情報がアンマッチリストや件数リストへ記録された場合に、件数リストの内容を記載した電子メールをユーザ端末16宛に送信してもよい。
【0037】
推移状況解析部38は、検証結果保持部26に格納された各種ログファイルを参照して、原本レコードと被験レコードとの一致状況について、その時系列での推移を示す情報を設定して検証結果保持部26へ格納する。具体的には、原本ファイルと被験ファイルとの日々の比較結果を順次記録した「推移リスト」を設定する。また、比較結果の推移の状況を集約し、その状況を概略的に示す「推移サマリ」を設定する。これらの具体的な構成は後述する。
【0038】
検証結果提供部40は、ユーザ端末16から検証結果の取得要求や参照要求を受け付け、検証結果保持部26に格納された各種情報をユーザ端末16へ提供する。具体的には、比較結果記録部34により設定された各種ログファイルや、推移状況解析部38により設定された時系列での推移を示す情報を提供してユーザに参照させる。
【0039】
以下、図3の原本ファイルと、図4の被験ファイルと、図5の比較規則にもとづく比較処理と、その比較結果にもとづいて設定される各種ログ情報や推移情報を具体的に説明する。
【0040】
比較判定部32は、原本レコード50と被験レコード60、原本レコード51と被験レコード61、および原本レコード55と被験レコード65は形式一致と判定する。原本レコード52と被験レコード62とは、先頭の2文字が異なり、かつ置換条件も充足しないため完全不一致と判定する。原本レコード53と被験レコード63とは不一致であるものの、原本レコードには第1文字列「BB」が存在し、それを第2文字列「CC」に置き換えた場合、原本レコード53と被験レコード63とは一致するため置換一致と判定する。その一方で、原本レコード54と被験レコード64とは不一致であり、原本レコードの第1文字列「BB」を第2文字列「CC」に置き換えた場合も、原本レコード54と被験レコード64とは不一致であるため完全不一致と判定する。原本レコード56と被験レコード66の比較においては、原本レコード56がスキップ規則の条件を充足し、次の原本レコードが存在しないため、被験レコード66は未比較レコードとして特定される。
【0041】
図6は、比較結果記録部34により設定されるアンマッチリストを示す。不一致レコード領域80には、比較判定部32により完全不一致と判定された原本レコードと被験レコードのそれぞれが対照して記録される。未比較レコード領域82には比較判定部32により未比較レコードと判定された原本レコードおよび被験レコードが記録される。ヘキサ文字列フィールド84には、原本レコードおよび被験レコードがヘキサ文字列で記録され、キャラ文字列フィールド86には原本レコードおよび被験レコードがキャラ文字列で記録される。
【0042】
アンマッチリストの不一致レコード領域80には、完全不一致のレコードが記録されるため、図6では原本レコード52と被験レコード62の組み合わせと、原本レコード54と被験レコード64の組み合わせとが記録されている。不一致フラグ88は、原本レコードと被験レコードとの完全不一致の箇所を示すために、その箇所のヘキサ文字列と対応づけて設定される。置換フラグ90は、置換一致の箇所を示すために、その箇所のヘキサ文字列と対応づけて設定される。図6で示すように、不一致フラグ88と置換フラグ90は、完全不一致の箇所と置換一致の箇所をユーザが容易に判別可能なように異なる態様で設定される。なお、マッチリストについては図示しないが、不一致レコード領域80と同様に、形式一致もしくは置換一致とされた原本レコードと被験レコードとが対照して設定されてよい。また、マッチリストでは不一致フラグ88は常に未設定となるが、マッチリストにおいても置換フラグ90は設定されることが望ましい。
【0043】
図7は、比較結果記録部34により設定される件数リストを示す。「原本レコード総数」欄には、原本ファイルに記録された原本レコード数である7レコードが設定される。「被験レコード総数」欄も同様である。「一致数」欄には、比較判定部32において一致(形式一致、置換一致)と判定されたレコード数である4レコードが設定される。「不一致数」欄には、比較判定部32において不一致(完全不一致)と判定されたレコード数である2レコードが設定される。「原本未比較数」欄には、未比較の原本レコード数、この例では0レコードが設定される。「被験未比較数」欄には、未比較の被験レコード数、この例では1レコードが設定される。「置換総数」欄には、置換規則にもとづく置き換え処理がなされた原本レコード数、この例では2レコードが設定される。「原本スキップ数」欄には、スキップ規則にもとづきスキップされた原本レコード数、この例では1レコードが設定される。「被験スキップ数」欄には、スキップされた被験レコード数、この例では0レコードが設定される。
【0044】
図8は、比較結果記録部34により設定される差分リストを示す。同図は原本レコードの差分リストを示している。差分レコード200は、図3の原本レコード52に対応し、完全不一致であったことを理由として記録されている。差分レコード201は、図3の原本レコード53に対応し、置換一致であったことを理由として記録されている。また、差分レコード202は、図3の原本レコード54に対応し、完全不一致であったことを理由として記録されている。
【0045】
図9は、比較結果記録部34により設定される差分リストを示す。同図は被験レコードの差分リストを示している。差分レコード210は、図4の被験レコード62に対応し、完全不一致であったことを理由として記録されている。差分レコード211は、図4の被験レコード63に対応し、置換一致であったことを理由として記録されている。差分レコード212は、図4の被験レコード64に対応し、完全不一致であったことを理由として記録されている。また、差分レコード213は、図4の被験レコード66に対応し、未比較レコードであったことを理由として記録されている。なお、差分リストでは、差分リストへの追加理由(置換一致、完全不一致)を示す情報が各レコードと対応づけて設定されてもよい。
【0046】
図10は、推移状況解析部38により設定される推移リストを示す。同図の各行は、ある原本ファイルとある被験ファイルとの比較処理「A」、別の原本ファイルと別の被験ファイルとの比較処理「B」・・・を示している。比較結果欄には、各比較処理の結果が時系列に記録される。比較結果「○」は、完全不一致が0件であった場合に設定される。比較結果「×」は、完全不一致が1件以上であった場合に設定される。比較結果「△」は、被験ファイルは作成されたものの、その中身がない、すなわち被験レコードが0件である場合に設定される。比較結果「−」は、被験ファイルがそもそも作成されなかった(例えば、APが未起動の日であった)場合に設定される。この推移リストによれば、ユーザは各比較処理の結果や、その時系列での推移を容易に把握できる。例えば、比較結果「×」の比較処理について、比較規則の調整の必要性や、APポーティングにおけるバグの存在等を迅速に認識しやすくなる。
【0047】
図11は、推移状況解析部38により設定される推移サマリを示す。同図の推移状況欄には、比較結果の推移を踏まえての検証状況が記録される。推移状況「常時一致」は、比較結果が常に「○」であった場合に設定される。推移状況「対応済」は、比較結果が「×」から「○」に変化した場合に設定される。推移状況「常時0件」は、比較結果が常に「△」であった場合に設定される。推移状況「不一致再発」は、比較結果が「○」から「×」に変化した場合に設定される。この推移サマリによれば、ユーザは各処理の結果の推移をさらに容易に把握できる。例えば、推移状況「不一致再発」について、比較規則の調整等によるデグレードの発生を迅速に認識しやすくなる。また、推移状況「常時0件」についてもポーティングの不具合の存在を迅速に認識しやすくなる。
【0048】
変形例として、推移状況解析部38は、図10の比較結果を集計して所定形式のグラフを設定し、検証結果保持部26へ格納してもよい。このグラフは、横軸に日時を設定し、縦軸に比較結果「○」「×」「△」「−」それぞれの合計値を設定したものであってもよい。同様に、図11の推移状況を集計して同様のグラフを設定してもよい。例えば、横軸に日時を設定し、縦軸に推移状況「常時一致」、「対応済」、「常時0件」、「不一致再発」それぞれの合計値を設定したものであってもよい。この変形例によれば、複数の比較処理に亘る比較結果の推移傾向をユーザに容易に把握させることができる。例えば、メインフレーム10からオープン系サーバ12へのAPポーティングプロジェクトにおいて、プロジェクト全体の進捗把握が容易になる。
【0049】
以上の構成による動作を以下説明する。
図12は、検証装置14の動作を示すフローチャートである。比較規則については、比較規則取得部30がユーザ端末16から予め取得し、参照可能な状態としておく。予め定められた検証開始タイミングになったことを検出すると(S10のY)、ファイル取得部28は、メインフレーム10から原本ファイルを取得し、オープン系サーバ12から被験ファイルを取得する(S12)。比較判定部32および比較結果記録部34は、比較規則にしたがって後述する比較処理を実行する(S14)。その比較処理において原本ファイルと被験ファイルとが不一致と判定された場合(S16のY)、ユーザ通知部36はその旨をユーザ端末16へ通知する(S18)。原本ファイルと被験ファイルとが一致していれば(S16のN)、S18はスキップされる。検証開始タイミングでなければ(S10のN)、S12〜S18はスキップされる。なお、S10〜S18の処理は、比較処理のバリエーションの分だけ並行実行されてもよいことはもちろんである。
【0050】
予め定められた比較結果の集計タイミングになったことを検出すると(S20のY)、推移状況解析部38は、各比較処理の結果を参照して、比較結果の時系列での推移を示す各種情報を設定する(S22)。集計タイミングでなければ(S20のN)、S22はスキップされる。ユーザ端末16から検証結果の取得要求を受け付けると(S24のY)、検証結果提供部40は、その取得要求にて指定された比較処理の結果を示す情報をユーザ端末16へ提供する(S26)。検証結果の取得要求を受け付けなければ(S24のN)、S26はスキップされる。
【0051】
図13は、図12のS14の比較処理を詳細に示すフローチャートである。原本ファイルおよび被験ファイルを参照して、未処理の原本レコードと未処理の被験レコードの両方が残存する場合(S30のY)、範囲規則にしたがって原本レコードおよび被験レコードそれぞれの比較対象データを抽出する(S32)。マスク規則が指定されている場合(S34のY)、マスク条件で指定された部分を比較対象から除外する(S36)。マスク規則が未指定であれば(S34のN)、S36はスキップする。原本レコードの比較対象データもしくは被験レコードの比較対象データがスキップ規則の条件を充足する場合(S38のY)、その条件を充足するレコードをスキップし(S40)、件数リストのスキップ数をインクリメントし(S42)、S30へ戻る。原本レコードの比較対象データおよび被験レコードの比較対象データの双方がスキップ規則の条件を充足しなければ(S38のN)、これらを比較する(S44)。
【0052】
比較対象データが一致すると(S46のY)、原本レコードおよび被験レコードをマッチリストへ追加し(S48)、件数リストの一致数をインクリメントし(S42)、S30へ戻る。比較対象データが不一致であると(S46のN)、原本レコードおよび被験レコードを差分リストへ記録する(S50)。置換規則にしたがって原本レコードを置き換えた場合に被験レコードと一致するときには(S52のY)、S48を実行して、件数リストの一致数および置換総数をインクリメントし(S42)、S30へ戻る。置換規則による置換対象とならない場合、もしくは、置換後も依然として不一致である場合(S52のN)、原本レコードおよび被験レコードをアンマッチリストへ記録する(S54)。その際、置換一致の箇所および完全不一致の箇所を異なる態様で示す情報を付加して記録する。そして、件数リストの不一致数をインクリメントし(S42)、S30へ戻る。
【0053】
未処理の原本レコードと未処理の被験レコードの少なくとも一方が残存せず(S30のN)、一方のみが残存する場合(S56のY)、残存する原本レコードもしくは被験レコードを未比較レコードとして差分リストへ追加する。未処理の原本レコードと未処理の被験レコードの両方が残存しなければ(S56のN)、S58をスキップする。そして、件数リストの未比較数をインクリメントするとともに、処理した原本レコードおよび被験レコードの総数を設定する(S60)。
【0054】
なお、図10で示したように、同じ原本ファイルと被験ファイルとの組み合わせ(すなわち同じ比較処理)であっても、複数の異なる時点に亘り追跡して、原本ファイルと被験ファイルとが一致するか否かを検証する。具体的には、各装置で日々生成された原本ファイルと被験ファイルとの組み合わせを日々検証する。ファイルの作成時点が異なれば、APへの入力データ等が異なり、原本レコードの内容および被験レコードの内容が異なるものとなって、潜在的なポーティングの不具合が検出される場合があるからである。
【0055】
本実施の形態の検証装置14によれば、原本レコードと一致することとする被験レコードの範囲を置換規則により拡大できる。すなわち、原本レコードと被験レコードとが形式上不一致であっても、その不一致箇所がユーザにとって意味上一致する場合は一致するものと見なして、一致した場合の後処理を実行する。これにより、原本レコードと被験レコードとの実質的な不一致をユーザに認識させやすくなり、不具合への効率的な対応を支援する利便性の高いデータ比較処理を実現できる。なお、マスク処理と異なり置換による一致の再判定は、置換条件に合致しなければ実行されないため、一致したことと見なす範囲に制約を設けることができる。また、マスク処理と異なり形式上の不一致は検出されるため、その旨を証跡として残すこともできる。
【0056】
また検証装置14によれば、ユーザはスキップ規則を指定できるため、APの動作環境の変化に伴ってレコード数そのものが変化した場合、具体的には新たなレコードの追加や旧レコードの削除が発生した場合でも、その変化に追従して比較態様を調整できる。
【0057】
また検証装置14によれば、アンマッチリストにおいて置換一致の箇所と完全不一致の箇所との識別が容易になり、完全不一致の箇所へのユーザの対応(例えば、比較規則のチューニングや、ポーティングのデバッグ)を支援できる。
【0058】
また検証装置14によれば、置換処理により原本レコードと被験レコードが一致した場合、総括的な確認用の件数リストには一致した旨を記録する一方で、詳細確認用の差分リストには原本レコードおよび被験レコードを記録する。これにより、原本レコードと被験レコードとの間に差分があったことを証跡として残しつつ、ユーザに対しては一致した旨を通知することにより効率的な作業を支援できる。
【0059】
また検証装置14によれば、同じファイルの組み合わせであっても、複数の時点に亘って比較処理を実行し、複数の時点に亘る追跡結果(時系列での比較結果)をユーザに提示できる。これにより、比較結果の推移をユーザに認識させやすくして、ユーザの意思決定を支援できる。
【0060】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0061】
上記実施の形態では特に言及していないが、比較結果記録部34は、アンマッチリストのデータを、所定の表計算ソフトに取込可能な形式(例えばCSV形式等)で出力してもよい。アンマッチリストでは、原本レコードおよび被験レコードのヘキサ文字列とキャラ文字列とが並記されるため、表計算ソフトの機能を利用した不一致の原因特定を支援できる。例えば、キャラ文字列に対して種々のフィルタ条件を設定することにより、不一致が発生しているキャラ文字列の傾向を把握しやすくなり、比較規則のチューニングや、ポーティングのデバッグを効率的に行いやすくなる。
【0062】
上記実施の形態では、置換一致を判定するために、置換規則にしたがって原本レコードに対して置換処理を施すこととしたが、変形例として、被験レコードに対して置換処理を施してもよい。また、原本レコードと被験レコードの両方に対して一時に置換処理を施してもよい。
【0063】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。
【0064】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。例えば、請求項に記載の比較結果記録部は、実施の形態に記載の比較結果記録部34、推移状況解析部38等の組み合わせにより実現されてもよい。また、請求項に記載の原本レコードと被験レコードは便宜的に定めた名称であり、それぞれのレコードとして何を指定するかは適宜決定されてよい。
【符号の説明】
【0065】
10 メインフレーム、 12 オープン系サーバ、 14 検証装置、 16 ユーザ端末、 20 原本レコード保持部、 22 被験レコード保持部、 24 比較規則保持部、 26 検証結果保持部、 28 ファイル取得部、 30 比較規則取得部、 32 比較判定部、 34 比較結果記録部、 36 ユーザ通知部、 38 推移状況解析部、 40 検証結果提供部、 100 検証システム。

【特許請求の範囲】
【請求項1】
原本レコードの保持部と、
被験レコードの保持部と、
第1のデータ列と、その第1のデータ列を置き換えるための第2のデータ列とを定めた比較規則の保持部と、
前記原本レコードと前記被験レコードとが一致するか否かを判定し、これらが不一致であっても、前記原本レコードに前記第1のデータ列が含まれれば、それを前記第2のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、前記原本レコードと前記被験レコードとが一致することとする比較判定部と、
前記比較判定部による判定結果を所定の記憶領域へ記録する比較結果記録部と、
を備えることを特徴とする検証装置。
【請求項2】
前記比較規則は、前記第2のデータ列として、前記第1のデータ列と同じ意味内容を示すデータ列を定めたものであることを特徴とする請求項1に記載の検証装置。
【請求項3】
前記比較規則は、スキップすべき被験レコードに関する条件をさらに定めたものであり、
前記比較判定部は、原本レコードとの比較対象である被験レコードが前記条件を充足する場合、これらの比較をスキップして、当該原本レコードと次の被験レコードとを比較することを特徴とする請求項1または2に記載の検証装置。
【請求項4】
前記比較判定部は、前記原本レコードの第1のデータ列を第2のデータ列へ置換した場合、その置換箇所を特定し、置換後も前記原本レコードと前記被験レコードとの不一致が残存する場合、残存する不一致箇所を特定し、
前記比較結果記録部は、前記比較判定部により前記原本レコードと前記被験レコードとが不一致であると判定された場合、前記置換箇所と前記残存する不一致箇所とを識別可能に記録することを特徴とする請求項1から3のいずれかに記載の検証装置。
【請求項5】
前記比較結果記録部は、前記原本レコードと前記被験レコードとが不一致であるものの、前記原本レコードの前記第1のデータ列を前記第2のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、詳細確認用のログに対して前記原本レコードと前記被験レコードとの不一致が検出された旨を記録する一方で、総括的な確認用のログに対して前記原本レコードと前記被験レコードとが一致した旨を記録することを特徴とする請求項1から4のいずれかに記載の検証装置。
【請求項6】
前記原本レコードおよび前記被験レコードは、異なる時点では異なる内容が設定されうるものであり、
前記比較判定部は、複数の異なる時点において前記原本レコードと前記被験レコードとが一致するか否かを判定し、
前記比較結果記録部は、前記原本レコードと前記被験レコードとの一致状況を時系列で記録することを特徴とする請求項1から5のいずれかに記載の検証装置。
【請求項7】
検証装置に、
第1のデータ列と、その第1のデータ列を置き換えるための第2のデータ列とを定めた比較規則を参照して、原本レコードと被験レコードとが一致するか否かを判定し、前記原本レコードと前記被験レコードとが不一致であっても、前記原本レコードに前記第1のデータ列が含まれれば、それを前記第2のデータ列へ置換した場合に前記原本レコードと前記被験レコードとが一致するとき、前記原本レコードと前記被験レコードとが一致することとする機能と、
前記原本レコードと前記被験レコードとが一致するか否かの判定結果を所定の記憶領域へ記録する機能と、
を実現させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−248799(P2011−248799A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−123859(P2010−123859)
【出願日】平成22年5月31日(2010.5.31)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】