説明

プログラムの実行結果の比較方法

【課題】
従来の技術で不具合が生じたプログラムの原因究明の効率化を図る場合、計算機の更新のようなケースで生ずる多数のプログラムの動作確認に適しているとは言い難いとの課題があった。
【解決手段】
処理中に実行結果を保存するタイミングと保存するファイル名、ならび保存先のファイル名を前もって定義した情報を格納した定義ファイルと、実行結果を比較するプログラムを起動させるための定義情報を格納したジョブ起動ファイルと、データの内容を比較するファイルのペアを予め定義した比較ファイルとを用意する。次に、ジョブ起動ファイルの定義情報に対して、定義ファイルに記載されているタイミングで、保存対象となっているファイル名のデータを保存先のファイルに複写するように定義情報を改変する処理を設ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なるプログラムの実行結果を比較する方法に関する。その中でも特に、システムの更新において、更新後のシステムが更新前の結果など所望の結果を得られるかを確認するための技術に関する。
【背景技術】
【0002】
企業活動の業務の効率化を図ることなどを目的に設置された計算機システムでは、定期的に計算機(システム)を最新のものに切り替えたり、プログラムをバージョンアップさせたりしながら、従来からの業務処理を継承しているのが一般的で、これにより、利用する計算機システムへの最新技術の導入を図っている。
【0003】
ただ、こうした計算機の切り替えやプログラムの切り替えを実施した場合、新しい環境でも、従来とまったく同じ業務処理が遂行されることを確認するためのテストの実施が必須で、このテストの効率化が大きな課題となっている。
【0004】
これを解決するために、特開2008−226060号公報(特許文献1)が提案されている。特許文献1は、切り替えにおいて、プログラムの実機での動作検証の際に再現性の無い不具合が生じた場合にも、不具合発生時の原因が、検証対象のプログラム自体にあるのか、あるいは、他の外部要因にあるのかの判定を可能とすることで、不具合の原因究明を図っている。具体的には、プログラムの実機での動作検証のために、プログラムロジックの1ステップ毎の入出力ログを記録する仕組みと、記録した入出力ログをあらかじめ定められたログと比較する仕組みが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−226060号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1を用いることにより、不具合が生じたプログラムの原因究明の効率化を図ることができる。しかし、上述したような計算機の更新のようなケースで生ずる多数のプログラムの動作確認に適しているとは言い難い。
【0007】
その要因として、プログラムの実行において(例えば一行ごとに)ログ出力が繰り返されるために、多大な経過時間を要したり、計算機オーバヘッドを要したりすることを挙げることができる。また、ログの情報量も膨大なものになるということも要因の一つに挙げることができる。
【0008】
そのため、多数のプログラムを動作確認する際は、不具合が生じたプログラムの原因を究明するまえに、不具合が生じているプログラムを効率的にあらいだすことが先決であるといえる。
【0009】
本発明の目的は、多数のプログラムの動作確認作業の効率化を図る方法を開示することである。
【課題を解決するための手段】
【0010】
上記課題を解決するために、新たなプログラムをストレートコンバージョンする場合に、任意に入力により、そのプログラムの連続した単体および結合テスト(比較)を行うものである。この際、ログとして出力されるテンポラリファイルが無い場合には、これをシステム側に要求する。より詳細には、以下の処理を実行する。
【0011】
まず、処理中に実行結果を保存するタイミングと保存するファイル名、ならび保存先のファイル名を前もって定義した情報を格納した定義ファイルと、実行結果を比較するプログラムを起動させるための定義情報を格納したジョブ起動ファイルと、データの内容を比較するファイルのペアを予め定義した比較ファイルとを用意する。
【0012】
次に、ジョブ起動ファイルの定義情報に対して、定義ファイルに記載されているタイミングで、保存対象となっているファイル名のデータを保存先のファイルに複写するように定義情報を改変する処理を設ける。
【0013】
この改変処理によって作成された定義情報を用いて、多数のプログラムを実行させ、保存先のファイルにデータが複写された後、比較ファイルで定義されたファイルのペアそれぞれについて、それぞれのファイルのデータの内容が一致しているか否かを報告する処理を設ける。
【0014】
また、ファイル内のデータの文字コードを一致させる処理を設け、上記の報告する処理を実行する前に、必要に応じて実行させる。
【0015】
これら一連の処理、ならびにファイルを設けることにより、大量のプログラムの実行結果の比較作業の効率化を図ることができる。
【発明の効果】
【0016】
本発明によれば、多数のプログラムを動作確認する場合に、不具合が生じているプログラムを効率的にあらいだし、多数のプログラムの動作確認作業を効率化することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の第一の実施の形態における比較用計算機101、メインフレーム計算機102及びオープン計算機103の構成を示す図である。
【図2】本発明の第一の実施の形態におけるメインフレーム計算機102のソフトウェア構造を示す模式図である。
【図3】本発明の第一の実施の形態における新旧対応指定ファイル141を示す図である。
【図4】本発明の第一の実施の形態におけるジョブ制御ファイル161を示す図である。
【図5】本発明の第一の実施の形態における入出力ファイル163を示す図である。
【図6】本発明の第一の実施の形態における保存対象指定ファイル164を示す図である。
【図7】本発明の第一の実施の形態における新ジョブ制御ファイル166を示す図である。
【図8】本発明の第一の実施の形態におけるジョブ制御ファイル181を示す図である。
【図9】本発明の第一の実施の形態における入出力ファイル183を示す図である。
【図10】本発明の第一の実施の形態における保存対象指定ファイル184を示す図である。
【図11】本発明の第一の実施の形態における新ジョブ制御ファイル186を示す図である。
【図12】本発明の第一の実施の形態における比較一時情報153を示す図である。
【図13】本発明の第一の実施の形態における比較結果情報154を示す図である。
【図14】本発明の第一の実施の形態における出力装置115を示す図である。
【図15】本発明の第一の実施の形態における全体処理部151の処理を説明するフローチャートである。
【図16】本発明の第一の実施の形態におけるジョブ制御処理追加部171の処理を説明するフローチャートである。
【図17】本発明の第一の実施の形態における対応取得部152の処理を説明するフローチャートである。
【図18】本発明の第一の実施の形態における比較処理部153の処理を説明するフローチャートである。
【図19】本発明の第一の実施の形態による比較用計算機101、メインフレーム計算機102及びオープン計算機103の処理を表すタイムチャートである。
【図20】本発明の第二の実施の形態における比較用計算機2001、メインフレーム計算機102及びオープン計算機103の構成を示す図である。
【図21】本発明の第二の実施の形態における対応設定ファイル2021を示す図である。
【図22】本発明の第二の実施の形態における新旧対応指定ファイル2022を示す図である。
【図23】本発明の第二の実施の形態における全体処理部2031の処理を説明するフローチャートである。
【図24】本発明の第二の実施の形態における対応生成部2032の処理を説明するフローチャートである。
【図25】本発明の第二の実施の形態における対応取得部2033の処理を説明するフローチャートである。
【発明を実施するための形態】
【0018】
以下、図1から図25を用いて、発明を実施するための形態を説明する。
【実施例1】
【0019】
まず、図1から図19を用いて、多数のプログラムを動作確認する場合に、多数のプログラムの実行結果を一括して保存し、かつ実行結果の違いを一括して判別できるため、不具合が生じているプログラムを効率的にあらいだすことができる、第一の実施の形態(実施例1)におけるプログラムの実行結果の比較方法について説明する。
【0020】
図1は、第一の実施の形態の全体図である。図1に示す比較用計算機101は、メインフレーム計算機102のプログラムの実行結果と、オープン計算機103のプログラムの実行結果とを一括して比較するための装置である。メインフレーム計算機102は、プログラムを一括して実行し、実行結果を保存するための装置である。オープン計算機103は、前記メインフレーム計算機102のプログラムの比較対象となるプログラムを一括して実行し、実行結果を保存するための装置である。
【0021】
以下、前記比較用計算機101の構成を説明する。
前記比較用計算機101は、CPU111と、メモリ112と、を有する。つまり、いわゆるコンピュータとして、実現されるものである。
【0022】
前記CPU111と前記メモリ112とは、記憶装置113と、入力装置114と、出力装置115と、に接続する。また、前記CPU111及び前記メモリ112は、記憶装置125と、記憶装置126と、記憶装置135と、記憶装置136とに接続する。また、前記CPU111及び前記メモリ112は、前記メインフレーム計算機102の前記CPU121と、前記オープン計算機103の前記CPU131とに接続する。
【0023】
前記記憶装置113は、比較すべき前記メインフレーム計算機102のプログラムの実行結果と、前記オープン計算機103のプログラムの実行結果との組み合わせを定義する情報を格納する、新旧対応指定ファイル141を保持する。
【0024】
前記記憶装置125は、前記メインフレーム計算機102の比較対象となるプログラムの実行結果について、実行結果のコピーを保存するタイミングと保存場所とを定義する情報を格納する、保存対象指定ファイル164を保持する。
【0025】
前記記憶装置126は、前記メインフレーム計算機102の比較対象となるプログラムの実行結果である情報を格納する、バックアップファイル165を保持する。
【0026】
前記記憶装置135は、前記オープン計算機103の比較対象となるプログラムの実行結果について、実行結果のコピーを保存するタイミングと保存場所とを定義する情報を格納する、保存対象指定ファイル184を保持する。
【0027】
前記記憶装置136は、前記オープン計算機103の比較対象となるプログラムの実行結果である情報を格納する、バックアップファイル185を保持する。
【0028】
更に、前記メモリ112は、全体処理部151と、対応取得部152と、比較処理部153と、比較一時情報154と、比較結果情報155と、を保持する。ここで、全体処理部151と、対応取得部152と、比較処理部153については、プログラムで実現されるものであり、メモリ112に展開(ロード)されることを示し、これらに従ってCPU111が後述する処理を実行する。なお、このことは、メインフレーム計算機102やオープン計算機131についても同様である。
【0029】
前記比較一時情報154は、前記メインフレーム計算機102のプログラムの実行結果である一つのファイルと、前記オープン計算機103のプログラムの実行結果である一つのファイルとを、後に述べる比較処理部153において比較した結果である。
【0030】
前記比較結果情報155は、比較一時情報154を合成した、前記出力装置115に出力される、前記メインフレーム計算機102のプログラムの実行結果と、前記オープン計算機103のプログラムの実行結果との比較結果である。
【0031】
前記全体処理部151は、第一の実施の形態における各処理を順番に呼び出す処理部である。前記全体処理部151は、前記入力装置114からの入力を受け処理を開始し、前記CPU121と前記メモリ122への接続を通じ、後に述べるジョブ制御処理追加部171を呼び出し、次に前記CPU131と前記メモリ132への接続を通じ、後に述べるジョブ制御処理追加部191を呼び出し、最後に後に述べる対応取得部152を呼び出す。
【0032】
前記対応取得部152は、本発明の実施の第一の形態の特徴の一つである。前記対応取得部152により、メインフレーム計算機102の実行結果と、オープン計算機103のプログラムの実行結果とを(より好適には一括して)比較することが可能となる。前記対応取得部152は、前記新旧対応指定ファイル141に保持される前記プログラムの実行結果であるファイルの組み合わせを定義する情報を参照し、ファイルの組み合わせ毎にまず前記比較処理部153を呼び出した後、前記比較処理部153から前記比較一時情報154を受け取り、個々の前記比較一時情報154を前記比較結果情報155にまとめ、最後に、前記比較結果情報155を前記出力装置115に出力する。
【0033】
前記比較処理部153は、前記メインフレーム計算機102のプログラムの実行結果である前記バックアップファイル165の一つのファイルと、前記オープン計算機103のプログラムの実行結果である前記バックアップファイル185の一つのファイルとを比較し、比較一時情報154を出力する処理部である。
以上が、前記比較用計算機101の構成である。
【0034】
次に、前記メインフレーム計算機102の構成を説明する。
前記メインフレーム計算機102は、CPU121と、メモリ122と、を有する。
【0035】
前記CPU121と前記メモリ122とは、記憶装置123と、記憶装置124と、前記記憶装置125と、前記記憶装置126と、記憶装置127と、に接続する。
【0036】
前記記憶装置123は、前記メインフレーム計算機102の後に述べるジョブ制御処理を指定するジョブ制御ファイル161と、前記CPU121が前記メモリ122にロードすることにより実行対象のプログラムとなるプログラムファイル162と、を保持する。ジョブ制御処理は、ジョブステップの実行順序の指定である。ジョブステップは、実行対象となるプログラムの呼び出しとプログラムに対する入出力の情報との指定である。
【0037】
前記記憶装置124は、前記メインフレーム計算機102のプログラムに対する入出力の情報となるファイルである入出力ファイル163を保持する。
【0038】
前記記憶装置127は、後に述べるジョブ制御処理追加部171により、前記メインフレーム計算機102のジョブ制御ファイル161に、プログラムの実行結果である前記入出力ファイル163を前記バックアップファイル165に出力するジョブステップを追加したものである、新ジョブ制御ファイル166を保持する。
【0039】
更に、前記メモリ122は、ジョブ制御処理追加部171と、ジョブ投入部172と、ジョブ実行部173と、プログラム174と、バックアップ実行部175と、を保持する。
【0040】
前記ジョブ制御処理追加部171は、本発明の実施の第一の形態における特徴の一つである。前記ジョブ制御処理追加部171により、メインフレーム計算機102のプログラムの実行結果を一括して保存するための準備を行うことが可能となる。前記ジョブ制御処理追加部171は、前記保存対象指定ファイル164を参照し、前記ジョブ制御ファイル161に、バックアップ実行部175を呼び出すことによりプログラム174の実行結果を前記バックアップファイル165に出力するジョブステップを追加し、新ジョブ制御ファイル166として出力する。
【0041】
前記ジョブ投入部172は、複数のジョブ制御処理を一括して実行するために、新ジョブ制御ファイル166を読み込み、次に述べるジョブ実行部173に渡す処理部である。
【0042】
前記ジョブ実行部173は、新ジョブ制御ファイル166のジョブ制御処理に指定されたジョブステップを順番に実行する処理部である。前記ジョブ実行部173はジョブ投入部172から新ジョブ制御ファイル166を受け取り、新ジョブ制御ファイル166のジョブ制御処理の各ジョブステップに指定された後に述べるプログラム174に、前記ジョブステップに指定された入出力ファイル163を指定する情報を渡して起動し、また各ジョブステップに指定された後に述べるバックアップ実行部175に前記入出力ファイル163及び前記バックアップファイル165を指定する情報を渡して起動する。
【0043】
前記プログラム174は、比較対象となるプログラムである。前記プログラム174は、前記プログラムファイル162を前記メモリ174にロードしたものであり、実行の際に前記入出力ファイル163を入出力する。
【0044】
前記バックアップ実行部175は、前記プログラム174の実行結果である前記入出力ファイル163を保存するためのプログラムである。前記バックアップ実行部175は、実行の際に前記入出力ファイル163及び前記バックアップファイル165を入出力する。
以上が、前記メインフレーム計算機102の構成である。
【0045】
最後に、前記オープン計算機103の構成を説明する。
前記オープン計算機103は、CPU131と、メモリ132と、を有する。
前記CPU131と前記メモリ132とは、記憶装置133と、記憶装置134と、前記記憶装置135と、前記記憶装置136と、記憶装置137と、に接続する。
【0046】
前記記憶装置133は、前記オープン計算機103のジョブ制御処理を指定するジョブ制御ファイル181と、前記CPU131が前記メモリ132にロードすることにより実行対象のプログラムとなるプログラムファイル182と、を保持する。
【0047】
前記記憶装置134は、前記オープン計算機103のプログラムに対する入出力の情報となるファイルである入出力ファイル183を保持する。
【0048】
前記記憶装置137は、後に述べるジョブ制御処理追加部191により、前記ジョブ制御ファイル181に、プログラムの実行結果である前記入出力ファイル183を前記バックアップファイル185に出力するジョブステップを追加したものである、新ジョブ制御ファイル186を保持する。
【0049】
更に、前記メモリ132は、ジョブ制御処理追加部191と、ジョブ投入部192と、ジョブ実行部193と、プログラム194と、バックアップ実行部195と、を保持する。
【0050】
前記ジョブ制御処理追加部191は、前記メインフレーム計算機102における前記ジョブ制御処理追加部171と同じく、本発明の実施の第一の形態の特徴の一つである。前記ジョブ制御処理追加部191により、オープン計算機103のプログラムの実行結果を一括して保存するための準備を行うことが可能となる。前記ジョブ制御処理追加部191は、前記保存対象指定ファイル184を参照し、前記オープン計算機103のジョブ制御ファイル181に、バックアップ実行部195を呼び出すことによりプログラム194の実行結果を前記バックアップファイル185に出力するジョブステップを追加し、新ジョブ制御ファイル186として出力する。
【0051】
前記ジョブ投入部192は、複数のジョブ制御処理を一括して実行するために、新ジョブ制御ファイル186を読み込み、ジョブ実行部193に渡す処理部である。前記ジョブ投入部192は、前記メインフレーム計算機102における前記ジョブ投入部172と同種の処理を行う。
【0052】
前記ジョブ実行部193は、新ジョブ制御ファイル186のジョブ制御処理に指定されたジョブステップを順番に実行する処理部である。前記ジョブ実行部193はジョブ投入部192から新ジョブ制御ファイル186を受け取り、新ジョブ制御ファイル186のジョブ制御処理の各ジョブステップに指定された後に述べるプログラム194に、前記ジョブステップに指定された入出力ファイル183を指定する情報を渡して起動し、また各ジョブステップに指定された後に述べるバックアップ実行部195に前記入出力ファイル183及び前記バックアップファイル185を指定する情報を渡して起動する。前記ジョブ実行部193は、前記メインフレーム計算機102における前記ジョブ実行部173と同種の処理を行う。
【0053】
前記プログラム194は、前記メインフレーム計算機102における前記プログラム174との比較対象となるプログラムである。前記プログラム194は、前記プログラムファイル162を前記メモリ174にロードしたものであり、実行の際に前記入出力ファイル183を入出力する。
【0054】
前記バックアップ実行部195は、前記プログラム194の実行結果である前記入出力ファイル183を保存するためのプログラムである。前記バックアップ実行部195は、実行の際に前記入出力ファイル183及び前記バックアップファイル185を入出力する。前記バックアップ実行部195は、前記メインフレーム計算機102における前記バックアップ実行部175と同様の処理を行う。
以上が、前記オープン計算機103の構成である。
【0055】
前記新旧対応指定ファイル141と、前記ジョブ制御ファイル161と、前記入出力ファイル163と、前記保存対象指定ファイル164と、前記新ジョブ制御ファイル166と、前記ジョブ制御ファイル181と、前記入出力ファイル183と、前記保存対象指定ファイル184と、前記新ジョブ制御ファイル181と、前記比較一時情報153と、前記比較結果情報154と、の詳細な説明、及び、前記全体処理部151と、前記対応取得部152と、前記比較処理部153と、前記ジョブ制御処理追加部171と、前記ジョブ制御処理追加部191と、の詳細な流れ、及び、前記出力装置115の出力結果の詳細、については後述する。
【0056】
図2は、本発明の第一の実施の形態によるメインフレーム計算機102のソフトウェア構造を示す模式図である。オペレーティングシステム201は、ジョブ管理部202を有する。ジョブ管理部202はジョブ投入部172と、ジョブ実行部173を有する。運用ソフト203と、ジョブ204とはオペレーティングシステム201のジョブ管理部202の機能を利用する。ジョブ制御処理追加部171、プログラム174、バックアップ実行部175はオペレーティングシステム201の機能を利用する。
【0057】
以下、図3から図14を用いて、第一の実施の形態における各ファイルの詳細と、出力装置115の表示の詳細とを説明する。
【0058】
図3は、新旧対応指定ファイル141を示す図である。テーブル301は新旧対応指定ファイル141の一例であり、フィールドとして、オープンのバックアップファイルID311と、オープンのバックアップファイルパス312と、メインフレームのバックアップファイルID313と、メインフレームのバックアップファイルパス314を有する。レコード321は、オープンのバックアップファイルID311が「1」、オープンのバックアップファイルパス312が「/mnt/dsk2/backup1.dat」、メインフレームのバックアップファイルID313が「1」、メインフレームのバックアップファイルパス314が「/mnt/dsk1/BACKUP1」となる組み合わせを示している。なお、レコード321は、後の図10に示す保存対象指定ファイル184において、バックアップファイルID311に示すバックアップファイルID「1」であるバックアップファイルのバックアップファイルパスが「/mnt/dsk2/backup1.dat」であることと、後の図6に示す保存対象指定ファイル164において、バックアップファイルID313に示すバックアップファイルID「1」であるバックアップファイルのバックアップファイルパスが「/mnt/dsk1/BACKUP1」であることと、更に、前記2つのファイルが比較対象であることと、を意味する。
【0059】
図4は、ジョブ制御ファイル161を示す図である。ジョブ制御ファイル161には、ファイル名が「A001」であるジョブ制御ファイル401とファイル名が「A002」であるジョブ制御ファイル402が存在する。ジョブ制御ファイル401「A001」は、ジョブステップ411「STEP1」を有する。ジョブステップ411の入力ファイルの指定421は、入力ファイルが「FILE1」であることを、また、出力ファイルの指定422は出力ファイルが「FILE2」であることを、それぞれ示している。ジョブ制御ファイル402「A002」は、ジョブステップ431「STEP2」を有する。ジョブステップ431の入力ファイルの指定441は、入力ファイルが「FILE2」であることを、出力ファイルの指定442は出力ファイルが「FILE1」であることを、それぞれ示している。
【0060】
図5は、入出力ファイル163を示す図である。入出力ファイル501はファイル名が「FILE1」であるファイルの一例である。521、522及び523はレコードである。511、512及び513はフィールドである。例えば、レコード521のフィールド511の値は「1」である。531はファイル終了を表す。また、入出力ファイル502はファイル名が「FILE2」であるファイルの一例である。551及び552はレコードである。541及び542はフィールドである。561はファイル終了を表す。
【0061】
図6は、保存対象指定ファイル164を示す図である。表601は保存対象指定ファイル164の一例である。表601はフィールドとして、バックアップファイルID611と、元ファイル名612と、ジョブ制御ファイル名613と、ジョブステップ名614と、保存タイミング615と、保存先ファイル名616とを有する。また、表601はレコード621とレコード622を有する。レコード621は、バックアップファイルID611が「1」、元ファイル名612が「FILE1」、ジョブ制御ファイル名613が「A001」、ジョブステップ名614が「STEP1」、保存タイミング615が「ジョブステップの前」、保存先ファイル名616が「BACKUP1」であることを示す。なお、レコード621は、ジョブ制御ファイル名が「A001」であるジョブ制御ファイルのジョブステップ名が「STEP1」であるジョブステップの実行前にファイル名が「FILE1」であるファイルを、ファイル名「BACKUP1」であるファイルにコピーすること、ならびに、ファイル名「BACKUP1」であるファイルのバックアップファイルIDが「1」であることを示す。
【0062】
図7は、新ジョブ制御ファイル166を示す図である。新ジョブ制御ファイル166には、ジョブ制御ファイル701「A001」が存在する。ジョブ制御ファイル701「A001」は、本実施例に示す方法により、ジョブ制御ファイル401におけるジョブステップ411であるジョブステップ711の前後に、追加ジョブステップ712と追加ジョブステップ713が追加されたものである。ジョブステップ711の入力ファイルの指定721は、入力ファイルが「FILE1」であることを、出力ファイルの指定722は出力ファイルが「FILE2」であることを、それぞれ示している。また、追加ジョブステップ712の入力ファイルの指定731は、入力ファイルが「FILE1」であることを、出力ファイルの指定732は出力ファイルが「BACKUP1」であることを、それぞれ示している。更に、追加ジョブステップ713の入力ファイルの指定741は、入力ファイルが「FILE2」であることを、出力ファイルの指定742は出力ファイルが「BACKUP2」であることを、それぞれ示している。追加ジョブステップ712と追加ジョブステップ713により、保存対象指定ファイル164により指定される、比較対象となるバックアップファイルを保存することができる。
【0063】
図8は、ジョブ制御ファイル181を示す図である。ジョブ制御ファイル181には、ジョブ制御ファイル801「a001」とジョブ制御ファイル802「a002」が存在する。ジョブ制御ファイル801「a001」は、ジョブステップ811「step1」を有する。ジョブステップ811の入力ファイルの指定821は、入力ファイルが「file1.dat」であることを、出力ファイルの指定822は出力ファイルが「file2.dat」であることを、それぞれ示している。ジョブ制御ファイル802「a002」は、ジョブステップ831「step2」を有する。ジョブステップ831の入力ファイルの指定841は、入力ファイルが「file2.dat」であることを、出力ファイルの指定842は出力ファイルが「file1.dat」であることを、それぞれ示している。
【0064】
図9は、入出力ファイル183の表示を示す図である。入出力ファイル901はファイル名が「file1.dat」であるファイルの一例である。921、922及び923はレコードである。911、912及び913はフィールドである。例えば、レコード921のフィールド911の値は「1」である。931はファイル終了を表す。また、入出力ファイル902はファイル名が「file2.dat」であるファイルの一例である。951及び952はレコードである。941及び942はフィールドである。961はファイル終了を表す。なお、図9に示す入出力ファイル902と、図5に示した入出力ファイル502は、レコード952及びレコード552の値が異なる。
【0065】
図10は、保存対象指定ファイル184を示す図である。表1001は保存対象指定ファイル184の一例である。表1001はフィールドとして、バックアップファイルID1011と、元ファイル名1012と、ジョブ制御ファイル名1013と、ジョブステップ名1014と、保存タイミング1015と、保存先ファイル名1016とを有する。また、表1001はレコード1021とレコード1022を有する。レコード1021は、バックアップファイルID1011が「1」、元ファイル名1012が「file1.dat」、ジョブ制御ファイル名1013が「a001」、ジョブステップ名1014が「step1」、保存タイミング1015が「ジョブステップの前」、保存先ファイル名1016が「/mnt/drv1/backup1.dat」であることを示す。
【0066】
図11は、新ジョブ制御ファイル181を示す図である。新ジョブ制御ファイル181には、ジョブ制御ファイル1101「a001」が存在する。ジョブ制御ファイル1101「a001」は、本実施例に示す方法により、ジョブ制御ファイル801におけるジョブステップ811であるジョブステップ1111の前後に、追加ジョブステップ1112と追加ジョブステップ1113が追加されたものである。ジョブステップ1111の入力ファイルの指定1121は、入力ファイルが「file1.dat」であることを、出力ファイルの指定1122は出力ファイルが「file2.dat」であることを、それぞれ示している。また、追加ジョブステップ1112の入力ファイルの指定1131は、入力ファイルが「file1.dat」であることを、出力ファイルの指定1132は出力ファイルが「/mnt/drv1/backup1.dat」であることを、それぞれ示している。更に、追加ジョブステップ1113の入力ファイルの指定1141は、入力ファイルが「file2.dat」であることを、出力ファイルの指定1142は出力ファイルが「/mnt/drv1/backup2.dat」であることを、それぞれ示している。
【0067】
図12は、比較一時情報153を示す図である。表1201は比較一時情報153の一例である。表1201はフィールドとして、オープンファイルレコード番号1211と、メインフレームファイルレコード番号1212と、同異1213とを有する。また、レコードとして、1221、1222、1223を有する。レコード1221は、オープンファイルレコード番号1211が「1」であり、メインフレームファイルレコード番号1212が「1」であり、同異1213が「等しい」であることを示している。
【0068】
図13は、比較結果情報154の表示を示す図である。表1301は比較結果情報154の表示の一例である。表1301はフィールドとして、レコード番号1311と、オープンのジョブ制御ファイル名1312と、オープンのジョブステップ名1313と、オープンファイルの保存タイミング1314と、オープンファイル名1315と、オープンファイルレコード番号1316と、メインフレームのジョブ制御ファイル名1317と、メインフレームのジョブステップ名1318と、メインフレームファイルの保存タイミング1319と、メインフレームファイル名1320と、メインフレームファイルレコード番号1321と、同異1322と、を有する。また、レコードとして、レコード1331と、レコード1332と、レコード1333と、レコード1334と、レコード1335と、レコード1336と、を有する。レコード1331は、レコード番号1311が「1」であり、オープンのジョブ制御ファイル名1312が「a001」であり、オープンのジョブステップ名1313が「step1」であり、オープンファイルの保存タイミング1314が「ジョブステップの前」であり、オープンファイル名1315が「file1.dat」であり、オープンファイルレコード番号1316が「1」であり、メインフレームのジョブ制御ファイル名1317が「STEP1」であり、メインフレームのジョブステップ名1318が「A001」であり、メインフレームファイルの保存タイミング1319が「ジョブステップの前」であり、メインフレームファイル名1320が「FILE1」であり、メインフレームファイルレコード番号1321が「1」であり、同異1322が「等しい」であることを示している。なお、レコード1331は、オープン計算機103のジョブ制御ファイル名が「a001」であるジョブ制御ファイルのジョブステップ名が「step1」であるジョブステップの実行前にバックアップされたファイル名が「file1.dat」であるファイルの第1番目のレコードと、メインフレーム計算機102のジョブ制御ファイル名が「A001」であるジョブ制御ファイルのジョブステップ名が「STEP1」であるジョブステップの実行前にバックアップされたファイル名が「FILE1」であるファイルの第1番目のレコードとが、比較処理部153により等しいと判断されたことを示す。
【0069】
図14は、出力装置115の表示を示す図である。比較結果表示1401は、出力装置115の表示の一例である。比較結果1411は、オープンのジョブ制御ファイル「a001」の実行結果と、メインフレームのジョブ制御ファイル「A001」の実行結果とが異なることを表す。ファイル比較結果1411は、ジョブ制御ファイル「a001」のジョブステップ「step1」実行前のオープンファイル「file1.dat」と、ジョブ制御ファイル「A001」のジョブステップ「STEP1」実行前のメインフレームファイル「FILE1」は等しいことを表す。ファイル比較結果1412は、ジョブ制御ファイル「a001」のジョブステップ「step1」実行後のオープンファイル「file2.dat」と、ジョブ制御ファイル「A001」のジョブステップ「STEP1」実行後のメインフレームファイル「FILE2」は等しいこと、及び前記オープンファイル「file2.dat」の第2レコードはオープンにのみ存在すること、及び、メインフレームファイル「FILE2」の第2レコードはメインフレームにのみ存在することを表す。
【0070】
次に、第一の実施の形態における、各処理部での処理の流れを説明する。
まず、全体処理部151の処理の流れを、図15のフローチャートを参照しながら、詳細に説明する。第一に、入力装置から全体処理部151の起動を受け付ける(ステップ1501)次に、メインフレーム計算機102のジョブ制御処理追加部171を呼び出す(ステップ1502)。次に、オープン計算機103のジョブ制御処理追加部191を呼び出す(ステップ1503)。最後に、対応取得部152を呼び出す(ステップ1504)。ステップ1502及び1503の順番は前後しても、また並列でも構わない。また、バックアップファイル内のデータの文字コードを一致させる処理を設け、上記のステップ1504を実行する前に、必要に応じて実行させる。
【0071】
次に、ジョブ制御処理追加部171の処理の流れを、図16のフローチャートと、図6の保存対象指定ファイル164と、図7の新ジョブ制御ファイル166と、を参照しながら、詳細に説明する。ジョブ制御処理追加部171の処理を開始後、保存対象指定ファイル164の上から一レコードを読み込む(ステップ1601)。次に、ステップ1601において読み込んだジョブ制御ファイル名613に対応するジョブ制御ファイルをジョブ制御ファイル161から読み込む(ステップ1602)。ステップ1602において読み込んだジョブ制御ファイルに対し、ステップ1601において読み込んだジョブステップ名614及び保存タイミング615の指定する箇所に、元ファイル名612から保存先ファイル名616へバックアップを行うジョブステップを追加する(ステップ1603)。図6及び図7を例にして示すと、レコード621の情報をもとに、ジョブステップ712が追加される。次に、保存対象指定ファイル164における、ステップ1601において読み込んだレコードの次のレコードがあり、かつ次のレコードが、ステップ1601において読み込んだジョブ制御ファイル名613と同じ値のジョブ制御ファイル名613を有するかを判断し(ステップ1604)、有する場合は、ステップ1602において読み込んだジョブ制御ファイルをジョブ制御ファイル166に出力する(ステップ1605)。有さない場合は、何も行わない。図6を例にして示すと、レコード621を処理している場合は、何も行わず、レコード622を処理している場合は、図7に示すジョブ制御ファイルをジョブ制御ファイル166に出力する。ステップ1604及びステップ1605の後に、保存対象指定ファイル164の次のレコードがあるか(ステップ1606)を判断し、ある場合はステップ1601に戻る。ない場合は、ジョブ投入部172を起動し(ステップ1607)、ジョブ制御処理追加部171の処理を終了する。なお、ジョブ制御処理追加部191は、ジョブ制御処理追加部171と同様の処理を行う。
【0072】
次に、対応取得部152の処理の流れを、図3の新旧対応指定ファイル141と、図17のフローチャートとを参照しながら、詳細に説明する。まず、対応取得部152は、比較一時情報155の各レコードを削除する(ステップ1701)。次に、新旧対応指定ファイル141に未読のレコードがある(ステップ1702)場合は、新旧対応指定ファイル141から、未読の1レコード、すなわち、オープンのバックアップファイルID311「X」と、オープンのバックアップファイルパス312と、メインフレームのバックアップファイルID313と、メインフレームのバックアップファイル名314と、を読み込む(ステップ1703)。以下、ステップ1703で読み込んだ、オープンのバックアップファイルID311を「X」とし、オープンのバックアップファイルパス312を「A」とし、メインフレームのバックアップファイルID313を「Y」とし、メインフレームのバックアップファイル名314を「B」とする。ステップ1503の後、オープン計算機102のバックアップファイル185から、バックアップファイルパス「A」により指定されるファイルを読み込み(ステップ1704)、メインフレーム計算機103のバックアップファイル165から、バックアップファイルパス「B」により指定されるファイルを読み込む(ステップ1705)。以下、本文中において、バックアップファイルパス「A」により指定されるファイルをファイル「A」と呼び、またバックアップファイルパス「B」により指定されるファイルをファイル「B」と呼ぶ。ステップ1705の後、ファイル「A」とファイル「B」の両方が存在しない(ステップ1706)場合は、ステップ1702に戻る。ステップ1705の後、ファイル「A」とファイル「B」の両方が存在する(ステップ1706)場合は、比較処理部153にファイル「A」とファイル「B」を渡す(ステップ1707)。図3を例にして示すと、レコード321を処理している場合は、ファイルパスが「/mnt/dsk2/backup1.dat」であるファイルと、ファイルパスが「/mnt/dsk1/BACKUP1」であるファイルとを渡す。ステップ1707の後に、比較処理部153から比較一時情報155を受け取る(ステップ1708)。ステップ1708の後、保存対象指定ファイル184から、値が「X」であるオープンのバックアップファイルID1011を有する行の元ファイル名1012、ジョブ制御ファイル名1013、ジョブステップ名1014、保存タイミング1015を読み込む(ステップ1709)。次に、保存対象指定ファイル164から、値が「Y」であるメインフレームのバックアップファイルID611を有する行の元ファイル名612、ジョブ制御ファイル名613、ジョブステップ名614、保存タイミング615を読み込む(ステップ1710)。次に、比較一時情報155のレコードごとに、比較一時情報155の1レコードの情報及び、ステップ1709およびステップ1710において取得した情報を、比較結果情報154に追加し(ステップ1711)、ステップ1702に戻る。新旧対応指定ファイル141に未読のレコードがない(ステップ1702)場合は、比較結果情報154を出力装置103に送信し(ステップ1712)、対応取得部152の処理を終了する。
【0073】
次に、比較処理部153の処理の流れを、図18のフローチャートを参照しながら、詳細に説明する。まず、対応取得部152からファイル「A」と、ファイル「B」とを取得する(ステップ1801)。次に、変数iの値を「1」、jの値を「1」とする(ステップ1802)。次に、iがオープンファイルのレコード数「M」を超過するかを判断する(ステップ1803)。ステップ1803において超過する場合は、jがメインフレームファイルのレコード数「N」を超過するかを判断する(ステップ1804)。ステップ1804において超過しない場合は、比較一時情報155に、kの値が「i」から「N」まで、オープンファイルレコード番号1214に「なし」、メインフレームファイルレコード番号1215に「k」、同異1216に「異なる」となるN−i+1個の組み合わせを追加し(ステップ1805)、比較一時情報155を対応取得部152に送信し(ステップ1813)、対応取得部152の処理を終了する。ステップ1804においてjがメインフレームファイルのレコード数「N」を超過する場合は、ステップ1813を実行し、対応取得部152の処理を終了する。ステップ1803において、iがオープンファイルのレコード数「M」を超過しない場合は、jがメインフレームファイルの行数Nを超過するかを判断する(ステップ1806)。ステップ1806においてjがメインフレームファイルの行数Nを超過する場合は、比較一時情報155に、kの値が「i」から「N」まで、オープンファイルレコード番号1214に「k」、メインフレームファイルレコード番号1215に「なし」、同異1216に「異なる」のN−i+1個の組み合わせを追加する(ステップ1807)。ステップ1807の後に、比較一時情報155を対応取得部152に送信し(ステップ1813)、比較処理部153の処理を終了する。ステップ1806においてjがメインフレームファイルの行数Nを超過しない場合は、オープンファイルレコードiに対し、メインフレームファイルのレコードjの内容が等しいかを判断する(ステップ1808)。ステップ1808においてオープンファイルレコードiに対し、メインフレームファイルのレコードjの内容が等しい場合は、比較一時情報155に、オープンファイルレコード番号1214に「i」、メインフレームファイルレコード番号1215に「j」、同異1216に「等しい」の組み合わせを追加し(ステップ1809)、i及びjにそれぞれ「1」を加算する(ステップ1810)。ステップ1810の後に、ステップ1803に戻る。ステップ1808においてオープンファイルレコードiに対し、メインフレームファイルのレコードjの内容が異なる場合は、比較一時情報155に、オープンファイルレコード番号1214に「なし」、メインフレームファイルレコード番号1215に「j」、同異1216に「異なる」の組み合わせを追加し(ステップ1811)、jに「1」を加算し(ステップ1812)、ステップ1803に戻る。なお、差分を示すアルゴリズムは、図18に示す方法に限定されるものではない。
【0074】
最後に、本発明の第一の実施の形態全体の処理の流れを、図19のタイムチャートを参照しながら、詳細に説明する。入力装置114(活性区間1901)は、全体処理部151を呼び出す(メッセージ1902)。開始された全体処理部151(活性区間1903)は、メインフレーム計算機102のジョブ制御処理追加部171を呼び出す(メッセージ1904)。ジョブ制御処理追加部171の処理実行(活性区間1905)及び終了(メッセージ1906)後、全体処理部151はオープン計算機103のジョブ制御処理追加部191を呼び出す(メッセージ1907)。ジョブ制御処理追加部191の処理実行(活性区間1908)及び終了(メッセージ1909)し、最後に全体処理部151は比較用計算機101の対応取得部152を呼び出す(メッセージ1910)。対応取得部152は実行中に(活性区間1911)、比較処理部153を呼び出し(範囲1912)、各比較処理が終了(メッセージ1913)後、出力装置115に比較結果を送付する。
【0075】
なお、第一の実施の形態の装置構成において、メインフレーム計算機102とオープン計算機103は種類の異なる計算機である必要、もしくは特定の種類の計算機に縛られる必要はなく、第一の実施の形態を実行可能な計算機であれば、いかなる種類の計算機を用いて実現してもよい。
【0076】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアを用いて実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、磁気テープ、DVD等の記録媒体に置くことができる。
【0077】
また、各構成要素の接続は説明上必要と考えられるものを示しており、必ずしも全ての接続を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【実施例2】
【0078】
以下、図20から図25を用いて、多数のプログラムを動作確認する場合に、比較すべきプログラムの実行結果の組み合わせを作成し、多数のプログラムの実行結果を一括して保存し、かつ、実行結果の違いを一括して判別し、かつ、比較すべきファイルの組み合わせに優先順位をつけることにより優先すべき比較作業を先に実行し、かつ、ファイル比較で違いがあった場合に、下位の優先順位のファイルの組み合わせを比較するため、不具合が生じているプログラムを効率的にあらいだすことができる、第二の実施の形態(実施例2)におけるプログラムの実行結果の比較方法について説明する。
【0079】
図20は、第二の実施の形態の全体図である。図20に示す比較用計算機2001は、メインフレーム計算機102のプログラムの実行結果と、オープン計算機103のプログラムの実行結果とを一括して比較するための装置である。図20に示すメインフレーム計算機102と、オープン計算機103は、第一の実施の形態と同じである。
以下、前記比較用計算機2001の構成を説明する。
【0080】
前記比較用計算機2001は、第一の実施の形態と同様のCPU111と、メモリ2011と、を有する。
【0081】
前記CPU111と前記メモリ2011とは、記憶装置2012と、前記入力装置114と、前記出力装置115と、に接続する。更に、前記CPU111と前記メモリ2011とは、第一の実施の形態と異なり、前記記憶装置123と、前記記憶装置133とに接続する。
【0082】
前記記憶装置2012は、対応設定ファイル2021と、新旧対応指定ファイル2022と、を保持する。
【0083】
前記対応設定ファイル2021は、比較すべきプログラムの実行結果の組をジョブ制御ファイルの情報から抽出するための、ジョブ制御ファイル名とジョブ制御ファイル内のジョブステップ名とプログラムの入出力ファイル名との変換ルールを格納する。
【0084】
前記新旧対応指定ファイル2022は、第一の実施の形態の新旧対応指定ファイル141の保持する情報に追加し、比較すべき前記メインフレーム計算機102のプログラムの実行結果と、前記オープン計算機103のプログラムの実行結果との組み合わせを対象とする、比較の優先順位を定義する情報を格納する。
【0085】
また、前記メモリ2011は、全体処理部2031と、対応生成部2032と、対応取得部2033と、前記比較処理部153と、第一の実施の形態と同じ比較一時情報154と、第一の実施の形態と同じ比較結果情報155と、を保持する。
【0086】
前記全体処理部2031は、第一の実施の形態における前記全体処理部151と同様に、第二の実施の形態における各処理を順番に呼び出す処理部である。前記全体処理部2031は、前記入力装置114からの入力を受け処理を開始し、後に述べる対応生成部2032を呼び出し、前記CPU121と前記メモリ122への接続を通じ、前記ジョブ制御処理追加部171を呼び出し、前記CPU131と前記メモリ132への接続を通じ、前記ジョブ制御処理追加部191を呼び出し、最後に後に述べる対応取得部2033を呼び出す。
【0087】
前記対応生成部2032は、本発明の実施の第二の形態における特徴の一つである。前記対応生成部2032により、多数のプログラムの実行結果の比較の準備の一つである、プログラム実行結果の対応関係の取得を効率化することができる。前記対応生成部2032は、前記対応設定ファイル2021と、ジョブ制御ファイル161とを参照し、ジョブ制御ファイル161の個々のファイル名とジョブ制御ファイルのジョブステップとプログラムの入出力ファイル名と対応設定ファイル2021の変換ルールとを比較し、ジョブ制御ファイル161の保存タイミングと、ジョブ制御ファイル181の個々のジョブステップと入出力ファイル名と保存タイミングとを作成し、ジョブ制御ファイル161のジョブステップと入出力ファイル名と保存タイミングを保存対象指定ファイル164に出力し、ジョブ制御ファイル181のジョブステップと入出力ファイル名を保存対象指定ファイル184に出力し、比較対照するバックアップファイルの情報を保存対象指定ファイル2023に出力する。
【0088】
前記対応取得部2033は、本発明の実施の第二の形態の特徴の一つである。前記対応取得部2033により、比較すべきプログラムの実行結果の組み合わせの優先順位である比較レベルを参照し、優先すべき比較作業を先に実行し比較結果を受け取ることができる。また、前記対応取得部2033により、ファイル比較時に違いがあった場合にのみ、下位の優先順位のファイルの組み合わせを比較することにより、ジョブの実行結果違いのあるなしに応じて比較結果の出力を減らすことができる。前記対応取得部2033は、第一の実施の形態における前記対応取得部152の処理に追加して、前記新旧対応指定ファイル2022に保持される前記プログラムの実行結果であるバックアップファイル165とバックアップファイル185の組み合わせを定義する情報と、前記組み合わせの優先順位の情報を参照し、優先順位が上位の前記組み合わせに対し前記比較処理部153を呼び出す処理と、前記組み合わせに対し前記比較処理部153から受け取った前記比較一時情報154に、バックアップファイル165とバックアップファイル185に違いがある場合(これらに異なる情報が含まれる)に、より下位の優先順位の組み合わせに対し前記比較処理部153を呼び出す処理と、を有する。この処理は、違いがある場合に限って、比較処理部153を呼び出すようにしてもよい。
以上が、前記比較用計算機2001の構成である。
【0089】
以下、図21から図22を用いて、第二の実施の形態における各ファイルの詳細の説明を行う。
図21は、対応設定ファイル2021を示す図である。表2101は、対応設定ファイル2021の一例である。表2101はフィールドとして、変換ルール種類2111と、変換ルール2112と、を有する。また、レコードとして、2121と、2122と、2123と、を有する。レコード2121は、変換ルール種類2111が「ジョブ制御ファイル変換ルール」であり、変換ルール2112が「”/mnt/dsk2/”+downcase(変換前ファイル名)+”.dat”」であることを示している。レコード2122は、変換ルール種類2111が「ジョブステップ変換ルール」であり、変換ルール2112が「同位置」であることを示している。すなわち、ジョブ制御ファイル161とジョブ制御ファイル181とにおいて実行順番が同じジョブステップを対応すると対応生成部2032がみなすことを意味する。レコード2123は、変換ルール種類2111が「入出力ファイル名変換ルール」であり、変換ルール2112が「downcase(変換前ファイル名)」であること、すなわち変換前の名称の小文字化を行うことを示している。変換ルール2112には、ジョブステップが同位置であるか、文字列、文字列の結合、「if−then」ルール、変換前の名称の大文字化、変換前の名称の小文字化、またはその組み合わせを記述することができる。図21の例の他に、たとえばフィールド2112に変換に使用するプログラム名を指定し、プログラムを用いて変換する方法も考えられる。
【0090】
図22は、新旧対応指定ファイル2022を示す図である。表2201は、新旧対応指定ファイル2022の一例である。表2201は、図3に示す新旧対応指定ファイル141の一例である表301に追加して、フィールドとして、比較グループ2211と、比較レベル2212とを有する。また、表2201はレコードとして、2221及び2222を有する。レコード2221は、オープンのバックアップファイルID311が「1」、オープンのバックアップファイルパス312が「/mnt/dsk2/backup1.dat」、メインフレームのバックアップファイルID313が「1」、メインフレームのバックアップファイルパス314が「/mnt/dsk1/BACKUP1」であり、比較グループ2211が「1」であり、比較レベル2212が「2」である組み合わせを示している。
【0091】
次に、第二の実施の形態における、各処理部での処理の流れを説明する。
まず、全体処理部2031の処理の流れを、図23のフローチャートを参照しながら、詳細に説明する。第一の実施例の全体処理部151と異なり、入力装置から全体処理部2031の起動を受け付けた(ステップ2301)後、まず対応生成部2032を呼び出す(ステップ2302)。次に、ステップ1502及びステップ1503を実行し、最後に対応取得部2033を呼び出す(ステップ2303)。なお、ここでは、各部を呼び出す順序を規定したが、これらは実際に処理がその順序で実施されれば構わない。これは、第一の実施の形態でも同様である。
【0092】
次に、対応生成部2032の処理の流れを、図24のフローチャートを参照しながら、詳細に説明する。第一に、対応生成部2032は、入力装置114から起動を受け付ける(ステップ2401)。次に、対応設定ファイル2021を読み込む(ステップ2402)。次に、未処理のメインフレームのジョブ制御ファイル161があるかどうかを判断し(ステップ2403)、ある場合は、対応設定ファイル2021のジョブ制御ファイル変換ルール2121からオープンのジョブ制御ファイルの条件を作成する(ステップ2404)。ステップ2404の次に、ステップ2404において作成した条件のオープンのジョブ制御ファイルが存在し、かつステップ2404において取得したメインフレームのジョブ制御ファイルに未処理のジョブステップがあるかを判断し(ステップ2405)、ある場合は、対応設定ファイル2021のジョブステップ変換ルール2122からオープンのジョブステップ条件を作成する(ステップ2406)。ステップ2406の次に、ステップ2406において作成した条件のオープンのジョブステップが存在し、かつステップ2405において取得したジョブステップに未処理の入出力ファイルがあるかを判断する(ステップ2407)。ある場合は、対応設定ファイル2021の入出力ファイル名変換ルール2123から対応するオープンのファイル名の条件を作成する(ステップ2408)。ステップ2408の後に、ステップ2408において作成した条件のオープンの入出力ファイルが存在し、かつ保存対象指定ファイル164と保存対象指定ファイル情報184に同じ入出力ファイルが指定されておらず、かつ新旧対応指定ファイル情報2022に同じ対応がないかを判断し(ステップ2409)、ない場合は、保存対象指定ファイル164に元ファイル名612とジョブ制御ファイル名613とジョブステップ名614を出力し、保存タイミング615を入力ファイルの場合は「ジョブステップの前」、出力ファイルの場合はジョブステップの後とし、バックアップファイルID611を付与する(ステップ2410)。ステップ2410の後に、保存対象指定ファイル情報184に元ファイル名1012とジョブ制御ファイル名1013とジョブステップ名1014とを出力し、ステップ2410と同じ保存タイミング1015を指定し、バックアップファイルID1011を出力する(ステップ2411)。ステップ2411の後に、ステップ2410及びステップ2411において付与したバックアップファイルIDと、オープンのバックアップファイルパス312及びメインフレームのバックアップファイルパス314と比較グループ2211と比較レベル2212とを保存対象指定ファイル2023に出力し(ステップ2412)、ステップ2407へ戻る。比較グループ2211は、たとえば処理対象が同じジョブ制御ファイルであれば、同じとする。また、比較レベル2212は、例えばジョブ制御ファイルの最初と最後のジョブステップを1とし、それ以外のジョブステップに2以上の値を連番で付与する。ステップ2403において、未処理のメインフレームのジョブ制御ファイル161がない場合は、対応生成部2032の処理を終了する。ステップ2407において、ステップ2406において作成した条件のオープンのジョブステップがないか、またはステップ2405において取得したジョブステップに未処理の入出力ファイルがない場合は、ステップ2405に戻る。ステップ2409において、ステップ2408において作成した条件のオープンの入出力ファイルが存在しないか、または、保存対象指定ファイル164または保存対象指定ファイル情報184に同じ入出力ファイルが指定されているか、または新旧対応指定ファイル情報2022に同じ対応がある場合は、ステップ2408に戻る。対応生成部2032の一連の処理により、比較すべきファイルの対応関係を作成することができる。
【0093】
最後に、対応取得部2033の処理の流れを、図25のフローチャート及び図13の比較一時情報155と図17のフローチャートを参照しながら、詳細に説明する。まず、図25に示すように、対応取得部2033は、比較レベルを1とし、対象グループを1とする(ステップ2501)。次に、第一の実施の形態の対応取得部152の一例である図17に示すステップ1701を行う。ステップ1701の次に、新旧対応指定ファイル141に現在の比較レベルであるレコードであり、かつ未読であるレコードがあるかを判断し(ステップ2502)、レコードがある場合は、図17に示すステップ1703〜ステップ1705を実行する。ステップ1705の次に、ファイル「A」とファイル「B」の両方が存在する(ステップ1706)場合は、ステップ1707〜ステップ1711を実行する。ステップ1711の後に、現在の比較レベルのレコードを対象としステップ1711において図13の比較一時情報155の同異1322が「異なる」となる比較結果があったかを判断し(ステップ2503)、ある場合は、レベルを1増加し(ステップ2504)、ステップ1701に戻る。ステップ2503において、現在の比較レベルのレコードを対象としステップ1711において「異なる」となる比較結果がなかった場合は、新旧対応指定ファイル141に未処理のグループがあるかを判断し(ステップ2505)、ある場合は、比較レベルを1とし、対象グループを1増加させる(ステップ2506)。ステップ2506の後に、ステップ1701に戻る。ステップ1705の後、ファイル「A」とファイル「B」の両方が存在しない(ステップ1706)場合は、ステップ1702に戻る。ステップ2502において、新旧対応指定ファイル141に現在の比較レベルでありかつ未読のレコードがない場合は、ステップ2503の判断と、ステップ2503に引き続くステップを実行する。ステップ2505において、新旧対応指定ファイル141に未処理のグループがない場合は、ステップ1712を実行し、対応取得部2033の処理を終了する。ステップ2503〜ステップ2506により、レベルの数値の小さいファイルの組み合わせから比較し、使用者が知りたい結果から先に受け取ることができる。また、グループの設定により、たとえばジョブ制御ファイルの最初と最後だけを比較し、問題がなければ途中の比較を省くことにより、比較の量を減らすことができる。
【0094】
なお、第一の実施の形態と同じく、第二の実施の形態の装置構成において、メインフレーム計算機とオープン計算機は種類の異なる計算機である必要、もしくは特定の種類の計算機に縛られる必要はなく、第二の実施の形態を実行可能な計算機であれば、いかなる種類の計算機を用いて実現してもよい。
【0095】
また、第一の実施の形態と同じく上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアを用いて実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、磁気テープ、DVD等の記録媒体に置くことができる。
【0096】
また、第一の実施の形態と同じく、構成要素間の接続は説明上必要と考えられるものを示しており、必ずしも全ての接続を示しているとは限らない。
【0097】
最後に、本発明は上記した二つの実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0098】
101 比較用計算機
102 メインフレーム計算機
103 オープン計算機
114 入力装置
115 出力装置
141 新旧対応指定ファイル
152 対応取得部
153 比較処理部
155 比較結果情報
161 ジョブ制御ファイル
166 新ジョブ制御ファイル
171 ジョブ制御処理追加部
172 ジョブ投入部
181 ジョブ制御ファイル
186 新ジョブ制御ファイル
191 ジョブ制御処理追加部
192 ジョブ投入部

