(57)【要約】【課題】２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成する。【解決手段】  内部サーバー２００は、ＰＣをシミュレートするシミュレート部２５７と、ＭＦＰがＰＣに送信パケットを送信した後にＭＦＰがＰＣからエラーを示すエラー情報を受信する場合に、送信パケットおよびエラー情報を取得する取得部２５５と、送信パケットの少なくとも一部を含む変更パケットを生成する生成部２６１と、シミュレート部２５７がＰＣをシミュレートする仮想装置に、変更パケットを情報処理装置から受信させる仮想実行制御部２５９と、仮想装置が生成された変更パケットを受信すると、仮想装置がエラー情報と同じエラー情報を返信する場合、変更パケットを再現用パケットに決定する更新用パケット決定部２６３と、を備える。【選択図】        図５
2019087944.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置をシミュレートするシミュレート手段と、
画像形成装置が情報処理装置に送信パケットを送信した後に前記画像形成装置が前記情報処理装置からエラーを示すエラー情報を受信する場合に、前記送信パケットおよび前記エラー情報を取得する取得手段と、
前記送信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、
前記シミュレート手段が前記情報処理装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御手段と、
前記生成手段により生成された変更パケットを前記仮想装置が受信すると前記エラー情報と同じエラーを示すエラー情報を前記仮想装置が返信する場合、前記変更パケットを再現用パケットに決定するパケット決定手段と、を備えたサーバー。
【請求項２】
前記再現用パケットを外部に出力する出力手段を、さらに備えた請求項１に記載のサーバー。
【請求項３】
前記取得手段は、前記画像形成装置が処理対象とするデータの単位、または、前記画像形成装置がデータを処理する処理の単位で定まる１以上のパケットを、前記送信パケットとして取得する、請求項１または２に記載のサーバー。
【請求項４】
前記生成手段は、前記送信パケットの一部を別のデータに書き換えることにより前記変更パケットを生成する、請求項１〜３のいずれかに記載のサーバー。
【請求項５】
前記送信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分である、請求項４に記載のサーバー。
【請求項６】
前記生成手段は、前記送信パケットの一部を削除することにより前記変更パケットを生成する、請求項１〜５のいずれかに記載のサーバー。
【請求項７】
前記生成手段は、前記送信パケットが複数の場合、複数の前記送信パケットにそれぞれ対応する複数の前記変更パケットを生成する、請求項１〜６のいずれかに記載のサーバー。
【請求項８】
情報処理装置をシミュレートするシミュレートステップと、
画像形成装置が情報処理装置に送信パケットを送信した後に前記画像形成装置が前記情報処理装置からエラーを示すエラー情報を受信する場合に、前記送信パケットおよび前記エラー情報を取得する取得ステップと、
前記送信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
前記情報処理装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報と同じエラー情報を示すパケットを返信する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる再現用データ生成方法。
【請求項９】
情報処理装置をシミュレートするシミュレートステップと、
画像形成装置が情報処理装置に送信パケットを送信した後に前記画像形成装置が前記情報処理装置からエラーを示すエラー情報を受信する場合に、前記送信パケットおよび前記エラー情報を取得する取得ステップと、
前記送信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、
前記情報処理装置をシミュレートする仮想装置に、前記変更パケットを受信させる仮想実行制御ステップと、
前記仮想装置が前記生成ステップにおいて生成された変更パケットを受信すると、前記仮想装置が前記エラー情報と同じエラー情報を示すパケットを返信する場合、前記変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる再現用データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバー、再現用データ生成方法および再現用データ生成プログラムに関し、特に、情報処理装置をシミュレートするサーバー、そのサーバーで実行される再現用データ生成方法および再現用データ生成プログラムに関する。
【背景技術】
【０００２】
近年、複合機（以下「ＭＦＰ」という）で代表される画像形成装置は、データを他のコンピューターに送信する機能を備えている。画像形成装置からコンピューターにデータを送信する場合、そのデータを受信するコンピューター側でエラーが発生すると、コンピューターでエラーが発生したことを通知するパケットがＭＦＰに送信される。コンピューターで発生するエラーの原因を究明するために、エラーを再現することが必要となるが、この場合には、コンピューターがＭＦＰから受信したデータが必要となる。
【０００３】
例えば、特開２０１６−１５２４６４号公報には、ネットワークからパケットを受信するパケット受信部と、パケット受信部から受信したパケットを複製するパケット複製部と、パケット複製部から受信した元のパケットを一時的に保管する第１パケットバッファ部と、パケット複製部から受信した複製されたパケットを一時的に保管する第２パケットバッファ部と、仮想化環境で動作し、元のパケットと複製されたパケットのうち一方に対し通常のネットワーク処理行い、他方に対し常時監視を行い、不具合事象が発生した際に常時監視しているパケットを用いて解析を行う技術が開示されている。
【０００４】
しかしながら、特開２０１６−１５２４６４号公報に記載の技術では、常時監視しているパケットを用いた解析を外部の業者に委託する場合、パケットに機密性の高い情報が含まれていると、その機密性の高い情報が外部の業者に漏れてしまうといった問題がある。
【特許文献１】特開２０１６−１５２４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能なサーバーを提供することである。
【０００６】
この発明の他の目的は、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能な再現用データ生成方法を提供することである。
【０００７】
この発明のさらに他の目的は、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能な再現用データ生成プログラムを提供することである。
【課題を解決するための手段】
【０００８】
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、サーバーは、情報処理装置をシミュレートするシミュレート手段と、画像形成装置が情報処理装置に送信パケットを送信した後に画像形成装置が情報処理装置からエラーを示すエラー情報を受信する場合に、送信パケットおよびエラー情報を取得する取得手段と、送信パケットの少なくとも一部を含む変更パケットを生成する生成手段と、シミュレート手段が情報処理装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御手段と、生成手段により生成された変更パケットを仮想装置が受信するとエラー情報と同じエラーを示すエラー情報を仮想装置が返信する場合、変更パケットを再現用パケットに決定するパケット決定手段と、を備える。
【０００９】
この局面に従えば、画像形成装置が情報処理装置からエラー情報を受信する場合に、変更パケットが生成され、仮想装置に変更パケットを受信させると、エラー情報で示されるエラーと同じエラーを示すエラー情報を仮想装置が返信する場合における変更パケットが再現用パケットに決定される。このため、送信パケットの少なくとも一部を含み、情報処理装置が送信パケットを受信した場合と同じエラーが発生する再現用パケットを生成することができる。したがって、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能なサーバーを提供することができる。
【００１０】
好ましくは、再現用パケットを外部に出力する出力手段を、さらに備える。
【００１１】
この局面に従えば、再現用パケットが外部に出力されるので、画像形成装置が送信した送信パケットを受信する情報処理装置で発生したエラーを外部で再現することができる。
【００１２】
好ましくは、取得手段は、画像形成装置が処理対象とするデータの単位、または、画像形成装置がデータを処理する処理の単位で定まる１以上のパケットを、送信パケットとして取得する。
【００１３】
この局面に従えば、送信パケットは、データの単位、または、処理の単位で定まる１以上のパケットなので、画像形成装置が送信したパケットの全てを記憶する必要がなく、メモリ資源を有効に利用することができる。また、１つのデータに対して実行する処理で発生するエラーまたは１つの処理で発生するエラーの再現が容易となる。
【００１４】
好ましくは、生成手段は、送信パケットの一部を別のデータに書き換えることにより変更パケットを生成する。
【００１５】
この局面に従えば、送信パケットの一部を別のデータに書き換えることにより変更パケットが生成されるので、変更パケットが機密性の高い情報を含まないようにすることができる。
【００１６】
好ましくは、送信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分である。
【００１７】
この局面に従えば、送信パケットの一部は、予め定められた種類のデータを含む部分、および／または、予め定められた部分なので、送信パケットに含まれる機密情報の種類または送信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
【００１８】
好ましくは、生成手段は、送信パケットの一部を削除することにより変更パケットを生成する。
【００１９】
この局面に従えば、変更パケットは、送信パケットからその一部が削除されたパケットなので、変更パケットのデータ量を送信パケットよりも小さくすることができる。
【００２０】
生成手段は、送信パケットが複数の場合、複数の送信パケットにそれぞれ対応する複数の変更パケットを生成する。
【００２１】
この局面に従えば、複数の変更パケットにそれぞれ対応する複数の変更パケットが生成されるので、再現用パケットを容易に決定することができる。
【００２２】
この発明の他の局面によれば、再現用データ生成方法は、情報処理装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置に送信パケットを送信した後に画像形成装置が情報処理装置からエラーを示すエラー情報を受信する場合に、送信パケットおよびエラー情報を取得する取得ステップと、送信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、情報処理装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報と同じエラー情報を示すパケットを返信する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をサーバーに実行させる。
【００２３】
この局面に従えば、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能な再現用データ生成方法を提供することができる。
【００２４】
この発明の他の局面によれば、再現用データ生成プログラムは、情報処理装置をシミュレートするシミュレートステップと、画像形成装置が情報処理装置に送信パケットを送信した後に画像形成装置が情報処理装置からエラーを示すエラー情報を受信する場合に、送信パケットおよびエラー情報を取得する取得ステップと、送信パケットの少なくとも一部を含む変更パケットを生成する生成ステップと、情報処理装置をシミュレートする仮想装置に、変更パケットを受信させる仮想実行制御ステップと、仮想装置が生成ステップにおいて生成された変更パケットを受信すると、仮想装置がエラー情報と同じエラー情報を示すパケットを返信する場合、変更パケットを再現用パケットに決定するパケット決定ステップと、をコンピューターに実行させる。
【００２５】
この局面に従えば、２つの装置間でデータの送受信時に発生するエラーを再現可能で、かつ、サイズがより小さなデータを生成することが可能な再現用データ生成プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。
【図２】本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。
【図３】本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】本実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図５】本実施の形態における内部サーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図６】検証データ生成処理の流れの一例を示すフローチャートである。
【図７】変更パケット生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
【００２８】
図１は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図１を参照して、情報処理システム１は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００と、パーソナルコンピューター（以下「ＰＣ」という）３００と、内部サーバー２００と、検証サーバー５００と、を含む。
【００２９】
ＭＦＰ１００は、画像形成装置の一例であり、処理対象となるデータを画像処理する画像処理機能、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。ＭＦＰ１００は、画像処理機能および画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。画像処理は、限定するものではないが、画像データを画像形成可能なラスターデータに変換する処理、画像中のエッジを強調する先鋭化処理、画像中の色の変化を滑らかにするスムージング処理、データをよりサイズの小さな符号化データに変換する符号化処理、符号化データを復号する復号処理、画像データのフォーマットを変換する変換処理を含む。
【００３０】
ＰＣ３００および検証サーバー５００は、一般的なコンピューターである。したがって、それらのハードウェア構成および機能については周知なので、ここでは説明を繰り返さない。
【００３１】
ＭＦＰ１００、内部サーバー２００およびＰＣ３００それぞれは、ローカルエリアネットワーク（ＬＡＮ）３に接続される。このため、ＭＦＰ１００、ＰＣ３００および内部サーバー２００それぞれは、ＬＡＮ３を介してデータの送受信が可能である。ＬＡＮ３は、それに接続される装置が限定された閉じた環境となるため、ＬＡＮ３に接続される複数の装置間、ここではＭＦＰ１００、ＰＣ３００および内部サーバー２００との間で送受信されるデータが外部に漏れないようにセキュリティが確保されている。なお、ＬＡＮ３の接続形態は有線または無線を問わない。また、ＬＡＮ３に代えて、セキュリティが確保されるのであれば、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワーク、ワイドエリアネットワーク（ＷＡＮ）を用いるようにしてもよい。
【００３２】
ＬＡＮ３は、インターネット５に接続される。検証サーバー５００は、インターネット５に接続されている。このため、ＭＦＰ１００、ＰＣ３００および内部サーバー２００それぞれは、ＬＡＮ３を介してインターネット５に接続された検証サーバー５００と互いに通信可能である。ＭＦＰ１００、ＰＣ３００および内部サーバー２００は内部に配置される装置であるのに対して、検証サーバー５００は、ＭＦＰ１００、ＰＣ３００および内部サーバー２００に対して外部に配置される装置である。内部とは、セキュリティが確保されている領域を示し、外部とは内部で確保されているセキュリティが確保されていない領域を示す。
【００３３】
本実施の形態における情報処理システム１において、ＭＦＰ１００からＰＣ３００にデータを送信し、受信されたデータを処理するＰＣ３００で不具合が発生する場合に、検証サーバー５００で、ＰＣ３００において発生した不具合を検証する。ここでの検証は、ＰＣ３００で発生した不具合が次に発生しないように、ＭＦＰ１００またはＰＣ３００を設定することである。例えば、ＭＦＰ１００からＰＣ３００に送信されるデータが、ＰＣ３００で処理可能なデータとなるようにＭＦＰ１００またはＰＣ３００のいずれかにインストールされているアプリケーションプログラムを更新する。検証サーバー５００において、ＰＣ３００において発生した不具合を再現するために、不具合の原因となるデータ、ここでは、ＭＦＰ１００からＰＣ３００に送信されるデータが必要となるが、そのデータが機密性の高い機密情報を含んでいる場合がある。このため、ＭＦＰ１００からＰＣ３００に送信されたデータそのものを検証サーバー５００に送信するのではなく、内部サーバー２００において、ＭＦＰ１００からＰＣ３００に送信されたデータを、ＰＣ３００において発生した不具合と同じ不具合が再現される再現用データに変換し、再現用データを検証サーバー５００に送信する。再現用データがＬＡＮ３に接続されたＭＦＰ１００、ＰＣ３００および内部サーバー２００を含む閉じた環境の外部に配置された検証サーバー５００に送信されるが、再現用データからデータに含まれる機密情報を再現できなければ機密情報が外部に漏洩するのを防止することができる。
【００３４】
図２は、本実施の形態における内部サーバーのハードウェア構成の概要の一例を示すブロック図である。図２を参照して、内部サーバー２００は、内部サーバー２００の全体を制御するための中央演算装置（ＣＰＵ）２０１と、ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、ＣＰＵ２０１をＬＡＮ３に接続する通信部２０５と、情報を表示する表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０８と、を含む。
【００３５】
表示部２０６は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置である。操作部２０７は、キーボードなどのハードキーである。また、操作部２０７は、タッチパネルであってもよい。タッチパネルは、表示部２０６の上面または下面に表示部２０６に重畳して設けられる。タッチパネルは、表示部２０６の表示面中でユーザーにより指示された位置を検出する。
【００３６】
通信部２０５は、ＣＰＵ２０１をＬＡＮ３に接続するためのインターフェースである。通信部２０５は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ＬＡＮ３に接続されたＭＦＰ１００またはＰＣ３００と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。内部サーバー２００に、ＭＦＰ１００およびＰＣ３００それぞれのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを登録しておくことにより、内部サーバー２００は、ＭＦＰ１００およびＰＣ３００それぞれと通信することができ、データの送受信が可能となる。
【００３７】
ＨＤＤ２０４は、ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＣＰＵ２０１は、ＨＤＤ２０４に記録されたプログラムを、ＲＡＭ２０３にロードして実行する。
【００３８】
外部記憶装置２０８は、プログラムを記憶したＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）２０９が装着される。ＣＰＵ２０１は、外部記憶装置２０８を介してＣＤ−ＲＯＭ２０９にアクセス可能である。ＣＰＵ２０１は、外部記憶装置２０８に装着されたＣＤ−ＲＯＭ２０９に記録されたプログラムをＲＡＭ２０３にロードして実行する。なお、ＣＰＵ２０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０９に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭまたはＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリであってもよい。
【００３９】
また、ＣＰＵ２０１が実行するプログラムは、ＣＤ−ＲＯＭ２０９に記録されたプログラムに限られず、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ＬＡＮ３に接続された他のコンピューターが、ＨＤＤ２０４に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、内部サーバー２００が、ＬＡＮ３またはインターネット５に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４０】
図３は、本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン回路１１０と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００４１】
自動原稿搬送装置１２０は、原稿トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿に形成された画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。
【００４２】
画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【００４３】
メイン回路１１０は、ＭＦＰ１００の全体を制御するＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ１１３と、ＲＡＭ１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、ファクシミリ部１１６と、外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００４４】
ファクシミリ部１１６は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１６は、受信したファクシミリデータを、ＨＤＤ１１５に記憶するとともに、画像形成部１４０で印刷可能な印刷データに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１１６により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部１１６は、ＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００４５】
通信Ｉ／Ｆ部１１２は、ＬＡＮ３にＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰまたはＵＤＰ等の通信プロトコルで、ＬＡＮ３に接続された内部サーバー２００またはＰＣ３００と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
【００４６】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取画像を一時的に記憶する。
【００４７】
操作パネル１６０は、ＭＦＰ１００の上面に設けられる。操作パネル１６０は、表示部１６１と操作部１６３とを含む。表示部１６１は、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、ＬＣＤに代えて、画像を表示する装置であれば、例えば、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイを用いることができる。
【００４８】
操作部１６３は、タッチパネル１６５と、ハードキー部１６７とを含む。タッチパネル１６５は、静電容量方式である。なお、タッチパネル１６５は、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。
【００４９】
タッチパネル１６５は、その検出面が表示部１６１の上面または下面に表示部１６１に重畳して設けられる。ここでは、タッチパネル１６５の検出面のサイズと、表示部１６１の表示面のサイズとを同じにしている。このため、表示面の座標系と検出面の座標系は同じである。タッチパネル１６５は、ユーザーが、表示部１６１の表示面を指示する位置を検出面で検出し、検出した位置の座標をＣＰＵ１１１に出力する。表示面の座標系と検出面の座標系は同じなので、タッチパネル１６５が出力する座標を、表示面の座標に置き換えることができる。
【００５０】
ハードキー部１６７は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。タッチパネル１６５は、表示部１６１の表示面中でユーザーにより指示された位置を検出する。ユーザーがＭＦＰ１００を操作する場合は直立した姿勢となる場合が多いので、表示部１６１の表示面、タッチパネル１６５の操作面およびハードキー部１６７は、上方を向いて配置される。ユーザーが表示部１６１の表示面を容易に視認することができ、ユーザーが指で操作部１６３を容易に指示することができるようにするためである。
【００５１】
外部記憶装置１１７は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ１１８、または半導体メモリが装着される。本実施の形態においては、ＣＰＵ１１１は、ＲＯＭ１１３に記憶されたプログラムを実行する例を説明するが、ＣＰＵ１１１は、外部記憶装置１１７を制御して、ＣＤ−ＲＯＭ１１８からＣＰＵ１１１が実行するためのプログラムを読出し、読み出したプログラムをＲＡＭ１１４に記憶し、実行するようにしてもよい。
【００５２】
なお、ＣＰＵ１１１が実行するためのプログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ１１８に限られず、フレキシブルディスク、カセットテープ、光ディスク、ＩＣカード、光カード、半導体メモリ等の媒体でもよい。さらに、ＣＰＵ１１１がＬＡＮ３に接続されたコンピューターからプログラムをダウンロードしてＨＤＤ１１５に記憶する、または、ＬＡＮ３に接続されたコンピューターがプログラムをＨＤＤ１１５に書き込みするようにして、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードしてＣＰＵ１１１で実行するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５３】
図４は、本実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図４に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶された検証依頼プログラムを実行することにより、ＣＰＵ１１１により実現される機能である。検証依頼プログラムは、再現用データ生成プログラムの一部である。図４を参照して、ＣＰＵ１１１は、処理実行部５１と、通信制御部５３と、パケット記憶部５５と、検証依頼部５７と、を含む。
【００５４】
処理実行部５１は、ＭＦＰ１００が処理の対象とする処理データを受け付け、その処理データを処理する。処理実行部５１が実行する処理は、限定するものではないが、ここでは、ＰＣ３００にデータを送信する処理を実行する場合を例に説明する。例えば、処理実行部５１は、原稿読取部１３０が原稿を読み取る場合、原稿読取部１３０が原稿を読み取って出力する画像データを受け付け、受け付けられた画像データを処理データとしてＰＣ３００に送信する。また、処理実行部５１は、ＨＤＤ１１５に記憶されたデータを読出し、読み出したデータを処理データとしてＰＣ３００に送信する。処理実行部５１は、ユーザーがメッセージをＰＣ３００に送信する操作を入力する場合、メッセージを生成し、生成されたメッセージを処理データとしてＰＣ３００に送信する。メッセージは、例えば、電子メールであってもよい。処理実行部５１は、処理データをＰＣ３００に送信する送信指令を通信制御部５３に出力する。
【００５５】
通信制御部５３は、送信指令が入力されることに応じて、通信Ｉ／Ｆ部１１２を制御して、処理データをＰＣ３００に送信する。通信制御部５３は、処理データを複数の送信パケットとしてＰＣ３００に送信する。具体的には、通信制御部５３は、処理データを分割した複数の分割部分それぞれを送信パケットのボディ部に設定し、ＰＣ３００との間で取り決められた通信プロトコルにより定められた情報を送信パケットのヘッダ部に設定することにより、複数の送信パケットを生成する。送信パケットのヘッダ部は、例えば、複数の送信パケットを受信するＰＣ３００が複数の分割部分から処理データを再現可能とするための情報を含む。通信制御部５３は、複数の送信パケットをパケット記憶部５５に出力する。
【００５６】
通信制御部５３は、１つの送信指令に対して複数の送信パケットを生成する場合、１つの送信指令に対して生成される複数の送信パケットが同じ組に含まれることを示す指令識別情報を複数の送信パケットそれぞれとともにパケット記憶部５５に出力する。さらに、処理データが単位部分の複数から構成される場合、送信パケットのボディ部に設定された分割部分が含まれる単位部分を識別するための部分識別情報を複数の送信パケットそれぞれとともにパケット記憶部５５に出力する。単位部分は、例えば、処理データが複数ページからなる画像データの場合、１つのページの画像データを示し、部分識別情報は、ページ番号を示す。
【００５７】
パケット記憶部５５は、通信制御部５３から指令識別情報と送信パケットとが入力されることに応じて、送信パケットを指令識別情報と関連付けてＨＤＤ１１５に記憶する。この場合、パケット記憶部５５は、通信制御部５３から入力される指令識別情報と送信パケットとをＨＤＤ１１５に記憶する時点で、通信制御部５３から入力される指令識別情報と異なる指令識別情報と、その指令識別情報に関連付けられた送信パケットとがＨＤＤ１１５に記憶されている場合には、それらをＨＤＤ１１５から消去するのが好ましい。これにより、ＨＤＤ１１５の記憶容量が無駄に消費されるのを回避することができる。
【００５８】
また、パケット記憶部５５は、通信制御部５３から指令識別情報と部分識別情報と送信パケットとが入力される場合、送信パケットを指令識別情報および部分識別情報と関連付けてＨＤＤ１１５に記憶する。この場合、パケット記憶部５５は、通信制御部５３から入力される指令識別情報と部分識別情報と送信パケットとをＨＤＤ１１５に記憶時点で、通信制御部５３から入力される指令識別情報と部分識別情報との組と異なる組の指令識別情報と部分識別情報と、送信パケットとがＨＤＤ１１５に記憶されている場合には、それらをＨＤＤ１１５から消去するのが好ましい。
【００５９】
通信制御部５３は、送信指令に従って複数の送信パケットを順にＰＣ３００に送信し、ＰＣ３００が送信指令に応答する応答情報を含む返信パケットをＰＣ３００から受信する。通信制御部５３は、ＰＣ３００から１以上の返信パケットを受信する場合、１以上の返信パケットそれぞれのヘッダ部に記述された情報に従って、１以上の返信パケットそれぞれのボディを合成した応答情報を生成し、生成された応答情報を処理実行部５１に出力する。ＰＣ３００は、複数の送信パケットの全てを受信した後に、応答情報を送信する場合と、複数の送信パケットの全てを受信する前に応答情報を送信する場合がある。
【００６０】
応答情報は、処理データを正常に処理したことを通知する情報と、処理データを正常に処理できなかったことを通知するエラー情報とを含む。エラー情報は、例えば、ＰＣ３００で、処理データを処理対象とした処理を実行することにより発生するエラーを識別するためのエラー識別情報を含む。ＰＣ３００が、複数の送信パケットの全てを受信する前に応答情報を送信する場合は、例えば、複数の送信パケットの一部を受信した段階で、それまでに受信された処理データの一部を処理対象として処理を実行することによりエラーが発生する場合がある。
【００６１】
また、応答情報は、処理データが特定情報を含む場合に、ＰＣ３００が特定情報を処理対象とした処理を実行することにより発生するエラーを識別するためのエラー情報を含む。特定情報が、ユーザーアカウントとパスワードの場合、ＰＣ３００においてユーザーを認証する認証処理に失敗する場合に、応答情報は、認証に失敗したことを示すエラーを識別するためのエラー識別情報を含む。
【００６２】
処理実行部５１は、応答情報がエラー情報を含む場合、通信制御部５３に送信指令に基づく送信の中止を指示するとともに、送信指令を識別するための指令識別情報とエラー情報を検証依頼部５７に出力する。
【００６３】
検証依頼部５７は、処理実行部５１から指令識別情報とエラー情報とが入力されることに応じて、パケット記憶部５５によりＨＤＤ１１５に記憶された送信パケットのうちから、指令識別情報と関連付けられた送信パケットの全てを読出し、内部サーバー２００に検証を依頼する。具体的には、検証依頼部５７は、通信Ｉ／Ｆ部１１２を制御して、ＨＤＤ１１５から読み出された複数の送信パケットと、処理実行部５１から入力されるエラー情報と、処理データの送信先のＰＣ３００を識別するための装置識別情報とを内部サーバー２００に送信する。送信パケットが部分識別情報と関連付けられている場合には、送信パケットと部分識別情報との組を、内部サーバー２００に送信する。
【００６４】
図５は、本実施の形態における内部サーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。図５に示す機能は、内部サーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９に記憶された再現用データ生成プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。
【００６５】
図５を参照して、内部サーバー２００が備えるＣＰＵ２０１は、装置情報取得部２５１と、パケット取得部２５３と、エラー情報取得部２５５、シミュレート部２５７と、仮想実行制御部２５９と、生成部２６１と、再現用パケット決定部２６３と、出力部２６５と、を含む。
【００６６】
装置情報取得部２５１は、ＭＦＰ１００から検証依頼を受信すると、ＰＣ３００から装置情報を取得する。具体的には、装置情報取得部２５１は、ＭＦＰ１００から受信された装置識別情報で特定されるＰＣ３００に装置情報の送信を要求し、ＰＣ３００から受信される装置情報を取得する。装置情報取得部２５１は、装置情報を取得する場合、装置情報をシミュレート部２５７に出力する。装置情報は、ＰＣ３００に搭載されているＣＰＵに関する情報、ＰＣ３００にインストールされているハードウェア資源に関するハード情報と、ＰＣ３００にインストールされたソフトウェア資源に関するソフト情報と、を含む。ＣＰＵに関する情報は、ＣＰＵの機種名を含む。ハード情報は、ハードウェア資源を識別するためのハード識別情報と、ハードウェア資源を制御するために設定されているハードパラメータとを含む。ハード情報は、ハードウェア資源が複数の場合には、複数のハードウェア資源ごとに、ハード識別情報とハードパラメータとを含む。ソフト情報は、ＰＣ３００にインストールされているプログラムのプログラム名と、そのプログラムを実行するために設定されているソフトパラメータと、を含む。
【００６７】
パケット取得部２５３は、ＭＦＰ１００から検証依頼を受信すると、ＭＦＰ１００から複数の送信パケットを受信する。パケット取得部２５３は、複数の送信パケットを受信すると、それらを生成部２６１に出力する。
【００６８】
エラー情報取得部２５５は、ＭＦＰ１００から検証依頼を受信すると、ＭＦＰ１００からエラー情報を受信する。エラー情報取得部２５５は、エラー情報を受信すると、エラー情報を再現用パケット決定部２６３に出力する。
【００６９】
生成部２６１は、パケット取得部２５３から入力される複数の送信パケットに基づいて、複数の送信パケットそれぞれの少なくとも一部を含む複数の変更パケットを生成する。具体的には、生成部２６１は、複数の送信パケットそれぞれのヘッダ部に記述されている情報に基づいて、複数の送信パケットそれぞれのボディを合成することにより、処理データを生成する。そして、生成部２６１は、処理データを分割し、複数の分割部分を生成する。例えば、分割部分のサイズを予め定めておき、処理データのサイズと分割部分のサイズとから分割数を決定すればよい。
【００７０】
生成部２６１は、複数の分割部分の少なくとも１つに基づいて変更パケットを生成する。具体的には、生成部２６１は、複数の分割部分から１以上の分割部分を処理対象に選択する。生成部２６１は、処理対象に選択された１以上の分割部分が、機密情報を含む場合、機密情報をダミー情報に変更する。機密情報は、機密性の高い情報として予め定められた情報である。機密情報は、例えば、個人情報、予め定められた単語等である。個人情報は、例えば、ユーザーアカウント、パスワード、電話番号、氏名等を含む。生成部２６１は、処理対象に選択された１以上の分割部分に基づいて変更パケットを生成する。生成部２６１は、複数の送信パケットを順に処理対象に選択し、処理対象に選択された送信パケットに対応する変更パケットを生成する。生成部２６１は、処理対象に選択された送信パケットのボディ部が、選択された１以上の分割部分のいずれかを含む場合、その分割部分を変更パケットのボディ部に設定し、送信パケットのヘッダ部を分割部分が設定されたボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。生成部２６１は、処理対象に選択された送信パケットのボディ部が、選択された１以上の分割部分のいずれをも含まない場合、変更パケットのボディ部に何も設定することなく、送信パケットのヘッダ部を空のボディ部に適合するように修正したヘッダ部を変更パケットのヘッダ部に設定する。このように、生成部２６１は、複数の送信パケットにそれぞれ対応する複数の変更パケットを生成する。複数の変更パケットによって再生されるデータは、複数の分割部分から選択された１以上の分割部分を合成したデータとなる。生成部２６１は、生成された複数の変更パケットを仮想実行制御部２５９に出力する。
【００７１】
シミュレート部２５７は、装置情報取得部２５１から入力される装置情報に基づいてＰＣ３００をシミュレートする。シミュレート部２５７は、装置情報に含まれるハード情報を用いて、ＰＣ３００に装着されたハードウェア資源を仮想装置に設定し、仮想装置にハードパラメータを設定する。また、シミュレート部２５７は、装置情報に含まれるソフト情報を用いて、ＰＣ３００のＣＰＵが実行するソフトウェア資源を仮想装置の仮想ＣＰＵにインストールし、仮想装置にソフトパラメータを設定する。これにより、シミュレート部２５７によってＰＣ３００をシミュレートする仮想装置が設定される。
【００７２】
仮想実行制御部２５９は、生成部２６１から複数の変更パケットが入力されることに応じて、シミュレート部２５７を制御して、シミュレート部２５７がＰＣ３００をシミュレートする仮想装置に、生成部２６１から入力される変更パケットを受信させる。
【００７３】
再現用パケット決定部２６３は、複数の変更パケットを順に受信する仮想装置が出力する返信パケットを監視しており、仮想装置が１以上の返信パケットを出力する場合、１以上の返信パケットそれぞれのヘッダ部に記述された情報に従って、１以上の返信パケットそれぞれのボディを合成した応答情報を生成する。再現用パケット決定部２６３は、仮想装置が複数の変更パケットの全てを受信した後に出力する応答情報がエラー情報取得部２５５から入力されるエラー情報で特定されるエラーと同じエラーを示すエラー情報を含む場合、生成部２６１から入力される複数の変更パケットを再現用パケットに決定し、出力部２６５に出力指示を出力する。出力指示は、再現用パケットを含む。
【００７４】
再現用パケット決定部２６３は、仮想装置が複数の変更パケットの全てを受信した後に送信する応答情報がエラー情報取得部２５５から入力されるエラー情報で特定されるエラーと同じエラーを示すエラー情報を含まない場合、または、仮想装置が複数の変更パケットの全てを受信する前に、エラー情報を含む応答情報を出力する場合、出力部２６５に出力指示を出力することなく、生成部２６１に再生成指示を出力する。
【００７５】
生成部２６１は、再現用パケット決定部２６３から再生成指示が入力される場合、それまでに処理対象に選択した１以上の分割部分とは異なる１以上の分割部分を処理対象に選択し、新たに処理対象に選択された１以上の分割部分に基づいて変更パケットを生成する。
【００７６】
具体的には、生成部２６１は、選択数Ｍ（Ｍは正の整数）を決定し、複数の分割部分のうちＭ個の分割部分からなる分割部分組を、複数の分割部分のうちからＭ個を選択する組み合わせの数だけ生成する。選択数Ｍは、変更パケットを生成するために用いる分割部分の数である。生成部２６１は、生成された複数の分割部分組のうちから処理対象となる分割部分組を１つ選択することにより、処理対象となるＭ個の分割部分を決定する。生成部２６１は、処理対象に決定されたＭ個の分割部分に基づいて、複数の変更パケットを生成する。また、生成部２６１は、再現用パケット決定部２６３から再生成指示が入力される場合、複数の分割部分組のうち未選択の分割部分を１つ選択する。生成部２６１は、複数の分割部分組の全てを選択した場合には、選択数Ｍを変更し、複数の新たな分割部分組を生成する。例えば、選択数Ｍの初期値を１とし、選択数を１から順に増加するのが好ましい。
【００７７】
出力部２６５は、再現用パケット決定部２６３から出力指示が入力されることに応じて、出力指示に含まれる再現用パケットを、検証サーバー５００に送信し、検証を依頼する。なお、再現用パケットをＭＦＰ１００に送信し、ＭＦＰ１００が検証サーバー５００に検証を依頼するようにしてもよいし、再現用パケットをＰＣ３００に送信し、ＰＣ３００が検証サーバー５００に検証を依頼するようにしてもよい。
【００７８】
図６は、再現用データ生成処理の流れの一例を示すフローチャートである。再現用データ生成処理は、内部サーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９に記憶された再現用データ生成プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。
【００７９】
図６を参照して、ＣＰＵ２０１は、検証依頼を受けたか否かを判断する(ステップＳ０１)。通信部２０５がＭＦＰ１００から検証依頼を受信したか否かを判断する。検証依頼を受信するまで待機状態となり、検証依頼を受信したならば処理をステップＳ０２に進める。ＭＦＰ１００は、検証依頼とともに、複数の送信パケットと、エラー情報と、処理データの送信先のＰＣ３００を識別するための装置識別情報とを送信するので、ステップＳ０２においては、通信部２０５がＭＦＰ１００から受信する、複数の送信パケットと、エラー情報と、ＰＣ３００の装置識別情報とを取得する。
【００８０】
次のステップＳ０３においては、ステップＳ０２において取得されたＰＣ３００の装置識別情報に基づいて、ＰＣ３００の装置情報をＰＣ３００から取得する。通信部２０５を制御して、ＰＣ３００に装置情報を要求し、ＰＣ３００が送信する装置情報を受信する。装置情報は、ＰＣ３００に搭載されているＣＰＵに関する情報、ＰＣ３００にインストールされているハードウェア資源に関するハード情報と、ＰＣ３００にインストールされたソフトウェア資源に関するソフト情報と、を含む。
【００８１】
次のステップＳ０４においては、ＰＣ３００をシミュレートする仮想装置を設定する。具体的には、ステップＳ０３において取得された装置情報に含まれるＣＰＵに関する情報およびハード情報に基づいて、ＰＣ３００に装着されたＣＰＵおよびハードウェア資源を仮想装置に設定し、仮想装置にハードパラメータを設定する。また、装置情報に含まれるソフト情報を用いて、ＰＣ３００のＣＰＵが実行するソフトウェア資源を仮想装置の仮想ＣＰＵにインストールし、仮想装置にソフトパラメータを設定する。
【００８２】
次のステップＳ０５においては、変数ｉに「１」を設定し、処理をステップＳ０６に進める。変数ｉは、ステップＳ０２において受信された複数の送信パケットのうち処理対象となる送信パケットを特定するための値である。具体的には、第ｉ番目の送信パケットを処理対象に設定する。
【００８３】
ステップＳ０６においては、第ｉ番目の送信パケットのボディを処理データに追加する。処理データは、ＭＦＰ１００によってＰＣ３００への送信の対象とされたデータであり、複数の送信パケットそれぞれに分割して含まれている。次のステップＳ０７においては、ステップＳ０２において取得された複数の送信パケットのうちに第（ｉ＋１）番目の送信パケットが存在するか否かを判断する。そのような送信パケットが存在するならば処理をステップＳ０８に進めるが、そうでなければ処理をステップＳ０９に進める。ステップＳ０５〜ステップＳ０８のループを繰り返すことにより、処理データに複数の送信パケットにそれぞれ含まれる複数のボディが順に追加され、処理データが完成する。
【００８４】
ステップＳ０９においては、処理データを分割する。分割数は予め定めておくようにすればよい。以下処理データを分割した複数の部分を、複数の分割部分という。次のステップＳ１０においては、選択数Ｍを「１」を設定する。次のステップＳ１１においては、選択数Ｍの分割部分組を決定する。選択数Ｍの分割部分組は、複数の分割部分のうちからＭ個を選択する組み合わせの数だけあり、それぞれの分割部分組はＭ個の分割部分を含む。選択数Ｍを「１」とする場合、複数の分割部分それぞれが１つの分割部分組に含まれるので、複数の分割部分と同じ数の分割部分組が決定される。
【００８５】
次のステップＳ１２においては、ステップＳ１１において決定された複数の分割部分組のうちから１つの分割部分組を処理対象に選択し、処理をステップＳ１３に進める。ステップＳ１３においては、変更パケット生成処理を実行し、処理をステップＳ１５に進める。変更パケット生成処理の詳細は後述するが、処理対象に選択された分割部分組に含まれるＭ個の分割部分に基づいて、複数の送信パケットを変更した複数の変更パケットを生成する処理である。
【００８６】
ステップＳ１５においては、変更パケット生成処理において生成された複数の変更パケットを、ステップＳ０４において設定された仮想装置に送信し、処理をステップＳ１６に進める。ステップＳ１６においては、複数の変更パケットのすべての送信が完了したか否かを判断する。複数の変更パケットのすべての送信が完了したならば処理をステップＳ１７に進めるが、そうでなければ処理をステップＳ１８に進める。複数の変更パケットのすべてを送信する前に、仮想装置からエラーを示す返信パケットが受信される場合、複数の変更パケットのすべての送信が完了しないとして処理をステップＳ１８に進める。
【００８７】
ステップＳ１７においては、ステップＳ０２において取得されたエラー情報で示されるエラーと同じエラーを示すエラー情報を、仮想装置から受信したか否かを判断する。真ならば処理をステップＳ２０に進めるが、偽ならば処理をステップＳ１８に進める。
【００８８】
ステップＳ１８においては、ステップＳ１１において決定された１以上の分割部分組のうちに、ステップＳ１２において処理対象に選択されていない分割部分組が存在するか否かを判断する。未選択の分割部分組が存在するならば処理をステップＳ１２に戻し、未選択の組が存在しなければ処理をステップＳ１９に進める。ステップＳ１９においては、選択数Ｍをインクリメントし、処理をステップＳ１１に戻す。
【００８９】
ステップＳ２０においては、変更パケットを再現用パケットに決定し、処理をステップＳ２１に進める。ステップＳ２１においては、再現用パケットを検証サーバー５００に送信し、処理を終了する。
【００９０】
図７は、変更パケット生成処理の流れの一例を示すフローチャートである。変更パケット生成処理は、図６のステップＳ１３において実行される処理である。変更パケット生成処理が実行される前の段階で、処理対象の分割部分組が選択されている。処理対象の分割部分組には、選択数Ｍ個の分割部分を含む。ここで、処理対象の分割部分組に含まれる選択数Ｍ個の分割部分を、処理対象の分割部分という。
【００９１】
図７を参照して、ＣＰＵ２０１は、ステップＳ３１において、変数ｉに「１」を設定し、処理をステップＳ３２に進める。変数ｉは、ＭＦＰ１００から受信された複数の送信パケットのうち処理対象となる送信パケットを特定するための値である。
【００９２】
次のステップＳ３３においては、第ｉ番目の送信パケットを処理対象に選択する。そして、第ｉ番目の変更パケットに、第ｉ番目の送信パケットのヘッダと同じヘッダを設定する。次のステップＳ３４においては、第ｉ番目の送信パケットのボディは、処理対象の分割部分の少なくとも１つを含むか否かを判断する。第ｉ番目の送信パケットのボディが、分割部分組に含まれるＭ個の分割部分の少なくとも１つを含むならば処理をステップＳ３５に進めるが、そうでなければ処理をステップＳ３６に進める。ステップＳ３５においては、第ｉ番目の変更パケットに第ｉ番目の送信パケットのボディに含まれる分割部分を設定し、処理をステップＳ３７に進める。ステップＳ３６においては、第ｉ番目の変更パケットのボディを空に設定し、処理をステップＳ３７に進める。例えば、第ｉ番目の変更パケットのボディにＮＵＬＬを設定する。
【００９３】
ステップＳ３７においては、第ｉ番目の変更パケットのボディに設定された分割部分が機密情報を含むか否かを判断する。分割部分が機密情報を含むならば処理をステップＳ３８に進めるが、そうでなければ処理をステップＳ４０に進める。機密情報は、機密性の高い情報として予め定められた情報である。機密情報の一例としては、例えば、ユーザーアカウント、パスワード、個人情報等である。ステップＳ３８においては、機密情報をダミー情報に変更し、処理をステップＳ３９に進める。これにより、変更パケットが機密情報を含まないようにすることができる。ステップＳ３９においては、仮想装置にダミー情報を反映する。例えば、ユーザーアカウントおよびパスワードにより認証処理が実行されるが、仮想装置で、変更パケットに含まれるダミーのユーザーアカウントおよびパスワードにより認証が成功するように設定する。例えば、ダミーのユーザーアカウントおよびパスワードを、仮想装置が認証処理に用いるテーブルに追加する。また、仮想装置により認証処理でエラーが発生しないように設定する。
【００９４】
次のステップＳ４０においては、第ｉ番目の変更パケットのヘッダを修正し、処理をステップＳ４１に進める。具体的には、第ｉ番目の変更パケットのヘッダを分割部分が設定されたボディに適合するように修正する。ボディのサイズが変更されている場合には、ボディのサイズを示すフィールドを、ボディのサイズに合わせた値に変更する。
【００９５】
次のステップＳ４１においては、第（ｉ＋１）番目の送信パケットが存在するか否かを判断する。複数の送信パケットのうちで、ステップＳ３２において処理対象に選択されていない送信パケットが存在するならば処理をステップＳ４２に進めるが、そうでなければ処理を検証データ生成処理に戻す。ステップＳ４２においては、変数ｉをインクリメントし、処理をステップＳ３２に戻す。
【００９６】
以上説明したように本実施の形態における内部サーバー２００は、ＭＦＰ１００がＰＣ３００からエラー情報を受信する場合に、ＭＦＰ１００からＰＣ３００に送信された送信パケットから変更パケットを生成し、ＰＣ３００をシミュレートする仮想装置に変更パケットを受信させて、エラー情報で示されるエラーと同じエラーを示すエラー情報を仮想装置が返信する場合における変更パケットを再現用パケットに決定する。このため、ＭＦＰ１００からＰＣ３００に送信される送信パケットの少なくとも一部を含み、ＰＣ３００が送信パケットを受信した場合と同じエラーが発生する変更パケットを生成することができる。したがって、ＭＦＰ１００からＰＣ３００にデータを送信する場合にＰＣ３００で発生するエラーを再現可能で、かつ、サイズがより小さな再現用データを生成することができる。
【００９７】
また、内部サーバー２００は、再現用パケットを検証サーバー５００に送信するので、ＰＣ３００で発生したエラーを検証サーバー５００で再現することができ、エラーを検証することができる。
【００９８】
また、内部サーバー２００は、ＭＦＰ１００が処理対象とするデータの単位、または、ＭＦＰ１００がデータを処理する処理の単位で定まる１以上のパケットを、送信パケットとして取得する。データの単位は、データが複数ページからなる場合には、ページ単位であり、１ページのデータを含む。処理の単位は、１つの処理が開始してから終了するまでの送信されるデータを含む。例えば、複数のデータを送信するデータ送信処理に対しては複数のファイルを含む。送信パケットは、データの単位、または、処理の単位で定まる１以上のパケットなので、ＭＦＰ１００が送信したパケットの全てをＨＤＤ１１５に記憶する必要がなく、メモリ資源を有効に利用することができる。また、検証サーバー５００で、検証の際に、１つのデータに対して実行する処理で発生するエラーまたは１つの処理で発生するエラーの再現が容易となる。
【００９９】
また、内部サーバー２００は、送信パケットの機密情報をダミー情報に書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。
【０１００】
また、内部サーバー２００は、送信パケット中で予め定められた種類のデータを含む部分、および／または、予め定められた部分を、ダミー情報で書き換えるので、変更パケットが機密性の高い情報を含まないようにすることができる。特に、送信パケットに含まる機密情報の種類または送信パケット中の位置が事前に判明している場合に、変更パケットが機密性の高い情報を含まないようにすることができる。
【０１０１】
また、内部サーバー２００は、処理データを複数の分割部分に分割し、複数の分割部分のうちから選択された１以上の分割部分から変更パケットを生成するので、変更パケットは、複数の分割部分のうちから選択された１以上の分割部分を含むので、送信パケットの一部を削除したものである。したがって、変更パケットのデータ量を送信パケットよりも小さくすることができる。
【０１０２】
また、内部サーバー２００は、送信パケットが複数の場合、複数の送信パケットにそれぞれ対応する複数の変更パケットを生成するので、再現用パケットを容易に決定することができる。
【０１０３】
なお、上述した実施の形態においては、サーバーの一例として内部サーバー２００を例に示したが、図６および図７に示した再現用データ生成処理を、内部サーバー２００に実行させる再現用データ生成方法、また、その再現用データ生成方法を内部サーバー２００が備えるＣＰＵ２０１に実行させる再現用データ生成プログラムとして発明を捉えることができるのは言うまでもない。
【０１０４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０５】
１  情報処理システム、１００  ＭＦＰ、２００  内部サーバー、３００  ＰＣ、５００  検証サーバー、３  ＬＡＮ、５  インターネット、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、２００  内部サーバー、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  通信部、２０６  表示部、２０７  操作部、２０８  外部記憶装置、２０９  ＣＤ−ＲＯＭ、５１  処理実行部、５３  通信制御部、５５  パケット記憶部、５７  検証依頼部、２５１  装置情報取得部、２５３  パケット取得部、２５５  エラー情報取得部、２５７  シミュレート部、２５９  仮想実行制御部、２６１  生成部、２６３  再現用パケット決定部、２６５  出力部。
【図１】
2019087944.tif 000003
【図２】
2019087944.tif 000004
【図３】
2019087944.tif 000005
【図４】
2019087944.tif 000006
【図５】
2019087944.tif 000007
【図６】
2019087944.tif 000008
【図７】
2019087944.tif 000009