"情報処理装置が所定のデータ処理を行うことで出力する出力データを検証する第1の処理部と、情報処理装置に前記データ処理を実行させて前記第1の処理部による検証を再現する第2の処理部と、自装置が情報処理装置に接続されると、前記第1の処理部に検証を実行させ、当該検証により前記出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に前記第2の処理部に前記検証を再現させる制御部と、を有することを特徴とするICカード。情報処理装置に前記データ処理を行わせるために入力された入力データを記憶する記憶部、を有し、前記第1の処理部は、情報処理装置から前記入力データを取得して前記記憶部に格納するとともに、当該入力データを用いて前記データ処理を行うことで生成した第1の結果データおよび前記出力データを比較することで当該出力データの検証を行い、前記第2の処理部は、前記記憶部に記憶された前記入力データを情報処理装置に入力して、当該情報処理装置が出力した再現出力データを取得し、前記入力データを用いて前記データ処理を行うことで生成した第2の結果データおよび前記再現出力データを比較することで前記第1の処理部の検証を再現する、ことを特徴とする請求項1記載のICカード。前記第2の処理部は、自装置と接続された情報処理装置から指定された速度で前記データ処理を行う、ことを特徴とする請求項2記載のICカード。前記制御部は、前記第1の処理部が前記検証を行った情報処理装置と、自装置が次に接続された情報処理装置とが異なる場合に、前記第2の処理部に前記検証を再現させる、ことを特徴とする請求項1乃至3の何れか一項に記載のICカード。前記第1の処理部による前記検証により前記出力データに異常が検出されたことを報知する報知部、を更に有することを特徴とする請求項1乃至4の何れか一項に記載のICカード。所定のデータ処理を行うことで出力データを生成するデータ処理部と、自装置に接続されたICカードに前記出力データを送信する通信部と、を備える情報処理装置と、情報処理装置が送信した前記出力データを検証する第1の処理部と、情報処理装置に前記データ処理を実行させて前記第1の処理部による検証を再現する第2の処理部と、自装置が情報処理装置に接続されると、前記第1の処理部に検証を実行させ、当該検証により前記出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に前記第2の処理部に前記検証を再現させる制御部と、を備えるICカードと、を有することを特徴とする情報処理システム。ICカードのデータ検証方法であって、自装置が情報処理装置に接続されると、当該情報処理装置が所定のデータ処理を行うことで出力する出力データを検証する第1の処理部により前記出力データを検証し、前記第1の処理部の検証により前記出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に当該情報処理装置に前記データ処理を実行させて前記第1の処理部による検証を再現する第2の処理部により前記検証を再現する、ことを特徴とするデータ検証方法。ところで、調査用の情報をメモリーカードやICカード等の外部記録媒体に出力した場合、保守員は複数の作業を行うことが考えられる。具体的には、動作検証用の装置に当該情報を入力する、障害解析用のアプリケーションを当該装置に実行させる、当該アプリケーションにより再現テストを実行させる、といった作業である。しかしながら、これらの作業を行うには所定の操作を伴い、障害解析に時間がかかることがあるという問題がある。本発明はこのような点に鑑みてなされたものであり、データ検証の再現テストを効率的に行えるようにしたICカード、情報処理システムおよびデータ検証方法を提供することを目的とする。第1の処理部と第2の処理部と制御部とを有するICカードが提供される。第1の処理部は、情報処理装置が所定のデータ処理を行うことで出力する出力データを検証する。第2の処理部は、情報処理装置にデータ処理を実行させて第1の処理部による検証を再現する。制御部は、自装置が情報処理装置に接続されると、第1の処理部に検証を実行させ、当該検証により出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に第2の処理部に検証を再現させる。また、情報処理装置とICカードとを有する情報処理システムが提供される。情報処理装置は、データ処理部と通信部とを備える。データ処理部は、所定のデータ処理を行うことで出力データを生成する。通信部は、自装置に接続されたICカードに出力データを送信する。ICカードは、第1の処理部と第2の処理部と制御部とを備える。第1の処理部は、情報処理装置が送信した出力データを検証する。第2の処理部は、情報処理装置にデータ処理を実行させて第1の処理部による検証を再現する。制御部は、自装置が情報処理装置に接続されると、第1の処理部に検証を実行させ、当該検証により出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に第2の処理部に検証を再現させる。また、ICカードのデータ検証方法が提供される。このデータ検証方法では、ICカードが、情報処理装置に接続されると、当該情報処理装置が所定のデータ処理を行うことで出力する出力データを検証する第1の処理部により出力データを検証する。そして、第1の処理部の検証により出力データに異常が検出された場合、自装置が情報処理装置に次に接続された際に当該情報処理装置にデータ処理を実行させて第1の処理部による検証を再現する第2の処理部により検証を再現する。上記ICカード、情報処理システムおよびデータ検証方法によれば、データ検証の再現テストを効率的に行える。以下、本実施の形態を図面を参照して説明する。[第1の実施の形態]図1は、第1の実施の形態のICカードを示す図である。ICカード1は、情報処理装置2に対して接続非接続とすることができる。例えば、情報処理装置2が備えるまたは、情報処理装置2に接続されたICカードのR/WReaderWriter装置にICカード1を挿入すると、ICカード1と情報処理装置2は接続状態となる。一方、R/W装置からICカード1を抜くと、ICカード1と情報処理装置2は非接続状態となる。ICカード1は、処理部1a,1bおよび制御部1cを有する。処理部1aは、情報処理装置2がデータ処理を行うことで出力するデータ出力データを検証する。処理部1aは、例えば次の手順により出力データの検証を行える。1処理部1aは情報処理装置2に入力された入力データを情報処理装置2から取得する。2処理部1aは当該入力データにより情報処理装置2と同様のデータ処理を行い、そのデータ処理の結果である第1の結果データを得る。3処理部1aは、取得した出力データと第1の結果データとを比較して、整合しているかを判断し、判断結果を情報処理装置2に通知する。なお、処理部1aは、例えば取得した入力データをICカード1が備える記憶部図示せずに格納してもよい。処理部1bは、情報処理装置2あるいは他の情報処理装置にデータ処理を実行させて処理部1aによる検証を再現する。処理部1bは、例えば次の手順により検証の再現を行える。1処理部1bは、ICカード1が備える記憶部を参照して処理部1aが格納した入力データを取得する。2処理部1bは、情報処理装置2あるいは他の情報処理装置に入力データを入力し、データ処理を行わせ、情報処理装置2が出力した再現出力データを取得する。3処理部1bは、当該入力データにより同様のデータ処理を行い、そのデータ処理の結果である第2の結果データを得る。4処理部1bは、取得した再現出力データと第2の結果データとを比較して整合しているかを判断し、判断結果を情報処理装置2に通知する。制御部1cは、自装置ICカード1が情報処理装置2あるいは他の情報処理装置に接続されると、処理部1aに出力データの検証を実行させる。そして、制御部1cは、当該検証によりデータの異常が検出された場合、自装置が情報処理装置2あるいは他の情報処理装置に次に接続された際に処理部1bに当該検証を再現させる。ICカード1によれば制御部1cの制御によって、自装置が情報処理装置2に接続されると、処理部1aによる検証が行われる。当該検証によりデータに異常が検出された場合、自装置が情報処理装置2あるいは他の情報処理装置に次に接続された際に処理部1bによって検証が再現される。これにより、データ検証の再現テストを効率的に行える。具体的には、処理部1aによる出力データの検証で異常が検知された場合に、ICカード1を情報処理装置2あるいは他の情報処理装置に接続しなおすと処理部1bにより出力データの検証を自動的に再現できる。このため、情報処理装置2の保守員によるデータ検証作業を簡略化できる。その結果、当該再現テストに基づく障害解析の時間を短縮できる。なお、制御部1cは次に接続された情報処理装置に応じて、処理部1a,1bの何れに処理を行わせるかを制御してもよい。例えば、前回、情報処理装置2で処理部1aによる検証を行った場合、次に接続された情報処理装置が、情報処理装置2とは異なる場合にのみ、次に接続された情報処理装置で処理部1bによる再現を実行させてもよい。一方、次に接続された情報処理装置が、前回と同様に情報処理装置2であれば、処理部1aによる検証を継続してもよい。このようにすれば、処理部1aによる検証を行う情報処理装置と、処理部1bによる再現を行う情報処理装置と、を区別できる。以下に説明する第2の実施の形態では、ICカード1をPOSシステムに適用する場合を例示する。[第2の実施の形態]図2は、第2の実施の形態のPOSシステムを示す図である。このPOSシステムは、小売店の店舗に設けられる。このPOSシステムは、ICカード100、POS端末装置200、検証装置300およびDBDataBaseサーバ400を含む。当該POSシステム装置は、POS端末装置200以外にも複数のPOS端末装置を含む。POS端末装置200、検証装置300およびDBサーバ400はネットワーク10を介して接続されている。ICカード100は、保守員がPOS端末装置200で生じた障害に対応するために用いるものである。ここで、以下の説明では割引等の誤計算によって生じる違算に対する対応を想定する。違算は、例えば、POS端末装置200において、POS機能を実現するアプリケーションプログラムの一部が、正常に動作していない、一部データの読み出しを正常に行えていない等の原因によって生じる。ICカード100は、違算を検出するために違算検証を行う。ICカード100は、例えば次のようにして違算検証を行える。すなわち、POS端末装置200によって計算された商品合計割引含むを取得するとともに、ICカード100も同様に商品合計割引含むを算出し、両者を比較する。両者が一致すれば、POS端末装置200の計算結果は適正であると判断できる。一方、両者が不一致であれば、POS端末装置200で違算が生じたと判断できる。POS端末装置200は、顧客により購入される商品および取引金額をDBサーバ400に登録するための情報処理装置である。POS端末装置200は、レジ係による入金および出金お釣りを管理する。POS端末装置200は、DBサーバ400を参照することで、スキャンした商品の価格や値引等の情報を取得し、顧客との取引を行う。POS端末装置200には、R/W装置21、モニタ22、キーボード23、スキャナ24およびキャッシュドロア25が接続されている。R/W装置21は、ICカード100が挿入されることで、ICカード100とPOS端末装置200とを通信可能に接続する。モニタ22は、POS端末装置200に対して行える操作内容や操作結果等を出力するための表示装置である。キーボード23は、POS端末装置200に対して操作入力を行うための入力装置である。スキャナ24は、商品に付されたバーコードを読み取り、読み取り結果をPOS端末装置200に入力するための入力装置である。キャッシュドロア25は、紙幣、貨幣および金券等を保管する収納庫である。検証装置300は、POS端末装置200と同様の機能を備えたテスト用の情報処理装置である。検証装置300は、ICカード100がPOS端末装置200において違算を検出した場合に、違算検証を再現するために用いられる。検証装置300にはR/W装置31が接続されている。R/W装置31は、ICカード100が挿入されることで、ICカード100と検証装置300とを通信可能に接続する。DBサーバ400は、店舗で販売される商品、商品の価格、商品の値引値および値引の条件等を定義したテーブルを記憶する。また、DBサーバ400は店舗内のPOS端末装置から売上データを取得し、一元管理する。図3は、ICカードのハードウェア構成を示す図である。ICカード100は、IC部101を有する。IC部101は、CPUCentralProcessingUnit101a、メモリ101bおよび通信部101cを有する。CPU101aは、OSOperatingSystemプログラムやアプリケーションプログラムを実行して、IC部101全体を制御する。メモリ101bは、CPU101aが実行するOSプログラムやアプリケーションプログラムを記憶する。また、メモリ101bは、CPU101aの処理に用いられるデータを記憶する。メモリ101bは、不揮発性のメモリ、または、不揮発性のメモリと揮発性のメモリとの組合せにより構成できる。メモリ101bとしては、例えば、EEPROMElectricallyErasableProgrammableReadOnlyMemory、フラッシュメモリおよびFeRAMFerroelectricRandomAccessMemory等を利用できる。メモリ101bのメモリ容量は、例えば1MBMegaBytes程度とすることができる。通信部101cは、CPU101aから取得するデータをR/W装置21,31を介して、POS端末装置200および検証装置300に出力する。また、通信部101cは、R/W装置21,31を介して、POS端末装置200および検証装置300から取得したデータをCPU101aに出力する。図4は、POS端末装置のハードウェア構成を示す図である。POS端末装置200は、CPU201、ROM202、RAM203、HDDHardDiskDrive204、ICカードR/Wインタフェース205、グラフィック処理装置206、入力インタフェース207、ドロアインタフェース208および通信インタフェース209を有する。CPU201は、OSプログラムやアプリケーションプログラムを実行して、POS端末装置200全体を制御する。ROM202は、POS端末装置200の起動時に実行されるBIOSBasicInputOutputSystemプログラムなどの所定のプログラムを記憶する。ROM202は、書き換え可能な不揮発性メモリであってもよい。RAM203は、CPU201が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM203は、CPU201の処理に用いられるデータの少なくとも一部を一時的に記憶する。HDD204は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD204は、CPU201の処理に用いられるデータを記憶する。なお、HDD204に代えてまたは、HDD204と併せて、SSDSolidStateDriveなど他の種類の不揮発性の記憶装置を用いてもよい。ICカードR/Wインタフェース205は、R/W装置21に接続される。ICカードR/Wインタフェース205は、CPU201からの命令に従って、R/W装置21に挿入されたICカード100に対するデータの読み書きを行う。グラフィック処理装置206は、モニタ22に接続される。グラフィック処理装置206は、CPU201からの命令に従って、画像をモニタ22に表示させる。入力インタフェース207は、キーボード23やスキャナ24などの入力デバイスに接続される。入力インタフェース207は、入力デバイスから送られる入力信号をCPU201に出力する。入力インタフェース207には、マウスやタッチパッド等のポインティングデバイスが接続されていてもよい。ドロアインタフェース208は、キャッシュドロア25に接続される。ドロアインタフェース208は、CPU201からの命令に従ってキャッシュドロア25の開閉を行う。通信インタフェース209は、ネットワーク10に接続される。通信インタフェース209は、ネットワーク10を介して検証装置300およびDBサーバ400とデータ通信を行える。なお、検証装置300およびDBサーバ400もPOS端末装置200と同様のハードウェア構成によって実現できる。ただし、ICカードR/Wインタフェース205やドロアインタフェース208はDBサーバ400に無くてもよい。ここで、以下の説明では、CPU101a,201がアプリケーションプログラムを実行することで各装置に実現されるアプリケーションをアプリと称することがある。図5は、ICカードの機能構成を示す図である。ICカード100は、操作ログ記憶部110、出力イベント記憶部120、制御情報記憶部130、制御部140、収集アプリ150および再生アプリ160を有する。これらのユニットの機能は、CPU101aが所定のプログラムを実行することによりICカード100上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実現してもよい。操作ログ記憶部110は、操作ログを記憶する。操作ログは、POS端末装置200でのスキャン操作によって入力された入力データを記録したものである。出力イベント記憶部120は、出力イベントを記憶する。出力イベントは、POS端末装置200および検証装置300が、操作ログに相当するデータ入力に対して行った処理結果を示すものである。制御情報記憶部130は、制御情報を記憶する。制御情報には、現在の処理モードを定義した情報が含まれる。処理モードとは、収集アプリ150および再生アプリ160の何れを動作させるかを示すものである。具体的には、処理モードが収集モードであれば、収集アプリ150を動作させるモードである。他方、処理モードが再生モードであれば、再生アプリ160を動作させるモードである。また、制御情報には、ICカード100が前回接続されていた装置のIPInternetProtocolアドレスを含む。制御部140は、ICカード100がPOS端末装置200または検証装置300に接続された際に、制御情報記憶部130に格納された制御情報に基づいて、収集アプリ150または再生アプリ160の何れか一方を起動し、実行する。具体的には、処理モードが収集モードであれば、収集アプリ150を実行する。他方、処理モードが再生モードであれば、再生アプリ160を実行する。また、制御部140は、収集アプリ150および再生アプリ160の処理結果等に応じて、制御情報に含まれる処理モードを変更する。また、制御部140は、収集アプリ150および再生アプリ160の要求に応じて、DBサーバ400に対する検索要求を送信する。制御部140は、POS端末装置200および検証装置300を介して当該検索要求を行える。更に、制御部140は、ICカード100がPOS端末装置200または検証装置300に接続されると、接続された装置からIPアドレスを取得し、制御情報記憶部130に格納する。更に、制御部140はPOS端末装置200や検証装置300との通信に用いる各種電文をPOS端末装置200や検証装置300に送信する。また、制御部140はPOS端末装置200や検証装置300が送信した各種電文を受信する。すなわち、ICカード100の各部とPOS端末装置200および検証装置300との間の通信は制御部140を介して行われる。収集アプリ150は、POS端末装置200でスキャンされた商品の操作ログに基づいて、違算検証を行うアプリケーションである。収集アプリ150は、操作ログ収集部151、出力イベント収集部152、違算検証部153およびモード切替部154を有する。操作ログ収集部151は、POS端末装置200から操作ログを取得し、操作ログ記憶部110に格納する。出力イベント収集部152は、POS端末装置200から出力イベントを取得し、出力イベント記憶部120に格納する。違算検証部153は、操作ログ記憶部110に格納された操作ログに基づき、POS端末装置200と同様のデータ処理を行う。違算検証部153は、当該データ処理の結果と出力イベント記憶部120に格納された出力イベントとを比較して、整合しているか否かを検証する。整合していない場合には、違算があったと判断して、POS端末装置200にその旨を通知する。モード切替部154は、違算検証部153が違算を検出すると、制御部140に処理モードの変更を指示する。再生アプリ160は、検証装置300に対して操作ログの入力を行い、当該操作ログに基づいて、違算検証を再現するアプリケーションである。再生アプリ160は、操作ログ再生部161、出力イベント収集部162、違算検証部163およびモード切替部164を有する。操作ログ再生部161は、操作ログ記憶部110に格納された操作ログを検証装置300に出力する。出力イベント収集部162は、出力イベント収集部152に対応し、同一の機能を備える。違算検証部163は、違算検証部153に対応する。ただし、違算検証部163は、違算検証部153とは異なるロジックで違算検証を行ってもよい。また、違算検証部163は、違算検証部153とは異なる方法で違算を検出した旨を通知してもよい。例えば、違算検証部163は、違算検証部153よりも詳細に価格計算のプログラムにつき原因箇所を特定する処理を行ってもよい。また、そのような箇所を違算検証部153よりも詳細なGUIGraphicalUserInterfaceで、検証装置300に表示させてもよい。再生アプリ160は、検証の再現を行うためのものであり、負荷の大きな処理を行ってもPOSシステムの実運用への影響が小さいためである。モード切替部164は、モード切替部154に対応し、同一の機能を備える。図6は、POS端末装置の機能構成を示す図である。POS端末装置200は、データ入力部210、POSアプリ220、DB参照部230、データ出力部240およびICカード通信部250を有する。これらのユニットの機能は、CPU201が所定のプログラムを実行することにより、POS端末装置200上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実現してもよい。データ入力部210は、キーボード23およびスキャナ24から入力された入力データ商品の識別情報や顧客からの預り金額等をPOSアプリ220およびICカード通信部250に出力する。POSアプリ220は、入力データに対応する商品の価格および値引値から取引につき合計金額を算出する、預り金額から釣銭を算出する等、顧客との取引を行うための機能を実現するアプリケーションである。POSアプリ220は、入力データに基づいて、DB参照部230に当該商品の価格や値引値等の問い合わせを行うよう指示する。POSアプリ220は、演算結果を出力イベントとしてデータ出力部240に出力する。DB参照部230は、POSアプリ220の指示に応じて、DBサーバ400に商品の価格や値引値等の問い合わせを行う。DB参照部230は、DBサーバ400の応答をPOSアプリ220に出力する。データ出力部240は、POSアプリ220から取得した出力イベントの内容をモニタ22に表示させる。また、データ出力部240は、当該出力イベントをICカード通信部250に出力する。なお、データ出力部240は、出力イベントをPOS端末装置200による売上を管理するための電子ジャーナルとしてDBサーバ400に出力してもよい。ICカード通信部250はICカード100との通信に用いる各種電文を生成して、ICカード100に送信する。ICカード通信部250は、データ入力部210から取得した入力データ操作ログをR/W装置21を介してICカード100に送信する。また、ICカード通信部250は、データ出力部240から取得した出力イベントをR/W装置21を介してICカード100に送信する。また、ICカード通信部250はICカード100が送信した各種電文を受信する。なお、検証装置300もPOS端末装置200と同様の機能構成を有する。図7は、リファレンステーブルのデータ構造例を示す図である。リファレンステーブル410は、DBサーバ400に予め格納される。リファレンステーブル410には、スキャンコード、スキャンタイプおよびPLUIDPriceLookUpIDentifierの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの商品に関する情報を示す。スキャンコードの項目には、商品に付与された識別コードが設定される。当該識別コードは、例えば、バーコードによって商品に付される。スキャンタイプの項目には、スキャンの方法を示す情報が設定される。スキャンの方法としては、例えば、バーコードによるスキャン、無線タグによるスキャンおよび手入力によるスキャン等が考えられる。PLUIDの項目には、商品マスタを参照するためのコードが設定される。例えば、リファレンステーブル410には、スキャンコードがA001、スキャンタイプがバーコード、PLUIDがP101という情報が設定される。これは、商品に付されたバーコードからスキャンコードA001がスキャンされた場合には、PLUIDP101で商品マスタを検索する旨を示している。図8は、商品マスタテーブルのデータ構造例を示す図である。商品マスタテーブル420は、DBサーバ400に予め格納される。商品マスタテーブル420には、PLUID、商品名、小売価格、原価およびディスカウントIDの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの商品に関する情報を示す。PLUIDの項目には、PLUIDが設定される。商品名の項目には、商品の名称が設定される。小売価格の項目には、商品単品の小売価格が設定される。原価の項目には、商品単品の原価が設定される。ディスカウントIDの項目には、商品について適用可能な値引情報を定義した所定のテーブルを参照するためのコードが設定される。例えば、商品マスタテーブル420には、PLUIDがP101、商品名がりんご、小売価格が100、原価が50、ディスカウントIDがDS001という情報が設定される。これは、PLUIDP101の商品としてりんごが対応付けられており、その単品の小売価格が100円、原価が50円であり、ディスカウントIDDS001によって値引情報を参照すべき旨を示している。以下、値引情報を説明する。値引情報には、値引を行う基準となる条件を定義した値引基準テーブルと、具体的な値引値や値引を行う時間帯等を定義した値引設定テーブルが含まれる。図9は、値引基準テーブルのデータ構造例を示す図である。値引基準テーブル430は、DBサーバ400に予め格納される。値引基準テーブル430には、ディスカウントID、最小販売数量および最低販売金額の項目が含まれる。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの値引条件を示す。ディスカウントIDの項目には、ディスカウントIDが設定される。最小販売数量の項目には、値引を行う対象商品の最小販売数量対象商品につき、最小販売数量よりも購入数量が少ないと値引を行わないが設定される。最低販売金額の項目には、値引の対象となる取引につき値引を行う最低販売金額対象取引の合計販売金額につき、最低販売金額よりも合計購入金額が少ないと値引を行わないが設定される。例えば、値引基準テーブル430には、ディスカウントIDがDS001、最小販売数量が2個、最低販売金額が300円という情報が設定される。これは、ディスカウントIDDS001に対応する値引を行うためには、対応する商品を2個以上購入し、かつ、取引における合計購入金額が300円以上であることを要することを示す。図10は、値引設定テーブルのデータ構造例を示す図である。値引設定テーブル440は、DBサーバ400に予め格納される。値引設定テーブル440には、ディスカウントID、値引値、商品制限、開始時刻および終了時刻の項目を含む。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの値引設定を示す。ディスカウントIDの項目には、ディスカウントIDが設定される。値引値の項目には、値引値が円や割合等で設定される。商品制限の項目には、値引の対象とできる商品の分類が設定される。開始時刻の項目には、値引の開始時刻が設定される。終了時刻の項目には、値引の終了時刻が設定される。例えば、値引設定テーブル440には、ディスカウントIDがDS001、値引値が-20、商品制限が青果、開始時刻が17:00、終了時刻が18:30という情報が設定される。これは、ディスカウントIDDS001に対応する具体的な値引の内容として、値引額が-20円、値引の対象となる商品が青果に分類されるものであり、値引の開始時刻が17時00分、終了時刻が18時30分であることを示す。なお、値引値-3割というように、値引値が割合で設定されている場合には、小売価格の3割引きとすることを示す。図11は、操作ログテーブルのデータ構造例を示す図である。操作ログテーブル111は、操作ログ記憶部110に格納される。操作ログテーブル111は、操作ログ収集部151により更新される。操作ログテーブル111には、項番、取引通番、日時、機器コードおよびスキャンコードの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの操作ログレコードに関する情報を示す。項番の項目には、レコードを識別するための番号が設定される。取引通番の項目には、取引を識別するための番号が設定される。日時の項目には、操作ログに相当するデータ入力がなされた時間が設定される。機器コードの項目には、入力に用いられた装置を識別するコードが設定される。スキャンコードの項目には、入力されたスキャンコードが設定される。例えば、操作ログテーブル111には、項番が1、取引通番が1、日時が2011/1/1018:15:00、機器コードが01、スキャンコードがA001という情報が設定される。これは、項番1に対応する操作ログレコードが取引通番1で示される取引についてのものであることを示す。そして、当該取引において、2011年1月10日18時15分00秒に、機器コード01のスキャナ24によりスキャンコードA001がスキャンされたことを示す。図12は、出力イベントテーブルのデータ構造例を示す図である。出力イベントテーブル121は、出力イベント記憶部120に格納される。出力イベントテーブル121は、出力イベント収集部152により更新される。出力イベントテーブル121には、項番、取引通番、イベント、単価、数量、合計、値引、値引後合計、入金および出金の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの出力イベントレコードに関する情報を示す。項番の項目には、レコードを識別するための番号が設定される。取引通番の項目には、取引通番が設定される。イベントの項目には、出力イベントの内容が設定される。出力イベントの内容としては、例えば、商品のスキャン商品名を表示や出入金小計、顧客からの金銭預りおよびお釣りの払い出し等に関するものがある。単価の項目には、スキャンされた単価が設定される。数量の項目には、スキャンされた商品の数量が設定される。合計の項目には、スキャンされた商品の合計金額が設定される。値引の項目には、当該商品の値引額が設定される。値引後合計の項目には、値引後の合計金額が設定される。入金の項目には、入金額が設定される。出金の項目には、出金額が設定される。例えば、出力イベントテーブル121には、項番が1、取引通番が1、イベントがりんご、単価が100、数量が2、合計が200、値引が-40、値引後合計が160、入金および出金が-ハイフンという情報が設定される。これは、項番1に対応する出力イベントレコードが取引通番1で示される取引についてのものであることを示す。そして、当該取引において、イベントりんごのスキャンが行われ、当該商品の単価100円を取得したこと、当該商品を2個スキャンしたこと、当該商品の合計金額を200円と算出したこと、値引額を-40円と算出したこと、値引後合計金額を160円と算出したことを示す。なお、入金や出金を伴うイベントではないため、入金および出金の項目は設定なし-ハイフン、以下同様となる。また、例えば出力イベントテーブル121には、項番が4、取引通番が1、イベントが小計、単価、数量、入金および出金が-ハイフン、合計が850、値引が-140、値引後合計が710という情報が設定されている。これは、項番4に対応する出力イベントレコードが取引通番1で示される取引についてのものであることを示す。そして、当該取引において、イベント小計の計算が行われ、取引通番1の取引における商品の合計金額が850と算出したこと、値引額の合計を140円と算出したこと、値引後合計金額を710円と算出したことを示す。なお、商品スキャンのイベントではないため、単価および数量の項目は設定なしとなる。また、入金や出金を伴うイベントではないため、入金および出金の項目は設定なしとなる。また、例えば出力イベントテーブル121には、項番が5、取引通番が1、イベントがお預り、単価、数量、合計、値引、値引後合計および出金が-ハイフン入金が1000という情報が設定される。これは、項番5に対応する出力イベントレコードが取引通番1で示される取引についてのものであることを示す。そして、当該取引において、イベント顧客からの現金のお預りが行われ、預り金額が1000円であったことを示す。なお、商品スキャンおよび合計算出のイベントではないため、単価、数量、合計、値引および値引後合計の項目は設定なしとなる。更に、出金を伴うイベントではないため、出金の項目は設定なしとなる。また、例えば出力イベントテーブル121には、項番が6、取引通番が1、イベントがお釣り、単価、数量、合計、値引、値引後合計および入金が-ハイフン、出金が290という情報が設定される。これは、項番6に対応する出力イベントレコードが取引通番1で示される取引についてのものであることを示す。そして、当該取引において、イベント顧客へのお釣りの払い出しが行われ、払出金額が290円であったことを示す。なお、商品スキャンおよび合計算出のイベントではないため、単価、数量、合計、値引および値引後合計の項目は設定なしとなる。更に、入金を伴うイベントではないため、入金の項目は設定なしとなる。図13は、処理モード設定テーブルのデータ構造例を示す図である。処理モード設定テーブル131は、制御情報記憶部130に格納される。処理モード設定テーブル131は、制御部140により更新される。処理モード設定テーブル131には、処理モード、前回処理モードおよびIPアドレスの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのモード設定に関する情報を示す。処理モードの項目には、収集モードまたは再生モードの何れかを示す情報が設定される。具体的には、0が収集モードを、1が再生モードを示す。前回処理モードの項目には、ICカード100が前回接続されていた装置で実行した処理に対応する処理モードが設定される。IPアドレスの項目には、IPアドレスが設定される。例えば、処理モード設定テーブル131には、処理モードが1、前回処理モードが0、IPアドレスが1.2.254.254という情報が設定される。ここで、IPアドレス1.2.254.254は、POS端末装置200のIPアドレスである。なお、検証装置300のIPアドレスは1.2.254.255であるとする。処理モード1は、ICカード100が次にPOS端末装置200または検証装置300の何れかの装置に接続された場合に、再生モードで動作したことを示す。前回処理モード0は、ICカード100が前回接続されていた装置において収集モードで動作したことを示す。IPアドレス1.2.254.254は前回ICカード100が接続されていた装置がPOS端末装置200であったことを示す。図14は、コマンドテーブルのデータ構造例を示す図である。コマンドテーブル132は、制御情報記憶部130に格納される。POS端末装置200および検証装置300もコマンドテーブル132あるいはこれに相当するデータを予め記憶しており、各装置はコマンドテーブル132を参照して通信を行う。コマンドテーブル132には、項番、コマンド名、コマンドコードおよびパラメータの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのコマンドに関する情報を示す。項番の項目には、レコードを識別するための番号が設定される。コマンド名の項目には、コマンドの名称が設定される。コマンドコードには、当該コマンドを示すコードが設定される。パラメータの項目には、当該コマンドで利用し得るパラメータの内容が設定される。例えば、コマンドテーブル132には、項番が1、コマンド名がリセットコマンド、コマンドコードが01、パラメータがIPアドレスという情報が設定される。これは、項番1のレコードがリセットコマンドを定義するものであり、当該コマンドを示す電文コマンド電文に含むべきコマンドコードが01、当該コマンドコードと同時に通知可能なパラメータがIPアドレスであることを示す。ここで、リセットコマンドとは、ICカード100がPOS端末装置200または検証装置300に接続されたときに、POS端末装置200および検証装置300が接続開始を通知するためにICカード100に送信するコマンドである。また、例えばコマンドテーブル132には、項番が2、コマンド名が操作ログ収集コマンド、コマンドコードが02、パラメータが日時、機器コード、取引通番、スキャンコードという情報が設定される。これは、項番2のレコードが操作ログ収集コマンドを定義するものであり、当該コマンド電文に含むべきコマンドコードが02、当該コマンドコードと同時に通知可能なパラメータが日時、機器コード、取引通番、スキャンコードであることを示す。ここで、操作ログ収集コマンドとは、POS端末装置200および検証装置300が操作ログの記録を指示する際にICカード100に送信するコマンドである。POS端末装置200および検証装置300は、商品のスキャンを行うたびに、当該操作ログ収集コマンドを発行してICカード100に送信する。操作ログ収集コマンドは、ICカード100が収集モードである場合にのみ利用可能なコマンドである。また、例えばコマンドテーブル132には、項番が3、コマンド名が操作ログ再生コマンド、コマンドコードが03、パラメータが再生速度という情報が設定される。これは、項番3のレコードが操作ログ再生コマンドを定義するものであり、当該コマンド電文に含むべきコマンドコードが03、当該コマンドコードと同時に通知可能なパラメータが再生速度同時倍速低速の指定であることを示す。ここで、操作ログ再生コマンドとは、POS端末装置200および検証装置300が操作ログの再生開始を指示する際にICカード100に送信するコマンドである。操作ログ再生コマンドは、ICカード100が再生モードの場合にのみ利用可能なコマンドである。また、例えばコマンドテーブル132には、項番が4、コマンド名が出力イベント収集コマンド、コマンドコードが04、パラメータが取引通番、イベント、単価、数量、合計、値引、値引後合計、入金、出金という情報が設定される。これは、項番4のレコードが出力イベント収集コマンドを定義するものであり、当該コマンド電文に含むべきコマンドコードが04、当該コマンドコードと同時に通知可能なパラメータが取引通番、イベント、単価、数量、合計、値引、値引後合計、入金、出金であることを示す。ここで、出力イベント収集コマンドとは、POS端末装置200および検証装置300が出力イベントの記録を指示する際にICカード100に送信するコマンドである。POS端末装置200および検証装置300は、スキャンされた商品や入出金した金額等に関する処理を行うたびに、当該出力イベント収集コマンドを発行してICカード100に送信する。また、例えばコマンドテーブル132には、項番が5、コマンド名が違算検証コマンド、コマンドコードが05、パラメータが-ハイフンという情報が設定される。これは、項番5のレコードが違算検証コマンドを定義するものであり、当該コマンド電文に含むべきコマンドコードが05、当該コマンドコードと同時に通知可能なパラメータが無しであることを示す。ここで、違算検証コマンドとは、POS端末装置200および検証装置300がICカード100に対して違算検証処理の開始を許可するために送信するコマンドである。また、例えば、コマンドテーブル132には、項番が6、コマンド名がDB参照コマンド、コマンドコードが06、パラメータがDB名、テーブル名、検索キーという情報が設定される。これは、項番6のレコードがDB参照コマンドを定義するものであり、当該コマンド電文に含むべきコマンドコードが06、当該コマンドコードと同時に通知可能なパラメータがDB名、テーブル名、検索キーであることを示す。ここで、DB参照コマンドとは、POS端末装置200または検証装置300に対してDBサーバ400に格納された各テーブルの検索を依頼をするために、ICカード100がPOS端末装置200または検証装置300に送信するコマンドである。図15は、コマンド電文の構造を例示する図である。コマンド電文500は、ICカード100と、POS端末装置200または検証装置300と、の間で送受信される電文である。コマンド電文500は、コマンドコードフィールド510およびパラメータフィールド520を含む。ここで、図15では通信に必要なその他の情報ヘッダ等は図示を省略している。コマンドコードフィールド510はコマンドコードを格納するためのフィールドである。パラメータフィールドは、当該コマンドコードで利用可能なパラメータを格納するためのフィールドである。次に、以上のような構成のICカード100の処理手順を説明する。図16は、検証実行制御を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。なお、ステップS11は説明を分かり易くするために保守員の操作を記載したものである。[ステップS11]保守員は、ICカード100をR/W装置21またはR/W装置31、本図において以下同様に挿入する。これによって、ICカード100はPOS端末装置200または検証装置300、本図において以下同様と接続される。[ステップS12]ICカード100は、R/W装置21からの受電を開始する。すると、ICカード100で制御部140の機能が実現される。[ステップS13]制御部140は、POS端末装置200からリセットコマンドのコマンド電文コマンドコード01を受信する。当該コマンド電文には、POS端末装置200のIPアドレスが含まれる。[ステップS14]制御部140は、制御情報記憶部130に記憶された処理モード設定テーブル131に設定されたIPアドレスと、リセットコマンドのコマンド電文に含まれるIPアドレスと、が一致するか否かを判定する。一致しない場合、処理をステップS15に進める。一致する場合、処理をステップS16に進める。[ステップS15]制御部140は、処理モード設定テーブル131の処理モードの項目の設定内容をPOS端末装置200に応答する。[ステップS16]制御部140は、処理モード設定テーブル131の前回処理モードの項目の設定内容をPOS端末装置200に応答する。[ステップS17]制御部140は、ステップS15,S16でPOS端末装置200に応答した処理モードが0収集モードか1再生モードかを判定する。0収集モードである場合、制御部140は収集アプリ150を起動して処理をステップS18に進める。1再生モードである場合、制御部140は再生アプリ160を起動して処理をステップS19に進める。[ステップS18]収集アプリ150は、操作ログ収集を行い、違算検証を行う。[ステップS19]再生アプリ160は、操作ログ再生を行い、違算検証を行う。[ステップS20]制御部140は、ステップS18,S19の検証処理後に、収集アプリ150または再生アプリ160から処理モード変更の通知があるか否かを判定する。処理モード変更の通知がある場合、処理をステップS21に進める。処理モード変更の通知がない場合、処理をステップS22に進める。[ステップS21]制御部140は、処理モード設定テーブル131の処理モードの項目の設定内容を変更する。具体的には、今回ステップS18の収集時検証処理を行った場合現在の処理モードの項目の設定が0の場合には、再生モードを示す1を処理モードの項目に設定する。一方、今回ステップS19の検証再現処理を行った場合現在の処理モードの項目の設定が1の場合には、収集モードを示す0を処理モードの項目に設定する。[ステップS22]制御部140は、処理モード設定テーブル131の前回処理モードの項目に、今回行った検証処理に対応する処理モードを設定する。具体的には、今回ステップS18の収集時検証処理を行った場合には、収集モードを示す0を前回処理モードの項目に設定する。一方、今回ステップS19の検証再現処理を行った場合には、再生モードを示す1を前回処理モードの項目に設定する。このようにして、ICカード100は、POS端末装置200または検証装置300に接続された際に、処理モードに応じて収集アプリ150または再生アプリ160の何れかを実行する。そして、収集アプリ150または再生アプリ160による検証結果に応じて、処理モードを変更する。特に、ICカード100は、接続された装置のIPアドレスに基づいて、今回接続された装置と前回接続されていた装置との異同を検出する。そして、同一である場合には、ICカード100は前回処理モードによって動作するので、POS端末装置200および検証装置300の使い分けが可能となる。例えば、POS端末装置200では収集アプリ150による収集時検証処理を行い、検証装置300では検証再現処理を行うようにすることができる。その場合、ICカード100をPOS端末装置200に接続して、収集モードで動作させればよい。すると、POS端末装置200で違算を検出した場合に、再度POS端末装置200にICカード100を接続しても、収集モードで動作させることができる。これにより、POS端末装置200における再生モードでの動作を抑制できる。よって、運用中の誤操作等により、POS端末装置200に対するICカード100の接続非接続を繰り返し行ったとしても、POS端末装置200の利用が妨げられる可能性を低減できる。なお、ICカード100の処理モードを保守員が確認設定可能とするために、POS端末装置200や検証装置300に所定のGUIを設けてもよい。次に、上記ステップS18で述べた収集アプリ150による収集時検証処理の手順を説明する。なお、以下の説明では収集アプリ150による処理は、上述したように制御部140によってPOS端末装置200で行われるよう制御されているとする。図17は、収集時検証処理を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。[ステップS31]制御部140は、POS端末装置200から操作ログ収集コマンドのコマンド電文コマンドコード02を受信するたびに、当該コマンド電文を収集アプリ150に出力する。収集アプリ150の操作ログ収集部151は、コマンド電文に含まれるパラメータを操作ログ記憶部110に記憶された操作ログテーブル111に記録する。[ステップS32]制御部140は、POS端末装置200から出力イベント収集コマンドのコマンド電文コマンドコード04を受信するたびに、当該コマンド電文を収集アプリ150に出力する。収集アプリ150の出力イベント収集部152は、コマンド電文に含まれるパラメータを出力イベント記憶部120に記憶された出力イベントテーブル121に記録する。[ステップS33]制御部140は、POS端末装置200から違算検証コマンドのコマンド電文コマンドコード05を受信したか否かを判定する。違算検証コマンドのコマンド電文は、POS端末装置200により1取引単位に発行される。違算検証コマンドのコマンド電文を受信した場合、制御部140は当該コマンド電文を違算検証部153に出力して処理をステップS34に進める。違算検証コマンドのコマンド電文を受信しない場合、当該コマンド電文を受信するまで待機する。制御部140は、所定時間内に当該コマンド電文を受信できない場合、収集時検証処理を終了してもよい。[ステップS34]違算検証部153は、制御部140から違算検証コマンドを取得する。すると、違算検証部153は、操作ログ記憶部110に記憶された操作ログと、出力イベント記憶部120に記憶された出力イベントと、を用いて違算検証を行う。違算検証処理の方法の詳細は後述する。[ステップS35]違算検証部153は、違算検証の結果、出力イベントに異常を検出したか否かを判定する。異常を検出した場合、処理をステップS36に進める。異常を検出しなかった場合、処理をステップS37に進める。[ステップS36]モード切替部154は、処理モード変更の通知を制御部140に出力する。モード切替部154は、出力イベント記憶部120に記憶されたデータを削除する。[ステップS37]違算検証部153は、POS端末装置200に対して違算検証結果を通知する。そして、処理を終了する。このように、収集アプリ150は違算検証の結果、出力イベントに異常を検出した場合には、ICカード100の処理モードを変更する旨、制御部140に通知する。これによって、ICカード100は収集モードから再生モードへ移行する。ここで、違算検証部153による違算検証処理について説明する。以下に示す説明は、図17のステップS33以降に対応する。図18は、違算検証処理を例示する図である。以下、図18に示す処理をステップ番号に沿って説明する。[ステップST101]POS端末装置200は、違算検証コマンドのコマンド電文をICカード100に送信する。制御部140は、POS端末装置200から違算検証コマンドのコマンド電文を受信する。違算検証コマンドのコマンド電文は、例えば、1つの取引が完了した時点でPOS端末装置200からICカード100に送信される。あるいは、1つの取引が完了し、保守員やレジ係がPOS端末装置200で所定の操作入力をした時点で、POS端末装置200からICカード100に送信されるようにしてもよい。[ステップST102]制御部140は、受信したコマンド電文を違算検証部153に出力する。違算検証部153は、制御部140から当該コマンド電文を受け付ける。[ステップST103]違算検証部153は、操作ログ記憶部110に記憶された操作ログテーブル111を参照して、最新の取引に関する操作ログを取得する。例えば、操作ログテーブル111の例において取引通番1が最新であれば、取引通番1に対応する操作ログ項番1~4のレコードを取得する。なお、以下に示すステップST104~ST111は単一の操作ログレコード項番1のレコードを想定するに関する処理を例示している。よって、操作ログレコードが4つであれば、時系列に順番に当該レコードを参照し、ステップST104~ST111を4回行えばよい。[ステップST104]違算検証部153は、操作ログレコードに設定されたスキャンコードに基づいて、DB参照コマンドのコマンド電文コマンドコード06を生成する。コマンド電文のパラメータには、リファレンステーブル410をスキャンコードによって検索するための設定がなされる。例えば、項番1の操作ログレコードには、スキャンコードA001が設定されているので、当該スキャンコードを検索キーとする。違算検証部153は、制御部140を介してPOS端末装置200にDB参照コマンドのコマンド電文を送信することでDBサーバ400のテーブルを参照する。DB参照部230は、当該コマンド電文のパラメータに基づいて、DBサーバ400に格納されたテーブルから該当のレコードを検索する。なお、以下の説明において違算検証部153が行うDB参照は同様にして実現される。[ステップST105]DBサーバ400は、POS端末装置200および制御部140を介して、検索により得たリファレンスレコードを応答する。例えば、リファレンステーブル410からスキャンコードA001を含むレコードを応答する。[ステップST106]違算検証部153は、リファレンスレコードに含まれるPLUIDに基づいて、DB参照コマンドのコマンド電文を生成し、DBサーバ400の商品マスタテーブル420を参照する。このとき、例えば、スキャンコードA001のリファレンスレコードには、PLUIDP101が設定されているので、当該PLUIDを検索キーとする。[ステップST107]DBサーバ400は、POS端末装置200および制御部140を介して、検索により得た商品マスタレコードを応答する。例えば、商品マスタテーブル420からPLUIDP101を含むレコードを応答する。[ステップST108]違算検証部153は、商品マスタレコードに含まれるディスカウントIDに基づいて、DB参照コマンドのコマンド電文を生成し、DBサーバ400の値引基準テーブル430を参照する。このとき、例えば、PLUIDP101の商品マスタレコードには、ディスカウントIDDS001が設定されているので、当該ディスカウントIDを検索キーとする。[ステップST109]DBサーバ400は、POS端末装置200および制御部140を介して、検索により得た値引基準レコードを応答する。例えば、値引基準テーブル430からディスカウントIDDS001を含むレコードを応答する。[ステップST110]違算検証部153は、商品マスタレコードに含まれるディスカウントIDに基づいて、DB参照コマンドのコマンド電文を生成し、DBサーバ400の値引設定テーブル440を参照する。このとき、例えば、PLUIDP101の商品マスタレコードには、ディスカウントIDDS001が設定されているので、当該ディスカウントIDを検索キーとする。[ステップST111]DBサーバ400は、POS端末装置200および制御部140を介して、検索により得た値引設定レコードを応答する。例えば、値引設定テーブル440からディスカウントIDDS001を含むレコードを応答する。[ステップST112]違算検証部153は、ステップST103~ST111で取得した情報操作ログレコードを複数取得している場合には、ステップST104~ST111はその個数回繰り返すに基づいて、対象の取引で行われた処理を再実行する。具体的には、違算検証部153は対象取引における商品の小売価格、数量、合計金額、値引値、値引後金額、入金額および出金額を算出する。更に、違算検証部153は、出力イベント記憶部120に格納された出力イベントテーブル121を参照して、対象取引の出力イベントの各項目値と、算出した各値とを比較する。違算検証部153は、比較の結果、両値が全て整合していれば、違算は生じていないと判断する。整合していない値があれば、違算が生じており、異常と判断する。[ステップST113]違算検証部153は、ステップST112の違算検証の結果をPOS端末装置200に通知する。POS端末装置200は、違算検証の結果をモニタ22に表示させて保守員やレジ係に通知する。このようにして、違算検証部153は操作ログ記憶部110に記憶された操作ログに基づき、DBサーバ400に格納された各テーブルを参照して、取引の処理を再実行し、出力イベント記憶部120に記憶された出力イベントと比較することで違算検証を行う。保守員やレジ係は、異常が通知された場合にはICカード100をR/W装置21から抜いて、R/W装置31に挿入する。すると、ICカード100による違算検証の再現を行える。次に、図16のステップS19で述べた再生アプリ160による検証再現処理の手順を説明する。なお、以下の説明では再生アプリ160による処理は、上述したように制御部140によって検証装置300で行われるよう制御されているとする。図19は、再生時検証処理を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。[ステップS41]制御部140は、検証装置300から操作ログ再生コマンドのコマンド電文コマンドコード03を受信する。制御部140は、当該コマンド電文を操作ログ再生部161に出力する。[ステップS42]操作ログ再生部161は、コマンド電文に含まれるパラメータに設定された再生速度を特定する。[ステップS43]操作ログ再生部161は、操作ログ記憶部110に記憶された操作ログテーブル111を参照して、最新の取引に関する操作ログレコードを時系列に特定する。そして、当該レコードに含まれるスキャンコードや入出金額の情報を、制御部140を介して検証装置300に順次送信する。すると、検証装置300のPOSアプリにスキャンコード等が入力されて、POS端末装置200での取引が再現される。ここで、操作ログ再生部161は、スキャンコード等を送信するタイミングを変更することで、再生速度を変更する。例えば、コマンド電文のパラメータに設定された再生速度が同時であれば、操作ログレコードに設定された時刻の間隔でスキャンコード等を送信する。設定された再生速度が倍速であれば、操作ログレコードに設定された時刻の間隔の半分の時間間隔でスキャンコード等を送信する。設定された再生速度が低速であれば、操作ログレコードに設定された時刻の間隔の2倍の時間間隔でスキャンコード等を送信する。検証装置300は、受信した操作ログに基づいてPOSアプリにより生成した出力イベントをICカード100に送信開始する。[ステップS44]制御部140は、検証装置300から出力イベント収集コマンドのコマンド電文コマンドコード04を受信するたびに、当該コマンド電文を再生アプリ160に出力する。再生アプリ160の出力イベント収集部162は、コマンド電文に含まれるパラメータを出力イベント記憶部120に記憶された出力イベントテーブル121に記録する。[ステップS45]制御部140は、検証装置300から違算検証コマンドのコマンド電文コマンドコード05を受信したか否かを判定する。違算検証コマンドのコマンド電文は、検証装置300により1取引単位に発行される。違算検証コマンドのコマンド電文を受信した場合、制御部140は当該コマンド電文を違算検証部163に出力して処理をステップS46に進める。違算検証コマンドのコマンド電文を受信しない場合、当該コマンド電文を受信するまで待機する。制御部140は、所定時間内に当該コマンド電文を受信できない場合、検証再現処理を終了してもよい。[ステップS46]違算検証部163は、制御部140から違算検証コマンドを取得する。すると、違算検証部163は、操作ログ記憶部110に記憶された操作ログと、出力イベント記憶部120に記憶された出力イベントと、を用いて違算検証を行う。違算検証部163による違算検証も図18で説明した違算検証部153による違算検証と同様にして行える。その際、ICカード100は検証装置300に接続しているため、検証装置300を介してDB参照を行う。[ステップS47]違算検証部163は、違算検証の結果、出力イベントに異常を検出したか否かを判定する。異常を検出した場合、処理をステップS48に進める。異常を検出しなかった場合、処理をステップS49に進める。[ステップS48]モード切替部164は、処理モード変更の通知を制御部140に出力する。モード切替部164は、出力イベント記憶部120に記憶されたデータを削除する。[ステップS49]違算検証部163は、検証装置300に対して違算検証結果を通知する。そして、処理を終了する。このようにして、再生アプリ160は検証装置300にてPOS端末装置200における違算検証を再現する。再生アプリ160は、違算検証の結果、出力イベントに異常を検出した場合には、ICカード100の処理モードを変更する旨、制御部140に通知する。これによって、ICカード100は再生モードから収集モードへ移行する。なお、ステップS47,S48において、モード切替部164は異常検出の有無に関わらず、保守員が検証装置300で所定の操作入力を行った場合には、処理モード変更を制御部140に通知してもよい。このようにすれば、異常が検出されなかった場合でも、再生モードから収集モードへ変更できる。よって、その後、ICカード100をPOS端末装置200に接続すれば収集時検証処理を再開することができる。以上で説明したように、ICカード100によれば、収集アプリ150による違算検証で異常違算が検出された場合、次回何れかの装置に接続された際に再生アプリ160による再現を行うよう処理モードを自動的に変更する。このため、保守員によるデータ検証作業を簡略化できる。具体的には、保守員はICカード100の挿抜を行うのみで違算検証の再現が可能なので、手順が容易になる。このため、再現テストに基づく障害解析の時間を短縮できる。また、ICカード100は、再現の際に、操作ログによる取引の再生速度を速めたり、遅くしたりすることが可能である。このため、例えば操作ログレコードによる再現を行いながら、操作ログレコードと、対応する出力イベントレコードとの比較をモニタに順次表示させるようにすると、取引中の異常箇所の特定を容易に行える。また、ICカード100に操作ログを記憶し、これを収集アプリ150および再生アプリ160の両方で利用可能とすることで、ICカード100が違算検証を行えるようにした。このため、POS端末装置200や検証装置300は違算検証の処理を行わなくてよい。よって、POS端末装置200や検証装置300の負荷を軽減できる。また、ICカード100は、今回接続された装置が前回接続された装置と同一の場合には、前回の処理モードで動作する。このため、例えば、収集モードで動作している場合に、誤操作等によりPOS端末装置200において接続非接続が繰り返されたとしても、再生モードで動作することがないので、POS端末装置200で余計な処理を行わずに済む。よって、運用への影響を軽減できる。ICカード100によれば、このようにしてデータ検証の再現テストを効率的に行うことができる。次に、ICカード100の変形例について説明する。図20は、ICカードのハードウェア構成の変形例を示す図である。ICカード100aは、IC部101、バッテリ102およびLEDLightEmittingDiode103を有する。また、IC部101は、CPU101a、メモリ101b、通信部101cおよびLED駆動部101dを有する。ここで、CPU101a、メモリ101bおよび通信部101cは、図3において同一の符号を付して説明した構成と同一である。LED駆動部101dは、ICカード100aの現在の処理モードに応じてLED103の発光消光を制御する。例えば、処理モードが収集モードのときにLED103を消光させる。一方、処理モードが再生モードのときにLED103を発光させる。バッテリ102は、IC部101およびLED103に電力を供給する。ここで、バッテリ102は主にLED103を発光させるために用いられるものである。IC部101のその他の動作はR/W装置21,31から受電した電力によって行われる。LED103は、LED駆動部101dによって発光消光が制御される。LED103は、ICカード100aの現在の処理モードを報知するための報知部である。ここで、処理モードが再生モードであることは、収集モードでの違算検証で異常が発生したことを示す。このようにICカード100aにLED103を設けて処理モードに応じて発光させれば、ICカード100aが現在何れの処理モードであるかを、視覚によって判断できる。図21は、ICカードの機能構成の変形例を示す図である。ICカード100aは、操作ログ記憶部110、出力イベント記憶部120、制御情報記憶部130、制御部140および収集/再生アプリ170を有する。これらのユニットの機能は、CPU101aが所定のプログラムを実行することによりICカード100a上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実現してもよい。ここで、操作ログ記憶部110、出力イベント記憶部120、制御情報記憶部130および制御部140は、図5で同一の符号を付して説明した各ユニットと同一であるため説明を省略する。ただし、制御部140はLED駆動部101dに現在の処理モードを通知する。収集/再生アプリ170は、収集アプリ150および再生アプリ160を単一のアプリケーション内で実現したものである。収集/再生アプリ170は、操作ログ収集部171、出力イベント収集部172、違算検証部173、操作ログ再生部174およびモード切替部175を有する。操作ログ収集部171は、操作ログ収集部151に対応する。出力イベント収集部172は、出力イベント収集部152,162に対応する。違算検証部173は、違算検証部153,163に対応する。操作ログ再生部174は、操作ログ再生部161に対応する。モード切替部175は、モード切替部154,164に対応する。このように、収集アプリ150および再生アプリ160において共通する機能をまとめて、これらアプリケーションを単一のアプリケーションとして実現してもよい。この場合、収集モードでの動作時には操作ログ収集部171、出力イベント収集部172、違算検証部173およびモード切替部175によって収集時検証処理が行われる。一方、再生モードでの動作時には出力イベント収集部172、違算検証部173、操作ログ再生部174およびモード切替部175によって検証再現処理が行われる。各処理の手順は、図17,19で説明した手順と同様である。ただし、各ステップの処理は、図21において同一名称で示した各ユニットによって実行される。このような構成のICカード100aによっても、ICカード100と同様の効果を奏することができる。"