(57)【要約】【課題】作成者や試験者の負担を軽減する。【解決手段】プログラム生成装置１は、予め決められた形式で擬似ホストの動作に関するデータ項目が配置され、各ユーザの仕様書から抽出したデータ項目値が登録されている各ユーザの仕様データテーブル３ａ，３ｂを取得する。コマンド生成手段１ｂは、パターン記憶手段１ａから仕様データテーブル３ａ，３ｂのデータ項目に対応するコマンドパターンを読み出し、コマンドパターンとデータ項目値を用いてコマンドを生成する。コマンド配置手段１ｃは、生成したコマンド群をシミュレーションプログラムとして、コマンドの呼び出し関係に応じた階層構造に対応する記憶領域に配置する。【選択図】図１
2011113542.tif 000002
【特許請求の範囲】
【請求項１】
端末装置の試験に用いる擬似ホストコンピュータを動作させるシミュレーションプログラム生成プログラムにおいて、
コンピュータを、
予め決められた所定の形式で、前記擬似ホストコンピュータの動作に関するデータ項目に対応する項目値が配置される仕様データテーブルを有し、前記仕様データテーブルの形式に応じて前記擬似ホストコンピュータを動作させるコマンドの形式を定義したコマンドパターンを記憶するパターン記憶手段から前記仕様データテーブルに対応する前記コマンドパターンを抽出し、抽出した前記コマンドパターンに基づき、前記仕様データテーブルに登録される項目値を用いてコマンドを生成するコマンド生成手段、
前記コマンド生成手段によって生成されたコマンド群をシミュレーションプログラムとして記憶するプログラム記憶手段の記憶領域を前記コマンド間の呼び出し関係に応じた階層に対応付けて分割し、生成された前記コマンドを該コマンドの呼び出し関係に基づく階層に対応する前記記憶領域に配置するコマンド配置手段、
として機能させることを特徴とするシミュレーションプログラム生成プログラム。
【請求項２】
前記仕様データテーブルは、前記階層ごとに該階層の特徴に応じた前記データ項目が設定される階層別仕様データテーブルの集合であり、前記擬似ホストコンピュータが再現するアプリケーションを提供するそれぞれのユーザに対して作成され、
前記コマンド生成手段は、前記階層ごとに、対応する前記階層別仕様データテーブルに基づいて前記コマンドを生成し、
前記コマンド配置手段は、前記階層ごとに生成された前記コマンドを該階層に対応する前記記憶領域に配置する、
ことを特徴とする請求項１記載のシミュレーションプログラム生成プログラム。
【請求項３】
前記コマンド配置手段は、
前記シミュレーションプログラムの最も浅い第１の階層に、前記端末装置から取得した通信データに基づいて前記擬似ホストコンピュータが再現するアプリケーションを提供するそれぞれのユーザを識別し、前記第１の階層のコマンド群と親子関係を有する第２の階層のコマンド群のうち、識別した前記ユーザに対応する前記第２の階層のコマンド群へ処理を分岐させるコマンド群を配置する、
ことを特徴とする請求項１または２記載のシミュレーションプログラム生成プログラム。
【請求項４】
前記仕様データテーブルの前記データ項目の並び順は、前記コマンドパターンに組み込む前記項目値の並び順に対応しており、
前記コマンド生成手段は、前記仕様データテーブルから登録順に読み出した前記項目値を前記コマンドパターンに順次割り当てる、
ことを特徴とする請求項１記載のシミュレーションプログラム生成プログラム。
【請求項５】
端末装置の試験に用いる擬似ホストコンピュータを動作させるシミュレーションプログラム生成方法において、
コンピュータが、
予め決められた所定の形式で、前記擬似ホストの動作に関するデータ項目に対応する項目値が配置される仕様データテーブルを有し、
前記仕様データテーブルの形式に応じて前記擬似ホストコンピュータを動作させるコマンドの形式を定義したコマンドパターンを記憶するパターン記憶手段から前記仕様データテーブルに対応する前記コマンドパターンを抽出し、抽出した前記コマンドパターンに基づき、前記仕様データテーブルに登録される項目値を用いてコマンドを生成し、
生成されたコマンド群をシミュレーションプログラムとして記憶するプログラム記憶手段の記憶領域を前記コマンド間の呼び出し関係に応じた階層に対応付けて分割し、
生成された前記コマンドを、該コマンドの呼び出し関係に基づく階層に対応する前記記憶領域に配置する、
ことを特徴とするシミュレーションプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、端末装置の試験に用いる擬似ホストコンピュータを動作させるシミュレーションプログラム生成プログラム及びシミュレーションプログラム生成方法に関する。
【背景技術】
【０００２】
ネットワークを介してホストコンピュータに接続し、ホストコンピュータとの間でデータ交換を行いながら動作する端末装置の試験は、実働するホストコンピュータに接続して試験を行うことが難しい場合が多い。そこで、ホストコンピュータをシミュレートした擬似ホストコンピュータ（以下、擬似ホストとする）を用意し、擬似ホストと通信させて試験対象の端末装置の試験を行っていた。
【０００３】
擬似ホストを動作せるためのシミュレーションプログラムは、例えば、プログラム作成者が、実働するホストコンピュータと端末装置との間でやり取りされた通信ログを解析し、コマンドを１行ずつ記述して作成していた。しかし、プログラム作成者の負担が大きく、負担の軽減が求められていた。そこで、プロトコル定義ファイルと通信手順ファイルを用意しておき、通信データ発生装置が、プロトコル定義ファイルと通信手順ファイルに基づき通信データを生成するネットワーク評価方法が提案されている（例えば、特許文献１参照）。また、テストプログラムの形式的な仕様からテストプログラムを自動作成するとともに、手作業でのプログラムコードの挿入が可能なテストプログラム作成支援方法も提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１８０１８５号公報
【特許文献２】特開２００６−３０９２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、テストプログラムを自動で作成する場合であっても、作成するテストプログラムの仕様や、プロトコル定義や通信手順は、予め作成者が定義する必要がある。このため、作成者が、擬似ホストが再現するアプリケーションの仕様を理解していなければ作成は難しい。また、擬似ホストに搭載するシミュレーションプログラムは、アプリケーションを提供するユーザごとに異なる。例えば、現金自動預け払い機（Automated Teller Machine；以下、ＡＴＭとする）であれば、取引先の銀行が異なればシミュレーションプログラムが異なる。近年のＡＴＭでは、自行の取引ばかりでなく、他行の取引も行われる。これに対応するためには、複数のユーザのシミュレーションプログラムが搭載されていなければならない。しかし、シミュレーションプログラムは個々に作成されるため、同一に擬似ホスト上に共存させることは容易ではなかった。
【０００６】
また、複数ユーザのシミュレーションプログラムが擬似ホストに共存しない場合、ユーザを変更して試験を行う度にフォルダ構成や動作環境等の再構築を行わなければならず、試験者にとっても不便であった。
【０００７】
このような点に鑑み、シミュレーションプログラムの作成者やこれを用いて試験を行う試験者の負担を軽減するシミュレーションプログラム生成プログラム及びシミュレーションプログラム生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、端末装置の試験に用いる擬似ホストコンピュータを動作させるシミュレーションプログラム生成プログラムが提供される。このシミュレーションプログラム生成プログラムは、コンピュータを、コマンド生成手段及びコマンド配置手段として機能させる。コマンド生成手段は、予め決められた所定の形式で、擬似ホストコンピュータの動作に関するデータ項目に対応する項目値が配置される仕様データテーブルを有している。そして、仕様データテーブルの形式に応じて擬似ホストコンピュータを動作させるコマンドの形式を定義したコマンドパターンを記憶するパターン記憶手段から仕様データテーブルに対応するコマンドパターンを抽出する。そして、抽出したコマンドパターンに基づき、仕様データテーブルに登録される項目値を用いてコマンドを生成する。コマンド配置手段は、コマンド生成手段によって生成されたコマンド群をシミュレーションプログラムとして記憶するプログラム記憶手段に記憶する。プログラム記憶手段の記憶領域をコマンド間の呼び出し関係に応じた階層に対応付けて分割し、生成されたコマンドを、このコマンドの呼び出し関係に基づく階層に対応する記憶領域に配置する。
【０００９】
また、上記課題を解決するために、コンピュータが、上記と同様の処理手順を実行するシミュレーションプログラム生成方法が提供される。
【発明の効果】
【００１０】
開示のシミュレーションプログラム生成プログラム及びシミュレーションプログラム生成方法によれば、形式が決められた仕様データテーブルに基づいてシミュレーションプログラムが生成されるため、プログラム構造や操作性が共通化される。このため、シミュレーションプログラムの作成者及びこれを用いて試験を行う試験者の負担を軽減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の構成例を示した図である。
【図２】第２の実施の形態のプログラム生成装置が適用される試験システムの構成を示した図である。
【図３】プログラム生成装置のハードウェア構成例を示すブロック図である。
【図４】プログラム生成装置ソフトウェア構成と入出力するデータの流れを示した図である。
【図５】階層別仕様データテーブルの登録手順を示した図である。
【図６】第２レイヤ仕様データテーブルの一例を示した図である。
【図７】コマンド生成処理の一例を示した図である。
【図８】シミュレーションプログラムの一例を示した図である。
【図９】記憶装置の記憶領域へのコマンド配置の一例を示した図である。
【図１０】シミュレーションの処理手順の一例を示した図である。
【図１１】シミュレーションプログラム生成処理の手順を示したフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、第１の実施の形態の構成例を示した図である。図１に示したプログラム生成装置１は、ホストコンピュータとの間で通信データを交換して動作する端末装置の試験に用いる擬似ホストを動作させるためのシミュレーションプログラムを生成する。
【００１３】
このプログラム生成装置１は、パターン記憶手段１ａ、コマンド生成手段１ｂ及びコマンド配置手段１ｃを有し、生成したシミュレーションプログラムを格納するプログラム記憶手段２に接続する。そして、所定の形式で記述された各ユーザのユーザ仕様データテーブル、例えば、ユーザＡ仕様データテーブル３ａ、ユーザＢ仕様データテーブル３ｂを入力し、ユーザごとの仕様に対応するシミュレーションプログラムを生成する。コマンド生成手段１ｂ及びコマンド配置手段１ｃの各処理手段は、コンピュータがシミュレーションプログラム生成プログラムを実行することにより、その処理機能が実現される。
【００１４】
ここで、ユーザＡ仕様データテーブル３ａ、ユーザＢ仕様データテーブル３ｂは、予め決められた擬似ホストの動作に関するデータ項目に対応する項目値が、所定の表形式で登録されている。ユーザＡ仕様データテーブル３ａには、データ項目に対応する項目値がユーザＡのホストコンピュータの仕様書から抽出され、所定の表形式の該当箇所に登録されている。そして、ユーザＢ仕様データテーブル３ｂには、ユーザＢのホストコンピュータの仕様書から抽出されたデータ項目に対応する項目値が、所定の表形式の該当箇所に登録されている。登録作業は、それぞれ共通の表形式の仕様データテーブルに基づいて行われる。例えば、プログラム作成者が、対象のユーザのホストコンピュータの仕様書を解析し、仕様データテーブルに予め設定される表形式のデータ項目に対応するデータ項目値をユーザＡのホストコンピュータの仕様書、ユーザＢのホストコンピュータの仕様書から抽出し、登録する。
【００１５】
パターン記憶手段１ａは、仕様データテーブルの形式に応じて擬似ホストを動作させるコマンドの形式を定義したコマンドパターンを記憶する。コマンドパターンは、例えば、擬似ホストの動作に関するデータ項目に対応する項目値を未設定とするコマンドを記述しておく。対応する項目値を未設定部分に埋め込むことにより、コマンドが生成される。また、コマンド生成の手順をパターンとして記述しておいてもよい。
【００１６】
コマンド生成手段１ｂは、ユーザＡ仕様データテーブル３ａ、ユーザＢ仕様データテーブル３ｂを入力し、パターン記憶手段１ａから入力した仕様データテーブルに対応するコマンドパターンを抽出する。そして、抽出したコマンドパターンに仕様データテーブル３ａ，３ｂの項目値を適用してコマンドを生成する。例えば、項目値を埋め込む部分以外が記述されたコマンドパターンに、読み出したデータ項目値を埋め込み、コマンドを生成する。生成したコマンドは、コマンド配置手段１ｃに送る。
【００１７】
コマンド配置手段１ｃは、コマンド生成手段１ｂが生成したコマンドをシミュレーションプログラムとしてプログラム記憶手段２に記憶する。プログラム記憶手段２の記憶領域は、生成されたコマンド間の呼び出し関係に応じた階層に対応付けて分割して管理する。コマンド間の呼び出し関係に応じた階層構造とは、階層構造に属する構成要素（コマンド群）は、階層の深さが浅い方を親とする親子関係を有し、子のコマンド群は親のコマンド群から呼び出される、もしくは、親のコマンドの分岐処理によって分岐する分岐先になる。最も浅い階層から順に第１階層、第２階層、・・・とし、例えば、端末装置から取得した通信データに基づいてユーザ別のシミュレーションプログラムに分岐して処理を行う場合、第１階層にユーザの識別とユーザごとの処理への分岐を行うコマンド群を配置する。そして、第２階層より下の階層に、各ユーザのシミュレーションプログラム処理を行うコマンド群を配置する。コマンド群をどの階層に配置するかは、例えば、生成されたコマンドを解析し、予め決められた配置基準に従って決める。ユーザ識別に関するコマンド群は第１階層、受信した通信データの解析に関するコマンド群は第２階層などのように、決める。また、仕様データテーブルが階層ごとに用意されているときは、仕様データテーブルに対応する階層に用意されている記憶領域にコマンド群を配置する。
【００１８】
プログラム記憶手段２は、プログラムを記憶する記憶領域を階層に対応付けて分割し、階層構造のシミュレーションプログラムを記憶する。
このようなプログラム生成装置１の動作及びプログラム生成方法について説明する。
【００１９】
仕様データテーブル作成のため、予め決められた所定の表形式でコマンド作成に必要な擬似ホストの動作に関するデータ項目と、データ項目に対応する項目値を登録する登録欄とが配置されているひな型が用意されている。仕様データテーブルのひな型に基づいて、データ項目に対応する項目値を対象ユーザのホストコンピュータの仕様書から抽出し、抽出した項目値をひな型の項目値欄に登録していくことにより、仕様データテーブルを作成することができる。このひな型の仕様データテーブルを用いて、対象ユーザのホストコンピュータを生成する作業は、例えば、プログラム作成者が行う。なお、仕様データテーブルのひな型は、ユーザごと、あるいは階層ごとに用意されているとしてもよい。ユーザＡ仕様データテーブル３ａは、プログラムの作成者が、ひな型の仕様データテーブルのデータ項目に対応する項目値をユーザＡのホストコンピュータの仕様書から抽出して項目値欄に登録することにより、生成される。同様に、ユーザＢ仕様データテーブル３ｂは、プログラムの作成者が、ひな型の仕様データテーブルのデータ項目に対応する項目値をユーザＢのホストコンピュータの仕様書から抽出して項目値欄に登録することにより、生成される。このように、予め用意したひな型に基づいて生成されるユーザＡ仕様データテーブル３ａと、ユーザＢ仕様データテーブル３ｂとは、書式が共通化されており、データ項目の配列が同じになる。一方、パターン記憶手段１ａには、仕様データテーブルの形式に応じたコマンドパターンが記憶されている。コマンド生成手段１ｂは、ユーザＡ仕様データテーブル３ａ及びユーザＢ仕様データテーブル３ｂの項目値を対応するコマンドパターンに適用し、コマンドを生成する。生成したコマンドは、コマンド配置手段１ｃに送る。コマンド配置手段１ｃは、コマンド生成手段１ｂが生成したコマンドをコマンドに対応する階層に応じたプログラム記憶手段２の記憶領域に格納する。階層は、コマンド間の呼び出し関係に応じて決まる。また、複数のユーザのシミュレーションプログラムを混在する場合には、第１階層にユーザを識別し、ユーザごとに生成されたコマンド群の処理に処理を分岐させるコマンド群を設定する。なお、仕様データテーブルが階層ごとに用意されているときは、生成したコマンドの基となった仕様データテーブルに対応する階層に対して用意された記憶領域に配置する。
【００２０】
このようなプログラム生成装置１により作成されたシミュレーションプログラムは、共通化した仕様データテーブルに基づいて作成されるため、プログラム構造及び操作性が共通化される。例えば、ユーザＡ仕様データテーブル３ａと、ユーザＢ仕様データテーブル３ｂとは、共通化されており、生成されたプログラムの構造は同じような構造になる。このため、プログラムの作成及び管理が容易になり、作成者の負担が軽減される。また、プログラム構造が同様であることから、これを用いて試験を行うときの操作も同様の手順となり、試験者の負担も軽減される。
【００２１】
また、階層構造をとることにより、複数のユーザのシミュレーションプログラムが共存できるようになり、ユーザ切り替えや資源管理が容易になる。
次に、第２の実施の形態として、ＡＴＭの試験を行うＡＴＭ試験システムのホストをシミュレートするシミュレーションプログラムを生成する場合を例にとり説明する。図２は、第２の実施の形態のプログラム生成装置が適用される試験システムの構成を示した図である。
【００２２】
試験対象のＡＴＭ３１，３２は、ネットワーク４０を介して擬似ホスト５０に接続する。なお、図２では、プログラム生成装置１０は、ネットワーク４０を介して擬似ホスト５０と接続しているが、プログラム生成装置１０は、ネットワーク４０に接続していなくてもよい。この場合、生成したプログラムは記録媒体を介して擬似ホスト５０にインストールする。また、擬似ホスト５０と、プログラム生成装置１０とは、同一装置であってもよい。
【００２３】
ＡＴＭ３１，３２の試験は、試験者が、例えば、ＡＴＭ３１，３２のキーボードやタッチパネルを操作し、ＡＴＭの動作を確認する。近年では、試験者の操作が行ったときと同様のデータを生成してＡＴＭ３１，３２に入力し、ＡＴＭ３１，３２の動作を試験する自動試験装置もある。ＡＴＭ３１，３２はキー操作に応じた通信データ（以下、電文とする）を生成し、擬似ホスト５０に送信する。擬似ホスト５０は、受信した電文を解析し、応答電文を生成してＡＴＭ３１，３２に返す。試験者は、ＡＴＭ３１，３２が受信した応答電文に基づいて行った処理を確認する。このように、擬似ホスト５０は、ＡＴＭ３１，３２から受信した電文に基づいてユーザ（取引先）を確認し、その電文を解析し、応答電文を送信する処理を行う。この処理は、擬似ホスト５０が、プログラム生成装置１０が生成するシミュレーションプログラムを実行することにより実現する。
【００２４】
ここで、プログラム生成装置１０のハードウェア構成について説明する。図３は、プログラム生成装置のハードウェア構成例を示すブロック図である。
プログラム生成装置１０は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、及び通信インタフェース１０６が接続されている。
【００２５】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク４０に接続されており、ネットワーク４０を介して擬似ホスト５０との間でデータの送受信を行う。
【００２６】
このようなハードウェア構成によって、プログラム生成装置１０の処理機能を実現することができる。なお、図３には、プログラム生成装置１０のハードウェア構成を示したが、擬似ホスト５０、及びＡＴＭ３１，３２のハードウェア構成も同様である。
【００２７】
次に、プログラム生成装置１０の処理について説明する。図４は、プログラム生成装置のソフトウェア構成と入出力するデータの流れを示した図である。
プログラム生成装置１０は、コマンドパターンを記憶するパターン記憶手段として機能するパターン記憶部１１、コマンドを生成するコマンド生成手段として機能するコマンド生成部１２及びコマンドを配置するコマンド配置手段として機能するコマンド配置部１３を有する。コマンド生成部１２及びコマンド配置部１３は、コンピュータがシミュレーションプログラム生成プログラムを実行することによりその処理機能を実現する。なお、ユーザ仕様書３００は、擬似ホスト５０用のプログラムを作成する対象ユーザのホストコンピュータの仕様書である。プログラム作成者は、予め用意された階層別のひな型の仕様データテーブルに基づき、それぞれの階層のひな型の仕様データテーブルに配置されているデータ項目に対応する項目値をユーザ仕様書から抽出して項目値欄に登録し、レイヤ１仕様データテーブル３１０、レイヤ２仕様データテーブル３２０及びレイヤ３仕様データテーブル３３０を生成しておく。
【００２８】
プログラム生成装置１０は、ユーザ仕様書３００から仕様データテーブルに基づいて作成された階層別仕様データテーブルであるレイヤ１仕様データテーブル３１０、レイヤ２仕様データテーブル３２０及びレイヤ３仕様データテーブル３３０を入力する。レイヤ１仕様データテーブル３１０、レイヤ２仕様データテーブル３２０及びレイヤ３仕様データテーブル３３０は、擬似ホスト５０を動作させるコマンドの生成に関し、予め決められたデータ項目の項目値がユーザ仕様書３００から抽出され、所定の形式で配置されているテーブルデータである。また、それぞれがコマンド間の呼び出し関係に応じた階層に対応している。レイヤ１仕様データテーブル３１０は、最も階層が浅い第１階層に対応し、ユーザの識別やセッション確立などに関するデータが登録されている。レイヤ２仕様データテーブル３２０は、第１階層から呼び出されるコマンド群を有する第２階層に対応し、ユーザごとに、受信電文の解析に関するデータが登録されている。レイヤ３仕様データテーブル３３０は、第２階層から呼び出されるコマンド群を有する第３階層に対応し、ユーザごとに、応答電文の送信に関するデータが登録されている。
【００２９】
プログラム生成装置１０は、レイヤ１仕様データテーブル３１０、レイヤ２仕様データテーブル３２０及びレイヤ３仕様データテーブル３３０を入力すると、コマンド生成部１２が、各階層の仕様データテーブルと、パターン記憶部１１に記憶するコマンドパターンとに基づき、階層ごとにシミュレーションプログラムのコマンド群を生成する。コマンド配置部１３は、コマンド生成部１２が生成したコマンド群を記憶装置２０に格納する。
【００３０】
記憶装置２０には、階層ごとに生成されたコマンド群を含むシミュレーションプログラムが格納される。シミュレーションプログラムは、レイヤ１仕様データテーブル３１０に基づいて作成された第１階層のコマンド群を最も浅い階層とし、レイヤ２仕様データテーブル３２０に基づいて作成された第２階層のコマンド群を次の階層、レイヤ３仕様データテーブル３３０に基づいて作成された第３階層のコマンド群をさらに次の階層とする階層構造を有する。第１階層のコマンド群は、電文の対象ユーザ（ユーザＡ，Ｂ，Ｃ，・・・Ｚ）を識別し、識別したユーザに対応する第２階層のコマンド群を呼び出す。そして、第２階層のコマンド群は、さらに、電文の解析結果に応じて第３階層の対応コマンド群を呼び出す。詳細は後述する。
【００３１】
以下、このような構成のプログラム生成装置１０によるシミュレーションプログラムの生成処理について説明する。
まず、プログラム生成装置１０に入力する階層別仕様データテーブルについて説明する。図５は、階層別仕様データテーブルの登録手順を示した図である。
【００３２】
階層別仕様データテーブルは、プログラム作成者が、取引銀行のユーザ仕様書３００から、階層ごとに予め決められたデータ項目の値を抽出して作成する。
ユーザ仕様書３００には、ＡＴＭ３１，３２と、ホスト（擬似ホスト５０）との間の通信プロトコルや電文等のインタフェースを定義した仕様書や、ＡＴＭ操作が行われたときの動作を定義した動作仕様書など、複数の仕様書が含まれる。プログラム生成装置１０は、ホストコンピュータの処理をシミュレートするシミュレーションプログラムを生成する。具体的には、ＡＴＭ３１，３２が操作されたときにＡＴＭ３１，３２から受信した電文を解析し、その応答電文を生成してＡＴＭに送信する処理をシミュレーションする。そこで、プログラム作成者は、送受信する電文に関する情報と、取引操作に関する情報とをユーザ仕様書３００から抽出する。例えば、電文に関する情報として、ユーザを識別し、セッションを確立するまでの通信に関するデータ項目値を抽出したセッション確立（第１レイヤ）情報３０１、受信電文のデータの解析に関するデータ項目値を抽出した受信電文解析（第２レイヤ）情報３０２、応答としてＡＴＭに送信する送信電文の編集及び詳細に関するデータ項目値を抽出した送信電文編集・詳細（第３レイヤ）情報３０３を抽出する。
【００３３】
また、プログラム作成者は、動作仕様等に基づき、ユーザ仕様書３００からユーザが実行するアプリケーション（取引）に関する情報を抽出し、取引一覧３０４に設定する。取引一覧３０４は、例えば、予め一般的なテスト項目に関するＡＴＭの操作条件を標準項目として設定しておき、プログラム作成者が、ユーザ仕様書３００と標準項目とを比較し、ユーザ仕様書３００に合わせてテスト項目を決定する。標準項目のうち、ユーザ仕様書３００にない取引はテスト項目から削除する。また、ユーザ仕様書３００には記載されているが、標準項目に設定のない取引は、テスト項目に追加する。
【００３４】
こうして抽出したデータ項目値をそれぞれの階層に用意された階層別仕様データテーブルに登録する。セッション確立（第１レイヤ）情報３０１と、取引一覧３０４とを用いて、第１レイヤ仕様データテーブル３１１を生成する。受信電文解析（第２レイヤ）情報３０２と、取引一覧３０４とを用いて、第２レイヤ仕様データテーブル３２１を生成する。そして、送信電文編集・詳細（第３レイヤ）情報３０３と、取引一覧３０４とを用いて、第３レイヤ仕様データテーブル３３１を生成する。
【００３５】
図５では、第２レイヤ仕様データテーブル３２１と、第３レイヤ仕様データテーブル３３１の一例を示している。第２レイヤ仕様データテーブル３２１は、取引一覧３０４及び受信電文解析（第２レイヤ）情報３０２に基づいて生成される。第２レイヤ仕様データテーブル３２１には、手順に関連付けてテスト手順名、受信電文解析の処理手順が設定される。受信電文解析の処理手順には、電文解析に用いる情報として、電文に含まれる共通ヘッダ部判定電文種別などの情報が設定される。例えば、手順「０３２」は、手順名「ＡＴＭ→→０３２開局（−／−／−）」であり、ＡＴＭから開局電文を受信したときの手順を示している。詳細は後述する。また、第３レイヤ仕様データテーブル３３１は、取引一覧３０４及び送信電文編集・詳細（第３レイヤ）情報３０３に基づいて生成される。第３レイヤ仕様データテーブル３３１には、手順に関連付けてテスト手順名、送信電文の情報が設定される。
【００３６】
なお、上記の説明では、一旦、ユーザ仕様書３００からデータ項目を抽出し、セッション確立（第１レイヤ）情報３０１、受信電文解析（第２レイヤ）情報３０２、送信電文編集・詳細（第３レイヤ）情報３０３及び取引一覧３０４に設定するとしている。しかし、ユーザ仕様書３００に基づいて、直接第１レイヤ仕様データテーブル３１１、第２レイヤ仕様データテーブル３２１及び第３レイヤ仕様データテーブル３３１を設定するとしてもよい。
【００３７】
次に、階層別の仕様データテーブルの詳細を、第２レイヤ仕様データテーブル３２１の例で説明する。図６は、第２レイヤ仕様データテーブルの一例を示した図である。
第２レイヤ仕様データテーブル３２１の一例である第２レイヤ仕様データテーブル３２１０は、手順３２１１、ジャンプ３２１２、テスト手順名３２１３、共通ヘッダ部判定電文種別３２１４、データ部判定３２１５、テスト都合判定３２１６と続く。テスト都合判定３２１６以降は、判定処理があれば順次追加登録される。
【００３８】
手順３２１１からテスト手順名３２１３までは、取引の手順に関する情報である。
手順３２１１は、この手順を識別するための識別番号であり、例えば、プログラム生成装置１０が登録順に適宜割り当てる。
【００３９】
ジャンプ３２１２は、この手順を実行後に進める手順を示す。例えば、手順「０３２」の行に登録されているジャンプ「５０２」は、「手順０３２の処理が終了後、手順５０２へ処理を進める」ことを示している。
【００４０】
テスト手順名３２１３は、テストにおける処理手順の内容を表す。例えば、「ＡＴＭ→→」は、ＡＴＭが送信した電文の受信を示す。また、「←←ＨＯＳＴ」は、擬似ホスト５０が電文を送信することを示す。「開局」は、ＡＴＭ３１，３２から受信した電文が、擬似ホスト５０に対する開局要求であることを示している。「融資」は、ＡＴＭ３１，３２から受信した電文が、融資依頼であることを示している。なお「融資」には、自行のカードを用いての要求（自カ）、または他行のカードを用いての要求（他カ）、クレジットの一括払いの要求（クレ・一括）、またはクレジットの分割払いの要求（クレ・分割）等を示す情報も含まれる。例えば、「ＡＴＭ→→０３２開局（−／−／−）」は、ＡＴＭから開局要求を受信したときの処理手順を示している。
【００４１】
以降は、受信電文の解析に関する情報である。第２レイヤの受信電文解析処理では、受信電文を判定データと照合し、解析を行う。各データ項目は、受信電文解析処理の手順に応じて、左側から右側に配置されている。例えば、共通ヘッダ部の判定が最初に行われ、続いてデータ部判定が行われる。それぞれの処理について説明する。
【００４２】
共通ヘッダ部判定電文種別３２１４には、受信電文の共通ヘッダ部に含まれる電文の種別を表す情報と照合するためのデータが登録されている。「ＯＦＦ」は対象データの開始位置を示すオフセット値、「ＬＥＮ」は対象データのサイズ、「ＤＡＴＡ」は対象データの値をそれぞれ示す。以降の「ＯＦＦ」、「ＬＥＮ」及び「ＤＡＴＡ」も同様である。
【００４３】
データ部判定３２１５は、受信電文のデータ部の照合が必要な場合、照合するデータが登録されている。図６では、「エラーコード」、「金融機関コード」及び「支払区分」が登録対象となっている。
【００４４】
テスト都合判定３２１６は、受信電文にＡＴＭ側のテスト可否を示したテスト都合の照合が必要な場合に照合するデータが登録されている。
例えば、図６の手順「０３２」には、「開局要求」の電文をＡＴＭから受信したときの応答処理手順が、左から右に向かって登録されている。まず、共通ヘッダ部の電文種別判定として受信電文のオフセット「９」に位置するサイズ「１（バイト）」のデータを取り出し、照合データ「Ｆ５」と比較する処理を行うことが登録されている。続いて、同様にオフセット「１６」にあるデータを「６」バイトを読み出し、エラーコード「Ｆ０Ｆ０Ｆ０Ｆ０Ｆ０Ｆ０と比較する処理を行うことが登録されている。手順「０３２」は、以降の登録がないので、受信電文の照合はここで終了する。また、手順「０３３」では、共通ヘッダ部の電文種別判定は、手順「０３２」と同様に行う。共通ヘッダ部の電文種別判定の次は、データ部の金融機関コード（オフセット「１４」、サイズ「４」）を読み出し、自行の金融機関コード「Ｆ０Ｆ０Ｆ３Ｆ５」と照合することが登録されている。
【００４５】
コマンド生成部１２は、このような第２レイヤ仕様データテーブル３２１０に基づき、対象ホストをシミュレートするシミュレーションプログラムのコマンドを順次生成する。
図７は、コマンド生成処理の一例を示した図である。第２レイヤ仕様データテーブル３２１０ａは、図６に示した第２レイヤ仕様データテーブル３２１０から手順「０３２」に関する部分を抜き出したものである。図７は、一例としてコマンドをＭＨＰＬ（Message Handling Program Language）で記述したコマンドを示している。
【００４６】
コマンド生成部１２は、第２レイヤ仕様データテーブル３２１０ａから、手順「０３２」３２１１ａの行が読み出し、コマンド生成を開始する。コマンドは、テスト手順名３２１３ａから順に右へ移動しながら、生成していく。パターン記憶部１１には、第２レイヤ仕様データテーブル３２１０に対応し、コマンドのパターンが登録されている。
【００４７】
まず、（１）として、テスト手順名３２１３ａを抽出し、パターン記憶部１１に記憶されるテスト手順名３２１３に対応するコマンドパターンに基づき、手順「０３２」の手順が「ＡＴＭ→→０３２開局（−／−／−）」であることを記述する。
【００４８】
次に、（２）として、共通ヘッダ部判定電文種別３２１４ａを抽出し、パターン記憶部１１の対応するコマンドパターンに基づき、コマンドを生成する。コマンドパターンには、共通ヘッダ部判定電文種別３２１４について、比較命令「ＣＭＲＣ」を適用し、「ＣＭＲＣ，＝＝（一致判定の場合）、または！＝＝（不一致判定の場合），ＯＦＦ，ＬＥＮ，ＤＡＴＡ」と記述することが設定されているとする。なお、一致または不一致の判定は、ＤＡＴＡに「≠」が登録されているか否によって判断する。登録されていないときは、一致判定、登録されているときは不一致判定のコマンドを生成する。共通ヘッダ部判定電文種別３２１４ａの場合、登録されているデータ項目値と、コマンドパターンとから「ＣＭＲＣ，＝＝，０００００００９，０００００００１，Ｆ５」というコマンドを作成する。
【００４９】
続く（３）では、（２）と同様に、データ部判定３２１５ａからエラーコードを抽出し、パターン記憶部１１の対応するコマンドパターンに基づき、コマンドを生成する。比較命令「ＣＭＲＣ」を適用し、「ＣＭＲＣ，＝＝，００００００１６，０００００００６，Ｆ０Ｆ０Ｆ０Ｆ０Ｆ０Ｆ０」というコマンドを作成する。
【００５０】
次に、（４）では、第２レイヤ仕様データテーブル３２１０における手順「０３２」の以降（エラーコードの右側の列）の登録はないので、メッセージコマンドを作成する。ここでは、テスト手順名３２１３ａを抽出し、コマンドパターンに基づき、コマンド「ＭＳＧ，１Ｅ，ＡＴＭ→→０３２開局（−／−／−）」を作成する。なお、「１Ｅ」は、自動で計算したメッセージのデータ長である。
【００５１】
次に、（５）では、手順「０３２」の処理は終了したので、ジャンプ３２１２ａからジャンプ先「５０２」を抽出し、ジャンプ命令のコマンドを生成する。ここでは、コマンド「ＰＪＭＰ，０００００５０２」を作成する。
【００５２】
図８は、シミュレーションプログラムの一例を示した図である。
コマンド群４０１は、図７の生成手順に基づいて生成された手順「０３２」に対応するコマンド群である。コマンド生成部１２は、手順「０３２」のコマンド生成が終了すると、次の行である手順「０３３」を読み出し、手順「０３２」の場合と同様の処理を行う。コマンド群４０２は、こうして生成した手順「０３３」の処理手順である。同様に、コマンド群４０３は、手順「０３４」について生成したコマンド群である。
【００５３】
以上説明したように、コマンド生成部１２は、第２レイヤ仕様データテーブル３２１０に基づいて、第２レイヤのシミュレーションプログラムのコマンド群を自動生成する。第１レイヤ仕様データテーブル３１１及び第３レイヤ仕様データテーブル３３１についても同様の処理を行い、第１レイヤのシミュレーションプログラム及び第３レイヤのシミュレーションプログラムをそれぞれ作成する。
【００５４】
このように、仕様データテーブルを登録すれば、シミュレーションプログラムが自動作成されるので、コーディングミスなどが発生しない。また、プログラミングを行う必要がなくなるため、プログラム作成者の負担を軽減することができる。さらに、シミュレーションプログラムは、予め形式が決められた仕様データテーブル及びコマンドパターンに基づいて作成されるので、プログラム構造及び操作性が共通化され、利用範囲が広がり、試験者の負担も軽減する。
【００５５】
次に、生成されたシミュレーションプログラムの記憶装置２０への配置について説明する。上記のように、コマンド生成部１２が生成したコマンド群は、コマンド配置部１３によって記憶装置２０の記憶領域に順次配置される。
【００５６】
図９は、記憶装置の記憶領域へのコマンド配置の一例を示した図である。なお、上側が記憶領域のアドレスの若い方であるとし、擬似ホスト５０は、アドレスの若い方から順にコマンドを読み出して実行するとする。なお、手順の番号と記憶領域の関係については、手順の番号が若いほど、記憶領域のアドレスも若いとする。また、点線の矢印は、呼び出し関係を示している。
【００５７】
記憶装置２０には、第１レイヤのシミュレーションプログラムを記憶する第１レイヤ２１０、第２レイヤのシミュレーションプログラムを記憶する第２レイヤ２２０及び、第３レイヤのシミュレーションプログラムを記憶する第３レイヤ２３０の３つの記憶領域がそれぞれ確保されている。
【００５８】
第１レイヤ２１０に記憶する第１レイヤのシミュレーションプログラムは、受信電文の対象ユーザを特定し、それぞれのユーザに用意された第２レイヤのシミュレーションプログラムへ処理を分岐させるコマンド群を有する。例えば、手順００１は、ユーザがＡ銀行であるかどうかを判定し、Ａ銀行であれば、手順１０００へ処理を進めるコマンドが設定されている。手順００１でユーザがＡ銀行でない場合は、手順００２へ処理を進める。手順００２では、ユーザがＢ銀行であるかどうかを判定し、Ｂ銀行であれば、手順１５００へ処理を進めるコマンドが設定されている。手順００２でユーザがＢ銀行でない場合は、手順００３へ処理を進める。
【００５９】
第２レイヤ２２０に記憶する第２レイヤのシミュレーションプログラムは、第１レイヤのシミュレーションプログラムで呼び出されたユーザごとに受信電文を解析し、取引ごとに用意された応答処理を行う第３レイヤのシミュレーションプログラムへ処理を分岐させるコマンド群を有する。例えば、Ａ銀行の第２レイヤの処理は、手順１０００から割り当てられ、Ｂ銀行の第２レイヤの処理は、手順１５００から割り当てられている。
【００６０】
第３レイヤ２３０に記憶する第３レイヤのシミュレーションプログラムは、第２レイヤのシミュレーションプログラムで呼び出された取引ごとに用意された応答処理を行うコマンド群を有する。例えば、Ａ銀行の第３レイヤのａａａ取引処理は、手順１０００１から割り当てられ、Ａ銀行の第３レイヤのｂｂｂ取引処理は、手順１０００２から割り当てられている。
【００６１】
このように、シミュレーションプログラムを階層構造とすることにより、複数のユーザの共存が可能となり、ユーザ切り替え及び資源管理も効率的に行うことが可能となる。また、新たにユーザを追加する場合にも、階層ごとに作成したシミュレーションプログラムをそれぞれ第１レイヤ、第２レイヤ及び第３のレイヤの最終行の次に格納することにより容易に対応できる。
【００６２】
次に、作成されたシミュレーションプログラムを擬似ホスト５０が実行した場合の処理手順について説明する。
図１０は、シミュレーションの処理手順の一例を示した図である。
【００６３】
プログラム生成装置１０が生成したシミュレーションプログラムは、図９で示したプログラム構造を維持した状態で、擬似ホスト５０に搭載される。このシミュレーションプログラムを実行する擬似ホスト５０は、ＡＴＭ３１，３２から電文を受信すると、第１レイヤ４１０の先頭からの処理手順を実行する。
【００６４】
第１レイヤ４１０のプログラムでは、受信電文から抽出したユーザの識別情報に基づき、ユーザを特定する。まず、ユーザの識別情報と照合し、Ａ銀行かどうかを判定する（４１１）。Ａ銀行であれば、処理を第２レイヤのＡ銀行処理（４２１）に進める。Ａ銀行でなければ、Ｂ銀行かどうかを判定する（４１２）。Ｂ銀行であれば、処理を第２レイヤのＢ銀行処理（４２２）に進める。Ｂ銀行でなければ、Ｃ銀行かどうかを判定する（４１３）。以下、順次ユーザの特定を行う。第１レイヤ４１０では、ユーザの特定のみを行うため、それぞれのユーザに対応する第２レイヤ４２０が実行されるまでの時間は、ほぼ一定である。
【００６５】
第２レイヤ４２０では、第１レイヤ４１０で呼び出された各ユーザの処理を実行する。第２レイヤ４２０では、受信した電文を解析し、取引の科目・区分を特定する。例えば、Ａ銀行処理（４２１）では、受信電文を解析し、取引がａａａ取引であるかどうかを判定する（４２１ａ）。ａａａ取引であれば、処理を第３レイヤのＡ銀行ａａａ取引処理（４３１）に進める。ａａａ取引でなければ、取引がｂｂｂ取引であるかどうかを判定する（４２１ｂ）。ｂｂｂ取引であれば、処理を第３レイヤのＡ銀行ｂｂｂ取引処理（４３２）に進める。以降、Ａ銀行が用意するどの取引に該当するのかをチェックする。同様に、Ｂ銀行処理（４２２）でも、受信電文を解析し、取引がａａａ取引であるかどうか（４２２ａ）、取引がｂｂｂ取引であるかどうか（４２２ｂ）、と順次照合し、一致したときは、第３レイヤ４３０の該当する取引処理を呼び出す。
【００６６】
第３レイヤ４３０では、第２レイヤ４２０で呼び出された各ユーザの取引処理を実行する。
このように、シミュレーションプログラムが階層構造をとることにより、共存する複数ユーザの電文受信から電文送信までの折り返し時間の一定化が図れるため、擬似ホスト５０の取引性能も確保できる。
【００６７】
なお、上記のシミュレーションプログラム生成では、３階層に分けてシミュレーションプログラムを生成するとしたが、階層の数は任意である。対象のシミュレーションプログラムに応じて、階層数及び分類基準は、適宜選択される。
【００６８】
次に、プログラム生成装置１０のシミュレーションプログラム生成処理手順について説明する。図１１は、シミュレーションプログラム生成処理の手順を示したフローチャートである。
【００６９】
プログラム生成装置１０は、第１レイヤ仕様データテーブル３１１、第２レイヤ仕様データテーブル３２１及び第３レイヤ仕様データテーブル３３１を入力し、処理を開始する。
【００７０】
［ステップＳ０１］  コマンド生成部１２は、シミュレーションプログラムを生成する対象階層をレイヤ１に設定する。
［ステップＳ０２］  コマンド生成部１２は、対象階層のレイヤに対応する階層別の仕様データテーブルを読み出し、コマンドを生成していない未処理の登録手順があるかどうかを判定する。仕様データテーブルに未処理の手順が登録されているときは、処理をステップＳ０３に進める。未処理の手順が登録されていないときは、処理をステップＳ０６に進める。
【００７１】
［ステップＳ０３］  コマンド生成部１２は、仕様データテーブルに未処理の手順が登録されているときは、コマンドを生成していない先頭の手順をコマンド生成の対象手順に設定する。
【００７２】
［ステップＳ０４］  コマンド生成部１２は、仕様データテーブルから対象手順の登録を読み出すとともに、パターン記憶部１１から対応するコマンドパターンを読み出す。そして、コマンドパターンと、読み出したデータ項目値と、に基づいて、コマンドを生成する。
【００７３】
［ステップＳ０５］  コマンド配置部１３は、コマンド生成部１２がステップＳ０４で生成したコマンドを、記憶装置２０の対象階層に用意された記憶領域に配置する。その後、処理をステップＳ０２に戻す。
【００７４】
［ステップＳ０６］  コマンド生成部１２は、仕様データテーブルに未処理の手順が登録されていないときは、この階層のコマンド生成は終了したと判定する。そして、他の階層で、コマンド生成が未処理の階層があるかどうかを判定する。コマンド生成が未処理の階層があるときは、処理をステップＳ０７に進める。未処理の階層がないときは、処理を終了する。
【００７５】
［ステップＳ０７］  コマンド生成が未処理の階層があるときは、対象階層のレイヤを１増加させて次のレイヤを対象階層に設定し、処理をステップＳ０２に戻す。
以上の処理手順が実行されることにより、第１レイヤ仕様データテーブル３１１、第２レイヤ仕様データテーブル３２１及び第３レイヤ仕様データテーブル３３１に基づき、シミュレーションプログラムが階層ごとに順次生成される。そして、生成されたシミュレーションプログラムは、階層ごとに予め決められた記憶領域に配置される。
【００７６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、プログラム生成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００７７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。
【符号の説明】
【００７９】
１、１０  プログラム生成装置
１ａ  パターン記憶手段
１ｂ  コマンド生成手段
１ｃ  コマンド配置手段
２  プログラム記憶手段
３ａ  ユーザＡ仕様データテーブル
３ｂ  ユーザＢ仕様データテーブル
【図１】
2011113542.tif 000003
【図２】
2011113542.tif 000004
【図３】
2011113542.tif 000005
【図４】
2011113542.tif 000006
【図５】
2011113542.tif 000007
【図６】
2011113542.tif 000008
【図７】
2011113542.tif 000009
【図８】
2011113542.tif 000010
【図９】
2011113542.tif 000011
【図１０】
2011113542.tif 000012
【図１１】
2011113542.tif 000013