【特許請求の範囲】
【請求項1】
複数のプログラムであって、互いに対応関係を有するプログラムの実行結果を比較するプログラムの実行結果の比較方法において、
前記複数のプログラムのそれぞれの実行結果の組み合わせを定義する情報と、実行すべきプログラムである第1のプログラムを指定するジョブ制御ファイルとを参照し、前記第1のプログラムと当該プログラムと比較すべき第2のプログラムの実行結果の対を基にプログラムの実行結果を出力するジョブステップをジョブ制御ファイルに追加するステップと、
前記プログラムの実行結果の組み合わせを定義する情報を参照し前記プログラム実行により得られた前記第1および第2のプログラムの実行結果を比較するステップと、
を有することを特徴とすることを特徴とするプログラムの実行結果の比較方法。
【請求項2】
請求項1に記載のプログラムの実行結果の比較方法において、
予め格納された変換規則とジョブ制御ファイルとを参照し、当該ジョブ制御ファイルに定義されるプログラムの入力情報と実行結果の文字列を前記変換規則に従い変換し、比較すべき前記プログラムの実行結果の組み合わせを定義する情報を生成するステップをさらにを有することを特徴とするプログラムの実行結果の比較方法。
【請求項3】
請求項1に記載のプログラムの実行結果の比較方法において、
前記プログラムの実行結果の組み合わせの順位を参照しプログラムの実行結果の比較作業の実行順序を決定するステップをさらに有することを特徴とするプログラムの実行結果の比較方法。
【請求項4】
請求項3に記載のプログラムの実行結果の比較方法において、
前記プログラムの実行結果に違いがあった場合に下位の順位のプログラムの実行結果の組み合わせを比較するステップをさらに有することを特徴とするプログラムの実行結果の比較方法。
【請求項5】
複数のプログラムであって、互いに対応関係を有するプログラムの実行結果を比較するプログラムの実行結果の比較装置において、
前記複数のプログラムのそれぞれの実行結果の組み合わせを定義する情報と、実行すべきプログラムである第1のプログラムを指定するジョブ制御ファイルとを参照し、前記第1のプログラムと当該プログラムと比較すべき第2のプログラムの実行結果の対を基にプログラムの実行結果を出力するジョブステップをジョブ制御ファイルに追加する手段と、
前記プログラムの実行結果の組み合わせを定義する情報を参照し前記プログラム実行により得られた前記第1および第2のプログラムの実行結果を比較する手段と、
を有することを特徴とすることを特徴とするプログラムの実行結果の比較装置。
【請求項6】
請求項5に記載のプログラムの実行結果の比較装置において、
予め格納された変換規則とジョブ制御ファイルとを参照し、当該ジョブ制御ファイルに定義されるプログラムの入力情報と実行結果の文字列を前記変換規則に従い変換し、比較すべき前記プログラムの実行結果の組み合わせを定義する情報を生成する手段をさらに有することを特徴とするプログラムの実行結果の比較装置。
【請求項7】
請求項5に記載のプログラムの実行結果の比較装置において、
前記プログラムの実行結果の組み合わせの順位を参照しプログラムの実行結果の比較作業の実行順序を決定するステップをさらに有することを特徴とするプログラムの実行結果の比較装置。
【請求項8】
請求項7に記載のプログラムの実行結果の比較装置において、
前記プログラムの実行結果に違いがあった場合に下位の順位のプログラムの実行結果の組み合わせを比較する手段をさらに有することを特徴とするプログラムの実行結果の比較装置。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2012−226504(P2012−226504A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−92625(P2011−92625)
【出願日】平成23年4月19日(2011.4.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】